技术新讯 > 计算推算,计数设备的制造及其应用技术 > 响应DMA请求的方法及程序产品、存储介质、电子设备与流程  >  正文

响应DMA请求的方法及程序产品、存储介质、电子设备与流程

  • 国知局
  • 2024-10-09 16:10:24

本技术实施例涉及计算机领域,具体而言,涉及一种响应dma请求的方法及程序产品、存储介质、电子设备。

背景技术:

1、芯片数据传输过程通常需要中央处理器(central processing unit,简称为cpu)的控制和处理,这不仅限制了数据传输速率,还增加了cpu的运行时间和资源占用,导致cpu性能下降,进而影响整个系统的性能。虽然直接存储器访问(direct memory access,简称为dma)类型的数据传送可以不需要cpu参与而直接访问存储器,但当系统中有多个dma发起者同时发起dma请求时,相关技术采用固定dma通道优先级的方式响应这些请求,但存在无法及时响应dma请求的问题。

技术实现思路

1、本技术实施例提供了一种响应dma请求的方法及程序产品、存储介质、电子设备,以至少解决相关技术中无法及时响应dma请求的问题。

2、根据本技术的一个实施例,提供了一种响应dma请求的方法,应用于dma控制装置,上述dma控制装置中包括多个dma控制器,上述dma控制装置与数据处理设备连接,上述方法包括:对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列,其中,上述第一请求队列与上述第二请求队列均是针对上述第一数据处理对象创建的请求队列,且上述第一请求队列的排列方式不同于上述第二请求队列的排序方式,上述第一仲裁操作用于对上述第一请求队列中的dma请求与上述第二请求队列中的dma请求进行排序,上述第一数据处理对象是上述数据处理设备中包括的多个数据处理对象中的任一处理对象;对上述第一目标请求队列与第二目标请求队列执行第二仲裁操作,得到第三目标请求队列,其中,上述第二目标请求队列是对第二数据处理对象的一个或多个第三请求队列执行上述第一仲裁操作后的队列,上述第二数据处理对象是多个上述数据处理对象中除上述第一数据处理对象之外的其他任一处理对象,上述第二仲裁操作用于对上述第一目标请求队列中的dma请求与上述第二目标请求队列中的dma请求进行排序;将上述第三目标请求队列发送至目标dma控制器,以指示上述目标dma控制器按照上述第三目标请求队列中包括的多个dma请求的排列顺序响应多个上述dma请求,其中,多个上述dma请求包括上述第一目标请求队列和上述第二目标请求队列中全部的dma请求,上述目标dma控制器是多个上述dma控制器中的任一dma控制器。

3、在一个示例性实施例中,对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列之前,上述方法还包括:接收上述第一数据处理对象发送的第一dma请求;根据上述第一dma请求中包括的第一请求信息将上述第一dma请求缓存至上述第一请求队列中或第三请求队列中,其中,上述第一请求信息包括上述第一数据处理对象的标识信息、上述第一dma请求的优先级信息和上述第一dma请求的目标地址信息,上述第三请求队列中的dma请求和上述第一请求队列中的dma请求的优先级信息是不同的;对上述第三请求队列中的dma请求执行第三仲裁操作,以将上述第三请求队列中的dma请求缓存至上述第二请求队列中,其中,上述第三仲裁操作用于根据上述目标地址信息和上述优先级信息对上述第三请求队列中的dma请求进行筛选。

4、在一个示例性实施例中,根据上述第一dma请求中包括的第一请求信息将上述第一dma请求缓存至上述第一请求队列中或第三请求队列中,包括:在上述优先级信息是插队信息的情况下,根据上述目标地址信息将上述第一dma请求缓存至上述第一请求队列中与上述插队信息中的插队位置对应的位置处,并将上述第一请求队列中与上述插队位置对应的位置的有效位设置为有效;或者,在上述优先级信息是预设优先级的情况下,根据上述预设优先级将上述第一dma请求缓存至上述第三请求队列中与上述预设优先级对应的位置处,并将上述第三请求队列中与上述预设优先级对应的位置的有效位设置为有效。

5、在一个示例性实施例中,对上述第三请求队列中的dma请求执行第三仲裁操作,以将上述第三请求队列中的dma请求缓存至上述第二请求队列中,包括:根据上述目标地址信息,对上述第三请求队列中的dma请求执行筛选操作,得到多个第二dma请求,其中,多个上述第二dma请求的目标地址信息均相同;在上述第二请求队列中包括与上述第二dma请求具有相同目标地址信息的dma请求的情况下,将多个上述第二dma请求继续缓存在上述第三请求队列中;在上述第二请求队列中不存在与上述第二dma请求具有相同目标地址信息的dma请求的情况下,将多个上述第二dma请求中优先级最高的dma请求缓存至上述第二请求队列中与上述目标地址信息对应的位置处,并将上述第二请求队列中与上述目标地址信息对应的位置的有效位设置为有效。

