[发明专利]用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法有效
申请号: | 201780096871.X | 申请日: | 2017-12-01 |
公开(公告)号: | CN111344667B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 安东尼奥·巴巴拉斯;陈熠;亚尼·科科宁;亚历山大·斯皮里达基斯 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F12/02 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 颜晶 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 一个 虚拟内存 子页内 编译 执行 代码 系统 方法 | ||
1.一种用于在至少一个虚拟内存页的至少一个虚拟内存子页内编译在运行时执行代码的装置(402),所述装置,其特征在于,包括:
编译程序(412A),所述编译程序(412A)可由处理器(406)执行,所述编译程序(412A)用于接收用于编译的预编译代码,其中,所述预编译代码的大小,在将所述预编译代码编译和加载到内存时,是至少一个虚拟内存子页的大小,其中所述至少一个虚拟内存子页对应于多个映射至虚拟内存页的多个物理内存块中的一个,每个物理内存块的大小是虚拟内存子页的所述大小;如果所述处理器(406)包括分页机制,虚拟内存为所述分页机制从物理内存和数据存储设备中的至少一个创建的;如果所述处理器(406)不包括所述分页机制,所述虚拟内存子页是物理内存块,所述虚拟内存页是连续物理内存块的集合;
将所述预编译代码划分为多个块,从而所述多个块的每个块,在编译为多个可执行二进制块中的相应的可执行二进制块时,小于或等于所述至少一个虚拟内存子页的一个虚拟内存子页的所述大小,所述一个虚拟内存子页的大小对应于一个物理内存块的所述大小;
将所述多个块编译为所述多个可执行二进制块;以及
将所述多个可执行二进制块链接(412B)到程序中,并且包括指定所述多个可执行二进制块用于:根据所述至少一个虚拟内存页的虚拟内存子页与分配的多个物理内存块的集群间的映射,通过将所述多个可执行二进制块加载到物理内存块中,由管理程序软件将所述程序加载到分配的至少一个虚拟内存页中,其中所述物理内存块的每个的所述大小对应于虚拟内存子页的所述大小。
2.根据权利要求1所述的装置(402),其特征在于,所述编译程序(412A)还用于:将所述预编译代码的.text段(702)的函数划分为多个子函数,所述预编译代码段在编译为可执行代码时,大于一个虚拟内存子页的所述大小,所述多个子函数在编译为可执行的代码时,每个所述子函数的大小小于或等于一个虚拟内存子页的所述大小,其中所述.text的分割函数的所述可执行二进制块由管理程序软件(412C)放置于虚拟内存页的虚拟内存子页的集群(710)内,所述虚拟内存页的所述虚拟内存子页映射于物理内存块的相应集群,所述物理内存块中的每个的大小对应于虚拟内存子页大小。
3.根据权利要求1所述的装置(402),其特征在于,所述编译程序(412A)还用于安排多个函数以在编译时在一个虚拟内存子页内完全适配,其中每个所述函数的大小在编译时小于一个虚拟内存子页的所述大小。
4.根据前述权利要求任一项所述的装置(402),其特征在于,所述预编译代码包括在编译时大于一个虚拟内存子页的大小的数据存储结构,并且其中所述编译程序(412A)还用于将所述数据存储结构划分为多个子数据存储结构(804),每个所述子数据存储结构的大小在编译时小于一个虚拟内存子页(808)的所述大小。
5.根据权利要求4所述的装置(402),其特征在于,所述编译程序(412A)还用于:创建用于访问每个子数据存储结构(804)的每个元件的去引用数据结构(802),其中所述去引用数据结构(802),根据在运行期间存储所述数据结构的虚拟内存页(806)的虚拟内存子页(808)的所述大小,以及物理内存块的集群,添加偏移,其中所述物理内存块的每个的大小对应于分配给与所述数据存储结构相关联的应用程序的虚拟内存子页大小。
6.根据权利要求1、2、3、5任一项所述的装置(402),所述编译程序(412A)还用于通过在分块中递增程序栈以访问和管理程序栈,每个所述分块的大小小于或等于一个虚拟内存子页的大小。
7.根据权利要求6所述的装置(402),其特征在于,所述编译程序(412A)还用于添加新的程序栈帧,所述新的程序栈通过根据在运行期间存储所述程序栈的所述虚拟内存页的所述虚拟内存子页的所述大小,以及分配给与数据存储结构相关联的应用程序的物理内存块的集群,添加偏移以更新指向每个分块的程序栈指针。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780096871.X/1.html,转载请声明来源钻瓜专利网。