トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

PIO病の修復メモ

PIO病の修復メモ

よくある話で、IDE系(SATA含む)で転送が異常に遅くなる。例えばFireFileCopyで転送速度が数MB/secしか出なくなる症状の修復メモ。

大きく分けると

  • デバイスマネージャで当該IDE(SATA)チャネルの削除
  • レジストリを直接いじる

の方法がある。

デバイスマネージャで削除する方法は簡単なので特段記述しない。ただし、システムドライブを含むIDE(SATA)に適用する場合は起動できなくなる可能性があるから、覚悟と準備(回復コンソールなど)はしておくこと。

 レジストリをいじる方法

たぶんWindowsXP SP2以降。以下のキーの

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
 \Control\Class{4D36E96A-E325-11CE-BFC1-08002BE10318}
  \[PIOになっているデバイス]

以下の値をいじる。

MasterDeviceTimingModeAllowed=dword:ffffffff
ResetErrorCountersOnSuccess=dword:1
MasterDeviceTimingModeAllowed=dword:ffffffff
次回再起動時にデバイスの動作モードを再度検出・設定するようにするもの。
ResetErrorCountersOnSuccessdword:1
DMAで動作した場合にはエラーカウンタをリセットし、簡単にPIO固定になってしまわないようにする設定。標準ではDMAでの接続に累積で6回失敗すると、その6回の間にDMAでの接続成功があっても、PIO固定になってしまうらしい。この設定により、途中でDMA接続に成功した場合にはエラーカウンタを0に戻す。

まぁ、そもそもDMAでの接続にそんなに失敗する場合は、ケーブルの質や長さを疑ったほうがいい。あとは、eSATAではないSATAの場合、コネクタが痛んでいる場合もある。ウチではオンボードのコネクタが2つ有り、片方は抜き差しが多かったためか不安定になってしまったことがある。もうひとつのコネクタに差し直しただけで安定した。

最終更新時間:2008年05月30日 20時04分18秒