« Fonctionnement d'un ordinateur/Les mémoires DRAM synchrones » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Ligne 72 :
|}
 
Ces timings influencent grandement la vitesse à laquelle on accède à une donnée dans la mémoire. Eh oui, car suivant la disposition des données dans la mémoire, l'accès peut être plus ou moins rapide. IlAvant existed'aller ainsiplus quelquesloin, possibilitésnous plusdevons ourappeler moinsque différentesles mémoires DRAM sont généralement des mémoires à tampon de ligne. C'est à dire que lors d'un accès mémoire, une ligne complète est chargée dans un registre, avant qu'onun vamultiplexeur accède à la colonne voulue. Le registre s'appelle le tampon de ligne (''row buffer'', vousen citeranglais).
[[File:Mémoire à row buffer. 02.png|centre|vignette|upright=2|Mémoire à tampon de ligne.]]
* Premier cas : la donnée que l'on cherche à lire est présente sur la même ligne que la donnée qui a été accédée avant elle. Cela se produit souvent lorsque l'on doit accéder à des données proches les unes des autres en mémoire. Dans ce cas, la ligne entière a été recopiée dans le tampon de ligne et on n'a pas à la sélectionner : on doit juste changer de colonne. Ce genre de situation s'appelle un ''Row Buffer Hit'', ou encore '''succès de tampon de ligne'''. Le temps nécessaire pour accéder à notre donnée est donc égal au temps nécessaire pour sélectionner une colonne (le tCAS auquel il faut ajouter le temps nécessaire entre deux sélections de deux colonnes différentes (le t-CAS-To-CAS).
 
* Second cas : on accède à une donnée située dans une ligne différente : c'est un ''Row Buffer Miss'', aussi appelé '''défaut de tampon de ligne'''. Et là, c'est une catastrophe ! Dans ce genre de cas, il faut en effet vider le tampon de ligne, qui contient la ligne précédente, en plus de sélectionner la ligne et la colonne. On doit donc ajouter le tRP au tRAS et au tCAS pour avoir le temps d'accès total à notre donnée.
Le point important est que quand une ligne est chargée dans le tampon de ligne, elle reste dans ce tampon durant plusieurs accès consécutif, avant qu'une nouvelle commande PRECHARGE réinitialise le tampon de ligne. Et les accès ultérieurs peuvent utiliser cette possibilité. Nous allons supposer qu'une ligne a été copiée dans le tampon de registre, lors d'un accès précédent. Deux cas sont alors possibles.
* Premier cas : la donnée que l'on cherche à lire/écrire est présente surdans la même ligne quechargée ladans donnéele quitampon ade étéregistre. accédéeCe avantgenre ellede situation s'appelle un '''succès de tampon de ligne'''. Cela se produit souvent lorsque l'on doit accéder à des données proches les unes des autres en mémoire. Dans ce cas, la ligne entière a été recopiée dans le tampon de ligne et on n'a pas à la sélectionner : on doit juste changer de colonne. Ce genre de situation s'appelle un ''Row Buffer Hit'', ou encore '''succès de tampon de ligne'''. Le temps nécessaire pour accéder à notre donnée est donc égal au temps nécessaire pour sélectionner une colonne (le tCAS), auquel il faut parfois ajouter le temps nécessaire entre deux sélections de deux colonnes différentes (le t-CAS-To-CAS).
* Second cas : on accède à une donnée située dans une ligne différente : c'est un ''Row Buffer Miss'', aussi appelé '''défaut de tampon de ligne'''. Et là, c'est une catastrophe ! Dans ce genre de cas, il faut en effet vider le tampon de ligne, quiavec contientune la lignecommande précédentePRECHARGE, en plus de sélectionner la ligne adéquate et la colonne. On doit donc ajouter le tRP au tRAS et au tCAS pour avoir le temps d'accès total à notre donnée.
 
Les délais/timings mémoire ne sont pas les mêmes suivant la barrette de mémoire que vous achetez. Certaines mémoires sont ainsi conçues pour avoir des timings assez bas et sont donc plus rapides, et surtout : beaucoup plus chères que les autres. Le gain en performances dépend beaucoup du processeur utilisé et est assez minime comparé au prix de ces barrettes. Les circuits de notre ordinateur chargés de communiquer avec la mémoire (ceux placés soit sur la carte mère, soit dans le processeur), doivent connaitre ces timings et ne pas se tromper : sans ça, l’ordinateur ne fonctionne pas.