[发明专利]构建运行环境的方法和装置有效
申请号: | 201610202997.8 | 申请日: | 2016-03-31 |
公开(公告)号: | CN107291423B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 钟万勇;张宝祺 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F12/1027 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 陶敏;刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 运行 环境 方法 装置 | ||
1.一种构建运行环境的方法,其特征在于,包括:
对缓存cache进行加锁,将加锁后的cache作为模拟内存;
根据所述模拟内存的物理地址获取对应的虚拟地址;
根据所述虚拟地址在所述模拟内存中设置堆指针和栈指针;
根据可执行与可链接格式ELF文件结构在所述模拟内存中设置用于所述堆指针寻址的各个段,从而构建出C语言运行环境;在所述C语言环境中采用C语言编写内存配置。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述模拟内存中设置堆空间和栈空间;
将所述栈空间对应的虚拟地址更改为需要经过旁路转换缓冲TLB映射的虚拟地址;
根据所述栈空间的大小计算出映射到所述栈空间所需的TLB表项的数量,并根据所述栈空间对应的需要经过TLB映射的虚拟地址填写所述TLB表项;
根据所述栈空间对应的需要经过TLB映射的虚拟地址重设所述栈指针。
3.根据权利要求2所述的方法,其特征在于,所述栈空间对应的虚拟地址高于所述堆空间对应的虚拟地址。
4.根据权利要求3所述的方法,其特征在于,所述根据所述虚拟地址在所述模拟内存中设置堆指针和栈指针,包括:
设置所述堆指针指向所述模拟内存的最顶部对应的虚拟地址;
设置所述栈指针指向所述模拟内存的最底部对应的虚拟地址。
5.根据权利要求2所述的方法,其特征在于,所述堆空间与所述栈空间的比例为3:1。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述模拟内存中设置的各个段至少包括:代码段、数据段和块数据段。
7.一种构建运行环境的装置,其特征在于,包括:
锁缓存cache模块,用于对cache加锁,将加锁后的cache作为模拟内存;
获取模块,用于根据所述模拟内存的物理地址获取对应的虚拟地址;
设置模块,用于根据所述虚拟地址在所述模拟内存中设置堆指针和栈指针;
所述设置模块,还用于根据可执行与可链接格式ELF文件结构在所述模拟内存中设置用于所述堆指针寻址的各个段,从而构建出C语言运行环境;在所述C语言环境中采用C语言编写内存配置。
8.根据权利要求7所述的装置,其特征在于,还包括:更改模块和旁路转换缓冲TLB处理模块;
所述设置模块,还用于在所述模拟内存中设置堆空间和栈空间;
所述更改模块,用于将所述栈空间对应的虚拟地址更改为需要经过TLB映射的虚拟地址;
所述TLB处理模块,用于根据所述栈空间的大小计算出映射到所述栈空间所需的TLB表项的数量,并根据所述栈空间对应的需要经过TLB映射的虚拟地址填写所述TLB表项;
所述设置模块,还用于根据所述栈空间对应的需要经过TLB映射的虚拟地址重设所述栈指针。
9.根据权利要求8所述的装置,其特征在于,所述栈空间对应的虚拟地址高于所述堆空间对应的虚拟地址。
10.根据权利要求9所述的装置,其特征在于,在根据所述虚拟地址在所述模拟内存中设置堆指针和栈指针方面,所述设置模块具体用于:
设置所述堆指针指向所述模拟内存的最顶部对应的虚拟地址;
设置所述栈指针指向所述模拟内存的最底部对应的虚拟地址。
11.根据权利要求8所述的装置,其特征在于,所述堆空间与所述栈空间的比例为3:1。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述模拟内存中设置的各个段至少包括:代码段、数据段和块数据段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610202997.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:智能移动终端及其分屏显示方法
- 下一篇:驱动电流调节系统及方法