Slide 4
Slide 4 text
Spectre Attacks (variant-1)
False learning of branch predictor
4
Instruction Cache
...
load r3, [array2 + r2]
shl r2, 12
load r2, [array1 + r1]
jge END
cmp_r1, array1_size
slow op
Commit
# r1 = 0 (user_input)
slow op
cmp r1, array1_size
jge END
load r2, [array1 + r1]
shl r2, 12
load r3, [array2 + r2]
END:
Reorder Buffer
Decode
Rename
Branch
Predictoin
ALU Load
shl r2, 12
cmp r1, array1_size
slow operation
load r3, [array2 + r2]
load r2, [array1 + r1]
Schedule
Cache
Done
Pred
Corr
array1 + 0
array2 + r2
Don't jump
with jde