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 dopo una latenza NxT completo ogni processo in un tempo T Speed – Up: N meno complesse meno costose facilmente riproducibili Unità Operative centralizzato non troppo complesso Unità di Controllo complessità proporzionale a N Architettura 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 2 3 4 5 1 5 3 2 4 1 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 Risultato dell’esecuzione 4 Istr. 3 3 Istr. Fasi Non Bilanciate e Atomiche 2 Istr. 1 4 1 Istr. 2 5 2 3 4 5 1 5 3 2 4 1 Processore Pipeline con 5 unità operative parallele 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 5 4 3 2 1 Fasi Non Bilanciate e Atomiche Contesto Sincrono La Fase 3 più Lenta fissa la latenza T anche per le altre Fasi NO 5 4 3 2 1 4 1 2 3 5 1 4 1 2 3 5 2 4 1 2 3 5 3 4 1 2 3 5 4 4 1 2 3 5 5 T 4 1 2 3 5 4 1 2 3 5
Fase unione di più fasi atomiche Bilanciamento delle Fasi Fase unione di più fasi atomiche 5 4 3 2 1 Fasi Non Bilanciate e Atomiche 2’ 1’ 3’ Fasi Bilanciate e Non Atomiche Hardware più semplice (costruisco 3 fasi indipendenti) Basso Speed-Up (sovrappongo fino a 3 istruzioni) UNDER – Pipeline (DSP)
SottoFasi come scomposizione di Fasi Bilanciamento delle Fasi SottoFasi come scomposizione di Fasi 5 4 3 2 1 Fasi Non Bilanciate e Atomiche 5 4b 4a 3c 3b 3a 2 1b 1a 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 5 4 3 2 1 Fasi Non Bilanciate e Atomiche 5 4 3 2 1 Duplico le risorse ma ne Dimezzo la latenza Aumenta lo Speed-Up Complico poco l’architettura
T minimo è intimamente legato alla tecnologia utilizzata 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 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) [ I F ]
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 ) 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. [ I D ]
Il processore Deluxe - DLX Fasi dell’Esecuzione dell’Istruzione Execution/effective address cycle: Memory reference: ALUOutput <- A + Imm Register - Register (ALU): ALUOutput <- A op B Register - Immediate (ALU): ALUOutput <- A op Imm Branch: ALUOutput <- NPC + Imm Cond <- ( A op 0 ) [ E X ] The ALU performs the operation specified by the opcode on the value in register A and on the value in register Imm. The result is placed in the register ALUOutput. The ALU adds the NPC to the sign-extended immediate value in Imm to compute the address of the branch target. Register A, which has been read in the prior cycle, is checked to determine whether the branch is taken. The comparison operation op is the relational operator determined by the branch opcode (e.g. op is "==" for the instruction BEQZ) The ALU performs the operation specified by the opcode on the value in register A and on the value in register B. The result is placed in the register ALUOutput. The ALU adds the operands to form the effective address and places the result into the register ALUOutput
Il processore Deluxe - DLX Fasi dell’Esecuzione dell’Istruzione Memory access/branch completion cycle: [ M E M ] Memory reference: 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 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 [ W B ]
Architettura Pipeline Vector Processor Calcolo Vettoriale su CPU DLX - Pipeline: Calcolo eseguito su CPU parallela Calcolo eseguito su CPU pipeline