【发布时间】:2018-06-14 04:09:12
【问题描述】:
简短的问题: 我读过一篇关于幽灵易受攻击的article。
它说只有高端 ARM 处理器受到影响,而不是低端处理器。由于低端 ARM CPU 不支持 SIMD 指令(也就是 ARM 上的 NEON 扩展),我觉得 SIMD 是个问题。我不是很深入那个话题,但我找到了paper for speculative instructions on SIMD.
我只是想知道我是对的还是走错了路。
【问题讨论】:
简短的问题: 我读过一篇关于幽灵易受攻击的article。
它说只有高端 ARM 处理器受到影响,而不是低端处理器。由于低端 ARM CPU 不支持 SIMD 指令(也就是 ARM 上的 NEON 扩展),我觉得 SIMD 是个问题。我不是很深入那个话题,但我找到了paper for speculative instructions on SIMD.
我只是想知道我是对的还是走错了路。
【问题讨论】:
不,在那些 ARM CPU 上重要的“高端”功能是乱序执行,分支预测 + 推测执行。
带有 NEON 的有序 CPU(如 Cortex A-53)不在受影响的 CPU 列表中,因为 Spectre 依赖于推测执行。
Spectre 启动分支预测器,因此特权代码中的间接分支被错误地预测到某个地方,从而在检测到错误预测之前导致微架构状态发生与数据相关的变化。
在 Meltdown 中,您自己在非特权代码中运行指令;英特尔 CPU 在应该发生错误的加载后继续推测执行,使用 TLB 条目作为仅内核页面。直到负载尝试退出时才会发生故障(您甚至可以通过在故障加载+使用该数据之前运行单独的慢速指令依赖链来延迟,因为指令按顺序退出)。
有关 Meltdown 工作原理的更多微架构细节,请参阅Why are AMD processors not/less vulnerable to Meltdown? (and Spectre)?
【讨论】: