PARTE A SOLUCIONES Pregunta 1. Suponer que se dispone de un

Anuncio
PARTE A
SOLUCIONES
Pregunta 1. Suponer que se dispone de un procesador altamente segmentado para el
que se implementa un "branch-target buffer (BTB)" sólo para los saltos condicionales.
Suponer que la penalización por fallo en la predicción del salto es siempre de 4 ciclos y
la penalización por fallo del buffer es siempre de 2 ciclos. Suponer que se tiene una tasa
de acierto del 80% y una precisión del 90%, y una frecuencia de instrucciones de saltos
condicionales del 20%. ¿Cuánto más rápido es el procesador que dispone de un buffer
BTB en relación a otro procesador sin BTB que tiene una penalización fija de ciclos en
los saltos?. Suponer que se produce una penalización de 3 ciclos de reloj por dependencias de control en el procesador que no tiene BTB. Suponer un CPI ideal sin paradas por
saltos de 1.
Marca la respuesta correcta.
__ 10%
__ 20%
__25%
__ 30%
__ 35%
X__ 40%
__ 45%
__ 50%
__ 60%
__ 65%
__ 80%
Pregunta 2. En este ejercicio se analiza cómo un bucle vectorial se ejecuta en la versión
del procesador DLX monoescalar, con planificación dinámica de instrucciones utilizando el algoritmo de Tomasulo. Este es su código DLX, suponiendo que el inmediato done y los registros R1, R2, y F0 se han inicializado antes de comenzar a ejecutarse
el bucle:
ini: LD
F2,0(R1)
MULTD
F4,F2,F0
LD
F6,0(R2)
ADDD
F6,F4,F6
SD
0(R2),F6
ADDI
R1,R1,#8
ADDI
R2,R2,#8
SGTI
R3,R1,done
BEQZ
R3,ini
Suponer que se dispone de una unidad funcional de enteros (denominada “E”),
una para cargas (denominada “C”), y otras para almacenamientos (denominada “A”).
Todas ellas tardan 1 ciclo de reloj en terminar la operación desde que los operandos
están disponibles. Adicionalmente, existe una unidad funcional que realiza las operaciones de multiplicación en punto flotante (denominada “M”) que tarda 4 ciclos de reloj, y
una unidad funcional que realiza las sumas en punto flotante (denominada “S”) que tarda 3 ciclos de reloj. Los saltos se resuelven en la unidad de enteros. Suponer que en
cada una de las estaciones de reserva de las unidades funcionales se pueden alojar hasta
3 instrucciones. Suponer que las unidades funcionales pueden empezar a ejecutar la
operación correspondiente tan pronto como se disponga de los datos en la estación de
reserva o se estén transmitiendo por el CDB.
Rellena la siguiente tabla, mostrando el estado de las estaciones de reserva que
estén ocupadas cuando la instrucción SGTI escribe por primera vez el resultado en el
CDB.
Estación de
reserva
E1
E2
E3
S1
S2
S3
A1
A2 y A3
C1, C2, C3
M1,M2,M3
Ocupada? Operación
Si
No
Si
No
Si
No
Si
No
No
No
Vj
Vk
BEQZ
R3
Ini
SGTI
R1
Done
ADDD
F4
F6
SD
R2
Qj
Qk
F6
PARTE B
SOLUCIONES
Pregunta 1. Un multiprocesador tiene 6 CPUs conectadas a 5 módulos de memoria
mediante un bus común, implementando un modelo de computación de memoria compartida. El bus es síncrono y su funcionamiento es de ciclo partido. Esto significa que el
acceso a memoria se divide en fases: una fase de direccionamiento, una fase de acceso
de la memoria, y una fase de datos. El tiempo de acceso de cada módulo de memoria es
de 2 µs y el tiempo de ciclo de cada CPU es de 400 ns. Cada bloque de memoria es bloqueante, es decir, no acepta nuevas peticiones de acceso a memoria si no ha resuelto las
anteriores. El número de ciclos de utilización del bus para hacer los intercambios de
información entre la memoria y las CPUs son los siguientes:
Operación de Lectura. Envío de la dirección: 1 ciclo; Lectura del dato: 1 ciclo
Operación de Escritura. Envío conjunto de la dirección y dato: 1 ciclo
(a) Sabiendo que de cada 3 operaciones en memoria que se realizan indistintamente por
las diferentes CPUs, 2 son de lectura y 1 de escritura, ¿cuál es el número máximo de
operaciones por segundo que permite ejecutar cada módulo de memoria? (marca la respuesta correcta, la cual está expresada en operaciones/segundo):
__ 100000
__ 350000
X__ 375000 __ 200000
__225000
__150000
(b) Calcular el número máximo de operaciones que permiten ejecutar todos los módulos
de memoria, así como el número de ciclos de ocupación del bus para esa cantidad de
operaciones, y responder a la siguiente pregunta: ¿dónde está el cuello de botella? (marca la respuesta correcta):
El cuello de botella está en: X__ el bus
__ la memoria
(c) Calcular el número máximo de operaciones que realmente se pueden ejecutar en
toda la memoria en 1 segundo considerando tanto la memoria como el bus compartido
(marca la respuesta correcta, la cual está expresada en operaciones/segundo):
X__ 1.5 106
__ 4.2 105
__ 7.0 103
__ 2.5 106
__ 10
__ 3.9 102
Pregunta 2. Suponer que en una memoria cache pseudo-asociativa se requieren 2 ciclos
extra para encontrar la dirección demandada en la segunda mitad que también es una
cache de correspondencia directa. Suponer que el tiempo de acierto en la primera mitad
es de 1 ciclo, y que la penalización es de 50 ciclos. Usando los parámetros que aparecen
a continuación,
Tipo de Cache
Frecuencia de
fallos
2K – 1 vía
9.8%
2K – 2 vías
7.6%
128KB – 1 vía
1%
128 KB – 2 vías
0.7%
(a) ¿Cuál es el tiempo de acceso promedio (AMAT) de una cache pseudoasociativa de 2
KB? (marca la respuesta correcta, la cual está expresada en ciclos):
__ 3.05
X__ 4.84
__ 4.48
__ 3.57
__8.43
__ 2.89
(b) ¿Cuál es el tiempo de acceso promedio (AMAT) de una cache pseudoasociativa de
128 KB? (marca la respuesta correcta, la cual está expresada en ciclos):
__ 2.66
__ 1.05
__ 1.26
X__ 1.36
__ 3.21
__ 2.12
Descargar