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)
0 0 0 0
……….. 16 instrucciones Grupo 4
1 1 1 1
B)
DEC
16 G 2
DEC
8 G 2 7 G 3
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 0.42
SUB 0.26
MUL 0.21
DIV 0.04
STA 0.04
LDA 0.02
JMP 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:
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:
TCorig
TA N * CPI A * TC A N *8, 4*
1,3
Torig 7,2 7, 2
SpeedUp A = = 1,114
TA 8,4 /1,3 6, 46
7,2
SpeedUpB = = 1,125
6,4
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 mm2
p p p p q q q q
1 2
mm1 mm2
0…0 0.…0 1….1 0...0 1…1 1.…1 0….0 0...0
NOT AND
3 4
Desplazamiento >> 1 7
mm0 mm4
c’3 c’2 c’1 c’0 AND c’’’3 c’’’2 c’’’1 c’’’0
mm3
6
AND c’’3 c’’2 0….0 0…0
mm0
0…0 0.…0 c’1 0...0 OR 8
mm1
1…1 1.…1 1….1 0...0 9
OR NOT AND
10
mm0 mm1
c’’3 c’’2 c’1 0…0 0…0 0.…0 0….0 c’’’0
OR 11
mm0
c’’3 c’’2 c’1 c’’’0
Código
4
Problema
Un procesador que opera a 500 MHz con un CPI = 4 dispone de un sistema de interrupciones con un
tiempo de reconocimiento de interrupción de 100 ns. En cada interrupción se transmiten 8 bytes. ¿Cuál es
el número máximo de instrucciones que puede tener la rutina de servicio de interrupción si queremos que
la capacidad de entrada de datos (ancho de banda) a través del sistema de interrupciones sea de 20
MBytes/segundo?
Solución:
Tiempo total de una interrupción = 8 bytes /interrupción / 20* 106 bytes/segundo = 400 ns./
interrupción = 100 + NI_RT * 4 * 2 = 100 + NI_RT * 8
5
Problema
Un procesador con CPI = 5 ciclos/instrucción y tiempo de ciclo Tc = 2 ns dispone de un sistema de E/S con
interrupciones y DMA.
a) Calcula el número máximo de instrucciones que deberá tener la rutina de servicio de interrupción cuando
sólo se conecta una tarjeta de adquisición de datos que opera a una velocidad de 10 MBytes/segundo,
sabiendo que el tiempo de reconocimiento de una interrupción es de 100 ns. y que se transmiten 8 bytes en
cada interrupción.
b) Calcula el ancho de banda mínimo que debe proporcionar el DMA para poder conectar un disco magnético
de 256 sectores/pista y 2048 bytes/sector que gira a 9.600 revoluciones por minuto.
c) ¿Se podría conectar el disco a través de DMA por robo de ciclo si en cada operación de DMA se transfieren
8 bytes?
d) Calcula el número máximo de instrucciones que debería tener la rutina de servicio de interrupción si el
procesador opera simultáneamente con la tarjeta de adquisición de datos conectada por interrupciones y con
el disco magnético conectado por DMA (robo de ciclo).
Solución:
a) 100 + Nºinst(RT) * 5 ciclos/inst. * 2 ns./ciclo < (8 Bytes/inst. / 107 Bytes/seg) 109ns = 800 ns.
Nºinst(RT) < (800 – 100)/10 = 700/10 = 70 instrucciones
c) AB(dma)= 8B/(6*2)ns = 8B/12*10-9 s=0,66*109 = 660*106 = 660 MB/s > 83 MB/s SI se podría
conectar
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.
Solución:
a.1) Vamos a ver las paradas por dependencias que ocurren en cada caso:
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
17 Se pide:
.
.
23 <------ a) Interpretación de los bits de la dirección
. | física del sistema de memoria para Mc.
. |
------165 |
| . |
20 iteraciones | . | 10 iteraciones b) Tiempo de ejecución del programa
| . | despreciando las lecturas/escrituras de
- --------239 |
. | operandos.
. |
1200 -------
.
.
1500
Solución:
Mp (dir. posiciones) Mp( dir. bloques ) Mc (líneas)
17 B0 MB0
. .
. . MB1
. .
23 B0 MB2
. .
. B1 MB3
. .
165 B2
. .
. . MB13
. .
239 B3 MB14
. .
. B15 MB15
. .
1200 B18
. .
. .
1500 B23
16
b) ciclo interno: 0 fallos (se contabilizan en el externo ya que no se sustituye ninguna línea del
interno en la ejecución del externo)
ciclo externo:
1ª iteración: 19 fallos forzosos
2ª-10ª iteraciones: (3+3) * 9 = 54
tramo final: 5 fallos
Nº total de fallos = 19+54+5 = 78
Tfallo = 78*64*10T = 49.920T
Nº de referencias = 6+10*(142+20*75+961)+300=26.336
Treferencia =26.336T
Total = (49.920+26.336)T = 76.256T = 762.560 ns
8
Problema
Un computador dispone de un sistema de memoria central constituido por una memoria principal Mp de 64 K
palabras y una caché de datos Mc de 32 palabras con correspondencia directa y 8 palabras por línea. El tiempo de
acceso a Mp es de 200 nanosegundos y el de Mc 10 nanosegundos. En Mc opera una política de escritura directa
(write through) sin asignación en cache. Se ejecuta el siguiente programa:
a)
11 2 3
Mc = 32p = 25
Nº líneas = 25 / 23 = 22 =4 etiqueta linea palabra
Mp = 64Kp = 216 16
b) Iteraciones
i, j
Mp Mc
X[0][0] Y[0][0]
0, 0 X[0][0]=2*Y[0][0] C0 1 fallo
X[0][1] B0 Y[0][1] L0 0, 1 X[0][1]=2*Y[0][1] C0 0 fallos
X[0][2] Y[0][2] 0, 2 X[0][2]=2*Y[0][2] C1 1 fallo
X[0][3] B1 Y[0][3] L1 0, 3 X[0][3]=2*Y[0][3] C1 0 fallos
Y[0][4] 0, 4 X[0][4]=2*Y[0][4] C2 1 fallo
X[ ][ ] Y[0][5] L2 0, 5 X[0][5]=2*Y[0][5] C2 0 fallos
X[0][6]
X[0][7] B3 Y[0][6] 0, 6 X[0][6]=2*Y[0][6] C3 1 fallo
Y[0][7]
X[1][0]
L3 0, 7 X[0][7]=2*Y[0][7] C3 0 fallos
X[1][1] B4
1, 0 X[1][0]=2*Y[1][0] C0 1 fallo
1, 1 X[1][1]=2*Y[1][1] C0 0 fallos
X[1][6] B7 1, 2 X[1][2]=2*Y[1][2] C1 1 fallo
X[1][7] 1, 3 X[1][3]=2*Y[1][3] C1 0 fallos
Y[0][0] B8 1, 4 X[1][2]=2*Y[1][2] C2 1 fallo
Y[0][1]
1, 5 X[1][3]=2*Y[1][3] C2 0 fallos
Y[0][2] B9 1, 6 X[1][6]=2*Y[1][6] C3 1 fallo
Y[0][3]
1, 7 X[1][7]=2*Y[1][7] C3 0 fallos
Nº Fallos = 4 x 2 = 8 fallos
Y[0][6] Y[ ][ ]
Y[0][7]
B11 d) Tfallos =
8 fallos * 8 palabras*200 ns = 12.800 ns
Y[1][0]
B12
X[1][1] Tescritura = 16 elementos x[][] * 4 accesos/elemento *
200 ns = 12.800 ns
Y[1][6]
B15
TlecturaMc =
Y[1][7]
(16 elementos Y * 4 palabras/elemento – 8 lec.
Simultaneas) * 10 ns = 560 ns
Ttotal = 12.800 + 12.800 + 560 = 26.160 ns
9
Problema
Un computador dispone de un sistema de memoria virtual con una capacidad de 4 GB, con
tamaño de página de 4K y 8 MB de memoria principal. El TLB contiene un total de 128
entradas con un bit de validez por entrada. Se pide:
a) Formato de las direcciones virtual y física.
b) Número de páginas virtuales y marcos de página.
c) Tamaño en bytes del TLB.
d) Número en decimal de página virtual y desplazamiento de página correspondiente
a la dirección virtual: 100AB01D (hex)
Solución:
a)
Tamaño de página = 4 KB = 212 bytes 12 bits DP
Tamaño Mv = 4 G = 232 bytes 32 bits DV 32 -12 = 20 bits NPV
Tamaño Mp = 8 MB = 223 bytes 23 bits DF 23 -12 = 11 bits NPF
b)
Nº PVs = 220 = 1.048.576 páginas
Nº MPs = 211 = 2.046 marcos
c)
Entrada al TLB
Longitud = 32 bits
Tamaño del TLB = 128 * 32 = 4.096 bits = 4.096/8 bytes = 512 bytes
1 0 0 A B 0 1 D
10
Problema
Un computador dispone del siguiente sistema de memoria:
Memoria virtual de 4GBytes
Memoria física de 64MB y páginas de 8MB con política de reemplazamiento FIFO
Cache de datos de 256KB con correspondencia directa. El tamaño del bloque es de 64KB.
El sistema almacena 20 álbumes de fotos (Alb1, ... , Alb20). Cada álbum ocupa 2MB y cada foto 64KB. El Alb1 empieza en la
dirección virtual 0x02800000 y los demás están en direcciones virtuales consecutivas. Sabiendo que en un momento de la
ejecución el contenido de la tabla de páginas es el siguiente:
a) Indica los formatos de las direcciones virtual y física, esta última respecto a
la memoria virtual y la memoria cache.
b) Indica que álbumes están en ese momento en la memoria principal y en qué
paginas físicas se encuentra cada uno.
c) En qué direcciones físicas empiezan los álbumes de la última página que se
colocó en memoria principal
Solución:
9 23
10 16
8 2 16
b) Cada álbum ocupa 2MB → hay 4 álbumes por página (223 / 221 = 4) y cada álbum contiene 32 fotos (221 / 216 = 32)
Nº pag Virt Byte de la pag
Dir Virtual de Alb1 = 0x02800000 = 0000 0010 1000 0000 0000 0000 0000 0000 → página virtual 5
Como los álbumes van consecutivos ocupan desde la página virtual 5 hasta la página virtual 9
Mirando la tabla de páginas podemos decir que en la MP están los álbumes contenidos en la página virtual 5, 6 y 9
que se ubican en las páginas físicas 6, 0 y 1 respectivamente