Compteur de programme et Registre D'Instruction

Compteur de Programme, contient l'adresse de l'instruction qui doit être exécutée suivant, tandis que le registre d'instructions contient l'instruction à exécuter. ne serait pas suffisant?

Et quelle est la longueur de chacun de ces registres?

Merci.

32
demandé sur Benyamin Noori 2013-04-01 11:34:31

2 réponses

Vous aurez toujours besoin des deux. Le compteur de programmes (PC) contient l'adresse de l'instruction suivante à exécuter, tandis que le registre d'instructions (IR) contient l'instruction codée. Lors de la récupération 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 est parce que si vous n'aviez qu'un compteur de programme, et l'a utilisé pour vous obtiendrait le système gênant suivant:

[Début de l'exécution du programme]

  1. PC contient 0x00000000 (disons que c'est l'adresse de démarrage du programme en mémoire)
  2. L'instruction codée est extraite de la mémoire et placée dans le PC.
  3. l'instruction est décodée et exécutée.
  4. maintenant, il est temps de passer à l'instruction suivante afin que nous revenions sur le PC pour voir quelle est l'adresse de l'instruction suivante. Cependant, nous avons un problème car L'adresse précédente du PC a été supprimé donc nous n'avons aucune idée où se trouve l'instruction suivante.

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 afin que nous sachions où récupérer l'instruction suivante.

P.S. la largeur des registres varie en fonction de la taille des mots de l'architecture. Par exemple, pour un processeur 32 bits, la taille du mot est de 32 bits. Par conséquent, les registres sur le CPU seraient 32 bits. Les registres d'Instruction sont pas différent dans les dimensions. La différence est dans le comportement et l'interprétation. Les Instructions sont codées sous diverses 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 en savoir plus sur la structure du processeur Nios II à partir du lien ci-dessus comme Bien. C'est un processeur IP simple. Bien sûr, Intel a sa propre spécification / conception et cela variera.

47
répondu Haleeq Usman 2015-12-06 18:15:16

Comme vous l'avez indiqué, la Compteur de Programme (PC) contient l'adresse de la prochaine instruction à exécuter, et le Registre d'Instructions (IR) magasins réels instruction à exécuter (mais pas son adresse).

En relation avec 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:

  • les machines RISC ont généralement des instructions de longueur fixe. Par exemple, la plupart des instructions SPARC sont codés dans des formats 32 bits.
  • les machines CISC (Intel, AMD) ont des instructions de longueur variable. Par exemple, consultez les manuels des développeurs de logiciels Intel® 64 et IA-32 Architectures

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.

6
répondu chus 2016-08-24 15:58:01