《計算機(jī)系統(tǒng)結(jié)構(gòu)第2版鄭偉明湯志忠課后習(xí)題答案以及例題收錄.doc》由會員分享,可在線閱讀,更多相關(guān)《計算機(jī)系統(tǒng)結(jié)構(gòu)第2版鄭偉明湯志忠課后習(xí)題答案以及例題收錄.doc(141頁珍藏版)》請在裝配圖網(wǎng)上搜索。
計算機(jī)系統(tǒng)結(jié)構(gòu)(第2版)
鄭偉明 湯志忠 編著
清華大學(xué)出版社
習(xí)題解答
1 目錄
1.1 第一章(P33)
1.7-1.9(透明性概念),1.12-1.18(Amdahl定律),1.19、1.21、1.24(CPI/MIPS)
1.2 第二章(P124)
2.3、2.5、2.6(浮點(diǎn)數(shù)性能),2.13、2.15(指令編碼)
1.3 第三章(P202)
3.3(存儲層次性能),3.5(并行主存系統(tǒng)),3.15-3.15加1題(堆棧模擬),3.19中(3)(4)(6)(8)問(地址映象/替換算法--實存狀況圖)
1.4 第四章(P250)
4.5(中斷屏蔽字表/中斷過程示意圖),4.8(通道流量計算/通道時間圖)
1.5 第五章(P343)
5.9(流水線性能/時空圖),5.15(2種調(diào)度算法)
1.6 第六章(P391)
6.6(向量流水時間計算),6.10(Amdahl定律/MFLOPS)
1.7 第七章(P446)
7.3、7.29(互連函數(shù)計算),7.6-7.14(互連網(wǎng)性質(zhì)),7.4、7.5、7.26(多級網(wǎng)尋徑算法),7.27(尋徑/選播算法)
1.8 第八章(P498)
8.12(SISD/SIMD算法)
1.9 第九章(P562)
9.18(SISD/多功能部件/SIMD/MIMD算法)
(注:每章可選1-2個主要知識點(diǎn),每個知識點(diǎn)可只選1題。有下劃線者為推薦的主要知識點(diǎn)。)
2 例, 習(xí)題
2.1 第一章(P33)
例1.1,p10
假設(shè)將某系統(tǒng)的某一部件的處理速度加快到10倍,但該部件的原處理時間僅為整個運(yùn)行時間的40%,則采用加快措施后能使整個系統(tǒng)的性能提高多少?
解:由題意可知:Fe=0.4, Se=10,根據(jù)Amdahl定律
例1.2,p10
采用哪種實現(xiàn)技術(shù)來求浮點(diǎn)數(shù)平方根FPSQR的操作對系統(tǒng)的性能影響較大。假設(shè)FPSQR操作占整個測試程序執(zhí)行時間的20%。一種實現(xiàn)方法是采用FPSQR硬件,使FPSQR操作的速度加快到10倍。另一種實現(xiàn)方法是使所有浮點(diǎn)數(shù)據(jù)指令的速度加快,使FP指令的速度加快到2倍,還假設(shè)FP指令占整個執(zhí)行時間的50%。請比較這兩種設(shè)計方案。
解:分別計算出這兩種設(shè)計方案所能得到的加速比:
Fe FPSQR=0.20,Se FPSQR=10
Fe FP=0.50,Se FP=2
例1.3,p11
如果FP操作的比例為25%,F(xiàn)P操作的平均CPI=4.0,其它指令的平均CPI為1.33,F(xiàn)PSQR操作的比例為2%, FPSQR的CPI為20。假設(shè)有兩種設(shè)計方案,分別把FPSQR操作的CPI和所有FP操作的CPI減為2。試?yán)肅PU性能公式比較這兩種設(shè)計方案哪一個更好(只改變CPI而時鐘頻率和指令條數(shù)保持不變)。
解:
原系統(tǒng)的
CPIFP=4.0, =25%
CPI2=1.33, =1-25%
CPI原
= CPIFP + CPI2
=4.025% + 1.3375%
=2
方案1(使FPSQR操作的CPI為2)系統(tǒng)
CPI=CPI原 - CPIFPSQR原 + CPIFPSQR新
=CPI原 - (CPIFPSQR原 - CPIFPSQR新)
=2-2%(20-2)
=1.64
方案2(提高所有FP指令的處理速度, 使FPSQR操作的CPI為2)
CPI=CPI原 - CPIFP原 + CPIFP新
=CPI原 - (CPIFP原 - CPIFP新)
=2-25% (4-2)
=1.5
我們也可以根據(jù)以下公式計算出方案2系統(tǒng)(同求CPI原)
CPI= 75%1.33+25%2=1.5
顯然,提高所有FP指令處理速度的方案要比提高FPSQR處理速度的方案要好。
方案2的加速比
=2/1.5
=1.33
例1.4
假設(shè)兩臺機(jī)器的指令系統(tǒng)中,執(zhí)行條件轉(zhuǎn)移指令需2個時鐘周期,而其它指令只需1個時鐘周期。
CPUA:采用一條比較指令來設(shè)置相應(yīng)的條件碼,由緊隨其后的一條轉(zhuǎn)移指令對此條件碼進(jìn)行測試,以確定是否進(jìn)行轉(zhuǎn)移。顯然實現(xiàn)一次條件轉(zhuǎn)移要執(zhí)行比較和測試兩條指令。條件轉(zhuǎn)移指令占總執(zhí)行指令條數(shù)的20%。由于每條轉(zhuǎn)移指令都需要一條比較指令,所以比較指令也將占20%。
CPUB采用比較功能和判別是否實現(xiàn)轉(zhuǎn)移功能合在一條指令的方法,這樣實現(xiàn)一條件轉(zhuǎn)移就只需一條指令就可以完成。由于CPUB在轉(zhuǎn)移指令中包含了比較功能,因此它的時鐘周期就比CPUA要慢25%。
現(xiàn)在要問,采用不同轉(zhuǎn)移指令方案的CPUA和CPUB,那個工作速度會更快些?
解:
CPIA=0.22+0.81=1.2
TCPUA=ICA1.2tA
= 1.2 ICAtA
CPUB轉(zhuǎn)移指令占20%80%=25%
CPIB = 0.252+0.751=1.25
由于CPUB中沒有比較指令,因此
ICB = 0.8ICA
CPUB時鐘周期就比CPUA要慢25%
tB = 1.25tA
TCPUB = ICBCPIBtB
= 0.8 ICA1.251.25tA
= 1.25 ICAtA
TCPUA
TCPUB
所以CPUB比CPUA運(yùn)行得更快些。
例1.A1
計算Pentium II 450(IPC=2)處理機(jī)的運(yùn)算速度。
解:
由于PentiumII 450處理機(jī)的IPC=2 (或CPI=0.5)
Fz=450MHz,
MIPSPentium II 450=FzIPC=450 MHz2=900(MIPS)
例1.A2
我國最早研制的小型計算機(jī)DJS-130,定點(diǎn)16位,加法每秒50萬次,但沒有硬件乘法和除法指令,用軟件實現(xiàn)乘法和除法,速度低100倍左右。求等效速度。
解:定點(diǎn)等效速度為:
即每秒2萬次,由于乘法和除法用軟件實現(xiàn),等效速度降低了25倍。
例1.A3
假設(shè)在程序中浮點(diǎn)開平方操作FPSQR的比例為2%,它的CPI為100;其他浮點(diǎn)操作FP的比例為23%,它的CPI= 4.0;其余75%指令的CPI=1.33,計算該處理機(jī)的等效CPI。如果FPSQR操作的CPI也為4.0,重新計算等效CPI。
解:
等效CPI=1002%+423%+1.3375%
=3.92
等效CPI2=425%+1.3375%
=2.00
1.1
解釋下列術(shù)語
層次結(jié)構(gòu),計算機(jī)系統(tǒng)結(jié)構(gòu),計算機(jī)組成,計算機(jī)實現(xiàn),透明性,由上而下設(shè)計,由下而上設(shè)計,由中間向兩邊設(shè)計,軟件兼容,向上兼容,固件,系列機(jī),兼容機(jī),模擬,仿真,虛擬機(jī),宿主機(jī),指令流,數(shù)據(jù)流,單指令流單數(shù)據(jù)流,多指令流多數(shù)據(jù)流,Amdahl定律,CPI,MIPS,MFLOPS。
1.2
每一級為了執(zhí)行一條指令需要下一級的N條指令解釋,若執(zhí)行第一級的一條指令需kns,那么執(zhí)行第2級、第3級、第4級的指令需要多少時間?
第1級 1條1級指令 k ns
第2級 1條2級指令 N條1級指令 1Nk ns = Nk ns
第3級 1條3級指令 N條2級指令 1NNk ns = N2k ns
第4級 1條4級指令 N條3級指令 1NNNk ns = N3k ns
1.4
每一級指令能完成下一級的M條指令的工作量,且每一級指令需要下一級的N條指令解釋,若執(zhí)行第一級的一條指令需kns,那么執(zhí)行第2級、第3級、第4級的等效程序需要多少時間?
第1級 1條1級指令 k ns
第2級 等效程序為1/M條2級指令 需N/M條1級指令解釋 N/Mk ns
第3級 等效程序為1/M/M條3級指令 需NN/M/M條1級指令解釋 N2/M2 ns
第4級 等效程序為1/M/M/M條4級指令 需NNN/M/M/M條1級指令解釋 N3/M3 ns
1.6
試以實例說明計算機(jī)系統(tǒng)結(jié)構(gòu)、計算機(jī)組成與計算機(jī)實現(xiàn)之間的相互關(guān)系與相互影響。
系統(tǒng)結(jié)構(gòu)、組成和實現(xiàn)是三個不同的概念,它們各自包含不同的內(nèi)容,但又有緊密的關(guān)系。
以存儲系統(tǒng)為例,主存儲器容量和尋址方式的確定屬計算機(jī)系統(tǒng)結(jié)構(gòu),主存的速度應(yīng)多高,在邏輯結(jié)構(gòu)上采用什么措施屬計算機(jī)組成,而主存的物理實現(xiàn),如存儲器采用什么樣器件,邏輯電路設(shè)計和微組裝技術(shù)則屬計算機(jī)實現(xiàn)。
1.7
什么是透明性概念?對計算機(jī)系統(tǒng)結(jié)構(gòu),下列哪些是透明的?哪些是不透明的?
n 存貯器的模m交叉存??;透明(組成)
n 浮點(diǎn)數(shù)據(jù)表示;不透明(系統(tǒng)結(jié)構(gòu))
n I/O系統(tǒng)是采用通道方式還是I/O處理機(jī)方式;不透明
n 數(shù)據(jù)總線寬度;透明(組成)
n 陣列運(yùn)算部件;透明(組成)
n 通道是采用結(jié)合型的還是獨(dú)立型的;透明(組成)
n PDP-11系列中的單總線結(jié)構(gòu);不透明(系統(tǒng)結(jié)構(gòu))
n 訪問方式保護(hù);不透明(系統(tǒng)結(jié)構(gòu))
n 程序性中斷;不透明(系統(tǒng)結(jié)構(gòu))
n 串行、重疊還是流水控制方式;透明(組成)
n 堆棧指令;存貯最小編址單位;不透明(系統(tǒng)結(jié)構(gòu))
n Cache存貯器。透明(組成)
(1)從指定角度來看,不必要了解的知識稱為透明性概念。
(2)見下表,“√”為透明性概念。
模m交叉,√,
浮點(diǎn)數(shù)據(jù),,P4
通道與I/O處理機(jī),,P4
總線寬度,√,
陣列運(yùn)算部件,,
結(jié)合型與獨(dú)立型通道,√,
單總線,√,
訪問保護(hù),,
中斷,,
指令控制方式,√,
堆棧指令,,
最小編址單位,,
Cache存儲器,√,
1.8
從機(jī)器(匯編)語言程序員看,以下哪些是透明的?
n 指令地址寄存器;指令緩沖器;時標(biāo)發(fā)生器;條件碼寄存器;乘法器;主存地址寄存器;磁盤外設(shè);先行進(jìn)位鏈;移位器;通用寄存器;中斷字寄存器。
見下表,“√”為透明性概念
指令地址寄存器,,
指令緩沖器,√,
時標(biāo)發(fā)生器,√,
條件碼寄存器,,
乘法器,√,
主存地址寄存器,√,
磁盤,,
先行進(jìn)位鏈,√,
移位器,√,
通用寄存器 ,,
中斷字寄存器,,
1.9
見下表,“√”表示都透明,“應(yīng)”表示僅對應(yīng)用程序員透明,“”表示都不透明。
數(shù)據(jù)通路寬度,√,
虛擬存儲器,應(yīng),
Cache存儲器,√,
程序狀態(tài)字,,
“啟動I/O”指令,應(yīng),
“執(zhí)行”指令,,
指令緩沖寄存器,√,
1.12
如果某一計算任務(wù)用向量方式求解比用標(biāo)量方式求解要快20倍,稱可用向量方式求解部分所花費(fèi)時間占總的時間的百分比為可向量化百分比。請畫出加速比與可向量化比例兩者關(guān)系的曲線。
解:可向量化百分比為Fe, Se=20,根據(jù)Amdahl定律
將Se代入Amdahl定律得
1.13
在題1.12中,為達(dá)到加速比2, 可向量化的百分比應(yīng)為多少?
=2
則可向量化的百分比Fe=0.526
1.14
在題1.12中,為獲得采用向量方式最大加速比的半值(即10)時,所需可向量化的百分比為多少。
=10
則可向量化的百分比Fe=0.947
1.15
在題1.12中,如果某程序可向量化部分為70%,硬件設(shè)計組認(rèn)為可以通過加大工程投資,使向量處理速度加倍來進(jìn)一步增加性能;而編譯程序編寫組認(rèn)為只需設(shè)法增加向量工作方式的百分比就同樣可使性能得到相同的提高,問:此時需使可向量化成分再增加多少百分比就可實現(xiàn)。你認(rèn)為上述硬、軟件兩種方法中,哪一種方法更好?
(1)用硬件組方法,已知Se=2 X 20 =40,F(xiàn)e=0.7
解出Sn=40/12.7≈3.1496
(2)用軟件組方法,已知Se=20,得到硬件組方法的相同性能Sn=40/12.7
解出Fe=27.3/38≈0.7184
(3)結(jié)論:軟件組方法更好。因為硬件組需要將Se再提高100%(20→40),而軟件組只需將Fe再提高1.84%(0.7→0.7184)。
1.16
某計算機(jī)的高速小容量存儲器能存儲2000條指令。假設(shè)10%的指令承擔(dān)了90%的指令訪問且對這10%的指令的使用是均勻的(即其中每條指令的執(zhí)行時間相同)。如果要執(zhí)行的某程序共有50 000條指令且已知其中的10%是頻繁使用的,則當(dāng)該計算機(jī)執(zhí)行該程序時,在高速小容量存儲器中能訪問到的指令會占多少百分比?
解:
對該應(yīng)用程序來說,在90%的時間里,只有50000*10%=5000條指令在運(yùn)行,其他的45000條指令的平均運(yùn)行次數(shù)很少,因此,可以假設(shè)對它們來說,Cache總是缺失的.
對頻繁訪問的這10%的指令,假設(shè)它們訪問均勻,這樣,Cache的行為便可以認(rèn)為是均勻覆蓋了這些指令.所以,
10%的指令承擔(dān)了90%的指令訪問, 指令訪問次數(shù)(50000*10%)/90%
命中次數(shù)2000
Cache的命中率為:H=2000/[(50000*10%)/90%]=0.36
1.17
假設(shè)高速緩存Cache 工作速度為主存的5倍,且Cache被訪問命中的概率為90%,則采用Cache后,能使整個存儲系統(tǒng)獲得多高的加速比?
解:
1.18
設(shè)計指令存儲器有兩種不同方案:一是采用價格較貴的高速存儲器芯片,另一是采用價格便宜的低速存儲芯片。采用后一方案時,用同樣的經(jīng)費(fèi)可使存儲器總線帶寬加倍,從而每隔2個時鐘周期就可取出2條指令(每條指令為單字長32位);而采用前一方案時,每個時鐘周期存儲器總線僅取出1條單字長指令。由于訪存空間局部性原理,當(dāng)取出2個指令字時,通常這2個指令字都要使用,但仍有25%的時鐘周期中,取出的2個指令字中僅有1個指令字是有用的。試問采用這兩種實現(xiàn)方案所構(gòu)成的存儲器帶寬為多少?
解:
方案一:采用高速緩沖存儲器,使每個時鐘周期存儲器總線取出1條指令,則
存儲器帶寬=1字/時鐘周期=32位/時鐘周期
方案二:使存儲器總線帶寬加倍,從而每隔2個時鐘周期就可取出2條指令(每條指令為單字長32位),但仍有25%的時鐘周期中,取出的2個指令字中僅有1個指令字是有用的,則
1.19
用一臺40MHz處理機(jī)執(zhí)行標(biāo)準(zhǔn)測試程序,它含的混合指令數(shù)和相應(yīng)所需的時鐘周期數(shù)如下:
指令類型 指令數(shù) 時鐘周期數(shù)
整數(shù)運(yùn)算 45000 1
數(shù)據(jù)傳送 32000 2
浮點(diǎn) 15000 2
控制傳送 8000 2
求有效CPI、MIPS速率和程序的執(zhí)行時間。
1.20
某工作站采用時鐘頻率為15MHz、處理速率為10MIPS的處理機(jī)來執(zhí)行一個已知混合程序。假定每次存儲器存取為1周期延遲、試問:
(a) 此計算機(jī)的有效CPI是多少?
(b) 假定將處理機(jī)的時鐘提高到30MHz,但存儲器子系統(tǒng)速率不變。這樣,每次存儲器存取需要兩個時鐘周期。如果30%指令每條只需要一次存儲存取,而另外5%每條需要兩次存儲存取,還假定已知混合程序的指令數(shù)不變,并與原工作站兼容,試求改進(jìn)后的處理機(jī)性能。
解:(a) f==15MHz , MIPS=10, 每次存取時間為2個時鐘周期
(b)
30%指令每條只需要一次存儲存取,改進(jìn)前共需1周期,改進(jìn)后共需2周期
而另外5%每條需要兩次存儲存取,改進(jìn)前共需2周期,改進(jìn)后共需4周期
1.21
假設(shè)在一臺40MHz處理機(jī)上運(yùn)行200000條指令的目標(biāo)代碼,程序主要由四種指令組成。根據(jù)程序跟蹤實驗結(jié)果,已知指令混合比和每種指令所需的指令數(shù)如下:
指令類型 CPI 指令混合比
算術(shù)和邏輯 1 60%
高速緩存命中的加載/存儲 2 18%
轉(zhuǎn)移 4 12%
高速緩存缺失的存儲器訪問 8 10%
(a) 計算在單處理機(jī)上用上述跟蹤數(shù)據(jù)運(yùn)行程序的平均CPI
(b) 根據(jù)(a)所得CPI,計算相應(yīng)的MIPS速率。
解:
(1)
(2)
1.24
假定你是一個計算機(jī)設(shè)計者,對高級語言結(jié)構(gòu)的使用研究表明,過程調(diào)用是最常用的操作之一。你已設(shè)想了一個優(yōu)化設(shè)計方案,它能減少過程調(diào)用和返回所需的取/存指令次數(shù)。為了進(jìn)行驗證,對未加優(yōu)化和已優(yōu)化的方案進(jìn)行實驗測試,假定所使用的是相同的優(yōu)化編譯器。實驗測得的結(jié)果如下:
(1)未優(yōu)化的時鐘周期比優(yōu)化的快5%;
(2)未優(yōu)化方案中的取/存指令數(shù)占總指令數(shù)的30%;
(3)優(yōu)化方案中的取/存指令數(shù)比未優(yōu)化的少1/3,對于其他指令,兩種方案的動態(tài)執(zhí)行數(shù)沒有變化;
(4)所有指令,包括取/存指令,均只需要1個時鐘周期。
要求你定量地判斷,哪一種設(shè)計方案的計算機(jī)工作速度更快。
解:
記新方案時鐘周期為Tc,已知CPI = CPIi = 1
原時間 = CPI IC 0.95Tc = 0.95ICTc
新時間 = (0.32/3+0.7) IC Tc = 0.9ICTc
二者比較,新時間較短。
1.A1
某臺計算機(jī)只有Load/Store 指令能對存儲器進(jìn)行讀/寫操作,其它指令只對寄存器進(jìn)行操作。根據(jù)程序跟蹤實驗結(jié)果,已知每種指令所占的比例及CPI數(shù)如下:
指令類型 指令所占比例 CPI
算邏指令 43% 1
Load指令 21% 2
Store指令 12% 2
轉(zhuǎn)移指令 24% 2
(1) 求上述情況下的平均CPI。
(2) 假設(shè)程序有M條指令組成。算邏運(yùn)算中25%的指令的兩個操作數(shù)中的一個已在寄存器中,另一個必須在算邏指令執(zhí)行前用Load指令從存儲器取到寄存器。因此有人建議增加另一種算邏指令,其特點(diǎn)是一個操作數(shù)取自寄存器,另一個操作數(shù)取自存儲器,即寄存器存儲器類型,假設(shè)這種指令的CPI等于2。同時,轉(zhuǎn)移指令的CPI變?yōu)?。求新指令系統(tǒng)的平均CPI。
解:
(1)
CPI舊=(0.431+0.212+0.122+0.242)=1.57
(2)
原算邏指令中的25%變成了寄存器存儲器型指令,所以算邏指令(寄存器寄存器型)少了(0.250.43)M 條,Load指令少了(0.250.43)M 條,而(0.250.43)M 條的新指令為寄存器存儲器型指令。指令總數(shù)少了(0.2543%)M條。
設(shè)執(zhí)行算邏指令(寄存器寄存器型) 、 Load指令、算邏指令(寄存器存儲器型) 、 Store指令和轉(zhuǎn)移指令的周期總數(shù)分別為C1,C2,C3,C4,C5,所以:
C1=(0.43-(0.250.43))M1=0.3225M
C2=(0.21-(0.250.43))M2=0.205M
C3=(0.250.43)M2=0.215M
C4=0.12M2=0.24M
C5=0.243M=0.72M
新指令總數(shù)N=(1-(0.250.43))M=0.892
CPI新=(C1+C2+C3+C4+C5)/ N
=1.7025M/0.8925M
=1.908
1.A2
計算機(jī)系統(tǒng)中有三個部件可以改進(jìn),這三個部件的部件加速比如下:
部件加速比1=30
部件加速比2=20
部件加速比3=10
(1)如果部件1和部件2的可改進(jìn)比例均為30%,那么當(dāng)部件3的可改進(jìn)比例為多少時,
系統(tǒng)加速比才可以達(dá)到10?
(2)如果三個部件的可改進(jìn)比例分別為30%、30%和20%,三個部件同時改進(jìn),那么系統(tǒng)
中不可加速部分的執(zhí)行時間在總執(zhí)行時間中占的比例是多少?
(3)如果相對某個測試程序三個部件的可改進(jìn)比例分別為20%,20%和70%,要達(dá)到最好
改進(jìn)效果,僅對一個部件改進(jìn)時,要選擇哪個部件?如果允許改進(jìn)兩個部件,又如何
選擇?
1.A3
在某個程序中,簡單指令占80%,復(fù)雜指令占20%,在CISC機(jī)中簡單指令執(zhí)行需4個機(jī)器周期,復(fù)雜指令執(zhí)行需8個機(jī)器周期。RISC機(jī)中簡單指令執(zhí)行只需1個機(jī)器周期,而復(fù)雜指令要通過一串指令來實現(xiàn)。假定復(fù)雜指令平均需要14條簡單指令,即需要14個周期,若該程序中需要執(zhí)行的總指令數(shù)為1 000 000,Tc為100ns,那么
(1)RISC機(jī)需執(zhí)行的指令數(shù)為多少?
(2)CISC和RISC機(jī)的CPU時間分別為多少?
(3)RISC機(jī)對CISC的加速比為多少?
2.2 第二章(P124)
2.3
忽略P124倒1行 ~ P125第8行文字,以簡化題意)已知2種浮點(diǎn)數(shù),求性能指標(biāo)。
此題關(guān)鍵是分析階碼、尾數(shù)各自的最大值、最小值。
原圖為數(shù)據(jù)在內(nèi)存中的格式,階碼的小數(shù)點(diǎn)在其右端,尾數(shù)的小數(shù)點(diǎn)在其左端,遵守規(guī)格化要求。
由于尾數(shù)均為原碼,原碼的絕對值與符號位無關(guān),所以最大正數(shù)與最小負(fù)數(shù)的絕對值相同,可用“最大絕對值”回答;最小正數(shù)與最大負(fù)數(shù)的絕對值相同,可用“最小絕對值”回答。
第1小問中,階碼全部位數(shù)為8,作無符號數(shù)看待真值為0~255,作移-127碼看待真值為-127~+128;尾數(shù)(不計符號位)有23位小數(shù),另加1位整數(shù)隱藏位,所以尾數(shù)絕對值為1.0~2.0 – 2-23,有效位數(shù)p=24;
第2小問中,階碼全部位數(shù)為11,作無符號數(shù)看待真值為0~2047,作移-1023碼看待真值為-1023~+1024;尾數(shù)(不計符號位)有52位小數(shù),另加1位整數(shù)隱藏位,所以尾數(shù)絕對值為1.0~2.0 – 2-52,有效位數(shù)p=53。
最大絕對值為最大階碼與最大尾數(shù)絕對值的組合,最小絕對值為最小階碼與最小尾數(shù)絕對值的組合。代入相關(guān)公式后得最終結(jié)果如下表。
32位
64位
最大絕對值
(1-2-24)2129
(1-2-53)21025
最小絕對值
2-127
2-1023
表數(shù)精度δ
2-24
2-53
表數(shù)效率η
100%
100%
2.5
(1) rm = 2,re = 2,p = 24(隱藏最高位),q = 7。
(2) Nmax = 1.71038,-|N|min = -1.4710-39
δ ≤ 5.9610-8 ≈ 10-7.22,η = 100%
2.6
1位
7位
6位
0
0111111
333333
(1) 0.2 = 0.333333H160
設(shè)階碼為移-63碼(即-26+1,原題未指明)
0.2 = 0.110011001100110011001101B2-2
1位
8位
23位
0
01111101
10011001100110011001101
(其中最高有效位需隱藏)
階碼為移-127碼(即-27+1)
(2) 符號位不變,(階碼 – 63)4 + 127;尾數(shù)左規(guī),除去最高位;
(3) 符號位不變,(階碼 – 127)/ 4 + 63;尾數(shù)補(bǔ)最高位,按除法余數(shù)右移若干位,左補(bǔ)0。
2.13
已知10條指令使用頻度,求3種編碼方法的平均碼長與信息冗余量。
(1)此問中的“最優(yōu)Huffman編碼法”實際是指碼長下限,即信源的平均信息量──熵,代公式得H=2.9566。
(2)Huffman編碼性能如下表;
(3)2/8擴(kuò)展編碼是8/64/512法的變種,第一組2條指令,碼長為2(1位擴(kuò)展標(biāo)志,1位編碼),第二組8條指令,碼長為4(1位擴(kuò)展標(biāo)志,與第一組區(qū)別,加3位編碼),編碼性能如下表;
(4)3/7擴(kuò)展編碼是15/15/15法的變種,第一組3條指令,碼長為2(共有4種組合,其中3種組合分別代表3條指令,留1種組合作為擴(kuò)展前綴標(biāo)志),第二組7條指令,碼長為5(2位固定的前綴擴(kuò)展標(biāo)志,與第一組區(qū)別,加3位編碼,只用其中7種組合),編碼性能如下表。
Huffman編碼
2/8擴(kuò)展編碼
3/7擴(kuò)展編碼
平均碼長L
2.99
3.1
3.2
信息冗余量R
1.10%
4.61%
7.59%
2.14
一臺模型機(jī)共有7條指令,各指令的使用頻率分別為35%,25%,20%,10%,5%,3%和2%,有8個通用數(shù)據(jù)寄存器,2個變址寄存器。
(1)要求操作碼的平均長度最短,請設(shè)計操作碼的編碼,并計算所設(shè)計操作碼的平均長度。
(2)設(shè)計8字長的寄存器-寄存器型指令3條,16位字長的寄存器-存儲器型變址尋址方式指令4條,變址范圍不小于127。請設(shè)計指令格式,并給出各字段的長度和操作碼的編碼。
解:
(1)要使得到的操作碼長度最短,應(yīng)采用Huffman編碼,構(gòu)造Huffman樹如下:
由此可以得到7條指令的編碼分別如下:
這樣,采用Huffman編碼法得到的操作碼的平均長度為:
H = 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
(2)
設(shè)計8位字長的寄存器-寄存器型變址尋址方式指令如下,因為只有8個通用寄存器,所以寄存器地址需3位,操作碼只有兩位,設(shè)計格式如下:
三條指令的操作碼分別為00,01,10
設(shè)計16位字長的寄存器-存儲器型變址尋址方式指令如下:
四條指令的操作碼分別為1100,1101,1110,1111
2.15
某處理機(jī)的指令字長為16位,有雙地址指令、單地址指令和零地址指令三類,并假設(shè)每個地址字段的長度均為6位。
(1)如果雙地址指令有15條,單地址指令和零地址指令的條數(shù)基本相同,問單地址指令和零地址指令各有多少條?并且為這三類指令分配操作碼。
(2)如果要求三類指令的比例大致為1:9:9,問雙地址指令、單地址指令和零地址指令各有多少條?并且為這三類指令分配操作碼。
解:
(1) 15條/63條/64條
(2) 14條/126條/128條
(1)根據(jù)指令地址的數(shù)量來決定各種指令在指令空間上的分布:
如果我們按照從小到大的順序分配操作碼,這樣,按照指令數(shù)值從小到大的順序,分別為雙地址指令、單地址指令和零地址指令。
其次可以根據(jù)指令的條數(shù)來大致的估計操作碼的長度:
雙指令15條,需要4位操作碼來區(qū)分,剩下的12位操作碼平均分給單地址和零地址指令,每種指令可以用6位操作碼來區(qū)分,這樣,各指令的條數(shù)為:
雙地址指令15條,操作碼:0000~1110;
單地址指令2^6-1=63條,操作碼:1111 000000~1111 111110;
零地址指令64條,操作碼:1111 111111 000000~1111 111111 111111。
(2)與上面的分析相同,可以得出答案:
雙地址指令14條,操作碼:0000~1101;
單地址指令2^6 x 2-2 = 126條,
1110 000000~1110 111110,
1111 000000~1111 111110;
零地址指令128條
1110 111111 000000~1110 111111 111111,
1111 111111 000000~1111 111111 111111
(2)B
雙地址指令同上,14條,操作碼:0000~1101;
單地址指令64 + 62 = 126條,
64 條單地址指令操作碼1110 000000~1110 111111,
62 條單地址指令操作碼1111 000000~1111 111101;
零地址指令128條
1111 111110 000000~1110 111110 111111,
1111 111111 000000~1111 111111 111111
2.3 第三章(P202)
例3.1
假設(shè)T2=5T1,在命中率H為0.9和0.99兩種情況下,分別計算存儲系統(tǒng)的訪問效率。
解:
當(dāng)H=0.9時,e1=1/(0.9+5(1-0.9))=0.72
當(dāng)H=0.99時,e2=1/(0.99+5(1-0.99))=0.96
提高存儲系統(tǒng)速度的兩條途徑:
一是提高命中率H
二是兩個存儲器的速度不要相差太大
其中:第二條有時做不到(如虛擬存儲器),因此,主要依靠提高命中率
例3.2
在虛擬存儲系統(tǒng)中,兩級存儲器的速度相差特別懸殊T2=105 T1。如果要使訪問效率e=0.9,問需要有多高的命中率?
解:
0.9H+90000(1-H)=1
89999.1H=89999
計算得H=0.999998888877777…≈0.999999
例3.3
在一個Cache存儲系統(tǒng)中,當(dāng)Cache的塊大小為一個字時,命中率為H=0.8;假設(shè)數(shù)據(jù)的重復(fù)利用率為5,計算Cache的塊大小為4個字時,Cache存儲系統(tǒng)的命中率是多少?假設(shè)T2=5T1,分別計算訪問效率。
解:n=45=20,采用預(yù)取技術(shù)之后,命中率提高到:
Cache的塊大小為一個字時,H=0.8,訪問效率為:
e1=1/(0.8+5(1-0.8))=0.55…
Cache的塊大小為4個字時,H=0.99,訪問效率為:
e2=1/(0.99+5(1-0.99))=0.96
例3.4
在一個虛擬存儲系統(tǒng)中,T2=105 T1,原來的命中率只有0.8,現(xiàn)采用預(yù)取技術(shù),訪問磁盤存儲器的數(shù)據(jù)塊大小為4K字,如果要求訪問效率不低于0.9,計算數(shù)據(jù)在主存儲器中的重復(fù)利用率至少為多少?
解:假設(shè)數(shù)據(jù)在主存儲器中的重復(fù)利用率為m,根據(jù)前面的給出關(guān)系:
解這個方程組,得到m=44,即數(shù)據(jù)在主存儲器中的重復(fù)利用率至少為44次。
例3.6
Star-100巨型機(jī)存儲系統(tǒng)采用并行和交叉相結(jié)合的方式工作,有32個存儲體低位交叉,每次并行讀寫512位,存儲周期為1.28um(磁心存儲器),處理機(jī)字長32位,計算它的頻帶寬度Bm和峰值速度T。
解:因為:n=32,w=512,Tm=1280ns,
Bm=n w/tm=32512b/1280ns
=12.8Gb/s
=1.6GB/s
=400MW/s
T=2.5ns,
與Tm相比,峰值速度提高512倍。
例3.8
一個程序共有5個頁面組成,分別為P1~P5。程序執(zhí)行過程中的頁地址流(即程序執(zhí)行中依次用到的頁面)如下:
P1,P2,P1,P5,P5,P1,P3,P4,P3,P4
假設(shè)分配給這個程序的主存儲器共有3個頁面。給出FIFO、LRU和OPT三種頁面替換算法對這3頁主存的使用情況,包括調(diào)入、替換和命中等。
時間t
1
2
3
4
5
6
7
8
9
10
實際
頁地址流
P1
P2
P1
P5
P4
P1
P3
P4
P2
P4
命中次數(shù)
1
1
1
1*
4
4
4*
4*
2
2
先進(jìn)先出算法
2
2
2
2*
1
1
1
1*
4
(FIFO算法)
5
5
5*
3
3
3
3*
調(diào)入
調(diào)入
命中
調(diào)入
替換
替換
替換
命中
替換
替換
2次
1
1
1
1
1
1
1
1*
2
2
最久沒有使用算法
2
2
2*
4
4
4*
4
4
4
(LRU算法)
5
5*
5*
3
3
3*
3*
調(diào)入
調(diào)入
命中
調(diào)入
替換
命中
替換
命中
替換
命中
4次
1
1
1
1
1
1*
3*
3*
3
3
最優(yōu)替換算法
2
2
2
2*
2
2
2
2
2
(OPT算法)
5*
4
4
4
4
4
4
調(diào)入
調(diào)入
命中
調(diào)入
替換
命中
替換
命中
命中
命中
5次
三種頁面替換算法對同一個頁地址流的調(diào)度過程
例3.9
一個循環(huán)程序,依次使用P1,P2,P3,P4四個頁面,分配給這個程序的主存頁面數(shù)為3個。FIFO、LRU和OPT三種頁面替換算法對主存頁面的調(diào)度情況如下圖所示。在FIFO和LRU算法中,總是發(fā)生下次就要使用的頁面本次被替換出去的情況,這就是“顛簸”現(xiàn)象。
時間t
1
2
3
4
5
6
7
8
實際
頁地址流
P1
P2
P3
P4
P1
P2
P3
P4
命中次數(shù)
1
1
1*
4
4
4*
3
3
先進(jìn)先出算法
2
2
2*
1
1
1*
4
(FIFO算法)
3
3
3*
2
2
2*
調(diào)入
調(diào)入
調(diào)入
替換
替換
替換
替換
替換
0次
1
1
1*
4
4
4*
3
3
最久沒有使用算法
2
2
2*
1
1
1*
4
(LRU算法)
3
3
3*
2
2
2*
調(diào)入
調(diào)入
調(diào)入
替換
替換
替換
替換
替換
0次
1
1
1
1
1*
1
1
1
最優(yōu)替換算法
2
2
2
2
2*
3*
3
(OPT算法)
3*
4*
4
4
4
4*
調(diào)入
調(diào)入
調(diào)入
替換
命中
命中
替換
命中
3次
頁面調(diào)度中的顛簸現(xiàn)象
3.1
由三個訪問速度、存儲容量和每位價格都不相同的存儲器構(gòu)成一個存儲體系。其中,M1靠近CPU,回答下列問題:
M1
(T1,S1,C1)
M2
(T2,S2,C2)
M3
(T3,S3,C3)
(1) 寫出這個三級存儲體系的等效訪問時間T,等效存儲容量S和等效每位價格C的表達(dá)式。
(2)在什么條件下,整個存儲體系的每位價格接近于C3?
3.3
直接代公式計算存儲層次性能指標(biāo)。
(1)74ns,38ns,23.6ns
(2)0.258,0.315,0.424
(3)T256K < T128K < T64K
c256K > c128K > c64K
(4)19.092,11.97,10.0064。答案是256K方案最優(yōu)。
3.5
已知,其中g(shù)=0.1
依題意有
整理得0.9n≥0.2,解出,向下取整,得15;
按另一種題意理解是向上取整,得16,也對。
3.7
方式1:16個模塊高位交叉
方式2:16個模塊并行訪問
方式3:16個模塊低位交叉
方式4:2路高位交叉8路低位交叉
16個存儲模塊每8個組成一個大的模塊:
方式5:4路高位交叉4路低位交叉
16個存儲模塊每4個組成一個大的模塊:
方式6:4路并行訪問4路低位交叉
(1)這幾種存儲器都能夠并行工作,因此可以提高頻帶寬度??偟膩碚f,并行訪問存儲器的優(yōu)點(diǎn)是實現(xiàn)簡單、容易,缺點(diǎn)是訪問沖突大;
高位交叉訪問存儲器的優(yōu)點(diǎn)是擴(kuò)充方便,缺點(diǎn)是訪問效率不高;低位交叉訪問存儲器可以用分時的方法來提高速度,但擴(kuò)充不方便。
(2)各種存儲器的頻帶寬度和他們的工作頻率有關(guān),在不考慮沖突的情況下,如果有足夠多的獨(dú)立控制電路和寄存器,那么,他們的頻帶寬度是相同的。
(3)存儲器的邏輯示意圖略。
注意,并行訪問存儲器和低位交叉訪問存儲器很相象,只不過,并行訪問存儲器使用存儲模塊號(存儲體號)來對已經(jīng)輸出的結(jié)果進(jìn)行選擇,而低位交叉訪問存儲器則用來生成對存儲模塊(存儲體)的片選信號,他通過流水的方式來提高訪問的速度。
3.14
在頁式虛擬存儲器中,一個程序由P1~P5共5個虛頁組成。在程序執(zhí)行過程中依次訪問到的頁面如下:
P2 ,P3,P2,P1 ,P5 ,P2 ,P4 ,P5 ,P3 ,P2 ,P5 ,P2
假設(shè)系統(tǒng)分配給這個程序的主存有3個頁面,分別采用FIFO、LRU和OPT三種替換算法對這三頁主存進(jìn)行調(diào)度。
(1) 畫出主存頁面調(diào)入、替換和命中的情況表。
(2) 統(tǒng)計三種頁面替換算法的頁命中率。
3.15
(1)在分配的主存頁面數(shù)目大于等于5的情況下,這時,除了第一次調(diào)入不命中,以后的訪問均命中,可以達(dá)到最高的頁面命中率:實際命中的次數(shù)為7次,所以可能達(dá)到的最高頁面命中率為:
(2)由于在頁面數(shù)大于等于5的情況下,肯定可以達(dá)到最高命中率,所以我們來看頁面數(shù)小于5時能否達(dá)到該命中率:
分配的主存頁面數(shù)等于4時,調(diào)度過程如下:
LFU算法
4
4
4
4
4*
1
1
1
1
1*
1
1
命中7次
5
5
5*
5
5
5
5
5*
5
5
5
3
3
3
3*
3
3*
3
3
3*
3
2
2
2
2*
2
2
2
2
2
調(diào)入
調(diào)入
調(diào)入
調(diào)入
命中
調(diào)入
命中
命中
命中
命中
命中
命中
此時也可以達(dá)到最高命中率;
分配的主存頁面等于3時,調(diào)度過程如下:
LFU算法
4
4
4*
2
2
2*
3
3*
3
3
3*
3
命中3次
5
5
5*
5
5
5*
2
2
2*
1
1
3
3
3*
1
1
1
1*
5
5
5
調(diào)入
調(diào)入
調(diào)入
調(diào)入
命中
調(diào)入
調(diào)入
調(diào)入
命中
調(diào)入
調(diào)入
命中
此時不能達(dá)到最高命中率。
所以至少應(yīng)該分配4個主存頁面。
(3) 我們假設(shè)程序每次只訪問一個存儲單元,這樣,對每一個特定頁面的訪問過程可以描述如下:
因為第一次總是不命中的,而平均起來,隨后的1023次總是命中的,然后再次被調(diào)出主存,并再次重復(fù)先前的過程。
所以訪問存儲單元的命中率為:
欲知可能的最高命中率及所需的最少主存頁數(shù),較好的辦法是通過“堆棧模擬法”,求得命中次數(shù)隨主存頁數(shù)變化的函數(shù)關(guān)系。下圖就是“堆棧模擬圖”,其中“√”表示命中。
P=
4
5
3
2
5
1
3
2
3
5
1
3
命中次數(shù)
4
5
3
2
5
1
3
2
3
5
1
3
4
5
3
2
5
1
3
2
3
5
1
4
5
3
2
5
1
1
2
3
5
4
4
3
2
5
5
1
2
2
4
4
4
4
4
4
4
n=1
0
n=2
√
1
n=3
√
√
√
3
n=4
√
√
√
√
√
√
√
7
n=5
√
√
√
√
√
√
√
7
(1)Hmax=7/12≈58.3%
(2)n=4
(3)當(dāng)1次頁面訪問代表連續(xù)1024次該頁內(nèi)存儲單元訪問時,后1023次單元訪問肯定是命中的,而第1次單元訪問的命中情況與這1次頁面訪問的命中情況相同。根據(jù)上圖中最高命中情況,共有7次頁命中(折算為71024次單元命中),5次頁不命中(折算為51023次單元命中,也可寫為51024-5),單元訪問總次數(shù)為121024,故有:
Hcell=(121024-5)/(121024)=12283/12288≈99.96%
3.15A
加1題 一個二級存儲層次,采用全相聯(lián)映象和最久沒有使用算法,實存共5頁,為2道程序分享,頁地址流分別如下
P1 = 1 2 3 4 1 3 2 1
P2 = 1 2 3 4 2 2 3 3
試作2個實存分配方案,分別使2道程序滿足
(1)命中率相同;
(2)命中次數(shù)之和最大。
P1 =
1
2
3
4
1
3
2
1
命中次數(shù)N(1)
1
2
3
4
1
3
2
1
1
2
3
4
1
3
2
1
2
3
4
1
3
1
2
2
4
4
n1= 1
0
n1= 2
0
n1= 3
√
√
2
n1= 4
√
√
√
√
4
解:分別為2道程序作“堆棧模擬圖”,其中“√”表示命中。
P2 =
1
2
3
4
2
2
3
3
命中次數(shù)N(2)
1
2
3
4
2
2
3
3
1
2
3
4
4
2
2
1
2
3
3
4
4
1
1
1
1
1
n2= 1
√
√
2
n2= 2
√
√
2
n2= 3
√
√
√
√
4
n2= 4
√
√
√
√
4
6
5 N(1)+N(2)
4
3
2 N(1) N(2)
1
1+4 2+3 3+2 4+1
將兩圖結(jié)果綜合,得到4個分配方案的命中率情況表如下
n1
1
2
3
4
N(1)
0
0
2
4
n2
4
3
2
1
N(2)
4
4
2
2
N(1)+N(2)
4
4
4
6
結(jié)論如下
(1)命中率相同的方案是n1= 3而n2= 2;
(2)命中次數(shù)之和最大的方案是n1= 4而n2= 1。
3.19
(1)主存共有2個區(qū),每個區(qū)2組,每個組2塊,每塊16個字節(jié),如果按字節(jié)尋址,那么主存需要7位,如下圖所示:
(2)Cache地址需要6位,如下圖所示:
中(3)(4)(6)(8)問
虛存 實頁 0 1 2 3
虛組0 0 0 √ √
1 實存 1 √ √
虛組1 2 0 實組0 2 √ √
3 1 虛 3 √ √
虛組2 4 2 實組1 頁 4 √ √
5 3 5 √ √
虛組3 6 6 √ √
7 7 √ √
(a) 虛頁集合與實頁集合的對應(yīng)關(guān)系 (b) 對應(yīng)關(guān)系表(√為有關(guān)系)
(3)
(4)通過作“實存狀況圖”模擬各虛塊的調(diào)度情況,可獲得Cache的塊地址流序列。
P=
6
2
4
1
4
6
3
0
4
5
7
3
C0
4
4*
4
4
4
4*
4
4*
4*
4*
C1
1
1*
1*
1*
0
0*
5
5
5
C2
6
6*
6*
6*
6*
6
6*
6*
6*
6*
7
7*
C3
2
2
2
2
2*
3
3
3
3
3*
3
入
入
入
入
中
中
替
替
中
替
替
中
C=
2
3
0
1
0
2
3
1
0
1
2
3
此問最容易出錯的地方是忽略“組相聯(lián)”地址約束,將虛頁裝錯實組。另外沒有及時標(biāo)注“*”號也容易導(dǎo)致淘汰對象錯誤。
(6)H=4/12≈33%
(8)做法同3.15題(3)問,Hcell=(1216-8)/(1216)≈95.8%
2.4 第四章(P250)
4.5
已知中斷服務(wù)次序為3-2-4-1,。
(1)中斷屏蔽字表如下圖;
D1
D2
D3
D4
D1
0
1
1
1
D2
0
0
1
0
D3
0
0
0
0
D4
0
1
1
0
(2)中斷過程示意圖如右圖。
時間 中斷請求 主程序 1級 2級 3級 4級
D1,D2
D3,D4
4.8
(1)f=2105字節(jié)/秒,T=5us
(2)Ts+Td=5us,通道時間圖如下。作圖時注意:至少要畫到最慢設(shè)備的第二次請求出現(xiàn),才能確定是否丟失數(shù)據(jù)(因為響應(yīng)優(yōu)先級低的設(shè)備較易丟失數(shù)據(jù))。
設(shè) 優(yōu)
備 先
號 級
D1 1
D2 4
D3 2
D4 3
時間
(us) 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170
(3)5,160,20,40;
(4)D2丟失第一次請求的數(shù)據(jù);
(5)參見P245。
2.5 第五章(P343)
例5.1
一個采用先行控制方式的處理機(jī),指令分析器分析一條指令用一個周期,到主存儲器中取一條指令裝入先行指令緩沖棧平均要用4個周期。如果這種指令的
鏈接地址:http://m.appdesigncorp.com/p-12810139.html