AMD的3D V-Cache技术让游戏玩家非常兴奋,这也让人们再一次认识到了高速缓存对于CPU的重要性。那么,缓存对CPU的意义究竟有多大呢?
CPU为什么要缓存?
现在的CPU无一例外都具备多级缓存,那么为什么CPU需要缓存呢?其实很久以前,PC使用的处理器如80286是没有缓存的,CPU和内存的频率速度都很慢,速度都是同频率的,所以CPU直接访问内存就够了——到了80386的时候,芯片组开始提供了缓存(这时候CPU自己不带缓存)设计,有些主板会提供一个64KB的缓存(甚至128KB)来“打辅助”,原因就是CPU频率开始快速提高,内存频率跟不上了。
【资料图】
随着CPU频率的快速攀升,内存明显跟不上了——跟得上频率的内存价格突破天际。这样频率之间的落差让CPU和内存的沟通不再“同频”,缓存的作用越发重要,它可以作为一个速度缓冲的水池,平衡CPU和内存之间频率不相等带来的速度差。而且,内存容量的快速增长又带来了另一个问题:它需要更复杂的控制电路来寻址内存位置。说白一点,当乱序读取内存数据的时候,内存的响应时间将变得更不可测,显然这是CPU“等不起”的,CPU就只能浪费指令周期,进行无谓的等待。
所以,即便是外置缓存也不够看,因此片上(CPU内)一级缓存诞生了、随后二级缓存也加入了,这就像水坝的作用一样,上游的水要阶梯式储运。当然,关于一二级缓存的差异(包括数据+指令缓存的区分)还有很多技术细节,这里就不展开讲了。
多级缓存、尤其是三级缓存究竟有什么最直观的作用呢?对于消费级应用来说(个人终端),密集计算几乎是碰不到的事情(CPU长期100%占用率计算),因此缓存的延迟高或低将发挥更关键的作用。比如说游戏,如果CPU三级缓存拥有更低的延迟,意味着渲染帧可以更快速的传输到GPU进行处理,游戏帧率自然会明显提升。所以,这也是为什么当初AMD推出锐龙7 5800X3D的跟本原因(虽然对AMD而言也是个意外发现)。
三级缓存不够了?
那么,现在的三级缓存结构是不是就够用了呢?答案是也不是。
在多核心时代,三级缓存的必要性大幅增加,它是为了协调不同核心中的两级缓存数据,充当他们的缓冲区(一、二级缓存命中率约80%,总命中率约为96%)。因此,你可以看到,三级缓存的容量在随着核心数量的增加而增加。
AMD的3D V-Cache技术本质上还是三级缓存,但不同于传统三级缓存,它是一个“外挂”,通过垂直堆叠的方式“安装”到CPU的晶体之内,简单说,它是应对AMD独特的CCD结构+大容量低成本三级缓存的一种技术实现方式。毕竟,缓存占用面积十分巨大,在寸土寸金的CPU晶体内,缓存甚至比核心本身都来得大,AMD这样的设计明显更为灵活,成本也更加可控。
那么,四级缓存还有必要吗?可以说,Intel和AMD选择了不同的路径去解决这个问题——目前的信息显示,Intel将在第十四代酷睿处理器Meteor Lake中置入四级缓存设计:Intel给这种四级缓存取了个代号开发代号“Adamantine”(艾德曼合金),并称之为“封装内缓存”(on-package cache),意味着它并没有集成在CPU核心内部,而是与之共同封装(有没有熟悉的味道?)Intel指出,四级缓存的访问时间大大小于内存,可用来改善主CPU与安全控制器之间的通信效率,大幅提高游戏性能。同时,它可以和BIOS UEFI配合,优化启动流程,缩短开机时间。
目前,还没有进一步的消息显示,但是根据以往的认知,Intel有可能使用的是eDRAM而非SRAM来充当四级缓存——有机会我们单讲二者的区别,简单说成本上eDRAM更便宜,绝对性能上SRAM明显更好,但是面积大且价格昂贵。
为什么要说以往的认知呢?在2013年,Intel推出了Haswell架构处理器,其核显就采用了eDRAM显存——在必要的时候eDRAM显存将充当四级缓存。当然,在实际的使用中,这个四级缓存设计并没有特别的性能提升。显然,在Meteor Lake上,即便使用的还是eDRAM缓存,其设计必然会与Haswell架构有巨大的差异。
其实无论是AMD的3D V-Cache技术(目前已经第二代,锐龙7 7800X3D)还是即将出现的Intel四级缓存设计,无非解决的还是数据缓存的问题,技术路线的差异变得更加有趣了。不过有一点是明确的,下半年的次世代CPU性能之争,游戏玩家可以乐上一阵子了!