You are on page 1of 54

ARQUITECTURA DE COMPUTADORES

Tema 2: TECNOLOGA DE LOS SISTEMAS DE MEMORIA

http:// www.atc.us.es

Objetivos
Presentar las caractersticas ms relevantes de las memorias RAM estticas y dinmicas. Hacer un estudio histrico de la evolucin de la tecnologa de las memorias DRAM. Proporcionar una visin moderna y actual del funcionamiento de las memorias DRAM. Dar una base para entender futuros avances en la tecnologa de memorias. Capacidad para elegir la memoria DRAM ms adecuada para un computador.
2

Bibliografa
http://www.jedec.org (Organismo de estandarizacin semiconductores)
http://www.micron.com (Memorias EDO/FPM, SDRAM, DDR) http://www.rambus.com (Memorias RDRAM)

BIBLIOGRAFA 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 estticas (SRAM): 2.1. Estructura externa de una SRAM asncrona 2.2. Estructura interna de una SRAM asncrona 2.3. Cronograma de lectura/escritura en una SRAM asncrona 3. Memorias de acceso aleatoria dinmicas (DRAMs): 3.1. Fundamentos de memorias DRAM 3.2. DRAMs asncronas: 3.2.1. Estructura interna de una DRAM asncrona 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: ampliacin banco memoria y pipeline de direcciones 3.3.5. El controlador de memoria 3.4. Mdulos de Memoria DRAM 3.5. DRAMs sncronas: 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
Memoria semiconductora: matriz de celdas que contienen 1 0, donde cada celda se especifica por una direccin compuesta por su fila (ROW) y su columna (COLUMN). Utilizacin de transistores semiconductoras. Operaciones bsicas: lectura y escritura de datos. Conexin al exterior mediante bus de datos, direcciones y control. Dos categoras principales: - ROM (read-only memory): los datos se almacenan de forma permanente o semipermanente memorias no voltiles. - RAM (random-access memory): se tarda lo mismo en acceder a cualquier direccin de memoria (acceso en cualquier orden), capacidad de lectura y escritura, memorias voltiles. Dos tipos: SRAM y DRAM.
6

2. Memorias de acceso aleatorio estticas (SRAM, static RAM)


Utilizacin de flip-flops para almacenar celdas. Rapidez de acceso a los datos. Tecnologa con la que se implementan las memorias cach. Dos tipos: asncronas y sncronas de rfaga. Diferencia: utilizacin de la seal de reloj del sistema para sincronizar todas las entradas este reloj. Modo rfaga en las SRAM sncronas: leer o escribir en varias posiciones de memoria (hasta 4) utilizando una nica direccin. Tambin presente en memorias DRAM.
7

2.1. Estructura externa de una SRAM asncrona


Vcc

Pastilla memoria 2n x w bits

GND

an-1

a2 a1 a0

Direccin (n bits)

SRAM
dw-1 d2 d1 d0 Lneas de datos (w bits)

Control

OE WE CS

Seleccin

2.2. Estructura interna de una SRAM asncrona


Pastilla memoria 2n x w bits Biestable D an-1 a1 a0 Direccin (n bits)
Decodificador

Din

D Q Clk

WE

OE WE CS

Fila

Control datos entrada/salida


Dout

dw-1

d2 d1 d0
9

Lneas de datos (w bits)

2.3. Cronograma de lectura/escritura en una SRAM asncrona


Tiempo de acceso: tiempo transcurrido desde que se hace la peticin (direccin a la entrada del bus de direcciones) hasta que se accede al dato. Tiempo de ciclo (ciclo de lectura/escritura): tiempo mnimo que debe transcurrir entre dos peticiones de lectura y escritura. Ambos tiempos pueden coincidir
Ciclo de escritura Ciclo de lectura Datos salida Datos salid

d (w-1, 0) a (n-1, 0)
OE WE

Datos entrada

Direccin escritura

Direccin lectura

