4

我的解释是,在 TLB 未命中时,PMH 遍历页表并将填充加载到加载缓冲区中;如果它遇到需要设置的访问位或脏位,它会传达一个异常代码,该代码将标记加载退出(假设它还将加载需要帮助的虚拟地址放置在 MSROM 例程可访问的位置)。

当它退休时触发异常,导致管道被刷新,并且特定的 MSROM 特殊 uop 在分配阶段表现出来,这将重新执行整个步行(不知道为什么 PMH 不能自己执行填充写入,但是这个是关于会发生什么的普遍信念)。这看起来确实很奇怪,因为这意味着必须有一个 uop 指示存储到一个物理地址,如果 PMH 执行填充存储,就不必有这样的 uop。如果遇到无效或受保护的位,特殊的 MSROM uop 问题将不得不跳转到页面错误异常例程。如果不需要设置脏/访问位,则将由 PMH 传达页面错误异常代码。

该论文建议继续加载,L1d 缓存控制器只是返回——而不是一个虚拟值或 0 以及取消加载的异常代码——行填充缓冲区的内容可能仍包含由其他逻辑填充的内容核心(然后可用于暂时修改缓存以进行缓存定时攻击)。

这只是英特尔的一个愚蠢错误吗?前所未有的副作用?

4

0 回答 0