高教版課后習題答案_第1頁
高教版課后習題答案_第2頁
高教版課后習題答案_第3頁
高教版課后習題答案_第4頁
高教版課后習題答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章 計算機系統(tǒng)結(jié)構(gòu)的基本概念1.6 某臺主頻為400MHz的計算機執(zhí)行標準測試程序,程序中指令類型、執(zhí)行數(shù)量和平均時鐘周期數(shù)如下:指令類型指令執(zhí)行數(shù)量平均時鐘周期數(shù)整數(shù)450001數(shù)據(jù)傳送750002浮點80004分支15002求該計算機的有效CPI、MIPS和程序執(zhí)行時間。解:(1)CPI (4500017500028000415002) / 1.776(2)MIPS速率f/ CPI 400/1.776 225.225MIPS(3)程序執(zhí)行時間= (4500017500028000415002)400=575s 沒有錯誤, 但是不嚴密,指令數(shù)量的單位是MIPS. 1.7 將計算機系統(tǒng)中某

2、一功能的處理速度加快10倍,但該功能的處理時間僅為整個系統(tǒng)運行時間的40%,則采用此增強功能方法后,能使整個系統(tǒng)的性能提高多少?解 由題可知: 可改進比例 = 40% = 0.4 部件加速比 = 10根據(jù)Amdahl定律可知:采用此增強功能方法后,能使整個系統(tǒng)的性能提高到原來的1.5625倍。1.8 計算機系統(tǒng)中有三個部件可以改進,這三個部件的部件加速比為:部件加速比1=30; 部件加速比2=20; 部件加速比3=10(1) 如果部件1和部件2的可改進比例均為30%,那么當部件3的可改進比例為多少時,系統(tǒng)加速比才可以達到10?(2) 如果三個部件的可改進比例分別為30%、30%和20%,三個部

3、件同時改進,那么系統(tǒng)中不可加速部分的執(zhí)行時間在總執(zhí)行時間中占的比例是多少?解:(1)在多個部件可改進情況下,Amdahl定理的擴展:已知S130,S220,S310,Sn10,F(xiàn)10.3,F(xiàn)20.3,得:得F30.36,即部件3的可改進比例為36%。(2)設(shè)系統(tǒng)改進前的執(zhí)行時間為T,則3個部件改進前的執(zhí)行時間為:(0.3+0.3+0.2)T = 0.8T,不可改進部分的執(zhí)行時間為0.2T。已知3個部件改進后的加速比分別為S130,S220,S310,因此3個部件改進后的執(zhí)行時間為: 改進后整個系統(tǒng)的執(zhí)行時間為:Tn = 0.045T+0.2T = 0.245T那么系統(tǒng)中不可改進部分的執(zhí)行時間在

4、總執(zhí)行時間中占的比例是:1.9 假設(shè)某應(yīng)用程序中有4類操作,通過改進,各操作獲得不同的性能提高。具體數(shù)據(jù)如下表所示:操作類型程序中的數(shù)量(百萬條指令)改進前的執(zhí)行時間(周期)改進后的執(zhí)行時間(周期)操作11021操作2302015操作335103操作41541(1)改進后,各類操作的加速比分別是多少?(2)各類操作單獨改進后,程序獲得的加速比分別是多少?(3)4類操作均改進后,整個程序的加速比是多少?解:根據(jù)Amdahl定律可得操作類型各類操作的指令條數(shù)在程序中所占的比例Fi各類操作的加速比Si各類操作單獨改進后,程序獲得的加速比操作111.1%21.06操作233.3%1.331.09操作3

5、38.9%3.331.37操作416.7%41.144類操作均改進后,整個程序的加速比:討論:這道題答案我認為是錯了。我的參考答案:算法一,用最原始的加速比公式:加速比 = 改進前執(zhí)行時間/改進后執(zhí)行時間 = (10*2+30*20+35*10+15*4)/ (10*1+30*15 + 35*3+15*1) = 1030/580 = 1.78算法二,部件比例。注意定義:部件比例的定義是 可改進的部分的執(zhí)行時間在總的執(zhí)行時間中所占的比例。因此操作類型各類操作的在總的執(zhí)行時間中所占的比例Fi各類操作的加速比Si操作120/10302操作2600/1030 20/15操作3350/1030 10/3

6、操作4 60/1030 4/1加速比 = = 1.78第3章 流水線技術(shù)3.4 設(shè)一條指令的執(zhí)行過程分成取指令、分析指令和執(zhí)行指令三個階段,每個階段所需的時間分別為t、t和2t 。分別求出下列各種情況下,連續(xù)執(zhí)行N條指令所需的時間。(1)順序執(zhí)行方式;(2)只有“取指令”與“執(zhí)行指令”重疊;(3)“取指令”、“分析指令”與“執(zhí)行指令”重疊。解:(1)每條指令的執(zhí)行時間為:tt2t4t連續(xù)執(zhí)行N條指令所需的時間為:4Nt(2)連續(xù)執(zhí)行N條指令所需的時間為:4t3(N-1)t(3N1)t(3)連續(xù)執(zhí)行N條指令所需的時間為:4t2(N-1)t(2N2)t3.9列舉出下面循環(huán)中的所有相關(guān),包括輸出相關(guān)

7、、反相關(guān)、真相關(guān)。for (i=2; i100; i=i+1)ai=bi+ai;/* s1 */ci+1=ai+di; /* s2 */ai-1=2*bi; /* s3 */bi+1=2*bi;/* s4 */解:展開循環(huán)兩次:ai = bi + ai; /* s1 */ci+1 = ai + di; /* s2 */ai-1 = 2 * bi; /* s3 */bi+1 = 2 * bi; /* s4 */ai+1 = bi+1 + ai+1; /* s1 */ci+2 = ai+1 + di+1; /* s2 */ai = 2 * bi+1; /* s3 */bi+2 = 2 * bi+1

8、; /* s4 */輸出相關(guān):無反相關(guān):無真相關(guān):S1&S2由于循環(huán)引入的相關(guān):S4&S4(真相關(guān))、S1&S4(真相關(guān))、S3&S4(真相關(guān))、S1&S3(輸出相關(guān)、反相關(guān))、S2&S3(反相關(guān))。3.12 有一指令流水線如下所示(1) 求連續(xù)輸入10條指令,該流水線的實際吞吐率和效率;(2) 該流水線的“瓶頸”在哪一段?請采取兩種不同的措施消除此“瓶頸”。對于你所給出的兩種新的流水線,連續(xù)輸入10條指令時,其實際吞吐率和效率各是多少?解:(1)(2)瓶頸在3、4段。n 變成八級流水線(細分)n 重復(fù)設(shè)置部件123-13-24-14-24-34-43.13有一個流水線由4段組成,其中每當流經(jīng)

9、第3段時,總要在該段循環(huán)一次,然后才能流到第4段。如果每段經(jīng)過一次所需要的時間都是,問:(1) 當在流水線的輸入端連續(xù)地每時間輸入任務(wù)時,該流水線會發(fā)生什么情況?(2) 此流水線的最大吞吐率為多少?如果每輸入一個任務(wù),連續(xù)處理10個任務(wù)時的實際吞吐率和效率是多少?(3) 當每段時間不變時,如何提高該流水線的吞吐率?仍連續(xù)處理10個任務(wù)時,其吞吐率提高多少?解:(1)會發(fā)生流水線阻塞情況。第1個任務(wù)S1S2S3S3S4第2個任務(wù)S1S2stallS3S3S4第3個任務(wù)S1stallS2stallS3S3S4第4個任務(wù)S1stallS2stallS3S3S4(2)(3)重復(fù)設(shè)置部件吞吐率提高倍數(shù)1

10、.643.14 有一條靜態(tài)多功能流水線由5段組成,加法用1、3、4、5段,乘法用1、2、5段,第3段的時間為2t,其余各段的時間均為t,而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中。現(xiàn)要在該流水線上計算 ,畫出其時空圖,并計算其吞吐率、加速比和效率。解:首先,應(yīng)選擇適合于流水線工作的算法。對于本題,應(yīng)先計算A1B1、A2B2、A3B3和A4B4;再計算(A1B1) (A2B2)和(A3B3) (A4B4);然后求總的結(jié)果。其次,畫出完成該計算的時空圖,如圖所示,圖中陰影部分表示該段在工作。由圖可見,它在18個t時間中,給出了7個結(jié)果。所以吞吐率為: 如果不用流水線,由于一次求積

11、需3t,一次求和需5t,則產(chǎn)生上述7個結(jié)果共需(45+33)t =29t。所以加速比為: 該流水線的效率可由陰影區(qū)的面積和5個段總時空區(qū)的面積的比值求得: 3.15 動態(tài)多功能流水線由6個功能段組成,如下圖:其中,S1、S4、S5、S6組成乘法流水線,S1、S2、S3、S6組成加法流水線,各個功能段時間均為50ns,假設(shè)該流水線的輸出結(jié)果可以直接返回輸入端,而且設(shè)置有足夠的緩沖寄存器,若以最快的方式用該流水計算:(1) 畫出時空圖;(2) 計算實際的吞吐率、加速比和效率。解:機器一共要做10次乘法,4次加法。3.16 在MIPS流水線上運行如下代碼序列:LOOP: LW R1,0(R2) DA

12、DDIU R1,R1,#1 SW R1, 0(R2) DADDIU R2,R2,#4 DSUB R4,R3,R2 BNEZ R4,LOOP 其中:R3的初值是R2+396。假設(shè):在整個代碼序列的運行過程中,所有的存儲器訪問都是命中的,并且在一個時鐘周期中對同一個寄存器的讀操作和寫操作可以通過寄存器文件“定向”。問:(1) 在沒有任何其它定向(或旁路)硬件的支持下,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用排空流水線的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期?(2) 假設(shè)該流水線有正常的定向路徑,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用預(yù)測分

13、支失敗的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期?(3) 假設(shè)該流水線有正常的定向路徑和一個單周期延遲分支,請對該循環(huán)中的指令進行調(diào)度,你可以重新組織指令的順序,也可以修改指令的操作數(shù),但是注意不能增加指令的條數(shù)。請畫出該指令序列執(zhí)行的流水線時空圖,并計算執(zhí)行上述循環(huán)所需要的時鐘周期數(shù)。解:寄存器讀寫可以定向,無其他旁路硬件支持。排空流水線。第i次迭代(i0.98)開始周期:1(i17)總的時鐘周期數(shù):(9817)181684有正常定向路徑,預(yù)測分支失敗。第i次迭代(i0.98)開始周期:1(i10)總的時鐘周期數(shù):(9810)11991有正常定

14、向路徑。單周期延遲分支。LOOP: LW R1,0(R2)DADDIU R2,R2,#4DADDIU R1,R1,#1DSUB R4,R3,R2BNEZ R4,LOOPSW R1,-4(R2)第i次迭代(i 0.98)開始周期:1(i 6 )總的時鐘周期數(shù):(986)105983.17 假設(shè)各種分支指令數(shù)占所有指令數(shù)的百分比如下:條件分支20%(其中的60%是分支成功的)跳轉(zhuǎn)和調(diào)用5%現(xiàn)有一條段數(shù)為4的流水線,無條件分支在第二個時鐘周期結(jié)束時就被解析出來,而條件分支要到第三個時鐘周期結(jié)束時才能夠被解析出來。第一個流水段是完全獨立于指令類型的,即所有類型的指令都必須經(jīng)過第一個流水段的處理。請問在

15、沒有任何控制相關(guān)的情況下,該流水線相對于存在上述控制相關(guān)情況下的加速比是多少?解:沒有控制相關(guān)時流水線的平均CPI1存在控制相關(guān)時:由于無條件分支在第二個時鐘周期結(jié)束時就被解析出來,而條件分支要到第3個時鐘周期結(jié)束時才能被解析出來。所以:(1)若使用排空流水線的策略,則對于條件分支,有兩個額外的stall,對無條件分支,有一個額外的stall:CPI = 1+20%*2+5%*1 = 1.45 加速比S=CPI/1 = 1.45(2) 若使用預(yù)測分支成功策略,則對于不成功的條件分支,有兩個額外的stall,對無條件分支和成功的條件分支,有一個額外的stall 1:CPI = 1+20%*(60

16、%*1+40%*2) +5%*1 = 1.33 加速比S=CPI/1 = 1.33(3)若使用預(yù)測分支失敗策略,則對于成功的條件分支,有兩個額外的stall;對無條件分支,有一個額外的stall;對不成功的條件分支,其目標地址已經(jīng)由PC 值給出,不必等待,所以無延遲:CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S=CPI/1 = 1.293.18 在CRAY-1機器上,按照鏈接方式執(zhí)行下述4條向量指令(括號中給出了相應(yīng)功能部件的執(zhí)行時間),如果向量寄存器和功能部件之間的數(shù)據(jù)傳送需要1拍,試求此鏈接流水線的通過時間是多少拍?如果向量長度為64,則需多少

17、拍才能得到全部結(jié)果? V0存儲器 (從存儲器中取數(shù):7拍) V2V0+V1 (向量加:3拍) V3V2A3 (按(A3)左移:4拍) V5V3V4 (向量邏輯乘:2拍)解:通過時間就是每條向量指令的第一個操作數(shù)執(zhí)行完畢需要的時間,也就是各功能流水線由空到滿的時間,具體過程如下圖所示。要得到全部結(jié)果,在流水線充滿之后,向量中后繼操作數(shù)繼續(xù)以流水方式執(zhí)行,直到整組向量執(zhí)行完畢。3.19 某向量處理機有16個向量寄存器,其中V0V5中分別放有向量A、B、C、D、E、F,向量長度均為8,向量各元素均為浮點數(shù);處理部件采用兩條單功能流水線,加法功能部件時間為2拍,乘法功能部件時間為3拍。采用類似于CAR

18、Y-1的鏈接技術(shù),先計算(A+B)*C,在流水線不停流的情況下,接著計算(D+E)*F。(1) 求此鏈接流水線的通過時間?(設(shè)寄存器入、出各需1拍)(2) 假如每拍時間為50ns,完成這些計算并把結(jié)果存進相應(yīng)寄存器,此處理部件的實際吞吐率為多少MFLOPS?解:(1)我們在這里假設(shè)AB的中間結(jié)果放在V6中,(AB)C地最后結(jié)果放在V7中,DE地中間結(jié)果放在V8中,(DE)F的最后結(jié)果放在V9中。具體實現(xiàn)參考下圖:通過時間應(yīng)該為前者(AB)C)通過的時間:T通過= (1+2+1)+(1+3+1) =9(拍)(2)在做完(AB)C之后,作(CD)E就不需要通過時間了。V6AB V7V6C V8DE

19、 V9V8F第4章 指令級并行4.3 根據(jù)需要展開下面的循環(huán)并進行指令調(diào)度,直到?jīng)]有任何延遲。指令的延遲如表4.3。LOOP:L.DF0,0(R1)MUL.DF0,F0,F2L.DF4,0(R2)ADD.DF0,F0,F4S.DF0,0(R2)DSUBIR1,R1,#8DSUBIR2,R2,#8BNEZR1,LOOP解:將循環(huán)展開兩次,進行指令調(diào)度,即可以消除延遲,代碼如下:LOOP: L.D F0,0(R1)L.D F10,-8(R1)MUL.D F0,F(xiàn)0,F(xiàn)2MUL.D F10,F(xiàn)10,F(xiàn)2L.D F4,0(R2)L.DF14,-8(R2)ADD.D F0,F(xiàn)0,F(xiàn)4ADD.DF10,F(xiàn)

20、10,F(xiàn)14DSUBI R1,R1,16S.D 0(R2),F(xiàn)0DSUBI R2,R2,16BNEZ R1,LOOPS.D 8(R2),F(xiàn)104.4 假設(shè)有一條長流水線,僅僅對條件轉(zhuǎn)移指令使用分支目標緩沖。假設(shè)分支預(yù)測錯誤的開銷為4個時鐘周期,緩沖不命中的開銷為3個時鐘周期。假設(shè):命中率為90%,預(yù)測精度為90%,分支頻率為15%,沒有分支的基本CPI為1。(1) 求程序執(zhí)行的CPI。(2) 相對于采用固定的2個時鐘周期延遲的分支處理,哪種方法程序執(zhí)行速度更快?解:(1)程序執(zhí)行的CPI = 沒有分支的基本CPI(1) + 分支帶來的額外開銷分支帶來的額外開銷是指在分支指令中,緩沖命中但預(yù)測錯

21、誤帶來的開銷與緩沖沒有命中帶來的開銷之和。分支帶來的額外開銷= 15% * (90%命中10%預(yù)測錯誤4 + 10沒命中3)= 0.099所以,程序執(zhí)行的CPI 1 0.099 = 1.099(2)采用固定的2 個時鐘周期延遲的分支處理CPI = 1 + 15%2 = 1.3由(1)(2)可知分支目標緩沖方法執(zhí)行速度快。4.5 假設(shè)分支目標緩沖的命中率為90%,程序中無條件轉(zhuǎn)移指令的比例為5%,沒有無條件轉(zhuǎn)移指令的程序CPI值為1。假設(shè)分支目標緩沖中包含分支目標指令,允許無條件轉(zhuǎn)移指令進入分支目標緩沖,則程序的CPI值為多少?解:設(shè)每條無條件轉(zhuǎn)移指令的延遲為x,則有:15%x1.1 x2當分支

22、目標緩沖命中時,無條件轉(zhuǎn)移指令的延遲為0。所以 程序的CPI 1 2 5% (1 90%) 1.014.6 下面的一段MIPS匯編程序是計算高斯消去法中的關(guān)鍵一步,用于完成下面公式的計算:Y = a X + Y其浮點指令延遲如表4.3所示,整數(shù)指令均為1個時鐘周期完成,浮點和整數(shù)部件均采用流水。整數(shù)操作之間以及與其它所有浮點操作之間的延遲為0,轉(zhuǎn)移指令的延遲為0。X中的最后一個元素存放在存儲器中的地址為DONE。FOO:L.DF2,0(R1)MUT.DF4,F2,F0L.DF6,0(R2)ADD.DF6,F4,F6S.DF6,0R2DADDIUR1,R1,#8DADDIUR2,R2,#8DSU

23、BIUR3,R1,#DONE BNEZR3, FOO(1) 對于標準的MIPS單流水線,上述循環(huán)計算一個Y值需要多少時間?其中有多少空轉(zhuǎn)周期?(2) 對于標準的MIPS單流水線,將上述循環(huán)順序展開4次,不進行任何指令調(diào)度,計算一個Y值平均需要多少時間?加速比是多少?其加速是如何獲得的?(3) 對于標準的MIPS單流水線,將上述循環(huán)順序展開4次,優(yōu)化和調(diào)度指令,使循環(huán)處理時間達到最優(yōu),計算一個Y值平均需要多少時間?加速比是多少?(4) 對于采用如圖4.8前瞻執(zhí)行機制的MIPS處理器(只有一個整數(shù)部件)。當循環(huán)第二次執(zhí)行到BNEZR3,FOO時,寫出前面所有指令的狀態(tài),包括指令使用的保留站、指令起

24、始節(jié)拍、執(zhí)行節(jié)拍和寫結(jié)果節(jié)拍,并寫出處理器當前的狀態(tài)。(5) 對于2路超標量的MIPS流水線,設(shè)有兩個指令流出部件,可以流出任意組合的指令,系統(tǒng)中的功能部件數(shù)量不受限制。將上述循環(huán)展開4次,優(yōu)化和調(diào)度指令,使循環(huán)處理時間達到最優(yōu)。計算一個Y值平均需要多少時間?加速比是多少?(6) 對于如圖4.13結(jié)構(gòu)的超長指令字MIPS處理器,將上述循環(huán)展開4次,優(yōu)化和調(diào)度指令,使循環(huán)處理時間達到最優(yōu)。計算一個Y值平均需要多少時間?加速比是多少?解:(1)L.DF2, 0(R1)1Stall MUT.DF4, F2, F02L.DF6, 0(R2)3Stall Stall ADD.DF6, F4, F64St

25、all StallS.DF6, 0R25 DADDIUR1, R1, #86DADDIUR2, R2, #87DSUBIUR3, R1, #DONE 8BNEZR3, FOO9所以,共有14 個時鐘周期,其中有5 個空轉(zhuǎn)周期。(2)循環(huán)順序展開4 次,不進行任何指令調(diào)度,則指令15 及其間的stall 都是必要的,只是指令69 只需執(zhí)行一次,因此,共有 10 4 4 44 個時鐘周期,計算出4 個Y 值,所以計算一個Y 值需要11 個時鐘周期,加速比為:14/11 = 1.27 。加速主要是來自減少控制開銷,即減少對R1、R2 的整數(shù)操作以及比較、分支指令而來的。(3)循環(huán)順序展開4 次,優(yōu)化

26、和調(diào)度指令,如下:L.DF2, 0(R1)L.DF8, 8(R1) L.DF14, 16(R1)L.DF20, 24(R1)MUT.DF4, F2, F0MUT.DF10, F8, F0MUT.DF16, F14, F0MUT.DF22, F20, F0L.DF6, 0(R2)L.DF12, 8(R2)L.DF18, 16(R2)L.DF24, 24(R2) ADD.DF6, F4, F6ADD.DF12, F10, F12ADD.DF18, F16, F18ADD.DF24, F22, F24S.DF6, 0R2 S.DF12, 8R2S.DF18, 16R2S.DF24, 24R2DADD

27、IUR1, R1, #32DADDIUR2, R2, #32DSUBIUR3, R1, #DONE BNEZR3, FOO共用了24 個時鐘周期,則計算一個Y 值平均需要 24/4 = 6 個時鐘周期,加速比:14/6 = 2.33(4)指令指令執(zhí)行時鐘流出執(zhí)行寫結(jié)果確認L.DF2, 0(R1)1234MUL.DF4, F2, F02456L.DF6, 0(R2)3467ADD.DF6, F4, F648910S.D F6, 0(R2)5111213DADDIU R1, R1, #8678DADDIU R2, R2, #8789DSUBIU R3,R1,#DONE8910BNEZ R3, FO

28、O910L.DF2, 0(R1)10111314MUL.DF4, F2, F011131415L.DF6, 0(R2)12131516ADD.DF6, F4, F613171819S.D F6, 0(R2)14202122DADDIU R1, R1, #8151617DADDIU R2, R2, #8161718DSUBIU R3,R1,#DONE171819BNEZ R3, FOO18名稱保留站BusyOpVjVkQjQkDestAAdd1yesADD.DRegsF4RegsF6 Add2noAdd3noMult1yesMult2no項號ROBBusy指令狀態(tài)目的Value1yesADD.D

29、F6, F4, F6執(zhí)行F6RegsF4RegsF62yesS.DF6, 0(R2)流出Mem0+RegsR2#2字段浮點寄存器狀態(tài)F0F2F4F6F8F10F30ROB項編號1Busyyes(5)整數(shù)指令浮點指令時鐘周期數(shù)L.DF2, 0(R1)1L.DF8, 8(R1)2L.DF14, 16(R1)MUT.DF4, F2, F03L.DF20, 24(R1)MUT.DF10, F8, F04L.DF6, 0(R2)MUT.DF16, F14, F05L.DF12, 8(R2)MUT.DF22, F20, F06L.DF18, 16(R2)ADD.DF6, F4, F67L.DF24, 24

30、(R2)ADD.DF12, F10, F128DADDIU R1, R1, #32ADD.DF18, F16, F189S.DF6, 0(R2)ADD.DF24, F22, F2410S.DF12, 8(R2)11S.DF18,16(R2)12S.DF24, 24(R2)13DADDIU R2, R2, #3214DSUBIU R3, R1, #DONE15BNEZR3, FOO16計算一個Y值需要 16/4 = 4 個時鐘周期,加速比 = 14/4 = 3.5(6)訪存1訪存2浮點指令1浮點指令2整數(shù)指令時鐘周期L.DF2, 0(R1)L.DF8, 8(R1)1L.DF14, 16(R1)L

31、.DF20, 24(R1)L.DF6, 0(R2)L.DF12, 8(R2)MUT.DF4, F2, F0MUT.DF10, F8, F03L.DF18, 16(R2)L.DF24, 24(R2)MUT.DF16, F14, F0MUT.DF22, F20, F04ADD.DF6, F4, F6ADD.DF12, F10, F125ADD.DF18, F16, F18ADD.DF24, F22, F24DADDIU R1, R1, #326DADDIU R2, R2, #327DSUBIUR3, R1, #DONE8BNEZR3, FOO9S.DF6, -32(R2)S.DF12, -24(R

