[A-18]ARMv8/ARMv9-Memory-内存空间的属性(Attributes Properties)

ver0.1
[看前序文章有惊喜,关注“浩瀚架构师”,可以解锁全部文章]

前言

在宏伟的ARM的内存世界中VMSA中,属性这个议题算不上最亮的星,就和屏幕前的你和我一样,平凡的活在这个茫茫然的人世间。纵使“丈夫贫践应未足,今日相逢无酒钱。”,也不要灰心面对生活,因为“山重水复疑无路,柳暗花明又一村”。这个时代磨炼着每一个人,考验着每一个人的意志力,只要坚持走下去,“莫愁前路无知己,天下谁人不识君”。本文成文的早晨,发生了一些遗憾的事情,谨以此文激励一下每一个屏幕前奋斗的码农,每一个为家庭默默付出的人。内存的属性虽然平凡,但是仍然足够重要,因为它们是构成这个VMSA系统一些特征的基石,前面的文章我们也穿插讨论了一些,例如内存的类型、内存的共享属性等等,本文我们会对其他一些内存属性进行讨论。

正文

内存的属性其实不太准确,准确的说法应该是内存空间的属性。前面的文章我们已经了解到了,CPU是工作在虚拟地址空间的,它要访问物理地址空间的时候需要依赖MMU做一下翻译的工作。而整个的SOC系统也是通过内存空间组织在一起的,不管是数据的交互、还是CPU指令的发出都要依赖内存空间。内存空间基本分类就是device和Normal,它们就工作在不同的业务场景下。直观的体现就是表现出来的行为就不一样,一个外设的寄存器会被映射在设备类型空间,那么它肯定是不希望被cache的,因为它的值随时都可能被改变,但是它又没有好的机制保证和CPU看到的数据的一致性。Normal类型的数据为了能够减少访问外存的时钟周期,多数是要被缓存的,而且CPU在出厂的时候,会有完整的Cache一致性机制和替换策略保证数据的一致性。类似种种情况,结合ARM的架构,都需要对内存空间做进一步的细分,应用层的OS或者Firmware在申请内存的时候,顺便把内存的属性填充好,这样CPU工作的时候让小弟遍历这些属性就能准确的控制整个系统的行为。检查通过,就继续工作,检查失败就抛异常,启动异常处理机制进行“惩罚”。既然属性是内存空间的属性,那么首先就要对内存空间有起码的了解。

1.1 内存空间

我们前面有一篇专门的文章讨论过内存空间:[A-09]ARMv8/ARMv9-Memory-内存空间(Address Spaces and Translation Regimes),还没有看过的伙伴可以先过去看一下。我们这里带大家简单回顾一下到底啥是内存空间(如果对这一节比较熟悉,可以直接跳过)。
ARM的体系下构建了一个虚拟的内存世界:AArch64 Virtual Memory System Architecture (VMSA)。顾名思义,ARM的内存世界是一个虚拟的世界,ARM通过编译器所有在上面运行的软件都编上了一个统一的地址。软件代码在编译和执行的过程中,看到的也都是虚拟的地址。单CPU拿到一个虚拟地址后,他需要做的一件事情就是要把这个虚拟的地址VA分配一个真实的物理PA地址与之对应,这样整个VMSA架构体系就运转了起来。
随着操作系统的发展,以及在工程实践中的经验积累,人们发现计算机的世界需要等级、需要调控。不然就会产生混乱,比如系统上就一个喇叭能发声,A应用想发声,B应用也想发声,怎么办?得有更高权限的模块处理这些事务,并定下规则,于是ARM的异常模型诞生了,如图1-1所示。
1-1

图1-1 ARM异常等级

关于异常模型可以参考前序文章: [V-05] 虚拟化基础-异常模型(Exception model)(基于AArch64) 这里不展开做详细讨论了。
异常的等级越高,权限越大,其实就是控制资源的权限越高。计算机的世界在有了秩序之后玩命的卷了起来,不管是虚拟化技术、操作系统技术、还有各种各样的应用技术都在飞快的发展。伴随着欣欣向荣的景象,另外一些需求也随之产生,那就是安全。和现实的世界一样,总有一些心怀叵测的人通过各种手段窥伺别人的隐私信息,比如一个公钥、一个证书、或者一个生物(指纹)信息。安全无小事,ARM架构在迭代的过程中也引入了安全状态,也开始了对ARM世界的第二次跑马圈地。
1-2

