計算機組成原理——中央處理器(CPU)考研題


(一)   CPU的功能和基本結構

(二)   指令執行過程

(三)   數據通路的功能和基本結構

(四)   控制器的功能和工作原理

1.     硬布線控制器
2.     微程序控制器
微程序、微指令和微命令;
微指令的編碼方式;
微地址的形式方式。

(五)   指令流水線

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 個互斥類,分別包含 7、3、12、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)
19、已知無轉發機制的五段基本流水線(取指、譯碼/讀寄存器、運算、訪存、寫回寄存器)中,下列指令序列存在數據冒險的指令對是()
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

一條流水線只能完成一種固定的功能,這種流水線稱為單功能流水線。多功能流水線是指流水線的各段可以進行不同的連接,在不同時間內或同一時間內,通過不同的連接方式實現不同的功能。
在多功能流水線中,按照同一時間內是否能夠連接成多種方式以同時執行多種功能,可以將其分為靜態流水線和動態流水線。

所謂靜態流水線,是指同一段時間內,多功能流水線中的各個功能段只能按照一種固定的方式連接,實現一種固定的功能,只有當按照該方式工作的所有任務都流出流水線之后,也就是流水線完全排空之后,多功能流水線才能重新進行連接,以實現另外的功能。

動態流水線是指同一段時間內,多功能流水線中的各段可以按照不同的方式連接,同時執行多種功能。當然,要同時實現多種連接方式是有條件的,即流水線中各個功能部件之間不能發生沖突。

1、以下說法不正確的是(    )
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,存儲器允許讀數據

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM