資料介紹
15.3 高速緩沖存儲器Cache
當第一代RISC微處理器剛出現時,標準存儲器元件的速度比當時微處理器的速度快。很快,半導體工藝技術的進展被用來提高微處理器的速度。標準DRAM部件雖然也快了一些,但其發展的主要精力則放在提高存儲容量上。
1980年,典型DRAM部件的容量為4KB。1981年和1982年開發出了16KB芯片。這些部件的隨機訪問速率為3MHz或4MHz,局部訪問(頁模式)時速率大約快1倍。當時的微處理器每秒需要訪問存儲器2M次。
到2000年,DRAM部件每片的容量到達256Mbit,隨機訪問速率在30MHz左右。微處理器每秒需要訪問存儲器幾百兆次。如果處理器速率遠高于存儲器,那么只能借助Cache才能滿足其全部性能。
Cache存儲器是一個容量小但存取速度非常快的存儲器,它保存最近用到的存儲器數據拷貝。對于程序員來說,Cache是透明的。它自動決定保存哪些數據、覆蓋哪些數據。現在Cache通常與處理器在同一芯片上實現。Cache能夠發揮作用是因為程序具有局部性特性。所謂局部性就是指,在任何特定的時間,微處理器趨于對相同區域的數據(如堆棧)多次執行相同的指令(如循環)。
Cache經常與寫緩存器(write buffer)一起使用。寫緩存器是一個非常小的先進先出(FIFO)存儲器,位于處理器核與主存之間。使用寫緩存的目的是,將處理器核和Cache從較慢的主存寫操作中解脫出來。當CPU向主存儲器做寫入操作時,它先將數據寫入到寫緩存區中,由于寫緩存器的速度很高,這種寫入操作的速度也將很高。寫緩存區在CPU空閑時,以較低的速度將數據寫入到主存儲器中相應的位置。
通過引入Cache和寫緩存區,存儲系統的性能得到了很大的提高,但同時也帶來了一些問題。比如,由于數據將存在于系統中的不同的物理位置,可能造成數據的不一致性;由于寫緩存區的優化作用,可能有些寫操作的執行順序不是用戶期望的順序,從而造成操作錯誤。
15.3.1 Cache的分類
Cache有多種構造方法。在最高層次,微處理器可以采用下面兩種組織中的一組。
(1)統一Cache。指令和數據用同一個Cache。結構如圖15.8所示。

圖15.8 統一的指令Cache和數據Cache
(2)指令和數據分開的Cache。有時這種組織方式也被稱為改進的哈佛結構。
圖15.9顯示了這種組織方式。
這兩種組織方式各有優缺點。統一Cache能夠根據當前程序的需要自動調整指令在Cache存儲器的比例,比固定劃分的有更好的性能。另一方面,分開的Cache使Load/Store指令能夠單周期執行。
15.3.2 Cache性能的衡量
只有當所需要的Cache存儲器內容已經在Cache時,微處理器才能以高時鐘速率工作。因此,系統的總體性能就可以用存儲器訪問中命中Cache的比例來衡量。當要訪問的內容在Cache時稱為命中(hit),而要訪問的內容不在Cache時稱為未命中(miss)。在給定時間間隔內,Cache命中的次數與總的存儲器請求次數的比值被稱為命中率。

圖15.9 指令Cache和數據分開的Cache
命中率用下面的公式進行計算:
命中率=(Cache命中次數÷存儲器請求次數)×100%
未命中率與命中率形式相似,即在給定時間間隔內,Cache未命中的總次數除以總的存儲器請求次數所得的百分比。未命中率與命中率之和等于100。
目前設計良好的處理器,Cache的未命中率只有百分之幾。未命中率依賴多個Cache參數,包括Cache大小和組織。
15.3.3 Cache工作原理
Cache的基本存儲單元為Cache行(Cache line)。存儲系統把Cache和主存儲器都劃分為相同大小的行。Cache與主存儲器交換數據是以行為基本單位進行的。每一個Cache行都對應于主存中的一個存儲塊(memory block)。
Cache行的大小通常是2L字節。通常情況下是16字節(4個字)和32字節(8個字)。如果Cache行的大小為2L字節,那么對主存的訪問通常是2L字節對齊的。所以對于一個虛擬地址來說,它的bit[31∶L]位,是Cache行的一個標識。當CPU發出的虛擬地址的bit[31∶L]和Cache中的某行bit[31∶L]相同,那么Cache中包含CPU要訪問的數據,即成為一次Cache命中。
為了加快Cache訪問的速度,又將多個Cache行劃分成一個Cache組(Cache Set)。Cache組中包含的Cache行的個數通常也為2的N次方的倍數。為了方便起見,取N=S。這樣,一個Cache組中就包含2S個Cache行。這時,虛擬地址中的bit[L+S-1∶L]為Cache組的標識。虛擬地址中余下的位bit[31∶L+S]成為一個Cache標(Cache-tag)。它標識了Cache行中的內容和主存間的對應關系。
當第一代RISC微處理器剛出現時,標準存儲器元件的速度比當時微處理器的速度快。很快,半導體工藝技術的進展被用來提高微處理器的速度。標準DRAM部件雖然也快了一些,但其發展的主要精力則放在提高存儲容量上。
1980年,典型DRAM部件的容量為4KB。1981年和1982年開發出了16KB芯片。這些部件的隨機訪問速率為3MHz或4MHz,局部訪問(頁模式)時速率大約快1倍。當時的微處理器每秒需要訪問存儲器2M次。
到2000年,DRAM部件每片的容量到達256Mbit,隨機訪問速率在30MHz左右。微處理器每秒需要訪問存儲器幾百兆次。如果處理器速率遠高于存儲器,那么只能借助Cache才能滿足其全部性能。
Cache存儲器是一個容量小但存取速度非常快的存儲器,它保存最近用到的存儲器數據拷貝。對于程序員來說,Cache是透明的。它自動決定保存哪些數據、覆蓋哪些數據。現在Cache通常與處理器在同一芯片上實現。Cache能夠發揮作用是因為程序具有局部性特性。所謂局部性就是指,在任何特定的時間,微處理器趨于對相同區域的數據(如堆棧)多次執行相同的指令(如循環)。
Cache經常與寫緩存器(write buffer)一起使用。寫緩存器是一個非常小的先進先出(FIFO)存儲器,位于處理器核與主存之間。使用寫緩存的目的是,將處理器核和Cache從較慢的主存寫操作中解脫出來。當CPU向主存儲器做寫入操作時,它先將數據寫入到寫緩存區中,由于寫緩存器的速度很高,這種寫入操作的速度也將很高。寫緩存區在CPU空閑時,以較低的速度將數據寫入到主存儲器中相應的位置。
通過引入Cache和寫緩存區,存儲系統的性能得到了很大的提高,但同時也帶來了一些問題。比如,由于數據將存在于系統中的不同的物理位置,可能造成數據的不一致性;由于寫緩存區的優化作用,可能有些寫操作的執行順序不是用戶期望的順序,從而造成操作錯誤。
15.3.1 Cache的分類
Cache有多種構造方法。在最高層次,微處理器可以采用下面兩種組織中的一組。
(1)統一Cache。指令和數據用同一個Cache。結構如圖15.8所示。

圖15.8 統一的指令Cache和數據Cache
(2)指令和數據分開的Cache。有時這種組織方式也被稱為改進的哈佛結構。
圖15.9顯示了這種組織方式。
這兩種組織方式各有優缺點。統一Cache能夠根據當前程序的需要自動調整指令在Cache存儲器的比例,比固定劃分的有更好的性能。另一方面,分開的Cache使Load/Store指令能夠單周期執行。
15.3.2 Cache性能的衡量
只有當所需要的Cache存儲器內容已經在Cache時,微處理器才能以高時鐘速率工作。因此,系統的總體性能就可以用存儲器訪問中命中Cache的比例來衡量。當要訪問的內容在Cache時稱為命中(hit),而要訪問的內容不在Cache時稱為未命中(miss)。在給定時間間隔內,Cache命中的次數與總的存儲器請求次數的比值被稱為命中率。

圖15.9 指令Cache和數據分開的Cache
命中率用下面的公式進行計算:
命中率=(Cache命中次數÷存儲器請求次數)×100%
未命中率與命中率形式相似,即在給定時間間隔內,Cache未命中的總次數除以總的存儲器請求次數所得的百分比。未命中率與命中率之和等于100。
目前設計良好的處理器,Cache的未命中率只有百分之幾。未命中率依賴多個Cache參數,包括Cache大小和組織。
15.3.3 Cache工作原理
Cache的基本存儲單元為Cache行(Cache line)。存儲系統把Cache和主存儲器都劃分為相同大小的行。Cache與主存儲器交換數據是以行為基本單位進行的。每一個Cache行都對應于主存中的一個存儲塊(memory block)。
Cache行的大小通常是2L字節。通常情況下是16字節(4個字)和32字節(8個字)。如果Cache行的大小為2L字節,那么對主存的訪問通常是2L字節對齊的。所以對于一個虛擬地址來說,它的bit[31∶L]位,是Cache行的一個標識。當CPU發出的虛擬地址的bit[31∶L]和Cache中的某行bit[31∶L]相同,那么Cache中包含CPU要訪問的數據,即成為一次Cache命中。
為了加快Cache訪問的速度,又將多個Cache行劃分成一個Cache組(Cache Set)。Cache組中包含的Cache行的個數通常也為2的N次方的倍數。為了方便起見,取N=S。這樣,一個Cache組中就包含2S個Cache行。這時,虛擬地址中的bit[L+S-1∶L]為Cache組的標識。虛擬地址中余下的位bit[31∶L+S]成為一個Cache標(Cache-tag)。它標識了Cache行中的內容和主存間的對應關系。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- EE-271: 高速緩沖存儲器在Blackfin處理器中的應用
- CPU、MCU和SOC的區別以及外設的概念理解
- EE-271: 高速緩沖存儲器在Blackfin?處理器中的應用
- PLC系統的存儲器分類詳細資料介紹 4次下載
- 如何使用eMMC陣列進行高速固態存儲器的研究與設計 33次下載
- 單片機存儲器的工作原理和結構與半導體存儲器的分類說明
- Trace32高速緩沖寄存器 18次下載
- 低功耗的高性能四路組相聯CMOS高速緩沖存儲器 12次下載
- 存儲器和高速緩存技術
- S698M SoC芯片中Cache控制器的設計與實現
- ML2308雙通道錄音/播放LSI,內置緩沖存儲器
- 半導體存儲器電路及結構
- 存儲器.ppt 0次下載
- 存儲器接口
- 存儲器的分類及原理
- 內存儲器的分類和特點是什么 1040次閱讀
- 內存儲器分為隨機存儲器和什么 1354次閱讀
- 內存儲器與外存儲器的主要區別 5552次閱讀
- 存儲器的定義和分類 1465次閱讀
- PLC系統的存儲器分類介紹 6769次閱讀
- 存儲器分類及各自優劣勢介紹 5860次閱讀
- 計算機存儲器的作用和分類說明 1w次閱讀
- 半導體存儲器有哪些類型 1.6w次閱讀
- 內存儲器和外存儲器的分類與區別 4w次閱讀
- 隨機存取存儲器為什么叫隨機存取存儲器(結構、特點、分類、優缺點) 2.1w次閱讀
- 計算機的存儲器主要作用_計算機的存儲器的分類介紹 1.1w次閱讀
- Cache是什么 CPU和GPU對于cache的應用 8708次閱讀
- 高速緩沖存儲器基礎知識詳細介紹 1w次閱讀
- 高速緩沖存儲器的作用是什么_有什么特點 2w次閱讀
- 存儲器分類及各自特點有哪些 1.7w次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數發生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論