Idea clave: permitir que las instrucciones posteriores a una detenida puedan comenzar a ejecutarse. DIVD F0,F2,F4 ADDD F10,F0,F8 SUBD F12,F8,F14 Permite la ejecución out-of-order => finalización out-of-order (completion). Permite distinguir entre el comienzo de la ejecución y la finalización de la ejecución de una instrucción; entre esos dos instantes de tiempo la instrucción está en ejecución. En un cauce con planificación dinámica, todas las instrucciones pasan por una etapa de iniciación en orden (in-order). La etapa ID descodifica y comprueba los riesgos estructurales. Scoreboard se utilizó por vez primera en la CDC 6600 en 1963. 2 ESQUEMAS HW: PARALELISMO DE INSTRUCCIONES
Un cauce simple tiene una etapa para verificar tanto los riesgos estructurales como los de datos: la etapa Instruction Decode (ID), también denominada Instruction Issue. La ejecución Out-of-order divide la etapa ID en dos: 1. Issue (Emisión)—descodifica las instrucciones, comprueba los riesgos estructurales. 2. Lectura de operandos—espera hasta que no existan riesgos de datos, entonces lee los operandos. Scoreboards permite a la instrucción ejecutarse cuando 1 & 2 se han realizado, y no se espera por instrucciones previas. CDC 6600: emite las instr. in order, las ejecuta out of order , y las completa out of order (commit o completion en inglés). 3 ESQUEMAS HW: PARALELISMO DE INSTRUCCIONES
4 (Gp:) Functional Units (Gp:) Registers (Gp:) FP Mult (Gp:) FP Mult (Gp:) FP Divide (Gp:) FP Add (Gp:) Integer (Gp:) Memory (Gp:) SCOREBOARD
ARQUITECTURA ORIGINAL DEL SCOREBOARD (CDC 6600)
CAUCE DLX CON SCOREBOARD 5 IF FP Mult FP Add ALU FP Div MEM Wb RO Exint ExFU1 ExFU2 ExFU3 IS (Gp:) Scoreboard
Finalización Out-of-order => riesgos WAR, WAW? Soluciones para los riesgos WAR. Encola ambas operaciones y copia de sus operandos. Lee los registros solamente durante la etapa de lectura de operandos. Los riesgos WAW, deben detectarse y detener hasta que otras instrucciones se completen. Se necesita tener múltiples instrucciones en la fase de ejecución => múltiples unidades de ejecución o unidades de ejecución segmentadas (pipelined execution units). Scoreboard verifica y sigue las dependencias, estado u operaciones. Scoreboard reemplaza ID, EX, WB por 4 etapas IS (Issue), RO (read operand), EX (Execute) y WB (Write Back). 6 SCOREBOARD: IMPLICACIONES
1. Emisión (Issue)—descodificación de instrucciones & verificación de riesgos estructurales (ID1) Si una unidad funcional capaz de ejecutar la instrucción está libre y ninguna otra instrucción activa tiene el mismo registro de destino (no hay riesgo estructural ni WAW), entonces: el scoreboard emite la instrucción a la unidad funcional y actualiza su estructura de datos interna. En caso contrario (existe un riesgo estructural o WAW), la emisión de la instrucción se detiene, y ninguna otra instrucción más será emitida hasta que estos riesgos desaparezcan.
7 SCOREBOARD: IMPLICACIONES
2. Lectura de operandos (RO) —espera hasta que no existan riesgos de datos, entonces se leen los operandos (ID2) Un operando fuente esta disponible si ninguna instrucción emitida activa va a escribir en él, o si el registro que contiene el operando está siendo escrito actualmente por una unidad funcional activa. Cuando los operandos fuente están disponibles, el scoreboard le dice a la unidad funcional que proceda a la lectura de los operandos de los registros y comience la ejecución. El scoreboard resuelve los riesgos RAW dinámicamente en este paso, y las instrucciones pueden ser enviadas a la fase de ejecución out of order. 8 ETAPAS DE CONTROL EN SCOREBOARD
3. Ejecución—operación sobre los operandos (EX) La unidad funcional comienza la ejecución cuando recibe los operandos. Cuando el resultado está listo (ready), notifica al scoreboard que ha completado la ejecución. 4. Escritura del resultado—finaliza la ejecución (WB) Una vez que el scoreboard advierte que la unidad funcional ha completado su ejecución, el scoreboard comprueba los riesgos WAR. Si no hay riesgos WAR, escribe el resultado. Si hay riesgo WAR, entonces detiene la instrucción. Ejemplo: divd F0,F2,F4 addd F10,F0,F8 subd F8,F8,F14
El scoreboard del CDC 6600 debe detener subd hasta que addd lea los operandos 9 ETAPAS DE CONTROL EN SCOREBOARD
OBSERVACIONES A SCOREBOARD La técnica de Scoreboard es del tipo emisión-única, es decir sólo permite emitir una instrucción por ciclo. Un riesgo WAW o un riesgo estructural (UF no disponible) provocan que la instrucción en la fase IS se detenga y no pase a RO. Un riesgo RAW provoca la detención de las instrucciones en la fase RO y que no pasen a la fase EX. Un riesgo WAR provoca que el resultado de una operación no se escriba en el banco de registros en la etapa Wb. Después de que una instr se emita hacia una UF, ésta es bloqueada hasta que el resultado de la instrucción en ejecución es escrito en el registro de destino (esto puede relajarse si la escritura en el banco se hace en la primera mitad del ciclo y la lectura en la segunda parte). No puede utilizarse la técnica de forwarding o anticipación. Los operandos pueden leerse en la etapa RO después de que se han escrito en el banco de registros. 10
Página siguiente |