码迷,mamicode.com
首页 > 其他好文 > 详细

【学习总结】cpu缓存

时间:2019-08-31 17:17:02      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:img   tps   end   cache   访问   频道   链接   log   区域   

参考链接:

高速缓存

  • 在内存与cpu寄存器之间,还有一块区域叫做cpu高速缓存,即我们常常说的cache。
  • cache分为L1、L2、L3三级缓存,速度递减,离cpu越来越远
  • L1、L2每个内核自己都有,L3是每个插槽上的多个内核共用一个。
  • cpu按照值使用频道来从1、2、3缓存逐个进行检索,L1如果没有命中,就向下继续检索L2、L3直到内存。

访问时间

技术图片

  • 在上述缓存的存取与检索读取的操作中,最基本的单位(即内核操作缓存的最基本单位)成为缓存行(cache line),一般情况下,cache line的大小为64字节。
  • 举个例子,对于顺序存储的一个数组而言,当我们从内存中读取一个数组元素进缓存的时候,要一次读取64字节,那么这样就会将我们需要读取的元素后面的若干个8字节long也一并都进了缓存,并且这是在一个操作里完成的,没有额外的花费。大大提高了性能。
  • 测试运行时间可以发现:先对行遍历只用不到1秒,而先对列遍历的话要用12秒
    行优先快,列优先慢

END

【学习总结】cpu缓存

标签:img   tps   end   cache   访问   频道   链接   log   区域   

原文地址:https://www.cnblogs.com/anliux/p/11439253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!