|
「元麻布春男の視点:Windows 2000のUltra ATA/100サポートはSP2で改善されたのか」で解説しているように、Windows 2000におけるATA/ATAPI(IDE)デバイスのサポートは完成度の点で疑問が残るものであった。Windows 2000におけるUltra DMA/100(Ultra DMAモード5)の未サポートによる混乱が、結局のところService Pack 2で改善されるまで続いたことは記憶に新しい。これは、Windows 2000とUltra ATA/100対応デバイスのリリース時期が重なったため、動作検証が十分でなかったことが原因と考えられる。
Windows XPでは、Windows 2000における反省が生かされ、ATA/ATAPIデバイス・サポートが随所で改良されている。以下、順を追って解説する。
転送モードの動的変更と詳細表示のサポート
Windows XPの標準IDEドライバにおける最大の改良点は、IDEの転送モードを動的に変更できるようにしたことだ。これはWindows 2000はもちろん、Windows 9x/Meでもサポートされていなかった機能である。これまでのWindowsの標準IDEドライバは、IDEのDMA転送設定(Ultra DMAやMultiword DMAといったDMAを利用する転送モードの設定)を有効/無効に変更するたびにOS自体の再起動を必要とした。それに対し、Windows XPではDMA転送の有効/無効の設定は動的に反映され、OSの再起動は要求されない。
また、Windows 2000と同様にデバイス・マネージャでの転送モードの手動設定も従来どおりサポートされている。Windows XPでは、転送モード表示が改良されており、DMA転送を選択した場合に限って、現在選択されている転送モードが完全に表示される(PIO転送についてはこれまで同様、モード番号は表示されない)。例えば、Ultra DMAモード5まで対応しているデバイスが、実はモード2で動作していた、というトラブルがあっても、Windows XPでは検出が容易になっているわけだ。
Windows 2000の[デバイス マネージャ]の画面 | |||
Windows 2000の[デバイス マネージャ]-[IDE ATA/ATAPIコントローラ]-[プライマリIDEチャネル]-[プロパティ]を表示したところ。Windows 2000ではIDEチャネルの[プロパティ]に転送モードが表示されるが、モードの名称のみ示すもので、転送モードの番号までは表示されない。Ultra DMAモード3以上に対応したデバイスが、80芯ケーブルを用いなかったことで、実際にはUltra DMAモード2以下で動作していたというトラブルは、エンド・ユーザーがIDEデバイスを増設した場合にありがちだ。しかし、標準IDEドライバを用いている限りWindows 2000上からは確認できない。 | |||
|
Windows XPの[デバイス マネージャ]の画面 | ||||||
Windows XPの[デバイス マネージャ]-[IDE ATA/ATAPIコントローラ]-[プライマリIDEチャネル]-[プロパティ]を表示したところ。Windows XPでは、現在選択されている転送モードが(DMA転送の場合に限り)そのモード番号まで正確に表示されるようになった。PIO転送については従来どおりモード番号が表示されないが、実際のところモード番号を知る必要が生じるのはUltra DMAモードの場合に限られるため、実用上の障害はない。 | ||||||
|
DMA転送失敗時の対策機能を装備
Windows XPでは、IDEデバイスのDMA転送を極力有効にするために、ハードウェア側の問題によりDMA転送に失敗する可能性がある場合、または実際に転送に失敗した場合の対策が追加されている。逆に問題がなければ、自動的にDMA転送が有効の状態でセットアップされる。
まず、DMA転送で問題が生じることが判明している特定のチップセットの場合、PIOモードがデフォルトの転送モードとして選択される。この「特定のチップセット」がどのベンダの製品かは明らかにされていないが、Windows XPをクリーン・インストールした状態で、通常ならばDMA転送に設定されているハズのIDEハードディスクがPIO転送モードに設定されているような場合は、この「特定のチップセット」を採用したPCであることを疑った方がよいだろう。この場合、DMA転送モードに切り替えるかどうかは、ユーザーの判断に委ねられる。
次に、DMA転送でタイムアウト・エラーが6回発生した場合、Windows XPは該当するIDEデバイスの転送モードを、自動的にDMAモードからPIOモードに変更する。この障害は、IDEデバイスがDMA転送で深刻な互換性問題を抱えている場合に該当する。この場合は、転送モードがPIOモードに変更されたうえ、再度DMAモードに切り替えることができなくなる。この状態からDMA転送を有効にするには、デバイスの再インストールが必要になる。
特にUltra DMA対応デバイスの場合、さらにCRCによるデータ転送エラーが6回検出された場合には、Ultra DMAの転送モードを段階的に下げるよう設定されている。例えば、Ultra DMAモード5(Ultra DMA/100)をサポートしたデバイスでCRCエラーが6回発生した場合、次はUltra DMAモード4(Ultra DMA/66)、続いてモード3と段階的に下げる。ハードウェアがサポートする最低のUltra DMAモードに変更してもエラーが検出される場合は、PIOモードに変更する。PIOモードに変更されたデバイスを、再度DMA転送モードに変更する場合には、OSの再起動が必要になる。
これらのフェイル・セーフ機能は、前述した転送モードの動的変更のサポートがあればこそ実現できた機能だ。逆に言えば、IDEデバイスの転送モードの動的変更機能は、このために導入された機能と考えられる。なお、CRCエラーによるUltra DMAモードの変更、あるいはDMA転送のタイムアウトによるPIOモードへの変更が発生した場合は、システム・イベント・ログにエラー情報が記録されるので、[イベント ビューア]で確認できる。
CD-R/RWドライブとDVD-ROMドライブはDMA転送がデフォルト
Windows 2000では、IDEハードディスクに限り、DMA転送はデフォルトで有効になった。Windows XPでも、基本的にIDE接続のリムーバブル・デバイス、すなわちATAPIデバイスはPIO転送モードに設定される。しかしその中でも、CD-R/RWドライブとDVD-ROMドライブは例外で、初期設定がDMA転送を有効にした状態に変更されている。
CD-R/RWドライブとDVD-ROMドライブのデフォルト設定が、Windows 2000から変更されたのは、Windows XPにおいてCD-R/RWドライブの書き込み機能が標準でサポートされたことや、Windows Media PlayerがDVDビデオの再生に対応(CODECをユーザーが追加インストールする必要がある)したことが理由として考えられる。CD-R/RWドライブの書き込みとDVDビデオの再生は、ともにプロセッサ負荷の高い処理であり、データ転送速度も高速な方が望ましいのは明らかだ。こうした背景から、DMA転送をデフォルト設定に採用したと考えられる。
またこれらのデバイスは、製造年次が比較的新しいことから、DMA転送にまつわる互換性問題をクリアしているものが多い。これも、DMA転送をデフォルト設定にした理由として挙げられるだろう。逆にATAPIデバイスの代表ともいえるCD-ROMドライブは、DMA転送のサポートに問題のある古い製品が少なくないためか、PIO転送がデフォルトとなっている。
以下のハードウェア構成のPCシステムで、複数のCD-ROMドライブおよびDVD-ROMドライブ、CD-R/RWドライブにおけるデフォルトの転送モードをWindows XP Professional(RC1)の環境で調べてみた。公表されている情報のとおりならば、CD-ROMドライブは「PIOモード」、CD-R/RWドライブ、DVD-ROMドライブは「DMAモード」に設定されるはずだ。
項目 | 内容 |
プロセッサ | Celeron-900MHz |
マザーボード | MSI 815ET Pro BIOS V8.0(Intel 815E) |
AOpen AX37 Plus BIOS R1.23(VIA Apollo Pro266) | |
メイン・メモリ | MSI 815ET Pro: 256bytes PC133 SDRAM DIMM |
AOpen AX37 Plus: 256bytes PC2100 DDR SDRAM DIMM | |
ハードディスク | 15Gbytes 5400RPM Ultra ATA/100対応IDEハードディスク(IBM DPTA-351500) |
グラフィック・カード | Creative 3DBlaster GeForce2 GTS |
ネットワーク | Intel PRO/100+マネージメント・アダプタ |
テストに用いたシステム | |
Intel製チップセットとVIA Technologies製チップセットを搭載した2種類のシステムを用意した。どちらもIDEホスト・コントローラはチップセットに内蔵されているものを使用している。 |
種類 | ベンダ/製品名 |
DVD-ROM/CD-R/RWコンボ・ドライブ | リコー MP9120A |
DVD-ROMドライブ | Samsung SD-612 |
パイオニア DVD-105S | |
CD-R/RWドライブ | LG電子 CED-8080B |
ミツミ CR-4804TE | |
CD-ROMドライブ | 松下寿 CR-593-B |
ASUSTek CD-S360 | |
テストに用いたATAPIデバイス |
その結果を下表にまとめた。テストの結果は予想と違わないものだった。なお、テストに用いた2台のCD-ROMドライブの転送モードは、手動で変更することにより、仕様どおりUltra DMAモード2に設定できた。もちろん転送モードは、IntelとVIA Technologiesのいずれのチップセットでも動的に変更された。
MP9120A | SD-612 | DVD-105S | CED-8080B | CR-4804 | CR-593-B | CD-S360 | |
仕様上の最大転送モード | UDMA2 | UDMA2 | UDMA2 | MDMA2 | MDMA1 | UDMA2 | UDMA2 |
Intel 815E | UDMA2 | UDMA2 | UDMA2 | MDMA2 | MDMA1 | PIO | PIO |
VIA Apollo Pro266 | UDMA2 | UDMA2 | UDMA2 | MDMA2 | MDMA1 | PIO | PIO |
実験結果 | |||||||
UDMA=Ultra DMA、MDMA=Multiword DMA |
DVD-RAMドライブのデフォルト転送モードはDMA転送モード
Windows XPでは、新たにDVD-RAMドライブのサポートが追加されている(「Windows XPの正体:Windows XPで正式サポートされたDVD-RAM」参照)。ATAPIデバイスのDMA設定の変更が、上述のような理由からならば、DVD-RAMドライブもデフォルトでDMA転送が有効になりそうだが、マイクロソフトのドキュメントには記述がない。
編集部で試した限り、東芝製のDVD-RAMドライブ「SD-W2002」とIntel D850GBマザーボードの組み合わせでは、デフォルトで転送モードがDMA転送に設定された(動作モードはスペックどおり、Multiword DMAモード2)。サンプル数が1機種のため断言はできないが、DVD-RAMドライブはCD-R/RWやDVD-ROMドライブと同様に、ほかのATAPIデバイスとは区別され、デフォルトでDMA転送となるようだ。
Big Driveはレジストリ操作でサポート可能
「動向解説:IDEディスクの壁を打ち破る最新ディスク・インターフェイス」で解説しているように、まもなくFast Drive(Ultra ATA/133)およびBig Drive(48bit LBA)をサポートしたIDEハードディスクが出荷される。Windows XPは、Big Driveについてはレジストリの変更によってサポート可能となっているが、Fast Driveの対応については、明らかになっていない。OSリリース時のATA/ATAPI規格の拡張は、過去にWindows 2000とUltra ATA/100の組み合わせで混乱した前例があるだけに、互換性問題の発生が心配される。
互換モードからネイティブ・モードへのスイッチをサポート
DMA転送とは直接関係ないが、Windows XPのIDEドライバでは、PCの設計自体に変更が必要な機能の追加が行われているので、ここで紹介する。Windows XPは、IDEホスト・コントローラのネイティブ・モードと互換モードの切り替えを新たにサポートした。IDEホスト・コントローラのほとんどはPCIデバイスだが、通常のPCIデバイスとは異なり、IRQの14番と15番が固定的に割り当てられている(通常のPCIデバイスでは、プラグ・アンド・プレイの働きにより、空いている不特定のIRQが選択・割り当てられる)。これは、MS-DOSなど過去のOSとの互換性を維持するためだ。
ネイティブ・モードとは、このように特殊な扱いをされてきたIDEホスト・コントローラを、通常のPCIデバイスと同様に扱う動作モードだ。これにより、プライマリ/セカンダリIDEインターフェイスが1つのIRQだけで制御できるほか、14〜15番以外のIRQでも動作するようになる。このようにIRQの制限が緩和されるため、PCカードなどのためシステム・リソースが不足がちのノートPCには有効な機能である。またネイティブ・モードでは、PCI-PCIブリッジの先にIDEホスト・コントローラを置くことができるようになるため、PC設計の自由度も増す。
いいこと尽くめに見えるネイティブ・モードだが、Windows 9x以前のOSや、BIOSに内蔵のOS起動ルーチンとの互換性に難がある。PCが起動してからOSがブートするまで、つまりBIOSの制御下でIDEホスト・コントローラの動作モードをネイティブ・モードに切り替えるには、ディスクBIOSの大幅なコード書き換えが必要になるし、何よりWindows 9x以前のOSが正常にブートできなくなる可能性が高い。そこでWindows XPは、OS起動直前は互換モードでも、Windows XPの起動中にネイティブ・モードに切り替えられるようにしている。この起動時の動的変更には、IDEホスト・コントローラとACPI BIOSの両方に機能の追加を必要とする(とはいえ、BIOS側の修正規模は小さくて済むようだ)。現在、ネイティブ・モードのサポートを表明しているのは、今夏に発表されたばかりのノートPC向けチップセット「Intel 830M(82801CAM)」のみで、市販のPCがこの機能をサポートするようになるのはしばらく先になりそうだ。
■
このようにWindows XPでは、IDEインターフェイスでいくつかの機能拡張が行われ、より高い性能と安定した動作を実現可能にしている。ハードディスクの急速な容量拡大や性能向上とともに、IDEインターフェイスは変革期を迎えており、Windows XPのリリース後もService Packなどで機能の変更・追加が行われる可能性も高いだろう。
関連記事(PC Insider内) | |
Windows 2000のUltra ATA/100サポートはSP2で改善されたのか | |
Windows XPで正式サポートされたDVD-RAM | |
IDEディスクの壁を打ち破る最新ディスク・インターフェイス |
INDEX | ||
Windows 2000 Insider/PC Insider合同特別企画 | ||
Windows XPの正体 | ||
次世代に向けたCD-R/RWの書き込み機能のサポート | ||
セーフモードが高解像度対応になるWindows XP | ||
文字表示を滑らかにする新技術「ClearType」 | ||
Windows XPで正式サポートされたDVD-RAM | ||
大幅に改善されたWindows XPのIDEサポート | ||
Windows XPのドライバ・インストールに関する安全機能 | ||
高速化されたスタンバイ状態と休止状態 | ||
Windows XPの正体 |
- 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)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
|
|