CN116756066A - 一种直接存储器访问控制方法及控制器 - Google Patents
一种直接存储器访问控制方法及控制器 Download PDFInfo
- Publication number
- CN116756066A CN116756066A CN202311052569.8A CN202311052569A CN116756066A CN 116756066 A CN116756066 A CN 116756066A CN 202311052569 A CN202311052569 A CN 202311052569A CN 116756066 A CN116756066 A CN 116756066A
- Authority
- CN
- China
- Prior art keywords
- data transmission
- current
- transmission channel
- configuration register
- current data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims abstract description 315
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 22
- 238000012546 transfer Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002459 sustained effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
本申请提供一种直接存储器访问控制方法及控制器,根据预先设置的数据传输请求和数据传输通道的映射关系,得到当前多个数据传输请求分别对应的当前数据传输通道;根据预先设置的数据传输通道和配置寄存器组的连接关系,得到当前数据传输通道对应的配置寄存器组;配置寄存器组中存储有当前数据传输通道的数据传输配置信息;根据当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取当前数据传输通道的数据传输配置信息进行数据传输。通过设置配置寄存器组,无需从内存中获取配置信息进行数据传输,提升了直接存储器访问的数据传输效率及系统执行效率。
Description
技术领域
本申请涉及芯片技术领域,特别涉及一种直接存储器访问控制方法及控制器。
背景技术
直接存储器访问(DMA,Direct Memory Access),用于提供在微控制单元(MCU,Micro-controller Unit)的外设和存储器,或,存储器和存储器之间的高速数据传输,无需中央处理器(CPU,Central Processing Unit)干预数据即可以通过直接存储器访问进行快速传输,节省了中央处理器资源。
直接存储器访问的最大的一个特点是硬件必须按照预定的传输数据量进行传输,传输完成后需要重新配置才能进行下一次传输。
目前,主流的微控制单元芯片中的直接存储器访问控制器在实现持续传输数据的应用场景上,有两种方案:一是采用链表的方案,链表中的每个单元都是一次直接存储器访问传输的配置,其中一项配置用于指向下一个链表中的单元,最后一个单元中的配置指向第一个单元,这样就可以实现直接存储器访问的持续数据传输,每个单元的配置都是独立的,同时也实现了对不连续地址的数据传输。另一种方案是分散/聚集(Scatter/Gather)的方案,实际的实现与链表方案类似,最后一个单元的配置指向第一个从而实现持续的传输。
然而上述两种方案均是软件与硬件相结合的方式来实现直接存储器访问,链表或分散/聚集配置表都存储在内存中,每次配置单元都需要由直接存储器访问硬件从内存中读取,这种读取降低了传输效率,并且还会和系统中的中央处理器争抢对内存资源的访问,更进一步降低了系统效率。
因此,如何提升直接存储器访问的数据传输效率及系统执行效率,是本领域需要解决的技术问题。
发明内容
有鉴于此,提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本申请的目的在于提供一种直接存储器访问控制方法及控制器,可以提升直接存储器访问的数据传输效率及系统执行效率。
为实现上述目的,本申请有如下技术方案:
第一方面,本申请实施例提供了一种直接存储器访问控制方法,包括:
获取当前直接存储器访问控制的当前多个数据传输请求;
根据预先设置的数据传输请求和数据传输通道的映射关系,得到所述当前多个数据传输请求分别对应的当前数据传输通道;
根据预先设置的数据传输通道和配置寄存器组的连接关系,得到所述当前数据传输通道对应的配置寄存器组;所述配置寄存器组中存储有所述当前数据传输通道的数据传输配置信息;所述数据传输配置信息包括传输数据的源地址、目的地址和大小,以及所述当前数据传输通道的预先设置的优先级大小;
根据所述当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取所述当前数据传输通道的数据传输配置信息进行数据传输。
在一种可能的实现方式中,所述当前数据传输通道中的每个数据传输通道对应多个配置寄存器组;所述依次读取所述当前数据传输通道的数据传输配置信息进行数据传输,包括:
依次从所述每个数据传输通道对应的所述多个配置寄存器组中,加载所述每个数据传输通道的数据传输配置信息,进行所述每个数据传输通道的数据传输;所述数据传输配置信息包括所述多个配置寄存器组的加载顺序。
在一种可能的实现方式中,还包括:
当数据传输完成后,根据数据传输结果,将所述状态寄存器的状态位置位。
在一种可能的实现方式中,还包括:
预先将外部设备的数据存储在数据缓存区中。
在一种可能的实现方式中,所述进行数据传输,包括:
从所述数据缓存区获取数据进行所述数据传输。
第二方面,本申请实施例提供了一种直接存储器访问控制器,包括:请求处理单元、配置寄存器组和执行单元;
所述请求处理单元,用于获取当前直接存储器访问控制的当前多个数据传输请求,以及用于根据预先设置的数据传输请求和数据传输通道的映射关系,得到所述当前多个数据传输请求分别对应的当前数据传输通道;
所述请求处理单元与所述配置寄存器组连接;所述配置寄存器组中存储有所述当前数据传输通道的数据传输配置信息;所述数据传输配置信息包括传输数据的源地址、目的地址和大小,以及所述当前数据传输通道的预先设置的优先级大小;
所述配置寄存器组与所述执行单元连接;所述执行单元用于根据所述当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取所述当前数据传输通道的数据传输配置信息进行数据传输。
在一种可能的实现方式中,还包括:状态寄存器;
所述状态寄存器与所述执行单元连接;所述状态寄存器用于当数据传输完成后,根据数据传输结果,将所述状态寄存器的状态位置位。
在一种可能的实现方式中,还包括:数据缓存区;
所述数据缓存区与所述执行单元连接,用于将所述数据缓存区中存储的数据提供给所述执行单元。
在一种可能的实现方式中,还包括:总线主接口;
所述总线主接口分别与所述执行单元和所述数据缓存区连接;所述总线主接口用于从外部设备、内存或所述数据缓存区中读写数据。
在一种可能的实现方式中,还包括:总线从接口;
所述总线从接口与所述配置寄存器组连接,用于中央处理器通过所述总线从接口访问所述配置寄存器组。
与现有技术相比,本申请实施例具有以下有益效果:
本申请实施例提供了一种直接存储器访问控制方法及控制器,该方法包括:获取当前直接存储器访问控制的当前多个数据传输请求;根据预先设置的数据传输请求和数据传输通道的映射关系,得到当前多个数据传输请求分别对应的当前数据传输通道;根据预先设置的数据传输通道和配置寄存器组的连接关系,得到当前数据传输通道对应的配置寄存器组;配置寄存器组中存储有当前数据传输通道的数据传输配置信息;数据传输配置信息包括传输数据的源地址、目的地址和大小,以及当前数据传输通道的预先设置的优先级大小;根据当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取当前数据传输通道的数据传输配置信息进行数据传输。从而本申请通过设置配置寄存器组,无需从内存中获取配置信息进行数据传输,提升了直接存储器访问的数据传输效率及系统执行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1示出了本申请实施例提供的一种直接存储器访问控制方法的流程图;
图2示出了本申请实施例提供的一种直接存储器访问控制器的示意图;
图3示出了本申请实施例又一种直接存储器访问控制的流程图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施例的限制。
正如背景技术中的描述,直接存储器访问(DMA,Direct Memory Access),用于提供在微控制单元(MCU,Micro-controller Unit)的外设和存储器,或,存储器和存储器之间的高速数据传输,无需中央处理器(CPU,Central Processing Unit)干预数据即可以通过直接存储器访问进行快速传输,节省了中央处理器资源。
直接存储器访问的最大的一个特点是硬件必须按照预定的传输数据量进行传输,传输完成后需要重新配置才能进行下一次传输。
目前,主流的微控制单元芯片中的直接存储器访问控制器在实现持续传输数据的应用场景上,有两种方案:一是采用链表的方案,链表中的每个单元都是一次直接存储器访问传输的配置,其中一项配置用于指向下一个链表中的单元,最后一个单元中的配置指向第一个单元,这样就可以实现直接存储器访问的持续数据传输,每个单元的配置都是独立的,同时也实现了对不连续地址的数据传输。另一种方案是分散/聚集(Scatter/Gather)的方案,实际的实现与链表方案类似,最后一个单元的配置指向第一个从而实现持续的传输。
然而上述两种方案均是软件与硬件相结合的方式来实现直接存储器访问,链表或分散/聚集配置表都存储在内存中,每次配置单元都需要由直接存储器访问硬件从内存中读取,这种读取降低了传输效率,并且还会和系统中的中央处理器争抢对内存资源的访问,更进一步降低了系统效率。
因此,如何提升直接存储器访问的数据传输效率及系统执行效率,是本领域需要解决的技术问题。
为了解决以上技术问题,本申请实施例提供了一种直接存储器访问控制方法及控制器,该方法包括:获取当前直接存储器访问控制的当前多个数据传输请求;根据预先设置的数据传输请求和数据传输通道的映射关系,得到当前多个数据传输请求分别对应的当前数据传输通道;根据预先设置的数据传输通道和配置寄存器组的连接关系,得到当前数据传输通道对应的配置寄存器组;配置寄存器组中存储有当前数据传输通道的数据传输配置信息;数据传输配置信息包括传输数据的源地址、目的地址和大小,以及当前数据传输通道的预先设置的优先级大小;根据当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取当前数据传输通道的数据传输配置信息进行数据传输。从而本申请通过设置配置寄存器组,无需从内存中获取配置信息进行数据传输,提升了直接存储器访问的数据传输效率及系统执行效率。
参见图1所示,为本申请实施例提供的一种直接存储器访问控制方法的流程图,包括:
S101:获取当前直接存储器访问控制的当前多个数据传输请求。
在本申请实施例中,要进行直接存储器访问的数据传输,无论是在外部设备和存储器之间进行数据传输,还是在存储器和存储器之间进行数据传输,都需要根据数据传输请求来进行触发。
具体的,可以获取当前直接存储器访问控制的当前多个数据传输请求。参见图2所示,为本申请实施例提供的一种控制器的示意图,可以利用请求处理单元进行获取,数据传输请求可以是外部设备(外设)发来的。
S102:根据预先设置的数据传输请求和数据传输通道的映射关系,得到所述当前多个数据传输请求分别对应的当前数据传输通道。
在本申请实施例中,当获取了当前多个数据传输请求时,意味着有数据传输通道也在等待传输数据。因此,可以根据预先设置的数据传输请求和数据传输通道的映射关系,得到当前多个数据传输请求分别对应的当前数据传输通道。
举例来说,数据传输请求A可以对应数据传输通道1,数据传输请求B可以对应数据传输通道2,数据传输请求C可以对应数据传输通道3,数据传输请求D可以对应数据传输通道4。从而本申请实施例后续可以利用数据传输通道进行数据传输。
S103:根据预先设置的数据传输通道和配置寄存器组的连接关系,得到所述当前数据传输通道对应的配置寄存器组;所述配置寄存器组中存储有所述当前数据传输通道的数据传输配置信息;所述数据传输配置信息包括传输数据的源地址、目的地址和大小,以及所述当前数据传输通道的预先设置的优先级大小。
在本申请实施例中,由于进行直接存储器访问的数据传输需要进行数据传输配置。因此,可以根据预先设置的数据传输通道和配置寄存器组的连接关系,得到当前数据传输通道对应的配置寄存器组。
从而本申请实施例通过设置配置寄存器组,后续无需从内存中获取配置信息进行数据传输,提升了直接存储器访问的数据传输效率及系统执行效率。
具体的,配置寄存器组可以包括多个配置寄存器组,例如可以包括主配置寄存器组和从配置寄存器组,主配置寄存器组可以包括主配置寄存器组0、主配置寄存器组1……主配置寄存器组n,从配置寄存器组可以包括从配置寄存器组0、从配置寄存器组1……从配置寄存器组n。
每一个数据传输通道都可以有独立的配置寄存器组相对应,用于实现对直接存储器访问数据传输的配置,配置寄存器组中存储有当前直接存储器访问的当前数据传输通道的数据传输配置信息;数据传输配置信息可以包括传输数据的源地址、目的地址和大小,以及当前数据传输通道的预先设置的优先级大小。
在本申请实施例中,主配置寄存器组和从配置寄存器组可以有完全相同的配置信息。可选的,数据传输配置信息还可以包括自动加载控制信息,自动加载控制信息用于指示下一组的位置。例如可以提示当前数据传输通道有无下一组配置信息、下一组配置信息从从配置寄存器组还是从主配置寄存器组进行获取的。
在一种可能的实现方式中,参见图2所示,本申请实施例的控制器可以包括总线从接口,总线从接口与配置寄存器组连接,用于中央处理器通过总线从接口访问配置寄存器组。
即在本申请实施例中,中央处理器通过总线从接口访问配置寄存器组,可以实现对配置寄存器组中存储的当前数据传输通道的数据传输配置信息的配置修改。
S104:根据所述当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取所述当前数据传输通道的数据传输配置信息进行数据传输。
在本申请实施例中,在具体进行数据传输时,可以根据当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取当前数据传输通道的数据传输配置信息进行数据传输。
即本申请实施例获取的当前多个数据传输请求对应着多个数据传输通道,而一次只能利用一个数据传输通道进行数据传输,因此,为了判断多个数据传输通道的使用顺序,可以根据优先级来进行判断。
举例来说,当前数据传输通道可以包括数据传输通道1、数据传输通道2、数据传输通道3和数据传输通道4,若优先级大小为:数据传输通道1的优先级>数据传输通道2的优先级>数据传输通道3的优先级>数据传输通道4的优先级,则可以按照数据传输通道1到数据传输通道4的顺序依次进行数据传输。
在一种可能的实现方式中,本申请实施例提供的当前数据传输通道中的每个数据传输通道对应多个配置寄存器组;依次读取当前数据传输通道的数据传输配置信息进行数据传输,具体可以包括:
依次从每个数据传输通道对应的多个配置寄存器组中,加载每个数据传输通道的数据传输配置信息,进行每个数据传输通道的数据传输;数据传输配置信息包括多个配置寄存器组的加载顺序。
举例来说,在本申请实施例中,参见图3所示,为本申请实施例提供的又一种直接存储器访问控制的流程图。若数据传输通道X的优先级较高,赢得仲裁先进行数据传输,则可以先从数据传输通道X的配置寄存器组中加载通道配置,由于数据传输通道X对应着多个配置寄存器组,则可以按照多个配置寄存器组的加载顺序,依次从数据传输通道X的配置寄存器组中加载通道配置,依据配置依次执行数据传输。
举例来说,数据传输通道X的配置寄存器组可以包括主配置寄存组0和从配置寄存组0,例如根据加载顺序可以加载主配置寄存组0的配置,根据配置执行数据传输,若数据传输未成功,则返回继续等待数据传输请求;当数据传输成功后,则可以根据自动加载控制信息判断是否还有下一组配置寄存组的配置信息未加载,若没有了,则结束数据传输,若还有,则判断下一组配置是主配置寄存组还是从配置寄存组,若为从配置寄存器组,也叫影子配置组,则从数据传输通道X的影子配置组中加载通道配置,依据配置执行数据传输。
在一种可能的实现方式中,本申请实施例提供的方法还可以包括:当数据传输完成后,根据数据传输结果,将状态寄存器的状态位置位。
在本申请实施例中,参见图2所示,可以设置状态单元即状态寄存器,来对数据传输结果进行标识,例如数据传输结果为成功、失败或中断等,分别对应着不同的状态位。从而可以技术人员可以根据状态位及时得到不同的数据传输结果。当中断时,状态单元还可以产生中断信号。
在一种可能的实现方式中,本申请实施例提供的方法还可以包括:预先将外部设备的数据存储在数据缓存区中。
即在本申请实施例中,可以将外部设备缓冲区或内存中读取的数据预先存储到数据缓存区中,以便后续数据传输时可以及时调用,提升了数据传输效率。即进行数据传输,可以包括:从数据缓存区获取数据进行数据传输,通过数据缓冲区实现同时对数据的读和写,可以提升直接存储器访问的效率。
此外,在本申请实施例中,也可以直接通过总线主接口从外设缓冲区或内存中读写数据,从而可以减少控制器的空间占用。
本申请实施例提供了一种直接存储器访问控制方法,该方法包括:获取当前直接存储器访问控制的当前多个数据传输请求;根据预先设置的数据传输请求和数据传输通道的映射关系,得到当前多个数据传输请求分别对应的当前数据传输通道;根据预先设置的数据传输通道和配置寄存器组的连接关系,得到当前数据传输通道对应的配置寄存器组;配置寄存器组中存储有当前数据传输通道的数据传输配置信息;数据传输配置信息包括传输数据的源地址、目的地址和大小,以及当前数据传输通道的预先设置的优先级大小;根据当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取当前数据传输通道的数据传输配置信息进行数据传输。从而本申请通过设置配置寄存器组,无需从内存中获取配置信息进行数据传输,提升了直接存储器访问的数据传输效率及系统执行效率。
参见图2所示,为本申请实施例提供的一种直接存储器访问控制器的示意图,包括:
请求处理单元、配置寄存器组和执行单元;
所述请求处理单元,用于获取当前直接存储器访问控制的当前多个数据传输请求,以及用于根据预先设置的数据传输请求和数据传输通道的映射关系,得到所述当前多个数据传输请求分别对应的当前数据传输通道;
所述请求处理单元与所述配置寄存器组连接;所述配置寄存器组中存储有所述当前数据传输通道的数据传输配置信息;所述数据传输配置信息包括传输数据的源地址、目的地址和大小,以及所述当前数据传输通道的预先设置的优先级大小;
所述配置寄存器组与所述执行单元连接;所述执行单元用于根据所述当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取所述当前数据传输通道的数据传输配置信息进行数据传输。
配置寄存器组可以包括主配置寄存器组0到n和从配置寄存器组0到n。
在一种可能的实现方式中,还包括:状态寄存器;
所述状态寄存器与所述执行单元连接;所述状态寄存器用于当数据传输完成后,根据数据传输结果,将所述状态寄存器的状态位置位。
在一种可能的实现方式中,还包括:数据缓存区;
所述数据缓存区与所述执行单元连接,用于将所述数据缓存区中存储的数据提供给所述执行单元。
在一种可能的实现方式中,还包括:总线主接口;
所述总线主接口分别与所述执行单元和所述数据缓存区连接;所述总线主接口用于从外部设备、内存或所述数据缓存区中读写数据。
在一种可能的实现方式中,还包括:总线从接口;
所述总线从接口与所述配置寄存器组连接,用于中央处理器通过所述总线从接口访问所述配置寄存器组。
本申请实施例提供了一种直接存储器访问控制器,该控制器包括:请求处理单元、配置寄存器组和执行单元;请求处理单元,用于获取当前直接存储器访问控制的当前多个数据传输请求,以及用于根据预先设置的数据传输请求和数据传输通道的映射关系,得到当前多个数据传输请求分别对应的当前数据传输通道;请求处理单元与配置寄存器组连接;配置寄存器组中存储有当前数据传输通道的数据传输配置信息;数据传输配置信息包括传输数据的源地址、目的地址和大小,以及当前数据传输通道的预先设置的优先级大小;配置寄存器组与执行单元连接;执行单元用于根据当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取当前数据传输通道的数据传输配置信息进行数据传输。从而本申请通过设置配置寄存器组,无需从内存中获取配置信息进行数据传输,提升了直接存储器访问的数据传输效率及系统执行效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于控制器实施例而言,由于其基本相似于控制方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅是本申请的优选实施方式,虽然本申请已以较佳实施例披露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一种直接存储器访问控制方法,其特征在于,包括:
获取当前直接存储器访问控制的当前多个数据传输请求;
根据预先设置的数据传输请求和数据传输通道的映射关系,得到所述当前多个数据传输请求分别对应的当前数据传输通道;
根据预先设置的数据传输通道和配置寄存器组的连接关系,得到所述当前数据传输通道对应的配置寄存器组;所述配置寄存器组中存储有所述当前数据传输通道的数据传输配置信息;所述数据传输配置信息包括传输数据的源地址、目的地址和大小,以及所述当前数据传输通道的预先设置的优先级大小;
根据所述当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取所述当前数据传输通道的数据传输配置信息进行数据传输。
2.根据权利要求1所述的方法,其特征在于,所述当前数据传输通道中的每个数据传输通道对应多个配置寄存器组;所述依次读取所述当前数据传输通道的数据传输配置信息进行数据传输,包括:
依次从所述每个数据传输通道对应的所述多个配置寄存器组中,加载所述每个数据传输通道的数据传输配置信息,进行所述每个数据传输通道的数据传输;所述数据传输配置信息包括所述多个配置寄存器组的加载顺序。
3.根据权利要求1所述的方法,其特征在于,还包括:
当数据传输完成后,根据数据传输结果,将状态寄存器的状态位置位。
4.根据权利要求1所述的方法,其特征在于,还包括:
预先将外部设备的数据存储在数据缓存区中。
5.根据权利要求4所述的方法,其特征在于,所述进行数据传输,包括:
从所述数据缓存区获取数据进行所述数据传输。
6.一种直接存储器访问控制器,其特征在于,包括:请求处理单元、配置寄存器组和执行单元;
所述请求处理单元,用于获取当前直接存储器访问控制的当前多个数据传输请求,以及用于根据预先设置的数据传输请求和数据传输通道的映射关系,得到所述当前多个数据传输请求分别对应的当前数据传输通道;
所述请求处理单元与所述配置寄存器组连接;所述配置寄存器组中存储有所述当前数据传输通道的数据传输配置信息;所述数据传输配置信息包括传输数据的源地址、目的地址和大小,以及所述当前数据传输通道的预先设置的优先级大小;
所述配置寄存器组与所述执行单元连接;所述执行单元用于根据所述当前数据传输通道的预先设置的优先级大小,按优先级从大到小的顺序,依次读取所述当前数据传输通道的数据传输配置信息进行数据传输。
7.根据权利要求6所述的控制器,其特征在于,还包括:状态寄存器;
所述状态寄存器与所述执行单元连接;所述状态寄存器用于当数据传输完成后,根据数据传输结果,将所述状态寄存器的状态位置位。
8.根据权利要求6所述的控制器,其特征在于,还包括:数据缓存区;
所述数据缓存区与所述执行单元连接,用于将所述数据缓存区中存储的数据提供给所述执行单元。
9.根据权利要求8所述的控制器,其特征在于,还包括:总线主接口;
所述总线主接口分别与所述执行单元和所述数据缓存区连接;所述总线主接口用于从外部设备、内存或所述数据缓存区中读写数据。
10.根据权利要求6所述的控制器,其特征在于,还包括:总线从接口;
所述总线从接口与所述配置寄存器组连接,用于中央处理器通过所述总线从接口访问所述配置寄存器组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311052569.8A CN116756066B (zh) | 2023-08-21 | 2023-08-21 | 一种直接存储器访问控制方法及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311052569.8A CN116756066B (zh) | 2023-08-21 | 2023-08-21 | 一种直接存储器访问控制方法及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116756066A true CN116756066A (zh) | 2023-09-15 |
CN116756066B CN116756066B (zh) | 2024-01-02 |
Family
ID=87957571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311052569.8A Active CN116756066B (zh) | 2023-08-21 | 2023-08-21 | 一种直接存储器访问控制方法及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116756066B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5655151A (en) * | 1994-01-28 | 1997-08-05 | Apple Computer, Inc. | DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer |
CN103064808A (zh) * | 2011-10-24 | 2013-04-24 | 北京强度环境研究所 | 优先级可调多通道dma控制器 |
CN104123252A (zh) * | 2013-04-26 | 2014-10-29 | 韩国科亚电子股份有限公司 | 多通道直接存储器存取控制器及其控制方法 |
CN106294233A (zh) * | 2015-06-29 | 2017-01-04 | 华为技术有限公司 | 一种直接内存访问的传输控制方法及装置 |
CN113468084A (zh) * | 2021-05-28 | 2021-10-01 | 北京时代民芯科技有限公司 | 一种多模式dma数据传输系统 |
US20220083486A1 (en) * | 2020-09-14 | 2022-03-17 | Apple Inc. | DMA Control Circuit |
CN115718711A (zh) * | 2022-11-30 | 2023-02-28 | 广东省大湾区集成电路与系统应用研究院 | 一种dma数据传输的系统和方法 |
-
2023
- 2023-08-21 CN CN202311052569.8A patent/CN116756066B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5655151A (en) * | 1994-01-28 | 1997-08-05 | Apple Computer, Inc. | DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer |
CN103064808A (zh) * | 2011-10-24 | 2013-04-24 | 北京强度环境研究所 | 优先级可调多通道dma控制器 |
CN104123252A (zh) * | 2013-04-26 | 2014-10-29 | 韩国科亚电子股份有限公司 | 多通道直接存储器存取控制器及其控制方法 |
CN106294233A (zh) * | 2015-06-29 | 2017-01-04 | 华为技术有限公司 | 一种直接内存访问的传输控制方法及装置 |
US20220083486A1 (en) * | 2020-09-14 | 2022-03-17 | Apple Inc. | DMA Control Circuit |
CN113468084A (zh) * | 2021-05-28 | 2021-10-01 | 北京时代民芯科技有限公司 | 一种多模式dma数据传输系统 |
CN115718711A (zh) * | 2022-11-30 | 2023-02-28 | 广东省大湾区集成电路与系统应用研究院 | 一种dma数据传输的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116756066B (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683126B2 (en) | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
US10079916B2 (en) | Register files for I/O packet compression | |
CN110109847A (zh) | Apb总线多个主设备的仲裁方法、系统及存储介质 | |
CN112106032B (zh) | I/o主设备和cpu之间优化数据共享的有序写存储的高性能流 | |
US11093388B2 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
JP2012038293A (ja) | マシンビジョン用マルチプロセッサシステムオンチップ | |
JPS60246460A (ja) | デジタルコンピユ−タ−システムで交信路の制御を割当てる調停機構 | |
CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
CN112540941A (zh) | 一种数据转发芯片及服务器 | |
US11231964B2 (en) | Computing device shared resource lock allocation | |
CN109426623A (zh) | 一种读取数据的方法及装置 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
CN111338999B (zh) | 直接存储器存取dma系统及数据传输方法 | |
CN113485643A (zh) | 用于数据存取的方法及数据写入的控制器 | |
CN112256426A (zh) | 具有总线仲裁器的主从通信系统及通信方法 | |
CN116756066B (zh) | 一种直接存储器访问控制方法及控制器 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
US20210011716A1 (en) | Processing circuit, information processing apparatus, and information processing method | |
US8938588B2 (en) | Ensuring forward progress of token-required cache operations in a shared cache | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
JP2008511890A (ja) | アトミック・オペレーションを用いて情報単位を変更する方法及び装置 | |
CN116974963B (zh) | 一种访问存储器的装置及其方法、芯片、存储介质 |
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 |