Está en la página 1de 27

Procesadores segmentados

1. PROCESADORES SEGMENTADOS ........................................................2


1.2. Introduccin ........................................................................................................................................ 2 1.3. Procesadores RISC frente a procesadores CISC ............................................................................ 2 1.4. Clasificacin de las arquitecturas paralelas .................................................................................... 2 1.5. Evaluacin y mejora del rendimiento de un computador .............................................................. 6 1.6. Caractersticas de los procesadores segmentados ....................................................................... 9 1.7. Arquitectura segmentada genrica (ASG) ..................................................................................... 10 1.7.1. Repertorio de instrucciones de la ASG ...................................................................................... 10 1.7.1.1. Aritmticas y lgicas ........................................................................................................... 11 1.7.1.2. Transferencia de datos ....................................................................................................... 11 1.7.1.3. Bifurcaciones y saltos incondicionales. Saltos condicionales. ........................................... 12 1.7.2. Implementacin de la segmentacin de instrucciones en la ASG ............................................. 12 1.8. Riesgos en la segmentacin ........................................................................................................... 14 1.8.1. Riesgos estructurales ................................................................................................................. 15 1.8.2. Riesgos por dependencias de datos .......................................................................................... 16 1.8.2.1. La reorganizacin de cdigo ............................................................................................... 16 1.8.2.2. El interbloqueo entre etapas ............................................................................................... 18 1.8.2.3. El adelantamiento (caminos de bypass oforwarding) ......................................................... 18 1.8.3. Riesgos de control ...................................................................................................................... 19 1.9. Planificacin dinmica: Algoritmo de Tomasulo .......................................................................... 22

Pgina 1

Procesadores segmentados

1. PROCESADORES SEGMENTADOS
1.2. Introduccin
Un procesador segmentado es capaz de procesar varias instrucciones simultneamente, aunque cada una de ellas puede encontrarse en una etapa distinta de su procesamiento. Dos etapas del RISC I (1982), Las 10 etapas del Pentium III. Las 20 31 etapas del Pentium 4 (2000-2005) segn modelo. Hasta las 14 etapas de los procesadores basados en la microarquitectura Intel Core (2006-2010).

1.3. 1.4. Procesadores RISC frente a procesadores CISC


Dcada de los aos 70, debido al alto coste por byte los computadores no disponan, en general, de grandes cantidades de memoria, se desarrollaron computadores con instrucciones complejas que permitieran realizar operaciones con cdigo reducido CISC. (Complex Instruction Set Computer - Computadores con Conjunto de Instrucciones Complejo).

La arquitectura tipo CISC dificultaba el paralelismo a nivel de instrucciones. Buscando aumentar la velocidad del procesamiento, se descubri la ejecucin de programas compilados con instrucciones simples (de complejidades similares a las microinstrucciones de los procesadores CISC) resultaban ser ms eficientes. Debido a que un procesador RISC tiene un conjunto de instrucciones simplificado no es necesario disponer de un hardware de control extremadamente complejo. Propone un conjunto de instrucciones sencillas con formatos fijos permitiendo ejecucin segmentada de las instrucciones (pipeline). Reduce el tamao de la CPU, dispone de ms espacio para ms recursos, por ejemplo, mayor cantidad de registros o de memoria cach.

Ventajas de un diseo RISC

Al ser la lgica de control ms simple, se facilita el diseo. Permite mquinas ms compactas y con menor consumo al reducirse el tamao de la CPU. Posibilita la segmentacin y el paralelismo en la ejecucin de instrucciones. Reduce los accesos a memoria debido a que los operandos se cargan en registros.

Para minimizar los riesgos, la arquitectura RISC plantea en su filosofa de diseo una relacin muy estrecha entre los compiladores y la propia arquitectura.

1.5. Clasificacin de las arquitecturas paralelas


La contribucin de la arquitectura al aumento de las prestaciones de los computadores ha venido dada por:
Replicacin de elementos: Unidades funcionales, procesadores, mdulos de memoria, etc. Segmentacin de cauce (segmentacin) (pipelining) Localidad espacial y temporal

Paralelismo

Pgina 2

Procesadores segmentados
SISD SI -- Single Instruction SD -- Single Data MI -- Multiple Instruction MD -- Multiple Data

Clasificacin de los tipos de computadores

