You are on page 1of 69

Estructura de Computadors

Grau dEnginyeria Informtica


ETSINF

Tema 2: Segmentaci Bsica


del Processador
Objectius
Conixer el concepte de segmentaci como tcnica de
millora de prestacions
Conixer la segmentaci bsica del processador MIPS
Detectar conflictes i riscos senzills
Conixer algunes de les tcniques de resoluci de conflictes
que apareixen en la ruta de dades segmentada del MIPS
Saber comparar prestacions d'una ruta de dades segmentada
Estructura de Computadors

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

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


computadores. La interfaz hardware/software, 4a edici, Ed.
Revert, 2011, Cap 4 (4.5 4.8) 3
Concepte de Segmentaci
Definici de segmentaci
Descomposici d'un sistema que executa un determinat procs en diverses
etapes, de manera que:
Cada etapa s'ocupa d'una part del procs global utilitzant recursos propis
El procs global requereix laplicaci ordenada de totes les etapes
Totes les etapes treballen simultniament (cadascuna en un procs distint)
Objectiu: Augmentar el parallelisme (temporal) dels processos i
per tant, augmentar la productivitat
Estructura de Computadors

4
Concepte de Segmentaci
Exemples

Ford 1907-1908 Seat Dcada 1950

Cadena de muntatge d'un cotxe


(muntatge motor, assemblatge interior, pintat, )
Estructura de Computadors

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

Colada 3 Llavat Eixugat Planxat


Estructura de Computadors

Colada 4 Llavat Eixugat Planxat

Colada 5 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 2 Llavat Eixugat Planxat

Colada 3 Llavat Eixugat Planxat

Colada 4 Llavat Eixugat Planxat

Colada 5
Estructura de Computadors

Llavat Eixugat Planxat

Fer 5 bugades demanar un temps total de 7 etapes:


n+K-1
Procs de Segmentaci
Entrada
Operador lgic P que opera sobre dades d'entrada

P es considera constitut per k etapes Pi que operen de manera


seqencial sobre les dades
Consideracions temporals:
Retard del circuit: T
Cada etapa Pi t necessitats temporals (retard) distintes: i
n
T = i
i =1
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

Parmetres del rellotge: f (freqncia) i (temps de cicle)


rellotge

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

La segmentaci penalitza el temps de procs d'una operaci individual

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

1 D11 --- --- --- ---

2 D21 D12 --- --- --- Etapes


---

k cicles
desocupades
3 D31 D22 D13 --- ---
Temps (cicles)

4 D41 D32 D23 D14 ---

5 (k) D51 D42 D33 D24 D15 D1 en 5 cicles (k cicles)

6 --- D52 D43 D34 D25 D2 en 5 cicles (k cicles)

...

n-1 cicles
7 --- --- D53 D44 D35

8 --- --- --- D54 D45


Estructura de Computadors

9 (k+n-1) --- --- --- --- D55 n dades processades


en k+n-1 cicles

DXy representa Dada X en etapa i (DXy DXz)


Per simplificitat, obviarem a partir dara les diferncies de les dades entre etapes
11
Diagrames Temporales: Diagrama Temps/Dades
Exemple de segmentaci amb 5 etapes (k=5) i 5 dades (n=5)

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

k cicles n-1 cicles


Estructura de Computadors

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

Acceleraci: Guany de velocitat respecte al circuit no segmentat:

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

Com ms gran s n (dades a processar), ms beneficis (S)


Si n , aleshores S T/ k
Guany teric mxim
Si T= k (cas ideal), el guany seria S=k. Aix sacompliria noms si
totes les etapes tingueren igual retard (i ) i el retard dels registres de
segmentaci (TR ) fra zero
Estructura de Computadors

En principi, i amb suficients dades, com ms xicotet siga ms


acceleraci obtindrem

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

Lectura en Mem. Memria


Instruccions Instruccions

Unitat de
Descodificaci
Control

Banc

Lectura rs i rt Lectura rs Lectura rs i rt Lectura rs i rt Registres


(lectura)

Clcul adrea Clcul adrea Clcul adrea salt


Clcul resultat ALU
memria memria i condici

Lectura en Mem. Escriptura en Memria


Estructura de Computadors

dades Mem. dades Dades

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

