計算機組成原理_第四版課后習題答案(完整版)
第一章
1. 比較數字計算機和模擬計算機的特點。
解:模擬計算機的特點:數值由連續量來表示,運算過程是連續的;
數字計算機的特點:數值由數字量(離散量)來表示,運算按位進行。
兩者主要區別見P1 表1.1。
2. 數字計算機如何分類?分類的依據是什么?
解:分類: 數字計算機分為專用計算機和通用計算機。通用計算機又分為巨型機、大型機、
中型機、小型機、微型機和單片機六類。
分類依據:專用和通用是根據計算機的效率、速度、價格、運行的經濟性和適應性來划分的。
通用機的分類依據主要是體積、簡易性、功率損耗、性能指標、數據存儲容量、
指令系統規模和機器價格等因素。
3. 數字計算機有那些主要應用?
(略)
4. 馮. 諾依曼型計算機的主要設計思想是什么?它包括哪些主要組成部分?
解:馮. 諾依曼型計算機的主要設計思想是:存儲程序和程序控制。
存儲程序:將解題的程序(指令序列)存放到存儲器中;
程序控制:控制器順序執行存儲的程序,按指令功能控制全機協調地完成運算任務。
主要組成部分有:控制器、運算器、存儲器、輸入設備、輸出設備。
5. 什么是存儲容量?什么是單元地址?什么是數據字?什么是指令字?
解:存儲容量:指存儲器可以容納的二進制信息的數量,通常用單位KB、MB、GB來度量,存儲容
量越大,表示計算機所能存儲的信息量越多,反映了計算機存儲空間的大小。
單元地址:單元地址簡稱地址,在存儲器中每個存儲單元都有唯一的地址編號,稱為單元地
址。
數據字: 若某計算機字是運算操作的對象即代表要處理的數據,則稱數據字。
指令字: 若某計算機字代表一條指令或指令的一部分,則稱指令字。
6. 什么是指令?什么是程序?
解:指令:計算機所執行的每一個基本的操作。
程序:解算某一問題的一串指令序列稱為該問題的計算程序,簡稱程序。
7. 指令和數據均存放在內存中,計算機如何區分它們是指令還是數據?
解:一般來講,在取指周期中從存儲器讀出的信息即指令信息;而在執行周期中從存儲器中讀出的
信息即為數據信息。
8. 什么是內存?什么是外存?什么是CPU?什么是適配器?簡述其功能。
解:內存:一般由半導體存儲器構成,裝在底版上,可直接和CPU交換信息的存儲器稱為內存儲
器,簡稱內存。用來存放經常使用的程序和數據。
外存:為了擴大存儲容量,又不使成本有很大的提高,在計算機中還配備了存儲容量更大的
磁盤存儲器和光盤存儲器,稱為外存儲器,簡稱外存。外存可存儲大量的信息,計算
機需要使用時,再調入內存。
CPU:包括運算器和控制器。基本功能為:指令控制、操作控制、時間控制、數據加工。
適配器:連接主機和外設的部件,起一個轉換器的作用,以使主機和外設協調工作。
9. 計算機的系統軟件包括哪幾類?說明它們的用途。
解:系統軟件包括:(1)服務程序:診斷、排錯等
(2)語言程序:匯編、編譯、解釋等
(3)操作系統
(4)數據庫管理系統
用途:用來簡化程序設計,簡化使用方法,提高計算機的使用效率,發揮和擴大計算機的功能
及用途。
10. 說明軟件發展的演變過程。
(略)
11. 現代計算機系統如何進行多級划分?這種分級觀點對計算機設計會產生什么影響?
解:多級划分圖見P16圖1.6。可分為:微程序設計級、一般機器級、操作系統級、匯編語言級和
高級語言級。
用這種分級的觀點來設計計算機,對保證產生一個良好的系統結構是有很大幫助的。
12. 為什么軟件能夠轉化為硬件?硬件能夠轉化為軟件?實現這種轉化的媒介是什么?
(略)
13. "計算機應用"與"應用計算機"在概念上等價嗎?用學科角度和計算機系統的層次結構來壽命你的觀點。
(略)
第二章
1. 寫出下列各數的原碼、反碼、補碼、移碼表示(用8位二進制數)。其中MSB是最高位(又是符號位)LSB是最低位。如果是小數,小數點在MSB之后;如果是整數,小數點在LSB之后。
(1) -35/64 (2) 23/128 (3) -127 (4) 用小數表示-1 (5) 用整數表示-1
解:(1)先把十進制數-35/64寫成二進制小數:
(-35/64)10=(-100011/1000000)2=(-100011×2-110)2=(-0.100011)2
令x=-0.100011B
∴ [x]原=1.1000110 (注意位數為8位) [x]反=1.0111001
[x]補=1.0111010 [x]移=0.0111010
(2) 先把十進制數23/128寫成二進制小數:
(23/128)10=(10111/10000000)2=(10111×2-111)2=(0.0001011)2
令x=0.0001011B
∴ [x]原=0.0001011 [x]反=0.0001011
[x]補=0.0001011 [x]移=1.0001011
(3) 先把十進制數-127寫成二進制小數:
(-127)10=(-1111111)2
令x= -1111111B
∴ [x]原=1.1111111 [x]反=1.0000000
[x]補=1.0000001 [x]移=1.0000001
(4) 令x=-1.000000B
∴ 原碼、反碼無法表示
[x]補=1.0000000 [x]移=0.0000000
(5) 令Y=-1=-0000001B
∴ [Y]原=10000001 [Y]反=11111110
[Y]補=11111111 [Y]移=01111111
2. 設[X]補= a0,a1,a2…a6 , 其中ai取0或1,若要x>-0.5,求a0,a1,a2,…,a6 的取值。
解:a0= 1,a1= 0, a2,…,a6=1…1。
3. 有一個字長為32位的浮點數,階碼10位(包括1位階符),用移碼表示;尾數22位(包括1位尾符)用補碼表示,基數R=2。請寫出:
(1) 最大數的二進制表示;
(2) 最小數的二進制表示;
(3) 規格化數所能表示的數的范圍;
(4) 最接近於零的正規格化數與負規格化數。
解:(1)1111111111 0111111111111111111111
(2)1111111111 1000000000000000000000
(3)1111111111 0111111111111111111111~0111111111 1000000000000000000000
(4)0000000000 0000000000000000000001~0000000000 1111111111111111111111
4. 將下列十進制數表示成浮點規格化數,階碼3位,用補碼表示;尾數9位,用補碼表示。
(1) 27/64
(2) -27/64
解:(1)27/64=11011B×=0.011011B=0.11011B×
浮點規格化數 : 1111 0110110000
(2) -27/64= -11011B×= -0.011011B= -0.11011B×
浮點規格化數 : 1111 1001010000
5. 已知X和Y, 用變形補碼計算X+Y, 同時指出運算結果是否溢出。
(1)X=0.11011 Y=0.00011
(2)X= 0.11011 Y= -0.10101
(3)X=-0.10110 Y=-0.00001
解:(1)先寫出x和y的變形補碼再計算它們的和
[x]補=00.11011 [y]補=00.00011
[x+y]補=[x]補+[y]補=00.11011+00.00011=0.11110
∴ x+y=0.1111B 無溢出。
(2)先寫出x和y的變形補碼再計算它們的和
[x]補=00.11011 [y]補=11.01011
[x+y]補=[x]補+[y]補=00.11011+11.01011=00.00110
∴ x+y=0.0011B 無溢出。
(3)先寫出x和y的變形補碼再計算它們的和
[x]補=11.01010 [y]補=11.11111
[x+y]補=[x]補+[y]補=11.01010+11.11111=11.01001
∴ x+y= -0.10111B 無溢出
6. 已知X和Y, 用變形補碼計算X-Y, 同時指出運算結果是否溢出。
(1) X=0.11011 Y= -0.11111
(2) X=0.10111 Y=0.11011
(3) X=0.11011 Y=-0.10011
解:(1)先寫出x和y的變形補碼,再計算它們的差
[x]補=00.11011 [y]補=11.00001 [-y]補=00.11111
[x-y]補=[x]補+[-y]補=00.11011+00.11111=01.11010
∵運算結果雙符號不相等 ∴ 為正溢出
X-Y=+1.1101B
(2)先寫出x和y的變形補碼,再計算它們的差
[x]補=00.10111 [y]補=00.11011 [-y]補=11.00101
[x-y]補=00.10111+11.00101=11.11100
∴ x-y= -0.001B 無溢出
(3)先寫出x和y的變形補碼,再計算它們的差
[x]補=00.11011 [y]補=11.01101 [-y]補=00.10011
[x-y]補=[x]補+[-y]補=00.11011+00.10011=01.01110
∵運算結果雙符號不相等 ∴ 為正溢出
X-Y=+1.0111B
7. 用原碼陣列乘法器、補碼陣列乘法器分別計算X×Y。
(1)X=0.11011 Y= -0.11111
(2)X=-0.11111 Y=-0.11011
解:(1)用原碼陣列乘法器計算:
[x]補=0.11011 [y]補=1.00001
(0) 1 1 0 1 1
×) (1) 0 0 0 0 1
----------------------------------
(0) 1 1 0 1 1
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) (1) (1) (0) (1) (1)
-----------------------------------------
(1) 0 0 1 0 1 1 1 0 1 1
[x×y]補=1.0010111011
∴ x×y= -0.1101000101
8. 用原碼陣列除法器計算 X÷Y。
(1)X=0.11000 Y= -0.11111
(2)X=-0.01011 Y=0.11001
解:(1)[x]原=[x]補=0.11000 [-∣y∣]補=1.00001
被除數 X 0.11000
+[-∣y∣]補 1.00001
----------------------
余數為負 1.11001 →q0=0
左移 1.10010
+[|y|]補 0.11111
----------------------
余數為正 0.10001 →q1=1
左移 1.00010
+[-|y|]補 1.00001
----------------------
余數為正 0.00011 →q2=1
左移 0.00110
+[-|y|]補 1.00001
----------------------
余數為負 1.00111 →q3=0
左移 0.01110
+[|y|]補 0.11111
----------------------
余數為負 1.01101 →q4=0
左移 0.11010
+[|y|]補 0.11111
----------------------
余數為負 1.11001 →q5=0
+[|y|]補 0.11111
----------------------
余數 0.11000
故 [x÷y]原=1.11000 即 x÷y= -0.11000B
余數為 0.11000B×
9. 設階為5位(包括2位階符), 尾數為8位(包括2位數符), 階碼、尾數均用補碼表示, 完成下列取值的[X+Y],[X-Y]運算:
(1)X=×0.100101 Y=
×(-0.011110)
(2)X=×(-0.010110) Y=
×(0.010110)
解:(1)將y規格化得:y=×(-0.111100)
[x]浮=1101,00.100101 [y]浮=1101,11.000100 [-y]浮=1101,00.111100
① 對階
[ΔE]補=[Ex]補+[-Ey]補=1101+0011=0000
∴ Ex=Ey
② 尾數相加
相加 相減
00.100101 00.100101
+ 11.000100 + 00.111100
------------ --------------
11.101001 01.100001
[x+y]浮=1101,11.101001 左規 [x+y]浮=1100,11.010010
∴ x+y=×(-0.101110)
[x-y]浮=1101,01.100001 右規 [x-y]浮=1110,00.1100001
舍入處理得 [x-y]浮=1110,00.110001
∴ x-y=×0.110001
(2) [x]浮=1011,11.101010 [y]浮=1100,00.010110 [-y]浮=1100,11.101010
① 對階
[ΔE]補=[Ex]補+[-Ey]補=1011+0100=1111
∴ △E= -1 [x]浮=1100,11.110101(0)
② 尾數相加
相加 相減
11.110101(0) 11.110101(0)
+ 00.010110 + 11.101010
-------------- ------------------
00.001011(0) 11.011111(0)
[x+y]浮=1100,00.001011(0) 左規 [x+y]浮=1010,00.1011000
∴ x+y=×0.1011B
[x-y]浮=1100,11.011111(0)
∴ x-y=×(-0.100001B)
13. 某加法器進位鏈小組信號為C4C3C2C1 ,低位來的信號為C0 ,請分別按下述兩種方式寫出C4C3C2C1的邏輯表達式。
(1) 串行進位方式 (2) 並行進位方式
解 :(1)串行進位方式:
C1 = G1 + P1 C0 其中: G1 = A1 B1 , P1 = A1⊕B1
C2 = G2 + P2 C1 G2 = A2 B2 , P2 = A2⊕B2
C3 = G3 + P3 C2 G3 = A3 B3 , P3 = A3⊕B3
C4 = G4 + P4 C3 G4 = A4 B4 , P4 = A4⊕B4
(2) 並行進位方式:
C1 = G1 + P1 C0
C2 = G2 + P2 G1 + P2 P1 C0
C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C0
C4 = G4 + P4 G3 + P4 P3 G2 + P4 P3 P2 G1 + P4 P3 P2 P1 C0
其中 G1-G4 ,P1-P4 表達式與串行進位方式相同。
14. 某機字長16位,使用四片74181組成ALU,設最低位序標注為0位,要求:
(1)寫出第5位的進位信號C6的邏輯表達式;
(2)估算產生C6所需的最長時間;
(3)估算最長的求和時間。
解:(1) 組成最低四位的74181進位輸出為:C4=G+P C0 ,C0為向第0位的進位
其中:G=y3+x3y2+x2x3y1+x1x2x3y0, P=x0x1x2x3
所以 :C5=y4+x4C4
C6=y5+x5C5=y5+x5y4+x5x4C4
(2) 設標准門延遲時間為T,"與或非"門延遲時間為1.5T,則進位信號C0由最低位傳送至C6需經一個反相器,兩級"與或非"門,故產生C6的最長延遲時間為:
T+2×1.5T=4T
(3)最長求和時間應從施加操作數到ALU算起:第一片74181有3級"與或非"門(產生控制參數x0,y0Cn+4),第二、第三片74181共2級反相器和2級"與或非"門(進位鏈),第四片74181求和邏輯(1級"與或非"門和1級半加器,其延遲時間為3T),故總的加法時間為:
T=3×1.5T+2T+2×1.5T+1.5T+1.5T+3T=14T
17.設A,B,C是三個16位的通用寄存器,請設計一個16位定點補碼運算器,能實現下述功能:
(1) A±B→A
(2) B×C→A, C(高位積在寄存器A中)
(3) A÷B→C(商在寄存器C中)
解:設計能完成加、減、乘、除運算的16位定點補碼運算器框圖。
分析各寄存器作用:
加 減 乘 除
A 被加數→和 同左 初始為0 被除數→余數
部分積→乘積(H) 除數
B 加數 同左 被乘數
C -- -- 乘數→乘積(L) 商
∴ A:累加器(16位),具有輸入、輸出、累加功能及雙向移位功能;
B:數據寄存器(16位),具有輸入、輸出功能;
C:乘商寄存器(16位),具有輸入、輸出功能及雙向移位功能。
畫出框圖:
第三章
1.有一個具有20位地址和32位字長的存儲器,問:
(1) 該存儲器能存儲多少個字節的信息?
(2) 如果存儲器由512K×8位SRAM芯片組成,需要多少芯片?
(3) 需要多少位地址作芯片選擇?
解:(1)∵ 220= 1M, ∴ 該存儲器能存儲的信息為:1M×32/8=4MB
(2)(1000/512)×(32/8)= 8(片)
(3) 需要1位地址作為芯片選擇。
2. 已知某64位機主存采用半導體存儲器,其地址碼為26位,若使用256K×16位的DRAM芯片組成該機所允許的最大主存空間,並選用模塊板結構形式,問:
(1) 每個模塊板為1024K×64位,共需幾個模塊板?
(2) 個模塊板內共有多少DRAM芯片?
(3)主存共需多少DRAM芯片? CPU如何選擇各模塊板?
解:(1). 共需模塊板數為m:
m=÷
=64 (塊)
(2). 每個模塊板內有DRAM芯片數為n:
n=(/
) ×(64/16)=16 (片)
(3) 主存共需DRAM芯片為:16×64=1024 (片)
每個模塊板有16片DRAM芯片,容量為1024K×64位,需20根地址線(A19~A0)完成模塊
板內存儲單元尋址。一共有64塊模塊板,采用6根高位地址線(A25~A20),通過
6:64譯碼器譯碼產生片選信號對各模塊板進行選擇。
3. 用16K×8位的DRAM芯片組成64K×32位存儲器,要求:
(1) 畫出該存儲器的組成邏輯框圖。
(2) 設存儲器讀/寫周期為0.5μS, CPU在1μS內至少要訪問一次。試問采用哪種刷新方式比較合理?兩次刷新的最大時間間隔是多少?對全部存儲單元刷新一遍所需的實際刷新時間是多少?
解:(1)組成64K×32位存儲器需存儲芯片數為
N=(64K/16K)×(32位/8位)=16(片)
每4片組成16K×32位的存儲區,有A13-A0作為片內地址,用A15 A14經2:4譯碼器產生片選信號 ,邏輯框圖如下所示:
(2)依題意,采用異步刷新方式較合理,可滿足CPU在1μS內至少訪問內存一次的要求。
設16K×8位存儲芯片的陣列結構為128行×128列,按行刷新,刷新周期T=2ms,則異步
刷新的間隔時間為:
則兩次刷新的最大時間間隔發生的示意圖如下
可見,兩次刷新的最大時間間隔為tmax
tmax=15.5-0.5=15 (μS)
對全部存儲單元刷新一遍所需時間為t R
t R =0.5×128=64 (μS)
7.某機器中,已知配有一個地址空間為0000H-3FFFH的ROM區域。現在再用一個RAM芯片(8K×8)形成40K×16位的RAM區域,起始地址為6000H,假定RAM芯片有和
信號控制端。CPU的地址總線為A15-A0,數據總線為D15-D0,控制信號為R/
(讀/寫),
(訪存),要求:
(1) 畫出地址譯碼方案。
(2) 將ROM與RAM同CPU連接。
解:(1)依題意,主存地址空間分布如右圖所示,可選用2片27128(16K×8位)的EPROM作為
ROM區;10片的8K×8位RAM片組成40K×16位的RAM區。27128需14位片內地址,而RAM需13位
片內地址,故可用A15-A13三位高地址經譯碼產生片選信號,方案如下:
(2)
8. 存儲器容量為64M,字長64位,模塊數m = 8,分別用順序方式和交叉方式進行組織。存儲周期T = 100ns,數據總線寬度為64位,總線周期τ = 10ns .問順序存儲器和交叉存儲器的帶寬各是多少?
解:信息總量: q = 64位 ×8 =512位
順序存儲器和交叉存儲器讀出8個字的時間分別是:
t2 = m T = 8×100ns =8×10 (s)
t1 = T + (m - 1) = 100 + 7×10 = 1.7 ×10
(s)
順序存儲器帶寬是:
W2 = q / t2 = 512÷(8×10 )= 64 ×10
(位/ S)
交叉存儲器帶寬是:
W1 = q / t1 = 512÷(1.7 ×10)= 301 ×10
(位/ S)
9. CPU執行一段程序時, cache完成存取的次數為2420次,主存完成存取的次數為80
次,已知cache存儲周期為40ns,主存存儲周期為240ns,求cache/主存系統的效率和平均訪問時間。
解:先求命中率h
h=nc/(nc +nm )=2420÷(2420+80)=0.968
則平均訪問時間為ta
ta=0.968×40+(1-0.968) ×240=46.4(ns)
r =240÷40=6
cache/主存系統的效率為e
e=1/[r+(1-r)×0.968]=86.2%
10.已知Cache存儲周期40ns,主存存儲周期200ns,Cache/主存系統平均訪問時間為50ns,求Cache的命中率是多少?
解: ∵ ta = tc× h +tr×(1-h)
∴ h =(ta-tr)/(tc-tr)=(50-200)/(40-200)=15/16=0.94
11.主存容量為4MB,虛存容量為1GB,則虛存地址和物理地址各為多少位?如頁面大小為4KB,則頁表長度是多少?
解:已知主存容量為4MB,虛存容量為1GB
∵ =4M ∴物理地址為22位
又 ∵ =1G ∴虛擬地址為30位
頁表長度為 1GB÷4KB=230÷212=218=256K
14.假設主存只有a,b,c三個頁框,組成a進c出的FIFO隊列,進程訪問頁面的序列是0,1,2.4,2,3,0,2,1.3,2號。用列表法求采用LRU替換策略時的命中率。
解:
∴命中率為
15.從下列有關存儲器的描述中,選擇出正確的答案:
A. 多體交叉存儲主要解決擴充容量問題;
B. 訪問存儲器的請求是由CPU發出的;
C. Cache與主存統一編址,即主存空間的某一部分屬於Cache;
D. Cache的功能全由硬件實現。
解: D
16.從下列有關存儲器的描述中,選擇出正確的答案:
A.在虛擬存儲器中,外存和主存一相同的方式工作,因此允許程序員用比主存空間大得
多的外存空間編程;
B.在虛擬存儲器中,邏輯地址轉換成物理地址是由硬件實現的,僅在頁面失效時才由操
作系統將被訪問頁面從外存調到內存,必要時還要先把被淘汰的頁面內容寫入外存;
C.存儲保護的目的是:在多用戶環境中,既要防止一個用戶程序出錯而破壞系統軟件或
其他用戶程序,又要防止一個用戶訪問不是分配給他的主存區,以達到數據安全和保
密的要求。
解:C
第四章
1.ASCll碼是7位,如果設計主存單元字長為32位,指令字長為12位,是否合理?為什
么?
解:指令字長設計為12位不是很合理。主存單元字長為32位,一個存儲單元可存放4個ASCII碼,
余下4位可作為ASCII碼的校驗位(每個ASCII碼帶一位校驗位),這樣設計還是合理的。
但是,設計指令字長為12 位就不合理了,12位的指令碼存放在字長32位的主存單元中,
造成19位不能用而浪費了存儲空間。
2.假設某計算機指令長度為20位,具有雙操作數、單操作數、無操作數三類指令形式,每個操作數地址規定用6位表示。問:
若操作碼字段固定為8位,現已設計出m條雙操作數指令,n條無操作數指令,在此情況下,這台計算機最多可以設計出多少條單操作數指令?
解:這台計算機最多可以設計出256-m-n條單操作數指令
3.指令格式結構如下所示,試分析指令格式及尋址方式特點。
解:指令格式及尋址方式特點如下:
① 單字長二地址指令;
② 操作碼OP可指定=64條指令;
③ RR型指令,兩個操作數均在寄存器中,源和目標都是通用寄存器(可分別指定16個寄存器
之一);
④ 這種指令格式常用於算術邏輯類指令。
4.指令格式結構如下所示,試分析指令格式及尋址方式特點。
解:指令格式及尋址方式特點如下:
① 雙字長二地址指令;
② 操作碼OP可指定=64條指令;
③ RS型指令,兩個操作數一個在寄存器中(16個寄存器之一),另一個在存儲器中;
④ 有效地址通過變址求得:E=(變址寄存器)± D,變址寄存器可有16個。
5.指令格式結構如下所示,試分析指令格式及尋址方式特點。
解:指令格式及尋址方式特點如下:
① 單字長二地址指令;
② 操作碼OP可指定=16條指令;
③ 有8個通用寄存器,支持8種尋址方式;
④ 可以是RR型指令、SS型指令、RS型指令、
6.一種單地址指令格式如下所示,其中I為間接特征,X為尋址模式,D為形式地址。I,X,D組成該指令的操作數有效地址E。設R為變址寄存器,R1 為基值寄存器,PC為程序計數器,請在下表中第一列位置填入適當的尋址方式名稱。
解: ① 直接尋址
② 相對尋址
③ 變址尋址
④ 基址尋址
⑤ 間接尋址
⑥ 基址間址尋址
7.某計算機字長16位,主存容量為64K字,采用單字長單地址指令,共有40條指令,試采用直接、立即、變址、相對四種尋址方式設計指令格式。
解:40條指令需占用操作碼字段(OP)6位,這樣指令余下長度為10位。為了覆蓋主存640K字的地
址空間,設尋址模式(X)2位,形式地址(D)8位,其指令格式如下:
尋址模式定義如下:
X= 0 0 直接尋址 有效地址 E=D(直接尋址為256個存儲單元)
X= 0 1 立即尋址 D字段為操作數
X= 1 0 變址尋址 有效地址 E= (RX)+D (可尋址64K個存儲單元)
X= 1 1 相對尋址 有效地址 E=(PC)+D (可尋址64K個存儲單元)
其中RX為變址寄存器(16位),PC為程序計數器(16位),在變址和相對尋址時,位移量D可 正可負。
8.某機字長為32位,主存容量為1M,單字長指令,有50種操作碼,采用頁面尋址、立即、直接等尋址方式。CPU中有PC,IR,AR, DR和16個通用寄存器,頁面尋址可用PC高位部分與形式地址部分拼接成有效地址。問:
(1)指令格式如何安排?
(2)主存能划分成多少頁面?每頁多少單元?
(3)能否增加其他尋址方式?
解: (1)依題意,指令字長32位,主存1M字,需20位地址A19-A0。50種操作碼,需6位OP,指令
尋址方式Mode為2位,指定寄存器Rn需4位。設有單地址指令、雙地址指令和零地址指
令,現只討論前二種指令。
單地址指令的格式為:
Mode=00時為立即尋址方式,指令的23-0位為立即數;
Mode=01時為直接尋址方式,指令的19-0位為有效地址。
雙地址指令的格式為:
Mode1=01時為寄存器直接尋址方式,操作數S=(Rn);
Mode1=11時為寄存器間址尋址方式, 有效地址E=(Rn)。
Mode2=00時為立即尋址方式,指令的13-0位為立即數;
Mode2=01時為頁面尋址方式;
Mode2=10時為變址尋址方式,E=(Rn)+D;
Mode2=11時為變址間址尋址方式, E=((Rn)+D)。
(2)由於頁面尋址方式時,D為14位,所以頁面大小應為=16K字,則1M字可分為
=64個頁面。可由PC的高6位指出頁面號。
(3)能增加其它尋址方式,例上述間址方式、變址間址尋址方式。
14. 從以下有關RISC的描述中,選擇正確答案。
A.采用RISC技術后,計算機的體系結構又恢復到早期的比較簡單的情況。
B.為了實現兼容,新設計的RISC,是從原來CISC系統的指令系統中挑選一部分實現的。
C.RISC的主要目標是減少指令數,提高指令執行效率。
D.RISC設有乘、除法指令和浮點運算指令。
解: C
15. 根據操作數所在位置,指出其尋址方式(填空):
(1)操作數在寄存器中,為(A)尋址方式。
(2)操作數地址在寄存器,為(B)尋址方式。
(3)操作數在指令中,為(C)尋址方式。
(4)操作數地址(主存)在指令中,為(D)尋址方式
(5)操作數的地址,為某一寄存器內容與位移量之和可以是(E,F,G)尋址方式。
解:A:寄存器直接; B: 寄存器間接; C:立即;
D: 直接; E:相對; F:基值;G:變址
第五章
1.請在括號內填入適當答案。在CPU中:
(1) 保存當前正在執行的指令的寄存器是(指令寄存器IR);
(2) 保存當前正要執行的指令地址的寄存器是(程序計數器PC);
(3) 算術邏輯運算結果通常放在(通用寄存器 )和(數據緩沖寄存器DR )。
2.參見下圖(課本P166圖5.15)的數據通路。畫出存數指令"STA R1 ,(R2)"的指令周期
流程圖,其含義是將寄存器R1的內容傳送至(R2)為地址的主存單元中。標出各微操作信
號序列。
解:"STA R1 ,(R2)"指令是一條存數指令,其指令周期流程圖如下圖所示:
3.參見課本P166圖5.15的數據通路,畫出取數指令"LDA(R3),RO"的指令周期流程圖,
其含義是將(R3)為地址的主存單元的內容取至寄存器R0中,標出各微操作控制信號序列。
5.如果在一個CPU周期中要產生3個脈沖 T1 = 200ns ,T2 = 400ns ,T3 = 200ns,試畫出
時序產生器邏輯圖。
解:節拍脈沖T1 ,T2 ,T3 的寬度實際等於時鍾脈沖的周期或是它的倍數,此時T1 = T3 =200ns ,
T2 = 400 ns ,所以主脈沖源的頻率應為 f = 1 / T1 =5MHZ 。為了消除節拍脈沖上的毛刺,環
型脈沖發生器可采用移位寄存器形式。下圖畫出了題目要求的邏輯電路圖和時序信號關系。根據關
系,節拍脈沖T1 ,T2 ,T3 的邏輯表達式如下:
T1 = C1· , T2 =
, T3 =
6.假設某機器有80條指令,平均每條指令由4條微指令組成,其中有一條取指微指令是所有指
令公用的。已知微指令長度為32位,請估算控制存儲器容量。
解:微指令條數為:(4-1)×80+1=241條
取控存容量為:256×32位=1KB
7. 某ALU器件使用模式控制碼M,S3,S2,S1,C來控制執行不同的算術運算和邏輯操作。
下表列出各條指令所要求的模式控制碼,其中y為二進制變量,F為0或1任選。
試以指令碼(A,B,H,D,E,F,G)為輸入變量,寫出控制參數M,S3,S2,S1,C的邏
輯表達式。
解: M=G
S3=H+D+F
S2=1
C=H+D+(E+F)y
8.某機有8條微指令I1-I8,每條微指令所包含的微命令控制信號如下表所示。
a-j分別對應10種不同性質的微命令信號。假設一條微指令的控制字段為8位,請安排微指 令的控制字段格式。
解:經分析,(e ,f ,h)和(b, i, j)可分別組成兩個小組或兩個字段,然后進行譯碼,可得六個
微命令信號,剩下的a, c, d, g 四個微命令信號可進行直接控制,其整個控制字段組成如
下:
11.已知某機采用微程序控制方式,其控制存儲器容量為 512×48(位)。微程序可在整個控
制存儲器中實現轉移,可控制微程序轉移的條件共4個,微指令采用水平型格式,后繼微
指令地址采用斷定方式。請問:
(1)微指令中的三個字段分別應為多少位?
(2)畫出圍繞這種微指令格式的微程序控制器邏輯框圖。
解:
(l)假設判別測試字段中每一位作為一個判別標志,那么由於有4個轉移條件,故該字段為4位;
又因為控存容量為512單元,所以下地址字段為9位,。微命令字段則是:
(48-4-9)= 35位。
(2)對應上述微指令格式的微程序控制器邏輯框圖如下圖所示。其中微地址寄存器對應下地址
字,P字段即為判別測試字段,控制字段即為微命令字段,后兩部分組成微指令寄存器。地 址轉移邏輯的輸入是指令寄存器的OP碼、各種狀態條件以及判別測試字段所給的判別標志
(某一位為1),其輸出用於控制修改微地址寄存器的適當位數,從而實現微程序的分支轉移 (此例微指令的后繼地址采用斷定方式)。
12.今有4級流水線分別完成取值、指令譯碼並取數、運算、送結果四步操作,
今假設完成各步操作的時間依次為100ns,100ns,80ns,50ns。
請問:(1)流水線的操作周期應設計為多少?
(2)若相鄰兩條指令發生數據相關,而且在硬件上不采取措施,那么第二條指令要
推遲多少時間進行。
(3)如果在硬件設計上加以改進,至少需推遲多少時間?
解:
(1) 流水線的操作時鍾周期 t應按四步操作中最長時間來考慮, 所以t=100ns;
(2) 兩條指令發生數據相關沖突情況::
ADD R1,R2,R3 ; R2+R3→R1
SUB R4,R1,R5 ; R1-R5→R4
兩條指令在流水線中執行情況如下表所示:
ADD指令在時鍾4時才將結果寫入寄存器R1中, 但SUB指令在時鍾3時就需讀寄存器R1了,顯然發生
數據相關,不能讀到所需數據,只能等待。如果硬件上不采取措施,第2條指令SUB至少應推遲2個
操作時鍾周期,即t=2×100ns=200ns;
(3)如果硬件上加以改進(采取旁路技術),這樣只需推遲1個操作時鍾周期就能得到所需數據,
即t=100ns。
15.用定量描述法證明流水計算機比非流水計算機具有更高的吞吐率。
解:衡量並行處理器性能的一個有效參數是數據帶寬(最大吞吐量),它定義為單位時間內可以產生
的最大運算結果個數。
設P1是有總延時T1的非流水處理器,故其帶寬為1/T1。又設Pm是相當於P1 m 段流水處理器延遲時 間Tr,故Pm的帶寬為1/(Tc+Tr)。如果Pm是將P1划分成相同延遲的若干段形成的,則T1≈mTc 因
此P1的帶寬接近於1/mTc,由此可見,當mTc>Tc+Tr滿足時,Pm比P1具有更大的帶寬。
16. 流水線中有三類數據相關沖突:寫后讀(RAW)相關;讀后寫(WAR)相關;寫后寫
(WAW)相關。判斷以下三組指令各存在哪種類型的數據相關。
(1) I1 LAD R1,A ; M(A)→R1,M(A)是存儲器單元
I2 ADD R2,R1 ;(R2)+(R1)→R2
(2) I3 ADD R3,R4 ;(R3)+(R4)→R3
I4 MUL R4,R5 ;(R4)×(R5)→ R4
(3) I5 LAD R6,B ; M(B)→R6,M(B)是存儲器單元
I6 MUL R6,R7 ;(R6)×(R7)→ R6
解:(1)寫后讀(RAW)相關;
(2)讀后寫(WAR)相關,但不會引起相關沖突;
(3)寫后讀(RAW)相關、寫后寫(WAW)相關
17.參考教科書圖5.42所示的超標量流水線結構模型,現有如下6條指令序列:
I1 LAD R1, B; M(B) → R1,M(B)是存儲器單元
I2 SUB R2, R1; (R2)-(R1) → R2
I3 MUL R3, R4; (R3)×(R4) → R3
I4 ADD R4, R5; (R4)+(R5) → R4
I5 LAD R6, A; M(A) → R6,M(A)是存儲器單元
I6 ADD R6, R7; (R6)+(R7) →R6
請畫出:(1) 按序發射按序完成各段推進情況圖。
(2) 按序發射按序完成的流水線時空圖。
解:(1)
(2)
第六章
1.比較單總線、雙總線、三總線結構的性能特點。
3. 用異步通信方式傳送字符"A"和"8",數據有7位,偶校驗1 位。起始位1位,
停止位l位,請分別畫出波形圖。
解: 字符A的ASCII碼為 41H=1000001B;
字符8的ASCII碼為 38H=0111000B;
串行傳送波形圖為:
注: B:起始位
C:校驗位
S:停止位
8.同步通信之所以比異步通信具有較高的傳輸頻率,是因為同步通信____。
A.不需要應答信號;
B.總線長度較短;
C.用一個公共時鍾信號進行同步;
D.各部件存取時間比較接近。
解: C
9. 在集中式總線仲裁中,____方式響應時間最快,____方式對____最敏感。
A.菊花鏈方式 B.獨立請求方式 C.電路故障 D.計數器定時查詢方式
解: B A C
10. 采月串行接口進行7位ASCII碼傳送,帶有1位奇校驗位,l位起始位和1位停止位,當傳輸率為9600波特時,字符傳送速率為____。
A.960 B.873. C.1372 D.480
解: A
11.系統總線中地址線的功能是______。
A. 選擇主存單元地址
B. 選擇進行信息傳輸的設備
C. 選擇外存地址
D. 指定主存和I/O設備接口電路的地址
解: D
12.系統總線中控制器的功能是______。
A. 提供主存、I/O接口設備的控制信號和響應信號
B. 提供數據信息
C. 提供時序信號
D. 提供主存、I/O接口設備的響應信號
解: D
14. PCI是一個與處理器無關的_____,它采用____時序協議和____式仲裁策略,並具有____能力。
A.集中 B.自動配置 C.同步 D.高速外圍總線
解:D C A B
15. PCI總線的基本傳輸機制是____傳送。利用____可以實現總線間的____傳送,使所有的存取都按CPU的需要出現在總線上。PCI允許____總線____工作。
A.橋 B.猝發式 C.並行 D.多條 E. 猝發式
解: B A C D E
17.PCI總線中三種橋的名稱是什么?橋的功能是什么?
解:PCI總線有三種橋,即HOST / PCI橋(簡稱HOST橋),PCI / PCI橋和PCI / LAGACY橋。
在PCI總線體系結構中,橋起着重要作用:
(1) 接兩條總線,使總線間相互通信;
(2) 是一個總線轉換部件,可以把一條總線的地址空間映射到另一條總線的地址空間上,
從而使系統中任意一個總線主設備都能看到同樣的一份地址表。
(3) 利用橋可以實現總線間的卒發式傳送。
19.總線的一次信息傳送過程大致分哪幾個階段?若采用同步定時協議,請畫出
讀數據的同步時序圖。
解:分五個階段:請求總線、總線仲裁、尋址(目的地址)、信息傳送、狀
態返回(錯誤報告)。讀數據的同步時序圖為:
20.某總線在一個總線周期中並行傳送8個字節的數據,假設一個總線周期等於一個總線時鍾周期,總線時鍾頻率為70MHZ ,求總線帶寬是多少?
解:設總線帶寬用Dr表示,總線時鍾周期用T = 1/f表示,一個總線周期傳送的數據量用D表示,
根據定義可得:
Dr = T / D = D ×1/f=8B×70×106/s = 560MB/
第七章
1. 計算機的外圍設備是指( )
A.輸入/輸出設備 B. 外存儲器
C. 輸入/輸出設備及外存儲器 D. 除了CPU和內存以外的其他設備
解: D
2.打印機根據印字方式可以分為( )和( )兩大類,在( )類打印機中,只有( )型打印機能打印漢字,請從下面答案中選擇填空。
A. 針型打印機 B. 活字型打印機
C. 擊打式 D. 非擊打式
解:C D C A
5.試推導磁盤存貯器讀寫一塊信息所需總時間的公式。
解:設讀寫一塊信息所需總時間為Tb,平均找道時間為Ts,平均等待時間為TL,讀寫一塊信息的
傳輸時間為Tm,則:Tb=Ts+TL+Tm。假設磁盤以每秒r轉速率旋轉,每條磁道容量為N個字,
則數據傳輸率=rN個字/秒。又假設每塊的字數為n,因而一旦讀寫頭定位在該塊始端,就能在
Tm≈(n / rN)秒的時間中傳輸完畢。TL是磁盤旋轉半周的時間,TL=(1/2r)秒,
由此可得:
Tb=Ts+1/2r+n/rN 秒
7.某磁盤存貯器轉速為3000轉 / 分,共有4個記錄面,每毫米5道,每道記錄信息為12288字節,最小磁道直徑為230mm,共有275道。問:
(1) 磁盤存貯器的容量是多少?
(2) 最高位密度與最低位密度是多少?
(3) 磁盤數據傳輸率是多少?
(4) 平均等待時間是多少?
(5) 給出一個磁盤地址格式方案。
解:
(1) 每道記錄信息容量 = 12288字節
每個記錄面信息容量 = 275×12288字節
共有4個記錄面,所以磁盤存儲器總容量為 :
4 ×275×12288字節 = 13516800字節
(2) 最高位密度D1按最小磁道半徑R1計算(R1 = 115mm):
D1 = 12288字節 / 2πR1 = 17字節 / mm
最低位密度D2按最大磁道半徑R2計算:
R2 = R1 + (275 ÷ 5) = 115 + 55 = 170mm
D2 = 12288字節 / 2πR2 = 11.5 字節 / mm
(3) 磁盤傳輸率 C = r · N
r = 3000 / 60 = 50 周 / 秒
N = 12288字節(信道信息容量)
C = r · N = 50 × 12288 = 614400字節 / 秒
(4)平均等待時間 = 1/2r = 1 / (2×50) = 10毫秒
(5)磁盤存貯器假定只有一台,所以可不考慮台號地址。有4個記錄面,每個記錄面有275個磁
道。假定每個扇區記錄1024個字節,則需要12288 ÷1024字節 = 12個扇區。由此可得如
下地址格式:
14.有一台磁盤機,其平均尋道時間為了30ms,平均旋轉等待時間為120ms,數據傳輸速率為500B/ms,磁盤機上存放着1000件每件3000B 的數據。現欲把一件數據取走,更新后在放回原地,假設一次取出或寫入所需時間為:
平均尋道時間+平均等待時間+數據傳送時間
另外,使用CPU更新信息所需時間為4ms, 並且更新時間同輸入輸出操作不相重疊。
試問:
(1) 盤上全部數據需要多少時間?
(2) 若磁盤及旋轉速度和數據傳輸率都提高一倍,更新全部數據需要多少間?
解:(1)磁盤上總數據量 = 1000×3000B = 3000000B
讀出全部數據所需時間為 3000000B ÷ 500B / ms = 6000ms
重新寫入全部數據所需時間 = 6000ms
所以,更新磁盤上全部數據所需的時間為 :
2×(平均找道時間 + 平均等待時間 + 數據傳送時間 )+ CPU更新時間
= 2(30 + 120 + 6000)ms + 4ms = 12304ms
(2) 磁盤機旋轉速度提高一倍后,平均等待時間為60ms;
數據傳輸率提高一倍后,數據傳送時間變為:
3000000B ÷ 1000B / ms = 3000ms
更新全部數據所需時間為:
2 ×(30 + 60 + 3000)ms + 4ms = 6184ms
17. 刷新存儲器的重要性能指標是它的帶寬。若顯示工作方式采用分辨率為1024×768,顏色深度為24位,幀頻(刷新速率)為72HZ,求:
(1)刷新存儲器的存儲容量是多少?
(2)刷新存儲器的貸款是多少?
解:(1)因為刷新存儲器所需存儲容量 = 分辨率 × 每個像素點顏色深度
∴ 1024 × 768 × 3B ≈ 4MB
(2)因為刷新所需帶寬 = 分辨率 × 每個像素點顏色深度 × 刷新速度
∴ 1024 × 768 × 3B × 72 / S = 165888KB / S ≈ 162MB / S
第八章
1.如果認為CPU等待設備的狀態信號是處於非工作狀態(即踏步等待),那么在下面幾種主機與設備之間的數據傳送中:( )主機與設備是串行工作的;( )主機與設備是並行工作的;( )主程序與設備是並行運行的。
A.程序查詢方式 B. 程序中斷方式 C. DMA方式
解: A C B
2.中斷向量地址是_____。
A.子程序入口地址 B. 中斷服務程序入口地址
C.中斷服務程序入口地址指示器 C. 例行程序入口地址
解: C
3.利用微型機制作了對輸入數據進行采樣處理的系統。在該系統中,每抽取一個輸入數據就要中斷CPU一次,中斷處理程序接受采樣的數據,將其放到主存的緩沖區內。該中斷處理需時x秒,另一方面緩沖區內每存儲n個數據,主程序就將其取出進行處理,這種處理需時y秒。因此該系統可以跟蹤到每秒_____次的中斷請求。
A.N/(n×x+y) B. N/(x+y)×n C. Min(1/x, n/y)
解: A
4.采用DMA方式傳送數據時,每傳送一個數據就要占用一個____的時間。
A. 指令周期 B. 機器周期
C. 存儲周期 D. 總線周期
解: C
5.通道的功能是:(1)________,(2)______。按通道的工作方式分,通道有______通道、_______通道和______通道三種類型。
解:(1)執行通道指令,組織外圍設備和內存進行數據傳輸;
(2)執行CPU的I/O指令,以及向CPU報告中斷。
選擇通道、字節多路通道、數組多路通道
6.在教科書圖8.7中,當CPU對設備B的中斷請求進行服務時,如設備A提出請求,CPU能夠響應中斷嗎?為什么?如果設備B一提出請求總能立即得到服務,問怎樣調整才能滿足此要求?
解:(1)CPU不能響應中斷
(2)因為同級中斷不能嵌套,而A、B設備屬於同級中斷
(3)如果想要設備B一提出請求即能得到服務,則應該使設備B為最高優先級,這里可將設備 B單獨接至3級IR,處於最高優先級。
8.設某機有5級中斷:L0,L1,L2,L3,L4, 其中斷響應優先次序為:L0最高,L1次
之,L4最低。現在要求將中斷處理次序改為L1→L3→L0→L4→L2,試問:
(1) 下表中各級中斷處理程序的各中斷級屏蔽值如何設置(每級對應一位,該位
為"0"表示允許中斷,該位為"1"表示中斷屏蔽)?
(2) 若這5級中斷同時都發出中斷請求,按更改后的次序畫出進入各級中斷處理程
序的過程示意圖。
解:(1)
(2)
9.某機器CPU中有16個通用寄存器,運行某中斷處理程序時僅用到其中2個寄存器,請問響應中斷而進入該中斷處理程序時,是否要將通用寄存器內容保存到主存中去?需保存幾個寄存器?
解:響應中斷而進入該中斷處理程序時,需將通用寄存器內容保存到主存中去,但為減少中斷處
理時間,不必保存所有通用寄存器內容,這里只需將2個中斷處理程序中用到的寄存器內容
保存起來。
12.下列陳述中正確的是_____。
A. 在DMA周期內,CPU不能執行程序
B. 中斷發生時,CPU首先執行入棧指令將程序計數器內容保護起來
C. DMA傳送方式中,DMA控制器每傳送一個數據就竊取一個指令周期
D. 輸入輸出操作的最終目的是要實現CPU與外設之間的數據傳輸
解: D
13.Pentium系統有兩類中斷源:①由CPU外部的硬件信號引發的稱為_____,它分為可屏蔽______和非屏蔽_____;②由指令引發的稱為_______,其中一種是執行______,另一種是_______。
解:① 外部中斷 INTR NMI
② 異常中斷 執行軟件中斷指令引發的 出錯或故障引發的
14.IEEE1394是______I/O標准接口,與SCSI_____I/O標准接口相比,它具有更高的______,更強的_______,提及_____,連接方便。
解:B A C D E
15.SCSI是系統級_____,是處於主適配器和智能設備控制器之間的_____I/O接口。SCSI-3標准允許SCSI總線上連接的設備由______個提高到_____個,可支持_____位數據傳輸。
A. 並行 B. 接口 C. 16 D. 8 E. 32
解: B A D C D
18.若設備的優先級依次為CD-ROM、掃描儀、硬盤、磁帶機、打印機,請用標准接口SCSI進行配置,畫出配置圖。
解:PCI HBA → CD-ROM → 掃描儀 → 硬盤 → 磁帶機 → 打印機 → 終端器