Site de la spécialité ISN du lycée
Louis Marchal
Architecture d'un ordinateur
La page sur l'architecture au format PDF
Note : cette page est seulement une première approche du fonctionnement d'un ordinateur.
Les descriptions de tous les mécanismes, de toutes les fonctions, de tous les composants sont
simplifiés et réduits à l'essentiel.
Un ordinateur est composé de multiples parties qui n'apparaissent pas ici !
De plus ces systèmes sont en constante évolution et les chiffres donnés ici peuvent
rapidement devenir obsolètes.
Vous trouverez de nombreuses informations complémentaires sur le Site du Zéro
Un ordinateur depuis zéro
I. La théorie
1) Introduction
Partons de l'addition de deux nombres écrits sous forme binaire.
Exemple : 101101 + 1110101 = 10100010 car :
0 + 0 = 0
1 + 1= 0 et une retenue de 1
0 + 1 = 1
1 + 1+ 1 = 1 et une retenue de 1.
Un booléen est une variable qui peut prendre deux valeurs qui peuvent être (VRAI ou FAUX)
ou (0 ou 1), ce qui correspond à un bit (binary digit). Dans toute la suite, on appellera un
booléen un nombre qui vaut 0 ou 1.
Pour additionner deux booléens A et B , on voit que : le bit de poids faible est 1 si A ou B
valent 1 mais que A et B ne valent pas 1 ensemble. C'est la fonction booléenne XOR.
La retenue vaut 1 si A et B valent 1 : c'est la fonction booléenne AND.
Exercice : écrire un algorithme dans lequel l'utilisateur entre deux chiffres (0 ou 1).
L'algorithme calcule le bit de poids faible de la somme et la retenue.
Marchalisn file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
1 sur 24 05/04/2014 23:08
2) Fonctions booléennes
Pour approfondir on pourra utiliser le lien suivant :
Booléen-université de Lyon
Une fonction booléenne est une fonction qui prend pour paramètres des booléens et qui
retourne un ou des booléens.
Les plus simples sont :
NOT qui à un booléen associe son contraire
OR qui à deux booléens A et B associe 1 si A ou B valent 1.
AND qui à deux booléens A et B associe 1 si A et B valent 1.
XOR qui à deux booléens A et B associe 1 si A ou B valent 1, mais que A et B ne valent pas
tous les deux 1.
En combinant ces fonctions booléennes on peut obtenir d'autres fonctions booléennes.
Ces fonctions se caractérisent par leurs tables de vérité. Voici celle de la fonction OR :
OR 0 1
0 0 1
1 1 1
Exercice : écrire les tables de vérité de AND et XOR.
3) Les circuits logiques
On peut aussi représenter ces fonctions booléennes par des circuits logiques :
Marchalisn file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
2 sur 24 05/04/2014 23:08
On peut alors schématiser la somme de deux booléens comme ci dessous :
Tous ces circuits sont dits "combinatoires" car leur résultat ne dépend que des données
entrées.
D'autres circuits, dits "séquentiels" dépendent des entrées, mais aussi de leur état antérieur :
ils sont utilisés pour les mémoires des ordinateurs
Le circuit que l'on vient de voir permet d'additionner deux nombres à un chiffre, d'autres
circuits (plus complexes) permettent d'additionner des nombres à n chiffres en binaire, et
d'autres encore de faire d'autres opérations élémentaires.
4) Assembleur
Les opérations élémentaires que peut réaliser un processeur sont en petit nombre et
Marchalisn file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
3 sur 24 05/04/2014 23:08
dépendent de la conception du processeur. Elles sont de quatre types : les échanges a
vec la
mémoire, les opérations arithmétiques, les opérations logiques et les contrôles (qui
permettent de faire des sauts, des boucles etc...)
L'ensemble de ces opérations est appelé un "jeu d'instructions".
On exprime souvent ces instructions dans un langage de bas niveau (très proche de la
machine) appelé assembleur.
Pour comprendre ce qui suit, il faut savoir que le processeur dispose de moires très
rapides, mais en petit nombre, qui s'appellent des "registres".
On suppose qu'on a ici deux registres A et B.
Voyons à quoi peuvent ressembler les instructions cessaires pour faire une somme de deux
nombres :
LDA 11 : transfère ce qui est stocké dans la case mémoire d'adresse 11 dans le registre A (LD
comme LOAD)
STA 11 : fait l'opération inverse (ST comme STOCK)
ADD A: ajoute au registre A ce qu'il y a dans le registre B et le stocke dans A
Supposons que l'on veut additionner le contenu de la case mémoire 11 et celui de la case
mémoire 22 et mettre le résultat dans la mémoire 30. Voici une suite d'instructions possible :
LDA 11, LDB 22, ADD A, STA 30
Remarque : les lectures et les écritures dans la mémoire vive nécessitent une synchronisation
qui est obtenue grâce à une horloge.
Par exemple pour effectuer STA 11 : le processeur met les différents fils qui composent le bus
d'adresses (la voie de communication des adresses entre le processeur et la mémoire) à
l'expression de 11 en base 2 et les fils qui composent le bus de données dans un état qui
correspond au contenu de A. Au signal de l'horloge, chaque case mémoire compare son
numéro avec celui qui circule sur le bus d'adresses et la case 11 se reconnaît et enregistre ce
qui arrive sur le bus de données.
5) Le langage machine
Il faut maintenant se souvenir que l'ordinateur ne comprend que des 0 et des 1... Il faut donc
traduire les instructions en langage binaire.
Dans un ordinateur très simple on peut par exemple numéroter les différentes instructions et
stocker dans des cases numérotées successives la suite des instructions à effectuer.
Imaginons que nous ayons attribué les numéros suivants à nos instructions et registres :
A B LDA LDB ADD STA
0 1 2 3 4 5
Chaque instruction va correspondre à deux cases en mémoire : l'une pour le numéro de
l'instruction, l'autre pour l'argument
Par exemple, le programme précedent devient :
100 101 102 103 104 105 106 107
2 11 3 22 4 0 5 30
Ceci est vraiment illisible, surtout si tous les nombres de ce tableau sont écrits en binaire !
Le langage que l'on obtient alors est le "langage machine", propre à chaque processeur....
On a aussi un registre qui s'appelle le compteur de programme (PC ou aussi compteur ordinal)
qui est initialisé à 100 pour notre exemple.
Pour effectuer ce programme le processeur :
charge le contenu des cases mémoires d'adresses PC et PC+1 dans des registres
décode le premier nombre comme une instruction et le deuxième comme son argument
exécute l'instruction
Marchalisn file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
4 sur 24 05/04/2014 23:08
incrémente PC de 2
Voyons quelques instructions supplémentaires pour comprendre comment fonctionne une
boucle (ces instructions peuvent évidemment être différentes d'un ordinateur à l'autre, même
si les principes restent identiques) :
DEC A : enlève 1 au registre A
JMP n : met le PC à l'adresse n
JMPZ n : met le PC à l'adresse n si A vaut 0
On voudrait programmer l'algorithme suivant :
Si ce qu'il y a dans la case 11 vaut 2, lui ajouter ce qu'il y a dans la case 12 sinon lui ajouter
ce qu'il y a dans la case 13. Stocker le résultat dans la case 30.
PC Instruction
100 LDA 11
102 DEC A
104 DEC A (si A valait 2, on a maintennat 0 dans le registre A)
106 JMPZ 114 (si A vaut zéro on saute à l'instruction stocké à la case 114)
108 LDA 11 (on recharge la mémoire 11 car on a enlevé 2 à A)
110 LDB 13 (si A ne valait pas 0, voici ce que l'on fait)
112 JMP 118 (la suite est au n°118)
114 LDA 11
116 LDB 13
118 ADD A
120 STA 30
Le passage d'un langage évolué au langage machine s'appelle la compilation.
Certains langages ne sont pas compilés, mais sont interprétés : le programme n'est pas traduit
d'un bloc en langage machine, mais chaque instruction est interprétée et exécutée (après un
passage en langage machine). Python est un langage "semi-interprété"....
Certains programmes sont distribués en mode compilé (sans la source, c'est à dire le
programme en langage évolué), ce qui permet l'utilisation du programme, mais rend sa
compréhension et sa modification éventuelle très difficiles.
II.Architecture matérielle
Pour comprendre comment et notre addition va s'effectuer, commençons par ouvrir un
ordinateur.
Nous identifierons les principaux composants, puis nous étudierons le processeur, les
mémoires et les programmes
1) Les principaux composants
Après avoir enlevé le capot d'un (vieil) ordinateur voici ce que l'on découvre :
Marchalisn file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
5 sur 24 05/04/2014 23:08
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !