如何提高内存的效率和性能?
- Semiconductor Engineering
文︱BRYON MOYER
来源︱Semiconductor Engineering
编译 | 编辑部
随着数据量不断增长,处理现有资源的方法不断优化,逐渐为内存池和共享的发展提供了驱动力。使用这些方法,内存可由许多不同的机器或处理单元按需访问。
CXL和OMI两种协议能够简化这些过程,从on-chip/near-chip内存到存储,这是一种“可组合”的内存。基本上是通过提高抽象级别,可以按需为任何特定任务预配内存,然后在该任务完成后为其他任务分配内存。从理论上讲,这能够提高系统性能和效率。但是,对于众多应用或架构来说,哪种协议才是物有所值的最佳选择,目前还尚未完全弄清楚。
“在内存池应用中,SoC或控制器能够分配给CPU的任何内存空间都由结构管理器统一管理,这是一个由CXL定义的标准软件实体,”Rambus数据中心产品营销副总裁Mark Orthodoxou指出。“对CPU来说,该结构管理器能够管理物理内存区域的分配,以至于它看起来就像有一个动态增长和收缩的内存池。”

内存池与不同使用者之间的内存共享相关,但又有所不同。“内存池和内存共享之间的区别在于,使用池化,任何给定的CPU只能访问其分配的内存区域,”Orthodoxou表示。“内存共享更适用于大型机器学习训练集和工作负载,例如500 GB、1 TB、3 TB大小的训练集。如果你想通过多个CPU运行并计算,那么你将需要移动数据。那么,我们如何减少数据移动并减少数据中心每个CPU的内存占用呢?方案是应用内存共享。”
内存共享需要一致性。但这与处理器一致性不同,例如多核处理器所需的一致性。CXL解决了应用一致性问题,即处理可能在同一问题上协作的不同用户间更高级别的一致性。相比之下,OMI没有一致性功能,而是依靠处理器缓存一致性基础结构来处理。
“到目前为止,我们已经在单片缓存架构上安装了单片内存,”西门子EDA验证IP产品经理Gordon Allan表示。“随着我们引入多个处理元素,一致性逐渐成为一种需求。因此,对内存而言,这种趋势促使我们以不同的方式去思考,同时考虑应用所需的数据和不同类型的内存。这是分解过程的一部分,我们能够以更细粒度的方式描述我们的存储需求,而不会在其不需要的一致性属性上超支。因此,不同类型的数据可以具有不同级别的重复性或一致性。这些属性都由CXL等结构支持,其中处理单元可以逐个内存范围地指示一致性应如何工作。”
CXL 3.0将支持这方面的完全一致性,但CXL 3.0尚未公开。因此,没有关于这种情况如何发生的细节。
在处理器之间传递工作负载
CXL还允许将内存“传递”给不同的节点进行处理。在这些情况下,来回传递的不是实际数据,而是类似于指针的东西,使用地址转换将物理地址映射到每个用户的个人内存映射。
“结构管理器能够协调一切,”Orthodoxou称。“例如跟踪请求发出方,找到其请求地址,以及如何映射到控制器后面内存的物理表征。”
对于用户来说,这在很大程度上仍然是隐藏的。“细节包含了许多来回任务处理,以便保持指向数据的指针的抽象,”Allan指出。
但这并不是唯一隐藏在视线之外的东西。对于各种应用来说,目前还不清楚哪种协议更快,因为CXL的延迟影响与OMI的测量方式不同。虽然OMI谈论的是增加现有延迟的延迟量,但CXL只谈到了往返互连速度。因此,40ns延迟意味着每个方向的传输量为20ns。
Synopsys CXL技术营销经理Richard Solomon明确说明了测量方法:“这是出现在发送端数据包的第一位,以及出现在接收端数据包的第一位。”
值得注意的是,另一个内存抽象工作Gen Z也已经折叠到CXL中。“Gen Z已经承认CXL拥有主流和临界质量,因此他们正在就此项合作探讨细节,”艾伦说。
可能的重叠
对于CXL是否也可以解决邻存问题,似乎存在分歧或不确定性。许多行业发言人倾向于支持CXL或OMI或其他技术,他们不确定“其他”究竟是如何工作的。特别是在计算延迟时,并不是每个人都清楚这到底意味着什么。
CXL有一个CXL.mem配置文件,据说它用于近端内存。它还通过PCIe互连,而不是使用OMI或DDR总线。因此,在为CXL构建的系统中,将存在托管存储卡的PCIe插槽,而不是DIMM插槽。
“例如,我们看到人们构建了简单的DDR接口,”Solomon表示。“它有一个桥接芯片,一侧配置有CXL,另一侧放置了DDR通道。芯片具备计算能力。”
从芯片面积的角度来看,OMI和PCIe都使用串行方法,因此与当前并行方案相比,它们都减少了引脚数量。“现在,您将减少CPU上的PCIe通道,假设64个PCIe Gen 5通道被分成16个通道堆栈,”Orthodoxou称。“然后这些堆栈可以分为2、4、8或16。按照现有CPU的设计方式,这些堆栈中都能够在CXL模式或PCIe模式下运行。从面积和周界效率的角度来看,与OMI实际上没有区别,因为它们都只是具有一定数量通道的串行接口。在这方面,我认为CXL和OMI之间的唯一区别是,对于OMI,这些DDIMM的实现非常具体。因此,波形因素非常独特。就CXL而言,大多数人都在谈论通过驱动波形因素或添加卡槽来实现内存扩展。”
OMI更加独立,因为它不依赖于任何特定代际的PCIe。“OMI的速度等级与PCIe电气系统没有紧密耦合,”他表示。“OMI与数据结构和处理器的耦合更加紧密,这比传统上实现的CXL具有更低的延迟。CXL子系统耦合到PCIe总线所在的处理器中,因此您会遇到轻微的延迟问题。”
这是否切实可行,在一定程度上取决于更广泛的整体情况。“老实说,CXL不会有很大的不同,可能是额外的5或6ns,来回一次,”Orthodoxou称。“那可能是在噪音中。”
其他人则指出了更大的延迟问题。一般来说,由于CXL倾向于仅引用互连延迟,而OMI引用完全访问延迟(或增量),因此这是一个苹果与橙子之间的比较。一些未对外公布的文件详细说明了这些数字如何得出的。
对于近端内存来说,似乎分为两个阵营。一个阵营表示从简单定位上看,OMI用于近端内存,CXL用于远距离内存。即使您可以将CXL用于近端内存,也没有人会这样做。
“CXL当然正在解决中远端内存问题,”Allan称。“它不直接适用于近端。”
那么OMI处于什么位置呢?“OMI完全是对CXL的补充,因此应该被CXL联盟采用,如果没有别的,可以避免它们在行业中造成的所有混乱,”OpenCAPI联盟的技术总监兼董事会顾问Allan Cantle表示。
另一个阵营认为CXL拥有最强大的生态系统,因此OMI不会在IBM的生态系统之外使用。
“除了POWER产品组合和面向HPC应用的衍生产品之外,OMI尚未广泛采用于其他方面,”Orthodoxou表示。“其他CPU供应商和GPU供应商都有一个与CXL相交的路线图。这不是一个协议在内存附加方面比另一个协议更好的问题。”
Cadence知识产权集团产品营销组总监Marc Greenberg表达了另一种看法。“我不认为OMI与CXL的讨论是‘近与远’的问题,”他说。“我把它看作是‘版本N与版本N+1’。CXL.mem是最新的迭代产品,为服务器类型的系统提供了高带宽和容量的DRAM解决方案。”
目前还没有出现用于近端内存的CXL的商业示范,OMI也处于早期阶段。
总结
但这并不会降低CXL或OMI的价值。这些抽象技术将会为软件开发人员、芯片设计人员、系统构建商和系统集成商提供支持,从而让他们不必为内存细节忧虑。
SoC设计人员将能够为近端和远端存储器构建“通用”接口,并使该SoC在各种可能的系统配置中工作。系统构建商和集成商在分配内存和处理器方面将具有更大的灵活性,以便为更多工作负载研发更多系统。随着数据流量的减少,软件运行需要更少的能量。软件开发人员可以创建可在更广泛系统中运行的程序。
至于OMI和CXL之间的差异,市场最终会解决这个问题。CXL应用广泛,尽管不一定用于近端内存。近端内存可能最终成为CXL或OMI,如果两个抽象标准均未被采用,则仍然保持DDR或HBM。
Orthodoxou认为这给数据中心带来了根本性的变化。“对更大内存带宽,更多内存容量和更少内存故障需求,或三者兼具,将改变数据中心内存互连的性质。”