Vous êtes sur la page 1sur 15

Architecture des ordinateurs

CHAPITRE I. Structure et fonctionnement


d’un ordinateur

I. Schéma simplifié d’un ordinateur


Un ordinateur est un assemblage de composants logiques qui fonctionne de façon
logique ou combinatoire. Il comprend 5 parties :
(4)
Mémoire

(5) (5)

Entrée CU (1) Sortie

ALU (2)

CPU
(3)

(1) Unité de contrôle (CU : control unit)


(2) Unité arithmétique et logique (ALU : arithmetic and logical unit)
(3) Unité centrale (CPU : central processing unit)
(4) Mémoire
(5) Périphériques d’entrée/sortie

1. Mémoire centrale
Une mémoire peut être représentée comme une armoire de rangement
constituée de différents tiroirs. Chaque tiroir représente alors une case mémoire qui
peut contenir un seul élément : des données. Le nombre de cases mémoires pouvant
être très élevé, il est alors nécessaire de pouvoir les identifier par un numéro. Ce
numéro est appelé adresse. Chaque donnée devient alors accessible grâce à son
adresse.

ENSP Dr A. M. CHANA LEMALE Page 5


Architecture des ordinateurs

Organisation d’une mémoire

Une case de la mémoire peut contenir soit une adresse, soit une donnée et
dans chaque cas la représentation est sous forme d’une chaîne de bits. Chaque case
ou chaque mot d’une mémoire est identifiée par une adresse qui est unique. Les
emplacements sont disposés de façon séquentielle et portent les numéros 0 à -1, n
étant le nombre de bits représentant une adresse mémoire.
Dans une mémoire de taille mots les adresses varient de 0 à -1. A chaque
mot de la mémoire on associe aussi 2 entités : son unique adresse et son contenu qui
peut varier. Généralement la mémoire d’un ordinateur est décrite par 2 paramètres :
la taille d’un mot et le nombre de mots que comporte la mémoire. Généralement, le
nombre de mot est une puissance de 2 et l’unité c’est = 1024 =1kilobit. La taille
d’un mot varie généralement en multiple de ou octet.

On peut donc schématiser un circuit mémoire par la figure suivante où l’on


peut distinguer :

Avec : - R/W : une entrée de sélection de lecture ou d’écriture


- CS : une entrée de sélection du circuit

ENSP Dr A. M. CHANA LEMALE Page 6


Architecture des ordinateurs

Une opération de lecture ou d’écriture de la mémoire suit toujours le même cycle :


1. Sélection de l’adresse
2. Choix de l’opération à effectuer (R/W)
3. Sélection de la mémoire (CS = 0)
4. Lecture ou écriture la donnée

Caractéristiques de la mémoire
Les principales caractéristiques d'une mémoire sont les suivantes :
 La capacité: représente le volume global d'informations que la mémoire peut
stocker.
La capacité peut s’exprimer en :
- Bit : un bit est l’élément de base pour la représentation de l’information.
- Octet : 1 Octet = 8 bits – kilo-octet (KO ) : 1 kilo-octet (KO )= 1024 octets = 210 octets
- Méga-octet ( MO) : 1 Méga-octet ( MO)= 1024 KO = 220 octets
- Géga-octet ( GO) :Géga-octet ( GO)=1024 MO = 230 octets
- Téra-octet (To) : 1 téra-octet (To)= 1024 Go =240 octets

 Le temps d'accès: correspond à l'intervalle de temps entre la demande de


lecture/écriture et la disponibilité de la donnée

 Le temps de cycle: représente l'intervalle de temps minimum entre deux accès


successifs

 Le débit: est le volume d'information échangé par unité de temps, exprimé en bits
par seconde

 La volatilité : caractérise l'aptitude d'une mémoire à conserver les données


lorsqu'elle n'est plus alimentée électriquement :

- Une mémoire est dite volatile si elle perd son contenu (les informations)
lorsque la source d’alimentation est coupée.

