以下是計(jì)算兩個(gè)向量點(diǎn)積的程序段:要求:
(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ì)算該程序數(shù)據(jù)訪問的命中率,要求說明每次訪問的cache命中情況。
(3)將上述(2)中的數(shù)據(jù)cache改用2-路組相聯(lián)映射方式,塊大小改為8字節(jié),其他條件不變,則該程序數(shù)據(jù)訪問的命中率是多少?
(4)在上述(2)中條件不變的情況下,如果將數(shù)組x定義為float[12],則數(shù)據(jù)訪問的命中率是多少?
分析比較以下三個(gè)函數(shù)的空間局部性,并指出哪個(gè)最好,哪個(gè)最差?