Vous êtes sur la page 1sur 15

4.

La mémoire interne

Chaque information (1 bit) est mémorisée dans une case identifiée par un numéro de ligne et un numéro de colonne.

La latence: Elle caractérise le délai entre l’envoi d’une commande et la réception du résultat.

Ce délai est fonction du temps de réaction et de transfert interne.

Il dépend des temps d’accès à une adresse spécifique suivant les lignes (RAS: Row Address
Strobe) et colonne (CAS: Column Address Strobe) et du délai entre la lecture des données à cette
adresse et son transfert sur le bus de données.

Le temps d’accès:Le temps entre l’envoi d’une adresse et l’obtention de la donnée.

Le temps cycle: Le temps entre deux opérations mémoires successives.

Temps d'accès à une donnée en mémoire = Temps de cycle + Temps de latence.

Le temps de cycle = 1 / fréquence(H).

Il existe deux types de mémoires à semi-conducteurs:

Mémoire morte: Mémoire vive:


ne permet que des opérations de lecture permet les opérations de lecture et d'écriture
"ROM –Read Only Memory-" "RWM –Read Write Memory-"
Mémoire vive La RAM "Random Access Memory": mémoire vive à accès aléatoire.

DRAM "Dynamic RAM" Il y a 2 types de RAM: SRAM "Static RAM":


Ne retiennent l'information que pendant un temps limité.
Il s’agit d’une mémoire dont chaque transistor couplé à un condensateur
donne l’information d’un bit ==> Conservent les données tant que le

1 information (1 bit) = 1 transistor. circuit est sous tension.


Etant donné que les condensateurs se déchargent, il faut constamment
1 information (1 bit) = 1 bascule.
les recharger (les rafraichir) à un cycle de rafraîchissement.

Écriture dans la mémoire : Pour mémoriser une information, Pour ces mémoires, pas besoin de

on commence par indiquer au circuit le numéro de la case rafraîchissement.


mémoire (point mémoire) qui nous intéresse,

ensuite on décharge la capacité du transistor correspondant, Lecture/écriture:

puis on la charge pour stocker un "1" sinon on la laisse telle quelle


pour stocker un « 0 ».
La lecture et l’écriture sont directes et se
Lecture dans la mémoire : Pour lire la valeur d’une information,
font donc plus rapidement.
On donne d’abord le numéro de la case mémoire (comme pour
l’écriture).

Ensuite, le principe électronique utilisé contraint le circuit à d’abord


décharger la capacité du transistor correspondant, ce qui permet de
savoir si cette capacité était chargée (1 en mémoire) ou déchargée (0).

Avant de recommencer toute opération, on doit remettre la case mémoire dans


l’état dans lequel elle était avant la lecture, et donc refaire un chargement de
capacité si le bit lu était un 1.
Mémoire vive

DRAM "Dynamic RAM": SRAM "Static RAM":

Avantages : Avantages:

Une intégration très importante ; dans un petit circuit de quelques


Ces mémoires sont très rapides, elles
mm2 les techniques utilisées peuvent rassembler plusieurs
ne font pas attendre le processeur.
millions de transistors.

Le temps d’accès est seulement de


De plus, ces circuits mémoires sont nettement moins chers que les autres.
quelques nanosecondes.

Inconvénients : Inconvénients :
La charge des capacités ne tient pas longtemps et il faut
donc "rafraîchir" très souvent la mémoire.
Elles sont plus volumineuses.
==> le temps d’accès à l’information (temps à attendre pour avoir
l’information) est relativement long et fait perdre du temps au Leur coût est très élevé.
micro-processeur.

Exemple de DRAM : Exemple de SRAM:

La mémoire centrale. La mémoire cache.


Voici un tableau comparatif des DRAM et SRAM:
5. La mémoire centrale
Mot mémoire
La mémoire centrale (MC) est une mémoire de type DRAM.
@0 mot0
La mémoire est divisée en emplacements de taille fixe "Mot mémoire" utilisés pour
stocker les informations « instructions et données ».
@1 mot1
@2 mot2
Un mot a une certaine longueur: généralement 8 bits ou 1 octet « Généralement la taille d’une information
caractère ». . .
. .
La capacité "taille" de la mémoire est le nombre d'emplacements mémoires. . .
. .
Dans une mémoire de taille N, on a N emplacements mémoires, repérés par un numéro
"0 à N-1" appelé adresse.
@n-1 motn-1
⇒ Taille mémoire = Nbre emplacement * Longueur mot mémoire

Deux méthodes de lecture/écriture des informations en mémoire :

Le little endian (Ex: Intel) Le big endian (Ex: Motorola)

Avec le Little Endian c’est le LSB de l’information qui est stocké en Avec le Big Endian le MSB d’une information est stocké
premier en mémoire « adresse inférieure ». en premier en mémoire « adresse inférieure ».

@i LSB @i MSB
MSB LSB
@i+1 MSB @i+1 LSB

Exemple: 123456AF
@0 AF @0 12
@1 56 @1 34
@2 34 @2 56
@3 12 @3 AF
La mémoire est caractérisée par sa taille (nombre de mots), son organisation (nombre de bits par mot) et sa capacité (nombre total de bits).

Exemple: Voici quelques unités de mesure de la capacité mémoire.

Module de mémoire SIMM (Single In line Memory Module),

Ce sont les groupes de boitiers de mémoires dynamiques montés sur un circuit imprimé rectangulaire allongé appelé barrette.
6. La mémoire cache (antémémoire)

C’est une mémoire de type SRAM.

Elle a pour fonction d’accélérer les communications entre un microprocesseur et un composant servant à stocker les données
(Généralement la mémoire centrale).

Elle permet en partie de palier à l'insuffisance de fourniture des informations par l'unité de stockage que le processeur peut en traiter.

Lorsque le microprocesseur a besoin d’une donnée, il regarde si elle est disponible dans la mémoire cache,

si ce n’est pas le cas, il va la chercher dans l’unité de stockage et en même temps la dépose dans la mémoire cache.

Ainsi la prochaine fois qu'il aura besoin de cette information, il y accédera directement par la mémoire cache et donc plus rapidement.

Les données mises en cache peuvent être par exemple un programme, un bloc d'image à traiter, …

La mémoire source des données peut être par exemple un disque dur, la mémoire centrale, …

Mémoire cache en cascade:

Une mémoire cache est une unité de stockage plus petite mais plus rapide qui s’interpose entre le microprocesseur et
l’unité de stockage.

Rien ne nous empêche de répéter cette opération et d’ajouter une autre mémoire cache, même une troisième, etc ...
On parle dans ce cas de niveaux de cache.
Cache de niveau 1 (ou cache Level1 ou cache L1)

Il est intégré au microprocesseur.

Sa taille est essentiellement fonction de l’architecture du microprocesseur:

AMD a toujours privilégié des caches L1 de grande tandis qu’Intel privilégie des caches L1 de petite taille
taille (64 Ko) pour le K6 et 128 Ko pour l’Athlon, (32 Ko) pour les Pentium II/III.

Il est scindé en deux parties de taille égale:

L’une stocke les instructions des programmes, l’autre les données des programmes.

Les autres caches ne font pas cette distinction.

Cache de niveau 2 (ou cache L2)

Il est intermédiaire entre le cache L1 et la mémoire RAM.

Il ne différencie pas données et programmes.

Il est moins rapide que le cache L1, mais sa taille est plus importante de 256 Ko à 2 Mo.

C’est un cache externe et a été monté à l'origine sur la carte mère à proximité du processeur. Le cache L2 est maintenant intégré au processeur.

Cache de niveau 3 (ou cache L3)

Sa taille varie de 1 Mo à 8 Mo (valeur généralement constatée mais il n’y a pas de limitation technique).
Si les mémoires cache permettent d'accroître les performances, c'est en partie grâce à deux principes qui ont été
découverts suite à des études sur le comportement des programmes informatiques :

