The Technology
Speculative execution is a technique used by modern processors with out of order architecture to speed up performances, where the processor may execute some tasks ahead of time before it is known whether these tasks are actually needed. When the tasks are really required the speed up is achieved since the work is already completed, and the delay that would have been incurred by doing the task after it is known that it is needed, is prevented. However, in cases the tasks are not needed after all, most changes made by the work that was done is reverted and the results are ignored.
Although the CPU discards the architectural results of the unneeded tasks, it may leave microarchitectural traces such as cache state behind. The side effects of such traces can be measured and used by attackers in side-channel attacks, such as Meltdown and Spectre. These attacks can abuse the speculative execution optimization to reveal secrets by cache footprint monitoring, or by breaking down privilege isolation and allowing a faulting access to privileged data to influence microarchitectural state before the access is aborted.
The traditional ways to immune the system against such attacks are very costly and are of static nature, so cannot be changed if new type of attack is found.
The technology suggested, is based on a system and a method for protecting a speculative execution processor from side channel attacks without compromising performances.
Advantages
The unique microarchitecture can help both performance and security
Easy to implement
Affect only selective execution paths
Can be controlled by microcode and so dynamically be modified
Applications and Opportunities
Applicable of any current and future processor