上一期中我们介绍了ARMv8-A架构中的地址转换机制和访问控制机制,这一期我们将考察ARMv8-A架构中的应用级内存模型(Application Level Memory Model)。

一、ARMv8-A架构的应用内存模型

应用级内存模型指的是从应用软件的视角来观察和操作处理器的内存行为而形成的模型。ARM v8-A 架构中的内存主要有两种类型:

  • Normal类型:对该种类型的内存可以进行常见的读写操作或只读操作,系统中大部分内存都是这种类型;

  • Device类型:对该种类型的内存进行读写可能具有连带效应(side-effects,指对一个内存位置的读写操作会影响其它内存位置)或者从该种内存中的一个位置装载的值可能随着装载的次数而变化。通常内存映射外设(指使用访问内存的方法来访问的外设)会采用这种内存类型。

Normal类型和Device类型的内存有不同的内存属性[2]:

上表中Shareability是与一致性有关的内存属性,用来指示一个内存位置对于一些处理器是否是可共享的。共享意味着需要硬件保证一个内存位置中的内容对一定范围内可访问该位置的多个处理器是一致。Shareability属性有Non-shareable、InnerShareable和Outer Shareable三个选项,其含义为:

  • Non-shareable:该内存位置一般只能被唯一处理器访问,如果还有其他处理器能访问该位置,可能需要软件用缓存一致性指令来保证缓存一致性[3];

  • Inner Shareable: 该内存位置可以被InnerShareability domain 中的所有处理器访问,并且硬件保证该位置在这些处理器间的数据一致性,InnerShareability domain中的处理器一般被同一个虚拟机监视器或操作系统控制;

  • Outer Shareable: 该内存位置可以被OuterShareability domain中的所有处理器访问,并且硬件保证该位置在这些处理器间的数据一致性,InnerShareability domain 是OuterShareability domain的一个子集,但不要求是真子集。

内存属性Cacheability表示一个内存位置是否可以被分配到缓存中,这个内存属性有Non-cacheable、Write-ThrouthCacheable和Write-BackCacheable三种选项,其含义为:

  • Non-cacheable:不使用缓存,直接更新内存;

  • Write-Throuth Cacheable:同时更新缓存和内存;

  • Write-BackCacheable:先更新缓存,替换时将修改过的块写回内存。

一般来说,靠近处理器的缓存延迟较少但容量较小、价格较高。ARMv8架构采取多层存储来平衡容量和延迟,从而提升整体性能。下图体现了一个典型的ARMv8架构处理器的多级存储系统[1]:

ARMv8架构中存储一致性的内容较为复杂,涉及指令的使用和一致性模型,因此我们专门使用两期来介绍。

二、结语

本期我们考察了ARMv8-A架构的缓存机制,下一期中我们分析一下ARMv8架构的存储一致性模型。

参考文献

  1. ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile

  2. https://blog.csdn.net/shenhuxi_yu/article/details/90617675

  3. https://www.cnblogs.com/zhengshuangxi/p/11180610.html

【华为云技术分享】ARMv8-A存储模型概述(2)相关推荐

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

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

  2. 【华为云技术分享】处理器存储模型概述(1)

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

  3. 【华为云技术分享】处理器存储模型概述(2)

    上一期中我们介绍了处理器的地址转换机制和访问控制机制,这一期我们将考察处理器中的缓存机制. 一.处理器的缓存机制 计算机中用于存储的硬件设备主要有寄存器.缓存.主存和磁盘,处理器访问它们的速度依次减小 ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 通过OKR 进行项目过程管理
  2. 手抖有救了!DeblurGAN消除运动模糊效果惊人 | 附论文+代码
  3. $0,$?,$!,$-,$*,$@,$#等的特殊用法
  4. 基于SSM实现餐饮管理系统
  5. 杭州人有福了!菜鸟配送升级新增24小时送药服务
  6. 【2018.4.14】模拟赛之四-ssl2394 剪草【dp】
  7. C ++ STL中的set :: upper_bound()函数
  8. qt 复制字符串_Qt字符串处理 QString用法总结(一)
  9. 上海事职业培训软件测试高级,《软件测试人员(Java)(4级)》人力资源和社会保障部教材办公室、中国就业培训技术指导中心上海分中心、上海市职业培训研究发展中心 编_孔网...
  10. 2821: 作诗(Poetize)
  11. 魅族16s安兔兔跑分揭晓:在优化中不断提高
  12. 使用SQL数据库在Python中执行CRUD操作
  13. android 6.0 ndk版本,[推荐]android-ndk6.0翻译(1)
  14. SpringBoot读取配置文件中的数据
  15. c语言数据域和指针域,C语言的变量域和指针
  16. MapReduce功能实现三---Top N
  17. 推荐玩游戏的计算机及型号,想买个3000左右的台式电脑,主要玩游戏,求推荐品牌还有型号。...
  18. 测试前景分析-来自《Goolgle测试之道》
  19. Service Worker 学习笔记
  20. PLC1200 模拟量采集

热门文章

  1. Less中的命名空间
  2. mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑
  3. java 按钮怎么透视_【手把手教你Eclipse插件开发】之Eclipse透视图开发
  4. java webdriver page object_Selenium2(java)页面对象模型(Page Object) 八
  5. 机器学习花朵图像分类_在PyTorch中使用转移学习进行图像分类
  6. win7 系统增加自定义分辨率_完美适配win7操作系统的平板电脑,专治软件不兼容...
  7. pythonrange函数用法_python range()函数详细用法
  8. 填词游戏java_第八届蓝桥杯国赛 Java B组 第五题 填字母游戏(博弈论)
  9. 求解两个经纬点之间的距离和角度(mm级精度)
  10. 线段树——最大数——洛谷——1198