Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFRMACION PARA LA 1ra. EVALUACION CONTINUA
INFRMACION PARA LA 1ra. EVALUACION CONTINUA
La explotación del paralelismo de control se basa en acciones que podemos “hacer al mismo
tiempo”. Las acciones, tareas o procesos pueden ejecutarse de manera independiente sobre unos
recursos de cálculo llamados también procesadores elementales (o PE).
En el caso de que N acciones sean totalmente independientes, entonces el proceso será N veces
más rápido. Pero siempre existen ciertas dependencias, las cuales se clasifican en:
La explotación del paralelismo de control consiste en administrar las dependencias entre las
acciones de un programa para obtener así una asignación de recursos de cálculo lo más eficaz
posible.
Como las acciones efectuadas en paralelo sobre los PE son idénticas, es posible centralizar el
control. Siendo los datos similares, la acción a repetir tomará el mismo tiempo sobre todos los
PE y el controlador podrá enviar, de manera síncrona, la acción a ejecutar a todos los PE.
1
Las limitaciones de este tipo de paralelismo viene dadas la necesidad de dividir los datos
vectoriales para adecuarlos al tamaño soportado por la máquina, la existencia de datos escalares
que limitan el rendimiento y las existencia de operaciones de difusión (un escalar se reproduce
varias veces convirtiéndose en un vector) y -reducciones que no son puramente paralelas.
Los recursos de cálculo se asocian a las acciones y en cadena, de manera que los resultados de
las acciones efectuadas en el instante t pasen en el instante t +1al PE siguiente. Este modo de
funcionamiento se llama también segmentación o pipeline.
Datos de tipo vectorial ubicados en memoria. Existe entonces una dualidad muy fuerte
con el caso del paralelismo de datos.
Datos de tipo escalar provenientes de un dispositivo de entrada. Este dispositivo se
asocia a menudo a otro de captura de datos, colocado en un entorno de tiempo real.
En ambos casos, la ganancia obtenida en relación al número de etapas (número de PE). Todos
los PE no estarán ocupados mientras el primer dato no haya recorrido todo el cauce, lo mismo
ocurrirá al final del flujo.
En función del análisis de los flujos de control (instruction stream) y de datos (data stream).
Estos flujos pueden ser simples o múltiples, definiendo así cuatro clases de máquinas como se
muestra en la figura:
2
a) La arquitectura SISD de Flynn.
Las instrucciones son ejecutadas secuencialmente, pero esta ejecución puede estar segmentada,
es decir, puede haber superposición de varias instrucciones encontrándose en diferentes etapas
de ejecución.
Todas las unidades de procesamiento reciben la misma instrucción radiada por la unidad de
control, pero esta instrucción se ejecuta sobre diferentes conjuntos de datos.
Existe una colección de unidades de procesamiento que ejecutan diferentes instrucciones pero
sobre el mismo flujo de datos. Es decir, los resultados de un procesador se convierten en los
operandos del siguiente.
Esta categoría cubre a los multiprocesadores y a los multicomputadores, es decir, sistemas con
más de un procesador capaz de ejecutar varios programas simultáneamente.
3
1.2.2 Otras clasificaciones
Los avances en las tecnologías han dado lugar a arquitecturas que no encajan de forma clara
dentro de la taxonomía de Flynn. Las arquitecturas híbridas no encajan bien dentro de esta
taxonomía
Grado de paralelismo.
Para cada periodo de tiempo, el número de procesadores usados para ejecutar el programa se
define como el grado de paralelismo (GDP).
Paralelismo medio.
4
O también:
Donde ti es el tiempo que: es el tiempo total de ejecución.
O también:
P i=1 ti
Paralelismo disponible. Existe un amplio rango de paralelismo potencial en los programas. Los
códigos científicos presentan un alto grado de paralelismo debido al paralelismo inherente de
los propios datos.
Speedup asintótico:
La media armónica del ratio de ejecución sobre un benchmark de m programas se define por:
5
Además, el rendimiento medio armónico está relacionado con el tiempo medio de ejecución. Si
consideremos una distribución de pesos, podemos definir el rendimiento medio armónico con
pesos como:
Supongamos que un programa dado se ejecuta en n modos de ejecución con una distribución de
pesos w = {fi: i = 1; 2;…; n}. El speedup armónico medio con pesos se define como:
En primer lugar, supongamos que Ri = i; w = (a; 0; 0;…; 0; 1-a). Esto implica que el sistema
usa un modo secuencial puro con una probabilidad de , o los n procesadores con una
probabilidad de 1-. Sustituyendo R1 = 1, Rn = n y w en la ecuación de S, obtenemos la
siguiente expresión del speedup:
Eficiencia del sistema. Sea O(n) el número total de operaciones elementales realizadas por un
sistema multiprocesador de n elementos y T(n) el tiempo de ejecución. En general, T(n) < O(n)
si los n procesadores realizan mas de una operación por unidad de tiempo, donde n >= 2.
Supongamos que T(1) = O(1) en un sistema uniprocesador. El factor speedup se define como:
La eficiencia es una comparación del grado de speedup conseguido frente al valor máximo.
6
1.4. Modelos del rendimiento del speedup
En esta sección describiremos tres modelos de medición del speedup. La ley de Amdahl (1967)
se basa una carga de trabajo fijo o en un problema de tamaño fijo. La ley de Gustafson (1987)
se aplica a los problemas escalables, donde el tamaño del problema se incrementa al aumentar el
tamaño de la máquina. El modelo de speedup de Sun y Ni (1993) para problemas escalables
limitados por la capacidad de la memoria. En la figura se muestra un esquema de los tres
modelos utilizados.
Speedup bajo carga fija. La fórmula vista en el apartado anterior se basa en una carga de
trabajo fija, sin importar el tamaño de la máquina. Las formulaciones tradicionales del speedup,
incluyendo la ley de Amdahl, están basadas en un problema de tamaño fijo y por lo tanto en una
carga fija. En este caso, el factor de speedup está acotado superiormente por el cuello de botella
secuencial. A continuación consideraremos dos posibles situaciones: GDP < n ó GDP >= n.
Consideremos el cado en donde el GDP = i > n. Supongamos que los n procesadores se usan
para ejecutar Wi, exclusivamente. El tiempo de ejecución de Wi es.
Sea la suma de todas las sobrecargas del sistema en un sistema con n procesadores, entonces:
Q(n)
7
Ley de Amdahl revisada. En 1967, Gene Amdahl derivó un speedup para el caso particular
donde el computador opera en modo secuencial (con GDP = 1) o en modo totalmente paralelo
(con GDP = n). Es decir, Wi = 0 si i 6= 1 ó i 6= n. En este caso, el speedup viene dado por:
Escalamiento para conseguir una mayor precisión. Las aplicaciones de tiempo crítico es la
principal causa que da lugar al desarrollo de un modelo de speedup de carga fija y la ley de
Amdahl. Al aumentar el tamaño de la máquina para obtener mayor potencia de cálculo,
queremos incrementar el tamaño del problema para obtener una mayor carga de trabajo,
produciendo una solución más precisa y manteniendo el tiempo de ejecución.
Ley de Gustafson. El speedup de tiempo fijo fue desarrollado por Gustafson para un perfil de
paralelismo especial con Wi = 0 si (i ≠ 1) y (i ≠ n). De forma similar a la ley de Amdahl,
podemos reescribir la ecuación anterior como sigue, suponiendo que Q(n) = 0,
o Un mayor speedup
o Mayor precisión
o Mejor utilización de los recursos.
Cuando se utiliza un mayor número de nodos para resolver un problema grande, la capacidad de
memoria total se incrementa de forma proporcional. Esto permite que al sistema resolver un
problema aumentado mediante el particionamiento del programa y la descomposición del
conjunto de datos.
8
En lugar de mantener fijo el tiempo de ejecución, podemos desear usar toda la memoria
disponible para aumentar aún más el tamaño del problema. En otras palabras, si tienes un
espacio de memoria adecuado y el problema escalado cumple el límite de tiempo impuesto por
la ley de Gustafson, pueden incrementar el tamaño del problema, consiguiendo una mejor
solución o una solución más precisa.
Speedup de memoria fija. Sea M los requerimientos de memoria para un problema dado y W
la carga computacional. Ambos factores están relacionados de varias formas, dependiendo del
direccionamiento del espacio y las restricciones de la arquitectura. Así, podemos escribir las
siguientes expresiones: W = g (M) ó M = g-1 (W).
(1) El conjunto de toda la memoria forma un espacio global de direcciones (en otras palabras,
suponemos un espacio de memoria distribuido compartido)
(2) Todo el espacio de memoria disponible se utiliza para el problema escalado.
1. G(n)=1. Se corresponde con el caso en donde el tamaño del problema es fijo, siendo
equivalente a la ley de Amdahl.
9
TEMA 2: ARQUITECTURAS AVANZADAS CONVENCIONALES
Es posible distinguir cinco limitaciones fundamentales del paralelismo a las que el sistema tiene
que enfrentarse:
Fundamentalmente el procesador intenta localizar instrucciones, más allá del punto de ejecución
en curso, que puedan introducirse en el cauce y ejecutarse. Con respecto a esto son importantes
tres ordenaciones:
10
El orden en que las instrucciones alteran los registros y las posiciones de memoria.
La única restricción que tiene el procesador es que el resultado debe ser correcto.
Para permitir la emisión desordenada, es necesario desacoplar las etapas del cauce de
decodificación y ejecución. Esto se hace mediante un buffer llamado ventana de instrucciones.
Con esta organización, cuando un procesador termina de decodificar una instrucción, la coloca
en la ventana de instrucciones con lo que se indica que está lista para se ejecutada.
Las instrucciones son emitidas desde la ventana siempre que sea posible su ejecución, lo cual
ocurre cuando los operandos de la instrucción están disponibles y la unidad funcional requerida
para la operación está libre.
Las conexiones entre la ventana centralizada y las unidades funcionales requiere un mayor
ancho de banda que usando una ventana de instrucción distribuida. Una ventana de instrucción
centralizada es más eficiente en cuanto al almacenamiento ya que los buffers pueden ser usados
por cualquier tipo de instrucción.
11
Cuando una instrucción que escribe en un registro se decodifica, se le asigna una entrada en el
buffer de reordenación. Los resultados de la instrucción se escriben en la entrada
correspondiente del buffer de reordenación. Cuando la entrada alcanza la cabeza de la cola, y el
valor ha sido escrito, se transfiere al banco de registros. Si el valor no ha sido escrito en ese
momento, la cola no avanza hasta que el valor haya sido escrito. Dado que el buffer de
reordenación asocia entradas a registros, el identificador del registro debe de almacenarse en las
entradas. También se genera una etiqueta única para cada entrada que todavía no ha sido
actualizada.
Cuando se decodifica una instrucción y se necesitan los registros operandos, se realiza una
búsqueda en el buffer de reordenación. Si no se encuentra ningún registro coincidente, se accede
al banco de registros. Si existe alguna entrada en el buffer de reordenación, el valor es leído en
el caso de que esté presente y se carga en puesto de reserva correspondiente, en caso contrario
se almacena la etiqueta. Cuando el resultado se almacena en el buffer de reordenación
reemplazando la etiqueta, también se reemplaza al mismo tiempo las etiquetas por los valores en
los puestos de reserva.
Una aproximación alternativa para aumentar el rendimiento del procesador es utilizar más
etapas, y de grano más fino, en el cauce. La reducción en la complejidad de cada etapa permite
un aumento en la frecuencia del reloj con lo que es posible conseguir rendimientos similares al
diseño superescalar.
La aproximación VLIW (Very Long Instruction Word) consiste en incorporar varias pequeñas
operaciones independientes en una palabra de instrucción larga.
Una arquitectura VLIW proporciona muchas más unidades funcionales que un diseño de
procesador típico, junto con un compilador que busca paralelismo a través de operaciones
básicas para mantener las unidades funcionales tan ocupadas como sea posible.
12
Las aproximaciones superescalar y VLIW son más sensibles a conflictos de recursos que la
aproximación supersegmentada. En un procesador superescalar o VLIW, un recurso debe de
duplicarse para reducir la posibilidad de conflictos, mientras que el diseño supersegmentazo
evita cualquier conflicto de recursos.
Para evitar que el procesador supersegmentado sea más lento que el superescalar, la
tecnología usada en la supersegmentación debe de reducir el retraso del un cauce de
instrucción más largo.
Aunque la supersegmentación parece una solución más inmediata que el diseño superescalar, la
tecnología existente favorece el aumento en la densidad de integración sobre el aumento en la
velocidad del circuito. La densidad ha aumentado a mayor ratio que la velocidad de los
transistores.
Los avances tecnológicos han permitido combinar las técnicas superescalar y supersegmentada,
proporcionando buenas soluciones a muchos de los problemas de eficiencia existentes en la
industria de ordenadores actual.
Características
Posee 2 cachés de datos e instrucciones de 32KB cada una, 2 MMUs, buses de 128 bits de datos
y 40 de direccionamiento.
· El empaquetado es esta vez de 625 pines.
· Captación y decodificación de cuatro instrucciones por ciclo
· La ejecución especulativa y desordenada
Unidades de Ejecución
Dos unidades de enteros sencillas, XSU0 y XSU1 (un ciclo de reloj)
Una unidad de enteros compleja, MCFXU, multiplicación y división entera (latencia de
ejecución de 3 a 20 ciclos de reloj )
Una unidad de lectura/escritura, LSU, lecturas y escrituras a memoria (latencia de 1
ciclo para las lecturas de enteros y 2 ciclos para las de FP )
Una unidad de punto flotante, FPU (latencia de 2 ciclos para la multiplicación, suma o
multiplicación-suma, y 31 ciclos de reloj para la división). Esta unidad esta totalmente
Una unidad de saltos, BPU, que completa los saltos e informa a la unidad de captación
de los fallos en las predicciones
13
Etapas por las que pasan todas las instrucciones
1. Captación.
Inserta en la cola de decodificación las instrucciones obtenidas de la caché y determina la
dirección de la siguiente instrucción.
2. Decodificación de la instrucción.
Las instrucciones son decodificadas y preparadas para su emisión. Todas las porciones críticas
de la decodificación se realizan aquí.
3. Emisión de instrucciones.
Emite las instrucciones al puesto de reserva apropiada. Los operandos son leídos del fichero de
registros en esta etapa, ya sea a la unidad funcional o a los puestos de reserva. Se le asigna un
registro en donde se guardara el resultado de la instrucción y una entrada en el buffer de
reordenación para asegurar una terminación ordenada.
4. Ejecución.
Se pasa a este estado cuando todos los operandos están disponibles en el puesto de reserva. Una
de las seis unidades funcionales ejecuta la instrucción. La unidad de terminación es informada
de que la instrucción ha finalizado.
5. Finalización (Commit).
Ocurre cuando todas las instrucciones anteriores se han comprometido. Pueden finalizar hasta
cuatro instrucciones por ciclo. A esta etapa también se le denomina completación de la
instrucción (instruction completion).
1. Es una buena medida del rendimiento en un estado estacionario, dado que cuando el
procesador se encuentra en equilibrio las instrucciones no pueden emitirse mas rápidamente que
lo que son ejecutadas o comprometidas.
2. En la etapa de emisión se encuentra algunos de cuellos de botella claves que son comunes a
muchas máquinas con planificación dinámica de instrucciones.
Esta etapa es capaz de captar hasta cuatro instrucciones por ciclo e introducirlas en el buffer de
instrucciones de ocho entradas.
14
La etapa de captación es capaz de mantener 5.2 instrucciones en el buffer no limitando el
rendimiento. La captación limita el rendimiento cuando no es capaz de proporcionar cuatro
instrucciones para su emisión
Emisión de instrucciones.
Una vez que las instrucciones han sido emitidas, deben de esperar hasta que la unidad funcional
y los operandos están disponibles. Existen seis clases diferentes de unidades funcionales lo que
permite hasta 6 iniciaciones por ciclo.
15
1. Si el operando fuente no esta disponible y la emisión se detiene porque los buffers
están llenos, esto indica que el paralelismo existente es insuficiente para el tamaño de ventana
dado por los buffers. Si el código tiene mas paralelismo, entonces menos puestos de reserva
deberían esperar otros resultados, dando lugar a más iniciaciones y a una necesidad de menos
buffers. Alternativamente, el diseñador puede aumentar el número de buffers, dando lugar a una
mayor ventana y a un posible incremento del ILP.
El IPC para estos programas de pruebas va desde el 1 hasta el 1.8. Esta diferencia entre el IPC
ideal y el real se debe a tres factores:
Características Principales.
16
Capaz de traspasar los saltos condicionales mediante Ejecución Especulativa.
Hasta 4 saltos no resueltos.
Características:
1. 64 Registros Físicos.
2. Registros Lógicos.
3. Active List: Hasta 32 Valores.
4. Free List: Hasta 32 valores.
Etiqueta de 5 bits a c/I. Cada instrucción puede ser localizada en lista de activos.
Latencia. Tiempo transcurrido entre la petición realizada y el inicio de su respectiva respuesta.
De un CPU, el tiempo entre cargar una instrucción y el termino de su ejecución.
17