现代处理器性能的瓶颈在很大程度上、并非是计算单元数量、调度单元效率所呈现,而是广泛且深刻存在的存储性能瓶颈。在冯诺依曼架构体系下,计算单元执行的所有数据,都需要配合存储单元不断的存入、取出。但是,计算单元的计算速率和存储单元的存取速率之间存在着巨大的“存储鸿沟”。比如消费级处理器核心频率已经广泛突破6GHz、最多拥有16个核心的今天,单个处理器核心所享受到的内存数据带宽却没有太大的变化。
以酷睿i9-14900K为例,这款处理器拥有24个核心,如果搭配DDR5 8000MT/s的内存组成的双通道,理论带宽维持在8000MT/s×128bit÷8÷1024=125GB/s,24个处理器核心每单核心分配到的内存带宽也仅仅只有5.20GB/s。相比之下,十年前的酷睿i7-4790K,支持DDR3双通道,搭配DDR3 1600内存,单个处理器核心分配到的内存带宽为6.25GB/s。十年过去,处理器单个核心的性能翻倍都不止,但是针对单个核心的内存带宽却不升反降。
由于处理器核心数量暴增、单核性能提升进一步拉大了处理器和存储器之间的“存储鸿沟”,为了尽可能降低内存带宽不足对整体系统性能提升的负面影响,人们采用了很多方法予以处理或者说“优化”,比如整体系统设计为内存延迟做掩蔽,乱序执行的广泛应用、SIMD和MIMD等架构的使用等等。但是这些软件的手段也终究会用尽。
最根本的手段还是在处理器的计算核心和内存之间采用多级缓存架构,通过L0、L1、L2、L3的依次排布,来不断放大数据命中率,降低数据存储延迟并掩盖内存带宽不足带来的系统性能损失。这也是为什么目前处理器的L2缓存、L3缓存在不断增大的原因。比如十年前的酷睿i7-4790K,每核心L2只有256KB,L3则是4核心共享8MB。现在的Raptor Lake的L2最大增大到2MB、L3则多个核心(核心簇)共享36MB,显著增大。
但是,这依旧不够。尤其是L3缓存。L1、L2、L3缓存都采用的是昂贵的SRAM,这种存储器每1bit数据需要使用6个晶体管。由于L3这类SRAM对整体速率影响如此巨大、如此重要但是如此昂贵,因此所有处理器厂商在设计的时候都“精益求精”、极限操作,在多项参数中间极尽权衡,目的就是尽可能多的用最少的晶体管资源实现最高的性能、最低的成本。因此,我们目前看到的普通处理器的L3缓存,就是其成本和技术的最佳平衡点。如果没有外来的帮助,我们的消费级处理器应该也就这样了,存储的鸿沟只能被尽量弥合而不可能再缩小一点点。
好在,AMD推出了一项全新的技术:3DV-Cache,这个技术极大的缩小了“存储鸿沟”,带来了部分应用的性能飞跃。
以酷睿i9-14900K为例,这款处理器拥有24个核心,如果搭配DDR5 8000MT/s的内存组成的双通道,理论带宽维持在8000MT/s×128bit÷8÷1024=125GB/s,24个处理器核心每单核心分配到的内存带宽也仅仅只有5.20GB/s。相比之下,十年前的酷睿i7-4790K,支持DDR3双通道,搭配DDR3 1600内存,单个处理器核心分配到的内存带宽为6.25GB/s。十年过去,处理器单个核心的性能翻倍都不止,但是针对单个核心的内存带宽却不升反降。
由于处理器核心数量暴增、单核性能提升进一步拉大了处理器和存储器之间的“存储鸿沟”,为了尽可能降低内存带宽不足对整体系统性能提升的负面影响,人们采用了很多方法予以处理或者说“优化”,比如整体系统设计为内存延迟做掩蔽,乱序执行的广泛应用、SIMD和MIMD等架构的使用等等。但是这些软件的手段也终究会用尽。
最根本的手段还是在处理器的计算核心和内存之间采用多级缓存架构,通过L0、L1、L2、L3的依次排布,来不断放大数据命中率,降低数据存储延迟并掩盖内存带宽不足带来的系统性能损失。这也是为什么目前处理器的L2缓存、L3缓存在不断增大的原因。比如十年前的酷睿i7-4790K,每核心L2只有256KB,L3则是4核心共享8MB。现在的Raptor Lake的L2最大增大到2MB、L3则多个核心(核心簇)共享36MB,显著增大。
但是,这依旧不够。尤其是L3缓存。L1、L2、L3缓存都采用的是昂贵的SRAM,这种存储器每1bit数据需要使用6个晶体管。由于L3这类SRAM对整体速率影响如此巨大、如此重要但是如此昂贵,因此所有处理器厂商在设计的时候都“精益求精”、极限操作,在多项参数中间极尽权衡,目的就是尽可能多的用最少的晶体管资源实现最高的性能、最低的成本。因此,我们目前看到的普通处理器的L3缓存,就是其成本和技术的最佳平衡点。如果没有外来的帮助,我们的消费级处理器应该也就这样了,存储的鸿沟只能被尽量弥合而不可能再缩小一点点。
好在,AMD推出了一项全新的技术:3DV-Cache,这个技术极大的缩小了“存储鸿沟”,带来了部分应用的性能飞跃。