缓存、分支预测器和 TLB 维护操作
Cache, Branch predictor and TLB maintenance operations
关于 ARM DSB
内存屏障 instruction:
DSB -
Data Synchronization Barrier acts as a special kind of memory
barrier. No instruction in program order after this instruction
executes until this instruction completes.
明白了,下一个:
This instruction completes
when:
All explicit memory accesses before this instruction complete.
All Cache, Branch predictor and TLB maintenance operations before this
instruction complete.
等等,缓存、分支预测器和TLB维护到底是什么意思?是冲水的意思吗?这是否意味着 DSB
指令本身可以触发这种刷新?还有什么被认为是维护?
我认为这是英语语法歧义的问题。我认为他们的意思是
- 缓存操作(loads/stores 的所有副作用,或在 MMU 操作后显式刷新/失效)
- 分支预测器操作(例如全局enable/disable分支预测)
- TLB 维护操作(例如,在更改页面 table 条目后使 TLB 条目无效)
我不认为他们试图将分支预测器操作描述为 "maintenance",并且单词 "maintenance" 只应该与该句子中的 "TLB" 一起使用。
(某些分支预测器操作可能被描述为维护,如果 ARM 已添加分支预测器刷新操作以缓解 Spectre,英特尔对其 x86 CPU 的方式及其最近的微代码更新添加了新模型-具体寄存器。(https://access.redhat.com/articles/3311301)。但我不认为这是他们的句子在这里想说的。)
消除歧义的关键是要认识到 TLB maintenance
是一个比 TLB operation
更常见的术语。 (根据简单搜索,乘以约 3 倍)。
单独使用TLB operation
的地方,好像是指操作的过程,或者是指具体的标识activity。在指令被描述为与 TLB 交互的地方,这些指令在 TLB maintenance operations
的标题下进行了描述,并且该组形成了一个相当大的集合。这组说明通常不会被描述为 TLB operations
,因此您提出的解析需要在文档中拆分一个常见的(如果不是明确标准的)术语。
关于 ARM DSB
内存屏障 instruction:
DSB -
Data Synchronization Barrier acts as a special kind of memory barrier. No instruction in program order after this instruction executes until this instruction completes.
明白了,下一个:
This instruction completes when:
All explicit memory accesses before this instruction complete.
All Cache, Branch predictor and TLB maintenance operations before this instruction complete.
等等,缓存、分支预测器和TLB维护到底是什么意思?是冲水的意思吗?这是否意味着 DSB
指令本身可以触发这种刷新?还有什么被认为是维护?
我认为这是英语语法歧义的问题。我认为他们的意思是
- 缓存操作(loads/stores 的所有副作用,或在 MMU 操作后显式刷新/失效)
- 分支预测器操作(例如全局enable/disable分支预测)
- TLB 维护操作(例如,在更改页面 table 条目后使 TLB 条目无效)
我不认为他们试图将分支预测器操作描述为 "maintenance",并且单词 "maintenance" 只应该与该句子中的 "TLB" 一起使用。
(某些分支预测器操作可能被描述为维护,如果 ARM 已添加分支预测器刷新操作以缓解 Spectre,英特尔对其 x86 CPU 的方式及其最近的微代码更新添加了新模型-具体寄存器。(https://access.redhat.com/articles/3311301)。但我不认为这是他们的句子在这里想说的。)
消除歧义的关键是要认识到 TLB maintenance
是一个比 TLB operation
更常见的术语。 (根据简单搜索,乘以约 3 倍)。
单独使用TLB operation
的地方,好像是指操作的过程,或者是指具体的标识activity。在指令被描述为与 TLB 交互的地方,这些指令在 TLB maintenance operations
的标题下进行了描述,并且该组形成了一个相当大的集合。这组说明通常不会被描述为 TLB operations
,因此您提出的解析需要在文档中拆分一个常见的(如果不是明确标准的)术语。