32、2)10S.DF18,-16(R2)S.DF24, -8(R2)11計算一個Y值需要 11/4 個時鐘周期,加速比 = 14/(11/4) = 56/114.8 對于例4.5,在相同的條件下,如果展開7遍循環(huán),求:(1) 每遍循環(huán)的平均時鐘周期;(2) 每個時鐘周期流出指令數(shù);(3) 操作槽(功能部件)的使用效率;(4) 如果展開10遍,會出現(xiàn)哪些問題?解:展開7遍循環(huán)訪存指令1訪存指令2浮點指令1浮點指令2整數(shù)/轉(zhuǎn)移指令L.DF0,0(R1)L.DF6,-8(R1)L.DF10,-16(R1)L.DF14,-24(R1)L.DF18,-32(R1)L.DF22,-40(R1)ADD.DF4,

33、F0,F2ADD.DF8,F6,F2L.DF26,-48(R1)ADD.DF12,F10,F2ADD.DF16,F14,F2ADD.DF20,F18,F2ADD.DF24,F22,F2S.DF4,0(R1)S.DF8,-8(R1)ADD.DF28,F26,F2S.DF12,-16(R1)S.DF16,24(R1)S.DF20,-32(R1)S.DF24,40(R1)DADDIUR1,R1,# -56S.DF28,8(R1)BNER1,Loop這段程序的運行時間為9個時鐘周期,每遍循環(huán)平均約1.28個時鐘周期。9個時鐘周期內(nèi)流出了23條指令,每個時鐘周期2.55條。9個時鐘周期共有操作槽95=4

34、5個,有效槽的比例為51.1%。第5章 存儲層次5.9 寫出三級Cache的平均訪問時間的公式。解:平均訪存時間 命中時間失效率失效開銷只有第I層失效時才會訪問第I1。設(shè)三級Cache的命中率分別為HL1、 Hl2、 HL3,失效率分別為Ml1、Ml2、ML3,第三級Cache的失效開銷為PL3。 平均訪問時間TA HL1Ml1Hl2Ml2(HL3ML3PL3)5.10 假設(shè)對指令Cache的訪問占全部訪問的75%;而對數(shù)據(jù)Cache的訪問占全部訪問的25%。Cache的命中時間為1個時鐘周期,失效開銷為50 個時鐘周期,在混合Cache中一次load或store操作訪問Cache的命中時間都

35、要增加一個時鐘周期,32KB的指令Cache的失效率為0.39%,32KB的數(shù)據(jù)Cache的失效率為4.82%,64KB的混合Cache的失效率為1.35%。又假設(shè)采用寫直達策略,且有一個寫緩沖器,并且忽略寫緩沖器引起的等待。試問指令Cache和數(shù)據(jù)Cache容量均為32KB的分離Cache和容量為64KB的混合Cache相比,哪種Cache的失效率更低?兩種情況下平均訪存時間各是多少?解:(1)根據(jù)題意,約75%的訪存為取指令。因此,分離Cache的總體失效率為:(75%0.15%)(25%3.77%)1.055%; 容量為128KB的混合Cache的失效率略低一些,只有0.95%。 (2)

36、平均訪存時間公式可以分為指令訪問和數(shù)據(jù)訪問兩部分: 平均訪存時間指令所占的百分比(讀命中時間讀失效率失效開銷) 數(shù)據(jù)所占的百分比(數(shù)據(jù)命中時間數(shù)據(jù)失效率失效開銷) 所以,兩種結(jié)構(gòu)的平均訪存時間分別為: 分離Cache的平均訪存時間75%(10.15%50)25%(13.77%50)(75%1.075)(25%2.885)1.5275 混合Cache的平均訪存時間75%(10.95%50)25%(110.95%50)(75%1.475)(25%2.475)1.725因此,盡管分離Cache的實際失效率比混合Cache的高,但其平均訪存時間反而較低。分離Cache提供了兩個端口,消除了結(jié)構(gòu)相關(guān)。5

37、.11 給定以下的假設(shè),試計算直接映象Cache和兩路組相聯(lián)Cache的平均訪問時間以及CPU的性能。由計算結(jié)果能得出什么結(jié)論?(1) 理想Cache情況下的CPI為2.0,時鐘周期為2ns,平均每條指令訪存1.2次;(2) 兩者Cache容量均為64KB,塊大小都是32字節(jié);(3) 組相聯(lián)Cache中的多路選擇器使CPU的時鐘周期增加了10;(4) 這兩種Cache的失效開銷都是80ns;(5) 命中時間為1個時鐘周期;(6) 64KB直接映象Cache的失效率為1.4,64KB兩路組相聯(lián)Cache的失效率為1.0。解: 平均訪問時間命中時間失效率失效開銷平均訪問時間1-路=2.0+1.4%

38、 *80=3.12ns平均訪問時間2-路=2.0*(1+10%)+1.0% *80=3.0ns兩路組相聯(lián)的平均訪問時間比較低CPUtime=(CPU執(zhí)行+存儲等待周期)*時鐘周期CPU time=IC(CPI執(zhí)行+總失效次數(shù)/指令總數(shù)*失效開銷) *時鐘周期=IC(CPI執(zhí)行*時鐘周期)+(每條指令的訪存次數(shù)*失效率*失效開銷*時鐘周期)CPU time 1-way=IC(2.0*2+1.2*0.014*80)5.344ICCPU time 2-way=IC(2.2*2+1.2*0.01*80)5.36IC相對性能比:5.36/5.344=1.003直接映象cache的訪問速度比兩路組相聯(lián)ca

39、che要快1.04倍,而兩路組相聯(lián)Cache的平均性能比直接映象cache要高1.003倍。因此這里選擇兩路組相聯(lián)。5.12 假設(shè)一臺計算機具有以下特性:(1) 95的訪存在Cache中命中;(2) 塊大小為兩個字,且失效時整個塊被調(diào)入;(3) CPU發(fā)出訪存請求的速率為109字/s;(4) 25的訪存為寫訪問;(5) 存儲器的最大流量為109字/s(包括讀和寫);(6) 主存每次只能讀或?qū)懸粋€字;(7) 在任何時候,Cache中有30的塊被修改過;(8) 寫失效時,Cache采用按寫分配法?,F(xiàn)欲給該計算機增添一臺外設(shè),為此首先想知道主存的頻帶已用了多少。試對于以下兩種情況計算主存頻帶的平均使

40、用比例。(1) 寫直達Cache;(2) 寫回法Cache。解:采用按寫分配(1)寫直達cache訪問命中,有兩種情況:讀命中,不訪問主存;寫命中,更新cache和主存,訪問主存一次。訪問失效,有兩種情況:讀失效,將主存中的塊調(diào)入cache中,訪問主存兩次;寫失效,將要寫的塊調(diào)入cache,訪問主存兩次,再將修改的數(shù)據(jù)寫入cache和主存,訪問主存一次,共三次。上述分析如下表所示。訪問命中訪問類型頻率訪存次數(shù)Y讀95%*75%=71.3%0Y寫95%*25%=23.8%1N讀5%*75%=3.8%2N寫5%*25%=1.3%3一次訪存請求最后真正的平均訪存次數(shù)=(71.3%*0)+(23.8%

41、*1)+(3.8%*2)+(1.3%*3)0.35已用帶寬=0.35109/10 9 =35.0%(2)寫回法cache訪問命中,有兩種情況:讀命中,不訪問主存;寫命中,不訪問主存。采用寫回法,只有當修改的cache塊被換出時,才寫入主存;訪問失效,有一個塊將被換出,這也有兩種情況:如果被替換的塊沒有修改過,將主存中的塊調(diào)入cache塊中,訪問主存兩次;如果被替換的塊修改過,則首先將修改的塊寫入主存,需要訪問主存兩次;然后將主存中的塊調(diào)入cache塊中,需要訪問主存兩次,共四次訪問主存。訪問命中塊為臟頻率訪存次數(shù)YN95%*70%=66.5%0YY95%*30%=28.5%0NN5%*70%=

42、3.5%2NY5%*30%=1.5%4所以:一次訪存請求最后真正的平均訪存次數(shù)=66.5*028.5%*0+3.5%*2+1.5%*4=0.13已用帶寬0.1310 9/10 913%5.12(1)寫直達法:有5%的訪存操作直接訪問主存,其中75%為讀主存,寫直達法無需替換,所以讀操作引起的存儲器流量為:5%75%21090.075109(字/s)有5%的訪存操作直接訪問主存,其中25%為寫主存,寫直達法無需替換,所以寫操作引起的存儲器流量為:5%25%21090.025109(字/s)95%的訪存操作直接訪問cache,讀命中無需訪問主存,其中25%寫操作直接對應(yīng)主存。所以寫操作引起的存儲器

43、流量為:95%25%1090.2375109 (字/s)主存頻帶的利用率為(0.0750.0250.2375)=0.3375(2)寫回法:有5%的訪存操作直接訪問主存,其中75%為讀主存,寫回法30%需替換,所以讀操作引起的存儲器流量為:5%75%(130%)21090.0975109(字/s)有5%的訪存操作直接訪問主存,其中25%為寫主存,寫回法30%需替換,所以寫操作引起的存儲器流量為:5%25%(130%)21090.0325109(字/s)95%的訪存操作直接訪問cache,讀命中和寫命中均無需訪問主存。主存頻帶的利用率為(0.09750.0325)=0.135.13 在偽相聯(lián)中,假

44、設(shè)在直接映象位置沒有發(fā)現(xiàn)匹配,而在另一個位置才找到數(shù)據(jù)(偽命中)時,不對這兩個位置的數(shù)據(jù)進行交換。這時只需要1個額外的周期。假設(shè)失效開銷為50個時鐘周期,2KB直接映象Cache的失效率為9.8%,2路組相聯(lián)的失效率為7.6%;128KB直接映象Cache的失效率為1.0%,2路組相聯(lián)的失效率為0.7%。(1) 推導出平均訪存時間的公式。(2) 利用(1)中得到的公式,對于2KBCache和128KBCache,計算偽相聯(lián)的平均訪存時間。解:不管作了何種改進,失效開銷相同。不管是否交換內(nèi)容,在同一“偽相聯(lián)”組中的兩塊都是用同一個索引得到的,因此失效率相同,即:失效率偽相聯(lián)失效率2路。偽相聯(lián)ca

45、che的命中時間等于直接映象cache的命中時間加上偽相聯(lián)查找過程中的命中時間*該命中所需的額外開銷。命中時間偽相聯(lián)命中時間1路偽命中率偽相聯(lián)1交換或不交換內(nèi)容,偽相聯(lián)的命中率都是由于在第一次失效時,將地址取反,再在第二次查找?guī)淼?。因?偽命中率偽相聯(lián)命中率2路命中率1路(1失效率2路)(1失效率1路)失效率1路失效率2路。交換內(nèi)容需要增加偽相聯(lián)的額外開銷。平均訪存時間偽相聯(lián)命中時間1路(失效率1路失效率2路)1失效率2路失效開銷1路將題設(shè)中的數(shù)據(jù)帶入計算,得到:平均訪存時間2Kb=1+(0.098-0.076)*1+(0.076 *50 ) =4.822平均訪存時間128Kb=1+(0.0

46、10-0.007)*1+(0.007 *50 ) =1.353顯然是128KB的偽相聯(lián)Cache要快一些。5.14 假設(shè)采用理想存儲器系統(tǒng)時的基本CPI是1.5,主存延遲是40個時鐘周期;傳輸速率為4字節(jié)/時鐘周期,且Cache中50%的塊是修改過的。每個塊中有32字節(jié),20%的指令是數(shù)據(jù)傳送指令。并假設(shè)沒有寫緩存,在TLB失效的情況下需要20時鐘周期,TLB不會降低Cache命中率。CPU產(chǎn)生指令地址或Cache失效時產(chǎn)生的地址有0.2%沒有在TLB中找到。(1) 在理想TLB情況下,計算均采用寫回法16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cac

47、he機器的實際CPI;(2) 在實際TLB情況下,用(1)的結(jié)果,計算均采用寫回法16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache機器的實際CPI;其中假設(shè)16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache的失效率分別為2.9%、2.2%和2.0%;25%的訪存為寫訪問。解: CPI=CPI 執(zhí)行+存儲停頓周期數(shù)/指令數(shù)存儲停頓由下列原因引起:l 從主存中取指令l load和store指令訪問數(shù)據(jù)l 由TLB引起(1)對于理想TLB,TLB失效開銷為0。而對于統(tǒng)一Cache,R指令=R數(shù)據(jù)P指令=主存

48、延遲傳輸一個塊需要使用的時間4032/448(拍)若為讀失效,P數(shù)據(jù)主存延遲傳輸一個塊需要使用的時間4032/448(拍)若為寫失效,且塊是干凈的,P數(shù)據(jù)主存延遲傳輸一個塊需要使用的時間4032/448(拍)若為寫失效,且塊是臟的,P數(shù)據(jù)主存延遲傳輸兩個塊需要使用的時間4064/456(拍)CPI=1.5+RP+(RP*20%)+0 指令訪存全是讀,而數(shù)據(jù)傳輸指令Load或Store指令,f數(shù)據(jù)*P數(shù)據(jù)讀百分比*(f數(shù)據(jù)*P數(shù)據(jù))寫百分比*(f數(shù)據(jù)*P干凈數(shù)據(jù)*其對應(yīng)的百分比f數(shù)據(jù)*P臟數(shù)據(jù)*其對應(yīng)的百分比)20%*(754825*(50*48+50*(4816)=50(拍)代入上述公式計算出結(jié)果為:配置失效率CPI16KB 直接統(tǒng)一映象0.0294.416KB兩路統(tǒng)一映象0.0223.432KB直接統(tǒng)一映象0.0203.2(2) 將f數(shù)據(jù)(數(shù)據(jù)訪問指令頻率),Rt和Pt(分別是TLB的失效率和失效開銷),Rc和Pw(分別是Cache的失效率和寫回的頻率)代入公式得:TLB停頓/指令數(shù)=1+f數(shù)據(jù)*Rc(1+Rw)RtPt其中,1+f數(shù)據(jù):每條指令的訪問內(nèi)存次數(shù);Rc(1+Rw):每次內(nèi)存訪問需要的TLB訪問次數(shù)。由條件得:TLB停頓/指令數(shù)=1+20%*Rc(1+25%)0.2%20配置失效率理想TLB的CPI16KB 直接統(tǒng)一映象0.0294.016KB兩路統(tǒng)一映象0.0

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論