13.08.2012 Views

Fonctionnement d'un ordinateur depuis zéro

Fonctionnement d'un ordinateur depuis zéro

Fonctionnement d'un ordinateur depuis zéro

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Partie 3 : Processeur et Assembleur 140/343<br />

Fetch Decode des opérandes Calcul<br />

du résultat<br />

Sachez que ces processeurs sont ceux qui n'utilisent qu'un seul bus interne dans leur processeur. Il utilisent aussi un register file<br />

avec seulement un port (qui sert alors aussi bien pour les écritures que pour les lectures) ou deux ports (un pour l'écriture, et un<br />

pour la lecture).<br />

Prenons un exemple : imaginez qu'on souhaite effectuer une addition entre deux registres. Il faut deux nombres pour que notre<br />

addition fonctionne. Il va nous falloir relier l'ALU à ces deux registres, ce qui impossible avec un seul bus : on ne peut envoyer<br />

qu'une seule donnée à la fois sur le bus ! On pourra donc avoir accès à une donnée, mais pas à l'autre. Pour résoudre ce<br />

problème, on a pas vraiment le choix : on doit utiliser un registre temporaire, directement relié à notre ALU, qui stockera une des<br />

deux donnée nécessaire à notre instruction. De même, il est préférable d'utiliser un registre temporaire pour stocker le résultat :<br />

comme cela, on évite que celui-ci se retrouve immédiatement sur le bus de donnée en même temps que la seconde opérande.<br />

Le déroulement <strong>d'un</strong>e addition est donc simple : il faut recopier la première donnée dans le registre temporaire, connecter le<br />

registre contenant la deuxième donnée sur l’entrée de l’unité de calcul, lancer la division en envoyant le bon code sur l’entrée de<br />

section de l'instruction de l'ALU, et recopier le résultat dans le bon registre. Cela se fait donc en plusieurs étapes, chacune<br />

d'entre elle devant configurer le chemin de données.<br />

Et avec plusieurs bus ?<br />

Certains processeurs s'arrangent pour relier les composants du Datapath en utilisant plusieurs bus, et en utilisant un register file<br />

multiport. Cela permet de simplifier la conception du processeur ou d'améliorer ses performances. Par exemple, en utilisant<br />

plusieurs bus internes, un calcul dont les opérandes sont dans des registres et dont le résultat être stocké dans un registre peut<br />

se faire en une seule étape (souvenez-vous du début de ce chapitre). On gagne donc en rapidité.<br />

Étape 1 Étape 2 Étape 3<br />

Fetch Decode<br />

Récupération des opérandes, calcul,<br />

et enregistrement du résultat<br />

Pour cela, il suffit d'utiliser trois bus, reliés sur nos registres, l'ALU et le bus de données comme indiqué dans le schéma qui suit.<br />

www.siteduzero.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!