Paralelismo Flashcards
Si ya no se puede aumentar la frecuencia del clock ni optimizar el set de instrucciones ¿Cómo se poría aumentar el rendimiento del chip?
Implementando un esquema de multiprocesamiento paralelo masivo.
¿A qué se refiere el grado de acoplamiento?
Hace referencia a la cantidad de recursos que se comparten entre los procesadores.
¿Qué es un coprocesador?
Es un procesador auxiliar que asiste al CPU principal realizando ciertas operaciones específicas (ej: punto flotante, gráficos, etc).
¿Cuál es la diferencia entre un multiprocesador y una multicomputadora?
El multiprocesador tiene más de un núcleo pero comparte la memoria mientras que en las multicomputadoras la memoria es privada y los procesadores se comunican a través de una red de interconexión.
¿Cuál es la diferencia entre una multicomputadora y una grid?
La interacción entre las computadoras. En las multicomputadoras se debe interaccionar a alta velocidad mientras que en las grids las computadoras son más independientes.
¿Qué propone una arquitectura superescalar?
Propone tener muchas unidades de ejecución después de decodificar la instrucción. Esto permite despachar las operaciones a componentes de hardware independientes tal que puedan trabajar de forma simultánea.
¿Cuáles son las etapas de una arquitectura superescalar?
- Fetch: Extrae la instrucción de la memoria de programa.
- Decode: Decodifica la instrucción.
- Issue: Detecta cuál de las etapas paralelizadas se encuentra disponible y cuál es apropiada para ejecutar la instrucción pendiente.
- Execute: La instrucción se ejecuta en la unidad correspondiente.
- Retire: Se escribe en un registro o en memoria el resultado de la operación.
¿Qué proponen los sistemas VLIW?
Very Long Instruction Word (VLIW): Sistemas donde la palabra de instrucción es muy larga y puede contener muchas operaciones que son paralelizables. Entonces se decodifican todas juntas y la planificación de la paralelización se realiza en tiempo de compilación.
¿Qué son los bundles en VLIW?
Como no se utilizan todos los recursos en todo momento, quedaban muchas zonas desaprovechadas en la palabra de instrucción, ocupando más lugar en memoria.
Entonces se implementaron los bundles que buscan compactar el formato, son palabras de instrucción de largo variable que transmiten la misma información sin dejar huecos de memoria.
¿Qué significan las siglas EPIC?
Explicitly Parallel Instruction Computing (EPIC): Aprovecha el compilador para optimizar el código tal que sea paralalelizable y resolver la planificación de las instrucciones en tiempo de compilación. Se considera una mejora a la arquitectura VLIW.
¿Qué problema puede surgir cuando se resuelve el paralelismo en tiempo de compilación?
Como al compilar estamos optimizando un programa en particular y la carga del CPU es variable, puede haber problemas en procesadores de propósito general.
¿Qué tipo de procesador es el TriMedia?
Es un CPU que utiliza VLIW con 27 unidades para ejecutar operaciones en paralelo. Fue diseñado para tareas de multimedia por lo que el programa que va a ejecutar es fijo para la aplicación.
¿Cómo hace el multithreading para aumentar el rendimiento?
Busca aprovechar el tiempo mientras el pipeline está parado porque está ejecutando una tarea que tarda mucho. Si durante ese tiempo se ejecutan otras tareas independientes, se aprovechan los tiempos muertos.
¿Cuál es la diferencia entre el multithreading de grano fino y grano grueso?
En el de grano fino se intercalan las instrucciones de cada thread tal que siempre se aproveche el tiempo de espera entre instrucciones lentas. En cambio en grano grueso se ejecuta un mismo thread y salta sólo cuando tiene que esperar.
El grano fino requiere una cantidad de hilos acorde a la demora de las instrucciones más lentas pero permite una ejecución continua aprovechando todos los ciclos de máquina. Por otro lado, el grano grueso es más flexible en cuanto a la cantidad de threads pero puede tener ejecución no continua.
¿A qué se refiere el simultaneous multithreading?
A la combinación de las técnicas de multithreading con una arquitectura superescalar.
Aumenta el rendimiento pero complejiza el manejo de los hilos.