data level parallelism / exceptions 1
1
data level parallelism / exceptions 1 1 last time (1) PRIME+PROBE - - PowerPoint PPT Presentation
data level parallelism / exceptions 1 1 last time (1) PRIME+PROBE attacker fjll cache set(s) with attacker data let victim run, use cache set(s) cache coherency solution: invalidate or update all other caches on write glossed over details:
1
2
3
5
6
7
A[3] B[3] A[4] B[4] A[5] B[5] A[6] B[6] A[7] B[7] A[8] B[8] A[9] B[9] A[10] B[10] A[11] B[11] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] A[16] B[16] A[17] B[17]
A[8] + B[8] A[9] + B[9] A[10] + B[10] A[11] + B[11] A[12] + B[12] A[13] + B[13] A[14] + B[14] A[15] + B[15]
8
A[3] B[3] A[4] B[4] A[5] B[5] A[6] B[6] A[7] B[7] A[8] B[8] A[9] B[9] A[10] B[10] A[11] B[11] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] A[16] B[16] A[17] B[17]
A[8] + B[8] A[9] + B[9] A[10] + B[10] A[11] + B[11] A[12] + B[12] A[13] + B[13] A[14] + B[14] A[15] + B[15]
8
A[3] B[3] A[4] B[4] A[5] B[5] A[6] B[6] A[7] B[7] A[8] B[8] A[9] B[9] A[10] B[10] A[11] B[11] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] A[16] B[16] A[17] B[17]
A[8] + B[8] A[9] + B[9] A[10] + B[10] A[11] + B[11] A[12] + B[12] A[13] + B[13] A[14] + B[14] A[15] + B[15]
8
A[3] B[3] A[4] B[4] A[5] B[5] A[6] B[6] A[7] B[7] A[8] B[8] A[9] B[9] A[10] B[10] A[11] B[11] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] A[16] B[16] A[17] B[17]
A[8] + B[8] A[9] + B[9] A[10] + B[10] A[11] + B[11] A[12] + B[12] A[13] + B[13] A[14] + B[14] A[15] + B[15]
8
9
9
9
9
10
10
A[4] B[4] A[5] B[5] A[6] B[6] A[7] B[7] A[8] B[8] A[9] B[9] A[10] B[10] A[11] B[11] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] A[16] B[16] A[17] B[17]
A[8] + B[8] A[9] + B[9] A[10] + B[10] A[11] + B[11] A[12] + B[12] A[13] + B[13] A[14] + B[14] A[15] + B[15]
11
A[4] B[4] A[5] B[5] A[6] B[6] A[7] B[7] A[8] B[8] A[9] B[9] A[10] B[10] A[11] B[11] A[12] B[12] A[13] B[13] A[14] B[14] A[15] B[15] A[16] B[16] A[17] B[17]
A[8] + B[8] A[9] + B[9] A[10] + B[10] A[11] + B[11] A[12] + B[12] A[13] + B[13] A[14] + B[14] A[15] + B[15]
11
12
13
14
15
16
16
16
16
16
17
18
19
20
21
22
23
24
200000 400000 600000 800000 1000000 sample # 101 102 103 104 105 106 107 108 time (ns)
25
200000 400000 600000 800000 1000000 sample # 101 102 103 104 105 106 107 108 time (ns)
26
loop.exe ssh.exe firefox.exe loop.exe ssh.exe
27
loop.exe ssh.exe firefox.exe loop.exe ssh.exe
27
loop.exe ssh.exe firefox.exe loop.exe ssh.exe
27
loop.exe ssh.exe firefox.exe loop.exe ssh.exe
28
loop.exe ssh.exe firefox.exe loop.exe ssh.exe
28
29
30
31
32
33
34
34
35
36
37
38
39
40
41
42
43
43
44
45
46
read_input.exe read_input.exe
47
48
49
50
handle_divide_by_zero: movq %rax, save_rax movq %rbx, save_rbx ... handle_timer_interrupt: movq %rax, save_rax movq %rbx, save_rbx ...
51
52
53
53
53
53
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
18
0x1248 RDX / T34
19
0x1249 RAX / T38
20
0x1254 R8 / T05
21
0x1260 R8 / T06
…
… …
… …
RAX T21 RCX T2 RBX T48 RDX T37 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
18
0x1248 RDX / T34
19
0x1249 RAX / T38
20
0x1254 R8 / T05
21
0x1260 R8 / T06
…
… …
… …
RAX T21 RCX T2 RBX T48 RDX T37 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
18
0x1248 RDX / T34
19
0x1249 RAX / T38
0x1254 R8 / T05
21
0x1260 R8 / T06
…
… …
… …
RAX T21 RCX T2 RBX T48 RDX T37 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
19
0x1249 RAX / T38
0x1254 R8 / T05
21
0x1260 R8 / T06
…
… …
… …
RAX T21 RCX T2 T32 RBX T48 RDX T37 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
19
0x1249 RAX / T38
0x1254 R8 / T05
21
0x1260 R8 / T06
…
… …
… …
RAX T21 RCX T2 T32 RBX T48 RDX T37 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
19
0x1249 RAX / T38
0x1254 R8 / T05
0x1260 R8 / T06
…
… …
… …
RAX T21 RCX T2 T32 RBX T48 RDX T37 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
0x1249 RAX / T38
0x1254 R8 / T05
0x1260 R8 / T06
…
… …
… …
RAX T21 T38 RCX T2 T32 RBX T48 RDX T37 T34 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
0x1249 RAX / T38
0x1254 R8 / T05
0x1260 R8 / T06
…
… …
… …
RAX T21 T38 RCX T2 T32 RBX T48 RDX T37 T34 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
0x1249 RAX / T38
0x1254 R8 / T05
0x1260 R8 / T06
…
… …
… …
RAX T21 T38 RCX T2 T32 RBX T48 RDX T37 T34 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
0x1249 RAX / T38
0x1254 R8 / T05
0x1260 R8 / T06
…
… …
… …
RAX T21 T38 RCX T2 T32 RBX T48 RDX T37 T34 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
Fetch Decode Rename
RAX T15 RCX T17 RBX T13 RBX T07 … …
instr
done? except?
…
… …
… … 17
0x1244 RCX / T32
0x1248 RDX / T34
0x1249 RAX / T38
0x1254 R8 / T05
0x1260 R8 / T06
…
… …
… …
RAX T21 T38 RCX T2 T32 RBX T48 RDX T37 T34 … …
RAX T38 RCX T32 RBX T48 RBX T34 … …
RAX 0x12343 RCX 0x234543 RBX 0x56782 RDX 0xF83A4 … …
54
55
loop.exe ssh.exe firefox.exe loop.exe ssh.exe
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
87
88
88
89
90
91
92