Informe y Ejercicios_Capítulo 2

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA Arquitectura de comput

Views 144 Downloads 11 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

Arquitectura de

computadoras

Docente: Ing. Jesús Talavera Alumnos: -

Gutierrez Escapa, Xiomara Gómez Torres, Jhordam Maxwell Rojas Cardeña, Ivan Dolmos Becerra, Uriel F.

2019 – B

20162904 20150581 20123060 20010670

CAPITULO 2: SEGMENTACIÓN DE CAUCE Y PROCESADORES SEGMENTADOS En el presente capítulo se proponen y resuelven una serie de problemas relacionados con la segmentación de cauce (pipelining) y los procesadores segmentados. En primer lugar se presentan las expresiones que permiten estimar el rendimiento de un cauce, para pasar después al estudio de algunos de los problemas que pueden reducir el rendimiento de los procesadores segmentados, entre los que están los atascos por colisiones en el uso de recursos o riesgos estructurales, los atascos por dependencias entre datos o riesgos de datos, y los atascos debidos a los saltos o riesgos de control. Además de estos riesgos, también se describirá cómo se procesan las interrupciones. El capítulo termina con algunos problemas dedicados al diseño óptimo de unidades de control en cauces segmentados.

Es una técnica empleada en el diseño de procesadores, basada en la división de la ejecución de las instrucciones en etapas, consiguiendo así que una instrucción empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesándose simultáneamente. Con eso el sistema podría estar procesando varias tareas al mismo tiempo, aunque cada una de ellas estaría en una etapa distinta y por tanto en una fase diferente de su procesamiento.

Con la segmentación de cauce se consigue aumentar la velocidad a la que se procesan las funciones (aumentar el número de funciones terminadas por unidad de tiempo) en lugar de reducir el tiempo de procesamiento de la función. La idea de la segmentación de cauce no es otra que la de las cadenas de montaje típicas en la industria y cuyo origen se sitúa en la fabricación del modelo T de Ford. Así, si partimos de un circuito no segmentado que procesa una función determinada en un tiempo T, y se diseña un circuito segmentado cuyas etapas tardan un tiempo t (t 0) se introduce entre ellos un retardo de uso de carga(LOAD-USE-DELAY). Por lo tanto, entre la instrucción i e i+d debe haber dos instrucciones, con lo que d>2 y el retardo de uso de carga es de 2 ciclos. Para solucionar este problema  introducir instrucciones NOP.  caminos de bypass entre el registro LDMR y las entradas de la ALU.  Añadiendo cirucitería

2.4 EL ESPACIO DE DISEÑO DE LOS PROCESADORES SEGMENTADOS Se puede distinguir una serie de aspectos o dimensiones de diseño, que definen el espacio de diseño de los procesadores segmentados. Estos aspectos se pueden organizar en dos grupos: Los que se refieren a la forma según la cual está organizado el cauce. Los que aluden a la forma en que se resuelven las dependencias entre las instrucciones que se procesan.

2.4.1 Número de etapas Cuanto mayor sea el número de etapas de un procesador segmentado mayor será la ganancia de velocidad que podría proporcionar. Las dependencias ocasionan una desviación con respecto al funcionamiento ideal, haciendo que la complejidad de la gestión del cauce aumente a medida que tiene más etapas(es más profundo). En caso de instrucciones de salto condicional, más etapas entre la captación de la instrucción y la resolución de la condición que determina el salto, introduce más instrucciones incorrectamente. Salto retardado, habrá más huecos que llenar con instrucciones independientes. Ventajas : Más profundo= más paralelismo Desventajas: Aumenta la dependencia de datos y de control Etapas desbalanceadas

Aumenta el sesgo del reloj Se busca encontrar una profundidad de cauce más óptima, esto dependerá de la arquitectura y de las características de los programas que se ejecuten.

Ilustración 4: relación entre las prestaciones de un cauce y su profundidad 2.4.2 Subtarea que implementa cada etapa La distribución de las fases del procesamiento de una instrucción entre las distintas etapas del cauce es un aspecto esencial en el diseño del cauce. ARQUITECTURA RISC

Ilustración 5: Etapas en un procesador RISC

Otros procesadores con arquitectura RICS , tienen cinco etapas. La etapa añadida es la encargada de acceder a la memoria para captar o almacenar un dato, esta se encuentra tras de la etapa de ejecución(EXE).A pesar de que las instrucciones con resultado y operandos en registros no necesitan esta etapa, las 5 etapas del cauce simplifican el diseño del cauce. Ejemplos: Los procesadores segmentados no superescalares de MIPS(R2000, R3000, R4200,R4300, etc.) y en el HP-PA 7100. ARQUITECTURA CISC En la arquitectura CISC ,procesan instrucciones en las que el resultado y los operandos pueden estar tanto en los registros como en memoria.

Ilustración 6:Cause de CISC Ejemplos: Los 68040 y 68060 de Motorola La etapa C y la etapa EXE se juntan (EXE/C), así pues al ejecutar una instrucción, se usa la etapa (EXE/C), dos veces , una para acceder a la memoria y la segunda para realizar la operación.Para la instrucción de carga de memoria , se es necesario el correspondiente camino de bypass entre el registro donde se tiene el dato tras haberlo leído de la memoria al final del EXE/C y las entradas de las unidades funcionales que puede realizar la operación.Pero existe un mínimo de un ciclo de retardo de uso de carga . Ejemplo de retardo de uso de carga igual a un ciclo son :MIPS X, R2000, R3000,Power 1y 2, Power PC 601,etc. Retardo más de un ciclo : MC88100 (2), R4000 (2), Alpha 21064 (3).

Ilustración 7: Diagrama de bloques CISC 2.4.3 Distribución de la secuencia de etapas Se habla de cauce único o cauce multifuncional, dado que todas las instrucciones pasan por el mismo cause físico.

a) Cauce doble El cauce doble en el que se alarga el tiempo correspondiente a la unidad funcional más rápida, introduciendo retardos o burbujas, para que los caminos posibles del cauce, tengan la misma duración. b) Cauces múltiples Los cauces múltiples ejecutan simultáneamente varias operaciones, mejorando el rendimiento, pero no se podrá terminar mas de una instrucción por ciclo. 2.4.4 Uso de atajos o caminos de bypass (forwarding) La resolución de dependencias

de datos puede hacerse con el compilador , sin

necesidad de utilizar elementos del hardware específicos . Hay que introducir instrucciones de no operar a cambio de reducir prestaciones. Se puede introducir caminos de bypass. 2.4.5 Temporización sincrona/asincrona del cauce

Un cauce síncrono La temporización síncrona se puede realizar utilizando un reloj de una o dos fases no solapadas, evitando condiciones de carrera en los cauces. Ya que el movimiento de los datos se realiza atreves de los cerrojos(latches), que están alternativamente abiertos durante la fase 1 o la fase 2. Temporización asíncrona Líneas de sincronización entre etapas consecutivas para implementar un protocolo de conformidad (handshaking). Es un procedimiento más adecuado cuando no se conoce la duración de las etapas o esta puede cambiar según la instrucción que se procese. Ejemplo el procesado AMULET de la arquitectura ARM. 2.4.6 Resolución de dependencias a) Estática: Es responsabilidad del compilador, el cual ordena las instrucciones e inserta las instrucciones de no operar necesarias, evitando las dependencias de datos o control y minimizando los efectos perniciosos en las prestaciones del cauce. b) Dinámica: Se realiza durante la ejecución de las instrucciones a través de los elementos hardware como los camino bypass, la lógica para la detección de dependencias, etc. Que se incluyen en el cauce c) Combinada: Es aquella en la que el compilador mejora el rendimiento del hardware añadido para la resolución dinámica, reduciendo el efecto de sus posibles limitaciones.

2.5 OPTIMIZACION DE CAUCES FUNCIONALES Las unidades funcionales segmentadas: -La etapa de ejecución puede comprender más de un ciclo -Desaparece el problema de colisión

2.5.1 EJEMPLOS DE UNIDADES FUNCIONALES SEGMENTADAS Problemas: -cauces con etapas de distinta duracion -etapas que se utilizan de distinta forma por distintas

operaciones

-etapas que se reutilizan Ejemplos: 1) diseño de un acumulador sin segmentacion y con segmentacion (ganancia de velocidad que se puede conseguir) 2)multiplicador de datos de 6 bits

CAUCES LINEALES -

UNA OPERACIÓN DADA UTILIZA CADA UNA DE LAS ETAPAS DEL CAUCE SOLO UNA VEZ

-

TODAS LAS ETAPAS TIENEN LA MISMA DURACION

-

LAS ETAPAS SE UTILIZAN EN EL MISMO ORDEN POR TODAS LAS OPERACIONES

EXISTEN CAUCES QUE NO SE AJUSTAN A ESTE ESQUEMA DE CAUCE LINEAL, DADO QUE: -

ALGUNAS ETAPAS QUE SE VUELVEN A REUTILIZAR POR UNA MISMA OPERACIÓN

-

HAY ETAPAS QUE NECESITAN VARIOS CICLOS DE RELOJ

-

UNA MISMA OPERACIÓN PUEDE UTILIZAR MAS DE UNA ETAPA AL MISMO TIEMPO

-

EL ORDEN EN QUE SE VISITA LAS ETAPAS (Y LAS ETAPAS QUE SE VISITAN) PUEDE CAMBIAR DE UNA OPERACION A OTRA (CAUCES MULTIFUNCIONALES)

-

PUEDE EXISTIR DEPENDENCIAS ENTRE LAS OPERACIONES QUE SE INTRODUCEN EN EL CAUCE, DE FORMA QUE EL ORDEN EN QUE UNA OPERACIÓN VISITE LAS ETAPAS CAMBIE DINAMICAMENTE (CAUCES DINAMICOS MULTIFUNCIONALES)

LA PRODUCTIVIDAD DE UN CAUCE DEPENDE DE: (1) QUE EXISTA UNA FUENTE CONTINUA DE OPERACIONES A REALIZAR (2) QUE EXISTA UN PROCEDIMIENTO EFICAZ PARA LA PLANIFICACION DEL CAUCE. 2.5.2. DISEÑO DE UNA UNIDAD DE CONTROL PARA UN CAUCE SEGMENTADO Mejorar la planificación en un cauce estático, unifuncional o multifuncional, lo que nos permite alcanzar la máxima productividad de dicho cauce. PROCEDIMIENTO 1) Construir la tabla de reservas: con tantas como etapas tiene el cauce y tantas columnas como ciclos consume una operación al pasar a través de dicho cauce. 2) Obtener las latencias prohibidas (número de ciclos que separan dos marcas en la misma fila de la tabla de reservas (TR) formada por “n” columnas.

3) Formar el vector de colisión. Vector de colisión: es un vector de “m” bits con componente i-ésima igual a 1 si la latencia es prohibida y 0 si es permitida. Donde “m” es la máxima latencia prohibida, que será menor o igual a n-1 La latencia “n” será permitida porque la Tabla de Reservas solo tiene “n” columnas.

Donde las latencias prohibidas son 2 y 4. Las dimensiones del vector de colisiones también será 4 y estará dado por: Vc=(1, 0, 1, 0) 4) Generar el diagrama de estados: El vector de colisiones corresponde al estado inicial del cauce en el tiempo t1. El cauce cambia de estado al evolucionar el tiempo. Método de cálculo de estados: Se usa el desplazamiento de m-bits. Del Vector de colisiones.

5) Ciclos de latencia: Se obtienen a partir del diagrama de estados siguiendo caminos cerrados. Latencia Media de un ciclo: media de latencias que aparecen en un ciclo. Ciclo de latencia simple: aquellos en que el estado aparece solo una vez. Ciclo avaricioso: se parte de un estado y se toma el camino que implica iniciar la operación esperando el tiempo mínimo posible.

2.6 INTERRUPCIONES EN UN PROCESADOR SEGMENTADO En esta sección se introducen los aspectos relacionados con el procesamiento de las interrupciones y las excepciones en un procesador segmentado. El procesamiento de las interrupciones y las excepciones afecta negativamente al rendimiento del procesador segmentado al ocasionar una ruptura en el proceso continuo de ejecución de las instrucciones del programa. Interrupción El programa que se está ejecutando se suspende y pasa a ejecutarse el gestor e interrupción. En determinados tipos de interrupción el programa debe continuar ejecutándose, para hacer ello cuando se interrumpe el programa debe guardarse la información necesaria en el contador del programa para que esta pueda proseguir. Efecto de una interrupción en la ejecución de un programa. Interrupción por fallo de página:

Taxonomía de los distintos tipos de interrupciones 1.

Si son originadas por una fuente externa al procesador o parten del propio procesador.

2.

Si indican una condición de error que debe subsanar la rutina de gestión de interrupción o permiten acceder a algún servicio que proporciona el sistema operativo a través del correspondiente gestor de interrupción.

Cuatro tipos de interrupciones A. Generadas por el procesador para indicar una condición de error. Llamadas excepciones se dan por anomalías en las operaciones aritméticas como desbordamiento, y agotamiento o una violación ala protección de memoria. B. Generadas por el propio procesador para acceder a un servicio del sistema operativo. Los fallos de pagina, interrupciones del propio codigo, instrucciones no definidas. C. Generadas fuera del procesador para indicar una condición de error. Errores de hardware fallos de alimentación. D. Generadas fuera del procesador para acceder a un servicio del sistema operativo. Peticiones del servicio de dispositivos e/s, temporizacion.

Se presentan dos casos

Caso 1: la interrupción en la primera instrucción (fallo de página en la instrucción lw al acceder al dato en la etapa mem) ocurre despues que la excepción de la segunda instrucción (fallo de página al acceder a la instrucción add en if). Caso 2: las dos instrucciones del caso 1, coinciden en el mismo ciclo

Según se atiendan las interrupciones se menciona dos tipos de instrucciones: 1.

Interrupciones precisas Permiten garantizar que el proceso interrumpido continúe correctamente después de una interrupción no catastrófica, para ello debe cumplir según smith y pleszkun:  Todas las instrucciones que se emitieron antes de la instrucción indicada por el contador de programa (pc) almacenado (para continuar el proceso interrumpido) se han completado Todas las instrucciones que se emitieron antes de la instrucción indicada por el contador de programa (pc) almacenado (para continuar el proceso interrumpido) se han completado  Si la interrupción fue ocasionada por una instrucción, el contador de programa apunta a esa instrucción, que puede ejecutarse completamente o no.

En cualquiera de los casos una implementación precisa de las interrupciones hace que se demore más en atender la interrupción. 2. Interrupciones imprecisas  No tarda en atenderse la interrupción.  La instrucción que produce la interrupción se vuelve ejecutar. Tomando en cuenta los tipos de interrupciones mencionadas, concretamente:  Las interrupciones generadas por el propio procesador para indicar una condición de error se pueden implementar de forma imprecisa en la mayoría de los casos.  Las interrupciones generadas por el propio procesador para acceder a un servicio del sistema operativo deben implementarse en forma eficaz como interrupciones precisas.  Las interrupciones generadas fuera del procesador para acceder a un servicio del sistema operativo, una vez detectada la interrupción, se deja captar instrucciones, se terminan las instrucciones del cauce y se inicia el gestor de interrupción. Luego continuara apartar de la instrucción a la que apuntaba.  Las interrupciones generadas fuera del procesador para indicar una condición de error se pueden implementar de forma sencilla como el caso anterior.

2.7 FAMILIA DE PROCESADORES ARM

