Architecture Ordinateur INSAT [PDF]

  • Author / Uploaded
  • iva
  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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

1

Architecture Fonctionnelle 1.1

1.2

2

1

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

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

1

1.1.2

Architecture g´en´erale et blocs fonctionnels . . . . . . . . . . . . . . . . .

2

Quelques g´en´eralit´es sur les architectures . . . . . . . . . . . . . . . . . . . . . .

3

1.2.1

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

3

1.2.2

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

4

1.2.3

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

4

1.2.4

M´emoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.2.5

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

6

1.2.6

Entr´ees/Sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

Unit´ e Centrale de Traitement : Processeur 2.1 2.2

1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repr´esentation des nombres

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

i

7 7 8

ii

3

2.2.1

Entiers non sign´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.2.2

Entiers sign´es sous la forme signe et valeur absolue

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

8

2.2.3

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

9

2.2.4

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

9

2.3

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

9

2.4

Unit´e de Commande UC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4.1

Registres de l’UC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4.2

Modules de l’UC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.5

Format d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

2.6

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

15

M´ emoires

17

3.1

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

17

3.2

Caract´eristiques des m´emoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.2.1

Diff´erents types physiques de m´emoires . . . . . . . . . . . . . . . . . . .

18

3.2.2

Dur´ee de m´emorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.2.3

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

18

3.2.4

Capacit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.5

Performance

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

19

3.2.6

Mode d’acc`es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.7

Hi´erarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

iii 3.3

3.4

3.5

3.6

Modes d’acc`es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.3.1

Acc`es al´eatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.3.2

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

20

3.3.3

Acc`es s´equentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.3.4

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

21

M´emoire Principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.4.1

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

21

3.4.2

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

22

M´emoire 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 d’´ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

Conclusion

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

4 Interconnexions 4.1 4.2

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

24

25 25

Bus

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

25

4.2.1

D´efinition et structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

iv 4.2.2 4.3

4.4

4.5

Fonction Sch´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

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

27

4.3.1

Notion d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.3.2

Syst`eme d’interruptions hi´erarchis´ees . . . . . . . . . . . . . . . . . . . .

27

4.3.3

Causes d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

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

28

4.4.1

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

28

4.4.2

Gestion des entr´ees/sorties . . . . . . . . . . . . . . . . . . . . . . . . . .

29

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

30

Table des figures 2.1

Structure d’un CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.2

Format de donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.3

Structure d’un UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

4.1

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

26

4.2

Boitiers de m´emoire utilis´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

v

Chapitre 1

Architecture Fonctionnelle

1.1

Architecture des ordinateurs

1.1.1

Introduction

Apparue au milieu du 20 eme si`ecle, l’informatique a connu et connaˆıt une ´evolution extrˆemement rapide. A sa motivation initiale qui ´etait de faciliter et d’acc´el´erer le calcul, se sont ajout´ees de nombreuses fonctionnalit´es, comme l’automatisation, le contrˆole et la commande de pratiquement tout processus, la communication ou le partage de l’information. Apr`es avoir ´et´e un outil r´eserv´e aux centres de recherche, elle s’est implant´ee dans l’industrie et depuis les ann´ees 80 elle envahit nos foyers. Au d´epart nous n’avions 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 s’approvisionner qu’aupr`es d’un 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 d’un effort 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 d’efficacit´e, masqu´ee par l’´evolution des performances au niveau technique.

Chapitre I /AO /NK/05-06

2

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 s’ils peuvent se d´ecliner de fa¸cons tr`es diff´erentes. Pour ´eviter d’avoir `a r´e´ecrire ce cours d’Architecture des Ordinateurs tous les ans, on a donc pris le parti de principalement d´evelopper et expliquer ces concepts et les technologies de base. L’architecture du PC servira d’exemple.

1.1.2

Architecture g´ en´ erale et blocs fonctionnels

Initialement un ordinateur ´etait un calculateur num´erique. C’est aujourd’hui une machine de traitement de l’information. Il est capable d’acqu´erir et de stocker des informations, d’effectuer des traitements et de restituer des informations. L’informatique est devenue la science du traitement de l’information.Un ordinateur peut ˆetre d´ecoup´e en blocs fonctionnels. Le traitement de l’information est fait au niveau d’un processeur. Les actions que celui-ci doit effectuer sont d´efinies 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 l’utilisateur puisse fournir `a l’ordinateur des donn´ees et les instructions `a suivre, tout comme il doit avoir connaissance des r´esultats. Il faut donc des dispositifs d’entr´ee et de sortie. Chaque bloc fonctionnel peut lui-mˆeme ˆetre d´ecrit par un ensemble d’unit´es fonctionnelles. On parle alors de l’architecture du processeur, de l’architecture de la m´emoire, etc. Par ailleurs, on peut ´etudier l’architecture d’un 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 n’est ni fig´ee, ni unique. Nous pouvons, par exemple, descendre au niveau des portes logiques et mˆeme au niveau des transistors qui composent ces portes. L’architecture d’un ordinateur constitue la repr´esentation de ses unit´es fonctionnelles et de leurs interconnexions. Le choix d’une architecture est toujours le r´esultat d’un compromis entre : – performances et coˆ uts ; – efficacit´e et facilit´e de construction ; – performances d’ensemble 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

