Leçon
La théorie — Un processeur miniature : le Little Man Computer
Le cycle de recherche–décodage–exécution décrit le traitement de chaque instruction par un processeur. La recherche copie PC dans MAR, lit la case désignée dans MDR, copie le contenu de MDR dans CIR et ajoute 1 à PC. Le décodage sépare l’instruction en une opération, donnée par le chiffre des centaines, et une adresse, donnée par les deux derniers chiffres. Seuls 901, 902 et 000 font exception : ce sont les codes complets de INP, OUT et HLT, qui ne désignent aucune case. L’exécution réalise l’opération demandée, avec éventuellement une lecture ou une écriture dans une case supplémentaire, par l’intermédiaire de MAR et MDR.
Ce que signifie chaque symbole
PC- compteur ordinal : l’adresse de la prochaine instruction à lire
MAR- registre d’adresses mémoire : l’adresse de la case où va avoir lieu une lecture ou une écriture
MDR- registre de données mémoire : la valeur qui vient d’être lue ou qui va être écrite
CIR- registre d’instruction courant : l’instruction en cours d’exécution
ACC- accumulateur : le registre où ADD, SUB et LDA placent leur résultat
- Suppose
- Le Little Man Computer de Stuart Madnick (MIT, 1965) ne précise pas ce qui se passe lorsque SUB donne un résultat négatif ou qu’ADD dépasse 999. Dans ce simulateur, l’accumulateur peut contenir une valeur de −999 à 999 : BRP teste donc son signe. Un résultat hors de cet intervalle provoque un dépassement de capacité et arrête l’exécution, sans retour à l’autre extrémité de l’intervalle. Les simulateurs pédagogiques diffèrent sur ce point. Un programme dont l’accumulateur reste entre 0 et 999 se comporte de la même façon dans tous.
Problème entièrement résolu
-
Pourquoi 2 × 99 demande 801 instructions et 99 × 2 seulement 25 4 étapes
Cliquez sur 2 × 99, méthode lente, puis remplacez les valeurs d’entrée par 99 et 2. Dans les deux cas, le programme affiche 198. Comptez les instructions exécutées à chaque fois, trouvez la formule et déterminez combien d’instructions exige l’ordre des facteurs le moins favorable pour un produit qui tient dans une boîte aux lettres.
Ouvrez ce problème dans l'outil
-
Avant la boucle, le programme exécute 2 INP et 2 STA, soit 4 instructions. Le corps de la boucle contient LDA b, BRZ, SUB one, STA b, LDA total, ADD a, STA total, BRA loop : 8 instructions, exécutées autant de fois que la valeur de b.
-
Lorsque b atteint zéro, la boucle n’exécute plus que LDA b et BRZ. LDA total, OUT et HLT terminent ensuite le programme : 5 instructions supplémentaires. Le total est donc 4 + 8b + 5 = 8b + 9. La valeur de a n’intervient pas.
-
Pour b = 99, on obtient 8 × 99 + 9 = 801 ; pour b = 2, on obtient 25. Le tableau des résultats affiche 801 dans le premier ordre et 25 dans le second.
-
Le plus grand produit qui tient dans une case est 999. Avec 1 puis 999 en entrée, la boucle effectue 999 passages : 8 001 instructions. Avec 999 puis 1, elle ne passe qu’une fois : 17.
Réponse
8b + 9 instructions, où b est la seconde entrée. Pour obtenir le même produit, 999, il faut 8 001 instructions dans un ordre et 17 dans l’autre, soit environ 470 fois plus. Si le programme comparait d’abord ses entrées pour faire porter la boucle sur la plus petite, le coût ne dépasserait jamais 8 × 31 + 9 instructions, auxquelles s’ajouterait la comparaison : le plus petit facteur d’un produit inférieur ou égal à 999 ne dépasse pas 31.
-
Parcours
Comment un ordinateur exécute un programme
Références (4)
- Where the third insight's phrase comes from: the connecting tube between CPU and store, named the von Neumann bottleneck, and the remark that much of its traffic is not data but the names of data: John Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs." Communications of the ACM 21(8), 613–641, August 1978. The 1977 ACM Turing Award Lecture.
- The date the first insight gives for the stored-program idea first running: The University of Manchester, "How a 70-year-old 'Baby' changed the face of modern computing." News, 21 June 2018.
- The machine itself: Madnick's 1965 design, the instruction codes, and the fact the page's assumes rests on, that a negative or over-999 result is left undefined: "Little man computer." Wikipedia, read 14 October 2026.
- A school simulator's instruction table, with BRP described as branching when the accumulator is zero or positive, the sign convention this page follows: 101computing.net, "LMC Simulator."