Departamento: Arquitectura de Computadores

Departamento: Arquitectura de Computadores Asignatura: AC PROBLEMA 1 A B C D E F X X X 0 1 X 2 X X X X 3 4 X 5 X 6 7 8 La figura mues...
15 downloads 3 Views 808KB Size
Departamento: Arquitectura de Computadores

Asignatura: AC

PROBLEMA 1 A B C D E F

X

X X

0

1

X

2

X X X

X

3

4

X 5

X 6

7

8

La figura muestra una tabla de reserva de un procesador segmentado. Contestad razonadamente a las siguientes cuestiones: a) Obtener la lista de latencias prohibidas. b) Deducir el límite inferior del MAL (valor de la latencia media alcanzable). c) Calcular el vector de colisiones inicial. d) Obtener y representar el diagrama reducido de estados (grafo simplificado). e) Listar todos los lazos ansiosos (ciclos “greedy”). f) Calcular el valor del MAL indicando para qué secuencia de iniciaciones se consigue. g) Calcular la utilización de cada etapa para la secuencia óptima de indicaciones. h) Diseñar un controlador de iniciaciones - Suponiendo datos siempre disponibles y - Suponiendo datos no siempre disponibles. i) ¿Es posible mejorar la utilización de las etapas? ¿hasta qué límite? ¿por qué? j) Proponer una sencilla inserción de retardos para que la nueva tabla de reserva tenga un MAL igual al valor reducido en el apartado (b).

PROBLEMA 2 En la figura se muestra parte del grafo de estados de una unidad funcional segmentada. Los estados A y B representados en la figura no tienen más salidas que las dibujadas. Determinar el vector de colisión inicial indicando claramente los pasos seguidos para obtenerlo.

A

B

1

2

4

PROBLEMA 3 Se dispone de 2 unidades funcionales segmentadas F1 y F2 con vectores de colisión inicial VCI1 = 110011 y VCI2 = 1000011 respectivamente. Se desea diseñar una unidad funcional segmentada F conectando directamente la salida de F1 con la entrada de F2.

F1

F2

F

a. Se pide:

1

Departamento: Arquitectura de Computadores

Asignatura: AC

a) ¿Cuál es la secuencia de latencias de iniciación permitidas en la entrada de F para conseguir la máxima velocidad de iniciaciones media? b) ¿Cuál es el MAL de F? c) ¿Se podría reducir el MAL de F introduciendo una secuencia de registros entre la salida de F1 y la entrada de F2?. Justificar la respuesta. (Nota: Una secuencia de registros es una secuencia lineal de etapas que no modifican los datos, solo los retardan). d) Suponiendo que siempre hay datos disponibles a la entrada de F, diseñar una unidad de control de entradas para F que consiga máxima velocidad media de iniciaciones. b. Suponer que se han diseñado los controladores de las entradas de F1 y F2 considerando que siempre hay datos disponibles en sus entradas. Estos controladores están diseñados de forma que obtienen la menor latencia media de entrada para cada una de la U.F. segmentadas. Las unidades de F1 y F2 junto con sus controladores se encadenan mediante un sistema como el que se muestra en la figura para poder asi implementar la función F.

Ctrl 2

F1

fifo

0 mx 1

F2

Shifter Ctrl 1

Se pide: a) ¿Tamaño de la memoria FIFO? b) ¿Cuál es el número de bits y contenido inicial del registro de desplazamiento? c) Completar el diseño para que una señal indique en que ciclos los datos de salida de F2 son válidos.

PROBLEMA 4 Para efectuar el control externo de entradas de datos a un pipeline, suponiendo que no siempre hay datos disponibles para iniciar una operación, se puede utilizar alguno de los tres diseños de la figura 1.

a. Responder justificadamente a las siguientes preguntas relacionadas con la utilización de los diseños de la figura 1 para conseguir máxima eficiencia cuando el vector de colisión inicial vale VCI = 110011. a) ¿Cuál debe ser el tamaño y el contenido inicial del registro de desplazamiento que aparece en el diseño 1? b) ¿Cuántos estados distintos (valores del registro de desplazamiento) puede tener el pipeline si se controla su entrada con el diseño 2? c) ¿Cuántos estados distintos (valores del registro de desplazamiento) puede tener el pipeline si se controla su entrada con el diseño 3? d) ¿Para qué valores de entrada a la tabla del diseño 3 (estados del pipeline) la salida de la tabla vale 1? b. La utilización eficiente de un diseño u otro se decidirá en función de varios parámetros, entre los cuales destacamos: el coste del hardware, el grafo de estados y la distribución de llegada de datos a la cola de entrada. a) ¿Bajo qué condiciones sería justificado elegir el diseño 1? b) ¿Bajo qué condiciones sería justificado elegir el diseño 3 frente al 2?

2

Departamento: Arquitectura de Computadores

Asignatura: AC

DISEÑO 1 FIFO IN

Datos disponibles Reg. De desplazamiento

SI “1” INICIAR

DISEÑO 2 FIFO IN V. Colision Inicial Datos Datos disponi

Comando carga

Reg. De desplazamiento Si “1” iniciar

Estado actual

DISEÑO 3

FIFO IN

3

Departamento: Arquitectura de Computadores

Asignatura: AC

Vec. Colision inicial Datos Comando Carga

Registro de desplazamiento Datos disponible Estado Actual

TABLA Si “1” Iniciar

PROBLEMA 5 Suponer un procesador segmentado con la siguiente estructura de segmentos:

Busqueda

Dec/lec.

Mem/Alu

Esc.

Registro

Lec/Esc.

Registro.

Los tipos de instrucciones que se ejecutan en este procesador son los siguientes: oper Ri, Rk, Rj Ri < -- Rk + Rj load Ri, Rk, Rj Ri < -- Mem (Rk) Rknuevo < -- Rkviejo + Rj store Ri, Rk, Rj Mem(Ri) < -- Rj Rinuevo < -- Riviejo + Rk br R0, desp1, desp2, cond salta a la instrucción cuya dirección esté en R0viejo si se cumple la f condición que ha establecido una instrucción anterior, sino sigue en secuencia. En cualquier caso: R0nuevo < -- PC + desp1 R1 < -- R0nuevo + desp2 Pregunta: a) Indicar cuantos recursos son necesarios y en que etapas se utilizan para que en cualquier ciclo se pueda estar ejecutando cualquier combinación de instrucciones. Los registros R0, R1 y PC no pertenecen al banco de registros generales. Recursos a considerar: caminos de acceso a memoria caminos de acceso al banco de registros (lectura y escritura) caminos de acceso a los registros R0, R1, y PC (lectura y escritura) ALU y sumadores NOTA: un recurso se ocupa durante todo un ciclo.

PROBLEMA 6 El lenguaje máquina de una determinada arquitectura segmentada dispone de las siguientes instrucciones: OP Rf1 Rf2 Rd (Op. arit/log con operandos en registros)

4

Departamento: Arquitectura de Computadores

Asignatura: AC

OP Rf1 MEM Rd (Op. arit/log con un operando en memoria) LOAD Rd MEM STORE Rf MEM JMP offset (salto incondicional) JMPC Rf1 Rf2 offset (comparación y salto R-R) JMPI Rf1 MEM offset (comparación y salto R-M) Rf1, Rf2 y Rd son registros, MEM se compone de un registro base *falta parte de la fotocopia.

PROBLEMA 7 Queremos diseñar un procesador con el siguiente formato de instrucciones.

Código de Operación

R1

R2

R3

donde S3 es un registro o una constante. Los tipos de instrucciones que soporta son los siguientes: a) Aritméticas R1 = R2 op S3 b) Acceso a memoria (load, store) - load: R1 = Mem (R2 + S3) - store: Mem (R2 + S3) = R1; S3 es un constante c) Saltos condicionales - Si cond (R1 - R2) entonces PC = PC + S3; S3 es una constante La arquitectura tiene los siguientes recursos: a) Un conjunto de registros (tiempo de acceso 25 ns). b) Una ALU (tiempo de cálculo 35 ns). c) Para acceder a la memoria debe de enviarse en primer lugar la dirección (15 ns) y posteriormente se efectua el acceso (50 ns). d) La búsqueda de instrucciones se efectua en un tiempo de 50 ns (se incluye el tiempo de enviar la dirección a memoria). e) Existe un sumador que permite efectuar las operaciones asociadas con el PC (incremento y suma con S3) en un tiempo de 10 ns. f) La evaluación de la condición se efectua en 5 ns. Preguntas: a. Proponer un diseño segmentado del procesador de forma que se ejecuten el mayor número de instrucciones de forma concurrente. a) Indicar las operaciones que deben de efectuarse en cada ciclo. b) ¿Cuál es el tiempo de ciclo? (Nota: algún recurso puede utilizarse dos veces en un ciclo por la misma o distintas etapas si su tiempo de acceso o de cálculo lo permite) b. ¿Cuál es el número de caminos necesarios para acceder a memoria sin que existan conflictos (riesgos estructural) entre dos instrucciones cualesquiera? c. ¿Cuál es el menor número de buses necesarios para acceder al conjunto de registros? d. ¿Cuántos cortocircuitos se han de construir en el camino de datos entre las unidades funcionales (ALU, memoria) para resolver las dependencias de datos (riesgos de datos)? e. ¿Qué riesgos de datos no pueden resolverse mediante los cortocircuitos? f. ¿Cuál es el número de ciclos (retardo) que tarda en ser efectivo un salto condicional?

PROBLEMA 8 En la interpretación de una instrucción se pueden distinguir las siguientes suboperaciones: a) búsqueda de la instrucción (50 ns). b) decodificación y lectura de operandos (50 ns). c) escritura de registros (50 ns). d) acceso a memoria (100 ns). e) unidad aritmético lógica (50 ns). En paréntesis se ha especificado el tiempo que tarda cada suboperación. Partiendo de ellas se ha diseñado un procesador segmentado con cinco etapas a) B: búsqueda de la instrucción (1 ciclo). b) D/L: decodificación y lectura de operandos (1 ciclo). c) E: escritura de registros (1 ciclo). d) M: acceso a memoria (2 ciclos). e) A: unidad aritmético lógica (1 ciclo).

5

Departamento: Arquitectura de Computadores

Asignatura: AC

En paréntesis se especifican los ciclos de cada etapa. La funcionalidad de las etapas es la misma que la del procesador lineal explicado en clase. En este procesador existen tres tipos diferentes de instrucciones en función de como se utilizan las etapas. En la figura se indican las tablas de reserva para los distintos tipos de instrucciones.

B X D/L A M E 1

B D/L A M E

X X

2

3

X 4

X

B D/L A M E

X X X 1

2

3

4

X 5

X 6

X X X

1

2

3

X

X

4

5

Nótese que las instrucciones tipo load y store utilizan durante dos ciclos consecutivos la etapa M. Esto es, la memoria tiene un tiempo de acceso de 2 ciclos y no está segmentada. La unidad de control detecta riesgos estructurales y riesgos de dependencias de datos y tiene capacidad de bloquear el procesador hasta que los riesgos desaparecen. Además, puede indicarle a la etapa D/L que efectue la lectura de operandos tanto del banco de registros como de los cortocircuitos. Hay dos buses para leer los registros y un bus para escribir los registros. La escritura se efectúa durante la primera mitad del ciclo y las lecturas se efectúan en la segunda mitad del ciclo. Cualquier operación debe tener todos los datos que necesita al finalizar la etapa de D/L. Se pregunta: a) Dibujar un esquema simplificado (registros, ALU, M, no es necesaria la etapa de búsqueda) del camino de datos de este procesador identificando claramente las etapas. b) Indicar en que situaciones se debe bloquear el procesador y durante cuantos ciclos para eliminar los riesgos estructurales. c) Indicar en que situaciones, en las que aparecen riesgos debidos a dependencias de datos, se debe bloquear el procesador. Determinar el número de ciclos de bloqueo. d) Indicar el número mínimo de cortocircuitos necesarios para hacer desaparecer los riesgos debidos a dependencias de datos cuando sea posible. Justificar la respuesta indicando que tipo de combinaciones de instrucciones los utilizan. e) Dibujar otra vez el esquema de la pregunta a) e indicar de forma clara los cortocircuitos. f) Modificar la ocupación de las etapas de los tres tipos de instrucciones para conseguir: - una latencia de iniciación de instrucciones mínima y constante. - que no se produzcan riesgos estructurales. Indicar el valor de la latencia. Dibujar las tablas de reserva que son distintas al enunciado indicando que se hace en cada etapa e indicar que riesgos estructurales y riesgos debidos a dependencias de datos se han eliminado.

PROBLEMA 9 Sea un procesador segmentado lineal con las siguientes instrucciones: aritmético lógicas: Ri = Rj op Rk acceso a memoria load Ri, M (X (Rj)) store M (X (Rj)), Ri saltos if cond (Ri) then goto X + PC Dos posibles diseños segmentados para este procesador (PA y PB) son los siguientes PA

BUS BUS: EJ:

MEM: ES:

EJ

MEM

ES

búsqueda de la instrucción e incremento del PC decodificación delas instrucciones lectura de registros operación en UAL cálculo de la dirección efectiva resolución de los saltos acceso a memoria escribir en registros

PB

BUS

DL

A

Se ha separado EJ en dos etapas:

6

MEM

ES

Departamento: Arquitectura de Computadores DL: A:

Asignatura: AC

decodificación y lectura de registros el resto de EJ

Contestar para cada uno de los dos diseños PA y PB: a) Suponer que no hay implementado ningún cortocircuito. Hay dependencias de datos que pueden causar pérdidas de ciclos por bloqueo del procesador. Mostrar, para cada una de esas dependencias, un ejemplo con dos instrucciones consecutivas e indicar el número de ciclos que dura el bloqueo en cada caso. b) Contestar a las mismas cuestiones del apartado 1 suponiendo ahora que están implementados todos los cortocircuitos posibles. c) Suponiendo que el procesador usa la técnica del salto retardado, justificar cuál es la latencia del salto. d) Suponiendo, por el contrario, que el procesador usa mecanismos hardware de apuesta por salto tomado (efectivo) con lectura de dirección efectiva de salto en tabla BTB. Evaluar justificadamente el coste en número de ciclos perdidos en los 2 casos posibles (acierto o fallo en la apuesta).

PROBLEMA 10 Tenemos un procesador segmentado en el que instrucciones de salto son de tipo salto retardado (delayed branch) con latencia 2. Considerar el siguiente código máquina con 8 instrucciones, en el que todas las Si son sentencias de asignación: S1 etil: S2 S3 S4 IF condición THEN GO TO etil NOP S7 S8 Se desea optimizar el tiempo de ejecución de este programa en este procesador, para lo cual se propone reestructurar el código. Responder justificadamente a las siguientes preguntas: a) ¿En qué casos (condiciones en las dependencias entre instrucciones) es posible sustituir la sentencia NOP por la S3? b) Escribir el código reestructurado resultante en cada uno de los casos anteriores.

PROBLEMA 11 Un procesador segmentado tiene la siguiente estructura de segmentos: Busq Dec/lect Alu Mem Alu Esc. Regis. Regisl Resis. Se han implementado dos instrucciones de comparación y dos instrucciones de salto que funcionan de la siguiente forma:

Las instrucciones de salto originalmente implementan la técnica de salto retardado. Ahora bien, para aumentar el rendimiento se quiere comprobar si es posible implementar de forma sencilla la técnica de salto retardado con anulación. La anulación afecta a las instrucciones que se ejecutan entre la instrucción de salto y la instrucción a la que se bifurca. La anulación de una instrucción consiste en impedir que esa instrucción modifique el estado. Pregunta: Es posible implementar la técnica con el par de instrucciones?

7

Departamento: Arquitectura de Computadores

Asignatura: AC

a) CMP1 y BR1. b) CMP2 y BR2. Razonar las respuestas.

PROBLEMA 12 Tenemos un procesador segmentado, con un juego de instrucciones del cual solo nos interesan aqui las de cálculo, que son de la forma Rd