preguntas cap2

16
CAPITULO 2 SEGMENTACION DE CAUCE Y PROCESADORES SEGMENTADOS SEGMENTACIÓN DE CAUCE Y PROCESADORES SEGMENTADOS 1. Existen una serie de condiciones que pueden hacer que un cauce no genere resultados correctos a no ser que se interrumpa su funcionamiento durante un número de ciclos determinado. ¿Cuáles son estas? (sección 2.2) Estas condiciones son riesgos o dependencias (hazard, en inglés) que pueden interrumpir el flujo continuo, en este caso, de instrucciones, a través del cauce. Se distinguen tres tipos: - Los riesgos de datos: Surgen por las dependencias entre los operandos y resultados de instrucciones distintas. - Los riesgos de control: Se originan a partir de las instrucciones de salto condicional que, según su resultado, determinan la secuencia instrucciones que hay que procesar tras ellas. - Los riesgos estructurales: También llamados colisiones, se producen cuando instrucciones diferentes pueden necesitar un recurso al mismo tiempo. - 2. Defina cual es el principio de segmentación y como es que mejora en las prestaciones (sección 2.2) Si una operación se ejecuta en un tiempo T. la implementación se basa en dividir la ejecución de la operación en una serie de fases que se realizan una después de la otra y rediseñar el programa de tal forma de que cada una de esas fases se ejecute independientemente de las otras, en cada una de las etapa que constituye el sistema segmentado. Así en un sistema segmentado con etapas que consumen un tiempo t, la ganancia de velocidad que se conseguiría en la ejecución de n operaciones vendría dada por: t n TLI T n T T n s segmentado segmentar * ) 1 ( * ) ( sin TLI=tiempo de latencia de inicio

Upload: marco-lopez

Post on 29-Dec-2014

16 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Preguntas Cap2

CAPITULO 2 SEGMENTACION DE CAUCE Y PROCESADORES SEGMENTADOS

SEGMENTACIÓN DE CAUCE Y PROCESADORES SEGMENTADOS

1. Existen una serie de condiciones que pueden hacer que un cauce no genere resultados correctos a no ser que se interrumpa su funcionamiento durante un número de ciclos determinado. ¿Cuáles son estas? (sección 2.2)

Estas condiciones son riesgos o dependencias (hazard, en inglés) que pueden interrumpir el flujo continuo, en este caso, de instrucciones, a través del cauce. Se distinguen tres tipos:

- Los riesgos de datos: Surgen por las dependencias entre los operandos y resultados de instrucciones distintas.

- Los riesgos de control: Se originan a partir de las instrucciones de salto condicional que, según su resultado, determinan la secuencia instrucciones que hay que procesar tras ellas.

- Los riesgos estructurales: También llamados colisiones, se producen cuando instrucciones diferentes pueden necesitar un recurso al mismo tiempo.

-2. Defina cual es el principio de segmentación y como es que mejora en las prestaciones (sección 2.2)

Si una operación se ejecuta en un tiempo T. la implementación se basa en dividir la ejecución de la operación en una serie de fases que se realizan una después de la otra y rediseñar el programa de tal forma de que cada una de esas fases se ejecute independientemente de las otras, en cada una de las etapa que constituye el sistema segmentado. Así en un sistema segmentado con etapas que consumen un tiempo t, la ganancia de velocidad que se conseguiría en la ejecución de n operaciones vendría dada por:

tnTLI

Tn

T

Tns

segmentado

segmentar

*)1(

*)( sin

TLI=tiempo de latencia de inicio

n=Operaciones consecutivas

T= Tiempo sin segmentar

3. Describa los términos productividad y eficiencia, los cuales caben considerar en un cauce segmentado. (Sección 2.2)

Page 2: Preguntas Cap2

- Productividad: Se define como el número de operaciones que se ejecutan opr unidad de tiempo, Por tanto, para una ejecución de n operaciones la productividad de un cauce viene dada por:

W(n)=n/(TLI+(n-1)×t)

Cuando el número de operaciones procesadas es lo suficientemente grande como para que el valor de TLI sea despreciable, el tiempo de procesamiento de una operación se aproxima al tiempo de una etapa.

- Eficiencia: Es la relación entre la ganancia de velocidad que proporciona el cauce y el número de etapas del mismo. Así, la eficiencia para un cauce con k etapas, que ha ejecutado n operaciones viene dada por:

E(n)=n×t/(k×[TLI+t×(n-1)])

Como usualmente T<TLI, la eficiencia máxima que se puede conseguir en un cauce será menor que 1, aunque el número de operaciones sea grande.

4. Cuando se tendría una ganancia máxima en un sistema segmentado (sección 2.2)

A medida que el numero de operaciones a procesar es mayor, la ganancia que se obtiene es mayor, tendiendo a Smax=T/t, cuando el numero de instrucciones tiende a infinito. Como t es el tiempo de procesamiento correspondiente a una etapa, cuando menor sea, mayor será la ganancia máxima alcanzable.

5. El numero de etapas en un cauce segmentado como influye en la ganancia: (sección 2.2)

Cuando el numero de etapas k sea mayor, mayor sera la ganancia que puede llegar a proporcionar un cauce ya que TLI=k x t ,En el caso ideal de que se verifique que T= TLI se tendría que:

De esta forma la ganancia máxima que se podría obtener en un cauce cuando el numero de operaciones ejecutadas en el mismo crece tiende a k, es decir es igual al numero de etapas del cauce .En general , la igualdad TLI no se cumple, y por lo tanto la ganancia máxima no seria igual al numero de etapas, pero si se puede afirmar que cuanto mayor sea la relación entre el tiempo de ejecución de la operación SIn segmentar y el tiempo de una etapa, mayor será la ganancia que se puede obtener.

6. Que determina el tiempo de cada etapa en un cauce segmentado (sección 2.2)

Page 3: Preguntas Cap2

Suponiendo que tenemos un cauce segmentado donde se determinan una serie de fases de diferente duración así cuando el cauce segmentado este funcionando, será la etapa mas lenta la que determine el ritmo al que las instrucciones pueden ir pasando de una etapa a la siguiente y por lo tanto, el tiempo de etapa t, será igual al de la etapa mas lenta.

T se obtiene como el máximo de los tiempos de procesamiento de las etapas mas el retardo asociado a la carga del registro.

7. Como afecta en el rendimiento al realizar un cauce segmentado en un cauce sin segmentar de diferentes tiempo se duración y como solucionar este problema (sección 2.2)

Es importante diseñar el cauce de manera que las etapas tengan duración similar. Si existe una etapa con una duración mayor que las otras, se convertirá en un cuello de botella que condiciona la duración de toda las etapas, y si su duración es próxima al cauce sin segmentar, la ganancia que se puede alcanzar es bastante limitada.

Para solucionar este problema seria el uso de copias de la etapa que constituye el cuello de botella y así alternar operaciones en las copia de la etapa mas larga.

8. Existen varias alternativas para evitar los problemas de los riesgos RAW. Cite alguna de ellas. (sección 2.3.1)

- La reorganización de código. Consiste en disponer de instrucciones que permitan retrasar una segunda instrucción respecto a una primera entre instrucciones con dependencias de tipo RAW. Esto para dar tiempo a que la primera haya almacenado su resultado antes de que la lectura de la segunda tenga lugar. En caso de que no existan instrucciones independientes, siempre es posible introducir una o varias instrucciones de no operar (NOP) para conseguir el retardo necesario. Con estas instrucciones se pierden ciclos sin terminar instrucciones, reduciéndose las prestaciones del cauce.

- El interbloqueo entre etapas. Por medio de elementos hardware en el cauce se detecta la existencia de dependencias. Si se detectase una, la instrucción que debe leer el resultado proporcionado por la primera se detiene el número de ciclos necesario. Con esta técnica se consigue que el programa termine correctamente, pero se siguen perdiendo ciclos sin terminar instrucciones, disminuyendo las prestaciones.

- Los atajos (bypass paths o forwarding). Con esta técnica se pueden aprovechar los elementos que, en la técnica de interbloqueo, detectan la existencia de dependencias entre instrucciones. Sin embargo, esta información se aprovecha para habilitar una serie de caminos (buses) que se añaden al cauce para permitir que los resultados de una etapa pasen como entradas a la etapa donde son necesarios en caso de dependencias, al mismo tiempo que siguen su camino para almacenarse en el banco de registros.

9. ¿Cómo se realizan las operaciones de carga (load) y almacenamiento de datos en memoria en las arquitecturas RISC y CISC? (sección 2.3.3)

Para realizar una carga (load) hay que determinar la dirección de memoria o effective address (EA).

- En los procesadores RISC, se puede lograr captando los contenidos de los registros donde está la información necesaria para calcular la dirección y calculando la dirección efectiva a partir de dichos contenidos.

Page 4: Preguntas Cap2

- En los procesadores CISC, es mas difícil determinar la dirección de memoria efectiva: se pueden necesitar captar los contenidos de varios registros y realizar cálculos diversos. Una vez que se ha determinado la dirección efectiva se envía a la unidad de gestión de memoria (MMU) para que la traduzca convenientemente y se acceda a caché.

En el caso del almacenamiento la situación es similar a la de una carga. La diferencia es que la dirección y el dato a escribir en memoria, que debe estar disponible, se envían en paralelo a la MMU.

10. ¿Por qué se producirá una colisión en el caso de acceso a memoria en la carga? (sección 2.3.3)

En el caso de una carga de un registro con un dato de memoria, de forma análoga al almacenamiento, la dirección de memoria se tendría al final de la etapa de operación con la ALU. En el siguiente ciclo se accedería a memoria para que al final de dicho ciclo, y suponiendo que el dato se tenga en el registro LDMR (Load Data Memory Register). Haría falta al menos un ciclo más para pasar el dato desde el registro LDMR al registro de destino final del dato, Rd. Esto provocaría una colisión con la instrucción que sigue a la instrucción de carga (suponiendo que no se trate de una instrucción de carga). Esta situación se ilustra a continuación. La instrucción de carga tiene la dirección de memoria en el registro R10, y cargará el resultado en R1. La dirección de memoria estará en el registro DMAR al final de la etapa de operación de la ALU, momento en el que puede iniciarse el acceso a memoria. Después de un ciclo, el dato de memoria estará en el registro LDMR. En el siguiente ciclo, tanto la instrucción de carga como la instrucción que le sigue (una substracción) necesitaran acceder al banco de registros para escribir en R1 y en R2, respectivamente. Como sólo tenemos un puerto de escritura, se producirá una colisión.

LOAD R1, R10 Ж

SUBB R2, R3, R4

11. ¿Qué es el retardo de uso de carga? (sección 2.3.3)

O load-use delay. Es el retardo que se necesita introducir entre una instrucción i, de acceso a memoria e i+d (primera instrucción tras la instrucción i, i+d>0) que necesita el dato proporcionado por la instrucción de carga i (en una dependencia RAW i e i+d), para que está ultima instrucción i+d pueda disponer del dato correctamente.

12. En las alternativas para evitar la colisión en la carga de un registro con un dato de memoria explicar aquellas que implican realizar cambios en la microarquitectura. (sección 2.3.3)

La dirección de memoria esta disponible(En el LOAD o en el STORE)

Espera que la memoria cachéProporcione el dato

Riesgo estructural: las dos instrucciones necesitan utilizar el mismo recurso al mismo tiempo

Page 5: Preguntas Cap2

Al respecto hay dos alternativas que implican realizar cambios en la microarquitectura. Una primera consiste en añadir más puertos de escritura, con lo que habría que rediseñar el banco de registros. La segunda es algo más económica en cuanto a necesidades hardware a añadir. Se trata de aumentar el cauce con una etapa más. Esta etapa sólo supondría un ciclo adicional para todas las instrucciones que no fuesen instrucciones de carga de memoria. Con esta modificación, la latencia de instrucciones aumentaría, pasándose de cuatro a cinco ciclos, pero lo que principalmente importa en un cauce es su rendimiento, es decir que pueda terminar una instrucción por ciclo.

13. ¿Cuáles son los problemas que surgen cuando se aumenta el número de etapas según el aspecto de organización del cauce de las dimensiones del diseño de un procesador segmentado? (sección 2.4)

- Cuantas más etapas tenga un cauce, mas instrucciones se estarán ejecutando en distintas fases de su ciclo máquina, y mas posibilidades se presentan de que aparezcan riesgos entre ellas.

- Aumentan los retrasos que se necesitan entre instrucciones dependientes para evitar el efecto negativo de los riesgos sobre las prestaciones del cauce.

- Es más difícil encontrar un número suficiente de instrucciones independientes.

- En el caso de instrucciones de salto condicional, cuantas más etapas haya entre la captación de la instrucción y la resolución de la condición que determina el salto y la actualización del contador de programa mas instrucciones pueden haberse introducido incorrectamente.

14. A que se denomina cauce profundo y de que depende la profundidad de cauce óptima. (sección 2.4)

Si tenemos en cuenta que la ganancia de velocidad que se puede conseguir en un cauce con k etapas tiende, precisamente, a ser igual a k a medida que el número de operaciones procesadas, n, crece. Según esto, cuanto mayor sea el número de etapas de un procesador segmentado mayor seria la ganancia que podría proporcionar. Sin embargo, la desviación con respecto al funcionamiento ideal que ocasionan las dependencias de datos, de control y estructurales hace que la complejidad de la gestión del cauce aumente a medida que tiene más etapas es decir el cauce es más profundo.

Precisamente uno de los argumentos más empleados para justificar las arquitecturas RISC frente a las CISC, era que puesto que las instrucciones RISC son más simples, su procesamiento segmentado se puede realizar en cauces con menos etapas, y se facilita el trabajo del compilador a la hora de generar código que optimice su rendimiento. Teniendo en cuenta estas dos tendencias contrapuestas, se puede pensar en una dependencia entre prestaciones, y según la cual existirá una profundidad de cauce óptima No obstante, es difícil encontrar este número óptimo, puesto que dependerá de la arquitectura y de las características de los programas que se ejecuten.

Page 6: Preguntas Cap2

15. ¿Cómo están organizadas las dimensiones de diseño de un procesador segmentado?

(sección 2.4)

Las dimensiones de un procesador para un mejor estudio están organizadas en dos grupos: las

que se refieren a la forma según la cual está organizado el cauce , y los que aluden a la forma en

que se resuelven las dependencias entre las instrucciones.

16. ¿Cuáles son las alternativas que presenta la etapa de ejecución en los procesadores con cauces dobles y como gestionan los problemas que se derivan de la diferente duración de las distintas unidades funcionales? (sección 2.4)

En el procesador segmentado, todas las instrucciones pasan por todas y cada una de las etapas del cauce. Se habla de cauce único o cauce multifuncional, dado que todas las instrucciones (aritméticas, de salto, de carga/almacenamiento) son procesadas por el mismo cauce físico. No obstante pueden darse distintas formas de organizar las etapas. Así en procesadores con cauces dobles en los que la etapa de ejecución presenta dos caminos alternativos. Uno es seguido por las operaciones en coma flotante, que pasan por una etapa (que puede durar incluso más de un ciclo) o varias etapas que implementan la operación aritmética en coma flotante correspondiente. El otro camino alternativo corresponde a la etapa o etapas que implementan las operaciones asociadas al resto de instrucciones (carga/almacenamiento, aritmética entera, procesamiento de saltos, etc.).

Entre las alternativas para la gestión de los problemas que se derivan de la diferente duración en las distintas unidades funcionales tenemos la introducción de retardos o burbujas en el cauce, de manera que todos los caminos posibles en el cauce tienen la misma duración. Otra alternativa es la escritura de resultados controlada por software. Esta técnica se ha utilizado fundamentalmente en cauces dobles, donde uno de estos se dedica a las operaciones de coma flotante y el otro al resto de las operaciones. En este caso, las instrucciones que utilizan la unidad funcional de coma flotante no pueden escribir sus resultados en memoria o en un registro de la arquitectura, sino que la escritura está controlada por software a través de una instrucción especifica que indica explícitamente que se realice la escritura.

17. Describa la temporización sincronía y asíncrona. (sección 2.4)

El paso de las instrucciones de una etapa a otra que se coordina mediante el uso de una señal de

reloj común a todas las etapas se llama cauce síncrono, la frecuencia de reloj debe establecerse

de forma que haya tiempo suficiente para que la etapa más lenta pueda completar la tarea. La

otra forma de coordinar el paso de las instrucciones de una etapa a otra se basa en utilizar líneas

de sincronización entre etapas consecutivas para implementar un protocolo de conformidad.

18. Cual seria la mejor forma de coordinar el paso de instrucciones teniendo en cuenta las limitaciones ocasionadas por los retardos de propagación de las señales en microarquitecturas complejas, cite algún ejemplo. (sección 2.4)

Page 7: Preguntas Cap2

La temporización asíncrona, la cual se basa en utilizar líneas de sincronización entre etapas consecutivas para implementar un protocolo de conformidad (handshaking). Aunque el ritmo al que finalmente funcionará el cauce también viene determinado por el retardo de la etapa más lenta, es un procedimiento más adecuado cuando no se conoce con exactitud la duración de las etapas o ésta se puede cambiar según la instrucción que se procese.

Como ejemplo se puede citar el procesador AMULET, que es una implementación asíncrona de la arquitectura ARM.

19. ¿De que forma resuelve el problema de dependencias de datos el uso de atajo o bypass?

(sección 2.4)

Introduciendo caminos de bypass de tal forma que estos pueden adelantar los datos necesarios

entre etapas para que las dependencias de datos no tengan ningún efecto en la realización de las

operaciones.

20. ¿Cuáles son las alternativas que se plantean para el segundo grupo de dimensiones del espacio de diseño del cauce de los procesadores segmentados? (sección 2.4)

Existen tres alternativas para la resolución de dependencias: estática, dinámica y combinada. La resolución estática de dependencias es responsabilidad del compilador, fundamentalmente, que ordena las instrucciones (e inserta las instrucciones de no operar necesarias) de forma que se eviten los problemas derivados de las dependencias de datos y control y se minimicen sus efectos perniciosos en las prestaciones del cauce. La resolución dinámica se realiza durante la ejecución de las instrucciones a través de los elementos hardware (caminos de bypass, lógica para la detección de dependencias, etc.) que se incluyen en el cauce. Por supuesto, también es posible utilizar una estrategia combinada 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.

21. A que se denomina cauce lineal, y cuales son los criterios que cumplen los cauces que no se ajustan al esquema de cauce lineal. (2.5.1)

Los cauces lineales son aquellos en los que una operación dada utiliza cada una de las etapas del cauce sólo una vez, todas las etapas tienen la misma duración y se utilizan en el mismo orden por todas las operaciones. Existen cauces que no se ajustan al 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 más de una etapa al mismo tiempo.

- El orden en que se visitan las etapas (y las etapas que se visitan) puede cambiar de una operación 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 dinámicamente (cauces multifuncionales).

Page 8: Preguntas Cap2

22. ¿ Porque en el multiplicador en multiple precision y en la unidad aritmetica TI-ASC existen cauces que no se ajustan a este esquema de cauce lineal?

Esto es debido a 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 visitan las etapas ( y las etapas que se visitan)puede cambiar de una operación a otra (cauces multifuncionales)

Pueden 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 dinámicamente ( cauce dinámicos multifuncionales)

23. Teniendo en consideración la iniciación de las tareas, ¿Cuál es la diferencia entre un cauce estático y un cauce dinámico? y ¿A que se denomina estrategia avariciosa? (sección 2.5.2)

Una vez iniciada una tarea en un cauce estático, su patrón de flujo es fijo. Una iniciación se refiere al comienzo de la evaluación de una sola función. Cuando dos o más iniciaciones intentan utilizar la misma etapa al mismo tiempo, se produce una colisión. Así el problema de secuenciar los trabajos es el de planificar adecuadamente las tareas que esperan en cola su iniciación, con el objetivo de evitar colisiones y lograr una productividad alta. La tabla de reservas identifica el patrón de flujo espacio-tiempo de un dato completo a través del cauce para la evaluación de una función. En un cauce estático, todas las iniciaciones se caracterizan por la misma tabla de reservas. Por otra parte, en un cauce dinámico, las sucesivas iniciaciones pueden estar caracterizadas por un conjunto de tablas de reservas, una por cada función que se evalúa.

El número de unidades de tiempo entre dos iniciaciones se denomina latencia, y es un valor entero positivo. Para un cauce estático, la latencia vale generalmente uno, dos o más de dos. Sin embargo, en los cauces dinámicos se admite latencia cero entre instrucciones diferentes. La secuencia de latencias entre iniciaciones sucesivas se denomina secuencia de latencias. Una secuencia de latencias que se repite se denomina ciclo de latencia. El procedimiento utilizado para elegir una secuencia de latencias se denomina estrategia de control. Una estrategia de control que minimiza siempre la latencia entre la iniciación actual y la iniciación inmediata anterior se denomina estrategia avariciosa (greedy). Una estrategia avariciosa no tiene en cuenta las iniciaciones futuras.

24. ¿Por qué son importantes los ciclos avariciosos e indique el procedimiento para determinarlos? (sección 2.5.2)

Los ciclos simples son aquellos ciclos de latencias en los que cada estado aparece una sola vez por cada iteración del ciclo. Un ciclo simple es un ciclo avaricioso si cada latencia contenida en el ciclo es la mínima latencia de un estado en el ciclo. Una buena secuencia de iniciación de tareas debería incluir el ciclo avaricioso.

Page 9: Preguntas Cap2

El procedimiento para determinar los ciclos avariciosos sobre el diagrama de estados es bastante sencillo. De cada nodo del diagrama de estados se va eligiendo el arco con mínima etiqueta de latencia hasta que se forme un ciclo simple cerrado. La latencia media de cualquier ciclo avaricioso nunca es mayor que el número de latencias del conjunto de latencias prohibidas, que es igual al número de unos en el vector de colisión inicial. La latencia media de cualquier ciclo avaricioso está siempre limitada inferiormente por la MLM.

25. ¿Qué es una interrupción por fallo de pagina y como atiende el sistema operativo esta interrupción? (sección 2.6)

Sal suspenderse el proceso que se estaba ejecutando entra el gestor de interrupción, que inicia la transferencia de DMA de la pagina desde disco a la memoria principal. Mientras se realiza la transferencia de la página, el sistema operativo puede ceder el control del procesador a otros procesos. A partir del momento en que la página se encuentra en memoria, el sistema operativo podrá ceder, cuando corresponda, el control del procesador interrumpido.

26. ¿Qué son las interrupciones precisas y cuales son las condiciones que se debe cumplir en el estado preciso en un cauce segmentado? (sección 2.6)

Las interrupciones precisas son las que permiten garantizar que el proceso interrumpido continúe correctamente después de una interrupción no catastrófica (aquella que no implica la finalización del proceso interrumpido). Para ello, el estado del procesador en el momento de aceptar la interrupción debe ser idéntico al que existiría si la ejecución fuese no segmentada. Ese estado se llama estado preciso, y debe cumplir las condiciones siguientes:

- 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.

- Las instrucciones posteriores al valor indicado por el PC almacenado no se ejecutan y no han cambiado el estado del procesador.

- Si la interrupción fue ocasionada por una instrucción, el contador de programa apunta a esa instrucción, que puede ejecutarse o no.

27. ¿Cómo se realiza la implementación de las interrupciones como interrupciones precisas en un cauce? (sección 2.6)

En primer lugar, hay que garantizar que el orden en que se atienden las interrupciones coincide con el orden de las instrucciones, más que con el orden en que se producen éstas. Para eso, en lugar de atender la interrupción en el momento en que se produce, se atienden las interrupciones únicamente en la etapa WB, de forma que si una instrucción da lugar a una interrupción se activa una marca que viaja con la instrucción a través de las etapas, junto con el código que identifica el tipo de interrupción. Si al llegar a la etapa WB una instrucción tiene activa la marca de interrupción, se atiende ésta, guardando el contador de programa que apunta a esta instrucción (si hay que volver a ejecutarla), o apuntando a la siguiente instrucción. Así, como la

Page 10: Preguntas Cap2

etapa WB es la última del cauce, las instrucciones que preceden a la instrucción afectada de la interrupción ya han terminado y las que siguen volverán a iniciarse tras la rutina que atiende la interrupción. Como vemos la forma de organizar las etapas en un cauce es decisiva a la hora de poder realizar una gestión eficiente de las interrupciones precisas.

28. Describa la taxonomía de distintos tipos de interrupciones y mencione brevemente los tipos de interrupciones. (sección 2.6)

Se deben considerar 2 dimensiones :

i. Interrupciones originadas por una fuente externa al procesador o parten del propio procesador.

ii. Si indican una condición de error o permiten acceder a algún servicio que proporciona el sistema operativo.

Según estas se pueden distinguir 4 tipos de interrupciones

a.- Generadas por el propio procesador para indicar una condición de error (EXCEPCIONES).

b.- Generadas por el propio procesador para acceder un servicio del Sistema Operativo

c.- Generadas fuera del procesador para indicar una condición de error.

d.- Generadas fuera del procesador para acceder a un servicio del Sistema Operativo

29. Según las características de cada uno de los tipos de interrupciones, ¿Cómo deben implementarse cada una de estas? (sección 2.6)

Se puede concluir que no todos los tipos de interrupciones se deben implementar como interrupciones precisas o imprecisas. Concretamente:

a.- Generadas por el propio procesador para indicar una condición de error: Se pueden implementar de forma imprecisa en la mayoría de casos ya que el programa interrumpido no suele poder continuar. En el caso del uso de un depurador, si deben implementarse como interrupciones precisas.

b.- Generadas por el propio procesador para acceder un servicio del Sistema Operativo: Deben implementarse de forma eficaz como interrupciones precisas, puesto que son necesarias para el funcionamiento correcto de todos los programas.

c.- Generadas fuera del procesador para indicar una condición de error: Una vez detectada la interrupción se deja de captar instrucciones, se terminan las instrucciones del cauce y se inicia la ejecución del gestor de interrupción. Luego se continúa a partir de la instrucción a la que apuntaba PC y que no se capto.

d.- Generadas fuera del procesador para acceder a un servicio del Sistema Operativo: Se pueden implementar de forma sencilla como en el caso anterior (o congelar el estado del procesador en el momento de la interrupción -del error- para que la rutina de gestión pueda analizar las causas )

Page 11: Preguntas Cap2

30. Señale una característica importante del repertorio de instrucciones ARM (sección 2.7)

Una característica es la posibilidad de ejecución condicional de cualquier instrucción (excepto algunas instrucciones de la versión v5T). Es decir, es posible condicionar la ejecución de cualquier instrucción al cumplimiento de una condición que se comprueba en el CPSR. La condición a comprobar se indica en la propia instrucción.

31. ¿Cuál es el principal problema que presenta el procesador ARM7TDMI? (sección 2.7)

El principal problema que presenta el cauce de tres etapas que utilizaban los procesadores de ARM inicialmente está relacionado con el denominado cuello de botella de Von 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 tres etapas tiene que acceder a memoria en todos los ciclos para captar las instrucciones y además hay que tener en cuenta los accesos a los datos. Por otra parte, si la memoria está unificada no se puede acceder a la vez a una instrucción y a un dato (si hay que leer o escribir un dato no se pueden captar instrucciones en esos ciclos). Así pues, si se desea reducir el valor de CPI habría que captar más de 32 bits (una palabra) en cada ciclo, o separar la memoria en una memoria de datos y una memoria de instrucciones.

32. Han aparecido cinco versiones diferentes del repertorio de instruccines ARM, v1 a v5. Describalas. (sección 2.7)

Las versiones v1 y v2 solo disponen de 26 bits para direcciones de memoria. En la versión v3 ya se introducen direcciones de byte de 32 bits y operandos de 32 bits. La versión v2 introdujo instrucciones de multiplicación con operandos de 32 bits. La versión v4, las de multiplicación con operandos de 64 bits. La versión v5 (y una ampliación de la misma llamada v5E) añade instrucciones para

normalizar números, para realizar operaciones de multiplicación y acumulación de 16 bits (muy útiles en las rutinas de procesamiento de señales digitales) y para la gestión de puntos de ruptura en la depuración de programas.

33. Explique la existencia de la etapa Issue (ID) en la optimización en el diseño de cauce de cinco etapas. (sección 2.7)

La lógica de decodificación tiene una complejidad tal que debe rediseñarse ocupando dos etapas en lugar de una para permitir aumentar la frecuencia de reloj. Por lo tanto, se tienen al final un cauce de seis etapas. Esta nueva etapa que se añade de lugar a la pérdida de un ciclo adicional sólo cuando se ejecutan instrucciones de salto que no se predicen correctamente. Además, como esta etapa nueva se encuentra antes de la etapa en la que se leen los registros, no da lugar a más posibles dependencias entre datos y, por lo tanto, no se necesitan nuevos caminos bypass. Si se incluyen recursos que implementen mecanismos de predicción de saltos se puede conseguir valores de CPI similares a los obtenidos con cauces de cinco etapas, pero a una frecuencia de reloj más elevada.