この記事で紹介している製品
おことわり
この記事は、2022年12月にQiitaに投稿した記事を加筆修正したものです。
また、この記事のオリジナルは日本語で書かれています。記事が日本語以外の言語で表示されている場合、それは機械翻訳の結果です。当社は機械翻訳の精度に責任を負いません。
はじめに
NANDフラッシュメモリを使用したSSDについて「オーバープロビジョニング(Over Provisioning: OP)」や「OP領域」という言葉を聞いたことがある方が多いと思います。
また、ハードディスクドライブ(HDD)の使用経験がある方は「代替処理」という言葉も聞いたことがあるかもしれません。この代替処理で使用する領域(代替としての交換用に確保された予備の領域)を「代替領域」と呼ぶことがあります。
NANDフラッシュメモリを使用したSSDには、このOP領域と代替領域の両方が存在します。
SSDのOP領域と代替領域についてどちらも「ユーザ領域の外側」というイメージを持たれている方が多いと思いますが、この2つはその使いかたが大きく異なります。
OP領域は「通常動作中に使われる領域」であり、代替領域は「万が一の時に使われる領域」です。
そこで2回の記事で、NANDフラッシュメモリを使用したSSDにおけるOP領域と代替領域について説明します。今回はOP領域です。
ただ「OP領域が大きいとなぜ性能が良くなるのか」などを説明すると長くなりますので、今回は「そもそもOP領域はどこからやってきたものなのか」を説明します。
なお、この記事では以降「NANDフラッシュメモリを使用したSSD」のことを単に「SSD」と記載します。
まとめ
- OP領域とはSSDのNANDフラッシュメモリの搭載容量とユーザデータ領域の差の一部
- OP領域はSSDがドライブとしての機能を果たすために必要不可欠なもの
- OP領域の大小はSSDの寿命含む性能を左右するため製品選択時には総合的な判断が必要
OP(OP領域)の定義
オーバープロビジョニングについて調べると、以下のような説明が見つかります。
オーバープロビジョニング(OP)は、SSD容量の一部をキャッシュとして割り当てるファームウェア最適化テクノロジーです。
OPによってSSDのパフォーマンスが向上するだけでなく、ガベージコレクション(GC)がより効率的になり、データ転送速度の維持とSSDのデータ書き換え寿命の向上に繋がります。
「オーバープロビジョニング (Over-Provisioning) – トランセンド」より引用
また、以下のような説明も見つかります。
SSDの一定領域を余剰領域として確保する「オーバープロビジョニング」は、SSDを制御する「SSDコントローラー」専用に、SSDの領域の一部を確保する。この領域(以下、オーバープロビジョニング領域)はOSからは全く見えない。平均的なSSDの場合、オーバープロビジョニング領域の容量は、通常であれば全容量の約7%だ。
(中略)
実はオーバープロビジョニングの主目的は、書き込み操作のパフォーマンス向上にこそある。
(中略)
ドライブの寿命を延ばすための手段として、オーバープロビジョニングを生かそうとするベンダーもある。
「SSDの「オーバープロビジョニング」とは? 仕組みとメリットを解説 – TechTargetジャパン」より引用
つまりOPは「SSDの全体性能(寿命含む)向上目的で使用する領域」と言えます。
ただ「オーバープロビジョニング」そのものには上記のような意味はなく、上記の内容は主にOP領域の大きさを調整することによる効果を記載しています。そもそもOP領域がゼロではSSDとしての機能を果たせないということが重要です。
話を元に戻して、「プロビジョニング」の意味を検索すると「準備」「提供」「設備」などの意味が見つかります。これらの単語を使用して「オーバープロビジョニング」を表現するならば「余剰設備」が一番適していると思います。
というのは、 SSDにおける「オーバープロビジョニング」は「ユーザ領域容量に対する余剰容量(=設備)」 だからです。
複数存在するSSDの「容量」
OP領域の正体を説明する前に、OP領域のサイズについて説明します。
SSDの「容量」と聞くと、カタログに記載されている「240 GB」や「960 GB」などの値がまず思い浮かぶと思います。この「カタログに記載された容量」のことは「表記容量(Advertised Capacity)」などと呼ばれます。
これに対して、SSDには「NANDフラッシュメモリの搭載量」という「容量」もあります。これはカタログには通常記載されません。ただNANDフラッシュメモリチップの容量は通常2のべき乗で表記されますので、TLC NANDフラッシュメモリをそのまま使用したケースを仮定すると、表記容量240 GBのSSDであれば256 GiB分、表記容量960 GBのSSDであれば1,024 GiB分搭載されていると考えるのが妥当です。
この「表記容量」から計算される「ユーザ領域サイズ」と、「NAND搭載容量」と「ユーザ領域サイズ」の差と割合の例を表1に示します。
A:表記容量 | B:ユーザ領域容量(Windows表記) | C:NAND搭載容量 | D:余剰率((C-B)÷B) |
---|---|---|---|
480 GB | 約447.13 GB | 512 GiB | 約14.5% |
512 GB | 約476.94 GB | 512 GiB | 約7.3% |
960 GB | 約894.25 GB | 1,024 GiB | 約14.5% |
1024 GB | 約953.87 GB | 1,024 GiB | 約7.3% |
表1のAとBを見ると、たとえ表記容量(A)が512 GBでもユーザ領域サイズ(B)は512 GBより小さくなります。
Bの数値はWindowsでよく見る容量かと思います。Windowsは、A列に示したGB単位の表記容量を100,000,000倍してバイト単位にしたものを1,024の3乗で割り算して「ユーザ領域容量」として表示しています。
実際、私が使用している512 GBのSSDもWindowsの「ディスクの管理」ではその容量が図1のように476.92 GBと表示されます。
このWindowsの容量計算方法は、次のようにしても確かめることができます。
JEDECの規格[1]では、表記容量が8,000 GB未満でかつフォーマットが1セクタ512バイトの場合、ドライブの総セクタ数を求める計算式を下記のように定義しています。
User-addressable logical block count = 21168 + (1953504 x SSD Capacity in Gbytes)
この計算式中の”SSD Capacity in Gbytes”が「GB単位の表記容量」で、”User-addressable logical block count”が「ドライブの総セクタ数」です。
Windowsが図2で表示している値は、この計算結果(左辺)に512バイトを掛け算してバイト単位の総容量を求め、さらに1,024の3乗で割り算した値です。
この「NAND搭載容量」と「ユーザ領域容量」の差を「ユーザ領域容量」で割り算したものが表1の「余剰率(E)」です。この差(=余剰)の中にOP領域が含まれています。
余剰領域の用途
SSDは、この「NAND搭載容量」と「ユーザ領域サイズ」の差分である余剰領域をドライブの内部管理向けに使用します(図2)。
ドライブの内部管理には、ファームウェアの管理や、統計情報を含むドライブ情報の管理、そしてドライブ内のどこにどのセクタの最新データが書き込まれているかを記した情報の管理が含まれます。代替の管理用領域つまり「代替領域」もここに含まれます。
そして、この「NAND搭載容量」と「ユーザ領域容量」の差からさらにドライブ内部管理向けに確保する容量を差し引いた分が純粋な「固定OP容量」です。
このように、SSDが搭載するNANDフラッシュメモリ容量よりもユーザデータ領域容量のほうが小さいために「ユーザ領域容量に対する余剰容量(=設備)」に見える領域が存在し、その余剰容量のうちSSDがドライブの管理に使用する容量の分を差し引いたものを固定OP容量と呼びます。
この固定OP容量がないと、ユーザデータ領域容量全体に有効データが書き込まれた状態で新たな書き込み要求を受領した際にGCが実行できずにデータを書き込む場所を確保できず、ドライブとしての機能を果たせません。イメージとしては、倉庫番ゲームにおいて倉庫満杯に荷物が格納された状態で一番奥に格納された荷物を取り出そうとしても、倉庫から荷物を一時的に取り出しておく領域(=固定OP領域)がないために処理ができない「詰んだ」状態、が近いです。
固定OP容量の大きさは百分率(%)で示されることが多いです。正確には図2のようにドライブ管理向けサイズを差し引くべきですが、ドライブ管理向けサイズはメーカーや製品により大きく異なるため、表1のD列のように単純に割り算して求めた値を使うことも多いです。
この 「ドライブ内部処理向けサイズ」つまり余剰領域の容量を小さく抑えつつも可能な限り固定OP容量は大きく確保し、同じNAND搭載容量でより大きいユーザデータ容量を提供してかつ記録されているユーザデータサイズが大きくても性能(寿命)を維持することが、SSDメーカーの腕の見せ所 です。
また、同じ容量のNANDフラッシュメモリを搭載していても、表記容量が小さいSSDのほうが固定OP容量は大きいので高性能・長寿命を実現しやすい こともわかります。
なお、ユーザデータ領域容量より少ない容量しか有効データが記録されていない場合、ドライブは「使われていないユーザデータ領域容量」を性能向上や長寿命化に活用します。
おわりに
今回の記事では、SSDについて一度は耳にしたことがあると思われる「オーバープロビジョニング(OP)」について、その領域がどこから来ている物なのかを説明しました。
HDDの時代からストレージドライブの記憶領域の容量(SSDで言えばNANDフラッシュメモリの搭載容量)とユーザがアクセス可能な容量(ユーザ領域サイズ)は異なり、その差はドライブの内部処理用領域として使われています。
SSDの場合、そのドライブ内部処理用領域の一部を「オーバープロビジョニング領域」として使用することでドライブとしての機能を果たし、さらには長寿命化や性能向上そして性能維持を実現しています。
OP領域はユーザには「容量の目減り」に映りますが、性能というユーザの価値に直結したものです。製品の選択時には、性能や寿命などの指標と合わせて総合的に判断していただければと思います。
参考文献
[1] JEDEC, “Solid-State Drive (SSD) Requirements and Endurance Test Method”, JESD218B.02, June 2022
他社商標について
記事中には登録商標マークを明記しておりませんが、記事に掲載されている会社名および製品名等は一般に各社の商標または登録商標です。
記事内容について
この記事の内容は、発表当時の情報です。予告なく変更されることがありますので、あらかじめご了承ください。