与CXL类似,SDXI规范优先考虑高效的数据移动;它是存储器到存储器数据移动器和加速接口的标准。

计算快速链路(CXL)规范可以说是半导体行业中成熟最快的接口之一。它的广泛接受意味着许多供应商设计的产品建立生态系统,存储网络行业协会(SNIA)是最新一个为进一步改善数据移动而努力的组织。

11月28日,SNIA介绍了智能数据加速器接口(SDXI)规范与CXL类似,SDXI规范优先考虑高效的数据移动;具体地说,SDXI是存储器到存储器数据移动器和加速接口的标准。该规范的起源可以追溯到2020年9月,当时SNIA技术工作组(TWG)开始实现直接内存访问(DMA)数据移动设备的概念,并解决了常见的限制。

DMA的作用是卸载基于软件的复制循环,以释放CPU执行周期。尽管这个概念是众所周知的,但DMA的采用通常仅限于特定的特权软件和I/O用例,这些用例使用的是不向前兼容的设备特定接口。这些限制意味着用户模式应用程序在非虚拟化环境中很难使用,而在多租户虚拟化环境下几乎不可能使用。


DMA数据移动器设备卸载基于软件的复制循环以释放CPU执行周期的概念并不新鲜,但其采用大多局限于特定的特权软件和I/O用例,这些用例使用了非常特定的设备接口,这些接口不具有前向兼容性。(来源:SNIA)

SDXI适用于CXL和异构计算

SNIA TWG主席Shyam Iyer在SDXI平台数据移动器的在线简报会上表示,SNIA开发了SDXI标准,以提供一个体系结构接口来解决当前的DMA限制。除了克服DMA的现有限制外,SDXI还将支持与CXL公司,目前已进入第三次迭代。

Iyer表示,当今系统体系结构的大多数需求都始于应用程序级别,计算需求通常由CPU解决。当计算发生时,数据存储在内存中,内存与CPU共享一致性关系以提高性能。

“当应用程序需要扩展时,它会添加更多的线程,”他说。Iyer补充道,这意味着CPU上有更多的内核,而每当数据需要从内存中传输出来时,都会使用I/O设备,并对地址延迟和带宽进行优化。“这是一种运行良好的系统架构,但最近,我们看到对应用程序的需求不断增加,这意味着典型的计算架构正在发展。”

Iyer解释说,如今的典型架构有CPU和特定于应用程序的标准部件,包括驱动器、网络接口控制器和现场可编程门阵列(FPGA),所有这些都试图提高应用程序性能以及许多存储器类型。混合使用链路和结构(如CXL),一切都可以连接。他说:“这意味着内存类型通过这些类型的链接和结构真正民主化,应用程序可以利用所有这些。”。“但它们也有相同的设计限制,无论是延迟、带宽、一致性还是控制。”

这一切都与数据移动有关

从基本层面上讲,CXL就是要轻松地将数据移动到可用的最佳资源,包括内存或存储,部分原因是减少了数据必须移动的距离。随着最近成立的CXL联盟,它很快成为一种标准已发布3.0版本在8月份的闪存峰会上。CXL联盟还收购了GenZ联盟的知识产权,具有类似特征的规范。OpenCAPI资产也被合并到CXL联盟中,以推动标准的发展。

据CXL consortium撰稿人、AMD的CXL系统架构师Rita Gupta介绍,CXL规范在行业中得到了非常积极的参与,“名人录”参与了该联盟。“CXL正在成为一致I/O标准的行业焦点。”

Gupta表示,与DMA的努力一样,也有适当的I/O一致性尝试,但过去几年的趋势不仅反映了对数据处理和计算的需求增加,还反映了对异构计算的需求。这种需要意味着将不同类型的存储器和设备连接在一起并一起执行。“所有这些都意味着您需要越来越多的内存容量和带宽。”

CXL是第一个全面解决I/O互连问题的开放标准。作为处理器的高速缓存一致性互连标准,CXL利用PCIe基础架构具有三种协议的混合和匹配:CXL.io、CXL.cache和CXL.memory。

“这是一个低延迟的标准,”Gupta说。“如果你看看CXL.memory和CXL.cash访问,它们的目标是接近CPU延迟的地方。”她补充道,CXL还提供了不对称的复杂性,从而减轻了设备实现维护一致性的负担。

三种CXL协议的混合和匹配允许许多不同的用例。Gupta说,例如,您可以将具有CXL.io和CXL.memory接口的设备视为CXL内存缓冲区,而使用所有三种协议的设备可以由主机管理其内存。

CXL的第一次迭代引入了三种类型的设备,主要功能是点对点连接,而2.0版则添加了扇出、切换和内存池。有了CXL 3.0,重点转向了可扩展性。古普塔说:“如果你看看CXL规范的进展,它不仅仅是看我们今天面临的计算行业的问题,而是看未来的问题。”。

Gupta指出,由于CXL是一个与介质无关的接口,因此可以在系统中添加成本较低的内存,以降低总体拥有成本(TCO)。这是因为内存分层使“热”数据能够放置在更快的内存中,而“冷”数据可以放置在较慢的层中。“这就是数据时刻变得极其关键的地方。”

Gupta解释说,有了这种使用模型,可以在降低TCO的同时向系统添加容量和带宽,并且一个内存位置可以由多个主机访问,并通过CXL协议她说:“这些使用模型旨在减少内存滞留,因为如果你看看非常昂贵的内存资源,它们会在不同的系统中得到有效利用。”。“这种资源分类有助于提高数据使用效率。”

SDXI加速了CXL的流动性

前进到异构计算Gupta说,数据移动变得越来越重要。“CXL所能实现的是一个非常流畅和灵活的内存模型。”

不同的内存类型、扩展器和加速器都可以作为一种资源使用,但至关重要的是,数据移动要尽可能高效。

Iyer说,今天的数据移动通常是一种基于软件的内存拷贝,它使用稳定的指令集架构——应用程序可以很容易地使用这个标准,因为它很熟悉。然而,Iyer表示,由于计算机被用来执行数据复制,应用程序性能下降。同时,现有DMA的问题在于,它们都是特定于供应商的。“在这些DMA引擎的帮助下,用户级软件没有标准化的访问权限。”

这就是SDXI变得至关重要的原因——“X”代表加速器。Iyer表示,SNIA提出的标准是一种可扩展、前向兼容且独立于I/O互连技术的存储器到存储器数据移动接口。“SDXI接口实现可以存在于不同的形状因素中。”

例如,Iyer表示,它可以以集成的方式在CPU上实现,也可以在GPU或FPGA等离散芯片中实现,甚至可以在智能I/O设备中实现,同时该设计消除了所有的软件上下文隔离层,以提高性能并实现应用程序的直接用户模式访问。


基本的SDXI体系结构由一些智能数据加速器组成,这些加速器被枚举为一个或多个SDXI函数。(来源:SNIA)

与CXL一样,SDXI针对不同类型的内存。他说,通过拥有一个本质上是体系结构的规范,您可以构建利用相同接口的额外卸载。

在许多用例中,标准化DMA(如SDXI)是有价值的,因为它允许应用程序以描述符的形式指示工作项——数据复制可以在应用程序可以自由执行其他事情的同时进行,并且在复制完成后会收到通知。Iyer指出,使用SDXI可以以不同的方式执行的另一个场景是数据的存储和检索,这通常是通过多个内存缓冲区副本来完成的,这可能会降低性能,即使在内存体系结构中有持久内存区域的帮助下也是如此。

Iyer说,SDXI大放异彩的第三种情况是,当两台机器想要向彼此的地址空间执行数据移动时,可以通过加速器进行优化,该加速器可以安全可靠地从一台客户版机器读取数据缓冲区,旋转它,然后将数据缓冲区写入第二台虚拟机。“这是两全其美。”

Iyer说,尽管SDXI带来了好处,但这项工作仍在进行中。目前,SNIA的TWG正在探索如何在发出数据移动请求之前在多个地址空间之间建立连接,以及SDXI如何在CXL和异构环境中更好地工作。“它与体系结构无关,与实现无关,与互连无关,”他说。

>>这篇文章最初发表在我们的姐妹网站上,EE时间.