2020年計算機(jī)體系結(jié)構(gòu)習(xí)題含答案_第1頁
2020年計算機(jī)體系結(jié)構(gòu)習(xí)題含答案_第2頁
2020年計算機(jī)體系結(jié)構(gòu)習(xí)題含答案_第3頁
2020年計算機(jī)體系結(jié)構(gòu)習(xí)題含答案_第4頁
2020年計算機(jī)體系結(jié)構(gòu)習(xí)題含答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)體系結(jié)構(gòu)習(xí)題含答案

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

第2章課后習(xí)題

1、尾數(shù)用補碼、小數(shù)表示,階碼用移碼、整數(shù)表示,尾數(shù)字長p=6(不包括符號位),階碼字長q=6

(不包括符號位),為數(shù)基值r?,=16,階碼基值r?=2。對于規(guī)格化浮點數(shù),用十進(jìn)制表示式寫出如下

數(shù)據(jù)(對于前11項,還要寫出16進(jìn)值編碼).

(1)最大尾數(shù)(8)最小正數(shù)

(2)最小正尾數(shù)(9)最大負(fù)數(shù)

(3)最小尾數(shù)(10)最小負(fù)數(shù)

(4)最大負(fù)尾數(shù)(11)浮點零

(5)最大階碼(12)表數(shù)精度

(6)最小階碼(13)表數(shù)效率

(7)最大正數(shù)(14)能表示的規(guī)格化浮點數(shù)個數(shù)

2.一臺計算機(jī)系統(tǒng)要求浮點數(shù)的精度不低于1072,表數(shù)范圍正數(shù)不小于HP,且正、負(fù)數(shù)對稱。尾

數(shù)用原碼、純小數(shù)表示,階碼用移碼、整數(shù)表示。

(1)設(shè)計這種浮點數(shù)的格式

(2)計算(1)所設(shè)計浮點數(shù)格式實際上能夠表示的最大正數(shù)、最大負(fù)數(shù)、表數(shù)精度和表數(shù)效率。

3.某處理機(jī)要求浮點數(shù)在正數(shù)區(qū)的積累誤差不大于2中“,其中,p是浮點數(shù)的尾數(shù)長度。

(1)選擇合適的舍入方法。

(2)確定警戒位位數(shù)。

(3)計算在正數(shù)區(qū)的誤差范圍。

4.假設(shè)有A和B兩種不同類型的處理機(jī),A處理機(jī)中的數(shù)據(jù)不帶標(biāo)志符,其指令字長和數(shù)據(jù)字長均

為32位。B處理機(jī)的數(shù)據(jù)帶有標(biāo)志符,每個數(shù)據(jù)的字長增加至36位,其中有4位是標(biāo)志符,它的指

令數(shù)由最多256條減少到不到64條。如果每執(zhí)行一條指令平均要訪問兩個操作數(shù),每個存放在存儲

器中的操作數(shù)平均要被訪問8次。對于一個由1000條指令組成的程序,分別計算這個程序在A處理

機(jī)和B處理機(jī)中所占用的存儲空間大小(包括指令和數(shù)據(jù)),從中得到什么啟發(fā)?

5.一臺模型機(jī)共有7條指令,各指令的使用頻率分別為35%,25%,20%,10%,5%,3%和2%,

有8個通用數(shù)據(jù)寄存器,2個變址寄存器。

(1)要求操作碼的平均長度最短,請設(shè)計操作碼的編碼,并計算所設(shè)計操作碼的平均長度。

(2)設(shè)計8字長的寄存器-寄存器型指令3條,16位字長的寄存器-存儲器型變址尋址方式指令4條,

變址范圍不小于±127。請設(shè)計指令格式,并給出各字段的長度和操作碼的編碼。

6.某處理機(jī)的指令字長為16位,有雙地址指令、單地址指令和零地址指令3類,并假設(shè)每個地址字

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

段的長度均為6位。

(1)如果雙地址指令有15條,單地址指令和零地址指令的條數(shù)基本相同,問單地址指令和零地址指令

各有多少條?而且為這3類指令分配操作碼。

(2)如果要求3類指令的比例大致為1:9:9,問雙地址指令、單地址指令和零地址指令各有多少條?

而且為這3類指令分配操作碼。

7.別用變址尋址方式和間接尋址方式編寫一個程序,求C=A+B,其中,A與B都是由n個元素組

成的一維數(shù)組。比較兩個程序,并回答下列問題;

(1)從程序的復(fù)雜程度看,哪一種尋址方式更好?

(2)從硬件實現(xiàn)的代價看,哪一種尋址方式比較容易實現(xiàn)?

(3)從對向量運算的支持看,哪一種尋址方式更好?

8.假設(shè)X處理機(jī)的數(shù)據(jù)不帶標(biāo)志符,其指令字長和數(shù)據(jù)字長均為32位.Y處理機(jī)的數(shù)據(jù)帶有標(biāo)志

符,每個數(shù)據(jù)的字長增加至35位,其中有3位是標(biāo)志符,其指令字長由32位減少至30位。并假設(shè)

一條指令平均訪問兩個操作數(shù),每個操作數(shù)平均被訪問R次?,F(xiàn)有一個程序,它的指令條數(shù)為I,分

別計算在這兩種不同類型的處理機(jī)中程序所占用的存儲空間,并加以比較。

9.一種浮點數(shù)表示方式的精度不低于KT%能表示的最大正數(shù)不小于10',叫而且正負(fù)數(shù)對稱。尾

數(shù)用原碼、小數(shù)表示,階碼用移碼、整數(shù)表示,尾數(shù)和階碼的基值都是2。

(1)設(shè)計這種浮點數(shù)的格式,給出各字段的名稱和長度。

(2)計算⑴所設(shè)計的浮點數(shù)格式能夠表示的最大正數(shù)、最大負(fù)數(shù)和表示數(shù)的精度。

(3)如果在運算器中沒有設(shè)置硬件警戒位,則這種浮點數(shù)可能采用了哪一種舍入方法?給出這種舍入方

法的舍入規(guī)則,在正數(shù)區(qū)的誤差范圍和積累誤差。

10.有研究人員指出,如果在采用通用寄存器結(jié)構(gòu)的計算機(jī)里加入寄存器-存儲器尋址方式可能提高

計算機(jī)效率。做法是用:

ADDR2,0(Rb)

代替指令序列

LOADR1,0(Rb)

ADDR2,R2,RI

假定使用新的指令能使時鐘周期增加10%,而且假定只對時鐘產(chǎn)生影響,而不影響CPI那么:

(1)采用新的指令,要達(dá)到與原來同樣的性能需要去掉的load操作所占的百分比?(假定load指令占

總指令的22.8%)

(2)舉出一種多指令序列,該序列不能使用上述的寄存器-存儲器尋址方式。即使得loadR1后面緊接

著執(zhí)行對R1的操作(該操作能夠是任意某一操作碼),但這一指令序列不能被一條指令(假定存在

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

這條指令)代替。

11.試比較下面4種不同類型的指令結(jié)構(gòu)的存儲效率:

(1)累加型:所有的操作都在單個寄存器和單個內(nèi)存地址之間進(jìn)行

(2)存儲器-存儲器型:每個指令的3個操作數(shù)都在內(nèi)存中進(jìn)行

(3)堆棧型;所有的操作都在棧頂進(jìn)行。只有push和pop操作會訪問內(nèi)存,其它的指令執(zhí)行時都會

刪除棧中的操作數(shù),然后寫入執(zhí)行結(jié)果。

(4)通用寄存器型:所有的操作都在寄存器中進(jìn)行。這些寄存器-寄存器指令中的每個指令都包含3個

操作數(shù)。通用寄存器一共有16個,寄存器標(biāo)志符占4位長。

為比較存儲效率,我們對以上4種指令集作了如下約定:

操作碼占一個字節(jié)(8位)

內(nèi)存地址占2個字節(jié)(16位)

操作數(shù)占4字節(jié)(32位)

