CN118260225B - 一种基于fpga的多通道dma实现方法 - Google Patents

一种基于fpga的多通道dma实现方法 Download PDF

Info

Publication number
CN118260225B
CN118260225B CN202410675341.2A CN202410675341A CN118260225B CN 118260225 B CN118260225 B CN 118260225B CN 202410675341 A CN202410675341 A CN 202410675341A CN 118260225 B CN118260225 B CN 118260225B
Authority
CN
China
Prior art keywords
dma
data
ctrl
transmission
channel
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.)
Active
Application number
CN202410675341.2A
Other languages
English (en)
Other versions
CN118260225A (zh
Inventor
郭斌
闫晗
王凯杰
方枭
屈伸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Wolei Intelligent Technology Co ltd
Original Assignee
Hangzhou Wolei Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Wolei Intelligent Technology Co ltd filed Critical Hangzhou Wolei Intelligent Technology Co ltd
Priority to CN202410675341.2A priority Critical patent/CN118260225B/zh
Publication of CN118260225A publication Critical patent/CN118260225A/zh
Application granted granted Critical
Publication of CN118260225B publication Critical patent/CN118260225B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明提供一种基于FPGA的多通道DMA实现方法,PS对DDR内存进行划分管理,并将控制信息传递给PL中的DMA_CTRL,根据数据需要传输的方向和控制信息,DMA_CTRL将数据在PS与PL之间进行传输,为DMA的每个通道均分配两个BUFF,数据传输过程中确保PS和PL不会同时操作同一段BUFF。可实现多通道DMA、多地址、高灵活度的数据传输,为了解决在DMA数据传输时,减小对逻辑资源的占用率,多路数据传输时只需要单路DMA进行分时复用,降低逻辑开发时间成本,减小了硬件选型成本。

Description

一种基于FPGA的多通道DMA实现方法
技术领域
本发明涉及大数据传输交互技术领域,还涉及分段式内存管理、DMA传输分时复用、AXI总线运用、高速DMA接口处理等技术领域,具体是关于一种基于FPGA的多通道DMA实现方法。
背景技术
计算机技术的发展日趋成熟,在大数据领域存储容量和数据都有巨大的提升,对存储设备的容量及读写速度的要求更加苛刻,FPGA(现场可编程门阵列)作为一种可编程阵列以及内嵌的多种软核,在高速信号领域的应用越来越广泛,FPGA与计算机之间的数据传输时通常采用DMA(直接内存存取)传输方式来加快数据传输速度,降低CPU负荷,DMA控制器可以将数据从一个地址空间(计算机)搬移到另一个地址空间(FPGA),搬移过程不需要CPU参与,因此节省了CPU资源。然而传统的DMA运用方法实现的是将数据从一个地址传输到另一个地址,当需要传输多路地址的数据时就会需要多路DMA,这就会导致逻辑资源占用率大,很多逻辑资源较小的可编程系统无法支持多个DMA同时存在,所以在芯片选型上大大增加了硬件成本。
现有的DMA运用技术实现的一对一传输,资源利用率低,多路数据传输时对逻辑资源和硬件成本要求高。
前述背景技术知识的记载旨在帮助本领域普通技术人员理解与本发明较为接近的现有技术,同时便于对本发明的发明构思及技术方案的理解,应当明确的是,在没有明确的证据表明上述内容在本专利申请的申请日前已公开的情况下,上述背景技术不应当用于评价本申请技术方案的新创性。
发明内容
技术问题
为了解决上述问题及针对于全可编程片上系统中PS和PL之间大数据传输时传输速度低和资源占用率大的问题,本发明的目的在于提供一种基于FPGA的多通道DMA数据传输方式,可作为一种通用IP嵌入到任意平台的FPGA中,在资源占用很小的情况下,对多路数据实现快速、灵活的传输。
技术方案
为了实现上述目的,本申请发明人进行了深入研究,结果发现了基于FPGA的多通道DMA数据传输方式,可实现多通道DMA、多地址、高灵活度的数据传输,为了解决在DMA数据传输时,减小对逻辑资源的占用率,多路数据传输时只需要单路DMA进行分时复用,降低逻辑开发时间成本,减小了硬件选型成本。
即,本发明为:
一种基于FPGA的多通道DMA实现方法,包括:
PS对DDR内存进行划分管理,并将控制信息传递给PL中的DMA_CTRL,根据数据需要传输的方向和控制信息,DMA_CTRL将数据在PS与PL之间进行传输,为DMA的每个通道均分配两个BUFF,数据传输过程中确保PS和PL不会同时操作同一段BUFF。
本发明提出的基于FPGA的多通道DMA实现方法,在数据传输过程中,确保PS和PL不会同时操作同一段BUFF,能够在最小的资源消耗、更小的硬件资源要求的情况下对多路数据实现多通道、多地址、快速、灵活的传输,有利于大幅度降低硬件成本和开发时间成本,不仅适用于全可编程片上系统,还可以应用于其它FPGA芯片,实现大数据的传输。
进一步地,所述PS对DDR内存进行划分管理意指在DDR内存中划分出至少一个BUFF。
进一步地,所述控制信息包括内存地址和划分规则信息。
进一步地,PS通过状态查询的方式,来确定当前可以操作的BUFF。
进一步地,PL通过PS的配置信息对DMA进行调度,且DMA每个通道都有一个数据缓存FIFO。
进一步地,所述DMA_CTRL将数据在PS与PL之间进行传输包括DMA_CTRL将数据从DDR对应的BUFF中传输到PL中对应的FIFO中。
更进一步地,所述DMA_CTRL将数据从DDR对应的BUFF中传输到PL中对应的FIFO中执行下述步骤:当DMA_CTRL收到数据传输请求后,DMA_CTRL控制DMA_IP去DDR对应的BUFF中读取数据存放到对应的FIFO中,当FIFO中的数据减少到设定的阈值时,DMA_CTRL会自动对FIFO中的数据进行补充,直到数据长度达到设定的传输长度。
进一步地,所述DMA_CTRL将数据在PS与PL之间进行传输包括DMA_CTRL将数据从PL对应的FIFO中传输到DDR对应的BUFF中。
更进一步地,DMA_CTRL将数据从PL对应的FIFO中传输到DDR对应的BUFF中执行下述步骤:当DMA_CTRL收到数据传输请求后,DMA_CTRL按照DMA的突发长度自动将FIFO中的数据传输到DDR对应的BUFF中,直到传输的数据长度达到设定的传输长度。
进一步地,当多个通道同时申请DMA传输时,DMA_CTRL会调度DMA对不同通道的数据进行分时传输,实现单个DMA分时传输多个通道的数据。对不同通道数据进行分时传输能够充分利用DMA高速传输的性能,实现单个DMA分时传输多个通道的数据,显著的提升数据传输的效率。
一种基于FPGA的多通道DMA数据传输方法,所述方法执行前述所述基于FPGA的多通道DMA实现方法的至少一个步骤。
一种计算机设备,所述计算机设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现前述所述基于FPGA的多通道DMA实现方法的至少一个步骤,或前述所述基于FPGA的多通道DMA数据传输方法的至少一个步骤。
在符合本领域常识的基础上,上述各优选条件,可以相互组合,得到具体实施方式。
有益效果
根据本发明,通过对DDR内存进行划分管理,将DDR内存划分出多个BUFF,DMA_CTRL依据内存地址和划分规则信息将数据在PS与PL之间进行传输,为DMA的每个通道均分配两个BUFF,在数据传输过程中确保PS和PL不会同时操作同一段BUFF。可实现多通道DMA、多地址、高灵活度的数据传输,为了解决在DMA数据传输时,减小对逻辑资源的占用率,多路数据传输时只需要单路DMA进行分时复用,降低逻辑开发时间成本,减小了硬件选型成本。
当多个通道同时申请DMA传输时,DMA_CTRL会调度DMA对不同通道的数据进行分时传输,实现单个DMA分时传输多个通道的数据。充分利用DMA高速传输的性能。
本发明提供的基于FPGA的多通道DMA实现方法或数据传输方法可适用于全可编程片上系统,用于PS和PL之间的大数据交互,也可以应用于其它FPGA芯片,实现大数据的高效传输。
本发明为实现上述目的而采用了上述技术方案,弥补了现有技术的不足,设计合理,操作方便。
附图说明
为让本发明的上述和/或其他目的、特征、优点与实例能更明显易懂,下面将对本发明的具体实施方式中所需要使用的附图进行简单的介绍,显然地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的情况下还可以根据这些附图获得其他的附图。
图1表示基于FPGA的多通道DMA实现方法的系统架构图;
图2表示数据传输方法流程图;
图3表示数据传输方向为PS到PL时的流程图;
图4表示数据传输方向为PL到PS时的流程图。
具体实施方式
本领域技术人员可以借鉴本文内容,适当替换和/或改动工艺参数实现,然而特别需要指出的是,所有类似的替换和/或改动对本领域技术人员来说是显而易见的,它们都被视为包括在本发明。本发明所述产品和制备方法已经通过较佳实例进行了描述,相关人员明显能在不脱离本发明内容、精神和范围内对本文所述的产品和制备方法进行改动或适当变更与组合,来实现和应用本发明技术。
除非另有定义,本文所使用的技术和科学术语,具有本发明所属领域的普通技术人员通常所理解的相同的含义。本发明使用本文中所描述的方法和材料;但本领域中已知的其他合适的方法和材料也可以被使用。本文中所描述的材料、方法和实例仅是说明性的,并不是用来作为限制。所有出版物、专利申请案、专利案、临时申请案、数据库条目及本文中提及的其它参考文献等,其整体被并入本文中作为参考。若有冲突,以本说明书包括定义为准。
除非具体说明,本文所描述的材料、方法和实例仅是示例性的,而非限制性的。尽管与本文所述的那些方法和材料类似或等同的方法和材料可用于本发明的实施或测试,但本文仍描述了合适的方法和材料。
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。同时,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了便于理解本发明的实施例,首先对本发明实施例中可能涉及的缩略语和关键术语进行解释说明或定义,对于未定义的缩略语或关键术语,均为本领域技术人员所常规理解。
FPGA:Field Programmable Gate Array,现场可编程门阵列;
DMA:Direct Memory Access,直接内存存取;
PS:Processing System,处理系统,即与FPGA无关的ARM的SOC的部分;
PL:Programmable Logic,可编程逻辑,即FPGA部分;
MCDMA:Multi-channel DMA,多通道DMA数据传输方式;
BUFF:DDR中的内存段;
DDR_CTRL:DDR控制器;
AXI:内部传输总线;
DMA_IP:DMA的IP核;
DMA_CTRL:DMA控制与调度单元;
FIFO:PL中的数据缓存单元;
DMA_write:DMA写数据模块;
DMA_read:DMA读数据模块;
应用单元:PL中对FIFO中的数据使用的模块。
以下详细描述本发明
实施例1:
提供一种基于FPGA的多通道DMA实现方法,包括:PS对DDR内存进行划分管理,并将内存地址和划分规则信息传递给PL中的DMA_CTRL,根据数据需要传输的方向和控制信息,DMA_CTRL将数据在PS与PL之间进行传输,为DMA的每个通道均分配两个BUFF,数据传输过程中确保PS和PL不会同时操作同一段BUFF。
如图1所示,基于FPGA的多通道DMA实现方法的系统架构包括:
PS部分:
PS部分对DDR内存进行划分管理,在DDR内存中划分出多个BUFF,给DMA每个通道分配两个BUFF,并将内存地址和划分规则信息传递给PL中的DMA_CTRL,保证在数据传输时数据可以连续传输,保证PS和PL不会同时操作同一段BUFF,PS通过状态查询的方式,来确定当前可以操作的BUFF。
PL部分
PL部分通过PS的配置信息对DMA进行调度,DMA每个通道都有一个数据缓存FIFO。当BUFF中的数据减少到设定的阈值时,DMA会自动对BUFF中的数据进行补充。当多个通道同时启动时,DMA调度模块会协调DMA对不同通道的数据进行传输,达到单个DMA分时复用传输多个通道的数据。
数据传输
根据数据需要传输的方向和控制信息,DMA_CTRL将数据在PS与PL之间进行传输:
1、当传输方向为PS的DDR到PL的FIFO时,当DMA_CTRL收到数据传送请求后,DMA_CTRL控制DMA_IP去DDR对应的BUFF中读取数据存放到对应的FIFO中,当FIFO中的数据减少到设定的阈值时,DMA_CTRL会自动对FIFO中的数据进行补充,直到数据长度达到设定的传输长度。
2、当传输方向为PL的FIFO到PS的DDR时,当DMA_CTRL收到数据传送请求后,DMA_CTRL按照DMA的突发长度自动将FIFO中的数据传输到DDR对应的BUFF中,直到传输的数据长度达到设定的传输长度。
3、当多个通道同时申请DMA传输时,DMA_CTRL会调度DMA对不同通道的数据进行分时传输,实现单个DMA分时传输多个通道的数据。充分利用DMA高速传输的性能。
通过将DDR内存划分出多个BUFF,将数据在PS与PL之间进行传输,为DMA的每个通道均分配两个BUFF,在数据传输过程中确保PS和PL不会同时操作同一段BUFF,可实现多通道DMA、多地址、高灵活度的数据传输,为了解决在DMA数据传输时,减小对逻辑资源的占用率,多路数据传输时只需要单路DMA进行分时复用,降低逻辑开发时间成本,减小了硬件选型成本。当多个通道同时申请DMA传输时,DMA_CTRL会调度DMA对不同通道的数据进行分时传输,实现单个DMA分时传输多个通道的数据。充分利用DMA高速传输的性能。
实施例2:
如图2所示流程,提供一种数据传输方法,包括:
步骤S1:接收上位机发出的控制指令,所述控制指令包括:DMA起始地址、DMA大小、DMA模式和启动DMA命令。
所述上位机为与FPGA进行数据交互的计算机,对于上位机发送的控制指令的具体内容,只要可以根据该控制指令从多个DMA通道中选择对应的DMA通道通过AXI总线对数据进行传输,避免对每一种数据进行封包解包等复杂的处理方式,本实施例对此不受任何限制。
应当理解,本步骤之前或之后还可以包括上位机对缓存空间进行配置的步骤,也就是上位机先将要传输的数据放在缓存空间或开辟一片空闲的存储空间为接收数据做准备,然后再发送控制指令到DMA控制器。
步骤S2:根据所述控制指令从多个DMA通道中选择对应的所述DMA通道,通过AXI总线对数据进行传输;其中,多个所述DMA通道相互独立。
工作过程中,PS在DDR内存中划分出一个或者多个缓冲区,并将包括内存地址和划分规则信息在内的控制信息传递给PL中的DMA控制与调度单元,DMA控制与调度单元根据控制信息将数据在PS与PL之间进行传输:当传输方向为从PS到PL也即是PS的DDR到PL的FIFO时,DMA控制与调度单元收到数据传送请求后,控制DMA的IP核到DDR对应的BUFF中读取数据存放到对应的PL的FIFO中,当FIFO中的数据减少到设定的阈值时,DMA控制与调度单元会自动对FIFO中的数据进行补充,直到数据长度达到设定的传输长度;当传输方向为从PL到PS也即是从PL的FIFO到PS的DDR时,DMA控制与调度单元收到数据传送请求后,按照DMA的突发长度,DMA控制与调度单元自动将FIFO中的数据传输到DDR对应的BUFF中,直到传输的数据长度达到设定的传输长度。
所述多通道DMA数据传输方法的操作具体包括:
如图3所示流程,当数据传输方向为PS到PL时:
1) PS将控制信息配置到PL中的DMA_CTRL;
2) PS将数据存放到DDR指定的内存中;
3) DMA_CTRL收到开始传输信号后开始DMA传输;
4) DMA_CTRL控制DMA_IP通过AXI总线和DDR_CTRL读取BUFF中的数据;
5) DMA_CTRL将读取到的数据放到指定的FIFO中供其它模块如应用单元使用;
6) 多个通道同时申请DMA传输时,DMA_CTRL会分时传输多个通道的数据。
如图4所示流程,当数据传输方向为PL到PS时:
1) PS将控制信息配置到PL中的DMA_CTRL;
2) DMA_CTRL收到开始传输信号后开始DMA传输;
3) DMA_CTRL通过DMA_IP将指定FIFO中的数据通过AXI总线和DDR_CTRL写入DDR对应的BUFF中;
4) PS根据传输状态来使用DDR指定BUFF中的数据;
5) 多个通道同时申请DMA传输时,DMA控制器会分时传输多个通道的数据;
其中,步骤3)之后,数据写入之后,FPGA向DMA_CTRL控制器发送数据写完成信号,DMA_CTRL向CPU软件发起DMA完成中止指令,CPU软件响应所述中止指令后再进行步骤4)。当从应用单元处接收新的数据且需要传输至PS部分的BUFF中时,本发明方案省略了应用单元的收数据中断步骤,还省略了CPU的响应收数据中断步骤,而在数据传输过程中确保PS和PL不会同时操作同一段BUFF也省略了CPU初始化接收数据的内存缓冲区,因此有利于简化传输步骤,降低了FPGA存储资源的消耗及数据传输程序的延时,降低CPU启用率及CPU功耗,提高数据传输效率。
可以理解的是,DMA控制与调度单元根据控制指令从多个DMA通道中选择对应的DMA通道通过AXI总线对数据进行传输的方式,可以为先对该控制指令进行解帧和命令解析,获取从事务请求,再对从事务请求进行处理,生成DMA参数,然后根据DMA参数,生成DMA控制信号,最后根据DMA控制信号从多个DMA通道中选择对应的DMA通道通过AXI总线进行DMA读和/或DMA写的方式,其中DMA读通过DMA读数据模块(DMA_read)进行,DMA写通过DMA写数据模块(DMA_write)进行;上述方式不作限定,只要可以根据控制指令从多个DMA通道中选择对应的DMA通道通过AXI总线进行DMA读和/或DMA写操作即可,同理对于DMA控制与调度单元对该控制指令进行解析的方式也不做限定。多个DMA通道相互独立且可同时启动,可以由设计人员或用户根据实用场景或用户需求自行独立设置DMA运行参数,DMA可协调实现不同通道的数据传输,从而达到单个DMA分时复用传输多个通道的数据的目的。
需要说明的是,前述步骤之后,还可包括传输结束后产生中断信息,将该中断信息以MSI中断方式或继承中断INTx方式发送到上位机的步骤,通过将该中断信息发送给上位机,可以使上位机启动中断服务程序,判断DMA传输是否成功,如果不成功则可以根据用户需求进行重新传输,如果成功则可以继续下一次传输。对于上位机启动的中断服务程序的具体流程,本实施例不做任何限制。
本发明的关键点在于单路DMA多通道复用、多地址管理技术、数据同步技术、数据实时性设计等,实现了一种多通道DMA、多地址、高灵活度的数据传输方式,在DMA数据传输时,减小对逻辑资源的占用率,多路数据传输时只需要单路DMA进行分时复用,降低逻辑开发时间成本,减小了硬件选型成本。因此方法具有逻辑资源消耗更小、灵活度更高、对硬件资源要求更小等有点,可大幅度降低硬件成本和开发时间成本,适用于全可编程片上系统,用于PS和PL之间的大数据交互,也可以应用于其他FPGA芯片,实现大数据的传输。
实施例3:
一种计算机设备,所述计算机设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现前述所述基于FPGA的多通道DMA实现方法的至少一个步骤,或前述所述基于FPGA的多通道DMA数据传输方法的至少一个步骤。
所述存储器也即是计算机可读存储介质,包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PR AM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
上述实施例中的常规技术为本领域技术人员所知晓的现有技术,故在此不再详细赘述。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管对本发明已作出了详细的说明并引证了一些具体实施例,但是对本领域熟练技术人员来说,只要不离开本发明的精神和范围可作各种变化或修正是显然的。
虽然上述具体实施方式已经显示、描述并指出应用于各种实施方案的新颖特征,但应理解,在不脱离本公开内容的精神的前提下,可对所说明的装置或方法的形式和细节进行各种省略、替换和改变。另外,上述各种特征和方法可彼此独立地使用,或可以各种方式组合。所有可能的组合和子组合均旨在落在本公开内容的范围内。上述许多实施方案包括类似的组分,并且因此,这些类似的组分在不同的实施方案中可互换。虽然已经在某些实施方案和实施例的上下文中公开了本发明,但本领域技术人员应理解,本发明可超出具体公开的实施方案延伸至其它的替代实施方案和/或应用以及其明显的修改和等同物。因此,本发明不旨在受本文优选实施方案的具体公开内容限制。
本发明未尽事宜均为公知技术。

Claims (7)

1.一种基于FPGA的多通道DMA实现方法,其特征在于:PS对DDR内存进行划分管理,并将控制信息传递给PL中的DMA_CTRL,根据数据需要传输的方向和控制信息,DMA_CTRL将数据通过AXI总线在PS与PL之间进行传输,为DMA的每个通道均分配两个BUFF,数据传输过程中确保PS和PL不会同时操作同一段BUFF;
所述DMA_CTRL将数据通过AXI总线在PS与PL之间进行传输包括DMA_CTRL将数据从DDR对应的BUFF中传输到PL中对应的FIFO中,执行下述步骤:当DMA_CTRL收到数据传输请求后,DMA_CTRL控制DMA_IP去DDR对应的BUFF中读取数据存放到对应的FIFO中,当FIFO中的数据减少到设定的阈值时,DMA_CTRL会自动对FIFO中的数据进行补充,直到数据长度达到设定的传输长度,具体包括:1)PS将控制信息配置到PL中的DMA_CTRL;2)PS将数据存放到DDR指定的内存中;3)DMA_CTRL收到开始传输信号后开始DMA传输;4)DMA_CTRL控制DMA_IP通过AXI总线和DDR_CTRL读取BUFF中的数据;5)DMA_CTRL将读取到的数据放到指定的FIFO中供其它模块如应用单元使用;6)多个通道同时申请DMA传输时,DMA_CTRL会分时传输多个通道的数据;
所述DMA_CTRL将数据通过AXI总线在PS与PL之间进行传输包括DMA_CTRL将数据从PL对应的FIFO中传输到DDR对应的BUFF中,执行下述步骤:当DMA_CTRL收到数据传输请求后,DMA_CTRL按照DMA的突发长度自动将FIFO中的数据传输到DDR对应的BUFF中,直到传输的数据长度达到设定的传输长度,具体包括:1)PS将控制信息配置到PL中的DMA_CTRL;2)DMA_CTRL收到开始传输信号后开始DMA传输;3)DMA_CTRL通过DMA_IP将指定FIFO中的数据通过AXI总线和DDR_CTRL写入DDR对应的BUFF中;4)PS根据传输状态来使用DDR指定BUFF中的数据;5)多个通道同时申请DMA传输时,DMA控制器会分时传输多个通道的数据;其中,步骤3)之后,数据写入之后,FPGA向DMA_CTRL控制器发送数据写完成信号,DMA_CTRL向CPU软件发起DMA完成中止指令,CPU软件响应所述中止指令后再进行步骤4)。
2.根据权利要求1所述的基于FPGA的多通道DMA实现方法,其特征在于:所述PS对DDR内存进行划分管理意指在DDR内存中划分出至少一个BUFF。
3.根据权利要求1或2所述的基于FPGA的多通道DMA实现方法,其特征在于:所述控制信息包括内存地址和划分规则信息。
4.根据权利要求1或2所述的基于FPGA的多通道DMA实现方法,其特征在于:PL通过PS的配置信息对DMA进行调度,且DMA每个通道都有一个数据缓存FIFO。
5.根据权利要求1或2所述的基于FPGA的多通道DMA实现方法,其特征在于:当多个通道同时申请DMA传输时,DMA_CTRL会调度DMA对不同通道的数据进行分时传输,实现单个DMA分时传输多个通道的数据。
6.一种基于FPGA的多通道DMA数据传输方法,所述方法执行权利要求1-5任一项所述基于FPGA的多通道DMA实现方法的至少一个步骤。
7.一种计算机设备,所述计算机设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1-5任一项所述基于FPGA的多通道DMA实现方法的至少一个步骤,或权利要求6所述基于FPGA的多通道DMA数据传输方法的至少一个步骤。
CN202410675341.2A 2024-05-29 2024-05-29 一种基于fpga的多通道dma实现方法 Active CN118260225B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410675341.2A CN118260225B (zh) 2024-05-29 2024-05-29 一种基于fpga的多通道dma实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410675341.2A CN118260225B (zh) 2024-05-29 2024-05-29 一种基于fpga的多通道dma实现方法

Publications (2)

Publication Number Publication Date
CN118260225A CN118260225A (zh) 2024-06-28
CN118260225B true CN118260225B (zh) 2024-12-13

Family

ID=91609478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410675341.2A Active CN118260225B (zh) 2024-05-29 2024-05-29 一种基于fpga的多通道dma实现方法

Country Status (1)

Country Link
CN (1) CN118260225B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118626293B (zh) * 2024-08-09 2024-11-12 成都领目科技有限公司 一种自适应数据带宽的数据缓存传输方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951388A (zh) * 2017-03-16 2017-07-14 湖南博匠信息科技有限公司 一种基于PCIe的DMA数据传输方法及系统
CN112835829A (zh) * 2021-02-10 2021-05-25 西南电子技术研究所(中国电子科技集团公司第十研究所) 多通道dma传输测控信号的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092774A (ja) * 1999-09-17 2001-04-06 Nec Eng Ltd Dmaバースト転送制御装置
US10817460B2 (en) * 2019-08-28 2020-10-27 Advanced New Technologies Co., Ltd. RDMA data sending and receiving methods, electronic device, and readable storage medium
CN112765059A (zh) * 2021-01-20 2021-05-07 苏州浪潮智能科技有限公司 一种基于fpga的dma设备及dma数据搬移方法
CN115033171B (zh) * 2022-04-29 2024-12-31 湖南艾科诺维科技有限公司 一种基于fpga的多通道数据存储方法及系统
CN117520226B (zh) * 2024-01-08 2024-03-26 四川赛狄信息技术股份公司 基于zynq平台的ps端ddr直接访问方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951388A (zh) * 2017-03-16 2017-07-14 湖南博匠信息科技有限公司 一种基于PCIe的DMA数据传输方法及系统
CN112835829A (zh) * 2021-02-10 2021-05-25 西南电子技术研究所(中国电子科技集团公司第十研究所) 多通道dma传输测控信号的方法

