使用Cache的必要性
所謂Cache即高速緩沖存儲(chǔ)器,它位于CPU與主存即DRAM之間,是通常由SRAM構(gòu)成的規(guī)模較小但存取速度很快的存儲(chǔ)器。
目前計(jì)算機(jī)主要使用的內(nèi)存為DRAM,它具有價(jià)格低、容量大等特點(diǎn),但由于使用電容存儲(chǔ)信息,存取速度難以提高,而CPU每執(zhí)行一條指令都要訪問(wèn)一次或多次主存,DRAM的讀寫速度遠(yuǎn)低于CPU速度,因此為了實(shí)現(xiàn)速度上的匹配,只能在CPU指令周期中插入wait狀態(tài),高速CPU處于等待狀態(tài)將大大降低系統(tǒng)的執(zhí)行效率。
由于SRAM采用了與CPU相同的制作工藝,因此與DRAM相比,它的存取速度快,但體積大、功耗大、價(jià)格高,不可能也不必要將所有的內(nèi)存都采用SRAM。
因此為了解決速度與成本的矛盾就產(chǎn)生了一種分級(jí)處理的方法,即在主存和CPU之間加裝一個(gè)容量相對(duì)較小的SRAM作為高速緩沖存儲(chǔ)器。
當(dāng)采用Cache后,在Cache中保存著主存中部分內(nèi)容的副本(稱為存儲(chǔ)器映像),CPU在讀寫數(shù)據(jù)時(shí),首先訪問(wèn)Cache(由于Cache的速度與CPU相當(dāng),所以CPU可以在零等待狀態(tài)下完成指令的執(zhí)行),只有當(dāng)Cache中無(wú)CPU所需的數(shù)據(jù)時(shí)(這稱之“未命中”,否則稱為“命中”),CPU才去訪問(wèn)主存。
而目前大容量Cache能使CPU訪問(wèn)Cache命中率高達(dá)90%~98%,從而大大提高了CPU訪問(wèn)數(shù)據(jù)的速度,提高了系統(tǒng)的性能。
使用Cache的可行性
對(duì)大量的典型程序的運(yùn)行情況分析結(jié)果表明,在一個(gè)較短的時(shí)間內(nèi),由程序產(chǎn)生的地址往往集中在存儲(chǔ)器邏輯地址空間的很小范圍內(nèi)。
在多數(shù)情況下,指令是順序執(zhí)行的,因此指令地址的分布就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次,因此對(duì)這些地址的訪問(wèn)就自然具有時(shí)間上集中分布的趨向。
數(shù)據(jù)的這種集中傾向不如指令明顯,但對(duì)數(shù)組的訪問(wèn)以及工作單元的選擇都可以使存儲(chǔ)器地址相對(duì)集中。這種對(duì)局部范圍的存儲(chǔ)器地址的頻繁訪問(wèn),而對(duì)此范圍以外的地址則訪問(wèn)甚少的現(xiàn)象稱為程序訪問(wèn)的局部性。
根據(jù)程序的局部性原理,在主存和CPU之間設(shè)置Cache,把正在執(zhí)行的指令地址附近的一部分指令或數(shù)據(jù)從主存裝入Cache中,供CPU在一段時(shí)間內(nèi)使用,是完全可行的。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7484瀏覽量
163762 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7002瀏覽量
88941 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3019瀏覽量
74003 -
Cache
+關(guān)注
關(guān)注
0文章
129瀏覽量
28330
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論