计算机操作系统篇_210824

第一节

查看CPU中cache的大小

cat /sys/devices/system/cpu/cpu0/cache/index0/size
(index1,2,3)

cpu访问各个位置的差异

如果L1 cache为1秒 访问内存2分钟,SSD1.7天,机械硬盘为4个月

cpu cache的数据结构和读取过程是什么样的?

CPU 读取数据的时候,⽆论数据是否存放到 Cache 中,CPU 都是先访问 Cache,只有当 Cache
中找不到数据时,才会去访问内存,并把内存中的数据读⼊到 Cache 中,CPU 再从 CPU Cache 读取数据。

cpu怎么知道要访问的内存数据呢?

cpu通过直接映射的方式找到cache对应数据,直接映射这个策略:把内存块的地址直接映射到cpu的缓冲块上的地址,采用一个叫取模运算的方式,得到内存块Block对应的cpu line缓冲块

访问指定内存块实战

举个例⼦,内存共被划分为 32 个内存块,CPU Cache 共有 8 个 CPU Line,假设 CPU 想要访问第 15 号内存块,如果 15 号内存块中的数据已经缓存在 CPU Line 中的话,则是⼀定映射在 7 号 CPU Line 中,因为 15 % 8 的值是 7。

cpu访问一个内存地址会经历这几个步骤

先索引找到cpu缓存块位置,判断有效位判断组标记,然后根据偏移量,读取相应的字
中间有不对的直接就重新读取内存数据。

如何写出让cpu跑的更快的代码

访问cache会比访问内存快100倍,放在cache中的称为缓存命中,所以跑的快也意味着缓存命中率高,一个cache分为数据缓存和指令缓存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值