- Une mémoire est dite non volatile (mémoire permanente ou stable), si elle
conserve son contenu lorsque la source d’alimentation est coupée

Exemple :
=256 mots
Longueur d’une adresse 8 bits
On veut représenter 0110
Dans la zone mémoire d’adresse 175 = 10111001

ENSP Dr A. M. CHANA LEMALE Page 7


Architecture des ordinateurs

Lecture Adresse

Ecriture 0
.
.
.
0 1 1 0 174
0110 10111001

Registre de Registre
données d’adresse

Classification des mémoires


La classification des mémoires peuvent être schématisée par la figure suivante : Il
existe plusieurs types de mémoires :

 mémoire à accès direct ou aléatoire (random acess memory) ici le temps


d’accès à un mot ne dépend pas de l’emplacement de ce mot dans la mémoire
 mémoire à accès séquentielle (séquential acess memory) le temps de
lecture et d’écriture dépend de l’emplacement.
 RAM statiques (SRAM) Les informations sont mémorisées par une
bascule de type D et conservées tant que l'alimentation est présente (mémoire
volatile), elles sont réalisées en technologie MOS ou bipolaire.
 RAM dynamiques (DRAM) Elles utilisent un condensateur comme
cellule mémoire (un bit mémorisé) de l'information. Cette information tend à se

ENSP Dr A. M. CHANA LEMALE Page 8


Architecture des ordinateurs

dégrader à cause des courants de fuites, ce qui nécessite un rafraîchissement


périodique.
On perd le contenu de ces types de mémoire lorsque la machine est mise hors
tension. Les données à conserver doivent toujours résider dans la mémoire secondaire ou
de masse (disque dur, disquette, CD, DVD …). Les données manipulées par l’unité centrale
résident dans la mémoire vive ou centrale ou RAM.
 ROM (read only memory) fait pour contenir des logiciels, des
programmes particuliers comme le système d’exploitation. Le contenu d’un ROM ne
peut être modifié, c’est aussi une mémoire à accès aléatoire.
 RWM (read write memory) ou mémoire centrale.

2. Unité centrale
Elle comprend l’unité de contrôle et l’unité arithmétique et logique. Elle est
organisée au tour d’un bus.

UAL

Registres
Pointeur
Registre
Instruction Registre Registre
d’adresse tampon

Les registres sont des emplacements de mémoires qui ont un temps d’accès court,
leurs tailles varient selon l’usage.

a) unité arithmétique et logique ou UAL

Elle effectue les opérations arithmétique et logique. Les opérandes de ces


opérations se trouvent généralement en mémoire centrale, mais pour certains
ordinateurs (très puissant) les opérandes résident dans des registres spécialisés. Pour
les PC, les bus ont une taille qui varie entre 20 bits et 48 bits pour le bus d’adresse et 8
bits et 64 bits pour le bus de données. Beaucoup d’ordinateurs ont un registre spécial
appelé accumulateur. Il contient à la fois l’un des opérandes et le résultat de
l’opération arithmétique.

ENSP Dr A. M. CHANA LEMALE Page 9


Architecture des ordinateurs

L’unité arithmétique et logique contient aussi un registre drapeau. Ce Registre


contient une information qui caractérise le résultat d’une opération arithmétique
entre autre : résultat nul, négatif, positif, dépassement de capacité (over flow ou
Under flow) ou s’il y a eu une retenue.

Entrée A Résultat

Entrée B UAL Drapeau

Signaux de contrôle
indiquant la fonction à
exécuter
Composantes de l’UAL
 additionneur
 circuit des tests logiques
 circuit de décalage des bits (permuter ou décaler d’une position)
 circuit de comparaison
 circuit des tests arithmétiques
 circuit de multiplication ou de division

b) unités de contrôle

Elle supervise le fonctionnement de l’ordinateur en particulier, elle contrôle le


décodage et l’exécution des instructions. Elle contrôle donc les cycles de chargement et
d’exécution qui est résumé sur le schéma ci-dessous.

Bus d’adresse

Bus de donnée

Registre Buffer
d’adress
e

Registre
Mémoire
Pointer
d’instruction

UAL
UC

ENSP Dr A. M. CHANA LEMALE Page 10


Architecture des ordinateurs

 Cycle de chargement

En générale les instructions sont lus une à une dans la mémoire, décodées puis
exécutées. Les étapes du cycle de chargement sont :
 charger le contenu du pointeur dans le registre d’adresse mémoire.
 Demander à la mémoire de lire la donnée et de la placer sur le bus.
 Ranger la valeur lue dans le buffer de l’unité centrale.
 Transférer la donnée du buffer dans le registre d’instruction.
 incrémenter le pointeur d’une unité.

Ces étapes sont exécutées par des signaux envoyés par l’unité de contrôle.

 cycle d’exécution

Les étapes de ce cycle varient avec les ordinateurs et la structure des


instructions.
Exemple : pour une machine disposant d’un accumulateur et effectuant une
addition. L’un des opérandes se trouve dans l’accumulateur et l’autre dans un
registre spécialisé ou en mémoire.
Les étapes du cycle d’exécution sont :
 transférer le contenu de l’accumulateur dans l’UAL
 transférer le contenu du registre indiqué dans l’UAL
 déclencher l’addition
 transférer le résultat dans l’accumulateur.
Si par contre l’un des opérandes se trouve dans une adresse mémoire, le cycle
est plus long. En plus de ces 4 étapes,
 on transfert le contenu de la mémoire sur le bus de donnée,
 on transfert le contenu du bus de données dans le buffer,
 puis dans le registre de données et on déclenche l’opération.

3. Les éléments d’entrées et sorties


C’est par ces éléments que l’usager communique avec ordinateur. L’unité
d’entrée est utilisée par l’usager pour envoyer soit une commande (un programme)
soit une donnée à un programme pour son exécution. L’unité de sortie est utilisée
par la machine pour renvoyer le résultat relatif à la commande.
Comme unité d’entrée nous avons :
 le clavier
 la tablette optique
ENSP Dr A. M. CHANA LEMALE Page 11
Architecture des ordinateurs

 le scanner
 la souris
Pour la sortie il y a l’imprimante, l’écran qui affiche le résultat et les
commandes.

II. Comment résoudre un problème à l’aide d’un ordinateur


Pour résoudre un problème à l’aide d’un ordinateur, il faut d’abord trouver un
moyen de communication avec ce dernier. La communication se fait à l’aide d’un
programme (groupe de commande) ou à l’aide d’une commande.
Il existe en générale deux types de communication.

 Batch

Dans ce système le programmeur n’est pas relié directement à l’ordinateur.


Les commandes doivent être regroupées et renvoyées à la machine par
l’intermédiaire d’un système d’exploitation. Pendant l’exécution de ces commandes,
la machine interrompe toute communication avec l’extérieur.
 System interactif

L’usager est en communication direct avec la machine. Les commandes sont


saisies directement sur le clavier et renvoyées à la machine. On peut aussi écrire des
programmes qui pendant l’exécution génèrent une communication directe avec le
programmeur.
c) comment écrire et exécuter un programme

 Langage compilé

La machine ne manipule que des informations représentées en binaire. L’être humain


préfère manipuler les informations dans un langage qui lui est proche. Pour résoudre
le problème, on a créé un programme particulier qui accepte un programme écrit
dans un langage proche de l’être humain et le transforme en un programme
équivalent en binaire. La transformation suit un certain nombre de règles et une
syntaxe qui sont propre au système. Ces règles et la syntaxe définissent le langage, le
système est appelé compilateur.
Le premier compilateur (1955) fut le compilateur Fortran (formula translation)
traducteur de formules mathématiques
Les différentes transformations suivent le schéma ci-dessous.

ENSP Dr A. M. CHANA LEMALE Page 12


Architecture des ordinateurs

