La Tecnica PIPELINE
Il DLX - Pipeline
OVERVIEW






Significato
Presupposti Operativi
 Sincronismo
Presupposti per una Pipeline efficiente
 Bilanciamento delle fasi
 Under e Super Pipeline
Vantaggi
Svantaggi
Pipeline nel processore Deluxe
Significato
Pipeline come una Catena di Montaggio
N: num Unità Operative
T: tempo massimo per operazione
SpeedOperative
– Up: N
Unità
dopo
unacomplesse
latenza NxT
meno
completo
processo
menoogni
costose
in un tempo
T
facilmente
riproducibili
Unità
Architettura
di Controllo
centralizzato
complessità
non
troppo complesso
proporzionale
aN
Invece di utilizzare piu unità operative specializzate su tutte le fasi
dell’intero processo impiega più unità operative indipendenti, non
interscambiaili e specializzate su diverse fasi dell’intero processo
Significato
Pipeline come una Catena di Montaggio
Il processore è costruito da più Unità Differenti e Indipendenti che lavorano:
 in Parallelo su fasi differenti di istruzioni differenti
 in Serie su diverse fasi dell’esecuzione della medesima istruzione
Ogni unità preleva dall’unità precedente l’istruzione trasformata e la trasforma
ulteriormente passandola all’unità successiva
Programma
4 Istr.
3 Istr.
2 Istr.
1 Istr.
21
5
4
3
Risultato
dell’esecuzione
Fasi Non Bilanciate e Atomiche
1
2
3
4
5
Processore Pipeline con 5 unità operative parallele
51
4
3
2
Le diverse Fasi dell’Esecuzione le possiamo identificare in
corrispondenza delle differenti unità o macro unità hardware (Memoria,
ALU, Registri ...) interessate dall’esecuzione dell’istruzione
Gestione della Pipeline
Presupposti Operativi: Sincronismo
Fasi Non Bilanciate e Atomiche
2
1
3
4
5
La 1Fase
3 più
Lenta
fissa la
2
3
4 5
NO
latenza T anche
per
le
altre
Fasi
1 2
3
4 5
Contesto
Sincrono
2
1
1
1
2
1
3
2
1
2
3
T
T
4
4
T
4
4
5
5
3
2
1
3
4
3
2
1
5
5
4
3
2
5
4
5
3
1
2
1
4
5
3
2
4
5
3
5
Bilanciamento delle Fasi
Fase unione di più fasi atomiche
Fasi Non Bilanciate e Atomiche
1
2
1’
3
2’
4
5
3’
Fasi Bilanciate e Non Atomiche
Hardware più semplice (costruisco 3 fasi indipendenti)
Basso Speed-Up (sovrappongo fino a 3 istruzioni)
UNDER – Pipeline (DSP)
Bilanciamento delle Fasi
SottoFasi come scomposizione di Fasi
Fasi Non Bilanciate e Atomiche
1
1a
2
1b
2
3
4
3a 3b 3c 4a 4b
5
5
Fasi Bilanciate e Atomiche
Hardware più complesso (costruisco 9 fasi indipendenti)
Alto Speed-Up (sovrappongo fino a 9 istruzioni)
SUPER – Pipeline
Bilanciamento delle Fasi
Ridondanza Hardware
Fasi Non Bilanciate e Atomiche
1
2
3
4
5
4
5
3
1
2
3
Duplico le risorse ma ne Dimezzo la latenza
Aumenta lo Speed-Up
Complico poco l’architettura
Vantaggi
La tecnica pipeline (con K fasi) al crescere del numero
di istruzioni (N>>K) impiega un tempo complessivo di
esecuzione N x T (dove T è il tempo di fase)
Ridurre il tempo di fase T (aumentando la lunghezza
della pipeline k oppure utilizzando la ridondanza
hardware) fa aumentare lo Speed-Up del processore
T minimo è intimamente legato alla tecnologia utilizzata
Svantaggi
Aumentare la lunghezza della pipeline k fa sì
aumentare lo Speed-Up del processore ma:
Aumenta il numero di Conflitti (rallentandone
l’esecuzione) e aumenta la Gestione del processore (che
volutamente non risolve ogni tipo di conflitto)
Il processore Deluxe - DLX
Architettura Pipeline a 5 fasi
Il processore Deluxe - DLX
Fasi dell’Esecuzione dell’Istruzione
Instruction Fetch cycle:
IR
<- MEM [PC]
NPC <- PC + 4
[IF]
Operation:
• Send out the PC and fetch the instruction from memory into the
instruction register (IR)
• Increment the PC by 4 to address the next sequential instruction
• The IR is used to hold the instruction that will be needed on
subsequent clock cycles
• The NPC is used to hold the next sequential PC (program counter)
Il processore Deluxe - DLX
Fasi dell’Esecuzione dell’Istruzione
Instruction Decode/register fetch cycle:
A <- Regs [IR6..10]
B <- Regs [IR11..15]
Imm <- ( (IR16)16 ## IR16..31 )
[ID]
Operation:
- Decode the instruction and access the register file to read the registers.
- the output of the general-purpose registers are read into two temporary registers (A and
B) for use in later clock cycles.
- the lower 16 bits of the IR are also sign-extended and stored into the temporary register
IMM, for use in the next cycle.
- decoding is done in parallel with reading registers, which is possible because these
fields are at a fixed location in the DLX Instruction Format. This technique is known as
fixed-field decoding.
Il processore Deluxe - DLX
Fasi dell’Esecuzione dell’Istruzione
Execution/effective address cycle:
Memory reference:
ALUOutput <- A + Imm
[E X ]
Register - Register (ALU):
The ALU performs the
The ALU adds the
operation specified by the
operands to form the
Register - Immediate (ALU):
opcode
ononthe
value
in
register
opcode
thebeen
value
in
register
Register
A,
which
has
read
in
the
prior cycle, is
effective
address
and
ALUOutput <- A op Imm
determine
whetherin
the
branch
is taken.
Aand
andtoon
the
register
B.
Achecked
thevalue
value
in
register
places
the isresult
into
the
The
result
placed
in
the
Branch:
The
result
isrelational
placed
The Imm.
comparison
operation
op is the
operator
ALUOutput
determinedregister
by the branch
opcode (e.g. op is "==" for the
register
ALUOutput.
in the register
ALUOutput <- NPC + Imm
instructionALUOutput.
BEQZ)
ALUOutput <- A op B
Cond <- ( A op 0 )
The ALU adds the NPC to the sign-extended immediate
The ALU performs the
value in Imm to compute the address of the branch
target.
operation specified
by the
Il processore Deluxe - DLX
Fasi dell’Esecuzione dell’Istruzione
Memory access/branch completion cycle:
Memory reference:
[ME M]
LMD <- Mem [ALUOutput] or Mem [ALUOutput] <- B
Operation:
- Access memory if needed
- If the instruction is load , data returns from memory and is placed in the LMD (load memory data) register
- If the instruction is store, data from the B register is written into memory.
- In either case the address used is the one computed during the prior cycle and stored in the register
ALUOutput
Branch:
if (cond) PC <- ALUOutput
else PC <- NPC
Operation:
- If the instruction branches, the PC is replaced with branch destination address in the register ALUOutput
- Otherwise, PC is replaced with the incremented PC in the register NPC
Il processore Deluxe - DLX
Fasi dell’Esecuzione dell’Istruzione
Write-back cycle:
Register-Register (ALU):
Regs [IR16..20] <- ALUOutput
[WB]
Register-Immediate (ALU):
Regs [IR11..15] <- ALUOutput
Load instruction:
Regs [IR11..15] <- LMD
Operation:
- Write the result into the register file, whether it comes from the memory(LMD) or
from ALU (ALUOutput)
- the register destination field is in one of two positions depending on the opcode
Architettura Pipeline
Vector Processor
Calcolo Vettoriale su CPU DLX - Pipeline:
Calcolo eseguito
su CPU parallela
Calcolo eseguito
su CPU pipeline
Scarica

Document