11 Pipelinedmips.Pdf

11 Pipelinedmips.Pdf

CSEE 3827: Fundamentals of Computer Systems Pipelined MIPS Implementation Single-Cycle CPU Performance Issues • Longest delay determines clock period • Critical path: load instruction • instruction memory → register file → ALU → data memory → register file • Not feasible to vary clock period for different instructions • We will improve performance by pipelining 2 Pipelining Laundry Analogy 0- !- 4IME 4ASK ORDER ! " # $ 0- !- 4IME 4ASK ORDER ! " # $ 1, Ê{°ÓxÊ / iÊ>Õ`ÀÞÊ>>}ÞÊvÀÊ««i}° !NN "RIAN #ATHY AND $ON EACH HAVE DIRTY CLOTHES TO BE WASHED DRIED FOLDED AND PUT AWAY 4HE WASHER DRYER hFOLDER v AND hSTORERv EACH TAKE MINUTES FOR THEIR TASK 3EQUENTIAL LAUNDRY TAKES HOURS FOR LOADS OF WASH WHILE PIPELINED LAUNDRY TAKES JUST HOURS 7E SHOW THE PIPELINE STAGE OF DIFFERENT LOADS OVER TIME BY SHOWING COPIES OF THE FOUR RESOURCES ON THIS TWO DIMENSIONAL TIME LINE BUT WE REALLY HAVE JUST ONE OF EACH RESOURCE #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED 3 MIPS Pipeline • Five stages, one step per stage • IF: Instruction fetch from (instruction) memory • ID: Instruction decode and register read (register file read) • EX: Execute operation or calculate address (ALU) or branch condition + calculate branch address • MEM: Access memory operand (memory) / adjust PC counter • WB: Write result back to register (reg file again) • Note: not every instruction needs every stage 4 MIPS Pipeline Illustration 1 Grey: used by 4IME instruction (RHS = read, ADD S T T )& )$ %8 -%- 7" LHS = written) 1, Ê{°ÓnÊ À>« V>ÊÀi«ÀiÃiÌ>ÌÊvÊÌ iÊÃÌÀÕVÌÊ««ii]ÊÃ>ÀÊÊëÀÌÊÌÊÌ iÊ >Õ`ÀÞÊ ««iiÊ Ê }ÕÀiÊ {°Óx°Ê (ERE WE USE SYMBOLS REPRESENTING THE PHYSICAL RESOURCES WITH THE ABBREVIATIONS FOR PIPELINE STAGES USED THROUGHOUT THE CHAPTER 4HE SYMBOLS FOR THE lVE STAGES )& FOR THE INSTRUCTION FETCH STAGE WITH THE BOX REPRESENTING INSTRUCTION MEMORY )$ FOR THE INSTRUCTION DECODEREGISTER lLE READ STAGE WITH THE DRAWING SHOWING THE REGISTER lLE BEING READ %8 FOR THE EXECUTION STAGE WITH THE DRAWING REPRESENTING THE !,5 -%- FOR THE MEMORY ACCESS STAGE WITH THE BOX REPRESENTING DATA MEMORY AND 7" FOR THE WRITE BACK STAGE WITH THE DRAWING SHOWING THE REGISTER lLE BEING WRITTEN 4HE SHADING INDICATES THE ELEMENT IS USED BY THE INSTRUCTION (ENCE -%- HAS A WHITE BACKGROUND BECAUSE ADD DOES NOT ACCESS THE DATA MEMORY 3HADING ON THE RIGHT HALF OF THE REGISTER lLE OR MEMORY MEANS THE ELEMENT IS READ IN THAT STAGE AND SHADING OF THE LEFT HALF MEANS IT IS WRITTEN IN THAT STAGE (ENCE THE RIGHT HALF OF )$ IS SHADED IN THE SECOND STAGE BECAUSE THE REGISTER lLE IS READ AND THE LEFT HALF OF 7" IS SHADED IN THE lFTH STAGE BECAUSE THE REGISTER lLE IS WRITTEN #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED 5 MIPS Pipeline Illustration 2 4IME IN CLOCK CYCLES 0ROGRAM EXECUTION ## ## ## ## ## ## ## ORDER IN INSTRUCTIONS LW )- 2EG !,5 $- 2EG LW )- 2EG !,5 $- 2EG LW )- 2EG !,5 $- 2EG 1, Ê{°Î{Ê ÃÌÀÕVÌÃÊLi}ÊiÝiVÕÌi`ÊÕÃ}ÊÌ iÊÃ}iVÞViÊ`>Ì>«>Ì ÊÊ}ÕÀiÊ{°ÎÎ]Ê >ÃÃÕ}Ê ««ii`Ê iÝiVÕ̰ 3IMILAR TO &IGURES THROUGH THIS lGURE PRETENDS THAT EACH INSTRUCTION HAS ITS OWN DATAPATH AND SHADES EACH PORTION ACCORDING TO USE 5NLIKE THOSE lGURES EACH STAGE IS LABELED BY THE PHYSICAL RESOURCE USED IN THAT STAGE CORRESPONDING TO THE PORTIONS OF THE DATAPATH IN &IGURE )- REPRESENTS THE INSTRUCTION MEMORY AND THE 0# IN THE INSTRUCTION FETCH STAGE 2EG STANDS FOR THE REGISTER lLE AND SIGN EXTENDER IN THE INSTRUCTION DECODEREGISTER lLE READ STAGE )$ AND SO ON 4O MAINTAIN PROPER TIME ORDER THIS STYLIZED DATAPATH BREAKS THE REGISTER lLE INTO TWO LOGICAL PARTS REGISTERS READ DURING REGISTER FETCH )$ AND REGISTERS WRITTEN DURING WRITE BACK 7" 4HIS DUAL USE IS REPRESENTED BY DRAWING THE UNSHADED LEFT HALF OF THE REGISTER lLE USING DASHED LINES IN THE )$ STAGE WHEN IT IS NOT BEING WRITTEN AND THE UNSHADED RIGHT HALF IN DASHED LINES IN THE 7" STAGE WHEN IT IS NOT BEING READ !S BEFORE WE ASSUME THE REGISTER lLE IS WRITTEN IN THE lRST HALF OF THE CLOCK CYCLE AND THE REGISTER lLE IS READ DURING THE SECOND HALF #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED 6 Pipeline Performance 1 • Assume time for stages is • 100ps for register read or write • 200ps for other stages • Compare pipelined datapath to single-cycle datapath Instr IF ID EX MEM WB Total (PS) lw 200 100 200 200 100 800 sw 200 100 200 200 700 R-format 200 100 200 100 600 beq 200 100 200 500 7 Pipeline Performance 2 0ROGRAM EXECUTION 4IME ORDER IN INSTRUCTIONS )NSTRUCTION $ATA LW 2EG !,5 2EG FETCH ACCESS Single-cycle Tclock = 800ps )NSTRUCTION $ATA LW 2EG !,5 2EG PS FETCH ACCESS LW )NSTRUCTION PS FETCH Total time: 2400 ps PS 0ROGRAM EXECUTION 4IME ORDER IN INSTRUCTIONS )NSTRUCTION $ATA 2EG !,5 2EG LW FETCH ACCESS )NSTRUCTION $ATA 2EG !,5 2EG Pipelined Tclock = 200ps LW PS FETCH ACCESS )NSTRUCTION $ATA 2EG !,5 2EG LW PS FETCH ACCESS PS PS PS PS PS Total time: 1400 ps 1, Ê{°ÓÇÊ -}iVÞVi]Ê««ii`ÊiÝiVÕÌÊÊÌ«ÊÛiÀÃÕÃÊ««ii`ÊiÝiVÕÌÊÊ LḬ̀ "OTH USE THE SAME HARDWARE COMPONENTS WHOSE TIME IS LISTED IN &IGURE )N THIS CASE WE SEE A FOURFOLD SPEED UP ON AVERAGE TIME BETWEEN INSTRUCTIONS FROM PS DOWN TO PS #OMPARE THIS lGURE TO &IGURE &OR THE LAUNDRY WE ASSUMED ALL STAGES WERE EQUAL )F THE DRYER WERE SLOWEST THEN THE DRYER STAGE WOULD SET THE STAGE TIME 4HE PIPELINE STAGE TIMES OF A COMPUTER ARE ALSO LIMITED BY THE SLOWEST RESOURCE EITHER THE !,5 OPERATION OR THE MEMORY ACCESS 7E ASSUME THE WRITE TO THE REGISTER lLE OCCURS IN THE lRST HALF OF THE CLOCK CYCLE AND THE READ FROM THE REGISTER lLE OCCURS IN THE SECOND HALF 7E USE THIS ASSUMPTION THROUGHOUT THIS CHAPTER #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED 8 Pipeline Speedup • Speedup due to increased throughput. • If all stages are balanced (i.e., all take the same time) Pipeline instr. completion rate = Single-cycle instr. completion rate * Number of stages • If not balanced, speedup is less 9 MIPS Pipelined Datapath MIPS Pipelined Datapath )& )NSTRUCTION FETCH )$ )NSTRUCTION DECODE %8 %XECUTE -%- -EMORY ACCESS 7" 7RITE BACK REGISTER FILE READ ADDRESS CALCULATION !DD !DD !$$ RESULT 3HIFT LEFT 2EAD 2EAD - REGISTER DATA U 0# !DDRESS :ERO X 2EAD !,5 REGISTER !,5 !DDRESS )NSTRUCTION RESULT 2EAD 2EGISTERS - DATA 7RITE 2EAD $ATA - U )NSTRUCTION REGISTER DATA -EMORY U MEMORY X X 7RITE MEM DATA 7RITE DATA 3IGN EXTEND WB 1, Ê{°ÎÎÊ / iÊÃ}iVÞViÊ`>Ì>«>Ì ÊvÀÊ-iVÌÊ{°{Ê­Ã>ÀÊÌÊ}ÕÀiÊ{°£Ç®° %ACH STEP OF THE INSTRUCTION CAN BE MAPPED ONTO THE DATAPATH FROM LEFT TO RIGHT 4HE ONLY EXCEPTIONS ARE THE UPDATE OF THE 0# AND THE WRITE BACK STEP SHOWN IN COLOR WHICH SENDS EITHER THE !,5 RESULT OR THE DATA FROM MEMORY TO THE LEFT TO BE WRITTEN INTO THE REGISTER lLE .ORMALLY WE USE COLOR LINES FOR CONTROL BUT THESE ARE DATA LINES #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED 11 Pipeline registers • Need registers between stages, to hold information produced in previous cycle )&)$ )$%8 %8-%- -%-7" !DD !DD !DD RESULT 3HIFT LEFT - U 0# !DDRESS 2EAD X REGISTER 2EAD DATA )NSTRUCTION 2EAD :ERO REGISTER )NSTRUCTION !,5 !,5 2EAD 2EGISTERS 2EAD MEMORY RESULT !DDRESS DATA 7RITE - DATA - REGISTER U U $ATA X 7RITE X MEMORY DATA 7RITE DATA 3IGN EXTEND 1, Ê{°ÎxÊ / iÊ««ii`ÊÛiÀÃÊvÊÌ iÊ`>Ì>«>Ì ÊÊ}ÕÀiÊ{°Îΰ 4HE PIPELINE REGISTERS IN COLOR SEPARATE EACH PIPELINE STAGE 4HEY ARE LABELED BY THE STAGES THAT THEY SEPARATE FOR EXAMPLE THE lRST IS LABELED )&)$ BECAUSE IT SEPARATES THE INSTRUCTION FETCH AND INSTRUCTION DECODE STAGES 4HE REGISTERS MUST BE WIDE ENOUGH TO STORE ALL THE DATA CORRESPONDING TO THE LINES THAT GO THROUGH THEM &OR EXAMPLE THE )&)$ REGISTER MUST BE BITS WIDE BECAUSE IT MUST HOLD BOTH THE BIT INSTRUCTION FETCHED FROM MEMORY AND THE INCREMENTED BIT 0# ADDRESS 7E WILL EXPAND THESE REGISTERS OVER THE COURSE OF THIS CHAPTER BUT FOR NOW THE OTHER THREE PIPELINE REGISTERS CONTAIN AND BITS RESPECTIVELY #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED 12 IF for Load 13 ID for Load 14 EX for Load 15 MEM for Load 16 WB for Load wrong register number! 17 Corrected Datapath for Load )&)$ )$%8 %8-%- -%-7" !DD !DD !DD RESULT 3HIFT LEFT - U 0# !DDRESS 2EAD X REGISTER 2EAD DATA )NSTRUCTION 2EAD :ERO )NSTRUCTION REGISTER !,5 2EGISTERS !,5 2EAD 2EAD !DDRESS MEMORY RESULT DATA 7RITE DATA - - REGISTER U U $ATA 7RITE MEMORY X X DATA 7RITE DATA 3IGN EXTEND 1, Ê{°{£Ê / iÊVÀÀiVÌi`Ê««ii`Ê`>Ì>«>Ì ÊÌÊ >`iÊÌ iÊ>`ÊÃÌÀÕVÌÊ«À«iÀÞ°Ê4HE WRITE REGISTER NUMBER NOW COMES FROM THE -%-7" PIPELINE REGISTER ALONG WITH THE DATA 4HE REGISTER NUMBER IS PASSED FROM THE )$ PIPEÊSTAGE UNTIL IT REACHES THE -%-7" PIPELINE REGISTER ADDING lVE MORE BITS TO THE LAST THREE PIPELINE REGISTERS 4HIS NEW PATH IS SHOWN IN COLOR #OPYRIGHT Ú %LSEVIER )NC !LL RIGHTS RESERVED (A single-cycle pipeline diagram) 18 Pipeline Operation • Cycle-by-cycle flow of instructions through the pipelined datapath • “Single-clock-cycle” pipeline diagram • Shows pipeline usage in a single cycle • Highlight resources used • c.f. “multi-clock-cycle” diagram • Graph of operation over time • We’ll look at “single-clock-cycle” diagrams for load 19 Single-Cycle Pipeline Diagram • State of pipeline in a given cycle ADD LW ADD SUB LW )NSTRUCTION FETCH )NSTRUCTION DECODE %XECUTION -EMORY 7RITE BACK )&)$ )$%8 %8-%- -%-7" !DD !DD !DD RESULT 3HIFT LEFT - U 0# !DDRESS 2EAD X N REGISTER 2EAD DATA 2EAD :ERO REGISTER )NSTRUCTION )NSTRUCTIO !,5 !,5 2EAD 2EGISTERS 2EAD MEMORY RESULT !DDRESS DATA 7RITE DATA - - REGISTER U U $ATA 7RITE MEMORY X X DATA 7RITE DATA 3IGN EXTEND 1, Ê{°{xÊ / iÊÃ}iVVVÞViÊ`>}À>ÊVÀÀië`}ÊÌÊVVÊVÞViÊxÊvÊÌ iÊ««iiÊÊ}ÕÀiÃÊ{°{ÎÊ>`Ê{°{{°Ê !S YOU CAN SEE A SINGLE CLOCK CYCLE lGURE IS A VERTICAL SLICE THROUGH A MULTIPLE CLOCK CYCLE

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    62 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us