パソコンが重かった犯人はHDDの転送モード(DMAがPIOになってた!)

| コメント(0) | トラックバック(0)

ここ数ヶ月ほど、パソコンの起動が遅いな~、ブラウザの動作が遅いな~とか思っていましたが、昨日、やっと解決しました。半分だけですが・・・

メインパソコンのスペックはこちらで、確かに最近のCore2とかPhenomとかの環境に較べれば何世代も遅れています。でも、古いと言ってもAthlon64だし、メモリは1.5GBだし、HDDも換装しているし、グラフィックカードはGeForce 7950 GTだし、クリーンインストールすればとても快適に動きます。

ところが、Windowsの起動は明らかに遅いし、ATOKの起動がワンテンポ遅いし、JavaScriptのサイトでは動作が低下するし、ストレスがかかる状態に。

スタートアップを減らしたり(元々少ないけど)、不要なサービスを停止しまくったり、使わなくなったソフトウェアをアンインストールしたりと、色々やりましたが、イマイチ改善しません。いや、全く改善しませんでした。

そんな中、昨日、3D系のソフトを起動しようとしたら、途中まで起動して落ちてしまいました。
いよいよおかしいです。
負荷が大きいソフトではありますが、先月までは何とか動いていました。

起動してから落ちるときのパソコン本体の音を聞いていると、どうやらHDDへのアクセスが多く発生しているようでした。
そこで、下記の手順で転送モードを確認。


  1. マイコンピュータを右クリック
  2. プロパティ
  3. ハードウェア
  4. デバイスマネージャ
  5. 「IDE ATA/ATAPIコントローラ」
  6. 「プライマリIDEチャネル」をダブルクリック
  7. 「詳細設定」タブを開きます。
  8. 「デバイス0」の項目を見る

※私のPCではプライマリIDEチャンネルには1台のHDDしか繋いでないので「デバイス0」のみを見ればOKなのです。

このとき、“転送モード”は「DMA(利用可能な場合)」になっているのに、“現在の転送モード”が「PIO」になっていました。
プライマリのマスターにはSeagateのST3120023Aを繋いで起動HDDに使っていますが、ATA100対応なので「ウルトラDMA モード5」でなければいけません。

チップセットがVIA製なので、GIGABYTEのサイトから4in1ドライバの最新版をダウンロードしてインストール。
しかし、それでもPIOのままです。
これは困りました。

そこで、Googleで「DMA PIO 変更」を検索するとYahoo!知恵袋に良さそうな質問と回答を発見!

転送モードをPIOからDMAに変更できません(Yahoo!知恵袋)

ここに、マイコミジャーナルと個人ブログへのリンクがありました。

Windows XPスマートチューニング(75)
HDDの転送モードが変更される問題を解決する

ものづくり本音ブログ
HDDがPIOモードになっちまって……

更に検索して下記のサイトも発見。

DVDドライブのDMAモードを強制的に設定する

これらの記事を見て、下記の手順を実施しました。


  1. スタートメニュー → ファイル名を指定して実行
  2. 「名前」欄に半角で「regedit」と入力してOKボタン
  3. HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Control → Class → {4D36E96A-E325-11CE-BFC1-08002BE10318} の手順で開く。
  4. 「0001」「0002」「0003」...という風に開いていき、右ウィンドウの「Driver Desc」を見ながら目的のものを探し出します。
    私のPCの場合は
    「0001」…VIA Bus Master IDE Controller
    「0002」…セカンダリIDEチャンネル
    「0003」…プライマリIDEチャンネル
    「0004」…プライマリIDEチャンネル
    「0005」…セカンダリIDEチャンネル
    となっていたので(PCの環境によって異なります)、今回は「0003」を選択。
    但し、0003と0004の違いがイマイチ分かりませんでしたので、完全に「勘」です。「MasterDeviceTimingMode」と「MasterIdDataCheckSum」の2つが違うことは分かったのですが・・・。
  5. マスターに接続しているHDDの設定を変えるので、「MasterDeviceTimingMode」をダブルクリック
    スレーブに接続している場合は「SlaveDeviceTimingMode」。
  6. 「ベース」セクションが「16進数」を選択していることを確認
  7. 「値のデータ」欄に半角で「10010」(ATA100なので)と入力し、OK。
    他の場合、ネットで調べると下記の様でした。
    (すべてベースセクションは16進数です)
    MultiwordDMAモード2の場合、半角で「410」(ATA-2 16.6MB/s)
    UltraDMAモード2の場合、半角で「2010」(Ultra ATA/33)
    UltraDMAモード4の場合、半角で「8010」(Ultra ATA/66)
    UltraDMAモード5の場合、半角で「10010」(Ultra ATA/100)
  8. 次に「MasterDeviceTimingModeAllowed」をダブルクリック
  9. 「値のデータ」欄に半角で「ffffffff」と入力し、OK。
    これを実行しないと、次回パソコン起動時に元に戻ります。
  10. パソコンを再起動し、上記手順を確認して値が変更されたままの状態なのを確認して完了。

これでWindowsの起動もその他の動作も速くなりました。

ちなみに、レジストリの書き換えは最悪の場合、Windowsが起動しなくなります。上記の手順を実施される方は自己責任で実施して下さいね。私は全く責任を負えません。
あと、他にもいろんなサイトを調べて回って下さい。

最初に半分だけ解決したと書いたのは、どうやら今回はHDDにハード的なエラーが発生しているようで、Windowsのフェイルセーフ機能というもので転送モードが自動的に下げられていたからのようでした。確かにHDDの動作時に「カックン、カックン」という異音が聞こえています。近日中に新しいHDDを買ってこようと思います。


【本日のキーワード】
IDEハードディスクの転送モードにかかわるトラブルを解決するには?(1)
ATA転送モードの項(Wikipedia)
MasterDeviceTimingMode(Google検索)
MasterDeviceTimingModeAllowed(Google検索)

トラックバック(0)

トラックバックURL: https://osoe.jp/mt/mt-tb.cgi/680

>コメントする

おそえワールド検索

Powered by Movable Type 4.261