Samsung 990 PRO NVMeレビュー

# はじめに
　2022年12月下旬に、漸く日本でもSamsung 990 PRO M.2 PCIe / NVMe SSD<sup>[1]</sup>が発売されました<sup>[2]</sup>。同社のコンシューマ向けPCIe Gen4 SSDとしては980 PROに続く第2世代の製品です。980 PROの発売は2020年10月でしたので、それから丸2年経過したことになります。

　この990 PROはデータアクセス性能や発熱制御（温度上昇抑制）なども注目されています（レビューは[3]や[4]を参照）が、私は仕様発表時から別の点に注目していました。それは**NVMeリビジョン2.0（以降NVMe 2.0と記載）準拠**ということです（図1）。私の知る限り、発売当時日本国内で店頭入手可能なコンシューマ向けSSDでNVMe 2.0に準拠したSSDはこの製品のみでした。

![Samsung 990 PROはNVMe 2.0対応](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/c045eba6-f989-5c19-dfdf-0b46fc18970d.png "Samsung 990 PROはNVMe 2.0対応")
図1：Samsung 990 PROはNVMe 2.0対応（CrystalDiskInfoの結果より。シリアルナンバー部分は加工済み）

　そこで実際に購入して調査しましたので、この記事では**990 PROのNVMe規格サポート状況とそれが示すこと**をまとめます。

　なお、今回はあくまでNVMe仕様の範囲内での調査でありいわゆる「ベンダ独自仕様（コマンドなど）」の存在や内容はわかりません。このため、本ドライブが特定の機能に非対応に見えても実際にはベンダ独自仕様で同等の機能に対応している可能性もあります。さらに、**今後のファームウェア更新によりサポート状況が変化する可能性があります**のでご注意ください。

# まとめ

* Samsung 990 PROはNVMe 1.4以降で追加された新機能群を（ほぼ）サポートしていない
* 特徴的な点は、上書き消去モード非対応、タイムスタンプ対応、高い警告温度設定値、一部コマンド非対応
* Samsung 990 PROは今後のコンシューマ向けNVMe SSDの進む方向を示しているとも言える

# NVMe仕様の状況
　この記事執筆時点では、NVMe基本仕様(Base Specification)の最新リビジョンは2.0cです（2022年10月4日発行）。リビジョン末尾のアルファベット(a, b, c, ...)はエラッタ(Errata)修正を示しますので、実質最新リビジョンは2.0、ということになります。

　これまでのNVMe基本仕様の発行履歴（経過）を図2に示します。

![NVMe基本仕様(Base Specification)発行履歴](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/8489398f-185f-828f-9515-47791d239c83.png "NVMe基本仕様(Base Specification)発行履歴")
図2：NVMe基本仕様(Base Specification)発行履歴（リビジョン）

　NVMe SSDが準拠する（できる）NVMe仕様のリビジョンは、SSDコントローラの対応可能リビジョンに依存します。現在市場に存在するNVMe SSDは、リビジョン1.2.1から2.0までのいずれかに準拠していると思われます。

　主なリビジョン間での主要な追加コマンドや機能を表1にまとめます。

表1：リビジョン間での主な追加コマンドや機能（[NVM Express Webサイト](https://nvmexpress.org/developers/nvme-specification/)を参照して作成）
| リビジョン | | 主な追加コマンドや追加機能など |
|--:|:--|:--|
| 1.3 | コマンド | Drive Self-test、Sanitize |
|     | 機能 | Host Controlled Thermal Management (HCTM) |
| 1.4 | コマンド | Get LBA Status、Verify |
|     | 機能 | NVM Set、Endurance Group |
| 2.0 | コマンド | Copy |
|     | 機能 | Zoned Namespace (ZNS)コマンドセット、Key-Value (KV)コマンドセット |
|     | 変更 | **仕様分冊化** |

　表1のポイントは、リビジョン1.4以降で追加されたコマンドや機能のほとんどがデータセンターおよびエンタープライズ向けでありコンシューマ向けコマンドや機能はリビジョン1.3の時点でほぼ完成されている、と言えることです。

　このことはNVMe 2.0作成にあたり行われた分冊化に如実に表れています。図3はNVMe 2.0の構造を示したものです。

![NVMe 2.0の構造（ただしNVMe-MI仕様を除く）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/cc165123-fbd4-51ea-f45f-e59f5e969904.png "NVMe 2.0の構造（ただしNVMe-MI仕様を除く）")
図3：NVMe 2.0の構造（ただしNVMe-MI仕様を除く。NVMe仕様書などから作成）

　図3に示したように、NVMe仕様は、リビジョン2.0において、基本仕様とコマンドセット依存仕様（ReadやWriteなどの各種コマンド仕様）とトランスポート層依存仕様（PCIeならPCIeのレジスタに設定する内容など）が分離されました。

　この構造変更により、コンシューマ向けNVMe SSDの仕様への影響を最小限に抑えながらエンタープライズやデータセンター向け仕様の追加・変更を実施可能になりました。そして実際、リビジョン2.0より前から存在したコンシューマ向けPCIe接続のNVMe SSDが必要とする仕様（機能）には特筆すべき新規仕様や機能はありません。

　つまり、少なくとも最近のNVMe仕様の進化はエンタープライズ・データセンター市場を意識して行われていると言えます。

# 990 PROのNVMe仕様サポート状況
　この製品はコンシューマ向け製品ですので、ReadやWriteなどの基本的なコマンドのみサポートし、エンタープライズ・データセンター向けのKey-Valueストア向けコマンドセットやZoned Namespace用コマンドセットはサポートしていません。

　加えてIdentify Controllerデータ（[Github上の取得結果](https://github.com/ken-yossy/nvmetool-win/wiki/Identify-Data-of-a-Samsung-990-PRO-1-TB)参照）を見ると、この製品はNVMe 2.0の新機能にほぼ非対応です。NVMe 1.4以降で追加された機能にすらほぼ非対応です。

　唯一Endurance GroupというNVMe 1.4での追加機能に対応していますが、既存グループは削除できずまた新規グループ作成もできないため実質非対応と同じです。

　その他に目についた仕様は、上書き(Overwrite)消去モードが非サポートであること、タイムスタンプ機能をサポートしていること、警告温度設定値が摂氏82度と摂氏85度と高めであること、そして一部コマンドが非サポートであることです。

## 上書き消去モード非サポート
　「上書き消去(Overwrite)モード」とはSanitizeコマンドの処理モードのひとつです。HDDの時代から用いられてきた「3回上書き方式」に似た処理をドライブ内で実行する機能ですが、Samsungはドライブ単体でのこの機能のサポートを切り捨てたことになります。

　上書き消去モードはHDDでは有効ですが、SSDでは他の方法でもセキュリティ上同等の効果が得られるうえに、上書きモードは実際にデータを書く必要があるため寿命を消費します。このことからSamsungはむしろ上書きモードはないほうが良いと判断した可能性があります。

　他の方法つまりBlock EraseとCryptographic Eraseはサポートしていますので、この2方式のどちらかを使用することになります。処理所要時間や運用条件、消去後のドライブの扱いなどで使用する方式を決める必要があります。

## タイムスタンプ機能サポート
　「タイムスタンプ(Timestamp)機能」はSSDに「時刻」の概念を持たせる機能です。というのも、SSDはReal Time Clock (RTC)を搭載するなどしない限りドライブ単体では「時刻」の概念を持たないからです。このタイムスタンプ機能をサポートするSSDには、ホストから「現在時刻」を教えることができます。

　このタイムスタンプは6バイトの値で、協定世界時(UTC)の1970年1月1日を基準(0)としたミリ秒と定義されています。表現可能な日数は基準時からおよそ3,257,812日（およそ9,151年）であり実用上十分な長さを持ちます。

　タイムスタンプの主な用途はエラーや各種イベントのログに事象の発生時刻情報を埋め込むことです。Samsung自身が内部解析に必要だと判断した、PCメーカーからのサポート要求に応じた、などの理由でサポートされることになり、今回990 PROのような一般流通品にも適用された、と推測されます。

## 警告温度設定値が高い
　警告温度設定値は、Warningが摂氏82度、Criticalが摂氏85度と高めです。ホストが指定可能なサーマルスロットリング温度の上限値も摂氏83度です。ベンチマークを実行したとしても、狭いところに密閉するなどの方法でエアフローを遮らない限りサーマルスロットリングは発生しなさそうです。

　SamsungはカタログやWebサイトにおいてM.2基板の裏面を使用して熱拡散（放出）を効率的に行う技術をアピールしていますので、パッケージング技術や熱拡散技術に独自技術が使用されている可能性が高そうです。この警告温度設定値の高さにSamsungの発熱（温度上昇）制御への自信が表れているように見えます。

## 一部コマンドの非サポート
　この製品は、Write UncorrectableとWrite Zeroesという2つのコマンドをサポートしていません。前者は「あるセクタ(LBA)が不良セクタである」ことをドライブに設定するコマンドで、最近はRAIDシステムやデバイスドライバのデバッグが主たる用途のコマンドです。そして後者は、特定のセクタ(LBA)にゼロを書き込むコマンドです。

　これらのコマンドは、HDDの時代から使われているSCSIコマンド群(SCSI Block Commands: SBC)やSATAで使用するコマンド群(ATA Command Set: ACS)にも存在するコマンドで、これら既存仕様との互換性維持を目的としてNVMe仕様に加えられたと考えられます。

　ドライブ単体でこの機能を実現するよりも、ホスト側での実現や他の方法による実現のほうが全体として低コストであると考えたのか、Samsungはこれらのコマンドのサポートも廃止したようです。

# 990 PROのNVMe仕様への対応が示すこと
　NVMe仕様自体には特にエンタープライズやデータセンター向け機能が続々と追加されていますが、一方でこの990 PROのNVMe仕様への対応状況はサポート機能が縮小しているように見受けられます。

　そもそもコンシューマ（クライアント）向けSSDとしては別の用途向けの機能は不要ですし、機能を省くことができれば開発および検証コストを（絶対量は別にしても）削減できます。

　その代わりに、ユーザにとりメリットがわかりやすい、性能、低消費電力、そして熱管理機能などの差別化要素に注力していこうという意図が感じられます。もちろん、最新NANDフラッシュメモリの採用による低価格化、も忘れることはできません。

　NANDフラッシュメモリだけでなく、DRAM、そしてSSDコントローラに至るまでSSDの主要な部品を全て自社で手掛けるSamsungが示したこの方向性は、同じくコンシューマ向けSSDを手掛けるメーカーに波及する可能性があります。

　ユーザが直接NVMe仕様を意識することはまずありませんし、既にストレージとしての機能を果たすだけの仕様を備えているので、当然の流れとも言えます。

# さいごに
　今回の記事では、2022年12月に日本で発売されたSamsungの最新SSD 990 PROのNVMe仕様サポート状況調査結果をご説明しました。

　NVMe仕様は、コンシューマ（クライアント）向けとしては既に成熟期を迎えたと考えられ、今後各メーカーはストレージに求められる基本機能であるデータの読み書きに必要な最小限の機能サポートを行いつつ、信頼性確保（寿命長期化）や消費電力抑制（温度上昇抑制）などの付加価値で差別化を図るものと考えられます。

　その意味で、このSamsung 990 PROはコンシューマ向けNVMe SSDが今後進む方向を示しているとも言えます。

# References
[1] Samsung Semiconductor、_「[サムスン 990 PRO NVMe M.2 SSD | サムスン半導体日本](https://semiconductor.samsung.com/jp/consumer-storage/internal-ssd/990-pro/)」_、2023年1月12日閲覧
[2] ITGマーケティング、_「[シーケンシャル読み出し最大7,450MB/s シーケンシャル書き込み最大6,900MB/s PCIe® 4.0 x4対応M.2 SSD「Samsung SSD 990 PRO」を12月23日（金）より販売](https://www.itgm.co.jp/news/release/2022/12-9503)」_、2022年12月19日
[3] PC Watch、_「[Samsungが繰り出すPCIe 4.0 SSDの最終形態「990 PRO」](https://pc.watch.impress.co.jp/docs/column/yajiuma-mini-review/1466707.html)」_、2022年12月28日
[4] PC Watch、_「[Samsungの新SSD「990 PRO」自腹購入。Ryzenだとさらに速い！涼しい！](https://pc.watch.impress.co.jp/docs/column/yajiuma-mini-review/1470928.html)」_、2023年1月18日

# ライセンス表記
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />この記事は<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンス</a>の下に提供されています。