You are on page 1of 69

Estructura de Computadores

Grado de Ingeniera Informtica


ETSINF

Tema 2: Segmentacin Bsica


del Procesador

Objetivos

Estructura de Computadores

Conocer el concepto de segmentacin como tcnica de


mejora de prestaciones
Conocer la segmentacin bsica del procesador MIPS
Detectar conflictos y riesgos sencillos
Conocer algunas de las tcnicas de solucin de conflictos que
aparecen en la ruta de datos segmentada del MIPS
Saber comparar prestaciones de una ruta de datos
segmentada

Contenidos y Bibliografa

El proceso de segmentacin
Concepto
Diagramas temporales
Prestaciones

Segmentacin de la ruta de datos bsica


Identificacin de las fases de ejecucin de las instrucciones
Diseo de las etapas

Conflictos y riesgos
Conflictos de datos
Conflictos de control (flujo)

Estructura de Computadores

Perspectiva histrica. RISC-CISC y otras alternativas

Bibliografa: Patterson, D.A., Hennessy, J.L., Estructura y diseo de


computadores. La interfaz hardware-Software, 4 edicin, Ed.
Revert, 2011, Cap 4 (4.5 4.8)

Concepto de Segmentacin

Definicin de segmentacin
Descomposicin de un sistema que ejecuta un determinado proceso en

varias etapas, de manera que:


Cada etapa se ocupa de una parte del proceso global utilizando recursos propios
El proceso global requiere la aplicacin ordenada de todas las etapas
Todas las etapas trabajan simultneamente (cada una en un proceso distinto)

Estructura de Computadores

Objetivo: Aumentar el paralelismo (temporal) de los procesos y


por tanto, aumentar la productividad

Concepto de Segmentacin

Ejemplos
Ford 1907-1908

Seat Dcada 50

Estructura de Computadores

Cadena de montaje de un coche


(montaje motor, ensamblado interior, pintado, )

Concepto de Segmentacin

Ejemplos

Lavandera
(lavado, secado, planchado)

1
Colada 1

Estructura de Computadores

Colada 2
Colada 3
Colada 4
Colada 5

Lavado

Secado

Planchado

Lavado

Secado

Planchado

Lavado

Secado

Planchado

Lavado

Secado

Planchado

Lavado

Secado

Planchado

El smil de la lavandera
5 coladas n = 5

3 etapas K = 3

1
Colada 1
Colada 2
Colada 3

Estructura de Computadores

Colada 4

Lavado

Secado

Planchado

Lavado

Secado

Planchado

Lavado

Secado

Planchado

Lavado

Secado

Planchado

Lavado

Secado

Colada 5

Planchado

Terminar 5 coladas requerir el tiempo de duracin de un total de 7 etapas:

n+K-1

Proceso de Segmentacin

Entrada
Operador lgico P que opera sobre datos de entrada
P se considera constituido por k etapas Pi que operan de manera

secuencial sobre los datos


Consideraciones temporales:

Retardo del circuito: T


Cada etapa Pi tiene necesidades temporales (retardo) distintas: i

Estructura de Computadores

=
=1

Entrada
de datos

P1
(1)

P2
(2)

Pk
(k)

Salida
de datos

T
8

Proceso de Segmentacin

Salida (circuito segmentado)


k etapas (profundidad de segmentacin: k)

Cada etapa va precedida de un registro de etapa (staging latch)


Etapa i:
Entrada: contenido del registro i
Salida: se almacena en el registro i+1

Registro de etapa i:
Recoge los datos producidos por la etapa i-1
Suministra datos a la etapa i

Todos los registros de etapa se actualizan en el mismo flanco de reloj

Estructura de Computadores

Los registros de etapa incrementan el coste del circuito

reloj
P1
R1

P2
R2

Pk
Rk

Proceso de Segmentacin

Sincronizacin del circuito


Parmetros del reloj: f (frecuencia) y

(tiempo de ciclo)

reloj
P1
(1)

P2
(2)

Pk
(k)

Consideraciones temporales:

El retardo de los registros TR debe considerarse en el tiempo de ciclo:

Estructura de Computadores

= mx{ i } + TR

f =

La segmentacin penaliza el tiempo de proceso de una operacin


individual

T k
10

Diagramas Temporales: Diagrama Tiempo/Datos

Ejemplo de segmentacin con 5 etapas (k=5) y 5 datos (n=5)


Tiempo (ciclos)

Datos

D1
D2
D3

P1

P2

P3

P4

P5

P1

P2

P3

P4

P5

P1

P2

P3

P4

P5

P1

P2

P3

P4

P5

P1

P2

P3

P4

D4
D5

5 (k)

9 (k+n-1)

P5

n-1 ciclos
D2 en 5 ciclos
(k ciclos)

D1 en 5 ciclos
(k ciclos)

Estructura de Computadores

k ciclos

. . . n datos procesados en
k+n-1 ciclos

11

Diagramas Temporales: Diagrama Etapas/Tiempo


Ejemplo de segmentacin con 5 etapas (k=5) y 5 datos (n=5)

Estructura de Computadores

salida

P1

P2

P3

P4

P5

D11

---

---

---

---

D21

D12

---

---

---

D31

D22

D13

---

---

D41

D32

D23

D14

---

5 (k)

D51

D42

D33

D24

D15

D1 en 5 ciclos (k ciclos)

---

D52

D43

D34

D25

D2 en 5 ciclos (k ciclos)

---

---

D53

D44

D35

---

---

---

D54

D45

9 (k+n-1)

---

---

---

---

D55

k ciclos

Tiempo (ciclos)

llegada

Etapas

---

Etapas
desocupadas

...

n-1 ciclos

n datos procesados
en k+n-1 ciclos

DXy representa Dato X en etapa y (DXy DXz)


Por simplificidad, obviaremos a partir de ahora las diferencias de los datos entre etapas

12

Prestaciones de la Segmentacin

Medidas de prestaciones (n datos)


Productividad: trabajo realizado por unidad de tiempo

n
n
X ( n) =
datos/tiempo
=
t s (n) (n + k 1)
Incrementa:
Con el nmero de datos
Con la frecuencia de reloj

Lmite terico (n suficientemente grande):

Estructura de Computadores

Una operacin por ciclo

X ( ) =

= f

Aceleracin: Ganancia de velocidad respecto al circuito no segmentado:

t ns (n)
n T
S ( n) =
=
t s (n) (n + k 1)

S () =

13

Prestaciones de la Segmentacin

Conclusiones

t ns (n)
n T
S ( n) =
=
t s (n) (n + k 1)

Como T k si n=1 entonces S1: la segmentacin no beneficia


Cuanto mayor sea n (datos a procesar), mayores beneficios (S)

Si n , entonces S T/ k
Ganancia terica mxima

Si T= k (caso ideal), la ganancia sera S= k. Ello se cumplira slo si


Estructura de Computadores

todas las etapas tuvieran igual retardo (i ) y el retardo de los registros


de segmentacin (TR ) fuera igual a cero
En principio, y con suficientes datos, a menor mayor aceleracin

14

Prestaciones de la Segmentacin

Consideraciones temporales
El perodo mnimo de reloj s

= max(i) + TR

Para incrementar la productivitat (1/) se reducir:

el retardo mximo de etapa (aumentando k y manteniendo los


retardos equilibrados)

Estructura de Computadores

el retardo de los registros

15

Segmentacin de la Ruta de Datos

Especificacin del ciclo de instruccin

Estructura de Computadores

Distribucin en etapas de los componentes de la ruta


Lectura en Mem.
Instrucciones

Memoria
Instrucciones

Descodificacin

Unidad de
Control

Lectura rs y rt

Lectura rs

Lectura rs y rt

Lectura rs y rt

Banco
Registros
(lectura)

Clculo resultado

Clculo direccin
memoria

Clculo direccin
memoria

Clculo direccin
salto y condicin

ALU

Lectura en Mem.
datos

Escritura en Mem.
datos

Escritura rd
Instr. Aritmticas
Ej: add rd, rs, rt

Memoria
Datos

Banco
Registros
(escritura)

Escritura rt
Instr. Carga
lw rt, desp(rs)

Inst. Almacenam.
sw rt, desp(rs)

Inst. Salto Cond.


beq rs, rt, etiq

16

Segmentacin de la Ruta de Datos

Definicin de las etapas


Etapas comunes a todas las instrucciones

LI: Etapa de lectura de instruccin (e incremento del PC)


DI: Etapa de decodificacin de instruccin (y lectura de registros)
Etapas que dependen del tipo de instruccin

EX: Etapa de ejecucin


Instrucciones de clculo: clculo del resultado
Load y Store: clculo direccin de memoria
Instrucciones de salto: Clculo de la direccin de salto y de la condicin de salto

Estructura de Computadores

M: Etapa de memoria
Load y Store: acceso a la memoria
Instrucciones de clculo y salto: nada

ER: Etapa de escritura de registro


Instrucciones de clculo y Load : escritura del registro
Store e instrucciones de salto: nada
17

Segmentacin de la Ruta de Datos

Los registros de segmentacin


Hacen falta cuatro

Cada uno est estructurado en subregistros


Nomenclatura

Nombre de cada registro de etapa: el de las etapas que separa


Ej.: registro LI/DI

Para referirnos a los subregistros: reg.subreg


Ej.: LI/DI.RI = registro de instruccin de la instruccin que est en la etapa DI

Estructura de Computadores

Para referirnos a un rango de bits de un subregistro: subndices


Ej.: LI/DI.RI31..26 = cdigo de operacin de la instruccin contenida en DI
o bien: LI/DI.RI[Codop]

18

15..11 (rd tipo R)

MUX

DI/EX

M/ER

EX/M

Mem
Datos
Datos

PC
ALUout

ALUout

A
L
U

MEMout

EX

Re

20..16(rt)

Re

MUX

LI/DI

DI

Reg dest

20..16 (rt tipo I)

Extensin
de signo

MUX

15..0

Rt

Banco de
Registros

Rd

Memoria
Instrucciones
RI

PCin

Ruta de datos sin soporte para instrucciones de salto


y sin la unidad de control

Estructura de Computadores

LI
ER

Clk

25..21(rs)

Soporte Instrucciones de Salto

Instrucciones de salto condicional en el MIPS


En el MIPS R2000 tenemos seis instrucciones, todas del formato I
Direccionamiento relativo al PC

Como distancia de salto, se codifica (en complemento a 2) el nmero de