3

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, fixe ou amovible ; – des dispositifs de communication avec l’op´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. D’autre 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 l’imbrication 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

Quelques g´ en´ eralit´ es sur les architectures

1.2.1

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 affiche sur le bus l’adresse de celle-ci. Apr`es un certain temps le contenu demand´e est affich´e par la m´emoire sur le bus.On constate imm´ediatement que la rapidit´e d’une machine sera limit´ee par l’´el´ement le plus lent. L’efficacit´e d’un ordinateur est directement li´ee au d´ebit des informations qui circulent entre les diff´erents ´el´ements. La conception d’une architecture a pour but d’optimiser ce d´ebit, en prenant en compte des contraintes financi`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 d’entr´ees/sorties pour permettre une communication avec l’ext´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 l’aide d’instructions sp´ecialis´ees ou par l’interm´ediaire de registres sp´ecialis´es. – Interface connect´ee au bus commun : Un fil sp´ecialis´e du bus indique si le processeur s’adresse `a la m´emoire ou `a l’interface d’E/S. – Interface vue par le processeur comme une partie de la m´emoire : L’interface est sur le bus commun, le choix de l’adresse indique si le processeur s’adresse `a la m´emoire ou `a l’interface.

Chapitre I /AO /NK/05-06

1.2.2

4

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 diff´erent. Il est alors possible d’acc´eder simultan´ement aux instructions et aux donn´ees, ce qui permet d’augmenter 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 mˆeme type de m´emoire. Chercher `a pouvoir effectuer 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 effectue des calculs sur les donn´ees pr´ec´edentes, il est int´eressant d’utiliser une m´emoire de donn´ees accessible depuis deux ports diff´erents. De cette fa¸con le processeur et l’interface peuvent chacun acc´eder alternativement `a une moiti´e diff´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 l’interface d’Entr´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 l’interface lors de la phase 1 et l’interface ´ecrit dans la premi`ere moiti´e de la m´emoire

1.2.3

Processeur

Sans d´evelopper ici les principes de fonctionnement d’un processeur, nous pouvons d´ej`a dire que l’ex´ecution des instructions peut se d´ecouper en grandes ´etapes : – chargement de l’instruction `a ex´ecuter ; – d´ecodage de l’instruction ; – localisation dans la m´emoire des donn´ees utilis´ees par l’instruction ; – chargement des donn´ees si n´ecessaire ; – ex´ecution de l’instruction ; – sauvegarde des r´esultats `a leurs destinations respectives ; – passage `a l’instruction 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 d’autres sur plusieurs. Dans ce cas l’unit´e charg´ee de la recherche et du chargement de l’instruction doit ˆetre capable de reconnaˆıtre (ou de pr´e-d´ecoder) le type de l’instruction pour d´eterminer s’il lui faut aller chercher la suite. Dans

Chapitre I /AO /NK/05-06

5

la plupart des processeurs, l’unit´e centrale de traitement se d´ecompose en : – l’unit´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 l’ex´ecution de l’instruction en cours ; – l’unit´e arithm´etique et logique (UAL ou ALU : Arithmetic and Logical Unit) qui ex´ecute des op´erations arithm´etiques comme l’addition, 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. D’autres 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 d’instruction (RI) qui contient l’instruction en cours d’ex´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 l’unit´e centrale. A chaque cycle d’horloge, chaque unit´e va ouvrir ou fermer certaines portes pour d´eplacer, lire, ´ecrire, comparer, additionner des bits. Ceci se fait en fonction d’ordres donn´es par l’unit´e de contrˆole. Ces ordres d´ependent ´evidemment de l’instruction `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 l’organe qui les utilise puisse `a n’importe quel moment acc´eder ` a l’information qu’il demande. Les informations peuvent ˆetre ´ecrites ou lues. Il y a ´ecriture lorsqu’on enregistre des donn´ees en m´emoire, lecture lorsqu’on sort des informations pr´ec´edemment enregistr´ees. La lecture peut ˆetre destructive (l’information lue n’est plus en m´emoire) ou non. Le temps d’acc`es est le temps qui s’´ecoule entre l’instant o` u a ´et´e lanc´ee une op´eration de lecture en m´emoire et l’instant o` u la premi`ere information est disponible. Le temps de cycle repr´esente l’intervalle minimum qui doit s´eparer deux demandes successives de lecture ou d’´ecriture. Le temps de cycle est ´egal ou sup´erieur au temps d’acc`es. On appelle cadence de transfert ou d´ebit d’une m´emoire, le nombre maximum d’informations lues ou ´ecrites par unit´e de temps. Une m´emoire est form´ee d’un 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

6

lules. La capacit´e d’une m´emoire est le nombre total de cellules qu’elle contient. Elle s’exprime en nombre de bits, d’octets (bytes) ou de mots (words). Compte tenu de l’adressage binaire, les capacit´es des m´emoires s’expriment en puissances de deux ou en multiples de 210 = 1024. L’acc`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 diff´erents ´el´ements constituant une machine. Il s’agit en g´en´eral d’un ensemble de fils ´electriques. Les diff´erents ´el´ements sont reli´es au bus par des connecteurs, dont l’ensemble constitue un fond de panier. Chaque emplacement (slot) du fond de panier (backplane) peut recevoir une carte ´electronique (board). Sur un bus circulent diff´erents types de signaux : adresses, donn´ees, contrˆole, alimentations.

1.2.6

Entr´ ees/Sorties

Pour pouvoir ex´ecuter une tˆache, l’ordinateur doit disposer du programme et des donn´ees (s’il y a lieu) qui s’y r´ef`erent. D`es que le travail est accompli, les r´esultats du traitement sont communiqu´es `a l’utilisateur. Les techniques d’´echange d’informations entre l’ordinateur et son environnement externe sont appel´ees techniques d’Entr´ees/Sorties (E/S ou I/O pour Input/Output). L’ordinateur ´echange des informations non seulement avec des op´erateurs humains, par l’interm´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 d’un CPU

7

Chapitre II /AO /NK/06-07

8

L’unit´e centrale de traitement (CPU : Central Processing Unit), encore d´enomm´ee processeur ou microprocesseur, est l’´el´ement de l’ordinateur qui interpr`ete et ex´ecute les instructions d’un programme. C’est le cerveau de l’ordinateur La figure 2.1 pr´esente un sch´ema g´en´eral tr`es simplifi´e de l’organisation de l’unit´e centrale, sans tenir compte de la pr´esence d’une m´emoire cache et de l’interface avec le bus externe. Mais on trouve aussi des processeurs, dits sp´ecialis´es, qui peuvent d´echarger l’unit´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 d’au moins deux unit´es fonctionnelles : l’unit´e de commande et l’unit´e de calcul. A l’origine celle-ci s’identifiait `a l’unit´e arithm´etique et logique, charg´ee de l’ex´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 qu’une 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 l’aide de N bits nous pouvons repr´esenter 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

L’id´ee la plus naturelle pour coder des entiers sign´es consiste `a ajouter le signe sous la forme d’un bit suppl´ementaire : 0 pour les entiers positifs et 1 pour les entiers n´egatifs. 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 z´ero poss`ede deux repr´esentations : +0 et -0, ce qui peut ˆetre un inconv´enient, en particulier dans certains tests.

Chapitre II /AO /NK/06-07

2.2.3

9

Nombres en virgule fixe

Pour le codage des nombres en virgule fixe, on attribue un poids 2−m 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 fix´ee par le choix de m. Cette repr´esentation est applicable aux repr´esentations sign´ees.

2.2.4

Nombres en virgule flottante

Fig. 2.2 – Format de donn´ees 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 repr´esentation suivante : A = (−1)S (1 + M )2(E−bias)

(2.3)

avec 2−1 < M < 1 o` u M est la mantisse et E l’exposant. La pr´ecision de la repr´esentation d´epend du nombre de bits r´eserv´es `a la mantisse. Dans la figure2.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 l’unit´e arithm´etique et logique est charg´ee de l’ex´ecution d’op´erations arithm´etiques comme addition, soustraction, d´ecalage et multiplication. Nous avons d´ej`a ´etudi´e le principe de l’additionneur. La figure2.3 donne une repr´esentation symbolique de l’UAL, 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, d’apporter un ´eventuel report de retenue et de synchroniser le fonctionnement de l’unit´e, ainsi que m sorties indiquant une ´eventuelle retenue (carry), un d´epassement de capacit´e (overflow), un r´esultat n´egatif, nul ou positif. Les op´erandes et la destination sont toujours des registres .

Chapitre II /AO /NK/06-07

10

Accumulateur

Sélection de l’opération

UAL

Registre temporaire Registre d ’état

Fig. 2.3 – Structure d’un UAL

2.4 2.4.1

Unit´ e de Commande UC Registres de l’UC

Le nombre et le type des registres implant´es dans une unit´e 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 l’on retrouve sur toutes les machines ou presque.

Compteur ordinal

Ce registre (Program Counter : PC) contient l’adresse 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 l’instruction 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 l’espace adressable, n’est g´en´eralement pas accessible directement au programmeur.

Registre instruction (RI)

C’est le registre de destination dans lequel le CPU transfert l’instruction suivante `a partir de la m´emoire. Sa taille d´epend du format des instructions machines. Le d´ecodeur utilise le registre instruction pour identifier l’action (ou le microprogramme) `a entreprendre ainsi que les adresses des op´erandes, de destination ou de saut. Le programmeur n’a 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 m´emoire, ce qui acc´el`ere l’ex´ecution d’un programme. Ils peuvent conserver des informations utilis´ees fr´equemment, des r´esultats interm´ediaires, etc. Ils sont accessibles au programmeur.

Registres d’indice ou d’index (XR)

Ils peuvent ˆetre utilis´es comme des registres g´en´eraux mais ils ont une fonction sp´eciale utilis´ee pour l’adressage index´e. Dans ce cas l’adresse effective d’un op´erande est obtenue en ajoutant le contenu du registre d’index `a l’adresse contenue dans l’instruction. Ce type d’adressage et de registre est tr`es utile pour manipuler des tableaux. Le programmeur dispose alors d’instructions permettant l’incr´ementation ou la d´ecr´ementation du registre d’index. En particulier les registres d’index 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 n’y a alors pas de registre d’index sp´ecifique.

Registre de base

A de tr`es rares exceptions `a l’int´erieur d’un programme on ne fait r´ef´erence qu’`a des adresses relatives ou virtuelles. Par contre l’unit´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 l’endroit o` u a ´et´e charg´e le programme en m´emoire, l’espace 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 effectives. Un registre de base contient une adresse de r´ef´erence, par exemple l’adresse physique correspondant ` a l’adresse virtuelle 0. L’adresse physique est obtenue en ajoutant au champ adresse de l’instruction 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 d’acc´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 (flags) qui indiquent certains ´etats particuliers. Par exemple `a la fin de chaque op´eration on peut y trouver le signe du r´esultat (N´egatif, Z´ero ou Positif), ainsi qu’une ´eventuelle retenue (Carry) ou un d´epassement de capacit´e (Overflow). 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 l’unit´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 d’exploitation. Un bit peut ´egalement indiquer un d´eroulement pas `a pas : demande de trace (T). Le registre peut aussi contenir le niveau de l’interruption en cours de traitement ou un masque des niveaux d’interruptions 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 d’une 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 l’ajout d’un ´el´ement dans la pile ou le retrait, souvent nomm´ees respectivement PUSH et PULL. Lorsqu’une donn´ee est enregistr´ee dans la pile elle est plac´ee `a l’adresse qui suit celle du dernier mot stock´e. Apr`es l’op´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 l’op´eration le pointeur est d´ecr´ement´e. Une pile est r´eserv´ee `a l’usage de l’unit´e centrale, en particulier pour sauvegarder les registres et l’adresse de retour en cas d’interruption ou lors de l’appel d’une proc´edure. Le pointeur de pile est accessible au programmeur, ce qui est souvent source d’erreur. Certaines machines sont dot´ees de plusieurs pointeurs de piles. Pour am´eliorer les performances d’un 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 d’un indice et utiliser ensuite cet indice pour modifier une case d’un tableau.

2.4.2

Modules de l’UC

Horloge

