
Des registres aux mémoires
Une des limitations principales des registres vus dans le cours précédent est la complexité de chaque cellule. Lorsque l'on souhaite implémenter des milliers (Kilo-bit), millions (Méga-bit) ou milliards de points mémoires (Giga-bit), les cellules et les systèmes de contrôle doivent être les plus compacts possible pour limiter la taille des puces, donc leur coût. Il est par exemple possible d'acheter des cartes mémoire Flash de 32Go (soit 32 milliards d'octets soit 256 millards de bits) à faible coût et encombrement très réduit, comme cité en exemple ci dessous.
Une architecture spécifique a été imaginée pour regrouper le plus de cellules possible dans un espace donné, en étant performant autant pour l'écriture que la lecture de chaque cellule.
L'organisation matricielle de la mémoire
La figure ci-dessous illustre une organisation type des mémoires. Celles-ci sont le plus souvent organisées sous forme de matrices de points mémoire élémentaires (memory cell), chaque point pouvant stocker une information binaire, 0 ou 1. La matrice de points mémoire comporte aussi :
un décodeur de ligne, à gauche sur le schéma (Row Select),
un décodeur de colonne, en bas sur le schéma (Column Select),
un circuit de lecture (Read) / écriture (Write), mentionné en bas à droite de la figure.
Le décodeur de ligne sélectionne une ligne parmi 2N , grâce à un circuit démultiplexeur de N bits.
Le décodeur de colonne sélectionne une colonne sur 2M , grâce à un circuit démultiplexeur de M bits.
La matrice de mémoire est composée de 2N∗2M cellules mémoire de base adressables en ligne et en colonne. Une valeur typique pour N et M est 10, conduisant à 1024 lignes et 1024 colonnes, ce qui correspond à 1048576 cellules mémoire élémentaires (1 Mega-bit).
Concevez et simulez un circuit de décodage de ligne
Le circuit de sélection de ligne décode l'adresse Address[i] et active une seule ligne à la fois. Le circuit de sélection de ligne est basé sur un circuit démultiplexeur. Une ligne passe à 1, tandis que toutes les autres lignes restent à 0. Un exemple de circuit à base de deux fils d'adresse (permettant de coder des nombres de 0 à 3) est donné ci-dessous à gauche, et à base de 3 fils d'adresse (nombres de 0 à 7) à droite. On note l'utilisation de portes ET à n bits, où n est le nombre de bits d'adresse.
En rentrant l'adresse au clavier, le fil correspondant WL[i] passe à 1, tous les autres sont à 0.
Concevez le circuit de sélection de colonne
Le décodeur de colonne sélectionne une colonne particulière dans la matrice de mémoire pour lire le contenu de la cellule de mémoire sélectionnée (cycle de lecture) ou pour modifier son contenu (cycle d'écriture).
Le sélecteur de colonne est basé sur les mêmes principes que ceux du décodeur de ligne. La principale modification est que les données peuvent circuler verticalement dans les deux sens, soit de la cellule de mémoire au signal DataOut (cycle de lecture, transfert des données de haut en bas), soit du signal DataIn à la cellule (cycle d'écriture, transfert des données de bas en haut).
L'architecture proposée ici est basée sur des transistors MOS, qui fonctionnent ici comme des interrupteurs. Nous considérons ici 4 colonnes de cellules mémoire BL[0..3] et leur inverse ~BL[0..3], ce qui nécessite 2 signaux d'adresse Address_Col [0] et Address_Col [1], situées à gauche. En mode écriture, Write est à 1, ce qui active les inverseurs 3 états. La donnée DataIn circule vers la droite puis vers le haut, dans la colonne sélectionnée (ici BL[1]), tandis que la donnée inverse est appliquée sur ~BL[1]. Ces données atteignent et modifient la mémoire sélectionnée par le décodeur de ligne, dont le circuit a été vu juste avant.
En mode lecture, Write doit être remis à 0. Les inverseurs 3 états connectés à DataIn et ~DataIn sont alors désactivés, ce qui permet de lire les informations de la cellule mémoire qui transitent via BL[1] et ~BL[1] vers DataOut.
Dans ce chapitre, vous avez découvert l'organisation générale d'une mémoire comprenant l'organisation matricielle, le point mémoire, les circuits de sélection des lignes et des colonnes.
Dans le chapitre suivant, vous apprendrez qu'il existe différents types de mémoire liés à la structure de leur point mémoire élémentaire.