Académique Documents
Professionnel Documents
Culture Documents
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.
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.
Écriture dans la mémoire : Pour mémoriser une information, Pour ces mémoires, pas besoin de
Avantages : Avantages:
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.
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).
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)
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, …
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)
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.
L’une stocke les instructions des programmes, l’autre les données des 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.
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 :
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.
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.
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) ;
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 ;
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 :
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.
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.
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:
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.
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 :
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.