Академический Документы
Профессиональный Документы
Культура Документы
Edition 2000
ESAT / DGF / DMSI
page 2
ESAT / DGF / DMSI
Toute information est représentée en machine sous formes de suites de 0 et de 1, toutefois, par souci de
clarté et de concision, les valeurs manipulées, caractères ou chiffres, seront ici représentées en clair, cela
ne changeant rien aux principes de fonctionnement.
C.O. R.I.
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Circuit 0
Mot
de
Interne
Calcul 1
7 1 2
A
1 1 D
+ 0 3
D
0 4
0 0 5 23
6 5
DECODEUR
de FONCTIONS 100 ADD 5
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 3
ESAT / DGF / DMSI
Si l’on veut que l’ordinateur puisse exécuter une instruction quelconque, il faut aller la chercher en mémoire
centrale. Or le contenu du compteur ordinal permet de savoir où est cette instruction.
C.O. R.I.
PHASE 1
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Circuit 0
Mot
de
Interne
Calcul 1
7 1 2
A
1 1 D
+ 0 3
D
0 4
0 0 5 23
6 5
DECODEUR
de FONCTIONS 100 ADD 5
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 4
ESAT / DGF / DMSI
Il faut à cet instant pouvoir manipuler le contenu de ce qui vient d’être lu comme une instruction en
l’envoyant précisément dans le registre d’instruction.
A la fin de cette opération le registre d’instruction contient ADD 5 comme le montre le schéma qui suit :
C.O. R.I.
PHASE 2
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Mot
Circuit
de
A 0
Interne
Calcul D 1
7 1 D 2
A
1 1 D
+ 0 3
D
0 4
0 0 5 23
6 5
DECODEUR
de FONCTIONS
5 100 ADD 5
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 5
ESAT / DGF / DMSI
Dans la mesure où le registre d’instruction a été conçu pour permettre la séparation de la partie code
opération de la partie adresse, il est possible d’envoyer, dans cette phase, le contenu du champ code
opération du registre d’instruction dans le registre du décodeur de fonction pour sélectionner le circuit
d’addition.
C.O. R.I.
PHASE 3
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Mot
Circuit
de
A 0
Interne
Calcul D 1
7 1 D 2
A
1 1 D
+ 0 3
D
0 4
0 0 5 23
6 5
DECODEUR
de FONCTIONS
5 100 ADD 5
ADD
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 6
ESAT / DGF / DMSI
Avant de pouvoir exécuter l’opération, il faut que la machine puisse accéder à l’opérande, c’est à dire puisse
avoir accès au mot dont l’adresse figure dans l’instruction.
Cela revient à transférer le contenu du champ adresse du registre d’instruction dans le registre d’adresse
mémoire.
C.O. R.I.
PHASE 4
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Mot
Circuit
de
A 0
Interne
Calcul D 1
7 1 D 2
A
1 D
+ 0 5
3
D
4
0 5 23
6 5
DECODEUR
de FONCTIONS
5 100 ADD 5
ADD
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 7
ESAT / DGF / DMSI
Comme le circuit de calcul et l’opérande sont maintenant disponibles, l’exécution de l’instruction est
réalisable.
C.O. R.I.
PHASE 5
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Mot
Circuit
de
A 0
Interne
Calcul D 1
9 1 D 2
4
23 + 0 5
3
2
4
0 5 23 3
6
DECODEUR
de FONCTIONS
5 100 ADD 5
ADD
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 8
ESAT / DGF / DMSI
L’instruction ayant été exécutée, il faut passer à la suivante. Nous imaginerons qu’il existe un circuit
particulier d’addition propre au compteur ordinal qui n’a pas été présenté auparavant. Ce circuit est
particulier dans le sens où il utilise un opérande toujours égal à la valeur 1 : il additionne ce 1 au contenu du
compteur ordinal et range le résultat dans le compteur ordinal. Autrement dit, quand ce circuit est mis en
marche, le contenu du compteur ordinal est augmenté de 1.
C.O. R.I.
PHASE 6
U.A.L. ACC
RAM RDM
MEMOIRE CENTRALE
Mot
Circuit
de
A 0
Interne
Calcul D 1
9 1 D 2
4
23 + 0 5
3
2
4
1 5 23 3
6
DECODEUR
de FONCTIONS
5 100 ADD 5
ADD
TIMER
BUS
ESAT/DMSI/Cours Architecture
page 9
ESAT / DGF / DMSI
Il faut aussi prendre en compte le fait que l’ordinateur est capable d’exécuter un million d’instructions de ce
type en une seconde. Le déroulement d’une instruction machine se réduit à une suite de commandes
élémentaires déclenchées par l’horloge : ouverture et fermeture de portes , lecture et écriture d’un registre
ou d’un mot de la mémoire centrale et déclenchement d’un circuit de calcul.
Si l’on veut automatiser un processus quelconque, il faut pouvoir disposer d’instructions d’entrée / sortie,
d’instructions permettant d’effectuer des calculs arithmétiques, des transferts d’informations et des calculs
logiques.
Dans notre machine modèle, les instructions d’entrée/sortie ne sont pas encore prises en compte car, pour
l’instant, nous nous consacrons à l’unité centrale sans tenir compte des liaisons avec les périphériques.
INSTRUCTIONS ARITHMETIQUES :
INSTRUCTIONS DE TRANSFERTS :
TES X : TESt sur le contenu de l’accumulateur : si le contenu est strictement positif l’instruction
suivante à exécuter est celle d’adresse X, sinon c’est celle d’adresse immédiatement
supérieure à celle qu’on exécute.
Première phase :
Elle consiste à transférer le contenu du compteur ordinal dans le registre d’adresse mémoire,
ce qui provoque la sélection du mot correspondant en mémoire centrale, la lecture de son
contenu et l’écriture du contenu dans le registre de données mémoire.
page 10
ESAT / DGF / DMSI
Deuxième phase :
Elle permet de transférer le contenu du registre de données mémoire dans le registre
d’instruction.
Troisième phase :
Elle réalise le transfert du contenu du champ code opération du registre d’instruction dans le
registre du décodeur de fonction, ce qui provoque la sélection du circuit correspondant à la
valeur de ce code opération.
En résumé, cette première partie consiste à rechercher l’instruction à exécuter en mémoire centrale et à la
décoder.
A partir de là, les cycles de base diffèrent. Les instructions de calcul arithmétique et celles de transfert
nécessitent trois phases pour être exécutées, alors que les deux instructions logiques n’en nécessitent
qu’une.
Commençons par les trois dernières phases des instructions de calcul arithmétique et celles de transfert.
Quatrième phase :
Elle réalise le transfert du contenu du champ adresse du registre d’instruction dans le registre
d’adresse mémoire et la sélection du mot correspondant.
Cinquième phase :
Elle effectue l’exécution de l’instruction telle qu’elle est décrite dans le jeu d’instruction présenté
ci-dessus.
Sixième phase :
Elle réalise l’augmentation de 1 du contenu du compteur ordinal.
Pour l’instruction de débranchement inconditionnel auquel correspond le BRA, il n’y a qu’une phase à
exécuter. En effet l’instruction suivante à exécuter est celle dont l’adresse figure dans le BRA et cette
adresse est inscrite à cet instant dans le champ adresse du registre d’instruction.
De même pour l’instruction de débranchement conditionnel auquel correspond le TES, il n’y a qu’une phase
à exécuter :
Si la condition est satisfaite, il faut exécuter une phase correspondant à celle qui vient d’être évoquée pour
le BRA puisqu’il doit y avoir débranchement sur l’instruction dont l’adresse figure dans l’instruction de test. Si
la condition n’est pas satisfaite, on passe à l’instruction suivante.
page 11
ESAT / DGF / DMSI
C’est pour ainsi dire la véritable mémoire centrale. Elle fonctionne comme celle de l’homme. Elle mémorise
seulement ce dont le microprocesseur a besoin immédiatement. Elle est volatile et d’accès très rapide.
Quelques caractéristiques : permet la lecture et l’écriture, adressable octet par octet, volatile, capacité
limitée mais extensible, temps d’accès env. 60 ns.
La mémoire centrale est de type DRAM (Dynamic RAM). Elle utilise un condensateur de stockage par bit.
Cependant, les condensateurs ayant des fuites, il faut rafraîchir la RAM périodiquement. Pendant ces
phases de rafraîchissement, très longues à l’échelle des fréquences de travail des processeurs, la RAM est
indisponible ce qui entraîne un accroissement des temps d’accès (c.f. plus loin mémoires cache).
C’est une fausse RAM. Le constructeur y inscrit définitivement un programme qui est toujours exécuté dès
le lancement de la machine, et ce indépendamment de la volonté de l’utilisateur. Cette mémoire est en
quelque sorte gravée. Elle contient également des petits programmes nécessaires à la réalisation
d’échanges entre le cœur de la machine et les périphériques. Le contenu de la ROM est connu sous le nom
de BIOS (Basic Input Output System).
La ROM est accessible par le microprocesseur de la même manière que la RAM ; la différence vient du fait
qu’elle ne perd pas son contenu lorsque l’on éteint la machine.
Quelques caractéristiques : lecture seule, adressable octet par octet, non volatile, capacité très limitée.
PROM (programmable read only memory) : mémoire dont le contenu est programmable une seule fois par
l’utilisateur. L’utilisation de ces mémoires est réservée à des applications nécessitant une faible production
pour laquelle l’utilisation de ROM aurait été trop coûteuse.
EPROM (erasable programmable read only memory) : comme les précédentes, mémoires programmables
par l’utilisateur. Toutefois, il est possible d’effacer ces mémoires en exposant le boîtier à un rayonnement
ultraviolet, ce qui a pour effet de supprimer les charges. Ces mémoires sont plus particulièrement utilisées
pendant les phases de mise au point en raison de la facilité de correction des erreurs.
EEPROM (electricaly erasable programmable read only memory) : mémoires identiques aux EPROM. La
différence réside dans la technique d’effacement : ce dernier est effectué en appliquant des tensions plus
élevées que celles utilisées pour la lecture ou l’écriture.
Mémoires cache : les mémoires cache sont de type SRAM (Static RAM) ; elles ne requièrent pas de
rafraîchissement : l’information est stockée en la faisant circuler en circuit fermé, elle « s’auto rafraîchit » et
est donc toujours disponible en accès. Ce sont les mémoires les plus chères. L’emploi de ces mémoires est
combiné avec des stratégies de stockage de données par anticipation (algorithmes).
page 12
ESAT / DGF / DMSI
cache interne ou de premier niveau : mémoire de petite taille (8 à 64 Ko) très rapide (15 ns)
placée dans le processeur afin d’éviter à ce dernier des temps d’attente trop longs pour les
accès mémoire.
cache externe ou de deuxième niveau : compte tenu de la faible taille du cache interne, on
rajoute au processeur une mémoire cache externe de plus grande capacité (128 Ko à 1 Mo ou
plus), moins rapide (30 ns) que le cache interne mais plus rapide que la mémoire
conventionnelle.
taille des mémoires cache : en fait, les 64 premiers Ko de cache sont responsables à eux seuls
de la majeure partie de l’augmentation de performances d’un système. Certes les performances
sont meilleures avec 128, 256 ou 512 Ko mais dans une moindre mesure. Selon
l’environnement et les données traitées, il est possible de déterminer le volume optimum de
mémoire cache à implanter sur le système.
Mémoire vidéo : C’est dans cette mémoire que sont écrites les données qui doivent s’afficher à l’écran.
Mémoire CMOS : C’est une mémoire de petite taille, contenue dans un composant spécifique, alimenté par
une pile ou batterie. Elle contient des informations qu’il est impératif de conserver d’une cession de travail à
l’autre (heure système, paramètres de configuration des matériels, etc.). Son contenu est modifié par un
programme de la ROM, le Setup.
Les CMOS récentes sont des Flash EPROM : sorte d’EPROM dont le contenu peut être modifié par
l’utilisateur grâce à un logiciel et se conserve grâce à une petite pile ou batterie (selon les machines).
La plupart des machines réelles disposent de plusieurs accumulateurs et/ou registres permettant à un
instant donné la manipulation quasi simultanée de plusieurs données par l’UAL.
Ces registres permettent en particulier de travailler avec des tableaux ou des structures de données
complexes, en fonction du mode d’adressage qui sera abordé plus loin.
On dispose, de plus, d’une pile de mots permettant de réaliser des stockages intermédiaires entre deux ou
plusieurs traitements ou parties de traitement.
Dans notre cas, la notion de pile est une notion de structure de données dans laquelle le dernier élément
entré est le premier qui sort. Cette structure de données s’appelle une structure LIFO (Last In First Out).
Par opposition, on définit une structure de file d’attente où le premier entré est le premier sorti (structure
FIFO : First In First Out).
Les opérations de lecture / écriture en mémoire ne sont pas instantanées. Ces opérations prennent en
moyenne quelques dizaines de nano-secondes (10-9 secondes).
Le temps d’accès correspond au temps nécessaire pour réaliser une opération de lecture ou d’écriture en
mémoire.
La mémoire morte est plus lente que la mémoire vive.
page 13
ESAT / DGF / DMSI
La machine gère la mémoire en la divisant en unités constituées par 8 transistors, ce qui permet d’y stocker
une donnée codée par un octet (un transistor donne l’état d’un Bit 0 ou 1). Chaque unité ou cellule est
référencée par une adresse. Cette adresse est codée elle-même par une succession d’éléments binaires (1
ou plusieurs Bits). C’est la connaissance de l’adresse qui permet d’accéder à la donnée.
Par exemple :
Les P.C. qui utilisent des registres de 16 bits, peuvent gérer un espace adressable de 2 16 adresses
différentes, soit une mémoire de 64 Ko si l’on considère que la taille de la cellule est de 1 octet, 128 Ko si
l’on considère que la taille de la cellule est de 2 octets, ...
Les ordinateurs qui utilisent des registres de 32 bits peuvent gérer un espace adressable de 232 octets soit
4Go.
Le Pentium code ses adresses sur un registre de 64 bits.
Il est intéressant de noter que l’espace adressable peut avoir une taille supérieure à celle de la mémoire
physique. Il faut alors utiliser des adresses virtuelles. (voir le chapitre « Gestion de la mémoire »).
REMARQUE : Seules les informations stockées dans des zones mémoires référencées par des adresses de
l’espace adressable (en RAM ou en ROM) sont manipulées par le processeur. Le processeur ne peut donc
pas agir directement sur les informations stockées sur les mémoires auxiliaires.
page 14
ESAT / DGF / DMSI
Les opérations d’entrée-sortie permettent d’établir des communications, c’est à dire des transferts
d’informations, entre l’unité centrale et les périphériques.
é
r
é
r
é
r A D
E
MEMOIRE
i
q
i
q
i
q L C
O
CENTRALE
u u u
M
e e e
M
A
1 2 3 N
D
E
Les ordinateurs ont potentiellement à leur disposition un grand nombre de périphériques. Leur organisation
doit être telle que l’addition d’un périphérique non prévu initialement soit commode. A cet effet, la
communication entre le périphérique et l’organe central s’établit à travers un câble organisé en bus sur
lequel on peut raccorder très simplement plusieurs périphériques.
Un bus permet de transférer l’information en parallèle. A l’intérieur de l’unité centrale, il est constitué de fils
capables de transporter les bits correspondant aux codes opérations, aux adresses et aux données. Pour
les entrées-sorties, il contient : des fils d’adressage permettant de désigner le périphérique sur lequel on
veut travailler et des fils de commande qui permettent de transmettre les signaux qui coordonnent la
procédure d’échange.
L’organisation des entrées-sorties nécessite que l’on ait défini les modalités à l’extrémité amont du bus, du
côté de l’ordinateur (canal) ainsi que les modalités à l’extrémité aval du bus, du côté périphérique (unité de
liaison). Il existe une grande variété de solutions qui ne seront qu’évoquées un peu plus loin dans ce cours.
La seule constante est que l’initiative appartient toujours au processeur central (l’unité centrale) qui
exécute le programme et dispose seul des éléments de décision quant à l’opportunité du transfert.
Il existe différentes sortes d’architectures de machines utilisant un ou plusieurs bus. Notre machine fictive a
une structure monobus : c’est une structure utilisée dans certains ordinateurs très connus ; elle ne privilégie
aucun des organes de l’unité centrale.
page 15
ESAT / DGF / DMSI
Mais il existe des machines utilisant deux bus qui peuvent par exemple être dédiés exclusivement au
transfert des données ou au transfert des adresses : une telle structure est faite en général pour favoriser
les échanges avec la mémoire centrale, puisque les accès au registre de données mémoire et au registre
d’adresse mémoire sont différenciés.
Il existe également des ordinateurs dont l’architecture est organisée autour de trois bus, de telle sorte qu’il
soit possible d’acheminer simultanément deux opérandes dans l’UAL et que le résultat puisse être
immédiatement transféré après la phase de calcul.
Le mode d’adressage fait partie du champ envoyé au séquenceur (voir plus loin) pour que celui-ci puisse
générer les signaux qui permettent d’exécuter l’instruction avec son mode d’adressage. Le champ adresse
devient le champ valeur d’adresse puisque les modes d’adressage permettent de travailler sur d’autres
éléments que l’adresse elle-même.
Le code du mode d’adressage permet de travailler de façon très variée. En général, on peut trouver :
(dans ce qui suit, les parenthèses dans la partie droite de l’affectation signifient : contenu du registre ou du
mot)
La valeur d’adresse effective sur laquelle l’instruction travaille est la valeur d’adresse figurant
dans l’instruction.
Par exemple l’instruction ADD,0,100, effectue l’instruction d’addition normale sur le mot
d’adresse 100
Ainsi, l’instruction ADD,1,100 signifie que l’on additionne au contenu de l’accumulateur la valeur
numérique 100
page 16
ESAT / DGF / DMSI
La valeur d’adresse effective est égale à la somme de la valeur d’adresse et du contenu d’un
registre appelé registre d’index (IND), s’il existe dans la machine
Par exemple, l’instruction ADD,4,100 effectue l’addition du contenu du contenu de l’adresse 100
avec le contenu de l’accumulateur.
On aura :
accumulateur = (accumulateur) + ((100))
Si (100) = 876, la valeur d’adresse effective est 876, cela revient à : accumulateur =
(accumulateur) + (876)
Il existe d’autres modes d’adressage mais ceux qui viennent d’être présenté sont les plus caractéristiques.
Le ou les accumulateurs sont des registres externes à l’UAL, et ce qui a été appelé accumulateur jusqu’ici
n’est qu’un registre permettant des stockages provisoires durant le déroulement de l’instruction.
Chacun des circuits de calcul ne dispose pas d’un mot propre à l’intérieur de l’UAL, il est simplement en
connexion sur le ou les bus de la machine.
Durant le déroulement du cycle de base d’une instruction machine, au moment où le champ code opération
est pris dans le registre d’instruction, la valeur du code opération n’est pas envoyée dans le décodeur de
page 17
ESAT / DGF / DMSI
fonction qui n’existe pas, mais dans un organe particulier, relié au distributeur de phase commandé par
l’horloge, qui porte le nom de séquenceur.
Etant donné ce qui vient d’être dit, le schéma de notre ordinateur peut évoluer comme ceci :
RI Ordinateur fictif
PILE
R
CODE
+ A
E
G OPER
C
I
* C
S
U MODE
T
- M
R d' @
R R
U C
L
E
O A D
A
D' M M
T
I
UAL E
N
U @
D
R
E
X
BUS
HORLOGE SEQUENCEUR
ESAT/DMSI/Cours Architecture
Le schéma illustre ces notions : séquenceur, unité arithmétique et logique, pile, bus, registres et
accumulateurs y figurent. Par souci de cohérence la structure monobus a été conservée.
Le séquenceur est l’organe qui génère la suite des signaux assurant les commandes élémentaires qui
permettent à une instruction de s’exécuter.
Ces commandes consistent à ouvrir ou fermer dans un sens ou dans l’autre, les portes d’accès entre le bus
et les registres ; elles déclenchent aussi les opérations de lecture et d’écriture en mémoire ; enfin, elles
activent les circuits de calcul de l’unité arithmétique et logique.
Pour que le cycle de base décrit ci-dessus puisse être exécuté, il est nécessaire de décomposer autrement
les phases vues précédemment.
En effet, soit Y l’un des registres de la machine, si les seules commandes que l’ordinateur est capable
d’effectuer sont les suivantes :
page 18
ESAT / DGF / DMSI
Nous venons de voir que les ordinateurs sont des machines universelles pour le traitement rationnel de
l’information.
Les relations entre l’unité centrale et les ressources périphériques ont été présentées d’un point de vue
matériel pour situer les différents organes qui permettent de les réaliser.
Le fonctionnement et l’architecture d’une machine tels qu’ils ont été présentés jusqu’ici ne permettent pas
encore de comprendre comment elle peut être utilisée efficacement, dans la mesure où l’écriture des
programmes ne pourrait être que très longue et très fastidieuse.
Nous verrons, par la suite, les outils qui permettent d’écrire des programmes en se dégageant de
l’architecture et du fonctionnement interne de l’ordinateur.
page 19