計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)第四章習(xí)題答案._第1頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)第四章習(xí)題答案._第2頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)第四章習(xí)題答案._第3頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)第四章習(xí)題答案._第4頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)第四章習(xí)題答案._第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第 4 章 習(xí) 題 答 案3. 已知某機(jī)主存空間大小為64KB,按字節(jié)編址。要求:(1)若用1K4位的SRAM芯片構(gòu)成該主存儲(chǔ)器,需要多少個(gè)芯片?(2)主存地址共多少位?幾位用于選片?幾位用于片內(nèi)選址?(3)畫出該存儲(chǔ)器的邏輯框圖。參考答案:(1)64KB / 1K4位 = 642 = 128片。(2)因?yàn)槭前醋止?jié)編址,所以主存地址共16位,6位選片,10位片內(nèi)選址。(3)顯然,位方向上擴(kuò)展了2倍,字方向擴(kuò)展了64倍。下圖中片選信號CS為高電平有效。4. 用64K1位的DRAM芯片構(gòu)成256K8位的存儲(chǔ)器。要求:(1) 計(jì)算所需芯片數(shù),并畫出該存儲(chǔ)器的邏輯框圖。(2) 若采用異步刷新方式,每單

2、元刷新間隔不超過2ms,則產(chǎn)生刷新信號的間隔是多少時(shí)間?若采用集中刷新方式,則存儲(chǔ)器刷新一遍最少用多少讀寫周期?參考答案:(1)256KB / 64K1位 = 48 = 32片。存儲(chǔ)器邏輯框圖見下頁(圖中片選信號CS為高電平有效)。(2)因?yàn)槊總€(gè)單元的刷新間隔為2ms,所以,采用異步刷新時(shí),在2ms內(nèi)每行必須被刷新一次,且僅被刷新一次。因?yàn)镈RAM芯片存儲(chǔ)陣列為64K=256256,所以一共有256行。因此,存儲(chǔ)器控制器必須每隔2ms/256=7.8s產(chǎn)生一次刷新信號。采用集中刷新方式時(shí),整個(gè)存儲(chǔ)器刷新一遍需要256個(gè)存儲(chǔ)(讀寫)周期,在這個(gè)過程中,存儲(chǔ)器不能進(jìn)行讀寫操作。 5. 用8K8位的

3、EPROM芯片組成32K16位的只讀存儲(chǔ)器,試問:(1)數(shù)據(jù)寄存器最少應(yīng)有多少位? (2) 地址寄存器最少應(yīng)有多少位?(3) 共需多少個(gè)EPROM芯片? (4) 畫出該只讀存儲(chǔ)器的邏輯框圖。參考答案:(1)數(shù)據(jù)寄存器最少有16位。 (2)地址寄存器最少有:15位(若按16位的字編址);16位(若按字節(jié)編址)。(3)共需要 32K16位 / 8K8位= 42 = 8片。(4)該只讀存儲(chǔ)器的邏輯框圖如下(假定按字編址,圖中片選信號CS為高電平有效)。 6. 某計(jì)算機(jī)中已配有0000H7FFFH的ROM區(qū)域,現(xiàn)在再用8K4位的RAM芯片形成32K8位的存儲(chǔ)區(qū)域,CPU地址總線為A0-A15,數(shù)據(jù)總線

4、為D0-D7,控制信號為R/W#(讀/寫)、MREQ#(訪存)。要求說明地址譯碼方案,并畫出ROM芯片、RAM芯片與CPU之間的連接圖。假定上述其他條件不變,只是CPU地址線改為24根,地址范圍000000H007FFFH為ROM區(qū),剩下的所有地址空間都用8K4位的RAM芯片配置,則需要多少個(gè)這樣的RAM芯片?參考答案:CPU地址線共16位,故存儲(chǔ)器地址空間為0000HFFFFH,其中,8000HFFFFH為RAM區(qū),共215=32K個(gè)單元,其空間大小為32KB,故需8K4位的芯片數(shù)為32KB/8K4位= 42 = 8片。因?yàn)镽OM區(qū)在0000H7FFFH,RAM區(qū)在8000HFFFFH,所以

5、可通過最高位地址A15來區(qū)分,當(dāng)A15為0時(shí)選中ROM芯片;為1時(shí)選中RAM芯片,此時(shí),根據(jù)A14和A13進(jìn)行譯碼,得到4個(gè)譯碼信號,分別用于4組字?jǐn)U展芯片的片選信號。(圖略,可參照圖4.15)若CPU地址線為24位,ROM區(qū)為000000H007FFFH,則ROM區(qū)大小為32KB,總大小為16MB=214KB=51232KB,所以RAM區(qū)大小為51132KB,共需使用RAM芯片數(shù)為51132KB/8K4位=51142個(gè)芯片。7. 假定一個(gè)存儲(chǔ)器系統(tǒng)支持4體交叉存取,某程序執(zhí)行過程中訪問地址序列為3, 9, 17, 2, 51, 37, 13, 4, 8, 41, 67, 10,則哪些地址訪問

6、會(huì)發(fā)生體沖突?參考答案:對于4體交叉訪問的存儲(chǔ)系統(tǒng),每個(gè)存儲(chǔ)模塊的地址分布為:Bank0: 0、4、8、12、16 Bank1: 1、5、9、13、17 37 41Bank2: 2、6、10、14、18 Bank3: 3、7、11、15、195167如果給定的訪存地址在相鄰的4次訪問中出現(xiàn)在同一個(gè)Bank內(nèi),就會(huì)發(fā)生訪存沖突。所以,17和9、37和17、13和37、8和4發(fā)生沖突。8. 現(xiàn)代計(jì)算機(jī)中,SRAM一般用于實(shí)現(xiàn)快速小容量的cache,而DRAM用于實(shí)現(xiàn)慢速大容量的主存。以前超級計(jì)算機(jī)通常不提供cache,而是用SRAM來實(shí)現(xiàn)主存(如,Cray巨型機(jī)),請問:如果不考慮成本,你還這樣設(shè)

7、計(jì)高性能計(jì)算機(jī)嗎?為什么?參考答案:不這樣做的理由主要有以下兩個(gè)方面: 主存越大越好,主存大,缺頁率降低,因而減少了訪問磁盤所需的時(shí)間。顯然用DRAM芯片比用SRAM芯片構(gòu)成的主存容量大的多。 程序訪問的局部性特點(diǎn)使得cache的命中率很高,因而,即使主存沒有用快速的SRAM芯片而是用DRAM芯片,也不會(huì)影響到訪問速度。9. 分別給出具有下列要求的程序或程序段的示例: (1)對于數(shù)據(jù)的訪問,幾乎沒有時(shí)間局部性和空間局部性。(2)對于數(shù)據(jù)的訪問,有很好的時(shí)間局部性,但幾乎沒有空間局部性。(3)對于數(shù)據(jù)的訪問,有很好的空間局部性,但幾乎沒有時(shí)間局部性。(4)對于數(shù)據(jù)的訪問,空間局部性和時(shí)間局部性都

8、好。參考答案(略): 可以給出許多類似的示例。例如,對于按行優(yōu)先存放在內(nèi)存的多維數(shù)組,如果按列優(yōu)先訪問數(shù)組元素,則空間局部性就差,如果在一個(gè)循環(huán)體中某個(gè)數(shù)組元素只被訪問一次,則時(shí)間局部性就差。10. 假定某機(jī)主存空間大小1GB,按字節(jié)編址。cache的數(shù)據(jù)區(qū)(即不包括標(biāo)記、有效位等存儲(chǔ)區(qū))有64KB,塊大小為128字節(jié),采用直接映射和全寫(write-through)方式。請問:(1)主存地址如何劃分?要求說明每個(gè)字段的含義、位數(shù)和在主存地址中的位置。(2)cache的總?cè)萘繛槎嗌傥唬?參考答案:(1)主存空間大小為1GB,按字節(jié)編址,說明主存地址為30位。cache共有64KB/128B=5

9、12行,因此,行索引(行號)為9位;塊大小128字節(jié),說明塊內(nèi)地址為7位。因此,30位主存地址中,高14位為標(biāo)志(Tag);中間9位為行索引;低7位為塊內(nèi)地址。(2)因?yàn)椴捎弥苯佑成?,所以cache中無需替換算法所需控制位,全寫方式下也無需修改(dirty)位,而標(biāo)志位和有效位總是必須有的,所以,cache總?cè)萘繛?12(1288+14+1)=519.5K位。11. 假定某計(jì)算機(jī)的cache共16行,開始為空,塊大小為1個(gè)字,采用直接映射方式。CPU執(zhí)行某程序時(shí),依次訪問以下地址序列:2,3,11,16,21,13,64,48,19,11,3,22,4,27,6和11。要求:(1)說明每次訪問

10、是命中還是缺失,試計(jì)算訪問上述地址序列的命中率。(2)若cache數(shù)據(jù)區(qū)容量不變,而塊大小改為4個(gè)字,則上述地址序列的命中情況又如何?參考答案(1) cache采用直接映射方式,其數(shù)據(jù)區(qū)容量為16行1字/行=16字;主存被劃分成1字/塊,所以,主存塊號 = 字號。因此,映射公式為:cache行號 = 主存塊號 mod 16 = 字號 mod 16。開始cache為空,所以第一次都是miss,以下是映射關(guān)系(字號-cache行號)和命中情況。2-2: miss,3-3: miss,11-11: miss,16-0: miss, 21-5: miss,13-13: miss,64-0: miss、

11、replace,48-0: miss、replace,19-3: miss、replace,11-11: hit, 3-3: miss、replace,22-6: miss,4-4: miss,27-11: miss、replace,6-6: miss、replace,11-11: miss、replace。 只有一次命中!(2)cache采用直接映射方式,數(shù)據(jù)區(qū)容量不變,為16個(gè)字,每塊大小為4個(gè)字,所以,cache共有4行;主存被劃分為4個(gè)字/塊,所以,主存塊號 = 字號/4。因此,映射公式為:cache行號 = 主存塊號 mod 4 = 字號/4 mod 4。以下是映射關(guān)系(字號-主存塊

12、號-cache行號)和命中情況。2-0-0: miss,3-0-0: hit,11-2-2: miss,16-4-0: miss、replace,21-5-1、13-3-3: miss,64-16-0、48-12-0、19-4-0: miss, replace,11-2-2: hit,3-0-0: miss、replace,22-5-1: hit,4-1-1: miss、replace,27-6-2: miss、replace,6-1-1: hit,11-2-2: miss、replace。 命中4次。 由此可見,塊變大后,能有效利用訪問的空間局部性,從而使命中率提高!12. 假定數(shù)組元素在主

13、存按從左到右的下標(biāo)順序存放。試改變下列函數(shù)中循環(huán)的順序,使得其數(shù)組元素的訪問與排列順序一致,并說明為什么修改后的程序比原來的程序執(zhí)行時(shí)間短。int sum_array ( int aNNN)int i, j, k, sum=0;for (i=0; i N; i+) for (j=0; j N; j+) for (k=0; k N; k+) sum+=akij;return sum;參考答案:int sum_array ( int aNNN)int i, j, k, sum=0;for (k=0; k N; k+) for (i=0; i N; i+) for (j=0; j N; j+) su

14、m+=akij;return sum;修改后程序的數(shù)組元素的訪問與排列順序一致,使得空間局部性比原程序好,故執(zhí)行時(shí)間更短。13. 分析比較以下三個(gè)函數(shù)的空間局部性,并指出哪個(gè)最好,哪個(gè)最差? # define N 1000typedef struct int vel3;int acc3; point;point pN;void clear3(point *p, int n)int i, j;for (j=0; j3; j+) for (i=0; in; i+)pi.velj = 0;for (i=0; in; i+)pi.accj = 0;# define N 1000typedef stru

15、ct int vel3;int acc3; point;point pN;void clear1(point *p, int n)int i, j;for (i = 0; i n; i+) for (j = 0; j3; j+) pi.velj = 0;for (j = 0; i3; j+) pi.accj = 0;# define N 1000typedef struct int vel3;int acc3; point;point pN;void clear2(point *p, int n)int i, j;for (i=0; in; i+) for (j=0; j3; j+) pi.v

