Architecture des Ordinateurs - PowerPoint PPT Presentation

1 / 61
About This Presentation
Title:

Architecture des Ordinateurs

Description:

Soit une m moire d'une capacit C donn e en octets ou ko. Plusieurs mani res de ... M : taille du bus de donn es (en bits) 8 : coefficient entre bits et ... – PowerPoint PPT presentation

Number of Views:2513
Avg rating:3.0/5.0
Slides: 62
Provided by: flas6
Category:

less

Transcript and Presenter's Notes

Title: Architecture des Ordinateurs


1
Architecture des Ordinateurs
  • La mémoire
  • organisation
  • adressage
  • performances et astuces les caches

2
Organisation
Soit une mémoire d'une capacité C donnée en
octets ou ko. Plusieurs manières de
l'organiser piqûre de rappel avec N
taille du bus d'adresse M taille du bus de
données (en bits) 8 coefficient entre bits et
octets
3
Organisation
1 valeur de C ? plusieurs couples (M,N) exemple
C 256 Mo
25
Meilleure répartition ?
4
Organisation
  • Plusieurs critères
  • nombre de pistes nombre minimal pour N maximal
  • performance de débit rapatrier plus de données
    en un échange
  • traitement des octets taille utilisée par
    beaucoup d'applications ne correspond pas au
    bus ni à la cellule mémoire
  • Performance de débit mise en avant
  • augmenter taille de cellule mémoire,
  • taille de bus de données
  • et le bus d'adresse ?

5
Traitement des octets
Transferts de données de 32 ou 64 bits (voire
plus). Comment traiter un octet (mot de 16
bits)? Utilité de traiter un octet ? Typage de
langages (char en C) fichiers texte suite
d'octets comment ranger un octet dans un mot
mémoire ? 2 possibilités petit-boutisme (little
endian) gros-boutisme(big-endian)
6
Petit boutisme et gros boutisme
Numéroter les octets à l'intérieur d'un mot
mémoire ? numéroter les bits à l'intérieur d'un
octet !!!! Ex mot mémoire de 32 bits 4
octets Gros boutisme Petit boutisme
32 bits
0
1
2
3
32 bits
3
2
1
0
7
Gros boutisme
32 bits

Adresse
0 1 2 3
8
9
10
11
12
13
14
15
8
Petit boutisme
32 bits

