Comment fonctionne l'accès aléatoire à la mémoire RAM?

10

Le disque dur fonctionne de manière partiellement séquentielle. Cependant, la RAM est connue pour l'accès à la mémoire aléatoire, permettant une vitesse d'accès à la mémoire égale pour chaque emplacement à chaque instant. Alors, qu'est-ce qui rend la RAM si spéciale? Comment fonctionne l'accès aléatoire à la mémoire? (Je sais que la DRAM n'est pas exactement un accès aléatoire et fonctionne en rafale. Je ne sais pas ce que cela signifie également.)

Dotcomio
la source

Réponses:

9

Les cellules de mémoire sont disposées dans une matrice

entrez la description de l'image ici

a3a0a0a1N

N

Il s'agit de la mémoire à accès aléatoire car tout bit est directement accessible, quelle que soit l'adresse. Et cela vaut pour la DRAM ainsi que la SRAM. La SRAM a besoin de plus de matériel pour stocker un bit (4 ou 6 FET) que la DRAM illustrée, qui n'a besoin que d'un FET par bit. Les données sont stockées dans les condensateurs. Les condensateurs ont des fuites et après un certain temps (très court!), Les données disparaîtront. C'est pourquoi la DRAM a besoin d'un rafraîchissement fréquent: les données sont continuellement lues et réécrites entre les accès. Cela ajoute du matériel supplémentaire à l'appareil, mais un dé DRAM est toujours beaucoup plus petit qu'un dé SRAM de même capacité.

stevenvh
la source
4

Une simple RAM peut être exprimée comme suit (à partir d'une note): -

entrez la description de l'image ici

Les RAM sont organisées en tableaux carrés de bits individuels. Il existe deux décodeurs, un décodeur de ligne et un décodeur de colonne, et chaque cellule de mémoire d'un bit n'est activée que lorsque sa ligne et ses lignes de colonne ne font qu'un. Dans le cas d'une RAM de 256 bits, chaque décodeur transforme un nombre binaire à quatre bits en un nombre unaire à seize bits. Ainsi, dans le tableau carré de cellules de mémoire à un bit, il n'y aura jamais qu'une seule cellule pour laquelle les lignes et les lignes de colonne ne font qu'une. Chaque cellule est connectée à la même ligne de lecture / écriture et à la même ligne de données. La ligne de données est connectée à l'extérieur via un tampon bidirectionnel à trois états, de telle sorte que si la puce n'est pas activée, aucune donnée ne peut entrer ou sortir.

Une donnée RAM statique en son cœur possède un circuit de verrouillage bistable (généralement quatre ou six transistors) pour stocker un seul bit tandis que la RAM dynamique utilise une méthode de stockage capacitive pour un seul bit (un seul transistor et un condensateur) .Ainsi, une DRAM est capable de la mémoire de manière plus dense qu'une SRAM. Étant donné que la mémoire capacitive est sujette à des fuites de DRAM, elle nécessite des taux de rafraîchissement plus élevés pour maintenir les informations binaires à l'intérieur des cellules de la mémoire.

entrez la description de l'image ici

péril cerveau
la source
4

D'autres réponses ont mesuré le fonctionnement interne de la RAM, mais elles n'ont pas encore mentionné comment elle s'intègre dans un système. Le type de RAM le plus simple à comprendre est une RAM asynchrone statique. Un tel dispositif a un certain nombre de broches d'adresse, un certain nombre de broches de données et certaines broches de contrôle qui ont ensemble trois états d'intérêt:

  1. État inactif, dans lequel les signaux sur les broches d'adresse et de données sont ignorés et les broches de données «flottent».
  2. État d'écriture, dans lequel l'appareil transfère en continu les signaux sur les broches de données (qui flottent) à l'emplacement de mémoire identifié par les broches d'adresse.
  3. État de lecture, dans lequel le périphérique s'efforce en permanence de piloter les broches de données avec la dernière valeur écrite à l'emplacement de mémoire identifié par les broches d'adresse.

Une puce de mémoire statique typique aura quelques contraintes de synchronisation, qui peuvent être efficacement modélisées en disant que les différentes entrées peuvent se comporter comme si elles avaient des retards différents (pas nécessairement constants). Une opération de lecture peut entraîner la sortie de valeurs arbitraires (ordures) brièvement sur les broches de données avant que la puce ne commence à produire des données correctes. Pour effectuer une opération d'écriture, il faut fournir à la puce une adresse valide un certain temps avant d'affirmer les signaux pour mettre la puce en mode "écriture", et il faut conserver les données correctes sur les broches de données pendant un certain temps après le retrait de la puce. du "mode d'écriture. Répondre à ces contraintes n'est généralement pas trop difficile, cependant. De nombreuses puces de mémoire ont un état supplémentaire qui peut être considéré comme" se préparer à lire ": la puce détermine en continu quelle valeur serait sortie sur le bus de données si on lui demandait de sortir l'emplacement mémoire adressé. Si la puce est ensuite invitée à sortir cet emplacement, elle pourra le fournir beaucoup plus rapidement que si elle devait démarrer "à partir de zéro".

Notez que même si une puce de mémoire statique typique sera câblée en interne en tant que grille de ligne / colonne (comme indiqué par d'autres réponses), et aura environ la moitié de ses broches d'adresse câblées pour contrôler la "ligne" et la moitié pour contrôler la "colonne", un La puce de mémoire dynamique typique utilise un jeu de broches d'adresse pour contrôler à la fois la ligne et la colonne. Pour accéder à la mémoire dynamique, il faut sélectionner une adresse de ligne puis affirmer une broche appelée / RAS (Row Address Select). Cela verrouillera à la fois une adresse de ligne et provoquera la lecture de cette ligne particulière d'emplacements de mémoire dans un tampon temporaire. On peut ensuite utiliser les broches d'adresse avec d'autres broches de contrôle pour accéder à ce tampon temporaire d'une manière similaire à une RAM statique. Une fois que l'on a terminé avec une ligne, on peut / RAS. Cela entraînera la recopie du contenu (éventuellement modifié) du tampon de ligne dans la ligne correspondante du tableau. Quelque temps après la libération de / RAS, la puce de mémoire sera prête à recevoir une autre adresse de ligne et à avoir / RAS réaffirmé.

Notez que le fait de lire une ligne de la matrice mémoire dans le tampon temporaire effacera cette ligne de la matrice mémoire. Par conséquent, même si l'on n'a apporté aucune modification au tampon de lignes, il serait toujours nécessaire de le réécrire dans le tableau de mémoire avant de pouvoir accéder à une autre ligne. Notez également que le temps requis pour accéder à une ligne, et le temps entre la fin d'une ligne et l'accès à une autre, sont beaucoup plus longs que le temps requis pour lire et écrire des données dans le tampon. Bien que de nombreux micro-ordinateurs plus anciens effectuent toujours la séquence entière "sélectionner la ligne; lire ou écrire l'octet; désélectionner la ligne" pour chaque accès à la mémoire, les ordinateurs plus rapides essaieront de faire autant que possible avec chaque opération de sélection de ligne (j'avoue une certaine curiosité pour savoir pourquoi les anciens ordinateurs ne t faire plus d'efforts à cet égard lors de l'accès à la mémoire pour des choses comme les mises à jour de l'affichage vidéo, car dans de nombreux cas, la mémoire vidéo aurait facilement pu être accédée par groupes de deux, quatre ou huit octets). En outre, les dispositifs de mémoire modernes comprennent des fonctionnalités permettant de chevaucher certaines opérations dans de nombreux cas (par exemple, la possibilité de réécrire un tampon de ligne dans la matrice de mémoire pendant la lecture d'une ligne différente).

supercat
la source