关于ARM DSB内存屏障说明
DSB - 数据同步屏障是一种特殊的内存屏障。在此指令完成之前,在此指令执行后,没有按程序顺序排列的指令。
大家都很清楚,接下来:
本指令在下列情况下完成: 在此指令完成之前,所有显式内存都将进行访问。 在本指令完成之前,所有Cache、分支预测器和TLB 维护操作。
等等,缓存、分支预测器和TLB 维护到底意味着什么?这意味着脸红吗?这是否意味着DSB指令本身可以触发这样的冲洗?还有什么被认为是维护?
发布于 2018-10-17 19:26:38
我认为这是一个英语语法歧义的问题。我想他们的意思是
我不认为他们试图将分支预测器操作描述为“维护”,而“维护”一词只应该与该句中的"TLB“一起使用。
(一些分支预测器操作可以被描述为维护,如果ARM增加了分支预测器刷新操作来缓解频谱,就像英特尔最近对其x86 CPU的微码更新一样,增加了一个新的特定模型寄存器。(https://access.redhat.com/articles/3311301)。但我不认为他们的判决是这么说的。)
发布于 2018-10-18 10:52:51
消除歧义的关键是认识到TLB maintenance是一个比TLB operation更常见的术语。(根据简单的搜索,约为3倍)。
在单独使用TLB operation的情况下,它似乎是指操作过程或特定的标识活动。当指令被描述为与TLB交互时,这些指令将在TLB maintenance operations标题下描述,并且这个组形成一个相当大的集合。这组指令通常不会仅仅被描述为TLB operations,因此您建议的解析需要在文档中拆分一个公共术语(如果不是显式标准的话)。
https://stackoverflow.com/questions/52862017
复制相似问题