Catto / Mapa de Temas · Técnicas Digitales II 4to nivel
Técnicas Digitales II · 120 h · Contenido 2 de 6

Memorias electrónicas

Un módulo de memoria de servidor tiene 72 bits de ancho para guardar 64: los ocho restantes corrigen cualquier bit que invierta un rayo cósmico.

SRAM y DRAM Flash NOR y NAND Mapa de memoria Desgaste Código de Hamming

01Qué distingue a una memoria de otra

Una memoria guarda bits en celdas, y cada tecnología guarda el bit de una forma física distinta: el estado de un biestable, la carga de un capacitor, la carga atrapada en una compuerta aislada o la polarización de un material. De esa forma física salen todas sus propiedades: si pierde el dato al cortar la alimentación, cuánto tarda en leer y escribir, cuántas veces se puede reescribir y cuánto ocupa cada bit. La página de la tecnicatura presenta los tipos; acá se ve por qué son como son.

MemoriaCelda¿Volátil?ReescriturasUso
SRAM6 transistores (biestable)SíIlimitadasRegistros, caché, RAM de microcontroladores
DRAM1 transistor y 1 capacitorSí, y además hay que refrescarlaIlimitadasMemoria principal de computadoras
Flash NORTransistor de compuerta flotanteNoUnas 100 000Programa de microcontroladores; se ejecuta en el lugar
Flash NANDCompuerta flotante o trampa de carga, en serieNoDe 1000 a 100 000 según bits por celdaDiscos de estado sólido, tarjetas SD
EEPROMCompuerta flotante con borrado por byteNoAlrededor de un millónConfiguración y calibración
FRAMCapacitor ferroeléctricoNoDel orden de 1014Registro de datos frecuente con poco consumo

02Organización interna

Las celdas forman una matriz de filas y columnas. Un decodificador de filas activa una fila entera, los amplificadores de lectura detectan las pequeñas diferencias de tensión de sus columnas, y un multiplexor de columnas elige las que salen. Una memoria de \( 2^A \) palabras de \( w \) bits necesita \( A \) líneas de dirección y \( w \) de datos: una de 128 K × 8 tiene 17 líneas de dirección y 8 de datos.

En un sistema con varias memorias y periféricos, la decodificación de direcciones reparte el espacio: los bits altos de la dirección eligen qué chip se habilita, con su señal de selección, y los bajos eligen la palabra dentro del chip. El resultado es el mapa de memoria del sistema.

03SRAM y DRAM

La celda SRAM es un biestable de dos inversores cruzados más dos transistores de acceso: mantiene el dato mientras haya alimentación, se lee sin destruirlo y es rápida, pero ocupa seis transistores por bit.

La celda DRAM guarda el bit como la carga de un capacitor de unos femtofaradios, detrás de un transistor. Es mucho más densa, pero la carga se fuga y hay que refrescar cada celda, típicamente cada 64 ms, y la lectura descarga el capacitor, así que cada lectura se reescribe. Las DRAM multiplexan la dirección: primero la fila, después la columna. Las DDR transfieren en los dos flancos del reloj: un módulo DDR4-3200 hace 3200 millones de transferencias de 64 bits por segundo, 25,6 GB/s.

04Memorias no volátiles

En una celda flash, el bit es la carga atrapada en una compuerta rodeada de óxido. Esa carga corre el umbral del transistor, y la lectura detecta si conduce o no. Para escribir y borrar se hace pasar carga a través del óxido con campos altos, y cada paso lo desgasta un poco: por eso la cantidad de reescrituras es limitada.

NORNAND
AccesoAleatorio por palabra, como una RAMPor páginas de kilobytes
BorradoPor sectoresPor bloques de cientos de páginas
Densidad y costo por bitMenor densidad, mayor costoMáxima densidad, mínimo costo
GestiónCasi ningunaCorrección de errores, bloques defectuosos y nivelación del desgaste

Guardar más de un bit por celda, con varios niveles de carga, multiplica la capacidad pero achica los márgenes entre niveles: una celda de un bit (SLC) soporta del orden de 100 000 borrados; una de tres bits (TLC), de unos pocos miles.

05Errores y códigos correctores

