Architecture des Ordinateurs et Systèmes d’Exploitation Cours n°3 La couche mic
Architecture des Ordinateurs et Systèmes d’Exploitation Cours n°3 La couche micro-programmée De la micro-instruction au langage machine Ph. Leray 3ème année Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Reg A Reg B Reg C INST IP SP 0 1 ... ... BD BA UAL Donnée Adresse OF CF ZF SF PF MUX Tamp A Tamp B Flags Unité de Traitement Chemin de données : rappel Bus 1 C2C1C0 3 M 1 0 FI(IE) TB(IE) TA(IE) AI(IE) n RO(OE) Bus 2 RI(IE) n DII(IE) DIE(IE) DO(OE) Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Séquencement des actions : µ µ µ µ-instruction Exemple : Reg A ← ← ← ← Reg A + Reg B Signaux Actions : Transfert (Bus 1) Reg A → → → → Tamp A RO10 , TA Transfert (Bus 1) Reg B → → → → Tamp B RO11 , TB Choix UAL (C=100, M=0, Flags) C2C1C0 ,M, FI Transfert (Bus 2) UAL → → → → Reg A RI10 Une micro-instruction = ensemble des actions faisant fonctionner une fois le chemin de données µ µ µ µ- instruction = 5 sous-cycles: 1. Transfert n°1 par le Bus 1 2. Transfert n°2 par le Bus 1 3. Opération UAL 4. Transfert résultat par le Bus 2 (+ observation des FLAGS) 5. Accès à la mémoire (READ / WRITE) Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray 1. Faire l’addition de 2 registres et mettre le résultat dans l’un des deux ex : IP ← ← ← ← IP + Reg1 10: TampA←IP ; TampB←Reg1 ; UAL←TampA+TampB ; IP←UAL; (signaux: RO1 , TA ; RO4 , TB ; C=100 , M=0 , FI ; RI1 ) 2. Faire des sauts conditionnels : Conditions possibles = FLAGS en sortie de l ’UAL (Bus 2) ex : Si RegA=0 aller en 30 10: TampA←RegA ; TampB←Reg0 ; UAL←TampA+TampB; on ZF jmp 30 ; (signaux: RO10 , TA ; RO3 , TB ; C=100 , M=0 , FI ; ) (NB: Il faut faire une opération pour calculer ZF mais UAL ←TampA n ’en est pas une) µ µ µ µ-programmes simples 1/2 Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray 3. Envoyer le contenu d’une case mémoire d’adresse XX dans un registre (Hypothèse: l’adresse XX est dans un autre registre) ex : RegA ← ← ← ← [RegB] – il faut commencer par mettre RegB dans Adresse et déclencher une opération de lecture (Un accès à la mémoire (READ / WRITE) prend 2 cycles) 10: Adresse←RegB ; ; ; ; READ (signaux: AI , TB ; ; ; ; DIE) 11: ; ; ; ; READ – la valeur est ensuite disponible dans Donnée. Pour l ’envoyer dans un autre registre, il faut passer par l ’UAL 12: ; ; UAL←Donnée ; RegA←UAL ; (signaux: ; ; C=001, M=1 ; RI10) µ µ µ µ-programmes simples 2/2 Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray « Optimisation » = Occuper les bus le + possible : ex : RegA ← ← ← ← [RegB] IP ← ← ← ← IP + Reg1 → → → → Ici, on peut faire les 2 opérations en même temps 10: Adresse←RegB ; ; ; ; READ 11: TampA←IP ; TampB←Reg1 ; UAL←TampA+ TampB ; IP ←UAL ; READ 12: ; ; UAL←Donnée ; RegA←UAL ; 10: Adresse←RegB ; ; ; ; READ 11: ; ; ; ; READ 12: ; ; UAL←Donnée ; RegA←UAL; 13: TampA←IP ; TampB←Reg1; UAL←TampA+TampB; IP←UAL; Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray L’unité de commande exécute les opérations suivantes : – Lecture du code de l’opération – Lecture des arguments – Traitement – Sauvegarde du résultat – Passage à l’instruction suivante µ µ µ µ-programme de lecture du code de l ’opération (l ’opération à effectuer est en mémoire à l ’adresse IP) - lecture de l ’opération 0: Adresse←IP ; ; ; ; READ - on en profite pour passer à la case mémoire suivante 1: TampA←IP ; TampB←Reg1 ; UAL←TampA+TampB ; IP←UAL ; READ - exécution du µ-programme correspondant à l’opération 2: ; ; UAL←Donnée ; INST←UAL, jmp µ-Prog[INST]; Fonctionnement de l’unité de commande Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Exemple n°1 Add RegA, XX (RegA ← ← ← ← RegA + [XX]) 1. L ’UC lit le « codop » de Add RegA dans la mémoire et déclenche le µ µ µ µ-programme correspondant (0: 1: 2:) 2. Exécution de µ µ µ µ-programme[Add RegA,XX] – 2.1 : Lecture de l ’argument XX en mémoire » lecture de la valeur XX en mémoire (INST ← [IP]) » lecture de la valeur située à l’adresse XX (Donnée ← [INST]) – 2.2 : Traitement de l ’opération (RegA ← RegA + Donnée) – (2.3 : Sauvegarde du résultat) – 2.4 : Passage à l ’instruction suivante (IP ← IP + 1) 20: Adresse←IP ; ; ; ; READ 21: TampA←IP ; TampB←Reg1 ; UAL←TampA+TampB ; IP ←UAL ; READ 22: ; ; UAL←Donnée ; INST←UAL ; 23: Adresse←INST ; ; ; ; READ 24: ; ; ; ; READ 25: ; TampP ←RegA ; UAL←Donnée+TampB ; RegA ←UAL, jmp 0; Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Exemple n°2 JZ xx (va en IP+xx+1 si le résultat de l ’UAL est nul) 1. L ’UC lit le « codop » de JZ dans la mémoire et déclenche le µ µ µ µ- programme correspondant (0: 1: 2:) 2. Exécution de µ µ µ µ-programme[JZ XX] – 2.1 : Lecture de l ’argument XX en mémoire (Donnée ← [IP]) – 2.2 : Traitement de l ’opération (Test sur ZF, IP←IP+1+xx) – (2.3 : Sauvegarde du résultat) – 2.4 : Passage à l ’instruction suivante si la condition n ’est pas réalisée 30: Adresse←IP ; ; ; on ZF jmp 32 ; READ 31: TampA←IP ; TampB←Reg1 ; UAL←TampA+TampB ; IP←UAL, jmp 0 ; 32: TampA←IP ; TampB←Reg1 ; UAL←TampA+TampB ; IP←UAL ; READ 33: ; TampB←IP ; UAL←Donnée+TampB ; IP←UAL, jmp 0 ; Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Fonctionnement de l’unité de commande (2) • L ’UC possède un registre spécial pour stocker la µ µ µ µ-instruction en cours Mémoire Unité de Commande Unité de Traitement Entrées Sorties UAL Registres Registre µ-INST Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Fonctionnement de l’unité de commande (3) Unité de Commande CodUAL R1 R2 R3 D1 D2 Cond Ad Rd Wr Registre µ-INST 32: TampA←IP ; TampB←Reg1 ; UAL←TampA+TampB ; IP←UAL, on ZF jmp 0; READ ! ! ! ! A partir du registre de µ-instruction, il faut générer les signaux de commande de l ’UAL dans un ordre précis … Comment déclencher les opérations séquentiellement ? Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Séquencement des opérations (1) Chaque partie de µ µ µ µ-INST est reliée à un DCD (ou un DMX) qui déclenchera le bon signal de commande, au bon moment : Ex: R3 = registre destination de la sortie de l ’UAL par le Bus 2 (DII, RI0… RI15) Choix du signal de commande Choix du moment Reg A Reg B Reg C INST IP SP 0 1 ... ... Il est interdit d ’écrire dans Reg0 et Reg1 DMX 1:16 DII RI0 RI1 RI2 RI15 R3 4 CK5 Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Séquencement des opérations (2) • CK = Signal d ’horloge • CKi = Sous-cycles de CK correspondants aux sous-cycles des µ µ µ µ-instructions Transfert du résultat par le Bus 2 : CK5 Chargement du registre µ µ µ µ-INST : CK1 CK 1 cycle ... Transfert n°1 par le Bus 1 : CK2 Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Schéma de l’unité de commande Unité de Commande Registre Instruction Codop Argument Table de conversion Codop / µ µ µ µ-Prog[Codop] Adresse µ µ µ µ-instruction Mémoire µ µ µ µ-programmation 30 : µ-instruction1 31 : µ-instruction2 ... Registre µ µ µ µ-instruction Signaux de commande de l ’UAL • Lorsqu’une instruction arrive dans RI, son Codop est envoyé dans une table de conversion qui indique l’adresse du µ µ µ µ-Programme correspondant. • Ce µ µ µ µ-Programme est exécuté ligne par ligne : chaque µ µ µ µ-instruction est envoyée dans le registre de µ µ µ µ-instruction où sont générés séquentiellement les signaux de commande de l ’UAL Architecture des Ordinateurs et Systèmes d'Exploitation Ph. Leray Niveaux de programmation 0/1 MUX ... µ µ µ µ-instructions = suite de 0/1 Unité de Traitement (UAL, Chemin de données) Unité de Commande µ µ µ µ-programme = suite de µ µ µ µ-instructions Langage machine = suite de 0/1 101010 000010100 ADD A,20 JZ 13 Assembleur = remplacer les codop par des codes mnémotechniques Codop uploads/Ingenierie_Lourd/ cours-3-1.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 10, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.1554MB