SIMD MIMD MISD

Pgina 3

Procesadores segmentados EJEMPLO

Un SISD necesita 12 Intervalos. SIMD

Necesita tres intervalos de tiempo. MIMD

Necesita cuatro intervalos de tiempo.

- De datos.

Tipos de paralelismo

- Funcional.

Una misma funcin sobre datos diferentes. Las funciones, bloques, instrucciones, se ejecutan en paralelo.
En paralelo instrucciones. Ganularidad fina. (Cantidad de trabajo asociado a cada tipo de tarea candidata a la paralelizacin) En paralelo distintas iteraciones de un bucle o secuencias de instrucciones de programa. Ganularidad fina-media. Los distintos procedimientos se ejecutan simultneamente. Ganularidad media. Programas ejecutados en paralelo. Ganularidad gruesa.

- Nivel de instrucciones u operaciones (ILP, Instruction Level Parallelism)


Paralelismo funcional

- Nivel de bucle. - Nivel de funciones. - Nivel de programas

Pgina 4

Procesadores segmentados ALTERNATIVAS A PARA AUMENTAR LAS PRESTACIONES DE LOS PROCESADORES

Pgina 5

Procesadores segmentados

1.6. Evaluacin y mejora del rendimiento de un computador


Tiempo de respuesta: Tiempo que tarda el computador en procesar una entrada (programa, instruccin, etc.) Productividad (throughput): Nmero de entradas procesadas por unidad de tiempo.

Medidas para evaluar el rendimiento

Funcionalidad: Tipos de entradas diferentes que es capaz de procesar. Expansibilidad: Posibilidad de ampliar la capacidad de procesamiento aadiendo bloques a la arquitectura existente. Escalabilidad: Posibilidad de ampliar el sistema sin que esto suponga una devaluacin de las prestaciones. Eficiencia: Relacin entre el rendimiento obtenido y el coste que ha supuesto conseguirlo (eficiencia = rendimiento/ coste).

Ejemplos
Entradas MEMORIA Rendimiento Accesos de memoria Latencia de memoria. Ancho de banda. Escalabilidad. Entradas PROCESADOR Rendimiento Entradas COMPUTADOR Rendimiento Programas Tiempo de respuesta. Productividad.

Instrucciones CPIi CPI (medio) Frecuencia de reloj

MODELOS TCPU= Tiempo de CPU de un program. o tarea NI= N instrucciones CPI= N medio de ciclos por instruccin Tciclo= periodo de reloj del procesador = 1/f

CPIi= N medio de ciclos por instruccin de tipo i. NIi= N instrucciones de ese tipo PARALELISMO CPE= N medio de ciclos entre inicios de ejecucin de instrucciones. IPE= N medio de instruc. que se emiten

Noperaciones= N operaciones que realiza el programa. OPinstruccin= N medio de operaciones que puede codificar una instrucc. Pgina 6

Procesadores segmentados Ejemplos de valores caractersticos de CPE , IPE y CPI segn las microarguitecturas segmentadas, superescalares y VLIW.

Medida que puede variar con el programa Solo mide la velocidad de ejecucin de las instr., no es medida real de rendimiento.

No es medida adecuada para todos los programas.

p = rendimiento con la mejora Sp (speedup)

Pgina 7

Procesadores segmentados LEY DE AMDAHL p=Rendimiento con la mejora f = fraccin de tiempo de ejecucin en la mquina original en la que no se puede aplicar la mejora. Ejemplo
Si una mquina pasa un 25% de su tiempo procesando instrucciones de coma flotante y se mejora la mquina haciendo que esas instrucciones se ejecuten en la mitad de tiempo, esto es p = 2, entonces la ganancia que se puede obtener es

Es decir, la mquina mejorada solo es un 14% mejor. Por mucho que se mejore el recurso, la ganancia

ser siempre limitada por 1/f Ejemplo

Se desea mejorar el rendimiento de un computador introduciendo un coprocesador matemtico que realice las operaciones aritmticas en la mitad de tiempo. Cul sera la ganancia en velocidad del sistema para la ejecucin de un programa si el 60% del mismo se dedicase a operaciones aritmticas? Si el programa tarda 12 segundos en ejecutarse sin la mejora, Cunto tardar con la mejora? Ganancia: p=2 f= fraccin de tiempo sin mejora. Mejora el 60% del tiempo 1-0.6= 0.4 sin mejora

