关于ARM DSB
内存屏障instruction:
DSB-
数据同步屏障充当一种特殊的内存 屏障。该指令后无程序顺序指令 执行直到该指令完成。
好,下一步:
此说明完成 什么时候:
在此指令完成之前,所有显式内存访问。
在此之前的所有缓存,分支预测变量和TLB 维护操作 指令完成。
等等,缓存,分支预测变量和TLB 维护到底是什么意思?这是否意味着冲洗?这是否意味着DSB
指令本身可以触发此类刷新?还有什么被视为维护?
答案 0 :(得分:1)
我认为这是英语语法歧义的问题。我认为他们的意思是
我不认为他们试图将分支预测器操作描述为“维护”,并且“维护”一词仅应与该句中的“ TLB”一起使用。
(某些分支预测器操作可以描述为维护,如果ARM为Spectre缓解添加了分支预测器刷新操作,则英特尔为其x86 CPU及其最近的微代码更新添加了新的特定于模型的寄存器的方式。(https://access.redhat.com/articles/3311301)。但是我不认为这是他们在这里要说的话。)
答案 1 :(得分:1)
消除此歧义的关键是要认识到TLB maintenance
比TLB operation
更为常见。 (根据简单的搜索,系数约为3)。
在单独使用TLB operation
的地方,它似乎是指操作过程或特定的确定活动。当指令被描述为与TLB交互时,这些指令将在TLB maintenance operations
标题下进行描述,并且该组形成了一个相当大的集合。通常,这组指令将不会仅描述为TLB operations
,因此,您建议的解析需要拆分文档中的一个通用(如果不是明确标准的)术语。