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

    文章

    5190

    浏览量

    91642
  • Cache
    +关注

    关注

    0

    文章

    130

    浏览量

    30121
  • 内存交换
    +关注

    关注

    0

    文章

    2

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    蓝牙MAC地址全解析:从公共地址到随机地址

    引言:BLE开发中的MAC地址类型在BLE(低功耗蓝牙)开发过程中,蓝牙MAC地址类型是个容易被开发者忽略、却直接影响设备连接成败的关键概念。很多使用安朔科技ANS-BT101M蓝牙模块的工程师在
    的头像 发表于 08-20 17:05 295次阅读
    蓝牙MAC<b class='flag-5'>地址</b>全解析:从公共<b class='flag-5'>地址</b>到随机<b class='flag-5'>地址</b>

    科普|MAC地址注册流程

    设备中,用于在以太网(Ethernet)和其他局域网(LAN)技术中标识设备的物理地址。并且在全球范围内具有唯性。因此对于有生产设备产品的需求的厂商MAC地址
    的头像 发表于 05-15 18:11 365次阅读
    科普|MAC<b class='flag-5'>地址</b>注册流程

    深入剖析LTC4317:I²C/SMBus地址转换器的卓越之选

    深入剖析LTC4317:I²C/SMBus地址转换器的卓越之选 在电子工程师的日常工作中,处理I²C和SMBus系统时,常常会遇到多个具有相同地址的从设备需要在同总线上共存的问题。而
    的头像 发表于 05-12 16:55 912次阅读

    深入解析LTC4318:I2C/SMBus地址转换器的卓越之选

    的LTC4318地址转换器,为解决这难题提供了出色的解决方案。今天,我们就来详细探讨下LTC4318的特性、工作原理以及应用场景。 文件下载: LTC4318.pdf
    的头像 发表于 05-12 16:55 655次阅读

    深入解析LTC4316:I²C/SMBus地址转换器的卓越之选

    深入解析LTC4316:I²C/SMBus地址转换器的卓越之选 在电子设计领域,I²C和SMBus总线的应用极为广泛。然而,当面临多个具有相同地址的从设备需要连接到同总线时,就会出现
    的头像 发表于 05-12 16:50 377次阅读

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

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

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

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

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

    网卡、硬盘等外设的 DMA 控制器,要求内存物理地址连续(无法识别虚拟地址映射),且需次性分配大尺寸缓冲区(如 1GB 网络帧缓存)。
    的头像 发表于 02-09 16:41 1104次阅读
    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 3905次阅读
    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