2013年7月31日水曜日

動き出した新世代SSD、PCIe SSDとは

Intelの最新CPU「Haswell」を搭載したパソコンの一部で、PCI Expressネイティブ接続のSSDを搭載した製品が登場しました。そこで、今回は、PCI Expressネイティブ接続のSSD(以下、PCIe SSD)について説明したいと思います。

PCIeネイティブ接続のSSDの出荷を開始したのは、概報の通り、SAMSUNG社です。
SAMSUNG社のPCIe SSDは、現在、規格策定が進むSATA Expressの機能を一部先取りしたような製品です。この製品を「SATA Express」対応と呼ぶかどうかは別として、コンセプト的には同じものと考えてもらって差し支えありません。

この製品は、インターフェースに従来のSATAではなく、PCIeを採用したことが最大の特徴です。これによって、PCIe 3.0接続の場合で、最大4GB/secというSATA 6Gを超えるインターフェース速度を実現しています。多くの方がご存知のようにSATA 6Gというインターフェースは、現在のSSDにとってすでに帯域不足でその性能をフルに活かすことができません。SSDは、今後、高速なPCIeをインターフェースに利用することで高速化を図っていくことになります。

なお、PCIe接続のSSDには、今回のSAMSUNGの製品のようにPCIeネイティブ接続の製品とRAIDコントローラーを使った製品があります。前者のPCIeネイティブ接続の製品は、NANDフラッシュメモリの制御を行うコントローラーそのものがPCIe経由でCPUと接続されます。現在主流のSATA接続のSSDでは、SATAを使って接続していますが、これをPCIeに変更したものと考える分かりやすいでしょう。後者のRAIDコントローラーを使った製品は、PCIe接続のSSDとしては、現在もっともポピュラーな製品です。基板上にRAIDコントローラーを搭載し、そこにSATA接続のSSDを複数台ぶら下げています。PCIe接続といっても間にRAIDコントローラーが介在しているだけでなく、接続されているSSDもSATA接続となるなど、PCIeネイティブの製品とはまったく異なるSSDであることに注意してください。本稿では、特に断りのない限り、PCIeネイティブ接続のSSDの説明を行なっています。RAIDコントローラーを利用した製品ではないので注意して読み進めてください。


PCIeネイティブ接続のSSDでは、新しいインターフェース規格が採用される予定です。それが、今年の年末リリース予定の「SATA Express」です。SATA Expressには、動作モードが2つ準備されています。1つが、「NVM Express(NVMe)」。もう1つが、AHCIです。

前者のNVMeは、NANDフラッシュメモリの特性を考慮して設計されたネイティブモードに相当する動作モードです。NVMeは、ACHIをベースにSSD向けの改良を行ったインターフェース規格「NVMHCI」をリファインしたものです。PCIe SSDは、NVMeで使用することでAHCIよりも低レイテンシで動作するようになり、ランダムアクセス性能が向上すると言われています。ちなみシーケンシャル速度は、NVMeとAHCIで大差はないようです。

後者のAHCIは、いわばLegacyモードと呼ぶべき動作モードです。NVMeは、対応した機器でのみ使用できるため、非対応の製品では使用できません。AHCIは、NVMe非対応の機器でも使用できるように用意された互換モードというわけです。SATAの動作モードでいうところの「IDEモード」だと考えてもらうと理解しやすいと思います。

現在出荷中のSAMSUNG社の製品は、AHCIにのみ対応しており、NVMeには対応していません。また、インターフェースもPCIe 2.0 x4(最大2GB/sec)となっており、PCIe 3.0対応の製品ではありません。SAMSUNGでは、次世代の製品でPCIe 3.0とNVMeに対応することを予定しているようです。

広帯域なPCIeをインターフェースに利用することで、大幅な性能向上を果たすPCIe SSDですが、残念なことに、現状のマザーボードでは起動デバイスとして利用できません。というのも、SAMSUNGのPCIe SSDは、UEFI/BIOSに内蔵されている「AHCI BIOS」を利用してOS起動を行うように設計されているからです。

AHCI BIOSは、Intel製チップセットを利用している場合、Intel社が提供しています。現在提供中のAHCI BIOSは、チップセット内蔵のSATAコントローラーのみを対象に設計されています。PCIe SSDは対象外となっているので、SAMSUNGのPCIe SSDを検出できません。このため、現状では、仮にSAMSUNG製のPCIe SSDを入手できたとしても、OSの起動を行うことはできません。データ保存用専用として利用することになります。その際ドライバーは、Windows 7/8のMS純正のAHCIドライバーで問題なく動作ます。また、ソニーのVAIOでは、既存のAHCI BIOSに手を加えることでPCIe SSDをブート可能としています。いうまでもありませんが、このBIOSが一般向けに提供される予定は不明です。

加えて、NVMe対応となった場合にも、AHCI同様にBootROMが必要です。NVMeでは、現在あるAHCI BIOSを拡張するのではなく、別のNVMe対応のBIOSを準備するようです。その場合、NVMeのオン/オフがUEFIに追加されるか、ストレージの動作モードの設定の中にNVMeが追加されるのではないかと推測しています。NVMe対応BIOSの提供がどうなるかも現在のところ不明です。