Architecture des ordinateurs Structure du cours

publicité
Structure du cours
Cours du 29 septembre 2006
Architecture des ordinateurs
♦Performances
Cours (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/archi
2006/2007
Licence Informatique L3
1-1
Facteurs d'Évolution des performances
♦ Technologie
: é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 L3
Frédéric Mallet
1-2
Illustration de la loi de Moore
http://www.intel.com/research/silicon/mooreslaw.htm
:
Tubes à vide (46-57), transistors (58-64), SSI-MSI (6571), 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 L3
Frédéric Mallet
1-3
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-4
Surface et wafer
♦ Technologie
♦ Densité
... mais aussi
♦ Vitesse
: rapidité des portes logiques et mémoires
augmente en moyenne de 13% par an
♦ Surface
: taille physique du + grand circuit intégré
30 cm de diamètre
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-5
Comparaison de performances
♦ Performance
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-6
MIPS / FLOPS
= terme très vague
♦2
le plus souvent associé à la rapidité
plusieurs métriques pour décrire les systèmes et
sous-systèmes
♦ compromis
2006/2007
1 circuit intégré
unités fréquemment utilisées :
Mips : Million d ’Instructions Par Seconde
Flops : FLoating-point Operations Per Second
avec la facilité de programmation
♦ 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
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 L3
Frédéric Mallet
1-7
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-8
CPI/IPC
Banc d'essai (benchmark)
♦ 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 L3
Frédéric Mallet
1-9
164.gzip
175.vpr
176.gcc
181.mcf
186.crafty
197.parser
252.eon
253.perlbmk
254.gap
255.vortex
256.bzip2
2006/2007
de programmes représentatifs d'une
famille d'applications donnée
♦ SPEC : Standard Performance Evaluation
Corporation - 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 L3
Frédéric Mallet
1-10
Moyennes arithmétiques et
géométriques
CINT2000
♦ Calculs
♦ Série
Compression
FPGA Placement et routage
Compilateur C
Optimisation combinatoire
Echecs
Traitement de texte
Visualisation C++
PERL
Interpréteur, théorie des groupes
Base de données, OO
Compression
♦ Moyenne
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
4
e.g. 4 4×2×4×82 =7,16
8×8×8×8 =8
Moins sensible aux valeurs accidentelles
intensifs sur les entiers
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
arithmétique de n entiers
1-11
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-12
Numérique ou analogique ?
♦ Analogique
:
Échelle continue de valeurs => sensible au bruit
♦ Numérique
Le monde du numérique
:
Échelle discrète de valeurs : binaire, ternaire, ... ?
BInary digiT = BIT (0 ou 1) : valeurs logiques
signal logique et mot
11
00
+Vcc
+Vcc
V
Vsup
Ssup
1
VSsup > VEsup
VSinf < VEinf
V
Vinf
Sinf
00
Esup
0
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-13
Mots de bits
2006/2007
signal logique représente 21 valeurs : bit
♦ N signaux représentent 2n valeurs : mot
♦ 8 signaux représentent 28=256 valeurs : octet
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
binaire naturel : entiers non signés
bits ordonnés de 0 à n-1 (de droite à gauche)
n−1
i
Le ième chiffre pèse 2i : ∑bi*2 (e.g. 0b100111)
i=0
En décimal, le ième chiffre pèse 10i : n−1 * i
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-14
N = an bn + an-1 bn-1 + ..... + a1 b1+ a0
b0
Poids fort
♦ Codage
2006/2007
VEinf
V
inf
Généralisation en base b
♦1
• 1995 = 1.103+9.102+9.101+5.100
0
récepteur
émetteur
2006/2007
+Vcc
V
Vsup
Poids de
♦ Exemple
i
1-15
Rang de
base
ai
ai
Poids faible
ai = 0 ou 1 => bit
: Base 2
1010 = 1.23 + 0.22 + 1.21 + 0.20
1010 = 10102
∑b 10
i=0
ai
bi
Indique la base
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-16
Numération Octale et Hexadécimale
Partie fractionnaire (virgule fixe)
♦ Octale
: 8=23 symboles 0, 1, 2, 3 ... 7
♦ Hexadécimale : 16 symboles 0,1,2,3 ...9,A,B,C,D,E,F
♦ (0,572)10
Passage de la base 10 à la base 8 ou 16
• divisions successives par 8 ou 16
♦ (0,011)2
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
= 5*10-1 + 7*10-2 + 2*10-3
= 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
Exemples : 1011101,011012
Base 8
1 011 101,011 010
Base 16 101 1101,0110 1000
2006/2007
= 135,328
= 5D,6816
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-17
♦
Partie entière : divisions successives par 2
20 2
Bit poids faible
0 10 2
0 5 2
1 2 2
0 1
1
Bit poids fort
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-18
Signe/valeur absolue
Passage de la base 10 à la base 2
♦
2006/2007
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.
2010 = 101002
2
0
• 0b00001100 représente la valeur +12
• 0b10001100 représente la valeur -12
Avec n bits on représente les valeurs
♦
Partie fractionnaire : multiplications successives par 2
0,375 * 2
0,75 * 2
0,5
*2
=
=
=
0, 75
1, 5
1
♦
0,37510 = 0.0112
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
2 problèmes
Comment coder 0 ?
Circuits spéciaux pour les opérations arithmétiques (cf. TP)
20,37510 = 10100.0112
2006/2007
• de – (2n-1-1) à +(2n-1-1)
1-19
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-20
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
Blocs, fonctions et portes logiques
Le signe est stocké dans le quartet le + significatif
Selon les constructeurs :
+ = 0000 et - = 1111
+ = 1011 et - = 1101 (Correspond aux caractères + et - en ascii)
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-21
Blocs et fonctions logiques
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-22
Modèle logique du transistor
Transistor N
Transistor P
♦ Un
bloc logique manipule des entrées binaires
pour produire des sorties
♦ Chaque sortie réalise une fonction logique :
♦ Transistor
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 L3
Frédéric Mallet
1-23
D
S
D
S
Quand G=0, le transistor est bloquant
Quand G=1, le transistor est passant (Source->Drain)
♦ Transistor
D
S
D
S
N (Très bonne conduction si S = 0 )
P (Très bonne conduction si S = 1 )
Quand G=0, le transistor est passant (Source->Drain)
Quand G=1, le transistor est bloquant
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-24
Fonction NON, inverseur
♦ Fonction
Portes universelles : NAND
♦ Toute
logique NON :
a
0
1
fonction logique peut être réalisée avec
un seul type de “porte universelle”:
a
♦ Table
de vérité :
♦ Porte
logique (réalisation) : inverseur
1
0
La porte NAND qui réalise la fonction NAND
1 transistor N et 1 transistor P
Tous les signaux sont de bonne qualité
0
1
1
a
0
0
1
1
b
0
1
0
1
a•b
1
1
1
0
0
a•a=a
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-25
Porte NAND à 3 entrées
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
2006/2007
Ou la porte NOR qui réalise la fonction NOR
a•b•c
1
1
1
1
1
1
1
0
a
0
0
1
1
b
0
1
0
1
a+b
1
0
0
0
a+a=a
nombre de transistors en série dans les
réseaux N et P est limité (3-5)
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-26
Portes universelles : NOR
♦ Le
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-27
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-28
Fonction ET
Fonction OU
Produit logique (AND) : a • b
♦ Somme
a
b
a•b
a
b
a+b
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
a•1=a, a•0=0, a•b=a+b
a•b=a•b
– Exercice : réaliser une porte AND avec que des
NOR, compter les transistors
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-29
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
Multiplexeur
2006/2007
b
a⊕
⊕b
0
0
0
0
1
1
1
0
1
1
1
0
1-30
Multiplexage
exclusif (XOR) :
a
a+1=1, a+0=a, a+b=a•b
– Exercice : réaliser une porte OR avec que des
NAND, compter les transistors
Fonction OU exclusif
♦ Ou
logique (OR) : a + b
a⊕b=a •b+a•b
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
♦
♦
1-31
S
O
0
a
1
b
La fonction multiplexage permet de sélectionner une
entrée parmi 2
Un multiplexeur à 2n entrées nécessitent n bits de
sélection
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-32
Décodeur n vers
2n
3
Décodeur 3 vers 8
E
E2 E1 E0 S7 S6
S5
S4
S3
S2
S1
S0
0 0 0
0
0
0
0
0
1
0
8
S
0
0
0 0 1
0
0
0
0
0
0
1
0 1 0
0
0
0
0
0
1
0
0
0 1 1
0
0
0
0
1
0
0
0
1 0 0
0
0
0
1
0
0
0
0
1 0 1
0
0
1
0
0
0
0
0
1 1 0
0
1
0
0
0
0
0
0
1 1 1
1
0
0
0
0
0
0
0
♦ La
fonction décodage 3 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
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-33
Demi additionneur
Compteur (m,k)
am-1
♦
♦
Entrée : mot de m 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
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
b
0
1
0
1
Nb
0
1
1
2
r
0
0
0
1
s
0
1
1
0
a
0
0
1
1
0
0
1
1
♦ Équation
arithmétique : 2r+s = a+b
♦ Équations logiques
réalisation :
r = a•b
1-34
c
0
0
0
0
1
1
1
1
Nb
0
1
1
2
1
2
2
3
r
0
0
0
1
0
1
1
1
s
0
1
1
0
1
0
0
1
arithmétique : 2r+s = a+b+c
♦ Équations logiques
retenue
s=a⊕b⊕c
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
b
0
1
0
1
0
1
0
1
♦ Équation
♦ Plusieurs
somme
2006/2007
Sortie : mot de k bits
Additionneur complet
a
0
0
1
1
s=a⊕b
a0
...
(m,k)
sk-1 ... s0
1-35
2006/2007
r = a•b+a•c+b•c
réalisations possibles (cf. TP)
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-36
Additionneur 4 bits
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 :
Inverser les bits
• +12 est représenté par 00001100
• -12 est représenté par 11110100
♦4
additionneurs complets en 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 L3
Frédéric Mallet
1-37
Additionneur/Soustracteur : 1 circuit
A−B= A+(−B)= A+B+1
♦ En complément à 2 :
= 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
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-38
UAL 1-bit
Opérations arithmétiques simples (+, -)
Opérations logiques (And, Or, Xor, Lsh, Ash)
♦ Quand add/sub vaut 0, additionneur 4 bits : 0⊕bi=bi
♦ Quand add/sub vaut 1, soustracteur 4 bits : 1⊕bi=¬bi
La retenue entrante du bit de poids faible est 1
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
11110011
1
♦Unité Arithmétique et Logique
−B=B+1 (complément à 2)
2006/2007
+
1-39
Les opérateurs sont mis en parallèle
A chaque fois qu'une entrée change
les deux opérations sont effectuées
2006/2007
Une seule sortie doit être valide
code opération (1 bit = 2 opérations)
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-40
UAL n-bit
♦ n ALU 1-bit en parallèle
♦ Les retenues des additionneurs sont
X
n
n
Y
S
n
c0 c1
2006/2007
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)
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-41
Nombres approchés
♦ Nombres
Partie fractionnaire
Représentation à virgule flottante
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
♦ On
à virgule fixe
à 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
déplace la virgule après le premier chiffre
significatif
♦ On compense avec un exposant
♦ Exemple :
1011101,011012 x 20
101110,1011012 x 21
10111,01011012 x 22
1011,101011012 x 23
101,1101011012 x 24
10,11101011012 x 25
1,011101011012 x 26
mantisse
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-42
La virgule flottante
Des bits sont réservés pour la partie imaginaire
♦ Nombres
Nombres approchés
1-43
2006/2007
exposant
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-44
Simple précision : float
Exemples
Signe
Exposant
Mantisse
Nombre représenté
S
E=]0,255[
M
(-1)Sx2E-127x(1,M)2
S
0
>0
(-1)Sx2-126x(0,M)2
0
0
0
+0
1
0
0
-0
-
255
>0
NaN
0
255
0
+∝
1
255
0
-∝
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
(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)
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
• Plus petit nombre que l'on peut représenter en
simple précision
1-45
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-46
Compléments sur IEEE 754
Double précision : double
Signe
Exposant
Mantisse
Nombre représenté
S
E=]0,2047[
M
(-1)Sx2E-1023x(1,M)2
S
0
>0
(-1)Sx2-1022x(0,M)2
0
0
0
+0
1
0
0
-0
-
2047
>0
NaN
0
2047
0
+∝
1
2047
0
-∝
♦
♦
La représentation en complément à 2 sur 32 bits permet
de représenter un intervalle de 232 valeurs
La représentation en virgule flottante permet 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
-∞
≈ -2128
≈ -2-149 0 ≈ 2-149
≈ 2128
+∞
2047 = 211-1 : 11 bits d'exposant, 52 bits de mantisse
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-47
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-48
Précision
Arrondis
♦ Manipulations
♦ (0,1)10
= (1,1001100…)2*2-4
♦ (0,1+0,1)10
étendues :
simple précision étendue (43 bits)
double précision étendue (80 bits)
♦4
=(1,1001100…1101)2*2-3 En précision infinie
=(1,1001100…1100)2*2-3 En précision sur 43 bits
modes :
♦ (0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1)10
Round-to-nearest : par défaut
=(1,1001100…1101)2*2-1 En précision sur 43 bits
=(1,1001100…1110)2*2-1=0.8 En précision infinie
• 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 L3
Frédéric Mallet
1-49
Représentation des caractères
♦
Caractères à coder, alphabet + , ! * " %
♦
Code ASCII (7 bits + 1 bit de parité)
♦ "iso-latin-1",
1-50
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.
permet 128 combinaisons différentes 27
utilisation de cette table ...
Les codes ASCII de 0 à 7F (127 en décimal) demeurent
inchangés,
Code EBCDIC (8 bits)
Extended Binary Coded Decimal Interchange Code
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
Utilisé principalement par IBM
♦
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
Évolution du code ASCII
American Standard Code for Information Interchange
♦
2006/2007
Code ANSI
American National Standard Institute
Utilisés par certains logiciels (Windows)
Code ASCII + extensions multilingue
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-51
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-52
Code iso-latin-1 (iso-8859-1)
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
‘G’ est codé 47h soit 0100 01112
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-53
La logique séquentielle et les
éléments mémoire
2006/2007
notion de temps et de mémorisation
♦ Ces notions sont nécessaires au fonctionnement de
plusieurs composants
♦ Notion de temps = Horloge
♦ 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 dits
asynchrones
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
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-54
Horloge (1/2)
♦ Les fonctions combinatoires n'intègrent pas la
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-55
Cycle, période Th
Front de montée
fréquence= 1
T
2006/2007
Front de descente
h
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-56
Horloge 2/2
Exemple sur l’UAL 1-bit
♦
Les signaux d'entrée des composants mémoire
doivent être valides lors du front d'horloge
Stable si les entrées ne changent pas
♦
♦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
La période de H doit être suffisamment grande
par rapport au temps de stabilisation du plus
lent des blocs combinatoires : Th > Tmin
bloc
combinatoire
Élément mémoire 1
Élément mémoire 2
H
H
Synchroniser les entrées/sorties (éléments mémoire)
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-57
2006/2007
♦ 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
E
Q
Q+
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
2006/2007
1
c=0, la barrière est fermée
Q+ = Q
S(et)
R(eset)
Q+
0
0
Q
0
1
0
1
0
1
1
1
Non utilisé
♦Complètement combinatoire
c
Q
E
δt
c=1, la barrière est ouverte
Q+ = E
1
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-58
Latch SR asynchrone
Les éléments mémoire
c
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-59
Q+
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)
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-60
Latch D synchrone
H
D
Q+
0
0
Q
0
1
Q
1
0
0
1
1
1
Exemple de bon fonctionnement
♦Chronogramme :
Ici, l'horloge est périodique mais pas symétrique
Latch synchrone, car il y a une horloge
Donnée D
♦Le latch D est actif sur niveau haut de l'horloge
Horloge H
H=0, le latch est fermé, Q+ = Q
H=1, le latch est ouvert 'transparent', Q+ = D
♦D doit être valide avant le front descendant de H
♦R et S ne peuvent plus être à 1 simultanément
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-61
♦Un latch D peut séparer deux composants
♦Mais ne convient pas pour plus de deux
Quand H=1, les deux latchs D1 et D2 s'ouvrent
Les données traversent les 2 étages en 1 cycle
• Ssi T1+T2 < TH/2
D1
T2 bloc
combinatoire 2
Etat initial Q=0
δt = temps de
δt
mémorisation
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
2006/2007
D2
♦Un bistable est une bascule synchronisée sur front
d'horloge, le latch D 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
D
T3 bloc
combinatoire 3
Horloge H TH
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
Q
D
Maître
H
2006/2007
1-62
Bistable et Maître-Esclave
Limitations du latch D
T1 bloc
combinatoire 1
Sortie Q
H1
1-63
2006/2007
Q
Esclave
H
H1•H2=0
H2
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-64
Les registres
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
♦Un registre 1-bit est un bistable D avec 1 entrée W
L'entrée synchrone W(rite) contrôle l'écriture
W=1 : contrôle par l'horloge; W=0 : désactivé
♦Un registre n-bit est constitué de n registres 1-bit
Temps d'établissement (setup), temps de maintien (hold)
b0
D
4
Q
4
b1
b2
H
b3
H
Bistable D
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-65
♦Les registres peuvent être regroupés en bancs
R0
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
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 ...
4
4 Donnée 1 à lire
R0
4
w
N° reg écriture 3
N° reg 1 lecture 3
N° reg 2 lecture 3
4
R7
1-66
4
w
W
2006/2007
♦ Pour la lecture : simple multiplexeur
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
4
Registre 4-bit
Commande de lecture - multiplexeur
Les bancs de registres
Donnée à écrire 4
W
4
4
4 Donnée 2 à lire
4
w
w
R7
4
N° du registre de lecture
Banc de 8 registres de 4 bits
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-67
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-68
Logique à 3 états et bus
Coût du multiplexeur
♦Ici, seulement 4 entrées
4 portes à 3 entrées
1 porte à 4 entrées
Coût = Nombre de portes
♦ Une sortie 3 états peut 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
• en O(n)
♦Banc de registres : 8
registres
Ligne de bit commune (bus 1 bit)
O=I ssi E(nable)=1
8 portes à 4 entrées
1 porte à 8 entrées ????
1 contrôleur autorise 1 seule
ligne à la fois :
e.g. Décodeur d'adresse
symbolise une sortie à 3 états
Porte de transfert à 3 états
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-69
♦Plus le bus est long, plus le temps de
propagation est grand
Bus 3 états 4 bits
D0
b2
D1
D2
b3
3
N° du registre
à lire
Mémoire rapide (statique) : SRAM (1ns)
D3
E0
Décodeur
3 vers 8
1-70
♦ Réseaux de mémoires élémentaires de taille
supérieure aux bancs de registres
♦ Coût (financier + surface) proportionnel à la
rapidité
b0
b1
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
Les mémoires RAM
Banc de registres et bus 3 états
R0
2006/2007
• Petites (cache)
Mémoire lente (dynamique) : DRAM (60-70ns)
R7
b0
• Plus grandes (mémoire principale)
b1
Disque dur : mémoire virtuelle (10ms)
b2
• Beaucoup plus lent (/103), beaucoup plus grand
b3
E7
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-71
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-72
Structure des puces mémoire
Structure des puces mémoire
Lignes de bit
Moitié
supérieure des
bits d'adresse
Moitié
inférieure des
bits d'adresse
D
é
c
o
d
e
u
r
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Lignes de mot
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
Cellule
binaire
♦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 faible sé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)
Multiplexeur ou bus 3 états
Sortie
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-73
Rapidité des mémoires
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-74
SRAM ( Static RAM)
♦ La rapidité des mémoires est déterminée par :
La longueur des lignes de mot et des lignes de bit
Cellule de SRAM
6 transistors
• 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
♦Quand la ligne de mot est inactive
La donnée est mémorisée indéfiniment (statique)
♦ Temps d'accès (latence)
Durée entre l'activation et l'obtention d'une donnée
valide (peut être de plusieurs cycles)
♦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
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-75
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-76
DRAM (Dynamic RAM)
Rafraîchissement de DRAM
Cellule binaire DRAM
1 transistor
1 condensateur (1 connexion)
♦ 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
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-77
DRAM et DRAM paginées
♦ 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 L3
Frédéric Mallet
1-78
DRAM Extended Data Out
♦ DRAM
♦ Apparues en 1995 en remplacement de FPM
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 (Fast Page 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 L3
Frédéric Mallet
1-79
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 asynchrone est limitée par la
fréquence d’horloge
Mémoires synchrones « avec le processeur »
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-80
Conditionnement
Mémoires synchrones
♦SIMM (Single Inline Memory Module)
♦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 L3
Frédéric Mallet
1-81
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 L3
Frédéric Mallet
1-82
Machines à états finis
♦ Les systèmes de contrôle cadencent 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
Contrôle
Entrée
Fonction de sortie
sortie = h(q,e)
Machines à états finis
m
Blocs combinatoires
Fonction état suivant
q+ = f(q,e) Mealy
q+ = f(q) Moore
n
q
n
État courant
Sortie
q+
état suivant
Réseaux de bistables D
Horloge
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-83
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-84
Multiplication binaire non signée
0
0
0
0
1
1
0
0
0
x
+
+
0
0
+ 0 0
0 0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
opérande1
1
1
1
0
1
0
1
0
1
Contrôle du multiplieur
opérande2
Registre 1
Registre 2
Décalage
Win
+
contrôle
Accumulateur
RAZ
Waccu
b0
c
Compteur
incrémenter
Signaux de contrôle
chemin de données
Résultats intermédiaires
♦ Une multiplication n bits est équivalente à n additions
♦ On accumule les résultats intermédiaires dans un registre
2n-bit
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-85
Machine à états pour le multiplieur
[c=0 & b0=0] / decalage, incrementer
/ Win, RAZ
/ decalage
q1=1,q0=0
q1=0,q0=1
q1=1,q0=1
2006/2007
c
b0
q1
q0
q1+
q0+
0
0
1
1
-
0
1
0
1
-
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
Win Raz Waccu Déc Incr
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
0
1
0
0
0
1
0
♦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 L3
Frédéric Mallet
1-86
Équations logiques
in
= RAZ = q 0 • q1
accu
= c • b0 • q1 • q 0
Décalage = c • b0 • q1 • q0 + q1 • q0
Incrémente r = c • q1 • q0
q0+ = Waccu
[c=0 & b0=1]
/ Waccu, incrementer
[c=1]
Final
b0 (bit de poids faible du registre 2) et c (compteur=n)
W
W
Addition
Calcul
Initial
q1=0,q0=0
♦Entrées :
q1+ = q0 • q1 + (c + b0 ) • q1 • q0
0
1
1
0
0
0
0
♦ Ces fonctions logiques peuvent être réalisées
simplement avec des réseaux logiques
programmables (RLP)
1-87
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-88
Application au multiplieur
Réseau Logique Programmable
b0 • c • q1 • q0
q 0 • q1
♦ 3 cas de “programmation”
n
entrées
p
c
m
sorties
q0
Matrice OU figée
q0 • q1
b0•c•q0•q1
W
W
b0 • q0 • q1
in
= RAZ = q0 • q1
accu
= c • b 0 • q1 • q 0
Décalage = c • b0 • q1 • q0 + q1 • q0
Incrémente r = c • q1 • q0
Matrice
ET
q0+ = Waccu
q1+ = q0 • q1 + (c + b0 ) • q1 • q0
q1
• PAL = Programmable Array Logic
produits
Matrice
portes OU
b0
Les 2 matrices sont figées
• ROM = Mémoire morte
Matrice
portes ET
q 0 • q1
c • q1 • q0
Win = RAZ
Les 2 matrices sont
programmables
Matrice OU
• PLA = Programmable Logic Array
Décalage
Incrémenter
q1+
Waccu = q0+
♦ marquer les intersections pour programmer le PLA
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-89
2006/2007
Architecture des Ordinateurs - Licence Informatique L3
Frédéric Mallet
1-90
Téléchargement