Problemas Pipeline 2011_2

12
1 Problemas Pipeline 1. Considere dos procesadores, uno súper escalar y otro súper segmentado, el procesador superescalar es de grado 4 y el procesador supersegmentado divide su trabajo en 20 etapas. A B a. (2 puntos) Si el tiempo en el que se desarrolla una instrucción es el mismo para ambos, indique la relación de frecuencias de reloj entre ambos (la frecuencia de reloj de A es X veces mayor a la de B), así como la productividad de ambos (en teoría, A produce Z resultados por unidad de tiempo, en tanto que B produce W resultados por unidad de tiempo). b. (2 puntos) Discuta brevemente, las razones que lo llevarían a decantar por uno u otro esquema para trabajar con uno de los diseños, fundamentando claramente su respuesta. 2. Se tiene un computador A, con las fases típicas de ejecución de una instrucción, que se indican seguidamente, junto a los tiempos empleados en cada una de ellas: i) Búsqueda de la instrucción e incremento de PC. 10ns ii) Decodificación y lectura de registros. 8ns iii) Ejecución y cálculo de direcciones. 10ns iv) Acceso a memoria en las instrucciones de Load y Store. 10ns v) Escritura del resultado en registros. 7ns Y otro computador B con el mismo juego de instrucciones pero con un pipeline de 5 etapas, las correspondientes a las fases anteriores. La inclusión de los registros de desacoplo necesarios entre las etapas del pipeline introduce un retardo de 1ns en el paso de una etapa a la siguiente. Considere que cuando se tiene tiempos diferentes en las fases, al construir el pipeline se toma el tiempo más lento para todas las fases. Sabiendo que del total de las instrucciones ejecutadas en estos computadores: El 40% son del tipo A (Ej. Aritméticas o Lógicas). El 20% son del tipo B (Ej. Bifurcaciones). El 20% son del tipo C (Ej. Instrucciones Load). Y el 20% son del tipo D (Ej. Instrucciones Store). 20 etapas 1 pipeline 20 etapas 1 pipeline 5 etapas 4 pipelines 5 etapas 4 pipelines

Transcript of Problemas Pipeline 2011_2

Page 1: Problemas Pipeline 2011_2

1

Problemas Pipeline 1. Considere dos procesadores, uno súper escalar y otro súper segmentado, el procesador

superescalar es de grado 4 y el procesador supersegmentado divide su trabajo en 20 etapas.

A

B

a. (2 puntos) Si el tiempo en el que se desarrolla una instrucción es el mismo para ambos, indique la relación de frecuencias de reloj entre ambos (la frecuencia de reloj de A es X veces mayor a la de B), así como la productividad de ambos (en teoría, A produce Z resultados por unidad de tiempo, en tanto que B produce W resultados por unidad de tiempo).

b. (2 puntos) Discuta brevemente, las razones que lo llevarían a decantar por uno u otro esquema para trabajar con uno de los diseños, fundamentando claramente su respuesta.

2. Se tiene un computador A, con las fases típicas de ejecución de una instrucción, que se indican

seguidamente, junto a los tiempos empleados en cada una de ellas:

i) Búsqueda de la instrucción e incremento de PC. 10ns ii) Decodificación y lectura de registros. 8ns iii) Ejecución y cálculo de direcciones. 10ns iv) Acceso a memoria en las instrucciones de Load y Store. 10ns v) Escritura del resultado en registros. 7ns

Y otro computador B con el mismo juego de instrucciones pero con un pipeline de 5 etapas, las correspondientes a las fases anteriores. La inclusión de los registros de desacoplo necesarios entre las etapas del pipeline introduce un retardo de 1ns en el paso de una etapa a la siguiente. Considere que cuando se tiene tiempos diferentes en las fases, al construir el pipeline se toma el tiempo más lento para todas las fases. Sabiendo que del total de las instrucciones ejecutadas en estos computadores:

El 40% son del tipo A (Ej. Aritméticas o Lógicas).

El 20% son del tipo B (Ej. Bifurcaciones).

El 20% son del tipo C (Ej. Instrucciones Load).

Y el 20% son del tipo D (Ej. Instrucciones Store).

20 etapas

1 pipeline

20 etapas

1 pipeline

5 etapas

4 pipelines

5 etapas

4 pipelines

Page 2: Problemas Pipeline 2011_2

2

Calcule: c. (2.0 puntos) El tiempo medio de ejecución por instrucción en ambos computadores. d. (2.0 puntos) Ganancia (speedup) obtenida con el computador con pipeline.

Nota: Suponga que en el computador con pipeline todas las instrucciones pasan por todas las etapas. En el computador sin pipeline: las instrucciones tipo A no realizan acceso a memoria; los del tipo B, no realizan acceso a memoria ni escritura en registros; los del tipo C, necesitan todas las fases y las del tipo D, no realizan escritura en registros.

3. Considere un procesador que ejecuta las instrucciones por etapas. Cada etapa consume un ciclo

de reloj, y se ejecutan en forma secuencial según lo siguiente:

1ª: IF: Búsqueda de la instrucción, tiempo requerido 3ns 2ª: ID: Decodificación y búsqueda de operandos, tiempo requerido 3ns 3ª: EX: Ejecución y cálculo de la dirección efectiva, tiempo requerido 3ns 4ª: MEM: Acceso a memoria de datos, tiempo requerido 3ns 5ª: WB: Post escritura, tiempo requerido 3ns

Considere que el procesador ejecuta la siguiente sección de código en su lenguaje ensamblador:

LOAD R1, 10h ; R1 = 10h LOAD R2, 20h ADD R1, R2 ; R1 = R1 + R2 AND R3, R1 ; R3 = R3 & R1 LOAD R4, 16h LOAD R5, 23h XOR R4, R5

e. (2 puntos) Se pide, comparar el tiempo de ejecución del programa en un procesador sin

pipeline y otro procesador que si pueda ejecutar el mismo código pero segmentando el proceso de ejecución en 5 etapas.

f. (2 puntos) ¿A cuánto se reduciría el tiempo de ejecución del mismo código al ser ejecutado

en un procesador que cuente con una unidad de control que tenga la capacidad de emplear alguna técnica de adecuada para la ejecución fuera de orden?

4. Considere la segmentación básica de dos procesadores antiguos -contemporáneos entre sí- el

AMD Athlon K7 y el Intel Pentium III, en ambos casos de 10 etapas. Entre las mayores diferencias que podríamos identificar para ambos procesadores tenemos la cantidad de instrucciones x86 que pueden absorber a la vez, en el caso del Athlon K7 podían ser 3 instrucciones simultáneas, en tanto que el Pentium III únicamente 2. A nivel interno el Athlon K7 contaba con 9 unidades de ejecución paralelas para instrucciones internas sencillas, en tanto que el Pentium III con 5. Al hablar de instrucciones internas sencillas, nos referimos a instrucciones internas de estilo RISC que utiliza cada uno de estos procesadores (en diferentes “traducciones”) para ir resolviendo las instrucciones CISC propias del conjunto x86 con las que trabaja cada uno de estos CPU. Si hay algo que favorecía notablemente a los procesadores Intel era el hecho que la tecnología bajo la cual estaban fabricados, permitía la resolución de cada fase a una mayor velocidad, teniendo

Page 3: Problemas Pipeline 2011_2

3

como efecto una mayor frecuencia de reloj de trabajo, por el contrario, la cantidad de trabajo efectivo que realizaba por cada ciclo de reloj era un tanto menor que la de su competidor.

a. (2 puntos) ¿Es posible considerar como modelos comparables (en términos de rendimiento)

a un procesador AMD Athlon K7 de 800MHz contra un Intel Pentium III de 1GHz? Establezca y explique los criterios que le permitirían afirmar que la comparación anterior podría ser aceptada como válida (que minimizan el peso de la diferencia en frecuencia de operación sobre el rendimiento).

b. (2 puntos) Los sucesores de cada uno de estos procesadores, el Athlon XP de AMD y el Intel

Pentium 4 se diferencian fuertemente por su nivel de segmentación, pues en tanto que el núcleo de los primeros Athlon XP incorporaba un pipeline básico de 12 fases, el P4 contenía hasta 20 etapas. Explique, bajo esta perspectiva, cual de los dos caminos podría haber resultado como el más conveniente; sustente claramente su respuesta.

5. (4.0 puntos) El siguiente programa será ejecutado en un procesador RISC segmentado con 4

etapas: IF, ID, EX, WB.

R0 = R0 + 1

R3 = R0 + R3 R2 = R2 + 5

SALTO LOOP R0 = R0 + 1

R3 = R0 + R3

R2 = R2 + 5 LOOP:

R0 = R0 + 1 R3 = R0 + R3

R2 = R2 + 5

b. (2.0 puntos) Grafique la ejecución del programa en el procesador segmentado sobre un

diagrama de tiempo. c. (2.0 puntos) ¿Qué inconvenientes se presentan en la ejecución? ¿Cómo se solucionarían?

Explique.

6. Considere un programa que genera una secuencia de 500,000 instrucciones mayoritariamente

aritmético lógicas y sin considerar saltos. a. Determine el tiempo de ejecución del programa en un CPU segmentado en 5 etapas con un

ciclo de reloj de 1.5ns.

b. Determine el Speedup alcanzado, al ejecutar el mismo programa en un CPU superescalar grado 2, con 5 etapas por instrucción, con un ciclo de reloj de 2ns. Asuma que la ejecución del programa se realiza en ambos casos, sin detenciones de ningún tipo (no existen riesgos).

7. Acerca de la clasificación de arquitecturas CISC/RISC, se pide responder a las siguientes

preguntas:

Page 4: Problemas Pipeline 2011_2

4

a. (2 puntos) ¿Por qué razón aún cuando RISC se muestra más eficiente en términos de implementación y ejecución sobre un pipeline, es menos popular que la arquitectura CISC en el campo de computación de propósito general?

b. (2 puntos) ¿De qué manera los procesadores de la IA32, que son eminentemente ejemplos

de arquitectura CISC, pueden lidiar con los problemas de ineficiencia en la explotación de la infraestructura del pipeline inherente a la heterogeneidad de su juego de instrucciones? Detalle las técnicas empleadas para minimizar tales problemas.

8. Se tiene un computador con un procesador de 800 MHz y un pipeline de 5 fases (IF, ID, ALU,

MEM, WB), todas las fases tienen la misma duración equivalente a un T. Se desea ejecutar el siguiente programa en lenguaje ensamblador:

MOV AX, 2000H MOV BX, 4508 SUB AX, BX ; AX = AX - BX XOR BX, AX ; BX = BX (OR EXCLUSIVA) AX MOV DX, 73E2H OR DX, 0F05H MOV CX, 0A4F4H MOV AX, 1234 AND DX, CX ; DX = DX (AND) CX SUB CX, AX MOV CX, 2345 MUL CX ; DX:AX AX * DX ADD DX, 500

a) (1.5 ptos) Calcule el número de ciclos empleado y el tiempo de ejecución del programa. Justifique su respuesta empleando un gráfico.

b) (2.5 ptos) Proponga un arreglo para eliminar las dependencias de datos en el pipeline y así mejorar el tiempo de ejecución del programa. ¿Cuál sería el nuevo número de ciclos empleado y su tiempo de ejecución? Justifique su respuesta empleando un gráfico.

9. Dados los siguientes comentarios, justifique o niegue la afirmaciones que se indican en cada

párrafo. Deberá explicar claramente y al detalle las razones de su respuesta.

a) ( 1 punto ) Los microprocesadores "cableados": aquellos que tienen una unidad de control específicamente diseñada sobre el silicio para un juego de instrucciones concreto y los microprocesadores "microprogramados": aquellos que tienen una unidad de control genérica o prediseñada y que implementan un juego de instrucciones u otro dependiendo de un microprograma.

b) ( 1 punto ) Hoy día la microprogramación ha desaparecido prácticamente por completo. Esto se debe a los siguientes factores: Ya existen herramientas avanzadas para diseñar complejas unidades de control con millones de transistores litografiados. Estas herramientas prácticamente garantizan la ausencia de errores de diseño. Las unidades de control cableadas tienen un rendimiento significativamente mayor que cualquier unidad microprogramada, resultando más competitivas.

Page 5: Problemas Pipeline 2011_2

5

c) (1 punto ) Intel acaba de presentar la siguiente evolución de su microarquitectura, con nombre comercial Core i7 y conocida como Nehalem. Las novedades más importantes de los nuevos procesadores son el abandono de la arquitectura de bus que ha usado Intel desde el Pentium-Pro , para pasar a una nueva denominada Intel QuickPath Interconnect, QPI y la inclusión de los controladores de memoria en la propia oblea (cosa que ya hizo AMD hace tiempo). Core i7 es un microprocesador con un pipeline de ejecución de 14 etapas capaz de ejecutar instrucciones fuera de orden. Las unidades de ejecución no han cambiado respecto a la actual arquitectura Core 2. Ha vuelto la tecnología de hyperthreading (SMT), de tal manera que un micro con dos cores físicos, el sistema verá ahora como cuatro lógicos, lo que sea por no tener hardware ocioso.

