Professional Documents
Culture Documents
Objetivos
Estructura de Computadores
Contenidos y Bibliografa
El proceso de segmentacin
Concepto
Diagramas temporales
Prestaciones
Conflictos y riesgos
Conflictos de datos
Conflictos de control (flujo)
Estructura de Computadores
Concepto de Segmentacin
Definicin de segmentacin
Descomposicin de un sistema que ejecuta un determinado proceso en
Estructura de Computadores
Concepto de Segmentacin
Ejemplos
Ford 1907-1908
Seat Dcada 50
Estructura de Computadores
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
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
Estructura de Computadores
=
=1
Entrada
de datos
P1
(1)
P2
(2)
Pk
(k)
Salida
de datos
T
8
Proceso de Segmentacin
Registro de etapa i:
Recoge los datos producidos por la etapa i-1
Suministra datos a la etapa i
Estructura de Computadores
reloj
P1
R1
P2
R2
Pk
Rk
Proceso de Segmentacin
(tiempo de ciclo)
reloj
P1
(1)
P2
(2)
Pk
(k)
Consideraciones temporales:
Estructura de Computadores
= mx{ i } + TR
f =
T k
10
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
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
12
Prestaciones de la Segmentacin
n
n
X ( n) =
datos/tiempo
=
t s (n) (n + k 1)
Incrementa:
Con el nmero de datos
Con la frecuencia de reloj
Estructura de Computadores
X ( ) =
= f
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)
Si n , entonces S T/ k
Ganancia terica mxima
14
Prestaciones de la Segmentacin
Consideraciones temporales
El perodo mnimo de reloj s
= max(i) + TR
Estructura de Computadores
15
Estructura de Computadores
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)
16
Estructura de Computadores
M: Etapa de memoria
Load y Store: acceso a la memoria
Instrucciones de clculo y salto: nada
Estructura de Computadores
18
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
Extensin
de signo
MUX
15..0
Rt
Banco de
Registros
Rd
Memoria
Instrucciones
RI
PCin
Estructura de Computadores
LI
ER
Clk
25..21(rs)
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
Codifica un
+3
Estructura de Computadores
instruccin
20
ext_de_signo(distancia)
Estructura de Computadores
PC + 4
direccin_objetivo
21
Evaluacin de la condicin
La ALU ha de tener la operacin identidad: ALUout = A
Ha de suministrar dos indicadores:
Estructura de Computadores
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
instruccin
cdigo
beq
bne
bgez
bgtz
blez
bltz
j
1
2
3
4
5
6
7
Descodificador
cdigo
Z
S
ALU
Estructura de Computadores
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
MUX
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
LI
Seales de control
Estructura de Computadores
MUX
PC
ellas)
Memoria
Instrucciones
RI
LI/DI
PC+4
PCin
Funciones
Direccin de salto
(viene de EX/M.NPC)
Clk
MxPC (viene de EX/M.Cond)
LI
DI
Etapa de descodificacin
Funciones
Componentes
25..21(rs)
LReg
20..16(rt)
Banco de
Registros
T := Reg[RI20..16]
Seales de control
LReg: Activa la lectura de los dos registros
RI
Estructura de Computadores
S := Reg[RI25..21]
Extensin
de signo
Rt
posteriores
PC+4
LI/DI
PC+4 DI/EX
Descodificador
y Unidad de
Control
Rd
26
EX
Etapa de Ejecucin
Funciones
Seales de control
OpALU
Rt
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
MUX
memoria
TipoInst
PC+4 DI/EX
EX/M
Re
27
Seales de control
LMem: activa la lectura de la memoria
EX/M
ALUout
EMem
LMem
NPC
CON
D
M/ER
Funciones
ALUout
MEMout
Mem
Datos
Re
T
Re
Estructura de Computadores
28
M/ER
ER
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
Datos
Reg dest
MUX
ALUout
MxER
29
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:
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
Estructura de Computadores
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
MxDst
MUX
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
lw $1,a
LI
DI
EX M
LI
DI
LI
Estructura de Computadores
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
Generalidades
Ecuacin del tiempo de ejecucin de un programa en un procesador en
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
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:
ER
LI
DI
EX
ER
ciclos 4
CPI =
I
35
Conflictos o riesgos
Son situaciones producidas por la segmentacin del procesador, en las
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
Dependencias de datos
Las instrucciones estn fuertemente relacionadas entre ellas, resultado
Estructura de Computadores
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
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
38
Estructura de Computadores
39
Estructura de Computadores
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
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
P
4
I+P
CPI =
= 1+ = 1+ = 2
I
4
I
41
Soluciones y prestaciones
Insercin de NOP
12 4
CPI =
=1
8
Estructura de Computadores
CPI =
12 4
=2
4
42
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
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
Re
Diferencias
La insercin de instrucciones intiles incrementa el factor I
Estructura de Computadores
Conflictos de Control
programas
Tipos
Absoluto
Estructura de Computadores
Relativo a PC
Indirecto
Frecuencia de aparicin de las instrucciones de salto: 10 al 20% del cdigo
Conflictos de Control
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
MUX
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
LI
Conflictos de Control
Vocabulario
Instruccin objetivo (target): la instruccin destinataria del salto
Las bifurcaciones saltan si se cumple una condicin
instrucciones
previas
Estructura de Computadores
bif_cond eti
instrucciones
siguientes
eti:
instrucciones
objetivo
49
Conflictos de Control
Anlisis del conflicto
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
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
Estructura de Computadores
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
Hardware
El decodificador inserta ciclos de parada al detectar un salto
Software
El compilador inserta NOP
Prediccin fija
Estructura de Computadores
predict-not taken
predict taken
Intel i486
Sun SuperSparc
54
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
Prediccin esttica
Salto efectivo
Salto No efectivo
Prediccin dinmica
(tiene en cuenta el histrico)
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)
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
Estructura de Computadores
Estructura de Computadores
61
Estructura de Computadores
Ejemplo:
X1
LI
DI
X2
X3
ER
unidad
X1 (mem)
X2 (enteros) 1
X3 (CF)
3
1
3
62
lw
LI
DI
X1
X1
ER
LI
DI
LI
X3
DI
X3
X2
Estructura de Computadores
add.s (CF)
add (enters)
X3
ER
ER
Supersegmentacin
La tarea a realizar en alguna/s etapa/s del modelo bsico se reparte
Estructura de Computadores
LI1
LI2
DI
X1
X2
M1
M2
ER
Otros ejemplos
SPARC-V8 (9 etapas)
Alpha 21064 (7 etapas)
64
Procesadores superescalares
Cada etapa puede procesar n instrucciones
Estructura de Computadores
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
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
Arquitectura de carga-almacenamiento
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
Estructura de Computadores
programa
instruccin
programa
68
Estructura de Computadores
CISC
MULT dir1, dir2
RISC
li $t0, dir1
li $t1, dir2
lw $t3, 0($t0)
lw $t4, 0($t1)
mul $t3, $t4
mflo $t5
sw $t5, 0($t0)