Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
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.
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.
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.
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).
La Figura 3 muestra una arquitectura de una SDRAM DDR con pre búsqueda de 2*n 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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
La siguiente tabla muestra las características principales de las diferentes DDR SDRAM comerciales.
Altera FPGA
Up to 1066 Mbps Up to 800 Mbps Up to 400 Mbps
interface support
Burst length 8 4, 8 2, 4, 8
La siguiente figura detalla la lectura de datos en ambos flancos de reloj (DDR), y como esos datos son
alineados dentro del FPGA.
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.
El diagrama de tiempo de la escritura de datos en ambos flancos de reloj DDR se detalla en la siguiente
figura.
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.
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.