《計算機系統(tǒng)結構第二章(習題解答)》由會員分享,可在線閱讀,更多相關《計算機系統(tǒng)結構第二章(習題解答)(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1. 數(shù)據(jù)類型、數(shù)據(jù)表示和數(shù)據(jù)結構之間是什么關系在設計一個計算機系統(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ù)為:1000X2=2000個
V每個數(shù)據(jù)平均訪問8次
?.?程序訪問的不同數(shù)據(jù)個數(shù)為:2000+8=250
對于A處理機,所用的存儲空間的大小為:
MemAMeminstructionMemdata1000322503240000bit
對于B處理機,指令字長由32位變?yōu)榱?0位(條數(shù)由256減少到64),這
樣,所用的存儲空間的大小為:
MemBMeminstructionMemdata1000302503639000bit
由此我們可以看出,由于數(shù)據(jù)的平均訪問次
3、數(shù)要大于指令,所以,采用帶標
志符的數(shù)據(jù)表示不會增加總的存儲空間大小。
3. 對于一個字長為64位的存儲器,訪問這個存儲器的地址按字節(jié)編址。假設
存放在這個存儲器中的數(shù)據(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位(08);30%良費48位(6
4、/8);20%良費32位(4/8);30%良費0位(0/8)。
總共浪費:x08+x6/3+X4/8+x0/8=
即:存儲器的存儲空間利用率為50%,浪費率為50%。
⑵
方案為:數(shù)據(jù)從地址整數(shù)倍位置開始存儲,即,雙字地址000結尾,單字地址
00結尾,半字地址0結尾,字節(jié)地址結尾任意可能出現(xiàn)的各種情況如下:
組合
存儲空間分配
利用率
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
合計
4. 一個處理機共有10條指令,各指令在程序中出現(xiàn)的概率如下表:
指令序號
出現(xiàn)的概率
HufEman-
2$擴展端陽法
3"擴展
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
掾作碼的平均長度
操作碼的信息冗余量
(1)采用最優(yōu)Hufman編碼法(信息嫡)計算這10條指令的操作碼最短平均長度。
(2)采用Huffman編碼法編寫這10條指令的操作碼,并計算操作碼的平均長度,計算與最優(yōu)Huffman編碼法(信息嫡)相比的操作碼信息冗余量。
9、將得到的操作碼編碼和計算的結果填入上面的表中。
(3)采用Z8擴展編碼法編寫這10條指令的操作碼,并計算操作碼的平均長度,計算與最優(yōu)Huffman編碼法相比的操作碼信息冗余量。把得到的操作碼編
碼和計算的結果填入上面的表中
(4)采用37擴展編碼法編寫這10條指令的操作碼,并計算操作碼的平均長度,計算與最優(yōu)Huffman編碼法相比的操作碼信息冗余量。把得到的操作碼編碼和計算的結果填入上面的表中。
答:
采用最優(yōu)Huffman編碼法(信息嫡)的操作碼最短平均長度為:
n
HPi10gpi2.957
i1
指令序號
出現(xiàn)的概率
Huffman編碼法
218擴展編碼
10、法
37擴展編碼法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
操作碼的平均長度
操作碼的信息冗余量
%
%
%
5. 一臺模型機共有7條指
11、令,各指令的使用頻度分別是35%、25%、20%、10%、5%、3%、2%,有8個通用數(shù)據(jù)寄存器,2個變址寄存器。
(1)要求操作碼的平均長度最短,請設計操作碼的編碼,并計算所設計操作碼的平均長度。
(2)設計8位字長的寄存器-寄存器型指令3條,16位字長的寄存器-存儲器型變址尋址方式指令4條,變址范圍不小于正、負127。請設計指令格式,并給出各字段的長度和操作碼的編碼。
答:
⑴
要使得到的操作碼長度最短,應采用Hufman編碼,Hufman樹構造如下:
由此可以得到7條指令的編碼分別如下:
指令號
出現(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編碼法得到的操作碼的平均長度為:
l=2X+++3X+4義+5X+
=+++=
設計8位字長的寄存器-寄存器型指令如下:
因為只有8個通用寄存器,所以寄存器地址需3位,操作碼只有兩位,設計格式如下:
2
3
3
操作碼OP
源寄存器R1
目的寄存器R2
三條指令的操作碼分別為00、01、10。
設計16位字長的寄存器-存儲器型變址尋址方式指令如下:
4318
操作碼OP
通用寄存器
變址寄存器
偏移地
13、址
四條指令的操作碼分別為1100、1101、1110、1111
6. 某處理機的指令字長為16位,有雙地址指令、單地址指令和零地址指令三類,并假設每個地址字段的長度均為6位。
(1)如果雙地址指令有15條,單地址指令和零地址指令的條數(shù)基本相同,問單地址指令和零地址指令各有多少條并且為這三類指令分配操作碼。
(2)如果要求三類指令的比例大致為1:9:9,問雙地址指令、單地址指令和零地址指令各有多少條并且為這三類指令分配操作碼。
雙地址指令格式為:
466
操作碼
地址碼1
地址碼2
單地址指令格式為:
操作碼
地址碼
10
6
零地址指令格式為:
1
14、6
操作碼
雙地址指令15條,需要4位操作碼來區(qū)分;單地址指令可以使用10-4=6位操作碼來區(qū)分;零地址指令可以使用16-10=6位操作碼來區(qū)分。這樣,各類型指令的條數(shù)為:
雙地址指令15條,操作碼為:0000?1110;
單地址指令26-1=63條,操作碼為:
1111000000?1111111110
零地址指令26=64條,操作碼為:
1111111111000000~1111111111111111
⑵
假設雙地址指令x條,則單地址、零地址分別為9x條:
[(24x)269x]269x
解之即得:x=14
「?雙地址指令14條,操作碼為:0000?1101;留出兩個編碼用于擴展。
單地址指令(26-1)X2=126條,操作碼為:
1110000000?1110111110,1111000000~1111111110
零地址指令126條,操作碼為:
1110111111000000~1110111111111110,1111111111000000~1111111111
111110