Você está na página 1de 42

1 Procesadores segmentados

Mejora del rendimiento del procesador:

Segmentacion

Dept. Arquitectura de Computadores Universidad de Malaga

2 Procesadores segmentados

Introducci
on

 : Mejora del rendimiento mediante la superposicion de


SEGMENTACION
la ejecucion de multiples operaciones.
 Mayor aprovechamiento de recursos
 Extraccion del paralelismo temporal
 Invisible al programador

Dept. Arquitectura de Computadores Universidad de Malaga


3 Procesadores segmentados

Introducci
on

Medidas del rendimiento de un procesador:


 NC Numero de ciclos de reloj de CPU para ejecutar una tarea
 TC Duracion de un ciclo de reloj
 CPU  Tiempo de CPU requerido para completar una tarea
T

espec ca: CPU =


T NC TC

  Numero de instrucciones por tarea


NI

 CPI  Numero medio de ciclos por instruccion: CPI  N C=N I

=) CPU = CPI 
T  TC NI

Dept. Arquitectura de Computadores Universidad de Malaga

4 Procesadores segmentados

Introducci
on

Mejora del rendimiento:


 Disminucion de CPI, TC o NI ) Aumento del rendimiento
Problema:
Los tres factores no son independientes. El cambio de uno de ellos
puede afectar a los otros
Cada factor depende de unas tecnologas basicas interdependientes entre s:
 Ciclo de reloj Tecnologa hardware y organizacion
 CPI Organizacion y repertorio de instrucciones
 N. de instrucciones Repertorio de instrucciones y tecnologa del
compilador

Dept. Arquitectura de Computadores Universidad de Malaga


5 Procesadores segmentados

Segmentaci
on del camino de datos

10 ns 5 ns 10 ns 10 ns 5 ns 10 ns 5 ns 10 ns 10 ns 5 ns 10 ns 5 ns

Tiempo
Reg

Reg
MI ALU MD

Reg

Reg
40 ns MI ALU MD
CC 1

Reg
40 ns MI
CC 2

40 ns
Instrucciones
CC 3

CP I = 1; T C = 40ns =) TCPU = 40  N I

Dept. Arquitectura de Computadores Universidad de Malaga

6 Procesadores segmentados

Segmentaci
on del camino de datos

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7
10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns
Tiempo
Reg

Reg

MI ALU MD
Reg

Reg

MI ALU MD
Reg

Reg

MI ALU MD

Instrucciones

 Instrucciones individuales mas lentas (50 ns).


 Incremento en la productividad de las instrucciones

Dept. Arquitectura de Computadores Universidad de Malaga


7 Procesadores segmentados

Segmentaci
on del camino de datos

Mejora del rendimiento con la segmentacion:


 CP I = 1 (Ideal), TC = 10 ns =) TCPU = 10  N I
 Aceleracion: S = TCPU (No seg.) =TCPU (Seg.) = 4
 Aceleracion ideal: Si = N. de etapas de la segmentacion = 5
 Problema: desequilibrio en las etapas de la segmentacion.
Division del camino de datos en etapas lo mas equilibradas
posibles

Dept. Arquitectura de Computadores Universidad de Malaga

8 Procesadores segmentados

Segmentaci
on del camino de datos

Decodificacin/ Ejecucin/ Post-


 Procesador no segmentado
multiciclo
Busqueda de Instruccin Acceso a registros Clculo de direccion efectiva Acceso a memoria de datos escritura

M
4 u

Add NPC
Cero?
Salto Cond.
x
 Reloj jado por la fase mas
lenta
tomado salto

IR 6..10
Rs1
M

 Operaciones de carga ! 5 ci-


IR 11..15 u
PC Rs2 A x
Memoria

clos, jump ! 3 ciclos


IR Registros Sal.
de M ALU ALU Memoria
Instrucciones u Rd
x B M de LMD M
IR 16..20 u u

Resto de operaciones ! 4 ci-


Datos


x x
valor

IR 16..31 16 Ext.
del
signo
32
Inm. clos
 22% de cargas y 2% jumps )
CP I = 4:2

Dept. Arquitectura de Computadores Universidad de Malaga


9 Procesadores segmentados

Segmentaci
on del camino de datos

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Salto

 Procesador segmentado
Add x Cero?
tomado

IR 6..10

 Reloj jado por la fase mas


Rs1
M
IR 11..15 u
PC Dir. Rs2 x

lenta
Memoria
de Registros ALU Dir.
Memoria
Instrucciones Rd

 Todas las operaciones ! 1 ci-


M de M
u u
Datos
x x

clo ) CP I = 1 (ideal)
valor Dato

IR 16..31 Ext.
del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga

10 Procesadores segmentados

Segmentaci
on del camino de datos

Registros de segmentacion:
 Necesarios para mantener los valores que se trans eren entre las
etapas.
 BI/DI : Almacena la instruccion y el PC (saltos)
 DI/EJ : Almacena el valor de Rs1 , Rs2 , el numero de registro destino
N Rd y el PC
 EJ/MEM : Almacena salida de la ALU, condicion de salto, el valor a
almacenar en memoria (store ) y N Rd
 MEM/PE : Almacena salida de memoria, salida de la ALU y N Rd

 PC podra considerarse como un registro previo a BI

Dept. Arquitectura de Computadores Universidad de Malaga


11 Procesadores segmentados

Segmentaci
on del camino de datos

Ejemplo:
 Evolucion de las instrucciones en el camino de datos
dest: LW R10,40(R1)
ADD R1,R2,R3
SW 0(R4),R5
SUB R2,R2,R6
BEQ R1,dest
SW 40(R1),R10

Dept. Arquitectura de Computadores Universidad de Malaga

12 Procesadores segmentados

CC1
LW R10,40(R1)

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Add x Salto
Cero?
tomado

IR 6..10
Rs1
M
IR 11..15 u
PC Dir. Rs2 x
Memoria
de Registros ALU Dir.
Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato

IR 16..31 Ext.
del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga


13 Procesadores segmentados

CC2
ADD R1,R2,R3 LW R10,40(R1)

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Add x Salto
Cero?
tomado
[R1]
IR 6..10
Rs1
M
IR 11..15 u
PC Dir. Rs2 x
Memoria
de Registros ALU Dir.
Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato

IR 16..31 Ext. +40


del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga

14 Procesadores segmentados

CC3
SW 0(R4),R5 ADD R1,R2,R3 LW R10,40(R1)

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Add x Salto
Cero?
tomado
[R2]
IR 6..10
Rs1
M R1
IR 11..15 u
PC Dir. Rs2 x
Memoria [R3]
de Registros ALU Dir.
Memoria
Instrucciones Rd
M de M
u
40 u
Datos
x x
valor Dato

IR 16..31 Ext.
del IR 11..15 M
16 signo 32
[R10]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga


15 Procesadores segmentados

CC4
SUB R2,R2,R6 SW 0(R4),R5 ADD R1,R2,R3 LW R10,40(R1)

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Add x Salto
Cero?
tomado
[R4]
IR 6..10
Rs1
M R2
IR 11..15 u
PC Dir. Rs2 x
Memoria [R5]
de Registros ALU Dir.
Memoria
Instrucciones Rd
M de M
u
R3 u
Datos
x x
valor Dato

IR 16..31 Ext. +0
del IR 11..15 M
16 signo 32 [R1] [R10]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga

16 Procesadores segmentados

CC5
BEQ R1, dest SUB R2,R2,R6 SW 0(R4),R5 ADD R1,R2,R3 LW ...

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Add x Salto
Cero?
tomado
[R2]
IR 6..10
Rs1
M R4
IR 11..15 u
PC Dir. Rs2 x
Memoria [R6]
de Registros ALU Dir.
Memoria
Instrucciones Rd
[R10] M
+0 de M
u u
Datos
valor x R5 Dato
x

IR 16..31 Ext.
IR 11..15 M
R2+R3
del
16 signo 32
IR 16..20 u
IR 11..20 x [R1]

Dept. Arquitectura de Computadores Universidad de Malaga


17 Procesadores segmentados

CC6
SW 40(R1),R10 BEQ R1, dest SUB R2,R2,R6 SW 0(R4),R5 ADD...

BI/DI DI/EJ EJ/MEM MEM/PE

4 M
u
Add x Salto
Cero?
tomado
[R1]
IR 6..10
Rs1
M R2
IR 11..15 u
PC Dir. Rs2 x
Memoria
de Registros ALU Dir.
Memoria
Instrucciones Rd
[R1] M
R6 de M
u u
R5 Datos
x x
valor Dato

IR 16..31 Ext. -20 IR 11..15 M


del
16 signo 32 [R2]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga

18 Procesadores segmentados

Control del sistema segmentado

Se~nales de control necesarias para todas las etapas


 Se~nales de control generadas en la etapa DI (etapas BI y DI no
requieren control)
 Los registros de segmentacion trans eren las se~nales de control entre
las etapas
 Etapa EJ : Control de multiplexos de entrada a la ALU, operacion de
la ALU, seleccion de destino y control de salto
 Etapa MEM : Seleccion de lectura o escritura
 Etapa WB : Seleccion de valor a escribir y activacion de escritura en
registros

Dept. Arquitectura de Computadores Universidad de Malaga


19 Procesadores segmentados

Control del sistema segmentado

Se~
nal Efecto si 0 Efecto si 1
ALU1 PC ! ALU(1) Reg. ! ALU(1)
ALU2 Reg. ! ALU(2) Imm. ! ALU(2)
RegDst Reg. destino = IR11:::15 Reg. destino = IR16:::20
(tipo I) (tipo R)
Btest Nada Chequea salto (salida 1 si
0)
ALUop Suma Resta
MemWrite Nada Escribe en memoria
MemRead Nada Lee de memoria
MemtoReg Mem. ! Reg. ALU ! Reg.
RegWrite Nada Escribe registro

Dept. Arquitectura de Computadores Universidad de Malaga

20 Procesadores segmentados

Control del sistema segmentado

DI/EJ EJ/MEM MEM/PE


IR 0..5 PE
Control ME PE
111
000
000
111
4 M BI/DI EJ 0011 ME PE
Btest

u
Add x Salto
RegWrite

Cero?
00111100 111
000
tomado
000
111
ALU1

ALUop

IR 6..10 E
Rs1
M
MemWrite

u
PC Dir.
IR 11..15
Rs2 x 111
000
MemtoReg

Memoria
111
000
000
111
E
ALU2

de Registros ALU Dir.


Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato
RegDst

IR 16..31 Ext. MemRead


del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga


21 Procesadores segmentados

CC1
LW R10,40(R1)

DI/EJ EJ/MEM MEM/PE


IR 0..5 PE
Control
4 M BI/DI
ME
EJ
00111100
PE
ME PE
00111100

Btest
u
Add x Salto

RegWrite
Cero?
00111100 11001100
tomado

ALU1

ALUop
IR 6..10 E
Rs1
M

MemWrite
IR 11..15 u 111
000
000
111
PC Dir. Rs2 x

MemtoReg
Memoria
00111100 E

ALU2
de Registros ALU Dir.
Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato

RegDst
L

IR 16..31 Ext. MemRead


del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga

22 Procesadores segmentados

CC2
ADD R1,R2,R3 LW R10,40(R1)

DI/EJ EJ/MEM MEM/PE


01
PE
LW 01
Control
4 M BI/DI 11000
ME
EJ
00111100
PE
ME PE
00111100
Btest

u
Add x Salto
RegWrite

Cero?
tomado
[R1] 0011 0011
ALU1

ALUop

IR 6..10 E
Rs1
M
MemWrite

u
PC Dir.
IR 11..15
Rs2 x 0011
MemtoReg

Memoria
E
0011
ALU2

de Registros ALU Dir.


Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato
RegDst

IR 16..31 Ext. +40 MemRead


del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 [R10] x

Dept. Arquitectura de Computadores Universidad de Malaga


23 Procesadores segmentados

CC3
SW 0(R4),R5 ADD R1,R2,R3 LW R10,40(R1)

DI/EJ EJ/MEM MEM/PE


11
PE
ADD 00 01
Control
00111100
ME PE
4 M BI/DI 10100
EJ
0
01
ME PE 111
000
u
Add x Salto

RegWrite
Cero?
00111100 11001100
tomado
[R2] 1
IR 6..10 E
Rs1 0
M R1

MemWrite
IR 11..15 u 111
000
000
111
PC Dir. Rs2 x

MemtoReg
Memoria [R3]
de Registros 00111100 ALU Dir.
E
1 Memoria
Instrucciones Rd
M de M
u
40 u
Datos
x x
valor Dato
L
0
IR 16..31 Ext. MemRead
del IR 11..15 M
16 signo 32
[R10]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga

24 Procesadores segmentados

CC4
SUB R2,R2,R6 SW 0(R4),R5 ADD R1,R2,R3 LW R10,40(R1)

DI/EJ EJ/MEM MEM/PE


00
PE
SW 10 11
Control
00111100
ME PE
4 M BI/DI 11000
EJ
0
00
ME
01
PE 111
000
u
Add x Salto
RegWrite

Cero?
00111100 11001100
tomado
[R4] 1
IR 6..10 E
Rs1 0
M R2
IR 11..15 u 111
000
000
111
PC Dir. Rs2 x 0
MemtoReg

Memoria [R5]
de Registros 00111100 ALU Dir.
E
0 Memoria
Instrucciones Rd
M de M
u
R3 u
Datos
x x
valor Dato
L
1
1
IR 16..31 Ext. +0
del IR 11..15 M
16 signo 32 [R1] [R10]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga


25 Procesadores segmentados

CC5
BEQ R1, dest SUB R2,R2,R6 SW 0(R4),R5 ADD R1,R2,R3 LW ...

DI/EJ EJ/MEM MEM/PE


11
PE
SUB 00 00
Control ME PE
111
000
000
111
0011
4 BI/DI 10101 10 11
M EJ ME PE
0
u
Add x Salto
Cero?
00111100 111
000
tomado
[R2]
1
1
000
111
IR 6..10 E
Rs1 0
M R4
u
PC Dir.
IR 11..15
Rs2 x 0
111
000
Memoria [R6]
E
de Registros
1 111
000 ALU Dir.
Memoria
0
Instrucciones Rd
[R10] M
+0 de M
u u
Datos
valor x R5 Dato
x
L
0
0
IR 16..31 Ext.
IR 11..15 M
R2+R3
del
16 signo 32
IR 16..20 u
IR 11..20 x [R1]

Dept. Arquitectura de Computadores Universidad de Malaga

26 Procesadores segmentados

CC6
SW 40(R1),R10 BEQ R1, dest SUB R2,R2,R6 SW 0(R4),R5 ADD...

DI/EJ EJ/MEM MEM/PE


00
PE
BEQ 00 11
Control
111
000
ME PE
4 M BI/DI 01010
EJ 000
111 0
00
ME
00
PE 111
000
u
Add x Salto
Cero?
tomado
[R1] 1
111 000
000
1
111
IR 6..10 E
Rs1 1
M R2
u 0011
PC Dir.
IR 11..15
Rs2 x 1
1100
Memoria
E
de Registros
0 111
000 ALU Dir.
Memoria
1
Instrucciones Rd
[R1] M
R6 de M
u u
R5 Datos
x x
valor Dato
L
1
0
IR 16..31 Ext. -20
del IR 11..15 M
16 signo 32 [R2]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga


27 Procesadores segmentados

Dependencias entre instrucciones

Dependencias en una secuencia de instrucciones


Dependencias de recursos Dos instrucciones necesitan utilizar el
mismo recurso del procesador al mismo tiempo
Dependencias de datos entre instrucciones La correcta ejecucion de
una instruccion depende de los resultados de otras instrucciones que
pueden estar siendo ejecutadas simultaneamente con la primera.
Existen tres clases: dependencias verdaderas, antidependencias y
dependencias de salida
Dependencias de control Debidas a la ejecucion de instrucciones de
salto
Pueden limitar el rendimiento del sistema segmentado

Dept. Arquitectura de Computadores Universidad de Malaga

28 Procesadores segmentados

Dependencias entre instrucciones

Dependencias de datos entre instrucciones


Dependencia verdadera Una instruccion j es dependiente de otra i si
se veri ca una de las dos condiciones siguientes:
 La instruccion i produce un resultado que es usado por j
 La instruccion j es dependiente de una instruccion k, y k es
dependiente de i
Ejemplo: LD
Hj
F0,0(R1)
ADDD PPPq
F4,F0,F2
SD 0(R1),F4

Dept. Arquitectura de Computadores Universidad de Malaga


29 Procesadores segmentados

Dependencias entre instrucciones

Dependencias de datos entre instrucciones


Antidependencia Si i precede a j en el programa, y j escribe un registro
o posicion de memoria que es ledo posteriormente por i
Ejemplo:


ADDD F4,F0,F2
LD F0,-8(R1)
Dependencia de salida Si i y j escriben en el mismo registro o posicion
de memoria
Ejemplo: ADDD F0,F1,F2
LD
?
F0,-8(R1)
Las antidependencias y las dependencias de salida se denominan tambien
dependencias de nombre

Dept. Arquitectura de Computadores Universidad de Malaga

30 Procesadores segmentados

Dependencias entre instrucciones

Cuando la existencia de una dependencia impide que una instruccion sea


ejecutada en el ciclo de reloj que le correspondera se produce un Riesgo o
Azar (Hazard ). Hay tres tipos de riesgos:
Riesgos estructurales derivan de una dependencia de recursos, cuando
el hardware no puede soportar todas las combinaciones posibles de
instrucciones en ejecuciones
Riesgos por dependencias de datos surgen cuando una instruccion
depende de los resultados de una instruccion anterior, de forma que,
ambas podran llegar a ejecutarse de forma solapada. Derivan de
dependencias de datos
Riesgos de control surgen de la segmentacion de los saltos y otras
instrucciones que cambien el PC. Derivan de dependencias de control

Dept. Arquitectura de Computadores Universidad de Malaga


31 Procesadores segmentados

Riesgos estructurales

Con ictos en los accesos a los recursos del sistema. Por ejemplo:
 Escrituras y lecturas simultaneas en el chero de registros
 Accesos simultaneos a la misma memoria
 Accesos a unidades funcionales no{segmentadas (por ejemplo,
unidades de punto otante)
El ujo de instrucciones debe ser detenido hasta que se resuelva el riesgo

Dept. Arquitectura de Computadores Universidad de Malaga

32 Procesadores segmentados

Riesgos estructurales

Ejemplo: Sistema con memoria unica de datos e instrucciones


CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8
Instrucciones

Tiempo
Reg

Reg

Carga Mem ALU Mem


Reg

Reg

Instr. 1 Mem ALU Mem


Reg

Reg

Instr. 2 Mem ALU Mem


Reg

Reg

Instr. 3 Mem ALU Mem


Reg

Instr. 4 Mem ALU Mem

El riesgo estructural impide que la instruccion 3 se empiece a ejecutar en el


ciclo 4

Dept. Arquitectura de Computadores Universidad de Malaga


33 Procesadores segmentados

Riesgos estructurales

Solucion: detener el avance de las instrucciones durante un ciclo


CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8
Instrucciones

Tiempo

Reg

Reg
Carga Mem ALU Mem

Reg

Reg
Instr. 1 Mem ALU Mem

Reg

Reg
Instr. 2 Mem ALU Mem

Reg
Instr. 3 Burbuja Mem ALU Mem

Reg
Instr. 4 Mem ALU

Perdida de ciclos de reloj debido a las detenciones

Dept. Arquitectura de Computadores Universidad de Malaga

34 Procesadores segmentados

Riesgos estructurales

Soluciones:
 Aumentar el numero de puertos de acceso a los cheros de registros
 Usar caches particionadas de datos e instrucciones
 Replicar o segmentar las unidades funcionales
Compromiso entre coste y rendimiento: por ejemplo, CDC 7600 y MIPS
R2010 usan unidades PF no segmentadas con menor latencia

Dept. Arquitectura de Computadores Universidad de Malaga


35 Procesadores segmentados

Riesgos de datos

Debidos a el cambio que la segmentacion produce en el orden de los


accesos a los operandos, con respecto a la ejecucion secuencial. Tres tipos:
Riesgos RAW (read after write ) Una instruccion j intenta leer un
operando que va a ser modi cado por una instruccion previa i. Surgen
de dependencias verdaderas
Riesgos WAR (write after read ) j intenta escribir un destino antes de
que sea ledo por i. Surgen de antidependencias
Riesgos WAW (write after write ) j intenta escribir un operando antes
de que sea escrito por i. Surgen de dependencias de salida
Pueden provocar perdidas de ciclos

Dept. Arquitectura de Computadores Universidad de Malaga

36 Procesadores segmentados

Riesgos de datos

Riesgos RAW:
ADD R1,R2,R3
SUB R4,R5,R1
AND R6,R1,R7 CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

OR R8,R1,R9
Instrucciones

Tiempo
Reg

Reg

ADD R1,R2,R3 MI ALU MD

XOR R10,R1,R11
Todas las instrucciones tie-
Reg

Reg

SUB R4,R5,R1 MI ALU MD

nen una dependencia verda-


dera con la ADD.
Reg

AND R6,R1,R7 MI ALU MD

Solo SUB y AND producen ries-


go RAW.
Reg

OR R8,R1,R9 MI ALU

Riesgo de OR evitado: los re-


Reg

gistros se escriben en la pri-


XOR R10,R1,R11 MI

mera mitad del ciclo y se


leen en la segunda

Dept. Arquitectura de Computadores Universidad de Malaga


37 Procesadores segmentados

Reduccion de los riesgos de dependencias de datos

Adelantamientos (forwarding o bypassing ):


Las salidas de una unidad funcional son realimentadas como entradas a la misma
unidad o a las unidades previas. As:
 Los resultados de la
ALU se adelantan del CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

registro EJ/MEM a la

Instrucciones
Tiempo

Reg

Reg
MI ALU MD ADD R1,R2,R3

entrada de la ALU
 La logica de control de

Reg

Reg
MI ALU MD
SUB R4,R5,R1

los adelantamientos de-


tecta si la fuente de la

Reg
MI ALU MD
AND R6,R1,R7

nueva operacion ha de

Reg
ser el valor ledo de los
MI ALU
OR R8,R1,R9

registros o la salida de

Reg
MI
la ALU del ciclo ante-
XOR R10,R1,R11

rior

Dept. Arquitectura de Computadores Universidad de Malaga

38 Procesadores segmentados

Riesgos de datos: Adelantamientos

Los adelantamientos deben ser generalizados para evitar detenciones:


CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
Instrucciones

Tiempo
Reg

Reg

ADD R1,R2,R3 ADD R1,R2,R3 MI ALU MD

LW R4,0(R1)
Reg

Reg

LW R4,0(R1) MI ALU MD

SW 12(R1),R4
Reg

SW 12(R1),R4 MI ALU MD

Los valores de R1 y R4 deben adelantarse de los registros de segmentacion a


las entradas de la ALU y memoria de datos.
Podra necesitarse una lnea de adelantamiento desde los registros de
segmentacion a la entrada de cualquier unidad funcional (por ejemplo, la
unidad de deteccion de cero)

Dept. Arquitectura de Computadores Universidad de Malaga


39 Procesadores segmentados

Riesgos de datos: Detenciones

Algunos riesgos RAW no pueden ser resueltos mediante adelantamientos )


detenciones
CC 1 CC 2 CC 3 CC 4 CC 5 Tiempo

LW R1,0(R2)

Instrucciones

Reg

Reg
LW R1,0(R2) MI ALU MD

SUB R4,R5,R1

Reg
AND R6,R1,R4
SUB R4,R5,R1 MI ALU MD

OR R8,R1,R9

Reg
AND R6,R1,R4 MI ALU

XOR R10,R1,R11

Reg
OR R8,R1,R9 MI

Es imposible adelantar la salida de la operacion LW a la entrada de la


operacion SUB ) la segmentacion debe detenerse ) perdida de ciclos de
reloj ) necesidad de plani car el codigo para evitar estas detenciones

Dept. Arquitectura de Computadores Universidad de Malaga

40 Procesadores segmentados

Riesgos de datos: Detenciones

Solucion: plani cacion re-


llenando los huecos de
carga (load delay ). Ejem-
plo de codigo no plani ca-
do:
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
LW R1,0(R10)
Tiempo LW R2,4(R10)
Instrucciones

Reg

Reg

ADD R3,R1,R2 ;Detenci


on
LW R1,0(R2) MI ALU MD

LW R1,0(R11)
Reg

SUB R4,R5,R1 MI Burbuja ALU MD


LW R2,4(R11)
ADD R4,R1,R2 ;Detenci
on
Reg

AND R6,R1,R7 MI Burbuja ALU

Ejemplo de codigo plani -


cado:
Reg

OR R8,R1,R9 Burbuja MI

LW R1,0(R10)
LW R2,4(R10)
LW R3,0(R11)
LW R4,4(R11)
ADD R5,R1,R2
ADD R6,R3,R4

Dept. Arquitectura de Computadores Universidad de Malaga


41 Procesadores segmentados

BI/DI DI/EJ EJ/MEM MEM/PE


Unidad de
4 detenciones
M
u M
Salto
Add x u 0?
x Tomado

Ins. [6-10]
Rs1
Rs1 M
Ins. [11-15] u
PC Dir. Rs2
Memoria x
Registros A
de L Dir.
U Memoria
Instrucciones Rd M
de M
Rs2 u u
x M Datos
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo
Unidad de
adelantamiento
Ins. [16-20]

Ins. [11-15]

M
u
x

Dept. Arquitectura de Computadores Universidad de Malaga

42 Procesadores segmentados

CC3
AND R6,R1,R4 SUB R4,R5,R1 LW R1,0(R2)

BI/DI
111111111
000000000
000000000
111111111
DI/EJ EJ/MEM MEM/PE

0 000000000
111111111
Unidad de
4 M
000000000
111111111
000000000
111111111
detenciones 0
u 000000000
111111111 M
Salto
Add x [R1] u 0?
x Tomado
0
[R5]
Ins. [6-10]
Rs1
Rs1 M
PC Dir.
Ins. [11-15]
Rs2 R2 u
Memoria [R1] x
Registros A
de L Dir.
U Memoria
Instrucciones Rd M
de M
Rs2 u u
x M Datos
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo
0 Unidad de
adelantamiento
Ins. [16-20]

[R4] Ins. [11-15]

M
u

[R1] x
[R1]

Dept. Arquitectura de Computadores Universidad de Malaga


43 Procesadores segmentados

CC4
AND R6,R1,R4 SUB R4,R5,R1 Burbuja LW R1,0(R2)

BI/DI DI/EJ EJ/MEM MEM/PE


Unidad de
4 detenciones 0
M
u M
Salto
Add x u 0?
x Tomado

[R5]
Ins. [6-10]
Rs1
[R1] Rs1 M
Ins. [11-15] u
PC Dir. Rs2
Memoria x
Registros A
de L Dir.
U Memoria
Instrucciones Rd M
de M
Rs2 u u
x M Datos
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo
Unidad de
adelantamiento
Ins. [16-20]

[R4] Ins. [11-15] [R1]

M
u
x

Dept. Arquitectura de Computadores Universidad de Malaga

44 Procesadores segmentados

CC5
OR R8,R1,R9 AND R6,R1,R4 SUB R4,R5,R1 Burbuja LW R1,...

BI/DI DI/EJ EJ/MEM MEM/PE


Unidad de
4 detenciones 0
M
u M
Salto
Add x u 0?
x Tomado

[R1]
Ins. [6-10]
Rs1
R5 M
[R4]
Ins. [11-15]
Rs1

u
PC Dir. Rs2
Memoria x
Registros A
de L Dir.
[R1] R1 U Memoria
Instrucciones Rd M
de M
Rs2 u u
M Datos
R1 x
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo 1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
Unidad de
0000000000
1111111111
Ins. [16-20] 0000000000
1111111111
adelantamiento
[R1] 1111111111
0000000000
[R6] Ins. [11-15] [R1]

M
u
x
[R4]

Dept. Arquitectura de Computadores Universidad de Malaga


45 Procesadores segmentados

CC6
XOR R10,R1,R11 OR R8,R1,R9 AND R6,R1,R4 SUB R4,R5,R1 Burbuja

BI/DI DI/EJ EJ/MEM MEM/PE


Unidad de
4 detenciones
M
u M
Salto
Add x u 0?
x Tomado

[R1]
Ins. [6-10]
Rs1
R1 M
[R9]
Ins. [11-15]
Rs1

u
PC Dir. Rs2
Memoria x
Registros A
de L Dir.
U Memoria
Instrucciones Rd R4 M
de M
Rs2 u u
x M Datos
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo 1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
Unidad de
0000000000
1111111111
[R8] Ins. [16-20] [R4] 0000000000
1111111111
adelantamiento
0000000000
1111111111
Ins. [11-15]
[R4]
[R4]

M
u
x

[R6]

Dept. Arquitectura de Computadores Universidad de Malaga

46 Procesadores segmentados

Otros riesgos de datos

Riesgos WAR No aparecen en la segmentacion simple, ya que todas las


lecturas se efectuan antes que las escrituras. Podra ocurrir si se
permite la escritura al inicio del pipeline.
Ejemplo: Operaciones de memoria ) 2 ciclos. Operaciones ALU no
pasan por etapa de memoria.
SW R1,0(R2) BI MEM2 PE DI EJ MEM1
ADD R2,R3,R4 BI DI EJ PE
ADD podra escribir en R2 antes de que SW hiciese uso de su valor

Dept. Arquitectura de Computadores Universidad de Malaga


47 Procesadores segmentados

Otros riesgos de datos

Riesgos WAW No aparecen en la segmentacion simple, ya que todas las


escrituras se efectuan en orden. Podra ocurrir si se permite la
escritura en distintas etapas del pipeline.
LW R1,0(R2) BI DI EJ MEM1 MEM2 PE
ADD R1,R2,R3 BI DI EJ PE
LW escribira en R1 despues de que lo haya hecho ADD
Aparecen problemas adicionales si dos instrucciones intentan escribir
en el mismo ciclo de reloj

Dept. Arquitectura de Computadores Universidad de Malaga

48 Procesadores segmentados

Riesgos de control

Una instruccion de salto altera el orden secuencial del programa.


No sabemos si el salto es efectivo o no hasta el nal de la etapa MEM )
perdida de 3 ciclos de reloj por cada salto:
Instr. de salto BI DI EJ MEM PE
Sucesor BI det. det. BI DI EJ MEM PE
Sucesor + 1 BI DI EJ MEM PE
Sucesor + 2 BI DI EJ MEM
Sucesor + 3 BI DI EJ

Gran perdida de rendimiento (mas importante que la debida a los riesgos


de datos)
Solucion parcial: determinar si el salto es o no efectivo, as como la
direccion destino de salto, en las primeras etapas de la segmentacion

Dept. Arquitectura de Computadores Universidad de Malaga


49 Procesadores segmentados

Riesgos de control

Ejemplo:
 Evolucion de las instrucciones en el camino de datos
I ADD R1,R0,R0
I+ 4 BEQZ R1,dest
I+ 8 SUB R4,R5,R1
I+12 AND R6,R1,R4
I+16 OR R8,R1,R9
I+20 ADD R8,R8,R1
. .
. .
dest: LW R1, 0(R1)

Dept. Arquitectura de Computadores Universidad de Malaga

50 Procesadores segmentados

CC4
AND R6,R1,R4 SUB R4,R5,R1 BEQZ R1, dest ADD R1,R0,R0

I + 16
BI/DI DI/EJ EJ/MEM MEM/PE
Unidad de
4 detenciones
M
PC
u M
Add x
R1 u
Salto
0?
x Tomado

[R5]
Ins. [6-10]
Rs1
I Rs1 M
Ins. [11-15] u
+
PC Dir. Rs2
Memoria [R1] x
12 A
de Registros L Dir.
U Memoria
Instrucciones Rd M
de M
Rs2 u u
x M Datos
x
valor offset u Dato
x
16 Ext. de 32
Ins. [16-31] Signo 1111111111
0000000000
0000000000
1111111111 R1
0000000000
1111111111
Unidad de
[R1] 0000000000
1111111111
0000000000
1111111111
adelantamiento
Ins. [16-20]
0000000000
1111111111 [R1]
[R4] Ins. [11-15]

M
[R1]
u
x

Dept. Arquitectura de Computadores Universidad de Malaga


51 Procesadores segmentados

CC5
OR R8,R1,R9 AND R6,R1,R4 SUB R4,R5,R1 BEQZ R1, dest ADD...

dest
BI/DI
111111111
000000000
000000000
111111111
DI/EJ EJ/MEM MEM/PE

000000000
111111111
Unidad de
4 M
000000000
111111111
000000000
111111111
detenciones 0 0
u 000000000
111111111 M
Salto
Add x u 0?
x Tomado

[R1]
Ins. [6-10]
Rs1
I Rs1 [R5] M
Ins. [11-15] u
+
PC Dir. Rs2
Memoria [R4] x
16
Registros A
de L Dir.
U Memoria
Instrucciones Rd M
de M
Rs2 [R1] u u
x M Datos
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo
R1
Unidad de
adelantamiento
Ins. [16-20]

[R6] Ins. [11-15] [R1]

M
u
x
[R4]

Dept. Arquitectura de Computadores Universidad de Malaga

52 Procesadores segmentados

CC6
LW R1, 0(R1) burbuja burbuja burbuja BEQZ...

BI/DI DI/EJ EJ/MEM MEM/PE


Unidad de
4 detenciones 0 0 0
M
u M
Salto
Add x u 0?
x Tomado

Ins. [6-10]
Rs1
Rs1 M
DEST

Ins. [11-15] u
PC Dir. Rs2
Memoria x
Registros A
de L Dir.
U Memoria
Instrucciones Rd M
de M
Rs2 u u
x M Datos
u Dato x
valor
x
16 Ext. de 32
Ins. [16-31] Signo
Unidad de
adelantamiento
Ins. [16-20]

Ins. [11-15]

M
u
x

Dept. Arquitectura de Computadores Universidad de Malaga


53 Procesadores segmentados

Riesgos de control

BI/DI DI/EJ EJ/MEM MEM/PE


Add
4 M
u Cero?
Add x

IR 6..10
Rs1

IR 11..15
PC Dir. Rs2
Memoria
de Registros Dir.
ALU
Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato

IR 16..31 Ext.
del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x

Solo 1 ciclo perdido por salto, pero la etapa DI es mas lenta


Segmentacion mas profunda ) Perdida de mas ciclos de reloj (hasta 6 o 7
por salto) ) Necesidad de metodos para reducir las penalizaciones por
riesgos de control

Dept. Arquitectura de Computadores Universidad de Malaga

54 Procesadores segmentados

CC3
SUB R4,R5,R1 BEQZ R1, dest ADD R1,R0,R0

DEST
BI/DI DI/EJ R1 EJ/MEM MEM/PE
Add
4 M PC M
u u Cero?
Add x x
offset
IR 6..10
Rs1
I [R1]
+ Dir.
IR 11..15
Rs2
0
PC
Memoria
8
de Registros Dir.
ALU
Memoria
Instrucciones Rd 0 M
M de
u u
Datos
x x
valor Dato

IR 16..31 Ext.
del IR 11..15 M
16 signo 32 [R1]
IR 16..20 u
IR 11..20 x

Dept. Arquitectura de Computadores Universidad de Malaga


55 Procesadores segmentados

CC4
LW R1, 0(R1) burbuja BEQZ R1, dest ADD R1,R0,R0

DEST + 4
BI/DI DI/EJ EJ/MEM MEM/PE
Add
4 M M
u u Cero?
Add x x

IR 6..10
D Rs1

E IR 11..15
PC Dir. Rs2
S Memoria
T de Registros
ALU Dir.
Memoria
Instrucciones Rd
M de M
u u
Datos
x x
valor Dato

IR 16..31 Ext. R1
del IR 11..15 M
16 signo 32
IR 16..20 u
IR 11..20 x [R1]

Dept. Arquitectura de Computadores Universidad de Malaga

56 Procesadores segmentados

Reduccion de los riesgos de control

Predicciones estaticas:
 La prediccion para cada salto se ja en tiempo de compilacion
 La prediccion es ja (estatica) durante la ejecucion
Esquema mas simple: Detener siempre
 Solo util en pipelines muy simples (con poco retardo)
 Esquema muy sencillo: las instrucciones se detienen hasta que se sepa
el destino del salto
 Perdida de 1 ciclo por cada salto

Dept. Arquitectura de Computadores Universidad de Malaga


57 Procesadores segmentados

Reduccion de los riesgos de control

- Predecir los saltos como no{efectivos:


Salto no{efectivo BI DI EJ MEM PE
Instr. i + 1 BI DI EJ MEM PE
Instr. i + 2 BI DI EJ MEM PE
Instr. i + 3 BI DI EJ MEM PE
Instr. i + 4 BI DI EJ MEM PE

Salto efectivo BI DI EJ MEM PE


Instr. i + 1 BI vac
o vac
o vac
o vac
o

Dest. del salto BI DI EJ MEM PE


Dest. del salto +1 BI DI EJ MEM PE
Dest. del salto +2 BI DI EJ MEM PE

 Perdida de 1 ciclo s
olo si el salto es efectivo.
- Predecir los saltos como efectivos
 S
olo util si la direccion destino de salto se conoce antes que el resultado de la
condicion

Dept. Arquitectura de Computadores Universidad de Malaga

58 Procesadores segmentados

Reduccion de los riesgos de control

Saltos retardados
 Introducir instrucciones utiles en los huecos de retardo de salto
Esquema para retardo de longitud n:
instruccion de salto
sucesor secuencial1
sucesor secuencial2
..................
sucesor secuencialn
destino del salto si efectivo

Problema: Buscar instrucciones de relleno utiles. Usualmente solo es


posible encontrar una instruccion:
  para sistemas con un unico hueco de retardo
Util

Dept. Arquitectura de Computadores Universidad de Malaga


59 Procesadores segmentados

Reduccion de los riesgos de control: Saltos retardados

Tres aproximaciones:
(a) Desde antes (b) Desde destino (c) Desde fall-through

ADD R1,R2,R3 ADD R1,R2,R3


SUB R4,R5,R6
if R2=0 then if R1=0 then

Hueco de retardo Hueco de retardo


ADD R1,R2,R3

if R1=0 then SUB R4,R5,R6

Hueco de retardo

Se Se Se
convierte en convierte en convierte en

ADD R1,R2,R3

if R2=0 then if R1=0 then

ADD R1,R2,R3 ADD R1,R2,R3 SUB R4,R5,R6

if R1=0 then

SUB R4,R5,R6

Dept. Arquitectura de Computadores Universidad de Malaga

60 Procesadores segmentados

Reduccion de los riesgos de control: Saltos retardados

Estrategia a: El salto debe ser independiente de las instrucciones


replani cadas. Siempre mejora el rendimiento.
Estrategia b: Si el salto no es efectivo, no debe haber problema en la
ejecucion de las instrucciones replani cadas. Solo mejora el
rendimiento si el salto es efectivo. Puede ser necesario duplicar
instrucciones.
Estrategia c: Si el salto es efectivo, no debe haber problema en la
ejecucion de las instrucciones replani cadas. Solo mejora el
rendimiento si el salto es no efectivo.

Dept. Arquitectura de Computadores Universidad de Malaga


61 Procesadores segmentados

Reduccion de los riesgos de control: Saltos retardados

Problemas:
 Restricciones sobre las instrucciones que pueden ocupar los huecos:
{ Uso de saltos cancelados : Si la prediccion es incorrecta, la
instruccion el hueco se cambia por una NOP. Elimina las
restricciones sobre las instrucciones.
 Necesidad de un PC extra: las direcciones del hueco y del destino de
salto deben ser guardadas si se presenta una interrupcion.
 Prediccion del comportamiento de los lazos en tiempo de compilacion:
{ Mejorar los compiladores para obtener mejores predicciones:
 Estudio del comportamiento del programa.
 Uso de informacion derivada de ejecuciones previas del
programa.

Dept. Arquitectura de Computadores Universidad de Malaga

62 Procesadores segmentados

Tratamiento de las excepciones

Problema: El solapamiento de las instrucciones di culta el saber si una


instruccion puede cambiar el estado de la maquina sin peligro
Cualquier instruccion en el pipeline puede provocar una excepcion
El sistema debe resolver la excepcion y recomenzar la ejecucion ) El
sistema debe recuperar el estado previo a la excepcion
Excepciones problematicas:
 Ocurren en el medio de una instruccion
 Deben ser recomenzables
Por ejemplo, un fallo de pagina

Dept. Arquitectura de Computadores Universidad de Malaga


63 Procesadores segmentados

Tratamiento de las excepciones

Pasos en el tratamiento de una excepcion:


1. Forzar una instruccion de trap en el siguiente BI
2. Eliminar todas las escrituras para la instruccion que causo el fallo y las
posteriores (las anteriores pueden completar).
3. Guardar el PC de la instruccion que fallo (o los PCs si salto retardado) y
pasar el control a la rutina de gestion del fallo.
4. Recomenzar la ejecucion de la instruccion fallada. Si es un salto, evaluar de
nuevo la condicion.
Excepciones precisas : Las instrucciones anteriores al fallo se completan y las
posteriores se reinician
Sistemas con paginacion bajo demanda o con manipuladores de traps aritmeticos
de IEEE necesitan excepciones precisas, por hardware o con soporte software
Complejo en PF debido a terminacion fuera de orden

Dept. Arquitectura de Computadores Universidad de Malaga

64 Procesadores segmentados

Tratamiento de las excepciones

Ejemplo:
LW BI DI EJ MEM PE
ADD BI DI EJ MEM PE
Fallo de pagina en MEM(LW) y excepcion aritmetica en EJ(ADD) ) Se
atiende el fallo de pagina y se recomienza LW.
Problema: Fallo de pagina en MEM(LW) y en BI(ADD) ) La excepcion de
ADD aparece antes!
Solucion: Cada excepcion se marca en un vector de estado asociado con la
instruccion, y se impide la escritura. El vector se chequea al nal de MEM
o inicio de PE ) Excepciones precisas (se atienden por orden)

Dept. Arquitectura de Computadores Universidad de Malaga


65 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Ciertas operaciones no pueden ejecutarse en 1 ciclo de reloj ! Operaciones


en punto otante (PF)
Necesidad de hardware adicional para la fase EJ

EJ
Enteros

EJ
PF/enteros
producto
BI DI MEM PE
EJ
PF suma

EJ
PF/enteros
divisin

Operaciones PF diferentes implican diferentes ciclos (p.e. suma s 5 ciclos,


producto s 10 ciclos, division & 20 ciclos)

Dept. Arquitectura de Computadores Universidad de Malaga

66 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Problemas:
 Riesgos estructurales
 Mayor penalizacion de los riesgos RAW
 Problemas asociados con la terminacion fuera de orden
Solapamiento PF-op. entera No presenta problemas excepto en
referencias a memoria (LF F6,34(R2)) y transferencia entre registros
(MOVFP2I, MOVI2FP)

Dept. Arquitectura de Computadores Universidad de Malaga


67 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Riesgos estructurales ) replicacion o segmentacion de las unidades en


punto otante

EJ
Enteros

PF/enteros producto

P1 P1 P1 P1 P1 P1 P1

BI DI PF suma MEM PE

S1 S1 S1 S1

PF/enteros divisin

DIV

La unidad de division no esta segmentada ) operaciones de division


cercanas deben ser detenidas (y se para el pipeline)

Dept. Arquitectura de Computadores Universidad de Malaga

68 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Riesgos RAW : Mayor impacto sobre el rendimiento


Ciclo de reloj
Instr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
LD BI DI EJ MEM PE
F4,0(R2)
MULTD BI DI det. P1 P2 P3 P4 P5 P6 P7 MEM PE
F0,F4,F6
ADDD BI det. DI det. det. det. det. det. det. A1 A2 A3 A4 MEM
F2,F0,F8
SD det. BI det. det. det. det. det. det. DI det. det. det. EJ
F2,0(R2)

La gran duracion de las instrucciones implica mas ciclos de detencion )


necesidad de mejor plani cacion

Dept. Arquitectura de Computadores Universidad de Malaga


69 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Terminacion fuera de orden:


Ciclo de reloj
Instr. 1 2 3 4 5 6 7 8 9 10 11
MULTD F0,F4,F6 BI DI P1 P2 P3 P4 P5 P6 P7 MEM PE
Op. ent. BI DI EJ MEM PE
Op. ent. BI DI EJ MEM PE
ADDD F2,F4,F6 BI DI A1 A2 A3 A4 MEM PE
Op. ent. BI DI EJ MEM PE
Op. ent. BI DI EJ MEM PE
LD F8,0(R2) BI DI EJ MEM PE

Las instrucciones acaban en orden distinto al de emision. Problemas:


 Con ictos por escritura simultanea en registros
 Aparicion de riesgos WAW
 Problemas con las excepciones

Dept. Arquitectura de Computadores Universidad de Malaga

70 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Problemas si el chero de registros tiene un unico puerto de escritura )


riesgo estructural
Solucion:
 Detener, en la etapa DI, las instrucciones que produzcan con icto:
{ Si la instruccion en DI necesita escribir en registros en el mismo
ciclo que una instruccion ya emitida, la primera se detiene un ciclo
{ Un registro de desplazamiento indica cuando las instrucciones
usaran el chero de registros
 Detener las instrucciones con ictivas al nal de EJ
{ Necesidad de establecer prioridades de acceso: dar mayor prioridad
a la unidad con mayor latencia
{ Logica de chequeo de detenciones en dos puntos

Dept. Arquitectura de Computadores Universidad de Malaga


71 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Aparicion de riesgos WAW


Ciclo de reloj
Instr. 1 2 3 4 5 6 7 8 9
ADDD F2,F4,F6 BI DI A1 A2 A3 A4 MEM PE
ADDD F4,F4,F10 BI DI A1 A2 A3 A4 MEM PE
LD F2,0(R2) BI DI EJ MEM PE

LD F2,0(R2) escribe en R2 antes que ADDD F2,F4,F6 ) error


Situacion poco comun: Instruccion ADDD F2,F4,F6 inutil. Puede ocurrir
con instrucciones que ocupen un hueco de retardo
Si la segunda ADDD lee R2 ) riesgo RAW que elimina el WAW
Riesgos WAR No aparecen porque las lecturas de registros son en orden
(etapa DI)

Dept. Arquitectura de Computadores Universidad de Malaga

72 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Tratamiento de riesgos WAW :


 Detener la instruccion que produce el riesgo (LD en el ejemplo)
 Eliminar la escritura de la primera instruccion (ADDD en el ejemplo)
Situaciones poco comunes ) no implica demasiado problema cualquiera de
las aproximaciones

Dept. Arquitectura de Computadores Universidad de Malaga


73 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Problemas con las excepciones:


DIVD F0,F2,F4
ADDD F10,F10,F8
MULTD F12,F12,F14
DIVD produce una excepcion cuando ADDD ha completado ) No es posible
restaurar el estado previo a DIVD ) Excepcion imprecisa

