Vous êtes sur la page 1sur 27

Ao del Buen Servicio al Ciudadano

UNIVERSIDAD NACIONAL DE PIURA


FACULTAD DE INGENIERA INDUSTRIAL
ESCUELA PROFESIONAL DE INGENIERA INFORMTICA

PLANIFICACIN DINMICA, ALGORITMO SCOREBOARD

CURSO:
MICROCOMPUTADORAS II

DOCENTE:
ING. Vctor Hugo Valle Ros.
INTEGRANTES:
AGUILA CALLE DEIBIS JOEL
ELIAS VEGA LUIS GUSTAVO
SANDOVAL CAMACHO ALEXIS M.
SEMESTRE:
2017 I

Piura, Julio 2017


Planificacin Dinmica Microcomputadoras II

Contenido
2 Introduccin .................................................................................................................. 3
3 Objetivos ....................................................................................................................... 4
3.1 Objetivo General .................................................................................................... 4
3.2 Objetivos Especficos.............................................................................................. 4
4 Marco Terico ............................................................................................................... 5
4.1 Planificacin Dinmica ........................................................................................... 5
4.2 Algoritmo del Marcador (Scoreboard) .................................................................. 6
4.3 Limitaciones del Algoritmo .................................................................................... 7
4.4 Mejora del Algoritmo ............................................................................................. 7
4.5 Control de Riesgos .................................................................................................. 7
4.6 Componentes del Marcador .................................................................................. 9
4.7 Procesador CDC 6600 ........................................................................................... 11
4.8 Ejemplo utilizando Marcador .............................................................................. 12
4.9 Pruebas del Simulador: ........................................................................................ 15
5 Conclusiones................................................................................................................ 26
6 Bibliografa .................................................................................................................. 27

2
Planificacin Dinmica Microcomputadoras II

2 Introduccin

Como hemos podido ver en el curso, una ejecucin ordenada de las instrucciones puede
dar lugar a riesgos o peligros debido a dependencias de datos o a problemas
estructurales, los cuales pueden acabar generando paradas en el cauce de instrucciones,
y por consiguiente prdida de rendimiento. Para poder reducir esta prdida de
rendimiento, el compilador puede tratar de planificar el orden de las instrucciones de
tal manera que se minimicen los riesgos o dependencias de datos.

Para minimizar las paradas debidas a las dependencias de datos, se hablara de una
planificacin dinmica de instrucciones, con la cual, se ejecutan las instrucciones fuera
de orden.

En este trabajo de investigacin hablaremos del Algoritmo del Marcador (scoreboard),


es preciso aclarar que, aunque en este modelo, las instrucciones tambin se van a
ejecutar en varias etapas o pasos, no se va a seguir el mismo modelo del cauce
segmentado convencional en el que en cada etapa solamente hay una instruccin en un
momento dado, ya que ahora en cada etapa podrn intervenir varias instrucciones. El
objetivo de este algoritmo es obtener un rendimiento ptimo de una instruccin por
ciclo, por lo que intenta ejecutar una instruccin lo ms antes posible. As, cuando la
siguiente instruccin para ejecutar est detenida, otras instrucciones pueden ser
emitidas y ejecutadas si no dependen de ninguna instruccin activa o detenida.

3
Planificacin Dinmica Microcomputadoras II

3 Objetivos

3.1 Objetivo General

Aprender cmo se aplica la Planificacin Dinmica, y como el mtodo del Marcador o


Scoreboard nos ayuda a optimizar el rendimiento de instrucciones en un procesador.

3.2 Objetivos Especficos

1) Como el Algoritmo del Marcador, controla la emisin, ejecucin y deteccin de


riesgos (WAW y WAR).
2) Como se van ejecutando, instruccin por instruccin, utilizando este algoritmo.
3) Aplicacin de la Planificacin Dinmica, en los procesadores modernos.

4
Planificacin Dinmica Microcomputadoras II

4 Marco Terico

4.1 Planificacin Dinmica

La idea de Planificacin Dinmica es optimizar el rendimiento del procesador al


momento de leer y ejecutar instrucciones de un programa. En este caso, la CPU puede
anotar en tiempo de ejecucin las dependencias que van siguiendo sin bloquear la
mquina. La instruccin que necesita un registro debido a una RAW (lectura despus
escritura) se espera, sin ejecutar. Cuando los operandos de tal instruccin estn
disponibles realiza su fase EX (ejecucin). Mientras, otras instrucciones sin RAW,
seguirn adelante con todas sus fases.
Los procesadores con planificacin dinmica presentan estas ventajas:

- Permite la gestin de ciertos casos en los que no es fcil conocer las dependencias en
tiempo de complicacin, como, por ejemplo, cuando se hace referencia a datos que no
estn en los registros, sino en direcciones de memoria, lo cual, adems, simplifica el
diseo del compilador.
- Aprovechan los retardos imprevistos, como los debidos a los fallos de cach (el dato no
est en la cach y hay que ir a buscarlo a memoria), ejecutando otras instrucciones
mientras espera el dato de la memoria.
- Distintos procesadores de la misma familia pueden compartir la arquitectura, pero
tambin pueden ofrecer distintas configuraciones de su cauce, es decir, ms o menos
unidades funcionales o estaciones de reserva. Con la planificacin dinmica se permite
aprovechar eficientemente las caractersticas del pipeline (arquitectura segmentada)
concreto sobre el que se ejecuta el programa compilado para una arquitectura genrica
(sin especificar las peculiaridades de cada procesador de la familia).

Por el contrario tambin tienen ciertos inconvenientes:

- Para ofrecer todas las ventajas anteriores, hay que complicar notablemente el
hardware, hacindolo ms caro.
- La planificacin dinmica trae consigo la ejecucin fuera de orden, lo que tambin
implica terminacin fuera de orden, y eso significa la aparicin de riesgos de datos de
tipo WAR (escritura despus lectura) y WAW (escritura despus escritura).
- Complica mucho el tratamiento de los riesgos de control, en especial, el tratamiento de
las interrupciones.

5
Planificacin Dinmica Microcomputadoras II

4.2 Algoritmo del Marcador (Scoreboard)

El mtodo del marcador fue implementado antiguamente por el supercomputador CDC


6600 con el nombre de Scoreboard, cuyo objetivo era obtener el rendimiento ptimo
de una instruccin por ciclo; el mdulo denominado Marcador se encarga de controlar
la emisin, la ejecucin de las instrucciones y la deteccin de riesgos.
En la segmentacin de DLX, los riesgos por dependencias de datos y los estructurales se
comprobaran en ID (decodificacin), ahora se deber separar el proceso de dos partes:
comprobar los riesgos estructurales y esperar la ausencia de riesgos por dependencia
de datos. Se pueden comprobar todava riesgos estructurales cuando se emita una
instruccin; por ello, todava se emiten en orden las instrucciones. Sin embargo,
queremos que comience la ejecucin de las instrucciones tan pronto como sus
operandos estn disponibles. Por tanto el procesador realizara la ejecucin fuera de
orden, lo que, obviamente implica terminacin fuera de orden.
En la segmentacin de DLX, todas las instrucciones pasaban a travs de una etapa de
emisin en orden, y una instruccin detenida en ID provocaba una detencin de todas
las instrucciones que le seguan. Las etapas que se necesitan para permitir la ejecucin
fuera de orden son:
1- Emitir: decodificar instrucciones, comprobar riesgos estructurales.
2- Leer operando: esperar hasta que no haya riesgos de datos, despus leer
operandos.
3- Ejecutar.

6
Planificacin Dinmica Microcomputadoras II

4.3 Limitaciones del Algoritmo

- Limitado a instrucciones en bloques bsicos (secuencias de cdigo sin saltos)


(ventanas pequeas).
- Pequeo nmero de unidades funcionales (riesgos estructurales),
especialmente unidades enteras/load store.
- No se emiten en caso de riesgo estructural.
- Se espera por los riesgos WAR.
- Previene los riesgos WAW.
- No permite que dos instrucciones terminen el mismo ciclo.
- No permite manejar unidades funcionales segmentadas.

4.4 Mejora del Algoritmo

- Una mejora fcil de introducir es permitir que el algoritmo pueda manejar


unidades funcionales segmentadas.

4.5 Control de Riesgos

Para evitar riesgos de tipo WAR y WAW, el Marcador tambin controla cundo una
instruccin puede escribir su resultado en el registro destino. As, todas las detecciones
y resoluciones de riesgos estn centralizados en el marcador.
Cada instruccin pasa por cuatro pasos, los cuales sustituyen los pasos de ID
(decodificacin), EX (ejecucin) y WB (post escritura), aqu no se va a considerar el paso
a memoria.
Los pasos son los siguientes:
1- Emisin (issue): Si una unidad funcional est libe para la instruccin, y ninguna
otra instruccin activa tiene el mismo registro destino, el marcador facilita la
instruccin a la unidad funcional y actualiza su estructura interna de datos. Al
asegurar que ninguna otra unidad funcional activa quiere escribir su resultado
en el registro destino, se garantiza que no pueden estar presentes riesgos WAW.
Si existe un riesgo WAW, entonces se detiene la emisin de la instruccin, y no
se emiten ms instrucciones hasta que desaparezcan estos riesgos.

2- Lectura de operandos: El marcador vigila la disponibilidad de los operandos


fuente. Un operando fuente est disponible si ninguna instruccin activa va a
escribirlo, o si en el registro que contiene el operando est siendo escrito por

7
Planificacin Dinmica Microcomputadoras II

unidad funcional activa en ese momento. Cuando los operando fuente estn
disponibles, el marcador indica a la unidad funcional que proceda a leer los
operandos de los registros y que comience la ejecucin. El marcador resuelve
dinmicamente, en este caso los riesgos RAW y las instrucciones se pueden
enviar a ejecucin fuera de orden. Este paso, junto con el de Emisin, completa
la funcin de la etapa ID en la segmentacin simple de DLX.

3- Ejecucin: La unidad funcional comienza la ejecucin sobre los operandos.


Cuando el resultado est listo, notifica al marcador que se ha completado la
ejecucin. Este paso sustituye al paso EX en la segmentacin de DLX y emplea
mltiples ciclos en la segmentacin FP de DLX.

4- Escritura del resultado: Una vez que el marcador es consciente de que la unidad
funcional ha completado la ejecucin, el marcador comprueba los riesgos WAR.
Un riesgo WAR existe si hay una secuencia de cdigo como ADD y SUB ejemplo:

1. ADD R10, F0, F8


2. SUB R8, R8, R14

8
Planificacin Dinmica Microcomputadoras II

4.6 Componentes del Marcador

Para poder controlar la ejecucin de las instrucciones, el marcador necesita de tres


tablas las cuales son:

Tabla de estado de las Instrucciones: Indica la etapa en la que se encuentra


cada una de las instrucciones activas, es decir que han entrado al cauce.
Ejemplo:

Tabla de estado de las Unidades Funcionales: Indica el estado en el que se


encuentran estas, utilizando diez campos:
Nombre: Indica el nombre de la unidad funcional.
Ocupada: Indica si la unidad est siendo ocupada o no.
Op (Operacin): Indica la operacin a realizar en la unidad.
Fi: Indica el Registro destino.
Fj, Fk: Indican los registros fuente.
Qj, Qk: Indican las unidades funcionales que generan los valores de Fj y Fk.
Rj, Rk: Indican si Fj y Fk estn listos.

9
Planificacin Dinmica Microcomputadoras II

Tabla de Estado de Registro Resultado: Indica la unidad funcional que escribir


en cada registro que sea destino de alguna instruccin activa. Si una entrada no
indica ninguna unidad funcional (por ejemplo con el valor de cero), es que su
valor esta actualizado.

10
Planificacin Dinmica Microcomputadoras II

4.7 Procesador CDC 6600

La funcin del marcador en esta mquina, es controlar la ejecucin de instrucciones


(Lneas de control verticales). Todos los datos fluyen sobre los buses (las lneas
horizontales, llamados troncales Trunks en el CDC 6600) entre el fichero de registros
y las unidades funcionales. Hay dos multiplicadores FP, un divisor FP, un sumador FP y
una unidad entera. Un conjunto de buses (dos entradas y una salida) sirve un grupo de
unidades funcionales.

11
Planificacin Dinmica Microcomputadoras II

4.8 Ejemplo utilizando Marcador

Se tiene el siguiente programa:

LF F6, 34(R2)
LF F2, 45(R3)
MULTF F0, F2, F4
SUBF F8, F6, F2
DIVF F10, F0, F6
ADDF F6, F8, F2

Una vez emitida una instruccin, se almacenan los registros operando en la tabla de
unidades funcionales. Finalmente en la tabla de registros resultado se indica la unidad
que producir cada resultado pendiente, el nmero de entradas es igual al nmero de
registros. La instruccin y ya escribi su resultado, pero la instruccin 2 se ha ejecutado
pero aun no escribe su resultado. Mientras que las instrucciones 3, 4, 5 han sido emitidas
pero estn detenidas, esperando sus respectivos operandos. Se puede apreciar que la
unidad MULT1 est esperando a la unidad Entero de la primera instruccin, tambin la
instruccin 4 Suma, est esperando la unidad Entera. La ultima instruccin de Divide
est esperando la primera unidad de MULT1. La instruccin de ADDF est detenido
debido a un riesgo estructural, desaparecer cuando termine SUBF
12
Planificacin Dinmica Microcomputadoras II

Suponer las siguientes latencias del ciclo EX para las unidades funcionales de punto
flotante: sumar, 2 ciclos de reloj; multiplicar, 10 ciclos de reloj; dividir, 40 ciclos de reloj.
Comenzar en el punto indicado por el estado de instrucciones de la imagen anterior,
mostrar cmo sern las tablas de estado cuando MULTF y DIVF estn listas para ir al
estado de escribir-resultado.

Como se puede ver MULTF an no escribe su resultado y DIVF todava no ha ledo sus
operandos, debido a la dependencia sobre el resultado de la multiplicacin. Como se
puede ver ADDF ha ledo sus operandos, pero tiene que esperar en ejecucin hasta que
SUBF termine para obtener la unidad funcional. As mismo ADDF, tendr que esperar
para proceder a escribir su resultado, por el riesgo WAR en F6, que es utilizada por DIVF.

13
Planificacin Dinmica Microcomputadoras II

Aqu se muestra todas las tablas del Marcador antes de que DIVF escriba su resultado, Como se
puede apreciar ADDF pudo terminar tan pronto como DIVF pas por la lectura de operandos, y
obtuvo una copia del registro F6, quedando as DIVF listo para escribir su resultado.

14
Planificacin Dinmica Microcomputadoras II

4.9 Pruebas del Simulador:

Ejemplo de instrucciones:

LD F0, 4(f3)
ADD F2, F0, F3
Mul F2, F2, F8
LD F2, 5(F0)
Se emite la primera instruccin, en la tabla de estado de instrucciones, se marcara como
ocupada la unidad funcional INT, la cual es utilizada para calcular la direccin de
instrucciones de carga y almacenamiento, En la tabla de estado de registro de salida se
escribe la unidad funcional en el registro correspondiente, en este caso F0.

15
Planificacin Dinmica Microcomputadoras II

La segunda instruccin se emite en el segundo ciclo

Una vez leda la instruccin 1, se colocan en Rj y Rk NO para indicar que los operandos
fuente no estn preparados disponibles para ser ledos por otras instrucciones. En la
segunda instruccin en la tabla de estados de registro resultado, se coloca en el registro
de destino F2, el nombre de la unidad funcional que producir dicho registro.

16
Planificacin Dinmica Microcomputadoras II

La primera instruccin de carga pasa a ejecucin, pero la instruccin 2 queda detenida


por que tiene dependencias RAW.

Como se puede ver la instruccin 2 y 3 tienen un riesgo WAW por tener el mismo
operando destino.

17
Planificacin Dinmica Microcomputadoras II

La instruccin 1 finaliza y procede a su escritura, y es borrada de todas las tablas del


programa, y quedando la instruccin lista para leer sus operandos.

Una vez terminada la instruccin 1 se elimina el riesgo RAW de las instrucciones 1 y 2.


Pero como se mencion antes an existe el riesgo WAW entre las instrucciones 2 y 3 y
un riesgo de RAW, de las mismas instrucciones, porque el operando destino de la
instruccin 2 es el operando fuente de 3.

18
Planificacin Dinmica Microcomputadoras II

La instruccin 2 pasara a leer sus operandos.


No se emitir la instruccin 3 debido al riesgo de WAW, este riesgo desaparece cuando
la instruccin 2 haya escrito su resultado.

19
Planificacin Dinmica Microcomputadoras II

20
Planificacin Dinmica Microcomputadoras II

Como se ve en la imagen anterior la instruccin 2 finalizo y con ello los riesgos para la
instruccin 3. Por lo que ya puede ser emitida.

La instruccin 3 debe estar en la unidad funcional MULT, Teniendo por registro destino
a F2, por tanto en la tabla de registro resultado en el registro F2 se deber escribir el
nombre de la unidad funcional que producir dicho resultado.

21
Planificacin Dinmica Microcomputadoras II

Ahora se pasara a leer los operandos de la instruccin MULT y se colocaran en Rj y Rk


NO indicando que no estn disponibles para ser utilizados por otras instrucciones.
Se pasara a emitir la instruccin 4, colocando sus datos en la unidad funcional INT, por
tratarse de una instruccin de carga.
Se observa en la instruccin 4 uno de sus operandos destino F2, an no est listo para
ser ledo, pues se trata del registro destino de la instruccin 3, y su Rj est marcado con
un NO, por lo cual se coloca en Qk de la unidad funcional INT el nombre de la unidad
funcional que se producir en el registro fuente F2 (MULT).

22
Planificacin Dinmica Microcomputadoras II

La instruccin 4 deber esperar a que se produzca el valor correcto de F2 de la


instruccin 3 para poder leerlo.

Una vez terminada la instruccin 3 de multiplicacin, ya se procede a leer los operandos


de la instruccin 4 sin ningn riesgo

23
Planificacin Dinmica Microcomputadoras II

Se procede a leer los operandos de la ltima instruccin.

24
Planificacin Dinmica Microcomputadoras II

Se finaliza la ltima instruccin del programa en el ciclo 19.

As se da por concluida el programa, y se ve como este algoritmo de Scoreboard trabaja,


bajo los diferentes riesgos.

25
Planificacin Dinmica Microcomputadoras II

5 Conclusiones

La planificacin dinmica nos ayudara a manejar los casos en donde se


desconocen las dependencias en tiempo de compilacin, simplificando de alguna
manera el diseo de compiladores.

En el Algoritmo de marcador, debido a la terminacin en desorden, aparecen los


riesgos WAR y WAW, los cuales son controlados haciendo esperar a las
instrucciones que siguen en el cauce las cuales dependen de las instrucciones
anteriores.

Este algoritmo de marcador o scoreboard utiliza mltiples unidades funcionales


lo cual nos permite tener mltiples instrucciones en la etapa de ejecucin o
emisin.

Las mltiples unidades funcionales del Marcador le permite al procesador, leer


ms instrucciones, teniendo en cuenta las dependencias de las instrucciones, las
cuales en el trascurso del programa van siendo eliminadas.

Debido a las limitaciones del algoritmo, no se puede trabajar con programas muy
complejos, teniendo en cuenta que este algoritmo fue uno de los primeros
implementados para trabajar con planificacin dinmica, en el tratado de
instrucciones.

Gracias a este mtodo de Marcador, es que se realiz el otro algoritmo de


planificacin dinmica, el algoritmo de Tomasulo, el cual fue utilizado en
procesadores ms modernos y permiti seguir avanzando en la planificacin
dinmica y la mejora de rendimientos de procesadores.

26
Planificacin Dinmica Microcomputadoras II

6 Bibliografa

1. 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/4-
Planificacion%20Dinamica.pdf

2. Planificacin de Instrucciones Arquitectura de sistemas paralelos. Disponible en:


http://www.cartagena99.com/recursos/programacion/apuntes/Transparencias_Planifi
cacion_dinamica_2004.pdf

3. Universidad Carlos III de Madrid, Departamento de Ingeniera de Sistemas y Automtica


Planificacin dinmica de instrucciones II. Disponible en:
http://ocw.uc3m.es/ingenieria-informatica/organizacion-de-computadores/material-
teorico-1/OC_T09.pptx

4. Arquitectura de Computadores John L. Hennessy David A. Patterson, Un enfoque


cuantitativo. Disponible en:
http://www.cec.uchile.cl/~ceie/download.php?course=EL4102&file=ArquitecturadeCo
mputadores-JohnL.Hennessy-DavidA.Patterson-UnEnfoqueCuantitativo-Capturado.pdf

27

Vous aimerez peut-être aussi