You are on page 1of 13

Architecture des ordinateurs

I.

Chapitre 0

Linformatique telle que nous la connaissons aujourdhui est apparue au milieu du 20 sicle.
Les blocs gnraux de lordinateur sont sur la page 4 et 128.
1. Les types darchitectures dordinateurs :

Modle de Von Neumann : Cette architecture repose sur lide que la mmoire
de lordinateur ne devrait pas servir qu stocker uniquement des donnes, mais
elle devrait galement stocker les programmes. On a un seul bus pour les
donnes et les instructions. Les ordinateurs actuels reposent sur ce type
darchitecture. Lorganisation dun ordinateur qui suit ce type darchitecture est :
Une mmoire
Une unit de calculs CA (Central Arithmetical part) que nous
appelons aujourdhui ALU
Une unit de contrle CC (Central Control device)
Modle de Harvard : Les donnes et les instructions sont stockes dans des
mmoires diffrentes et utilisent des bus diffrents. Cela rend les ordinateurs de
type Harvard plus rapides car ils sont capables de lire en mme temps une
instruction et une donne, alors quavec une architecture de type Von Neumann,
on peut soit lire une instruction, soit lire/crire une donne.
2. Les gnrations technologiques :

Premire gnration : Il sagit des ordinateurs utilisant des tubes vide


Deuxime gnration : Ordinateurs utilisant des transistors au lieu de tubes
vides
Troisime gnration : Utilisation des circuits intgrs
Quatrime gnration : Utilisation des micro-processeurs et apparition des microordinateurs ce qui a permis la dmocratisation de linformatique.
3. Architecture des ordinateurs actuels :

On doit organiser en gros la communication entre trois lments principaux qui sont :
Le processeur
La mmoire
Les entres / sorties (priphriques)

Dfinitions gnrales concernant une architecture dune machine multiniveaux : (voir page 14)
Un langage machine : lensemble des instructions directement excutable par un ordinateur
Soit un langage L2 plus simple manipuler que L1
Un traducteur : Remplace chaque instruction de L2 par L1 qui est quivalente. On obtient un
nouveau programme crit en L1
Un interprteur : excuter chaque squence dinstruction L1 quivalente une instruction de
L2.
Machine virtuelle : Ordinateur dont le langage machine est L2.
Couches et Niveaux : Srie de langages chacun est plus pratique que son prdcesseur. Chaque
langage sappuie sur son prdcesseur.
Une machine n niveaux peut tre vue comme n machines virtuelles.
Toute machine dfinit un langage, tout langage dfinit une machine. Ce qui donne
LANGAGEMACHINE
Les niveaux des machines actuelles (voir page 15).

II.

Chapitre 1
1. Excution dune instruction

Lexcution des instructions peut se dcouper en grandes tapes :

Chargement de linstruction excuter


Dcodage de linstruction
Localisation dans la mmoire des donnes utilises par linstruction
Chargement des donnes si ncessaire
Excution de linstruction
Sauvegarde des rsultats leurs destinations respectives
Passage linstruction suivante

2. Les mmoires

Nous appelons mmoire tout dispositif capable de stocker des informations (instructions et
donnes) de telle sorte que lorgane qui les utilise puisse nimporte quel moment accder
linformation quil demande. Les informations peuvent tre crites ou lues. Il y a criture
lorsquon enregistre des donnes en mmoire, lecture lorsquon sort des informations
prcdemment enregistres. La lecture peut tre destructive (linformation lue nest plus en
mmoire) ou non.
Le processeur est en gros :
UAL : effectue les oprations
Les registres : Stocke les valeurs des oprandes
Dcodeur, squenceur, compteur ordinal

Le temps daccs : Le temps qui spare le dclenchement de la recherche de la donne


et le temps de la rception de la donne.

Le temps de latence : Pour un disque dur, le temps de latence est le temps moyen
dattente une fois sur la bonne piste

Le temps de cycle : Lintervalle minimum qui doit sparer 2 demandes successives de


lecture ou dcriture. Le temps de cycle est gal ou suprieur au temps daccs.

Cadence de transfert ou dbit dune mmoire : Le nombre maximum


