设备内存访问方法、装置、设备及可读存储介质制造方法及图纸

技术编号:39290785 阅读:11 留言:0更新日期:2023-11-07 10:59
本发明专利技术提供一种设备内存访问方法、装置、设备及可读存储介质。该方法包括:内存管理模块将多个设备内存物理地址对应的设备内存虚拟地址写入内存I/O地址页表,并查询内存映射表,得到目标设备内存物理地址、目标设备内存缓存物理地址以及访问类型并传输给设备;若设备检测到访问类型为读操作,则将设备内存中的数据同步到内部缓存中;内存管理模块将目标设备内存缓存物理地址写入内存I/O地址页表并修改下一条应用指令;应用执行访问类型对应的当前应用指令以及修改后的下一条应用指令。通过本发明专利技术,解决了目前CPU无法及时且准确的获取设备内存自刷新后的数据的问题。设备内存自刷新后的数据的问题。设备内存自刷新后的数据的问题。

【技术实现步骤摘要】
设备内存访问方法、装置、设备及可读存储介质


[0001]本专利技术涉及内存虚拟化
,尤其涉及一种设备内存访问方法、装置、设备及可读存储介质。

技术介绍

[0002]由于只有设备能够直接感知设备内存中的数据发生变更,而应用无法直接感知设备内存中的数据发生变更,且应用访问设备内存的指令,仅仅支持本地访问,不支持网络访问,所以应用远程访问设备内存,难以保证内部缓存与设备内存的数据一致性,因此,亟需一种保证应用每次都可以及时获取远程设备内存中正确数据的方法。

技术实现思路

[0003]本专利技术的主要目的在于提供一种设备内存远程访问方法、装置、设备及可读存储介质,旨在解决目前应用无法每次都及时且准确的获取远程设备内存自刷新后的数据的问题。
[0004]第一方面,本专利技术提供一种设备内存访问方法,所述设备内存访问方法包括:
[0005]内存管理模块将多个设备内存物理地址对应的设备内存虚拟地址写入内存I/O地址页表,其中,设备内存物理地址与设备内存虚拟地址一一对应;
[0006]内存管理模块根据用以访问设备内存的目标设备内存虚拟地址查询内存映射表,得到目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址以及访问类型并传输给设备;
[0007]若设备检测到所述访问类型为读操作,则设备将所述目标设备内存物理地址对应的设备内存中的数据同步到目标设备内存缓存物理地址对应的内部缓存中;
[0008]内存管理模块将目标设备内存缓存物理地址写入内存I/O地址页表并修改下一条应用指令;
[0009]应用执行所述访问类型对应的当前应用指令,以供硬件将所述内部缓存中的数据写入寄存器中;
[0010]应用执行修改后的下一条应用指令,以供内存管理模块将内存I/O地址页表表项置为无效。
[0011]可选的,所述传输给设备的步骤,包括:
[0012]内存管理模块根据目标设备内存虚拟地址查询设备内存映射表,得到目标设备内存虚拟地址对应的设备通信地址和端口;
[0013]内存管理模块通过所述设备通信地址和端口将目标设备内存虚拟地址以及目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址、访问类型发送给设备。
[0014]可选的,在所述内存管理模块根据用以访问设备内存的目标设备内存虚拟地址查询内存映射表,得到目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存
缓存物理地址以及访问类型并传输给设备的步骤之后,包括:
[0015]若设备检测到所述访问类型为写操作,则设备将写操作对应的数据写入所述目标设备内存物理地址对应的设备内存中。
[0016]可选的,所述硬件将所述内部缓存中的数据写入寄存器中的步骤,包括:
[0017]硬件接收目标设备内存虚拟地址以及寄存器地址或寄存器名称,并执行应用的读指令;
[0018]硬件通过查询内存I/O地址页表获取目标设备内存虚拟地址对应的目标设备内存缓存物理地址,并将目标设备内存缓存物理地址对应的内部缓存中的数据写入寄存器地址或寄存器名称对应的寄存器中。
[0019]可选的,所述修改下一条应用指令的步骤,包括:
[0020]内存管理模块根据目标设备内存虚拟地址查询设备内存映射表,得到目标设备内存虚拟地址对应的当前应用指令地址;
[0021]根据当前应用指令地址确定下一条应用指令的地址;
[0022]基于下一条应用指令的地址修改下一条应用指令。
[0023]可选的,在所述应用执行修改后的下一条应用指令的步骤之后,包括:
[0024]内存管理模块将修改后的下一条应用指令恢复

