Fundamentos de Memorias: Tipos, Organización y Rendimiento
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 10,49 KB
Características Fundamentales de las Memorias
Duración de la Información
- Memorias volátiles: RAM (Memoria de Acceso Aleatorio). Pierden su contenido cuando se interrumpe la alimentación eléctrica.
- Memorias no volátiles: Discos (magnéticos, de estado sólido - SSD), cintas magnéticas. Conservan la información incluso sin energía.
- Memorias permanentes: ROM (Memoria de Solo Lectura), EPROM (Memoria Programable y Borrable de Solo Lectura). Contienen firmware o software esencial que no se modifica habitualmente.
Modo de Acceso
- Acceso por palabra: Característico de la memoria principal. Permite acceder a unidades de datos del tamaño de una palabra de máquina.
- Acceso por bloque: Típico de discos y la memoria caché. Los datos se transfieren en bloques de tamaño fijo.
Velocidad de las Memorias
Memorias Semiconductoras
- Tiempo de acceso (tacceso): Es el tiempo máximo que transcurre desde que se inicia una operación de lectura/escritura hasta que el dato está disponible (lectura) o almacenado (escritura).
- Tiempo de ciclo (tciclo): Es el tiempo mínimo que debe transcurrir entre dos operaciones sucesivas sobre la memoria. Generalmente, tciclo > tacceso, ya que la memoria puede necesitar un tiempo adicional para recuperarse o prepararse para la siguiente operación.
Memorias Magnéticas
- Tiempo de acceso: Se compone del tiempo necesario para posicionar el cabezal de lectura/escritura sobre la pista correcta (tiempo de búsqueda o seek time) más el tiempo de espera hasta que el sector deseado rote bajo el cabezal (tiempo de latencia o rotational delay). Opcionalmente, se puede sumar el tiempo de lectura/escritura del dato en sí.
- Velocidad de transferencia: Cantidad de datos (generalmente en bytes por segundo) que se pueden leer o escribir de forma continua desde o hacia la memoria.
Métodos de Acceso
- Acceso aleatorio (Random Access): El tiempo para acceder a una ubicación de memoria dada es constante e independiente de la secuencia de accesos anteriores. Ejemplo: la memoria principal (RAM).
- Acceso secuencial (Sequential Access): El acceso a los datos debe realizarse en una secuencia lineal específica, comenzando desde el principio. El tiempo de acceso es variable y depende de la posición del dato. Ejemplo: las unidades de cinta magnética.
- Acceso directo (Direct Access): Los bloques o registros individuales tienen una dirección única basada en su localización física. El acceso implica un movimiento directo a una vecindad general del dato, seguido de una búsqueda secuencial, conteo o espera. El tiempo de acceso es variable. Ejemplo: los discos magnéticos.
- Acceso asociativo (Associative Access): Es una forma de acceso aleatorio que permite realizar una comparación de bits deseados dentro de una palabra para una coincidencia. La palabra se recupera basándose en una porción de su contenido en lugar de su dirección. Se utiliza en la memoria caché.
Comparativa: DRAM vs. SRAM
- La DRAM (Dynamic RAM) almacena más información que la SRAM (Static RAM) en la misma superficie de chip.
- Esto se debe a que los capacitores (utilizados en DRAM para almacenar bits) son físicamente más pequeños que los circuitos flip-flop (utilizados en SRAM).
- La DRAM necesita ser "refrescada" periódicamente porque los capacitores tienden a descargarse con el tiempo, perdiendo la información almacenada.
- La DRAM se utiliza comúnmente como memoria principal del sistema debido a su mayor densidad y menor costo por bit.
- La SRAM es más rápida que la DRAM (no necesita refresco y su estructura permite accesos más veloces).
- La SRAM se utiliza frecuentemente como memoria caché, donde la velocidad es crítica.
Organización Interna de la Memoria
Arreglo de Celdas de Memoria
Un chip de memoria típico se organiza como un arreglo de celdas. Si un chip tiene W bits de dirección, puede direccionar 2W palabras de memoria. Si cada palabra tiene B bits de longitud, la capacidad total del chip es 2W x B bits.
- Cada línea horizontal del arreglo (una de las 2W líneas de palabra) se conecta a cada celda de memoria en una fila, seleccionando un renglón completo de celdas cuando se activa.
- Las líneas verticales (líneas de bit) conectan cada bit de las celdas de una columna a los circuitos de lectura/escritura y, finalmente, a la salida de datos del chip.
- Un decodificador integrado en el chip recibe las W líneas de dirección (provenientes del bus de direcciones) y activa una de las 2W líneas de selección de palabra (renglones).
Organización Física: 2D vs. 2½D
La organización física de las celdas de memoria en un chip y la forma en que se agrupan los chips para formar un módulo de memoria afectan el rendimiento, el costo y la complejidad.
Organización 2D (Bidimensional)
- En una organización estrictamente 2D, todos los bits de una palabra de memoria residen en el mismo chip.
- El arreglo de celdas dentro del chip puede ser conceptualizado como "cuadrado" o rectangular.
- Una desventaja es que para memorias con muchas palabras de pocos bits (por ejemplo, 1M x 1 bit), la estructura del chip puede volverse muy larga y estrecha. Cada línea de selección de palabra requiere un manejador (driver) y conexión al decodificador, lo que puede ocupar una superficie considerable en el chip, limitando la eficiencia del área.
- La organización 2D puede dificultar el uso eficaz de los circuitos correctores de error (ECC), ya que un fallo en un único chip podría afectar múltiples bits de la misma palabra si la palabra es ancha y está contenida en ese chip.
Organización 2½D (Dos Dimensiones y Media)
- En la organización 2½D, los bits de una misma palabra están dispersos en distintos chips. Por ejemplo, para formar una palabra de 8 bits, se podrían usar 8 chips de 1 bit de ancho cada uno, o 2 chips de 4 bits de ancho, etc.
- La dirección de memoria a menudo se divide en dos partes: una para seleccionar el renglón (fila) y otra para seleccionar la columna dentro del chip. Esto implica el uso de dos decodificadores (uno para filas y otro para columnas), lo que puede reducir la complejidad total de la decodificación en comparación con un único decodificador grande para una estructura 2D muy extensa.
- Al estar los bits de una palabra dispersos en distintos chips, hay una menor probabilidad de que un fallo en un único chip corrompa múltiples bits de la misma palabra. Esto facilita la implementación de ECC y mejora la fiabilidad del sistema de memoria.
- El uso de decodificación separada para filas y columnas también ayuda a reducir la complejidad y el tamaño de los decodificadores en chips de alta capacidad.
Evolución y Tipos de DRAM
DRAM Básica y Variantes Mejoradas
La estructura fundamental de la celda de DRAM básica (un transistor y un capacitor) ha permanecido conceptualmente similar desde los primeros chips de RAM dinámica, aunque con enormes avances en densidad y velocidad.
- Enhanced DRAM (EDRAM):
- Integra una pequeña cantidad de SRAM en el mismo chip que la DRAM principal.
- Esta SRAM interna típicamente guarda la última fila de datos leída, actuando como una pequeña caché a nivel de chip para mejorar el tiempo de acceso en caso de accesos repetidos a la misma fila.
- Cache DRAM (CDRAM):
- Incorpora una cantidad de SRAM más grande que la EDRAM, funcionando como una caché más sustancial en el chip.
- Esta SRAM puede usarse como una caché para los datos de la DRAM o como un buffer serial de alta velocidad para la transferencia de datos.
Synchronous DRAM (SDRAM)
- Es un tipo de DRAM cuyo funcionamiento está sincronizado con una señal de reloj externo, generalmente el reloj del bus del sistema. Es la base de las memorias modernas como DDR, DDR2, etc., y se encuentra comúnmente en módulos DIMM (Dual In-line Memory Module).
- Proceso de acceso y ventajas:
- Se presenta una dirección a la SDRAM.
- La SDRAM interna localiza los datos. A diferencia de las DRAM asíncronas más antiguas (donde la CPU a menudo tenía que esperar en un estado de pausa), la SDRAM opera de forma más predecible.
- Los datos se transfieren en ráfagas (bursts) sincronizadas con los flancos de la señal de reloj del sistema. La CPU (o el controlador de memoria) conoce con precisión cuándo estarán listos los datos, basándose en la latencia programada de la SDRAM (ej. CAS latency) y la frecuencia del reloj.
- Esta sincronización y la capacidad de predicción permiten a la CPU realizar otras tareas mientras espera que los datos estén disponibles (pipelining de instrucciones y accesos a memoria), mejorando la eficiencia general del sistema.
- El Modo Burst es una característica fundamental de SDRAM que permite leer o escribir un bloque de datos (varias palabras consecutivas) después de enviar una única dirección de inicio. Esto es muy eficiente para llenar líneas de caché o procesar datos secuenciales.