Vous êtes sur la page 1sur 50

Formation Automatique et

Informatique Industrielle
Master 1 S2
Matière : Systèmes Embarqués et Systèmes Temps Réel SE-
STR
Par : ATOUI Hamza
Plan du cours
• Systèmes Embarqués ?
• Types des systèmes embarqués selon l’architecture.
• Les principales contraintes liées au développement des systèmes
embarqués.
• Du système à microprocesseur (µP) au Microcontrôleur (µC).
• Les principales caractéristiques des µC.
• Positionnement du problème.
• De la logique combinatoire vers La logique programmée.
– Circuit de majorité.
– HOME WORK.
• Le cas général.
– Architecture de Von-Neumann et Harvard.
– Codage CISC et RISC.
– Exemple de codage CISC vs RISC.
– Phases et cycle machine.
Systèmes Embarqués?
• Un système embarqué est le résultat de l’union entre
l’électronique et l’informatique pour réaliser un
système de fonction ou tâche(s) bien précise comme :
– Machine à café.
– Système ABS
– Télécommande
– Téléphone portable
– Imprimante
– Jeux & gadgets
– Etc.
Types des systèmes embarqués selon
l’architecture

Systèmes
embarqués

A base de µP A base de
A base de A base de spécialisé
circuits
reconfigurables
µP µC (DSP) (CLPD, FPGA)
Les principales contraintes liées au
développement des systèmes embarqués
• Puissance de calcul (MIPS).
• Taille de mémoire (CODE/DATA).
• Taille de bus (4, 8, 16,… bits).
• Consommation d’énergie/autonomie (mW/MIPS).
• Coût de développement (Soft/Hard).
• La durée de vie du système.
• Sureté de fonctionnent (condition climatiques,
position géographique).
Du système à microprocesseur (µP) au Microcontrôleur (µC)

• Un système à µP est composé


de
– Un µP (CPU).
– Une mémoire CODE et DATA
(ROM/RAM).
– Quelques périphériques
entrées-sorties.
– Quelques périphériques de
fonction précise (UART, USB,
TIMER, ADC/DAC, CAN…).
Du système à microprocesseur (µP) au
Microcontrôleur (µC)

• En général, les systèmes à µP


sont inventés pour résoudre des
problèmes de grande complexité,
mais comment faire avec les
problèmes de moyenne et petite
complexité ???
Du système à microprocesseur (µP) au
Microcontrôleur (µC)
• La solution de notre problème est de
réaliser des systèmes à µP de petite taille
intégré dans un seul boîtier, qui s’appel les
mono-chip.
• Ce mono-chip est appelé dans l’industrie
embarquée par le nom Microcontrôleur
(µC).
• Les µC sont des versions compactées des
micro-ordinateurs. Ils sont très utiles dans
notre vie.
• Les plus célèbres µC sont les PIC chez
MICROCHIP, le 8051/52 chez Intel, Microcontrôleur
68HC11/12 chez Motorola, le AVR chez
MICROCHIP/ATMEL, et le MSP430 chez TI.
Les principales caractéristiques des µC
• Quelques ports I/O.
• Plusieurs périphériques de fonction spéciale (ADC, TIMER, USB,
UART…).
• Une mémoire CODE de faible taille en général de type FLASH (512-
256Ko).
• Une mémoire DATA de faible taille en général de type SRAM (32-
32Ko).
• Une mémoire de type EEPROM pour sauvegarder des données en
cas de coupure du courant (32-256 octet).
• Un processeur de 8-16 bits de faible puissance en calcul, ne dépasse
pas quelques dizaine de MIPS.
• Une faible consommation électrique (standby/en marche).
Positionnement du problème

Le microprocesseur

?
C’est une solution, donc C’est un problème, donc
quelle est la problématique quelle est la solution ?
derrière cette solution ?
De la logique combinatoire vers La logique
programmée
• Exemple : réalisation de circuit combinatoire
qui fait le calcul de la fonction majorité de 3
bits (3 entrées).
• Pour résoudre se genre du problème, il faut
passer par la table de vérité.
De la logique combinatoire vers La logique
programmée
• Table de vérité de la fonction majorité :
A B C Majorité
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
De la logique combinatoire vers La
logique programmée
• L’étape suivante consiste à simplifier la
fonction majorité par la table de KARNAUGH
(K-MAP).
De la logique combinatoire vers La logique
programmée
• Dernière étape est la réalisation de
logigramme :

2
1
De la logique combinatoire vers La logique
programmée

• La question qui se pose, est ce


que on peut réaliser le
logigramme de la fonction
majorité par une séquence
d’opérations élémentaires, l’une
après l’autre (Algorithme) ?????
De la logique combinatoire vers La logique
programmée
• Absolution, OUI.
• Algorithme de la forme 1 :
m1 0- m1  A and C
m4 1- m2  A and B
m2
2- m4  m1 or m2
3- m3  B and C
m3 4- M  m3 or m4
Bilan :
Variables internes : m1, m2, m3 et m4
Variables d’entrée : A, B et C
Variables de sortie : M
Nombre de lignes dans l’algo : 5
De la logique combinatoire vers La logique
programmée
• Vous remarquez que chaque ligne de
l’algorithme est composé par les éléments
suivants :
1. 2 opérandes (source).
2. Une opération élémentaire (OR et AND).
3. Résultat (destination).
• Donc, proposer un chemin de données qui
partage les éléments au-dessus sur toutes les
lignes de l’algorithme.
De la logique combinatoire vers La logique
programmée
• Opérande 1 : est partagé
entre [A, B, m1, m3].
0- m1  A and C
• Opérande 2 : est partagé
1- m2  A and B
entre [C, B, m2, m4]. 2- m4  m1 or m2
• Opération : est partagé 3- m3  B and C
entre [and, or]. 4- M  m3 or m4
• Résultat : est partagé entre
[m1, m2, m3, m4, M].
De la logique combinatoire vers La logique
programmée
• m1, m2, m3, m4 et M se sont des bascules (des cases
mémoires de 1 bit chacune). En plus se sont des
destinations dans une ligne bien précise; donc, ces
bascules nécessites un signal de commande pour
autoriser l’écriture.
• L’élément électronique qui partage une ligne sur
plusieurs lignes est le MUX.
• Finalement : le chemin de données est un ensemble de
bascules avec signal de commande et des MUXs.
• Il reste de réaliser !!!???
De la logique combinatoire vers La logique programmée

EM M
Clock

Résultat
OPR
1 MUX
0 1

Opérations OR AND

Opérande 2 Opérande 1
OP2 OP1
MUX 2 2 MUX
11 10 01 00 00 01 10 11

Em4 Em2 Em1 Em3

m4 m2 C B A m1 m3
De la logique combinatoire vers La logique
programmée
• Notre DATA-PATH contient un ensemble de signaux à
commandé [OP1, OP2, OPR, Em1, Em2, Em3, Em4,
EM].
• L’activation des signaux de commande se fait sur la
lumière de l’algorithme.
• Donc, on dessine le tableau de commandes, dont
chaque ligne présente une opération de l’algorithme et
les colonnes sont les signaux à commandé.
• La taille de tableau de commandes = Nombre de ligne
dans l’algorithme * Nombre de signaux à commandé.
De la logique combinatoire vers La logique
programmée
• Tableau de commandes :
Signaux de commandes
Ligne
Opération
0 OP1 OP2 OPR Em1 Em2 Em3 Em4 EM
0 m1  A and C 0 1 0 1 1 1 0 0 0 0
1 m2  A and B 0 1 0 0 1 0 1 0 0 0
2 m4  m1 or m2 1 0 1 0 0 0 0 0 1 0
3 m3  B and C 0 0 0 1 1 0 0 1 0 0
4 M  m3 or m4 1 1 1 1 0 0 0 0 0 1
De la logique combinatoire vers La
logique programmée
• La logique d’activation des signaux de
commandes est appelée le séquenceur.
• Sur l’axe pratique notre séquenceur est la
réalisation du tableau de commandes.
• A votre avis mes chers étudiants, comment
réaliser ???
De la logique combinatoire vers La logique
programmée
• Tout simplement par un compteur modulo 5 avec un circuit
ROM à base de décodeur et réseau de diodes.
• La figure suivante présente la synoptique générale de notre
séquenceur.
OP1
2
OP2
2
OPR
ROM
Clock Compteur Em1
5 lignes
MODULO 5
3 bits 10 colonnes Em2
Em3
Em4
EM
De la logique combinatoire vers La logique programmée
• Réalisation de la ROM :
OP1 OP2 OPR Em1 Em2 Em3 Em4 EM

1
2
From counter 3
DECO
3 3 to 8 4
5
6
7
De la logique combinatoire vers La logique
programmée
• En conclusion la logique programmée de la
fonction Majorité est un union entre un
chemin de données (DATA-PATH) et un
séquenceur cadencé par une horloge (Clock).
HOME WORK
• Réaliser la logique programmée de la
deuxième forme de la fonction majorité.

2
HOME WORK
• Réaliser la logique programmée de la fonction
XOR pour la forme canonique 2.
Le cas général
• Maintenant, imaginez qu’on a plus de 5 cases
mémoires. La même histoire pour les
entrées/sorties. L’algorithme qu’on va
exécuter prend plus de 1000 lignes avec un
ensemble d’opérations assez nombreux.
• Donc, comment démarrer de la logique
programmée vers une architecture générique
qui exécute n’importe quel algorithme ?????
Le cas général
• d’après l’introduction, notre logique
programmée (microprocesseur) manipule une
zone contient l’algorithme, une zone contient
les cases mémoires temporaires et une zone
contient les entrées/sorties, dont les noms
techniques des ces zones sont :
1. CODE MEMORY (contient l’algorithme).
2. DATA MEMORY (contient les cases mem tmp).
3. I/O SPACE (les entrées/sorties).
Le cas général
• Le µP est le résultat de l’intégration de plusieurs circuits LSI/VLSI pour exécuter
un traitement (SOFTWARE) existe dans une mémoire.
• Le traitement est un ensemble d’instructions l’une après l’autre (séquence),
dont le µP prend un temps pour exécuter.
• Chaque instruction prend une phase ou plusieurs pour exécuter; on général, ces
phase sont (FETCH/DECODE,LECTURE DES OPERANDES, EXECUTION, ECRITURE).
– FETCH/DECODE : phase de recherche de l’instruction dans la mémoire puis décoder .
– LECTURE DES OPERANDES : phase optionnelle, si l’instruction a besoin des opérandes, le
µP charge ces opérandes à partir de la mémoire ou un port (exemple : adresse d’une case
mémoire, constante…).
– EXECUTION : phase de réalisation de l’opération demander dans l’instruction (exemple :
addition, soustraction…).
– ECRITURE : phase optionnelle, si l’instruction a besoin d’écrire le résultat dans une case
mémoire ou un port.
N.B : chaque phase prend un ou plusieurs top d’horloge.
Le cas général
• Les deux célèbres architectures des µP sont :
– L’architecture de Von-Neumann : se base sur le partage de
buses entre les différentes zones mémoires (CODE, DATA et
I/O).
– L’architecture de Harvard : se base sur la séparation de buses
entre les différentes zones mémoires.
• Dans les 2 cas le µP se divise sur 4 unités sont :
1. Unité d’adressage de la zone DATA_I/O.
2. Unité d’adressage de la zone CODE.
3. Unité de décodage.
4. Unité d’exécution.
Le cas général
• La figure suivante présente un µP avec les
différentes unités qui compose.

Unité d’adressage Unité d’adressage


CODE DATA_I/O
Contient la logique Contient la logique
du compteur ordinal d’adressage direct et
(PC) indirect

Unité de décodage
Unité d’exécution
Contient le registre
Contient les
d’instruction (IR) et
registres d’usage
la logique de
générale et l’ALU
contrôle/commande
Le cas général
• Le cas de Von-Neumann :

Unité d’adressage
CODE (UAC)
Bus d’adresse

MUX
Unité d’adressage
DATA_I/O (UAD)
CODE DATA I/O

Bus de données interne

Bus de données externe


Unité
Unité de
d’exécution
décodage (UD)
(UE)

Bus de contrôle/commande
Le cas général
• Le cas de Harvard :

Bus d’adresse DATA_I/O


Bus d’adresse Unité Unité
CODE d’adressage d’adressage
CODE DATA_I/O

DATA I/O

CODE
Bus de données

Bus des instructions

Unité de Unité
décodage d’exécution

Bus de contrôle/commande
Le cas général
RISC CISC
• Reduced Instruction Set • Complex Instruction Set
Computer. Computer
• Instruction de taille statique • Instruction de taille
• Nombre d’instructions < 130 dynamique
• Facile à comprendre • Nombre d’instruction >130
• Code plain de tournures • Difficile à comprendre
• Développement au niveau • Code simple
bas (Assembleur et un C • Développement au besoin
adapté au µC). (ASM/ C/ PASCAL/ MATLAB…).
Le cas général
• Exemple de codage CISC vs RISC:
• CISC.
– ADD 04h, MAT[R2+R3]
• RISC.
– MV @MAT, R1
– ADD R1, R2, R1
– ADD R1, R3, R1
– LD *R1, R4
– ADD 04h, R4, R4
– ST R4, *R1
Le cas général
• Jusqu’à présent, tout va bien.

• Mais, j’ai une petite question à posé :

• Quel est le mécanisme suivi par l’unité


de décodage pour exécuter une
instruction?????
Le cas général
• L’unité de décodage fait un ensemble de phases pour exécuter
une instruction. Ces phases sont :
1. La recherche de l’instruction qu’on va exécuter (FETCH PHASE -FP-).
2. Décodage et lecture des opération (DECODE PHASE -DP-).
3. Réalisation de l’opération demandée par l’instruction (EXECUTE
PHASE -EP-).
4. Sauvegarde de résultat dans la destination (WRITE-BACK PHASE
-WBP-).
– On appel un cycle machine est le temps nécessaire pour exécuter
une instruction, donc :
– Cycle machine = FP + DP + EP + WBP.
– Chaque phase peut prendre un machine
Cycle ou plusieurs top d’horloge.

Phase

FP DP EP WBP
Clock
Le cas général
• Exemple pratique : on désire de réaliser l’opération
suivante : M(#3)  M(#3) + R0 (addition entre la
case mémoire d’adresse 3 dans la zone DATA et le
registre interne R0 et le résultat sera chargé dans la
même case mémoire).
• La première étape est la traduction de l’opération à
une instruction en mnémonique comme : ADD
M(#3), R0.
• La deuxième étape est le codage de l’instruction. Par
exemple :
OP-CODE : présente le codage OP-CODE ADR
de l’instruction d’addition entre
une case mem avec le registre R0
ADR : présente l’adresse
de la case mémoire
Le cas général
• En repos
UAC PC

AR
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5)
R1 ALU
IR R2
R3
UD
• La phase FETCH
Le cas général
(FP) :
UAC PC (100)

100
AR
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5)
R1 ALU
IR R2
OP-CODE, ADR (3) R3
UD
• La phase FETCH
Le cas général
(FP) :
UAC PC (100)

100
AR
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5)
R1 ALU
OPC, ADR
R2
OP-CODE, ADR (3) R3
UD
• La phase décodage
Le cas général
(DP) :
UAC PC (100)

100 3
AR (3)
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5) 10
R1 ALU
OPC, ADR
R2
OP-CODE, ADR (3) R3
UD
• La phase décodage
Le cas général
(DP) :
UAC PC (100)

100 3
AR (3)
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

10

R0 (5)
R1 ALU
OPC, ADR
R2
OP-CODE, ADR (3) R3
UD
• La phase décodage
Le cas général
(DP) :
UAC PC (100)

100 3
AR (3)
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5)
10
R1 ALU
OPC, ADR
R2
OP-CODE, ADR (3) R3
UD
• La phase décodage
Le cas général
(DP) :
UAC PC (100)

100 3
AR (3)
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5)
10
R1 ALU
OPC, ADR
R2
OP-CODE, ADR (3) R3 5
UD
• La phase exécution
Le cas général
(EP) :
UAC PC (100)

100 3
AR (3)
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

R0 (5)
10
R1 ALU
OPC, ADR 15
R2
OP-CODE, ADR (3) R3 5
UD
• La phase sauvegarde
Le cas général
de résultat(WBP) :

UAC PC (100)

100 3
AR (3)
UAD

CODE DATA

10 3
OP- ADR
100
CODE (3)

15

R0 (5)
10
R1 ALU
OPC, ADR 15
R2
R3 5
UD
• La phase sauvegarde
Le cas général
de résultat(WBP) :

UAC PC (101)

101 3
AR (3)
UAD

CODE DATA

15 3
OP- ADR
100
CODE (3)

15

R0 (5)
10
R1 ALU
OPC, ADR 15
R2
R3 5
UD

Vous aimerez peut-être aussi