ARQUITECTURA DE COMPUTADORES z Tema 2: z TECNOLOGÍA DE LOS SISTEMAS DE MEMORIA http:// www.atc.us.es Objetivos z z z z z Presentar las características más relevantes de las memorias RAM estáticas y dinámicas. Hacer un estudio histórico de la evolución de la tecnología de las memorias DRAM. Proporcionar una visión moderna y actual del funcionamiento de las memorias DRAM. Dar una base para entender futuros avances en la tecnología de memorias. Capacidad para elegir la memoria DRAM más adecuada para un computador. 2 Bibliografía Escasa, muy general y no suficientemente actualizada con últimas tendencias. • http://www.jedec.org (Organismo de estandarización semiconductores) • http://www.micron.com (Memorias EDO/FPM, SDRAM, DDR) • http://www.rambus.com (Memorias RDRAM) • http://www.intel.com (Controladores de memorias, Chipsets) • Ashok K. Sharma. “Semiconductor Memories: Technology, Testing, and Reability”. Wiley-IEEE Press, 2002. (Æ Actualmente descatalogado) BIBLIOGRAFÍA COMPLEMENTARIA •Hans-Peter Messmer. “The Indespensable PC Hardware Book”. AddisonWesley, 2002. •Thomas L. Floyd. “Fundamentos de sistemas digitales”. Prentice-Hall, 2000. •J.L. Hennessy, D.A. Patterson. “Computer Architecture”. Morgan Kaufmann Publishers, 2003. 3 Índice de contenidos (1) 1. Memorias semiconductoras 2. Memorias de acceso aleatorio estáticas (SRAM): 2.1. Estructura externa de una SRAM asíncrona 2.2. Estructura interna de una SRAM asíncrona 2.3. Cronograma de lectura/escritura en una SRAM asíncrona 3. Memorias de acceso aleatoria dinámicas (DRAMs): 3.1. Fundamentos de memorias DRAM 3.2. DRAMs asíncronas: 3.2.1. Estructura interna de una DRAM asíncrona 3.2.2. Cronograma Acceso Lectura Memoria DRAM 3.2.3. FPM RAM 3.2.4. EDO RAM 3.2.5. BEDO RAM 4 Índice de contenidos (2) 3.3. Otros aspectos relacionados con las DRAMs: 3.3.1. Refresco 3.3.2. Precarga 3.3.3. Entrelazado de memoria 3.3.4. Otras mejoras para aumentar el rendimiento. 3.3.5. El controlador de memoria 3.4. Módulos de Memoria DRAM 3.4.1 Organización y modos de operación. 3.4.2 Ejemplo conexión memoria DRAM en Pentium IV 3.5. DRAMs síncronas: 3.5.1. Memorias SDRAM (Synchronous DRAM) 3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM) 3.5.3. Memorias RDRAM (Rambus DRAM) 4. Anexo: Nomenclatura DRAMs. 5 1. Memorias Semiconductoras z z z Memoria semiconductora: matriz de celdas que contienen 1 ó 0, donde cada celda se especifica por una dirección compuesta por su fila (ROW) y su columna (COLUMN). Utilización de transistores Æ semiconductoras. Operaciones básicas: lectura y escritura de datos. Conexión al exterior mediante bus de datos, direcciones y control. Dos categorías principales: - ROM (read-only memory): los datos se almacenan de forma permanente o semipermanente Æ memorias no volátiles. - RAM (random-access memory): se tarda lo mismo en acceder a cualquier dirección de memoria (acceso en cualquier orden), capacidad de lectura y escritura, memorias volátiles. Dos tipos: SRAM y DRAM. 6 2. Memorias de acceso aleatorio estáticas (SRAM, static RAM) z z z z z Utilización de flip-flops para almacenar celdas. Rapidez de acceso a los datos. Tecnología con la que se implementan las memorias caché. Dos tipos: asíncronas y síncronas de ráfaga. Diferencia: utilización de la señal de reloj del sistema para sincronizar todas las entradas este reloj. Modo ráfaga en las SRAM síncronas: leer o escribir en varias posiciones de memoria (hasta 4) utilizando una única dirección. También presente en memorias DRAM. 7 2.1. Estructura externa de una SRAM asíncrona Vcc Pastilla memoria 2n x w bits GND an-1 a2 a1 a0 Dirección (n bits) Control SRAM OE WE CS Selección dw-1 d2 d1 d0 Líneas de datos (w bits) 8 2.2. Estructura interna de una SRAM asíncrona Pastilla memoria 2n x w bits an-1 a1 a0 Dirección (n bits) Decodificador Biestable D Din D Q Clk WE OE WE Fila Control datos entrada/salida Dout CS dw-1 d2 d1 d0 Líneas de datos (w bits) 9 2.3. Cronograma de lectura/escritura en una SRAM asíncrona •Tiempo de acceso: tiempo transcurrido desde que se hace la petición (dirección a la entrada del bus de direcciones) hasta que se accede al dato. •Tiempo de ciclo (ciclo de lectura/escritura): tiempo mínimo que debe transcurrir entre dos peticiones de lectura y escritura. Ambos tiempos pueden coincidir Ciclo de escritura d (w-1, 0) a (n-1, 0) Datos entrada Dirección escritura Ciclo de lectura Datos salida Dirección lectura Datos salid Dirección lectura OE WE Tiempo de establecimiento de la escritura (tiempo de setup) Tiempo mantenimiento Tiempo acceso lectura Datos escritura (tiempo de hold) Tiempo acceso lectura 10 3. Memorias de acceso aleatoria dinámicas (DRAM, dinamic RAM) 3.1. Fundamentos de memorias DRAM 3.2. DRAMs asíncronas: 3.2.1. Estructura interna de una DRAM asíncrona. 3.2.2. Cronograma Acceso Lectura Memoria DRAM 3.2.3. FPM RAM 3.2.4. EDO RAM 3.2.5. BEDO RAM 3.3. Otros aspectos relacionados con las DRAMs: 3.3.1. Refresco 3.3.2. Precarga 3.3.3. Entrelazado de memoria 11 3. Memorias de acceso aleatoria dinámicas (DRAM, dinamic RAM) 3.3.4. Otras mejoras para aumentar el rendimiento: ampliación banco memoria y pipeline de direcciones 3.3.5. El controlador de memoria 3.4. Módulos de Memoria DRAM 3.4.1. Organización y modos de operación 3.4.2. Ejemplo conexión memoria DRAM en Pentium IV 3.5. DRAMs síncronas: 3.5.1. Memorias SDRAM (Synchronous DRAM) 3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM) 3.5.3. Memorias RDRAM (Rambus DRAM) 12 3.1. Fundamentos de memorias DRAM z z z z Celdas implementadas mediante un condensador en vez de un latch/biestable Æ mayor densidad de almacenamiento a un menor costo. Se pasa de 6 transistores a 1 transistor. Transistor MOS (MOSFET). El transistor actúa como interruptor. Guarda la mínima carga eléctrica posible para luego poder ser leída mediante un circuito de amplificación: cargado (1) o descargado (0). Acceso por fila (linea de palabra) y por columna (línea de bit). Línea de palabra Línea de bit z C 13 3.1. Fundamentos de memorias DRAM z z z z z Memorias más lentas que las SRAM: se prima el bajo costo y la mayor capacidad de almacenamiento. Requieren refresco periódico (Dynamic RAM): el condensador se descarga. Tiempo de ciclo > tiempo de acceso. Multiplexación de direcciones: ahorro de pines en los chips de memoria. Las SRAM al tener menor capacidad, no tenían ese problema. Una dirección se divide/multiplexa en dos partes: fila (parte alta) y columna (parte baja). Señales necesarias: RAS# y CAS#. - RAS# (row access strobe): validación de la fila. - CAS# (column access strobe): validación de la columna. Asíncronas y síncronas: intercambio de señales entre la memoria y el procesador ó utilización de una señal de reloj. 14 3.2. Memorias DRAM asíncronas 3.2.1. Estructura interna de una DRAM asíncrona N/2 Dirección (N / 2 bits) Registro de FILA Matriz 2N/2x2N/2 Vcc Decod. FILA RAS Memoria 2N x 1 GND Amplificadores Registro de N/2 COLUMNA CAS Mux. COLUMNA Bit OUT Bit IN R/W 15 3.2.2. Cronograma Acceso Lectura Memoria DRAM 16 3.2.3. Memorias FPM RAM (Fast paged mode RAM) z z z z Una operación de lectura/escritura consiste en una secuencia de accesos donde sólo el primero especifica la fila y la columna. El resto se realizan sobre la misma fila (página) especificando sólo la columna. El primer acceso es el más lento. Se puede llegar a ahorrar hasta un 50% en el tiempo de acceso. Problema/desventaja: a la subida de CAS se quita el dato de salida del bus de datos. Esto limitaba el tiempo que tenían los procesadores para leer el dato antes de ser quitado de la salida del bus de datos. 17 3.2.3. Memorias FPM RAM (Fast paged mode RAM) (Cronograma memoria FPM RAM) • Acceso en chips de 60ns a una frecuencia máxima de 28.5 MHz Æ Utilización en PC-s 486 a 33MHz ó PC-s entre 66MHz y 200MHz añadiendo caché (SRAM) para escalar tiempos. 18 3.2.4. Memorias EDO RAM (Extended Data Out RAM) z z Similares a las FPM. Mantiene el dato válido más tiempo: se guarda el dato en un buffer y no así no se elimina del bus a la subida de la señal CAS Æ Extended Out. Así la CPU tiene más tiempo para leer dato. Aumenta la frecuencia de funcionamiento hasta los 40mhz consiguiendo una mejora en el rendimiento de un 40% respecto FPM. 19 3.2.5. Memorias BEDO RAM (Burst EDO RAM) z z Una vez que se haya proporcionado una dirección de columna las siguientes direcciones se generan internamente mediante un contador Æ modo ráfaga (burst). Frecuencia 66mhz. Problema: memoria asíncrona (y lenta). La señal de CAS# se generaba a partir de CLK y luego se leía. ¿Por qué no muestrear entonces directamente señal CAS# mediante señal CLK? Æ Siguiente generación: DRAMs síncronas ó SDRAMs. 20 3.3. Otros aspectos relacionados con las DRAMs 3.3.1. Refresco (1) • • • • • • Operación de reescritura periódica de la información de la DRAM. La realiza un circuito de refresco que puede ser independiente o estar dentro de la memoria DRAM. Actualmente integrado dentro. El refresco puede interferir con los ciclos de acceso a la memoria. Con cada acceso a la DRAM, para lectura o escritura, se refresca una fila completa de la matriz de bits. Se refrescan simultáneamente todos los chips (del SIMM ó DIMM). Supone una bajada en el rendimiento de la RDAM: a veces la DRAM no está disponible. Diseñadores intentan que sea menos del 5% del tiempo total. Tiempo de refresco (TR): Tiempo máximo que puede transcurrir entre dos accesos consecutivos a una misma fila de la DRAM. Si no se respeta el tiempo de refresco, la memoria pierde la información por descarga del condensador de la celda de bit. 21 3.3.1. Refresco (2) Técnicas de refresco: • Refresco con RAS (RAS-Only Refresh): señal RAS# + dirección fila a refrescar. Se precisaba circuito externo para refrescar todas las filas: DMA 8237 (recorre filas) + Temporizador 8254 (tiempo TR). • Refresco con CAS antes que RAS (CAS-before-RAS Refresh): chips de DRAM contienen lógica de refresco interna. Existe un contador interno de filas. • Refresco oculto (Hidden Refresh): después de un acceso para lectura se vuelve a activar RAS# manteniendo CAS#. Es más rápido que iniciar nueva lectura de fila. Existe contador interno de direcciones de refresco. Secuencia de los ciclos de refresco: • Refresco por ráfagas: refresco por filas consecutivas. Ocupación de la memoria excesiva hasta refrescar las N filas. • Refresco intercalado: ciclos intercalados entre lecturas y escrituras. Los ciclos se distribuyen en todo el periodo T a intervalos T/N (siendo T el tiempo de refresco y N el número de filas). 22 3.3.1. Refresco (3) 23 3.3.2. Precarga (1) •El circuito de Precarga sirve para dar soporte a los amplificadores de señal. •Al conectarse los transistores para lectura (y amplificación) se produce una pequeña diferencia de potencial en las líneas BL y BL* 24 3.3.2. Precarga (2) z La diferencia de potencial en las líneas BL y BL* se ha de restaurar (a Vcc/2) durante una fase llamada de precarga (tPR), antes de poder volver a acceder a una nueva fila. 25 3.3.3. Entrelazado de Memoria (1) z z z z Memoria entrelazada (Interleaved memory): se plantea como solución al problema de la precarga de la memoria. Se divide el módulo de la DRAM en varios bancos (banks) de memoria pero independientes entre si. La información se guarda de forma secuencial a lo largo de los diferentes bancos consecutivos de memoria. Así es posible precargar un banco mientras se accede al resto de bancos Æ ocultación del tiempo de precarga. 26 3.3.3. Entrelazado de Memoria (2) • Ejemplo de memoria DRAM NO entrelazada • Memoria compuesta por un único banco/vía dividido en dos secciones (chips) que proporcionan una palabra de 16 bits. 27 3.3.3. Entrelazado de Memoria (3) • Ejemplo de memoria DRAM entrelazada • Memoria compuesta por dos bancos/vías (de dos secciones cada uno) que proporcionan una palabra de 16 bits. 28 3.3.3. Entrelazado de Memoria (4) z Ejemplo de cronograma para memoria entrelazada de 2 vías que acceden a datos en diferentes filas. 29 3.3.4. Otras mejoras para aumentar el rendimiento: ampliación banco memoria y pipeline de direcciones z 1) 2) Varias técnicas genéricas utilizadas en algunas DRAM asíncronas (BEDO) y a partir de las SDRAM para incrementar la velocidad de acceso. Soluciones basadas en modificar la arquitectura, no la tecnología: Ampliar el banco de memoria: solución más simple. Se traen varias palabras por cada acceso a una palabra de la DRAM. Estas palabras (bloque) se pueden guardar en una memoria intermedia de tipo SRAM llamada memoria caché. Requiere añadir una lógica extra (multiplexor) entre ambas memorias. Pipeline de direcciones: el procesador pide un segundo acceso sin tener el dato antes del primero. Se minimiza el tiempo de latencia del procesador. Relacionado con el concepto de ráfaga. Aparece ya en las memorias FPM. 30 3.3.5. El controlador de memoria (1) z z z Los chips de DRAM no se conectan directamente al bus. El controlador de memoria adapta las señales del procesador a las de la memoria. Funciones: – Traducción de la dirección que envía el procesador en filas y – – – – columnas. Activar señales de control: RAS#, CAS#, ... Sincronización con todos los chips de DRAM. Selección módulo DRAM (en DIMMs). Refresco. A veces esta función (o parte de ella) ya va incluida en los propios chips de DRAM. Verificar paridad. 31 3.3.5. El controlador de memoria (2) z Estructura de un controlador de memoria DRAM dirección de palabra RAS0 DESC RASn–1 MUX dirección multiplexada datos CAS1 MEM, R/W, etc CAS0 habilitación de byte módulos de memoria DRAM datos 32 3.4. Módulos de Memoria DRAM (1) z z z z Los chips de memoria DRAM se agrupan en circuitos impresos que constituyen módulos de memoria y que son usados para ser directamente insertados las placas base de los computadores. Antiguamente (procesadores anteriores a los Intel 386) la memoria DRAM iba soldada a la placa base como el resto de circuitos. Estos módulos están estandarizados y han evolucionado en paralelo a los diferentes tipos de DRAMs. Se clasifican/nombran por su patillaje (nº contactos), tecnología DRAM, fabricante, ... 33 3.4. Módulos de Memoria DRAM (2) z z z z SIP (Single In-Line Package): hasta 256KB. Bus de datos de 8 bits. Usados en i80386 e i80486. SIMM (Single In-Line Memory Module): – 30 contactos: memorias FPM/EDO, bus datos de 8 bits, 4-6 MB. Usados en i80386 e i80486. – 72 contactos: memorias FPM/EDO, bus datos de 32 bits, 432 MB. Usados en i80486 y primeros Pentium. DIMM (Dual In-Line Memory Module) : memorias SDRAM, 168 contactos, bus de datos de 32 ó 64 bits efectivos (sin bits paridad), 4-512 MB. Procesadores Pentium. DIMM DDR (DIMM Double Data Rate): memorias DDR. Hasta 240 contactos. Bus de datos de 64 bits efectivos. Módulos de hasta 2 GBs. Procesadores Pentium 4. 34 3.4. Módulos de Memoria DRAM (3) z RIMM ó PS/2 (Rambus In-Line Memory Module): memorias RAMBUS. Bus de datos de 32 bits. Primeros procesadores Pentium 4 y Play Station 2. 35 36 DIMM 3.4. Módulos de Memoria DRAM (4) z Ejemplo de sistema de memoria con DRAM: controlador (en el caso de los PCs incluído en el puente norte de la placa base) + DIMM (4 módulos de 168 contactos, ancho del bus de datos 64 bits) DESC RAS1 dirección MUX datos dirección multipl. RAS2 RAS3 datos CAS7 RAS0 CAS0 BE0..7* DIMM 0 DIMM 1 DIMM 2 DIMM 3 37 3.4.1. Organización y modos de operación (1) z z Soporte de configuraciones de módulos de memorias proporcionados para el módulo interfaz de memoria (G)MCH por el chipset Intel 965 Express (puente norte). Tres configuraciones: – Canal simple/único (single channel): toda la memoria del ordenador en un único módulo DIMM. – Canal doble/dual asimétrico (dual channel asymmetric): dos módulos DIMM pero no del mismo tamaño. – Canal doble/dual simétrico (dual channel symmetric): dos módulos DIMM del mismo tamaño. 38 3.4.1. Organización y modos de operación (2) Canal simple/único Canal doble/dual asimétrico 39 3.4.1. Organización y modos de operación (3) Canal doble/dual simétrico. Permite acceso completo a un ancho de banda para procesadores 64 bits z En caso de que los módulos DIMM de memoria DDR sean de diferente velocidad/frecuencia, la frecuencia del sistema de memoria (Front Side Bus) se ajusta a la frecuencia del DIMM más lento/bajo. 40 3.4.1. Organización y modos de operación (4) z La configuración de los módulos DIMM con canales dobles/duales permite también el entrelazado de memoria para páginas (filas) consecutivas a nivel de módulos DIMM. 41 3.4.2 Ejemplo conexión memoria DRAM en Pentium IV (1) z La conexión de la memoria DRAM a un Pentium IV se hace a través de la placa base/madre ó chipset. Es un circuito impreso (PCB: Printed Circuit Board) que soporta y conecta los elementos básicos de un PC. z Contiene generalmente dos chips principales llamados coloquialmente “puente norte” y “puente sur”. Están comunicados entre si a través de un bus interno y sirven de nexo entre todos los componentes del PC, incluída la memoria. – El “puente norte” sirve de nexo de unión entre los dispositivos “rápidos”. Incorpora el controlador de memoria, la interfaz con el procesador y el controlador gráfico. A veces incluso incorpora el propio procesador gráfico. El fabricante Intel lo suele denominar al chip MCH ó GMCH. – El ”puente sur” sirve de nexo de conexión a los dispositivos “lentos”, generalmente dispositivos de E/S. Tiene soporte para EIDE, Serial ATA, USB, DMA, IRQ, …, integra bus PCI, audio y moden, … El fabricante Intel lo suele denominar ICH. 42 3.4.2 Ejemplo conexión memoria DRAM en Pentium IV (2) 43 Diagrama de bloques/señales del Chip Intel 915 (“puente norte”). •El Processor System Bus Interface conecta las líneas/buses de la CPU. •El Direct Media Interface (DMI) sirve de conexión al “puente sur”. •Los System Memory son los controladores de memoria (uno por canal). 44 3.5. Memorias DRAM síncronas 3.5.1. Memorias SDRAM (Synchronous DRAM) z z z z z Los protocolos de comunicación entre la CPU y la DRAM producen una latencia alta: la CPU tiene que esperar a que la memoria acabe su ciclo y luego sincronizarse mediante señales. Ahora se elimina la necesidad de propagar múltiples strobes y de señales para comunicar la entrada de datos Æ se sustituyen por una señal de reloj. El “puente norte” (controlador memoria) puede medir con precisión la duración de los diferentes pasos de un ciclo de bus/acceso a la DRAM mediante la señal de reloj. La CPU sabe por tanto también el tiempo que tarda en recibirlos y ya no tiene que estar inactiva durante el periodo de espera/sincronización. Del reloj del bus del sistema (FSB) existen multiplicadores y divisores de frecuencia (de reloj) para la CPU, la memoria SDRAM y otros componentes y/o buses tales como el PCI. La velocidad (frecuencia) de las SDRAM se mide en hercios y generalmente coincide con la del bus del sistema en el caso de los PCs. Nuevas señales como CLK# (clock) o DQM (data mask) que sustituye a OE# (output enable). 45 3.5.1. Memorias SDRAM (Synchronous DRAM) z SDRAM = Memoria BEDO ampliada que utiliza señal reloj para sincronización, entrelazado interno y dos registros o búferes por separado para la entrada y salida de datos a la memoria. z Utilización de mandatos (commands) en vez de señales. Un mandato se compone varias señales: CS#, RAS#, CAS# y WE#. Ejemplo: el mandato ACTIVATE equivale poner en bajo las señales CS# y RAS# (selección fila y banco). El mandato READ equivale a poner en bajo las señales CS# y CAS# (selección columna). z Un mandato (command) se activa por un flanco de subida de reloj. 46 3.5.1. Memorias SDRAM (Synchronous DRAM) z Registros de modo programables para seleccionar la latencia CAS (ajuste de la velocidad de la memoria) y tipos y longitudes de ráfaga. z Al igual que en las memorias BEDO existen múltiples bancos de memoria: se pueden abrir varias filas (ROWS) en paralelo Æ posibilita más tipos de acceso en modo ráfaga: longitud de ráfaga 1, 2, 4 u 8 secuencial (incluyendo página completa) o entrelazada. 47 3.5.1. Diagrama de bloques de una SDRAM (Módulo de 4 bancos de 2Mx8b Æ 8M x 8b = 8 MB) 48 3.5.1. Memorias SDRAM (Synchronous DRAM). Esquema integración módulos SDRAM en DIMM (módulos DDR2 en DIMM) 49 3.5.1. Memorias SDRAM (Synchronous DRAM) z La latencia CAS ó tCL número de ciclos entre mandato READ y datos disponibles en DQs. z tRCD tiempo (latencia) entre activación de la señal RAS y la señal CAS. z Antes de poder utilizar el mandato ACTIVE (selección de banco y fila) es necesario que el banco esté cerrado y precargado Æ mandato PRECHARGE (precarga) ó mandatos READ ó WRITE con AUTO-PRECHARGE (auto precarga). tRP (tiempo de precarga) es el tiempo que transcurre desde que se desactiva (sube) la señal RAS hasta que se puede volver a activar (bajar). z DQM debe ponerse en alta (activarse) dos ciclos de reloj como mínimo antes del mandato WRITE para eliminar datos del anterior mandato READ. 50 3.5.1. Memorias SDRAM (Synchronous DRAM) z Los accesos en modo ráfaga con READ o WRITE pueden ser interrumpidos si no se han utilizado antes en sus versiones de AUTO PRECHARGE. Esto es debido a que con auto precarga una vez acabado la ráfaga se procede automáticamente a hacer la precarga (desactivar la/s fila/s de/los módulo/s correspondiente/s). z Memorias SDRAM funcionan entre los 66 MHz y 133 MHz. z Una memoria SDRAM (y DDR) se suele clasificar además de por su frecuencia, por tres medidas: tCL, tRCD y tRP. Ejemplo SDRAM-66 (2-3-3). 51 3.5.1. Comparación DRAMs síncronas y asíncronas 52 3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM) z Evolución natural de las SDRAM: simplemente aprovechan también los flancos de bajada de la señal de reloj para doblar frecuencia de funcionamiento y ancho de banda Æ se envían dos datos por cada señal de reloj. Ejemplo: una DDR 266 es básicamente una PC133 (última SDRAM fabricada) con señales CK y CK#. z Se añaden algunas nuevas señales y se quitan otras (ver tabla siguiente página). Como por cada ciclo de reloj se pueden recoger (leer) ó enviar (escribir) dos datos, es preciso añadir circuitería extra (ver diagrama de bloques). z Subir los MHz físicos es más difícil (y caro) de fabricar Æ razón de su éxito. z Varias familias en función de su frecuencia virtual: DDR1 (200mhz – 400mhz), DDR2 (400mhz – 667mhz), DDR3 (a partir de 800mhz). 53 3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM) z Los mandatos (commands) al igual que en las SDRAMs se leen a la subida de una señal de reloj. z Como se accede a dos datos consecutivos en un ciclo, el controlador de memoria puede optar por enmascarar cualquiera de ellos mediante la señal DM. 54 3.5.2. Diagrama de bloques de una DRAM con interfaz SDR y DDR (Módulo de 4 bancos de 4Mx8b Æ 16 MB) 55 3.5.2. Memorias DDR SDRAM (Acceso para lectura) Algunas diferencias entre DDR1 y DDR2: • Hay más mandatos en DDR2 que en DDR1. Mismo controlador de E/S puede manejar ambas memorias Æ cierta compatibilidad. • Se aumenta el tamaño de la página (fila) y se pasa de 4 bancos de memoria a 8 Æ Mejor aprovechamiento de la memoria entrelazada. 56 3.5.2. Memorias DDR SDRAM (Acceso para escritura) • Disminución del voltaje a 1,8V gracias al mayor nivel de integración. En memorias FPM era 5V. • La diferencia de voltaje es realmente la única diferencia tecnológica entre la DDR1 y la DDR2. 57 3.5.2. DDR1 y DDR2 DIMM 58 3.5.2. Memorias DDR SDRAM (optimizaciones 1) z 1. De cara a mejorar la eficiencia en el rendimiento de las memorias DDR, los controladores de memoria realizan ciertas optimizaciones. Ejemplo: funcionamiento del (G)MCH “puente norte” de Intel para los procesadores Pentium IV. Tecnología denominada como Intel Fast Memory Access. Básicamente cuatro mejoras: Just in Time Command Scheduling: implementa un planificador de mandatos (commands) dentro del controlador de memoria para acceso a datos de la memoria. Dichos accesos a memoria pueden provenir de la CPU, el PCI-Express (controlador gráfico) o el DMI (conexión con el “puente sur”). Se examinan los accesos pendientes y se determina el orden de ejecución para obtener mayor eficiencia. 59 3.5.2. Memorias DDR SDRAM (optimizaciones 2) 2. 3. 4. Command Overlap: permite insertar commands entre los ACTIVATE, PRECHARGE y READ/WRITE de otros accesos siempre y cuando no produzcan dependencias. Out of Order Scheduling: si hay múltiples peticiones pendientes de accesos sobre la misma página, estas peticiones se planifican de forma seguida para evitar abrir el menor número de veces posible la página. Opportunistic Writes: las peticiones de escritura en memoria suelen tener menos prioridad que las lecturas para evitar tener que hacer esperar a la CPU. Esta técnica agrupa las peticiones de escritura y las planifica cuando no entran en conflicto con las peticiones de lectura. De esa manera se garantiza un flujo más continuo de datos e instrucciones a la CPU. 60 En este ejemplo con Command Overlap y Out of Order Scheduling se planifican dos commands de lectura/READ (señal CAS#) a páginas/filas ya abiertas (Rd1 Pag A y Rd2 Pag B) fuera de orden. Los mandatos Act Pg son commands 61 ACTIVE de apertura de filas (RAS#) y los Pre Pg de PRECHARGE. 3.5.2. Memorias DDR SDRAM (optimizaciones 3) z z Los Dual-Channels (descritos en 3.4.1) permiten un aumento del ancho de banda del FSB mediante la utilización de la misma técnica de utilizar tanto el flanco de subida como de bajada de la señal reloj de las memorias DDR. Ejemplo: el reloj/velocidad del sistema (el verdadero FSB) de un PC basado en Pentium IV va a 200 MHz. Pero … – Con la técnica de las DDR (double pumped) tiene efecto de 400 MHz. – Pero cada uno de los 2 canales de memoria tiene su propia señal de reloj individual a 200 MHz reales (y 400 MHz virtuales). – Ambos relojes van alternados con un semiciclo de diferencia consiguiendo en cada ciclo de reloj obtener hasta 4 datos por ciclo: 2 canales x 200 MHz x 2 (double pumped) = 800 MHz de FSB Se habla en este caso de quad pumped (QDR). Dato de frecuencia del FSB para marketing, sólo alcanzable con al menos 2 módulos DIMM de DDR en accesos secuenciales que aprovechen el entrelazado a nivel de módulos de memoria. 62 Ejemplo de comparación ancho de banda de un bus del sistema a 200 MHz (FSB 800 MHz con QDR), bajando la frecuencia de una DDR533 de 268 MHz a 200 MHz (pasa a ser una DDR400) para igualar así frecuencia reloj del sistemaÆ ¡¡¡Ancho de banda del FSB (chipset bandwidth) igual!!! 63 3.5.3. Memorias RDRAM (Rambus DRAM) z z z z z z Alternativa sin éxito comercial de la memoria DDR de finales de los 90s y principios de siglo. Utilizadas en las primeras consolas PS2 y primeras placas base Intel para Pentium IV. Arquitectura revolucionaria respecto a las tradicionales SDRAMs Æ mayor coste económico respecto DDR. Bus de alta velocidad (entre 800 MHz y 1600 MHz) pero ancho de bus pequeño (16 bits) Æ en media ancho de banda parecido/igual a las DDR. Arquitectura dividida en dos grandes bloques: un bloque compuesto por hasta 32 bancos de memoria (múltiples accesos concurrentes) y otro compuesto por un interfaz Rambus que permite a un controlador externo acceder con una velocidad de hasta 3,2 Gb/s. Múltiples accesos concurrentes. También orientado a mandatos (commands) y aprovecha ambos flancos del reloj (subida y bajada). 64 3.5.3. Diagrama de bloques de una RDRAM 65 4. ANEXO: nomenclatura DRAMs Ejemplo. PC133: 133 MHz Æ 1000/133 ns = 7,5 ns por ciclo 64 bits / 7,5 ns = 8,5 x 109 b/s = 8,5 Gb/s = 1,06 GB/s NOTA: 1M = 106 1G = 109 66