SPQR - Security And Privacy Research Group - QBF-BASED … · 2014-05-20 · 2 March 2014 QBF...
Transcript of SPQR - Security And Privacy Research Group - QBF-BASED … · 2014-05-20 · 2 March 2014 QBF...
QBF-BASED SYNTHESIS OF OPTIMAL WORD-SPLITTING IN APPROXIMATE MULTI-LEVEL CELLSDaniel E. Holcomb Kevin Fu University of Michigan
QBF Synthesis of Optimal Word-Splitting2 March 2014
Motivation
!2
QBF Synthesis of Optimal Word-Splitting2 March 2014
Motivation• Multi-level cells (MLCs)
• Store 4 bits per cell using 16 discrete levels
!2
QBF Synthesis of Optimal Word-Splitting2 March 2014
Motivation• Multi-level cells (MLCs)
• Store 4 bits per cell using 16 discrete levels• Approximate computing
• Save resources by allowing errors [Sampson et al. ’13] • Errors between nearby levels • But still want to minimize impact of errors
!2
QBF Synthesis of Optimal Word-Splitting2 March 2014
Motivation• Multi-level cells (MLCs)
• Store 4 bits per cell using 16 discrete levels• Approximate computing
• Save resources by allowing errors [Sampson et al. ’13] • Errors between nearby levels • But still want to minimize impact of errors
• Design decisions • Data words don't fit in one MLC • How to split word across multiple MLCs?
!2
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
??? ???
Write Operation Read Operation
!3
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operation
!3
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operation
!3
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operation
!3
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96
!3
0 1 1 0 0 0 0 0
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96
!3
write 3 write 00 0 1 1 0 0 0 0
0 1 1 0 0 0 0 0
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96
!3
write 3 read 4write 0 read 00 0 1 1 0 0 0 0 0 0 0 00 1 0 0
0 1 1 0 0 0 0 0
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96
!3
write 3 read 4
MLC error = 1
write 0 read 00 0 1 1 0 0 0 0 0 0 0 00 1 0 0
0 1 1 0 0 0 0 0
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96 read 16
!3
write 3 read 4
MLC error = 1
write 0 read 00 0 1 1 0 0 0 0 0 0 0 00 1 0 0
0 0 0 1 0 0 0 00 1 1 0 0 0 0 0
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96 read 16
word error = 80
!3
write 3 read 4
MLC error = 1
write 0 read 00 0 1 1 0 0 0 0 0 0 0 00 1 0 0
0 0 0 1 0 0 0 00 1 1 0 0 0 0 0
QBF Synthesis of Optimal Word-Splitting2 March 2014
Example
MLCs:
Data Word:
Write Operation Read Operationwrite 96 read 16
word error = 80
!3
write 3 read 4
MLC error = 1
write 0 read 00 0 1 1 0 0 0 0 0 0 0 00 1 0 0
0 0 0 1 0 0 0 00 1 1 0 0 0 0 0
Assuming a fixed upper bound on MLC error, can we find a mapping between data word and MLCs that minimizes worst-case word error?
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
DW
C1R C0R
SXBAR XBAR
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit
DW
C1R C0R
SXBAR XBAR
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
DW
C1R C0R
SXBAR XBAR
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds• Gatewise translate circuit to CNF
clauses
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds• Gatewise translate circuit to CNF
clauses• Synthesis by solving Boolean formula
with appropriately quantified variables
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds• Gatewise translate circuit to CNF
clauses• Synthesis by solving Boolean formula
with appropriately quantified variables
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds• Gatewise translate circuit to CNF
clauses• Synthesis by solving Boolean formula
with appropriately quantified variables
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
• If QBF solution exists, solver produces assignment to existentially quantified variables
• This assignment guarantees property to always hold
QBF Synthesis of Optimal Word-Splitting2 March 2014
QBF Formulation of Word-Splitting
!4
• QBF: SAT with alternating quantifiers• Formulate QBF-based synthesis by way
of combinational circuit• Crossbars implement mapping
between data words and MLCs• 64 bits specify xbar connections• 8-bit written dataword • 4-bit value read from each MLC
• Check word and MLC error bounds• Gatewise translate circuit to CNF
clauses• Synthesis by solving Boolean formula
with appropriately quantified variables
DW
C1R C0R
S
C1WC0W
DR
XBAR XBAR
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
2 2014/3/1
� =��|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
��=)
�|S(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�MLC :=�|CW
1 � CR1 | EC
�^�|CW
0 � CR0 | EC
�
�WORD :=�|S�1(CW
1 , CW0 )� S(CR
1 , CR0 )| ED
�
�WORD :=�|DW �DR| ED
�
9S 8CW1 8CW
0 8CR1 8CR
0 (�MLC =) �WORD)
9S 8DW8CR1 8CR
0 (�MLC =) �WORD)
9S8DW8CR1 8CR
0 (�MLC =) �WORD)
�MLC :=�|CW
1 � CR1 | EC
�^
�|CW
0 � CR0 | EC
�(4)
2 2014/3/1
• If QBF solution exists, solver produces assignment to existentially quantified variables
• This assignment guarantees property to always hold
QBF Synthesis of Optimal Word-Splitting2 March 2014
Results• QBF-based synthesis to find optimal word-splitting
!5
the probability of having a word error of 0 is less than25%, because the remapping M introduces a systematicerror even when the cells are error free.
Figure 7 shows the average word error as a function ofthe probability of a single-level error in each MLC. Whenthe cell error probability is 0, the only approach to have non-zero word-level error is the synthesized word-splitting withremapping. This error is on account of the remapping, whichintroduces a systematic error for the remapped levels. As theprobability of cell error increases, the synthesized result withremapping has the best average-case error, in addition to thebest worst-case error of 10.
0
0.2
0.4
0 20 40 60 80 100 120 140
pro
bab
ilit
y
word-level error
interleaved
0
0.2
0.4
0 20 40 60 80 100 120 140
pro
bab
ilit
y
word-level error
synthesized
0
0.2
0.4
0 20 40 60 80 100 120 140
pro
bab
ilit
y
word-level error
synthesized, with remapping
Figure 6. Probability distribution of word-level error(|DR � DW |) using the three approaches discussed in thepaper. The distribution is obtained from 500k random trialsusing Verilog simulation. The results are for the the inter-leaved word-splitting and the two synthesized word-splittingapproaches. The probability of a single-level error in eachcell is 50%, and the errors are independent for each cell. Thevertical lines are the average word-level error and the largesterror observed in the random trials.
0
0.25
0.5
0.75
1
1.25
0 0.02 0.04 0.06 0.08 0.1
avg
wo
rd-l
evel
err
or
probability of cell error
interleavedsynthesized
synthesized, with remapping
Figure 7. Observed average word-level error (|DR �DW |)as a function of the probability of a single-level error in eachMLC.
6. Future Work and ConclusionsThis work proposed the use of automated synthesis tech-niques for splitting data words across approximate MLCstorage, such that the worst-case error is minimized atthe word-level. The synthesis technique is based on QBF-solving, and the results are validated through random simu-lation.
While MLC errors will generally occur as transitionsbetween neighboring levels as assumed in this work, fu-ture work will explore an error model that is more closelymatched to the particular errors of a specific MLC technol-ogy. Other QBF solving techniques such as quantifier instan-tiation can be applied. To address the limitation of havingno preference among solutions with equivalent worst-caseword-level error bounds (Sec. 5.3), the synthesis techniquecan be extended to consider all solutions that guarantee theoptimal worst-case bound, and to choose among them basedon a metric such as average-case word-level error.Acknowledgement: This work was supported in part byC-FAR, one of six centers of STARnet, a SemiconductorResearch Corporation program sponsored by MARCO andDARPA, and NSF CNS-0845874. Any opinions, findings,conclusions, and recommendations expressed in these mate-rials are those of the authors and do not necessarily reflectthe views of the sponsors
References[1] H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. Archi-
tecture support for disciplined approximate programming. InASPLOS XVI: Proceedings of the sixteenth international con-ference on Architectural support for programming languagesand operating systems, Apr. 2012.
[2] A. Jiang, R. Mateescu, M. Schwartz, and J. Bruck. Rankmodulation for flash memories. Information Theory, 2008.ISIT 2008. IEEE International Symposium on, pages 1731–1735, 2008.
[3] T. Larrabee. Test pattern generation using Boolean satisfia-bility. IEEE Transactions on Computer-Aided Design of Inte-grated Circuits and Systems, 11(1):4–15, 1992.
[4] S. Liu, K. Pattabiraman, T. Moscibroda, and B. G. Zorn.Flikker: saving DRAM refresh-power through critical datapartitioning. In ASPLOS XVI: Proceedings of the sixteenth in-ternational conference on Architectural support for program-ming languages and operating systems, June 2012.
[5] F. Lonsing and A. Biere. DepQBF: A Dependency-AwareQBF Solver. JSAT, 7(2-3):71–76, 2010.
[6] F. Lonsing, U. Egly, and A. Van Gelder. Efficient ClauseLearning for Quantified Boolean Formulas via QBF PseudoUnit Propagation. In SAT 2013, pages 100–115, 2013.
[7] A. Niemetz, M. Preiner, F. Lonsing, M. Seidl, and A. Biere.Resolution-Based Certificate Extraction for QBF - (Tool Pre-sentation). In SAT, pages 430–435, 2012.
[8] M. Salajegheh, Y. Wang, A. A. Jiang, E. Learned-Miller, andK. Fu. Half-Wits: Software Techniques for Low-Voltage Prob-abilistic Storage on Microcontrollers with NOR Flash Mem-ory. ACM Transactions on Embedded Computing Systems, 12(2s), May 2013.
[9] A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam,L. Ceze, and D. Grossman. EnerJ: approximate data typesfor safe and general low-power computation. In PLDI ’11:Proceedings of the 32nd ACM SIGPLAN conference on Pro-gramming language design and implementation, June 2011.
[10] A. Sampson, J. Nelson, K. Strauss, and L. Ceze. ApproximateStorage in Solid-State Memories. IEEE Micro, 2013.
6 2014/2/8