Memorias RAM Dinámicas Sincrónicas (SDRAMs) de Doble Velocidad de Datos Double Data Rate (DDR) Cátedra Electrónica Digital II Cristian Sisterna, MSc Electrónica Digital II Cristian Sisterna Página |1 Electrónica Digital II Cristian Sisterna Página |2 Contenido 1. Antecedentes Históricos de las RAM Dinámicas................................................................................... 4 2. RAMs Dinámicas Sincrónicas (SDRAMs) ............................................................................................... 5 3. Arquitectura SDRAM DDR con Pre Búsqueda de 2*n Bits ................................................................... 6 4. Arquitectura de una SDRAM ................................................................................................................. 8 5. Reloj de la SDRAM DDR......................................................................................................................... 9 6. Señal de Captura de los Datos de la SDRAM DDR (DQS) .................................................................... 10 7. Lectura/Escritura de la SDRAM DDR ................................................................................................... 10 8. Paquete de Datos o Burst ................................................................................................................... 12 9. Funcionalidad de las Señales de Control ............................................................................................ 13 Apéndice (lectura opcional) ........................................................................................................................ 15 A1. SSTL-2 ................................................................................................................................................ 15 A2. MEF de Control de una SDRAM DDR ................................................................................................ 16 A3. Precarga (precharged) ...................................................................................................................... 17 A4. Tipos de SDRAM-DDR ....................................................................................................................... 17 A5. Lectura de Datos de una SDRAM DDR desde un FPGA..................................................................... 18 A6. Lectura de Datos de una SDRAM DDR desde un FPGA..................................................................... 18 A7. LVDS .................................................................................................................................................. 19 Figuras Figura 1. Banco de memorias DRAMs para reducir la latencia. .................................................................... 5 Figura 2. Comparación de la segmentación en el interior de una SDRAM y una DRAM. ............................. 6 Figura 3. Representación gráfica de una arquitectura con pre búsqueda de 2n bits. .................................. 7 Figura 4. Diagrama de bloque funcional de una memoria SDRAM de 128 Mbits. ....................................... 8 Figura 5. Tipos de señales de reloj para memorias SDR y DDR. ................................................................... 9 Figura 6. Diagrama de tiempo de la señal DQS en operaciones de lectura y escritura. ............................. 10 Figura 7. Diagrama de tiempo de una operación de lectura en una SDRAM DDR. .................................... 11 Figura 8. Diagrama de tiempo de una operación de escritura en una SDRAM DDR. ................................. 11 Figura 9. Ejemplo de distintos valores de latencia. .................................................................................... 12 Figura 10. Ejemplo de distintos tamaños de paquete (burst). ................................................................... 13 Figura 11. Esquema de terminación paralela del lado del receptor. .......................................................... 15 Figura 12. Esquema doble-serie doble-paralelo. ........................................................................................ 15 Figura 13. Diagrama de estados de la MEF de control de una SDRAM DDR. ............................................. 16 Figura 14 - Diagrama de tiempo de la lectura de datos DDR...................................................................... 18 Figura 15. Diagrama de tiempo de escritura DDR ...................................................................................... 19 Figura 16. Conexión típica LVDS entre dos dispositivos ............................................................................. 20 Figura 17. Captura en osciloscopio de una señal tipo LVDS ....................................................................... 20 Electrónica Digital II Cristian Sisterna Página |3 1. Antecedentes Históricos de las RAM Dinámicas Por muchos años las memorias dinámicas de acceso aleatorio (Dynamic Random Access Memory, DRAM) han sido el estándar a usar como memorias en sistemas de computadoras o con microprocesadores. Las memorias DRAM fueron usadas, en casi todos los mercados de la electrónica, desde microcomputadoras hasta supercomputadoras. Entre las principales ventajas de la DRAM esta su densidad de encapsulado, gracias a que la celda de memoria consiste de un simple transistor y capacitor. Así, se puede obtener una memoria de gran capacidad, con una cantidad mínima de componentes. Los avances tecnológicos han provocado que la densidad por encapsulado haya crecido por un factor de casi 10.000, desde que la DRAM fue introducida en los finales de los ‘70s, con dispositivos de 16Kbits, hasta hoy en día que se pueden tener memorias de más de 16Gbits. Aunque la tecnología del proceso de dopaje de la memoria y su respectivo encapsulado han mejorado en gran medida, la arquitectura básica de la DRAM no ha cambiado desde el primer día que fue lanzada al mercado. Así, una DRAM de 2n bits típicamente está organizada como 2n/2 filas por 2n/2 columnas. Las filas se seleccionan con la señal RAS (Row Address Select), y las columnas se direccionan con la señal CAS (Column Address Select). Uno de los grandes límites de uso de la DRAM es que su frecuencia máxima de lectura y escritura de datos no se ha incrementado en la misma medida que se incrementó la frecuencia de funcionamiento de los microprocesadores. El periodo de tiempo requerido, ya sea para leer o escribir datos en una DRAM, hace que el procesador tenga un tiempo de espera muy largo lo que provoca que el rendimiento general del sistema se vea degradado. Debido a la estructura de la DRAM una vez que un procesador requiere un dato a la memoria, comenzando un ciclo de lectura, transcurre un largo tiempo hasta que el dato está disponible en los terminales de salida de la memoria. El tiempo que transcurre desde que se requiere el dato hasta que está disponible se mide en ciclos de reloj del procesador, y en cada ciclo de reloj de espera el procesador está sin hacer ninguna operación ni ningún acceso a la entrada/salida. Técnicamente, este tiempo de espera se denomina tiempo de acceso o latencia. En una DRAM el procesador genera una dirección de acceso a memoria que es capturada con la aserción de las señales de control CAS\ y RAS\. En particular RAS\ se debe mantener activa durante todo el proceso, ya sea de escritura o de lectura, por lo que no es posible que la DRAM puede aceptar nuevas direcciones de acceso hasta que termine el proceso de escritura o lectura ya comenzado. Por ello, el rendimiento total del sistema memoria DRAM-procesador es bastante lento, con mucha latencia a medida que la frecuencia de funcionamiento del procesador aumenta. Electrónica Digital II Cristian Sisterna Página |4 Una primera solución planteada para resolver este problema, fue hacer una especie de banco de memorias DRAMs. Para reducir la latencia en la disponibilidad de los datos, los bancos se acceden en tiempos diferentes, con diferentes señales de control. La Figura 1 muestra un sistema con un banco de cuatro memorias DRAM, mejora bastante el rendimiento del sistema para leer y escribir datos, pero incrementa notablemente la complejidad del controlador de escritura y lectura del banco de memorias. Figura 1. Banco de memorias DRAMs para reducir la latencia. 2. RAMs Dinámicas Sincrónicas (SDRAMs) Una solución que se propuso para que el tiempo acceso a la DRAM sea lo menor posible, fue la de diseñar una DRAM que sea sincrónica, conocida como SDRAM (Synchronous DRAM), basada en una arquitectura bastante diferente a la arquitectura de la DRAM. En esta nueva arquitectura todas las señales de control de la SDRAM son capturadas en el flanco de subida del reloj. Señales de control como RAS\ y CAS\ solo necesitan estar activas durante el flanco de reloj, por lo que el procesador necesita activar las señales de control, las direcciones y los datos solo por uno o a lo sumo dos periodos de reloj. A diferencia de la DRAM estándar, donde la señal CAS\ no puede ser activada consecutivamente (o se podría decir en periodos de reloj consecutivos), la SDRAM puede aceptar una nueva dirección de columna en cada flanco positivo del reloj, mejorando de este modo notoriamente la frecuencia de disponibilidad de datos, equiparándose a la frecuencia de trabajo del procesador. Electrónica Digital II Cristian Sisterna Página |5 Figura 2 muestra en detalle la segmentación (pipelining) en el interior de una SDRAM, comparada con una DRAM. Como puede observarse, en la SDRAM se puede estar accediendo a una nueva ubicación de memoria con cada flanco positivo del reloj, al poder capturar una nueva dirección en dicho flanco, de este modo Add 1 (Address 1) es capturada en CLK1, Add2, en CLK2, Add 3 en CLK 3 y asi sucesivamente. Por otro lado, en la DRAM, la dirección de lectura Add 1 es capturada en CLK1, y recién una vez que el dato de salida está disponible, en CLK4, un ciclo de reloj después, en CLK5, es posible que se capture una nueva dirección (Add 2). En este ejemplo, la latencia de la memoria DRAM es de 3 ciclos de reloj. Cabe aclarar que la SDRAM tiene la misma latencia inicial para el primer dato. Sin embargo, y tal como se aprecia en la figura, los datos subsiguientes se pueden leer en cada flanco positivo del reloj. Figura 2. Comparación de la segmentación en el interior de una SDRAM y una DRAM. 3. Arquitectura SDRAM DDR con Pre Búsqueda de 2*n Bits Una memoria tipo SDRAM DDR, es una memoria SDRAM que recibe y transmite datos en ambos flancos del reloj, tanto en el flanco positivo como en el flanco negativo. Para poder transferir datos al doble de la frecuencia de reloj, se emplea una arquitectura con pre búsqueda (prefecth) de 2*n bits. En esta arquitectura en cada ciclo del reloj se transfieren 2*n bits desde la memoria al buffer de E/S. Cada medio ciclo de reloj se transfieren n bits del buffer de E/S, es decir, en cada flanco positivo y en cada flanco negativo. Por este motivo a este tipo de memoria se las llama de doble velocidad de transferencia de datos (Dual Data Rate). Electrónica Digital II Cristian Sisterna Página |6 Para poder llevar a cabo la transferencia de datos en ambos flancos de reloj, en la arquitectura de la SDRAM DDR el tamaño del bus de datos interno de la memoria es el doble del bus de datos externo. Es decir, si la memoria recibe/transfiere datos de 8 bits, el bus interno es de 16 bits. Por otro lado, se puede deducir que en este tipo de memoria la lectura mínima es de dos datos o palabras, y las únicas longitudes de palabras soportadas tanto para lectura como para escritura son potencias enteras de 2; es decir 2, 4, 8, etc. Técnicamente, la lectura o escritura de datos en longitudes de más de un dato, se conoce como paquete o en inglés como “burst” (ráfaga), por lo que una transferencia de un paquete o burst de 4 significa que se transfieren 4 palabras. La Figura 3 muestra una arquitectura de una SDRAM DDR con pre búsqueda de 2*n bits. Figura 3. Representación gráfica de una arquitectura con pre búsqueda de 2n bits. En la Figura 3 se puede observar al bus interno de 2*n bits, que se divide en el dato correspondiente a la dirección par (even), y en el dato correspondiente a la dirección impar (odd). Estos datos se capturan en un buffer con cerrojo, para posteriormente sacar el dato de la dirección impar en el flanco positivo, y el dato de la dirección par en el flanco negativo. Y así el proceso continúa transfiriendo un dato de n bits por cada flanco del reloj. Electrónica Digital II Cristian Sisterna Página |7 4. Arquitectura de una SDRAM La arquitectura interna de una SDRAM consiste principalmente de cuatro bancos de memoria. A cuál de estos bancos se accede, depende del valor de los dos bits más significativos de la dirección de acceso. Este esquema de cuatro bancos de memoria provee el máximo ancho de banda posible, ya que cada banco se puede acceder independientemente del otro. Una vez que se ha seleccionado una fila de un determinado banco, puede ser mantenida activa y accedida en cada ciclo de reloj simplemente cambiando la dirección de columna. Por otro lado, se puede acceder a un banco mientras los otros están siendo precargados (precharged). Una vez que se ha activado la fila de cada banco, pueden ocurrir accesos a columnas alternadas en cada ciclo de reloj, causando un ping-pong entre los bancos. El intervalo de transición entre bancos es menor que la transición en un mismo banco. Figura 4. Diagrama de bloque funcional de una memoria SDRAM de 128 Mbits. Electrónica Digital II Cristian Sisterna Página |8 5. Reloj de la SDRAM DDR A medida que aumenta la frecuencia del reloj de un sistema digital, diversos factores, tanto eléctricos, electromagnéticos, como mecánicos afectan la integridad de la señal de reloj, obteniéndose en la práctica una señal de reloj que dista mucho de ser la ideal. Una de las características de la señal de reloj que puede verse afectada, es que el periodo en alto del reloj difiera en tiempo con el periodo en bajo del reloj, es decir que el ciclo de trabajo del reloj (duty cycle) no sea exactamente del 50%. Para el caso de las memorias SDR (single data rate), en la cuales todas las operaciones están sincronizadas con el flanco positivo del reloj, no es muy crítico que el ciclo de trabajo sea exactamente del 50%. Sin embargo, para las memorias tipo DDR, que usan ambos flancos de reloj, es muy importante que el tiempo en ‘0’ sea el mismo que en ‘1’. Es por ello que las memorias tipo DDR adoptan un esquema de reloj de tipo señal diferencial. La Figura 5 detalla los tipos de reloj usados para SDR y DDR. Figura 5. Tipos de señales de reloj para memorias SDR y DDR. CK\ es una señal de entrada a la memoria que tiene el mismo periodo, pero fase invertida, que CK. Al utilizar un esquema de señal de reloj tipo diferencial posibilita a la SDRAM DDR soportar frecuencias de reloj cada vez más altas, y limita la influencia negativa del ruido (noise), fluctuación (jitter), desfasaje (skew), etc. Electrónica Digital II Cristian Sisterna Página |9 6. Señal de Captura de los Datos de la SDRAM DDR (DQS) Como en la SDRAM DDR las operaciones se realizan al doble de la frecuencia del reloj externo, la ventana de validez de datos es más angosta que la de la SDR DRAM. Es por ello que para hacer el proceso de escritura y de lectura más fiable, se utiliza una señal de captura (o sincronismo) de los datos (data strobe signal) llamada DQS. DQS es una señal bidireccional, controlada ya sea por la memoria (cuando el dato es leído desde la misma) o controlada por el controlador de memoria (cuando se escribe un dato en memoria). La Figura 6 detalla la funcionalidad de la señal DQS. Figura 6. Diagrama de tiempo de la señal DQS en operaciones de lectura y escritura. Como se puede observar en la Figura 6, el flanco de DQS está alineado con el flanco del dato leído en el proceso de lectura de un dato; mientras que el flanco de DQS está alineado con el centro del dato a escribir en el proceso de escritura. Esto significa que el controlador de la memoria debe generar la señal DQS desfasada 90 grados del reloj que se usa para generar el dato a escribir. Por el otro lado, el controlador de la memoria deberá retardar 90 grados la señal DQS generada por la memoria para poder usar esa señal para capturar el dato leído. 7. Lectura/Escritura de la SDRAM DDR La Figura 7 muestra la relación entre el reloj de entrada a la SDRAM DDR (señal diferencial), las señales de control y el ciclo de lectura. Electrónica Digital II Cristian Sisterna P á g i n a | 10 Figura 7. Diagrama de tiempo de una operación de lectura en una SDRAM DDR. La Figura 8 muestra la relación entre el reloj de entrada a la SDRAM DDR, las señales de control, y el ciclo de escritura. Figura 8. Diagrama de tiempo de una operación de escritura en una SDRAM DDR. Electrónica Digital II Cristian Sisterna P á g i n a | 11 8. Paquete de Datos o Burst A fin de poder transferir datos a la velocidad más alta posible, las SDRAM DDR implementan el modo paquete (burst). En el modo burst, el procesador le envía a la memoria la primera dirección de la escritura o lectura, y la memoria genera las direcciones subsiguientes. El modo burst reduce al tiempo de atención del procesador a las operaciones de lectura o escritura, ya que debe generar solo la dirección de comienzo del paquete de datos, evitando tener que generar toda la secuencia de señales de escritura y lectura por cada dirección de memoria. Normalmente las SDRAM DDR soportan longitudes de 2, 4, 8 y banco o página completa. Así por ejemplo un burst de 4 ciclos, significa que el procesador genera la primer dirección de acceso a la memoria y la SDRAM DDR genera las tres direcciones restantes. La opción de banco o página completa es muy útil para, por ejemplo, rellenar la memoria caché después de que esta ha sido limpiada completamente (flushed), después de un cambio del proceso en ejecución realizado por el sistema operativo. También se usa para aplicaciones de procesamiento de imágenes, en las que grandes cantidades de datos representan la imagen en pantalla. La latencia de la SDRAM DDR también es programable. Tal como se explicó antes, la latencia determina el número de ciclos de reloj entre que se requiere el dato y que el dato está disponible en los terminales de salida de la memoria. Hay que tener en cuenta que esta latencia se aplica sólo al primer dato que se accede, después de éste, se dispone de un nuevo dato a la salida en cada flanco de reloj. Figura 9. Ejemplo de distintos valores de latencia. Electrónica Digital II Cristian Sisterna P á g i n a | 12 Figura 10. Ejemplo de distintos tamaños de paquete (burst). 9. Funcionalidad de las Señales de Control Otra diferencia importante entre la SDRAM y la DRAM es que, aun cuando las señales de control de la SDRAM tienen el mismo nombre que en la DRAM (RAS\, CAS\, WE\, etc.), el modo de uso y su significado es totalmente diferente. En una SDRAM estas señales de control son interpretadas como un código de operación (opcode), formando en general un conjunto de órdenes para la SDRAM. Este código u orden es decodificado por una máquina de estados interna en la SDRAM, quien es la que realmente controla el acceso a los bloques de memoria de la SDRAM. En esto se diferencian de una DRAM en la que las mismas señales de control controlan la escritura y lectura de los bloques de memoria de la misma, y no tienen otra funcionalidad. La Tabla 1 detalla los comandos más comunes en una SDRAM. Electrónica Digital II Cristian Sisterna P á g i n a | 13 Tabla 1. Valores de las señales de control para los distintas operaciones de la SDRAM DDR Electrónica Digital II Cristian Sisterna P á g i n a | 14 Apéndice (lectura opcional) A1. SSTL-2 Series Stub Terminated Logic para 2,5V (SSTL-2), es un estándar eléctrico de circuitos digitales especificado y estandarizado por la organización JEDEC (Joint Electron Device Engineering Council). El estándar SSTL-2 es una especificación para señales de alta velocidad que usa un esquema de terminación paralelo. El uso de la terminación paralelo es importante, ya que permite terminar apropiadamente las líneas de transmisión de los buses de datos, reduciendo considerablemente las reflexiones de las señales, lo cual provee tiempos de ascenso y de caída más rápidos. Esta terminación también permite frecuencias de reloj más altas. Existen dos esquemas de implementación de la terminación paralela en el estándar SSTL-2. En la Figura 11, en el lado receptor el bus se termina con un simple resistor en paralelo. Generalmente, las terminaciones simple-serie y simple-paralelo se usan para señales unidireccionales, tales como las líneas de control y el bus de direcciones. Para señales bidireccionales, tales como el bus de datos y DQS, se usa el esquema doble-serie doble-paralelo de la Figura 12. Figura 11. Esquema de terminación paralela del lado del receptor. Figura 12. Esquema doble-serie doble-paralelo. Electrónica Digital II Cristian Sisterna P á g i n a | 15 A2. MEF de Control de una SDRAM DDR La Figura 13 muestra un diagrama de flujo simplificado de la máquina de estados interna de la SDRAM DDR, que controla el proceso de lectura, escritura y refresco. Las transiciones entre los estados de la MEF se definen por las órdenes detalladas en la Tabla 1. Figura 13. Diagrama de estados de la MEF de control de una SDRAM DDR. Electrónica Digital II Cristian Sisterna P á g i n a | 16 A3. Precarga (precharged) Tal como se vio cuando se estudió la memoria DRAM, es muy importante que las líneas de bit sean mantenidas a un potencial de VCC/2. Este proceso es llamado precarga (precharged). La precarga de las líneas de bit a VCC/2 es el paso más importante para todas las operaciones de la DRAM. Antes de escribir o leer una celda de la DRAM, la línea de bit debe ser precargada. A4. Tipos de SDRAM-DDR La siguiente tabla muestra las características principales de las diferentes DDR SDRAM comerciales. Parameter DDR3 SDRAM DDR2 SDRAM DDR SDRAM Performance 300-800 MHz 200-533 MHz 100-200 MHz Altera FPGA interface support Up to 1066 Mbps Up to 800 Mbps Up to 400 Mbps 512 MB - 8 GB, 256 MB - 1 GB, 128 MB - 1 GB, 32 MB - 8 GB (DIMM) 32 Mb - 4 GB (DIMM) 32 Mb - 2 GB (DIMM) SSTL-15 SSTL-18 SSTL-2 Class I, II Class I, II Class I, II Data width 4, 8, 16 4, 8, 16 4, 8, 16, 32 Burst length 8 4, 8 2, 4, 8 CAS latency 5 - 10 3, 4, 5 2, 2.5, 3 Data strobe Differential bidirectional strobe only Differential or singleended bidirectional strobe Single-ended bidirectional strobe Density I/O standard Electrónica Digital II Cristian Sisterna P á g i n a | 17 A5. Lectura de Datos de una SDRAM DDR desde un FPGA La siguiente figura detalla la lectura de datos en ambos flancos de reloj (DDR), y como esos datos son alineados dentro del FPGA. Figura 14 - Diagrama de tiempo de la lectura de datos DDR Se puede observar como dentro del FPGA es necesario desfasar la señal de captura DQS unos 90 grados a fin de poder ser utilizada para capturar el dato en el medio del rango del mismo. También se observa que un flip-flop de entrada captura el dato en el flanco positivo del ‘inclock’ y el otro captura en el flanco negativo de ‘inclock’. Un segundo flip-flop es utilizado para recapturar el dato neg_reg_out con el flanco positivo del reloj de modo que los datos de entrada queden todos alineados con el flanco positivo del reloj. A6. Lectura de Datos de una SDRAM DDR desde un FPGA El diagrama de tiempo de la escritura de datos en ambos flancos de reloj DDR se detalla en la siguiente figura. Electrónica Digital II Cristian Sisterna P á g i n a | 18 Figura 15. Diagrama de tiempo de escritura DDR En este caso el FPGA genera los datos con el flanco positivo y negativo de ‘outclock’, pero el reloj que envía con los datos, DQS, está desplazado 90 grados con respecto a ‘outclock’. De este modo el dispositivo que recibe los datos, por ejemplo una memoria DDR SDRAM, puede fácilmente usar DQS para capturar los datos a ser escritos. A7. LVDS Al aumentar cada vez más la necesidad de transmisión de datos a alta velocidad, la interface entre circuitos integrados de alta velocidad es crítica para poder alcanzar alto rendimiento, baja potencia y buena inmunidad al ruido. Entre los estándares más usados para este tipo de transmisión esta el LVDS. El termino LVDS deriva del ingles Low Voltage Differential Signal, que significa señal diferencial de bajo voltaje. Al ser una señal diferencial se necesitan dos pines E/S por señal a transmitir/recibir. La siguiente figura muestra la conexión entre dos dispositivos usando el estándar LVDS. Electrónica Digital II Cristian Sisterna P á g i n a | 19 Figura 16. Conexión típica LVDS entre dos dispositivos Entre las principales ventajas de este estándar están: reducción de EMI comparado con otros estándares debido a su bajo rango de voltaje, y lenta pendiente de crecimiento (slow slew rate), menor reflexión, mejor inmunidad al ruido, menos consumo de potencia, bajo costo (no necesita componentes especiales, el circuito impreso es el mismo usado para cualquier otro diseño). Figura 15 muestra una captura en osciloscopio de una señal tipo LVDS, apreciándose a simple vista algunas de las ventajas enumeradas en el párrafo anterior. Se destaca el bajo rango de voltaje de las señales, del orden de los 350mV, las dos señales (Q y Q\) están referenciadas entre sí, no a masa, ní a un nivel fijo de voltaje. Figura 17. Captura en osciloscopio de una señal tipo LVDS Electrónica Digital II Cristian Sisterna P á g i n a | 20