You are on page 1of 7

Tema 1

Diseño de la ruta de datos de un


procesador
1. Supongamos que los siguientes elementos de la ruta de datos tienen las latencias seña-
ladas para las conguraciones a y b:

I-Mem Add Mux ALU Regs D-Mem Sign-extend Shift-left-2


a 400ps 100ps 30ps 120ps 200ps 350ps 20ps 2ps
b 500ps 150ps 100ps 180ps 220ps 1000ps 90ps 20ps

a ) Si la única cosa que hubiera que hacer en un procesador fuera cargar nuevas ins-
trucciones desde memoria, ¾cuál sería el tiempo de ciclo para cada conguración?.

b ) Considera una ruta de datos similar a la vista en la transparencia 17, pero para
un procesador que sólo tuviera un único tipo de instrucción: saltos incondicionales
relativos al PC. ¾Cuál sería el tiempo de ciclo para cada conguración?.

c ) Repetir el apartado anterior pero esta vez para instrucciones de saltos condiciona-
les.

Solución en página 69

2. Los siguientes apartados se reeren a los siguientes bloques de la ruta de datos:

a Suma 4 (al PC)


b La memoria de datos

a ) ¾Qué tipo de instruccciones usan cada uno de esos recursos?


b ) ¾Para qué tipo de instrucciones (si es que hay alguno) está este recurso en su
camino crítico?.

c ) Suponiendo que sólo soportamos las instrucciones beq y add discutir qué cambios en
la latencia dada para este recurso afecta el tiempo de ciclo del procesador. Suponer
las latencias del ejercicio anterior y que para el resto de bloques no cambian.

Solución en página 69

3. Supongamos que los siguientes elementos de la ruta de datos tienen las latencias seña-
ladas para las conguraciones a y b:

9
10 TEMA 1. DISEÑO DE LA RUTA DE DATOS DE UN PROCESADOR

I-Mem Add Mux ALU Regs D-Mem Sign-extend Shift-left-2


a 400ps 100ps 30ps 120ps 200ps 350ps 20ps 0ps
b 500ps 150ps 100ps 180ps 220ps 1000ps 90ps 20ps

a ) ¾Cuál es el ciclo de reloj del cauce si el único tipo de instrucciones que queremos
soportar son las instrucciones ALU (add, and, etc.)?.

b ) ¾Y si sólo tuvieramos que soportar instrucciones lw?.


c ) ¾Y si tenemos que soportar las instrucciones add, beq, lw, y sw?.

Solución en página 69

4. Supongamos que no hay detenciones en el cauce y que el porcentaje de cada tipo de


instrucciones es el siguiente:

add addi not beq lw sw


a 30 % 15 % 5% 20 % 20 % 10 %
b 25 % 5% 5% 15 % 35 % 15 %

a ) ¾Cuál es el porcentaje total de uso de la memoria de datos?.


b ) ¾Cuál el el porcentaje total de uso de la entrada del circuito para extender el signo
del inmediato?. ¾Qué está haciendo este circuito en los ciclos donde no es necesario?

c ) Si pudiéramos mejorar la latencia de uno de los componentes de la ruta de datos en


un 10 %, ¾qué componente sería más interesante mejorar? ¾Cuál sería la aceleración
total conseguida con esa mejora?.

Solución en página 69

5. Cuando se fabrican los chips de siliciio, los defectos en los materiales utilizados (por
ejemplo el silicio) y los errores de fabricación pueden provocar errores en los circuitos
resultantes. Un error muy común es cuando una línea afecta a la señal de otra. Este error
se llama cross-talk. Un clase especial de cross-talk es cuando una señal está conectada
a una línea que tiene un valor lógico constante (por ejemplo la línea de alimentación
de corriente). En este caso se dice que tenemos un fallo de stuck-at-0 o stuck-at-1, y la
señal afectada siempre tiene un valor lógico de 0 o 1, respectivamente.

a ) En los siguientes apartados nos vamos a referir a las siguientes señales de la gura
1.1.

a En la memoria de instrucciones, el bit 7 de la instrucción leida


b En la unidad de control, la salida MemtoReg

1) Supongamos que el proceso de prueba del procesador se realiza rellenando el


PC, registros, y memorias de instrucciones y datos con algunos valores (puedes
elegir qué valores), ejecutando después una única instrucción y consultando el
valor posterior de esos bloques. Esos valores posteriores se examinan para
detectar si se ha producido un fallo concreto. Diseña un test (valores para
el PC, memorias y registros) para detectar si hay un fallo stuck-at-0 en esta
señal.
11

Figura 1.1: Cauce del procesador MIPS monociclo.

2) Repite el apartado anterior para detectar un fallo stuck-at-1. ¾Es posible usar
un mismo test para detectar tanto un fallo stuck-at-0 como un fallo stuck-at-
1 ?. Si la respuesta es sí, explica cómo; si la respuesta es no, explica por qué
no.

3) Si sabemos que el procesador tiene un fallo stuck-at-1 en esta señal, es el proce-


sador válido aún o habría que desecharlo? Para que sea válido aún, deberíamos
de ser capaces de convertir cualquier programa que se ejecute en un procesador
MIPS normal en un programa que funcione correctamente en este procesador.
Para ello vamos a intentar reemplazar cada instrucción defectuosa por una
secuencia de instrucciones que puedan ejecutarse correctamente y que consigan
el mismo resultado. Podemos asumir que hay suciente memoria de instruc-
ciones y datos para poder hacer el programa mayor y almacenar información
adicional.

b ) En los siguientes apartados nos vamos a referir a los siguientes fallos:

a stuck-at-1
b Se convierte en 0 is los bits [31-26] tiene todos sus
bits a 0, y no hay fallo en otro caso

1) Repetir el primer apartado anterior, pero ahora el fallo a comprobar es si la


señal de control MemRead tiene este fallo.

2) Repetir el apartado anterior, pero ahora el fallo a comprobar es si la señal de


control Jump tiene este fallo.

3) Usando un único test como el descrito en el primer apartado anterior, podemos


testear fallos en varias señales, pero habitualmente no en todas ellas. Describe
una serie de tests para chequear este fallo en todas las salidas de los multi-
12 TEMA 1. DISEÑO DE LA RUTA DE DATOS DE UN PROCESADOR

plexores (cada bit de salida de cada uno de los cinco multiplexores). Intenta
hacerlo minimizando el número de instrucciones utilizadas para testear.

Solución en página 69

6. Para el cauce de la gura 1.1 y las siguientes instrucciones:

a lw 1, 40(6)
b Label: bne 1,2, Label

a ) ¾Cuál será el valor leído desde la memoria de instrucciones?

b ) ¾Qué número de registro se proporciona a la entrada Lectura Registro 1? ¾Real-


mente se llega a leer el registro? ¾Y para la entrada Lectura Registro 2?

c ) ¾Qué número de registro se proporciona a la entrada Registro de Escritura? ¾Real-


mente se escribe el registro?

Solución en página 69

7. Supongamos las siguientes latencias para cada componente del cauce de la gura 1.1:

I-Mem Add Mux ALU Regs D-Mem Sign-extend Shift-left-2 ALU Ctrl
a 400ps 100ps 30ps 120ps 200ps 350ps 20ps 0ps 50ps
b 500ps 150ps 100ps 180ps 220ps 1000ps 90ps 20ps 55ps

a ) Para evitar hacer más largo el camino crítico de la ruta de datos, ¾cuánto tiempo
puede tardar la unidad de control en generar la señal MemWrite ?

b ) ¾Qué señal de control de la gura tiene más margen y cuánto es ese margen, para
no estar en el camino crítico?

c ) ¾Qué señal de control de la gura tiene menos margen y cuánto es ese margen,
para no estar en el camino crítico?

Solución en página 69

8. Supongamos que la unidad de control necesita los siguientes tiempos para generar las
correspondientes señales de control::

RegDst Jump Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite


a 720ps 730ps 600ps 400ps 700ps 200ps 710ps 200ps 800ps
b 1600ps 1600ps 1400ps 500ps 1400ps 400ps 1500ps 400ps 1700ps

a ) ¾Cuál es el tiempo de ciclo del procesador?

b ) Supongamos que se pudiera acelerar la generación de las señales de control, pero


dicha aceleración supusiera un coste de 1e por cada 5ps de mejora. En ese caso,
¾qué señal de control mejorarías y cuánto para maximizar las prestaciones? ¾Cuál
sería el coste (por procesador) de esa mejora?
13

c ) Si el procesador fuera ya demasiado caro, en vez de pagar para acelerarlo como se


ha propuesto en el apartado anterior, podríamos plantearnos minimizar el coste sin
afectar a las prestaciones. Supongamos que podemos usar lógica más sencilla para
implementar las señales de control, ahorrando 1e en el coste del procesador por
cada 5ps que se aumenta la latencia de cada señal de control. En ese caso, ¾qué
señales de control harías más lentas y cuánto para reducir el coste del procesador
sin decrementar las prestaciones?