所有指令的長度都以整數(shù)個字節(jié)計算

另外,還假定訪問內(nèi)存不使用其它的優(yōu)化措施,變量A、B、C和D的初值都已經(jīng)放在內(nèi)存中。

針對以上4種不同的指令系統(tǒng),回答下列問題:

(1)分別用匯編指令寫出下面3個賦值語句:

A=B+C;

B=A+C;

D=A-B;

(2)分別計算所執(zhí)行指令的字節(jié)數(shù)和轉(zhuǎn)移內(nèi)存數(shù)據(jù)的字節(jié)數(shù),并指出如果根據(jù)代碼的大小來計算的話,

哪種結(jié)構(gòu)的效率是最高的?如果按需要的總內(nèi)存帶寬(代碼+數(shù)據(jù))來計算,又是哪種結(jié)構(gòu)的效率最

高?

12.考慮為DLX結(jié)構(gòu)的計算機(jī)增加一個新的尋址模式。即使得地址模式增加兩個寄存器和一個11

位長的帶符號的偏移量來得到有效地址。這樣,編譯器就會用新的尋址模式來代替

ADDR1,R1,R2

LWRd,O(R1)(或是Store指令)

如果已知在DLX結(jié)構(gòu)的計算機(jī)上對測得一些程序的load和store指令分別平均占26%和9%,在此

基礎(chǔ)上,計算:

(1)假定10%的load和store指令能夠用新的尋址模式代替,那么采用新的尋址模式后的指令計數(shù)與

采用前之比為多少?

(2)如果新的尋址模式使得時鐘周期增長5%,那么采用了新的尋址模式的機(jī)器和未采用新的尋址模

式的機(jī)器相比,哪種機(jī)器會更快一些,快多少?

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

1、解答:

在尾數(shù)采用補碼、小數(shù)表示且p=6,階碼采用移碼、整數(shù)表示且q=6,尾數(shù)基r“,為16,階碼基底為2的

情況下:

(1)最大尾數(shù)為:1一面》=1-16,6,O.FFFFFF

(2)最小正尾數(shù)為:l/rm=1/16,0.100000

(3)最小尾數(shù)為:-1,1.000000

1

(4)最大負(fù)尾數(shù)為:+rm")=(16-+16?),1.EFFFFF

6

(5)最大階碼為:rei-l=2-l=63,7F,包括符號位共7個1

(6)最小階碼為:位。=-26=-64,00,包括符號位共7個0

(7)最大正數(shù)為:(1—163)1663,7FFFFFFF

(8)最小正數(shù)為:1665,00100000

(9)最大負(fù)數(shù)為:-(164+16?)16&,80EFFFFF

(10)最小負(fù)數(shù)為:-16",FF000000

(11)浮點零為:00000000

(12)表數(shù)精度為:1爐/2=221

(13)表數(shù)效率為:15/16=93.75%

(14)能表示的規(guī)格化浮點數(shù)個數(shù)為:2x15x165x27+1

2、解答:

(1)取尾數(shù)和階碼的基都為2,即:rm=2且r0=2

2*p<10-7JP>=23.9

根據(jù)表示數(shù)精度的要求:log2

于是能夠取p=24;

根據(jù)表示數(shù)范圍的要求:Q-2-.22bl嚴(yán)

即22*-1>1,00000006X1038

中〉38+logl.00000006+

2>l^g2+

.3叱33)=6.99

因此能夠取q=7

數(shù)據(jù)格式能夠表示如下(尾數(shù)采用隱藏位):

1位1位7位23位

符號階符階碼尾數(shù)

⑵能夠表示的最大正數(shù):(1一2-24)少27,

能夠表示的最大負(fù)數(shù):一2一3,

表示數(shù)的精度:2P4,

表數(shù)效率:100%。

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

3、解答:

(1)舍入方法:下舍上入法、查表法

(2)警戒位位數(shù):2位

(3)正數(shù)區(qū)的誤差范圍:2叫12呻~2?川

4、解答:

我們能夠計算出數(shù)據(jù)的大致數(shù)量:

1000條指令訪問的數(shù)據(jù)總數(shù)為1000*2=個;

每個數(shù)據(jù)平均訪問8次,因此,不同的數(shù)據(jù)個數(shù)為:+8=250個

對于A處理機(jī),所用的存儲空間的大小為:

Mem_size=Meminstruction+Memdata=1000x32+250x32=4000064

對于B處理機(jī),指令字長由32位變?yōu)榱?0位(條數(shù)由256減少到64),這樣,所用的存儲空間的大小為:

Mem_size=Meminstruction+Memdata=1000x32+250x36=39000萬it

由此我們能夠看出,由于數(shù)據(jù)的平均訪問次數(shù)要大于指令,因此,經(jīng)過改進(jìn)數(shù)據(jù)的格式來減少指令的長

度,能夠減少總的存儲空間大小。

5、解答:

(1)要使得到的操作碼長度最短,應(yīng)采用Huffman編碼,構(gòu)造Huffman樹如下:

I100I

由此能夠得到7條指令的編碼分別如下:

出現(xiàn)的頻率舸

135%00

225%01

320%10

410%110

55%1110

63%11110

72%11111

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

這樣,采用Huffman編碼法得到的操作碼的平均長度為:

H=2x(0.35+0.25+0.20)+3x0.10+4x0.05+5x(0.03+0.02)

=1.6+0.3+0.2+0.25

=2.35

(2)設(shè)計8位字長的寄存器-寄存器型變址尋址方式指令如下:

因為只有8個通用寄存器,因此寄存器地址需3位,操作碼只有兩位,設(shè)計格式如下:

2位2位3位

操作碼OP源寄存器R1目的寄存器R2

3條指令的操作碼分別為00,01,10

設(shè)計16位字長的寄存器-存儲器型變址尋址方式指令如下:

4位3位1位8位

操作碼OP通用寄存器變址寄存器偏移地址

4條指令的操作碼分別為1100,1101,1110,1111

6、解答:

(1)首先,能夠根據(jù)指令地址的數(shù)量來決定各種指令在指令空間上的分布:

如果按照從小到大的順序分配操作碼,而且按照指令數(shù)值從小到大的順序,分別為雙地址指令、單地址指

令和零地址指令。

其次能夠根據(jù)指令的條數(shù)來大致的估計操作碼的長度:

雙指令15條,需要4位指令來區(qū)分,剩下的12位指令平均分給單地址和零地址指令,每種指令能夠用6

位指令來區(qū)分,這樣,各指令的條數(shù)為:

雙地址指令15條,地址碼:0000-1110;

單地址指令26-1=63條,地址碼:1111000000-1111111110;

零地址指令64條,地址碼:1111111111000000-1111111111llllllo

(2)與上面的分析相同,能夠得出答案:

雙地址指令14條,地址碼:0000-1101;

單地址指令26*2-2=126條,1110000000-1110111110,1111000000-1111111110s

零地址指令128條1110111111.000000~1110111111.111111,1111

7、解答:

(1)變址尋址方式

(2)間接尋址方式

(3)變址尋址方式

8、解答:

x處理機(jī)程序占用的存儲空間總和為:R

Y處理機(jī)程序占用的存儲空間總和為:R

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

15R+35

2x32/16R+32

321+

Y處理機(jī)與X處理機(jī)的程序占用存儲空間的比值:-R-

,B,V]

當(dāng)R>3時,有京,,即對于同樣的程序,在Y處理機(jī)中所占用的存儲空間比在X處理機(jī)中所占用的

存儲空間要小。在實際應(yīng)用中經(jīng)常是R>10,因此帶標(biāo)志符的處理機(jī)所占用的存儲空間一般要小。

9、解答:

19

2“<10p>—=63,12

(1)根據(jù)表示數(shù)精度的要求:log2

?giooo

外毋

log0OOQ/log2+l)

4〉=13.70

根據(jù)表示數(shù)范圍的要求:log2

取p=64,q=14

1位1位14位64位

符號階符階碼尾數(shù)

⑵能夠表示的最大正數(shù):(1-2=4)2悶83,

能夠表示的最大負(fù)數(shù):-2r6385,

表示數(shù)的精度:2一”

(3)采用的舍入方法為恒置法,

舍入規(guī)則:在規(guī)格化之后,尾數(shù)的最低位置為1,

在正數(shù)區(qū)的誤差范圍:一2-64(1—2F)?+2-3,

在正數(shù)區(qū)的積累誤差:+2"4。

10、解答:

(1)計算CPU時間為:「叩:IcXCPIx%

對原來的指令:7r。巾Tj1dxePIoldXTjld(1)

T(;PUmw=ICAWXCPIMWXTBW

(2)

對修改后的指令序列:

x

在等式(2)中,CPIi=CPI.M,TCttW=(110TcOH),R為新的指令設(shè)計方案中比原來的方案中減少

的指令數(shù)。

要使去掉一些load操作,使得修改指令后的性能和原來的性能相同,必須滿足:

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

兒泡xCPI函"或曲=。。泅-丹*CPI函X。.10*TCH)

即=0.91

又已知load指令占總指令的22.8%

即要達(dá)到原來的性能,39.5%的10ad指令必須去掉。

((2)給出下面的兩條指令:

Idrl,0(rl)

addrl,rl,rl

在上面的指令中,我們將題目中的寄存器r2和rb用寄存器rl來代替。如果假定rl的值為47,指令執(zhí)行

前內(nèi)存中地址為47的位置存放了整數(shù)4,那么上面指令序列執(zhí)行后rl存放的值將變?yōu)?.

然而,如果我們使用了寄存器-存儲器模式后,上面的指令序列成為:

addrl,0(rl)

假設(shè)寄存器和內(nèi)存初值相同的話,指令執(zhí)行結(jié)束后,寄存器的值將變?yōu)?1(rl+MEMlO+rl]即47+4)。因

此,在這種情況下,不能做指令替換。

11、解答:

一臺采用累加型指令集結(jié)構(gòu)計算機(jī)實現(xiàn)的程序段如下:

Start:loadaB;accumiilator<-B

addaC;accumulator<-B+C

storeaA;storeB+CinA

addC;accumulator

storeaB;storeA-H3inB

negatea;negateaccumulator

addaA;accumulator<--B+A

storeaD;storeA-BinD

在上面的代碼中,loada,storea和adda每個都是24位長(操作碼8位,操作數(shù)地址16位),negatea

指令只需8位,因此整個代碼一共需要22個字節(jié)。對存取數(shù)據(jù)操作來說,每條指令訪問操作數(shù)的值需要

訪問4字節(jié)數(shù)據(jù),因此,整個程序需要在內(nèi)存和CPU之間轉(zhuǎn)移28字節(jié)的數(shù)據(jù)。

一臺采用存儲器-存儲器型指令集結(jié)構(gòu)計算機(jī)實現(xiàn)的程序段如下:

Start:addA,B,C;A=BK!

addB,A.C;B=A£

subD,A,B;D=A-B

在上面的代碼中,每個指令為56位長(操作碼8位,3個操作數(shù)48位),這樣程序需要21個字節(jié)。對

存取數(shù)據(jù)操作來說,每條指令執(zhí)行3個各訪問4字節(jié)數(shù)據(jù)的操作,這樣,整個程序在內(nèi)存和CPU之間共

轉(zhuǎn)移36字節(jié)的數(shù)據(jù)。

一臺采用堆棧型指令集結(jié)構(gòu)計算機(jī)實現(xiàn)的程序段如下:

文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。

Stack:pushB,pushBontostack

pushC;pushContostack

add;top<-B+C

popA;A=B+C

pushA;pushAontostack

pushC;pushContostack

add;top<-A-HC

popB;B=A4€

pushA,pushAontostack

pushB;pushBontostack

sub;top<-A-B

popA;D=A-B

上面的代碼中,每條load和store指令都為28位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論