一种数据交换方法及装置制造方法及图纸

技术编号:35978415 阅读:10 留言:0更新日期:2022-12-17 22:47
一种数据交换方法及装置,涉及存储技术领域,解决了操作系统内核的内存交换机制无法满足不同应用的多样化需求的问题。数据交换方法应用于主机,主机安装有操作系统和目标应用,操作系统包括用户态空间,用户态空间设置有目标应用的用户态接口,用户态接口对应一个存储设备。具体方案包括:主机获取目标应用的交换请求,并根据该交换请求,调用用户态接口对存储设备执行操作。其中,该交换请求为换入请求或换出请求,换出请求用于请求将目标应用的数据从主机的内存写入存储设备。换入请求用于请求将存储设备中的数据写入内存。求将存储设备中的数据写入内存。求将存储设备中的数据写入内存。

【技术实现步骤摘要】
一种数据交换方法及装置


[0001]本申请涉及存储
,尤其涉及一种数据交换方法及装置。

技术介绍

[0002]主机的正常运行离不开操作系统,如Linux操作系统等。操作系统内核支持内存交换,即将主机的内存中的数据换出至存储设备,或将存储设备的数据换入至内存。主机上除了安装操作系统外还安装有各种应用。随着应用的多样化发展,各种应用对内存交换的需求呈现出多样化的趋势。例如,不同应用在内存交换时想要使用的存储设备可能不同。但是,操作系统内核进行内存交换时使用的存储设备通常是通用的固定设备,无法满足各种应用对存储设备的多样化需求。

技术实现思路

