CN115328832A - 一种基于pcie dma的数据调度系统与方法 - Google Patents
一种基于pcie dma的数据调度系统与方法 Download PDFInfo
- Publication number
- CN115328832A CN115328832A CN202211237469.8A CN202211237469A CN115328832A CN 115328832 A CN115328832 A CN 115328832A CN 202211237469 A CN202211237469 A CN 202211237469A CN 115328832 A CN115328832 A CN 115328832A
- Authority
- CN
- China
- Prior art keywords
- module
- axi
- data
- memory
- pcie
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种基于PCIE DMA的数据调度系统与方法,包括:PCIE IP模块包括BAR控制器和DMA控制器;BAR控制器通过AXI‑Lite总线连接模块分别与aximm2axis模块、axis2aximm模块和算法核心模块相互连接;DMA控制器通过AXI‑MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;DDR控制模块与DDR存储器相互连接;Block Ram控制模块与RAM存储器相互连接;aximm2axis模块和axis2aximm模块均与算法核心模块连接;通过该系统可以高效调度主机、设备及存储三者之间的数据流转。
Description
技术领域
本发明属于数据调度技术领域,特别是一种基于PCIE DMA的数据调度系统与方法。
背景技术
随着AI、大数据、5G、深度学习等技术的普及与应用发展,互联网服务器任务愈加严重,CPU性能已经不足以支撑各种视频、图像等业务需求,异构加速成为有效解决方案。异构加速通常是利用ASIC、FPGA、GPU等处理器帮助CPU进行计算,分担CPU的工作压力,即将主机内存数据搬到FPGA、GPU或专用芯片中加速计算,计算完将数据搬回到主机。然而,在数字IC/FPGA异构加速系统设计中,经常会面临数字IC/FPGA存储、主机内存以及加速算法核心三者之间的数据流调度问题。如何高效调度三者之间的数据是当前需要重点解决的技术问题。
当前基于双口RAM的调度方法一般会利用FPGA内部的片上ram(双口)作为数据缓存单元。该调度方法示意图可参照图1所示,具体调度步骤如下:
1、主机利用DMA将数据写入FPGA片上的ram中暂存(利用ram接口0);
2、算法核心读取ram中数据(利用ram接口1),计算数据;
3、算法核心将计算后的数据写回ram(利用ram接口1);
4、主机利用DMA机制将数据读回到主机内存中,或FPGA启动DMA将数据搬移至主机内存中(提前已知主机内存地址等相关信息)。
但是该方法利用双口ram作为数据缓存,缺点如下。
1、算法核心取数据时需要直接控制ram接口,该接口是ram的原始控制接口,需要控制ram使能信号、读写选择信号、地址信号、数据等,控制与计算不分离不利于算法模块的开发与计算。
2、FPGA内部片上ram存储资源有限,假如一次性计算的数据量较大,则利用ram缓存的方案将不可行。
3、该方案较为简单,不规范,通用性极差,可满足部分小规模应用与开发,无法满足大规模集成电路系统级别的集成。
因此,如何高效调度主机、设备及存储三者之间的数据流转,让数据真正的流水起来,同时为系统级别的设计与集成提供便利,成为当前研究的关键问题。
发明内容
鉴于上述问题,本发明提供一种至少解决上述部分技术问题的一种基于PCIE DMA的数据调度系统与方法,该方法可以调度FPGA、数字芯片数据流,从而实现高效调度主机、设备及存储三者之间的数据流转。
一方面,本发明实施例提供了一种基于PCIE DMA的数据调度系统,包括:PCIE IP模块、AXI-Lite总线连接模块、aximm2axis模块、axis2aximm模块、算法核心模块、AXI-MM总线连接模块、DDR控制模块和Block Ram控制模块;
其中:
所述PCIE IP模块包括BAR控制器和DMA控制器;
所述BAR控制器通过AXI-Lite总线连接模块分别与aximm2axis模块、axis2aximm模块和算法核心模块相互连接;
所述DMA控制器通过AXI-MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;所述DDR控制模块与DDR存储器相互连接;所述Block Ram控制模块与RAM存储器相互连接;
所述aximm2axis模块和axis2aximm模块均通过axi_stream接口与算法核心模块连接;且所述aximm2axis模块和axis2aximm模块均通过所述AXI-MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;
所述aximm2axis模块和axis2aximm模块均通过axi_mm接口与所述AXI-MM总线连接模块连接;其中:
所述aximm2axis模块用于将axi-mm总线转化为axi-stream总线,从而实现将DDR存储器或RAM存储器中的数据搬移到算法核心模块中;
所述axis2aximm模块用于将axi-stream总线转化为axi-mm总线,从而实现将算法核心模块计算后的数据搬移到DDR存储器或RAM存储器中。
进一步地,所述DMA控制器通过所述AXI-MM总线连接模块与所述aximm2axis模块、axis2aximm模块、DDR控制模块以及Block Ram控制模块形成互联矩阵。
进一步地,所述aximm2axis模块包括:第一axi_lite接口、第一axi_mm接口和第一axi_stream接口;
所述第一axi_lite接口,用于通过所述AXI-Lite总线连接模块与所述BAR控制器相互连接,实现BAR控制器与aximm2axis模块之间的数据通信;
所述第一axi_mm接口,用于通过所述AXI-MM总线连接模块与所述DDR控制模块和Block Ram控制模块相互连接,实现将DDR存储器或RAM存储器中的数据搬移到aximm2axis模块中;
所述第一axi_stream接口,用于连接所述算法核心模块,实现将aximm2axis模块中的数据搬移到算法核心模块中。
进一步地,所述aximm2axis模块还包括:第一寄存器、第一状态控制机、第一FIFO存储器、和第一数据选择器;
所述第一寄存器与第一状态控制机连接;
所述第一状态控制机,用于控制axi-mm总线的读地址通道,还用于将axi-mm总线中读数据通道的数据取出存入所述第一FIFO存储器中;
所述第一FIFO存储器,用于缓存在axi-mm总线处读到的数据,并发送至所述第一数据选择器中;
所述第一数据选择器根据配置到的通道标识,将数据分配到对应的第一axi_stream接口中。
进一步地,所述第一寄存器包括读地址初始地址、读数据长度、输出通道标识和读开始信号。
进一步地,所述axis2aximm模块包括第二axi_lite接口、第二axi_stream接口和第二axi_mm接口;
所述第二axi_lite接口,用于通过所述AXI-Lite总线连接模块与所述BAR控制器相互连接,实现BAR控制器与axis2aximm模块之间的数据通信;
所述第二axi_stream接口,用于连接所述算法核心模块,实现将算法核心模块中的数据搬移到axis2aximm模块中;
所述第二axi_mm接口,用于通过所述AXI-MM总线连接模块与所述DDR控制模块和Block Ram控制模块相互连接,实现将axis2aximm模块中的数据搬移到DDR存储器或RAM存储器中。
进一步地,所述axis2aximm模块包括第二寄存器、第二状态控制机、第二FIFO存储器和第二数据选择器;
所述第二数据选择器根据配置到的通道标识,将对应的第二axi_stream接口中的数据缓存到所述第二FIFO存储器中;
所述第二状态控制机,用于将第二FIFO存储器中的数据放入到axi-mm总线的写地址通道,还用于控制axi-mm总线的读地址通道;
所述第二寄存器与第二状态控制机连接。
进一步地,所述第二寄存器包括写地址初始地址、写数据长度、输入通道标识和写开始信号。
另一方面,本发明实施例还提供了一种基于PCIE DMA的数据调度方法,使用上述的基于PCIE DMA的数据调度系统,完成高效调度主机、设备及存储三者之间的数据流转;该数据调度方法包括以下步骤:
S1、基于上位机准备原始数据;
S2、准备写描述符;所述写描述符包括:设备目的地址、主机源地址和写数据长度;
S3、配置写DMA控制器相关的第二寄存器、主机源地址、设备目标地址和写描述符个数;
S4、启动写DMA控制器,将上位机中的原始数据搬移到DDR存储器或RAM存储器中,等待写完成中断;当完成中断后,执行S5;
S5、通过PCIE BAR读写配置aximm2axis模块、axis2aximm模块和算法核心模块;
S6、等待axis2aximm模块完成中断;当完成中断后,执行S7;
S7、准备读描述符;所述读描述符包括:主机目的地址、设备源地址和读数据长度;
S8、配置读DMA控制器相关的第一寄存器、设备源地址、主机目标地址和读描述符个数;
S9、启动读DMA控制器,将DDR存储器或RAM存储器中的数据搬移到上位机中,等待读完成中断。
进一步地,所述S5具体包括:
通过PCIE BAR读写配置aximm2axis模块中读地址初始地址、读数据总长度;
通过PCIE BAR读写配置axis2aximm模块中写地址初始地址、写数据总长度;
通过PCIE BAR读写配置算法核心模块中的相关寄存器;
通过PCIE BAR读写配置aximm2axis模块、axis2aximm模块和算法核心模块中的start信号,开始搬移与计算。
与现有技术相比,本发明记载的一种基于PCIE DMA的数据调度系统与方法,具有如下有益效果:
1、本发明中全部模块均采用AXI标准总线协议设计,极大地方便了系统级别的设计与集成。
2、本发明中互联矩阵内部的所有模块之间可以相互通信,由于互联矩阵的引入,矩阵中可以在有限的范围内删除或添加不同的互联模块;更新的模块又不会影响其他模块的正常工作,从而达到了模块之间的去耦合效果,在最大程度保证了各个模块的独立性、可移植性和可维护性。
3、本发明中,通过aximm2axis模块将axi-mm总线转化为axi-stream总线,简化了算法核心模块的接口控制,方便算法核心模块专注于计算,而非控制。
4、本发明的调度方法可以做到全流水,也就是各个模块均可以同步进行,无需等待上一级模块任务完全完成,也就是说读数据、计算与写回计算数据可以同时进行,大大增加了传输与计算效率。
5、本发明中通过寄存器配置地址、长度、通道标识的方法,提高了系统级别的灵活性,将控制权限尽可能交给上位机,极大的方便上位机程序开发与设计。
6、本发明中所有存储均可挂在axi-mm总线上,可以调度任意DDR存储器或RAM存储器,而传统的方法只能利用双口ram,也只能调度片上ram存储。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为现有相关技术提供的基于双口RAM的调度方法流程框图。
图2为本发明实施例提供的基于PCIE DMA的数据调度系统框架示意图。
图3为本发明实施例提供的aximm2axis模块框架示意图。
图4为本发明实施例提供的axis2aximm模块框架示意图。
图5为本发明实施例提供的基于PCIE DMA的数据调度方法流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
以下针对本领域中的部分关键术语定义及缩写进行说明:
FPGA(Field Programmable Gate Arrays):现场可编程门阵列
IC(Integrated Circuit):集成电路芯片
FIFO:先入先出存储器。
DDR:双倍速率同步动态随机存储器,是内存的其中一种。
RAM(Random Access Memory):随机存取存储器。
AXI总线:(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分。
PCIE(peripheral component interconnect express):是一种高速串行计算机扩展总线标准。
DMA(Direct Memory Access,直接存储器访问)是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。
ASIC(Application Specific Integrated Circuit):专用集成电路。
AXI-Lite:AXI4总线精简模式,主要用于寄存器读写,不支持突发。
AXI-stream:同axis,AXI4总线流模式,协议简单,没有地址线,主要用于大量数据搬移。
axi-mm:axi4总线,具有写地址、写数据、写相应、读地址、读数据5个独立通道,支持突发,主要用于大量数据搬移,协议复杂。
MUX(multiplexer):数据选择器。
参见图2所示,本发明实施例提供了一种基于PCIE DMA的数据调度系统,包括:PCIE IP模块、AXI-Lite总线连接模块(AXI-Lite Interconnect)、aximm2axis模块、axis2aximm模块、算法核心模块(kernel)、AXI-MM总线连接模块(AXI-MM Interconnect)、DDR控制模块(DDR controller)和Block Ram控制模块(Block Ram Controller);其中:PCIE IP模块的主要功能为DMA搬移数据、BAR空间寄存器读写以及中断上报等;AXI-Lite总线连接模块与AXI-MM总线连接模块为总线互联模块,用于总线拆分仲裁,其中S代表总线slave,M代表总线master;算法核心模块负责加速算法;DDR控制模块与Block Ram控制模块分别用于控制外部存储器DDR和内部存储器RAM;具体为:
PCIE IP模块包括BAR控制器和DMA控制器;BAR控制器通过AXI-Lite总线连接模块分别与aximm2axis模块、axis2aximm模块和算法核心模块相互连接;DMA控制器通过AXI-MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;DDR控制模块与DDR存储器相互连接;Block Ram控制模块与RAM存储器相互连接;
aximm2axis模块和axis2aximm模块均通过axi_stream接口与算法核心模块连接;且aximm2axis模块和axis2aximm模块均通过AXI-MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;aximm2axis模块和axis2aximm模块均通过axi_mm接口与AXI-MM总线连接模块连接;其中:aximm2axis模块用于将axi-mm总线转化为axi-stream总线,从而实现将DDR存储器或RAM存储器中的数据搬移到算法核心模块中;axis2aximm模块用于将axi-stream总线转化为axi-mm总线,从而实现将算法核心模块计算后的数据搬移到DDR存储器或RAM存储器中。
本发明实施例中,DMA控制器通过AXI-MM总线连接模块与aximm2axis模块、axis2aximm模块、DDR控制模块以及Block Ram控制模块形成互联矩阵;该互联矩阵内部的所有模块之间可以相互通信,由于互联矩阵的引入,矩阵中可以在有限的范围内删除或添加不同的互联模块;更新的模块又不会影响其他模块的正常工作,从而达到了模块之间的去耦合效果,在最大程度保证了各个模块的独立性、可移植性和可维护性。
图2中为了方便表达,对部分关键术语采用了缩写的形式。
接下来分别对aximm2axis模块和axis2aximm模块进行说明。
1、aximm2axis模块
参见图3所示,本发明实施例中,aximm2axis模块包括第一axi_lite接口、第一axi_mm接口、第一axi_stream接口(master)、第一寄存器、第一状态控制机、第一FIFO存储器和第一数据选择器;其中:
第一axi_lite接口(即图3中的s_axi_lite),用于通过AXI-Lite总线连接模块与BAR控制器相互连接,实现BAR控制器与aximm2axis模块之间的数据通信;第一axi_mm接口(即图3中的axi_mm),用于通过AXI-MM总线连接模块与DDR控制模块和Block Ram控制模块相互连接,实现将DDR存储器或RAM存储器中的数据搬移到aximm2axis模块中;第一axi_stream接口(即图3中的axi_stream_out),用于连接算法核心模块,实现将aximm2axis模块中的数据搬移到算法核心模块中;算法核心模块在计算完成后按照控制指令通过axi_stream接口输出。第一寄存器包括读地址初始地址、读数据长度、输出通道标识和读开始信号等。其中:第一寄存器与第一状态控制机连接;第一状态控制机,用于控制axi-mm总线的读地址通道,包括写地址、写突发长度,握手信号等;第一状态控制机还用于将axi-mm总线中读数据通道的数据取出存入第一FIFO存储器中;第一FIFO存储器用于缓存在axi-mm总线处读到的数据,并发送至第一数据选择器中;第一数据选择器(MUX)根据配置到的通道标识,将数据分配到对应的第一axi_stream接口中。
2、axis2aximm模块
参见图4所示,本发明实施例中,axis2aximm模块与aximm2axis模块相似,其工作原理可以理解为aximm2axis的逆过程。axis2aximm模块包括:第二axi_lite接口、第二axi_stream接口(slave)、第二axi_mm接口、第二寄存器、第二状态控制机、第二FIFO存储器和第二数据选择器(MUX);其中:
第二axi_lite接口(即图4中的s_axi_lite),用于通过AXI-Lite总线连接模块与BAR控制器相互连接,实现BAR控制器与axis2aximm模块之间的数据通信;第二axi_stream接口(即图4中的axi_stream_in),用于连接算法核心模块,实现将算法核心模块中的数据搬移到axis2aximm模块中;第二axi_mm接口(即图4中的axi_mm),用于通过AXI-MM总线连接模块与DDR控制模块和Block Ram控制模块相互连接,实现将axis2aximm模块中的数据搬移到DDR存储器或RAM存储器中。第二数据选择器(MUX)根据配置到的通道标识,将对应的第二axi_stream接口中的数据缓存到第二FIFO存储器中;第二状态控制机用于将第二FIFO存储器中的数据放入到axi-mm总线的写地址通道,还用于控制axi-mm总线的写地址通道,包括写地址、写突发长度,握手信号等;第二寄存器与第二状态控制机连接,且第二寄存器包括写地址初始地址、写数据长度、输入通道标识和写开始信号等。
参见图5所示,本发明实施例还提供了一种基于PCIE DMA的数据调度方法,应用于上述所述的基于PCIE DMA的数据调度系统;通过该方法可以实现高效调度主机、设备及存储三者之间的数据流转;该方法可采用芯片(ASIC)方案实现,其中芯片内部集成主CPU处理器和协CPU处理器(ARM或RISC-V均可)。
多DMA通道可以执行更高效的读写速率,接下来以单DMA通道距离,对本发明实施例提供的一种基于PCIE DMA的数据调度方法进行说明;该方法具体包括以下步骤:
S1、上位机申请空间,准备原始数据;
S2、开配空间,准备写描述符;该写描述符包括设备目的地址、主机源地址和写数据长度等;
S3、配置写DMA控制器相关的第二寄存器、主机源地址(主机描述符存储地址)、设备目标地址(设备描述符存储地址)和写描述符个数;
S4、启动写DMA控制器,将上位机中的原始数据搬移到DDR存储器或RAM存储器中,等待写完成中断;当完成中断后,执行S5;
S5、通过PCIE bar读写配置aximm2axis模块、axis2aximm模块和算法核心模块;具体包括:
通过PCIE BAR读写配置aximm2axis模块中读地址初始地址、读数据总长度;
通过PCIE BAR读写配置axis2aximm模块中写地址初始地址、写数据总长度;
通过PCIE BAR读写配置算法核心模块中的相关寄存器;
通过PCIE BAR读写配置aximm2axis模块、axis2aximm模块和算法核心模块中的start信号,开始搬移与计算;
S6、等待axis2aximm模块完成中断;当完成中断后,执行S7;
S7、开配空间,准备读描述符;所述读描述符包括主机目的地址、设备源地址和读数据长度;
S8、配置读DMA控制器相关的第一寄存器、设备源地址(设备描述符存储地址)、主机目标地址(主机描述符存储地址)和读描述符个数;
S9、启动读DMA控制器,将设备计算后,DDR存储器或RAM存储器中的数据搬移到上位机中进行存储,等待读完成中断。
在本发明实施例中,该方法也可采用FPGA方案,通过使用FPGA内部逻辑资源实现基于PCIE dma的总线数据的高效调度机制。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于PCIE DMA的数据调度系统,其特征在于,包括:PCIE IP模块、AXI-Lite总线连接模块、aximm2axis模块、axis2aximm模块、算法核心模块、AXI-MM总线连接模块、DDR控制模块和Block Ram控制模块;
其中:
所述PCIE IP模块包括BAR控制器和DMA控制器;
所述BAR控制器通过AXI-Lite总线连接模块分别与aximm2axis模块、axis2aximm模块和算法核心模块相互连接;
所述DMA控制器通过AXI-MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;所述DDR控制模块与DDR存储器相互连接;所述Block Ram控制模块与RAM存储器相互连接;
所述aximm2axis模块和axis2aximm模块均通过axi_stream接口与算法核心模块连接;且所述aximm2axis模块和axis2aximm模块均通过所述AXI-MM总线连接模块分别与DDR控制模块和Block Ram控制模块相互连接;
所述aximm2axis模块和axis2aximm模块均通过axi_mm接口与所述AXI-MM总线连接模块连接;其中:
所述aximm2axis模块用于将axi-mm总线转化为axi-stream总线,从而实现将DDR存储器或RAM存储器中的数据搬移到算法核心模块中;
所述axis2aximm模块用于将axi-stream总线转化为axi-mm总线,从而实现将算法核心模块计算后的数据搬移到DDR存储器或RAM存储器中。
2.如权利要求1所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述DMA控制器通过所述AXI-MM总线连接模块与所述aximm2axis模块、axis2aximm模块、DDR控制模块以及Block Ram控制模块形成互联矩阵。
3.如权利要求1所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述aximm2axis模块包括:第一axi_lite接口、第一axi_mm接口和第一axi_stream接口;
所述第一axi_lite接口,用于通过所述AXI-Lite总线连接模块与所述BAR控制器相互连接,实现BAR控制器与aximm2axis模块之间的数据通信;
所述第一axi_mm接口,用于通过所述AXI-MM总线连接模块与所述DDR控制模块和BlockRam控制模块相互连接,实现将DDR存储器或RAM存储器中的数据搬移到aximm2axis模块中;
所述第一axi_stream接口,用于连接所述算法核心模块,实现将aximm2axis模块中的数据搬移到算法核心模块中。
4.如权利要求3所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述aximm2axis模块还包括:第一寄存器、第一状态控制机、第一FIFO存储器、和第一数据选择器;
所述第一寄存器与第一状态控制机连接;
所述第一状态控制机,用于控制axi-mm总线的读地址通道,还用于将axi-mm总线中读数据通道的数据取出存入所述第一FIFO存储器中;
所述第一FIFO存储器,用于缓存在axi-mm总线处读到的数据,并发送至所述第一数据选择器中;
所述第一数据选择器根据配置到的通道标识,将数据分配到对应的第一axi_stream接口中。
5.如权利要求4所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述第一寄存器包括读地址初始地址、读数据长度、输出通道标识和读开始信号。
6.如权利要求1所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述axis2aximm模块包括第二axi_lite接口、第二axi_stream接口和第二axi_mm接口;
所述第二axi_lite接口,用于通过所述AXI-Lite总线连接模块与所述BAR控制器相互连接,实现BAR控制器与axis2aximm模块之间的数据通信;
所述第二axi_stream接口,用于连接所述算法核心模块,实现将算法核心模块中的数据搬移到axis2aximm模块中;
所述第二axi_mm接口,用于通过所述AXI-MM总线连接模块与所述DDR控制模块和BlockRam控制模块相互连接,实现将axis2aximm模块中的数据搬移到DDR存储器或RAM存储器中。
7.如权利要求6所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述axis2aximm模块包括第二寄存器、第二状态控制机、第二FIFO存储器和第二数据选择器;
所述第二数据选择器根据配置到的通道标识,将对应的第二axi_stream接口中的数据缓存到所述第二FIFO存储器中;
所述第二状态控制机,用于将第二FIFO存储器中的数据放入到axi-mm总线的写地址通道,还用于控制axi-mm总线的读地址通道;
所述第二寄存器与第二状态控制机连接。
8.如权利要求7所述的一种基于PCIE DMA的数据调度系统,其特征在于,所述第二寄存器包括写地址初始地址、写数据长度、输入通道标识和写开始信号。
9.一种基于PCIE DMA的数据调度方法,其特征在于,使用如权利要求1-8任一项所述的基于PCIE DMA的数据调度系统,完成高效调度主机、设备及存储三者之间的数据流转;该数据调度方法包括以下步骤:
S1、基于上位机准备原始数据;
S2、准备写描述符;所述写描述符包括:设备目的地址、主机源地址和写数据长度;
S3、配置写DMA控制器相关的第二寄存器、主机源地址、设备目标地址和写描述符个数;
S4、启动写DMA控制器,将上位机中的原始数据搬移到DDR存储器或RAM存储器中,等待写完成中断;当完成中断后,执行S5;
S5、通过PCIE BAR读写配置aximm2axis模块、axis2aximm模块和算法核心模块;
S6、等待axis2aximm模块完成中断;当完成中断后,执行S7;
S7、准备读描述符;所述读描述符包括:主机目的地址、设备源地址和读数据长度;
S8、配置读DMA控制器相关的第一寄存器、设备源地址、主机目标地址和读描述符个数;
S9、启动读DMA控制器,将DDR存储器或RAM存储器中的数据搬移到上位机中,等待读完成中断。
10.如权利要求9所述的一种基于PCIE DMA的数据调度方法,其特征在于,所述S5具体包括:
通过PCIE BAR读写配置aximm2axis模块中读地址初始地址、读数据总长度;
通过PCIE BAR读写配置axis2aximm模块中写地址初始地址、写数据总长度;
通过PCIE BAR读写配置算法核心模块中的相关寄存器;
通过PCIE BAR读写配置aximm2axis模块、axis2aximm模块和算法核心模块中的start信号,开始搬移与计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211237469.8A CN115328832B (zh) | 2022-10-11 | 2022-10-11 | 一种基于pcie dma的数据调度系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211237469.8A CN115328832B (zh) | 2022-10-11 | 2022-10-11 | 一种基于pcie dma的数据调度系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328832A true CN115328832A (zh) | 2022-11-11 |
CN115328832B CN115328832B (zh) | 2023-01-17 |
Family
ID=83913620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211237469.8A Active CN115328832B (zh) | 2022-10-11 | 2022-10-11 | 一种基于pcie dma的数据调度系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328832B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150286438A1 (en) * | 2014-04-03 | 2015-10-08 | Lsi Corporation | System, Method and Computer-Readable Medium for Dynamically Configuring an Operational Mode in a Storage Controller |
CN108897703A (zh) * | 2018-05-30 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种基于pcie的高速数据传输系统及方法 |
CN109412914A (zh) * | 2018-08-31 | 2019-03-01 | 南京理工大学 | 流数据与axi接口通信装置 |
CN109471816A (zh) * | 2018-11-06 | 2019-03-15 | 西安微电子技术研究所 | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 |
US20190243781A1 (en) * | 2018-02-08 | 2019-08-08 | Xilinx, Inc. | Customizable multi queue dma interface |
CN110362512A (zh) * | 2019-07-18 | 2019-10-22 | 成都谐盈科技有限公司 | 一种面向sca和sdr的快速系统重构方法 |
CN113641612A (zh) * | 2021-08-16 | 2021-11-12 | 中国科学院近代物理研究所 | 一种多通道数据实时处理设备 |
-
2022
- 2022-10-11 CN CN202211237469.8A patent/CN115328832B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150286438A1 (en) * | 2014-04-03 | 2015-10-08 | Lsi Corporation | System, Method and Computer-Readable Medium for Dynamically Configuring an Operational Mode in a Storage Controller |
US20190243781A1 (en) * | 2018-02-08 | 2019-08-08 | Xilinx, Inc. | Customizable multi queue dma interface |
CN108897703A (zh) * | 2018-05-30 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种基于pcie的高速数据传输系统及方法 |
CN109412914A (zh) * | 2018-08-31 | 2019-03-01 | 南京理工大学 | 流数据与axi接口通信装置 |
CN109471816A (zh) * | 2018-11-06 | 2019-03-15 | 西安微电子技术研究所 | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 |
CN110362512A (zh) * | 2019-07-18 | 2019-10-22 | 成都谐盈科技有限公司 | 一种面向sca和sdr的快速系统重构方法 |
CN113641612A (zh) * | 2021-08-16 | 2021-11-12 | 中国科学院近代物理研究所 | 一种多通道数据实时处理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115328832B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
KR100840140B1 (ko) | 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법 | |
KR100881049B1 (ko) | 복수의 어드레스 2 채널 버스 구조 | |
CN1570907B (zh) | 多处理器系统 | |
CN111338996B (zh) | 一种支持多协议的复合总线控制器 | |
CN109857702B (zh) | 一种基于机器人的激光雷达数据读写控制系统及芯片 | |
CN109308283A (zh) | 一种SoC片上系统及其外设总线切换方法 | |
CN116069711B (zh) | 直接内存访问控制器、异构设备、内存访问方法及介质 | |
CN103714026A (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
US20070156980A1 (en) | Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response | |
US6954869B2 (en) | Methods and apparatus for clock domain conversion in digital processing systems | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
CN109840233A (zh) | 基于fpga的60x总线桥接系统、方法及介质 | |
WO2022095439A1 (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
JP2023505261A (ja) | メモリと分散計算アレイとの間のデータ転送 | |
JPH10171712A (ja) | プロセッサ・バスによるi/oトラフィック伝送 | |
US7774513B2 (en) | DMA circuit and computer system | |
CN115328832B (zh) | 一种基于pcie dma的数据调度系统与方法 | |
CN116303169A (zh) | Dma控制装置和方法及芯片 | |
JP4928683B2 (ja) | データ処理装置 | |
CN107807888B (zh) | 一种用于soc架构的数据预取系统及其方法 | |
CN110413562B (zh) | 一种具有自适应功能的同步系统和方法 | |
CN112231261A (zh) | 一种用于axi总线的id号压缩装置 | |
US20040064662A1 (en) | Methods and apparatus for bus control in digital signal processors |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |