Shino's Bar goto [マスターの部屋] [DOS/Vマシンの自作] [ MPEG2最前線 ]

ハード・ディスクのスピード・アップ法

パソコンで画像や音声、映像などマルチメディアを使うと、ハード・ディスクの容量と速度が気になります。 ビデオキャプチャで駒落ちが生じたり、CD-Rの書き込みに失敗したりしたのでは困ります。 ここではハード・ディスク(HD)をできるだけ高速で使うためのポイントを記します。
  1. メイン・メモリは充分積もう

  2. まず大前提として、マルチメディアを扱うに充分なメイン・メモリを用意しておくことです。 速度の遅いハード・ディスクにアクセスする機会を少しでも減らすためです。映像を扱うにメイン・メモリは128MB以上、できれば256MBあったほうが良いでしょう。

  3. DMAを使う

  4. DMA転送はCPUをあまり煩わせることなく高速でデーター転送できるものです。 SCSIはコントローラーがDMA転送を行います。SCSIにもいくつかの規格があり、それぞれ10MB/s〜160MB/sの転送速度を持っています。 ATAも最近はマザーボード上のディスク・コントローラーによりDMA転送ができ、UltraATAでは33MB/s, UltraATA66では66MB/sと、一般的なU-SCSIが20MB/sですから、U-ATAはこれを超えており、SCSIも出番がなくなってきました。 内蔵ハード・ディスクにはSCSI用のものとIDEと呼ばれるものがあります。 IDEハード・ディスクも最近のものはほとんどUltraATA66に対応します。 「UltraATA66対応」というのはUltraATA(33)に使っても問題ありません。 Windowsは95B(OSR2)以降このATAのDMA転送をサポートしています。自作マシンやIDEハード・ディスクを自分で増設した場合、以下のようにその設定をしておかないと通常のPIOモードで動くことになるので注意が必要です。(SCSIはこの設定不要)
    IDEハード・ディスクのDMAモードへの設定(Windows95B 以降)
    「マイコンピュータ」を右クリック→「プロパティ」を開く →「ディバイス マネージャー」の中の「ディスク ドライブ」をダブルクリック →ディスクドライブのところを(「GENERIC IDE DISK...」などと書かれている)を右クリック →「設定」→「DMA」の左の窓にチェックを入れる →OK→OK
  5. HDはランダムアクセスではない

  6. HDはレコード盤やCDと同じように、円盤が高速回転しており、その上をピックアップ(ヘッド)が動いています。 これで目的の位置に移動するまでの時間がアクセス時間です。 ランダムアクセスとは言っても場所によってアクセス時間が変わります。 そこから先、データーが連続しておればヘッドはほとんど動かず、データーの読み出しは高速で行われます。
    平均アクセスタイムが10ms、内部転送速度200MbpsのHDで4kBのデーターを読み取る場合を考えます。このデーターがすぐ隣にあれば アクセスタイム0で読み出しは0.16ms。 いちばん遠いところにあればたどり着くだけで20msかかるので20.16ms。 その差は2桁以上となります。 ここで500kBのバッファを持っていると一度のシーク分くらいはカバーできる計算ですが、たびたびシークがあるとどうにもなりません。

  7. デフラグについて

  8. データーが連続していないと恐ろしく時間が掛かるということです。 ファイルを作るときにディスク上に連続した領域が自動的に取られますが、 書いたり消したりすると隙間ができてしまいます。 ディスク容量がいっぱいになる前にディスク上は飛び飛びの隙間だらけになり、 連続した領域が取れなくなります。 この隙間を詰めるのが「デフラグ」または「最適化」という作業です。 デジタル録画する前にはデフラグしておいたほうが良いのですが、 この作業はたいへん時間が掛かるものです。 後に述べるようにもっと速い方法があります

  9. HD容量にも余裕を

  10. HDの容量に余裕がないと、しょっちゅうデフラグをしなければなりません。 最近は大容量のものも安価になってきているので、 使うと思われる容量よりも十分に余裕をとっておきましょう。 なお、システムによっては大容量のHDを使えない場合があります。 古い機種の場合、そういった制約がないか調査しておくことが必要です。 マザーボードのBIOSを更新することで解決する場合もあります。

  11. スクリーンセーバーを使わない

  12. 次に述べるデーター専用ドライブを確保できない場合は、とにかくデーター転送中はそれ以外のディスクアクセスを避けることです。 もちろんスクリーンセーバーや省電力設定も停止しておきます。マウスも手を触れぬよう。裏返しに置いておけば振動しても大丈夫。
    データー用ドライブが独立していればここまで気を遣わずに済むのです。

  13. システムとデーターはドライブを分ける

  14. Windowsのシステムドライブは仮想メモリや一時ファイルなどに使われます。データーを読み書きしているときにこれらのディスクアクセスが生じると、連続転送が中断することで一時的に速度が極端に低下します。 データー専用にドライブを設けると、転送は中断することなくスムースに行われます。 1つのドライブをパーティションを区切り、仮想的に2つのドライブに分けることができますが、それではディスクアクセスを独立させる効果はありません。 大容量のもの1つにシステムとデーターを収めるより、システムとは別にデーター専用ドライブを設けるべきです。 内蔵するスペースがなければ外付けとなりますが、安価に抑えるのは難しくなります。 むしろ専用マシンを組み立てたほうが早いかもしれません。 ただし安価なIDEディスクをIEEE1394に変換する外付けハードディスクも最近できており、これはなかなか良いかもしれません。

  15. 高速デフラグ法?

  16. 高速化にはデフラグが必須ですが、これはたいへん時間の掛かるものです。 そんなことをするより、もっと手っ取り早い方法があります。 フォーマットしてしまうのです。もちろんデーターは全部消えてしまいます(^o^)!。作業用ディスクを分けておくとこういうことができます。 あるいはパーティションを切って、保存データーを置く場所と別に作業データー専用ドライブを作りましょう。 フォーマットは「クイック・フォーマット」というのでOKです。

  17. 時間の掛かるコピーと掛からないコピー

  18. 2台のハードディスクを繋いでいて次のようにパーティションを切っていたとしま す。
    C:
    D:

    E:
    F:

    さてここでたとえば2GBくらいの大きなファイルがC:にあったとして、これをコピーするとき、 コピー先によって掛かる時間は変わります。次の場合どれがいちばん時間がかかるでしょうか?
    1. C: → C:
    2. C: → D:
    3. C: → E:
    4. C: → F:

    答えは、「C:→D:へのコピーがいちばん時間がかかる。」です。 その次に時間が掛かるのがC:→C:。 最も速いのはC:→E:あるいはC:→F:が同じくらいです。 意外でしたか?
    なぜかというと コピーという作業はデーターの読み出しと書き込みとを行うわけですが、読みと書 きとが同じディスクだと、ひとつのヘッド(レコードでいうピックアップみたいな もの)が行ったり来たりを繰り返さなければなりません。 いっぽう上の例でC:→E:あるいはC:→F:では読み取りのヘッドと書き込みのヘッドは別々で、それぞれの位置をあまり動かずに済みます。 すなわち同じディスクの異なる場所へのコピーはヘッドの往復運動のためにた いへん時間が掛かるということです。 このことを使えばC:→D:へ大きなファイルをコピーする場合いったん別のディスクを経由して C:→E:、E:→D:としたほうが直接にコピーするよりも速くなったりします。 一時保存できる空きがE:にある場合ですけど、、、(^^;
    ただしC:→C:のような同じパーティション内の移動はほとんど時間がかか りません。 これはデーターの本体を移動させるのではなく、位置情報だけを書き換えるからで す。 パーティションを越える移動はコピーと同じ時間がかかります。
Update 9 Mar 2001, Origin 14 May 2000
The Bar Master
Shino's Bar
アドバイスは掲示板または E-mail で マスターまで
Shino's Bar goto [シノバー店内案内] [マスターの部屋] [DOS/Vマシンの自作] [ MPEG2最前線 ]