Download Diapositiva 1

Document related concepts
no text concepts found
Transcript
ARQUITECTURA DE
COMPUTADORAS
MEMORIA CACHÉ Y ARREGLOS
Prof. Juan Álvarez
CONTENIDO
NOVENA SEMANA
Memoria caché. Tipos de memoria caché. Proceso de
lectura/escritura en memoria SRAM.
Arreglos de memorias.
Stallings, William. Organización y Arquitectura de
Computadores. 5ta. Edición. Editorial Prentice Hall, 2000.
Código biblioteca: 004.22/S78 (Capítulo 4)
Brey, Barry. Los Microprocesadores Intel. 3ra. Edición.
Editorial Prentice Hall. 1995. Código de biblioteca:
004.165/B82M (Capítulo 10)
MEMORIA CACHÉ
Disminuye el tiempo de la transferencia de datos
entre la memoria principal y el microprocesador.
La memoria caché contiene una copia de partes de la
memoria principal. Cuando la CPU intenta leer
un dato de la memoria principal, hace una previa
comprobación para determinar si el dato está en
la Caché. Si es así, la CPU lee el dato de la caché. Si
no es así, se direcciona la memoria principal y el
dato allí residente se copia en la caché junto con
un bloque de datos vecinos.
MEMORIA CACHÉ
MEMORIA CACHÉ
Cuando se transfieren datos de la memoria principal hacia la
memoria caché, se hace por bloques. Cada bloque consta
de una cantidad k de bytes. Se sabe que cuando se hace uso
de un dato en la memoria, existe una alta probabilidad que
el siguiente y el subsiguiente dato que se utilice se
encuentre muy cerca del dato previo. Por lo tanto, si un
dato está en un bloque y es usado, es bastante frecuente
encontrar el siguiente dato en el mismo bloque.
Esto quiere decir también que cuando se carga un bloque en
la memoria caché, se están cargando varios datos por
anticipado, los cuales serán utilizados en un futuro
inmediato. Entonces, además de ser la caché una memoria
rápida, se anticipa a las necesidades del procesamiento.
MEMORIA CACHÉ
Esto se debe a que la ejecución de un programa es secuencial,
excepto para las instrucciones de salto, bifurcación y
llamada a subrutina. En la mayoría de los casos, la
instrucción a leer de la memoria sigue inmediatamente a la
última instrucción leída. Por otro lado, al procesar una
estructura de datos, estos datos suelen estar ubicados
próximos entre sí.
Esta ley se resume en un cálculo simple:
Sea Ts el tiempo promedio de acceso a un dato en el sistema
CPU-Caché-MP.
T1 es el tiempo de acceso a la memoria Caché.
T2 es el tiempo de acceso a la memoria principal.
MEMORIA CACHÉ
H es la Tasa de aciertos o equivalentemente la probabilidad
de que un dato se encuentre en la memoria caché.
Ts  H  T1  (1  H )  (T1  T2 )  T1  (1  H )  T2
MEMORIA CACHÉ
Sea Cs el costo promedio por bit del conjunto Caché-MP.
C1 es costo promedio por bit de la memoria caché.
C2 el costo promedio por bit de la memoria pricipal.
S1 el tamaño de la memoria caché.
S2 el tamaño de la memoria principal.
C1S1  C2 S 2
Cs 
S1  S 2
Lo ideal sería que Cs = C2 ya que C1 >> C2, ello requiere que
S1 << S2 . O sea que la capacidad de la memoria caché sea
pequeña. Se quiere también que Ts = T1 ya que T1 << T2,
ello requiere de un H = 1. Pero esto requiere que la
memoria caché sea grande. ¿Cuál sería el tamaño ideal de
la memoria caché?
MEMORIA CACHÉ
Hay otras preguntas: ¿qué valor de H se requiere para
satisfacer los requisitos de prestaciones? ¿qué tamaño de
memoria caché asegura el H necesario? ¿Satisface dicho
tamaño el requisito del costo?
La cantidad T1/T2 se conoce como eficiencia de acceso y es
una medida de cuán próximo es el tiempo de acceso
promedio (Ts) al tiempo de acceso de la memoria caché T1.
T1
1

T2 1  (1  H ) T2
T1
MEMORIA CACHÉ
Datos típicos de la memoria Caché
Parámetro:
Valor típico
Tamaño del bloque:
Tiempo de acierto:
Penalidad de desacierto:
Tiempo de acceso:
Tiempo de transferencia:
Razón de desacierto:
Tamaño del caché:
4-128 bytes
1-4 ciclos
8-32 ciclos
6-10 ciclos
2-22 ciclos
0,01-0,2
1Kbyte - 256Kbyte
MEMORIA CACHÉ
En la memoria caché, cada línea incluye una etiqueta que
identifica al bloque particular que ha sido copiado de la
memoria principal.
Como hay memos líneas de caché que bloques de memoria
principal, se necesita un algoritmo que haga corresponder
bloques de memoria principal a líneas de caché. La
elección de la función de proyección determina cómo se
organiza la caché. Se dan tres técnicas: directa, asociativa
y asociativa por conjuntos.
MEMORIA CACHÉ
Caché de proyección directa
Cada bloque de datos de la Memoria Principal puede
ubicarse en una sóla un línea del caché.
La ubicación normalmente es: número del bloque módulo =
número de línea en la caché.
Esto es económico, de acceso rápido (utilizado en caches del
microprocesador L1 y L2).
Pero la razón de desaciertos por competencia por bloque
específico es mayor.
MEMORIA CACHÉ
Correspondencia asociativa
Cualquier bloque de memoria puede ubicarse en cualquier
línea del caché. El número completo del bloque es el tag.
Este método es más caro (muchos comparadores). El
Acceso es más lento, dato no está disponible hasta saber si el
acceso fue un acierto o un desacierto (etapa de
comparación y multiplexación). Pero la tasa de desaciertos
por competencia por bloque es menor.
MEMORIA CACHÉ
Correspondencia asociativa por conjuntos.
Es un esquema intermedio.
Cada bloque memoria puede ser ubicado en uno de las N
líneas del caché.
Es más económico que el caché completamente asociativo,
pero más caro que caché directo. El dato está disponible
después de etapa de comparación y multiplexación.
MEMORIA CACHÉ
Buscando un bloque en la caché.
En la caché de proyección directa:
Acceso directo al bloque: cada bloque de memoria puede
encontrarse sólo en una línea del caché.
Bloque se encuentra por indexación (usando el número del
bloque como índice).
Se requiere comparar los Tags para saber si el bloque es
realmente el que se busca.
Bloque está disponible antes de terminar la comparación.
MEMORIA CACHÉ
ARREGLOS DE MEMORIAS
Problema 1.
Implementar las direcciones desde A800h hasta
A9FFh utilizando memorias RAM de 512x8 bits,
para un procesador de 8 bits en el bus de datos.
Desde A800h hasta A9FFh hay 512 direcciones, cada
una se conecta a un bus de datos de 8 bits. Por lo
tanto se quiere implementar 512x8 bits.
ARREGLOS DE MEMORIAS
Esto corresponde exactamente a la capacidad de
una memoria.
El análisis de direcciones detalla:
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
0
1
0
1
0
0
x
x
x
x
x
x
x
x
x
Las direcciones A8XXh y A9XXh tienen en común
los bits A9, A10, A11, A12, A13, A14, A15 y con los
valores que se indican en la tabla.
ARREGLOS DE MEMORIAS
Los otros bits toman todas las combinaciones
posibles y su valor se marca con una “x”.
La memoria debe activarse con estas direcciones,
por lo tanto el Chip Select tiene la forma:
CS = A15 A14 A13 A12 A11 A10 A9
Si la memoria se activa con cero:
CS = A15 A14 A13 A12 A11 A10 A9
ARREGLOS DE MEMORIAS
ARREGLOS DE MEMORIAS
En la figura adjunta se ilustra la conexión de los
buses con la memoria. Los ocho bits de datos se
conectan al bus de datos. El chip select se
decodifica con un NAND de acuerdo a la ecuación
encontrada. Los bits de direcciones restantes, que
presentan todas las combinaciones posibles, se
utilizan para direccionar la memoria. El control
de lectura-escritura se conecta directamente al
control WR.
ARREGLOS DE MEMORIAS
Problema 2.
Implementar las direcciones desde A800h hasta
A9FFh utilizando memorias RAM de 512x4 bits,
para un procesador de 8 bits en el bus de datos.
El análisis de direcciones es el mismo que en el
problema anterior. Se requiere implementar
512x8 bits que se cubre con dos memorias de
512x4 bits. Aquí las memorias comparten el
bus de datos. El decodificador es el mismo solo
que implementado de una manera distinta.
ARREGLOS DE MEMORIAS
ARREGLOS DE MEMORIAS
Problema 3.
La siguiente figura muestra un arreglo de cuatro memorias
ROM que utiliza un decodificador de direcciones de 8 bits
(74138) cuya tabla lógica se muestra en una figura después.
Se pide:
• Dar la capacidad de cada memoria y del arreglo
• Dar el grupo de direcciones implementado en cada
memoria.
La capacidad de cada memoria es:
214  8 bits  16384 1byte  16KB
ARREGLO DE MEMORIAS
ARREGLO DE MEMORIAS
Para activar la ROM1 es necesario que CE’ = 0. Ello implica
que Y0’ = 0 y, de acuerdo con la tabla del decodificador,
CBA = 000, G1 = 1, G2A’ = G2B’ = 0. Esto se traduce en los
siguientes valores para las patillas de direcciones:
A23 A22 A21 A20 A19 A18 A17 A16 A15 A14
1
0
0
0
0
1
1
0
0
0
Las demás patillas de dirección deben tener todas las
combinaciones de valores posibles ya que se utilizan para
seleccionar las direcciones dentro de la memoria.
Expresando las direcciones seleccionadas en hexadecimal
para la primera memoria: desde 860000h hasta 863FFFh.
ARREGLOS DE MEMORIAS
ARREGLOS DE MEMORIAS
Se puede calcular los rangos de direcciones que activan las
otras memorias de manera similar.
Para la ROM2: desde 864000h hasta 867FFFh.
Para la ROM3: desde 868000h hasta 86BFFFh.
Para la ROM4: desde 86C000h hasta 86FFFFh.
En conclusión, las direcciones implementadas en el arreglo
van desde 860000h hasta 86FFFFh.
ARREGLOS DE MEMORIAS
Problema 4.
La siguiente figura muestra un arreglo de cuatro memorias
RAM que utiliza un decodificador de direcciones de 8 bits
(74138).
Se pide:
• Dar la capacidad de cada memoria y del arreglo
• Dar el grupo de direcciones implementado en cada
memoria.
La capacidad de cada memoria es:
210  8 bits  1024 bytes  1 KB
ARREGLOS DE MEMORIAS
ARREGLOS DE MEMORIAS
La RAM U2 se activa con Q4’ =0 y se tiene A12A11A10 = 100,
A13 = 1, A14 = A15 = 0. De aquí que las direcciones
implementadas son:
A15 A14 A13 A12 A11 A10 A9
0
0
1
1
0
0
x
A8
A7
A6
x
x
x
de 3000h a 33FFh.
De la misma manera se determina que para la RAM U1, las
direcciones son de 3400h a 37FFh; para la RAM U3, de
3800h a 3BFFh; para la RAM U4, de 3C00h a 3FFFh.
En resumen, las direcciones implementadas en el arreglo son
de 3000h a 3FFFh.
ARREGLOS DE MEMORIAS
Problema 5.
La siguiente figura muestra un arreglo de cuatro memorias
RAM que utiliza un decodificador de direcciones de 8 bits
(74138).
Se pide:
• Dar la capacidad de cada memoria y del arreglo
• Dar el grupo de direcciones implementado en cada
memoria.
ARREGLOS DE MEMORIAS
ARREGLOS DE MEMORIAS
Problema 6.
La siguiente figura muestra un arreglo de cuatro memorias
RAM que utiliza un decodificador de direcciones de 8 bits
(74138).
Se pide:
• Dar la capacidad de cada memoria y del arreglo
• Dar el grupo de direcciones implementado en cada
memoria.
ARREGLOS DE MEMORIAS
ARREGLOS DE MEMORIAS
Problema 7.
La siguiente figura muestra un arreglo de ocho memorias que
utiliza un decodificador de direcciones de 16 bits.
Se pide:
• Dar la capacidad de cada memoria y del arreglo
• Dar el grupo de direcciones implementado en cada
memoria.
ARREGLOS DE MEMORIAS