Memoria dinámica síncrona de acceso aleatorio
Memoria dinámica síncrona de acceso aleatorio (RAM dinámica síncrona o SDRAM) es cualquier DRAM en la que se coordina el funcionamiento de su interfaz de clavija externa. por una señal de reloj suministrada externamente.
Los circuitos integrados (CI) de DRAM producidos desde principios de la década de 1970 hasta principios de la década de 1990 usaban una interfaz asincrónica, en la que las señales de control de entrada tienen un efecto directo en las funciones internas solo retrasadas por el viaje a través de sus rutas de semiconductores.. SDRAM tiene una interfaz sincrónica, mediante la cual 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 del reloj controla el paso de una máquina interna de estado finito 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 del mismo tamaño pero independientes llamadas bancos, lo que permite que el dispositivo funcione con un comando de acceso a la memoria en cada banco simultáneamente y acelere el acceso de forma intercalada. Esto permite que las SDRAM logren una mayor concurrencia y tasas de transferencia de datos más altas que las DRAM asíncronas.
La canalización significa que el chip puede aceptar un nuevo comando antes de que haya terminado de procesar el anterior. Para una escritura canalizada, el comando de escritura puede ser seguido inmediatamente por otro comando sin esperar a que los datos se escriban en la matriz de memoria. Para una lectura canalizada, 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.
Historia
Las primeras DRAM a menudo se sincronizaban con el reloj de la CPU (reloj) y se usaban con los primeros microprocesadores. A mediados de la década de 1970, las DRAM cambiaron al diseño asíncrono, pero en la década de 1990 volvieron al funcionamiento síncrono.
La primera SDRAM comercial fue el chip de memoria Samsung KM48SL2000, que tenía una capacidad de 16 Mbit. Fue fabricado por Samsung Electronics utilizando un proceso de fabricación CMOS (semiconductor de óxido de metal complementario) en 1992 y producido en masa en 1993. En 2000, 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 SDRAM no es inherentemente más baja (tiempos de acceso más rápidos) que la DRAM asíncrona. De hecho, la SDRAM temprana era algo más lenta que la EDO DRAM de ráfaga contemporánea debido a la lógica adicional. Los beneficios del almacenamiento en búfer interno de SDRAM provienen de su capacidad para intercalar operaciones en múltiples bancos de memoria, lo que aumenta el ancho de banda efectivo.
Hoy en día, prácticamente toda la SDRAM se fabrica de acuerdo 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.
La SDRAM de doble velocidad de datos, conocida como DDR SDRAM, fue demostrada por primera vez por Samsung en 1997. Samsung lanzó el primer chip DDR SDRAM comercial (64 Mbit) en junio de 1998, seguido poco después por Hyundai Electronics (ahora SK Hynix) el mismo año.
SDRAM también está disponible en variedades registradas, para sistemas que requieren una mayor escalabilidad, como servidores y estaciones de trabajo.
Actualmente, los mayores fabricantes de SDRAM del mundo incluyen: Samsung Electronics, SK Hynix, Micron Technology y Nanya Technology.
Tiempo
Hay varios límites en el rendimiento de DRAM. Lo más destacado es el tiempo del ciclo de lectura, el tiempo entre operaciones de lectura sucesivas a una fila abierta. Esta vez disminuyó de 10 ns para 100 MHz SDRAM (1 MHz = 106{displaystyle 10^{6}Hz) a 5 ns para DDR-400, pero ha permanecido relativamente invariable a través de las generaciones DDR2-800 y DDR3-1600. Sin embargo, al operar el circuito de interfaz a múltiplos cada vez más altos de la tasa de lectura fundamental, el ancho de banda alcanzable ha aumentado rápidamente.
Otro límite es la latencia CAS, el tiempo entre el suministro de una dirección de columna y la recepción de los datos correspondientes. Una vez más, esto se ha mantenido relativamente constante entre 10 y 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 SDRAM y esperado por el controlador de 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 DDR-400 SDRAM, CL4-6 para DDR2-800 y CL8-12 para 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 tiempo, que pueden ser más lentas que las de los chips del módulo. Cuando aparecieron por primera vez los chips SDRAM de 100 MHz, algunos fabricantes vendieron chips de "100 MHz" módulos que no podían funcionar de forma fiable 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 fue muy influyente y el término "PC100" rápidamente se convirtió en un identificador común para los módulos SDRAM de 100 MHz, y los módulos ahora se designan comúnmente con números con el prefijo "PC" (PC66, PC100 o PC133, aunque el significado real de los números ha cambiado).
Señales de control
Todos los comandos se cronometran en relación con el flanco ascendente de una señal de reloj. Además del reloj, hay seis señales de control, en su mayoría bajas activas, que se muestrean en el flanco ascendente del reloj:
- CKE El reloj permite. Cuando esta señal es baja, el chip se comporta como si el reloj se hubiera detenido. No se interpretan comandos y los tiempos de latencia no pasan. El estado de otras líneas de control no es relevante. El efecto de esta señal se retrasa en un ciclo de reloj. Es decir, el ciclo de reloj actual procede como de costumbre, pero el ciclo de reloj siguiente es ignorado, excepto para probar la entrada CKE de nuevo. Las operaciones normales reanudan en el borde ascendente del reloj después del que el CKE se muestra alto. De otra manera, todas las demás operaciones de chips están temporizadas en relación con el borde ascendente de un reloj enmascarado. El reloj enmascarado es la lógica Y del reloj de entrada y el estado de la señal CKE durante el borde del reloj de entrada anterior.
- CS chip select. Cuando esta señal es alta, el chip ignora todas las otras entradas (excepto CKE), y actúa como si se reciba un comando NOP.
- DQM Máscara de datos. (La carta) Q aparece porque, siguiendo las convenciones de lógica digital, las líneas de datos se conocen como líneas "DQ".) Cuando está alta, estas señales suprimen los datos I/O. Al acompañar los datos de escritura, los datos no se escriben realmente al DRAM. Cuando se afirman dos ciclos altos antes de un ciclo de lectura, los datos de lectura no se obtienen del chip. Hay una línea DQM por 8 bits en un chip de memoria x16 o DIMM.
Señales de comando
- RAS, dirección de fila strobe. A pesar del nombre, esto es no un estrobo, pero simplemente un poco de comando. Junto con CAS y Nosotros, esto selecciona uno de los ocho comandos.
- CAS, dirección de columna strobe. Esto tampoco es un estrobo, sino un poco de mando. Junto con RAS y Nosotros, esto selecciona uno de los ocho comandos.
- NosotrosEscribir habilitante. Junto con RAS y CAS, esto selecciona uno de los ocho comandos. Generalmente distingue comandos parecidos a lectura de comandos tipo escritura.
Selección de banco (BAn)
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.
Direccionamiento (A10/An)
Muchos comandos también usan una dirección presentada en los pines de entrada de dirección. Algunos comandos, que no usan una dirección o presentan una dirección de columna, también usan A10 para seleccionar variantes.
Comandos
Los comandos SDR SDRAM se definen de la siguiente manera:
CS | RAS | CAS | Nosotros | BAn | A10 | An | Comando |
---|---|---|---|---|---|---|---|
H | x | x | x | x | x | x | Inhibición del comando (sin operación) |
L | H | H | H | x | x | x | Sin operación |
L | H | H | L | x | x | x | Burst termina: detenga un estallido leído o estallido escribe en progreso |
L | H | L | H | banco | L | columna | Lea: Lea una explosión de datos de la fila actualmente activa |
L | H | L | H | banco | H | columna | Lea con recarga automática: como arriba, y precargo (cerrar fila) cuando se hace |
L | H | L | L | banco | L | columna | Escribe: escribe una ráfaga de datos a la fila actualmente activa |
L | H | L | L | banco | H | columna | Escriba con recarga automática: como arriba, y precargo (cerrar fila) cuando se hace |
L | L | H | H | banco | fila | Active (activar): abrir una fila para leer y escribir comandos | |
L | L | H | L | banco | L | x | Precarga: desactivar (cerrar) la fila actual del banco seleccionado |
L | L | H | L | x | H | x | Precarga todo: desactivar (cerrar) la fila actual de todos los bancos |
L | L | L | H | x | x | x | Refrigerio automático: refrescar una fila de cada banco, utilizando un contador interno. Todos los bancos deben ser precargados. |
L | L | L | L | 0 | modo | Registro del modo de carga: A0 a A9 se cargan para configurar el chip DRAM. Los ajustes más significativos son latencia CAS (2 o 3 ciclos) y la longitud de la explosión (1, 2, 4 o 8 ciclos) |
Todas las generaciones de SDRAM (SDR y DDRx) usan esencialmente los mismos comandos, con los siguientes cambios:
- bits de dirección adicionales para soportar dispositivos más grandes
- Banco adicional selecciona bits
- Registros de modo más ancho (DDR2 y uso superior 13 bits, A0–A12)
- Registros adicionales de modos extendidos (seleccionados por los bits de dirección bancaria)
- DDR2 elimina el comando de terminación de la ráfaga; DDR3 lo reasigna como "calibración de ZQ"
- DDR3 y DDR4 utilizan A12 durante el comando leer y escribir para indicar "burst chop", transferencia de datos de media longitud
- DDR4 cambia la codificación del comando activado. Una nueva señal ACTO controla, durante el cual las otras líneas de control se utilizan como dirección hilera bits 16, 15 y 14. Cuando ACTO es alto, otros comandos son los mismos que arriba.
Construcción y operación
Por ejemplo, un '512 MB' SDRAM DIMM (que contiene 512 MB), puede estar compuesto por ocho o nueve chips SDRAM, cada uno con 512 Mbit de almacenamiento y cada uno contribuye con 8 bits al DIMM de 64 o 72 bits de ancho. Un chip SDRAM típico de 512 Mbit 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 está inactivo, activo o cambiando de uno a otro.
El comando active 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 todos los amplificadores de detección de 16 384 columnas. Esto también se conoce como "apertura" 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", los comandos leer y escribir son posibles para esa fila. La activación requiere una cantidad mínima de tiempo, denominada retardo de fila a columna, o tRCD antes de que se produzcan lecturas o escrituras. Este tiempo, redondeado al siguiente múltiplo del período del reloj, especifica el número mínimo de ciclos de espera entre un comando activo y una lectura o escritura comando. Durante estos ciclos de espera, se pueden enviar comandos adicionales a otros bancos; porque cada banco opera de manera completamente independiente.
Los comandos leer y escribir requieren una dirección de columna. Debido a que cada chip accede a ocho bits de datos a la vez, hay 2048 direcciones de columna posibles, por lo que solo se requieren 11 líneas de dirección (A0–A9, A11).
Cuando se emite un comando leer, la SDRAM producirá los datos de salida correspondientes en las líneas DQ a tiempo para el flanco ascendente del reloj unos ciclos de reloj más tarde, dependiendo de la latencia CAS configurada. Las palabras subsiguientes de la ráfaga se producirán a tiempo para los siguientes flancos ascendentes del reloj.
Un comando de escritura va acompañado de los datos que se escribirán en las líneas DQ durante el mismo flanco ascendente del reloj. Es deber del controlador de memoria asegurarse de que la SDRAM no envíe 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, listo para detectar la siguiente fila. Esto se conoce como "precarga" operación o "cierre" La fila. Se puede ordenar explícitamente una precarga o se puede realizar automáticamente al finalizar una operación de lectura o escritura. Nuevamente, hay un tiempo mínimo, el retraso de precarga de la fila, tRP, que debe transcurrir antes de que esa fila esté completamente "cerrada" y así el banco está inactivo para recibir otro comando de activación en ese banco.
Aunque actualizar una fila es un efecto secundario automático de activarla, hay un tiempo mínimo para que esto suceda, lo que requiere un tiempo mínimo de acceso a la fila tRAS retraso entre un activo comando que abre una fila y el comando de precarga correspondiente 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.
Interacciones de comandos
El comando de no operación siempre está permitido, mientras que el comando de registro del 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 toma un tiempo de ciclo de actualización tRFC para devolver el chip al estado inactivo. (Este tiempo suele ser igual a tRCD+tRP). El único otro comando que se permite en un banco inactivo es el comando activo. Esto toma, como se mencionó anteriormente, tRCD 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: leer, escribir, terminar en ráfaga y precargar. Los comandos de lectura y escritura comienzan ráfagas, que pueden interrumpirse con los siguientes comandos.
Interrumpir una ráfaga de lectura
Se puede emitir un comando de lectura, finalización de ráfaga o precarga en cualquier momento después de un comando de lectura, e interrumpirá la ráfaga de lectura después de la latencia CAS configurada. Entonces, si se emite un comando de lectura en el ciclo 0, otro comando de lectura se emite en el ciclo 2 y la latencia CAS es 3, entonces el primer comando de lectura comenzará a generar datos durante los ciclos 3 y 4, luego los resultados de la segunda lectura El comando aparecerá 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 de interrupción puede ser para cualquier banco activo, un comando de precarga solo interrumpirá la ráfaga de lectura si es para el mismo banco o para 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 con un comando de escritura, pero es más difícil. Se puede hacer si la señal DQM se usa para suprimir la salida de la SDRAM para que el controlador de memoria pueda enviar datos a través de las líneas DQ a la SDRAM a tiempo para la operación de escritura. Debido a que los efectos de DQM en los datos de lectura se retrasan dos ciclos, pero los efectos de DQM en 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 para el ciclo del comando de escritura (suponiendo que el comando de escritura tenga un efecto).
Hacer esto en solo dos ciclos de reloj requiere una cuidadosa coordinación entre el tiempo que tarda la SDRAM en apagar su salida en un borde del reloj y el tiempo que los datos deben suministrarse como entrada a la SDRAM para la escritura en el siguiente borde del reloj. Si la frecuencia del reloj es demasiado alta para permitir el tiempo suficiente, se pueden requerir tres ciclos.
Si el comando de lectura incluye precarga automática, la precarga comienza el mismo ciclo que el comando de interrupción.
Pedido de ráfagas
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 con 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 desencadena por una lectura de una dirección particular, y SDRAM permite que la "palabra crítica" de la línea de caché que se transferirá 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 convenciones posibles para el orden de las palabras restantes en la línea de caché.
Las ráfagas siempre acceden a un bloque alineado de palabras consecutivas BL que comienzan en un múltiplo de BL. Entonces, por ejemplo, un acceso en ráfaga de cuatro palabras a cualquier dirección de columna de cuatro a siete devolverá las palabras cuatro a siete. El orden, sin embargo, depende de la dirección solicitada y de la opción de tipo de ráfaga configurada: secuencial o intercalada. Por lo general, un controlador de memoria requerirá uno u otro. Cuando la duración de la 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 se accede a la otra palabra en el 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.
Para el modo de ráfaga secuencial, se accede a las palabras posteriores en orden de dirección creciente, regresando al inicio del bloque cuando se llega al final. Entonces, 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 la ráfaga fuera ocho, el orden de acceso sería 5-6-7-0-1-2-3-4. Esto se hace agregando un contador a la dirección de la columna e ignorando los acarreos más allá de la longitud de la ráfaga. El modo de ráfaga intercalado calcula la dirección usando una operación o exclusiva entre el contador y la dirección. Usando la misma dirección inicial 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. Aunque es más confuso para los humanos, esto puede ser más fácil de implementar en hardware e Intel lo prefiere para sus microprocesadores.
Si la dirección de la columna solicitada está al comienzo de un bloque, ambos modos de ráfaga (secuencial e intercalado) devuelven datos en la misma secuencia secuencial 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.
Registro de modo
La SDRAM de velocidad de datos única tiene un único registro de modo programable de 10 bits. Los estándares posteriores de SDRAM de doble velocidad de datos agregan registros de modo adicionales, direccionados mediante los pines de dirección del banco. Para SDR SDRAM, los pines de dirección del banco y las líneas de dirección A10 y superiores se ignoran, pero deben ser cero durante una escritura de 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.
- M9: Escribe modo de explosión. Si 0, escribe usar la longitud de la ráfaga y el modo. Si 1, todos los escritos son no-burst (single location).
- M8, M7: Modo operativo. Reservado, y debe ser 00.
- M6, M5, M4: CAS latency. Generalmente sólo 010 (CL2) y 011 (CL3) son legales. Especifica el número de ciclos entre un comando leído y la salida de datos del chip. El chip tiene un límite fundamental en este valor en nanosegundos; durante la inicialización, el controlador de memoria debe utilizar su conocimiento de la frecuencia del reloj para traducir ese límite en ciclos.
- M3: tipo Burst. 0 - peticiones de orden de ráfagas secuenciales, mientras que 1 solicitudes de ráfagas interconectadas.
- M2, M1, M0: Longitud Burst. Los valores de 000, 001, 010 y 011 especifican un tamaño de ráfaga de 1, 2, 4 o 8 palabras, respectivamente. Cada lectura (y escriba, si M9 es 0) realizará que muchos accesos, a menos que sean interrumpidos por una parada de ráfaga u otro comando. Un valor de 111 especifica un ráfago completo. La explosión continuará hasta que se interrumpa. Las ráfagas completas sólo se permiten con el tipo de ráfaga secuencial.
Los estándares SDRAM posteriores (velocidad de datos doble) usan más bits de registro de modo y proporcionan registros de modo adicionales llamados "registros de modo extendido". El número de registro se codifica en los pines de dirección del banco durante el comando de registro del modo de carga. Por ejemplo, DDR2 SDRAM tiene un registro de modo de 13 bits, un registro de modo extendido de 13 bits N.° 1 (EMR1) y un registro de modo extendido de 5 bits N.° 2 (EMR2).
Actualización automática
Es posible actualizar un chip RAM abriendo y cerrando (activando y precargando) cada fila en cada banco. Sin embargo, para simplificar el controlador de memoria, los chips SDRAM admiten una "actualización automática" comando, que realiza estas operaciones a 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 actualización automática (uno por fila, 8192 en el ejemplo que hemos estado usando) cada intervalo de actualización (tREF = 64 ms es un valor común). Todos los bancos deben estar inactivos (cerrados, precargados) cuando se emite este comando.
Modos de bajo consumo
Como se mencionó, la entrada de habilitación de reloj (CKE) se puede usar para detener efectivamente el reloj en 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 la verificación de CKE. Siempre que el CKE sea bajo, está permitido cambiar la velocidad del reloj o incluso detener el reloj por completo.
Si se baja el CKE mientras la SDRAM está realizando operaciones, simplemente se "congela" en su lugar hasta que CKE se levante de nuevo.
Si la SDRAM está inactiva (todos los bancos precargados, no hay comandos en curso) cuando se baja el CKE, la SDRAM entra automáticamente en el modo de apagado, consumiendo energía mínima hasta que se vuelve a subir el CKE. Esto no debe durar más que el intervalo de actualización máximo tREF, o se puede perder el contenido de la memoria. Es legal detener el reloj por completo durante este tiempo para ahorrar energía adicional.
Finalmente, si se reduce el CKE al mismo tiempo que se envía un comando de actualización automática a la SDRAM, la SDRAM ingresa al modo de actualización automática. Esto es como apagar, pero la SDRAM usa un temporizador 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 que el controlador de memoria se deshabilite por completo, lo que comúnmente 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 ejecutarlo siempre en el peor de los casos. 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 refresca se configura usando un registro de modo extendido. El tercero, implementado en Mobile DDR (LPDDR) y LPDDR2 es "apagado profundo" modo, que invalida la memoria y requiere una reinicialización completa para salir. Esto se activa mediante el envío de un "fin de ráfaga" comando mientras baja CKE.
Arquitectura de captación previa DDR SDRAM
DDR SDRAM emplea una arquitectura de captación previa 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 captación previa aprovecha las características específicas de los accesos de memoria a DRAM. Las operaciones típicas de la memoria DRAM implican tres fases: precarga de línea de bits, acceso a filas, acceso a columnas. El acceso a filas es el corazón de una operación de lectura, ya que implica la detección cuidadosa de las señales diminutas en las celdas de memoria DRAM; es la fase más lenta de la operación de la memoria. Sin embargo, una vez que se lee una fila, los accesos posteriores a las columnas 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 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 las filas pueden tardar 50 ns, según la velocidad de la DRAM, mientras que los accesos a las columnas de una fila abierta tardan menos de 10 ns.
Las arquitecturas DRAM tradicionales han admitido durante mucho tiempo el acceso rápido de columnas a bits en una fila abierta. Para 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) en la fila pueden ser muy rápidos, siempre que no se produzcan accesos intermedios a otras filas.
La desventaja del antiguo método de acceso rápido a columnas era que se tenía que enviar una nueva dirección de columna para cada palabra de datos adicional en la fila. El bus de direcciones tenía que operar a la misma frecuencia que el bus de datos. La arquitectura de captación previa simplifica este proceso al permitir que una sola solicitud de dirección resulte en varias palabras de datos.
En una arquitectura de búfer de captación previa, cuando se produce un acceso a la memoria en una fila, el búfer toma un conjunto de palabras de datos adyacentes en la fila y las lee (las "explota") en una secuencia rápida en los pines IO, sin necesidad de solicitudes de direcciones de columnas individuales. Esto supone que la CPU quiere palabras de datos adyacentes en la memoria, lo que en la práctica suele ser 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 búsqueda previa. Luego, cada palabra se transmitirá en flancos ascendentes y descendentes consecutivos del ciclo del reloj. De manera similar, en DDR2 con un búfer de búsqueda previa 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 palabra en flanco ascendente y descendente consecutivo del reloj externo más rápido
La profundidad del búfer de captación previa 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 captación previa 8n (como DDR3), las E/S operarán 8 veces más rápido que el núcleo de la 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, cada una de las cuales funciona ocho veces más rápido (1600 megabits por segundo). Si la memoria tiene 16 IO, el ancho de banda de lectura total sería de 200 MHz x 8 palabras de datos/acceso x 16 IO = 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 captación previa diferente:
- DDR SDRAM su tamaño de buffer prefetch es 2n (dos palabras de datos por acceso a la memoria)
- DDR2 El tamaño de buffer prefetch de SDRAM es 4n (cuatro palabras de datos por acceso a la memoria)
- DDR3 El tamaño de buffer prefetch de SDRAM es de 8n (ocho palabras de datos por acceso a la memoria)
- DDR4 El tamaño de buffer prefetch de SDRAM es de 8n (ocho palabras de datos por acceso a la memoria)
- DDR5 El tamaño de buffer prefetch de SDRAM es de 8n; hay un modo adicional 16n
Generaciones
Tipo | Cambios de imagen |
---|---|
SDRAM |
|
DDR1 |
|
DDR2 | El acceso es ≥4 palabras "Burst terminate" eliminado 4 unidades utilizadas en paralelo 1.25 - 5 ns por ciclo Las operaciones internas están a 1/2 el ritmo del reloj. Signal: SSTL_18 (1.8V) |
DDR3 | El acceso es ≥8 palabras Signal: SSTL_15 (1.5V) Mucho más tarde CAS |
DDR4 | Vcc ≤ 1.2 V punto a punto (módulo individual por canal) |
DEG
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 (generalmente 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 complicado 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 DRAM debe garantizar que el bus de datos nunca se requiera para una lectura y una escritura al mismo tiempo.
Las frecuencias de reloj típicas de SDR SDRAM son 66, 100 y 133 MHz (períodos de 15, 10 y 7,5 ns), denominadas PC66, PC100 y PC133, respectivamente. Se disponía de frecuencias de reloj de hasta 200 MHz. Funciona con un voltaje de 3,3 V.
Este tipo de SDRAM es más lento que las variantes de 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 DRAM de salida de datos extendidos (EDO-RAM) y DRAM de modo de página rápida (FPM-RAM), que generalmente tomaba dos o tres relojes para transferir una palabra de datos.
PC66
PC66 se refiere al estándar de memoria de computadora interna extraíble definido por JEDEC. PC66 es DRAM síncrona que funciona 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 factores de forma 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 las PC basadas en Intel Pentium y AMD K6. También se incluye en el Beige Power Mac G3, los primeros iBooks y los 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
PC100 es un estándar para memoria de acceso aleatorio de computadora extraíble interna, definido por JEDEC. PC100 se refiere a DRAM síncrona que funciona 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 retrocompatible con PC66 y fue reemplazado por el estándar PC133.
Un módulo creado con chips SDRAM de 100 MHz no es necesariamente capaz de funcionar a 100 MHz. El estándar PC100 especifica las capacidades del módulo de memoria como un todo. PC100 se usa en muchas computadoras antiguas; Las PC a fines de la década de 1990 eran las computadoras más comunes con memoria PC100.
PC133
PC133 es un estándar de memoria de computadora definido por JEDEC. PC133 se refiere a SDR SDRAM que funciona 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 definitivo jamás aprobado por 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.
DDR
Si bien la latencia de acceso de DRAM está limitada fundamentalmente por la matriz de DRAM, DRAM tiene un ancho de banda potencial muy alto porque cada lectura interna es en realidad una fila de muchos miles de bits. Para poner más ancho de banda a disposición de los usuarios, se desarrolló una interfaz de doble velocidad de datos. Este usa 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 en los flancos ascendente y descendente de la señal del 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, DDR SDRAM no es compatible con versiones anteriores de SDR SDRAM.
DDR SDRAM (a veces llamado DDR1 para mayor claridad) duplica la unidad mínima de lectura o escritura; cada acceso se refiere a al menos dos palabras consecutivas.
Las frecuencias de reloj típicas de 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 derrotar). Los DIMM de 184 pines correspondientes se conocen como PC-2100, PC-2700 y PC-3200. El rendimiento hasta DDR-550 (PC-4400) está disponible.
DDR2
DDR2 SDRAM es muy similar a DDR SDRAM, pero vuelve a duplicar la unidad mínima de lectura o escritura, a cuatro palabras consecutivas. El protocolo de bus también se simplificó para permitir una operación de mayor rendimiento. (En particular, se elimina el comando "terminar en ráfaga"). Esto permite duplicar la velocidad del bus de la SDRAM sin aumentar la velocidad del reloj de las operaciones de la RAM interna; en cambio, las operaciones internas se realizan en unidades cuatro veces más anchas que la SDRAM. Además, se agregó un pin de dirección de banco adicional (BA2) para permitir ocho bancos en chips RAM grandes.
Las velocidades de reloj SDRAM DDR2 típicas 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). Los DIMM de 240 pines correspondientes se conocen como PC2-3200 a PC2-6400. DDR2 SDRAM ahora está disponible a una velocidad de reloj de 533 MHz, generalmente descrita como DDR2-1066 y los DIMM correspondientes se conocen como PC2-8500 (también denominados PC2-8600 según el fabricante). Se encuentra 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 velocidad del reloj, la memoria DDR2-400 (frecuencia de reloj interna de 100 MHz) tiene una latencia un poco más alta que la memoria DDR-400 (frecuencia de reloj interna de 200 MHz).
DDR3
DDR3 continúa la tendencia, duplicando la unidad mínima de lectura o escritura a ocho palabras consecutivas. Esto permite otra duplicación del ancho de banda y la velocidad del bus externo sin tener que cambiar la velocidad del reloj de las operaciones internas, solo el ancho. Para mantener transferencias de 800–1600 M/s (ambos bordes de un reloj de 400–800 MHz), la matriz de RAM interna debe realizar 100–200 búsquedas por segundo.
Nuevamente, con cada duplicación, la desventaja es el aumento de la latencia. Al igual que con todas las generaciones de DDR SDRAM, los comandos todavía están restringidos a un borde de reloj y las latencias de comando se dan en términos de ciclos de reloj, que son la mitad de la velocidad de la tasa de transferencia citada normalmente (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 fabrican comercialmente y los sistemas informáticos que los utilizan estuvieron disponibles a partir de la segunda mitad de 2007, con un uso significativo a partir de 2008. Las frecuencias de reloj iniciales eran 400 y 533 MHz, que se describen como DDR3-800 y DDR3-1066 (módulos PC3-6400 y PC3-8500), pero 667 y 800 MHz, descritos como DDR3-1333 y DDR3-1600 (PC3-10600 y módulos PC3-12800) ahora son comunes. Están disponibles rendimientos de hasta DDR3-2800 (módulos PC3 22400).
DDR4
DDR4 SDRAM es el sucesor de DDR3 SDRAM. Se reveló en el Intel Developer Forum en San Francisco en 2008 y estaba previsto que se lanzara al mercado durante 2011. El momento varió considerablemente durante su desarrollo: originalmente se esperaba que se lanzara en 2012 y más tarde (durante 2010) se esperaba que se lanzará en 2015, 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 estaban previstos para 2012. DDR4 alcanzó la adopción masiva en el mercado alrededor de 2015, que es comparable con los aproximadamente cinco años que tardó DDR3 en lograr la transición del mercado masivo sobre DDR2.
Los chips DDR4 funcionan a 1,2 V o menos, en comparación con los 1,5 V de los chips DDR3, y tienen más de 2 000 millones de transferencias de datos por segundo. Se esperaba que se introdujeran a tasas de frecuencia de 2133 MHz, con un aumento estimado de 4266 MHz y un voltaje reducido de 1,05 V para 2013.
DDR4 no volvió a duplicar el ancho interno de captación previa, pero utiliza la misma captación previa de 8n que DDR3. 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 DDR4 ya que, a partir de 2009, los chips DRAM actuales recién comenzaban a migrar a un proceso de 50 nm. En enero de 2011, Samsung anunció la finalización y el lanzamiento para pruebas de un módulo DRAM DDR4 de 30 nm y 2048 MB. 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.
DDR5
En marzo de 2017, JEDEC anunció que se estaba desarrollando un estándar DDR5, 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 lanzó el 14 de julio de 2020.
Sucesoras fallidas
(feminine)Además de DDR, hubo varias otras tecnologías de memoria propuestas para reemplazar a SDR SDRAM.
DRAM Rambus (RDRAM)
RDRAM era una tecnología patentada que competía con DDR. Su precio relativamente alto y su rendimiento decepcionante (como resultado de las altas latencias y un canal de datos de 16 bits estrecho en comparación con el canal de 64 bits de DDR) hicieron que perdiera la carrera para suceder a SDR DRAM.
DRAM de enlace síncrono (SLDRAM)
SLDRAM se jactó de un mayor rendimiento y compitió contra RDRAM. Fue desarrollado a fines de la década de 1990 por el Consorcio SLDRAM. El Consorcio SLDRAM estaba formado por unos 20 fabricantes importantes de la industria informática y DRAM. (El Consorcio SLDRAM se incorporó como SLDRAM Inc. y luego cambió su nombre a Advanced Memory International, Inc.). SLDRAM era un estándar abierto y no requería derechos de licencia. Las especificaciones requerían un bus de 64 bits que funcionara a una frecuencia de reloj de 200, 300 o 400 MHz. Esto se logra porque todas las señales están en la misma línea y, por lo tanto, se evita el tiempo de sincronización de varias líneas. Al igual que DDR SDRAM, SLDRAM utiliza un bus de doble bombeo, lo que le otorga una velocidad efectiva de 400, 600 u 800 MT/s. (1 MT/s = 1000^2 transferencias por segundo)
SLDRAM usó un bus de comando de 11 bits (10 bits de comando CA9:0 más una línea FLAG de inicio de comando) para transmitir paquetes de comando de 40 bits en 4 flancos consecutivos de un reloj de comando diferencial (CCLK/CCLK#). A diferencia de SDRAM, no había señales de selección por chip; a cada chip se le asignó una ID cuando se reinicia, y el comando contenía la ID del chip que debería procesarlo. Los datos se transfirieron en ráfagas de 4 u 8 palabras a través de un bus de datos de 18 bits (por chip), utilizando uno de los dos relojes de datos diferenciales (DCLK0/DCLK0# y DCLK1/DCLK1#). A diferencia de SDRAM estándar, el reloj fue generado por la fuente de datos (el chip SLDRAM en el caso de una operación de lectura) y se transmitió en la misma dirección que los datos, reduciendo en gran medida el sesgo de datos. Para evitar la necesidad de una pausa cuando cambia la fuente del DCLK, cada comando especifica qué par de DCLK usaría.
El comando básico de lectura/escritura consistía en (comenzando con CA9 de la primera palabra):
FLAG | CA9 | CA8 | CA7 | CA6 | CA5 | CA4 | CA3 | CA2 | CA1 | CA0 |
---|---|---|---|---|---|---|---|---|---|---|
1 | ID8 | ID de dispositivo | ID0 | CMD5 | ||||||
0 | Código de mando | CMD0 | Banco | Row | ||||||
0 | Row (continued) | 0 | ||||||||
0 | 0 | 0 | 0 | Columna |
- 9 bits de ID de dispositivo
- 6 bits de comando
- 3 bits de dirección bancaria
- 10 o 11 bits de dirección de fila
- 5 o 4 bits de repuesto para la expansión de fila o columna
- 7 bits of column address
Dispositivos individuales tenían identificaciones de 8 bits. El noveno bit de la ID enviada en los comandos se usó para dirigirse a múltiples dispositivos. Se podría abordar cualquier grupo alineado del tamaño de una potencia de 2. Si se configuró el msbit transmitido, todos los bits menos significativos hasta el bit 0 menos significativo de la dirección transmitida se ignoraron para "¿está dirigido a mí?" propósitos (Si el bit ID8 en realidad se considera menos significativo que ID0, la coincidencia de direcciones de unidifusión se convierte en un caso especial de este patrón).
Un comando de lectura/escritura tenía el msbit claro:
- CMD5=0
- CMD4=1 para abrir (activar) la fila especificada; CMD4=0 para utilizar la fila actual abierta
- CMD3=1 para transferir una explosión de 8 palabras; CMD3=0 para una explosión de 4 palabras
- CMD2=1 para escribir, CMD2=0 para leer
- CMD1=1 para cerrar la fila después de este acceso; CMD1=0 para dejarlo abierto
- CMD0 selecciona el par DCLK para usar (DCLK1 o DCLK0)
Una omisión notable de la especificación fue la habilitación de escritura por byte; fue diseñado 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) abrieron y cerraron filas sin transferencia de datos, realizaron operaciones de actualización, leyeron o escribieron registros de configuración y realizaron otras operaciones de mantenimiento. La mayoría de estos comandos admiten una subidentificación adicional de 4 bits (enviada como 5 bits, usando la misma codificación de destino múltiple que la identificación principal) que podría usarse para distinguir dispositivos a los que se les asignó la misma identificación principal porque estaban conectados en paralelo y siempre leído/escrito al mismo tiempo.
Había varios registros de control de 8 bits y registros de estado de 32 bits para controlar varios parámetros de temporización del dispositivo.
SDRAM de memoria de canal virtual (VCM)
VCM era un tipo propietario de SDRAM diseñado por NEC, pero lanzado como un estándar abierto sin tarifas de licencia. Es pin-compatible 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 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 únicamente de las capacidades del controlador de memoria. A fines de la década de 1990, varios conjuntos de chips Northbridge para PC (como los populares VIA KX133 y KT133) incluían compatibilidad con VCSDRAM.
VCM inserta una caché SRAM de 16 "canales" tampones, cada 1/4 de fila "segmento" de tamaño, entre bancos DRAM' Detecta las filas del amplificador y los pines de E/S de datos. "Precargar" y "restaurar" Los comandos, exclusivos de VCSDRAM, copian datos entre la fila del amplificador de detección de DRAM y los búferes de canal, mientras que el equivalente de los comandos de lectura y escritura de SDRAM especifican un número de canal para acceder. Por lo tanto, las lecturas y escrituras se pueden realizar independientemente del estado actualmente activo de la matriz de DRAM, con el equivalente a cuatro filas de DRAM completas "abiertas" para acceder a la vez. Esta 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' 17 que se usa para algunas operaciones).
Para leer desde VCSDRAM, después del comando activo, un "prefetch" Se requiere un comando para copiar datos de 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 que se realiza esto, la matriz de DRAM se puede precargar mientras continúan los comandos de lectura al búfer del canal. Para escribir, primero los datos se escriben en un búfer de canal (normalmente inicializado previamente con un comando Prefetch), luego un comando de restauración, con los mismos parámetros que el comando prefetch, copia un segmento de datos del canal a la matriz del amplificador de detección.
A diferencia de una escritura SDRAM normal, que debe realizarse en una fila activa (abierta), el banco VCSDRAM debe precargarse (cerrarse) cuando se emite el comando de restauración. Un comando activo inmediatamente después del comando de restauración especifica que la fila DRAM completa la escritura en la matriz DRAM. Hay, además, un 17º "canal ficticio" que permite escrituras en la fila actualmente abierta. Es posible que no se pueda leer, pero se puede precargar, escribir y restaurar en la matriz de amplificadores de detección.
Aunque normalmente un segmento se restaura a la misma dirección de memoria de la que se extrajo previamente, los búferes de canal también se pueden usar para copiar o borrar de manera 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 horcajadas). los comandos precargan un par de segmentos en un par de canales, y un comando opcional combina precarga, lectura y precarga para reducir la sobrecarga de lecturas aleatorias.
Los anteriores son los comandos estandarizados por JEDEC. Los chips anteriores no admitían el canal ficticio o la captación previa de pares y utilizaban una codificación diferente para la precarga.
Un bus de direcciones de 13 bits, como el que se muestra aquí, es adecuado para un dispositivo de hasta 128 Mbit. Tiene dos bancos, cada uno con 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) en un segmento.
RAM de gráficos síncronos (SGRAM)
La RAM de gráficos sincrónicos (SGRAM) es una forma especializada de SDRAM para adaptadores de gráficos. Está diseñado para tareas relacionadas con gráficos, como la memoria de texturas y los búferes de cuadros, que se encuentran en las tarjetas de video. Agrega funciones como enmascaramiento de bits (escribir en un plano de bits específico sin afectar a los demás) y escritura en bloque (llenar un bloque de memoria con un solo color). A diferencia de VRAM y WRAM, 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.
La memoria SGRAM más antigua conocida son chips de 8 Mbit que datan de 1994: la Hitachi HM5283206, presentada en noviembre de 1994, y la NEC μPD481850, presentada en diciembre de 1994. La primera El dispositivo comercial conocido que usa SGRAM es la consola de videojuegos PlayStation (PS) de Sony, comenzando con el modelo japonés SCPH-5000 lanzado en diciembre de 1995, que usa el chip NEC μPD481850.
SDRAM de velocidad de datos doble para gráficos (GDDR SDRAM)
La SDRAM de doble velocidad de datos para gráficos (GDDR SDRAM) es un tipo de SDRAM DDR especializada diseñada para usarse como la memoria principal de las unidades de procesamiento de gráficos (GPU). GDDR SDRAM es distinto de los tipos básicos de DDR SDRAM como DDR3, aunque comparten algunas tecnologías centrales. 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 2018, hay seis generaciones sucesivas de GDDR: GDDR2, GDDR3, GDDR4, GDDR5 y GDDR5X, GDDR6.
GDDR se conocía inicialmente como DDR SGRAM. Samsung Electronics lo introdujo comercialmente como un chip de memoria de 16Mbit en 1998.
Memoria de gran ancho de banda (HBM)
La memoria de alto ancho de banda (HBM) es una interfaz RAM de alto rendimiento para SDRAM apilada en 3D de Samsung, AMD y SK Hynix. Está diseñado para usarse junto con aceleradores de gráficos de alto rendimiento y dispositivos de red. El primer chip de memoria HBM fue producido por SK Hynix en 2013.
Cronología
SDRAM
Fecha de presentación | Chip name | Capacidad (bits) | Tipo SDRAM | Fabricante(s) | Proceso | MOSFET | Zona | Ref. |
---|---|---|---|---|---|---|---|---|
1992 | KM48SL2000 | 16 Mbit | SDR | Samsung | ? | CMOS | ? | |
1996 | MSM5718C50 | 18 Mbit | RDRAM | Oki | ? | CMOS | 325 mm2 | |
N64 RDRAM | 36 Mbit | RDRAM | NEC | ? | CMOS | ? | ||
? | 1024 Mbit | SDR | Mitsubishi | 150 nm | CMOS | ? | ||
1997 | ? | 1024 Mbit | SDR | Hyundai | ? | SOI | ? | |
1998 | MD5764802 | 64 Mbit | RDRAM | Oki | ? | CMOS | 325 mm2 | |
Marzo de 1998 | Direct RDRAM | 72 Mbit | RDRAM | Rambus | ? | CMOS | ? | |
Junio de 1998 | ? | 64 Mbit | DDR | Samsung | ? | CMOS | ? | |
1998 | ? | 64 Mbit | DDR | Hyundai | ? | CMOS | ? | |
128 Mbit | SDR | Samsung | ? | CMOS | ? | |||
1999 | ? | 128 Mbit | DDR | Samsung | ? | CMOS | ? | |
1024 Mbit | DDR | Samsung | 140 nm | CMOS | ? | |||
2000 | GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 180 nm | CMOS | 279 mm2 | |
2001 | ? | 288 Mbit | RDRAM | Hynix | ? | CMOS | ? | |
? | DDR2 | Samsung | 100 nm | CMOS | ? | |||
2002 | ? | 256 Mbit | SDR | Hynix | ? | CMOS | ? | |
2003 | EE+GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 90 nm | CMOS | 86 mm2 | |
? | 72 Mbit | DDR3 | Samsung | 90 nm | CMOS | ? | ||
512 Mbit | DDR2 | Hynix | ? | CMOS | ? | |||
Elpida | 110 nm | CMOS | ? | |||||
1024 Mbit | DDR2 | Hynix | ? | CMOS | ? | |||
2004 | ? | 2048 Mbit | DDR2 | Samsung | 80 nm | CMOS | ? | |
2005 | EE+GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 65 nm | CMOS | 86 mm2 | |
Xenos eDRAM | 80 Mbit | eDRAM | NEC | 90 nm | CMOS | ? | ||
? | 512 Mbit | DDR3 | Samsung | 80 nm | CMOS | ? | ||
2006 | ? | 1024 Mbit | DDR2 | Hynix | 60 nm | CMOS | ? | |
2008 | ? | ? | LPDDR2 | Hynix | ? | |||
Abril de 2008 | ? | 8192 Mbit | DDR3 | Samsung | 50 nm | CMOS | ? | |
2008 | ? | 16384 Mbit | DDR3 | Samsung | 50 nm | CMOS | ? | |
2009 | ? | ? | DDR3 | Hynix | 44 nm | CMOS | ? | |
2048 Mbit | DDR3 | Hynix | 40 nm | |||||
2011 | ? | 16384 Mbit | DDR3 | Hynix | 40 nm | CMOS | ? | |
2048 Mbit | DDR4 | Hynix | 30 nm | CMOS | ? | |||
2013 | ? | ? | LPDDR4 | Samsung | 20 nm | CMOS | ? | |
2014 | ? | 8192 Mbit | LPDDR4 | Samsung | 20 nm | CMOS | ? | |
2015 | ? | 12 Gbit | LPDDR4 | Samsung | 20 nm | CMOS | ? | |
2018 | ? | 8192 Mbit | LPDDR5 | Samsung | 10 nm | FinFET | ? | |
128 Gbit | DDR4 | Samsung | 10 nm | FinFET | ? |
SGRAM y HBM
Fecha de presentación | Chip name | Capacidad (bits) | Tipo SDRAM | Fabricante(s) | Proceso | MOSFET | Zona | Ref. |
---|---|---|---|---|---|---|---|---|
Noviembre de 1994 | HM5283206 | 8 Mbit | SGRAM (SDR) | Hitachi | 350 nm | CMOS | 58 mm2 | |
Diciembre de 1994 | μPD481850 | 8 Mbit | SGRAM (SDR) | NEC | ? | CMOS | 280 mm2 | |
1997 | μPD4811650 | 16 Mbit | SGRAM (SDR) | NEC | 350 nm | CMOS | 280 mm2 | |
Septiembre de 1998 | ? | 16 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | ? | |
1999 | KM4132G112 | 32 Mbit | SGRAM (SDR) | Samsung | ? | CMOS | ? | |
2002 | ? | 128 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? | |
2003 | ? | 256 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? | |
SGRAM (GDDR3) | ||||||||
Marzo de 2005 | K4D553238F | 256 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | 77 mm2 | |
Octubre de 2005 | ? | 256 Mbit | SGRAM (GDDR4) | Samsung | ? | CMOS | ? | |
2005 | ? | 512 Mbit | SGRAM (GDDR4) | Hynix | ? | CMOS | ? | |
2007 | ? | 1024 Mbit | SGRAM (GDDR5) | Hynix | 60 nm | |||
2009 | ? | 2048 Mbit | SGRAM (GDDR5) | Hynix | 40 nm | |||
2010 | K4W1G1646G | 1024 Mbit | SGRAM (GDDR3) | Samsung | ? | CMOS | 100 mm2 | |
2012 | ? | 4096 Mbit | SGRAM (GDDR3) | SK Hynix | ? | CMOS | ? | |
2013 | ? | ? | HBM | |||||
Marzo 2016 | MT58K256M32JA | 8 Gbit | SGRAM (GDDR5X) | Micrones | 20 nm | CMOS | 140 mm2 | |
Junio 2016 | ? | 32 Gbit | HBM2 | Samsung | 20 nm | CMOS | ? | |
2017 | ? | 64 Gbit | HBM2 | Samsung | 20 nm | CMOS | ? | |
Enero 2018 | K4ZAF325BM | 16 Gbit | SGRAM (GDDR6) | Samsung | 10 nm | FinFET | 225 mm2 |
Contenido relacionado
Función recursiva primitiva
Max Newman
Compromiso ontológico