CN116629176A - 一种面向异构加速卡的多功能dma设计方法及*** - Google Patents
一种面向异构加速卡的多功能dma设计方法及*** Download PDFInfo
- Publication number
- CN116629176A CN116629176A CN202310657333.0A CN202310657333A CN116629176A CN 116629176 A CN116629176 A CN 116629176A CN 202310657333 A CN202310657333 A CN 202310657333A CN 116629176 A CN116629176 A CN 116629176A
- Authority
- CN
- China
- Prior art keywords
- dma
- data
- descriptor
- host
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 52
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims abstract description 14
- 238000011161 development Methods 0.000 claims abstract description 11
- 230000001133 acceleration Effects 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 4
- 238000005265 energy consumption Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2802—DMA using DMA transfer descriptors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种面向异构加速卡的多功能DMA设计方法及***包括,在DMA逻辑结构上采用自顶向下的方式进行优化布局,数据通信接口采用统一的AXI标准接口兼容,并对DMA控制器功能进行模块化设计;本发明通过Block design的开发设计,只需要简单互联就完成了整个DMA控制器的***结构;摒弃了传统通过RTL代码手动连接的方式,有助于设计结构的优化布局,保证了数字***的稳定性、可靠性和可移植性;同时,模块内部寄存器配置统一采用BRAM接口,采用BRAM接口简化了总线操作,减少了互联资源消耗;此外,BRAM接口还能直接与RAM连接,实现主机直接进行整块数据访问;通过AXI4接口从DDR4中将数据读出,既减少了FPGA采用RAM做缓存的资源消耗,同时还能降低了FPGA的功耗。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种面向异构加速卡的多功能DMA设计方法及***。
背景技术
随着5G网络、人工智能、云计算的不断发展,对新型数据中心硬件基础实施建设提出高技术、高算力、高能效的发展要求,服务器单芯片CPU越来越无法满足数据中心的需要,采取创新的异构***可以解决数据中心低能耗和高算力的问题,异构加速卡能更好的为数据中心提供高算力低延迟的需求。例如,英伟达智能网卡CONNECTX-7、AMD-Xilinx智能网卡SN1000和Intel-Altera智能网卡N6000,为了实现加速卡与服务器的高速数据交换,采用PCIe总线作为卡与服务器数据交互的高速接口,AMD-Xilinx和Intel-Altera智能网卡在FPGA芯片内部集成DMA作为PCIe接口数据收发引擎,为数据中心提供高算力、可重构、低功耗等需求,基于PCIE的DMA控制器正被广泛的研究。
DMA控制器是PCIe总线高速数据传输的核心部分,负责服务器内存数据与FPGA内部加速模块之间的数据交换,不仅影响到PCIe总线的有效带宽,还关系到软件对FPGA加速卡灵活应用。基于FPGA的加速卡DMA实现方式有两种,一种是调用FPGA芯片厂家免费的IP核,该种IP高度集成了DMA控制器与PCIe总线硬核为一体,开发工具提供图形界面配置,简单易容的方式深得开发者推崇。另一种开发方式需要根据DMA工作原理,根据应用需要,自定义逻辑设计DMA控制器,将自定义的DMA控制器与PCIe硬核IP集成。FPGA最大厂商AMD-Xilinx在高端芯片中以核的方式提供了XDMA和QDMA两种DMA控制器,XDMA简单易用,能快速实现加速器与服务器内存数据交换功能,但是不同等级芯片支持的PCIe协议存在差异,DMA实现方式不同,限制了PCIe总线带宽利用率。QDMA实现的方式与XDMA有很大不同,QDMA采用了序列描述符的触发方式提高PCIe总线利用率,但是XDMA和QDMA都存在设计不开源、功能冗余、软硬件协同开发难度大、FPGA资源占用率高等缺点,导致工程实现推进难,为避免使用厂商IP带来的这些缺点,自定义DMA设计成为研究的热点。有研究表明,自定义DMA方式,在gen3x8配置模式下,最高实带宽5GB/s。也有学者提出采用寄存器和描述符协同的DMA设计方式,在提高总线传输性能同时方便软件移植性,并通过仿真验证,在数据包为65KB时总线的利用率达到90.7%。综上所述,这些方法在大包数据表现出高性能,但是在小包数据传输上速度低,功能单一,不能更好在功能复杂和小包量大的异构加速***。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有存在的问题,提出了本发明。因此,本发明提供了一种面向异构加速卡的多功能DMA设计方法,用来解决实际问题中,服务器与加速卡之间数据传输带宽小,多类型数据传输过慢,功能单一以及***资源利用率高的问题。
为解决上述技术问题,本发明提供如下技术方案:
第一方面,本发明提供了一种面向异构加速卡的多功能DMA设计方法,包括:
在DMA逻辑结构上采用自顶向下的方式进行优化布局,数据通信接口采用统一的AXI标准接口兼容,并对DMA控制器功能进行模块化设计。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:所述对DMA控制器功能进行模块化设计,包括:
Blockdesign开发、模块通信接口设计和DMA模块设计。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:所述对DMA控制器功能进行模块化设计,还包括:
Blockdesign开发由三部分组成,分别为:具有PCIe协议和DMA读写功能的DMA控制器接口模块、DMA引擎模块和万兆以太网模块;
模块通信接口设计,包括:AXIstream接口、AXIMM接口和AXIBRAM接口;
所述AXIstream接口、AXIMM接口和AXIBRAM接口的数据操作方式为:DMA引擎模块中的主机搬移数据到加速卡引擎单元和加速卡搬移数据到主机引擎单元,均采用AXIstream接口;主机和外部数据需要进行大容量缓存时,需采用AXIMM接口将数据写入外部DDR4;模块内部寄存器配置统一采用AXIBRAM接口;
DMA模块设计,由DMA控制器接口模块和DMA引擎模块组成;
所述DMA控制器接口模块由PCIe硬核单元、硬核接口控制单元、RAM接口转换模块和DMA读写控制单元组成;
所述DMA引擎模块由主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元、DMA描述符获取引擎单元和完成描述符写回引擎单元组成。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:所述DMA控制器接口模块,包括:
工作流程为:
PCIe硬核单元根据PCIExpress协议实现物理层、数据链路层和部分事务层;PCIe硬核单元通过完成接口和请求接口接收或发送事务层数据包,与硬核接口控制单元通信;硬核接口控制单元控制完成接口完成包命令,实现寄存器读写操作;硬核接口控制单元控制请求接口请求包命令,实现DMA读写操作;
RAM接口转换模块接收硬核接口控制单元输出的完成接口数据,转换成RAM接口,然后连接到DMA描述符获取引擎单元实现描述符寄存器配置和RAM数据读写;
DMA读写控制单元接收主机搬移数据到加速卡引擎单元的DMA读请求,组成读请求包发送到硬核接口控制单元,然后接收硬核接口控制单元读请求返回数据,输出到主机搬移数据到加速卡引擎单元;DMA读写控制单元接收加速卡搬移数据到主机引擎单元发起DMA写请求,接收加速卡搬移数据到主机引擎单元输入数据,封装DMA写请求发送到硬核接口控制单元。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:DMA引擎模块工作流程,包括:
工作流程为:
DMA描述符获取引擎单元接收RAM接口转换模块配置,根据配置信息发起DMA读描述符请求,然后将收发的描述符分发到主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元和完成描述符写回引擎单元;
主机搬移数据到加速卡引擎单元收到描述符后,根据描述符发起DMA读数据请求,输出读返回数据到AXI4接口或AXIstream接口,实现主机搬移数据到加速卡的数据搬移;加速卡搬移数据到主机引擎单元接收AXI4接口或AXI stream接口数据,根据描述符信息发起DMA写请求,将数据传输到DMA读写控制单元,实现加速卡搬移数据到主机引擎单元的数据搬移;
DMA写操作完成后,首先将DMA写完成信息发送到完成描述符写回引擎单元,其次通过完成描述符写回引擎单元检测描述符发送使能信号,最后通过DMA写将请求更新描述符传到主机端存储空间,请求更新描述符;
数据流为:
主机配置描述符引擎后,描述符队列请求引擎子单元发起描述符队列请求信息到DMA读写控制单元,请求数据搬移所需要的描述符,完成描述符请求后才能进行数据的搬移;当需要实现主机到加速卡搬移时,主机搬移数据到加速卡引擎单元会根据主机至加速卡描述符管理子单元中的描述符信息发起DMA读请求,DMA读数据返回后将数据发送到外部AXIS或AXI4接口;当需要将加速卡数据搬移到主机时,加速卡搬移数据到主机引擎单元会接收AXIS或AXI4接口数据,根据加速卡至主机描符管理子单元中的描述符信息发起DMA写请求,每当数据DMA写完成后将完成信息发送到完成描述符写回引擎单元,当每个阶段的描述符用完后,完成描述符写回引擎单元会根据完成描述符子单元中存储的完成描述符信息发起DMA写请求,将完成描述符信息发送到主机,软件根据完成信息读取数据。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:所述DMA读请求,包括:
DMA描述符获取引擎单元通过轮询检测寄存器配置,根据配置寄存器信息决定DMA启动方式;
具体流程为:
DMA描述符获取引擎单元检测主机至加速卡描述符队列启动寄存器使能,锁存描述符队列基地址寄存器、描述符队列偏移地址寄存器和描述符队列请求大小寄存器,启动DMA读操作,主机至加速卡描述符管理子单元缓存DMA读返回的描述符数据,主机搬移数据到加速卡引擎单元检测主机至加速卡描述符管理子单元中缓存的描述符信息,根据描述符信息启动DMA读操作,读取主机搬移到加速卡的数据;当检测到描述符队列中结束标志有效,则表示N个描述符使用完,主机搬移数据到加速卡引擎单元发起DMA写操作,将描述符完成信息发送到主机响应地址,请求主机更新描述符队列,主机端软件实时查询响应地址描述符更新请求信息,同时根据请求更新描述符队列;主机搬移数据到加速卡引擎单元收到DMA读返回数据后,根据描述符字段,将数据输出到AXIS接口或者AXI4接口;
DMA描述符获取引擎单元检测到寄存器方式DMA启动使能,锁存数据源地址寄存器、数据长度寄存器和数据接口寄存器,启动DMA读操作,主机搬移数据到加速卡引擎单元接收DMA读返回数据,根据数据接口寄存器信息,将数据输出到AXIS或AXI4接口,数据发送完成后产生MSI中断到主机,表示本次主机到加速卡的数据搬移完成,主机可在收到中断后再次发起寄存器类型DMA读启动;
DMA描述符获取引擎单元检测到RAM表方式DMA启动使能,DMA描述符获取引擎单元从RAM零地址开始锁存数据源地址寄存器、数据长度寄存器和STA寄存器,依次启动DMA读操作,主机搬移数据到加速卡引擎单元接收DMA读返回数据,根据STA寄存器信息,将数据输出到AXIS或AXI4接口;当检测到RAM表中结束标志后,表示最后一次DMA读请求完成后,产生MSI中断到主机,表示本次主机至加速卡数据搬移完成,主机可在收到中断后再次配置RAM表,重新发起RAM表DMA读操作。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:DMA写请求,包括:
DMA描述符获取引擎单元,根据数据输入类型并检测寄存器配置,选择对应的DMA方式实现数据搬移;
具体流程为:
DMA描述符获取引擎单元检测加速卡至主机描述符队列启动寄存器使能,锁存描述符队列基地址寄存器、描述符队列偏移地址寄存器和描述符队列请求大小寄存器,启动DMA读操作,加速卡至主机描符管理子单元缓存DMA读返回描述符信息,加速卡搬移数据到主机引擎单元接收AXIS或AXI4接口输入数据后,根据描述符信息启动DMA写操作,将加速卡的数据搬移到主机,同时将DMA写数据地址、数据长度和包序号的完成信息发送到完成描述符写回引擎单元,当检测到描述符队列中字段电平超过***设定时,表示当前描述符块使用完,加速卡搬移数据到主机引擎单元发起DMA写操作,将描述符更新请求信息发送到主机响应地址,然后完成描述符写回引擎单元也发起DMA写,将加速卡至主机完成描述符队列信息发送到主机端完成序列环,主机端软件实时查询响应地址描述符更新请求后更新描述符队列,并根据接收到的完成描述符队列信息获取加速卡至主机的数据;
加速卡搬移数据到主机引擎单元接收AXIS或AXI4接口输入数据后,检测到寄存器方式DMA启动使能,锁存数据响应地址寄存器和数据长度寄存器,启动DMA写操作,将数据从加速卡搬移到主机,DMA写操作完成后产生MSI中断到主机,主机可在收到中断后根据响应地址和数据长度获取加速卡至主机的数据;
加速卡搬移数据到主机引擎单元接收AXIS或AXI4接口输入数据后检测到RAM表示DMA启动使能,从RAM零地址开始读出响应地址寄存器和写入数据长度,依次启动DMA写操作;当检测到RAM表中结束标志,最后一次DMA写请求完成,产生MSI中断,通知主机本次加速卡至主机数据搬移完成,主机可在收到中断后再次配置RAM表,重新发起RAM表DMA写操作。
作为本发明所述的面向异构加速卡的多功能DMA设计方法的一种优选方案,其中:
第二方面,本发明提供了一种面向异构加速卡的多功能DMA设计***,其包括:
DMA引擎模块,用于对DMA进行读写控制和主机到加速卡的数据搬移或加速卡到主机的数据搬移;
所述DMA引擎模块包括,主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元、DMA描述符获取引擎单元和完成描述符写回单元;
所述DMA描述符获取引擎单元包括,描述符队列请求引擎子单元、主机至加速卡描述符管理子单元、完成描述符子单元和加速卡至主机描符管理子单元;
万兆以太网模块,用于提高***的数据传输率和网络带宽,并且能够进行长距离的传输,降低***能耗;
DMA控制器接口模块,用于实现PCIe协议和DMA控制器的读写功能,能够和主机模块进行数据的传递及存储;
主机模块,用于存储数据和接收***回传的数据以及发送***需要数据。
第三方面,本发明提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中:所述处理器执行所述计算机程序时实现上述方法的任一步骤。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,其中:所述计算机程序被处理器执行时实现上述方法的任一步骤。
与现有技术相比,发明有益效果为:本发明通过Blockdesign的开发设计,只需要简单互联就完成了整个DMA控制器的***结构;摒弃了传统通过RTL代码手动连接的方式,有助于设计结构的优化布局,保证了数字***的稳定性、可靠性和可移植性;同时,模块内部寄存器配置统一采用BRAM接口,采用BRAM接口简化了总线操作,减少了互联资源消耗;此外,BRAM接口还能直接与RAM连接,实现主机直接进行整块数据访问;通过AXI4接口从DDR4中将数据读出,既减少了FPGA采用RAM做缓存的资源消耗,同时还能降低了FPGA的功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的DMA控制器结构图;
图2为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的RAM接口互联结构图;
图3为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的描述符引擎结构图;
图4为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的H2C数据搬移流程图;
图5为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的C2H数据搬移流程图;
图6为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的DMA读写DDR4数据带宽图;
图7为本发明一个实施例所述的面向异构加速卡的多功能DMA设计方法的DMA读写SFP接口数据带宽图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
实施例1
参照图1,为本发明第一个实施例,该实施例提供了一种面向异构加速卡的多功能DMA设计方法,包括:
Blockdesign由三部分组成,具有PCIe协议和DMA读写功能的DMA interface模块、具有DMA引擎功能的DMA描述符获取引擎单元(DESC_Engine)和万兆网络IP核的10GETH模块,各模块之间采用AXI接口;
应当说明的是,Blockdesign设计方法,只需要简单互联完成了整个DMA控制器的***结构;摒弃了传统通过RTL代码手动连接的方式,有助于设计结构的优化布局,保证了数字***的稳定性、可靠性和可移植性;
各模块之间的数据通信接口采用统一的AXI接口,包括AXIstream接口、AXIMM接口和AXIBRAM接口,三种接口有不同的数据操作方式:DMA引擎模块中的主机搬移数据到加速卡引擎单元和加速卡搬移数据到主机引擎单元,均采用AXIstream接口;主机和外部数据需要进行大容量缓存时,需采用AXIMM接口将数据写入外部DDR4;模块内部寄存器配置统一采用AXIBRAM接口;
应当说明的是,本设计中主要采用AXIstream接口与外部网络进行数据交换;AXILite接口信号众多,交互复杂,采用BRAM接口简化了总线操作,将AXILite接口的19根信号减少到7根信号,大大减少了互联资源消耗;此外,BRAM接口还能直接与RAM连接,实现主机(HOST)直接进行整块数据访问;
应当说明的是,通过AXI4接口从DDR4中将数据读出,既减少了FPGA采用RAM做缓存的资源消耗,同时还能降低FPGA功耗;
DMAinterface模块内部有四个模块:PCIe硬核单元(pcie4_uscale_pluse)、硬核接口控制单元(PCIE_IF)、RAM接口转换模块(RAM_IF)和DMA读写控制单元(DMA_IF);
PCIe硬核单元根据PCIExpress协议实现物理层、数据链路层和部分事务层,保证了主机(HOST)与FPGA之间高速数据安全稳定;PCIe硬核单元通过完成接口(CQ\CC)和请求接口(RQ\RC)接口收发事务层(TransactionLayer Packet:TLP)数据包,与硬核接口控制单元(PCIE_IF)与通信紧密,硬核接口控制单元(PCIE_IF)控制完成接口(CQ\CC)接口完成包命令,实现寄存器读写操作;硬核接口控制单元(PCIE_IF)控制请求接口(RQ\RC)接口请求包命令,实现DMA读写操作;
RAM接口转换模块(RAM_IF)接收硬核接口控制单元(PCIE_IF)输出的完成接口(CQ\CC)数据,转换成RAM接口,然后连接到DMA描述符获取引擎单元(DESC_Engine)实现描述符寄存器配置和RAM数据读写;
DMA读写控制单元(DMA_IF)接收主机搬移数据到加速卡引擎单元(H2C_Engine)DMA读请求,组成读请求包发送到硬核接口控制单元(PCIE_IF),然后接收硬核接口控制单元(PCIE_IF)读请求返回数据,输出到主机搬移数据到加速卡引擎单元(H2C_Engine);DMA读写控制单元(DMA_IF)接收加速卡搬移数据到主机引擎单元(C2H_Engine)发起DMA写请求,接收加速卡搬移数据到主机引擎单元(C2H_Engine)输入数据,封装DMA写请求发送到硬核接口控制单元(PCIE_IF);
DMA描述符获取引擎单元(DESC_Engine)由四个模块组成,主机搬移数据到加速卡引擎单元(H2C_Engine)、加速卡搬移数据到主机引擎单元(C2H_Engine)、DMA描述符获取引擎单元(DESC_Engine)、完成描述符写回引擎单元(CMPT_Engine);
DMA描述符获取引擎单元(DESC_Engine)接收RAM接口转换模块(RAM_IF)配置,根据配置信息发起DMA读描述符请求,然后将收发的描述符分发到主机搬移数据到加速卡引擎单元(H2C_Engine)、加速卡搬移数据到主机引擎单元(C2H_Engine)和完成描述符写回引擎单元(CMPT_Engine);
主机搬移数据到加速卡引擎单元(H2C_Engine)收到描述符后,根据描述符发起DMA读数据请求,输出读返回数;
据到AXI4接口或AXIstream接口,实现H2C数据搬移;加速卡搬移数据到主机引擎单元(C2H_Engine)接收AXI4接口或AXIstream接口数据,根据描述符信息发起DMA写请求,将数据传输到DMA读写控制单元(DMA_IF),实现加速卡搬移数据到主机引擎单元(C2H_Engine)数据搬移;
DMA写操作完成后,将DMA写完成信息发送到完成描述符写回引擎单元(CMPT_Engine),完成描述符写回引擎单元(CMPT_Engine)检测描述符发送使能信号,通过DMA写将描述符传到主机(HOST)端存储空间,请求更新描述符;
应当说明的是,PCIe总线带宽是64GT/s,10GETH模块是MF-DMA外部通信模块,为与PCIe理论带宽保持一致,调用6个10G以太网核Eth_Subsystem连接到外部SFP接口,各模块采用公平轮转法检测接收数据,网络数据与DMA模块是异步通信方式,采用异步FIFO进行跨时钟域处理。
进一步的,本实施例还提供一种面向异构加速卡的多功能DMA设计***,包括:
DMA引擎模块,用于对DMA进行读写控制和主机到加速卡的数据搬移或加速卡到主机的数据搬移;
所述DMA引擎模块包括,主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元、DMA描述符获取引擎单元和完成描述符写回单元;
所述DMA描述符获取引擎单元包括,描述符队列请求引擎子单元、主机至加速卡描述符管理子单元、完成描述符子单元和加速卡至主机描符管理子单元;
万兆以太网模块,用于提高***的数据传输率和网络带宽,并且能够进行长距离的传输,降低***能耗;
DMA控制器接口模块,用于实现PCIe协议和DMA控制器的读写功能,能够和主机模块进行数据的传递及存储;
主机模块,用于存储数据和接收***回传的数据以及发送***需要数据。
本实施例还提供一种计算机设备,适用于面向异构加速卡的多功能DMA设计方法的情况,包括:
存储器和处理器;存储器用于存储计算机可执行指令,处理器用于执行计算机可执行指令,实现如上述实施例提出的面向异构加速卡的多功能DMA设计方法。
该计算机设备可以是终端,该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例提出的面向异构加速卡的多功能DMA设计方法。
本实施例提出的存储介质与上述实施例提出的数据存储方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
实施例2
参照图2,为本发明第二个实施例,该实施例提供了一种面向异构加速卡的多功能DMA设计方法,包括:
DMA设计中存在多个配置模块,包括描述符队列请求引擎子单元(Queue_Engine)、主机至加速卡H2C描述符管理模块(H2C_Queue)、加速卡至主机C2H描符管理模块(C2H_Queue)、完成描述符子单元(CPL_Queue)、RAM实时数据收发模块、外部网络配置等模块;硬核接口控制单元(PCIE_IF)通过AXI_smart模块智能互联到RAM接口转换模块(RAM_IF),实现了AXIS到RAM接口的转换;RAM接口转换模块(RAM_IF)可以配置DMA描述符获取引擎单元(DESC_Engine)内部描述符引擎寄存器,RAM接口转换模块(RAM_IF)可以与发送数据快模块(TX_RAM)交互实时发送数据到外网,RAM接口转换模块(RAM_IF)还可以与接收数据块模块(RX_RAM)模块交互实时采集外网数据;RAM接口统一占用PCIeBAR0空间地址,采取基地址加偏移地址的方式进行寻址,具体空间大小和分配在Blockdesign开发的DIAGRAM窗口AddressEditor中选择配置,主机(HOST)端驱动根据分配的基地址加偏移地址实现不同配置模块的寄存器读写。
实施例3
参照图3,为本发明第三个实施例,该实施例提供了一种面向异构加速卡的多功能DMA设计方法,包括:
DMA描述符获取引擎单元(DESC_Engine)是DMA核心部分,描述符环读请求引擎模块(DESC_Engine)调用RAM存储4K个描述符队列;描述符队列请求引擎子单元(Queue_Engine)发起描述符队列请求信息到DMA_IF接口,请求数据搬移所需要的描述符,完成描述符请求后才能进行数据的搬移;当需要实现主机(HOST)到加速卡(Card)搬移的时候,主机搬移数据到加速卡引擎单元(H2C_Engine)根据主机至加速卡H2C描述符管理模块(H2C_Queue)中的描述符信息发起DMA读请求,DMA读数据返回后将数据发送到外部AXIS/AXI4接口;当需要将加速卡(Card)数据搬移到主机(HOST)时,加速卡搬移数据到主机引擎单元(C2H_Engine)模块接收AXIS/AXI4接口数据,根据加速卡至主机C2H描符管理模块(C2H_Queue)中的描述符信息发起DMA写请求,每包数据DMA写完成后将完成信息发送到完成信息请求完成描述符写回引擎单元(CMPT_Engine),当每个阶段的描述符用完后,完成描述符写回引擎单元(CMPT_Engine)根据完成描述符子单元(CPL_Queue)中存储的完成描述符信息发起DMA写请求,将完成描述符信息发送到主机(HOST),软件根据完成信息读取数据;主机搬移数据到加速卡引擎单元(H2C_Engine)、加速卡搬移数据到主机引擎单元(C2H_Engine)模块和CMPT_Engine引擎模块需要根据软件描述符定义配合操作,软件描述符环回队列DMA配置如图3所示;
主机(HOST)端软件开辟数据存储空间和描述符存储空间,每4K数据空间对应一个描述符,描述符信息包括数据地址(addr)、数据长度(len)和数据使能信息(sta),sta包含了AXIS\AXI4数据接口使能和描述符更新使能;描述符以环形队列的方式管理,N代表4K存储空间存储的描述符队列数量,整个环有M块描述符队列存储空间,M默认为16,描述符环形队列管理M*N个描述符队列;软件维护两个环形队,主机至加速卡H2C描述符管理模块(H2C_Queue)发送描述符环形队列、加速卡至主机C2H描符管理模块(C2H_Queue)接收描述符环形队列。
实施例4
参照图4,为本发明第四个实施例,该实施例提供了一种面向异构加速卡的多功能DMA设计方法,包括:
主机至加速卡(H2C)三种DMA启动操作流程如下:
DMA描述符获取引擎单元(DESC_Engine)检测H2C描述符队列启动寄存器使能,锁存描述符队列基地址寄存器、描述符队列偏移地址寄存器和描述符队列请求大小寄存器,启动DMA读操作,主机至加速卡H2C描述符管理模块
(H2C_Queue)缓存DMA读返回的描述符数据,主机搬移数据到加速卡引擎单元(H2C_Engine)检测主机至加速卡H2C描述符管理模块(H2C_Queue)中缓存描述符信息,根据描述符信息启动DMA读操作,读取主机(HOST)搬移到加速卡的数据,当检测到描述符队列中STA[0]字段为高电平时,表示N个描述符使用完,H2C_Engine发起DMA写操作,将描述符完成信息发送到主机(HOST)响应地址,请求主机(HOST)更新描述符队列,主机(HOST)软件实时查询响应地址描述符更新请求信息,主机(HOST)软件根据请求更新描述符队列;H2C_Engine收到DMA读返回数据后,根据描述符字段STA,将数据输出到AXIS接口或者AXI4接口;
DMA描述符获取引擎单元(DESC_Engine)检测到寄存器DMA启动使能,锁存数据源地址寄存器、数据长度寄存器、数据接口寄存器,启动DMA读操作,主机搬移数据到加速卡引擎单元(H2C_Engine)接收DMA读返回数据,根据数据接口寄存器信息,将数据输出到AXIS或AXI4接口,数据发送完成后产生MSI中断到主机(HOST),表示本次H2C数据搬移完成,主机(HOST)可在收到中断后再次发起寄存器类型DMA读启动;
DMA描述符获取引擎单元(DESC_Engine)检测到RAM表DMA启动使能,RAM表8字节表示一个描述符队列,分别是8字节源地址、4字节数据长度和4字节STA信息;DESC_Engine从RAM零地址开始锁存数据源地址寄存器、数据长度寄存器、STA寄存器,依次启动DMA读操作,主机搬移数据到加速卡引擎单元(H2C_Engine)接收DMA读返回数据,根据STA寄存器信息,将数据输出到AXIS或AXI4接口,为了节约FPGA资源,RAM表最大支持256次DMA读请求;当检测到RAM表中结束标志后,表示最后一次DMA读请求完成后,产生MSI中断到主机(HOST),表示本次H2C数据搬移完成,主机(HOST)可在收到中断后再次配置RAM表,重新发起RAM表DMA读操作。
实施例5
参照图5,为本发明第五个实施例,该实施例提供了一种面向异构加速卡的多功能DMA设计方法,包括:
加速卡至主机(C2H)三种DMA启动操作流程如下:
DMA描述符获取引擎单元(DESC_Engine)检测C2H描述符队列启动寄存器使能,锁存描述符队列基地址寄存器、描述符队列偏移地址寄存器和描述符队列请求大小寄存器,启动DMA读操作,加速卡至主机C2H描符管理模块
(C2H_Queue)缓存DMA读返回描述符信息,加速卡搬移数据到主机引擎单元(C2H_Engine)接收AXIS/AXI4接口输入数据后,根据描述符信息启动DMA写操作,将加速卡的数据搬移到主机(HOST),同时将DMA写数据地址、数据长度、包序号等完成信息发送到完成描述符写回引擎单元(CMPT_Engine),当检测到描述符队列中STA[0]字段为高电平时,表示当前描述符块使用完,C2H_Engine发起DMA写操作,将描述符更新请求信息发送到主机(HOST)响应地址,然后完成描述符写回引擎单元(CMPT_Engine)也发起DMA写,将C2H完成描述符队列信息发送到主机(HOST)端完成序列环,主机(HOST)软件实时查询响应地址描述符更新请求后更新描述符队列,并根据接收到的完成描述符队列信息获取C2H数据。
加速卡搬移数据到主机引擎单元(C2H_Engine)接收AXIS\AXI4接口输入数据后,锁存数据响应地址寄存器、数据长度寄存器、启动DMA写操作,将数据从加速卡(Card)搬移到主机(HOST),DMA写操作完成后产生MSI中断到主机(HOST),主机(HOST)可在收到中断后根据响应地址和数据长度获取C2H数据。
加速卡搬移数据到主机引擎单元(C2H_Engine)接收AXIS\AXI4接口输入数据后,检测到RAM表DMA启动使能,从RAM零地址开始读出响应地址寄存器、写入数据长度,依次启动DMA写操作,为了节约FPGA资源,RAM表最大支持256次DMA写请求。当检测到RAM表中结束标志,最后一次DMA写请求完成,产生MSI中断,通知主机(HOST)本次C2H数据搬移完成,主机(HOST)可在收到中断后再次配置RAM表,重新发起RAM表DMA写操作。
实施例6
参照图6和图7,为本发明第六个实施例,该实施例提供了一种面向异构加速卡的多功能DMA设计方法,包括:
针对DMA的AXI4接口测试,EndPoint端调用DDR4核与AXI4接口连接,实现AXI4接口对外部存储缓存功能访问,在三种DMA触发方式下进行DMA读和DMA写操作,数据包最小为128Byte,最大数据包8192Byte,RootPort模拟主机(HOST)配置描述符链表、配置RAM表和寄存器三种操作方式进行寄存器配置和DMA读写数据的接收发送,测试结果如图6所示;
可以看到图6在三种DMA触发模式下DDR4读和DDR4写带宽,寄存器访问模式性能最低,数据包8K字节时,DMA写DDR4最大带宽为1167MB/s,DMA读DDR4最大带宽为1167MB/s,RMA表DMA触发模式下AXI4接口带宽明显大于寄存器模式,DMA写DDR4最大带宽为4300MB/s,DMA读DDR4最大带宽为4113MB/s,采用描述符方式触发DMA数据搬移优势明显;DMA写DDR4最大带宽为4800MB/s,DMA读DDR4最大带宽为4605MB/s;
针对MF-DMA的AXIS接口测试,调用万兆网络核6个EthSubsystem组成60G网络进行收发数据,递增MTU值,发送不同长度数据包到AXIS接口,Root Port操作与AXI4验证方式类似,测试结果如图7所示;
图7与图6相比,在DMA触发模式和数据包大小相同情况下,描述符触发模式AXIS接口性能高于AXI4接口性能,寄存器模式,DMA写SFP最大带宽为1267MB/s,DMA读最大带宽为1100MB/s,RMA表DMA模式下,DMA写SFP最大带宽为4600MB/s,DMA读SFP最大带宽为4212MB/s,描述符模式下;DMA写SFP最大带宽为5075MB/s,DMA读SFP最大带宽为4800MB/s,PCIe总线利用率为79.2%;
应当说明的是,本文提出的多功能DMA设计方案支持寄存器模式触发、RAM表触发和描述符环触发三种触发方式,用户可根据数据处理要求选择合适的方式进行数据搬移。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种面向异构加速卡的多功能DMA设计方法,其特征在于,包括:
在DMA逻辑结构上采用自顶向下的方式进行优化布局,数据通信接口采用统一的AXI标准接口兼容,并对DMA控制器功能进行模块化设计。
2.如权利要求1所述的面向异构加速卡的多功能DMA设计方法,其特征在于,所述对DMA控制器功能进行模块化设计,包括:
Blockdesign开发、模块通信接口设计和DMA模块设计。
3.如权利要求2所述的面向异构加速卡的多功能DMA设计方法,其特征在于,所述对DMA控制器功能进行模块化设计,还包括:
Blockdesign开发由三部分组成,分别为:具有PCIe协议和DMA读写功能的DMA控制器接口模块、DMA引擎模块和万兆以太网模块;
模块通信接口设计,包括:AXIstream接口、AXIMM接口和AXIBRAM接口;
所述AXIstream接口、AXIMM接口和AXIBRAM接口的数据操作方式为:DMA引擎模块中的主机搬移数据到加速卡引擎单元和加速卡搬移数据到主机引擎单元,均采用AXIstream接口;主机和外部数据需要进行大容量缓存时,需采用AXIMM接口将数据写入外部DDR4;模块内部寄存器配置统一采用AXIBRAM接口;
DMA模块设计,由DMA控制器接口模块和DMA引擎模块组成;
所述DMA控制器接口模块由PCIe硬核单元、硬核接口控制单元、RAM接口转换单元和DMA读写控制单元组成;
所述DMA引擎模块由主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元、DMA描述符获取引擎单元和完成描述符写回引擎单元组成。
4.如权利要求3所述的面向异构加速卡的多功能DMA设计方法,其特征在于,所述DMA控制器接口模块,包括:
工作流程为:
PCIe硬核单元根据PCIExpress协议实现物理层、数据链路层和部分事务层;PCIe硬核单元通过完成接口和请求接口接收或发送事务层数据包,与硬核接口控制单元通信;硬核接口控制单元控制完成接口完成包命令,实现寄存器读写操作;硬核接口控制单元控制请求接口请求包命令,实现DMA读写操作;
RAM接口转换模块接收硬核接口控制单元输出的完成接口数据,转换成RAM接口,然后连接到DMA描述符获取引擎单元实现描述符寄存器配置和RAM数据读写;
DMA读写控制单元接收主机搬移数据到加速卡引擎单元的DMA读请求,组成读请求包发送到硬核接口控制单元,然后接收硬核接口控制单元读请求返回数据,输出到主机搬移数据到加速卡引擎单元;DMA读写控制单元接收加速卡搬移数据到主机引擎单元发起DMA写请求,接收加速卡搬移数据到主机引擎单元输入数据,封装DMA写请求发送到硬核接口控制单元。
5.如权利要求4所述的面向异构加速卡的多功能DMA设计方法,其特征在于,DMA引擎模块工作流程,包括:
工作流程为:
DMA描述符获取引擎单元接收RAM接口转换模块配置,根据配置信息发起DMA读描述符请求,然后将收发的描述符分发到主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元和完成描述符写回引擎单元;
主机搬移数据到加速卡引擎单元收到描述符后,根据描述符发起DMA读数据请求,输出读返回数据到AXI4接口或AXIstream接口,实现主机搬移数据到加速卡的数据搬移;加速卡搬移数据到主机引擎单元接收AXI4接口或AXI stream接口数据,根据描述符信息发起DMA写请求,将数据传输到DMA读写控制单元,实现加速卡搬移数据到主机引擎单元的数据搬移;
DMA写操作完成后,首先将DMA写完成信息发送到完成描述符写回引擎单元,其次通过完成描述符写回引擎单元检测描述符发送使能信号,最后通过DMA写将请求更新描述符传到主机端存储空间,请求更新描述符;
数据流为:
主机配置描述符引擎后,描述符队列请求引擎子单元发起描述符队列请求信息到DMA读写控制单元,请求数据搬移所需要的描述符,完成描述符请求后才能进行数据的搬移;当需要实现主机到加速卡搬移时,主机搬移数据到加速卡引擎单元会根据主机至加速卡描述符管理子单元中的描述符信息发起DMA读请求,DMA读数据返回后将数据发送到外部AXIS或AXI4接口;当需要将加速卡数据搬移到主机时,加速卡搬移数据到主机引擎单元会接收AXIS或AXI4接口数据,根据加速卡至主机描符管理子单元中的描述符信息发起DMA写请求,每当数据DMA写完成后将完成信息发送到完成描述符写回引擎单元,当每个阶段的描述符用完后,完成描述符写回引擎单元会根据完成描述符子单元中存储的完成描述符信息发起DMA写请求,将完成描述符信息发送到主机,软件根据完成信息读取数据。
6.如权利要求3至5任一所述的面向异构加速卡的多功能DMA设计方法,其特征在于,所述DMA读请求,包括:
DMA描述符获取引擎单元通过轮询检测寄存器配置,根据配置寄存器信息决定DMA启动方式;
具体流程为:
DMA描述符获取引擎单元检测主机至加速卡描述符队列启动寄存器使能,锁存描述符队列基地址寄存器、描述符队列偏移地址寄存器和描述符队列请求大小寄存器,启动DMA读操作,主机至加速卡描述符管理子单元缓存DMA读返回的描述符数据,主机搬移数据到加速卡引擎单元检测主机至加速卡描述符管理子单元中缓存的描述符信息,根据描述符信息启动DMA读操作,读取主机搬移到加速卡的数据;当检测到描述符队列结束标志有效时,则表示N个描述符使用完,主机搬移数据到加速卡引擎单元发起DMA写操作,将描述符完成信息发送到主机响应地址,请求主机更新描述符队列,主机端软件实时查询响应地址描述符更新请求信息,同时根据请求更新描述符队列;主机搬移数据到加速卡引擎单元收到DMA读返回数据后,根据描述符字段,将数据输出到AXIS接口或者AXI4接口;
DMA描述符获取引擎单元检测到寄存器方式DMA启动使能,锁存数据源地址寄存器、数据长度寄存器和数据接口寄存器,启动DMA读操作,主机搬移数据到加速卡引擎单元接收DMA读返回数据,根据数据接口寄存器信息,将数据输出到AXIS或AXI4接口,数据发送完成后产生MSI中断到主机,表示本次主机到加速卡的数据搬移完成,主机可在收到中断后再次发起寄存器类型DMA读启动;
DMA描述符获取引擎单元检测到RAM表方式DMA启动使能,DMA描述符获取引擎单元从RAM零地址开始锁存数据源地址寄存器、数据长度寄存器和STA寄存器,依次启动DMA读操作,主机搬移数据到加速卡引擎单元接收DMA读返回数据,根据STA寄存器信息,将数据输出到AXIS或AXI4接口;当检测到RAM表中结束标志后,表示最后一次DMA读请求完成后,产生MSI中断到主机,表示本次主机至加速卡数据搬移完成,主机可在收到中断后再次配置RAM表,重新发起RAM表DMA读操作。
7.如权利要求6所述的面向异构加速卡的多功能DMA设计方法,其特征在于,DMA写请求,包括:
DMA描述符获取引擎单元,根据数据输入类型并检测寄存器配置,选择对应的DMA方式实现数据搬移;
具体流程为:
DMA描述符获取引擎单元检测加速卡至主机描述符队列启动寄存器使能,锁存描述符队列基地址寄存器、描述符队列偏移地址寄存器和描述符队列请求大小寄存器,启动DMA读操作,加速卡至主机描符管理子单元缓存DMA读返回描述符信息,加速卡搬移数据到主机引擎单元接收AXIS或AXI4接口输入数据后,根据描述符信息启动DMA写操作,将加速卡的数据搬移到主机,同时将DMA写数据地址、数据长度和包序号的完成信息发送到完成描述符写回引擎单元,当检测到描述符队列中字段电平超过***设定时,表示当前描述符块使用完,加速卡搬移数据到主机引擎单元发起DMA写操作,将描述符更新请求信息发送到主机响应地址,然后完成描述符写回引擎单元也发起DMA写,将加速卡至主机完成描述符队列信息发送到主机端完成序列环,主机端软件实时查询响应地址描述符更新请求后更新描述符队列,并根据接收到的完成描述符队列信息获取加速卡至主机的数据;
加速卡搬移数据到主机引擎单元接收AXIS或AXI4接口输入数据后检测到寄存器方式DMA启动使能,从锁存数据响应地址寄存器和数据长度寄存器,启动DMA写操作,将数据从加速卡搬移到主机,DMA写操作完成后产生MSI中断到主机,主机可在收到中断后根据响应地址和数据长度获取加速卡至主机的数据;
加速卡搬移数据到主机引擎单元接收AXIS或AXI4接口输入数据后检测到RAM表方式DMA启动使能,从RAM零地址开始读出响应地址寄存器和写入数据长度,依次启动DMA写操作;当检测到RAM表中结束标志,最后一次DMA写请求完成,产生MSI中断,通知主机本次加速卡至主机数据搬移完成,主机可在收到中断后再次配置RAM表,重新发起RAM表DMA写操作。
8.一种面向异构加速卡的多功能DMA设计***,基于权利要求1~7任一所述的面向异构加速卡的多功能DMA设计方法,其特征在于,包括:
DMA引擎模块,用于对DMA进行读写控制和主机到加速卡的数据搬移或加速卡到主机的数据搬移;
所述DMA引擎模块包括,主机搬移数据到加速卡引擎单元、加速卡搬移数据到主机引擎单元、DMA描述符获取引擎单元和完成描述符写回单元;
所述DMA描述符获取引擎单元包括,描述符队列请求引擎子单元、主机至加速卡描述符管理子单元、完成描述符子单元和加速卡至主机描符管理子单元;
万兆以太网模块,用于提高***的数据传输率和网络带宽,并且能够进行长距离的传输,降低***能耗;
DMA控制器接口模块,用于实现PCIe协议和DMA控制器的读写功能,能够和主机模块进行数据的传递及存储;
主机模块,用于存储数据和接收***回传的数据以及发送***需要数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1~7任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1~7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310657333.0A CN116629176A (zh) | 2023-06-05 | 2023-06-05 | 一种面向异构加速卡的多功能dma设计方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310657333.0A CN116629176A (zh) | 2023-06-05 | 2023-06-05 | 一种面向异构加速卡的多功能dma设计方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116629176A true CN116629176A (zh) | 2023-08-22 |
Family
ID=87591849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310657333.0A Pending CN116629176A (zh) | 2023-06-05 | 2023-06-05 | 一种面向异构加速卡的多功能dma设计方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116629176A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746A (zh) * | 2024-03-28 | 2024-05-03 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
-
2023
- 2023-06-05 CN CN202310657333.0A patent/CN116629176A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746A (zh) * | 2024-03-28 | 2024-05-03 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9395921B2 (en) | Writing data using DMA by specifying a buffer address and a flash memory address | |
US20150142996A1 (en) | Dma transmission method and system thereof | |
CN103218337B (zh) | 基于wishbone总线实现主与主、从与从通信的片上***和方法 | |
CN111090221B (zh) | 用于直写式光刻***中的PCIe DMA数据传输***及其传输方法 | |
CN101162448A (zh) | 一种usb高速数据隧道的硬件传输方法 | |
CN113032293A (zh) | 缓存管理器及控制部件 | |
CN116629176A (zh) | 一种面向异构加速卡的多功能dma设计方法及*** | |
CN114168520A (zh) | 光纤通信总线装置、设备和*** | |
JP2541767B2 (ja) | スマ―ト・バス制御ユニット | |
CN115374046B (zh) | 一种多处理器数据交互方法、装置、设备及存储介质 | |
CN101452430B (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN102820061A (zh) | 嵌入式远程设备程序烧写装置及方法 | |
CN108932207A (zh) | 带有缓存区的sdio-wifi数据传输方法及*** | |
CN112256615B (zh) | Usb转换接口装置 | |
CN102841871A (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
CN101778038B (zh) | 基于千兆以太网的嵌入式设备高速数据传输*** | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
CN115794721A (zh) | 一种基于多核的PCIe网卡及其工作方法 | |
CN113533941B (zh) | 芯片接口的测试方法、装置、计算机设备和存储介质 | |
CN115794705A (zh) | 一种用于芯片原型快速功能验证的chi总线存储器 | |
CN113672549B (zh) | 一种基于非共享存储多核处理器的微***架构 | |
CN215006296U (zh) | 一种基于fpga的分布式数据传输*** | |
CN115328832A (zh) | 一种基于pcie dma的数据调度***与方法 | |
CN102184150A (zh) | 高功能环形缓冲缓存***及其控制方法 | |
CN116186793B (zh) | 一种基于risc-v的安全芯片架构及其工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |