Efficient Persist Barriers for Multicores
Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, Stratis Viglas
MICRO-48
Efficient Persist Barriers for Multicores Arpit Joshi, Vijay - - PowerPoint PPT Presentation
MICRO-48 Efficient Persist Barriers for Multicores Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, Stratis Viglas Summary Efficient persist barrier Used to implement persistency models Persistency = when stores become durable
Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, Stratis Viglas
MICRO-48
December 9, 2015 MICRO-48
(Consistency = when stores become visible)
2
December 9, 2015 MICRO-48
Access Latency Access Granularity
3
December 9, 2015 MICRO-48
Cache DRAM Secondary Storage
Access Latency Access Granularity
3
December 9, 2015 MICRO-48
Cache DRAM Secondary Storage NVRAM
Access Latency Access Granularity
3
3D Xpoint STT-MRAM PCM
December 9, 2015 MICRO-48
Cache DRAM Secondary Storage NVRAM
Access Latency Access Granularity Fast, fine grained persistence.
3
3D Xpoint STT-MRAM PCM
December 9, 2015 MICRO-48
Advantages:
Unify memory and storage Access to persistent data through processor load/store interface
Challenge:
Maintaining consistency of data structures in memory
4
December 9, 2015 MICRO-48
Core Cache DRAM Secondary Storage
Software Controlled
5
December 9, 2015 MICRO-48
Core Cache NVRAM Secondary Storage
Hardware Controlled
Core Cache DRAM Secondary Storage
Software Controlled
5
December 9, 2015 MICRO-48
Node Node 1
HEAD Cache
Pseudo-code
Node Node 1
HEAD NVRAM
6
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1
HEAD NVRAM
6
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1 Node 2
HEAD NVRAM
6
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1 Node 2
HEAD NVRAM
6
December 9, 2015 MICRO-48
Cache
Pseudo-code
Node Node 1 Node 2
HEAD NVRAM
6
December 9, 2015 MICRO-48
Node Node 1
HEAD Cache
Pseudo-code
Node Node 1
HEAD NVRAM
7
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1
HEAD NVRAM
7
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1 Node 2
HEAD NVRAM
7
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1 Node 2
HEAD NVRAM
7
December 9, 2015 MICRO-48
Node Node 1 Node 2
HEAD Cache
Pseudo-code
Node Node 1 Node 2
HEAD NVRAM
7
December 9, 2015 MICRO-48
Pseudo-code
8
December 9, 2015 MICRO-48
Pseudo-code
8
December 9, 2015 MICRO-48
Pseudo-code
Divide program execution into epochs through programmer inserted persist barriers = Epoch Persistence
8
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
December 9, 2015 MICRO-48
St a St b St c St a Persist Barrier St d St e St d Persist Barrier St p St q St d …
* Pelley et. al., “Memory Persistency”, in ISCA-2014. 9
Epoch 3
b c a a a c d e
Epoch 2
d e p
Visibility Persistence
b
Epoch 1
d q d
Persist operations happen in the critical path of execution.
December 9, 2015 MICRO-48
10
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
December 9, 2015 MICRO-48
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
11
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
December 9, 2015 MICRO-48
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
11
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
December 9, 2015 MICRO-48
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
11
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
December 9, 2015 MICRO-48
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
11
Cache Line Eviction
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
December 9, 2015 MICRO-48
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
11
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
December 9, 2015 MICRO-48
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
11
* Pelley et. al., “Memory Persistency”, in ISCA-2014. * Condit et. al., “Better I/O through byte-addressable, persistent memory”, in SOSP-2009.
Conflicts bring persist operations back in the critical path.
December 9, 2015 MICRO-48
12
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
December 9, 2015 MICRO-48
12
d − Conflicting request
a b c e d
Epoch 2
a b a c e
Persistence Visibility
Epoch 1
p q d
Epoch 3
d
December 9, 2015 MICRO-48
13
December 9, 2015 MICRO-48
13
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
Proactive Flush
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
Proactive Flush
December 9, 2015 MICRO-48
e a b c e d
Epoch 2
a b d
Persistence Visibility
Epoch 1 Epoch 3
a c p q d
d
14
Proactive Flush Reduces the probability of encountering conflicts.
December 9, 2015 MICRO-48
Thread
Epoch Epoch Epoch
Persistence Visibility Visibility
RY RX W
Z
W
B
W
E
W
F
E B A F
W
A
RP W
E
RQ
E Z
T0 Thread T1
RB
00
E10 E11 E
15
December 9, 2015 MICRO-48
Thread
Epoch Epoch Epoch
Persistence Visibility Visibility
RY RX W
Z
W
B
W
E
W
F
E B A F
W
A
RP W
E
RQ
E Z
T0 Thread T1
RB
00
E10 E11 E
15
December 9, 2015 MICRO-48
Thread
Epoch Epoch Epoch
Persistence Visibility Visibility
RY RX W
Z
W
B
W
E
W
F
E B A F
W
A
RP W
E
RQ
E Z
T0 Thread T1
RB
00
E10 E11 E
15
December 9, 2015 MICRO-48
Thread
Epoch Epoch Epoch
Persistence Visibility Visibility
RY RX W
Z
W
B
W
E
W
F
E B A F
W
A
RP W
E
RQ
E Z
T0 Thread T1
RB
00
E10 E11 E
15
December 9, 2015 MICRO-48
Thread
Epoch Epoch Epoch
Persistence Visibility Visibility
RY RX W
Z
W
B
W
E
W
F
E B A F
W
A
RP W
E
RQ
E Z
T0 Thread T1
RB
00
E10 E11 E
15
December 9, 2015 MICRO-48
16
December 9, 2015 MICRO-48
16
December 9, 2015 MICRO-48
Visibility
Epoch Epoch
Persistence Visibility Thread
RY RX W
Z
W
B
W
E
W
F
E B F
W
A
RP
Z
T1
RQ W
E
T0 Thread
A E
RB
Epoch
00
E10
11
E E
17
IDT Table
Source Dependent
December 9, 2015 MICRO-48
Visibility
Epoch Epoch
Persistence Visibility Thread
RY RX W
Z
W
B
W
E
W
F
E B F
W
A
RP
Z
T1
RQ W
E
T0 Thread
A E
RB
Epoch
00
E10
11
E E
17
IDT Table
Source Dependent
December 9, 2015 MICRO-48
Visibility
Epoch Epoch
Persistence Visibility Thread
RY RX W
Z
W
B
W
E
W
F
E B F
W
A
RP
Z
T1
RQ W
E
T0 Thread
A E
RB
Epoch
00
E10
11
E E
17
IDT Table
Source Dependent
IDT Table
Source Dependent
Epoch E00 Epoch E11
December 9, 2015 MICRO-48
Visibility
Epoch Epoch
Persistence Visibility Thread
RY RX W
Z
W
B
W
E
W
F
E B F
W
A
RP
Z
T1
RQ W
E
T0 Thread
A E
RB
Epoch
00
E10
11
E E
17
IDT Table
Source Dependent
IDT Table
Source Dependent
Epoch E00 Epoch E11
December 9, 2015 MICRO-48
Visibility
Epoch Epoch
Persistence Visibility Thread
RY RX W
Z
W
B
W
E
W
F
E B F
W
A
RP
Z
T1
RQ W
E
T0 Thread
A E
RB
Epoch
00
E10
11
E E
17
IDT Table
Source Dependent
IDT Table
Source Dependent
Epoch E00 Epoch E11
December 9, 2015 MICRO-48
Visibility
Epoch Epoch
Persistence Visibility Thread
RY RX W
Z
W
B
W
E
W
F
E B F
W
A
RP
Z
T1
RQ W
E
T0 Thread
A E
RB
Epoch
00
E10
11
E E
17
IDT Table
Source Dependent
Reduces the latency of conflicting requests.
IDT Table
Source Dependent
Epoch E00 Epoch E11
December 9, 2015 MICRO-48
doing sequential consistency in bulk mode*
LB Lazy barrier LB+IDT Lazy barrier with inter-thread dependence tracking (IDT) LB+PF Lazy barrier with proactive flush (PF) LB++ Lazy barrier with both IDT and PF
Persist Barrier Designs
18 * Ceze et. al., “BulkSC: Bulk enforcement of sequential consistency”, in ISCA-2007.
December 9, 2015 MICRO-48
simulation mode
controllers
in the paper.
19
December 9, 2015 MICRO-48
20
Higher is Better
December 9, 2015 MICRO-48
20
Higher is Better 3%
December 9, 2015 MICRO-48
20
Higher is Better 15%
December 9, 2015 MICRO-48
20
Higher is Better 22%
December 9, 2015 MICRO-48
21
Lower is Better
December 9, 2015 MICRO-48
21
15% Lower is Better
December 9, 2015 MICRO-48
21
20% Lower is Better
December 9, 2015 MICRO-48
conflicts
models, namely BEP and BSP efficiently
22
Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, Stratis Viglas
MICRO-48