DMA引擎控制器及其控制方法、电子设备及存储介质与流程

allin2026-10-06  4


本发明涉及数据传输,具体地涉及一种dma引擎控制器及其控制方法、电子设备及存储介质。


背景技术:

1、随着云计算、大数据和人工智能等技术的发展,对存储系统的性能要求日益提高,特别是在处理速度和数据吞吐量方面。nvme是一种专为非易失性存储器设计的高性能存储接口标准,它充分利用pcie总线的高速特性,实现了低延迟和高吞吐量的数据传输。这使得nvme成为支持现代高性能计算和数据中心应用的理想选择。

2、传统方案,使用一个或多个dma引擎进行数据的搬运,实现内存子系统至主机端方向(如nvme读命令)或主机端至内存子系统方向(如nvme写命令)的数据传输。其存在以下缺陷:多个dma引擎需要经过公共仲裁模块或仲裁逻辑管理,其仲裁过程存在时间损耗,导致仲裁过程中总线没有数据传输,从而降低带宽利用率。单个dma引擎工作时会存在数据传输延迟以及使用多个独立并行的dma引擎,意味着需要同等数量的控制逻辑,会导致硬件资源的浪费以及软件性能的损耗。


技术实现思路

1、本发明实施例的目的是提供一种dma引擎控制器及其控制方法、电子设备及存储介质,用于全部或至少部分的解决上述现有技术中存在的技术问题。

2、为了实现上述目的,本发明实施例提供一种dma引擎控制器,包括:

3、主机端dma引擎、内存端dma引擎、数据缓存模块、命令任务队列组、dma引擎错误管理模块;其中,所述主机端dma引擎、所述内存端dma引擎与所述数据缓存模块共同组成数据通路;

4、所述主机端dma引擎用于主机方向和数据缓存模块间的双向数据传输;

5、所述内存端dma引擎用于内存子系统方向和数据缓存模块间的双向数据传输,或是内存子系统向内存子系统的数据传输;

6、所述dma引擎错误管理模块用于对数据传输过程中的错误进行检测,并实现错误的上报与处理。

7、可选的,所述命令任务队列组包括命令任务队列、主机端任务队列、内存端任务队列;其中,所述命令任务队列由dma引擎控制器外的逻辑或cpu配置,当命令任务队列接收到新的命令配置后,根据命令类型分别配置主机端任务队列和内存端任务队列。

8、可选的,主机端任务队列中保存主机端dma引擎的任务列表,内存端任务队列保存内存端dma引擎的任务列表,主机端dma引擎和内存端dma引擎根据各自的任务列表,执行指定方向的数据搬运。

9、可选的,所述dma引擎错误管理模块用于对数据传输过程中的错误进行检测,并实现错误的上报与处理中上报方式包括但不限于向主机返回完成状态、向控制器外部逻辑或cpu返回错误状态;错误的处理方式包括但不限于完成当前命令的数据传输、中止当前命令的数据传输并清除内部逻辑残留的当前工作任务、重新执行当前命令。

10、可选的,所述dma引擎控制器还包括:配置/控制逻辑,用于实现dma引擎控制器的基本功能配置、工作状态控制和工作模式功能。

11、可选的,所述dma引擎控制器还包括:数据保护/校验模块,用于数据传输过程中多种数据的保护和校验,其中,保护和校验包括但不限于数据通路校验码校验、端到端保护、nvme验证命令校验。

12、另一方面,本发明还提供一种应用于dma引擎控制器的控制方法,包括:

13、上电初始化dma引擎控制器;

14、当接收到传输数据的nvme命令时,配置dma引擎控制器的命令任务队列,并控制命令任务队列将命令分配至主机端任务队列和内存端任务队列;

15、主机端dma引擎和内存端dma引擎根据对应命令队列的非空状态以及数据缓存区的空满状态进行数据搬运或结束。

16、可选的,所述当接收到传输数据的nvme命令时,配置dma引擎控制器的命令任务队列,并控制命令任务队列将命令分配至主机端任务队列和内存端任务队列,包括:

17、当存在nvme命令后,由cpu配置dma引擎控制器的命令任务队列;

18、其中,配置每项任务对应的命令类型、数据传输的起始地址和目的地址、数据逻辑块格式、数据传输最小单元、数据传输量、nvme命令信息、数据保护/校验方式;

19、命令任务队列将该命令分配给主机端任务队列和内存端任务队列;

20、其中,不同命令对应的配置对象有所不同,针对nvme写命令,配置主机端任务队列和内存端任务队列;针对nvme读命令,配置主机端任务队列和内存端任务队列;针对nvme复制命令,配置内存端任务队列;针对nvme比较命令:配置主机端和内存端任务队列。

21、可选的,主机端dma引擎和内存端dma引擎根据对应命令队列的非空状态以及数据缓存区的空满状态进行数据搬运的过程,包括但不限于:

22、主机端dma引擎从主机内存空间读数据并写至下行数据缓存区,内存端dma引擎从下行数据缓存区读数据并写至内存子系统;

23、内存端dma引擎从内存子系统读数据并写至上行数据缓存区,主机端dma引擎从上行数据缓存区读数据并写至主机内存空间;

24、内存端dma引擎从内存子系统读数据并写至内存数据缓存区,内存端dma引擎从内存数据缓存区读数据并写至内存子系统;

25、主机端dma引擎从主机内存空间读数据并写至内部数据缓存区,内存端dma引擎从内存子系统读数据并写至内部数据缓存区,进行数据比较后产生比对结果。

26、可选的,在数据传输过程中采用多种数据的保护和校验方式,以确定数据传输中遇到的错误;其中,保护和校验方式包括但不限于数据通路校验码校验、端到端保护、nvme验证命令校验。

27、可选的,在数据传输过程中,当一笔命令的数据传输中途遇到错误,实现错误的上报与处理;其中,上报方式包括但不限于向主机返回完成状态、向控制器外部逻辑或cpu返回错误状态;错误的处理方式包括但不限于完成当前命令的数据传输、中止当前命令的数据传输并清除内部逻辑残留的当前工作任务、重新执行当前命令。

28、可选的,所述dma引擎控制器的控制方法还包括配置/控制逻辑,以实现dma引擎控制器的基本功能配置、工作状态控制和工作模式功能。

29、另一方面,本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上进行运行的计算机程序,所述处理器执行所述程序时实现上述所述的dma引擎控制器的控制方法的步骤。

30、另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的dma引擎控制器的控制方法的步骤。

31、通过上述技术方案,设计了dma引擎的流水线结构,分别设置了主机端dma引擎和内存端dma引擎,可以提高数据传输效率,降低硬件资源消耗与面积损耗,简化外围控制逻辑;基于该dma引擎结构设计了适用于nvme命令的命令队列管理方式,保证各阶段dma引擎的独立正确运行;基于该dma引擎结构设计了适用于nvme命令的数据缓存分区管理方式,区分不同的数据通路,保证数据传输流程的效率以及数据正确性。

32、本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。


技术特征:

1.一种dma引擎控制器,其特征在于,包括:

2.根据权利要求1所述的dma引擎控制器,其特征在于,所述命令任务队列组包括命令任务队列、主机端任务队列、内存端任务队列;其中,所述命令任务队列由dma引擎控制器外的逻辑或cpu配置,当命令任务队列接收到新的命令配置后,根据命令类型分别配置主机端任务队列和内存端任务队列。

3.根据权利要求2所述的dma引擎控制器,其特征在于,主机端任务队列中保存主机端dma引擎的任务列表,内存端任务队列保存内存端dma引擎的任务列表,主机端dma引擎和内存端dma引擎根据各自的任务列表,执行指定方向的数据搬运。

4.一种应用于权利要求1-3任一项所述的dma引擎控制器的控制方法,其特征在于,包括:

5.根据权利要求4所述的dma引擎控制器的控制方法,其特征在于,主机端dma引擎和内存端dma引擎根据对应命令队列的非空状态以及数据缓存区的空满状态进行数据搬运的过程,包括但不限于:

6.根据权利要求4所述的dma引擎控制器的控制方法,其特征在于,在数据传输过程中采用多种数据的保护和校验方式,以确定数据传输中遇到的错误;其中,保护和校验方式包括但不限于数据通路校验码校验、端到端保护、nvme验证命令校验。

7.根据权利要求6所述的dma引擎控制器的控制方法,其特征在于,

8.根据权利要求4所述的dma引擎控制器的控制方法,其特征在于,所述dma引擎控制器的控制方法还包括配置/控制逻辑,以实现dma引擎控制器的基本功能配置、工作状态控制和工作模式功能。

9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上进行运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求4-8任一项所述的dma引擎控制器的控制方法的步骤。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求4-8任一项所述的dma引擎控制器的控制方法的步骤。


技术总结
本发明实施例提供一种DMA引擎控制器及其控制方法、电子设备及存储介质,属于数据传输领域。该方法包括:主机端DMA引擎、内存端DMA引擎、数据缓存模块、命令任务队列组、DMA引擎错误管理模块;主机端DMA引擎、内存端DMA引擎与数据缓存模块共同组成数据通路。设计了DMA引擎的流水线结构,分别设置了主机端和内存端DMA引擎,可以提高数据传输效率,降低硬件资源消耗与面积损耗,简化外围控制逻辑;设计了适用于NVMe命令的命令队列管理方式,保证各阶段DMA引擎的独立正确运行;基于该DMA引擎结构设计了适用于NVMe命令的数据缓存分区管理方式,区分不同的数据通路,保证数据传输流程的效率以及数据正确性。

技术研发人员:付溢华,曾昭贵,周永旺,张靖,李彧
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-31836.html

最新回复(0)