Adresse
0 1 2 3
11
10
9
8
15
14
13
12
9
Exemples de stockage de données
À partir du langage C type long int 4 octets
1 mot mémoire. Valeur à stocker 7. Sur 4
octets (on indique le contenu)
00
00
07
00
Stockage direct dans un mot mémoire pas de
problème de petit ou gros boutisme.
10
Exemples de stockage de données
À partir du langage C type char 1 octet.
Valeur à stocker 18. Sur 1 octets (on
indique le contenu)
18
Stockage dans un octet problème de petit ou
gros boutisme ! Ne sera pas stocké au même
endroit du mot mémoire
11
Exemples de stockage de données
À partir du langage C type char 1 octet.
Valeur à stocker 18.
Gros boutisme Petit boutisme
??
18
18
??
??
??
??
??
Idem pour chaîne de caractères, suite d'octets.
12
Exemples de stockage de données
À partir du langage C type char . Valeurs à
stocker 'B' 'o' 'n' 'j' 'o' 'u' 'r'
Gros boutisme Petit boutisme
'n'
'B'
'B'
'o'
'j'
'o'
'n'
'j'
'r'
'o'
'u'
'r'
??
'u'
??
'o'
Rangement dans l'ordre des numéros d'octets
13
Exemples de stockage de données
Types de taille intermédiaire (exemple, short int
occupant 16 bits).
Gros boutisme Petit boutisme
1ère donnée 16 bits
2ème donnée 16 bits
2ème donnée 16 bits
1ère donnée 16 bits
14
Exemples de stockage de données
À partir du langage C type complexe, contenant
des données de types différents (char et long int
par exemple). Stockage cohérent dans une machine,
mais problème de transmission ! Transmettre des
octets problème d'ordre pour les données
occupant plus d'un octet en mémoire Transmettre
des mots mémoire les machines ont-elles des
tailles de cellule mémoire équivalent ? Problème
d'ordre pour les octets ! Chaque machine doit
connaître le type de représentation de l'autre !
15
Alignement
Transfert de données de différentes tailles
possibles (compatibilité C et autres langages)
16
Culture générale
RAM Random Access Memory, a accès aléatoire
(non séquentiel) SRAM Static RAM DRAM Dynamic
RAM FPM RAM Fast Page Mode lecture en mode
bloc EDO RAM (Extended Data Out) moins de
rafraîchissements BEDO RAM Burst ou Block
EDO SDRAM Synchronous DRAM entrelacée DDR
SDRAM Dual Data Rate SDRAM QDR SDRAM Quad Data
Rate SDRAM
http//www.webreference.com/graphics/column14/inde
x.html
17
Hiérarchie de la mémoire
Différents types de mémoire performances
différentes caractéristiques différentes mais
constat général Plus une mémoire est rapide
plus elle est chère ! Plus une mémoire est
volumineuse, plus elle est lente, donc plus elle
est économique (prix au ko)
18
Pyramide de la mémoire
rapide
qqs octets
économique
registres
volatile
512 Mo
RAM
Disques durs
Persistante
80 Go
10 Go
CD / DVD
Bande magnétique (DAT,DLT)
300 Go
100 To
Systèmes complets d'archivage (robots)
19
RAM / CPU
RAM rapide, mais pas assez pour le processeur
! Ex processeur à 2 GHz peut traiter une
donnée tous les 0,5 ns ! Mémoire répond en
quelques nanosecondes, le plus souvent 20 ns
facteur 40 ! Comment accélérer le traitement ?
Utiliser les registres le plus possible ? Oui,
en assembleur, mais aucune maîtrise sinon
(compilateur). Utiliser une mémoire plus rapide ?
Plus cher, mais pourquoi ? Rapidité ?
proximité proximité ? intégration !
20
RAM / CPU
A propos de proximité en 0,5 ns, quelle
distance ?l peut être parcourue par un signal
? Au plus rapide vitesse de la lumière c
3.108 m.s-1 ?t 0,5 ns 5.10-10 s ?l c. ?t
0,15 m idéal intégrer la RAM au support de
processeur trop cher car soucis d'intégration
! Compromis mémoire moyennement rapide et
moyennement proche du CPU mémoire cache.
21
Pyramide de la mémoire
rapide
qqs octets
économique
registres
CACHE
512 ko
512 Mo
RAM
Disques durs
80 Go
10 Go
CD / DVD
Bande magnétique (DAT,DLT)
300 Go
100 To
Systèmes complets d'archivage (robots)
22
Principe du cache
Objectif améliorer les performances de la
machine. Notations tglob temps d'accès à une
donnée tm temps d'accès à la mémoire tc
temps d'accès au cache Cm capacité de la
mémoire Cc capacité du cache sans utiliser de
cache, on a tglob tm (on ne traite que la
mémoire physique, pas la virtuelle)
23
Principe du cache
Comment utiliser le cache ? a) comme de la
mémoire supplémentaire ? Dans ce cas, que vaut
tglob? La capacité totale de la mémoire
accessible (cacheRAM) est de CcCm.
Statistiquement, sur un grand nombre d'accès
mémoire répartition au hasard. En pourcentage
Pc Cc/(CcCm) d'accès au cache Pm
Cm/(CcCm) d'accès à la RAM
24
Principe du cache
D'où tglob Pc.tcPm.tm Aucun intérêt
! Application numérique Cm 256 Mo, tm 40
ns Cc 256 ko, tc 8 ns on a alors Pc 9,7.10-4
et Pm 0,999 d'où tglob 39,97 ns. Gain
0,03 ns...
CACHE
CPU
RAM
25
Principe du cache
b) comme de la mémoire 'simulant' la RAM le
processeur adresse une certaine quantité de
mémoire Cm, mais ce n'est pas forcément la
mémoire qui possède cette information. Le cache
peut en avoir une copie, auquel cas il répond à
la place de la mémoire. Beaucoup plus intéressant
!
RAM
CACHE
CPU
26
Principe du cache
  • Illusion d'une mémoire très rapide de grande
    capacité.
  • Quelle information va transmettre le CPU pour
    accéder à une donnée en RAM ?
  • son ADRESSE.
  • Cette adresse va d'abord être présentée au cache
  • s'il possède la donnée correspondante il la
    transmet au CPU
  • SUCCES ou CACHE HIT
  • sinon la donnée est en mémoire, il faut la
    faire transiter depuis la RAM
  • ECHEC ou CACHE MISS

27
Principe du cache
Le contenu du cache est dynamique comment
évolue-t-il ? Cas possibles action demandée,
réponse du cache demande de lecture, HIT pas
de mise à jour. demande de lecture, MISS
donnée cherchée en RAM, recopiée dans le
cache, éventuellement remplacement
d'une donnée plus ancienne.
28
Principe du cache
demande d'écriture, c'est le CPU qui fournit la
valeur attention à la cohérence entre le cache
et la RAM ! La RAM reste la référence écriture
en RAM de la valeur comportement du cache
écriture de cette valeur ? Intéressant si la
donnée se trouve déjà dans le cache ! Plus
simple invalider la donnée si elle se trouve
dans le cache (ne nécessite pas de mettre à jour
le cache)
29
Illustration
Analogie avec un libraire et un fournisseur. Un
passionné de lecture veut obtenir un nouveau
livre il peut s'adresser à un fournisseur qui
les possède quasiment tous, mais il faut dans ce
cas faire une commande, le délai est d'une
semaine. A côté de chez lui se trouve une
(petite) librairie, qui contient des livres que
l'on trouve aussi chez le fournisseur. Le
passionné de lecture ? CPU Le fournisseur ?
RAM La librairie ? cache
30
Illustration
Le passionné se rend systématiquement à la
librairie pour obtenir un livre si la
librairie dispose du livre elle en donne une
copie sinon la librairie passe commande
auprès du fournisseur elle reçoit le livre au
bout du délai normal mais elle ne peut stocker
qu'un nombre limité de livres donc il faut
libérer une place en 'jetant' un autre livre. De
même pour le lecteur il ne dispose que de peu
de place il doit libérer de la place dans sa
bibliothèque au fur et à mesure
31
Performance du cache
Efficacité ? On peut calculer tglob 2 deux
manières 1) lorsqu'il y a HIT, le temps d'accès
à la donnée est tc. Lorsqu'il y a MISS, le temps
d'accès est tctm HIT ou MISS ? accès au
cache ! Soit h le taux de HIT 0 ? h ? 1 (h
nombre de HITS/nombre d'accès total) le taux de
MISS est alors 1-h tglob h.tc(1-h)(tctm)
32
Performance du cache
2) Dans tous les cas, un accès au cache (temps
tc) est fait, puis s'il y a HIT on ne fait
rien s'il y a MISS on doit accéder à la mémoire
temps tm avec un taux 1-h. d'où tglob tc
(1-h).tm quelle est la meilleure formule ?
33
Calcul de performance
Illustration avec données numériques données
précédentes tm 40 ns, tc 8 ns, Cm 256 Mo,
Cc256 ko. Comment évaluer h ? Même hypothèse que
pour le cas a) le cache contient des données
aléatoires. Dans ce cas, quel est le taux h de
réponse par un HIT à une demande quelconque du
CPU ? h Cc/Cm1/1024 1-h 1023/1024 on
considère que h0
34
Calcul de performance
D'où le résultat tglob tmtc 48 ns gt tm
!!! Ajouter un cache diminue les performances du
système ! Performance liée à la valeur de h,
qu'il faut rendre maximum ! Comment améliorer h
? optimiser h ? maximiser le nombre de HIT lors
des demandes Donc ne pas remplir le cache au
hasard ! Anticiper les accès.
35
Calcul de performance
Utiliser des règles de remplacement de valeurs ou
de mise à jour du cache règles empiriques et
non purement théoriques amélioration des
performances non prévisible au mieux, mais en
moyenne. Exemple de telles règles localité
spatiale lorsqu'un programme accède à une
certaine adresse, il est probable qu'il accède à
des adresses proches de celle-ci transfert de
plusieurs données dans le cache lors d'un
MISS localité temporelle lorsqu'un programme
accède à une certaine adresse, il est probable
qu'il y accède de nouveau peu de temps après
éliminer les données les plus anciennes d'abord
(LRU)
36
Implémentation des caches
2 grandes familles les caches associatifs
chaque emplacement du cache contient une
association adresse/donnée les caches à
correspondance directe chaque emplacement du
cache ne correspond qu'à un nombre restreint
d'adresses en réalité, on utilise un compromis
entre les deux !
37
Cache associatif
Comparable à un tableau indexé illustration
1 emplacement de cache
Cache (N emplacements)
38
Mise en uvre
0
0
????????
????????
0
0
0
????????
0
lecture, _at_1000
bus d'_at_
CPU
0
????????
0
????????
0
0
MISS
39
Mise en uvre
On suppose qu'en RAM, à l'_at_ 1000, on trouve la
valeur 12345678
1000
1
12345678
????????
0
0
0
????????
0
lecture, _at_1000
bus d'_at_
CPU
0
????????
0
????????
0
0
RAM
12345678
40
Mise en uvre
Politique de remplacement des valeurs exemple
précédent tous les emplacements équivalents
(cache vide) problème lorsque le cache est rempli
de données valides ! Choisir la donnée à effacer
car en cas de MISS sur une lecture, on copie
systématiquement la donnée provenant de la RAM
dans le cache (principe de localité
temporelle). Technique LRU "vieillissement" des
emplacements lorsqu'ils ne sont plus utilisées
comptage du nombre d'accès ne les concernant
pas. Lors du remplacement suppression d'un
emplacement "le moins récemment utilisé" LRU
(Least Recently Used)
41
Autres exemples (I)
Mise en uvre avec des lectures
?
?
?
C08
bus d'_at_
!
MISS
42
Autres exemples (II)
Mise en uvre
HIT
?
!
86E2
bus d'_at_
43
Autres exemples (III)
Mise en uvre
?
?
?
020E
bus d'_at_
?
?
MISS
44
Cache à correspondance directe
Problème de recherche, les adresses ne sont pas
classées ! "classement" des adresses à une
adresse ne peut correspondre qu'un emplacement
précis du cache bien évidemment, à un
emplacement précis du cache peuvent correspondre
plusieurs adresses. Technique utiliser une
partie de l'adresse (codée sur p bits) fournie
par le CPU pour déterminer l'emplacement du cache
à tester. Utilisation de q bits de poids faible
de l'adresse.
45
Cache à correspondance directe
Soit un cache comportant N emplacements et tel
que N soit une puissance entière de 2 ? q ? N /
N2q. (ce cas est toujours vérifié en
pratique). Les q derniers bits d'une adresse
codée sur p bits indiquent le numéro de
l'emplacement du cache correspondant à l'adresse
demandée.
000001010011100101110111
adresse codée sur p16 bits
0110101011000110
bus d'_at_
cache à 823 emplacements
46
Cache à correspondance directe
Toute adresse demandée se terminant par '110'
indiquera le même emplacement du cache. Combien
de telles adresses ? 2(p-q) traiter les
informations dans le cache s'assurer la donnée
présente à cet emplacement correspond à celle qui
se trouve en RAM à l'adresse demandée. Ne pas
consulter la RAM ! La valeur des p-q bits de
poids fort forment un TAG (empreinte).
47
Cache à correspondance directe
TAG stocké dans le cache et utilisé pour
comparaison avec l'adresse demandée. Structure de
cache
V
TAG
DATA
1 emplacement de cache à correspondance directe
V bit de validité TAG p-q bits de l'adresse
correspondant à la donnée stockée dans la zone
DATA.
48
Mise en uvre
Cache initialement vide, p16, q4 (d'où N16)
lecture, _at_ 101000111010 1110
N2q
bus d'_at_

1) déterminer l'emplacement
2) comparer le TAG stocké dans le cache et le
reste de l'adresse
49
Mise en uvre
Cache initialement vide, p16, q4 (d'où N16)
lecture, _at_ 101000111010 1110
N2q
bus d'_at_

HIT/MISS
3) si les TAGS sont égaux HIT si le bit V est à
1, MISS sinon
50
Mise en uvre
On obtient forcément MISS puisque le cache est
vide ! On suppose de plus qu'à l'adresse demandée
se trouve la donnée 9ABCDEF0.
lecture, _at_ 101000111010 1110
bus d'_at_
9ABCDEF0
9ABCDEF0
101000111010
51
Phénomène de ping-pong
Accès alternés à deux adresses ayant les mêmes q
bits de poids faible même emplacement dans le
cache ! Ex adresses 1000 1101 1011
0111 et 0100 1000 1110 0111 lecture à la
première adresse MISS, donc chargement en cache
de cette donnée et du TAG. Lecture à la deuxième
adresse consultation du cache à l'emplacement
précédent MISS, donc chargement en cache de
donnée et TAG et ainsi de suite Alors qu'il peut
y avoir N-1 emplacements libres !
52
Lignes de cache
Comment profiter de la localité spatiale des
données ? Transfert de plusieurs données lors
d'une écriture en cache pas dans plusieurs
emplacements trop long ! Un emplacement
comporte plus qu'une donnée une ligne de
cache stockage du contenu de 4 ou 8 adresses
consécutives, et adressage à l'intérieur de cette
ligne
53
Lignes de cache
Illustration avec cache à correspondance directe
nouveau découpage de l'adresse pour accéder à
la donnée. On suppose que l'adresse fournie par
le CPU est codée sur p bits.
Index indique l'emplacement du cache à
consulter SHAM SHift AMount indique le numéro
de la donnée dans la ligne de cache.
54
Mise en uvre
Structure du cache (avec une ligne de cache de 4
données)
N emplacements
Contient 4.N données
55
Mise en uvre
Exemple p 12 , q 4, r 2. N 24 16
emplacements de cache r 2 ? 4 données par
ligne. Le CPU fait deux demandes lecture, _at_
FE0 (en binaire 111111 1000 00) lecture, _at_
FE2 (en binaire 111111 1000 10)
SHAM
TAG
index
Première demande MISS, chargement du TAG
(111111) et de 4 données à l'emplacement 1000 du
cache. Deuxième demande même emplacement, même
TAG ? HIT
56
Mise en uvre
État après lecture, _at_ FE0. Demande lecture,
_at_ FE2
1

HIT
MUX
57
Cache associatif par 2/4/8
Avantages et inconvénients des types de cache
cache associatif temps de recherche de
l'adresse une donnée peut être placée n'importe
où cache à correspondance directe pas de
recherche de l'emplacement une donnée est stockée
à un endroit précis effet ping-pong
58
Cache associatif par 2/4/8
Profiter des avantages des deux types de cache
utiliser plusieurs caches à correspondance
directe (2,4 ou 8) lors d'une demande obtention
de plusieurs données, mais la donnée correcte est
la seule accompagnée d'un HIT de la part du cache
à correspondance directe associé. Rapide,
efficace, effet ping-pong maîtrisé (effet
tournant sur 3,5 ou 9 adresses au lieu de 2)
59
Caches à plusieurs niveaux
Compromis coût/performances plus le cache a une
capacité élevée, plus il est efficace, plus il
est chermême problème qu'avec la RAM plusieurs
niveaux ex des caches L1 et L2 séparation cache
de données / caches d'instruction pour augmenter
l'efficacité Inutile de consulter un cache
global le découpage instructions/données
enfreint le principe de localité spatiale,
valable localement pour les donnée ou pour les
instructions. Cache L1 ou interne petite
capacité, très rapide Cache L2 ou externe
capacité moyenne, éloigné de la puce
60
Adressage matrices
Facilité d'intégration utilisation sous la
forme d'une matrice comportant lignes et colonnes
1 bit (ou une cellule mémoire) associée à un
numéro de ligne (ROW) et un numéro de colonne
(COLumn). L'adresse envoyée sur le bus d'adresse
est en fait constituée de deux parties une
partie CAS (Column Address Strobe) et une partie
RAS (Row Address Strobe). Possibilité de lecture
par bloc en précisant la valeur de RAS puis en
envoyant des valeurs successives de CAS
! Plusieurs manières de réaliser cela.
61
Adressage matrices
On présente volontiers la mémoire sous forme
'linéaire' (cf l'excellent cours d'archi des
microprocesseurs ? ). Représentée sous forme de
bascules vrai pour les mémoires dites statiques
(SRAM). Mais en réalité, plus sophistiqué
bascule dispositif complexe par rapport aux
échelles d'intégration actuelles (gravures en 0,1
micron soit 10-7 m, 1000 fois le ? d'un atome) on
préfère un seul transistor ou condensateur
mémoire dynamique DRAM moins chère mais doit être
rafraîchie ralentissement.
Write a Comment
User Comments (0)
About PowerShow.com