arrow-up icon

【特別寄稿】フラッシュストレージの性能を左右するコントローラとソフトウェア - 第6回

次世代SSD実現のカギとなるデータ配置技術

執筆: 福田 昭 公開: 2025年5月20日
この記事の執筆者
福田 昭

半導体に特化した専門ジャーナリストとして、半導体技術の進化や市場のトレンドなど焦点を当てた深い洞察を業界内外の読者に提供しています。次世代メモリ技術、次世代CMOS技術、企業・市場分析など、最新の業界トピックスに関する独自の分析は、専門家や興味を持つ読者にとって重要な情報源として高く評価されています。

次世代SSD実現のカギとなるデータ配置技術

SSDが抱える最大の弱点「書き込み増幅(WA)」を極限まで改善

本連載の第1回では「フラッシュストレージ」が、フラッシュメモリを記憶媒体とするストレージ(データを保存しておくモジュールや装置など)を意味することと、代表的なフラッシュストレージ製品の事例をご説明しました。

第2回では、フラッシュメモリにはNANDタイプとNORタイプがあり、ストレージに使われるのはNANDタイプのフラッシュメモリ(「NANDフラッシュメモリ」あるいは「NANDフラッシュ」とも呼ばれる)であること、代表的なフラッシュストレージであるSSD(Solid State Drive)の内部ブロックとSSDコントローラの役割について概略を述べました。

SSD(Solid State Drive)の基本構成とSSDコントローラの主な役割
SSD(Solid State Drive)の基本構成とSSDコントローラの主な役割

第3回では、もう1つの代表的なストレージであるハードディスク装置(HDD:Hard Disk Drive)と、SSDの共通点と相違点を簡単に述べるとともに、SSDが特有の複雑さ(弱点)を抱えている原因と対処手法を簡単に記述しました。

第4回では、SSDコントローラが扱わなければならない特有の記憶技術「多値記憶」の仕組みを述べてから、多値記憶を採用したNANDフラッシュメモリをSSDでコントローラがどのように扱っているかを解説しました。

第5回では、SSDコントローラの市場規模を述べるとともに、SSDコントローラ大手ベンダーによる代表的な製品の事例を紹介しました。

最終回(第6回)となる今回は、SSDの書き換え寿命を大きく伸ばすとともに記憶容量を拡大する「データ配置技術(Data Placement Technology)」について述べます。データ配置技術には大別すると4つの技術があり、それぞれ異なる年代にストレージ業界で話題となってきました。

ページ単位の読み書き、ブロック単位の消去による弊害

データ配置技術を採用する最大の目的は、SSDが抱える最大の弱点「書き込み増幅(ライトアンプリフィケーション:WA)」を極限まで改善することにあります。WAについては第3回で説明しています。繰り返しになりますが、簡単に述べていきます。

SSDの記憶媒体であるNANDフラッシュメモリは原理的に、データの上書き(すでに存在しているデータを別のデータに変更すること)ができません。このため同じ論理アドレスのデータを変更する書き込み(NANDフラッシュメモリでは「プログラム」とも呼びます)でも、物理的には消去済みのブロックにデータを書き込む動作となります。

さらに、消去はブロック単位ですが、書き込みと読み出しはページ単位という違いがあります。最近のNANDフラッシュメモリでは1ページは16Kバイトあるいは64Kバイト、1ブロックが256ページ以上であることがふつうです。言い換えると、ページとブロックの間には256倍以上のデータ量の違いがあります。

再びデータの書き換え動作に戻りましょう。最も簡素なデータ書き換えでは始めに、物理アドレスの相当ブロックに存在する有効なデータをすべて読み出し、バッファ(DRAMあるいはSRAM)に転送します。バッファでは読み出したデータの一部だけ(書き換えたい部分だけ)を変更します。それから別の消去済みブロックにバッファの書き換え済みデータを書き込みます。最後に古いデータが存在していたブロックを消去します。