6、在一个示例性实施例中,对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列,包括:在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求中包括具有相同目标地址信息的第一目标dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处中不包括有效的dma请求的情况下,将上述第一目标dma请求缓存至上述第一目标请求队列中对应上述目标地址信息的位置处,并将上述第一目标请求队列中对应上述目标地址信息的位置的有效位设置为有效;或者,在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求中包括具有相同目标地址信息的第二目标dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处包括有效的dma请求的情况下,将上述第二目标dma请求分别继续缓存在上述第一请求队列和上述第二请求队列中。

7、在一个示例性实施例中,对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列,包括:在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求中不包括目标地址信息相同的dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处不包括有效的dma请求的情况下,将上述第一请求队列中dma请求和上述第二请求队列中的dma请求分别缓存至上述第一目标请求队列中与上述目标地址信息对应的位置处,并将上述第一目标请求队列中与上述目标地址信息对应的位置的有效位设置为有效;或者,在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求不包括具有相同目标地址信息的dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处包括有效的dma请求的情况下,将上述第一请求队列中的dma请求继续缓存在上述第一请求队列中,和/或,将上述第二请求队列中的dma请求继续缓存在上述第二请求队列中。

8、在一个示例性实施例中,对上述第一目标请求队列与第二目标请求队列执行第二仲裁操作,得到第三目标请求队列,包括:根据上述dma请求的目标地址信息,对上述第一目标请求队列中的dma请求与上述第二目标请求队列中的dma请求执行筛选操作,得到多个第三dma请求,其中,上述第三dma请求对应的目标地址信息均相同;根据上述数据处理对象的标识信息和/或上述第三dma请求的优先级信息,对多个上述第三dma请求执行上述第二仲裁操作,并将执行完上述第二仲裁操作后的多个上述第三dma请求缓存至上述第三目标请求队列中。

9、在一个示例性实施例中,根据上述数据处理对象的标识信息和/或优先级信息,对多个上述第三dma请求执行上述第二仲裁操作,并将执行完上述第二仲裁操作后的多个上述第三dma请求缓存至上述第三目标请求队列中,包括:在多个上述第三dma请求中包括的多个优先级信息不同的情况下,按照多个上述优先级信息之间的排序方式将多个上述第三dma请求缓存至上述第三目标请求队列中;或者,在多个上述第三dma请求中包括的多个上述优先级信息均相同的情况下,按照上述数据处理对象的标识信息之间的排序方式将多个上述第三dma请求缓存至上述第三目标请求队列中。

10、在一个示例性实施例中,将上述第三目标请求队列发送至目标dma控制器,以指示上述目标dma控制器按照上述第三目标请求队列中包括的多个dma请求的排列顺序响应多个上述dma请求,包括:根据上述dma请求的目标地址信息,将上述第三目标请求队列中的多个dma请求根据上述排列顺序发送至上述目标dma控制器中,其中,上述目标dma控制器的标识信息与上述目标地址信息是一一对应的关系;控制上述目标dma控制器按照发送顺序执行多个上述dma请求。

11、在一个示例性实施例中,上述dma控制装置还包括存储设备,上述dma控制装置与上述数据处理设备和上述存储设备连接,将上述第三目标请求队列发送至目标dma控制器,以指示上述目标dma控制器按照上述第三目标请求队列中包括的多个dma请求的排列顺序响应多个上述dma请求之后,上述方法还包括:将上述多个上述dma请求的执行状态发送至上述存储设备;在上述数据处理设备,根据上述反馈队列中的寄存器的轮询方式和/或中断反馈方式,向上述存储设备获取上述dma请求的执行状态的情况下,利用上述反馈队列从上述存储设备中获取多个上述dma请求的执行状态,并将多个上述dma请求的执行状态发送至上述数据处理设备。

12、在一个示例性实施例中,上述数据处理设备中包括多个数据处理对象,对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列之前,上述方法还包括:根据上述数据处理对象的数量和上述dma控制器的数量,配置请求队列与目标请求队列的数量,其中,上述请求队列中包括上述第一请求队列和上述第二请求队列,上述目标请求队列中包括上述第一目标请求队列和上述第二目标请求队列;根据上述dma控制器的数量,配置上述请求队列和上述目标请求队列的缓存空间;设置上述请求队列和上述目标请求队列接收上述dma请求的触发条件,其中,上述触发条件包括上述请求队列和上述目标请求队列的剩余缓存空间、dma控制器的运行状态。

