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 Architecture des ordinateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 1.1.2 1.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architecture g en erale et blocs fonctionnels . . . . . . . . . . . . . . . . .

1 1 1 2 3 3 4 4 5 6 6

Quelques g en eralit es sur les architectures . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 Architecture de Von Neumann . . . . . . . . . . . . . . . . . . . . . . . . Architecture de Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . . Processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M emoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus : le squelette des ordinateurs . . . . . . . . . . . . . . . . . . . . . . Entr ees/Sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Unit e Centrale de Traitement : Processeur 2.1 2.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repr esentation des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 7 8

ii 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.4 Entiers non sign es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entiers sign es sous la forme signe et valeur absolue . . . . . . . . . . . . 8 8 9 9 9 10 10 12 13 15

Nombres en virgule xe . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nombres en virgule ottante . . . . . . . . . . . . . . . . . . . . . . . . .

UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unit e de Commande UC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 2.4.2 Registres de lUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modules de lUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5 2.6

Format dinstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluation de performance de CPU . . . . . . . . . . . . . . . . . . . . . . . . . .

M emoires 3.1 3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caract eristiques des m emoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 Di erents types physiques de m emoires . . . . . . . . . . . . . . . . . . . Dur ee de m emorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . Emplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capacit e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17 17 18 18 18 18 19 19 19 19

Mode dacc` es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hi erarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iii 3.3 Modes dacc` es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 3.3.2 3.3.3 3.3.4 3.4 Acc` es al eatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acc` es par le contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acc` es s equentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acc` es direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 20 21 21 21 21 22 22 22 23 23 23 23 24 24

M emoire Principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 3.4.2 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.5

M emoire Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algorithmes de remplacement . . . . . . . . . . . . . . . . . . . . . . . . . Politiques d ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.6

Conclusion

4 Interconnexions 4.1 4.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus 4.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D enition et structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25 25 25 25

iv 4.2.2 4.3 Fonction Sch ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 27 27 27 28 28 28 29 30

Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 4.3.2 4.3.3 Notion dinterruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syst` eme dinterruptions hi erarchis ees . . . . . . . . . . . . . . . . . . . . Causes dinterruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4

E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 4.4.2 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion des entr ees/sorties . . . . . . . . . . . . . . . . . . . . . . . . . .

4.5

Architectures avanc es : RISC et CISC . . . . . . . . . . . . . . . . . . . . . . . .

Table des gures


2.1 2.2 2.3 Structure dun CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format de donn ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure dun UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 10

4.1 4.2

Architecture de bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Boitiers de m emoire utilis ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26 35

Chapitre 1

Architecture Fonctionnelle

1.1
1.1.1

Architecture des ordinateurs


Introduction

Apparue au milieu du 20 eme si` ecle, linformatique a connu et conna t une evolution extr emement rapide. A sa motivation initiale qui etait de faciliter et dacc el erer le calcul, se sont ajout ees de nombreuses fonctionnalit es, comme lautomatisation, le contr ole et la commande de pratiquement tout processus, la communication ou le partage de linformation. Apr` es avoir et e un outil r eserv e aux centres de recherche, elle sest implant ee dans lindustrie et depuis les ann ees 80 elle envahit nos foyers. Au d epart nous navions que des syst` emes centraux, puis sont apparus les postes de travail individuels, tr` es rapidement reli es en r eseaux locaux. Tous, ou presque, sont maintenant connect es ` a la Toile. Les evolutions techniques sont telles que la dur ee de vie des mat eriels est relativement courte. Le march e est extr emement 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 p eriode de syst` emes propri etaires, dans lesquels un client de pouvait en pratique sapprovisionner quaupr` es dun seul constructeur, nous sommes pass es aux syst` emes ouverts. Cela sous-entend des architectures normalis ees pour lesquelles les el ements peuvent provenir de plusieurs constructeurs. En parall` ele, du c ot e logiciel un accent important est mis sur la r eutilisation des produits, qui doit permettre de suivre ces evolutions au prix dun eort moindre, sans avoir ` a repartir de z ero ` a chaque passage sur une nouvelle plate-forme par exemple. Cela explique l emergence des technologies Orient ees Objets et du G enie Logiciel. Il est ` a remarquer que cela se fait souvent avec une perte decacit e, masqu ee par l evolution des performances au niveau technique.

Chapitre I /AO /NK/05-06

Face ` a cette situation tr` es volatile, nous constatons tout de m eme que les concepts de base introduits par les pionniers perdurent , m eme sils peuvent se d ecliner de fa cons tr` es di erentes. Pour eviter davoir ` a r e ecrire ce cours dArchitecture des Ordinateurs tous les ans, on a donc pris le parti de principalement d evelopper 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 num erique. Cest aujourdhui une machine de traitement de linformation. Il est capable dacqu erir et de stocker des informations, deectuer des traitements et de restituer des informations. Linformatique est devenue la science du traitement de linformation.Un ordinateur peut etre d ecoup e en blocs fonctionnels. Le traitement de linformation est fait au niveau dun processeur. Les actions que celui-ci doit eectuer sont d enies par des instructions. Pour etre accessible au processeur les donn ees ` a traiter et les instructions doivent etre stock ees dans une m emoire. Le processeur et la m emoire sont reli es par un bus. Par ailleurs il faut que lutilisateur puisse fournir ` a lordinateur des donn ees et les instructions ` a suivre, tout comme il doit avoir connaissance des r esultats. Il faut donc des dispositifs dentr ee et de sortie. Chaque bloc fonctionnel peut lui-m eme etre d ecrit par un ensemble dunit es fonctionnelles. On parle alors de larchitecture du processeur, de larchitecture de la m emoire, etc. Par ailleurs, on peut etudier larchitecture dun r eseau rassemblant plusieurs ordinateurs. On voit ainsi appara tre la notion de niveaux de repr esentation. A chaque niveau un objet consid er e est d ecrit comme un ensemble de blocs interconnect es. Au niveau suivant chacun de ces blocs est ` a son tour d ecrit comme un ensemble de blocs interconnect es et ainsi de suite. Cette d ecomposition hi erarchique en niveaux d epend des besoins de la conception ou des outils utilis es : elle nest ni g ee, ni unique. Nous pouvons, par exemple, descendre au niveau des portes logiques et m eme au niveau des transistors qui composent ces portes. Larchitecture dun ordinateur constitue la repr esentation de ses unit es fonctionnelles et de leurs interconnexions. Le choix dune architecture est toujours le r esultat dun compromis entre : performances et co uts ; ecacit e et facilit e de construction ; performances densemble et facilit e de programmation Chaque solution adopt ee pour une machine donn ee pourra tr` es vite etre remise en cause par un nouveau progr` es technologique. De m eme, des architectures propos ees ` a un moment donn e, puis abandonn ees pour des raisons techniques ou economiques, peuvent un jour etre ` a nouveau

Chapitre I /AO /NK/05-06 employ ees.

Quelle que soit sa dimension, on retrouve toujours dans un ordinateur les m emes blocs fonctionnels : une ou plusieurs unit es de traitement ; de la m emoire permanente ou variable, xe ou amovible ; des dispositifs de communication avec lop erateur : un ecran, un clavier, tr` es souvent une souris reli es par des bus, ou c ables de liaisons. Partant des portes logiques, nous allons essayer d etudier dans ce cours les principes de base de chacun de ces composants. Dautre part, il est important de r ealiser que mat eriel 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 mat eriel. Pour ce qui concerne le logiciel nous nous limiterons ` a quelques consid erations simples sur le langage machine.

1.2
1.2.1

Quelques g en eralit es sur les architectures


Architecture de Von Neumann

Cette architecture est caract eris ee par un processeur et une m emoire reli es par un bus : Les instructions et les donn ees sont stock ees dans la m emoire. Pour acc eder ` a une information contenue en m emoire le processeur ache sur le bus ladresse de celle-ci. Apr` es un certain temps le contenu demand e est ach e par la m emoire sur le bus.On constate imm ediatement que la rapidit e dune machine sera limit ee par l el ement le plus lent. Lecacit e dun ordinateur est directement li ee au d ebit des informations qui circulent entre les di erents el ements. La conception dune architecture a pour but doptimiser ce d ebit, en prenant en compte des contraintes nanci` eres, commerciales et techniques. La machine de base, dite de Von Neumann, que nous venons de d ecrire ne pr esenterait aucun int er et sans au moins un dispositif dentr ees/sorties pour permettre une communication avec lext erieur. Pour une machine aussi simple il existe au moins trois m ethodes pour installer un tel dispositif : Interface directement reli ee au processeur :La communication est r ealis ee ` a laide dinstructions sp ecialis ees ou par linterm ediaire de registres sp ecialis es. Interface connect ee au bus commun : Un l sp ecialis e du bus indique si le processeur sadresse ` a la m emoire ou ` a linterface dE/S. Interface vue par le processeur comme une partie de la m emoire : Linterface est sur le bus commun, le choix de ladresse indique si le processeur sadresse ` a la m emoire ou ` a linterface.

Chapitre I /AO /NK/05-06

1.2.2

Architecture de Harvard

Dans cette architecture, on s epare physiquement la m emoire des instructions et la m emoire de donn ees. Chacune de ces m emoires est accessible par un bus di erent. Il est alors possible dacc eder simultan ement aux instructions et aux donn ees, ce qui permet daugmenter le ux 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 m eme type de m emoire. Chercher ` a pouvoir eectuer plusieurs op erations (ici transferts des instructions et des donn ees) 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 d ecrire des donn ees en m emoire pendant que le processeur eectue des calculs sur les donn ees pr ec edentes, il est int eressant dutiliser une m emoire de donn ees accessible depuis deux ports di erents. De cette fa con le processeur et linterface peuvent chacun acc eder alternativement ` a une moiti e di erente de la m emoire : Phase 1 : le processeur lit des donn ees provenant de la premi` ere moiti e de la m emoire pendant que linterface dEntr ees/Sorties range de nouvelles donn ees dans la seconde moiti e Phase 2 : le processeur acc` ede aux donn ees transf er ees par linterface lors de la phase 1 et linterface ecrit dans la premi` ere moiti e de la m emoire