10. La súper escalaridad es una característica que consiste en la replicación de unidades de ejecución

con el fin de mejorar la productividad y el rendimiento; de acuerdo a esta afirmación, se pide responder a las siguientes preguntas:

a. (1 punto) ¿Un procesador con dos núcleos (por ejemplo un Core2duo o un Pentium D) puede

ser considerado súper escalar? Sustente.

b. (1 punto) La multiplicidad de recursos permite la ejecución en paralelo de más instrucciones; ¿es esto el único hecho que garantiza que obtendremos así un mayor rendimiento o hace falta considerar otros aspectos?

c. (1 punto) Un procesador Pentium 4 con HT es un procesador capaz de ejecutar dos hilos independientes en un tiempo menor al que consumiría un procesador Pentium 4 que no cuenta con dicha tecnología; se pide explicar de un modo sencillo esta situación. Asuma que ambos procesadores operan a frecuencias de reloj muy similares.

d. (1 punto) ¿Es posible pensar que un procesador súper escalar y súper segmentado (tal como un Pentium D) es necesariamente un procesador de alto rendimiento y eficiencia? ¿qué argumentos podría ofrecer a favor o en contra de este argumento? (por ejemplo, como saldría de compararlo contra un Core2duo).

11. Responder brevemente:

a. (2 puntos) A partir del procesador Pentium II en adelante, el micro código de la unidad de control del microprocesador es accesible y reprogramable, permitiendo así corregir errores/optimizar los contenidos de la memoria de control de acuerdo a las diferentes revisiones que desarrolla el fabricante (Intel). Se denomina stepping al valor que corresponde con el número de la revisión (un valor de stepping más alto corresponde con una versión más refinada). La actualización se efectúa mediante un proceso especial que tiene lugar durante el arranque del computador (que viene a ser parte de los denominados BIOS update de las placas madre Intel), y para ello, se debe contar con la utilidad y los archivos binarios respectivos que se pueden descargar desde el sitio web del fabricante. En base a lo expuesto, se pide discutir los siguientes aspectos (1 punto c/u): i) ¿Es posible considerar que son potencialmente reprogramables las secuencias de control

de TODAS las instrucciones del microprocesador? Justifique su respuesta.

Page 6: Problemas Pipeline 2011_2

6

ii) Explique cuáles serían los beneficios (en términos de costo y de flexibilidad de la arquitectura) así como las posibles desventajas que encontraría en esta implementación.

b. (2 puntos) Un punto común a los procesadores más avanzados de la IA32 (Intel Architecture

32) es el empleo de las técnicas de predicción de saltos y ejecución especulativa. Al respecto, se pide indicar la razón de la implantación de tales técnicas detallando el funcionamiento de cada una de ellas (tiene que diferenciarlas).

12. Responder de manera sencilla y ordenada:

a. (1 punto) ¿Por qué razón se considera que una segmentación extrema (de muchas etapas) en el cauce de un procesador no necesariamente genera un incremento en el rendimiento directamente proporcional al número de fases en las que se divide el trabajo? Comente cada uno de los inconvenientes que pudiera citar.

b. (2 puntos) Explique claramente cada concepto así como la utilidad respectiva en cada caso:

Ejecución fuera de orden. Predicción de saltos.

Hyper threading.

Super escalaridad.

13. (3 puntos) El fragmento de programa que se muestra a continuación realiza un producto escalar

de dos vectores apuntados por los registros R1 y R2. El registro R4 contiene el tamaño del vector y R3 es un puntero al resultado de la multiplicación. Este programa ha sido codificado para ser ejecutado en un computador secuencial (sin pipeline). El registro R0 contiene el valor 0.

(1) BEQ R4, R0, $ERROR (2) AND R7, R7, R0 (3) AND R8, R8, R0 (4) BUCLE: LD R5, [R1] (5) LD R6, [R2] (6) MUL.dss R9, R5, R6 ; Multiplica R5 por R6 y deja el resultado en R10-R9 (7) ADD R7, R7, R9 (8) ADDC R8, R8, R10 (9) ADD R1, R1, #4 (10) ADD R2, R2, #4 (11) SUB R4, R4, 1 (12) BNEQ R4, R0, $BUCLE (13) ST R8, [R3] (14) ST R7, #4 [R3] Suponga que se desea ejecutar este programa en un computador con modelo de ejecución registro - registro y pipeline de instrucciones con las siguientes etapas:

