CPU

CPU的功能:
取指令:控制器必須具有自動從儲存器中取出指令的功能。控制器能自動造成指令的地址,並能發出取指令的命令,將對應地址的指令取到控制器中。第一條指令地址能夠人爲指定,也能夠系統指定。

分析指令:1,分析要完成什麼操做,2,操做數的有效地址

執行指令:根據要求完成操做控制信號序列。

除此以外,控制器還可以控制IO,總線管理,處理中斷。

CPU的寄存器

1,用戶可見寄存器
1)通用寄存器:可存放操做數,尋址方式所需的寄存器,存放有效地址的地址。
2)數據寄存器:存放操做數
3)地址寄存器:存放地址,也能夠用於特殊尋址方式。
4)條件碼寄存器:存放條件碼,能夠由CPU自動完成,也能夠由程序員保存。

2,控制和狀態寄存器
MAR:儲存器地址寄存器,存放被訪問的儲存單元的地址
MDR:存儲器數據寄存器,存放存入在儲存器的數據或讀出存儲器中的數據。
PC:程序計數器,存放現行指令的地址。
IR:指令寄存器,存放當前欲執行的指令。

經過這四個寄存器,CPU和貯存交換信息。

控制單元和中斷系統
現代計算機微操做命令序列的造成方法:1組合邏輯設計方法,硬連線邏輯2,微程序設計方法,爲儲存邏輯。

指令週期:CPU每取出執行一條指令所需的所有時間稱爲指令週期,也即CPU完成一條指令的時間。CPU按照取指-執行-再執行的順序工做。每種指令的指令週期不一樣。若是有間址尋址的指令,還須要有間址週期。這樣間址尋址的指令週期包括,取指週期,間址週期,執行週期。因爲CPU有時還須要進行處理中斷,全部一個完整的週期應該包括,取值,間指,執行,中斷。

指令週期的數據流

1,取值週期數據流

PC中存放現行指令的地址,該地址送到MAR並送至地址總線,而後由控制部件CU向儲存器發讀命令,使對應MAR所指單元的內容經數據總線送至MDR,再送至IR,而且CU控制PC內容+1,造成下一條指令。

2,間址週期的數據流

一旦取址週期結束,CU檢查IR中的內容,肯定其是否有間址操做,若是須要間址,則MDR中指示形式地址的右N位將被送到MAR,又送地址總線,而後CU向儲存器發送命令,獲取有效地址並存至MDR。

3,執行週期的數據流
不一樣指令的數據流不同。

4,中斷週期的數據流
PC內容應該先保存起來,執行完中斷進行返回。


 

由CU把用於保存程序斷點的儲存器特殊地址送往MAR,並送到地址總線上,由CU向儲存器發送寫命令,把PC內容送入MDR,最終使程序斷點經數據總線存入儲存器。CU還須要把中斷服務程序的入口送至PC,爲下一個指令週期的取值週期作好準備。

指令流水

指令流水不能加倍效率的緣由:
1,指令的執行時間通常大於取指時間,所以取指階段可能要等待一段時間,也就是放在指令部件緩衝區的指令不能當即傳給執行部件,緩衝區不能空出。
2,遇到條件指令時,下一條指令未知。等執行結束後才能得到條件,從而決定下條的地址。

一般採用猜想法:當條件轉移指令從取指階段進入執行階段,指令部件仍按照順序取下一條指令。若是不成立,轉移沒發生,沒時間損失。若是成立,轉移發生,丟棄掉所取的,從新取。

指令處理過程細分:
1,取指FI,從儲存器取指令到指令部件緩衝區。
2,指令譯碼DI,肯定操做性質等。
3,計算機操做數地址CO
4,取操做數CO
5,執行指令EI
6,寫操做數WO

對流水線工做的影響緣由

1,結構相關
不一樣指令爭用同一個功能部件產生資源衝突。

還有一種解決方法是設置兩個獨立的儲存器存放操做數和指令。還能夠採用指令預取技術,實現執行K,分析K+1。

2,數據相關
流水線中的各條指令因重疊操做,可能改變對操做數的讀寫訪問順序,從而致使數據相關衝突。

ADD R2+R3->R1
SUB R1-R5->R4

程序員

 

 


發生了先寫後讀
解決這個數據相關的方法能夠採用後推法,即遇到數據相關時,就停頓後繼指令的運行,直至前面指令的結果已經生成。
另外一種解決方法是採用定向技術。在產生的結果時,設置專用通路技術,將產生的結果直接送入所需它的SUB等指令,可使流水線不發生停頓。

數據相關分類:
寫後讀:在寫入寄存器前就寫入內容
讀後寫:在讀前就寫入
寫後寫:在寫以前寫

在按序流動的流水線中,只可能出現RAW。若是非按序流動能夠發生,RAW,WAR,WAW。


控制相關
主要是由轉移指令引發的。

併發



解決控制相關,採用儘早判別轉移是否發生,儘早生成轉移目標地址,預取轉移成功,活不成功兩個控制流方向上的目標指令。加快和提早造成條件碼,提升轉移方向的猜準率。

流水線性能

1,吞吐率
單位時間內流水線所完成的指令或結果數量。
最大吞吐率是流水線在連續流動達到穩定狀態後所得的吞吐率。由於流水線開始時有一段創建時間,結束時有一段排空時間,實際吞吐率小於最大吞吐率。

每段時間爲t,最大吞吐率爲1/t

2,加速比
流水線的加速比是指M段流水線的速度與等功能的非流水線的速度之比。
Sp=m/(1+(m-1)/n)

Tip:非流水三角形和矩形的面積比

3,效率
流水線中各功能段的利用率。由於流水線有創建時間和排空時間,所以總有一段空閒時間。

TIP:矩形的佔長方形的面積。


多發技術

超標量,超流水線,超長指令字


1,超標量,每一個時鐘週期同時能夠併發多條獨立指令。
要實現,要求處理機配置多個功能部件和指令譯碼電路。以及多個寄存器端口和總線。存在數據相關不能進行指令並行。
2,超流水線,將一些流水寄存器插入流水線段中,比如將流水線段再分段。硬件不能調整指令的執行順序。

3,超長指令字,和超標量同樣,都是在多個部件中並行處理的體系。VLIW較超標量更高的並行處理能力,對優化編譯器要求高,對Cache容量要求大。














性能

相關文章
相關標籤/搜索