元麻布春男の視点
Windows 2000のUltra ATA/100サポートはSP2で改善されたのか


元麻布春男
2001/06/08

 2001年6月1日、ついにWindows 2000 Service Pack 2(以下SP2と略)がリリースされた。基本的にSP2は、Service Pack 1(以下SP1と略)以降に見つかった不具合を修正するものだ(詳しくはWindows 2000 Insiderの「速報:Windows 2000 Service Pack 2 日本語版」を参照のこと)。その一覧は、マイクロソフトのサポート・ページにある「Windows 2000 Service Pack 2 修正一覧」からたどれるリンクで確認することが可能だ。ただ、この一覧にリストされている不具合は、固有のハードウェアやソフトウェアに依存したように見えるものも多い。「SP2が自分には無縁のもの」と感じているユーザーが多いかもしれない。それでも、一応SP2を当てておくか、というのが一般的な対応かもしれない。

Windows 2000のSP1まではATAサポートに問題あり

 そんなSP2の中にあって、多くのユーザーが恩恵を受けられそうな修正が1つある。それは、ATAサポートの改善だ。SP1までのWindows 2000には、ATAサポートに大きな問題があった。まず、マイクロソフトのサポート技術情報(Knowledge Base)による問題の説明を行おう(マイクロソフトのサポート技術情報検索のページ)。

 Knowledge Baseの文書番号Q260233によると、

Windows 2000は ATA 100(Ultra DMA Mode 5)をサポートしておらず、ATA 100対応のハードディスクはWindows 2000ではATA 66(Ultra DMA Mode 4)のドライブとして扱われるという。この問題を解決するパッチとして「Patch to Add Support for ATA 100 IDE Hard Disk Drives(英語版)」を用意しているが、もしこの問題が深刻でなければ、後にリリースされるService Pack(SP2)を待つことをマイクロソフトとしては推奨する、という不思議な注意書きが添えられていた。

 この注意書きの原因(?)と思われる問題が、やはりKnowledge Baseの文書番号Q269555に記述されている。それによると、上記のパッチをあてると、[デバイス マネージャ]は誤って、Ultra ATA/100ドライブのデータ転送モードを、「Ultra DMAモード」ではなく「PIOモード」として表示することがあるという。そして、これは表示の問題だけなので無視するように、と記されている。

ATA(IDE)の転送モードとは?
 
現在のATA(IDE)インターフェイスで用いられるデータ転送のプロトコルのことを「転送モード」という。転送モードは大別すると「PIO(Programmed I/O)」「Singleword DMA」「Multiword DMA」「Ultra DMA」の4種類がある。PIOモードは、ATAの誕生当初から存在するモードだが、今となっては転送速度が遅い(最大転送速度16.6Mbytes/s)うえ、プロセッサの負担も大きいため、あまり使われていない。現在主流なのはUltra DMAモードで、16.6M〜100Mbytes/sの範囲で6段階の速度調整が可能であり、プロセッサの負担も小さい。詳細は「PC TIPS:IDEハードディスクの転送モードにかかわるトラブルを解決するには?」を参照していただきたい。

 つまりSP1までのWindows 2000におけるATAの問題は、

  1. 標準のATAドライバは、Ultra DMA Mode 5をサポートしておらず、Ultra ATA/100ドライブはすべてUltra ATA/66ドライブとして扱われる
  2. Ultra DMA Mode 5をサポートするためのパッチは用意してあるが、これを用いるとUltra ATA/100ドライブであるにもかかわらず、[デバイス マネージャ]上のデータ転送モードが「PIOモード」と表示されることがある

というのがマイクロソフトによる公式な見解というわけだ。

SP1まではPIOモードになる可能性がある

 だが、筆者の経験におけるWindows 2000におけるATAの問題は、これとは若干異なる。「Windows 2000がUltra DMA Mode 5をサポートしていない」ということについて特に異論はない。しかし、その症状についてはマイクロソフトと意見を異にするのである。筆者によるWindows 2000のATAサポートの問題は、

「Ultra DMA Mode 5をサポートしていないSP1までのWindows 2000は、Ultra DMA Mode 5をサポートしたBIOS、IDEコントローラ、IDEドライブの組み合わせであるにもかかわらず、ハードディスクのデータ転送モードがPIOモードになってしまうことがある」

ということにつきる。

 これがどういうことかを具体的に示すために、

  1. Windows 2000のクリーン・インストール状態
  2. 1にINF Update*1を加えた状態
  3. Windows 2000にSP1を付与した状態
  4. 3にINF Updateを加えた状態
  5. Windows 2000にSP2を付与した状態
  6. 5にINF Updateを加えた状態

の6つで、[デバイス マネージャ]上で[IDEコントローラ]がどのように表示されるか、そのときのUltra ATA/100ドライブの[現在の転送モード]は何と表示されるか、をまとめてみた。もちろん、転送モードは[DMA(利用可能な場合)]に設定してある(というより、ハードディスクについてはこれがデフォルトのハズ)。

*1 ここでいう「INF」とは、チップセットなどのハードウェアをOSに正しく認識させるのに必要な情報を記したテキスト・ファイルのことだ。「INF Update」とは、INFファイルをより新しいものにアップデートするプログラムを指す。

 ここで用いたのは、Ultra DMA Mode 5をサポートしたATAコントローラを内蔵するICH2(Intel製チップセットに含まれるサウスブリッジの一種)を用いた2種類のマザーボードだ。1枚はIntel 815Eチップセット(82815 GMCHと82801BA ICH2の組み合わせ)を用いたIntel純正マザーボードである「D815EEA」、もう1枚はIntel 850チップセット(82850 MCHと82801BA ICH2の組み合わせ)を用いたマザーボードであるAOpenの「AX4T」だ。この2枚のマザーボードのプライマリATAチャネルのマスタとして、40GbytesのUltra ATA/100ドライブ(IBMのDeskstar 60GXP)を接続している。加えたINF Updateは、本稿執筆時点における最新バージョンであるVer 2.90.007だ。ちなみにこのREADME.TXTファイルには、次世代のIntel製サウスブリッジICH3Mについての短い記述があるものの、ICH3の記述は見られない。次世代Pentium III向けチップセット「Intel 830M」にはICH3Mが用いられるものと思われる。

大きな画面へ
D815EEAの[プライマリIDEチャネルのプロパティ]画面
SP1にINF Updateを加えた状態。D815EEAでは、Intel製ATAドライバを加えない限り、SP1までのWindows 2000では、ハードディスクのデータ転送モードが「PIOモード」になってしまう。
 
大きな画面へ
AX4Tの[プライマリIDEチャネルのプロパティ]画面
AX4Tではいっさいのドライバや、Service Packをインストールしなくても、ハードディスクのデータ転送モードは「Ultra DMAモード」に設定される。

 テスト結果をまとめたのが以下の表だ。INF Updateを加えない限り、ICH2のATAコントローラは[標準デュアルチャンネルPCI IDEコントローラ]と認識される。そしてINF Updateを加えると表示は[Intel (R) 82801BA Ultra ATA Storage Controller - 244B]に変わる。これは、コントローラとINF Updateが共通なので、2枚のマザーボードとも、同じになるのが当然のことだ。

  IDEコントローラの表示 ATA 100ドライブの「現在の転送モード」表示
Intel D815EEA (Intel 815E)
Windows 2000クリーン・インストール (1) 標準デュアルチャンネルPCI IDEコントローラ PIOモード
(1)+SP1インストール (2) 標準デュアルチャンネルPCI IDEコントローラ PIOモード
(1)+SP2インストール (3) 標準デュアルチャンネルPCI IDEコントローラ Ultra DMAモード
(1)+INF Updateインストール Intel 82801BA Ultra ATA Storage Controller - 244B PIOモード
(2)+ INF Updateインストール Intel 82801BA Ultra ATA Storage Controller - 244B PIOモード
(3)+INF Updateインストール Intel 82801BA Ultra ATA Storage Controller - 244B Ultra DMAモード
AOpen AX4T (Intel 850)
Windows 2000クリーン・インストール (1) 標準デュアルチャンネルPCI IDEコントローラ Ultra DMAモード
(1)+Service Pack 1インストール (2) 標準デュアルチャンネルPCI IDEコントローラ Ultra DMAモード
(1)+Service Pack 2インストール (3) 標準デュアルチャンネルPCI IDEコントローラ Ultra DMAモード
(1)+INF Updateインストール Intel 82801BA Ultra ATA Storage Controller - 244B Ultra DMAモード
(2)+INF Updateインストール Intel 82801BA Ultra ATA Storage Controller - 244B Ultra DMAモード
(3)+INF Updateインストール Intel 82801BA Ultra ATA Storage Controller - 244B Ultra DMAモード
各状態におけるUltra ATA/100ドライブの[現在の転送モード]

