万字长文|下一代系统内存数据加速接口SDXI解读

本文内容分为5章节,总计10535字,内容较多,建议先收藏

1.SDXI技术产生的背景

2.SDXI相比DMA的优势

3.SDXI实现原理与架构

    3.1 描述符环原理解读
    3.2 上下文管理介绍
    3.3 AKey与RKey解读
    3.4 错误日志和状态管理
    3.5 跨Function访问

4.SDXI与CXL协同原理

5.SDXI几种应用场景


1.SDXI技术产生的背景

在传统计算模式中,数据在不同组件间移动往往依赖于软件层面的处理,例如常见的内存复制操作(memcpy),这种方式虽然稳定,但会占用宝贵的处理器周期,导致应用性能下降。同时,传统的数据移动缺乏有效的虚拟化支持,且各厂商的直接内存访问(DMA)引擎及其接口没有统一的标准,给用户级软件的利用带来了不便。

此外,异构计算环境的兴起,包括CPU、GPU、FPGA、NICs等ASSPs(应用专用标准产品)的融合,以及虚拟化和容器化的普及,都对数据移动提出了更高要求。

SDXI(Smart Data Accelerator Interface,智能数据加速接口)标准正是在这样的背景下应运而生,它的设计旨在解决上述问题,提供了一个标准化、可扩展、面向未来的内存到内存数据移动和加速接口。

这个接口独立于I/O互连技术,意味着无论底层硬件如何变化,只要遵循SDXI标准,软件都能保持良好的兼容性和稳定性。SDXI标准特别强调了对虚拟化友好的编程接口,支持用户模式和内核模式操作,旨在加速虚拟化工作负载。

SDXI标准的制定工作由SNIA SDXI技术工作小组(TWG)负责,该小组成立于2020年6月,汇聚了行业内多个领先企业的技术力量。根据记录,SDXI v1.0版本的贡献者包括来自多家知名公司,主要包括惠普企业(HPE)、戴尔(Dell)、IBM、AMD、Micron、NetApp、SK海力士、西部数据、三星、微软等23家会员公司,以及89名个人成员。

2022年正式发布了SDXI v1.0版本,标志着一个全新的数据移动加速时代开启,为高性能计算、人工智能、数据中心存储等领域带来革新。

2.SDXI相比DMA的优势

DMA数据移动器是一种硬件机制,旨在减轻CPU执行循环数据复制任务的负担,从而释放CPU周期以执行其他计算密集型任务。这一技术的引入,旨在提高系统整体的性能和效率,特别是在大量数据传输操作频繁发生的场景下。

扩展阅读:

  • 浅析CXL P2P DMA加速数据传输的原理

  • PCIe P2P DMA全景解读

尽管DMA数据移动器的概念已被广泛认识,其应用却主要局限于特定的、具有特权的软件和I/O场景中。这些场景通常涉及到高度特定化的设备接口,这些接口往往不具备向前兼容性。具体来说,这种限制在两个方面尤为突出:

  1. 非虚拟化环境中的用户态应用挑战:在没有虚拟化的环境中,由于DMA数据移动器的使用受限于特定的、非通用的接口,普通用户态应用很难直接利用DMA来提升数据处理性能。这主要是因为DMA操作通常需要较高的系统权限,而普通用户态程序默认不具备这样的权限。

  2. 多租户虚拟化环境下的近乎不可能性:在多租户的虚拟化环境中,情况更为复杂。在这种环境下,多个虚拟机共享物理资源,每个虚拟机都有自己的内存空间和隔离的执行环境。使用传统的DMA机制,不仅需要解决如何安全地跨虚拟机边界移动数据的问题,还要解决如何在不破坏虚拟机隔离性的前提下,有效地分配和管理DMA资源。由于传统的DMA设备接口缺乏对虚拟化环境的支持,使得在这样的环境中实现高效的DMA数据传输变得极为困难,几乎不可行。

SDXI作为一个标准化、可扩展、独立于I/O互联技术的内存到内存数据移动和加速接口,旨在打破传统DMA的局限,使得数据移动在现代异构计算环境中变得更加高效和灵活。

