设为首页收藏本站

天空语文 如皋  九华 作文  教学

 找回密码
 我要加入(register注册)

QQ登录

只需一步,快速开始

快捷登录

使用微信账号登录

天空新人

李白202091

蓝兰的花朵

天晴朗

嘿嘿嘿

joycy

颂颂.g

酷土土土

用户已注销

Jeremy

ʚ贴贴ɞ

果子黑

H·princess

李苏楠

方大金

依灵灵灵.

金川兰

lulululu

lisunan18795762

清风拂过

楠大人

王悦

朴弟

赵珺琦

王佳慧

八5霍程

查看: 440|回复: 1
收起左侧

L1,L2,L3 Cache究竟在哪里?

  [复制链接] TA的其它主题
来自- 中国江苏南通

Ta在天空论坛排行

积分:NO. 19 名

发帖:NO. 19 名

在线:NO. 19 名

划过指尖的烟云 发表于 2019-4-24 14:33:22 | 显示全部楼层 |阅读模式 来自- 中国江苏南通
天空便利贴:这里是语文的天堂,也是文学的乐园。如有原创或喜欢的文章,可推荐发表,供坛友欣赏提高。您的热情和才华是天空论坛最大的财富。
来自- 中国江苏南通

加入天空更多精彩

您需要 登录 才可以下载或查看,没有账号?我要加入(register注册)

x
L1,L2,L3 Cache究竟在哪里? 原创 老狼zhihu 2019-04-22 11:31:18


很多人有个疑问,为什么Intel系列CPU在2005年后可以力压AMD十多年?优秀的Cache设计和卓越的微架构是主要的原因。大多数高层程序员认为 Cache 是透明的,CPU可以很聪明地安排他们书写的程序,不需要关心数据是在内存中还是在Cache里。 他们也许是对的,大部分时间Cache都可以安静的工作。但对于操作系统、编译软件、固件工程师和硬件工程师来说,Cache则需要我们特别关照。现在越来越多的数据库软件和人工智能引擎也对Cache越来越敏感,需要针对性地优化。Cache设计和相关知识从而不再是阳春白雪,你也许某一天就会需要了解它。
本系列希望通过将Cache相关领域知识点拆解成大家关心的几个问题,来串起相关内容。这些问题包括:
  • Cache究竟在哪里?Cache是怎么组织和工作的?
  • 什么是n-ways Set-Associative Cache?
  • 什么是Cache Coloring (Page Coloring)? 什么是Inclusive Cache或者Exclusive Cache?
  • Cache line淘汰算法有哪些?
  • Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好?
  • Cache的一致性是怎么保证的?Cache的属性是谁设定的,怎么设定的?
下面是本系列的第一篇。
什么是Cache?Cache Memory也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据,这就是Cache的传统定义。从广义的角度上看,Cache是快设备为了缓解访问慢设备延时的预留的Buffer,从而可以在掩盖访问延时的同时,尽可能地提高数据传输率。 快和慢是一个相对概念,与微架构(Microarchitecture)中的 L1/L2/L3 Cache相比, DDR内存是一个慢速设备;在磁盘 I/O 系统中,DDR却是快速设备,在磁盘 I/O 系统中,仍在使用DDR内存作为磁介质的Cache。在一个微架构中,除了有L1/L2/L3 Cache之外,用于虚实地址转换的各级TLB, MOB( Memory Ordering Buffers)、在指令流水线中的ROB,Register File和BTB等等也是一种Cache。我们这里的Cache,是狭义 Cache,是CPU流水线和主存储器的 L1/L2/L3 Cache。
Cache在哪里呢?也许很多人会不假思索的说:“在CPU内核里。”Not so fast!它也有可能在主板上!我们先来了解一下Cache的历史。
  • PC-AT/XT和286时代:没有Cache,CPU和内存都很慢,CPU直接访问内存。
  • 386时代:CPU速度开始和内存速度不匹配了。为了能够加速内存访问,芯片组增加了对快速内存的支持,这也是在电脑上第一次出现Cache(尽管IBM 360 model系统上已经出现很久了),也是L1(一级Cache)的雏形。这个Cache是可选的,低端主板并没有它,从而性能受到很大影响。而高级主板则带有64KB,甚至高端大气上档次的128KB Cache,在当时也是可以笑傲江湖了。当时的Cache都是Write-Through,即Cache内容的更新都会立刻写回内存中。
  • 486时代:Intel在CPU里面加入了8KB的L1 Cache,当时也叫做内部Cache。它在当时是Unified Cache,就是不分代码和数据,都存在一起。原先在386上面的Cache,变成了L2,也被叫做外部Cache。大小从128KB到256KB不等。这时增加了Write-back的Cache属性,即Cache内容更改后不立刻更新内存,而是在Cache miss的时候再更新,避免了不必要的更新。


  • 586/Pentium-1时代:L1 Cache被一分为二,分为Code和data,各自8KB。这是因为code和data的更新策略并不相同,而且因为CISC的变长指令,code cache要做特殊优化。与此同时L2还被放在主板上。后期Intel推出了Pentium Pro ('80686'),L2被放入到CPU的Package上:


  • 奔腾2/3:变化不大,L2还在CPU Die外面,只是容量大了不少。


  • 奔腾4/奔腾D:L2被放入到了Die里面。这就和现在的L1和L2很相像了,问题来了,多内核呢?第一代奔腾D双核中,L1和L2被两个Die各自占据。Netburst的Pentium 4 Extreme Edition高端版甚至加入L3。但在后期与HT一起随着Netburst架构被放弃。Core/Core2:巨大的变化发生在L2,L2变成多核共享模式:


  • 现在:L3被加入到CPU Die中,它在逻辑上是共享模式。而L2则被每个Core单独占据。这时L2也常被指做MLC(Middle Level Cache),而L3也被叫做LLC(Last Level Cache):


  • Haswell/Broadwell:在Iris系列中,一块高速DRAM被放入Package中,叫做eDRAM。


它在平时可以做显存。也可以被设定为L4缓存:


Cache速度比内存速度快多少?大家都知道内存都是DRAM,但对Cache是怎么组成就所知不多了。Cache是由CAM(Content Addressable Memory )为主体的tag和SRAM组成的。我们今后在系列文章中会详细介绍CAM的组成,这里简单比较一下DRAM和SRAM。DRAM组成很简单:


DRAM
只有一个晶体管和一个电容。而SRAM就复杂多了,一个简化的例子:


SRAM
需要6个晶体管。一个简单的比较如下:


那么速度差距多大呢?各级Cache的延迟差距很大,如下图:


可以看到延迟最低的是Registers和MOB(Memory Ordering Buffers),L1的延迟和CPU core在一个数量级之内(注意这里并不能简单的认为L1就是3个Cycle,因为有pre-fetch),而DRAM延迟是它的60多倍。
结论说Cache在CPU的Die里面在现在绝大多数情况下都是正确的。最新Intel的optane内存会让普通DRAM作为cache,而自己作为真正内存,从而组成两级memory( L2 memory),为这个结构平添了一些变数。细心的读者也许会发现,Cache演变总的来说级数在增加,新加入的层级在位置上总是出现在外层,逐渐向内部靠近。Cache的设计是CPU设计的重要内容之一,我们会在今后的文章中为大家详细介绍。
后记
  • 如何知道自己CPU的L2、L3的容量多大呢?当然可以用CPU-z,但其实可以有个更加简单的办法,在命令行输入:
wmic cpu get L2CacheSize,L3CacheSize
我的笔记本得到这个结果:


  • 想体验一下不要Cache的极限慢速吗?很多BIOS都有设置,可以关掉cache:



我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 天空金币 , 目前已有0人回答

最近访客

来自- 中国江苏南通
天空便利贴:
到底了,觉得文章不错的,可以给作者评论或者打赏,这是创作者向前的动力。可以向上滑,或者转到相关热帖。使用过程中如有好的意见或建议,欢迎联系页面qq客服。天空论坛因你更精彩。
回复

手机扫码浏览
天空论坛,有你有我,明天更好!
来自- 中国江苏南通
点评回复 来自- 中国江苏南通

使用道具 举报 私信管理员来自- 中国江苏南通

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

×天空论坛发帖友情提示:
1、注册用户在本论坛发表、转载的任何作品仅代表其个人观点,不代表本论坛认同其观点。
2、如果存在违反国家相关法律、法规、条例的行为,我们有权在不经作者准许的情况下删除其在本论坛所发表的文章。
3、所有网友不要盗用有明确版权要求的作品,转贴请注明来源,否则文责自负。
4、本论坛保护注册用户个人资料,但是在自身原因导致个人资料泄露、丢失、被盗或篡改,本论坛概不负责,也不承担相应法律责任。

QQ|手机版|我们的天空 ( 苏ICP备18048761号 ) |苏公网安备32068202000215号 |网站地图

GMT+8, 2024-5-18 08:57 , Processed in 0.223009 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表