
La memoria DRAM XDR ( memoria de acceso aleatorio dinámico de velocidad de datos extrema ) es una interfaz de memoria de acceso aleatorio dinámico de alto rendimiento . Se basa en la RDRAM y la reemplaza . Otras tecnologías competidoras son la DDR2 y la GDDR4 .
Descripción general
La tecnología XDR fue diseñada para ser eficaz en sistemas de consumo pequeños y de gran ancho de banda, aplicaciones de memoria de alto rendimiento y GPU de gama alta. Elimina los problemas de latencia inusualmente alta que plagaron las primeras formas de RDRAM. Además, la DRAM XDR pone un gran énfasis en el ancho de banda por pin, lo que puede beneficiar un mayor control de costos en la producción de PCB. Esto se debe a que se necesitan menos carriles para la misma cantidad de ancho de banda. Rambus posee los derechos de la tecnología. Sony utiliza XDR en la consola PlayStation 3. [1]
Especificaciones técnicas
Actuación
- Frecuencia de reloj inicial a 400 MHz.
- Velocidad de datos octal (ODR): ocho bits por ciclo de reloj por carril.
- Cada chip proporciona 8, 16 o 32 carriles programables, proporcionando hasta 230,4 Gbit /s (28,8 GB /s) a 900 MHz (7,2 GHz efectivos). [2]
Características
- Niveles de señalización diferencial bidireccional de Rambus (DRSL)
- Este utiliza un controlador de colector abierto diferencial , con una oscilación de voltaje de 0,2 V. No es lo mismo que LVDS .[1]
- Terminación programable en chip
- Adaptación de impedancia adaptativa
- Arquitectura de memoria de ocho bancos
- Hasta cuatro transacciones intercaladas entre bancos con ancho de banda completo
- Interconexión de datos punto a punto
- Embalaje de paquetes a escala de chips
- Programación dinámica de solicitudes
- Compatibilidad con lectura temprana después de escritura para máxima eficiencia
- Actualización sin sobrecarga
Requisitos de potencia
- 1,8 V Vdd
- DRSL programable de voltaje ultrabajo con oscilación de 200 mV
- Diseño de PLL / DLL de bajo consumo
- Soporte de actualización automática al apagar
- Compatibilidad con ancho de datos dinámicos con control de reloj dinámico
- Apagado de E/S por pin
- Soporte de activación de subpáginas
Facilidad de diseño del sistema
- Los circuitos FlexPhase por bit compensan hasta una resolución de 2,5 ps
- La interconexión XDR utiliza un número mínimo de pines
Estado latente
- Paquetes de solicitud de 1,25/2,0/2,5/3,33 ns
Protocolo
Las señales de alta velocidad de un chip de RAM XDR son una entrada de reloj diferencial (reloj del maestro, CFM/CFMN), un bus de solicitud/comando de un solo extremo de 12 bits (RQ11..0) y un bus de datos diferencial bidireccional de hasta 16 bits de ancho (DQ15..0/DQN15..0). El bus de solicitud se puede conectar a varios chips de memoria en paralelo, pero el bus de datos es punto a punto; solo se le puede conectar un chip de RAM. Para admitir diferentes cantidades de memoria con un controlador de memoria de ancho fijo, los chips tienen un ancho de interfaz programable. Un controlador de DRAM de 32 bits de ancho puede admitir 2 chips de 16 bits, o conectarse a 4 chips de memoria, cada uno de los cuales suministra 8 bits de datos, o hasta 16 chips configurados con interfaces de 2 bits.
Además, cada chip tiene un bus serial de baja velocidad que se utiliza para determinar sus capacidades y configurar su interfaz. Este consta de tres entradas compartidas: una línea de reinicio (RST), una entrada de comando serial (CMD) y un reloj serial (SCK), y líneas de entrada/salida de datos seriales (SDI y SDO) que están conectadas en cadena y, finalmente, se conectan a un solo pin en el controlador de memoria.
Todas las líneas de un solo extremo son activas-bajas ; una señal afirmada o un 1 lógico se representa mediante un voltaje bajo.
El bus de solicitud funciona a una velocidad de datos doble en relación con la entrada del reloj. Dos transferencias consecutivas de 12 bits (que comienzan con el flanco descendente de CFM) forman un paquete de comandos de 24 bits.
El bus de datos funciona a una velocidad 8 veces superior a la del reloj; un reloj de 400 MHz genera 3200 MT/s. Todas las lecturas y escrituras de datos se realizan en ráfagas de 16 transferencias que duran 2 ciclos de reloj.
Los formatos de paquetes de solicitud son los siguientes:
Hay una gran cantidad de restricciones de tiempo que establecen los tiempos mínimos que deben transcurrir entre varios comandos (ver Memoria de acceso aleatorio dinámica § Sincronización de la memoria ); el controlador de DRAM que las envía debe asegurarse de que se cumplan todas.
Algunos comandos contienen campos de retardo; estos retardan el efecto de ese comando por la cantidad de ciclos de reloj dada. Esto permite que varios comandos (a diferentes bancos) tengan efecto en el mismo ciclo de reloj.
Comando de activación de fila
Esto funciona de manera equivalente al comando de activación de la SDRAM estándar, que especifica una dirección de fila que se cargará en la matriz de amplificadores de detección del banco. Para ahorrar energía, se puede configurar un chip para que solo active una parte de la matriz de amplificadores de detección. En este caso, los bits SR1..0 especifican la mitad o la cuarta parte de la fila que se activará, y se requiere que las direcciones de columna de los siguientes comandos de lectura/escritura se limiten a esa parte. (Las operaciones de actualización siempre utilizan la fila completa).
Comandos de lectura y escritura
Estos funcionan de manera análoga a los comandos de lectura o escritura de una SDRAM estándar, especificando una dirección de columna. Los datos se proporcionan al chip unos pocos ciclos después de un comando de escritura (normalmente 3), y el chip los emite varios ciclos después de un comando de lectura (normalmente 6). Al igual que con otras formas de SDRAM, el controlador de DRAM es responsable de garantizar que el bus de datos no esté programado para usarse en ambas direcciones al mismo tiempo. Los datos siempre se transfieren en ráfagas de 16 transferencias, que duran 2 ciclos de reloj. Por lo tanto, para un dispositivo ×16, se transfieren 256 bits (32 bytes) por ráfaga.
Si el chip utiliza un bus de datos de menos de 16 bits de ancho, se utilizan uno o más de los bits de dirección de subcolumna para seleccionar la parte de la columna que se presentará en el bus de datos. Si el bus de datos tiene 8 bits de ancho, se utiliza SC3 para identificar a qué mitad de los datos leídos se debe acceder; si el bus de datos tiene 4 bits de ancho, se utilizan SC3 y SC2, etc.
A diferencia de la SDRAM convencional, no existe ninguna opción para elegir el orden en el que se suministran los datos dentro de una ráfaga. Por lo tanto, no es posible realizar lecturas de palabras críticas primero.
Comando de escritura enmascarado
El comando de escritura enmascarada es similar a una escritura normal, pero no se permite ningún retraso de comando y se proporciona un byte de máscara. Esto permite controlar qué campos de 8 bits se escriben. No se trata de un mapa de bits que indique qué bytes se deben escribir; no sería lo suficientemente grande para los 32 bytes de una ráfaga de escritura. En cambio, es un patrón de bits con el que el controlador de DRAM rellena los bytes no escritos. El controlador de DRAM es responsable de encontrar un patrón que no aparezca en los otros bytes que se deben escribir. Como hay 256 patrones posibles y solo 32 bytes en la ráfaga, es sencillo encontrar uno. Incluso cuando se conectan varios dispositivos en paralelo, siempre se puede encontrar un byte de máscara cuando el bus tiene un ancho máximo de 128 bits. (Esto produciría 256 bytes por ráfaga, pero un comando de escritura enmascarada solo se utiliza si al menos uno de ellos no se debe escribir).
Cada byte son los 8 bits consecutivos transferidos a través de una línea de datos durante un ciclo de reloj particular. M0 corresponde al primer bit de datos transferido durante un ciclo de reloj y M7 corresponde al último bit.
Esta convención también interfiere con la realización de lecturas de palabras críticas primero; cualquier palabra debe incluir bits de al menos los primeros 8 bits transferidos.
Comando de precarga/actualización
Este comando es similar a una combinación de los comandos de precarga y actualización de una SDRAM convencional. Los bits POP x y BP x especifican una operación de precarga, mientras que los bits ROP x , DELR x y BR x especifican una operación de actualización. Cada uno puede habilitarse por separado. Si está habilitado, cada uno puede tener un retardo de comando diferente y debe dirigirse a un banco diferente.
Los comandos de precarga solo se pueden enviar a un banco a la vez; a diferencia de una SDRAM convencional, no existe un comando de "precargar todos los bancos".
Los comandos de actualización también son diferentes a los de una SDRAM convencional. No existe un comando de "actualización de todos los bancos" y la operación de actualización se divide en operaciones de activación y precarga independientes, por lo que el controlador de memoria determina el tiempo. El contador de actualización también es programable por el controlador. Las operaciones son:
- 000: NOPR No realizar ninguna operación de actualización
- 001: REFP Precarga de actualización; finalizar la operación de actualización en el banco seleccionado.
- 010: Activar actualización REFA ; activa la fila seleccionada por el registro REFH/M/L y el banco seleccionado para actualización.
- 011: REFI Actualizar e incrementar; como para REFA, pero también incrementar el registro REFH/M/L.
- 100: LRR0 Carga el registro de actualización bajo; copia RQ7–0 a los 8 bits bajos del contador de actualización REFL. Sin demora de comando.
- 101: LRR1 Carga el registro de actualización central; copia RQ7–0 a los 8 bits centrales del contador de actualización REFM. Sin demora de comando.
- 110: LRR2 Carga el registro de actualización alto; copia RQ7–0 a los 8 bits altos del contador de actualización REFH (si está implementado). Sin demora de comando.
- 111 reservados
Comando de calibración/apagado
Este comando realiza una serie de funciones diversas, según lo determina el campo x de XOP . Aunque hay 16 posibilidades, en realidad solo se utilizan 4. Tres subcomandos inician y detienen la calibración del controlador de salida (que debe realizarse periódicamente, cada 100 ms).
El cuarto subcomando coloca el chip en modo de apagado. En este modo, realiza una actualización interna e ignora las líneas de datos de alta velocidad. Debe reactivarse utilizando el bus serial de baja velocidad.
Bus serial de baja velocidad
Las DRAM XDR se prueban y configuran mediante un bus serial de baja velocidad. El controlador envía las señales RST, SCK y CMD a cada chip en paralelo. Las líneas SDI y SDO están conectadas en cadena, con la última salida SDO conectada al controlador y la primera entrada SDI conectada a nivel alto (lógica 0).
Al reiniciar, cada chip lleva su pin SDO a nivel bajo (1). Cuando se libera el reinicio, se envía una serie de pulsos SCK a los chips. Cada chip lleva su salida SDO a nivel alto (0) un ciclo después de ver su entrada SDI a nivel alto (0). Además, cuenta la cantidad de ciclos que transcurren entre la liberación del reinicio y la visualización de su entrada SDI a nivel alto, y copia ese recuento en un registro interno de identificación del chip. Los comandos enviados por el controlador a través de la línea CMD incluyen una dirección que debe coincidir con el campo de identificación del chip.
Estructura general de los comandos
Cada comando lee o escribe un único registro de 8 bits, utilizando una dirección de 8 bits. Esto permite hasta 256 registros, pero actualmente solo está asignado el rango 1-31.
Normalmente, la línea CMD se deja alta (lógica 0) y los pulsos SCK no tienen efecto. Para enviar un comando, se envía una secuencia de 32 bits a través de las líneas CMD:
- 4 bits de
1100, una señal de inicio de comando. - Un bit de lectura/escritura. Si es 0, se trata de una lectura; si es 1, se trata de una escritura.
- Un bit único/de transmisión. Si es 0, solo se selecciona el dispositivo con el ID correspondiente. Si es 1, todos los dispositivos ejecutan el comando.
- 6 bits de ID de dispositivo serial. Los ID de dispositivo se asignan automáticamente, comenzando con 0, al reiniciar el dispositivo.
- 8 bits de dirección de registro
- Un solo bit "0". Esto proporciona tiempo para procesar solicitudes de lectura y habilitar la salida SDO en caso de una lectura.
- 8 bits de datos. Si se trata de un comando de lectura, los bits proporcionados deben ser 0 y el valor del registro se genera en el pin SDO del chip seleccionado. Todos los chips no seleccionados conectan sus entradas SDI a sus salidas SDO, por lo que el controlador verá el valor.
- Un solo bit "0". Esto finaliza el comando y brinda tiempo para desactivar la salida SDO.
Véase también
Referencias
- ^ AnandTech: procesadores Rambus in Cell y anuncios de núcleo dual de Intel
- ^ Elpida produce la DRAM XDR de 7,2 GHz más rápida del mundo
- ^ Arquitectura XDR™ Archivado el 24 de julio de 2011 en Wayback Machine . (Rambus)
Enlaces externos
- Página de producto Rambus XDR archivada en diciembre de 2011 en archive.org
- La interfaz de CPU Rambus FlexIO proporciona una interfaz XDR archivada en julio de 2006 en archive.org
- Producto DRAM Qimonda XDR(TM)