【ARM Cache 与 MMU 系列文章 7.3 – ARMv8/v9 MMU 块描述符与页表描述符】


请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】
及【嵌入式开发学习必备专栏】


上篇文章:【ARM Cache 系列文章 7.2 – ARMv8/v9 MMU 页表配置详细介绍 03 】

文章目录

  • MMU 块描述符与页描述符
    • Block Descriptor
      • Block descriptor formats
      • Block Entry 介绍
      • Block Entry 的设定
      • Block Entry 的特点
      • Block Entry 使用场景
    • Page Descriptor
      • Page Descriptor 格式
      • Block descriptors 和 Page descriptors 属性
      • Block descriptors 和 Page descriptors 使用场景

在这里插入图片描述

MMU 块描述符与页描述符

在ARMv8/v9架构中,内存管理单元(MMU)使用描述符(Descriptors)来定义内存区域的属性。这些描述符被组织成表格,通常称为转换表(Translation Table)。转换表项(Translation Table Entry,TTE)可以是块描述符(Block Descriptor)或页描述符(Page Descriptor),它们定义了虚拟地址到物理地址的映射及其相关属性。

Block Descriptor

块描述符用于定义较大的内存区域的映射。在不同的转换级别(Level)中,块的大小可以不同。例如,在第一级转换(L1)中,ARMv8/v9 允许1GB的块大小,在第二级转换(L2)中,允许2MB大小(取决于具体的配置和实现)。
块描述符不仅仅定义了虚拟地址到物理地址的映射,还定义了访问权限(如读/写权限),是否可以执行,缓存策略(如是否可缓存,缓存类型),以及是否需要地址转换(Non-Secure, Secure)等属性。

Block descriptor formats

下图展示了52-bit输出地址和48-bit输出地址各种颗粒度的blcok descriptor 的格式:
在这里插入图片描述

通常我们只使用48-bit 4K的格式。

Block Entry 介绍

“Block Entry” 是指在页表中用来描述一块连续物理内存区域映射的条目。ARMv8/v9 架构支持多级页表结构,这些页表结构用来将虚拟地址空间(VA)映射到物理地址空间(PA)。页表项(PTE)可以是页表描述符,指向另一个页表的地址,或者是块描述符,直接映射到一个物理内存块。

Block Entry 的设定

如何设定一个页表项(PTE)是块描述符还是页描述符见文章 【ARM Cache 系列文章 7.1 – ARMv8/v9 MMU 页表配置详细介绍 02 】

Block Entry 的特点

  1. 连续内存映射:Block Entry 映射了一段连续的物理内存区域到虚拟内存中。这可以提高内存访问的效率,因为它减少了页表的层级和相关的内存访问代价。
  2. 大小可变:在 ARMv8/v9 架构中,Block Entry 可以表示不同大小的内存块。这取决于页表的层级和配置。例如,在一些配置中,第一级页表(L1)的 Block Entry 可能表示 1GB 的物理内存,而第二级(L2)或更低级别的 Block Entry 可能表示更小的内存块,例如 2MB。
  3. 灵活性和效率:使用 Block Entry 可以在保持足够页表粒度的同时减少页表的大小和深度,这提高了内存映射的灵活性和效率。特别是对于大量使用连续物理内存区域的应用场景(如大型数据库或多媒体处理),这种方法非常有利。

Block Entry 使用场景

  • 大型内存映射:对于需要映射大块连续物理内存的场景,使用 Block Entry 比传统的页映射更有效率,因为它减少了页表遍历的开销。
  • 性能敏感的应用:对于对内存访问性能有高要求的应用,例如高性能计算(HPC)或游戏,使用 Block Entry 可以优化内存访问速度。
  • 系统启动和初始化:在系统启动和初始化阶段,操作系统可能使用 Block Entry 来设置初始的内存映射,确保快速访问关键内存区域。

Page Descriptor

页描述符用于定义较小内存区域的映射,通常是4KB大小的页面。页描述符在第三级转换(L3)中使用,它提供了更细粒度的内存管理能力。与块描述符类似,页描述符也定义了虚拟地址到物理地址的映射及相关的内存属性,如访问权限、执行权限、缓存策略等。

Page Descriptor 格式

