CN115718711A - 一种dma数据传输的系统和方法 - Google Patents

一种dma数据传输的系统和方法 Download PDF

Info

Publication number
CN115718711A
CN115718711A CN202211520529.7A CN202211520529A CN115718711A CN 115718711 A CN115718711 A CN 115718711A CN 202211520529 A CN202211520529 A CN 202211520529A CN 115718711 A CN115718711 A CN 115718711A
Authority
CN
China
Prior art keywords
data
data transmission
data channel
dma
transmission request
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
Application number
CN202211520529.7A
Other languages
English (en)
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.)
Guangdong Greater Bay Area Institute of Integrated Circuit and System
Original Assignee
Guangdong Greater Bay Area Institute of Integrated Circuit and System
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 Guangdong Greater Bay Area Institute of Integrated Circuit and System filed Critical Guangdong Greater Bay Area Institute of Integrated Circuit and System
Priority to CN202211520529.7A priority Critical patent/CN115718711A/zh
Publication of CN115718711A publication Critical patent/CN115718711A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

本申请提供了一种DMA数据传输的系统和方法,该系统包括:仲裁器、数据通道模块、寄存器和控制列表模块;仲裁器接收外部设备发送的数据传输请求,构建两级或多级缓存区,将数据传输请求存储到缓存区中;仲裁器从缓存区中获取数据传输请求,为数据传输请求分配对应的数据通道;寄存器接收外部设备发送的配置信息,将配置信息发送给控制列表模块;控制列表模块根据配置信息,生成控制信号,将控制信号发送给数据通道模块;数据通道模块根据控制信号获取DMA数据,将DMA数据通过数据通道进行传输。本申请中,仲裁器在仲裁请求之前,构建缓存区,用于存放接收的数据传输请求,减少数据通道一次传输后的等待时间,提高了DMA数据的传输速率。

Description

一种DMA数据传输的系统和方法
技术领域
本申请涉及电子通信领域,尤其涉及一种DMA数据传输的系统和方法。
背景技术
直接内存存取(DirectMemoryAccess,DMA)是高速数据搬运的一种理想方式,它可以实现存储器与I/O设备之间进行成批且高效的数据传输。DMA控制器在进行数据操作过程中,不需要CPU的参与,有效的提高了CPU的利用率。通常来说,DMA主要替代了CPU的两项功能,存储器复制和外设控制。
近年来,随着集成电路的高速发展,系统级芯片(SystemonChip,SOC)技术已成为现如今重要的发展方向。DMA作为SOC重要的数据传输方式,其技术的研究也越来越受人们关注。DMA的发展经历了从无到有,从单通道到多通道,从功能简单到功能复杂的过程。技术发展到现在,几乎所有的微处理器都包含功能强大的DMA。因此,对于提升DMA的搬运性能和效率是非常必要的。
目前采用的一种DMA传输装置包括CPU、内存模块、DMA读写模块以及DMA读引擎。该装置通过读取缓冲区读指针寄存器的值,计算当前缓冲区空闲空间的大小,进而实现对当前缓冲区空闲空间与当前待传输数据块的大小的比较。通过判断结果,更新缓冲区的写地址和写指针,减少了CPU的中断,降低了CPU的参与率,进而提高了数据的传输效率。该方案虽然简便易行,但主要针对读操作做了相应的优化,对于整体的DMA数据传输速率的提升是非常有限的。
发明内容
有鉴于此,本申请提供了一种DMA数据传输的系统和方法,目的在于提高DMA数据的传输速率。
为了实现上述目的,本申请提供了以下技术方案:
本申请的第一方面提供了一种DMA数据传输的系统,所述系统包括:仲裁器、数据通道模块、寄存器和控制列表模块;
所述系统包括:仲裁器、数据通道模块、寄存器和控制列表模块;
所述仲裁器,用于接收外部设备发送的第一数据传输请求,构建两级缓存区,将所述第一数据传输请求存储到所述两级缓存区中;
所述仲裁器,还用于从所述两级缓存区中获取所述第一数据传输请求,为所述第一数据传输请求分配对应的第一数据通道,以使得所述数据通道模块调用所述第一数据通道;
所述寄存器,用于接收所述外部设备发送的第一配置信息,将所述第一配置信息发送给所述控制列表模块;
所述控制列表模块,用于根据所述第一配置信息生成第一控制信号,将所述第一控制信号发送给所述数据通道模块;
所述数据通道模块,用于根据所述第一控制信号获取第一直接内存存取DMA数据,将所述第一DMA数据通过所述第一数据通道进行传输。
可选的,所述数据通道模块,具体用于根据所述第一DMA数据生成第一数据块或第一数据堆,将所述第一数据块或所述第一数据堆通过所述第一数据通道进行传输。
可选的,所述系统还包括:中断控制器;
所述中断控制器,用于在所述第一DMA数据传输结束时,接收所述数据通道模块发送的中断信号。
可选的,其特征在于,所述系统还包括:主设备;
所述主设备,用于向所述仲裁器发送第二数据传输请求,向所述寄存器发送第二配置信息;
所述仲裁器,还用于接收所述第二数据传输请求,为所述第二数据传输请求分配对应的第二数据通道,以使得所述数据通道模块调用所述第二数据通道;
所述寄存器,用于根据所述主设备发送的第二配置信息,将所述第二配置信息发送给所述控制列表模块;
所述控制列表模块,用于根据所述第二配置信息生成第二控制信号,将所述第二控制信号发送给所述数据通道模块;
所述数据通道模块,用于根据所述第二控制信号获取对应的第二DMA数据,将所述第二DMA数据通过所述第二数据通道进行传输。
可选的,当所述仲裁器接收到多个第一数据传输请求时,所述仲裁器,还用于根据对应的数据通道的优先级,按照优先级策略执行所述多个第一数据传输请求,其中,所述优先级策略包括固定优先级和/或轮询优先级,所述固定优先级根据数据通道的编号固定,所述轮询优先级在间隔预设的周期后,轮换数据通道的优先级。
可选的,当所述仲裁器接收多个数据传输请求时,所述缓存区,用于存储所述多个数据传输请求,其中,所述数据传输请求包括所述第一数据传输请求和/或所述第二数据传输请求,所述两级缓存区用于存储1或2个的数据传输请求。
可选的,当所述仲裁器接收多个数据传输请求时,所述缓存区,用于存储所述多个数据传输请求,其中,所述数据传输请求包括第一数据传输请求和/或第二数据传输请求,所述缓存区以请求行的方式存储所述多个数据传输请求,所述缓存区用于存储至少3个的数据传输请求。
本申请的第二方面提供了一种DMA数据传输的方法,所述方法由上述的一种DMA数据传输的系统执行,所述方法包括:
接收外部设备发送的第一数据传输请求,构建两级缓存区,将所述第一数据传输请求存储到所述两级缓存区中;
从所述两级缓存区中获取所述第一数据传输请求,为所述第一数据传输请求分配对应的第一数据通道,以使得所述数据通道模块调用所述第一数据通道;
接收所述外部设备发送的第一配置信息,将所述第一配置信息发送给所述控制列表模块;
根据所述第一配置信息生成第一控制信号,将所述第一控制信号发送给所述数据通道模块;
根据所述第一控制信号获取第一DMA数据,将所述第一DMA数据通过所述第一数据通道进行传输。
可选的,所述将所述第一DMA数据通过所述第一数据通道进行传输,包括:
将所述第一DMA数据以数据块或数据堆的形式通过所述第一数据通道进行传输。
可选的,所述方法还包括:
在所述第一DMA数据传输结束时,接收所述数据通道模块发送的中断信号。
可选的,所述方法还包括:
向所述仲裁器发送第二数据传输请求,向所述寄存器发送第二配置信息;
接收所述第二数据传输请求,为所述第二数据传输请求分配对应的第二数据通道,以使得所述数据通道模块调用所述第二数据通道;
根据所述主设备发送的第二配置信息,将所述第二配置信息发送给所述控制列表模块;
根据所述第二配置信息生成第二控制信号,将所述第二控制信号发送给所述数据通道模块;
根据所述第二控制信号获取对应的第二DMA数据,将所述第二DMA数据通过所述第二数据通道进行传输。
可选的,所述方法还包括:
当所述仲裁器接收到多个第一数据传输请求时,所述仲裁器,还用于根据对应的数据通道的优先级,按照优先级策略执行所述多个第一数据传输请求,其中,所述优先级策略包括固定优先级和/或轮询优先级,所述固定优先级根据数据通道的编号固定,所述轮询优先级在间隔预设的周期后,轮换数据通道的优先级。
可选的,所述方法还包括:
当所述仲裁器接收多个数据传输请求时,所述缓存区,用于存储所述多个数据传输请求,其中,所述数据传输请求包括所述第一数据传输请求和/或所述第二数据传输请求,所述两级缓存区用于存储1或2个的数据传输请求。
可选的,所述方法还包括:
当所述仲裁器接收多个数据传输请求时,所述缓存区,用于存储所述多个数据传输请求,其中,所述数据传输请求包括第一数据传输请求和/或第二数据传输请求,所述缓存区以请求行的方式存储所述多个数据传输请求,所述缓存区用于存储至少3个的数据传输请求。
本申请提供了一种DMA数据传输的系统和方法,该系统包括:仲裁器、数据通道模块、寄存器和控制列表模块;仲裁器接收外部设备发送的数据传输请求,构建两级或多级缓存区,将数据传输请求存储到缓存区中;仲裁器从缓存区中获取数据传输请求,为数据传输请求分配对应的数据通道;寄存器接收外部设备发送的配置信息,将配置信息发送给控制列表模块;控制列表模块根据配置信息,生成控制信号,将控制信号发送给数据通道模块;数据通道模块根据控制信号获取DMA数据,将DMA数据通过数据通道进行传输。本申请中,仲裁器在仲裁请求之前,构建缓存区,用于存放接收的数据传输请求,减少数据通道一次传输后的等待时间,提高了DMA数据的传输速率。
附图说明
图1为本申请实施例提供的一种DMA数据传输的系统的结构示意图;
图2为本申请实施例提供的另一种DMA数据传输的系统的结构示意图;
图3为本申请实施例提供的一种DMA数据传输的方法的流程示意图;
图4为本申请实施例提供的另一种DMA数据传输的方法的流程示意图;
图5为本申请实施例提供的一种通过数据块和数据堆的方式传输DMA数据的传输方式示意图;
图6为本申请实施例提供的一种两级缓存区的结构示意图;
图7为本申请实施例提供的一种多级缓存区的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合图1,介绍本申请提供的一种DMA数据传输的系统,该系统包括:仲裁器101、数据通道模块102、寄存器103和控制列表模块104。
在本申请实施例中,将外部设备发送的第一数据传输请求统称为外设请求或者硬件请求,外部设备简称为外设。
仲裁器101,用于接收外部设备发送的第一数据传输请求,构建两级或多级缓存区,将第一数据传输请求存储到缓存区中。
具体的,如图6所示,以Req_n0、Req_n1、Req_m0和Req_m1四个请求,数据通道Ch_0和Ch_1以及选择器Mux_0和Mux_1为例,仲裁器101为两级缓存中的Req_n0和Req_n1通过选择器Mux_0分配了数据通道Ch_0,为两级缓存中的Req_m0和Req_m1通过选择器Mux_1分配了数据通道Ch_1。当仲裁器101采用两级缓存构建两级缓存区时,该两级缓存区能够存放一个或两个数据传输请求,该数据传输请求包括软件请求和/或硬件请求。采用两级缓存,适用于进行少量数据传输和数据传输请求较少的情况。
仲裁器101,还用于从缓存区中获取第一数据传输请求,为第一数据传输请求分配对应的第一数据通道,以使得数据通道模块调用第一数据通道;
具体的,当仲裁器101同时接收到多个外部设备请求时,仲裁器101,能够根据数据通道的优先级,按照优先级策略优先执行对应的数据通道优先级高的外设请求。需要说明的是,该优先级策略包括固定优先级、轮询优先级、固定优先级和轮询优先级同时采用,能够根据具体情况进行调节。
具体的,固定优先级为根据数据通道的编号顺序固定优先级,例如,编号1-100的一百个通道,编号越小的优先级越高。轮询优先级为在预设的周期后,对数据通道的优先级进行轮换,例如,编号1-100的一百个通道,刚开始编号1的数据通道的优先级最高,编号100的数据通道的优先级最低,在执行100次请求或在预设的时间周期后,对优先级进行轮换,编号2的数据通道的优先级最高,编号1的数据通道的优先级最低。也能够同时采用固定优先级和轮询优先级,例如,编号1的数据通道的优先级固定最高,编号2-100的优先级进行轮换。
可以理解的是,上述预设的周期可以为一次DMA数据传输完成。
具体的,仲裁器101能够接收外部设备发送的外设请求,外部设备请求用于外设之间的数据搬运,例如外设0对外设1进行数据读取或数据写入操作。
寄存器103,用于接收外部设备发送的第一配置信息,将第一配置信息发送给控制列表模块。
具体的,该第一配置信息包括:DMA数据的源地址、DMA数据的目的地址、传输的DMA数据的大小和调用的第一数据通道的通道信息。
控制列表模块104,用于根据第一配置信息生成第一控制信号,将第一控制信号发送给数据通道模块102。
数据通道模块102,用于根据第一控制信号获取第一DMA数据,将第一DMA数据通过第一数据通道进行传输。
具体的,如图5所示,以n号请求Req_n和m号请求Req_m为例。数据通道模块102通过数据块或数据堆的方式传输数据,能够在一次外设请求时,数据的读取和写入过程均可实现高速传输,能够起到提升DMA数据的传输速率的作用。具体实施时,采用数据块或数据堆的方式进行传输数据,能够根据实际情况进行调节。
一种可能的实施例中,该系统还包括中断控制器206。
中断控制器206,用于在第一DMA数据传输结束时,接收数据通道模块102发送的中断信号。
本申请实施例中,通过设置了数据通道模块采用数据堆或数据块的方式进行数据传输,仲裁器能够构建两级缓存区,用于存放接收到的数据传输请求,减少数据通道一次传输后的等待时间,提高了DMA数据的传输速率。
下面结合图2,介绍本申请提供的一种DMA数据传输的系统,该系统包括:仲裁器101、数据通道模块102、寄存器103、控制列表模块104、主设备205和中断控制器206。
本申请实施例中,将主设备发送的第二数据传输请求统称为软件请求。
主设备205,用于向仲裁器发送软件请求,向寄存器发送第二配置信息。
具体的,本系统中可以设置主设备,主设备用于发送软件请求,软件请求与上述的外设请求不同的是,外设请求属于硬件请求,可以理解的是,主设备能替换为中央处理器(centralprocessingunit,CPU)。
仲裁器101,还用于接收软件请求,为软件请求分配对应的第二数据通道,以使得数据通道模块102调用第二数据通道。
具体的,当仲裁器101接收多个数据传输请求时,仲裁器101能够构建缓存区107,用于存放数据传输请求。
如图6所示,以Req_n0、Req_n1、Req_m0和Req_m1四个请求,数据通道Ch_0和Ch_1以及选择器Mux_0和Mux_1为例,仲裁器101为两级缓存中的Req_n0和Req_n1通过选择器Mux_0分配了数据通道Ch_0,为两级缓存中的Req_m0和Req_m1通过选择器Mux_1分配了数据通道Ch_1。当仲裁器101采用两级缓存构建两级缓存区时,该两级缓存区能够存放一个或两个数据传输请求,该数据传输请求包括软件请求和/或外设请求。采用两级缓存,适用于进行少量数据传输和数据传输请求较少的情况。
具体的,当该系统进行DMA数据传输时,仲裁器接收到一个新的外设请求,仲裁器将新的外设请求存放在该两级缓存区中,当原先的数据传输结束时,仲裁器为新的外设请求服务。由于两级缓存区仅能够存放一个或两个数据传输请求,当接收到第三个或三个以上的数据传输请求时,该系统将丢弃多余的数据传输请求。
如图7所示,以Req_n0、Req_n1、Req_m0和Req_m1四个请求,数据通道Ch_0和Ch_1以及选择器Mux_0和Mux_1为例,仲裁器101为缓存区中的Req_n0和Req_n1通过选择器Mux_0分配了数据通道Ch_0,为缓存区中的Req_m0和Req_m1通过选择器Mux_1分配了数据通道Ch_1,当仲裁器101构建多级缓存区,该多级缓存区能够以请求行的方式存放多个数据传输请求,具体的存放数量根据构建的缓存区的深度决定,通过该方法构建的缓存区,适用于大量数据传输,请求数量较多的情况。
需要说明的是,采用两级或者多级缓存的方式构建缓存区,能够根据实际接收的数据传输请求的数量和大小进行调节。
寄存器103,用于根据主设备发送的第二配置信息,将第二配置信息发送给控制列表模块。
具体的,当系统接收的请求为外设请求时,由发起外设请求的对应的外设为寄存器进行配置。当系统接收的请求为软件请求时,由主设备为寄存器进行配置。
具体的,寄存器103包括多个DMA传输的配置寄存器。
控制列表模块104,用于根据第二配置信息生成第二控制信号,将第二控制信号发送给数据通道模块102。
数据通道模块102,用于获取第二控制信号对应的第二DMA数据,通过第二数据通道传输第二DMA数据。
中断控制器206,用于在第二DMA数据传输结束时,接收数据通道模块102发送发送的中断信号,标志该DMA数据传输结束。
通过本申请实施例提供的系统,不仅通过设置了数据通道模块采用数据堆的方式进行数据传输,还通过构建缓存区的方式,减少数据通道一次传输后的等待时间,避免输出传输请求丢弃和重发的情况,进而提高传输效率,提高了DMA数据的传输速率。
下面结合图3,介绍本申请提供的一种DMA数据传输的方法,该方法通过步骤S301-S305实现。
本申请实施例提供的方法,适用于如图1所示的一种DMA数据传输的系统。
S301:接收外部设备发送的第一数据传输请求,构建两级或多级缓存区,将第一数据传输请求存储到缓存区中。
具体的,仲裁器接收外部设备发送的第一数据传输请求,构建两级缓存区,将该第一数据传输请求存放到该两级缓存区中。
S302:从两级缓存区中获取第一数据传输请求,为第一数据传输请求分配对应的第一数据通道。
具体的,仲裁器接收外部设备发送的第一数据传输请求,为所述第一数据传输请求分配对应的第一数据通道,以使得数据通道模块调用第一数据通道,后续数据通道模块能够通过该第一数据通道搬运数据。
具体的,当仲裁器同时接收到多个外部设备请求时,仲裁器能够根据数据通道的优先级,按照优先级策略优先执行对应的数据通道优先级高的外设请求。需要说明的是,该优先级策略包括固定优先级、轮询优先级、固定优先级和轮询优先级同时采用,能够根据具体情况进行调节。
S303:接收外部设备发送的第一配置信息,将第一配置信息发送给控制列表模块。
具体的,寄存器接收外部设备发送的第一配置信息,将第一配置信息发送给控制列表模块。
具体的,该第一配置信息包括:DMA数据的源地址、DMA数据的目的地址、传输的DMA数据的大小和调用的第一数据通道的通道信息。
S304:根据第一配置信息生成第一控制信号,将第一控制信号发送给数据通道模块。
具体的,控制列表模块根据第一配置信息生成第一控制信号,将第一控制信号发送给数据通道模块。
S305:根据第一控制信号获取第一DMA数据,将第一DMA数据通过第一数据通道进行传输。
具体的,数据通道模块根据第一控制信息获取第一DMA数据,将DMA数据从DMA数据的源地址传输到DMA数据的目的地址,实现了DMA数据的传输。
具体的,如图5所示,以n号请求Req_n和m号请求Req_m为例,数据通道模块104通过数据块或数据堆的方式传输数据,能够在一次第一数据传输请求时,数据的读取和写入过程均可实现高速传输,能够起到提升DMA数据的传输速率的作用。具体实施时,采用数据块或数据堆的方式进行传输数据,能够根据实际情况进行调节。
本申请实施例中,通过设置了数据通道模块采用数据堆或数据块的方式进行数据传输,仲裁器能够构建两级缓存区,用于存放接收到的数据传输请求,减少数据通道一次传输后的等待时间,提高了DMA数据的传输速率。
下面结合图4,介绍本申请提供的一种DMA数据传输的方法,该方法通过步骤S401-S407实现。
本申请实施例提供的方法,适用于如图2所示的一种DMA数据传输的系统。
S401:向仲裁器发送第二数据传输请求,向寄存器发送第二配置信息。
具体的,主设备向仲裁器发送第二数据传输请求,向寄存器发送第二配置信息,以使得主设备根据该配置信息配置寄存器。
S402:接收第二数据传输请求,为第二数据传输请求分配对应的第二数据通道。
具体的,仲裁器接收第二数据传输请求,为第二数据传输请求分配对应的第二数据通道,以使得数据通道模块调用第二数据通道进行数据搬运。
具体的,当仲裁器接收多个数据传输请求时,构建缓存区,用于存放数据传输请求。
如图6所示,当采用两级缓存构建两级缓存区时,该两级缓存区能够存放一个或两个数据传输请求,该数据传输请求包括第二数据传输请求和/或第一数据传输请求。采用两级缓存构建两级缓存区,适用于进行少量数据传输和数据传输请求较少的情况。
具体的,当该系统进行DMA数据传输时,仲裁器接收到一个新的外设请求,仲裁器将新的外设请求存放在该两级缓存区中,当原先的数据传输结束时,仲裁器为新的外设请求服务。由于两级缓存区仅能够存放一个或两个数据传输请求,当接收到第三个或三个以上的数据传输请求时,该系统将丢弃多余的数据传输请求。
如图7所示,当采用多级缓存构建多级缓存区时,该多级缓存区能够存放三个或三个以上的数据传输请求,具体的存放数量根据构建的缓存区的深度决定,通过该方法构建的缓存区,适用于大量数据传输,请求数量较多的情况。
需要说明的是,仲裁器采用两级缓存还是多级缓存构建缓存区,能够根据实际接收的数据传输请求的数量和大小进行调节。
S403:根据主设备发送的第二配置信息,将第二配置信息发送给控制列表模块。
具体的,主设备发送的第二配置信息,用于配置寄存器,寄存器将第二配置信息发送给控制列表模块。
具体的,该第二配置信息包括:DMA数据的源地址、DMA数据的目的地地址、传输的DMA数据的大小和调用的第一数据通道的通道信息。
S404:根据第二配置信息生成第二控制信号,将第二控制信号发送给数据通道模块。
具体的,控制列表模块根据第二配置信息生成第二控制信号,将第二控制信号发送给数据通道模块。
S405:获取第二控制信号对应的第二DMA数据,通过第二数据通道传输第二DMA数据。
具体的,数据通道模块根据第二控制信息获取第二DMA数据,将第二DMA数据以数据块或数据堆的方式从第二DMA数据的源地址传输到第二DMA数据的目的地地址,实现了DMA数据的传输。
S406:在第二DMA数据传输结束时,接收数据通道模块发送的中断信号。
具体的,能够在数据传输结束时,数据通道模块向中断控制器发送中断信号,标志该DMA数据传输结束。
通过本申请实施例提供的系统,不仅通过设置了控制列表模块采用数据堆的方式进行数据传输,还通过构建缓存区的方式,减少数据通道一次传输后的等待时间,避免输出传输请求丢弃和重发的情况,进而提高传输效率,提高了DMA数据的传输速率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种DMA数据传输系统,其特征在于,所述系统包括:仲裁器、数据通道模块、寄存器和控制列表模块;
所述仲裁器,用于接收外部设备发送的第一数据传输请求,构建两级或多级缓存区,将所述第一数据传输请求存储到所述缓存区中;
所述仲裁器,还用于从所述缓存区中获取所述第一数据传输请求,为所述第一数据传输请求分配对应的第一数据通道,以使得所述数据通道模块调用所述第一数据通道;
所述寄存器,用于接收所述外部设备发送的第一配置信息,将所述第一配置信息发送给所述控制列表模块;
所述控制列表模块,用于根据所述第一配置信息生成第一控制信号,将所述第一控制信号发送给所述数据通道模块;
所述数据通道模块,用于根据所述第一控制信号获取第一直接内存存取DMA数据,将所述第一DMA数据通过所述第一数据通道进行传输。
2.根据权利要求1所述的系统,其特征在于,
所述数据通道模块,具体用于根据所述第一DMA数据生成第一数据块或第一数据堆,将所述第一数据块或所述第一数据堆通过所述第一数据通道进行传输。
3.根据权利要求1所述的系统,其特征在于,所述系统还包括:中断控制器;
所述中断控制器,用于在所述第一DMA数据传输结束时,接收所述数据通道模块发送的中断信号。
4.根据权利要求1至3中任一项所述的系统,其特征在于,所述系统还包括:主设备;
所述主设备,用于向所述仲裁器发送第二数据传输请求,向所述寄存器发送第二配置信息;
所述仲裁器,还用于接收所述第二数据传输请求,为所述第二数据传输请求分配对应的第二数据通道,以使得所述数据通道模块调用所述第二数据通道;
所述寄存器,用于根据所述主设备发送的第二配置信息,将所述第二配置信息发送给所述控制列表模块;
所述控制列表模块,用于根据所述第二配置信息生成第二控制信号,将所述第二控制信号发送给所述数据通道模块;
所述数据通道模块,用于根据所述第二控制信号获取对应的第二DMA数据,将所述第二DMA数据通过所述第二数据通道进行传输。
5.根据权利要求1所述的系统,其特征在于,
当所述仲裁器接收到多个第一数据传输请求时,所述仲裁器,还用于根据对应的数据通道的优先级,按照优先级策略执行所述多个第一数据传输请求,其中,所述优先级策略包括固定优先级和/或轮询优先级,所述固定优先级根据数据通道的编号固定,所述轮询优先级在间隔预设的周期后,轮换数据通道的优先级。
6.根据权利要求4所述的系统,其特征在于,
当所述仲裁器接收多个数据传输请求时,所述缓存区,用于存储所述多个数据传输请求,其中,所述数据传输请求包括所述第一数据传输请求和/或所述第二数据传输请求,所述两级缓存区用于存储1或2个的数据传输请求。
7.根据权利要求4所述的系统,其特征在于,
当所述仲裁器接收多个数据传输请求时,所述缓存区,用于存储所述多个数据传输请求,其中,所述数据传输请求包括第一数据传输请求和/或第二数据传输请求,所述缓存区以请求行的方式存储所述多个数据传输请求,所述缓存区用于存储至少3个的数据传输请求。
8.一种DMA数据传输的方法,其特征在于,所述方法由权利1至7所述的一种DMA数据传输的系统执行,所述方法包括:
接收外部设备发送的第一数据传输请求,构建两级或多级缓存区,将所述第一数据传输请求存储到所述缓存区中;
从所述缓存区中获取所述第一数据传输请求,为所述第一数据传输请求分配对应的第一数据通道,以使得所述数据通道模块调用所述第一数据通道;
接收所述外部设备发送的第一配置信息,将所述第一配置信息发送给所述控制列表模块;
根据所述第一配置信息生成第一控制信号,将所述第一控制信号发送给所述数据通道模块;
根据所述第一控制信号获取第一DMA数据,将所述第一DMA数据通过所述第一数据通道进行传输。
9.根据权利要求8所述的方法,其特征在于,所述将所述第一DMA数据通过所述第一数据通道进行传输,包括:
将所述第一DMA数据以数据块或数据堆的形式通过所述第一数据通道进行传输。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述第一DMA数据传输结束时,接收所述数据通道模块发送的中断信号。
CN202211520529.7A 2022-11-30 2022-11-30 一种dma数据传输的系统和方法 Pending CN115718711A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211520529.7A CN115718711A (zh) 2022-11-30 2022-11-30 一种dma数据传输的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211520529.7A CN115718711A (zh) 2022-11-30 2022-11-30 一种dma数据传输的系统和方法

Publications (1)

Publication Number Publication Date
CN115718711A true CN115718711A (zh) 2023-02-28

Family

ID=85257114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211520529.7A Pending CN115718711A (zh) 2022-11-30 2022-11-30 一种dma数据传输的系统和方法

Country Status (1)

Country Link
CN (1) CN115718711A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756066A (zh) * 2023-08-21 2023-09-15 北京紫光芯能科技有限公司 一种直接存储器访问控制方法及控制器
CN117880364A (zh) * 2024-03-12 2024-04-12 苏州仰思坪半导体有限公司 一种数据传输方法、系统以及相关装置
CN117880364B (zh) * 2024-03-12 2024-06-11 苏州仰思坪半导体有限公司 一种数据传输方法、系统以及相关装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756066A (zh) * 2023-08-21 2023-09-15 北京紫光芯能科技有限公司 一种直接存储器访问控制方法及控制器
CN116756066B (zh) * 2023-08-21 2024-01-02 北京紫光芯能科技有限公司 一种直接存储器访问控制方法及控制器
CN117880364A (zh) * 2024-03-12 2024-04-12 苏州仰思坪半导体有限公司 一种数据传输方法、系统以及相关装置
CN117880364B (zh) * 2024-03-12 2024-06-11 苏州仰思坪半导体有限公司 一种数据传输方法、系统以及相关装置

Similar Documents

Publication Publication Date Title
CN114780458B (zh) 数据处理的方法和存储系统
CN110083461B (zh) 一种基于fpga的多任务处理系统及方法
US7975120B2 (en) Dynamic allocation of message buffers
US7352763B2 (en) Device to receive, buffer, and transmit packets of data in a packet switching network
US7752349B2 (en) Apparatus and method for performing DMA data transfer
CN109564545B (zh) 用于压缩地址的方法和设备
US10496427B2 (en) Method for managing memory of virtual machine, physical host, PCIE device and configuration method thereof, and migration management device
CN103049240B (zh) Pci-e设备及其接收数据重排序方法
JP2017525065A (ja) Sfenceを用いずに最適化されたpio書込みシーケンスを用いるパケット送信
EP1730643A2 (en) Pvdm (packet voice data module) generic bus protocol
CN103793342A (zh) 一种多通道直接内存存取dma控制器
US8886741B2 (en) Receive queue models to reduce I/O cache consumption
CN111723030B (zh) 存储器系统及存储器系统的控制方法
US20190146935A1 (en) Data transfer device, arithmetic processing device, and data transfer method
CN111641566B (zh) 数据处理的方法、网卡和服务器
JP2018190277A (ja) メモリアクセス制御装置及びその制御方法
CN115718711A (zh) 一种dma数据传输的系统和方法
CN110046114B (zh) 基于pcie协议的dma控制器及dma数据传输方法
CN109857553B (zh) 内存管理方法及装置
US7409486B2 (en) Storage system, and storage control method
CN115136125A (zh) Noc宽松写入顺序方案
US8325600B2 (en) Segmentation interleaving for data transmission requests
CN115509972A (zh) 实现dma高效收发报文的方法及应用
CN110765044B (zh) 数据包传输装置及系统
CN110647493B (zh) 一种数据传输方法、处理器和pcie系统

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