SDXI Platform Data Mover是一个创新的技术框架,它设计用于克服现有数据移动解决方案的一系列局限性,从而满足现代计算环境中日益增长的高效数据处理需求。SDXI的优势的具体包括以下几个内容:

  1. 可扩展、向前兼容的接口:SDXI提供了一个与具体数据移动实现及底层I/O互连技术无关的接口,意味着无论未来数据传输技术如何演进,只要遵循SDXI规范,新旧硬件和软件就能保持良好的兼容性。这种设计允许SDXI随技术进步不断纳入新功能而不至于过时。

  2. 用户模式数据移动的标准接口:一旦连接建立,SDXI允许在用户模式下直接进行地址空间之间的数据移动,无需特权软件介入,降低了数据传输的复杂度和延迟,提高了应用层的性能。

  3. 特权软件控制接口:SDXI定义了一套标准接口,供特权软件(如hypervisors或系统管理层)来管理数据移动器的连接状态和跨多个地址空间的数据传输,增强了系统的可控性和安全性。

  4. 可抽象化或虚拟化的接口:SDXI支持其接口被特权软件抽象或虚拟化,这样可以更容易地在不同的服务器之间迁移工作负载或虚拟机,增强了跨平台的兼容性和灵活性,对于云环境尤其重要。

  5. 明确的暂停、恢复能力:SDXI具有清晰定义的能力,可以暂停、恢复每个地址空间数据移动器的架构状态,这对于实现实时工作负载或虚拟机在服务器间的迁移至关重要,有助于实现无中断的维护和动态资源调度。

  6. 确保向前兼容的接口:SDXI设计确保了现有的软件驱动程序,包括用户模式驱动,能在未来的硬件实现上无需修改即可运行,减少了因硬件升级导致的软件适配成本和时间。

SDXI通过提供一个灵活、高效、兼容性强的数据移动平台,解决了传统数据处理架构在性能、兼容性、虚拟化支持等方面的不足,为云计算、数据中心管理、高性能计算等领域带来了重大的技术进步。

后续3-5章节,请参考:点击这里,继续阅览SDXI章节3-5详细内容

3.SDXI实现原理与架构

    3.1 描述符环原理解读
    3.2 上下文管理介绍
    3.3 AKey与RKey解读
    3.4 错误日志和状态管理
    3.5 跨Function访问

4.SDXI与CXL协同原理

5.SDXI几种应用场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/762494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PLC】三菱PLC如何和汇川伺服实现485通信

前言 一开始选用的是汇川SV660P脉冲型伺服,由于生产需求需要对伺服的个别参数进行读取和写入操作,但是SV660P并不支持这种情况,因此需要使用485通信来满足。PLC这边选用的是三菱FX5U。 开始 1、首先准备按照下图的引脚提示准备好一根带屏蔽…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么?微分是函数在某一处的导数值,自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小,是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

【C++】红黑树及其实现

目录 一、红黑树的定义1.为什么提出红黑树?2.红黑树的概念3.红黑树的性质 二、红黑树的实现1.红黑树的结构2.红黑树的插入2.1 uncle为红色2.2 uncle为黑色,且是grandfather的右孩子2.3 uncle为黑色,且是grandfather的左孩子 3.红黑树的验证 4…

SQLAlchemy(alembic)和Flask-SQLAlchemy入门教程

SQLAlchemy 是 Python 生态中最流行的 ORM 类库,alembic 用来做 OMR 模型与数据库的迁移与映射,Flask-SQLAlchemy 是 Flask 的扩展,可为应用程序添加对 SQLAlchemy 的支持,简化 SQLAlchemy 与 Flask 的使用。 一.SQLAlchemy 和 a…

C++——vector类用法指南

一、vector的介绍 1、vector是表示可变大小数组的序列容器 2、就像数组一样,vector也采用连续存储空间来存储元素。也就意味着可以采用下标对vector的元素进行访问,和数组一样高效。但又不像数组,它的大小是可以动态改变的,而且它…

Linux C 程序 【01】最小程序

1.开发背景 基于 RK3568 平台的基础上,编译一个在系统上运行的最小程序。 2.开发需求 由于 RK3568 作为宿主机,在上面编译程序比较慢,所以还是采用在 Ubuntu 下交叉编译后再拷贝到宿主机上运行。 设计实验: 1)搭建 M…

嵌入式学习——硬件(IIC、ADC)——day56

