首页 > 知识点讲解
       动态地址映射
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 存储管理 > 地址重定位(逻辑地址、物理地址、地址映射等) > 地址映射 > 
相关知识点:2个      
        动态地址映射的基本思路是:当用户程序被装入内存时,不对指令代码做任何的修改。而是在程序的运行过程中,当它需要访问内存单元的时候,再进行地址转换。具体实现时,为了提高效率,该转换工作一般是由硬件的地址映射机制来完成。通常的做法是设置一个基地址寄存器,或者叫重定位寄存器。当一个任务被调度运行时,就把它所在分区的起始地址装入到这个寄存器中。然后,在程序的运行过程中,当需要访问某个内存单元时,硬件就会自动地将其中的逻辑地址加上基地址寄存器当中的内容,从而得到实际的物理地址,并按照这个物理地址去访问。
        下图是动态地址映射的一个例子。
        
        动态地址映射
        如上图所示,当程序在装入内存之前,它里面所用的都是逻辑地址。当它被装入内存后,这些指令代码没有发生任何的变化,里面使用的还是逻辑地址。显然,对于这样的程序,如果直接运行的话,肯定会出错。但现在新增加了一个基地址寄存器。有了它以后,指令的执行方式就发生了变化。例如,在执行第三条指令add R2,R1,3时,由于这条指令只涉及到两个CPU寄存器,不需要去访问内存单元,所以它的执行方式和原来是完全一样的,没有任何变化。而对于其他指令,如str 5[200],它需要去访问逻辑地址200。而该地址所对应的变量x,已经存放在物理地址1200的位置。但CPU会自动完成这个转换。当操作系统调度了这个任务去运行时,它所在分区的起始地址,也就是1000,就会被装入到基地址寄存器当中。然后,当执行到str 5[200]这一条指令时,硬件装置就会自动地把其中的相对地址200取出来,把它和基地址寄存器做一个加法,从而得到实际的物理地址,也就是1200,然后再根据这个新的地址来访问内存单元。这样的话,就使得程序能够正确地运行。这个基地址寄存器是位于MMU的内部,整个地址映射过程是自动进行的。从理论上来说,每访问一次内存都要进行一次地址映射。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有