Está en la página 1de 35

Ao de la Promocin de la Industria Responsable y del Compromiso Climtico

UNIVERSIDAD NACIONAL DE PIURA


FACULTAD DE INGENIERA INDUSTRIAL
ESCUELA PROFESIONAL DE INGENIERA INFORMTICA

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

Objetivo general .................................................................................................................. 4

3.2

Objetivos especficos ........................................................................................................... 4

Marco terico .............................................................................................................................. 5


4.1

El algoritmo Scoreboard ...................................................................................................... 5

4.2

Control de riesgos ............................................................................................................... 7

4.3

Tablas de estado.................................................................................................................. 8

4.4

Procesador con Scoreboard .............................................................................................. 11

Ejemplos prcticos .................................................................................................................... 12


5.1

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.

3.2 OBJETIVOS ESPECFICOS


a) Conocer como el mencionado algoritmo evita los riesgos tipo WAW y tipo WAR.
b) Conocer la estructura de los procesadores que usan este algoritmo.

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

4.2 CONTROL DE RIESGOS


Debido a que finaliza las instrucciones en desorden se pueden presentar riesgos tipo WAW (write
after write) o tipo WAR (write after read).
Los riesgos tipo WAR el algoritmo lo soluciona de la siguiente manera:

Almacena tanto la operacin como una copia de sus operandos.


Lee los registro slo durante la etapa de Lectura del operando.

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

4.3 TABLAS DE ESTADO


Para controlar la ejecucin de las instrucciones, el marcador mantiene tres tablas de estados:

Instruction Status (Estados de instruccin): Indica, para cada instruccin en ejecucin, en


qu etapa de las 4 se encuentra.

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:

Busy (Ocupado): Indica si la unidad est siendo utilizada o no

Op (Operacin): Operacin a realizar en la unidad (por ejemplo: MUL, DIV or


MOD)

Fi: Registro de destino

Fj,Fk: Nmeros de registros fuente

Qj,Qk: Unidades funcionales que producirn el resultado a leer de los registros


fuente Fj, Fk

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

4.4 PROCESADOR CON SCOREBOARD

ste procesador consta de 6 unidades: 2 multiplicadores, 1 unidad de divisin, 1 sumador,


una unidad de enteros y, la unidad de Scoreboard.
Mayor costo para transporte a travs del bus de datos.
La unidad de Scoreboard controla las unidades funcionales y habilita la ejecucin en
desorden para maximizar el paralelismo.

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:

DIV F1, F2, F3


ADD F4, F1, F3
DIV F5, F6, F7
ADD F3, F8, F9
DIV F7, F3, F10
ADD, F7, F11, F12

1. A continuacin mostraremos como fluyen las instrucciones en el cauce y como se van


ocupando las unidades funcionales.

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.

La tercera instruccin no presenta problema para conducirse por el cauce, no presenta


dependencias funcionales de datos, estructurales.
Se emite en el ciclo 3 y finaliza en el ciclo 25, un ciclo antes que la instruccin anterior.
Mantiene ocupada la segunda unidad funcional de divisin desde que se emite (ciclo 3) hasta que
finaliza su ejecucin (ciclo 24).

14

Algoritmo Scoreboard

Microcomputadoras II

4.

En el ciclo 4 se emite la instruccin 4, recordando que es un cauce segmentado, pues existe an


una unidad funcional libre para este tipo de instruccin (suma), por lo que no existe riesgo
estructural. Adems los operandos fuente no se utilizan en las instrucciones anteriores por tanto
no existe dependencia de datos.
Se ejecuta la suma que dura solo dos ciclos de mquina, y a continuacin la escritura. Aqu
encontramos un riesgo tipo RAW, pues si se escribiera el resultado de esta instruccin en el ciclo 8
(F3), la instruccin 2 leera el valor incorrecto de F3, pues esta instruccin realiza la lectura recin
en el ciclo 23. Por esta razn la ejecucin de la escritura de la instruccin 4 queda detenida
Esto es visible gracias a la estructura de datos que conserva el estado de las unidades funcionales.
Pues ah se encuentra escrito los registros.

15

Algoritmo Scoreboard

Microcomputadoras II

5.

Como podemos observar, existe un riesgo estructural, en la emisin de la instruccin 5, ya que


ambas unidades funcionales de divisin se encuentran ocupadas, la primera termina en el ciclo 22
y la segunda en el ciclo 24, as que para poder ser emitida debe esperar hasta el ciclo 23, ciclo en el
cual desaparece el riesgo estructural.
Observemos que en la instruccin 5 se utiliza el registro F3 como fuente, pero este registro no est
disponible aun ya que an se encuentra registrado en la estructura de datos de estado de registro
de resultados. No existe inconveniente alguno ya que en la primera mitad del ciclo 24 se escribe
en registro F3, de inmediato se elimina de la estructura de datos de estado de registro de
resultado, por lo que es posible leer dicho registro por la instruccin 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)

Las tablas del mdulo marcador sern las que siguen:


INSTRUCCIONES
LW f0, 4(T0)
ADD F2, F0, F4
MUL F2, F2, F8
SW F2, 4(T0)

EMISION

LECTURA OP

EJECUCION

ESCRITURA

Tabla de estados de unidades funcionales


UF
INT
ADD1
ADD2
MUL1
MUL2
DIV1

BUSY
NO
NO
NO
NO
NO
NO

OP

Fi

Fj

Fk

Qj

Qk

Rj

Rk

Algoritmo Scoreboard

Microcomputadoras II

Tabla de estados de registros de salida


REGISTRO
UF

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

La segunda instruccin es emitida en el segundo ciclo de reloj.

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

La instruccin 2 lee sus operandos fuente.


La instruccin 3 ser emitida cuando el riesgo haya desaparecido por completo. Esto ocurrir cuando la instruccin 2 haya emitido su resultado
al bando de registros.

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

También podría gustarte