NANDフラッシュのメモリセルを劣化させるのは、書き込み(プログラム)動作と消去(イレース)動作です。読み出し(リード)動作による劣化は無視できます。1回のデータ書き換えで劣化要因となる動作は書き込みが1回と消去が1回です。合計すると劣化要因となる操作は2回であり、単純にはWA値(WAF)は2以上(実際にはメタデータの変更があるので必ず2を超える)となります。NANDフラッシュメモリの書き換え寿命は、理論的にはWA値(WAF)の逆数(例えばWA値が3であれば3分の1)となるので、WA値の上昇はきわめて重大です。

書き換えるデータのサイズがブロックサイズと同じということはまずありません。通常はブロックサイズよりも少ないデータ量となります。具体的には書き換えによってブロックの一部(数ページ~数十ページ)だけが書き込まれ、残りは空き領域となります。例えばブロックが256ページ、書き換えデータが16ページ(16K✕16=256Kバイト)だとすると、ブロックに占める書き換えデータの割合は6.25%に過ぎません。

上記に示したような単純な書き換え手順ですと、実際のデータが存在する領域よりもはるかに大きな記憶領域(ブロック)が消費されてしまいます。そこで複数のブロックに分散しているデータを1つのブロックにまとめる作業が必要となり、WA値(WAF)がさらに上昇します。

ガベージコレクション(GC)による性能の低下

複数のブロックに分散しているデータを1つのブロックにまとめる技術が「ガベージコレクション(GC)」です。最近のSSDはGCを標準的に備えています。GCでは、消去済みブロック(仮に「ブロックZ」と呼びます)のページにデータを順次、書き込んでいきます。書き換え動作のときは同じブロック(ブロックZ)の空きページにデータを書き込み、古いデータの存在しているページを無効化します(データそのものは残っています)。

ブロックZのページがすべてデータによって埋まったとき、すなわち書き込めるページがなくなったときは、有効なページ(無効化していないページ)だけを読み出し、別の消去済みブロック(仮に「ブロックY」と呼びます)に書き込みます。書き込みが完了したら、元のデータが存在していた「ブロックZ」の全データを消去します(厳密にはこの動作を「ガベージコレクション(GC)」と呼びます)。

GCを利用すると、始めに述べた単純な書き込みアルゴリズムに比べ、データの書き換えに伴う消去動作と書き込み(プログラム)動作の回数を減らせます。それでもGCが頻繁に発生すると、WA値は急速に増加します。SSDの利用領域が拡大し、空き領域の割合が減るとGCの頻度は増えていく傾向にあります。

また、GCの動作(ブロックの消去)中はSSDの読み書き速度が極端に低下するという弱点があります。そこでSSDが待機状態のときにGCを実行する「バックグラウンド・ガベージコレクション」と呼ぶ機能をSSDコントローラが備えているのが普通です。またハイエンドのSSDコントローラではGCの実行中でもデータを書き込める製品があります。

データ配置技術の利点と弱点

データ配置技術は、粗く表現すると書き込むデータを何らかの形で分類し、分類した項目に応じて同じ種類のデータを同じブロックまたはページに書き込む技術です。データを効率よく配置することでWA値(WAF)を下げるとともに、GCの頻度を減らすことが期待できます。

WA値の低下はSSDの寿命を延ばし、GC頻度の低下は読み書きの性能を高く維持することに寄与します。さらに、予備的な記憶容量(データの再配置や冗長ブロックなどに活用する容量)をあらかじめ用意しておく「オーバープロビジョニング(OP)」の必要性(記憶容量)が低下します。このことは、実質的にはユーザーが使える記憶容量の増加を意味します。

データ配置技術の弱点は、ユーザーごとにSSDの利用傾向(ユースケース)が異なるのに対し、1つのデータ配置技術ではすべてのユースケースに対応しづらいことです。すべてのユースケースでWA値を1にしようとすると、データ配置技術が複雑かつホスト側の負担が大きくなってしまいます。