Dept. Arquitectura de Computadores Universidad de Malaga

74 Procesadores segmentados

Tratamiento de instrucciones multiciclo

Soluciones:
 Admitir excepciones imprecisas. Usado en maquinas antiguas y algunos
supercomputadores actuales.
 Dos modos de funcionamiento: Impreciso (rapido) y preciso (lento). Soluci
on
empleada en Alpha 21064 y 21164, Power-1 y 2, y MIPS R8000.
 No escribir resultados hasta que lo hayan hecho las instrucciones previas )
Guardar en cola:
{ Cola de valores antiguos ( chero de historia, p.e. CYBER 180/990)
{ Cola de valores nuevos ( chero de futuro, p.e. PowerPC 620 y MIPS
R10000)
 Completar por software las instrucciones problematicas (p.e. SPARC)
 Las instrucciones emitidas contin
uan solo si las anteriores no van a producir
excepciones ) Determinar la posibilidad de excepciones antes de la etapa
EJ (p.e. MIPS R2000/3000, R4000 y Pentium)

Dept. Arquitectura de Computadores Universidad de Malaga


75 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Sistemas con mayor profundidad de segmentacion ! 8 etapas


IF IS RF EX DF DS TC WB

ALU
Memoria de Instrucciones Reg Memoria de Datos Reg

Los accesos a memoria ocupan varios ciclos, pero estan segmentados )


Una instruccion comienza cada ciclo de reloj
Mayor profundidad de la segmentacion:
 Altas frecuencias de reloj
 Mas hardware para adelantamientos
 Mas retardos por cargas y saltos

Dept. Arquitectura de Computadores Universidad de Malaga

76 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000


Etapas:
 IF { Primera mitad de b usqueda de instruccion. Inicia el acceso a cache de
instrucciones. Actualizacion del PC.
 IS { Segunda mitad de b
usqueda de instruccion. Completa el acceso a cache.
 RF { Comprobacion de acierto en cache. Decodi cacion y b
usqueda de
registros. Chequeo de riesgos.
 EX { Ejecuci
on: operacion de la ALU, calculo de direccion efectiva,
evaluacion de condicion de salto y computacion de destino
 DF { Inicio de la b
usqueda de datos
 DS { Segunda mitad de la b
usqueda de datos
 TC { Chequeo de etiquetas, determinacion de acierto en la cache
 WB { Postescritura
Los datos se encuentran disponibles al nal de DS, aunque no se ha comprobado
el acierto en la cache

Dept. Arquitectura de Computadores Universidad de Malaga


77 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Dos ciclos de retardo por cargas:


Tiempo

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 CC10 CC11 CC12

ALU
LW R1 Memoria de Instrucciones Reg Memoria de Datos Reg

ALU
Inst. 1 Memoria de Instrucciones Reg Memoria de Datos Reg

ALU
Inst. 2 Memoria de Instrucciones Reg Memoria de Datos Reg

ALU
ADD R2,R1 Memoria de Instrucciones Reg Memoria de Datos Reg

ALU
OR R4,R1 Memoria de Instrucciones Reg Memoria de Datos Reg

Necesidad de adelantar el resultado de una carga a tres o cuatro ciclos mas


adelante

Dept. Arquitectura de Computadores Universidad de Malaga

78 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

La condicion de salto se chequea en EX ) Tres ciclos de retardo por salto:


Tiempo

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 CC10 CC11 CC12
ALU

BZ Memoria de Instrucciones Reg Memoria de Datos Reg


ALU

Inst. 1 Memoria de Instrucciones Reg Memoria de Datos Reg


ALU

Inst. 2 Memoria de Instrucciones Reg Memoria de Datos Reg


ALU

Inst. 3 Memoria de Instrucciones Reg Memoria de Datos Reg


ALU

Destino del salto Memoria de Instrucciones Reg Memoria de Datos Reg

Salto retardado de un ciclo. Estrategia de predice no{efectivo para los


otros dos ciclos de retardo.

Dept. Arquitectura de Computadores Universidad de Malaga


79 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Salto no efectivo:
Ciclo de reloj
Instr. 1 2 3 4 5 6 7 8 9
Instr. de salto IF IS RF EX DF DS TC WB
Hueco de retardo IF IS RF EX DF DS TC WB
Instr. de salto +2 IF IS RF EX DF DS TC
Instr. de salto +3 IF IS RF EX DF DS

Salto efectivo
Ciclo de reloj
Instr. 1 2 3 4 5 6 7 8 9
Instr. de salto IF IS RF EX DF DS TC WB
Hueco de retardo IF IS RF EX DF DS TC WB
Burbuja det. det. det. det. det. det. det.
Burbuja det. det. det. det. det. det.
Destino de salto IF IS RF EX DF

La instruccion de salto podra cancelar la instruccion en el hueco de


retardo, si el salto no es efectivo.

Dept. Arquitectura de Computadores Universidad de Malaga

80 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Operaciones en punto otante:


 Tres unidades funcionales: divisor, multiplicador y sumador en punto
otante
 Diferentes unidades son usadas para completar una operacion
 Operaciones con duracion entre 2 ciclos (para una negacion) y 112
ciclos (para una raz cuadrada)
 Segmentadas con un total de 8 estados

Dept. Arquitectura de Computadores Universidad de Malaga


81 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Estados en las operaciones PF:


Estado Unidad Funcional Descripcion
A Sumador PF Suma de mantisas
R Sumador PF Etapa de redondeo
S Sumador PF Desplazamientos
D Divisor PF Etapa de division
E Multiplicador PF Test de excepciones
M Multiplicador PF 1a etapa de multiplicacion
N Multiplicador PF 2a etapa de multiplicacion
U Desempaquetado

Dept. Arquitectura de Computadores Universidad de Malaga

82 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Ejemplo de detenciones por dependencias PF:


Ciclo de reloj
Instr. 1 2 3 4 5 6 7 8 9 10
Multiplicacion U M M M M N N+A R
Suma U S+A A+R R+S
Suma U S+A A+R R+S
Suma U S+A A+R R+S
Suma U S+A det. det. A+R R+S

Dept. Arquitectura de Computadores Universidad de Malaga


83 Procesadores segmentados

Sistemas supersegmentados: MIPS R4000

Tipos de detenciones en el R4000: Detenciones de cargas, saltos, riesgos


RAW PF y riesgos estructurales PF ) CPI  2
Mas costosos: riesgos RAW PF y detenciones por saltos.
Solucion: Reducir la latencia de las unidades PF y mejorar la gestion de
los saltos.

Dept. Arquitectura de Computadores Universidad de Malaga

Você também pode gostar