一、硬布線控制器基本思想
把控制不僅看作為產生專門固定時序控制信號的邏輯電路。而此邏輯電路以使用最少元件和取得最高操作速度為設計目標,一旦控制部件構成后,除非重新設計和物理上對他重新布線,否則要想增加新的控制功能是不可能的。
這種邏輯電路是一種由門電路和觸發器構成的復雜樹形邏輯網絡,故稱之為硬布線控制器。
二、流水CPU
一個指令流水線過程段
一個指令m部,每一步一個時鍾周期,一共n個指令
非流水線;m*n*T
標量流水線 mT+(n-1)T
2.流水線分類
1)使用級別不同:部件功能級、處理機級、處理機間
2)功能不同:單功能、多功能
3)連接方式:動態 靜態
4)是否有反饋:線性流水、非線性流水
3、流水線中的主要問題也就是影響流水線的因素
1)資源相關
IF和MEN都需要操作存儲器發生沖突
解決方案:
- 一是第I4條指令停頓一拍后再啟動,而是增設一共存儲器,將指令和數據分別存放在兩個存儲器中
- 前一指令訪存時,后一指令暫停一個時鍾周期
2)數據相關
解決辦法:
- 在流水CPU的運算器中設置若干運算結果緩沖寄存器,暫時保留運算結果,以便於后繼指令直接使用,這稱為向前或定向傳送技術。
- 將遇到數據相關的指令及其后續指令都暫停一個至幾個時鍾周期,直到數據相關問題消失
- 通過編譯器對數據相關的指令編譯優化,調整指令順序。
3)控制相關(跳轉指令)
解決辦法:
- 提高轉移方向的猜准率
- 加快和提前形成條件碼
例一:
R1未寫完就要讀 寫后讀
第三條需要操作存儲器比較慢 讀后寫
乘法比加減慢很多 寫后寫相關
流水線的性能指標:吞吐率 加速比 效率
1)吞吐率:單位時間內流水線所完成的任務數量TP=n/Tk n是任務數 Tk是處理完成n個任務所用的時間
2)加速比:不使用流水線和使用流水線所用時間之比S=T0/Tk T0不使用流水線的執行時間 Tk使用流水線的執行時間 S最大可取到k (流水線的段數)
3)流水線的效率:E=n個任務占用k時空區有效面積/n個任務所用的時間 與k個流水段所圍成的時空區總面積 最高為1
4、流水線的多發技術
1)超標量技術
每個時鍾周期內可並發多條獨立指令配置多個功能部件,不能調整指令的執行順序,通過編譯優化技術,把可並行執行的指令搭配起來。
2)超流水線技術
在一個時鍾周期內再分段(3段)
在同一個時鍾周期內一個功能部件使用多次(3次)
不能調整指令的執行順序
3)超長指令字技術
由編譯程序挖掘出指令間潛在的並行性
將多條能並行操作的指令組合成一條具有多個操作碼字段的超長指令字(可達幾百位)
題1:
周期統一且必須能時間足夠完成每一個所以是90ns
題2:
題2:
吞吐率:單位之間執行多少條指令
1.03*10的九次方時鍾周期 m=4 n=100
4+(100-1)=103 100條指令需要103個時鍾周期
一條指令需要1.03個時鍾周期
每秒有1.03*10的九次方個時鍾周期 一條指令需要1.03個時鍾周期 相除得1*10的九次方條指令
題4、
2014年第44題
題5:某帶終端的計算機指令系統共有101種操作,采用微程序控制方式,控制存儲器中相應最少有(103)個微程序
答:某指令系統中具有n種機器指令,則控制存儲器中的微程序數至少有n+2個(增加的1個為公共的取指微程序,1個為對應中斷周期的微程序)則控制存儲器中的位程序數可以為n+2個
指令周期是從一條指令的啟動到下一條指令的啟動的時間間隔,而CPU周期是機器周期,是指令執行中每一步操作所需要的時間,不相等。
主存和控存區別:
主存儲器:在CPU外 存儲指令和數據 由RAM各ROM實現
控制存儲器:在CPU內 存放微指令 有ROM實現(由於每一條微指令發出的信號是事先設計好的,不需要改變,g故存放所有控制信號的存儲器應為ROM) 按照指令的地址訪問
題:
設指令由取指、分析和執行3個子部件完成;並且每個子部件的時間均為Δt。若采用度為4的超標量流水線處理機,連續執行12條指令,共需花費()Δt。
A.3
B.5
C.9
D.14
指令由取指、分析和執行3個子部件完成,n=3,且每個子部件的時間均為止Δt。若采用常規標量單流水線處理機(即該處理機的度m=1),連續執行12條(k=-12)指令的時空圖如圖2-12所示。執行這12條指令所需的總時間為:Tk=(k+3-1)Δt=(12+3)Δt=14Δt。
若采用度為4(m=4)的超標量流水線處理機,連續執行上述12條(k=12)指令的時空圖如圖2-13所示。
由圖可知,執行這12條指令所需的總時間只需要5Δt。
題:
答:每個功能段的 時間設定為取指 分析和執行部分的最長時間為2ns,第一條指令在第5ns時執行完畢,其余的99條指令每隔2ns執行完一條,所以100條指令全部執行完畢所需時間為5+99*2=203ns
控制器和執行器的組成:
控制器:指令寄存器 程序計數器 操作控制器
執行器:運算器 存儲器 外圍設備
tip:
五階段流水線可以分為取指IF 譯碼/取數ID 執行EXC 存儲器讀MEM 寫回Write Back數字系統中,各個子系統通過數據總線連接形成的數據傳輸路徑稱為數據通路,包括程序計數器 算術邏輯運算部件 通用寄存器組 取指部件等 不包含控制器
CPU的主頻是1.03GHz,也就是說每秒有1.03G個時鍾周期
答:-513原碼為1000 0010 0000 0001 B 按位取反 1111 1101 1111 1110 再加1 1111 1101 1111 1111B,即指令執行之前(R1)=FDFFH 右移一位為1111 1110 1111 1111B 所以指向后為(R1)=FEFFH
2)每個時鍾周期只能由一條指令進入流水線,從第五個周期開始,每個周期都會有一條指令執行完成,所以至少需要4+(5-1)=8個時鍾周期
3)I3的ID段被阻塞的原因:因為I3與I1和I2都存在數據相關,需要等到I1和I2將結果寫回寄存器后,I3才能讀存儲區中的內容,所以I3的ID段被阻塞,I4的IF段被阻塞的原因是因為I4的前一條指令I3的ID段被阻塞,所以I4的IF段被阻塞。
4)因為2*x操作有左移和加法兩種實現方法,故x=x*2+a對應的指令序列為
11 | LOAD | R1,[x] | |
12 | LOAD | R2,[a] | |
13 | SHL | R1 | ADD R1,R1 |
14 | ADD | R1,R2 | |
15 | STORE | R2,[x] |
指令周期:
2014年真題:
答:計算機M采用32位定長指令字,即一條指令占32位也就是4B,據指令地址可知每條指令的地址差是4個地址單位,也就是4個地址單位占4B。一個地址單位就代表了1B,所以該計算機是按字節編址的。
2)編號為1的指令可以看出sll指令是左移2位也就是間隔4個地址單元,二計算機按照字節編址,所以數組A中的每個元素占4B
3)由表可知,bne指令的機器代碼是1446FFFAH,由指令格式可知后2B的內容為OFFSET字段,所以該指令的OFFSET字段內容為FFFAH,(FFFAH=1111 1111 1111 1010H 除符號位外取反1000 0000 0000 0101 再加1 1000 0000 0000 0110=-6),所以用補碼表示是-6.
???
當系統執行到bne指令時,PC自動+4,PC的內容就變為08048118H,而跳轉的地址是08048100H,兩者相差了18H,即24個單位的地址空間(1*16+8=24),所以偏移址的一位即是真實跳轉地址的-24/-6=4位,可知bne指令的轉義目標地址公式為(PC)+4+OFFSET*4
4)由於數據相關而發生阻塞的指令是第2 3 4 6條,因為第2 3 4 6條指令都與各自前一條指令發生數據相關,第6條會發生控制冒險
當前循環的第五條指令與下次循環的第一條指令雖然數據相關,但是由於第6條指令后有3個時鍾周期的阻塞,因而消除了改數據相關。
2014
未看