Direccin lectura

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 dinmicas (DRAM, dinamic RAM)


3.1. Fundamentos de memorias DRAM 3.2. DRAMs asncronas: 3.2.1. Estructura interna de una DRAM asncrona. 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 dinmicas (DRAM, dinamic RAM)


3.3.4. Otras mejoras para aumentar el rendimiento: ampliacin banco memoria y pipeline de direcciones 3.3.5. El controlador de memoria 3.4. Mdulos de Memoria DRAM 3.5. DRAMs sncronas: 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


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 acta como interruptor. Guarda la mnima carga elctrica posible para luego poder ser leda mediante un circuito de amplificacin: cargado (1) o descargado (0). Acceso por fila (linea de palabra) y por columna (lnea de bit).

Lnea de palabra

Lnea de bit

13

3.1. Fundamentos de memorias DRAM


Memorias ms lentas que las SRAM: se prima el bajo costo y la mayor capacidad de almacenamiento. Requieren refresco peridico (Dynamic RAM): el condensador se descarga. Tiempo de ciclo > tiempo de acceso. Multiplexacin de direcciones: ahorro de pines en los chips de memoria. Las SRAM al tener menor capacidad, no tenan ese problema. Una direccin se divide/multiplexa en dos partes: fila (parte alta) y columna (parte baja). Seales necesarias: RAS# y CAS#. - RAS# (row access strobe): validacin de la fila. - CAS# (column access strobe): validacin de la columna. Asncronas y sncronas: intercambio de seales entre la memoria y el procesador utilizacin de una seal de reloj.
14

3.2. Memorias DRAM asncronas


3.2.1. Estructura interna de una DRAM asncrona
RAS
N/2

Memoria 2N x 1
Decod. FILA

Matriz 2N/2x2N/2
Vcc

Direccin (N / 2 bits)

Registro de FILA

GND

Amplificadores Registro de

N/2

COLUMNA

Mux. COLUMNA

CAS

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)


Una operacin de lectura/escritura consiste en una secuencia de accesos donde slo el primero especifica la fila y la columna. El resto se realizan sobre la misma fila (pgina) especificando slo la columna. El primer acceso es el ms 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 tenan 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 mxima de 28.5


MHz Utilizacin en PC-s 486 a 33MHz PC-s entre 66MHz y 200MHz aadiendo cach (SRAM) para escalar tiempos.
18

3.2.4. Memorias EDO RAM (Extended Data Out RAM)


Similares a las FPM. Mantiene el dato vlido ms tiempo: se guarda el dato en un buffer y no as no se elimina del bus a la subida de la seal CAS Extended Out. As la CPU tiene ms 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)


Una vez que se haya proporcionado una direccin de columna las siguientes direcciones se generan internamente mediante un contador modo rfaga (burst). Frecuencia 66mhz. Problema: memoria asncrona (y lenta). La seal de CAS# se generaba a partir de CLK y luego se lea. Por qu no muestrear entonces directamente seal CAS# mediante seal CLK? Siguiente generacin: DRAMs sncronas SDRAMs.

20

3.3. Otros aspectos relacionados con las DRAMs


3.3.1. Refresco (1)
Operacin de reescritura peridica de la informacin 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 simultneamente todos los chips (del SIMM DIMM). Supone una bajada en el rendimiento de la RDAM: a veces la DRAM no est disponible. Diseadores intentan que sea menos del 5% del tiempo total.

Tiempo de refresco (TR): Tiempo mximo 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 informacin por descarga del condensador de la celda de bit.
21

3.3.1. Refresco (2)


Tcnicas de refresco: Refresco con RAS (RAS-Only Refresh): seal RAS# + direccin 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 lgica de refresco interna. Existe un contador interno de filas. Refresco oculto (Hidden Refresh): despus de un acceso para lectura se vuelve a activar RAS# manteniendo CAS#. Es ms rpido que iniciar nueva lectura de fila. Existe contador interno de direcciones de refresco. Secuencia de los ciclos de refresco: Refresco por rfagas: refresco por filas consecutivas. Ocupacin 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 nmero 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 seal. Al conectarse los transistores para lectura (y amplificacin) se produce una pequea diferencia de potencial en las lneas BL y BL*
24

3.3.2. Precarga (2)


La diferencia de potencial en las lneas 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) Memoria entrelazada (Interleaved memory): se plantea como solucin al problema de la precarga de la memoria. Se divide el mdulo de la DRAM en varios bancos (banks) de memoria pero independientes entre si. La informacin 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 ocultacin del tiempo de precarga.
26

3.3.3. Entrelazado de Memoria (2)


Ejemplo de memoria DRAM NO entrelazada Memoria compuesta por un nico banco/va 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/vas (de dos secciones cada uno) que proporcionan una palabra de 16 bits.

28

3.3.3. Entrelazado de Memoria (4)


Ejemplo de cronograma para memoria entrelazada de 2 vas que acceden a datos en diferentes filas.

29

3.3.4. Otras mejoras para aumentar el rendimiento: ampliacin banco memoria y pipeline de direcciones
Varias tcnicas genricas utilizadas en algunas DRAM asncronas (BEDO) y a partir de las SDRAM para incrementar la velocidad de acceso. Soluciones basadas en modificar la arquitectura, no la tecnologa: Ampliar el banco de memoria: solucin ms 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 aadir una lgica 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 rfaga. Aparece ya en las memorias FPM.
30

1)

2)

3.3.5. El controlador de memoria (1) Los chips de DRAM no se conectan directamente al bus. El controlador de memoria adapta las seales del procesador a las de la memoria. Funciones:
Traduccin de la direccin que enva el procesador en

filas y columnas. Activar seales de control: RAS#, CAS#, ... Sincronizacin con todos los chips de DRAM. Seleccin mdulo DRAM (en DIMMs). Refresco. A veces esta funcin (o parte de ella) ya va incluida en los propios chips de DRAM. Verificar paridad.
31

3.3.5. El controlador de memoria (2) Estructura de un controlador de memoria DRAM


habilitacin de byte MEM, R/W, etc direccin de palabra

CAS0

CAS1

DESC

RAS0

MUX

RASn1 direccin multiplexada

mdulos de memoria DRAM

datos

datos
32

3.4. Mdulos de Memoria DRAM (1)


Los chips de memoria DRAM se agrupan en circuitos impresos que constituyen mdulos de memoria y que son usados para ser directamente (insertados) en los computadores. Estos mdulos estn estandarizados y han evolucionado en paralelo a los diferentes tipos de DRAMs. Se clasifican/nombran por su patillaje (n contactos), tecnologa DRAM, fabricante, ...
33

3.4. Mdulos de Memoria DRAM (2)


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. Mdulos de hasta 2 GBs. Procesadores Pentium 4.
34

3.4. Mdulos de Memoria DRAM (3)


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. Mdulos de Memoria DRAM (4)


Ejemplo de sistema de memoria con DRAM: controlador (en el caso de los PCs includo en el puente norte de la placa base) + DIMM (4 mdulos de 168 contactos, ancho del bus de datos 64 bits)

BE0..7* DESC direccin MUX direccin multipl. datos


RAS0 RAS1 RAS2 RAS3

CAS0
DIMM 0 DIMM 1 DIMM 2 DIMM 3
37

CAS7

datos

3.5. Memorias DRAM sncronas


3.5.1. Memorias SDRAM (Synchronous DRAM)
Los protocolos de comunicacin 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 seales. Con un control sncrono (seal reloj) la memoria puede capturar en latches la informacin 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 mltiples strobes y de seales para comunicar la entrada de datos. Nuevas seales como CS# (chip select), CLK# (clock) y DQM (data mask) que sustituye a OE# (output enable). Memoria BEDO ampliada que utiliza seal reloj para sincronizacin, entrelazado interno y dos registros por separado para datos de E/S.
38

