嵌入式系统中的“四个地址”

2023-10-27

1.物理地址

计算机在运行程序时,需要对代码指令及相关数据进行保存,而这些数据将会保存到内存(包括RAM和ROM)中。为了能够在读取数据时,可以直接找到数据的位置所在,因此,会对内存进行编号,从0开始顺序编号,直到其支持的最大存储单元。

物理地址,即机器内主存的地址,包括RAM和ROM。因此,存储器的物理地址空间是呈线性增长的。它是用二进制数来表示的,是无符号整数,书写格式为十六进制数。cpu通过“外部地址总线上的物理地址进行寻址”从而进行数据的读写,该地址就是内存储器中的实际有效地址,也叫作绝对地址。

在一台计算机中,计算机系统为了标示唯一的一个内存单元,操作系统会给每一个内存单元编上一个绝对的号,计算机系统就通过这个编号来定为每一个内存单元的物理位置,这个编号称为内存的物理地址。

2.虚拟地址

在实际使用中,应用程序不会直接对内存中的数据进行修改。此时,所有的应用程序只需要面向虚拟地址进行编写,而不用考虑实际的物理地址的使用情况。

这样做的好处:

1)不直接对内存进行读写,保证了内存的安全性。

2)方便编译器和操作系统安排程序的地址分布。

3)方便进程之间隔离。

4)虚拟内存管理最主要的作用是让每个进程有独立的地址空间(进程间的安全)。

5)应用程序崩溃, 不会影响到操作系统

3.逻辑地址

在虚拟地址中会对虚拟地址进行分区(以32位的操作系统为例):

程序在使用空间地址时,使用的是虚拟地址的空间,而在虚拟空间中,会对其进行了划分,如上图所示。

此时,程序定义一个变量,会开辟对应的空间存放数据。这个时候,是通过找到对应的“空间首地址(逻辑段) + (段内)偏移地址” 来进行数据的访问,这种访问数据的方式,就叫做偏移地址。

总结:

逻辑地址是指操作系统或应用程序面对的存储单元地址的表示形式。

分段存储管理方式把内存划分为多个逻辑段(代码段、数据段、堆栈段等),从而把不同的数隔离开。这种情况下,用 “段起始地址+段内偏移地址” 这种形式来描述数据地址就是很自然的,这就是所谓的逻辑地址。

它的描述形式是:

段号:    段号用来查找段的起始地址,它被存储在段寄存器中

偏移地址/有效地址:    存储单元的物理地址与所在段起始地址的差值

4.线性地址

线性地址,是逻辑地址到物理地址变换之间的中间层。在分段部件中逻辑地址是段中的偏移地址,然后加上基地址就是线性地址。是一个32位无符号整数,可以用来表示高达4GB的地址,也就是,高达4294967296个内存单元。

线性地址通常用十六进制数字表示,值得范围从Ox00000000到Ox11ff)程序代码会产生逻辑地址,通过逻辑地址变换就可以生成一个线性地址。如果启用了分页机制,那么线性地址可以再经过变换以产生一个物理地址。如果没有启用分页机制,那么线性地址直接就是物理地址。

看到这里,对嵌入式系统中物理地址、虚拟地址、逻辑地址、线性地址这四种地址的特点及区别有没有了解清楚呢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式系统中的“四个地址” 的相关文章

随机推荐

  • react实现拖拽排序(菜单+视频+图片等)

    DOM结构部分 拖动菜单部分 div div menuList length gt 0 menuList map item i gt div div
  • 刷题笔记-数组---求一个数组中第三大的数

    题目 求取一个数组中第三大的数 数组中至少有一个数据 eg 输入 a 1 2 3 输出 1 第三大的数为1 输入 a 1 2 输出 2 当数组中的数据少于三个时 输出最大的数据 输入 a 1 1 3 2 3 4 输出 2 解题思路 给出的一
  • 【神经网络】神经网络架构大全剖析(附原始论文地址)

    随着新的神经网络架构不时出现 很难跟踪这些架构 知道所有缩写 DCIGN BiLSTM DCGAN anyone 起初可能有点压倒性 所以我决定编写一个包含许多这些体系结构的备忘单 这些大多数是神经网络 有些是完全不同的野兽 虽然所有这些体
  • PTA程序设计类实验辅助教学平台-基础编程题--JAVA--7.4 BCD解密

    import java util Scanner public class Main public static void main String args Scanner sc new Scanner System in
  • Listener监听器与web.xml相关配置

    Listener监听器 在JavaWeb中有个叫监听器的东西 这监听器主要用来监听三大对象 HttpServletRequest HttpSession ServletContext 每个对象对应着各自的监听器接口 监听器可以监听这三个对象
  • ORA-28547:连接服务器失败,可能是Oracle Net管理错误

    网上有很多很杂的文章 我找到一个比较可以解决这个问题的方案 分享出来 真的这个Oracle的安装 plsql的安装 虚拟机的链接 数据库的连接这两天真的能把我搞的生不能 求死不能 差点就放弃当程序员了 不过还好的是 我的一直足够坚定 其实昨
  • 【开发工具】Mac电脑彻底删除Idea(卸载)

    将应用移至废纸篓进行删除 删除缓存和日志文件 打开 终端命令行 iterm 然后使用命令行执行如下命令 上面的 xxx 对应你的电脑当前使用用户名 记得更换上面的日期版本 IntelliJIdea202x x 旧版本 cd Users xx
  • 计算机网络原理_第7章 应用层 IP地址与域名

    IP 地址由32位 即4字节 二进制组成 为书写方便起见 常将每个字节作为一段并且以十进制表示 每段间用 分隔 一 IP地址由网络标识和主机标识两部分组成 常用的IP地址有A B C三类 每类均规定了网络标识和主机标识在 32 位中所占的位
  • android app闪退原因总结分析

    存储不够 缓存过多 剩余空间不够 针对内存 后台任务太多 导致运存不够 针对运存 App和SDK版本不兼容 sdk版本明显低于app 高版本app调用低版本SDK没有的API 不同版本间API 对象或类加载器等差异导致调用异常 程序运行时异
  • IDEA+maven搭建web框架

    一 安装maven 配置环境变量 M2 HOME D maven apache maven 3 3 3 path M2 HOME bin 修改本地仓库地址 进入到apache maven 3 3 3 conf 修改settings xml文
  • GitHub热榜登顶:开源版GPT-4代码解释器,可安装任意Python库,本地终端运行

    省时查报告 专业 及时 全面的行研报告库 省时查方案 专业 及时 全面的营销策划方案库 免费下载 2023年8月份全网热门报告合集 ChatGPT提词示例 让你的ChatGPT聪明100倍 超百页干货资料 AI应用的难点 痛点与未来 202
  • 高并发与高可用知识总结

    文章目录 高并发与高可用知识总结 高并发与高可用知识总结 究竟啥才是互联网架构 高并发 一 什么是高并发 高并发 High Concurrency 是互联网分布式系统架构设计中必须考虑的因素之一 它通常是指 通过设计保证系统能够同时并行处理
  • 【接口声明与接口实现需文件分离】

    接口声明与接口实现需文件分离 定义一个ADT时 类型定义放在头文件中 类型接口的实现 一定要放在同名cpp文件中 否则就会报错 实现一定不能放在头文件中
  • ubuntu安装ROS melodic(最新、超详细图文教程)

    Ubuntu 安装 ROS ROS安装 准备 方法一 推荐 使用小鱼ROS一键安装 方法二 使用官方教程 配置rosdep 方法一 推荐 使用小鱼ROS一键安装 方法二 通过修改文件 ROS简介 ROS 是一个适用于机器人的开源的元操作系统
  • QT5.12编译MQTT

    使用mingw81 64进行编译安装 超级便捷的方法 几步即可完成 源码传送门 https github com emqx qmqtt git 打开下图编译器控制台 打开后如下图所示 步骤一 进入下载的mqtt源码目录 qtmqtt 5 1
  • C语言单链表的建立

    1 头文件 include
  • codeforce刷题 1

    1 Sequence Pair Weight 题目大意 给定一个长度为 n 的数组 a 规定 i lt j 且 ai aj 为一个数对 求数组 a 的 所有连续子序列中有多少个这样的数对 输出总数 解题思路 易得如果一个一个子序列去遍历的话
  • STM32 电机教程 4 - 直流有刷电机闭环电流控制

    前言 有刷电机是大家最早接触的一类电机 中学时物理课堂上介绍电动机也是以它为模型来展示的 有刷电机的主要结构就是定子 转子 电刷 通过旋转磁场获得转动力矩 从而输出动能 电刷与换向器不断接触摩擦 在转动中起到导电和换相作用 有刷电机采用机械
  • SpringBoot中一个空格引发的服务器崩塌

    SpringBoot中一个空格引发的服务器崩塌 在练习SpringBoot整合Thymeleaf的时候 由于一时不查 导致服务器崩塌 细究之下 原来是一个空格的原因 练习是这样的 打算在com action包下建一个UserAction c
  • 嵌入式系统中的“四个地址”

    1 物理地址 计算机在运行程序时 需要对代码指令及相关数据进行保存 而这些数据将会保存到内存 包括RAM和ROM 中 为了能够在读取数据时 可以直接找到数据的位置所在 因此 会对内存进行编号 从0开始顺序编号 直到其支持的最大存储单元 物理