Tiempo con la mejora:

Pgina 8

Procesadores segmentados

1.7. Caractersticas de los procesadores segmentados


Procesador no segmentado

Procesador segmentado

Para que el tiempo de latencia del procesador segmentado sea el mnimo posible, es necesario que el procesador est equilibrado, es decir, que todas las subtareas en que se haya dividido la tarea total tarden en procesarse el mismo tiempo. La relacin de precedencia de un conjunto de subtareas T1, . , T17 que componen cierta tarea T, especfica para cada subtarea Tj que no puede comenzarse hasta que hayan terminado ciertas subtareas T i. Las relaciones de precedencia para todas las subtareas de T forman su grafo de precedencia. En el ejemplo de la Figura se ha supuesto que las tareas que se procesan en el cauce tienen un grafo de precedencia lineal. Esto significa que una subtarea Tj no puede comenzar hasta que todas las subtareas previas, es decir T i, i < j , hayan finalizado. A los procesadores segmentados que solo pueden procesar tareas con grafo de precedencia de este tipo se les denomina de cauce lineal.

Pgina 9

Procesadores segmentados

1.8. Arquitectura segmentada genrica (ASG)


Existen dos caractersticas importantes de los repertorios de instrucciones que permiten clasificar las arquitecturas de propsito general: El nmero de operandos que pueden tener las instrucciones aritmtico-lgicas. El nmero de operandos que se pueden direccionar en memoria en las instrucciones aritmtico-lgicas.

Las instrucciones aritmtico-lgicas de la ASG utilizan en total tres operandos y ninguno de ellos se referencia en memoria. A las mquinas en las que los operandos no se referencian en memoria se les denomina mquinas registro-registro o mquinas de carga/almacenamiento.

1.8.1. Repertorio de instrucciones de la ASG


Registros de la ASG Registros genricos Reg. Coma flotante 32 de 32 bits 32 de simple precisin, 32 bits 16 parejas de 64 bits Aritmticas y lgicas Transferencia de datos Bifurcaciones y saltos incondicionales Saltos condicionales R0 .. R31 R0 = 0

F0 .. F31 F0, F2, F4, .. F30

Tipos bsicos de instrucciones

Pgina 10

Procesadores segmentados
1.8.1.1. Aritmticas y lgicas

1.8.1.2.

Transferencia de datos

Pgina 11

Procesadores segmentados
1.8.1.3. Bifurcaciones y saltos incondicionales. Saltos condicionales.

1.8.2. Implementacin de la segmentacin de instrucciones en la ASG


1. 2. 3. IF (lnstruction Fetch): Lectura de la instruccin de la cach de instrucciones. ID (lnstruction Decoding): Decodificacin de la instruccin y lectura de sus operandos del fichero de registros. EX (Execution): Ejecucin de las operaciones si se trata de una instruccin aritmticolgica y del clculo de la condicin y de la direccin de salto si se trata de una bifurcacin o salto condicional. MEM (Memory access): Acceso a la cach de datos para lecturas (cargas) o escrituras (almacenamientos). WB (Write-Back results) : Escritura del resultado en el fichero de registros.

Etapas bsicas
4. 5.

Pgina 12

Procesadores segmentados

Organizacin lgica de la segmentacin de instrucciones de la ASG de cinco etapas.

Pgina 13

Procesadores segmentados
El tiempo total de ejecucin de la instruccin segmentada es ligeramente superior al de su equivalente no segmentada debido al tiempo que se consume en el control de la segmentacin. Los cerrojos o buffers de contencin La duracin de todas las etapas de la segmentacin es similar y viene determinada por la duracin de la etapa ms lenta. Los riesgos que se producen en la segmentacin y que introducen detenciones en el cauce.

Factores que determinan el tiempo de ejecucin de las instrucciones

1.9. Riesgos en la segmentacin


Riesgo: a la situacin que impide a una instruccin acceder a la ejecucin de sus etapas al depender de otra
anterior. Riesgos estructurales: Surgen de conflictos por los recursos, es decir, por insuficiencia del hardware.

Riesgos

Riesgos por dependencia de datos: Surgen cuando una instruccin necesita los resultados de otra anterior. Riesgos de control: Se originan a partir de las instrucciones de control de flujo (saltos y bifurcaciones).

