On Oct 3,
2019, at 8:25 AM, Maciej W. Rozycki <macro at
linux-mips.org
wrote:
On Thu, 3 Oct 2019, Maciej W. Rozycki wrote:
You need
an extremely high resolution timer to detect slight
differences in
execution time of speculatively-executed threads. The VAX
11/780 certainly did
not do speculative execution, and my guess is that all VAXen
did not, either.
The NVAX and NVAX+ implementations include a branch predictor in
their
microarchitecture[1], so obviously they do execute speculatively.
For the record: in NVAX prediction does not extend beyond the
instruction
fetch unit (I-box in VAX-speak), so there's actually no
speculative
execution, but only speculative prefetch.
That's a key point. These vulnerabilities are quite complex and
details matter. They depend on speculation that goes far enough to
make data references that produce cache fills, and that those fills
persist after the speculative references have been voided.
Branch prediction is only the first step, and as you point out, that
alone is nowhere near enough. For example, if a particular design
did speculative execution but not speculative memory references on
adresses that miss in the cache, you'd still have no issue.