1. Le principe de localité spatiale

qui indique que l'accès à une donnée située à une adresse X va probablement être suivi d'un accès à une zone très proche de X.

C'est évidemment vrai dans le cas d'instructions exécutées en séquence.

2. Le principe de localité temporelle

qui indique que l'accès à une zone mémoire à un instant donné a de fortes chances de se reproduire dans la suite immédiate du pgm.

C'est évidemment vrai dans le cas des boucles de quelques instructions seulement.

le plus petit élément de données qui peut être transféré entre la mémoire cache et la mémoire de niveau
Une ligne:
supérieur.

Un mot: le plus petit élément de données qui peut être transféré entre le processeur et la mémoire cache.
Fonctionnement

Le cache contient une copie des données originelles lorsqu'elles sont coûteuses (en termes de temps d'accès) à
récupérer ou à calculer par rapport au temps d'accès au cache.

Une fois les données stockées dans le cache, l'utilisation future de ces données peut être réalisée en accédant à la
copie en cache plutôt qu'en récupérant ou recalculant les données, ce qui abaisse le temps d'accès moyen.

Le processus fonctionne ainsi :

1. l’élément demandeur (microprocesseur) demande une information ;

2. le cache vérifie s'il possède cette information.

S'il la possède, il la retransmet à l'élément demandeur : on parle alors de succès de cache (cache hit en anglais).

S'il ne la possède pas, il la demande à l'élément fournisseur (mémoire principale par exemple) : on parle alors de
défaut de cache (cache miss) ;

3. l’élément fournisseur traite la demande et renvoie la réponse au cache ;

4. le cache la stocke pour utilisation ultérieure et la retransmet à l'élément demandeur au besoin.


Différents types de défauts de cache (miss):
Il existe trois types de défauts de cache en système monoprocesseur et quatre dans les environnements
multiprocesseurs. Il s'agit de :

ils correspondent à la première demande du processeur pour une donnée/instruction spécifique


les défauts de cache obligatoires :
et ne peuvent être évités ;

l'ensemble des données nécessaires au programme excèdent la taille du cache, qui ne peut
les défauts de cache capacitifs : donc pas contenir toutes les données nécessaires ;

les défauts de cache conflictuels : deux adresses distinctes de la mémoire de niveau supérieur sont enregistrées au même endroit
dans le cache et s'évincent mutuellement, créant ainsi des défauts de cache ;

Algorithmes de remplacement des lignes de cache

Lorsque le set de lignes de la mémoire cache, où une ligne de la mémoire supérieure peut être mappée, est rempli, il faut
désigner la ligne qui sera effacée au profit de la ligne nouvellement écrite.

La majorité des algorithmes reposent sur le principe de localité pour tenter de prévoir le futur à partir du passé.

Certains des algorithmes de remplacement des lignes de mémoire cache les plus répandus sont :

1. Aléatoires pour la simplicité de la création de l'algorithme ;

2. FIFO ( First In First Out) pour sa simplicité de conception ;

3. LRU ( Least Recently Used) qui mémorise la liste des derniers éléments accédés ...
Organisation externe des caches (Cache exclusif et inclusif)

Cache Inclusif

Lorsqu’une donnée part de la mémoire RAM vers le microprocesseur, elle passe d’abord par le cache L2 qui la stocke, ensuite
par le cache L1 qui la stocke aussi.

Parce qu’une donnée peut se situer à la fois dans le cache L1 et L2, il y a perte d’espace.

Formule du cache inclusif :


Espace cache disponible = Taille (L2+L1) - Taille L1 = Taille L2.

Cache Exclusif

La méthode exclusive résout la redondance d´informations que génère la méthode de gestion de cache inclusif.

La formule du cache exclusif est: Espace cache disponible = Taille L2 + Taille L1.

La supériorité de la méthode de cache exclusif sur le cache inclusif est de permettre au microprocesseur de disposer de plus
d’espace pour le cache.

Or qui dit plus de cache dit aussi que le microprocesseur a plus de chance de trouver une information qui lui est nécessaire dans
le cache et donc d’exécuter les programmes plus rapidement.

Cependant, pour qu’une même donnée ne se retrouve pas à la fois dans le cache L1 et L2, il faut comparer en permanence le
contenu des deux caches L1 et L2.
==> Cela prend du temps.

Au final, le cache exclusif est donc plus lent que le cache inclusif, et cela est d’autant plus vrai que le cache est grand.

Toutefois cette lenteur toute relative est rattrapée par l’absence de redondance d’informations entre L1 et L2.
Organisation interne des données dans une cache

Direct mapped

On affecte à chaque ligne de notre mémoire cache une zone de mémoire RAM fixe et de taille fixe.==>

Lorsque le microprocesseur cherche à savoir si une information dont il a besoin est dans le cache ou pas, il sait de
suite dans quelle ligne il doit chercher. Il y a une correspondance directe entre mémoire RAM et mémoire cache.

Si le microprocesseur doit travailler sur toute une zone mémoire correspondant à une ligne de mémoire
cache, alors seule une petite partie des données utilisées pourra être dans la mémoire cache.

Il est évident dans ce cas que le processeur fera beaucoup plus appel à la mémoire RAM qu’au cache.

N-way set associative

Cette méthode est une évolution de la méthode direct mapped.

Au lieu d’affecter une seule ligne de mémoire cache à une zone, on va en affecter plusieurs.

Le N de N-way set associative correspond au nombre de lignes utilisées pour une zone de mémoire RAM.

Avantage:
Diminuer les inconvénients du direct-mapped

Inconvénient:
Le processeur devra consulter non pas une ligne de cache mais N pour savoir si l’information
recherchée est dans le cache ou pas.
Fully associative

Cette méthode s’oppose au direct mapped en ce sens que n’importe quelle ligne de cache peut gérer n’importe quelle zone de la mémoire RAM.

On peut considérer la méthode n-way associative comme un compromis entre la fully associative et la direct mapped.

Avantage:

Elle assure un remplissage maximal de la mémoire cache.

Les deux autres méthodes citées, dans la mesure où leur ligne de cache couvre une zone
déterminée de la mémoire RAM, peuvent ne plus accepter de données dans le cache,
même s’il y a encore de la place.

Pour cela, il suffit que le microprocesseur travaille sur une seule zone de la mémoire RAM.

Inconvénient:

Comme on n’affecte pas de zone de mémoire RAM à une ligne de cache (direct mapped) ou à un groupe de ligne (n-way
associative), le microprocesseur n’a pas d’autres choix que de consulter toutes les lignes de cache pour savoir si l’information
qu’il cherche est dans la mémoire cache.

Elle est donc à écarter dès que la mémoire cache doit avoir une grande taille et donc un grand nombre de lignes,

ou qu’elle doit travailler à très grande vitesse comme le doit un cache L1 intégré au microprocesseur.
Algorithme de gestion du cache mémoire ( la lecture ou l’écriture des données par le microprocesseur)

La lecture:

Il n’y a qu’une seule technique, le microprocesseur demande à la mémoire cache une information, si elle ne la contient pas, il lit
directement la mémoire.

L’écriture: On a deux techniques: techniques write-through et write-back.

Write-through cache:

Toutes les écritures des données allant du microprocesseur à la mémoire se font aussi dans la mémoire cache.

Write-back cache :

Toutes les écritures se font dans la mémoire cache.

Les données ne sont écrites en mémoire RAM qu’au moment où celles-ci ne sont plus utilisées par le microprocesseur et
deviennent inutiles à conserver dans la mémoire cache.

Cette technique est la plus répandue car elle permet d'éviter de nombreuses écritures mémoires inutiles.

Vous aimerez peut-être aussi