Solución en página 69

9. Supongamos que el procesador de la gura 1.1 carga desde la memoria las siguientes
instrucciones:

Instrucción
a 10001100010000110000000000010000
b 00010000001000110000000000001100

a ) ¾Cuál es el valor de la salida de la unidad de extensión del signo y de la unidad


Shift left 2 para el salto?

b ) ¾Cuáles son los valores de las entradas de la unidad de control de la ALU para
estas instrucciones?

c ) ¾Cuál es el nuevo valor de la dirección del PC después de la ejecución de esta


instrucción? Describe el camino seguido para calcular este valor.

Solución en página 69

10. Supongamos que el contenido de la memoria de datos es todo ceros y que los registros del
procesador tienen los siguientes valores al comienzo de la ejecución de las instrucciones
del ejercicio anterior:

$0 $1 $2 $3 $4 $5 $6 $8 $12 $31
a 0 1 2 3 -4 5 6 8 1 -32
b 0 -16 -2 -3 4 -10 -6 -1 8 -4

a ) Para cada multiplexor, señala los valores de sus salidas durante la ejecución de las
instrucciones del ejercicio anterior para estos valores de los registros.

b ) Para la ALU y las dos unidades sumadoras del cauce de la gura 1.1, ¾cuáles son
sus valores de entrada?

c ) ¾Cuáles son los valores de todas las entradas del banco de registros?.

Solución en página 69

11. Añadir a la ruta de datos monociclo de la gura 1.1, los elementos y las señales de
control necesarios para añadir la instrucción addi (add inmediato).

Solución en página 69

12. Añadir a la ruta de datos monociclo de la gura 1.1, los elementos y las señales de
control necesarios para añadir la instrucción jal.
Solución en página 70
14 TEMA 1. DISEÑO DE LA RUTA DE DATOS DE UN PROCESADOR

13. Para el cálculo del rendimiento de la implementación monociclo suponemos que sólo
las unidades mayores tienen retardo, las demás son despreciables. Asumiendo que esos
retardos son las siguientes:

ALU: 2ns

Unidades de memoria: 2 ns

Fichero de registros (leer y escribir): 1ns

¾Qué implementación es más rápida?

a ) Una implementación en la que cada instrucción opera en un ciclo de reloj de du-


ración ja.

b ) Una implementación donde cada instrucción se ejecuta en un ciclo de reloj, pero


utilizando un reloj de duración variable, que para cada instrucción tiene la duración
que necesita.

Comparar el rendimiento suponiendo la siguiente proporción de instrucciones: 24 % de


cargas, 12 % de almacenamientos, 44 % de instrucciones de formato R, 18 % de saltos y
2 % de bifurcaciones.

Solución en página 71

14. Supongamos que tenemos una unidad de punto otante que requiere 8ns para la suma
en punto otante y 16ns para la multiplicación en punto otante. Los demás tiempos
de las unidades funcionales son como en el ejercicio anterior, y una instrucción en punto
otante es como una instrucción aritmético-lógica, excepto que utiliza la ALU en punto
otante en lugar de la ALU principal. Encontrar la relación de rendimiento entre una
implementación donde el ciclo de reloj sea diferente para cada tipo de instrucción y una
implementación donde todas las instrucciones tengan la misma duración del reloj.

Suponer que:

Todas las cargas tardan el mismo tiempo y suponen un 31

Todas los almacenamientos tardan el mismo tiempo y suponen un 21

Las instrucciones de formato R suponen un 27

Los saltos suponen un 5

La suma y la resta en punto otante tardan lo mismo y suponen un 7

La multiplicación y la división en punto otante tardan lo mismo y suponen un 7

Solución en página 72

15. Para el cálculo del rendimiento de la implementación monociclo suponemos que sólo las
unidades mayores tienen retardo, los demás tiempos son despreciables. Asumiendo que
los tiempos son los siguientes:

ALU: 2ns

Sumador para PC+4: X ns

Sumador para el cálculo de la dirección del salto: Y ns

Memoria: 2 ns

Fichero de registros: 1 ns
15

a ) ¾Cuánto debería ser el ciclo si X=3 y Y=3?


b ) ¾Cuánto debería ser el ciclo si X=5 y Y=5?
c ) ¾Cuánto debería ser el ciclo si X=1 y Y=8?

Solución en página 72

You might also like