Recompiler à modification des erreurs


Fichier Listing
Rejeté

NON

Programme Fichier
OK Code
dans un Système Compilateur Objet
objet
langage de d’exploi
haut niveau tation

Programme
source Code
Editeur de lien
exécutable

L’éditeur des liens vérifie si le programme invoque des fonctions qui résident dans la
bibliothèque du système, retrouve ses codes et les adjoints aux codes objets.
Lorsqu’on demande d’exécuter le programme, le système d’exploitation charge le
code d’exécution en mémoire et déclenche le processus d’exécution. On peut
demander au compilateur de créer le fichier listing même s’il n’y a pas d’erreur.
Tout programme bien compilé ne donne nécessairement pas de bon résultat. Le
compilateur compile toutes les instructions même s’il y a des erreurs.
 Langage interprété exemple : BASIC
Dans ce langage l’interprète joue le rôle de compilateur et d’exécuteur, après
compilation de toute instruction, elle est exécutée tout de suite. S’il y a une erreur
dans une instruction, l’interpréteur s’arrête et rejette le reste du programme.

 Langage assembleur
Un langage assembleur est à cheval entre un langage de haut niveau et un langage
machine (binaire). On a la possibilité de faire usage d’emplacement de mémoire à cet
effet, on se sert d’adresse symbolique. Une instruction a la structure suivante :
[ad] CO OP
ad= adresse (on peut la préciser ou pas)
Co= code de l’opération à effectuer
Op=opérande.
On peut avoir 0, 1, 2, 3 opérande. Dans cas de plus d’un opérande ils sont séparés par
des virgules.

ENSP Dr A. M. CHANA LEMALE Page 13


Architecture des ordinateurs

Les opérandes sont généralement les adresses de mots ou d’instructions.


L’interprétation des mots dépend du code. On se sert en général des symboles
comme adresse de mot mémoire ou d’instructions.
L’adresse symbolique consiste à donner au choix un symbole à l’adresse mémoire

ENSP Dr A. M. CHANA LEMALE Page 14


Architecture des ordinateurs
(1)

Algorithme de
résolution

(2)

Vérification non
(nous même) Modification

oui
(3)

Traduction en langage
de haut niveau

(4)

Programme
source

(5)

Vérification non
(nous même) Corriger

oui
(6)

Compiler non
(compilateur) Rejet et
modification
Ok
(7)

Fichier Objet

(8)

Editeur de lien Rejet, modifier


le fichier source
et resoumettre
(9)

Fichier
exécutable
(10)

Résultat Exécuteur Résultat bon


mauvais

ENSP Dr A. M. CHANA LEMALE Page 15


Architecture des ordinateurs

III. Programme assembleur à 0,1, 2,3 adresses


Toute instruction a la structure suivante :[AD] Co OP

a) Instructions à 3 adresses

Sa structure est : [AD] CO OP1, OP2, OP3 ou OP1, OP2 et Op3 sont des
adresses symboliques des mots mémoires,
Interpretations: OP3 OP1 Co OP2
Example: CO: ADD= addition
MPY= multiplication
SUB= soustraction
DIV= division
Supposons qu’on a X=A+B
L’équivalent c’est ADD A, B, X
Y = C-D SUB C, D, Y
Z = A/B DIV A, B, Z
S=T U MPY T, U, S
Exemple : on veut A 0 SUB A, A, A
On aura alors A A–A
Ou on veut A B,
On aura SUB A, A, A
ADD A, B, A

b) Instructions à 2 adresses

Sa structure est [AD] C0 OP1,OP2


Interprétation : OP1 OP1 C0 OP2
Comment effectuer donc X= A+B
SUB X, X X 0
ADD X, A X A+0
ADD X, B X A+B

c) Instructions à une adresse

Sa structure : [AD] Co OP
Ici, on suppose que l’accumulateur dispose du 1er opérande et que le 2nd se
trouve dans le mot mémoire qui a pour adresse OP
Interprétation : AC AC Co OP

ENSP Dr A. M. CHANA LEMALE Page 16


Architecture des ordinateurs

En plus des opérations arithmétiques, on dispose de deux instructions :


Chargement de l’accumulateur et déchargement
 Chargement : LOAD OP : AC OP
 Déchargement : STORE OP : OP AC
Comment effectuer X= A+B
On a LOAD A: AC A
ADD B : AC AC+B ou AC A+B
STORE X : X AC ou X A+B

d) Instruction à 0 adresse

La structure est la suivante : Co, l’adresse des opérandes n’est pas indiquée sauf pour
deux instructions particulières : chargement et déchargement. Cette structure
suppose que les opérandes sont disposés de façon séquentielle dans une pile, les
résultats des opérations arithmétiques sont aussi sauvegardés dans la pile. Une pile
fonctionne sur le principe LIFO (last in first out), "premier entré dernier servi".
Interprétation des opérations arithmétiques
On suppose qu’à tout moment, la pile contient toutes les données nécessaires, en
particulier, la pile contient deux entrées (mots) :
TL (tête de pile)
SL (entrée située juste en dessous de la tête de pile)
Instruction de chargement PUSH
PUSH X (mettre au-dessus de la pile le contenu de X)

A 4
-5
B 3 PUSH B
3
PUSH C
C -5

Instruction de déchargement POP


POP X, cette instruction enlève le contenu du mot qui a pour adresse TL (1er
élément) et le transfert dans le mot qui a pour adresse X.

Ces deux instructions provoquent aussi la modification de TL et SL ainsi :


 Après PUSH SL devient TL et TL devient TL+1 et on a donc

ENSP Dr A. M. CHANA LEMALE Page 17


Architecture des ordinateurs

 Après POP

Interprétation des opérations arithmétiques


CO := (TL) CO (SL) SL, POP
Avec CO = ADD, SUB, DIV ou MPY
Exemples
ADD (SL) + (TL) SL, POP

4 4
4 TL 7
3 3 7
-5
-5 3 SL -5

Pile après le pop


Pile avant Pile avant le pop
l’addition

SUB : (SL) – (TL) SL ,POP


DIV :(SL) /(TL) SL ,POP
MPY : (SL) (TL)

Exercice d’application:
(1) on a Z = A B + C/D
Ecrire des programmes assembleurs à 0,1 2 et 3 adresses qui permettent
d’évaluer l’expression ci-dessus, le programme doit afficher 0 si D=0 sinon il
affiche le résultat l’évaluation.
(2) Ecrire un programme assembleur à 2 adresses qui compare deux nombres X et
Y et affiche le plus grand des 2 ou 0 si les deux nombres sont égaux.

e) Instruction de débranchement (pour les 4 types d’instructions)

Ces instructions permettent de rompre l’exécution séquentielle d’un programme,


elles font usage de l’adresse d’une instruction. Les instructions de débranchement
sont :
BR X = débranchement inconditionnel à l’instruction que pour adresse X

ENSP Dr A. M. CHANA LEMALE Page 18


Architecture des ordinateurs

BGT X= débranchement à l’instruction que porte l’adresse X si le résultat (tampon)


est positif ou > à 0
BGE X= débranchement à l’instruction que porte l’adresse X si le résultat de
l’opération arithmétique est 0 (positif ou nul)
BLT X débranchement à l’instruction que porte l’adresse X si le résultat est < à X
(négatif)
BLE X si le résultat est négatif ou nul
BEZ X si le résultat est nul

f) Instruction de lecture et d’écriture

 Lecture : READ X cette instruction nous permet de lire une valeur de


l’extérieur et de la ~ 19 ~transférer dans le mot qui pour adresse
symbolique X.
 Ecriture WRITE X nous permet d’envoyer à l’extérieur la valeur du
mot qui pour adresse symbolique X a une unité de sortie.

ENSP Dr A. M. CHANA LEMALE Page 19

Vous aimerez peut-être aussi