palabras entre la instruccin siguiente y la instruccin de salto
condicin de salto

beq rs,rt,eti

rs=rt

bne rs,rt,eti
bgez rs,eti
bgtz rs,eti
blez rs,eti
bltz rs,eti

rs<>rt
rs>=0
rs>0
rs<=0
rs<0

op
31

etiq:

distancia =

rs
25

distancia

rt
20

15

.text 0x00400000
beq $t0, $0, etiq
sll $t3, $t2, 3
xor $t4, $0, $0
ori $t4, $t3, $t1
add $t0, $0, $0
.end

direccin objetivo direccin siguiente


4

Codifica un
+3

Estructura de Computadores

instruccin

20

Clculo Direccin de Salto

Hay que calcular la direccin absoluta de salto


direccin_objetivo = (PC+ 4) + ext_de_signo(distancia)*4
El clculo se puede hacer en EX con un sumador especfico adicional
Necesidad de transmitir el valor PC + 4 desde LI hasta EX

Si la condicin se cumple, la etapa M escribe direccin_objetivo


en el CP

ext_de_signo(distancia)

Estructura de Computadores

PC + 4

direccin_objetivo

21

Clculo de la Condicin de Salto

Evaluacin de la condicin
La ALU ha de tener la operacin identidad: ALUout = A
Ha de suministrar dos indicadores:

Z (resultado igual a zero)

Estructura de Computadores

S (bit de signo del resultado)

instruccin

condicin

op. ALU

COND

beq

a=b

resta

bne
bgez
bgtz
blez
bltz

a<>b
a>=0
a>0
a<=0
a<0

resta
identidad
identidad
identidad
identidad

Z
Z
S
S Z = S + Z
S+Z
S
22

Clculo de la Condicin de Salto

Control bsico de la bifurcacin


Un nuevo registro EX/M.Cond (un bit): indicar si hay bifurcacin efectiva
Implementacin con un MUX

El descodificador de instruccin, en la etapa DI, calcula la posicin del MUX

instruccin

cdigo

clculo, l/s, etc.

beq
bne
bgez
bgtz
blez
bltz
j

1
2
3
4
5
6
7

Descodificador

cdigo
Z
S
ALU

Estructura de Computadores

para cada instruccin

0
Z

Z
S
S+Z
S+Z
S
1

0
1
2
3
4MUX
5
6
7

cond

Lgica de salto
23

DI

EX

ER

M/ER

CON
D

SALTO

NPC

EX/M

Clculo de
la direccin
de salto
PC+4 DI/EX

LI/DI

Se almacena
y propaga la
direccin
PC+4

PC+4

PCin
MxPC

<<

MUX

ALUout

Datos

MEMout

Datos

Reg dest

Re

15..11 (rd tipo R)

MUX

20..16 (rt tipo I)

Rt

Extensin
de signo

Rd

Memoria
Instrucciones

RI

15..0

Clculo de
la condicin
de salto
Mem
T

PC

A
L
U

Re

MUX

Banco de
Registros

20..16(rt)

ALUout

25..21(rs)

MUX

Estructura de Computadores

Clk

Soporte para las instrucciones de salto

LI

Avanzar el PC para que apunte a la instruccin siguiente

Instruccin de salto condicional

Seleccionar la siguiente direccin de instruccin, entre

Seales de control

Estructura de Computadores

PCin: Cargar PC, activada por flanco del reloj

MUX

PC

LInst: Leer en la memoria de instrucciones


PCIn y LInst son constantes (podemos prescindir de

ellas)

Memoria
Instrucciones

RI

PC+4 y la direccin de salto (calculada en la etapa EX)

LI/DI

Leer la instruccin apuntada por el PC

PC+4

Con todas las instrucciones:

PCin

Funciones

Direccin de salto
(viene de EX/M.NPC)

Clk
MxPC (viene de EX/M.Cond)

Etapa de Lectura de Instruccin

LI

MxPC: Calculada en la etapa EX (reg EX/M.Cond)


LInst
25

DI

Etapa de descodificacin
Funciones

Componentes

25..21(rs)

LReg

20..16(rt)

Extensin de signo (combinacional)

Banco de
Registros

Banco de registros (puertos de lectura)


15..0

T := Reg[RI20..16]

Seales de control
LReg: Activa la lectura de los dos registros

(podemos prescindir de esta seal)

RI

Estructura de Computadores

S := Reg[RI25..21]

Extensin
de signo

20..16 (rt tipo I)

Procesar el campo de desp/inm

Leer los registros fuente

Rt

posteriores

PC+4

Calcular las seales de control para las etapas

LI/DI

Con todas las instrucciones:

PC+4 DI/EX

Descodificador
y Unidad de
Control

15..11 (rd tipo R)

Rd

26

EX

Etapa de Ejecucin
Funciones

Seales de control

MxALU: Selecciona segundo operando para la

OpALU

TipoInst: Tipo de instruccin

Rt

OpALU: Determina la operacin que har la ALU

MxDst

MUX

MxALU

Rd

Estructura de Computadores

ALU
MxDst: Determina el registro destino (escritura)

A
L
U

CON
D

NPC
<<

ALUout

condicin de salto

SALTO

Instr. salto: calcula la direccin de salto y evala la

MUX

memoria

TipoInst

PC+4 DI/EX

Instr. load/store: clculo de la direccin de

EX/M

Instr. de clculo: obtencin del resultado

Re

27

Etapa de Acceso a Memoria

Seales de control
LMem: activa la lectura de la memoria

EX/M

ALUout

EMem

direccin de instruccin a leer

LMem

Instrucciones de salto: Selecciona siguiente

NPC

Instrucciones load/store: acceso a memoria

CON
D

Instrucciones de clculo: nada

M/ER

Funciones

ALUout

MEMout

Mem
Datos

Re

T
Re

Estructura de Computadores

EMem: activa la escritura de la memoria

28

Etapa de Escritura en Registros


Funciones
Instrucciones de clculo: escritura de resultados

M/ER

ER

Instrucciones de load: escritura del valor ledo de


EReg

la memoria

Seales de control
MxER: Selecciona el valor que se escribe
EReg: Activa la escritura en el banco de registros

Banco de
Registros

Re

Estructura de Computadores

MEMout

acceso de escritura en cada ciclo

Datos

Reg dest

Ha de soportar dos accesos de lectura y un

MUX

Caractersticas del banco de registros

ALUout

MxER

Instrucciones de store y salto: nada

29

Segmentacin de la Ruta de Datos

La frecuencia de reloj
Tiempo de ciclo de reloj

tseg = mx(i) + tR
Habr que considerar el tiempo de retardo i de cada etapa y fijarse
en el ms largo
Habr que considerar el retardo tR de los registros de segmentacin
Ejemplo:

Si LI = M = 30 ns, DI = ER = 20 ns y EX =25 ns; tR = 10 ns

Estructura de Computadores

Periodo tseg = 30 + 10 = 40 ns
Frecuencia de reloj f = 1/40 ns = 25 MHz

Comparacin ruta no segmentada con tiempos de acceso a memoria: 30 ns, a registros: 20 ns, ALU 25ns
Instruccin ms lenta: lectura en memoria (load) con 125 ns: F = 8 MHz; S = 3.125
(30 ns lect. instr. + 20 ns lect. registros + 25 ns ALU clculo dir. + 30 ns lect. mem + 20 ns escrit. en registro)
30

Control del Procesador Segmentado

Diseo bsico del control


Objetivo general: Conseguir que las cinco etapas funcionen ordenadamente

y puedan ejecutar las instrucciones escogidas


Observaciones

Cada etapa debe de ser autnoma


Las dos primeras etapas, LI y DI, procesan instrucciones no descodificadas.
Sus seales de control sern las mismas durante todos los ciclos

La etapa DI se encargar de calcular las seales de control de las etapas

Estructura de Computadores

posteriores y las transferir a las etapas siguientes


Las etapas restantes deben procesar las instrucciones en funcin del cdigo de
operacin

Las seales de control coinciden con las de la ruta no segmentada. De hecho, las
seales de control dependen exclusivamente de la instruccin ejecutada y no de
la ruta de datos
31

ER

ER

MxER

M/ER

EReg

EMem

CON
D

NPC

TipoInst

LMem

EX/M

OpALU
MxALU
MxDst

SALTO

EX
EReg

PC+4 DI/EX

LI/DI
PC+4

MxPC

...

PCin

Descodificador
y Unidad de
Control

ER

Clk

<<

MUX
Datos

Mem
Datos

Re

Re

15..11 (rd tipo R)

MxDst

MUX

20..16 (rt tipo I)

Rt

Extensin
de signo

Rd

Memoria
Instrucciones

RI

Estructura de Computadores

15..0

MxALU

MEMout

OpALU

PC

Reg dest

MUX

Banco de
Registros

MUX

ALUout

A
L
U

20..16(rt)

ALUout

25..21(rs)

32

Representacin Grfica de la Segmentacin


Inst

lw $1,a

LI

DI

EX M

LI

DI
LI

Estructura de Computadores

Diagrama add $3,$2,$0


instrucciones/tiempo
sub $4,$2,$0
and $5,$2,$0
or $6,$2,$0

ER

EX M
DI EX
LI DI
LI

Ciclo

LI

DI

EX

ER

lw

2
3
4
5

add
sub
and
or

lw
add
sub
and

?
lw
add
sub

?
?
lw
add

?
?
?
lw

6
7
8

?
?
?

or
?
?

and
or
?

sub
and
or

add
sub
and

ER
M ER
EX M ER
DI EX M ER

Situacin
en el ciclo 5

Diagrama
tiempo/etapas
33

Prestaciones del Procesador Segmentado

Generalidades
Ecuacin del tiempo de ejecucin de un programa en un procesador en

rgimen estacionario (no tiene en cuenta el tiempo de llenado de las


etapas) :

T =I CPI tc

donde:
T: tiempo de ejecucin total del programa
I: nmero de instrucciones que se ejecutan
CPI: nmero medio de ciclos por instruccin
Estructura de Computadores

tC: tiempo de ciclo del reloj del procesador


En general, convendr minimizar los tres factores I, CPI y tC
Nos preocuparemos particularmente de los factores I y CPI
Vamos a particularizar estos conceptos al caso del procesador segmentado
34

Prestaciones del Procesador Segmentado

CPI (Ciclos por Instruccin)


Indice que se utiliza para cuantificar las prestaciones del procesador
Representa el nmero medio de ciclos por instruccin
CPI>1 (el pipeline necesita k-1 ciclos para llegar a la ltima etapa; ciclos > I)
ciclos
k-1

Inst 1

LI

Inst 2

Estructura de Computadores

Inst 3
.
.
.

ciclos (k-1)

DI

EX

ER

LI

DI

EX

ER

LI

DI

EX

Inst i
Condiciones ideales:

cero ciclos de parada


CPI ideal = 1 (cota inferior del CPI)

ER

LI

DI

EX

ER

ciclos 4
CPI =
I
35

Introduccin a los Conflictos

Conflictos o riesgos
Son situaciones producidas por la segmentacin del procesador, en las

que la ejecucin de una o ms instrucciones no debe avanzar


Si el procesador no estuviera segmentado, desapareceran
Tipos

Estructurales (no los vemos; nuestra ruta no tiene conflictos estructurales)


De datos
De control
Soluciones
Estructura de Computadores

Ciclos de parada
Modificacin del software (insercin instrucciones NOP)
Los conflictos estructurales se producen en el uso de los recursos por parte de instrucciones cuya
ejecucin se solapa. Son causa de recursos insuficientemente. Ejemplo: Disponer de una nica
memoria de datos e instrucciones.

36

Los Conflictos de Datos

Dependencias de datos
Las instrucciones estn fuertemente relacionadas entre ellas, resultado

de la compilacin de sentencias escritas en un lenguaje de programacin


de alto nivel
Qu son las dependencias de datos?

Las instrucciones se pueden ver como productoras y consumidoras de datos


Dependencia de datos:
cuando una instruccin consume un

Estructura de Computadores

dato producido por otra

c = a + b

Ejemplo:
Compilacin de c:=a+b

Existe dependencia
entre la instruccin 1
y la 3 por el registro
$1

lw $1, a($0)
lw $2, b($0)
add $3, $2, $1
sw $3, c($0)
37

Los Conflictos de Datos

Conflictos de datos dentro de un procesador segmentado


Aparecen cuando una instruccin ha de operar con un valor que

todava no ha suministrado una instruccin anterior:


instruccin
lw $1,a($0)

Estructura de Computadores

lw $2,b($0)
add $3,$2,$1
sw $3, c($0)

1
LI

DI

EX M

LI

DI
LI

$1
ER

$2
EX M ER
$3
DI EX M ER
LI DI EX M ER

El valor de $1 se en el ciclo 5; pero ha de ser ledo por add en el ciclo 4

El valor de $2 se escribe en el ciclo 6; pero ha de ser ledo por add en el ciclo 4

El valor de $3 se escribe en el ciclo 7; pero ha de ser ledo por sw en el ciclo 5

38

Los Conflictos de Datos

Tcnicas bsicas de resolucin de conflictos


Tcnicas de urgencia

Solucin por software: insercin de instrucciones NOP en el cdigo

Estructura de Computadores

Solucin por hardware: generacin de ciclos de parada

39

Los Conflictos de Datos

Solucin de urgencia por software: insercin de instrucciones nop


Al generar el cdigo mquina, el compilador puede insertar instrucciones nop

Estructura de Computadores

Ejemplo: compilacin de c:=a+b

instruccin

lw $1,a($0)

LI

DI

EX M

LI

DI
LI

lw $2,b($0)
nop
nop
add $3,$2,$1
nop
nop
sw $3, c($0)

CPI =

$1
ER $2
EX M ER
DI EX M ER
LI DI EX M
LI DI EX
LI DI
LI

12 4
=1
8

10

11

12

ER
M
EX
DI
LI

$3
ER
M ER
EX M ER
DI EX M ER

40

Los Conflictos de Datos

Solucin de urgencia por hardware: ciclos de parada


El control del procesador puede prever las dependencias de datos y

generar ciclos de parada para resolverlas


1

instruccin

lw $1,a($0)
lw $2,b($0)
add $3,$2,$1
sw $3, c($0)

Estructura de Computadores

CPI =

LI

DI

$1
EX M ER $2
DI EX M ER
LI DI DI DI EX M
LI DI DI

LI

12 4
=2
4

10

11

$3
ER
DI EX M

12

ER

4 ciclos de parada

Podemos calcular el CPI a partir del nmero de ciclos de parada (P)

P
4
I+P
CPI =
= 1+ = 1+ = 2
I
4
I
41

Soluciones y prestaciones

Insercin de NOP

12 4
CPI =
=1
8

El tiempo de ejecucin en rgimen estacionario:


Tprograma = 8 instrucciones * 1 CPI * Tciclo

Estructura de Computadores

Detencin (ciclos de espera)

CPI =

12 4
=2
4

El tiempo de ejecucin en rgimen estacionario:


Tprograma = 4 instrucciones * 2 CPI * Tciclo

42

Lgica de deteccin de la dependencia

Deteccin (algunos ejemplos de funciones de deteccin):


EX[LMem]=0 & EX[EMem]=0 &

(la instruccin actual no es load ni store)

(DI/EX.Rd=RI.Rs + (DI/EX[MxALU2]=1 & DI/EX.Rt=RI.Rs))


(DI/EX.Rd=RI.Rt + (DI/EX[MxALU2]=1 & DI/EX.Rt=RI.Rt))
(EX/M.Re = RI.Rs + (EX[MxALU2]=0 & EX/M.Re = RI.Rt))
ER

Control de
parada

EX/M

MEMout

memoria
de datos

Re

ALU

S
T
Rt

Banco de
registros

Rd

RI

Estructura de Computadores

EX

M ER

DI/EX

ALUout

M
EX

Re

Descodif
Instrucc

43

Lgica de insercin del ciclo de parada

EX
T

Banco de
registros

EX/M

UAL

Rt

CP
memoria
instruc.

EX

LI/DI

RI

Estructura de Computadores

CPin

Control de
parada

DI/EX

memoria
de datos

Re MEMout

ER

Rd

Inhibir carga
registros

M ER

Crear
burbuja

UALout

Las etapas LI y DI han de repetir instruccin


Hay que detener el avance en EX (creacin de una burbuja)
(LMem=0; EMem=0; EReg=0)

Re

Los Conflictos de Datos

Valoracin de las dos soluciones vistas


Semejanzas
El nmero de ciclos en tiempo de ejecucin es el mismo
En el ejemplo: 12 ciclos

El compilador puede ayudar a bajar el tiempo de ejecucin (siguiente


trasparencia)

Diferencias
La insercin de instrucciones intiles incrementa el factor I

Estructura de Computadores

Los ciclos de parada incrementan el factor CPI


La ruta de datos segmentada es compatible binaria con la no segmentada (es
decir, la ejecucin del mismo programa en ambos procesadores producira los
mismos resultados)
La complejidad de la lgica de insercin de ciclos de parada podra alargar el
retardo de las etapas y habra que bajar la frecuencia del reloj
45

Conflictos de Control

Las instrucciones de salto


Son instrucciones que rompen la secuencia lineal de ejecucin de los

programas
Tipos

Salto incondicional (jump)


Salto condicional o bifurcacin (branch)
Llamada y retorno de subprograma (call/jump&link y retorno)
Modos de direccionamiento

Absoluto
Estructura de Computadores

Relativo a PC
Indirecto
Frecuencia de aparicin de las instrucciones de salto: 10 al 20% del cdigo

depende del tipo de procesador, de las tcnicas de compilacin y del programa


en concreto
46

Conflictos de Control

Instrucciones de salto condicional en el MIPS


Ejemplos
if (x>y)
/*then*/ z=x
else z=y;

z=z+y;
x=x1;
while (x!=0)

if:

Estructura de Computadores

lw $t0,x($0)
lw $t1,y($0)
sub $t2,$t1,$t0
bgez $t2,else
then: sw $t0,z($0)
j endif
else: sw $t1,z($0)
endif:

z=0;
do

add $t2,$zero,$zero
lw $t0,x($0)
lw $t1,y($0)
do:
add $t2,$t2,$t1
addi $t0,$t0,-1
while: bne $t0,$zero,do
enddw: sw $t2,z($0)
47

DI

EX

ER

M/ER

CON
D

SALTO

NPC

EX/M

Clculo de
la direccin
de salto
PC+4 DI/EX

LI/DI

Se almacena
y propaga la
direccin
PC+4

PC+4

PCin
MxPC

<<

MUX

ALUout

Datos

MEMout

Datos

Reg dest

Re

15..11 (rd tipo R)

MUX

20..16 (rt tipo I)

Rt

Extensin
de signo

Rd

Memoria
Instrucciones

RI

15..0

Clculo de
la condicin
de salto
Mem
T

PC

A
L
U

Re

MUX

Banco de
Registros

20..16(rt)

ALUout

25..21(rs)

MUX

Estructura de Computadores

Clk

Soporte para las instrucciones de salto

LI

Conflictos de Control

Vocabulario
Instruccin objetivo (target): la instruccin destinataria del salto
Las bifurcaciones saltan si se cumple una condicin

si bifurcan, diremos que el salto es efectivo (taken)


en caso contrario, diremos que el salto es no efectivo (not taken)
Una instruccin de salto condicional relaciona tres grupos de instrucciones:

instrucciones
previas
Estructura de Computadores

bif_cond eti
instrucciones
siguientes

eti:

instrucciones
objetivo

49

Conflictos de Control
Anlisis del conflicto

Cuando el salto es efectivo en la etapa M, el procesador tiene tres

instrucciones siguientes en proceso. En la etapa ER se escribe el nuevo PC

Estructura de Computadores

Ver ruta

Instruccin

previa
bifurcacin
siguiente 1
siguiente 2
siguiente 3
objetivo

LI

DI EX M
LI DI EX
LI DI
LI

5
ER
M
EX
DI
LI
M

ER
M
EX
DI
LI

ER
M ER
EX M ER
DI EX M

ciclo

LI

DI

EX

ER

4
5
6

siguiente2
siguiente3
objetivo

siguiente1
siguiente2
siguiente3

bifurcacin previa
?
siguiente1 bifurcacin previa
siguiente2 siguiente1 bifurcacin
50

Anlisis del conflicto


ciclo
instrucciones

beq
lw

1
BI

DI EX M
BI

9
beq $2,$3,L1

ER

lw $2,100($1)

DI EX

add $3,$1,$4
or

Estructura de Computadores

add
or
sw

BI

DI

$5,$6,$4

sub $5,$5,$4
L1:

BI
BI

DI EX M

sw

ER

$6,50($4)

Latencia de salto

Nmero de ciclos desperdiciados en caso de que el salto se produzca


Nmero de instrucciones errneas en el procesador si el salto se
produce
Latencia de salto = nmero de etapa en la que el salto es efectivo 1
En el caso anterior la latencia de salto = 3

Estructura de Computadores

Cuanto ms temprana sea la etapa en que se actualiza el CP, menor


latencia y por tanto menor penalizacin
Para reducir el conflicto, se puede modificar el diseo de la ruta de datos
y avanzar el momento de la escritura del PC. Ver siguiente transparencia

Latencia del Salto


Ruta de datos con latencia de salto = 2

EX

25..21

ALU

15..0

Extensin
de signo

Memoria
de
instrucciones

RI

Estructura de Computadores

Banco de
20..16 registros

salto

PC

+
ALUout

1 0

ALUout

DI
PC+4

LI

PC+4

Memoria
de
datos

53

Tratamiento de los Conflictos de Control

Primeras soluciones al conflicto


Soluciones conservativas o de urgencia:

Hardware
El decodificador inserta ciclos de parada al detectar un salto

Software
El compilador inserta NOP

Soluciones avanzadas: prediccin

Prediccin fija

Estructura de Computadores

predict-not taken
predict taken

Intel i486
Sun SuperSparc

54

Solucin conservativa (o de urgencia)


beq $2,$3,L1
nop
ciclo
instrucciones

beq
nop
nop

Estructura de Computadores

nop
sw

nop

nop
lw $2,100($1)
add $3,$1,$4

BI

DI EX M

ER

or

$5,$6,$4

sub $5,$5,$4

BI

DI EX
BI

L1:

sw

DI
BI
BI

DI EX M

ER

$6,50($4)

Prestaciones

Estructura de Computadores

Las soluciones conservativas (insercin de instrucciones


NOP o ciclos de espera) no permiten mejorar el
rendimiento del procesador
Para no tener ciclos improductivos el compilador puede encontrar
instrucciones tiles en lugar de NOP. Esto supone re-organizar el cdigo.

Alternativa: Prediccin de salto

Prediccin esttica
Salto efectivo
Salto No efectivo

Prediccin dinmica
(tiene en cuenta el histrico)

Prediccin: Salto NO efectivo


beq $2,$3,L1
lw $2,100($1)
add $3,$1,$4
ciclo

or
instrucciones

9
L1:

beq
lw
add
or
sub

BI

DI EX M ER
BI

DI EX M
BI

ER

DI EX M
BI

ER

DI EX M
BI

ER

DI EX M

ER

$5,$6,$4

sub $5,$5,$4
sw

$6,50($4)

Prediccin: Salto NO efectivo

ciclo
instrucciones

beq
lw
add
or
sw

1
BI

9
beq $2,$3,L1

DI EX M ER
BI

lw $2,100($1)
add $3,$1,$4

DI EX
BI

or

$5,$6,$4

sub $5,$5,$4

DI

L1:

BI
BI

DI EX M

ER

sw

$6,50($4)

Conclusiones

Las instrucciones de salto (control de flujo) suponen la


ruptura de la secuencia de ejecucin de un programa y por
tanto una prdida de rendimiento

Las soluciones conservativas se limitan a resolver el


problema para garantizar la correcta secuenciacin del
programa

Estructura de Computadores

Para mejorar el rendimiento intentaremos que se puedan


aprovechar las instrucciones que ya han entrado en el
procesador.

Las tcnicas de prediccin de salto van encaminadas a ello.

Ejemplos de Segmentacin Bsica

La segmentacin bsica en los procesadores comerciales


El modelo de segmentacin en cinco etapas es la base del diseo de los

procesadores modernos (excepto la familia Intel x86)


Ejemplos:

MIPS R2000, R3000,


Sun SPARC V7
Hewlett Packard Precision Architecture (HP-PA)
Familia Intel x86

Estructura de Computadores

80486: tambin estaba segmentado en 5 etapas, pero con diferente


organizacin

61

Otros Modelos de Segmentacin

Segmentacin con etapas multiciclo


Permite la ejecucin de operaciones de larga duracin

aritmtica de coma flotante, multimedia, etc.


Dispone de una coleccin de diversos operadores, cada uno con

latencia L y tasa de repeticin R especficos


acceso a memoria (tpicamente L>=1, R=1)
aritmtica entera (L=1, R=1)
aritmtica de CF (L>1, R>=1)

Estructura de Computadores

Ejemplo:

X1
LI

DI

X2
X3

ER

unidad

X1 (mem)

X2 (enteros) 1
X3 (CF)
3

1
3
62

Otros Modelos de Segmentacin

Segmentacin con etapas multiciclo (cont.)


Hace falta una lgica de emisin (issue) que distribuya el trabajo entre

los diversos operadores


El orden en que acaba la ejecucin de las instrucciones puede ser

distinto al orden en que han sido decodificadas


instruccin

lw

LI

DI

X1

X1

ER

LI

DI
LI

X3
DI

X3
X2

Estructura de Computadores

add.s (CF)
add (enters)

X3
ER

ER

La ruta de datos puede padecer conflictos estructurales

Ejemplo: qu pasa si van seguidas dos instrucciones de CF?


63

Otros Modelos de Segmentacin

Supersegmentacin
La tarea a realizar en alguna/s etapa/s del modelo bsico se reparte

(segmenta) entre varias etapas


Aumento del nmero de etapas
Objetivo: incrementar la frecuencia de reloj (etapas ms cortas)
CPI ideal = 1
Ejemplo: MIPS R4000: 8 etapas LI1,LI2,DI,EX,M1,M2,M3,ER

LI1 y LI2 hacen la lectura de instruccin

Estructura de Computadores

M1, M2 y M3 realizan el acceso a la memoria de datos

LI1

LI2

DI

X1

X2

M1

M2

ER

Otros ejemplos

SPARC-V8 (9 etapas)
Alpha 21064 (7 etapas)
64

Otros Modelos de Segmentacin

Procesadores superescalares
Cada etapa puede procesar n instrucciones

Intencin: reducir CPI ideal a 1/n manteniendo la frecuencia de reloj


Se utiliza el ndice IPC (Instrucciones Por Ciclo) = n

Estructura de Computadores

Ejemplo con n=2 (CPI ideal = 0.5; IPC ideal = 2)

Instr.

i1

LI

DI

EX M

ER

i2
i3
i4
i5
i6

LI

DI
LI
LI

EX
DI
DI
LI
LI

ER
M
M
EX
EX

M
EX
EX
DI
DI

LI

DI

EX

ER

LI

DI

EX

ER

ER
ER
M ER
M ER
65

Otros Modelos de Segmentacin

Combinaciones
Los procesadores actuales combinan diversos modelos de segmentacin
Parmetros significativos:

Nmero de etapas
Grado de escalabilidad = nmero de instrucciones que se pueden leer o
descodificar por ciclo
Surtido de operadores y caractersticas (L, R) de cada uno

Estructura de Computadores

Ejemplo:
LI1

LI2

DI

LI1

LI2

DI

X4
X1
X5
X2

ER
ER

X6
X3
Supersegmentado, superescalar de grado = 2

Unidad
X1 (l/s memoria)
X2 (s/r enteros)
X3 (p/d enteros)
X4 (s/r CF)
X5 (p/d CF)
X6 (multimedia)

L
3
1
4
5
15
3

R
1
1
3
3
15
1
66

Estructura de Computadores

RISC vs CISC: Dos Estrategias de Diseo


CISC: Complex Instruction Set Computer

RISC: Reduced Instruction Set Computer

Juego de instrucciones grande y complejo

Juego de instrucciones reducido y sencillo

Formato de instrucciones variable (heterogneo)


con diferentes longitudes

Formato de instrucciones fijo (homogneo) con


la misma longitud

Mltiples modos de direccionamiento complejos

Pocos modos de direccionamiento y sencillos

Nmero de registros reducido

Nmero de registros grande

Mtiples instrucciones pueden acceder a memoria

Arquitectura de carga-almacenamiento

Unidad de control compleja (microprogramada)

Unidad de control sencilla (cableada)

Objetivo: instrucciones complejas

Objetivo ejecutar cada instruccin en un solo


ciclo

Menor complejidad en el compilador

Mayor complejidad en el compilador

Mayor dificultad para la segmentacin

Mayor facilidad en la segmentacin

Arquitectura tpica de los aos 70 y 80

Arquitectura popular en los aos 90

Intel x86, celeron, Pentium, AMD (Duron, Athlon)

Power PC, DEC Alpha, MIPS, ARM, SPARC , HP

En la actualidad no hay una clara diferencia entre CISC-RISC. Los procesadores no obedecen a una
clasificacin tan polarizadas. Los procesadores Intel se consideran CISC-in RISC-out
67

RISC vs CISC: Dos Estrategias de Diseo

Estudios llevados a cabo en los aos 80 demostraron:


Los procesadores (CISC) dedicaban el 80% de su tiempo a ejecutar solo un

20% de las instrucciones disponibles en su juego de instrucciones


Algunas instrucciones no se utilizaban nunca y otras muy pocas veces

Al reducir el juego de instrucciones y homogeneizar el formato


Se ejecutan las instrucciones ms rpidamente
Unidades de control ms simples, rpidas, y ocupan menos espacio
Utilizar el espacio del chip para incluir ms registros y memoria cache

Estructura de Computadores

Hacer la segmentacin ms eficiente

CISC reduce I a costa de incrementar el CPI


RISC reduce el CPI aumentando I
Tiempo
ciclos
instrucciones
= Tciclo

programa
instruccin
programa
68

CISC vs RISC: Dos Estrategias de Diseo

Multiplicacin de dos nmeros que se encuentran ubicados en


memoria guardando el producto en la direccin del operando 1:
dir1: direccin de memoria del operando 1
dir2: direccin de memoria del operando 2

Estructura de Computadores

CISC
MULT dir1, dir2

Poco trabajo para el compilador


Baja ocupacin de la memoria
Mucho trabajo ejecutado por cada instruccin
Elevado tiempo de ejecucin

RISC
li $t0, dir1
li $t1, dir2
lw $t3, 0($t0)
lw $t4, 0($t1)
mul $t3, $t4
mflo $t5
sw $t5, 0($t0)

Ms trabajo para el compilador


Mayor utilizacin de la memoria
Ms instrucciones pero ms simples
Menor tiempo de ejecucin por instruccin
69

You might also like