(一) CPU的功能和基本結構緩存
(二) 指令執行過程編碼
(三) 數據通路的功能和基本結構spa
(四) 控制器的功能和工做原理設計
1. 硬佈線控制器
2. 微程序控制器
微程序、微指令和微命令;
微指令的編碼方式;
微地址的形式方式。3d
(五) 指令流水線blog
1. 指令流水線的基本概念
2. 指令流水線的基本實現
3. 超標量和動態流水線的基本概念內存
(六)多核處理器的基本概念資源
(2009)
18.某計算機的指令流水線由四個功能段組成,指令流經各功能段的時間(忽略各功能段之
間的 緩存時間)分別是 90ns、80ns、70ns 和 60ns,則該計算機的 CPU 時鐘週期至少是
A.90ns B.80ns C.70ns D.60ns變量
答案:A
考點:指令流水線的階段設置
爲了充分發揮流水線的做用,CPU時鐘週期應取各功能段時間的最大值,使得各功能段能在CPU的統一時鐘控制下執行。這樣,流水線的各功能段的執行時間才能相等,不會引發「堵塞」或「斷流」現象,使得時間長的段成爲整個流水線的「瓶頸」。
原理
19.相對於微程序控制器,硬佈線控制器的特色是
A.指令執行速度慢,指令功能的修改和擴展容易
B.指令執行速度慢,指令功能的修改和擴展難
C.指令執行速度快,指令功能的修改和擴展容易
D.指令執行速度快,指令功能的修改和擴展難
答案:D
考查硬佈線控制器的特色。
硬佈線控制:
因爲控制器的速度取決於電路延遲,因此速度較快。
一旦設計完成,不可能經過其餘的修改添加新功能。
微程序控制:
同硬佈線控制器相比,具備規整性、靈活性、可維護性等一系列優勢。
因爲微程序控制器採用了存儲程序原理,因此每條指令都要從控制存儲器中取一次,
所以影響了速度。
(2010)
19.下列不會引發指令流水阻塞的是()
A.數據旁路
B.數據相關
C.條件轉移
D.資源衝突
答案:A
考點:引發指令流水的緣由。數據旁路的引入是爲了解決指令流水阻塞的。
(2012)
18.某計算機的控制器採用微程序控制方式,微指令中的操做控制字段採用字段直接編碼法,共有 33 個微命令,構成 5 個互斥類,分別包含 七、三、十二、5 和 6 個微命令,則操做控制字段至少有
A. 5 位 B. 6 位 C.15 D. 33 位
答案:C
考點:互斥的概念,因爲還須要考慮一種不發命令的狀況,因此每組還要加上1,因此有8,4,13,6,7個微命令,取對數取整後獲得最少操做控制字段爲3+2+4+3+3=15
(2013)
某 CPU 主頻爲 1.03 GHz,採用 4 級指令流水線,每一個流水段的執行須要 1 個時鐘週期。假定 CPU 執行了 100 條指令,在其執行過程當中,沒有發生任何流水線阻塞,此時流水線的吞吐率爲
A. 0.25×109條指令/秒 B. 0.97×109條指令/秒
C. 1.0×109條指令/秒 D. 1.03 ×109條指令/秒
答案:C
解析:採用 4 級流水執行 100 條指令,在執行過程當中共用4 +(100-1) =103 個時鐘週期(k+(n-1))。
CPU 主頻是1.03 GHz,即每秒1.03 G個時鐘週期
那麼流水時間爲103/1.03Ghz=1*10-7s
流水線的吞吐率=指令條數n/流水時間=100/1*10-7=1.0×109條指令/秒
(2014)
18. 某計算機採用微程序控制器,共有32條指令,公共的取指令微程序包含2條微指令,各指令對應的微程序平均由4條微指令組成,採用判定法(下址字段法)肯定下條微指令的地址,則微指令中下址字段的位數至少是:
A 5 B 6 C 8 D 9
答案:C
解析:
這裏的32條指令是機器指令,一條機器指令對應一條微程序,那麼就要有32條微程序,微指令條數=2+32*4=130,取一下對數能夠獲得須要8位二進制數才能用來表示這些微指令。
(2016)
1九、已知無轉發機制的五段基本流水線(取指、譯碼/讀寄存器、運算、訪存、寫回寄存器)中,下列指令序列存在數據冒險的指令對是()
I1: add R1,R2,R3; (R2)+(R3)->R1
I2: add R5,R2,R4; (R2)+(R4)->R5
I3: add R4,R5,R3; (R3)+(R5)->R4
I4: add R5,R2,R6; (R2)+(R6)->R5
A、I1和I2 B、I2和I3 C、I2和I4 D、I3和I4
答案:B
解析:流水線包括3種冒險:結構冒險 、數據冒險 、控制冒險。這裏的數據冒險,通俗點說就是前一條指令產生的後果是下一條指令的輸入
流水線冒險
結構冒險
因爲硬件資源的競爭,操做沒法同時執行的冒險狀況。如內存訪問會形成構造冒險。IF階段和MEM 階段都要涉及內存訪問。因爲訪問內存使用的總線是共享資源,沒法同時進行操做。
數據冒險
立即將執行的指令依賴於還未處理完成的數據時,會致使指令沒法馬上開始執行,引起數據冒險。直通(Forwarding):本來回寫運算結果是在WB 階段,直通是指在運算結果肯定的EX 階段,將數據直接傳遞給下一個指令。
控制冒險
程序存在跳轉語句,若是程序的實際執行路徑是要跳轉到其餘的地址去執行,那麼流水線中已經作的這些取指和譯碼工做就白作了,這就是流水線的控制冒險。此時,處理器須要排空流水線,跳轉到新的地址處從新進入流水線。
(2016)
2.靜態流水線是指( )
A.只有一種功能的流水線
B.功能不能改變的流水線
C.同時只能完成一種功能的多功能流水線
D.可同時執行多種功能的流水線
答案:C
一條流水線只能完成一種固定的功能,這種流水線稱爲單功能流水線。多功能流水線是指流水線的各段能夠進行不一樣的鏈接,在不一樣時間內或同一時間內,經過不一樣的鏈接方式實現不一樣的功能。
在多功能流水線中,按照同一時間內是否可以鏈接成多種方式以同時執行多種功能,能夠將其分爲靜態流水線和動態流水線。
所謂靜態流水線,是指同一段時間內,多功能流水線中的各個功能段只能按照一種固定的方式鏈接,實現一種固定的功能,只有當按照該方式工做的全部任務都流出流水線以後,也就是流水線徹底排空以後,多功能流水線才能從新進行鏈接,以實現另外的功能。
動態流水線是指同一段時間內,多功能流水線中的各段能夠按照不一樣的方式鏈接,同時執行多種功能。固然,要同時實現多種鏈接方式是有條件的,即流水線中各個功能部件之間不能發生衝突。
一、如下說法不正確的是( )
A.線性流水線是單功能流水線
B.動態流水線是多功能流水線
C.靜態流水線是多功能流水線
D.動態流水線只能是單功能流水線
答案:D
4. 在流水機器中,全局性相關是指( )
A.先寫後讀相關
B.先讀後寫相關
C.指令相關
D.由轉移指令引發的相關
答案:D
5.流水機器對全局性相關的處理不包括( )
A.猜想法
B. 提早造成條件碼
C.加快短循環程序的執行
D. 設置相關專用通路
答案:D
設置相關專用通道是爲解決局部相關而產生的一種方法。
(2012)
44 某 16 位計算機中,帶符號整數用補碼錶示,數據 Cache 和指令 Cache 分離。(下表給出了指令系統中部分指令格式,其中 Rs 和 Rd 表示寄存器,mem 表示存儲單元地址,(x)表示寄存器 x 或存儲單元 x 的內容。)
該計算機採用 5 段流水方式執行指令,各流水段分別是取指(IF)、譯碼/讀寄存器(ID)、執行/計算有效地址(EX)、訪問存儲器(M)和結果寫回寄存器(WB),流水線採用「按序發射,按序完成」方式,沒有采用轉發技術處理數據相關,而且同一寄存器的讀和寫操做不能在同一個時鐘週期內進行。請回答:
(1)若 int 型變量 x 的值爲-513,存放在寄存器 R1 中,則執行「SHR R1」後,R1 的內容是多少?(用十六進制表示)
答:
X=-513=-(512+1)=(-00000010 00000001)2
X補=(11111101 11111111)2
右移 1 位後位 1111 1110 1111 1111,
即指令執行後(R1)=FEFFH。
(2)若在某個時間段中,有連續的 4 條指令進入流水線,在其執行過程當中沒有發生任何阻塞,則執行這 4 條指令所需的時鐘週期數爲多少?
答:執行這4條指令所需的時鐘週期數=5+(4-1)=8
3)若高級語言程序中某賦值語句爲 x=a+b,x、a 和 b 均爲 int 型,它們的存儲單元地址分別表示爲[x]、[a]和[b]。該語句對應的指令序列及其在指令流中的執行過程如圖所示。則這 4 條指令執行過程當中 I3 的 ID 段和 I4 的 IF 段被阻塞的緣由各是什麼?
I1 LOAD R1,[a]
I2 LOAD R2,[b]
I3 ADD R1,R2
I4 STORE R2,[x]
答:
I3 的 ID 段被阻塞的緣由: I3 與 I1 和 I2 都存在數據相關,需等到 I1 和 I2 將結果寫回寄存器後,I3 才能讀寄存器內容。
I4 的 IF 段被阻塞的緣由: I4與I3存在結構相關,I3佔用了IF部件,需等I3進入ID部件後I4才能進入IF部件.
(4)若高級語言程序中某賦值語句爲 x=x*2+a,x 和 a 均爲 unsigned int 類型變量,它們的存儲單元地址分別表示爲[x]、[a],則執行這條語句至少須要多少個時鐘週期?要求模仿(3)題圖畫出這條語句對應的指令序列及其在流水線中的執行過程示意圖。
答:語句爲 x=x*2+a對應的指令序列爲:
I1 LOAD R1,[x]
I2 LOAD R2,[a]
I3 SHL R1 //或者 ADD R1,R1
I4 ADD R1,R2
I5 STORE R2,[x]
故執行 x=x*2+a 語句最少須要 17 個時鐘週期。
(2009)
44.
某計算機字長16位,採用16位定長指令字結構,部分數據通路結構以下圖,圖中全部控制信號爲1時表示有效,爲0表示無效,例控制信號MDRinE爲1表容許數據從DB打入MDR,MDRin爲1表容許數據從內總線打入MDR。假設MAR的輸出一直處於使能狀態。
加法指令「ADD (R1),R0」的功能爲(R0)+((R1))→(R1),即將R0中的數據與R1的內容所指主存單元的數據相加,並將結果送入R1的內容所指主存單元中保存。
下表給出了上述指令取指和譯碼階段每一個節拍(時鐘週期)的功能和有效控制信號,請按表中描述方式用表格列出指令執行階段每一個節拍的功能和有效控制信號。
答案:
這裏對這幾個時鐘週期的功能進行一下說明:
C1:MAR←(PC) 將PC中的內容送到MAR(存儲器地址寄存器)中,取指令的地址
PCout,MARin PC寄存器要流出數據,MAR要流入數據
C2: MDR←M(MAR) PC←(PC)+1
將MAR中的內容(指令的地址)送到MDR(寄存器數據寄存器中),PC+1以便讀取下一條指令
MemR,MDRinE,
PC+1
存儲器容許讀數據,容許數據從DB打入MDR
C3: IR←(MDR) 將取得指令存放到IR(指令寄存器中)
MDRout,IRin
MDR流出數據,指令寄存器流入數據
C4: 指令譯碼
無
C5: MAR←(R1) 取操做數R1的內容(即所指向主存單元的地址)。
R1out,MARin
R1流出數據,MAR流入數據
C6: MDR←M(MAR) A←(R0) 取得R1所指向主存單元的內容,取操做數R0的內容存放到寄存器A中
MemR,MDRinE
R0out,Ain
存儲器容許讀數據,容許數據從DB打入MDR
R0流出數據,A流入數據
C7: AC←(MDR)+(A) 加法運算,結果保存到AC寄存器中
MDRout,Add,ACin
MDR流出數據,加法運算,A流入數據
C8: MDR←(AC) 送到MDR
ACout,MDRin
A流出數據,MDR流入數據
C9: M(MAR)←(MDR) 寫回到R1
MDRoutE,MemW
容許數據從MDR打入DB,存儲器容許讀數據