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 • http://www.jedec.org (Organismo de estandarización semiconductores) • http://www.micron.com (Memorias EDO/FPM, SDRAM, DDR) • http://www.rambus.com (Memorias RDRAM) BIBLIOGRAFÍA COMPLEMENTARIA •Hans-Peter Messmer. “The Indespensable PC Hardware Book”. Addison-Wesley, 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: ampliación banco memoria y pipeline de direcciones 3.3.5. El controlador de memoria 3.4. Módulos de Memoria DRAM 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.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 Los chips de memoria DRAM se agrupan en circuitos impresos que constituyen módulos de memoria y que son usados para ser directamente (insertados) en los computadores. 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.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. Con un control síncrono (señal reloj) la memoria puede capturar en latches la información enviada por el procesador. La CPU queda liberada y de esta forma puede seguir trabajando. Los datos de salida en el caso de una lectura se proporcionan transcurridos una serie de ciclos de reloj. Se elimina la necesidad de propagar múltiples strobes y de señales para comunicar la entrada de datos. Nuevas señales como CS# (chip select), CLK# (clock) y DQM (data mask) que sustituye a OE# (output enable). Memoria BEDO ampliada que utiliza señal reloj para sincronización, entrelazado interno y dos registros por separado para datos de E/S. 38 3.5.1. Memorias SDRAM (Synchronous DRAM) 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. 39 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. 40 3.5.1. Diagrama de bloques de una SDRAM (Módulo de 4 bancos de 2Mx8b Æ 8M x 8b = 8 MB) 41 3.5.1. Memorias SDRAM (Synchronous DRAM). Esquema integración módulos SDRAM en DIMM (módulos DDR2 en DIMM) 42 3.5.1. Memorias SDRAM (Synchronous DRAM) z La latencia CAS (número de ciclos entre mandato READ y datos disponibles en DQs) suele ser 2 ó 3 ciclos. 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. z Antes de 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 AUTOPRECHARGE (auto precarga). 43 3.5.1. Memorias SDRAM (Synchronous DRAM) z 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). Memorias SDRAM funcionan entre los 66 MHz y 133 MHz. 44 3.5.1. Comparación DRAMs síncronas y asíncronas 45 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: la 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 (800mhz). 46 3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM) z z Los mandatos (commands) al igual que en las SDRAMs se leen a la subida de una señal de reloj. Como se accede a dos datos consecutivos en un ciclo, el controlador de memoria puede optar por enmascarar cualquiera de ellos. 47 3.5.2. Diagrama de bloques de una DRAM con interfaz SDR y DDR (Módulo de 4 bancos de 4Mx8b Æ 16 MB) 48 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. 49 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. 50 3.5.2. DDR1 y DDR2 DIMM 51 3.5.3. Memorias RDRAM (Rambus DRAM) z z z z z Alternativa sin éxito comercial de la memoria DDR. Arquitectura revolucionaria respecto a las tradicionales DRAMs. Bus de alta velocidad (entre 800 MHz y 1600 MHz) pero ancho de bus pequeño (16 bits) Æ en media ancho de banda parecido 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). 52 3.5.3. Diagrama de bloques de una RDRAM 53 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 54