[email protected] (MitchAlsup) writes:
What this illustrates is that the fundamental flaw �Architects are
not allowed to make is that of "flying blind"--that is make a prediction
and believe that prediction until made aware of its incorrectness. Spectr� >illustrated that any "flying blind" opens up a covert channel and if one
can touch some �Architectural state while "flying blind" you can exploit
this to extract data you should have been prevented from seeing.
Apple wanted performance, high performance requires lots of predictors, >predictors mean you are effectively flying blind--and the circle of
bad �Architecture continues.
As we (in particular, including you) have worked out soon after
Spectre was revealed to the public, you can fix (not mitigate) Spectre
by not exposing speculative microarchitectural changes to other
threads or cores, and throwing them away when the speculation turns
out to be incorrect. We know that this can be done because it is just
the same thing that has been done for architectural changes since
1995. We also need to make sure that resources are not speculatively
occupied in a way that can be perceived by other threads or cores.
Neither the 1-wide not the 6-wide My 66000 �Architectures are sensitive
to these kinds of attacks, and I don't think I have lost a single Iota
of performance getting there. ...
As you note yourself: "high performance requires [...] predictors".
So if you use prediction, do you make it Spectre-proof? And if you
don't use prediction, how do you get performance?
While it's possible to get performance for throughput code (like
matrix multiply) without prediction, for other code (e.g., most
SpecInt stuff, or our LaTeX benchmark) you lose a lot of performance
if you don't have speculation.
E.g., Ultimate Speculative Load Hardening (which eliminates most, but
not all speculation) is reported as having a slowdown by a factor of
2.5 on SPECint programs (pretty little variation between them).
- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
Mitch Alsup, <
[email protected]>
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)