cache與記憶體的對映

2021-06-20 08:23:15 字數 2671 閱讀 2409

cache與記憶體的對映

無敵寶貝

cache高速緩衝儲存器 一種特殊的儲存器子系統,其中複製了頻繁使用的資料以利於快速訪問。儲存器的高速緩衝儲存器儲存了頻繁訪問的 ram 位置的內容及這些資料項的儲存位址。當

處理器引用儲存器中的某位址時,高速緩衝儲存器便檢查是否存有該位址。如果存有該位址,則將資料返回處理器;如果沒有儲存該位址,則進行常規的儲存器訪問。因為高速緩衝儲存器總是比主ram 儲存器速度快,所以當 ram 的訪問速度低於微處理器的速度時,常使用高速緩衝儲存器。

基本簡介

cache的出現是基於兩種因素:首先,是由於cpu的速度和效能提高很快而主存速度較低且**高,第二就是程式執行的區域性性特點。因此,才將速度比較快而容量有限的sram構成cache,目的在於盡可能發揮cpu的高速度。很顯然,要盡可能發揮cpu的高速度就必須用硬體實現其全部功能。

cache與主存之間可採取多種位址對映方式,直接對映方式是其中的一種。在這種對映方式下,主存中的每一頁只能複製到某一固定的cache頁中。由於cache塊(頁)的大小為16b,而cache容量為16kb。因此,此cache可分為1024頁。可以看到,cache的頁內位址只需4位即可表示;而cache的頁號需用10位二進位制數來表示;在對映時,是將主存位址直接複製,現主存位址為1234e8f8(十六進製制),則最低4位為cache的頁內位址,即1000,中間10位為cache的頁號,即1010001111。cache的容量為16kb決定用這14位編碼即可表示。題中所需求的cache的位址為10100011111000。

cache中的內容隨命中率的降低需要經常替換新的內容。替換演算法有多種,例如,先入後出(filo)演算法、

隨機替換(rand)演算法、先入先出(fifo)演算法、近期最少使用(lru)演算法等。這些替換演算法各有優缺點,就以命中率而言,近期最少使用(lru)演算法的命中率最高。

瀏覽器快取

快取用於儲存一些臨時的檔案。在瀏覽網頁的過程中,網頁會自動儲存在使用者的硬碟上。下次再瀏覽相同的**的時候,系統會自動從硬碟中調出該網頁,既節省了時間也減少了網路的交換。使用者可以自行設定快取方便其上網的需要。電腦中還存在高速緩衝儲存器和硬碟快取。快取的種類:本地伺服器快取、網頁快取、硬碟快取、一級快取記憶體、二級快取記憶體。

cache是乙個高速小容量的臨時儲存器,可以用高速的靜態儲存器晶元實現,或者整合到cpu晶元內部,儲存cpu最經常訪問的指令或者運算元據。

cache的基本原理

cpu與cache之間的資料交換是以字為單位,而cache與主存之間的資料交換是以塊為單位。乙個塊由若干定長字組成的。當cpu讀取主存中乙個字時,便發出此字的記憶體位址到cache和主存。此時cache控制邏輯依據位址判斷此字當前是否在 cache中:若是,此字立即傳送給cpu;若非,則用主存讀週期把此字從主存讀出送到cpu,與此同時,把含有這個字的整個資料塊從主存讀出送到cache中。由始終管理cache使用情況的硬體邏輯電路來實現lru替換演算法

由於主存容量遠大於快取記憶體的容量,因此兩者之間就必須按一定的規則對應起來。快取記憶體的位址映象就是指按什麼規則把主存塊裝入快取記憶體中。位址變換是指當按某種映象方式把主存塊裝入快取記憶體後,每次訪問快取記憶體時,如何把主存的實體地址或虛擬位址變換成快取記憶體的位址,從而訪問快取記憶體中的資料。

映象和變換的方式有四種:直接映象、全相連映象、組相連映象、區段相連映象。

buffer與cache操作的物件就不一樣。

buffer(緩衝)是為了提高記憶體和硬碟(或其他i/0裝置)之間的資料交換的速度而設計的。

cache(快取)是為了提高cpu和記憶體之間的資料交換速度而設計,也就是平常見到的一級快取、

二級快取

、**快取

等。cpu在執行程式所用的指令和讀資料都是針對記憶體的,也就是從記憶體中取得的。由於記憶體讀寫速度慢,為了提高cpu和記憶體之間資料交換的速度,在cpu和記憶體之間增加了cache,它的速度比記憶體快,但是造價高,又由於在cpu內不能整合太多積體電路,所以一般cache比較小,以後intel等公司為了進一步提高速度,又增加了二級cache,甚至**cache,它是根據程式的區域性性原理而設計的,就是cpu執行的指令和訪問的資料往往在集中的某一塊,所以把這塊內容放入cache後,cpu就不用在訪問記憶體了,這就提高了訪問速度。當然若cache中沒有cpu所需要的內容,還是要訪問記憶體的。

緩衝(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統效能。linux有乙個守護程序定期清空緩衝內容(即寫入磁碟),也可以通過sync命令手動清空緩衝。舉個例子吧:我這裡有乙個ext2的u盤,我往裡面copy乙個3m的***,但u盤的燈沒有跳動,過了一會兒(或者手動輸入sync)u盤的燈就跳動起來了。解除安裝裝置時會清空緩衝,所以有些時候解除安裝乙個裝置時要等上幾秒鐘。

簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。

buffer是由各種程序分配的,被用在如輸入佇列等方面。乙個簡單的例子如某個程序要求有多個字段讀入,在所有欄位被讀入完整之前,程序把先前讀入的字段放在buffer中儲存。

cache經常被用在磁碟的i/o請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提高系統效能。

cache和記憶體的對映方式

cache是一種高速緩衝儲存器,她的主要作用是提高cpu資料輸入的速率,調和cpu速度與記憶體儲存速度之間的巨大差異。通俗一點說就是cpu太快,記憶體速度相對比較慢,而cache的速度快,但是cache的 比較昂貴。人們想到乙個辦法就是利用小容量的cache在cpu和記憶體中間當橋梁,也就是說把cp...

主存與cache的位址對映

1.cache是一種高速緩衝儲存器,是為了解決cpu和主存之間速度不匹配而採用的一項重要技術。其原理基於程式執行中具有空間區域性性和時間區域性性特徵。cache是介於cpu和主存之間的小容量儲存器,由高速的sram組成。2.個人感覺需要在這裡提一下的知識。1 儲存單元的編址方式 字編址方式 位元組編...

cache對映方式

cache 與主存之間的全相聯對映,直接對映和組相聯對映的區別 1.高速緩衝儲存器的功能 結構與工作原理 高速緩衝儲存器是存在於主存與 cpu之間的一級儲存器,由靜態儲存晶元 sram 組成,容量比較小但速度比主存高得多,接近於cpu 的速度。cache 的功能是用來存放那些近期需要執行的指令與資料...