Vous êtes sur la page 1sur 44

UNIVERSITE DE 7 NOVEMBRE

INSAT

Support de cours

Architecture des Ordinateurs


classe : deuxi`
eme ann
ee R
eseaux t
el
ecoms

Par :

Najeh KAMOUN
Assistante en T
el
ecommunications

Tunisie, septembre 2005

Table des mati`


eres

Architecture Fonctionnelle
1.1

1.2

Architecture des ordinateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


1.1.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.2

Architecture generale et blocs fonctionnels . . . . . . . . . . . . . . . . .

Quelques generalites sur les architectures . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Architecture de Von Neumann . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2

Architecture de Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.3

Processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.4

Memoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.5

Bus : le squelette des ordinateurs . . . . . . . . . . . . . . . . . . . . . .

1.2.6

Entrees/Sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Unit
e Centrale de Traitement : Processeur
2.1
2.2

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Representation des nombres

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7
7
8

ii

2.2.1

Entiers non signes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2.2

Entiers signes sous la forme signe et valeur absolue

. . . . . . . . . . . .

2.2.3

Nombres en virgule fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2.4

Nombres en virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . .

2.3

UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4

Unite de Commande UC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4.1

Registres de lUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4.2

Modules de lUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.5

Format dinstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

2.6

Evaluation de performance de CPU . . . . . . . . . . . . . . . . . . . . . . . . . .

15

M
emoires

17

3.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

3.2

Caracteristiques des memoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.2.1

Differents types physiques de memoires . . . . . . . . . . . . . . . . . . .

18

3.2.2

Duree de memorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.2.3

Emplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.2.4

Capacite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.5

Performance

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.6

Mode dacc`es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.7

Hierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

iii
3.3

3.4

3.5

3.6

Modes dacc`es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.3.1

Acc`es aleatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.3.2

Acc`es par le contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.3.3

Acc`es sequentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.3.4

Acc`es direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

Memoire Principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.4.1

Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.4.2

Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

Memoire Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.5.1

Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.5.2

Contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.5.3

Performance

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.5.4

Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.5.5

Algorithmes de remplacement . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.5.6

Politiques decriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

Conclusion

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Interconnexions
4.1
4.2

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

25
25

Bus

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

4.2.1

Definition et structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

iv
4.2.2
4.3

4.4

4.5

Fonction Schematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.3.1

Notion dinterruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.3.2

Syst`eme dinterruptions hierarchisees . . . . . . . . . . . . . . . . . . . .

27

4.3.3

Causes dinterruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4.4.1

Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4.4.2

Gestion des entrees/sorties . . . . . . . . . . . . . . . . . . . . . . . . . .

29

Architectures avances : RISC et CISC . . . . . . . . . . . . . . . . . . . . . . . .

30

Table des figures


2.1

Structure dun CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

Format de donnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3

Structure dun UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

4.1

Architecture de bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

4.2

Boitiers de memoire utilisee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

Chapitre 1

Architecture Fonctionnelle

1.1

Architecture des ordinateurs

1.1.1

Introduction

Apparue au milieu du 20 eme si`ecle, linformatique a connu et connat une evolution extremement
rapide. A sa motivation initiale qui etait de faciliter et daccelerer le calcul, se sont ajoutees de
nombreuses fonctionnalites, comme lautomatisation, le controle et la commande de pratiquement tout processus, la communication ou le partage de linformation. Apr`es avoir ete un outil
reserve aux centres de recherche, elle sest implantee dans lindustrie et depuis les annees 80 elle
envahit nos foyers. Au depart nous navions que des syst`emes centraux, puis sont apparus les
postes de travail individuels, tr`es rapidement relies en reseaux locaux. Tous, ou presque, sont
maintenant connectes `a la Toile.
Les evolutions techniques sont telles que la duree de vie des materiels est relativement courte.
Le marche est extremement instable et en permanente evolution. La position des constructeurs
est presque remise en cause chaque jour. Face `a cette situation, apr`es une premi`ere periode de
syst`emes proprietaires, dans lesquels un client de pouvait en pratique sapprovisionner quaupr`es
dun seul constructeur, nous sommes passes aux syst`emes ouverts. Cela sous-entend des architectures normalisees pour lesquelles les elements peuvent provenir de plusieurs constructeurs.
En parall`ele, du cote logiciel un accent important est mis sur la reutilisation des produits, qui
doit permettre de suivre ces evolutions au prix dun effort moindre, sans avoir `a repartir de zero
`a chaque passage sur une nouvelle plate-forme par exemple. Cela explique lemergence des technologies Orientees Objets et du Genie Logiciel. Il est `a remarquer que cela se fait souvent
avec une perte defficacite, masquee par levolution des performances au niveau technique.

Chapitre I /AO /NK/05-06

Face `a cette situation tr`es volatile, nous constatons tout de meme que les concepts de base
introduits par les pionniers perdurent , meme sils peuvent se decliner de facons tr`es differentes.
Pour eviter davoir `a reecrire ce cours dArchitecture des Ordinateurs tous les ans, on a donc
pris le parti de principalement developper et expliquer ces concepts et les technologies de base.
Larchitecture du PC servira dexemple.

1.1.2

Architecture g
en
erale et blocs fonctionnels

Initialement un ordinateur etait un calculateur numerique. Cest aujourdhui une machine de


traitement de linformation. Il est capable dacquerir et de stocker des informations, deffectuer
des traitements et de restituer des informations. Linformatique est devenue la science du traitement de linformation.Un ordinateur peut etre decoupe en blocs fonctionnels. Le traitement
de linformation est fait au niveau dun processeur. Les actions que celui-ci doit effectuer sont
definies par des instructions. Pour etre accessible au processeur les donnees `a traiter et les instructions doivent etre stockees dans une memoire. Le processeur et la memoire sont relies par un
bus. Par ailleurs il faut que lutilisateur puisse fournir `a lordinateur des donnees et les instructions `a suivre, tout comme il doit avoir connaissance des resultats. Il faut donc des dispositifs
dentree et de sortie.
Chaque bloc fonctionnel peut lui-meme etre decrit par un ensemble dunites fonctionnelles. On
parle alors de larchitecture du processeur, de larchitecture de la memoire, etc. Par ailleurs, on
peut etudier larchitecture dun reseau rassemblant plusieurs ordinateurs.
On voit ainsi apparatre la notion de niveaux de representation. A chaque niveau un objet
considere est decrit comme un ensemble de blocs interconnectes. Au niveau suivant chacun de
ces blocs est `a son tour decrit comme un ensemble de blocs interconnectes et ainsi de suite.
Cette decomposition hierarchique en niveaux depend des besoins de la conception ou des outils
utilises : elle nest ni figee, ni unique. Nous pouvons, par exemple, descendre au niveau des portes
logiques et meme au niveau des transistors qui composent ces portes.
Larchitecture dun ordinateur constitue la representation de ses unites fonctionnelles et de leurs
interconnexions. Le choix dune architecture est toujours le resultat dun compromis entre :
performances et co
uts ;
efficacite et facilite de construction ;
performances densemble et facilite de programmation
Chaque solution adoptee pour une machine donnee pourra tr`es vite etre remise en cause par
un nouveau progr`es technologique. De meme, des architectures proposees `a un moment donne,
puis abandonnees pour des raisons techniques ou economiques, peuvent un jour etre `a nouveau

Chapitre I /AO /NK/05-06

employees.
Quelle que soit sa dimension, on retrouve toujours dans un ordinateur les memes blocs fonctionnels :
une ou plusieurs unites de traitement ;
de la memoire permanente ou variable, fixe ou amovible ;
des dispositifs de communication avec loperateur : un ecran, un clavier, tr`es souvent une
souris
relies par des bus, ou cables de liaisons. Partant des portes logiques, nous allons essayer detudier
dans ce cours les principes de base de chacun de ces composants. Dautre part, il est important
de realiser que materiel et logiciel sont indissociables, en particulier au niveau de la conception
de tout syst`eme informatique. Nous rencontrerons dans ce cours un ou deux exemples de limbrication du logiciel et du materiel. Pour ce qui concerne le logiciel nous nous limiterons `a quelques
considerations simples sur le langage machine.

1.2

Quelques g
en
eralit
es sur les architectures

1.2.1

Architecture de Von Neumann

Cette architecture est caracterisee par un processeur et une memoire relies par un bus : Les instructions et les donnees sont stockees dans la memoire. Pour acceder `a une information contenue
en memoire le processeur affiche sur le bus ladresse de celle-ci. Apr`es un certain temps le contenu
demande est affiche par la memoire sur le bus.On constate immediatement que la rapidite dune
machine sera limitee par lelement le plus lent. Lefficacite dun ordinateur est directement liee
au debit des informations qui circulent entre les differents elements. La conception dune architecture a pour but doptimiser ce debit, en prenant en compte des contraintes financi`eres,
commerciales et techniques.
La machine de base, dite de Von Neumann, que nous venons de decrire ne presenterait aucun
interet sans au moins un dispositif dentrees/sorties pour permettre une communication avec
lexterieur. Pour une machine aussi simple il existe au moins trois methodes pour installer un
tel dispositif :
Interface directement reliee au processeur :La communication est realisee `a laide dinstructions
specialisees ou par lintermediaire de registres specialises.
Interface connectee au bus commun : Un fil specialise du bus indique si le processeur sadresse
`a la memoire ou `a linterface dE/S.
Interface vue par le processeur comme une partie de la memoire : Linterface est sur le bus
commun, le choix de ladresse indique si le processeur sadresse `a la memoire ou `a linterface.

Chapitre I /AO /NK/05-06

1.2.2

Architecture de Harvard

Dans cette architecture, on separe physiquement la memoire des instructions et la memoire


de donnees. Chacune de ces memoires est accessible par un bus different. Il est alors possible
dacceder simultanement aux instructions et aux donnees, ce qui permet daugmenter le flux
des informations. En premi`ere approximation, il est donc possible de multiplier la vitesse de la
machine par deux, en multipliant par deux la vitesse du processeur tout en conservant le meme
type de memoire.
Chercher `a pouvoir effectuer plusieurs operations (ici transferts des instructions et des donnees)
en parall`ele est un principe tr`es souvent mis en uvre en architecture des ordinateurs. Par
exemple, pour permettre aux interfaces de lire ou decrire des donnees en memoire pendant
que le processeur effectue des calculs sur les donnees precedentes, il est interessant dutiliser
une memoire de donnees accessible depuis deux ports differents. De cette facon le processeur et
linterface peuvent chacun acceder alternativement `a une moitie differente de la memoire :
Phase 1 : le processeur lit des donnees provenant de la premi`ere moitie de la memoire pendant
que linterface dEntrees/Sorties range de nouvelles donnees dans la seconde moitie
Phase 2 : le processeur acc`ede aux donnees transferees par linterface lors de la phase 1 et
linterface ecrit dans la premi`ere moitie de la memoire

1.2.3

Processeur

Sans developper ici les principes de fonctionnement dun processeur, nous pouvons dej`a dire que
lexecution des instructions peut se decouper en grandes etapes :
chargement de linstruction `a executer ;
decodage de linstruction ;
localisation dans la memoire des donnees utilisees par linstruction ;
chargement des donnees si necessaire ;
execution de linstruction ;
sauvegarde des resultats `a leurs destinations respectives ;
passage `a linstruction suivante.
A chacune de ces etapes peut correspondre une unite fonctionnelle. Cette sequence simple peut se
compliquer, en particulier si la machine poss`ede des instructions de longueur variable : certaines
instructions etant codees sur un mot de la memoire et dautres sur plusieurs. Dans ce cas lunite
chargee de la recherche et du chargement de linstruction doit etre capable de reconnatre (ou
de pre-decoder) le type de linstruction pour determiner sil lui faut aller chercher la suite. Dans

Chapitre I /AO /NK/05-06

la plupart des processeurs, lunite centrale de traitement se decompose en :


lunite de commande qui contient un dispositif de decodage des instructions (decodeur) et un
sequenceur qui controle les circuits necessaires `a lexecution de linstruction en cours ;
lunite arithmetique et logique (UAL ou ALU : Arithmetic and Logical Unit) qui execute
des operations arithmetiques comme laddition, la soustraction, des decalages, des operations
booleennes (ET, OU, etc), des comparaisons, etc
les registres : memoire locale tr`es rapide qui permet de stocker des resultats temporaires ou
des informations de commande. Parmi ceux-ci on distingue les registres arithmetiques qui
servent aux operations arithmetiques. Dautres registres ont des fonctions particuli`eres. On
trouve par exemple :
. le compteur ordinal (CO) qui pointe sur la prochaine instruction `a executer ;
. le registre dinstruction (RI) qui contient linstruction en cours dexecution ;
. le registre detat (PSW : Processor Status Word) qui indique letat du syst`eme : depassement,
retenue, etc
. une pile et un pointeur de pile (SP : Stack Pointer) ;
des chemins de donnees.
Toutes ces unites fonctionnent au meme rythme, `a une cadence imposee par une horloge,
generalement externe `a lunite centrale. A chaque cycle dhorloge, chaque unite va ouvrir ou
fermer certaines portes pour deplacer, lire, ecrire, comparer, additionner des bits. Ceci se fait
en fonction dordres donnes par lunite de controle. Ces ordres dependent evidemment de linstruction `a executer.

1.2.4

M
emoires

Nous appelons memoire tout dispositif capable de stocker des informations (instructions et
donnees) de telle sorte que lorgane qui les utilise puisse `a nimporte quel moment acceder `
a
linformation quil demande. Les informations peuvent etre ecrites ou lues. Il y a ecriture lorsquon enregistre des donnees en memoire, lecture lorsquon sort des informations precedemment
enregistrees. La lecture peut etre destructive (linformation lue nest plus en memoire) ou non.
Le temps dacc`es est le temps qui secoule entre linstant o`
u a ete lancee une operation de lecture
en memoire et linstant o`
u la premi`ere information est disponible. Le temps de cycle represente
lintervalle minimum qui doit separer deux demandes successives de lecture ou decriture. Le
temps de cycle est egal ou superieur au temps dacc`es. On appelle cadence de transfert ou debit
dune memoire, le nombre maximum dinformations lues ou ecrites par unite de temps.
Une memoire est formee dun certain nombre de cellules, ou cases, contenant chacune une information. Chaque cellule a un numero qui permet de la referencer et de la localiser. Ce numero est
son adresse. Avec une adresse de n bits il est possible de referencer directement au plus 2 n cel-

Chapitre I /AO /NK/05-06

lules. La capacite dune memoire est le nombre total de cellules quelle contient. Elle sexprime
en nombre de bits, doctets (bytes) ou de mots (words). Compte tenu de ladressage binaire,
les capacites des memoires sexpriment en puissances de deux ou en multiples de 210 = 1024.
Lacc`es `a une donnee dans une memoire depend de sa nature. Il peut etre aleatoire, sequentiel
ou hybride

1.2.5

Bus : le squelette des ordinateurs

Un bus est un moyen de communication entre les differents elements constituant une machine.
Il sagit en general dun ensemble de fils electriques. Les differents elements sont relies au bus
par des connecteurs, dont lensemble constitue un fond de panier. Chaque emplacement (slot)
du fond de panier (backplane) peut recevoir une carte electronique (board). Sur un bus circulent
differents types de signaux : adresses, donnees, controle, alimentations.

1.2.6

Entr
ees/Sorties

Pour pouvoir executer une tache, lordinateur doit disposer du programme et des donnees (sil y
a lieu) qui sy ref`erent. D`es que le travail est accompli, les resultats du traitement sont communiques `a lutilisateur. Les techniques dechange dinformations entre lordinateur et son environnement externe sont appelees techniques dEntrees/Sorties (E/S ou I/O pour Input/Output).
Lordinateur echange des informations non seulement avec des operateurs humains, par lintermediaire de terminaux de communication (consoles avec clavier, souris, imprimantes, lecteurs,
etc), mais egalement avec des dispositifs varies : appareils de mesures, capteurs )