Une horloge est un syst`eme logique, pilot´e par un oscillateur, qui ´emet p´eriodiquement une s´erie d’impulsions 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 diff´erentes phases de l’ex´ecution d’une instruction. Un cycle d’instruction peut se d´ecomposer en un cycle de recherche (instruction et

Chapitre II /AO /NK/06-07

13

op´erandes) et un cycle d’ex´ecution. On rencontre parfois le terme de cycle cpu pour indiquer le temps d’ex´ecution de l’instruction 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 l’ex´ecution d’une 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.

L’id´ee de la microprogrammation a ´et´e introduite par Maurice Wilkes en 1951. Il est en effet 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 d’une adresse il est possible de restituer le r´esultat recherch´e.

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

2.5

Format d’instruction

Les ordinateurs sont capables d’effectuer un certain nombre d’op´erations ´el´ementaires. Une instruction au niveau machine doit fournir `a l’unit´e centrale toutes les informations n´ecessaires pour d´eclencher une telle op´eration ´el´ementaire : type d’action, o` u trouver le ou les op´erandes, o` u ranger le r´esultat, etc. C’est 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 l’identification des op´erandes. Sur certaines machines les instructions sont toutes de mˆeme longueur, sur d’autres cette longueur peut varier avec le code op´eration ou le mode d’adressage. On distingue 5 groupes d’instructions : – 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 d’une nouvelle architecture. C’est encore une affaire 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 qu’un programme de n instructions de 16 bits. La longueur des instructions par rapport `a celle du mot m´emoire influence ´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 d’acc`es m´emoire et de traitement effectif par l’unit´e centrale. Le temps de recherche doit ˆetre minimis´e pour les processeurs tr`es rapides. La largeur en bits de chacun des diff´erents champs est ´egalement importante, en particulier pour le code op´eration. Le nombre de bits est d´etermin´e par le nombre d’op´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 d’instruction donn´ee le format des instructions peut ne pas ˆetre fixe. Il peut d´ependre du type d’op´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´efinir 16 instructions `a 3 adresses. C’est peu et toutes les instructions ne n´ecessitent pas trois adresses. D’autre part comme la capacit´e m´emoire ne cesse de croˆıtre les champs d’adresse demandent de plus en plus de bits. C’est pourquoi, pour ´eviter une inflation de certains registres comme le registre instruction, aujourd’hui on pr´ef`ere les instructions `a une adresse. On peut par exemple faire en sorte qu’un des op´erandes soit toujours l’accumulateur et que ce mˆeme registre recueille le r´esultat.

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 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 l’ext´erieur, r´esultats interm´ediaires, donn´ees `a transf´erer `a l’ext´erieur. Il faut pour cela des m´emoires `a lecture et ´ecriture ou m´emoires vives, qui permettent d’enregistrer une information, de la conserver et de la restituer. Ces m´emoires sont, d’autre part, ` a acc`es al´eatoire (RAM : Random Acces Memory) le temps d’acc`es `a l’information est ind´ependant de sa place en m´emoire. Cette appellation, d’origine historique, est toujours synonyme de m´emoire vive. Bien que tr`es r´epandue cette appellation n’est plus suffisante car tous les circuits `a semi-conducteur sont aujourd’hui `a acc`es al´eatoire. L’acc`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. L’information ´el´ementaire, ou bit (binary digit), est m´emoris´ee dans une cellule ou point m´emoire. Pour pouvoir identifier individuellement chaque mot on utilise k lignes d’adresse. La taille d’un bloc m´emoire est donc 2k , le premier mot se situant `a l’adresse 0 et le dernier `a l’adresse 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

3.2

18

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 l’ensemble de bits pouvant ˆetre lus ou ´ecrits . Les caract´eristique des m´emoires sont : 1. Diff´erents types physiques de m´emoires, 2. Dur´ee de m´emorisation, 3. Capacit´e 4. Emplacement, 5. Performance, 6. Mode d’acc`es, 7. Hi´erarchie.

3.2.1

Diff´ erents types physiques de m´ emoires

Les diff´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 d’alimentation ´electrique (volatile : RAM)

3.2.3

Emplacement

Il correspond `a la localisation de la m´emoire dans la machine : – dans le processeur (registre) – `a l’int´erieur au boitier de l’UC (m´emoire principale) – `a l’ext´erieur au boitier de l’UC (m´emoire secondaire)

Chapitre IV /AO /NK/05-06

3.2.4

19

Capacit´ e

Elle repr´esente la nombre d’information `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 d’acc`es : le temps n´ecessaire `a une op´eration de lecture ou d’´ecriture : c-`a-d le temps qui s´epare l’instant o` u l’op´eration est demand´e de l’instant o` u l’op´eration est achev´e. – le d´ebit : la quantit´e d’information lue ou ´ecrits par unit´e de temps.Il est exprim´e en Mo/s.

3.2.6

Mode d’acc` es

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

3.2.7

Hi´ erarchie

L’id´eal est de poss´eder une m´emoire illimit´ee et tr`es rapide. Or le temps d’acc`es augmente avec la capacit´e. l’id´ee adopt´e pour l’organisation de la m´emoire est donc de consid´erer que seules les donn´ees les plus utilis´es n´ecessitent un temps d’acc`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 d’acc` es

Le mode d’acc`es `a une m´emoire d´epend surtout de la mani`ere dont on l’utilise. Il y a plusieurs types dont on cite : – Acc`es al´eatoire, – Acc`es par le contenu,

Chapitre IV /AO /NK/05-06

20

– Acc`es s´equentiel, – Acc`es direct.

3.3.1

Acc` es al´ eatoire

Il s’agit d’un mode d’acc`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. N’importe quelle adresse peut ˆetre trait´ee. La taille d’une adresse d´epend de la capacit´e de la m´emoire. Les op´erations associ´ees ` a ce mode d’acc`es : – lecture, – ´ecriture. Le temps d’acc`es est constant(il est ind´ependant des acc`es pr´ec´edents).

3.3.2

Acc` es par le contenu

Ce mode d’acc`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 d’adresse : 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 d’acc`es : – ´ecriture , – lecture, – existe, – retirer. Le temps d’acc`es est constant.

Chapitre IV /AO /NK/05-06

3.3.3

21

Acc` es s´ equentiel

Il est employ´e pour l’archivage d’importants 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 d’acc`es : – d´ebut : se positionner sur la premi`ere donn´ee, – lecture : lire une donn´ee, – ´ecriture : ´ecrire donn´ee, – fin : se positionner apr`es la derni`ere donn´ee Le temps d’acc`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 d’acc`es : – lecture, – ´ecriture, Le temps d’acc`es est variable.

3.4

M´ emoire Principale

L’acc`es `a la m´emoire principale est le chemin le plus important dans l’ordinateur.

3.4.1

Types

Les m´emoires composant la m´emoire principale sont des m´emoires `a base de semi-conducteurs, employant un mode d’acc`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

22

rapides, et ne n´ecessitent pas de rafraichissement. Le circuit DRAM demeure la brique de base de la m´emoire principale. 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 d’une 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 l’op´eration en cours – une entr´ee de controle indiquant la nature de l’op´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 d’adresse 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 d’une 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 d’adresses contigues. La m´emoire est d´ecoup´e en des blocs de mˆeme taille.

Chapitre IV /AO /NK/05-06

3.5.2

23

Contenu

Avec l’emploi des caches multiples, nous avons g´en´eralement une didi´e `a la stockage de donn´ee et l’autre au stockage des instructions. Cela augmente les performances du processeur pour l’ex´ecution des tˆaches en parall`ele.

3.5.3

Performance

On peut ´evaluer la performance d’une m´emoire en utilisant un cache par le calcul du temps d’acc`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 d’acc`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 : l’emplacement 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 n’importe o` u dans la cache. – associtive par ensemble : chaque bloc de la m´emoire peut ˆetre plac´e n’importe o` u dans la cache parmi un ensmble de n blocs

3.5.5

Algorithmes de remplacement

Il existent plusieurs types d’algorithmes 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

3.5.6

24

Politiques d’´ ecriture

Deux cas se pr´esentent : le bloc qu’on 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 diff´erer l’´ecriture dans la m´emoire lorsqu’on besoin pour librer de l’espace. Dans le deuxi`eme cas, on peut choisir entre : – de charger le bloc dans la cache et d’effectuer l’op´eration d’´ecriture – ´ecrire directement dans la m`emoire

3.6

Conclusion

Dans ce chapitre, nous avons d´ecrit les diff´erentes types de m´emoires. Il s’agit 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 l’analyse des composants d’un PC. Il nous reste `a traiter : – Bus, – interfaces d’E/S, qui utilise les interruptions, – Architectures avanc´ees.

4.2 4.2.1

Bus D´ efinition et structure

D´efinition :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 diff´erentes : – les lignes de donn´ees – les lignes d’adresses – les lignes de contrˆole, dont la fonction est de contrˆoler l’acc`es et l’utilisation des bus d’adresses et donn´ees. 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 : – l’obtention du bus, – l’envoi d’une adresse et – l’envoi 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

4.3 4.3.1

27

Interruptions Notion d’interruption

Lorsqu’une machine fonctionne, sous le contrˆole d’un syst`eme d’exploitation, l’unit´e centrale est en permanence susceptible d’ex´ecuter un programme. Le probl`eme se pose alors de savoir `a quel moment l’unit´e centrale va pouvoir prendre en compte les ´ev´enements ext´erieurs `a la s´equence d’instructions qu’elle ex´ecute : requˆete d’un p´eriph´erique, frappe d’une touche sur un clavier, insertion d’une disquette, fin d’impression, passage d’un objet devant un capteur, syst`eme d’alarme. A chacun de ces ´ev´enements correspond une tˆache `a ex´ecuter par l’unit´e centrale. Cette tˆache est cod´ee sous forme d’une proc´edure du syst`eme d’exploitation. 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 n’est 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 d’un syst`eme d’interruptions. Cette technique consiste `a pouvoir interrompre brutalement l’ex´ecution du programme en cours `a la fin de l’instruction courante. Apr`es sauvegarde de son ´etat pr´esent, le contrˆole de l’unit´e centrale est confi´e `a un sous-programme du syst`eme d´ependant de la nature de l’interruption.

4.3.2

Syst` eme d’interruptions hi´ erarchis´ ees

A la notion d’interruption s’est tr`es rapidement associ´ee la notion de priorit´e, de mani`ere `a ce que certaines requˆetes soient servies avant d’autres. On trouve les syst`emes d’interruptions les plus ´elabor´es dans les ordinateurs orient´es vers les applications temps r´eel de conduite de processus industriels ou d’acquisition de donn´ees. Dans certains cas chaque niveau est d´ecoup´e en sous-niveaux de priorit´es diff´erentes. Un bon syst`eme doit permettre au programmeur de pouvoir : – activer/invalider le syst`eme d’interruption 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 n’est pas ignor´ee, elle est m´emoris´ee, mais elle n’est prise en compte que lorsqu’elle est d´emasqu´ee ; – ´etablir une hi´erarchie entre les sources d’interruption avec plusieurs niveaux de priorit´e, si

Chapitre V /AO /NK/05-06

28

possible de fa¸con dynamique ; – associer un programme sp´ecifique `a chaque interruption.

4.3.3

Causes d’interruption

Il y a deux grandes cat´egories d’interruptions : 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 d’un objet devant un d´etecteur. Dans ce cas c’est 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 l’aide d’une 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

L’informatique sert au traitement de l’information. Il est donc indispensable d’ˆetre capable de fournir l’information `a traiter `a un ordinateur et de r´ecup´erer les r´esultats. Le syst`eme informatique doit pouvoir communiquer avec l’ext´erieur. Ces op´erations d’´echange constituent les Entr´ees/Sorties (E/S ou I/O : Input/Output). A l’origine l’op´erateur entrait les informations `a l’aide de clefs ou interrupteurs. On a ensuite utilis´e rubans et cartes perfor´es dont l’invention est largement ant´erieure `a celle de l’informatique. Un ruban perfor´e, en papier r´esistant, pouvait contenir des trous sur 5 ou 7 pistes parall`eles. D’emploi facile, les rubans ´etaient cependant fragiles et difficiles `a modifier. C’est 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 l’aide de perforations dans la colonne correspondante. Bien qu’ayant disparue, l’influence de la carte perfor´ee s’est 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 l’interm´ediaire des r´eseaux.

4.4.2

Gestion des entr´ ees/sorties

Un dispositif d’entr´ee sortie comprend en g´en´eral deux parties : un appareil et un contrˆoleur de p´eriph´erique.(voir figure??) Ce dernier sert d’interface entre l’appareil et le processeur. Il re¸coit les requˆetes du processeur et les transforme en commandes sp´ecifiques au p´eriph´erique, et r´eciproquement. Ce m´ecanisme permet une grande souplesse et ne n´ecessite pas d’instructions sp´ecialis´ees `a chaque type possible de p´eriph´erique. L’unit´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 d’informations (par exemple ´etat du p´eriph´erique). Le contrˆoleur de p´eriph´erique est charg´e d’interpr´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 d’un processeur, de registres et d’une m´emoire tampon. Il peut ˆetre charg´e de la gestion des incidents, du contrˆole d’erreurs, de la conversion de format, etc. C’est le contrˆoleur de p´eriph´erique qui d´eclenche l’envoi d’un signal d’interruption. 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 d’un flux de caract`eres par l’interm´ediaire de registres. – Les p´eriph´eriques par blocs, pour lesquels l’information est accessible par blocs, chaque bloc disposant d’une 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 configur´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 d’exploitation pour lequel, nous avons dit, le contrˆole-commande d’un 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´ecifiques 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

30

fournis avec le mat´eriel.

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), d’apr`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 n’utilisent qu’une petite fraction du jeu d’instructions `a leur disposition. Des ´etudes statistiques, portant sur un grand nombre de syst`emes d’exploitation et d’applications r´eels, ont montr´e que : – Dans 80 % d’un programme on n’utilise que 20 % du jeu d’instructions. – L’instruction d’appel d’une 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 d’appels 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. L’apparition 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 l’origine les temps de d´ecodage d’une instruction complexe et d’ex´ecution du microcode correspondant ´etaient masqu´es par les temps d’acc`es `a la m´emoire. En r´eduisant celui-ci, le goulot d’´etranglement s’est d´eplac´e vers les unit´es de d´ecodage et d’ex´ecution. Il a donc fallu envisager un jeu d’instructions ´el´ementaires cˆabl´ees simplifiant l’architecture du processeur et r´eduisant les temps d’ex´ecution. D’autre part, la capacit´e m´emoire n’´etant pratiquement plus limit´ee il n’y avait pas d’obstacle `a augmenter la taille des programmes : la fonctionnalit´e de chaque instruction ´etant limit´ee il faut g´en´erer un plus grand nombre d’instructions (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. C’est ´egalement au compilateur de se charger de l’optimisation 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 efficace des codes g´en´er´es avec des gains de l’ordre de 20 % en temps d’ex´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´ecificit´e des architectures RISC. L’objectif recherch´e est d’ex´ecuter une instruction `a chaque cycle d’horloge.

Chapitre V /AO /NK/05-06

31

Ceci est rarement r´ealis´e sur la totalit´e du jeu d’instructions. L’obtention 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 d’adressage ; – 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 d’obtenir un r´esultat `a chaque cycle. Le rˆole du compilateur est essentiel pour l’optimisation du code engendr´e. Un effort particulier est fait sur les points suivants : – allocation optimale des registres ; – ´elimination des redondances ; – optimisation des boucles, en ne conservant `a l’int´erieur que ce qui est modifi´e ; – optimisation du pipeline ; – optimisation du choix des instructions. Le compilateur doit ˆetre capable d’exploiter au maximum les caract´eristiques de l’architecture. Il nous reste `a d´ecrire une organisation particuli`ere des registres internes que l’on rencontre dans certaines architectures RISC. Elle est identifi´ee sous la d´enomination de technique des fenˆetres de registres. destin´ee `a faciliter le passage de param`etres lors d’appel 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 d’imbrication 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 d’appel. La profondeur maximale est donc limit´ee `a huit. Les six premiers registres d’un 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 simplifie les ´echanges d’informations entre les proc´edures appelantes et appel´ees. Elle demande cependant beaucoup de temps lors de la sauvegarde des registres en cas d’interruption. 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 d’instructions RISC avant l’ex´ecution. Cela permet d’assurer 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

(4.1)

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

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 flotante 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

34

Exercice 3 : Soustraction

On Cherche `a r´ealiser l’op´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. 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 d’une m´ emoire principale

A partir d’un circuit RAM 1024x8 bits de circuits de ROM 4096x8 bits d´ecrites par la figure 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 l’organisation possible de M em avec les outils fournis. 2. Donner un mode d’acc`es possible `a M em.

Exercice 2 : Performance de la m´ emoire cache

Lors d’ex´ecution d’une 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

36

Dur´ee d’un cycle horloge

:Th

P´en´elit´e d’´echec pe

:10 cycles

Dur´ee d’une instruction (sans r´ef´erence m´emoire)

:2 cycles

Nombre de r´ef´erence de m´emoire par instruction NrM/I

:1.33

Taux d’´echec τe

: 2%

Temps d’acc`es succ`es TS :n´egligeable On rappelle que le temps moyen d’acc`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 d’acc`es total Na : τe =

Nd Na

D´eterminer : 1. TaM m 2. Temps d’ex´ecution moyen d’un instruction TIm

(4.4)

Devoir surveill´e 2

Examen2

Session : principale 2 de contrˆole2

Mati`ere

:Architecture des Ordinateurs

Semestre

:1

Enseignante

:N. KAMOUN MASMOUDI

Date

:23/11/05

Fili`ere

:RT2

Dur´ee

:1H30mn

Bar`eme

:(6.5,7,6.5)(pt)

Documents autoris´es

: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 l’abr´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 diff´erence par rapport `a l’op´eration pr´ec´edente. 3. On d´efinit une autre variable binaire c(0 : N ). c(0 : N ) = 11 11 01 00 D´eterminer le r´esultat sur 16 bits pour les diff´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 d’un 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 d’entr´ees e1 , e2 en pr´ecisant la valeur de M , 2. On prend M = 4 `a la suite de l’exercice. (a) Es on n’a pris la totalit´e de l’information de multiplication ? (b) Tracer la table de v´erit´e pour s(2), (c) D´eterminer les ´equations qui r´eagissent les diff´erentes entr´ees et sorties `a l’aide 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 d’un multiplier