0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一级页表虚拟地址转换为物理地址示例

冬至配饺子 来源:芯片验证工程师 作者:验证哥布林 2022-07-28 17:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文我们展示一个只有一级页表,虚拟地址转换为物理地址的示例。

其中VA为32比特(共4GB地址空间),每个页大小为1MB,所以一共4096个页表项。

每个页表项指向的都是1MB页表大小的页表项,其中会给出物理地址的高位比特([31:20])。

pYYBAGLiXVmAcUVcAABLaWj_Gzo390.png

上图中的页表基地址Translation Table Base Address(TTBA)是由软件指定的。当MMU执行硬件页表转换时,需要根据页表的基地址和VA[31:20] index获取VA-PA映射关系,以页表粒度完成VA-PA的转换,例如1MB粒度,那么

VA[19:0]=PA[19:0]

上图中页表的基地址为0x12300000,每个页表项的大小为4Byte,VA为0x00100000,高12比特(0x001)作为页表的索引index。所以这个VA-PA需要使用到的页表项存储地址为

Base addr + 0x001 * 4 bytes = 0x12300004

poYBAGLiXWuAYM7NAAB-H96BrOM739.png

最后,根据拿到的VA-PA映射关系就可以拿到PA了,具体的页表格式根据不同的实现而异。

pYYBAGLiXX2AKKS_AACO19FcqOI653.png

上图是个示例的32比特页表格式,根据低2比特确定这个页表项的类型。

2`b00:invalid 页表,上报异常,由软件处理。

2`b10:指向的是物理地址。

2`b01:指向的是下一级页表的基地址。

假设低2比特为2’b10,那么这个页表项中的内容就是实际指向的物理地址。页表项中除了指定了物理地址,还包含了页的内存属性(访问权限、cache属性、buffer属性等等)。

简单来说就是指定了访问物理地址空间所需的全部信息。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    13

    文章

    4889

    浏览量

    90287
  • Cache
    +关注

    关注

    0

    文章

    130

    浏览量

    29790
  • 内存交换
    +关注

    关注

    0

    文章

    2

    浏览量

    6486
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    块RAM存储器中的地址冲突场景

    深入研究各种写模式及其对地址冲突的影响。通过实际示例,我们将演示发生这些冲突的场景,并提供仿真截图来说明这些问题的实际表现。虽然本文主要介绍简单双端口 RAM,但如果设计师想要了解有关真双端口 RAM 的更多信息,可参阅 UG1485/AM007。
    的头像 发表于 04-24 09:59 2959次阅读
    块RAM存储器中的<b class='flag-5'>地址</b>冲突场景

    科普|什么是MAC地址、MAC码、OUI码、蓝牙串号

    (EthernetAddress)或物理地址(PhysicalAddress),它是个用来确认网上设备位置的地址。在OSI模型中,第三层网络层负责IP地址,第二层数据链接
    的头像 发表于 04-16 11:07 173次阅读
    科普|什么是MAC<b class='flag-5'>地址</b>、MAC码、OUI码、蓝牙串号

    线性技术LTC4316:I²C/SMBus地址转换器的卓越之选

    到同总线上的难题。线性技术的LTC4316地址转换器就是为解决这难题而生,它能让设计变得更加灵活高效。今天我们就来深入探讨下LTC43
    的头像 发表于 02-10 15:00 242次阅读

    Linux内核大块内存申请:从场景到落地全解析

    网卡、硬盘等外设的 DMA 控制器,要求内存物理地址连续(无法识别虚拟地址映射),且需次性分配大尺寸缓冲区(如 1GB 网络帧缓存)。
    的头像 发表于 02-09 16:41 793次阅读
    Linux内核大块内存申请:从场景到落地全解析

    【「Linux 设备驱动开发(第 2 版)」阅读体验】充分发挥硬件潜力

    结构定义参见include/linux/mm_types.h 地址转换和MMU MMU不仅可以将虚拟地址转换为物理地址,还可以保护内存免受未
    发表于 02-04 22:30

    RK平台Linux IOMMU开发:从原理到实战

    在瑞芯微(RK)芯片的 Linux 开发中,IOMMU(输入输出内存管理单元)是个关键部件 —— 它能实现设备虚拟地址(IOVA)与物理地址转换,还能控制读写权限、处理缺页 / 总线异常,广泛用于
    的头像 发表于 02-04 16:24 2791次阅读
    RK平台Linux IOMMU开发:从原理到实战

    【「Linux 设备驱动开发(第 2 版)」阅读体验】+读深入理解Linux内核内存分配

    虚拟地址范围,这里书中又引出了VMA概念,即“连续的虚拟地址范围”称为内存区域或虚拟内存区域。MMU不仅可以虚拟地址转换为
    发表于 01-16 20:05

    FLASH中的代码是如何得到运行的呢

    指令的地址。正常情况下自动加“4”,遇到分支跳转的时候,由跳转指令设置值。那么指针是什么?指针是个变量的地址,在含有操作系统(比如Linux、Windows)即硬件层面含有内存管理单元(MMU)的情况下,指针是
    发表于 12-04 08:06

    网络通讯的结构及地址

    ():主机字节序 → 网络字节序(32位,用于IP地址)。 ntohs():网络字节序 → 主机字节序(16位)。 ntohl():网络字节序 → 主机字节序(32位)。 示例:将端口号8080转换为网络字节
    发表于 11-17 07:59

    请问e203定义的地址空间是虚拟地址还是物理地址

    蜂鸟e203实现的是物理地址,硬件端与软件端的地址分配相同,从而确定软件开发过程中能操作底层寄存器。 硬件端:在总线分发模块sirv_icb1to16_bus定义好各个端口寄存器的地址区间, 软件端
    发表于 11-11 06:20

    关于系统链接脚本的介绍

    Flash里面,但上电后上载至ITCM中进行执行(flash模式) 三、关于物理地址虚拟地址 物理地址是该程序要被存储的存储器地址(调试器下载程序时会遵从从此
    发表于 10-30 08:26

    从零开始学IP地址

    IP地址种网络编码,用来唯标识网络中的设备,以确保主机间正常通信。IP地址由32位二进制(32-bit)组成。
    的头像 发表于 07-08 09:29 2184次阅读
    从零开始学IP<b class='flag-5'>地址</b>

    芯知识|WT2003H语音芯片音频地址详解:线/UART模式差异及静音地址实践

    语音功能的关键前提。本文将清晰解析这核心机制:、音频播放地址核心规则线串口、两线串口(单字节/双字节模式):起始地址:0x00(十进制
    的头像 发表于 06-19 09:21 954次阅读
    芯知识|WT2003H语音芯片音频<b class='flag-5'>地址</b>详解:<b class='flag-5'>一</b>线/UART模式差异及静音<b class='flag-5'>地址</b>实践

    TECS OpenStack资源池虚拟机网络二层地址无法互通的问题处理

    某运营商TECS OpenStack使用主机overlay SDN方案组网,运维人员在创建虚拟机测试虚拟机网络状态时发现问题:在其中台主机上创建两台同网段虚拟机,
    的头像 发表于 06-12 09:28 1029次阅读
    TECS OpenStack资源池<b class='flag-5'>虚拟</b>机网络二层<b class='flag-5'>地址</b>无法互通的问题处理

    季丰推出SRAM错误地址定位黑科技

    近期受晶圆厂委托, 季丰在执行完SRAM芯片在中子辐射下SER测试后, 通过对SRAM芯片的深入研究,对测试失效数据的分析,将逻辑失效地址成功转换为物理坐标地址,最终在图像上显示失效位
    的头像 发表于 06-03 10:08 1128次阅读
    季丰推出SRAM错误<b class='flag-5'>地址</b>定位黑科技