Académique Documents
Professionnel Documents
Culture Documents
INSAT
Support de cours
Par :
Najeh KAMOUN
Assistante en T
el
ecommunications
Architecture Fonctionnelle
1.1
1.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2
1.2.1
1.2.2
Architecture de Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3
Processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4
Memoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5
1.2.6
Entrees/Sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unit
e Centrale de Traitement : Processeur
2.1
2.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Representation des nombres
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
ii
2.2.1
2.2.2
. . . . . . . . . . . .
2.2.3
2.2.4
2.3
UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
Unite de Commande UC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4.1
Registres de lUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4.2
Modules de lUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.5
Format dinstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.6
15
M
emoires
17
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2
18
3.2.1
18
3.2.2
Duree de memorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.3
Emplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.4
Capacite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2.5
Performance
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2.6
Mode dacc`es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2.7
Hierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
iii
3.3
3.4
3.5
3.6
Modes dacc`es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.1
Acc`es aleatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3.2
20
3.3.3
Acc`es sequentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3.4
Acc`es direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
Memoire Principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.1
Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.2
Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
Memoire Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.5.1
Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.5.2
Contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.5.3
Performance
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.5.4
Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.5.5
Algorithmes de remplacement . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.5.6
Politiques decriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
Conclusion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Interconnexions
4.1
4.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
25
25
Bus
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.2.1
Definition et structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
iv
4.2.2
4.3
4.4
4.5
Fonction Schematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.3.1
Notion dinterruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.3.2
27
4.3.3
Causes dinterruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.4.1
Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.4.2
29
30
2.2
Format de donnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
10
4.1
Architecture de bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.2
35
Chapitre 1
Architecture Fonctionnelle
1.1
1.1.1
Introduction
Apparue au milieu du 20 eme si`ecle, linformatique a connu et connat une evolution extremement
rapide. A sa motivation initiale qui etait de faciliter et daccelerer le calcul, se sont ajoutees de
nombreuses fonctionnalites, comme lautomatisation, le controle et la commande de pratiquement tout processus, la communication ou le partage de linformation. Apr`es avoir ete un outil
reserve aux centres de recherche, elle sest implantee dans lindustrie et depuis les annees 80 elle
envahit nos foyers. Au depart nous navions que des syst`emes centraux, puis sont apparus les
postes de travail individuels, tr`es rapidement relies en reseaux locaux. Tous, ou presque, sont
maintenant connectes `a la Toile.
Les evolutions techniques sont telles que la duree de vie des materiels est relativement courte.
Le marche est extremement instable et en permanente evolution. La position des constructeurs
est presque remise en cause chaque jour. Face `a cette situation, apr`es une premi`ere periode de
syst`emes proprietaires, dans lesquels un client de pouvait en pratique sapprovisionner quaupr`es
dun seul constructeur, nous sommes passes aux syst`emes ouverts. Cela sous-entend des architectures normalisees pour lesquelles les elements peuvent provenir de plusieurs constructeurs.
En parall`ele, du cote logiciel un accent important est mis sur la reutilisation des produits, qui
doit permettre de suivre ces evolutions au prix dun effort moindre, sans avoir `a repartir de zero
`a chaque passage sur une nouvelle plate-forme par exemple. Cela explique lemergence des technologies Orientees Objets et du Genie Logiciel. Il est `a remarquer que cela se fait souvent
avec une perte defficacite, masquee par levolution des performances au niveau technique.
Face `a cette situation tr`es volatile, nous constatons tout de meme que les concepts de base
introduits par les pionniers perdurent , meme sils peuvent se decliner de facons tr`es differentes.
Pour eviter davoir `a reecrire ce cours dArchitecture des Ordinateurs tous les ans, on a donc
pris le parti de principalement developper et expliquer ces concepts et les technologies de base.
Larchitecture du PC servira dexemple.
1.1.2
Architecture g
en
erale et blocs fonctionnels
employees.
Quelle que soit sa dimension, on retrouve toujours dans un ordinateur les memes blocs fonctionnels :
une ou plusieurs unites de traitement ;
de la memoire permanente ou variable, fixe ou amovible ;
des dispositifs de communication avec loperateur : un ecran, un clavier, tr`es souvent une
souris
relies par des bus, ou cables de liaisons. Partant des portes logiques, nous allons essayer detudier
dans ce cours les principes de base de chacun de ces composants. Dautre part, il est important
de realiser que materiel et logiciel sont indissociables, en particulier au niveau de la conception
de tout syst`eme informatique. Nous rencontrerons dans ce cours un ou deux exemples de limbrication du logiciel et du materiel. Pour ce qui concerne le logiciel nous nous limiterons `a quelques
considerations simples sur le langage machine.
1.2
Quelques g
en
eralit
es sur les architectures
1.2.1
Cette architecture est caracterisee par un processeur et une memoire relies par un bus : Les instructions et les donnees sont stockees dans la memoire. Pour acceder `a une information contenue
en memoire le processeur affiche sur le bus ladresse de celle-ci. Apr`es un certain temps le contenu
demande est affiche par la memoire sur le bus.On constate immediatement que la rapidite dune
machine sera limitee par lelement le plus lent. Lefficacite dun ordinateur est directement liee
au debit des informations qui circulent entre les differents elements. La conception dune architecture a pour but doptimiser ce debit, en prenant en compte des contraintes financi`eres,
commerciales et techniques.
La machine de base, dite de Von Neumann, que nous venons de decrire ne presenterait aucun
interet sans au moins un dispositif dentrees/sorties pour permettre une communication avec
lexterieur. Pour une machine aussi simple il existe au moins trois methodes pour installer un
tel dispositif :
Interface directement reliee au processeur :La communication est realisee `a laide dinstructions
specialisees ou par lintermediaire de registres specialises.
Interface connectee au bus commun : Un fil specialise du bus indique si le processeur sadresse
`a la memoire ou `a linterface dE/S.
Interface vue par le processeur comme une partie de la memoire : Linterface est sur le bus
commun, le choix de ladresse indique si le processeur sadresse `a la memoire ou `a linterface.
1.2.2
Architecture de Harvard
1.2.3
Processeur
Sans developper ici les principes de fonctionnement dun processeur, nous pouvons dej`a dire que
lexecution des instructions peut se decouper en grandes etapes :
chargement de linstruction `a executer ;
decodage de linstruction ;
localisation dans la memoire des donnees utilisees par linstruction ;
chargement des donnees si necessaire ;
execution de linstruction ;
sauvegarde des resultats `a leurs destinations respectives ;
passage `a linstruction suivante.
A chacune de ces etapes peut correspondre une unite fonctionnelle. Cette sequence simple peut se
compliquer, en particulier si la machine poss`ede des instructions de longueur variable : certaines
instructions etant codees sur un mot de la memoire et dautres sur plusieurs. Dans ce cas lunite
chargee de la recherche et du chargement de linstruction doit etre capable de reconnatre (ou
de pre-decoder) le type de linstruction pour determiner sil lui faut aller chercher la suite. Dans
1.2.4
M
emoires
Nous appelons memoire tout dispositif capable de stocker des informations (instructions et
donnees) de telle sorte que lorgane qui les utilise puisse `a nimporte quel moment acceder `
a
linformation quil demande. Les informations peuvent etre ecrites ou lues. Il y a ecriture lorsquon enregistre des donnees en memoire, lecture lorsquon sort des informations precedemment
enregistrees. La lecture peut etre destructive (linformation lue nest plus en memoire) ou non.
Le temps dacc`es est le temps qui secoule entre linstant o`
u a ete lancee une operation de lecture
en memoire et linstant o`
u la premi`ere information est disponible. Le temps de cycle represente
lintervalle minimum qui doit separer deux demandes successives de lecture ou decriture. Le
temps de cycle est egal ou superieur au temps dacc`es. On appelle cadence de transfert ou debit
dune memoire, le nombre maximum dinformations lues ou ecrites par unite de temps.
Une memoire est formee dun certain nombre de cellules, ou cases, contenant chacune une information. Chaque cellule a un numero qui permet de la referencer et de la localiser. Ce numero est
son adresse. Avec une adresse de n bits il est possible de referencer directement au plus 2 n cel-
lules. La capacite dune memoire est le nombre total de cellules quelle contient. Elle sexprime
en nombre de bits, doctets (bytes) ou de mots (words). Compte tenu de ladressage binaire,
les capacites des memoires sexpriment en puissances de deux ou en multiples de 210 = 1024.
Lacc`es `a une donnee dans une memoire depend de sa nature. Il peut etre aleatoire, sequentiel
ou hybride
1.2.5
Un bus est un moyen de communication entre les differents elements constituant une machine.
Il sagit en general dun ensemble de fils electriques. Les differents elements sont relies au bus
par des connecteurs, dont lensemble constitue un fond de panier. Chaque emplacement (slot)
du fond de panier (backplane) peut recevoir une carte electronique (board). Sur un bus circulent
differents types de signaux : adresses, donnees, controle, alimentations.
1.2.6
Entr
ees/Sorties
Pour pouvoir executer une tache, lordinateur doit disposer du programme et des donnees (sil y
a lieu) qui sy ref`erent. D`es que le travail est accompli, les resultats du traitement sont communiques `a lutilisateur. Les techniques dechange dinformations entre lordinateur et son environnement externe sont appelees techniques dEntrees/Sorties (E/S ou I/O pour Input/Output).
Lordinateur echange des informations non seulement avec des operateurs humains, par lintermediaire de terminaux de communication (consoles avec clavier, souris, imprimantes, lecteurs,
etc), mais egalement avec des dispositifs varies : appareils de mesures, capteurs )
Chapitre 2
Unit
e Centrale de Traitement :
Processeur
2.1
Introduction
Lunite centrale de traitement (CPU : Central Processing Unit), encore denommee processeur
ou microprocesseur, est lelement de lordinateur qui interpr`ete et execute les instructions dun
programme. Cest le cerveau de lordinateur
La figure 2.1 presente un schema general tr`es simplifie de lorganisation de lunite centrale, sans
tenir compte de la presence dune memoire cache et de linterface avec le bus externe. Mais on
trouve aussi des processeurs, dits specialises, qui peuvent decharger lunite centrale et assurer
des taches en parall`ele. Ceci est tr`es frequent pour la gestion des entrees/sorties.
Une unite centrale se compose dau moins deux unites fonctionnelles : lunite de commande et
lunite de calcul. A lorigine celle-ci sidentifiait `a lunite arithmetique et logique, chargee de
lexecution des operations booleennes et des operations arithmetiques (addition, soustraction,
multiplication, division, comparaison, etc.) pour des entiers. En parall`ele `a cette unite, on peut
trouver une unite de calcul sur les reels ainsi quune unite de traitement dediee aux operations
multimedia (traitement des images et du son).
2.2
2.2.1
Repr
esentation des nombres
Entiers non sign
es
Les entiers positifs ou nuls peuvent etre codes en binaire pur. A laide de N bits nous pouvons
representer 2N nombres compris entre 0 et 2N 1 :
d=
N
X
ak 2k
(2.1)
k=0
2.2.2
Entiers sign
es sous la forme signe et valeur absolue
Lidee la plus naturelle pour coder des entiers signes consiste `a ajouter le signe sous la forme
dun bit supplementaire : 0 pour les entiers positifs et 1 pour les entiers negatifs. Soit pour N + 1
bits :
d = sign(aN )
N
X
ak 2k
(2.2)
k=0
o`
u sign(aN ) = 1 si d < 0 . On code alors
2N
Cependant le zero poss`ede deux representations : +0 et -0, ce qui peut etre un inconvenient, en
particulier dans certains tests.
2.2.3
Pour le codage des nombres en virgule fixe, on attribue un poids 2m au bit de poids le plus
faible avec n bits de donnees. Les m bits de poids faibles representent la partie fractionnaire du
nombre et les n m bits de poids forts sa partie enti`ere. La position de la virgule est fixee par
le choix de m. Cette representation est applicable aux representations signees.
2.2.4
(2.3)
2.3
UAL
Le traitement des operations logiques sont des operations de base pour UAL. Outre ces fonctions
logiques lunite arithmetique et logique est chargee de lexecution doperations arithmetiques
comme addition, soustraction, decalage et multiplication. Nous avons dej`a etudie le principe de
ladditionneur. La figure2.3 donne une representation symbolique de lUAL, comprenant deux
operandes en entree A et B, une destination D = F (A, B), n lignes en entree permettant de
selectionner la fonction F `a executer, dapporter un eventuel report de retenue et de synchroniser
le fonctionnement de lunite, ainsi que m sorties indiquant une eventuelle retenue (carry), un
depassement de capacite (overflow), un resultat negatif, nul ou positif. Les operandes et la
destination sont toujours des registres .
10
Accumulateur
Slection de
lopration
UAL
Registre
temporaire
Registre
d tat
2.4
2.4.1
Unit
e de Commande UC
Registres de lUC
Le nombre et le type des registres implantes dans une unite centrale font partie de son architecture et ont une influence importante sur la programmation et les performances de la machine.
Nous voudrions ici passer en revue les registres fondamentaux, que lon retrouve sur toutes les
machines ou presque.
Compteur ordinal
Cest le registre de destination dans lequel le CPU transfert linstruction suivante `a partir de la
memoire. Sa taille depend du format des instructions machines. Le decodeur utilise le registre
instruction pour identifier laction (ou le microprogramme) `a entreprendre ainsi que les adresses
des operandes, de destination ou de saut. Le programmeur na pas acc`es au registre instruction.
11
Registres g
en
eraux ou banalis
es
Ils permettent de limiter les acc`es `a la memoire, ce qui accel`ere lexecution dun programme. Ils
peuvent conserver des informations utilisees frequemment, des resultats intermediaires, etc. Ils
sont accessibles au programmeur.
Ils peuvent etre utilises comme des registres generaux mais ils ont une fonction speciale utilisee
pour ladressage indexe. Dans ce cas ladresse effective dun operande est obtenue en ajoutant
le contenu du registre dindex `a ladresse contenue dans linstruction. Ce type dadressage et de
registre est tr`es utile pour manipuler des tableaux. Le programmeur dispose alors dinstructions
permettant lincrementation ou la decrementation du registre dindex. En particulier les registres
dindex peuvent etre incrementes ou decrementes automatiquement apr`es chaque utilisation.
Dans certaines machines ces instructions sont applicables `a tous les registres generaux, il ny a
alors pas de registre dindex specifique.
Registre de base
A de tr`es rares exceptions `a linterieur dun programme on ne fait reference qu`a des adresses
relatives ou virtuelles. Par contre lunite centrale a besoin de connatre les adresses physiques
o`
u se situent reellement instructions et donnees. Celles-ci dependent de lendroit o`
u a ete charge
le programme en memoire, lespace physique occupe par un programme pouvant ne pas etre
contigu. Le role des registres de base est de permettre le calcul des adresses effectives. Un
registre de base contient une adresse de reference, par exemple ladresse physique correspondant `
a
ladresse virtuelle 0. Ladresse physique est obtenue en ajoutant au champ adresse de linstruction
le contenu du registre de base. Le registre de base est encore utilise quand le nombre de bits du
champ adresse ne permet pas dacceder `a toute la memoire.
Registre d
etat (Program Status Word : PSW)
Une partie des bits de ce registre, aussi appele registre condition, constitue des drapeaux (flags)
qui indiquent certains etats particuliers. Par exemple `a la fin de chaque operation on peut y
trouver le signe du resultat (Negatif, Zero ou Positif), ainsi quune eventuelle retenue (Carry) ou
un depassement de capacite (Overflow). Ces bits indicateurs peuvent etre testes pour determiner
12
Une pile est une zone memoire dans laquelle les informations sont rangees de facon contigue. Le
pointeur de pile (Stack Pointer : SP) indique le sommet de la pile : la position de la derni`ere
information enregistree. Dans certaines machines le pointeur de pile indique la position o`
u sera
memorisee la prochaine donnee. Le fonctionnement dune pile est du type Dernier Entre Premier
Sorti (LIFO : Last In First Out). Les deux principales operations liees `a la pile concernent
lajout dun element dans la pile ou le retrait, souvent nommees respectivement PUSH et PULL.
Lorsquune donnee est enregistree dans la pile elle est placee `a ladresse qui suit celle du dernier
mot stocke. Apr`es loperation le pointeur de pile est incremente. Lorsque un mot est retire de la
pile il correspond `a la derni`ere information qui y a ete entree. Apr`es loperation le pointeur est
decremente. Une pile est reservee `a lusage de lunite centrale, en particulier pour sauvegarder
les registres et ladresse de retour en cas dinterruption ou lors de lappel dune procedure. Le
pointeur de pile est accessible au programmeur, ce qui est souvent source derreur. Certaines
machines sont dotees de plusieurs pointeurs de piles.
Pour ameliorer les performances dun processeur il faut disposer du plus grand nombre de registres possible. On reduit ainsi les acc`es `a la memoire. De plus, il est preferable deviter de les
specialiser. On evite ainsi des transferts entre registres, par exemple pour calculer la valeur dun
indice et utiliser ensuite cet indice pour modifier une case dun tableau.
2.4.2
Modules de lUC
Horloge
Une horloge est un syst`eme logique, pilote par un oscillateur, qui emet periodiquement une serie
dimpulsions calibrees. Ces signaux periodiques constituent le cycle de base ou cycle machine.
Nous avons dej`a vu (dans le premier chapitre) les differentes phases de lexecution dune instruction. Un cycle dinstruction peut se decomposer en un cycle de recherche (instruction et
13
operandes) et un cycle dexecution. On rencontre parfois le terme de cycle cpu pour indiquer le
temps dexecution de linstruction la plus courte.
S
equenceur
Le sequenceur est un automate distribuant, selon un chronogramme precis, des signaux de commande aux diverses unites participant `a lexecution dune instruction. Il peut etre cable ou
microprogramme.
Un sequenceur cable est un circuit sequentiel complexe comprenant un sous-circuit pour chacune
des instructions `a commander. Ce sous-circuit est active par le decodeur.
Lidee de la microprogrammation a ete introduite par Maurice Wilkes en 1951. Il est en effet toujours possible de remplacer un circuit logique par un transcodeur ou une ROM. Considerons un
ensemble de n fonctions logiques dependant de m variables logiques. Les valeurs de ces fonctions
pour les N = 2m combinaisons possibles peuvent etre calculees (table de verite) et memorisees
sous forme de N mots de n bits. Ensuite en utilisant les m variables sous forme dune adresse il
est possible de restituer le resultat recherche.
De meme pour reproduire une sequence doperations elementaires il suffit dun mot par tranche
de temps. Cette serie de mots constitue un microprogramme. Le code operation de linstruction
`a executer peut etre utilise pour definir le pointeur sur la premi`ere microinstruction du microprogramme. En fonction du code operation le contenu dun compteur est initialise, puis celui-ci
sincremente ensuite `a chaque cycle dhorloge. La periode de lhorloge utilisee `a ce niveau peut
etre plus elevee que celle qui r`egle la cadence des autres elements de lunite centrale. Ce compteur
sert `a adresser une memoire morte.
2.5
Format dinstruction
Les ordinateurs sont capables deffectuer un certain nombre doperations elementaires. Une instruction au niveau machine doit fournir `a lunite centrale toutes les informations necessaires
pour declencher une telle operation elementaire : type daction, o`
u trouver le ou les operandes,
o`
u ranger le resultat, etc. Cest pourquoi une instruction comporte en general plusieurs champs
ou groupes de bits. Le premier champ contient le code operation. Les autres champs peuvent
14
comporter des donnees ou lidentification des operandes. Sur certaines machines les instructions
sont toutes de meme longueur, sur dautres cette longueur peut varier avec le code operation ou
le mode dadressage.
On distingue 5 groupes dinstructions :
transferts de donnees : de memoire `a registre, de registre `a registre, de registre `a memoire ;
operations arithmetiques : addition, soustraction, multiplication et division ;
operations logiques : ET, OU inclusif, NON, OU exclusif, etc. ;
controle de sequence : branchements conditionnels ou non, appel de procedure, etc. ;
Interruptions d entrees/sorties ;
Le choix de la longueur et du format des instructions est une etape tr`es importante dans la
conception dune nouvelle architecture. Cest encore une affaire de compromis. La longueur des
instructions se repercute sur la dimension de la memoire centrale donc sur le co
ut : il faut deux
fois plus de bits pour stocker un programme de n instructions de 32 bits quun programme
de n instructions de 16 bits. La longueur des instructions par rapport `a celle du mot memoire
influence egalement le temps de traitement : il faut tenir compte du temps de transfert des
mots qui constituent une instruction. Ce choix depend des vitesses relatives dacc`es memoire
et de traitement effectif par lunite centrale. Le temps de recherche doit etre minimise pour les
processeurs tr`es rapides.
La largeur en bits de chacun des differents champs est egalement importante, en particulier
pour le code operation. Le nombre de bits est determine par le nombre doperations distinctes
envisagees : n bits autorisent 2n instructions. Cependant toutes les operations ne necessitent
pas forcement le meme nombre de champs ou des champs de meme longueur. Ainsi sur une
machine meme pour une longueur dinstruction donnee le format des instructions peut ne pas
etre fixe. Il peut dependre du type doperation. Pour illustrer le concept du code operation
expansif imaginons des instructions de 16 bits decoupees en quatre champs de 4 bits. Avec ce
format nous pouvons definir 16 instructions `a 3 adresses. Cest peu et toutes les instructions ne
necessitent pas trois adresses.
Dautre part comme la capacite memoire ne cesse de crotre les champs dadresse demandent
de plus en plus de bits. Cest pourquoi, pour eviter une inflation de certains registres comme le
registre instruction, aujourdhui on pref`ere les instructions `a une adresse. On peut par exemple
faire en sorte quun des operandes soit toujours laccumulateur et que ce meme registre recueille
le resultat.
2.6
15
16
Chapitre 3
M
emoires
3.1
Introduction
Nous savons que dans un ordinateur toutes les informations : valeur numerique, instruction,
adresse, symbole sont manipulees sous une forme binaire. Ces informations doivent en general
etre conservees pendant un certain temps pour permettre leur exploitation. Ce role est devolu
aux memoires chargees de conserver programmes, donnees provenant de lexterieur, resultats
intermediaires, donnees `a transferer `a lexterieur.
Il faut pour cela des memoires `a lecture et ecriture ou memoires vives, qui permettent denregistrer une information, de la conserver et de la restituer. Ces memoires sont, dautre part, `
a acc`es
aleatoire (RAM : Random Acces Memory) le temps dacc`es `a linformation est independant
de sa place en memoire. Cette appellation, dorigine historique, est toujours synonyme de
memoire vive. Bien que tr`es repandue cette appellation nest plus suffisante car tous les circuits `a semi-conducteur sont aujourdhui `a acc`es aleatoire. Lacc`es sequentiel ne porte plus que
sur les memoires magnetiques (disques ou bandes). Par contre, une memoire vive est volatile :
la conservation de son contenu necessite la permanence de son alimentation electrique. Linformation elementaire, ou bit (binary digit), est memorisee dans une cellule ou point memoire.
Pour pouvoir identifier individuellement chaque mot on utilise k lignes dadresse. La taille dun
bloc memoire est donc 2k , le premier mot se situant `a ladresse 0 et le dernier `a ladresse 2k 1.
Une ligne de commande (R/W) indique si la memoire est accedee en ecriture ou en lecture.
3.2
18
Caract
eristiques des m
emoires
La memoire est tout dispositif electronique capable de conserver ou de restituer une information.
Un mot memoire designe lensemble de bits pouvant etre lus ou ecrits .
Les caracteristique des memoires sont :
1. Differents types physiques de memoires,
2. Duree de memorisation,
3. Capacite
4. Emplacement,
5. Performance,
6. Mode dacc`es,
7. Hierarchie.
3.2.1
Diff
erents types physiques de m
emoires
3.2.2
Dur
ee de m
emorisation
3.2.3
Emplacement
3.2.4
19
Capacit
e
Elle represente la nombre dinformation `a stocker. Elle est exprimee en octet ou mot de 8, 16
ou 32 bits.
3.2.5
Performance
3.2.6
Mode dacc`
es
Il decrit la methode de recherche dune information. Il sera expliciter dans la paragraphe qui
suit
3.2.7
Hi
erarchie
Lideal est de posseder une memoire illimitee et tr`es rapide. Or le temps dacc`es augmente avec
la capacite. lidee adopte pour lorganisation de la memoire est donc de considerer que seules les
donnees les plus utilises necessitent un temps dacc`es tr`es petit.
Ainsi la memoire est organise en une hierarchie :
du plus rapide `a le plus lent,
de la capacite la plus faible `a la capacite la plus grande ,
du composant le plus co
uteux au composant le moins co
uteux
3.3
Modes dacc`
es
Le mode dacc`es `a une memoire depend surtout de la mani`ere dont on lutilise. Il y a plusieurs
types dont on cite :
Acc`es aleatoire,
Acc`es par le contenu,
20
Acc`es sequentiel,
Acc`es direct.
3.3.1
Acc`
es al
eatoire
3.3.2
Acc`
es par le contenu
Ce mode dacc`es caracterise les memoires appelees memoires associatives.Il est employe principalement par les memoires caches.
Le principe est similaire `a la memoire `a acc`es aleatoire sans notion dadresse : un mot est retrouve par une partie de son contenu.
En general, une memoire associative est divisee en 2 parties :
1. une partie content un descripteur (cle ) et permettant une comparaison en parall`ele de ce
descripteur avec une autre autre,
2. une 2eme partie fournissant le mot associe au descripteur
Les operations associees `a ce mode dacc`es :
ecriture ,
lecture,
existe,
retirer.
Le temps dacc`es est constant.
3.3.3
21
Acc`
es s
equentiel
Il est employe pour larchivage dimportants volumes de donnees Les diverses informations sont
ecrites les une derri`ere les autres : pour acceder `a une donnee, il faut avoir lu les precedentes.
Les operations associees `a ce mode dacc`es :
debut : se positionner sur la premi`ere donnee,
lecture : lire une donnee,
ecriture : ecrire donnee,
fin : se positionner apr`es la derni`ere donnee
Le temps dacc`es est variable.
3.3.4
Acc`
es direct
3.4
M
emoire Principale
3.4.1
Types
Les memoires composant la memoire principale sont des memoires `a base de semi-conducteurs,
employant un mode dacc`es aleatoires. Elles sont de deux types : volatiles ou non.
Le terme RAM correspond aux memoires volatille. Elles stockent des donnees temporaires.
Actuellement, on en trouve principalement 2 types :
RAM dynamique (DRAM) : des condensateurs sont utilises comme unites de memorisation.
Elles necessitent un rafraichissement periodique. Elles sont simples, denses, peu couteuses.
RAM statique : des bascules sont utilisees comme unites de memorisation. Elles sont plus
22
3.4.2
Organisation
Lelement de base dune memoire semi-conducteur est appele cellule. Une cellule poss`ede 3
connexions
une entree de selection indiquant si la cellule est concernee par loperation en cours
une entree de controle indiquant la nature de loperation :Lecture ou ecriture
une ligne bidirectionnels de donnees
Pour realiser un circuit RAM de M mots de B bits, on doit disposer de log2 (M ) lignes dadresse
et de B lignes de donnees.
3.5
M
emoire Cache
3.5.1
Principe
La recherche dune donnee dans le cache avant de la rechercher dans la memoire principale :
succ`es de cache : la donnee est presente dans la cache,
Defaut de cache : la donnee est absente dans la cache,
Un bloc est un ensemble de mots dadresses contigues. La memoire est decoupe en des blocs de
meme taille.
3.5.2
23
Contenu
Avec lemploi des caches multiples, nous avons generalement une didie `a la stockage de donnee
et lautre au stockage des instructions. Cela augmente les performances du processeur pour
lexecution des taches en parall`ele.
3.5.3
Performance
On peut evaluer la performance dune memoire en utilisant un cache par le calcul du temps
dacc`es memoire moyen TaM m est fonction du temps de succ`es TS ,taux dechec e et la penalite
dechec pe :
TaM m = TS + e pe
(3.1)
e peut etre evalue en fonction du nombre de defaut de cache Nd et le nombre dacc`es total Na :
e =
3.5.4
Nd
Na
(3.2)
Types
3.5.5
Algorithmes de remplacement
3.5.6
24
Politiques d
ecriture
Deux cas se presentent : le bloc quon souhaite ecrire dans la cache ou non
Dans le premier cas, deux m`ethodes sont possibles :
ecrire simulatnement dans la cache et dans la m`emoire
ecire dans la cache seulement et differer lecriture dans la memoire lorsquon besoin pour librer
de lespace.
Dans le deuxi`eme cas, on peut choisir entre :
de charger le bloc dans la cache et deffectuer loperation decriture
ecrire directement dans la m`emoire
3.6
Conclusion
Dans ce chapitre, nous avons decrit les differentes types de memoires. Il sagit principalement
de la memoire principale et la memoire cache. Les autres derivees de memoires presentent un
role auxiliaire par rapport `a la fonctionnement de base.
Chapitre 4
Interconnexions
4.1
Introduction
Dans ce chapitre, nous essayons de completer lanalyse des composants dun PC. Il nous reste `a
traiter :
Bus,
interfaces dE/S, qui utilise les interruptions,
Architectures avancees.
4.2
4.2.1
Bus
D
efinition et structure
26
4.2.2
Fonction Sch
ematique
4.3
4.3.1
27
Interruptions
Notion dinterruption
Lorsquune machine fonctionne, sous le controle dun syst`eme dexploitation, lunite centrale est
en permanence susceptible dexecuter un programme.
Le probl`eme se pose alors de savoir `a quel moment lunite centrale va pouvoir prendre en compte
les evenements exterieurs `a la sequence dinstructions quelle execute : requete dun peripherique,
frappe dune touche sur un clavier, insertion dune disquette, fin dimpression, passage dun objet devant un capteur, syst`eme dalarme. A chacun de ces evenements correspond une tache
`a executer par lunite centrale. Cette tache est codee sous forme dune procedure du syst`eme
dexploitation. Pour pouvoir executer cette procedure, il faut que se produise une rupture de
sequence . Cette rupture doit avoir lieu dans un delai assez court. Pour les probl`emes de type
temps reel un temps maximum de prise en compte et de traitement doit pouvoir etre garanti.
Comment signaler au CPU un evenement asynchrone ? Une premi`ere approche, dite des drapeaux, consiste `a tester periodiquement en sequence chaque unite. Cette technique nest pas tr`es
economique en temps, elle demande une attention constante du CPU et la liste exhaustive des
intervenants `a tester. Dans une autre approche les machines peuvent etre dotees dun syst`eme
dinterruptions. Cette technique consiste `a pouvoir interrompre brutalement lexecution du programme en cours `a la fin de linstruction courante. Apr`es sauvegarde de son etat present, le
controle de lunite centrale est confie `a un sous-programme du syst`eme dependant de la nature
de linterruption.
4.3.2
Syst`
eme dinterruptions hi
erarchis
ees
28
4.3.3
Causes dinterruption
4.4
4.4.1
E/S
Principe
29
acquisition de donnees. Ils peuvent aussi echanger des informations entre eux par lintermediaire
des reseaux.
4.4.2
30
4.5
Architectures avanc
es : RISC et CISC
Le concept RISC (Reduced Instruction Set Computer) est apparu en 1975 chez IBM (IBM801 de
John Coke), dapr`es des idees de Seymour Cray, avant detre approfondi dans les annees 80 par
les universites de Stanford et Berkeley. Il repose sur la constatation que meme les syst`emes ou les
applications les plus sophistiques nutilisent quune petite fraction du jeu dinstructions `a leur
disposition. Des etudes statistiques, portant sur un grand nombre de syst`emes dexploitation et
dapplications reels, ont montre que :
Dans 80 % dun programme on nutilise que 20 % du jeu dinstructions.
Linstruction dappel dune procedure est la plus gourmande en temps : sauvegarde et restitution du contexte et passage des param`etres.
80 % des variables locales sont des scalaires.
90 % des structures de donnees complexes sont des variables globales.
La profondeur maximale dappels imbriques est en moyenne de huit. Une profondeur plus
importante ne se rencontre que dans 1
Les processeurs classiques sont desormais appeles CISC (Complex Instruction Set Computer)
par opposition au terme RISC.
Lapparition de memoires tr`es rapides `a un co
ut tr`es faible a constitue un des principaux arguments technologiques ayant favorise les processeurs RISC. A lorigine les temps de decodage
dune instruction complexe et dexecution du microcode correspondant etaient masques par les
temps dacc`es `a la memoire. En reduisant celui-ci, le goulot detranglement sest deplace vers les
unites de decodage et dexecution. Il a donc fallu envisager un jeu dinstructions elementaires
cablees simplifiant larchitecture du processeur et reduisant les temps dexecution. Dautre part,
la capacite memoire netant pratiquement plus limitee il ny avait pas dobstacle `a augmenter la
taille des programmes : la fonctionnalite de chaque instruction etant limitee il faut generer un
plus grand nombre dinstructions (en pratique pas plus de 30 %).
Par contre la generation de code est plus compliquee. Les instructions complexes facilitent la traduction des programmes ecrits en langage evolue. Cest egalement au compilateur de se charger
de loptimisation du code en fonction des caracteristiques des processeurs. Les recherches ayant
debouche sur les processeurs RISC ont egalement porte sur les compilateurs. Levolution des
outils logiciels a vu lemergence de compilateurs evolues permettant une optimisation efficace
des codes generes avec des gains de lordre de 20 % en temps dexecution. Le developpement
des compilateurs, pris en charge par les concepteurs de syst`emes, et le developpement des architectures sont tr`es interdependants. Passons en revue les idees de base qui font la specificite des
architectures RISC. Lobjectif recherche est dexecuter une instruction `a chaque cycle dhorloge.
31
Ceci est rarement realise sur la totalite du jeu dinstructions. Lobtention de cette performance
repose sur la mise en oeuvre de plusieurs principes :
simplification des instructions ;
simplification du format : longueur fixe des instructions et des champs ;
restriction des modes dadressage ;
sequenceur cable pour une execution rapide ;
utilisation intensive de registres tr`es nombreux ;
limitation des acc`es memoire `a deux instructions : LOAD et STORE ;
utilisation de caches ;
traitement anticipe des instructions (pipeline) : ce qui permet dobtenir un resultat `a chaque
cycle.
Le role du compilateur est essentiel pour loptimisation du code engendre. Un effort particulier
est fait sur les points suivants :
allocation optimale des registres ;
elimination des redondances ;
optimisation des boucles, en ne conservant `a linterieur que ce qui est modifie ;
optimisation du pipeline ;
optimisation du choix des instructions.
Le compilateur doit etre capable dexploiter au maximum les caracteristiques de larchitecture.
Il nous reste `a decrire une organisation particuli`ere des registres internes que lon rencontre dans
certaines architectures RISC. Elle est identifiee sous la denomination de technique des fenetres
de registres. destinee `a faciliter le passage de param`etres lors dappel de procedures. Le nombre
des registres est toujours important dans un processeur RISC. Il y avait par exemple 138 registres dans le prototype RISC-I de Berkeley avec lequel la technique a ete developpee. Celle-ci
repose sur les statistiques dej`a mentionnees sur le partage des variables et la profondeur dimbrication des appels de procedures. Pour le RISC-I les dix premiers registres, accessibles `a tous les
niveaux, sont destines `a recevoir les variables globales. Les 128 registres suivants sont divises en
huit groupes ou fenetres. Chaque groupe correspond `a une profondeur dappel. La profondeur
maximale est donc limitee `a huit. Les six premiers registres dun bloc servent `a lechange des
informations avec letage superieur. Les dix autres sont disponibles pour les variables locales.
Outre les registres globaux, chaque niveau intermediaire dispose donc de vingt-deux registres :
les seize qui lui sont propres et les six premiers registres de letage suivant . Cette technique
simplifie les echanges dinformations entre les procedures appelantes et appelees. Elle demande
cependant beaucoup de temps lors de la sauvegarde des registres en cas dinterruption.
Les architectures CISC et RISC, utilisant les memes technologies, ont de plus en plus tendance
a se rapprocher. Certains processeurs, par exemple, traduisent les instructions CISC en suites
dinstructions RISC avant lexecution. Cela permet dassurer la compatibilite des nouveaux processeurs avec tous les logiciels developpes anterieurement, ce qui est indispensable si on veut
pouvoir vendre le nouveau processeur.
32
TD 1
Exercice 1 : D
ecalage
On consid`ere d(0 : N ) N = 8
d(0 : N ) = 10111001
(4.1)
on considere d(0 : N ) N = 16
d(0 : N ) = 1111000011111011
On consid`ere que d est un
1. entier natural,
2. entier relatif,
3. avec virgule flotante selon la norme de IEEE 754.
Determiner pour chaque cas la valeur de d en
base 16
base 10
base 8
(4.2)
TD1/AO /NK/05-06
34
Exercice 3 : Soustraction
On Cherche `a realiser loperation de soustraction F = f (a, b). Les entrees a et b sont codes sur
4 bits.
1. Tracer la table de verite de F
2. Simplifier F en utilisant le tableau de Karnaugh
3. Optimiser la conception du bloc soustracteur en utilsant que des portes NAND
TD 2
Exercice 1 : Conception dune m
emoire principale
A partir dun circuit RAM 1024x8 bits de circuits de ROM 4096x8 bits decrites par la figure
4.2, on cherche `a realiser un espace adressable nommee M em de 21 6 mots de 32 bits et disposer
de 4096 mots memoires en RAM 4096 mots memoire en ROM.
Exercice 2 : Performance de la m
emoire cache
Lors dexecution dune instruction, le processeur prend du temps pour la decoder, acceder aux
donnees en memoires necessitees par cette instruction et de declencher les operations sur ces
donnees. Voici le cas suivant :
35
TD2/AO/RT2 /NK/05-06
36
:Th
Penelite dechec pe
:10 cycles
:2 cycles
:1.33
Taux dechec e
: 2%
(4.3)
e peut etre evalue en fonction du nombre de defaut de cache Nd et le nombre dacc`es total Na :
e =
Nd
Na
Determiner :
1. TaM m
2. Temps dexecution moyen dun instruction TIm
(4.4)
Devoir surveille 2
Examen2
Session : principale 2
de controle2
Mati`ere
Semestre
:1
Enseignante
Date
:23/11/05
Fili`ere
:RT2
Duree
:1H30mn
Bar`eme
:(6.5,7,6.5)(pt)
Documents autorises
:oui2
Nombre de pages
:3
non2
On Consid`ere la figure 1
1. Donner la nomenclature des blocs A1, A2 et A3,
2. Expliciter labreviation de chaque composante fonctionnelle,
3. Expliquer bri`evement le fonctionnement du CPU,
4. Quel est le type de cette architecture.
00
(4.5)
1. On consid`ere que d est un entier natural. Determiner pour chaque cas la valeur de d en
base 16,10,8.
2. On garde la meme condition precedente.Determiner le resultat en base 2 pour chaque
operation suivante :
(a) Decalage `a gauche,
(b) Decalage `a droite,
(c) Rotation `a droite en donnant la difference par rapport `a loperation precedente.
3. On definit une autre variable binaire c(0 : N ).
c(0 : N ) = 11 11 01 00
Determiner le resultat sur 16 bits pour les differentes operations suivantes :
(4.6)
(a) Addition de c et d
(b) Soustraction de c avec d ;(c d)
(c) Multiplication c et d