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

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




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com
31
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 3

Monografias.com
32
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 4

Monografias.com
33
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 5

Monografias.com
34
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 6

Monografias.com
35
RIESGO PROVOCADO POR UN SALTO CONDICIONAL: CICLO 7

Monografias.com
IMPACTO DE UN SALTO EN LAS DETENCIONES
Si el número de instr de salto es un 30%, detener 2 o 3 ciclos en cada uno tiene un impacto significativo en las prestaciones

La solución tiene dos partes:
Determinar si el salto debe o no efectuarse tan pronto como sea posible , y
Calcular la dirección efectiva de salto antes
36

Monografias.com
Se produce debido a que la dirección objetivo del salto (branch y jmp) y la condición de salto (branch) se calulan en la fase Ex de la arquitectura DLX, y se reemplaza el PC en la fase MEM.
Es posible reducir el tamaño de la ventana de retardo.
Para ello es necesario calcular la dirección efectiva de salto y evaluar la condición de salto lo antes posible.
Esto implica modificar el diseño de la arquitectura del cauce.
MIPS: Solución utilizada:
Mover el test de Zero a la etapa ID/RF
Situar el sumador para calcular el nuevo PC en la etapa ID/RF
Se consigue 1 ciclo de reloj de penalización en los saltos en vez de 2 o 3
37
RIESGOS DE CONTROL: REDUCCIÓN DE LA VENTANA DE RETARDO

Monografias.com
ESQUEMA MODIFICADO
38
(Gp:) Memory
Access
(Gp:) Write
Back
(Gp:) Instruction
Fetch
(Gp:) Instr. Decode
Reg. Fetch
(Gp:) Execute
Addr. Calc
(Gp:) ALU
(Gp:) MUX
(Gp:) Instr.
Memory
(Gp:) Reg File
(Gp:) MUX
(Gp:) Data
Memory
(Gp:) MUX
(Gp:) Sign
Extend
(Gp:) 4
(Gp:) Add
(Gp:) Zero?
(Gp:) PC
(Gp:) WB Data
(Gp:) Rs1
(Gp:) Rs2
(Gp:) Imm
(Gp:) PC
(Gp:) Instr
(Gp:) PC
(Gp:) PC
(Gp:) PC
(Gp:) AOR
(Gp:) SVR
(Gp:) ImR
(Gp:) AIR 2
(Gp:) AIR 1
(Gp:) CR
(Gp:) ARR
(Gp:) LMDR
(Gp:) RD
(Gp:) RD
(Gp:) RD
(Gp:) Rd
(Gp:) Add

Monografias.com
Aunque sabemos que en estos tipos de instrucciones tenemos que cambiar el PC, aún es necesario un delay slot (ventana de retardo de 1 ciclo) ya que:
Descodificación de la instrucción
Cálculo del PC
Básicamente, es una decisión que hay que realizar, lo cual toma su tiempo.
Esto sugiere un único delay slot:
Es decir la siguiente instrucción después de un salto incondicional se ejecuta siempre.
39
JUMPS AND CALLS (JAL) (SALTOS INCONDICIONALES)

Monografias.com
RIESGOS DE CONTROL: SOLUCIONES
Un rediseño de cauce, como el que se ha comentado antes reduce el retardo a un ciclo, pero puede producir nuevos riesgos.
Son necesarias técnicas específicas:
Hardware:
una es el interbloqueo.
utilizar una cache predescodificada.
predicción dinámica de salto (a esta le dedicaremos un tema entero por lo que no lo veremos aquí).
Software:
la técnica de saltos retardados.
predicción estática de saltos (dirigida por el compilador).
40

Monografias.com
El Hw interbloquea la siguiente instrucción a ejecutar
? hasta que se calcula la dirección efectiva y el sentido del salto.
41
SOLUCIONES HARDWARE A RIESGOS DE CONTROL: INTERBLOQUEO

Monografias.com
Que es lo que realmente hay que hacer en run time?
Una vez que se ha detectado que una instr es un jump o JAL, es posible recodificarla en la cache interna.
Esto es una forma muy limitada de compilación dinámica

Uso de una cache de instr “Pre-descodificadas”
Llamado “branch folding” en el CRISP processor de los Bell-Labs.
Nota: el JAL introduce un riesgo estructural sobre las escrituras
42
(Gp:) and r3,r1,r5
addi r2,r3,#4
sub r4,r2,r1
jal doit
subi r1,r1,#1
(Gp:) A:
(Gp:) doit
(Gp:) addi r2,r3,#4
(Gp:) A+8
(Gp:) N
(Gp:) sub r4,r2,r1
(Gp:) L
(Gp:) —
(Gp:) —
(Gp:) —
(Gp:) and r3,r1,r5
(Gp:) A+4
(Gp:) N
(Gp:) subi r1,r1,#1
(Gp:) A+20
(Gp:) N
(Gp:) Internal Cache state:

COMO CONSEGUIR UN JUMP CON “RETARDO CERO”

Monografias.com
43
SOLUCIONES SOFTWARE RIESGOS DE CONTROL:ESQUEMA MODIFICADO (CACHE PREDESCODIFICADA)
(Gp:) Memory
Access
(Gp:) Write
Back
(Gp:) Instruction
Fetch
(Gp:) Instr. Decode
Reg. Fetch
(Gp:) Execute
Addr. Calc
(Gp:) ALU
(Gp:) Reg File
(Gp:) MUX
(Gp:) MUX
(Gp:) Data
Memory
(Gp:) MUX
(Gp:) Sign
Extend
(Gp:) Branch?
(Gp:) RD
(Gp:) RD
(Gp:) RD
(Gp:) WB Data
(Gp:) RS2
(Gp:) Imm
(Gp:) MUX
(Gp:) ID/EX
(Gp:) MEM/WB
(Gp:) EX/MEM
(Gp:) IF/ID
(Gp:) Adder
(Gp:) RS1
(Gp:) Return PC
(Addr + 4)
(Gp:) Imm
(Gp:) Opcode
(Gp:) Decoded
Cache
(Gp:) Address

Incrementa el ciclo de reloj en no menos de un retardo por el MUX
Si embargo introduce un riesgo estructural sobre las escrituras debido al JAL

Monografias.com
Se elimina el delay slot (bueno)
El branch ha sido solapado con la instrucción sub (bueno).
Incrementa el tamaño de la cache de instrucciones (no tan bueno)
Requiere otro puerto de lectura en el banco de registros (MALO)
Dobla potencialmente el periodo de reloj (REALMENTE MALO)
44
(Gp:) and r3,r1,r5
addi r2,r3,#4
sub r4,r2,r1
bne r4,loop
subi r1,r1,#1
(Gp:) Internal Cache state:
(Gp:) A:
(Gp:) sub r4,r2,r1
(Gp:) addi r2,r3,#4
(Gp:) sub r4,r2,r1
(Gp:) —
(Gp:) and r3,r1,r5
(Gp:) subi r1,r1,#1
(Gp:) N
(Gp:) BnR4
(Gp:) —
(Gp:) N
(Gp:) N
(Gp:) A+16
(Gp:) A+8
(Gp:) —
(Gp:) A+4
(Gp:) A+20
(Gp:) N/A
(Gp:) loop
(Gp:) —
(Gp:) N/A
(Gp:) N/A
(Gp:) Next
(Gp:) Branch
(Gp:) A+16:

POR QUÉ NO USARLO CON LOS SALTOS CONDICIONALES?

Monografias.com
45
Puede doblar el periodo de reloj – debe acceder a la cache y a los reg
ESQUEMA MODIFICADO
(Gp:) Memory
Access
(Gp:) Write
Back
(Gp:) Instruction
Fetch
(Gp:) “Instr. Decode
Reg. Fetch”
(Gp:) Execute
Addr. Calc
(Gp:) ALU
(Gp:) MUX
(Gp:) MUX
(Gp:) Data
Memory
(Gp:) MUX
(Gp:) Sign
Extend
(Gp:) Branch?
(Gp:) RD
(Gp:) RD
(Gp:) RD
(Gp:) WB Data
(Gp:) RS2
(Gp:) Imm
(Gp:) MUX
(Gp:) ID/EX
(Gp:) MEM/WB
(Gp:) EX/MEM
(Gp:) IF/ID
(Gp:) RS1
(Gp:) Return PC
(Addr + 4)
(Gp:) Decoded
Cache
(Gp:) Address
(Gp:) Next PC
(Gp:) Branch PC
(Gp:) Reg File
(Gp:)

Monografias.com
TEMPORIZACIÓN
46
El tiempo de acceso al banco de registros debe ser cercano al periodo de reloj original
(Gp:) Instruction Cache
Access

(Gp:) Branch Register
Lookup

(Gp:) Mux

Clock:
Ready to latch new PC
Comienzo de If

Monografias.com
Esto causa que la siguiente instrucción se busque inmediatamente en los destinos de los saltos (predict taken)
Si el salto finalmente no es realizado, entonces se elimina la instrucción de destino y se continua por la dirección A+16
47
(Gp:) and r3,r1,r5
addi r2,r3,#4
sub r4,r2,r1
bne r4,loop
subi r1,r1,#1
(Gp:) Internal Cache state:
(Gp:) A:
(Gp:) sub r4,r2,r1
(Gp:) addi r2,r3,#4
(Gp:) sub r4,r2,r1
(Gp:) bne r4
(Gp:) and r3,r1,r5
(Gp:) subi r1,r1,#1
(Gp:) N
(Gp:) N
(Gp:) N
(Gp:) N
(Gp:) N
(Gp:) A+12
(Gp:) A+8
(Gp:) loop
(Gp:) A+4
(Gp:) A+20
(Gp:) Next
(Gp:) A+16:

SIN EMBARGO, PODEMOS USAR LA PRIMERA TÉCNICA PARA REFLEJAR PREDICCIONES Y ELIMINAR DELAY SLOTS

Monografias.com
SOLUCIONES SOFTWARE RIESGOS DE CONTROL:TÉCNICA DE SALTOS RETARDADOS
Idea básica:
El compilador rellena el delay slot con instrucciones que no tengan dependencias con la de salto, y que estén situadas antes del jump o branch (según orden de programa).
Si no hay suficientes instrucciones para mover al delay slot este se rellena con instrucciones no-op.
Estas instrucciones se ejecutarán siempre.
Se usó por vez primera en las primeras generaciones de proc RISC escalares: IBM 801, Berkeley RISC I y el MIPS de Stanford.
Observación:
La probabilidad de encontrar una instrucción que mover a la ventana de retardo es 0.6.
La probabilidad de encontrar 2 instrucción es 0.2.
La probabilidad de encontrar 3 instrucción es 0.1 .
48

Monografias.com
Bucle sin usar salto retardado
Existen instrucciones independientes que no afectan a la de salto.
49
SALTO RETARDADO: EJEMPLO
ld f2, -8(r1)
ld f4, 0(r1)
multd f8, f0, f2
sd 0(r2), f8
addi r2, r2, 8
addi r1, r1, 8
slt r4, r4, r3
bnez r4, loop
yyy1
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Escritura: f2
Escritura: f4
Escritura: f8
F8 Mem
(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

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

(Gp:) x

IF
Ex

(Gp:) x

ID
IF
ID
M
(Gp:) x

IF
Ex
Wb
(Gp:) x

ID
Escritura: r2
(Gp:) x

(Gp:) x

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

loop:

Monografias.com
Bucle usando la técnica de salto retardado
La ventana de retardo se ha completado con instrucciones independientes que no afectan a la de de salto
50
SALTO RETARDADO: EJEMPLO
loop: ld f2, -8(r1)
ld f4, 0(r1)
multd f8, f0, f2
addi r1, r1, 8
slt r4, r4, r3
bnez r4, loop
sd 0(r2), f8
addi r2, r2, 8
yyy1
(Gp:) IF
(Gp:) ID
(Gp:) Ex
(Gp:) M
(Gp:) Wb

Escritura: f2
Escritura: f4
Escritura: f8
(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

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

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

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

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

Wb

Monografias.com
Todos los saltos como tomados.
Los saltos “hacia atrás” predecirlos como tomados y los saltos “hacia adelante” predecirlos como no tomados.
Hacer una predicción sobre la dirección del salto:
La predicción es realizada por el compilador y se incluye en el formato de la instrucción branch.
Las instrucciones se comienzan a buscar en la dirección objetiva del salto predicha por este bit.
Si la predicción es errónea, las instrucciones que se han comenzado a ejecutar según ese path se eliminan del cauce y se busca en la dirección correcta.
La predicción es estática por lo que no puede ser alterada, salvo en la compilación.
51
SOLUCIONES SOFTWARE RIESGOS DE CONTROL:PREDICCIÓN ESTÁTICA DEL SALTO

Monografias.com
IDEAS PARA REDUCIR LAS DETENCIONES
52

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