jueves, 13 de marzo de 2008

Terminé la carrera !!

Bueno, pues ya terminé la carrera de informática. Este blog ha sido testigo de la recta final de la misma. He escrito aquí entradas sobre mis últimas asignaturas: TIS, ARC2 y ASP2. En esta última (ASP2) he sacado un 7.7 al final. Así que nada, de momento no voy a escribir más cosas sobre la carrera en este blog. No, de momento, quizá el año que viene haga el máster.

lunes, 3 de marzo de 2008

Algunos conceptos claros sobre ASP2

Tras varias sesiones de tutorías de hoy lunes, creo que me han quedado claro los siguientes puntos:
  1. El cronograma de un VLIW es igual al de un escalar, y donde solo hay bloqueos software (instrucciones NOP insertadas por el compilador).

  2. El funcionamiento básico de las etiquetas en el algoritmo de Tomasulo es que en la etapa IS se asocia una etiqueta al registro destino de la instrucción (si lo tiene) y se queda guardado en el fichero de registros, acompañando al registro que proceda. Los operandos de esta instrucción, si no están disponibles, dependen de las etiquetas de los mismos (previamente establecidas por instrucciones anteriores); se almacenaría dicha instrucción en una RS.

  3. Las reglas de emisión son las condiciones que deben cumplir las instrucciones de la ventana de instrucciones para que éstas se emitan (por ejemplo que sean de tipos apropiados para las tuberías existentes). Las reglas de emisión tienen sentido sobre todo en planificación estática. En planificación dinámica, basta con que existan RS libres.

  4. En la traspa del tema 1 donde aparece el espectro de máquinas con ILP y cinco tipos de máquinas, son destacables los tipos 1, 3 y 5. Es decir: 1. Planif. Dinámica sin reglas de emisión; 3. Planificación estática con reglas de emisión (emisión dinámica); 5. VLIW puro (planificación estática, emisión estática y macroinstrucciones con slots).

  5. En planificación estática se tiene ejecución en orden. Si hay un bloqueo, las siguientes instrucciones no se ejecutan.

  6. Las tuberías tienen sobre todo sentido en planificación estática (con reglas de emisión, emisión dinámica) ??

  7. Los saltos se resuelven (se sabe realmente si el salto es T o NT) en EX con planificación dinámica. Se resuelven en ID con planificación estática. Si hay mecanismos de especulación (lo cual tiene sentido sobre todo en planificación dinámica), el contador de programa solo se entera de la resolución del sato tras la etapa CM (commit) de la instrucción del salto. Finalmente, la BTB termina su predicción tras la etapa IF.

  8. Para saber a cuantas iteraciones hay que hacerles el cronograma y qué iteración contar sus ciclos para averiguar el IPC o el CPI o los MFlops (por ejemplo), habría que dar con el estacionario. En la práctica bastaría con hacer tres iteraciones y comprobar cómo se comportan. Si la segunda y la tercera se comportan igual, contar una de ellas. Si la tercera es igual que la primera, quizá se comporten iguales las iteraciones pares, y por otro lado las impares.

  9. Habrá bloqueos estructurales relacionados con el número de CDB’s cuando varias instrucciones realicen su etapa WB en el mismo ciclo. En el peor de los casos, todas las instrucciones en vuelo realizarán su etapa WB en el mismo ciclo. Por lo cual, debemos incluir k*m CDB’s de cada tipo de instrucción (enteros y FP). Es decir, k(etapas)*m(grado-superesc.) = 5*4 = 20 CDB’s de enteros y 20 CDB’s de FP.

  10. Un procesador superescalar tiene siempre emisión dinámica (el procesador comprueba dependencias en la etapa ID/IS). En procesador superescalar puede tener planificación estática o dinámica.

  11. Si un procesador superescalar tiene planificación estática, tendrá tuberías (pequeñas máquinas escalares que ejecutan ciertos tipos de instrucciones). Además, si tiene planificación estática, la emisión (recordar: siempre dinámica) puede ser rígida (si las instrucciones tienen que tener el orden adecuado para entrar en las tuberías) o flexible (pueden estar en cualquier orden; hay etapa SW (ID + SW)). Teniendo planificación estática, habrá reglas de emisión.

  12. Si un procesador superescalar tiene planificación dinámica, la emisión es habitualmente flexible. En un principio no habrá más reglas de emisión que la disponibilidad de RS's. No tiene tuberías.

  13. Por otra parte, existen los conceptos de cola de instrucciones y ventana de instrucciones. La cola de instrucciones contiene las instrucciones que han realizado su etapa IF y aún no se han emitido (no han hecho ID ó IS). El tamaño óptimo de la cola de instrucciones para un superescalar de grado m es 2·m-1. Así aseguramos que siempre haya instrucciones para ser emitidas. De hecho la etapa IF está desacoplada de la etapa ID/IS y a veces se omite.

  14. Se considera como ventana de instrucciones al subconjunto de instrucciones de la cola de instrucciones que son candidatas a ser emitidas en el siguiente ciclo. El tamaño de dicha ventana suele ser m (el grado de superescalaridad). La ventana de instrucciones puede ser fija o deslizante. Una ventana fija impide que entren nuevas instrucciones en la misma hasta que todas las existentes hayan emitido. La ventana deslizante permite contemplar nuevas instrucciones en la ventana conforme se vayan emitiendo las existentes (se aprovechan más los recursos).

  15. Por último, y por otra parte, las unidades funcionales de un procesador pueden estar segmentadas o no estarlo. Si lo están, permiten que varias instrucciones encadenen sus ciclos de ejecución en las mismas.

Por lo demás, sigo haciendo ejercicios de exámenes para chocarme con más dudas y problemas.

Un saludo!

sábado, 1 de marzo de 2008

Ejercicio 3 prueba alternativa A abril'07, mi cronograma

Este ejercicio está fatal :-( No cumple la emisión en orden, y además no se pueden emitir instrucciones emparejadas tan "lejanas" como se aprecia en la solución. Lo volveré a intentar.