




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
WilliamStallings
ComputerOrganization
andArchitecture
8thEdition第12章處理器結(jié)構(gòu)與功能CPU組織結(jié)構(gòu)CPU必須做的事情有:取指令
(Fetchinstructions)解釋指令
(Interpretinstructions)取數(shù)據(jù)
(Fetchdata)處理數(shù)據(jù)
(Processdata)寫數(shù)據(jù)
(Writedata)CPU與系統(tǒng)總線CPU內(nèi)部結(jié)構(gòu)寄存器CPU必須擁有一些工作區(qū)
(即臨時存儲空間)這些臨時存儲空間被稱為寄存器寄存器的數(shù)量和功能隨著處理器的設(shè)計的不同而變化寄存器是決定處理器設(shè)計的重要因素在分級存儲器體系中處于最高級用戶可見存儲器(UserVisibleRegisters)通用數(shù)據(jù)地址條件代碼通用寄存器(GeneralPurposeRegisters)(1)可能有真正通用的意義可能有某些限制在某些情況下可作數(shù)據(jù)和尋址累加器尋址分段尋址通用寄存器(2)利用通用寄存器的通用性可提高程序員的可選擇性和靈活性可能增大指令的體積和復雜度通用存儲器用于特殊用途減小指令,使得指令更快指令的靈活性降低一般需要多少通用寄存器?8到32個數(shù)量越少=更多的存儲器引用數(shù)量更多:
不會減少存儲器引用,還會占用處理器的資源參見RISC通用存儲器有多大?足夠大,用以保存完整的地址足夠大,用于保存完整的數(shù)據(jù)詞(word)通常結(jié)合了兩個數(shù)據(jù)寄存器C語言編程中doubleinta;longinta;條件碼寄存器(ConditionCodeRegisters)一組獨立的比特數(shù)例如:
最后一次操作的結(jié)果是0可以被程序讀取例如:
如果是條件為0,則跳轉(zhuǎn)(Jumpifzero)一般不能被程序更改控制和狀態(tài)寄存器
(Control&StatusRegisters)程序計數(shù)器(ProgramCounter/PC)指令計數(shù)器(InstructionRegister/IR)存儲地址寄存器
(MemoryAddressRegister/MAR)存儲緩沖寄存器
(MemoryBufferRegister/MBR)復習:這些寄存器主要作用是哪些?程序狀態(tài)字
(ProgramStatusWord)一組比特數(shù)包含條件碼最后結(jié)果的符號(正/負)零進位等于溢出中斷允許/禁止監(jiān)管監(jiān)管模式(SupervisorMode)Intelringzero內(nèi)核模式允許執(zhí)行有特別權(quán)限的指令由操作系統(tǒng)所使用用戶程序無使用權(quán)限其他寄存器有些寄存器可能用于指向:進程控制塊(參見O/S)中斷向量(參見O/S)特別注意:
CPU的設(shè)計與操作系統(tǒng)的設(shè)計息息相關(guān)微處理器寄存器組織的例子指令周期
(InstructionCycle)復習本書第三章3.2節(jié)已描述過CPU的指令周期間接周期(IndirectCycle)取操作數(shù)可能涉及存儲器間接尋址需要額外的存儲器訪問可將間接地址的讀取看成一個額外的指令子周期有間接周期的指令周期指令周期狀態(tài)圖數(shù)據(jù)流(DataFlow)(取指令)所發(fā)生事件的確切序列取決于CPU的設(shè)計通常來說:取指令周期期間PC存有待取的下一條指令的地址該地址被傳送到MAR該地址同時被放置于地址總線上控制器發(fā)出一個存儲器的讀取請求存儲器將結(jié)果放于數(shù)據(jù)總線,CPU將其復制到MBR,然后傳送到IR與此同時,PC增1,為下次取指令做好準備數(shù)據(jù)流(取數(shù)據(jù))控制器檢查IR的內(nèi)容若有一個使用間接尋址的操作數(shù)指定符,則完成一個間接周期
(indirectcycle)MBR最右的N位是一個地址引用,被傳送至MAR控制器請求一個存儲器讀取操作得到所要求的操作時地址,并送入MBR數(shù)據(jù)流(取指令周期)數(shù)據(jù)流(間接周期)數(shù)據(jù)流(執(zhí)行)執(zhí)行周期有多種表現(xiàn)形式取決于各種不同指令里哪一條當前在IR中該周期可能涉及到存儲器的讀/寫I/O設(shè)備的讀/寫寄存器間的數(shù)據(jù)傳輸ALU的功能使用數(shù)據(jù)流(中斷)簡單的可預期的PC的當前內(nèi)容必須被保存,以便在中斷之后CPU能恢復正常的動作PC的內(nèi)容轉(zhuǎn)送至MBR,被寫入存儲器一個專門的存儲器位置(例如:一個堆棧指針)由控制器載入MBR中斷子程序的地址載入PC下一個指令周期將以取此相應的指令而開始數(shù)據(jù)流(中斷)預取
(Prefetch)取指令訪問主存執(zhí)行指令通常沒有訪問主存的操作在當前指令執(zhí)行的同時,主存能用于取下一條指令該操作被成為指令預取提高性能預取可以提高性能,但性能不能被翻倍:執(zhí)行時間通常要長于取指令時間那么能不能預取很多指令呢?條件轉(zhuǎn)移指令使得待取的下一條指令的地址未知可以通過增加更多的階段(Stage)來提高性能流水線Pipelining取指令(Fetchinstruction/FI)譯碼指令(Decodeinstruction/DI)計算操作數(shù)(Calculateoperands/CO)取操作數(shù)(Fetchoperands/FO)執(zhí)行指令(Executeinstructions/EI)寫操作數(shù)(Writeoperands/WO)有些操作是交疊的兩段指令流水線
(TwoStageInstructionPipeline)指令流水線操作時序圖
條件轉(zhuǎn)移對指令流水線操作的影響6段CPU指令流水線流水線的另一種描述方式指令流水線的加速系數(shù)流水線冒險(PipelineHazards)一個流水線冒險發(fā)生在流水線或流水線某個部分,因為某些條件不允許流水線繼續(xù)進行,而必須停頓(stall)的時候也稱為流水線空泡(pipelinebubble)流水線冒險的類型資源冒險(Resource)數(shù)據(jù)冒險(Data)控制冒險(Control)資源冒險
(ResourceHazards)發(fā)生在兩條(或多條)已進入流水線的指令需要使用相同資源的時候在流水線某個部分,這些指令必須串行執(zhí)行,而不是并行執(zhí)行有時候也稱為結(jié)構(gòu)冒險(structuralhazard)一個例子:假設(shè)一個簡單的五階段流水線其中每階段的執(zhí)行時間是一個時鐘周期理想的運行情況是每個時鐘周期都有一條新指令進入流水線假設(shè)主存只有一個端口所有的指令讀取,以及數(shù)據(jù)裝載和保存都一次只有一個單獨操作假設(shè)沒有高速緩存在該情況下,操作數(shù)的讀取或保存與內(nèi)存讀取指令不能同時進行流水線的取指階段在進行指令I(lǐng)3的讀取之前,必須空閑一個時鐘周期另一個例子:多條指令可以進入執(zhí)行階段,只有一個ALU單元的時候發(fā)生的情況資源冒險的一種解決方法是:增加可用的資源提供訪問主存的多個端口提供多個ALU單元數(shù)據(jù)冒險
(DataHazards)發(fā)生在對一個操作數(shù)位置的訪問出現(xiàn)沖突的時候通??梢匀缦旅枋觯撼绦蛑械膬蓷l指令依次執(zhí)行并且都將訪問同一個內(nèi)存或寄存器操作數(shù)如果兩條指令是嚴格串行的,則沒有問題如果這兩條指令在流水線中運行,則有可能操作數(shù)會不安次序更行例如:以下x86機器指令序列:ADDEAX,EBX /*EAX=EAX+EBXSUBECX,EAX /*ECX=ECX–EAX在時鐘周期5,ADD指令在第5階段結(jié)束前才更新寄存器EAX在時鐘周期4,SUB在執(zhí)行的第2階段就需要EAX的最新值為保證正確操作,流水線必須停頓2個時鐘周期在缺乏專門硬件和特殊的規(guī)避算法的前提下,這一數(shù)據(jù)冒險會導致流水線的運行效率降低數(shù)據(jù)冒險示意圖數(shù)據(jù)冒險的類型寫后讀(Readafterwrite/RAW)或真相關(guān)(truedependency)一條指令改寫一個寄存器或內(nèi)存位置后續(xù)的指令從所改寫的寄存器和內(nèi)存位置讀取數(shù)據(jù)如果寫操作完成前,讀操作就開始,則發(fā)生冒險讀后寫(Writeafterread(RAW))或反相關(guān)(antidependency)一條指令讀一個寄存器或內(nèi)存位置后續(xù)的指令將所改寫該寄存器和內(nèi)存位置的內(nèi)容如果讀操作完成前,寫操作就開始,則發(fā)生冒險寫后寫(Writeafterwrite(WAW))或輸出相關(guān)(outputdependency)兩個指令要改寫同一個寄存器或內(nèi)存位置如果這兩條指令的寫操作發(fā)生次序與期望的相反,則發(fā)生冒險前一頁的例子即RAW冒險另兩種冒險參見第14章資源冒險示意圖控制冒險ControlHazard又稱分支冒險(branchhazard)流水線對分支轉(zhuǎn)移做出了錯誤的預測讀取了后期必須取消的指令處理控制冒險的方法:多個指令流預取轉(zhuǎn)移目標循環(huán)緩沖器分支預測延遲轉(zhuǎn)移分支多個指令流
(MultipleStreams)有兩個流水線預取每一個分支情況到單獨的流水線采納合適的流水線多個流水線導致總線和寄存器的競爭延在原先分支判斷沒有解決之前,可能又有另外的分支指令進入流水線,這需要額外添加指令流預取轉(zhuǎn)移目標
(PrefetchBranchTarget)識別出一個條件分支指令是,除了取此分支指令后的指令外,同時取出轉(zhuǎn)移目標處的指令該目標將被保存至分支指令被執(zhí)行該方法被IBM360/91所使用循環(huán)緩沖器
(LoopBuffer)一個極高速的存儲器由流水線取指階段維護轉(zhuǎn)移發(fā)生前,硬件首先檢查轉(zhuǎn)移目標是否在緩沖器中適用于小循環(huán)或跳轉(zhuǎn)很有效類似一個高速緩存(cache)應用于CRAY-1系統(tǒng)中循環(huán)緩沖器示意圖分支預測
(BranchPrediction)(1)預測絕不發(fā)生
(Predictnevertaken)假設(shè)跳轉(zhuǎn)不發(fā)生總是預取下一條指令應用于68020和VAX11/780系統(tǒng)如果有可能出現(xiàn)頁錯誤(pagefault),VAX則不會在跳轉(zhuǎn)后預取指令(涉及O/S和CPU設(shè)計)預測總是發(fā)生
(Predictalwaystaken)假設(shè)跳轉(zhuǎn)總是發(fā)生總是預取到目標指令分支預測
(2)依操作碼預測(PredictbyOpcode)有些指令更容易引起跳轉(zhuǎn)準確率可達75%發(fā)生/不發(fā)生切換(Taken/Nottakenswitch)根據(jù)歷史記錄預測適用于循環(huán)精度可由兩級或相關(guān)性跳轉(zhuǎn)歷史記錄修正根據(jù)相關(guān)性預測(Correlation-based)在合環(huán)跳轉(zhuǎn)中(loop-closingbranches),可根據(jù)歷史記錄進行預測在更復雜的結(jié)構(gòu)中,跳轉(zhuǎn)方向和與其相關(guān)跳轉(zhuǎn)的方向有相關(guān)性同時運用最近的跳轉(zhuǎn)記錄分支預測
(3)延遲跳轉(zhuǎn)(DelayedBranch)不到萬不得已,不進行跳轉(zhuǎn)需要重新安排指令的順序分支預測流程圖分支預測狀態(tài)圖處理分支指令I(lǐng)ntel80486流水線取指(Fetch)指令由Cache或外部存儲器取來從兩個16字節(jié)預取緩沖器中選擇一個,將指令放入其中一旦舊數(shù)據(jù)唄使用,立即用新數(shù)據(jù)填充緩沖器平均而言,每個緩沖器大約裝入5條指令取指階段的操作獨立于其他階段,以保持預取緩沖器的滿載譯碼階段1(Decodestage1)操作碼和尋址方式信息信息最多只占指令的前三字節(jié)可指揮D2階段獲取指令的剩余信息譯碼階段2(Decodestage2)將操作碼擴展成控制信號控制更復雜尋址方式的計算執(zhí)行(Execute)ALU運算,訪問Cache,更新寄存器寫回(Writeback)更新寄存器和狀態(tài)標志(Flags)將結(jié)果送至Cache和總線接口的寫緩沖中80486指令流水線例子Pentium4寄存器EFLAGS寄存器控制寄存器MMX寄存器映像(Mapping)MMX使用大量64位數(shù)據(jù)類型使用3位寄存器地址字段可支持8個MMX寄存器沒用MMX專用寄存器使用了異名技術(shù)(Aliasing),各浮點寄存器的低64為用來構(gòu)成8個MMX寄存器MMX寄存器映射到浮點寄存器Pentium中斷處理(InterruptProcessing)中斷(Interrupts)可屏蔽中斷(Maskable)不可屏蔽中斷(Nonmaskable)異常(Exceptions)處理器檢測的異常程序異常中斷向量表(Interruptvectortable)每類中斷都指派一個中斷號該中斷號用于索引中斷向量表該表包含256個32位中斷向量5類優(yōu)先級ARM處理器的特征精簡指令(RISC)中等規(guī)模,結(jié)構(gòu)規(guī)整的寄存器組寄存器數(shù)量多余大多數(shù)CISC機器,少于多數(shù)RISC機器數(shù)據(jù)處理遵循裝載/保存模式各種運算只對寄存器中的操作數(shù)進行操作定長、格式統(tǒng)一的指令集32位標準指令集,以及16位壓縮指令集對源操作數(shù)進行位移或循環(huán)位移的預處理單獨的ALU和位移單元只提供了少數(shù)集中尋址模式應用于所有從寄存器和指令地址段裝載/保存地址不使用間接尋址或變址尋址自動遞增、遞減尋址提高程序中循環(huán)的操作性所有指令的執(zhí)行都可帶條件,減低了條件分支的使用減少了流水線清空,提高了流水線效率簡化的ARM結(jié)構(gòu)示意圖ARM處理器組織隨著ARM不同版本延伸出很多組織形式數(shù)據(jù)經(jīng)由數(shù)據(jù)總線在處理器和片外存儲器之間傳遞所傳遞的數(shù)據(jù)元素有兩種類型:裝載/保存指令操作的數(shù)據(jù)項;指取的指令指令先經(jīng)指令譯碼器,然后被執(zhí)行控制單元包括流水線羅技電路,并產(chǎn)生控制信號,送到處理器各個單元數(shù)據(jù)項放入寄存器文件由一組32位寄存器組成以補碼表示的字節(jié)或半字數(shù)據(jù)項通過符號擴展至32位通常有兩個源寄存器和一個結(jié)果寄存器獨立的硬件單元可在做ALU運算之前先做位移或循環(huán)位移操作ARM處理器模式用戶(User)內(nèi)核模式(Kernel)6鐘模式操作系統(tǒng)可以對系統(tǒng)軟件進行定制特定寄存器將用于特定的特別權(quán)限模式更加便利的上下文切換異常模式(Exception)有5中特別權(quán)限模式當特定異常發(fā)生時,即進入對應的異常模式用專用寄存器取代用戶模式下的寄存器可以避免系統(tǒng)崩潰特權(quán)模式(PrivilegedModes)系統(tǒng)模式(SystemMode)沒有異常與用戶模式使用相同的寄存器有可能被。。。中斷監(jiān)管模式(Supervisormode)操作系統(tǒng)運行的模式
當處理器碰到一條軟件中斷指令時,將進入該模式取消模式(Abortmode)出現(xiàn)內(nèi)存錯誤時,進入該模式未定義模式(Undefinedmode)當處理器試圖執(zhí)行一條既不唄主要整數(shù)處理核也不被協(xié)處理器支持的指令時,進入該模式快速中斷模式(Fastinterruptmode)當處理器從指定的快速中斷源接受一個中斷型號時,進入該模式快速中斷服務程序不能唄中斷快速中斷可以中斷一個普通的中斷服務程序中斷模式(Interruptmode)由其他中斷源產(chǎn)生的中斷信號ARM存儲器
組織表 Modes PrivilegedmodesExceptionmodesUserSystemSupervisorAbortUndefinedInterruptFastInterruptR0R0R0R0R0R0R0R1R1R1R1R1R1R1R2R2R2R2R2R2R2R3R3R3R3R3R3R3R4R4R4R4R4R4R4R5R5R5R5R5R5R5R6R6R6R6R6R6R6R7R7R7R7R7R7R7R8R8R8R8R8R8R8_fiqR9R9R9R9R9R9R9_fiqR10R10R10R10R10R10R10_fiqR11R11R11R11R11R11R11_fiqR12R12R12R12R12R12R12_fiqR13(SP)R13(SP)R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14(LR)R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)CPSRCPSRCPSRCPSRCPSRCPSRCPSRSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM寄存器組織總計有37個32位處理器31個通用寄存器有一些寄存器有專門用途
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鏟車裝費合同范本
- 餐飲 委托加工合同范本
- 加工車間用工合同范本
- 村鎮(zhèn)門面出售合同范本
- 匡威加盟合同范本
- 家鄉(xiāng)傳統(tǒng)美食展-六年級語文下冊一單元《臘八粥》任務型教學設(shè)計
- 合肥新房投資合同范本
- 2025合同范本電子產(chǎn)品購銷合同
- 2025合同范本之辦公樓租賃合同租戶版
- 2025版助學貸款合同示范文本
- 汞中毒學習課件
- 國際商事調(diào)解的流程和程序
- 工廠領(lǐng)手套管理制度
- JGJT220-2010 抹灰砂漿技術(shù)規(guī)程
- 【基于PLC的搬運機器人系統(tǒng)設(shè)計4700字(論文)】
- 園林綠化公司管理規(guī)章制度
- 2023年云南省昆明市官渡區(qū)小升初數(shù)學試卷
- 山東船廠船臺碼頭施工組織設(shè)計
- 2022年廣州白云廣附實驗學校入學數(shù)學真卷(三)
- XX家具商場顧客接待流程制度
- 醌類化合物的結(jié)構(gòu)類型課件
評論
0/150
提交評論