procesador segmentado - inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... ·...

72
1 Procesador Segmentado

Upload: ngodiep

Post on 09-Nov-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

1

Procesador Segmentado

Page 2: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

2

Procesador Segmentado

Se desea ejecutar varias instrucciones, al mismo tiempo.

Se dividen las etapas mediante registros, cada instrucción puede estar ejecutándose en una etapa.

Cinco etapas, pueden ejecutarse simultáneamente cinco instrucciones.

Es preciso, que cada instrucción pase por las cinco etapas, y que cada etapa tenga su propio control.

Page 3: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

3

Procesador Segmentado

Se ejecutan varias instrucciones, que usan recursos diferentes, en forma simultánea.

Se comienza la próxima instrucción mientras se trabaja aún en otra.

La velocidad de avance está limitada por la etapa más lenta.

Page 4: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

4

Procesador Segmentado

Etapas:Búsqueda de Instrucción. (BI)Decodificación.Lectura Registros. (Dec)Ejecución. (Eje)Operación con memoria de datos. (Mem)Escritura en arreglo de registros. (WR)

Page 5: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

5

Procesador Segmentado

Ejecución de instrucciones

WRMeEjeDecBI 

WRMeEjeDecBI

WRMeEjeDecBItiempotiempo

flujo de ejecuciónflujo de ejecución

Page 6: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

6

Procesador Segmentado

Load Store Add

BI Dec Eje Me BI DecBI Dec Eje Me WR

BI Dec Eje Me WR

BI Dec Eje Me WR

BI Dec Eje Me WR

Monociclo

Multiciclo

Segmentado

Reloj Monociclo

Reloj Multiciclo y pipeline

Page 7: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

7

Procesador Segmentado

En la ejecución monociclo: El período del reloj lo establece la instrucción que

más demora en ejecutarse. A la vez este período es la suma de los tiempos

asociados a cada etapa. En el diagrama los tiempos de acceso a memoria de

instrucciones y de datos se asumen iguales y levemente mayores que la operación de la unidad aritmético lógica; la lectura y escritura de registros, se asumen iguales y menores que el tiempo de propagación en la alu.

Page 8: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

8

Procesador Segmentado

En la ejecución multiciclo: El período del reloj lo establece la etapa que más

demora en realizarse(acceso a memoria). En el diagrama se aprecia que la instrucción load

word demora más en ejecutarse en la máquina multiciclo.

Sin embargo la instrucción store word demora menos, y también es más rápida la ejecución de la secuencia lw, sw, en el procesador multiciclo.

Page 9: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

9

Procesador Segmentado

En la ejecución segmentada (pipeline):Asumiendo que cada instrucción ocupa las

cinco etapas, la realización individual de una de ellas demora lo mismo que la más lenta en la ejecución multiciclo.

Se aprecia que es más rápida la ejecución de la secuencia lw, sw, en el procesador segmentado que en el multiciclo.

Page 10: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

10

Procesador Segmentado

Ejemplo:Suponer que se ejecutan 100 instrucciones:

Procesador monociclo 45 ns/ciclo x 1 CPI x 100 inst = 4500 ns

Procesador Multiciclo 10 ns/ciclo x 4.6 CPI (debido a la mezcla) x 100 inst =

4600 ns

Segmentada ideal 10 ns/ciclo x (1 CPI x 100 inst + 4 ciclos llenado) =

1040 ns

Page 11: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

11

Procesador Segmentado

En procesador Segmentado:Si T es la duración de la etapa más lenta.

Con n etapas: I instrucciones demoran:

T* ( I + (n-1) )

Page 12: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

12

Procesador Segmentadotiempo(ciclos de reloj)

orden de ejecución

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción 4

Instrucción 5

todas las etapas están ejecutando una instrucción diferente en un mismo ciclo.

Cuando la instrucción 1 está en escritura de registros WR,

la 2 está en Memoria de datos;

la 3 está en Ejecución en Operaciones;

la 4 está en decodificación y lectura de registros;

la 5 está en la etapa de búsqueda de instrucción.

Page 13: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

13

Procesador Segmentado

Multiciclo versus segmentación.En un procesador multiciclo interesa que el

número de etapas o microciclos sea mínimo para cada una de las instrucciones. Esto disminuye el CPI promedio.

En un procesador segmentado interesa disminuir las detenciones debidas a conflictos.

Page 14: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

14

Procesador Segmentado

En un camino segmentado las cinco unidades funcionales independientes son: Memoria de instrucciones para la etapa de búsqueda.

BI (fetch). Puertas A y B de lectura del arreglo de registros para la etapa

de Decodificación y Lectura de Registros. Reg/Dec.

Unidad aritmético-lógica para la etapa de Ejecución. Ejec.

Memoria de Datos para la etapa de acceso a memoria. Mem.

Puerta de escritura del arreglo de Registros para la etapa de postescritura.

Wr.

Page 15: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

15

Procesador Segmentado 

AluCtr 

AluSrc 

ExtOp 

RD 

RegWr 

MemRd MemWr 

MemtoReg 

Inm16a 

PC  

RD1 

RegWr1 

MemRd1 

MemWr1 

MemtoReg1 

 

 

 Reg 

 

add26 

inm16 

rs 

COp funct 

rt rd 

rt 

inm16 

RD2 

RegWr2 

RD2 

RegWr2 

IR

 

equal 

Next PC 

Mem. Inst. 

 PC+4 

Mem. Dat. 

Decodi ficador 

Opera ciones 

PCsel 

nPC 

br  j 

MDout 

br  j 

Page 16: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

16

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones.Load requiere pasar por las cinco etapas

lw $t1, 0($t2)

lw $t4, 0($t5)

tiempo

Orden de ejecución

MI

MD

RL

MI

MD

RL

MI

MD

RL

lw $t3, 0($t3)

Page 17: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

17

Procesador Segmentado

No hay conflictos de escritura, ya que el arreglo de registros se emplea para escritura en ciclos diferentes.

Tampoco de lectura ya que las instrucciones leen registros que permanecen con sus contenidos sin cambios.

Sin embargo la secuencia : lw $t1, 0($t2) lw $t4, 0($t1)

requiere usar $t1, que aún no ha sido escrito.

Page 18: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

18

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones

de tipo R requieren cuatro etapas.

add $t1, $t2, $t3

lw $t4, 0($t5)

tiempo

Orden de ejecución

MI

RL

MI

MD

RL

MI

RL

add $t3, $t3, $t2

Page 19: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

19

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones

de tipo R requieren cuatro etapas. Dos instrucciones intentan escribir en la única

puerta de escritura del arreglo de registros en el mismo tiempo (Riesgo Estructural).

Page 20: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

20

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones

de tipo R requieren cuatro etapas. Una solución es insertar una operación nop entre

un lw y una de tipo R. Se producen cinco etapas nulas. Lo que degrada la velocidad de ejecución de instrucciones.

Otra solución es detener la ejecución (stall) de la ejecución de una instrucción de tipo R siguiente a un lw, insertando una burbuja.

Page 21: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

21

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones

de tipo R requieren cuatro etapas.

add $t1, $t2, $t3

lw $t4, 0($t5)

tiempo

Orden de ejecución

MI

RL

MI

MD

RL

MI

RL

add $t3, $t3, $t2

Page 22: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

22

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones.En un procesador multiciclo las instrucciones

de tipo R requieren cuatro etapas. Esta solución requiere una lógica de control que resulta

compleja. Se prefiere escoger la solución de insertar un ciclo de

memoria nulo en las instrucciones de tipo R. Esto implica que las instrucciones de tipo R durarán 5

ciclos.

Page 23: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

23

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones.

Instrucciones de tipo R durarán 5 ciclos.

add $t1, $t2, $t3

lw $t4, 0($t5)

tiempo MI

RL

MI

MD

RL

MI

RLadd $t3, $t3, $t2

MD

MD

Page 24: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

24

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones. Instrucción store word,

MD

MD

sw $t1, $t2, $t3

lw $t4, $t1, $t2

tiempo

Orden de ejecución

MI

RL

MI

MD

RL

MI

RL

sw $t3, $t3, $t2

Page 25: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

25

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones. Instrucción store word

Se requieren cuatro etapas. En la ejecución en la cañería no es necesario

agregar un ciclo nulo de postescritura, para la instrucción store, ya que en este caso se libera el recurso.

Page 26: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

26

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones.La bifurcación requiere cuatro etapas, si se

determina la igualdad empleando la condición cero generada por la ALU.

MD

beq $t1, $t2, rótulo tiempo

Orden de ejecución

MI

RL

Page 27: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

27

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones.Para disminuir los riesgos de control es mejor

solución detectar la igualdad en la etapa de decodificación y lectura del arreglo de registros y actualizar el valor de PC

Orden de ejecución

beq $t1, $t2, rótulo tiempo MI

RL

Page 28: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

28

Procesador Segmentado

Análisis de las etapas requeridas por las diferentes instrucciones.Salto incondicional (jump)

j rótulo tiempo MI

RL

Orden de ejecución

Page 29: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

29

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación. Tipos de riesgos

Estructurales: Se intenta usar el mismo recurso de dos maneras diferentes,

en el mismo tiempo. Conflicto de datos:

Se intenta usar un dato antes de que sea válido. Ocurre cuando una instrucción depende de un dato que escribe

una instrucción previa que también está en la cañería. Conflicto de Control:

Se intenta efectuar una decisión antes de que la condición o flag sea válida.

Page 30: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

30

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Todos los riesgos pueden resolverse

esperando.La unidad de control del procesador

segmentado debe detectar los riesgos, y tomar acciones para solucionar los conflictos.

Page 31: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

31

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo estructural.

Load word

Instrucción 2

Instrucción 3

Instrucción 4

Instrucción 5

tiempo

Orden de ejecución

MI

MI

MI

MI

MI

MD

MD

MD

MD

MD

RL

RL

RL

RL

RL

Page 32: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

32

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo estructural.

Usar, en forma compartida, una memoria para datos e instrucciones provoca un riesgo estructural.

Por ejemplo, la instrucción load, en su etapa de lectura de memoria, y el fetch de la instrucción 4, intentan leer al mismo tiempo la única memoria.

Page 33: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

33

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo estructural.

Load word

Instrucción 2

Instrucción 3

Instrucción 4

Instrucción 5

tiempo

Orden de ejecución

MI

MI

MI

MI

MI

MD

MD

MD

MD

MD

RL

RL

RL

RL

RL

Page 34: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

34

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control.

La bifurcación puede realizarse o no. En caso de tomar la bifurcación ya habrán

ingresado a la cañería las dos instrucciones siguientes a la bifurcación y comenzado a ejecutarse; si no se efectúa la bifurcación, ya se tendrá adelantada la ejecución de las instrucciones siguientes a la bifurcación.

Page 35: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

35

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control.

beq $t1, $t2, loop

add $t3, $t4, $t5

tiempo

Orden de ejecución

MI

MD

RL

MI

MD

RL

MI

MD

RL

MI

MD

RL

MI

MD

RL

este fetch es seguro

add $t3, $t6, $t3

add $t3, $t8, $t7

Page 36: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

36

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación. Riesgo de Control.

Se puede solucionar este riesgo de control, deteniendo el procesamiento de las próximas instrucciones hasta que la decisión pueda efectuarse.

Esto implica tres ciclos de reloj de detención (stall) por cada branch. No puede efectuarse fetch:

Durante la etapa de decodificación, Durante la etapa de cálculo del flag de cero a la salida de la alu

de la instrucción beq, y Durante la escritura de PC de la instrucción beq que se efectúa

en la etapa mem; Sólo en la etapa WR de la instrucción beq puede efectuarse

confiablemente el fetch de la instrucción siguiente.

Page 37: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

37

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación. Riesgo de Control.

La detención puede lograrse evitando leer la memoria de instrucciones, mediante la deshabilitación de WEIR y desactivando las señales de control que modifican el estado del procesador (WrReg, MemWr);

O bien, limpiando el registro IR en la etapa de decodificación del beq. Esto intercala burbujas en la cañería. Lo cual se ilustra en el siguiente diagrama:

Page 38: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

38

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control.

beq $t1, $t2, loop

burbuja

tiempo

Orden de ejecución

MI

MD

RL

MI

MD

RL

este fetch es seguro

burbuja

burbuja

Page 39: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

39

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control.

Puede delegarse la tarea de detención al compilador, que debe intercalar tres instrucciones nop (no operación) después de cada beq; el diagrama que representa esta situación es similar al visto antes, pero se está ejecutando la instrucción nop.

Page 40: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

40

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control.

beq $t1, $t2, loopnopnopnopadd $t3, $t4, $t5 #este fetch es seguro.add $t3, $t6, $t3add $t3, $t8, $t7

Page 41: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

41

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control. Solución de riesgo de

control anticipando la comparación. Puede mejorarse el diseño de la cañería,

anticipando la comparación, para esto es preciso agregar hardware, que permita generar la condición "equal" en la etapa de decodificación y a la vez escribir el valor de PC.

Page 42: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

42

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Riesgo de Control. Solución de riesgo de

control anticipando la comparación.

beq $t1, $t2, loop

add $t3, $t4, $t5

tiempo MI

MD

RL

MI

MD

RL

MI

MD

RLeste fetch es seguro

Page 43: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

43

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.

Soluciones para este riesgo de control: Detención.

La solución por hardware consiste en detener por un ciclo el fetch de la instrucción siguiente a un branch.

La solución por software consiste en intercalar un nop, después de cada branch.

Page 44: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

44

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.

Soluciones para este riesgo de control: Bifurcaciones retardadas.

No se detiene la ejecución después de una bifurcación; es decir la instrucción siguiente a una bifurcación comienza a ejecutarse siempre.

Esta solución (delayed branch) agrega un ciclo por cada branch, si el compilador no puede encontrar una instrucción que sea útil, y que pueda realizarse después del branch.

Page 45: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

45

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.

Soluciones para este riesgo de control: Vaciamiento. (flush)

La tercera solución es efectuar el fetch, después del branch. Si el salto no se realiza, se continúa la ejecución. Si el salto se realiza, se debe descartar la instrucción leída y volver a efectuar el fetch.

Page 46: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

46

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en operaciones de tipo R o

inmediatas.

add $t1, $t2, $t3

add $t4, $t1, $t2

sub $t2, $t3, $t1

or $t6, $t1, $t3

and $t2, $t1, $t1

tiempo

Orden de ejecución

MI

MI

MI

MI

MI

MD

MD

MD

MD

MD

RL

RL

RL

RL

RL

Page 47: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

47

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación. Conflicto de datos en operaciones de tipo R o

inmediatas. La solución de los conflictos de datos, puede realizarse

mediante la anticipación de los datos. Esto considerando que el dato que será escrito en un

registro por una instrucción de tipo R o de tipo inmediata, ya está disponible después de terminada la etapa de operaciones.

También dicho valor está disponible al terminar el ciclo de memoria(nulo en este caso, ya que la instrucción de tipo R o inmediata no emplea la memoria).

Page 48: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

48

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en operaciones de tipo R o

inmediatas.

add $t1, $t2, $t3

add $t4, $t1, $t2

sub $t2, $t3, $t1

or $t6, $t1, $t3

and $t2, $t1, $t1

tiempo

Orden de ejecución

MI

MI

MI

MI

MI

MD

MD

MD

MD

MD

RL

RL

RL

RL

RL

Page 49: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

49

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en transferencias.

lw $t1, 0($t2)

add $t3, $t1, $t5

tiempo

Orden de ejecución

MI

MD

RL

MI

MD

RL

Page 50: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

50

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en transferencias.

La solución de este riesgo de datos es: Detener el ingreso de nuevas instrucciones (detención

por hardware), o Introducir nop (si se delega la detención al compilador),

hasta resolver el conflicto.

Page 51: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

51

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en transferencias.

Detención por hardware

Orden de ejecución

lw $t1, 0($t2)

add $t3, $t1, $t5

tiempo MI

MD

RL

proceso siguiente inst.

MI

RL

MD

RL

MI

MI

MD

RL

Page 52: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

52

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en transferencias.

Solución por software

lw $t1, 0($t2)

add $t3, $t1, $t5

tiempo

Orden de ejecución

MI

MD

RL

MI

MD

RL

MI

MD

RL

nop

Page 53: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

53

Procesador Segmentado

Problemas de la segmentación. Riesgos de segmentación.Conflicto de datos en transferencias.

lw $t1, 0($t2)

sw $t1, 0($t3)

tiempo

Orden de ejecución

MI

MD

RL

MI

MD

RL

Page 54: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

54

Procesador Segmentado

Camino de datos y control. Se asume la detección de la igualdad en la

etapa de lectura de registros.Las señales de control se generan en la

etapa de lectura de Registros y Decodificación, ciclo en el cual se sabe cuál instrucción debe ejecutarse.

Page 55: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

55

Procesador Segmentado

Camino de datos y control.Las señales de control para la etapa de

ejecución (ExtOpt, AluSrc, AluCtr) se emplean un ciclo después y son pasadas a dicha etapa a través del registro de segmentación, que separa las etapas.

Las señales de control para la etapa de memoria (MemWr, MemRd, MemtoReg) son usadas dos ciclos más tarde.

Page 56: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

56

Procesador Segmentado

Camino de datos y control.Las señales de control para la etapa de

postescritura (RD, RegWr) se emplean tres ciclos después. RD es el número del registro en el que debe escribirse.

El diagrama muestra el control y los datos fluyendo.

Page 57: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

57

Procesador Segmentado 

AluCtr 

AluSrc 

ExtOp 

RD 

RegWr 

MemRd MemWr 

MemtoReg 

Inm16a 

PC  

RD1 

RegWr1 

MemRd1 

MemWr1 

MemtoReg1 

 

 

 Reg 

 

add26 

inm16 

rs 

COp funct 

rt rd 

rt 

inm16 

RD2 

RegWr2 

RD2 

RegWr2 

IR

 

equal 

Next PC 

Mem. Inst. 

 PC+4 

Mem. Dat. 

Decodi ficador 

Opera ciones 

PCsel 

nPC 

br  j 

MDout 

br  j 

Page 58: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

58

Procesador Segmentado

Solución de riesgos. Unidad de anticipación de datos hacia la

unidad de operaciones. Cuando en operaciones se tiene una instrucción de

tipo R o inmediata que escriba en un registro(RD), y en decodificación una instrucción que lea el registro rs(add, sub, ori, beq, lw) o que lea el registro rt(add, sub, beq).

Cuando en etapa de memoria se tiene una de tipo R o inmediata y en decodificación una instrucción que lee rs o rt, con igual valor al del registro en que se escribirá(RD1).

Page 59: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

59

Procesador Segmentado

Solución de riesgos. Unidad de anticipación de datos hacia la

unidad de operaciones. Solución: anticipación de datos hacia la unidad

de operaciones se requiere agregar muxes a las entradas de la alu, que permitan ingresar las salidas de la alu y de la memoria, además de los contenidos de los buses de salida del arreglo de registros(busA y busB).

Page 60: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

60

Procesador Segmentado

Solución de riesgos. Unidad de anticipación de datos hacia la

unidad de operaciones. Condiciones de detección:

TipoRI = (MemWr==0) & (MemRd==0) & (RegWR==1) TipoRI1 = (MemWr1==0) & (MemRd1==0) & (RegWR1==1)

Controles de los muxes

if (TipoRI ) & (lee_rs) & (rs == RD ) A = Aluout; /*AntA = 1 */if (TipoRI1) & (lee_rs) & (rs == RD1) A = Mout; /*AntA = 2 */if (MemRd1==1) && (Cop==”sw”) &&(rs == RD1) A = Mout; en el resto de los casos A = R[rs]; /*AntA = 0 */

Page 61: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

61

Procesador Segmentado

Solución de riesgos. Unidad de anticipación de datos hacia la

unidad de operaciones. Controles de los muxes if (TipoRI ) & (lee_rt) & (rt == RD ) B = Aluout; /* AntB = 1 */if (TipoRI1) & (lee_rt) & (rt == RD1) B = Mout; /* AntB = 2 */en el resto de los casos B = R[rt]; /* AntB = 0 */

Page 62: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

62

Procesador Segmentado

Solución de riesgos. Anticipación de escritura en memoria.

Las instrucciones que escriben en un registro, seguidas de un store word que escriba el contenido del registro que aún no se ha grabado, no requieren detener la ejecución de la escritura en memoria si se adelanta la salida de la etapa de memoria(Mout) en el registro de segmentación que almacena el valor que será escrito en la memoria(D).

Page 63: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

63

Procesador Segmentado

Solución de riesgos. Anticipación de escritura en memoria.

Se detecta cuando la instrucción que escribe en registro está en la etapa de memoria y el store word en operaciones; y si el número del registro cuyo contenido debe escribirse en memoria(RD) es igual al número del registro en que escribirá la instrucción que está en etapa de memoria(RD1).

Page 64: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

64

Procesador Segmentado

Solución de riesgos. Anticipación de escritura en memoria.

Controles de los muxes if ( (MemWr == 1) & (RegWr1==1) & (RD==RD1 ) ) D = Mout; /* AntM = 1 */

en el resto de los casos D = B /* AntM = 0 */

Page 65: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

65

Procesador Segmentado

Solución de riesgos. Detención de un ciclo en secuencias: lw-alu

Se detecta el riesgo cuando el lw está en operaciones(MemRd1 en 1) y la instrucción que le sigue (que lea el registro en el cual el lw escribe) en decodificación.

Page 66: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

66

Procesador Segmentado

Solución de riesgos. Detención de un ciclo en secuencias: lw-alu

Primero las secuencias lw seguidas por instrucciones que leen el registro rs(tipo R, transferencias, inmediatas y beq); que se detectan por:

(MemRd1 == 1) & ( OP != j) & ( rs ==RD)

Page 67: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

67

Procesador Segmentado

Solución de riesgos. Detención de un ciclo en secuencias: lw-alu

En segundo lugar las secuencias lw seguidas de instrucciones que leen el registro rt(tipo R y beq) que se detectan según:

(MemRd1 == 1) & (Op==tipoR | Op==beq ) & ( rt ==RD)

Page 68: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

68

Procesador Segmentado

Solución de riesgos. Detención de un ciclo en secuencias: lw-alu

Ambas condicionesif ( ( MemRd1 == 1) & ( Op != j) & ( rs ==RD) | ( MemRd1== 1)& ( Op==tipoR | Op==beq) & (rt ==RD)) { burbuja = 1;

válido = 0;}en el resto de los casos burbuja = 0; válido =1;

Page 69: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

69

Procesador Segmentado

Solución de riesgos. Descarte(flush) en caso de saltos

incondicionales. En caso de no ejecutar la instrucción siguiente a

un jump, que ya pasó por etapa de fetch deben eliminarse los efectos de la instrucción siguiente, para esto basta que la instrucción que completó su fetch no modifique un registro o escriba en la memoria. Se detecta mediante:

if ( PCsel==1)&(Op==j) flush =1;

Page 70: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

70

Procesador Segmentado

Solución de riesgos. Descarte(flush) en caso de bifurcaciones.

En caso de no ejecutar la instrucción siguiente a un beq, que ya pasó por la etapa de fetch deben eliminarse los efectos de la instrucción siguiente, para esto basta que la instrucción que completó su fetch no modifique un registro o escriba en la memoria. Se detecta mediante:

if ( PCsel==1)&(Op==beq) flush =1;También puede diseñarse, según:if ( Equal==1)&(Op==beq) flush =1;

Page 71: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

71

Procesador Segmentado

Solución de riesgos. Instrucción No operación.

Esta instrucción tiene los 32 bits iguales a cero. Es de tipo R, con el campo funct = 0.

if (Op == nop) { AluCtr=øøø; AluSrc=ø; ExtOp=ø;

MemRd = ø; MemWr=0; Memtoreg = ø;

RD= 0; RegWr =0; PCsel =0; válido = 0}además si es nop: rs=0, rt=0, rd =0.

Page 72: Procesador Segmentado - Inicioprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/... · Reloj Multiciclo y pipeline. 7 Procesador Segmentado ... En un procesador multiciclo

72

Procesador Segmentado 

AluCtr 

AluSrc 

ExtOp 

RD 

RegWr 

MemRd 

MemWr 

MemtoReg 

Inm16a 

 

RD1 

RegWr1 

MemRd1 

MemWr1 

MemtoReg1 

 

RD2 

RegWr2 

equal 

Mem. Dat. 

Opera ciones 

PC

 

 

 

add26 

inm16 

rs 

COp 

funct 

rt 

rd 

rt 

inm16 

RD2 

RegWr2 

IR

 

Next PC 

Mem. Inst. 

 PC+4 

Decodi ficador 

burbuja 

reloj 

Mout 

AluOut 

 valido 

AntM 

AntA AntB 

PCsel 

flush 

nPC 

MDout 

b  j