Ultra DMA

※このページは現在主流のSATAについてではなく、PATA時代のものです※


Ultra DMAについてのお話しです。
Ultra ATAとも呼ばれます。Ultra DMA/66はFast ATA-2と呼ばれることもあります。
ここではATA-5の表記に習ってUltra DMAで統一しています。
1. Ultra DMA
最大133MB/sの転送レートを持つATAの規格です。PIO転送、MultiWord DMA転送とは下記の違いがあります。
1. CPUの占有率が低い
PIO転送ではデータ転送をCPUがつかさどっているため占有率が30〜40%になります。DMA転送ではIDEコントローラが処理を行うため、占有率は5%程度です。そのためデータ転送中でもCPUが他の処理を行うことができます。
2. 高速な転送が可能である
PIO mode4の16.7MB/sにくらべてUltra DMA mode6では133MB/sの転送が可能です。
3. デバイスとIDEコントローラのデータ転送でCRCチェックをしている
転送の高速化に伴なって発生するデータ化けなどのエラーを検出できるようになっています。PIOやMulti Word DMAではデータ化けは検出できません。
4. Ultra DMA/66以上では専用のケーブルが必要である
一般的なATA/ATAPIの40ピンフラットケーブルに変わってコネクタは同じ40ピンですが、ケーブルが80ピンで、信号線と信号線の間にグランド線が挟まっているUltra DMA/66対応ケーブルが必要になります。

ATAの転送レート(バースト転送)は下表のようになっています。
ATA Data transfer rate
タイプ モード サンプルタイム[ns] 転送レート[MB/s]
PIO 0 600 3.33
1 383 5.22
2 240 8.33
3 180 11.11
4 120 16.67
Single Word DMA 0 960 2.08
1 480 4.16
2 240 8.33
Multi Word DMA 0 480 4.16
1 150 13.33
2 120 16.67
Ultra DMA 0 120 16.67
1 80 25
2 60 33.33
3 45 44.44
4 30 66.67
5 20 100
6 15 133
Ultra DMAは1サイクルに2回のデータ転送があるため、サンプルタイムは1回分の時間にしてあります。

2. ハードウェアの対応について
Ultra DMAなどのDMA転送はチップセットとデバイスの両方が同じモードに対応している必要があります。接続には専用の40ピン80線ケーブルが必要になります。コネクタ形状が同じなので、古い40ピン40線ケーブルでも接続はできますが、正常な動作ができなくなる可能性があります。
440BXチップセットなどはUltra DMA/33までの対応のため、Ultra DMA/66での転送はサポートされません。インテルではi810、i820、SiSでは620、630、VIAではMVP4、Apollo Pro133/133AチップセットなどがUltra DMA/66に対応しています。また、i815、i845、i850、730SチップセットはUltra DMA/100をサポートしています。KT333などはUltra DMA/133対応です。IntelはUltra DMA/133対応チップセットは用意せず、Serial ATAに移行しています。
現行のハードディスクはUltra DMA/100以上に対応しています。
容量的には、2GB以上のドライブはUltra DMA/33対応です。1プラッタ15GB以上のドライブはUltra DMA/100に対応しています。ただし、昔のSeageteの一部のドライブやWestern DigitalのWDAC310200などは出荷時はUltra DMA/33対応の設定ですが、専用の変更ソフトでUltra DMA/66に切り替えられます。また、(どちらも今はもう作っていませんが)富士通、Quamtumの初期のUltra DMA/66対応モデル(FBCR,FBCX,FBKAなど)はUltra DMA/33までの対応のM/Bでは正常に動作しない場合があります。これも変更ソフトでモードを切り替えられます。
同様にUltra DMA/100対応のドライブを変更ソフトでUltra DMA/66などに切り替えることができます。
Western Digital Ultra ATA Managerの入手先
Quantum UltraDMA Change Utility の入手先
Seagate UltraATA Configuration Utility の入手先
Maxtor Mode Change Utility の入手先
富士通 Ultra-ATA Change Mode Utility の入手先

3. Windows95/98の対応
Windows95のOSR1以前はそれぞれのチップセットに対応したバスマスタドライバを使用することでDMAモードに対応できます。バスマスタドライバは機能的に不十分なものが多く、Intelのドライバについては5項で紹介しています。SiS、VIA、ALiのドライバも修正がひんぱんに行われていて、不具合情報も多数上がっていました。最近では改善されてきており、Windows95/98の標準ドライバよりも高速で動作し、動作上でも問題が発生しなくなっているようです。

Windows95のOSR2以降(2.0、2.1、2.5)ではデバイスマネージャにてATA/ATAPIデバイスそれぞれのDMAチェックボックスをセットすることでDMAモードに対応できます。ただし、Ultra DMAにおいて5項の不具合があります。
430TX、440LXなど430HX以降のIntelチップセットはWindows95で正しく認識されずにスタンダードPCI IDEコントローラなどと表示されますが、M/Bに添付されているWindows95用パッチプログラム(Inf Update)を実行することによって正しくBus Master IDE Controllerと認識されます。5項のBus Master IDE Driverとは異なるものなので、注意してください。
SiS、VIA、ALiなどの互換チップセットでは同じようにデュアルFIFOのコントローラにならないものがありますが、Windows95のチップセット情報を書き換えるプログラムを使用すると、DMAチェックボックスが出てくるようになります。プログラムがM/Bに付属していないようなチップセットを使っているときにはWindows98を使うか、専用のバスマスタドライバーを使ってください。VIA対応のプログラムは下記にあります。

Windows98では(infアップデートのみで)ほとんどのチップセットをサポートするためドライブのDMAチェックボックスをチェックするだけでDMAモードに対応します。Ultra DMAでのエラーリトライもサポートしています。正常に認識しないチップセットはWindows95と同様にInf Updateを行うことでサポートされるようになります。
ドライブのDMAチェックボックスとは、ハードディスクならデバイスマネージャのディスクドライブにあるGENERIC IDE DISK TYPE46/47の設定タブの中にあります。CD-ROMは同様にドライブ名の設定タブにあります。複数のドライブが接続されている場合、それぞれのDMAチェックボックスを設定することでPIOモードとDMAモードの設定が可能です。
Windows98で32GB以上の容量のハードディスクを使用するとScandiskでクラスタ967,393でエラーが発生したと表示します。これはWindows98/98SEのIDEドライバがPhenix BIOSのビットシフト転送に対応していないために発生します。
137GB以上のBig Drive(48bit LBA)ドライブはOS標準ドライバではサポートされていません。M/B BIOSの48bit LBAサポートとチップセットドライバなどが必要です。IntelチップセットではIAAが必要です。IAAを使ってもSCANDISKとDEFRAGはエラーが出て実行出来ません。対策は無いようです。

Windows98/98SE ESDI_506.PDR修正版の入手先
Windows98/98SE ESDI_506.PDR修正版の入手先(英語)
Intel Inf Updateの入手先
ALi Inf Updateの入手先
SiS Inf Updateの入手先
VIA Inf Update(VIA 4 in 1)の入手先

4. Intel Bus Master IDE Driverについて
82371FB(430FX)、82371SB(430HX,440FX)、82371AB(430VX,430TX,440LX,440BX)、82371EB(440BX,440ZX)などのIDEコントローラに対応しています。ドキュメントなどがすべて英語のため、日本語Windows95/98では正しく組み込みができない場合があります。
その他の問題点として以下のものがあります。
1. ATAのハードディスク、ATAPIのCD-ROM以外をサポートしていない。
たとえばCDチェンジャーやMO、PDはその機能を発揮できません。
また、8.4GB以上のハードディスクも正しく認識できません。
2. CD-ROM標準的な機能しかサポートしていない。
データの読み込み、オーディオトラックの再生のみサポートしています。
CD-Plus、ビデオCD、CD-Iには対応していません。
3. Single Word DMA mode2以上のDMA転送のみサポートする。
PIOのみ対応しているようなデバイスは認識されなくなります。
540MB以下のIDEハードディスクなどで問題になる可能性があります。
Intel Bus Master Driverの入手先

i810以降のすべてのi8xx系統のIDEコントローラに対応しています。問題点として以下のものがあります。Windows98/98SE/Me、WindowsNT4.0、Windows2000対応です。
ドライバをインストールすると付属のユーティリティで接続デバイスのIdentify情報が見れます。
CDチェンジャーやMO、PDを正しくサポートしていない。
富士通のATAPI MO用のサポートドライバはこのUltra ATA Driverをサポートしていませんので、同時に使うことができません。
また、Easy CD CreaterなどのCD-R/RWライティングソフトでそのソフトのバージョンによって動作しないものもあります。
Intel Ultra ATA Driverの入手先

Intel Ultra ATA Driverの後継がIntel Application Accesleratorです。i810以降のすべてのi8xx/9xx系統のIDEコントローラに対応し、Windows98/98SE/Me、WindowsNT4.0、Windows2000、WindowsXP対応です。Pentium4対応の最適化が行われ、137GB以上のドライブ(Big Drive, 48bit LBA)に対応しています(M/B BIOSの対応も必要です)。
問題点として以下のものがあります。
富士通のATAPI MO用のサポートドライバはこのDriverをサポートしていませんので、同時に使うことができません。
また、Easy CD CreaterなどのCD-R/RWライティングソフトでそのソフトのバージョンによって動作しないものもあります。
Intel Application Acceleratorの入手先

他の主なチップセットメーカーのBus Master IDE Driverは以下のリンクから入手できます。
ALi Bus Master Driverの入手先
SiS Bus Master Driverの入手先
VIA Bus Master Driver(VIA 4 in 1)の入手先

5. Windows95 OSR2でのUltra DMAについて
Ultra DMAでは転送レートの高速化に伴なって、デバイスとIDEコントローラの転送データにCRCデータを追加しています。このため、デバイスとIDEコントローラ間でデータ化けなどが発生した場合にエラーの発生を検出できるようになっています。
OSR2のIDEドライバ(\Windws\System\Iosubsys\ESDI_506.PDR)はそのエラー処理が搭載されていないため、エラーの修正とリトライができずにハングアップすることがあります。
なお、MicrosoftのホームページにてIDEドライバの修正版が配布されていますが、テストが十分でないという理由で、正式に公開されてはいません。

ESDI_506.PDR修正版の入手先 Q171353(QFE513)

6. Windows NT4.0でのDMAについて
サービスパック3以降にDMAモードとPIOモードを切り替えるユーティリティが添付されています。サービスパックのCD-ROMにあるDMAcheck.exeを実行してください。また、Internet Explorer4.0 CD-ROMの\i386\ja\nt4sp3\i386にもあります。
残念ながらUltra DMAでは動作せず、Multi Word DMA mode2までです。
Microsoftのホームページでも公開されています。
また、DMAcheck.exeでDMAモードにならない場合もあります。その時には下記のようにレジストリを変更してください。Device0はプライマリ、Device1はセカンダリコントローラです。再起動後にDMAcheck.exeでDMAモードになっていることを確認してください。
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi\Parameters\Device0\DriverParameterの"DmaDetectionLevel=0x1;"から0x1を0x2に変更。
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi\Parameters\Device1\DriverParameterの"DmaDetectionLevel=0x1;"から0x1を0x2に変更。
なお、DMAcheck.exeを実行していないと、\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\atapi以下の設定は作られていません。また、変更はAdministratorでログインして行ってください。

サービスパック4以降で8.4GB以上のハードディスクに対応していますが、サービスパック3以下でもATA/ATAPIドライバATAPI.SYSを差し替えることで8.4GB以上のドライブに対応できるようになります。

ATAPI CD-R/RWをDMAで使用していて、ライティングソフトを起動すると青画面で止まるソフトがあるようです。B's Recorder Gold(Ver1.96以前で確認/Ver1.97で対応)、CD-Cooker(Ver2.2で確認)などです。この場合はCD-R/RWを接続しているチャンネルのみPIOモードにしてください。 Windows2000ではDMA(MS謹製ドライバ使用)でも問題ないようです。

DMAcheck.exeの入手先 JP191774
ATAPI.SYS SP4相当版の入手先 Q197667(英語)
DMA 対応 ATAPI デバイス ドライバ設定方法 JP182532
NT4.0 DMAの詳細(英語)

7. Windows 2000でのDMAについて
Windows98と同様にUltra DMAモードに対応しています。 SiS620など一部のチップセットではデフォルトでDMAモードにならないことがあります。この場合、一度PIOモードに設定して再起動後DMAモードに設定しなおすとDMAモードで動作するようになります。
Ultra DMA/66対応のIntelチップセットでUltra DMAの設定にしてもUltra DMA/33になります。レジストリの編集で対応可能です。
また、Ultra DMA/100対応のシステムでもUltra DMA/66で動作します。これはServicePack2で修正されています。
一部のM/BでBIOS不具合によりUltra DMAモードの設定でロックするものがあります。M/BとHDDのモードが合わなくなり速度の不整合からロックしてしまいます。この場合セーフモードで起動しデバイスマネージャでDMAをオフにすればとりあえず動作します。
137GB以上のBig Drive(48bit LBA)ドライブはServicePack3以降で対応しますが、レジストリの変更が必要です。もちろんM/B BIOSの48bit LBAサポートも必要です。
Intel チップセットで UDMA66 モードを有効にする方法
Windows 2000 における ATA 100 (モード 5) のサポート
Support for ATA 100(Mode 5) in Windows 2000(英語)
Windows2000におけるATAPIディスクドライブへの48ビットLBAサポート

8. Windows XPでのDMAについて
HDDに関してはOSが勝手にDMAモードにしてくれます。
CD-ROMを除くCD-RWやDVD-ROM,DVD±RWなども勝手にDMAモードにしてくれます。
CD-ROMとMOなどはPIOモードですが、デバイスマネージャでDMAに設定することは可能です。
DMAモードで、転送エラーが頻発した場合などに自動的に転送モードを落とす機能が実装されており、最終的にPIOモードにまで落ちます。再起動などをしてもその落ちた状態を記憶しているので、ちょっとしたトラブルで転送エラーが発生したりしたらユーザーがデバイスマネージャでUDMAモードに変更しておかないと気付かずにPIOモードで使う羽目になります(SP2で修正済み)。
XPのDMAについて(英語)

複数回のタイムアウトまたは CRC エラーの発生後 IDE ATA および ATAPI ディスクで PIO モードが使用される

いつの間にかPIOモードになっていて、DMAモードに変更出来ないような場合、デバイスマネージャでIDEコントローラを削除して再起動して見てください。

137GB以上のBig Drive(48bit LBA)ドライブはServicePack2以降で対応しています。もちろんM/B BIOSの48bit LBAサポートも必要です。

NT3.51〜XPで使える汎用ATAドライバもあるようです。
Universal ATA driver for Windows NT3.51/NT4/2000/XP With PATA/SATA support
2TB(厳密には2TiB=2024GB)を越えるドライブはMBR(Master Boot Record)が桁あふれを起こすため、サポートされません。



9. シリアルATA
HDDだけでなく、ODDもすでにSATAに置き換わり、6Gb/s(約600MB/s)の転送速度をサポートするSATA-3のドライブも存在しています。
Serial ATA Working Group

IDEのページに戻る
Last Update:'11/1/15