SATAまたはシリアルATAは、コンピュータストレージに関して大きな成功を収めています。インターフェイスの標準化により、コンピュータとストレージデバイス間のインストールと互換性が容易になります。問題は、シリアル化された通信の設計が、多くのソリッドステートドライブがドライブではなくインターフェイスの性能によって制限されているため、限界に達していることです。このため、コンピュータとストレージドライブ間の新しい通信規格が開発される必要がありました。これは、SATA Expressがパフォーマンスギャップを埋めるために取り入れる場所です。
SATAまたはPCI-Express通信
既存のSATA 3.0仕様はわずか6.0Gbpsの帯域幅に制限されており、約750MB /秒に相当します。今やインターフェイスのオーバヘッドとすべてが、有効なパフォーマンスがわずか600MB / sに制限されていたことを意味します。現代世代のソリッドステートドライブの多くは、本質的にこの限界に達しており、より高速なインタフェースを必要としています。 SATA Expressは、デバイスが既存のSATA方式を使用するかどうかを選択したり、古いデバイスとの下位互換性を確保したり、より高速なPCIを使用したりできるようにすることで、コンピュータとデバイス間の新しい通信手段を導入しました - エクスプレスバス。
PCI-Expressバスは、従来、グラフィックスカード、ネットワークインターフェース、USBポートなどのCPUと周辺機器間の通信に使用されていました。現在のPCI-Express 3.0規格では、1つのPCI-Expressレーンで最大1GB現在のSATAインターフェイスよりも速くなります。これは、単一のPCI-Expressレーンが実現できるものですが、デバイスは複数のレーンを使用できます。 SATA Express仕様によれば、新しいインターフェースを備えたドライブは、2GB / sの潜在的な帯域幅を持つために2つのPCI-Expressレーン(x2と呼ばれることがあります)を使用して、従来のSATA 3.0スピードのほぼ3倍の速度を実現します。
新しいSATA Expressコネクタ
新しいインターフェイスには新しいコネクタも必要でした。コネクタは実際には2つのSATAデータコネクタと、PCI-Expressベースの通信を処理する3番目のわずかに小さなコネクタを組み合わせているため、やや類似しているように見えます。 2つのSATAコネクタは、実際には完全に機能するSATA 3.0ポートです。これは、コンピュータ上の1つのSATA Expressコネクタが2つの古いSATAポートをサポートできることを意味します。この問題は、新しいSATA Expressベースのドライブをコネクタに差し込みたい場合に発生します。すべてのSATA Expressコネクタは、ドライブが古いSATA通信または新しいPCI-Expressをベースにしていても、全幅を使用します。したがって、1つのSATA Expressは、2つのSATAドライブまたは1つのSATA Expressドライブを処理できます。
では、なぜPCI-ExpressベースのSATA Expressドライブでは、2つのSATAポートではなく、1つの3番目のコネクタを使用していませんか?これは、SATA Expressベースのドライブでどちらのテクノロジを使用することもできるため、両方のテクノロジを使用する必要があります。これに加えて、多くのSATAポートは、プロセッサと通信するためにPCI-Expressレーンにリンクされています。 SATA Expressドライブと直接PCI-Expressインターフェースを使用することで、そのインターフェースにリンクされた2つのSATAポートとの通信を効果的に切断します。
コマンドインタフェースの制限事項
SATAは事実上、コンピュータ内のデバイスとCPUとの間でデータをやり取りする方法です。このレイヤーに加えて、この上に実行されるコマンド・レイヤーがあり、ストレージ・ドライブに書き込まれたり読み取られるべきものについてコマンドを送信したりします。これは長年にわたり、AHCI(Advanced Host Controller Interface)によって処理されてきました。これは標準化されており、現在市販されているすべてのオペレーティングシステムに本質的に書き込まれています。これは効果的にSATAドライブをプラグアンドプレイします。余分なドライバーは必要ありません。このテクノロジは、ハードドライブやUSBフラッシュドライブなどの古い低速テクノロジではうまく機能しましたが、実際には高速のSSDを保持しています。問題は、AHCIコマンドキューがキュー内に32個のコマンドを保持できる一方、キューが1つしかないため、一度に1つのコマンドしか処理できないことです。
NVMe(Non-Volatile Memory Express)コマンドセットが付属しています。それぞれ65,536個のコマンドキューがあり、それぞれのキューに65,536個のコマンドを格納できます。効果的に、これはドライブへのストレージコマンドの並列処理を可能にします。これは、ハードドライブにとって有益ではありません。なぜなら、ドライブヘッドのために単一のコマンドに制限されていますが、複数のメモリチップを備えたソリッドステートドライブの場合、複数のコマンドを異なるチップに書き込むことによって、細胞を同時に培養する。
これは素晴らしいかもしれませんが、少し問題があります。これは新技術であり、その結果、市場の既存のオペレーティングシステムのほとんどに組み込まれていません。実際、ほとんどの場合、ドライブに新しいNVMeテクノロジを使用できるように、追加のドライバをインストールする必要があります。つまり、SATA Expressドライブの最速のパフォーマンスの展開には、AHCIの最初の導入と同様にソフトウェアが成熟するまでに時間がかかることがあります。ありがたいことに、SATA Expressはドライブが2つの方法のいずれかを使用できるようにしていますので、AHCIドライバで新しいテクノロジを使用し、後で新しいNVMe標準に移行してドライブを再フォーマットする必要があります。
SATA経由で追加されたその他の機能SATA 3.2仕様
新しいSATA仕様では、新しい通信方式やコネクタだけでなく、それらのほとんどはモバイルコンピュータを対象としていますが、他の非モバイルコンピュータにも利益をもたらすことができます。最も顕著な節電機能は、新しいDevSleepモードです。これは本質的に新しいパワーモードであり、ストレージ内のシステムをほぼ完全にシャットオフすることができ、スリープモードのときに消費電力を削減できます。これにより、SSDの周りに設計されたUltrabookや低消費電力など、特別なラップトップの稼働時間を改善するのに役立ちます。
SSHD(ソリッド・ステート・ハイブリッド・ドライブ)のユーザーは、新たな最適化の一環として、新しい標準の恩恵を受けるでしょう。現在のSATA実装では、ドライブコントローラは、要求されたものに基づいてどのアイテムをキャッシュするべきか、またはキャッシュしないべきかを決定します。新しい構造では、オペレーティングシステムは基本的にドライブコントローラにキャッシュ内のどのアイテムを保持すべきかを伝えることができ、ドライブコントローラのオーバーヘッド量を減らし、パフォーマンスを向上させることができます。
最後に、RAIDドライブの設定で使用する機能があります。 RAIDの目的の1つはデータの冗長性です。ドライブに障害が発生した場合、ドライブを交換して、チェックサムデータからデータを再構築することができます。本質的には、どのデータが損傷しているのか、そうではないのかを認識することで、再構築プロセスを改善することができるSATA 3.2規格の新しいプロセスを構築しました。
実装とそれが捉えられなかった理由
SATA Expressは2013年末から正式に標準化されましたが、2014年の春にIntel H97 / Z97チップセットがリリースされるまでコンピュータシステムに進出し始めていません。新しいインターフェースを搭載したマザーボードでも新しいインターフェイスを使用できる起動時のドライブはありません。これは、SATA Expressを最大限に活用するために、新しいコマンドキューイングのオペレーティングシステムサポートに関する問題が原因と考えられます。現在の実装では、SATA Expressコネクタを既存のSATAドライブで使用することができます。これにより、ドライブが利用可能になった時点で技術を購入する人たちの実装が容易になります。
インタフェースが実際にはキャッチしていない理由は、本当にM.2インタフェースにあります。これは、ラップトップコンピュータで使用されるより小さいフォームファクタを使用するソリッドステートドライブにのみ使用されますが、デスクトップシステムでも使用されます。ハードディスクドライブはまだSATA規格を上回る苦労があります。 M.2は、より大きなドライブに頼るのではなく、SATA Expressの2つのレーンよりも高速のドライブを意味する4つのPCI-Expressレーンを使用することもできるため、柔軟性が少し向上しています。この時点で、コンシューマーはSATA Expressが採用されたことを決して見ないかもしれません。