D185EEAとAX4Tのデータ転送モードが違ってしまう原因は?

 問題は、Ultra ATA/100ドライブの[現在の転送モード]にある。D815EEAでは、例えINFファイルをアップデートしても、SP2を当てない限り、ハードディスクのデータ転送モードは「PIOモード」のままだ。しかし、AX4Tでは、何もしなくても最初からハードディスクのデータ転送モードは「Ultra DMAモード」に設定されている。

 となると次の疑問は、D185EEAとAX4Tのデータ転送モードが違ってしまう原因は何かということと、「PIOモード」という表示になっているD815EEAのデータ転送モードは、本当に「PIOモード」なのか、の2点に絞られてくる。

 まず最初の疑問だが、正直に言うと筆者にはこの理由がハッキリとは分からない。真っ先に疑われるのはBIOSなのだが、もしBIOSの問題だとしたら、なぜBIOSをアップデートしなくてもSP2を加えれば問題が解消する(データ転送モードが「Ultra DMAモード」になる)のだろうか。しかもSP2がなくても、Intel製のATAドライバを加えれば、BIOSをアップデートしなくてもハードディスクはUltra DMA Mode 5で動作する。また、Windows 9x系のOSであれば、いずれのマザーボードでも標準のドライバでUltra DMAモードがサポートされている。BIOSに致命的な問題があるのならば、それはWindows 2000に比べてBIOSへの依存度が高いと思われるWindows 9x系のOSで問題にならない理由が説明できない。

 確かに同じICH2ではあるが、D815EEA(Intel 815E)とAX4Tではチップのリビジョンが違う(少なくとも製造時期が違う)という意見もあるかもしれない。筆者もそう思って、D815EEAと同じころの別のマザーボードでもテストしてみた。用いたのはASUS Tek製マザーボード「CUC2」で、使っているチップセットはIntel 820E(82820 MCHと82801BA ICH2の組み合わせ)だ。残念ながらCUC2は、IBM製のハードディスクと相性が悪く(なぜか同社製のマザーボードには時折この現象が現れる)、別のドライブ(Maxtor DiamondMax Plus 60)を用いたため、表には載せなかったのだが、結果はAX4Tとまったく同じになった。

 残念ながら型番などを記憶していないのだが、筆者はVIA Technologies製のチップセットを用いたマザーボードでも、Ultra ATA/100ドライブがPIOモードになってしまう、という経験をしたことがあり、この問題がICH2固有の問題でないことも分かっている。以上のことから筆者は、この問題の原因について、マザーボード側(BIOS側)に何らかの問題がある可能性は否定しないものの、より致命的な問題があるのはOS側(ドライバ側)ではないかと推察している。

D815EEAでPIOモードと表示されるデータ転送モードの正体

 次に、D815EEAで「PIOモード」と表示されるデータ転送モードの正体だが、これを調べる簡単な方法は存在しない。上述したように、[デバイス マネージャ]の表示ですらアテにはならないことをマイクロソフト自身が認めている。そこで、ここでは間接的な方法ではあるが、CPU占有率を含めたハードディスクのベンチマーク・テストを実行して調べてみた(CPU占有率が高ければPIOモードになっている可能性が高い)。用いたのはZiff Davis MediaのWinBench 99 Ver 1.2のDiskWinmarkである(Ziff Davis MediaのWinBench 99のダウンロード・ページ)。ベンチマークは、すべてINF Updateを加えた状態でのみ実行している。また、参考までにIntel製のATAドライバを加えた状態も測定してみた。

 その結果をまとめたのが次の表だ。SP1にINF Updateを加えた状態([現在の転送モード]は「PIOモード」)は、明らかにデータ転送レートが低いうえ、CPU占有率が著しく高い。もちろんこれは、プロセッサがCeleron-700MHzであることも影響している。しかし、ほかの設定のデータとも比較して、どう考えてもPIOモードで実際に動いているとしか思えない。つまり、文書番号Q269555の例のように、単に表示が間違っているのではなく、この場合は実際に「PIOモード」で動いている、ということになる。

マザーボード D815EEA
プロセッサ Celeron-700MHz
メモリ 256Mbytes PC133 CL2
グラフィックスカード GeForce2 GTS
LAN 3C905-TX
サウンド YMF744
ハードディスク(プライマリATAマスタ) Deskstar 60GXP 40Gbytes
DVD-ROMドライブ(セカンダリATAマスタ) SD-M1212
フロッピー(セカンダリATAスレーブ) LKM-F934-1(LS-120)
Intel ATA Driver Ver 6.10.011
ベンチマーク・テストに用いたPCの構成
 
WinBench 99 Ver 1.2 Business Disk WinMark High End Disk WinMark 推定されるデータ転送モード
SP1+INF Update 4370(64.95%) 5950(93.97%) PIO Mode 4(最大16.7Mbytes/s)
SP1+INF Update+Intel ATA Driver 8040(36.83%) 21500(23.45%) Ultra DMA Mode 5(最大100Mbytes/s)
SP2+INF Update 6440(29.77%) 21000(23.64%) Ultra DMA Mode 5(最大100Mbytes/s)
SP2+INF Update+Intel ATA Driver 7470(34.05%) 20900(22.70%) Ultra DMA Mode 5(最大100Mbytes/s)
D815EEAによるDiskWinmarkの結果とそのときのCPU占有率(カッコ内はCPU占有率)

 このことが示すのは、文書番号Q260233が示すように、Windows 2000はUltra ATA/100ドライブを必ずUltra ATA/66ドライブとして扱うとは限らない、ということだ。Windows 2000は本来非サポートであるUltra ATA/100ドライブを未知のものとして、PIOモードに設定してしまうことがあると考えられる。

 ちなみに、参考までにAX4Tにおいても、同様のベンチマーク・テストを行ってみた。ここではテスト条件に、Windows 2000にINF Updateを加えただけの状態も追加してある。以下の表に示した結果を見る限り、どうやらAX4Tではすべて「Ultra DMAモード」で動作しているようだ(表に示した性能差がUltra DMA Mode 4とMode 5の違いによるものと断言できるかどうかについては、ここでは判断を留保しておきたい)。

マザーボード AX4T
プロセッサ Pentium 4-1.4GHz
メモリ 128Mbytes PC800 DRDRAM
グラフィックスカード GeForce2 GTS
LAN EtherExpress PRO/100+
サウンド YMF744
ハードディスク(プライマリATAマスタ) Deskstar 60GXP 40Gbytes
DVD-ROMドライブ(セカンダリATAマスタ) SD-M1212
フロッピー(セカンダリATAスレーブ) LKM-F934-1(LS-120)
Intel ATA Driver Ver 6.10.011
ベンチマーク・テストに用いたPCの構成
 
WinBench 99 Ver 1.2 Business Disk WinMark High End Disk WinMark 推定されるデータ転送モード
Windows 2000+INF Update 7160(21.12%) 19500(9.79%) Ultra DMA Mode 4(最大66.7Mbytes/s)
SP1+INF Update 6560(18.84%) 19300(9.23%) Ultra DMA Mode 4(最大66.7Mbytes/s)
SP1+INF Update+Intel ATA Driver 8730(24.91%) 21000(11.02%) Ultra DMA Mode 5(最大100Mbytes/s)
SP2+INF Update 7050(20.53%) 20000(9.83%) Ultra DMA Mode 5(最大100Mbytes/s)
SP2+INF Update+Intel ATA Driver 8100(23.70%) 21900(11.30%) Ultra DMA Mode 5(最大100Mbytes/s)
AX4TによるDiskWinmarkの結果とそのときのCPU占有率(カッコ内はCPU占有率)

SP2のインストールで解決するのが最善か

 というわけで、Windows 2000 SP1までのATAドライバには、何かしらかの問題がある。マイクロソフトも、問題があることは認識しているのだが、筆者の経験とは微妙に異なる(このあたりが、どうも薄気味悪い)。問題が、ATAドライバという、多くのユーザーのプライマリ・ストレージに関することだけに、できる限りスッキリした解決策がほしいところだ。

 その解決策として、SP2以外に考えられるのは、チップセット・ベンダが提供するATAドライバを用いるという方法だ(今回はIntel製のATAドライバを用いた)。実際、今回用いたIntel製のATAドライバは、表で示したように、差はそれほど大きくないが、Windows標準のドライバより高い性能を示す傾向にある。ただ、筆者はIntel製ATAドライバとCD-R/RWライティング・ソフトウェア間の相性問題を経験したこともあり、一概にIntel製ドライバを用いた方がよいとは言いにくい(Windows標準ドライバに戻したところ、問題は解消した)。

 やはり、Windows 2000のATAにまつわる問題をクリアする最善の方法は、SP2を導入することだろう。今回のテストが示したように、SP2でデータ転送モードの問題が解決することは間違いない。また、筆者は経験していないが、Q269555の問題(誤表示の問題)もSP2では生じないとされている。バックアップをとった(筆者はアンインストール・オプションを信用していない)うえでSP2を導入する、というのがベストの選択ではないだろうか。記事の終わり

  関連記事
IDEハードディスクの転送モードにかかわるトラブルを解決するには?
速報:Windows 2000 Service Pack 2 日本語版

  関連リンク 
Windows 2000 Service Pack 2 修正一覧
サポート技術情報検索のページENGLISH
Knowledge Baseの文書番号Q260233ENGLISH
Patch to Add Support for ATA 100 IDE Hard Disk DrivesENGLISH
Knowledge Baseの文書番号Q269555ENGLISH
WinBench 99のダウンロード・ページENGLISH
 
「元麻布春男の視点」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間