繁体   English   中英

缓存,分支预测器和TLB维护操作

[英]Cache, Branch predictor and TLB maintenance operations

关于ARM DSB内存屏障指令

DSB-

数据同步屏障是一种特殊的内存屏障。 该指令执行后,直到程序执行完毕,才按程序顺序执行任何指令。

很好理解,下一步:

该指令在以下情况下完成:

在此指令完成之前,所有显式的内存访问。

在完成此指令之前,所有高速缓存,分支预测器和TLB 维护操作。

等等,缓存,分支预测变量和TLB 维护到底是什么意思? 这是否意味着冲洗? 这是否意味着DSB指令本身可以触发此类刷新? 还有什么被视为维护?

我认为这是英语语法歧义的问题。 我认为他们的意思是

  • 缓存操作(加载/存储的所有副作用,或在MMU操作之后进行显式刷新/无效)
  • 分支预测器操作(例如,全局启用/禁用分支预测)
  • TLB维护操作(例如,更改页表条目后使TLB条目无效)

我不认为他们试图将分支预测器操作描述为“维护”,并且“维护”一词仅应与该句中的“ TLB”一起使用。

(如果ARM为Spectre缓解措施添加了分支预测器刷新操作,则某些分支预测器操作可以描述为维护,这是英特尔为其x86 CPU以及最近的微代码更新添加了新的特定于模型的寄存器的方式。( https ://access.redhat.com/articles/3311301 )。但是我不认为这是他们在这里要说的话。)

消除歧义的关键是要认识到, TLB maintenance是比TLB operation明显更普遍的术语。 (根据简单的搜索,系数约为3)。

在单独使用TLB operation情况下,它似乎是指操作过程或特定的已识别活动。 当说明被描述为与TLB交互时,这些说明将在TLB maintenance operations的标题下进行描述,并且该组形成了一个相当大的集合。 通常,这组指令将不仅仅描述为TLB operations ,因此建议的解析需要拆分文档中的一个通用(如果不是明确标准的)术语。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM