zoukankan      html  css  js  c++  java
  • 从程序员的角度看cache(四)

    附:

    记下查看cache信息的方法:

    cat /sys/devices/system/cpu/cpu0/cache/index2/size

    sudo  dmidecode -t cache

    还有一个链接http://igoro.com/archive/gallery-of-processor-cache-effects      上面的1、2、3、4示例在本地都做了测试,满有意思的。

    本文内容如下:

    在中心又跑了下指令集测试,顺便测试下在cache miss时write allocate和read allocate的区别。

    当读时,无论对于write through 或 write back型cache,当发生cache miss时都会将数据调入cache

    代码:

     1     movl r0, #0x7000
     2     movl r1, #0xaaaaaaaa
     3     stw r1, [r0]
     4     movl r1, #0xbbbbbbbb
     5     stw r1, [r0]
           ldw r1, [r0]
    6 movl r0, #0x94007000 7 stw r1, [r0] 8 mytest: 9 stw, r1, [r0] 10 b mytest

    对于unicore当使用write through(0x0c), 对应了read allocate

    即:当对应数据不在cache中时,则在写的时候不会将数据不会调入cache

     1 UNITY WRITE HADDR 00007000 Size 2 Data aaaaaaaa
     2 UNITY WRITE HADDR 00007000 Size 2 Data bbbbbbbb
     3 UNITY READ HADDR 00007000 Size 2 Data bbbbbbbb
     4 UNITY READ HADDR 00007004 Size 2 Data xxxxxxxx
     5 UNITY READ HADDR 00007008 Size 2 Data xxxxxxxx
     6 UNITY READ HADDR 0000700c Size 2 Data xxxxxxxx
     7 UNITY READ HADDR 00007010 Size 2 Data xxxxxxxx
     8 UNITY READ HADDR 00007014 Size 2 Data xxxxxxxx
     9 UNITY READ HADDR 00007018 Size 2 Data xxxxxxxx
    10 UNITY READ HADDR 0000701c Size 2 Data xxxxxxxx

    对于unicore当使用writeback(0x1c), 对应了write allocate

    即:当对应数据不在cache时,则在写的时候会将数据调入cache

    UNITY READ HADDR 00007000 Size 2 Data xxxxxxxx
    UNITY READ HADDR 00007004 Size 2 Data xxxxxxxx
    UNITY READ HADDR 00007008 Size 2 Data xxxxxxxx
    UNITY READ HADDR 0000700c Size 2 Data xxxxxxxx
    UNITY READ HADDR 00007010 Size 2 Data xxxxxxxx
    UNITY READ HADDR 00007014 Size 2 Data xxxxxxxx
    UNITY READ HADDR 00007018 Size 2 Data xxxxxxxx
    UNITY READ HADDR 0000701c Size 2 Data xxxxxxxx
    UNITY WRITE HADDR 14007000 Size 2 Data bbbbbbbb

     注意:对于writeback下的数据记录中出现14007000地址,这时unicore特有的现象,和体系结构有关(此处没有开mmu,因此不涉及地址转换)

  • 相关阅读:
    第六章:体系结构篇
    Linux查看显示编辑文本文件
    第五章:管理数据库实例
    yum [Errno 256] No more mirrors to try 解决方法
    第四章:Oracle12c 数据库在linux环境安装
    第三章:数据库管理的任务
    13 款免费但好用到哭的项目管理工具
    在CentOS 7上部署Ghost博客
    CentOS7上部署taiga项目管理软件
    CentOS6配置Taiga
  • 原文地址:https://www.cnblogs.com/openix/p/3034283.html
Copyright © 2011-2022 走看看