« Fonctionnement d'un ordinateur/Les architectures actionnées par déplacement » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Ligne 1 :
Sur certains processeurs, les instructions machine sont très simples et correspondent directement à des micro-instructions qui agissent sur le bus. En clair, toutes les instructions machine permettent de configurerconfigurent directement le bus interne au processeur, et il n'y a pas de séquenceur !. De tels processeurs sont ce qu'on appelle des '''architectures actionnées par déplacement''' (transport triggered architectures). Sur une architecture actionnée par déplacement, toutes les instructions (sauf quelques branchements) vont configurer le bus interne du processeur, en reliant ou non les ALU aux registres, en reliant les registres entre eux, etc. Chaque configuration va soit relier une unité de calcul au banc de registres, soit échanger deux données entre registres du banc de registres (connecter un port de lecture du banc de registres sur un port d'écriture), soit effectuer un branchement. Sur certains de ces processeurs, on n’a besoin que d'une seule instruction qui permet de copier une donnée d'un emplacement (registre ou adresse mémoire) à un autre. Pas d'instructions LOAD, STORE, etc. : on fusionne tout en une seule instruction supportant un grand nombre de modes d'adressages. Certaines de ces architectures utilisent plusieurs bus internes, afin de pouvoir faire plusieurs micro-instructions à la fois.
 
* soit relier une unité de calcul au banc de registres ;
* soit échanger deux données entre registres du banc de registres (connecter un port de lecture du banc de registres sur un port d'écriture) ;
* soit effectuer un branchement.
 
Certaines de ces architectures utilisent plusieurs bus internes, afin de pouvoir faire plusieurs micro-instructions à la fois.
 
[[Image:Transport Triggered Architecture.png|centre|thumb|Parts of Transport Triggered Architecture]]
Ligne 37 ⟶ 31 :
 
La raison d'exister de ces architectures est tout autant la simplicité du processeur que la performance. Dans les grandes lignes, de tels processeurs ont un séquenceur extrêmement simple, qui utilise peu de portes logiques. La raison à cela est simplement que le séquencement des micro-instructions n'a pas à être réalisé par le processeur, mais est réalisé par le compilateur. Le fait que le compilateur aie la main sur les micro-instructions peut permettre des simplifications assez fines, qui ne seraient pas possibles avec un compilateur qui réordonne des instructions machines. Par exemple, on peut envoyer le résultat fourni par une unité de calcul directement en entrée d'une autre, sans avoir à écrire ce résultat dans un registre intermédiaire du banc de registres. Évidemment, ces micro-instructions ont un temps de latence qui doit être connu pour obtenir un programme correct : sans cela, on pourrait par exemple lire une donnée avant que celle-ci ne soit disponible. Cela demande donc des compilateurs dédiés, qui connaissent les temps de latence de chaque instruction. La portabilité des programmes compilés pour de telles architecture est donc faible.
 
Sur certains de ces processeurs, on n’a besoin que d'une seule instruction qui permet de copier une donnée d'un emplacement (registre ou adresse mémoire) à un autre. Pas d'instructions LOAD, STORE, etc. : on fusionne tout en une seule instruction supportant un grand nombre de modes d'adressages. Et donc, on peut se passer complètement d'opcode, vu qu'il n'y a qu'une seule instruction : pas besoin de préciser quelle est celle-ci, on le sait déjà. Sympa, non ?
 
<noinclude>