Also Published As

Publication number Publication date
CN118260225A (zh) 2024-06-28

Similar Documents

Publication Publication Date Title
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
CN118260225B (zh) 一种基于fpga的多通道dma实现方法
JP2000010901A (ja) ディスクアレイ制御装置
KR101812300B1 (ko) 다수의 메모리 채널들을 가진 컴퓨팅 시스템에서의 메모리 버퍼들의 할당
CN108279927A (zh) 可调整指令优先级的多通道指令控制方法及系统、控制器
CN113051195A (zh) 存储器、gpu及电子设备
JP7608432B2 (ja) 複数の異なるマスタによって不揮発性メモリに非干渉アクセスするためのメモリコントローラおよび関連するシステムならびに方法
JP2013545201A (ja) マルチクライアントコンピューティングシステムに対するメモリデバイスの分割
JP3578075B2 (ja) ディスクアレイ制御装置及びディスクアレイ制御方法
WO2023142091A1 (zh) 计算任务调度装置、计算装置、计算任务调度方法和计算方法
CN119105980A (zh) 一种dma系统和数据转存方法
CN116710906A (zh) 一种集成芯片及数据搬运方法
CN118276772A (zh) 神经网络的数据处理方法、系统及可读存储介质
CN115994115B (zh) 芯片控制方法、芯片组及电子设备
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN116303169A (zh) Dma控制装置和方法及芯片
WO2022160321A1 (zh) 一种访问内存的方法和装置
CN118467425B (zh) 一种基于多入口fifo的通信模块共享数据缓存方法和装置
JP2021534684A (ja) リンク層データパッキング及びパケットフロー制御スキーム
CN118484413A (zh) Dma数据传输方法、装置、系统级芯片、设备、介质和产品
US20250231795A1 (en) Method for executing task scheduling and related products thereof
CN116225994B (zh) 基于FlexSPI ARM与FPGA的高速通信方法
US11094368B2 (en) Memory, memory chip and memory data access method
CN108763116B (zh) 一种基于贪婪式算法的多通道ddr控制器

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