Se demonia arm (advanced risc machines) a una familia de microprocesadores risc diseñados por la empresa acorn computers, risc reduced instruction set computing - computador con conjunto de instrucciones reducidas. Las características de la arquitectura risc favorecen el diseño sencillo del cauce que puede integrarse en microprocesadores y facilitan el aprovechamiento eficiente del mismo. Desde el principio las propuestas de procesadores risc se planteaban como procesadores segmentados.

La segmentación de cause fue incorporada con repertorio de instrucciones cisc, como ejemplos tenemos los microprocesadores intel 80486 con cauce de 5 etapas y mc68040 de motorola con cauce de 6 etapas. Actualmente la gran mayoría de procesadores utilizados en escritorio y servidores son procesadores segmentados con microarquitecturas superescalares, vliw, etc.

El microprocesador 80486 de Intel El microprocesador mc68040 de motorola (1989) utiliza un cauce de 5 etapas (cisc) (risc) Historia familia de procesadores ARM

(1991) utiliza un cauce de 6 etapas

La familia de procesadores arm se dirige fundamentalmente al mercado de lo sistemas embebido. Sus primeros procesadores se desarrollaron en Inglaterra entre 1983 a 1991. La relativa simplicidad de los procesadores arm los hace ideales para aplicaciones de baja potencia. Una característica importante del repertorio de instrucciones arm, es la existencia de una codificación compacta. La arquitectura arm incorpora una serie de características de la arquitectura de berkeley. Arquitectura de tipo carga/almacenamiento con instrucciones de tamaño fijo de 32 bits y formato de instrucciones con 3 direcciones. Evolución de las prestaciones risc y cisc incluyendo la línea de nuevos procesadores risc representadas fundamentalmente por las arquitecturas arm y sh de hitachi. La potencia disipada por estas nuevas arquitecturas risc está en torno a uno o dos watios de forma que pueden incluirse en computadoras de bolsillo o dispositivos similares.

Versiones del repertorio de instrucciones 

V1 26 bits para direcciones de memoria.



V2 26 bits para direcciones de memoria.



V3 Direcciones de byte de 32 bits, introdujo instrucciones de multiplicación con operandos de 32 bits.



V4 Introdujo instrucciones de multiplicación con operandos de 64bits.



V5 v5e Realiza operaciones de multiplicación y acumulación de 16 bits (útiles en rutinas de procesamiento de señales digitales) y para la gestión de puntos de ruptura en la depuración de programas.

La existencia de una codificación compacta del conjunto de instrucciones arm de las versiones v4 y v5. (thumb) de formato de 16 bits. Desde el punto de vista del uso eficiente del cauce, es posible condicionar la ejecución de cualquier instrucción al cumplimiento de una condición que se comprueba en el cpsr (registro del estado actual del programa). Se trata de una característica poco usual en otras arquitecturas.

Diseño ARM Los diseños de arm suelen denominarse nucleos (cores), se proporcionan de dos formas: A. Como diseños detallados y específicos para un proceso de fabricación de circuitos determinado (macroceldas hardware). B. Como un módulo hardware descrito a través de un lenguaje de descripción de hardware (por ejemplo vhdl o verilog). Según la terminología arm, un núcleo de procesador incluye sólo el procesador y las conexiones para el bus de datos y direcciones correspondiente, mientras que un núcleo de cpu incluye además cachés y componentes para la gestión de memoria. Hasta la versión arm7, inclusive, los procesadores arm se implementaban a través de una arquitectura de 3 etapas, después los causes pasaron a tener 5 etapas. El diseño de

microprocesadores arm se ha convertido en uno de los más usados del mundo, desde discos duros hasta dispositivos de entretenimiento. Ventajas y Desventajas del ARM  Su principal ventaja se halla en el mínimo consumo por MIPs/ S, su alta eficiencia los ha llevado a usarcé actualmente en gran parte de dispositivos e incluso en servidores y con su aumento de banda ahora son un serio rival para AMD e Intel.  El principal problema que presentaba el cauce de tres etapas que utilizaban los procesadores de arm era el denominado cuello de botella de Neumann.  Cualquier computador de programa almacenado con una única memoria para datos y programas verá limitadas sus prestaciones por el ancho de banda de memoria.  El cauce de 3 etapas tiene que acceder memoria en todos los ciclos para captar instrucciones, si la memoria esta unificada no se puede acceder a la vez a una instrucción y a un dato (arm7).  Si hay que leer o escribir un dato no se pueden captar instrucciones en estos ciclos. Así pues, si se desea reducir el cpi habría que captar más de 32 bits en un ciclo, o separar la memoria en una memoria de datos y una memoria de instrucciones.

Procesadores ARM en la actualidad  Los procesadores arm se encuentran todo tipo de dispositivos tecnológicos, nuestros smartphones, tablets, smart tvs.  Los procesadores arm están optimizados para realizar instrucciones mucho más sencillas, a muy bajo nivel, el procesador sólo tiene que seguir los pasos para conseguir que el código funcione. Gracias a esto, los procesadores arm consumen mucho menos energía, lo que los convierte en los componentes idóneos para los soc que requieren de un menor consumo.

Términos y definiciones  Arm es una arquitectura risc (reduced instruction set computer/ordenador con conjunto reducido de instrucciones).  La segmentación de cauce (pipeline), técnica empleada en el diseño de procesadores, basada en la división de la ejecución de las instrucciones en etapas, consiguiendo así que una instrucción empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesándose simultáneamente.  Interrupción (interrupt request, en español «petición de interrupción») es una señal recibida por el procesador de una computadora, para indicarle que debe

«interrumpir» el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.  Cisc, (computadoras con un conjunto de instrucciones complejo/complex instruction set computer).  Vliw (very long instruction word/palabra de instrucción muy larga ).  Flops (floating point operations per second/operaciones de punto flotante por segundo)  Cpsr (current program status register/registro del estado actual del programa)  Mips (millions of instructions per second)  Tlb (translation lookaside buffer/ búfer de traducción anticipada)  Complex instruction set computer (cisc). En español (computadora de conjunto de instrucciones complejas)

EJERCICIOS Y PROBLEMAS 1. Un circuito que implementaba una operación en T = 450 ns se ha segmentado mediante un cauce lineal con cuatro etapas de duración t1 = 100 ns, t2 = 125 ns, t3 = 125 ns, y t4 = 100 ns respectivamente, separadas por un registro de acoplo que introduce un retardo d = 25 ns. a)

¿Cuál es la máxima ganancia de velocidad posible?

b)

¿Cuál es la productividad máxima del cauce?

c)

¿A partir de qué número de operaciones ejecutadas se consigue una productividad igual al 90% de la productividad máxima?

Solución: El tiempo de ejecución de n operaciones en el circuito original se calcula como:

T orig ( n )=n×T =450n ns

Para calcular el tiempo de ejecución en el circuito segmentado es necesario conocer su tiempo de ciclo, que se obtiene mediante la siguiente expresión t=max {t 1 , t 2 ,t 3 , t 4 }+d=max {100 , 125 , 125 ,100 }+25=150 ns

Una vez calculado el tiempo de ciclo, el tiempo de ejecución de n operaciones en el circuito segmentado se calcula usando la siguiente expresión: T seg ( n )=( k + ( n−1 ) )×t=( 4+ ( n−1 ) ) ×150=150 n+450 ns

Conocidos los tiempos de ejecución en los circuitos original y segmentado, se puede calcular la ganancia en velocidad que se obtiene usando el circuito segmentado con la siguiente expresión: S ( n )=

T orig ( n ) 450 n 3n = = T seg ( n ) 150 n+450 n+3

Para calcular la productividad del cauce aplicaremos la expresión: W ( n )=

n

9

n n×10 operaciones/ns= operaciones/s 150 n+450 T seg ( n ) 150 n+450 =

