cache和程序訪問的局部性_第1頁
cache和程序訪問的局部性_第2頁
cache和程序訪問的局部性_第3頁
cache和程序訪問的局部性_第4頁
cache和程序訪問的局部性_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選文檔實驗項目六: cache 和程序訪問的局部性一、實驗目的:1.通過實際程序的執(zhí)行結(jié)果,了解程序訪問的局部性對帶有cache 的計算機系統(tǒng)性能的影響。二、實驗要求:1. 在以下程序中,修改或添加必要的語句(如添加計時函數(shù)等),以計算和打印主體程序段(即 for 循環(huán)段)的執(zhí)行時間。分別以 m=10 、 n=100000 ; m=1000 、 n=1000 ; m=100000 、n=10 ;執(zhí)行程序a和程序b,以比較兩種for循環(huán)段執(zhí)行 時間的長短。下列程序中給出的數(shù)組a 是局部臨時變量,分配在棧中,也可改用靜態(tài)全局變量,或在堆中動態(tài)申請空間。程序段 aassign-array-rows

2、()int i,j;short amn;for(i=0;im;i+)for(j=0;jn;j+)aij=0;程序段 bassign-array-cols()int i,j;short amn;for(j=0;in;j+)for(i=0;im;i+)aij=0;三、實驗報告:1. ( 1)給出源程序(文本文件)和執(zhí)行結(jié)果。#include#include#include#define m 1000#define n 1000void rows()int i,j;short amn;for(i=0;im;i+)for(j=0;jn;j+) aij=0;void cols()int i,j;shor

3、t amn;for(j=0;jm;j+)for(i=0;in;i+)aij=0;/*void main()time_t start_rows,stop_rows,start_cols,stop_cols;start_rows=time(null); /time() 會保存之前的時間, time(null) 清空之前 的時間,并保存當前時間rows();stop_rows=time(null);printf( 程序段 a 的使用時間: %ld,(stop_rows-start_rows);start_cols=time(null);cols();stop_cols=time(null);prin

4、tf( 程序段 b 的使用時間: %ld,(stop_cols-start_cols);精度不夠高,導致顯示結(jié)果均為 0*/ void main()large_integer t1,t2,tc,t3,t4,tc2;獲取計算機時鐘頻率queryperformancefrequency(&tc);/queryperformancecounter(&t1);/獲取運行程序前高精度計時器的值rows();queryperformancecounter(&t2);/獲取運行程序后高精度計時器的值printf( 程序段 a use time:%fn,(t2.quadpart -t1.quadpart)*1

5、.0/tc.quadpart);queryperformancefrequency(&tc2);queryperformancecounter(&t3);cols();queryperformancecounter(&t4);printf( 程序段 b use time:%fn,(t4.quadpart - t3.quadpart)*1.0/tc2.quadpart);可編輯m=10 , n=100000odai memoers rnam1st ”: dieba桿i. exc*|程序用r u射門怔二11五加3牛1 程序ere use tine = 0,012 783 pt*ess any ke

6、y to contrnuiem=1000 , n=1000m=10000 , n=10m=10000 , n=10000(2)對實驗結(jié)果進行分析,說明局部數(shù)據(jù)塊大小、數(shù)組訪問順序等和執(zhí)行時間之間的 關(guān)系。程序運行時間程序a(先行后列)程序b (先列后行)m=10 , n=100000.000618m=1000 , n=10000.0063440,012783m=10000 , n=100.0088130.007630局部數(shù)據(jù)塊 主存塊大可以充分利用程序訪問的空間局部性特點,使得一個比較大的局部空間被一起調(diào)到 cache中,因而可以增加命中機會。但主存塊不能太大,主 要原因有兩個:a.塊大使得缺失損失更大,因而需花費更多的時間從主存塊讀一個較大的塊; b. 塊大則 cache 行數(shù)變小,因而替換的可能性增加,導致命中的可能性變 小。數(shù)組訪問順序:因為數(shù)組在存儲器中是按行存儲,所以數(shù)組的訪問順序?qū)Τ绦驁?zhí)行效率有影響,且總體上先行后列能提高程序運行效率,因為由程序的局部性原理能提高 cache 命中率,減少訪存時間。( 3 )分析說明數(shù)組 a 分配在靜態(tài)存儲區(qū)、堆棧和棧區(qū),對 for 循環(huán)段的執(zhí)行效率有沒 有影響。有影響。由上述分析可知,在先行后列訪問情況下, m,n 三種取值中程序運行時間都是當

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論