従来のSSDにおけるSSDコントローラの内部ブロック(概略)。SSDが備える機能のほとんどはSSDコントローラ(デバイス側)によって実行されてきた。ホスト側はSSDの制御には、ほぼ関与しない。
従来のSSDにおけるSSDコントローラの内部ブロック(概略)。SSDが備える機能のほとんどはSSDコントローラ(デバイス側)によって実行されてきた。ホスト側はSSDの制御には、ほぼ関与しない。

代表的な4種類のデータ配置技術

データ配置技術について論じる前に、呼称について定義しておきます。データ配置技術を採用していない従来のNVMe(Non-Volatile Memory Express)インタフェース準拠SSDを本稿では「CNS(Conventional NVMe SSD)」と呼ぶことにします。また「従来のSSD」と表記したときは、データ配置技術を導入していないNVMe以外のSSDも含めます。

データ配置技術の設計指針と、これまでに開発された主なデータ配置技術
データ配置技術の設計指針と、これまでに開発された主なデータ配置技術

データ配置技術の開発で重要なのはまず、ホスト側とデバイス側(SSDコントローラ側)の役割分担です。データ配置技術ではしばしば、ホスト側の負担(役割)が増大します。ホスト側ソフトウェアスタックの変更を伴うこともあります。また留意すべきなのは、従来SSDとの後方互換性です。互換性のないデータ配置技術も存在します。

2010年代から2020年代にかけて、4つの主要なデータ配置技術が登場しました。「オープンチャンネル(Open Channel)」、「ストリーム/マルチストリーム(Streams/Multi-stream)」、「ゾーンネームスペース(ZNS:Zoned Namespace)」、「フレキシブルデータ配置(FDP:Flexible Data Placement)」、です。以下は、これらの技術について簡単に説明していきます。

ホストがSSDコントローラの機能を取り込む「オープンチャンネルSSD」

「オープンチャンネル(OC)」はSSDコントローラの機能のほぼすべてをホスト側で実行するという、大胆な発想に基づいています。NANDフラッシュメモリに対する書き込み、読み出し、消去の動作はすべてホストが担います。オープンチャンネル対応SSD(OC SSD)へのアクセスは物理アドレス経由となります。

従来SSDでSSDコントローラが実行していた機能のほとんどは、ホスト側がソフトウェアによって実行します。したがってOC SSDでは、SSD本体にはNANDフラッシュメモリのほかにはNANDインタフェースや電源管理などのハードウェア(半導体ICチップ)といったわずかな数量の部品だけが搭載されることとなります。

「オープンチャンネル(Open Channel)」におけるホストとデバイス(SSDコントローラ)の役割分担(概念図)。SSDコントローラが実行していた様々な機能のほとんどをホスト側でソフトウェア処理する
「オープンチャンネル(Open Channel)」におけるホストとデバイス(SSDコントローラ)の役割分担(概念図)。
SSDコントローラが実行していた様々な機能のほとんどをホスト側でソフトウェア処理する

OC SSD技術で重要なことは、SSDの記憶領域を物理レベル(NANDフラッシュメモリのダイレベル)でほぼ完全に管理する点です。このことによって個々のアプリケーションに対応するデータを同じブロック(消去済みブロック)の同じページに書き込みます。ページが満杯になったときは同じブロックの隣接するページにデータを書き込んで行きます。このようなきめ細かな管理により、OC SSDでは書き込み増幅値(WA値)を原理的には「1」(最小値)に下げられます。

OC SSDではSSDコントローラの機能をホストのソフトウェア処理(あるいはホスト側に搭載したコントローラとファームウェアの処理)で実現するため、ホスト側の処理が複雑になります。またアプリケーションの開発者はOC SSDに対応したプログラムを書く必要があります。

そしてOC SSDには下位互換性がありません。従来SSDに格納されていたアプリケーションをOC SSCに移行するためには、アプリケーションの修正が求められます。

「オープンチャンネルSSD」の衰退

「オープンチャンネルSSD」の提案と研究は、SSDが記憶媒体としてプレーナー型のNANDフラッシュメモリ(2D NANDフラッシュメモリ)を搭載していた時代(2010年代始め)に始まりました。NANDフラッシュメモリの劣化が問題になるような書き換え頻度の高いSSDはハイエンド品であり、SLC(1ビット/セル)タイプのNANDフラッシュメモリが主流でした。

SLCタイプのプレーナー型NANDフラッシュメモリはベンダー間で特性の違いがあまり存在しません。このことはOC SSDの普及にとって有利に働きました。特定のユースケースでは一部、OC SSDが試されています。

ところがSSDの記憶媒体が3D(3次元) NANDフラッシュメモリに置き換わると、OC SSDは使われなくなります。3D NANDフラッシュはTLC(3ビット/セル)タイプが主流であり、3ビット/セルの書き込みアルゴリズムはベンダーによって違います。さらには同じベンダーでも3D NANDの技術世代によって書き込みアルゴリズムが異なるという事態が生じました。

3D NANDフラッシュメモリのベンダーによる違いと世代による違いにホスト側で個別に対応しようとすることは、非常に大きな負担となります。OC SSDは実現が難しくなり、衰退していきました。

従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。中央が「Open Channel技術」
従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。中央が「Open Channel技術」

書き換え頻度でデータを区分けする「Streams/Multi-stream」

「ストリーム/マルチストリーム(Streams/Multi-stream)」技術(以降は「ストリーム」と表記)はオープンチャンネルと同じ頃、2010年代始めに提案され、一部のSSDに採用されました。

「ストリーム」技術の考え方はかなり単純です。データを書き換え頻度の違いで2段階~3段階に分類し、データを書き込むブロック(消去済みブロック)を同じ分類(書き換え頻度が同じくらい)のデータに限定したのです。

例えば書き換え頻度が非常に高いデータ(H)と書き換え頻度が中くらいのデータ(W)、書き換えがほとんど生じないデータ(C)に分けます。HはHot、WはWarm、CはColdの略記です。この略記(タグ)を「ヒント(hint)」と呼びます。

ストレージの世界ではデータの書き換え頻度をしばしば、温度の高低で表現します。書き換えがひんぱんに発生するデータは「熱いくらいに高い温度(Hot data)」、書き換えがそれなりに生じるデータは「暖かい温度(Warm data)」、書き換えがごくまれにしか生じないデータは「冷たい温度(Cold data)」と呼ばれます。

「ストリーム」に対応したホストとSSDでは、ホストがデータとともに「ヒント」をデバイスに送ります。この例ですと3通りのヒントがありますので、2ビットをヒントに割り当てます。ヒントを受け取ったデバイス(SSDコントローラ)は、同じヒント(例えば「H」)のブロックにデータを書き込みます。

「ストリーム」技術の優れているところは、ホスト側の負担が最小限度に抑えられていることと、従来のSSDと下位互換性を有することにあります。

従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。左から2番目が「ストリーム/マルチストリーム(Streams/Multi-stream)」技術
従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。
左から2番目が「ストリーム/マルチストリーム(Streams/Multi-stream)」技術

「ストリーム」技術の弱点は「データの温度」が推定であり、実績ではないことです。「C」のヒントをつけたデータが実際に「C」であるとは限りません。1つのブロックには複数のアプリケーションによるデータが書き込まれますので、「C」のブロックに「H」のデータが書き込まれると、WA値を下げる効果が削がれてしまいます。それでも「ストリーム」はその簡素さから、一定の普及を見せました。

しかし「ストリーム」に最適な応用事例はそれほど多くはなく、長期的には衰退しています。

論理空間をゾーンに分割して連続的に書き込む「ZNS」

「ゾーンネームスペース(ZNS:Zoned Namespace)」技術は、ストレージの論理ブロックアドレス(LBA)空間を「ゾーン(Zone)」と呼ぶ多数の領域に分割し、ゾーン内ではシーケンシャル(アドレスが連続する)書き込みだけを認めることによって書き込み増幅(WA)を原理的には最小値である「1」にする技術です。

「ゾーンネームスペース(ZNS:Zoned Namespace)」におけるホストとデバイス(SSDコントローラ)の役割分担(概念図)。SSDコントローラが実行していた様々な機能の中でストレージに関する部分をホストが負担し、メディア(NANDフラッシュメモリ)に関する部分をデバイスが負担する。「オープンチャンネル」に比べるとホスト側の負担が少ない
「ゾーンネームスペース(ZNS:Zoned Namespace)」におけるホストとデバイス(SSDコントローラ)の役割分担(概念図)。
SSDコントローラが実行していた様々な機能の中でストレージに関する部分をホストが負担し、メディア(NANDフラッシュメモリ)に関する部分をデバイスが負担する。「オープンチャンネル」に比べるとホスト側の負担が少ない

ZNS技術を利用するためにはホスト側とデバイス側(SSDコントローラ側)が両方とも、ZNSに対応している必要があります。ホスト側ではゾーンへの書き込みを管理し、論理物理アドレス変換(L2P変換)を実行し、ガベージコレクション(GC)を管理・実行します。ホスト側のソフトウェアスタックはZNS用に修正する必要があります。ホスト側とデバイス側でやり取りするアドレスは、物理アドレスとなります。

デバイス側(SSDコントローラ側)では誤り訂正(ECC)やウェアレベリングなどのNANDフラッシュメモリに関わる操作を分担します。ZNS対応のSSDは、従来SSDとの互換性がありません。ZNSでは従来SSDの「消去ブロック」という概念を持たないからです。

従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。右から2番目が「ゾーンネームスペース(ZNS:Zoned Namespace)」技術
従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。
右から2番目が「ゾーンネームスペース(ZNS:Zoned Namespace)」技術

ZNS技術における最も簡素なゾーン割り当ては、アプリケーションごとにゾーンを割り当てるというやり方です。この手法ではアプリケーションが書き込むデータ列のアドレスがシーケンシャル(連続したアドレス)であれば、非常に上手く機能し、WA値はほぼ「1」となります。

一方、アプリケーションが書き込むデータ列のアドレスがランダムだと、ゾーン内に同じアプリケーションのデータを連続して書き込むことが難しくなります。対策の一つは、アプリケーション側でランダム書き込みをシーケンシャル書き込みに変更することです。この変更は複雑であり、負担が少なくありません。アプリケーション開発者の協力が得られる可能性は低いと言わざるを得ません。

もう一つの対策はホスト側でランダム書き込みをシーケンシャルに「近い」書き込みに変更することです。この変更も複雑かつ困難だと思われます。アプリケーションごとに書き込みアドレスのパターンが異なるので、アプリケーションごとにホスト側がアドレスを修正することになります。現実的とは言えません。

ホスト負担の軽減と従来SSDとの互換性を重視した「FDP」

最後に「フレキシブルデータ配置(FDP:Flexible Data Placement)」技術を紹介します。FDP技術は従来SSDの「オプション」として考案されました。従来のデータ配置技術、OC SSDとZNS SSD、Stream SSDが2010年代にあまり普及しなかったことから、2つの重要な設計指針をもってFDP技術は2020年代前半に開発されました。

設計指針の1つは、ホスト側の負担をできる限り軽くすることです。言い換えると、デバイス側で負担できるものは「すべて」デバイス側が引き受ける、という考え方で開発しています。

もう1つの設計指針は、従来SSDとの互換性を維持することです。従来SSDのアーキテクチャである「ブロック」をFDP技術は流用しており、この結果、FDP技術は従来のSSDにとって「オプション」の扱いとなりました。

例えばZNS技術ではホスト側とデバイス側が強く紐づけられており、ZNS対応のホストは従来のデバイス(従来のSSD)を扱えません。ZNS技術を導入したストレージシステムでは、従来アーキテクチャのSSDは無駄になってしまいます。

FDP技術では、ホスト側とデバイス側の両方がFDP技術に対応しているときはFDP技術を活用できるとともに、ホスト側がFDP対応でデバイス側がFDP「非対応」のときは従来のSSDとしてホストがストレージを利用できます。逆も同じで、デバイス側がFDP対応でホスト側がFDP「非対応」のときもホストはデバイス側を従来のSSDと同様に扱います。したがって従来アーキテクチャ(ブロック消去、ページ書き込みのアーキテクチャ)のSSDはFDP技術を採用しても無駄にはなりません。FDP技術の恩恵(WA値の低減など)は受けられませんが、資産としてのストレージは残ります。

「フレキシブルデータ配置(FDP:Flexible Data Placement)」技術におけるホストとデバイス(SSDコントローラ)、NANDフラッシュメモリの関係(概念図)。実装した機能を一見すると、従来のSSDと変わらない
「フレキシブルデータ配置(FDP:Flexible Data Placement)」技術におけるホストとデバイス(SSDコントローラ)、NANDフラッシュメモリの関係(概念図)。実装した機能を一見すると、従来のSSDと変わらない
従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。最も右に位置するのが「フレキシブルデータ配置(FDP:Flexible Data Placement)」技術。これも従来のSSD(左端)と変わらないように見える
従来SSDと代表的なデータ配置技術における、ホスト側とデバイス側の役割分担。最も右に位置するのが「フレキシブルデータ配置(FDP:Flexible Data Placement)」技術。これも従来のSSD(左端)と変わらないように見える

複数のブロックをまとめたユニットに、異なる属性のデータを割り当てる

FDP技術では、NANDフラッシュメモリに関する物理情報の一部をホストが把握することで、データの温度(Hot、Warm、Coldなど)やアプリケーションなどの属性に応じてデータを書き込むダイ(NANDシリコンダイ)やブロック(ダイ内部のブロック)などを指定可能になります。このため、デバイス側のファームウェアとホスト側のソフトウェアスタックは一部、修正する必要があります。

FDP技術ではデータの温度の違い、あるいはアプリケーションの違いによって書き込むブロックを集約できます。この結果、ガベージコレクション(GC)の頻度が減り、WA値が1に近づきます。

ガベージコレクションによるFDPの効果(例)。3つのアプリケーション(1~3)によるデータを3つのブロック(6ページ/ブロック)に書き込むことを想定した。従来アーキテクチャ(左側)では3つのブロックに分散してアプリケーションのデータが書き込まれる。FDPでは1つのブロックに対して1つのアプリケーションが割り当てられる(右側)。次に「アプリケーション1」のデータを無効化(解放)する。従来のSSDでは残ったアプリケーション(2と3)のデータが3つのブロックに分散しているので、各ブロックに対してガベージコレクション(GC)がいずれ必要となる(WA値が上昇する)。FDPでは1つのブロックのデータだけがまとまって解放されるので、解放されたブロック全体を消去するだけで再び、書き込みに使えるようになる。残りのブロックに対するGCは不要である(WA値は1にとどまる)
ガベージコレクションによるFDPの効果(例)。
3つのアプリケーション(1~3)によるデータを3つのブロック(6ページ/ブロック)に書き込むことを想定した。従来アーキテクチャ(左側)では3つのブロックに分散してアプリケーションのデータが書き込まれる。FDPでは1つのブロックに対して1つのアプリケーションが割り当てられる(右側)。
次に「アプリケーション1」のデータを無効化(解放)する。従来のSSDでは残ったアプリケーション(2と3)のデータが3つのブロックに分散しているので、各ブロックに対してガベージコレクション(GC)がいずれ必要となる(WA値が上昇する)。
FDPでは1つのブロックのデータだけがまとまって解放されるので、解放されたブロック全体を消去するだけで再び、書き込みに使えるようになる。残りのブロックに対するGCは不要である(WA値は1にとどまる)

