PHY 568 Alain Greiner Architecture interne des Architecture interne des micropr
PHY 568 Alain Greiner Architecture interne des Architecture interne des microprocesseurs microprocesseurs version 1.0 2 PHY 568 Alain Greiner Objectif / Avertissement Objectif / Avertissement On souhaite appliquer les différentes techniques de circuiterie numérique synchrone présentées dans le cours à la réalisation d’un (petit) microprocesseur 32 bits. Le jeu d’instruction du processeur P32 est inspiré de celui du processeur MIPS R3000, mais il est TRES fortement simplifié : - pas de traitements sur les octets - pas de traitement des interruptions - pas de traitement des exceptions - pas de mode protégé - pas de mémoire virtuelle - pas de caches L’architecture microprogrammée proposée ci-dessous est FORTEMENT sous-optimale par rapport aux techniques d’architecture pipe-line et super-scalaire utilisées dans les microprocesseurs actuels… 3 PHY 568 Alain Greiner Principe des processeurs programmables Principe des processeurs programmables Etat CK La mémoire est un tableau dans lequel le processeur peut lire ou écrire. Chaque case peut contenir un « mot » (par exemple un mot = 32 bits). La mémoire contient à la fois le programme à exécuter et les données. On suppose que toute lecture ou écriture prend un cycle. Programme Données adresse donnée ou instruction Processeur programmable 4 PHY 568 Alain Greiner Les registres du processeur P32 Les registres du processeur P32 Il y a 5 registres visibles du programmeur : – PC : registre 32 bits contenant l’adresse de la prochaine instruction à exécuter – A0, A1, A2, A3 : 4 registres accumulateurs 32 bits contenant des résultats de calcul intermédiaires L’exécution d’une instruction a pour effet de modifier la valeur d’un ou de plusieurs registres. 5 PHY 568 Alain Greiner Jeu d’instructions du processeur P32 Jeu d’instructions du processeur P32 op Ai,Aj,Ak Ai <= Aj op Ak opération entre registres PC <= PC + 1 opi Ai,Aj,imd Ai <= Aj op imd opération avec opérande PC <= PC + 1 immédiat lw Ai, imd(Aj) Ai <= M[Aj + imd] lecture d’un mot en mémoire PC <= PC + 1 sw Ai, imd(Aj) M[Aj + imd] <= Ai écriture d’un mot en mémoire PC <= PC + 1 bne Ai, imd PC <= PC + 1 si Ai = 0 branchement conditionnel PC <= PC + 1 + imd sinon 6 PHY 568 Alain Greiner Format des instructions du processeur P32 Format des instructions du processeur P32 Toutes les instructions sont codées sur 32 bits L’instruction est codée sur 5 champs : – CODOP (6 bits) : type de l’instruction – R (2 bits) : numéro premier registre source – S (2 bits) : numéro deuxième registre source – T (2 bits) : numéro registre destination – IMD (20 bits) : opérande immédiat COP IMD T 31 25 20 19 0 S R 7 PHY 568 Alain Greiner Exécution des instructions Exécution des instructions Les instructions du programme sont exécutées séquentiellement, mais une instruction élémentaire a besoin de plusieurs cycles pour s’exécuter… Exemple : instruction lw Ai, Aj(imd) 3. lecture de l’instruction en mémoire M[PC] : 1 cycle 4. décodage de l’instruction : 1 cycle 5. calcul de l’adresse ad = Aj + Imd : 1 cycle 6. lecture de la donnée en mémoire M[ad] : 1 cycle 7. rangement de la donnée dans le registre Ai : 1 cycle 8. incrémentation du registre PC <= PC + 1 : 1 cycle temps instruction i instruction i+1 instruction i+2 8 PHY 568 Alain Greiner Architecture Interne du processeur P32 Architecture Interne du processeur P32 Partie contrôle : séquenceur Partie opérative : chemin de données Din Dout Adress 32 32 32 Ck Reset commandes indicateurs 9 PHY 568 Alain Greiner Partie opérative et partie contrôle Partie opérative et partie contrôle La partie opérative (ou « chemin de données ») contient les registres 32 bits et les opérateurs permettant de combiner entre eux les mots de 32 bits. Elle est capable d’exécuter des « tranferts élémentaires », c’est à dire des transferts qui peuvent s’exécuter en un cycle. La partie contrôle (ou « séquenceur ») est chargée d’enchaîner les différents transferts élémentaires correspondant à l’exécution d’une instruction. Pour prendre ses décisions, elle dispose des indicateurs fournis par la partie opérative, comme par exemple la valeur des champs CODOP, R, S, et T de l’instruction stockée dans le registre IR. 10 PHY 568 Alain Greiner Registres supplémentaires Registres supplémentaires Les 5 registres « visibles du logiciel » définissent l’état du processeur « du point de vue du programmeur » : On décrit l’état de la machine après l’exécution de l’instruction i, et avant l’exécution de l’instruction i+1… Ils ne sont pas suffisants pour permettre l’exécution des instructions. On ajoute 3 registres supplémentaires dans le chemin de données : – registre AD : permet de stocker un résultat intermédiaire, comme par exemple l’adresse de la donnée à lire ou écrire en mémoire – registre IR : permet de stocker les 32 bits du code de l’instruction courante pendant toute la durée d’exécution de cette instruction. – registre DT : permet de stocker les 32 bits de la donnée qu’on vient de lire en mémoire avant de la stocker dans un accumulateur Ai. 11 PHY 568 Alain Greiner Chemin de données Chemin de données PC A0 A3 AD IR DT c o n st a nt e s bus OPX bus OPY bus ADR Din Dout Adress Result UAL CODOP NUL 32 32 32 32 32 1 12 12 PHY 568 Alain Greiner Transferts “interne” et “externe” Transferts “interne” et “externe” PC A0 A3 AD IR DT c o n st a nt e s bus OPX bus OPY bus ADR Din Dout Adress Result UAL Ce chemin de données peut réaliser simultanément deux transferts : un transfert « interne » et un transfert « externe » de type lecture. Exemple : PC <= PC + 1 / DT <= M[AD] 13 PHY 568 Alain Greiner Réalisation des registres 32 bits Réalisation des registres 32 bits D31 D30 D29 D3 D2 D1 D0 Q31 Q30 Q29 Q3 Q1 Q0 Q2 WEN CK WEN CK Q D Registres à écritures conditionnelle : Il y a un signal d’autorisation d’écriture WEN spécifique pour chaque registre du chemin de données : 1 0 14 PHY 568 Alain Greiner Réalisation des bus Réalisation des bus Z [31:0] C[31:0] B[31:0] A[31:0] 32 32 32 32 sela selb selc Zi selb selb selb’ selb’ Bi 32 fois Emetteur 3 états non inverseur 15 PHY 568 Alain Greiner Réalisation de l’Unité Arithmétique et Logique Réalisation de l’Unité Arithmétique et Logique MUX NUL-DETECT 32 32 32 32 32 32 32 32 32 1 OPX OPY RESULT NUL MUX MUX MUX 16 PHY 568 Alain Greiner Implantation physique du chemin de données Implantation physique du chemin de données Le chemin de données contient principalement des registres 32 bits à écriture conditionnelle, et des opérateurs combinatoires vectorisés sur 32 bits : - émetteurs 3 états sur 32 bits, - multiplexeurs 2 vers 1 sur 32 bits - additionneur soustracteur sur 32 bits - décaleur sur 32 bits - détecteur de nullité sur un mot 32 bits On utilise une bibliothèque de cellules spécialisées pour la réalisation de ces opérateurs « vectorisés » de façon à avoir une implantation en colonnes régulières de hauteur 32 bits : - les données sont des nappes de 32 fils horizontales en métal 2 ou en métal 4. - les signaux de contrôle sont des fils verticaux en métal 3, qui sont amplifiés dans chaque colonne. 17 PHY 568 Alain Greiner Organisation régulière des chemins de donnée Organisation régulière des chemins de donnée Registre Registre Additionneur soustracteur émetteur de bus émetteur de bus Mux Or 32 bits 18 PHY 568 Alain Greiner Micro-instruction Micro-instruction A chaque cycle, la partie contrôle doit définir 5 commandes : • Définition de l’opérande X • Définition de l’opérande Y • Définition de l’opération • Définition du registre destination • Définition du type de transfert avec la mémoire On appelle « micro-instruction » une valeur particulière de ces commandes, et « micro-programme » la séquence de micro-instructions permettent d’exécuter une instruction. La micro-instruction est donc un mot de commande structuré en 5 champs : OPX OPY ALU RES MEM 19 PHY 568 Alain Greiner Langage de micro-programmation Langage de micro-programmation A_SRA R_NOP A_SRL R_A3 A_SLL Y_C1 X_C0 R_A2 A_XOR Y_C0 X_PC M_NOP R_A1 A_AND Y_DT X_A3 N_DW R_A0 A_OR Y_AD X_A2 M_DR R_AD A_DIF Y_IX X_A1 M_IF R_PC A_SUM Y_IR X_AO MEM RES ALU OPY OPX Les différentes valeurs possibles pour les 5 champs de la micro- instruction définissent le « langage de microprogrammation » On utilise des mnémoniques pour améliorer la lisibilité : 20 PHY 568 Alain Greiner Langage de micro-programmation Langage de micro-programmation L’opérande X est la constante 0 X_C0 L’opérande X est le contenu du registre PC X_PC L’opérande X est le contenu du registre A3 X_A3 L’opérande X est le contenu du registre A2 X_A2 L’opérande X est le contenu du registre A1 X_A1 L’opérande X est le contenu du registre A0 X_AO Signification OPX uploads/Litterature/ cours-micro.pdf
Documents similaires
-
76
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 21, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.1699MB