图1-2 安全状态

“星星还是那个星星,月亮还是那个月亮”,CPU还是那个CPU,内存还是那个内存。如果这个世界一直就是这样的话,怎么能表现Non-Secure安全状态下Hypervisor的地位、怎么表现出Secure状态下Trusted OS的身份…。ARM的架构下就是靠内存世界的划分加以区别,也就是CPU还是那个CPU,但是内存却不是那个内存了,因为ARM把虚拟内存的空间做了细分。

The architecture defines all of the following translation regimes:
• Non-secure EL1&0 translation regime.
• Secure EL1&0 translation regime.
• Realm EL1&0 translation regime.
• Non-secure EL2&0 translation regime.
• Secure EL2&a

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】--环境变量

大家好呀,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦 本文由:残念ing原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各…

vue3中使用 HTML5 Canvas 做一个案例总结笔记

这篇文章记录了在vue3中如何使用HTML5 Canvas做一个时钟的案例, 当然主要是HTML5 Canvas, 如何需要了解更多关于vue的知识前面也已经写过好几篇了,辛苦翻一下的... 开始写代码之前我们先来了解一下关于HTML5 Canvas 的基础知识 目录 一 .基础知识 1.了解canvas 1.1 基本用法…

基于微信小程序的开放实验室预约管理系统的设计与实现,LW+源码+讲解

摘 要 使用旧方法对开放实验室预约管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在开放实验室预约管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题…

【汇编语言】更灵活的定位内存地址的方法(二)—— 从 [bx+idata] 到 [bx+si+idata]:让你灵活的访问内存

文章目录 前言1. [bxidata]1.1 更加灵活的访问内存1.2 示例1.3 问题一1.4 问题一的分析与求解 2. 用[bxidata]的方式进行数组的处理2.1 问题引入2.2 原来的解决方案2.3 新的解决方案2.3.1 改进后的程序2.3.2 还可以写成这样2.3.3 用C语言来描述看看 2.4 比较与总结 3. SI和DI3.…

[IP组播]IGMP配置实验

华为ensp拓补图 实验步骤 1.配置IP地址 AR1配置 # interface GigabitEthernet0/0/0ip address 192.168.1.1 255.255.255.0 # interface GigabitEthernet0/0/1ip address 12.1.1.1 255.255.255.0 # interface GigabitEthernet0/0/2ip address 13.1.1.1 255.255.255.0 #AR2…

Vue的局部使用

文章目录 什么是Vue?局部使用Vue快速入门 常用指令v-forv-bindv-if & v-showv-onv-model Vue生命周期 Axios案例 什么是Vue? Vue是一款构建用户界面的渐进式的JavaScript框架. 局部使用Vue 快速入门常用指令声明周期 快速入门 准备: 准备html页面,并引入Vue模块(…

DAHL:利用由跨越 29 个类别的 8,573 个问题组成的基准数据集,评估大型语言模型在生物医学领域长篇回答的事实准确性。

2024-11-14,由首尔国立大学创建的DAHL数据集,为评估大型语言模型(LLMs)在生物医学领域长文本生成中的幻觉问题提供了一个重要的工具,这对于提高模型的准确性和可靠性具有重要意义。 数据集地址:DAHL|生物医…

递归算法专题

题目&#xff1a; 方法一&#xff1a;不讲武德法&#xff0c;注意&#xff1a;面试不能用&#xff01;&#xff01; 代码&#xff1a; public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {//不讲伍德方法for(int x : A) C.add(x); …

验证双随机矩阵(doubly stochastic matrix) 满足C(P)=C(P^T)

验证双随机矩阵(doubly stochastic matrix) 满足C( P P P)C(P T ^T T) 双随机矩阵&#xff1a; 在数学中&#xff0c;一个双随机矩阵&#xff08;doubly stochastic matrix&#xff09;是一个满足以下条件的矩阵&#xff1a; 非负矩阵&#xff1a;矩阵中的每个元素都是非负的…

海外媒体发稿:中东地区阿拉伯邮报Arab Post新闻媒体宣发

​今天&#xff0c;我们要特别聚焦于中东地区的知名新闻媒体——阿拉伯邮报&#xff08;Arab Post&#xff09;&#xff0c;探讨其在海内外媒体宣发领域的重要性和影响力。 阿拉伯邮报作为一家备受关注的新闻媒体&#xff0c;涵盖了新闻、政治、娱乐和观点等多个领域&#xff…

Mysql-DQL语句

文章目录 DQL 语句简单查询查询表所有数据查询指定列 别名查询清除重复值查询结果参与运算 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Mysql专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月16日11点39分 DQL 语句 DQL 语句数据…

ERP软件市场展望:2025年的规模与趋势深度解析-亿发

随着数字化转型的深入&#xff0c;ERP软件市场正迎来新一轮的增长。预计到2025年&#xff0c;全球ERP软件市场规模将持续扩大&#xff0c;中国市场也将保持强劲的增长势头。 市场规模增长 根据市场研究报告&#xff0c;全球ERP软件市场在2019年已超过3,000亿美元&#xff0c;预…

推荐15个2024最新精选wordpress模板

以下是推荐的15个2024年最新精选WordPress模板&#xff0c;轻量级且SEO优化良好&#xff0c;适合需要高性能网站的用户。中文wordpress模板适合搭建企业官网使用。英文wordpress模板&#xff0c;适合B2C网站搭建&#xff0c;功能强大且兼容性好&#xff0c;是许多专业外贸网站的…

LLMs 损失函数篇

LLMs 损失函数篇 一、介绍一下 KL 散度 KL&#xff08;Kullback-Leibler&#xff09;散度衡量了两个概率分布之间的差异。公式为&#xff1a; D K L ( P ∥ Q ) ∑ P ( x ) log ⁡ P ( x ) Q ( x ) D_{KL}(P \| Q) \sum P(x) \log \frac{P(x)}{Q(x)} DKL​(P∥Q)∑P(x)logQ…

智慧社区管理系统提升物业服务效率与居民生活质量

内容概要 智慧社区管理系统正变得越来越重要&#xff0c;它为现代物业管理提供了全新的视角和方法。通过结合先进的技术&#xff0c;这套系统帮助物业公司优化其服务流程&#xff0c;使服务效率得到显著提升。想象一下&#xff0c;业主只需在手机上轻轻一点&#xff0c;就能完…

共享门店模式:创新零售的新篇章

​在消费升级和数字化转型的双重浪潮下&#xff0c;传统零售业正面临前所未有的挑战与机遇。其中&#xff0c;共享门店模式作为一种创新的商业模式&#xff0c;正逐渐成为实体店铺应对电商冲击、提升运营效率和市场竞争力的重要途径。本文将深入解析共享门店模式的内涵、优势、…

基于SpringBoot的旅游网站(程序+数据库+报告)

基于SpringBoot的旅游网站&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块&#xff0c;主要功能如下。 【前台】&#xff1a; - 首页&#xff1a;展示旅游网站的核心内容&#xff0c;包括推荐的旅游线路、最新的旅游资讯等。 - 旅游线路&am…

shell编程--永久环境变量和字符串显位

环境变量 echo $HOME 在终端输出后会显示家目录有个root变量 我们会提出个疑问为什么平时我们在终端输入sl 或者which等等命令会输出一些内容呢&#xff0c;这是因为这些命令都有对应的环境变量。 我们查看一下环境变量 在终端输入&#xff1a; echo $PATH 我们看一下输出…

element ui 搜索框中搜索关键字标红展示

示例如图 el-select上绑定remote-method属性 <el-select v-model"checkForm.type" filterable remote reserve-keyword :remote-method"remoteMethod" :loading"loading"><el-option v-for"item in options" :key"ite…

华为Mate 70临近上市:代理IP与抢购攻略

随着科技的飞速发展&#xff0c;智能手机已经成为我们日常生活中不可或缺的一部分。而在众多智能手机品牌中&#xff0c;华为一直以其卓越的技术和创新力引领着行业的发展。近日&#xff0c;华为Mate 70系列手机的发布会正式定档在11月26日&#xff0c;这一消息引发了众多科技爱…