1.2.3

Processeur

Sans d evelopper ici les principes de fonctionnement dun processeur, nous pouvons d ej` a dire que lex ecution des instructions peut se d ecouper en grandes etapes : chargement de linstruction ` a ex ecuter ; d ecodage de linstruction ; localisation dans la m emoire des donn ees utilis ees par linstruction ; chargement des donn ees si n ecessaire ; ex ecution de linstruction ; sauvegarde des r esultats ` a leurs destinations respectives ; passage ` a linstruction suivante. A chacune de ces etapes peut correspondre une unit e fonctionnelle. Cette s equence simple peut se compliquer, en particulier si la machine poss` ede des instructions de longueur variable : certaines instructions etant cod ees sur un mot de la m emoire et dautres sur plusieurs. Dans ce cas lunit e charg ee de la recherche et du chargement de linstruction doit etre capable de reconna tre (ou de pr e-d ecoder) le type de linstruction pour d eterminer sil lui faut aller chercher la suite. Dans

Chapitre I /AO /NK/05-06 la plupart des processeurs, lunit e centrale de traitement se d ecompose en :

lunit e de commande qui contient un dispositif de d ecodage des instructions (d ecodeur) et un s equenceur qui contr ole les circuits n ecessaires ` a lex ecution de linstruction en cours ; lunit e arithm etique et logique (UAL ou ALU : Arithmetic and Logical Unit) qui ex ecute des op erations arithm etiques comme laddition, la soustraction, des d ecalages, des op erations bool eennes (ET, OU, etc), des comparaisons, etc les registres : m emoire locale tr` es rapide qui permet de stocker des r esultats temporaires ou des informations de commande. Parmi ceux-ci on distingue les registres arithm etiques qui servent aux op erations arithm etiques. Dautres registres ont des fonctions particuli` eres. On trouve par exemple : . le compteur ordinal (CO) qui pointe sur la prochaine instruction ` a ex ecuter ; . le registre dinstruction (RI) qui contient linstruction en cours dex ecution ; . le registre d etat (PSW : Processor Status Word) qui indique l etat du syst` eme : d epassement, retenue, etc . une pile et un pointeur de pile (SP : Stack Pointer) ; des chemins de donn ees. Toutes ces unit es fonctionnent au m eme rythme, ` a une cadence impos ee par une horloge, g en eralement externe ` a lunit e centrale. A chaque cycle dhorloge, chaque unit e va ouvrir ou fermer certaines portes pour d eplacer, lire, ecrire, comparer, additionner des bits. Ceci se fait en fonction dordres donn es par lunit e de contr ole. Ces ordres d ependent evidemment de linstruction ` a ex ecuter.

1.2.4

M emoires

Nous appelons m emoire tout dispositif capable de stocker des informations (instructions et donn ees) de telle sorte que lorgane qui les utilise puisse ` a nimporte quel moment acc eder ` a linformation quil demande. Les informations peuvent etre ecrites ou lues. Il y a ecriture lorsquon enregistre des donn ees en m emoire, lecture lorsquon sort des informations pr ec edemment enregistr ees. La lecture peut etre destructive (linformation lue nest plus en m emoire) ou non. Le temps dacc` es est le temps qui s ecoule entre linstant o` ua et e lanc ee une op eration de lecture en m emoire et linstant o` u la premi` ere information est disponible. Le temps de cycle repr esente lintervalle minimum qui doit s eparer deux demandes successives de lecture ou d ecriture. Le temps de cycle est egal ou sup erieur au temps dacc` es. On appelle cadence de transfert ou d ebit dune m emoire, le nombre maximum dinformations lues ou ecrites par unit e de temps. Une m emoire est form ee dun certain nombre de cellules, ou cases, contenant chacune une information. Chaque cellule a un num ero qui permet de la r ef erencer et de la localiser. Ce num ero est son adresse. Avec une adresse de n bits il est possible de r ef erencer directement au plus 2 n cel-

Chapitre I /AO /NK/05-06

lules. La capacit e dune m emoire 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 capacit es des m emoires sexpriment en puissances de deux ou en multiples de 210 = 1024. Lacc` es ` a une donn ee dans une m emoire d epend de sa nature. Il peut etre al eatoire, s equentiel ou hybride

1.2.5

Bus : le squelette des ordinateurs

Un bus est un moyen de communication entre les di erents el ements constituant une machine. Il sagit en g en eral dun ensemble de ls electriques. Les di erents el ements sont reli es 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 di erents types de signaux : adresses, donn ees, contr ole, alimentations.

1.2.6

Entr ees/Sorties

Pour pouvoir ex ecuter une t ache, lordinateur doit disposer du programme et des donn ees (sil y a lieu) qui sy r ef` erent. D` es que le travail est accompli, les r esultats du traitement sont communiqu es ` a lutilisateur. Les techniques d echange dinformations entre lordinateur et son environnement externe sont appel ees techniques dEntr ees/Sorties (E/S ou I/O pour Input/Output). Lordinateur echange des informations non seulement avec des op erateurs humains, par linterm ediaire de terminaux de communication (consoles avec clavier, souris, imprimantes, lecteurs, etc), mais egalement avec des dispositifs vari es : 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

Lunit e centrale de traitement (CPU : Central Processing Unit), encore d enomm ee processeur ou microprocesseur, est l el ement de lordinateur qui interpr` ete et ex ecute les instructions dun programme. Cest le cerveau de lordinateur La gure 2.1 pr esente un sch ema g en eral tr` es simpli e de lorganisation de lunit e centrale, sans tenir compte de la pr esence dune m emoire cache et de linterface avec le bus externe. Mais on trouve aussi des processeurs, dits sp ecialis es, qui peuvent d echarger lunit e centrale et assurer des t aches en parall` ele. Ceci est tr` es fr equent pour la gestion des entr ees/sorties. Une unit e centrale se compose dau moins deux unit es fonctionnelles : lunit e de commande et lunit e de calcul. A lorigine celle-ci sidentiait ` a lunit e arithm etique et logique, charg ee de lex ecution des op erations bool eennes et des op erations arithm etiques (addition, soustraction, multiplication, division, comparaison, etc.) pour des entiers. En parall` ele ` a cette unit e, on peut trouver une unit e de calcul sur les r eels ainsi quune unit e de traitement d edi ee aux op erations multim edia (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 cod es en binaire pur. A laide de N bits nous pouvons repr esenter 2N nombres compris entre 0 et 2N 1 :
N

d=
k=0

ak 2k

(2.1)

2.2.2

Entiers sign es sous la forme signe et valeur absolue

Lid ee la plus naturelle pour coder des entiers sign es consiste ` a ajouter le signe sous la forme dun bit suppl ementaire : 0 pour les entiers positifs et 1 pour les entiers n egatifs. Soit pour N + 1 bits : d = sign(aN )
k=0 N

ak 2k

(2.2)

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

2N

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

Cependant le z ero poss` ede deux repr esentations : +0 et -0, ce qui peut etre un inconv enient, en

Chapitre II /AO /NK/06-07

2.2.3

Nombres en virgule xe

Pour le codage des nombres en virgule xe, on attribue un poids 2m au bit de poids le plus faible avec n bits de donn ees. Les m bits de poids faibles repr esentent la partie fractionnaire du nombre et les n m bits de poids forts sa partie enti` ere. La position de la virgule est x ee par le choix de m. Cette repr esentation est applicable aux repr esentations sign ees.

2.2.4

Nombres en virgule ottante

Fig. 2.2 Format de donn ees En calcul scientique 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 repr esentation suivante : A = (1)S (1 + M )2(E bias) (2.3) avec 21 < M < 1 o` u M est la mantisse et E lexposant. La pr ecision de la repr esentation d epend du nombre de bits r eserv es ` a la mantisse. Dans la gure2.2.4 , la repr esentation en simple pr ecision est cod ee sur 32 bits. Le bias est de 127 pour la simple pr ecision et 1023 pour la double pr ecision.

2.3

UAL

Le traitement des op erations logiques sont des op erations de base pour UAL. Outre ces fonctions logiques lunit e arithm etique et logique est charg ee de lex ecution dop erations arithm etiques comme addition, soustraction, d ecalage et multiplication. Nous avons d ej` a etudi e le principe de ladditionneur. La gure2.3 donne une repr esentation symbolique de lUAL, comprenant deux op erandes en entr ee A et B , une destination D = F (A, B ), n lignes en entr ee permettant de s electionner la fonction F ` a ex ecuter, dapporter un eventuel report de retenue et de synchroniser le fonctionnement de lunit e, ainsi que m sorties indiquant une eventuelle retenue (carry), un d epassement de capacit e (overow), un r esultat n egatif, nul ou positif. Les op erandes et la destination sont toujours des registres .

Chapitre II /AO /NK/06-07


Slection de lopration

10

Accumulateur

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 implant es dans une unit e centrale font partie de son architecture et ont une inuence 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 ex ecuter. Apr` es chaque utilisation il est automatiquement incr ement e du nombre de mots correspondant ` a la longueur de linstruction trait ee : le programme est ex ecut e en s equence. En cas de rupture de s equence (branchement conditionnel ou non, appel ` a une routine, etc.) il est charg e avec la nouvelle adresse. Le compteur ordinal, dont la taille d epend de lespace adressable, nest g en eralement pas accessible directement au programmeur.

Registre instruction (RI)

Cest le registre de destination dans lequel le CPU transfert linstruction suivante ` a partir de la m emoire. Sa taille d epend du format des instructions machines. Le d ecodeur utilise le registre instruction pour identier laction (ou le microprogramme) ` a entreprendre ainsi que les adresses des op erandes, de destination ou de saut. Le programmeur na pas acc` es au registre instruction.

Chapitre II /AO /NK/06-07 Registres g en eraux ou banalis es

11

Ils permettent de limiter les acc` es ` a la m emoire, ce qui acc el` ere lex ecution dun programme. Ils peuvent conserver des informations utilis ees fr equemment, des r esultats interm ediaires, etc. Ils sont accessibles au programmeur.

Registres dindice ou dindex (XR)

Ils peuvent etre utilis es comme des registres g en eraux mais ils ont une fonction sp eciale utilis ee pour ladressage index e. Dans ce cas ladresse eective dun op erande 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 lincr ementation ou la d ecr ementation du registre dindex. En particulier les registres dindex peuvent etre incr ement es ou d ecr ement es automatiquement apr` es chaque utilisation. Dans certaines machines ces instructions sont applicables ` a tous les registres g en eraux, il ny a alors pas de registre dindex sp ecique.

Registre de base

A de tr` es rares exceptions ` a lint erieur dun programme on ne fait r ef erence qu` a des adresses relatives ou virtuelles. Par contre lunit e centrale a besoin de conna tre les adresses physiques o` u se situent r eellement instructions et donn ees. Celles-ci d ependent de lendroit o` ua et e charg e le programme en m emoire, lespace physique occup e par un programme pouvant ne pas etre contigu. Le r ole des registres de base est de permettre le calcul des adresses eectives. Un registre de base contient une adresse de r ef erence, 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 utilis e quand le nombre de bits du champ adresse ne permet pas dacc eder ` a toute la m emoire.

Registre d etat (Program Status Word : PSW)

Une partie des bits de ce registre, aussi appel e registre condition, constitue des drapeaux (ags) qui indiquent certains etats particuliers. Par exemple ` a la n de chaque op eration on peut y trouver le signe du r esultat (N egatif, Z ero ou Positif), ainsi quune eventuelle retenue (Carry) ou un d epassement de capacit e (Overow). Ces bits indicateurs peuvent etre test es pour d eterminer

Chapitre II /AO /NK/06-07

12

la suite du d eroulement du programme : branchements conditionnels. On trouve egalement le mode de fonctionnement de lunit e 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 d eroutement vers le syst` eme dexploitation. Un bit peut egalement indiquer un d eroulement 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 autoris es.

Registre pointeur de pile

Une pile est une zone m emoire dans laquelle les informations sont rang ees de fa con contigu e. Le pointeur de pile (Stack Pointer : SP) indique le sommet de la pile : la position de la derni` ere information enregistr ee. Dans certaines machines le pointeur de pile indique la position o` u sera m emoris ee la prochaine donn ee. Le fonctionnement dune pile est du type Dernier Entr e Premier Sorti (LIFO : Last In First Out). Les deux principales op erations li ees ` a la pile concernent lajout dun el ement dans la pile ou le retrait, souvent nomm ees respectivement PUSH et PULL. Lorsquune donn ee est enregistr ee dans la pile elle est plac ee ` a ladresse qui suit celle du dernier mot stock e. Apr` es lop eration le pointeur de pile est incr ement e. Lorsque un mot est retir e de la pile il correspond ` a la derni` ere information qui y a et e entr ee. Apr` es lop eration le pointeur est d ecr ement e. Une pile est r eserv ee ` a lusage de lunit e centrale, en particulier pour sauvegarder les registres et ladresse de retour en cas dinterruption ou lors de lappel dune proc edure. Le pointeur de pile est accessible au programmeur, ce qui est souvent source derreur. Certaines machines sont dot ees de plusieurs pointeurs de piles. Pour am eliorer les performances dun processeur il faut disposer du plus grand nombre de registres possible. On r eduit ainsi les acc` es ` a la m emoire. De plus, il est pr ef erable d eviter de les sp ecialiser. On evite ainsi des transferts entre registres, par exemple pour calculer la valeur dun indice et utiliser ensuite cet indice pour modier une case dun tableau.

2.4.2

Modules de lUC

Horloge

Une horloge est un syst` eme logique, pilot e par un oscillateur, qui emet p eriodiquement une s erie dimpulsions calibr ees. Ces signaux p eriodiques constituent le cycle de base ou cycle machine. Nous avons d ej` a vu (dans le premier chapitre) les di erentes phases de lex ecution dune instruction. Un cycle dinstruction peut se d ecomposer en un cycle de recherche (instruction et

Chapitre II /AO /NK/06-07

13

op erandes) et un cycle dex ecution. On rencontre parfois le terme de cycle cpu pour indiquer le temps dex ecution de linstruction la plus courte.

S equenceur

Le s equenceur est un automate distribuant, selon un chronogramme pr ecis, des signaux de commande aux diverses unit es participant ` a lex ecution dune instruction. Il peut etre c abl e ou microprogramm e. Un s equenceur c abl e est un circuit s equentiel complexe comprenant un sous-circuit pour chacune des instructions ` a commander. Ce sous-circuit est activ e par le d ecodeur.

Lid ee de la microprogrammation a et e introduite par Maurice Wilkes en 1951. Il est en eet toujours possible de remplacer un circuit logique par un transcodeur ou une ROM. Consid erons un ensemble de n fonctions logiques d ependant de m variables logiques. Les valeurs de ces fonctions pour les N = 2m combinaisons possibles peuvent etre calcul ees (table de v erit e) et m emoris ees sous forme de N mots de n bits. Ensuite en utilisant les m variables sous forme dune adresse il est possible de restituer le r esultat recherch e.

De m eme pour reproduire une s equence dop erations el ementaires il sut dun mot par tranche de temps. Cette s erie de mots constitue un microprogramme. Le code op eration de linstruction ` a ex ecuter peut etre utilis e pour d enir le pointeur sur la premi` ere microinstruction du microprogramme. En fonction du code op eration le contenu dun compteur est initialis e, puis celui-ci sincr emente ensuite ` a chaque cycle dhorloge. La p eriode de lhorloge utilis ee ` a ce niveau peut etre plus elev ee que celle qui r` egle la cadence des autres el ements de lunit e centrale. Ce compteur sert ` a adresser une m emoire morte.

2.5

Format dinstruction

Les ordinateurs sont capables deectuer un certain nombre dop erations el ementaires. Une instruction au niveau machine doit fournir ` a lunit e centrale toutes les informations n ecessaires pour d eclencher une telle op eration el ementaire : type daction, o` u trouver le ou les op erandes, o` u ranger le r esultat, etc. Cest pourquoi une instruction comporte en g en eral plusieurs champs ou groupes de bits. Le premier champ contient le code op eration. Les autres champs peuvent

Chapitre II /AO /NK/06-07

14

comporter des donn ees ou lidentication des op erandes. Sur certaines machines les instructions sont toutes de m eme longueur, sur dautres cette longueur peut varier avec le code op eration ou le mode dadressage. On distingue 5 groupes dinstructions : transferts de donn ees : de m emoire ` a registre, de registre ` a registre, de registre ` a m emoire ; op erations arithm etiques : addition, soustraction, multiplication et division ; op erations logiques : ET, OU inclusif, NON, OU exclusif, etc. ; contr ole de s equence : branchements conditionnels ou non, appel de proc edure, etc. ; Interruptions d entr ees/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 aaire de compromis. La longueur des instructions se r epercute sur la dimension de la m emoire 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 m emoire inuence egalement le temps de traitement : il faut tenir compte du temps de transfert des mots qui constituent une instruction. Ce choix d epend des vitesses relatives dacc` es m emoire et de traitement eectif par lunit e centrale. Le temps de recherche doit etre minimis e pour les processeurs tr` es rapides. La largeur en bits de chacun des di erents champs est egalement importante, en particulier pour le code op eration. Le nombre de bits est d etermin e par le nombre dop erations distinctes envisag ees : n bits autorisent 2n instructions. Cependant toutes les op erations ne n ecessitent pas forc ement le m eme nombre de champs ou des champs de m eme longueur. Ainsi sur une machine m eme pour une longueur dinstruction donn ee le format des instructions peut ne pas etre xe. Il peut d ependre du type dop eration. Pour illustrer le concept du code op eration expansif imaginons des instructions de 16 bits d ecoup ees en quatre champs de 4 bits. Avec ce format nous pouvons d enir 16 instructions ` a 3 adresses. Cest peu et toutes les instructions ne n ecessitent pas trois adresses. Dautre part comme la capacit e m emoire ne cesse de cro tre les champs dadresse demandent de plus en plus de bits. Cest pourquoi, pour eviter une ination de certains registres comme le registre instruction, aujourdhui on pr ef` ere les instructions ` a une adresse. On peut par exemple faire en sorte quun des op erandes soit toujours laccumulateur et que ce m eme registre recueille le r esultat.

Chapitre II /AO /NK/06-07

15

2.6

Evaluation de performance de CPU

Chapitre II /AO /NK/06-07

16

Chapitre 3

M emoires

3.1

Introduction

Nous savons que dans un ordinateur toutes les informations : valeur num erique, instruction, adresse, symbole sont manipul ees sous une forme binaire. Ces informations doivent en g en eral etre conserv ees pendant un certain temps pour permettre leur exploitation. Ce r ole est d evolu aux m emoires charg ees de conserver programmes, donn ees provenant de lext erieur, r esultats interm ediaires, donn ees ` a transf erer ` a lext erieur. Il faut pour cela des m emoires ` a lecture et ecriture ou m emoires vives, qui permettent denregistrer une information, de la conserver et de la restituer. Ces m emoires sont, dautre part, ` a acc` es al eatoire (RAM : Random Acces Memory) le temps dacc` es ` a linformation est ind ependant de sa place en m emoire. Cette appellation, dorigine historique, est toujours synonyme de m emoire vive. Bien que tr` es r epandue cette appellation nest plus susante car tous les circuits ` a semi-conducteur sont aujourdhui ` a acc` es al eatoire. Lacc` es s equentiel ne porte plus que sur les m emoires magn etiques (disques ou bandes). Par contre, une m emoire vive est volatile : la conservation de son contenu n ecessite la permanence de son alimentation electrique. Linformation el ementaire, ou bit (binary digit), est m emoris ee dans une cellule ou point m emoire. Pour pouvoir identier individuellement chaque mot on utilise k lignes dadresse. La taille dun bloc m emoire 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 m emoire est acced ee en ecriture ou en lecture.

Chapitre IV /AO /NK/05-06

18

3.2

Caract eristiques des m emoires

La m emoire est tout dispositif electronique capable de conserver ou de restituer une information. Un mot m emoire d esigne lensemble de bits pouvant etre lus ou ecrits . Les caract eristique des m emoires sont : 1. Di erents types physiques de m emoires, 2. Dur ee de m emorisation, 3. Capacit e 4. Emplacement, 5. Performance, 6. Mode dacc` es, 7. Hi erarchie.

3.2.1

Di erents types physiques de m emoires

Les di erents supports utilis es sont principalement : semi-conducteur(exemple registre) magn etique (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 (m emoire dynamique) la pr esence dalimentation electrique (volatile : RAM)

3.2.3

Emplacement

Il correspond ` a la localisation de la m emoire dans la machine : dans le processeur (registre) ` a lint erieur au boitier de lUC (m emoire principale) ` a lext erieur au boitier de lUC (m emoire secondaire)

Chapitre IV /AO /NK/05-06

19

3.2.4

Capacit e

Elle repr esente la nombre dinformation ` a stocker. Elle est exprim ee 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 n ecessaire ` a une op eration de lecture ou d ecriture : c-` a-d le temps qui s epare linstant o` u lop eration est demand e de linstant o` u lop eration est achev e. le d ebit : la quantit e dinformation lue ou ecrits par unit e de temps.Il est exprim e en Mo/s.

3.2.6

Mode dacc` es

Il d ecrit la m ethode de recherche dune information. Il sera expliciter dans la paragraphe qui suit

3.2.7

Hi erarchie

Lid eal est de poss eder une m emoire illimit ee et tr` es rapide. Or le temps dacc` es augmente avec la capacit e. lid ee adopt e pour lorganisation de la m emoire est donc de consid erer que seules les donn ees les plus utilis es n ecessitent un temps dacc` es tr` es petit. Ainsi la m emoire est organis e en une hi erarchie : du plus rapide ` a le plus lent, de la capacit e la plus faible ` a la capacit e 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 m emoire d epend surtout de la mani` ere dont on lutilise. Il y a plusieurs types dont on cite : Acc` es al eatoire, Acc` es par le contenu,

Chapitre IV /AO /NK/05-06 Acc` es s equentiel, Acc` es direct.

20

3.3.1

Acc` es al eatoire

Il sagit dun mode dacc` es le plus employ e. Il est utilis e par : les m emoires qui composent la m emoire principale, quelques m emoires caches. A chaque mot m emoire est associ ee une adresse unique. Nimporte quelle adresse peut etre trait ee. La taille dune adresse d epend de la capacit e de la m emoire. Les op erations associ ees ` a ce mode dacc` es : lecture, ecriture. Le temps dacc` es est constant(il est ind ependant des acc` es pr ec edents).

3.3.2

Acc` es par le contenu

Ce mode dacc` es caract erise les m emoires appel ees m emoires associatives.Il est employ e principalement par les m emoires caches. Le principe est similaire ` a la m emoire ` a acc` es al eatoire sans notion dadresse : un mot est retrouv e par une partie de son contenu. En g en eral, une m emoire associative est divis ee en 2 parties : 1. une partie content un descripteur (cl e ) et permettant une comparaison en parall` ele de ce descripteur avec une autre autre, 2. une 2eme partie fournissant le mot associ e au descripteur Les op erations associ ees ` a ce mode dacc` es : ecriture , lecture, existe, retirer. Le temps dacc` es est constant.

Chapitre IV /AO /NK/05-06

21

3.3.3

Acc` es s equentiel

Il est employ e pour larchivage dimportants volumes de donn ees Les diverses informations sont ecrites les une derri` ere les autres : pour acc eder ` a une donn ee, il faut avoir lu les pr ec edentes. Les op erations associ ees ` a ce mode dacc` es : d ebut : se positionner sur la premi` ere donn ee, lecture : lire une donn ee, ecriture : ecrire donn ee, n : se positionner apr` es la derni` ere donn ee Le temps dacc` es est variable.

3.3.4

Acc` es direct

Il est employ e pour les disques . Chaque bloc de donn ees a une adresse unique. Une donn ee est acc ed ee en acc edant le bloc qui la contient, puis en se d epla cant dans le bloc jusqu` a sa position. Les op erations associ ees ` a ce mode dacc` es : lecture, ecriture, Le temps dacc` es est variable.

3.4

M emoire Principale

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

3.4.1

Types

Les m emoires composant la m emoire principale sont des m emoires ` a base de semi-conducteurs, employant un mode dacc` es al eatoires. Elles sont de deux types : volatiles ou non. Le terme RAM correspond aux m emoires volatille. Elles stockent des donn ees temporaires. Actuellement, on en trouve principalement 2 types : RAM dynamique (DRAM) : des condensateurs sont utilis es comme unit es de m emorisation. Elles n ecessitent un rafraichissement p eriodique. Elles sont simples, denses, peu couteuses. RAM statique : des bascules sont utilis ees comme unit es de m emorisation. Elles sont plus

Chapitre IV /AO /NK/05-06 rapides, et ne n ecessitent pas de rafraichissement. Le circuit DRAM demeure la brique de base de la m emoire principale.

22

Les ROM (Read Only Memory) sont utilis ees pour stocker des informations permanentes. On en trouve de plusieurs types, selon la technologie et le nombre d ecriture : ROM : ecriture unique lors de la fabrication, PROM : ecriture unique apr` es fabrication, EPROM : admet un nombre d ecriture limit e

3.4.2

Organisation

L el ement de base dune m emoire semi-conducteur est appel e cellule. Une cellule poss` ede 3 connexions une entr ee de s el ection indiquant si la cellule est concern ee par lop eration en cours une entr ee de controle indiquant la nature de lop eration :Lecture ou ecriture une ligne bidirectionnels de donn ees Pour r ealiser un circuit RAM de M mots de B bits, on doit disposer de log2 (M ) lignes dadresse et de B lignes de donn ees.

3.5

M emoire Cache

La performance des microprocesseurs augment de environ 55% par an La performance des m emoires augmente de 7% par an. La cache m emoire est un niveau de m emorisation interm ediaire rapide et de petite capacit e pour m emoriser les donn ees ou instructions les plus r ecement acc edes. Une cache est situ ee entre le processeur et la m emoire.

3.5.1

Principe

La recherche dune donn ee dans le cache avant de la rechercher dans la m emoire principale : succ` es de cache : la donn ee est pr esente dans la cache, D efaut de cache : la donn ee est absente dans la cache, Un bloc est un ensemble de mots dadresses contigues. La m emoire est d ecoup e en des blocs de m eme taille.

Chapitre IV /AO /NK/05-06

23

3.5.2

Contenu

Avec lemploi des caches multiples, nous avons g en eralement une didi e` a la stockage de donn ee et lautre au stockage des instructions. Cela augmente les performances du processeur pour lex ecution des t aches en parall` ele.

3.5.3

Performance

On peut evaluer la performance dune m emoire en utilisant un cache par le calcul du temps dacc` es m emoire moyen TaM m est fonction du temps de succ` es TS ,taux d echec e et la p enalit e d echec pe : TaM m = TS + e pe (3.1)

e peut etre evalu e en fonction du nombre de d efaut de cache Nd et le nombre dacc` es total Na : e = Nd Na (3.2)

3.5.4

Types

Il y a trois types pour la correspondance de la m` emoire principale avec la cache : directe : lemplacement du bloc est donn e par : num ero 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 m emoire peut etre plac e 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 al eatoire choisir le bloc le plus ancien du cache (FIFO) choisir le bloc le moins r ecement utlis e(LRU) choisir le bloc le moins fr equement utilis e(LFU)

Chapitre IV /AO /NK/05-06

24

3.5.6

Politiques d ecriture

Deux cas se pr esentent : le bloc quon souhaite ecrire dans la cache ou non Dans le premier cas, deux m` ethodes sont possibles : ecrire simulatn ement dans la cache et dans la m` emoire ecire dans la cache seulement et di erer l ecriture dans la m emoire lorsquon besoin pour librer de lespace. Dans le deuxi` eme cas, on peut choisir entre : de charger le bloc dans la cache et deectuer lop eration d ecriture ecrire directement dans la m` emoire

3.6

Conclusion

Dans ce chapitre, nous avons d ecrit les di erentes types de m emoires. Il sagit principalement de la m emoire principale et la m emoire cache. Les autres d eriv ees de m emoires pr esentent un r ole 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 avanc ees.

4.2
4.2.1

Bus
D enition et structure

D enition :Un bus est un chemin partag e entre plusieurs unit es. Un seul equipement transmet ` a un instant donn e. Un bus consiste typiquement de 50 ` a 100 lignes transmettant des signaux repr esentant des 1 ou des 0. Chaque ligne poss` ede une fonction propre. On distingue 3 groupes de fonction di erentes : les lignes de donn ees les lignes dadresses les lignes de contr ole, dont la fonction est de contr oler lacc` es et lutilisation des bus dadresses et donn ees. Ces signaux sont de deux types : des signaux de timing,

Chapitre V /AO /NK/05-06 des signaux de commande.

26

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 donn ees. On parlera de transaction quand un module veut transf erer des informations : une fois le bus obtenu, l emetteur transmet des donn ees.

Chapitre V /AO /NK/05-06

27

4.3
4.3.1

Interruptions
Notion dinterruption

Lorsquune machine fonctionne, sous le contr ole dun syst` eme dexploitation, lunit e centrale est en permanence susceptible dex ecuter un programme. Le probl` eme se pose alors de savoir ` a quel moment lunit e centrale va pouvoir prendre en compte les ev enements ext erieurs ` a la s equence dinstructions quelle ex ecute : requ ete dun p eriph erique, frappe dune touche sur un clavier, insertion dune disquette, n dimpression, passage dun objet devant un capteur, syst` eme dalarme. A chacun de ces ev enements correspond une t ache ` a ex ecuter par lunit e centrale. Cette t ache est cod ee sous forme dune proc edure du syst` eme dexploitation. Pour pouvoir ex ecuter cette proc edure, il faut que se produise une rupture de s equence . Cette rupture doit avoir lieu dans un d elai assez court. Pour les probl` emes de type temps r eel un temps maximum de prise en compte et de traitement doit pouvoir etre garanti. Comment signaler au CPU un ev enement asynchrone ? Une premi` ere approche, dite des drapeaux, consiste ` a tester p eriodiquement en s equence chaque unit e. 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 dot ees dun syst` eme dinterruptions. Cette technique consiste ` a pouvoir interrompre brutalement lex ecution du programme en cours ` a la n de linstruction courante. Apr` es sauvegarde de son etat pr esent, le contr ole de lunit e centrale est con e` a un sous-programme du syst` eme d ependant de la nature de linterruption.

4.3.2

Syst` eme dinterruptions hi erarchis ees

A la notion dinterruption sest tr` es rapidement associ ee la notion de priorit e, de mani` ere ` a ce que certaines requ etes soient servies avant dautres. On trouve les syst` emes dinterruptions les plus elabor es dans les ordinateurs orient es vers les applications temps r eel de conduite de processus industriels ou dacquisition de donn ees. Dans certains cas chaque niveau est d ecoup e en sous-niveaux de priorit es di erentes. Un bon syst` eme doit permettre au programmeur de pouvoir : activer/invalider le syst` eme dinterruption dans son ensemble ; armer/d esarmer chacune des interruptions individuellement : une interruption d esarm ee est ignor ee ; masquer/d emasquer individuellement chaque interruption : une interruption masqu ee nest pas ignor ee, elle est m emoris ee, mais elle nest prise en compte que lorsquelle est d emasqu ee ; etablir une hi erarchie entre les sources dinterruption avec plusieurs niveaux de priorit e, si

Chapitre V /AO /NK/05-06 possible de fa con dynamique ; associer un programme sp ecique ` a chaque interruption.

28

4.3.3

Causes dinterruption

Il y a deux grandes cat egories dinterruptions : les interruptions externes et les interruptions internes. Les interruptions externes mat erielles sont dues aux p eriph eriques ou ` a des dispositifs ext erieurs au syst` eme informatique . Dans le contexte de contr ole de processus, des ph enom` enes physiques doivent etre signal es au syst` eme, par exemple le passage dun objet devant un d etecteur. Dans ce cas cest le dispositif externe au syst` eme qui emet un signal qui est re cu par le syst` eme comme une interruption.Le programme courant lui-m eme peut d eclencher une interruption ` a laide dune instruction sp eciale. Les interruptions internes produites par le processeur, sur des erreurs . Ces interruptions sont g en eralement appel ees exceptions.

4.4
4.4.1

E/S
Principe

Linformatique sert au traitement de linformation. Il est donc indispensable d etre capable de fournir linformation ` a traiter ` a un ordinateur et de r ecup erer les r esultats. Le syst` eme informatique doit pouvoir communiquer avec lext erieur. Ces op erations d echange constituent les Entr ees/Sorties (E/S ou I/O : Input/Output). A lorigine lop erateur entrait les informations ` a laide de clefs ou interrupteurs. On a ensuite utilis e rubans et cartes perfor es dont linvention est largement ant erieure ` a celle de linformatique. Un ruban perfor e, en papier r esistant, pouvait contenir des trous sur 5 ou 7 pistes parall` eles. Demploi facile, les rubans etaient cependant fragiles et diciles ` a modier. Cest pourquoi les rubans ont progressivement et e remplac es par les cartes perfor ees. 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 repr esent e, selon le code Hollerith, ` a laide de perforations dans la colonne correspondante. Bien quayant disparue, linuence de la carte perfor ee sest longtemps faite sentir dans certains formats, comme celui des ecrans alphanum eriques ` a 80 colonnes. Ensuite sont apparus claviers, imprimantes, bandes magn etiques, disques et disquettes, terminaux interactifs, souris, crayons optiques. Les ordinateurs peuvent egalement recevoir les informations de capteurs et envoyer des signaux electroniques ` a des p eriph eriques : commande de processus industriels ou

Chapitre V /AO /NK/05-06

29

acquisition de donn ees. Ils peuvent aussi echanger des informations entre eux par linterm ediaire des r eseaux.

4.4.2

Gestion des entr ees/sorties

Un dispositif dentr ee sortie comprend en g en eral deux parties : un appareil et un contr oleur de p eriph erique.(voir gure??) Ce dernier sert dinterface entre lappareil et le processeur. Il re coit les requ etes du processeur et les transforme en commandes sp eciques au p eriph erique, et r eciproquement. Ce m ecanisme permet une grande souplesse et ne n ecessite pas dinstructions sp ecialis ees ` a chaque type possible de p eriph erique. Lunit e centrale de traitement communique avec un p eriph erique uniquement en mode lecture ou ecriture comme pour la m emoire. Les donn ees proprement dites sont accompagn ees de commandes (actions ` a r ealiser) et dinformations (par exemple etat du p eriph erique). Le contr oleur de p eriph erique est charg e dinterpr eter les requ etes ainsi transmises par le processeur et il met egalement en forme les informations ` a renvoyer au processeur. Un contr oleur peut etre equip e dun processeur, de registres et dune m emoire tampon. Il peut etre charg e de la gestion des incidents, du contr ole derreurs, de la conversion de format, etc. Cest le contr oleur de p eriph erique qui d eclenche lenvoi dun signal dinterruption. Par rapport au dialogue on classe souvent les p eriph eriques en deux cat egories : Les p eriph eriques par caract` eres, pour lesquels la communication se fait sous la forme dun ux de caract` eres par linterm ediaire de registres. Les p eriph eriques 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 m emoire principale ou correspondre ` a des zones distinctes ` a cette m emoire centrale. Ces adresses peuvent etre attribu ees lors de la mise en place du mat eriel (par un exemple au moyen de petits interrupteurs ou cavaliers ` a positionner) ou congur ees dynamiquement. Lorsque les quantit es de donn ees ` a echanger sont importantes, il est p enalisant de charger le processeur de g erer ces echanges. Il est alors pr ef erable de permettre une communication directe entre le p eriph erique et la m emoire, ou m eme entre deux p eriph eriques. Ce mode de communication est appel e DMA : Direct Memory Access. La gestion des echanges sur le bus de donn ees est alors d el egu ee ` a un contr oleur DMA. Sur le plan logiciel, on trouve une couche suppl ementaire sous le syst` eme dexploitation pour lequel, nous avons dit, le contr ole-commande dun p eriph erique peut se limiter ` a des acc` es m emoire. Cette couche, appel ee pilote ou driver, traduit les commandes g en erales d echanges par caract` eres ou par blocs en commandes sp eciques au p eriph erique, avec par exemple la gestion des signaux de contr ole de la liaison, des contraintes de temps ` a respecter. Ces pilotes sont

Chapitre V /AO /NK/05-06 fournis avec le mat eriel.

30

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 id ees de Seymour Cray, avant d etre approfondi dans les ann ees 80 par les universit es de Stanford et Berkeley. Il repose sur la constatation que m eme les syst` emes ou les applications les plus sophistiqu es nutilisent quune petite fraction du jeu dinstructions ` a leur disposition. Des etudes statistiques, portant sur un grand nombre de syst` emes dexploitation et dapplications r eels, ont montr e que : Dans 80 % dun programme on nutilise que 20 % du jeu dinstructions. Linstruction dappel dune proc edure 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 donn ees complexes sont des variables globales. La profondeur maximale dappels imbriqu es est en moyenne de huit. Une profondeur plus importante ne se rencontre que dans 1 Les processeurs classiques sont d esormais appel es CISC (Complex Instruction Set Computer) par opposition au terme RISC. Lapparition de m emoires tr` es rapides ` a un co ut tr` es faible a constitu e un des principaux arguments technologiques ayant favoris e les processeurs RISC. A lorigine les temps de d ecodage dune instruction complexe et dex ecution du microcode correspondant etaient masqu es par les temps dacc` es ` a la m emoire. En r eduisant celui-ci, le goulot d etranglement sest d eplac e vers les unit es de d ecodage et dex ecution. Il a donc fallu envisager un jeu dinstructions el ementaires c abl ees simpliant larchitecture du processeur et r eduisant les temps dex ecution. Dautre part, la capacit e m emoire n etant pratiquement plus limit ee il ny avait pas dobstacle ` a augmenter la taille des programmes : la fonctionnalit e de chaque instruction etant limit ee il faut g en erer un plus grand nombre dinstructions (en pratique pas plus de 30 %). Par contre la g en eration de code est plus compliqu ee. Les instructions complexes facilitent la traduction des programmes ecrits en langage evolu e. Cest egalement au compilateur de se charger de loptimisation du code en fonction des caract eristiques des processeurs. Les recherches ayant d ebouch e sur les processeurs RISC ont egalement port e sur les compilateurs. L evolution des outils logiciels a vu l emergence de compilateurs evolu es permettant une optimisation ecace des codes g en er es avec des gains de lordre de 20 % en temps dex ecution. Le d eveloppement des compilateurs, pris en charge par les concepteurs de syst` emes, et le d eveloppement des architectures sont tr` es interd ependants. Passons en revue les id ees de base qui font la sp ecicit e des architectures RISC. Lobjectif recherch e est dex ecuter une instruction ` a chaque cycle dhorloge.

Chapitre V /AO /NK/05-06

31

Ceci est rarement r ealis e sur la totalit e du jeu dinstructions. Lobtention de cette performance repose sur la mise en oeuvre de plusieurs principes : simplication des instructions ; simplication du format : longueur xe des instructions et des champs ; restriction des modes dadressage ; s equenceur c abl e pour une ex ecution rapide ; utilisation intensive de registres tr` es nombreux ; limitation des acc` es m emoire ` a deux instructions : LOAD et STORE ; utilisation de caches ; traitement anticip e des instructions (pipeline) : ce qui permet dobtenir un r esultat ` a chaque cycle. Le r ole du compilateur est essentiel pour loptimisation du code engendr e. Un eort particulier est fait sur les points suivants : allocation optimale des registres ; elimination des redondances ; optimisation des boucles, en ne conservant ` a lint erieur que ce qui est modi e; optimisation du pipeline ; optimisation du choix des instructions. Le compilateur doit etre capable dexploiter au maximum les caract eristiques de larchitecture. Il nous reste ` a d ecrire une organisation particuli` ere des registres internes que lon rencontre dans certaines architectures RISC. Elle est identi ee sous la d enomination de technique des fen etres de registres. destin ee ` a faciliter le passage de param` etres lors dappel de proc edures. 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 et e d evelopp ee. Celle-ci repose sur les statistiques d ej` a mentionn ees sur le partage des variables et la profondeur dimbrication des appels de proc edures. Pour le RISC-I les dix premiers registres, accessibles ` a tous les niveaux, sont destin es ` a recevoir les variables globales. Les 128 registres suivants sont divis es en huit groupes ou fen etres. Chaque groupe correspond ` a une profondeur dappel. La profondeur maximale est donc limit ee ` a huit. Les six premiers registres dun bloc servent ` a l echange des informations avec l etage sup erieur. Les dix autres sont disponibles pour les variables locales. Outre les registres globaux, chaque niveau interm ediaire dispose donc de vingt-deux registres : les seize qui lui sont propres et les six premiers registres de l etage suivant . Cette technique simplie les echanges dinformations entre les proc edures appelantes et appel ees. Elle demande cependant beaucoup de temps lors de la sauvegarde des registres en cas dinterruption. Les architectures CISC et RISC, utilisant les m emes technologies, ont de plus en plus tendance a se rapprocher. Certains processeurs, par exemple, traduisent les instructions CISC en suites dinstructions RISC avant lex ecution. Cela permet dassurer la compatibilit e des nouveaux processeurs avec tous les logiciels d evelopp es ant erieurement, 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 R ealiser les op erations suivantes en supposant que d est un entier positif 1. d ecalage ` a droite, 2. d ecalage ` a gauche, 3. Rotation ` a droite, 4. rotation ` a gauche. D eterminer pour chaque cas la valeur de la r esultat R en binaire puis en base 10 (4.1)

Exercice 2 : Format de donn ees

on consid ere 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 otante selon la norme de IEEE 754. D eterminer pour chaque cas la valeur de d en base 16 base 10 base 8 (4.2)

TD1/AO /NK/05-06 Exercice 3 : Soustraction

34

On Cherche ` a r ealiser lop eration de soustraction F = f (a, b). Les entr ees a et b sont cod es sur 4 bits. 1. Tracer la table de v erit e de F 2. Simplier 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 d ecrites par la gure 4.2, on cherche ` a r ealiser un espace adressable nomm ee M em de 21 6 mots de 32 bits et disposer de 4096 mots m emoires en RAM 4096 mots m emoire en ROM.

Fig. 4.2 Boitiers de m emoire utilis ee 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 dex ecution dune instruction, le processeur prend du temps pour la d ecoder, acc eder aux donn ees en m emoires n ecessit ees par cette instruction et de d eclencher les op erations sur ces donn ees. Voici le cas suivant :

35

TD2/AO/RT2 /NK/05-06 Dur ee dun cycle horloge P en elit e d echec pe Dur ee dune instruction (sans r ef erence m emoire) Nombre de r ef erence de m emoire par instruction NrM/I Taux d echec e :Th :10 cycles :2 cycles :1.33 : 2%

36

Temps dacc` es succ` es TS :n egligeable On rappelle que le temps moyen dacc` es m emoire TaM m est fonction du temps de succ` es TS ,taux d echec e et la p enalit e d echec pe : TaM m = TS + e pe (4.3)

e peut etre evalu e en fonction du nombre de d efaut de cache Nd et le nombre dacc` es total Na : e = Nd Na (4.4)

D eterminer : 1. TaM m 2. Temps dex ecution moyen dun instruction TIm

Devoir surveill e2 Mati` ere Enseignante Fili` ere Bar` eme Nombre de pages

Examen2 :Architecture des Ordinateurs :N. KAMOUN MASMOUDI :RT2 :(6.5,7,6.5)(pt) :3

Session : principale 2 de contr ole2 Semestre Date Dur ee Documents autoris es :1 :23/11/05 :1H30mn :oui2 non2

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

On Consid` ere la gure 1 1. Donner la nomenclature des blocs A1, A2 et A3, 2. Expliciter labr eviation 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. D eterminer pour chaque cas la valeur de d en base 16,10,8. 2. On garde la m eme condition pr ec edente.D eterminer le r esultat en base 2 pour chaque op eration suivante : (a) D ecalage ` a gauche, (b) D ecalage ` a droite, (c) Rotation ` a droite en donnant la di erence par rapport ` a lop eration pr ec edente. 3. On d enit une autre variable binaire c(0 : N ). c(0 : N ) = 11 11 01 00 D eterminer le r esultat sur 16 bits pour les di erentes op erations 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 dentr ees e1 , e2 en pr ecisant la valeur de M , 2. On prend M = 4 ` a la suite de lexercice. (a) Es on na pris la totalit e de linformation de multiplication ? (b) Tracer la table de v erit e pour s(2), (c) D eterminer les equations qui r eagissent les di erentes entr ees et sorties ` a laide de tableau de Karnaugh. (d) Donner un sch emas de conception pour s(4) avec des portes Nand. 3. Proposer une autre solution pour r esoudre le probl` eme de conception dun multiplier