cacheline基本理論


一.cacheline

  1.cache:解決cpu頻率與內存訪問之間速度差距越來越大的問題

  

  2.cacheline:cpu cache的最小單位,主流為64B

  3.指導:訪問數組數據在同一個cacheline內速度很快,若跨cacheline,則速度會慢很多,因為可能存在cache miss,需要將內存數據寫入cache中

二.cacheline與內存之間的映射策略

  1.hash策略:hash值的計算需要10K個cycle,無法滿足cache訪問幾個或者幾十個cycle的要求

       2.Fully Associative:時間問題

    3.Direct Mapped:對每塊內存的訪問是等概率的,否則cache使用率很低,並且沖突很多

  4.N-Way Set Associative:高效

  a.將N個cacheline分為一組

  b.每個cacheline中,根據偏移進行尋址,所以64B,需要6bit進行表示

  如下:4M cache,設N=16,則

  ①4M內存,16個64B的cacheline為一組,共有2^12組Set,用中間12bit表示
  ②最后6bit表示64B的cacheline內偏移

  實際cache尋址過程如下:

  ①根據64bit表示的addr的12bit計算出set號,這樣的話,只需要在本set內比較16個cacheline即可

  ②根據最后6bit表示的cacheline偏移,計算偏移地址

  ③對於set內的16個cacheline,結合前46bit,挨個比較每個cacheline中對應偏移的地址是否與addr相等

  ④若找到,則命中;否則cache miss

   

三.cacheline替換策略LRU/Random

   1.LRU:最近最少使用算法,核心思想是最近被使用的內存在將來也有很大可能被使用

四、cacheline與內存對齊之間的性能問題

參考:

http://cenalulu.github.io/linux/all-about-cpu-cache/

https://en.wikipedia.org/wiki/Cache_placement_policies

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM