Mémoire vive statique

Une SRAM de 1999.

La mémoire vive statique (ou SRAM de l'anglais Static Random Access Memory) est un type de mémoire vive utilisant des bascules pour mémoriser les données. Mais contrairement à la mémoire dynamique, elle n'a pas besoin de rafraîchir périodiquement son contenu. Comme la mémoire dynamique, elle est volatile : elle ne peut se passer d'alimentation sous peine de voir les informations effacées irrémédiablement.

Description

La mémoire statique est plus onéreuse et moins dense[1], mais beaucoup moins énergivore et plus rapide que la mémoire dynamique (6 à 25 ns de temps d'accès contre 60 à 120)[2]. Elle est donc réservée aux applications qui requièrent soit des temps d'accès courts, soit une faible consommation. Ainsi, on la rencontre dans les mémoires cache et les tampons, ainsi que dans les applications embarquées. Elle figure également parmi les composants haut de gamme de certains PC qui ont besoin de charger une grande quantité de données dans certains programmes.

Les premières générations de types de mémoires, qui utilisaient la technologie bipolaire très grande consommatrice d'électricité, ont été remplacées par des modèles utilisant la technologie CMOS, beaucoup plus sobre, ouvrant la porte à des systèmes de sauvegarde à piles permettant à ce type de mémoire de s'affranchir d'une alimentation permanente.

Conception

Une cellule SRAM CMOS à six transistors. WL : ligne de mots. BL et BL : lignes de bits.

Une cellule SRAM typique est composée de six MOSFET et est souvent appelée cellule SRAM 6T. Chaque bit de la cellule est stocké sur quatre transistors (M1, M2, M3, M4) qui forment deux inverseurs à couplage croisé. Cette cellule de stockage a deux états stables qui sont utilisés pour mémoriser 0 et 1. Deux transistors d’accès supplémentaires servent à contrôler l’accès à une cellule de stockage pendant les opérations de lecture et d’écriture. La SRAM 6T est le type de SRAM le plus courant[3]. En plus de la SRAM 6T, d’autres types de SRAM utilisent 4, 5, 7, 8, 9, 10 (4T, 5T, 7T, 8T, 9T, 10T) transistors ou plus par bit. La SRAM à quatre transistors est assez courante dans les dispositifs SRAM autonomes (par opposition à la SRAM utilisée pour les caches CPU), implémentée dans des procédés spéciaux avec une couche supplémentaire de polysilicium, permettant de fabriquer des résistances de tirage (pull-up) à très haute résistance[4]. Le principal inconvénient de l’utilisation de la SRAM 4T est l’augmentation de la puissance statique due au flux de courant constant à travers l’un des transistors de rappel (pull-down) (M1 ou M2).

La SRAM à quatre transistors offre des avantages en termes de densité au prix de la complexité de fabrication. Les résistances de tirage R doivent avoir de petites dimensions et des valeurs élevées.

Ceci est parfois utilisé pour implémenter plus d’un port (lecture et/ou écriture), ce qui peut être utile dans certains types de mémoire vidéo et de bancs de registres implémentés avec des circuits SRAM à plusieurs ports.

En général, moins il faut de transistors par cellule, plus chaque cellule peut être petite. Étant donné que le coût de traitement d’une plaquette de silicium est relativement fixe, l’utilisation de cellules plus petites et donc le placement de plus de bits sur une seule plaquette réduisent le coût par bit de mémoire.

Des cellules de mémoire qui utilisent moins de quatre transistors sont possibles ; cependant, ces cellules 3T[5],[6] ou 1T sont de la DRAM, et non de la SRAM (même la soi-disant 1T-SRAM).

L’accès à la cellule est rendu possible par la ligne de mots (WL sur la figure) qui contrôle les deux transistors d’accès M5 et M6 qui, à leur tour, contrôlent si la cellule doit être connectée aux lignes de bits : BL et BL. Ils sont utilisés pour transférer des données pour les opérations de lecture et d’écriture. Bien qu’il ne soit pas strictement nécessaire d’avoir deux lignes de bits, le signal et son inverse sont généralement fournis afin d’améliorer les marges de bruit et la vitesse.

Lors des accès en lecture, les lignes de bits sont activement pilotées vers le haut et vers le bas par les inverseurs de la cellule SRAM. Cela améliore la bande passante des SRAM par rapport aux DRAM - dans une DRAM, la ligne de bits est connectée à des condensateurs de stockage et le partage de charge fait basculer la ligne de bits vers le haut ou vers le bas. La structure symétrique des SRAM permet également une signalisation différentielle, ce qui rend les petites variations de tension plus facilement détectables. Une autre différence avec la DRAM qui contribue à rendre la SRAM plus rapide est que les puces commerciales acceptent tous les bits d’adresse à la fois. En comparaison, les DRAM de base ont l’adresse multiplexée en deux moitiés, c’est-à-dire les bits les plus élevés suivis de bits plus bas, sur les mêmes broches du boîtier afin de réduire leur taille et leur coût.

La taille d’une SRAM avec m lignes d’adresse et n lignes de données est de 2m mots, ou 2m × n bits. La taille de mot la plus courante est de 8 bits, ce qui signifie qu’un seul octet peut être lu ou écrit pour chacun des 2m mots différents de la puce SRAM. Plusieurs puces SRAM courantes ont 11 lignes d’adresse (donc une capacité de 211 = 2 048 = 2k mots) et un mot de 8 bits, elles sont donc appelées « 2k × 8 SRAM ».

Les dimensions d’une cellule SRAM sur un circuit intégré sont déterminées par la taille minimale des caractéristiques du procédé utilisé pour fabriquer le circuit intégré.

Fonctionnement

Une cellule SRAM a trois états :

  • Veille : Le circuit est inactif.
  • Lecture : Lecture des données.
  • Écriture : Mise à jour des données.

La SRAM fonctionnant en mode lecture et écriture doit avoir respectivement une bonne « lisibilité » et une bonne « stabilité en écriture ». Les trois états différents fonctionnent comme suit :

Veille

Si la ligne de mot n’est pas activée, les transistors d’accès M5 et M6 déconnectent la cellule des lignes de bits. Les deux inverseurs croisés formés par M1 – M4 continueront à se renforcer mutuellement tant qu’ils seront connectés à l’alimentation.

Lecture

En théorie, la lecture ne nécessite que l’activation de la ligne de mot WL et la lecture de l’état de la cellule SRAM par un seul transistor d’accès et une seule ligne de bits, par exemple M6 et BL. Cependant, les lignes de bits sont relativement longues et ont une grande capacité parasite. Pour accélérer la lecture, un processus plus complexe est utilisé dans la pratique : le cycle de lecture est démarré en préchargeant les deux lignes de bits BL et BL, à une tension élevée (logique 1). Ensuite, l’activation de la ligne de mot WL active les transistors d’accès M5 et M6, ce qui entraîne une légère baisse de tension de la ligne de bit BL. Ensuite, les lignes de bits BL et BL auront une petite différence de tension entre elles. Un amplificateur de détection détectera quelle ligne de bit a la tension la plus élevée et déterminera ainsi s’il y a eu 1 ou 0 stocké. Plus la sensibilité de l’amplificateur de détection est élevée, plus l’opération de lecture est rapide. Comme le transistor NMOS est plus puissant, le pull-down est plus facile. Par conséquent, les lignes de bits sont traditionnellement préchargées à la tension haute. De nombreux chercheurs essaient également de précharger à une tension légèrement basse pour réduire la consommation d’énergie[7],[8].

Écriture

Le cycle d’écriture commence par l’application de la valeur à écrire aux lignes de bits. Pour écrire un 0, un 0 est appliqué aux lignes de bits, par exemple en définissant BL sur 1 et BL sur 0. Cela revient à appliquer une impulsion de réinitialisation à un verrou SR, ce qui provoque le changement d’état de la bascule. Un 1 s’écrit en inversant les valeurs des lignes de bits. WL est ensuite activé et la valeur à stocker est verrouillée. Cela fonctionne parce que les pilotes d’entrée de ligne de bits sont conçus pour être beaucoup plus puissants que les transistors relativement faibles de la cellule elle-même, de sorte qu’ils peuvent facilement remplacer l’état précédent des inverseurs à couplage croisé. En pratique, les transistors NMOS d’accès M5 et M6 doivent être plus puissants que les transistors NMOS inférieurs (M1, M3) ou les transistors PMOS supérieurs (M2, M4). Ceci est facilement obtenu car les transistors PMOS sont beaucoup plus faibles que les NMOS lorsqu’ils sont de même taille. Par conséquent, lorsque la tension d'une paire de transistors (par exemple M3 et M4) n’est que légèrement modifiée par le processus d’écriture, la tension de grille de la paire de transistors opposée (M1 et M2) est également modifiée. Cela signifie que les transistors M1 et M2 peuvent être plus facilement modifiés, et ainsi de suite. Ainsi, les inverseurs couplés amplifient le processus d’écriture.

Comportement du bus

La RAM avec un temps d’accès de 70 ns produira des données valides dans les 70 ns à partir du moment où les lignes d’adresse sont valides. Certaines cellules SRAM disposent d’un « mode page », où les mots d’une page (256, 512 ou 1024 mots) peuvent être lus séquentiellement avec un temps d’accès nettement plus court (généralement environ 30 ns). La page est sélectionnée en définissant les lignes d’adresse supérieures, puis les mots sont lus séquentiellement en parcourant les lignes d’adresse inférieures.

Défis de fabrication

Avec l’introduction de l’implémentation du transistor FinFET dans les cellules SRAM, celles-ci ont commencé à souffrir d’inefficacités croissantes dans la taille des cellules. Au cours des 30 dernières années (de 1987 à 2017), avec une taille de transistor (taille de nœud) en constante diminution, la réduction de l’empreinte de la topologie des cellules SRAM elle-même a ralenti, ce qui rend plus difficile la densification des cellules[9].

Outre les problèmes de taille, la fuite de courant statique constitue un défi important des cellules SRAM modernes. Le courant, qui circule à partir de l’alimentation positive (Vdd), à travers la cellule et vers la masse, augmente de façon exponentielle lorsque la température de la cellule augmente. La consommation d’énergie de la cellule se produit à la fois à l'état actif et en mode veille, gaspillant ainsi de l’énergie utile sans qu’aucun travail utile n’ait été effectué. Même si, au cours des 20 dernières années, le problème a été partiellement résolu par la technique de tension de rétention de données (DRV) avec des taux de réduction allant de 5 à 10, la diminution de la taille des nœuds a fait chuter les taux de réduction à environ 2[9].

Avec ces deux problèmes, il est devenu plus difficile de développer des mémoires SRAM denses et économes en énergie, ce qui a incité l’industrie des semi-conducteurs à rechercher des alternatives telles que la STT-MRAM et la FRAM[9],[10].

Notes et références

  1. Scott Mueller, Le PC : Architecture, maintenance et mise à niveau, Pearson Education France, (lire en ligne)
  2. Chapitre 4 : Mémoires, sur le site univ-angers.fr, consulté le 5 septembre 2015
  3. (en) Neetu Rathi, Anil Kumar, Neeraj Gupta et Sanjay Kumar Singh, 2023 IEEE Devices for Integrated Circuit (DevIC), , 455–459 p. (ISBN 979-8-3503-4726-5, DOI 10.1109/DevIC57758.2023.10134887, S2CID 258984439), « A Review of Low-Power Static Random Access Memory (SRAM) Designs »
  4. (en) Ronald P. Preston, The Design of High Performance Microprocessor Circuits - Archivé depuis l'original, IEEE Press, (lire en ligne [PDF]), « 14: Register Files and Caches », p. 290
  5. (en)United States Patent 6975531: 6F2 3-transistor DRAM gain cell
  6. (en)3T-iRAM(r) Technology
  7. (en) Hussain Mohammed Dipu Kabir et Mansun Chan, « SRAM precharge system for reducing write power », HKIE Transactions, vol. 22, no 1,‎ , p. 1–8 (DOI 10.1080/1023697X.2014.970761, S2CID 108574841, lire en ligne)
  8. (en) « CiteSeerX », sur CiteSeerX (CiteSeerx 10.1.1.119.3735)
  9. a b et c (en) Andrew Walker, « The Trouble with SRAM », EE Times, (consulté le )
  10. (en) Andrew Walker, « The Race is On », EE Times, (consulté le )

Voir aussi

Articles connexes