TOP Main BBS Paint BBS FFXI on SW LUNATIC DAWN KOIKI UserList Mail Form

2005年10月07日

SATA が PIO になる病気

HDD を変更してから一ヶ月、Windows が勝手に「SATA の転送モードを最高速度よりも低く設定してしまう」と言う病気に掛かってました。しかし、やっと完治したかもしれない26

PIO病またはPIO地獄とは、いつのまにやらWindowsがIDEデバイスの転送モードをPIOに変更してしまい、3MB/s(最近のHDDなんかだと50MB/sくらいは出る)くらいしか転送速度が出なくてOSの起動やら全てが遅くなってしまう現象です。

PIO病hail2u.net

こちらにこの症状が発生する場合の治療方法がありました。本当に助かりました24
これが発病すると何もかも遅くなり、ドライバーを入れ替えたとしても根本から治さない限り再発する(ドライバーを最新にしても変化はなかった4)。と言うのも、これは Windows の仕様なのだそうです。つまり、強制的にこの仕様を変更する必要がある訳ですね。

「DMA による転送が 6 回失敗したら PIO に変更する」

良く調べてみると、HDD のエラーログに一際目立っていたのが「アクセスエラー」でした。要はそれが「6 回」起こると「PIO に変更」されていたのですね・・・困った仕様です。不慮の事故を防ぐ為なのでしょうか?
と言う訳で、前回デフラグを掛けた時などは HDD にアクセスし通しなので、エラーは無数に起こっていたのではないでしょうか・・・当然「PIO に変更」されてしまいますね5

さて回避方法ですが、hail2u.net さんのエントリーを読んでいただけると一目瞭然ですが、これには「レジストリ」を弄る必要があります。あくまで自己責任でお試し下さい。

HKEY_LOCAL_MACHINE
└SYSTEM
 └CurrentControlSet
  └Control
   └Class
    └{4D36E96A-E325-11CE-BFC1-08002BE10318}
     └<PIOになっているデバイス>
        プライマリーなら 0001
        セカンダリーなら 0002
      └ResetErrorCountersOnSuccess
      └MasterDeviceTimingModeAllowed
        マスター接続の場合。
        スレーブなら SlaveDeviceTimingModeAllowed

ResetErrorCountersOnSuccess
 →DWORD 値を「1」に。なければ新規で作成します。

MasterDeviceTimingModeAllowed
 →DWORD 値を「ffffffff」とする(標準の設定?)。

この修正を行なうと、以下のような動作に変更されるそうです。

「DMA による転送が 6 回連続で失敗したら PIO に変更する」

それぞれ修正し、Windows を再起動します。その後デバイスを確認して直っていれば成功です。くどいようですが、レジストリを弄るのであくまでも自己責任で24

追記:
MasterDeviceTimingMode(マスター接続の場合。転送モードの固定)の値を指定する事もできるようですが、ハードが対応している範囲内でしか指定できません。対応していなければ元のモードに戻ります。

Posted by wind at 13:09 | Comments [0] | Trackbacks [1]
トラックバックURL


トラックバック

» PIO病回復! from blog:ポケットアルバム
自分のPCのHDD構成はIDE1台,SATA1台の2台なのですが... [Read More]

Tracked on 2006年08月16日 11:44
コメントして下さい




太字 イタリック アンダーライン ハイパーリンク 引用


コメントありがとうございます♪
最後にコードの入力をお願いします。「確認」する場合は修正ページで入力してください。なお、サインインした場合は表示されません。