FDPの仕組みをもう少し詳しく見ていきましょう。従来のSSDには様々なフォームファクタ(標準化された外形寸法)があり、1個~16個と幅広い数でNANDフラッシュメモリ(BGAパッケージ)を載せています。1個のNANDフラッシュBGAパッケージは通常8枚または16枚の3D NANDフラッシュダイを内蔵しています。

例えば、16枚のフラッシュダイを内蔵したBGAパッケージを2個搭載した小さなSSDを仮定します。1枚のダイが記憶する容量は1Tbit(128Gバイト)、1ページは16Kバイト、1ブロックは5632ページ(88MB)とします。1枚のダイには1492個のブロックが存在します。そしてSSDは32枚のダイを搭載していますので、4万7444個のブロックで構成されていることになります(実際には冗長ブロックがあるのでもっと多い)。

ここでダイのブロックに「0」から「1491」までの番号(ID)を付与します。番号が「0」のブロックだけを集めたブロック群を「スーパーブロック(Superblock)」と呼びます。「0」のスーパーブロックは32個のブロックで構成されていることになります。1個のスーパーブロックの記憶容量は2.75Gバイトです。

SSD全体では1492個のスーパーブロックが並んでいます。1個のブロックはダイの番号(0~31)とブロックの番号(0~1491)によって指定できます。

従来のSSDでホストが把握するのは論理ブロックアドレス(LBA)だけです。これに対してFDPではLBAとともに、スーパーブロックといったブロック群の情報(例えばブロックやスーパーブロックの境界となる論理アドレス)をSSDがホストに付与します。こうするとホスト側では、温度の異なるデータやアプリケーションごとのデータなどを特定のスーパーブロック(または複数のブロックから成るグループ)に割り当てられるようになります。なお厳密には、複数ブロックで構成されるグループを「リクレイムユニット(RU:Reclaim Unit)」とFDPでは呼んでいます。

FDPのもう1つの機能は、1個のRUに対して複数箇所の書き込み開始アドレスを指定できることにあります(従来のSSDでは1個のアドレス指定のみ)。この機能を利用してホスト側が数多くの書き込み開始アドレスを指定すると、精密なデータ配置を実現できます。この機能を実現するユニットをFDPでは「リクレイムユニットハンドル(RUH:Reclaim Unit Handle)」と呼んでいます。

RUの記憶容量(ブロック数)とRUHの数は、FDP対応ストレージの制御性と性能を左右します。RUの記憶容量が大きく(ブロック数が多く)、RUHの数が少ないと、ストレージの性能(読み書きの速度)は高く維持されます。ただし、データ配置の粒度(最小単位)は大きくなります。一方、RUの記憶容量が小さく(ブロック数が少なく)、RUHの数が多いとデータ配置の粒度(最小単位)が細かくなり、制御性は向上します。ただし、ストレージの性能は低下します。

フィックスターズのFPGAシステム開発

フィックスターズでは、単にFPGAの性能に注目するだけでなく、システム全体の効率性を考慮したFPGAシステム開発サービスを提供しています。

私たちの経験豊かなエンジニアが、お客様のアイデアに基づいてヒアリングを行い、FPGAに限らずシステム全体に最適な解決策を提案します。詳細についてのご興味があれば、お気軽にお問い合わせください。

お問い合わせはこちらから

執筆者について

福田 昭

半導体に特化した専門ジャーナリストとして、半導体技術の進化や市場のトレンドなど焦点を当てた深い洞察を業界内外の読者に提供しています。次世代メモリ技術、次世代CMOS技術、企業・市場分析など、最新の業界トピックスに関する独自の分析は、専門家や興味を持つ読者にとって重要な情報源として高く評価されています。

【特別寄稿】フラッシュストレージの性能を左右するコントローラとソフトウェア 記事一覧

フィックスターズのフラッシュメモリ向けファームウェア開発

詳しくはこちら