You are on page 1of 31

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
Submitted to the Departamento Academico de Ingenieria Informatica
in partial fulfillment of the requirements for the thesis format of
Facultad de Ingenieria Electrica, Electronica, Informatica Y Mecanica
at the
UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO
December 2017

c Universidad Nacional San Antonio Abad del Cusco 2017. All rights
reserved.

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

Submitted to the Departamento Academico de Ingenieria Informatica


on Dec 12, 2017, in partial fulfillment of the
requirements for the thesis format of
Facultad de Ingenieria Electrica, Electronica, Informatica Y Mecanica

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.

PALABRAS CLAVE: pipeline, registros,data hazard, forwarding, instruction fetch,


ALU, addres calculation, PCrs, clock, cycles, memory acces.

Thesis Supervisor: M.Sc.Enciso Rodas Lauro


Title: Associate Professor

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.

-Nuestro examinador y supervisor, por M.Sc. Lauro Enciso Rodas, en la Univer-


sidad San Antonio Abad del Cusco por su apoyo constante a lo largo de nuestra tesis.

- Nuestros compañeros de clase, por su contribución a la implementación de cier-


tas partes del diseño del pipeline.

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

3-1 Codigo a nivel de usuario . . . . . . . . . . . . . . . . . . . . . . . . . 15


3-2 Pipeline Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3-3 Data Hazard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3-4 UDR signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3-5 forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5-1 Cronograma de Actividades . . . . . . . . . . . . . . . . . . . . . . . 27


5-2 Presupuesto y Financiamiento . . . . . . . . . . . . . . . . . . . . . . 28

A-1 conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

9
10
Chapter 1

Introducción

Pipeline es una técnica de implementación donde las instrucciones múltiples se su-


perponen en la ejecución. Pipeline de la computadora está dividida en etapas. Cada
etapa completa una parte de una instrucción en paralelo. Las etapas están conec-
tadas una a la otra para formar un pipeline: las instrucciones ingresan en un extremo,
avanzan por las etapas y salen en el otro extremo.
Además de tener operaciones en paralelo a través de unidades funcionales, también
es tı́pico tener varias operaciones en varias etapas de finalización en cada unidad. Esta
canalización permite el rendimiento de las unidades funcionales, sin aumento en la
latencia.
En estas condiciones, la aceleración de la canalización es igual al número de eta-
pas de tuberı́a. Por lo general, sin embargo, las etapas no estarán perfectamente
equilibradas; además, la canalización en sı́ implica algunos gastos generales.
En los últimos años, los arquitectos informáticos se han movido hacia la arquitec-
tura de procesadores multinúcleo para combatir la creciente disipación de potencia y
mejorar aún más el rendimiento de un procesador al mismo tiempo. Los procesadores
multi-core han logrado este objetivo al limitar la velocidad del reloj y ejecutar las
instrucciones en paralelo. A pesar de que la arquitectura multi-core ha contenido la
disipación de potencia hasta cierto punto, presenta nuevos desafı́os propios tales como
la disipación de potencia en la comunicación entre procesadores. Actualmente, se está
llevando a cabo una gran cantidad de investigaciones en el campo de la arquitectura

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

2.1 Planteamiento y/o formulación del problema

- Falta de lı́neas de control en la ruta de datos en un pipelined path para la mejora


del proceso de ejecución de un programa.
- Conflicto de hardware para alguna combinación de instrucciónes.
- Dependencia de datos en las instrucciones y el uso de pipeline, se altera el flujo de
datos del programa.
- Instrucciones de saltos u otras modificaciones del PC.

2.2 Justificación e importancia 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 .

2.3 Definición del problema

Operaciones de entrada/salida suponı́an un cuello de botella. (Data Hazards and


Forwarding)

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

2.5.1 Objetivo general

Explicar y diseñar el pipelined path; resolviendo el principal problema data hazard


con la técnica del forwarding.

2.5.2 Objetivos especı́ficos

El desarrollo de la tesis sigue los siguientes objetivos especı́ficos:


• Implementar lı́neas de control con registros extendidos en los pipelined para incluir
esa información.
• Ellminar riesgo de datos(forwarding)

14
Chapter 3

Marco Teórico

3.1 Antecedentes

Un efecto importante de la canalización es cambiar el tiempo relativo de las instruc-


ciones superponiendo su ejecución. Esto introduce riesgos de datos y control. Los
riesgos de datos ocurren cuando la tuberı́a cambia el orden de los accesos de lectura
/ escritura a los operandos, de modo que la orden difiere del orden visto ejecutando
secuencialmente las instrucciones en la máquina sin filtro. La idea clave en el reenvı́o

Figure 3-1: Codigo a nivel de usuario

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.

Las rutas corresponden a un reenvı́o de:


(a) la salida ALU al final de EX,
(b) la salida ALU al final del MEM, y
(c) la salida de memoria al final de MEM.

3.2 Base Teórica

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]

Figure 3-2: Pipeline Control

17
Data Hazard and Forwarding

El camino de datos mostrado anteriormente funciona correctamente mientras no se


presenten problemas por dependencia de datos al ejecutarse en una secuencia de
instrucciones como la que se muestra en la figura:[3] De la figura anterior vemos que

Figure 3-3: Data Hazard

las instrucciones 2 y 3 utilizaron el resultado del registro r2 de la instrucción 1. El


inconveniente que se presenta es debido a que las instrucciones 2 y 3 dependen del
dato r2 y para este momento el dato no es el correcto, el dato es actualizado hasta
el 5to ciclo del reloj y las instrucciones 2 y 3 necesitan hacer uso de el en los ciclos
3 y 4. ası́ también se observa que la instrucción 4 depende del resultado obtenido
de la instrucción 2, generándose el mismo problema, pues esta última depende del
resultado de la instrucción 1. Por lo anterior es necesario implementar una unidad
que dé solución a estos problemas.
Existen varias maneras de resolver este conflicto. La forma más sencilla de solu-
cionarlo a través del hardware es deteniendo las instrucciones en la segmentación

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]

