Linux查看CPU Cache信息
Introduction
本文介紹了如何在linux下查看cache的信息,並進行簡單的分析。
unix設計哲學
一切皆文件
Linux也很好的繼承了這個理念。
cpu cache
我的cpu:
Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
cpu文件
文件夾/sys/devices/system/cpu就是對cpu的文件映射。進入以後,隨便進一個cpu核,可以看到cache文件夾,tree以後:
.├── index0│ ├── coherency_line_size│ ├── level│ ├── number_of_sets│ ├── physical_line_partition│ ├── shared_cpu_list│ ├── shared_cpu_map│ ├── size│ ├── type│ └── ways_of_associativity├── index1│ ├── coherency_line_size │ ├── level│ ├── number_of_sets│ ├── physical_line_partition│ ├── shared_cpu_list│ ├── shared_cpu_map│ ├── size│ ├── type│ └── ways_of_associativity├── index2│ ├── coherency_line_size...同上一個文件夾│ └── ways_of_associativity└── index3 ├── coherency_line_size...同上一個文件夾 └── ways_of_associativity
文件解釋
(知乎的編輯器,不管是複製還是直接markdown都不支持表格,建議參看原文Linux查看cache信息 - FindSpace)
文件表示內容表示內容(中)coherency_line_sizesize of each cache line usually representing the minimum amount of data that gets transferred from memorycache line大小(有的地方叫cache block)levelrepresents the hierarchy in the multi-level cachecache屬於第幾層number_of_setstotal number of sets, a set is a collection of cache lines sharing the same indexcache set的數量physical_line_partitionnumber of physical cache lines sharing the same cachetag一個tag對應幾個cache line(竟然還可以對應多個???看來了解的還不夠全面)sizeTotal size of the cache總大小typetype of the cache - data, inst or unifiedcache的類型:數據、指令、統一,一般商用cpu只有L1劃分了指令cache和數據cacheways_of_associativitynumber of ways in which a particular memory block can be placed in the cache幾路組相連shared_cpu_listshared_cpu_map
shared_cpu_list && shared_cpu_map
解釋一下L3 的shared_cpu_map內容的格式:
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f
表面上看是2進位,其實是16進位表示,每個bit表示一個cpu,1個數字可以表示4個cpu
截取0000000f的後4位,轉換為2進位表示CPUid15-4忽略32100x000f的二進位表示…1111這就表示L3是四個cpu共享的,cat shared_cpu_list:
0-3
是0-3序號的cpu core。
組相連分析
針對L3的數據:
ways_of_associativity: 12size: 6144K (Bytes)coherency_line_size: 64 (Bytes)number_of_sets: 8192驗證:
64*12*8192/1024 = 6144 KByte
Reference
玩轉CPU Topology
如何查看CPU的cache大小Linux/include/linux/cacheinfo.hCPU體系架構-Cache
理解cache知乎的編輯器支持有限,複製過來的表格格式丟失了,建議參看原文
原文地址: Linux查看cache信息 - FindSpace
推薦閱讀:
※yum軟體版本過低如何解決?
※搞定Linux Shell文本處理工具,看完這篇集錦就夠了
※窮學生,求推薦一款價格便宜能較好學習嵌入式Linux的開發板?
※網路編程(三):從libevent到事件通知機制
※全棧工程師必備Linux 基礎