Processeur basé sur la pile

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Certaines informations figurant dans cet article ou cette section devraient être mieux reliées aux sources mentionnées dans les sections « Bibliographie », « Sources » ou « Liens externes » ().

Vous pouvez améliorer la vérifiabilité en associant ces informations à des références à l'aide d'appels de notes.

Certains processeurs utilisent non pas des registres pour conserver les données, mais une ou plusieurs piles. Les instructions prennent alors pour opérandes les premiers éléments de la pile.

Jeu d'instruction

Instructions

Dans un tel processeur, les instructions (addition, multiplication, chargement d'une valeur en mémoire...) utilisent généralement les deux premiers éléments de la pile. On trouve aussi des instructions de manipulation de pile, par exemple permettant de supprimer un élément, ou d'inverser certains d'entre eux. Le langage Forth est souvent utilisé pour programmer ce type de processeur.

Selon les cas, on peut aussi disposer de registres ou d'instructions utilisant des opérandes plutôt que le sommet de la pile, voire de plusieurs piles. Typiquement, l'une d'elles peut-être réservée pour retenir les adresses de retour des fonctions.

Avantage d'un tel jeu d'instructions

Comme il n'y a pas besoin de référencer les opérandes comme sur les processeurs à registres, les instructions peuvent être très courtes. On peut donc l'utiliser avec profit sur des systèmes embarqués où la mémoire est limitée. De plus, l'accès n'étant possible que pour les premiers éléments, les circuits peuvent être plus simples, permettant de consommer moins d'énergie et parfois d'intégrer de nombreux cœurs de processeur.

Lorsque les ordinateurs ne disposaient pas d'une grande puissance de calcul, la compilation était également plus simple pour un processeur à pile.

Inconvénients

Les premiers processeurs à pile conservaient celle-ci en mémoire. Comme celle-ci est désormais plus lente que le processeur, cette technique n'est plus d'actualité : on parle de la seconde génération de processeurs à pile pour ceux qui utilisent des registres internes du processeur pour mémoriser les premiers éléments.

Même ainsi, ces processeurs rendent difficile le parallélisme au niveau des instructions et ajoutent des instructions pour manipuler la pile, ce qui contribue à les écarter de l'informatique grand public pour des raisons de rapidité.

Comme ces processeurs sont bien moins utilisés que les architectures à registres classiques, les techniques d'optimisation du code ont été moins explorées, même si des méthodes efficaces d'allocation ont été développées pour minimiser l'utilisation des opérations de manipulation de la pile.

Notes et références

Source

(en) Philip Koopman, Stack Computers : the new wave, Ellis Horwood, (lire en ligne)

v · m
Technologies de processeur
  • Chronologie des microprocesseurs
  • Semi-conducteur
  • Transistor
Modèles
Architecture
Général
Mots
Instruction
Jeu
Famille
Exécution
Performance
Types
Général
Par usage
On chip
Accélération
matérielle
Microarchitecture
Parallélisme
Général
Processus
Taxonomie de Flynn
Circuiterie et unité
Général
Exécution
Porte logique
Registre
Contrôle
Chemin de données
Cadencement
Gestion de l'alimentation
Fabrication
Articles liés
  • icône décorative Portail de l’informatique