計(jì)算機(jī)組成原理練習(xí)題
1. 填空題(1)寄存器尋址方式中,指令的地址碼部分給出 寄存器號 ,操作碼在 寄存器 中;直接尋址方式指令中,直接給出 操作數(shù)的地址 ,需訪問 主存 一次可獲得操作數(shù);存儲(chǔ)器間接尋址方式指令中給出的
1. 填空題
(1)寄存器尋址方式中,指令的地址碼部分給出 寄存器號 ,操作碼在 寄存器 中;直接尋址方式指令中,直接給出 操作數(shù)的地址 ,需訪問 主存 一次可獲得操作數(shù);存儲(chǔ)器間接尋址方式指令中給出的是 操作數(shù) 所在的存儲(chǔ)器地址,CPU 需要訪問內(nèi)存 2 次才能獲得操作數(shù)。
(2)指令的編碼將指令分成 操作碼 和 操作數(shù)地址碼 等字段。
(3)CPU 中,保存當(dāng)前正在執(zhí)行的指令的寄存器為 指令寄存器 ,保存下一條指令地址的寄存器為 程序計(jì)數(shù)器PC ,保存CPU 訪存地址的寄存器為 地址寄存器(AR ) 。
(4)某機(jī)采用三地址格式指令,共能完成50種操作,某機(jī)器可在1K 地址范圍內(nèi)直接尋址,則指令字長應(yīng)取 36 位,其中操作碼 6 位,地址碼 30 位。
(5)變址尋址和基址尋址的區(qū)別是:在基址尋址中,基址寄存器提供 基址 ,指令提供 位移量 ;而在變址尋址中,變址寄存器提供 ? ,指令提供 ? 。
(6)設(shè)相對尋址的轉(zhuǎn)移指令占兩個(gè)字節(jié),第一字節(jié)為操作碼,第二字節(jié)是位移量(用補(bǔ)碼表示),每當(dāng)CPU 從存儲(chǔ)器取出一個(gè)字節(jié)時(shí),即自動(dòng)完成(PC ) 1=PC。設(shè)當(dāng)前指令地址為3008H ,要求轉(zhuǎn)移到300FH ,則該轉(zhuǎn)移指令第二字節(jié)的內(nèi)容為 00000111 。若當(dāng)前指令地址為300FH ,要求轉(zhuǎn)移到3004H, 則該轉(zhuǎn)移指令第二字節(jié)的內(nèi)容為 11110101 。
7. 有一個(gè)處理機(jī)共有10條指令,各指令的使用頻度分別為0.25,0.2,0.1,0.12,0.1,0.09,0.05,0.04,0.03,0.02,請分別用固定長編碼,Huffman 編碼和2/8擴(kuò)展編碼進(jìn)行編碼。 解:
固定長編碼:
Huffman 編碼:
,11. 某處理機(jī)的指令有雙地址,單地址和零地址3類,地址字段的長度為3位,整個(gè)指令字長為16位,則最多可以有多少條雙地址指令?可以最多有多少條單地址指令? 解:
最多有210條雙地址指令;
最多有(210-1)*23條單地址指令
14. 假設(shè)某計(jì)算機(jī)指令字長度為32位,具有二地址,一地址,零地址3種指令格式,每個(gè)操作數(shù)地址規(guī)定用8位表示,若操作碼字段固定為8位,現(xiàn)已設(shè)計(jì)出K 條二地址指令,L 條零地址指令,那么這臺計(jì)算機(jī)最多能設(shè)計(jì)出多少條單地址指令?
解:
28-K-L
18. 某計(jì)算機(jī)指令字長為16位,采用擴(kuò)展操作數(shù),操作數(shù)地址需4位,該指令已有三地址指令M 條,二地址指令N 條,沒有零地址指令,問最多還可有多少條一地址指令? 解:
三地址最多24;二地址最多(24-M )*24;
最多有((24-M )*24-N )*24條一地址指令
1. 填空題
(1)微程序控制器的核心部件是存儲(chǔ)微程序的 控制存儲(chǔ)器 , 它一般用 只讀存儲(chǔ)器 構(gòu)成。
(2)控制器在生成各種控制信號時(shí), 必須按照一定的 順序 進(jìn)行, 以便對各種操作實(shí)施時(shí)間
,上的控制。
(3)CPU 中, 保存當(dāng)前正在執(zhí)行的指令的寄存器為 指令寄存器(IR ) , 保存下一條指令地址的寄存器為 程序計(jì)數(shù)器(PC ) , 保存CPU 訪存地址的寄存器為 地址寄存器(AR ) 。
(4)微指令格式可分為 水平 型和 垂直 型兩類, 其中 垂直 型微指令用較長的微程序結(jié)構(gòu)換取較短的微指令結(jié)構(gòu)。
(5)在微型計(jì)算機(jī)中,CPU 從主存取出一條指令并執(zhí)行該指令的時(shí)間叫 指令周期 , 它通常包含若干個(gè) 機(jī)器周期 , 而后者又包含若干個(gè) 時(shí)鐘周期 ,組成多級時(shí)序系統(tǒng)。
2.CPU 中包含哪些基本的寄存器? 分別起什么樣的作用?
通用寄存器(GR ):功能不唯一,可由程序設(shè)計(jì)者根據(jù)需要進(jìn)行指定,如存放原始數(shù)據(jù)和運(yùn)算結(jié)果,作為變址寄存器,計(jì)數(shù)器等。
程序計(jì)數(shù)器(PC ):自動(dòng)取出指令并執(zhí)行
指令寄存器(IR ):存放當(dāng)前執(zhí)行的指令
地址寄存器(AR ):暫時(shí)存放當(dāng)前CPU 所訪問的內(nèi)存單元的地址
數(shù)據(jù)緩沖寄存器(DR ):暫時(shí)存放由主存讀出的一條指令或一個(gè)數(shù)據(jù)字
狀態(tài)條件寄存器(PSW ):用于保存由算術(shù)指令和邏輯指令運(yùn)行或測試的結(jié)果建立的各種條件碼內(nèi)容
4. 控制器中一般包含哪些基本部件?每個(gè)部件的功能是什么?
①程序計(jì)數(shù)器(PC ):
②指令寄存器(IR ):
③指令譯碼器(ID ):分析操作碼,并產(chǎn)生相應(yīng)的控制信號提供給控制單元。
④地址形成部件:根據(jù)不同的尋址方式來形成操作數(shù)的有效地址。
⑤脈沖源:產(chǎn)生一定頻率和寬度的時(shí)鐘脈沖信號作為整個(gè)機(jī)器的時(shí)鐘脈沖。
,⑥啟停線路:保證可靠地送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號的發(fā)生或停止,從而啟動(dòng)機(jī)器或使之停機(jī)。
⑦節(jié)拍信號發(fā)生器:用于將脈沖源產(chǎn)生的脈沖信號轉(zhuǎn)換為各個(gè)機(jī)器周期中所需的節(jié)拍信號,控制計(jì)算機(jī)完成每一步操作。
⑧控制單元(CU ):根據(jù)當(dāng)前正在執(zhí)行的指令的需要,以及其他有關(guān)的因素,產(chǎn)生相應(yīng)的時(shí)序控制信號,并根據(jù)被控功能部件的反饋信號調(diào)整時(shí)序控制信號。
⑨中斷控制邏輯:控制中斷處理的硬件邏輯
7. 程序和微程序,機(jī)器指令和微指令,主存儲(chǔ)器和控制存儲(chǔ)器這幾個(gè)概念有何區(qū)別?
(1)程序和微程序。程序是由程序員編寫的,由指令組成,而微程序用以控制指令的執(zhí)行,它是由微指令組成的。
(2)機(jī)器指令和微指令。機(jī)器指令是把程序員編寫的程序經(jīng)編譯以后成為機(jī)器能執(zhí)行的以二進(jìn)制碼形式表示的指令;在微程序控制的計(jì)算機(jī)中通過執(zhí)行一串微指令完成一條指令的功能。
(3)主存儲(chǔ)器和控制存儲(chǔ)器。主存儲(chǔ)器用來存放程序和數(shù)據(jù),在運(yùn)行程序時(shí),CPU 從主存儲(chǔ)器取指令和存取數(shù)據(jù),一般由隨機(jī)存儲(chǔ)器RAM 構(gòu)成??刂拼鎯?chǔ)器用來存放微程序,用以解釋指令的執(zhí)行,一般由只讀存儲(chǔ)器ROM 構(gòu)成
8. 指令和數(shù)據(jù)均放在內(nèi)存中,從形式上看,它們都是二進(jìn)制編碼,如何區(qū)分當(dāng)前所讀取的是指令還是數(shù)據(jù),兩種情況下對訪存結(jié)果的處理有何差異?
答:取指周期從內(nèi)存讀出的信息流是指令流,它流向控制器,由控制器解釋從而發(fā)出一系列微操作信號;而執(zhí)行周期從內(nèi)存讀出或送入內(nèi)存的信息流是數(shù)據(jù)流,它由內(nèi)存流向運(yùn)算器,或者由運(yùn)算器流向內(nèi)存。
,11. 水平型微指令和垂直型微指令有何差異?
水平型指令:一條微指令中定義并執(zhí)行多個(gè)并行微操作的微指令。并行操作能力強(qiáng),效率高,靈活性強(qiáng),執(zhí)行一條機(jī)器指令時(shí)所需的微指令數(shù)量少,執(zhí)行速度快,字長較長。
垂直型指令:在微指令中設(shè)置微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能。并行操作能力低,效率低,執(zhí)行一條機(jī)器指令時(shí)所需的微指令數(shù)量多,執(zhí)行速度長,字長較短,簡單易用。
13. 某機(jī)采用微程序控制方式,水平型編碼控制的微指令格式,共有微命令30個(gè),構(gòu)成4個(gè)互斥類,各包含5個(gè),8個(gè),14個(gè)和3個(gè)微命令,外部條件3個(gè)。
(1)若采用字段直接編碼方式和直接控制方式,微指令的操作控制字段各取幾位?
(2)假設(shè)微指令字長為24位,設(shè)計(jì)出微指令的具體格式。
(3)在(2)的情況下,控制存儲(chǔ)器允許的最大容量為多少?
解:
(1)字段直接編碼方式:3 4 4 2=13
直接控制方式:30
(2)采用水平型微指令格式,控制字段13位,外部條件3個(gè), 采用斷定方式需2位控制位,下地址字段長度為24-13-2=9位;
(3)控制存儲(chǔ)器的容量為512*24位。
14. 已知某計(jì)算機(jī)有80條指令,平均每條指令由12條微指令組成,其中有一條取指微指令是所有指令公用的,設(shè)指令長度為32位,請計(jì)算出控制存儲(chǔ)器容量。
解:
(80*11 1)*32=880*32
,控制存儲(chǔ)器可選的容量為1024*32位
15. 某機(jī)采用微程序控制方式,其控制端容量為1024*48位。微指令字長48位,微程序可在整個(gè)控制存儲(chǔ)器中實(shí)現(xiàn)轉(zhuǎn)移,可控制程序轉(zhuǎn)移條件共有4個(gè)(直接控制),微指令采用水平型格式,如圖5.25所示。
圖5.25 習(xí)題15圖
(1)微指令中3個(gè)字段分別為多少位?
(2)畫出圍繞這種微指令格式的微程序控制器邏輯框圖。
解:
(1)控制字段:48-2-10=36位 判別測試字段:2位 下地址字段:10位
(2)
17. 某機(jī)器有8條微指令,10種控制信號,每條微指令發(fā)出的控制信號如表5.5所示。假設(shè)
,微指令的控制字段為8位,試給出控制字段的設(shè)計(jì)方案。
表5.5 習(xí)題17的每條微指令發(fā)出的控制信號
解:
{e,f,h}和{b,g,j}構(gòu)成兩個(gè)互斥類,采用字段直接編譯法。 a,c,d,i 采用直接控制法。 具體設(shè)計(jì)如下圖:
h:11
j:11
,20. 設(shè)某機(jī)配有A,B,C 3臺設(shè)備,其優(yōu)先順序是A>B>C,為改變中斷處理次序,將它們的屏蔽字分別設(shè)置為如表6.6所示。
表6.6 習(xí)題20的設(shè)備屏蔽字
請?jiān)趫D6.55中的時(shí)間軸給出的設(shè)備請求中斷的時(shí)刻,畫出CPU 執(zhí)行程序的軌跡。設(shè)A ,B ,C 中斷服務(wù)程序的執(zhí)行時(shí)間均為20μs
。
圖6.55 習(xí)題20圖