La memoria de acceso aleatorio dinámica síncrona ( RAM dinámica síncrona o SDRAM ) es cualquier DRAM donde el funcionamiento de su interfaz de pin externo está coordinado por una señal de reloj suministrada externamente .
Los circuitos integrados (CI) DRAM producidos desde principios de la década de 1970 hasta principios de la década de 1990 usaban una interfaz asíncrona , en la que las señales de control de entrada tienen un efecto directo en las funciones internas retrasadas solo por el viaje a través de sus vías de semiconductores. La SDRAM tiene una interfaz síncrona , por la que los cambios en las entradas de control se reconocen después de un flanco ascendente de su entrada de reloj. En las familias SDRAM estandarizadas por JEDEC , la señal de reloj controla el paso de una máquina de estados finitos interna que responde a los comandos entrantes. Estos comandos se pueden canalizar para mejorar el rendimiento, y las operaciones iniciadas anteriormente se completan mientras se reciben nuevos comandos. La memoria se divide en varias secciones de igual tamaño pero independientes llamadas bancos , lo que permite que el dispositivo funcione en un comando de acceso a la memoria en cada banco simultáneamente y acelere el acceso de manera intercalada . Esto permite que las SDRAM logren una mayor concurrencia y velocidades de transferencia de datos más altas que las DRAM asíncronas.
El procesamiento por canalización significa que el chip puede aceptar un nuevo comando antes de que haya terminado de procesar el anterior. En el caso de una escritura por canalización, el comando de escritura puede ir seguido inmediatamente por otro comando sin tener que esperar a que los datos se escriban en la matriz de memoria. En el caso de una lectura por canalización, los datos solicitados aparecen una cantidad fija de ciclos de reloj (latencia) después del comando de lectura, durante los cuales se pueden enviar comandos adicionales.
Las primeras memorias DRAM solían estar sincronizadas con el reloj de la CPU (clocked) y se utilizaban con los primeros microprocesadores. A mediados de la década de 1970, las memorias DRAM pasaron al diseño asincrónico, pero en la década de 1990 volvieron al funcionamiento sincrónico. [1] [2]
A finales de la década de 1980, IBM inventó la DDR SDRAM, construyó una RAM de reloj de doble borde y presentó sus resultados en la Convención Internacional de Circuitos de Estado Sólido en 1990. [3] [4] En 1998, Samsung lanzó un chip SDRAM de doble velocidad de datos , conocido como DDR SDRAM (64 Mbit ), seguido poco después por Hyundai Electronics (ahora SK Hynix ) el mismo año y producido en masa en 1993. [5] Para el año 2000, la SDRAM había reemplazado prácticamente a todos los demás tipos de DRAM en las computadoras modernas, debido a su mayor rendimiento.
La latencia de la SDRAM no es inherentemente menor (tiempos de acceso más rápidos) que la de la DRAM asíncrona. De hecho, la SDRAM primitiva era algo más lenta que la DRAM EDO de ráfaga contemporánea debido a la lógica adicional. Los beneficios del almacenamiento en búfer interno de la SDRAM provienen de su capacidad de intercalar operaciones en múltiples bancos de memoria, lo que aumenta el ancho de banda efectivo .
En la actualidad, prácticamente todas las SDRAM se fabrican de conformidad con los estándares establecidos por JEDEC , una asociación de la industria electrónica que adopta estándares abiertos para facilitar la interoperabilidad de los componentes electrónicos. JEDEC adoptó formalmente su primer estándar SDRAM en 1993 y posteriormente adoptó otros estándares SDRAM, incluidos los de DDR , DDR2 y DDR3 SDRAM .
SDRAM también está disponible en variedades registradas , para sistemas que requieren mayor escalabilidad, como servidores y estaciones de trabajo .
Hoy en día, los mayores fabricantes de SDRAM del mundo incluyen Samsung Electronics , SK Hynix , Micron Technology y Nanya Technology .
Existen varios límites en el rendimiento de la memoria DRAM. El más conocido es el tiempo del ciclo de lectura, el tiempo entre operaciones de lectura sucesivas hasta una fila abierta. Este tiempo disminuyó de 10 ns para la SDRAM de 100 MHz (1 MHz = Hz) a 5 ns para la DDR-400, pero se mantuvo relativamente sin cambios a lo largo de las generaciones DDR2-800 y DDR3-1600. Sin embargo, al operar los circuitos de interfaz a múltiplos cada vez más altos de la velocidad de lectura fundamental, el ancho de banda alcanzable ha aumentado rápidamente.
Otro límite es la latencia CAS , el tiempo que transcurre entre el suministro de una dirección de columna y la recepción de los datos correspondientes. Una vez más, este valor se ha mantenido relativamente constante en 10-15 ns durante las últimas generaciones de DDR SDRAM.
En funcionamiento, la latencia CAS es un número específico de ciclos de reloj programados en el registro de modo de la SDRAM y esperados por el controlador de la DRAM. Se puede programar cualquier valor, pero la SDRAM no funcionará correctamente si es demasiado bajo. A velocidades de reloj más altas, la latencia CAS útil en ciclos de reloj aumenta naturalmente. 10–15 ns son 2–3 ciclos (CL2–3) del reloj de 200 MHz de la SDRAM DDR-400, CL4–6 para la DDR2–800 y CL8–12 para la DDR3–1600. Los ciclos de reloj más lentos naturalmente permitirán un menor número de ciclos de latencia CAS.
Los módulos SDRAM tienen sus propias especificaciones de sincronización, que pueden ser más lentas que las de los chips del módulo. Cuando aparecieron los primeros chips SDRAM de 100 MHz, algunos fabricantes vendían módulos "de 100 MHz" que no podían funcionar de manera confiable a esa velocidad de reloj. En respuesta, Intel publicó el estándar PC100, que describe los requisitos y las pautas para producir un módulo de memoria que pueda funcionar de manera confiable a 100 MHz. Este estándar tuvo una gran influencia y el término "PC100" rápidamente se convirtió en un identificador común para los módulos SDRAM de 100 MHz, y ahora los módulos se designan comúnmente con números prefijados con "PC" (PC66, PC100 o PC133, aunque el significado real de los números ha cambiado).
Todos los comandos se cronometran en relación con el borde ascendente de una señal de reloj. Además del reloj, hay seis señales de control, en su mayoría activas en nivel bajo , que se muestrean en el borde ascendente del reloj:
Los dispositivos SDRAM se dividen internamente en dos, cuatro u ocho bancos de datos internos independientes. Se utilizan de una a tres entradas de dirección de banco (BA0, BA1 y BA2) para seleccionar a qué banco se dirige un comando.
Muchos comandos también utilizan una dirección presentada en los pines de entrada de dirección. Algunos comandos, que no utilizan una dirección o presentan una dirección de columna, también utilizan A10 para seleccionar variantes.
Los comandos SDR SDRAM se definen de la siguiente manera:
Todas las generaciones de SDRAM (SDR y DDRx) utilizan esencialmente los mismos comandos, con los cambios siguientes:
Por ejemplo, un DIMM SDRAM de 512 MB (que contiene 512 MB) puede estar formado por ocho o nueve chips SDRAM, cada uno de los cuales contiene 512 Mbit de almacenamiento y cada uno contribuye con 8 bits al ancho de 64 o 72 bits del DIMM. Un chip SDRAM de 512 Mbit típico contiene internamente cuatro bancos de memoria independientes de 16 MB. Cada banco es una matriz de 8192 filas de 16384 bits cada una (2048 columnas de 8 bits). Un banco puede estar inactivo, activo o cambiando de uno a otro. [6]
El comando activo activa un banco inactivo. Presenta una dirección de banco de dos bits (BA0–BA1) y una dirección de fila de 13 bits (A0–A12), y provoca una lectura de esa fila en la matriz del banco de los 16.384 amplificadores de detección de columnas. Esto también se conoce como "abrir" la fila. Esta operación tiene el efecto secundario de actualizar las celdas de almacenamiento de memoria dinámica (capacitiva) de esa fila.
Una vez que la fila ha sido activada o "abierta", es posible ejecutar comandos de lectura y escritura en esa fila. La activación requiere una cantidad mínima de tiempo, denominada retardo de fila a columna o t RCD , antes de que se puedan ejecutar operaciones de lectura o escritura en ella. Este tiempo, redondeado al siguiente múltiplo del período de reloj, especifica la cantidad mínima de ciclos de espera entre un comando activo y un comando de lectura o escritura . Durante estos ciclos de espera, se pueden enviar comandos adicionales a otros bancos, ya que cada banco opera de manera completamente independiente.
Tanto los comandos de lectura como los de escritura requieren una dirección de columna. Como cada chip accede a ocho bits de datos a la vez, hay 2048 direcciones de columna posibles, por lo que se requieren solo 11 líneas de dirección (A0–A9, 11).
Cuando se emite un comando de lectura , la SDRAM producirá los datos de salida correspondientes en las líneas DQ a tiempo para el flanco ascendente del reloj unos cuantos ciclos de reloj más tarde, según la latencia CAS configurada. Las palabras subsiguientes de la ráfaga se producirán a tiempo para los flancos ascendentes del reloj subsiguientes.
Un comando de escritura va acompañado de los datos que se van a escribir en las líneas DQ durante el mismo flanco ascendente del reloj. Es responsabilidad del controlador de memoria garantizar que la SDRAM no esté enviando datos de lectura a las líneas DQ al mismo tiempo que necesita enviar datos de escritura a esas líneas. Esto se puede hacer esperando hasta que finalice una ráfaga de lectura, finalizando una ráfaga de lectura o utilizando la línea de control DQM.
Cuando el controlador de memoria necesita acceder a una fila diferente, primero debe devolver los amplificadores de detección de ese banco a un estado inactivo, listos para detectar la siguiente fila. Esto se conoce como una operación de "precarga" o "cierre" de la fila. Una precarga se puede ordenar explícitamente o se puede realizar automáticamente al concluir una operación de lectura o escritura. Nuevamente, existe un tiempo mínimo, el retraso de precarga de fila, t RP , que debe transcurrir antes de que esa fila esté completamente "cerrada" y, por lo tanto, el banco esté inactivo para recibir otro comando de activación en ese banco.
Aunque la actualización de una fila es un efecto secundario automático de su activación, existe un tiempo mínimo para que esto suceda, lo que requiere un tiempo mínimo de acceso a la fila t ( retardo RAS) entre un comando activo que abre una fila y el comando de precarga correspondiente que la cierra. Este límite suele verse eclipsado por los comandos de lectura y escritura deseados en la fila, por lo que su valor tiene poco efecto en el rendimiento típico.
El comando de no operación siempre está permitido, mientras que el comando de registro de modo de carga requiere que todos los bancos estén inactivos y un retraso posterior para que los cambios surtan efecto. El comando de actualización automática también requiere que todos los bancos estén inactivos y requiere un tiempo de ciclo de actualización t RFC para devolver el chip al estado inactivo. (Este tiempo suele ser igual a t RCD + t RP ). El único otro comando que está permitido en un banco inactivo es el comando activo. Este tarda, como se mencionó anteriormente, t RCD antes de que la fila esté completamente abierta y pueda aceptar comandos de lectura y escritura.
Cuando un banco está abierto, se permiten cuatro comandos: lectura, escritura, terminación de ráfaga y precarga. Los comandos de lectura y escritura inician ráfagas, que se pueden interrumpir con los siguientes comandos.
Se puede emitir un comando de lectura, terminación de ráfaga o precarga en cualquier momento después de un comando de lectura, y se interrumpirá la ráfaga de lectura después de la latencia CAS configurada. Por lo tanto, si se emite un comando de lectura en el ciclo 0, se emite otro comando de lectura en el ciclo 2 y la latencia CAS es 3, entonces el primer comando de lectura comenzará a enviar datos en ráfagas durante los ciclos 3 y 4, y luego los resultados del segundo comando de lectura aparecerán a partir del ciclo 5.
Si el comando emitido en el ciclo 2 fuera una terminación en ráfaga o una precarga del banco activo, entonces no se generaría ninguna salida durante el ciclo 5.
Aunque la lectura interrumpida puede ser a cualquier banco activo, un comando de precarga solo interrumpirá la ráfaga de lectura si es al mismo banco o a todos los bancos; un comando de precarga a un banco diferente no interrumpirá una ráfaga de lectura.
Es posible interrumpir una ráfaga de lectura mediante un comando de escritura, pero es más difícil. Se puede hacer si se utiliza la señal DQM para suprimir la salida de la SDRAM de modo que el controlador de memoria pueda enviar datos por las líneas DQ a la SDRAM a tiempo para la operación de escritura. Debido a que los efectos de DQM sobre los datos de lectura se retrasan dos ciclos, pero los efectos de DQM sobre los datos de escritura son inmediatos, DQM debe aumentarse (para enmascarar los datos de lectura) comenzando al menos dos ciclos antes del comando de escritura, pero debe disminuirse durante el ciclo del comando de escritura (suponiendo que el comando de escritura tenga un efecto).
Para realizar esto en solo dos ciclos de reloj, se requiere una coordinación cuidadosa entre el tiempo que tarda la SDRAM en apagar su salida en un flanco de reloj y el tiempo que deben suministrarse los datos como entrada a la SDRAM para la escritura en el siguiente flanco de reloj. Si la frecuencia del reloj es demasiado alta para permitir tiempo suficiente, pueden necesitarse tres ciclos.
Si el comando de lectura incluye precarga automática, la precarga comienza el mismo ciclo que el comando de interrupción.
Un microprocesador moderno con caché generalmente accederá a la memoria en unidades de líneas de caché . Para transferir una línea de caché de 64 bytes se requieren ocho accesos consecutivos a un DIMM de 64 bits, que pueden activarse mediante un solo comando de lectura o escritura configurando los chips SDRAM, utilizando el registro de modo, para realizar ráfagas de ocho palabras . Una búsqueda de línea de caché generalmente se activa mediante una lectura desde una dirección particular, y SDRAM permite que la "palabra crítica" de la línea de caché se transfiera primero. ("Palabra" aquí se refiere al ancho del chip SDRAM o DIMM, que es de 64 bits para un DIMM típico). Los chips SDRAM admiten dos posibles convenciones para el ordenamiento de las palabras restantes en la línea de caché.
Las ráfagas siempre acceden a un bloque alineado de palabras consecutivas de BL que comienzan con un múltiplo de BL. Por lo tanto, por ejemplo, un acceso en ráfaga de cuatro palabras a cualquier dirección de columna de la cuatro a la siete devolverá las palabras de la cuatro a la siete. Sin embargo, el orden depende de la dirección solicitada y de la opción de tipo de ráfaga configurada: secuencial o intercalada. Normalmente, un controlador de memoria requerirá una u otra. Cuando la longitud de ráfaga es uno o dos, el tipo de ráfaga no importa. Para una longitud de ráfaga de uno, la palabra solicitada es la única palabra a la que se accede. Para una longitud de ráfaga de dos, se accede primero a la palabra solicitada y, en segundo lugar, a la otra palabra del bloque alineado. Esta es la siguiente palabra si se especificó una dirección par y la palabra anterior si se especificó una dirección impar.
En el modo de ráfaga secuencial , se accede a las palabras posteriores en orden de dirección creciente, volviendo al inicio del bloque cuando se llega al final. Por ejemplo, para una longitud de ráfaga de cuatro y una dirección de columna solicitada de cinco, se accedería a las palabras en el orden 5-6-7-4. Si la longitud de ráfaga fuera ocho, el orden de acceso sería 5-6-7-0-1-2-3-4. Esto se hace añadiendo un contador a la dirección de columna e ignorando los acarreos más allá de la longitud de ráfaga. El modo de ráfaga intercalada calcula la dirección utilizando una operación o exclusiva entre el contador y la dirección. Utilizando la misma dirección de inicio de cinco, una ráfaga de cuatro palabras devolvería palabras en el orden 5-4-7-6. Una ráfaga de ocho palabras sería 5-4-7-6-1-0-3-2. [7] Aunque es más confuso para los humanos, esto puede ser más fácil de implementar en hardware y es el preferido por Intel para sus microprocesadores. [ cita requerida ]
Si la dirección de la columna solicitada se encuentra al comienzo de un bloque, ambos modos de ráfaga (secuencial e intercalado) devuelven datos en la misma secuencia 0-1-2-3-4-5-6-7. La diferencia solo importa si se obtiene una línea de caché de la memoria en orden de palabra crítica primero.
La SDRAM de velocidad de datos única tiene un único registro de modo programable de 10 bits. Los estándares posteriores de SDRAM de velocidad de datos doble agregan registros de modo adicionales, a los que se accede mediante los pines de dirección de banco. Para la SDRAM SDR, los pines de dirección de banco y las líneas de dirección A10 y superiores se ignoran, pero deben estar en cero durante la escritura de un registro de modo.
Los bits son M9 a M0, presentados en las líneas de dirección A9 a A0 durante un ciclo de registro de modo de carga.
Los estándares de SDRAM posteriores (con doble velocidad de datos) utilizan más bits de registro de modo y proporcionan registros de modo adicionales denominados "registros de modo extendido". El número de registro se codifica en los pines de dirección del banco durante el comando de carga del registro de modo. Por ejemplo, la SDRAM DDR2 tiene un registro de modo de 13 bits, un registro de modo extendido n.º 1 (EMR1) de 13 bits y un registro de modo extendido n.º 2 (EMR2) de 5 bits.
Es posible refrescar un chip de RAM abriendo y cerrando (activando y precargando) cada fila en cada banco. Sin embargo, para simplificar el controlador de memoria, los chips SDRAM admiten un comando de "refresco automático", que realiza estas operaciones en una fila en cada banco simultáneamente. La SDRAM también mantiene un contador interno, que itera sobre todas las filas posibles. El controlador de memoria simplemente debe emitir una cantidad suficiente de comandos de refrescamiento automático (uno por fila, 8192 en el ejemplo que hemos estado usando) cada intervalo de refrescamiento (t REF = 64 ms es un valor común). Todos los bancos deben estar inactivos (cerrados, precargados) cuando se emite este comando.
Como se mencionó, la entrada de habilitación de reloj (CKE) se puede utilizar para detener de manera efectiva el reloj de una SDRAM. La entrada CKE se muestrea en cada flanco ascendente del reloj y, si es baja, el siguiente flanco ascendente del reloj se ignora para todos los fines que no sean verificar CKE. Mientras CKE sea baja, se permite cambiar la frecuencia del reloj o incluso detener el reloj por completo.
Si se baja CKE mientras la SDRAM está realizando operaciones, simplemente se "congela" en su lugar hasta que se sube CKE nuevamente.
Si la SDRAM está inactiva (todos los bancos precargados, sin comandos en curso) cuando se reduce el CKE, la SDRAM ingresa automáticamente al modo de apagado, consumiendo una energía mínima hasta que se aumenta nuevamente el CKE. Esto no debe durar más que el intervalo de actualización máximo t REF , o se pueden perder los contenidos de la memoria. Es legal detener el reloj por completo durante este tiempo para obtener ahorros de energía adicionales.
Por último, si se reduce el CKE al mismo tiempo que se envía un comando de actualización automática a la SDRAM, esta entra en modo de actualización automática. Esto es como un apagado, pero la SDRAM utiliza un temporizador integrado en el chip para generar ciclos de actualización internos según sea necesario. El reloj puede detenerse durante este tiempo. Si bien el modo de actualización automática consume un poco más de energía que el modo de apagado, permite desactivar por completo el controlador de memoria, lo que generalmente compensa con creces la diferencia.
La SDRAM diseñada para dispositivos alimentados por batería ofrece algunas opciones adicionales de ahorro de energía. Una es la actualización dependiente de la temperatura; un sensor de temperatura en el chip reduce la frecuencia de actualización a temperaturas más bajas, en lugar de ejecutarla siempre a la frecuencia más baja. Otra es la actualización selectiva, que limita la actualización automática a una parte de la matriz DRAM. La fracción que se actualiza se configura utilizando un registro de modo extendido. La tercera, implementada en Mobile DDR (LPDDR) y LPDDR2, es el modo de "apagado profundo", que invalida la memoria y requiere una reinicialización completa para salir. Esto se activa enviando un comando de "terminación de ráfaga" mientras se reduce el CKE.
DDR SDRAM emplea una arquitectura de precarga para permitir un acceso rápido y fácil a múltiples palabras de datos ubicadas en una fila física común en la memoria.
La arquitectura de precarga aprovecha las características específicas de los accesos a la memoria DRAM. Las operaciones típicas de la memoria DRAM implican tres fases: precarga de línea de bits, acceso a la fila, acceso a la columna. El acceso a la fila es el corazón de una operación de lectura, ya que implica la detección cuidadosa de las pequeñas señales en las celdas de memoria DRAM; es la fase más lenta de la operación de memoria. Sin embargo, una vez que se lee una fila, los accesos posteriores a la columna de esa misma fila pueden ser muy rápidos, ya que los amplificadores de detección también actúan como pestillos. Como referencia, una fila de un dispositivo DDR3 de 1 Gbit [6] tiene 2048 bits de ancho, por lo que internamente se leen 2048 bits en 2048 amplificadores de detección separados durante la fase de acceso a la fila. Los accesos a la fila pueden tardar 50 ns , dependiendo de la velocidad de la DRAM, mientras que los accesos a la columna de una fila abierta son inferiores a 10 ns.
Las arquitecturas DRAM tradicionales han admitido desde hace mucho tiempo un acceso rápido a los bits de una fila abierta. En el caso de un chip de memoria de 8 bits de ancho con una fila de 2048 bits de ancho, los accesos a cualquiera de las 256 palabras de datos (2048/8) de la fila pueden ser muy rápidos, siempre que no se produzcan accesos intermedios a otras filas.
El inconveniente del antiguo método de acceso rápido a columnas era que se debía enviar una nueva dirección de columna por cada palabra de datos adicional en la fila. El bus de direcciones tenía que funcionar a la misma frecuencia que el bus de datos. La arquitectura de precarga simplifica este proceso al permitir que una única solicitud de dirección dé como resultado varias palabras de datos.
En una arquitectura de búfer de precarga, cuando se produce un acceso de memoria a una fila, el búfer toma un conjunto de palabras de datos adyacentes en la fila y las lee ("las distribuye") en una secuencia rápida en los pines de E/S, sin necesidad de solicitudes de direcciones de columna individuales. Esto supone que la CPU desea palabras de datos adyacentes en la memoria, lo que en la práctica es muy a menudo el caso. Por ejemplo, en DDR1, se leerán dos palabras de datos adyacentes de cada chip en el mismo ciclo de reloj y se colocarán en el búfer de precarga. Luego, cada palabra se transmitirá en flancos ascendentes y descendentes consecutivos del ciclo de reloj. De manera similar, en DDR2 con un búfer de precarga de 4n, se leen cuatro palabras de datos consecutivas y se colocan en el búfer mientras un reloj, que es dos veces más rápido que el reloj interno de DDR, transmite cada una de las palabras en flancos ascendentes y descendentes consecutivos del reloj externo más rápido [8].
La profundidad del búfer de precarga también se puede considerar como la relación entre la frecuencia de la memoria central y la frecuencia de E/S. En una arquitectura de precarga de 8n (como DDR3 ), las E/S funcionarán 8 veces más rápido que el núcleo de memoria (cada acceso a la memoria da como resultado una ráfaga de 8 palabras de datos en las E/S). Por lo tanto, un núcleo de memoria de 200 MHz se combina con E/S que funcionan cada una ocho veces más rápido (1600 megabits por segundo). Si la memoria tiene 16 E/S, el ancho de banda de lectura total sería 200 MHz x 8 palabras de datos/acceso x 16 E/S = 25,6 gigabits por segundo (Gbit/s) o 3,2 gigabytes por segundo (GB/s). Los módulos con múltiples chips DRAM pueden proporcionar un ancho de banda correspondientemente mayor.
Cada generación de SDRAM tiene un tamaño de búfer de precarga diferente:
Originalmente conocida simplemente como SDRAM , la SDRAM de velocidad de datos única puede aceptar un comando y transferir una palabra de datos por ciclo de reloj. Los chips se fabrican con una variedad de tamaños de bus de datos (lo más común es de 4, 8 o 16 bits), pero los chips generalmente se ensamblan en DIMM de 168 pines que leen o escriben 64 (no ECC) o 72 ( ECC ) bits a la vez.
El uso del bus de datos es complejo y, por lo tanto, requiere un circuito controlador de DRAM complejo. Esto se debe a que los datos escritos en la DRAM deben presentarse en el mismo ciclo que el comando de escritura, pero las lecturas producen una salida 2 o 3 ciclos después del comando de lectura. El controlador de DRAM debe garantizar que el bus de datos nunca sea necesario para una lectura y una escritura al mismo tiempo.
Las frecuencias de reloj típicas de la SDRAM SDR son 66, 100 y 133 MHz (períodos de 15, 10 y 7,5 ns), denominadas respectivamente PC66, PC100 y PC133. Se encuentran disponibles frecuencias de reloj de hasta 200 MHz. Funciona a un voltaje de 3,3 V.
Este tipo de SDRAM es más lento que las variantes DDR, porque solo se transmite una palabra de datos por ciclo de reloj (velocidad de datos única). Pero este tipo también es más rápido que sus predecesores, la DRAM de salida de datos extendida (EDO-RAM) y la DRAM de modo de página rápida (FPM-RAM), que normalmente necesitaban dos o tres ciclos de reloj para transferir una palabra de datos.
PC66 se refiere al estándar de memoria interna extraíble para computadoras definido por el JEDEC . PC66 es una DRAM síncrona que opera a una frecuencia de reloj de 66,66 MHz, en un bus de 64 bits, a un voltaje de 3,3 V. PC66 está disponible en formatos DIMM de 168 pines y SO-DIMM de 144 pines . El ancho de banda teórico es de 533 MB/s (1 MB/s = un millón de bytes por segundo).
Este estándar fue utilizado por los ordenadores basados en Intel Pentium y AMD K6 . También se utiliza en el Beige Power Mac G3 , los primeros iBooks y PowerBook G3 . También se utiliza en muchos de los primeros sistemas Intel Celeron con un FSB de 66 MHz . Fue reemplazado por los estándares PC100 y PC133.
PC100 es un estándar para memorias de acceso aleatorio internas extraíbles para computadoras , definido por el JEDEC . PC100 se refiere a una DRAM síncrona que opera a una frecuencia de reloj de 100 MHz, en un bus de 64 bits de ancho, a un voltaje de 3,3 V. PC100 está disponible en factores de forma DIMM de 168 pines y SO-DIMM de 144 pines . PC100 es compatible con versiones anteriores de PC66 y fue reemplazado por el estándar PC133.
Un módulo construido con chips SDRAM de 100 MHz no necesariamente es capaz de funcionar a 100 MHz. El estándar PC100 especifica las capacidades del módulo de memoria en su conjunto. El PC100 se utiliza en muchos ordenadores antiguos; los PC de finales de los años 90 eran los ordenadores más comunes con memoria PC100.
PC133 es un estándar de memoria de computadora definido por el JEDEC . PC133 se refiere a SDR SDRAM que opera a una frecuencia de reloj de 133 MHz, en un bus de 64 bits de ancho, a un voltaje de 3,3 V. PC133 está disponible en factores de forma DIMM de 168 pines y SO-DIMM de 144 pines . PC133 es el estándar SDR SDRAM más rápido y final jamás aprobado por el JEDEC, y ofrece un ancho de banda de 1,066 GB por segundo ([133,33 MHz * 64/8] = 1,066 GB/s). (1 GB/s = mil millones de bytes por segundo) PC133 es compatible con versiones anteriores de PC100 y PC66.
Aunque la latencia de acceso de la DRAM está limitada fundamentalmente por la matriz DRAM, la DRAM tiene un ancho de banda potencial muy alto porque cada lectura interna es en realidad una fila de muchos miles de bits. Para que más de este ancho de banda esté disponible para los usuarios, se desarrolló una interfaz de doble velocidad de datos . Esta utiliza los mismos comandos, aceptados una vez por ciclo, pero lee o escribe dos palabras de datos por ciclo de reloj. La interfaz DDR logra esto leyendo y escribiendo datos tanto en los flancos ascendentes como descendentes de la señal de reloj. Además, se realizaron algunos cambios menores en la sincronización de la interfaz SDR en retrospectiva, y el voltaje de suministro se redujo de 3,3 a 2,5 V. Como resultado, la DDR SDRAM no es compatible con versiones anteriores de la SDR SDRAM.
DDR SDRAM (a veces llamada DDR1 para mayor claridad) duplica la unidad mínima de lectura o escritura; cada acceso se refiere al menos a dos palabras consecutivas.
Las frecuencias de reloj típicas de la memoria DDR SDRAM son 133, 166 y 200 MHz (7,5, 6 y 5 ns/ciclo), generalmente descritas como DDR-266, DDR-333 y DDR-400 (3,75, 3 y 2,5 ns por pulsación). Las DIMM de 184 pines correspondientes se conocen como PC-2100, PC-2700 y PC-3200. Se encuentra disponible un rendimiento de hasta DDR-550 (PC-4400).
La memoria SDRAM DDR2 es muy similar a la DDR SDRAM, pero duplica nuevamente la unidad mínima de lectura o escritura, a cuatro palabras consecutivas. El protocolo de bus también se simplificó para permitir un funcionamiento de mayor rendimiento (en particular, se eliminó el comando "burst ends"). Esto permite duplicar la velocidad del bus de la SDRAM sin aumentar la velocidad de reloj de las operaciones de la RAM interna; en cambio, las operaciones internas se realizan en unidades cuatro veces más amplias que la SDRAM. Además, se agregó un pin de dirección de banco adicional (BA2) para permitir ocho bancos en chips de RAM grandes.
Las frecuencias de reloj típicas de la memoria DDR2 SDRAM son 200, 266, 333 o 400 MHz (períodos de 5, 3,75, 3 y 2,5 ns), generalmente descritas como DDR2-400, DDR2-533, DDR2-667 y DDR2-800 (períodos de 2,5, 1,875, 1,5 y 1,25 ns). Las DIMM de 240 pines correspondientes se conocen como PC2-3200 a PC2-6400. La memoria DDR2 SDRAM ahora está disponible a una frecuencia de reloj de 533 MHz, generalmente descrita como DDR2-1066, y las DIMM correspondientes se conocen como PC2-8500 (también llamadas PC2-8600, según el fabricante). Hay disponible un rendimiento de hasta DDR2-1250 (PC2-10000).
Tenga en cuenta que debido a que las operaciones internas se realizan a la mitad de la frecuencia de reloj, la memoria DDR2-400 (frecuencia de reloj interna de 100 MHz) tiene una latencia ligeramente mayor que la DDR-400 (frecuencia de reloj interna de 200 MHz).
DDR3 continúa la tendencia, duplicando la unidad mínima de lectura o escritura a ocho palabras consecutivas. Esto permite duplicar nuevamente el ancho de banda y la velocidad del bus externo sin tener que cambiar la velocidad de reloj de las operaciones internas, solo el ancho. Para mantener 800–1600 M de transferencias/s (ambos bordes de un reloj de 400–800 MHz), la matriz de RAM interna tiene que realizar 100–200 M de búsquedas por segundo.
Nuevamente, con cada duplicación, la desventaja es el aumento de la latencia . Como con todas las generaciones de DDR SDRAM, los comandos aún están restringidos a un flanco de reloj y las latencias de los comandos se dan en términos de ciclos de reloj, que son la mitad de la velocidad de la tasa de transferencia que se cita habitualmente (una latencia CAS de 8 con DDR3-800 es 8/(400 MHz) = 20 ns, exactamente la misma latencia de CAS2 en PC100 SDR SDRAM).
Los chips de memoria DDR3 se están fabricando comercialmente [11] , y los sistemas informáticos que los utilizan estuvieron disponibles a partir de la segunda mitad de 2007 [12] , con un uso significativo a partir de 2008 en adelante. [13] Las velocidades de reloj iniciales eran de 400 y 533 MHz, que se describen como DDR3-800 y DDR3-1066 (módulos PC3-6400 y PC3-8500), pero ahora son comunes las de 667 y 800 MHz, descritas como DDR3-1333 y DDR3-1600 (módulos PC3-10600 y PC3-12800). [14] Se encuentran disponibles rendimientos de hasta DDR3-2800 (módulos PC3 22400). [15]
DDR4 SDRAM es el sucesor de DDR3 SDRAM . Fue revelado en el Intel Developer Forum en San Francisco en 2008, y estaba previsto que fuera lanzado al mercado durante 2011. El momento varió considerablemente durante su desarrollo: originalmente se esperaba que fuera lanzado en 2012, [16] y más tarde (durante 2010) se esperaba que fuera lanzado en 2015, [17] antes de que se anunciaran las muestras a principios de 2011 y los fabricantes comenzaran a anunciar que la producción comercial y el lanzamiento al mercado se anticipaban en 2012. DDR4 alcanzó la adopción del mercado masivo alrededor de 2015, lo que es comparable con los aproximadamente cinco años que tardó DDR3 en lograr la transición al mercado masivo sobre DDR2.
Los chips DDR4 funcionan a 1,2 V o menos, [18] [19] en comparación con los 1,5 V de los chips DDR3, y tienen más de 2 mil millones de transferencias de datos por segundo. Se esperaba que se introdujeran a frecuencias de 2133 MHz, que se estima que aumentarán a un potencial de 4266 MHz [20] y un voltaje reducido de 1,05 V [21] para 2013.
DDR4 no volvió a duplicar el ancho de prefetch interno, sino que utiliza el mismo prefetch de 8 n que DDR3. [22] Por lo tanto, será necesario intercalar lecturas de varios bancos para mantener ocupado el bus de datos.
En febrero de 2009, Samsung validó los chips DRAM de 40 nm, lo que se consideró un "paso significativo" hacia el desarrollo de la DDR4 [23], ya que, a partir de 2009, los chips DRAM actuales apenas comenzaban a migrar a un proceso de 50 nm. [24] En enero de 2011, Samsung anunció la finalización y el lanzamiento para pruebas de un módulo DRAM DDR4 de 2048 MB [6] de 30 nm . Tiene un ancho de banda máximo de 2,13 Gbit/s a 1,2 V, utiliza tecnología de drenaje pseudoabierto y consume un 40% menos de energía que un módulo DDR3 equivalente. [25] [26]
En marzo de 2017, JEDEC anunció que se estaba desarrollando un estándar DDR5, [27] pero no proporcionó detalles excepto los objetivos de duplicar el ancho de banda de DDR4, reducir el consumo de energía y publicar el estándar en 2018. El estándar se publicó el 14 de julio de 2020. [28]
Además de DDR, se propusieron varias otras tecnologías de memoria para reemplazar a SDR SDRAM.
La RDRAM era una tecnología patentada que competía con la DDR. Su precio relativamente alto y su rendimiento decepcionante (resultado de las altas latencias y un canal de datos estrecho de 16 bits frente al canal de 64 bits de la DDR) hicieron que perdiera la carrera para suceder a la SDR SDRAM.
La memoria SLDRAM ofrecía un mayor rendimiento y competía con la RDRAM. Fue desarrollada a finales de los años 90 por el Consorcio SLDRAM, que estaba formado por unos 20 importantes fabricantes de DRAM y de la industria informática (el Consorcio SLDRAM pasó a ser una sociedad anónima bajo el nombre de SLDRAM Inc. y luego cambió su nombre a Advanced Memory International, Inc.). La memoria SLDRAM era un estándar abierto y no requería el pago de licencias. Las especificaciones exigían un bus de 64 bits que funcionara a una frecuencia de reloj de 200, 300 o 400 MHz. Esto se consigue porque todas las señales están en la misma línea y, por tanto, se evita el tiempo de sincronización de varias líneas. Al igual que la DDR SDRAM , la memoria SLDRAM utiliza un bus de doble bombeo, lo que le proporciona una velocidad efectiva de 400, [29] 600, [30] u 800 MT/s (1 MT/s = 1000^2 transferencias por segundo).
La SLDRAM utilizaba un bus de comandos de 11 bits (10 bits de comandos CA9:0 más una línea FLAG de inicio de comando) para transmitir paquetes de comandos de 40 bits en 4 bordes consecutivos de un reloj de comandos diferencial (CCLK/CCLK#). A diferencia de la SDRAM, no había señales de selección por chip; a cada chip se le asignaba un ID cuando se reiniciaba, y el comando contenía el ID del chip que debía procesarlo. Los datos se transferían en ráfagas de 4 u 8 palabras a través de un bus de datos de 18 bits (por chip), utilizando uno de dos relojes de datos diferenciales (DCLK0/DCLK0# y DCLK1/DCLK1#). A diferencia de la SDRAM estándar, el reloj lo generaba la fuente de datos (el chip SLDRAM en el caso de una operación de lectura) y se transmitía en la misma dirección que los datos, lo que reducía en gran medida la desviación de los datos. Para evitar la necesidad de una pausa cuando cambia la fuente del DCLK, cada comando especificaba qué par DCLK utilizaría. [31]
El comando básico de lectura/escritura consistía en (comenzando con CA9 de la primera palabra):
Los dispositivos individuales tenían identificadores de 8 bits. El noveno bit del identificador enviado en los comandos se utilizaba para direccionar varios dispositivos. Se podía direccionar cualquier grupo alineado de tamaño potencia de 2. Si se configuraba el bit ms transmitido, se ignoraban todos los bits menos significativos hasta el bit 0 menos significativo de la dirección transmitida, inclusive, para fines de preguntarse "¿esto está dirigido a mí?". (Si el bit ID8 se considera en realidad menos significativo que el ID0, la correspondencia de direcciones unicast se convierte en un caso especial de este patrón).
Un comando de lectura/escritura tenía el msbit limpio:
Una omisión notable de la especificación fue la habilitación de escritura por byte; fue diseñada para sistemas con cachés y memoria ECC , que siempre escriben en múltiplos de una línea de caché.
Los comandos adicionales (con CMD5 configurado) abrían y cerraban filas sin transferencia de datos, realizaban operaciones de actualización, leían o escribían registros de configuración y realizaban otras operaciones de mantenimiento. La mayoría de estos comandos admitían un sub-ID adicional de 4 bits (enviado como 5 bits, utilizando la misma codificación de múltiples destinos que el ID principal) que se podía utilizar para distinguir dispositivos a los que se les asignaba el mismo ID principal porque estaban conectados en paralelo y siempre se leían y escribían al mismo tiempo.
Había una serie de registros de control de 8 bits y registros de estado de 32 bits para controlar varios parámetros de sincronización del dispositivo.
VCM era un tipo propietario de SDRAM que fue diseñado por NEC , pero lanzado como un estándar abierto sin tarifas de licencia. Es compatible con pines con SDRAM estándar, pero los comandos son diferentes. La tecnología era un competidor potencial de RDRAM porque VCM no era tan caro como lo era RDRAM. Un módulo de memoria de canal virtual (VCM) es mecánica y eléctricamente compatible con SDRAM estándar, por lo que la compatibilidad con ambos depende solo de las capacidades del controlador de memoria . A fines de la década de 1990, varios conjuntos de chips de puente norte para PC (como los populares VIA KX133 y KT133 ) incluyeron compatibilidad con VCSDRAM.
VCM inserta una caché SRAM de 16 buffers de "canal", cada uno de ellos de un "segmento" de 1/4 de fila de tamaño, entre las filas de amplificadores de detección de los bancos de DRAM y los pines de E/S de datos. Los comandos "Prefetch" y "restore", exclusivos de VCSDRAM, copian datos entre la fila de amplificadores de detección de la DRAM y los buffers de canal, mientras que el equivalente de los comandos de lectura y escritura de SDRAM especifica un número de canal al que acceder. De este modo, las lecturas y escrituras se pueden realizar independientemente del estado activo actual de la matriz de DRAM, con el equivalente a cuatro filas de DRAM completas "abiertas" para el acceso a la vez. Esto es una mejora con respecto a las dos filas abiertas posibles en una SDRAM estándar de dos bancos. (En realidad, hay un "canal ficticio" número 17 que se utiliza para algunas operaciones).
Para leer desde VCSDRAM, después del comando activo, se requiere un comando "prefetch" para copiar datos desde la matriz de amplificadores de detección a la SDRAM del canal. Este comando especifica un banco, dos bits de dirección de columna (para seleccionar el segmento de la fila) y cuatro bits de número de canal. Una vez realizado esto, la matriz DRAM puede precargarse mientras continúan los comandos de lectura al búfer del canal. Para escribir, primero se escriben los datos en un búfer de canal (normalmente inicializado previamente mediante un comando Prefetch), luego un comando de restauración, con los mismos parámetros que el comando prefetch, copia un segmento de datos desde el canal a la matriz de amplificadores de detección.
A diferencia de una escritura SDRAM normal, que debe realizarse en una fila activa (abierta), el banco VCSDRAM debe estar precargado (cerrado) cuando se emite el comando de restauración. Un comando activo inmediatamente después del comando de restauración especifica la fila DRAM que completa la escritura en la matriz DRAM. Además, hay un 17.º "canal ficticio" que permite escrituras en la fila actualmente abierta. No se puede leer desde ella, pero se puede precargar, escribir y restaurar en la matriz amplificadora de detección. [32] [33]
Aunque normalmente un segmento se restaura a la misma dirección de memoria de la que se obtuvo previamente, los búferes de canal también se pueden utilizar para copiar o borrar de forma muy eficiente bloques de memoria grandes y alineados. (El uso de segmentos de un cuarto de fila se debe al hecho de que las celdas DRAM son más estrechas que las celdas SRAM). Los bits SRAM están diseñados para tener cuatro bits DRAM de ancho y están convenientemente conectados a uno de los cuatro bits DRAM que se encuentran a caballo entre ellos.) Los comandos adicionales obtienen previamente un par de segmentos en un par de canales, y un comando opcional combina la obtención previa, la lectura y la precarga para reducir la sobrecarga de las lecturas aleatorias.
Los comandos anteriores son los estandarizados por JEDEC. Los chips anteriores no admitían el canal ficticio ni la precarga de pares, y utilizaban una codificación diferente para la precarga.
Un bus de direcciones de 13 bits, como el que se ilustra aquí, es adecuado para un dispositivo de hasta 128 Mbit [6] . Tiene dos bancos, cada uno de los cuales contiene 8192 filas y 8192 columnas. Por lo tanto, las direcciones de fila son 13 bits, las direcciones de segmento son dos bits y se requieren ocho bits de dirección de columna para seleccionar un byte de los 2048 bits (256 bytes) de un segmento.
La memoria RAM de gráficos síncrona (SGRAM) es una forma especializada de SDRAM para adaptadores gráficos. Está diseñada para tareas relacionadas con gráficos, como memoria de texturas y framebuffers , que se encuentran en tarjetas de video . Agrega funciones como enmascaramiento de bits (escribir en un plano de bits específico sin afectar los demás) y escritura en bloque (llenar un bloque de memoria con un solo color). A diferencia de la VRAM y la WRAM , la SGRAM tiene un solo puerto. Sin embargo, puede abrir dos páginas de memoria a la vez, lo que simula la naturaleza de puerto dual de otras tecnologías de RAM de video.
Las primeras memorias SGRAM conocidas son chips de 8 Mbit [6] que datan de 1994: el Hitachi HM5283206, presentado en noviembre de 1994, [34] y el NEC μPD481850, presentado en diciembre de 1994. [35] El primer dispositivo comercial conocido que utiliza SGRAM es la consola de videojuegos PlayStation (PS) de Sony , comenzando con el modelo japonés SCPH-5000 lanzado en diciembre de 1995, que utiliza el chip NEC μPD481850. [36] [37]
La SDRAM de doble velocidad de datos para gráficos ( GDDR SDRAM ) es un tipo de SDRAM DDR especializada diseñada para usarse como memoria principal de las unidades de procesamiento gráfico (GPU). La SDRAM GDDR se diferencia de los tipos básicos de SDRAM DDR, como la DDR3, aunque comparten algunas tecnologías básicas. Sus características principales son frecuencias de reloj más altas tanto para el núcleo DRAM como para la interfaz de E/S, lo que proporciona un mayor ancho de banda de memoria para las GPU. A partir de 2023, hay ocho generaciones sucesivas de GDDR: GDDR2 , GDDR3 , GDDR4 , GDDR5 , GDDR5X , GDDR6 , GDDR6X y GDDR6W .
La GDDR se conocía inicialmente como DDR SGRAM. Samsung Electronics la introdujo comercialmente como un chip de memoria de 16 Mbit [6] en 1998. [38]
High Bandwidth Memory (HBM) es una interfaz de RAM de alto rendimiento para SDRAM apiladas en 3D de Samsung , AMD y SK Hynix . Está diseñada para usarse junto con aceleradores de gráficos de alto rendimiento y dispositivos de red. [39] El primer chip de memoria HBM fue producido por SK Hynix en 2013. [40]
La primera DRAM sincrónica comercial, la Samsung KM48SL2000 de 16 Mbit, emplea una arquitectura de banco único que permite a los diseñadores de sistemas realizar fácilmente la transición de sistemas asincrónicos a sincrónicos.
{{cite news}}
: CS1 maint: unfit URL (link)