1. Búsqueda de la instrucción e incremento del PC (BI).

Page 7: Problemas Pipeline 2011_2

7

2. Decodificación de la instrucción, lectura de registros y cálculo de las direcciones de salto (DLR).

3. Ejecución, evaluación de las condiciones de salto y cálculo de direcciones efectivas en las instrucciones LD (LOAD) y ST (STORE) (EJ).

4. Acceso a memoria en las instrucciones LD y ST (MEM). 5. Escritura del resultado en el banco de registros (ER). Este computador no dispone de ningún mecanismo hardware que permita detectar dependencias de datos, ni tiene mecanismos para realizar adelantamiento entre etapas (forwarding).

Se pide: Indicar entre qué instrucciones del programa del enunciado hay que añadir ciclos de espera software (instrucciones NOP) para que se pueda ejecutar correctamente en el computador con pipeline.

14. Hypertransport es una tecnología desarrollada por un consorcio de industrias, la cual se presenta

presta para múltiples aplicaciones de alta velocidad y facilidad de interconexión.

Considere el siguiente fragmento:

Applications for HyperTransport

Front-Side Bus Replacement

The primary use for HyperTransport is to replace the front-side bus, which is currently different for every type of machine. For instance, a Pentium cannot be plugged into a PCI Express bus. In order to expand the system, the proprietary front-side bus must connect through adapters for the various standard buses, like AGP or PCI Express. These are typically included in the respective controller functions, namely the northbridge and southbridge.

In contrast, HyperTransport is an open specification, published by a multi-company consortium. A single HyperTransport adapter chip will work with a wide spectrum of HyperTransport enabled microprocessors. For example, Broadcom HT-1000 and HT-2000 server controller devices can work with many different HyperTransport enabled microprocessors.

AMD uses HyperTransport as the Front-Side Bus in their Opteron, Athlon 64, Turion 64, and Phenom families of microprocessors.

Fuente: http://en.wikipedia.org/wiki/HyperTransport

a. (1 punto) Señale que ventajas apreciables podría encontrar en el uso de la tecnología

Hypertransport para aplicaciones de cómputo, dicho de otro modo, proponga situaciones para las que la aplicación de esta tecnología puede resultar conveniente.

b. (2 puntos) Los procesadores Phenom de AMD utilizan un bus HyperTransport 3.0, el cual es

totalmente compatible con las versiones anteriores y que le permite desarrollar una velocidad de transferencia pico de hasta 16GBps. Al respecto, considerando que procesadores como el Core 2 Duo de Intel en sus versiones de gama media para escritorio, puede desarrollar en su bus frontal de sistema hasta 6.4GBps, explique si realmente

Page 8: Problemas Pipeline 2011_2

8

velocidades tan altas son del todo explotables por computadores de propósito general. De no ser el caso, proponga aplicaciones en las que si sería requerido un throughput tan alto.

15. Considere la segmentación básica de dos procesadores antiguos -contemporáneos entre sí- el

AMD Athlon K7 y el Intel Pentium III, en ambos casos de 10 etapas. Entre las mayores diferencias que podríamos identificar para ambos procesadores tenemos la cantidad de instrucciones x86 que pueden absorber a la vez, en el caso del Athlon K7 podían ser 3 instrucciones simultáneas, en tanto que el Pentium III únicamente 2. A nivel interno el Athlon K7 contaba con 9 unidades de ejecución paralelas para instrucciones internas sencillas, en tanto que el Pentium III con 5. Al hablar de instrucciones internas sencillas, nos referimos a instrucciones internas de estilo RISC que utiliza cada uno de estos procesadores (en diferentes “traducciones”) para ir resolviendo las instrucciones CISC propias del conjunto x86 con las que trabaja cada uno de estos CPU. Si hay algo que favorecía notablemente a los procesadores Intel era el hecho que la tecnología bajo la cual estaban fabricados, permitía la resolución de cada fase a una mayor velocidad, teniendo como efecto una mayor frecuencia de reloj de trabajo, por el contrario, la cantidad de trabajo efectivo que realizaba por cada ciclo de reloj era un tanto menor que la de su competidor.

a. (2 puntos) ¿Es posible considerar como modelos comparables (en términos de rendimiento)

a un procesador AMD Athlon K7 de 800MHz contra un Intel Pentium III de 1GHz? Establezca y explique los criterios que le permitirían afirmar que la comparación anterior podría ser aceptada como válida (que minimizan el peso de la diferencia en frecuencia de operación sobre el rendimiento).

b. (2 puntos) Los sucesores de cada uno de estos procesadores, el Athlon XP de AMD y el Intel

Pentium 4 se diferencian fuertemente por su nivel de segmentación, pues en tanto que el núcleo de los primeros Athlon XP incorporaba un pipeline básico de 12 fases, el P4 contenía hasta 20 etapas. Explique, bajo esta perspectiva, cual de los dos caminos podría haber resultado como el más conveniente; sustente claramente su respuesta.

16. Los procesadores x86 de generaciones recientes (tales como el Intel Core 2 Duo, el AMD Athlon

X2, etc.) emplean la traducción de instrucciones x86 a instrucciones sencillas internas de un formato RISC, las cuales son ejecutadas en el núcleo más fácilmente sobre múltiples pipelines. Al respecto:

a. (2 puntos) Explique cuales serían las posibles optimizaciones para mejorar la ejecución de las

instrucciones de estilo RISC al interior del núcleo del procesador.

b. (2 puntos) Detalle el tipo de unidad de control que emplearían tales procesadores, señalando las razones en las cuales funda su respuesta, indique además que otras funciones aparte de la decodificación de instrucciones y la generación de las señales de control para las unidades de ejecución, cumplen las unidades de control en estos procesadores.

17. Considere el siguiente párrafo:

“… Con el nombre clave Nehalem, conocido así en todos los años que se lleva desarrollando por Intel, llega al mercado rebautizado como Intel Core i7, un procesador en versiones de dos, cuatro y ocho núcleos, disponible en velocidades que van desde los 2.66GHz hasta por encima de los 4GHz.

Page 9: Problemas Pipeline 2011_2

9

Construido con tecnología de 45nm, es el primer procesador Intel que consigue poner varios procesadores integrados de forma nativa en un solo chip compartiendo una misma memoria caché y procesador de instrucciones; asimismo, vuelve la tecnología Hyperthreading (HT).

Con Multi-Threading, tecnología ya utilizada con Pentium 4, para un sistema que tenga instalado el Intel Core i7 Octo, el sistema operativo reportará que tiene instalados 16 núcleos.

El viejo HyperThreading (HT), cambia de nombre con Intel Core i7 para llamarse Simultaneous Multi-Threading (SMT). Contará con 2 vías (2-way) que permitirá administrar hasta 16 hilos (threads) de ejecución en un procesador de ocho núcleos, que es lo que permite Intel Core i7 Octo, o en su defecto 8 hilos de ejecución en un procesador Quad core …”

En la parte final del mismo texto, se indica lo siguiente:

“Resulta algo contradictorio pues los procesadores multi-núcleos deberían suplir lo que se intentaba hacer con el HyperThreading en procesadores de un solo núcleo de la compañía años atrás”

Tomado y adaptado de: Blog de Informática y tecnología Javier Álvarez

Se pide:

a. (2 puntos) Explicar el principio básico del concepto de Hyperthreading (HT), indicando sus

ventajas como también sus limitaciones. b. (2 puntos) Comente el último párrafo citado, indicando su validez o falsedad. Justifique clara

y convenientemente su respuesta. 18. (5 puntos) Responda brevemente las siguientes preguntas:

a. (2.5 puntos) Una unidad de control microprogramada contiene secuencias dentro de una pequeña memoria; esta aproximación ahorra pasos en el diseño de un microprocesador puesto que se puede replicar el mismo con soporte para diferentes juegos de instrucciones o incorporar mejoras posteriores entre diferentes versiones de un mismo CPU sin modificar prácticamente nada del hardware. Sin embargo, el uso de tales unidades se vuelve menos común en los CPU de computadores de propósito general de alto rendimiento, al respecto, se pide indicar desde su punto de vista cuales podrían ser las razones por las cuales se viene produciendo este fenómeno. Considere que en nuestros días un procesador típico puede contener más de 400 millones de transistores y operar a frecuencias alrededor de los 3GHz.

