cours architecture des machines informatiques 1/597 cst 101 : conception des systèmes de...
TRANSCRIPT
Cours Architecture des machines informatiques 1/597
CST 101 : Conception des systèmes de télécommunicationCST 101 : Conception des systèmes de télécommunication
IntroductionIntroduction Un cours généralisteUn cours généraliste
Un cours indispensable pour la seconde année (réforme Un cours indispensable pour la seconde année (réforme de semestrialisation ?)de semestrialisation ?)
Un cours pluridisciplinaire... comme les télécoms !Un cours pluridisciplinaire... comme les télécoms ! EncadrantsEncadrants
Ronan Keryell (Responsable, chercheur INFO)Ronan Keryell (Responsable, chercheur INFO)
Romain Casel (Chercheur département ITI)Romain Casel (Chercheur département ITI)
Frédéric Flicker (Stagiaire département ITI)Frédéric Flicker (Stagiaire département ITI)
Robert Facq (Chercheur département CMS)Robert Facq (Chercheur département CMS)
Sylvain Kardon (Thésard département CMS)Sylvain Kardon (Thésard département CMS)
Cours Architecture des machines informatiques 2/597
CST 101 : Conception des systèmes de télécommunicationCST 101 : Conception des systèmes de télécommunication
ObjectifsObjectifs Acquérir les connaissances minimales nécessaires à la Acquérir les connaissances minimales nécessaires à la
conception d’un système de télécommunicationconception d’un système de télécommunication
Avoir un premier aperçu des sciences des Avoir un premier aperçu des sciences des télécommunicationstélécommunications
Comprendre les systèmes embarqués !Comprendre les systèmes embarqués ! Travail personnel & contexteTravail personnel & contexte
Suivi régulier des cours (120 H)Suivi régulier des cours (120 H)
Exercices en PC (50 H)Exercices en PC (50 H)
Projet de fin de module (200 H)Projet de fin de module (200 H)
CC (6 H)CC (6 H)
Pas de support de cours !!! Que copie des transparentsPas de support de cours !!! Que copie des transparents
Cours Architecture des machines informatiques 3/597
Tendances actuellesTendances actuelles
Conférence 2005 Design, Automation and Test in Conférence 2005 Design, Automation and Test in EuropeEurope
Électronique partoutÉlectronique partout Exemple : AutomobilesExemple : Automobiles
30% du prix d'une voiture haut de gamme 30% du prix d'une voiture haut de gamme est dans l'électroniqueest dans l'électronique
90% de l'innovation dans les voitures sera 90% de l'innovation dans les voitures sera dans l'électronique (Daimler-Chrisler, 2000)dans l'électronique (Daimler-Chrisler, 2000)
Cours Architecture des machines informatiques 4/597
Plus d'électronique que dans tout le système ApolloPlus d'électronique que dans tout le système Apollo
75 processeurs75 processeurs 150 moteurs électriques150 moteurs électriques 100 MLOC source100 MLOC source Besoin d'avoir une seule architecture pour tous les Besoin d'avoir une seule architecture pour tous les
modèles du bas de gamme au haut de gammemodèles du bas de gamme au haut de gamme FPGA (Daimler-Chrysler)FPGA (Daimler-Chrysler)
Cours Architecture des machines informatiques 5/597
Tendances actuellesTendances actuelles
Besoin de performances mais d'économies Besoin de performances mais d'économies d'énergie : mobile, systèmes communiquant sans fil d'énergie : mobile, systèmes communiquant sans fil et à pile,...et à pile,...
Circuits intégrés immensesCircuits intégrés immenses Besoin de rehiérarchiser les circuitsBesoin de rehiérarchiser les circuits Systems on Chip (SoC)Systems on Chip (SoC)
Cours Architecture des machines informatiques 6/597
Vieux problèmes se retrouvent au sein de chaque circuitsVieux problèmes se retrouvent au sein de chaque circuits
Multiprocessors on Chip (MPoC)Multiprocessors on Chip (MPoC) Network on Chip (NoC)Network on Chip (NoC) Comment tester des systèmes avec 1+ Gtr, des Comment tester des systèmes avec 1+ Gtr, des
programmes ?programmes ? Notion d'IP (briques d'Notion d'IP (briques d'Intellectual PropertyIntellectual Property))
Cours Architecture des machines informatiques 7/597
CST 101 : Conception des systèmes de télécommunicationCST 101 : Conception des systèmes de télécommunication
EnseignementEnseignement
Modèle de machine RISC, le PowerPC 603Modèle de machine RISC, le PowerPC 603
Chaînes de conversion CAN/CNAChaînes de conversion CAN/CNA
Processus aléatoires et statistiques Processus aléatoires et statistiques
Exclusion mutuelle sur noyau mono et multiprocesseur. Exclusion mutuelle sur noyau mono et multiprocesseur. Mise en œuvre particulière de la concurrence Mise en œuvre particulière de la concurrence
Cours Architecture des machines informatiques 8/597
AC_C3: Modèle de machine RISC, le PowerPC 603AC_C3: Modèle de machine RISC, le PowerPC 603
Le PowerPC 603Le PowerPC 603 structure internestructure interne
modèle de programmationmodèle de programmation
mnémoniquemnémonique
modes d'adressagemodes d'adressage
jeu d'instructionjeu d'instruction
pgm "assembleur"pgm "assembleur" Développement de programmeDéveloppement de programme
directives d’assemblagedirectives d’assemblage
Cours Architecture des machines informatiques 9/597
Modèle de machine RISC: le PowerPC 603Modèle de machine RISC: le PowerPC 603
Un processeur RISCUn processeur RISC les instructions de calcul opèrent sur des registres les instructions de calcul opèrent sur des registres l'accès aux opérandes en mémoire se fait par l'accès aux opérandes en mémoire se fait par
l'intermédiaire d'instructions spécialisées (load ou store)l'intermédiaire d'instructions spécialisées (load ou store)
Un processeur SUPER SCALAIREUn processeur SUPER SCALAIRE Plusieurs instructions sont en phase exécution Plusieurs instructions sont en phase exécution
simultanément dans des unités d'exécution différentes. simultanément dans des unités d'exécution différentes. XU: XU: calcul sur les entierscalcul sur les entiers LSU:LSU: chargement et stockage de données en mémoirechargement et stockage de données en mémoire FPU: FPU: calcul sur les flottants calcul sur les flottants
Un processeur qui gère la hiérarchie mémoireUn processeur qui gère la hiérarchie mémoire cache données et cache instructionscache données et cache instructions unité de gestion mémoire virtuelle unité de gestion mémoire virtuelle
Cours Architecture des machines informatiques 10/597
Modèle de machine RISC: le PowerPC 603Modèle de machine RISC: le PowerPC 603
Un processeur PipelinéUn processeur Pipeliné chaque instruction est exécutée en plusieurs phases chaque instruction est exécutée en plusieurs phases
dans plusieurs unités fonctionnelles. dans plusieurs unités fonctionnelles. FU:FU: Fetch UnitFetch Unit DU:DU: Dispatch & Decode UnitDispatch & Decode Unit XU:XU: Integer Unit (une des unités d’exécution )Integer Unit (une des unités d’exécution ) LSU:LSU: Load and Store Unit (une des unités d’exécution )Load and Store Unit (une des unités d’exécution ) FPU:FPU: Floating Point Unit (une des unités d’exécution )Floating Point Unit (une des unités d’exécution ) CU:CU: Completion UnitCompletion Unit
Les unités d'exécution sont elles mêmes pipelinéesLes unités d'exécution sont elles mêmes pipelinées 1 étage pour la XU1 étage pour la XU 2 étages pour la LSU2 étages pour la LSU 3 étages pour la FPU3 étages pour la FPU
Cours Architecture des machines informatiques 11/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 12/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 13/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 14/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 15/597
Floating Point Unit: Etage de réductionFloating Point Unit: Etage de réduction
S1 exp1 mantisse1
H
S2 exp2 mantisse2
S1 exp’1 mantisse’1 S2 exp’2 mantisse’2
Comparaison exposantsModification d ’un exposant, Décalage d ’une mantisse
fadd
Cours Architecture des machines informatiques 16/597
Floating Point Unit: Etage de calcul Floating Point Unit: Etage de calcul
faddS1 exp’1 mantisse’1
H
S2 exp’2 mantisse’2
S exp mantisse
Cours Architecture des machines informatiques 17/597
Floating Point Unit: Etage de normalisationFloating Point Unit: Etage de normalisation
H
S exp mantisse
Suivant valeur de la mantisse, et de l ’exposantModification de l ’exposant, Décalages de la mantisse
S exp ’ mantisse ’
Cours Architecture des machines informatiques 18/597
Les instructions du PowerPCLes instructions du PowerPC
Les instructions sont réparties en groupe, correspondant aux Les instructions sont réparties en groupe, correspondant aux
unités fonctionnelles dans lesquelles elles s'exécutent. unités fonctionnelles dans lesquelles elles s'exécutent. Les instructions sont réparties en groupe, correspondant aux Les instructions sont réparties en groupe, correspondant aux
unités fonctionnelles dans lesquelles elles s'exécutent. unités fonctionnelles dans lesquelles elles s'exécutent. Integer InstructionsInteger Instructions
elles s'exécutent dans la XUelles s'exécutent dans la XU
les opérandes sont des registres entiers, ou/et des valeurs les opérandes sont des registres entiers, ou/et des valeurs immédiates immédiates
Les instructions sont réparties en groupe, correspondant aux Les instructions sont réparties en groupe, correspondant aux
unités fonctionnelles dans lesquelles elles s'exécutent.unités fonctionnelles dans lesquelles elles s'exécutent. Integer InstructionsInteger Instructions
elles s'exécutent dans la XUelles s'exécutent dans la XU
les opérandes sont des registres entiers, ou/et des valeurs les opérandes sont des registres entiers, ou/et des valeurs immédiates immédiates
Floating Point InstructionsFloating Point Instructions elles s'exécutent dans la FPUelles s'exécutent dans la FPU
les opérandes sont des registres flottantsles opérandes sont des registres flottants
Cours Architecture des machines informatiques 19/597
Load & Store InstructionsLoad & Store Instructions elles s'exécutent dans la LSUelles s'exécutent dans la LSU
les opérandes sont un registre (entier ou flottant) et un les opérandes sont un registre (entier ou flottant) et un opérande en mémoire désigné par un adressage indirect opérande en mémoire désigné par un adressage indirect (avec déplacement ou registre d'index) (avec déplacement ou registre d'index)
Branch InstructionsBranch Instructions elles s'exécutent dans la BPUelles s'exécutent dans la BPU
elles font souvent référence au cr, au lr, ou au ctrelles font souvent référence au cr, au lr, ou au ctr
un déplacement ou une adresse précise l'adresse de un déplacement ou une adresse précise l'adresse de l'instruction suivante à exécuterl'instruction suivante à exécuter
Les instructions du PowerPCLes instructions du PowerPC
Load & Store InstructionsLoad & Store Instructions elles s'exécutent dans la LSUelles s'exécutent dans la LSU
les opérandes sont un registre (entier ou flottant) et un les opérandes sont un registre (entier ou flottant) et un opérande en mémoire désigné par un adressage indirect opérande en mémoire désigné par un adressage indirect (avec déplacement ou registre d'index) (avec déplacement ou registre d'index)
Cours Architecture des machines informatiques 20/597
Sémantique du mnémonique (instruction XU et FPU)Sémantique du mnémonique (instruction XU et FPU)
Mnémoniques avec/sans "."Mnémoniques avec/sans "." and rD,rA,rBand rD,rA,rB (rA) & (rB) (rA) & (rB) ->-> rD rD
andand.. rD,rA,rB rD,rA,rB (rA) & (rB) (rA) & (rB) ->-> rD rD crf0: LT,EQ,GT crf0: LT,EQ,GT
"." <=> référence implicite au cr en destination"." <=> référence implicite au cr en destination pour les instructions entières:pour les instructions entières:
modification du champ crf0 du registre d'état cr. modification du champ crf0 du registre d'état cr. (en (en comparant le résultat obtenu à 0)comparant le résultat obtenu à 0)
pour les instructions flottantes:pour les instructions flottantes:modification du champ crf1 du registre d'état cr. modification du champ crf1 du registre d'état cr. (en (en comparant le résultat obtenu à 0.0)comparant le résultat obtenu à 0.0)
Cours Architecture des machines informatiques 21/597
Sémantique du mnémonique (instruction LSU)Sémantique du mnémonique (instruction LSU)
Mnémoniques avec/sans "x", avec/sans "u"Mnémoniques avec/sans "x", avec/sans "u""x" => adressage indirect avec index."x" => adressage indirect avec index." " => adressage indirect avec déplacement." " => adressage indirect avec déplacement."u" => modification du registre qui a servi de base au "u" => modification du registre qui a servi de base au
calcul d'adresse de l'opérande en mémoire.calcul d'adresse de l'opérande en mémoire." " => pas de modification." " => pas de modification.
lwz rD,d(rA)lwz rD,d(rA) le mot d'adresse d + (rA) le mot d'adresse d + (rA) ->-> rD rD
lwzu rD,d(rA)lwzu rD,d(rA) le mot d'adresse d + (rA) le mot d'adresse d + (rA) ->-> rD et d + (rA) rD et d + (rA) ->-> rA rA
lwzux rD,rA,rBlwzux rD,rA,rB le mot d'adresse (rA) + (rB) le mot d'adresse (rA) + (rB) ->-> rD et (rA) + (rB) rD et (rA) + (rB) ->-> rA rA
Cours Architecture des machines informatiques 22/597
Sémantique du mnémonique (instruction LSU)Sémantique du mnémonique (instruction LSU)
lwzu r3,20(r1)lwzu r3,20(r1) avec r1 = 0x0000C000avec r1 = 0x0000C000
contenu du mot d'adresse 0x0000C014 contenu du mot d'adresse 0x0000C014 r3 r3
0x0000C014 0x0000C014 r1 r1
lwzx r9,r6,r4lwzx r9,r6,r4 avec r6 = 0x00002000 et r4 = 8avec r6 = 0x00002000 et r4 = 8
contenu du mot d'adresse 0x00002008 contenu du mot d'adresse 0x00002008 r9 r9
lwz r7,4(r0)lwz r7,4(r0)
contenu du mot d'adresse 0x00000004 contenu du mot d'adresse 0x00000004 r7 r7
Cours Architecture des machines informatiques 23/597
Instructions de branchementInstructions de branchement
Il existe deux types d'instruction de branchement :Il existe deux types d'instruction de branchement : sans condition, toujours effectués.sans condition, toujours effectués.
conditionnels, effectués suivant des conditions :conditionnels, effectués suivant des conditions : soit valeur d'un bit du registre d'étatsoit valeur d'un bit du registre d'état
soit le contenu du registre ctrsoit le contenu du registre ctr
Si adr est l'adresse en mémoire de l'instruction de Si adr est l'adresse en mémoire de l'instruction de branchement, adr + 4 peut être sauvegardée ou branchement, adr + 4 peut être sauvegardée ou non dans le lr (Link Register).non dans le lr (Link Register).
branch sans sauvegarde branch sans sauvegarde
branch avec sauvegarde (le mnémonique se termine par l)branch avec sauvegarde (le mnémonique se termine par l)
Cours Architecture des machines informatiques 24/597
Instructions de branchementInstructions de branchement
Il existe plusieurs façons de déterminer l'adresse de Il existe plusieurs façons de déterminer l'adresse de l'instruction à exécuter si le branchement est l'instruction à exécuter si le branchement est effectué : effectué : en précisant le déplacement par rapport à l'adresse de en précisant le déplacement par rapport à l'adresse de
l'instruction branch (branchement relatif)l'instruction branch (branchement relatif)
en précisant que cette adresse est dans le lren précisant que cette adresse est dans le lr
en précisant que cette adresse est dans le ctren précisant que cette adresse est dans le ctr en précisant l'adresse exacte de l'instruction (branchement absolu)en précisant l'adresse exacte de l'instruction (branchement absolu)
Cours Architecture des machines informatiques 25/597
Instructions de branchementInstructions de branchement
b -40b -40 Si l'instruction est située à l'adresse adr, l'instruction exécutée Si l'instruction est située à l'adresse adr, l'instruction exécutée
après "b -40" sera celle d'adresse adr - 40après "b -40" sera celle d'adresse adr - 40
btl crf3_GT,28btl crf3_GT,28 Si l'instruction est située à l'adresse adr et le bit GT du crf3 vaut 1 Si l'instruction est située à l'adresse adr et le bit GT du crf3 vaut 1
• alors l'instruction exécutée après "btl crf3_GT,28" sera celle d'adresse alors l'instruction exécutée après "btl crf3_GT,28" sera celle d'adresse adr + 28, et adr + 4 sera sauvegardé dans le lr. adr + 28, et adr + 4 sera sauvegardé dans le lr.
• sinon l'instruction exécutée après "btl crf3_GT,28" sera celle d'adresse sinon l'instruction exécutée après "btl crf3_GT,28" sera celle d'adresse adr + 4, et le lr ne sera pas modifié. adr + 4, et le lr ne sera pas modifié.
bflr crf2_EQbflr crf2_EQ Si l'instruction est située à l'adresse adr et le bit EQ du crf2 vaut 0 Si l'instruction est située à l'adresse adr et le bit EQ du crf2 vaut 0
• alors l'instruction exécutée après "bflr crf2_EQ" sera celle dont alors l'instruction exécutée après "bflr crf2_EQ" sera celle dont l'adresse est contenue dans le lr. l'adresse est contenue dans le lr.
• sinon l'instruction exécutée après "bflr crf2_EQ" sera celle d'adresse sinon l'instruction exécutée après "bflr crf2_EQ" sera celle d'adresse adr + 4.adr + 4.
Cours Architecture des machines informatiques 26/597
Développement de programmes, C <=> MnémoniqueDéveloppement de programmes, C <=> Mnémonique
#define #define IMAX 100IMAX 100main() { main() {
int N, int i;int N, int i;N = 0; N = 0; (for i = 1; i < IMAX; i++)(for i = 1; i < IMAX; i++)
N = N + i;N = N + i;}}
ETI0ETI0 equ 100equ 100ETI1 ETI1 li r8,0li r8,0 li r9,1li r9,1
ETI2ETI2 cmpi crf3,r9,ETI0cmpi crf3,r9,ETI0 bf crf3_LT,ETI3-*bf crf3_LT,ETI3-* add r8,r8,r9add r8,r8,r9
addi r9,r9,1addi r9,r9,1 b ETI2-*b ETI2-*
ETI3ETI3
Cours Architecture des machines informatiques 27/597
Développement de programmes, C <=> MnémoniqueDéveloppement de programmes, C <=> Mnémonique
Un programme en »mnémonique" :Un programme en »mnémonique" : étiquettesétiquettes directives d'assemblagedirectives d'assemblage mnémoniques (incluant des facilités)mnémoniques (incluant des facilités) ** #define IMAX 100#define IMAX 100IMAXIMAX equ 100 equ 100 ** main () {main () { ** int N, int i; N <=> r8int N, int i; N <=> r8 , i <=> r9, i <=> r9** NN = = 0;0;
aorg 0x0E002000aorg 0x0E002000mainmain li r8,0li r8,0* * (for i = 1; i < IMAX; i++)(for i = 1; i < IMAX; i++)
for_initfor_init li r9,1 li r9,1
for_loopfor_loop cmpi crf3,r9,IMAXcmpi crf3,r9,IMAX bf crf3_LT,for_end-*bf crf3_LT,for_end-*
** N = N + i;N = N + i;for_bodyfor_body add r8,r8,r9add r8,r8,r9for_incrfor_incr addi r9,r9,1addi r9,r9,1
b for_loop-*b for_loop-*for_endfor_end** }}
Cours Architecture des machines informatiques 28/597
Développement de programmes, édition de lienDéveloppement de programmes, édition de lien
Fic1.c
Fic2.c
Fic3.c
Fic1.asm
Fic2.asm
Fic3.asm
Fic1.obj
Fic2.obj
Fic3.obj
compilation assemblageÉdition de lien
Fic.exe
Cours Architecture des machines informatiques 29/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 30/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 31/597
AMD K6-IIIAMD K6-III
Cours Architecture des machines informatiques 32/597
AMD AthlonAMD Athlon
Cours Architecture des machines informatiques 33/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 34/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 35/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 36/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 37/597
Floating Point Unit: Etage de réductionFloating Point Unit: Etage de réduction
S1 exp1 mantisse1
H
S2 exp2 mantisse2
S1 exp’1 mantisse’1 S2 exp’2 mantisse’2
Comparaison exposantsModification d ’un exposant, Décalage d ’une mantisse
fadd
Cours Architecture des machines informatiques 38/597
Floating Point Unit: Etage de calcul Floating Point Unit: Etage de calcul
faddS1 exp’1 mantisse’1
H
S2 exp’2 mantisse’2
S exp mantisse
Cours Architecture des machines informatiques 39/597
Floating Point Unit: Etage de normalisationFloating Point Unit: Etage de normalisation
H
S exp mantisse
Suivant valeur de la mantisse, et de l ’exposantModification de l ’exposant, Décalages de la mantisse
S exp ’ mantisse ’
Cours Architecture des machines informatiques 40/597
Développement de programmes, édition de lienDéveloppement de programmes, édition de lien
Fic1.c
Fic2.c
Fic3.c
Fic1.asm
Fic2.asm
Fic3.asm
Fic1.obj
Fic2.obj
Fic3.obj
compilation assemblageÉdition de lien
Fic.exe
Cours Architecture des machines informatiques 41/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 42/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 43/597
AMD K6-IIIAMD K6-III
Cours Architecture des machines informatiques 44/597
AMD AthlonAMD Athlon
Cours Architecture des machines informatiques 45/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 46/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 47/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 48/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 49/597
Développement de programmes, édition de lienDéveloppement de programmes, édition de lien
Fic1.c
Fic2.c
Fic3.c
Fic1.asm
Fic2.asm
Fic3.asm
Fic1.obj
Fic2.obj
Fic3.obj
compilation assemblageÉdition de lien
Fic.exe
Cours Architecture des machines informatiques 50/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 51/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 52/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 53/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 54/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 55/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 56/597
Développement de programmes, édition de lienDéveloppement de programmes, édition de lien
Fic1.c
Fic2.c
Fic3.c
Fic1.asm
Fic2.asm
Fic3.asm
Fic1.obj
Fic2.obj
Fic3.obj
compilation assemblageÉdition de lien
Fic.exe
Cours Architecture des machines informatiques 57/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 58/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 59/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 60/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 61/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 62/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 63/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 64/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 65/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 66/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 67/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 68/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 69/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 70/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 71/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 72/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 73/597
AMD K6-IIIAMD K6-III
Cours Architecture des machines informatiques 74/597
AMD AthlonAMD Athlon
Cours Architecture des machines informatiques 75/597
AMD K6-IIIAMD K6-III
Cours Architecture des machines informatiques 76/597
AMD AthlonAMD Athlon
Cours Architecture des machines informatiques 77/597
AMD K6-IIIAMD K6-III
Cours Architecture des machines informatiques 78/597
AMD AthlonAMD Athlon
Cours Architecture des machines informatiques 79/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 80/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 81/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 82/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 83/597
Développement de programmes, édition de lienDéveloppement de programmes, édition de lien
Fic1.c
Fic2.c
Fic3.c
Fic1.asm
Fic2.asm
Fic3.asm
Fic1.obj
Fic2.obj
Fic3.obj
compilation assemblageÉdition de lien
Fic.exe
Cours Architecture des machines informatiques 84/597
MIPS R4400MIPS R4400
Cours Architecture des machines informatiques 85/597
AMD K6-2AMD K6-2
Cours Architecture des machines informatiques 86/597
AMD K6-IIIAMD K6-III
Cours Architecture des machines informatiques 87/597
AMD AthlonAMD Athlon
Cours Architecture des machines informatiques 88/597
PowerPC 603 Structure internePowerPC 603 Structure interne
Bus Interface Unit
FetchUnit
BranchUnit
A0..A31 CTRL DH0..DH31 DL0..DL31
DispatchUnit
Instruction Unit
IntegerUnit XU
Load & StoreUnit LSU
Floating PointUnit FPU
Data Mem. Man.Unit
Inst. Mem. Man. Unit
CompletionUnit
Cours Architecture des machines informatiques 89/597
Structure interne: Instruction UnitStructure interne: Instruction Unit
Fetch Unit
La FU, va lire, en mémoire cache les instructions. Elle les dépose dans la queue.
PC
Dispatch Unit
La DU, lit, en queue les 2 premières instructions à exécuter. Si elle peut les distribuer aux unités d ’exécution, elle les ôte de la queue et les distribue.2 par cycle au maximum
Branch Unit
La BU, va lire, en queue les instructions de saut à exécuter. Si elle peut les exécuter, elle le fait et les ôte de la queue.1 par cycle maximum
Queue d ’instructions
XU LSU FPU
Cours Architecture des machines informatiques 90/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
....
Floating PointRegisters
fr0fr1fr2
fr29fr30fr31
instruction (de DU)op1
op2
étage réduction
étage calcul
étage normalis.
Completion Unit
FPU
Cours Architecture des machines informatiques 91/597
Structure interne: Floating Point UnitStructure interne: Floating Point Unit
étage réduction
étage calcul
étage normalisationH
Cours Architecture des machines informatiques 92/597