Pgina 14

Procesadores segmentados
1.9.1.

Riesgos estructurales

Surgen de conflictos por los recursos, es decir, por insuficiencia del hardware.

La ASG no se presenta este inconveniente porque se dispone de dos memorias cach, una para instrucciones (I-cach) y otra para datos (D-cach). Otras situaciones de riesgos estructurales
No todas las etapas de la segmentacin tienen la misma duracin. Hay instrucciones ms complejas que otras

SOLUCIONES DUPLICAR LA UNIDAD FUNCIONAL PLANIFICACIN DE CDIGO

Pgina 15

Procesadores segmentados 1.9.2. Riesgos por dependencias de datos


Cuando dos instrucciones comparten algn dato

Clasificacin de los riesgos por dependencia de datos

Ejemplo instruccin i se ejecuta antes que la j Riesgo de tipo RAW (ReadAfter Write- Lectura Tras Escritura): instruccin j intenta leer un dato antes de que la instruccin i lo escriba Riesgo de tipo WAR (Write After Read- Escritura Tras Lectura), (antidependencia); instruccin j trata de escribir en su destino antes que ste sea ledo por la instruccin i Riesgo de tipo WAW (Write After Write - Escritura Tras Escritura) (dependencia de salida); instruccin j intenta escribir un operando antes de que ste sea escrito por la instruccin i.

Dependencias falsas

Para ASG solo existe el riesgo RAW


La reorganizacin de cdigo. El interbloqueo entre etapas. El adelantamiento.

Mtodos evitar riesgos RAW

1.9.2.1. La reorganizacin de cdigo CUANDO EL COMPILADOR RETRASA LA 2 INST. RESPECTO DE LA 1

1. AL NO REORGANIZAR CDIGO UNA DETENCIN (BURBUJA) DE 4 CICLOS 2. EL COMPILADOR INSERTA INSTRUCCIONES NOP

Pgina 16

Procesadores segmentados

IMPLICA UN COMPILADOR MS COMPLEJO Pgina 17

Procesadores segmentados
1.9.2.2. El interbloqueo entre etapas

Introducir elementos hardware en el cauce para detectar la existencia de dependencias

1.9.2.3. El adelantamiento (caminos de bypass o forwarding) Uso de los elementos que en la tcnica de interbloqueo permiten detectar la existencia de dependencias entre instrucciones. Esta informacin ahora se aprovecha para habilitar una serie de caminos (buses) que se aaden al cauce para permitir que los resultados de una etapa pasen como entradas a la etapa donde son necesarios en caso de dependencias RAW, al mismo tiempo que siguen su camino para almacenarse en el fichero de registros.

Detecta si hace falta algn resultado que se ha de dejar en un registro para la siguiente instruccin. En caso afirmativo, lo guarda en el registro, pero se lo suministra directamente a la ALU

Pgina 18

Procesadores segmentados 1.9.3. Riesgos de control


Un salto condicional, el valor del contador del programa puede incrementarse automticamente o cambiar su valor en funcin de que el salto sea efectivo o no efectivo. En la ASG la instruccin i es un salto efectivo entonces el PC no se actualiza hasta el final de la etapa MEM de la segmentacin.

Pgina 19

Procesadores segmentados

etiqueta

BEQZ R7,etiqueta

BEQZ

R7

Pgina 20

Procesadores segmentados Tcnica del salto retardado


Otra alternativa sera dejar que las instrucciones que se han captado prosigan su ejecucin en el cauce. En este caso, el compilador debera introducir en esos huecos instrucciones que se tengan que ejecutar antes de la instruccin destino de salto de forma que su efecto sea independiente de que el salto sea efectivo o no.

ORIGINAL

i1, i2 e i3 no influyen para el salto, por lo tanto se pueden cambiar de posicin. Mientras se codifica y ejecuta el salto (i4) se van ejecutando las i1, i2 e i3

Tcnica de predecir el salto como no efectivo

Tcnica de adelanto del clculo de la direccin (por prediccin)

Pgina 21

Procesadores segmentados

1.10. Planificacin dinmica: Algoritmo de Tomasulo


