Pipeline Control Data Hazard PDF
Pipeline Control Data Hazard PDF
Pipeline Control Data Hazard PDF
by
Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Departamento Academico de Ingenieria Informatica
Dec 12, 2017
Certified by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
M.Sc.Enciso Rodas Lauro
Associate Professor
Thesis Supervisor
Accepted by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
M.Sc.Enciso Rodas Lauro
Profesor del Departamento Academico de Ingenieria Informatica
2
Pipeline Control and Data Hazard - Forwarding
by
Cornejo Pillco, Javier Jail 155193
Aima Jalisto John, Aldair 143830
Palomino Povea, Angel 103172
Lima Ramos, Anibal 144999
Abstract
In this thesis, We will study the control of pipelined datapath; to begin we will design
the pipelined datapath, which will allow us to see exactly how it works. Also you can
see what are the most common problems in the pipeline technique.
The most common problem of this technique is the data hazard so that the solution
to this problem, which is forwarding, will be considered, besides this technique may
not be the most accurate to solve this type of problems.
Resumen
En esta tesis, estudiaremos el control de pipelined datapath ; para comenzar, diseñaremos
la ruta de datos enrutada, que nos permitirá ver exactamente cómo funciona. También
puede ver cuáles son los problemas más comunes en la técnica del pipeline.
El problema más común de esta técnica es el data hazard, por lo que se considerará
la solución a este problema, que es el forwarding,que no puede ser la más precisa para
resolver este tipo de problemas.
3
4
Acknowledgments
We would like to thank the following people for their contribution and support.
-Our examiner and supervisor, Per M.Sc. Lauro Enciso Rodas, at Universidad San
Antonio Abad del Cusco for his constant support throughout our thesis.
- Our classmates, for their contribution towards implementing certain parts of the
pipeline design.
Agradecimientos
Queremos agradecer a las siguientes personas por su contribución y apoyo.
5
6
Contents
1 Introducción 11
2 Problematica de la Investigación 13
2.1 Planteamiento y/o formulación del problema . . . . . . . . . . . . . . 13
2.2 Justificación e importancia de la investigación . . . . . . . . . . . . . 13
2.3 Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Limitaciones del problema . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.2 Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . . . 14
3 Marco Teórico 15
3.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Base Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4 Metodologı́a de la Investigación 25
4.1 Tipo y nivel de la investigación . . . . . . . . . . . . . . . . . . . . . 25
4.2 Población y muestra . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 Proyección Administrativa 27
5.1 Cronograma de actividades . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Presupuesto y Financiamiento . . . . . . . . . . . . . . . . . . . . . . 28
A Conclusiónes 29
7
8
List of Figures
A-1 conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9
10
Chapter 1
Introducción
11
de núcleos múltiples para hacer que los procesadores futuros sean eficientes desde el
punto de vista energético. La eficiencia energética de una arquitectura multinúcleo
está determinada principalmente por la eficiencia energética de un núcleo individual
[1].
12
Chapter 2
Problematica de la Investigación
Toma mucha importancia la solución de los riesgos que hay en la ruta de datos en
proceso de instrucciones en un procesador en el cual nuestra investigación se basa en
solucionar este problema .
13
2.4 Limitaciones del problema
Falta de actualización de registros en riesgos de control y reenvió en empresas fabri-
cantes de procesadores El perı́odo de tiempo de recolección de la información com-
prende una semana.
2.5 Objetivos
14
Chapter 3
Marco Teórico
3.1 Antecedentes
es que el resultado realmente no es necesario para SUB hasta que ADD realmente lo
produce. El único problema es hacerlo disponible para SUB cuando lo necesite.
Si el resultado se puede mover desde donde lo produce ADD (registro EX / MEM),
hasta donde lo necesita el SUB (bloqueo de entrada ALU), se puede evitar la necesi-
dad de un bloqueo. Usando esta observación, el reenvı́o funciona de la siguiente
manera:
15
*El resultado de la ALU del registro EX / MEM siempre se retroalimenta a los
pestillos de entrada de la ALU.
Si el hardware de reenvı́o detecta que la operación de ALU anterior ha escrito el reg-
istro correspondiente a la fuente para la operación de ALU actual, la lógica de control
selecciona el resultado reenviado como la entrada de ALU en lugar del valor leı́do del
archivo de registro.
El reenvı́o de resultados a la ALU requiere la adición de tres entradas adicionales en
cada multiplexor ALU y la adición de tres rutas a las nuevas entradas.
Pipelined Control
Para realizar el control del camino de datos segmentado en conveniente dividir las
lı́neas de control de acuerdo alas etapas de segmentación. En la etapa de búsqueda y
decodificación no se necesita un control especial ya que estas realizan la misma tarea
en cada ciclo del reloj. En las estapas siguientes si se requiere lı́neas de control paa
que los elementos que las componen se han utilizado según el tipo de instrucción que
se tenga. Por lo que para las siguientes etapas se especifican a continuación las lı́neas
de control necesarias:
• Captación de la instrucción: Las señales de control para leer la memoria de
instrucciones siempre se afirman, por lo que no hay nada que controlar en esta etapa
de la canalización.
• Lectura de archivo de registro / decodificación de instrucción: al igual que en
la etapa anterior, sucede lo mismo en cada ciclo de reloj, por lo que no hay lı́neas de
16
control opcionales para establecer.
• Cálculo de ejecución / dirección: las señales que se configurarán son RegDst,
ALUOp y ALUSrc .
• Acceso a la memoria: las lı́neas de control configuradas en esta etapa son Branch,
MemRead y MemWrite. Estas señales son establecidas por las instrucciones de rama
igual, de carga y de almacenamiento, respectivamente.
• Redactar: las dos lı́neas de control son MemtoReg, que decide entre enviar el
resultado ALU o el valor de la memoria al archivo de registro, y RegWrite, que escribe
el valor elegido.
Para completar el control del procesador se emplean lı́neas de control que in-
diquen cuando se realizara un salto incondicional(salto) y cuando debe cargarse una
pagina(pag).la implementación de lı́neas de control para la segmentación en el camino
de datos se vera la siguiente manera:[2]
17
Data Hazard and Forwarding
18
hasta que se resuelva el riesgo. A esta técnica se le conoce como burbuja, puesto que
primero se detecta el riesgo y se detienen las instrucciones en la segmentación. El
riesgo es generado cuando una instrucción intenta leer un registro que aún no ha sido
actualizado debido a que se encuentra dentro de la segmentación. Este problema se
detecta en la etapa de la decodificación.
La unidad de detección de riesgos(UDR)debe controlar la escritura de los reg-
istros PC y el registro de segmentación IF/ID. además es necesario implementar un
multiplexor entre el control y el registro de segmentación ID/EXE, para asignarlo
valores que asumirán las lı́neas para el control de los siguientes segmentos (con un 1
las lı́neas de control serán puestas a 0, presentando un riesgo y de esta forma se crea
la burbuja, con un 0, no existe riesgo y por lo tanto las lı́neas de control tendrán los
valores generados por la unidad de control).[4]
Donde:
ID.EXE.RegDest:indica el tipo de instrucción que se tiene en la etapa de eje-
cución(si 0, es una instrucción aritmética-logica y si 1 , es una instrucción de carga.
Escribir RegistroRd: Denota el registro destino de una instrucción aritmético-
lógica.
Escribir RegistroRc: Denota el registro destino de una instrucción de carga.
19
IF/ID.LeerRegistro1y2:son registros operandos en la etapa de decodificación.
Se detecta un riesgo cuando el dato del registro destino de una instrucción que se en-
cuentra en la etapa de posescritura (MEMO/WB.EscribirRegistro)es solicitado como
operando por otra instrucción en la etapa de decodificación(IF/ID.LeerRegistro1o
IF/ID.LeerRegistro2) y la señal de escribir registro se encuentra habilitada. Cuando
se detectan los riesgos en las etapas mencionadas es necesario detener la ejecución de
instrucciones hasta que le problema se solucione. Por tal motivo se requieren emplear
señales que detengan la búsqueda de instrucciones y elimine el riesgo en las etapas
de ejecución, memoria y postescritura. En la tabla siguiente se muestran las lı́neas
de datos utilizadas para la implementación de la unidad de detección de riesgos y su
diagrama correspondiente(FIGURA 3.2)
Forwarding
Hasta el procesador soluciona los problemas de dependencia de datos atraves del uso
de la detención de instrucciones(Burbuja) permitiendo realizar la ejecución correcta de
las mismas. Pero esto provoca en un bajo rendimiento, ya que se tiene que esperar la
actualización de registros. El resultado de una instrucción que se encuentra en alguna
etapa de segmentación, está disponible en los registros de segmentación en el que se
localiza la instrucción. Por tanto, una alternativa al problema de la dependencia de
datos es utilizar el resultado antes de que sea escrito en los registros correspondiente.
Esta técnica se conoce con el nombre de anticipación o forwarding. Su implementación
en hardware se basa en un control similar ala unidad de detección de riegos y el uso
20
Figure 3-4: UDR signals
Si(EXE/MEMO.EscReg y ALUSelA=01
Si(EXE/MEMO.EscReg y ALUSelB=01
Donde:
21
Riesgos en La ETAPA DE MEMORIA
si se detecta un riesgo en la etapa de memoria se utiliza el dato de registro que se
encuentra en la etapa de postescritura. La condición para este caso es la siguiente:
Si(MEMO/WB.EscReg y MEMO/WB.EscribirRegistro=ID/EXE.LeerRegistro1
ALUSelA=10
Si(MEMO/WB.EscReg y MEMO/WB.EscribirRegistro=ID/EXE.LeerRegistro2
Donde:
MEMO/WB.EscReg: la señal de escribir registro se encuentra habilitada.
MEMO/WB.EscribirRegistro:especifica el número de registro a escribir en la etapa
de memoria ID/EXE.LeerRegistro1 o 2: especifica el registro a leer en la etapa de
ejecución. ALUSelA o B: lı́neas de selección para determinar la procedencia de dato
a procesar.
La UA permite anticipar los datos necesarios para otra instrucción sin embargo.
Existen casos en los que no se puede evitar detener las instrucciones , como cuando se
tiene una instrucción de carga seguida de instrucciones que requieren leer el registro
de carga . en este caso , el dato va a ser leı́do de la memoria y ala ves la ALU necesita
el dato para continuar. Por lo que es necesario detener las segmentación . esto hace
necesario el uso de la UDR sufre cambios y funciona con conjunto con la UA. Las
condiciones que deben considerarse son las siguientes y su representación grafica se
muestra en la figura 3.3. El camino de datos del procesador resuelve hasta este mo-
mento los riesgos de dependencia de datos en operaciones aritméticas y transferencia
de datos , sin comprometer el rendimiento en la ejecución de instrucciones
RIESGO DE CONTROL
Otro tipo de riesgo que se presenta es con respecto a los saltos . como se sabe la
segmentación se basa en la ejecución de instrucciones en cada ciclo del reloj , por lo
que existe un problema cuando en la secuencia de instrucciones se encuentra un salto
(condicional o incondicional ). Ya que la siguiente dirección a ejecutar esta indicada
en la instrucción. Para saltos condicionales la decisión de saltar o no , se determina
en la etapa de memoria y para los saltos incondicionales se encuentra en la etapa de
decodificación . aquı́ es donde se presenta en riesgo de control . las instrucciones
22
seguidas al salto se buscaran y se ejecutaran antes de saber si se salta o no y será
tarde para detenerlas . para solucionar este tipo de riesgos lo mas conveniente es
anticipar el salto . existen dos esquemas sencillos que resuelven este problema.
Siempre detecciones
Esta solución se basa en detener las instrucciones hasta que se complete la in-
strucción de salto . en consecuencia se detiene la perdida de varios ciclos del reloj ,
además de que muchas veces el salto condicional no se realiza.
Salto no realizado
Se asume que el salto no se realiza y se continua con la ejecución secuencial
de instrucciones. si el salto se realiza , las instrucciones que se están buscando y
decodificando deben ser descartadas y la ejecución debe continuar con la dirección
destino del salto.
El esquema a implementar en el camino de datos suponer que el salto no se realiza.
Para llevar acabo la implementación y descartar las instrucciones que se ejecutan
asumiendo que instrucción de salto no se llevara acabo, es necesario cambiar los valores
de control originales aun valor 0 y eliminar las instrucciones de las etapas de búsqueda
., decodificación y ejecución para que esta tarea se lleve acabo se necesita realizar
modificaciones en las etapas de segmentación , como se enuncian a continuación.
Etapa de búsqueda(IF)
Pone a cero el campo de instrucción del registro de segmentación IF/ID para
descartar las instrucción buscada. Esto se realiza añadiendo una lı́nea de control
denominada IF.FLUSH . cuando esta señal es puesta a uno el campo de instrucción
del registro iF/ID s limpiara. Etapa de decodificación(ID)
Para realizar las detecciones se usa el multiplexor de la etapa ID el cual pone a
ceros las lı́neas de control llamada ID.flash . que al hacer la operación or con la señal
de detección de la UDR, descarte la instrucción que esta siendo decodificada.
Etapa de ejecución (EXE)
Se cera la señal EXE.flush, para permitir que los multiplexores a implementar
lleven a un nivel bajo(0)alas lı́neas de control EXE. Control segmentado
Determina si envı́a o no una señal de flujo (IF.flush,ID.flush,EXE.flush)para descar-
23
tar instrucciones, dependiendo del código de operación que este examinándose . las
condiciones que deben ser adicionadas se escriben como sigue:
Si b=1 una de las banderas(acarreo y cero)están activas, se activan señales de
flujo .
Si salto=1, la señal IF.flush=! y el campo IF/ID . instrucción toma el valor de cero.
24
Chapter 4
Metodologı́a de la Investigación
25
26
Chapter 5
Proyección Administrativa
de actividades.png
27
5.2 Presupuesto y Financiamiento
28
Appendix A
Conclusiónes
29
- Control: rama retrasada, predicción
• Excepciones, interrupciones agregan complejidad
Futuros Trabajos
Se implementará e integrará una instrucción y una memoria caché de datos con acceso
de dos ciclos en la tuberı́a de 7 etapas. Las memorias caché implementadas serán set-
predicting set-associative, porque las memorias caché de predicción de ruta reducen
el consumo de energı́a en aproximadamente un 70 porciento en comparación con
las memorias caché convencionales [19]. La tuberı́a será verificada y reequilibrada
con respecto al tiempo. La tuberı́a verificada se sintetizará y se volverá a evaluar
con respecto al área y la potencia. El rendimiento de los predictores de bifurcación
puede mejorarse aún más mediante la optimización del contenido del BTB, es decir,
almacenar la instrucción de destino de bifurcación en lugar de la dirección de destino
de bifurcación. Esta técnica ayudará a reducir los ciclos de búsqueda en caso de
predicción válida.
30
Bibliography
31