質問: sdカードよりhddのほうが速度が早い理由は? 詳しい方が多そうなのでこちらのカテしました。 いわゆる普通のpcでは、sdカードの読み書きのほうが、hddより遅い。 というふうな説明を最近受けたのですが、 どうしてフラッシュメモリ媒体のほうがhddより遅くなるのでしょうか? hddよりよりssdが速いことと矛盾しないのは何故ですか?
回答: おもしろい質問なので回答します。 q/どうしてフラッシュメモリ媒体のほうがhddより遅くなるのでしょうか? a/メモリデバイスの速度を決めるのは何だと思いますか?パソコンのcpuは同じ製品ならクロック周波数が物を言います。メモリも同じで同期クロックの性能が物を言うのです。ただ、メモリでさえも、1バンクあたりの速度は、何ギガもない製品もあります。たいていは4つから8つのバンクで構成されていますが、一つ一つのバンクは、メモリバスの速度より遅いのです。その代わり、データを分割しそれらに分けて当時に記録することで、速度を速くします。raidと同じというのはメインメモリにもいえます。 では、nandはどうでしょうか? 基本的な概念は、cpuなどのロジック回路と似ています。まあ、同期回路がどれだけのスイッチング性能を持つか、そして1つのデータの読み書きにどれだけの時間(クロック)が消費されるかによって、速度は決まります。そして、それは下手に変更するとメインメモリと同じで、規格が変わってしまい認識しなくなるおそれもあります。即ち、速度を早くするには、接続するアダプタ(ドライブ)側もそれに、最適化されているか、sdカードが古いアダプタと互換を持つ必要があります。 すでに回答があるように、並列性の高さなども影響しますけど、speed classがあるのは、上位と下位との間で互換性を維持するためでもあります。 ちなみに、むやみに小さく高密度化すれば、それだけの熱対策も必要になりますから、動作を速める(クロック数をあげる)と熱破損の危険もあります。小さな媒体では、あまり高速化ができないのです。 これに加えてインターフェース(usb)などの影響もあるでしょう。 q/hddよりも、さらにssdが速いことと矛盾しないのは何故ですか? a/ssdは、ドライブとディスク(nand flash)が一体化しています。即ち、互換性を考慮する必要がないのです。単にインターフェースさえsataなりusbなりに最適化すればそれで動きます。 だから、速度に最適な設計も可能となります。 さらに、熱処理の問題なども筐体が大きくなるため、熱密度が下がりあまり発生しません。 容量も大きくでき、並列性も高めることができます。 これらが理由となります。 半導体はスイッチングが一定より早くなれば、熱として逃げる量が増えてしまいます。 また、パフォーマンスが極端に上がれば、電圧や電流が高まり、規格の基準を上回る危険があります。 即ち、ドライブとディスクが別々であれば、下位互換を失うおそれがあるのです。 そのように考えれば、きっと分かり易いでしょう。 また、半導体の原理を知っていても、比較的分かり易いかと思います。 ちなみに、nandフラッシュは、速度では比較的高速です。 ハードディスク1台ほどの速度はありませんけど。slcであれば特に1バンクで品質の良い物なら、百メガ近い転送速度を達成でき、ランダムアクセスでもさほど速度差が生じないものもあります。 ただ、一つだけ苦手なのが、データを書き込め、または消去しろと指示してから実際にその動作に移るまでの時間と完了が確認されるまでの時間が、ハードディスクなどより遅い傾向があります。 特に書き換えの操作はきわめて遅くなります。 その理由は、ハードディスクではオーバーライト(書き換え)を一度に行いますが、nandではデータがセルに入っている場合、そのセルの電荷を一度引き出し抜き取ってから、書き込みを行わなければデータは記録できないというルールがあるためです。 そのため、ssdやnandフラッシュもメンテナンスがしっかりされていなければ、hddより遅く感じることがあるでしょう。