« Fonctionnement d'un ordinateur/Les jeux d'instructions » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 11 :
[[File:Exemple d'une machine à pile qui code ses entiers sur 4 Bytes.png|vignette|Exemple d'une pile/file d'opérandes, chaque opérande étant codée sur 4 Bytes.]]
 
Les premières architectures que nous allons voir sont les '''machines à pile''' et les '''machines à file''' des jeux d'instructions où les registres sont remplacés par une mémoire tampon particulière. Cette une mémoire tampon est dédiée aux opérandes de calculs et sert d'intermédiaire entre la mémoire RAM et le reste du processeur. Ici, ilIl s'agit d'une mémoire de type FIFO pour une machine à file, alors que c'est une LIFO pour une machine à pile. La FIFO/LIFO est placée dans le processeur sur certaines machines, alors que d'autres la placent dans la mémoire RAM. Dans le premier cas, la mémoire tampon sert d'intermédiaire entre la mémoire RAM et le reste du processeur. Dans les deux cas, les opérandes sont stockées dans la mémoire tampon dans leur ordre d'ajout. Chaqueet chaque opérande prend exactement un byte, pas plus ni moins. Les opérandes sont chargées depuispar lacertaines mémoire RAMinstructions dans la FIFO/LIFO et y sont placées les unes à la suite des autres. De plus, quand le processeur fait un calcul quelconque, le résultat est ajouté à la pile/file. La pile/file se remplit donc progressivement de donnéesd'opérandes chargées depuis la RAMvolontairement ou de résultats de calculs. Les seules opérandes manipulables par une instruction sont placées au sommet de la pile ou file : il faut ajouter les opérandes unes par unes avant d'exécuter l'instruction. L'instruction dépile automatiquement les opérandes qu'elle utilise et empile son résultat.
 
[[File:Machines LIFO et FIFO.png|centre|vignette|upright=23.0|Machines LIFO et FIFO.]]
 
Sur certaines machines FIFO/LIFO, la pile et la file sont localisées non pas dans le processeur, mais dans la mémoire RAM. Ces machines ont besoin d'un registre pour stocker l'adresse du sommet de la pile/file. Dans le cas d'une machine à pile, celui-ci est appelée le stack pointer, ou '''pointeur de pile'''. Sur les machines à file, il est appelé le ''queue pointer'', ou encore le '''pointeur de file'''. Les instructions de calcul utilisent uniquement les registres de pile pour savoir où se trouvent les opérandes. En clair, toutes les instructions utilisent uniquement le mode d'adressage implicite. Il va de soit que pour simplifier la conception du processeur, celui-ci peut contenir des registres internes pour stocker temporairement les opérandes des calculs, mais ces registres ne sont pas accessibles au programmeur : ce ne sont pas des registres architecturaux. Par exemple, sur certaines machines à pile, tout ou partie de la pile est stockée directement dans des registres internes au processeur, pour gagner en performance.