Mise à jour le, 29/12/2019
Visiteurs N°
Accueil |
Sommaires |
Micro-ordinateurs |
Physique |
Technologies |
Formulaires Mathématiques |
Accès à tous nos Produits |
Aperçu de tous nos Produits |
Nos Leçons aux Formats PDF |
Informatique |
Forums |
Divers et autres |
Les Ordinateurs à Registres | Bas de page |
Programmes - Phases de Traitement de l'Information par l'Ordinateur :
3. - PROGRAMMES
Sur le plan matériel, le programme n'est pas considéré comme faisant partie de l'ordinateur ; il constitue le software (ou logiciel) et est " l'outil " indispensable pour l'exploitation de l'ordinateur.
Certains programmes sont achetés directement avec la machine, d'autres à part pour étendre la capacité de traitement du système.
Le programme le plus important, fourni en général directement au moment de l'achat d'un ordinateur, est un traducteur de langage ; il traduit en code binaire (code ou langage machine), les instructions exprimées dans un langage symbolique ou mnémotechnique pour que l'ordinateur les comprenne. On peut disposer de différents types de traducteurs : assembleurs, interpréteurs, compilateurs ; nous reverrons par la suite, plus en détail, ces divers traducteurs.
Le langage le plus utilisé par les micro-ordinateurs est le BASIC qui fait partie d'une famille de langages très évolués et facile à utiliser. On dispose d'interprètes BASIC de différentes versions qui diffèrent par le nombre et la puissance des instructions.
4. - PHASES DE TRAITEMENT DE L'INFORMATION PAR L'ORDINATEUR
Pour expliquer le fonctionnement d'un ordinateur, prenons en considération une des opérations arithmétiques élémentaires : l'addition. Pour cela, nous devons instruire l'ordinateur afin qu'il effectue l'opération proposée.
En imaginant, effectuer une addition d'une façon traditionnelle, on peut décrire l'opération simplement avec une seule phase :
additionner le nombre A au nombre B.
Ou alors, on peut décomposer l'opération en diverses phases :
se munir d'une feuille
prendre un crayon
écrire le nombre A
inscrire le nombre B
effectuer l'addition
Chaque phase peut, à son tour, être décomposée ; par exemple, pour A = 164, la phase 3 peut être à son tour subdivisée de la façon suivante :
a - écrire 1
b - écrire 6
c - écrire 4
Chaque phase compréhensible et exécutable par l'UC est une instruction.
Selon le type, une UC est capable de comprendre un certain nombre d'instructions qui varie environ de 40 à 200.
On sait que les ordinateurs, et donc l'UC aussi, sont formés par des circuits digitaux et que ceux-ci fonctionnent en occupant alternativement deux états : 0 ou 1. Les instructions doivent être des séquences de 0 et de 1. Par exemple, pour une machine, le nombre binaire 1011 0010 peut représenter une addition. Ce nombre sera donc appelé code opération et on l'inscrit dans un emplacement mémoire afin de nous permettre de faire nos premiers pas dans la création d'un programme (figure 6).
Dans deux autres emplacements de la mémoire on écrit, en code binaire, les deux nombres qui seront additionnés : par exemple 164 et 22.
Le nombre 164 qui vaut 1010 0100 sous forme binaire est placé à l'adresse 0000 0100 0010 0100 ; de la même façon, le nombre 22 dont le code binaire vaut 0001 0110 est écrit à l'adresse 0000 1110 0011 0011 (figure 7).
On sait que les mots formés avec "0" et "1" reportés figure 7 sont le seul langage que la machine comprend, mais un tel langage n'est pas pratique pour l'opérateur qui peut facilement échanger un "0" avec un "1" ou vice versa.
En outre, chaque ordinateur a son propre langage particulier et la même instruction peut avoir un code opération différent selon le type de machine.
Pour éliminer toute référence à une machine spécifique, on utilisera un moyen symbolique ou mnémotechnique pour indiquer le même code opération ; on utilisera donc le terme ADD (qui, en anglais signifie additionner) pour le code opération de l'addition.
Puisque les adresses aussi sont assez longues à écrire, elles seront désignées d'une façon symbolique : la première adresse sera X, la deuxième Y. On a donc introduit ainsi les adresses symboliques.
Cette façon d'indiquer instructions et adresses est très importante car, comme on le verra par la suite, en plus d'offrir une facilité d'écriture des programmes, elle est la base d'un langage symbolique, connu sous le nom de langage assembleur.
Revenons maintenant à l'addition. L'ordinateur ne dispose pas encore de toutes les informations nécessaires ; en fait, dans la mémoire, se trouve une instruction qui lui dit d'additionner deux nombres qui sont écrits dans d'autres emplacements mémoires. Mais celle-ci peut contenir d'autres informations.
L'instruction, pour l'instant, ne nous dit pas où se trouvent les nombres à additionner. Il est donc nécessaire d'ajouter cette information, simplement en écrivant à la suite du code opération de l'instruction, les adresses des deux termes de la somme et l'adresse où le résultat doit être stocké comme on le voit figure 8.
En utilisant la forme symbolique et mnémotechnique, l'instruction est donc la suivante :
ADD X, Y, Z, W
et l'ordinateur comprend :
- prendre la donnée contenue dans la cellule dont l'adresse est X, l'additionner à celle qui est contenue dans l'adresse Y et mettre le résultat à l'adresse Z. Continuer en lisant l'instruction dont le code opération se trouve à l'adresse W.
Il est important de remarquer que l'instruction est formée de plusieurs parties : un code opération et quatre adresses.
Cette solution était adoptée par les premiers ordinateurs appelés à 3 + 1
En effet, l'information relative à l'adresse W, dans laquelle se trouve la prochaine instruction à exécuter, devient inutile si on impose que toutes les instructions doivent se succéder l'une après l'autre dans la mémoire, comme indiqué figure 9.
Puisqu'une instruction ne dit pas où se trouve l'instruction suivante, il est nécessaire qu'un dispositif tienne compte des instructions au fur et à mesure qu'elles sont effectuées, de façon à indiquer continuellement à l'ordinateur à quel point du programme il se trouve.
Il s'agit d'un registre particulier, appelé compteur de programme, en abrégé PC, qui sont les initiales des termes anglais Programm Counter.
Rappelez-vous qu'un registre est un ensemble de bascules, chacune pouvant conserver un bit, c'est-à-dire un "0" ou un "1".
Le compteur de programme se trouve dans l'UC de l'ordinateur. Pour l'instant, il n'est pas nécessaire de connaître d'autres détails sur son fonctionnement, qui peut être très complexe quand on doit sauter d'une partie à l'autre du programme.
Dans la notation symbolique, une instruction à trois adresses s'écrira :
ADD X, Y, Z
qui signifie : additionner le nombre contenu dans la cellule d'adresse X au nombre contenu à l'adresse Y et mettre le résultat à l'adresse Z.
On peut faire encore un pas en avant en épargnant une adresse, simplement en positionnant le résultat obtenu dans la cellule mémoire où se trouve le deuxième nombre à additionner ; celui-ci aura alors disparu et cédé sa place au résultat (figure 10).
Dans un tel cas, l'instruction de l'addition sera la suivante :
ADD X, Y
c'est-à-dire additionner le nombre contenu dans la cellule d'adresse X au nombre contenu à l'adresse Y et stocker le résultat à l'adresse Y.
Une structure de programme de ce type permet une économie remarquable de mémoire : elle est adoptée par de nombreux ordinateurs de moyennes et grandes puissances.
Les micro-ordinateurs économisent encore de la mémoire par le biais d'instructions à une seule adresse qui indique où se trouve le premier terme.
Il est clair que l'ordinateur doit savoir où se trouve le second terme ; dans la pratique, il doit toujours se trouver à une place bien précise, connue de l'ordinateur. C'est un registre spécial appelé accumulateur (figure 11).
Le résultat de l'opération reste dans l'accumulateur. Sous forme symbolique, l'instruction devient :
ADD X
c'est-à-dire additionner au contenu de l'accumulateur, le contenu qui se trouve à l'adresse X.
Parfois, on écrit cette instruction sous la forme :
ADD A, X
où A est l'accumulateur.
Il est très important de ne jamais confondre les adresses et leurs contenus. La figure 12 met en évidence une telle différence, en prenant comme exemple l'addition 164 + 22.
Rappelez-vous toujours que dans ce cas précis, la deuxième partie de l'instruction ADD X n'indique jamais le nombre que l'on doit additionner mais seulement l'adresse où celui-ci est stocké.
Les instructions de ce type sont très brèves et dans le cas de l'addition, occupent deux emplacements de mémoire ; cela entraîne malgré tout des programmes qui contiennent un plus grand nombre d'instructions, comme nous allons le voir.
Si par exemple on additionne le nombre 164 qui est stocké à l'adresse Y au nombre 22 qui se trouve à l'adresse X et que l'on met le résultat à l'adresse Y, on obtient la structure du programme de la figure 13.
Avec les ordinateurs qui travaillent avec deux adresses, on écrit simplement :
ADD X, Y
ainsi, cette instruction occupe trois emplacements de mémoire.
L'ordinateur exécute l'addition en envoyant les deux nombres à l'unité arithmétique et logique (ALU), comme on le voit figure 14. Il prélève donc le résultat obtenu dans l'UAL et le stocke dans l'adresse Y, comme indiqué figure 15.
Dans le cas des ordinateurs à instructions à une seule adresse, le programme devient plus long puisqu'il est nécessaire de changer d'abord la donnée voulue, ici le premier terme de l'addition, dans l'accumulateur.
Pour cela, on utilise une nouvelle instruction qui effectue le déplacement, c'est l'instruction :
LOAD
mot anglais qui signifie "charger". La première instruction du programme sera :
LOAD A, Y
que l'ordinateur interprète :
Charger dans l'accumulateur A la donnée contenue dans l'emplacement mémoire dont l'adresse est Y.
La situation avant exécution de l'instruction est représentée figure 16, tandis que celle de la figure 17 montre l'état de l'accumulateur et de la mémoire après exécution.
Après avoir transféré le nombre 164 dans l'accumulateur, c'est-à-dire après avoir effectué l'instruction LOAD A, Y, l'instruction d'addition ADD X peut être exécutée.
L'ordinateur envoie à l'UAL le nombre contenu à l'adresse X (figure 18) qui l'additionne au contenu de l'accumulateur ; le résultat est stocké dans ce même accumulateur (figure 19) prenant ainsi la place du premier membre de l'addition (164) qui s'y trouvait.
Maintenant, si l'on veut obtenir la même situation que celle qui existe dans les ordinateurs utilisant des instructions à deux adresses, c'est-à-dire ici que le résultat de l'addition soit stocké à l'adresse Y, il est nécessaire d'utiliser une autre instruction.
Elle doit faire le transfert du résultat de la somme contenue dans l'accumulateur à l'emplacement mémoire d'adresse Y, on l'indiquera de la façon suivante :
LOAD Y, A
c'est-à-dire :
charger le contenu de l'accumulateur dans la cellule mémoire d'adresse Y.
De cette façon, on obtient la situation de la figure 20.
A la lumière de ce que nous venons de voir, on s'aperçoit que l'instruction à une seule adresse du type ADD X prend moins de place en mémoire qu'une instruction à deux adresses du type ADD X, Y mais que le nombre de cellules mémoires nécessaire pour effectuer le programme complet d'addition des deux nombres donnés est beaucoup plus grand dans le premier cas.
LES ORDINATEURS A REGISTRES
On a vu comment une simple addition de deux nombres demande à l'ordinateur différentes étapes et le déplacement de données de l'UC à la mémoire et vice versa.
Il faut un certain temps pour chaque déplacement, en plus, l'instruction correspondante (LOAD A, Y ou LOAD Y, A) doit contenir l'adresse de la cellule mémoire en question.
Pour accélérer ces opérations, de nombreux ordinateurs, entre autres les microprocesseurs 8 bits les plus évolués (Z80, 8080, etc ...) possèdent certains registres internes à l'UC ; l'ordinateur peut y accéder plus facilement et plus rapidement.
NOTA :
Dans cette leçon, on a vu l'organisation et le fonctionnement général de l'ordinateur. On s'est contenté en particulier d'observer la façon dont travaille l'UC avec la mémoire.
Dans celle-ci, se trouve le programme qui indique au microprocesseur quelles opérations il doit effectuer ; en plus, on y trouve les données à traiter.
Chaque programme est divisé en étapes successives, appelées instructions. Le type et le nombre des instructions possibles déterminent la puissance de l'ordinateur.
En suivant les différentes phases du programme, on a vu quels étaient les éléments fondamentaux de l'UC et leur fonctionnement a été décrit d'une façon élémentaire par des phrases du type suivant : "la donnée est transférée de la mémoire à l'accumulateur" ou "l'UAL additionne les deux nombres et stocke le résultat dans l'accumulateur".
Pour que cela fonctionne, il faut un groupe de circuits qui distribue les ordres aux différents organes, c'est le rôle de l'Unité de Commande, comme le montre la figure 21 sur laquelle est représentée l'UC.
Il faut savoir que cette organisation n'est qu'un exemple et qu'il existe d'autres variantes. En outre, le fonctionnement de l'UC n'est pas si simple, comme on l'a vu jusqu'à présent ; en plus des registres considérés, il y en a d'autres dont on parlera dans les leçons suivantes.
Testez vos
connaissances sur cette 2ème théorie avant de continuer les autres leçons en cliquant ici.
Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet. | Haut de page |
Page précédente | Page suivante |
Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web.
Version du site : 10. 4. 12 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 02 Septembre 2016.
Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en Septembre 2016.