《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)第二章(習(xí)題解答)》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)第二章(習(xí)題解答)(7頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1. 數(shù)據(jù)類(lèi)型、數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu)之間是什么關(guān)系在設(shè)計(jì)一個(gè)計(jì)算機(jī)系統(tǒng)時(shí),
確定數(shù)據(jù)表示的原則主要有哪幾個(gè)
答:
略
2. 假設(shè)有A和B兩種不同類(lèi)型的處理機(jī),A處理機(jī)中的數(shù)據(jù)不帶標(biāo)志位,其
指令字長(zhǎng)和數(shù)據(jù)字長(zhǎng)均為32位。B處理機(jī)的數(shù)據(jù)帶有標(biāo)志位,每個(gè)數(shù)據(jù)的
字長(zhǎng)增加至36位,其中有4位是標(biāo)志符,它的指令條數(shù)由最多256條減少
至不到64條。如果每執(zhí)行一條指令平均要訪問(wèn)兩個(gè)操作數(shù),每個(gè)存放在存
儲(chǔ)器中的操作數(shù)平均要被訪問(wèn)8次。對(duì)于一個(gè)由1000條指令組成的程序,
分別計(jì)算這個(gè)程序在A處理機(jī)和B處理機(jī)中所占用的存儲(chǔ)空間大?。ò?
指令和數(shù)據(jù)),從中得到什么啟發(fā)
答:
我們可以
2、計(jì)算出數(shù)據(jù)的總數(shù)量:
???程序有1000條指令組成,且每條指令平均要訪問(wèn)兩個(gè)操作數(shù)
?.?程序訪問(wèn)的數(shù)據(jù)總數(shù)為:1000X2=2000個(gè)
V每個(gè)數(shù)據(jù)平均訪問(wèn)8次
?.?程序訪問(wèn)的不同數(shù)據(jù)個(gè)數(shù)為:2000+8=250
對(duì)于A處理機(jī),所用的存儲(chǔ)空間的大小為:
MemAMeminstructionMemdata1000322503240000bit
對(duì)于B處理機(jī),指令字長(zhǎng)由32位變?yōu)榱?0位(條數(shù)由256減少到64),這
樣,所用的存儲(chǔ)空間的大小為:
MemBMeminstructionMemdata1000302503639000bit
由此我們可以看出,由于數(shù)據(jù)的平均訪問(wèn)次
3、數(shù)要大于指令,所以,采用帶標(biāo)
志符的數(shù)據(jù)表示不會(huì)增加總的存儲(chǔ)空間大小。
3. 對(duì)于一個(gè)字長(zhǎng)為64位的存儲(chǔ)器,訪問(wèn)這個(gè)存儲(chǔ)器的地址按字節(jié)編址。假設(shè)
存放在這個(gè)存儲(chǔ)器中的數(shù)據(jù)中有20%是獨(dú)立的字節(jié)數(shù)據(jù)(指與這個(gè)字節(jié)數(shù)
據(jù)相鄰的不是一個(gè)字節(jié)數(shù)據(jù)),有30%是獨(dú)立的16位數(shù)據(jù),有20%是獨(dú)立
的32位數(shù)據(jù),另外30%是獨(dú)立的64位數(shù)據(jù);并且規(guī)定只能從一個(gè)存儲(chǔ)字的起始位置開(kāi)始存放數(shù)據(jù)。
⑴計(jì)算這種存儲(chǔ)器的存儲(chǔ)空間利用率。
⑵給出提高存儲(chǔ)空間利用率的方法,畫(huà)出新方法的邏輯框圖,并計(jì)算這種方法的存儲(chǔ)空間利用率。
答:
⑴
由于全是獨(dú)立數(shù)據(jù),有20%良費(fèi)56位(08);30%良費(fèi)48位(6
4、/8);20%良費(fèi)32位(4/8);30%良費(fèi)0位(0/8)。
總共浪費(fèi):x08+x6/3+X4/8+x0/8=
即:存儲(chǔ)器的存儲(chǔ)空間利用率為50%,浪費(fèi)率為50%。
⑵
方案為:數(shù)據(jù)從地址整數(shù)倍位置開(kāi)始存儲(chǔ),即,雙字地址000結(jié)尾,單字地址
00結(jié)尾,半字地址0結(jié)尾,字節(jié)地址結(jié)尾任意可能出現(xiàn)的各種情況如下:
組合
存儲(chǔ)空間分配
利用率
1-2-1-2
半字
半字
*3/8*2/7*3/8*6B/8B
1-2-1-4
半字
*3/8*2/7*2/8*4B/8B
單字
1-2-1-8
5、半字
*3/8*2/7*3/8*4B/8B
雙字
1-2-4
半字
單字
*3/8*2/7*7B/8B
1-2-8
半字
*3/8*3/7*3B/8B
雙字
1-4
單字
*2/8*5B/8B
1-8
*3/8*1B/8B
雙字
2-1-2-1
半字
半字
*2/7*3/8*2/7*6B/8B
2-1-2-4
半字
半字
*2/7*3/8*2/7*5B/8B
單字
6、
2-1-2-8
半字
半字
*2/7*3/8*3/7*5B/8B
雙字
2-1-4
半字
單字
*2/7*2/8*7B/8B
2-1-8
半字
*2/7*3/8*3B/8B
雙字
2-4
半字
單字
*2/7*6B/8B
2-8
半字
*3/7*2B/8B
雙字
4-1-2
單字
半字
*2/8*3/8*7B/8B
4-1-4
單字
*2/8*2/8*5B/8B
單字
7、4-1-8
單字
*2/8*3/8*5B/8B
雙字
4-2-1
單字
半字
*3/8*2/7*7B/8B
4-2-4
單字
半字
*3/8*2/7*6B/8B
單字
4-2-8
單字
半字
*3/8*3/7*6B/8B
雙字
4-8
單字
*3/8*4B/8B
雙字
8
雙字
*8B/8B
合計(jì)
4. 一個(gè)處理機(jī)共有10條指令,各指令在程序中出現(xiàn)的概率如下表:
指令序號(hào)
出現(xiàn)的概率
HufEman-
2$擴(kuò)展端陽(yáng)法
3"擴(kuò)展
8、編碼法
0.25
h
0.20
h
0.15
h
0.10
4
008
4
0.08
b
0.05
4
0.04
&
0.03
5
Q.02
掾作碼的平均長(zhǎng)度
操作碼的信息冗余量
(1)采用最優(yōu)Hufman編碼法(信息嫡)計(jì)算這10條指令的操作碼最短平均長(zhǎng)度。
(2)采用Huffman編碼法編寫(xiě)這10條指令的操作碼,并計(jì)算操作碼的平均長(zhǎng)度,計(jì)算與最優(yōu)Huffman編碼法(信息嫡)相比的操作碼信息冗余量。
9、將得到的操作碼編碼和計(jì)算的結(jié)果填入上面的表中。
(3)采用Z8擴(kuò)展編碼法編寫(xiě)這10條指令的操作碼,并計(jì)算操作碼的平均長(zhǎng)度,計(jì)算與最優(yōu)Huffman編碼法相比的操作碼信息冗余量。把得到的操作碼編
碼和計(jì)算的結(jié)果填入上面的表中
(4)采用37擴(kuò)展編碼法編寫(xiě)這10條指令的操作碼,并計(jì)算操作碼的平均長(zhǎng)度,計(jì)算與最優(yōu)Huffman編碼法相比的操作碼信息冗余量。把得到的操作碼編碼和計(jì)算的結(jié)果填入上面的表中。
答:
采用最優(yōu)Huffman編碼法(信息嫡)的操作碼最短平均長(zhǎng)度為:
n
HPi10gpi2.957
i1
指令序號(hào)
出現(xiàn)的概率
Huffman編碼法
218擴(kuò)展編碼
10、法
37擴(kuò)展編碼法1
Ii
00
00
00
I2
10
01
01
I3
010
1000
10
r以1
110
1001
11000
I5
0110
1010
11001
I6
1110
1011
11010
I7
1111
1100
11011
I8
01110
1101
11100
I9
011110
1110
11101
I10
011111
1111
11110
操作碼的平均長(zhǎng)度
操作碼的信息冗余量
%
%
%
5. 一臺(tái)模型機(jī)共有7條指
11、令,各指令的使用頻度分別是35%、25%、20%、10%、5%、3%、2%,有8個(gè)通用數(shù)據(jù)寄存器,2個(gè)變址寄存器。
(1)要求操作碼的平均長(zhǎng)度最短,請(qǐng)?jiān)O(shè)計(jì)操作碼的編碼,并計(jì)算所設(shè)計(jì)操作碼的平均長(zhǎng)度。
(2)設(shè)計(jì)8位字長(zhǎng)的寄存器-寄存器型指令3條,16位字長(zhǎng)的寄存器-存儲(chǔ)器型變址尋址方式指令4條,變址范圍不小于正、負(fù)127。請(qǐng)?jiān)O(shè)計(jì)指令格式,并給出各字段的長(zhǎng)度和操作碼的編碼。
答:
⑴
要使得到的操作碼長(zhǎng)度最短,應(yīng)采用Hufman編碼,Hufman樹(shù)構(gòu)造如下:
由此可以得到7條指令的編碼分別如下:
指令號(hào)
出現(xiàn)的頻率
編碼
1
35%
001
2
25%
01
12、
3
20%
10
4
10%
110
5
5%
11101
6
3%
11110
7
2%
11111
這樣,Huffman編碼法得到的操作碼的平均長(zhǎng)度為:
l=2X+++3X+4義+5X+
=+++=
設(shè)計(jì)8位字長(zhǎng)的寄存器-寄存器型指令如下:
因?yàn)橹挥?個(gè)通用寄存器,所以寄存器地址需3位,操作碼只有兩位,設(shè)計(jì)格式如下:
2
3
3
操作碼OP
源寄存器R1
目的寄存器R2
三條指令的操作碼分別為00、01、10。
設(shè)計(jì)16位字長(zhǎng)的寄存器-存儲(chǔ)器型變址尋址方式指令如下:
4318
操作碼OP
通用寄存器
變址寄存器
偏移地
13、址
四條指令的操作碼分別為1100、1101、1110、1111
6. 某處理機(jī)的指令字長(zhǎng)為16位,有雙地址指令、單地址指令和零地址指令三類(lèi),并假設(shè)每個(gè)地址字段的長(zhǎng)度均為6位。
(1)如果雙地址指令有15條,單地址指令和零地址指令的條數(shù)基本相同,問(wèn)單地址指令和零地址指令各有多少條并且為這三類(lèi)指令分配操作碼。
(2)如果要求三類(lèi)指令的比例大致為1:9:9,問(wèn)雙地址指令、單地址指令和零地址指令各有多少條并且為這三類(lèi)指令分配操作碼。
雙地址指令格式為:
466
操作碼
地址碼1
地址碼2
單地址指令格式為:
操作碼
地址碼
10
6
零地址指令格式為:
1
14、6
操作碼
雙地址指令15條,需要4位操作碼來(lái)區(qū)分;單地址指令可以使用10-4=6位操作碼來(lái)區(qū)分;零地址指令可以使用16-10=6位操作碼來(lái)區(qū)分。這樣,各類(lèi)型指令的條數(shù)為:
雙地址指令15條,操作碼為:0000?1110;
單地址指令26-1=63條,操作碼為:
1111000000?1111111110
零地址指令26=64條,操作碼為:
1111111111000000~1111111111111111
⑵
假設(shè)雙地址指令x條,則單地址、零地址分別為9x條:
[(24x)269x]269x
解之即得:x=14
「?雙地址指令14條,操作碼為:0000?1101;留出兩個(gè)編碼用于擴(kuò)展。
單地址指令(26-1)X2=126條,操作碼為:
1110000000?1110111110,1111000000~1111111110
零地址指令126條,操作碼為:
1110111111000000~1110111111111110,1111111111000000~1111111111
111110