动态模块的外部分页和交换制造技术

技术编号:28053271 阅读:33 留言:0更新日期:2021-04-14 13:18
各种实施例包括用于计算设备上的动态模块实施外部分页和交换的方法和设备。实施例可以包括从用于静态映像的虚拟地址空间向计算设备的固件的静态映像的基础映像和动态模块分配静态虚拟地址,将静态映像分解为基础映像和动态模块,在启动时间期间将基础映像从存储存储器的第一分区加载到执行存储器中,在启动时间期间在执行存储器中保留交换池,并且在运行时间期间将动态模块的动态模块从存储存储器的第二分区加载到交换池中。器的第二分区加载到交换池中。器的第二分区加载到交换池中。

【技术实现步骤摘要】
【国外来华专利技术】动态模块的外部分页和交换
[0001]根据35U.S.C.
§
119的优先权主张
[0002]本专利申请要求于2018年9月13日提交的题为“EXTERNAL PAGING AND SWAPPING FOR DYNAMIC MODULES”的非临时申请No.16/130,069的优先权,该临时申请已转让给其受让人,并且在此通过引用明确地并入本文。

技术介绍

[0003]一些计算设备的存储器资源有限,特别是诸如物联网(IoT)设备之类的专用计算设备。然而,此类计算设备可能需要在广泛的用例上进行操作,它们可能涉及执行不同的代码和使用不同的数据,这两者都必须存储在存储器中。计算设备的简单实现是加载包含所有用例的代码和数据的单个映像(image),并使用该单个映像执行操作。这种单个映像实现有助于计算设备的测试、构建和变更跟踪。

技术实现思路

[0004]各个方面包括用于计算设备上的动态模块的外部分页和交换的装置和方法。各个方面可以包括动态模块从用于静态映像的虚拟地址空间向计算设备的固件的静态映像的基础映像和动态模块分配静态虚拟地址,将静态映像分解为基础映像和动态模块,在启动时间期间将基础映像从存储存储器的第一分区加载到执行存储器中,在启动时间期间在执行存储器中保留交换池,并且在运行时间期间将动态模块的第一动态模块从存储存储器的第二分区加载到交换池中。
[0005]在一些方面,第一动态模块可以包括代码模块和数据模块,并且将第一动态模块从存储存储器的第二分区加载到交换池可以包括将代码模块从存储存储器的第二分区加载到交换池。一些方面可以进一步包括将代码模块的静态虚拟地址映射到存储存储器的第二分区的物理块地址,将数据模块的静态虚拟地址映射到存储存储器的第三分区的物理块地址,并将代码模块的静态虚拟地址映射到执行存储器的交换池的物理地址。
[0006]在一些方面,在启动时间期间在执行存储器中保留交换池可以包括保留执行存储器的部分,其大小被设置为存储最大的动态模块。
[0007]在一些方面,动态模块可以包括多个代码模块。在一些方面,在启动时间期间在执行存储器中保留交换池可以包括保留执行存储器的部分,其大小被设置为存储多个代码模块中的最大的压缩版本。
[0008]一些方面可以进一步包括从存储存储器的第二分区接收访问动态模块的第二动态模块的请求,确定第一动态模块是否具有比第二动态模块更高的优先级,并且响应于确定第一动态模块不具有比第二动态模块更高的优先级,从交换池逐出第一动态模块。
[0009]在一些方面,第一动态模块可以包括代码模块和数据模块。一些方面可以进一步包括确定第一动态模块在执行第一动态模块时产生的数据是否需要用于第一动态模块的后续执行,并且响应于确定第一动态模块在执行第一动态模块时产生的数据需要用于第一动态模块的后续执行,将数据存储到存储存储器的第三分区中的数据模块。
[0010]一些方面可以进一步包括确定第一动态模块的用户,增加确定为要使用第一动态模块的每个用户的参考计数,并且减少确定为不再使用第一动态模块的每个用户的参考计数。
[0011]在一些方面,第一动态模块可以处于压缩格式。一些方面可以进一步包括通过第一动态模块的静态虚拟地址和第一动态模块处于压缩格式的指示符的关联来标识第一动态模块处于压缩格式,其中在运行时间期间从存储存储器的第二分区将第一动态模块加载到交换池中可以包括解压第一动态模块以将第一动态模块加载到交换池中。
[0012]各个方面包括具有执行存储器、存储存储器和配置为执行以上概述的任何方法的操作的处理器的计算设备。各个方面包括具有用于执行以上概述的任何方法的功能的组件的计算设备。各个方面包括处理器可读存储介质,在其上存储有处理器可执行指令,其配置为使处理器执行以上概述的任何方法的操作。
附图说明
[0013]并入本文并构成本说明书一部分的附图示出了各种实施例的示例实施例,并且与上文给出的一般描述和下文给出的详细描述一起用于解释权利要求的特征。
[0014]图1是示出了适合于实现各种实施例的示例计算设备的部件框图。
[0015]图2是示出了适合于实现各种实施例的示例性多核处理器的部件框图。
[0016]图3是示出了根据一些实施例的用于动态模块的外部分页和交换的方法的过程流程图。
[0017]图4是示出了根据一些实施例的计算设备的固件的静态映像的框图。
[0018]图5是示出了根据一些实施例的适合于为动态模块实现外部分页和交换的存储器管理系统的部件框图。
[0019]图6是示出了根据一些实施例的来自为动态模块实现外部分页和交换的代码模块的状态的状态图。
[0020]图7是示出了根据一些实施例的适合于为动态模块实现外部分页和交换的存储器管理系统的部件框图。
[0021]图8是示出了根据一些实施例的用于配置计算设备的固件以用于动态模块的外部分页和交换的方法的过程流程图。
[0022]图9是示出了根据一些实施例的用于初始化动态模块的外部分页和交换的方法的过程流程图。
[0023]图10是示出了根据一些实施例的用于动态模块的外部分页和交换的方法的过程流程图。
[0024]图11是示出了根据一些实施例的用于动态模块的外部分页和交换的参考计数跟踪的方法的过程流程图。
[0025]图12是示出了适合用于各种实施例的示例移动计算设备的部件框图。
[0026]图13是示出了适合用于各种实施例的示例移动计算设备的部件框图。
[0027]图14是示出了适合用于各种实施例的示例服务器的部件框图。
具体实施方式
[0028]将参考附图详细描述各种实施例。在所有附图中,将尽可能使用相同的附图标记表示相同或相似的部分。对特定示例和实现方式的引用是出于说明性目的,并且无意于限制权利要求的范围。
[0029]各种实施例包括用于使用外部分页和交换的静态链接和动态加载的代码模块的存储器管理的方法以及实现这种方法的计算设备。一些实施例可以包括将计算设备的固件的静态映像分解为用于不同硬件使用情况的基线映像和代码模块。在一些实施例中,可以在静态映像的虚拟地址空间内为代码模块静态分配虚拟地址。可以动态地在可执行存储器(例如,随机存取存储器(RAM))的交换池中交换进出代码模块。加载到交换池的代码模块的静态虚拟地址可以映射到交换池的物理地址。在各种实施例中,加载到交换池的代码模块的管理可以基于代码模块的执行需求。在各种替代的或附加实施例中,可以基于代码模块的优先级来管理加载到交换池的代码模块。可以压缩代码模块以进行存储(即以压缩格式存储),并且可以在将代码模块数据存储到可执行存储器用于执行之前或作为其部分来对代码模块数据进行解压缩。在各种实施例中,代码模块的相关数据可以被压缩以进行存储(即,以压缩格式存储),并且相关数据可以在存储到可执行存储器用于执行之前或作为其部分而被解压缩。
[0030]使用本文所述的静态链接和动态加载的代码模块的外部分页和交换本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种在计算设备上对动态模块进行外部分页和交换的方法,包括:从用于静态映像的虚拟地址空间向所述计算设备的固件的静态映像的基础映像和动态模块分配静态虚拟地址;将所述静态映像分解为所述基础映像和所述动态模块;在启动时间期间将所述基础映像从存储存储器的第一分区加载到执行存储器;在所述启动时间期间保留在所述执行存储器中的交换池;并且在运行时间期间,将所述动态模块中的第一动态模块从所述存储存储器的第二分区加载到所述交换池。2.根据权利要求1所述的方法,其中所述第一动态模块包括代码模块和数据模块,并且将所述第一动态模块从所述存储存储器的第二分区加载到所述交换池包括将所述代码模块从所述存储存储器的所述第二分区加载到所述交换池,所述方法进一步包括:将所述代码模块的静态虚拟地址映射到所述存储存储器的所述第二分区的物理块地址;将所述数据模块的静态虚拟地址映射到所述存储存储器的所述第三分区的物理块地址;并且将所述代码模块的所述静态虚拟地址映射到所述执行存储器的所述交换池的物理地址。3.根据权利要求1所述的方法,其中在所述启动时间期间在执行存储器中保留交换池包括保留大小为存储最大的动态模块的所述执行存储器的部分。4.根据权利要求1所述的方法,其中所述动态模块包括多个代码模块,并且其中在所述启动时间期间在执行存储器中保留交换池包括保留大小为存储多个代码模块中的最大的压缩版本的所述执行存储器的部分。5.根据权利要求1所述的方法,进一步包括:从所述存储存储器的所述第二分区接收访问所述动态模块的第二动态模块的请求;确定所述第一动态模块是否具有比所述第二动态模块更高的优先级;并且响应于确定所述第一动态模块不具有比所述第二动态模块更高的优先级,将所述第一动态模块从所述交换池中逐出。6.根据权利要求1所述的方法,其中所述第一动态模块包括代码模块和数据模块,所述方法进一步包括:确定在所述第一动态模块的执行期间由所述第一动态模块生成的数据是否需要用于所述第一动态模块的后续执行;并且响应于确定在所述第一动态模块的执行期间由所述第一动态模块生成的所述数据需要用于所述第一动态模块的后续执行,将所述数据存储到所述存储存储器的第三分区中的所述数据模块。7.根据权利要求1所述的方法,进一步包括:确定所述第一动态模块的用户;为所确定的要使用所述第一动态模块的每个用户增加参考计数;并且为所确定的不再使用所述第一动态模块的每个用户减少所述参考计数。8.根据权利要求1所述的方法,其中所述第一动态模块处于压缩格式,所述方法进一步
包括:通过所述第一动态模块的静态虚拟地址和所述第一动态模块处于压缩格式的指示符的关联来标识所述第一动态模块处于压缩格式,其中在运行时间期间从所述存储存储器的第二分区将第一动态模块加载到所述交换池包括解压缩所述第一动态模块以将所述第一动态模块加载到所述交换池。9.一种计算设备,包括:执行存储器;存储存储器;以及通信连接到所述执行存储器和所述存储存储器的处理器,其中所述处理器配置有处理器可执行指令,以使所述处理器执行包括以下的操作:从用于静态映像的虚拟地址空间向所述计算设备的固件的所述静态映像的基础映像和动态模块分配静态虚拟地址;将所述静态映像分解为所述基础映像和所述动态模块;在启动时间期间将所述基础映像从存储存储器的第一分区加载到所述执行存储器;在所述启动时间期间保留在所述执行存储器中的交换池;并且在运行时间期间,将所述动态模块中的第一动态模块从所述存储存储器的第二分区加载到所述交换池。10.根据权利要求9所述的计算设备,其中:所述第一动态模块包括代码模块和数据模块;所述处理器配置有处理器可执行指令以执行操作,使得将所述第一动态模块从所述存储存储器的第二分区加载到所述交换池包括将所述代码模块从所述存储存储器的所述第二分区加载到所述交换池;并且所述处理器配置有处理器可执行指令以执行进一步包括以下的操作:将所述代码模块的静态虚拟地址映射到所述存储存储器的所述第二分区的物理块地址;将所述数据模块的静态虚拟地址映射到所述存储存储器的所述第三分区的物理块地址;并且将所述代码模块的所述静态虚拟地址映射到所述执行存储器的所述交换池的物理地址。11.根据权利要求9所述的计算设备,其中所述处理器配置有处理器可执行指令以执行操作,使得在所述启动时间期间在执行存储器中保留交换池包括保留大小为存储最大的动态模块的所述执行存储器的部分。12.根据权利要求9所述的计算设备,其中:所述动态模块包括多个代码模块;并且所述处理器配置有处理器可执行指令以执行操作使得在所述启动时间期间在执行存储器中保留交换池包括保留大小为存储多个代码模块中的最大的压缩版本的所述执行存储器的部分。13.根据权利要求9所述的计算设备,其中所述处理器配置有处理器可执行指令以执行进一步包括以下的操作:
从所述存储存储器的所述第二分区接收访问所述动态模块的第二动态模块的请求;确定所述第一动态模块是否具有比所述第二动态模块更高的优先级;并且响应于确定所述第一动态模块不具有比所述第二动态模块更高的优先级,将所述第一动态模块从所述交换池中逐出。14.根据权利要求9所述的计算设备,其中:所述第一动态模块包括代码模块和数据模块;并且所述处理器配置有处理器可执行指令以执行进一步包括以下的操作:确定在所述第一动态模块的执行期间由所述第一动态模块生成的数据是否需要用于所述第一动态模块的后续执行;并且响应于确定在所述第一动态模块的执行期间由所述第一动态模块生成的所述数据需要用于所述第一动态模块的后续执行,将所述数据存储到所述存储存储器的第三分区中的所述数据模块。15.根据权利要求9所述的计算设备,其中所述处理器配置有处理器可执行指令以执行进一步包括以下的操作:确定所述第一动态模块的用户;为所确定的要使用所述第一动态模块的每个用户增加参考计数;并且为所确定的不再使用所述第一动态模块的每个用户减少所述参考计数。16.根据权利要求9所述的计算设备,其中:所述第一动态模块处于压缩格式;所述处理器配置有处理器可执行指令以执行进一步包括以下的操作:通过所述第一动态模块的静态虚拟地址和所述第一动态模块处于压缩格式的指示符的关联来标识所述第一动态模块处于压缩格式;并且所述处理器配置有处理器可执行指令以执行操作使得在运行时间期间从所述存储存储器的第二分区将第一动态模块加载到所述交换池包括解压缩所述第一动态模块以将所述第一动态模块加载到所述交换池。17.一种计算设备,包括:用于从用于静态映像的虚拟地址空间向所述计算设备的固件的所述静态映像的基础映像和动态模块分配静态虚拟地址的组件;用于将所述静态映像分解为所述基础映像和所述动态模块的组件;用于在启动时间期间将所述基础映像从存储存储器的第一分区加...

【专利技术属性】
技术研发人员:N耿GS切布拉C沈S塔卡尔C贺
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:

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

1