dinformations lues ou crites par unit de temps.
Une mmoire est forme dun certain nombre de cellules, ou cases, contenant chacune une
information. Chaque cellule a un numro qui permet de la rfrencer et de la localiser. Ce
numro est son adresse. Avec une adresse de n bits il est possible dadresser 2^n cellules. La
capacit dune mmoire est le nombre total de cellules quelle contient. Elle sexprime en
nombre de bits, doctets (bytes) ou de mots.
Les registres sont les mmoires les plus rapides. Viennent ensuite le cache ou ant-mmoire et
ensuite la mmoire principale ou mmoire centrale.
3. Les diffrents types daccs
Accs alatoire, direct ou encore slectif : On accde directement nimporte quelle
information dont on connat ladresse, le temps pour obtenir linformation ne dpend
pas de ladresse. Cest le cas dans une mmoire semi-conducteur.
Accs squentiel : Pour accder une information sur bande magntique, il faut
drouler la bande en reprant tous les enregistrements jusqu ce que lon trouve celui
que lon adresse.

Accs semi squentiel : Combinaison des accs direct et squentiel.

4. Les diffrents types de mmoires

Les diffrentes mmoires peuvent tre classes en :


Mmoires mortes : ROM,PROM, Flash, EPROM,
Mmoires vives ou RAM : Mmoire accs alatoire, est une mmoire volatile, cela
signifie que si lon coupe lalimentation, les donnes quelle contient sont perdues.
Statique : SRAM (utilisent des bascule latch)
Dynamique : (utilisent des condensateurs et des transistors)

o
o

Asynchrone : FPM,EDO,
Synchrone : SDRAM,DDR-SDRAM,RDRAM,

5. Mmoire synchrone et mmoire asynchrone

Mmoire asynchrone : Pour ce type de mmoire, lintervalle de temps entre deux accs
mmoire conscutive nest pas rgulier. Le processeur ne sait donc pas quand linformation
quil attend est disponible et doit attendre (wait-state) que la mmoire lui transmette les
donnes.
Mmoire synchrone : La cadence de sortie des informations est rgulire, on vite ainsi les
tats dattente (wait state) du processeur.
6. Comparaison SRAM/DRAM

La SRAM est rapide mais chre


La DRAM est lente mais bon march

7. La mmoire morte : ROM

Les mmoires mortes ou ROM (Read Only Memory) sont des mmoires non volatiles qui sont
voues tre accdes en lecture en fonctionnement normal. Elles contiennent du code et des
donnes qui ne sont pas amens changer souvent. Les ROM contiennent gnralement les
routines daccs de base aux priphriques. Les types de ROM sont : EPROM,PROM,Flash ,
8. Frquence et dbit mmoire

Le dbit thorique dune mmoire dun ordinateur dpend de trois facteurs :


La frquence du bus FSB reliant le CPU la mmoire
La largeur du bus en nombre de bits
Un coefficient multiplicateur qui dpend de la technologie utilise
(normal=1,DDR=2,QDR=4)
Le dbit mmoire est donc donn par la formule suivante :

Debit=Frequence*Largeur*Coef

9. La mmoire cache

