Licence Informatique L313 C. Germain, D. Etiemble Architecture 2006 TD 6. Micro-architecture non pipelinée Exercice 1 : Microprocesseur 16 bits avec architecture 3 bus Description du processeur Soit le processeur RISC 16 bits DER/94, dont le chemin de données est représenté figure 1. Tous les registres sont sur 16 bits. Il y a a 8 registres généraux, de R0 à R7. Le registe R0 est câblé à 0. La mémoire est adressable par mots de 16 bits et est commune pour les instructions et les données. Le format d’instruction est fixe, selon la figure 2. Les instructions sont représentées figure 3. Bus R Données +1 R0-R7 UAL RAdM CP Mémoire Données RI Ad Bus A Bus B Figure 1: Chemin de données de DER/94 F1 : reg/reg 4 00xx 3 a 3 d F2 : reg/imm 4 01xx 3 a 3 d F3 : branchement 4 1xxx 3 a 3 b xxx 6 immediat 9 immediat Figure 2: format des instructions de DER/94 Mnémonique ADD SUB ADI ORI LD LDI ST STI Bxxx codop 0000 0001 0100 0101 0010 0110 0011 0111 1xxx action Rd <- Ra + Rb Rd <- Ra - Rb Rd <- Ra + ES(imm) Rd <- Ra or ES(imm) Rd <- Mem (Ra + Rb) Rd <- Mem (Ra + ES(imm)) Rd -> Mem (Ra + Rb) Rd ->Mem (Ra + ES(imm)) CP <- CP + ES(imm) si condx vraie Figure 3 : Instructions des DER/94 Les différentes instructions s’exécutent en plusieurs cycles d’horloge. 1) Préciser les transferts de données élémentaires à chaque cycle d’horloge pour chacune des instructions de la figure 3. Détails du matériel : Tous les registres sont opaques. Pendant un cycle bus, il y a 1 Licence Informatique L313 C. Germain, D. Etiemble Architecture - 2006 transfert d’un ou plusieurs registres à travers l’UAL avec résultat dans un registre (opération UAL) transfert de CP vers CP à travers l’incrémenteur transfert d’un registre à travers la mémoire avec résultat dans un registre (lecture mémoire) Transferts de deux registres vers la mémoire (écriture mémoire) Commandes UAL - Bus R ← Bus A + Bus B - Bus R ← Bus A + ES6 (Bus B) - Bus R ← Bus A - Bus B - Bus R ← Bus B - Bus R ← Bus A + ES9 (Bus B) a Etat RI Séquenceur Logique de décodage A R0-R7 B WR1 à WR7 b Signaux de contrôle d WR Figure 5 : schéma de principe de la partie contrôle du processeur . Figure 4 : Détail du banc de registres 2) On veut définir complètement la partie contrôle de processeur par automate. Définir son organisation de principe, et les contenus du séquenceur et du PLA de décodage. Les différentes commandes à contrôler sont les suivantes Ecriture dans les registres : WRAdM, WCP, WRI, WR (d) Registres vers Bus : BA, BB, BR Ecriture CP (+1/BR) Lecture Banc registres : MuxA, MuxB Action UAL : +, -, transfert B Mémoire : Lect ou Ecrit. Exercice 2 : Microprocesseur 16 bits non pipeliné On veut implanter une version non pipelinée du microprocesseur DER/94 sur le chemin de données de la figure 6. 1) Préciser les transferts de données élémentaires à chaque cycle d’horloge pour chacune des instructions de la figure 3. 2) Quel est le nombre de cycles d’horloge pour exécuter chaque instruction de la figure 3 ? 3) Comment transformer le schéma de la figure 6 pour que toutes les instructions utilisent le même nombre de cycles d’horloge pour s’exécuter ? (ceci facilitera la transformation du schéma pour un fonctionnement pipeliné). 2 Licence Informatique L313 C. Germain, D. Etiemble Architecture 2006 1 + NCP MuxCP d, s1,s2 Zéro? cond A RI R0-R7 MuxA UAL MD B IMM ES RDM MI RAdM CP MuxB MuxR Figure 6 : Chemin de données non pipeliné pour DER/94 Exercice 3 : Implantation non pipelinée d’un processeur 32 bits Dans cet exercice, on veut implanter une partie des instructions ARM sur un chemin de données (figure 7). On considérera les différentes étapes d’exécution non pipelinée des instructions Pour simplifier, on ne considérera qu’un sous ensemble des instructions. 4 RCC A1 + A UAL R0-R15 A2 MI DEC/ ROT R1 MD B RI d, n, op2 Op2, I Code Op Lect/Ecr Figure 7 : Chemin de données Les instructions arithmétiques, logiques, de comparaison et de transfert ont le format indiqué en figure 8. Les instructions mémoire ont le format indiqué en figure 9 et l’on considérera les modes d’adressage indiqués par le tableau 2. Les instructions ARM sont toutes à exécution conditionnelles. 1) En supposant que les instructions s’exécutent (condition vraie), définir cycle par cycle l’exécution - des instructions arithmétiques et logiques - de l’instruction de comparaison (CMP) - des instructions de branchement - des instructions de branchement avec lien - des instructions de chargement, en tenant compte des différents modes d’adressage du tableau 2 - des instructions de rangement, en tenant compte des différents modes d’adressage du tableau 2 2) Définir l’exécution cycle par cycle dans le cas où la condition est fausse. 3 R2 Licence Informatique L313 C. Germain, D. Etiemble Architecture 31 2006 28 cond 24 00 21 19 I Code op S 16 15 Rn 12 11 0 Rd Opérande 2 Registre destination Registre opérande 1 Positionne (ou non) RCC 11 4 3 I=0 0 Rm Shift 11 8 7 Immédiat rotate I=1 0 Figure 8 : Format des instructions arithmétiques, logiques, de comparaison et de transfert Instruction ADD SUB RSB ORR CMP MOV Code op (b24b21) 0100 0010 0011 1100 1010 1101 Opération Rd ← Rn + Op2 Rd ← Rn - Op2 Rd ← Op2 - Rn Rd ← Rn or Op2 Rn –op2 Rd ← op2 Tableau 1 : Instructions arithmétiques, logiques, comparaison et transfert. Le format des instructions mémoire est donné en figure 9 31 28 cond 24 01 19 I P U BW L 16 15 Rn 12 11 Rd I=0 déplacement Déplacement non signé I=1 P=0 : post-indexé P=1 : pré-indexé 0 Shift U=0 Rn-dépl. U=1 Rn+dépl B=0 Mot B=1 Octet 0 Rm W=0 W=1 Rn←AE L=0 STR L=1 LDR Figure 9 : format des instructions mémoire Instruction LDR STR L 0 0 0 0 1 1 1 1 (b 27-26) 01 01 P 0 1 0 1 0 1 0 1 U 1 1 1 1 1 1 1 1 b20 1 0 B 0 0 0 0 0 0 0 0 Opération Rd ← Mem(AE) Mem(AE) ← Rd W 0 0 1 1 0 0 1 1 Tableau 2 : modes d’adressage considérés pour LDR et STR 4