一种多功能DMA的传输方法、装置及存储介质与流程

文档序号:29407463发布日期:2022-03-26 10:59阅读:231来源:国知局
一种多功能DMA的传输方法、装置及存储介质与流程
一种多功能dma的传输方法、装置及存储介质
技术领域
1.本发明涉及dma数据传输领域,尤其涉及一种多功能dma的传输方法、装置及存储介质。


背景技术:

2.dma(direct memory access:直接存储器访问)是一种不通过cpu而直接与系统内存交换数据的数据转移技术,可以实现存储器到存储器、设备到存储器以及存储器到设备到数据传输,大大减轻cpu工作量,通过dma进行数据转移解决了数据转移过度消耗cpu资源的问题,使cpu更专注于计算、控制等。
3.现有技术中,dma的过程由dma控制器实现。dma控制器有以下功能:能向cpu发出系统保持(hold)信号,提出总线接管请求;dma控制器接收到cpu发出允许接管信号后,dma代替cpu进行总线控制,进入dma方式,将cpu解放出来;待完成数据传输或发生错误后,dma向cpu发起中断,将总线控制权归还cpu。dma控制数据转移涉及读写两种操作,需要dma控制器能对存储器寻址及能修改地址指针,实现对内存的读写操作;能决定本次dma传送的字节数。传统的dma控制器只能进行上述数据转移相关的操作,功能相对单一,若需要对转移数据进行一致性校验,则需要额外的计算crc校验码的硬件单元参与。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种多功能dma的传输方法、装置及存储介质。
5.第一方面,本发明提供一种多功能dma的传输方法,包括:cpu根据dma业务需求在描述符寄存器配置相应的dma描述符参数,其中,dma描述符参数包含模式参数,所述模式参数包含第一模式、第二模式、第三模式和第四模式;
6.dma控制器从描述符寄存器获取dma描述符参数形成dma描述符;
7.dma控制器仲裁选出进行数据处理的dma通道,获取对应通道的dma描述符;
8.获取dma描述符内模式参数,根据模式参数的类型确定数据处理策略;将dma描述符中的其他参数代入模式参数所对应的预设数据处理策略中执行。
9.更进一步地,cpu支持至少四个描述符寄存器,cpu通过四个不同的描述符寄存器分别配置包含四种模式参数的dma描述符参数。
10.更进一步地,包含第一模式的dma描述符参数中还包括:源地址、目的地址和传输数据长度;包含第二模式的dma描述符参数中还包括:数据样式、数据样式长度和目的地址;包含第三模式的dma描述符参数中还包括:源地址、数据长度和crc初值;包含第四模式的dma描述符参数中还包括源缓冲区id和目的缓冲区id。
11.更进一步地,cpu配置dma描述符参数形成dma描述符和dma控制器获取dma描述符的过程采用异步设计,构建dma描述符缓存,将cpu配置的dma描述符存储于dma描述符缓存,dma控制器从dma描述符缓存获取所需的dma描述符来控制相应的数据处理策略的执行。
12.更进一步地,所述获取dma描述符内模式参数,根据模式参数的类型确定数据处理策略包括:
13.获取dma描述符内模式参数,并检测模式参数的类型;
14.若dma描述符内模式参数为第一模式,则dma控制器形成第一数据处理策略执行,
15.若dma描述符内模式参数为第二模式,则dma控制器形成第二数据处理策略执行,
16.若dma描述符内模式参数为第三模式,则dma控制器形成第三数据处理策略执行,
17.若dma描述符内模式参数为第四模式时,则dma控制器形成第四数据处理策略执行。
18.更进一步地,所述第一数据处理策略根据源地址和数据传输长度获取待传输数据,并对待传输数据按照突发模式的传输容量分片,按分片将带传输数据写入到目的地址,完成时,返回完成标志;
19.所述第二数据处理策略将指定的数据样式按照突发模式的传输容量分片,按分片将带数据样式的内容重复写入到指定目的地址范围内,目的地址范围的长度是数据样式长度的整数完成时,返回完成标志;
20.所述第三数据处理策略根据源地址和数据长度确认待计算crc校验码的数据,按照按照突发模式的传输容量分片读取待计算crc校验码的数据,并利用crc初值计算crc校验码,完成时,返回crc校验码;
21.所述第四数据处理策略将源缓冲区id、目的缓冲区id分别转换成源缓存地址和目的缓存地址,再从源缓存地址获取待传输数据,并对待传输数据按照突发模式的传输容量分片,按分片将带传输数据写入到目的缓存地址,完成时,返回完成标志。
22.更进一步地,每种dma描述符中均包含dma描述符id,完成标志和crc校验码的结果反馈信息中包含dma描述符id,通过dma描述符id指示完成数据传输或者crc校验码计算的数据处理策略所对应的dma描述符。
23.更进一步地,cpu根据内存位宽或者根据总线位宽通过突发模式传输容量寄存器配置突发模式的传输容量;dma控制器从突发模式传输容量寄存器获取突发模式的传输容量来对数据进行分片处理。
24.第二方面,本发明提供一种实现多功能dma传输的装置,包括:第一配置模块,所述第一配置模块用于根据dma业务需求配置dma描述符的dma描述符参数;
25.第二配置模块,所述第二配置模块用于配置突发模式的数据容量;
26.描述符管理模块,所述描述符管理模块构建dma描述符缓存,将cpu配置的dma描述符参数更新形成dma描述符写入dma描述符缓存,从dma描述符缓存获取对应通道的dma描述符;
27.执行模块,所述执行模块根据描述符管理模块提供的dma描述符形成相应的数据处理策略执行,将数据处理策略执行结果反馈给描述符管理模块,描述符管理模块根据执行结果删除已完成的dma描述符。
28.第三方面,本发明提供一种实现多功能dma的传输方法的存储介质,所述实现多功能dma的传输方法的存储介质存储至少一条指令,读取并执行所述指令实现所述多功能dma的传输方法。
29.本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
30.本发明中通过包含不同模式参数的dma描述符来控制dma控制器执行不同的数据处理策略;在dma描述符的模式参数为第一模式时,dma控制器将源地址的数据传输到目的地址,实现数据搬移;在dma描述符的模式参数为第二模式时,dma控制器将数据样式重复传输到目的地址,实现数据样式置位;在dma描述符的模式参数为第三模式时,dma控制器对指定的数据进行crc校验码计算,实现计算数据的crc校验码;在dma描述符的模式参数为第四模式时,dma控制器将源缓存区id所指示缓存中的的缓存数据传输到目的缓存区id所指示的缓存中,实现缓存间数据传输。最终基于包含不同模式参数dma描述符实现了多功能dma传输。
31.本发明中cpu支持至少四个描述符寄存器,cpu通过四个不同的描述符寄存器分别配置包含四种模式参数的dma描述符参数,cpu可并行配置dma描述符参数,提高dma传输的效率。
附图说明
32.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
34.图1为本发明实施例提供的一种多功能dma的传输方法的流程图;
35.图2为本发明实施例提供的获取dma描述符内模式参数,根据模式参数的类型确定数据处理策略的流程图;
36.图3为本发明实施例提供的实现多功能dma的传输装置的示意图;
37.图4为本发明实施例提供的第一配置模块和第二配置模块的示意图;
38.图5为本发明实施例提供的描述符管理模块的示意图;
39.图6为本发明实施例提供的执行模块的示意图。
具体实施方式
40.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
42.实施例1
43.参阅图1所示,本发明实施例提供一种多功能dma的传输方法,包括:
44.s100,cpu根据dma业务需求在描述符寄存器配置相应的dma描述符参数,其中,dma
描述符参数包含模式参数,所述模式参数包含第一模式、第二模式、第三模式和第四模式;具体实施过程中,参阅图4所示,cpu支持至少四个描述符寄存器,支持并行通过四个不同的描述符寄存器分别配置包含四种模式参数的dma描述符参数。
45.具体实施过程中,包含第一模式的dma描述符参数中还包括:源地址、目的地址和传输数据长度。
46.包含第二模式的dma描述符参数中还包括:数据样式、数据样式长度和目的地址,其中,数据样式为需要被写入目的地址的制定数据,数据样式长度为指定数据的长度。
47.包含第三模式的dma描述符参数中还包括:源地址、数据长度和crc初值;
48.包含第四模式的dma描述符参数中还包括源缓冲区id和目的缓冲区id。
49.s200,dma控制器从描述符寄存器获取dma描述符参数形成dma描述符。具体实施过程中,所述dma描述符包含128位,通过预设的格式将模式参数,源地址、目的地址和传输数据长度,数据样式、数据样式长度和目的地址,源地址、数据长度和crc初值,源缓冲区id和目的缓冲区id配置于128位dma描述符中。
50.s300,dma控制器仲裁选出进行数据处理的dma通道,获取对应通道的dma描述符。
51.具体实施过程中,对于步骤s100、步骤s200和步骤s300中的cpu配置dma描述符参数形成dma描述符和dma控制器获取dma描述符的过程采用异步设计,具体的,构建dma描述符缓存,将cpu配置的dma描述符存储于dma描述符缓存,dma控制器从dma描述符缓存获取所需的dma描述符来控制相应的数据处理策略的执行,两个过程相互独立。所创建的描述符缓存地址由dma控制器中的寄存器指定。
52.s400,获取dma描述符内模式参数,根据模式参数的类型确定数据处理策略;具体实施过程中,参阅图2所示,所述获取dma描述符内模式参数,根据模式参数的类型确定数据处理策略包括:
53.s401,获取dma描述符内模式参数,检测dma描述符中模式参数的类型;
54.s402,若检测dma描述符内模式参数为第一模式,则dma控制器形成第一数据处理策略执行。
55.s403,若检测dma描述符内模式参数为第二模式,则dma控制器形成第二数据处理策略执行。
56.s404,若检测dma描述符内模式参数为第三模式,则dma控制器形成第三数据处理策略执行。
57.s405,若检测dma描述符内模式参数为第四模式时,则dma控制器形成第四数据处理策略执行。
58.s500,将dma描述符中的其他参数代入模式参数所对应的预设数据处理策略中执行。
59.具体的,所述第一数据处理策略根据dma描述符中的源地址和数据传输长度获取待传输数据,并对待传输数据按照突发模式的传输容量分片,按分片将带传输数据写入到目的地址,数据传输完成时,返回完成标志。
60.所述第二数据处理策略将dma描述符内指定的数据样式按照突发模式的传输容量分片,按分片将带数据样式的内容重复写入到指定目的地址范围内,目的地址范围的长度是数据样式长度的整数倍,数据样式置位完成后,返回执行完成标志。
61.所述第三数据处理策略根据源地址和数据长度确认待计算crc校验码的数据,按照按照突发模式的传输容量分片读取待计算crc校验码的数据,并利用crc初值计算crc校验码,完成时,返回crc校验码;
62.所述第四数据处理策略将dma描述符内源缓冲区id、目的缓冲区id分别转换成源缓存地址和目的缓存地址,再从源缓存地址获取待传输数据,并对待传输数据按照突发模式的传输容量分片,按分片将带传输数据写入到目的缓存地址,完成时,返回完成标志。
63.具体实施过程中,每种dma描述符中均包含dma描述符id,完成标志和crc校验码的结果反馈信息中包含dma描述符id,通过dma描述符id指示完成数据传输或者crc校验码计算的数据处理策略所对应的dma描述符。
64.cpu根据内存位宽或者根据总线位宽通过突发模式传输容量寄存器配置突发模式的传输容量;dma控制器从突发模式传输容量寄存器获取突发模式的传输容量来对数据进行分片处理。
65.实施例2
66.参阅图3所示,本发明实施例提供一种实现多功能dma传输的装置,包括:
67.第一配置模块,所述第一配置模块用于根据dma业务需求配置dma描述符的dma描述符参数;
68.第二配置模块,所述第二配置模块用于配置突发模式的数据容量;
69.具体的,参阅图4所示,所述第一配置模块包括cpu和描述符寄存器,所述第二配置模块包括cpu和突发模式传输容量寄存器。cpu根据dma业务需求,在描述符寄存器配置相应的dma描述符参数,根据内存位宽或者总线位宽来配置突发模式的数据容量,突发模式的数据容量不超过内存位宽和总线位宽。
70.描述符管理模块,所述描述符管理模块构建dma描述符缓存,将cpu配置的dma描述符参数更新形成dma描述符写入dma描述符缓存,从dma描述符缓存获取对应通道的dma描述符;具体的,参阅图5所示,所述描述符管理模块包括描述符管理单元和dma描述符缓存,所述描述符管理单元利用所述第一配置模块配置的dma描述符参数形成相应的dma描述符,并将dma描述符存储于dma描述符缓存,所述描述符管理单元从dma描述符缓存中获取相应的dma描述符给执行模块。
71.执行模块,所述执行模块根据描述符管理模块提供的dma描述符形成相应的数据处理策略执行,将数据处理策略执行结果反馈给描述符管理模块,描述符管理模块根据执行结果删除已完成的dma描述符,清出的dma描述符缓存空间来容纳新的dma描述符。
72.具体的,参阅图6所示,所述执行模块包括数据处理策略选择配置单元,所述数据处理侧路选择配置单元根据dma描述符配置相应的第一数据处理策略、第二数据处理策略、第三数据处理策略和第四数据处理策略,数据处理策略执行单元异步执行各个数据处理策略,数据处理策略执行单元连通读通道和写通道,数据处理策略执行单元连接第一缓存单元、第二缓存单元、第三缓存单元和第四缓存单元。数据处理策略执行单元连接描述符管理模块向描述符管理模块反馈数据处理策略执行结果。
73.具体的,数据处理策略执行单元将第一数据处理策略和第四数据处理策略中通过读通道获取数据和通过写通道输出数据的过程异步;将第二数据处理策略中,获取数据样式和通过写通道输出数据样式的过程异步;将第三数据处理策略中,通过读通道获取待crc
校验数据与crc校验的过程异步。分别通过第一缓存单元、第四缓存单元、第二缓存单元和第三缓存单元支持数据处理策略执行单元的异步过程。
74.执行模块通过dma通道管理单元监测读通道和写通道的状态,根据状态仲裁选出执行数据处理策略的dma通道,并通知描述符管理模块,描述符管理模块选取对应的dma描述符,并反馈给dma通道管理单元。
75.实施例3
76.本发明实施例提供一种实现多功能dma的传输方法的存储介质,所述实现多功能dma的传输方法的存储介质存储至少一条指令,读取并执行所述指令实现所述多功能dma的传输方法。
77.本发明中通过包含不同模式参数的dma描述符来控制dma控制器执行不同的数据处理策略;在dma描述符的模式参数为第一模式时,dma控制器将源地址的数据传输到目的地址,实现数据搬移;在dma描述符的模式参数为第二模式时,dma控制器将数据样式重复传输到目的地址,实现数据样式置位;在dma描述符的模式参数为第三模式时,dma控制器对指定的数据进行crc校验码计算,实现计算数据的crc校验码;在dma描述符的模式参数为第四模式时,dma控制器将源缓存区id所指示缓存中的的缓存数据传输到目的缓存区id所指示的缓存中,实现缓存间数据传输。最终基于包含不同模式参数dma描述符实现了多功能dma传输。
78.本发明中cpu支持至少四个描述符寄存器,cpu通过四个不同的描述符寄存器分别配置包含四种模式参数的dma描述符参数,cpu可并行配置dma描述符参数,提高dma传输的效率。
79.在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
80.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
81.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
82.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1