Académique Documents
Professionnel Documents
Culture Documents
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).
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.
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.
Paralelismo
Pgina 2
Procesadores segmentados
SISD SI -- Single Instruction SD -- Single Data MI -- Multiple Instruction MD -- Multiple Data
Pgina 3
- 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.
Pgina 4
Pgina 5
Procesadores segmentados
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.
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.
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
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
Pgina 8
Procesadores segmentados
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
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.
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.
Etapas bsicas
4. 5.
Pgina 12
Procesadores segmentados
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.
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
Pgina 15
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
1. AL NO REORGANIZAR CDIGO UNA DETENCIN (BURBUJA) DE 4 CICLOS 2. EL COMPILADOR INSERTA INSTRUCCIONES NOP
Pgina 16
Procesadores segmentados
Procesadores segmentados
1.9.2.2. El interbloqueo entre etapas
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
Pgina 19
Procesadores segmentados
etiqueta
BEQZ R7,etiqueta
BEQZ
R7
Pgina 20
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
Pgina 21
Procesadores segmentados
Figura 1.38: Diseo modificado de la unidad de coma flotante del IBM 360/91 con el algoritmo de Tomasulo.
Pgina 22
Procesadores segmentados
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.
Pgina 24
Procesadores segmentados
Pgina 25
Procesadores segmentados
Pgina 26
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