Instruccions de clcul i salt: res


ER: Etapa d'escriptura de registre
Instruccions de clcul i Load : escriptura del registre
Store i instruccions de salt: res
17
Segmentaci de la Ruta de Dades
Els registres de segmentaci
En calen quatre
Cadascun est estructurat en subregistres
Nomenclatura
Nom de cada registre d'etapa: el de les etapes que separa
Ex.: registre LI/DI
Per a referir-nos als subregistres: reg.subreg
Ex.: LI/DI.RI = registre d'instrucci de la instrucci que est en l'etapa DI
Per a referir-nos a un rang de bits d'un subregistre: subndexs
Ej.: LI/DI.RI31..26 = codi d'operaci de la instrucci continguda en DI
o b: LI/DI.RI[Codop]
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

20..16 (rt tipus I)

15..11 (rd tipus R)


Rd Rt K T S DI/EX

MUX
MUX
EX

L
A

Re T ALUout EX/M
M

Mem.
Dades

Re MEMout ALUout M/ER

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

instrucci condici de salt op rs rt distncia


beq rs,rt,eti rs=rt 31 25 20 15 0
bne rs,rt,eti rs<>rt
bgez rs,eti rs>=0 .text 0x00400000
bgtz rs,eti rs>0 beq $t0, $0, etiq

Codifica un
sll $t3, $t2, 3
blez rs,eti rs<=0

+3
xor $t4, $0, $0
bltz rs,eti rs<0
Estructura de Computadors

ori $t4, $t3, $t1


etiq: add $t0, $0, $0
.end

adrea objectiu adrea segent


distncia =
4
20
Clcul Adrea de Salt
S'ha de calcular l'adrea absoluta de salt
adrea_objectiu = (PC+ 4) + ext_de_signe(distncia)*4

El clcul es pot fer en EX amb un sumador especfic addicional

Necessitat de transmetre el valor PC + 4 des de LI fins EX

Si la condici sacompleix, l'etapa M escriu adrea_objectiu en


el PC

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

Ha de subministrar dos indicadors:


Z (resultat igual a zero)
S (bit de signe del resultat)

instrucci condici op. ALU COND


beq a=b resta Z
bne a<>b resta Z
bgez a>=0 identitat S
S Z = S + Z
Estructura de Computadors

bgtz a>0 identitat


blez a<=0 identitat S+Z
bltz a<0 identitat S

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

Implementaci amb un MUX


El descodificador d'instrucci, en l'etapa DI, calcula la posici del MUX per a
cada instrucci
Descodi-
codi
instrucci codi ficador
0 0
clcul, l/s, etc. 0 Z
Z 1
beq 1 Z 2
S Cond
bne 2 S 3
S+Z 4MUX

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

20..16 (rt tipus I)


Rt

cions
MUX

Re
Re

Reg dest
15..11 (rd tipus R)
Rd
LI
Etapa de Lectura dInstrucci Clk

MxPC (ve de EX/M.Cond)