La mmoire cache est une mmoire rapide qui enregistre temporairement des donnes
provenant dautres sources de donnes, et ceci afin de diminuer le temps daccs (en lecture ou
en criture) dun matriel informatique ces donnes. Elles sont souvent fabriques avec de la
mmoire SRAM. Le cache contient une copie des donnes originelles lorsqu'elles sont
coteuses (en termes de temps d'accs) rcuprer ou calculer par rapport au temps d'accs
au cache. Une fois les donnes stockes dans le cache, l'utilisation future de ces donnes peut
tre ralise en accdant la copie en cache plutt qu'en rcuprant ou recalculant les
donnes, ce qui abaisse le temps d'accs moyen.
Notre mmoire cache est, comme toutes les autres mmoires, divises en cases mmoires,
qu'on peut modifier individuellement. Dans un cache, ces cases mmoires sont regroupes en
blocs de taille fixe qu'on appelle des lignes de cache. Les lignes de caches sont forms dun
ensemble de mots (chaque mot=un octet).
On distingue les caches en fonction de leur taille et de leur localit :
La mmoire cache de premier niveau (L1) situe lintrieur du processeur et
dont la taille est de 2 fois 8ko ou 2 fois 16ko (Pentium Pro)
La mmoire cache de second niveau (L2) situe dans le botier du processeur
et dont la taille varie de 256 512 KO
La mmoire cache de troisime niveau (L3) situe prsent au niveau du
processeur et dont la taille varie de 6 24 Mo.
La mmoire cach est en fait un dispositif de stockage des donnes et de reprage de leur
emplacement en mmoire. On peut reprsenter ce dispositif sous forme dune table
comportant au minimum trois champs :
Un bit indiquant si la ligne de la table est valide ou non
La donne stocker
Un champ permettant didentifier ladresse qui est soit ladresse entire soit
une tiquette qui identifie ladresse relle laquelle la donne se trouve.

Le mapping
La mmoire cache ne pouvant contenir toute la mmoire principale, il faut dfinir une mthode
indiquant quelle adresse de la mmoire cache doit tre crite une ligne de la mmoire
principale. Cette mthode s'appelle le mapping. Il existe trois types de mapping rpandus dans
les caches aujourd'hui :

les mmoires caches compltement associatives (fully associative cache) ;


les mmoires caches associatifs n groupes (N-way set associative cache) ;
les mmoires caches accs direct directes (direct mapped cache).
Caches associatifs (fully associative cache)
Chaque ligne de la mmoire de niveau suprieur peut tre crite n'importe quelle adresse de la mmoire
cache. Cette mthode requiert beaucoup de logique car elle donne accs de nombreuses possibilits.
Ceci explique pourquoi l'associativit complte n'est utilise que dans les mmoires cache de petite taille
(typiquement de l'ordre de quelques kibioctets). Cela donne le dcoupage suivant de l' adresse :

Caches accs direct (direct mapped cache)


Chaque ligne de la mmoire principale ne peut tre enregistre qu' une seule adresse de la mmoire
cache, par exemple associe au modulo de son adresse. Cela cre de nombreux dfauts de cache si le programme
accde des donnes en collision sur les mmes adresses de la mmoire cache. La slection de la ligne o la
donne sera enregistre est habituellement obtenue par: Ligne = Adresse mod Nombre de lignes.

Une ligne de cache est partage par de nombreuses adresses de la mmoire de niveau suprieur. Il nous faut donc
un moyen de savoir quelle donne est actuellement dans le cache. Cette information est donne par le tag, qui
est une partie de ladresse mmoire dorigine de la donne stocke dans le cache. L'index correspond la
ligne o est enregistre la donne. En outre, le contrleur de la mmoire cache doit savoir si une adresse
donne contient une donne ou non. Un bit additionnel (appel bit de validit) est charg de cette information.
Prenons l'exemple d'une adresse de 32 bits donnant accs une mmoire adressable par octet, d'une taille de
ligne de 256 bits et d'une mmoire cache de kibioctets. La mmoire cache contient donc
bits (1 Kio =
octets et 1 octet =
bits). Sachant qu'une ligne est de 256 bits soit bits, nous dduisons qu'il y a
lignes stockables en mmoire cache. Par consquent, l'index est de s+5 bits.
L'adresse de 32 bits permet d'accder une mmoire de
octets, soit
bits. L'index tant de s+5 bits, il faut
distinguer
lments de la mmoire principale par ligne de cache. Le tag est donc de 22-s bits.

De plus, une ligne a une taille de 256 bits soit 32 octets. La mmoire tant adressable par octet, cela implique un
offset de 5 bits. L'offset est le dcalage l'intrieur d'une ligne pour accder un octet particulier.
Ces calculs donnent le dcoupage de l'adresse suivant(schma ci-dessous) pour une mmoire cache mappe
directement :

Le mapping direct est une stratgie simple mais peu efficace car elle cre de nombreux dfauts de cache
conflictuels. Une solution est de permettre une adresse de la mmoire principale d'tre enregistre un nombre
limit d'adresses de la mmoire cache. Cette solution est prsente dans la section suivante.

Les caches associatifs n groupes (N way direct mapping)


Il s'agit d'un compromis entre le "mapping" direct et compltement associatif essayant d'allier la simplicit de
l'un et l'efficacit de l'autre.
La mmoire cache est divise en ensembles (sets) de N lignes de cache. Un ensemble est reprsent sur la figure
ci-jointe par l'union des rectangles rouges. Une ligne de la mmoire de niveau suprieur est affecte un
ensemble, elle peut par consquent tre crite dans n'importe laquelle des voies i.e. des N lignes de l'ensemble.
Ceci permet d'viter de nombreux dfauts de cache conflictuels. l'intrieur d'un ensemble, le mapping est
Direct Mapped, alors que le mapping des N Sets est Full Associative. En gnral, la slection de l'ensemble est
effectue par : Ensemble = Adresse mmoire mod (Nombre d'ensembles).
Reprenons l'exemple de la section prcdente (mmoire cache de kibioctets) mais constitu de
voies. Le
nombre de voies est en effet toujours une puissance de 2 afin d'obtenir un dcoupage simple de l'adresse
mmoire. La mmoire cache contient donc
bits par voie. Sachant qu'une ligne reprsente 256 bits, il y a
donc
lignes par ensemble. L'index est donc de s-n+5 bits.
Les mmoires considres ici sont adressables par octet. Par consquent, les adresses de 32 bits donnent accs
une mmoire de
bits, soit l'quivalent de
lignes de mmoire cache. Ainsi, chaque ensemble de la
mmoire cache contient
lignes distinctes. Le tag est donc de 22-s+n bits. Le dcoupage de l'adresse est
alors :

10.

La mmoire de masse (disque dur)

Le disque dur est lun des composants (ou priphrique) de lordinateur servant conserver les
donnes de manire persistante, contrairement la mmoire vive qui est volatile.
Organisation interne
Le disque dur est constitu dun ou plusieurs plateaux entre lesquels passent des ttes de
lecture/criture solidaires dun bras qui autorise le dplacement des ttes sur toute la surface
du disque. Plus la vitesse de rotation est importante, plus le disque est performant.
Le formatage
Durant le formatage, on divise le disque en plusieurs parties. Chaque secteur contient 512
octets. Le FAT est compos de cluster. Les clusters sont des listes chaines. Chaque cluster
contient ladresse du cluster suivant.
FATX : X est le nombre de bits du cluster. Lors du formatage, on divise le disque dur en
partitions. Les clusters contiennent les adresses des donnes.
1Mo=2^20
1Go=2^30
XMo=2^20+X
Voir la page 35 pour le calcul des tailles des clusters.

Grandeurs caractristiques et performances :


Capacit : Connaissant :
C=le nombre de cylindres (=le nombre de pistes)
H=le nombre de ttes de lectures/criture
S=le nombre de secteurs par piste
Capacit=C*H*S*512
Temps de latence : T(latence)=60/vitesse de rotation/2
Temps daccs : Temps ncessaire au passage sur la piste suivante
Temps moyen daccs : Intervalle de temps entre la rception dune requte et la mise disposition des
donnes.

11.

Notion de bus

On appelle bus les diffrents composants qui dialoguent (ou changent de linformation) au
travers de canaux de communications.
Un bus se dcompose en 3 parties :
Le bus dadresse qui permet de spcifier quelle adresse mmoire on dsire accder.
Le bus de donnes qui permet de spcifier denvoyer ou de recevoir une donne.
Le bus de commandes qui permet de spcifier si on effectue une lecture ou une criture.
Un bus est caractris par :
Son type : parallle ou srie
Sa largeur : exprime en nombre de bits ou doctets : il sagit du nombre de bits qui sont
transfrs en mme temps
Sa frquence : exprime en Hz. Elle indique la vitesse de transfert de linformation.
On peut dterminer la bande passante partir de ces lments partir de la relation :
Bande passante=frquence*largeur
Plus la bande passante est importante, plus le bus est performant.

Les caractristiques dun bus

Bus synchrone : Toute opration sur le bus est effectue en un nombre entier de priode
dhorloge : cycle de bus.
Caractristique : Il dispose dune ligne spcifique dhorloge pilote par un oscillateur quartz
signal de frquence de 5 50 Mhz.
Bus asynchrone : Pas dhorloge pour piloter le bus. Un cycle de bus est aussi long quil le faut.

III.

TDS

TD 1
Norme IEEE 754 32 bits : Cest une norme pour la reprsentation des nombres virgule
flottante en binaire.

Linterprtation dun nombre en binaire est donc sous la forme : N=((-1)^s)*(M)*(B^E)


Avec : E=Eb-127
B=La base (=2 si on travaille en binaire)
S=Bit de signe (=0 ou 1)
M=b22b21b20b0 (23 bits)
M (en base 2, il faut donc convertir en dcimal pour trouver le nombre dcimal)=1,b22b21..b0
Remarque : Les bits b22b21b0 reprsentent seulement la partie fractionnaire, le 1 nest pas
cod, il est implicite.
Pour coder un nombre dcimal en utilisant la norme IEEE 754, on suit les tapes :
On regarde dabord le signe. S=0 si le nombre est positif et 1 sil est ngatif
Puis on crit le nombre sans le signe en binaire (avec des divisions par 2 pour la partie
dcimale et des multiplications par 2 pour la partie fractionnaire)
Ensuite, nous dcalons la virgule vers la gauche, de faon ne laisser qu'un 1 sur sa
gauche (si par exemple on trouve 1110110,101 en binaire, on a 1110110,101(binaire)=
1,110110101(binaire)*(2^6)). C'est un nombre flottant normalis : la mantisse est la
partie droite de la virgule, remplie de 0 vers la droite pour obtenir 23 bits. On nglige le
1 avant la virgule qui est implicite. La puissance de 2 reprsente le E. (Cela donne dans
lexemple 110 1101 0100 0000 0000 0000)
On calcule Eb=E+127 et on code le Eb en binaire. (2^7=128).

TD 2
A retenir
Pour un accs direct : Taille de lindex = taille du cache/taille du bloc
Ladresse du bloc est trouv par la taille des blocs
Pour un accs n groupes : ladresse dans le bloc est trouve par la mme
manire
La taille de lindex=taille du cache/(nombre de groupe*taille du bloc)
Les adresses envoyes par le C sont de la forme :
Ctl Etiquette Instructions ou donnes
Ctl : bit qui permet de vrifier la validit de la ligne (Tjs 1 bit)
Etiquette : si Ctl=1 on compare le Tag avec le Tag donn par le C. Si cest le bon on
a trouv le bloc recherch (Cache hit)
TD 4
Notation polonaise :
Oprateur : cest les oprations normales +,*,/
Oprandes : ce sont les chiffres habituels 1,2,3,
La notation polonaise inverse est invente dans les annes 50 pour but dliminer
les parenthses dune expression mathmatique.
Le principe gnrale est assez simple : Il faut lire lexpression de gauche droite en
extrayant un un chacun de ses lments. En jargon informatique anglais, un
lment dune expression est appel token. Lorsque le token est un oprande, on
le place en sortie dans lexpression postfixe. Lorsque le token est un oprateur, on
le met de ct. Et lorsquil nya plus de token en entre, on va rechercher
loprateur que lon concatne lexpression postfixe.
La division et la multiplication sont prioritaires sur laddition et la soustraction
Lalgorithme de ralisation est le suivant :

1- On Examine lexpression mathmatique


2- Si cest une oprande, on le place sur le fichier de sortie et on continu avec le
token suivant
3- Si cest un oprateur, alors :
4- Si la pile est vide, on place loprateur sur la pile et on continu avec le token
suivant
5- Sinon, si loprateur qui se trouve au sommet de la pile est prioritaire, on
place celui-ci (loprateur prioritaire) sur le fichier de sortie et on place
loprateur courant sur la pile et on continu avec le token suivant
6- Si loprateur qui se trouve au sommet de la pile nest pas prioritaire, on place
loprateur courant au dessus de celui-ci et on continu avec le token suivant
7- Si loprateur est une parenthse ouvrante, on la place sur la pile
8- Si loprateur est une parenthse fermante, on fait rien avec la parenthse
fermante et on dpile la pile sur le fichier de sortie avec la rgle LIFO jusqu
ce que lon rencontre une parenthse ouvrante, que lon limine elle aussi, et
on continu avec le token suivant
9- Enlever les oprateurs suivants et les placer sur le fichier de sortie