cm6 introduction à la micro-architecturemarchett/cm6.pdf · micro-architecture ? construction ?...
TRANSCRIPT
CM6Introduction a la micro-architecture
Olivier Marchetti (CM-TD-TP) 1 Guillaume Matheron (TD-TP) 2
1Laboratoire d’informatique de Paris 6 – Pole SoC – UPMC
2Institut des Systemes Intelligents et de Robotique – Equipe SYROCO – UPMC
Annee 2017-2018
Micro-architecture ? Construction ? Controle ?
Plan
1 Couche micro-architecture
2 Construction d’un chemin des donnees
3 Controle du chemin des donnees
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 2 / 36
Micro-architecture ? Construction ? Controle ?
1 Couche micro-architecture
2 Construction d’un chemin des donnees
3 Controle du chemin des donnees
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 3 / 36
Micro-architecture ? Construction ? Controle ?
Abstractions d’un ordinateur : retour sur la vue hierarchique
?
?
Langage de programmation
Programmes applicatifs
Langage assembleur
Langage machine
Logique numérique
Ass. MIPS
C, Java
4
4
4 Electronique...
ISA MIPS4
Micro−architecture
SE − Noyau (cf. EISE−4)
La couche micro-architecture
C’est le niveau d’abstraction qui decritcomment :
I les donnees transitent,
I l’execution des instructions est realisee,
au cours du temps et parmi les differentscomposants electroniques de l’ordinateur.
Chemin des donnees
Controle
Machine virtuelle
Chaque niveau :
I definit une abstraction nouvelle,
I repose sur une implementation du niveau inferieur (ou utilise ses services),
I constitue une machine virtuelle.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 4 / 36
Micro-architecture ? Construction ? Controle ?
Introduction au chemin des donnees & au controle
Notion de chemin des donnees
Le chemin des donnees detaille :
1 comment sont realises les transfertsd’informations,
2 quelles sont les unites fonctionnellesnecessaires mises en jeu
en vue de realiser toutes les instructions de l’ISA.
La definition du chemin des donnees est un art :
I multiples solutions.
=⇒ compromis espace/performance.
I depend de la definition de l’ISA.
Notion de controle
Le controle assure la coherence des calculs realisessur un chemin des donnees.
Il permet notamment :
1 une bonne synchronisation des donnees,
2 l’activation conditionnelle de certaines unitesfonctionnelles (ALU, RAM...).
La definition du controle des donnees est un art :
I automates finis.
I microprogrammation.
I depend du chemin des donnees retenu.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 5 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Cycle CDE & jeu d’instructions
En tant que machine, quelle est la specificite d’un ordinateur ?
=⇒ Un ordinateur est une realisation physique du cycle CDE
Tout ordinateur :
I utilise des conventions de representation des donnees,
I dispose d’un nombre fini d’instructions (elles aussi considerees comme desdonnees),
I dispose d’une memoire de donnees totalement adressee,
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 6 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction de chargement memoire lw
code−op lw rt adressers
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse du code op des six bits de poids fort.
3 Decodage des operandes en jeu.
4 Lecture du registre operande.
5 Calcul d’adresse du mot memoire a charger.
6 Lecture du mot memoire voulu.
7 Chargement du registre destination par ce mot.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 7 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction de chargement memoire lw
registre rs registre rt
code−op lw rt adressers
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse du code op des six bits de poids fort.
3 Decodage des operandes en jeu.
4 Lecture du registre operande.
5 Calcul d’adresse du mot memoire a charger.
6 Lecture du mot memoire voulu.
7 Chargement du registre destination par ce mot.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 7 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction de chargement memoire lw
registre rs registre rt
code−op lw rt adressers
+
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse du code op des six bits de poids fort.
3 Decodage des operandes en jeu.
4 Lecture du registre operande.
5 Calcul d’adresse du mot memoire a charger.
6 Lecture du mot memoire voulu.
7 Chargement du registre destination par ce mot.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 7 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction de chargement memoire lw
registre rs registre rt
code−op lw rt adressers
+RAM
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse du code op des six bits de poids fort.
3 Decodage des operandes en jeu.
4 Lecture du registre operande.
5 Calcul d’adresse du mot memoire a charger.
6 Lecture du mot memoire voulu.
7 Chargement du registre destination par ce mot.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 7 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction de chargement memoire lw
registre rs registre rt
code−op lw rt adressers
+RAM
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse du code op des six bits de poids fort.
3 Decodage des operandes en jeu.
4 Lecture du registre operande.
5 Calcul d’adresse du mot memoire a charger.
6 Lecture du mot memoire voulu.
7 Chargement du registre destination par ce mot.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 7 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction arithmetique add
rtrs rd fonctcode−op add
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse des champs code op et fonct.
3 Decodage des operandes en jeu.
4 Determination et lecture des registres operandes.
5 Calcul de la somme.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 8 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction arithmetique add
rtrs rd fonct
+
code−op add
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse des champs code op et fonct.
3 Decodage des operandes en jeu.
4 Determination et lecture des registres operandes.
5 Calcul de la somme.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 8 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction arithmetique add
registre rs registre rt
rtrs rd fonct
+
registre rd
code−op add
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse des champs code op et fonct.
3 Decodage des operandes en jeu.
4 Determination et lecture des registres operandes.
5 Calcul de la somme.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 8 / 36
Micro-architecture ? Construction ? Controle ?
Question du jour : comment une instruction est-elle realisee par le materiel ?
Execution de l’instruction arithmetique add
registre rs registre rt
rtrs rd fonct
+
registre rd
code−op add
1 Determination de l’instruction a executer via le registre PC.
2 Decodage de l’instruction par analyse des champs code op et fonct.
3 Decodage des operandes en jeu.
4 Determination et lecture des registres operandes.
5 Calcul de la somme.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 8 / 36
Micro-architecture ? Construction ? Controle ?
Chemin des donnees : les unites fonctionnelles
Quels elements materiels sont en jeu dans la realisation d’une instruction ?
I Le registre PC compteur de pro-gramme.
I Une memoire � instructions �.
I Une memoire � donnees �.
I Le banc des registres pour ma-nipuler les informations dans leCPU.
I Une UAL pour realiser des calculs.
De plus, l’execution d’une instruction necessite :
=⇒ un signal d’horloge pour coordonner cesunites fonctionnelles,
=⇒ des signaux d’ecriture/lecture pour com-mander les elements memorisants.
Adr. àlire
d’instructions
Mémoire
InstructionPC
Donnéeà écrire
Adr.
lecture
Adr.écriture
Donnéelue 1
Donnéeà écrire
Reg.lecture 2
Reg.écriture Donnée
lue 2
UAL
de données
Mémoire
Donnée
lue
Reg.
lecture 1
Registres
Num Registre
Num Registre
Num Registre
Donnée
Donnée
Donnée
Bus & Unites fonctionnelles
En MIPS, donnees et instructions sont representees sur 32 bits et transitent entre lesunites fonctionnelles par des bus de cette largeur (sauf mention contraire).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 9 / 36
Micro-architecture ? Construction ? Controle ?
Chemin des donnees : les unites fonctionnelles
Quels elements materiels sont en jeu dans la realisation d’une instruction ?
I Le registre PC compteur de pro-gramme.
I Une memoire � instructions �.
I Une memoire � donnees �.
I Le banc des registres pour ma-nipuler les informations dans leCPU.
I Une UAL pour realiser des calculs.
De plus, l’execution d’une instruction necessite :
=⇒ un signal d’horloge pour coordonner cesunites fonctionnelles,
=⇒ des signaux d’ecriture/lecture pour com-mander les elements memorisants.
Adr. àlire
d’instructions
Mémoire
InstructionPC
Donnéeà écrire
Adr.
lecture
Adr.écriture
Donnéelue 1
Donnéeà écrire
Reg.lecture 2
Reg.écriture Donnée
lue 2
UAL
de données
Mémoire
Donnée
lue
Reg.
lecture 1
Registres
Num Registre
Num Registre
Num Registre
Donnée
Donnée
Donnée
Bus & Unites fonctionnelles
En MIPS, donnees et instructions sont representees sur 32 bits et transitent entre lesunites fonctionnelles par des bus de cette largeur (sauf mention contraire).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 9 / 36
Micro-architecture ? Construction ? Controle ?
Chemin des donnees : les unites fonctionnelles
Quels elements materiels sont en jeu dans la realisation d’une instruction ?
I Le registre PC compteur de pro-gramme.
I Une memoire � instructions �.
I Une memoire � donnees �.
I Le banc des registres pour ma-nipuler les informations dans leCPU.
I Une UAL pour realiser des calculs.
De plus, l’execution d’une instruction necessite :
=⇒ un signal d’horloge pour coordonner cesunites fonctionnelles,
=⇒ des signaux d’ecriture/lecture pour com-mander les elements memorisants.
Adr. àlire
d’instructions
Mémoire
Instruction
HorlogeHorloge
Horloge
PC
Donnéeà écrire
Adr.
lecture
Adr.écriture
Donnéelue 1
Donnéeà écrire
Reg.lecture 2
Reg.écriture Donnée
lue 2
UAL
Horloge
de données
Mémoire
Donnée
lue
Reg.
lecture 1
Registres
Num Registre
Num Registre
Num Registre
Donnée
Donnée
Donnée
Bus & Unites fonctionnelles
En MIPS, donnees et instructions sont representees sur 32 bits et transitent entre lesunites fonctionnelles par des bus de cette largeur (sauf mention contraire).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 9 / 36
Micro-architecture ? Construction ? Controle ?
Chemin des donnees : les unites fonctionnelles
Quels elements materiels sont en jeu dans la realisation d’une instruction ?
I Le registre PC compteur de pro-gramme.
I Une memoire � instructions �.
I Une memoire � donnees �.
I Le banc des registres pour ma-nipuler les informations dans leCPU.
I Une UAL pour realiser des calculs.
De plus, l’execution d’une instruction necessite :
=⇒ un signal d’horloge pour coordonner cesunites fonctionnelles,
=⇒ des signaux d’ecriture/lecture pour com-mander les elements memorisants.
Adr. àlire
d’instructions
Mémoire
Instruction
Donnéeà écrire
Adr.
lecture
Adr.écriture
de données
Mémoire
Donnée
lue
Ecrire
Lire
Donnéelue 1
Donnéeà écrire
Reg.lecture 2
Reg.écriture Donnée
lue 2
Reg.
lecture 1
Registres
Num Registre
Num Registre
Num Registre
Donnée
Donnée
Donnée
Ecrire
UAL
Opération UAL
HorlogeHorloge
Horloge
PC
Ecrire
Horloge
Bus & Unites fonctionnelles
En MIPS, donnees et instructions sont representees sur 32 bits et transitent entre lesunites fonctionnelles par des bus de cette largeur (sauf mention contraire).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 9 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t t
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t
nt
Eta
t
t n
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
tt n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
calcul calcul
tt
Eta
t
n+1n
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
tt n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
calcul calcul
tt
Eta
t
n+1n. . .
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t t
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t
nt
Eta
t
t n
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
t
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
tt n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
calcul calcul
tt
Eta
t
n+1n
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En synchronisant les elements d’etats par des signaux... associes a une horloge.
période d’horloge front descendant
front montant
tt n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
calcul calcul
tt
Eta
t
n+1n. . .
Un peu de terminologie
I La periode d’horloge est aussi appelee cycle d’horloge.
I Une mesure interessante pour caracteriser une architecture est le CPI, i.e. le nombremoyen de cycle par instructions d’un programme.
=⇒ Permet de comparer deux mises en oeuvre d’une meme architecture ISA.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 10 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
rtrs rd fonctcode−op add
nt
Eta
t
t n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
rtrs rd fonct
+
code−op add
nt
Eta
t
t n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
registre rs registre rt
rtrs rd fonct
+
registre rd
code−op add
nt
Eta
t
t n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
registre rs registre rt
rtrs rd fonct
+
registre rd
code−op add
nt
Eta
t
t n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
code−op lw rt adressers
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
registre rs registre rt
code−op lw rt adressers
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
registre rs registre rt
code−op lw rt adressers
+
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
registre rs registre rt
code−op lw rt adressers
+RAM
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas mono-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant un cycle d’horloge pour realiser toute instruction.
registre rs registre rt
code−op lw rt adressers
+RAM t n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
calcul calcul
tt
Eta
t
n+1n
Realisation mono-cycle (etudie dans ce cours)
Disposer d’une periode d’horloge suffisamment grande permettant d’executer en un cycle toute instruction de l’ISA.√
Chemin des donnees � facile � a realiser.√
Controle � facile � a realiser.
X Redondance materielle evidente.
X Mauvaises performances (car tres sequentiel).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 11 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas multi-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant chaque cycle d’horloge pour realiser une etape d’instruction.
rtrs rd fonctcode−op add
nt
Eta
t
t n
Realisation multi-cycle
Augmenter la frequence d’horloge et � paralleliser � l’usage des unites fonctionnelles pour � servir � plusieursinstructions.
√Bonne utilisation du materiel.
√Amelioration sensible des performances.
X Chemin des donnees ingenieux.
X Controle tres sophistique.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 12 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas multi-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant chaque cycle d’horloge pour realiser une etape d’instruction.
rtrs rd fonct
+
code−op add
nt
Eta
t
n+
1t
calcul
tt
Eta
t
n+1n
Realisation multi-cycle
Augmenter la frequence d’horloge et � paralleliser � l’usage des unites fonctionnelles pour � servir � plusieursinstructions.
√Bonne utilisation du materiel.
√Amelioration sensible des performances.
X Chemin des donnees ingenieux.
X Controle tres sophistique.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 12 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas multi-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant chaque cycle d’horloge pour realiser une etape d’instruction.
registre rs registre rt
rtrs rd fonct
+
registre rd
code−op add
t n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
calcul calcul
tt
Eta
t
n+1n. . .
Realisation multi-cycle
Augmenter la frequence d’horloge et � paralleliser � l’usage des unites fonctionnelles pour � servir � plusieursinstructions.
√Bonne utilisation du materiel.
√Amelioration sensible des performances.
X Chemin des donnees ingenieux.
X Controle tres sophistique.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 12 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – cas multi-cycle
Comment agencer dans le temps les differentes etapes d’une instruction ?
=⇒ En considerant chaque cycle d’horloge pour realiser une etape d’instruction.
registre rs registre rt
rtrs rd fonct
+
registre rd
code−op add
t n+2
nt
Eta
t
n+
2t
Eta
t
n+
1t
t n+3
n+
3t
calcul calcul
tt
Eta
t
n+1n
Eta
t
calcul
Realisation multi-cycle
Augmenter la frequence d’horloge et � paralleliser � l’usage des unites fonctionnelles pour � servir � plusieursinstructions.
√Bonne utilisation du materiel.
√Amelioration sensible des performances.
X Chemin des donnees ingenieux.
X Controle tres sophistique.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 12 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – synthese
Comment executer une instruction ?
=⇒ Utiliser un seul cycle par CDE vs. utiliser plusieurs cycles par CDE.
1 c
ycl
e
Performance :
=⇒ Les processeurs modernes sont tous multi-cycle.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 13 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – synthese
Comment executer une instruction ?
=⇒ Utiliser un seul cycle par CDE vs. utiliser plusieurs cycles par CDE.
1 c
ycl
e
Performance :
=⇒ Les processeurs modernes sont tous multi-cycle.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 13 / 36
Micro-architecture ? Construction ? Controle ?
Execution d’une instruction & cycle d’horloge – synthese
Comment executer une instruction ?
=⇒ Utiliser un seul cycle par CDE vs. utiliser plusieurs cycles par CDE.. . .
1c.
1c.
1c.
1c. 1 c
ycl
e
Performance :
=⇒ Les processeurs modernes sont tous multi-cycle.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 13 / 36
Micro-architecture ? Construction ? Controle ?
1 Couche micro-architecture
2 Construction d’un chemin des donnees
3 Controle du chemin des donnees
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 14 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Construction du chemin des donnees mono-cycle – generalites
Qu’est-ce que la construction du chemin des donnees ?
=⇒ C’est un peu un jeu de Lego !
I avec comme pieces :
Adr. à
lire
d’instructions
Mémoire
Instruction
Donnée
lue 1
Donnée
à écrire
Reg.
lecture 2
Reg.
écriture Donnée
lue 2
Reg.
lecture 1
Registres
Num Registre
Num Registre
Num Registre
Donnée
Donnée
Donnée
Ecrire
UAL
Opération UAL
Donnée
à écrire
Adr.
lecture
Adr.
écriture
de données
Mémoire
Donnée
lue
Ecrire
Lire
PC
Ecrire
I et avec les contraintes suivantes sur l’agencement des pieces :
Tous les types d’instructionsdoivent etre :
• analyses,
• traites
correctement par les unitesfonctionnelles precedemmentcablees.
6 5 0101115202126 2531 16
reg.operande
Rs
reg.operande
Rtcode op
Rd
reg.dest.decval fonct.
Format d’instruction R
registre−registre
015202126 2531 16
reg.operande
Rs
reg.operande
Rtcode op Immédiat 16bits
Format d’instruction I
immédiat
026 2531
code op Adresse 26 bits
saut d’instructions
Format d’instruction J
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 15 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : construction du chemin des donnees mono-cycle – Methodologie
Comment concevoir un chemin des donnees coherent ?
=⇒ En procedant par etape, puis en ajoutant le controle.
1) Etude de l’ISA
I Bien observer la description de l’ISA (formatsR, I, J).
I Bien comprendre le travail a faire pour chaqueformat d’instructions.
I Identifier les flux d’informations entre lesunites fonctionnelles pour ces formats.
2) Projection sur le materiel
I Realiser a partir des unites fonctionnelles lesbriques elementaires pour la realisation ducycle � chercher, executer, decoder �.
I Factoriser si possible.
I Identifier la partie a controler.
3) Construction effective
I Cabler entre elles ces differentes briques.
I Ajouter le controle.
4) Realisation du controle
Realiser la partie controle en fonction des signaux precedemment identifies afin d’assurer la coherence du chemindes donnees. Plusieurs techniques :
I Ajout de circuits combinatoires (� cas simple �).
I Definition d’un automate fini et realisation d’un circuit de controle (CAO industrielle).
I Utiliser une ROM et un microprogramme (CAO industrielle).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 16 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante
Comment faire pour executer la prochaine instruction ?
=⇒ Interroger PC, extraction memoire, mise-a-jour de PC.
d’instructions
Mémoire
Instruction
PC
4
Add
Adr. à
lire
Extraction d’une instructions
Lire le registre compteurprogramme, et retournerl’instruction se situant a cetteadresse.
Mise a jour de PC
Par defaut, ajouter 4 a l’adresse duregistre.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 17 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante
Comment faire pour executer la prochaine instruction ?
=⇒ Interroger PC, extraction memoire, mise-a-jour de PC.
d’instructions
Mémoire
Instruction
PC
4
Add
Adr. à
lire
Extraction d’une instructions
Lire le registre compteurprogramme, et retournerl’instruction se situant a cetteadresse.
Mise a jour de PC
Par defaut, ajouter 4 a l’adresse duregistre.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 17 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante
Comment faire pour executer la prochaine instruction ?
=⇒ Interroger PC, extraction memoire, mise-a-jour de PC.
Adr. à
lire
d’instructions
Mémoire
Instruction
PC
4
Add
Extraction d’une instructions
Lire le registre compteurprogramme, et retournerl’instruction se situant a cetteadresse.
Mise a jour de PC
Par defaut, ajouter 4 a l’adresse duregistre.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 17 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante
Comment faire pour executer la prochaine instruction ?
=⇒ Interroger PC, extraction memoire, mise-a-jour de PC.
Adr. à
lire
d’instructions
Mémoire
Add
Instruction
PC
4
Extraction d’une instructions
Lire le registre compteurprogramme, et retournerl’instruction se situant a cetteadresse.
Mise a jour de PC
Par defaut, ajouter 4 a l’adresse duregistre.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 17 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante
Comment faire pour executer la prochaine instruction ?
=⇒ Interroger PC, extraction memoire, mise-a-jour de PC.
Adr. à
lire
d’instructions
Mémoire
4
Add
Instruction
PC
Extraction d’une instructions
Lire le registre compteurprogramme, et retournerl’instruction se situant a cetteadresse.
Mise a jour de PC
Par defaut, ajouter 4 a l’adresse duregistre.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 17 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante – illustration
Initiation d’un nouveau cycle CDE
Adr. à
lire
d’instructions
Mémoire
4
Add
Instruction
PC
1 Le registre PC est lu. Sa valeur est aussiacheminee aupres d’une UAL pourincrementation.
2 La memoire d’instructions retournel’instruction courante.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 18 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante – illustration
Initiation d’un nouveau cycle CDE
PCAdr. à
lire
d’instructions
Mémoire
4
Add
Instruction
1 Le registre PC est lu. Sa valeur est aussiacheminee aupres d’une UAL pourincrementation.
2 La memoire d’instructions retournel’instruction courante.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 18 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – determiner l’instruction courante – illustration
Initiation d’un nouveau cycle CDE
PCAdr. à
lire
d’instructions
Mémoire
4
Add
Instruction
1 Le registre PC est lu. Sa valeur est aussiacheminee aupres d’une UAL pourincrementation.
2 La memoire d’instructions retournel’instruction courante.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 18 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs
Comment executer une instruction de type R (add, and, slt...) ?
=⇒ Retrouver les donnees & activer l’UAL.
UALInstruction
zéro
résultatUAL
Registres
lecture 1
Reg.
lecture 2Reg. Donnée
lue 1
Donnéelue 2
écritureReg.
Donnéeà écrire
Etape 1 : le banc des registres
Il contient 32 registres de 32 bits chacun :
I 3 ports pour definir les registres operandes enjeu,
I 1 port pour lire une donnee en ecriture (ac-tivee par un signal explicite du controle),
I 2 ports pour envoyer les donnees demandeesa l’UAL.
Etape 2 : l’ALU
C’est une petite calculette (circuit combinatoire).Ici :
I deux ports acheminent les operandes.
I un signal large de 3 bits encode l’operationvoulue (posee ulterieurement sur l’UAL).
I ajouter une sortie detection de zero pour unbranchement imminent (cf. beq).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 19 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs
Comment executer une instruction de type R (add, and, slt...) ?
=⇒ Retrouver les donnees & activer l’UAL.
Donnéeà écrire
Reg.lecture 2
Reg.écriture
Donnéelue 2
Donnéelue 1
Reg.
lecture 1
Registres UALInstruction
zéro
résultatUAL
Etape 1 : le banc des registres
Il contient 32 registres de 32 bits chacun :
I 3 ports pour definir les registres operandes enjeu,
I 1 port pour lire une donnee en ecriture (ac-tivee par un signal explicite du controle),
I 2 ports pour envoyer les donnees demandeesa l’UAL.
Etape 2 : l’ALU
C’est une petite calculette (circuit combinatoire).Ici :
I deux ports acheminent les operandes.
I un signal large de 3 bits encode l’operationvoulue (posee ulterieurement sur l’UAL).
I ajouter une sortie detection de zero pour unbranchement imminent (cf. beq).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 19 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs
Comment executer une instruction de type R (add, and, slt...) ?
=⇒ Retrouver les donnees & activer l’UAL.
Donnéeà écrire
Reg.lecture 2
Reg.écriture
Donnéelue 2
Donnéelue 1
Reg.
lecture 1
Registres UALrésultat
UAL
zéro
Instruction
Etape 1 : le banc des registres
Il contient 32 registres de 32 bits chacun :
I 3 ports pour definir les registres operandes enjeu,
I 1 port pour lire une donnee en ecriture (ac-tivee par un signal explicite du controle),
I 2 ports pour envoyer les donnees demandeesa l’UAL.
Etape 2 : l’ALU
C’est une petite calculette (circuit combinatoire).Ici :
I deux ports acheminent les operandes.
I un signal large de 3 bits encode l’operationvoulue (posee ulterieurement sur l’UAL).
I ajouter une sortie detection de zero pour unbranchement imminent (cf. beq).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 19 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs
Comment executer une instruction de type R (add, and, slt...) ?
=⇒ Retrouver les donnees & activer l’UAL.
Donnéeà écrire
Reg.lecture 2
Reg.écriture
Donnéelue 2
Donnéelue 1
Reg.
lecture 1
RegistresInstruction
UALrésultat
UAL
zéro
Etape 1 : le banc des registres
Il contient 32 registres de 32 bits chacun :
I 3 ports pour definir les registres operandes enjeu,
I 1 port pour lire une donnee en ecriture (ac-tivee par un signal explicite du controle),
I 2 ports pour envoyer les donnees demandeesa l’UAL.
Etape 2 : l’ALU
C’est une petite calculette (circuit combinatoire).Ici :
I deux ports acheminent les operandes.
I un signal large de 3 bits encode l’operationvoulue (posee ulterieurement sur l’UAL).
I ajouter une sortie detection de zero pour unbranchement imminent (cf. beq).
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 19 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs – exemple
Execution d’une instruction add
6 bits 5 bits 5 bits 5 bits 6 bits5 bits
code−op rs rt rd decval fonct
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
$17 $18 $8add
Donnéeà écrire
Registres UALrésultat
UAL
zéro
add $8, $17, $18
Donnée
Donnée
lue 1
lue 2écritureReg.
lecture 2 Reg.
Reg.lecture 1
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lesvaleurs a l’UAL.
3 Le banc des registresprocede a l’ecrituredu resultat.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 20 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs – exemple
Execution d’une instruction add
6 bits 5 bits 5 bits 5 bits 6 bits5 bits
code−op rs rt rd decval fonct
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
$17 $18 $8add
Donnée
à écrire
Registres UALrésultat
UAL
zéro
add $8, $17, $18
10010
01000
Donnée
Donnée
lue 1
lue 2
10001
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lesvaleurs a l’UAL.
3 Le banc des registresprocede a l’ecrituredu resultat.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 20 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs – exemple
Execution d’une instruction add
6 bits 5 bits 5 bits 5 bits 6 bits5 bits
code−op rs rt rd decval fonct
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
$17 $18 $8add
Donnéeà écrire
Registres UALrésultat
UAL
zéro
add $8, $17, $18
10010
01000
Donnée
10001
Reg. 17
DonnéeReg. 18
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lesvaleurs a l’UAL.
3 Le banc des registresprocede a l’ecrituredu resultat.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 20 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer des calculs – exemple
Execution d’une instruction add
6 bits 5 bits 5 bits 5 bits 6 bits5 bits
code−op rs rt rd decval fonct
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
$17 $18 $8add
EcritureReg. 8
Registres UALrésultat
UAL
zéro
add $8, $17, $18
10010
01000
Reg. 17
Reg. 18Donnée
Donnée
10001
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lesvaleurs a l’UAL.
3 Le banc des registresprocede a l’ecrituredu resultat.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 20 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Comment realiser une instruction de rangement/chargement ?
=⇒ Acceder a la memoire & effectuer un calcul par l’UAL.
Adr.
lecture
Adr.écriture
Donnéeà écrire
16 32Etendre
signe
Donnéeà écrire
Reg.écriture
Reg.lecture 2 Donnée
lue 1
Donnéelue 2
Instruction
Mémoire
de données
Donnée
lue
zéro
UALrésultat
UAL
Registres
lecture 1
Reg.
Rangement (sw)/Chargement (lw) en memoire de donnees
1 Determiner les registres operandes (source/destination et base).
2 Ajuster sur 32 bits l’immediat encode dans l’instruction.
3 Realiser une addition.
4 S’adresser a la memoire de donnees.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 21 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Comment realiser une instruction de rangement/chargement ?
=⇒ Acceder a la memoire & effectuer un calcul par l’UAL.
Donnéelue 1
Donnéelue 2
Donnéeà écrire
Reg.lecture 2
Reg.écriture
Adr.
lecture
Adr.écriture
Donnéeà écrire
16 32Etendre
signe
Reg.
lecture 1
RegistresInstruction
Mémoire
de données
Donnée
lue
zéro
UALrésultat
UAL
Rangement (sw)/Chargement (lw) en memoire de donnees
1 Determiner les registres operandes (source/destination et base).
2 Ajuster sur 32 bits l’immediat encode dans l’instruction.
3 Realiser une addition.
4 S’adresser a la memoire de donnees.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 21 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Comment realiser une instruction de rangement/chargement ?
=⇒ Acceder a la memoire & effectuer un calcul par l’UAL.
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
Reg.écriture
Adr.
lecture
Adr.écriture
Donnéeà écrire
Reg.
lecture 1
RegistresInstruction
Mémoire
de données
Donnée
lue
zéro
UALrésultat
UAL
Rangement (sw)/Chargement (lw) en memoire de donnees
1 Determiner les registres operandes (source/destination et base).
2 Ajuster sur 32 bits l’immediat encode dans l’instruction.
3 Realiser une addition.
4 S’adresser a la memoire de donnees.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 21 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Comment realiser une instruction de rangement/chargement ?
=⇒ Acceder a la memoire & effectuer un calcul par l’UAL.
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
Reg.écriture
Adr.
lecture
Adr.écriture
Donnéeà écrire
Reg.
lecture 1
Registres UALrésultat
UAL
zéroInstruction
Mémoire
de données
Donnée
lue
Rangement (sw)/Chargement (lw) en memoire de donnees
1 Determiner les registres operandes (source/destination et base).
2 Ajuster sur 32 bits l’immediat encode dans l’instruction.
3 Realiser une addition.
4 S’adresser a la memoire de donnees.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 21 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Comment realiser une instruction de rangement/chargement ?
=⇒ Acceder a la memoire & effectuer un calcul par l’UAL.
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
Reg.écriture
Donnéeà écrire
Adr.
lecture
Adr.écriture
Reg.
lecture 1
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zéroInstruction
Rangement (sw)/Chargement (lw) en memoire de donnees
1 Determiner les registres operandes (source/destination et base).
2 Ajuster sur 32 bits l’immediat encode dans l’instruction.
3 Realiser une addition.
4 S’adresser a la memoire de donnees.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 21 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Comment realiser une instruction de rangement/chargement ?
=⇒ Acceder a la memoire & effectuer un calcul par l’UAL.
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
Reg.écriture
Donnéeà écrire
Adr.
lecture
Adr.écriture
Reg.
lecture 1
RegistresInstruction
de données
Mémoire
Donnée
lueUALrésultat
UAL
zéro
Rangement (sw)/Chargement (lw) en memoire de donnees
1 Determiner les registres operandes (source/destination et base).
2 Ajuster sur 32 bits l’immediat encode dans l’instruction.
3 Realiser une addition.
4 S’adresser a la memoire de donnees.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 21 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction sw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zérosw $18, 8($17)
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18sw $17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0 1
Donnée
Donnée
lue 1
Reg.lecture 1
Reg.lecture 2
lue 2
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 La donnee du registre est ecrite a l’adresse memoire calculee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 22 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction sw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zéro
10010
10001
sw $18, 8($17)
0000000000001000
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18sw $17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0 1
Donnée
Donnée
lue 1
lue 2
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 La donnee du registre est ecrite a l’adresse memoire calculee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 22 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction sw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zéro
10010
10001
sw $18, 8($17)
0000000000001000
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18sw $17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0 1
Donnée
Donnée
Reg. 17
Reg. 18
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 La donnee du registre est ecrite a l’adresse memoire calculee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 22 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction sw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zéro
10010
10001
sw $18, 8($17)
0000000000001000
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18sw $17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0 1
Donnée
Donnée
Reg. 17
Reg. 18
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 La donnee du registre est ecrite a l’adresse memoire calculee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 22 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction lw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zérolw $18, 8($17)
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0
Donnée
Donnée
lue 1
lue 2
Reg.lecture 1
Reg.lecture 2
lw
0
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 L’UAL calcule l’adresse memoire voulue.
4 La memoire retourne la donnee demandee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 23 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction lw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zérolw $18, 8($17)
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0
Donnée
Donnée
lue 1
lue 2
lw
0
10001
10010
0000000000001000
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 L’UAL calcule l’adresse memoire voulue.
4 La memoire retourne la donnee demandee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 23 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction lw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zérolw $18, 8($17)
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0
Donnée
lw
0
10001
10010
Reg. 17
0000000000001000
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 L’UAL calcule l’adresse memoire voulue.
4 La memoire retourne la donnee demandee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 23 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction lw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Donnéeà écrire
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zérolw $18, 8($17)
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0
Donnée
lw
0
10001
10010
Reg. 17
0000000000001000
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 L’UAL calcule l’adresse memoire voulue.
4 La memoire retourne la donnee demandee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 23 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – acceder aux donnees
Execution d’une instruction lw
Etendre
signe
3216
Donnéeà écrire
Adr.
lecture
Adr.écriture
6 bits 5 bits
Reg.écriture
Registres
de données
Mémoire
Donnée
lueUALrésultat
UAL
zérolw $18, 8($17)
code−op rs rt
1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
0 0 0
8
0 0 1 0
Donnée
lw
0
10001
10010
Reg. 17
Reg. 18Ecriture
0000000000001000
1 Les fils acheminent l’information de l’instruction au banc des registres.
2 Le banc presente la valeur a l’UAL et l’immediat est etendu sur 32 bits.
3 L’UAL calcule l’adresse memoire voulue.
4 La memoire retourne la donnee demandee.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 23 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Comment realiser une instruction de branchement memoire telle que beq ?
=⇒ Comparer les registres designes & ajuster PC en fonction de l’immediat encode.
Realiser un branchement
1 Determiner les registresoperandes.
2 Ajuster l’immediat del’instruction sur 32 bitspuis sur une adresse de motmemoire (decalagegauche).
3 L’ALU effectuer lacomparaison des registresoperandes (soustraction).
4 Considerer la sortie del’ALU comme signal decontrole pour ajuster PC.
branchementDestination du
gaucheDéc.
2
32Etendre
signe
16
Donnée
lue 1
Donnée
à écrire
Reg.
écritureDonnée
lue 2
Reg.
lecture 1
Reg.
Registres
lecture 2
branchementde controle duVers logiqueInstruction
UAL
zéro
Add
somme
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 24 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Comment realiser une instruction de branchement memoire telle que beq ?
=⇒ Comparer les registres designes & ajuster PC en fonction de l’immediat encode.
Realiser un branchement
1 Determiner les registresoperandes.
2 Ajuster l’immediat del’instruction sur 32 bitspuis sur une adresse de motmemoire (decalagegauche).
3 L’ALU effectuer lacomparaison des registresoperandes (soustraction).
4 Considerer la sortie del’ALU comme signal decontrole pour ajuster PC.
Donnéelue 1
Donnéeà écrire
Reg.écriture
Donnéelue 2
branchementDestination du
gaucheDéc.
2
32Etendre
signe
16
Reg.
lecture 1
Reg.
Registres
lecture 2
branchementde controle duVers logiqueInstruction
UAL
zéro
Add
somme
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 24 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Comment realiser une instruction de branchement memoire telle que beq ?
=⇒ Comparer les registres designes & ajuster PC en fonction de l’immediat encode.
Realiser un branchement
1 Determiner les registresoperandes.
2 Ajuster l’immediat del’instruction sur 32 bitspuis sur une adresse de motmemoire (decalagegauche).
3 L’ALU effectuer lacomparaison des registresoperandes (soustraction).
4 Considerer la sortie del’ALU comme signal decontrole pour ajuster PC.
Donnéelue 1
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
Donnéelue 2
branchementDestination du
gauche
Déc.
2Reg.
lecture 1
somme
Add
Reg.
Registres
lecture 2
branchementde controle duVers logiqueInstruction
UAL
zéro
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 24 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Comment realiser une instruction de branchement memoire telle que beq ?
=⇒ Comparer les registres designes & ajuster PC en fonction de l’immediat encode.
Realiser un branchement
1 Determiner les registresoperandes.
2 Ajuster l’immediat del’instruction sur 32 bitspuis sur une adresse de motmemoire (decalagegauche).
3 L’ALU effectuer lacomparaison des registresoperandes (soustraction).
4 Considerer la sortie del’ALU comme signal decontrole pour ajuster PC.
Donnéelue 1
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
Donnéelue 2
branchementDestination du
gauche
Déc.
2Reg.
lecture 1
UAL
zéro
somme
Add
Reg.
Registres
lecture 2
branchementde controle duVers logiqueInstruction
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 24 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Comment realiser une instruction de branchement memoire telle que beq ?
=⇒ Comparer les registres designes & ajuster PC en fonction de l’immediat encode.
Realiser un branchement
1 Determiner les registresoperandes.
2 Ajuster l’immediat del’instruction sur 32 bitspuis sur une adresse de motmemoire (decalagegauche).
3 L’ALU effectuer lacomparaison des registresoperandes (soustraction).
4 Considerer la sortie del’ALU comme signal decontrole pour ajuster PC.
Donnéelue 1
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
Donnéelue 2
branchement
Destination du
Reg.
lecture 1
gauche
Déc.
2
de controle du
Vers logique
branchementUAL
zéro
somme
Add
Reg.
RegistresInstruction
lecture 2
PC + 4 venant du chemin de données des instructions
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 24 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction beq
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
branchement
Destination du
6 bits 5 bits
code−op rs rt
0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
1 1 0 0 1 0
beq
0 0 1 0
FOR
gauche
Déc.
2
de controle du
Vers logique
branchementUAL
zéro
somme
Add
Registres
PC + 4 venant du chemin de données des instructions
Donnée
Donnée
beq $18, $17, FORlue 1
lue 2
Reg.lecture 1
lecture 2Reg.
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lavaleurs a l’UAL etl’immediat estetendu sur 32 bits,puis decale a gauchede deux bits.
3 L’UAL effectue lacomparaison, tandisque l’additionneurcalcule l’adressememoire del’etiquette FOR.
4 Le branchement estpris selon le resultatde la comparaison.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 25 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction beq
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
branchement
Destination du
6 bits 5 bits
code−op rs rt
0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
1 1 0 0 1 0
beq
0 0 1 0
FOR
gauche
Déc.
2
de controle du
Vers logique
branchementUAL
zéro
somme
Add
Registres
PC + 4 venant du chemin de données des instructions
10010
10001
1100000000101000
Donnée
Donnée
beq $18, $17, FORlue 1
lue 2
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lavaleurs a l’UAL etl’immediat estetendu sur 32 bits,puis decale a gauchede deux bits.
3 L’UAL effectue lacomparaison, tandisque l’additionneurcalcule l’adressememoire del’etiquette FOR.
4 Le branchement estpris selon le resultatde la comparaison.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 25 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction beq
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
branchement
Destination du
6 bits 5 bits
code−op rs rt
0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
1 1 0 0 1 0
beq
0 0 1 0
FOR
gauche
Déc.
2
de controle du
Vers logique
branchementUAL
zéro
somme
Add
Registres
PC + 4 venant du chemin de données des instructions
10010
10001
1100000000101000
beq $18, $17, FOR
DonnéeReg. 17
Reg. 18Donnée
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lavaleurs a l’UAL etl’immediat estetendu sur 32 bits,puis decale a gauchede deux bits.
3 L’UAL effectue lacomparaison, tandisque l’additionneurcalcule l’adressememoire del’etiquette FOR.
4 Le branchement estpris selon le resultatde la comparaison.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 25 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction beq
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
branchement
Destination du
6 bits 5 bits
code−op rs rt
0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
1 1 0 0 1 0
beq
0 0 1 0
FOR
gauche
Déc.
2
de controle du
Vers logique
branchementUAL
zéro
somme
Add
Registres
PC + 4 venant du chemin de données des instructions
10010
10001
1100000000101000
beq $18, $17, FOR
DonnéeReg. 17
Reg. 18Donnée
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lavaleurs a l’UAL etl’immediat estetendu sur 32 bits,puis decale a gauchede deux bits.
3 L’UAL effectue lacomparaison, tandisque l’additionneurcalcule l’adressememoire del’etiquette FOR.
4 Le branchement estpris selon le resultatde la comparaison.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 25 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction beq
Etendre
signe
32
Donnéeà écrire
16
Reg.écriture
branchement
Destination du
6 bits 5 bits
code−op rs rt
0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0
$18$17
5 bits
immediat
16 bits
1 1 0 0 1 0
beq
0 0 1 0
FOR
gauche
Déc.
2
de controle du
Vers logique
branchementUAL
zéro
somme
Add
Registres
PC + 4 venant du chemin de données des instructions
10010
10001
1100000000101000
beq $18, $17, FOR
DonnéeReg. 17
Reg. 18Donnée
1 Les fils acheminentl’information del’instruction au bancdes registres.
2 Le banc presente lavaleurs a l’UAL etl’immediat estetendu sur 32 bits,puis decale a gauchede deux bits.
3 L’UAL effectue lacomparaison, tandisque l’additionneurcalcule l’adressememoire del’etiquette FOR.
4 Le branchement estpris selon le resultatde la comparaison.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 25 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer un saut
Comment realiser une instruction de saut comme j Etq ?
=⇒ S’inspirer du chemin des donnees de l’extraction d’instruction.
gaucheDéc.
2
PC
PC PC + 4[31−28].4xEtq
Instruction [25−0]26 28
Mémoire
d’instructions
[31−0]
Instruction
lire
Adr. à
4
AddPC + 4 [31−28]
RAPPELS :
Immédiat Etq 26 bits
262531
code op
j Etq
0
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 26 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer un saut
Comment realiser une instruction de saut comme j Etq ?
=⇒ S’inspirer du chemin des donnees de l’extraction d’instruction.
PC
PC PC + 4[31−28].4xEtq
gaucheDéc.
2
Adr. àlire
d’instructions
Mémoire[31−0]
Instruction
RAPPELS :
j Etq
4
AddPC + 4 [31−28]
026 2531
code op Immédiat Etq 26 bits
Instruction [25−0]26 28
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 26 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer un saut
Comment realiser une instruction de saut comme j Etq ?
=⇒ S’inspirer du chemin des donnees de l’extraction d’instruction.
PC
PC PC + 4[31−28].4xEtq
gauche
Déc.
2
Adr. àlire
d’instructions
Mémoire[31−0]
Instruction
RAPPELS :
j Etq
4
Add
26 28
PC + 4 [31−28]
Instruction [25−0]
026 2531
code op Immédiat Etq 26 bits
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 26 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – effectuer un saut
Comment realiser une instruction de saut comme j Etq ?
=⇒ S’inspirer du chemin des donnees de l’extraction d’instruction.
PC
PC PC + 4[31−28].4xEtq
gauche
Déc.
2
Adr. àlire
d’instructions
Mémoire[31−0]
Instruction
RAPPELS :
j Etq
4
Add
26 28
PC + 4 [31−28]
Instruction [25−0]
026 2531
code op Immédiat Etq 26 bits
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 26 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction j Etq
PC
PC PC + 4[31−28].4xEtq
gauche
Déc.
2
Adr. à
lire
d’instructions
Mémoire
[31−0]
Instruction
RAPPELS :
j Etq
4
Add
26 28
PC + 4 [31−28]
Instruction [25−0]
026 2531
00111101011000001010100011000010
1 Le compteur programme est lu, puis sa valeur est incrementee.
2 La valeur immediate est extraite de l’instruction j puis decalee de deux a gauche.
3 Les 4 bits de poids fort de PC et les 28 bits obtenus precedemment sontconcatenes pour mettre a jour PC.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 27 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction j Etq
PC
PC PC + 4[31−28].4xEtq
gauche
Déc.
2
Adr. à
lire
d’instructions
Mémoire
[31−0]
Instruction
RAPPELS :
j Etq
4
Add
26 28
PC + 4 [31−28]
Instruction [25−0]
026 2531
00111101011000001010100011000010
1 Le compteur programme est lu, puis sa valeur est incrementee.
2 La valeur immediate est extraite de l’instruction j puis decalee de deux a gauche.
3 Les 4 bits de poids fort de PC et les 28 bits obtenus precedemment sontconcatenes pour mettre a jour PC.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 27 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction j Etq
PC
PC PC + 4[31−28].4xEtq
gauche
Déc.
2
Adr. à
lire
d’instructions
Mémoire
[31−0]
Instruction
RAPPELS :
j Etq
4
Add
26 28
PC + 4 [31−28]
Instruction [25−0]
026 2531
00111101011000001010100011000010
00111101011000001010100011
1 Le compteur programme est lu, puis sa valeur est incrementee.
2 La valeur immediate est extraite de l’instruction j puis decalee de deux a gauche.
3 Les 4 bits de poids fort de PC et les 28 bits obtenus precedemment sontconcatenes pour mettre a jour PC.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 27 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : brique elementaire – orienter le flot d’instructions
Execution d’une instruction j Etq
PC
PC PC + 4[31−28].4xEtq
gauche
Déc.
2
Adr. à
lire
d’instructions
Mémoire
[31−0]
Instruction
RAPPELS :
j Etq
4
Add
26 28
PC + 4 [31−28]
Instruction [25−0]
026 2531
00111101011000001010100011000010
00111101011000001010100011
1 Le compteur programme est lu, puis sa valeur est incrementee.
2 La valeur immediate est extraite de l’instruction j puis decalee de deux a gauche.
3 Les 4 bits de poids fort de PC et les 28 bits obtenus precedemment sontconcatenes pour mettre a jour PC.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 27 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Construction du chemin des donnees mono-cycle
Quelles unites fonctionnelles doit-on dupliquer dans le cas mono-cycle ?
=⇒ Cela depend du chemin de donnees realise.
Mono-cycle – exclusion
Toutes les instructions utilisent un cycle d’horloge :
I la taille de cycle est calee sur l’instruction necessitant le plus de temps seloncette realisation.
I aucune ressource du chemin des donnees ne peut etre utilisee plus d’unefois par cycle.
=⇒ dupliquer toute unite fonctionnelle utilisee plus d’une fois par instruction.
Mono-cycle – partage
Selon le cablage, certaines unites fonctionnelles peuvent tout-a-fait etrepartagees :
=⇒ ajouter des multiplexeurs pour selectionner le flux d’informations.
=⇒ ajouter un controle sur ces multiplexeurs.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 28 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Construction du chemin des donnees mono-cycle – Fusion (1/4)
Partage possible
Les briques elementaires pour les instructions de rangement/chargement et pour lesinstructions de type R peuvent partager :
I le banc des registres,
I l’ALU,
modulo l’introduction de deux multiplexeurs.
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
Reg.écriture
Donnéeà écrire
Adr.
lecture
Adr.écriture
Reg.
lecture 1
Registres
de données
Mémoire
M
X
U
Donnée
lueUAL
zéro
résultatUAL
Instruction
M
X
U
Format RChargement/rangement
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 29 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Construction du chemin des donnees mono-cycle – Fusion (2/4)
Ajout de la brique elementaire pour l’extraction d’instruction.
Donnée
lue 1
Donnée
lue 2
Etendre
signe
32
Donnée
à écrire
Reg.
lecture 2
16
Reg.
écriture
Donnée
à écrire
Adr.
lecture
Adr.
écriture
PC
Reg.
lecture 1
Registres
de données
Mémoire
M
X
U
Donnée
lueUAL
zéro
résultatUAL
Adr. à
lire
d’instructions
Mémoire
4
Add
Instruction
M
X
U
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 30 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Construction du chemin des donnees mono-cycle – Fusion (3/4)
Ajout de la brique elementaire pour l’orientation du flot d’instructions.
Donnée
lue 1
Donnée
lue 2
Etendre
signe
32
Donnée
à écrire
Reg.
lecture 2
16
Reg.
écriture
Donnée
à écrire
Adr.
lecture
Adr.
écriture
gauche
Déc.
2
PC
Reg.
lecture 1
Registres
de données
Mémoire
M
X
U
Donnée
lueUAL
zéro
résultatUAL
Add
résultatAdd
Adr. à
lire
d’instructions
Mémoire
4
Add
M
X
U
M
X
U
Instruction
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 31 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Construction du chemin des donnees mono-cycle – Fusion (4/4)
Ajout de la brique elementaire pour le saut d’instructions.
Donnée
lue 1
Donnée
lue 2
Etendre
signe
32
Donnée
à écrire
Reg.
lecture 2
16
Reg.
écriture
Donnée
à écrire
Adr.
lecture
Adr.
écriture
gauche
Déc.
2
PCAdr. à
lire
d’instructions
Mémoire
[31−0]
Instruction
4
Add
gauche
Déc.
2
Reg.
lecture 1
Registres
de données
Mémoire
M
X
U
Donnée
lueUAL
zéro
résultatUAL
M
X
U
Add
résultatAdd
M
X
U
M
X
U
Instruction [25−0]2826
PC + 4 [31−28]
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 32 / 36
Micro-architecture ? Construction ? Controle ?
1 Couche micro-architecture
2 Construction d’un chemin des donnees
3 Controle du chemin des donnees
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 33 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Chemin des donnees complet – pose des signaux de controle
1 Ajout d’un multiplexeur pour distinguer le registre destination entre format R et I.
2 Ajout des signaux de controle.
3 Ajout du controle de l’UAL.
Donnée
lue 1
Donnée
lue 2
Etendre
signe
32
Donnée
à écrire
Reg.
lecture 2
16
Reg.
écriture
Donnée
à écrire
Adr.
lecture
Adr.
écriture
gauche
Déc.
2
PCAdr. à
lire
d’instructions
Mémoire
[31−0]
Instruction
4
Add
gauche
Déc.
2
Reg.
lecture 1
Registres
de données
Mémoire
M
X
U
Donnée
lueUAL
zéro
résultatUAL
M
X
U
Add
résultatAdd
M
X
U
M
X
U
Instruction [25−0]2826
PC + 4 [31−28]
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 34 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Chemin des donnees complet – pose des signaux de controle
1 Ajout d’un multiplexeur pour distinguer le registre destination entre format R et I.
2 Ajout des signaux de controle.
3 Ajout du controle de l’UAL.
M
0
1
X
U
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
M
X
U
0
1
Reg.écriture
Donnéeà écrire
PC
Adr.
lecture
Adr.écriture
gauche
Déc.
2
M
0
1
X
U
gauche
Déc.
2
Reg.
lecture 1
Registres
de données
Mémoire
M
X
U
1
0
Adr. àlire
Donnée
lue
d’instructions
MémoireUALrésultat
UAL
Instruction [15−0]
Instruction [20−16]
Instruction [15−11]
Instruction [25−21]
[31−0]
Instruction
M
X
U
0
1
Add
résultatAdd
4
Add
Instruction [25−0]
PC + 4 [31−28]
26 28
EcrireReg
RegDst
UALSrc
EcrireMem
Controle
UAL
UALOp
LireMem
MemVersReg
Saut
Instruction [5−0]
zéro
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 34 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Chemin des donnees complet – pose des signaux de controle
1 Ajout d’un multiplexeur pour distinguer le registre destination entre format R et I.
2 Ajout des signaux de controle.
3 Ajout du controle de l’UAL.
M
0
1
X
U
Donnéelue 1
Donnéelue 2
Etendre
signe
32
Donnéeà écrire
Reg.lecture 2
16
M
X
U
0
1
Reg.écriture
Donnéeà écrire
PC
Adr.
lecture
Adr.écriture
gauche
Déc.
2
M
0
1
X
U
gauche
Déc.
2
Controle
UAL
Reg.
lecture 1
Instruction [5−0]
Registres
de données
Mémoire
M
X
U
1
0
Adr. àlire
Donnée
lue
d’instructions
MémoireUAL
zéro
résultatUAL
Instruction [15−0]
Instruction [20−16]
Instruction [15−11]
Instruction [25−21]
[31−0]
Instruction
EcrireReg
UALSrc
RegDst
UALOp
EcrireMem
LireMem
MemVersReg
Saut
M
X
U
0
1
Add
résultatAdd
4
Add
Instruction [25−0]
PC + 4 [31−28]
26 28
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 34 / 36
Micro-architecture ? Construction ? Controle ?
MIPS : Chemin des donnees complet avec unite de controle
Pose de l’unite de controle.
M
0
1
X
U
Donnée
lue 1
Donnée
lue 2
Etendre
signe
32
Donnée
à écrire
Reg.
lecture 2
16
M
X
U
0
1
Reg.
écriture
Donnée
à écrire
gauche
Déc.
2
PC
Adr.
lecture
Adr.
écriture
M
0
1
X
U
gauche
Déc.
2
Controle
UAL
Reg.
lecture 1
Instruction [5−0]
Registres
Controle
MemVersReg
de données
Mémoire
M
X
U
1
0
M
X
U
0
1
RegDst
UALOp
EcrireMem
UALSrc
EcrireReg
Adr. à
lire
Donnée
lue
d’instructions
MémoireUAL
zéro
résultatUAL
Add
résultatAdd
4
Add
Instruction [15−0]
Instruction [20−16]
Instruction [15−11]
Instruction [25−21]
Instruction [31−26]
[31−0]
Instruction
LireMem
Branchement
Saut
Instruction [25−0] 2826
PC + 4 [31−28]
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 35 / 36
Micro-architecture ? Construction ? Controle ?
Rendre a Cesar ce qui est a Cesar
References bibliographiques utilisees
I � Organisation et conception des ordinateurs �, J. Hennessy & D. Patter-son, Dunod.
=⇒ Schemas du chemin des donnees.
I en.wikipedia.org et diverses ressources...
Images utilisees
I Image de droite du transparent 5 :
Sujet : Magasin de l’usine d’avions Douglas (1942)Auteur : Alfred T. Palmer.Licence : Domaine public.
I Image de gauche du transparent 5 :
Sujet : Aiguillage de la gare centrale de Francfort.Auteur : Arne Huckelheim.Licence : Creative Commons Attribution-Share Alike 3.0 Unported.
Olivier Marchetti CM6 – Micro-architecture Annee 2017-2018 36 / 36