Preguntas de Final

Anuncio
1 - Realice un diagrama en bloques detallado de un Register File adecuado para una CPU
MIPS con una implementación pipeline de 5 etapas (IF, ID, EX, MEM, WB). Justificar.
IM (Instruction Memory), DM (Data Memory)
El pipeline puede ser pensado como una serie de data paths desplazandose en el tiempo.
La estapas IF, ID, EX, MEM, WB están representadas respectivamente, por los bloques IM, Reg, ALU,
DM, Reg.
2 - Predictores de saltos.
Las instrucciones de salto condicionales (brach) o no (jump), al modificar el PC reducen la performance
de un procesador con pipeline, ya que la próxima instrucción a ejecutarse puede que no sea la que se
encuentra en el pipeline. Para evitar esta pérdida en la performance se usa la predicción de saltos, que
lo que intenta hacer es predecir si el salto será tomado o no, y así anticipar cual será la próxima
instrucción a ejecutarse. A medida que la predicción es más exacta, la performance mejora.
Hay dos tipos de predictores de saltos:


Predicción estática, basada en información tomada al momento de compilación o mediante un
profiling del programa.
Predicción dinámica, la cual se basa en el resultado de los últimos saltos realizados.
La predicción dinámica se logra mediante un dispositivo que almacena para cada instrucción de branch,
el o los últimos resultados.
*Un predictor de saltos es un mecanismo hardware utilizado en los procesadores que utilizan
segmentación de la unidad de proceso para reducir ciclos de parada en el pipeline.
Los saltos condicionales introducen retardo en estos procesadores, ya que normalmente no se evalúa la
condición del salto hasta pasadas varias etapas, lo que hace que se tenga que parar el cauce, o que se
puedan introducir instrucciones en el pipeline que no deben de ser ejecutadas, teniendo que convertirse
posteriormente en NOPs, y decrementando así el rendimiento.
La predicción es posible anotando el comportamiento del programa en saltos anteriores.
3 - Describa mediante ejemplos los modos de direccionamiento que conozca.
Modo de
direccionamiento
Ejemplo
Significado
Cuando se usa
Inmediata
ADD R4, #3
Reg[R4] := Reg[R4] + 3
Para uso de constantes
Registro
ADD R4, R3
Reg[R4] := Reg[R4] +
Reg[R3]
Cuando los valores están en los
registros
Desplazamiento /
Indirecto
ADD R4,
100(R1)
Reg[R4] := Reg[R4] +
Mem[100 + Reg[R1]]
Para acceder a variables locales*
Absoluto / Directo
ADD R1,
(1000)
Reg[R1] := Reg[R1] +
Mem[1000]
A veces es útil para acceder a
datos estáticos
(si la constante representa una
dirección de memoria)
Reg[R4] := Reg[R4] +
Reg[Mem[R1]]
(*) El modo Desplazamiento puede emular estos dos modos:
Registro indirecto


ADD R4, (R1)
Acceso mediante un puntero
Registro Indirecto: Reg[$R] + 0
ADD R4, (R1) = ADD R4, 0(R1)
Absoluto: Reg[R0] + offset
ADD R4, #5 = ADD R4, 5(R0)
4 - Describa los distintos tipos de arquitecturas de conjunto de instrucciones que conozca. De
sus ventajas y desventajas.
Ventajas/Desventajas...
5 - Dada una CPU MIPS con hardware de manejo memoria virtual se pide:
a. Calcular el tamaño del espacio de direcciones virtuales.
b. Dar la cota máxima de la cantidad de memoria que efectivamente puede usar un
programa.
c. Calcular el tamaño en bytes de la tabla de traducción de páginas.
d. Calcular el tiempo de acceso promedio a memoria para una cache direccionada por
direcciones virtuales.
Datos:
RAM = 512 MB
SWAP = 256 MB
5 bytes por entrada en tabla de traducción de página.
Tasa de desaciertos de la memoria cache = 5%
Tiempo de acierto = 2 ns.
Tiempo de copiar un bloque completo de memoria principal a memoria cache = 40ns
Tasa de desaciertos del TLB = 3%
Tiempo de actualizar una entrada en TLB = 15 ns.
Tasa de falla de páginas = 0.0001%
Penalidad por falla de página = 3 mseg.
Aclare cualquier hipótesis que realice, y justifique las respuestas.
6 - Riesgos de datos. Clasificación de los riesgos de datos. Análisis de todos los tipos de
riesgos de datos e ilustración con ejemplos de secuencias de instrucciones para el
procesador MIPS con implementación pipeline de 5 etapas (IF, ID, EX, MEM, WB).
Se dice que ocurre un riesdo de datos cuando dos operaciones de una secuencia de instrucciones, al ser
ejecutadas en un pipeline, invierten el orden de los accesos de lectura/escritura sobre un dato.
Hay tres tipos de riesgos de datos:



