Windows NT 4.0 A.T.A. D.M.A. H.D.D. Access.
Introduction:
As installed, Windows NT 4.0 systems using A.T.A. (AT Attachment - commonly referred to as I.D.E.) Hard Disk Drives provide access through P.I.O. (Programmed I/O) modes only. The reason for this is basic compatibility - P.I.O. is a 'known safe' and 'lowest common denominator' option that is guaranteed to function correctly on virtually all hardware combinations.
Unfortunately, it is far from optimal in performance, and severely limits data throughput. P.I.O uses limited data clock speeds and requires the attention of the C.P.U. for every data word (16 bits wide) transferred to or from the H.D.D. - producing a severe 'data bottleneck' on most systems.
The D.M.A. transfer modes increase the data clock speed on the A.T.A. channels and alters the transfer mechanism. The C.P.U. now only instigates a data transfer, often of considerable size - ie: many blocks long. The data is then moved directly from the H.D.D. buffers to the nominated R.A.M. location under the supervision of the D.M.A. controller. Whilst the transfer progresses the C.P.U. can be occupied doing other tasks. The H.D.D. signals that the transfer has reached completion (or encountered an error) by generating a Hardware Interrupt which the C.P.U. services.
Solution:
The ATAPI driver supplied in Windows NT 4.0 Service Pack 2 and above is actually capable of being switched to D.M.A. (Direct Memory Access) modes of data transfer, but the default state is disabled, and there is no 'user applet' or tool supplied to permit changes to the settings.
Microsoft Knowledgebase Article 158873 (Title: How to Enable IDE DMA Bus-Mastering Using SP2) gives details of the registry entry which is changed to enable this new feature in the ATAPI driver. Knowledgebase Article 191774 (Title: How to Obtain Dmacheck.exe for Windows NT) describes obtaining and using a Microsoft written tool (DMACHECK.EXE) to enable easy examination and changing of the 'switch' to enable D.M.A. Access. Both the Primary and / or Secondary channels of most E.I.D.E. controllers can be selectively set to Enable or Disable D.M.A. features.
Known Limitations / Caveats:
- There was actually a bug in the ATAPI.SYS file released with Service Pack 2 that failed to recognise UltraDMA devices as being capable of D.M.A. transfers using the Microsoft ATAPI driver. See Knowledgebase article 164378 (Title: WinNT 4.0 SP2 or SP3 Atapi Does Not Support Ultra DMA Devices) for details. The problem was corrected in Service Pack 4.
- If Service Pack 4 or above has not been applied and D.M.A. Access mode is enabled, certain IDE CD-ROM drives may malfunction or a STOP 0x0A error (Blue Screen) may occur. See Knowledge base article 177257 (Title: STOP 0x0000000A or Difficulty Recognizing IDE CD-ROM Drives) for an explanation. This problem was also resolved in Service Pack 4.
- For a more detailed description of what happens when D.M.A. transfers are enabled, and what is required for correct operation of this mode see Microsoft Knowledgebase Article 182532 (Title: HOWTO: DMA-Capable ATAPI Device Driver for Windows NT).
- Some applications which use a specific sequence of control messages to IDE hardware may trigger a Kernel Stop (Blue Screen) error with the D.M.A. transfer mode active. See Microsoft Knowledgebase article 174232 (Title: Stop 0x0000000A in Atapi.sys (Post SP2) with DMA Enabled) for further details.
Requirements:
To use the D.M.A. Access modes you require:
- Service Pack 4 or later installed on the NT 4.0 system.
- A Hard Disk Drive capable of doing D.M.A. data transfers. Most H.D.D.s made within the last five years have this ability.
- A suitable 80 conductor (UltraDMA) data cable to link the H.D.D.s to the A.T.A. controller. Theoretically, the standard 40 conductor cable is capable of being used in D.M.A. mode, but I have seen very poor quality cables which could cause real problems at the higher data transfer speeds. If in doubt, use an UltraDMA 80 conductor cable, they have much tighter specs.
- An A.T.A. controller that supports D.M.A. transfer modes. Again, most motherboard integrated I.D.E. controllers and P.C.I. 'add-on' A.T.A. controllers manufactured in the last 5 years are suitable. (As far as I know I.S.A. bus I.D.E. controllers are incapable of this feature.)
Hardware Notes:
- D.M.A. mode can only be implemented on a CHANNEL basis with the Microsoft supplied ATAPI driver. ('Per device' D.M.A. access was introduced with Windows 2000) It may be necessary to REMOVE unsuitable devices (eg: some older CDROM drives do not support D.M.A. transfers) from the A.T.A. channel that you have the H.D.D.(s) connected to. A device that is incapable of D.M.A. transfer mode will prevent both devices on that channel (master or slave) from being able to operate in D.M.A. mode. If you are having problems with a system refusing to allow D.M.A. mode, although the hardware appears to be compliant, check this problem as a first step.
- Ensure that the Master / Slave jumpers on the I.D.E. devices are all correctly set. I've seen systems where the jumpers were incorrectly set, but despite this were still able to function adequately in P.I.O. modes, but fail completely when attempting to use more 'ambitious' speeds.
- Some non-Intel I.D.E. controllers may not be able to function using the Microsoft supplied ATAPI driver. Check your chipset manufacturer for details. In many cases they will supply a suitable driver and provide instructions on it's configuration and use.
- The Intel chipsets manufactured recently (eg: the i810 chipset and above) have specific drivers written by Intel available for NT 4.0. These drivers are superior to the Microsoft solution for NT 4.0 in most cases (the Intel solution actually allows UltraDMA access to suitable hardware) and should be used in preference.
- The most recent Intel i865 and above families ARE NOT supported by Intel for NT 4.0 unfortunately, and several people have reported problems with motherboards based on these chipset attempting to run Windows NT 4.0 - Proceed with caution.
- A totally new, open source Universal ATA driver for Windows NT3.51/NT4/2000/XP (With PATA/SATA support and LBA48 support) is available from Alter.org.ua This driver may provide superior performance on your hardware than the Microsoft supplied atapi.sys
Alter also provides a UniATA chipset / driver compatibility chart. (includes a list of known problem chipsets)
Results:
On the machines I have tested, on large file transfers, a read speed increase of 50 to 100% is not uncommon. In addition, the D.M.A. mode significantly reduces CPU usage from 50+% to often less than 10% during disk read / writes.
Diagnostic / Testing Software:
If you would like detailed analysis and reporting of all the hardware information regarding your Hard Disk Drive Sub-System I can recommend the following FREEWARE software packages:
- HD Health by PanteraSoft - provides monitoring and reporting of S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) data produced by the Hard Disk Drive. HD Health also reports the Drive Model, Serial Number and Firmware Revision status.
- HDTune by EFD Software - allows transfer speed testing and analysis of Drive Sub-System performance. Unfortunately, HDTune has now progressed to V2.0 and later, which are officially only supported on Windows 2000/XP. The authors appear to have deliberately gone out of their way to make sure these later versions of this utility will NOT function correctly on NT4 systems. I STRONGLY recommend NT4 systems only use V1.0 of HDTune (Hopefully this link still works !) Be advised that the DMA transfer mode reported by HDTune V1.0 may not be accurate.
WARNING:
The normal rules apply - be prepared for unexpected results. The hardware you are using may have never been run at this speed or in this transfer mode before. The changed conditions may cause problems to surface that previously were not apparent. To be on the safe side, make sure you have a current backup of the system and the necessary tools (eg: an up-to-date ERD) handy in case the changes lead to boot failure or a data corruption.
Acknowledgements:
Thanks to Roderick Thompson and Kiilk for additions and corrections on this page.
All promotional photographs and advertising material, corporate names and logos, product names, trade names, trademarks and registered trademarks are the property of their respective owners, and are acknowledged as such.
This information is maintained by ZCM Services, Australia. Whilst every care is taken in preparation, I accept no responsibility for errors or omissions. Use the information presented on this site AT YOUR OWN RISK.
Last Update April 7, 2010 at 8:36 PMAEST.