計算機組織與系統(tǒng)結構第四章習題答案._第1頁
計算機組織與系統(tǒng)結構第四章習題答案._第2頁
計算機組織與系統(tǒng)結構第四章習題答案._第3頁
計算機組織與系統(tǒng)結構第四章習題答案._第4頁
計算機組織與系統(tǒng)結構第四章習題答案._第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

6、會發(fā)生體沖突?參考答案:對于4體交叉訪問的存儲系統(tǒng),每個存儲模塊的地址分布為: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)在同一個Bank內(nèi),就會發(fā)生訪存沖突。所以,17和9、37和17、13和37、8和4發(fā)生沖突。8. 現(xiàn)代計算機中,SRAM一般用于實現(xiàn)快速小容量的cache,而DRAM用于實現(xiàn)慢速大容量的主存。以前超級計算機通常不提供cache,而是用SRAM來實現(xiàn)主存(如,Cray巨型機),請問:如果不考慮成本,你還這樣設

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

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

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

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

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、存按從左到右的下標順序存放。試改變下列函數(shù)中循環(huán)的順序,使得其數(shù)組元素的訪問與排列順序一致,并說明為什么修改后的程序比原來的程序執(zhí)行時間短。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í)行時間更短。13. 分析比較以下三個函數(shù)的空間局部性,并指出哪個最好,哪個最差? # 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ù)組訪問順序在每個數(shù)組元素內(nèi)跳越式訪問,相鄰兩次訪問的單元最大相差3個int型變量(假定sizeof(int)=4,則相當于12B),因此空間局部性比clear1差。若主存塊大小比12B小的話,則大大影響命中率。對于函數(shù)clear3,其數(shù)組訪問順序與在內(nèi)存的存放順序不一致,相鄰兩次訪問的單元都相差6個int型變量(假定sizeof(int)=4,則相當于24B)因此,空間局部性比clear2還差。若主存塊大小比24B小的話,則大大影

17、響命中率。14. 以下是計算兩個向量點積的程序段: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的時間局部性和空間局部性,并推斷命中率的高低。(2)假定該段程序運行的計算機的數(shù)據(jù)cache采用直接映射方式,其數(shù)據(jù)區(qū)容量為32字節(jié),每個主存塊大小為16字節(jié)。假定編譯程序將變量sum和i分配給寄存器,數(shù)組x存放在00000040H開始的32字節(jié)的連續(xù)存儲區(qū)中,數(shù)組y緊跟在x后進行存放。試計算該程

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都按存放順序訪問,不考慮映射的情況下,空間局部性都較好,但都只被訪問一次,故沒有時間局部性。命中率的高低與塊大小、映射方式等都有關,所以,無法推斷命中率的高低。(2)cache采用直接映射方式,塊大小為16字節(jié),數(shù)據(jù)區(qū)大小為32字節(jié),故cache共有2行。數(shù)組x的8個元素(共32B)分別存放

19、在主存40H開始的32個單元中,共有2個主存塊,其中x0 x3在第4塊,x4 x7在第5塊中;數(shù)組y的8個元素(共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每調入一塊,裝入4個數(shù)組元素,因為xi和yi總是映射到同一行,相互淘汰對方,故每次都不命中,命中率為0.(3)改用2路組相聯(lián),塊大小為8B,則cache共有4行,每組兩行,共兩組。數(shù)組x有4個主存塊,x0 x1、x2 x3,x4 x5,x6 x7分別在第811塊

20、中;數(shù)組y有4個主存塊,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每調入一塊,裝入兩個數(shù)組元素,第二個數(shù)組元素的訪問總是命中,故命中率為50%。(4)若(2)中條件不變,數(shù)組x定義了12個元素,共有48B,使得y從第7塊開始,因而,xi和yi就不會映射到同一個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、調入一塊,裝入4個數(shù)組元素,第一個元素不命中,后面3個總命中,故命中率為75%。15. 以下是對矩陣進行轉置的程序段: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;假設該段程序運行的計算機中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時,重新填寫表中內(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因為塊大小為16B,每個數(shù)組元素有4個字節(jié),所以4個數(shù)組元素占一個主存塊,因此每

25、次總是調入4個數(shù)組元素到cache的一行。當數(shù)據(jù)區(qū)容量為32B時,L1 data cache中共有2行。數(shù)組元素dst0i、dst2i 、src0i、src2i (i=03)都映射到cache第0行,數(shù)組元素dst1i、dst3i 、src1i、src3i (i=03)都映射到cache第1行。因此,從上述訪問過程來看,src00所在的一個主存塊(即存放src0i (i=03)四個數(shù)組元素)剛調入cache后,dst00所在主存塊又把src00替換掉了。當數(shù)據(jù)區(qū)容量為128B時,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行。因此,不會發(fā)生數(shù)組元素的替換。每次總是第一個數(shù)組元素不命中,后面三個數(shù)組元素都命中。16. 通過對方格中每個點設置相應的CMYK值就可以將方格圖上相應的顏色。以下三個程序段都可實現(xiàn)對一個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. 提高關聯(lián)度通常會降低缺失率,但并不總是

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

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

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

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

33、cache,其塊大小為32B。以下C語言程序段運行在該處理器上,sizeof(int) = 4,編譯器將變量i, j, c, s都分配在通用寄存器中,因此,只要考慮數(shù)組元素的訪存情況。若cache采用直接映射方式,則當s=64和s=63時,缺失率分別為多少?若cache采用2-路組相聯(lián)映射方式,則當s=64和s=63時,缺失率又分別為多少? 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: 訪存順序為a0、a64 , a0、a64, , 共循環(huán)10000次。這兩個元素被映射到同一個cache行中,每次都會發(fā)生沖突,因此缺失率為100%。2) 直接映射,s=63: 訪存順序為a0、a63、a126, a0、a63、a126, 共循環(huán)10000次。這三個元素中后面兩個元素因為映射到同一個cache行中,因此每次都會發(fā)生沖突,而a0不會發(fā)生沖突,故缺失率為67%。3) 2-路組相聯(lián),s=64: 訪存順序為a0、a64 , a0、a64, , 共循環(huán)10000次。這兩個元素雖然映射到同一個cache組中,但可以放在該組不同cache行中,所以不會

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

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

溫馨提示

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

評論

0/150

提交評論