ACyLab Taller 03 Diseño del procesador Jerarquía de Memoria

advertisement
Departamento de Ingeniería de Sistemas
Arquitectura de Computadores y Laboratorio
2018-2
Taller No. 3
Diseño del procesador – Jerarquía de memoria
1. Suponga que dispone de las unidades funcionales necesarias para implementar un procesador
MIPS capaz de ejecutar instrucciones ALU, load, store, branch equal y jump, como el de la Figura
1. Las latencias de las unidades funcionales disponibles son las siguientes:
Unidad funcional
Latencia (ps)
Memoria de datos (lectura/escritura)
150
Memoria de instrucciones
200
ALU
60
Sumador
40
Banco de registros (lectura/escritura)
200
Multiplexores
20
Desplazador de bits
15
La latencia de los demás elementos, incluidos los cables, se desprecia. ¿Cuál de las siguientes
implementaciones será más rápida, y cuánto más?
 Una implementación en la que cada instrucción se ejecuta en un ciclo de reloj de longitud fija.
 Una implementación con ciclo de reloj variable en la que cada instrucción se ejecuta justo en
el tiempo que ella requiere.
Para comparar el rendimiento asuma un benchmark con la siguiente frecuencia relativa de
instrucciones:
Categoría de instrucciones Frecuencia relativa (%)
Load
26
Store
16
Branch equal
12
Jump
3
ALU
43
-1-
Figura 1. Implementación monociclo de la arquitectura MIPS capaz de ejecutar instrucciones lw,
sw, add, sub, and, or, nor, slt, beq y jump.
2. Asuma que los componentes de hardware necesarios para implementar una ruta de datos MIPS
monociclo como la mostrada en la Figura 1 tienen las siguientes latencias:
I-Mem Add Mux
ALU
Regs D-Mem Sign extend Shift left 2 ALU control
300 ps 80 ps 30 ps 100 ps 220 ps 250 ps
30 ps
30 ps
50 ps
a) Señale y calcule la latencia del flujo de información cuando se ejecuta la instrucción or,
indicando el valor que adquieren las señales de control.
b) Señale y calcule la latencia del flujo de información cuando se ejecuta la instrucción lw,
indicando el valor que adquieren las señales de control.
c) Señale y calcule la latencia del flujo de información cuando se ejecuta la instrucción beq,
indicando el valor que adquieren las señales de control.
Considere la siguiente tabla para determinar los valores de las señales de control. Asuma que la
latencia de los demás elementos, incluidos los cables, se desprecia.
-2-
Opcode ALUOp
Operación
ALU Operation
lw
00
load word
0010
sw
00
store word
0010
beq
01
branch equal
0110
add
0010
subtract
0110
AND
0000
Tipo R
10
OR
0001
set-on-less-than
0111
NOR
1100
3. Tomando como punto de partida la implementación MIPS monociclo ilustrada en la Figura 1,
añada los elementos de hardware, cables y señales de control necesarios (especificando cómo
se generan las señales de control) que permitan realizar una programación estructurada del
procesador. Documente ampliamente la solución desarrollada.
4. Todas las preguntas de este ejercicio se refieren al procesador MIPS monociclo ilustrado en la
Figura 1.
a) ¿En cuáles instrucciones se emplea la unidad “Shif left 2”?
b) ¿Para cuáles instrucciones es necesaria la unidad “Sign extend”?
c) ¿Cuáles instrucciones requieren de la ALU para su ejecución?
d) ¿Cuáles son las instrucciones que emplean la señal “Zero” de la ALU?
e) ¿Para cuáles instrucciones es útil la memoria de datos?
f) Suponga que la señal de control “MemWrite” siempre tiene el valor cero. Indique cuáles
instrucciones no se ejecutarían de manera correcta.
g) Suponga que la señal de control “MemtoReg” siempre tiene el valor cero. Indique cuáles
instrucciones no se ejecutarían de manera correcta.
h) Suponga que la señal de control “ALUSrc” siempre tiene el valor uno. Indique cuáles
instrucciones no se ejecutarían de manera correcta.
5. Considere la ejecución en el pipeline de cinco etapas del MIPS de la siguiente secuencia de
instrucciones:
lw $t0, -16($t0)
sw $t0, -16($t0)
add $t0, $t0, $t0
a) Asuma que no hay adelantamiento en el pipeline. Emplee una representación gráfica para
la ejecución de las instrucciones en el pipeline y señale los riesgos de datos existentes y
-3-
agregue burbujas para eliminarlos. ¿Cuántos ciclos de reloj toma ejecutar la secuencia de
instrucciones?
b) Ahora, asuma que hay adelantamiento en el pipeline. Emplee una representación gráfica
para la ejecución de las instrucciones en el pipeline e indique los riesgos de datos que
persisten y agregue burbujas para eliminarlos. ¿Cuántos ciclos de reloj toma ejecutar la
secuencia de instrucciones?
c) Si el tiempo de ciclo de reloj es 300 ps cuando no hay adelantamiento y 400 ps con
adelantamiento, ¿cuál es el tiempo de ejecución de la secuencia sin adelantamiento y con
adelantamiento, y cuál es el speedup obtenido después de agregar adelantamiento a un
pipeline que no lo tenía?
6. Considere la ejecución en el pipeline de cinco etapas del MIPS de la siguiente secuencia de
instrucciones:
add $s1, $s5, $s3
sw $s1, 0($s2)
lw $s1, 4($s2)
add $s5, $s5, $s1
sw $s1, 0($s2)
a) Asuma que no hay adelantamiento en el pipeline. Emplee una representación gráfica para
la ejecución de las instrucciones en el pipeline agregando burbujas para garantizar su
correcta ejecución. ¿Cuántos ciclos de reloj toma ejecutar la secuencia de instrucciones?
b) Si no hay adelantamiento, garantice una ejecución correcta del código, pero esta vez
insertando burbujas sólo cuando no sea posible reorganizarlo. Puede usar el registro $t0
para almacenar valores temporales en el código modificado. ¿Cuál es el número de ciclos
de ejecución del código reorganizado?
7. Considere la ejecución en el pipeline de cinco etapas del MIPS de la siguiente secuencia de
instrucciones:
lw $at, 40($a2)
beq $v0, $zero, Label
add $v0, $v1, $a0
sw $v1,50($a0)
# Asuma $v0 ≠ 0
a) Asuma que no se emplea la técnica del hueco de retardo del salto, que los saltos se predicen
sin equivocación y que solo hay una memoria para instrucciones y datos, de manera que
ocurre un riesgo estructural cuando se intenta buscar una instrucción en el mismo ciclo que
otra instrucción intenta acceder a un dato. Para resolver el riesgo estructural se da prelación
a la instrucción que accede a un dato. ¿Cuántos ciclos de reloj toma ejecutar la secuencia
de instrucciones?
-4-
b) Se sabe que los riesgos de datos pueden ser eliminados agregando instrucciones nop al
código. ¿Es posible hacer lo mismo para resolver los riesgos estructurales? Elabore su
respuesta.
c) Ahora, asuma que se no se emplea el hueco de retardo del salto sino la técnica stall on
branch. ¿Cuál es el speedup logrado si los saltos se resuelven en la etapa ID en lugar de la
ejecución con los saltos resueltos en la etapa EX? ¿Cómo se explica el resultado?
8. Considere la siguiente traza de referencias a memoria de un procesador MIPS expresadas como
direcciones de palabra:
6, 214, 175, 214, 6, 84, 65, 174, 64, 105, 85, 215
a) Para cada una de las referencias, escriba la dirección en binario e identifique la etiqueta y el
índice, dada una memoria cache de emplazamiento directo con 16 bloques de una palabra
cada uno. Señale, también, si cada referencia es un acierto o un fallo, asumiendo que la
caché está inicialmente vacía. Calcule, finalmente, la tasa de aciertos.
b) Para cada una de las referencias, escriba la dirección en binario e identifique la etiqueta y el
índice, dada una memoria cache de emplazamiento directo con 8 bloques de dos palabras
cada uno. Señale, también, si cada referencia es un acierto o un fallo, asumiendo que la
caché está inicialmente vacía. Calcule, finalmente, la tasa de aciertos.
c) Su labor, ahora, consiste es optimizar la caché para las referencias dadas. Existen tres
alternativas posibles de diseño de la cache de emplazamiento directo (C1, C2 y C3), todas
con un tamaño de 8 palabras, como se muestra en la siguiente tabla:
Diseño de caché Tamaño de bloque (palabras) Tiempo de acceso (ciclos)
C1
1
2
C2
2
3
C3
4
5
En términos de tasa de fallos, ¿cuál es el mejor diseño de la caché? Si la penalización de
fallo es de 25 ciclos, ¿cuál es el mejor diseño de la caché?
d) Asuma una caché asociativa por conjuntos de 2 vías con bloques de dos palabras y un
tamaño total de 16 bloques, con política de reemplazo LRU. Para cada una de las
referencias, identifique la etiqueta, el índice y el offset de bloque, y si ocurre un acierto o un
fallo. La caché está inicialmente vacía.
e) Asuma una cache completamente asociativa con bloques de cuatro palabras y un tamaño
total de cuatro bloques, con política de reemplazo LRU. Para cada una de las referencias,
identifique la etiqueta y el offset de bloque, y si ocurre un acierto o un fallo. La caché está
inicialmente vacía.
9. Las aplicaciones que reproducen audio o video se catalogan como aplicaciones de tipo
streaming, las cuales procesan una gran cantidad de datos pero con escasa reutilización de los
-5-
mismos. Considere una aplicación de video que accede secuencialmente a un conjunto de datos
de 512 KB con el siguiente flujo de direcciones de byte:
0, 4, 8, 12, 16, 20, 24, 28, 32, …
a) Asuma una cache de emplazamiento directo de 64 KB con un tamaño de bloque de 32 bytes.
¿Cuál es la tasa de fallos para este flujo de direcciones? ¿De qué manera depende la tasa
de fallos del tamaño de la caché o del tamaño del conjunto de datos al que accede la
aplicación?
b) Calcule la tasa de fallos si el tamaño de bloque es de 16 bytes, 64 bytes y 128 bytes. ¿Qué
tipo de localidad exhibe este conjunto de datos?
10. Considere un computador con una caché de dos niveles. Por cada 1000 accesos a memoria
generados por el procesador, 60 de ellos fallan en L-1 y 25 en L-2. Los tiempos de acierto en L1 y L-2 son 1 y 8 ciclos, respectivamente. Por su parte, la penalización de un fallo en L-2 es de
120 ciclos. ¿Cuál es el tiempo medio de acceso a memoria?
11. Suponga un sistema de memoria virtual que tiene una tabla de página (PT) con 8 entradas, un
TLB completamente asociativo de 2 entradas y una memoria física de 4 marcos de página. La
PT emplea como política de reemplazo LRU (la misma que determinará los reemplazos en
memoria física), mientras que los reemplazos en el TLB siguen un esquema FIFO (First in, first
out). Inicialmente no hay traducciones de páginas virtuales ni en el TLB ni en la PT.
Para cada uno de los accesos virtuales de la secuencia mostrada más abajo, indique el
contenido de la PT, el TLB y la memoria física, y la demás información solicitada, usando la
siguiente plantilla de solución:
Secuencia de accesos virtuales (expresados como VPN):
2 (lectura), 4 (escritura), 3 (lectura), 4 (lectura), 2 (escritura)
Asuma que el tiempo de acceso al TLB es 1 ciclo, que el tiempo de acceso a memoria es 100
ciclos, y que el tiempo para procesar un fallo de página es de 2000 ciclos. El tiempo para
-6-
procesar el fallo de página incluye las actualizaciones de memoria física, TLB y PT. Suponga
que cuando ocurre un fallo de página, después de procesarlo, el acceso se repite directamente
sobre memoria para suministrar el dato al procesador.
Para actualizar el campo LRU en la PT emplee números enteros positivos y consecutivos,
usando cero para señalar el acceso actual (más reciente), mientras que para las demás entradas
válidas este campo se ajusta de manera que la más antigua tenga el entero más alto.
-7-
Download