[发明专利]应用程序可重定位加载的方法及地址重定位装置有效
申请号: | 200710080255.3 | 申请日: | 2007-02-15 |
公开(公告)号: | CN101246427A | 公开(公告)日: | 2008-08-20 |
发明(设计)人: | 陈立勤 | 申请(专利权)人: | 凌阳科技股份有限公司;北京北阳电子技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F12/08 |
代理公司: | 北京德琦知识产权代理有限公司 | 代理人: | 王一斌;王琦 |
地址: | 台湾省新竹科*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 定位 加载 方法 地址 装置 | ||
1、一种应用程序可重定位加载的方法,其特征在于,该方法包括:
将操作系统的内存起始地址和代码偏移保存到暂存式存储器一中;
调用应用程序,查询该应用程序的代码偏移及应用长度;
根据内存分配情况为该应用程序分配长度大于或等于所述应用长度的空闲内存;
为该应用程序创建进程控制块,保存所述空闲内存的起始地址、代码偏移及应用长度;
将该应用程序代码复制到所述空闲内存;
在进程切换的触发条件下,将进程控制块中保存的应用程序内存起始地址和代码偏移设置到暂存式存储器二中;
在核心态切换到用户态执行应用程序时,将保存在暂存式存储器二中的内容设置到应用寄存器组中;将应用程序的虚拟地址与应用程序内存起始地址相加,减去应用程序的代码偏移得到应用程序的内存物理地址;
在用户态切换到核心态执行操作系统指令时,将保存在暂存式存储器一中的内容设置到应用寄存器组中;将操作系统的虚拟地址与操作系统的内存起始地址相加,减去操作系统的代码偏移得到操作系统的内存物理地址。
2、如权利要求1所述的方法,其特征在于,所述得到应用程序的内存物理地址之后,该方法进一步包括:
判断所述物理地址是否在根据所述空闲内存的起始地址、代码偏移及应用长度得到的应用程序运行的地址范围,如果在则继续执行指令;否则执行越界中断处理。
3、一种地址重定位装置,其特征在于,该装置包括中央处理单元CPU核、地址加法器、应用基址寄存器和代码偏移寄存器,
所述CPU核,用于将虚拟地址输出到地址加法器;
所述应用基址寄存器,用于保存应用基址,所述应用基址为根据内存的分配情况为应用程序分配的空闲内存的起始地址;将所述应用基址发送并保持到与所述地址加法器相连的总线上;
所述代码偏移寄存器,用于保存代码偏移;将所述代码偏移发送并保持到与所述地址加法器相连的总线上;
所述地址加法器,用于将接收到的CPU核发送的虚拟地址与所述应用基址寄存器发送的应用基址相加,再减去所述代码偏移寄存器发送的代码偏移,得到内存的物理地址;
该装置进一步包括暂存式存储器一和暂存式存储器二,
所述暂存式存储器一,用于在系统初始化的时候,保存操作系统的应用基址与代码偏移;当由用户态向核心态切换时,在CPU核发送的触发信号的控制下,将保存的操作系统应用基址与代码偏移分别发送到所述应用基址寄存器和代码偏移寄存器;
所述暂存式存储器二,用于在进程切换的时候,保存应用程序的进程控制块中的应用基址与代码偏移;当由核心态切换到用户态的时候,在CPU核发送的触发信号的控制下,将保存的应用程序应用基址与代码偏移分别发送到所述应用基址寄存器和代码偏移寄存器;
所述应用基址寄存器,进一步用于接收并保存所述暂存式存储器一发送的操作系统应用基址;或接收并保存暂存式存储器二发送的应用程序应用基址;
所述代码偏移寄存器,进一步用于接收并保存所述暂存式存储器一发送的操作系统的代码偏移;或接收并保存暂存式存储器二发送的应用程序的代码偏移;
所述CPU核,进一步用于向暂存式存储器一和暂存式存储器二发送触发信号。
4、如权利要求3所述的装置,其特征在于,该装置进一步包括应用长度寄存器,用于保存应用程序的应用长度;将该应用长度发送到CPU核;
所述应用基址寄存器,进一步用于将保存的应用程序的应用基址发送到CPU核;
所述代码偏移寄存器,进一步用于将保存的应用程序的代码偏移发送到CPU核;
所述地址加法器,进一步用于将得到的应用程序的物理地址发送到CPU核;
所述CPU核,进一步用于根据接收到的应用基址、代码偏移和应用长度,得到应用程序运行的地址范围;判断所述接收到的物理地址是否在所述应用程序运行的地址范围之内,如果是,继续执行指令;否则,执行越界中断处理。
5、如权利要求3所述的装置,其特征在于,所述应用基址寄存器与所述代码偏移寄存器为一个寄存器,用于保存应用基址与代码偏移之差;将该应用基址与代码偏移之差发送并保持到与所述地址加法器相连的总线上;
所述地址加法器,进一步用于接收所述寄存器发送的应用基址与代码偏移之差,将该应用基址与代码偏移之差与CPU核发送的虚拟地址相加,得到内存物理地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于凌阳科技股份有限公司;北京北阳电子技术有限公司,未经凌阳科技股份有限公司;北京北阳电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710080255.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:音频信号系统
- 下一篇:比伐卢定冻干粉针剂及其制备方法