b. (1.5 puntos) Considere el caso hipotético de un procesador que tiene dos unidades de

ejecución completas replicadas (súper escalar) por lo que teóricamente podría desarrollar dos instrucciones por ciclo de reloj. Asumamos también que, del código que se ejecuta, un 10% de instrucciones son de saltos condicionales, y que de estas, la unidad de predicción de saltos puede acertar en un 95% de casos. Así, un salto condicional en el que se da un acierto, se ejecutaría con el CPI ideal inicialmente planteado (0.5 ciclos por instrucción), caso contrario, como sabemos, la penalidad debida al salto será de N ciclos de reloj, siendo N el número de etapas del pipeline. Asuma que el resto de instrucciones que no son saltos condicionales se ejecutan también con el CPI ideal.

Page 10: Problemas Pipeline 2011_2

10

Calcule cuanto sería el CPI promedio de un procesador de 100MHz con un pipeline de 5 etapas en el cual las instrucciones corren sin detenerse (no hay dependencias de ningún tipo), utilice únicamente las condiciones planteadas.

c. (1 punto) Referido al caso b, compare cuanto sería el CPI medio del mismo procesador si es que ahora se segmenta en 10 fases (asuma segmentación ideal), indicando cuanto sería la nueva frecuencia de reloj y cuantas instrucciones por segundo podría desarrollar esta nueva versión de procesador.

19. (3 puntos) ¿Qué ventajas presentaría para las aplicaciones Anti-Hyper-Threading frente a HyperThreading? Fundamente su respuesta.

HyperThreading Fuente: http://es.wikipedia.org/wiki/HyperThreading La tecnología HyperThreading corresponde a un diseño de la empresa Intel, que permite al software que ha sido programado para ejecutarse en múltiples hilos (multi-threaded), procesar tales hilos en paralelo dentro del procesador, incrementando el uso de las unidades de ejecución del procesador. Esta tecnología consiste en simular dos procesadores lógicos dentro de un único procesador físico, el resultado es una mejora en el uso de recursos del procesador, y por lo tanto un incremento en la velocidad de las aplicaciones. Según Intel la mejora que se obtiene en determinados casos es de aproximadamente el 30%. De todas formas, las aplicaciones que pretendan aprovechar la capacidad de la tecnología HyperThreading deben haber sido programadas para utilizar múltiples hilos o de lo contrario no se conseguirá el paralelismo en la ejecución que se pretende. Resumiendo, HyperThreading le hace creer al usuario mediante el sistema operativo, que tiene 2 microprocesadores (si el sistema operativo lo soporta, como Linux con kernels SMP) cuando en realidad tiene físicamente un solo microprocesador. Además permite procesar las tareas más rápido. Debe considerarse que esta tecnología ha generado polémica entre muchas empresas desarrolladoras de software y hardware. Se cree que ha sido una de las innovaciones con poco sentido que obligan a los informáticos a sustituir sus equipos por otros con el Socket 775 ó 478 de Intel (con soporte HyperThreading), y el cual, no representa un gran avance en el ahorro de recursos, ni un aumento de velocidad significativo para los sistemas operativos. Anti-Hyper-Threading: ¿el arma secreta de Socket AM2? at007 / Martes, 20 de Junio de 2006 Fuente: http://www.tecnycenter.com/index.php?go=News&in=view&id=314 Hace bastante tiempo han aparecido rumores sobre una tecnología revolucionaria de AMD, conocida como "Anti-Hyper-Threading". Tal y como su nombre indica, el concepto es todo lo contrario a Hyper-Threading, y consiste en que varios núcleos de procesador, actúen como si fueran uno solo; multiplicando así – en teoría – el rendimiento, incluso para aquellas aplicaciones que no están optimizadas para ejecutarse sobre varios hilos. Inicialmente se pensaba que esta tecnología sería difícil de implantar en la vida real, ya que IBM estuvo trabajando durante muchos años en algo parecido a "Anti-Hyper-Threading" sin ningún éxito. Pero según la información que hemos obtenido de algunas fuentes cercanas a AMD, el "Anti-Hyper-Threading" podría estar mas cerca de lo que pensábamos.... Parece ser que esta tecnología ya está implantada en los procesadores Athlon 64 X2 para Socket AM2, y para activarla solo hará falta actualizar el driver de procesador y la BIOS de la placa base. Además

Page 11: Problemas Pipeline 2011_2

11

Microsoft debe sacar un parche para sus sistemas operativos para aumentar la efectividad de "Anti-Hyper-Threading". La verdad es que no sabemos si esta información es cierta, así que no podemos asegurar nada; pero como esto sea cierto, el procesador Intel Core 2 Duo (nombre código "Conroe") tendrá un duro contendor con unos precios realmente competitivos.

20. (3 puntos) “La súper segmentación lleva consigo a la necesidad de contar con dispositivos cada vez más veloces en tanto que la súper escalaridad demanda la integración de más componentes dentro de los micro chips”, explique las razones que fundan a cada una de las afirmaciones anteriores, e indique de acuerdo a su opinión, cuál de las dos características (súper escalaridad o súper segmentación) es más viable en su implantación en los CPU modernos. Justifique claramente su respuesta.

21. (5 puntos) Una de las características de la arquitectura Netburst (que corresponde con

procesadores Pentium 4) fue la de incorporar unidades ALU para manejo de enteros operando al doble de velocidad que la del resto del núcleo del procesador, tales ALU permitían mantener un flujo de micro operaciones internas del procesador bastante elevado, generando en teoría un mayor rendimiento. Los primeros núcleos para procesadores Pentium 4 “Northwood” fabricados con tecnología de 130nm contaban con pipelines de 20 etapas, en tanto que una versión posterior de tales núcleos “Prescott” fabricados con tecnología de 90nm, contaban con pipelines de 31 etapas.

a. (1.5 puntos) Considere que se habla de procesadores Pentium 4 con núcleos Northwood y

Prescott respectivamente, y en medio de tal discusión le piden responder según su parecer, cuál sería el núcleo con mayor frecuencia de reloj. ¿Qué respondería? Sustente adecuadamente

b. (1.5 puntos) Referido al caso (a) ¿es el núcleo con mayor frecuencia de reloj el de mejor CPI? Comente

c. (2 puntos) Ahora bien, le indican que para la época, uno de los problemas que enfrentó el

equipo de diseño del núcleo Prescott era que las ALU ya no podían duplicar en frecuencia al resto del núcleo, generando un potencial cuello de botella en este punto (entrega de micro operaciones con enteros), por lo que se decidió que en lugar de pensar en diseñar una ALU con el doble de velocidad que el resto del núcleo, se duplicara el número de tales elementos (doble de unidades ALU). Al respecto, se pide explicar: como alivia el problema tener ALU duplicadas y como trabaja tal solución, lo mismo que señalar la implicación que tiene esto en la implementación física del núcleo (comente acerca del área ocupada y del consumo de potencia)

22. Acerca de la segmentación del camino de datos en un procesador (pipeline), se pide responder:

a. (1.5 puntos) La unidad de control de procesadores x86 de reciente generación incorpora como parte de su trabajo el reordenamiento de las instrucciones a ejecutar (también denominada OOE – Out of Order Excecution), el renombramiento interno de registros de operación y la predicción de saltos. Explique brevemente, las razones por las cuales se implementan tales formas de operación, proponiendo en lo posible su respuesta en el marco de una situación hipotética de operación del microprocesador

Page 12: Problemas Pipeline 2011_2

12

b. (1.5 puntos) Cierta unidad de control emplea un esquema de predicción de saltos, basado en

el siguiente diagrama de estados:

Para este caso, considere a T como “taken” que indica que el último salto fue tomado y a N como “Not taken” que indica que el salto no fue tomado.

Así por ejemplo, si un salto condicional no fue tomado y el siguiente salto condicional que se presenta fue tomado, el estado actual sería NT y la predicción de la unidad de control, será que el próximo salto condicional que se presente, será tomado, en caso de que ello ocurra, pasaremos al estado TT, en caso de que la unidad de control falle en su predicción, pasaríamos al estado TN. Determine la efectividad (en porcentaje) de dicho esquema de predicciones para el siguiente programa, asuma que el estado inicial de la unidad de predicción es NN. Código Comentario mov ax, 0 ; registro ax = 0 SALTO: cmp ax, 100 ; compara ax con 100 jge SALIDA ; si ax es mayor o igual a 100, salta a SALIDA jmp SALTO ; regresa a SALTO SALIDA: mov ax, 4C00h ; fin de programa int 21h

Instrucción de salto condicional