ハードディスクのディスクキャッシュ

ハードディスク

「ハードディスクの読み書き」の方法は、読み書き用のヘッドが磁気ディスク上で機械的に移動して、情報をやり取りするという方法です。
そのため、ハードディスクの情報処理の性能は、処理装置(CPUやメモリなど、データを処理する部分)の性能と比べて、非常に遅いものとなっています。

その問題を少しでも改善するために、ハードディスクにはメモリが搭載されています。
ハードディスクからファイルを読み込む際、読み込んだデータを一時的にメモリに保存します。そして次に使う場合では、そのメモリからデータを読み込みます

使用頻度の高いデータをメモリ上に保存しておけば、データの読み出し要求があった時に、いちいちハードディスクからデータを読み込む必要がありません。
そのため読み込み速度が、飛躍的に向上します

以上のように、情報データの読み込み速度を高速化する技術や、そのために使われるメモリ上の領域のことを、ディスクキャッシュと言います。
アクセス要求があったデータがすでにキャッシュ内にある場合、ハードディスクにアクセスせずに、キャッシュから直接データを読み込むことにより、データ読み込み速度を高速化します。
ディスクキャッシュは、同じ内容を何度も読み出したり、小さなデータをたくさん書き込んだりする場合に、特に効果的です。

なお、ディスクキャッシュとは逆に、「半導体メモリの容量の少なさ」を補うために、一部のデータをハードディスクに退避する技術については、仮想メモリと呼ばれています。

ハードディスクの書き込み結果

ハードディスク上のデータについては、全てきちんと書き込まれる、全く書き込まれないという二通りしかありません

例えば、ハードディスクにデータを書き込んでいる途中で電源が切れると、どうなるでしょうか。
データの保存が、途中で止まってしまうことになります。
そうなると、データは保存されません。最後まで保存できなかったデータは、「ゴミ」と認識されて捨てられます。つまり、データ全体が消えてしまいます。

「ゴミ」のようなファイルは、破損ファイルと呼ばれています。それは、まるでファイルの前半部分と後半部分が切れてしまっているような状態です。なので、一つのファイルとして認識できない状態になっています。よって、パソコン上から正常なファイルとして取り扱いできません。
ですが、ハードディスク用ツールでエラーチェックをすると、破損ファイルを片づける事ができます。破損ファイルが存在している部分を、未使用の状態に修正します。なので、再び利用できる場所となります。

ハードディスクにデータを書き込む時、時間がかかることがあります。そんな時、書き込み途中で電源を切ったりすると、データが最後まできちんと保存されないことがあります。
パソコンのランプの中に、ハードディスクの書き込み中を示すランプがあります。そのランプが点滅している時は、ハードディスクが動いています。その時、電源を切ったり、衝撃を与えたりしないようにしてください。データの消失を防ぐためにです。

ハードディスクにきちんとデータを書き込むためには、通常の操作で電源を切りましょう。パソコンの電源ボタンを押す、OSの「シャットダウン」を選ぶことで、パソコンを終了させます。そうすれば、ハードディスクにデータを書き込んでいる途中で、処理が止まるということはないでしょう。

ハードディスクのブートレコード

パソコンが起動してハードディスクを読む時は、最初に「マスタブートレコード」(MBR:Master Boot Record)という特別な場所を、読み込みます。
マスタブートレコードは、パーティションに属さない特別な場所に用意されています。

以下にOSの起動手順について、一例をご紹介したいと思います(2007年当時)。

  1. パソコンが起動すると、マスターブートレコードに記録された「Boot Loader」というプログラムを起動します。
  2. ディスク領域の「大きさ」や「位置」などを記録したパーティションテーブルを、読み込みます。
  3. 起動するパーティションのブートレコードを読み込みます。
  4. ブートレコードに置かれたプログラムが、そのパーティションにあるOSを起動します。

マスタブートレコードには、ハードディスク内に「どのようなパーティション」や「論理ドライブ」が作られているのか、といったハードディスクの構造情報が入っています。
そして、パーティションがハードディスクの「どの位置にあるか」といった、「読み書き」の制御に必要な情報も入っています。
もしもこれらの情報がないと、ハードディスクの内部が「どのように管理されているのか」わかりません。そして、そのハードディスクを使用できません。

マスタブートレコードには、起動用の基本ソフト(OS)が「どのパーティションに入っているのか」という情報も入っています。
起動に使うパーティションは、複数作ることもできます。しかし実際に使われるのは、マスタブートレコードで指定された、一つの基本パーティションだけです。

起動に使うパーティションがわかると、起動中のパソコンは、指定された基本パーティションの中にある「ブートレコード」を読み取ります。
これは「マスタ」ではなくて、そのパーティションのブートレコードです。なので、そのパーティションに関する管理情報が書かれています。

起動用の基本パーティションのブートレコードには、インストールされている基本ソフト(OS)に応じて、最初に読む込むべきプログラムが指定されています。
例えばWindows OSの場合では、Windowsの本体を読み込んで起動するためのWindowsローダーと呼ばれるプログラムが、読み込まれて実行されます。

※この記事は2007年当時の記事になります。