Download 3.3.2. - Departamento de Arquitectura y Tecnología de Computadores

Document related concepts
no text concepts found
Transcript
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