[英]Cache, Branch predictor and TLB maintenance operations
关于ARM DSB
内存屏障指令 :
DSB-
数据同步屏障是一种特殊的内存屏障。 该指令执行后,直到程序执行完毕,才按程序顺序执行任何指令。
很好理解,下一步:
该指令在以下情况下完成:
在此指令完成之前,所有显式的内存访问。
在完成此指令之前,所有高速缓存,分支预测器和TLB 维护操作。
等等,缓存,分支预测变量和TLB 维护到底是什么意思? 这是否意味着冲洗? 这是否意味着DSB
指令本身可以触发此类刷新? 还有什么被视为维护?
我认为这是英语语法歧义的问题。 我认为他们的意思是
我不认为他们试图将分支预测器操作描述为“维护”,并且“维护”一词仅应与该句中的“ 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.