CN111338999B - 直接存储器存取dma系统及数据传输方法 - Google Patents

直接存储器存取dma系统及数据传输方法 Download PDF

Info

Publication number
CN111338999B
CN111338999B CN202010105290.1A CN202010105290A CN111338999B CN 111338999 B CN111338999 B CN 111338999B CN 202010105290 A CN202010105290 A CN 202010105290A CN 111338999 B CN111338999 B CN 111338999B
Authority
CN
China
Prior art keywords
descriptor
buffer
descriptors
channel
dma
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
CN202010105290.1A
Other languages
English (en)
Other versions
CN111338999A (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.)
Nanjing Semidrive Technology Co Ltd
Original Assignee
Nanjing Semidrive 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 Nanjing Semidrive Technology Co Ltd filed Critical Nanjing Semidrive Technology Co Ltd
Priority to CN202010105290.1A priority Critical patent/CN111338999B/zh
Publication of CN111338999A publication Critical patent/CN111338999A/zh
Application granted granted Critical
Publication of CN111338999B publication Critical patent/CN111338999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Abstract

本申请实施例公开了一种直接存储器存取DMA系统及数据传输方法,属于数据传输技术领域。所述DMA系统包括:DMA子系统和缓存器,所述DMA子系统与所述缓存器之间的距离小于预定阈值;所述缓存器用于缓存描述符,所述描述符用于指示存储在内存中的数据;所述DMA子系统用于从所述缓存器中读取所述描述符,根据所述描述符对所述数据进行传输。本申请实施例提高数据传输效率。

Description

直接存储器存取DMA系统及数据传输方法
技术领域
本申请实施例涉及数据传输技术领域,特别涉及一种直接存储器存取DMA系统及数据传输方法。
背景技术
DMA(Direct Memory Access,直接存储器存取)可以接收中央处理器的指令,根据该指令将内存中待传输的数据从源地址传输至目的地址,从而在数据传输过程中解放中央处理器,使得中央处理器可以执行其他任务。
相关技术中,中央处理器可以将待传输的数据的描述符写入内存中,该描述符中包括源地址、目的地址、数据的大小和下一个描述符的指针,DMA系统可以通过总线从内存中读取该描述符,再对该描述符进行解析,通过该总线从源地址获取数据,最后通过该总线将该数据写入目的地址。
由于内存与DMA系统之间的距离较远,所以,DMA系统和内存之间的数据传输路径较远,这样,DMA系统读写数据的延时较大,从而影响数据传输的效率。
发明内容
本申请实施例提供了一种直接存储器存取DMA系统及数据传输方法,用于解决内存与DMA系统之间的距离较远,影响数据传输的效率的问题。所述技术方案如下:
一方面,提供了一种DMA系统,所述DMA系统包括DMA子系统和缓存器,所述DMA子系统与所述缓存器之间的距离小于预定阈值;
所述缓存器用于缓存描述符,所述描述符用于指示存储在内存中的数据;
所述DMA子系统用于从所述缓存器中读取所述描述符,根据所述描述符对所述数据进行传输。
一方面,提供了一种数据传输方法,用于上述DMA系统中,所述方法包括:
通过所述DMA子系统从所述缓存器中读取描述符,所述描述符用于指示存储在内存中的数据;
通过所述DMA子系统根据所述描述符对所述数据进行传输。
本申请实施例提供的技术方案的有益效果至少包括:
通过在DMA系统中设置一个缓存器,这样,可以将描述符缓存到该缓存器中,由于该缓存器与DMA子系统之间的距离小于预定阈值,所以,DMA子系统读取描述符的延时较小,从而可以提高数据传输效率。
由于缓存器设置在DMA系统中,所以,DMA子系统可以通过与缓冲器之间的专用传输接口来获取描述符,而无需通过总线向内存获取描述符,这样,获取描述符时不影响DMA子系统通过总线与内存之间的数据传输,从而可以提高数据传输效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提出的一种DMA系统的结构示意图;
图2是本申请一个实施例提出的一种DMA系统的结构示意图;
图3是本申请一个实施例提出的相关的描述符的示意图;
图4是本申请一个实施例提供的描述符的相关性判断的方法流程图;
图5是本申请一个实施例提出的一种DMA系统的结构示意图;
图6是本申请一个实施例提出的一种DMA系统的结构示意图;
图7是本申请另一实施例提供的数据传输方法的方法流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的DMA系统的结构示意图,该DMA系统可以包括:DMA子系统110和缓存器120,该DMA子系统110与该缓存器120之间的距离小于预定阈值。
预定阈值是一个数值较小的值,这就使得缓存器120与DMA子系统110较为靠近,所以,缓存器120与DMA子系统110之间的传输路径较短,从而可以节省传输延时。
本实施例中,缓存器120用于缓存描述符,该描述符用于指示存储在内存中的数据。
本实施例中,描述符可以包括内存中待传输的数据的源地址、目的地址、数据的大小和下一个描述符的指针。其中,源地址可以是一个地址区间,目的地址也可以是一个地址区间。其中,内存是系统级内存,用于存放大量数据。
可选的,缓存器120中可以存储链表条目,且每个链表条目就是一个描述符。
DMA子系统110用于从缓存器120中读取描述符,根据该描述符对数据进行传输。
本实施例中,DMA子系统110可以从缓存器120中读取一个描述符,从该描述符中读取源地址、目的地址和数据的大小,再从内存的源地址中取出该大小的数据,将该数据传输至DMA子系统110,再将该数据从DMA子系统110传输至内存的目的地址中,再根据该描述符中的指针读取下一个描述符,按照上述流程进行处理,直至处理完所有的描述符后停止。
综上所述,本申请实施例提供的DMA系统,通过在DMA系统中设置一个缓存器,这样,可以将描述符缓存到该缓存器中,由于该缓存器与DMA子系统之间的距离小于预定阈值,所以,DMA子系统读取描述符的延时较小,从而可以提高数据传输效率。
由于缓存器设置在DMA系统中,所以,DMA子系统可以通过与缓冲器之间的专用传输接口来获取描述符,而无需通过总线向内存获取描述符,这样,获取描述符时不影响DMA子系统通过总线与内存之间的数据传输,从而可以提高数据传输效率。
请参考图2,下面对DMA子系统110的结构进行介绍。
DMA子系统110可以包括链表分配器111、N条通道112和仲裁器113,且N条通道112分别与链表分配器111和仲裁器113相连,N为大于等于2的整数。
本实施例中,链表分配器111用于将缓存器120中的多个描述符分配给不同的通道112。
在分配描述符之前,链表分配器111还可以接收中央处理器发送的配置指令,该配置指令是中央处理器将描述符写入缓存器120后生成的,且配置指令中包含缓存器120中第一个描述符的地址和通道数N。其中,中央处理器是包括ARM(Advanced RISC Machines)、MIPS(Million Instructions Per Second)、MCU(Microcontroller Unit)、X86 这样的CPU内核。
在一个可选的实现方式中,中央处理器可以通过AXI(Advanced eXtensibleInterface,高级可扩展接口)总线将描述符写入缓存器120中,再通过APB(AdvancedPeripheral Bus,高级外围总线)接口向链表分配器111发送配置指令。其中,AXI总线是SOC系统(System-on-a-Chip,片上系统)中的标准AXI总线,符合AMBA(AdvancedMicrocontroller Bus Architecture,高级微控制器总线体系)协议。APB总线是SOC中的标准APB总线,符合AMBA协议。
链表分配器111可以根据第一个描述符的地址读取第一个描述符,将该第一个描述符分配给第一个处于空闲状态的通道112。对于之后的第i(i≥2)个描述符,链表分配器111根据第i-1个描述符中的指针确定第i个描述符的地址,再根据该地址读取第i个描述符,将该第i个描述符分配给第i个处于空闲状态的通道112,直至所有通道112都分配到描述符后停止。后续,当某一个通道112处理完描述符后,可以向链表分配器111指示自身处于空闲状态(即释放通道),之后,链表分配器111会继续将缓存器120中未分配的一个描述符分配该该通道。
本实施例中,由于N个通道112可以并行且互不干扰地获取描述符,相比于相关技术中通过总线串行获取描述符来说,可以提高描述符的获取效率,从而提高数据传输效率。相关技术中的DMA系统需要通过总线串行获取描述符,这样,DMA系统同一时间只能处理一个描述符,从而导致DMA系统中处于空闲状态的多个通道112无法被利用,从而影响通道112和总线的利用率,而本实施例中可以通过并行处理多个描述符来提高通道112和总线的利用率。
缓存器120中缓存的描述符可能相关,也可能不相关。其中,相关的描述符是指一个描述符中的源地址与另一个描述符中的目的地址相重叠,或者,一个描述符中的目的地址与另一个描述符中的目的地址相重叠。
请参考图3,图3中描述符(即链表条目)0的目的地址0与描述符1的源地址1重叠。如果先处理描述符0,该描述符0指示的数据0被传输到目的地址0,由于目的地址0与源地址1重叠,所以,源地址1中重叠区域的数据会被源地址0中的数据覆盖,被覆盖后源地址1中的数据才是处理描述符1时真正要传输的数据。若同时处理描述符0和描述符1,那么,处理描述符1时源地址1中的数据还未被覆盖,此时传输源地址1中的数据是错误的,从而导致数据传输出错的问题。同理,图3中描述符1的目的地址与描述符2的源地址也重叠,若同时处理描述符1和描述符2,也会导致数据传输出错的问题。可见,相关技术中的多个通道112单独获取描述符,也就无法判断这些描述符之间是否相关,会导致相关的描述符在不同的通道112中被同时处理,从而使得数据传输出错的问题。为了解决上述问题,相关的描述符应该要按照先后顺序被处理。
本实施例中,链表分配器111可以将相关的描述符分配到同一条通道112中,从而使相关的描述符被顺序处理,保证数据传输的准确性。请参考图4,链表分配器111可以顺序读取缓存器120中的第i个描述符,i为正整数;检测第i个描述符是否与排列在前的描述符相关;若第i个描述符与排列在前的描述符相关,则在通道112完成对排列在前的描述符的解析后,将第i个描述符分配给通道112;若第i个描述符与排列在前的描述符不相关,则检测是否存在处于空闲状态的通道112,若存在处于空闲状态的通道112,则将第i个描述符分配给通道112,若不存在处于空闲状态的通道112,则在出现处于空闲状态的通道112后将第i个描述符分配给通道112;将i更新为i+1,继续执行顺序读取缓存器120中的第i个描述符的步骤,直至分配完所有的描述符后停止。
为了便于理解,下面以两个实例为例对描述符的分配进行说明。
请参考图5,假设存在描述符(即链表条目)0-4,描述符0-4之间互不相关,且DMA子系统110中包含3条通道112,则中央处理器可以将描述符0-4写入缓存器120中,再向链表分配器111发送配置指令,链表分配器111根据配置指令依次获取描述符,分析这些描述符之间的相关性,最终将描述符0分配给通道0,将描述符1分配给通道1,将描述符2分配给通道3,描述符3和4等待任意通道空闲后再分配。
请参考图6,假设存在描述符(即链表条目)0-4,描述符0、3和4之间相关,且DMA子系统110中包含3条通道112,则中央处理器可以将描述符0-4写入缓存器120中,再向链表分配器111发送配置指令,链表分配器111根据配置指令依次获取描述符,分析这些描述符之间的相关性,最终将描述符0分配给通道0,将描述符1分配给通道1,将描述符2分配给通道3,描述符3等待通道0空闲后再分配,描述符4等待通道0空闲后再分配。
本实施例中,N条通道112中的每条通道112用于对分配到的描述符进行解析,根据解析结果生成总线传输指令,将该总线传输指令发送给仲裁器113,该总线传输指令用于指示传输数据。仲裁器113用于对所有总线传输指令进行仲裁,并分时段分配总线执行所有总线传输指令中的一个总线传输指令。
需要说明的是,当待传输的数据量较大时,通道112可以生成根据一个描述符生成多个总线传输指令,每个总线传输指令用于指示传输待传输的数据中的一个数据段。这样,仲裁器113可以分时段从所有的总线传输指令中选择一个总线传输指令,再通过总线路径选择器控制总线执行该总线传输指令。其中,总线路径选择器用于给AXI总线分时段分配路径,任意一个AXI总线都可以通过总线路径选择器到达其他AXI总线或者APB总线。
比如,仲裁器113先控制总线传输通道0所需求的一个数据段,再控制总线传输通道1所需求的一个数据段,再控制总线传输通道2所需求的一个数据段,再控制总线传输通道0所需求的另一个数据段,依此类推。这样,仲裁器113可以同时响应多个通道的总线传输指令,相比于现有技术中串行响应一个通道的总线传输指令来说,可以提高总线的利用率。
本实施例中,在DMA子系统110附近增加专门用于存储描述符的缓存器120,DMA子系统110可以超低延时获取描述符,并且,中央处理器可以通过外部总线访问写入描述符。另外,DMA子系统110内部闲置的通道112可以并行互不干扰独立执行,一一对应的处理多个描述符,这样DMA系统可以满负荷进行数据传输,避免了总线不必要的等待延时。另外,DMA子系统110内部增加相关性判断机制,这样,不相关的描述符就可以随时在DMA子系统110内部并发执行,从而提高描述符的处理效率。
请参考图7,其示出了本申请一个实施例提供的数据传输方法的方法流程图,该数据传输方法可以应用于上述DMA系统中。该数据传输方法,可以包括:
步骤701,通过DMA子系统从缓存器中读取描述符,该描述符用于指示存储在内存中的数据。
本实施例中,描述符可以包括内存中待传输的数据的源地址、目的地址、数据的大小和下一个描述符的指针。其中,源地址可以是一个地址区间,目的地址也可以是一个地址区间。其中,内存是系统级内存,用于存放大量数据。
步骤702,通过DMA子系统根据描述符对数据进行传输。
本实施例中,DMA子系统可以从缓存器中读取一个描述符,从该描述符中读取源地址、目的地址和数据的大小,再从内存的源地址中取出该大小的数据,将该数据传输至DMA子系统,再将该数据从DMA子系统传输至内存的目的地址中,再根据该描述符中的指针读取下一个描述符,按照上述流程进行处理,直至处理完所有的描述符后停止。
其中,当DMA子系统包括链表分配器、N条通道和仲裁器时,步骤702可以包括以下几个子步骤:
步骤7021,通过链表分配器将缓存器中的多个描述符分配给不同的通道。
在分配描述符之前,链表分配器还可以接收中央处理器发送的配置指令,该配置指令是中央处理器将描述符写入缓存器后生成的,且配置指令中包含缓存器中第一个描述符的地址和通道数N。
链表分配器可以根据第一个描述符的地址读取第一个描述符,将该第一个描述符分配给第一个处于空闲状态的通道。对于之后的第i(i≥2)个描述符,链表分配器根据第i-1个描述符中的指针确定第i个描述符的地址,再根据该地址读取第i个描述符,将该第i个描述符分配给第i个处于空闲状态的通道,直至所有通道都分配到描述符后停止。后续,当某一个通道处理完描述符后,可以向链表分配器指示自身处于空闲状态(即释放通道),之后,链表分配器会继续将缓存器中未分配的一个描述符分配该该通道。
本实施例中,由于N个通道可以并行且互不干扰地获取描述符,相比于相关技术中通过总线串行获取描述符来说,可以提高描述符的获取效率,从而提高数据传输效率。
缓存器中缓存的描述符可能相关,也可能不相关。其中,相关的描述符是指一个描述符中的源地址与另一个描述符中的目的地址相重叠,或者,一个描述符中的目的地址与另一个描述符中的目的地址相重叠。
本实施例中,链表分配器可以将相关的描述符分配到同一条通道中,从而使相关的描述符被顺序处理,保证数据传输的准确性。此时,链表分配器可以顺序读取缓存器中的第i个描述符,i为正整数;检测第i个描述符是否与排列在前的描述符相关;若第i个描述符与排列在前的描述符相关,则在通道完成对排列在前的描述符的解析后,将第i个描述符分配给通道;若第i个描述符与排列在前的描述符不相关,则检测是否存在处于空闲状态的通道,若存在处于空闲状态的通道,则将第i个描述符分配给通道,若不存在处于空闲状态的通道,则在出现处于空闲状态的通道后将第i个描述符分配给通道;将i更新为i+1,继续执行顺序读取缓存器中的第i个描述符的步骤,直至分配完所有的描述符后停止。
步骤7022,通过N条通道中的每条通道对分配到的描述符进行解析,根据解析结果生成总线传输指令,将总线传输指令发送给仲裁器,总线传输指令用于指示传输数据。
步骤7023,通过仲裁器对所有总线传输指令进行仲裁,并分时段分配总线执行所有总线传输指令中的一个总线传输指令。
需要说明的是,当待传输的数据量较大时,通道可以生成根据一个描述符生成多个总线传输指令,每个总线传输指令用于指示传输待传输的数据中的一个数据段。这样,仲裁器可以分时段从所有的总线传输指令中选择一个总线传输指令,再通过总线路径选择器控制总线执行该总线传输指令。
比如,仲裁器先控制总线传输通道0所需求的一个数据段,再控制总线传输通道1所需求的一个数据段,再控制总线传输通道2所需求的一个数据段,再控制总线传输通道0所需求的另一个数据段,依此类推。
本实施例中,在DMA子系统附近增加专门用于存储描述符的缓存器,DMA子系统可以超低延时获取描述符,并且,中央处理器可以通过外部总线访问写入描述符。另外,DMA子系统内部闲置的通道可以并行互不干扰独立执行,一一对应的处理多个描述符,这样DMA系统可以满负荷进行数据传输,避免了总线不必要的等待延时。另外,DMA子系统内部增加相关性判断机制,这样,不相关的描述符就可以随时在DMA子系统内部并发执行,从而提高描述符的处理效率。
综上所述,本申请实施例提供的数据传输方法,通过在DMA系统中设置一个缓存器,这样,可以将描述符缓存到该缓存器中,由于该缓存器与DMA子系统之间的距离小于预定阈值,所以,DMA子系统读取描述符的延时较小,从而可以提高数据传输效率。
由于缓存器设置在DMA系统中,所以,DMA子系统可以通过与缓冲器之间的专用传输接口来获取描述符,而无需通过总线向内存获取描述符,这样,获取描述符时不影响DMA子系统通过总线与内存之间的数据传输,从而可以提高数据传输效率。
需要说明的是:上述实施例提供的DMA系统在进行数据传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将DMA系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的DMA系统与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (8)

1.一种直接存储器存取DMA系统,其特征在于,所述DMA系统包括DMA子系统和缓存器,所述DMA子系统与所述缓存器之间的距离小于预定阈值;
所述缓存器用于缓存描述符,所述描述符中包括内存中待传输的数据的源地址、目的地址和所述数据的大小,且所述描述符用于指示存储在内存中的数据;
所述DMA子系统用于从所述缓存器中读取所述描述符,根据所述描述符对所述数据进行传输;
所述DMA子系统包括链表分配器、N条通道和仲裁器,所述N条通道分别与所述链表分配器和所述仲裁器相连,N为大于等于2的整数;
所述链表分配器用于将所述缓存器中的多个描述符分配给不同的通道;
所述N条通道中的每条通道用于对分配到的描述符进行解析,根据解析结果生成总线传输指令,将所述总线传输指令发送给所述仲裁器,所述总线传输指令用于指示传输所述数据;
所述仲裁器用于对所有总线传输指令进行仲裁,并分时段分配总线执行所有总线传输指令中的一个总线传输指令。
2.根据权利要求1所述的DMA系统,其特征在于,所述缓存器中相关的描述符被分配到同一条通道中,所述相关的描述符是指一个描述符中的源地址与另一个描述符中的目的地址相重叠,或者,一个描述符中的目的地址与另一个描述符中的目的地址相重叠。
3.根据权利要求2所述的DMA系统,其特征在于,所述链表分配器还用于:
顺序读取所述缓存器中的第i个描述符,i为正整数;
检测所述第i个描述符是否与排列在前的描述符相关;
若所述第i个描述符与排列在前的描述符相关,则在通道完成对所述排列在前的描述符的解析后,将所述第i个描述符分配给所述通道;
若所述第i个描述符与排列在前的描述符不相关,则检测是否存在处于空闲状态的通道,若存在处于空闲状态的通道,则将所述第i个描述符分配给所述通道,若不存在处于空闲状态的通道,则在出现处于空闲状态的通道后将所述第i个描述符分配给所述通道;
将i更新为i+1,继续执行所述顺序读取所述缓存器中的第i个描述符的步骤,直至分配完所有的描述符后停止。
4.根据权利要求1所述的DMA系统,其特征在于,所述链表分配器还用于接收中央处理器发送的配置指令,所述配置指令是所述中央处理器将所述描述符写入所述缓存器后生成的,且所述配置指令中包含所述缓存器中第一个描述符的地址和通道数N。
5.一种数据传输方法,其特征在于,用于如权利要求1至4中任一所述的DMA系统中,所述方法包括:
通过所述DMA子系统从所述缓存器中读取描述符,所述描述符中包括内存中待传输的数据的源地址、目的地址和所述数据的大小,且所述描述符用于指示存储在内存中的数据;
通过所述DMA子系统根据所述描述符对所述数据进行传输;
当所述DMA子系统包括所述链表分配器、所述N条通道和所述仲裁器时,所述通过所述DMA子系统根据所述描述符对所述数据进行传输,包括:
通过所述链表分配器将所述缓存器中的多个描述符分配给不同的通道;
通过所述N条通道中的每条通道对分配到的描述符进行解析,根据解析结果生成总线传输指令,将所述总线传输指令发送给所述仲裁器,所述总线传输指令用于指示传输所述数据;
通过所述仲裁器对所有总线传输指令进行仲裁,并分时段分配总线执行所有总线传输指令中的一个总线传输指令。
6.根据权利要求5所述的方法,其特征在于,所述缓存器中相关的描述符被分配到同一条通道中,所述相关的描述符是指一个描述符中的源地址与另一个描述符中的目的地址相重叠,或者,一个描述符中的目的地址与另一个描述符中的目的地址相重叠。
7.根据权利要求6所述的方法,其特征在于,所述通过所述链表分配器将所述缓存器中的多个描述符分配给不同的通道,包括:
通过所述链表分配器顺序读取所述缓存器中的第i个描述符,i为正整数;
通过所述链表分配器检测所述第i个描述符是否与排列在前的描述符相关;
若所述第i个描述符与排列在前的描述符相关,则通过所述链表分配器在通道完成对所述排列在前的描述符的解析后,将所述第i个描述符分配给所述通道;
若所述第i个描述符与排列在前的描述符不相关,则通过所述链表分配器检测是否存在处于空闲状态的通道,若存在处于空闲状态的通道,则将所述第i个描述符分配给所述通道,若不存在处于空闲状态的通道,则在出现处于空闲状态的通道后将所述第i个描述符分配给所述通道;
将i更新为i+1,继续执行所述顺序读取所述缓存器中的第i个描述符的步骤,直至分配完所有的描述符后停止。
8.根据权利要求5所述的方法,其特征在于,在所述通过所述链表分配器将所述缓存器中的多个描述符分配给不同的通道之前,所述方法还包括:
通过所述链表分配器接收中央处理器发送的配置指令,所述配置指令是所述中央处理器将所述描述符写入所述缓存器后生成的,且所述配置指令中包含所述缓存器中第一个描述符的地址和通道数N。
CN202010105290.1A 2020-02-20 2020-02-20 直接存储器存取dma系统及数据传输方法 Active CN111338999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010105290.1A CN111338999B (zh) 2020-02-20 2020-02-20 直接存储器存取dma系统及数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010105290.1A CN111338999B (zh) 2020-02-20 2020-02-20 直接存储器存取dma系统及数据传输方法

