図7●ハードディスクの読み出しキャッシュの仕組み
あるデータを読み出したとき,そのデータの続きも読み出してキャッシュに格納しておき,次のアクセスに備える。
写真2●ハードディスクの書き込みキャッシュの切り替え
Windowsでは「デバイスマネージャ」のプロパティで利用するかどうかを切り替えられる。
図8●ハードディスクの回転数とキャッシュ容量を変えたときのテスト結果
左がファイル操作にかかった時間。キャッシュ容量の違いで処理時間は大きく変わる。右がアプリケーションの起動にかかった時間。キャッシュ容量の違いにより起動時間が1~2割変わる。どちらのテストでも,回転数の変化による影響も大きかった。
テストに利用した部品

ディスクの機構に合わせたキャッシュ

 ハードディスク内のキャッシュは,ハードディスク固有の機構にあわせた特別な仕組みになっている。通常はキャッシュ領域を二つに分け,それぞれ読み出し用と書き込み用に使う。

 読み出し用キャッシュは,ディスクからのデータの読み出し方法にあわせた仕組みになっている。ハードディスクはOSから読み出し要求を受け取ると,そのデータの格納場所へヘッドを移動させる。ヘッドが移動するまでの待ち時間が「シーク時間」である。ヘッドを移動したあとも,要求されたデータをすぐには読み出せない。移動させたヘッドが,ちょうど欲しいデータの上に来るとは限らないからだ。最悪の場合でディスクがほぼ1回転するまで待たなければならない。これが「回転待ち時間」である。

 アプリケーションがあるデータを読み出したあと,ヘッドの位置が異なる別のデータを読み出し,次に最初のデータの続きを読んだとしよう。通常なら,データの読み出しごとにヘッドの移動が必要である。読み出しキャッシュを使えば,これを避けることができる。具体的には,ディスク上のデータを読み始めたら,そのデータの続きもついでに読み出してキャッシュにためておく(図7[拡大表示])。あとでアプリケーションから続きのデータに対する読み出し要求が来れば,キャッシュから高速にデータを取り出せる。

 書き込みキャッシュの仕組みも,ディスクへの書き込み方法にあわせている。OSからディスク1回転分のデータを書き込むように指示される場合,データは複数回に分かれて届けられる可能性がある。こうしたときに備えて,データを実際にディスクに書き込む前に一時的に貯めておくのが書き込みキャッシュである。書き込みの動作は,できるだけディスク1回転分のデータがキャッシュにたまってから実行する。

 ただし書き込みキャッシュは信頼性では劣る面がある。書き込みキャッシュにデータが書かれた直後に,電源が落ちたとする。この時点でアプリケーション側はデータを書き込んだと判断しているのに,実際のデータはまだディスクに書き込まれていない。するとトランザクション処理などでデータの不整合が起こりうる。このため信頼性を要求されるサーバーでは書き込みキャッシュをオフにする場合がある。書き込みキャッシュを利用するかどうかは,Windowsでは「デバイスマネージャ」のハードディスクのプロパティで切り替えられる(写真2[拡大表示])。

ディスク・キャッシュの違いで6割速くなる

 ハードディスクのキャッシュ・サイズによる影響を調べたのが図8[拡大表示]である。多数のファイルの操作と,巨大なファイルの操作で顕著な差が出た。同じ7200回転/分のハードディスクで,キャッシュ・サイズが8Mバイトの場合と2Mバイトの場合で比べると最大6割近い差が出た。アプリケーションの起動も1~2割速くなった。

 比較対象として,データ転送速度が遅い5400回転/分のハードディスクのテスト結果も示した。ハードディスクの場合は,データ転送速度が遅いと処理時間もそれに応じて遅くなった。CPUや主記憶と異なり,ハードディスクはデータ転送速度が速くなると,体感速度が大きく向上する。



写真●4年前に購入したパソコン
コンパックコンピュータ(現在は日本ヒューレット・パッカード)の「PRESARIO 2298」。
表●テストした二つのパソコンの仕様
図●4年前と現在のパソコンの体感速度の比較Adobe Reader(Acrobat Reader)の初回起動と,多数のファイルに対する文字列検索は,ほとんど同じ時間で処理が終わる。ほかのテストでは現在のパソコンがかなり速かった。巨大な画像ファイルのサムネイル表示のテストは実施しなかった。Windows 98は,サムネイル表示機能を持たないからである。

4年前のパソコンでも速さは十分?

 昔のパソコンの体感速度はどうだったか。それを調べるため,4年前に記者が実際に購入したパソコンで同じテストをしてみた。当時約10万円で購入した低価格パソコンである(写真[拡大表示])。比較対象として,2003年秋の売れ筋パソコンを想定したテスト機を用意した([拡大表示])。

古いPCも二つのテストで健闘

 4年前のパソコンなんて,今のパソコンには,まったくかなわないと予想していた。その予想を裏切ったテストが二つあった。Adobe Readerの起動と多数のファイルに対する文字列検索である。

 Adobe Readerの起動は,4年前のパソコンの方が,わずかながら高速だった([拡大表示])。これには実はカラクリがある。4年前のパソコンで動くWindows 98では,Adobe Readerの最新版6.0が動作しなかった。このため旧版のAcrobat Reader 5.0を使った。旧版の方が起動が高速なので,テスト結果が勝ったのである。時代に合ったアプリケーションを使っていれば,古いマシンでも体感速度に問題はないということかもしれない。

 文字列検索は,どちらもOSの標準機能(エクスプローラ)で実行したが,処理時間にそれほど差が出なかった。Windows 98での検索処理の方が,ソフトウェアとして高速ということだろう。

 Wordの起動時間や多数のファイルのコピーでは,今のパソコンの方がかなり速かった。

 記者はこのパソコンにWindows 2000を入れて最近まで利用していた。体感速度で遅いと感じていたのは,エクスプローラでのファイルの一覧表示だった。実際には1秒もかからない処理だが,Windows 98のときには一瞬で表示されていたので不満だった。このような感じ方には個人差があるだろう。

(安東 一真)