資源描述:
《周期與多周期的比較指令流水線》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第一講流水線數(shù)據(jù)通路和控制邏輯第二講流水線冒險(xiǎn)處理第三講高級(jí)流水線技術(shù)Ch7:InstructionPipeline指令流水線第一講流水線數(shù)據(jù)通路和控制日常生活中的流水線處理例子:洗衣服單周期處理器模型和流水線性能比較什么樣的指令集適合于流水線方式執(zhí)行如何設(shè)計(jì)流水線數(shù)據(jù)通路以MIPS指令子集來說明詳細(xì)設(shè)計(jì)取指令部件詳細(xì)設(shè)計(jì)執(zhí)行部件分析每條指令在流水線中的執(zhí)行過程,遇到各種問題:資源沖突寄存器和存儲(chǔ)器的信號(hào)競爭分支指令的延遲指令間數(shù)據(jù)相關(guān)如何設(shè)計(jì)流水線控制邏輯分析每條指令執(zhí)行過程中的控制信號(hào)給出控制器設(shè)計(jì)過程流水線冒險(xiǎn)的概念主要內(nèi)容復(fù)習(xí):ASingleCycleProcessor32ALUct
2、rClkbusWRegWr3232busA32busB555RwRaRb3232-bitRegistersRsRtRtRdRegDstExtenderMuxMux3216imm16ALUSrcExtOpMuxMemtoRegClkDataInWrEn32AdrDataMemory32MemWrALUZero010101InstructionFetchUnitClkInstruction<31:0>JumpBranch<21:25><16:20><11:15><0:15>Imm16RdMainControlopALUControlfuncALUop3RegDstALUSrc:<5:0><31:
3、26>Instr<15:0>Zero3復(fù)習(xí):MultipleCycleProcessorMCP:一個(gè)功能部件在一個(gè)指令周期中可以被使用多次。IdealMemoryWrAdrDinRAdr323232DoutMemWr32ALU3232ALUOpALUControlInstructionReg32IRWr32RegFileRaRwbusWRb5532busA32busBRegWrRsRtMux01RtRdPCWrALUSelAMux01RegDstMux0132PCMemtoRegExtendExtOpMux01320123416Imm32<<2ALUSelBMux10Target32Zero
4、ZeroPCWrCondPCSrcBrWr32IorD復(fù)習(xí):TimingDiagramofaLoadInstructionClkPCRs,Rt,Rd,Op,FuncClk-to-QALUctrInstructionMemoryAccessTimeOldValueNewValueRegWrOldValueNewValueDelaythroughControlLogicbusARegisterFileAccessTimeOldValueNewValuebusBALUDelayOldValueNewValueOldValueNewValueNewValueOldValueExtOpOldValue
5、NewValueALUSrcOldValueNewValueAddressOldValueNewValuebusWOldValueNewDelaythroughExtender&MuxDataMemoryAccessTimeInstructionFetchInstrDecode/Reg.FetchAddressRegWrDataMemoryRegisterFileWriteTime132LaundryExampleAnn,Brian,Cathy,Daveeachhaveoneloadofclothestowash,dry,andfoldWashertakes30minutesDryerta
6、kes40minutes“Folder”takes20minutesABCDPipelining:It’sNatural!一個(gè)日常生活中的例子—洗衣服如果讓你來管理洗衣店,你會(huì)如何安排?SequentialLaundry(串行方式)串行方式下,4批衣服需要花費(fèi)6小時(shí)(4x(30+40+20)=360分鐘)N批衣服,需花費(fèi)的時(shí)間為Nx(30+40+20)=90N如果用流水線方式洗衣服,則花多少時(shí)間呢?ABCD3040203040203040203040206PM7891011MidnightTaskOrderTimePipelinedLaundry:(StartworkASAP)串行方式為6小
7、時(shí),N批則為90N分鐘ABCD6PM7891011MidnightTaskOrderTime304040404020只需30+4x40+20=210分(3.5小時(shí))如果有N批衣服呢?所花時(shí)間為:30+Nx40+20分鐘假定每一步時(shí)間均衡,則比串行方式提高約3倍!流水方式下,所花時(shí)間主要與最長階段時(shí)間有關(guān)!復(fù)習(xí):Load指令的5個(gè)階段Ifetch(取指):從指令存儲(chǔ)器取指令并計(jì)算PC+4(用到哪些部件?)Reg