Paralelismo a nivel de instruccion Flashcards

1
Q

Instruction decode (ID)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Instruction fetch (IF)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Execute (EX)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Memory (MEM)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Writeback (WB)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pipeline

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

terminos relevantes en el contexto de pipeline

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

registros para pipeline

A

IF/ID, ID/EX, EX/MEM y MEM/WB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

registro if/id

A

IF/ID: almacena la instrucci´on obtenida desde la memoria de instrucciones, incluyendo el opcode y el
par´ametro

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

id/ex

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

ex/mem

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

mem/wb

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hazards

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

tipos de hazards

A
hazards
de datos (data hazards), hazards de control (control hazards) y hazards estructurales (structural hazards)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hazard de datos

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

forwarding

A

La idea de forwarding es, al estar ejecutando una instrucci´on, detectar si va a ocurrir un data hazard,
y en ese caso realizar la propagaci´on correspondiente. Esta detecci´on debe realizarse en la etapa EX de la
instrucci´on actual, antes de que se ejecute la operaci´on de la ALU, que es lo primero que va a necesitar alg´un
par´ametro

17
Q

forwarding unit

A

se encarga de revisar si ocurri´o un data hazard y en caso de haber
ocurrido uno, propaga los valores a las entradas de la ALU correspondiente, a trav´es de dos multiplexores
que se agregan a estas entradas

18
Q

stalling

A

mecanismo que permita que la siguiente
instrucci´on ✭✭espere✮✮ mientras se obtiene el valor necesario
la idea es hacer que la instrucci´on siguiente no entre en la etapa EX hasta
que se haya obtenido el dato desde memoria. Para lograr esto hay dos mecanismos: uno implementado por
hardware y otro por software.
- En el mecanismo por hardware, el procesador debe detectar esta situaci´on y
detener el avance del pipeline por un ciclo, insertando lo que se conoce como una ✭✭burbuja✮✮ en el pipeline
(figura 23). Esta detenci´on permite que se mantenga la consistencia de los datos, pero a costo de perder un
ciclo de CPU.
-la idea es que el compilador
cuando genere el c´odigo assembly a partir del c´odigo de alto nivel, detecte los casos posibles de hazard que
requieran stalling e inserte entre las dos instrucciones una instrucci´on que no hace nada, la que se conoce
como NOP

19
Q

acciones cuando hay stalling

A

Para detectar estos hazards, se agrega una unidad de detecci´on de hazards en la etapa ID. Una vez
detectado un caso, esta unidad realiza tres acciones:
1. Setea en cero todas las se˜nales de control almacenadas en el registro ID/EX, para no propagar la
instrucci´on actual.
2. Env´ıa una se˜nal de no escritura al registro IF/ID, para que mantenga la instrucci´on actual almacenada
y no sea sobreescrita por la siguiente.
16
3. Env´ıa una se˜nal de no avanzar al PC, para que se mantenga apuntando a la instrucci´on siguiente, y
no avance.

20
Q

hazards de control

A

d ocurre cuando hay una instrucci´on de salto: el problema con estas instrucciones es que
dependiendo de si hay o no salto cambiar´a cual es la siguiente instrucci´on, pero con el dise˜no actual del
procesador esto se sabe reci´en en la etapa MEM de la instrucci´on de salto, y por tanto a esas alturas ya
entraron las siguientes instrucciones al pipeline

21
Q

soluciones hazards de control

A
  1. realizar stalling del
    pipeline los ciclos que sean necesarios para que la siguiente instrucci´on no entre hasta que se sepa si hay o
    no salto, y por tanto se sepa que instrucci´on corresponde. En el caso de este pipeline, esto involucra detener
    la CPU por 3 ciclos, es decir perder 3 ciclos por cada salto
  2. mecanismo de predicci´on de salto. La idea
    de este mecanismo es que uno puede predecir si el salto va a ocurrir o no, y en caso de que la predicci´on sea
    correcta, no se van a perder ciclos de la CPU. La predicci´on m´as simple consiste en predecir que nunca va
    a ocurrir salto, es decir, que el flujo de las instrucciones siempre seguir´a de manera secuencial. Cuando esta
    predicci´on sea correcta, no se perder´an ciclos de la CPU. En caso de que la predicci´on sea incorrecta y efectivamente ocurra el salto, las siguientes tres instrucciones
    que ya entraron al pipeline no deben ser ejecutadas. Para lograr esto se agrega una unidad de hazard de
    control en la etapa IF (figura 29), la cual cuando detecta que hay salto env´ıa una se˜nal de flush que avisa a
    18
    las siguientes etapas del pipeline que no deben ejecutar las se˜nales de control que se hab´ıan enviado
  3. ocupando sistemas de predicci´on din´amica en
    los cuales se predice a medida que se ejecuta el programa si un salto va a ocurrir o no, en base a informaci´on
    estad´ıstica obtenida de cada instrucci´on. Este tipo de predicci´on requiere hardware especializado, pero con
    esto es posible mejorar a´un m´as el desempe˜no del procesador en estos casos
22
Q

hazards estructurales

A

hazards estructurales ocurren cuando dos etapas del pipeline necesitan acceder a la misma unidad
funcional. Un ejemplo ocurre en un computador Von Neumann, donde la memoria ´unica de instrucciones
y datos ser´ıa accedida tanto en la etapa IF como en la etapa MEM. Existen distintas formas de solucionar
este tipo de hazards:
Agregar unidades funcionales extras que permitan atender las dos etapas del ciclo sin contenci´on. En el
caso de las memorias, tener una cach´e split de primer nivel transforma la arquitectura del computador
en Harvard y se soluciona el problema.
Agregar ✭✭burbujas✮✮ mediante stalling que hagan que una de las instrucciones que quer´ıa ocupar la
unidad funcional en un cierto ciclo espere hasta el siguiente