
La mémoire vive statique ( RAM statique ou SRAM ) est un type de mémoire vive (RAM) qui utilise un circuit de verrouillage (bascule) pour stocker chaque bit. La SRAM est une mémoire volatile ; les données sont perdues lorsque l'alimentation est coupée.
Le qualificatif statique différencie la SRAM de la mémoire vive dynamique (DRAM) :
- La SRAM conserve ses données de manière permanente en présence d'alimentation, tandis que les données de la DRAM se dégradent en quelques secondes et doivent donc être périodiquement actualisées .
- La SRAM est plus rapide que la DRAM mais elle est plus chère en termes de surface de silicium et de coût.
- En règle générale, la SRAM est utilisée pour le cache et les registres internes d'un processeur tandis que la DRAM est utilisée pour la mémoire principale d'un ordinateur .
Histoire
La SRAM bipolaire à semi-conducteur a été inventée en 1963 par Robert Norman chez Fairchild Semiconductor . métal-oxyde-semi-conducteur (MOS-SRAM) a été inventée en 1964 par John Schmidt chez Fairchild Semiconductor. Il s'agissait d'une SRAM MOS à canal p de 64 bits.
La SRAM a été le principal moteur de tout nouveau processus de fabrication basé sur la technologie CMOS depuis les années 1960, lorsque le CMOS a été inventé.
En 1964, Arnold Farber et Eugene Schlig, travaillant pour IBM, ont créé une cellule mémoire câblée, utilisant une grille de transistor et un verrou à diode tunnel . Ils ont remplacé le verrou par deux transistors et deux résistances , une configuration qui est devenue connue sous le nom de cellule Farber-Schlig. Cette année-là, ils ont soumis une divulgation d'invention, mais elle a été initialement rejetée. En 1965, Benjamin Agusta et son équipe chez IBM ont créé une puce mémoire en silicium 16 bits basée sur la cellule Farber-Schlig, avec 84 transistors, 64 résistances et 4 diodes.
En avril 1969, Intel Inc. a présenté son premier produit, l'Intel 3101, une puce de mémoire SRAM destinée à remplacer les volumineux modules de mémoire à noyau magnétique ; sa capacité était de 64 bits (dans les premières versions, seuls 63 bits étaient utilisables en raison d'un bug) et était basée sur des transistors à jonction bipolaire . Elle a été conçue en utilisant du rubylith .
Caractéristiques
Bien qu'elle puisse être caractérisée comme une mémoire volatile , la SRAM présente une rémanence des données .
La SRAM offre un modèle d'accès aux données simple et ne nécessite pas de circuit de rafraîchissement. Les performances et la fiabilité sont bonnes et la consommation d'énergie est faible au repos.
Étant donné que la SRAM nécessite plus de transistors par bit pour être implémentée, elle est moins dense et plus chère que la DRAM et consomme également plus d'énergie lors des accès en lecture ou en écriture. La consommation d'énergie de la SRAM varie considérablement en fonction de la fréquence à laquelle elle est consultée.
Applications


Utilisation intégrée
De nombreuses catégories de sous-systèmes industriels et scientifiques, d'électronique automobile et de systèmes embarqués similaires contiennent de la SRAM qui, dans ce contexte, peut être appelée ESRAM . Une certaine quantité (kilo-octets ou moins) est également intégrée dans pratiquement tous les appareils, jouets, etc. modernes qui implémentent une interface utilisateur électronique.
La SRAM sous sa forme à double port est parfois utilisée pour les circuits de traitement de signaux numériques en temps réel .
Dans les ordinateurs
La SRAM est également utilisée dans les ordinateurs personnels, les postes de travail, les routeurs et les équipements périphériques : fichiers de registres du processeur , caches internes du processeur , caches internes du GPU et caches SRAM externes en mode rafale , tampons de disque dur , tampons de routeur , etc. Les écrans LCD et les imprimantes utilisent également normalement la SRAM pour conserver l'image affichée (ou à imprimer). Les écrans LCD peuvent avoir de la SRAM dans leurs contrôleurs LCD. La SRAM était utilisée pour la mémoire principale de nombreux premiers ordinateurs personnels tels que le ZX80 , le TRS-80 modèle 100 et le VIC-20 .
Certaines des premières cartes mémoire de la fin des années 1980 au début des années 1990 utilisaient la SRAM comme support de stockage, ce qui nécessitait une batterie au lithium pour conserver le contenu de la SRAM.
Intégré sur puce
La SRAM peut être intégrée sur la puce pour :
- la RAM dans les microcontrôleurs (généralement d'environ 32 octets à un mégaoctet ),
- les caches intégrés dans les processeurs plus puissants, tels que la famille x86 , et bien d'autres (de 8 Ko à plusieurs mégaoctets),
- les registres et les parties des machines à états utilisées dans certains microprocesseurs (voir fichier registres ),
- mémoire bloc-notes ,
- circuits intégrés spécifiques à une application (ASIC) (généralement de l'ordre de quelques kilo-octets),
- et dans les réseaux de portes programmables sur site (FPGA) et les dispositifs logiques programmables complexes (CPLD).
Les amateurs
Les amateurs, en particulier les passionnés de processeurs faits maison, préfèrent souvent la SRAM en raison de la facilité d'interfaçage. Elle est beaucoup plus facile à utiliser que la DRAM car il n'y a pas de cycles de rafraîchissement et les bus d'adresse et de données sont souvent directement accessibles. En plus des bus et des connexions d'alimentation, la SRAM ne nécessite généralement que trois commandes : Chip Enable (CE), Write Enable (WE) et Output Enable (OE). Dans la SRAM synchrone, l'horloge (CLK) est également incluse.
Types de SRAM
SRAM non volatile
La SRAM non volatile (nvSRAM) possède une fonctionnalité SRAM standard, mais elle enregistre les données lorsque l'alimentation électrique est perdue, garantissant ainsi la préservation des informations critiques. Les nvSRAM sont utilisées dans un large éventail de situations - réseau, aérospatiale et médicale, entre autres - où la préservation des données est essentielle et où les batteries sont peu pratiques.
RAM pseudostatique
La RAM pseudostatique (PSRAM) est une DRAM combinée à un circuit d'auto-rafraîchissement. Elle apparaît extérieurement comme une SRAM plus lente, bien qu'avec un avantage de densité et de coût par rapport à la vraie SRAM, et sans la complexité d'accès de la DRAM.
Par type de transistor
- Transistor à jonction bipolaire (utilisé dans TTL et ECL ) – très rapide mais avec une consommation d'énergie élevée
- MOSFET (utilisé dans le CMOS ) – faible consommation
Par système numérique
- Binaire
- Ternaire
Par fonction
- Asynchrone – indépendant de la fréquence d'horloge ; les données entrantes et sortantes sont contrôlées par la transition d'adresse. Les exemples incluent les puces omniprésentes à 28 broches 8K × 8 et 32K × 8 (souvent mais pas toujours nommées respectivement 6264 et 62C256), ainsi que des produits similaires jusqu'à 16 Mbit par puce.
- Synchrone – tous les timings sont initiés par les fronts d'horloge. L'adresse, les données entrantes et les autres signaux de contrôle sont associés aux signaux d'horloge.
Dans les années 1990, la SRAM asynchrone était utilisée pour un temps d'accès rapide. La SRAM asynchrone était utilisée comme mémoire principale pour les petits processeurs embarqués sans cache utilisés dans tout, de l'électronique industrielle et des systèmes de mesure aux disques durs et aux équipements de réseau, entre autres applications. De nos jours, la SRAM synchrone (par exemple la DDR SRAM) est plutôt utilisée de la même manière que la DRAM synchrone - la mémoire DDR SDRAM est plutôt utilisée que la DRAM asynchrone . L'interface mémoire synchrone est beaucoup plus rapide car le temps d'accès peut être considérablement réduit en utilisant une architecture pipeline . De plus, comme la DRAM est beaucoup moins chère que la SRAM, la SRAM est souvent remplacée par la DRAM, en particulier dans le cas où un volume de données important est requis. La mémoire SRAM est cependant beaucoup plus rapide pour l'accès aléatoire (pas en bloc / en rafale). Par conséquent, la mémoire SRAM est principalement utilisée pour le cache du processeur , la petite mémoire sur puce, les FIFO ou d'autres petits tampons.
Par fonctionnalité
- Zero bus turnaround (ZBT) – le turnaround est le nombre de cycles d'horloge nécessaires pour changer l'accès à la SRAM de l'écriture à la lecture et vice versa. Le turnaround pour les SRAM ZBT ou la latence entre le cycle de lecture et d'écriture est nul.
- syncBurst (syncBurst SRAM ou synchronous-burst SRAM) – offre un accès en écriture synchrone en rafale à la SRAM pour augmenter les opérations d'écriture sur la SRAM.
- DDR SRAM – synchrone, port de lecture/écriture unique, double débit de données E/S.
- SRAM à débit de données quadruple – ports de lecture et d'écriture synchrones et séparés, E/S à débit de données quadruple.
Conception

Une cellule SRAM typique est constitué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 possède deux états stables qui sont utilisés pour désigner 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. En plus de la SRAM 6T, d'autres types de SRAM utilisent 4, 5, 7, 8, 9, 10 (SRAM 4T, 5T, 7T 8T, 9T, 10T) ou plus de transistors 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 processus spéciaux avec une couche supplémentaire de polysilicium , permettant des résistances de rappel à très haute résistance. Le principal inconvénient de l'utilisation de SRAM 4T est l'augmentation de la puissance statique due au flux de courant constant à travers l'un des transistors de rappel (M1 ou M2).

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 fichiers de registre implémentés avec des circuits SRAM multiports.
En règle générale, moins il y a de transistors nécessaires par cellule, plus la taille de chaque cellule peut être réduite. Le coût de traitement d'une plaquette de silicium étant relativement fixe, l'utilisation de cellules plus petites et donc le fait de regrouper plus de bits sur une plaquette réduisent le coût par bit de la mémoire.
Des cellules mémoire utilisant moins de quatre transistors sont possibles ; cependant, de telles cellules 3T ou 1T sont des DRAM, pas des SRAM (même les 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 M 5 et M 6 dans la figure SRAM 6T (ou M 3 et M 4 dans la figure SRAM 4T) qui, à leur tour, contrôlent si la cellule doit être connectée aux lignes de bits : BL et BL. Elles sont utilisées 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 de la SRAM par rapport aux DRAM. Dans une DRAM, la ligne de bits est connectée à des condensateurs de stockage et le partage de charge provoque une oscillation de 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 standard ont l'adresse multiplexée en deux moitiés, c'est-à-dire les bits supérieurs suivis des bits inférieurs, sur les mêmes broches de 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 2 m mots, soit 2 m × 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 dans chacun des 2 m mots différents de la puce SRAM. Plusieurs puces SRAM courantes ont 11 lignes d'adresse (donc une capacité de 2 11 = 2 048 = 2 k mots) et un mot de 8 bits, elles sont donc appelées SRAM 2k × 8 .
Les dimensions d'une cellule SRAM sur un circuit intégré sont déterminées par la taille minimale des caractéristiques du processus utilisé pour fabriquer le circuit intégré.
Fonctionnement de la mémoire SRAM
Une cellule SRAM possède trois états :
- Veille : Le circuit est au repos.
- Lecture : Les données ont été demandées.
- Rédaction : Mise à jour du contenu.
La SRAM fonctionnant en mode lecture et en mode écriture doit avoir respectivement une bonne lisibilité et une bonne stabilité en écriture . Les trois états différents fonctionnent comme suit :
Attendre
Si la ligne de mots n'est pas activée, les transistors d'accès M 5 et M 6 déconnectent la cellule des lignes de bits. Les deux inverseurs couplés en croix formés par M 1 – M 4 continueront à se renforcer mutuellement tant qu'ils seront connectés à l'alimentation.
En lisant
En théorie, la lecture ne nécessite que l'activation de la ligne de mots 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 , 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 mots WL active les deux transistors d'accès M5 et M6 , ce qui provoque une légère baisse de tension sur une ligne de bits BL. Ensuite, les lignes BL et BL auront une petite différence de tension entre elles. Un amplificateur de détection détectera quelle ligne a la tension la plus élevée et déterminera ainsi si 1 ou 0 était stocké. Plus la sensibilité de l'amplificateur de détection est élevée, plus l'opération de lecture est rapide. Comme le NMOS est plus puissant, le pull-down est plus facile. Par conséquent, les lignes de bits sont traditionnellement préchargées à haute tension. De nombreux chercheurs tentent également de précharger à une tension légèrement basse pour réduire la consommation d'énergie.
En écrivant
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, comme par exemple en réglant 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 est écrit en inversant les valeurs des lignes de bits. WL est ensuite affirmé 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 ) . Cela est facilement obtenu car les transistors PMOS sont beaucoup plus faibles que les NMOS à taille égale. Par conséquent, lorsqu'une paire de transistors (par exemple M3 et M4 ) n'est que légèrement dépassé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 dépassés, et ainsi de suite. Ainsi, les inverseurs à couplage croisé amplifient le processus d'écriture.
Comportement du bus
Une RAM avec un temps d'accès de 70 ns produira des données valides dans un délai de 70 ns à partir du moment où les lignes d'adresse sont valides. Certaines cellules SRAM ont 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 production
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 a rendu plus difficile le conditionnement plus dense des cellules. L'une des raisons est que la réduction de la taille des transistors entraîne des problèmes de fiabilité des SRAM. Des conceptions de cellules soignées sont nécessaires pour obtenir des cellules SRAM qui ne souffrent pas de problèmes de stabilité, en particulier lors de leur lecture. Avec l'introduction de l' implémentation des transistors FinFET des cellules SRAM, celles-ci ont commencé à souffrir d'inefficacités croissantes en termes de taille des cellules.
Outre les problèmes de taille, un défi important des cellules SRAM modernes est la fuite de courant statique. Le courant, qui circule depuis l'alimentation positive (V dd ), à travers la cellule et vers la terre, augmente de manière exponentielle lorsque la température de la cellule augmente. La consommation d'énergie de la cellule se produit à la fois dans les états actifs et inactifs, gaspillant ainsi de l'énergie utile sans aucun travail utile 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 des 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.
Avec ces deux problèmes, il est devenu plus difficile de développer des mémoires SRAM économes en énergie et denses, ce qui a incité l'industrie des semi-conducteurs à rechercher des alternatives telles que la STT-MRAM et la F-RAM .
Recherche
En 2019, un institut français a rapporté une recherche sur un circuit intégré fabriqué en 28 nm destiné à l'IoT . Il était basé sur des transistors en silicium sur isolant entièrement appauvri (FD-SOI), avait un rail de mémoire SRAM à deux ports pour les accès synchrones/asynchrones et une masse virtuelle sélective (SVGND). L'étude prétendait atteindre un courant SVGND ultra-faible dans les modes veille et lecture en ajustant finement sa tension.