计算机指令要素,【计算机系统】CPU指令执行流程与指令流水线原理
【計算機(jī)系統(tǒng)】CPU指令執(zhí)行流程與指令流水線原理
一、指令執(zhí)行流程
馮諾依曼架構(gòu)CPU指令執(zhí)行的五個階段:
階段
涉及的功能部件
IF
指令寄存器IR、程序計數(shù)器PC
ID
指令譯碼器ID
EXE
CPU內(nèi)各個單元:ALU、Cache、Registers .etc
MEM
WB
狀態(tài)寄存器FR、Registers. etc
表1
在上述各階段CPU與內(nèi)存的交互時,還涉及系統(tǒng)總線如AB、CB、DB等
1、取指階段(IF, Instruction Fetch)
在上一個指令周期時,程序計數(shù)器PC中記錄的是下一條指令的內(nèi)存地址。因此IF階段CPU指令寄存器按照PC的地址從主存中取得一條指令,當(dāng)前指令被取出后,PC更新到下一條指令的地址。
2、指令譯碼階段(ID, Instruction Decode)
在ID階段,指令譯碼器按照預(yù)定的指令格式,對取回的指令進(jìn)行拆分和解釋,識別區(qū)分出不同的指令類別以及各種獲取操作數(shù)的方法。
3、執(zhí)行指令階段(EXE, Execute)
通過對指令的譯碼,CPU已經(jīng)知曉這條指令要如何執(zhí)行,因此EXE階段就是通過操作控制器OC,按確定的時序向相應(yīng)的部件發(fā)出微操作控制信號以對指令要求的特定操作進(jìn)行具體實現(xiàn)。EXE階段CPU的不同部分(如ALU、寄存器組等)被聯(lián)合起來,以實現(xiàn)指令所需的操作。
4、訪存取數(shù)階段(MEM, Memory)
根據(jù)指令需要可能要訪問內(nèi)存,讀取操作數(shù)。MEM階段根據(jù)指令地址碼(如果有要求的話)得到操作數(shù)在主存中的地址,并從主存中讀取該操作數(shù)用于運(yùn)算。
5、寫回階段(WB, Write Back)
WB階段把執(zhí)行指令階段的運(yùn)行結(jié)果數(shù)據(jù)“寫回”到某種存儲形式:
①寫入CPU的內(nèi)部寄存器中,以便被后續(xù)的指令快速地存取
②寫入內(nèi)存
③改變FR中標(biāo)志位狀態(tài)(如果需要改變的話),用來影響接下來程序的動作
WB階段結(jié)束后,若無意外事件(如結(jié)果溢出等)或異常中斷發(fā)生,計算機(jī)就接著從程序計數(shù)器PC中取得下一條指令地址,開始新一輪的循環(huán)。上述五個階段在具體實現(xiàn)過程中會引入指令流水線來提高效率。
二、指令流水線(Instruction Pipeline)
指令流水線概念的提出是為了提高CPU處理指令的效率。
假設(shè)將CPU執(zhí)行一條指令按照流程分為四個步驟如圖1(ii)
圖1
考慮一個完全不采用流水線的系統(tǒng)如圖3(i),對于一組指令序列,CPU總是等某條指令的全部過程都執(zhí)行完之后再開始下一條指令。與之對比的是圖1(ii)的指令流水線,在第一條指令完成IF后,第二條指令就可以開始IF,依次類推。直觀地,指令流水可以大幅提高CPU處理指令的效率。
1、指令流水線基本概念
①指令流水周期:將一條指令劃分為不同的步驟涉及到的一個重要問題就是——不一致的劃分現(xiàn)象,即每個步驟完成的時間不均勻,例如在經(jīng)典劃分中,IF,WB的速度比較快而EXE速度較慢,如圖2所示陰影部分為指令步驟所需的時間。因此必須把流水周期設(shè)置為單級操作的最大時延。指令階段間的指令轉(zhuǎn)移(例如IF→ID)是由時鐘信號控制的,驅(qū)動這條指令流水工作的時鐘周期應(yīng)該要等于這個最大時延。
圖2
②CPI(Cycles Per Instruction):即每條指令經(jīng)過整個流水線所需周期數(shù),它與各指令有關(guān),不同的指令,CPI也不相同。因此,一般使用平均CPI表示
③ILP(Instruction Level Parallelism):即指令級并行度,是指當(dāng)指令流水線被充分利用時,一個基本周期內(nèi)并行執(zhí)行的指令數(shù)
④指令發(fā)射速率:指在每個周期內(nèi)發(fā)射的指令數(shù),在數(shù)值上等于超標(biāo)量處理機(jī)的級數(shù)。
2、影響流水線性能的因素
①數(shù)據(jù)相關(guān):如第一條指令的輸出為第二條指令的輸入,則第二條指令必須等待第一條指令執(zhí)行完畢而不能直接進(jìn)入流水,造成流水線效率下降
②控制相關(guān):如遇到分支判斷指令,那么該指令可能順序執(zhí)行,也可能分支跳轉(zhuǎn)到其他位置,造成流水線斷流。
引入流水線會提高CPU指令處理效率,但過深的流水等級會使數(shù)據(jù)相關(guān)和控制相關(guān)的副作用增大,反而又降低了CPU工作性能。
3、流水線的改進(jìn)技術(shù)——超標(biāo)量技術(shù)
圖3
采用資源重復(fù)的并行性思想,設(shè)置多條指令流水線和多個功能部件。每個周期發(fā)送多條指令(即指令發(fā)射速率大于1),同時并行地對多條指令進(jìn)行流水處理
總結(jié)
以上是生活随笔為你收集整理的计算机指令要素,【计算机系统】CPU指令执行流程与指令流水线原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git学习笔记:分支管理(1)
- 下一篇: Git学习笔记:分支管理(2)