---
title: x86 内存技术的演进
taxonomy:
    category: docs
---

最初的 x86 架构只支持 32 位寻址，最大物理内存限制为 4GB。但随着扩展模式（Extended Mode）的引入，x86 架构可以支持 64 位寻址，最大物理内存容量可达到几十 TB。现在容量够了，该怎么继续提升内存的性能呢？

### 内存子系统优化

x86 发展出了两个主要的内存子系统优化方案，显著提升了 x86 体系计算机的内存速度。

1. **多级缓存**：现代 x86 架构通常配备多级缓存（L1、L2、L3 等）。这些高速缓存位于处理器核心旁边，可以更快地存取数据，减少对内存的读写操作。
2. **NUMA架构**：非一致性存储访问（NUMA）架构是在多处理器系统中常见的一种设计。它通过将内存分为多个区域，并为每个处理器分配特定的内存区域，减少了不必要的远程内存访问，提高了内存访问的性能。

### 最近十年内存其实一直在变慢

众所周知，近十年来服务器 CPU 核心数量激增，内存通道也从最初的双通道逐渐发展至如今的 12 通道。然而，相较于内存带宽，CPU 核心数量的增长更为迅猛：这些年来，每个 CPU 核心所能获得的内存带宽持续下降，导致每台虚拟机的内存读写速度反而变慢。

### 英特尔对 x86 内存体系的限制

几年前，微软统计了其服务器各项部件的总成本，惊讶地发现[超过 50% 的服务器费用都用于购买内存条](https://www.semianalysis.com/p/cxl-enables-microsoft-azure-to-cut)。内存不仅硬件成本高昂，现有的内存架构还导致内存在虚拟机内部存在巨大的浪费：几乎每台物理服务器都浪费了大约 50% 的内存。而这实际上是英特尔有意为之的。

x86 的内存子系统一直封闭不开放，直到近年来机器学习的兴起使人类社会对服务器内存容量的需求再次攀升。在英伟达股价不断飙升之后，英特尔才被迫开放了 CXL 标准，基于 PCIe 5.0 的高带宽，使得内存能够像硬盘一样自由扩展。与此同时，由于 CXL 的高带宽通信能力，机器内不同内存模块之间（如内存、显存、网卡缓存）的数据传输速度也得到了显著提升。
