Présentation sur un premier exemple
Après avoir vu :
- le binaire et l’hexadécimal,
- quelques circuits électriques implémentant les fonctions logiques ET et OU,
- quelques montages avec des transistors implémentant d’autres fonctions logiques comme NOT et XOR, des bascules, des compteurs et des mémoires…
…on montre un diagramme séquentiel trouvé « dans la nature », afin d’expliquer ce qu’est une horloge et de donner quelques exemples de fréquences.
À chaque clic d’horloge, en combinant des opérations logiques élémentaires, le processeur effectue les opérations suivantes :
- lecture de la valeur dans le registre PC (pour Program Counter), qui vaut
00
à l’initialisation ; - chargement de l’instruction située à l’adresse PC depuis la mémoire vive (RAM) dans le registre CI (pour Current Instruction) ;
- « décodage » de l’instruction, ici ProkPap décode les trois quartets de l’instruction, notés I, J et K : I indique le type d’opération à effectuer et le couple JK représente souvent un emplacement dans la RAM (voir le tableau ci-dessous) ;
- exécution de cette instruction ;
- si l’instruction ne résulte pas par un saut, ajouter 1 à PC.
Plus simplement :
- où en est-on ?
- que doit-on faire (récupération) ?
- que doit-on faire (décodage) ?
- faisons-le !
- passons à la suite !
Voici une représentation schématique de la RAM avec un premier programme, sans doute le plus simple que l’on puisse écrire. Chaque « case mémoire » est repérée par l’abscisse K et l’ordonnée J (dirigée vers le bas) et peut stocker 12 chiffres binaires (donc 3 quartets).
Questions
- Combien y a-t-il d’emplacements dans la RAM ?
- Quelle est la taille de la mémoire en octets ?
Voici une représentation des registres. Chacun peut stocker 12 bits, sauf PC qui en stocke 8 et O qui en stocke un seul.
Exécutons le premier programme !
- Combien vaut PC ?
00
. - À l’adresse
00
(J=0 et K=0) on trouve l’instructionA00
que l’on charge dans CI. - On a pour cette instruction I=A, J=0 et K=0, et d’après le tableau ci-dessous (dans la dernière ligne) il faut arrêter le programme.
Note
- Un registre est un type de mémoire rapide et « proche » du processeur.
- PC est aussi parfois appelé IC pour Instruction Counter.
- Le « décodage » se fait « mécaniquement » ou plutôt électroniquement avec les fonctions logiques qui ont été combinées.
- Techniquement l’étape 4 fait partie de l’étape 3 car elle est réalisée directement.
- Pour I=7 (
IN
) on peut imaginer que le processeur fait une pause pour qu’on ait le temps de lui communiquer la valeur.
Pour donner une image simplifiée d’un processeur qui « décode », on peut imaginer un circuit intégré branché de cette façon :
À vous d’écrire votre premier programme : afficher zéro et s’arrêter.
Deuxième exemple
user + 1
Note
Liste de tous les MV :
- 201 : R → A
- 202 : R → B
- 210 : A → R
- 212 : A → B
- 220 : B → R
- 221 : B → A
Troisième exemple
affichage du max de deux valeurs
Exercices
- Compte à rebours de la valeur à l’adresse
FF
jusqu’à zéro.
TODO
Assembleur, assemblage, organise la mémoire à partir des mnémoniques, des labels…
Parler un peu de calculabilité.
V2, processeur de plus haut niveau, avec :
- Boutons
- PWS
- ALU
Origine et remerciements
ProkPap est le digne successeur d’OrdiPapier, qui avait quelques défauts. ProkPap a des entrées et sorties plus simples et utilise de l’hexadécimal.
Merci à Bordeaux (Philippe?), stagiaire et formation NSI.