Cours-architecture Nasro@

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Cours-architecture Nasro@ as PDF for free.

More details

  • Words: 27,450
  • Pages: 112
Ar hite ture des ordinateurs IUP GEII - informatique & tele ommuni ations 1ere annee Patri k Mar el

24 janvier 2001

2

 TABLE DES MATIERES

3

Table des matieres 1 Preambule 2 Introdu tion 2.1 2.2 2.3 2.4

Introdu tion . . . . . . . . . Historique . . . . . . . . . . Ma hine Von Neumann . . Aper u . . . . . . . . . . . . 2.4.1 Dispositifs de base . 2.4.2 Unites fon tionnelles 2.5 Con lusion . . . . . . . . .

9 . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

3.1 Introdu tion . . . . . . . . . . . . . . . . . . 3.2 Codage . . . . . . . . . . . . . . . . . . . . 3.2.1 Prin ipe de odage . . . . . . . . . . 3.2.2 Quelques odes . . . . . . . . . . . . 3.3 Systeme de numeration . . . . . . . . . . . 3.3.1 Conversions binaire-de imale . . . . 3.3.2 Representation des nombres negatifs 3.3.3 Representation des nombres reels . . 3.4 Algebre de Boole . . . . . . . . . . . . . . . 3.5 Les ir uits logiques ombinatoires . . . . . 3.6 Les ir uits sequentiels . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

3 Pre-requis

4 Cir uits de al ul

4.1 Introdu tion . . . . . . . . . . 4.2 Arithmetique . . . . . . . . . 4.2.1 Arithmetique binaire . 4.2.2 Arithmetique ottante 4.3 Cir uits arithmetiques . . . . 4.3.1 Addition . . . . . . . . 4.3.2 Multipli ation . . . . . 4.3.3 Division . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

11

12 12 14 14 15 16 18

19

20 20 20 20 22 22 23 24 26 28 29

35

36 36 36 38 40 40 45 49

 TABLE DES MATIERES

4

5 Memoire 5.1 5.2 5.3 5.4 5.5 5.6

Introdu tion . . . . . Les ara teristiques . Mode d'a

es . . . . Memoire prin ipale . Memoire a he . . . Exemple : le pentium

. . . . . . . . . . II

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

6.1 Introdu tion . . . . . . . . . . . . . . . . 6.2 Stru ture d'inter onnexion . . . . . . . . 6.3 Bus . . . . . . . . . . . . . . . . . . . . 6.3.1 De nition et stru ture . . . . . . 6.3.2 Cara teristiques . . . . . . . . . 6.4 Syn hronisation des e hanges . . . . . . 6.4.1 Communi ation syn hrone . . . . 6.4.2 Communi ation asyn hrone . . . 6.4.3 Communi ation semi-asyn hrone 6.5 Te hniques d'arbitrage . . . . . . . . . . 6.5.1 Types d'arbitrage . . . . . . . . . 6.5.2 Me hanismes materiels d'arbitres 6.5.3 Strategies d'arbitrage . . . . . . 6.6 Exemple : le bus PCI . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6 Inter onnexions

7 Jeu d'instru tions

7.1 Introdu tion . . . . . . . . . . . 7.2 De nition . . . . . . . . . . . . 7.3 Cara teristiques . . . . . . . . . 7.3.1 Classi ation . . . . . . 7.3.2 Types d'instru tions . . 7.3.3 Types d'operandes . . . 7.3.4 Exemple : le pentium II 7.4 Stru ture d'une instru tion . . 7.4.1 L'adressage . . . . . . . 7.4.2 Format d'instru tion . . 7.4.3 Quelques exemples . . . 7.5 Con lusion . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

8.1 Introdu tion . . . . . . . . . . . . . 8.2 Organisation de la CPU . . . . . . 8.2.1 Organisation du pro esseur 8.2.2 Organisation des registres . 8.3 Cy le de l'instru tion . . . . . . . . 8.3.1 Cy le normal . . . . . . . . 8.3.2 Interruptions . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

8 CPU

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

53

54 54 55 56 59 63

65

66 66 66 66 68 70 71 71 73 73 73 74 77 78

79

80 80 81 81 83 83 83 85 85 86 87 89

91

92 92 92 92 94 94 95

 TABLE DES MATIERES

8.4 Redu ed Instru tion Set Computers 8.4.1 Cara teristiques . . . . . . . 8.4.2 Exemple de ma hine RISC . 8.5 Pipeline . . . . . . . . . . . . . . . . 8.5.1 Pipeline de base . . . . . . . 8.5.2 Les aleas . . . . . . . . . . . 8.6 Ameliorations . . . . . . . . . . . . . 8.6.1 Ar hite ture supers alaire . . 8.6.2 Ar hite ture VLIW . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

Introdu tion . . . . . . . . . . . . . . . . Mi ro-operations . . . . . . . . . . . . . Contr^ole du pro esseur . . . . . . . . . . Implantation de l'unite de ommande . 9.4.1 Implantation materielle . . . . . 9.4.2 Implantation mi ro-programmee

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

9 Unite de ommande 9.1 9.2 9.3 9.4

5 . . . . . . . . .

96 96 96 99 99 100 102 102 103

105

106 106 108 109 109 110

6

 TABLE DES MATIERES

TABLE DES FIGURES

Table des gures

7

8

TABLE DES FIGURES

9

Chapitre 1

Preambule

10

 CHAPITRE 1. PREAMBULE

Contexte Ce i est un support de ours disponible aux formats html (http://www.blois.univtours.fr/ mar el/ar hi) et posts ript. Il on erne le ours d'ar hie ture des ordinateurs propose aux etudiants de premiere annee de l'IUP GEII option informatique et tele ommuni ations de Blois.

Obje tif Qu'est e qu'un ordinateur? Selon un di tionnaire Ha hette : ordinateur : n. m. INFORM Ma hine apable d'e e tuer automatiquement des operations arithmetiques et logiques (a des ns s ienti ques, administratives, omptables, et .) a partir de programmes de nissant la sequen e de es operations. Ce ours propose de repondre a la question \qu'est e qu'un ordinateur ?" en repondant a la question \ omment fon tionne un ordinateur?".

Moyens Nous disposons de 40 heures de ours et 15 heures de TD durant lesquelles nous aborderons les points suivants : { introdu tion : historique et aper u ( ours 2) { pre-requis : odage et algebre de Boole ( ours 3) { arithmetique et ir uits de al ul ( ours 4) { memoire ( ours 5) { inter onnexions - bus ( ours 6) { jeux d'instru tions ( ours 7) { CPU ( ours 8) { unite de ommande (9) La methode de progression est la suivante : le ours introduit les prin ipes generaux et quelques exemples fondamentaux. Les TDs font l'objet de sean es parti uliere durant lesquelles les notions de ours sont rappelees, expli ites, au besoin etendues. Ils onsistent en une serie d'exer i e d'appli ation et d'approfondissement. Les TDs, ainsi que leur orre tion, sont evalues. Je souhaite egalement mentionner omme moyen toute ontribution que le le teur voudra m'apporter. Remer iements et bibliographie Pour e support de ours, je me suis ins-

pire { du ours d'ar hite ture de Mohamed Taghelit que le present ours rempla e, { du livre \ omputer organization and ar hite ture ( fth edition)" de William Stallings, { de do uments et supports de ours trouves sur le web, notamment eux de Mi hel Cubero-Castan, Guy Chesnot, M. Billaud, Patri k Trau et Reto Zimmermann. Mer i a toutes es personnes pour m'avoir permis l'a

es a leur do uments.

11

Chapitre 2

Introdu tion

12

CHAPITRE 2. INTRODUCTION

2.1 Introdu tion Le but de e premier ours est d'avoir une premiere idee de e qui se passe a l'interieur de la ma hine lorsqu'un utilisateur interragit ave elle. C'est un ours d'introdu tion qui omprend : { introdu tion { historique { ma hine Von Neumann { aper u { on lusion A titre d'exemple, on s'interesse a la sequen e d'evenements suivante : le ture d'un nombre au lavier, operation sur e nombre, aÆ hage du resultat a l'e ran.

La ma hine per ue par l'utilisateur Intera tions ave la ma hine au travers des peripheriques (dispositifs externes a l'unite entrale) : { lavier, { souris, { e ran, { imprimante, { disquette, et ... Intera tions = entrees de ommandes, lan ements d'appli ation, visualisation, et ... La ma hine invisible a l'utilisateur La boite noire qu'est l'unite entrale

ontient en fait 3 unites fon tionnelles : { l'automate, { la partie al ul, { la memoire.

!

Toute a tion de l'utilisateur se traduit par l'exe ution d'une sequen e d'operations (faisant intervenir es unites).

2.2 Historique

!

La motivation prin ipale est la volonte d'automatiser une suite de t^a hes elementaires. D'abord existent des ma hines / automates spe ialises : boite a musique, metiers a tisser... puis on asso ie automate et ma hine a al ul. Charles Babbage (19eme s ie le) fut le premier a de rire les prin ipes d'un al ulateur d'appli ation

2.2. HISTORIQUE

13

generale (ma hine pouvant repeter des sequen es d'operations et hoisir une serie d'operations parti uliere en fon tion de l'etat du al ul). Le modele Von Neumann (1946) pose les bases des ma hines universelles ( f. se tion 2.3). On observe generalement 5 generations (etapes de isives) dans l'evolution (prin ipalement te hnologique) de es ma hines :

1945-1958 { { { { {

ordinateurs dedies, exemplaire uniques ma hines volumineuses et peu ables te hnologie a lampes, relais, resistan es 104 elements logiques programmation par artes perforees

!

la plupart des on epts ar hite turaux (notamment le bug !) des ordinateurs modernes datent de ette epoque. Notons que le premier ordinateur numerique generaliste, l'ENIAC, ommande par l'armee ameri aine en 1943 et realise en 1946, a eu pour premiere t^a he des

al uls omplexes pour l'etude de faisabilite de la bombe H.

1958-1964 { { { {

usage general, ma hine able te hnologie a transistors 105 elements logiques apparition des langages de programmation evolues (COBOL, FORTRAN, LISP)

1964-1971 ou 75 ou 78

{ te hnologie des ir uits integres (S/MSI small/medium s ale integration) { 106 elements logiques { avenement du systeme d'exploitation omplexe, des mini-ordinateurs.

!

La loi de Moore ( o-fondateur d'INTEL) veut que le nombre de transistors integrables sur une seule pu e double haque annee.

1971/5/8-1978/85 { { { {

te hnologie LSI (large SI) 107 elements logiques avenement de reseaux de ma hines traitement distribue/reparti

14

CHAPITRE 2. INTRODUCTION

!

1971 : invention par INTEL du mi ropro esseur = toutes les omposantes de la CPU sont reunies sur une m^eme pu e.

apres Le but originel de ette inqieme generation etait les ma hines langages dediees a l'IA...

{ te hnologie VL/WSI (very large, wafer) { 108 elements logiques (le PII ontient 7,5 millions de transistors, memoire non omprise) { systemes distribues intera tif { multimedia, traitement de donnees non numeriques (textes, images, paroles) { parallelisme massif

2.3 Ma hine Von Neumann John Von Neumann est a l'origine (1946) d'un modele de ma hine universelle (non spe ialisee) qui ara terise les ma hines possedant les elements suivants : { une memoire ontenant programme (instru tions) et donnees, { une unite arithmetique et logique (UAL ou ALU), { une unite permettant l'e hange d'information ave les peripheriques : l'unite d'entree/sortie (E/S ou I/O), { une unite de ommande (UC). Ces dispositifs permettent la mise en uvres des fon tions de base d'un ordinateur : le sto kage de donnees, le traitement des donnees, le mouvement des donnees et le ontr^ole. Le fon tionnement s hematique en est le suivant : l'UC 1. 2. 3. 4. 5.

!

extrait une instru tion de la memoire, analyse l'instru tion, re her he dans la memoire les donnees on ernees par l'instru tion, de len he l'operation adequate sur l'ALU ou l'E/S, range au besoin le resultat dans la memoire.

La plupart des ma hines a tuelles s'appuient sur le modele Von Neumann.

2.4 Aper u Cet aper u est une introdu tion au omportement des di erentes elements omposant l'unite entrale. Il est tres s hematique et sera developpe dans les ours suivants. Il introduit des notions de base omme le y le d'horloge, les hronogrammes.

15

2.4. APERC U

COMPUTER

I/O

Memory System Bus

CPU

CPU

Registers

Arithmetic and Logic Unit

2.4.1 Dispositifs de baseInternal CPU

Interconnection Horloge Utilisee pour syn hroniser l'ensemble des dispositifs logiques d'un

ordinateur. Caden ement des instru tions a frequen e onstante : l'horloge divise le temps en battements de m^eme duree appeles y les. Par exemple, une frequen e d'horloge d'un mi ropro esseur a 500MHz donne Control Unit des y les elementaires de 2 nanose ondes.

Registres Elements de memoire rapide internes a la CPU.

!

Plus petit est 1.5 l'espa eThe de re her he, plus rapide est l'a

es a l'information. Figure Central Processing Unit (CPU)

Memorisation ommandee par un signal de hargement : 2 types de registres suivant que le hargement se fait sur niveau ou sur front.

16

CHAPITRE 2. INTRODUCTION

Bus Ensemble de ls ele triques sur lesquels transitent les informations entre les unites.

Largeur du bus = nombre de ls onstituant le hemin = nombre d'impulsions ele triques pouvant ^etre envoyes en parallele (en m^eme temps).

2.4.2 Unites fon tionnelles Memoire Ve teur dont haque omposante est a

essible par une adresse. Les operations permises sur la memoires sont les operations de le ture et d'e riture. L'UC ins rit l'adresse d'une ellule dans un registre d'adresse (RA) et demande une operation de le ture ou d'e riture. Les e hanges se font par l'intermediaire d'un registre de mot (RM ). Le mot = l'unite d'information a

essible en une seule operation de le ture (sa taille varie en fon tion de la ma hine). ALU Vue omme une fon tion a 3 parametres : 1 operation, 2 arguments. Elle

renvoie un resultat. Un registre lui est asso ie : l' a

umulateur (ACC ) pour par exemple memoriser un resultat intermediaire.

E/S Sert d'interfa e ave les peripheriques.

Les operations asso iees (le ture et/ou e riture) sont fon tion du peripherique.

?

Quels sont les peripheriques ou seule est permise la le ture? l'e riture? les deux? De maniere simiulaire a la memoire, on dispose d'un registre memorisant l'adresse du peripherique (le registre de sele tion du peripherique (RSP )) et d'un registre d'e hange de donnees (RE ).

Unite de ommandes Son fon tionnement est elui de rit plus haut.

Compteur ordinal (P C ) = registre ontenant l'adresse memoire de l'instru tion

a exe uter.

Registre d'instru tion (RI ) memorise l'instru tion (une instru tion est omposee de plusieurs parties, ou hamps)

La ma hine omplete Une memoire, une ALU, une unite de ommande, une unite d'E/S, un bus, et hop !

Jeux d'instru tions Di erents formats d'instru tion suivant le nombre de parties reservees aux operandes (ou adresses). Par exemples :

j ode operation j operande j (format 1 adresse) j ode operation j operande 1 j operande 2 j (format 2 adresse)

17

2.4. APERC U

registre adresse

0 : lirePériph - clavie 1 : additionner - 163 2 : écrirePériph - écr ALU

registre mot

registre instruction

compteur ordinal

accumulateur

registre de sélection

horloge

registre d’échange 1111111 0000000 0000000 1111111 1111101 00000

écran

clavier

lecteur

Exemple d'instru tions au format 1 adresse : { lirePeriph - nomPeriph { additionner - adresse Exemple de fon tionnement ave une horloge a 4 phases (pour un format 1 adresse) : as d'une a quisition au lavier, d'une addition de la valeur lue ave une donnee en memoire, puis aÆ hage du resultat a l'e ran. H0 : RA PC H1 : RI RM; P C PC + 1 l'instru tion est lirePeriph - nomPeriph H2 : RSP RIp RIp est la partie nomP eriph de l'instru tion H3 : ACC RE H0 : RA PC nouveau y le, nouvelle instru tion H1 : RI RM; P C PC + 1 l'instru tion est additionner - adresse H2 : RA RIp RIp est la partie adresse de l'instru tion H3 : ACC ACC + RM H0 : RA PC nouveau y le, nouvelle instru tion H1 : RI RM; P C PC + 1 l'instru tion est e rirePeriph - nomPeriph H2 : RSP RIp RIp est la partie nomP eriph de l'instru tion H3 : RE ACC

hargeur = programme qui lit un programme (sur un support externe) et l'e rit en memoire. Le hargeur est harge par un dispositif materiel/ROM (appele

18

CHAPITRE 2. INTRODUCTION

mi ro hargeur).

2.5 Con lusion L'evolution te hnologique des ordinateurs est liee a l'evolution des besoins (en terme d'appli ation). Ce qui explique la ourse aux performan es (et indire tement le hallenge qu'il y a a gerer la diversite dans l'evolution des performan es de haque omposant).

!

Le prin ipe de on eption d'une ma hine est lie a la performan e.

!

La performan e depend fortement de l'ar hite ture !

Quelles sont les mesures de performan e obje tives : { la frequen e d'horloge? obje tif pour une m^eme ar hite ture { nombre d'instru tion /s? obje tif pour un m^eme jeu d'instru tions (MIPS, MFLOPS) { temps d'exe ution des programmes (ben hmarks)? oui !

19

Chapitre 3

Pre-requis

 CHAPITRE 3. PRE-REQUIS

20

3.1 Introdu tion Le but de e ours est de presenter les pre-requis a l'etude des unites fon tionnelles d'une ma hine. Ces pre-requis sont prin ipalement la numeration binaire et la logique booleenne. De maniere plus pre ise, e ours etudie : { odage { numeration { algebre de Boole { ir uits ombinatoires { ir uits sequentiels

3.2 Codage 3.2.1 Prin ipe de odage

Soit I un ensemble d'informations. Soit A = fa1 ; : : : ; an g un ensemble ni de symboles appele alphabet. Les ai sont appeles ara teres de A. Un ensemble ordonne de ara teres est appele mot. La base du odage est le ardinal de l'ensemble A. Coder I onsiste a faire orrespondre a haque elements de I un mot de A. Un

odage est redondant si un element est asso ie a plusieurs odes. Un odage peut ^etre a longueur xe : { numero de telephone d'un parti ulier { numero de se urite so iale { ode postal ou a longueur variable { alphabet morse { ADN

?

Pour un odage de longueur xe n, si b est la base du odage, monter que l'on peut representer b elements, et que l'on a alors b ! odages possibles. n

n

3.2.2 Quelques odes

!

Ne pas onfondre un nombre et sa representation !

Notation positionelle La representation d'un nombre est un odage. La representation d'un nombre dans une base b donnee: an an

1 : : : a1 a0

=

X n

=0

i

ai

b

i

21

3.2. CODAGE

Code binaire naturel Alphabet de 2 ara teres : 0 et 1 ( ara teres binaires appeles bits) Correspondan e basee sur la representation des nombres en base 2. 0 1 2 3 4 5 6 7

?

000 001 010 011 100 101 110 111

Pourquoi e tableau ne ontient pas le ode de 8?

Generalement, les bits les plus a gau he sont appeles poids forts.

!

Le odage binaire naturel n'est qu'un odage parti ulier.

Code BCD/DCB De imal Code Binaire : haque hi re d'un nombre est sur

ode 4 bits

0 1 2 .. . 10 11

0000 0001 0011 .. . 0001 0000 0001 0001

Ce ode simpli e la onversion de imal binaire.

Code de Gray Distan e de 1 entre deux mots de ode onse utif 0 1 2 3 4 5 6 7

000 001 011 010 110 111 101 100

Ce ode evite le hangement simultane de 2 bits, et don les etats transitoires indesirables.

 CHAPITRE 3. PRE-REQUIS

22

Dete tion d'erreurs La transformation d'un 0 en 1 ou d'un 1 en 0 est une erreur frequente en informatique (probleme de transmission, defaillan e d'un

ir uit, et ...) Un ode redondant peut ^etre utilise pour dete ter des erreurs. Exemple : ajout d'un bit (dit bit de parite). Le bit supplementaire maintient la parite de l'information : { 0110 devient 01100, { 1011 devient 10111 Il existe d'autres odes orre teur d'erreurs, ou l'augmentation de la redondan e permet de dete ter et orriger une erreur. Dans le ode de Hamming, 3 bits sont ajoutes a quatre bits de donnees pour ontr^oler la parite de trois groupes de trois bits de donnees di erents.

?

Comment un tel odage permet t'il la dete tion d'une erreur?

Codage des donnees alphanumeriques Fa e aux multiple possibilites de

odage, des organismes de normalisation ont vu le jour (le plus elebre etant l'ISO). Code ASCII = ode employe pour les ara teres alphanumeriques (a,b,1,?, ,,,). Code sur 7 bits (+ 1 bit de parite). { A est ode par 1000001, { e est ode par 1100101, { 7 est ode par 0110111, { ! est ode par 0100001, { et ... Uni ode = ode re ent sur 16 bits ontenant pratiquement tous les alphabets existants (employe dans java).

3.3 Systeme de numeration L'homme a 10 doigt. Le systeme de numeration humain est le systeme de imal. L'ordinateur a 2 etat signi atifs (impulsion ele triques). Le systeme de numeration qu'il emploie est don le systeme binaire.

!

L'homme ompte sur ses doigts, l'ordinateur ompte sur ses bits.

3.3.1 Conversions binaire-de imale Base b vers base 10

an an

1 : : : a1 a0 exprime en base b (note a

vers une representation en base 10 :

n

an

1 : : : a1 a0 ) b

  3.3. SYSTEME DE NUMERATION

an

b

n

23

+ an 1  bn 1 + : : : + a1  b + a0

Cas de la partie fra tionnaire : a1

b

1 + a2  b 2 + : : : + a

n

b

n

Base 10 vers base b A10

= an  bn + an 1  bn 1 + : : : + a1  b + a0

= ((: : : (an  b + an 1 )  b + : : : )  b + a1 )  b + a0 est le reste de la division entiere du nombre par la base b. Des divisions entieres su

essives par la base donnent don tous les ai . Cas de la partie fra tionnaire : sur un prin ipe similaire, des multipli ations su

essives par la base donnent tous les ai . a0

?

a 10?

Quelles sont les representations de 100 dans toutes les bases inferieures

?

Conversion ave une base puissan e de la base de depart, par exemple o tale (8 = 23) ou hexade imale (16 = 24 ) et binaire.

3.3.2 Representation des nombres negatifs Signe et valeur absolue Sur n bits : signe = bit de poids fort (0 : positif, 1 : negatif), n-1 bits = valeur absolue. Intervalle de valeurs representes pour n bits : [ 2n 1 + 1; 2n 1 1℄

?

Quelles sont les 2 representations possibles pour zero?

Notations omplementes Complement a 1: inversion de haque bit de la valeur absolue du nombre a representer. -1 -2 -3

110 101 100

 CHAPITRE 3. PRE-REQUIS

24

Intervalle de valeurs representes pour n bits : [ 2n 1 + 1; 2n 1

?

1℄

Quelles sont les 2 representations possibles pour zero?

Complement a 2 = omplement a 1 + 1 -1 -2 -3

111 110 101

Intervalle de valeurs representes pour n bits : [ 2n 1 ; 2n 1

?

1℄

Combien de representation possible pour zero?

Notation ex edentaire Ajout au nombre de la valeur d'un ex es (souvent translation de 2n 1 , ainsi le bit de poids fort fait oÆ e de bit de signe). Intervalle de valeurs representes pour n bits ave un ex es de 2n 1 : [ 2n 1 ; 2n 1 1℄ Inter^et : simpli e toutes les operations ou les omparaisons (qui se font uniquement sur des nombres positifs).

3.3.3 Representation des nombres reels Plusieurs representations possibles : { virgule xe : revient a manipuler des entiers ( aisses enregistreuses) { ouple (numerateur,denominateur) : representation juste uniquement pour les nombres rationnels { virgule ottante

Virgule ottante Un nombre reel m  b est represente par un signe, une e

mantisse m, un exposant e, et une base b.

!

La representation en virgule ottante est la representation des reels la plus utilisee. Il existe une in nite de representation du m^eme nombre. Representation normalisee : pour une base b, la mantisse est prise dans l'intervalle [1; b[ (zero admet une representation parti uliere). La pre ision et l'intervalle de valeurs representees dependent du nombre de bits utilises pour oder la mantisee et l'exposant.

  3.3. SYSTEME DE NUMERATION

25

Norme IEEE754 { { { {

nombres odes sur 32 bits (simple pre ision), ou 64 bits (double pre ision) la mantisse appartient a l'intervalle [1; 0; 10; 0[ (en binaire) le seul hi re a gau he de la virgule etant toujours 1, n'est pas represente l'exposant est ode ave un ex es de 127 (simple pre ision) ou 1023 (double pre ision) Sur 32 bits : ( 1)S  1; M  2E 127 S 1 bits

exposant E 8 bits

mantisse M 23 bits

Exemple : -5 est ode par 1100 0000 1010 0000 0000 0000 0000 0000

? !

Veri er que e odage est le bon !

La norme IEEE 754 est la norme la plus utilisee pour representer les reels.

Pre ision La representation des nombre reels sur une ma hine se base sur un nombre ni de valeurs. C'est don une representation appro hee. Pre ision de la representation = di eren e entre les mantisses de deux nombres reels onse utifs.

!

La pre ision ne depend que de la mantisse.

IEEE 754, simple pre ision (32 bits) : la pre ision est de 2 23 . Les valeurs parti ulieres representes ave IEEE 754 : E max max 0 0

M 0 6 0 = 0 6 =

valeur representee

1

NaN 0 nombres denormalises

La valeur (propageable) NaN signi e Not A p Number. Elle est pratique pour representer le resultat de ertains al ul (e.g., 1).

 CHAPITRE 3. PRE-REQUIS

26

3.4 Algebre de Boole Constitue une partie des travaux de Georges Boole (1815-1864) relatif a l'elaboration d'une base mathematique au raisonnement logique. Une algebre de Boole est la donnee de : { un ensemble E , { deux elements parti uliers de E : 0 et 1, { deux operations binaires sur E : + et . (le . sera parfois omis), { une operation unaire sur E. qui veri ent les axiomes suivants : soient a; b 2 E

ommutativite asso iativite distributivite elements neutres

omplementation

a+b=b+a (a+b)+ =a+(b+ ) a(b+ )=ab+a a+0=a a+a=1

ab=ba (ab) =a(b ) a+(b )=(a+b)(a+ ) a1=a aa=0

Les theoremes suivants peuvent ^etre deduits : idempoten e absorption De Morgan (dualite) elements absorbants

?

a+a=a a+ab=a a + b=a.b a+1=1

aa=a a(a+b)=a ab=a+b a0=0

Demontrer que aa=a

On se restreind i i a l'algebre de Boole minimale, ou E = f0; 1g. Cette algebre peut ^etre interpretee omme suit : { 1 est interprete \vrai" et 0 \faux", { + est interprete \ou" (disjon tion logique) { . est interprete \et" ( onjon tion logique) { est interprete \non" (negation logique)

?

L'algebre des ensembles munis des operations d'union, d'interse tion et de omplementation est elle une algebre de boole?

Tables de verite et portes logiques On a les tables de verites suivantes : a 0 1

a

1 0

a 0 0 1 1

b 0 1 0 1

a+b 0 1 1 1

a 0 0 1 1

b 0 1 0 1

ab 0 0 0 1

 3.4. ALGEBRE DE BOOLE

?

27

Comment peut ^etre interpretee l'operation logique dont la table est : a b ab 0 0 0 0 1 1 1 0 1 1 1 0

Ces operations sont mises en uvres par des ir uits logiques de base appeles portes logiques.

!

La plupart des ir uits integres des ordinateurs a tuels sont on us a partir de portes NON-ET (NAND) et NON-OU (NOR).

?

Montrer que les operations ET, OU et NON sont realisables a partir de portes NAND.

Expressions et fon tions booleennes Expression booleenne = terme onstruit a partir de variables booleennes et d'operateur booleens. Fon tion booleenne = fon tion binaire a variables binaires (de f0; 1gn dans f0; 1g). Une fon tion booleenne peut ^etre de rite par : { sa table de verite (re ensant toutes les ombinaisons de valeur des variables) { une expression booleenne (de rivant la sortie 1 de la fon tion, par onvention, a designe la valeur 0 pour a) Exemple : fon tion booleenne majorite s'exprime par a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

majorite 0 0 0 1 0 1 1 1

ou : majorite(a,b, ) = ab + ab + ab + ab

?

Montrer qu'il y a 22 fon tions booleennes a n arguments? n

 CHAPITRE 3. PRE-REQUIS

28

!

Les portes NAND et NOR sont dites ompletes ar on peut realiser n'importe quelle fon tion boleenne ave l'une ou l'autre.

Simpli aton d'expressions booleennes Deux fon tions booleennes sont equivalentes ssi les valeurs de leurs sorties sont les m^emes pour toutes les on gurations identiques de leurs variables d'entrees. Il est interessant de minimiser le o^ut (en nombre de portes logiques) de realisation d'une fon tion en trouvant l'expression booleenne de ette fon tion la moins outeuse.

?

Montrer que la fon tion majorite(a,b, ) se simpli e en b + a + ab

?

Un aÆ heur 7 segments est ompose de 7 diodes notes a, b, : : : , g disposees \en 8". Des nombres sont fournis en binaire sur 4 bits, x1 x2 x3 x4 . Donner l'expression des 7 fon tions a(x1 x2 x3 x4 ), b(x1 x2 x3 x4 ), et ... qui permettent d'aÆ her les nombres fournis.

3.5 Les ir uits logiques ombinatoires Cir uits ombinatoires = ir uits dont la fon tion de sortie s'exprime par une expression logique des seules variables d'entrees. Voi i quelques ir uits ombinatoires intervenant dans la realisation des omposants logiques d'un ordinateur.

De odeur Cir uit permettant d'envoyer un signal a une sortie hoisie. Il dispose de { n lignes d'entrees { 2n lignes de sortie La table de verite d'un de odeur \2 vers 4" (n = 2) est la suivante : e1

0 0 1 1

e0

0 1 0 1

s0

1 0 0 0

Et voi i la realisation d'un tel de odeur :

s1

0 1 0 0

s2

0 0 1 0

s3

0 0 0 1

 3.6. LES CIRCUITS SEQUENTIELS

29

Multiplexeur Cir uit permettant de sele tionner une entree parmi plusieurs. Il dispose de { 2n entrees { 1 sortie { n lignes de sele tion Voi i la realisation d'un multiplexeur \4 voies" (n = 2) :

?

Sa hant sa realisation, quelle est la table de verite de e multiplexeur?

Comparateur Cir uit e e tuant la omparaison de deux nombres binaires.

?

Realiser un omparateur de mots de 4 bits.

3.6 Les ir uits sequentiels Aussi appeles ir uits de memorisation ar leur sorties dependent : { de l'etat des variables d'entree { de l'etat anterieur de ertaines variables de sortie Un ir uit sequentiel possede des entrees E, des sorties S et un etat interne Q. Il est de ni par deux fon tions S = f (E; Q) et Q0 = g (E; Q) indiquant respe tivement la nouvelle sortie et le nouvel etat.

Notion d'etat stable Bistable = 2 portes NON montees en oppposition. Ce ir uit a 2 etats stables di erents : { Q1 = 0 et Q2 = 1 { Q1 = 1 et Q2 = 0

!

Le ir uit ompose d'une porte NON rebou lee sur elle-m^eme est un ir uit

astable.

 CHAPITRE 3. PRE-REQUIS

30

Bas ule RS Ajout de ommandes reset (R) et set (S) au bistable. Table de verite (Qi represente la sortie Q a l'instant i, x un etat quel onque) : R S Qi Qi+1 0 0 x x 0 1 x 1 1 0 x 0 1 1 x interdit

?

Que se passe t'il si R et S valent 1 simultanement? S'ils repassent ensuite simultanement a 0?

Bas ule RST L'horloge peut ^etre vue omme la syn hronisation de l'odre d'apparition des variables logiques.

L'ajout d'une entree d'horloge permet de valider les ommandes R et S : { si T = 1, fon tionnement omme une bas ule RS { si T = 0, onservation de l'etat ourant

Bas ule D Aussi appelee lat h. Inter^et : { pas d'etat instable { memorisation de l'entree

!

La bas ule D est utilisee pour la on eption des memoires.

Bas ule JK Bas ule RS ave sorties rebou lees sur les entrees : pas d'etat

interdit.

J 0 0 1 1

K 0 1 0 1

Qi

x x x x

Qi+1

x 0 1

x

 3.6. LES CIRCUITS SEQUENTIELS

31

SYMBOLES DES OPERATEURS LOGIQUES Symbole

Equations

(Norme MILSTD 086B)

Symbole (notation française)

Ensemble quelconque (la fonction est notée ou symbolisée à l’intérieur)

Inverseur

Ampli inverseur

Opérateur ET (AND)

Opérateur OU (OR)

Opérateur NON ET (NAND)

Opérateur NON OU (NOR)

Opérateur OU Exclusif (XOR)

 CHAPITRE 3. PRE-REQUIS

32

e1 e0

s0 s1 s2 s3

c1 c0 e3 e2 e1 e0

s

E1

Q1

Q2

E2 S

Q

R

Q

 3.6. LES CIRCUITS SEQUENTIELS

S T R

D

S Q

Q

R Q

Q

S Q

T R

J T

S Q

Q

K

R Q

Q

33

34

 CHAPITRE 3. PRE-REQUIS

35

Chapitre 4

Cir uits de al ul

36

CHAPITRE 4. CIRCUITS DE CALCUL

4.1 Introdu tion

!

INTEL a depense 300 millions de dollars pour le rempla ement de i ruits PENTIUM bogues... Ce ours suit le ours sur les prerequis en ontinuant les manipulation de nombres odes selon di erentes representations binaires (simple, omplementes, IEEE 754, ...) Il est onstitue d'une premiere partie portant sur les operations arithmetiques (en binaire pure, et en ottant) et d'une deuxieme partie sur la mise en oeuvre de es operations.

!

Dans e ours, le symbole \+" designe l'addition et non le ou logique. Le ou logique sera designe par le symbole \_" et le et logique par le symbole \^".

4.2 Arithmetique 4.2.1 Arithmetique binaire Les operations en binaire s'e e tuent omme en base 10 : { pour l'addition et la soustra tion, on opere hi re par hi re, des poids faibes aux poids forts, en propageant la retenue, { pour la multipli ation et la division, on pro ede par serie d'additions ou de soustra tions.

Addition et soustra tion Ces operations peuvent ^etre de rites par les tables de verite suivantes :

a 0 0 1 1

a 0 0 1 1

b 0 1 0 1

b 0 1 0 1

somme 0 1 1 0 di eren e 0 1 1 0

retenue 0 0 0 1 retenue 0 1 0 0

Exemple : en binaire naturel 27 + 22 = 49 : 11011 + 10110 = 110001 27 - 22 = 5 : 11011 - 10110 = 000101

somme(a,b) = a  b retenue(a,b) = ab

di eren e(a,b) = a  b retenue(a,b) = ab

 4.2. ARITHMETIQUE

37

Debordement (over ow) Il intervient lorsque le resultat de l'operation n'est pas representable dans le systeme utilise (i.e., ave le nombre de hi res utilise). Dans le as d'une addition de deux nombres en odage binaire naturel, le debordement orrespond a une retenue sortante a 1 ( as de 27 + 22 sur 5 bits). Addition ave le omplement a deux Considerons d'abord le as d'une ad-

dition sans debordement (on ne onsidere que les n bits resultats d'une operation sur deux nombres sur n bits). Detaillons les 4 as (selon les signes des operandes) : 5 9 14

00101 01001 01110

-5 -9 -14

11011 10111 10010

-5 9 4

11011 01001 00100

Comment est- e possible ? Cas de l'addition de X et Soit Z = X + Y . En omplement a deux, j X j= 2n Z

= (2n = 2n+1 = 2n+1

5 -9 -4 Y

00101 10111 11100 deux entiers negatifs.

j X j. Don

j X j) + (2 j Y j) (j X j + j Y j) jZj n

e qui sur n bits donne bien 2n - j Z j. Considerons le as du debordement : il y a debordement si { les operandes X et Y sont de m^eme signe, et { j X j + j Y j  2n+1

sur n bits sur n+1 bits

13 9 -10 22

01101 01001 10110 010110

-13 -9 10 -22

10011 10111 01010 101010

Le debordement peut ^etre dete te : { en omparant le signe des operandes au signe du resultat : s'ils sont di erents, il y a debordement, ou { en omparant la retenue entrante dans le bit de poids fort ave la retenue sortante : s'ils sont di erents, il y a debordement.

?

Comment fon tionne l'addition de nombres odes en omplement a 1?

38

CHAPITRE 4. CIRCUITS DE CALCUL

Multipli ation et division La multipli ation est tres simple : elle ne onsiste

qu'en des additions su

essives du multipli ande ave lui m^eme de ale. Le resultat d'une multipli ation ave des operandes de n bits est ode sur 2n bits.

!

Ces operations fon tionnent aussi ave des nombres odes en notations

omplementees. Exemple : 11 13 143

01011 -5 01101 -3 010001111 15

1...11011 11 1...11101 -3 000001111 -33

01011 1...11101 111011111

La division onsiste en des soustra tion su

essives. Par exemple : 1510 =310 = 1111=11 = 101

?

Cal uler 1101; 11  110; 01 et 1110; 10=1101

4.2.2 Arithmetique ottante Multipli ation C'est l'operation la plus simple en virgule ottante. Pour

deux nombres x1 = ( 1)s1  m1  2e1 et x2 = ( 1)s1  m2  2e2 , on a x1  x2 = ( 1)s1  ( 1)s2  m1  m2  2e1 +e2 . Le prin ipe general est don : 1. al ul du signe (s1  s2 ) 2. multipli ation entiere des mantisses : m1  m2 ( f plus haut) 3. mise de la mantisee a p bits ( f plus bas) 4. al ul de l'exposant : e1 +e2 (enlever une fois la valeur de l'ex es au besoin !)

Arrondi La multipli ation des deux mantisses sur p bits donne un resultat sur

2p bits, duquel on doit onserver une mantisse de p bits. Il faut don arrondir et eventuellement ajuster l'exposant pour normaliser le resultat. Pour arrondir, on s'appuie sur : { le bit de garde : p + 1ieme bit { le bit d'arrondi : p + 2ieme bit { le bit persistant : un ou logique des bits elimines Les p bits gardes sont fon tion du bit de poids fort du resultat : { si le bit de poids fort est 0, le resultat obtenu est de la forme 01,... On doit onserver le bit de garde dans le resultat. { si le bit de poids fort est 1, le resultat est de la forme 10,... On ajuste l'exposant, le bit de garde devient le bit d'arrondi, et l'an ien bit d'arrondi entre dans le al ul du bit persistant.

 4.2. ARITHMETIQUE

?

39

Multipli ation de 5 par 10 et 5 par 15 ave mantisses de 4 bits.

Il y a plusieurs manieres d'arrondir...

Les arrondis IEEE Soient r le bit d'arrondi, s le bit persistant, et p0 bit de poid faible du resultat. Le standard IEEE propose 4 appro hes d'arrondi : mode d'arrondi au plus pres vers - 1 vers + 1 0

resultat positif ou nul resultat + (r ^p0 ) _ (r ^ s) in hange resultat + (r _ s) in hange

resultat negatif resultat + (r ^p0 ) _ (r ^ s) resultat + (r _ s) in hange in hange

L'arrondi au plus pres, qui est l'appro he par defaut, onsiste a arrondir a la plus pro he valeur representable.

?

En utilisant une mantisse sur 6 bits, al uler la mantisse du resultat de l'operation : 1; 01011  1; 00101 en utilisant un arrondi au plus pres.

Debordement Il intervient lorsque l'exposant du resultat est superieur a la valeur maximum ou inferieur a la valeur minimum.

Addition L'algorithme d'addition de deux nombres ottants est un peu plus

omplique, ar il faut non seulement tenir ompte des signes, mais aussi aligner les virgules.

?

Appliquer l'algorithme (distribue en ours) : e e tuer sur 4 bits 1; 001  1; 5.

2 2 + 1; 111  20 , puis 1; 25

Division Pour deux nombres x1 = s1  2 1 et x2 = s2  2 2 , on a x1 =x2 = e

e

2 . Pour diviser deux mantisses sur p bits, on al ul le resultat sur p bits, plus deux bits supplementaires : le bit de garde et le bit d'arrondi. Le reste donne la valeur du bit persistant. s1 =s2

e1

e2

40

CHAPITRE 4. CIRCUITS DE CALCUL

Considerons 8=3, 'est a dire : 1; 000  23 =1; 100  21 1, 1, -

0 0 1

0 0 1 1 -

0 0 0 0 1

0 0 0 1 1 -

1, 0, 0 0 0 1

0 0 0 1 1 p

0 0 0 p

1 1

0 0

0 1

0 g

1 a

0 0 0 p

ou g designe le bit de garde, a le bit d'arrondi et p le bit persistant. Pour l'instant, le resultat est 0; 101  22 . La normalisation donne 1; 010  21 , 'est a dire 2,5, et l'arrondi 1; 011  21 soit 2,75 (le resultat orre t est 2,6666...).

4.3 Cir uits arithmetiques Cette se tion presente quelques ir uits typiques de mise en oeuvre de operations arithmetiques de rites i-dessus.

4.3.1 Addition La on eption d'un additionneur n bits (appele full adder ou additionneur omplet) demande de prendre en ompte systematiquement la retenue ( arry) entrant dans un etage d'addition et de generer un bit de resultat et un bit de retenue. Ainsi la table de verite de l'addition devient : rin

0 0 0 0 1 1 1 1

a 0 0 1 1 0 0 1 1

b 0 1 0 1 0 1 0 1

somme 0 1 1 0 1 0 0 1

rout

0 0 0 1 0 1 1 1

?

Le ir uit implantant la table de verite de l'addition sans retenue entrante est appele demi-additionneur. Construire un additionneur omplet a partir de demi-additionneurs. Suivent quelques exemples d'additionneurs. L'amelioration d'un additionneur (en terme de temps de al ul) porte sur la propagation de la retenue.

 4.3. CIRCUITS ARITHMETIQUES

41

Additionneur a propagation simple de retenue (CPA : arry propagate adder) Un additionneur n bits est realise en utilisant n additionneurs om-

plets, haque retenue sortant de l'etage d'addition i servant de retenue entrante dans l'etage i + 1. La retenue entrante au premier etage est positionnee a 0. La retenue sortante du dernier etage pourra servir d'indi ateur de debordement.

?

Faire la synthese logique d'un additionneur omplet sur 1 bit le plus rapide possible en utilisant des portes NOT, AND, OR, NAND, NOR. Determiner le temps maximum pour e e tuer une addition en supposant que le temps de

42

CHAPITRE 4. CIRCUITS DE CALCUL

traversee d'une porte NOT, NAND ou NOR est de d'une porte AND ou OR est de 2 .



et le temps de traversee

!

L'in onvenient majeur de e ir uit est le temps ne essaire a la propagation de la retenue, qui est proportionnel au nombre d'etage. La omplexite en temps d'un additionneur n bits est don en O(n).

Additionneur a retenue anti ipee (CLA : arry look-ahead adder) Le prin ipe de et additionneur est, pour haque etage d'addition, d'anti iper (to look ahead) la retenue avant de al uler la somme. Le fait d'obtenir une retenue sortante a un etage d'addition est due a { une generation de retenue a et etage, ou { une propagation de retenue par et etage Ce qui se retrouve dans l'expression de la retenue pour un etage i : ri+1

= (ai ^ bi ) _ (ai ^ ri ) _ (bi ^ ri ) = (ai ^ bi ) _ (ai _ bi ) ^ ri

Ainsi { gi = (ai ^ bi ) est appele generateur de retenue et { pi = (ai _ bi ) est appele propagateur de retenue. Don ri+1 = gi _ (pi ^ ri )

e qui, si on developpe les ri , donne : ri+1

= gi _ (pi ^ (gi 1 _ (pi 1 ^ (: : : g0 _ (p0 ^ r0 ) : : : )

En developpant en ore : ri+1

= gi

_ _ _ _ _

(pi ^ gi 1 ) (pi ^ pi 1 ^ gi 2 ) :::

(pi ^ pi 1 ^ : : : ^ p1 ^ g0 ) (pi ^ pi 1 ^ : : : ^ p1 ^ p0 ^ r0 )

Ce i permet de al uler haque retenue en fon tion de r0 et des ai ; bi des etages pre edents.

 4.3. CIRCUITS ARITHMETIQUES

43

Mise en oeuvre de l'additionneur a anti ipation de retenue Un moyen

d'implanter l'additionneur obtenu est de realiser un ir uit al ulant la propagation et la generation de retenue pour un etage en fon tion de la propagation et la generation des etages pre edents. Il y a propagation a l'etage j si dans les etages i a j il y a toujours eu propagation : Pj;i

= pj ^ pj 1 : : : pi+1 ^ pi

Il y a generation a l'etage j si 'est l'etage j lui m^eme qui genere, ou si les etages d'avant ont tous genere et propage : Gj;i

= gj _ pj ^ gj 1 _ pj ^ pj 1 ^ gj 2 _ : : : _ pj ^ pj 1 : : : pi+1 ^ gi

Don la retenue a l'etage j peut s'exprimer en fon tion de la retenue a l'etage

i; i < j :

rj +1

= Gj;i _ Pj;i ^ ri

Utilisons un ir uit pouvant generer les signaux P1;0 ; G1;0 et les retenues r1 ; r2 en fon tion des ouples (p0 ; g0 ), (p1 ; g1 ) et de la retenue entrante r0 . Pour un tel ir uit : G1;0

= g1 _ p1 ^ g0

P1;0 r1

= p1 ^ p0

= g0 _ p0 ^ r0

Supposons qu'un additionneur un bit nous al ule aussi la propagation et la generation. Il est possible d'organiser un generateur de retenue en arbre, qui permet d'anti iper haque retenue avant d'additionner.

!

Un additionneur a anti ipation de retenue sur n bits fon tionne en log(n) etapes pour le al ul des n retenues + 1 etape pour l'addition nale.

?

Faire fon tionner et additionneur sur 00101011 + 10110111

44

CHAPITRE 4. CIRCUITS DE CALCUL

Additionneur a saut de retenue ( arry-skip adder) Considerons un etage d'addition : s'il y a propagation de retenue, alors la retenue sortante est la retenue entrante, sinon la retenue sortante est la retenue generee. L'inter^et de ette onstatation est que pour un additionneur n bits, le signal de propagation est plus simple (rapide) a al uler que la propagation elle m^eme.

?

Comment realiser un tel additionneur?

Additionneur a sele tion de retenue ( arry sele t adder) Un tel additionneur est realise ave deux additionneurs fon tionnant en parallele, l'un ave une retenue entrante a 0, l'autre ave une retenue entrante a 1. Des re eption de la retenue entrante e e tive, une simple sele tion permet d'obtenir le resultat.

 4.3. CIRCUITS ARITHMETIQUES

!

45

L'addition est don realisable tres rapidement.

4.3.2 Multipli ation Le prin ipe de la multipli ation est la generation de produits partiels et leur addition. Ainsi, l'amelioration d'un multiplieur passe par es deux aspe ts : notamment, elle onsiste en la redu tion du nombre de produits partiels (don d'additions), ou l'a

eleration de l'addition des produits partiels.

Multipli ation sequentielle Supposons que notre ALU ontienne des re-

gistres de n bits. Un multiplieur sequentiel opere sur 2 nombres non signes, A = an 1 : : : a1 a0 et B = bn 1 : : : b1 b0 . Ces deux nombres sont ontenus dans deux registres A et B , et on utilise un registre supplementaire P . L'algorithme de al ul de A  B est le suivant : 1. P 0 2. faire n fois (a) si le hi re de poid faible de A est 1 alors { P P + B, { sinon P P + 0

46

CHAPITRE 4. CIRCUITS DE CALCUL

(b) de alage des registres P et A vers la droite : le bit de poids fort de P re

oit la retenue sortante, le bit de poids faible de P est transfere dans le bit de poids fort de A. L'an ien bit de poids faible de A est perdu. Le resultat se trouve dans P (les bits de poids fort) et dans A (les bits de poids fables).

!

n

additions sont ne essaires

Multipli ation a onservation de retenue L'idee de e multiplieur est

d'asso ier un me anisme de propagation de retenue au me anisme de de alage du registre P . Ainsi la retenue n'est plus propagee sur haque etage d'une addition, mais est onservee pour l'addition suivante.

 4.3. CIRCUITS ARITHMETIQUES

47

Re odage de Booth Le but de e re odage est de reduire le nombre de

produits partiels. Il est base sur la onstatation suivante : 2i+j 2i = 2i+j 1 + 2i+j 2 + : : : + 2i Ainsi lors d'une multipli ation, lorsqu'une sequen e de j 1 apparait dans le multipli ande (du bit i + j 1 au bit i), on peut rempla er les j additions par : { une addition pour le rang i + j et { une soustra tion pour le rang i. Par exemple le nombre 000111110011100 se re ode en 001000010100100, ou 1 indique une soustra tion et 1 indique une addition.

? !

Multiplier 3 par 15 en employant le re odage de Booth. Re odage non lie a une implantation parti uliere.

Multiplieur a base plus elevee (radix-4 modi ed Booth re oding)

Une multipli ation a base plus elevee (sous entendu que 2) onsidere plusieurs bits simultanement (au lieu de 1 habituellement). Ainsi, un multiplieur a base 2k onsidere k bits simultanement.

48

!

CHAPITRE 4. CIRCUITS DE CALCUL

Le nombre de produits partiels est divise par k.

Considerons un multiplieur a base 4. On onsidere les bits deux par deux, en s'appuyant sur le bit pre edent la paire ourante. De plus, on emploi un re odage de Booth. Pour un nombre A, on a

X2 n=

A

=

=0

i

ave a 1 = 0 (par exemple, 3 = 2  21

!

2a2i+1 )22i

(a2i 1 + a2i

1  20 )

Une multipli ation par la base = un de alage vers la gau he.

L'operation a faire sur le resultat intermediaire est donnee par la table suivante (en fon tion des bits du multipli ande A) : a2i+1 a2i a2i 1 r esultat intermediaire 0 0 0 0 0 0 1 +B 0 1 0 +B 0 1 1 +2B 1 0 0 -2B 1 0 1 -B 1 1 0 -B 1 1 1 0 Exemple : la multipli ation de 7 (A = 00111) par 3 (B = 00011) se fait omme suit : 0 0 1 1 1  0 0 0 1 1 - 0 0 0 1 1 (-B) + 0 0 0 1 1 (+2B) 0 0 0 0 0 1 0 1 0 1

?

Donner la table permettant de determiner le multipli ande intermediaire a ajouter pour une multipli ation en base 8.

Multipli ation en reseau (parallel multiplier) L'idee est d'utiliser un

ir uit pour haque element xi yj d'un produit partiel :

p7

x3 y3 p6

x3 y2 x2 y3 p5

x3 y1 x2 y2 x1 y3 p4

x3 y3 x3 y0 x2 y1 x1 y2 x0 y3 p3

x2 y2 x2 y0 x1 y1 x0 y2

x1 y1 x1 y0 x0 y1

x0 y0 x0 y0

p2

p1

p0

 4.3. CIRCUITS ARITHMETIQUES

49

Chaque element xi yj : { multiplie xi par yj (xi ^ yj ) { additionne la somme partielle provenant de l'element xi+1 yj 1 { tient ompte de la retenue provenant de l'element xi 1 yj { envoie la retenue a l'element xi+1 yj { envoie la somme a l'element xi yj +1 Le ir uit utilise est le suivant, ou (r; S ) = X  Y + K + M (S est la somme, et r est la retenue sortante).

Ce qui permet d'organiser un multipli ateur reseau omme suit.

4.3.3 Division L'amelioration des diviseurs porte sur la redu tion du nombre d'operations (addition, soustra tion) intermediaires ne essite par l'operation de division. Dans tous les diviseurs presentes i-dessous, les operandes sont 2 nombres non signes de n bits, ontenus dans deux registres : le registre A ontient le dividende, et le registre B ontient le diviseur. On utilise un registre supplementaire P. En n de division, le registre A ontient le quotient et le registre P ontient le reste.

Division ave restauration L'algorithme de division ave restauration est le suivant (dans e qui suit, negatif") :

p <

0 s'interprete omme \P ontient un nombre

1. P 0 2. faire n fois (a) de alage des registres P, A d'un bit vers la gau he : le bit de poids fort de A est inje te dans le bit de poids faible de P

50

CHAPITRE 4. CIRCUITS DE CALCUL

(b) P ( ) si P

P

B

0 alors le bit de poids faible de A est mis a 0, P P + B ( etape de restauration) sinon le bit de poids faible de A est mis a 1 <

Division sans restauration L'etape de restauration peut ^etre evitee en hangeant la phase iterative par : 1. si P

0 de alage des registres P, A d'un bit vers la gau he : le bit de poids fort de A est inje te dans le bit de poids faible de P P P +B sinon de alage des registres P, A d'un bit vers la gau he : le bit de poids fort de A est inje te dans le bit de poids faible de P <

P

P

B

 4.3. CIRCUITS ARITHMETIQUES

2. si P

51

0 le bit de poids faible de A est mis a 0 sinon le bit de poids faible de A est mis a 1 <

Une restauration nale est toutefois ne essaire si P

<

0 en n de division.

Division SRT A haque etape de la division sans restauration, une addition

ou une soustra tion est realisee. Un algorithme a ete propose independament par Sweeney, Robertson, To her pour eviter une ou plusieurs de es additions dans ertains as. Dans e qui suit, les qi sont les bits du quotient, inje tes dans les bits de poids faible de A. 1. si il y a k 0 dans les bits de poids fort de B, on de ale de k-1 positions vers la gau he les registres P,A et B. 2. pour i de 0 a n-1 (a) si les trois bits de poids fort de P sont egaux de aler P,A d'une position a gau he : le bit de poids fort de A est inje te dans le bit de poids faible de P qi 0

52

CHAPITRE 4. CIRCUITS DE CALCUL

sinon si P < 0 { de aler P,A d'une position vers la gau he : le bit de poids fort de A est inje te dans le bit de poids faible de P { qi 1 { P P +B sinon { de aler P,A d'une position vers la gau he : le bit de poids fort de A est inje te dans le bit de poids faible de P { qi 1 { P P B 3. si P < 0 (le reste nal est negatif) P P +B A A 1 4. de aler le reste de k-1 positions vers la droite

?

Tester et algorithme sur 8/3

53

Chapitre 5

Memoire

 CHAPITRE 5. MEMOIRE

54

5.1 Introdu tion Ce ours introduit la strategie memoire mise en oeuvre dans un ordinateur, et les ara teristiques asso iees a ette strategie en terme d'organisation et de performan e.

!

A e jour, il n'existe pas de te hnologie optimale pour satisfaire le besoin en memoire d'un ordinateur. On ommen e par aborder les ara teristiques d'une memoire, puis on detaille les di erents mode d'a

es. Le ours se fo alise ensuite sur la hierar hie memoire interne, 'est a dire la memoire prin ipale et la memoire a he. L'exemple du pentium II est rapidement presente.

5.2 Les ara teristiques Dans e hapitre, on appellera memoire tout dispositif (ele tronique) apable de onserver et restituer une information. On parlera de mot memoire (ou plus simplement de mot) pour designer l'ensemble de bits pouvant ^etre lus ou e rits simultanement.

Les di erents types physiques de memoires Les di erents supports utilises sont prin ipalement { semi- ondu teur (e.g., registre) { magnetique (e.g., disquette) { optique (e.g., d-rom)

Duree de memorisation Elle peut ^etre fon tion du temps (de quasi-permanente, e.g., disque, ROM a temporaire, ex. memoire dynamique), ou fon tion de la presen e d'alimentation ele trique (volatilite : e.g., RAM).

Empla ement Il orrespond a la lo alisation de la memoire dans la ma hine : { dans le pro esseur (registre) { interne (memoire prin ipale) { externe (aussi appelee memoire se ondaire).

Capa ite Elle Represente le nombre d'informations sto kable. Exprimee en o tet (byte) ou en mot (word) de 8, 16 ou 32 bits. On utilise des puissan e de deux, ave les unites suivantes : { kilo 1K = 210 = 1024 { mega 1M = 220 = 1 048 576 { giga 1G = 230 = 1 073 741 824 { tera 1T = 240 = 1 099 511 627 776 { peta 1P = 250 = 1 125 899 906 842 620

 5.3. MODE D'ACCES

55

Performan e On onsidere prin ipalement les informations suivantes :

{ le temps d'a

es : le temps ne essaire a une operation de le ture/e riture i.e., le temps qui separe l'instant ou l'operation est demandee (exemple : l'adresse est presentee a la memoire pour une operation de le ture) du l'instant ou l'operation est terminee (l'information est disponible), { le debit : la quantite d'informations lues/e rites par unites de temps (exemple : Mo/s).

Mode d'a

es Il s'agit de la maniere de retrouver une information, d'a

eder a un mot memoire ( f se tion 5.3). Hierar hie L'ideal est de posseder une memoire illimitee et tres rapide. Or

le temps d'a

es augmente ave la apa ite. L'idee adoptee pour l'organisation de la memoire est don de onsiderer que seules les donnees les plus utilisees ne essitent un temps d'a

es tres petit. Ainsi la memoire est organisee en une hierar hie : { du plus au moins rapide, 'est a dire { de la apa ite la plus faible a la apa ite la plus grande, 'est a dire { du omposant le plus outeux au omposant le moins outeux !

5.3 Mode d'a

es Le mode d'a

es a une memoire depend surtout de l'utilsation qu'on veut en faire.

A

es aleatoire Il s'agit du mode d'a

es le plus employe. Il est utilise par

{ les memoires qui omposent la memoire prin ipale, { quelques memoires a hes. A haque mot memoire est asso iee une adresse unique (pas d'ambiguite dans la designation du mot re her he). Le fon tionnement est elui presentee deja au

hapitre introdu tion. N'importe quelle adresse peut ^etre traitee (d'ou le nom). La taille d'une adresse depend de la apa ite de la memoire. Par exemple, pour une memoire de 4 Gbits il faut au moins une adresse de 32 bits : 1 gigabits = 230 = 1 073 741 824 bits, 4Go = 4  230 = 22  230 . Les operations asso iees a e mode d'a

es : { le ture(adr), { e riture(adr,donnee) Le temps d'a

es est onstant (il est independant des a

es pre edents).

A

es par le ontenu Ce mode d'a

es ara terise les memoires appelees memoires asso iatives. Il est employe prin ipalement par les memoire a hes.

56

 CHAPITRE 5. MEMOIRE

Le prin ipe est similaire a la memoire a a

es aleatoire sans notion d'adresse : un mot est retrouve par une partie de son ontenu. En general, une memoire asso iative est divisee en 2 parties : 1. une partie ontenant un des ripteur ( le) et permettant une omparaison en parallele de e des ripteur ave un autre des ripteur, et 2. une deuxieme partie fournissant le mot asso ie au des ripteur. Les operations asso iees a e mode d'a

es : { e riture( le,donnee) { le ture( le) { existe( le) { retirer( le) Le temps d'a

es est onstant.

A

es sequentiel Employe pour l'ar hivage d'importants volumes de donnees

(par exemple sur bandes magnetiques). Les diverses informations sont e rites les une derriere les autres : pour a

eder a une donnee, il faut avoir lu les pre edentes. Les operations asso iees a e mode d'a

es : { debut : se positionner sur la premiere donnee { le ture : lire une donnee { e riture(donnees) : e rire donnee { n : se positionner apres la derniere donnee Le temps d'a

es est variable.

A

es dire t Employe pour les disques (durs ou souple).

Chaque blo de donnees a une adresse unique. Une donnee est a

edee en a

edant le blo qui la ontient, puis en se depla ant dans le blo jusqu'a sa position. Les operations asso iees a e mode d'a

es : { le ture(blo ,depla ement) { e riture(blo ,depla ement,donnee) Le temps d'a

es est variable.

5.4 Memoire prin ipale

!

L'a

es a la memoire prin ipale est le hemin le plus important dans l'ordinateur.

 5.4. MEMOIRE PRINCIPALE

57

Types Les memoires omposant la memoire prin ipale sont des memoires a

base de semi- ondu teurs, employant un mode d'a

es aleatoire. Elles sont de deux types : volatiles ou non. Le terme RAM orrespond aux memoires volatiles. Elles sto kent des donnees temporaires. A tuellement on en trouve prin ipalement 2 types : { RAM dynamique (DRAM) : des ondensateurs sont utilises omme unites de memorisation. Elles ne essitent un rafrai hissement periodique. Elles sont simples, denses, peu outeuses. { RAM statique : des bas ules sont utilisees omme unites de memorisation. Elles sont plus rapides, et ne ne essitent pas de rafai hissement.

!

Le ir uit DRAM demeure (depuis plus de 20 ans) la brique de base de la memoire prin ipale. Les ROM (Read-Only, Read-Mostly Memory) sont utilisees pour sto ker des informations permanentes (programmes systemes, mi roprogrammation, f plus tard). On en trouve de plusieurs types, selon omment sont faites/possibles la le ture/e riture { ROM : e riture unique lors de la fabri ation { PROM : e riture unique apres fabri ation { EPROM : admet un nombre d'e riture limite (e a age par ultra-violet).

Organisation L'element de base d'une memoire semi- ondu teur est appele

ellule. Une ellule possede 3 onnexions : { une entree de sele tion indiquant si la ellule est on ernee par l'operation

ourante { une entree de ontr^ole indiquant l'operation ourante est une le ture (Output Enable) ou une e riture (Write Enable) { une ligne bidire tionnelle pour les donnees. A partir de et element de base, realisons un ir uit memoire RAM de M mots de B bits ha un. On peut organiser ette memoire en une matri e de M lignes et B olonnes. Ainsi, outre les entrees de sele tion, le ture et e riture (toutes sur 1 bit), on doit disposer de log2 (M ) lignes d'adresse (par exemple, 10 = log2 (1024)) et de B lignes de donnees. Supposons maintenant qu'a partir de ir uits RAM de 1024  8 bits et de ir uits ROM de 4096  8 bits, on her he a realiser un espa e adressable de 216 mots de 32 bits, et disposer de 4096 mots memoires en RAM et 4096 mots memoire en ROM. Pour obtenir un mot, il faut en parallele 4 ir uits de 8 bits. On de nit une arte d'adresse memoire, 'est a dire l'o

upation e e tive de l'espa e adressable : { les 4096 mots memoires RAM orrespondront aux adresses les plus basses (de 0 a 4096),

 CHAPITRE 5. MEMOIRE

58

{ les 4096 mots de memoires ROM orrespondront aux adresses les plus elevees (de 61440 a 65535), { les autres adresses resteront ino

upees. etage RAM 0 RAM 1 RAM 2 RAM 3 ino

upe ROM 4

bits d'adresse 0000 00xx xxxx xxxx 0000 01xx xxxx xxxx 0000 10xx xxxx xxxx 0000 11xx xxxx xxxx 1111 xxxx xxxx xxxx

Cette memoire possede les parti ularites suivantes : { elle est adressable au mot : deux valeurs onse utives d'adresse designent deux mots onse utifs, { l'organisation physique mots par mot re ete l'organisation logique. Il faut hoisir une onvention pour l'adresse de l'o tet de poids faible dans le mot : { adresse la plus faible du mot : onvention petit bout (little endian, employe par la famille i386), { adresse la plus elevee du mot : onvention gros bout (big endian, employe par la famille 68000)

Memoire dynamique DRAM Du fait de leur grande apa ite et de leur

stru ture interne, les ir uits de memoire dynamique multiplexent le bus adresse : l'adresse de n bits d'un mot est envoye en 2 fois n=2 bis. Deux signaux indiquent si la demi adresse ourante est en fait les bits de poids faible ou de poits fort de

 5.5. MEMOIRE CACHE

59

l'adresse. Ces signaux sont nommes RAS (Row Adress Sele t) et CAS (Column Adress Sele t). Ainsi pour realiser une memoire de 16 M mots de 1 bit a partir de ir uits de 4 M mots de 1 bit, on assemble 4 ir uits di eren ies par le signal CAS. Ce type de memoire ne essite un ompteur memorisant le numero de ligne devant subir un y le de rafrai hissement (refresh ounter). Un ontr^oleur de memoire dynamique est un ir uit integre qui regroupe : { la partie ompteur { la partie multiplexage d'adresses { la partie generation des signaux CAS et RAS { d'autres fon tionalites ( ontr^ole d'a

es au bus de donnees, f plus tard...)

5.5 Memoire a he

!

La performan e des mi ropro esseurs augmente de environ 55% par an depuis 1987. La performan e des memoire augmente de environ 7% par an.

60

 CHAPITRE 5. MEMOIRE

Le a he memoire est un niveau de memorisation intermediaire tres rapide (plusieurs dizaines de fois que la memoire prin ipale) et de petite apa ite destine a memoriser les donnees ou instru tions les plus re emment a

edees. Un a he est typiquement situe entre le pro esseur et la memoire, mais peut aussi ^etre situe entre le pro esseur et un autre a he, et ...

Prin ipe Re her he d'une donnee dans le a he avant de la re her her dans

la memoire prin ipale : { su

es a he : la donnee est presente dans le a he { defaut de a he : la donnee est absente du a he Un blo est un ensemble de mots d'adresses ontigues. La memoire est de oupee logiquement en blo de m^eme taille (e.g., de 4 a 128 o tets, 32 o tets pour un pro esseur Alpha AXP 21064). Lors d'un a

es a une adresse, on regarde si le blo ontenant l'adresse est dans le a he. En as de defaut de a he, le blo entier est opie dans le a he. Explorons les ara teristiques d'un a he.

Nombre de a hes et lo alisation A tuellement, la norme est a l'utilisation

de multiple a hes, organises en niveau (level). Un a he peut ^etre situe sur la m^eme pu e que le pro esseur (on- hip/internal

a he), ou n'^etre qu'a

essible via un bus externe au pro esseur (external a he). L'utilisation d'un a he interne permet { d'augmenter les performan es { de laisser le bus externe disponible

 5.5. MEMOIRE CACHE

61

Une organisation typique est : un a he interne (de niveau 1) et un a he externe (de niveau 2). Le a he de niveau 2 doit ^etre de 10 a 100 fois plus grand que le/les a hes de niveau 1 pour ^etre interessant.

Contenu Ave l'utilisation de multiples a hes a surgi l'idee de dedier un

a he au sto kage des donnees et un a he au sto kage des instru tions. L'inter^et reside dans la possibilite pour le pro esseur de disso ier le me anisme d'exe ution des instru tions d'ave elui de re her he et de odage des instru tions. Taille du a he Il doit ^etre suÆsament petit pour que son o^ut soit pro he de

elui d'une memoire prin ipale, et que le temps d'a

es soit le plus interessant possible, et suÆsament grand pour ne pas avoir a trop a

eder a la memoire prin ipale. Des etudes ont montre que les a hes les plus eÆ a es on une taille inferieure a 512 K mots, mais leur performan e dependent beau oup de la nature des appli ations traitees par la ma hine...

Correspondan e La taille du a he est beau oup plus petite que la taille de

la memoire. Il faut de nir une strategie de opie des blo s de donnees dans le

a he. 3 strategies sont possibles : { orrespondan e dire te : haque blo memoire ne peut ^etre pla e que dans un seul blo du a he, { orrespondan e totalement asso iative : haque blo memoire peut ^etre pla e dans n'importe quel blo du a he

62

 CHAPITRE 5. MEMOIRE

{ orrespondan e asso iative par ensemble : haque blo memoire peut ^etre pla e dans n'importe quel blo du a he parmi un ensemble de n blo s. Aujourd'hui la grande majorite des a hes sont a orrespondan e dire te ou a

orrespondan e asso iative par ensemble de 2 ou 4 blo .

A

es a un blo du a he Les adresses memoires peuvent ^etre onstruites

en fon tion de la orrespondan e entre memoire prin ipale et a he. Dans e as, l'adresse memoire d'un mot ontient des informations sur sa presen e dans un blo et sa presen e eventuelle dans le a he. Elle se de ompose en deux partie : { un numero de blo , qui se de ompose en { un index, orrespondant a l'empla ement de e blo dans le a he { une etiquette permetant d'identi er le blo memoire orrespondant au blo pla e dans le a he { un depla ement dans le blo (le numero du mot dans la blo ). Ainsi, une table d'etiquette est maintenue, qui donne pour haque blo du a he l'etiquette du blo memoire pla e dans e blo , ou le fait qu'au un blo memoire n'a ete opie dans e blo .

Algorithme de rempla ement Il existe plusieurs manieres de determiner quel blo du a he va re evoir le blo memoire ayant provoque un defaut de

a he.

!

Le probleme ne se pose que dans le as de la orresponda e asso iative (totale ou par ensemble). Divers strategies sont employees, prin ipalement : { hoisir un blo andidat de maniere aleatoire { hoisir le plus an ien blo du a he (FIFO, First In First Out) { hoisir le blo le moins re emment utilise (LRU Least Re ently Used) { hoisir le blo le moins frequemment utilise (LFU Least Frequently Used) Les strategie on ernant l'utilisation (LFU, LRU) sont les plus eÆ a e (vient ensuite la strategie aleatoire). Les strategies aleatoire et FIFO sont plus fa iles a implanter.

Politique d'e riture Considerons le as d'une operation d'e riture. Deux

situations se presentent selon que le blo dans lequel on souhaite e rire se trouve dans le a he ou non. Dans le premier as, on peut hoisir { d'e rire a la fois dans le blo du a he et dans le blo de la memoire (e riture simultanee, ou write through) { d'e rire uniquement dans le blo du a he, et di erer l'e riture de e blo en memoire lorsque l'empla ement qu'il o

upe sera designe pour re evoir un nouveau blo memoire (ree riture ou write ba k).

5.6. EXEMPLE : LE PENTIUM II

63

?

Lorsqu'on adopte une strategie write ba k, que se passe t'il lorsqu'un peripherique demande l'a

es a la memoire? Dans le deuxieme as, on peut hoisir { de harger le blo de la memoire dans le a he puis e e tuer l'operation d'e riture (e riture allouee) { d'e e tuer l'e riture dire tement dans la memoire (e riture non allouee). Une optimisation lassique pour diminuer l'attente de la n d'une e riture

onsiste a utiliser un tampon d'e riture, permettant au pro esseur de ontinuer a travailler des que la donnee est e rite dans le tampon, sans attendre l'a quittement de la memoire.

Performan e On peut evaluer la peforman e d'une memoire utilisant un

a he par le al ul du temps d'a

es memoire moyen : temps d'a

es memoire moyen = temps d'a

es su

es + taux d'e he  penalite d'e he temps d'a

es su

es = temps d'a

es a une donnee residant dans le a he taux d'e he = nombre de defaut de a he / nombre d'a

es a he Exemple : lors de l'exe ution d'une instru tion, le pro esseur prend du temps pour la de oder, a

eder aux donnees en memoire ne essitees par ette insstru tion, et de len her les operations sur es donnees. Voi i le as suivant : duree d'un y le horloge : penalite d'e he : 10 y les duree d'une instru tion (sans referen e memoire) : 2 y les nombre de referen es memoire par instru tion : 1,33 taux d'e he : 2% temps d'a

es su

es : negligeable temps d'exe ution moyen d'une instru tion = (2 + 1; 33  2%  10) = 2; 27 et dans le as ou il n'y a pas de a he, e temps passe a : temps d'exe ution moyen d'une instru tion = (2 + 1; 33  10) = 15; 3

5.6 Exemple : le pentium II Le pentium II d'Intel emploie un type parti ulier de memoire DRAM, la SDRAM, et deux niveau de a hes.

SDRAM La SDRAM (Syn hronous DRAM) est une evolution de la DRAM. La DRAM est asyn hrone ; lorsque le pro esseur demande une operation de le ture/e riture, il doit attendre pendant le temps orrespondant au temps d'a

es du ir uit que l'operation soit exe utee. La SDRAM e hange ses donnees ave le pro esseur en se basant sur un signal d'horloge externe. Elle dispose de registres internes pour sto ker les informations a traiter (en le ture ou e riture). Elle repond apres un nombre de y les d'horloge xe (le pro esseur peut faire autre hose entre temps). Elle dispose d'un mode

 CHAPITRE 5. MEMOIRE

64

d'a

es \en rafale" (burst mode) pour lequel seule l'adresse de debut d'une sequen e de mots (a lire/e rire) est donnee ( e qui elimine le de odage des adresses suivantes).

Ca he Evolution a he de la famille i386 : pro esseur 80386 80486 pentium pentium 2 pentium 3

a he 0 1 a he interne 8Ko 1 a he interne donnee 8 Ko et 1 a he interne instru tions 8 Ko 1 a he interne donnee 16 Ko et 1 a he interne instru tions 16 Ko 1 a he externe 256 Ko ommun au 2 a hes internes 1 a he interne donnee 16 Ko et 1 a he interne instru tions 16 Ko 1 a he externe 256 Ko ommun au 2 a hes internes

par omparaison : pro esseur INTEL eleron 2 AMD athlon

a he 1 a he interne donnee 16 Ko et 1 a he interne instru tions 16 Ko 1 a he externe 128 Ko 1 a he interne 128 Ko 1 a he externe 256 Ko

Les a hes internes du pentium 2 sont a orrespondan e asso iative par ensemble. Le a he interne donnee utilise un algorithme LRU pour le rempla ement et une politique d'e riture write ba k. Il peut ^etre on gure pour adopter une politique write-through.

65

Chapitre 6

Inter onnexions

66

CHAPITRE 6. INTERCONNEXIONS

6.1 Introdu tion Ce ours presente la ommuni ation entre les di erentes unites fon tionnelles de la ma hine. On s'attarde tout d'abord sur l'ar ite ture globale de ommuni ation, puis on examine les ara teristiques et le fon tionnement des bus. Le

ours se los sur l'exemple du bus PCI.

6.2 Stru ture d'inter onnexion Rappel : un ordinateur se ompose de trois unites fontionnelles, dediees aux operations suivantes : { la memoire : le ture, e riture d'un mot de donnee a une adresse { l'unite d'entrees-sorties (E/S) : omportement similaire a la memoire. Chaque peripherique a une adresse (appelee numero de port), et les operations sont le ture e riture de mots a une adresse { le pro esseur ( ontenant l'ALU) : le ture des instru tions et des donnees, e riture des donnees, utilise des signaux de ontr^ole pour ontr^oler le syseme Ces 3 unites ommmuniquent les unes ave les autres. On appelle stru ture d'inter onnexion l'ensemble des hemins les onne tant. La stru ture d'inter onnexion doit pouvoir supporter les types de transfert suivants : { { { { {

memoire vers pro esseur : le ture d'instru tions pro esseur vers memoire : e riture de donnees E/S vers pro esseur : le ture de donnees transmises par un peripheriques pro esseur vers E/S : transfert de donnees vers un peripherique E/S vers memoire ou memoire vers E/S : utilisation du prin ipe d'a

es dire t a la memoire (Dire t Memory A

ess) pour faire ommuniquer les deux unites sans passer par le pro esseur.

6.3 Bus 6.3.1 De nition et stru ture De nition : un bus est un hemin partage entre plusieurs unites (ou modules).

!

Un seul equipement transmet a un instant donne.

Un bus onsiste typiquement de 50 a 100 lignes transmettant des signaux representant des 1 ou des 0 (generalement des ondu teurs). Chaque ligne possede une fon tion propre. On distingue 3 groupes de fon tion di erentes : { les lignes de donnees (appelees bus de donnees),

6.3. BUS

67

{ les lignes d'adresses (bus d'adresse), { les lignes de ontr^ole, dont la fon tion est de ontroler l'a

es et l'utilisation des bus d'adresses et donnees. Ces signaux sont de deux types : { des signaux de timing indiquant la validite des informations d'adresse ou de donnees, { signaux de ommandes indiquant le type d'operation a e e tuer. Parmi les signaux de ontr^ole les plus ourants, on trouve : { memory write : ordre d'e riture de la donnee sur le bus a l'adresse memoire indiquee, { memory read : ordre de le ture de la donnee a l'adresse memoire indiquee, { I/O write : ordre d'e riture de la donnee sur le bus sur le port indique, { I/O read : ordre de le ture de la donnee sur le port indique, { transfer ACK : indique que les donnees ont ete a

eptees ou pla ees sur le bus, { bus request : indique qu'un module demande l'a

es au bus, { bus grant : indique qu'un module a obtenu l'a

es au bus, { lo k : utilise pour syn hroniser les transferts { reset : utilise pour la reinitialisation de tous les modules, { des signaux gerant les interruptions ( f plus tard).

Fon tionnement s hematique Une transa tion typique se ompose de 3 parties : { l'obtention du bus, { l'envoi d'une adresse et { l'envoi des donnees. On parlera de transa tion de type e riture quand un module veut transferer des donnees : une fois le bus obtenu, l'emetteur transmet ses donnees. On parlera de transa tion de type le ture quand un module veut demander des donnees : une fois le bus obtenu, l'emetteur transmet une requ^ete au module destination, et attend les donnees. Hierar hie bus multiple Plus le nombre d'equipement onne tes a un bus

est grand, plus les performan es de la ma hine de roissent (le bus devient un goulot d'etranglement). De plus la longueur physique du bus joue sur la vitesse de transfert de l'information : approximativement la vitesse de signal dans un ondu teur orrespond a la moitie de la vitesse de la lumiere dans le vide (exemple pour une horloge a 200 Mhz, pour un y le de 5ns, le signal n'a par ouru que 75 m). Les stru tures d'inter onnexions les plus ommunes sont basees sur l'utilisation d'une d'une hierar hie de bus. Les gures suivantes en donne quelques exemples.

68

CHAPITRE 6. INTERCONNEXIONS

L'inter^et est de separer ommuni ation pro esseur/memoire de ommuni ation E/S.

!

De maniere generale, on her hera a etager en fon tion de la performan e des peripheriques.

On obtient ainsi deux grandes familles de bus : { les bus UC-memoire, appeles bus systeme, generalement ourts et rapides. Lors de la on eption d'un bus systeme on onnait les omposants qui utiliseront le bus. { les bus E/S, plus long, moins rapides, o rent une gamme etendue de debits, et font souvent l'objet de normalisation.

6.3.2 Cara teristiques Largeur du bus Correspond au nombre d'information pouvant ^etre envoyees en parallele. Le debit sera d'autant plus grand que la largeur est elevee. Un bus

6.3. BUS

69

tres large permettra l'envoi simultane de donnees et adresses. Un bus peu large demandera un multiplexage des donees et adresses. La largeur du bus de donnees est determinante pour les performan es du systeme : si le bus a une largeur de 8 bits et que les instru tions sont odees sur 16 bits, le pro esseur doit faire deux a

es memoire pendant un y le instru tion. A tuellement, la largeur d'un bus de donnees est de 8, 16 ou 32 bits. La largeur du bus d'adresses determine la taille de la apa ite memorielle de l'ordinateur. Typiquement, les bits de poids fort sont utilisees pour sele tionner soit un module d'E/S, soit la memoire, et les bits de poids faible servent a sele tionner un port ou un empla ement memoire.

Type de transfert de donnees Il existe plusieurs moyen de transferer des

donnees : 1. e riture multiplexee : l'adresse est pla ee sur le bus en premier, ensuite les donnees, 2. le ture multiplexee : l'adresse est pla ee sur le bus en premier, ensuite, apres un temps d'a

es aux donnees, les donnees, 3. le ture/e riture non multiplexee : l'adresse et les donnees sont pla ees sur le bus en m^eme temps, 4. le ture-modi ation-e riture : une donnee est lue a une adresse et est immediatement modi ee (i.e., par une e riture a ette adresse), 5. transfert de blo de donnees : une adresse est pla ee sur le bus, ensuite les donnees a e rire/lire a l'adresse pla ee et aux adresses onse utives.

?

Quel est l'in onvenient d'un transfert de type 5?

70

CHAPITRE 6. INTERCONNEXIONS

Syn hronisation La transmission peut ^etre syn hrone ou asyn hrone.

Dans une ommuni ation syn hrone, le signal d'horloge est transmis sur les lignes de ontr^ole. Un proto ole est xe en fon tion de e signal pour emettre adresses et donnees. Cela permet une ommuni ation rapide au prix de peu de logique de ontr^ole. Neanmoins ela impose a l'emetteur et au re epteur de fon tionner a la m^eme frequen e d'horloge. Dans une ommuni ation asyn hrone, l'absen e de referen e a une horloge ne essite des e hanges de signaux pour indiquer la progression de la ommuni ation. La ommuni ation est moins rapide, et est realisee ave une logique plus importante. L'avantage est de permettre la ommunni ation entre omposants heterogenes (par exemple possedant une frequen e d'horloge di erente).

!

En general, le bus systeme fon tionnera de maniere syn hrone et un bus d'E/S de maniere asyn hrone. La syn hronisation est detaillee dans la se tion suivante.

Te hnique d'arbitrage Un module sera appele ma^tre s'il lui est permi de demarrer une transa tion sur le bus (exemple : l'UC, un module d'E/S).

!

Il ne peut y avoir qu'un seul ma^tre a la fois.

Un omposant non ma^tre sera dit es lave. Lorsqu'il existe plusieurs ma^tres de bus potentiels, un me anisme d'arbitrage est ne essaire pour designer qui sera le pro hain ma^tre ( f se tion 6.5). Une transa tion faisant intervenir plusieurs es laves (par exemple adresse a tous les a hes pour les rendre oherents) est appelee di usion (broad ast).

Performan es La performan e d'un bus est de nie par les riteres suivants :

{ la bande passante, 'est a dire la quantite d'in rmations e hangees par unite de temps, { la laten e, 'est a dire le temps de reponse du bus a une requ^ete de transfert, { la harge, 'est a dire le nombre maximum d'unites pouvant ^etres onne tees au bus, et { la longueur physique du bus.

6.4 Syn hronisation des e hanges L'e hange de donnees ne essite un timing qui peut ^etre implante de 3 manieres di erentes : { une maniere syn hrone lorsque les evenements ont lieu a des moments pre is dans le temps

 6.4. SYNCHRONISATION DES ECHANGES

71

{ une maniere asyn hrone lorsque les evenements peuvent avoir lieu a des moements arbitraires { une maniere semi-asyn hrone lorsque les evenements peuvent avoir lieu de maniere asyn hrone lors des di erentes phases d'une horloge.

6.4.1 Communi ation syn hrone Le timing des operations est ontr^ole par une horloge, il n'y a pas de dialogue entre emetteur et re epteur pour le ontr^ole de l'e hange. 2 signaux sont utilises, qui sont generes par l'horloge : { DR (Data Ready) : utilise par l'emetteur, il signal que les donnees sont pla ees sur le bus { DA (Data A

epted/A knowledge) : utilise par le re epteur, il signal que les donnees ont ete re ues.

Ce type de syn hronisation doit ^etre adapte au re epteur le plus lent.

6.4.2 Communi ation asyn hrone Il n'y a pas besoin d'horloge xe. Les signaux sont generes par les modules. On distingue trois type de proto oles asyn hrone : non-entrela e, semi-entrela e,

ompletement entrela e.

Transa tion asyn hrone non-entrela ee Dans e as, il ne faut pas que t5 soit inferieur a t4 ( e qui peut arriver si l'emetteur est tres rapide). Si tel est le as, le pro hain y le de bus pourrait

ommen er avant la retombee du signal DA. Le proto ole asyn hrone semientrela e permet de resoudre partiellement e probleme.

72

CHAPITRE 6. INTERCONNEXIONS

Transa tion asyn hrone semi-entrela ee L'emetteur fait retomber le signal DR en reponse au signal DA. Mais le probleme n'est toujours pas resolu entierement, l'emetteur pouvant ommen er une nouvelle transa tion trop t^ot.

Transa tion asyn hrone ompletement entrela ee

Dans la as d'un proto ole asyn hrone ompletement entrela ee (aussi appele handshake, poignee de main), l'en hainement des evenements est le suivant : 1. l'emetteur pla e les donnees sur le bus 2. l'emetteur leve le signal DR

6.5. TECHNIQUES D'ARBITRAGE

73

3. le re epteur lit la donnee 4. le re epteur leve le signal DA 5. l'emetteur remet DR a zero 6. l'emetteur retire sa donnee du bus 7. le re epteur remet DA a zero L'emetteur est don for e de debuter une nouvelle transa tion lorsque le signal DA est retombe. Ce proto ole est tres souvent utilise ar il permet de syn hroniser des modules ayant des vitesses tres di erentes. Un me anisme de time-out est mis en pla e pour eviter qu'un module ne reagissant plus soit assimile a un module tres lent. Les in onvenient de e proto ole sont que les delais de transmission des signaux de ontr^ole ralentissent la ommuni ation, et qu'il est sensible au bruit (le passage errone de 1 a 0 ou de 0 a 1 d'un signal de ontr^ole entraine une violation du proto ole).

6.4.3 Communi ation semi-asyn hrone Ce type de transfert emploi aussi des signaux de ontr^ole. Les transitions des signaux de ontr^ole ne peuvent avoir lieu qu'a des instants pre is, determines par une horloge. Le temps entre deux transistions su

essives peut ^etre variable. On retrouvera les modes non-entrela e, semi-entrela e, et entrela e. Le prin ipal avantage de e proto ole est qu'il est moins sensible au bruit.

?

Pourquoi e proto ole est il moins sensible aux bruits?

6.5 Te hniques d'arbitrage L'arbitrage de bus garantit qu'a tout moment il n'y a pas plus d'un seul ma^tre.

6.5.1 Types d'arbitrage Arbitrage statique L'arbitrage statique onsiste a rendre ma^tre les andi-

dats potentiels a tour de r^ole, dans un ordre xe. L'in onvenient est que si un ma^tre ne souhaite pas faire de transa tion a un moment donne, il reste ma^tre et le bus est inutilise (non-operation). L'avantage est la simpli ite de mise en oeuvre. Ce type d'arbitrage est utilise ave un proto ole syn hrone lorsqu'il y a peu de ma^tres potentiels.

Arbitrage dynamique L'arbitrage dynamique permet d'allouer le bus sur demande, lorsqu'il est libre, a un ma^tre potentiel qui en fait la demande en emettant un signal BR (Bus Request).

74

CHAPITRE 6. INTERCONNEXIONS

Lorsqu'il y a plusieurs demandes simultanees, un hoix doit ^etre fait qui peut ^etre : { suivant une priorite a e tee de maniere unique a haque ma^tre potentiel (les bus d'E/S utilisent souvent e type d'arbitrage) { de maniere equitable (pour eviter qu'un ma^tre potentiel de petite priorite voit ses demandes onstamment rejetees) { en ombinant les deux premieres politiques : un hoix equitable departage deux demandes de m^eme priorite. Le bus n'est attribue que lorsqu'il est libre. La liberation du bus peut avoir lieu de plusieurs manieres: { en n de transa tion, { sur demande : le ma^tre onserve le bus jusqu'a une nouvelle demande. Cette politique est utilisee lorsque un ma^tre (exemple le pro esseur) est

elui qui demande le plus souvent (exemple, par rapport a un module d'E/S), { par preemption : un module prioritaire peut devenir ma^tre avant la n d'une transa tion moins prioritaire.

6.5.2 Me hanismes materiels d'arbitres La realisation materiel d'un me anisme d'arbitrage peut ^etre distribue, 'est a dire reparti sur l'ensemble des modules onne tes au bus, ou bien entralisee,

'est a dire soit se trouver sur un seul des modules onne tes au bus ou faire l'objet d'un module dedie appele bus arbitre ou ontr^oleur de bus. Cette realisation est basee sur les trois signaux de ontr^ole suivants : { BR pour Bus Request : signale une demande de bus, { BA/BG pour Bus A knowledge/Bus Grant : signale l'obtention du bus, { BB pour Bus Busy : signale l'o

upation du bus. Commen ons par les trois te hniques d'arbitrage entralises.

Daisy hain La stru ture en guirlande (daisy hain) fon tionne de la maniere suivante :

6.5. TECHNIQUES D'ARBITRAGE

75

Un ordre de priorite est impose par la guirlande 1. les elements desirant ^etre ma^tre emettent un signal BR, 2. l'arbitre re oit le ou logique des signaux BR, 3. si BR, l'arbitre envoie le signal BG a la guirlande, 4. le module demandeur de plus haute priorite leve le signal BB et fait retomber le signal BG, il devient ma^tre du bus, 5. une fois la transa tion nie, le ma^tre fait retomber le signal BB. Les avantages de et arbitre sont sa simpli ite de realisation, qui est de plus quasi-independante du nombre de modules onne tes. Les in onvenients sont la priorite statique, la lenteur de reponse de l'arbitre (proportionnelle a la longueur de la guirlande), et une grande sensibilite aux pannes.

?

Que se passe t'il si un module tombe en panne?

Requ^ete-autorisation Chaque module onne te au bus dispose de lignes BG et BR propre.

Les avantages sont l'absen e de delai de reponse, de sensibilite aux pannes d'un module, et le ara tere non statique de la priorite. L'in onvenient est la multipli ation des lignes de ontr^ole.

Arbitrage mixte Cette te hnique est une ombinaison des deux te hniques pre edentes.

Chaque serie de modules possedant des lignes BG et BR est organisee en guirlande. Di erentes strategies d'arbitrage peuvent ^etre implantees pour designer le sous ensemble dont un element sera ma^tre du bus ( f plus bas). Pour une serie de module, la priorite est xe par la guirlande.

76

CHAPITRE 6. INTERCONNEXIONS

Arbitrage de entralise Le defaut de l'arbitrage entralise est la sensibilite de l'arbitre aux pannes : si l'arbitre tombe en panne, au une allo ation ne peut avoir lieu. L'arbitrage de entralise fon tionne de la maniere suivante :

Chaque module possede un numero de priorite unique, et dialogue ave son propre arbitre. Lorsqu'un module souhaite avoir le bus, 1. il envoie son numero de priorite a son arbitre, 2. l'arbitre pla e e numero sur le bus numero arbitrage (un groupe de lignes de ontr^ole du bus reservees a et e et), 3. le numero qui apparait sur es lignes est en fait le ou logique de tous les numeros de priorite des modules desirant ^etre ma^tre 4. e numero (resultat du ou logique) est ompare par haque arbitre au numero du module dont depend l'arbitre, 5. si e n'est pas elui de plus grande priorite, il est retire, sinon il est maintenu 6. reste don sur les lignes de ontr^ole du bus le numero du module pouvant ^etre ma^tre, 7. l'arbitre de e module peut don signaler au module qu'il est le nouveau ma^tre (signal BG) et leve le signal BB. Ce type d'arbitre est parti ulierement utilise dans les on gurations multipro esseur, ou l'e hange d'informations entre pro esseurs se fait via un bus.

6.5. TECHNIQUES D'ARBITRAGE

77

6.5.3 Strategies d'arbitrage Lorsque la priorite n'est pas xee statiquement, l'arbitre doit adopter une strategie pour departager les ma^tres potentiels. Les deux notions generalement examinees sont : { le niveau de priorite : l'arbitre hoisi le module le plus prioritaire au moment ou le bus est disponible, { l'an iennete de la demande : l'arbitre alloue le bus au module dont la demande est la plus an ienne. Les strategies peuvent ^etre basees sur un seul de es riteres, ou les deux. Examinons quelques strategies simples.

Strategie lineaire Un numero xe est attribue a haque demandeur. Les numeros sont ranges par ordre de priorite de roissante. Exemple : 4 L 3 L 1 L 2 signi e que le module le plus prioritaire est le module 4, et le moins prioritaire le 2. Cette strategie est simple a realiser, mais il y a risque de famine pour un demandeur moins prioritaire.

Strategie ir ulaire La priorite ir ule sur les demandeurs : les numero sont pla es dans une liste ir ulaire, et 'est le demandeur dont le numero est pla e a droite du numero du dernier ma^tre du bus qui devient ma^tre a son tour. Exemple : 4 R 3 R 1 R 2 signi e que le module le plus prioritaire est le module 4 si le module 2 etait ma^tre du bus lors de la derniere transa tion. Cette strategie est plus diÆ ile a realiser que la pre edente (il faut onnaitre le dernier ma^tre) mais evite la situation de famine. Strategie y lique Pour haque demandeur, on garde l'anteriorite des demandes pre edentes. L'arbitre applique une strategie lineaire sur les modules

lasses par ordre d'anteriorite de roissante (le module le plus an iennement servi sera le plus prioritaire). Exemple : 1 C 2 C 3 C 4, singni e que si a un moment donne, le plus an iennement servi est l'element numero 4, puis l'element numero 1, puis l'element numero 3 et en n l'element numero 2, l'element le plus prioritaire sera le 4. Si, seul le numero 3 demande le bus, il l'obtiendra, mais la priorite sera alors par ordre de roissant: 4, 1, 2 et 3. Strategie multiple Il s'agit simplement de melanger plusieurs strategies de rites

i-dessus. Exemple : 1 R (3 C 4) R (5 L 6) signi e que 5 sera le plus prioritaire si 3 ou 4 ont ete servis en dernier.

78

CHAPITRE 6. INTERCONNEXIONS

6.6 Exemple : le bus PCI Le bus PCI (Peripheral Component Inter onne t) est un standard (ses spe i ations sont dans le domaine publi ) developpe par intel , utilise pour les ommuni ations ave les E/S ( artes graphiques, artes reseau, ontroleur de disques, ...). Ses qualites (pro esseur-independant, on gurable, haut debit) l'ont rendu tres populaire et utilise dans des ordinateurs personnels, des serveurs, des stations de travail. Ses ara teristiques sont les suivantes (version 2.1) : largeur

aden e a debit max transfert timing arbitrage

32 ou 64 bits 66 Mhz 528 Mo/s multiplexage adresses et donnees en rafale semi-syn hrone

entralise syn hrone requ^ete-autorisation

a he

Transa tion Le bus PCI omprend des lignes de ontr^ole pour detailler type

d'operation (le ture/e riture) et destinataire (memoire, E/S). Une transa tion

onsiste en une phase d'emission d'une adresse, suivie de une ou plusieurs phase d'emission de donnees. Lors d'une transa tion, tous les evenements sont syn hronises sur des fronts des endants d'horloge.

Arbitrage L'arbitrage est entralise, et repose sur deux signaux BG et BR

pour haque module. La strategie n'est pas xee par la spe i ation du bus, et l'arbitre omprend plusieurs types de strategies (FIFO, ir ulaire, xation de priorite). L'arbitrage est a he, 'est a dire qu'il est e e tue pendant une transa tion.

79

Chapitre 7

Jeu d'instru tions

80

CHAPITRE 7. JEU D'INSTRUCTIONS

7.1 Introdu tion On a outume de dire que le jeu d'instru tion est la partie visible de la ma hine par le programmeur (prin ipalement pour l'e riture de ompilateur). Il y a une

orrespondan e dire te entre le jeu d'instru tion d'une ma hine, sa programmation et la on eption de sa CPU. La onnaissan e du jeu d'instru tion par le programmeur o re en quelque sorte une vue logique de la ma hine en terme de registres, de types de donnees, ou de fon tionnement de l'ALU.

!

Con evoir une CPU 'est en grande partie on evoir le jeu d'instru tions.

Ce ours ommen e par des de nitions (et un rappel du hapitre 1) portant sur les instru tions et leurs in uen e sur la CPU. Puis il est divisee en 2 grandes parties : la premiere partie repond a la question \que fait une instru tion ?" et la se onde a la question \ omment spe i er operation et operandes d'une instru tion?" Le pentium II sera pris en exemple.

7.2 De nition Les operations de la CPU sont determinees par les instru tions qu'elle exe ute. L'ensemble des instru tions qu'une CPU parti uliere peut exe uter est appele jeu d'instru tion de la CPU. Chaque type de ma hine possede don un jeu d'instru tions et une CPU spe i que. Une instru tion doit ontenir des informations requises par la CPU pour son exe ution : { le ode operation : un ode (binaire) identi ant l'operation a exe uter, appele op ode { la referen e aux operandes sour es : une ou plusieurs adresses faisant referen es aux operandes parametres de l'operation (qui peuvent provenir de la memoire, d'un registre de la CPU, ou d'un peripherique), { la referen e a l'operande resultat : l'operation peut produire un resultat et referen er expli itement e resultat, { la referen e a la pro haine instru tion : indique a la CPU ou her her l'instru tion suivant l'exe ution de l'instru tion ourante (elle peut ^etre impli ite, 'est le as lorsqu'il l'instru tion suivante est ontigue a l'instru tion

ourante).

Representation de l'instru tion Chaque instru tion est representee par une sequen e de bits, de oupee en hamps. Il y a di erents formats d'instru tion selon le nombre de parties reservees aux operandes. En general, un jeu d'instru tions in lue plusieurs formats d'instru tion di erents. Durant l'exe ution d'une instru tion, elle- i est hargee dans le registre d'instru tion (IR) de la CPU, qui doit en extraire les di erents hamps.

 7.3. CARACTERISTIQUES

81

Cette sequen e de bit admet une representation symbolique, ou l'op ode est represente par une abbreviation appelee mnemonique. Chaque op ode admet une representation binaire xe. Par exemple ADD R; Y signi e ajouter la valeur

ontenue a l'adresse Y au ontenu du registre R. Il est don possible de programmer en employant un tel langage, appele langage ma hine. Aujourd'hui, la programmation ne se fait plus qu'ave des langages de haut niveau (ou au pire ave des langage d'assemblage, qui sont une legere abstra tion des langages ma hine). Les langages ma hines reste ependant un bon moyen de de rire les jeux d'instru tion.

!

Le jeu d'instru tion doit ^etre suÆsament expressif pour oder toute instru tion d'un langage de haut niveau. Ainsi, une instru tion d'un langage de haut niveau orrespond en fait a plusieurs instru tions du langage ma hine.

?

Soit l'instru tion en langage de haut niveau elle traduite en langage ma hine?

X

= X + Y . Comment est

Con eption du jeu d'instru tion Il n'y a pas de onsen us sur la on eption d'un jeu d'ins tru tions. Les aspe t fondamentaux a prendre en ompte sont : { les operations : ombien en faut il, quelle doit ^etre leur omplexite ? { les types de donnees : quels sont les types de donnees supportes par les operations? { les registres : ombien en faut il et omment sont ils utilises? { l'adressage : quelles sont les di erentes fa ons de faire referen e aux donnees? { le format : quelle(s) longueur(s) d'instru tion adopter, quelle sera le nombre et la taille de hamps? Ces aspe ts sont grandement relies les uns aux autres, et doivent ^etre onsideres ensemble. Ils sont detailles dans la suite.

!

La on eption du jeu d'instru tions in ue grandement sur la on eption de la CPU.

7.3 Cara teristiques 7.3.1 Classi ation On peut lassi er les jeux d'instru tion selon le nombre d'adresses d'operandes manipulees (le format d'instru tion), ou selon la relation entre la memoire et les registres de la CPU.

82

CHAPITRE 7. JEU D'INSTRUCTIONS

Format d'instru tion Une operation fait referen e a des donnees sour es et

peut faire referen e a une destination. Ces referen es sont en fait les adresses des donnees. Le format d'une instru tion orrespond au nombre de hamps de l'instru tion reserve a es adresses. En theorie, il en faudrait 4 (pour deux operandes, un resultat, la pro haine instru tion). En pratique : { les formats d'instru tion a trois adresses ils sont peu ourants, ar donne lieu a des instru tions longues ; { les formats d'instru tion a deux adresses ne essitent que l'une des adresses fasse oÆ e de sour e et de destination ( e qui doit ^etre gere si la donnee sour e doit rester disponible) ; { les instru tions employant base sur un format a une seule adresse emploient systematiquement un registre CPU, l'a

umulateur, pour garder une operande et le resultat ; { Les instru tions n'employant au une adresse utilisent systematiquement une pile, ou sta k (i.e., une stru ture de liste geree de maniere LIFO) pour sto ker operandes et resultats.

?

Quel est l'impa t du format dans le odage de X = X + Y ?

Le hoix du nombre d'adresse est fait en onsiderant le fait suivant : moins il y a d'adresses, plus les instru tion sont ourtes, moins la CPU est omplexe, mais les instru tions seront plus nombreuses, don les programmes plus lents a exe uter. Disposer de plusieurs adresses est onjoint a la possibilite d'utiliser plusieurs registres.

!

A tuellement la plupart des ma hines utilisent un jeu d'instru tions melangeant les formats 2 adresses et 3 adresses.

Relation entre memoire et registres Les registres sont des elements de

memorisation rapide interne a la CPU. En disposer permet de minimiser les a

es a la memoire et d'a

elerer l'exe ution des instru tions. Ainsi le jeu d'instru tion peut ^etre base sur di erentes strategies de sto kage des donnees : { registre-registre ( hargement-rangement) : deux instru tions sont dediees au hargement de registre a partir de la memoire et au rangement de registre dans la memoire. Donne lieu a des instru tions simples dont l'exe ution est rapide (nombre de y les xe) mais le nombre d'instru tions generees est important, { registre-memoire : les instru tions peuvent manipuler les donnees dire tement dans les registres ou dans la memoire. Le ode genere est plus

ompa t mais les instru tions sont plus diÆ iles a de oder, et le nombre de y les pour l'exe ution est variable, { memoire-memoire : il y a a

es systematique a la memoire, qui peut devenir un goul^ot d'etranglement ( on erne les an iennes ma hines).

 7.3. CARACTERISTIQUES

!

83

La tendan e a tuelle est l'emploi du hargement-rangement.

7.3.2 Types d'instru tions Le nombre d'op odes varie d'une ma hine a l'autre. On peut ependant donner les ategories prin ipales suivantes : { transfert de donnees : es instru tions spe i ent l'empla ement des operandes sour e et destination, la taille des donnees a transferer, ainsi que la maniere d'a

eder a es donnee (le mode d'adressage) ; { les operations arithmetique : toutes les ma hines omprennent les operations de base sur des entiers signes ( xed point numbers), la plupart in luent des instru tions pour les operations sur des ottants, d'autres instru tions sont parfois disponibles ; { logique : servent aux manipulations de donnees bit a bit (masque), aux de alages, { onversion : hangement du format d'une donnee (e.g., DCB vers binaire) ; { E/S : transfert de donnees ave les E/S ; { ontr^ole systeme : instru tions reservees a un mode d'exe ution privilegie (e.g., pour l'utilisation du systeme d'exploitation) ; { transfert de ontr^ole : instru tions impliquant un hangement expli ite du

ompteur ordinal, pour exe uter un bran hement onditionnel, ou une repetition.

7.3.3 Types d'operandes Les donnees sur lesquelles les instru tions operent peuvent ^etre rangees dans les

ategories suivantes : { les adresses, qui peuvent ^etre onsiderees omme des entiers non signes sur lesquels des al uls sont possibles ; { les nombres : entiers ( xed-point), ottants, DCB. Ils peuvent avoir un r^ole spe i que (e.g., ompteur, de taille de hamps) ; { les ara teres, sous forme de odes ASCII ; { des donnees logiques, 'est a dire des sequen es de bits ayant ha un un sens (e.g., un tableau de booleens). Certaines ma hines emploient des types de donnees plus evoluees (liste ou ha^ne de ara teres).

7.3.4 Exemple : le pentium II Types de donnees Le pentium II utilise la onvention little endian, 'est a dire que l'o tet de plus faible poids est sto ke a la plus petite adresse. Il travaille sur des donnees de longueur 8 (o tet), 16 (mot), 32 (double mot) ou 64 bits (quadruple mot) qui sont quali ees de generiques, et peuvent ontenir une

84

CHAPITRE 7. JEU D'INSTRUCTIONS

sequen e de bits arbitraire. Plus pre isement, le pentium II supporte des types de donnees spe i ques (manipules par des operations parti ulieres) : { general : ontenu arbitraire sur 8, 16, 32 ou 64 bits ; { entier : binaire signe en omplement a 2 sur 8, 16 ou 32 bits ; { ordinal : entier non signe sur 8, 16 ou 32 bits ; { BDC : entier entre 0 et 9 sur 8 bits ; { pa ked b d : 2 hi res BDC (de 0 a 99) sur un o tet ; { pointeur : une adresse sur 32 bits ; { hamps binaire : sequen e de bits onsideres ha un de maniere ndependante (bornee a 232 bits); { ha^ne d'o tet : sequen e d'o tets, mots ou doubles mots (bornee a 232 o tets) ; { ottants : orrespond a un ensemble de types utilises par l'unite arithmetique en virgule ottante, manipulees par des operations dediees. Ces types sont : { entier mot : binaire en omplement a 2 sur 16 bits ; { entier ourt : binaire en omplement a 2 sur 32 bits ; { entier long : binaire en omplement a 2 sur 64 bits ; { pa ked BCD : 1 bit de signe, 18 o tet BDC ; { simple pre ision, double pre ision et pre ision etendue (sur 80 bits, 64 bits de mantisse et 15 bits d'exposant) : standard IEEE 754.

Types d'operation Le pentium II omprend un jeu d'operations omplexe,

in luant de nombreuses operations spe ialisees. L'idee etait d'optimiser la tradu tion de ode de haut niveau en langage ma hine. Ainsi, on trouve les ategories d'instru tions ommunes a la majorite des ma hines, et d'autres ategories parti ulieres au pentium II : { les operations de transfert de ontr^ole donnent lieu a un type d'operations supportant des operations de langage de haut niveau ; { un ensemble d'instru tion est dedie a la gestion de la memoire et du a he interne ( es instru tions sont exe utees seulement a partir de l'OS) ; { des instru tions de bran hement sont de nies pour fon tionner onjointement au test de registres de ondition (registres ontenant des informations sur des operations arithmetique ou de omparaison). En 1996, Intel a introduit un ensemble de 57 nouvelles instru tions dediees aux operations multimedia, appele MMX. Ces instru tions permettent d'e e tuer une m^eme operation sur plusieurs elements a la fois (prin ipe SIMD). Les donnees video et audio sont omposees de large tableaux de petits types de donnees (8 ou 16 bits, parfois 32) alors que les instru tions onventionnelles sont alibrees pour des types de donnees plus grands (32 ou 64 bits). Ainsi, trois nouveaux types de donnees ont ete introduits en MMX, ha un de 64 bits de oupes en hamps ontenant ha un un entier : { pa ked bytes : 8 o tets ; { pa ked word : 4 mots ;

7.4. STRUCTURE D'UNE INSTRUCTION

85

{ pa ked doubleword : 2 double mot. La majorite des nouvelles instru tions onsiste en une operation parallele sur des o tets, mots ou doubles mots.

7.4 Stru ture d'une instru tion Dans la on eption d'un jeu d'instru tion, un parametre important est le nombre de registres et leur utilisation. Les CPU modernes omportent de multiples registres non spe i ques disponibles pour le programmeur.

7.4.1 L'adressage L'instru tion fait referen e a des donnees. Or la taille d'un hamp adresse dans une instru tion est petite, alors qu'il faut pouvoir adresser un espa e memoire important. Ainsi une variete de te hnique d'adressage, 'est a dire de manieres d'obtenir une adresse e e tive, ont ete proposees.

Modes d'adressage Voi i les modes d'adressage les plus ommuns :

{ l'adressage immediat : l'operande est donnee dans l'instru tion. Pas de referen e a la memoire, mais la taille de l'operande est limitee ; { l'adressage dire t : l'adresse memoire de l'operande est donnee dans l'instru tion. Simple, mais la taille de l'espa e adressable est limitee ; { l'adressage registre : l'adresse du registre interne (generalement sur 3 ou 4 bits) dans lequel est ontenue l'operande est donnee dans l'instru tion. Pas de referen e a la memoire, mais la taille de l'espa e adressable est limitee ; { l'adressage indire t par memoire : l'adresse de l'operande est le ontenu de l'adresse memoire donnee dans l'instru tion. Implique plusieurs referen es a la memoire ; { l'adressage indire t par registre : l'adresse de l'operande est le ontenu du registre dont l'adresse est donnee dans l'instru tion. { adressage depla ement : l'adresse de l'operande est donnee en deux parties, une base dans un registre (peut ^etre le Program Counter) et un depla ement (a ajouter a la base) dans l'instru tion. Flexible, mais omplexe. On s'aper oit qu'il y a antagonisme entre : { espa e adressable et exibilite d'une part, et { nombre de referen es memoire et omplexite du al ul d'adresse d'autre part. Les modes d'adressage immediat, indire t par registre et depla ement sont les plus utilises. Toutes les ma hines disposent de plusieurs modes d'adressage. Pour

86

CHAPITRE 7. JEU D'INSTRUCTIONS

un jeu d'instru tion, il y a deux manieres de di eren ier les modes d'adressage utilises : { par l'utilisation d'un ou plusieurs bits indiquant quel est le mode employe. Ces bits sont appeles spe i ateur d'adresse. Cette methode est adoptee lorsqu'on souhaite disposer d'un grand nombre de mode d'adressage, et peut donner lieu a une taille d'instru tion variable ; { par l'utilisation d'op odes di erents, e qui permet de onserver une taille d'instru tion xe ( e qui fa ilitera la realisation materielle).

7.4.2 Format d'instru tion Le format d'une instru tion de nit les hamps de l'instru tion (op ode et adresses) et l'adressage employe.

Taille d'instru tion Plus le jeu d'instru tions est omplexe (en termes de

nombre d'op odes, de types d'operandes et de mode d'adressage), plus fa ile ( ompa te) sera la programmation. Mais un jeu d'instru tion omplexe implique une longueur d'instru tion importante, e qui implique une onsommation importante en espa e. La longueur d'une instru tion doit ^etre onsideree onjointement a { la taille et l'organisation de la memoire. Ainsi la memoire pourra ^etre adressable a la taille de l'instru tion ; { la stru ture d'inter onnexion. Ainsi la longueur de l'instru tion sera un multiple de la taille du bus de donnees ; { la omplexite et la vitesse de la CPU. Par exemple, si la CPU exe ute les instru tions plus vite qu'elle ne les harge a partir de la memoire, la memoire devient un goulot d'etranglement ; la solution peut ^etre de reduire la taille de l'instru tion. Pour un jeu d'instru tion, la taille de l'instru tion peut demeurer xe ou ^etre variable. Une taille d'instru tion variable autorise une large gamme d'op odes (de tailles di erentes), et une plus grande exibilite d'adressage. Mais ela a

roit la omplexite de la CPU.

Allo ation des bits L'allo ation des bits pour les di erents hamps de l'instru tion depend des fa teurs suivants : { le nombre d'operandes ; { le nombre d'operations : pour une taille d'instru tion xee, plus le nombre d'op odes est grand plus la apa ite d'adressage de oulant des hamps adresse sera reduite. Si on souhaite a la fois une taille d'instru tion raisonnable, une apa ite d'adressage raisonnable et un nombre d'op odes important, on peut utiliser une taille d'op ode variable. Ainsi, pour des instru tions utilisant peu de parametres ou une apa ite d'adressage moindre, quelques bits sont rajoutes au hamps op ode.

7.4. STRUCTURE D'UNE INSTRUCTION

87

{ le nombre de modes d'adressage : si le mode d'adressage n'est pas indique impli itement ( ertaines instru tions sont reservees a un mode d'adressage parti ulier), il l'est expli itement via un ou plusieurs bits dedies. Chaque adresse d'operande peut omporter le mode d'adresage qui la on erne ; { l'utilisation des registres : un ensemble de registres est disponible dans la CPU pour re evoir des donnees et des adresses. Ce i onstitue un petit espa e d'adressage, qui ne ne essite que quelques bits d'adresse (maximum 5). Ces registres peuvent ^etre separes en groupe (un pour les donnees, un autre pour les adresses), dont l'identi ation est deportee au niveau de l'op ode ; { l'espa e adressable : il est dire tement relie au nombre de bit d'adresses a utiliser et don au modes d'adressage permis ; { la fa on d'adresser la memoire : adresser une memoire a l'o tet demande plus de bit d'adresse qu'adresser la m^eme memoire au mot.

7.4.3 Quelques exemples Les paragraphes suivant montrent omment les hoix de on eption de jeu d'instru tions ont ete fait pour di erentes ma hines.

Alpha Le pro esseur ALpha de DEC ontient 32 registres (R0 a R31) de 64

bits pour la manipulation des entiers et 32 registres (F0 a F31) de 64 bits pour la manipulation des ottants. Les registres R31 et F31 sont a le ture seule et

ontiennent la representation de 0. Les instru tions ont une taille xe de 32 bits. Il y a 4 formats d'instru tion possibles : { les instru tions spe i ques au systeme d'exploitation : op ode sur 6 bits + un nombre sur 26 bits ; { les instru tions de bran hement : op ode sur 6 bits + adresse registre sur 5 bits + depla ement sur 21 bits ; { les instru tions de transfert de donnees : op ode sur 6 bits + adresse registre sur 5 bits + adresse registre sur 5 bits + depla ement sur 16 bits ; { les instru tions utilisees pour les operations de al ul entier ou ottant : op ode sur 6 bits + adresse registre sur 5 bits + adresse registre sur 5 bits + extension de l'op ode sur 11 bits + adresse registre sur 5 bits.

SPARC Le pro esseur SPARC de SUN possede un grand nombre de registres

(peut ^etre superieur a 520). Neanmoins seuls 32 registres sont visibles simultanements, divises en 4 groupes de registres spe i ques. Les instru tions ont une taille xe de 32 bits. 3 format d'instru tions di erents sont utilises. Le format est ode sur 2 bits. { le premier ne orrespond qu'a une seule operation de bran hement, l'appel de sous-programme. Cette instru tion ne omprend don pas d'op ode mais simplement un depla ement sur 30 bits ;

88

CHAPITRE 7. JEU D'INSTRUCTIONS

{ le deuxieme a un op ode sur 3 bits. Cet op ode distingue 2 types d'instru tion { les instru tions de bran hement : une ondition de saut sur 4 bits ( omparee au ontenu d'un registre de ondition), un depla ement sur 22 bits { une instru tion permettant de harger une donnee dans les poids fort d'un registres : adresse registre sur 5 bits + 22 bits de donnee immediate ; { le troisieme format (3 adresses) orrespond a toutes les autres operations : une adresse registre de destination sur 5 bits, une adresse registre sour e sur 5 bits, une extension de l'op ode sur 6 bits. Selon ette extension : { une extension du ode operation pour les operations ottante sur 9 bits + une adresse registre sour e sur 5 bits { une donnee immediate sur 13 bits { un espa e d'adressage memoire sur 8 bits + une adresse registre sour e sur 5 bits.

Pentium II Le pentium II omprend 9 modes d'adressage, pouvant utiliser

un registre segment, un registre de base et un registre d'index : { immediat : l'operande est in lue dans l'instru tion { registre : l'operande est ontenue dans un registre { depla ement : l'adresse est le ontenu du registre segment + un depla ement in lu dans l'instru tion { indire t par registre : l'adresse est le ontenu du registre segment + ontenu du registre de base { base et depla ement : idem pre edent + depla ement { base indexe ave depla ement : idem pre edent + registre index { base indexe ave depla ement : idem pre edent + registre index  un fa teur { indexe ave depla ement : idem pre edent - base { relatif : l'adresse est le ontenu du ompteur ordinal + un depla ement

ontenu dans l'instru tion Le pentium omprend une grande variete de formats, l'op ode etant le seul element re

urrent. Le mode d'adressage est donnee par l'op ode. L'instru tion

omporte : { un pre xe de 0, 1, 2, 3 ou 4 o tet, { un op ode de 1 ou 2 o tets, { un spe i ateur d'adresse de 0, 1 ou 2 o tets, { un depla ement de 0, 1, 2 ou 4 o tets, { un hamp pour l'adressage immediat de 0, 1, 2 ou 4 o tets Les raisons de ette variete sont l'eÆ a ite d'exe ution de langages de haut niveau, et le respe t de la ompatibilite as endante de la famille 8086 dont le pentium est issu.

7.5. CONCLUSION

89

7.5 Con lusion On oppose traditionnellement { CISC (Complex Instru tion Set Computer), les ma hines possedant un jeu d'instru tion omplexe, en nombre d'instru tion, de mode d'adressages, de registres, et ... ( omme le pentium) a { RISC (Redu ed Instru tion Set Computer), les ma hines possedant un jeu d'instru tion reduit ( omme le SPARC ou l'ALPHA) et don une ar hite ture orrepondant a e jeu d'instru tion reduit. Un jeu d'instru tions omplexe est il preferable a un jeu d'instru tion reduit RISC ? En fait, il est tres diÆ ile de omparer des ma hines CISC a des ma hines RISC. A tuellement, les deux te hnologies ont quelque peu onverge : les performan es atteintes font que les systemes RISC deviennent plus omplexes, et la re her he de performan es superieures pousse les on epteurs CISC a envisager des problemes traditionnellement asso ies aux ma hines RISC.

90

CHAPITRE 7. JEU D'INSTRUCTIONS

91

Chapitre 8

CPU

92

CHAPITRE 8. CPU

8.1 Introdu tion Ce ours omplete le pre edent en etudiant la stru ture de la CPU. Le modele RISC est utilise omme support re

urrent de la presentation.

8.2 Organisation de la CPU 8.2.1 Organisation du pro esseur La CPU possede : { une ALU pour le traitement des donnees, { une unite de ommande qui ontr^ole le mouvement des donnees et des instru tions, ainsi que les operations de l'ALU, { des registres spe i ques pour sto ker temporairement les donnees et les instru tions { un bus interne pour inter onne ter es di erentes omposants.

8.2.2 Organisation des registres L'exe ution d'une instru tion demande le sto kage temporaire de donnees. La memoire interne de la CPU est de oupee en 2 types de registres : { les registres visibles par l'utilisateur qui permettent au programmeur d'optimiser les referen es a la memoire { les registres de ontr^ole et de statuts, utilises par l'unite de ommandes pour ontroler l'a tivite de la CPU et par des programmes du systeme d'exploitation pour ontroler l'exe ution des programmes.

Registres visibles par l'utilisateur Une registre utilisateur est un registre referen able par les instru tions exe utees par la CPU. On trouve di erentes

ategories : { donnees : ne peuvent pas ^etre employes pour le al ul d'adresses ; { adresses : souvent devolus a un mode d'adressage parti ulier ( ontenant des valeurs de base ou d'index) ; { onditions ( ags) : onstitues d'une suite de bits independants dont ha un est positionne en fon tion du resultat d'une operation ; { autres : n'ont pas de fon tion spe i que. Le hoix des registres pour une CPU est base sur les questions suivantes : { quelle proportion de registres spe ialises adopter? { quel nombre de registres adopter? { quelle taille de registres adopter?

?

Quels sont les impa ts des reponses a es questions?

8.2. ORGANISATION DE LA CPU

93

Registres de ontr^ole et de statuts En general, es registres ne sont pas visibles par l'utilisateur. 4 registres sont essentiels a l'exe ution d'une instru tion, ils sont utilises pour l'e hange ave la memoire prin ipale :

{ le ompteur ordinal (PC, pour Program Counter) : ontient l'adresse de la pro haine instru tion a exe uter ; { le registre d'instru tion (IR) : ontient l'instru tion du fet h le plus re ent ; { le registre d'adresse memoire (MAR) : ontient une adresse memoire. Est dire tement onne te au bus d'adresse ; { le registre tampon memoire (MBR) : ontient un mot de donnees a e rire en memoire ou un mot lu re emment. Est dire tement onne te au bus de donnees. Fait le lien ave les registres visibles par l'utilisateur. Des registres supplementaires peuvent ^etre inter ales entre l'ALU et les registres utilisateurs/le MBR.

94

CHAPITRE 8. CPU

Un registre PSW (Program Status Word) ontient des informations de status. Parmi les plus frequentes : { signe : le bit de signe du resultat de la derniere operation arithmetique { zero : a 1 lorsque le resultat est 0 { retenue : a 1 lorsqu'une operation a generee une retenue { egal : a 1 si le resultat d'une omparaison est une egalite { debordement : a 1 lorsqu'une operation a provoque un debordement { interruption : indique si le fon tionnement normal peut ^etre interrompu { superviseur : indique un mode privilegie En plus du PSW, un registre peut faire oÆ e de pointeur sur une zone memoire

ontenant des informations supplementaires. L'implantation de registres de ontr^ole peut aussi ^etre faite en fon tion de la prise en ompte du systeme d'exploitation.

8.3 Cy le de l'instru tion Le y le de l'instru tion fait referen e a la fa on dont la ma hine exe ute une instru tion.

8.3.1 Cy le normal Ce travail est e e tue par la CPU et onsiste en : { re her he de l'instru tion (fet h) : l'instru tion est lue depuis la memoire { interpretation de l'instru tion (de ode) : l'instru tion est de odee pour determiner a quelle a tion elle orrespond { exe ution (exe ute) : { re her he des donnees (fet h data) : l'exe ution de l'instru tion peut demander la le ture de donnees dans la memoire ou depuis un module d'E/S { traitement des donnees (pro ess data) : l'exe ution de l'instru tion peut demander des operations arithmetiques ou logiques sur les donnees { e riture des donnees (write data) : l'exe ution de l'instru tion peut demander l'e riture du resultat dans la memoire ou depuis un module d'E/S Toutes les ma hines ont un s hema d'exe ution similaire, qui onsiste don a exe uter la bou le suivante : { repeter { fet h { de ode { exe ute

8.3. CYCLE DE L'INSTRUCTION

95

Flots de donnees La sequen e exa te des evenements se produisant durant un y le depend de l'ar hite ture de la CPU. Considerons le as generique d'une CPU possedant un registre MAR, un registre MBR un ompteur ordinal PC et un registre d'instru tion IR. { fet h : { M AR P C { l'unite de ontr^ole demande une le ture de la memoire prin ipale { le resultat de la le ture est pla e dans MBR { IR M BR { PC PC + 1 { de ode : { l'unite de ontr^ole determine si le ontenu de IR utilise un adressage indire t ; si 'est le as, y le indire t : { M AR les N bits de poids faibles de MBR { l'unite de ontr^ole demande une le ture de la memoire prin ipale { le resultat de la le ture est pla e dans MBR { M AR M BR { l'unite de ontr^ole demande une le ture de la memoire prin ipale { le resultat de la le ture est pla e dans MBR { exe ute : depend des instru tions.

!

Les y les fet h et de ode sont simples et previsibles, le y le exe ute est imprevisible.

8.3.2 Interruptions Chaque ordinateur permet un me anisme selon lequel un module (E/S, memoire) peut interrompre le deroulement normal de e y le. Si une interruption survient, l'etat ourant (prin ipalement le ompteur ordinal) est sauvegarde et l'interruption est traitee (i.e., l'exe ution est detournee sur une suite d'instru tions traitant l'interruption, appelee routine d'interruption). Le y le d'interruption est simple et previsible : { M BR P C { M AR une adresse memoire ou sauvegarder PC { l'unite de ontr^ole demande une e riture dans la memoire prin ipale { P C adresse de la routine d'interruption Le nouveau y le ommen e par le fet h de la premiere instru tion de la routine d'interruption.

96

CHAPITRE 8. CPU

8.4 Redu ed Instru tion Set Computers 8.4.1 Cara teristiques Une raison majeur de l'avenement des RISC est la onstatation que les ompilateurs produisent surtout des instru tions simples (les instru tions omplexes des CISC sont don rarement exploitees et peuvent sou rir d'^etre re odees par des instru tions plus simples). Les ara teristiques ommunes aux ar hite tures RISC sont les suivants : { vers une instru tion par y le : les instru tions peuvent ^etre realisees par materiel ; { des operations registre-registre dans une a hite ture de type hargementrangement ; { des modes d'adressage simples et peu nombreux, les modes d'adressages

omplexes pouvant ^etre realises a partir des modes d'adressages simples ; { des formats d'instru tions simples et peu nombreux, taille d'instru tion xe, possedant des hamps xes. Le tout resulte en des instru tions et une unite de ontr^ole simples.

8.4.2 Exemple de ma hine RISC Considerons la ma hine RISC suivante.

Jeu d'instru tions et registres La ma hine utilise 3 formats d'instru tions

(on ne s'interesse pas au troisieme format orrespondant aux instru tions de

8.4. REDUCED INSTRUCTION SET COMPUTERS

97

saut).

Les instru tions sont reparties dans 4 groupes : { a

es memoire : instru tion de hargement-rangement ; { operation registre-registre : al ul ou e hange de donnees n'impliquant que des registres ; { operations registre-immediat : al ul impliquant un registre et une donnee immediate ; { bran hement. Les instru tions et les donnees sont lues dans deux a hes internes dedies (adressables a l'o tet). Les registres internes sont les suivants : { RI : registre d'instru tion { CP : ompteur ordinal { NCP : adresse de l'instru tion suivante { A, B, IMM entrees d'ALU { SALU : sortie ALU { COND : registre de ondition/statut { DMC : sortie memoire de donnees { des registres utilisateurs

Cy le d'instru tion Detaillons le y le d'instru tion exe ute par ette ma hine (le traitement de l'op ode n'est pas detaille). 1. fet h (LI) { RI memoire d'instru tion(PC) { NCP CP + 4 2. de ode (DI) { A registre(RI25::21 )

98

CHAPITRE 8. CPU

{ B registre(RI20::16 ) { IMM RI15::0

3. exe ute/ al ul de l'adresse e e tive (EX) selon l'op ode, une des 4 operations suivantes est realisee : { a

es memoire { SALU A + IMM { operation registre-registre { SALU A op B { operation registre-immediat { SALU A op IMM { bran hement { SALU NCP + IMM { COND A op 0 4. a

es memoire/bran hement (MEM) { hargement { DMC memoire donnees(SALU) { CP NCP { rangement { memoire donnees(SALU) B { CP NCP { bran hement { si COND alors CP SALU sinon CP NCP { autres instru tions { CP NCP 5. e riture du resultat (ER) { hargement { registre(RI20::16 ) DMC { operation registre-registre { registre(RI15::11 ) SALU { operation registre-immediat { registre(RI20::16 ) SALU

?

Quels sont les modes d'adressage employes?

L'exe ution d'une instru tion prendra de 4 a 5 y les, les plus rapides etant les instru tions de bran hement. Pour une ma hine de e type, on estime qu'elles

onstituent 12 % des instru tions exe utes. La duree moyenne d'une instru tion est don de 12%  4 + 88%  5 = 4; 88 y les.

8.5. PIPELINE

99

Realisation Un inter^et des ma hines RISC est qu'elle autorise un pipeline plus eÆ a e.

8.5 Pipeline Pour ameliorer les performan es de ette ma hine on her he a diminuer le temps d'exe ution d'une instru tion. L'idee est de faire travailler a la ha^ne les di erentes unites fon tionnelles.

8.5.1 Pipeline de base Pipeline a 3 etages Soit l'exe ution d'une instru tion en 3 phases independantes

(fet h, de ode, exe ute) realisee ha une en 1 y le d'horloge. La mise en pipeline onsiste a faire travailler en parallele les 3 unites responsables des 3 phases.

100

CHAPITRE 8. CPU

Ainsi, au y le i, on re her he l'instru tion i, on de ode l'instru tion i 1 et on exe ute l'instru tion i 2. Au y le i + 1, on re her hera l'instru tion i + 1, on de odera l'instru tion i et on exe utera l'instru tion i 1.

y le d'horloge etage fet h etage de ode etage exe ute

1 inst 1

2 inst 2 inst 1

3 inst 3 inst 2 inst 1

4 inst 4 inst 3 inst 2

5 inst 5 inst 4 inst 3

6 inst 6 inst 5 inst 4

Le temps moyen d'exe ution d'une instru tion est divise par 3. On parle de pipeline a 3 etages. Le temps d'exe ution de n instru tions est de 2+n y les d'horloge. Le delai de 2 y les est appele temps de laten e du pipeline.

Pipeline a 5 etages Appliquons e prin ipe a la ma hine RISC de rite plus

haut. Les 5 phases doivent ^etre rendues independantes. Toute information issue d'un etage et devant ^etre utilisee par l'etage suivant doit ^etre memorisee dans un registre servant d'interfa e entre les etages. On obtient ainsi le fon tionnement de rit par le tableau suivant :

y le d'horloge etage LI etage DI etage EX etage MEM etage ER

1 inst 1

2 inst 2 inst 1

3 inst 3 inst 2 inst 1

4 inst 4 inst 3 inst 2 inst 1

5 inst 5 inst 4 inst 3 inst 2 inst 1

6 inst 6 inst 5 inst 4 inst 3 inst 2

Quelques remarques : 1. l'emploi de deux a hes spe ialises se revele judi ieux : haque memoire est solli itee a haque y le. Cela n'aurait pas ete possible si un seul a he

ontenant donnees et instru tions avait ete utilise ; 2. le blo registres doit permettre deux le tures (registres sour es pour l'etage DI) et une e riture (resultat pour l'etage ER) dans le m^eme y le. Un probleme survient si l'e riture on erne un registre a

ede en le ture ; 3. le multiplexeur de sele tion du registre CP a ete depla e de l'etage MEM vers l'etage LI. L'exe ution a l'etage LI peut dependre de la presen e dans l'etage MEM d'une instru tion de bran hement ompliquant le fon tionnement du pipeline.

8.5.2 Les aleas Un alea est une situation qui emp^e he l'instru tion suivante de s'exe uter au

y le d'horloge prevu. On distingue plusieurs sortes d'aleas.

Alea stru turel Il apparait lorsqu'un on it de ressour es ne peut pas ^etre

gere par le materiel. C'est le as de la memoire unique pour instru tions et donnees. Dans e as, le pipeline est suspendu durant un y le pour lever l'alea.

8.5. PIPELINE

101

Alea de donnees Il apparait lorsqu'il y a dependan e de donnees entre les instru tions. Soit par exemple les deux instru tions 1. r2

memoire(120)

2. r3

r2 + r1

Au moment ou l'instru tion 2 a besoin de l'information produite par l'instru tion 1, l'instru tion 2 est a l'etage DI et l'instru tion 1 est a l'etage EX.

Alea de ontr^ole Il on erne les instru tions de modi ation du registre PC.

Le as trivial est l'instru tion de bran hement onditionnel. Jusqu'a l'exe ution d'une telle instru tion, il est impossible de savoir si un bran hement est e e tue ou non. Par exemple, pour la ma hine RISC, l'adresse de l'instru tion suivante

102

CHAPITRE 8. CPU

n'est onnue qu'au niveau de l'etage EX.

y le d'horloge instru tion 1 instru tion 2 instru tion 3 instru tion 4 instru tion 5 instru tion 6 instru tion 7 instru tion 8

1 LI

2 DI LI

3 EX DI LI

4 MEM EX DI LI

5 ER MEM EX DI LI

6 ER MEM EX DI LI

7

8

ER

LI

DI LI

!

Cet alea est le prin ipal fa teur de degradation de performan e dans une ar hite ture pipeline. Plusieurs solutions ont ete proposees pour gerer les bran hements dans une ar hite ture pipeline : { dupliquer l'ar hite ture de pipeline pour traiter les deux as du bran hement (pris ou pas) ; { pre harger l'instru tion (ou la suite d'instru tion) orrespondant a l'adresse de bran hement (quitte a ne pas l'utiliser) ; { se baser sur une predi tion des bran hements { supposer qu'un bran hement ne sera jamais/toujours pris ; { supposer que ertains op odes favorisent le bran hement ; { se baser sur un historique des bran hements ; { generer des instru tion NOP (No OPeration) apres l'instru tions de bran hement le temps que le bran hement puisse se on lure.

8.6 Ameliorations 8.6.1 Ar hite ture supers alaire Les ar hite ture supers alaires disposent de plusieurs unites fon tionnelles (unites pour les operations entieres, unites pour les operations ottantes, ...). Ainsi les instru tions les plus ommunes (arithmetiques, hargement, rangement, bran hement) peuvent ^etre exe utes simultanement et independament dans di erents pipelines. De plus, les instru tions peuvent ^etre exe utees dans un ordre di erent de l'ordre du programme. Par exemple, si on exe ute la sequen e d'instru tions { DIV x,y

 8.6. AMELIORATIONS

103

{ ADDF z,w { SUB u,v les instru tions se termineront dans l'ordre SUB, ADDF et DIV.

8.6.2 Ar hite ture VLIW Le sequen ement et l'ordonan ement des operations sont realises par le ompilateur. Une instru tion est omposee de plusieurs hamps, haque hamps

ommande une operation sur une unite de la ma hine. L'instru tion peut ^etre tres longue, d'ou le nom de Very Long Instru tion Word (jusqu'a 1024 bits). Imaginons une ma hine VLIW disposant { d'une memoire qui permet deux operations simultanees (le ture ou e riture) { un additionneur { un soustra teur { un multiplieur { un diviseur Les instru tions d'une telle ma hine pourront omporter 6 hamps : 2 pour les operations de hargement/rangement en memoire et 4 pour les operations arithemtiques. Soit par exemple le programme a exe uter : { A=J+K { B=LM { C=N-B { D=A/B Les instru tions VLIW pourront ^etre :

104

CHAPITRE 8. CPU

LOAD Rj,J LOAD Rk,K LOAD Rl,L LOAD Rm,M Ra = Rj + Rk STORE Ra,A LOAD Rn,N Rb = Rl  Rm STORE Rb,B R = Rn - Rb STORE R ,C STORE Rd,D Ce qui fait 5 instru tions pouvant s'exe uter ha une en 1 y le d'horloge. Ce prin ipe est adopte dans la nouvelle ar hite ture 64 bits developpee par Intel et HP.

Rd = Ra / R

105

Chapitre 9

Unite de ommande

106

 DE COMMANDE CHAPITRE 9. UNITE

9.1 Introdu tion Ce ours examine les operations et l'organisation de l'unite de ommande. Cette unite regit l'ordinateur en se basant seulement sur les instru tions a exe uter et la nature du resultat des operations arithemtiques et logiques. Elle ne prend en

onsideration ni les donnees traitees, ni les resultats produits. Et elle ontr^ole la ma hine seulement via quelques signaux de ontr^ole. Ce ours poursuit l'analyse des endante entreprise depuis le ours sur le jeu d'instru tion.

9.2 Mi ro-operations L'exe ution d'un programme onsiste en l'exe ution sequentielle d'instru tions. Chaque instru tion est exe utee durant un y le d'instru tion. Un y le d'instru tion se de ompose en plusieurs phases (fet h, de ode, ...). Chaque phase du y le d'instru tion est onstitue d'une ou plusieurs etapes simples appelees mi ro-operations. Les mi ro-operations sont les operations fon tionnelles atomiques du pro esseur. Elles peuvent ^etre regroupees pour s'exe uter en parallele a ondition { de respe ter la dependan e des donnees { d'eviter les on its Ce on ept est explique sur un exemple simple. Supposons que nous disposons des registres PC, IR, MAR et MBR de rit au

ours pre edent. Le y le de l'instru tion omprend les y les de fet h, indire t, exe ute et interrupt. Commen ons par detailler les y les previsibles. Chaque y le implique une petite sequen e xee de mi ro-operations.

Fet h Le y le fet h onsiste en 3 etapes et omprend 4 mi ro-operations :

t1 MAR PC t2 MBR memoire PC PC + T t3 IR MBR ou T est la taille d'une instru tion et les ti representent des unites de temps de valeur egale (le ompteur ordinal aurait pu ^etre in remente lors de t3).

Indire t Pour e y le, on suppose un format une adresse. En as de y le

indire t, le ontenu de IR est dire tement a e te pour nalement ontenir une adresse dire te. t1 MAR IR(adresse) t2 MBR memoire t3 IR(adresse) MBR(adresse) ou IR(adresse) identi e le hamps adresse du registre IR. Le registre IR est maintenant dans le m^eme etat que si l'adressage indire t n'avait pas ete utilise.

 9.2. MICRO-OPERATIONS

107

Interrupt Apres le y le exe ute, un test est e e tue pour savoir si une in-

terruption est survenue. Si oui, un y le d'interruption est de len he, qui peut

omprendre les mi ro-operations suivantes : t1 MBR PC t2 MAR adresse de sauvegarde PC adresse de routine d'interruption t3 memoire MBR

Exe ute Le y le exe ute n'est pas previsible. Pour une ma hine ave

n

di erents op odes, n di erentes sequen es de mi ro-operations peuvent se produire. Par exemple, onsiderons l'instru tion ADD R1,X. Elle peut orrespondre a la sequen e de mi ro-operations suivante : t1 MAR IR(adresse) t2 MBR memoire t3 R1 R1 + MBR Considerons maintenant deux exemples plus omplexes. Le premier on erne l'instru tion ISZ X, qui in remente X de 1 et qui saute l'instru tion suivante si le resultat est 0. Elle peut orrespondre a la sequen e de mi ro-operations suivante : t1 MAR IR(adresse) t2 MBR memoire t3 MBR MBR + 1 t4 memoire MBR si MBR = 0 alors PC PC + T ou T est la taille d'une instru tion. Pour l'instru tion BSA X, qui sauvegarde l'adresse de l'instru tion suivante dans X et demande de poursuivre l'exe ution par l'instru tion situee a l'adresse X + T, on a : t1 MAR IR(adresse) MBR PC t2 PC IR(adresse) memoire MBR t3 PC PC + T ou T est la taille de l'instru tion. Cette instru tion est typiquement utilisee pour les appels de sous-routines. On voit bien qu'une sequen e de mi ro-operations est ne essaire pour haque op ode.

Le y le d'instru tion Pour oordonner les sequen es de mi ro-operations

entre elles, un nouveau registre est ne essaire qui ontiendra l'etat du pro esseur en terme de y le. Appelons e registre ICC (Instru tion Cy le Code). Dans notre exemple, seuls 2 bits omposent e registre :

108

 DE COMMANDE CHAPITRE 9. UNITE

00 fet h 01 indire t 10 exe ute 11 interrupt Le registre ICC est modi e en n de ha un des 4 y les.

9.3 Contr^ole du pro esseur Nous nous interessons maintenant aux a tivites a implanter dans l'unite de ommande pour exe uter les sequen es de mi ro-operations. L'unite de ommande doit exe uter 2 t^a hes basiques : { le sequen ement des mi ro-operations { l'exe ution des mi ro-operations Ces mi ro-operations appartiennent toutes aux ategories suivantes : { transfert de donnees entre registres { transfert de donnees d'un registre vers une interfa e externe (e.g., bus) { transfert de donnees d'une interfa e externe (e.g., bus) vers un registre { operation sur l'ALU en utilisant des registres pour les operandes sour es et le resultat

Intera tions entre l'unite de ommande et l'exterieur Les entrees de

l'unite de ommande sont { l'horloge : une mi ro-operation s'exe ute en un top d'horloge ; { le registre d'instru tion : l'op ode permet de determiner quelle sequen e de mi ro-operations doit ^etre exe utee lors d'un y le exe ute ; { le registre de ondition : utilise pour determiner le statut du pro esseur et pour les instru tions onditionnelles ; { des signaux de ontr^ole du bus de ontr^ole : par exemple pour dete ter une interruption ou re evoir les a quittements des unites externes. Les sorties de l'unite de ommande sont { des signaux de ontr^ole internes au pro esseur, de 2 types : { des signaux de len hant des transferts entre registre { des signaux de len hant des operations sur l'ALU { des signaux de ontr^ole transportes par le bus de ontr^ole, de 2 types : { a destination de la memoire { a destination des modules d'E/S

Exemple Ainsi, pendant un fet h, les signaux de ontr^ole envoyes seront les suivants : { un signal autorisant le hargement de MAR par le ontenu de PC { simultanement { un signal pla ant le ontenu du MAR sur le bus d'adresse

 DE COMMANDE 9.4. IMPLANTATION DE L'UNITE

109

{ l'a tivation d'une ligne le ture memoire du bus de ontr^ole { un signal autorisant le hargement de MBR par le bus de donnees { un signal de len hant une operation in rementant le PC ( e qui peut ^etre fait independament de l'ALU si on onsidere une logique dedie) { un signal autorisant le hargement de IR par MBR Ensuite, le ontenu de IR est analyse pour savoir quel y le doit suivre (indire t ou exe ute). Les y les indire t et interrupt fon tionnent de maniere similaire. Nous verrons le y le exe ute plus tard...

y le fet h

indire t interrupt

timing t1 : MAR PC t2 : MBR memoire PC PC + T t3 :IR MBR t1 : MAR IR(adresse) t2 : MBR memoire t3 : IR(adresse) MBR(adresse) t1 : MBR PC t2 : MAR adresse de sauvegarde PC adresse de routine d'interruption t3 : memoire MBR

signal de ontr^ole

C2 C5 , Cr C4 C8 C5 , Cr C4 C1

C12 , Cw

Organisation L'organisation typique de la CPU omprend un bus interne (ou

un ensemble de bus internes) pour la ir ulation interne des di erentes informations (donnees, instru tions, adresses). Ce bus relie tous les registres internes et l'ALU. Chaque signal de ontr^ole interne emis par l'unite de ommande (ex eptes les signaux de lan hant des operations sur l'ALU) ontr^ole en fait l'a

es a e bus.

9.4 Implantation de l'unite de ommande Les te hniques d'implantation de l'unite de ommande se partage en 2 ategories : { implantation materielle { implantation mi ro-programmee

9.4.1 Implantation materielle Dans e as la, l'unite de ommande est essentiellement un ir uit ombinatoire elaborant les signaux de ontr^ole. L'op ode passe par un de odeur dont haque sortie orrespond a une sequen e de mir o-operations parti uliere, don a une sequen e de signaux de ontr^ole parti uliere. Le signal d'horloge sert a alimenter un ompteur donnant haque periode ti. Ce

ompteur est reinitialise en n de haque y le.

110

 DE COMMANDE CHAPITRE 9. UNITE

La logique utilisee orrespond aux equations booleennes des signaux de sorties en fon tion du y le, de la valeur delivree par le ompteur et de l'op ode, 'est a dire de la valeur fournie par le de odeur.

9.4.2 Implantation mi ro-programmee Dans un pro esseur moderne bea oup plus omplexe que l'exemple qui a servi dans e ours, le nombre d'equation booleenne ne essaires a l'implantation de l'unite de ommande est prohibitif pour la onstru tion d'un ir uit ombinatoire. La mi roprogrammation onstitue une solution simple a e probleme. C'est une te hnique tres ommune dans les pro esseurs CISC ontemporains.

Mi ro-instru tions Les mi ro-operations peuvent ^etre onsiderees omme

des operations de len hees par des instru tions d'un langage. Ces instru tions sont appelees mi ro-instru tions et un programme a base de mi ro-instru tions est appele mi ro-programme. Une instru tion et une mi ro-instru tion partagent quelques ara teristiques ommunes : { elles sont de omposees en hamps { elles sont rangees dans une memoire a une adresse pre ise. Un de oupage en hamps est par exemple : { un mot de ontr^ole orrespondant a l'a tivation des signaux binaires { 1 bit pour haque ligne de ontr^ole interne { 1 bit pour haque ligne de ontr^ole du bus de ontr^ole { l'adresse de la mi ro-instru tion a exe uter ensuite si une ondition est remplie { la ondition de bran hement Une telle mi ro instru tion est interpretee de la maniere suivante : 1. de len her la/les mi ro-opeations en positionnant les signaux de ontr^ole en fon tion du mot de ontr^ole (un 1 a tive un signal, un 0 n'a tive pas ou desa tive un signal) 2. si la ondition indiquee par les bits de ondition est fausse alors exe uter la mi ro-instru tion a l'adresse suivante 3. si la ondition indiquee par les bits de ondition est vraie alors exe uter la mi ro-instru tion dont l'adresse est mentionnee dans le hamps adresse.

Les mi ro-instru tions sont organisees en sequen es dans une memoire de ontr^ole. Chaque sequen e de nit une routine orrespondant a { un sous- y le du y le d'instru tion { un op ode pour le y le exe ute

 DE COMMANDE 9.4. IMPLANTATION DE L'UNITE

.. . .. . saut vers indire t ou exe ute .. . .. . saut vers exe ute .. . .. . saut vers fet h saut vers routine d'op ode .. . .. . saut vers fet h ou interrupt .. . .. . saut vers fet h ou interrupt .. . .. . .. . saut vers fet h ou interrupt

111

routine du y le fet h

routine du y le indire t

routine du y le interrupt routine du y le exe ute routine ADD

routine AND .. . routine SUB

Realisation Implanter une unite de ommande mi ro-programmee revient simplement a exe uter le programme de la memoire de ontr^ole. Par analogie a une CPU, e i requiert : { la memoire de ontr^ole sto kant les mi ro-instru tions { un registre d'adresse de ontr^ole ontenant l'adresse de la pro haine mi roinstru tion a lire { un registre de ontr^ole ontenant la mi ro-instru tion. La partie de e registre ontenant le mot de ontr^ole est dire tement reliee aux lignes

orrespondant aux signaux de ontr^ole { un sequen eur qui harge le register d'adresse de ontr^ole et envoie des ordres de le ture a la memoire de ontr^ole.

!

Lire une instru tion revient a exe uter ette instru tion.

Ainsi, en un top d'horloge, l'unite de ommande fon tionne de la maniere suivante : 1. le sequen eur envoie une ommande de le ture a la memoire de ontr^ole

112

 DE COMMANDE CHAPITRE 9. UNITE

2. la mi ro-instru tion dont l'adresse est spe i ee par l'adresse ontenue dans le registre d'adresse de ontr^ole est hargee dans le registre de ontr^ole 3. le ontenu du registre de ontr^ole permet de generer les signaux de ontr^ole et donne l'adresse de la mi ro-instru tion suivante au sequen eur 4. le sequen eur harge une nouvelle adresse dans le registre d'adresse de

ontr^ole en fon tion de l'adresse delivree par le registre de ontr^ole et des

onditions provenant de l'ALU. Cette adresse peut ^etre { l'adresse ourante + 1 { l'adresse du registre de ontr^ole { l'adresse d'une routine orrespondant a l'op ode du registre d'instru tion

Related Documents