物理地址和逻辑地址(虚拟地址)

1. 物理地址
物理地址是加载到内存地址寄存器中的地址,是指内存中各物理存储单元的地址从统一的基地址进行的顺序编址。又称绝对地址,它是数据在内存单元的真正地址。
在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥(Nortbridge chip)映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。

2. 逻辑地址
逻辑地址是CPU所生成的地址。是指用户程序经编译后,每个目标模块以0为基地址进行的顺序编址。逻辑地址又称相对地址 。
逻辑地址是内部和编程使用的、并不唯一。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。

3.为什么要引入逻辑地址?
逻辑地址是为了程序结构化而做的设计,分层设计,直接访问硬件地址的模块,对下是使用物理地址,对上封装成逻辑地址,是为了程序移植方便。

4. 为什么要实现逻辑地址到物理地址的转换?
逻辑地址到物理地址的转换,即地址重定位的过程。
假如一块内存换出,再换入时难以装入相同的内存空间,为了方便确定所要访问内容的具体地址,我们需要进行动态重定位来确定运行时的地址。而这一切是为了提高内存的利用率,满足多任务的需要。
处理机在执行时必须使用物理地址才能从主存中存取信息,而应用程序使用的地址是逻辑地址,改地址并非处理机能正确识别的地址,故需要转换。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值