- ベストアンサー
SSDのシーケンシャル/ランダムアクセスの違い
- SSDのシーケンシャルアクセスはランダムアクセスよりも高速な理由を解説します。
- SSDにおいてシーケンシャルアクセスがランダムアクセスよりも高速な理由は、物理ページの大きさ、同時処理できるコマンド数、コマンド受付自体のオーバヘッドの3つの要素が関係しています。
- SSDのシーケンシャルアクセスがランダムアクセスよりも高速な理由を詳しく解説します。また、近年の高速化のための技術についても紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Crystal Disk Markあたりのベンチマークテストの結果だろうと思いますが、こちらも専門家ではないので、解る範囲で答えさせてもらいます。なお、間違った解釈等がありましたらご容赦下さい。その場合は、もっと詳しい方の解答にお任せします。 シーケンシャルアクセスの場合、CPUはコマンドを発行するだけで実際の転送は、大きなブロック単位でDMA(Direct Memory Accesse)転送されます。 DMA転送は極めて効率が良く、転送にCPUが介在しないのでオーバーヘッドも殆どありません。従って、HDDの持っている転送能力ギリギリまで転送可能なのです。 これに対し、ランダムアクセスは、比較的小さいブロック毎の転送となり、DMA転送の利点が生かされません。転送毎にCPUが介在するので効率が低下します。 それでも、512KBブロックあたりは、シーケンシャルアクセスに迫る転送レートを出すケースもあると思います。 これが、4KBくらいになると、がっくり転送レートが落ちてきます。 まあ、こう言った仕掛けではないかと思っているのですが、如何でしょうか。
その他の回答 (1)
- Eureka_
- ベストアンサー率41% (5079/12273)
あまりくわしかないですけど、DRAM的なアクセス高速化手法が使えるならバーストモードでアドレス指定してるとかないんですかね? それだけでコマンドオーバーヘッドが劇的に減る気がします。 あと、最近のNCQ対応SSDだとQD32が有効なら「せいぜい数倍」の差に収まってしまう気も。 http://www.cfd.co.jp/ssd/sns1q.html とか見るとランダムデータの書き込みではまったく変わりませんし。(まあこれはデータ圧縮で書き込み速度を稼ぐSandForceコントローラの特性もありますけど) 他にはサムスンの470シリーズSSDで「Toggle DDR FlashROM」を使ったという話がありましたが… 対応コントローラが少ないからなのか、あまり手広く使われてるという感じはありませんね。(逆に新型では使われてて当たり前で特別にはアピールされてないという可能性もありますが、ちょっと考えにくいかなと)
お礼
回答ありがとうございます。 URLの参照先のベンチ結果拝見させていただきました。 >コマンドオーバーヘッドが劇的に減る気がします。 僕もランダムだとコマンドを多数受け付けるから、多少差がでるのかと思ってましたが、 Writeの結果見る限りでは、コマンドオーバヘッドは小さいようですね。 NCQ使うとずいぶんと、性能が上がりますね。 並列度の高いSSDとは特に相性がよさそうですね。 きっとこのSSDのコントローラはかなり頭よくて、並列実行できるコマンドを的確に選んでるんでしょう。 圧縮して書き込むコントローラや、Toggle DDR というのも初耳です。 参考になりました。
お礼
回答ありがとうございます。 なるほど。 単純なコマンドの個数の差だけでなく、DMAがうまく効いているかどうかでも結構差が出そうですね。 これも考えると、なんとなく、大きな差も生じそうな気がしてきました。