CPC G06F 21/54 (2013.01) [G06F 21/53 (2013.01); G06F 21/554 (2013.01); G06F 21/556 (2013.01)] | 22 Claims |
1. A method of mitigating side channel attacks (SCAB) that exploit speculative store-to-load forwarding in a processor, the method comprising:
executing one or more store instructions, each of which has a store data address;
beginning execution of a load instruction, which has a load data address, before the one or more store instructions commit;
checking whether a record of the load instruction exists that predicts whether store data is available from an uncommitted store instruction for forwarding to the load instruction;
performing a partial or full comparison between the load instruction's virtual or physical data address and the virtual or physical data addresses of the one or more store instructions;
when (a) said record exists, (b) the comparison finds a data address match between the load instruction and one of the one or more store instructions, and (c) said one store instruction is a most recent store instruction, older than the load instruction, that has a matching data address, forwarding the store data of said one store instruction to the load instruction;
when no said record exists, refraining from forwarding and sourcing the load data from a cache, even when the comparison finds said data address match.
|