下图展示了各种格式的页描述符的格式:
在这里插入图片描述

Block descriptors 和 Page descriptors 属性

下图展示了stage1 translation Block descriptors 和 Page descriptors 属性域:
在这里插入图片描述
见文章:【ARM Cache 系列文章 7 – ARMv8/v9 MMU 页表配置 01 】

下图展示了stage2 translation Block descriptors 和 Page descriptors 属性域:
在这里插入图片描述
bit[63]: 对于stage 1 translations没有使用,对于 stage 2 translations 该 bit 留给 SMMU 使用(后面文章会介绍SMMU);
bits[62:59]:对于stage 1 translations没有使用,对于 stage 2 translations Bits[62:60] 留给 SMMU 使用,Bit[59] 没有使用;
TODO

Block descriptors 和 Page descriptors 使用场景

  • 块描述符主要用于映射较大的、属性统一的内存区域。使用块描述符可以减少转换表的大小和复杂度,提高地址转换的效率。
  • 页描述符则用于映射需要细粒度控制的小内存区域。例如,操作系统内核通常需要对特定内存区域(如设备映射内存、内核代码和数据等)进行精确的权限和属性控制。

在设计操作系统或底层驱动时,合理利用块描述符和页描述符,可以有效地控制内存访问权限,提高系统的安全性和效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux驱动应用编程(四)IIC(获取BMP180温度/压力数据)

本文目录 一、基础1. 查看开发板手册,获取可用IIC总线2. 挂载从机,查看从机地址。3. 查看BMP180手册,使用命令读/写某寄存器值。4. 查看BMP180手册通信流程。 二、IIC常用API1. iic数据包/报2. ioctl函数 三、数据包如何被处理四、代码编写流…

transformers 阅读:BERT 模型

前言 想深入理解 BERT 模型&#xff0c;在阅读 transformers 库同时记录一下。 笔者小白&#xff0c;错误的地方请不吝指出。 Embedding 为了使 BERT 能处理大量下游任务&#xff0c;它的输入可以明确表示单一句子或句子对&#xff0c;例如<问题&#xff0c;答案>。 …

基本算法-枚举、模拟、递推(上)

目录 递归实现指数型枚举 题目描述 运行代码 代码思路 递归实现组合型枚举 题目描述 运行代码 代码思路 递归实现排列型枚举 题目描述 运行代码 代码思路 递归实现指数型枚举 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include<iostream> …

数据结构篇其六-串

数据结构—串 前置说明 由于学习Java面向对象语言走火入魔&#xff0c;试图在C语言中模拟实现面向对象设计。里面加入了大量的函数指针配合结构体来模拟类中的成员方法 故此篇&#xff0c;亦可称: 面向对象的C语言程序设计 用C语言实现串这种数据结构&#xff0c;并将它应用到…

运动会信息管理系统(Springboot+MySQL)

本课题旨在实现对运动会信息的全面管理&#xff0c;提供用户友好的界面和高效的操作体验。系统的基础功能包括运动员报名比赛、比赛成绩查询、资讯留言等。为了确保系统的高扩展性和稳定性&#xff0c;选用主流的开发技术&#xff0c;实现规范的项目结构和高效的性能。 技术选型…

算法—字符串操作

394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string longestCommonPrefix(vector<string>& strs) { string retstrs[0];//***1***记得先要初始化ret&#xff0c;作为第一个比较值for(int i0;i<strs.size();i){retfoundcom…

Zookeeper 详解:分布式协调服务的核心概念与实践

Zookeeper 详解&#xff1a;分布式协调服务的核心概念与实践 Apache Zookeeper 是一个分布式协调服务&#xff0c;广泛用于分布式应用程序的配置管理、服务发现、集群管理等。它提供了简单的分布式锁服务和命名服务&#xff0c;使开发者能够更加方便地构建高可靠性、高可用性的…

在 Windows 资源管理器中打开 FTP 站点终极解决方法 ftp打开方式更改为资源管理器

日常工作中&#xff0c;经常会用到FTP&#xff0c;一般情况下&#xff0c;FTP站点在IE中&#xff08;尤其是IE7以后版本&#xff09;打开&#xff0c;默认都不是以文件夹视图方式打开的&#xff0c;这时IE也会给你提示“若要在 Windows 资源管理器中查看此 FTP 站点&#xff0c…

Vue Router——hash模式和 history模式

在 Vue.js 中&#xff0c;Vue Router 是官方提供的路由管理器&#xff0c;它允许你以单页面应用&#xff08;SPA&#xff09;的方式构建你的Vue应用。Vue Router 支持两种路由模式&#xff1a;hash 模式和 history 模式。这两种模式的主要区别在于它们如何与浏览器的历史记录&a…

鸿蒙? 车载?Flutter? React Native? 为什么我劝你三思,说点不一样的

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 引言 当今信息技术领域日新月异&#xff0c;各种新技术和新平台层出不穷。鸿蒙&#xff08;HarmonyOS&#xff09;、Flutter、以及车载应用开发…

使用 Scapy 库编写 ICMP 不可达攻击脚本

一、介绍 ICMP不可达攻击是一种利用ICMP&#xff08;Internet Control Message Protocol&#xff09;不可达消息来干扰或中断目标系统的网络通信的攻击类型。通过发送伪造的ICMP不可达消息&#xff0c;攻击者可以诱使目标系统认为某些网络路径或主机不可达&#xff0c;从而导致…

前端开发高频面试题

好的&#xff0c;以下是对您提出的问题的详细回答&#xff1a; 说说vue动态权限绑定渲染列表&#xff08;权限列表渲染&#xff09; Vue中动态权限绑定渲染列表通常涉及以下步骤&#xff1a; 首先&#xff0c;通过API请求从服务器获取当前用户的权限数据。在Vue组件中&#xff…

《数据库原理与应用》

计算题 设有关系模式R(ABCDEF),F={ A→BC,CD→E,B→DA }1)求R的所有候选码。2)R最高属于第几范式 AE,BE 三个关系如下:教学管理系统包括下面3个表:Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno) Courses (Cno, Cname, Period, Credit) SC (…

二叉树及其在C语言中的实现A

一、引言 二叉树是数据结构中一种非常基础且重要的树形结构&#xff0c;它的每个节点最多有两个子节点&#xff0c;通常被称为左子节点和右子节点。二叉树在计算机科学中有着广泛的应用&#xff0c;如搜索、排序、存储数据等。本文将详细介绍二叉树的基本概念、特性以及在C语言…

Linux: ubi rootfs 故障案例 (1)

文章目录 1. 前言2. ubi rootfs 故障现场3. 故障分析与解决4. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. ubi rootfs 故障现场 问题故障内核日志如下&#xff1a; Starting ker…

elasticsearch安装与使用(2)-基于term匹配的简单搜索引擎搭建

把一篇pdf论文解析后&#xff0c;放入es数据库中&#xff0c;建立倒排索引表&#xff0c;并实现简单搜索。 1、pdf论文解析(英文) 安装pdf解析包 pip install pdfminer.sixdef extract_text_from_pdf(filename, page_numbersNone, min_line_length1):从pdf文件中提取文字:pa…

btstack协议栈实战篇--GAP Link Key Management

btstack协议栈---总目录-CSDN博客 目录 1.GAP 链接密钥逻辑 2.蓝牙逻辑 3.主应用程序设置 4.log信息 展示了如何遍历存储在 NVS 中的经典链接密钥&#xff0c;链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换&#xff0c;例如在桌面系统上&#xff0c;则每个控制器都需…

App UI 风格,引领时尚

App UI 风格&#xff0c;引领时尚

R语言探索与分析18-基于时间序列的汇率预测

一、研究背景与意义 汇率是指两个国家之间的货币兑换比率&#xff0c;而且在国家与国家的经济交流有着举足轻重的作用。随着经济全球化的不断深入&#xff0c;在整个全球经济体中&#xff0c;汇率还是一个评估国家与国家之间的经济状况和发展水平的一个风向标。汇率的变动会对…

【前端】响应式布局笔记——媒体查询

一、媒体查询 为不同尺寸的屏幕设定不同的css样式&#xff08;常用于移动端&#xff09;。 案例1 <style>.content{width: 400px;height: 400px;border: 1px solid;}media screen and (min-device-width:200px) and (min-device-width:300px) {.content{background: r…