cache存儲器

預讀:CPU發起預讀操作(現在基本分工給cache了),cache根據局部性原理將主存的子集調入,同時保存cache與主存間的索引。
CPU訪cache:CPU需要訪問主存某個地址時,先訪問cache看看有沒有對應的鏡像。
命中:主存和cache的容量差很多,cache中恰好有CPU需要的數據。
miss:cache猜錯咯,哭哭。去訪問主存把數據調入cache。(替換)

映射功能

首先分清楚這幾個東西……(大概只有我蠢
主存地址:塊號|塊內地址
CPU在訪主存的時候會根據主存地址去找相應內容。
cache地址:行號|行內地址
CPU在訪cache的時候會根據cache地址去找相應內容。
主存的內容和cache的內容
映射就是把主存地址和cache地址聯系起來

直接映射
主存的每一塊對應cache中確切的一行
i=j mod 2C
主存地址:Tag|Line|Word
原主存地址的塊號被分成了標記和行兩部分,因為cache數量遠小于主存,所以這種映射關系是cache一行對主存多塊,行部分用來區分每一塊應該映射到哪一行,標記部分則用于確認當前cache里存的是對應那么多塊中的哪一塊。
標記:
行:標識cache的確切一行
字:標識主存塊中的確切一字/字節
CPU訪cache:
首先根據行,找到cache行,然后比較主存地址中的標記和cache部分存的標記。一樣則命中
命中:使用主存地址的塊內地址,訪問該cache塊相應的字單元。
Miss:使用主存地址直接訪主存。

CPU需要訪問某個地址時,首先根據該主存地址的C字段找到cache的相應塊,然后將該塊標志字段中存放的標志與主存地址的T標志進行比較。

當一個主存塊調入 Cache中時,會同時將主存地址的T標志存入Cache塊的標記字段中。當CPU送來一個訪存地址時,首先,根據該主存地址的C字段找到Cache的相 應塊,然后將該塊標志字段中存放的標志與主存地址的T標志進行比較,若相符,說明主存的塊目前已調入該Cache塊中,則命中,于是使用主存地址的W字段

全相聯映射

主存地址:Tag|Word
CPU的訪cache地址:

當 一個主存塊調入Cache中時,會同時在一個存儲主存塊號和Cache塊號映射表的相聯存儲器中進行登記。CPU訪存時,首先,根據主存地址中的主存塊號 M在相聯存儲器中查找Cache塊號,若找到,則本次訪Cache命中,于是將對應的Cache塊號取出,并送訪Cache地址的塊號C字段;緊接著將主存地址的塊內字號W直接送Cache地址的塊內字號W字段,從而形成一個訪Cache的地址;最后根據該地址完成對Cache單元的訪問.

組相聯映射
主存地址:Tag|Set|Word
將cache分組,組間是直接映射,組內是全關聯映射。
即主存的每一塊,先找到對應的cache中確切的一組,然后對應這一組中任意的一行。

公式


命中率 H = Nc/(Nc+Nm)
主存慢于cache的倍率 r = Tm/Tc
訪問效率 e = 1/[r+(1-r)H]
平均訪問時間 Ta = (Tc
Nc+Tm*Nm)/N = Tc/e

參考


說好的Cache呢
主存與Cache的地址映射
cache與主存地址結構

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、概要 1、數據的表示:數制及其轉換、原碼、反碼、補碼、移碼、浮點數、溢出、算...
    _Jason___閱讀 3,241評論 0 5
  • CPU在一段較短的時間內,是對連續地址的一段很小的主存空間頻繁地進行訪問,而對此范圍以外地址的訪問甚少,這種現象稱...
    lintong閱讀 979評論 0 2
  • 虛擬存儲器又叫做虛擬內存,我們現在的操作系統普遍都支持了虛擬內存,這樣做是因為我們同時運行著太多的程序了,就目前我...
    唐魚的學習探索閱讀 5,045評論 1 25
  • 1 內存尋址 1.1 物理地址、虛擬地址以及線性地址 物理地址: 物理內存的內存單元地址 虛擬地址: 程序員看到的...
    瘋狂小王子閱讀 2,959評論 3 21
  • ——精而簡 美洲豹 唐代劉禹錫有詩曰:“庭前芍藥妖無格,池上芙蕖凈少情。唯有牡丹真國色,花開時節動京城。”。說的正...
    c49345312d5f閱讀 1,483評論 0 1