Lectura después de Excritura (RAW, Read After Write)
Dependencia verdadera
ADD R1, R2, R3
SUB R4, R5, R1
Escritura después de Lectura (WAR, Write After
Read)
Dependencia artificial debida a asignación de
registro
LW R1, 0(R2)
ADD R2, R5, R6
Escritura después de Escritura (WAW, Write After Write)
Dependencia artificial debida a asignación de registro
LW R1, 0(R2)
ADD R1, R3, R4
7 - Se tiene una memoria cache de 8Kbytes, asociativa por conjuntos de grado 2, bloque de
16 bytes y política de reemplazo LRU.
a. Realice un diagrama en bloques detallado de la memoria cache (incluir el área de
tags).
b. Dar las direcciones para cinco datos A, B, C, D, E de manera tal que accedidos en el
orden dado por una CPU MIPS se cumpla con lo siguiente:
1. El acceso a B es hit.
2. C mapea en un conjunto distinto al correspondiente a A.
3. El acceso a E es miss.
c. Indicar en el diagrama del punto 'a' el contenido final de la memoria cache (área de
datos y área de tags). Las direcciones se deben dar en hexadecimal. No se pueden
hacer hipótesis acerca del contenido previo de la cache. Justificar sus respuestas.
8 - Procesamiento multihilo (multithreading).
Se dice procesamiento multihilo a la ejecución concurrente de múltiples hilos de procesamiento
(threads), pertenecientes a un mismo programa o a diferentes programas. Esto puede verse como una
sucesión alternada de intrucciones de cada uno de los hilos. (ver item 20)
9 - Memoria virtual.
10 - Codifique la línea de código C = A + B para las arquitecturas
a.
b.
c.
d.
Stack
Acumulador
Load/Store
Memoria-Memoria
Explique brevemente las ventajas y desventajas de cada una de ellas.
Respuesta:
Stack
Acumulador
Register-Memory
Load/Store
Memoria-Memoria
Push A
Load A
Load R1, A
Load R1, A
Add C, A, B ?
Push B
Add B
Add R3, R1, B
Load R2, B
Add
Store C
Store R3, C
Add R3, R1, R2
Pop C
Ventajas/Desventajas...
Store R3, C
11 - Colocar en los casilleros de la siguiente tabla la cantidad de bytes accedidos para cada
uno de los subsistemas correspondientes a cada columna de la mencionada tabla, durante el
proceso de acceder a un dato en memoria solicitado por la CPU. Justificar su respuesta con
un breve párrafo para cada fila. Aclare sus hipótesis.
CPU MIPS R2000, El acceso es una escritura en memoria de un dato de 4 bytes. L1 es
direccionado por direcciones virtuales, es write through con bloque de 64 bytes. L2 es write
back con bloque de 64 bytes. Los marcos de página son de 4 Kbytes.
Evento
Cache L1
Cache L2
Memoria
Principal
TLB
Tabla de
Traducción de Área de Swap
Páginas
Hit L1
Miss L1 y Hit
L2
Falla de
Página
12 - Riesgos estructurales. Definición. Describa dos ejemplos de riesgo estructural y la
solución para eliminarlos.
Se dice Riesgo Estructural (Conflicto Estructural) cuando una combinación de instrucciones, al
ejecutarse solapadamente en un pipeline, no puede ejecutarse correctamente por problemas de
recursos.
Ejemplos:




Memoria unificada
Register file no-multipuerto
Branch adder y ALU
Unidad funcional requiere más de un ciclo
13 - Unidad de control microprogramada.
14 - Escriba un fragmento de código MIPS que utiliza el esquema de salto demorado con un
único delay slot que es ocupado por una instrucción NOP. El código debe ser tal que el delay
slot puede ser llenado con una instrucción previa al branch, una del fall through y una del
target. Reescriba el código original reemplazando la NOP con la instrucción correspondiente
a cada uno de los tres casos pedidos.
Código original
Previa
Target
Fall Through
ADD $4, $1, $2
BNE $1, $2,
LABEL
NOP (delay slot)
LW $5, 16($2)
...
LABEL:
SUB $6, $1, $2
SUB $7, $2, $1
...
ADD $4, $1, $2
BNE $1, $2,
LABEL
ADD $4, $1, $2
LW $5, 16($2)
...
LABEL:
SUB $6, $1, $2
SUB $7, $2, $1
...
ADD $4, $1, $2
BNE $1, $2,
LABEL
SUB $6, $1, $2
LW $5, 16($2)
...
LABEL:
SUB $6, $1, $2
SUB $7, $2, $1
...
ADD $4, $1, $2
BNE $1, $2, LABEL
LW $5, 16($2)
LW $5, 16($2)
...
LABEL:
SUB $6, $1, $2
SUB $7, $2, $1
...
15 - Escribir la secuencia de microoperaciones necesarias para que una de CPU MIPS con
microarquitectura de un único bus interno y unidad de control microprogramada ejecute la
instrucción LW (load word). A tal efecto dibuje el datapath a utilizar y defina las señales a
utilizar explicando su acción.
16 - Se da a continuación un código para un procesador MIPS. El procesador que ejecutará
este código se implementó con el esquema de salto demorado y requiere de un "delay slot".
a. Evitar el riesgo de control utilizando instrucciones NOP.
b. Aprovechar el "delay slot" utilizando instrucciones previas al branch.
c. Aprovechar el "delay slot" utilizando instrucciones del fall through.
...
LABEL:
lw $5, 30($6)
...
subiu $2, $2, $1
addiu $3, $3, 1
bne $4, $3, LABEL
subiu $4, $4, 1
addiu $5, $5, 12
17 - Indicar para cada uno de los siguientes componentes del sistema de memoria, si el
mismo es transparente o no a la arquitectura de programación. Justifique sus respuestas.
a. Memoria cache de nivel 1.
b. Memoria virtual paginada.
c. Memoria virtual segmentada.
18 - Se tiene una memoria cache de 4Kbytes, asociativa por conjuntos de grado 4, bloque de
16 bytes y política de reemplazo LRU.
a. a-Realice un diagrama en bloques detallado de la memoria cache (incluir el área de
tags).
b. b-Dar las direcciones para cinco datos A, B, C, D, E, F de manera tal que accedidos en
el orden dado por una CPU MIPS se cumpla con lo siguiente:
1. A mapea en el conjunto 1.
2. B produce un hit.
3. C no pertenece al bloque de memoria que contiene a A y mapea en el mismo
conjunto en el que mapeo A.
4. El acceso a F es miss.
c. c-Indicar en el diagrama del punto 'a' el contenido final de la memoria cache (área de
datos y área de tags).
Las direcciones se deben dar en hexadecimal. No se pueden hacer hipótesis acerca del
contenido previo de la cache. Justificar sus respuestas.
19 - Entrada-Salida: ¿Qué se entiende, para una arquitectura en relación a la entrada-salida,
que ésta sea de un bus o de dos buses?
20 - Procesamiento multihilo (multithreading).
a. Políticas de procesamiento multihilo.
b. Desperdicios vertical y horizontal.
c. Para cada uno de los siguientes elementos decir si hay uno individual para cada hilo o
hay uno solo compartido entre todos los hilos. Justificar.
1. Memoria de código.
2. Memoria de datos.
3. Estructura de Stack.
4. Registros Generales.
5. Contador de programa.
6. Memoria cache.
a) Se dice procesamiento multihilo a la ejecución concurrente de múltiples hilos de procesamiento
(threads), pertenecientes a un mismo programa o a diferentes programas. Esto puede verse como una
sucesión alternada de intrucciones de cada uno de los hilos.
Las diferentes políticas de Multithreading son:




CMP (On-Chip MultiProcessor)
CMT (Coarse-Grained Multithreading)
FMT (Fine-Grained Multithreading)
SMT (Simultaneous Multithreading)
CMP = Más de un procesador ?
En CMT un thread corre hasta que es bloqueado por un evento con una latencia prolongada (stall),
como por ejemplo un cache-miss.
En FMT el procesador ejecuta un thread distinto en cada ciclo de reloj. El objetivo de esto es evitar
stalls por dependencias de datos en el pipeline.
En SMT se ejecutan instrucciones de varios hilos distintos en un mismo ciclo de reloj. No es necesario
duplicar unidades funcionales. El procesador coordina a las instrucciones que se ejecutan en forma
paralela sobre las distitas unidades
b) Desperdicio vertical y horizontal


Desperdicio Horizontal: el bajo nivel de paralelismo de las instrucciones (ILP, Instruction Level
Parallelism) impide, para un ciclo de reloj, usar eficientemente los recursos (unidades
funcionales) disponibles.
Desperdicio Vertical: El bloqueo o latencias en las instrucciones ejecutadas hacen que el
procesador deba permanecer ocioso.
Una buena administración del uso de los recursos por parte de los threads ayuda a reducir el
desperdicio tanto vertical como horizontal.
c)
1. Memoria de código: Compartida. El código es el mismo, independientemente de los distintos
threads.
2. Memoria de datos: Compartida. Los datos deben mantener una coherencia entre los threads, por
eso la memoria de datos es compartida.
3. Estructura de Stack: Individual. El estado de cada hilo de ejecución está reflejado en el stack.
Cada hilo de ejecución tiene su propio estado y por ende, su propio stack.
4. Registros Generales: Individual. Al igual que con el stack, cada thread debe tener sus propios
registros, para almacenar los datos que tiene que manejar.
5. Contador de programa: Individual. Cada thread tiene su propio PC, ya que ejecutan
instrucciones distintas.
6. Memoria cache: Compartida. La memoria cache es compartida entre los distintos hilos
21 - Indicar la cantidad de bytes de información que se transfieren entre los distintos pares
de dispositivos dados en la siguiente tabla, para los eventos indicados y la configuración del
sistema de memoria dada:
Configuración: Procesador MIPS. Cache L1 write through, cache L2 write back, tamaño de
bloque L1 32 bytes, tamaño de bloque L2 32 bytes, se debe supponer que los bloques de la
cache L2 que entren en juego están modificados.
CPU-Cache L1
Cache L1 - Cache L2
Cache L2 - Memoria
Acceso a dato de
instrucción lw . Miss en
L1 y en L2
Acceso a dato de
instrucción sw. Miss en
L1 y Hit en L2
Búsqueda de instrucción
addi. Hit en L1 y en L2
22 - Entrada-Salida: Explicar claramente que es Entrada-Salida mapeada en memoria.
¿Conoce algún otro esquema opuesto al anterior? ¿Qué características tiene?
23 - Describir como funciona un predictor de saltos de dos niveles y porque un esquema así
puede ser efectivo.
Los predictores de salto de dos niveles usan información de otros saltos recientes, además de la historia
del salto a predecir en si.
En base a los últimos saltos que fueron ejecutados, y los últimos resultados del salto a evaluar (en base
al patrón anterior), predice si el salto será un salto tomado o no.
La notación de este tipo de saltos es (X,Y), donde X es el número de niveles de historia global e Y es el
número de bits de historia por contador (local).
Los predictores de salto de dos niveles mantienen dos tablas. La primer tabla es el historial de los
últimos saltos (global). Almacena el resultado de los últimos n saltos. Este valor es el que se utiliza para
saber que columna de la segunda tabla se va a usar. La segunda tabla es el historial de saltos local.
Está indexada por los últimos bits de la dirección de la instrucción de salto a ejecutarse y mantiene un
registro de los últimos resultados del salto (tomado/no-tomado). En base a este valor, predice si el
salto será tomado o no.
Los predictores de saltos de un solo nivel, suelen errar la predicción en la salida de cada loop. Para los
loops que tienen un comportamiento repetitivo, los predictores de saltos de dos niveles suelen tener un
mejor comportamiento.
24 - Se tiene una TLB de 8 entradas con política de reemplazo LRU. Una aplicación realiza la
siguiente secuencia de referencias a páginas virtuales contiguas:
P0,P1,P2,P3,P4,P5,P6,P7,P8,P9. Dicha secuencia se repite en forma cíclica por un período
muy largo de tiempo.
a. Calcular la tasa de desaciertos para el caso en que la TLB es de mapeo directo.
b. Ídem punto a-pero considerando que es asociativa de grado 2.
c. Ídem punto a-pero considerando que es totalmente asociativa. Justificar sus
respuestas.
25 - Escribir la ecuación de desempeño de CPU. Indicar para cada uno de los componentes de
la ecuación si éste es afectado o no por:
a.
b.
c.
d.
Tecnología del hardware.
La organización.
La arquitectura del conjunto de instrucciones.
Tecnología del compilador
La performance del CPU depende de tres características: segundos por ciclos de reloj, ciclos de reloj por
instrucción y cantidad de instrucciones.
A su vez estas características están afectadas de la siguiente manera:



Tiempo del ciclo de reloj: Tecnología del hardware y la Organización
CPI: La organización y la Arquitectura del conjunto de instrucciones
La cantidad de instrucciones: de la arquitectura del conjunto de instrucciones y la tecnología del
compilador.
26 - Para el procesador MIPS indicar si los siguientes elementos están determinados por la
arquitectura o por la implementación. Justificar.
a.
b.
c.
d.
e.
f.
g.
Tamaño de la instrucción.
Espacio de direcciones virtuales.
Espacio de direcciones físicas.
Pipeline de 5 etapas.
Unidad de control microprogramada.
Conjunto de instrucciones.
Cache de nivel 1.
27 - Estudie el comportamiento de un patrón de referencias a memoria que sigue el modelo
del lazo. Clasifique los desaciertos usando el modelo de las "3C". Interprete los resultados
obtenidos. Datos: Lazo de 11 bloques. Cache de 8 bloques (en total), 2 vias y reemplazo LRU.
28 - Dibujar el datapath completo para la arquitectura MIPS pipeline de 5 etapas. Incluir el
forwarding ALU-ALU y Memoria-ALU.
Descargar