2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO) 2018
DOI: 10.1109/micro.2018.00029
|View full text |Cite
|
Sign up to set email alerts
|

iDO: Compiler-Directed Failure Atomicity for Nonvolatile Memory

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
41
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
8
1

Relationship

2
7

Authors

Journals

citations
Cited by 81 publications
(41 citation statements)
references
References 45 publications
0
41
0
Order By: Relevance
“…To facilitate more general use of persistence, several groups have developed libraries and, in some cases, compiler-based systems to provide failure atomicity for programmer-delimited blocks of code. In some systems, these blocks are outermost lock-based critical sections, otherwise known as failure-atomic sections (FASEs); examples in this camp include Atlas [6], JUSTDO [24], and iDO [31]. In other systems, the atomic blocks are transactions, which may be speculatively executed in parallel with one another; examples in this camp include Mnemosyne [50], NV-Heaps [10], QSTM [1], and OneFile [39].…”
Section: Runtime and Applicationsmentioning
confidence: 99%
See 1 more Smart Citation
“…To facilitate more general use of persistence, several groups have developed libraries and, in some cases, compiler-based systems to provide failure atomicity for programmer-delimited blocks of code. In some systems, these blocks are outermost lock-based critical sections, otherwise known as failure-atomic sections (FASEs); examples in this camp include Atlas [6], JUSTDO [24], and iDO [31]. In other systems, the atomic blocks are transactions, which may be speculatively executed in parallel with one another; examples in this camp include Mnemosyne [50], NV-Heaps [10], QSTM [1], and OneFile [39].…”
Section: Runtime and Applicationsmentioning
confidence: 99%
“…Ensuring such consistency generally requires that code be instrumented with explicit write-back and fence instructions, to avoid the possibility that updated values may still reside only in the (transient) cache when data that depend upon them have already been written back. To save the programmer the burden of hand instrumentation, various groups have developed persistent versions of popular data structures [18,37,54,55] as well as more general techniques to add failure atomicity [6] to code based on locks [6,24,31], transactions [1,10,14,39,50], or both [41].…”
Section: Introductionmentioning
confidence: 99%
“…Previous work like Atlas [7], JUSTDO [37], NVThreads [31], and iDO [50], persist data at boundaries of critical sections called Failure Atomic SEctions (FASE). They automatically inject logging for every persistent update [7,31] or program states [37,50] within FASE by using compile-time analysis. However, their approaches amplify the overhead of cache line flushes, as they require an additional persistent log.…”
Section: Related Workmentioning
confidence: 99%
“…At this point, we would have a durable log of the data we are about to modify. Then, we begin the transaction execution (lines [22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40]. After finishing the transaction, we reset the insideTx bit and make it durable, indicating that the transaction has completed (lines 43-45).…”
Section: Durable Transactions With Write Ahead Loggingmentioning
confidence: 99%