Modèle de von Neumann :
Le modèle de von Neumann est la structure de base de nos ordinateurs.
Le modèle de von Neumann est la structure de base de nos ordinateurs.
Quels sont les composants de la mémoire centrale ?
La mémoire centrale est formée de circuits électroniques élémentaires (les transistors) qui peuvent fonctionner selon deux états stables symbolisés par un \(0\) ou un \(1\).
Ces états sont appelés bits pour binary digits.
La mémoire centrale contient (enregistre, stocke) :
les données sur lesquelles on "calcule",
et le programme (une séquence d’instructions) qui décrit le calcul effectué.
Toute information stockée en mémoire centrale est représentée sous la forme d’une suite de bits c'est-à-dire une chaîne composée de \(0\) et \(1\).
Quel est le rôle de la mémoire centrale ?
Elle sert à stocker l’information qui peut être manipulée par le processeur.
Comment est stockée l’information en mémoire ?
La mémoire centrale est organisée en petites cellules appelées mots mémoires contenant l'information.
Un mot
est caractérisé par sa taille (très souvent de 8 bits qu'on appelle octet ou byte),
et est repéré dans la mémoire par une adresse (un numéro qui identifie le mot).
Les mots sont de tailles variables, par exemple, une machine 64 bits disposent d'instructions manipulant des mots de 64 bits.
Donc, un mot est un contenant accessible par son adresse et la suite de bits (0 ou 1) composant le mot représente le contenu ou valeur de l'information.
Les instructions et les données sont codées sur des mots mémoires : elles peuvent occuper un ou plusieurs mots mémoires selon la nature de l’ordinateur.
On appelle capacité de la mémoire le nombre de mots que celle-ci peut stocker (enregistrer).
Exemple : Ci-après une mémoire centrale.
Dans notre exemple, le mot a une longueur de \(16\) bits;
En rouge, le mot mémoire d'adresse \(00000101\) (5 en base 10).
Cette mémoire a une capacité de \(8\) mots de \(16\) bits, soit \(8×16=128\) bits (\(16\) octets).
Outre sa capacité, une mémoire centrale est caractérisée par un temps d’accès (le temps, exprimé en nanoseconde, que doit attendre le processeur pour obtenir une information délivrée par la mémoire centrale).
La mémoire centrale est aussi appelée mémoire vive, car c’est une mémoire volatile. On la nomme aussi RAM pour Random Access Memory (mémoire à accès aléatoire). Elle est accessible en lecture et écriture.
Aujourd’hui, outre la mémoire RAM, la plupart des ordinateurs possèdent une quantité relativement faible de mémoire non volatile. Celle-ci, contrairement à la RAM, est une mémoire qui ne perd pas ses données lorsque l'alimentation électrique est coupée. Il s'agit de la mémoire ROM (Read Only Memory) qui ne peut être que lue. Programmé une fois pour toutes lors de sa fabrication en usine, le contenu d'une ROM ne peut pas être modifié.
Une troisième mémoire est également présente dans nos ordinateurs : les mémoires de stockage (le disque magnétique ou disque dur, les bandes magnétiques).
Afin d'améliorer l'efficacité d'un ordinateur, une mémoire supplémentaire est insérée entre le processeur et la RAM. Elle est appelée mémoire cache (on dit aussi antémémoire).
Une mémoire cache (plus simplement un cache) est une mémoire rapide, de petite taille qui contient les mots mémoire les plus récemment utilisés, accélérant ainsi l'accès à ces mots.
Le bus de communication est un ensemble de fils qui transportent des signaux et permettent l’échange d'informations entre les différentes parties de l'ordinateur.
Chaque fil transporte ou non un signal : il est présent ou non. On représente par 1 un signal présent et par 0 un signal absent.
La largeur du bus définit le nombre de bits que le bus peut véhiculer en même temps.
Le processeur (CPU, pour Central Processing Unit) est le cerveau de l’ordinateur. Il permet d’exécuter les programmes (instructions-machine) placés en mémoire centrale.
Plus précisément, le processeur n’est capable d’exécuter une instruction que si elle se trouve dans la mémoire centrale.
Chaque processeur dispose d'un langage machine spécifique.
Le processeur est composé essentiellement de quatre parties :
3.1. Registres
Ce sont de petites mémoires (à l'intérieur du processeur) permettant le stockage d'informations que peut manipuler directement le processeur. Elles sont de faible capacité de stockage et d’accès très rapide. Leur nombre et leur taille sont variables en fonction du processeur.
On distingue les registres spécifiques des registres généraux.
Exemples de registres spécifiques :
Le Compteur Ordinal CO : il contient l'adresse de la prochaine instruction à exécuter. En fin d'exécution de l'instruction courante, le CO est incémenté de un.
Le registre instruction RI : il contient l'instruction à exécuter.
Le décodeur : Il pour fonction d'identifier l'instruction à exécuter qui se trouve dans le RI puis indiquer au séquenceur la nature de cette instruction.
Le séquenceur : Il exécute, rythmé par l'horloge du microprocesseur, une séquence de micro-commande (micro-instructions) réalisant le travail associé à cette instruction machine.
Le registre RAD : le registre d'adresse permet la sélection d'un mot mémoire via le circuit de sélection.
Le registre de données RDO : il permet l'échange d'information (c'est-à-dire le contenu d'un mot mémoire) entre la mémoire centrale et le processeur.
3.2. l’unité arithmétique et logique (UAL),
Elle a vocation à effectuer tous les calculs que peut réaliser le processeur : addition, soustraction, multiplication, comparaison, etc.
Elle renferme également des registres qui servent de mémoire pour les données (les opérandes) sur lesquelles vont porter les opérations à effectuer.
3.3. Unité de commande,
Elle exécute de manière séquentielle les instructions machines ; et pour cela utilise les registres et l’UAL du microprocesseur. L’unité de commande contient deux registres pour la manipulation des instructions (le CO, le RI), le décodeur, le séquenceur et deux registres (le RAD et le RDO) permettant la communication avec les autres modules via le bus interne. Pour finir, elle commande également les opérations de lecture et/ou d'écriture dans la mémoire centrale. etc.
3.4. Bus de communication interne.
Il permet l’échange des données et des commandes entre les différentes unités du processeur.
L'exécution d'une instruction se fait de manière séquentielle : tout d'abord, extraction de l'instruction puis décodage et enfin exécution de l'instruction.
Une phase ne démarre que quand la précédente est terminée.
Ils gèrent les échanges avec le monde extérieur.
Les périphériques d’entrée (clavier, souris, capteurs)
Les périphériques de sortie (imprimantes, écrans, robots)
Les périphériques d’entrée et de sortie (modems, disques magnétiques, écrans tactiles)
La structure de nos ordinateurs actuels n'est pas conforme au modèle initial de von Neumann car assez limité en termes d'efficacité. Toutefois, elle en garde les principes.
Une des façons d'améliorer les performances d'un processeur consiste à augmenter sa vitesse de calcul (la fréquence d'horloge qui lui est associée). Cependant, cette solution a montré ses limites : elle engendre des problèmes de dissipation (surchauffe) qui nécessitent des solutions coûteuses en termes de refroidissement.
Aujourd’hui, deux innovations importantes permettent d’augmenter la puissance de calcul d'un ordinateur tout en baissant les coûts de fabrication et en minimisant la consommation d’électricité et la production de chaleur :
la parallélisation de certaines opérations (faire plusieurs choses en même temps)
la gestion des entrées-sorties à l'aide de processeurs secondaires
Deux voies sont possibles :
Modèle actuel « de Von Neumann »
Un langage machine est un ensemble de séquences d’instructions et des blocs de données, en binaire, contenus dans la mémoire. C'est le langage natif d'un processeur, c'est-à-dire le seul qu'il puisse traiter.
Chaque processeur possède son propre langage machine. Autrement dit, il existe autant de langages machines qu'il y a de type de processeurs.
L’ensemble des instructions exécutables directement par le microprocesseur (instructions machines) constitue ce que l’on appelle le langage machine du processeur.
COP m reg1 reg2 champ2
\(00101\) 000 0000 xxxx \(0000000000000101\)
Cette instruction effectue l'addition entre le contenu du registre R0 et le nombre 5 et stocke le résultat de l'opération dans R0.
COP m reg1 reg2 champ2
\(00000\) 001 0011 xxxx \(0000000000101110\)
Cette instruction charge (place) le contenu du mot mémoire d'adresse 46 dans le registre R3.
COP m reg1 reg2 champ2
\(00000\) 000 0001 0000 \(0000000001100010\)
Cette instruction stocke (place) le contenu du registre R1 dans le mot mémoire d'adresse 98.
Le langage machine est difficilement compréhensible par l'homme.
Le langage d'assemblage est une variante symbolique du langage machine, plus lisible et facile pour nous. Ses symboles sont appelés mnémoniques.
Le langage d'assemblage est spécifique à un langage machine.
Exemples d'instructions en langage d'assemblage d'un processeur :
LDR R3 46
Cette instruction (LDR) charge le contenu du mot mémoire d’adresse 46 dans le registre R3 (par souci de simplification, nous utilisons des adresses mémoire codées en base 10.)
STR R1 98.
Place (stoke) le contenu du registre R1 dans le mot mémoire d’adresse 98.
ADD R0 #5
Additionne le nombre 5 (une valeur immédiate est identifiée grâce au symbole #) et la valeur stockée dans le registre R0, place le résultat dans le registre R0.
ADD R2 R5
Additionne la valeur stockée dans le registre R2 et la valeur stockée dans le registre R5, place le résultat dans le registre R2.
MOV R1 #23
Place le nombre 23 dans le registre R1.
Le programme assembleur (plus simplement l'assembleur) convertit (désassemble) ces mnémoniques en langage machine. Langage machine et langage d'assemblage sont des langages dits de bas niveau car attachés à la structure du processeur.
Donner le(s) rôle(s) de la mémoire centrale, du processeur, du bus de communication.
Pourquoi dit-on que la mémoire centrale est une mémoire volatile ?
C’est quoi la capacité, le temps d’accès d’une mémoire centrale ?
Reproduire à la main le schéma proposé du modèle de von Neumann.
"Un ordinateur à 32 bits" : Que signifie cette expression ?
Quel est le rôle du registre d'instruction, registre d'adresse, du compteur ordinal ?
Donner une différence entre une RAM et une ROM.
Quelle(s) différence(s) y a-t-il entre le modèle actuel de nos ordinateurs et le modèle initial de von Neumann ?