Planificacin esttica: limitacin de las tcnicas de segmentacin esttica es que emiten las instrucciones en orden. Planificacin dinmica: en la que el hardware reorganiza la ejecucin de la instruccin para reducir las detenciones mientras mantiene el flujo de datos y la consistencia del estado del procesador y de la memoria. Mediante la planificacin dinmica se comprueban los riesgos estructurales cuando se decodifica la instruccin. Este hecho conlleva que todava se mantiene el orden del programa, pero las instrucciones comienzan a ejecutarse tan pronto como todos sus operandos estn disponibles. De esta manera, el procesador segmentado realizara ejecucin de instrucciones fuera de orden, lo que implica terminacin fuera de orden. La planificacin dinmica tiene sentido cuando hay mltiples unidades funcionales y por eso hay que diferenciar entre distribuir las instrucciones hacia las unidades funcionales y comenzar su ejecucin. Es preciso desdoblar la etapa ID en dos fases: Decodificacin (ID, Instruction Decoding): Decodificacin de instrucciones y comprobacin de los riesgos estructurales. Emisin (II, lnstruction lssue): La instruccin espera hasta que no haya riesgos de tipo RAW y cuando estn listos todos los operandos fuente, se leen y se emite la instruccin hacia la unidad funcional.

Ejemplo de la ejecucin de un fragmento de cdigo sin planificacin y con planificacin dinmica.


Latencia de unidad de multiplicacin, 5 ciclos. Latencia de unidad de suma, 2 ciclos.

Figura 1.38: Diseo modificado de la unidad de coma flotante del IBM 360/91 con el algoritmo de Tomasulo.

Pgina 22

Procesadores segmentados

Dos unidades funcionales:


Suma de coma flotante. Multiplicacin/divisin de coma flotante.

Los buffers de coma flotante (FB). Los datos de memoria se cargan en uno de los 6 registros FB. Los buffers de almacenamiento de datos (SDB). El resultado a almacenar se coloca en uno de los 3
registros SDB. Una unidad independiente accede a los SDB para terminar el almacenamiento del resultado en la ubicacin de memoria correspondiente. Mediante estos dos ficheros de registros adicionales FB y SDB, la FPU admite instrucciones de almacenamiento-registro y registro-almacenamiento, funcionando como una mquina registro a registro.

Cola de operaciones de coma flotante FLOS (Floating Point Operation Stack). Estaciones de reserva (RS, Reservation Stations).
La unidad de instruccin decodifica todas las instrucciones y pasa en orden a la cola de operaciones de coma flotante FLOS (Floating Point Operation Stack). A continuacin, ya en la FPU, las instrucciones se emiten en orden desde la FLOS a las dos unidades funcionales.

Pgina 23

Procesadores segmentados
El uso de estaciones de reserva y del fichero de registros centralizado FR da lugar a dos propiedades: La deteccin de riesgos y el control de la ejecucin estn distribuidos ya que la informacin mantenida en las estaciones de reserva de cada unidad funcional determina si una instruccin puede empezar su ejecucin en esa unidad. Los resultados pueden pasar directamente a la unidad funcional desde las estaciones de reserva donde estaban almacenados, en vez de acceder a ellos a travs de los registros. Para realizar este adelantamiento se utiliza un bus de datos comn (CDB, Common Data Bus).

Cuando la FLOS enva una instruccin a una unidad funcional, la asigna una estacin de reserva y comprueba si estn disponibles los operandos necesarios. Si un operando se encuentra disponible en el FR, el contenido de ese registro del FR se copia a la estacin de reserva; en caso contrario, se copia una etiqueta para indicar que esa instruccin est a la espera de un operando pendiente de ser generado. La etiqueta indica de dnde proceder el operando pendiente, pudiendo ser de una instruccin que est actualmente en una de las cinco estaciones de reserva o de uno de los seis registros de FLB.
Cada estacin de reserva contiene dos campos por operando, donde uno corresponde a la etiqueta y otro al valor del operando. Los cuatro FR y los tres registros del SDB tambin llevan un campo etiqueta asociado. En las estaciones de reserva si un campo de operando contiene datos reales, entonces su campo de etiqueta se establece a cero. En caso contrario, su campo de etiqueta identifica el origen del que procede el operando pendiente. Al mismo tiempo, se establece a 1 el bit de ocupado asociado con el registro destino del resultado en el FR, lo que indica que existe una actualizacin pendiente de ese registro, y el valor de la etiqueta que identifica la estacin de reserva a la que se distribuye la instruccin se escribe en el campo de etiqueta del FR correspondiente.

Ejemplo de ejecucin de un cdigo


Hiptesis: Para reducir el nmero de ciclos mquina se permite que la FLOS distribuya hasta dos instrucciones en cada ciclo segn el orden del programa. Una instruccin puede comenzar su ejecucin en el mismo ciclo en que se distribuye a una estacin de reserva. La operacin suma tiene una latencia de dos ciclos y la de multiplicacin de tres ciclos. Se permite que una instruccin reenve su resultado a instrucciones dependientes durante su ltimo ciclo de ejecucin. De esta forma, una instruccin a la espera de un resultado puede comenzar su ejecucin en el siguiente ciclo si detecta una coincidencia. Los valores de etiqueta 01 , 02 , 03 se utilizan para identificar las tres estaciones de reserva de la unidad funcional de suma, mientras que 04 y 05 se utilizan para identificar las dos estaciones de reserva de la unidad funcional de multiplicacin/divisin. Estos valores de etiqueta son los ID de las estaciones de reserva. Inicialmente, el valor de los registros es F0=6.0, F2=3.5, F4=10.0 y F6=7.8.

Pgina 24

Procesadores segmentados

Pgina 25

Procesadores segmentados

Pgina 26

Procesadores segmentados Ciclo 1:


1. Se distribuyen i1 e i2 a RS01 (suma) y RS04 (mul/div). 2. Los registros destino son F4 y F2. Los bits de ocupado FR se activan. 3. Como i1 a RS01 (1 libre de RS suma) etiqueta de FR =01 a F4. (Indica de qu RS se obtendr) 4. Como i2 a RS02 (1 libre de RS mul/div) etiqueta de FR =04 a F2. (Indica de qu RS se obtendr) 5. i1: ADDD F4, F0, F6 Como estn disponibles F0 y F6 sus etiquetas de los operandos de RS01 se ponen a 0. 6. Comienza la ejecucin de i1.

7. I2: MULTD F2, F0, F4 i2 necesita F4 que viene de i1. Por lo tanto la etiqueta de RS04 = 01 (De la
RS01 donde est i1)

Ciclo 2:
1. i3: ADDD F4, F4, F6 2. i4: MULTD F6, F4, F2 3. Se distribuyen i3 e i4 a RS02 (suma) y RS05 (mul/div). 4. Para i3 se necesita el resultado de i1 (F4). En RS02 se pone etiqueta a 01 (Indica que depende de RS01). 5. Para i4 se necesita el resultado de i2 (F2) e i3 (F4). En RS05 pone etiquetas 02 y 04 (Indica que depende de RS02 y RS04). 6. Como el destino de i3 es F4, se actualiza la etiqueta de FR de 01 a 02. Indica que RS02 deber actualizar el valorde F4. Bit de ocupado sigue activo. 7. Cuando i4 se distribuye a RS05, el bit de ocupado de FR se activa y su etiqueta (FR) se pone a 05 (Indica que es RS05 el que debe actualizar le valor de F6. 8. Termina i1, emite su ID (RS01) y su resultado a CDB. Todos los campos con etiqueta = 01 se actualizan al valor de F4. Actualizando RS02 (i3) con valor de operando a 13,8 y etiqueta a 00. Actualizando RS04 (i2) con valor de operando a 13,8 y etiqueta a 00.

Ciclo 3:
1. Comienza a ejecutarse i3 e i2 en unidad de suma y unidad de mul/div. 2. Se libera RS01.

Ciclo 4:
1. Finaliza i3 y emite resultado a CDB y la etiqueta 02. 2. Como RS05 tiene etiqueta 02 se pone el resultado de la suma (21,6) y el valor de su etiqueta (RS05) se pone a
00.

3. Se libera RS02.

Ciclo 5:
1. Finaliza i2 y emite resultado a CDB y la etiqueta 04. 2. Como RS05 tiene etiqueta 04 se pone el resultado de la multiplicacin (82,8) y el valor de su etiqueta (RS05) se
pone a 00.

3. Se libera RS04.

Ciclo 6:
1. Comienza ejecucin de i4 y acaba en el ciclo 8.

Pgina 27