33
Micro-instructions Ordinateurs: Structure et Applications, Hiver 2017 Jean-François Lalonde

New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Micro-instructions

Ordinateurs: Structure et Applications, Hiver 2017 Jean-François Lalonde

Page 2: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Instructions vs micro-instructions

• Une instruction est une « action » pouvant être exécutée par le microprocesseur.

• Une instruction n’est pas atomique: elle est divisée en une séquence de « micro-instructions »

• Ces micro-instructions dépendent de la structure interne, et du cycle d’instructions du microprocesseur

Page 3: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Cycle d’instructions

1. LIRE (FETCH)

Aller chercher la prochaine instruction

3. EXÉCUTE

Exécuter l’instruction

Que fait le microprocesseur?

1. Lire: aller chercher la prochaine instruction

2. Décode: décode l’instruction (détermine ce qu’il y a à faire)

3. Exécute: exécuter l’instruction

2. DÉCODE

Décoder l’instruction

Page 4: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

Bus de données

Bus d’adresses

Bus de contrôle (L/E)

Structure interne

Page 5: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDRBus de données

Bus d’adresses

Registres généraux

IR

PC

Structure interne

Bus de contrôle (L/E)

Page 6: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

“Fetch” en détails…• Que se passe-t-il vraiment quand le micro-

processeur veut lire la prochaine instruction?

• Où est l’instruction?

• En mémoire, à l’adresse contenue dans registre PC (“Program Counter”)

• But du « fetch »

• Placer l’instruction dans le registre IR (« Instruction Register ») pour le décodage

Page 7: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

Bus de données

Bus d’adresses

Bus interne

Bus de contrôle (L/E)

« Lire »

Action Signification µ-instructions

Lecture IR ⃪ instruction ?

MAR

MDRIR

PC

Page 8: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Bus de données

Bus d’adresses

Bus interne

Bus de contrôle (L/E)

Extérieur du microprocesseur

Intérieur du microprocesseur

« Lire »

• MAR ⃪ PC

• On place le contenu du PC dans le MAR • PC contient l’adresse de la prochaine exécution à exécuter.

• On active le bus de contrôle en lecture

• Après cette opération, l’instruction comme telle est disponible… dans le MDR

MAR

MDRIR

PC

Page 9: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

Bus de données

Bus d’adresses

Bus interne

Bus de contrôle (L/E)

« Lire »

• IR ⃪ MDR

• On place le contenu du MDR dans l’IR • Voilà! l’instruction est dans l’IR, prête à être décodée

MAR

MDRIR

PC

Page 10: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

« Lire » en détails… • MAR ⃪ PC

• On place le contenu du PC dans le MAR • PC contient l’adresse de la prochaine exécution à exécuter.

• On active le bus de contrôle en lecture

• Après cette opération, l’exécution comme telle est disponible… dans le MDR

• IR ⃪ MDR

• On place le contenu du MDR dans l’IR • Voilà! l’instruction est dans l’IR, prête à être décodée et

ensuite exécutée

Action Signification µ-instructions

Lecture IR ⃪ instruction MAR ⃪ PC IR ⃪ MDR

Page 11: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

« Exécuter » en détails

• Admettons un moment que l’instruction dans IR ait été décodée. Comment faire pour exécuter l’instruction?

• Il nous faut connecter un circuit de calcul sur le bus interne

Page 12: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDRBus de données

Bus d’adresses

Bus interneIR

PC

Bus de contrôle (L/E)

Page 13: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interneIR

PC

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Registres généraux

Page 14: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

« Décoder » en détails

• Comment faire pour savoir quelles opérations effectuer pour exécuter une instruction?

• Il nous faut un circuit de décodage sur le bus interne

Page 15: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux

IR

PC

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Page 16: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux

IR

Circuit de décodage

PC

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Page 17: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux

IR

Circuit de décodage

PC

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Page 18: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

MOV R0 #0x71

Instruction Signification µ-instructions

MOV R0 #0x71 R0 ⃪ 0x71 ?

Page 19: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

MOV R0 #0x71• Tout d’abord: quelle est la représentation binaire (sur

16 bits, comme dans le TP1) de cette instruction?

Instruction Signification Binaire (16 bits)

MOV R0 #0x71 R0 ⃪ 0x71 0x4071

8 Jeu d’instruction du micro-processeur

Toutes les instructions du microprocesseur sont sur 16 bits et se décomposent comme suit :Bits 15 à 12 : Opcode de l’instructionBits 11 à 8 : Registre utilisé comme premier paramètre.Bits 7 à 0 : Registre ou constante utilisés comme deuxième paramètreLe microprocesseur possède quatre registres généraux nommés R0, R1, R2 et R3. En plus de ces

quatre registres, un registre de pointeur d’instruction PC est disponible. Cependant, ce registre nepeut être utilisé qu’avec l’instruction MOV. Le nombre identifiant le registre PC est 0xF (15).

Le jeu d’instruction supporte les instructions suivantes où Rd est le registre destination, Rs leregistre source et Rc le registre de condition :

Mnémonique Opcode DescriptionMOV Rd Rs 0000 Écriture de la valeur du registre Rs dans le registre RdMOV Rd Const 0100 Écriture d’une constante dans le registre RdADD Rd Rs 0001 Addition des valeurs des registres Rd et Rs et insertion du résultat

dans le registre RdADD Rd Const 0101 Addition de la valeur du registre Rd avec une constante et inser-

tion du résultat dans RdSUB Rd Rs 0010 Soustraction de la valeur Rs à l’intérieur de registre Rd.SUB Rd Const 0110 Soustraction d’une constante à l’intérieur du registre RdLDR Rd [Rs] 1000 Chargement d’une valeur se trouvant à l’adresse Rs de l’ordinateur

dans un registre.STR Rd [Rs] 1001 Écriture de la valeur d’un registre à l’adresse Rs de l’ordinateur.JZE Rc Const 1111 Saut à l’instruction située à l’adresse identifiée par la constante,

mais seulement si Rc = 0 (sinon, cette instruction n’a aucun effet).JZE Rc [Rs] 1011 Saut à l’instruction située à l’adresse Rs seulement si Rc = 0

(sinon, cette instruction n’a aucun effet).

Table 1 – Jeu d’instructions du microprocesseur

6

8 Jeu d’instruction du micro-processeur

Toutes les instructions du microprocesseur sont sur 16 bits et se décomposent comme suit :Bits 15 à 12 : Opcode de l’instructionBits 11 à 8 : Registre utilisé comme premier paramètre.Bits 7 à 0 : Registre ou constante utilisés comme deuxième paramètreLe microprocesseur possède quatre registres généraux nommés R0, R1, R2 et R3. En plus de ces

quatre registres, un registre de pointeur d’instruction PC est disponible. Cependant, ce registre nepeut être utilisé qu’avec l’instruction MOV. Le nombre identifiant le registre PC est 0xF (15).

Le jeu d’instruction supporte les instructions suivantes où Rd est le registre destination, Rs leregistre source et Rc le registre de condition :

Mnémonique Opcode DescriptionMOV Rd Rs 0000 Écriture de la valeur du registre Rs dans le registre RdMOV Rd Const 0100 Écriture d’une constante dans le registre RdADD Rd Rs 0001 Addition des valeurs des registres Rd et Rs et insertion du résultat

dans le registre RdADD Rd Const 0101 Addition de la valeur du registre Rd avec une constante et inser-

tion du résultat dans RdSUB Rd Rs 0010 Soustraction de la valeur Rs à l’intérieur de registre Rd.SUB Rd Const 0110 Soustraction d’une constante à l’intérieur du registre RdLDR Rd [Rs] 1000 Chargement d’une valeur se trouvant à l’adresse Rs de l’ordinateur

dans un registre.STR Rd [Rs] 1001 Écriture de la valeur d’un registre à l’adresse Rs de l’ordinateur.JZE Rc Const 1111 Saut à l’instruction située à l’adresse identifiée par la constante,

mais seulement si Rc = 0 (sinon, cette instruction n’a aucun effet).JZE Rc [Rs] 1011 Saut à l’instruction située à l’adresse Rs seulement si Rc = 0

(sinon, cette instruction n’a aucun effet).

Table 1 – Jeu d’instructions du microprocesseur

6

Page 20: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux(R0)

Circuit de décodage

PC

+1

Bus de contrôle (L/E)

Circuit de calcul (ALU)

IR[7..0]

Page 21: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

MOV R0 #0x71• R0 ⃪ IR[7…0]

• On place les 8 bits les moins significatifs dans R0 via le bus interne

Instruction Signification µ-instructions

MOV R0 #0x71 R0 ⃪ 0x71 R0 ⃪ IR[7..0]

Page 22: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

ADD R1 R3

Instruction Signification µ-instructions

ADD R1 R3 R1 ⃪ R1 + R3 ?

Page 23: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux (R1, R3)

IR

Circuit de décodage

PC

Bus de contrôle (L/E)

Circuit de calcul (ALU)(+)

Page 24: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux

IR

Circuit de décodage

PC

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Page 25: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

ADD R1 R3• ACC ⃪ R1 + R3

• On fait l’addition de R1 et R3, le résultat est placé dans l’accumulateur

• R1 ⃪ ACC

• On transfert le contenu de l’accumulateur dans le registre R1

Instruction Signification µ-instructions

ADD R1 R3 R1 ⃪ R1 + R3 ACC ⃪ R1 + R3 R1 ⃪ ACC

Page 26: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

LDR R1 [R0]

Instruction Signification µ-instructions

LDR R1 [R0] R1 ⃪ Memoire[R0] ?

Page 27: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux(R0)

IR

Circuit de décodage

PC

+1

Bus de contrôle (L/E)

Circuit de calcul (ALU)

MAR

Page 28: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

ACC

Bus de données

Bus d’adresses

Bus interneIR

Circuit de décodage

PC

+1

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Registres généraux(R1)

MDR

Page 29: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

LDR R1 [R0]• MAR ⃪ R0

• Le contenu de R0 est placé sur le bus d’adresse via le MAR

• Le bus de contrôle est activé en lecture

• R1 ⃪ MDR

• Le contenu du bus de données, accessible via le MDR, est placé dans R1.

Instruction Signification µ-instructions

LDR R1 [R0] R1 ⃪ Memoire[R0] MAR ⃪ R0 R1 ⃪ MDR

Page 30: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Après chaque lecture…

Action µ-instructionsIncrémenter PC PC ⃪ PC + 1

Page 31: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Extérieur du microprocesseur

Intérieur du microprocesseur

MAR

MDR

ACC

Bus de données

Bus d’adresses

Bus interne

Registres généraux

IR

Circuit de décodage

PC

+1

Bus de contrôle (L/E)

Circuit de calcul (ALU)

Page 32: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Résumé (lecture & exécution)Instruction Étapes µ-instructions

ADD R1 R3

lecture MAR ⃪ PC IR ⃪ MDR

incrémente PC PC ⃪ PC+1

exécution ACC ⃪ R1 + R3 R1 ⃪ ACC

MOV R0 #0x71

lecture MAR ⃪ PC IR ⃪ MDR

incrémente PC PC ⃪ PC+1

exécution R0 ⃪ IR[7..0]

Page 33: New Micro-instructions - Université Lavalvision.gel.ulaval.ca/~jflalonde/cours/1001/h17/cours/9... · 2017. 1. 31. · Micro-instructions MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪

Programmes, instructions, et micro-instructions

Programme

c = a+b;

Instructions

MOV R0 #0x71 LDR R1 [R0] MOV R0 #0x72 LDR R2 [R0] ADD R1 R2 … Micro-instructions

MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 MAR ⃪ R0 R1 ⃪ MDR

Micro-instructions

MAR ⃪ PC IR ⃪ MDR PC ⃪ PC+1 R0 ⃪ IR[7..0]