上一期中我们介绍了ARMv8-A架构中的异常级别,从这一期开始的接下来四期我们将介绍ARMv8-A的存储模型。第一期我们将介绍存储模型中地址转换和访存控制的一般概念,第二期我们将介绍缓存相关的基本概念,最后两期我们将介绍ARMv8-A架构中的地址转换、访存控制和缓存机制。本期中我们介绍处理器中地址转换机制和访问控制的一般概念。

一、处理器的地址转换和访问控制

处理器运行程序时,需要从物理存储器中取得所需的指令和数据。对于处理器中的地址转换,输入数据为应用程序空间中的地址(指令地址或数据地址),输出为数据总线上的地址。前者称为逻辑地址,后者称为物理地址。处理器需要将逻辑地址转换为物理地址。

处理器所能访问的物理存储空间分配的方式主要有连续分配和离散分配两种方式。连续分配指运行在处理器上的进程将其使用的数据和指令保存在内存中的连续区域里面,这种方式不够灵活,可能会产生大量内存碎片,整合内存碎片的开销比较大。离散分配方式将进程使用的存储空间离散地分布在内存里,常用的分配方式有段式、页式和段页式。

段式分配方式通过分段机制将程序划分为不同的程序段,如代码段、数据段等。分段机制通过将段基址与偏移量相加得到对应的物理地址,偏移量不能超过段长,否则会产生越界中断。在分段机制中,访问控制由段描述符实现。段描述符保存了段基址、段长和访问段的最低特权等级等信息,只有当前访问段描述符的进程有足够的特权等级才能访问该段的段描述符。

页式分配方式通过分页机制将逻辑地址空间划分为固定大小的页,将物理地址空间划分为固定大小的页框,页框和页的大小是一样的。分页机制将逻辑地址空间中的页离散地映射为物理地址空间中的页框,从而完成从逻辑地址到物理地址的转换。页和段的区别在于页的大小是固定的,而段的大小是可变的。很多RISC[2]处理器处理器不支持分段机制,只支持分页机制,所以我们着重介绍分页机制。

在分页机制中,逻辑地址到物理地址的转换是通过页表来实现的。页表中保存了页号到页框号的转换关系。逻辑地址被分为页号和页偏移,页号指示逻辑地址空间中的不同的页,页偏移指示页内的逻辑地址。通过页号可以找到对应的页框号,页框号指示了物理存储空间中的页框,页框号和页偏移拼接则可以得到物理地址。页表可以有多级,一个典型的二级页表如下图所示[3]:

在上图中,外部页表(也叫页目录)用于索引页表在物理存储空间中的基地址,而外部页表的基地址则存储在外部页表寄存器中。用基地址和偏移相加的方式可以对外部页表和页表进行索引。通过用外部页号作为偏移索引可以得到页表基址。在页表中通过用外部页内地址作为偏移索引可以得到逻辑页对应的物理页框号。物理页框号(b)和页内地址(d)拼接在一起可以得到物理地址。

由于页表存储于主存中且需要被经常访问,若处理器每次访问主存都要先访问主存中的页表则访存的时间开销很大,因此处理器一般为页表设计了专门的页面高速缓存,其中保存了常用的页表项。当页面高速缓存命中时,可以实现逻辑地址到物理地址的直接转换,节省了访问内存页表的开销;当页面高速缓存不命中时,仍然需要访问内存页表。

分页机制也支持访问控制。外部页表项和页表项中可以包含访问控制位,这些访问控制位可以控制进程对外部页表项和页表项的读写权限。

段页式分配方式结合了段式分配方式和页式分配方式,即在地址转换时,首先将逻辑地址用分段机制转换为线性地址,再对线性地址用分页机制找到对应的物理地址,一个典型的段页式地址转换机制如下图所示[1]:

其中逻辑地址为机器指令使用的地址,用于指定操作数或指令的位置。逻辑地址一般由段选择符和偏移量共同决定。通过段选择符可以找到段描述符[2],段描述符中包含段基址、段长和访问权限信息等段的性质。其中段基址加上偏移量的算术和就形成了线性地址。线性地址再通过分页机制找到对应的物理地址。

二、结语

本期我们介绍了处理器中地址转换和访问控制的一般概念,下一期中我们分析一下处理器的缓存机制。

参考文献

  1. 《深入分析Linux内核源代码》陈莉军编著

  2. https://baike.baidu.com/item/RISC体系结构/4679327

  3. https://www.jianshu.com/p/3558942fe14f

【华为云技术分享】处理器存储模型概述(1)相关推荐

  1. 【华为云技术分享】成熟度模型:企业规模化推广敏捷和DevOps利器

    摘要: 本文介绍了成熟度模型在软件开发行业的应用,重点阐述了成熟度模型对于敏捷和DevOps在企业中进行规模化推广的价值,探讨了成熟度模型的设计原则,并对于如何明智使用成熟度模型给出了建议. 导言 在 ...

  2. 【华为云技术分享】三大前端技术(React,Vue,Angular)探密(下)

    [华为云技术分享]三大前端技术(React,Vue,Angular)探密(上) [Angular] Angular(通常被称为 "Angular 2+"或 "Angula ...

  3. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 1

    前言 以互联网为代表的信息技术的迅猛发展对整个经济体系产生了巨大的影响.信息技术的发展一方面使知识的积累和传播更加迅速,知识爆炸性的增长:另一方面,使信息的获取变得越来越容易,信息交流的强度逐渐增加, ...

  4. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 3

    4. 微观层面 4.1 个体动机 在开源软件发展之初, 商业组织的投入很少甚至没有, 完全是靠Richard Stallman 或者 linus Torvalds 这样的个人在努力推动开源软件艰难前行 ...

  5. 【华为云技术分享】ARMv8-A存储模型概述(1)

    上两期中我们介绍了处理器存储模型的一般概念,这一期我们将介绍ARMv8-A架构中的地址转换系统. 一.VMSAv8-64地址转换系统 虚拟内存系统架构(Virtual MemorySystem Arc ...

  6. 【华为云技术分享】直播回顾丨激发数据裂变新动能,HDC.Cloud云数据库前沿技术解读

    3月24日14:00-17:00,HDC.Cloud开发者沙龙系列云数据库专场直播线上开启,此次华为云数据库通过三场直播从NoSQL数据库新技术.数据库迁移.行业解决方案等方面对云端数据库进行深度解读 ...

  7. 【华为云技术分享】云小课 | 迁移第三方云厂商数据至OBS,两种方式任你选

    如何将我在第三方云厂商对象存储上的数据迁移至华为云OBS?华为云主要提供对象存储迁移服务(Object Storage Migration Service,OMS)和云数据迁移(Cloud Data ...

  8. 【华为云技术分享】云小课 | 灵活配置权限,满足存储安全(OBS权限管理介绍上篇)

    很多朋友有这样的顾虑:将资源存储在OBS之后,我的数据足够安全吗?能够灵活配置权限吗? 比如,甲只想把存储在OBS中的资源留给自己访问:乙想把资源分享给自己的某个朋友:丙想把资源共享的权限控制在固定时 ...

  9. 【华为云技术分享】云图说 | 初识华为云存储容灾服务:为您的云上数据保驾护航

    摘要:存储容灾服务是一种为ECS.DCC.EVS和DSS等提供跨AZ容灾的服务. 存储容灾服务(Storage Disaster Recovery Service,简称SDRS)是一种为ECS.DCC ...

最新文章

  1. Xcode(7.0以上版本)真机调试
  2. bzoj2154: Crash的数字表格
  3. Devexpress报表开发(二):创建数据报表
  4. Qt / QWidget、QFrame 区别
  5. 【翻译】How-To: Using the N* Stack, part 3
  6. 3d目标检测_CVPR 2020 |基用于3D目标检测的层级图网络
  7. 系统架构设计_分布式、服务化的ERP系统架构设计
  8. 《设计模式详解》结构型模式 - 外观模式
  9. 七乐彩中奖规则表_双色球第2020118期开奖结果出炉!你中奖了吗?
  10. [LeetCode]Link List Cycle
  11. java多线程-CountDownLatch
  12. 智能云网IT架构解析
  13. Win10优化大师Windows 10 Manager v3.4.6.0 官方安装绿色版
  14. 每日一记—Android动态申请多个权限
  15. 2021Q2产品团队绩效总结--管理日记
  16. 兼容iOS10资料整理
  17. 缺一位身份证号码时识别计算
  18. Redis geo计算距离
  19. SCT2601TVBR、LMR16006XDDCR、MP2456GJ-Z参数
  20. 访问学者申请德国签证如果丢失了怎么办?

热门文章

  1. 推荐算法实现java_利用Java写开源库 覆盖70多种推荐算法
  2. Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
  3. 卡尔曼滤波原理理解(1)
  4. python画图x轴丢值_python-从pyplot绘图中擦除先前绘制的内容
  5. CentOS7.2下配置SOCKS5代理
  6. perl hash array 嵌套 push
  7. css3的cursor
  8. Asp.net MVC4 与 Web Form 并存
  9. JavaScript高级程序设计之什么是原型模式
  10. CSS中link与import差别