第一章
1.?模擬計算機的特點是數值由連續量來表示,運算過程也是連續的。數字計算機的主要特點是按位運算,并且不連續地跳動計算。模擬計算機用電壓表示數據,采用電壓組合和測量值的計算方式,盤上連線的控制方式,而數字計算機用數字0和1表示數據,采用數字計數的計算方式,程序控制的控制方式。數字計算機與模擬計算機相比,精度高,數據存儲量大,邏輯判斷能力強。 2.?數字計算機可分為專用計算機和通用計算機,是根據計算機的效率、速度、價格、運行的經濟性和適應性來劃分的。 3.?科學計算、自動控制、測量和測試、信息處理、教育和衛生、家用電器、人工智能。 4.?主要設計思想是:存儲程序通用電子計算機方案,主要組成部分有:運算器、邏輯控制裝置、存儲器、輸入和輸出設備 5.?存儲器所有存儲單元的總數稱為存儲器的存儲容量。每個存儲單元都有編號,稱為單元地址。如果某字代表要處理的數據,稱為數據字。如果某字為一條指令,稱為指令字。 6.?每一個基本操作稱為一條指令,而解算某一問題的一串指令序列,稱為程序。 7.?取指周期中從內存讀出的信息流是指令流,而在執行器周期中從內存讀出的信息流是指令流。 8.?半導體存儲器稱為內存,存儲容量更大的磁盤存儲器和光盤存儲器稱為外存,內存和外存共同用來保存二進制數據。運算器和控制器合在一起稱為中央處理器,簡稱CPU,它用來控制計算機及進行算術邏輯運算。適配器是外圍設備與主機聯系的橋梁,它的作用相當于一個轉換器,使主機和外圍設備并行協調地工作。 9.?計算機的系統軟件包括系統程序和應用程序。系統程序用來簡化程序設計,簡化使用方法,提高計算機的使用效率,發揮和擴大計算機的功能用用途;應用程序是用戶利用計算機來解決某些問題而編制的程序。 10.????????????? 在早期的計算機中,人們是直接用機器語言來編寫程序的,這種程序稱為手編程序或目的程序;后來,為了編寫程序方便和提高使用效率,人們使用匯編語言來編寫程序,稱為匯編程序;為了進一步實現程序自動化和便于程序交流,使不熟悉具體計算機的人也能很方便地使用計算機,人們又創造了算法語言,用算法語言編寫的程序稱為源程序,源程序通過編譯系統產生編譯程序,也可通過解釋系統進行解釋執行;隨著計算機技術的日益發展,人們又創造出操作系統;隨著計算機在信息處理、情報檢索及各種管理系統中應用的發展,要求大量處理某些數據,建立和檢索大量的表格,于是產生了數據庫管理系統。 11.????????????? 從第一至五級分別為微程序設計級、一般機器級、操作系統級、匯編語言級、高級語言級。采用這種用一系列的級來組成計算機的概念和技術,對了解計算機如何組成提供了一種好的結構和體制。而且用這種分級的觀點來設計計算機,對保證產生一個良好的系統結構也是很有幫助的。 12.????????????? ?因為任何操作可以由軟件來實現,也可以由硬件來實現;任何指令的執行可以由硬件完成,也可以由軟件來完成。實現這種轉化的媒介是軟件與硬件的邏輯等價性。 13.????????????? ( 略 ) 第二章 1.(1) (2) (3)-127 -127 = -7F = -1111111 [-127]原 = 11111111 [-127]補 = 10000001 [-127]反 = 10000000 [-127]移 = 00000001 (4)[-1]原 = 1000 0000 [-1]補 = 1000 0000 [-1]反 = 1111 1111 [-1]移 = 0000 0000 (5)-1 = -00000001 [-1]原 = 1000 0001 [-1]補 = 1111 1111 [-1]反 = 1111 1110 [-1]移 = 0111 1111 2.[x]補 = a
0. a
1a
2…a
6 解法一、 (1)?????? 若a
0 = 0, 則x > 0, 也滿足x > -0.5 此時a
1→a
6可任意 (2)?????? 若a
0 = 1, 則x <= 0, 要滿足x > -0.5, 需a
1 = 1 即a
0 = 1, a
1 = 1, a
2→a
6有一個不為0 解法二、 -0.5 = -0.1
(2) = -0.100000 = 1, 100000 (1)?????? 若x >= 0, 則a0 = 0, a
1→a
6任意即可 [x]補 = x = a
0. a
1a
2…a
6 (2)?????? 若x < 0, 則x > -0.5 只需-x < 0.5, -x > 0 [x]補 = -x, [0.5]補 = 01000000 即[-x]補 < 01000000 即a
0a
1 = 11, a
2→a
6不全為0或至少有一個為1(但不是“其余取0”) 3.字長32位浮點數,階碼10位,用移碼表示,尾數22位,用補碼表示,基為2
(1)?????? 最大的數的二進制表示 E = 111111111 Ms = 0, M = 11…1(全1) 表示為: 11…1 011…1 10個21個 即: (2)?????? 最小的二進制數 E = 111111111 Ms = 1, M = 00…0(全0)(注意:用10….0來表示尾數-1) 表示為: 11…1 100…0 10個21個 即: (3)?????? 規格化范圍 正最大E = 11…1, M = 11…1, Ms = 0 10個21個 即: 正最小E = 00…0, M = 100…0, Ms = 0 10個20個 即: 負最大E = 00…0, M = 011…1, Ms = 1 10個20個 (最接近0的負數)即: 負最小E = 11…1, M = 00…0, Ms =1 10個21個 即: 規格化所表示的范圍用集合表示為: [, ] [ , ] (4)?????? 最接近于0的正規格化數、負規格化數(由上題可得出) 正規格化數E = 00…0, M = 100…0, Ms = 0 10個20個 負規格化數E = 00…0, M = 011…1, Ms = 1 10個20個 4.假設浮點數格式如下:
?(1)? 階補碼:1?11 尾數補碼:0?1101 1000 機器數:1110 1101 1000 (2)? 階補碼:1?11 尾數補碼:1?0010 1000 機器數:1110 0010 1000 5.(1)x = 0.11011, y = 0.00011
| 0 0 1 1 0 1 1 +?0 0 0 0 0 1 1 0 0 1 1 1 1 0 |
x+y = 0.11110 無溢出 (2) x = 0.11011, y = -0.10101
| [x]補 =0 0 1 1 0 1 1 [y]補 =+1 1 0 1 0 1 1 0 0 0 0 1 1 0 |
x+y = 0.00110 無溢出 (3)x = -0.10110 y = -0.00001
| [x]補 =1 1 0 1 0 1 0 [y]補 =+1 1 1 1 1 1 1 1 1 0 1 0 0 1 |
x+y = -0.10111 無溢出 6.(1)x = 0.11011 y = -0.11111
| [x]補 =0 0. 1 1 0 1 1 [y]補 =+0 0. 1 1 1 1 1 0 1. 1 1 0 1 0 |
溢出 (2)x = 0.10111 y = 0.11011
| [x]補 =0 0. 1 0 1 1 1 [y]補 =+1 1. 0 0 1 0 1 1 1. 1 1 1 0 0 |
x-y = -0.00100 無溢出 (3)x = 0.11011 y = -0.10011
| [x]補 =0 0. 1 1 0 1 1 [y]補 =+0 0. 1 0 0 1 1 0 1. 0 1 1 1 0 |
溢出 7.(1)原碼陣列 x = 0.11011, y = -0.11111 符號位:x
0⊕y
0 = 0⊕1 = 1 [x]
原 = 11011, [y]
原 = 11111
| 1 1 0 1 1 *?1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 |
[x*y]
原 = 1, 11 0100 0101 直接補碼陣列 [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) 0?(1)?(1) (0) (1) (1)?1?1?0?1?1 1,?00?1?0?1,?1?1?0?1?1 |
[x*y]補 = 1,00101,11011(直接補碼陣列不要求) 帶求補器的補碼陣列 [x]補 = 0 11011, [y]補 = 1 00001 乘積符號位單獨運算0⊕1=1 尾數部分算前求補輸出│X│=11011,│y│=11111
| 1 1 0 1 1 *?1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 |
X×Y=-0.1101000101 (2) 原碼陣列 x = -0.11111, y = -0.11011 符號位:x
0⊕y
0 = 1⊕1 = 0 [x]補= 11111, [y]補 = 11011
| 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 |
[x*y]補= 0,11010,00101 直接補碼陣列 [x]補 = (1)00001, [y]補 = (1)00101
| (1)?0?0?0?0?1 (1)?0?0?1?0?1 (1)?0?0?0?0?1 (0) 0?0?0?0?0 (1) 0?0?0?0?1 (0)0?0?0?0?0 (0) 0?0?0?0?0 1?(0) (0) (0) (0) (1) 10?0 (1) (1)?0?0?0?1?0?1 01?1 0?1?? 0?0?0?1?0?1 |
[x*y]補 = 0,11010,00101(直接補碼陣列不要求) 帶求補器的補碼陣列 [x]補 = 1?00001,?[y]補 = 1 00101 乘積符號位單獨運算1⊕1=0 尾數部分算前求補輸出│X│=11111,│y│=11011
| 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 |
X×Y=0.1101000101? 8.(1)符號位?Sf = 0⊕1 = 1 去掉符號位后:[y’]補 = 00.11111 [-y’]補= 11.00001 [x’]補= 00.11000
| 0 0 1 1 0 0 0 +[-y’]補1 1 0 0 0 0 1 1 1 1 1 0 0 1????????? ?????????0 ←1 1 1 0 0 1 0 +[y’]補0 0 1 1 1 1 1 0 0 1 0 0 0 1???????????????? 0.1 ←0 1 0 0 0 1 0 |
| +[-y’]補1 1 0 0 0 0 1 0 0 0 0 0 1 1???????????????? 0.11 ←0 0 0 0 1 1 0 +[-y’]補1 1 0 0 0 0 1 1 1 0 0 1 1 10.110 ←1 0 0 1 1 1 0 +[y’]補0 0 1 1 1 1 1 1 1 0 1 1 0 10.1100 ←1 0 1 1 0 1 0 +[y’]補0 0 1 1 1 1 1 1 1 1 1 0 0 10.11000 |
(2)?符號位?Sf = 1⊕0 = 1 去掉符號位后:[y’]補 = 00.11001 [-y’]補= 11.00111 [x’]補= 00.01011
???????
0 0 0 1 0 1 1 +[-y’]補1 1 0 0 1 1 1 1 1 1 0 0 1 00 ←1 1 0 0 1 0 0 +[y’]補0 0 1 1 0 0 1 1 1 1 1 1 0 10.0 ←1 1 1 1 0 1 0 +[y’]補0 0 1 1 0 0 1 0 0 1 0 0 1 10.01 ←0 1 0 0 1 1 0 +[-y’]補1 1 0 0 1 1 1 0 0 0 1 1 0 1?????????????? 0.011 ←0 0 1 1 0 1 0 +[-y’]補1 1 0 0 1 1 1 0 0 0 0 0 0 1??????????????? 0.0111 ←0 0 0 0 0 1 0 +[-y’]補1 1 0 0 1 1 1 1 1 0 1 0 0 1??????????????? 0.01110 |
9.(1)?x = 2
-011*0.100101, y = 2
-010*(-0.011110) [x]
浮 = 11101,0.100101 [y]
浮 = 11110,-0.011110 Ex-Ey = 11101+00010=11111 [x]
浮 = 11110,0.010010(1)
| x+y0 0. 0 1 0 0 1 0 (1) +?? 1 1. 1 0 0 0 1 0 1 1. 1 1 0 1 0 0 (1) |
規格化處理:1.010010???? 階碼11100 x+y= 1.010010*2
-4 = 2
-4*-0.101110
| x-y0 0. 0 1 0 0 1 0 (1) +0 0. 0 1 1 1 1 0 0 0 1 1 0 0 0 0 (1) |
規格化處理:0.110000?? ?階碼11110 x-y=2
-2*0.110001 (2) x = 2
-101*(-0.010110), y = 2
-100*0.010110 [x]
浮= 11011,-0.010110 [y]
浮= 11100,0.010110 Ex-Ey = 11011+00100 = 11111 [x]
浮= 11100,1.110101(0)
| x+y1 1. 1 1 0 1 0 1 +?? 0 0. 0 1 0 1 1 0 0 0. 0 0 1 0 1 1 |
規格化處理:0.101100???? 階碼11010 x+y= 0.101100*2
-6
| x-y1 1.1 1 0 1 0 1 +?? 1 1.1 0 1 0 1 0 1 1.0 1 1 1 1 1 |
規格化處理:1.011111?? ?階碼11100 x-y=-0.100001*2
-4 10.(1) Ex = 0011,?Mx = 0.110100 Ey = 0100,?My = 0.100100 Ez = Ex+Ey = 0111
| Mx*My0. 1 1 0 1 *0.1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 |
規格化:2
6*0.111011 (2)?????? Ex = 1110,?Mx = 0.011010 Ey = 0011,?My = 0.111100 Ez = Ex-Ey = 1110+1101 = 1011 [Mx]補 = 00.011010 [My]補 = 00.111100, [-My]補 = 11.000100
| 0 0 0 1 1 0 1 0 +[-My]1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 00 1 0 1 1 1 1 0 0 +[My]0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 00.0 1 1 1 1 0 0 0 0 +[My]0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 00.01 0 1 0 1 1 0 0 0 +[-My]1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 00.011 0 0 1 1 1 0 0 0 +[-My]1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 00.0110 1 1 1 1 1 0 0 0 +[My]0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 00.01101 0 1 1 0 1 0 0 0 +[-My]1 1 0 00 1 0 0 0 0 1 0 1 10 00.01101 |
商 = 0.110110*2
-6,余數=0.101100*2
-6 11. 4位加法器如上圖, (1)串行進位方式 C
1 = G
1+P
1C
0其中:G
1 = A
1B
1P1 = A
1⊕B
1(A
1+B
1也對) C
2 = G
2+P
2C
1G
2 = A
2B
2???? P
2 = A
2⊕B
2 C
3 = G
3+P
3C
2G
3 = A
3B
3???? P
3 = A
3⊕B
3 C
4 = G
4+P
4C
3G
4 = A
4B
4???? P
4 = A
4⊕B
4 (2)并行進位方式 C
1 = G
1+P
1C
0 C
2 = G
2+P
2G
1+P
2P
1C
0 C
3 = G
3+P
3G
2+P
3P
2G
1+P
3P
2P
1C
0 C
4 = G
4+P
4G
3+P
4P
3G
2+P
4P
3P
2G
1+P
4P
3P
2P
1C
0 12.(1)組成最低四位的74181進位輸出為: C
4 = C
n+4 = G+PC
n = G+PC
0, C
0為向第0位進位 其中,G = y
3+y
2x
3+y
1x
2x
3+y
0x
1x
2x
3,P = x
0x
1x
2x
3,所以 C
5 = y
4+x
4C
4 C
6 = y
5+x
5C
5 = y
5+x
5y
4+x
5x
4C
4 (2)設標準門延遲時間為T,“與或非”門延遲時間為1.5T,則進位信號C
0,由最低位傳送至C
6需經一個反相器、兩級“與或非”門,故產生C
0的最長延遲時間為 T+2*1.5T = 4T (3)最長求和時間應從施加操作數到ALU算起:第一片74181有3級“與或非”門(產生控制參數x
0, y
0, C
n+4),第二、三片74181共2級反相器和2級“與或非”門(進位鏈),第四片74181求和邏輯(1級與或非門和1級半加器,設其延遲時間為3T),故總的加法時間為: t
0 = 3*1.5T+2T+2*1.5T+1.5T+3T = 14T 13.串行狀態下: C
1 = G
1+P
1C
O C
2 = G
2+P
2C
1 C
3 = G
3+P
3C
2 C
4 = G
4+P
4C
3 并行狀態下:? C
1 = G
1+P
1C
0 C
2 = G
2+P
2C
1 = G
2+P
2G
1+P
2P
1C
0 C
3 = G
3+P
3C
2 = G
3+P
3G
2+P
3P
2G
1+P
3P
2P
1C
0 C
4 = G
4+P
4C
3 = G
4+P
4P
3C
2+P
4P
3P
2C
1+P
4P
3P
2P
1C
0 14.設余三碼編碼的兩個運算數為X
i和Y
i,第一次用二進制加法求和運算的和數為S
i’,進位為C
i+1’,校正后所得的余三碼和數為S
i,進位為C
i+1,則有: X
i = X
i3X
i2X
i1X
i0 Y
i = Y
i3Y
i2Y
i1Y
i0 S
i’ = S
i3’S
i2’S
i1’S
i0’
| 當Ci+1’ = 1時,Si = Si’+0011 并產生Ci+1 當Ci+1’ = 0時,Si = Si’+1101 |
根據以上分析,可畫出余三碼編碼的十進制加法器單元電路如圖所示。 15. 第三章 1. (1) (2) (3)1位地址作芯片選擇 2. (1) (2) 每個模塊要16個DRAM芯片 (3)64*16 = 1024塊 由高位地址選模塊 3. (1)根據題意,存儲總容量為64KB,故地址總線需16位。現使用16K*8位DRAM芯片,共需16片。芯片本身地址線占14位,所以采用位并聯與地址串聯相結合的方法來組成整個存儲器,其組成邏輯圖如圖所示,其中使用一片2:4譯碼器。 (2)根據已知條件,CPU在1us內至少訪存一次,而整個存儲器的平均讀/寫周期為0.5us,如果采用集中刷新,有64us的死時間,肯定不行 如果采用分散刷新,則每1us只能訪存一次,也不行 所以采用異步式刷新方式。 假定16K*1位的DRAM芯片用128*128矩陣存儲元構成,刷新時只對128行進行異步方式刷新,則刷新間隔為2ms/128 = 15.6us,可取刷新信號周期15us。 刷新一遍所用時間=15us×128=1.92ms
? 4. (1) (2) (3)如果選擇一個行地址進行刷新,刷新地址為A
0-A
8,因此這一行上的2048個存儲元同時進行刷新,即在8ms內進行512個周期。刷新方式可采用:在8ms中進行512次刷新操作的集中刷新方式,或按8ms/512 = 15.5us刷新一次的異步刷新方式。 5. 所設計的存儲器單元數為1M,字長為32,故地址長度為20位(A19~A0),所用芯片存儲單元數為256K,字長為16位,故占用的地址長度為18位(A17~A0)。由此可用位并聯方式與地址串聯方式相結合的方法組成組成整個存儲器,共8片RAM芯片,并使用一片2:4譯碼器。其存儲器結構如圖所示。 6.(1)系統16位數據,所以數據寄存器16位 (2)系統地址128K=2
17,所以地址寄存器17位 (3)?????? 共需要8片 (4)?????? 組成框圖如下
? 7.(1)組內地址用A (2)小組譯碼器使用3:8譯碼器 (3)RAM
1~RAM
5各用兩片8K*8的芯片位并聯連接
?
?
8.順序存儲器和交叉存儲器連續讀出m = 8個字的信息總量都是: q = 64位*8 = 512位 順序存儲器和交叉存儲器連續讀出8個字所需的時間分別是: t
1 = mT = 8*100ns = 8*10
-7s 順序存儲器和交叉存儲器的帶寬分別是: 9.cache的命中率 cache/主存系統效率e為 平均訪問時間T
a為 10. h*t
c+(1-h)*t
m = t
a 11.虛擬地址為30位,物理地址為22位。 頁表長度: 12.虛擬存儲器借助于磁盤等輔助存儲器來擴大主存容量,使之為更大或更多的程序所使用。在此例中,若用戶不具有虛存,則無法正常運行程序,而具有了虛存,則很好地解決了這個問題。 13.設取指周期為T,總線傳送周期為τ,指令執行時間為t
0??????????????????????????????????????????????????????????????????????????????????????????????? (1)t = (T+5τ+6t
0)*80 = 80T+400τ+480 t
0 (2) t = (T+7τ+8t
0)*60 = 60T+420τ+480 t
0 ??? 故不相等。 14.
| 頁面訪問序列 | 0 | 1 | 2 | 4 | 2 | 3 | 0 | 2 | 1 | 3 | 2 | 命中率 |
| a | 0 | 1 | 2 | 4 | 2 | 3 | 0 | 2 | 1 | 3 | 2 | 3/11 = 27.3% |
| b | | 0 | 1 | 2 | 4 | 2 | 3 | 0 | 2 | 1 | 3 |
| c | | | 0 | 1 | 1 | 4 | 2 | 3 | 0 | 2 | 1 |
| | | | | | 命中 | | | 命中 | | | 命中 |
15.D 16.C 第四章 1.不合理。指令最好半字長或單字長,設16位比較合適。
2. 單操作數指令為:2
8-m-n條 3.(1)RR型指令 (2)寄存器尋址 (3)單字長二地址指令 (4)操作碼字段OP可以指定2
6=64種操作 4.(1)雙字長二地址指令,用于訪問存儲器。操作碼字段可指定64種操作。 (2)RS型指令,一個操作數在通用寄存器(共16個),另一個操作數在主存中。 (3)有效地址可通過變址尋址求得,即有效地址等于變址寄存器(共16個)內容加上位移量。 5.(1)雙操作數指令 (2)2
3=8種尋址方式 (3)2
4=16種操作 6.(1)直接尋址方式 (2)相對尋址方式 (3)變址尋址方式 (4)基址尋址方式 (5)間接尋址方式 (6)變址間接尋址方式 7.40條指令需占6位,2
6=64,剩余24條可作為擴充 4種尋址方式需占2位 剩余8位作為地址
? X = 00直接尋址方式E = D X = 01立即尋址方式 X = 10變址尋址方式E = (R)+D X = 11相對尋址方式E = (PC)+D 8.(1)50種操作碼占6位,3種尋址方式占2位
?
?
X = 00頁面尋址方式E = PC
H-D X = 01立即尋址方式 X = 10直接尋址方式E = D (2)PC高8位形成主存256個頁面,每頁個單元 (3)尋址模式X = 11尚未使用,故可增加一種尋址方式。由于CPU中給定的寄存器中尚可使用PC,故可增加相對尋址方式,其有效地址E = PC+D,如不用相對尋址,還可使用間接尋址,此時有效地址E = (D)。當位移量變成23位時,尋址模式變成3位,可有更多的尋址方式。 9. 16個通用寄存器占4位,64種操作占6位,剩下22位用于存儲器地址,
?
?
采用R為基址寄存器尋址,地址=(R)+D 當基址最大,D也是最大的時候,尋址能力最大 而寄存器是32位的, 故最大存儲空間是2
32+2
22 = 4GB+4MB。 10、11、12、13、 14.C 15.(1)寄存器 (2)寄存器間接 (3)立即 (4)直接 (5)相對、基值、變址
轉載于:https://blog.51cto.com/sushan/711843
總結
以上是生活随笔為你收集整理的计算机组成原理课后习题答案一的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。