3.5.1. Memorias SDRAM (Synchronous DRAM)


Utilizacin de mandatos (commands) en vez de seales. Un mandato se compone varias seales: CS#, RAS#, CAS# y WE#. Ejemplo: el mandato ACTIVATE equivale poner en bajo las seales CS# y RAS# (seleccin fila y banco). El mandato READ equivale a poner en bajo las seales CS# y CAS# (seleccin columna). Un mandato (command) se activa por un flanco de subida de reloj.

39

3.5.1. Memorias SDRAM (Synchronous DRAM)

Registros de modo programables para seleccionar la latencia CAS (ajuste de la velocidad de la memoria) y tipos y longitudes de rfaga. Al igual que en las memorias BEDO existen mltiples bancos de memoria: se pueden abrir varias filas (ROWS) en paralelo posibilita ms tipos de acceso en modo rfaga: longitud de rfaga 1, 2, 4 u 8 secuencial (incluyendo pgina completa) o entrelazada.
40

3.5.1. Diagrama de bloques de una SDRAM (Mdulo de 4 bancos de 2Mx8b 8M x 8b = 8 MB)

41

3.5.1. Memorias SDRAM (Synchronous DRAM). Esquema integracin mdulos SDRAM en DIMM (mdulos DDR2 en DIMM)

42

3.5.1. Memorias SDRAM (Synchronous DRAM)


La latencia CAS (nmero de ciclos entre mandato READ y datos disponibles en DQs) suele ser 2 3 ciclos. DQM debe ponerse en alta (activarse) dos ciclos de reloj como mnimo antes del mandato WRITE para eliminar datos del anterior mandato READ. Antes de utilizar el mandato ACTIVE (seleccin 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)


Los accesos en modo rfaga 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 rfaga se procede automticamente a hacer la precarga (desactivar la/s fila/s de/los mdulo/s correspondiente/s). Memorias SDRAM funcionan entre los 66 MHz y 133 MHz.

44

3.5.1. Comparacin DRAMs sncronas y asncronas

45

3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM)


Evolucin natural de las SDRAM: simplemente aprovechan tambin los flancos de bajada de la seal de reloj para doblar frecuencia de funcionamiento y ancho de banda se envan dos datos por cada seal de reloj. Ejemplo: la DDR 266 es bsicamente una PC133 (ltima SDRAM fabricada) con seales CK y CK#. Se aaden algunas nuevas seales y se quitan otras (ver tabla siguiente pgina). Como por cada ciclo de reloj se pueden recoger (leer) enviar (escribir) dos datos, es preciso aadir circuitera extra (ver diagrama de bloques). Subir los MHz fsicos es ms difcil (y caro) de fabricar razn de su xito. Varias familias en funcin de su frecuencia virtual: DDR1 (200mhz 400mhz), DDR2 (400mhz 667mhz), DDR3 (800mhz).
46

3.5.2. Memorias DDR SDRAM (Double Data Rate SDRAM)

Los mandatos (commands) al igual que en las SDRAMs se leen a la subida de una seal 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 (Mdulo de 4 bancos de 4Mx8b 16 MB)

48

3.5.2. Memorias DDR SDRAM (Acceso para lectura)

Algunas diferencias entre DDR1 y DDR2: Hay ms mandatos en DDR2 que en DDR1. Mismo controlador de E/S puede manejar ambas memorias cierta compatibilidad. Se aumenta el tamao de la pgina (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)

Disminucin del voltaje a 1,8V gracias al mayor nivel de integracin. En memorias FPM era 5V. La diferencia de voltaje es realmente la nica diferencia tecnolgica entre la DDR1 y la DDR2.

50

3.5.2. DDR1 y DDR2 DIMM

51

3.5.3. Memorias RDRAM (Rambus DRAM)


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 pequeo (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 (mltiples 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. Mltiples accesos concurrentes. Tambin 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

You might also like