公众号记得加星标⭐️,第一时间看推送不会错过。
在我的日常工作中,我处理海量数据,与大规模的 .parquet 文件、列式数据库以及通过几何或矩阵视角分析信息的算法作斗争。
当我在各种平台上运行复杂的分析查询并执行繁重的表重组或连接操作时,我反复发现,即使是当今最先进的服务器处理器也无法达到其理论峰值性能。罪魁祸首是什么?核心处于空闲状态,等待从内存传输数据。我们超高速的核心仍然囿于40年前的架构思维,将内存视为一个僵化的、线性的一维数组。而现代软件经过精心设计,能够根据相关区域和列对数据进行智能聚类。
当 128 个核心同时运行现代分析工作负载时,这种传统的内存模型就失效了。核心会不断请求散布在 RAM 空间中的狭窄的 64 字节缓存行。为了保持缓存一致性——确保没有核心操作过时的数据——处理器被迫向其内部互连架构发送数百万次广播式监听查询。系统不断地询问“谁拥有 X 号线路?”,导致中央总线拥塞。互连架构本应最大化有效数据吞吐量,却被海量的控制流量阻塞。
这种摩擦让我想到一个简单的问题。起初感觉像是纯粹的技术乌托邦,但最终它打开了一扇窗,让我能够从一个完全独特的视角来分析CPU延迟。
如果我们彻底放弃线性物理内存寻址会怎样?如果我们直接使用 Z 顺序(莫顿布局)格式的内存地址,CPU 内部机制会发生怎样的变化?正是这个问题的答案,让我们今天能够在缓存性能方面取得突破性进展。
架构范式转变
为了将这一愿景与现代硅芯片的物理现实相结合,我采用了尖端服务器处理器的拓扑结构作为我们的基准模型和结构框架:AMD“Turin”Epyc 9005架构,它拥有128个高性能计算核心,对称分布在16个核心复合体(CCX)模块中。通过对这一行业标准进行理论分析,我们可以预见,当打破传统模式,将三维几何结构嫁接到并行计算核心上时,将会发生什么。
为了理解这种方法的影响,不妨将应用程序的数据想象成一个完全还原的魔方。每个彩色面代表表格中的一列或天气模拟中的一个几何维度。在软件中,这些数据在空间上是完全相关的。
然而,当传统处理器将这个魔方加载到 RAM 中时,它会做什么呢?因为它的架构仅限于线性思维——将内存视为一条刚性的一维磁带或一长串扁平的地址——它被迫将魔方展平,将所有 54 个彩色方块排列成一条直线。
硅基解决方案实现尺寸平坦化
当软件需要分析立方体的单个面(例如,代表特定 Parquet 列的蓝色面)时,CPU 核心被迫沿着这条庞大的内存线路进行漫无目的的搜索,以找到那些如今相隔甚远的蓝色方块。这种盲目搜索会使芯片互连线充斥着数百万个广播相干性请求(“下一个蓝色方块在哪里?”)。处理器实际上变成了一个巨大的空间加热器,浪费着大量的功率和周期,试图通过蛮力重建它在数据采集过程中破坏的空间结构。
这种架构彻底改变了一切。通过巧妙地将地址位直接交错在芯片的逻辑核心内,硬件能够原生保留魔方的三维形状,在数据读取过程中不会将其压扁。当核心请求蓝色面时,缓存能够以更高的效率获取整个三维块。所有相邻的蓝色方块都已物理存在,紧密地聚集在一起。
传统上,简单地反转矩阵的遍历方式,就能通过循环交换优化显著提升软件性能。而在我们的架构中,这种优化成为一种原生属性,直接蚀刻在芯片上。软件几乎不受循环顺序导致的性能不对称性的影响:无论按行还是按列遍历数据,缓存命中率都能保持始终如一的高且稳定。
将 L3 缓存重新思考为硬连线数据结构
作为一名实践工程师,我逐渐意识到硬件设计师经常忽略的一个基本事实:L3 缓存归根结底只不过是直接蚀刻在硅片上的一系列复杂的数据结构。
在软件领域,我们早已摒弃了在处理大数据时盲目地扫描海量线性列表的简单方法。取而代之的是,我们依靠几何索引和统计数据跳过技术——利用最小和最大元数据——一次性跳过数GB的无关记录。这种架构的突破性在于,我们有意借鉴了这些先进的软件概念,并将它们直接移植到L2和L3缓存的硅芯片结构上。
Z 阶地址空间的核心架构逻辑
本文的核心论点并非重写计算核心执行指令的方式,而是重写它们组织地址空间的方式。Z 顺序格式转换直接集成到内存管理单元 (MMU/TLB) 中,会带来一个确定性的延迟,即一个时钟周期 (1T)。
在这种模式下,L2 和 L3 缓存以及互连架构都完全基于 Z 顺序地址格式运行。每当处理器与系统 RAM 交互时,一个专用的硬件解码器会将 Z 顺序地址转换回内存控制器所需的标准物理内存布局,转换窗口大小为 1TB。
为了准确了解 Z 阶函数在芯片内部的运行方式,我们必须逐位追踪系统生成的标准 48 位物理地址的转换过程:
偏移隔离:在初始阶段,硬件会移除物理地址的低 6 位(位 0-5)。由于这 6 位表示标准 64 字节缓存行内的固定偏移量,因此它们完全保持不变,并绕过了转换逻辑。
窗口分割:硬件从剩余的地址块(第 6 位及以上)中划分出两个大小相等的窗口:一个覆盖最高有效位(MSB,左半部分),另一个覆盖最低有效位(LSB,右半部分)。这两个窗口实际上充当了虚拟化域中的空间坐标。
通过线路交错: MMU 内部的硬连线逻辑使用完全交替的交错方案重新排列这些分割的位。来自右侧窗口(LSB)的位被映射到新生成的地址的偶数位置(0、2、4、6……),而来自左侧窗口(MSB)的位被映射到奇数位置(1、3、5、7……)。
空间局部性和微缓存到宏缓存的不对称性
最终结果是将物理地址原生转换为 Z 顺序布局。这种二进制排列方式迫使软件中列或行相邻的数据元素在内存中物理上位于同一位置,从而将简单的硬件线路重排转化为整个处理器的几何核心。
达到该阈值后,线性地址消失,缓存层级之间出现结构性不对称。在微观层面上,紧邻核心的私有 L1 和 L2 缓存继续以高频无锁运行,并以细粒度的经典 64 字节行级进行操作,从而保证每个核心本地计算工作负载的原始执行速度。
相反,在宏观层面上,容量高达 512 MB 的 L3 缓存彻底改变了其运行模式,不再以碎片化的数据行来看待数据。L3 缓存以 4 KB 的大块数据(称为“迷你页”)来获取和存储数据。在 Z 顺序布局中,这样的迷你页不再是 RAM 行中的一条长条状数据,而是一个密集的空间超立方体。当 L3 缓存填充其条目时,它会加载一个完整的空间图块,同时捕获矩阵中水平和垂直方向的相邻数据。因此,缓存命中率会大幅提升,因为算法在后续迭代中所需的数据元素已经存在于缓存中。
利用分布式片上网络布隆滤波器降低互连噪声
而另一项重大的架构创新正是在此发挥作用:引入了 4 位切片计数布隆过滤器,它完全分布式,并嵌入到内部片上网络 (NoC) 结构的路由器中。
将此框架映射到 AMD Turin 级拓扑结构上,全局过滤器并非部署单个庞大的集中式模块,而是被分割成 16 个微小的 32 KB 段。这些段分别物理实例化到每个片上网络路由器内部,紧邻 16 个核心复合体芯片 (CCX),整个芯片的总硅片占用空间仅为 512 KB。
通过采用 4 位计数器粒度,该结构在字节级别上实现了完美对齐(每个字节包含两个索引),从而能够在 1TB 到 2TB 的紧凑窗口内完成解码和查找操作。这种全局过滤器在宏观层面上跟踪活动页面,发挥着至关重要的结构性作用:它大幅减少了冗余的窥探操作,并将绝大多数缓存一致性流量通过直接的点对点路由引导至实际存储请求数据的特定 CCX。
L2缓存扩展和Tropf-Hertzog引擎
在私有 L2 缓存层,我们分析了一个关键的结构性决策:将总容量翻倍至每个核心 2 MB。在半导体物理学中,2 MB 的 SRAM 阵列会不可避免地给原生访问路径带来约 +2T(两个时钟周期)的延迟。然而,这与现代软件环境完美契合,因为 2 MB 的 L2 缓存占用空间在数学上直接对应于 Linux 内核中 2 MB 的大页分配窗口。
这种对称性产生了一种高度可预测的行为范式:即使本地延迟增加了 2T,但由于能够在核心级别从单个大页原生锚定整个 2 MB 工作集,因此可以显著抵消这种成本,从而大幅减少对外部缓存层的长尾请求。
为了保持内部执行逻辑的完整性,我们保留了标准的 64 字节缓存行访问粒度。为了保护这扩展的 2MB 空间,我们部署了一个由 8 个边界级最小/最大范围过滤器组成的阵列,这些过滤器由硬件级 BIGMIN 和 LITMAX 函数驱动——利用了 1981 年由德国威斯巴登 Vieweg Verlag 出版社出版的论文《动态平衡树中的多维范围搜索》中提出的 Tropf-Hertzog 算法。
像 Z 阶布局这样的空间填充曲线的致命缺陷在于,它们在从一个象限跳转到另一个象限时会产生巨大的线性间隙。如果在一个几何边界框内执行查询,传统的二分查找会直接失败,因为有效和无效数据域在内存中会混乱地交错分布。
该系统能够平滑地协调这一过程。当内核遍历 Z 顺序地址流且某个路径超出当前查询窗口时,硬件会立即标记出无关的数据间隙。Tropf-Hertzog 逻辑会动态计算当前有效块结束的 LITMAX 值和下一个有效序列开始的 BIGMIN 值。L2 缓存不会执行缓慢的线性扫描或向相邻内核发送冗余的侦听请求,而是直接向前跳跃,完全跳过无效地址区间。
基于这种数学逻辑,范围过滤器和 Tropf-Hertzog 优化在 1T 的严格延迟窗口内,95% 的情况下都能给出数学上合理的“否”结果,从而在 L2 缓存浪费周期搜索缓存行之前,在边界处拦截请求。主 2MB TAG 阵列不再频繁抖动;本地核心的流水线停顿减少,内存端口保持空闲,指令执行的可预测性得到显著提升。
双势垒吸收和硅级功率效率
为了加速大规模流式读取(例如列式 Parquet 文件结构),全局 L3 缓存以 4 KB 的大块从系统 RAM 中摄取数据,从而与原生 Linux 操作系统页面以及高速 NVMe 闪存和 SSD 存储基础架构的块边界严格对齐。
在 L3 缓存层,部署了第二道安全防护措施来缓解误报——特别是分布式片上网络架构产生的概率性误报——防止它们消耗过多周期和电力。这种双重保护结构实例化了第二组 8 个最小/最大范围过滤器,同样通过 Tropf-Hertzog 算法进行了优化。该阵列充当 CCX 边界的宏观屏障:如果垃圾请求绕过了网络级过滤,L3 内部的 8 个几何过滤器会在 1TB 的紧凑窗口内触发快速拒绝,从而避免对 16MB 的 L3 缓存切片进行冗余扫描。
这种双重屏障层次结构(由 L2 层的 8 对和 L3 层的 8 对组成)的直接结果是,L2 和 L3 缓存的主标签阵列都免受由不存在或越界地址请求驱动的持续抖动和扫描的影响。
除了性能的巨大飞跃之外,这种架构还带来了一项关键优势:大幅降低功耗。在传统的微架构中,推测性查找期间,需要持续为数兆字节的 SRAM 标签阵列供电,从而浪费大量能量。每当内核查找可能并不存在于缓存中的数据时,这些大型缓存结构中的晶体管就会被激活,不必要地消耗静态和动态功耗。
在这种新模式下,由于每个缓存岛入口处都采用了计数布隆过滤器和Tropf-Hertzog最小/最大逻辑构成的双重屏蔽,海量高密度存储阵列在绝大多数事务处理期间都保持低功耗状态。只有当缓存命中绝对确定时,它们才会被唤醒并动态启动。通过抑制冗余的SRAM激活,芯片运行温度显著降低,从而节省了宝贵的机架级电力——这对于现代企业数据中心而言至关重要。
SmartNIC/DPU卸载和Tropf-Hertzog几何屏蔽
在现代服务器架构中,智能网卡利用远程直接内存访问 (RDMA) 等高速传输技术,将传入的网络流量直接写入系统内存。然而,这种高速传输也带来了严重的隐性开销:为了确保不读取或写入过时数据,网卡必须不断向中央处理器 (CPU) 查询缓存状态。这种不间断的、寄生性的查询请求会迫使 CPU 内核暂停执行进程数分之几秒,从而在处理器执行繁重的大数据或人工智能工作负载时,引发级联的流水线瓶颈。
我们的几何架构打破了这种恶性循环,它赋予智能网卡直接、超低延迟地访问位于缓存层级边界的 Tropf-Hertzog“几何屏蔽层”的能力。网卡无需发出会唤醒整个处理器的破坏性窥探查询,而是在 1T 的极短时间窗口内(仅几纳秒)查询屏蔽层。
这种硬件融合带来的运营效益是巨大的:
零核心中断: CPU 核心完全不受负载影响,流水线停顿率为 0%,并继续以最高频率运行,而不会将宝贵的时钟周期浪费在网络一致性管理上。
吞吐量饱和:由于 SmartNIC 不再受 CPU 过载导致的队列延迟限制,实际网络带宽得以大幅扩展。
硅芯片节能:消除内部片上网络 (NoC) 架构中的冗余控制流量,可大幅降低电力消耗。
我们把历史上一直是架构争论主要来源的界面,转变为一种静默、超高效的协作——这是每秒处理数百万个网络数据包的企业云节点的理想范式。
横向扩展:插槽间机制和 CXL 流量节省
Z 顺序布局和宏块方法巧妙地利用大事务来分摊互连延迟,从而解决了这个问题。当第一个插槽向第四个插槽请求数据时,4 KB 的宏粒度确保了密集空间超立方体的传输。系统只需支付一次总线延迟,即可接收大量坐标及其相邻数据点,这些数据将被立即使用。
同时,配备计数布隆过滤器的 16 个 CCX 与 L2 缓存的 Tropf-Hertzog 逻辑协同工作,直接从源头抑制噪声,起到结构隔离器的作用。如果本地过滤器发出“否”信号,则请求会在芯片上被丢弃,甚至在它能够通过主板到达相邻插槽之前就被丢弃。处理器间总线不会受到垃圾流量的干扰,从而确保其带宽完全用于实际数据有效载荷。
展望未来,超越主板的限制,数据中心的未来属于解耦架构,在这种架构中,海量的内存池被分离到独立的机架中,并通过计算快速链路(CXL)协议进行访问。然而,CXL 也带来了自身的高昂成本,即由光纤布线引入的物理线路延迟。
在这种情况下,我们全局的布隆计数过滤器(通过硬件扩展来跟踪 CXL 映射的地址空间)将真正成为 CXL 流量节省器。在请求通过铜缆或光纤线路实际发送到相邻机架之前,本地的超高速晶体管过滤器会检查地址占用情况。如果检测到缓存未命中,系统会立即中止操作,确认相关页面尚未初始化或不存在于该地址空间。
请求在芯片边界处立即终止。这种机制瞬间消除了大约 250 纳秒的寄生尾延迟,并显著节省了功耗,确保只有在几乎绝对确定命中的情况下,事务才会通过 CXL 离开芯片。当 CXL 遍历发生时,它会检索一个完整的 4 KB Z 顺序布局的迷你页面,只需支付一次物理距离代价即可获得完整的超立方体分析数据。
这些创新并非为执行任意工作负载的传统通用处理器而设计。这是一种高度专业化的处理器设计,其结构针对传统高性能计算、人工智能和数据分析等领域的前沿应用进行了优化。
这些微架构修改专门针对软件环境进行设计,使其在数据规模庞大、传统基础设施难以应对的领域(例如地震处理和石油天然气勘探、人工智能/机器学习、分布式 SQL 分析引擎、科学计算、高级工程模拟、航空航天、国防和空间技术)中表现出色。
任务完成:打破存储墙
几十年来,软件工程师花费了大量精力,运用复杂的位操作技术,在代码库中手动模拟空间局部性。然而,通过将缓存层次结构视为一种值得进行原生优化的数据结构,我们已将整个范式直接引入到处理器的硬连线逻辑中。
在 Z 序地址布局、由分布式计数布隆过滤器驱动的智能屏障、Tropf-Hertzog 范围引擎以及宏级 4 KB 块管理的驱动下,系统内存被有效地转化为一个完美组织的多维映射。我们消除了协议开销,减轻了互连架构的负担,并证明了可以永久突破内存壁垒——最终为计算核心提供了一个能够原生理解数据几何结构的缓存层次结构。
(来源:编译自nextplatform)
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4533期内容,欢迎关注。
加星标⭐️第一时间看推送~
![]()
![]()
求推荐
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.