Professional Documents
Culture Documents
Tema 2. Segmentació Bàsica - Valencià13-14
Tema 2. Segmentació Bàsica - Valencià13-14
2
Continguts i Bibliografia
El procs de segmentaci
Concepte
Diagrames temporals
Prestacions
Segmentaci de la ruta de dades bsica
Identificaci de les fases d'execuci de les instruccions
Disseny de les etapes
Control de la segmentaci
Conflictes i riscos
Conflictes de dades
Conflictes de control (flux)
Perspectiva histrica. RISC-CISC i altres alternatives
Estructura de Computadors
4
Concepte de Segmentaci
Exemples
5
Concepte de Segmentaci
Exemples
Bugaderia
(llavat, eixugat, planxat)
1 2 3 4 5 6 7
Llavat Eixugat Planxat
Colada 1
Colada 2 Llavat Eixugat Planxat
temps
6
El smil de la lavandera
3 etapas K = 3 5 coladas n = 5
1 2 3 4 5 6 7
Colada 1 Llavat Eixugat Planxat
Colada 5
Estructura de Computadors
Entrada P1 P2 Pk Eixida
de dades (1) (2) (k) de dades
T
8
Procs de Segmentaci
Eixida (circuit segmentat)
k etapes (profunditat de segmentaci: k)
Cada etapa va precedida d'un registre d'etapa (stagging latch)
Etapa i:
Entrada: contingut del registre i
Eixida: semmagatzema en el registre i+1
registre d'etapa i:
Recull les dades produdes per l'etapa i-1
Subministra dades a l'etapa i
Tots els registres d'etapa sactualitzen en el mateix flanc de rellotge
Els registres d'etapa incrementen el cost del circuit
rellotge
Estructura de Computadors
P1 P2 Pk
R1 R2 Rk 9
Procs de Segmentaci
Sincronitzaci del circuit
P1 P2 Pk
(1) (2) (k)
Consideracions temporals:
El retard dels registres TR sha de considerar en el temps de cicle:
1
= mx{ i } + TR f =
Estructura de Computadors
T k
10
Diagrames Temporales: Diagrama Etapes/Temps
Exemple de segmentaci amb 5 etapes (k=5) i 5 dades (n=5)
Etapes
arribada P1 P2 P3 P4 P5 eixida
k cicles
desocupades
3 D31 D22 D13 --- ---
Temps (cicles)
...
n-1 cicles
7 --- --- D53 D44 D35
Temps (cicles)
1 2 3 4 5 (k) 6 7 8 9 (k+n-1)
D1 P1 P2 P3 P4 P5
D2 P1 P2 P3 P4 P5
Dades
D3 P1 P2 P3 P4 P5
D4 P1 P2 P3 P4 P5
D5 P1 P2 P3 P4 P5
D1 en 5 cicles
D2 en 5 cicles
. . . n dades procesades en
(k cicles)
(k cicles)
k+n-1 cicles
12
Prestacions de la Segmentaci
Mesures de prestacions (n dades)
Productivitat: treball realitzat per unitat de temps
n n
X ( n) = = dades/temps
t s (n) (n + k 1)
Incrementa:
Amb el nombre de dades
Amb la freqncia de rellotge
Lmit teric (n suficientment gran):
Una operaci per cicle 1
X ( ) = = f
Estructura de Computadors
t ns (n) n T T
S ( n) = = S () =
t s (n) (n + k 1)
13
Prestacions de la Segmentaci
Conclusions
t ns (n) n T
S ( n) = =
t s (n) (n + k 1)
Com T k, si n=1 aleshores S1: la segmentaci no beneficia
14
Prestacions de la Segmentaci
Consideracions temporals
El perode mnim de rellotge s = mx(i) + TR
Per a incrementar la productivitat (1/) reduirem:
el retard mxim d'etapa (tot augmentant k i mantenint els retards
equilibrats)
el retard dels registres
Estructura de Computadors
15
Segmentaci de la Ruta de Dades
Especificaci del cicle d'instrucci
Distribuci en etapes dels componentes de la ruta
Unitat de
Descodificaci
Control
Banc
Banc
Escriptura rd Escriptura rt Registres
(escriptura)
Instr. aritmtiques Instr. Crrega Inst. Emmagatz. Inst. Salt Cond.
Ex: add rd, rs, rt lw rt, desp(rs) sw rt, desp(rs) beq rs, rt, etiq
16
Segmentaci de la Ruta de Dades
Definici de les etapes
Etapes comunes a totes les instruccions
LI: Etapa de lectura d'instrucci (i increment del PC)
DI: Etapa de decodificaci d'instrucci (i lectura de registres)
Etapes que depenen del tipus d'instrucci
EX: Etapa d'ejecuci
Instruccions de clcul: clcul del resultat
Load i Store: clcul de ladrea de memria
Instruccions de salt: clcul de l'adrea de salt i de la condici de salt
M: Etapa de memoria
Load i Store: accs a la memoria de dades
Estructura de Computadors
18
Ruta de dades sense suport per a instruccions de salt
i sense la unitat de control Clk
LI
PC
cions
4
Instruc-
Memria
PCin
RI LI/DI
20..16(rt)
15..0
25..21(rs)
DI
Banc de
Registres
de signe
Extensi
MUX
MUX
EX
L
A
Re T ALUout EX/M
M
Mem.
Dades
Reg dest
ER
MUX
Dades
Suport Instruccions de Salt
Instruccions de salt condicional en el MIPS
En el MIPS R2000 nhi ha sis, totes del format I
Adreament relatiu al PC
Com a distncia de salt es codifica (en complement a 2) el nombre de
paraules entre la instrucci segent i la instrucci de salt
Codifica un
sll $t3, $t2, 3
blez rs,eti rs<=0
+3
xor $t4, $0, $0
bltz rs,eti rs<0
Estructura de Computadors
PC + 4
+ adrea_objectiu
ext_de_signe(distncia)
Estructura de Computadors
21
Clcul de la Condici de Salt
Avaluaci de la condici
LALU ha de tenir loperaci identitat: ALUout = A
22
Clcul de la Condici de Salt
Control bsic de la bifurcaci
Un nou registre EX/M.Cond (un bit): indicar si hi ha bifurcaci efectiva
ALU
bgez 3
S+Z 5
Estructura de Computadors
bgtz 4 6
S
blez 5 1 7
bltz 6
Lgica de salt
j 7
23
Suport per a les instruccions de salt LI DI EX M ER
Clk
Clcul de
l'adrea de
M/ER
salt
EX/M
PCin Emmagatzema
LI/DI
i propaga
PC+4 DI/EX
MxPC
l'adrea PC+4
NPC
4
PC+4
SALT
COND
+
<<
+
25..21(rs)
ALUout
ALUout
A
20..16(rt)
MUX L
Banc de
Clcul de la
MUX
U
T
Registres
MUX
condici de
PC
salt Mem
MEMout
15..0 Extensi Dades
T
K
Dades
Memria de signe
Instruc-
RI
cions
MUX
Re
Re
Reg dest
15..11 (rd tipus R)
Rd
LI
Etapa de Lectura dInstrucci Clk
(ve de EX/M.NPC)
Funcions
Adrea de salt
Amb totes les instruccions:
Llegir la instrucci apuntada per el PC
PCin
LI/DI
Avanzar el PC per a que apunte a la instrucci
segent 4
PC+4
Instrucci de salt condicional
+
Seleccionar la segent adrea d'instrucci, entre PC i
l'adrea de salt (calculada en l'etapa EX) MUX
Senyals de control
PC
PCin: Carregar PC, activada per flanc del rellotge
Estructura de Computadors
RI
cions
MxPC: Calculada en l'etapa EX (reg EX/M.Cond)
LInst
25
DI
Etapa de Descodificaci
Funcions Descodificador
i Unitat de
Amb totes les instruccions: Control
LI/DI
PC+4 DI/EX
etapes posteriors
Llegir els registres font
PC+4
Processar el camp de desp/imm LReg
Components 25..21(rs)
S
20..16(rt)
Extensi de signe (combinacional) Banc de
T
Registres
Banc de registres (ports de lectura)
S := Reg[RI25..21]
15..0 Extensi
T := Reg[RI20..16]
Estructura de Computadors
K
de signe
Senyals de control
RI
20..16 (rt tipus I)
Rt
15..11 (rd tipus R)
LReg: Activa la lectura dels dos registres
Rd
(podem prescindir daquest senyal) 26
EX
Etapa de Execuci
Funcions
Instr. de clcul: obtenci del resultat
EX/M
Instr. load/store: clcul de l'adrea de memria TipusInst
PC+4 DI/EX
NPC
Instr. salt: calcula l'adrea de salt i avalua la
condici de salt +
SALT
COND
Senyals de control <<
ALUout
A
MxALU: Selecciona el segon operand de lALU L
U
MUX
T
MxDst: Determina registre destinaci
(escriptura) OpALU
MxALU
OpALU: Determina loperaci que far lALU
T
Estructura de Computadors
K
MxDst
TipusInst: Tipus d'instrucci
Rt
MUX
Re
Rd
27
M
Etapa dAccs a Memria
Funcions
M/ER
EX/M
Instruccions de clcul: res
NPC
Instruccions de salt: selecciona segent adrea
COND
d'instrucci a llegir
EMem
LMem
Senyals de control
ALUout
ALUout
LMem: activa la lectura de la memria
MEMout
Dades
T
Estructura de Computadors
Re
Re
28
Etapa dEscriptura en Registres
ER
Funcions
M/ER
Instruccions de clcul: escriptura de resultats
EReg
Instruccions de store i salt: res
MxER
Caracterstiques del banc de registres
ALUout
Ha de suportar dos accessos de lectura i un Dades
Banc de
MUX
accs d'escriptura en cada cicle Registres
Senyals de control
MEMout
Estructura de Computadors
Reg dest
EReg: Activa l'escriptura en el banc de registres
Re 29
Segmentaci de la Ruta de Dades
La freqncia de rellotge
Temps de cicle de rellotge
tseg = mx(i) + tR
Caldr considerar el temps de retard i de cada etapa i fixar-se en el
ms llarg
Caldr considerar el retard tR dels registres de segmentaci
Exemple:
Si LI = M = 30 ns, DI = ER = 20 ns i EX =25 ns; tR = 10 ns
Perode tseg = 30 + 10 = 40 ns
Freqncia de rellotge f = 1/40 ns = 25 MHz
Estructura de Computadors
Comparaci ruta no segmentada amb temps daccs a memria: 30 ns, a registres: 20 ns, ALU 25ns
Instrucci ms lenta: lectura en memria (load) amb 125 ns: F = 8 MHz; S = 3.125
(30 ns lect. instr. + 20 ns lect. registres + 25 ns ALU clcul dir. + 30 ns lect. mem + 20 ns escript. en registre)
30
Control del Procesador Segmentat
Disseny bsic del control
Objectiu general: Aconseguir que les cinc etapes funcionen ordenadament i
puguen executar les instruccions escollides
Observacions
Cada etapa ha de ser autnoma
Les dues primeres etapes, LI i DI, processen instruccions no descodificades
Els seus senyals de control seran els mateixos durant tots els cicles
L'etapa DI sencarregar de calcular els senyals de control de les etapes
posteriors i els transferir a les segents etapes
Les etapes restants han de processar les instruccions en funci del codi d'operaci
Estructura de Computadors
Els senyals de control coincideixen amb els de la ruta no segmentada. De fet, els
senyals de control depenen exclusivament de la instrucci executada i no de la
ruta de dades
31
Clk
ER
ER
ER
Descodificador
i Unitat de
M
Control
M/ER
OpALU
MxER
EX/M
LMem
MxALU
EX
PCin
...
MxDst
LI/DI
EMem
PC+4 DI/EX
MxPC
TipusInst
NPC
EReg
4
PC+4
SALT
COND
EReg +
<<
+
25..21(rs)
ALUout
ALUout
A
20..16(rt)
MUX L
Banc de
U
MUX
T
Registres
MUX
PC OpALU
Mem
MEMout
MxALU
15..0 Extensi Dades
T
K
Dades
Memria de signe MxDst
Instruc-
RI
cions
MUX
Re
Re
Reg dest
15..11 (rd tipus R)
Rd
32
Representaci Grfica de la Segmentaci
Instrucci 1 2 3 4 5 6 7 8 9
lw $1,a LI DI EX M ER
Diagrama add $3,$2,$0 LI DI EX M ER
instruccions/temps
sub $4,$2,$0 LI DI EX M ER
and $5,$2,$0 LI DI EX M ER
or $6,$2,$0 LI DI EX M ER
Cicle LI DI EX M ER
1 lw ? ? ? ? Situaci
2 add lw ? ? ? en el cicle 5
3 sub add lw ? ?
4 and sub add lw ?
Estructura de Computadors
T = I CPI t C
T: temps d'execuci total del programa
I: nombre d'instruccions que shi executen
CPI: nombre mitj de cicles per instrucci
tC: temps de cicle del rellotge del processador
En general, convindr minimitzar els tres factors I, CPI i tC
Estructura de Computadors
34
Prestacions del Procesador Segmentat
CPI
ndex tpic que sutilitza per a quantificar les prestacions del processador
CPI>1 (el pipeline necessita k-1 cicles per a arribar a lltima etapa; cicles > I)
cicles
Inst 1 LI DI EX M ER
Inst 2 LI DI EX M ER
Inst 3 LI DI EX M ER
.
.
.
Inst i LI DI EX M ER
Estructura de Computadors
Condicions ideals:
cicles 4
CPI =
Infinites instruccions i zero cicles de parada
Tipus
Estructurals (no els veiem perqu la nosta ruta no en t)
De dades
De control Els conflictes estructurals es
produeixen en ls dels
Solucions recursos per part de les
instruccions lexecuci de les
Cicles de parada quals se solapa. Per exemple,
Estructura de Computadors
36
Els Conflictes de Dades
Dependncies de dades
Les instruccions estan fortament relacionades entre elles, resultat de la
compilaci de sentncies escrites en un llenguatge de programaci dalt
nivell
Qu sn les dependncies de dades?
Les instruccions es poden veure com a productores i consumidores de
dades
Dependncia de dades:
c = a + b
Instrucci que consumeix una
dada produda per una altra
Estructura de Computadors
lw $1, a($0)
Exemple: lw $2, b($0)
Hi ha dependncia
Compilaci de c=a+b entre la instrucci 1 i add $3, $2, $1
la 3 pel registre $1
sw $3, c($0)
37
Els Conflictes de Dades
Conflictes de dades dins dun processador segmentat
Apareixen quan una instrucci ha doperar amb un valor que encara no
ha subministrat una instrucci anterior:
instrucci 1 2 3 4 5 6 7 8
$1
lw $1,a($0) LI DI EX M ER
$2
lw $2,b($0) LI DI EX M ER
$3
add $3,$2,$1 LI DI EX M ER
sw $3, c($0) LI DI EX M ER
El valor de $1 sescriu en el banc en el cicle 5; per ha de ser llegit per add en el cicle 4
Estructura de Computadors
El valor de $2 sescriu en el banc en el cicle 6; per ha de ser llegit per add en el cicle 4
38
Els Conflictes de Dades
Tcniques de resoluci de conflictes
Tcniques durgncia
Soluci per software: inserci dinstruccions NOP en el codi
Soluci per hardware: generaci de cicles de parada
Estructura de Computadors
39
Els Conflictes de Dades
Soluci durgncia per software: inserci dinstruccions NOP
En generar el codi mquina, el compilador pot inserir instruccions NOP
instrucci 1 2 3 4 5 6 7 8 9 10 11 12
$1
lw $1,a($0) LI DI EX M ER $2
lw $2,b($0) LI DI EX M ER
nop LI DI EX M ER
nop LI DI EX M ER $3
add $3,$2,$1 LI DI EX M ER
nop LI DI EX M ER
LI DI EX M ER
Estructura de Computadors
nop
sw $3, c($0) LI DI EX M ER
12 4
CPI = =1 Tprograma = 8 instruccions * 1 CPI * Tcicle
8
40
Els Conflictes de Dades
Soluci durgncia per hardware: cicles de parada
El control del processador pot preveure les dependncies de dades i
generar cicles de parada per a resoldre-les
instrucci 1 2 3 4 5 6 7 8 9 10 11 12
$1
lw $1,a($0) LI DI EX M ER $2
lw $2,b($0) LI DI EX M ER $3
add $3,$2,$1 LI DI DI DI EX M ER
sw $3, c($0) LI DI DI DI EX M ER
12 4
CPI = =2 4 cicles de parada
4
Estructura de Computadors
I+P P 4
CPI = = 1+ = 1+ = 2 Tprograma = 4 instruccions * 2 CPI * Tcicle
I I 4
41
Solucions i prestacions
Inserci de NOP 12 4
CPI = =1
8
El temps dexecuci en rgim estacionari:
Tprograma = 8 instruccions * 1 CPI * Tcicle
42
Lgica de detecci de la dependncia
Detecci:
EX[LMem]=0 & EX[EMem]=0 & (la instrucci actual no es load ni store)
ER
Descodif M Control de
Instrucc EX parada
DI/EX EX/M
M ER
EX
Banco de
S
Estructura de Computadors
registros
ALU
ALUout
T
MEMout
RI
memoria
de datos
Rt
Rd
Re
Re
43
Lgica dinserci del cicle de parada
Les etapes LI i DI han de repetir instrucci
Cal crear una bambolla en EX (LMem=0; EMem=0; EReg=0)
Crear
bambolla
DI/EX
M ER
ER
Inhibir crrega
Control de
registres M EX/M
parada
EX
EX
CPin
LI/DI
Banco de
S
CP UAL
registros
UALout
Estructura de Computadors
Re MEMout
memoria memoria
RI
de datos
Rt
instruc.
Rd
Re
Els Conflictes de Dades
Valoraci de les dues solucions vistes
Semblances
El nombre de cicles en temps dexecuci s el mateix
En lexemple: 12 cicles
El compilador pot ajudar a baixar el temps dexecuci
Diferncies
La inserci dinstruccions nop incrementa el factor I (nombre dinstruccions)
Els cicles de parada incrementen el factor CPI
La ruta de dades segmentada s compatible binria amb la no segmentada
(s a dir, lexecuci del mateix programa en ambds processadors produiria
Estructura de Computadors
45
Conflictes de Control
Les instruccions de salt
Trenquen la seqncia lineal dexecuci dels programes
Tipus
Salt incondicional (jump)
Salt condicional o bifurcaci (branch)
Crida i retorn de subprograma (call/jump&link i return)
Modes dadreament
Absolut
Relatiu a CP
Indirecte
Estructura de Computadors
46
Conflictes de Control
Instruccions de salt condicional en el MIPS
Exemples
if (x>y) z=0;
/*then*/ z=x do z=z+y;
else z=y; x=x1;
while (x!=0)
if: lw $t0,x($0)
lw $t1,y($0)
add $t2,$zero,$zero
sub $t2,$t1,$t0
lw $t0,x($0)
bgez $t2,else
lw $t1,y($0)
then: sw $t0,z($0)
do: add $t2,$t2,$t1
Estructura de Computadors
j endif
addi $t0,$t0,-1
else: sw $t1,z($0)
while: bne $t0,$zero,do
endif:
enddw: sw $t2,z($0)
47
Suport per a les instruccions de salt LI DI EX M ER
Clk
Clcul de
l'adrea de
M/ER
salt
EX/M
PCin Emmagatzema
LI/DI
i propaga
PC+4 DI/EX
MxPC
l'adrea PC+4
NPC
4
PC+4
SALT
COND
+
<<
+
25..21(rs)
ALUout
ALUout
A
20..16(rt)
MUX L
Banc de U Clcul de la
MUX
T
Registres
MUX
condici de
PC
salt Mem
MEMout
15..0 Extensi Dades
T
K
Dades
Memria de signe
Instruc-
RI
cions
MUX
Re
Re
Reg dest
15..11 (rd tipus R)
Rd
Conflictes de Control
Vocabulari
Instrucci objectiu (target): instrucci destinatria del salt
instruccions
prvies
bif_cond eti eti:
instruccions
Estructura de Computadors
instruccions objectiu
segents
49
Conflictes de Control
Anlisi del conflicte
Quan el salt s efectiu en l'etapa M el processador t tres instruccions
segents en procs. En l'etapa ER sescriu el nou PC
Instrucci 1 2 3 4 5 6 7 8 9
prvia LI DI EX M ER
Veure ruta bifurcaci LI DI EX M ER
segent 1 LI DI EX M ER
segent 2 LI DI EX M ER
segent 3 LI DI EX M ER
objectiu LI DI EX M
cicle LI DI EX M ER
Estructura de Computadors
cicle
instruccions
1 2 3 4 5 6 7 8 9
beq $2,$3,L1
beq BI DI EX M ER
lw $2,100($1)
lw BI DI EX add $3,$1,$4
or $5,$6,$4
add BI DI sub $5,$5,$4
L1: sw $6,50($4)
or BI
Estructura de Computadors
BI DI EX M ER
sw
Conflictes de Control
Anlisi del conflicte
Latncia de salt: nombre de cicles que necessita el processador per a
executar una instrucci de salt
En el cas dun processador segmentat linealment, tenim:
latncia de salt = nombre dinstruccions segents afectades
= nmero detapa en qu el salt s efectiu 1
En el cas anterior la latncia de salt = 3
Com ms primerenca siga letapa en qu sescriu el PC, menor penalitzaci
Per a reduir el conflicte, es pot modificar el disseny de la ruta de dades i
avanar el moment de lescriptura del PC. Veure esquema de la segent
Estructura de Computadors
transparncia.
52
Latncia del Salt
Ruta de dades amb latncia de salt = 2
LI DI EX M
PC+4
PC+4
1 0
+
PC
4 25..21 salt
S
Banc de
ALU
ALUout
ALUout
20..16 registres
T
Memria
d Memria
15..0
RI
Extensi de
instruc-
K
de signe
cions dades
53
Tractament dels Conflictes de Control
Primeres solucions al conflicte
Solucions durgncia:
Hardware
El descodificador insereix cicles de parada en detectar un salt
Sofware: salt retardat
El compilador reordena el codi o insereix instruccions nop
Solucions avanades: predicci
Predicci fixa:
predict-not taken (always): Intel i486
predict taken: Sun SuperSparc
Estructura de Computadors
54
Anlisi del conflicte
cicle
instruccions
1 2 3 4 5 6 7 8 9
beq $2,$3,L1
beq BI DI EX M ER
lw $2,100($1)
lw BI DI EX add $3,$1,$4
or $5,$6,$4
add BI DI sub $5,$5,$4
L1: sw $6,50($4)
or BI
Estructura de Computadors
BI DI EX M ER
sw
Prestacions
codi.
Alternativa: Predicci de salt
Predicci esttica
Salt efectiu
Salto No efectiu
Predicci dinmica
(t en compter el histric)
Predicci de salt NO efectiu
Predicci de
salt no efectiu
BI DI EX M ER beq $2,$3,L1
lw $2,100($1)
sw BI DI EX M ER
T1 T2 T3 T4 T5 T6 T7 T8 T9 Temps
58
Prediccin de salto NO efectiu
Prediccin de
salto no efectiu
BI DI EX M ER beq $2,$3,L1
lw $2,100($1)
add BI DI EX M ER
or BI DI EX M ER
Estructura de Computadors
sw BI DI EX M ER
T1 T2 T3 T4 T5 T6 T7 T8 T9 Temps
59
Conclusions
Les instruccions de salt (o de control de flux) suposen el
trencament de la seqncia dexecuci dun programa i
per tant una prdua de rendiment de la segmentaci
Les solucions conservatives es limiten a resoldre el
problema per a garantir la correcta seqenciaci del
programa
Per a millorar el rendiment conv aprofitar les
instruccions que ja han entrat en el processador.
Estructura de Computadors
61
Altres Models de Segmentaci
Segmentaci amb etapes multicicle
Permet lexecuci doperacions de durada variable (1 o ms cicles)
aritmtica de coma flotant, multimdia, etc.
Disposa duna collecci doperadors diversos, cadascun amb latncia L i
taxa de repetici R especfics
accs a memria (tpicament L>=1, R=1)
aritmtica entera (L=1, R=1)
aritmtica de CF (L>1, R>=1)
Exemple:
X1 unitat L R
Estructura de Computadors
X1 (mem) 2 1
LI DI X2 ER
X2 (enters) 1 1
X3 X3 (CF) 3 3
62
Altres Models de Segmentaci
Segmentaci amb etapes multicicle (cont.)
Cal una lgica demissi (issue) que distribusca el treball entre els
diversos operadors
Lordre dacabament dexecuci de les instruccions pot ser distint a
lordre en qu han sigut descodificades
Instrucci 1 2 3 4 5 6 7
lw LI DI X1 X1 ER
add.s (CF) LI DI X3 X3 X3 ER
add (enters) LI DI X2 ER
Estructura de Computadors
63
Altres Models de Segmentaci
Supersegmentaci
La tasca a realitzar en alguna/es etapes del model bsic es reparteix
entre diverses etapes
Augmenta el nombre detapes
Objectiu: incrementar la freqncia de rellotge (etapes ms curtes)
CPI base = 1
Exemple: MIPS 4000: 8 etapes LI1,LI2,DI,EX1,EX2,M1,M2,ER
LI1 i LI2 fan la lectura dinstrucci
M1 i M2 fan laccs a memria de dades
LI1 LI2 DI X1 X2 M1 M2 ER
Altres exemples
Estructura de Computadors
SPARC-V8 (9 etapes)
Alpha 21064 (7 etapes)
64
Altres Models de Segmentaci
Processadors superescalars
Cada etapa pot processar n instruccions
Objectiu: reduir CPI ideal a 1/n tot mantenint la freqncia de rellotge
Sutilitza el IPC (Intruccions Per Cicle) = n
LI DI EX M ER
LI DI EX M ER
Instr. 1 2 3 4 5 6 7
i1 LI DI EX M ER
i2 LI DI EX M ER
i3 LI DI EX M ER
Estructura de Computadors
i4 LI DI EX M ER
i5 LI DI EX M ER
i6 LI DI EX M ER
65
Altres Models de Segmentaci
Combinacions
Els processadors actuals combinen diversos models de segmentaci
Parmetres significatius:
Nombre detapes
Ample descalaritat = nombre dinstruccions que es poden llegir o
descodificar per cicle
Assortiment dunitats dexecuci i caracterstiques (L, R) de cadascuna
Exemple: Unitat L R
X4
X1 X1 (l/s memria) 3 1
LI1 LI2 DI ER X2 (s/r enters) 1 1
X5
X2 X3 (p/d enters) 4 3
Estructura de Computadors
LI1 LI2 DI ER
X4 (s/r CF) 5 3
X6
X3 X5 (p/d CF) 15 15
X6 (multimdia) 3 1
Supersegmentat, superescalar de grau = 2
66
RISC vs CISC: Dues Estratgies de Disseny
CISC: Complex Instruction Set Computer RISC: Reduced Instruction Set Computer
Joc d'instruccions gran i complex Joc d'instruccions redut i senzill
Format d'instruccions variable (heterogeni) amb Format d'instruccions fix (homogeni) amb la
diferents longituds mateixa longitud
Molts modes dadreament i complexos Pocs modes dadreament i senzills
Nombre redut de registres Nombre gran de registres
Moltes instruccions poden accedir a memria Arquitectura de crrega/emmagatzemament
Unitat de control complexa (microprogramada) Unitat de control senzilla (cablejada)
Objectiu: instruccions complexes, properes als Objectiu: acabar dexecutar cada instrucci en
llenguatges dalt nivell un nic cicle
Menor complexitat en el compilador Major complexitat en el compilador
Major dificultat per a la segmentaci Major facilitat en la segmentaci
Arquitectura tpica dels anys 70 i 80 Arquitectura popular en els anys 90
Estructura de Computadors
Intel x86, Celeron, Pentium, AMD (Duron, Athlon) PowerPC, DEC Alpha, MIPS, ARM, Sparc, HP
En lactualitat no hi ha una clara diferncia entre CISC-RISC. Els processadors no semmarquen dins
duna taxonomia tan estricta. Els processadores Intel es consideren CISC-in RISC-out
67
RISC vs CISC: Dues Estratgies de Disseny
Estudis dels anys 80 demostraren:
Els processadors (CISC) dedicaven el 80% del temps en executar noms un
20% de les instruccions disponibles en el joc d'instruccions
Algunes instruccions no sempraven mai i daltres poques voltes
CISC RISC
MULT adr1, adr2 li $t0, adr1
li $t1, adr2
lw $t3, 0($t0)
lw $t4, 0($t1)
mul $t3, $t4
Poc treball per al compilador mflo $t5
Baixa ocupaci de la memria sw $t5, 0($t0)
Estructura de Computadors
Instruccions complexes
Temps alt dexecuci
El compilador ha de resoldre molts aspectes
Ms ocupaci de la memria de codi
Ms instruccions per ms simples
Menor temps d'execuci per instrucci
69