mardi 6 février 2007

Structure d'un processeur

Un processeur comporte trois classe de composants:
des espaces de stockage, source des instructions et de leurs opérandes et destination des résultats;
des unités fonctionnelles, effectuant les manipulations sur les opérandes et fournissant les résultats;
un contrôleur, lisant les instructions et coordonnant leur exécution par les autres composants.

Espaces de stockagePour diverses raisons, les processeurs ont plusieurs espaces de stockage.

Espace de travail C'est l'ensemble des emplacements facilement spécifiables qui contiennent temporairement les opérandes et les résultats des opérations. Ces emplacements sont souvent appelés registres.
Il n'est absolument pas nécessaire que les registres soient homogènes bien qu'on puisse souvent grouper les registres en classes, de sorte que les registres d'une classe peuvent être utilisés à la place de n'importe quel autre registre de la même classe. Mais il n'est pas rare qu'une classe ne comporte qu'un seul registre.
Les architectures ont quasiment toutes au moins deux classes de registres: une pour stocker les valeurs entières, une pour stocker les nombres représentés en virgule flottante. Mais souvent, l'espace de travail comporte des registres ayant des fonctions particulières.
Un accumulateur
est un registre servant de source implicite à la plupart des instructions et contenant le résultat après leur exécution.
Les registres d'index
sont des registres servant au calcul d'adresse (voir plus loin).
Un pointeur de pile
indiquant l'adresse du sommet d'une pile gérée par le processeur.
Un frame pointer
servant à accéder aux données locales de la routine en cours d'exécution.
Certains registres ont un comportement particulier: ils informent de l'état du processeur ou contiennent des informations à propos des dernières opérations effectuées (par exemple un indicateur indiquant si le dernier résultat était nul ou pas). Parmi ces registres particuliers on trouve souvent:
Le compteur ordinal (program counter, instruction pointer)
indiquant l'adresse de l'instruction en cours d'exécution ou de la prochaine instruction à exécuter;
le mot d'état
regroupant les informations les plus importantes sur l'état du processeur.

Espace mémoire
Au contraire de l'espace de travail, un espace mémoire apparait comme un ensemble homogène d'emplacements, chacun de ceux-ci étant spécifié par son adresse.
La plupart des processeurs n'ont qu'un espace mémoire, mais certains en ont plusieurs (par exemple un microcontrôleur peut avoir un espace mémoire sur le circuit et un espace mémoire à l'extérieur de celui-ci).
Parfois un espace mémoire peut être plongé dans un autre, c'est à dire qu'un même emplacement peut être accessible à une adresse d'un espace mémoire donné ou à une autre adresse d'un autre espace mémoire. C'est parfois le cas pour tout ou partie des registres de l'espace de travail.
Les modes d'adressage du processeur sont les différentes manières dont on peut spécifier les opérandes d'une instruction. Parmi les modes d'adressage possibles, citons:
l'adressage implicite
l'opérande n'est pas spécifiée dans l'instruction; elle est soit
toujours la même (pour une instruction d'incrémentation par exemple, on peut considérer qu'une opérande est toujours la constante 1), soit elle se trouve dans un registre fixé (si beaucoup d'instructions utilisent implicitement un même registre, celui-ci est nommé l'accumulateur), soit son adresse se trouve dans un registre fixé (par exemple le pointeur de pile).
l'adressage immédiat
la valeur de l'opérande est donnée directement dans l'instruction;
l'adressage direct ou absolu
l'adresse de l'opérande est donnée directement dans l'instruction;
l'adressage par registre
l'opérande se trouve dans un registre donné dans l'instruction;
l'adressage indirect par registre
l'adresse de l'opérande se trouve dans un registre;
l'adressage indirect
l'adresse de l'opérande se trouve dans un emplacement mémoire dont l'adresse est elle donnée dans l'instruction;
l'adressage indexé
l'adresse de l'opérande est formée en additionnant le contenu d'un ou de deux registres et d'une constante.

Entrée sortie
Pour le programmeur, la gestion des entrées sorties se fait souvent exactement comme si on accédait à un espace de stockage particulier. Suivant les architectures il apparait soit comme des registres (c'est souvent le cas dans les microcontrôleurs), soit comme un espace mémoire (auquel cas les modes d'adressage sont souvent plus réduits que dans les espaces mémoire normaux). Parfois, les entrées sorties se font en accédant simplement à des adresses particulières dans l'espace mémoire normal.

Lire l'article complet sur : http://fr.wikipedia.org/wiki/Architecture_des_processeurs

2 commentaires:

Anonyme a dit…

J'ai appris des choses interessantes grace a vous, et vous m'avez aide a resoudre un probleme, merci.

- Daniel

Anonyme a dit…

Whistle Blower Editor's Note: This anonymous letter was received in the newsroom of the PAA a few days ago. [url=http://www.funkyscratchcards.co.uk/]scratch cards[/url] scratch cards Here, all one needs is bet amount and lady luck on his or her side. http://www.funkyscratchcards.co.uk/