You are on page 1of 4

8.5.

1- Tipos de conflictos
1.Conflictos estructurales: Se producen cuando el cauce segmentado soporta varias
instrucciones a la vez y algunas de ellas necesitan utilizar a la vez un mismo recurso del Camino de
Datos. Tambin se les suele denominar colisiones.
Una colisin se produce, por ejemplo, cuando en el mismo ciclo de reloj una etapa de una
instruccin tiene que acceder a la memoria para buscar la instruccin y otra al mismo tiempo debe
acceder a la memoria para leer o escribir un dato.
ste con!licto se resuelve dotando al procesador de dos memorias tipo cac", independientes,
una para datos y otra para instrucciones.
2.Conflictos por dependencia de datos: Se producen cuando una instruccin utiliza como
operando el resultado de una instruccin previa que se est# ejecutando en el cauce y todav$a no "a
producido el valor del resultado%
3.Conflictos por saltos condicionales: &asta que no se complete la instruccin condicional
'beq(, no puede introducirse otra instruccin en el cauce, ya que no se sabe cual ser# la siguiente.
)ara solucionar este tipo de con!lictos, se emplean mtodos de prediccin de salto.
4.Conflictos por excepciones e interrupciones: Cuando se produce una interrupcin o una
e*cepcin durante la ejecucin de una instruccin de un programa se genera un salto a una rutina de
atencin, debindose eliminar las instrucciones del programa que se "ayan introducido al cauce
despus de la que origina la e*cepcin o interrupcin.
8.6- Conflictos estructurales
)ara poder introducir al cauce cualquier combinacin posible de instrucciones "ay que duplicar
los recursos, ya que sino dos instrucciones pueden requerir un mismo recurso, producindose as$ un
con!licto.
Una solucin para los con!lictos estructurales ser$a duplicar la memoria para poder realizar as$
accesos simult#neos a datos e instrucciones.
n nuestro caso si solo e*istiese una memoria para datos e instrucciones, cada vez que se
introdujese en el cauce una instruccin de trans!erencia, "abr$a que impedir la entrada de una nueva
instruccin en el cauce en el ciclo en el que las dos accediesen simult#neamente a memoria a leer
instrucciones o a leer o escribir datos. )or lo que "abr$a que a+adir un ciclo de reloj para que se
pudiesen realizar correctamente estas instrucciones.
,tro recurso a tener en cuenta ser$a el -anco de .egistros , que solo tiene un puerto de escritura
y que podr$a dar lugar a un con!licto si sucediese que dos instrucciones del cauce tendr$an que
escribir en el mismo ciclo en el banco. )ara evitar esta posibilidad es necesario seleccionar
cuidadosamente el repertorio de instrucciones y su divisin en etapas.
Como la duplicacin aumenta el coste, se buscan otras soluciones, como la segmentacin o
divisin en etapas de recursos, como es el caso de la /0U. Se pueden tomar dos medidas, una
a+adir dos sumadores, lo que aumentar$a el coste u otra el segmentar o dividir en etapas la /0U con
lo que se evitar$a el aumento de coste, pero aumentar$a la pro!undidad, lo que puede provocar una
disminucin del rendimiento.
8.7- Conflictos por dependencia de datos
Se produce cuando la segmentacin cambia el orden de acceso a los operandos, con relacin al
que sigue a la secuencia normal de instrucciones.
8.7.1- Deteccin y eliminacin de las dependencias de datos
/ne*o / 1 1
Anexo A: Dise+o de procesadores .2SC
)ara eliminar estos con!lictos distinguimos dos alternativas. Una emplea un "ard3are au*iliar
del procesador, mientras que la otra lo realiza mediante so!t3are, concretamente mediante el
compilador.
0a solucin "ard3are consiste en dise+ar una lgica combinacional capaz de detectar los
con!lictos de dependencias de datos, a esta lgica se le llama Unidad de deteccin de con!lictos.
Un con!licto de dependencia de datos ocurre cuando se cumplen estas condiciones%
4. 0a se+al .eg. 5rite 6 4, en las etapas 7, 88 5-. sto signi!ica que una
instruccin previa del cauce tiene que escribir un registro y a9n no lo "a "ec"o.
:. ;ue el registro o registros que "ay que leer en la etapa 2D coinciden con el que "ay que
escribir en cualquiera de las etapas siguientes.
8.7.2- Tcnica de anticipacin para reducir los conflictos por
dependencias de datos en registros
Tambin se le denomina desvo o <bypassing=. Consiste en almacenar temporalmente los
resultados de la /0U en un par de registros e implementar una lgica de desv$o que e*amine si el
resultado producido por la /0U y que m#s tarde se escribir# en un registro, se usa como operando
en alguna de las instrucciones posteriores, si es as$ se introduce el resultado de la /0U, mediante un
multiple*or a una de las entradas de la /0U.
)ara implementar la tcnica de la anticipacin en el 82)S se realizan las siguientes "iptesis%
0os resultados que "ay que cargar en los registros a!ectados, se encuentran en los registros
interetapa 7>88 y 88>5-.
)ara poder introducir en la /0U los resultados obtenidos en ella, se utilizan
multiple*ores que realimentan la salida con las entradas.
/l control de estos multiple*ores lo e!ect9a una lgica auxiliar de desvo, que analiza
si los resultados van a ser le$dos por instrucciones posteriores en el cauce.
0a lgica de desv$o compara los registros que act9an como operandos en la etapa 2D, con los
registros que act9an como destino. Si "ay coincidencia, se introduce como entrada de la /0U,
mediante multiple*ores de realimentacin, el valor de la salida de la /0U procedente del registro
7>88 o del 88>5-.
?o se considera el tercer con!licto 5-, porque se supone que en la etapa 2D se lee el resultado
correcto si en dic"o ciclo la instruccin en la etapa 5- escribe alguno de los registros.
8.7.- Tcnica de anticipacin para e!itar conflictos por
dependencias de datos en accesos a memoria
studiemos la siguiente secuencia de instrucciones%
l3 @A, BC'@:(
add @D, @A, @4
Durante el mismo ciclo de reloj add lee el valor del registro @A que act9a como operando de la
/0U, y la instruccin l3 est# accediendo a 8emoria de Datos para leer el valor que tiene que
cargar en el registro @A.
/ne*o / 1 2
Anexo A: Dise+o de procesadores .2SC
Como el dato que se va a cargar mediante la instruccin l3 no va a estar disponible cuando lo
necesita la add, la 9nica solucin para este con!licto es detener la segmentacin. )or lo tanto "abr#
que introducir una burbuja para dar tiempo a disponer del dato que sale de la memoria.
Siempre que e*ista una instruccin l3 seguida de otra que utilice como operando el registro que
carga la l3, ser# preciso introducir una burbuja en el cauce.
)ara detectar este tipo de con!licto se usa la Unidad de Deteccin de Con!lictos, que deber#
introducir nueve ceros como se+ales de control cuando detecte este con!licto, que se e*presa de la
siguiente manera%
Si 2D>7..eg 5rite e 2D>7..egDst 6 C e
2D>7.scribir .eg rt 6 2E>2D.0eer .egistro4
2D>7.scribir .eg rt 6 2E>2D.0eer .egistro:
detener la segmentacin
0a !igura FG muestra la actuacin de la Unidad de Deteccin de Con!lictos.
L!
!1
"A#C$ %
!&'()!$(
L!
!2 %A)$
!2
'%* +
,,* -"
%A)$
!1
+* ,,
,%
-"
,
-"
AL.out
(C!
!3
%A)$
(C!
L/&'CA
%
%(01$
A
L
.
+
,
-"
2C ,,$!'A
'#()!.CC
.#'%A% %
%)CC'/# %
C$#3L'C)$(
.#'%A%
%
C$#)!$L
'3* '%
2C -rite
'3* '% -rite
456
7
'%* + -rite !eg 8rt9
AL.(el A
AL.(el "
2 2
!eg-rite
AL.out
!eg-rite
rt
rd
rd
!1
!2
Eigura FG.1 /ctuacin de la Unidad de Deteccin de con!lictos cuando trata los procedentes de las dependencias de
datos con instrucciones de trans!erencia con memoria.
8."- Conflictos por e#cepciones e interrupciones
Cuando se produce una e*cepcin o interrupcin sucede algo parecido a una instruccin de
salto condicional. n el caso del 82)S se aceptan dos tipos de e*cepciones% Cdigo ,) no v#lido y
desbordamiento en una instruccin aritmtica. 0as !ases para el tratamiento de estas e*cepciones%
Se detiene la instruccin en curso y se invalidan los resultados de las siguientes
instrucciones introducidas al cauce.
Se guarda la direccin del )C de la instruccin que "a provocado la e*cepcin en )C.
Se salta q la rutina de tratamiento de la e*cepcin, que comienza en la direccin FCCC
CCCF &. /qu$ se analiza la causa '9ltimo bit del registro cause(.
/ne*o / 1 3
Anexo A: Dise+o de procesadores .2SC
/l !inalizar la rutina de atencin a la e*cepcin se retorna a la instruccin que la
produjo.
)ara la desactivacin de las se+ales de control en el tratamiento de las e*cepciones se utiliza la
misma tcnica que en las de salto condicional. /dem#s se introduce desde un multiple*or al )C el
valor FCCC CCCF &.
Si se trata de una e*cepcin por desbordamiento se impide que se escriba el resultado de la
/0U en la etapa 5- para evitar que si un registro act9a como operando y destino, se borre su valor
inicial y no se pueda conocer lo que "a ocurrido.
/ne*o / 1 4

You might also like