《計算機系統(tǒng)結(jié)構(gòu)第二章習題解答》由會員分享,可在線閱讀,更多相關《計算機系統(tǒng)結(jié)構(gòu)第二章習題解答(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、.
1. 數(shù)據(jù)類型、數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu)之間是什么關系?在設計一個計算機系統(tǒng)時,確定數(shù)據(jù)表示的原則主要有哪幾個?
答:
略
2. 假設有A和B兩種不同類型的處理機,A處理機中的數(shù)據(jù)不帶標志位,其指令字長和數(shù)據(jù)字長均為32位。B處理機的數(shù)據(jù)帶有標志位,每個數(shù)據(jù)的字長增加至36位,其中有4位是標志符,它的指令條數(shù)由最多256條減少至不到64條。如果每執(zhí)行一條指令平均要訪問兩個操作數(shù),每個存放在存儲器中的操作數(shù)平均要被訪問8次。對于一個由1000條指令組成的程序,分別計算這個程序在A處理機和B處理機中所占用的存儲空間大小(包括指令和數(shù)據(jù)),從中得到什么啟發(fā)?
答:
我們可以計算
2、出數(shù)據(jù)的總數(shù)量:
∵ 程序有1000條指令組成,且每條指令平均要訪問兩個操作數(shù)
∴ 程序訪問的數(shù)據(jù)總數(shù)為:10002=2000個
∵ 每個數(shù)據(jù)平均訪問8次
∴ 程序訪問的不同數(shù)據(jù)個數(shù)為:20008=250
對于A處理機,所用的存儲空間的大小為:
對于B處理機,指令字長由32位變?yōu)榱?0位(條數(shù)由256減少到64),這樣,所用的存儲空間的大小為:
精品
.
由此我們可以看出,由于數(shù)據(jù)的平均訪問次數(shù)要大于指令,所以,采用帶標志符的數(shù)據(jù)表示不會增加總的存儲空間大小。
3. 對于一個字長為64位的存儲器,訪問這個存儲器的地址按字節(jié)編址。假設存放在這個存儲器中的數(shù)
3、據(jù)中有20%是獨立的字節(jié)數(shù)據(jù)(指與這個字節(jié)數(shù)據(jù)相鄰的不是一個字節(jié)數(shù)據(jù)),有30%是獨立的16位數(shù)據(jù),有20%是獨立的32位數(shù)據(jù),另外30%是獨立的64位數(shù)據(jù);并且規(guī)定只能從一個存儲字的起始位置開始存放數(shù)據(jù)。
⑴ 計算這種存儲器的存儲空間利用率。
⑵ 給出提高存儲空間利用率的方法,畫出新方法的邏輯框圖,并計算這種方法的存儲空間利用率。
答:
⑴
由于全是獨立數(shù)據(jù),有20%浪費56位(7/8);30%浪費48位(6/8);20%浪費32位(4/8);30%浪費0位(0/8)。
總共浪費:0.27/8+0.36/8+0.24/8+0.30/8=0.5
即:存儲器的存儲空間利用率為
4、50%,浪費率為50%。
⑵
方案為:數(shù)據(jù)從地址整數(shù)倍位置開始存儲,即,雙字地址000結(jié)尾,單字地址00結(jié)尾,半字地址0結(jié)尾,字節(jié)地址結(jié)尾任意。
可能出現(xiàn)的各種情況如下:
組合
存儲空間分配
利用率
1-2-1-2
字節(jié)
半字
字節(jié)
半字
0.2*3/8*2/7*3/8*6B/8B
0.006
精品
.
1-2-1-4
字節(jié)
半字
字節(jié)
0.2*3/8*2/7*2/8*4B/8B
0.0028
單字
1-2-1-8
字節(jié)
半字
字節(jié)
0.2*3/8*2/7*3/8*4B/8B
5、0.004
雙字
1-2-4
字節(jié)
半字
單字
0.2*3/8*2/7*7B/8B
0.01875
1-2-8
字節(jié)
半字
0.2*3/8*3/7*3B/8B
0.1205
雙字
1-4
字節(jié)
單字
0.2*2/8*5B/8B
0.03125
1-8
字節(jié)
0.2*3/8*1B/8B
0.009375
雙字
2-1-2-1
半字
字節(jié)
半字
字節(jié)
0.3*2/7*3/8*2/7*6B/8B
0.0069
2-1-2-4
半字
字節(jié)
半字
0.
6、3*2/7*3/8*2/7*5B/8B
0.0057
單字
2-1-2-8
半字
字節(jié)
半字
0.3*2/7*3/8*3/7*5B/8B
0.0086
雙字
2-1-4
半字
字節(jié)
單字
0.3*2/7*2/8*7B/8B
0.01875
2-1-8
半字
字節(jié)
0.3*2/7*3/8*3B/8B
0.0121
雙字
2-4
半字
單字
0.3*2/7*6B/8B
0.0643
2-8
半字
0.3*3/7*2B/8B
0.0321
雙字
4-1-
7、2
單字
字節(jié)
半字
0.2*2/8*3/8*7B/8B
0.0164
4-1-4
單字
字節(jié)
0.2*2/8*2/8*5B/8B
0.0078
單字
4-1-8
單字
字節(jié)
0.2*2/8*3/8*5B/8B
0.0117
雙字
4-2-1
單字
半字
字節(jié)
0.2*3/8*2/7*7B/8B
0.01875
4-2-4
單字
半字
0.2*3/8*2/7*6B/8B
0.0161
單字
4-2-8
單字
半字
0.2*3/8*3/7*6B/8
8、B
0.0241
雙字
4-8
單字
0.2*3/8*4B/8B
0.05625
雙字
8
雙字
0.3*8B/8B
0.3
合 計
0.7922
4. 一個處理機共有10條指令,各指令在程序中出現(xiàn)的概率如下表:
精品
.
(1) 采用最優(yōu)Huffman編碼法(信息熵)計算這10條指令的操作碼最短平均長度。
(2) 采用Huffman編碼法編寫這10條指令的操作碼,并計算操作碼的平均長度,計算與最優(yōu)Huffman編碼法(信息熵)相比的操作碼信息冗余量。將得到的操作碼編碼和計算的結(jié)果填入上面的表中。
(3) 采用2/8擴展
9、編碼法編寫這10條指令的操作碼,并計算操作碼的平均長度,計算與最優(yōu)Huffman編碼法相比的操作碼信息冗余量。把得到的操作碼編碼和計算的結(jié)果填入上面的表中。
(4) 采用3/7擴展編碼法編寫這10條指令的操作碼,并計算操作碼的平均長度,計算與最優(yōu)Huffman編碼法相比的操作碼信息冗余量。把得到的操作碼編碼和計算的結(jié)果填入上面的表中。
答:
精品
.
0.02
0.03
0.04
0.05
0.08
0.08
0.1
0.15
0.20
0.25
0.05
0.09
0.13
0.17
0.23
0.32
0.43
0.57
1.0
0
0
10、
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
采用最優(yōu)Huffman編碼法(信息熵)的操作碼最短平均長度為:
指令序號
出現(xiàn)的概率
Huffman編碼法
2/8擴展編碼法
3/7擴展編碼法
I1
0.25
00
00
00
I2
0.20
10
01
01
I3
0.15
010
1000
10
I4
0.10
110
1001
11000
I5
0.08
0110
1010
11001
I6
0.08
1110
1011
11010
I7
0.05
1111
11、
1100
11011
I8
0.04
01110
1101
11100
精品
.
I9
0.03
011110
1110
11101
I10
0.02
011111
1111
11110
操作碼的平均長度
2.99
3.1
3.2
操作碼的信息冗余量
1.1%
4.6%
7.6%
5. 一臺模型機共有7條指令,各指令的使用頻度分別是35%、25%、20%、10%、5%、3%、2%,有8個通用數(shù)據(jù)寄存器,2個變址寄存器。
(1) 要求操作碼的平均長度最短,請設計操作碼的編碼,并計算所設計操作碼的平均長度。
(2) 設計
12、8位字長的寄存器-寄存器型指令3條,16位字長的寄存器-存儲器型變址尋址方式指令4條,變址范圍不小于正、負127。請設計指令格式,并給出各字段的長度和操作碼的編碼。
答:
⑴
精品
.
0.35
0.25
0.2
0.1
0.05
0.03
0.02
0.05
0.1
0.2
0.4
0.6
1.0
0
1
0
0
0
0
0
1
1
1
1
1
要使得到的操作碼長度最短,應采用Huffman編碼,Huffman樹構(gòu)造如下:
由此可以得到7條指令的編碼分別如下:
指令號
出現(xiàn)的頻率
編碼
1
35%
00
2
25
13、%
01
3
20%
10
4
10%
110
5
5%
1110
6
3%
11110
7
2%
11111
這樣,Huffman編碼法得到的操作碼的平均長度為:
l = 2(0.35+0.25+0.20) + 30.10 + 4 0.05 + 5(0.03 + 0.02)
= 1.6+0.3+0.2+0.25 = 2.35
精品
.
⑵
設計8位字長的寄存器-寄存器型指令如下:
因為只有8個通用寄存器,所以寄存器地址需3位,操作碼只有兩位,設計格式如下:
2 3 3
操作碼OP
源寄存器R1
目的寄存器R2
三條指令的操作碼分
14、別為00、01、10。
設計16位字長的寄存器-存儲器型變址尋址方式指令如下:
4 3 1 8
操作碼OP
通用寄存器
變址寄存器
偏移地址
四條指令的操作碼分別為1100、1101、1110、1111。
6. 某處理機的指令字長為16位,有雙地址指令、單地址指令和零地址指令三類,并假設每個地址字段的長度均為6位。
(1) 如果雙地址指令有15條,單地址指令和零地址指令的條數(shù)基本相同,問單地址指令和零地址指令各有多少條?并且為這三類指令分配操作碼。
(2) 如果要求三類指令的比例大致為1:9:9,問雙地址指令、單地址指令和零地址指令各有多少條?并且為這三類指令
15、分配操作碼。
答:
⑴
雙地址指令格式為:
4 6 6
精品
.
操作碼
地址碼1
地址碼2
單地址指令格式為:
10 6
操作碼
地址碼
零地址指令格式為:
16
操作碼
雙地址指令15條,需要4位操作碼來區(qū)分;單地址指令可以使用10-4=6位操作碼來區(qū)分;零地址指令可以使用16-10=6位操作碼來區(qū)分。這樣,各類型指令的條數(shù)為:
雙地址指令15條,操作碼為:0000~1110;
單地址指令26-1=63條,操作碼為:
1111 000000~1111 111110
零地址指令26=64條,操作碼為:
1111 111111 000000~
16、1111 111111 111111
⑵
假設雙地址指令x條,則單地址、零地址分別為9x條:
解之即得:x =14
∴ 雙地址指令14條,操作碼為:0000~1101;留出兩個編碼用于擴展。
單地址指令(26-1)2 = 126條,操作碼為:
1110 000000~1110 111110,1111 000000~1111 111110
精品
.
零地址指令126條,操作碼為:
1110 111111 000000~1110 111111 111110,1111 111111 000000~1111 111111 111110
如有侵權(quán)請聯(lián)系告知刪除,感謝你們的配合!
精品