Examen: Parcial 1:2022_10_26:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki
Examen Parcial 1: 2022-10-26. GISAM
- Tiempo: 40 minutos
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
- Temario: S1-S3
Contenido
Enunciado
El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un problema
Test (5 ptos)
- Realizado a través de Aula virtual
- 10 preguntas tipo test
- Las respuesats incorrectas restan un 25% del valor de la pregunta
- Solución disponible en Aula virtual
Problema (5 ptos): Rendimiento
Un procesador funciona a una frecuencia de 2Ghz y tiene un juego de instrucciones que se divide en tres tipos: Tipo I, Tipo II y Tipo III, cuyos CPIs se muestran en esta tabla
Tipo I | Tipo II | Tipo III | |
---|---|---|---|
CPI | 1 | 3 | 2 |
Para evaluar su rendimiento se utiliza un programa de pruebas programado en un lenguaje de alto nivel. Utilizando un compialdor C1 se traduce a código máquina, con la siguiente distribución de instrucciones: 10% de tipo I, 60% de tipo II y 30% de tipo III. El tamaño total es de 1 millón de instrucciones
a) Calcular el tiempo que tarda el procesador en ejecutar el programa de pruebas, cuando se usa el compilador C1 (2 ptos)
Se ha creado una nueva versión del compilador, C2, que traduce el mismo programa de pruebas. Pero ahora el código máquina tiene 1.2 millones de instrucciones, con la siguiente distribución: 20% de tipo I, 50% de tipo II y 30% de tipo III.
b) Evaluar el tiempo que tarda el procesador en ejecutar ahora el mismo programa usando el compilador C2 (2 ptos)
c) Comparar el rendimiento del procesdor con los compiladores C1 y C2, y cuánto de mejor es uno sobre otro (1 pto)
Solución al problema
a) Cuando se usa el compilador C1, el número de instrucciones es I1 = 10^6. Calculamos primero el número de ciclos que tarda en ejecutar este programa, sabiendo los CPIs de cada tipo de instrucciones:
- Ciclos1 =
I1*0.1*1 + I1*0.6*3 + I1*0.3*2 = I1[0.1 + 1.8 + 0.6] = I1*2.5
= 2.5 Millones de ciclos
Ahora calculamos el tiempo que tarda en ejecutar el programa de pruebas:
- Tcpu_1 =
2.5*10^6 / 2*10^9
= 1.25ms
b) Usando el compilador C2, el nuevo programa de pruebas en código máquina tiene I2 = 1.2*10^6 Instrucciones. Calculamos los ciclos que tarda en ejecutarse ahora:
-
Ciclos2 =
I2*0.2*1 + I2*0.5*3 + I2*0.3*2 = I2[0.2 + 1.5 + 0.6] = I2*2.3
= 2.76 Millones de ciclos -
Tcpu_2 =
2.76*10^6 / 2*10^9
= 1.38ms
c) Utilizamos el rendimiento relativo para comparar el rendimiento del procesador con ambos compiladores:
n = R1 / R2 = Tcpu_2 / Tcpu_1 = 1.38ms / 1.25ms = 1.1 (aprox)
El rendimiento del procesador con el compilador C1 es 1.1 veces mejor que con el compilador C2
Autores
- Katia Leal Algara
- Juan González-Gómez (Obijuan)