Tests Soluciones
Short Description
Test.......
Description
Estructura de Computadores Problema Un computador con instrucciones de longitud fija de 32 bits dispone de 256 registros generales y los siguientes grupos de instrucciones:
Grupo 1: 13 instrucciones que hacen referencia a 3 operandos, 2 en registros y 1 desplazamiento de 12 bits. Grupo 2: 40 instrucciones que hacen referencia a 3 operandos en registros Grupo 3: 7 instrucciones que hacen referencia a 2 operandos, 1 en registro y 1 desplazamiento de 16 bits Grupo 4: 16 instrucciones sin operandos A) Determina el formato de cada grupo de instrucciones B) Dibuja el diseño del decodificador completo C) Calcula el tiempo de decodificación de instrucciones si cada decodificador utilizado en el diseño tienes dos niveles de puertas lógicas y son 2 ns el tiempo de retardo de cada puerta.
Solución: A)
CO (4 bi ts) 0000 ……….. 1100 1101
R1 (8 bi t s)
CO (4 bi ts)
R1 (8 bi t s)
CO (4 bi ts)
R1 (8 bi t s)
CO (4 bi ts)
R2 (8 bi ts)
R3 (8 bi t s)
R1 (8 bi t s)
R2 (8 bi ts)
R3 (8 bi t s)
8 instrucciones instrucciones Grupo Grupo 2
CO (4 bi ts) 10 0 0 ……….. 1110
1111
R3 (8 bi t s)
16 instrucciones Grupo 2
0000 ……….. 01 1 1 1111
R2 (8 bi ts)
16 instrucciones Grupo 2
0000 ……….. 1111 1111
D (1 2 bi t s)
13 instrucciones Grupo 1
0000 ……….. 1111 1 1 10
R2 (8 bi ts)
R1 (8 bi t s)
D (1 6 bi t s)
7 instrucciones instrucciones Grupo Grupo 3 CO (4 bit s)
1111
0000 ……….. 1111
16 instrucciones instrucciones Grupo 4
B) ( 4 bits )
D EC
(4 bits )
(8 bits )
DEC
D EC
13 G 1
16 G 2
16 G4
DEC 16 G 2 DEC 8G2
7G3
C) Retardo = 3 mux * 2 nivels * 4 ns =24 ns.
1
Problema 1) Sabiendo que la frecuencia de ejecución de instrucciones en una máquina es la que aparece en la siguiente tabla:
Tipo de instrucciones
Frecuencia de ejecución
ADD SUB MUL DIV STA LDA JMP
0.42 0.26 0.21 0.04 0.04 0.02 0.01
Define un CO variable que minimice el tráfico de información con la memoria en las lecturas de las instrucciones. ¿Cuántos bits dejarán de transferirse entre CPU y Memoria con el CO de longitud variable frente a un CO de longitud fija en un programa que ejecuta 1.000 instrucciones?
Solución:
Código de Huffman
Tipo de instrucciones
Frecuencia de ejecución
0 ADD
0.42
10 SUB
0.26
110 MUL
0.21
1110 DIV
0 0 0
0.04
11110 STA
0.04
111110 LDA
0.02
111111 JMP
0.01
0
0.03
1
1
0.32 1
1
0 0
0.11
0.58
1.0
0.07 1
1
Lmedia (v) =1 x 0 .42 + 2 x 0 .26 + 3 x 0.21 + 4 x 0.04 + 5 x 0.04 + 6 x (0.02+0.01) = 2.11 bits L (f) = 3 Cv = 1000 x 2.11 = 2110 Cf = 1000 x 3 = 3000 Cf – Cv = 890 bits
2
Problema Un computador tiene un CPI de 5 para las instrucciones aritmético‐lógicas, un CPI de 7 para las instrucciones de carga‐almacenamiento y un CPI de 15 para las instrucciones aritméticas de tipo trigonométrico. Cierto benchmark tiene un 30% de operaciones aritmético‐lógicas, un 60% de carga‐almacenamiento y el resto de operaciones aritméticas de tipo trigonométrico. Con el propósito de mejorar las prestaciones del computador, se manejan 2 alternativas de diseño: a) Modificar la organización para aumentar la frecuencia de reloj en un 30% a costa de aumentar a 9 el CPI de las instrucciones de carga‐almacenamiento b) Incluir un HW específico para las operaciones trigonométricas que reduce el CPI de estas instrucciones a 7. ¿Qué opción es mejor? Justifica numéricamente la respuesta
Solución:
CPI orig = 5*0,3+7*0,6+15*0,1 = 7,2 CPI A = 5*0,3 + 9*0,6 +15*0,1 = 8,4 Torig
T A
N * CPI orig * TCorig
N * CPI A * TC A
SpeedUp A =
T orig T A
N *7, 2* TC orig
N *8, 4*
7,2 8,4 / 1,3
TC orig
1,3
7, 2 6, 46
= 1,114
CPI B = 5*0,3 + 7*0,6 + 7*0,1 = 6,4
SpeedUp B =
7,2 6,4
= 1,125
Luego es mejor la alternativa B porque consigue mayor ganancia de velocidad frente al diseño actual
3
Problema
Codificar con instrucciones SIMD del Pentium (MMX) el siguiente segmento de programa: for i = 0 to 3 if a[i] = p then s[i] = (a[i] ‐ c[i])/2 else if a[i] = q then s[i] = 4*c[i] else s[i] = s[i]*c[i]
Solución: mm0 a3
=
=
=
a2
a1
a0
=
=
mm1 p 1
=
=
=
q
q
mm2 p
p
p
q
mm1
q
2
mm2
0…0 0.…0
1….1
1…1 1.…1
0...0
0….0
0...0
NOT AND 3
4
mm0 a3
mm3 a2
-
-
a1
a0
-
-
c3
c3
c2
c1
c1
c0
c’’3
c’’2
c’’1
Desplazamiento >> 1
c’2
c’1
AND
0…0 0.…0
c’1
6
c’’3
c’’2
0….0
s0
x
x
x
c2
c1
c0
c’’’2
c’’’1
c’’’0
mm4 c’’’3
0…0
8
OR
0...0
s1
mm3 c3
AND
mm3 mm0
c)
7
c’0
s2 x
5
c’’0
mm0 c’3
s3
mm3
a)
c0
c2
Desplazamiento 83 MB/s SI se podría conectar
d)
Las 70 instrucciones calculadas en el apartado a) corresponden a 70*5 = 350 ciclos de CPU La rutina de servicio debe durar como máximo 350 ciclos. Cuando opera simultáneamente el DMA(robo de ciclo) cada instrucción (5 ciclos) dedica 1 ciclo a transferencia DMA Nºins(rt+DMA) = 350/6 = 58 instrucciones
6
Problema
Sea un procesador segmentado de cinco etapas. Ejecutamos en este procesador una aplicación con las siguientes características: El 18% de las veces las instrucciones Ii+1 tienen una dependencia de LDE con las instrucciones Ii. El 29 %de éstas corresponden a instrucciones de load. El 6% de las veces las instrucciones Ii+2 tienen dependencias de LDE con la instrucción Ii El 25% de las instrucciones son de bifurcación condicional, de las cuales se toman el 35% Calcula: a) Los CPIs respectivos para las siguientes características del procesador: 1) Procesador sin técnicas para reducir o eliminar paradas. Los saltos se resuelven en ejecución. Se puede escribir y leer el registro en el mismo ciclo de reloj.
b) c)
2) Procesador con cortocircuito ( forwarding). Los saltos se resuelven en decodificación. La ganacia de velocidad (speedup) del segundo caso frente al primero. Eficiencia de ambos casos
Solución: a.1) Vamos a ver las paradas por dependencias que ocurren en cada caso:
Paradas por dependencia entre Ii+1 e Ii
Ii F D E M W Ii+1 F DP DP D E M W El número de paradas es 2. En este primer caso los load y el resto de las instrucciones con dependencia tienen el mismo número de paradas puesto que en todos los casos se espera hasta la etapa de escritura para poder leer el nuevo valor.
Paradas por dependencias entre Ii+2 e Ii
Ii F D E M W Ii+1 F D E M W Ii+2 F DP D E M W W En este segundo caso se produce un ciclo de parada entre Ii e Ii+2
Paradas por bifurcación condicional: 3 ciclos de parada
BC F D E M W Ii+1 FP FP FP F D E M W Por lo tanto el CPI de este procesador será:
ó
CPI= 1+0,18*2+0,06*1+0.25*3 = 1+0,36+0,06+0,75 = 2,17 CPI a.2) Procesador con forwarding y los saltos se resuelven en decodificación:
En este caso solo producen parada por LDE las instrucciones que dependen del load que son el 0,18*0,29=0,0522 del total LOAD F D E M W Ii+1 F DP D E M W Como el cálculo de la dirección y de la condición se realiza en decodificación solo se produce un ciclo de parada en los saltos que se toman que son 0,25 * 0,35=0,0875 del total.
BC F D E M W Ii+1 FP F D E M W CPI= 1+0,0522*1+0,0675*1=1,1397 c) speed up =CPIviejo/CPInuevo =2,17/1,1397=1,904 d) eficienciaA = CPIideal/CPIA =1/2,17 =0,46;
eficienciaB = CPIideal/CPIA =1/1,397 =0,715
7
Problema
Un computador dispone de un sistema de memoria central constituido por una memoria principal Mp de 64 K palabras y una cache Mc de 1 K palabras con correspondencia directa y 64 palabras por bloque. El tiempo de ciclo de Mp es 10 veces superior al de Mc que es de 10 ns. Se ejecuta un programa que sigue el siguiente perfil de referencias a memoria: 17 . . 23
View more...
Comments