資料介紹
15.3 高速緩沖存儲(chǔ)器Cache
當(dāng)?shù)谝淮?a target='_blank' class='arckwlink_none'>RISC微處理器剛出現(xiàn)時(shí),標(biāo)準(zhǔn)存儲(chǔ)器元件的速度比當(dāng)時(shí)微處理器的速度快。很快,半導(dǎo)體工藝技術(shù)的進(jìn)展被用來提高微處理器的速度。標(biāo)準(zhǔn)DRAM部件雖然也快了一些,但其發(fā)展的主要精力則放在提高存儲(chǔ)容量上。
1980年,典型DRAM部件的容量為4KB。1981年和1982年開發(fā)出了16KB芯片。這些部件的隨機(jī)訪問速率為3MHz或4MHz,局部訪問(頁(yè)模式)時(shí)速率大約快1倍。當(dāng)時(shí)的微處理器每秒需要訪問存儲(chǔ)器2M次。
到2000年,DRAM部件每片的容量到達(dá)256Mbit,隨機(jī)訪問速率在30MHz左右。微處理器每秒需要訪問存儲(chǔ)器幾百兆次。如果處理器速率遠(yuǎn)高于存儲(chǔ)器,那么只能借助Cache才能滿足其全部性能。
Cache存儲(chǔ)器是一個(gè)容量小但存取速度非??斓拇鎯?chǔ)器,它保存最近用到的存儲(chǔ)器數(shù)據(jù)拷貝。對(duì)于程序員來說,Cache是透明的。它自動(dòng)決定保存哪些數(shù)據(jù)、覆蓋哪些數(shù)據(jù)?,F(xiàn)在Cache通常與處理器在同一芯片上實(shí)現(xiàn)。Cache能夠發(fā)揮作用是因?yàn)槌绦蚓哂芯植啃蕴匦?。所謂局部性就是指,在任何特定的時(shí)間,微處理器趨于對(duì)相同區(qū)域的數(shù)據(jù)(如堆棧)多次執(zhí)行相同的指令(如循環(huán))。
Cache經(jīng)常與寫緩存器(write buffer)一起使用。寫緩存器是一個(gè)非常小的先進(jìn)先出(FIFO)存儲(chǔ)器,位于處理器核與主存之間。使用寫緩存的目的是,將處理器核和Cache從較慢的主存寫操作中解脫出來。當(dāng)CPU向主存儲(chǔ)器做寫入操作時(shí),它先將數(shù)據(jù)寫入到寫緩存區(qū)中,由于寫緩存器的速度很高,這種寫入操作的速度也將很高。寫緩存區(qū)在CPU空閑時(shí),以較低的速度將數(shù)據(jù)寫入到主存儲(chǔ)器中相應(yīng)的位置。
通過引入Cache和寫緩存區(qū),存儲(chǔ)系統(tǒng)的性能得到了很大的提高,但同時(shí)也帶來了一些問題。比如,由于數(shù)據(jù)將存在于系統(tǒng)中的不同的物理位置,可能造成數(shù)據(jù)的不一致性;由于寫緩存區(qū)的優(yōu)化作用,可能有些寫操作的執(zhí)行順序不是用戶期望的順序,從而造成操作錯(cuò)誤。
15.3.1 Cache的分類
Cache有多種構(gòu)造方法。在最高層次,微處理器可以采用下面兩種組織中的一組。
?。?)統(tǒng)一Cache。指令和數(shù)據(jù)用同一個(gè)Cache。結(jié)構(gòu)如圖15.8所示。
圖15.8 統(tǒng)一的指令Cache和數(shù)據(jù)Cache
?。?)指令和數(shù)據(jù)分開的Cache。有時(shí)這種組織方式也被稱為改進(jìn)的哈佛結(jié)構(gòu)。
圖15.9顯示了這種組織方式。
這兩種組織方式各有優(yōu)缺點(diǎn)。統(tǒng)一Cache能夠根據(jù)當(dāng)前程序的需要自動(dòng)調(diào)整指令在Cache存儲(chǔ)器的比例,比固定劃分的有更好的性能。另一方面,分開的Cache使Load/Store指令能夠單周期執(zhí)行。
15.3.2 Cache性能的衡量
只有當(dāng)所需要的Cache存儲(chǔ)器內(nèi)容已經(jīng)在Cache時(shí),微處理器才能以高時(shí)鐘速率工作。因此,系統(tǒng)的總體性能就可以用存儲(chǔ)器訪問中命中Cache的比例來衡量。當(dāng)要訪問的內(nèi)容在Cache時(shí)稱為命中(hit),而要訪問的內(nèi)容不在Cache時(shí)稱為未命中(miss)。在給定時(shí)間間隔內(nèi),Cache命中的次數(shù)與總的存儲(chǔ)器請(qǐng)求次數(shù)的比值被稱為命中率。
圖15.9 指令Cache和數(shù)據(jù)分開的Cache
命中率用下面的公式進(jìn)行計(jì)算:
命中率=(Cache命中次數(shù)÷存儲(chǔ)器請(qǐng)求次數(shù))×100%
未命中率與命中率形式相似,即在給定時(shí)間間隔內(nèi),Cache未命中的總次數(shù)除以總的存儲(chǔ)器請(qǐng)求次數(shù)所得的百分比。未命中率與命中率之和等于100。
目前設(shè)計(jì)良好的處理器,Cache的未命中率只有百分之幾。未命中率依賴多個(gè)Cache參數(shù),包括Cache大小和組織。
15.3.3 Cache工作原理
Cache的基本存儲(chǔ)單元為Cache行(Cache line)。存儲(chǔ)系統(tǒng)把Cache和主存儲(chǔ)器都劃分為相同大小的行。Cache與主存儲(chǔ)器交換數(shù)據(jù)是以行為基本單位進(jìn)行的。每一個(gè)Cache行都對(duì)應(yīng)于主存中的一個(gè)存儲(chǔ)塊(memory block)。
Cache行的大小通常是2L字節(jié)。通常情況下是16字節(jié)(4個(gè)字)和32字節(jié)(8個(gè)字)。如果Cache行的大小為2L字節(jié),那么對(duì)主存的訪問通常是2L字節(jié)對(duì)齊的。所以對(duì)于一個(gè)虛擬地址來說,它的bit[31∶L]位,是Cache行的一個(gè)標(biāo)識(shí)。當(dāng)CPU發(fā)出的虛擬地址的bit[31∶L]和Cache中的某行bit[31∶L]相同,那么Cache中包含CPU要訪問的數(shù)據(jù),即成為一次Cache命中。
為了加快Cache訪問的速度,又將多個(gè)Cache行劃分成一個(gè)Cache組(Cache Set)。Cache組中包含的Cache行的個(gè)數(shù)通常也為2的N次方的倍數(shù)。為了方便起見,取N=S。這樣,一個(gè)Cache組中就包含2S個(gè)Cache行。這時(shí),虛擬地址中的bit[L+S-1∶L]為Cache組的標(biāo)識(shí)。虛擬地址中余下的位bit[31∶L+S]成為一個(gè)Cache標(biāo)(Cache-tag)。它標(biāo)識(shí)了Cache行中的內(nèi)容和主存間的對(duì)應(yīng)關(guān)系。
當(dāng)?shù)谝淮?a target='_blank' class='arckwlink_none'>RISC微處理器剛出現(xiàn)時(shí),標(biāo)準(zhǔn)存儲(chǔ)器元件的速度比當(dāng)時(shí)微處理器的速度快。很快,半導(dǎo)體工藝技術(shù)的進(jìn)展被用來提高微處理器的速度。標(biāo)準(zhǔn)DRAM部件雖然也快了一些,但其發(fā)展的主要精力則放在提高存儲(chǔ)容量上。
1980年,典型DRAM部件的容量為4KB。1981年和1982年開發(fā)出了16KB芯片。這些部件的隨機(jī)訪問速率為3MHz或4MHz,局部訪問(頁(yè)模式)時(shí)速率大約快1倍。當(dāng)時(shí)的微處理器每秒需要訪問存儲(chǔ)器2M次。
到2000年,DRAM部件每片的容量到達(dá)256Mbit,隨機(jī)訪問速率在30MHz左右。微處理器每秒需要訪問存儲(chǔ)器幾百兆次。如果處理器速率遠(yuǎn)高于存儲(chǔ)器,那么只能借助Cache才能滿足其全部性能。
Cache存儲(chǔ)器是一個(gè)容量小但存取速度非??斓拇鎯?chǔ)器,它保存最近用到的存儲(chǔ)器數(shù)據(jù)拷貝。對(duì)于程序員來說,Cache是透明的。它自動(dòng)決定保存哪些數(shù)據(jù)、覆蓋哪些數(shù)據(jù)?,F(xiàn)在Cache通常與處理器在同一芯片上實(shí)現(xiàn)。Cache能夠發(fā)揮作用是因?yàn)槌绦蚓哂芯植啃蕴匦?。所謂局部性就是指,在任何特定的時(shí)間,微處理器趨于對(duì)相同區(qū)域的數(shù)據(jù)(如堆棧)多次執(zhí)行相同的指令(如循環(huán))。
Cache經(jīng)常與寫緩存器(write buffer)一起使用。寫緩存器是一個(gè)非常小的先進(jìn)先出(FIFO)存儲(chǔ)器,位于處理器核與主存之間。使用寫緩存的目的是,將處理器核和Cache從較慢的主存寫操作中解脫出來。當(dāng)CPU向主存儲(chǔ)器做寫入操作時(shí),它先將數(shù)據(jù)寫入到寫緩存區(qū)中,由于寫緩存器的速度很高,這種寫入操作的速度也將很高。寫緩存區(qū)在CPU空閑時(shí),以較低的速度將數(shù)據(jù)寫入到主存儲(chǔ)器中相應(yīng)的位置。
通過引入Cache和寫緩存區(qū),存儲(chǔ)系統(tǒng)的性能得到了很大的提高,但同時(shí)也帶來了一些問題。比如,由于數(shù)據(jù)將存在于系統(tǒng)中的不同的物理位置,可能造成數(shù)據(jù)的不一致性;由于寫緩存區(qū)的優(yōu)化作用,可能有些寫操作的執(zhí)行順序不是用戶期望的順序,從而造成操作錯(cuò)誤。
15.3.1 Cache的分類
Cache有多種構(gòu)造方法。在最高層次,微處理器可以采用下面兩種組織中的一組。
?。?)統(tǒng)一Cache。指令和數(shù)據(jù)用同一個(gè)Cache。結(jié)構(gòu)如圖15.8所示。
圖15.8 統(tǒng)一的指令Cache和數(shù)據(jù)Cache
?。?)指令和數(shù)據(jù)分開的Cache。有時(shí)這種組織方式也被稱為改進(jìn)的哈佛結(jié)構(gòu)。
圖15.9顯示了這種組織方式。
這兩種組織方式各有優(yōu)缺點(diǎn)。統(tǒng)一Cache能夠根據(jù)當(dāng)前程序的需要自動(dòng)調(diào)整指令在Cache存儲(chǔ)器的比例,比固定劃分的有更好的性能。另一方面,分開的Cache使Load/Store指令能夠單周期執(zhí)行。
15.3.2 Cache性能的衡量
只有當(dāng)所需要的Cache存儲(chǔ)器內(nèi)容已經(jīng)在Cache時(shí),微處理器才能以高時(shí)鐘速率工作。因此,系統(tǒng)的總體性能就可以用存儲(chǔ)器訪問中命中Cache的比例來衡量。當(dāng)要訪問的內(nèi)容在Cache時(shí)稱為命中(hit),而要訪問的內(nèi)容不在Cache時(shí)稱為未命中(miss)。在給定時(shí)間間隔內(nèi),Cache命中的次數(shù)與總的存儲(chǔ)器請(qǐng)求次數(shù)的比值被稱為命中率。
圖15.9 指令Cache和數(shù)據(jù)分開的Cache
命中率用下面的公式進(jìn)行計(jì)算:
命中率=(Cache命中次數(shù)÷存儲(chǔ)器請(qǐng)求次數(shù))×100%
未命中率與命中率形式相似,即在給定時(shí)間間隔內(nèi),Cache未命中的總次數(shù)除以總的存儲(chǔ)器請(qǐng)求次數(shù)所得的百分比。未命中率與命中率之和等于100。
目前設(shè)計(jì)良好的處理器,Cache的未命中率只有百分之幾。未命中率依賴多個(gè)Cache參數(shù),包括Cache大小和組織。
15.3.3 Cache工作原理
Cache的基本存儲(chǔ)單元為Cache行(Cache line)。存儲(chǔ)系統(tǒng)把Cache和主存儲(chǔ)器都劃分為相同大小的行。Cache與主存儲(chǔ)器交換數(shù)據(jù)是以行為基本單位進(jìn)行的。每一個(gè)Cache行都對(duì)應(yīng)于主存中的一個(gè)存儲(chǔ)塊(memory block)。
Cache行的大小通常是2L字節(jié)。通常情況下是16字節(jié)(4個(gè)字)和32字節(jié)(8個(gè)字)。如果Cache行的大小為2L字節(jié),那么對(duì)主存的訪問通常是2L字節(jié)對(duì)齊的。所以對(duì)于一個(gè)虛擬地址來說,它的bit[31∶L]位,是Cache行的一個(gè)標(biāo)識(shí)。當(dāng)CPU發(fā)出的虛擬地址的bit[31∶L]和Cache中的某行bit[31∶L]相同,那么Cache中包含CPU要訪問的數(shù)據(jù),即成為一次Cache命中。
為了加快Cache訪問的速度,又將多個(gè)Cache行劃分成一個(gè)Cache組(Cache Set)。Cache組中包含的Cache行的個(gè)數(shù)通常也為2的N次方的倍數(shù)。為了方便起見,取N=S。這樣,一個(gè)Cache組中就包含2S個(gè)Cache行。這時(shí),虛擬地址中的bit[L+S-1∶L]為Cache組的標(biāo)識(shí)。虛擬地址中余下的位bit[31∶L+S]成為一個(gè)Cache標(biāo)(Cache-tag)。它標(biāo)識(shí)了Cache行中的內(nèi)容和主存間的對(duì)應(yīng)關(guān)系。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- CPU、MCU和SOC的區(qū)別以及外設(shè)的概念理解
- 基于FPGA塊存儲(chǔ)器的多位反轉(zhuǎn)容錯(cuò) 19次下載
- EE-271: 高速緩沖存儲(chǔ)器在Blackfin?處理器中的應(yīng)用
- PLC系統(tǒng)的存儲(chǔ)器分類詳細(xì)資料介紹 4次下載
- 如何使用eMMC陣列進(jìn)行高速固態(tài)存儲(chǔ)器的研究與設(shè)計(jì) 31次下載
- 單片機(jī)存儲(chǔ)器的工作原理和結(jié)構(gòu)與半導(dǎo)體存儲(chǔ)器的分類說明
- Trace32高速緩沖寄存器 18次下載
- 低功耗的高性能四路組相聯(lián)CMOS高速緩沖存儲(chǔ)器 12次下載
- 存儲(chǔ)器和高速緩存技術(shù)
- S698M SoC芯片中Cache控制器的設(shè)計(jì)與實(shí)現(xiàn)
- ML2308雙通道錄音/播放LSI,內(nèi)置緩沖存儲(chǔ)器
- 半導(dǎo)體存儲(chǔ)器電路及結(jié)構(gòu)
- 存儲(chǔ)器.ppt 0次下載
- 存儲(chǔ)器接口
- 存儲(chǔ)器的分類及原理
- 內(nèi)存儲(chǔ)器與外存儲(chǔ)器的主要區(qū)別 2566次閱讀
- 存儲(chǔ)器的定義和分類 862次閱讀
- 存儲(chǔ)器和寄存器的區(qū)別 1193次閱讀
- PLC系統(tǒng)的存儲(chǔ)器分類介紹 5847次閱讀
- 存儲(chǔ)器分類及各自優(yōu)劣勢(shì)介紹 5365次閱讀
- 計(jì)算機(jī)存儲(chǔ)器的作用和分類說明 9934次閱讀
- 半導(dǎo)體存儲(chǔ)器有哪些類型 1.5w次閱讀
- 只讀存儲(chǔ)器有哪些類型及相變存儲(chǔ)器的詳細(xì)介紹 7794次閱讀
- 內(nèi)存儲(chǔ)器和外存儲(chǔ)器的分類與區(qū)別 4w次閱讀
- 隨機(jī)存取存儲(chǔ)器為什么叫隨機(jī)存取存儲(chǔ)器(結(jié)構(gòu)、特點(diǎn)、分類、優(yōu)缺點(diǎn)) 2w次閱讀
- 計(jì)算機(jī)的存儲(chǔ)器主要作用_計(jì)算機(jī)的存儲(chǔ)器的分類介紹 1.1w次閱讀
- Cache是什么 CPU和GPU對(duì)于cache的應(yīng)用 8419次閱讀
- 高速緩沖存儲(chǔ)器基礎(chǔ)知識(shí)詳細(xì)介紹 1w次閱讀
- 高速緩沖存儲(chǔ)器的作用是什么_有什么特點(diǎn) 2w次閱讀
- 存儲(chǔ)器分類及各自特點(diǎn)有哪些 1.7w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論
查看更多