13、根据本技术的一个实施例,提供了一种响应dma请求的装置,应用于dma控制装置,上述dma控制装置中包括多个dma控制器,上述dma控制装置与数据处理设备连接,上述装置包括:第一执行模块,用于对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列,其中,上述第一请求队列与上述第二请求队列均是针对上述第一数据处理对象创建的请求队列,且上述第一请求队列的排列方式不同于上述第二请求队列的排序方式,上述第一仲裁操作用于对上述第一请求队列中的dma请求与上述第二请求队列中的dma请求进行排序,上述第一数据处理对象是上述数据处理设备中包括的多个数据处理对象中的任一处理对象;第二执行模块,用于对上述第一目标请求队列与第二目标请求队列执行第二仲裁操作,得到第三目标请求队列,其中,上述第二目标请求队列是对第二数据处理对象的一个或多个第三请求队列执行上述第一仲裁操作后的队列,上述第二数据处理对象是多个上述数据处理对象中除上述第一数据处理对象之外的其他任一处理对象,上述第二仲裁操作用于对上述第一目标请求队列中的dma请求与上述第二目标请求队列中的dma请求进行排序;第一发送模块,用于将上述第三目标请求队列发送至目标dma控制器,以指示上述目标dma控制器按照上述第三目标请求队列中包括的多个dma请求的排列顺序响应多个上述dma请求,其中,多个上述dma请求包括上述第一目标请求队列和上述第二目标请求队列中全部的dma请求,上述目标dma控制器是多个上述dma控制器中的任一dma控制器。

14、在一个示例性实施例中,上述装置还包括:第一接收模块,用于对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列之前,接收上述第一数据处理对象发送的第一dma请求;第一缓存模块,用于根据上述第一dma请求中包括的第一请求信息将上述第一dma请求缓存至上述第一请求队列中或第三请求队列中,其中,上述第一请求信息包括上述第一数据处理对象的标识信息、上述第一dma请求的优先级信息和上述第一dma请求的目标地址信息,上述第三请求队列中的dma请求和上述第一请求队列中的dma请求的优先级信息是不同的;第三执行模块,用于对上述第三请求队列中的dma请求执行第三仲裁操作,以将上述第三请求队列中的dma请求缓存至上述第二请求队列中,其中,上述第三仲裁操作用于根据上述目标地址信息和上述优先级信息对上述第三请求队列中的dma请求进行筛选。

15、在一个示例性实施例中,上述第一缓存模块,包括:第一缓存子模块,用于在上述优先级信息是插队信息的情况下,根据上述目标地址信息将上述第一dma请求缓存至上述第一请求队列中与上述插队信息中的插队位置对应的位置处,并将上述第一请求队列中与上述插队位置对应的位置的有效位设置为有效;或者,第二缓存子模块,用于在上述优先级信息是预设优先级的情况下,根据上述预设优先级将上述第一dma请求缓存至上述第三请求队列中与上述预设优先级对应的位置处,并将上述第三请求队列中与上述预设优先级对应的位置的有效位设置为有效。

16、在一个示例性实施例中,上述第三执行模块,包括:第一执行子模块,用于根据上述目标地址信息,对上述第三请求队列中的dma请求执行筛选操作,得到多个第二dma请求,其中,多个上述第二dma请求的目标地址信息均相同;第三缓存子模块,用于在上述第二请求队列中包括与上述第二dma请求具有相同目标地址信息的dma请求的情况下,将多个上述第二dma请求继续缓存在上述第三请求队列中;第四缓存子模块,用于在上述第二请求队列中不存在与上述第二dma请求具有相同目标地址信息的dma请求的情况下,将多个上述第二dma请求中优先级最高的dma请求缓存至上述第二请求队列中与上述目标地址信息对应的位置处,并将上述第二请求队列中与上述目标地址信息对应的位置的有效位设置为有效。

17、在一个示例性实施例中,上述第一执行模块,包括:第五缓存子模块,用于在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求中包括具有相同目标地址信息的第一目标dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处中不包括有效的dma请求的情况下,将上述第一目标dma请求缓存至上述第一目标请求队列中对应上述目标地址信息的位置处,并将上述第一目标请求队列中对应上述目标地址信息的位置的有效位设置为有效;或者,第六缓存子模块,用于在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求中包括具有相同目标地址信息的第二目标dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处包括有效的dma请求的情况下,将上述第二目标dma请求分别继续缓存在上述第一请求队列和上述第二请求队列中。

18、在一个示例性实施例中,上述第一执行模块,包括:第七缓存子模块,用于在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求中不包括目标地址信息相同的dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处不包括有效的dma请求的情况下,将上述第一请求队列中dma请求和上述第二请求队列中的dma请求分别缓存至上述第一目标请求队列中与上述目标地址信息对应的位置处,并将上述第一目标请求队列中与上述目标地址信息对应的位置的有效位设置为有效;或者,第八缓存子模块,用于在上述第一请求队列中的dma请求和上述第二请求队列中的dma请求不包括具有相同目标地址信息的dma请求,且上述第一目标请求队列中对应上述目标地址信息的位置处包括有效的dma请求的情况下,将上述第一请求队列中的dma请求继续缓存在上述第一请求队列中,和/或,将上述第二请求队列中的dma请求继续缓存在上述第二请求队列中。

19、在一个示例性实施例中,上述第二执行模块,包括:第一筛选子模块,用于根据上述dma请求的目标地址信息,对上述第一目标请求队列中的dma请求与上述第二目标请求队列中的dma请求执行筛选操作,得到多个第三dma请求,其中,上述第三dma请求对应的目标地址信息均相同;第九缓存子模块,用于根据上述数据处理对象的标识信息和/或上述第三dma请求的优先级信息,对多个上述第三dma请求执行上述第二仲裁操作,并将执行完上述第二仲裁操作后的多个上述第三dma请求缓存至上述第三目标请求队列中。

20、在一个示例性实施例中,上述第九缓存子模块,包括:第一缓存单元,用于在多个上述第三dma请求中包括的多个优先级信息不同的情况下,按照多个上述优先级信息之间的排序方式将多个上述第三dma请求缓存至上述第三目标请求队列中;或者,第二缓存单元,用于在多个上述第三dma请求中包括的多个上述优先级信息均相同的情况下,按照上述数据处理对象的标识信息之间的排序方式将多个上述第三dma请求缓存至上述第三目标请求队列中。

21、在一个示例性实施例中,上述第一发送模块,包括:第一发送子模块,用于根据上述dma请求的目标地址信息,将上述第三目标请求队列中的多个dma请求根据上述排列顺序发送至上述目标dma控制器中,其中,上述目标dma控制器的标识信息与上述目标地址信息是一一对应的关系;第二执行子模块,用于控制上述目标dma控制器按照发送顺序执行多个上述dma请求。

22、在一个示例性实施例中,上述dma控制装置还包括存储设备,上述dma控制装置与上述数据处理设备和上述存储设备连接,上述装置还包括:第二发送模块,用于将上述第三目标请求队列发送至目标dma控制器,以指示上述目标dma控制器按照上述第三目标请求队列中包括的多个dma请求的排列顺序响应多个上述dma请求之后,将上述多个上述dma请求的执行状态发送至上述存储设备;第一获取模块,用于在上述数据处理设备,根据上述反馈队列中的寄存器的轮询方式和/或中断反馈方式,向上述存储设备获取上述dma请求的执行状态的情况下,利用上述反馈队列从上述存储设备中获取多个上述dma请求的执行状态,并将多个上述dma请求的执行状态发送至上述数据处理设备。

23、在一个示例性实施例中,上述数据处理设备中包括多个数据处理对象,上述装置还包括:第一配置模块,用于对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列之前,根据上述数据处理对象的数量和上述dma控制器的数量,配置请求队列与目标请求队列的数量,其中,上述请求队列中包括上述第一请求队列和上述第二请求队列,上述目标请求队列中包括上述第一目标请求队列和上述第二目标请求队列;第二配置模块,用于根据上述dma控制器的数量,配置上述请求队列和上述目标请求队列的缓存空间;设置上述请求队列和上述目标请求队列接收上述dma请求的触发条件,其中,上述触发条件包括上述请求队列和上述目标请求队列的剩余缓存空间、dma控制器的运行状态。

24、根据本技术的又一个实施例,还提供了一种dma控制装置,上述dma控制装置与数据处理设备和存储设备连接,其中,上述dma控制装置被设置为运行时执行上述任一项方法实施例中的步骤。

25、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,其中,上述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

26、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行上述任一项方法实施例中的步骤。

27、根据本技术的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,上述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。

28、通过本技术,首先对第一数据处理对象的第一请求队列与第二请求队列执行第一仲裁操作,得到第一目标请求队列,然后对第一数据处理对象的第一目标请求队列与第二数据处理对象的第二目标请求队列执行第二仲裁操作,得到第三目标请求队列,最后将第三目标请求队列发送至目标dma控制器,以指示目标dma控制器按照第三目标请求队列中包括的多个dma请求的排列顺序响应多个dma请求。由于本技术不固定dma通道的优先级,而是通过先对同一数据处理对象的dma请求执行第一仲裁操作,再对不同数据处理对象之间的dma请求执行第二仲裁操作,从而可以快速的确定出dma请求的执行顺序,因此,可以解决相关技术中无法及时响应dma请求的问题,实现了及时高效响应dma请求的效果。

本文地址:https://www.jishuxx.com/zhuanli/20240929/312005.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。