Publications (2)

Publication Number Publication Date
CN111338999A CN111338999A (zh) 2020-06-26
CN111338999B true CN111338999B (zh) 2021-05-28

Family

ID=71181682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010105290.1A Active CN111338999B (zh) 2020-02-20 2020-02-20 直接存储器存取dma系统及数据传输方法

Country Status (1)

Country Link
CN (1) CN111338999B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112115082A (zh) * 2020-09-17 2020-12-22 盛科网络(苏州)有限公司 一种dma控制器及其数据传输方法
CN115563038B (zh) * 2022-10-24 2023-11-07 苏州雄立科技有限公司 基于dma控制器的数据处理系统、方法和数据处理设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1397885A (zh) * 2002-06-27 2003-02-19 威盛电子股份有限公司 直接存储器存取控制器及直接存储器存取的控制方法
CN101013408A (zh) * 2007-02-15 2007-08-08 威盛电子股份有限公司 数据处理系统及数据处理方法
CN101478473A (zh) * 2008-01-02 2009-07-08 中兴通讯股份有限公司 用于gpon olt的mac上行调度方法和装置
CN101976229A (zh) * 2010-11-09 2011-02-16 北京星网锐捷网络技术有限公司 一种系统中外部设备的数据读取方法、系统及装置
CN102065568A (zh) * 2009-11-17 2011-05-18 中国科学院微电子研究所 基于数据描述符的mac软硬件交互方法及其硬件实现装置
CN103064807A (zh) * 2012-12-17 2013-04-24 福建星网锐捷网络有限公司 多通道直接存储器存取控制器
CN103136136A (zh) * 2012-11-23 2013-06-05 香港应用科技研究院有限公司 用于闪存存储介质执行数据传输的方法和系统
CN103442091A (zh) * 2013-08-28 2013-12-11 华为技术有限公司 一种数据传输方法及装置
CN106789734A (zh) * 2016-12-21 2017-05-31 中国电子科技集团公司第三十二研究所 在交换控制电路中巨帧的控制系统及方法
CN108090018A (zh) * 2017-10-26 2018-05-29 深圳市风云实业有限公司 数据交换方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496699B2 (en) * 2005-06-17 2009-02-24 Level 5 Networks, Inc. DMA descriptor queue read and cache write pointer arrangement
CN106326140B (zh) * 2015-06-30 2020-06-02 华为技术有限公司 数据拷贝方法、直接内存访问控制器及计算机系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1397885A (zh) * 2002-06-27 2003-02-19 威盛电子股份有限公司 直接存储器存取控制器及直接存储器存取的控制方法
CN101013408A (zh) * 2007-02-15 2007-08-08 威盛电子股份有限公司 数据处理系统及数据处理方法
CN101478473A (zh) * 2008-01-02 2009-07-08 中兴通讯股份有限公司 用于gpon olt的mac上行调度方法和装置
CN102065568A (zh) * 2009-11-17 2011-05-18 中国科学院微电子研究所 基于数据描述符的mac软硬件交互方法及其硬件实现装置
CN101976229A (zh) * 2010-11-09 2011-02-16 北京星网锐捷网络技术有限公司 一种系统中外部设备的数据读取方法、系统及装置
CN103136136A (zh) * 2012-11-23 2013-06-05 香港应用科技研究院有限公司 用于闪存存储介质执行数据传输的方法和系统
CN103064807A (zh) * 2012-12-17 2013-04-24 福建星网锐捷网络有限公司 多通道直接存储器存取控制器
CN103442091A (zh) * 2013-08-28 2013-12-11 华为技术有限公司 一种数据传输方法及装置
CN106789734A (zh) * 2016-12-21 2017-05-31 中国电子科技集团公司第三十二研究所 在交换控制电路中巨帧的控制系统及方法
CN108090018A (zh) * 2017-10-26 2018-05-29 深圳市风云实业有限公司 数据交换方法及系统

Also Published As

Publication number Publication date
CN111338999A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
US6393506B1 (en) Virtual channel bus and system architecture
US9727497B2 (en) Resolving contention between data bursts
CN107391400B (zh) 一种支持复杂访存指令的内存扩展方法和系统
KR920006851A (ko) 데이터 처리시스템 및 방법
US6868087B1 (en) Request queue manager in transfer controller with hub and ports
CN111338999B (zh) 直接存储器存取dma系统及数据传输方法
US20070180161A1 (en) DMA transfer apparatus
CN109977037B (zh) 一种dma数据传输方法及系统
JPH04257054A (ja) チャネル間接続装置
KR20130065957A (ko) 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US5796979A (en) Data processing system having demand based write through cache with enforced ordering
US20080126600A1 (en) Direct memory access device and methods
US20150194198A1 (en) Multi-core processor system, memory controller control method, and computer product
US20180276127A1 (en) Information processing system, information processing apparatus, and method of controlling information processing system
CN111290983A (zh) Usb传输设备及传输方法
CN110737618B (zh) 内嵌处理器进行快速数据通信的方法、装置及存储介质
CN112256426A (zh) 具有总线仲裁器的主从通信系统及通信方法
US20230063751A1 (en) A processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process
CN115938428A (zh) 用于动态随机存储器的控制器、控制方法、电子设备
CN102662891A (zh) 基于亲和性感知的dma缓冲区管理方法及装置
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法
CN116756066B (zh) 一种直接存储器访问控制方法及控制器
CN114780466B (zh) 一种基于dma的数据复制延时的优化方法
CN115237605B (zh) Cpu与gpu间的数据传输方法及计算机设备
US11847074B2 (en) Input/output device operational modes for a system with memory pools

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