1. IIC 1.1 定义(同步串行半双工通信总线) IIC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线。是飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备…

mybatis实现多表查询

mybatis高级查询【掌握】 1、准备工作 【1】包结构 创建java项目,导入jar包和log4j日志配置文件以及连接数据库的配置文件; 【2】导入SQL脚本 运行资料中的sql脚本:mybatis.sql 【3】创建实体来包,导入资料中的pojo 【4】User…

使用Colly库进行高效的网络爬虫开发

引言 随着互联网技术的飞速发展,网络数据已成为信息获取的重要来源。网络爬虫作为自动获取网页内容的工具,在数据分析、市场研究、信息聚合等领域发挥着重要作用。本文将介绍如何使用Go语言中的Colly库来开发高效的网络爬虫。 什么是Colly库&#xff1…

志愿者管理系统带讲解,保运行

技术栈 后端: SpringBoot Mysql MybatisPlus 前端: Vue Element 分为 管理员端 用户端 功能描述 用户端 管理员端 观看地址: B站 : 【毕设者】志愿者管理系统(安装讲解源码)

MQTT QoS 0, 1, 2

目录 # 开篇 1. 精细MQS TT QoS的行为 1.1 QoS 0: 最多交付一次(At Most Once) 1.2 QoS 1: 至少交付一次(At Least Once) 1.3 QoS 2: 只交付一次(Exactly Once) 1.4 传输过程图示 1.5 总结 2. MQTT…

如何避免爬取网站时IP被封?

互联网协议 (IP) 地址是识别网络抓取工具的最常见方式。IP 是每个互联网交换的核心,对其进行跟踪和分析可以了解很多有关连接客户端的信息。 在网络抓取中,IP 跟踪和分析(又名指纹)通常用于限制和阻止网络抓取程序或其他不需要的访…

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器(Linear Quadratic Regulator,LQR)是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下,线性系统在LQR 控制方法中用状态空间方程描…

汇聚荣拼多多电商好不好?

拼多多电商好不好?这是一个值得探讨的问题。拼多多作为中国领先的电商平台之一,以其独特的商业模式和创新的营销策略吸引了大量用户。然而,对于这个问题的回答并不是简单的好或不好,而是需要从多个方面进行综合分析。 一、商品质量 来看拼多…

【源码+文档+调试讲解】居家养老系统

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了居家养老系统的开发全过程。通过分析高校学生综合素质评价管理方面的不足,创建了一个计算机管理居家养老系统的方案。文章介绍了居家养老系统的系统分…

jvm性能监控常用工具

在java的/bin目录下有许多java自带的工具。 我们常用的有 基础工具 jar:创建和管理jar文件 java:java运行工具,用于运行class文件或jar文件 javac:java的编译器 javadoc:java的API文档生成工具 性能监控和故障处理 jps jstat…

Sourcecodester Fantastic Blog CMS v1.0 SQL 注入漏洞(CVE-2022-28512)

前言 CVE-2022-28512 是一个存在于 Sourcecodester Fantastic Blog CMS v1.0 中的 SQL 注入漏洞。攻击者可以通过 "/fantasticblog/single.php" 中的 id 参数注入恶意 SQL 查询,从而获得对数据库的未经授权的访问和控制。 漏洞详细信息 漏洞描述: 该漏…

JavaScript将参数传递给事件处理程序

本篇文件我们将实现导航栏中,选中时候,会将您选中的进行高亮显示; ● 首先我们来获取我们想要的HTML元素 const nav document.querySelector(.nav);● 接着我们来写选中的高亮显示 nav.addEventListener(mouseover, function (e) { //鼠…

内网穿透小工具

内网穿透小工具 前言 当在本地或者虚拟机,内网搭建了项目,数据库。可是在外网无法访问。下面的两款小工具可以暂时实现内网穿透能力。(不支持自定义域名,但是不限制隧道数量!且免费!免费!免费…

【小贪】项目实战——Zero-shot根据文字提示分割出图片目标掩码

目标描述 给定RGB视频或图片,目标是分割出图像中的指定目标掩码。我们需要复现两个Zero-shot的开源项目,分别为IDEA研究院的GroundingDINO和Facebook的SAM。首先使用目标检测方法GroundingDINO,输入想检测目标的文字提示,可以获得…