一种数据直接存储器访问传输方法、装置、设备及介质与流程

文档序号:36176814发布日期:2023-11-29 00:32阅读:41来源:国知局
一种数据直接存储器访问传输方法与流程

本发明涉及数据安全与直接存储器访问传输领域,特别涉及一种数据直接存储器访问传输方法、装置、设备及介质。


背景技术:

1、risc-v(reduced instruction set computing,开源指令集)架构将程序的运行模式分成了机器模式、超级用户模式以及普通用户模式,而且为每个模式提供了不同等级的数据物理内存保护功能,通过物理内存保护,可以将mcu(microcontroller unit,微控制单元)的程序分为运行在机器模式下的可信固件以及运行在超级用户和普通用户模式下的各执行域。在mcu的应用过程中,用户希望有些数据可以被保护起来,这些数据在通常情况下只能在机器模式下由可信固件访问,目前,无论是被保护数据还是普通数据,cpu(central processing unit,中央处理器)都会按照普通的dma(direct memory access,直接存储器访问)传输形式进行数据传输,无法保证被保护数据的安全性,并且cpu在进行普通的dma传输时,无法执行其他程序,因此造成程序执行的效率较低。

2、由上可见,如何实现执行数据直接存储器访问传输的同时还可以运行其他程序,从而提高程序执行效率,提高以直接存储器访问传输形式进行数据传输的安全性是本领域有待解决的问题。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种数据直接存储器访问传输方法、装置、设备及介质,能够实现执行数据直接存储器访问传输的同时还可以运行其他程序,从而提高程序执行效率,提高以直接存储器访问传输形式进行数据传输的安全性。其具体方案如下:

2、第一方面,本技术公开了一种数据直接存储器访问传输方法,包括:

3、监测本地的数据直接存储器访问传输是否被触发;

4、若所述数据直接存储器访问传输被触发,则从本地的第一数据内存中确定待传输数据,将所述待传输数据发送至预设第三方的传输地址仲裁装置,以便所述传输地址仲裁装置判断所述待传输数据是否满足数据保护条件,若满足,则将数据直接存储器访问传输请求和所述待传输数据发送至本地的可信固件;

5、利用所述可信固件对所述待传输数据的读写状态进行设置,以得到设置后的所述待传输数据,基于设置后的所述待传输数据为本地预设的寄存器进行赋值,以得到赋值后的所述寄存器,利用赋值后的所述寄存器和所述待传输数据进行所述第一数据内存和第二数据内存之间的数据直接存储器访问传输。

6、可选的,所述将所述待传输数据发送至预设第三方的传输地址仲裁装置,以便所述传输地址仲裁装置判断所述待传输数据是否满足数据保护条件,包括:

7、将包含源地址的源数据、包含目标地址的目标数据以及数据长度发送至预设第三方的传输地址仲裁装置,以便所述传输地址仲裁装置判断所述源地址或所述目标地址是否满足数据保护条件。

8、可选的,所述利用所述可信固件对所述待传输数据的读写状态进行设置,以得到设置后的所述待传输数据,基于设置后的所述待传输数据为本地预设的寄存器进行赋值,以得到赋值后的所述寄存器,包括:

9、利用所述可信固件将所述待传输数据的读写状态设置为机器模式可读写,以得到设置后的所述待传输数据;

10、基于设置后的包含所述源地址、所述目标地址以及所述数据长度的所述待传输数据为本地预设的寄存器进行赋值,以得到赋值后的所述寄存器。

11、可选的,所述基于设置后的包含所述源地址、所述目标地址以及所述数据长度的所述待传输数据为本地预设的寄存器进行赋值,以得到赋值后的所述寄存器,包括:

12、基于设置后的包含所述源地址、所述目标地址以及所述数据长度的所述待传输数据为所述寄存器中的源地址寄存器、目标地址寄存器、传输长度寄存器分别进行赋值,以得到赋值后的所述寄存器。

13、可选的,所述将数据直接存储器访问传输请求和所述待传输数据发送至本地的可信固件之后,还包括:

14、确定当前执行程序,并将所述当前执行程序压入本地的堆栈,然后跳转至本地的可信固件;

15、利用所述可信固件记录所述待传输数据中的源数据物理内存保护模式信息和目标数据物理内存保护模式信息。

16、可选的,所述的数据直接存储器访问传输方法,还包括:

17、在执行数据直接存储器访问传输过程中,跳转回所述堆栈中的所述当前执行程序,继续执行所述当前执行程序,并监测所述数据直接存储器访问传输是否完成,若所述数据直接存储器访问传输完成,则结束所述数据直接存储器访问传输过程。

18、可选的,所述若所述数据直接存储器访问传输完成,则结束所述数据直接存储器访问传输过程,包括:

19、生成中断请求,记录最新执行程序,响应所述中断请求并跳转至本地的中断服务程序;

20、利用所述中断服务程序对设置后的所述待传输数据的读写状态进行初始化,并对所述数据直接存储器访问传输的标志位进行设置,以结束所述数据直接存储器访问传输过程,继续执行所述最新执行程序。

21、第二方面,本技术公开了一种数据直接存储器访问传输装置,包括:

22、监测模块,用于监测本地的数据直接存储器访问传输是否被触发;

23、判断模块,用于若所述数据直接存储器访问传输被触发,则从本地的第一数据内存中确定待传输数据,将所述待传输数据发送至预设第三方的传输地址仲裁装置,以便所述传输地址仲裁装置判断所述待传输数据是否满足数据保护条件,若满足,则将数据直接存储器访问传输请求和所述待传输数据发送至本地的可信固件;

24、数据传输模块,用于利用所述可信固件对所述待传输数据的读写状态进行设置,以得到设置后的所述待传输数据,基于设置后的所述待传输数据为本地预设的寄存器进行赋值,以得到赋值后的所述寄存器,利用赋值后的所述寄存器和所述待传输数据进行所述第一数据内存和第二数据内存之间的数据直接存储器访问传输。

25、第三方面,本技术公开了一种电子设备,包括:

26、存储器,用于保存计算机程序;

27、处理器,用于执行所述计算机程序,以实现前述的数据直接存储器访问传输方法。

28、第四方面,本技术公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据直接存储器访问传输方法的步骤。

29、可见,本技术提供了一种数据直接存储器访问传输方法,包括监测本地的数据直接存储器访问传输是否被触发;若所述数据直接存储器访问传输被触发,则从本地的第一数据内存中确定待传输数据,将所述待传输数据发送至预设第三方的传输地址仲裁装置,以便所述传输地址仲裁装置判断所述待传输数据是否满足数据保护条件,若满足,则将数据直接存储器访问传输请求和所述待传输数据发送至本地的可信固件;利用所述可信固件对所述待传输数据的读写状态进行设置,以得到设置后的所述待传输数据,基于设置后的所述待传输数据为本地预设的寄存器进行赋值,以得到赋值后的所述寄存器,利用赋值后的所述寄存器和所述待传输数据进行所述第一数据内存和第二数据内存之间的数据直接存储器访问传输。本技术通过预设第三方的传输地址仲裁装置判断待传输数据是否满足数据保护条件,若满足,则表明待传输数据以直接存储器访问传输的方式进行传输,利用可信固件实现对待传输数据的直接存储器访问传输,从而实现利用可信固件执行数据直接存储器访问传输的同时还能够运行其他程序,提高程序执行效率,通过预设第三方的传输地址仲裁装置对待传输数据进行数据保护条件的判断,从而筛选出被保护数据,提高以直接存储器访问传输形式对被保护数据进行数据传输的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1