Professional Documents
Culture Documents
CHAPITRE I
Introduction
Historique
17 sicle, calcul arithmtique simple: addition, soustraction PASCAL (1623-1662) effectue mcaniquement des additions et des soustractions LEIBNIZ (1646-1716) envisage quune machine puisse raisonner CHARLES BABBAGE (1792-1871) a construit en 1833 une machine calculer: la machine diffrences.
Programmable avec un langage assembleur trs simple ADA AUGUSTA LOVELACE, collaboratrice de BABBAGE et fille de LORD BYRON, crit le premier programme informatique.
Architecture des Ordinateurs 3
Historique
1945 : ENIAC (Electronic Numerical Integrator And Calculator)
18 000 tubes 30 tonnes multiplie 2 nombres de 10 chiffres en 3 millisecondes donnes sur cartes perfores, mais programmes cbls en mmoire et donc, pour passer dun programme un autre, il faut dbrancher et rebrancher des centaines de cbles (ce nest pas vraiment le premier ordinateur au sens actuel).
Architecture des Ordinateurs 4
Historique
1945 : JOHN VON NEUMANN, associ lENIAC, propose un modle dordinateur qui fait abstraction du programme et se lance dans la construction du EDVAC (Electronic Discrete Variable Automatic Computer) La machine de VON NEUMANN est ne:
Consiste en cinq composants de larchitecture moderne, appele architecture de VON NEUMANN.
Architecture des Ordinateurs 5
Historique
Premire gnration (1945-1955) : tubes vide
Tubes vide: pannes frquentes, difficiles dceler, ordinateurs demandant beaucoup de place.
Historique
Gammes de machines avec mme langage dassemblage, do rutilisation des programmes. Multiprogrammation: plusieurs programmes en mmoire. Lorsquun programme entre en phase dentres-sorties, lUC passe lexcution dun autre programme.
Parallles, intelligents...
Architecture des Ordinateurs 7
10
Objectifs du cours
Les notions suivantes sont traites:
Conception et architecture de lensemble des instructions (ISA) Familiarisation avec les oprations du niveau transfert registres Organisation du matriel en tant que chemin de donnes et unit de contrle Assemblage des composants pour construction des diffrents types de chemins de donnes du processeur Diffrents types de conception et dunit de contrle Organisation et conception du systme mmoire
Architecture des Ordinateurs 11
Notions darchitecture
Architecture des Ordinateurs ? Architecture de lensemble dinstructions de la machine + Organisation de la machine Architecture de lensemble dinstructions
Organisation dlments mmoires (registres, caches,). Reprsentation des types de donnes et structure de donnes. Ensemble dinstructions et leurs formats. Modes dadressage et types daccs aux lments data et instructions. Autres conditions exceptionnelles de la machine (Interruptions, erreurs,).
Architecture des Ordinateurs 12
Langages
Echange (int v[],int k,int k) { Programme en langage de haut niveau int temp ; (en C) temp = v[k] ; v[k] = v[k]; v[k] = temp; Compilateur C } Change: multi $2, S5, 4; add $2, $4, $2; . Assembleur 00000000101000010000000000011000 00000000100011100011000000100001.
Architecture des Ordinateurs
Ensembles dinstructions
Exemples densembles dinstructions
Digital alpha HP PA-RISC SUN SPARC SGI MIPS INTEL (IA-32, )
Les caractristiques dun ensemble dinstructions seront introduites par la suite travers ltude dun ensemble rel dinstructions: MIPS.
Architecture des Ordinateurs 14
Notions darchitecture
Ordinateur personnel
Clavier, Souries
Disque dur
Sorties
Ecran, Imprimante
Architecture des Ordinateurs 15
Evolutions technologiques
1985 : Invention du processeur sur une seule puce et de lordinateur sur une seule plaque (PC, Stations de travail, ) Processeur : (Chaque 1.5 anne depuis 85) 2X en vitesse Mmoire : (Chaque 2 ans depuis 96) Capacit : 2X (DRAM) (64X, dernire dcennie) Disque dur : (Chaque anne) Capacit : 2X (250X, dernire dcennie)
Architecture des Ordinateurs 16
Fonction darchitecte
Application (Netscape) Systme dexploitation Compilateur Assembleur (Windows 2K) Processeur Mmoire Systme dE/S Chemin de donnes & Contrle Digital Design Circuit Design
transistors
Software Hardware
18
Rfrences
Principales
David Patterson et John Hennessy. Organisation et conception des ordinateurs, Dunod, 1994. David Patterson and John Hennessy. Computer Organisation and Design, 2nd edition, Morgan Kaufman Publishers, Inc., 1997.
Autres
J. L. Hennessy and D. A. Patterson. Architecture des ordinateurs: une approche quantitative. 3me dition, Vuibert Informatique, 2003. Dominic Sweetman. See MIPS Run, 2nd edition, Morgan Kaufman Publishers, Inc. , 2003.
Architecture des Ordinateurs 19
Plan du cours
Chapitre
CHAPITRE I Introduction CHAPITRE II Rappels systmes logiques
Contenu
Introduction larchitecture des ordinateurs, volution, composants dun ordinateur, Rappel de notions de base des systmes logiques, Banc de registres, Multiplexeurs,
Rfrence livre
Appendix B.
Dure
1 sance.
Chapitre 1.
1 sance.
CHAPITRE III Modes dadressage, formats dinstructions, les composants du MIPS ISA MIPS ISA, le jeu dinstructions MIPS lite.
Chapitre 3. Appendix A.
2 sances.
20
Plan du cours
Chapitre
CHAPITRE IV Conception des units arithmtiques
Contenu
Construction dUAL. Approche de conception Top Down et Bottom Up Algorithmes est chemins de donnes pour multiplication et division des entiers
Rfrence livre
Chapitre 4.
Dure
1 sance.
2 sances.
21
Plan du cours
Chapitre
CHAPITRE V Conception de microprocesseur mono-cycle (MIPS lite) CHAPITRE VI Conception de microprocesseur multi-cycles (MIPS lite)
Contenu
Chemin de donnes. Unit de contrle.
Rfrence livre
Chapitre 5.
Dure
1 sance. 1 sance.
Chemin de donnes.
Chapitre 5.
1 sance.
1 sance.
1 sance.
22
Plan du cours
Chapitre
CHAPITRE VII Conception de microprocesseur en pipeline (MIPS lite)
Contenu
Notions dexcution en pipeline. Alas de pipeline et mthodes rsolutions. Notion de chemin de donnes en pipeline. Technologies et types de mmoires. Intgration des caches
Rfrence livre
Chapitre 5
Dure
1 sance. 1 sance. 1 sance.
Chapitre 7.
1 sance.
1 sance.
23
CHAPITRE II:
24
Logique combinatoire
Variables dentres:
Variables logiques indpendantes.
Variables de sorties:
Variables contenant ltat de la fonction aprs l valuation des oprateurs logiques sur les variables dentres.
Oprateurs logiques:
ET : z = u1.u2=u1u2, z est vraie si u1 est vraie et u2 est vraie. OU : z = u1+u2, z est vraie lorsque u1 est vraie ou u2 est vraie, ou les deux. NON : z = u, z est vraie si u est fausse.
Architecture des Ordinateurs 25
Logique combinatoire
Les portes logiques associes ces oprateurs sont reprsentes comme suit : (ET)AND (OU)OR (NON)NOT
x y
xy (c) NON-ET
x y
Logique combinatoire
Exemple : Fonction trois entres u1,u2 , et u3 et deux sorties x1 et x2 est reprsente par la table de vrit suivante. 23 entres u1 0 0 0 0 1 1 1 1 u2 0 0 1 1 0 0 1 1 u3 0 1 0 1 0 1 0 1 x1 x2 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 x1 = u1 + u2 + u3
27
Logique combinatoire
Lois de Morgan : (Transformation dquations logiques) u+v=u v uv =u+v Sorties dune fonction combinatoire: 1. Somme de produits x1 = u1u2u3 + u1u2u3 +u1u2u3 +u1u2u3 + u1u2u3 +u1u2u3 +u1u2u3 2. Produit de Sommes x1 = u1+ u2+u3 Formes canoniques utiles pour implmentation avec deux niveaux de portes
Architecture des Ordinateurs 28
Multiplexeur
Slectionner une parmi 2n entres et la transmettre la sortie. La slection est faite laide de n lignes dadresse. La notion usuelle de MUX est : MUX 2n 1. Par exemple, un MUX 8 1 aura trois lignes dadresse.
u1
u1 MUX y u2
0 1
u2
u3 2 u4 3
MUX
S y = (u1.S)+(u2.S)
Architecture des Ordinateurs
S1
S2
29
Dcodeur
Traduit lentre sur n bits en un signal correspondant sa valeur binaire S0 S1 S2 3 Dcodeur 3 pour 8 S3 Dcodeur S4 S5 S6 S7
E2 0 0 0 0 1 1 1 1 E1 0 0 1 1 0 0 1 1 E0 0 1 0 1 0 1 0 1 S7 0 0 0 0 0 0 0 1 S6 0 0 0 0 0 0 1 0 S5 0 0 0 0 0 1 0 0 S4 0 0 0 0 1 0 0 0 S3 0 0 0 1 0 0 0 0 S2 0 0 1 0 0 0 0 0 S1 0 1 0 0 0 0 0 0 S0 1 0 0 0 0 0 0 0
30
x1
x1 = ? x2 = ?
Architecture des Ordinateurs
x2
31
u3
x1 x2
Architecture des Ordinateurs 32
Horloges
Synchronisation. Logique squentielle pour spcifier quel moment un lment qui contient un tat doit tre mis jour. Les instants de stabilits des valeurs dun circuit.
34
Horloges
Synchronisation par niveau (haut ou bas) Synchronisation par front (montant ou descendent)
Front actif (montant ou descendent) changement dtat Systme horloge (systme synchrone) lment dtat 1 Logique combinatoire lment dtat 2
Cycle dhorloge
35
lments mmoires
Bistables et bascules Registres Mmoires
Bascule RS (asynchrone)
Set / Reset R Q S=1 Q=1 R=1 Q=0 S = 0, R = 0 valeur prcdente de Q S = 1, R = 1 tat illgal
36
Q S
Architecture des Ordinateurs
lments mmoires
Bascule bistable (synchrone)
Diffrence entre bistable et bascule (moment o lhorloge provoque le changement dtat actif) Bascule synchrone (tat modifi chaque fois que les entres changent et que lhorloge est 1) Bistable synchrone (tat nest modifi que sur un front dimpulsion de lhorloge)
37
Q D
Stocker un signal
D C Q
Architecture des Ordinateurs 38
Q Q
Bascule C D
Bascule C D
D C Q
Architecture des Ordinateurs 39
Banc de registres
Construction du chemin de donnes (BANC DE REGISTRES)
Registre lecture numro 1 Registre lecture numro 2 Registre criture Donne lue 2 Donne lue 1
Donne crire
40
Banc de registres
Registre lecture numro 1
C D C 0 D
R0 R1 . Rn-1
MUX
Donne lue 1
Dcodeur
n pour 1
C D
Rn
MUX
Donne lue 2
crire
Architecture des Ordinateurs 41
CHAPITRE III:
MIPS ISA
42
Entres
Sorties
43
Excution (execute)
Instruction suivante
Architecture des Ordinateurs 45
Types dISA
4 types dISA : excution de C=A+B Machine pile (calculette HP) Push A Push B Add Pop C Load R1, A Add R1, B Store C, R1 Accumulateur, 1 seul registre (IBM 701) Load A Add B Store C Chargement-rangement (MIPS, SPARC) Load R2, B Add R3, R1, R2 Store C, R3
46
ISA et registres
1975 1985 toutes les machines utilisent les registres
Les registres sont plus rapides que la mmoire Registre plus facile utiliser pour compilateur (A*B)-(C*D)-(E*F) Registres peuvent contenir des variables
Rduction trafic mmoire Densit du code samliore
MIPS ISA
230 octets mmoire Registres: 31 * 32 bits, R0=0 Registres flottants: 32 * 32 bits, utiliss en paires HI, LO, CP (compteur ordinal) R0 R1 R31 CP LO HI
Architecture des Ordinateurs 48
Types dISA
Depuis 1980, toutes les machines utilisent adresses au niveau de loctet (8 bits)
Puisqu'on peut lire un mot de 32 bits comme 4 octets en un seul coup, comment ces octets sont-ils rangs dans le mot ? Big-endian: ladresse de loctet le plus significatif est ladresse du mot
Numro doctet
Un mot peut tre plac nimporte o en mmoire? La plupart des instructions de chargement-rangement oprent sur des donnes alignes (son adresse mmoire est multiple de sa taille en octets).
Architecture des Ordinateurs 49
Instructions 8086
cond branch compare store add and sub Mov reg-reg call return 20% 16% 12% 8% 6% 5% 4% 1% 1% 96% Remarque: les instructions simples dominent le code
Architecture des Ordinateurs 51
Instructions MIPS
Instructions arithmtiques f = ( g + h ) - (i + j ); Oprations quivalentes en MIPS add t0,g,h add t1,i,j sub f,t0,t1 # variable temporaire t0 contient g+h # variable temporaire t1 contient i+j # f reoit t0-t1 , ou (g+h) - (i+j)
Les 32 registres de MIPS seront nots $0.$31 add $8,$17,$18 # registre $8 contient g+h add $9,$19,$20 # registre $9 contient i+j sub $16,$8,$9 #f reoit $8-$9 (c--d (g+h)-(i+j)) Remarque : les registres $8,$9 correspondent aux variables temporaires t0 et t1 de l'exemple prcdent
Architecture des Ordinateurs 52
Instructions MIPS
On ne peut stocker qu'une petite quantit de donnes dans les registres. La mmoire d'un ordinateur contient des millions de donnes lmentaires, et les structures de donnes, telles que les tableaux, sont donc stockes en mmoire Les oprations arithmtiques ont lieu dans les registres. Pour cela MIPS dispose d'oprations qui transfrent les donnes entre la mmoire et les registres appeles instructions de transfert de donnes. Pour accder une donne en mmoire, l'instruction doit fournir son adresse .
On a deux types d'instructions de transfert de donnes : Chargement lw : instruction qui dplace un mot de la mmoire vers un registre (LOAD) Rangement sw : instruction qui transfert les donnes d'un registre vers la mmoire (STORE).
Architecture des Ordinateurs 53
Instructions MIPS(rangement)
Les adresse des mots sont dcals de 4 dans la mmoire : ($19 devra contenir 4*i). Expression en langage C : T[i] = h + T[i]; Assembleur MIPS : lw $8,Tsart($19) # le registre temporaire $8 reoit T[i] # le registre $8 reoit h+T[i] # on recopie h+T[i] dans T[i]
55
Transfert de donnes :
lw $1, 100($2) sw $1, 100($2) lui $1, 100 # $1 = Mmoire[$2 + 100] # Mmoire [$2 +100]=$1 # $1= 100*216
56
add 32 sub 34
Instruction type R
31 op 26 rs 21 rt 16 rd 11 decval 6 funct 0
57 Architecture des Ordinateurs
lw 35 sw 43 Instruction type I
op 6 bits rs 5 bits rt 5 bits immediate 16 bits
58
# si $2<$3 alors $1=1 sinon $1=0 # si $2<100 alors $1=1 sinon $1=0
59
Assembleur MIPS : bne $20,$21,Else add $17,$18,$19 j Exit Else : sub $17,$18,$19 Exit : Nouvelle instruction :
Architecture des Ordinateurs
j Exit
61
Exemple :
J 2000
2 6 bits 1000 26 bits
Exemple
Code en C : switch (k) { case 0: f=i+j; break; case 1: f=g+h; break; case 2: f=g-h; break; case 3: f=i-j; break; } Assembleur MIPS : mult $9,$10,$21 lw $8, Tablesaut($9) jr $8 E0 : E1 : E2 : E3 : Exit: 4 mots en mmoire partir de table saut contiennent E0,E1,E2,E3 f,g,h,i,j,k $16..$21
Architecture des Ordinateurs
$10 4
63
Les rfrences croises entre les modules Saut de procdure. Retour linstruction qui suit lappel. Passage des paramtres Imbrication des procdures
Architecture des Ordinateurs 64
$31
Cas plus compliqu lorsque une procdure appelle une autre procdure Vider le registre $31 dans la mmoire
Architecture des Ordinateurs 65
$29
Considrons lexemple suivant : A: Jal B jr $31 B: Jal C jr $31 C:
Architecture des Ordinateurs
jr $31
66
$31
Adresse retour de B
$31
Adresse retour de C Adresse retour de B
$29
$29
Mmoire
$31
Adresse retour de B Adresse retour de B
$31
Adresse retour de B Adresse retour de B
$29
$29
67
Add $4,$2,$3
Mmoire
CP bne $1,$2,100 +
Mmoire
70
71
R5 0000 0000
72
CHAPITRE IV:
74
75
Comment le matriel fait-il rellement pour additionner, soustraire, multiplier ou diviser des nombres le plus rapidement possible ? Le but de ce chapitre est de dvoiler ce mystre, en particulier, la reprsentation des nombres, les algorithmes arithmtiques
Architecture des Ordinateurs 76
77
0000 0000 0000 0000 0000 0000 0000 0000deux = 0 dix 0000 0000 0000 0000 0000 0000 0000 0001deux = 1dix 0000 0000 0000 0000 0000 0000 0000 0010deux = 2dix
..................................................................................
0111 1111 1111 1111 1111 1111 1111 1110deux = 2.147.483.646dix 0111 1111 1111 1111 1111 1111 1111 1111deux = 2.147.483.647dix
Architecture des Ordinateurs 78
0111 1111 1111 1111 1111 1111 1111 1110deux = 2.147.483.646dix 0111 1111 1111 1111 1111 1111 1111 1111deux = 2.147.483.647dix 1000 0000 0000 0000 0000 0000 0000 0000deux = -2.147.483.648 dix 1000 0000 0000 0000 0000 0000 0000 0001deux = -2.147.483.647 dix
..................................................................................
1111 1111 1111 1111 1111 1111 1111 1110deux = -2 dix 1111 1111 1111 1111 1111 1111 1111 1111deux = -1 dix
Architecture des Ordinateurs 79
-x = x + 1 La manire de convertir un nombre binaire reprsent avec n bits en un nombre reprsent avec plus de n bits: extension signe. Rpliquer le bit du signe: 2 dix -2 dix (16)bits : 0000 0000 0000 0010 deux (32)bits : 0000 0000 0000 0000 0000 0000 0000 0010 deux (16) bits : 1111 1111 1111 1110 deux (32) bits : 1111 1111 1111 1111 1111 1111 1111 1110 deux
Architecture des Ordinateurs 82
84
Processus de conception
Conception
CPU
La conception est lassemblage Datapath Control des diffrents composants. Regs Shifter Dcomposition de haut en bas ALU dune fonction complexe (fonctionnement) fonctions Nand primitives. Gate
Commencer par les petits lments pour aboutir un ensemble plus complexe (du bas en haut) La conception est un processus de cration et non une simple mthode!!
Architecture des Ordinateurs 86
Conception de lUAL
Exigences : add, addu, sub, subu, addi, addiu and, or, andi, ori beq, bne, slt, slti, sltu, sltiu
addu, subu, addiu: (sans dtection de dbordement). add, sub, addi: (dtection de dbordement).
87
25 Rs Rs
funct xx xx xx xx xx xx xx xx
20 Rt Rt
Type ADD
15 Rd Immed 16
op 00 funct 40 41 42 43 44 45 46 47
5 funct
op op
op 10
Type SLT
op 00
funct 52 53
ADDU 00 SUB 00
SLTU 00
88
Diagramme de bloc :
32 A c ovf B 32
UAL
S 32
4 m
a31
b0 ALU0 m co cin s0
a0
4 M
Ovflw 32 S
and
Result
Mux
or
B
91
Cout
0 + 0 1 (0) 1 0 0 (1) 1 1 0(1) 1 0 1 (0)
Cin A B S
Fonction combinatoire
Cout
92
and
or
Result
Mux
add
CarryOut
93
S-select
CarryIn
and
or
Result
Mux
B Mux
Architecture des Ordinateurs
add
CarryOut
94
Exercices
Quen est-il pour linstruction slt ? Quen est-il pour le branchement conditionnelle ?
32 c A ovf S 32 32 B 32 4 m
UAL
rsultat
zro
95
Diagramme de bloc
Mode et dbordement
A 32 B 32
a31
b31
a0
b0
ALU0 co cin s0
Dbordement
Architecture des Ordinateurs
32
96
Dbordement
Dcimale 0 1 2 3 4 5 6 7 binaire 0000 0001 0010 0011 0100 0101 0110 0111 Dcimale 0 -1 -2 -3 -4 -5 -6 -7 -8 Complment de 2 0000 1111 1110 1101 1100 1011 1010 1001 1000
Dtection de dbordement
Dbordement: le rsultat est assez grand ou assez petit pour tre reprsent. Exemple: - 8 4-bit nombre binaire 7 Lorsquon additionne deux nombres de signes diffrents Pas de dbordement Dbordement se prsente lorsquon additionne : 2 nombres positifs et leur somme est ngative. 2 nombres ngatifs et leur somme est positive. Prouver que si: Carry in UAL31 Carry out UAL31 on peut dtecter le dbordement!
0 1 0 + 0 1 1 1 0 0 1 1 1 1 1 1 0 7 3 6 + 1 0 1 1 0 1 0 1 0 1 1 0 1 1 4 5 7
98
CarryOut3
Architecture des Ordinateurs 99
G P
G P
S C3 = G2 + G1 P2 + G0 P1 P2 + C0 P0 P1 P2
A3 B3
G P
G P C4 = . . .
100
G P
C4 = . . .
101
102
103
A3
A2
A1
A0
B1
A3
A2
A1
A0
B2
A3
A2
A1
A0
B3
P7
P6
P5
P4
P3
P2
P1
P0
A3 A3 A3 P7 P6 A2 P5 A2 A1 P4
B2 B3
chaque stage shift A left ( x 2). Utiliser le bit suivant de B pour dterminer si la somme sera ralise A chaque stage on accumule 2n bits produit partiel.
Architecture des Ordinateurs 106
Multiplicateur
Dcalage droite
64-bit UAL
Produit 64 bits
=0
1a. Additionner multiplicande au produit & placer le rsultat dans le registre Produit
Rptition 32?
Non
Oui
Architecture des Ordinateurs
Fin
108
109
Multiplicande 32 bits Multiplier 32-bit UAL Dcalage droite Product 64 bits Ecriture Contrle 32 bits Dcalage droite
110
Comment a marche?
0 A3 0 A2 A1 0 0 A0 B0
A3
A2
A1
A0 B1
A3
A2
A1
A0
B2
A3
A2
A1
A0
B3
P7
Architecture des Ordinateurs
P6
P5
P4
P3
P2
P1
P0
111
1a. Additionner multiplicande la moiti gauche du produit & place le rsultat dans la moiti gauche du registre produit Product Multiplier Multiplicand 0000 0000 0011 0010 1: 0010 0000 0011 0010 2: 0001 0000 0011 0010 1 3: 0001 0000 0001 0010 1: 0011 0000 0001 0010 2: 0001 1000 0001 0010 2 3: 0001 1000 0000 0010 1: 0001 1000 0000 0010 2: 0000 1100 0000 3 0010 3: 0000 1100 0000 0010 1: 0000 1100 0000 0010 2: 0000 0110 0000 0010 4 3: 0000 0110 0000 0010
Architecture des Ordinateurs
Non
0000 0110
0000
0010
112
32 bits
32-bit UAL
Contrle Ecriture
113
64 bits
Architecture des Ordinateurs
1a. Additionner multiplicande la moiti gauche du produit & Placer le rsultat dans la moiti gauche du registre produit
2 3 4
Produit 0000 0011 0010 0011 0001 0001 0011 0001 0001 1000 0000 1100 0000 0110
Non
114
UAL addition ou soustraction peut avoir le mme rsultat mais de manire diffrente: 6 = 2 + 8 0110 = 00010 + 01000 = 11110 + 01000 Par exemple 0010 x 0110 0000 dcalage(0 multiplicateur) 0010 sub(le premier 1 du multiplicateur) 0000 dcalage (les 1 de milieu) + 0010 addition (juste aprs la liste des 1) 00001100
Architecture des Ordinateurs 116
Algorithme de booth
Bit courant Example 1 0 0001111000 1 1 0001111000 0 1 0001111000 0 0 0001111000 Bit droite Explication Op dbut d exe. des 1s sub milieu d exe. des 1s rien fin d exe. des 1s add milieu d exe. des 0s rien
temps dexcution est meilleur (dcalage est plus rapide que l addition) Remplacer la chane de 1s dans le multiplicateur par une soustraction lorsquon identifie le premier 1et une addition pour le bit juste aprs le dernier 1 de la chane.
Architecture des Ordinateurs 117
1a. P = P - m dec. P (ext. signe) 1b. nop, dec. 2. 3. 01 -> add 4a. 0010 0010
1110
+ 1110 1110 0111 0 11 -> 1111 1001 1 1111 1100 1 0010 dec. fin
118
1111 0011 1
0000 1110 0
1a. P = P - m 0 1b. add 2a. 2b. sub 3a. 3b. 11 -> nop 4a 4b. 0010 Architecture des Ordinateurs 0010 0010 0010
1110
+ 1110 1110 1101 01 -> + 0010 dec. P 10 -> + 1110 dec. 1111 0101 1
dec. Fin
119
Un dcalage gauche du multiplicande peut tre considr comme une multiplication par une puissance de 2
Exercice
Algorithme de Booth , rduire le nombre dop. viter les op. en prsence de 0 et 1. Modifier lalgorithme de Booth pour traiter 3 bits la fois et calculer le multiplicande 2 bits par 2 bits.
121
Dcalage
Deux cas:
logique-- valeur ajoute est toujours 0
"0" msb lsb "0"
msb
A3 1 A2
lsb
A1 1
"0"
A0 1 S2 S1 S0
0 R7
0 R6
1 R5
1 R4
1 R3
1 R2
1 R1
1 R0
0
122
Division
1001 Quotient Diviseur 1000 1001010 Dividende 1000 10 101 1010 1000 10 reste (ou modulo rsultat) Le grand nombre soustraire, cration d un bit chaque tape binaire => 1 * diviseur ou 0 * diviseur Dividende = Quotient x Diviseur + Reste 3 versions de divisions, comme pour la multiplication (plus simple ou moins coteux)
Architecture des Ordinateurs 123
Reste
124
Tester reste
<0
2b. Restaurer la valeur en additionnant le registre diviseur au reste et en plaant la somme dans le registre reste. De plus, dcalage du registre quotient en insrant un 0.
Non
Fin
125
Exemple de division (7 / 2)
Reste Quotient 0000 0111 0000 1110 0111 0000 0000 0111 0000 0000 0111 0000 1111 0111 0000 0000 0111 0000 0000 0111 0000 1111 1111 0000 0000 0111 0000 0000 0111 0000 0000 0001 0000 0000 0011 0001 0000 0011 0001 0000 0001 0001 0000 0001 0011 0000 0001 0011 Diviseur 0010 0000 0010 0000 0010 0000 0001 0000 0001 0000 0001 0000 0000 1000 0000 1000 0000 1000 0000 0100 0000 0100 0000 0100 0000 0010 0000 0010 0000 0010 0000 0001
1: 2: 3: 1: 2: 3: 1: 2: 3: 1: 2: 3: 1: 2: 3:
2 3
4 5
126
128
3.dcalage de 1 bit vers la gauche du registre reste 1. Sub registre diviseur de la partie gauche du registre reste et placer le rsultat dans la partie gauche du registre reste 0 Test reste <0
2b. Restaurer la valeur ancienne en additionnant le registre diviseur la partie gauche du reste et en plaant la somme dans la partie gauche du registre reste. De plus, dcalage du registre quotient en insrant un 0.
Rptition n? Oui
Architecture des Ordinateurs
Non
Fin
129
Exemple de division (7 / 2)
Reste 0000 0000 1111 0000 0001 1111 0001 0011 0001 0001 0011 0001 0001 0111 1110 1110 1110 1100 1100 1100 1000 1000 1000 0000 0000 0000 Quotient 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0001 0000 0011 Diviseur 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010
1: 2: 3: 1: 2: 3: 1: 2: 3: 1: 2: 3:
130
HI
reste
LO (Quotient)
64 bits Contrle
131
1.dcalage du registre reste gauche de 1 bit. 2. Soustraire le diviseur de la moiti gauche du registre reste et placer le rsultat dans la moiti gauche du registre reste. 0 <0
Tester Reste
3b. Restaurer la valeur originale en additionnant le registre diviseur la moiti gauche du registre reste , et placer la somme dans la moiti gauche du registre reste. Dcaler le registre reste en insrant un 0.
Rptition n? Oui
Architecture des Ordinateurs
Non
132
Exemple de division (7 / 2)
Reste 0000 0111 0000 1110 1: 2: 1: 2: 1: 2: 1: 2: 3: 1111 1110 0001 1100 1111 0011 0001 0011 1100 1000 1000 0001 Diviseur 0010 0010 0010 0010 1 rponse Quotient = 3 Reste = 1
133
Arithmtique de flottants
135
Le flottant
Qu'est ce qu'on peut reprsenter avec N bits? Non-signe 0 2N - 1 Complment 2 - 2N-1 2N-1 - 1 Pour les grands nombres? Nombres assez grands ? 9,349,398,989,787,762,244,859,087,678 Nombres assez petits ? 0.0000000000000000000000045691 Rationnel 2/3
136
Point dcimal
Le exposant flottant
IEEE: 1.M x 2 e - 127
23 6.02 x 10
Mantisse
(base)
Arithmtique (+, -, *, / ) Reprsentation, Norme et format Prcision Exceptions (ex., division par zero, overflow, underflow) Erreurs Proprits (ngation, inversion, if A B then A - Bdes Ordinateurs 0) Architecture 137
Le flottant
Reprsentation des nombres en virgule flottante selon la norme IEEE 754 1 8 23 Prcision simple : E signe S M Exposant: excs 127 Exposant actuel e = E - 127 0 < E < 255 S E-127 N = (-1) 2 (1. M)
to
3.40 x 10
38
138
dbut:
1. Comparer les exposants des deux nombres. Dcaler la mantisse la plus petite droite jusqu ce que son exposant corresponde l exposant le plus grand.
2. Addition / soustraction des mantisses 3. Normalisation : dcaler droite; dcalage gauche Dbordement sous dbordement ?
Oui
Exception
Non
4. Arrondir la mantisse
Normaliser?
Non Oui
Architecture des Ordinateurs
Fin
139
140
1. 2. 3.
1.1 2-126 - 1.0 2-126 1.1 - 1.0 0.1 Donc 0.1 2-126 1.0 2-127 Sous dbordement de l exposant
141
ISA MIPS
32 registres flottants; utiliss par paire pour un traitement double flottant. Add.s $f2,$f4,$f6 # $f2=$f4+$f6 sub.s, mult.s, add.d $f2,$f4, $f6 #($f3,$f5,$f7 sont utiliss pour double flottant) sub.d mult.d
143
Multiplication
1. Addition exposant (R+127) R1+R2=E1+E2+2*127 donc R1+R2-127=E1+E2+127 2. Multiplication des mantisses (mantisse 0!) 3. Normalisation (sous deb. Ou deb. ) 4. Arrondi 5. Signe Exemple: 5.5 * 0.5 5.5 101.1 1.011 * 22 0.5 0.1 1.0 * 2-1 Rsultat : 1.011* 21 = 2.75
Architecture des Ordinateurs 144
145
146
Clk
Instruction 32
147
31 op 6 bits
26 rs 5 bits Rd Rs RegWr 5 5
21 rt 5 bits Rt 5
16 rd 5 bits
11 shamt 5 bits
6 funct 6 bits
148
Rw Ra Rb 32x32-bit Registres
Result 32
149
Rw Ra Rb 32x32-bit Registres
16
32 ALUSrc
150
Opration de chargement
R[rt] <- Mem[R[rs] + SignExt[imm16]]
31 op 6 bits Rd RegDst Mux RegWr 5 busW 32 Clk Rt Rs 5 5 busA 32 busB 32 Extender 32 ALUSrc
Architecture des Ordinateurs
Exemple: lw
immdiate
26 rs
21 rt 5 bits
Rw Ra Rb 32x32-bit Registres
Mux
imm16
16
Mmoire Donnes
32
ExtOp
151
Opration de rangement
Mem[ R[rs] + SignExt[imm16]<- R[rt] ]
31 op 6 bits Rd RegDst Mux RegWr 5 busW 32 Clk Rs 5 5 busA 32 busB 32 Extender 32 Mux ALU Rt Rt 26 rs 5 bits 21 rt 5 bits 16 immdiate 16 bits
exemple: sw
ALUctr
MemWr
W_Src
Rw Ra Rb Registres 32x32-bits
imm16
16
Mmoire Donnes
32
ExtOp
152
PC <- PC + 4 + ( SignExt(imm16) x 4 )
153
RegWr 5
Rw Ra Rb Registres 32x32-bits
PC
Adder
PC Ext
imm16
Clk
154
Rt
Rd Rt Rt
<16:20>
Rd
<11:15>
<0:15>
0 Mux
PC
1 32
32 Data In Clk
PC Ext
imm16
ExtOp
ALUSrc
ALU 32
Clk
Op Fun
Rt
Rs
Rd
Imm16
Contrle
Cond=
Chemin Donnes
157
158
159
nPC_sel
Adder
imm16
PC Ext
MemWr:
Cond=
RegWr: ALUctr
Rt
0 Mux
1 32
32 Data In Clk
ExtOp
ALUSrc
Signaux de contrle
inst ADD Register Transfer R[rd] < R[rs] + R[rt]; PC < PC + 4
ALUsrc = RegB, ALUctr = add, RegDst = rd, RegWr, nPC_sel = +4 SUB R[rd] < R[rs] R[rt]; PC < PC + 4
ALUsrc = RegB, ALUctr = sub, RegDst = rd, RegWr, nPC_sel = +4 ORi R[rt] < R[rs] + zero_ext(Imm16); PC < PC + 4
ALUsrc = Im, Extop = Z, ALUctr = or, RegDst = rt, RegWr, nPC_sel = +4 LOAD R[rt] < MEM[ R[rs] + sign_ext(Imm16)]; PC < PC + 4
ALUsrc = Im, Extop = Sn, ALUctr = add, MemtoReg, RegDst = rt, RegWr, nPC_sel = +4 STORE MEM[ R[rs] + sign_ext(Imm16)] < R[rs]; PC < PC + 4
ALUsrc = Im, Extop = Sn, ALUctr = add, MemWr, nPC_sel = +4 BEQ if ( R[rs] == R[rt] ) then PC < PC + sign_ext(Imm16)] || 00 else PC < PC + 4 nPC_sel = Cond=, ALUctr = sub
Architecture des Ordinateurs 162
<= if (OP == 000000) then funct elseif (OP == ORi) then OR elseif (OP == BEQ) then sub else add <= if (OP == ORi) then zero else signe <= (OP == Store)
ExtOp MemWr
MemtoReg <= (OP == Load) RegWr: RegDst: <= if ((OP == Store) || (OP == BEQ)) then 0 else 1 <= if ((OP == Load) || (OP == ORi)) then 0 else 1
163
Dcodage Local
op RegDst ALUSrc MemtoReg RegWr MemWr Branch nPCsel ExtOp ALUop<N:0> 00 0000 R-type 1 0 0 1 0 0 0 x R-type 00 1101 10 0011 10 1011 00 0100 00 0010 ori 0 1 0 1 0 0 0 0 Or lw 0 1 1 1 0 0 0 1 Add sw x 1 x 0 1 0 0 1 Add beq x 0 x 0 0 1 0 x Sub jump x x x 0 0 0 1 x xxx
ALUctr 3 ALU
165
Codification de ALUop
func op 6 Contrle Princip. 6 ALUop N ALU ALUctr Contrle 3 (Local)
ori Or 0 10
lw Add 0 00
sw Add 0 00
beq Sub 0 01
R-type 1 00
lw Add 0 00 11
sw Add 0 00 6 decval
beq Sub 0 01
funct
D aprs conception de L ALU: funct<5:0> 10 0000 10 0010 10 0100 10 0101 10 1010 Op. Instruction addition soustraction ALU and or slt ALUctr ALUctr<2:0> 000 001 010 110 111 Operation ALU Add Sub And Or SLT
167
ALUctr<2> = !ALUop<2> & ALUop<0> + ALUop<2> & !func<2> & func<1> & !func<0>
169
170
ALUctr<0> = !ALUop<2> & ALUop<0> + ALUop<2> & !func<3> & func<2> & !func<1> & func<0> + ALUop<2> & func<3> & !func<2> & func<1> & !func<0>
171
ALUctr<2> = !ALUop<2> & ALUop<0> + ALUop<2> & !func<2> & func<1> & !func<0> ALUctr<1> = !ALUop<2> & !ALUop<0> + ALUop<2> & !func<2> & !func<0> ALUctr<0> = !ALUop<2> & ALUop<0> + ALUop<2> & !func<3> & func<2> & !func<1> & func<0> + ALUop<2> & func<3> & !func<2> & func<1> & !func<0>
Architecture des Ordinateurs 172
:
ALUop 3 00 0000 R-type 1 0 0 1 0 0 0 x R-type 1 0 0
op RegDst ALUSrc MemtoReg RegWr MemWr nPCsel Jump ExtOp ALUop (Symbolic) ALUop <2> ALUop <1>
Architecture des Ordinateurs ALUop <0>
00 1101 10 0011 10 1011 00 0100 00 0010 ori 0 1 0 1 0 0 0 0 Or 0 1 0 lw 0 1 1 1 0 0 0 1 Add 0 0 0 sw x 1 x 0 1 0 0 1 Add 0 0 0 beq x 0 x 0 0 1 0 x Sub 0 0 1 jump x x x 0 0 0 1 x xxx x x x
173
RegWr = R-type + ori + lw = !op<5> & !op<4> & !op<3> & !op<2> & !op<1> & !op<0> + !op<5> & !op<4> & op<3> & op<2> & !op<1> & op<0> + op<5> & !op<4> & !op<3> & !op<2> & op<1> & op<0>
op<5>
..
op<5>
..
op<5>
..
op<5>
..
op<5>
..
<0>
op<5>
..
op<0>
<0>
<0>
<0>
<0>
R-type
ori
lw
sw
beq
jump RegWr
174
Implmentation RLP
op<5>
..
op<5>
..
op<5>
..
op<5>
..
op<5>
..
<0>
op<5>
..
op<0>
<0>
<0>
<0>
<0>
R-type
ori
lw
sw
beq
jump
RegWr ALUSrc RegDst MemtoReg MemWr nPCsel Jump ExtOp ALUop<2> ALUop<1>
ALUop<0>175
Assembler tout!
ALUop op 6 Instr<31:26> RegDst Contrle principal ALUSrc 3 func Instr<5:0> 6 ALU ALUctr Contrle 3 Instruction<31:0> <21:25> <16:20> <11:15> Instruction Fetch Unit <0:15>
:
Rt Rs 5 5 Rt
nPC_sel Clk
Rd RegDst
Rt Zero
Rs
Rd
busW 32 Clk
Rw Ra Rb Registres 32x32-bits
MemWr
32 32 WrEn Adr
1 32
imm16 Instr<15:0>
Data In 32 Clk
16
Mmoire donnes
ALUSrc
Architecture des Ordinateurs
ExtOp
176
Rs, Rt, Rd, Op, Func ALUctr ExtOp ALUSrc MemtoReg RegWr busA busB
Longueur cycle horloge pour chargement DEPASSE DE LOIN les ncessits des autres instructions
Architecture des Ordinateurs 178
Conclusions
Chemin donnes monocycle => CPI=1, CCT => long 5 tapes pour conception de processeur
1. 2. 3. 4. Analyse jeux instructions => Exigences chemin donnes Slection des composants & tablissement mthodologie horloge Assemblage du chemin donnes pour ralisation des exigences Analyse de l implmentation de chaque instruction pour dterminer les valeurs ncessaires des contrles 5. Assemblage du logique de contrle Processeur
Entres Contrle
Mmoire Sorties
180
181
nPC_sel
Lecture Registres
ExtOp Cond=
Contrle Principal
Contrle ALU
MemRd MemWr
Rangement Rsultat
182
Logique combinatoire
Logique combinatoire A
=>
Registre
Architecture des Ordinateurs
Registre
Logique combinatoire B
Registre
183
PC Suiv.
nPC_sel
PC Lecture Instruction
Lecture Arguments
ExtOp
Banc Reg.
Rangement Rsultat
Exec
PC Suiv.
nPC_sel
Chemin critique ?
ExtOp
ALUSrc ALUctr
Cond=
MemRd MemWr
Etapes de conception
Etape 1: ISA => Registres Transferts Logique Etape 2: Composants de Chemin Donnes Etape 3: RTs + Composants => Chemin donnes Etape 4: Chemin + RTs Logique => RTs Physique Etape 5: RTs Physique => Contrle
Architecture des Ordinateurs 186
Mem. Inst.
PC Suiv.
Banc Reg.
Exec
PC
A B
IR
Banc Reg.
187
Etape 4: OR logique
Transferts logique des registres
ORI R[rt] < R[rs] OR ZeroExt(Im16); PC < PC + 4
Mem. Inst.
PC Suiv.
Banc Reg.
Exec
PC
A B
IR
Banc Reg.
188
Etape 4 : chargement
Transferts logiques des registres
LW R[rt] < MEM(R[rs] + SignExt(Im16); PC < PC + 4
Mem. Inst.
PC Suiv.
Banc Reg.
Exec
PC
A B
IR
Banc Reg.
189
Etape 4 : rangement
Transferts logiques des registres
SW MEM(R[rs] + sx(Im16) < R[rt]; PC < PC + 4
IR < MEM[pc] SW A< R[rs]; B < R[rt] S < A + SignEx(Im16); MEM[S] < B PC < PC + 4
Mem. Inst.
PC Suiv.
Banc Reg.
Exec
PC
A B
IR
Banc Reg.
190
Mem. Inst.
PC Suiv.
Banc Reg.
Exec
PC
A B
IR
Banc Reg.
191
BrWr Dest.
Mux
0 32 0 1 2 3 32
32
Cond= ALU
Mux
Ra Rb busA 32
32 32
Mux
1
Reg Inst.
Mmoire Idale
WrAdr 32 Din Dout
Banc Rw Regs.
Mux Ext
32
busW busB 32
<< 2
Contrle ALU
Imm 16
32
ALUOp ALUSelB
192
ExtOp
MemtoReg
193
Modle du contrle
Un tat spcifiant les points de contrle pour les Transferts de Registres. Transfert prend place au moment o on quitte l tat (front descendant).
Conditions (op, Cond=)
194
Excution
R-type
S <= A fun B
ORi
S <= A or ZX
LW
S <= A + SX
SW
S <= A + SX
195
Ecrire registres
M <= MEM[S]
Accs Mem.
Contrleur traditionnel
Etat op Cond= Etat Suiv. Points Contrle
Etat
196
197
imem_rd, IRen
A <= R[rs] B <= R[rt]
ORi
LW
S <= A + SX
SW
S <= A + SX
PC <= PC + 4 PC <= PC + SX || 00
M <= MEM[S]
R[rd] <= S PC <= PC + 4
0001 R-type
S <= A fun B
ORi
S <= A or ZX
LW
S <= A + SX
SW 1011
S <= A + SX
0100
0110
1000
M <= MEM[S]
0011
0010
1001
R[rd] <= S R[rt] <= S R[rt] <= M PC <= PC + 4 PC <= PC + 4 PC <= PC + 4
1100
0101
0111
1010
199
1 1 1 1 1 1
1 fun 1 0 0 or 1 0 add 1 1 0 0 1 0 1 1
R: ORi: LW:
SW:
Evaluation de Performances
CPI Moyen?
Diagramme des tats donne CPI pour chaque instruction Frquence d utilisation de chaque instruction
Type Arith/Logic Chargement Rangement Saut Cond. CPIi 4 5 4 3 Frquence 40% 30% 10% 20% CPIi x freqIi 1.6 1.5 0.4 0.6
Moyenne CPI:4.1
201
202
Conception du contrleur
Les diagrammes du contrle obtenu sont simples et structurs Utilisation de structure simple pour construction de microsquenceur Implmentation de la logique de contrle: programmation
microprogrammation
micro-PC squenceur
Architecture des Ordinateurs 203
Compteur sauts
0000 i i+1 i
ROM op-code
Compteur
Lecture instruction
Inc LW
S <= A + SX
ORi
S <= A or ZX
SW 1011 Inc
S <= A + SX
0100 Inc
0110 Inc
1000 Inc
M <= MEM[S]
0011
0010
1001 inc
R[rd] <= S R[rt] <= S R[rt] <= M PC <= PC + 4 PC <= PC + 4 PC <= PC + 4
Zero
Zero
0101 zero
0111 zero
1010
Le micro-squenceur
Cod=
206
Spcification microprogramme
PC Cond= ZIC IR PC en sel A B Exec Mem Ecrire Regs. Ext Sr ALU S R W M M-R Wr Dst
0000 0001 0001 BEQ 0010 0011 R-Type: 0100 0101 ORi: 0110 0111 LW: 1000 1001 1010 ? 0 1 x x x x x x x x 1 1011 1100 1 0 x x inc 1 charg inc zero 1 zero 1 inc zero 1 inc zero 1 inc inc x zero inc zero
SW:
207
ROM
000000 0100 000100 0011 001101 0110 100011 1000 101011 1011
208
Contrle de la mmoire
PC
adresse
Mmoire Instruction
donnes
IR
209
wait
R-type
S <= A fun B
ORi
S <= A or ZX
LW
S <= A + SX
SW
S <= A + SX
M <= MEM[S]
MEM[S] <= B
~wait
wait
~wait
PC <= PC + 4
wait
210
211
Contrle squencement
Reprsentation logique
Equations logiques
Tables vrit
Implmentation technique
RLP
Contrle cbl
ROM
Contrle microprogramm
212
Chemin de donnes
1 mmoire, 1 ALU
PCWr IorD PC
32 32 32 0
TrWr Target
Mux
0 32 0 1 2 3 32
32
Mux
Reg Instruction
RAdr
32 32
Mux
1
Mmoire Idale
WrAdr 32 Din Dout
Banc Reg 32
Mux Ext
32
<< 2
ALU Control
Imm 16
32
ALUOp ALUSelB
213
ExtOp
MemtoReg
Microprogrammation
Contrle: partie difficile de la conception
Chemin de donnes est presque standard et organis Mmoire est standard Contrle change toujours avec un aspect global (complexe)
Microprogrammation:
Une stratgie pour l'implmentation de l UC par la programmation
Entre
Add
215
. . . DATA
CPU
Mmoire de Contrle
Micro-squence pour AND e.g., Lire Instruction Lire Argument Calculer Enregistrer rsultat
216
Variantes de microprogrammation
Horizontale
Micro-instructions compactes : champ pour codifier chaque classe de micro-oprations. Dcoder en local pour gnrer les point de contrle.
217
Remarques :
Plusieurs combinaisons inutiles et ne peuvent se passer en parallle. codifier pour diminuer l espace ROM Exemple: mem-reg and ALU-reg ne peuvent se passer en parallle; champ: source-criture-registres, 1 seul bit dcoder au lieu de 2 sparer Codification doit permettre le maximum de paralllisme possible par le chemin de donnes. Architecture des Ordinateurs
218
219
Largeur
2 1 2 1 2 2 2 2 14
Points de Contrle
ALUOp ALUSelA ALUSelB RegWrite, MemtoReg, RegDst, TargetWr. MemRead, MemWrite, IorD IRWrite, RegWr, MemtoReg, RegDest PCWrite, PCWriteCond, PCSource AddrCtl bits
222
Lgende
Champ ALU Valeur Add Subt. Func Or PC rs 4 Sx Zx Dec rt Target rd Lire PC Lire ALU Ecrire IR Ecrire rt Lire rt ALU Target-cond. Fonction ALU add ALU sub ALU func ALU OR ALU 1 = PC ALU 1 = Reg[rs] ALU 2 = 4 ALU 2 = sx IR[15-0] ALU 2 = zx IR[15-0] ALU 2 = sx/sl IR[15-0] ALU 2 = Reg[rt] Target = ALUout Reg[rd] = ALUout Lire mmoire avec PC Lire mmoire avec ALU output Ecrire Reg[rt], ALU sortie adresse IR = Mem Reg[rt] = Mem Mem = Reg[rt] PC = ALU output IF Cond= then PC = Target instruction suivante premire microinstruction distribution avec ROM/Opcode.
SRC1 SRC2
Registre Mmoire
Ecrire PC
Squencement
223
Le Microprogramme!
Etiquet. ALU Fetch Add Add LW Add SW Add SRC1 PC PC rs rs rs rs rs SRC2 ALU Dest. Mmoire Re. Mem EcrirePC Squence. 4 Lire PC IR ALU Seq Dec Target Distrib. Sx Seq Lire ALU Lire rt Fetch Sx Seq Ecrire ALU Lire rt Fetch rt Seq rd Fetch rt Target cond. Fetch jump address Fetch Zx Seq rd Fetch
224
Evaluation de la microprogrammation
Facilit et structure de la conception Flexibilit
Adaptation aux changements dans l organisation, timing, et technologie Possible de faire des changements la fin du cycle de conception
Facile de rendre le jeu dinstructions plus puissant (il suffit dagrandir la mmoire de contrle) Gnralits
Implmentation de jeux dinstructions multiples sur une mme machine Jeux dinstruction sur mesure pour application
Exceptions
Programme Utilisateur Exception: Traitement Exception (systme)
Retour de l exception
Types d Exceptions
Interruptions Externes
Causes par des vnements externes Excutes entre instructions (terminer instruction courante) simple suspension et reprise du programme en cours
Conventions MIPS
Exception : tout changement inattendu du traitement normal; pas de diffrence entre interne et externe Terme interruption utilis seulement pour les vnements externes
Type vnement Requte dispositif E/S Invocation Noyau Dbordement Instruction indfinie Dysfonctionnement matriels Origine? Externe Interne Interne Interne Externe ou Interne MIPS Interruption Exception Exception Exception Exception or Interruption
228
Vecteur Interruptions
VI_base cause
Traitement Exception
Table Interruptions
PC < IT_base + cause || 0000 Sparc, . . . Traitement Exception TI_base cause
229
Changements conception?
EPCa 32-bits registre pour sauvegarde de l adresse de l instruction cause de l exception Cause registre utilis pour sauvegarde de raison de l exception. bits 2 5 pour codifier la raison: 0 (INT) => interruption 4 (ADDRL) => erreur adresse 10 (RI) => instruction indfinie 12 (OVF) => dbordement Signaux de contrle pour crire EPC , Cause Ecrire adresse fixe au PC, ajout au mux PC une entre pour 01000000 00000000 00000000 00000000 PC = PC - 4!
Architecture des Ordinateurs 230
Modifications du contrle
IR <= MEM[PC] PC <= PC + 4
R-type
S <= A fun B
ORi
LW
BEQ
S <= A - B
S <= A op ZX S <= A + SX
0010 Cond=
PC <= PC + SX || 00
~Cond=
dbordement
M <= MEM[S] MEM[S] <= B
0011
R[rd] <= S
R[rt] <= S
R[rt] <= M
EPC <= PC - 4 PC <= exp_addr Architecture des Ordinateurs cause <= 12 (Ovf)
231
232
233
Notions de Pipeline
Exemple: Opration de lavage du linge 4 personnes ; chacun doit : laver, scher, repasser, ranger lavage : 30 minutes schage : 40 minutes
A B C D
30 40 30 20 30 40 30 20 30 40 30 20 30 40 30 20 Time
A B C D
4 heures !
Architecture des Ordinateurs 236
Ifetch: Lecture de l instruction Reg/Dec: Lecture des registres et dcodage instruction Exec: Calculer l adresse mmoire Mem: Lecture de mmoire donnes Wr: Ecriture dans les registres Chemin donnes : Insertion d autres registres intermdiaires (entre tages) pour permettre traitement pipeline
Architecture des Ordinateurs 238
IFetch Dcd
IFetch Dcd
IFetch Dcd
IFetch Dcd
239
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Clk Implmentation multi-cycle: LW Ifetch Reg Exec Mem Wr SW Ifetch Reg Exec Mem R-type Ifetch
Implmentation pipeline: LW Ifetch SW Reg Ifetch Exec Reg Mem Exec Reg Wr Mem Exec Wr Mem Wr
240
R-type Ifetch
Architecture des Ordinateurs
Pourquoi le pipeline?
Excution de 100 instructions: Machine monocycle (10+7+10+10+7)
241
242
Ressources disponibles?
Temps (cycles)
ALU
Im
Reg
Dm ALU
Reg
Im
Reg
Dm ALU
Reg
Im
Reg
Dm ALU
Reg
Im
Reg
Dm ALU
Reg
Im
Reg
Dm
Reg
243
ALU
Mem
Reg
Mem ALU
Reg
Mem
Reg
Mem ALU
Reg
Mem
Reg
Mem ALU
Reg
Mem
Reg
Mem ALU
Reg
Mem
Reg
Mem
Reg
Alas de contrle
Suspension: attendre jusqu ce que la dcision puisse tre prise
possible de prendre la dcision en cycle 2 par ajout de hardware
Temp (en cycles)
ALU Mem Reg Mem ALU Reg
Mem
Reg
Mem
Reg
ALU
Mem
Reg
Mem
Reg
Alas de Contrle
Prdiction: suppose une des deux possibilits, et correction en cas d erreur
Temps (en cycles)
ALU
Mem
Reg
Mem ALU
Reg
Mem
Reg
Mem
Reg
ALU
Mem
Reg
Mem
Reg
Impact: 1 cycle/ instruction saut si prdiction est correcte, 2 cycles en cas d erreur (correcte - 50%)
Architecture des Ordinateurs 247
Alas de contrle
Redfinir saut conditionnel: avec effet aprs instruction suivante (saut avec effet retard)
Temps (en cycles)
ALU
Mem
Reg
Mem ALU
Reg
Mem
Reg
Mem ALU
Reg
Mem
Reg Mem
Mem ALU
Reg
Impact: 0/cycle par instruction saut si on peut remplir la case instruction aprs saut
Architecture des Ordinateurs 248
add r1 ,r2,r3 sub r4, r1 ,r3 and r6, r1 ,r7 or r8, r1 ,r9 xor r10, r1 ,r11
249
E X
ME M Dm
ALU
ER
Reg
Reg
Im
ALU
Dm ALU
Reg
Reg
Dm ALU
Reg
Im
Reg
Dm ALU
Reg
Im
Reg
Dm
Reg
250
E X
ME M Dm
ALU
W B Reg
Dm ALU Reg
Reg
Im
ALU
Reg
Dm ALU
Reg
Im
Reg
Dm ALU
Reg
Im
Reg
Dm
Reg
or OK ?
251
E X
ME M Dm
ALU
W B Reg
Dm Reg
Reg
ALU
253
Conception du processeur avec pipeline Revoir le chemin de donnes et le diagramme de contrle Association des ressources aux tats Rsolution de tous les conflits (alas) Assertion de contrle chaque tape
Architecture des Ordinateurs 254
Next PC PC
Inst. Mem IR Valid Dcd Ctrl IRex Cond= Exec S Mem Access M Ex Ctrl IRmem Mem Ctrl Reg File B A
Data Mem
WB Ctrl
ER M EX
ER M
Contrle
EI/DI
DI/EX
EX/MEM
MEM/ER
256
S < A + B;
S < A or ZX;
S < A + SX;
S < A + SX;
M < Mem[S]
Mem[S] <- B
R[rd] < S;
R[rt] < S;
R[rd] < M;
257
Instruction de chargement
Cycle 1 Cycle 2 Clock 1er lw Ifetch Reg/Dec Exec Reg/Dec Mem Exec Reg/Dec Wr Mem Exec Wr Mem Wr Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7
2em lw Ifetch
3em lw Ifetch
Instruction type-R
Cycle 1 Cycle 2 Cycle 3 Cycle 4
R-type Ifetch
Reg/Dec
Exec
Wr
Ifetch
Lecture de l instruction de mmoire instructions
Reg/Dec
Lecture registres et dcodage de l instruction
Exec
Opration ALU sur les deux registres
Wr
Ecriture rsultat dans un registre
Architecture des Ordinateurs 259
R-type Ifetch
R-type Ifetch
Observations importantes
Chaque unit ne peut tre utilise plus d une seule fois par instruction Chaque unit doit tre utilise dans la mme tape chaque instruction:
Chargement utilise port criture du banc registre dans la 5em tape
1 2 3 4 5 Load Ifetch Reg/Dec Exec Mem Wr
R-type Ifetch
R-type Ifetch
R-type Ifetch
R-type Ifetch
R-type Ifetch
Architecture des Ordinateurs
S < A + B;
S < A or ZX;
S < A + SX;
S < A + SX;
M < S
M < Mem[S]
Mem[S] <- B
R[rd] < M;
R[rd] < M;
264
Store
Ifetch
Reg/Dec
Exec
Mem
Wr
Ifetch: Lecture instruction de mmoire instructions Reg/Dec: Lecture registres et dcodage instruction Exec: Calcul adresse mmoire Mem: Ecriture donnes dans mmoire donnes Architecture des Ordinateurs 265
Beq
Ifetch
Reg/Dec
Exec
Mem
Wr
Ifetch: Lecture instruction de mmoire instructions Reg/Dec: Lecture registres et dcodage instruction Exec:
Comparaison des deux registres Slection de l adresse de saut Chargement PC: Alas de Contrle possible!
Architecture des Ordinateurs 266
Diagramme de contrle
IR <- Mem[PC]; PC < PC+4;
S < A + B;
S < A or ZX;
S < A + SX;
S < A + SX;
M < S
M < Mem[S]
Mem[S] <- B
R[rd] < S;
R[rd] < M;
267
Mem Inst
v wb WB Ctrl
rs rt Banc Reg.
Essai dexcution
10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, 100 28ori r8, r9, 17 32addr10, r11, r12 100 and r13, r14, 15
269
Fetch 10
n Mem Inst Decode
n
Exec Ctrl
n
Mem Ctrl WB Ctrl
rs rt Banc Reg. Exec A B Mem Donn. Acc Mem D PC Suiv. S M Banc Reg.
10 14 20 24 10 30 34
Architecture des Ordinateurs
r1, r2(35) r3, r4, r5 r6, r7, 100 r8, r9, 17 r10, r11, r12 r13, r14,270 15
100 and
n WB Ctrl
Decode
Exec Ctrl
Mem Ctrl
rs rt Banc Reg. Exec A B Mem Donn. Acc Mem D PC Suiv. S M Banc Reg.
10 14 20 24 14 30 34
Architecture des Ordinateurs
r1, r2(35) r3, r4, r5 r6, r7, 100 r8, r9, 17 r10, r11, r12
271 15 r13, r14,
100 and
n WB Ctrl
Mem Inst
Decode
lw r1
Exec Ctrl
rt
35
Mem Ctrl
Banc Reg.
Exec
A B
S Acc Mem
Banc Reg.
10 14 20 24 30 34 lw sub beq ori add
Mem Donn.
r1, r2(35) r3, r4, r5 r6, r7, 100 r8, r9, 17 r10, r11, r12
272 r13, r14, 15
D PC Suiv.
20
100 and
n
addi r2, r2
Mem Inst
Decode
Lw r1
Exec Ctrl
Mem Ctrl
WB Ctrl
Banc Reg.
Exec
r2+35
Banc Reg.
10 14 20 24 30 34 lw sub beq ori add
r1, r2(35) r3, r4, r5 r6, r7, 100 r8, r9, 17 r10, r11, r12 r13, r14, 273 15
24
100 and
274
275
Tendances de technologie
Capacit DRAM: Disques: 4x in 3 annes 4x in 3 anne
DRAM Anne Taille 1000:1! 64 Kb 1980 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1995 64 Mb
Architecture des Ordinateurs
Problme de mmoire?
Vitesse Processeur- Vitesse DRAM
DRAM
1
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
Architecture des Ordinateurs
Anne
277
Situation actuelle
Utilisation des caches pour faire le pont entre vitesse processeur et vitesse mmoire Diffrence entre performance Microprocesseur et performance DRAM
temps pour un dfaut de cache 1st Alpha (7000): 340 ns/5.0 ns 2nd Alpha (8400): 266 ns/3.3 ns 3rd Alpha (t.b.d.): 180 ns/1.7 ns en nombre d instructions = 68 clks x 2 or 136 instructions = 80 clks x 4 or 320 instructions =108 clks x 6 or 648 instructions
278
Hypothse: 10% des accs mmoire avec dfaut de cache de 50 cycles CPI = CPI idal + retard moyen par instruction = 1.1(cyc) +( 0.30 (accs mmoire/ins) x 0.10 (dfauts/accs mmoire) x 50(cycles/dfaut) ) = 1.1 cycle + 1.5 cycle = 2. 6 58 % du temps processeur est perdu dans l accs mmoire
Architecture des Ordinateurs 279
But: illusion de mmoire grande, rapide, peu coteuse Grandes mmoires sont lentes, et les mmoires rapides sont petites Comment crer l illusion?
Hirarchie Paralllisme
280
281
Espace adresse
2n - 1
282
Localit Spatiale
=> Transferts en blocks pour les niveaux suprieurs
Au processeur
Niveau Suprieur
Blk X
Niveau Infrieur
Du processeur
Blk Y
283
Hirarchie: terminologie
Succs: lment se trouve dans un block du niveau suprieur (exemple: Block X)
Taux de succs: la fraction des accs mmoire ayant lieu au niveau suprieur Temps de succs: Temps pour accder au niveau suprieur
temps accs RAM + temps dtermination succs ou dfaut
Dfaut: lment n existe pas dans le niveau suprieur (le ramener d un autre niveau: exemple Block Y)
Taux de dfaut = 1 - (Taux de succs) Pnalit de dfaut: Temps pour placer le block au niveau suprieur (remplacer un autre block) +
temps pour livrer lment au processeur
Niveau Infrieur
Du processeur
Architecture des Ordinateurs
Blk Y 284
Hirarchie : typique
Principe de localit permet de:
Prsenter l utilisateur une grande mmoire peu coteuse . Un temps d accs global proche du temps d accs de la technologie la plus coteuse.
Processeur Contrle Cache second niveau (SRAM) Mmoire Principale (DRAM) Mmoire Secondaire (Disque)
Registres
Cem. Don.
10 K
100 M
285
Hirarchie : gestion
Registres <-> Mmoire
par compilateur (programmeur?)
286
Hirarchie : technologie
Access alatoire:
Mme temps d accs pour toutes les adresses DRAM: Dynamique
Forte densit, basse consommation d'nergie, peu coteuse, lente rafrachissement priodique
SRAM: Statique
basse densit, forte consommation dnergie, coteuse, rapide pas de rafrachissement
SRAM
Cellule (~ 6 transistors) Slection mot
0 1
~bit
bit
Ecriture:
1. Valeur ligne bit (bit=1, ~bit=0) 2. Activer slection mot
Lecture:
1. 2. 3. 4. Pr charger bit et ~bit to Vdd Activer slection mot Cellule dcharge bit ou ~bit Dtection de diffrence entre bit et ~bit
288
Organisation du SRAM
Din 3 Din 2 Din 1 Din 0
Pr charge
WrEn
+
mot 0
A0 A1 A2 A3
Dcodeur Adresse
mot 1
:
mot 15
- Dtection +
Dout 1
Dout 0
289
Interface SRAM
A
N
WE_L OE_L
Write Enable (WE_L) actif quand niveau bas Combiner Din et Dout: Output enable (OE_L)
ncessaire
SRAM Timing
Temps criture Imp. Temps Lecture Donn. Sortie Adresse Lecture Donn. Sort Adresse Lecture
D A OE_L WE_L
291
DRAM
Slection range
criture:
1. Valeur ligne bit 2. Slection ranger
Lecture:
1. 2. 3. 4. 5. Pr chargement bit Vdd Slection ranger Charge de ligne bit change Dtection changement de charge sur ligne bit criture valeur
bit
Rafrachissement
Architecture des Ordinateurs
292
Adresse Range
Adresse Colonne
data
Architecture des Ordinateurs 293
294
V Bit
: :
:
octet 1023
: :
octet 992 31
295
Taille du block
Augmentation de taille du block
augmentation de pnalit de dfaut augmentation de taux de dfaut
=>
Temps accs:
= temps succs x (1 - taux de dfaut) + pnalit dfaut x taux dfaut
Pnalit Dfaut
Taux Dfaut
Temps Accs
Taille Block
Taille Block
Etiquette X X X X X
V Bit
Donnes
: :
octet 31 octet 63
297
Cache N x associatif
Index V Etiquette Donnes Cache Block 0 Donnes Cache Block 0 Etiquette V
Comp.
Sel1 1
Mux
0 Sel0
Comp.
298
299
Ecriture?
WT Ecrire dans cache et dans mmoire niveau infrieur WB Ecrire uniquement dans cache. Le block de cache est crit en mmoire niveau infrieur quand on le remplace (modifier ou non?) WT toujours combin avec tampon d criture
Cache
Processeur
DRAM
Tampon Ecriture
Architecture des Ordinateurs 300
31744
31
1K
Mmoire virtuelle Traduction Add. Num. Page Virtuelle Registre base index
Architecture des Ordinateurs
10 offset
A Ph
+
301
Adresse physique
Donnes
Solution : TLB cache (traduction anticipe) Add Virt. Add. Phy. Modif. Ref. Valide Accs
302
AV Processeur
303