Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Riegos de la segmentación avanzada (página 2)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com
RIESGOS RAW: SOLUCIÓN HW INTERBLOQUEO
11
Diseñar un HW que detecte los riesgos y detenga el cauce si es necesario
Problema: esto ralentiza mucho el funcionamiento
sub r2, r1, r3
and r12, r2, r5
or r13, r6, r2
and r14, r2, r2
sw r15, 100 (r2)
IF
ID
Ex
M
Wb
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Escritura: r2
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Lectura: r2
Detención del cauce:
Burbuja de 2 ciclos

Monografias.com
BURBUJAS, DETENCIONES (STALLINGS)
12
Es posible detener el cauce manteniendo una instrucción en la misma etapa
sub r2, r1, r3
and r12, r2, r5
or r13, r6, r2
and r14, r2, r2
sw r15, 100 (r2)
IF
ID
Ex
M
Wb
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Escritura: r2
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Lectura: r2
Detención del cauce:
Burbuja de 2 ciclos

Como la etapa no puede finalizarse se mantiene
la misma instrucción hasta que se completa
ID
ID

Monografias.com
RIESGOS RAW: SOLUCIÓN HW FORWARDING (ANTICIPACIÓN)
13
Utilizar los resultados cuando están disponibles, antes de que se escriban en el banco de registros
Anticipación al banco de registros para permitir leer/escribir en el mismo registro
Anticipación a la ALU, para adelantar una operación en la ALU que de otro modo tendría que esperar a que el dato se escribiera en el banco de registros y luego leerlo.
Anticipación ALU-ALU: desde la salida de la ALU a alguno de los registros de entrada de la ALU.
Anticipación MEM-ALU: desde la etapa MEM se anticipa el dato leído de la cache de datos a la entrada de la ALU.

Monografias.com
ANTICIPACIÓN: EJEMPLO
Anticipación de datos
14
sub r2, r1, r3
and r12, r2, r5
or r13, r6, r2
and r14, r2, r2
sw r15, 100 (r2)
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Escritura: r2
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Lectura: r2
Anticipación ALU-ALU:
Evita la burbuja de 2 ciclos
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Anticipación MEM-ALU

Monografias.com
HW PARA FORWARDING (ANTICIPACIÓN)
15
ForwardA
ForwardB

Monografias.com
HW PARA FORWARDING (ANTICIPACIÓN)
Riesgo en EX
If (EX/MEM.RegWrite and
(EX/MEM.Rd = ID/EX.Rs)) then ForwardA=01
If (EX/MEM.RegWrite and
(EX/MEM.Rd = ID/EX.Rt)) then ForwardB=01
Riesgo en MEM
if (MEM/WB.RegWrite
and !(EX/MEM.RegWrite and (EX/MEM.RegisterRd ? 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRs))
and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) then ForwardA=10
if (MEM/WB.RegWrite
and !(EX/MEM.RegWrite and (EX/MEM.RegisterRd ? 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRt))
and (MEM/WB.RegisterRd = ID/EX.RegisterRt))
then ForwardB=10
16

Monografias.com
EJEMPLO 1: FORWARDING POR HW
17
Forwarding: Ex -> Scr1 y WB -> Scr2

Monografias.com
EJEMPLO 2: FORWARDING POR HW
18
Forwarding: WB -> Scr2

Monografias.com
NO SIEMPRE ES POSIBLE EL FORWARDING
19
Una instr trata de leer un registro después de un load que va a escribir en ese mismo registro.
Es necesaria una unidad de detección de riesgos que detenga la instr posterior al load.

Monografias.com
FORWARDING + UNIDAD DE DETECCIÓN DE RIESGOS
20

Monografias.com
PLANIFICACIÓN DEL CÓDIGO PARA EVITAR RIESGOS POR LOAD
Tratemos de generar un código más rápido para la operación
a=b+c;
d=e-f;
suponiendo que a,b,c,d,e y f están en la memoria.
21

Monografias.com
RIESGOS ESTRUCTURALES
Se producen por intentar utilizar simultáneamente un cierto recurso dos instrucciones en ejecución
Banco de registros:
Acceso al banco de registros en 2 etapas:
Lectura durante la etapa 2 (ID)
Escritura durante la etapa 5 (Wb)
Solución: dos puertos de lectura y uno de escritura
Memoria:
Se puede acceder a la memoria en dos etapas:
Búsqueda de instrucción durante la etapa 1 (IF)
Lectura/Escritura de datos durante la etapa 4 (Mem)
Solución: dos caches separadas para instrucciones y datos
Cada unidad funcional puede ser usada una sola vez por instrucción
Cada unidad funcional debe ser usada en la misma etapa por todas las instrucciones.
22

Monografias.com
RIESGOS ESTRUCTURALES
Se producen por un conflicto en el uso de los recursos
En el cauce planteado, si una instr reg-reg pudiese escribir el resultado de salida de la ALU en la etapa MEM y se produce una secuencia load seguida de una instr reg-reg entonces tendríamos dos accesos simultáneos al banco de registros
23
(Gp:) ld r2, 100 (r2)

mult r3, r4, r5
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) Wb
(Gp:) M/Wb
(Gp:) Escritura: r2
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) Wb
(Gp:) M/Wb
(Gp:) Escritura: r3
(Gp:) Banco de registros

Monografias.com
RIESGOS ESTRUCTURALES
Soluciones hardware:

Arbitraje con interbloqueo: se añade hW que arbitre el conflicto e interbloquee a una de las instrucciones. Aparecen burbujas (en este caso de un ciclo).

Replicación de recursos hW: En nuestro ejemplo, si el banco de registros tuviese dos puertos de escritura el problema se resolvería (salvo que escriban exactamente en el mismo registro, pero este caso puede eliminarse en la compilación)
24

Monografias.com
RIESGOS ESTRUCTURALES
En el cauce que se ha diseñado no existen problemas de riesgo estructural.
Esto se debe a que el banco de registros se escribe en la primera mitad de los ciclos WB y la lectura se realiza en la segunda mitad de los ciclos ID.
25
Las escrituras en el banco de registros se realizan en la primera mitad del ciclo
Las lecturas en el banco de registros se realizan en la segunda mitad del ciclo
=> el banco es escrito antes que leído => devuelve el dato correcto
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb
(Gp:) Escritura: r2
(Gp:) sub r2, r1, r3
xxx
xxx
and r12, r2, r11
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Monografias.com
RIESGOS DE CONTROL
Se originan en las instrucciones de salto condicional (branch) o incondicional (jmp).
Si suponemos que la instr 1 es un jmp, y la dirección de salto se calcula en la fase EX y se reemplaza el PC en la fase MEM, en el cauce han entrado una instr 2 (fase EX), una instr 3 (fase ID) y una instr 4 (fase IF).
Salto incondicional: las instrucciones deben ser canceladas y deberá buscarse la instr situada en la dirección de salto.
Salto condicional: sólo es necesario vaciar si el salto se efectúa.
A estas instrucciones que siguen a la instr 1 se les denomina delay slot o ventana de retardo. Que en este caso es de tres ciclos.
26

Monografias.com
RIESGOS DE CONTROL: EJEMPLO
27
Delay slot o ventana de retardo
Burbuja de 2 o 3 ciclos según sea el diseño:
2? si se escribe el PC al comienzo de la fase M
y se empieza la búsqueda de la instr en el
mismo ciclo.
3? si se escribe el PC al final de la fase M y se
empieza la búsqueda en el ciclo siguiente
(Gp:) bnez r2, 100 (r3)

mult r3, r4, r5
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) Wb
(Gp:) M
(Gp:) Lectura: PC
(Gp:) Escritura: PC
(Gp:) PC: Etapa IF
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) Wb
(Gp:) M

Monografias.com
RIESGOS DE CONTROL: VACIADO DEL CAUCE
28
Delay slot o ventana de retardo
Si el cauce no se había detenido, y se estaba ejecutando
yyy1 e yyy2 de forma especulativa, en caso de que el
salto se efectúe es necesario vaciar el cauce.
(Gp:) bnez r2, 100 (r3)
yyy1
yyy2
mult r3, r4, r5
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) Wb
(Gp:) M
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) Wb
(Gp:) M
(Gp:) IF
(Gp:) ID
(Gp:) –
(Gp:) –
(Gp:) –
(Gp:) IF
(Gp:) –
(Gp:) –
(Gp:) –

Monografias.com
29
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 1

Monografias.com
30
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 2

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter