Communication entre le CPU et la RAM, comment se produit-elle?

Si vous vous êtes déjà demandé quel est le processus suivi par un processeur et le RAM qu'il a assigné pour obtenir les données et les instructions qu'il doit exécuter alors vous avez de la chance, car dans cet article nous allons expliquer ce que ce processus de communication entre quels sont les deux éléments les plus importants d'un PC communiquent avec chacun autre.

Dans cet article nous n'allons pas expliquer quel type de RAM est meilleur or les spécifications de chacun , mais un processeur communique avec lui pour pouvoir exécuter les programmes.

Communication entre la CPU et la RAM

La raison pour laquelle nous utilisons de la mémoire externe C'est parce que la quantité de transistors nécessaire pour stocker les informations ne rentrerait pas dans l'espace d'un processeur , c'est pourquoi il est nécessaire d'utiliser des mémoires RAM externes au processeur pour stocker les instructions et les données qu'elles vont exécuter.

Pourquoi un processeur a-t-il besoin de communiquer avec la RAM?

Récupérer le processus

L'étape dans laquelle le Processeur prend l'instruction suivante à exécuter depuis la RAM s'appelle «Fetch» ​​et est l'une des trois étapes qui composent un cycle d'instructions: Fetch-Decode-Execute, dont nous ne parlerons que dans cet article du premier, tandis que l'autre il en restera deux pour une autre fois car la mémoire RAM n'intervient pas en eux, sauf pour réécrire le résultat.

Chaque processeur a une série de registres connectés les uns aux autres qui servent à capturer l'instruction suivante, ce sont les suivants:

  1. Compteur de programme: Le PC pointe vers la ligne mémoire suivante où se trouve la prochaine instruction du processeur. Sa valeur est incrémentée de 1 à chaque fois qu'un cycle d'instructions complet est terminé ou lorsqu'une instruction de saut change la valeur du compteur de programme.
  2. Registre d'adresse mémoire: Le MAR copie le contenu du PC et l'envoie à la RAM via les broches d'adresse du CPU, qui sont câblées avec les broches d'adresse de la RAM.
  3. Registre des données de mémoire : Si l'instruction est lue, alors la RAM transmettra via son bus de données le contenu de l'adresse mémoire vers laquelle pointait le MAR.
  4. Registre d'instructions: L'instruction est copiée dans le registre d'instructions, d'où l'unité de contrôle va la déchiffrer pour savoir comment exécuter l'instruction.

Qu'est-ce que la mémoire DRAM?

bitcellule

Les type de mémoire utilisée pour la RAM , à la fois en tant que RAM système et RAM vidéo ou VRAM, est Mémoire DRAM ou 1T-DRAM . Dans ce type de mémoire, chaque bit est stocké dans le combinaison d'un condensateur et d'un transistor , au lieu de dans plusieurs transistors comme SRAM, d'où le nom 1T-DRAM.

Toutes les mémoires RAM actuellement utilisées dans le PC: DDR4, GDDR6, HBM2e, LPDDR4, etc. Ce sont des mémoires de type DRAM, tandis que les mémoires internes des processeurs, caches de registres et scratchpads, sont de type SRAM.

Ladite combinaison d'un condensateur et d'un transistor est appelée un bitcellule , lorsque le condensateur de la cellule de bit est chargé, alors il est interprété que l'information contenue dans cette cellule de bit est un 1, quand il n'est pas chargé, alors il est interprété comme un 0.

Matrice DRAM

Les bitcells sont organisés dans une matrice où les broches d'adressage sont utilisées pour y accéder comme suit:

  • La première moitié des bits sélectionne la ligne à laquelle nous voulons accéder
  • La seconde moitié des bits d'adressage contient la colonne à laquelle nous voulons accéder,

Pour cela, il existe un décodeur binaire entre la matrice de bitcells et le bus d'adressage qui permet de sélectionner la bitcell appropriée.

Les broches de contact pour la communication avec la RAM

mémoire RAM modulo

Pour accéder à la RAM, le CPU utilise une série de broches qui lui permettent d'accéder au contenu du RAM et même le modifier . Pour ce faire, vous devez d'abord localiser où se trouvent les données ou où nous voulons les manipuler, puis les transmettre dans une direction spécifique. Deux types de broches différents sont utilisés pour cela.

  • Adressage broches : Normalement marqué de A0 à AN, où N est le nombre de broches et est égal au nombre de bits d'adressage, qui est toujours 2 ^ N.
  • Broches de données : C'est là que les données sont transmises vers et depuis la RAM.
  • Activer l'écriture: Si la broche est active, le transfert de données se fait vers la mémoire, en écriture, par contre, s'il n'est pas actif, il se fait vers le processeur, en lecture.

Si notre système a plusieurs puces de mémoire RAM, les premiers bits de l'adressage sont utilisés pour sélectionner les puces de mémoire auxquelles nous voulons accéder dans le module de mémoire DIMM. Il y a également eu des cas où l'adresse et les broches de données sont les mêmes. Cela est dû au fait que l'adressage et l'accès aux données ne se font pas simultanément.

Mais pour comprendre comment l'adressage fonctionne plus précisément, nous devons passer en revue un élément électronique de base, le décodeur binaire.

Le décodeur binaire et son rôle dans la communication avec la RAM

Décodificateur Binario Le décodeur binaire est une pièce électronique très courante, il consiste en ce qu'à partir d'une entrée de n bits une entrée est sélectionnée parmi 2 ^ n possibilités différentes. Il est construit en plaçant n portes NON sur 2 ^ n portes ET.

En mémoire RAM, l'adressage est transmis en deux cycles: d'abord la ligne à accéder est envoyée puis la colonne, au lieu de simultanément.

La raison en est une explication très simple: imaginez que vous ayez un processeur avec 16 bits d'adressage connectés à une seule puce de mémoire RAM. Si le décodeur binaire était de 16 bits, 16 portes NOT et 65536 portes ET seraient nécessaires. En revanche, un décodeur binaire 8 bits a 8 portes NOT et 256 portes ET, beaucoup plus faciles à implémenter.

C'est la raison pour laquelle l'adressage vers la RAM se fait en deux étapes.

Les banques de mémoire

Banques Memoria

Les données en RAM sont non stocké successivement , mais dans différentes banques au sein de la même puce, chacune des banques contient un tableau de bitcells , mais si nous voulons transmettre par exemple n bits de données, nous aurons besoin de n tableaux de cellules binaires où chacun d'eux est connecté à une broche du bus de données.

L'utilisation de plusieurs banques , dans la même puce mémoire, permet de sélectionner plusieurs bits en même temps avec un seul accès à la mémoire , Depuis toutes les banques partagent l'adressage . Donc, si nous avons 8 banques de mémoire, la sélection d'une cellule de bit spécifique finira par provoquer la transmission des données vers et depuis les 8 banques de mémoire en même temps.

La taille standard des banques dans les mémoires RAM est de 8 bits, donc la mémoire maximale en adressage est toujours comptée comme 2 ^ n octets. En fait, les bus 16, 32, 64 bits, etc. Ils transmettent les données de plusieurs adresses mémoire successives à partir de la première.

Communication entre RAM et CPU

Circuit imprimé Pistas

La communication entre le CPU et la RAM dépend de son exécution correcte, c'est-à-dire que les données correctes sont envoyées, dans le bon sens et dans la bonne banque de mémoire. Par conséquent, toute la mémoire RAM a une fenêtre d'opportunité, qui est le temps pendant lequel les différentes opérations peuvent être effectuées, celles-ci doivent être effectuées à des moments précis et en suivant ce processus:

  1. Sélectionnez la colonne (Adressage)
  2. Sélectionnez la ligne (adressage)
  3. Transmission de données.

Pour cela, une série de broches spéciales sont utilisées, l'une d'entre elles que nous avons déjà vue et c'est Write Enable mais les deux autres sont les suivantes:

  • Stroboscope d'accès à la colonne: Cette broche est activée lorsque nous indiquons à la mémoire RAM que nous indiquons la colonne à laquelle nous voulons accéder.
  • Stroboscope d'accès aux lignes :: Cette broche est activée lorsque nous indiquons à la mémoire RAM que nous indiquons la ligne à laquelle nous voulons accéder.

Les deux opérations peuvent être résumées comme suit:

  • L'opération de lecture est très simple, pour cela il faut avoir la broche WE inactive, pour indiquer que les données vont de la RAM vers le processeur, indiquer la ligne puis la colonne pour que l'information circule vers le processeur depuis la mémoire RAM .
  • L'opération d'écriture est quelque peu différente, pour cela la broche WE doit être active, mais les données ne sont pas transmises après la sélection de la colonne de données mais une fois que la ligne a été sélectionnée et simultanément avec la sélection de la colonne où se trouvent les données.

Avec cela, vous pouvez déjà avoir une idée approximative du fonctionnement de la communication entre un processeur et sa RAM.