主存和cache每一块相等_笔记:cpu中的cache(一)
前言:絕大部分內容來源于北京大學的慕課《計算機組成原理》,地址:
https://www.coursera.org/learn/jisuanji-zucheng
存儲體系(《深入理解計算機系統》)cache是為了解決cpu和內存速度不對等的問題。
一,cache的結構
當前較為普遍的cache配置是L1,L2,L3。
Core i7的多級高速緩存L1 Cache:指令和數據分離,各32KB 8路組相聯,命中時間4個周期 。
L2 Cache:統一的指令和數據,共256KB 8路組相聯,命中時間11個周期 。
L3 Cache:統一的指令和數據,多核共享,共8MB 16路組相聯,命中時間30~40個周期。
cache的結構局部性:
計算機程序從時間和空間都表現出“局部性” 。
時間局部性(Temporal Locality) :最近被訪問的存儲器單元(指令或數據)很快還會被訪問 。
空間局部性(Spatial Locality):正在被訪問的存儲器單元附近的單元很快會被訪問。
緩存行(Cache Line):根據局部性結論可以知道,CPU為了高效,在獲取數據不是一個字節一個字節,而是一塊一塊(block),也即Cache Line(常見的有64Byte)。
cache與內存的映射模型二,cache訪問流程
cache訪問流程Cache命中時的寫策略:
① 寫穿透(Write Through):數據同時寫入Cache和主存 。
② 寫返回(Write Back):數據只寫入Cache,僅當該數據塊被替換時 才將數據寫回主存。
Cache失效”時的寫策略 :
① 寫不分配(Write Non-Allocate):直接將數據寫入主存 。
② 寫分配(Write Allocate):將該數據所在的塊讀入Cache后,再將數 據寫入Cache。
參考:
https://www.coursera.org/learn/jisuanji-zucheng
https://coolshell.cn/articles/20793.html
https://www.stardog.com/blog/writing-cache-friendly-code/
https://dzone.com/articles/optimizing-memory-access-with-cpu-cache
https://coolshell.cn/articles/10249.html
https://max.book118.com/html/2017/1007/136335602.shtm
總結
以上是生活随笔為你收集整理的主存和cache每一块相等_笔记:cpu中的cache(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: seata xid是什么_使用Seata
- 下一篇: java 录屏_java 录屏 小工具源