Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALGORITMO SCOREBOARD
CURSO:
MICROCOMPUTADORAS II
INTEGRANTES:
Alvarado Aponte Andr
Jurez Loro Edinson
Puchuln Lpez Jos
DOCENTE:
Ing. Vctor Hugo Valle Ros
SEMESTRE:
2014-II
Piura, 2014
Algoritmo Scoreboard
Microcomputadoras II
1 CONTENIDO
2
Introduccin ................................................................................................................................ 3
Objetivos ..................................................................................................................................... 4
3.1
3.2
4.2
4.3
Tablas de estado.................................................................................................................. 8
4.4
Ejemplo 1........................................................................................................................... 12
5.2
Ejemplo 2........................................................................................................................... 18
Conclusiones.............................................................................................................................. 34
Bibliografa ................................................................................................................................ 35
Algoritmo Scoreboard
Microcomputadoras II
2 INTRODUCCIN
Con la planificacin esttica se ha visto que se ejecutan varias instrucciones simultneamente pero
manteniendo el mismo orden del programa. Esto puede dar lugar a riesgos o peligros debido a la
dependencia de datos, los cuales pueden generar paradas del pipeline y disminucin del
rendimiento.
Existe una forma de minimizar las paradas debido a la dependencia de datos: ejecutando las
instrucciones fuera de orden, esto es mediante planificacin dinmica, segn la cual las
instrucciones pueden arrancarse fuera del orden del programa establecido por el compilador
En ste trabajo se abordar algoritmo Scoreboard, llamado tambin como de la pizarra, marcador
o pizarrn, ste es un algoritmo de planificacin dinmica que busca optimizar el rendimiento de
una instruccin al ejecutarla lo antes posible siempre que no existan riesgos (y de esta manera
optimizar tambin el tiempo de ejecucin).
Algoritmo Scoreboard
Microcomputadoras II
3 OBJETIVOS
3.1 OBJETIVO GENERAL
Aprender el funcionamiento del algoritmo de ScoreBoard, y los pasos que sigue para lograr su
objetivo.
Algoritmo Scoreboard
Microcomputadoras II
4 MARCO TERICO
4.1 EL ALGORITMO SCOREBOARD
Introducido en el supercomputador CDC66001 con el nombre Scoreboard (traducido como pizarra
o marcador), es un mtodo de aplicacin de programacin dinmica. Como cualquier buena
mquina de programacin dinmica, el Scoreboard monitorea las instrucciones esperando a que
sea enviada.
Para lograr implementar este algoritmo es necesario aadir una unidad funcional o mdulo a nivel
de Hardware denominado Marcador, el cual se encargar de controlar la emisin, la ejecucin
de las instrucciones y la deteccin de riesgos.
El objetivo de este algoritmo es optimizar el rendimiento de una instruccin por ciclo por lo que
simplemente intentar ejecutar una instruccin lo antes posible (siempre que no haya riesgos
estructurales o conflictos de Hardware). As cuando la siguiente instruccin para ejecutar est
detenida, otras instrucciones pueden ser emitidas y ejecutadas si no depende de ninguna
instruccin activa o detenida.
Todas las instrucciones pasan por el Marcador donde se construye un registro con las
dependencias de datos y se comprueba si se puede leer los operandos y arrancar la ejecucin. Si
no se puede arrancar la ejecucin, el Marcador se queda comprobando cada cambio en el cauce
hasta que se pueda arrancar la ejecucin. Par evitar riesgos de tipo de WAR y WAW, el
Marcador tambin controla cuando una instruccin puede escribir su resultado.
ste algoritmo habilita la ejecucin fuera de orden, y tambin comprueba si existen riegos
estructurales y de datos en la etapa ID (Decodificacin de la instruccin). La ejecucin fuera de
orden divide la etapa ID en dos sub etapas:
1. Emisin: aqu se realiza la decodificacin de la instruccin adems de la comprobacin de
la existencia de riesgos estructurales.
2. Lectura de Operando: espera a que no haya riesgos de datos, luego lee los operandos.
CDC 6600 es la primera supercomputadora de la historia, diseada en 1965 por Seymour Cray y fabricada
por Control Data Corporation. Posee una CPU de 60 bits y 10 unidades perifricas de procesamiento (PPUs).
CDC 6600 aplica la siguiente poltica: Emisin en orden, ejecucin en desorden y finalizacin en desorden.
Algoritmo Scoreboard
Microcomputadoras II
Algoritmo Scoreboard
Microcomputadoras II
Con respecto a los riesgos tipo WAW el algoritmo deber detectar la existencia del riesgo y
detener la instruccin hasta que desaparezca el riesgo. Scoreboard mantiene un registro de las
dependencias, estado de las instrucciones y las operaciones.
Las instrucciones son decodificadas en orden y van pasando por las siguientes cuatro etapas:
1. Issue (Emisin): El sistema verifica aquellos registros que van a ser ledos o modificados
por la instruccin. El procesador podr acceder a esta informacin cuando sea necesario
en alguna de las siguientes etapas. Para poder evitar dependencias de salida (WAW Write after Write) se inserta una burbuja en la instruccin hasta que todas las
instrucciones que pretenden escribir en el mismo registro sean completadas. La
instruccin tambin es detenida si alguna de las unidades funcionales se encuentra
ocupada.
2. Read operands (Lectura de operandos): Una vez que se ha emitido la instruccin y se ha
comprobado que todas las unidades funcionales necesarias estn libres, la instruccin
espera a que los operandos estn disponibles. Este procedimiento resuelve las
dependencias verdaderas (RAW - Read after Write) ya que los registros que van a ser
modificados por alguna otra instruccin no son considerados como disponibles hasta que
son realmente modificados.
3. Execution (Ejecucin): Cuando todos los operandos han sido capturados, la unidad
funcional comienza la ejecucin. Una vez que el resultado est disponible, el marcador
recibe una notificacin.
4. Write Result (Escritura de resultados): En esta etapa se intenta la escritura del resultado
en el correspondiente registro de destino. Sin embargo, esta operacin se retrasa hasta
que las instrucciones que intentan leer los registros en que esta instruccin pretende
escribir han completado su etapa de lectura de operandos. Esto permite resolver las
dependencias (WAR - Write after Read).
Algoritmo Scoreboard
Microcomputadoras II
Algoritmo Scoreboard
Microcomputadoras II
Functional Unit Status (Estados de unidad funcional): Indica el estado de cada unidad
funcional, manteniendo cada una de ellas 9 campos en la tabla:
Rj,Rk: Marcas que indican cuando los registros Fj, Fk estn listos
Algoritmo Scoreboard
Microcomputadoras II
Register Status (Estados de registro): Indica, para cada registro, qu unidad funcional
escribir en l su resultado.
Esta estructura de datos almacena el estado de los registros destino (registros de resultados) e
indica la unidad funcional que escribir en cada registro que sean destino de la instruccin activa.
Se indica en cada casilla la instruccin correspondiente. Una casilla vaca indica que el registro
esta actualizado.
10
Algoritmo Scoreboard
Microcomputadoras II
11
Algoritmo Scoreboard
Microcomputadoras II
5 EJEMPLOS PRCTICOS
5.1 EJEMPLO 1
En un microprocesador con 2 unidades funcionales para la suma que utilizan 2 ciclos, 2
unidades funcionales para la divisin que utiliza 20 ciclos en que cada ciclo est dividido en 2
subciclos, en el primer subciclo se realiza la escritura de registros destino y en el segundo
subciclo se realiza la lectura. Y tenemos las siguientes instrucciones:
En cada casilla se especifica en que ciclo la instruccin ingresa a una etapa del cauce. La etapa de
ejecucin requiere 20 ciclos de maquina por tanto la instruccin inicia en el ciclo tres y finaliza 20
ciclos despus.
12
Algoritmo Scoreboard
Microcomputadoras II
2.
La segunda instruccin es emitida en el segundo ciclo de reloj, el marcador determina que esta
instruccin es tiene una dependencia de datos con respecto a la instruccin anterior y por ende un
riesgo de datos tipo RAW (Read After Write), por lo que queda detenida en la etapa de lectura de
operandos hasta que la instruccin anterior escriba en el banco de registros el valor correcto de
dicho registro. La escritura se llevar a cabo en la primera mitad del ciclo 23 y la lectura se llevar
a cabo en la segunda mitad de este ciclo.
La ejecucin de la suma requiere apenas 2 ciclos, 24 y 25.
El resultado de la suma de esta instruccin se escribe en el ciclo 26.
En la parte inferior vemos que la unidad funcional de divisin est ocupada desde el ciclo 1 hasta
el ciclo 22.
La unidad funcional de suma estar ocupada desde el ciclo dos hasta el ciclo 25.
13
Algoritmo Scoreboard
Microcomputadoras II
3.
14
Algoritmo Scoreboard
Microcomputadoras II
4.
15
Algoritmo Scoreboard
Microcomputadoras II
5.
16
Algoritmo Scoreboard
Microcomputadoras II
6.
Observemos que la instruccin 6 no se puede emitir ya que existe una dependencia de salida, lo
que implica un riesgo WAW (Write After Write). Ambos escriben en el registro F7.
Por ello esta instruccin debe ser detenida hasta el ciclo 45, que es cuando la instruccin anterior
finaliza su escritura.
En el ciclo 47 se leen los operandos fuentes ya que no hay dependencias de datos, y
consecutivamente se ejecuta la instruccin en el ciclo 48 hasta el 49, ya que las unidades
funcionales de suma estn vacas. La instruccin finaliza en el ciclo 50.
17
5.2 EJEMPLO 2
Tenemos el siguiente cdigo:
LW f0, 4(T0)
ADD F2, F0, F4
MUL F2, F2, F8
SW F2, 4(T0)
EMISION
LECTURA OP
EJECUCION
ESCRITURA
BUSY
NO
NO
NO
NO
NO
NO
OP
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Algoritmo Scoreboard
Microcomputadoras II
F0
F2
F4
F6
F8
F10
F12
F14
A continuacion veremos como evoluciona el codigo en una maquina con procesador que implementa el marcador, y como se muestran las tablas
de estado a lo largo de la ejecucion.
Se lanza la primera instruccin por el cauce, se escribe el ciclo en la que dicha instruccin se emitio, en la tabla de estado de instrucciones, se
marca como ocupado la unidad funcional int, que se usa para el calculo de la direccion de instruciones de carga y almacenamiento, en la tabla de
estado de unidades funcionales y se coloca la unidad funcional que escribira en el registro f0, esto en la tabla de estado de registro de salidas.
19
Algoritmo Scoreboard
Microcomputadoras II
20
Algoritmo Scoreboard
Microcomputadoras II
Como se observa una vez que son ledos los operandos de la instruccin 1. Se coloca no en Rj y Rk para indicar que los operandos fuente no estn
preparados para ser ledos por otras instrucciones. La segunda instruccin es emitida, y se coloca en el registro de estados salidas,
especficamente en el registro destino f2, el nombre de la unidad funcional que producir el valor de dicho registro.
La instruccin tres pasa a ejecucin, pero la instruccin 1 se queda detenida ya que tiene dependencias de datos con la instruccin 1. Eso lo
indica la tabla pues el registro fuente de la segunda instruccin es el registro destino de la instruccin 1 (F0)
Se identifican los riesgos del tipo RAW entre instruccin 1 y 2, y WAW entre la instruccin 2 y 3 por tener el mismo operando destino.
21
Algoritmo Scoreboard
Microcomputadoras II
La instruccin 1 finaliza, por ende es borrada de todas las tablas del marcador, quedando lista la instruccin 2 para leer operandos
Desaparece el riesgo RAW entre 1 y 2. Pero an permanece el riesgo WAW entre la instruccin 2 y 3 considerando que tambin hay
dependencia de datos (Riesgo RAW) entre 2 y 3 (por que el operando destino de 2 es el operando fuente de 3).
22
Algoritmo Scoreboard
Microcomputadoras II
23
Algoritmo Scoreboard
Microcomputadoras II
WAW I2 e I3
24
Algoritmo Scoreboard
Microcomputadoras II
25
Algoritmo Scoreboard
Microcomputadoras II
La instruccin 2 finaliza y con ello desaparecen los riesgos para la instruccin 3. Por lo que podra ser emitida en el siguiente ciclo de
reloj.
WAW I2 e I3
26
Algoritmo Scoreboard
Microcomputadoras II
La instruccin 3 es una multiplicacin por tanto debe completar los datos en la unidad funcional MULT1. Tiene por registro destino F2 por tanto
debe escribir en la tabla de estado de registros de salida, especficamente en F2, el nombre de la unidad funcional que producir dicho resultado.
WAW I2 e I3
27
Algoritmo Scoreboard
Microcomputadoras II
Se leen los operandos fuente y de inmediato se coloca NO en Rj y Rk de la fila MULT1 para indicar que los registros (en este caso solo 1) no
estn preparados para utilizar por otras instrucciones.
Se emite la instruccin 4 y se completan sus datos en INT por tratarse de una instruccin de almacenamiento.
Adems se observa que uno de los registros fuente (F2) an no est listo para ser ledo, pues es el registro destino de la instruccin 3 (ocupando
la unidad funcional MULT1) y Rj est marcado con NO, por ello se coloca en Qk de la unidad funcional INT el nombre de la unidad funcional
que producir el valor del registro fuente F2.
28
Algoritmo Scoreboard
Microcomputadoras II
La instruccin de almacenamiento swc1 debe esperar a que se produzca el verdadero valor de F2, para poder leerlo.
RAW I3 e I4
29
Algoritmo Scoreboard
Microcomputadoras II
RAW I3 e I4
30
Algoritmo Scoreboard
Microcomputadoras II
La instruccin de multiplicacin finaliza por lo que la instruccin dependiente swc1 procede a leer sus operandos fuente.
31
Algoritmo Scoreboard
Microcomputadoras II
32
Algoritmo Scoreboard
Microcomputadoras II
Finaliza la instruccin de almacenamiento en el ciclo de maquina 19, dando por concluido el pequeo programa.
33
6 CONCLUSIONES
Del presente trabajo podemos concluir que el algoritmo Scoreboard, fue un algoritmo que fue
eficaz para el control de riesgos para computadores que trabajaban con varios cauces y que
aplicaban la emisin en orden, ejecucin en desorden y finalizacin en desorden, como lo haca el
CDC 6600.
Algoritmo Scoreboard
Microcomputadoras II
7 BIBLIOGRAFA
1. Wikipedia, la enciclopedia libre Algoritmo del marcador. Disponible en:
http://es.wikipedia.org/wiki/Algoritmo_de_marcador
2. Wikipedia, la enciclopedia libre Ejecucin fuera de orden. Disponible en:
http://es.wikipedia.org/wiki/Ejecuci%C3%B3n_fuera_de_orden
3. David Hennessy - CMSC 6110: Advance Computer Architecture, Score Board & Tomasulo
(en ingls). Disponible en:
http://www.csee.umbc.edu/~olano/611f03/scheduling.pdf
4. Allan Tong Dinamic Scheduling (en ingls). Disponible en:
http://www.cs.umd.edu/class/fall2001/cmsc411/projects/dynamic/scoreboard.html
5. Universidad Politcnica de Madrid, Escuela Universitaria de Informtica, Departamento de
Informtica Aplicada - Planificacin dinmica. Disponible en:
http://www.dia.eui.upm.es/asignatu/Arq_com/AC%20Grado/Paco%20Aylagas/4Planificacion%20Dinamica.pdf
6. Tutoras con Grupos Reducidos (TGR) - Sesin 3: Planificacin Dinmica. Disponible en:
http://quegrande.org/apuntes/grado/2G/ECG/seminarios/1112/tutorias_de_grupos_reducidos_-_planificacion_dinamica.pdf
35