- ベストアンサー
HDDの内蔵キャッシュは何をキャッシング?
- HDDの内蔵キャッシュは、データの読み書きを効率化するために使用されます。
- 一般的に、HDDには2Mバイト程度のキャッシュが内蔵されています。
- このキャッシュは、トラック単位やセクタ単位でのデータのキャッシングに利用されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下、聞いたお話と推測交じりなのでかなりいい加減かもしれませんが、参考になれば。。。 >FATファイルシステムでは、FATを調べてファイルのセクタ位置を割り出し、読み書きをしていると思っています。 これは違います。ファイルシステムやOSそのものが異なる場合を考えれば判ると思いますが、そこまでHDD自身は頭がよろしくありません。 HDDのお仕事は、要求されたアドレスから要求されたバイト数のデータを上位に流すだけです。 FAT云々のお仕事はドライバが担当します。(95/98系でNTFSが読めないのはその為です) HDDのキャッシュは、上記で記述したデータの中継地点としてのみ機能するものです。 ココは若干の仕事の区分の違いが有るものの御推察の通りですが、ロード命令が意外だと思います。 書き込みの場合は言うまでもないと思いますが、読み込みの場合はロード命令の開始アドレスからキャッシュ一杯になるまで読み込みを続けます。(キャッシュミスが発生した時点で再度読み込みします) その為キャッシュは少ないよりは多い方がキャッシュミスしづらいのですが、キャッシュ容量の大き過ぎるHDDは、小さいデータをランダムリードするとキャッシュミスを繰り返し、反って遅くなる筈です。 多分これで回答になっていますよね??
その他の回答 (2)
- asuca
- ベストアンサー率47% (11786/24626)
ハードディスクのキャッシュはファイル名などよりも低いレベルでのデータの一時保存を行います。 ファイル名などはハードディスクにデータがわたる段階ではOSが管理するものですので。 それにより見かけ上の書き込み速度の向上と読み出し時のハード的な動作による速度低下を押さえています。 CPUの次キャッシュと2次キャッシュの関係とはちょっと違いOSの持つキャッシュと別の動作でキャッシュを行っています。 また、OS側はハードディスク内のキャッシュの状態などは関知していないでしょう。
お礼
ありがとうございます。 ところで、 > ハードディスクのキャッシュはファイル名など > よりも低いレベルでのデータの一時保存を行い > ます。 この低いレベルというのは、なんでしょうか。 そこが知りたいのです。 質問にも記しましたが、HDDの物理的なアクセスは、HDD内のコントローラにより、セクタ単位になると思っています。FATファイルシステムでは、FATを調べてファイルのセクタ位置を割り出し、読み書きをしていると思っています。 よって、「HDD内蔵キャッシュ」にキャッシングされるデータは、HDD内でセクタ単位で管理されていると考えればいいでしょうか。言葉を少し変えれば、「セクタ位置とその内容がキャッシュされている」という考え方でいいでしょうか。 OS管理下のキャッシュの場合は、ファイル名でキャッシュデータが管理されていると理解しています(ランダムアクセス時のキャッシングは理解の範囲外ですが)。 ところで、WD社の8Mキャッシュですが、OSに遅延書き込みをサポートしているキャッシュシステムを入れている場合、8M/2Mの差に、そんなに意味はないのではないかと思うのです。 それを判断するとっかかりとして、HDD内蔵キャッシュの挙動を知りたいと思った次第です。 言われるように、OS管理下のキャッシュに関してのお話ではありません。
- freeman108
- ベストアンサー率11% (18/153)
CPUのキャッシュと同じで、HDDへの書き込みや読み込みを速く行うためにあるのではないのですか?ずっとそう思ってました。 専門的な知識のある方の意見を聞きたいです。
お礼
FAT云々は、おっしゃるとおりです。誤解が少なくなるように、OSの話ではないというのを伝えようとしただけです。かえって誤解があったようで、すみません。 HDDのキャッシュについては概略理解しました。ありがとうございます。 また、キャッシュのインデックスがなんであるかも知りたかったのですが、おいおい調べようと思います。