La ganancia y la productividad máximas del cauce se obtienen aplicando el límite cuando n → ∞ a la ganancia y a la productividad respectivamente: S max =lim S ( n ) =lim n→∞

n→∞

3n =3 n+3

9

n×10 =6 . 6×10 6 operaciones/s n→∞ 150 n+ 450

W max =lim W ( n )=lim n→∞

Por último, el valor de n para el que se alcanza un 90% de la productividad se calcula despejando n a partir de la igualdad: W ( n )=

n×109 =0 . 9×W max =6 . 6×10 6 operaciones/s 150 n+450

Lo que da como resultado n = 27. 2. Supongamos que las etapas de una unidad funcional segmentada S1, S2, S3, S4 y S5 se utilizan en el orden S1 , S3, S5, S1, S3, S4, S1, S3, S2, S5 ,S4, S2. ¿Cuál es la tabla de reservas?¿Cuál es el tiempo ( en numero de ciclos ) de latencia de inicio del cauce? ¿Cual es el vector de colisión inicial? ¿Si se supone el cauce vacío inicialmente y se introduce una operación, es posible introducir otra pasados 5 ciclos?¿Cuál es el numero mínimo de ciclos que hay que esperar? Etapas: S1, S2, S3, S4 y S5 Orden: S1, S3, S5, S1, S3, S4, S1, S3, S2, S5, S4, S2

¿Cuál es el tiempo ( en numero de ciclos ) de latencia de inicio del cauce? TLI= 12 Ciclos ¿Cuál es el vector de colisión inicial?

𝐂 = [𝟏𝟏𝟏0𝟏00] ¿Si se supone el cauce vacío inicialmente y se introduce una operación, es posible introducir otra pasados 5 ciclos? Latencias prohibidas: F=(3 ,6 ,5 ,7) No es posible introducir una instrucción a los 5 ciclos ya que es una latencia prohibida. ¿Cuál es el número mínimo de ciclos que hay que esperar? Tenemos ( 1,2,4 ) que son latencias NO prohibidas entonces el numero mínimo para esperar un instrucción seria de 1 ciclo. 3. Se pretende utilizar un cauce con cuatro etapas A, B, C, D, para aumentar el rendimiento en la ejecución de la unidad funcional F. las etapas se pueden utilizar según una de las dos secuencias S1 y S2 siguientes: S1: ABACACABD S2: ADBCCABD Si la duración de cada etapa (incluyendo el registro de acoplo) es de 50 ns, y la operación que implementa la unidad funcional F sin pipeline tarda 350 ns en ejecutarse. ¿Cuáles son los valores máximos para la productividad y la ganancia del cauce en cada una de las secuencias de utilización, S1 y S2? ¿Cuál de las dos posibilidades es mejor? ¿Por qué? S1 = X: ABACACABD

S2 = Y: ADBCCABD

F1=[6 4 2] C1=[101010]

F1=[6 4 2] C1=[101010] Diagrama de estados 1:

F2=[6 5 4 1] C2=[111001]

Diagrama de estados 2:

Productividad máxima:

Ganancia máxima:

Por lo que se concluye que la mejor posibilidad es S1 4. La tabla de reservas que se muestra a continuación corresponde a un cauce que puede ejecutar dos funciones A y B: Determinar las latencias prohibidas y construir el diagrama de estados para dicho cauce

5. Se tiene un cauce multifuncional con 4 etapas S1, S2, S3, S4, que permite ejecutar dos tipos de operaciones, A y B. Las instrucciones del tipo A recorren el cauce según la secuencia: S1, S3, S2, S3, S1, S4 Y las del tipo B según: S1, S4, S1, S2, S3, S4 ¿Cuál es la mínima latencia media para la secuencia de operaciones ABABABAB…? Si la frecuencia de reloj es de 1 GHz. ¿Cuál es la productividad máxima del cauce para esta secuencia?

¿Cuál es la mínima latencia media para la secuencia de operaciones ABABABAB…? Diagrama de estados: