搜尋
首頁常見問題cache是​​什麼記憶體?

cache是​​什麼記憶體?

Nov 25, 2022 am 11:48 AM
記憶體cache

cache叫做高速緩衝記憶體,是介於中央處理器和主記憶體之間的高速小容量記憶體,一般由高速SRAM構成;這種局部記憶體是面向CPU的,引進它是為減少或消除CPU與記憶體之間的速度差異對系統效能帶來的影響。 Cache容量小但速度快,記憶體速度較低但容量大,透過最佳化調度演算法,系統的效能會大幅提升。

cache是​​什麼記憶體?

本教學操作環境:windows7系統、Dell G3電腦。

cache是​​什麼記憶體

Cache記憶體:電腦中為高速緩衝記憶體,位於CPU和主記憶體DRAM(Dynamic Random Access Memory )之間,規模較小,但速度很高的記憶體,通常由SRAM(Static Random Access Memory靜態記憶體)組成。

cache是​​什麼記憶體?

如圖3.28所示,cache是​​介於CPU和主記憶體M2之間的小容量記憶體,但存取速度比主存快,容量遠小於主存。 cache 能高速地向CPU提供指令和數據,從而加快了程式的執行速度。從功能上看,它是主記憶體的緩衝記憶體,由高速的SRAM組成。為追求高速,包括管理在內的全部功能由硬體實現,因而對程式設計師是透明的。

目前,隨著半導體裝置整合度的進步提高,可以將小容量的cache與CPU 整合到同一晶片中,其工作速度接近CPU的速度,從而組成兩級以上的cache系統。

cache的功能

Cache的功能是提高CPU資料輸入輸出的速率。 Cache容量小但速度快,記憶體速度較低但容量大,透過最佳化調度演算法,系統的效能會大大改善,彷彿其儲存系統容量與記憶體相當且存取速度近似Cache。

CPU的速度遠高於內存,當CPU直接從內存中訪問數據時要等待一定時間週期,而Cache則可以保存CPU剛用過或循環使用的一部分數據,如果CPU需要再次使用該部分數據時可從Cache中直接調用,這樣就避免了重複訪問數據,減少了CPU的等待時間,從而提高了系統的效率。 Cache又分為L1Cache(一級快取)和L2Cache(二級快取),L1Cache主要是整合在CPU內部,而L2Cache整合在主機板上或是CPU上。

cache的基本原則

      cache除包含SRAM外,還要有控制邏輯。若cache在CPU晶片外,它的控制邏輯一般與主記憶體控制邏輯合成在一起,稱為主記憶體/chace控制器;若cache在CPU內,則由CPU提供它的控制邏輯。

       CPU與cache之間的資料交換是以字為單位,而cache與主記憶體之間的資料交換是以區塊為單位。一個塊由若干字組成,是定長的。當CPU讀取記憶體中一個字時,便發出此字的記憶體位址到cache和主記憶體。此時cache控制邏輯依據位址判斷此字目前是否在cache中:若是,則cache命中,此字立即傳送給CPU;若非,則cache缺失(未命中),用主存讀週期把此字從主存讀出送到CPU,同時,把含有這個字的整個資料塊從主記憶體讀出送到cache中。

cache是​​什麼記憶體?

圖3.29顯示了cache的原理圖。假設cache讀出時間為50ns,主存讀出時間為250ns。儲存系統是模組化的,主記憶體中每個8K模組和容量16字的cache相聯繫。 cache分為4行,每行4個字(W)。分配給cache的位址存放在一個相聯記憶體CAM中,它是按內容尋址的記憶體。當CPU執行存取指令時,就把所要存取的字的位址送到CAM;如果W不在cache中,則將W從主記憶體傳送到CPU。同時,把包含W的由前後相繼的4個字所組成的一行資料送入cache,替換原來cache中的一行資料。在這裡,由始終管理cache使用情況的硬體邏輯電路來實現替換演算法。

cache的命中率

從CPU來看,增加cache的目的,就是在效能上讓主記憶體的平均讀出時間盡可能接近cache的讀出時間。為了達到這個目的,在所有的記憶體存取中由cache滿足CPU需求的部分應佔很高的比例,即cache的命中率應接近1。由於程式存取的局部性,實現這個目標是可能的。

在一個程式執行期間​​,設Nc表示cache完成存取的總次數,Nₘ表示主記憶體完成存取的總次數,h定義為命中率,則有h=Nc/(Nc+Nₘ)

若tc表示命中時的cache存取時間,tₘ表示未命中時的主記憶體存取時間,1-h表示未命中率(缺失率),則cache/主記憶體系統的平均存取時間tₐ為

tₐ=htc+(1−h)tₘ

我們追求的目標是,以較小的硬體代價使cache/主存系統的平均存取時間tₐ越接近 tc越好。設 r=tₘ/tc表示主記憶體與cache的訪問時間之比,e表示訪問效率,則有

e=tc/ta=tc/(htc+(1−h)tm)=1/(h+(1−h)r)=1/(r+(1−r)h)

由此式看出,為提高訪問效率,命中率h越接近1越好。 r值以5~10為宜,不宜太大。

命中率h與程式的行為、cache的容量、組織方式、區塊的大小有關。

cache結構設計必須解決的問題

#從cache的基本運作原理可以看出, cache的設計需要遵循兩個原則:一是希望cache的命中率盡可能高,實際應接近於1;二是希望cache對CPU而言是透明的,即不論是否有cache, CPU訪存的方法都是一樣的,軟體不需增加任何指令就可以存取cache。解決了命中率和透明性問題,就CPU存取的角度而言,記憶體將具有主記憶體的容量和接近cache的速度。為此,必須增加一定的硬體電路完成控制功能,也就是cache控制器。

在設計cache結構時,必須解決幾個問題:①主存的內容調入cache時如何存放?②訪存時如何找到cache中的信息?③當cache空間不足時如何替換cache中已有的內容?④需要寫入操作時如何改寫cache的內容?

其中,前兩個問題是相互關聯的,即如何將主存資訊定位在cache中,如何將主存位址變換為cache位址。與主記憶體相比, cache的容量很小,它保存的內容只是主記憶體內容的子集,且cache與主記憶體的資料交換是以區塊為單位。為了把主存塊放到cache中,必須應用某種方法把主記憶體位址定位到cache中,稱為位址對映。 「映射」一詞的物理意義是確定位置的對應關係,並用硬體來實現。這樣當CPU存取記憶體時,它所給的一個字的記憶體位址就會自動變換成cache的位址,也就是cache位址變換。

cache替換問題主要是選擇和執行替換演算法,以便在cache不命中時取代cache中的內容。最後一個問題涉及cache的寫入操作策略,重點是在更新時保持主記憶體與cache的一致性。

更多相關知識,請造訪常見問題欄位!

以上是cache是​​什麼記憶體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器