conception de circuits numériques et architecture des … · · 2014-09-03construction de...
TRANSCRIPT
Conception de circuits numériques
et architecture des ordinateurs
Frédéric Pétrot
Année universitaire 2014-2015
Conception de circuits numériques et architecture des ordinateurs
Structure du cours
C1 Codage des nombres en base 2, logique booléenne,portes logiques, circuits combinatoires
C2 Circuits séquentielsC3 Construction circuits complexesC4 Micro-architecture et fonctionnement des mémoiresC5 Machines à étatC6 Synthèse de circuits PC/POC7 Optimisation de circuits PC/POC8 Interprétation d'instructionsC9 Interprétation d'instructions
C10 Interprétation d'instructionsC11 Introduction aux caches
2 / 21
Conception de circuits numériques et architecture des ordinateurs
Intérêt
Intérêt
Mécanisme de base de construction des processeurs jusqu'au milieudes années 80.Encore fort utilisé pour des objets à faible consommation et granderentabilité (montre, calculatrice, ...)
3 / 21
Conception de circuits numériques et architecture des ordinateurs
Plan
Plan détaillé du cours d'aujourd'hui
1 Construction de circuitsIntroductionApproche microprogrammée
4 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Plan
1 Construction de circuitsIntroductionApproche microprogrammée
5 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Introduction
Introduction
Problématique :
Implantation matériel d'un algorithme
Solution générale :
Signaux de testSignaux de contrôle
Partie opérative
Partie contrôle
Contrôle
Données
Horloge
6 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Introduction
Introduction
Partie contrôle :génère des commandes en fonction de signaux de testmachine à états
Partie opérative :ensemble d'opérateurs e�ectuant des opérations en fonctiondes commandesinterconnexion de registres, additionneurs, etc, sur n bits
Plusieurs approches :
Micro-programmées : notre cas
Cablées : optimisation du cas précédent, également vu
Pipelinée : plusieurs PC en actions simultanément, vu en 2A
etc ...
7 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Introduction
Introduction
Partie opérative (data-path) :
Entrées : données externes, autorisation d'écriture dans lesregistres, commandes de multiplexeurs, code opération pourles UAL
Sorties : donnéees externes, informations pour les prises dedécision de la partie contrôle
Contenu : registres, mémoires vives ou mortes, opérateursarithmétiques, multiplexeurs, bus
Partie contrôle (control part, FSM) :
Entrées : signaux de contrôle externes, signaux de test, horloge
Sorties : signaux de contrôle externes, commandes vers lechemin de données
Contenu : logique de génération de l'état et des sorties, doitgarantir que les dépendances de données sont bien respectées
8 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Principe
Principe
partitionner l'algorithme entre contrôle, PC, et calcul, PO
connecter PC et PO avec des �ls de contrôle et de test
Pour cela il faut :
1 identi�er les variables qui deviendront des registres
2 identi�er les opérations à e�ectuer entre variables et y associerdes opérateurs
3 construire les chemins de calculs, à l'aide de multiplexeurs
4 construire le séquencement de l'activation des chemins decalcul
9 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Choix d'architecture
La conception in�ue principalement sur le degré de parallèlisme :
nombre d'opérateurs
nombre de registres
complexité des opérateurs : nombre de lectures simultanéesdans un banc de registers, nombre d'entrées d'un multiplexeur,d'un opérateur arithmétique, etc
surface de silicium, longueur des chemins combinatoires,puissance consommée, etc
10 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Construction du chemin de données : registres
Identi�er les registres
Registres : Variables � conservant leur valeur � :
Relation implicite avec le séquencement prévu :variables lues et écrites dans le même cycle disparaissentExemple : x := a + b; y := x − c
si le � ; � est une frontière de cycle :x est un registretemps de calcul : additionneur à 2 entrées
si le � ; � n'est pas une frontière de cycle :x est un �ltemps de calcul : 2 × le temps de calcul précédent
11 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Construction du chemin de données : opérateurs
Identi�er les opérateurs
quels sont les opérations à e�ectuer ?
peut-on partager des opérateurs ?
Relation implicite avec le séquencement prévu :2 opérations identiques dans 2 cycles peuvent partager un opérateurS'il y a plusieurs opérateurs, il faut choisir lequel utiliserExemple : x := a + b; y := x − c
si le � ; � n'est pas une frontière de cycle :additionneur pour + et soustracteur pour −2 × add/sub pour + et − (dépend du contexte)
valeur de x !si le � ; � est une frontière de cycle :add/sub
12 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Construction du chemin de données : chemins
Construire les chemins de calcul
enchaîner les opérateurs
amener les registres et signaux sur les opérateurs à l'aide demultiplexeurs
Relation implicite avec le séquencement prévu :quels opérateurs chaîner, quelles entrées doivent être proposéesdevant les opérateurs ?
Exemple : x := a + b; y := x − csi le � ; � est une frontièrede cycle :entrée i0 de add/sub prendsoit a, soit xentrée i1 de add/sub prendsoit b, soit c
o
a
b
c
s0
s1
x
wex
y
wey
i0
i113 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Construction du séquencement
Séquencement
Dé�nition de l'ordre des commandes à appliquer sur la PODoit garantir le respect des dépendances de données
Allocation et séquencement sont interdépendantExemple : x := a + b; y := x − csi le � ; � est une frontière de cycle
1 choisir la valeur des selecteurs pour présenter a et b, autoriserl'écriture dans x
2 choisir la valeur des selecteurs pour présenter x et c, autoriserl'écriture dans y
si le � ; � n'est pas une frontière de cycle
1 autoriser l'écriture dans y
14 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Exemple
Algorithme cordic 1
Data : trois variables a, b et c. On a de plus un tableau t de 30 constantes
Result : trois variables X, Y et Z donnant respectivement
X := (x cos(z)−y sin(z))Kc
, Y := (x cos(z)+y sin(z))Kc
et Z := 0, ou Kc = csteX := a;Y := b;Z := c;for i := 0 to 29 do
x := X2i ; y := Y
2i ; z := t[i];if Z > 0 then
X := X − y;Y := Y + x;Z := Z − z;else
X := X + y;Y := Y − x;Z := Z + z;end if
end for
1. J.E. Volder, "The Cordic Trigonometric Computing Technique", IRE Transactions
on Electronic Computers, sept. 1959, p. 330-33415 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Exemple : registres
Identi�cation des registres
1 X := a;Y := b;Z := c;2 for i := 0 to 29 do
3 x := X2i; y := Y
2i; z := t[i];4 if Z > 0 then
5 X := X − y;6 Y := Y + x;7 Z := Z − z;8 else
9 X := X + y;10 Y := Y − x;11 Z := Z + z;12 end if
13 end for
si � ; � frontière de cycle ligne 3 :x, y, X, Y, Z (z inutile car i nechange pas dans boucle)
si � ; � non frontière de cycle lignes3, 5, 6, 7, 9, 10, 11 : X, Y, Zmise en évidence du parallélismepotentiel des a�ectations
note : i, variable de la boucle for,sera produite ici par l'automate
16 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Exemple : opérateurs
Identi�cation des opérateurs
1 X := a;Y := b;Z := c;2 for i := 0 to 29 do
3 x := X2i; y := Y
2i; z := t[i];4 if Z > 0 then
5 X := X − y;6 Y := Y + x;7 Z := Z − z;8 else
9 X := X + y;10 Y := Y − x;11 Z := Z + z;12 end if
13 end for
ligne 3 : décaleur à droite de ipositions décaleur a
ligne 4 : comparateur de supérioritéà zéro drapeau opérateur ouopérateur spéci�que
ligne 5 à 11 : max 2 additionneurset 2 soustracteurs, min 1 add/sub
note : pas d'incrémenteur de i,parcours de l'automate
a. Barrel shifter.
17 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Exemples : chemins
On prend une architecture très séquentielle :
Y
weYsY
sZ
sX
o
i1
i0
si1
si0
x
wex
y
wey
issa
b
c
0
Z
weZ
X
weX
zero
t
i
opcode
sign
Signaux verticaux issus de la partie contrôle18 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Exemples : instructions
On prend une architecture très séquentielle :
o
i1
i0
si0
si1
a
sX = 1weX = 1sY = 1
weY = 1sZ = 1
weZ = 1i = 0 sX = 1
weX = 1sY = 1
weY = 1sZ = 1
weZ = 1i = 0
x
y
z
0
i
opcodesX
Y
weYsY
sZ
Z
weZ
X
weX
Start
Idle
si = −wei = 0
S0
Signaux verticaux issus de la partie contrôle
19 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Exemples : séquencement
1 X := a;Y := b;Z := c;2 for i := 0 to 29 do
3 x := X2i; y := Y
2i; z := t[i];4 if Z > 0 then
5 X := X − y;6 Y := Y + x;7 Z := Z − z;8 else
9 X := X + y;10 Y := Y − x;11 Z := Z + z;12 end if
13 end for
automate non optimisé au tableau
sorties automate précisées danschaque état
état Idle attente démarrage
état Start ligne 1
partie automate répétée 30 foispour la boucle forest-ce plus ou moins couteux qu'unregistre avec un incrémenteur et uncomparateur ?
état avec 2 successeurs ligne 4
état avec 2 prédécesseurs ligne 12
20 / 21
Conception de circuits numériques et architecture des ordinateurs
Construction de circuits
Approche microprogrammée
Conclusion partielle
Synthèse PC/PO :
technique systématique
peut se faire sous contrainte
de ressources : surface de silicium liée aux opérateurs mais
aussi aux multiplexeurs
de temps : choix entre séquentialité et parallèlisme, in�ue
fortement sur les ressources
technique complexe : il faut faire des choix di�ciles
peut être automatisée 2 :synthèse dite d'architecture ou de haut niveau(Architectural Synthesis or High-Level Synthesis 3)tous les problèmes sont non polynomiaux, ...
2. Premières tentatives autour de 1980
3. High-Level Synthesis : from Algorithm to Digital Circuit, P. Coussy and A.
Morawiec, editors, Springer, 200821 / 21