SRAM
# SRAM

La memoria ad accesso casuale statica, o SRAM (acronimo di static random access memory), è un tipo di RAM volatile che non necessita di memory refresh. I banchi di memoria SRAM consentono di mantenere le informazioni per un tempo teoricamente infinito, hanno bassi tempi di lettura e bassi consumi, specialmente in condizioni statiche. La necessità di usare molti componenti per cella le rende però più costose delle DRAM.

## Descrizione

Le celle di una SRAM sono costituite da un circuito retroazionato formato da due invertitori logici le cui uscite sono collegate alle due estremità alle linee dei dati tramite due transistor detti porte di trasmissione. Le singole coppie di porte di trasmissione vengono abilitate a seconda della cella su cui deve essere effettuata la lettura o scrittura. Vengono resi disponibili sia il bit memorizzato che la sua negazione per un migliore controllo dei margini di rumore.

Sono solitamente usate per le memorie cache, dove elevate velocità e ridotti consumi sono caratteristiche fondamentali.

### Confronto tra RAM statica e RAM dinamica

Sia le RAM statiche che quelle dinamiche sono volatili nel senso che, per conservare i valori dei bit, è necessaria un’alimentazione continua. Una cella di memoria dinamica è più semplice e più piccola di una cella di memoria statica. Dunque le DRAM sono più dense e meno costose a parità di capacità nonostante la presenza di ulteriore circuiteria, necessaria e sufficiente, per il refresh periodico della RAM. Per memorie grandi il costo di questi circuiti è più che compensato dal costo inferiore della singola cella. Dunque le DRAM tendono ad essere favorite laddove si abbisogna di grandi capacità. In sostanza le SRAM sono più veloci delle DRAM.

La famiglia delle memorie SRAM può essere poi suddivisa in:

* async SRAM (SRAM asincrona): lavora in modo asincrono rispetto al clock della CPU, ciò comporta degli stati di attesa della CPU (wait state) per l'accesso, viene utilizzata come cache di secondo livello;
* sync SRAM (SRAM sincrona): lavora in sincronia con il clock della CPU, si hanno quindi dei tempi di attesa ridotti (o annullati);
* pipeline Burst SRAM: è ottimizzata per trasferimenti di pacchetti (burst) di dati.
