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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM