Le compteur de programme contient l'adresse de l'instruction qui doit être exécutée ensuite, tandis que le registre d'instructions contient l'instruction réelle à exécuter. l'un d'eux ne suffirait-il pas?
Et quelle est la longueur de chacun de ces registres?
Merci.
Vous aurez toujours besoin des deux. Le compteur de programmes (PC) contient l'adresse de la prochaine instruction à exécuter, tandis que le registre d'instructions (IR) contient l'instruction codée. Lors de l'extraction de l'instruction, le compteur de programme est incrémenté d'une "valeur d'adresse" (à l'emplacement de l'instruction suivante). L'instruction est ensuite décodée et exécutée de manière appropriée.
La raison pour laquelle vous avez besoin des deux est que si vous n'aviez qu'un compteur de programme et que vous l'utilisiez pour les deux, vous obtiendriez le système problématique suivant:
[Début de l'exécution du programme]
Par conséquent, nous avons besoin d'un autre registre pour contenir l'instruction réelle extraite de la mémoire. Une fois que nous récupérons cette mémoire, nous augmentons PC pour que nous sachions où récupérer la prochaine instruction.
P.S. la largeur des registres varie en fonction de la taille de Word de l'architecture. Par exemple, pour un processeur 32 bits, la taille de Word est de 32 bits. Par conséquent, les registres sur le processeur seraient de 32 bits. Les registres d'instructions ne sont pas différents dans leurs dimensions. La différence réside dans le comportement et l'interprétation. Les instructions sont codées sous différentes formes, mais elles occupent toujours un registre 32 bits. Par exemple, le processeur Nios II d'Altera contient 3 types d'instructions différents, chacun codé différemment. Voir page 6 de ftp://ftp.altera.com/up/pub/Tutorials/DE2/Computer_Organization/tut_nios2_introduction.pdf
Vous pouvez également en savoir plus sur la structure du processeur Nios II à partir du lien ci-dessus. Il s'agit d'un simple processeur IP. Bien sûr, Intel a ses propres spécifications/conception et cela variera.
Comme vous l'avez indiqué, le Program Counter (PC) contient l'adresse de la prochaine instruction à exécuter, et le Instruction Register (IR) stocke l'instruction réelle à exécuter (mais pas son adresse).
En fonction de la longueur de ces registres, les machines actuelles ont des PC 64 bits. La longueur de l'IR (d'un point de vue logique) dépend de l'architecture:
Comme ces machines sont capables de récupérer, décoder et exécuter plusieurs instructions à chaque cycle, l'implémentation physique de l'IR n'est pas facile à décrire en quelques lignes.