Académique Documents
Professionnel Documents
Culture Documents
- L’architecture Von Neumann, conçue par John Von Neumann à la fin des années 1940,
- L’architecture de Harvard, basée sur un relais de Harvard Mark I qui utilisait des systèmes
de mémoire séparés.
2. Principe de décomposition
Il consiste à effectuer un découpage en couches de complexités croissantes. La Figure 1 présente
un tel découpage dans le cas général de machines au sens de “dispositifs capables d’effectuer un
ensemble d’opérations élémentaires”. Une opération élémentaire d’un niveau supérieur est ainsi
décomposée en une suite d’opérations élémentaires du niveau inférieur. Le passage d’une suite
d’opérations (“programme”) d’un niveau n au niveau inférieur n-1 consistera en une traduction de
chaque opération de la suite du niveau n en la suite correspondante de niveau n-1.
S’agissant des langages de programmation, ce principe est également utilisé dans la définition de
machines virtuelles de haut niveau: la définition d’un jeu d’instructions d’une machine fictive permet
de faire abstraction des machines réelles et d’assurer simplement la portabilité des programmes (Java
Virtual Machine de Sun Microsystems, Common Language Interface de Microsoft .Net, ou encore
Python Virtual Machine de CPython). S’agissant de l’architecture des ordinateurs, la Figure 2 présente
la décomposition traditionnelle du fonctionnement d’un ordinateur. Le niveau supérieur est ici par
exemple le langage Python (et plus généralement les langages de programmation), le niveau le plus
bas est celui des circuits électroniques (transistors/portes logiques).
YUSSUFA 1
ESB 223
Les 3 niveaux supérieurs de la Figure 2 concerne l’architecture logicielle, les 3 niveaux inférieurs
concerne l’architecture matérielle. Notez que matériel et logiciel sont conceptuellement équivalents:
toute opération effectuée par logiciel peut l’être directement par matériel et toute instruction
exécutée par matériel peut être simulée par logiciel. La frontière entre matériel et logiciel (symbolisée
par le trait rouge) est donc arbitraire, et son choix est essentiellement facteur de coût. C’est à cette
frontière que l’on définit un processeur par la spécification du jeu d’instructions du processeur, de la
représentation binaire de ces instructions et de leur sémantique (“ce qu’elles font”). S’y ajoute
également la spécification d’une représentation symbolique des instructions, les mnémoniques, qui
constitueront le langage d’assemblage. Pour exprimer ces spécifications, il est nécessaire de disposer
d’un modèle formel de la structure d’un ordinateur et d’un processeur.
YUSSUFA 2
ESB 223
- Une unité centrale composée d’une unité de calcul (Unité Arithmétique et logique UAL) et
d’une unité de contrôle
- Une mémoire centrale composée d’un ensemble de cellules stockant des nombres binaires
représentant les programmes et les données
- Un ensemble de périphériques permettant à la machine d’interagir avec le monde extérieur
- Un canal de communications entre ces trois entités, appelé Bus, communément composé
de simples fils
Ces éléments cités ci-dessus sont reliés à base des voies de communication appelées : Bus.
5. Mémoire centrale
La mémoire centrale de l’ordinateur est constituée d’un ensemble ordonné de 2m cellules, chaque
cellule contenant un mot de n bits. Ces mots permettent de conserver indifféremment programmes
et données. On accède à n’importe laquelle de ces cellules au moyen de son adresse, nombre entier
compris dans l’intervalle [0, 2m-1]. Cet accès est en temps constant quelle que soit la valeur de l’adresse
(accès direct). Pour communiquer avec la mémoire, le bus est subdivisé en un bus d’adresse et un bus
de données. IL existe deux types d’accès:
La lecture transfère sur le bus de données le mot contenu dans la cellule dont l’adresse est
située sur le bus d’adresse.
L’écriture transfère dans la cellule dont l’adresse est sur le bus d’adresse, le mot contenu
sur le bus de données.
6. Périphériques
Les périphériques, ou organes d’Entrée/Sortie(E/S), permettent à l’ordinateur de communiquer avec
l’homme ou d’autres machines, et de mémoriser massivement des données ou des programmes dans
des fichiers. Ils se présentent à l’unité centrale le plus souvent sous la forme de plages d’adresses
mémoire dans lesquelles sont accessibles les registres de contrôle et d’état des contrôleurs de
périphériques.
YUSSUFA 3
ESB 223
Un ensemble de registres R1, R2,..., Rk: un registre est une mémoire de travail pour le
processeur, en général de même largeur qu’un mot mémoire. Leur accès est directement codé
dans les instructions machine. Ils sont utilisés comme opérandes et résultats de calculs, ou
encore pour stocker des adresses en mémoire. Leur présence est indispensable en raison de
la relative lenteur de la mémoire centrale par rapport à la vitesse du processeur.
Une unité de calcul: elle réalise les opérations arithmétiques (addition, soustraction,
multiplication, division) et logiques (et logique, ou logique, non logique, opérations bit-à-bit,
décalages/rotations). Les opérations flottantes sont souvent réalisées par une seconde unité
de calcul spécialisée. En plus du résultat en lui-même, ces unités calculent également des
indicateurs booléens (drapeaux): résultat nul, résultat non nul, retenue, dépassement de
capacité. Ces unités ont en général deux opérandes en entrée et fournissent un résultat en
sortie. Par construction elles calculent en permanence, fournissant un nouveau résultat
presque immédiatement après la modification d’une des opérandes.
Un ensemble de bus internes au processeur: ils relient entre eux les registres, les entrées des
unités de calcul et leurs sorties. Des interrupteurs permettent de commander le passage des
données entre les registres et les bus. L’ensemble registres, UAL et bus internes constituent le
chemin de données. Les commandes (interrupteurs, UAL, mémoire, ...) s’appelent des signaux
de contrôle.
Une unité de contrôle: elle contrôle dans le temps les unités de calcul et les interrupteurs pour
exécuter effectivement chaque instruction machine. Elle a en charge également l’exécution
séquentielle du programme: le programme étant stocké en mémoire centrale, l’unité de
contrôle dispose d’un registre spécial CP appelé compteur de programme, qui contient
l’adresse de la prochaine instruction à exécuter. L’unité de contrôle répète indéfiniment le
cycle instruction donné par l’algorithme suivant:
- Lire le mot stocké à l’adresse mémoire donnée par le registre CP et le stocker dans un
second registre spécial RI, appelé registre instruction
- Incrémenter le compteur de programme CP
- Décoder l’instruction stockée dans RI, aller chercher les opérandes éventuels en
mémoire, faire réaliser le calcul éventuel par l’unité de calcul et stocker le résultat
dans un registre ou en mémoire
- Un bus de données: qui assure le transfert des informations entre le microprocesseur et son
environnement, et inversement. Son nombre de lignes est égal à la capacité de traitement du
microprocesseur.
- Un bus d'adresses: qui permet la sélection des informations à traiter dans un espace mémoire
(ou espace adressable). Par exemple l’adresse d’une donnée à aller chercher en mémoire ;
YUSSUFA 4
ESB 223
Chaque composant d’une carte micro-programmée doit être accessible par le CPU. Par
exemple, si le CPU est en train de sauvegarder une variable, il faut que le composant RAM
soit sélectionné et que les autres composants soient inhibés. Afin d’ordonner le système, une
plage d’adresses est réservée à chaque composant. La fonction ayant pour tâche l’attribution
des adresses s’appelle « décodage d’adresses »
YUSSUFA 5