技术新讯 > 计算推算,计数设备的制造及其应用技术 > 数据搬运装置、DMA、电子设备及数据搬运方法与流程  >  正文

数据搬运装置、DMA、电子设备及数据搬运方法与流程

  • 国知局
  • 2024-10-09 14:44:27

本公开涉及数据处理,尤其涉及一种数据搬运装置、dma、电子设备及数据搬运方法。

背景技术:

1、直接存储器访问(direct memory access,dma)技术用于将某一地址范围内的数据搬运至另一地址范围,从而使得处理器不必为了传输数据而暂停任务,以克服大数据量传输时或追求高效传输时消耗处理器资源的弊端。

2、相关技术中,为了进一步提升数据搬运效率,可以采用预取方案进行数据传输。具体而言,数据输出设备(比如计算引擎)在输出当前命令的执行状态和所有处理结果数据后,即可开始新命令的数据计算工作;而dma也不必等待当前命令对应的所有写请求的应答均返回,即可开始新命令的传输工作。其中,计算引擎在针对每个命令进行数据计算时,可能会发生命令执行失败的情况,此时计算引擎可能不会产生处理结果数据,dma不需要针对该命令进行数据传输。但是在上述预取方案的执行过程中,dma可能会发生命令与处理结果数据彼此错位的情况,例如将下一条命令的待传输数据在上一条命令解析出的源地址、目的地址、传输长度下进行传输,导致数据搬运出错,数据搬运的可靠性偏低。

技术实现思路

1、本公开的目的是提供一种数据搬运装置、dma、电子设备及数据搬运方法,旨在提升数据搬运的可靠性。

2、根据本公开的一个方面,提供一种数据搬运装置,所述装置包括:

3、第一fifo,用于存储第一状态信息,所述第一状态信息是外部装置在成功处理了一个命令后发出的状态信息;

4、第二fifo,用于存储第一状态信息和第二状态信息,所述第二状态信息是所述外部装置在处理一个命令失败后发出的状态信息;

5、命令fifo,用于存储命令;

6、控制电路,用于从所述命令fifo中读取出目标命令,并从所述第二fifo中读取出目标状态信息,如果所述目标状态信息是第一状态信息,则处理所述目标命令,并在所述目标命令对应的全部写请求均执行完毕后,从所述第一fifo中读取出一个状态信息,并返回中断信息,如果所述目标状态信息是第二状态信息,则丢弃所述目标命令,并返回中断信息。

7、本公开一种可行的实现方式中,所述装置还包括数据fifo,所述数据fifo用于存储所述外部装置在处理命令后产生的数据。

8、本公开一种可行的实现方式中,所述控制电路在处理所述目标命令时具体用于:根据所述目标命令中的长度信息,从所述数据fifo中读取出相应长度的目标数据,并根据所述目标命令中的地址信息,针对所述目标数据生成一个或多个写请求,以及发出每个写请求。

9、本公开一种可行的实现方式中,所述控制电路还用于:在发出所述目标命令对应的全部写请求后,从所述命令fifo中读取出下一个目标命令。

10、本公开一种可行的实现方式中,所述控制电路还用于:在从所述命令fifo中读取出目标命令,但所述第二fifo为空的情况下,如果所述数据fifo不为空,则处理所述目标命令。

11、本公开一种可行的实现方式中,所述控制电路还用于:在从所述命令fifo中读取出目标命令,但所述第二fifo为空的情况下,如果所述数据fifo也为空,则对所述第二fifo和所述数据fifo进行监听,如果从所述第二fifo中监听并读取到第二状态信息,则丢弃所述目标命令,并返回中断信息,如果从所述数据fifo中监听到待搬运的数据,则处理所述目标命令。

12、本公开一种可行的实现方式中,所述控制电路还用于:接收所述外部装置发出的每个状态信息,如果接收到的状态信息为第一状态信息,则将该第一状态信息存入所述第一fifo和所述第二fifo,如果接收到的状态信息为第二状态信息,则将该第二状态信息存入所述第二fifo。

13、本公开一种可行的实现方式中,所述第一fifo和所述第二fifo还用于存储第三状态信息,所述第三状态信息是所述外部装置在处理一个命令时发生失败、但产生了处理结果数据的情况下,由所述外部装置发出的状态信息;

14、所述控制电路还用于:如果所述目标状态信息是第三状态信息,则处理所述目标命令,并在所述目标命令对应的全部写请求均执行完毕后,从所述第一fifo中读取出一个状态信息,并返回中断信息。

15、本公开一种可行的实现方式中,所述控制电路还用于:接收所述外部装置发出的每个状态信息,如果接收到的状态信息为第一状态信息或第三状态信息,则将该第一状态信息或第三状态信息存入所述第一fifo和所述第二fifo;如果接收到的状态信息为第二状态信息,则将该第二状态信息存入所述第二fifo。

16、本公开一种可行的实现方式中,所述第一fifo还用于存储第二子状态信息,所述第二fifo还用于存储第一子状态信息和第二子状态信息,所述第二子状态信息是所述外部装置在成功处理了多个连续子命令中的最后一个子命令后发出的状态信息,所述第一子状态信息是所述外部装置在成功处理了多个连续子命令中的非最后一个子命令后发出的状态信息;

17、所述命令fifo还用于存储子命令;

18、所述控制电路还用于:如果所述目标状态信息是第一子状态信息,则处理所述目标命令,如果所述目标状态信息是第二子状态信息,则处理所述目标命令,并在所述目标命令及所述目标命令之前的相应子命令的全部写请求均执行完毕后,从所述第一fifo中读取出一个状态信息,并返回中断信息。

19、根据本公开的另一方面,还提供一种dma,该dma包括上述任一实施例中所述的数据搬运装置。

20、根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的dma,或者该电子设备包括以上任一实现方式中所述的数据搬运装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、vr设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。

21、根据本公开的另一方面,还提供一种数据搬运方法,所述方法包括:

22、从命令fifo中读取出目标命令,并从第二fifo中读取出目标状态信息;所述第二fifo用于存储第一状态信息和第二状态信息,所述第一状态信息是外部装置在成功处理了一个命令后发出的状态信息,所述第二状态信息是所述外部装置在处理一个命令失败后发出的状态信息;

23、如果所述目标状态信息是第一状态信息,则处理所述目标命令,并在所述目标命令对应的全部写请求均执行完毕后,从第一fifo中读取出一个状态信息,并返回中断信息;第一fifo用于存储第一状态信息;

24、如果所述目标状态信息是第二状态信息,则丢弃所述目标命令,并返回中断信息。

技术特征:

1.一种数据搬运装置,所述装置包括:

2.根据权利要求1所述的装置,所述装置还包括数据fifo,所述数据fifo用于存储所述外部装置在处理命令后产生的数据。

3.根据权利要求2所述的装置,所述控制电路在处理所述目标命令时具体用于:根据所述目标命令中的长度信息,从所述数据fifo中读取出相应长度的目标数据,并根据所述目标命令中的地址信息,针对所述目标数据生成一个或多个写请求,以及发出每个写请求。

4.根据权利要求3所述的装置,所述控制电路还用于:在发出所述目标命令对应的全部写请求后,从所述命令fifo中读取出下一个目标命令。

5.根据权利要求2所述的装置,所述控制电路还用于:在从所述命令fifo中读取出目标命令,但所述第二fifo为空的情况下,如果所述数据fifo不为空,则处理所述目标命令。

6.根据权利要求2所述的装置,所述控制电路还用于:在从所述命令fifo中读取出目标命令,但所述第二fifo为空的情况下,如果所述数据fifo也为空,则对所述第二fifo和所述数据fifo进行监听,如果从所述第二fifo中监听并读取到第二状态信息,则丢弃所述目标命令,并返回中断信息,如果从所述数据fifo中监听到待搬运的数据,则处理所述目标命令。

7.根据权利要求1所述的装置,所述控制电路还用于:接收所述外部装置发出的每个状态信息,如果接收到的状态信息为第一状态信息,则将该第一状态信息存入所述第一fifo和所述第二fifo,如果接收到的状态信息为第二状态信息,则将该第二状态信息存入所述第二fifo。

8.根据权利要求1所述的装置,所述第一fifo和所述第二fifo还用于存储第三状态信息,所述第三状态信息是所述外部装置在处理一个命令时发生失败、但产生了处理结果数据的情况下,由所述外部装置发出的状态信息;

9.根据权利要求8所述的装置,所述控制电路还用于:接收所述外部装置发出的每个状态信息,如果接收到的状态信息为第一状态信息或第三状态信息,则将该第一状态信息或第三状态信息存入所述第一fifo和所述第二fifo;如果接收到的状态信息为第二状态信息,则将该第二状态信息存入所述第二fifo。

10.根据权利要求1所述的装置,所述第一fifo还用于存储第二子状态信息,所述第二fifo还用于存储第一子状态信息和第二子状态信息,所述第二子状态信息是所述外部装置在成功处理了多个连续子命令中的最后一个子命令后发出的状态信息,所述第一子状态信息是所述外部装置在成功处理了多个连续子命令中的非最后一个子命令后发出的状态信息;

11.一种dma,所述dma包括权利要求1至10任一项中所述的数据搬运装置。

12.一种电子设备,所述电子设备包括权利要求11所述的dma,或者包括权利要求1至10任一项所述的数据搬运装置。

13.一种数据搬运方法,所述方法包括:

技术总结本公开提供一种数据搬运装置、DMA、电子设备及数据搬运方法。其中,数据搬运装置包括第一FIFO、第二FIFO、命令FIFO及控制电路,第一FIFO用于存储第一状态信息,第二FIFO用于存储第一状态信息和第二状态信息,命令FIFO用于存储命令;其中第一状态信息是外部装置在成功处理了一个命令后发出的状态信息,第二状态信息是外部装置在处理一个命令失败后发出的状态信息;控制电路用于从命令FIFO中读取出目标命令,并从第二FIFO中读取出目标状态信息,如果目标状态信息是第一状态信息,则处理目标命令,并从第一FIFO中读取出一个状态信息,以及返回中断信息,如果目标状态信息是第二状态信息,则丢弃目标命令,并返回中断信息。上述数据搬运装置可以提升数据搬运的可靠性。技术研发人员:覃卓,马帅受保护的技术使用者:象帝先计算技术(重庆)有限公司技术研发日:技术公布日:2024/9/29

本文地址:https://www.jishuxx.com/zhuanli/20241009/306319.html

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