• linux查看CPU高速缓存(cache)信息


    一、Linux下查看CPU Cache级数,每级大小

    dmesg | grep cache

    实例结果如下:

    二、查看Cache的关联方式

    在 /sys/devices/system/cpu/中查看相应的文件夹

    如查看cpu0 的一级缓存中的有多少组,

    $ cat /sys/devices/system/cpu/cpu0/cache/index0/number_of_sets
    $64

    如查看cpu0的一级缓存中一组中的行数

    $cat /sys/devices/system/cpu/cpu0/cache/index0/ways_of_associativity
    $8

     三、查看cache_line的大小

    上面以本人电脑的cpu一级缓存为例知道了cpu0的一级缓存的大小:32k,其包含64个(sets)组,每组有8(ways),则可以算出每一个way(cache_line)的大小 cache_line = 32*1024/(64*8)=64 bytes。当然我们也可以通过以下命令查出cache_line的大小

    $ cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size

    或者

    $ cat /proc/cpuinfo

    processor : 0
    vendor_id : GenuineIntel
    cpu family : 6
    model : 60
    model name : Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
    stepping : 3
    cpu MHz : 3497.664
    cache size : 8192 KB
    physical id : 0
    siblings : 8
    core id : 0
    cpu cores : 4
    apicid : 0
    initial apicid : 0
    fpu : yes
    fpu_exception : yes
    cpuid level : 13
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt aes xsave avx lahf_lm abm ida arat tpr_shadow vnmi flexpriority ept vpid
    bogomips : 6995.32
    clflush size : 64
    cache_alignment : 64
    address sizes : 39 bits physical, 48 bits virtual

    知道了cpu的cache 信息,在编写高效程序时将所有帮助。

      四、程序内容在cache中的存储方式

      上图来自于深入理解计算机系统,接着我们上面的分析:cpu0的一级高速缓存中有64组,则s =log2(64)=6,即“组索引“位为6位,同理“块偏移” b=6位,则以我的64位系统为例,”标记位“t  = 64 - s -b =64-6 -6=52 位。

      同时我们可以进一步分析,根据上图DRAM地址与高速缓存地址的映射关系,可知:第一个64bytes在第0组,第二个64bytes在第1组,第64个64bytes在第63组,直到第65个64bytes才用回到第0组与第一个64bytes竞争高速缓存,

  • 相关阅读:
    Java访问Oracle服务器
    easyUI之练习
    easyUI之Tree(树)
    easyUI之Messager(消息窗口)
    easyUI之表单
    easyUI之Dialog(对话框窗口)
    easyUI之函数
    easyUI之window窗口
    easyUI之progressbar进度条
    easyUI之slider滑动条框
  • 原文地址:https://www.cnblogs.com/kekukele/p/3829369.html
Copyright © 2020-2023  润新知