Chapitre 2

Unit
e Centrale de Traitement :
Processeur

2.1

Introduction

Fig. 2.1 Structure dun CPU

Chapitre II /AO /NK/06-07

Lunite centrale de traitement (CPU : Central Processing Unit), encore denommee processeur
ou microprocesseur, est lelement de lordinateur qui interpr`ete et execute les instructions dun
programme. Cest le cerveau de lordinateur
La figure 2.1 presente un schema general tr`es simplifie de lorganisation de lunite centrale, sans
tenir compte de la presence dune memoire cache et de linterface avec le bus externe. Mais on
trouve aussi des processeurs, dits specialises, qui peuvent decharger lunite centrale et assurer
des taches en parall`ele. Ceci est tr`es frequent pour la gestion des entrees/sorties.
Une unite centrale se compose dau moins deux unites fonctionnelles : lunite de commande et
lunite de calcul. A lorigine celle-ci sidentifiait `a lunite arithmetique et logique, chargee de
lexecution des operations booleennes et des operations arithmetiques (addition, soustraction,
multiplication, division, comparaison, etc.) pour des entiers. En parall`ele `a cette unite, on peut
trouver une unite de calcul sur les reels ainsi quune unite de traitement dediee aux operations
multimedia (traitement des images et du son).

2.2
2.2.1

Repr
esentation des nombres
Entiers non sign
es

Les entiers positifs ou nuls peuvent etre codes en binaire pur. A laide de N bits nous pouvons
representer 2N nombres compris entre 0 et 2N 1 :
d=

N
X

ak 2k

(2.1)

k=0

2.2.2

Entiers sign
es sous la forme signe et valeur absolue

Lidee la plus naturelle pour coder des entiers signes consiste `a ajouter le signe sous la forme
dun bit supplementaire : 0 pour les entiers positifs et 1 pour les entiers negatifs. Soit pour N + 1
bits :
d = sign(aN )

N
X

ak 2k

(2.2)

k=0

o`
u sign(aN ) = 1 si d < 0 . On code alors

2N

+ 1 entiers compris entre (2N 1) et 2N 1.

Cependant le zero poss`ede deux representations : +0 et -0, ce qui peut etre un inconvenient, en
particulier dans certains tests.

Chapitre II /AO /NK/06-07

2.2.3

Nombres en virgule fixe

Pour le codage des nombres en virgule fixe, on attribue un poids 2m au bit de poids le plus
faible avec n bits de donnees. Les m bits de poids faibles representent la partie fractionnaire du
nombre et les n m bits de poids forts sa partie enti`ere. La position de la virgule est fixee par
le choix de m. Cette representation est applicable aux representations signees.

2.2.4

Nombres en virgule flottante

Fig. 2.2 Format de donnees


En calcul scientifique on a souvent besoin de manipuler des nombres tr`es grands ou tr`es petits.
Pour cela on utilise la notation exponentielle. La norme IEEE 754 consid`ere la representation
suivante :
A = (1)S (1 + M )2(Ebias)

(2.3)

avec 21 < M < 1 o`


u M est la mantisse et E lexposant. La precision de la representation
depend du nombre de bits reserves `a la mantisse. Dans la figure2.2.4 , la representation en
simple precision est codee sur 32 bits. Le bias est de 127 pour la simple precision et 1023 pour
la double precision.

2.3

UAL

Le traitement des operations logiques sont des operations de base pour UAL. Outre ces fonctions
logiques lunite arithmetique et logique est chargee de lexecution doperations arithmetiques
comme addition, soustraction, decalage et multiplication. Nous avons dej`a etudie le principe de
ladditionneur. La figure2.3 donne une representation symbolique de lUAL, comprenant deux
operandes en entree A et B, une destination D = F (A, B), n lignes en entree permettant de
selectionner la fonction F `a executer, dapporter un eventuel report de retenue et de synchroniser
le fonctionnement de lunite, ainsi que m sorties indiquant une eventuelle retenue (carry), un
depassement de capacite (overflow), un resultat negatif, nul ou positif. Les operandes et la
destination sont toujours des registres .

Chapitre II /AO /NK/06-07

10

Accumulateur

Slection de
lopration

UAL

Registre
temporaire
Registre
d tat

Fig. 2.3 Structure dun UAL

2.4
2.4.1

Unit
e de Commande UC
Registres de lUC

Le nombre et le type des registres implantes dans une unite centrale font partie de son architecture et ont une influence importante sur la programmation et les performances de la machine.
Nous voudrions ici passer en revue les registres fondamentaux, que lon retrouve sur toutes les
machines ou presque.

Compteur ordinal

Ce registre (Program Counter : PC) contient ladresse de la prochaine instruction `a executer.


Apr`es chaque utilisation il est automatiquement incremente du nombre de mots correspondant
`a la longueur de linstruction traitee : le programme est execute en sequence. En cas de rupture
de sequence (branchement conditionnel ou non, appel `a une routine, etc.) il est charge avec
la nouvelle adresse. Le compteur ordinal, dont la taille depend de lespace adressable, nest
generalement pas accessible directement au programmeur.

Registre instruction (RI)

Cest le registre de destination dans lequel le CPU transfert linstruction suivante `a partir de la
memoire. Sa taille depend du format des instructions machines. Le decodeur utilise le registre
instruction pour identifier laction (ou le microprogramme) `a entreprendre ainsi que les adresses
des operandes, de destination ou de saut. Le programmeur na pas acc`es au registre instruction.

Chapitre II /AO /NK/06-07

11

Registres g
en
eraux ou banalis
es

Ils permettent de limiter les acc`es `a la memoire, ce qui accel`ere lexecution dun programme. Ils
peuvent conserver des informations utilisees frequemment, des resultats intermediaires, etc. Ils
sont accessibles au programmeur.

Registres dindice ou dindex (XR)

Ils peuvent etre utilises comme des registres generaux mais ils ont une fonction speciale utilisee
pour ladressage indexe. Dans ce cas ladresse effective dun operande est obtenue en ajoutant
le contenu du registre dindex `a ladresse contenue dans linstruction. Ce type dadressage et de
registre est tr`es utile pour manipuler des tableaux. Le programmeur dispose alors dinstructions
permettant lincrementation ou la decrementation du registre dindex. En particulier les registres
dindex peuvent etre incrementes ou decrementes automatiquement apr`es chaque utilisation.
Dans certaines machines ces instructions sont applicables `a tous les registres generaux, il ny a
alors pas de registre dindex specifique.

Registre de base

A de tr`es rares exceptions `a linterieur dun programme on ne fait reference qu`a des adresses
relatives ou virtuelles. Par contre lunite centrale a besoin de connatre les adresses physiques
o`
u se situent reellement instructions et donnees. Celles-ci dependent de lendroit o`
u a ete charge
le programme en memoire, lespace physique occupe par un programme pouvant ne pas etre
contigu. Le role des registres de base est de permettre le calcul des adresses effectives. Un
registre de base contient une adresse de reference, par exemple ladresse physique correspondant `
a
ladresse virtuelle 0. Ladresse physique est obtenue en ajoutant au champ adresse de linstruction
le contenu du registre de base. Le registre de base est encore utilise quand le nombre de bits du
champ adresse ne permet pas dacceder `a toute la memoire.

Registre d
etat (Program Status Word : PSW)

Une partie des bits de ce registre, aussi appele registre condition, constitue des drapeaux (flags)
qui indiquent certains etats particuliers. Par exemple `a la fin de chaque operation on peut y
trouver le signe du resultat (Negatif, Zero ou Positif), ainsi quune eventuelle retenue (Carry) ou
un depassement de capacite (Overflow). Ces bits indicateurs peuvent etre testes pour determiner

Chapitre II /AO /NK/06-07

12

la suite du deroulement du programme : branchements conditionnels. On trouve egalement le


mode de fonctionnement de lunite centrale. Deux modes sont possibles le mode utilisateur et le
mode syst`eme ou superviseur. Dans le mode utilisateur certaines instructions sont interdites :
elles provoquent un deroutement vers le syst`eme dexploitation. Un bit peut egalement indiquer
un deroulement pas `a pas : demande de trace (T). Le registre peut aussi contenir le niveau de
linterruption en cours de traitement ou un masque des niveaux dinterruptions autorises.

Registre pointeur de pile

Une pile est une zone memoire dans laquelle les informations sont rangees de facon contigue. Le
pointeur de pile (Stack Pointer : SP) indique le sommet de la pile : la position de la derni`ere
information enregistree. Dans certaines machines le pointeur de pile indique la position o`
u sera
memorisee la prochaine donnee. Le fonctionnement dune pile est du type Dernier Entre Premier
Sorti (LIFO : Last In First Out). Les deux principales operations liees `a la pile concernent
lajout dun element dans la pile ou le retrait, souvent nommees respectivement PUSH et PULL.
Lorsquune donnee est enregistree dans la pile elle est placee `a ladresse qui suit celle du dernier
mot stocke. Apr`es loperation le pointeur de pile est incremente. Lorsque un mot est retire de la
pile il correspond `a la derni`ere information qui y a ete entree. Apr`es loperation le pointeur est
decremente. Une pile est reservee `a lusage de lunite centrale, en particulier pour sauvegarder
les registres et ladresse de retour en cas dinterruption ou lors de lappel dune procedure. Le
pointeur de pile est accessible au programmeur, ce qui est souvent source derreur. Certaines
machines sont dotees de plusieurs pointeurs de piles.
Pour ameliorer les performances dun processeur il faut disposer du plus grand nombre de registres possible. On reduit ainsi les acc`es `a la memoire. De plus, il est preferable deviter de les
specialiser. On evite ainsi des transferts entre registres, par exemple pour calculer la valeur dun
indice et utiliser ensuite cet indice pour modifier une case dun tableau.

2.4.2

Modules de lUC

Horloge

Une horloge est un syst`eme logique, pilote par un oscillateur, qui emet periodiquement une serie
dimpulsions calibrees. Ces signaux periodiques constituent le cycle de base ou cycle machine.
Nous avons dej`a vu (dans le premier chapitre) les differentes phases de lexecution dune instruction. Un cycle dinstruction peut se decomposer en un cycle de recherche (instruction et

Chapitre II /AO /NK/06-07

13

operandes) et un cycle dexecution. On rencontre parfois le terme de cycle cpu pour indiquer le
temps dexecution de linstruction la plus courte.

S
equenceur

Le sequenceur est un automate distribuant, selon un chronogramme precis, des signaux de commande aux diverses unites participant `a lexecution dune instruction. Il peut etre cable ou
microprogramme.
Un sequenceur cable est un circuit sequentiel complexe comprenant un sous-circuit pour chacune
des instructions `a commander. Ce sous-circuit est active par le decodeur.

Lidee de la microprogrammation a ete introduite par Maurice Wilkes en 1951. Il est en effet toujours possible de remplacer un circuit logique par un transcodeur ou une ROM. Considerons un
ensemble de n fonctions logiques dependant de m variables logiques. Les valeurs de ces fonctions
pour les N = 2m combinaisons possibles peuvent etre calculees (table de verite) et memorisees
sous forme de N mots de n bits. Ensuite en utilisant les m variables sous forme dune adresse il
est possible de restituer le resultat recherche.

De meme pour reproduire une sequence doperations elementaires il suffit dun mot par tranche
de temps. Cette serie de mots constitue un microprogramme. Le code operation de linstruction
`a executer peut etre utilise pour definir le pointeur sur la premi`ere microinstruction du microprogramme. En fonction du code operation le contenu dun compteur est initialise, puis celui-ci
sincremente ensuite `a chaque cycle dhorloge. La periode de lhorloge utilisee `a ce niveau peut
etre plus elevee que celle qui r`egle la cadence des autres elements de lunite centrale. Ce compteur
sert `a adresser une memoire morte.

2.5

Format dinstruction

Les ordinateurs sont capables deffectuer un certain nombre doperations elementaires. Une instruction au niveau machine doit fournir `a lunite centrale toutes les informations necessaires
pour declencher une telle operation elementaire : type daction, o`
u trouver le ou les operandes,
o`
u ranger le resultat, etc. Cest pourquoi une instruction comporte en general plusieurs champs
ou groupes de bits. Le premier champ contient le code operation. Les autres champs peuvent

Chapitre II /AO /NK/06-07

14

comporter des donnees ou lidentification des operandes. Sur certaines machines les instructions
sont toutes de meme longueur, sur dautres cette longueur peut varier avec le code operation ou
le mode dadressage.
On distingue 5 groupes dinstructions :
transferts de donnees : de memoire `a registre, de registre `a registre, de registre `a memoire ;
operations arithmetiques : addition, soustraction, multiplication et division ;
operations logiques : ET, OU inclusif, NON, OU exclusif, etc. ;
controle de sequence : branchements conditionnels ou non, appel de procedure, etc. ;
Interruptions d entrees/sorties ;
Le choix de la longueur et du format des instructions est une etape tr`es importante dans la
conception dune nouvelle architecture. Cest encore une affaire de compromis. La longueur des
instructions se repercute sur la dimension de la memoire centrale donc sur le co
ut : il faut deux
fois plus de bits pour stocker un programme de n instructions de 32 bits quun programme
de n instructions de 16 bits. La longueur des instructions par rapport `a celle du mot memoire
influence egalement le temps de traitement : il faut tenir compte du temps de transfert des
mots qui constituent une instruction. Ce choix depend des vitesses relatives dacc`es memoire
et de traitement effectif par lunite centrale. Le temps de recherche doit etre minimise pour les
processeurs tr`es rapides.
La largeur en bits de chacun des differents champs est egalement importante, en particulier
pour le code operation. Le nombre de bits est determine par le nombre doperations distinctes
envisagees : n bits autorisent 2n instructions. Cependant toutes les operations ne necessitent
pas forcement le meme nombre de champs ou des champs de meme longueur. Ainsi sur une
machine meme pour une longueur dinstruction donnee le format des instructions peut ne pas
etre fixe. Il peut dependre du type doperation. Pour illustrer le concept du code operation
expansif imaginons des instructions de 16 bits decoupees en quatre champs de 4 bits. Avec ce
format nous pouvons definir 16 instructions `a 3 adresses. Cest peu et toutes les instructions ne
necessitent pas trois adresses.
Dautre part comme la capacite memoire ne cesse de crotre les champs dadresse demandent
de plus en plus de bits. Cest pourquoi, pour eviter une inflation de certains registres comme le
registre instruction, aujourdhui on pref`ere les instructions `a une adresse. On peut par exemple
faire en sorte quun des operandes soit toujours laccumulateur et que ce meme registre recueille
le resultat.

Chapitre II /AO /NK/06-07

2.6

Evaluation de performance de CPU

15

Chapitre II /AO /NK/06-07

16

Chapitre 3

M
emoires

3.1

Introduction

Nous savons que dans un ordinateur toutes les informations : valeur numerique, instruction,
adresse, symbole sont manipulees sous une forme binaire. Ces informations doivent en general
etre conservees pendant un certain temps pour permettre leur exploitation. Ce role est devolu
aux memoires chargees de conserver programmes, donnees provenant de lexterieur, resultats
intermediaires, donnees `a transferer `a lexterieur.
Il faut pour cela des memoires `a lecture et ecriture ou memoires vives, qui permettent denregistrer une information, de la conserver et de la restituer. Ces memoires sont, dautre part, `
a acc`es
aleatoire (RAM : Random Acces Memory) le temps dacc`es `a linformation est independant
de sa place en memoire. Cette appellation, dorigine historique, est toujours synonyme de
memoire vive. Bien que tr`es repandue cette appellation nest plus suffisante car tous les circuits `a semi-conducteur sont aujourdhui `a acc`es aleatoire. Lacc`es sequentiel ne porte plus que
sur les memoires magnetiques (disques ou bandes). Par contre, une memoire vive est volatile :
la conservation de son contenu necessite la permanence de son alimentation electrique. Linformation elementaire, ou bit (binary digit), est memorisee dans une cellule ou point memoire.
Pour pouvoir identifier individuellement chaque mot on utilise k lignes dadresse. La taille dun
bloc memoire est donc 2k , le premier mot se situant `a ladresse 0 et le dernier `a ladresse 2k 1.
Une ligne de commande (R/W) indique si la memoire est accedee en ecriture ou en lecture.

Chapitre IV /AO /NK/05-06

3.2

18

Caract
eristiques des m
emoires

La memoire est tout dispositif electronique capable de conserver ou de restituer une information.
Un mot memoire designe lensemble de bits pouvant etre lus ou ecrits .
Les caracteristique des memoires sont :
1. Differents types physiques de memoires,
2. Duree de memorisation,
3. Capacite
4. Emplacement,
5. Performance,
6. Mode dacc`es,
7. Hierarchie.

3.2.1

Diff
erents types physiques de m
emoires

Les differents supports utilises sont principalement :


semi-conducteur(exemple registre)
magnetique (exemple disquette)
optique (exemple cd-rom)

3.2.2

Dur
ee de m
emorisation

Elles peut etre fonction


du temps :
quasi-permanente(disque)
ROM `a temporaire (memoire dynamique)
la presence dalimentation electrique (volatile : RAM)

3.2.3

Emplacement

Il correspond `a la localisation de la memoire dans la machine :


dans le processeur (registre)
`a linterieur au boitier de lUC (memoire principale)
`a lexterieur au boitier de lUC (memoire secondaire)

Chapitre IV /AO /NK/05-06

3.2.4

19

Capacit
e

Elle represente la nombre dinformation `a stocker. Elle est exprimee en octet ou mot de 8, 16
ou 32 bits.

3.2.5

Performance

On consid`ere principalement les informations suivantes :


le temps dacc`es : le temps necessaire `a une operation de lecture ou decriture : c-`a-d le temps
qui separe linstant o`
u loperation est demande de linstant o`
u loperation est acheve.
le debit : la quantite dinformation lue ou ecrits par unite de temps.Il est exprime en Mo/s.

3.2.6

Mode dacc`
es

Il decrit la methode de recherche dune information. Il sera expliciter dans la paragraphe qui
suit

3.2.7

Hi
erarchie

Lideal est de posseder une memoire illimitee et tr`es rapide. Or le temps dacc`es augmente avec
la capacite. lidee adopte pour lorganisation de la memoire est donc de considerer que seules les
donnees les plus utilises necessitent un temps dacc`es tr`es petit.
Ainsi la memoire est organise en une hierarchie :
du plus rapide `a le plus lent,
de la capacite la plus faible `a la capacite la plus grande ,
du composant le plus co
uteux au composant le moins co
uteux

3.3

Modes dacc`
es

Le mode dacc`es `a une memoire depend surtout de la mani`ere dont on lutilise. Il y a plusieurs
types dont on cite :
Acc`es aleatoire,
Acc`es par le contenu,

Chapitre IV /AO /NK/05-06

20

Acc`es sequentiel,
Acc`es direct.

3.3.1

Acc`
es al
eatoire

Il sagit dun mode dacc`es le plus employe. Il est utilise par :


les memoires qui composent la memoire principale,
quelques memoires caches.
A chaque mot memoire est associee une adresse unique. Nimporte quelle adresse peut etre
traitee. La taille dune adresse depend de la capacite de la memoire. Les operations associees `
a
ce mode dacc`es :
lecture,
ecriture.
Le temps dacc`es est constant(il est independant des acc`es precedents).

3.3.2

Acc`
es par le contenu

Ce mode dacc`es caracterise les memoires appelees memoires associatives.Il est employe principalement par les memoires caches.
Le principe est similaire `a la memoire `a acc`es aleatoire sans notion dadresse : un mot est retrouve par une partie de son contenu.
En general, une memoire associative est divisee en 2 parties :
1. une partie content un descripteur (cle ) et permettant une comparaison en parall`ele de ce
descripteur avec une autre autre,
2. une 2eme partie fournissant le mot associe au descripteur
Les operations associees `a ce mode dacc`es :
ecriture ,
lecture,
existe,
retirer.
Le temps dacc`es est constant.

Chapitre IV /AO /NK/05-06

3.3.3

21

Acc`
es s
equentiel

Il est employe pour larchivage dimportants volumes de donnees Les diverses informations sont
ecrites les une derri`ere les autres : pour acceder `a une donnee, il faut avoir lu les precedentes.
Les operations associees `a ce mode dacc`es :
debut : se positionner sur la premi`ere donnee,
lecture : lire une donnee,
ecriture : ecrire donnee,
fin : se positionner apr`es la derni`ere donnee
Le temps dacc`es est variable.

3.3.4

Acc`
es direct

Il est employe pour les disques .


Chaque bloc de donnees a une adresse unique. Une donnee est accedee en accedant le bloc qui
la contient, puis en se deplacant dans le bloc jusqu`a sa position. Les operations associees `
a ce
mode dacc`es :
lecture,
ecriture,
Le temps dacc`es est variable.

3.4

M
emoire Principale

Lacc`es `a la memoire principale est le chemin le plus important dans lordinateur.

3.4.1

Types

Les memoires composant la memoire principale sont des memoires `a base de semi-conducteurs,
employant un mode dacc`es aleatoires. Elles sont de deux types : volatiles ou non.
Le terme RAM correspond aux memoires volatille. Elles stockent des donnees temporaires.
Actuellement, on en trouve principalement 2 types :
RAM dynamique (DRAM) : des condensateurs sont utilises comme unites de memorisation.
Elles necessitent un rafraichissement periodique. Elles sont simples, denses, peu couteuses.
RAM statique : des bascules sont utilisees comme unites de memorisation. Elles sont plus

Chapitre IV /AO /NK/05-06

22

rapides, et ne necessitent pas de rafraichissement.


Le circuit DRAM demeure la brique de base de la memoire principale.
Les ROM (Read Only Memory) sont utilisees pour stocker des informations permanentes. On
en trouve de plusieurs types, selon la technologie et le nombre decriture :
ROM : ecriture unique lors de la fabrication,
PROM : ecriture unique apr`es fabrication,
EPROM : admet un nombre decriture limite