[0025]执行恢复后的下一条应用指令。
[0026]可选的,在所述应用执行修改后的下一条应用指令的步骤之后,包括:
[0027]检测目标设备内存虚拟地址对应的目标设备内存缓存物理地址在内存I/O地址页表中是否为空
[0028]若为空,则将目标设备内存缓存物理地址写入的内存I/O地址页表中,并将对应的页表表项置为有效;
[0029]若不为空,则将对应的页表表项置为有效。
[0030]第二方面,本专利技术还提供一种设备内存访问装置,所述设备内存访问装置包括:
[0031]第一写入模块,用于内存管理模块将多个设备内存物理地址对应的设备内存虚拟地址写入内存I/O地址页表,其中,设备内存物理地址与设备内存虚拟地址一一对应;
[0032]查询模块,用于内存管理模块根据用以访问设备内存的目标设备内存虚拟地址查询内存映射表,得到目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址以及访问类型并传输给设备;
[0033]同步模块,用于若设备检测到所述访问类型为读操作,则设备将所述目标设备内存物理地址对应的设备内存中的数据同步到目标设备内存缓存物理地址对应的内部缓存中;
[0034]第二写入模块,用于内存管理模块将目标设备内存缓存物理地址写入内存I/O地址页表并修改下一条应用指令;
[0035]第一指令执行模块,用于应用执行所述访问类型对应的当前应用指令,以供硬件将所述内部缓存中的数据写入寄存器中;
[0036]第二指令执行模块,用于应用执行修改后的下一条应用指令,以供内存管理模块将内存I/O地址页表表项置为无效。
[0037]第三方面,本专利技术还提供一种设备内存访问设备,所述设备内存访问设备包括处
理器、存储器、以及存储在所述存储器上并可被所述处理器执行的设备内存访问程序,其中所述设备内存访问程序被所述处理器执行时,实现如上所述的设备内存访问方法的步骤。
[0038]第四方面,本专利技术还提供一种可读存储介质,所述可读存储介质上存储有设备内存访问程序,其中所述设备内存访问程序被处理器执行时,实现如上所述的设备内存访问方法的步骤。
[0039]本专利技术中,内存管理模块将多个设备内存物理地址对应的设备内存虚拟地址写入内存I/O地址页表,其中,设备内存物理地址与设备内存虚拟地址一一对应;内存管理模块根据用以访问设备内存的目标设备内存虚拟地址查询内存映射表,得到目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址以及访问类型并传输给设备;若设备检测到所述访问类型为读操作,则设备将所述目标设备内存物理地址对应的设备内存中的数据同步到目标设备内存缓存物理地址对应的内部缓存中;内存管理模块将目标设备内存缓存物理地址写入内存I/O地址页表并修改下一条应用指令;应用执行所述访问类型对应的当前应用指令,以供硬件将所述内部缓存中的数据写入寄存器中;应用执行修改后的下一条应用指令,以供内存管理模块将内存I/O地址页表表项置为无效。通过本专利技术,由于每次硬件将内部缓存中的数据写入寄存器中之后,内存I/O地址页表表项一般仍旧保持有效,即使设备内存的数据发生了变更,内部缓存的数据也难以及时变更,因此当应用再次读取设备内存数据时,仍旧会读取到上一次的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设备内存访问方法,其特征在于,所述设备内存访问方法包括:内存管理模块将多个设备内存物理地址对应的设备内存虚拟地址写入内存I/O地址页表,其中,设备内存物理地址与设备内存虚拟地址一一对应;内存管理模块根据用以访问设备内存的目标设备内存虚拟地址查询内存映射表,得到目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址以及访问类型并传输给设备;若设备检测到所述访问类型为读操作,则设备将所述目标设备内存物理地址对应的设备内存中的数据同步到目标设备内存缓存物理地址对应的内部缓存中;内存管理模块将目标设备内存缓存物理地址写入内存I/O地址页表并修改下一条应用指令;应用执行所述访问类型对应的当前应用指令,以供硬件将所述内部缓存中的数据写入寄存器中;应用执行修改后的下一条应用指令,以供内存管理模块将内存I/O地址页表表项置为无效。2.如权利要求1所述的设备内存访问方法,其特征在于,所述传输给设备的步骤,包括:内存管理模块根据目标设备内存虚拟地址查询设备内存映射表,得到目标设备内存虚拟地址对应的设备通信地址和端口;内存管理模块通过所述设备通信地址和端口将目标设备内存虚拟地址以及目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址、访问类型发送给设备。3.如权利要求1所述的设备内存访问方法,其特征在于,在所述内存管理模块根据用以访问设备内存的目标设备内存虚拟地址查询内存映射表,得到目标设备内存虚拟地址对应的目标设备内存物理地址、目标设备内存缓存物理地址以及访问类型并传输给设备的步骤之后,包括:若设备检测到所述访问类型为写操作,则设备将写操作对应的数据写入所述目标设备内存物理地址对应的设备内存中。4.如权利要求1所述的设备内存访问方法,其特征在于,所述硬件将所述内部缓存中的数据写入寄存器中的步骤,包括:硬件接收目标设备内存虚拟地址以及寄存器地址或寄存器名称,并执行应用的读指令;硬件通过查询内存I/O地址页表获取目标设备内存虚拟地址对应的目标设备内存缓存物理地址,并将目标设备内存缓存物理地址对应的内部缓存中的数据写入寄存器地址或寄存器名称对应的寄存器中。5.如权利要求1所述的设备内存访问方法,其特征在于,所述修改下一条应用指令的步骤,包括:内存管理模块根据目标设备内存虚拟地址查询设备内存映射表,得到目标...

【专利技术属性】
技术研发人员:王峰
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1