【技术实现步骤摘要】
【国外来华专利技术】动态模块的外部分页和交换
[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]在一些方面,第一动态模块可以包括代码模块和数据模块,并且将第一动态模块从存储存储器的第二分区加载到交换池可以包括将代码模块从存储存储 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】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贺,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。