3.4.2

Organisation

Lelement de base dune memoire semi-conducteur est appele cellule. Une cellule poss`ede 3
connexions
une entree de selection indiquant si la cellule est concernee par loperation en cours
une entree de controle indiquant la nature de loperation :Lecture ou ecriture
une ligne bidirectionnels de donnees
Pour realiser un circuit RAM de M mots de B bits, on doit disposer de log2 (M ) lignes dadresse
et de B lignes de donnees.

3.5

M
emoire Cache

La performance des microprocesseurs augment de environ 55% par an La performance des


memoires augmente de 7% par an. La cache memoire est un niveau de memorisation intermediaire
rapide et de petite capacite pour memoriser les donnees ou instructions les plus recement accedes.
Une cache est situee entre le processeur et la memoire.

3.5.1

Principe

La recherche dune donnee dans le cache avant de la rechercher dans la memoire principale :
succ`es de cache : la donnee est presente dans la cache,
Defaut de cache : la donnee est absente dans la cache,
Un bloc est un ensemble de mots dadresses contigues. La memoire est decoupe en des blocs de
meme taille.

Chapitre IV /AO /NK/05-06

3.5.2

23

Contenu

Avec lemploi des caches multiples, nous avons generalement une didie `a la stockage de donnee
et lautre au stockage des instructions. Cela augmente les performances du processeur pour
lexecution des taches en parall`ele.

3.5.3

Performance

On peut evaluer la performance dune memoire en utilisant un cache par le calcul du temps
dacc`es memoire moyen TaM m est fonction du temps de succ`es TS ,taux dechec e et la penalite
dechec pe :
TaM m = TS + e pe

(3.1)

e peut etre evalue en fonction du nombre de defaut de cache Nd et le nombre dacc`es total Na :
e =

3.5.4

Nd
Na

(3.2)

Types

Il y a trois types pour la correspondance de la m`emoire principale avec la cache :


directe : lemplacement du bloc est donne par : numero de bloc modulo nombre de blocs dans
le cache.
associative :le placement du bloc de m`emoire peut etre nimporte o`
u dans la cache.
associtive par ensemble : chaque bloc de la memoire peut etre place nimporte o`
u dans la
cache parmi un ensmble de n blocs

3.5.5

Algorithmes de remplacement

Il existent plusieurs types dalgorithmes de remplacement. Parmi eux, on cite :


choisir un bloc de mani`ere aleatoire
choisir le bloc le plus ancien du cache (FIFO)
choisir le bloc le moins recement utlise(LRU)
choisir le bloc le moins frequement utilise(LFU)

Chapitre IV /AO /NK/05-06

3.5.6

24

Politiques d
ecriture

Deux cas se presentent : le bloc quon souhaite ecrire dans la cache ou non
Dans le premier cas, deux m`ethodes sont possibles :
ecrire simulatnement dans la cache et dans la m`emoire
ecire dans la cache seulement et differer lecriture dans la memoire lorsquon besoin pour librer
de lespace.
Dans le deuxi`eme cas, on peut choisir entre :
de charger le bloc dans la cache et deffectuer loperation decriture
ecrire directement dans la m`emoire

3.6

Conclusion

Dans ce chapitre, nous avons decrit les differentes types de memoires. Il sagit principalement
de la memoire principale et la memoire cache. Les autres derivees de memoires presentent un
role auxiliaire par rapport `a la fonctionnement de base.

Chapitre 4

Interconnexions

4.1

Introduction

Dans ce chapitre, nous essayons de completer lanalyse des composants dun PC. Il nous reste `a
traiter :
Bus,
interfaces dE/S, qui utilise les interruptions,
Architectures avancees.

4.2
4.2.1

Bus
D
efinition et structure

Definition :Un bus est un chemin partage entre plusieurs unites.


Un seul equipement transmet `a un instant donne. Un bus consiste typiquement de 50 `a 100
lignes transmettant des signaux representant des 1 ou des 0. Chaque ligne poss`ede une fonction
propre.
On distingue 3 groupes de fonction differentes :
les lignes de donnees
les lignes dadresses
les lignes de controle, dont la fonction est de controler lacc`es et lutilisation des bus dadresses
et donnees. Ces signaux sont de deux types :
des signaux de timing,

Chapitre V /AO /NK/05-06

26

des signaux de commande.

Fig. 4.1 Architecture de bus

4.2.2

Fonction Sch
ematique

Une transaction typique se compose de 3 parties :


lobtention du bus,
lenvoi dune adresse et
lenvoi des donnees.
On parlera de transaction quand un module veut transferer des informations : une fois le bus
obtenu, lemetteur transmet des donnees.

Chapitre V /AO /NK/05-06

4.3
4.3.1

27

Interruptions
Notion dinterruption

Lorsquune machine fonctionne, sous le controle dun syst`eme dexploitation, lunite centrale est
en permanence susceptible dexecuter un programme.
Le probl`eme se pose alors de savoir `a quel moment lunite centrale va pouvoir prendre en compte
les evenements exterieurs `a la sequence dinstructions quelle execute : requete dun peripherique,
frappe dune touche sur un clavier, insertion dune disquette, fin dimpression, passage dun objet devant un capteur, syst`eme dalarme. A chacun de ces evenements correspond une tache
`a executer par lunite centrale. Cette tache est codee sous forme dune procedure du syst`eme
dexploitation. Pour pouvoir executer cette procedure, il faut que se produise une rupture de
sequence . Cette rupture doit avoir lieu dans un delai assez court. Pour les probl`emes de type
temps reel un temps maximum de prise en compte et de traitement doit pouvoir etre garanti.
Comment signaler au CPU un evenement asynchrone ? Une premi`ere approche, dite des drapeaux, consiste `a tester periodiquement en sequence chaque unite. Cette technique nest pas tr`es
economique en temps, elle demande une attention constante du CPU et la liste exhaustive des
intervenants `a tester. Dans une autre approche les machines peuvent etre dotees dun syst`eme
dinterruptions. Cette technique consiste `a pouvoir interrompre brutalement lexecution du programme en cours `a la fin de linstruction courante. Apr`es sauvegarde de son etat present, le
controle de lunite centrale est confie `a un sous-programme du syst`eme dependant de la nature
de linterruption.

4.3.2

Syst`
eme dinterruptions hi
erarchis
ees

A la notion dinterruption sest tr`es rapidement associee la notion de priorite, de mani`ere `a ce


que certaines requetes soient servies avant dautres.
On trouve les syst`emes dinterruptions les plus elabores dans les ordinateurs orientes vers les
applications temps reel de conduite de processus industriels ou dacquisition de donnees. Dans
certains cas chaque niveau est decoupe en sous-niveaux de priorites differentes. Un bon syst`eme
doit permettre au programmeur de pouvoir :
activer/invalider le syst`eme dinterruption dans son ensemble ;
armer/desarmer chacune des interruptions individuellement : une interruption desarmee est
ignoree ;
masquer/demasquer individuellement chaque interruption : une interruption masquee nest
pas ignoree, elle est memorisee, mais elle nest prise en compte que lorsquelle est demasquee ;
etablir une hierarchie entre les sources dinterruption avec plusieurs niveaux de priorite, si

Chapitre V /AO /NK/05-06

28

possible de facon dynamique ;


associer un programme specifique `a chaque interruption.

4.3.3

Causes dinterruption

Il y a deux grandes categories dinterruptions : les interruptions externes et les interruptions


internes. Les interruptions externes materielles sont dues aux peripheriques ou `a des dispositifs
exterieurs au syst`eme informatique . Dans le contexte de controle de processus, des phenom`enes
physiques doivent etre signales au syst`eme, par exemple le passage dun objet devant un detecteur.
Dans ce cas cest le dispositif externe au syst`eme qui emet un signal qui est recu par le syst`eme
comme une interruption.Le programme courant lui-meme peut declencher une interruption `a
laide dune instruction speciale.
Les interruptions internes produites par le processeur, sur des erreurs . Ces interruptions sont
generalement appelees exceptions.

4.4
4.4.1

E/S
Principe

Linformatique sert au traitement de linformation. Il est donc indispensable detre capable


de fournir linformation `a traiter `a un ordinateur et de recuperer les resultats. Le syst`eme
informatique doit pouvoir communiquer avec lexterieur. Ces operations dechange constituent
les Entrees/Sorties (E/S ou I/O : Input/Output). A lorigine loperateur entrait les informations
`a laide de clefs ou interrupteurs. On a ensuite utilise rubans et cartes perfores dont linvention
est largement anterieure `a celle de linformatique. Un ruban perfore, en papier resistant, pouvait
contenir des trous sur 5 ou 7 pistes parall`eles. Demploi facile, les rubans etaient cependant
fragiles et difficiles `a modifier. Cest pourquoi les rubans ont progressivement ete remplaces
par les cartes perforees. Une carte, en carton et de forme rectangulaire, comptait 80 colonnes
et 12 lignes. Elle pouvait donc recevoir jusqu`a 80 mots de 12 bits. Par exemple 80 caract`eres.
Chaque caract`ere etait represente, selon le code Hollerith, `a laide de perforations dans la colonne
correspondante. Bien quayant disparue, linfluence de la carte perforee sest longtemps faite
sentir dans certains formats, comme celui des ecrans alphanumeriques `a 80 colonnes. Ensuite sont
apparus claviers, imprimantes, bandes magnetiques, disques et disquettes, terminaux interactifs,
souris, crayons optiques. Les ordinateurs peuvent egalement recevoir les informations de capteurs
et envoyer des signaux electroniques `a des peripheriques : commande de processus industriels ou

Chapitre V /AO /NK/05-06

29

acquisition de donnees. Ils peuvent aussi echanger des informations entre eux par lintermediaire
des reseaux.

4.4.2

Gestion des entr


ees/sorties

Un dispositif dentree sortie comprend en general deux parties : un appareil et un controleur de


peripherique.(voir figure??)
Ce dernier sert dinterface entre lappareil et le processeur. Il recoit les requetes du processeur
et les transforme en commandes specifiques au peripherique, et reciproquement. Ce mecanisme
permet une grande souplesse et ne necessite pas dinstructions specialisees `a chaque type possible
de peripherique. Lunite centrale de traitement communique avec un peripherique uniquement
en mode lecture ou ecriture comme pour la memoire. Les donnees proprement dites sont accompagnees de commandes (actions `a realiser) et dinformations (par exemple etat du peripherique).
Le controleur de peripherique est charge dinterpreter les requetes ainsi transmises par le processeur et il met egalement en forme les informations `a renvoyer au processeur. Un controleur
peut etre equipe dun processeur, de registres et dune memoire tampon. Il peut etre charge de
la gestion des incidents, du controle derreurs, de la conversion de format, etc. Cest le controleur
de peripherique qui declenche lenvoi dun signal dinterruption.
Par rapport au dialogue on classe souvent les peripheriques en deux categories :
Les peripheriques par caract`eres, pour lesquels la communication se fait sous la forme dun
flux de caract`eres par lintermediaire de registres.
Les peripheriques par blocs, pour lesquels linformation est accessible par blocs, chaque bloc
disposant dune adresse.
Selon les architectures les adresses des registres ou des blocs peuvent faire partie de la memoire
principale ou correspondre `a des zones distinctes `a cette memoire centrale. Ces adresses peuvent
etre attribuees lors de la mise en place du materiel (par un exemple au moyen de petits interrupteurs ou cavaliers `a positionner) ou configurees dynamiquement.
Lorsque les quantites de donnees `a echanger sont importantes, il est penalisant de charger le
processeur de gerer ces echanges. Il est alors preferable de permettre une communication directe
entre le peripherique et la memoire, ou meme entre deux peripheriques. Ce mode de communication est appele DMA : Direct Memory Access. La gestion des echanges sur le bus de donnees
est alors deleguee `a un controleur DMA.
Sur le plan logiciel, on trouve une couche supplementaire sous le syst`eme dexploitation pour
lequel, nous avons dit, le controle-commande dun peripherique peut se limiter `a des acc`es
memoire. Cette couche, appelee pilote ou driver, traduit les commandes generales dechanges
par caract`eres ou par blocs en commandes specifiques au peripherique, avec par exemple la gestion des signaux de controle de la liaison, des contraintes de temps `a respecter. Ces pilotes sont

Chapitre V /AO /NK/05-06

30

fournis avec le materiel.

4.5

Architectures avanc
es : RISC et CISC

Le concept RISC (Reduced Instruction Set Computer) est apparu en 1975 chez IBM (IBM801 de
John Coke), dapr`es des idees de Seymour Cray, avant detre approfondi dans les annees 80 par
les universites de Stanford et Berkeley. Il repose sur la constatation que meme les syst`emes ou les
applications les plus sophistiques nutilisent quune petite fraction du jeu dinstructions `a leur
disposition. Des etudes statistiques, portant sur un grand nombre de syst`emes dexploitation et
dapplications reels, ont montre que :
Dans 80 % dun programme on nutilise que 20 % du jeu dinstructions.
Linstruction dappel dune procedure est la plus gourmande en temps : sauvegarde et restitution du contexte et passage des param`etres.
80 % des variables locales sont des scalaires.
90 % des structures de donnees complexes sont des variables globales.
La profondeur maximale dappels imbriques est en moyenne de huit. Une profondeur plus
importante ne se rencontre que dans 1
Les processeurs classiques sont desormais appeles CISC (Complex Instruction Set Computer)
par opposition au terme RISC.
Lapparition de memoires tr`es rapides `a un co
ut tr`es faible a constitue un des principaux arguments technologiques ayant favorise les processeurs RISC. A lorigine les temps de decodage
dune instruction complexe et dexecution du microcode correspondant etaient masques par les
temps dacc`es `a la memoire. En reduisant celui-ci, le goulot detranglement sest deplace vers les
unites de decodage et dexecution. Il a donc fallu envisager un jeu dinstructions elementaires
cablees simplifiant larchitecture du processeur et reduisant les temps dexecution. Dautre part,
la capacite memoire netant pratiquement plus limitee il ny avait pas dobstacle `a augmenter la
taille des programmes : la fonctionnalite de chaque instruction etant limitee il faut generer un
plus grand nombre dinstructions (en pratique pas plus de 30 %).
Par contre la generation de code est plus compliquee. Les instructions complexes facilitent la traduction des programmes ecrits en langage evolue. Cest egalement au compilateur de se charger
de loptimisation du code en fonction des caracteristiques des processeurs. Les recherches ayant
debouche sur les processeurs RISC ont egalement porte sur les compilateurs. Levolution des
outils logiciels a vu lemergence de compilateurs evolues permettant une optimisation efficace
des codes generes avec des gains de lordre de 20 % en temps dexecution. Le developpement
des compilateurs, pris en charge par les concepteurs de syst`emes, et le developpement des architectures sont tr`es interdependants. Passons en revue les idees de base qui font la specificite des
architectures RISC. Lobjectif recherche est dexecuter une instruction `a chaque cycle dhorloge.

Chapitre V /AO /NK/05-06

31

Ceci est rarement realise sur la totalite du jeu dinstructions. Lobtention de cette performance
repose sur la mise en oeuvre de plusieurs principes :
simplification des instructions ;
simplification du format : longueur fixe des instructions et des champs ;
restriction des modes dadressage ;
sequenceur cable pour une execution rapide ;
utilisation intensive de registres tr`es nombreux ;
limitation des acc`es memoire `a deux instructions : LOAD et STORE ;
utilisation de caches ;
traitement anticipe des instructions (pipeline) : ce qui permet dobtenir un resultat `a chaque
cycle.
Le role du compilateur est essentiel pour loptimisation du code engendre. Un effort particulier
est fait sur les points suivants :
allocation optimale des registres ;
elimination des redondances ;
optimisation des boucles, en ne conservant `a linterieur que ce qui est modifie ;
optimisation du pipeline ;
optimisation du choix des instructions.
Le compilateur doit etre capable dexploiter au maximum les caracteristiques de larchitecture.
Il nous reste `a decrire une organisation particuli`ere des registres internes que lon rencontre dans
certaines architectures RISC. Elle est identifiee sous la denomination de technique des fenetres
de registres. destinee `a faciliter le passage de param`etres lors dappel de procedures. Le nombre
des registres est toujours important dans un processeur RISC. Il y avait par exemple 138 registres dans le prototype RISC-I de Berkeley avec lequel la technique a ete developpee. Celle-ci
repose sur les statistiques dej`a mentionnees sur le partage des variables et la profondeur dimbrication des appels de procedures. Pour le RISC-I les dix premiers registres, accessibles `a tous les
niveaux, sont destines `a recevoir les variables globales. Les 128 registres suivants sont divises en
huit groupes ou fenetres. Chaque groupe correspond `a une profondeur dappel. La profondeur
maximale est donc limitee `a huit. Les six premiers registres dun bloc servent `a lechange des
informations avec letage superieur. Les dix autres sont disponibles pour les variables locales.
Outre les registres globaux, chaque niveau intermediaire dispose donc de vingt-deux registres :
les seize qui lui sont propres et les six premiers registres de letage suivant . Cette technique
simplifie les echanges dinformations entre les procedures appelantes et appelees. Elle demande
cependant beaucoup de temps lors de la sauvegarde des registres en cas dinterruption.
Les architectures CISC et RISC, utilisant les memes technologies, ont de plus en plus tendance
a se rapprocher. Certains processeurs, par exemple, traduisent les instructions CISC en suites
dinstructions RISC avant lexecution. Cela permet dassurer la compatibilite des nouveaux processeurs avec tous les logiciels developpes anterieurement, ce qui est indispensable si on veut
pouvoir vendre le nouveau processeur.

Chapitre V /AO /NK/05-06

32

TD 1
Exercice 1 : D
ecalage

On consid`ere d(0 : N ) N = 8
d(0 : N ) = 10111001

(4.1)

Realiser les operations suivantes en supposant que d est un entier positif


1. decalage `a droite,
2. decalage `a gauche,
3. Rotation `a droite,
4. rotation `a gauche.
Determiner pour chaque cas la valeur de la resultat R en binaire puis en base 10

Exercice 2 : Format de donn


ees

on considere d(0 : N ) N = 16
d(0 : N ) = 1111000011111011
On consid`ere que d est un
1. entier natural,
2. entier relatif,
3. avec virgule flotante selon la norme de IEEE 754.
Determiner pour chaque cas la valeur de d en
base 16
base 10
base 8

(4.2)

TD1/AO /NK/05-06

34

Exercice 3 : Soustraction

On Cherche `a realiser loperation de soustraction F = f (a, b). Les entrees a et b sont codes sur
4 bits.
1. Tracer la table de verite de F
2. Simplifier F en utilisant le tableau de Karnaugh
3. Optimiser la conception du bloc soustracteur en utilsant que des portes NAND

TD 2
Exercice 1 : Conception dune m
emoire principale

A partir dun circuit RAM 1024x8 bits de circuits de ROM 4096x8 bits decrites par la figure
4.2, on cherche `a realiser un espace adressable nommee M em de 21 6 mots de 32 bits et disposer
de 4096 mots memoires en RAM 4096 mots memoire en ROM.

Fig. 4.2 Boitiers de memoire utilisee


1. Determiner lorganisation possible de M em avec les outils fournis.
2. Donner un mode dacc`es possible `a M em.

Exercice 2 : Performance de la m
emoire cache

Lors dexecution dune instruction, le processeur prend du temps pour la decoder, acceder aux
donnees en memoires necessitees par cette instruction et de declencher les operations sur ces
donnees. Voici le cas suivant :

35

TD2/AO/RT2 /NK/05-06

36

Duree dun cycle horloge

:Th

Penelite dechec pe

:10 cycles

Duree dune instruction (sans reference memoire)

:2 cycles

Nombre de reference de memoire par instruction NrM/I

:1.33

Taux dechec e

: 2%

Temps dacc`es succ`es TS


:negligeable
On rappelle que le temps moyen dacc`es memoire TaM m est fonction du temps de succ`es TS ,taux
dechec e et la penalite dechec pe :
TaM m = TS + e pe

(4.3)

e peut etre evalue en fonction du nombre de defaut de cache Nd et le nombre dacc`es total Na :
e =

Nd
Na

Determiner :
1. TaM m
2. Temps dexecution moyen dun instruction TIm

(4.4)

Devoir surveille 2

Examen2

Session : principale 2
de controle2

Mati`ere

:Architecture des Ordinateurs

Semestre

:1

Enseignante

:N. KAMOUN MASMOUDI

Date

:23/11/05

Fili`ere

:RT2

Duree

:1H30mn

Bar`eme

:(6.5,7,6.5)(pt)

Documents autorises

:oui2

Nombre de pages

:3

non2

Exercice 1 : CPU (1.5,3,1.5,0.5)(pt)

On Consid`ere la figure 1
1. Donner la nomenclature des blocs A1, A2 et A3,
2. Expliciter labreviation de chaque composante fonctionnelle,
3. Expliquer bri`evement le fonctionnement du CPU,
4. Quel est le type de cette architecture.

Exercice 2 : Format de donn


ees et outils de base (1.5,1.5,4)(pt)

On consid`ere une variable binaire d(0 : N ) avec N = 7.


d(0 : N ) = 01 11 00

00

(4.5)

1. On consid`ere que d est un entier natural. Determiner pour chaque cas la valeur de d en
base 16,10,8.
2. On garde la meme condition precedente.Determiner le resultat en base 2 pour chaque
operation suivante :
(a) Decalage `a gauche,
(b) Decalage `a droite,
(c) Rotation `a droite en donnant la difference par rapport `a loperation precedente.
3. On definit une autre variable binaire c(0 : N ).
c(0 : N ) = 11 11 01 00
Determiner le resultat sur 16 bits pour les differentes operations suivantes :

(4.6)

(a) Addition de c et d
(b) Soustraction de c avec d ;(c d)
(c) Multiplication c et d

Exercice 3 : Conception dun multiplieur (2,2.5,2)(pt)

On consid`ere deux variables binaires e1 (0 : N ), e2 (0 : N ) avec N = 1. e1 (0 : N ) = 01 et


e2 (0 : N ) = 11
1. Donner la sortie s(0 : M ) la multiplication des deux variables dentrees e1 , e2 en precisant
la valeur de M ,
2. On prend M = 4 `a la suite de lexercice.
(a) Es on na pris la totalite de linformation de multiplication ?
(b) Tracer la table de verite pour s(2),
(c) Determiner les equations qui reagissent les differentes entrees et sorties `a laide de
tableau de Karnaugh.
(d) Donner un schemas de conception pour s(4) avec des portes Nand.
3. Proposer une autre solution pour resoudre le probl`eme de conception dun multiplier

Vous aimerez peut-être aussi