はじめに
SSD の製品情報には「600TBW」のような数字が書いてある。
「600TB 書けます」という意味だとはわかる。では、この 600 はどこから来たのか。
この記事は、その数字を出発点にして、最後は「トンネル酸化膜に電子が捕まる」という物理現象まで一本道で降りていく。
使うのは4つの公開資料だけ。
- JEDEC の SSD 規格(JESD218)の解説資料
- Samsung SSD 870 EVO のデータシート
- Samsung の用語集(V-NAND の定義)
- Cai らの論文(Proceedings of the IEEE, 2017)
👉 手元の SSD を実測してはいない。 SMART の値も出てこない。公開されている資料だけでどこまで辿れるか、という記事である。
TBW は容量にきれいに比例している
Samsung SSD 870 EVO のデータシート(Revision 1.1)には、容量別の TBW が載っている。
Capacity 250GB 500GB 1TB 2TB 4TB
TBW 150TB 300TB 600TB 1,200TB 2,400TB
TBW を容量で割ってみる。
| 容量 | TBW | TBW ÷ 容量 |
|---|---|---|
| 250GB | 150TB | 600 |
| 500GB | 300TB | 600 |
| 1TB | 600TB | 600 |
| 2TB | 1,200TB | 600 |
| 4TB | 2,400TB | 600 |
きれいに揃う。
つまり「600TBW」は「ドライブ全体を約600回上書きできる」と読み替えられる。容量が4倍なら TBW も4倍。1台あたりの書き換え可能回数はどれも同じである。
👉 データシートの脚注に GB: 1GB = 1,000,000,000 bytes とあるので、十進表記で単位系は揃っている。
保証期間は5年。600TB を5年で割るとこうなる。
600,000 GB ÷ (5 × 365 日) ≒ 328 GB/日
❌ ただしこれは「328GB/日まで書ける」でも「超えたら壊れる」でもない。データシートはこう書いている。
Warranty provides coverage for the stated time period or the TBW, whichever comes first.
保証は「5年」か「TBW」の早く到達した方まで、という意味である。
✅ TBW は保証の範囲を区切る数字であって、寿命の予言ではない。
では、その区切りはどうやって決めているのか。
JEDEC が示した式
870 EVO の TBW は、JEDEC の規格 JESD218 に沿って測られている。データシートの脚注5にこうある。
All documented endurance test results are obtained in compliance with JESD218 Standards.
JESD218 の解説資料(JEDEC 公開、JC-64.8 議長 Alvin Cox 氏による)では、TBW をこう定義している。
Endurance rating (TBW rating)
– The number of terabytes that may be written to the SSD while still meeting the requirements.
「要求を満たしたまま書き込めるテラバイト数」。この "requirements" が4つ挙げられている。
- the SSD maintains its capacity;
- the SSD maintains the required UBER for its application class;
- the SSD meets the required functional failure requirement (FFR) for its application class; and
- the SSD retains data with power off for the required time for its application class.
順に、①容量を維持していること ②UBER(訂正不能なビットエラー率)を満たすこと ③FFR(機能故障率)を満たすこと ④電源オフで所定の期間データを保持すること。
👉 4番目に注目してほしい。「電源を切ったあと何ヶ月データが残るか」も TBW の成立条件に入っている。これは終盤で効いてくる。
そして同じ資料に、TBW を見積もる計算例が載っている。
TBW < (C × NAND cycling capability) / (2 × WAF)
| 項 | 意味 |
|---|---|
C |
SSD の容量 |
NAND cycling capability |
NAND が耐えられる P/E サイクル数 |
WAF |
書き込み増幅率 |
2 |
ウェアレベリングの安全率 |
❌ これは「すべての SSD がこの式で TBW を決めている」という規定ではない。 資料上この式は "Endurance rating example" という見出しの下にあり、Consider an SSD containing only one type of NAND...(1種類の NAND だけを積んだ SSD を考える)、Suppose further that...(さらに〜と仮定する)と、仮定を重ねたうえでの一例である。
👉 とはいえ、前章で見た「TBW が容量に完全比例する」事実は、この式で C 以外の項が共通なら当然そうなる、という形で噛み合う。870 EVO は全容量で同じコントローラ(Samsung MKX)・同じ NAND(Samsung V-NAND 3bit MLC)を使っている。
分母の「2」はウェアレベリングの安全率
式の分母にいる 2 は何か。資料はこう説明している。
Suppose further that the design of the wear leveling method is expected to result in the most heavily-cycled erase block receiving twice the average number of cycles.
... the factor of two is the guard band for the wear leveling effects.
整理するとこうなる。
- SSD は書き込みを全ブロックに散らす(ウェアレベリング)
- しかし完全に均等にはならない
- 一番使われるブロックは平均の2倍使われると見積もる
- その最悪ケースのブロックが先に死なないよう、容量を 2 で割っておく
👉 ウェアレベリングは「摩耗をなくす仕組み」ではなく「摩耗の偏りを抑える仕組み」である。偏りはゼロにならないので、安全率として 2 が入る。
分母のもう一つ、WAF
WAF(write amplification factor / 書き込み増幅率)の定義はこうである。
The data written to the NVM divided by data written by the host to the SSD.
NAND に実際に書かれた量 ÷ ホストが書けと言った量。 資料は端的にこう書いている。
An SSD usually writes more data to the memory than it is asked to write.
SSD は、頼まれた量より多く書く。
増える要因のひとつとして、NAND の読み書きの単位が非対称であることが挙げられる。解説資料の用語定義を並べてみる。
Page
– A sub-unit of an erase block consisting of a number of bytes which can be read from and written to in single operations, ...
Erase block
– The smallest addressable unit for erase operations, typically consisting of multiple pages.
書き込みはページ単位、消去はブロック単位。 そしてブロックは複数のページからなる。単位が揃っていないので、少しだけ書き換えたいときでも、より大きな塊への処理が発生しうる。
資料が WAF に影響する要因として挙げているのは次の4つ。
– Sequential versus random
– Large transfers versus small ones
– Boundary alignment
– Data content/patterns (especially for SSDs using data compression)
シーケンシャルかランダムか、転送サイズが大きいか小さいか、境界のアラインメント、データの内容やパターン(特に圧縮を行う SSD の場合)。
👉 WAF とガベージコレクションの詳細はそれだけで1本の記事になるので、ここでは「分母にいる」ことだけ押さえて先へ進む。
式を 870 EVO に当てはめてみる
式を変形すると、P/E サイクル上限を逆算できる。870 EVO 1TB は C = 1TB、TBW = 600TB なので、
600 < (1 × N) / (2 × WAF)
N > 1200 × WAF
ここで問題がある。WAF がわからない。
Samsung は公開していない。そもそも JEDEC の資料自体がこう書いている。
Measurement of WAF requires access to information about NAND program/erase cycles which is generally not available to third parties.
WAF の測定には NAND の P/E サイクル情報へのアクセスが必要で、それは通常第三者には手に入らない。
なので、仮定を置くしかない。いくつかの値で計算してみる。
| 仮定した WAF |
N(P/E サイクル上限)の下限 |
|---|---|
| 1.0 | 1,200 回超 |
| 1.5 | 1,800 回超 |
| 2.0 | 2,400 回超 |
| 3.0 | 3,600 回超 |
❌ この表は Samsung が公表した値ではない。 3点断っておく。
- WAF の値はこちらが置いた仮定である。実際の値は非公開
- 元の式が不等式なので、出てくるのは下限だけである
- そもそもこの式は JEDEC が示した計算例であって、Samsung がこれを使ったとはどこにも書かれていない
👉 それでも、下限の感覚はつかめる。WAF がいくつであれ、少なくとも千回台は書き消しに耐える計算になる。上限は分からない。
この「書き消しに耐える回数」とは、いったい何の回数なのか。ここから先が物理の話になる。
P/E サイクル上限とは、何の上限なのか
P/E サイクル(program/erase cycle)の定義は素朴である。
The writing of data to one or more pages in an erase block and the erasure of that block, in either order.
ブロック内のページに書いて、そのブロックを消す。順序はどちらでもよい。これで1回。
では「上限」とは何か。ある回数を超えるとセルが物理的に破裂する、という話ではない。Cai らの論文はこう説明している。
P/E cycling errors occur because electrons become trapped in the tunnel oxide after stress from repeated P/E cycles. Errors due to such electron trapping ... continue to accumulate over the lifetime of a NAND flash block. This behavior is called wearout, and it refers to the phenomenon where, as more writes are performed to a block, there are a greater number of raw bit errors that must be corrected, exhausting more of the fixed error correction capability of the ECC
要点を分解するとこうなる。
- 書き消しを繰り返すと、電子がトンネル酸化膜に捕まっていく
- その結果、生のビットエラーが少しずつ増えていく
- SSD には ECC(誤り訂正)が載っていて、そのエラーを訂正している
- しかし ECC の訂正能力は固定である
- 増え続けるエラーが、いつか訂正能力を食い潰す
✅ P/E サイクル上限とは「訂正しきれなくなるまでの回数」である。
崖から落ちるのではなく、坂を登りきってしまうイメージに近い。
では、そのエラーはなぜ増えるのか。
トンネル酸化膜に電子が溜まっていく
⚠️ ここから先、Cai らの論文が詳しく測定しているのは 2D 平面 NAND である。フローティングゲート型のセルを前提とした説明になる。3D NAND との違いは後の章で扱う。
NAND のセルは、絶縁体に囲まれた場所に電子を閉じ込め、その量で情報を表す。書き込みも消去も、電子を絶縁膜(トンネル酸化膜)の中を無理やり通す操作になる。
ここで効いてくるのが、扱っている電子の少なさである。
State-of-the-art (i.e., 1x-nm) MLC flash memory cells can store only ~100 electrons. Gaining or losing several electrons on a cell can significantly change the cell's voltage level and eventually alter its state.
1x-nm 世代の MLC では、セル1個に入っている電子が約100個。 数個増えたり減ったりするだけで、セルの電圧が大きく変わり、記録している値そのものが変わりうる。
👉 引用が 1x-nm と断っていることに注意。この数字は「微細化が進むほどセルの容量と電子の数は減る」という文脈で出てくるものなので、プロセスノードが変われば電子の数も変わる。この点は第11章で効いてくる。
そして書き消しのたびに、通り抜けるはずの電子の一部が膜の中に捕まって残る。これが摩耗の正体である。膜は少しずつ劣化する。
the quality of the tunnel oxide degrades, allowing electrons to tunnel through the oxide more easily
膜の質が落ち、電子がより通りやすくなる。
一見すると「通りやすいなら書き込みは楽になるのでは」と思える。実際、楽にはなる。問題は、楽になりすぎることである。
分布がずれて、広がって、隣と重なる
書き込みには ISPP と呼ばれる方式が使われる。論文がこの方式の条件として挙げているのは、書き込み電圧(programming voltage)・ステップパルスの大きさ(step-pulse size)・書き込み時間(program time)の3つである。
論文は、この条件を SSD の一生を通じて変えずに使った場合に何が起きるかを述べている。
if the same ISPP conditions (e.g., programming voltage, step-pulse size, program time) are applied throughout the lifetime of the NAND flash memory, more electrons are injected during programming as a flash memory block wears out, leading to higher threshold voltages, i.e., the right shift of the distribution.
膜が劣化して電子が通りやすくなっているので、同じ操作をしているのに電子が入りすぎる。結果、閾値電圧の分布が右にずれる。
さらに、分布は広がる。
The distribution of each state widens due to the process variation present in (1) the wearout process, and (2) the cell's structural characteristics.
摩耗の進み方にもセルの構造特性にもばらつきがあるので、セルごとに揃わない。
そして決定的なことが起きる。
As the distribution of each voltage state widens, more overlap occurs between neighboring distributions, making it less likely for a read reference voltage to determine the correct value of the cells in the overlapping regions, which leads to a greater number of raw bit errors.
隣の状態の分布と重なる。重なった領域にいるセルは、読み出し基準電圧では正しく判定できない。これがビットエラーになる。
✅ 摩耗の連鎖を並べるとこうなる。
書き消しを繰り返す
→ トンネル酸化膜に電子がトラップされ、膜が劣化する
→ 同じ書き込み条件でも電子が入りすぎる
→ 閾値電圧の分布が右にずれ、さらに広がる
→ 隣の状態の分布と重なる
→ 読み間違いが増える
→ ECC の訂正能力を食い潰す
→ ここが P/E サイクル上限
👉 論文は TLC チップを 0 回と 3,000 回の時点で測定し、分布を比較している。これは測定した時点であって、TLC の耐久上限という意味ではない(3,000 という数字については第11章で改めて触れる)。なお絶対的な閾値電圧値はベンダーの非公開情報のため、論文でも正規化した値で示されている。
SLC / MLC / TLC / QLC は電圧窓の分割数
「分布が重なると読めなくなる」とわかると、分布をいくつ詰め込むかが効いてくることも見えてくる。
論文の定義に沿って並べるとこうなる。
| 名称 | 1セルあたり | 電圧窓の数 |
|---|---|---|
| SLC(single-level cell) | 1 bit | 2 |
| MLC(multi-level cell) | 2 bit | 4 |
| TLC(triple-level cell) | 3 bit | 8 |
| QLC(quadruple-level cell) | 4 bit | 16 |
電圧の範囲そのものは変わらない。同じ範囲を何分割するかが違う。
Each voltage window in MLC NAND flash is therefore much smaller than a voltage window in SLC NAND flash. This makes it more difficult to identify the value stored in a cell.
窓が狭いほど、隣と重なるまでの余裕が小さい。同じだけ膜が劣化しても、先に読めなくなる。
Encoding more bits per cell increases the capacity of the SSD without increasing the chip size, yet it also decreases reliability by making it more difficult to correctly store and read the bits.
これが多値化のトレードオフである。チップサイズを変えずに容量が増えるが、信頼性は落ちる。
耐久性の序列について、論文はこう書いている。
TLC flash has a much lower endurance than MLC, and MLC has a much lower endurance than SLC (assuming the same process technology node)
❌ 括弧の中を落としてはいけない。 「同じプロセスノードで比べるなら」という条件付きの主張である。この条件が、次の章で効いてくる。
👉 用語について1点。870 EVO のデータシートは NAND を Samsung V-NAND 3bit MLC と表記している。3bit/cell なので、論文の定義でいう TLC と同じものを指している。同じものに2つの呼び方がある、というだけの話である。
⚠️ なお QLC について、この論文(2017年)は currently being developed(開発中)と書いている。2017年時点の記述である。
❌「TLC は 3,000 回」は今の SSD の話ではない
「TLC の P/E サイクル上限は 3,000 回」という数字を見たことがあるかもしれない。
3,000 という数字自体は、論文にも出てくる。
older SLC NAND-flash-based SSDs were able to withstand 150,000 P/E cycles (writes) to each flash cell, but contemporary 1x-nm (i.e., 15–19 nm) process-based SSDs consisting of MLC NAND flash can sustain only 3,000 P/E cycles
しかし、限定条件を読む必要がある。3,000 回が指しているのは、
- MLC である(TLC ではない)
- 1x-nm、つまり 15〜19nm プロセスの平面 NAND である(3D ではない)
❌ この数字を「TLC の値」として引くのは、二重に条件を外している。
そのうえ、3D NAND がこの傾向を反転させた。論文(2017年)はこう書いている。
Contemporary 3D NAND flash can contain 48–64 layers, allowing manufacturers to use larger feature sizes (e.g., 50–54 nm) than commonly used feature sizes in planar flash (e.g., 15–19 nm) while still increasing memory density.
セルを縦に積めば密度を稼げるので、微細化を巻き戻せた。15〜19nm から 50〜54nm へ戻っている。前章の「同じプロセスノードで比べるなら」という条件が、ここで外れる。
結果はこうである。
As the transistors are larger in the current 3D NAND flash generations, the endurance (i.e., the maximum P/E cycle count) of the flash cells has increased as well, by over an order of magnitude.
トランジスタが大きくなったぶん、耐久性は1桁以上向上した。
Samsung 自身も V-NAND の説明で、2D NAND との比較をこう書いている。
Memory speed, life and power efficiency are also drastically improved compared to the previous 2D NAND flash memory.
そして 870 EVO の NAND は V-NAND である。Samsung の定義によれば、
A type of NAND flash memory where cells conventionally arrayed in a single layer are stacked vertically in three dimensions.
単層に並べていたセルを、垂直方向に3次元へ積層した NAND。つまり 3D NAND であり、平面 MLC の 3,000 回という数字を当てはめる対象ではない。
👉 では 3D の TLC は何回なのか。それは書けない。 論文が述べているのは「1桁以上向上した」という相対値だけで、絶対値は示されていない。Samsung も公開していない。第6章の逆算で言えるのも「少なくとも千回台以上」という下限だけである。公開情報から言えるのはそこまでで、上限は分からない。
⚠️ この論文は2017年のものである。「48〜64層」は2017年時点の数値であり、現在の世代の話ではない。論文自身も 3D NAND については rigorous studies ... are yet to be published(厳密な研究はまだ発表されていない)と断っている。
電源を切っても消えるのは、同じ原因の裏返し
第3章で見た TBW 成立の4条件、その4番目を思い出してほしい。
- the SSD retains data with power off for the required time for its application class.
電源オフで、アプリケーションクラスごとに決められた期間データを保持すること。その期間を示した表が解説資料に載っている。
Application Workload Active Use Retention Functional UBER
Class (power on) Use Failure
(power off) Rqmt (FFR)
Client Client 40oC 30oC 3% 10-15
8 hrs/day 1 year
Enterprise Enterprise 55oC 40oC 3% 10-16
24hrs/day 3 months
クライアント向けは 30°C で1年、エンタープライズ向けは 40°C で3ヶ月。
エンタープライズのほうが要求される保持期間は短い。一方で稼働側の条件は厳しい(55°C・24時間/日に対し、クライアントは 40°C・8時間/日)。用途に応じて要求を振り分けている。
👉 表の 10-15 は 10⁻¹⁵ の意味である(上付き文字が落ちた表記)。
いずれにせよ、「電源を切って放置すればいつかは消える」ことが規格の前提になっている。
なぜ消えるのか。
⚠️ ここでも、論文が測定しているのは第8章と同じ 2D 平面 NAND(フローティングゲート型)である。3D NAND については、論文は逆にこう書いている。
Charge trap transistors are, however, more susceptible to data retention leakage.
チャージトラップ型のセルは、データ保持のリークにはむしろ弱い。つまり以下は 2D 平面 NAND についての説明であり、3D でそのまま成り立つとは限らない。
そのうえで論文の説明を読むと、第8章とまったく同じものが出てくる。
Charge leakage is caused by the unavoidable trapping of charge in the tunnel oxide. The amount of trapped charge increases with the electrical stress induced by repeated program and erase operations, which degrade the insulating property of the oxide.
電荷の漏れを引き起こしているのは、トンネル酸化膜への避けられない電荷のトラップ。摩耗の原因とまったく同じものである。
捕まった電荷は、そこにあるだけで悪さをする。
Trap-assisted tunneling (TAT) occurs because the trapped charge forms an electrical tunnel, which exacerbates the weak tunneling current ... As a result of this TAT effect, the electrons present in the floating gate (FG) leak away much faster through the intrinsic electric field. Hence, the threshold voltage of the flash cell decreases over time.
トラップされた電荷が電子の抜け道を作ってしまう。閉じ込めていたはずの電子が速く漏れ出し、閾値電圧が時間とともに下がっていく。
そして決定的なのが、次の一文である。
As the flash cell wears out with increasing P/E cycles, the amount of trapped charge also increases, and so does the TAT effect.
✅ 使い込んだ SSD ほど、データ保持期間が短くなる。
摩耗とデータ消失は、別々の現象ではなかった。同じ「トンネル酸化膜への電荷トラップ」が、
| いつ効くか | 何が起きるか | 呼び方 |
|---|---|---|
| 書き込みのとき | 電子が入りすぎて分布が右にずれる | 摩耗 |
| 放置している間 | 電子が漏れて閾値電圧が下がる | データ保持の劣化 |
という2つの顔を見せているだけである。
600TBW の「600」から降りてきて、行き着く先は同じ一点だった。
まとめ
- 870 EVO の TBW は容量に完全比例していて、どの容量でも「ドライブ全体を約600回上書き」に相当する
- TBW は保証の範囲を区切る数字であって、寿命の予言ではない
- JEDEC が示した計算例では
TBW < (C × P/Eサイクル上限) / (2 × WAF)。分母の2はウェアレベリングの偏りに対する安全率 - P/E サイクル上限とは「セルが壊れる回数」ではなく「ECC が訂正しきれなくなるまでの回数」
- 根本原因はトンネル酸化膜への電荷トラップ。1x-nm 世代の MLC ではセル内の電子は約100個しかなく、数個の増減が値を変える
- 多値化(SLC → QLC)は電圧窓を細かく分割するので、同じ劣化でも先に読めなくなる。ただし同じプロセスノードで比べた場合の話
- ❌「TLC は 3,000 回」は 1x-nm 平面 MLC の数字。3D NAND では微細化が巻き戻り、耐久性は1桁以上向上している
- データ保持期間は摩耗と別物ではなく、同じ電荷トラップの裏返し。使い込むほど保持期間は短くなる
👉 この記事では書き込み増幅(WAF)の中身、ガベージコレクション、TRIM には踏み込んでいない。「膜が壊れる」話と「コントローラの都合」の話は軸が違うので、別記事にする。
参考
- JEDEC SSD Specifications Explained(Alvin Cox, Seagate / Chairman JC-64.8)
- Samsung V-NAND SSD 870 EVO Data Sheet, Revision 1.1
- Samsung Semiconductor Glossary: 3D V-NAND Flash Memory
- Y. Cai, S. Ghose, E. F. Haratsch, Y. Luo, O. Mutlu, "Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives," Proceedings of the IEEE, vol. 105, no. 9, 2017