Memorias CMOS
Un bit de la memoria principal son unos 150 000 electrones en un capacitor que pierde. Si nadie los repone, en menos de un segundo el 1 se lee como 0.
01Tres maneras de guardar un bit
Toda la memoria de una computadora actual está hecha con transistores MOS, pero de tres maneras muy distintas, cada una con un compromiso diferente entre velocidad, densidad y permanencia:
| SRAM | DRAM | Flash | |
|---|---|---|---|
| Cómo guarda el bit | Dos inversores realimentados | Carga en un capacitor | Carga atrapada en la compuerta de un transistor |
| Transistores por bit | 6 | 1 más un capacitor | 1, y varios bits por transistor |
| Área de la celda | Unos 120 a 150 F² | 6 a 8 F² | 4 F² y menos, apilada en 3D |
| Al cortar la alimentación | Se pierde | Se pierde, y además hay que refrescarla | Se conserva por años |
| Acceso | Menos de un nanosegundo | Decenas de nanosegundos | Microsegundos para leer, más para escribir |
| Dónde está | Registros y cachés, dentro del procesador | La memoria principal | Discos de estado sólido, pendrives, memoria de programa |
\( F \) es la dimensión mínima de la tecnología: medir las celdas en \( F^2 \) permite compararlas entre generaciones. La página de la tecnicatura sobre memorias y dispositivos programables presenta los tipos desde el uso; acá se mira la celda.
02SRAM: dos inversores que se sostienen
La celda SRAM de seis transistores son dos inversores CMOS conectados en anillo, cada uno alimentando al otro, y dos transistores de acceso que conectan los dos nodos a un par de líneas de bit cuando se activa la línea de palabra. El anillo tiene dos estados estables, y mientras haya alimentación se sostiene solo, sin refresco.
El diseño de la celda es una puja entre leer y escribir con los mismos transistores:
- Estabilidad de lectura: al leer, el nodo que guarda un 0 se conecta a una línea de bit precargada en \( V_{DD} \) y sube un poco. Si sube demasiado, la celda se da vuelta sola. Por eso el NMOS de abajo se hace más ancho que el de acceso, en una relación de 1,2 a 2.
- Escritura: para cambiar el estado, el transistor de acceso tiene que vencer al PMOS de arriba, que se hace el más angosto de los tres.
El margen de ruido estático de la celda se mide superponiendo las dos transferencias, una reflejada: el gráfico que resulta se llama «mariposa», y el lado del mayor cuadrado que entra en sus alas es el margen. Con cada generación la variación entre transistores lo achica, y hoy la SRAM es de lo más difícil de escalar.
03DRAM: un capacitor que pierde
La celda DRAM es un transistor y un capacitor. El bit es la carga del capacitor: lleno a \( V_{DD} \) es un 1, vacío es un 0. Para leer, la línea de bit se precarga a \( V_{DD}/2 \) y se abre el transistor: el capacitor de la celda comparte su carga con la capacidad, mucho mayor, de la línea de bit, que se mueve apenas:
La lectura es destructiva: después de compartir la carga, la celda quedó en un valor intermedio, y el amplificador sensor la reescribe en el mismo ciclo. Además, el capacitor pierde carga por las fugas de la juntura y del transistor apagado. Cada celda se lee y se reescribe periódicamente, el refresco: la norma JEDEC pide refrescar cada celda al menos cada 64 ms, y cada 32 ms por encima de 85 °C, porque la fuga se duplica cada unos diez grados.
Una celda de 20 fF a 1,2 V guarda unos 150 000 electrones. Mantener esa capacidad mientras la celda se achica obligó a construir capacitores con forma de cilindros altísimos, con dieléctricos de alta constante.
Una celda escrita con un 1 que pierde carga por una fuga constante. Se grafica la señal que la celda le entregaría a la línea de bit si se la leyera en cada instante; el amplificador sensor necesita al menos 30 mV para decidir. Elegís la capacidad de la celda, la de la línea de bit y la corriente de fuga.
04Flash: carga atrapada
Una celda flash es un MOS con una segunda compuerta, flotante, aislada por completo dentro del óxido (o, en las versiones actuales, una capa de nitruro que atrapa carga). Los electrones que se logran meter ahí quedan presos por años, y su carga negativa sube la tensión umbral del transistor. Leer es preguntar si el transistor conduce con una tensión de compuerta de referencia.
| Operación | Mecanismo |
|---|---|
| Programar en NOR | Inyección de portadores calientes: electrones acelerados en el canal saltan la barrera del óxido |
| Programar y borrar en NAND | Efecto túnel de Fowler-Nordheim a través del óxido, con 15 a 20 V |
| Varios bits por celda | Se programan 4, 8 o 16 niveles de umbral para guardar 2, 3 o 4 bits (MLC, TLC, QLC) |
| Desgaste | Cada ciclo de escritura daña un poco el óxido: de unos 100 000 ciclos en celdas de un bit a pocos miles en las de cuatro |
Cuando la celda plana no pudo achicarse más, la flash NAND se hizo vertical: hoy se apilan más de doscientas capas de celdas en el mismo chip. El controlador del disco reparte las escrituras, corrige errores y reserva bloques de repuesto: sin él, una flash de muchos bits por celda no sería confiable.
05Cómo se organiza un arreglo
Las celdas forman una matriz: un decodificador de filas activa una línea de palabra, todas las celdas de esa fila vuelcan su contenido sobre sus líneas de bit, y los amplificadores sensores al pie de cada columna detectan diferencias de decenas de milivolts. Un decodificador de columnas elige cuáles de esos bits salen. Precargar, activar, detectar y reescribir es la secuencia de cada acceso, y sus tiempos son los que aparecen en las hojas de datos de las memorias como latencias.
06Dónde aparece en la electrónica
| Caso | La memoria y por qué |
|---|---|
| Microcontrolador | Flash para el programa, SRAM para las variables |
| Computadora | SRAM en las cachés, DRAM en los módulos, flash NAND en el disco |
| FPGA | La configuración en celdas SRAM, que se pierde al apagar |
| Equipos que no pueden perder datos | Memorias no volátiles rápidas (FRAM, MRAM) que escriben como una SRAM |
| Cámaras y teléfonos | Flash NAND de varios bits por celda, con su controlador |
07En el laboratorio
Con dos inversores de un 74HC04 conectados en anillo, forzar el estado con una resistencia de 1 kΩ a cada nodo y verificar que queda memorizado al retirarla. Medir la tensión mínima de alimentación a la que el anillo todavía retiene el dato.
Cargar un capacitor de 1 nF a través de un MOSFET de señal usado como llave, abrir la llave y medir con un osciloscopio de alta impedancia cuánto tarda en perder la mitad de la tensión. Estimar la corriente de fuga.
En un microcontrolador, leer el mapa de memoria de la hoja de datos, ubicar la flash y la SRAM, y después de compilar un programa comparar cuánto ocupa de cada una.
08Errores frecuentes
- Pensar que la DRAM es «RAM que no se borra» mientras hay alimentación. Sin refresco se pierde en fracciones de segundo.
- Confundir no volátil con eterna. La flash tiene un número finito de ciclos de escritura y la retención baja con el desgaste y la temperatura.
- Creer que leer una DRAM no la altera. La lectura es destructiva y hay que reescribir.
- Comparar memorias por capacidad sin mirar la latencia. Una DRAM tarda cien veces más en responder que una caché SRAM.
- Escribir la flash del microcontrolador en un bucle. Se gasta en horas.
09Autoevaluación
¿Por qué la SRAM no necesita refresco y la DRAM sí?
La SRAM guarda el dato en dos inversores realimentados que se sostienen mientras haya alimentación; la DRAM lo guarda como carga en un capacitor que pierde por fugas.
Con \( C_s = 25 \) fF, \( C_{BL} = 100 \) fF y \( V_{DD} = 1{,}1 \) V, ¿cuánto se mueve la línea de bit al leer un 1?
\( 0{,}55 \times 25/125 = 110 \) mV.
¿Por qué el NMOS de abajo de una celda SRAM es más ancho que el de acceso?
Para que al leer, el nodo que guarda un 0 suba poco y la celda no cambie de estado.
¿Cuántos niveles de umbral necesita una celda TLC?
Ocho, porque guarda tres bits.
¿Por qué la DRAM se refresca más seguido a temperatura alta?
Porque la corriente de fuga crece con la temperatura, y la celda pierde la carga antes.
10Para ampliar
- Bruce Jacob, Spencer W. Ng y David T. Wang. Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann, 2008. La referencia sobre cómo funcionan por dentro las memorias de una computadora, de la celda al sistema.
- Jan M. Rabaey, Anantha Chandrakasan y Borivoje Nikolić. Digital Integrated Circuits: A Design Perspective. 2.ª ed., Prentice Hall, 2003. El capítulo de memorias: celdas, amplificadores sensores y organización del arreglo.
- Rino Micheloni, Luca Crippa y Alessia Marelli. Inside NAND Flash Memories. Springer, 2010. La celda flash, sus mecanismos de programación y los problemas de confiabilidad.