You are on page 1of 5
Université ELMANAR ‘Architecture Zouhour Ben Azouz oe Hanane Ben Fr Avancée Tnstinut Supérieur Informatique AU. 2010/2011 TD 1: Jeux d’instructions Exercice 1 Soit le processeur DLX. Tous les registres ont 32 bits. Le processeur a 32 registres entiers, de RO a R31. Le registre RO est ciblé 4 0 (RO=0). On peut lire son contenu, mais Técriture dans RO ne produit aucun résultat. R31 contient l’adresse de retour des procédures. Les instructions sont de longueur fixe (32 bits). Le jeu d’instructions est donné dans la table 1. La mémoire est adressable par octets NB : Les instructions de comparaison $___positionnent le registre destination a 1 si la condition est vraie, et 0 si la condition est fausse. Ex: SNE R4, RS, R6 met R4 a1 si RS=R6 Les syntaxes assembleur sont les suivantes: Instructions registres-registre : Code op, registre destination, registre source 1, registre source 2 Instructions registres-immédiat Code op, registre destination, registre source 1 Instructions mémoire Code op, registre donnée, déplacement (registre adresse) Instructions branchement Code op, registre, déplacement Instructions de saut : Code op, déplacement ou Code op, registre. immédiat 1. Quelles est la nature de ce processeur RISC ot! CISC. justifier votre réponse 2. Combien de bits sont réservés au code op dans le format RI. 3. Comment peut-on exécuter avec uniquement le jeu d'instruction DLX donné par la table 1 les actions suivantes a) Mettre FO00A000H dans le registre R3 b) Diviser par 2 le contenu du registre R4, interprété en signé ©) Multiplier par 18 le contenu du registre RS 4d) Mettre dans R2 Ia valeur absolu de R2 cad R2€ R2 si R2 >0 RIE -R2siR2<0 Indication : il faut tester le bit de signe de R2 Table 1: Jeu d'instructions DLX Type Winstruction et code-op Signification de Vinstruction ‘Transferts de données (depuis ou Transfére les données entre des registres et la mémoire ; le seul mode d'adressage mémoire est (registre + déplacement signé de 16 vers la memoire) | bits) 1B, 180, 88 (Chargement octet, octet non signé, rangement octet LH, LHU, SH CChargement demi-mot, demi-mot non signé. rangement demi-mot TW, SW ‘Chargement mot, rangement mot (deivers des regisires entiers) Arithmétique et | Opérations sur les données entleres ou logiques dans des registres logique entiers: ADD, ADDI “Addition, addition immédrats (Tous Tes immiediats ont 16 bits). Les ADDU, ADDUT opérandes sont signés pour ADD et ADDI (avec extension de signe de Fimmédiat), Les opérandes sont non signés pour ADDU et ADDUL (avec extension de 0 pour Pimmédiat) Sus, SUBU Soustaction signée, nou signee AND, ANDI Er. et immédiat (extension de 0 pour P'immédiat) OR, ORT, XOR, XORI (Ou, ou immédiat, ou exclusif, ou exclusif immédiat (extension de 0 pour Timmédiat) CChargement haut immédiat (charge la partie haute d'un registre avec un immédiat) et met 4 2éro la partie basse ‘Décalages : sous forme immédiate (S_t) ou variable (S__) les décalages sont logique a gauche, logique a droite, et arithimétique Positiomer la condition cE "peut éie EQ, NE, LT, GP, LB, Branchements conditionnels et sauis; relatifs CP ou par regisire Branchement si tegisire entier égal/non égal zero: déplacement relatif de 16 bits ajouté a CP Sauts deplacement de 26 bits ajoute a CP (a) ou destination dans Te registte (JR) Exercice2 : Exemples MIPS et ARM pour les instructions arithmétiques ‘Multiplication par des constantes L'instruction de multiplication sur des entiers prend plus dune dizaine de cycles @horloge snr ta plupart des processeurs. Les instructions logiques. I’addition et la soustraction prennent généralement un seul cycle d’horloge. Il est done plus efficace implantes 1a multiplication du contenu d'un segistre par une constante en utilisant des opérations comme I’addition, la soustraction et les décalages. En utilisant les instructions ci-dessous pour le MIPS et pour ARM, donner la suite d’instructions MIPS ef la suite instructions ARM pour effectuer la multiplication du contenu du registre R1 par les constantes : 33,3 let 37. Instructions MIPS Format des instructions RI 31-26 25-21 20-16 15-0 | toes : ; ie ES aE eT Se ee — eee oT eee eee eee — [ssa ae Haba ni ou IMM16 est une constante sur 16 bits et SIMM16 est la constante 32 bits obtenue par extension de signe. Format des instructions RR 326 «| 20-6 [1ST 10-6 x0 Nb de Extension apcode (000000) s ' a diestagss | Cotoay Tasiructionsanthmeiques et | ADD, SUB, OR, NOR, AND, | Rd — Rsop Rt logiques XO’ Instructions de décalage SLLV. SRAV. SRLV_ Rd — Rs décalage Rt (Sbits) Tnstructions de dccalage SLL, SRA. SRL Ri — Rs decalage MMS ARM Format des instructions arithmétiques et logiques 38 || 21 2 | 116 | 181 iho Cond [00 [ 1 ‘Code Op Ss n d Opérande 2 I= si opérande 2 est une valeur immédiate 0 sinon, 1: numéro du registre opérande 1 +d: numéro du registre destination + operand? : second opérande. Trois formats sont possibles : © opérande registre, décalage éventuel spécifié par une constante 11/10 9/8 /7\6 5 {4/3210 shift ‘sh [0 [Rm + shift: nombre de positions de décalage + Sh: type de décalage (00 = LSL, 01 =LSR, 10= ASR, 11=ROR) + Rin: numéro du registre © opérande registre, décalage éventuel spécifié par un registre 11/109'8 7/63/4320 Olsh |2 Rm + Rs: muméro du registre contenant le nombre de positions de décalage + Sh: type de décalage (00 = LSL, 01 =LSR, 10 = ASR, 11=ROR) + Rm: numéro du registre © opérande immédiat (de la forme valeur_8 bits * 2°28) 1ijlo|s7|6 543210 K hae ‘value + value : valeur sur 8 bits Exemple ADD R2, R1, RO LSL #4 signifie R2 =OR1 + (RO<<4) = R1 + 16*RO Thstructions anihmengues [ADD, SUB Ra Rov operande 2 Tnstructions arithmétiques | RSB. Ra — opérande 2 - Rs Instructions logiques "AND. ORR, FOR Rd — Rs op opsrande 2 Tnstructions de transfert [| MOV Rd — opérande > Exercice 3: On considére une architecture comportant 16 registres 16 bits. Le jeu instructions est le suivant ‘mnémonique et opérandes | description MOV RG “Met dans les © bits de ponds faible du regitre FE In constante C sur 8 bits codée dans Vinstruction READ Decale Ta valeur de R2 de N bits (insertion de zeros) résultat dans RL N est une constante sigute sur 5 instruction. Le signe de N indique le yens du décalage. OP RANT ‘Met dans FU We ésultat de H2 OP RS, on OP est une in Optrations suivaates : ADD.SUBOR.AND.XOR TO RLREDEP Ta valeur T6 bits stork A Vadrssa matmamre Ry DEP eet Ta valeur daus RA. DEP est une coustante sigue sur 8 bits, cade dans Vinstracto ST RERZDEP Ferit ln valeur de RY a Vadkesse untmire RE DEP. ~ DEP est une constante signe sur 8 bits, code dans Vinstruction TP REA ‘Met ls valeur du PC de Fistruction suivante dans RY ‘et saute adresse Iue dans R2 BNZRDEP Saute a PC DEP wi Rt won mal DEP est une constante signe sur § its, coo dans Vinstrction Questions 1. Calculer le nombre total N d'instructions distinetes, 2. Si on utilise un format dinstruction de longueur constante, quelle est 1a longueur minimum d'une instruction ? 3. Un format diinstruction de longueur variable permet-il d'obtenir une longueur moyenne instruction plus petite qu'un format de longueur constante? 4, Proposer une modification minimale du jeu d'instruction qui permet un codage de longueur constante sur 16 bits (il existe plusiews solutions acceptables). Calculer le nombre fotal NO d'instructions distinctes et vérifier qu'il est compatible avec un codage sur 16 bits. Proposer un codage 16 bits pour le jeu d’instructions modifié

You might also like