# SRAM

SRAM son las siglas de la voz inglesa Static Random Access Memory, que significa memoria estática de acceso aleatorio (o RAM estática), para denominar a un tipo de tecnología de memoria RAM basada en semiconductores, capaz de mantener los datos, mientras siga alimentada, sin necesidad de circuito de refresco. Este concepto surge en oposición al de memoria DRAM (RAM dinámica), con la que se denomina al tipo de tecnología RAM basada en condensadores, que sí necesita refresco dinámico de sus cargas.
Existen dos tipos: volátiles y no volátiles, cuya diferencia estriba en si los datos permanecen o se volatilizan en ausencia de alimentación eléctrica.

## Diseño

Estas memorias son de acceso aleatorio, lo que significa que las posiciones en la memoria pueden ser escritas o leídas en cualquier orden, independientemente de cual fuera la última posición de memoria accedida. Cada bit en una SRAM se almacena en cuatro transistores, que forman un biestable. Este circuito biestable tiene dos estados estables, utilizados para almacenar (representar) un 0 o un 1. Se utilizan otros dos transistores adicionales para controlar el acceso al biestable durante las operaciones de lectura y escritura. Una SRAM típica utilizará seis MOSFET para almacenar cada bit. Adicionalmente, se puede encontrar otros tipos de SRAM, que utilizan ocho, diez, o más transistores por bit. Esto es utilizado para implementar más de un puerto de lectura o escritura en determinados tipos de memoria de video.
Un menor número de transistores por celda, hará posible reducir el tamaño de esta, reduciendo el coste por bit en la fabricación, al poder implementar más celdas en una misma oblea de silicio.
Es posible fabricar celdas que utilicen menos de seis transistores, pero en los casos de tres transistores o uno solo se estaría hablando de memoria DRAM, no SRAM.
El acceso a la celda es controlado por un bus de control (WL en la figura), que controla los dos transistores de acceso M$_5$ y M$_6$, quienes controlan si la celda debe ser conectada a los buses BL y BL. Ambos son utilizados para transmitir datos tanto para las operaciones de lectura como las de escritura, y aunque no es estrictamente necesario disponer de ambos buses, se suelen implementar para mejorar los márgenes de ruido.
A diferencia de la DRAM, en la cual la señal de la línea de salida se conecta a un condensador, y este es el que hace oscilar la señal durante las operaciones de lectura, en las celdas SRAM son los propios biestables los que hacen oscilar dicha señal, mientras que la estructura simétrica permite detectar pequeñas variaciones de voltaje con mayor precisión. Otra ventaja de las memorias SRAM frente a DRAM, es que aceptan recibir todos los bits de dirección al mismo tiempo.
El tamaño de una memoria SRAM con m líneas de dirección, y n líneas de datos es 2$^m$ palabras, o 2$^m$ × n bits.

## Modos de operación de una SRAM

Una memoria SRAM tiene tres estados distintos de operación: standby, en el cual el circuito está en reposo, reading o en fase de lectura, durante el cual los datos son leídos desde la memoria, y writing o en fase de escritura, durante el cual se actualizan los datos almacenados en la memoria.

### Reposo

Si el bus de control (WL) no está activado, los transistores de acceso M$_5$ y M$_6$ desconectan la celda de los buses de datos. Los dos biestables formados por M$_1$ – M$_4$ mantendrán los datos almacenados, en tanto dure la alimentación eléctrica.

### Lectura

Se asume que el contenido de la memoria es 1, y está almacenado en Q. El ciclo de lectura comienza cargando los buses de datos con el 1 lógico, y luego activa WL y los transistores de control. A continuación, los valores almacenados en Q y Q se transfieren a los buses de datos, dejando BL en su valor previo, y ajustando BL a través de M$_1$ y M$_5$ al 0 lógico. En el caso de que el dato contenido en la memoria fuera 0, se produce el efecto contrario: BL será ajustado a 1 y BL a 0.

### Escritura

El ciclo de escritura se inicia aplicando el valor a escribir en el bus de datos. Si se trata de escribir un 0, se ajusta, almacena, se activa el bus WL, y el dato queda almacenado.

## Aplicaciones y usos
### Características

La memoria SRAM es más cara, pero más rápida y con un menor consumo (especialmente en reposo) que la memoria DRAM. Es utilizada, por tanto, cuando es necesario disponer de un menor tiempo de acceso, o un consumo reducido, o ambos. Debido a su compleja estructura interna, es menos densa que DRAM, y por lo tanto no es utilizada cuando es necesaria una alta capacidad de datos, como por ejemplo en la memoria principal de los computadores personales.

#### Frecuencia de reloj y potencia

El consumo eléctrico de una SRAM varía dependiendo de la frecuencia con la cual se accede a la misma: puede llegar a tener un consumo similar a la DRAM cuando es usada en alta frecuencia, y algunos circuitos integrados pueden consumir varios vatios durante su funcionamiento. Por otra parte, las SRAM utilizadas con frecuencia baja, tienen un consumo bastante menor, del orden de microvatios.

### Usos de las SRAM

* Como producto de propósito general:
** Con interfaces asíncronas como chips 32Kx8 de 28 pines (nombrados XXC256), y productos similares que ofrecen transferencias de hasta 16Mbit por chip.
** Con interfaces síncronas, principalmente como cachés y otras aplicaciones que requieran transferencias rápidas, de hasta 18Mbit por chip.
* Integrados en chip:
** Como memoria RAM o de caché en microcontroladores.
** Como caché primaria en microcontroladores, como por ejemplo la familia x86.
** Para almacenar los registros de microprocesadores.
** En circuitos integrados.
** En FPGAs y CPLDs.

### Usos integrados en productos

Las SRAM se utilizan en sistemas científicos e industriales, electrónica del automóvil, y similares. También se pueden encontrar en prácticamente todos los productos de uso cotidiano que implementen una interfaz electrónica de usuario.
También se puede encontrar memorias SRAM en los computadores personales, estaciones de trabajo, enrutadores y la gran mayoría de periféricos.

### Uso de aficionados

Los aficionados a la electrónica prefieren las memorias SRAM debido a su sencilla interfaz, ya que es mucho más fácil trabajar con SRAM que con DRAM, al no existir ciclos de refresco, y poder acceder directamente a los buses de dirección y de datos en lugar de tener que utilizar multiplexores. Además, las SRAM solo necesitan tres buses de control: Chip Enable (CE), Write Enable (WE), y Output Enable (OE). En el caso de las SRAM síncronas, se tiene además la señal de reloj (CLK).

## Tipos de SRAM
### SRAM no volátiles

Las memorias SRAM no volátiles (NVRAM) presentan el funcionamiento típico de las RAM, pero con la característica distintiva de que los datos almacenados en ellas son preservados aun cuando se interrumpe la alimentación eléctrica. Se utilizan en situaciones donde se requiere conservar la información almacenada sin necesidad de alimentación alguna, normalmente donde se desea evitar el uso de baterías (o bien no es posible).

### SRAM asíncrona

Las SRAM asíncronas están disponibles en tamaños desde 4Kb hasta 32Mb. Con un tiempo reducido de acceso, son adecuadas para el uso en equipos de comunicaciones, como switches, enrutadores, teléfonos IP, tarjetas DSLAM, y en electrónica de automoción.

### Por tipo de transistor

* Transistor de unión bipolar o BJT (de tipo TTL o ECL) — muy rápidos, pero con un consumo muy alto.
* MOSFET (de tipo CMOS) — consumo reducido, los más utilizados actualmente.

### Por tipo de flip-flop

* SRAM binaria
* SRAM ternario

### Por función

* Asíncronas — independientes de la frecuencia de reloj.
* Síncronas — todas las operaciones son controladas por el reloj del sistema.