Maintenant que nous avons vu quelle était la structure générale d'un ordinateur, nous allons nous intéresser plus précisément au rôle du processeur et de la mémoire(vive), et voir comment peuvent être dictées les instructions à l'unité de contrôle du processeur.
La mémoire contient plusieurs milliards de circuits mémoires un bit, qui sont organisés en cases mémoires de huit, seize, trente-deux, soixante-quatre bits. Chaque case a une adresse unique, leur nombre détermine la capacité de la mémoire vive de l'ordinateur.
Le processeur ne possède qu'un très petit nombre de cases mémoires très rapides appelées des registres dont la capacité dépasse rarement quelques dizaines d'octet pour des raisons de coût et de place. Source Wikipedia
Ces registres peuvent stocker des données et des adresses de la mémoire.
Le processeur est composé de transistors assemblés de façon à lui permettre de réaliser un petit nombre d'opérations simples, mais à réaliser ces opérations très rapidement.
Par exemple pour échanger des données avec la mémoire, le processeur utilise deux instructions permettant de:
Nous allons étudier un processeur simplifié avec deux registres disposant d'un jeu d'instructions restreints:
Dans les premières machines, les opérations à effectuer étaient écrites sur des bandes perforées qui en défilant indiquaient au processeur la suite d'opérations à réaliser.
"DrehorgelLochkarte".
Licensed under Public Domain via Wikimedia Commons.
Puis cette idée a été abandonnée au profit d'une autre: celle d'enregistrer le programme dans la mémoire avec les données. Il convient alors de stocker les instructions du programme sous forme électrique dans la mémoire, on parle alors de langage machine.
Par exemple, on va utiliser le codage suivant pour les instructions:
instruction | codage |
---|---|
LDA | 0 |
LDB | 1 |
STA | 2 |
STB | 3 |
ADD | 4 |
DEC | 5 |
En ce qui concerne les arguments des instructions, cases mémoires sont codées par leur adresse numérique et les registres A at B sont codés par 0 et 1.
Si on désire additionner le contenu des valeurs contenues dans les cases mémoires 5 et 6, et les stocker dans la case mémoire 7, on réalise la suite d'instructions suivantes:
LDA 5,LDB 6,ADD A,STA 7
soit:
0 5,1 6,4 0,2 7
Il suffit maintenant d’ajouter au processeur un nouveau registre qui débute à 100, le compteur de programme ou PC (program counter), sur lequel on va stocker le programme à exécuter, et à chaque étape, le processeur :
LOAD
),Si on désire réaliser des boucles et des tests, on ajoute trois instructions au processeur qui seront codées ainsi:
instruction | codage | signification |
---|---|---|
JMP | 7 | Fait "sauter"(JUMP) le programme vers une ligne donnée en argument |
JMPZ | 8 | Comme JUMP, mais uniquement si le registre A est 0. |
END | 9 | Termine le programme |
Pour plus de détails voir le chapitre 15- L'organisation de l'ordinateur du manuel.
Faire les exercices 15.1, 15.2 et 15.3 du manuel.