Paralelismo a nivel de instruccion Flashcards
Instruction decode (ID)
La segunda etapa del ciclo corresponde al instruction decode, es decir la decodificaci´on de la instrucci´on
y la generaci´on de las se˜nales de control. La unidad de control se encargar´a de transformar el opcode de la
instrucci´on obtenida en las se˜nales de control espec´ıficas que le indicar´an al procesador que tarea ejecutar.
Instruction fetch (IF)
Corresponde a la primera etapa del ciclo, en la cual se va a buscar a la memoria de instrucciones la
siguiente instrucci´on, apuntada por el valor actual del Program Counter. La salida de esta etapa es la
instrucci´on obtenida desde memoria, la cual se separar´a en un opcode y en el par´ametro.
Execute (EX)
La tercera etapa corresponde a la ejecuci´on, la cual es realizada mediante la ALU. Esta, como ´unica
unidad de ejecuci´on en este computador, se encargar´a de realizar la operaci´on seleccionada en la etapa
previa, con los par´ametros seleccionados tambi´en por las se˜nales de control, obteniendo un resultado. Adicionalmente,
la ALU tambi´en generar´a el condition code Z, dependiendo del resultado de la operaci´on
obtenida.
Memory (MEM)
La cuarta etapa corresponde a la lectura o escritura en memoria de datos. Esta etapa solo estar´a presente
si a la instrucci´on ejecutada le correspond´ıa una transferencia hacia o desde memoria (por ejemplo la
instrucci´on MOV (var1), A). En esta etapa se podr´a haber escrito en memoria u obtenido un dato de esta
para luego ser almacenado en un registro.
a tambi´en se incluir´a la definici´on si corresponde
saltar o no, por parte de la unidad de salto. Aunque este proceso no tiene relaci´on con la memoria de
datos, se incluye en esta etapa debido a que solo luego de ejecutar la operaci´on en la ALU se podr´a tener la
informaci´on necesaria para esta decisi´on.
Writeback (WB)
La ´ultima etapa del ciclo tambi´en estar´a presente s´olo en algunas instrucciones. En esta etapa de writeback,
corresponder´a escribir en los registros, ya sea un resultado de la ALU o un dato obtenido desde memoria
Pipeline
ciclo de una instrucci´on se caracteriza por corresponder a una secuencia de pasos que debe recorrer
esta, cada uno de los cuales estar´a a cargo de una unidad funcional del computador distinta. Este tipo de
procesos secuenciales con etapas independientes se conoce como pipeline.
terminos relevantes en el contexto de pipeline
profundidad (depth)
per´ıodo al comenzar el procesamiento de una secuencia de instrucciones, en el cual no todas las
etapas del pipeline est´an ocupadas, se conoce como llenado o filling
er´ıodo en el cual todas las etapas est´an ocupadas se dice que el pipeline est´a lleno o full.
r´ıodo al terminar el procesamiento de una secuencia de instrucciones, en el cual no todas las
etapas del pipeline est´an ocupadas, se conoce como vaciado o emptying
registros para pipeline
IF/ID, ID/EX, EX/MEM y MEM/WB
registro if/id
IF/ID: almacena la instrucci´on obtenida desde la memoria de instrucciones, incluyendo el opcode y el
par´ametro
id/ex
ID/EX: almacena los dos par´ametros de la ALU, el valor del registro seleccionado para ser copiado a
memoria (si corresponde) y el par´ametro de la instrucci´on. Este ´ultimo se debe ir propagando para el
caso de las instrucciones de salto, ya que es necesario que sea cuando se revise si va a haber salto (en
la etapa MEM) que se cargue el PC con la direcci´on de memoria a saltar.
almacena todas las se˜nales de control necesarias para todas las siguientes etapas: operaci´on
de la ALU (AluOP), se˜nal de escritura en Memoria (W), se˜nales de carga en los registros (LoadA
y LoadB), se˜nal de selecci´on de que se va a escribir en los registros (RegIn) y se˜nal que indica si la
instrucci´on actual es de salto (Jmp).
ex/mem
EX/MEM: resultado de la ALU, el valor del registro seleccionado para escribir en memoria y el
par´ametro de la instrucci´on ambos que se propagaron de la etapa anterior.
: en la etapa EX se utiliz´o la se˜nal AluOp, por lo que no es necesario propagarla, se propagan
todas las dem´as.
mem/wb
MEM/WB: resultado de la ALU y el valor le´ıdo de memoria, los cuales ser´an utilizados en WB para
escribir (si corresponde) en los registros
En la etapa MEM se utilizan las se˜nales Jmp y W, solo se requiere propagar la se˜nal RegIn
y las se˜nales LoadA y LoadB.
Hazards
problemas ocurren por distintas razones, pero en general se deben al hecho de empezar a
procesar una instrucci´on antes de que se haya procesado la anterior.
tipos de hazards
hazards de datos (data hazards), hazards de control (control hazards) y hazards estructurales (structural hazards)
Hazard de datos
La causa de este problema es que la secuencia
de instrucciones del ejemplo presenta dependencia entre los datos que utiliza. Si la instrucci´on 2 no
ocupara el registro A, no habr´ıa problema, pero como depende de tener el valor que se genera en la primera
instrucci´on, ocurre un error