Ninguna memoria es perfecta. Una partícula alfa del encapsulado o un neutrón de los rayos cósmicos puede invertir un bit de una DRAM o una SRAM (un error blando), y en una flash los bits se degradan con el uso. Los sistemas que no pueden fallar guardan, junto con cada palabra, bits de paridad calculados con un código de Hamming. Para corregir un error en \( m \) bits de datos hacen falta \( r \) bits de paridad tales que:

\[ 2^r \ge m + r + 1 \] Con \( r \) bits se pueden señalar \( 2^r \) situaciones: ningún error o un error en cualquiera de los \( m + r \) bits. Con un bit de paridad global más, el código corrige un error y detecta dos (SECDED). Para 64 bits de datos hacen falta 8 bits de control: los módulos de memoria con ECC tienen 72 bits de ancho.

En el código de Hamming, los bits de paridad van en las posiciones que son potencias de dos, y cada uno cubre las posiciones cuyo número binario tiene ese bit en 1. Al leer, se recalculan las paridades: el número binario que forman las que fallan, el síndrome, es directamente la posición del bit erróneo.

Laboratorio · un código de Hamming SECDED

Cuatro bits de datos se codifican en ocho: tres paridades de Hamming en las posiciones 1, 2 y 4, y una paridad global en la posición 0. Elegís los datos, después tocás los bits guardados para alterarlos, como haría una partícula, y el decodificador responde.

06Dónde aparece en la electrónica

SistemaMemorias que usa
MicrocontroladorFlash NOR para el programa, SRAM para los datos, a veces EEPROM emulada en flash
ServidorDRAM con ECC SECDED de 72 bits
Disco de estado sólidoNAND con un controlador que corrige errores y reparte el desgaste
SatéliteMemorias endurecidas a la radiación, con ECC y relectura periódica
Medidor de energíaFRAM o EEPROM para los registros que cambian seguido

07En el laboratorio

Actividad 1 · Mapa de memoria

Diseñar la decodificación de direcciones de un sistema con una EPROM de 32 K × 8, una SRAM de 8 K × 8 y un periférico de 16 registros sobre un bus de 16 bits de dirección. Dibujar el mapa.

Actividad 2 · Leer y escribir una EEPROM I²C

Con un microcontrolador, escribir una página en una EEPROM serie, medir el tiempo de escritura y verificar la lectura.

Actividad 3 · Hamming en firmware

Programar la codificación y la decodificación SECDED de un byte e inyectar errores para probar la corrección.

08Errores frecuentes

  • Escribir seguido en la flash. Un registro que se graba cada segundo agota 100 000 ciclos en poco más de un día.
  • Olvidar que la flash se borra por bloques. Cambiar un byte exige borrar y reescribir el bloque entero.
  • Confundir capacidad en bits y en bytes. Un chip de 8 Mbit tiene 1 MB.
  • Creer que la paridad simple corrige. Solo detecta un número impar de errores.

09Autoevaluación

¿Cuántas líneas de dirección tiene una memoria de 512 K × 16?

19, porque \( 2^{19} = 524\,288 \).

¿Cuántos bits de paridad necesita un Hamming que corrija un error en 16 bits?

Cinco: \( 2^5 = 32 \ge 16 + 5 + 1 \). Con SECDED, seis.

En un Hamming (7,4), las paridades 1 y 4 fallan y la 2 no. ¿Qué bit está mal?

El de la posición 5 (101 en binario).

¿Por qué una DRAM necesita refresco y una SRAM no?

Porque guarda el bit como carga en un capacitor que se descarga por fugas; la SRAM lo guarda en un biestable que se sostiene solo mientras hay alimentación.

10Para ampliar

  • Bruce Jacob, Spencer W. Ng y David T. Wang. Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann, 2008. La referencia sobre la organización, la temporización y el diseño de sistemas de memoria.
  • Betty Prince. Semiconductor Memories: A Handbook of Design, Manufacture and Application. 2.ª ed., Wiley, 1991. Las celdas y los circuitos de cada tipo de memoria, desde adentro del chip.
  • Shu Lin y Daniel J. Costello. Error Control Coding. 2.ª ed., Pearson, 2004. Los códigos de Hamming y sus sucesores, con la teoría completa.
Desarrollo del contenido «Memorias electrónicas» de Técnicas Digitales II (cuarto nivel), según el diseño curricular de Ingeniería Electrónica, Plan 2023 — Ordenanza N° 1849 del Consejo Superior de la UTN. Volver al Mapa de Temas · catto.ar