Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
2006/2007 Licence Informatique L3 1-1
Cours du 29 septembre 2006
Architecture des ordinateursCours (12x2h00) :
♦ Frédéric Mallet - [email protected]
TP (12x2h00 - 2 groupes) :
♦ Jean-Pierre Lips- [email protected]
♦ Christophe Delage –[email protected]
http://deptinfo.unice.fr/~fmallet/archi2006/2007 Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet1-2
Structure du cours
♦Performances : évolution et comparaison
♦Codage de l’information
♦Fonctions logiques et éléments mémoires
♦Systèmes à microprocesseurs
♦La famille Intel - 80x86
♦Le PowerPC d’IBM
♦Éléments avancés (parallélisme, mémoire, ...)
♦Conception d'architectures numériques - VHDL
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-3
Facteurs d'Évolution des performances
♦ Technologie : � Tubes à vide (46-57), transistors (58-64), SSI-MSI (65-
71), LSI (72-77), VLSI(78-?)
♦ Densité :nombre de transistors sur une zone de silicium ( < 0.1µm)� Loi de Moore : + 50% par an depuis 1980
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-4
Illustration de la loi de Moore http://www.intel.com/research/silicon/mooreslaw.htm
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-5
♦ Technologie
♦ Densité
♦ Vitesse :rapidité des portes logiques et mémoires� augmente en moyenne de 13% par an
♦ Surface : taille physique du + grand circuit intégré
... mais aussi
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-6
Surface et wafer
30 cm de diamètre 1 circuit intégré
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-7
Comparaison de performances
♦ Performance = terme très vague� le plus souvent associé à la rapidité
� plusieurs métriques pour décrire les systèmes et sous-systèmes
♦ compromis avec la facilité de programmation� Architectures orthogonales (RISC)
• Faciles à programmer, mais moins optimisées
� Architectures optimisées (DSP)• Très optimisées, moins faciles à programmer
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-8
MIPS / FLOPS
♦ 2 unités fréquemment utilisées :� Mips : Million d ’Instructions Par Seconde
� Flops : FLoating-point Operations Per Second
♦ Problème� Suivant le système, on a un nombre différent
d ’instructions pour la même tâche
� Compare 2 implémentations sur le même système
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-9
CPI/IPC
♦ CPI= nbre de cycles pour chaque instruction
♦ IPC= nbre d'instructions par cycle
CPI = 1/IPC
♦ Ces métriques ne donnent pas de temps d'exécution mais sont très utiles en simulation
♦ On multiplie par la période d'horloge pour obtenir un temps
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-10
Banc d'essai (benchmark)
♦ Série de programmes représentatifsd'une famille d'applications donnée
♦ SPEC :Standard Performance EvaluationCorporation -http://www.spec.org� SPEC CPU2000 = CINT2000 + CFP2000
� serveur web, graphique, unités de stockage
� Temps d'exécution total ≠ MIPS ou IPC
� Tous les constructeurs utilisent les mêmes tests
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-11
CINT2000
♦ Calculs intensifs sur les entiers
164.gzip Compression175.vpr FPGA Placement et routage176.gcc Compilateur C181.mcf Optimisation combinatoire186.crafty Echecs197.parser Traitement de texte252.eon Visualisation C++253.perlbmk PERL254.gap Interpréteur, théorie des groupes255.vortex Base de données, OO256.bzip2 Compression
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-12
Moyennes arithmétiques et géométriques
♦ Moyenne arithmétique de n entiers� Somme des entiers divisée par n
� e.g. (4+2+4+82) / 4 = 23, (8+8+8+8)/4 = 8
♦ Moyenne géométrique de n entiers� Racine nième du produit des entiers
� e.g.
� Moins sensible aux valeurs accidentelles 16,7824244 =××× 888884 =×××
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-13
Le monde du numérique
signal logique et mot
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-14
Numérique ou analogique ?
♦ Analogique : � Échelle continue de valeurs => sensible au bruit
♦ Numérique :� Échelle discrète de valeurs : binaire, ternaire, ... ?
� BInary digiT = BIT (0 ou 1) : valeurs logiques
émetteur
+Vcc
0
Vsup
V inf
1
0
récepteur
+Vcc
0
Vsup
V inf
1
0
VSsup> VEsupVSinf < VEinf
+Vcc
0
VSsup
VSinf
1
0
+Vcc
0
VEsup
VEinf
1
0
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-15
Mots de bits
♦ 1 signal logique représente 21 valeurs : bit
♦ N signaux représentent 2n valeurs : mot
♦ 8 signaux représentent 28=256 valeurs : octet
♦ Codage binaire naturel : entiers non signés� bits ordonnés de 0 à n-1 (de droite à gauche)
� Le ièmechiffre pèse 2i : (e.g. 0b100111)
� En décimal, le ièmechiffre pèse 10i :• 1995 = 1.103+9.102+9.101+5.100
∑−
=
1
02*
n
i
i
ib
∑−
=
1
010*
n
i
i
ib
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-16
Généralisation en base b
♦ Exemple :Base 2
N = an bn + an-1 b
n-1 + ..... + a1 b1+ a0
b0
Poids fort Poids faible
1010 = 1.23 + 0.22 + 1.21 + 0.20
1010 = 10102
Indique la base
ai bi
Poids de ai
Rang de ai
ai = 0 ou 1 => bitbase
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-17
Numération Octale et Hexadécimale
♦ Octale: 8=23 symboles 0, 1, 2, 3 ... 7♦ Hexadécimale: 16 symboles 0,1,2,3 ...9,A,B,C,D,E,F
� Passage de la base 10 à la base 8 ou 16
• divisions successives par 8 ou 16
� Passage de la base 2 à la base 8 ou 16
• décomposition en groupe de 3 ou 4 bits
• remplacement de chaque groupe par sa valeur dans la nouvelle base
Exemples: 1011101,0110121 011 101,011 010Base 8 = 135,328
101 1101,0110 1000Base 16 = 5D,6816
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-18
Partie fractionnaire (virgule fixe)
♦ (0,572)10 = 5*10-1 + 7*10-2 + 2*10-3
♦ (0,011)2 = 0*2-1 + 1*2-2 + 1*2-3
♦ (0,b-1b-2...b-n)B = b-1*B-1 + b-2*B-2 + ... + b-n*B-n
� où 0 ≤ b-i < B, ∀i
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-19
Passage de la base 10 à la base 2
20 2
0 10 2
0 5 2
1 2 2
0 1 2
1 0
Bit poids faible
Bit poids fort
2010 = 101002
♦ Partie entière : divisions successives par 2
♦ Partie fractionnaire : multiplications successives par 2 0,375 * 2 = 0, 750,75 * 2 = 1, 50,5 * 2 = 1
0,37510 = 0.0112
20,37510 = 10100.0112
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-20
Signe/valeur absolue
♦ Le signe a 2 valeurs possibles (+ ou - ) : 1 bit� Le bit de poids fort code le signe
� les autres bits représentent la valeur absolue
� e.g.• 0b00001100représente la valeur +12
• 0b10001100représente la valeur -12
� Avec n bits on représente les valeurs • de – (2n-1-1) à +(2n-1-1)
♦ 2 problèmes� Comment coder 0 ?
� Circuits spéciaux pour les opérations arithmétiques (cf. TP)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-21
Décimal codé binaire (DCB)
♦ Chaque chiffre décimal est codé en binaire sur 4 bits
♦ Utile lorsqu'il y a des sorties sur des afficheurs
♦ Exemple :199510 = 0001 1001 1001 0101dcb
� Le signe est stocké dans le quartetle + significatif
� Selon les constructeurs :+ = 0000 et - = 1111
+ = 1011 et - = 1101 (Correspond aux caractères + et - en ascii)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-22
Blocs, fonctions et portes logiques
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-23
Blocs et fonctions logiques
♦ Un bloc logiquemanipule des entrées binaires pour produire des sorties
♦ Chaque sortie réalise une fonction logique:� Les fonctions combinatoires(e.g. addition)
• ne dépendent que des entrées E: S = f(E)
� Les fonctions séquentielles ou à mémoire• dépendent des entrées et du passé (état Q) : S=f(E,Q)
• l'état évolue au cours du temps : Q+ = g(E,Q)
• e.g. compteur
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-24
Modèle logique du transistor
♦ Transistor N (Très bonne conduction si S = 0 )� Quand G=0, le transistor est bloquant
� Quand G=1, le transistor est passant (Source->Drain)
♦ Transistor P (Très bonne conduction si S = 1 )� Quand G=0, le transistor est passant (Source->Drain)
� Quand G=1, le transistor est bloquant
Transistor N Transistor P
D S
D S
D S
D S
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-25
Fonction NON, inverseur
♦ Fonction logique NON :
♦ Table de vérité :
♦ Porte logique (réalisation) : inverseur� 1 transistor N et 1 transistor P
� Tous les signaux sont de bonne qualité
0 1 1 0
0110
a a
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-26
Portes universelles : NAND
♦ Toute fonction logique peut être réalisée avec un seul type de “porte universelle”:� La porte NAND qui réalise la fonction NAND
aaa =•
101
011
110
100
a•bba
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-27
Porte NAND à 3 entrées
♦ Le nombre de transistors en série dans les réseaux N et P est limité (3-5)
1110
1001
1101
1011
1
0
1
0
c
110
011
100
100
a•b•cba
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-28
Portes universelles :NOR
� Ou la porte NOR qui réalise la fonction NOR
aaa =+
001
011
010
100
a+bba
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-29
Fonction ET
Produit logique (AND) :a • b
babaaaa +=•=•=• ,00 ,1001
111
010
000
a•bba
– Exercice : réaliser une porte AND avec que des NOR, compter les transistors
baba •=•
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-30
Fonction OU
♦ Somme logique (OR) :a + b
babaaaa •=+=+=+ ,0 ,11101
111
110
000
a+bba
– Exercice : réaliser une porte OR avec que des NAND, compter les transistors
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-31
Fonction OU exclusif
♦ Ou exclusif (XOR) :
bababa •+•=⊕101
011
110
000
a⊕⊕⊕⊕bba
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-32
Multiplexage
♦ La fonction multiplexagepermet de sélectionner une entrée parmi 2
♦ Un multiplexeur à 2n entrées nécessitent n bits de sélection
MultiplexeurOS
b1
a0
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-33
Décodeur n vers 2n
♦ La fonction décodage3 bits permet de sélectionner une sortie parmi 23=8
♦ Un démultiplexeur à 2n sorties nécessitent n bits d’entrée
♦ Le numéro de la sortie sélectionnée est codé en binaire naturel sur l’entrée
Décodeur 3 vers 83
E8
S
00000001111
00000010011
00000100101
00001000001
00010000110
00100000010
01000000100
10000000000
S0S1S2S3S4S5S6S7E0E1E2
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-34
Compteur (m,k)
♦ Entrée : mot de m bits Sortie : mot de k bits
♦ La fonction compteur(m,k)� compte le nombre de 1 présents sur ses m entrées
� donne le résultat sur k bits en numération simple de position(binaire naturel)
♦ Un compteur (2,2) est appelédemi additionneur
♦ Un compteur (3,2) est un additionneur complet
(m,k)am-1
a0...
s0sk-1 ...
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-35
Demi additionneur
♦ Équation arithmétique: 2r+s = a+b
♦ Équations logiquess = a ⊕ b r = a•b
réalisation :retenue
somme
2
1
1
0
Nb
0111
1001
1010
0000
srba
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-36
Additionneur complet
♦ Équation arithmétique: 2r+s = a+b+c
♦ Équations logiquess = a ⊕ b ⊕ c r = a•b+a•c+b•c
♦ Plusieurs réalisations possibles (cf. TP)
3
2
2
1
2
1
1
0
Nb
00000
10010
10001
01011
1
1
1
1
c
1111
0101
0110
1000
srba
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-37
Additionneur 4 bits
♦ 4 additionneurs completsen parallèle♦ Si Cout = 1, dépassement (overflow)♦ Attention: faux parallélisme
� Le temps de calcul est proportionnel au nombre de bits : temps de propagation de la retenue
� Il existe des versions avec anticipation de retenue
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-38
Le complément à 2♦ 2 cas
� Nombres positifs :binaire naturel, le bit de poids fort est 0� Nombres négatifs :inverser chaque bit de la valeur
absolue, ajouter 1, le bit de poids fort est FORCEMENT 1� Exemple :
• +12 est représenté par 00001100• -12 est représenté par 11110100
♦ En circuit :� Pas de circuit spécial pour l'addition signée� Pour la soustraction, on ajoute l'opposé
♦ Dissymétrique :� Représente les valeurs de -2n-1 à 2n-1-1
Inverser les bits11110011
+ 1
= 11110100
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-39
♦ En complément à 2 :
♦ Quand add/sub vaut 0, additionneur4 bits : 0⊕bi=bi
♦ Quand add/sub vaut 1, soustracteur4 bits : 1⊕bi=¬bi� La retenue entrante du bit de poids faible est 1
1)( ++=−+=− BABABA1+=− BB
Additionneur/Soustracteur : 1 circuit
(complément à 2)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-40
UAL 1-bit
♦Unité Arithmétique et Logique� Opérations arithmétiques simples (+, -)
� Opérations logiques (And, Or, Xor, Lsh, Ash)
Les opérateurs sont mis en parallèleA chaque fois qu'une entrée change les deux opérations sont effectuées
Une seule sortie doit être validecode opération (1 bit = 2 opérations)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-41
UAL n-bit♦ n ALU 1-bit en parallèle
♦ Les retenues des additionneurs sont cascadées
♦ Un code opération (c0, c1) pour choisir la valeur de sortie
♦ Une UAL produit aussi des indicateurs(flags):� Z : le résultat est nul
� C : la retenue
� N : le résultat est négatif
� V : dépassement de capacité (overflow)
Xn
Yn
Sn
c0 c1
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-42
Nombres approchés
Partie fractionnaireReprésentation à virgule flottante
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-43
Nombres approchés
♦ Nombres à virgule fixe� Des bits sont réservés pour la partie imaginaire
♦ Nombres à virgule flottante : ANSI/IEEE 754� Représentés par mantisse x 2exposant
� 2 précisions • Précision simple sur 32 bits
• Précision double sur 64 bits
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-44
La virgule flottante
♦ On déplace la virgule après le premier chiffre significatif
♦ On compense avec un exposant
♦ Exemple : 1011101,011012101110,1011012 x 211011101,011012 x 20
10111,01011012 x 221011,101011012 x 23101,1101011012 x 2410,11101011012 x 251,011101011012 x 261,011101011012 x 26
mantisse exposant
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-45
Simple précision : float
� (1,M)2 nombre binaire = mantisse préfixée de '1,'
� -0 : nombre négatif dont la valeur absolue est < à 2-149
� NaN: Not a Number (e.g. Racine d'un nombre négatif)
� Infini signifie que la valeur absolue est > à 2127x(2-2-23)
-∝02551
+∝02550
NaN>0255-
-0001
+0000
(-1)Sx2-126x(0,M)2>00S
(-1)Sx2E-127x(1,M)2ME=]0,255[S
Nombre représentéMantisseExposantSigne
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-46
Exemples
� 0 10000000 00000000000000000000000 • = (-1)0 x 2128-127x(1,0)2 = 2
� 0 10000001 10100000000000000000000 • = (-1)0 x 2129-127x(1,101)2 = 4 x 1.625 = 6.5 • car (1,101)2 = 1x20+1x2-1+0x2-2+1x2-3 = 1,625
� 0 00000000 00000000000000000000001 • = (-1)0 x 2-126x2-23 = 2-149
• Plus petit nombre que l'on peut représenter en simple précision
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-47
Double précision : double
� 2047 = 211-1 : 11 bits d'exposant, 52 bits de mantisse
-∝020471
+∝020470
NaN>02047-
-0001
+0000
(-1)Sx2-1022x(0,M)2>00S
(-1)Sx2E-1023x(1,M)2ME=]0,2047[S
Nombre représentéMantisseExposantSigne
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-48
Compléments sur IEEE 754
♦ La représentation en complément à 2sur 32 bits permet de représenter un intervalle de 232 valeurs
♦ La représentation en virgule flottantepermet de représenter un intervalle de 2256 valeurs� Moins de précisions sur les valeurs très grandes et très petites
� Bonne précision sur les valeurs entre -1 et 1
0-∞ +∞≈ -2128 ≈ -2-149 ≈ 2-149 ≈ 2128
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-49
Arrondis
♦ Manipulations étendues :� simple précision étendue (43 bits)
� double précision étendue (80 bits)
♦ 4 modes :� Round-to-nearest : par défaut
• Si au milieu de 2 valeurs, 0 en poids faible
� Round-to-zero : conversion en entiers
� Round-to-+∞ et Round-to--∞
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-50
Précision
♦ (0,1)10 = (1,1001100…)2*2-4
♦ (0,1+0,1)10
=(1,1001100…1101)2*2-3 En précision infinie
=(1,1001100…1100)2*2-3 En précision sur 43 bits
♦ (0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1)10
=(1,1001100…1101)2*2-1 En précision sur 43 bits
=(1,1001100…1110)2*2-1=0.8 En précision infinie
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-51
Représentation des caractères
♦ Caractères à coder, alphabet + , ! * " %
♦ Code ASCII (7 bits + 1 bit de parité)� AmericanStandard Code for Information Interchange
� permet 128 combinaisons différentes 27
� utilisation de cette table ...
♦ Code EBCDIC (8 bits)� ExtendedBinaryCodedDecimalInterchangeCode
� Utilisé principalement par IBM
♦ Code ANSI� AmericanNational Standard Institute
� Utilisés par certains logiciels (Windows)
� Code ASCII + extensions multilingue
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-52
Évolution du code ASCII
♦ "iso-latin-1", connu sous le nom iso-8859-1� le huitième bit qui servait pour le contrôle de parité, va
être utilisé pour coder plus de caractères.
� Les codes ASCII de 0 à 7F (127 en décimal) demeurent inchangés,
� les codes supérieurs (ceux qui ont le bit 7 à 1) représentent quelques symboles supplémentaires, ainsi que les lettres accentuées qui satisfont aux exigences des langues de l'Europe de l'Ouest
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-53
Code iso-latin-1 (iso-8859-1)
‘G’ est codé 47h soit 0100 011122006/2007 Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet1-54
Bibliographie
♦ « Architecture de l’ordinateur »� N. P. Carter, Schaum’s, EdiScience, 2002
♦ « Architecture des ordinateurs - Une approche quantitative »� J.L. Hennessy, D.A. Patterson, Vuibert, 2003
♦ « Architecture de l’ordinateur »� A. Tanenbaum, Dunod, 2001
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-55
La logique séquentielle et les éléments mémoire
♦Les fonctions combinatoires n'intègrent pas la notion de tempset de mémorisation
♦Ces notions sont nécessaires au fonctionnement de plusieurs composants
♦Notion de temps = Horloge� Une action d'un processeur est un enchaînement
d'étapes� Les horloges sont des signaux périodiques qui
déterminent l'instant auquel les différentes parties se synchronisent
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-56
Horloge (1/2)♦Logique séquentielle synchrone
� Synchronisation sur front d'impulsion d'horloge(de montée ou de descente)
� En général, une seule horloge par processeur
♦Les systèmes sans horloge sont ditsasynchrones
Cycle, période Th
Front de montée Front de descente
Th
fréquence 1=
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-57
Exemple sur l’UAL 1-bit
♦Tous les chemins n’ont pas la même longueur� Plus de portes à traverser (Cout, O)
� Le temps dépend du routage♦Solution facile à mettre en œuvre
� Synchroniser les entrées/sorties (éléments mémoire)2006/2007 Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet1-58
Horloge 2/2
♦ Les signaux d'entrée des composants mémoire doivent être valideslors du front d'horloge� Stablesi les entrées ne changent pas
♦ La périodede H doit être suffisamment grande par rapport au temps de stabilisationdu plus lent des blocs combinatoires : Th > Tmin
bloccombinatoire
Élément mémoire 2
H
Élément mémoire 1
H
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-59
Les éléments mémoire♦ L'information à mémoriser est modélisée par un Etat Q
♦ Pour une mémoire élémentaire (1 bit) : Q+ = f(E,Q)
♦ Ces mémoires peuvent être réalisées avec de la logique combinatoire asynchrone� Rétroaction, utilise le délai des portes
c=0, la barrière est ferméeQ+ = Q
c=1, la barrière est ouverteQ+ = E
δt Q
E Q+
c
1111
1011
0101
0001
1110
0010
1100
0000
Q+QEc
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-60
Latch SR asynchrone
♦Complètement combinatoire� La rétroaction et le délai réalisent la
mémorisation� Set: fixe la sortie à 1, Reset: fixe la sortie à 0� La combinaison S=1 R=1 est interdite et pose des
problèmes d'oscillation (cf. TP2)
Non utilisé11
101
010
Q00
Q+R(eset)S(et)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-61
Latch D synchrone
♦Le latchD est actif sur niveau hautde l'horloge� H=0, le latchest fermé, Q+ = Q
� H=1, le latchest ouvert 'transparent', Q+ = D
♦D doit être valide avant le front descendant de H
♦R et S ne peuvent plus être à 1 simultanément
111
001
Q10
Q00
Q+DH
111
001
Q10
Q00
Q+DH
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-62
Exemple de bon fonctionnement♦Chronogramme :
� Ici, l'horloge est périodique mais pas symétrique
� Latchsynchrone, car il y a une horloge
Donnée D
Horloge H
Sortie Q
Etat initial Q=0δt = temps de mémorisation
δt
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-63
Limitations du latch D
♦Un latchD peut séparer deux composants
♦Mais ne convient pas pour plus de deux� Quand H=1, les deux latchsD1 et D2 s'ouvrent
� Les données traversent les 2 étages en 1 cycle• Ssi T1+T2 < TH/2
bloccombinatoire 1
bloccombinatoire 2
bloccombinatoire 3
D2
Horloge H
T1 T2T3
TH
D1
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-64
Bistable et Maître-Esclave♦Un bistable est une bascule synchronisée sur front
d'horloge, le latchD est synchronisé sur niveau
♦Réalisation avec une commande Maître-Esclave� 1 horloge H1 commande l'écriture : Maître
� 1 horloge H2 commande la lecture : Esclave
Maître
D
H
Q
Esclave
D
H
Q
H1 H2
021 =•HH
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-65
Bistable D -Flip-Flop♦En pratique, 1 seule horloge H génère H1 et H2
♦Les sorties sont activées sur front de descente de H
♦L'entrée I doit être valide avant et après le front actif� Temps d'établissement(setup), temps de maintien(hold)
Bistable D
D
H
Q
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-66
Les registres♦Un registre 1-bitest un bistable D avec 1 entrée W
� L'entrée synchroneW(rite) contrôle l'écriture� W=1 : contrôle par l'horloge; W=0 : désactivé
♦Un registre n-bitest constitué de n registres 1-bit
b0
b1
b2
b3
WH
Registre 4-bit
4 4
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-67
Les bancs de registres
♦Les registres peuvent être regroupés en bancs� On lit ou écrit en donnant le numéro du registre(adresse)� E.g. 2 lectures et 1 écriture dans le même cycle d’horloge� E.g. Pour un banc de 8 registres, il faut 3 bits de sélection
R044
w
R744
w
Banc de 8 registres de 4 bits
4
4
4
3
3
3
W Donnée 1 à lire
Donnée 2 à lire
Donnée à écrire
N° reg écritureN° reg 1 lectureN° reg 2 lecture
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-68
Commande de lecture - multiplexeur
♦ Pour la lecture : simple multiplexeur� Coût important et temps de traversée = O(n)� Que se passe-t-il quand on ne veut pas lire ?� Remarque : Il est interdit de connecter ensemble deux
sorties logiques sauf ...
R044
w
R744
w
4
N° du registre de lecture
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-69
Coût du multiplexeur
♦ Ici, seulement 4 entrées� 4 portes à 3 entrées� 1 porte à 4 entrées� Coût = Nombre de portes
• en O(n)
♦Banc de registres : 8 registres� 8 portes à 4 entrées� 1 porte à 8 entrées ????
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-70
Logique à 3 états et bus♦ Une sortie 3 étatspeut prendre un des 3 états :
� État logique 0, état logique 1
� État déconnecté (pas logique dit “haute impédance”)
� Un tel signal est réalisé avec une commande Enable
♦ 1 bus coûte bien moins cher qu’un multiplexeur
Ligne de bit commune (bus 1 bit)
1 contrôleur autorise 1 seuleligne à la fois :
e.g. Décodeur d'adresse
symbolise une sortie à 3 états
O=I ssi E(nable)=1
Porte de transfert à 3 états
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-71
Banc de registres et bus 3 états♦Plus le bus est long, plus le temps de
propagation est grandb0
b1
b2
b3
E0
b0
b1
b2
b3
E7
R0
R7
D0
D1
D2
D3
Bus 3 états 4 bits
Décodeur3 vers 8
3
N° du registreà lire
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-72
Les mémoires RAM
♦ Réseaux de mémoires élémentaires de taille supérieure aux bancs de registres
♦ Coût (financier + surface) proportionnel à la rapidité� Mémoire rapide (statique) : SRAM (1ns)
• Petites (cache)
� Mémoire lente (dynamique) : DRAM (60-70ns)• Plus grandes (mémoire principale)
� Disque dur: mémoire virtuelle (10ms)• Beaucoup plus lent (/103), beaucoup plus grand
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-73
Structure des puces mémoire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Cellulebinaire
Moitiésupérieure des bits d'adresse
Multiplexeur ou bus 3 états
Décodeur
Moitiéinférieure des bits d'adresse
Sortie
Lignes de mot
Lignes de bit
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-74
Structure des puces mémoire
♦Chaque cellule binaire mémorise 1 bit♦Les bits de poids élevésont chargés dans un
décodeur pour activer une ligne de mot♦Les bits de poids faiblesélectionnent la ligne de bit
(multiplexeur ou contrôleur 3 états)♦Pour avoir une mémoire sur plusieurs bits
� Plusieurs plans de cellules binaires (8 plans pour 1 octet)� Logique plus compliquée de sélection des lignes de bit
♦Les matrices ne sont pas carrées :� Mémoire 8 bits : 8 cellules binaires par rangée (mot)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-75
Rapidité des mémoires♦ La rapiditédes mémoires est déterminée par :
� La longueur des lignes de mot et des lignes de bit• Mémoires modernes : plus de petites matrices
� La manière dont les cellules binaires sont construites• SRAM : 6 transistors, plus rapide mais plus grande
• DRAM : 1 transistor, moins rapide et moins grande
♦ Temps d'accès (latence) � Durée entre l'activation et l'obtention d'une donnée
valide (peut être de plusieurs cycles)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-76
SRAM ( Static RAM)
♦Quand la ligne de mot est inactive� La donnée est mémorisée indéfiniment (statique)
♦Quand la ligne de mot est active� Lecture : la valeur et son inverse vers les lignes de bit
• Puis sélectionnées en sortie
� Écriture : les 2 lignes de bit sont alimentées avec la valeur à mémoriser et son inverse
Cellule de SRAM6 transistors
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-77
DRAM (Dynamic RAM)
♦ Lorsque la ligne de mot est active, le condensateur est connecté à la ligne de bit
♦ Sinon, il se décharge petit à petit (dynamique)
♦ Les DRAM ont une capacité plus grosse que les SRAM et sont plus lentes
♦ Les DRAM doivent être rafraîchies régulièrement
Cellule binaire DRAM1 transistor1 condensateur (1 connexion)
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-78
Rafraîchissement de DRAM
♦ Les rangées sont rafraîchies en lisant la valeur et en la ré-écrivant immédiatement
♦ Si les rangées sont rafraîchies suffisamment souvent, leur contenu est préservé indéfiniment
♦ Les DRAM indique un temps de rafraîchissement� Plusieurs politiques de rafraîchissement existent
� Par exemple, on peut rafraîchir chaque rangée les unes après les autres
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-79
DRAM et DRAM paginées
♦ DRAM� La transmission de l'adresse se fait en 2 phases
• RAS : l'adresse de la rangée (bits de poids forts)
• CAS : l'adresse de la colonne (bits de poids faibles)
♦ DRAM paginées (FastPage Mode)� Lors de RAS tous les bits de la rangée sont
mémorisés dans un latch
� Plusieurs CAS successifs permettent de lire tous les bits de la rangée et de réduire le temps d'accès
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-80
DRAM ExtendedData Out
♦ Apparues en 1995 en remplacement de FPM� Lorsqu’une donnée est lue, l’adresse de la rangée
suivante est générée automatiquement
� Bonne accélération, lorsqu’on lit des données consécutives
� Cette technologie asynchroneest limitée par la fréquence d’horloge� Mémoires synchrones« avec le processeur »
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-81
Mémoires synchrones
♦SDRAM (Synchronous DRAM) - 1997� La mémoire se branche sur la fréquence d’horloge du
processeur, le processeur n’a plus besoin d’attendre
♦DDR-SDRAM (Double Data Rate SDRAM)� Apparue en 1999
� Plusieurs canaux de lecture en même temps (2 ou 4)
� En pratique on couple 2 barrettes mémoires
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-82
Conditionnement
♦SIMM (Single Inline Memory Module)� Circuits imprimés rectangulaires
� 30 ou 72 broches
♦DIMM (Dual Inline Memory Module)� 168 broches
� Plus besoin de coupler 2 barrettes (2 bancs sur la même barrette)
� Détrompeur pour l’installation
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-83
Contrôle
Machines à états finis
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-84
Machines à états finis♦ Les systèmes de contrôlecadencent les différents
composants assemblés (e.g. multiplieur)
♦ On les décrits avec des machines à états finis
♦ Mealy et Moore ont le même pouvoir d'expression
Fonction de sortiesortie = h(q,e)
mSortie
Fonction état suivantq+ = f(q,e) Mealyq+ = f(q) Moore q+
état suivant
État courant
n
Horloge
Entrée
n
q
Blocs combinatoires
Réseaux de bistables D
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-85
Multiplication binaire non signée
♦ Une multiplication n bits est équivalente à n additions
♦ On accumuleles résultats intermédiaires dans un registre 2n-bit
0 0 1 1x 0 1 1 1
0 0 1 1+ 0 0 1 1 0
0 1 0 0 1+ 0 0 1 1 0 0
0 1 0 1 0 1+ 0 0 0 0 0 0 0
0 0 1 0 1 0 1Résultats intermédiaires
Registre 1 Registre 2
+
Accumulateur
opérande1 opérande2
DécalageWin
RAZWaccu
Signaux de contrôlechemin de données
Compteurccontrôle
b0
incrémenter
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-86
Contrôle du multiplieur♦Entrées :
� b0 (bit de poids faible du registre 2) et c (compteur=n)
♦Sorties :� Win (valider les opérandes), Waccu(accumuler)
� Décalage, incrémenter
♦4 états (2 bits q1 q0) :� Initial : mise à zéro accu et compteur, lire opérandes
� Calcul: en cours de calcul
� Addition : b0 vaut 1, on accumule
� Final : le calcul est terminé
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-87
Machine à états pour le multiplieur
Initialq1=0,q0=0
Calculq1=0,q0=1
Additionq1=1,q0=0
Finalq1=1,q0=1
[c=1]
/ Win, RAZ
[c=0 & b0=0] / decalage, incrementer
[c=0 & b0=1] / Waccu, incrementer
/ decalage
000001111--
010001001--
000001111
000001101
101000110
1100010
10
00
000111000--
IncrDécWaccuRazW inq0+q1
+q0q1b0c
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-88
Équations logiques
♦ Ces fonctions logiques peuvent être réalisées simplement avec des réseaux logiques programmables (RLP)
10 qqRAZW in•==
010 qqbcW accu•••=
01 qqcrIncrémente ••=accuWq =+
0
010101 )( qqbcqqq ••++•=+
01010 qqqqbcDécalage •+•••=
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-89
Réseau Logique Programmable
♦ 3 cas de “programmation”� Les 2 matrices sont figées
• ROM = Mémoire morte
� Matrice OU figée• PAL = Programmable Array Logic
� Les 2 matrices sont programmables
• PLA = Programmable Logic Array
Matrice portes ET
Matrice portes OU
n
p
m
entrées
produits
sorties
2006/2007 Architecture des Ordinateurs - Licence Informatique L3Frédéric Mallet
1-90
Application au multiplieur
♦ marquer les intersections pour programmer le PLA
b0
c
q0
q1
Matrice OU
MatriceET
Win = RAZ
10 qq •
10 qq •
Décalage
10 qq •
010 qqcb •••
100 qqcb •••
01 qqc ••
100 qqb ••
+= 0qWaccu
10 qqRAZW in•==
010 qqbcW accu•••=
01 qqcrIncrémente ••=accuWq =+
0
010101 )( qqbcqqq ••++•=+
01010 qqqqbcDécalage •+•••=
+1q
Incrémenter