Procesador Segmentado

1

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

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

3

Procesador Segmentado 

Etapas:  Búsqueda

de Instrucción.  Decodificación.Lectura Registros.  Ejecución.  Operación con memoria de datos.  Escritura en arreglo de registros.

(BI) (Dec) (Eje) (Mem) (WR)

4

Procesador Segmentado 

Ejecución de instrucciones BI

 

tiempo

Dec

Eje

Me

WR

BI

Dec

Eje

Me

WR

BI

Dec

Eje

Me

WR

flujo de ejecución

5

Procesador Segmentado Reloj Monociclo Monociclo

Load

Store

Add

Reloj Multiciclo y pipeline

Multiciclo

BI

Dec

Eje

Me

WR

BI

Dec

Eje

Me

WR

BI

Dec

Eje

Me

WR

BI

Dec

Eje

Me

BI

Dec

Eje

Me

BI

Dec

Segmentado

WR 6

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

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.

8

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.

9

Procesador Segmentado 

Ejemplo:  Suponer 

Procesador monociclo 



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

Procesador Multiciclo 



que se ejecutan 100 instrucciones:

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

10

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

11

Procesador Segmentado tiempo (ciclos de reloj) Instrucción 1

Instrucción 2

Instrucción 3

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;

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

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

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.

13

Procesador Segmentado 

En un camino segmentado las cinco unidades funcionales independientes son: 

Memoria de instrucciones para la etapa de búsqueda. 



Puertas A y B de lectura del arreglo de registros para la etapa de Decodificación y Lectura de Registros. 



Ejec.

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



Reg/Dec.

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



BI (fetch).

Mem.

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

Wr. 14

Procesador Segmentado  

PCsel 

COp  funct  rt  rd 

IR PC

  Mem.  Inst. 

  Decodi  ficador 

RD1  RegWr1 

MemtoReg 

MemtoReg1 

MemWr  MemRd 

MemWr1  MemRd1 

br  j 

ExtOp  Inm16a 

RegWr2 

 

Reg  RD2 

  PC+4 

br  j 

add26  nPC 

A  B 



inm16 

RD2  RegWr2 

AluCtr  AluSrc 

inm16  rs  rt 

RD  RegWr 

 

Opera  ciones 



S  D 

  Mem.  Dat. 

MDout 

equal 

  Next  PC 

15

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)

lw $t3, 0($t3)

M I

R L M I

tiempo

M D R L M I

M D R L

M D

Orden de ejecución 16

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  lw 

$t1, 0($t2) $t4, 0($t1) requiere usar $t1, que aún no ha sido escrito.

17

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)

add $t3, $t3, $t2 Orden de ejecución

M I

tiempo

R L M I

R L M I

M D R L

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

Dos instrucciones intentan escribir en la única puerta de escritura del arreglo de registros en el mismo tiempo (Riesgo Estructural).

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

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. add $t1, $t2, $t3

lw $t4, 0($t5)

add $t3, $t3, $t2

M I

tiempo

R L M I

R L M I

M D R L

Orden de ejecución 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. 





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

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)

add $t3, $t3, $t2

M I

R L

M I

tiempo

M D

R L

M I

M D

R L

M D

23

Procesador Segmentado 

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

store word,

sw $t1, $t2, $t3

lw $t4, $t1, $t2

sw $t3, $t3, $t2

M I

M I

tiempo

M D

R L R L M I

M D R L

M D

Orden de ejecución 24

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

25

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. beq $t1, $t2, rótulo

M I

R L

M D

tiempo

Orden de ejecución 26

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 beq $t1, $t2, rótulo

M I

R L

tiempo

Orden de ejecución 27

Procesador Segmentado 

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

incondicional (jump) j rótulo

M I

R L

tiempo

Orden de ejecución

28

Procesador Segmentado 

Problemas de la segmentación. Riesgos de segmentación.  Tipos 

Estructurales: 



Se intenta usar el mismo recurso de dos maneras diferentes, en el mismo tiempo.

Conflicto de datos:  



de riesgos

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

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.

30

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 Orden de ejecución

M I

R L M I

tiempo

M D R L M I

M D R L M I

M D R L M I

M D R L

M D 31

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

32

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 Orden de ejecución

M I

R L M I

tiempo

M D R L M I

M D R L M I

M D R L M I

M D R L

M D 33

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

34

Procesador Segmentado 

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

de Control.

beq $t1, $t2, loop add $t3, $t4, $t5 add $t3, $t6, $t3 add $t3, $t8, $t7 este fetch es seguro Orden de ejecución

M I

R L M I

tiempo

M D R L M I

M D R L M I

M D R L M I

M D R L

M D 35

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

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:

37

Procesador Segmentado 

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

de Control.

beq $t1, $t2, loop

M I

R L

tiempo

M D

burbuja burbuja burbuja

este fetch es seguro Orden de ejecución

M I

R L

M D 38

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.

39

Procesador Segmentado 

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

de Control.

beq $t1, $t2, loop nop nop nop add $t3, $t4, $t5 #este fetch es seguro. add $t3, $t6, $t3 add $t3, $t8, $t7 40

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.

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. beq $t1, $t2, loop

add $t3, $t4, $t5

este fetch es seguro

M I

R L M I

tiempo

M D R L M I

M D R L

M D 42

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.

43

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

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.

45

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 Orden de ejecución

M I

R L M I

tiempo

M D R L M I

M D R L M I

M D R L M I

M D R L

M D 46

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

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 Orden de ejecución

M I

R L M I

tiempo

M D R L M I

M D R L M I

M D R L M I

M D R L

M D 48

Procesador Segmentado 

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

de datos en transferencias.

lw $t1, 0($t2)

add $t3, $t1, $t5

M I

R L M I

tiempo

M D R L

M D

Orden de ejecución

49

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

50

Procesador Segmentado 

Problemas de la segmentación. Riesgos de segmentación.  Conflicto 

de datos en transferencias.

Detención por hardware lw $t1, 0($t2)

add $t3, $t1, $t5

proceso siguiente inst.

M I

R L M I

tiempo

M D R L

R L

M I

M I

M D R L

M D

Orden de ejecución 51

Procesador Segmentado 

Problemas de la segmentación. Riesgos de segmentación.  Conflicto 

de datos en transferencias.

Solución por software lw $t1, 0($t2)

nop add $t3, $t1, $t5

M I

R L M I

tiempo

M D R L M I

M D R L

M D

Orden de ejecución 52

Procesador Segmentado 

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

de datos en transferencias.

lw $t1, 0($t2)

sw $t1, 0($t3)

M I

R L M I

tiempo

M D R L

M D

Orden de ejecución

53

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.

54

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.

55

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.

56

Procesador Segmentado  

PCsel 

COp  funct  rt  rd 

IR PC

  Mem.  Inst. 

  Decodi  ficador 

RD1  RegWr1 

MemtoReg 

MemtoReg1 

MemWr  MemRd 

MemWr1  MemRd1 

br  j 

ExtOp  Inm16a 

RegWr2 

 

Reg  RD2 

  PC+4 

br  j 

add26  nPC 

A  B 



inm16 

RD2  RegWr2 

AluCtr  AluSrc 

inm16  rs  rt 

RD  RegWr 

 

Opera  ciones 



S  D 

  Mem.  Dat. 

MDout 

equal 

  Next  PC 

57

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

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

59

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 */ 60

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 ) if (TipoRI1) & (lee_rt) & (rt == RD1) en el resto de los casos B = R[rt];

B = Aluout; /* AntB = 1 */ B = Mout; /* AntB = 2 */ /* AntB = 0 */

61

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

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

63

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 */

64

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.

65

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

66

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)

67

Procesador Segmentado 

Solución de riesgos. 

Detención de un ciclo en secuencias: lw-alu 

Ambas condiciones

if ( ( MemRd1 == 1) & ( Op != j) & ( rs ==RD) | ( MemRd1== 1)& ( Op==tipoR | Op==beq) & (rt ==RD)) válido = 0;} en el resto de los casos burbuja = 0; válido =1;

{ burbuja = 1;

68

Procesador Segmentado 

Solución de riesgos. 

Descarte(flush) incondicionales.

en

caso

de

saltos

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; 

69

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; 

70

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.

71

Procesador Segmentado   valido 

PCsel 

flush 

COp  funct 

Decodi    ficador 

 

rt  rd 

RD 

RD1 

RD2 

RegWr 

RegWr1 

RegWr2 

MemtoReg 

MemtoReg1 

MemWr 

MemWr1 

MemRd 

MemRd1 

AluCtr 

IR PC

  Mem.  Inst. 

AluSrc  b  j 

ExtOp 

inm16  rs  rt 

Inm16a  RegWr2 

 

  Opera  ciones 



Mem.    Dat. 

RD2 

  PC+4 







equal  inm16  add26 

  Next  PC 





MDout 

AntB  AntA 

nPC 

Mout  AntM  burbuja 

reloj 

AluOut 

72