Riesgo en la etapa de ejecución

se presenta cuando una instrucción que se encuentra en la etapa de decodificación


solicita el resultado de una instrucción que esta en la etapa de ejecución y al señal
de escribir registro esta activa(ID/EXE.EscREG).la condición que se cumple para
detectar este riesgo es:
ID/EXE.Escreg y ((ID/EXE.RegDest=0y
ID/EXE.EscribirRegistroRd=IF/ID.LeerRegistro1) o (ID/EXE.RegDest=1y
ID/EXE.EscribirRegistroRc=IF/ID.LeerRegistro1)
(ID/EXE.RegDest=0y ID/EXE.EscribirRegistroRd=IF/ID.LeerRegistro2)
(ID/EXE.RegDest=1y ID/EXE.EscribirRegistroRc=IF/ID.LeerRegistro2))

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.

Riesgo en la etapa de memoria

Cuando en un registro se escribe el resultado de una instrucción que se encuentra en


la etapa de memoria, es solicitado como operando en la etapa de decodificación y la
señal de escribir registro de la etapa memoria esta habilitada(EXE/MEMO.EscReg).

Riesgo en la etapa postescritura

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

de multiplexores a la entrada de la ALU para asignar el dato correcto al operando en


la etapa de ejecución. esta técnica permite recorrer las etapas de segmentación aun en
presencia de los riesgos de dependencia de datos. Las Condiciones a considerar para
la implementación de la unidad de anticipación (UA) y la localización de resultado
son las siguientes: Riesgos en la etapa de ejecución Cuando se detecta un riesgo en
la etapa de ejecución, el dato que se requiere se encuentra en el registro d ejecución-
memoria, por lo que el dato se toma de esta etapa . lo anterior se lleva a cabo al
considerar las siguientes condiciones:

Si(EXE/MEMO.EscReg y ALUSelA=01
Si(EXE/MEMO.EscReg y ALUSelB=01
Donde:

EXE/MEMO.EscReg: Laseñal de escribir registro se encuentra habilitada.


EXE/MEMO.EscribirRegistro: especifica el numero de registro a escribir en la etapa
de ejecución.
ID/EXE.LeerRegistro 1 o 2: Especifica el registro a leer en la etapa de ejecución.
AlU.USelA o B: lı́neas de selección para determinar la procedencia del dato a procesar

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.

Figure 3-5: forwarding

24
Chapter 4

Metodologı́a de la Investigación

4.1 Tipo y nivel de la investigación


TIPO DE INVESTIGACIÓN: DESCRIPTIVA (por qué describimos el funcionamiento
de la ruta de datos y describimos las soluciones a problemas forwarding).
NIVEL DE INVESTIGACIÓN: EXPLICATIVO (explicamos el comportamiento
de las lı́neas de control, los problemas de enrutamiento y sus respectivas soluciones).

4.2 Población y muestra


Tomamos como población procesadores de arquitectura RICS (monociclos y multici-
clos) Y tomamos como muestra un datapath simple para poder describir las lı́neas de
control y los problemas básicos de enrutamiento de datos.

25
26
Chapter 5

Proyección Administrativa

5.1 Cronograma de actividades

de actividades.png

Figure 5-1: Cronograma de Actividades

27
5.2 Presupuesto y Financiamiento

Figure 5-2: Presupuesto y Financiamiento

28
Appendix A

Conclusiónes

El impacto de integrar una instrucción y un caché de datos en el pipeline no se


considera en esta evaluación. La introducción de cachés tendrá un gran impacto en
el tiempo, el área y la potencia de la tuberı́a. Algunas de las conclusiones, basadas
en los resultados de la evaluación de la tuberı́a, realizadas anteriormente podrı́an no
ser válidas cuando las memorias caché se integran y evalúan como parte del pipeline.
Por ejemplo, el área ocupada por los cachés será tan grande que usar un predictor
bimodal o uno de dos niveles tendrá un impacto insignificante en el área total de la
tuberı́a. Por lo tanto, estas evaluaciones deben ser reconsideradas después de integrar
las cachés en el pipeline.[12]
Control de máquinas de estado VIA y microprogramación
• Solo superponer tareas; fácil si las tareas son independientes
• Speed Up menor o igual Pipeline Depth; si el IPC ideal es 1, entonces: • Los peligros

Figure A-1: conclusión

limitan el rendimiento en las computadoras:


- Estructural: necesita más recursos HW
- Datos (RAW, WAR, WAW): necesita reenvı́o, compilador programación.

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

[1] M. Dubois, M. Annavaram, P. Stenstrom, Parallel Computer Organization and


Design, Cambridge University Press, 2012.
[2][3] D. A. Patterson, J. L. Hennessy, Computer Organization and Design: The
Hardware/Software Interface, Fourth Edition, 4th Edition, Morgan Kaufmann Pub-
lishers Inc., 2008.
[4] S. Mirapuri, M. Woodacre, N. Vasseghi, The MIPS R4000 Processor, in: IEEE
Micro, Volume 12, Issue 2, 1992, pp. 10–22.
[5] T. Austin, E. Larson, D. Ernst, SimpleScalar: An infrastructure for computer
system modeling, Computer 35 (2) (2002) 59–67.
[6] K. Inoue, T. Ishihara, K. Murakami, Way-predicting set-associative cache for
high performance and low energy consumption, in: Proceedings, 1999 International
Symposium on Low Power Electronics and Design, 1999, pp. 273–275.

31