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