[0003]本申请提供一种数据交换方法及装置,解决了操作系统内核的内存交换机制无法满足不同应用的多样化需求的问题。
[0004]为达到上述目的,本申请采用如下技术方案:
[0005]第一方面,本申请提供一种数据交换方法,应用于主机,主机安装有操作系统和目标应用,操作系统包括用户态空间,用户态空间设置有目标应用的用户态接口,用户态接口对应一个存储设备。具体方案包括:主机获取目标应用的交换请求,并根据该交换请求,调用用户态接口对存储设备执行操作。其中,该交换请求为换入请求或换出请求,换出请求用于请求将目标应用的数据从主机的内存写入存储设备。换入请求用于请求将存储设备中的数据写入内存。
[0006]这样,通过在用户态空间设置应用的用户态接口,并调用该用户态接口进行该应用的数据的换出或换入,实现了用户态的内存交换。从而,针对不同的应用能够设置不同的用户态接口,该不同的用户态接口对应的存储设备不同,为用户提供了定制化的用户态内存交换框架,满足了不同应用对存储设备的多样化需求,使得用户能够设计自己想要的内存交换机制。
[0007]在本申请的一种可能的实现方式中,交换请求为换出请求的情况下,上述“根据交换请求,调用用户态接口对存储设备执行操作”的方法可以包括:主机响应于换出请求,在内存中确定目标应用的第一数据,并解除预存的页表中的第一虚拟地址与第一物理地址的映射关系,为第一数据分配第二虚拟地址,建立第二虚拟地址与第一物理地址的映射关系。之后,主机调用用户态接口,将第二虚拟地址对应的第一物理地址指示的第一数据从内存写入存储设备,并在页表中建立第一虚拟地址与第一交换入口的映射关系。其中第一交换入口用于指示第一数据在存储设备中的位置。第一虚拟地址为第一数据在虚拟内存的虚拟地址,第一物理地址为第一数据在内存中的地址。
[0008]这样,实现了基于第二虚拟地址的第一数据的换出过程,保证了用户态空间的换出过程的正确性和可靠性。
[0009]在本申请的另一种可能的实现方式中,本申请提供的数据交换方法还可以包括:主机解除第二虚拟地址与第一物理地址的映射关系,删除内存中的第一数据。
[0010]通过释放内存中第一数据的存储空间,能够节省内存占用,提高内存占用率。
[0011]在本申请的另一种可能的实现方式中,本申请提供的数据交换方法还可以包括:主机将第一虚拟地址的状态信息设置为第一信息,第一信息用于指示第一虚拟地址对应的第一数据的交换类型为用户态交换类型。
[0012]在本申请的另一种可能的实现方式中,交换请求为换入请求的情况下,上述“获取目标应用的交换请求”的方法可以包括:主机获取待访问的第二数据的虚拟地址,并在第二数据的虚拟地址的状态信息为第一信息,第二数据为目标应用的数据,且内存中未包括第二数据的情况下,生成换入请求。其中,第一信息用于指示第二数据的交换类型为用户态交换类型。
[0013]在本申请的另一种可能的实现方式中,上述“根据交换请求,调用用户态接口对存储设备执行操作”的方法可以包括:主机响应于换入请求,根据预存的页表获取第二数据的虚拟地址对应的第二交换入口,调用用户态接口,将第二交换入口指示的第二数据从存储设备写入内存,之后在页表中建立第二数据的虚拟地址与第二数据的物理地址的映射关系。第二数据的物理地址为第二数据在内存中的地址。
[0014]这样,实现了基于缺页异常上报的第二数据的换入过程,保证了用户态空间的换入过程的正确性和可靠性。
[0015]在本申请的另一种可能的实现方式中,在主机获取目标应用的交换请求之前,本申请提供的数据交换方法还可以包括:主机在目标应用启动后,建立换出线程和换入线程。其中,换出线程用于执行第一数据的换出操作,换入线程用于执行第二数据的换入操作。
[0016]在本申请的另一种可能的实现方式中,上述“建立换出线程和换入线程”的方法可以包括:主机在目标应用包含在预存的白名单的情况下,建立换出线程和换入线程。白名单中包括至少一个支持内存交换的应用。
[0017]这样,通过预先设置白名单,仅支持部分特定的应用进行内存交换,能够节省内存的开销,从而提高主机的性能。
[0018]第二方面,本申请提供一种数据交换装置。该数据交换装置包括用于执行上述第一方面或上述第一方面的任一种可能的实现方式的数据交换方法的各个模块。
[0019]第三方面,本申请提供一种主机,该主机包括存储器和处理器。存储器和处理器耦合。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,主机执行如第一方面及其任一种可能的实现方式的数据交换方法。
[0020]第四方面,本申请提供一种芯片系统,该芯片系统应用于主机。芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联;接口电路用于从主机的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,主机执行如第一方面及其任一种可能的实现方式的数据交换方法。
[0021]第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在主机上运行时,使得主机执行如第一方面及其任一种可能的实现方式的数据交换方法。
[0022]第六方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在主机上运行时,使得主机执行如第一方面及其任一种可能的实现方式的数据交换方法。
[0023]本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
[0024]本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
[0025]图1为本申请实施例提供的数据交换系统的一种示意图;
[0026]图2为本申请实施例提供的主机的一种结构示意图之一;
[0027]图3为本申请实施例提供的主机的一种结构示意图之二;
[0028]图4a为本申请实施例提供的用户态的数据换出的示意图;
[0029]图4b为本申请实施例提供的第一数据的换出的场景示意图;
[0030]图5为本申请实施例提供本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据交换方法,应用于主机,其特征在于,所述主机安装有操作系统和目标应用,所述操作系统包括用户态空间,所述用户态空间设置有所述目标应用的用户态接口,所述用户态接口对应一个存储设备,包括:获取所述目标应用的交换请求,所述交换请求为换入请求或换出请求,所述换出请求用于请求将所述目标应用的数据从所述主机的内存写入所述存储设备,所述换入请求用于请求将所述存储设备中的数据写入所述内存;根据所述交换请求,调用所述用户态接口对所述存储设备执行操作。2.根据权利要求1所述的数据交换方法,其特征在于,所述交换请求为所述换出请求,所述根据所述交换请求,调用所述用户态接口对所述存储设备执行操作,包括:响应于所述换出请求,在所述内存中确定所述目标应用的第一数据;解除预存的页表中的第一虚拟地址与第一物理地址的映射关系,所述第一虚拟地址为所述第一数据在虚拟内存的虚拟地址,所述第一物理地址为所述第一数据在所述内存中的地址;为所述第一数据分配第二虚拟地址,并建立所述第二虚拟地址与所述第一物理地址的映射关系;调用所述用户态接口,将所述第二虚拟地址对应的所述第一物理地址指示的所述第一数据从所述内存写入所述存储设备;在所述页表中建立所述第一虚拟地址与第一交换入口的映射关系,所述第一交换入口用于指示所述第一数据在所述存储设备中的位置。3.根据权利要求2所述的数据交换方法,其特征在于,所述数据交换方法还包括:解除所述第二虚拟地址与所述第一物理地址的映射关系,删除所述内存中的所述第一数据。4.根据权利要求2或3所述的数据交换方法,其特征在于,所述数据交换方法还包括:将所述第一虚拟地址的状态信息设置为第一信息,所述第一信息用于指示所述第一虚拟地址对应的所述第一数据的交换类型为用户态交换类型。5.根据权利要求1所述的数据交换方法,其特征在于,所述交换请求为所述换入请求,所述获取所述目标应用的交换请求,包括:获取待访问的第二数据的虚拟地址;在所述第二数据的虚拟地址的状态信息为第一信息,所述第二数据为所述目标应用的数据,且所述内存中未包括所述第二数据的情况下,生成所述换入请求,所述第一信息用于指示所述第二数据的交换类型为用户态交换类型。6.根据权利要求5所述的数据交换方法,其特征在于,所述根据所述交换请求,调用所述用户态接口对所述存储设备执行操作,包括:响应于所述换入请求,根据预存的页表获取所述第二数据的虚拟地址对应的第二交换入口;调用所述用户态接口,将所述第二交换入口指示的所述第二数据从所述存储设备写入所述内存;在所述页表中建立所述第二数据的虚拟地址与所述第二数据的物理地址的映射关系,所述第二数据的物理地址为所述第二数据在所述内存中的地址。
7.根据权利要求1

6中任一项所述的数据交换方法,其特征在于,在所述获取所述目标应用的交换请求之前,所述数据交换方法还包括:在所述目标应用启动后,建立换出线程和换入线程,所述换出线程用于执行第一数据的换出操作,所述换入线程用于执行第二数据的换入操作。8.根据权利要求7所述的数据交换方法,其特征在于,所述建立换出线程和换入线程,包括:在所述目标应用包含在预存的白名单的情况下,建立所述换出线程和所述换入线程,所述白名单中包括至少一个支持内存交换的应用。9.一种数据交换装置,位于主机,其特征在于,所述主机安装有操作系统和目标应用,所述操作系统包括用户态空间,所述用户态空间设置有所述目标应用的用户态接口,所述用户态接口对应一个存储设备,所述数据交换装置包括:获取单元,用于获取所述目标应用的交换请求,所述交换请求为换入请求或换...

【专利技术属性】
技术研发人员:郭帆汪雄峰刘勇强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1