【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

[Hardware]

IDEハードディスクの転送モードにかかわるトラブルを解決するには?(1)

澤谷琢磨
2001/05/08

 周辺機器をPCに接続したときに生じるトラブルの多くは、周辺機器とPCとの間でハードウェアの仕様が食い違っていることが原因となっている場合が多い。そして、周辺機器とPCの間で設計・製造の時期のずれが大きくなるほど、トラブルが発生する危険性も高まる。基本的にPCと周辺機器とのインターフェイス仕様は、過去の仕様との互換性、つまり下位互換性を維持しながら発展していくものだが、日進月歩で進化していくPCの世界では、高速化・多機能化が優先されてしまい、下位互換性にほころびが生じてしまう場合もあるのが現実である。

 ここで取り上げるIDEハードディスクも例外ではない。「特集:ディスク環境まるごとアップグレード」のようにハードディスクをより新しいものに交換する場合、古いPCと最新のハードディスクの組み合わせがうまくいかず、せっかくの最新ハードディスク本来の性能が正常に発揮されないことがある。本稿では、こうしたトラブルが発生するメカニズムとその解決策を紹介しよう。

IDEの転送モードとは?

 まず最初に、本稿で取り上げるトラブルの原因であるIDEの「転送モード」について触れておこう。10年以上の古い歴史を持つIDEインターフェイスには、ハードディスクの高速化に遅れをとらないよう、転送レートを高めるための仕様がいくどとなく策定・追加されてきた。つまり、技術革新によりハードディスク自体のもつデータ転送の能力が、IDEインターフェイスの最大転送レートを超える頃合いになると、IDEハードディスク・ベンダは、より高速なデータ転送が可能なプロトコル(転送方式)を考案し、ハードディスクに実装しつつ規格として標準化してきたのである。現在、IDEの転送方式は下表のように、大別して「PIO(Programmed I/O)」「Singleword DMA」「Multiword DMA」「Ultra DMA」の4種類からなり、さらにそれぞれには何段階かの「転送モード」が規定されている。

転送方式 モード番号 最大転送レート 対応規格
PIO モード0 3.33Mbytes/s
モード1 5.22Mbytes/s
モード2 8.33Mbytes/s
モード3 11.1Mbytes/s
モード4 16.6Mbytes/s
Singleword DMA モード0 2.08Mbytes/s
モード1 4.16Mbytes/s
モード2 8.33Mbytes/s
Multiword DMA モード0 4.16Mbytes/s
モード1 13.3Mbytes/s
モード2 16.6Mbytes/s
Ultra DMA モード0 16.6Mbytes/s
モード1 25Mbytes/s
モード2 33.3Mbytes/s Ultra ATA/33
モード3 44.4Mbytes/s
モード4 66.6Mbytes/s Ultra ATA/66
モード5 100Mbytes/s Ultra ATA/100
IDEの転送モード一覧
現在、一般的に使用されているのはUltra DMAである。Singleword DMAは、現在の製品には実装されていないことが多い。

 さて、PC側のIDEホスト・コントローラとIDEハードディスクの間でデータを転送するには、両者の転送モードを同一にすることが大前提である。そして、両者の転送モードを揃えるのは、BIOSまたはOSのデバイス・ドライバといった(ファームウェアを含む)ソフトウェアの役目である。一般的には、IDEホスト・コントローラとIDEハードディスク、IDEケーブルなどIDEにかかわるハードウェアがそれぞれサポートしている転送モードをソフトウェアが調査し、ソフトウェア自身も含めて、すべてが共通してサポートしている転送モードから、最も高速なモードを選択・設定する。例えば、IDEホスト・コントローラがUltra ATA/33対応でUltra DMAモード2までしかサポートしておらず、ほかのハードウェア/ソフトウェアがUltra DMAモード5までサポートしている場合には、転送モードとしてUltra DMAモード2が選択されるわけだ。

転送モードの違いによるトラブル例

 以上のように、IDEの転送モード選択では下位互換性を維持するための仕組みが存在する。しかしながら、現実には、理想的な転送モードの選択メカニズムが働かず、互換性問題が発生する場合がある。

 具体的な事例を挙げよう。Pentium IIICeleronチップセットとして広く普及したIntel 440BXに内蔵されるIDEホスト・コントローラは、Ultra ATA/33対応であり、Ultra DMAモード2までサポートしている。この440BXチップセット採用のPCにUltra ATA/100(Ultra DMAモード5)対応IDEハードディスクを接続した場合、本来はUltra DMAモード2が選択されるべきなのに、なぜかMultiword DMAやPIOといった、より低速な転送モードに設定されてしまうことがある。特にPIOでは、ディスク・アクセスが大幅に遅くなるほか、CPU占有率も高くなるため、全体的にPCの反応が鈍くなってしまう。

 この症状の原因は、BIOS内で転送モードの判定と選択を行うプログラムの問題(バグまたは仕様上の問題)である。したがって、440BXと同世代であるほかのUltra ATA/33対応チップセットでも同様のトラブルが発生することもあるし、逆に、同じ440BX搭載機でもトラブルが生じないこともある。

 OS上でも、同じ原理でトラブルが生じることがある。次はWindows 2000の例を挙げてみよう。Windows 2000の標準装備のIDEデバイス・ドライバはUltra DMAモード4までしかサポートしていないので、Ultra DMAモード5対応のIDEハードディスク/ホスト・コントローラを搭載したPCでは、Ultra DMAモード4が選択されることが期待できそうだ。しかしながら、実際にはもっと遅い転送モードが選択されてしまう(下の画面)。

Windows 2000で最適な転送モードの選択に失敗した例
これは、デバイス・マネージャから[プライマリIDEチャネル]のプロパティを選び、[詳細設定]タブを表示させたところだ。[デバイス0]には、Ultra DMAモード5対応IDEハードディスクを接続している。
  プライマリIDEポートのデバイス0(マスタ)の状態
Windows 2000の場合、ここに接続されたIDEハードディスクには、デフォルトで最速のDMA転送モード(Ultra DMAかさもなくばMultiword DMA)が設定される。しかし、[現在の転送モード]を見ると、なぜかPIOで稼働中なのが分かる。ちなみにMultiword DMAに設定された場合、この欄には[DMAモード]と表示される。Ultra DMAなら[Ultra DMAモード]となる。

 Microsoftは公式に、現時点(2001年4月)のWindows 2000がUltra DMAモード5をサポートしていないことを表明している*1ため、上記のような挙動は「バグ」によるものとはいえない。とはいえ、Ultra DMAモード5対応のIDEハードディスクが一般的になっている以上、ユーザーにとって困った問題なのも確かだ。

*1 Microsoftは、このトラブルを解決するためのアップデート(hotfix)を公開しているが、デバイス・マネージャにて転送モードが正しく表示されないという問題が残っている(この件に関するMicrosoftのKnowledge Base:Q260233Q269555)。Microsoftの手で根本的に改善されるのは、次のService Pack 2のリリースまで待たなければならないようだ。

 Windows 9x/Meの環境では、転送モードが正しく選択されない場合、ディスク・アクセスがMS-DOS互換モード(Windowsのネイティブ・ドライバではなくBIOS経由でディスクをアクセスするモード)になってしまうという障害も報告されている。MS-DOS互換モードでは、PCが実用的に利用できないほどディスク・アクセスが非常に遅くなるため、やはり解決しなければならない問題だ。

ソフトウェアのアップデートによる解決が本筋だが…

 まとめると、このトラブルはIDEにかかわるハードウェア/ソフトウェアの間で、それぞれサポートしているIDEの転送モードの食い違いをソフトウェア側が正しく調整すべきなのに、それができていないことが原因といえる。したがって、本来の解決策はソフトウェアの修正、つまりBIOSやOSのデバイス・ドライバを正しく動作するバージョンにアップデートすることだ。

 BIOSの場合は、PCやマザーボードのメーカーなどからBIOSのアップデートを入手する必要がある(詳細な手順は「PC TIPS:PCのBIOSをアップデートする方法は?」参照)。OSの場合は、Microsoftからデバイス・ドライバのアップデートが提供されなくても、IDEホスト・コントローラのメーカーから入手できる場合がある。Intel製の800番台のチップセットを利用しているなら、Intel提供のIDEデバイス・ドライバ「Intel Ultra ATA Storage Driver」が使える(インストール方法は「PC TIPS:IDEコントローラの状態をチェックするには」参照)。

 しかし、そもそもメーカーからアップデートが提供されていなければ、このような解決策はとれない。またBIOSやデバイス・ドライバのアップデートでは、トラブルの原因となっている部分以外も変更される場合が多く、その結果、まったく別のトラブルを引き起こすというリスクもある。

 そこで、次のページでは、ソフトウェアをまったく変更しない第2の解決策を紹介しよう。

  関連記事(PC Insider内) 
ディスク環境まるごとアップグレード
PCのBIOSをアップデートする方法は?
IDEコントローラの状態をチェックするには
IDEインターフェイスのバスマスタDMA転送モードを有効にするには(Windows 9x編)
IDEインターフェイスのバスマスタDMA転送モードを有効にするには(Windows NT 4.0編)
BIOSが認識したハードウェアの情報を得るには
最新ディスク関連用語集
 
  関連リンク 
Windows 2000のUltra DMAモード5対応に関するKnowledge Base(Q260233)
Windows 2000のUltra DMAモード5対応に関するKnowledge Base(Q269555)
 
   
 

 INDEX

[PC TIPS]IDEハードディスクの転送モードにかかわるトラブルを解決するには?(1)
  [PC TIPS]IDEハードディスクの転送モードにかかわるトラブルを解決するには?(2)
 
「PC TIPS」

ホワイトペーパーTechTargetジャパン

System Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています