百科问答小站 logo
百科问答小站 font logo



为什么英特尔和 AMD 的 CPU 缓存只有三级,而不做四级或者更多? 第1页

  

user avatar   mikewolfwoo 网友的相关建议: 
      

谢邀。实际上问题并不成立,因为已经有L4了,它有两种形式:

eDRAM

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

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

Optane DIMM

Intel 2018年将要推出内存条形式的Optane:3D XPoint

因为Optane内存是NvRAM(非易失)的内存,且容量很大,普通的内存条在这时当作他的cache,类似L4 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,是CPU流水线和主存储器的 L1/L2/L3 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):

结论

细心的读者也许会发现,Cache演变总的来说级数在增加,新加入的层级在位置上总是出现在外层,逐渐向内部靠近。回到我前面的两个L4的例子来看,L4都不在CPU的Die里,未来也许会增加到Die内,CPU还在演进之中,未来还是未知之数。

本文大部分出自:

Cache其他文章:

欢迎大家关注我的专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!




  

相关话题

  如何评价AMD暂时没有对中国进行新的X86授权? 
  如何评价小米 10 系列宣传中手机算力超过笔记本电脑的对比? 
  AMD 的 CPU 发展多年,为什么不能像 Intel 一样把针脚放在主板上,让主板通用呢? 
  为什么游戏主机(PS3/XBOX 360)和次世代游戏主机(PS4/XBOX One)不采用Intel/nVidia平台? 
  amd 5800x cpu 针脚弯了2根 拨正之后。影响cpu性能吗? 
  可以预先将 X86 平台机器码译码到 micro operations 来解决 X86 译码效率低吗? 
  如何评价平头哥完成了安卓 10 对 RISC-V 的移植并开源代码?对 RISC-V 生态有何意义? 
  为何国产手机CPU这么强而电脑CPU那么差? 
  选择AMD处理器 将承担的风险有什么? 
  超威半导体(AMD)的超线程技术和英特尔(Intel)的超线程技术有差别吗? 

前一个讨论
美国为什么把科技中心放在硅谷?
下一个讨论
CPU 的指令集存放在什么地方?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利