Ministère de l enseignement Supérieur Institut Supérieur des Etudes Technologiques de Sfax Département informatique A. U. 2007-2008 1 er semestre : Classes : INFO 12 Date : 26/11/2007 Matière : Architecture des ordinateurs Enseignants : Omar Cheikhrouhou TD N 3 : LE MICROPROCESSEUR Exercice 1 : Questions de cours 1. Définir les termes suivants : a. Microprocesseur b. Jeu d instruction d un microprocesseur c. registre 2. Décrire brièvement les principaux composants d un microprocesseur? 3. Décrire et donner le rôle de différents registres utilisés par le microprocesseur? 4. Expliquez le cycle d exécution d une instruction? 5. Quelles sont les principales caractéristiques d un microprocesseur? 6. Comparez les deux architectures CISC et RISC? 7. Quelles sont les principales solutions qui peuvent améliorer les performances de l architecture classique d un microprocesseur? Décrire brièvement chacune de ces solutions? 8. Quel est le principe de pipeline? et montrer par un exemple comment il peut améliorer les performances? 9. Quels sont les problèmes qui peuvent empêcher un pipeline d atteindre sa performance maximale? 10. Donner des exemples de processeur spéciaux ainsi que leur domaine d application? 11. Décrire les principaux modes d adressages et donner un exemple pour chaque mode? Exercice 2 Un microprocesseur a les caractéristiques suivantes : Fréquence d horloge= 3 Ghz Nombre moyen de cycle par instructions=4 1. Calculer le temps d un cycle d horloge. 2. Calculer le temps moyen d exécution d une instruction 3. Calculer le nombre de millions d instructions que ce microprocesseur est capable de l exécuter par seconde. Exercice 3 Soit un ordinateur doté d un bus de données de 8 bits et d un bus d adresse de 16 bits. 1) Donner le rôle ainsi que la taille des registres suivants: a. Compteur ordinal (CO) appelé aussi pointeur d instructions. b. Registre de tampon UAL (RTUAL) c. Registre d instruction (RI) d. Registre tampon d adresse (RTA) e. Registre Accumulateur (ACC) 2) Quelle est ici la taille d un mot mémoire? Quelle est la capacité mémoire maximale (nombre d octets) que l on peut utiliser? 3) On désire exécuter le programme P suivant : Addition de 3 et 4 La séquence est la suivante : La première instruction commande le chargement de l opérande 3 dans l accumulateur, codée en langage machine 3E05. Contact : Omar Cheikhrouhou, omar.cheikhrouhou@isetsf.rn.tn, département informatique 1
La seconde ajoute 4 au contenu de l accumulateur, codée en langage machine C607. Le résultat 7 reste dans l accumulateur. On suppose que le programme est chargé à partir de l adresse 0H a) Donner l algorithme de ce programme. b) Donner la représentation du programme P en mémoire c) Donner sous forme de tableau l état de chacun des registres du CPU : Compteur ordinal, registre d instructions, accumulateur, registre tampon d adresses, registre tampon UAL, après l exécution de chacune des instructions du programme P. Exercice 4 Soit un processeur (8bits de données, 16 bits d adresse). On suppose que les instructions sont codées sur 1 ou 2 octets, suivi éventuellement d un opérande sur un ou deux octets. On dispose des instructions suivantes (AL désigne l accumulateur) : Instruction Codage Signification MOV AL, [ adr ] A0 adr Lis l emplacement mémoire adr et le charge dans AL. MOV [ adr ], AL A2 adr Stocke la valeur de AL dans la mémoire d adresse adr. ADD AL, [ adr ] 02 06 adr Ajoute dans AL la valeur lue à adr. 1) Combien d octets occupent chacune de ces instructions? 2) écrire avec ces instructions un programme qui ajoute le contenu des cases mémoires d adresses 130H et 131H, puis range le résultat à l adresse 132H. Donner sa traduction en hexadécimal. 3) Donner l adresse de chaque instruction du programme, sachant que la première instruction est implantée à l adresse 1000H. 4) Donner après chaque instruction le contenu de chaque registre (CO, RI, AL, RTUAL, RTA) on supposera que la valeur rangée à l adresse 0130H est 88H, et la valeur 5 en 0131H. 5) Quel est le résultat de l addition si l on a les valeurs 254 et 10 rangées en 0130 et 0131H? 6) Avec les instructions vues plus haut, écrire un programme qui échange le contenu des cases mémoires 0130H et 0131H. Exercice 5 Soit le programme suivant : Mov A,16 Mov B,52 Mov Acc, A Add B Mov C, Acc Sachant que le code des instructions, les nombres et le registre d adresse sont représentés sur 8 bits et l adresse de logement est 0h Instruction Désignation Codage MOV adr, val (adr) val B0H MOV adr, acc (adr) acc F1H MOV acc, adr Acc (adr) F8H MOV reg, adr Reg (adr) C3H Add adr Acc (acc) + (adr) E3H Sub adr Acc (acc) - (adr) F2H Contact : Omar Cheikhrouhou, omar.cheikhrouhou@isetsf.rn.tn, département informatique 2
1) Déterminer le nombre d octets nécessaires pour stocker ce programme en mémoire. 2) Représenter en mémoire sous format Hexadécimal le programme décrit ci-dessus. Les numéros des adresses pour les variables A,B et C sont respectivement 71, 206 et 199 en décimal Exercice 6 Soit le programme suivant : Mov A, 6 Mov B, 10 Mov Acc, B Mov C, 2 Add C Sub A Sub C Mov C, Acc Les nombres sont représentés sur 8 bits. Le registre d adresse peut accéder jusqu à 65535. (Les codes instructions et les adresses des variables sont les mêmes que dans l exercice3). 1) Représenter en mémoire sous format hexadécimal le programme décrit ci-dessus, 2) Déterminer la taille de la mémoire, 3) Déduire le contenu de l adresse C. Exercice 7 Soit une carte mère d un ordinateur contenant les éléments suivants : un processeur de fréquence 2GHz et une mémoire centrale de 256 MO qui est reliée a un bus de données de taille 16 bits et de fréquence 100 MHz. Le tableau suivant résume les instructions utilisées par son microprocesseur : Instruction Désignation Codage du code opération ADD X Acc (Acc) + (X) B5 SUB X Acc (Acc) - (X) C8 DIV X Acc (Acc) / (X) F3 MUL X Acc (Acc) * (X) E9 MOV Acc,X Acc (X) F1 MOV X, nombre (X) nombre A3 MOV X, Acc X (Acc) 3C CMP X,Y Comparaison de x et y suivi d une instruction de D6 saut JE étiquette Aller à étiquette si x=y 66 JL étiquette Aller à étiquette si x<y 27 JG étiquette Aller à étiquette si x>y 77 JMP étiquette Allez à étiquette sans condition E8 END Fin de programme FF a) Quel est le débit offert par le bus de données de cette machine. b) soit le programme p1 suivant : Z = A*B +C+D C= A + D/Z - C Contact : Omar Cheikhrouhou, omar.cheikhrouhou@isetsf.rn.tn, département informatique 2
Si Z>C ALORS A =2*C SINON A = C+Z FINSI En utilisant les instructions du tableau, écrire le programme p1 en assembleur. c) Calculer la taille d une adresse mémoire exprimée en bits sachant que la case mémoire est de 1 octet. d) Quel est le temps nécessaire pour charger un fichier ayant une taille de 16 KO en mémoire centrale en ignorant le temps d attente et d initialisation du disque dur. Exercice 8 Soit un micro-ordinateur dont le microprocesseur est composé d une UAL, d un compteur d instructions ou (compteur ordinal) de 20 bits, d un registre d état comportant 16 indicateurs d état, un registre d instructions, une unité de commande avec son unité de décodage, des registres de travail dont un registre accumulateur ainsi qu un registre tampon d adresses, et deux registres temporaires de l UAL. Ce microprocesseur est relié via un bus de données ayant une fréquence de 200 MHZ à une une mémoire centrale adressable par mots de deux octets (case mémoire = 2 Octets). Le format d une instruction est à une seule adresse et on peut exécuter jusqu à 250 opérations différentes. La taille d un mot mémoire (mot de données) est 32 Bits. 1/ Quel est le rôle ainsi que la taille de chacun des registres de ce microprocesseur (CI, RE, RI, RT, ACC, RA, RTUAL) 2/ Quelle est la taille des bus de données, d adresses et de commandes. 3/ Calculer la taille de la mémoire centrale exprimée en Méga Octets. Que devient sa taille si la mémoire est adressable par octet. 4/ Combien de mots de données peut on stocker dans cette mémoire. 5/ Déterminer la plus petite et la plus grande adresse en mémoire exprimées en hexadécimal. Quelle est la plus grande adresse mémoire d un mot de données. 6/ Calculer le débit en Mo/s offert par le bus de données. 7/ Le tableau suivant résume certaines instructions utilisées par ce microprocesseur : Instruction Désignation Codage du code opération ADD X Acc (Acc) + (X) F2 SUB X Acc (Acc) - (X) C9 DIV X Acc (Acc) / (X) C5 MUL X Acc (Acc) * (X) E9 MOV Acc,X Acc (X) 23 MOV X, nombre (X) nombre 55 MOV X, Acc X (Acc) B4 END Fin de programme FF Où x désigne une adresse d un opérande ou une constante. Contact : Omar Cheikhrouhou, omar.cheikhrouhou@isetsf.rn.tn, département informatique 3
Soit le programme p suivant : Mov a, 15 Mov b, 26 Mov c, 12 Mov d, 5 Mov Acc,a Add b Sub c Mul d Div b End Où : - Acc est le registre accumulateur - a, b, c et d sont des variables se trouvant aux adresses mémoires A39H, B5H, B900H et F3H. - Les nombres sont codés sur 1 octet et sont en décimal - Toutes les informations, adresses et données de la mémoire centrale sont en Hexa. a) Coder les instructions du programme P en hexa et représenter p en mémoire centrale à partir de l adresse mémoire 3F5H. b) Quelle est la valeur décimale du registre accumulateur après l exécution de p. c) Donner après l exécution de chaque instruction de ce programme le contenu en hexa des registres du microprocesseur : CO, RTA, RI, RTUAL, ACC. (Utiliser un tableau) Contact : Omar Cheikhrouhou, omar.cheikhrouhou@isetsf.rn.tn, département informatique 4