16、elj = 0; pi.accj = 0;參考答案: 對于函數(shù)clear1,其數(shù)組訪問順序與在內(nèi)存的存放順序完全一致,因此,空間局部性最好。對于函數(shù)clear2,其數(shù)組訪問順序在每個(gè)數(shù)組元素內(nèi)跳越式訪問,相鄰兩次訪問的單元最大相差3個(gè)int型變量(假定sizeof(int)=4,則相當(dāng)于12B),因此空間局部性比clear1差。若主存塊大小比12B小的話,則大大影響命中率。對于函數(shù)clear3,其數(shù)組訪問順序與在內(nèi)存的存放順序不一致,相鄰兩次訪問的單元都相差6個(gè)int型變量(假定sizeof(int)=4,則相當(dāng)于24B)因此,空間局部性比clear2還差。若主存塊大小比24B小的話,則大大影

17、響命中率。14. 以下是計(jì)算兩個(gè)向量點(diǎn)積的程序段:float dotproduct (float x8, float y8)float sum = 0.0;int i,;for (i = 0; i 8; i+) sum += xi * yi;return sum;要求:(1)試分析該段代碼中數(shù)組x和y的時(shí)間局部性和空間局部性,并推斷命中率的高低。(2)假定該段程序運(yùn)行的計(jì)算機(jī)的數(shù)據(jù)cache采用直接映射方式,其數(shù)據(jù)區(qū)容量為32字節(jié),每個(gè)主存塊大小為16字節(jié)。假定編譯程序?qū)⒆兞縮um和i分配給寄存器,數(shù)組x存放在00000040H開始的32字節(jié)的連續(xù)存儲(chǔ)區(qū)中,數(shù)組y緊跟在x后進(jìn)行存放。試計(jì)算該程

18、序數(shù)據(jù)訪問的命中率,要求說明每次訪問的cache命中情況。(3)將上述(2)中的數(shù)據(jù)cache改用2-路組相聯(lián)映射方式,塊大小改為8字節(jié),其他條件不變,則該程序數(shù)據(jù)訪問的命中率是多少?(4)在上述(2)中條件不變的情況下,如果將數(shù)組x定義為float12,則數(shù)據(jù)訪問的命中率是多少?參考答案:(1)數(shù)組x和y都按存放順序訪問,不考慮映射的情況下,空間局部性都較好,但都只被訪問一次,故沒有時(shí)間局部性。命中率的高低與塊大小、映射方式等都有關(guān),所以,無法推斷命中率的高低。(2)cache采用直接映射方式,塊大小為16字節(jié),數(shù)據(jù)區(qū)大小為32字節(jié),故cache共有2行。數(shù)組x的8個(gè)元素(共32B)分別存放

19、在主存40H開始的32個(gè)單元中,共有2個(gè)主存塊,其中x0 x3在第4塊,x4 x7在第5塊中;數(shù)組y的8個(gè)元素(共32B)分別在主存第6塊和第7塊中。所以,x0 x3和y0 y3都映射到cache第0行;x4 x7和y4 y7都映射到cache第1行。cache第0-3次循環(huán)第4-7次循環(huán)第0行x0-3,y0-3第1行x4-7,y4-7每調(diào)入一塊,裝入4個(gè)數(shù)組元素,因?yàn)閤i和yi總是映射到同一行,相互淘汰對方,故每次都不命中,命中率為0.(3)改用2路組相聯(lián),塊大小為8B,則cache共有4行,每組兩行,共兩組。數(shù)組x有4個(gè)主存塊,x0 x1、x2 x3,x4 x5,x6 x7分別在第811塊

20、中;數(shù)組y有4個(gè)主存塊,y0 y1、y2 y3,y4 y5,y6 y7分別在第1215塊中;cache第0行第1行第0組x0-1,x4-5y0-1,y4-5第1組x2-3,x6-7y2-3,y6-7每調(diào)入一塊,裝入兩個(gè)數(shù)組元素,第二個(gè)數(shù)組元素的訪問總是命中,故命中率為50%。(4)若(2)中條件不變,數(shù)組x定義了12個(gè)元素,共有48B,使得y從第7塊開始,因而,xi和yi就不會(huì)映射到同一個(gè)cache行中,即:x0 x3在第4塊,x4 x7在第5塊,x8 x11在第6塊中,y0 y3在第7塊,y4 x7在第8塊。cache第0-3次循環(huán)第4-7次循環(huán)第0行x0-3y4-7第1行y0-3x4-7每

21、調(diào)入一塊,裝入4個(gè)數(shù)組元素,第一個(gè)元素不命中,后面3個(gè)總命中,故命中率為75%。15. 以下是對矩陣進(jìn)行轉(zhuǎn)置的程序段:typedef int array44;void transpose(array dst,array src)inti, j; for (i = 0; i 4; i+)for (j = 0; j 4; j+)dstji = srcij;假設(shè)該段程序運(yùn)行的計(jì)算機(jī)中sizeof(int)=4,且只有一級cache,其中L1 data cache的數(shù)據(jù)區(qū)大小為32B,采用直接映射、寫回方式,塊大小為16B,初始為空。數(shù)組dst從地址0000C000H開始存放,數(shù)組src從地址0000

22、C040H開始存放。填寫下表,說明數(shù)組元素srcrowcol和dstrowcol映射到cache的哪一行,其訪問是命中(hit)還是失效(miss)。若L1 data cache的數(shù)據(jù)區(qū)容量改為128B時(shí),重新填寫表中內(nèi)容。src數(shù)組dst數(shù)組32Bcol=0col=1col=2col=3col=0col=1col=2col=3row=00/miss0/miss0/hit0/miss0/miss0/miss0/miss0/missrow=11/miss1/hit1/miss1/hit1/miss1/miss1/miss1/missrow=20/miss0/miss0/hit0/miss0/mi

23、ss0/miss0/miss0/missrow=31/miss1/hit1/miss1/hit1/miss1/miss1/miss1/misssrc數(shù)組dst數(shù)組128Bcol=0col=1col=2col=3col=0col=1col=2col=3row=04/miss4/hit4/hit4/ hit0/miss0/hit 0/hit 0/hit row=15/ miss5/hit5/hit5/hit1/miss1/hit1/hit1/hitrow=26/ miss6/hit6/hit6/hit2/miss2/hit2/hit2/hitrow=37/ miss7/hit7/hit7/hit3

24、/miss3/hit3/hit3/hit參考答案:從程序來看,數(shù)組訪問過程如下:src0 0、dst0 0、src0 1、dst1 0、src0 2、dst2 0、src0 3、dst3 0src1 0、dst0 1、src1 1、dst1 1、src1 2、dst2 1、src1 3、dst3 1src2 0、dst0 2、src2 1、dst1 2、src2 2、dst2 2、src2 3、dst3 2src3 0、dst0 3、src3 1、dst1 3、src3 2、dst2 3、src3 3、dst3 3因?yàn)閴K大小為16B,每個(gè)數(shù)組元素有4個(gè)字節(jié),所以4個(gè)數(shù)組元素占一個(gè)主存塊,因此每

25、次總是調(diào)入4個(gè)數(shù)組元素到cache的一行。當(dāng)數(shù)據(jù)區(qū)容量為32B時(shí),L1 data cache中共有2行。數(shù)組元素dst0i、dst2i 、src0i、src2i (i=03)都映射到cache第0行,數(shù)組元素dst1i、dst3i 、src1i、src3i (i=03)都映射到cache第1行。因此,從上述訪問過程來看,src00所在的一個(gè)主存塊(即存放src0i (i=03)四個(gè)數(shù)組元素)剛調(diào)入cache后,dst00所在主存塊又把src00替換掉了。當(dāng)數(shù)據(jù)區(qū)容量為128B時(shí),L1 data cache中共有8行。數(shù)組元素dst0i、dst1i 、dst2i、dst3i、src0i、src1

26、i、src2i、src3i (i=03) 分別映射到cache第0、1、2、3、4、5、6、7行。因此,不會(huì)發(fā)生數(shù)組元素的替換。每次總是第一個(gè)數(shù)組元素不命中,后面三個(gè)數(shù)組元素都命中。16. 通過對方格中每個(gè)點(diǎn)設(shè)置相應(yīng)的CMYK值就可以將方格圖上相應(yīng)的顏色。以下三個(gè)程序段都可實(shí)現(xiàn)對一個(gè)88的方格中圖上黃色的功能。struct pt_color int c;int m;int y;int k;struct pt_color square88;int i, j;for (i = 0; i 8; i+) for (j = 0; j 8; j+) squareij.c = 0;squareij.m =

27、0;squareij.y = 1;squareij.k = 0;struct pt_color int c;int m;int y;int k;struct pt_color quare88;int i, j;for (i = 0; i 8; i+) for (j = 0; j 8; j+) square j i.c = 0;square j i.m = 0;square j i.y = 1;square j i.k = 0;struct pt_color int c;int m;int y;int k;struct pt_color square88;int i, j;for (i = 0;

28、 i 8; i+)for (j = 0; j 8; j+)squareij.y = 1;for (i = 0; i 8; i+)for (j = 0; j 8x 且 x y,顯然,滿足該條件的x和y有許多,例如,x=4,y=3、x=5,y=4等等。對于以下的訪問地址序列:0,1,4,8,cache1缺失4次,而cache2缺失3次;對于以下的訪問地址序列:0,2,4,8,12,cache1缺失5次,而cache2缺失4次;對于以下的訪問地址序列:0,3,4,8,12,16,20,cache1缺失7次,而cache2缺失6次;如此等等,可以找出很多。20. 提高關(guān)聯(lián)度通常會(huì)降低缺失率,但并不總是

29、這樣。請給出一個(gè)地址訪問序列,使得采用LRU替換算法的2-路組相聯(lián)映射cache比具有同樣大小的直接映射cache的缺失率更高。參考答案:2-路組相聯(lián)cache的組數(shù)是直接映射cache的行數(shù)的一半,所以,可以找到一個(gè)地址序列A、B、C,使得:A映射到某一個(gè)cache行,B和C同時(shí)映射到另一個(gè)cache行,并且A、B、C映射到同一個(gè)cache組。這樣,如果訪存的地址序列為A、B、C、A、B、C、A、B、C ,則對于直接映射cache,其命中情況為:miss/miss/miss /hit/miss/miss /hit/miss/miss/ 命中率可達(dá)33.3%。對于組相聯(lián)cache,因?yàn)锳、B、

30、C映射到同一個(gè)組,每組只有2行,采用LRU替換算法,所以,每個(gè)地址處的數(shù)據(jù)剛調(diào)出cache就又被訪問到,每次都是miss,命中率為0。例如:假定直接映射cache為4行1字/行,同樣大小的2-路組相聯(lián)cache為2組2行/組1字/行當(dāng)訪問序列為:0、2、4、0、2、4、0、2、4、 (局部塊大小為3)時(shí),則出現(xiàn)上述情況。當(dāng)訪問的局部塊大于組的大小時(shí),可能會(huì)發(fā)生“顛簸”現(xiàn)象:剛被替換出去的數(shù)據(jù)又被訪問,導(dǎo)致缺失率為100%!21. 假定有三個(gè)處理器,分別帶有以下不同的cache:cache1:采用直接映射方式,塊大小為1個(gè)字,指令和數(shù)據(jù)的缺失率分別為4%和6%; cache2:采用直接映射方式,

31、塊大小為4個(gè)字,指令和數(shù)據(jù)的缺失率分別為2%和4%;cache3:采用2-路組相聯(lián)映射方式,塊大小為4個(gè)字,指令和數(shù)據(jù)的缺失率分別為2%和3%。在這些處理器上運(yùn)行相同的程序,該程序的CPI為2.0,其中有一半是訪存指令。若缺失損失為(塊大小+6)個(gè)時(shí)鐘周期,處理器1和處理器2的時(shí)鐘周期都為420ps,帶有cache3的處理器3的時(shí)鐘周期為450ps。請問:哪個(gè)處理器因cache缺失而引起的額外開銷最大?哪個(gè)處理器執(zhí)行速度最快?參考答案:假設(shè)所運(yùn)行的程序共執(zhí)行N條指令,每條訪存指令僅讀寫一次內(nèi)存數(shù)據(jù),則在該程序執(zhí)行過程中各處理器因cache缺失而引起的額外開銷和執(zhí)行時(shí)間計(jì)算如下。對于處理器1:額

32、外開銷為:N(4% + 6%50%)(1+6) = 0.49 N個(gè)時(shí)鐘周期執(zhí)行程序所需時(shí)間為:(N2.0 +0.49N)420ps = 1045.8N ps對于處理器2:額外開銷為:N(2%+4%50%)(4+6) = 0.40N個(gè)時(shí)鐘周期執(zhí)行程序所需時(shí)間為:(N2.0+0.40N)420ps=1008N ps對于處理器3:額外開銷為:N(2%+3%50%)(4+6) = 0.35N個(gè)時(shí)鐘周期執(zhí)行程序所需時(shí)間為:(N2.0+0.35N)450ps=1057.5N ps由此可見,處理器1的cache缺失引起的額外開銷最大,處理器2的執(zhí)行速度最快。22. 假定某處理器帶有一個(gè)數(shù)據(jù)區(qū)容量為256B的

33、cache,其塊大小為32B。以下C語言程序段運(yùn)行在該處理器上,sizeof(int) = 4,編譯器將變量i, j, c, s都分配在通用寄存器中,因此,只要考慮數(shù)組元素的訪存情況。若cache采用直接映射方式,則當(dāng)s=64和s=63時(shí),缺失率分別為多少?若cache采用2-路組相聯(lián)映射方式,則當(dāng)s=64和s=63時(shí),缺失率又分別為多少? int i, j, c, s, a128; for ( i = 0; i 10000; i+ )for ( j = 0; j 128; j=j+s ) c = aj;參考答案:已知塊大小為32B,cache容量為256B = 8行8字/行 4B/字,僅考慮

34、數(shù)組訪問情況。1) 直接映射,s=64: 訪存順序?yàn)閍0、a64 , a0、a64, , 共循環(huán)10000次。這兩個(gè)元素被映射到同一個(gè)cache行中,每次都會(huì)發(fā)生沖突,因此缺失率為100%。2) 直接映射,s=63: 訪存順序?yàn)閍0、a63、a126, a0、a63、a126, 共循環(huán)10000次。這三個(gè)元素中后面兩個(gè)元素因?yàn)橛成涞酵粋€(gè)cache行中,因此每次都會(huì)發(fā)生沖突,而a0不會(huì)發(fā)生沖突,故缺失率為67%。3) 2-路組相聯(lián),s=64: 訪存順序?yàn)閍0、a64 , a0、a64, , 共循環(huán)10000次。這兩個(gè)元素雖然映射到同一個(gè)cache組中,但可以放在該組不同cache行中,所以不會(huì)

35、發(fā)生沖突,缺失率為0。4) 2-路組相聯(lián),s=63: 訪存順序?yàn)閍0、a63、a126, a0、a63、a126, 共循環(huán)10000次。這三個(gè)元素中后面兩個(gè)元素雖映射到同一個(gè)cache組中,但可放在不同cache行中, 而a0不會(huì)發(fā)生沖突,故缺失率為0。23. 假定一個(gè)虛擬存儲(chǔ)系統(tǒng)的虛擬地址為40位,物理地址為36位,頁大小為16KB,按字節(jié)編址。若頁表中有有效位、存儲(chǔ)保護(hù)位、修改位、使用位,共占4位,磁盤地址不在頁表中,則該存儲(chǔ)系統(tǒng)中每個(gè)進(jìn)程的頁表大小為多少?如果按計(jì)算出來的實(shí)際大小構(gòu)建頁表,則會(huì)出現(xiàn)什么問題?參考答案:因?yàn)槊宽摯笮∮?6KB,所以虛擬頁數(shù)為240B/16KB=2(40-14

36、)=226頁。物理頁面和虛擬頁面大小相等,所以物理頁號的位數(shù)為3614=22位。頁表項(xiàng)位數(shù)為:有效位+保護(hù)位+修改位+使用位+物理頁號位數(shù)=4+22=26位。為簡化頁表訪問,每項(xiàng)大小取32位。因此,每個(gè)進(jìn)程的頁表大小為:22632b=256MB。如果按實(shí)際計(jì)算出的頁表大小構(gòu)建頁表,則頁表過大而導(dǎo)致頁表無法一次裝入內(nèi)存。24. 假定一個(gè)計(jì)算機(jī)系統(tǒng)中有一個(gè)TLB和一個(gè)L1 data cache。該系統(tǒng)按字節(jié)編址,虛擬地址16位,物理地址12位;頁大小為128B,TLB為四路組相聯(lián),共有16個(gè)頁表項(xiàng);L1 data cache采用直接映射方式,塊大小為4B,共16行。在系統(tǒng)運(yùn)行到某一時(shí)刻時(shí),TLB、頁表和L1 data cache中的部分內(nèi)容(用十六進(jìn)制表示)如下:

溫馨提示

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

最新文檔

評論

0/150

提交評論