计算机组成原理试题解析答案,计算机组成原理习题答案解析(蒋本珊)
-
第一章
1 .電子數(shù)字計(jì)算機(jī)和電子模擬計(jì)算機(jī)的區(qū)別在哪里?
解:電子數(shù)字計(jì)算機(jī)中處理的信息是在時(shí)間上離散的數(shù)字量,運(yùn)算的過程是不連續(xù)的;電子模擬計(jì)算機(jī)中處理的信息是連續(xù)變化的物理量,運(yùn)算的過程是連續(xù)的。
2 .馮 諾依曼計(jì)算機(jī)的特點(diǎn)是什么? 其中最主要的一點(diǎn)是什么?
解:馮 諾依曼計(jì)算機(jī)的特點(diǎn)如下:
① 計(jì)算機(jī)(指硬件)應(yīng)由運(yùn)算器、存儲(chǔ)器、控制器、輸入設(shè)備和輸出設(shè)備五大基本部件組成;
② 計(jì)算機(jī)內(nèi)部采用二進(jìn)制來表示指令和數(shù)據(jù);
③ 將編好的程序和原始數(shù)據(jù)事先存入存儲(chǔ)器中,然后再啟動(dòng)計(jì)算機(jī)工作。
第③ 點(diǎn)是最主要的一點(diǎn)。
3 .計(jì)算機(jī)的硬件是由哪些部件組成的? 它們各有哪些功能?
解:計(jì)算機(jī)的硬件應(yīng)由運(yùn)算器、存儲(chǔ)器、控制器、輸入設(shè)備和輸出設(shè)備五大基本部件組成。它們各自的功能是:
① 輸入設(shè)備:把人們編好的程序和原始數(shù)據(jù)送到計(jì)算機(jī)中去,并且將它們轉(zhuǎn)換成計(jì)算機(jī)內(nèi)部所能識(shí)別和接受的信息方式。
② 輸出設(shè)備:將計(jì)算機(jī)的處理結(jié)果以人或其他設(shè)備所能接受的形式送出計(jì)算機(jī)。
③ 存儲(chǔ)器:用來存放程序和數(shù)據(jù)。
④ 運(yùn)算器:對(duì)信息進(jìn)行處理和運(yùn)算。
⑤ 控制器:按照人們預(yù)先確定的操作步驟,控制整個(gè)計(jì)算機(jī)的各部件有條不紊地自動(dòng)工作。
4 .什么叫總線? 簡述單總線結(jié)構(gòu)的特點(diǎn)。
解:總線是一組能為多個(gè)部件服務(wù)的公共信息傳送線路,它能分時(shí)地發(fā)送與接收各部件的信息。單總線結(jié)構(gòu)即各大部件都連接在單一的一組總線上,這個(gè)總線被稱為系統(tǒng)總線。CPU 與主存、CPU 與外設(shè)之間可以直接進(jìn)行信息交換,主存與外設(shè)、外設(shè)與外設(shè)之間也可以直接進(jìn)行信息交換,而無須經(jīng)過CPU 的干預(yù)。
5 .簡單描述計(jì)算機(jī)的層次結(jié)構(gòu),說明各層次的主要特點(diǎn)。
解:現(xiàn)代計(jì)算機(jī)系統(tǒng)是一個(gè)硬件與軟件組成的綜合體,可以把它看成是按功能劃分的多級(jí)層次結(jié)構(gòu)。
第0 級(jí)為硬件組成的實(shí)體。
第1 級(jí)是微程序級(jí)。這級(jí)的機(jī)器語言是微指令集,程序員用微指令編寫的微程序一般是直接由硬件執(zhí)行的。
第2 級(jí)是傳統(tǒng)機(jī)器級(jí)。這級(jí)的機(jī)器語言是該機(jī)的指令集,程序員用機(jī)器指令編寫的程序可以由微程序進(jìn)行解釋。
第3 級(jí)是操作系統(tǒng)級(jí)。從操作系統(tǒng)的基本功能來看,一方面它要直接管理傳統(tǒng)機(jī)器中的軟硬件資源,另一方面它又是傳統(tǒng)機(jī)器的延伸。
第4 級(jí)是匯編語言級(jí)。這級(jí)的機(jī)器語言是匯編語言,完成匯編語言翻譯的程序叫做匯編程序。
第5 級(jí)是高級(jí)語言級(jí)。這級(jí)的機(jī)器語言就是各種高級(jí)語言,通常用編譯程序來完成高級(jí)語言翻譯的工作。
第6 級(jí)是應(yīng)用語言級(jí)。這一級(jí)是為了使計(jì)算機(jī)滿足某種用途而專門設(shè)計(jì)的,因此這一級(jí)語言就是各種面向問題的應(yīng)用語言。
6 .計(jì)算機(jī)系統(tǒng)的主要技術(shù)指標(biāo)有哪些?
解:計(jì)算機(jī)系統(tǒng)的主要技術(shù)指標(biāo)有:機(jī)器字長、數(shù)據(jù)通路寬度、主存容量和運(yùn)算速度等。
機(jī)器字長是指參與運(yùn)算的數(shù)的基本位數(shù),它是由加法器、寄存器的位數(shù)決定的。
數(shù)據(jù)通路寬度是指數(shù)據(jù)總線一次所能并行傳送信息的位數(shù)。
主存容量是指主存儲(chǔ)器所能存儲(chǔ)的全部信息量。
運(yùn)算速度與機(jī)器的主頻、執(zhí)行什么樣的操作、主存本身的速度等許多因素有關(guān)。
第二章
1 .設(shè)機(jī)器數(shù)的字長8 位(含1 位符號(hào)位) ,分別寫出下列各二進(jìn)制數(shù)的原碼、補(bǔ)碼和
反碼:0 ,- 0 ,0 .1000 ,- 0 .1000 ,0 .1111 ,- 0 .1111 ,1101 ,- 1101 。
3 .已知下列數(shù)的原碼表示,分別寫出它們的補(bǔ)碼表示:
[X1 ]原= 0 .10100 ,[X2 ]原=1 .10111 。
解:[X1 ]補(bǔ)= 0 .10100 ,[X2 ]補(bǔ)= 1 .01001 。
4 .已知下列數(shù)的補(bǔ)碼表示,分別寫出它們的真值:
[ X1 ]補(bǔ)= 0 .10100 ,[ X2 ]補(bǔ)=1 .10111 。
解: X1 = 0 .10100 ,X2 = - 0 .01001 。
8 .一個(gè)n 位字長的二進(jìn)制定點(diǎn)整數(shù),其中1 位為符號(hào)位,分別寫出在補(bǔ)碼和反碼兩
種情況下:
(1) 模數(shù); (2) 最大的正數(shù);
(3) 最負(fù)的數(shù); (4) 符號(hào)位的權(quán);
(5) - 1 的表示形式; (6) 0 的表示形式。
9 .某機(jī)字長16 位,問在下列幾種情況下所能表示數(shù)值的范圍:
(1) 無符號(hào)整數(shù); (2) 用原碼表示定點(diǎn)小數(shù);
(3) 用補(bǔ)碼表示定點(diǎn)小數(shù); (4) 用原碼表示定點(diǎn)整數(shù);
(5) 用補(bǔ)碼表示定點(diǎn)整數(shù)。
10 .某機(jī)字長32 位,試分別寫出無符號(hào)整數(shù)和帶符號(hào)整數(shù)(補(bǔ)碼)的表示范圍(用十
進(jìn)制數(shù)表示) 。
11 .某浮點(diǎn)數(shù)字長12 位,其中階符1 位,階碼數(shù)值3 位,數(shù)符1 位,尾數(shù)數(shù)值7 位,階碼以2 為底,階碼和尾數(shù)均用補(bǔ)碼表示。它所能表示的最大正數(shù)是多少? 最小規(guī)格化正數(shù)是多少? 絕對(duì)值最大的負(fù)數(shù)是多少?
12 .某浮點(diǎn)數(shù)字長16 位,其中階碼部分6 位(含1 位階符) ,移碼表示,以2 為底;尾
數(shù)部分10 位(含1 位數(shù)符,位于尾數(shù)最高位) ,補(bǔ)碼表示,規(guī)格化。分別寫出下列各題的二
進(jìn)制代碼與十進(jìn)制真值。
(1) 非零最小正數(shù);
(2) 最大正數(shù);
(3) 絕對(duì)值最小負(fù)數(shù);
(4) 絕對(duì)值最大負(fù)數(shù)。
13 .一浮點(diǎn)數(shù),其階碼部分為p 位,尾數(shù)部分為q 位,各包含1 位符號(hào)位,均用補(bǔ)碼表
示;尾數(shù)基數(shù)r = 2 ,該浮點(diǎn)數(shù)格式所能表示數(shù)的上限、下限及非零的最小正數(shù)是多少? 寫
數(shù)據(jù)的機(jī)器層次表示出表達(dá)式。
14 .若上題尾數(shù)基數(shù)r = 16 ,按上述要求寫出表達(dá)式。
15 .某浮點(diǎn)數(shù)字長32 位,格式如下。其中階碼部分8 位,以2 為底,移碼表示;尾數(shù)部分一共24 位(含1 位數(shù)符) ,補(bǔ)碼表示。現(xiàn)有一浮點(diǎn)代碼為(8C5A3E00)16 ,試寫出它所表示的十進(jìn)制真值。
16 .試將( - 0 .1101)2 用IEEE 短浮點(diǎn)數(shù)格式表示出來。
17 .將下列十進(jìn)制數(shù)轉(zhuǎn)換為IEEE 短浮點(diǎn)數(shù):
18 .將下列IEEE 短浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制數(shù):
(1) 11000000 11110000 00000000 00000000 ;
(2) 00111111 00010000 00000000 00000000 ;
(3) 01000011 10011001 00000000 00000000 ;
(4) 01000000 00000000 00000000 00000000 ;
(5) 01000001 00100000 00000000 00000000 ;
(6) 00000000 00000000 00000000 00000000 。
19 .對(duì)下列ASCII 碼進(jìn)行譯碼:
1001001 ,0100001 ,1100001 ,1110111
1000101 ,1010000 ,1010111 ,0100100
20 .以下列形式表示(5382)10 。
(1) 8421 碼; (2) 余3 碼;
(3) 2421 碼; (4) 二進(jìn)制數(shù)。
21 .填寫下列代碼的奇偶校驗(yàn)位,現(xiàn)設(shè)為奇校驗(yàn):
1 0 1 0 0 0 0 1
0 0 0 1 1 0 0 1
0 1 0 0 1 1 1 0
解:3 個(gè)代碼的校驗(yàn)位分別是0 ,0 ,1 。
22 .已知下面數(shù)據(jù)塊約定:橫向校驗(yàn)、縱向校驗(yàn)均為奇校驗(yàn),請(qǐng)指出至少有多少位出錯(cuò)。
23 .求有效信息位為01101110 的海明校驗(yàn)碼。
24 .設(shè)計(jì)算機(jī)準(zhǔn)備傳送的信息是:1010110010001111 ,生成多項(xiàng)式是X5 + X2 + 1 ,計(jì)算校驗(yàn)位,寫出CRC 碼。
第三章
1 .指令長度和機(jī)器字長有什么關(guān)系? 半字長指令、單字長指令、雙字長指令分別表示什么意思?
解:指令長度與機(jī)器字長沒有固定的關(guān)系,指令長度可以等于機(jī)器字長,也可以大于或小于機(jī)器字長。通常,把指令長度等于機(jī)器字長的指令稱為單字長指令;指令長度等于半個(gè)機(jī)器字長的指令稱為半字長指令;指令長度等于兩個(gè)機(jī)器字長的指令稱為雙字長指令。
2 .零地址指令的操作數(shù)來自哪里? 一地址指令中,另一個(gè)操作數(shù)的地址通常可采用什么尋址方式獲得? 各舉一例說明。
解:雙操作數(shù)的零地址指令的操作數(shù)來自堆棧的棧頂和次棧頂。雙操作數(shù)的一地址指令的另一個(gè)操作數(shù)通常可采用隱含尋址方式獲得,即將另一操作數(shù)預(yù)先存放在累加器中。例如,前述零地址和一地址的加法指令。
3 .某機(jī)為定長指令字結(jié)構(gòu),指令長度16 位;每個(gè)操作數(shù)的地址碼長6 位,指令分為無操作數(shù)、單操作數(shù)和雙操作數(shù)三類。若雙操作數(shù)指令已有K 種,無操作數(shù)指令已有L種,問單操作數(shù)指令最多可能有多少種? 上述三類指令各自允許的最大指令條數(shù)是多少?
4 .設(shè)某機(jī)為定長指令字結(jié)構(gòu),指令長度12 位,每個(gè)地址碼占3 位,試提出一種分配
方案,使該指令系統(tǒng)包含:4 條三地址指令,8 條二地址指令,180 條單地址指令。
5 .指令格式同上題,能否構(gòu)成:三地址指令4 條,單地址指令255 條,零地址指令64 條? 為什么?
6 .指令中地址碼的位數(shù)與直接訪問的主存容量和最小尋址單位有什么關(guān)系?
6 6 解:主存容量越大,所需的地址碼位數(shù)就越長。對(duì)于相同容量來說,最小尋址單位越小,地址碼的位數(shù)就越長。
7 .試比較間接尋址和寄存器間址。
解:間接尋址方式的有效地址在主存中,操作數(shù)也在主存中;寄存器間址方式的有效地址在寄存器中,操作數(shù)在主存中。所以間接尋址比較慢。
8 .試比較基址尋址和變址尋址。
解:基址尋址和變址尋址在形成有效地址時(shí)所用的算法是相同的,但是它們兩者實(shí)際上是有區(qū)別的。一般來說,變址尋址中變址寄存器提供修改量(可變的) ,而指令中提供基準(zhǔn)值(固定的) ;基址尋址中基址寄存器提供基準(zhǔn)值(固定的) ,而指令中提供位移量(可變的) 。這兩種尋址方式應(yīng)用的場(chǎng)合也不同,變址尋址是面向用戶的,用于訪問字符串、向量和數(shù)組等成批數(shù)據(jù);而基址尋址面向系統(tǒng),主要用于邏輯地址和物理地址的變換,用以解決程序在主存中的再定位和擴(kuò)大尋址空間等問題。在某些大型機(jī)中,基址寄存器只能由特權(quán)指令來管理,用戶指令無權(quán)操作和修改。
9 .某機(jī)字長為16 位,主存容量為64K 字,采用單字長單地址指令,共有50 條指令。若有直接尋址、間接尋址、變址尋址、相對(duì)尋址四種尋址方式,試設(shè)計(jì)其指令格式。
解:操作碼6 位,尋址方式2 位,地址碼8 位。
10 .某機(jī)字長為16 位,主存容量為64K 字,指令格式為單字長單地址,共有64 條指令。試說明:
(1) 若只采用直接尋址方式,指令能訪問多少主存單元?
(2) 為擴(kuò)充指令的尋址范圍,可采用直接/間接尋址方式,若只增加一位直接/間接標(biāo)志,指令可尋址范圍為多少? 指令直接尋址的范圍為多少?
(3) 采用頁面尋址方式,若只增加一位Z/C(零頁/現(xiàn)行頁)標(biāo)志,指令尋址范圍為多少? 指令直接尋址范圍為多少?
(4) 采用(2) 、(3) 兩種方式結(jié)合,指令的尋址范圍為多少? 指令直接尋址范圍為多少?
11 .設(shè)某機(jī)字長32 位,CPU 有32 個(gè)32 位的通用寄存器,設(shè)計(jì)一個(gè)能容納64 種操作的單字長指令系統(tǒng)。
(1) 如果是存儲(chǔ)器間接尋址方式的寄存器- 存儲(chǔ)器型指令,能直接尋址的最大主存空間是多少?
(2) 如果采用通用寄存器作為基址寄存器,能直接尋址的最大主存空間又是多少?
解:因?yàn)橛?jì)算機(jī)中共有64 條指令,所以操作碼占6 位;32 個(gè)通用寄存器,寄存器編號(hào)占5 位;其余部分為地址碼或標(biāo)志位。
(1) 如果是存儲(chǔ)器間接尋址方式的寄存器- 存儲(chǔ)器型指令,操作碼6 位,寄存器編號(hào)5 位,間址標(biāo)志1 位,地址碼20 位,直接尋址的最大主存空間是字。
(2) 如果采用通用寄存器作為基址寄存器,,能直接尋址的最大主存空間是 字。
12 .已知某小型機(jī)字長為16 位,其雙操作數(shù)指令的格式如下:
其中:OP 為操作碼,R 為通用寄存器地址。試說明下列各種情況下能訪問的最大主存區(qū)域有多少機(jī)器字?
(1) A 為立即數(shù)。
(2) A 為直接主存單元地址。
(3) A 為間接地址(非多重間址) 。
(4) A 為變址尋址的形式地址,假定變址寄存器為R1 (字長為16 位) 。
解:(1) 1 個(gè)機(jī)器字。
(2) 256 個(gè)機(jī)器字。
(3) 65536 個(gè)機(jī)器字。
(4) 65536 個(gè)機(jī)器字。
13 .計(jì)算下列4 條指令的有效地址(指令長度為16 位) 。
(1) 000000Q(2) 100000Q(3) 170710Q(4) 012305Q
16 .舉例說明哪幾種尋址方式除去取指令以外不訪問存儲(chǔ)器? 哪幾種尋址方式除去取指令外只需訪問一次存儲(chǔ)器? 完成什么樣的指令,包括取指令在內(nèi)共訪問4 次存儲(chǔ)器?
解:除去取指令以外不訪問存儲(chǔ)器:立即尋址,寄存器尋址。
除去取指令外只需訪問一次存儲(chǔ)器:直接尋址,寄存器間接尋址,變址尋址,基址尋址,相對(duì)尋址,頁面尋址。
二級(jí)間接尋址包括取指令在內(nèi)共訪問4 次存儲(chǔ)器。
17 .設(shè)相對(duì)尋址的轉(zhuǎn)移指令占兩個(gè)字節(jié),第一個(gè)字節(jié)是操作碼,第二個(gè)字節(jié)是相對(duì)位移量,用補(bǔ)碼表示。假設(shè)當(dāng)前轉(zhuǎn)移指令第一字節(jié)所在的地址為2000H ,且CPU 每取一個(gè)字節(jié)便自動(dòng)完成(PC) + 1 → PC 的操作。試問當(dāng)執(zhí)行JMP *+ 8 和JMP *- 9 指令( 倡為相對(duì)尋址特征)時(shí),轉(zhuǎn)移指令第二字節(jié)的內(nèi)容各為多少? 轉(zhuǎn)移的目的地址各是什么?
解:轉(zhuǎn)移指令第二字節(jié)的內(nèi)容分別為:00001000(+8),11110111(-9)
轉(zhuǎn)移的目的地址分別為:200AH ,1FF9H 。
20.什么叫主程序和子程序? 調(diào)用子程序時(shí)還可采用哪幾種方法保存返回地址? 畫圖說明調(diào)用子程序的過程。
解:主程序就是指通常的程序,而子程序是一組可以公用的指令序列,只要知道子程序的入口地址就能調(diào)用它。
保存返回地址的方法有多種:
(1) 用子程序的第一個(gè)字單元存放返回地址。轉(zhuǎn)子指令把返回地址存放在子程序的第一個(gè)字單元中,子程序從第二個(gè)字單元開始執(zhí)行。返回時(shí)將第一個(gè)字單元地址作為間接地址,采用間址方式返回主程序。
(2) 用寄存器存放返回地址。轉(zhuǎn)子指令先把返回地址放到某一個(gè)寄存器中,再由子程序?qū)⒓拇嫫髦械膬?nèi)容轉(zhuǎn)移到另一個(gè)安全的地方。
(3) 用堆棧保存返回地址。
調(diào)用子程序的過程如圖3唱8 所示,此時(shí)返回地址保存在堆棧中。
21 .在某些計(jì)算機(jī)中,調(diào)用子程序的方法是這樣實(shí)現(xiàn)的:轉(zhuǎn)子指令將返回地址存入子程序的第一個(gè)字單元,然后從第二個(gè)字單元開始執(zhí)行子程序,請(qǐng)回答下列問題:
(1) 為這種方法設(shè)計(jì)一條從子程序轉(zhuǎn)到主程序的返回指令。
(2) 在這種情況下,怎么在主、子程序間進(jìn)行參數(shù)的傳遞?
(3) 上述方法是否可用于子程序的嵌套?
(4) 上述方法是否可用于子程序的遞歸(即某個(gè)子程序自己調(diào)用自己) ?
(5) 如果改用堆棧方法,是否可實(shí)現(xiàn)(4) 所提出的問題?
解:(1) 返回指令通常為零地址指令。返回地址保存在堆棧中,執(zhí)行返回指令時(shí)自動(dòng)從堆棧中彈出。而目前返回地址是保存在子程序的第一個(gè)單元中,故此時(shí)返回指令不能再是零地址指令了,而應(yīng)當(dāng)是一地址指令。如:
間接尋址可找到返回地址,然后無條件轉(zhuǎn)移到返回的位置。
(2) 在這種情況下,可利用寄存器或主存單元進(jìn)行主、子程序間的參數(shù)傳遞。
(3) 可以用于子程序的嵌套(多重轉(zhuǎn)子) 。因?yàn)槊總€(gè)返回地址都放在調(diào)用的子程序的第一個(gè)單元中。
(4) 不可以用于子程序的遞歸,因?yàn)楫?dāng)某個(gè)子程序自己調(diào)用自己時(shí),子程序第一個(gè)單元的內(nèi)容將被破壞。
(5) 如果改用堆棧方法,可以實(shí)現(xiàn)子程序的遞歸,因堆棧具有后進(jìn)先出的功能。
第四章
1 .證明在全加器里,進(jìn)位傳遞函數(shù)。
解:并行加法器中的每一個(gè)全加器都有一個(gè)從低位送來的進(jìn)位和一個(gè)傳送給較高位的進(jìn)位。進(jìn)位表達(dá)式為欲證明,也就是要證明
用卡諾圖法,圖4-10(a)和4-10(b)分別是兩個(gè)邏輯表達(dá)式的卡諾圖。兩個(gè)卡諾圖相同,兩個(gè)邏輯表達(dá)式就相等,則進(jìn)位傳遞函數(shù)的兩種形式相等。
2 .某加法器采用組內(nèi)并行、組間并行的進(jìn)位鏈,4 位一組,寫出進(jìn)位信號(hào)C6 的邏輯表達(dá)式。
3 .設(shè)計(jì)一個(gè)9 位先行進(jìn)位加法器,每3 位為一組,采用兩級(jí)先行進(jìn)位線路。
4 .已知X 和Y ,試用它們的變形補(bǔ)碼計(jì)算出X + Y ,并指出結(jié)果是否溢出。
(1) X = 0 .11011 ,Y = 0 .11111
(2) X = 0 .11011 ,Y = - 0 .10101
(3) X = - 0 .10110 ,Y = - 0 .00001
(4) X = - 0 .11011 ,Y = 0 .11110
5 .已知X 和Y ,試用它們的變形補(bǔ)碼計(jì)算出X - Y ,并指出結(jié)果是否溢出。
(1) X = 0 .11011 ,Y = - 0 .11111
(2) X = 0 .10111 ,Y = 0 .11011
(3) X = 0 .11011 ,Y = - 0 .10011
(4) X = - 0 .10110 ,Y = - 0 .00001
9
7 .設(shè)下列數(shù)據(jù)長8 位,包括1 位符號(hào)位,采用補(bǔ)碼表示,分別寫出每個(gè)數(shù)據(jù)右移或左移2 位之后的結(jié)果。
(1) 0 .1100100
(2) 1 .0011001
(3) 1 .1100110
(4) 1 .0000111
8 .分別用原碼乘法和補(bǔ)碼乘法計(jì)算X Y 。
(1) X = 0 .11011 ,Y = - 0 .11111
(2) X = - 0 .11010 ,Y = - 0 .01110
(2) X Y = 0 .0101101100 ,過程略。
9 .根據(jù)補(bǔ)碼兩位乘法規(guī)則推導(dǎo)出補(bǔ)碼3 位乘法的規(guī)則。
解:先根據(jù)補(bǔ)碼1 位乘法推出補(bǔ)碼2 位乘法規(guī)則,再根據(jù)補(bǔ)碼2 位乘法推出補(bǔ)碼3
位乘法規(guī)則。
10 .分別用原碼和補(bǔ)碼加減交替法計(jì)算X Y 。
(1) X = 0 .10101 ,Y = 0 .11011
(2) X = - 0 .10101 ,Y = 0 .11011
(3) X = 0 .10001 ,Y = - 0 .10110
(4) X = - 0 .10110 ,Y = - 0 .11011
11 .設(shè)浮點(diǎn)數(shù)的階碼和尾數(shù)部分均用補(bǔ)碼表示,按照浮點(diǎn)數(shù)的運(yùn)算規(guī)則,計(jì)算下列各題:
12 .設(shè)浮點(diǎn)數(shù)的階碼和尾數(shù)部分均用補(bǔ)碼表示,按照浮點(diǎn)數(shù)的運(yùn)算規(guī)則,計(jì)算下列各題:
13 .用流程圖描述浮點(diǎn)除法運(yùn)算的算法步驟。
14 .設(shè)計(jì)一個(gè)1 位5421 碼加法器。
解:設(shè)1 位被加數(shù)為A4 A3 A2 A1 ,加數(shù)為B4 B3 B2 B1 。5421碼的校正關(guān)系如表4-4所示。
第五章
1 .如何區(qū)別存儲(chǔ)器和寄存器? 兩者是一回
事的說法對(duì)嗎?
解:存儲(chǔ)器和寄存器不是一回事。存儲(chǔ)器在CPU 的外邊,專門用來存放程序和數(shù)據(jù),訪問存儲(chǔ)器的速度較慢。寄存器屬于CPU 的一部分,訪問寄存器的速度很快。
2 .存儲(chǔ)器的主要功能是什么? 為什么要把存儲(chǔ)系統(tǒng)分成若干個(gè)不同層次? 主要有哪些層次?
解:存儲(chǔ)器的主要功能是用來保存程序和數(shù)據(jù)。存儲(chǔ)系統(tǒng)是由幾個(gè)容量、速度和價(jià)格各不相同的存儲(chǔ)器用硬件、軟件、硬件與軟件相結(jié)合的方法連接起來的系統(tǒng)。把存儲(chǔ)系統(tǒng)分成若干個(gè)不同層次的目的是為了解決存儲(chǔ)容量、存取速度和價(jià)格之間的矛盾。由高速緩沖存儲(chǔ)器、主存儲(chǔ)器、輔助存儲(chǔ)器構(gòu)成的三級(jí)存儲(chǔ)系統(tǒng)可以分為兩個(gè)層次,其中高速緩存和主存間稱為Cache - 主存存儲(chǔ)層次(Cache 存儲(chǔ)系統(tǒng)) ;主存和輔存間稱為主存— 輔存存儲(chǔ)層次(虛擬存儲(chǔ)系統(tǒng)) 。
3 .什么是半導(dǎo)體存儲(chǔ)器? 它有什么特點(diǎn)?
解:采用半導(dǎo)體器件制造的存儲(chǔ)器,主要有MOS 型存儲(chǔ)器和雙極型存儲(chǔ)器兩大類。半導(dǎo)體存儲(chǔ)器具有容量大、速度快、體積小、可靠性高等特點(diǎn)。半導(dǎo)體隨機(jī)存儲(chǔ)器存儲(chǔ)的信息會(huì)因?yàn)閿嚯姸鴣G失。
4 .SRAM 記憶單元電路的工作原理是什么? 它和DRAM 記憶單元電路相比有何異同點(diǎn)?
解:SRAM 記憶單元由6 個(gè)MOS 管組成,利用雙穩(wěn)態(tài)觸發(fā)器來存儲(chǔ)信息,可以對(duì)其進(jìn)行讀或?qū)?#xff0c;只要電源不斷電,信息將可保留。DRAM 記憶單元可以由4 個(gè)和單個(gè)MOS管組成,利用柵極電容存儲(chǔ)信息,需要定時(shí)刷新。
5 .動(dòng)態(tài)RAM 為什么要刷新? 一般有幾種刷新方式? 各有什么優(yōu)缺點(diǎn)?
解:DRAM 記憶單元是通過柵極電容上存儲(chǔ)的電荷來暫存信息的,由于電容上的電荷會(huì)隨著時(shí)間的推移被逐漸泄放掉,因此每隔一定的時(shí)間必須向柵極電容補(bǔ)充一次電荷,這個(gè)過程就叫做刷新。常見的刷新方式有集中式、分散式和異步式3 種。集中方式的特點(diǎn)是讀寫操作時(shí)不受刷新工作的影響,系統(tǒng)的存取速度比較高;但有死區(qū),而且存儲(chǔ)容量越大,死區(qū)就越長。分散方式的特點(diǎn)是沒有死區(qū);但它加長了系統(tǒng)的存取周期,降低了整機(jī)的速度,且刷新過于頻繁,沒有充分利用所允許的最大刷新間隔。異步方式雖然也有死區(qū),但比集中方式的死區(qū)小得多,而且減少了刷新次數(shù),是比較實(shí)用的一種刷新方式。
6 .一般存儲(chǔ)芯片都設(shè)有片選端 ,它有什么用途?
解:片選線用來決定該芯片是否被選中。=0,芯片被選中;=1,芯片不選中。
7 .DRAM 芯片和SRAM 芯片通常有何不同?
解:主要區(qū)別有:
① DRAM 記憶單元是利用柵極電容存儲(chǔ)信息;SRAM 記憶單元利用雙穩(wěn)態(tài)觸發(fā)器來存儲(chǔ)信息。
② DRAM 集成度高,功耗小,但存取速度慢,一般用來組成大容量主存系統(tǒng);SRAM的存取速度快,但集成度低,功耗也較大,所以一般用來組成高速緩沖存儲(chǔ)器和小容量主存系統(tǒng)。
③ SRAM 芯片需要有片選端 ,DRAM 芯片可以不設(shè),而用行選通信號(hào)、列選通兼作片選信號(hào)。
④ SRAM 芯片的地址線直接與容量相關(guān),而DRAM 芯片常采用了地址復(fù)用技術(shù),以減少地址線的數(shù)量。
8 .有哪幾種只讀存儲(chǔ)器? 它們各自有何特點(diǎn)?
解:MROM :可靠性高,集成度高,形成批量之后價(jià)格便宜,但用戶對(duì)制造廠的依賴性過大,靈活性差。
PROM :允許用戶利用專門的設(shè)備(編程器)寫入自己的程序,但一旦寫入后,其內(nèi)容將無法改變。寫入都是不可逆的,所以只能進(jìn)行一次性寫入。
EPROM :不僅可以由用戶利用編程器寫入信息,而且可以對(duì)其內(nèi)容進(jìn)行多次改寫。
EPROM 又可分為兩種:紫外線擦除(UVEPROM)和電擦除(EEPROM) 。
閃速存儲(chǔ)器:既可在不加電的情況下長期保存信息,又能在線進(jìn)行快速擦除與重寫,兼?zhèn)淞薊EPROM 和RAM 的優(yōu)點(diǎn)。
9 .說明存取周期和存取時(shí)間的區(qū)別。
解:存取周期是指主存進(jìn)行一次完整的讀寫操作所需的全部時(shí)間,即連續(xù)兩次訪問存儲(chǔ)器操作之間所需要的最短時(shí)間。存取時(shí)間是指從啟動(dòng)一次存儲(chǔ)器操作到完成該操作所經(jīng)歷的時(shí)間。存取周期一定大于存取時(shí)間。
10 .一個(gè)1K 8 的存儲(chǔ)芯片需要多少根地址線、數(shù)據(jù)輸入線和輸出線?
解:需要10 根地址線,8 根數(shù)據(jù)輸入和輸出線。
11 .某機(jī)字長為32 位,其存儲(chǔ)容量是64KB ,按字編址的尋址范圍是多少? 若主存以字節(jié)編址,試畫出主存字地址和字節(jié)地址的分配情況。
解:某機(jī)字長為32 位,其存儲(chǔ)容量是64KB ,按字編址的尋址范圍是16KW 。若主存以字節(jié)編址,每一個(gè)存儲(chǔ)字包含4 個(gè)單獨(dú)編址的存儲(chǔ)字節(jié)。假設(shè)采用大端方案,即字地址等于最高有效字節(jié)地址,且字地址總是等于4 的整數(shù)倍,正好用地址碼的最末兩位來區(qū)分同一個(gè)字中的4 個(gè)字節(jié)。主存字地址和字節(jié)地址的分配情況如圖5-19 所示。
12 .一個(gè)容量為16K 32 位的存儲(chǔ)器,其地址線和數(shù)據(jù)線的總和是多少? 當(dāng)選用下列不同規(guī)格的存儲(chǔ)芯片時(shí),各需要多少片?
1K4位,2K8位,4K4位,16K1位,4K8位,8K8位。
解:地址線14 根,數(shù)據(jù)線32 根,共46 根。
若選用不同規(guī)格的存儲(chǔ)芯片,則需要:1K4位芯片128片,2K8位芯片32片,4K4位芯片
32片,16K1位芯片32片,4K8位芯片16片,8K8位芯片8 片。
13 .現(xiàn)有1024 1 的存儲(chǔ)芯片,若用它組成容量為16K 8 的存儲(chǔ)器。試求:
(1) 實(shí)現(xiàn)該存儲(chǔ)器所需的芯片數(shù)量?
(2) 若將這些芯片分裝在若干塊板上,每塊板的容量為4K 8 ,該存儲(chǔ)器所需的地址線總位數(shù)是多少? 其中幾位用于選板? 幾位用于選片? 幾位用作片內(nèi)地址?
解:(1) 需1024 1 的芯片128 片。
(2) 該存儲(chǔ)器所需的地址線總位數(shù)是14位,其中2位用于選板,2位用于選片,10位用作片內(nèi)地址。
14 .已知某機(jī)字長8 位,現(xiàn)采用半導(dǎo)體存儲(chǔ)器作主存,其地址線為16 位,若使用1K 4 的SRAM 芯片組成該機(jī)所允許的最大主存空間,并采用存儲(chǔ)模板結(jié)構(gòu)形式。
(1) 若每塊模板容量為4K 8 ,共需多少塊存儲(chǔ)模板?
(2) 畫出一個(gè)模板內(nèi)各芯片的連接邏輯圖。
解:(1) 根據(jù)題干可知存儲(chǔ)器容量為216 = 64KB ,故共需16 塊存儲(chǔ)模板。
(2) 一個(gè)模板內(nèi)各芯片的連接邏輯圖如圖5-20 所示。
15 .某半導(dǎo)體存儲(chǔ)器容量16K 8 ,可選SRAM 芯片的容量為4K 4 ;地址總線A15 ~ A0 (低) ,雙向數(shù)據(jù)總線D7 ~ D0 (低) ,由R/W線控制讀/寫。請(qǐng)?jiān)O(shè)計(jì)并畫出該存儲(chǔ)器的邏輯圖,并注明地址分配、片選邏輯及片選信號(hào)的極性。
解:存儲(chǔ)器的邏輯圖與圖5唱20 很相似,區(qū)別僅在于地址線的連接上,故省略。
地址分配如下:
16 .現(xiàn)有如下存儲(chǔ)芯片:2K 1 的ROM 、4K 1 的RAM 、8K 1 的ROM 。若用它們組成容量為16KB 的存儲(chǔ)器,前4KB 為ROM ,后12KB 為RAM ,CPU 的地址總線16 位。
(1) 各種存儲(chǔ)芯片分別用多少片?
(2) 正確選用譯碼器及門電路,并畫出相應(yīng)的邏輯結(jié)構(gòu)圖。
(3) 指出有無地址重疊現(xiàn)象。
解:(1) 需要用2K 1 的ROM 芯片16 片,4K 1 的RAM 芯片24片。不能使用8K 1 的ROM 芯片,因?yàn)樗笥赗OM 應(yīng)有的空間。
(2) 各存儲(chǔ)芯片的地址分配如下:
17 .用容量為16K 1 的DRAM 芯片構(gòu)成64KB 的存儲(chǔ)器。
(1) 畫出該存儲(chǔ)器的結(jié)構(gòu)框圖。
(2) 設(shè)存儲(chǔ)器的讀/寫周期均為0 .5μs ,CPU 在1μs 內(nèi)至少要訪存一次,試問采用哪種刷新方式比較合理? 相鄰兩行之間的刷新間隔是多少? 對(duì)全部存儲(chǔ)單元刷新一遍所需的實(shí)際刷新時(shí)間是多少?
解:(1) 存儲(chǔ)器的結(jié)構(gòu)框圖如圖5-22 所示。
(2) 因?yàn)橐驝PU 在1μs 內(nèi)至少要訪存一次,所以不能使用集中刷新方式,分散和異步刷新方式都可以使用,但異步刷新方式比較合理。
相鄰兩行之間的刷新間隔= 最大刷新間隔時(shí)間 行數(shù)= 2ms 128 = 15 .625μs 。取
15 .5μs ,即進(jìn)行讀或?qū)懖僮?#xff13;1 次之后刷新一行。
對(duì)全部存儲(chǔ)單元刷新一遍所需的實(shí)際刷新時(shí)間= 0 .5μs 128 = 64μs
18 .有一個(gè)8 位機(jī),采用單總線結(jié)構(gòu),地址總線16 位(A15 ~ A0 ) ,數(shù)據(jù)總線8 位(D7 ~ D0 ) ,控制總線中與主存有關(guān)的信號(hào)有MREQ(低電平有效允許訪存)和R/W(高電平為讀命令,低電平為寫命令) 。
主存地址分配如下:從0 ~ 8191 為系統(tǒng)程序區(qū),由ROM 芯片組成;從8192 ~ 32767
為用戶程序區(qū);最后(最大地址)2K 地址空間為系統(tǒng)程序工作區(qū)。(上述地址均用十進(jìn)制表示,按字節(jié)編址。)
現(xiàn)有如下存儲(chǔ)芯片:8K 8 的ROM ,16K 1 、2K 8 、4K 8 、8K 8 的SRAM 。請(qǐng)從上述規(guī)格中選用芯片設(shè)計(jì)該機(jī)主存儲(chǔ)器,畫出主存的連接框圖,并請(qǐng)注意畫出片選邏輯及與CPU 的連接。
解:根據(jù)CPU 的地址線、數(shù)據(jù)線,可確定整個(gè)主存空間為64K 8 。系統(tǒng)程序區(qū)由ROM 芯片組成;用戶程序區(qū)和系統(tǒng)程序工作區(qū)均由RAM 芯片組成。共需:8K 8 的ROM 芯片1 片,8K 8 的SRAM 芯片3 片,2K 8 的SRAM 芯片1 片。主存地址分配如圖5-23 所示,主存的連接框圖如圖5-24 所示。
19 .某半導(dǎo)體存儲(chǔ)器容量15KB ,其中固化區(qū)8KB ,可選EPROM 芯片為4K 8 ;可隨機(jī)讀/寫區(qū)7KB ,可選SRAM 芯片有:4K 4 、2K 4 、1K 4 。地址總線A15 ~ A0 (A0 為最低位) ,雙向數(shù)據(jù)總線D7 ~ D0 (D0 為最低位) ,R/W控制讀/寫,MREQ為低電平時(shí)允許存儲(chǔ)器工作信號(hào)。請(qǐng)?jiān)O(shè)計(jì)并畫出該存儲(chǔ)器邏輯圖,注明地址分配、片選邏輯、片選信號(hào)極性等。
20 .某機(jī)地址總線16 位A15 ~ A0 (A0 為最低位) ,訪存空間64KB 。外圍設(shè)備與主存統(tǒng)一編址,I/O 空間占用FC00 ~ FFFFH 。現(xiàn)用2164 芯片(64K 1)構(gòu)成主存儲(chǔ)器,請(qǐng)?jiān)O(shè)計(jì)并畫出該存儲(chǔ)器邏輯圖,并畫出芯片地址線、數(shù)據(jù)線與總線的連接邏輯以及行選信號(hào)與列選信號(hào)的邏輯式,使訪問I/O 時(shí)不訪問主存。動(dòng)態(tài)刷新邏輯可以暫不考慮。
解:存儲(chǔ)器邏輯圖如圖5-26 所示,為簡單起見,在圖中沒有考慮行選信號(hào)和列選信
號(hào),行選信號(hào)和列選信號(hào)的邏輯式可參考下題。
在64KB 空間的最后1KB 為I/O 空間,在此區(qū)間CS無效,不訪問主存。
21 .已知有16K 1 的DRAM 芯片,其引腳功能如下:地址輸入A6 ~ A0 ,行地址選擇RAS ,列地址選擇CAS ,數(shù)據(jù)輸入端DIN ,數(shù)據(jù)輸出端DOUT ,控制端WE 。請(qǐng)用給定芯片構(gòu)成256KB 的存儲(chǔ)器,采用奇偶校驗(yàn),試問:需要芯片的總數(shù)是多少? 并請(qǐng):
(1) 正確畫出存儲(chǔ)器的連接框圖。
(2) 寫出各芯片RAS和CAS形成條件。
(3) 若芯片內(nèi)部采用128 128 矩陣排列,求異步刷新時(shí)該存儲(chǔ)器的刷新間隔。
解:(1) 需要的芯片數(shù)= 128 片,存儲(chǔ)器的連接框圖如圖5-27 所示。
(3) 若芯片內(nèi)部采用128 128 矩陣排列,設(shè)芯片的最大刷新間隔時(shí)間為2ms ,則相
鄰兩行之間的刷新間隔為:
刷新間隔= 最大刷新間隔時(shí)間 行數(shù)= 2ms 128 = 15 .625μs
可取刷新間隔15 .5μs 。22.并行存儲(chǔ)器有哪幾種編址方式? 簡述低位交叉編址存儲(chǔ)器的工作原理。
解:并行存儲(chǔ)器有單體多字、多體單字和多體多字等幾種系統(tǒng)。
多體交叉訪問存儲(chǔ)器可分為高位交叉編址存儲(chǔ)器和低位交叉編址存儲(chǔ)器。低位交叉
編址又稱為橫向編址,連續(xù)的地址分布在相鄰的存儲(chǔ)體中,而同一存儲(chǔ)體內(nèi)的地址都是不
連續(xù)的。存儲(chǔ)器地址寄存器的低位部分經(jīng)過譯碼選擇不同的存儲(chǔ)體,而高位部分則指向
存儲(chǔ)體內(nèi)的存儲(chǔ)字。如果采用分時(shí)啟動(dòng)的方法,可以在不改變每個(gè)存儲(chǔ)體存取周期的前
提下,提高整個(gè)主存的速度。
22 .并行存儲(chǔ)器有哪幾種編址方式? 簡述低位交叉編址存儲(chǔ)器的工作原理。
解:并行存儲(chǔ)器有單體多字、多體單字和多體多字等幾種系統(tǒng)。多體交叉訪問存儲(chǔ)器可分為高位交叉編址存儲(chǔ)器和低位交叉編址存儲(chǔ)器。低位交叉編址又稱為橫向編址,連續(xù)的地址分布在相鄰的存儲(chǔ)體中,而同一存儲(chǔ)體內(nèi)的地址都是不連續(xù)的。存儲(chǔ)器地址寄存器的低位部分經(jīng)過譯碼選擇不同的存儲(chǔ)體,而高位部分則指向存儲(chǔ)體內(nèi)的存儲(chǔ)字。如果采用分時(shí)啟動(dòng)的方法,可以在不改變每個(gè)存儲(chǔ)體存取周期的前提下,提高整個(gè)主存的速度。
23 .什么是高速緩沖存儲(chǔ)器? 它與主存是什么關(guān)系? 其基本工作過程如何?
解:高速緩沖存儲(chǔ)器位于主存和CPU 之間,用來存放當(dāng)前正在執(zhí)行的程序段和數(shù)據(jù)中的活躍部分,使CPU 的訪存操作大多數(shù)針對(duì)Cache 進(jìn)行,從而使程序的執(zhí)行速度大大提高。高速緩沖存儲(chǔ)器的存取速度接近于CPU 的速度,但是容量較小,它保存的信息只是主存中最急需處理的若干塊的副本。當(dāng)CPU 發(fā)出讀請(qǐng)求時(shí),如果Cache 命中,就直接對(duì)Cache 進(jìn)行讀操作,與主存無關(guān);如果Cache 不命中,則仍需訪問主存,并把該塊信息一次從主存調(diào)入Cache 內(nèi)。若此時(shí)Cache 已滿,則須根據(jù)某種替換算法,用這個(gè)塊替換掉Cache 中原來的某塊信息。
24 .Cache 做在CPU 芯片內(nèi)有什么好處? 將指令Cache 和數(shù)據(jù)Cache 分開又有什么好處?
解:Cache 做在CPU 芯片內(nèi)可以提高CPU 訪問Cache 的速度。將指令Cache 和數(shù)據(jù)Cache 分開的好處是分體緩存支持并行訪問,即在取指部件取指令的同時(shí),取數(shù)部件要取數(shù)據(jù)。并且,指令在程序執(zhí)行中一般不需要修改,故指令Cache 中的內(nèi)容不需寫回到主存中去。
25 .設(shè)某機(jī)主存容量為4MB ,Cache 容量為16KB ,每塊包含8 個(gè)字,每字32 位,設(shè)計(jì)一個(gè)四路組相聯(lián)映像(即Cache 每組內(nèi)共有四個(gè)塊)的Cache 組織,要求:
(1) 畫出主存地址字段中各段的位數(shù)。
(2) 設(shè)Cache 的初態(tài)為空,CPU 依次從主存第0 、1 、2 、? 、99 號(hào)單元讀出100 個(gè)字(主
存一次讀出一個(gè)字) ,并重復(fù)按此次序讀8 次,問命中率是多少?
(3) 若Cache 的速度是主存的6 倍,試問有Cache 和無Cache 相比,速度提高多少倍?
解:(1) 主存容量為4MB ,按字節(jié)編址,所以主存地址為22 位,地址格式如圖5-29所示。
(2) 由于每個(gè)字塊有8 個(gè)字,所以主存第0 、1 、2 、? 、99 號(hào)字單元分別在字塊0 ~ 12
中,采用四路組相聯(lián)映像將分別映像到第0 組~ 12 組中,但Cache 起始為空,所以第一次讀時(shí)每一塊中的第一個(gè)單元沒命中,但后面7 次每個(gè)單元均可以命中。
(3) 設(shè)Cache 的存取周期為T ,則主存的存取周期為6 T 。
無Cache 的訪存時(shí)間為6 T
所以速度提高倍數(shù)= 6 1 .096 = 5 .47 倍。
26 .什么叫虛擬存儲(chǔ)器? 采用虛擬存儲(chǔ)技術(shù)能解決什么問題?
解:虛擬存儲(chǔ)器由主存儲(chǔ)器和聯(lián)機(jī)工作的輔助存儲(chǔ)器(通常為磁盤存儲(chǔ)器)共同組成,這兩個(gè)存儲(chǔ)器在硬件和系統(tǒng)軟件的共同管理下工作,對(duì)于應(yīng)用程序員,可以把它們看作是一個(gè)單一的存儲(chǔ)器。
采用虛擬存儲(chǔ)技術(shù)可以解決主存容量不足的問題。虛擬存儲(chǔ)器將主存和輔存的地址空間統(tǒng)一編址,形成一個(gè)龐大的存儲(chǔ)空間。在這個(gè)大空間里,用戶可以自由編程,完全不必考慮程序在主存是否裝得下以及這些程序?qū)碓谥鞔嬷械膶?shí)際存放位置。
27 . 已知采用頁式虛擬存儲(chǔ)器, 某程序中一條指令的虛地址是:
000001111111100000 。該程序的頁表起始地址是0011 ,頁面大小1K ,頁表中有關(guān)單元最
末四位(實(shí)頁號(hào))見下表:
請(qǐng)指出指令地址(虛地址)變換后的主存實(shí)地址。
解:頁面大小1K ,頁內(nèi)地址10 位,根據(jù)頁表,可以得出主存實(shí)地址為11001111100000 。
第六章
1 .控制器有哪幾種控制方式? 各有何特點(diǎn)?
解:控制器的控制方式可以分為3 種:同步控制方式、異步控制方式和聯(lián)合控制方式。
同步控制方式的各項(xiàng)操作都由統(tǒng)一的時(shí)序信號(hào)控制,在每個(gè)機(jī)器周期中產(chǎn)生統(tǒng)一數(shù)目的節(jié)拍電位和工作脈沖。這種控制方式設(shè)計(jì)簡單,容易實(shí)現(xiàn);但是對(duì)于許多簡單指令來說會(huì)有較多的空閑時(shí)間,造成較大數(shù)量的時(shí)間浪費(fèi),從而影響了指令的執(zhí)行速度。異步控制方式的各項(xiàng)操作不采用統(tǒng)一的時(shí)序信號(hào)控制,而根據(jù)指令或部件的具體情況決定,需要多少時(shí)間,就占用多少時(shí)間。異步控制方式?jīng)]有時(shí)間上的浪費(fèi),因而提高了機(jī)器的效率,但是控制比較復(fù)雜。聯(lián)合控制方式是同步控制和異步控制相結(jié)合的方式。
2 .什么是三級(jí)時(shí)序系統(tǒng)?
解:三級(jí)時(shí)序系統(tǒng)是指機(jī)器周期、節(jié)拍和工作脈沖。計(jì)算機(jī)中每個(gè)指令周期劃分為若干個(gè)機(jī)器周期,每個(gè)機(jī)器周期劃分為若干個(gè)節(jié)拍,每個(gè)節(jié)拍中設(shè)置一個(gè)或幾個(gè)工作脈沖。
3 .控制器有哪些基本功能? 它可分為哪幾類? 分類的依據(jù)是什么?
解:控制器的基本功能有:
(1) 從主存中取出一條指令,并指出下一條指令在主存中的位置。
(2) 對(duì)指令進(jìn)行譯碼或測(cè)試,產(chǎn)生相應(yīng)的操作控制信號(hào),以便啟動(dòng)規(guī)定的動(dòng)作。
(3) 指揮并控制CPU 、主存和輸入輸出設(shè)備之間的數(shù)據(jù)流動(dòng)。控制器可分為組合邏輯型、存儲(chǔ)邏輯型、組合邏輯與存儲(chǔ)邏輯結(jié)合型3 類,分類的依據(jù)在于控制器的核心——— 微操作信號(hào)發(fā)生器(控制單元CU)的實(shí)現(xiàn)方法不同。
4 .中央處理器有哪些功能? 它由哪些基本部件所組成?
解:從程序運(yùn)行的角度來看,CPU 的基本功能就是對(duì)指令流和數(shù)據(jù)流在時(shí)間與空間上實(shí)施正確的控制。對(duì)于馮 諾依曼結(jié)構(gòu)的計(jì)算機(jī)而言,數(shù)據(jù)流是根據(jù)指令流的操作而形成的,也就是說數(shù)據(jù)流是由指令流來驅(qū)動(dòng)的。中央處理器由運(yùn)算器和控制器組成。
5 .中央處理器中有哪幾個(gè)主要寄存器? 試說明它們的結(jié)構(gòu)和功能。
解:CPU 中的寄存器是用來暫時(shí)保存運(yùn)算和控制過程中的中間結(jié)果、最終結(jié)果及控制、狀態(tài)信息的,它可分為通用寄存器和專用寄存器兩大類。通用寄存器可用來存放原始數(shù)據(jù)和運(yùn)算結(jié)果,有的還可以作為變址寄存器、計(jì)數(shù)器、地址指針等。專用寄存器是專門用來完成某一種特殊功能的寄存器,如程序計(jì)數(shù)器PC 、
指令寄存器IR 、存儲(chǔ)器地址寄存器MAR 、存儲(chǔ)器數(shù)據(jù)寄存器MDR 、狀態(tài)標(biāo)志寄存器PSWR 等。
6 .某機(jī)CPU 芯片的主振頻率為8MHz ,其時(shí)鐘周期是多少μs ? 若已知每個(gè)機(jī)器周期平均包含4 個(gè)時(shí)鐘周期,該機(jī)的平均指令執(zhí)行速度為0 .8MIPS ,試問:
(1) 平均指令周期是多少μs ?
(2) 平均每個(gè)指令周期含有多少個(gè)機(jī)器周期?
(3) 若改用時(shí)鐘周期為0 .4μs 的CPU 芯片,則計(jì)算機(jī)的平均指令執(zhí)行速度又是多少M(fèi)IPS ?
(4) 若要得到40 萬次/s 的指令執(zhí)行速度,則應(yīng)采用主振頻率為多少M(fèi)Hz 的CPU芯片?
解:時(shí)鐘周期= 1 8MHz = 0 .125μs
(1) 平均指令周期= 1 0 .8MIPS = 1 .25μs
(2) 機(jī)器周期= 0 .125μs 4 = 0 .5μs
平均每個(gè)指令周期的機(jī)器周期數(shù)= 1 .25μs 0 .5μs 4 = 2 .5
(4) 主振頻率= 4MHz
7 .以一條典型的單地址指令為例,簡要說明下列部件在計(jì)算機(jī)的取指周期和執(zhí)行周期中的作用。
(1) 程序計(jì)數(shù)器PC ;
(2) 指令寄存器IR ;
(3) 算術(shù)邏輯運(yùn)算部件ALU ;
(4) 存儲(chǔ)器數(shù)據(jù)寄存器MDR ;
(5) 存儲(chǔ)器地址寄存器MAR 。
解:(1) 程序計(jì)數(shù)器PC :存放指令地址;
(2) 指令寄存器IR :存放當(dāng)前指令;
(3) 算術(shù)邏輯運(yùn)算部件ALU :進(jìn)行算邏運(yùn)算;
(4) 存儲(chǔ)器數(shù)據(jù)寄存器MDR :存放寫入或讀出的數(shù)據(jù)/指令;
(5) 存儲(chǔ)器地址寄存器MAR :存放寫入或讀出的數(shù)據(jù)/指令的地址。以單地址指令“加1(INC A)”為例,該指令分為3 個(gè)周期:取指周期、分析取數(shù)周期、執(zhí)行周期。3 個(gè)周期完成的操作如表6-2 所示。
8 .什么是指令周期? 什么是CPU 周期? 它們之間有什么關(guān)系?
解:指令周期是指取指令、分析取數(shù)到執(zhí)行指令所需的全部時(shí)間。CPU 周期(機(jī)器周期)是完成一個(gè)基本操作的時(shí)間。一個(gè)指令周期劃分為若干個(gè)CPU 周期。
9 .指令和數(shù)據(jù)都存放在主存,如何識(shí)別從主存儲(chǔ)器中取出的是指令還是數(shù)據(jù)?
解:指令和數(shù)據(jù)都存放在主存,它們都以二進(jìn)制代碼形式出現(xiàn),區(qū)分的方法為:
(1) 取指令或數(shù)據(jù)時(shí)所處的機(jī)器周期不同:取指周期取出的是指令;分析取數(shù)或執(zhí)行周期取出的是數(shù)據(jù)。
(2) 取指令或數(shù)據(jù)時(shí)地址的來源不同:指令地址來源于程序計(jì)數(shù)器;數(shù)據(jù)地址來源于地址形成部件。
10 .CPU 中指令寄存器是否可以不要? 指令譯碼器是否能直接對(duì)存儲(chǔ)器數(shù)據(jù)寄存器MDR 中的信息譯碼? 為什么? 請(qǐng)以無條件轉(zhuǎn)移指令JMP A 為例說明。
解:指令寄存器不可以不要。指令譯碼器不能直接對(duì)MDR 中的信息譯碼,因?yàn)樵谌≈钢芷贛DR 的內(nèi)容是指令,而在取數(shù)周期MDR 的內(nèi)容是操作數(shù)。以JMP A 指令為例,假設(shè)指令占兩個(gè)字,第一個(gè)字為操作碼,第二個(gè)字為轉(zhuǎn)移地址,它們從主存中取出時(shí)都需要經(jīng)過MDR ,其中只有第一個(gè)字需要送至指令寄存器,并且進(jìn)行指令的譯碼,而第二個(gè)字不需要送指令寄存器。
11 .設(shè)一地址指令格式如下:
@ OP A
現(xiàn)在有4 條一地址指令:LOAD(取數(shù)) 、ISZ(加“1”為零跳) 、DSZ(減“1”為零跳) 、STORE(存數(shù)) ,在一臺(tái)單總線單累加器結(jié)構(gòu)的機(jī)器上運(yùn)行,試排出這4 條指令的微操作序列。要求:當(dāng)排ISZ 和DSZ 指令時(shí)不要破壞累加寄存器Acc 原來的內(nèi)容。
解:(1) LOAD(取數(shù))指令
PC → MAR ,READ ;取指令
MM → MDR
MDR → IR ,PC + 1 → PC
A → MAR ,READ ;取數(shù)據(jù)送Acc
MM → MDR
MDR → Acc
(2) ISZ(加“1”為零跳)指令
取指令微操作略。
A → MAR ,READ ;取數(shù)據(jù)送Acc
MM → MDR
MDR → Acc
Acc+ 1 → Acc ;加1
If Z = 1 then PC + 1 → PC ;結(jié)果為0 ,PC + 1
Acc → MDR ,WRITE ;保存結(jié)果
MDR → MM
Acc - 1 → Acc ;恢復(fù)Acc
(3) DSZ(減“1”為零跳)指令
取指令微操作略。
A → MAR ,READ ;取數(shù)據(jù)送Acc
MM → MDR
MDR → Acc
Acc - 1 → Acc ;減1
If Z = 1 then PC + 1 → PC ;結(jié)果為0 ,PC + 1
Acc → MDR ,WRITE ;保存結(jié)果
MDR → MM
Acc+ 1 → Acc ;恢復(fù)Acc
(4) STORE(存數(shù))指令:
取指令微操作略。
A → MAR ;Acc 中的數(shù)據(jù)寫
入主存單元
Acc → MDR ,WRITE
MDR → MM
12 .某計(jì)算機(jī)的CPU 內(nèi)部結(jié)構(gòu)如圖6唱22 所示。兩組總線之間的所有數(shù)據(jù)傳送通過ALU 。ALU 還具有完成以下功能的能力:
F = A ; F = B
F = A + 1 ; F = B + 1
F = A - 1 ; F = B - 1
寫出轉(zhuǎn)子指令(JSR)的取指和執(zhí)行周期的微操作序列。JSR 指令占兩個(gè)字,第一個(gè)字是操作碼,第二個(gè)
字是子程序的入口地址。返回地址保存在存儲(chǔ)器堆棧中,堆棧指示器始終指向棧頂。
解: ① PC → B ,F = B ,F → MAR ,Read ;取指令的第一個(gè)字
② PC → B ,F = B + 1 ,F → PC
③ MDR → B ,F = B ,F → IR
④ PC → B ,F = B ,F → MAR ,Read ;取指令的第二個(gè)字
⑤ PC → B ,F = B + 1 ,F → PC
⑥ MDR → B ,F = B ,F → Y
⑦ SP → B ,F = B - 1 ,F → SP ,F → MAR ;修改棧指針,返回地址壓入堆棧
⑧ PC → B ,F = B ,F → MDR ,Write
⑨ Y → A ,F = A ,F → PC ;子程序的首地址→ PC
⑩ End
13 .某機(jī)主要部件如圖6-23 所示。
(1) 請(qǐng)補(bǔ)充各部件間的主要連接線,并注明數(shù)據(jù)流動(dòng)方向。
(2) 擬出指令A(yù)DD (R1 ) ,(R2 ) + 的執(zhí)行流程(含取指過程與確定后繼指令地址) 。該指令的含義是進(jìn)行加法操作,源操作數(shù)地址和目的操作數(shù)地址分別在寄存器R1 和R2中,目的操作數(shù)尋址方式為自增型寄存器間址。
解:(1) 將各部件間的主要連接線補(bǔ)充完后如圖6-24 所示。
(2) 指令A(yù)DD (R1 ) ,(R2 ) + 的含義為
((R1 )) + ((R2 )) → (R2 )
(R2 ) + 1 → R2
指令的執(zhí)行流程如下:
① (PC) → MAR ;取指令
② Read
③ M(MAR) → MDR → IR
④ (PC) + 1 → PC
⑤ (R1 ) → MAR ;取被加數(shù)
⑥ Read
⑦ M(MAR) → MDR → C
⑧ (R2 ) → MAR ;取加數(shù)
⑨ Read
⑩ M(MAR) → MDR → D
(R2 ) + 1 → R2 ;修改目的地址
(C) + (D) → MDR ;求和并保存結(jié)果
Write
MDR → MM
14 .CPU 結(jié)構(gòu)如圖6唱25 所示,其中有一個(gè)累加寄存器AC 、一個(gè)狀態(tài)條件寄存器和其他4 個(gè)寄存器,各部件之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳送方向。
(1) 標(biāo)明4 個(gè)寄存器的名稱。
(2) 簡述指令從主存取出送到控制器的數(shù)據(jù)通路。
(3) 簡述數(shù)據(jù)在運(yùn)算器和主存之間進(jìn)行存取訪問的數(shù)據(jù)通路。
解:(1) 這4 個(gè)寄存器中,a 為存儲(chǔ)器數(shù)據(jù)寄存器MDR ,b 為指令寄存器IR ,c 為存儲(chǔ)器地址寄存器MAR ,d 為程序計(jì)數(shù)器PC 。
(2) 取指令的數(shù)據(jù)通路:PC → MAR → MM → MDR → IR
(3) 數(shù)據(jù)從主存中取出的數(shù)據(jù)通路(設(shè)數(shù)據(jù)地址為X) :X → MAR → MM → MDR → ALU → AC
數(shù)據(jù)存入主存中的數(shù)據(jù)通路(設(shè)數(shù)據(jù)地址為Y) :Y → MAR ,AC → MDR → MM
15 .什么是微命令和微操作? 什么是微指令? 微程序和機(jī)器指令有何關(guān)系? 微程序和程序之間有何關(guān)系?
解:微命令是控制計(jì)算機(jī)各部件完成某個(gè)基本微操作的命令。微操作是指計(jì)算機(jī)中最基本的、不可再分解的操作。微命令和微操作是一一對(duì)應(yīng)的,微命令是微操作的控制信號(hào),微操作是微命令的操作過程。微令是若干個(gè)微命令的集合。微程序是機(jī)器指令的實(shí)時(shí)解釋器,每一條機(jī)器指令都對(duì)應(yīng)一個(gè)微程序。微程序和程序是兩個(gè)不同的概念。微程序是由微指令組成的,用于描述機(jī)器指令,實(shí)際上是機(jī)器指令的實(shí)時(shí)解釋器,微程序是由計(jì)算機(jī)的設(shè)計(jì)者事先編制好并存放在控制存儲(chǔ)器中的,一般不提供給用戶;程序是由機(jī)器指令組成的,由程序員事先編制好并存放在主存儲(chǔ)器中。
16 .什么是垂直型微指令? 什么是水平型微指令? 它們各有什么特點(diǎn)? 又有什么區(qū)別?
解:垂直型微指令是指一次只能
展開閱讀全文
總結(jié)
以上是生活随笔為你收集整理的计算机组成原理试题解析答案,计算机组成原理习题答案解析(蒋本珊)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 大学生必备软件免费自学视频教程,让那些培
- 下一篇: hibernate二级缓存(一)一级缓存
