Sie sind auf Seite 1von 27

DISEO DE UN

PROCESADOR
SEGMENTADO.
GESTIN DE RIESGOS DE
DATOS, CONTROL Y
ESTRUCTURALES
GENERALIDADES
RcRa op Rb
La distribucin de tareas nos lleva a un
cause de cuatro etapas:
IF (Instruction fetch)
ID/OF (Instruction Decode/Operand Fetch)
ALU
OS (Operand Store)
Existen una serie de condiciones (riesgos)
que pueden hacer que el cauce no genere
los resultados correctos, a no ser que se
interrumpa su funcionamiento durante un
nmero de ciclos determinado. Lo que
llevara a la disminucin de rendimiento del
cauce.
Tipos de riesgos:
Riesgos de datos
Riesgos de control
Riesgos estructurales
Riesgos de Datos: Surgen por las
dependencias entre los operandos y resultados
de operaciones anteriores o posteriores.
Riesgos de control: Se originan a partir de
instrucciones de salto condicional, ya que segn
su resultado, determinan la secuencia de
instrucciones que se ejecutaran tras ellas.
Riesgos estructurales: Llamados tambin de
colisiones, se produce cuando instrucciones
diferentes pueden necesitar un recurso al mismo
tiempo.
RIESGOS DE DATOS
TIPOS:
RAW (Read After Write)
WAR (Write After Read)
WAW (Write After Write)
Riegos de datos tipo RAW
Se producen cuando una instruccin utiliza
como uno de sus operandos, el resultado
que obtiene de una instruccin previa:
Almacenamiento
1 2
W R
R2 = R1 + R2
R1 = R2 + R3
Read Oper Write
t+1 t+2 t+3 t+4
Read Write
Riegos de datos tipo WAR
Se producen cuando una instruccin utiliza
como destino, un operando que se utiliza
en una instruccin previa:
Almacenamiento
2 1
W R
R2 = R1 + R2
R1 = R2 + R3
Read Oper Write
t+1 t+2 t+3 t+4
Read Write
Riegos de datos tipo WAW
Se producen cuando una instruccin utiliza
como destino, el registro resultado de una
instruccin previa:
Almacenamiento
1 2
W W
R2 = R1 + R2
R2 = R4 + R3
Read Oper Write
t+1 t+2 t+3 t+4
Read Write
Conclusin:
Segn la distribucin de etapas del cauce, la
escritura en el banco de registros siempre se
hace en la ultima etapa; cuando la instruccin
escriba su resultado, todas las instrucciones
anteriores habrn terminado, de tal manera que
los riesgos del tipo WAR y WAW no causan
ningn error en su ejecucin.
OF/ID OS
OF/ID OS
t
t+1 t+2 t+3 t+4
R2 = R1 + R2
R2 = R4 + R3
SOLUCIONES PARA LAS
DEPENDENCIAS DE DATOS DE
TIPO RAW
Se pueden desarrollar mediante Hardware
o Software. Para elegir entre una de ellas
se debe tener en cuenta el rendimiento.
Las alternativas para evitar los problemas
de los riesgos RAW son:
Reorganizacin del cdigo
Interbloqueo entre etapas
Atajos
REORGANIZACIN DEL
CDIGO
Colocar instrucciones independientes,
entre instrucciones con dependencia RAW,
que retracen la segunda instruccin con
respecto a la primera.
Read Oper Write
t+1 t+2 t+3 t+4
R4 = R1 + R2
R2 = R4 + R5 Read Write
R3 = R1 + R2
REORGANIZACIN DEL
CDIGO
Colocar NOPs, entre instrucciones con
dependencia RAW, que retracen la
segunda instruccin con respecto a la
primera.
Read Oper Write
t+1 t+2 t+3 t+4
R4 = R1 + R2
R2 = R4 + R3 Read Write
NOP
INTERBLOQUEO ENTRE
ETAPAS
Se introduce elementos Hardware en el
cauce que detecten dependencias. La
etapa de lectura de operandos se bloquea
para la instruccin paralela.
Read Oper Write
t+1 t+2 t+3 t+4
R4 = R1 + R2
R2 = R4 + R3
Read Write
ATAJOS (BYPASS)
Implementa el Hardware necesario para
detectar las dependencias y adems las
enruta para mandar los datos donde son
necesarios (Datos anticipados).
Read Oper Write
t+1 t+2 t+3 t+4
R4 = R1 + R2
R2 = R4 + R3 Read Write
IMPLEMENTACIN DE LAS
INSTRUCCIONES DE SALTO
El PC es el que determina la direccin del
destino del salto.
Para ver si una condicin es cierta, se ha
implementado por hardware un circuito que lo
detecte y adems permita ingresar a la ALU,
como un operando ms, el contenido del PC.
El PC se auto incrementar si no salta, o
modificara su contenido de acuerdo a un offset
(Salto).
IMPLEMENTACIN DE LAS
INSTRUCCIONES DE SALTO
Si la condicin es cierta, el salto se
efectuara, por lo que las instrucciones
paralelas siguientes que se estaban
desarrollando son indeseables:
ALU
t+1 t+2 t+3 t+4
R3 = R1 + R2
PC+(R6)
Salto
bz R6
indeseables
CC
SOLUCIONES A LAS
INSTRUCCIONES DE SALTO
Escribir Nops en las posiciones donde las
instrucciones son indeseables.
Colocar instrucciones independientes, para
que completen su ejecucin.
Colocar en la instruccin explcitamente el
registro en que se verificara la condicin
(b cond Ra,off).

IMPLEMENTACIN DE LAS
INSTRUCCIONES DE ACCESO A
MEMORIA
Las instrucciones de carga y
almacenamiento son utilizadas
frecuentemente en un programa.
Se captan los contenidos de los registros
donde esta la informacin necesaria para
calcular la direccin.
Se calcula la direccin efectiva a partir de
dichos contenidos. (necesita un ciclo mas)
IMPLEMENTACIN DE LAS
INSTRUCCIONES DE ACCESO A
MEMORIA
Existen nuevos registros en Hardware:
DMAR: Registro de la direccin de la memoria
de datos.
SDMR: Registro a escribir en la memoria de
datos.
LDMR: Registro a cargar de la memoria de
datos.
SOLUCIONES:
Colocar instrucciones independientes si se
pudiera para evitar que se pierda un ciclo,
si no se pudiera colocar un Nop.
Incrementar el nmero ciclos de reloj por
instruccin. Teniendo una etapa dedicada
al acceso sobre la carga y almacenamiento
de la memoria.

Das könnte Ihnen auch gefallen