Microprogrammation

Pour les articles homonymes, voir microcode.

Microprogrammation

La microprogrammation est une technique de réalisation du séquenceur d'un processeur, utilisé dans la technologie CISC, dans laquelle le comportement du séquenceur est décrit par le contenu d'une mémoire. Ce contenu est appelé microprogramme ou microcode. Il peut être vu comme un programme destiné à une machine très simple appelée micro-séquenceur ; le processeur final est alors considéré comme une machine virtuelle simulée par le micro-séquenceur. Par opposition la technologie RISC ne contient pas de microcode.

La réalisation microprogrammée des séquenceurs s'oppose à leur réalisation câblée. A priori plus onéreuse au départ, sa souplesse facilite l'évolution des modèles.

Principe

Le séquenceur d'un processeur est un automate fini qui contrôle le fonctionnement du chemin de données : notamment l'unité arithmétique et logique (UAL), les registres, etc.

Une approche consiste à réaliser cet automate à l'aide d'un circuit logique combinatoire, qui prend en entrée l'état du chemin de données ainsi que des signaux d'horloge, et fournit en sortie les signaux de commande à destination du chemin de données. Ce circuit logique est réalisé à l'aide d'un ensemble de portes logiques. Cette technique est dite du séquenceur câblé.

On peut cependant remarquer qu'un circuit logique combinatoire peut être réalisé à l'aide d'une mémoire utilisée en lecture (typiquement une mémoire morte), à laquelle les signaux d'entrée sont fournis en tant qu'adresses, et dont les mots fournis en sortie sont interprétés comme des signaux de sortie. Il est donc possible de remplacer le circuit combinatoire ci-dessus par une mémoire : c'est l'idée qui se trouve à la base de la microprogrammation. Les cases successives de la mémoire sont vues comme des instructions élémentaires ou micro-instructions ; leur ensemble constitue le microprogramme ou microcode.

Il est possible de complexifier ce schéma simpliste en ajoutant la possibilité d'effectuer des sauts entre micro-instructions. De plus, on introduit en général un registre contenant l'adresse de la prochaine micro-instruction à traiter : le micro-compteur ordinal. Il existe donc une logique simple — et câblée — chargée de dérouler le microprogramme : on l'appelle le micro-séquenceur.

Le code machine — les instructions, que l'on peut qualifier de macro-instructions pour bien les distinguer des micro-instructions — sont donc interprétées par le micro-séquenceur qui exécute le microcode. Plusieurs micro-instructions sont exécutées pour réaliser une (macro)-instruction.

Il y a deux techniques d'implémentation du microcode :

  1. Le microcode horizontal, qui utilise un nombre très grand de bits pour contrôler tous les éléments du processeur. Sur l'IBM 360 modèle 30 par exemple, une micro-instruction fait 60 bits.
  2. Le microcode vertical, qui occupe beaucoup moins de bits car il contient une partie spécifiant l'unité à contrôler, et une autre qui sera la commande envoyée à cette unité.

Les architectures basées sur des microprocesseurs en tranches sont microcodées.

Avantages et inconvénients des machines microcodées

  • Les avantages sont (entre autres) :
    • évolutivité du jeu d'instructions
    • simplicité du design
    • correction possible des erreurs de conception matérielle par modification du microcode
  • Les inconvénients sont (entre autres) :

Exemple d'ordinateurs microcodés

Voir aussi

Référence

Liens externes

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.