zoukankan      html  css  js  c++  java
  • ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Memory order

    1.前言

    2.基本概念

    • Observer

    可以发起对memory read/write访问的都是observer;

    • Observability

    是一种观察能力,通过read可以感知到别的observer的write,通过感知到别的observer的read而不能write的这种能力;

    • observed write

    观察到了某个observer的write动作;

    • locally observed write

    是限定在一个shareability domain内部,或者指定的一个observer的集合都观察到了某个observer的write动作;

    • observed read

    当某个observer无法通过write操作来影响另一个observer的read操作的时候,我们就认为该observer已经感知到了另一个observer的read操作;

    • globally observed read

    就是一个shareability domain内所有的observers都观察到了一个observer的read操作;

    • completion

    内存访问指令完成

    3. 访存指令完成的条件

    内存访问指令完成,需满足如下条件:

    (1)该内存访问操作被特定的shareability domain内的所有的observer globally observed

    (2)和该内存访问指令相关的translation table walks(也会引发内存访问操作)必须执行完毕,即:

    a)这个translation table walks而引起的内存访问操作被该shareability domain内的所有的observer globally observed

    b)TLB已经完成更新

    4. 内存屏障

    按照严格程度从低到高排列:DMB < DSB < ISB

    • DMB:数据存储器隔离

    DMB 指令保证仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的存储器访问操作;

    • DSB:数据同步隔离。

    比 DMB 严格,仅当所有在它前面的存储器访问操作都执行完毕后,才执行在它后面的指令(亦即任何指令都要等待存储器访问操作——译者注);

    •  ISB:指令同步隔离

    最严格,它会清洗流水线,以保证所有它前面的指令都执行完毕之后,才执行它后面的指令.

    5. 参考文档

    [1] DDI0487A_k_armv8_arm_iss10775.pdf

    [2] ARMv8之Atomicity

  • 相关阅读:
    用Python写春联:抒写最真诚的祝福和最美好的祈愿
    python 注册表操作
    python 多参数
    arcgis tin版本转换使用复制tin
    python基础知识
    模型免费学习地址https://space.bilibili.com/378493128?spm_id_from=333.788
    在Python中用turtle函数画同心圆
    solr系统query检索词特殊字符的处理
    C#winform抓取百度,Google搜索关键词结果
    理解Solr缓存及如何设置缓存大小
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6844069.html
Copyright © 2011-2022 走看看