¡Descarga Estructura Computadores2 y más Apuntes en PDF de Informática solo en Docsity!
Tema 4. Jerarquía de memoria
Índice del tema
- Introducción.
- Jerarquía de memoria. Principio de
localidad.
- Memoria entrelazada.
- Memoria asociativa.
- Memoria caché.
- Memoria virtual.
Introducción
Introducción al tema
• Conceptos básicos.
• Parámetros del sistema de memoria.
• Configuración básica.
• Expansión de memoria.
Parámetros de la memoria
- Tamaño → capacidad. Se organiza en N
posiciones con M bits cada una (N x M).
Ejemplo: Una memoria de 256 Mbytes está
organizada en 256·2^20 posiciones con 8 bits cada
una: 268.435.456 x 8
- Ancho de banda → número de palabras que
podemos acceder por unidad de tiempo.
Velocidad a la que podemos trabajar con la
memoria.
Ejemplo: Un módulo de memoria DDR400 es
capaz de transferir 8 bytes a una frecuencia de
400 MHz
3200 MB/segundo
Parámetros de la memoria
•Tipos de memoria disponibles:
SRAM: tiempos de acceso de 0.5 – 5ns con un coste de
$4000 a $10,000 por GB.
DRAM tiempos de acceso de 50-70ns con un coste de $
a $200 por GB.
Disco magnético: tiempos de acceso de 5 a 20 millones de
ns a un coste de $0.50 a $2 por GB.
•Las técnicas que veremos en este tema
van encaminadas a aumentar la velocidad
con la que la memoria suministra los datos
al procesador.
•El ideal: obtener una memoria
infinitamente grande y rápida (a coste 0).
Configuración básica
N = 2n^ posiciones de memoria
CS,Chip Select: habilita el funcionamiento del módulo.
OE,Output Enable: habilita la salida de la memoria
(bus de datos bidireccional).
WE,Write Enable: activa la escritura en la memoria.
N x m
WE CS OE
Dato entrada m m Dato salida
Dirección n
Operaciones con memoria
- Lectura de memoria: hay que habilitar CS y OE
- Escritura de memoria: hay que habilitar CS y WE.
El tiempo de acceso será la suma de los tiempos
de setup, hold y ancura del pulso de escritura.
Dirección
OE
CS
Datos
t acceso
Expansión de memoria
- Aumento del tamaño de palabra. Ejemplo: Obtener una
memoria 8 x 8 usando memorias 8 x 4
8 x 4
CS WE OE
A2..A
3
(^4) D3..D
8 x 4
CS WE OE
A2..A
3
(^4) D7..D
8
Dirección
Dato
CS WE OE
3
Expansión de memoria
- Aumento del número de palabras. Ejemplo: Obtener una
memoria 16 x 4 usando memorias 8 x 4.
8 x 4
WE OE CS
(^4) D3..D
8 x 4
WE OE CS
Dirección^4 D3..D
Dato
CS
WE OE
8
4
A2..A
1 3
A A2..A
1
A
3
Ejemplo de expansión de memoria
- Objetivo: obtener una memoria formada
por:
512 bytes de memoria RAM en la parte alta
del mapa de memoria
8 Kb de memoria ROM en la parte baja.
- Se dispone de bloques de RAM 256 x 4, y
bloques de ROM 2K x 8.
- Dibujaremos el mapa de memoria y la
configuración de las pastillas de memoria.
Ejemplo de expansión de memoria
Bus de datos de 8 bits.
Bus de direcciones de ⎡log 2 (512+8K)⎤ = 14 bits.
( ¿Por qué?: 512+8k=2^9 +2^13 =2^9 ·(1+2^4 ) )
- Necesitamos RAM 512 x 8 pero tenemos
RAM 256 x 4 → aumento del tamaño de palabra
y del número de palabras.
- Necesitamos ROM 8K x 8 pero tenemos
ROM 2K x 8 → aumento del número de palabras.
Ejemplo: configuración de las pastillas
RAM
256 x 4
CS WE OE
A7..A
D3..D
8
4
RAM
256 x 4
CS WE OE
A7..A
D7..D
8
4
8
Dirección
Dato
CS WE OE
8
RAM 256 x 8
Ejemplo: configuración de las pastillas
RAM 512 x 8
RAM-
256 x 8
CS WE OE
A7..A
D7..D
8
8
RAM-
256 x 8
CS WE OE
A7..A
D7..D
8
8
8
Dirección
Dato
WE OE
8
CS CSRAM A 8
CS CSRAM A 8
A 9 A 10 A 11 A 12 A 13
CSRAM
Ejemplo: configuración de las pastillas
ROM 8K x 8
A10..A
D7..D
ROM-
2K x 8
CS WE OE
10
8
ROM-
2K x 8
CS WE OE
8
10
ROM-
2K x 8
CS WE OE
10
8
ROM-
2K x 8
CS WE OE
8
10
WE OE
CS CS A 13
CS CS A 13
CS CS A 13
CS CS A 13
A 12 A 11
00
01
10
11
CS
CS
CS
CS
Jerarquía de memoria. Principio
de localidad
Introducción
- Técnicas para mejorar la organización
Entrelazamiento : partición de la memoria
principal en módulos independiente accesibles.
Memoria cache : memoria pequeña pero más
rápidas que la memoria principal. Busco que
en cada momento almacene un subconjunto
de las palabras de la memoria que preveo
accederá el procesador.
- Memoria asociativa : direccionamiento por
contenido en lugar de posición (acceso en
paralelo).
Principio de Localidad
- Se trata de una propiedad estadística de los
accesos a memoria de un programa:
Localidad espacial:
“La siguiente dirección de memoria que se solicite será
una muy próxima a la actual”
- Debido a:
- Ejecución secuencial de los programas.
- Datos agrupados en vectores y matrices (secuencias de
valores).
Localidad temporal:
“Es muy probable que la dirección que acabamos de
solicitar se vuelva a solicitar en breve.”
- Debido a:
- Bucles en los programas: datos e instrucciones se
reusan.
Jerarquía de Memoria
- Organizamos la memoria de forma
jerárquica:
Las instrucciones y datos que se están usando
se sitúan en una memoria rápida aunque
pequeña.
El resto de datos e instrucciones se sitúan en
memorias más grandes y lentas.
Jerarquía de Memoria
Tamaño
Velocidad
Registros
Cache Nivel I
Cache Nivel II
Memoria Principal
Memoria Secundaria
31
Memoria entrelazada
Índice
• Introducción.
• Esquemas de entrelazamiento:
Orden superior.
Orden inferior.
- Latches a la entrada.
- Latches a la salida.
Introducción
- Objetivo: aumentar el ancho de banda
división en M módulos, de acceso independiente, para
acceder a M palabras simultáneamente.
- Caso óptimo: distribución equitativa de las
referencias entre los módulos → multiplicamos
por M el ancho de banda.
- Caso peor: todas las referencias al mismo
módulo → mismo ancho de banda.
- Esquemas de entrelazamiento: dependen de
cómo distribuyamos los datos a almacenar en
memoria entre los diferentes módulos que la
componen:
Orden superior
Orden inferior
Entrelazamiento de orden superior
- Almacena palabras consecutivas en el
mismo módulo.
M(0)
cs
M(1)
cs
M(2m^ -1)
cs
Dirección n-1 n-m n-m-1 0
2 m^ -1 1 0
m n-m
Entrelazamiento de orden inferior
Aprovecha localidad espacial: lo utilizaremos
proporcionar bloques a la cache.
Expansión difícil.
Fallo en un módulo puede ser crítico.
n
m
m+
m
M(0)
n
m
m+
m
M(1)
Ejemplo: 2 m^ bancos
n
m+
m+
m
M(2m-1)
Configuraciones (orden inferior)
Aumenta el ancho de banda en M para M
peticiones de direcciones consecutivas (= la
dirección interna con la que se accede a los
módulos es la misma).
Aumenta el ancho de banda por M para
peticiones localizadas en M módulos distintos
(= las direcciones internas de acceso a los
módulos no tienen que coincidir).
Latches a la salida
M(1)
cs
M(0)
cs
M(2m^ -1)
cs
Palabra 2m^ -1 Palabra 1 Palabra 0
módulo
Bus de
Datos
Dirección interna al módulo
Latches a la salida
Cronograma del caso más favorable
Módulo
t
M 3
M 2
M 1
M 0
Dato salida
D 10 D 11 D 12 D 13
A 2
Tacceso
A 12 = A 1
A 11 = A 1
A 10 = A 1
Aij: acceso i-ésimo al
módulo j
A 13 = A 1
A 2
A 2
A 2
Tiempo requerido para la lectura del bus
Observa: no se reduce Tacceso, pero en un solo acceso
obtenemos varias palabras