(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

LInst: Llegir en la memria d'instruccions


Memria
PCIn i LInst sn constants (podem prescindir d'elles) Instruc-

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

Calcular els senyals de control per a les

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

Instruccions load/store: accs a memria

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

EMem: activa l'escriptura de la memria


Mem

MEMout
Dades

T
Estructura de Computadors

Re
Re
28
Etapa dEscriptura en Registres
ER
Funcions

M/ER
Instruccions de clcul: escriptura de resultats

Instruccions de load: escriptura del valor llegit de


la memria

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

MxER: Selecciona el valor que shi escriu

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

20..16 (rt tipus I)


Rt

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

5 or and sub add lw


Diagrama
6 ? or and sub add temps/etapes
7 ? ? or and sub
8 ? ? ? or and 33
Prestacions del Procesador Segmentat
Generalitats
Equaci del temps d'execuci d'un programa en un processador en
rgim estacionari (no t en compte el temps domplir les etapes) :

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

Ens preocuparem particularment dels factors I i CPI

Particularitzarem aquests conceptes al cas del processador segmentat

34
Prestacions del Procesador Segmentat
CPI
ndex tpic que sutilitza per a quantificar les prestacions del processador

Representa el nombre mitj de cicles per instrucci

CPI>1 (el pipeline necessita k-1 cicles per a arribar a lltima etapa; cicles > I)

cicles

k-1 cicles (k-1)

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

CPI ideal = 1 (cota inferior del CPI) I


35
Introducci als Conflictes
Conflictes o riscos
Sn situacions produdes per la segmentaci del processador en qu
lexecuci duna o ms instruccions no pot avanar
Si el processador no estiguera segmentat, desapareixerien

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

disposar duna nica memria


Modificaci del software (instruccions NOP)
de codi i de dades.

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

El valor de $3 sescriu en el banc en el cicle 7; per ha de ser llegit per sw en el cicle 5

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

Exemple: compilaci de c=a+b;

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

Podem calcular el CPI a partir del nombre de cicles de parada (P)

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

Detenci (cicles despera) 12 4


CPI = =2
4

El temps dexecuci en rgim estacionari:


Estructura de Computadors

Tprograma = 4 instruccions * 2 CPI * Tcicle

42
Lgica de detecci de la dependncia
Detecci:
EX[LMem]=0 & EX[EMem]=0 & (la instrucci 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
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

els mateixos resultats)


La complexitat de la lgica dinserci de cicles de parada podria allargar el
retard de les etapes i caldria baixar la freqncia del rellotge

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

Freqncia daparici de les instruccions de salt: 10 al 20% del codi


Depn del tipus de processador, de les tcniques de compilaci i del
programa en concret

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

20..16 (rt tipus I)


Rt

cions
MUX

Re
Re

Reg dest
15..11 (rd tipus R)
Rd
Conflictes de Control
Vocabulari
Instrucci objectiu (target): instrucci destinatria del salt

Les bifurcacions salten si sacompleix una condici


Si bifurquen, direm que el salt s efectiu (taken)
En cas contrari, direm que el salt s no efectiu (not taken)
Una instrucci de salt condicional relaciona tres grups dinstruccions:

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

4 segent2 segent1 bifurcaci prvia ?


5 segent3 segent2 segent1 bifurcaci prvia
6 objectiu segent3 segent2 segent1 bifurcaci
50
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
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

Les solucions conservatives (inserci d'instruccions NOP o


cicles d'espera) no permeten millorar el rendiment del
processador.
Para no tenir cicles improductius el compilador pot trobar
instruccions tils en lloc de NOP. Aix suposa re-organitzar el
Estructura de Computadors

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)

beq BI DI EX M ER add $3,$1,$4


or $5,$6,$4
lw BI DI EX L1:sw $6,50($4)

add BI DI Predicci errnia


Cicles extra consumits
or BI Requereix restaurar lestat original
Estructura de Computadors

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)

beq BI DI EX M ER add $3,$1,$4


or $5,$6,$4
lw BI DI EX M ER L1:sw $6,50($4)

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

Les tcniques de predicci de salt van adreades a aix


Exemples de Segmentaci Bsica
La segmentaci bsica en els processadors comercials
El model de segmentaci en cinc etapes s la base del disseny dels
processadors moderns (excepte la famlia Intel x86)
Exemples:
MIPS R2000
Sun SPARC V7
Hewlett Packard Precision Architecture (HP-PA)
Famlia Intel x86
80486: tamb estava segmentat en 5 etapes, per amb diferent organitzaci
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

La ruta de dades pot patir conflictes estructurals


Exemple: qu passa si van seguides dues instruccions de CF?

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

Exemple amb n=2 (CPI ideal = 0.5, IPC ideal =2)

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

En reduir el joc d'instruccions i homogenetzar el format:


Les instruccions sexecuten ms rpidament

La unitat de control s ms simple, rpida i ocupa menys espai

Hi ha ms espai del xip per a incloure ms registres i memria cau

La segmentaci pot ser ms eficient

CISC redueix I a costa d'incrementar el CPI


Estructura de Computadors

RISC redueix el CPI tot augmentant I


Temps cicles instruccions
= Tcicle
programa instrucci programa
68
CISC vs RISC: Dues Estratgies de Disseny
Multiplicaci de dos nombres que es troben ubicats en memria;
el producte es deixa en l'adrea del primer operand:
adr1: adrea de memria de loperand 1

adr2: adrea de memria de loperand 2

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

You might also like