修士論文要旨(2015年度)
長期保存/エンタープライズソリッド・ステート・ドライブ向け高信頼変調技術と 温度加速による信頼性評価の研究
Research on Highly Reliable Modulation Method and Reliability Evaluation by Temperature Acceleration for Long-Term/Enterprise Solid-State Drives
電気電子情報通信工学専攻 山﨑 泉樹 Senju YAMAZAKI
1.
研究の背景と目的近年、インターネットの発達に伴い歴史、科学情報、
文化などのデジタルデータが急増している。これらの データを記憶する媒体として、
NAND
型フラッシュメ モリを用いたソリッド・ステート・ドライブ(SSD)への需要が高まっている。しかし、
NAND
型フラッシ ュメモリは構造上、データ保持時間の増加に伴いエラ ーが大きくなり、信頼性の劣化を引き起こす。そのた め、現在、データを後世に残す技術は確立されておら ず、データの継承が危ぶまれている。本論文では、
1000
年を超えるデータ保持が求められ るデジタルアーカイブ、100
回程度の書き換えに加え、20
年間のデータ保持が必要なコールドフラッシュと いったアプリケーションの要件を満たすことを目的 に、10nm世代(1Xnm)のTLC(3bit/cell)NAND
型 フラッシュメモリ向けの高信頼手法である、flexible-nLC(flex-nLC)[1]を提案する(図 1)
。2. NAND
型フラッシュメモリNAND
型フラッシュメモリは、NMOS
トランジスタ のP
型シリコン基板と制御ゲートの間に浮遊ゲートと 呼ばれる電極を加えた2
重ゲート構造となっており、浮遊ゲート内の電子の有無によって生じるしきい値 電圧の違いをデータとして記憶している。浮遊ゲート は上下を絶縁膜で囲われており、電気的に浮遊状態で あるため、電源を切ってもデータが消えない不揮発性 メモリとして動作する。しかし、その構造上、NAND 型フラッシュメモリは信頼性の劣化を引き起こすエ ラーが存在する。主なエラーとしては、書き込みディ スターブ(PD)エラー、読み出しディスターブ(RD)
エラー、データ保持(DR)エラーが挙げられる。
PD/RD
エラーは、書き込み/読み出し時に浮遊ゲートに電子が 誤って注入されることによって書き込んだデータに 対して、しきい値電圧が上がるエラーである[2]。一方、DR
エラーは、トンネル酸化膜の劣化により浮遊ゲー トから電子が抜け落ち、書き込んだデータに対して、しきい値電圧が下がるエラーである(図
2) [3][4]。 DR
エラーはデータ保持時間の増加に伴い大きくなり、PD
エラーの100
倍以上のエラーが生じる[5]。また、長期 保存メモリに記憶されるデータは頻繁には読み出さ れない[6]。そのため、RDエラーによる信頼性劣化の 影響は非常に小さいものと考えられる。以上より、支 配的なエラーである、DRエラーを削減することが、NAND
型フラッシュメモリの信頼性を向上させ、長期 保存を実現するために重要であると考えられる。NAND
型フラッシュメモリはしきい値電圧ごとの 電子量を調節することで、1つのメモリセルに2
ビッ ト以上のデータを記憶することができる。多値化が進 むことで一定面積あたりに、多くのデータ量を記憶す ることができるため、大容量化・低コスト化につなが る。しかし、しきい値電圧間の読み出しマージンが狭 くなるため、上記エラーが起きやすくなり、信頼性の 劣化につながる(図3)[7]。
3. 1Xnm TLC NAND
の信頼性評価1Xnm TLC NAND
型フラッシュメモリのデータ保持時間に対するビットエラー率(BER)を示す(図
4)。
両対数グラフにおける線形傾向は
BER
をp
、データ保 持時間をt
とすると(1)のように表される[8]。図
1 SSD
アプリケーションThis work Flexible nLC
Write/erase cycle
0 1 10 100
1000
100
1 10
Data-retention time (Year)
Social Networking Service Cold flash Only 1 time write applications
A few times updated applications Millennium
memory Archive
Consumer SSD 3000
図
2 NAND
型フラッシュメモリのエラーControl gate Inter poly dielectric firm Floating gate Tunnel oxide
Data-retention error (VTHdown error) Program disturb / Read disturb error
(VTHup error)
VTH VTH
VTHup VTHdown
図
3 NAND
型フラッシュメモリの多値化技術VTH VTH Single-level cell (SLC, 1bit/cell)
Multi-level cell (MLC, 2bit/cell)
Triple-level cell (MLC, 3bit/cell)
High reliability
High density, Low cost
VTH Read margin
# of cells
p = αt
β(1)
100
年後、1000年後のBER
を実測することはできな いため、本論文では(1)式を用いて将来のBER
を予 測している。2Xnm、1Xnm TLC NAND型フラッシュ メモリのエラーをメモリステート毎に調査した(図5)
。 図5
より、BER
の大きさはメモリステートごとに異な り、約1
ヶ月後からは、’’P7’’ステートから生じるエラ
ーが最も支配的であることが確認できる。また、2Xnm TLC
では最も支配的なエラー(’’P7’’エラー)は、最も 小さいエラー(’’P1’’)の4
倍であるのに対し、1XnmTLC
では21
倍となり、1Xnm TLC NAND型フラッシ ュメモリの方がエラーの非対称性が大きいことが判 明した。書き換えを100
回(図6(a)
)、200回(図6
(b))としたとき、BERは
LDPC ECC
の訂正可能限 界(BER: 1%)を1
年以内で超えてしまっている。1Xnm
TLC NAND
型フラッシュメモリでアーカイブやコールドフラッシュの要件を満たす長期保存メモリを実 現させるためには、信頼性を高める新たな技術が必要 である。
4. n-out-of 8 level cell
(nLC)/Asymmetric coding
(AC)DR
エラーを削減しNAND
型フラッシュメモリの信 頼性を高める手法として、n-out-of 8 level cell(nLC)[8]
、asymmetric coding
(AC
)[5]
が提案された。nLC
の概念図を図7
に示す。nLC
はTLC NAND
型 フラッシュメモリのメモリステートを減らし、読み出 し電圧を選択することで8
値(TLC
)セルのうち7
値~
4
値(7LC~4LC
)の状態へデータを記憶させる手法である。
NAND
型フラッシュメモリは、’’P7’’
エラーが 最も支配的なエラーである(図5
、6
)。7LC
では、’’P6’’
ステートを取り除き、最も信頼性の悪い
’’P7’’
ステート の読み出しマージンを拡大することで、信頼性を高め ることができる。図8
に7LC
を例としたときの、デー タ変換の流れを示す。7LC
の場合、使用する7
つのメ モリステートは0-6
と表される。また、14ビットの2
進データを、5つのメモリセルに記憶する組み合わせ が最も効率が良い[8]。始めに、2進で表される14
ビ ットのデータを5
桁の7
進データに変換する。その後、変換された
7
進のデータを、対応するメモリステート に書き込む。6-4LC
でも同様にすることで、n LC
への データ変換が実現できる。図
9
にAC
の概念図を示す。AC
は、NAND
型フラ ッシュメモリへ書き込む’’1’’
または’’0’’
の割合を意図 的に変える手法である。AC
を用いることで、エラー の起きやすいメモリステートへの書き込みを減らし、信頼性を高めることができる。例えば、
’’010’’
のデー タを記憶しているメモリステートから生じるエラー図
10 AC
のデータ変換Flag bit AC
0 1 0 1 1 Bit flip Do not flip
0 1 0 1 1 1 0 0 1 0 1 1
1 0 1 0 0
‘1’s are increased
‘0’s are increased
AC increases the population of ‘1’s or ‘0’s in programming data.
Data unit (e.g. Code length : 5)
図
9 AC
の概念図Asymmetric data Random
data 110 111 011 001 101 100 000 010
If the ‘010’ state has higher BER, the population of the ‘010’ state is reduced. (‘101’ state is increased)
101 100 000 010 110 111 011 001
VTH
VTH
図
5
(a)2Xnm(b)1Xnm TLC NANDのエラー傾向BER (%)
0.001 0.01 0.1 1
85°C, W/E=1
Measurement 2Xnm, TLC
10-3 10-2 10-1 1 10
BER (%)
0.001 0.01 0.1 1
Measurement
‘P1’ Error ‘P2’ Error
‘P3’ Error ‘P4’ Error ‘P5’ Error ‘P6’ Error ‘P7’ Error
small large
10-3 10-2 10-1 1 10
VTH
E P1 P2 P3 P4 P5 P6 P7
‘P7’ Error
‘P1’ Error ・・・・・・・・
4 21
(b) (a)
Data retention time (Year) Data retention time (Year) 85°C, W/E=1
1Xnm, TLC
VLSI2014 [2]
図
6
エラー傾向(a
)W/E=100
(b
)W/E=200
10-3 10-2 10-1 1 10 0.01
0.1 1 10
BER (%) 85°C, W/E=1001Xnm, TLC
10-3 10-2 10-1 1 10 0.01
0.1 1 10
BER (%) 85°C, W/E=2001Xnm, TLC
Measurement Measurement
‘P1’ Error ‘P2’ Error ‘P3’ Error
‘P4’ Error ‘P5’ Error ‘P6’ Error ‘P7’ Error
(b) (a)
Data retention time (Year) Data retention time (Year)
図
4 1Xnm TLC NAND
型フラッシュメモリのBER
0.0001 0.01 1 100
BER (%)
0.01 0.1 10
1
p =αtβ (p is the BER,
t is DR-time.) 1Xnm TLC (85degC) 1Xnm TLC (RT)
W/E=1
Data retention time (year)
図
7 nLC
の概念図VTH VRef1VRef2VRef3VRef4VRef5VRef6
VTH VRef1VRef2VRef3VRef4 VRef6 7LC (nLC)
Margin n-out-of-8 level cell (nLC)
6LC (nLC)
VTH VRef1VRef2VRef3VRef4VRef5VRef6VRef7 8LC (TLC)
(i) Reduce the number of memory states (ii) Choose VRef Margin
Margin
図
8 nLC
のデータ変換1100010001000014 bit binary 2 5 digits (base7) 514227
0 1 23 45 6 Ex. 7LC (n= 7)
nLC
‘n’ represents the number of VTHstates remained.
が支配的な場合、’’010’’ステートへの書き込みを減ら す(’’101’’ステートへの書き込みを増やす)。ACの処 理する単位を符号長
n
ビットのデータユニットとする。図
10
では、符号長5
ビットのデータ系列’’01011’’を例 に、ACによるデータ変換の様子を示している。デー タ系列’’01011’’には、’’1’’の数が 3
個あるため、’’1’’の割
合を増やす場合、ビット反転はしない。それに対し、’’0’’
の割合を増やす場合は、ビットを反転することでデー タユニット内の’’0’’の割合を増やすことができる。また、
データを読み出す際、ビット反転をしたデータユニッ トを把握するためにフラグビットには’’1’’を付加する。
5. Flexible-nLC(Flex-nLC)
図
5
に示した結果より確認された、・メモリステートごとにエラーの大きさが異なる。
・1Xnm TLC NANDではエラーの非対称性が大きい。
という
2
点の測定結果から、本論文では1Xnm TLC NAND
型フラッシュメモリ向けの高信頼手法である、flexible-nLC
(flex-nLC)を提案する[1]。Flexi-nLC
は、7-4
値に変換したデータを非対称に書き込む手法であ り、従来技術であるnLC
とAC
を組み合わせることで 実現される(図11)
。図
12
にflex-nLC
のデータ変換の流れを示す。図では 、
7
番 目 (’’000’’
) の メ モ リ ス テ ー ト を 取 り 除 く’’Mode-7’’と、8 番目(’’010’’)のメモリステートへ 書き込む割合を増やす’’AC-8’’を組み合わせることによる
flex-7LC(Mode-7+AC-8)を例としている。始め
に、’’n-base coder’’により、ホストから送られてきた
14
ビットの2
進データを5
桁の7
進に変換し、7
番目 のメモリステートを取り除く。その後、’’Program dataencoder’’によって、各メモリステートが記憶している 3
ビットの2
進データに変換される。図の51422
7の場 合、57→100
2、17→111
2・・・27→011
2となる。次に、8
番目(’’010’’)のメモリステートへ書き込む割合を 増やすようにAC
が適用される。図の場合、1st、3rd ページをビット反転する。その後再び、各データに対 応する5
桁の7
進のデータに変換する。しかしこの際、AC
によるビット反転によりMode-7
によって取り除 かれたメモリステート(’’000’’)が生じる。そこで、flex-nLC
では新たに’’vertical-flag’’というフラグビット を用意する。取り除かれたメモリステートが生じた場 合 は 、AC
が 適 用 さ れ る 以 前 の デ ー タ に 戻 し 、vertical-flag
を’’1’’とする。(図の場合3
列目の’’000’’を、AC
が適用される前の状態である’’101’’に戻し、3
列目 のvertical-flag
を’’1’’とする)。その後、’’TLC allocator’’
によって対応するメモリステートへ書き込みが行わ れる。データの読み出し時には、2 種類のフラグビッ トが’’1’’か’’0’’かを判断しながらデータのデコードを 行う。
6.
結果図
13
に各データ保持時間に対するTLC、7LC、
flex-7~4LC
のBER
予測結果を示す。7LC を適用することで、
TLC
と比較して、BER
を大きく削減できてい る。それでもBER
は、LDPC ECC
の訂正可能限界(BER:1%)を超えているため、1000
年間のデータ保持を実現することができない。ここで、提案する
flex-7LC
を 用いることで、従来の7LC
からさらに72%のエラーを
削減することができた。結果、1000
年後のBER
は1%
を下回り、高温環境における
1000
年間のデータ保持 実現の可能性を示すことができた。使用するメモリレ ベルの数を減らすことで、さらにエラーを削減するこ とができる。しかし同時に、データを保存するための 容量が減るためコストが増大する。また、最適なコーディングはデータ保持時間
173
年を境にMode-7+AC-7
から、
Mode-7+AC-8
に変化することが分かった(図14
)。例えば、150
年のデータ保持が必要な場合はMode-7+AC-7
を、1000
年間のデータ保持が必要な場合は
Mode-7+AC-8
を適用するなど、アプリケーションが求めるデータ保持時間に応じて最適なコーディ ングを用いることで
BER
を最小化することができる。コールドフラッシュの要件に対する結果を図
15
に 図13
各データ保持時間におけるBER
10
0.01 0.1 1
BER (%)
100
1000 100 10 1
85°C, W/E=1 1Xnm, TLC
Data retention time (Year) -72%
flex-7LC flex-6LC flex-5LC flex-4LC Conv. 7LC(nLC) Conv. TLC
図
12 Flex-nLC
のデータ変換Data unit 110001000100002
514227
14 bit binary
5 digits (Base 7)
1 1 1 0 0
0 1 1 1 1 0 1 0 1 1 3rd_page
2nd_page 1st_page
Example : flex-7LC (Mode-7 + AC-8)
3 6 4 0 0 n-base coder
‘0’
‘1’
‘0’
Increased data Bit flip Do not flip
Bit flip
AC encoder Vertical-flag
0 0 01 1
1 0 00 0 0 1 01 1 Program data
encoder
0 0 1 0 0
NAND TLC flash Unwanted 7th
level data (Mode-7)
1 0 1
0 0 11 1
1 0 10 0 0 1 01 1 Flag of AC
TLC NAND (3bits/cell)
allocatorTLC
SSD controller 0 1
4
2 3 5 6
1st_page 2nd_page 3rd_page
1 1 0 0 1 1 0 0
1 1 1 0 0 0 0 1
0 1 1 1 1 0 0 0
(n = 7)
Data flip encoder
Data to n-base coder
図
11 Flex-nLC
の概要図Margin
VTH VRef1VRef2VRef3VRef4VRef5VRef6
Margin
VTH VRef1VRef2VRef3 VRef5VRef6
Margin
Flex-7LC
The nLC distribution is written asymmetrically.
Flexible-nLC (Flex-nLC)
Flex-6LC
図
14
最適なflex-7LC
0.0001 0.01 1 100
BER (%)
0.01 0.1 10 1
1k Conv. 7LC (nLC) Mode-7 + AC-7
Optimal coding is changed (173 years) Conv. TLC
Data retention time (year) 1Xnm, TLC,
85°C, W/E=1
Mode-7 + AC-7 Mode-7
+ AC-8
Mode-7 + AC-8
示す。書き換えが増えることで、
NAND
型フラッシュ メモリの絶縁膜が劣化し、信頼性が悪化する。そのた め、flex-7LC
ではLDPC ECC
の訂正可能限界である1%
を超えてしまい、コールドフラッシュの要件を満た すことができない。そこで、さらにメモリレベルを減らし、
flex-6LC
を用いることで、100
回の書き換えをした場合でも、
20
年間のデータ保持を実現することが できた(図15
(a
))。200
回の書き換えをした場合は、flex-5LC
を用いることで20
年後のBER
を1%
以下に することができた(図15
(b
))。結果として、コール ドフラッシュ向けでは、従来手法と比較して書き換え 回数100
回のときに69%
、200
回のときに60%
のエラ ーを削減した。7.
まとめと今後の課題デジタルアーカイブ、コールドフラッシュといった 長期間のデータ保持が求められるアプリケーション 向けの手法として、
flexible-nLC
(flex-nLC
)を提案し た。Flex-nLC
は8
値メモリであるTLC
のうち、7-4
値 を用いてデータを非対称に書き込む手法である。これ は、従来技術であるnLC
とAC
を組み合わせることで 実現される。従来本手法を用いることで、従来のnLC
と比較して、デジタルアーカイブ向けに72%
、コール ドフラッシュ向けに69%
のエラーを削減した。本論文では、数か月程度の測定から得られた、
BER
の線形傾向を利用して将来のBER
を予測した。しか し、実際に線形傾向のままBER
が増加していくとい う証拠はなく、本論文で提案した手法でデジタルアー カイブやコールドフラッシュの要件を満たすと断言 することはできない。今後、より正確かつ理論的にNAND
型フラッシュメモリの寿命を予測する手法が 求められる。参考文献
[1] S. Yamazaki et al, IEEE VLSI Technology, pp.T112-T113, 2015.
[2] N. Mielke et al, IEEE IRPS, pp.9-19, 2008.
[3] H. Kameyama et al, IEEE IRPS, pp.194-199, 2000.
[4] J. Lee et al., IEEE IRPS, pp.497-501. 2003.
[5] S. Tanakamaru et al, IEEE JSSC, vol. 47, no. 1, pp.85-96, 2012.
[6] http://wired.jp/2013/01/21/facebook-cold-storage/
[7] J. H. Yoon et al., Flash memory summit, 2012.
[8] S. Tanakamaru et al, IEEE VLSI Circuits, pp.126-127, 2014.
発表文献 学術雑誌
S. Tanakamaru, Y. Kitamura, S. Yamazaki, T.
Tokutomi, and K. Takeuchi, ‘‘Highly Reliable Coding Methods for Emerging Applications: Archive and Enterprise Solid-State Drives (SSDs),’’ in IEEE Transactions on Circuits and Systems I, vol. 62, no. 3, pp.771-780, March 2015.
S. Yamazaki, T. O. Iwasaki, S. Hachiya, T. Takahashi, and K. Takeuchi, ‘‘A 72% Error Reduction Scheme Based on Temperature Acceleration for Long-Term Data Storage Applications: Cold Flash and
Millennium Memories,’’ Solid-State Electronics, 2016.
(Submitted)
国際会議
S. Tanakamaru, Y. Kitamura, S. Yamazaki, T.
Tokutomi and K. Takeuchi, ‘‘Application-Aware Solid-State Drives (SSDs) with Adaptive Coding,’’ in IEEE Symp. on VLSI Circuits, pp.126-127, June 2014.
S. Yamazaki, S. Tanakamaru, S. Suzuki, T. O. Iwasaki, S. Hachiya and K. Takeuchi, ‘‘Reliability
Enhancement of 1Xnm TLC for Cold Flash and Millennium Memories,’’ in IEEE Symp. on VLSI Technology, pp.T112-T113, June 2015.
T. Takahashi, S. Yamazaki, and K. Takeuchi,
‘‘Data-Retention Time Prediction of Long-term Archive SSD with Flexible-nLC NAND Flash,’’ in IEEE International Reliability Physics Symposium (IRPS), 2015. (Accepted)
国内会議
山﨑泉樹, 上口光
,
江上徹, 吉岡和顕,
竹内健‘‘GST-PCM
とSL-PCM
の高速・低エネルギーの電気特性評価と書き込み/読み出し回路’’, LSI のシ ステムとワークショップ
2014,
ポスターセッショ ン, 2014年5
月.鈴 木 朔弥
,
山 﨑泉 樹,
竹内 健, ‘‘長 期保 存向 けNAND
型フラッシュメモリの信頼性評価’’, 集積 回 路 研 究 会,
進 学 技 法, vol. 114, no. 345, ICD2014-86, pp. 51, 2014
年12
月.山﨑泉樹, 田中丸周平, 北村雄太, 竹内健, ‘‘長期 保存メモリに向けた
SSD
の高信頼手法’’, 第62
回 応用物理学関係連合講演会, 2015年3
月.山﨑泉樹, 田中丸周平, 竹内健, ‘‘エンタープライ ズ向けソリッド・ステート・ドライブの高信頼手 法’’, 第
62
回応用物理学関係連合講演会, 2015年3
月.高 橋 知紀
,
山 﨑泉 樹,
竹内 健, ‘‘長 期保 存向 けNAND
型フラッシュメモリのエラーパターン解 析’’, 集積回路研究会, 進学技法, vol. 115, no. 373,ICD2015-95, pp. 53, 2015
年12
月.高橋知紀, 山﨑泉樹, 竹内健, ‘‘アーカイブ/コール ドフラッシュ向け長期保存
SSD
の高信頼手法’’, 第63
回応用物理学関係連合講演会、2016年3
月(発表予定).
賞
ICD
優秀若手研究ポスター賞(2014年)、中央大 学学院会会長賞(2015年)、IEEE EDS Japan Chapter Student Award(2016
年)図
15
データ保持時間vs. BER
(a)W/E=100
(b)W/E=200
0.001 0.01 0.1 1 10 10
0.01 0.1 1
BER (%)
100
TLC 7LC 6LC flex-7LC flex-6LC
Data retention time (Year) 85°C, W/E=100 1Xnm, TLC Acceptable BER of practical ECC
-69%
0.001 0.01 0.1 1 10 10
0.01 1 100
TLC 7LC 6LC flex-7LC flex-6LC
85°C, W/E=200 1Xnm, TLC
5LC flex-5LC
Data retention time (Year)
BER (%)
0.1
(a) (b)
-60%
20 20