saltos retardados mips64
DESCRIPTION
ResumenTRANSCRIPT
-
Arquitectura de Computadores MIPS 64 - 1
Arquitectura de Computadores
1. Introduccin
2. La CPU
3. Lenguaje Mquina
4. La Memoria
5. Sistemas de Entrada/Salida
6. Segmentacin (Pipeline) MIPS 64
7. Memoria Cach
8. Arquitecturas RISC
-
Arquitectura de Computadores MIPS 64 - 2
MIPS 64 Caractersticas
Bus de datos de 64 bits
Registros de 64 bits
32 registros de propsito general (R0..R31)
32 registros de coma flotante (F0..F32)
Instrucciones de longitud fija (32 bits)
Cdigo de operacin de longitud fija (6 bits)
Arquitectura Load/Store
Memoria separada para instrucciones y datos (Harvard)
Cauce segmentado en 5 etapas de 1 ciclo cada una
-
Arquitectura de Computadores MIPS 64 - 3
MIPS 64 Etapas del cauce
EtapaIF
Etapa ID
Etapa EX
Etapa MEM
EtapaWB
Etapa IF
Extraccin de la instruccin
PC = PC + 4
Etapa ID
Decodificacin de la instruccin
Lectura de los registros
Extensin de signo (si es necesario)
Actualizacin del PC en caso de salto
-
Arquitectura de Computadores MIPS 64 - 4
MIPS 64 Etapas del cauce
Etapa EX
Clculos en la ALU
Clculo de direccin de operandos de memoria
Etapa MEM
Acceso a memoria (Load/Store)
Etapa WB
Escritura de los registros
-
Arquitectura de Computadores MIPS 64 - 5
MIPS 64 Riesgos
Riesgos en MIPS 64
- Estructurales
- De datos
- De control
-
Arquitectura de Computadores MIPS 64 - 6
MIPS 64 Riesgos estructurales
IDIF MEMEX WB
IDIF MEMEX WB
IDIF MEMEX WB
IDIF MEMEX WB
Problema: Se accede a la memoria a la vez
Solucin: Memoria separada (Harvard)
Problema: Se escriben y leen los registros a la vez
Solucin: Escritura en el 1 subciclo y lectura en el 2
-
Arquitectura de Computadores MIPS 64 - 7
MIPS 64 Riesgos de datos
DADD R1,R2,R3
AND R4,R5,R3
RAR (Read After Read) No presenta problemas
IDIF MEMEX WB
IDIF MEMEX WB
DADD R1,R2,R3
AND R4,R5,R1
RAW (Read After Write) Problemas!
IDIF MEMEX WB
IDIF MEMEX WB
-
Arquitectura de Computadores MIPS 64 - 8
MIPS 64 Riesgos de datos
DADD R1,R2,R3
AND R3,R4,R5
WAR (Write After Read)
DIV.D F1,F2,F3
ADD.D F1,F4,F5
WAW (Write After Write)
IDIF EXEX EX
IDIF MEMEX WB
Se da cuando hay ejecucin fuera de orden
Se da cuando hay ejecucin fuera de orden u
operaciones multiciclo
MEM WB
-
Arquitectura de Computadores MIPS 64 - 9
MIPS 64 Riesgos de datos (RAW)
Solucin de riesgos RAW
- Software- Insercin de instrucciones NOP
- Reordenacin de cdigo
- Hardware- Detencin del cauce
- Anticipacin
En la fase IDDnde se detectan los riesgos?
-
Arquitectura de Computadores MIPS 64 - 10
MIPS 64 Riesgos de datos (RAW)
IDIF MEMEX WB
IDIF MEMEX WB
IDIF MEMEX WB
IDIF MEMEX WB
DADD R1,R2,R3
DSUB R4,R5,R1
AND R6,R7,R8
OR R9,R10,R11
El problema
-
Arquitectura de Computadores MIPS 64 - 11
MIPS 64 Riesgos de datos (RAW)
DADD R1,R2,R3
NOP
NOP
DSUB R4,R5,R1
AND R6,R7,R8
OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Insercin de instrucciones NOP (Solucin software)
Se alarga el tiempo de ejecucin
-
Arquitectura de Computadores MIPS 64 - 12
MIPS 64 Riesgos de datos (RAW)
IDIF MEMEX WB
IDIF MEMEX WB
IDIF MEMEX WB
IDIF MEMEX WB
DADD R1,R2,R3
AND R6,R7,R8
OR R9,R10,R11
DSUB R4,R5,R1
Reordenacin del cdigo (Solucin software)
Se mantiene el tiempo de ejecucin
-
Arquitectura de Computadores MIPS 64 - 13
MIPS 64 Riesgos de datos (RAW)
DADD R1,R2,R3
DSUB R4,R5,R1
AND R6,R7,R8
OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Detencin del cauce (Solucin Hardware)
IF IF
Se alarga el tiempo de ejecucin igual que insertando NOP
-
Arquitectura de Computadores MIPS 64 - 14
MIPS 64 Riesgos de datos (RAW)
Anticipacin (forwarding) (Solucin hardware)
DADD R1,R2,R3
DSUB R4,R5,R1
AND R6,R7,R8
OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Lee un valor errneo
Sustituye el valor ledo en ID por la salida de la ALU anterior
Se mantiene el tiempo de ejecucin
Caso 1:
-
Arquitectura de Computadores MIPS 64 - 15
MIPS 64 Riesgos de datos (RAW)
Anticipacin (forwarding) (Solucin hardware)
LD R3,100(R0)
DADD R1,R2,R3
DSUB R4,R5,R6
AND R7,R8,R9
IF ID EX MEM WB
IF ID ID EX MEM
IF ID EX MEM WB
IF ID EX MEM WB
Lee un valor errneo
Sustituye el valor ledo en ID por lo ledo de la
memoria
Se incrementa 1 ciclo el tiempo de ejecucin
WB
Caso 2:
-
Arquitectura de Computadores MIPS 64 - 16
MIPS 64 Riesgos de datos (RAW)
Anticipacin (forwarding) (Solucin hardware)
DADD R1,R2,R3
BNE R1,R4,Etq
DSUB R5,R6,R7
Etq AND R8,R9,R10
IF ID EX MEM WB
IF ID ID EX MEM
IF IF ID EX MEM
IF ID EX MEM WB
Lee un valor errneo
Si salta, se abortar la ejecucin de DSUB
WB
Caso 3:Sustituye el
valor ledo en ID por la salida de la ALU anterior
WB
-
Arquitectura de Computadores MIPS 64 - 17
MIPS 64 Riesgos de control
El problema
ADD R1,R2,R3
BEQ R4,R5,Etq
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Aqu no se sabe si hay que ejecutar AND
pero ya se ha cargado
AND siempre se ejecuta!
-
Arquitectura de Computadores MIPS 64 - 18
MIPS 64 Riesgos de control
Solucin de riesgos de control
- Software- Insercin de instrucciones NOP
- Salto retardado
- Hardware- Detencin del cauce
- Prediccin del salto
-
Arquitectura de Computadores MIPS 64 - 19
MIPS 64 Riesgos de control
Insercin de instrucciones NOP (Solucin software)
ADD R1,R2,R3
BEQ R4,R5,Etq
NOP
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
En caso de salto
AND no se ejecuta
-
Arquitectura de Computadores MIPS 64 - 20
MIPS 64 Riesgos de control
Salto retardado (Solucin software)
BEQ R4,R5,Etq
ADD R1,R2,R3
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
En caso de salto
AND no se ejecuta
-
Arquitectura de Computadores MIPS 64 - 21
MIPS 64 Riesgos de control
Detencin del cauce (Solucin Hardware)
ADD R1,R2,R3
BEQ R4,R5,Etq
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
En caso de no salto
ADD R1,R2,R3
BEQ R4,R5,Etq
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
En caso de salto
Hueco
Hueco
-
Arquitectura de Computadores MIPS 64 - 22
MIPS 64 Riesgos de control
BEQ R4,R5,Etq
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF
IF ID EX MEM WB
Si falla penalizacin = 1 ciclo
Prediccin del salto (Solucin Hardware)
Se predice no saltar
BEQ R4,R5,Etq
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
Si acierta penalizacin = 0
Abortar
-
Arquitectura de Computadores MIPS 64 - 23
MIPS 64 Riesgos de control
Prediccin del salto (Solucin Hardware)
Se predice s saltar
BEQ R4,R5,Etq
AND R6,R7,R8
Etq OR R9,R10,R11
IF ID EX MEM WB
?
?
Hasta este instante no se conoce la direccin del salto
No se utiliza en MIPS 64 ya que la penalizacin siempre es de 1 ciclo