1580 lines
76 KiB
Plaintext
1580 lines
76 KiB
Plaintext
Yet Another Enhanced IDE/Fast-ATA/ATA-2 FAQ
|
|
Version: 1.1
|
|
Archive-name: Enhanced-IDE-faq/part1
|
|
Posting-Frequency: Monthly (the 24th)
|
|
Last-modified: 1995/06/03
|
|
URL: http://www.wi.leidenuniv.nl/ata
|
|
Maintained-by: Peter Herweijer <pieterh@sci.kun.nl>
|
|
|
|
This FAQ is the work of John Wehman (jwehman@picosof.com) and Peter
|
|
Herweijer (pieterh@sci.kun.nl). The most recent version is available
|
|
by FTP from
|
|
|
|
! ftp.aimnet.com:/pub/users/clau/ide_ata
|
|
! ftp.rahul.net /pub/lps/hard-disk/ya-ata.faq
|
|
ftp.wi.leidenuniv.nl:/pub/faqs
|
|
|
|
at some point in the future also from
|
|
|
|
! rftm.mit.edu:/pub/usenet/news.answers/Enhanced-IDE-faq/
|
|
!
|
|
and finally by WWW from Daniel Tauritz' page
|
|
!
|
|
! http://www.wi.leidenuniv.nl/ata
|
|
|
|
You can also get it by e-mail from pieterh@sci.kun.nl by sending
|
|
message with "ATA-2 FAQ please" in the Subject: header. The body of
|
|
the message will be ignored. Anything fancy will probably break the
|
|
mail server and cause it to send you an uuencoded coredump :^)
|
|
|
|
DISCLAIMER. The information in this FAQ comes without any warranty.
|
|
The authors or distributor will not accept responsibility for any
|
|
damage incurred directly or indirectly through use of the information
|
|
contained in this FAQ.
|
|
|
|
COPYRIGHT. This document is copyright (c) John Wehman and Peter
|
|
Herweijer. You are free to distribute it by electronic means and make
|
|
as many copies as you want on electronic or magnetic media as long as
|
|
this document remains unmodified, with copyright notices intact. You
|
|
are allowed to make paper copies of it for personal use; however,
|
|
distributing paper copies of this document is prohibited without the
|
|
authors' permission.
|
|
|
|
THANKS. To everyone on comp.sys.ibm.pc.hardware.storage for
|
|
encouragement and feedback, especially those who took the time to
|
|
write down their comments in some detail. To Hale Landis in
|
|
particular: without his input the FAQ would have been considerably
|
|
less accurate on a number of key points.
|
|
|
|
|
|
|
|
INTRODUCTION
|
|
|
|
1.0 What is EIDE? What is Fast-ATA?
|
|
1.1 What is ATA/IDE?
|
|
1.2 What is ATA-2?
|
|
1.3 What is ATA-3?
|
|
1.4 What is ATA-PI?
|
|
1.5 What is an Enhanced BIOS?
|
|
1.6 What is a secondary port?
|
|
|
|
PRACTICALITIES
|
|
|
|
2.1 What are the main features of EIDE and Fast-ATA?
|
|
2.2 What should I look for in an ATA-2 (Fast-ATA, EIDE) interface?
|
|
2.3 Is my BIOS enhanced? How can I recognize this?
|
|
2.4 Are old IDE drives compatible with ATA-2 (EIDE, Fast-ATA) interfaces?
|
|
2.5 Can ATA-2 (EIDE, Fast-ATA) drives be used with my old interface?
|
|
2.6 Can large drives be used with my old BIOS?
|
|
2.7 I need an Enhanced BIOS to acces >504MB. How do I get one?
|
|
2.8 I have software to break the 504MB barrier. Should I use it?
|
|
2.9 Can I use a large harddisk with operating systems other than DOS?
|
|
2.10 What should I use: Normal, LBA or Large?
|
|
2.11 I have a 50MHz VLB system. Is it compatible with ATA-2 interfaces?
|
|
2.12 I need a PCI ATA-2 interface that uses only one slot.
|
|
2.13 Will adding an 'EIDE' interface help my drives' performance?
|
|
2.14 Why isn't my drive as fast as it's advertised to be?
|
|
2.15 Why is my new EIDE interface no faster than my old VLB one?
|
|
2.16 A guy on the net has the same drive and he gets 16MB/s!
|
|
2.17 I can enable write caching on my harddisk. Should I?
|
|
2.18 Can I safely change the BIOS' xlation mode (None, LBA, Large)?
|
|
2.19 Can I safely move my harddisk between computers?
|
|
2.20 I have problems with my Award 4.50G BIOS and large drives.
|
|
2.21 Can my drive do 32-bit access?
|
|
2.22 Help! I have OnTrack Disk Manager installed and now...
|
|
2.23 Help! Windows 32-bit disk access doesn't work anymore!
|
|
2.24 Help! Windows for Workgroups' 32-bit file access fails!
|
|
2.25 The user's net.resource guide
|
|
2.25.1 The user's net.resource guide: I/O card drivers
|
|
2.25.2 The user's net.resource guide: hardware manufacturers
|
|
2.25.3 The user's net.resource guide: software & BIOS publishers
|
|
|
|
TECHNICALITIES
|
|
|
|
3.1.1 How does ATA(-2) work?
|
|
3.1.2 What are PIO modes?
|
|
3.1.3 What are DMA modes?
|
|
3.1.4 How are the Task File and data I/O ports assigned?
|
|
3.1.5 What does an ATA-2 interface do?
|
|
3.1.6 What is Block mode?
|
|
3.1.7 What is LBA?
|
|
3.2.1 How does ATAPI differ from, and coexist with, ATA(-2)?
|
|
3.2.2 What's so special the secondary port?
|
|
3.3.1 How does translation work?
|
|
3.3.2 I'd like to know how translation works in detail.
|
|
3.3.3 What is in the Enhanced Disk Parameter Table?
|
|
3.3.4 What are the issues surrounding OnTrack's Disk Manager?
|
|
3.3.5 How many types of translating/Enhanced BIOSes are there?
|
|
3.4 How does Windows' 32-bit disk access work?
|
|
3.5.1 The hacker's documentation guide
|
|
3.5.2 The hacker's net.resource guide
|
|
|
|
|
|
|
|
- Introduction -
|
|
!
|
|
The aim of this introduction is to make you familiar with the most
|
|
important buzzwords used in this FAQ and to provide a first overview
|
|
of the issues involved. Please glance through it before reading the
|
|
rest of this document.
|
|
!
|
|
|
|
1.0 What is EIDE? What is Fast-ATA?
|
|
|
|
! Enhanced IDE (EIDE) is a marketing program from Western Digital
|
|
! consisting of a software part--an Enhanced BIOS specification which
|
|
! breaks the 504MB barrier--and a hardware part that has been derived
|
|
! from the ATA-2 (hard drives) and ATA-PI (tapes, CD-ROMs) standards.
|
|
! Fast-ATA is a similar Seagate marketing program, endorsed by Quantum,
|
|
! that limits itself to ATA-2 (hard drives) only. If you're unfamiliar
|
|
! with these terms, read on :^)
|
|
|
|
1.1 What is ATA/IDE?
|
|
|
|
ATA (AT Attachment) and IDE (Integrated Drive Electronics - or
|
|
! numerous other interpretations) are one and the same thing: a disk
|
|
! drive implementation designed to integrate the controller onto the
|
|
! drive itself, thereby reducing interface costs, and making firmware
|
|
implementations easier. This low cost/easy integration created a boom
|
|
in the disk drive industry, as PC integrators readily ate up the
|
|
low-cost alternative. Since the late 80's, ATA (as it is properly
|
|
called), has become the drive of choice for the cost inhibited buyer.
|
|
|
|
1.2 What is ATA-2?
|
|
!
|
|
! ATA-2 is a compatible extension of ATA (IDE). The most important
|
|
! additions are performance enhancing features such as fast PIO and DMA
|
|
! modes. Another important novelty is the souped-up Identify Drive
|
|
! command allowing a drive to tell the software exactly what its
|
|
! characteristics are; this is essential for both Plug'n'Play and
|
|
! compatibility with future revisions of the standard.
|
|
|
|
While there is also a new way of addressing sectors on the harddisk
|
|
(LBA), this is merely a simplification. Contrary to common myth LBA
|
|
has nothing to do with breaking the famous 504MB (528MB) barrier. In
|
|
! fact, even in the old ATA (aka IDE) standard the theoretical size
|
|
! limit is well over 100GB.
|
|
|
|
1.3 What is ATA-3?
|
|
|
|
! Oh, help, don't ask. The first draft is out but it's a moving target
|
|
! at this stage. There's no ATA-3 equipment.
|
|
|
|
1.4 What is ATA-PI?
|
|
|
|
ATA Packet Interface is a standard (draft) designed for devices such
|
|
as CD-ROMs and tape drives that plug into an ordinary ATA (IDE) port.
|
|
! The principal advantage of ATAPI hardware is that it's cheap and works
|
|
! on your current adapter. For CD-ROMs, it has a somewhat lower CPU
|
|
! usage compared to proprietary adapters but there's no performance gain
|
|
! otherwise. For tape drives, ATAPI has potential for superior
|
|
! performance and reliability compared to the popular QIC117 "floppy"
|
|
! tape devices.
|
|
!
|
|
While ATAPI CD-ROMs use the harddisk interface, this does not mean
|
|
that they look like an ordinary harddisk; to the contrary, from a
|
|
software point of view they are a completely different kind of animal.
|
|
They actually most closely resemble a SCSI device.
|
|
|
|
! This means that intelligent (e.g. caching) controllers that are not
|
|
! ATAPI aware will NOT work with these devices. This also means that, at
|
|
! present, you cannot boot from an ATAPI CD-ROM and you still must load
|
|
! a driver to use it under DOS or Windows. You can expect native ATAPI
|
|
! support in most new operating systems, though, and the first
|
|
! ATAPI-aware BIOS that will even allow booting from an ATAPI CD-ROM has
|
|
! already been introduced.
|
|
|
|
1.5 What is an Enhanced BIOS?
|
|
|
|
! An Enhanced BIOS is a BIOS that makes it possible to use harddisks
|
|
! exceeding the (in)famous 504MB (528 million bytes) barrier with
|
|
! DOS/Windows. The origin of this limit is the disk geometry (cylinders,
|
|
! heads, sectors) supported by the *combination* of an IDE drive and the
|
|
! BIOS' software interface. Both IDE and the BIOS are capable of
|
|
! supporting huge disks, but their combined limitations conspire to
|
|
! restrict the useful capacity to 504MB.
|
|
|
|
An Enhanced BIOS circumvents this by using a different geometry when
|
|
! talking to the drive than when talking to the software. What happens
|
|
! in between is called 'translation'. For example, if your drive has
|
|
! 1500 cylinders and 16 heads, a translating BIOS will make programs
|
|
! think that the drive has 750 cylinders and 32 heads.
|
|
!
|
|
! Unfortunately there are several flavors of translating BIOSes. The de
|
|
! facto standard is the Microsoft/IBM 'INT 13 Extensions' document;
|
|
! Phoenix has presented a superset of this in their Enhanced BIOS
|
|
! specification. Phoenix, AMI and Award BIOSes are based on this.
|
|
! Another popular flavor, which is flawed and lacks vital features found
|
|
! in the MS/IBM and Phoenix standards, is that of the Western Digital
|
|
! Enhanced IDE Implementation Guide. However, the Phoenix EBIOS has
|
|
! broader support in the industry and is the more future-proof variant:
|
|
! apart from the translation, the Phoenix Enhanced BIOS specification
|
|
! has room for expansion beyond four ATA devices and adds important new
|
|
! data structures and calls to the INT13 (software) interface.
|
|
!
|
|
1.6 What is a secondary port?
|
|
!
|
|
! From the early days of the IBM PC there has been the possibility of
|
|
! connecting a 'secondary' harddisk interface; unfortunately, there has
|
|
! hardly been any software support up to now. There is hardly anything
|
|
! special about a secondary interface; it just uses a different
|
|
! interrupt and I/O addresses to avoid clashes with the ordinary
|
|
! (primary) interface. A secondary interface allows you to connect
|
|
! another ribbon cable with two more ATA devices (harddisk, ATAPI CD-ROM
|
|
! or ATAPI tape) for a total of four.
|
|
!
|
|
! The secondary port is enjoying a renaissance because the advent of
|
|
! ATAPI devices (CD-ROM, tape) has made four device support an absolute
|
|
! necessity.
|
|
|
|
|
|
|
|
- Practicalities -
|
|
|
|
If you're looking for the answer to a specific question as opposed to a
|
|
primer in storage technology, try this.
|
|
!
|
|
|
|
2.1 What are the main features of EIDE and Fast-ATA?
|
|
|
|
The fast transfer modes (PIO modes 1-4 and DMA mode 0-2) are the
|
|
! cornerstone of Fast-ATA and EIDE.
|
|
!
|
|
! Both Fast-ATA and EIDE are marketing terms contrived by three
|
|
! different disk drive manufacturers. Fast-ATA is a term coined by
|
|
! Seagate, and endorsed by Seagate and Quantum; EIDE is coined and
|
|
! endorsed by Western Digital.
|
|
|
|
EIDE supports these fast transfer modes, along with:
|
|
* LBA mode (explained in the tech section)
|
|
* Four devices on the ATA controller (secondary port)
|
|
* Translation: larger than 1024 cylinder limit (WD EBIOS)
|
|
* Tape Backup and CD ROM devices on the ATA controller (ATAPI)
|
|
|
|
Fast-ATA and Fast-ATA-2 also support these modes, along with:
|
|
* Multiple Read/Write commands
|
|
* LBA mode
|
|
|
|
The difference between the two schemes is mainly in the scope of EIDE.
|
|
This specification encompasses many facets of drive/device technology
|
|
which haven't been fully ironed out yet. With EIDE, many things can be
|
|
called Enhanced, and in practice hardware is tagged EIDE even if it
|
|
! doesn't support all of EIDE's features. This can make for extremely
|
|
! confusing purchases. For that reason, this FAQ will avoid the term
|
|
! EIDE whenever possible, talking about its component parts (ATA-2,
|
|
! ATAPI, etc) instead. This hopefully allows you to get a better picture
|
|
! of exactly *what* 'EIDE' features you need.
|
|
!
|
|
! Another potentially confusing matter is Fast-ATA-2. The latter
|
|
! embraces PIO mode 4 and DMA mode 2 (16MB/s), while vanilla Fast-ATA
|
|
! only uses PIO mode 3 (11MB/s) and DMA mode 1 (13MB/s). Both fully
|
|
! comply with the ATA-2 standard, so Fast-ATA-2 should be read as
|
|
! [Fast-ATA]-2 rather than Fast-[ATA-2].
|
|
|
|
2.2 What should I look for in an ATA-2 (Fast-ATA, EIDE) interface?
|
|
|
|
! There are a number of recent additions to PC storage technology which
|
|
! can play a role in purchasing a new interface. Some features, however,
|
|
! may already be present on your system or may be unimportant to you.
|
|
!
|
|
The least an ATA-2 interface should provide is PIO mode 3 transfers
|
|
for drives that support it. It should also provide proper support for
|
|
slower PIO modes (0, 1 and 2) to ensure optimal compatibility with
|
|
older drives. The "DMA" modes found on some cards often have little to
|
|
do with direct memory access, unfortunately, and are of questionable
|
|
merit. Other advanced features like prefetch buffers are also
|
|
exceedingly rare.
|
|
|
|
Since ATAPI CD-ROMs and tapestreamers are quickly becoming very
|
|
popular in the low-end market, a secondary (ATA) port, which allows
|
|
you to connect a total of four ATA devices, is hardly a luxury. Note
|
|
that a few modern soundcards provide a secondary ATA interface instead
|
|
of the traditional proprietary CD-ROM connectors; make sure it can be
|
|
disabled or buy a single-ported interface.
|
|
|
|
You will want an on-card BIOS too if your mainboard BIOS doesn't
|
|
support translation or if it has only buggy or outdated support. The
|
|
! BIOS will override the mainboard BIOS where harddisks are concerned.
|
|
! It should preferably conform to the Phoenix Enhanced BIOS
|
|
specification and build a proper Enhanced Disk Parameter Table (EDPT)
|
|
when necessary. It is likely that substandard BIOSes will cause
|
|
trouble with future translation- and EDPT-aware applications, even if
|
|
they appear to work fine now.
|
|
|
|
! A BIOS ROM will, just like a mainboard with integrated EIDE, often
|
|
! have the added advantage that you don't need separate DOS drivers. The
|
|
BIOS on an interface will occupy 16k of UMB space, though, and you
|
|
will still need drivers for every other operating system you use.
|
|
|
|
Drivers! Without well-designed drivers most interfaces could as well
|
|
be an old-fashioned ISA card for all the good they'll do. Even if the
|
|
card has a BIOS, which usually removes the need for a driver under
|
|
DOS, you will still need drivers for other operating systems,
|
|
including Windows. Too many drivers are unstable.
|
|
|
|
NOTE that most "EIDE" interfaces to date are buggy to some extent.
|
|
! This includes the expected problems like noncompliance with ATA-2, but
|
|
! also obscure things like the use a single buffer for both primary and
|
|
! secondary channel, which may cause data corruption under very specific
|
|
! circumstances. It can't hurt to track a few newsgroups for hands-on
|
|
! information.
|
|
|
|
2.3 Is my BIOS enhanced? How can I recognize this?
|
|
|
|
! Good question.
|
|
!
|
|
! Unfortunately, I know no easy answer. The mere ability to specify more
|
|
! than 1,024 cylinders in the BIOS setup is _not_ conclusive. In your
|
|
! BIOS setup, drive related settings like "LBA", "ECHS" or even
|
|
! something silly like "Large" are telltale signs of a BIOS with
|
|
! translation support. A copyright before 1994, on the other hand,
|
|
! reduces your chances to virtually zero :^(
|
|
!
|
|
! AMI BIOSes dated 4-25-94 and later and Phoenix BIOS v4.03 and later
|
|
! are reported to support translation. Some revisions of Phoenix v4.03
|
|
! may not support it, though, depending on the computer or system board
|
|
! manufacturer.
|
|
|
|
Western Digital has a utility available by ftp that examines the
|
|
Enhanced Disk Parameter Table (EDPT), if present. If it finds one on
|
|
your system, your BIOS has all the bells and whistles
|
|
(ftp.wdc.com:/drivers/hdutil/chkbios.com). Beware that BIOSes
|
|
conforming to the WD Enhanced BIOS specification won't build an EDPT
|
|
unless LBA is enabled. Beware also that with a WD EBIOS it is highly
|
|
unsafe to enable LBA on a disk that already contains data. This is due
|
|
to a flaw in the specification.
|
|
|
|
If you're desperate enough, you can also find out by simply trying to
|
|
enter more than 1024 cylinders and using, for example, MSD to find out
|
|
if the BIOS mangles the geometry or not, but we don't take
|
|
! responsibility for what may happen to your harddisk. Take care not to
|
|
! write even a single byte to it!
|
|
!
|
|
2.4 Are old IDE drives compatible with ATA-2 (EIDE, Fast-ATA) interfaces?
|
|
|
|
Yes, this should work fine.
|
|
|
|
To be used in an advanced mode, the drive has to support the ability
|
|
to transfer data at the fast rate. Also, the controller needs to be
|
|
able to run at fast mode speed. Older drives can work with ATA-2
|
|
interfaces, provided these interfaces have the intelligence to query
|
|
the drive as to its maximum transfer rate. There is a drive command
|
|
(Identify Drive) that gets a sector's worth of data which holds all
|
|
types of drive information, including the data transfer rates. The
|
|
controller MUST be able to identify this for the drive to work
|
|
properly. Blind PIO Mode 3 (programmed to fast mode without querying
|
|
the drive) in an older drive that can't support it will end up
|
|
corrupting data, hanging the drive, and just making a mess of things.
|
|
But, most controllers out there have some intelligence built in.
|
|
|
|
If you intend to put an older drive on the same cable as an ATA-2
|
|
drive, you may want to verify that your interface is capable of using
|
|
independent timing for master and slave drive. Otherwise, your old
|
|
drive might end up holding back your newer one.
|
|
|
|
2.5 Can ATA-2 (EIDE, Fast-ATA) drives be used with my old interface?
|
|
|
|
Fast-ATA drives and EIDE drives can be used without fear on regular
|
|
ISA controllers. The thing about advanced modes is that the drive is
|
|
ready for the data in the fastest mode; the slower the controller, the
|
|
easier it is on the drive.
|
|
|
|
Be sure to read the next question too.
|
|
|
|
2.6 Can large drives be used with my old BIOS?
|
|
|
|
Yes, in principle, but there is the small matter of the 504MB barrier.
|
|
|
|
If the new drive exceeds this capacity, you should ensure you have an
|
|
Enhanced BIOS if you want to use more than 504MB with DOS or Windows.
|
|
It is important to note that this is a software only issue: you do
|
|
_not_ need a special interface to support large drives.
|
|
|
|
BE WARNED that some older BIOSes will incorrectly handle drives with
|
|
more than 1024 cylinders. Instead of truncating the number of
|
|
cylinders to 1024, they use the cylinder count modulo 1024. The
|
|
solution is to specify 1024 cylinders in the BIOS setup.
|
|
|
|
This becomes a real problem with BIOSes that don't allow you to enter
|
|
the drive parameters manually. The 1991-vintage PS/2 models 35sx and
|
|
40sx do this, as do all of the ValuePoint models up to, but not
|
|
including, the 1994 ValuePoint Performance series. With these
|
|
! machines, you should verify that the drive has a way to fake having no
|
|
! more than 1024 cylinders (Western Digital has a utility for their
|
|
! 540MB drive, and many Maxtor drives have a jumper). Note that some
|
|
! operating systems, such as Linux and OS/2, allow you to override the
|
|
! BIOS' drive geometry information.
|
|
!
|
|
2.7 I need an Enhanced BIOS to acces >504MB. How do I get one?
|
|
!
|
|
! The options are: a new mainboard BIOS, add-on BIOS, or software.
|
|
!
|
|
! To upgrade your mainboard BIOS, either by a newer version of your
|
|
! current BIOS or by a custom made BIOS from firms such as Microid
|
|
! Research (MR BIOS), is probably the best option. It may or may not be
|
|
! more effective to replace the entire mainboard and get all the latest
|
|
! bells and whistles for $100 more.
|
|
|
|
The next option is to purchase an add-on BIOS that effectively
|
|
replaces the harddisk portion of your mainboard BIOS. Most BIOSes on
|
|
ATA-2 interfaces, if they have a BIOS at all, also do this, so that
|
|
may be a nice way to go if your present interface isn't up to snuff.
|
|
|
|
! Either way, you will have to repartition and reformat the (large)
|
|
! harddisk. A final option is to use a software solution. Be sure to
|
|
! read the section about this below.
|
|
!
|
|
2.8 I have software to break the 504MB barrier. Should I use it?
|
|
!
|
|
! This is the most convenient option for some, but there are caveats.
|
|
!
|
|
! The software, while it is known by all kinds of exotic names depending
|
|
! on who licensed it, is usually a version of either MicroHouse's
|
|
! EZ-Drive or OnTrack's Disk Manager. Disk Manager, when used on the
|
|
! boot drive, has to resort to some trickery in order to be loaded very
|
|
! early during the boot process (which is necessary for technical
|
|
! reasons). This is accomplished by modifying the Master Boot Record
|
|
! (MBR) and storing a Dynamic Drive Overlay (DDO) on the very first disk
|
|
! track. EZ-Drive works in a similar way.
|
|
!
|
|
! The catch is that the partitions created by the current versions of
|
|
! this software are completely incompatible with, and unreadable by,
|
|
! everything else. An annoying effect is that operating system
|
|
! installations, which often overwrite the MBR, will render the contents
|
|
! of your harddisk inaccessible. You will need to restore the MBR from
|
|
! the installation floppy to regain access to your partitions.
|
|
!
|
|
! More seriously, generic disk-related device drivers will fail even if
|
|
! they work with all other translation schemes. Important examples are
|
|
! (E)IDE interface drivers; remember that without these drivers an
|
|
! interface will in general be much slower. You'll need drivers that are
|
|
! specifically aware of the translation software you use. Also, many
|
|
! operating systems other than DOS will not be able to access or use the
|
|
! drive, at least not 'out of the box'. Disk fixing utilities may fail
|
|
! to work if the partition table or the DDO/XBIOS overlay is damaged.
|
|
!
|
|
! OnTrack (tech@ontrack.com, sales@ontrack.com) is aware of these
|
|
! problems and is working on a new version of DiskManager (v7) that
|
|
! should remove most of them, more specifically allow multiple operating
|
|
! systems and be compatible with most drivers, including those of ATA-2
|
|
! (EIDE) interfaces and ATAPI CD-ROMs. In the mean time, IBM and
|
|
! Microsoft have fixes for OS/2 (in the Bonus Pack) and NT (Service Pack
|
|
! 2). More about DiskManager in section 3. We lack details about
|
|
! EZDrive.
|
|
!
|
|
2.9 Can I use a large harddisk with operating systems other than DOS?
|
|
!
|
|
! This is often less of a problem than with DOS, but some OSs don't
|
|
! understand translation.
|
|
!
|
|
! With operating systems such as NetWare, Unix, Win/NT and OS/2, the
|
|
! only thing you need to use large ATA disks is a BIOS that allows
|
|
! specification of more than 1024 cylinders in the drive type setup.
|
|
! Since these OSs use the BIOS only when booting, the only consequence
|
|
! of not having an Enhanced BIOS is that boot managers, boot partitions
|
|
! etcetera have to reside below cylinder 1024.
|
|
!
|
|
! Once running, these operating systems use their own software to
|
|
! control the disks. That way, they are not subject to the BIOS'
|
|
! restrictions such as the capacity limit. Unfortunately, this also
|
|
! means that if you have a translating EBIOS or software driver, the OS
|
|
! has to be aware of the translation scheme used, or conflicts will
|
|
! arise between the operating system and DOS/Windows. If you can set up
|
|
! partitions so that all DOS and boot partitions reside below the first
|
|
! 1024 cylinders (504MB), you can avoid translation altogether and all
|
|
! the hassles with it.
|
|
!
|
|
! Older operating systems, such as NetWare, don't understand translation
|
|
! at all. Newer ones (OS/2 3.x, Linux 1.2, more?) will handle standard
|
|
! translation schemes out of the box, but not those employed by some
|
|
! software drivers (EZDrive, Disk Manager v6.0 or older). In the case of
|
|
! DM 6, fixes or updates are available for some operating systems (see
|
|
! above).
|
|
!
|
|
2.10 What should I use: Normal, LBA or Large?
|
|
!
|
|
! 'Normal' causes the BIOS to behave like an old fashioned one without
|
|
! translation. Use this if your drive doesn't need it (ie. has fewer
|
|
! than 1024 cylinders) or if you want to use the drive with a non-DOS
|
|
! operating system that doesn't understand translation.
|
|
!
|
|
! 'Large' tells the BIOS to use CHS translation. It uses a different
|
|
! geometry (cylinders/heads/sectors) when talking to the drive than when
|
|
! talking to the BIOS. This type of translation works with all drives.
|
|
!
|
|
! 'LBA' differs from 'Large' in that it uses so-called LBA addressing to
|
|
! access the harddisk. The advantage of LBA is that it theoretically is
|
|
! a little faster. The disadvantages are that not all drives support it,
|
|
! not even all large ones, and it sometimes turns out to be slower,
|
|
! depending on the drive.
|
|
!
|
|
! WARNING! The BIOS may change the (translated) geometry if you change
|
|
! from Normal or Large to LBA. The same thing may happen if you transfer
|
|
! a disk that has been formatted on an old, non-LBA computer to a new
|
|
! one that uses LBA. This HAS destroyed data.
|
|
!
|
|
! Section 3 tells more about the differences between these three.
|
|
!
|
|
2.11 I have a 50MHz VLB system. Is it compatible with ATA-2 interfaces?
|
|
|
|
It should be, but there are problematic cases.
|
|
|
|
It has been observed that some controllers will base their I/O cycle
|
|
times on the bus clock of the computer. This means that with a 50MHz
|
|
bus, the cycle time will be faster than with a 33MHz bus. This could
|
|
lead to undesirable results if these cycle times are faster than the
|
|
drive can handle. Make sure your controller supports multiple bus
|
|
speeds in the software setup, and program it correctly.
|
|
|
|
2.12 I need a PCI ATA-2 interface that uses only one slot.
|
|
|
|
! There is a problem with PCI and multi-I/O or dual-ported IDE
|
|
! interfaces. These interfaces need two or more (predetermined)
|
|
! interrupts, which may not be possible with your PCI slots. The usual
|
|
! workarounds are either a tiny "paddle" board that plugs into an ISA
|
|
! slot, or integration of I/O functions on the mainboard.
|
|
|
|
Some vendors use single-slot PCI interfaces that rely on a proprietary
|
|
extension of the PCI bus. This is obviously not portable; you often
|
|
can't even move the card to a different slot in the same machine.
|
|
|
|
! This is not so much a weakness in the design of PCI, but a conflict
|
|
! between PCI's plug'n'play philosophy and the requirement that these
|
|
! cards be fully compatible with old cards.
|
|
!
|
|
2.13 Will adding an 'EIDE' interface help my drives' performance?
|
|
!
|
|
! A new interface may or may not help; it is possible to make a rough
|
|
! prediction if a better interface would really work.
|
|
|
|
Hardware vendors and marketing people would love to see everyone rush
|
|
out and buy the latest generation of "EIDE" adapters. To achieve this
|
|
noble goal they tend to juggle with too-good-to-be-true performance
|
|
figures. The relation between this advertising hype and the real world
|
|
is shaky at best.
|
|
|
|
The main point to remember is: a slow drive is a slow drive no matter
|
|
! how good the interface. If the speed at which the drive physically
|
|
! transfer the data to/from the media is the limiting factor in
|
|
! performance, and it often is, the only way to make things go
|
|
significantly faster is to purchase a better drive. Note that the
|
|
transfer modes supported by modern drives (those 11MB/s or larger
|
|
figures) have little to do with their performance.
|
|
|
|
! In addition, an 'ordinary' VLB interface may already offer respectable
|
|
! bandwidth---the fastest ATA transfer mode is theoretically 8.3 MB/s,
|
|
! which is more than any ATA-2 drive can sustain. An ISA interface
|
|
! rarely exceeds 2.5MB/s, which is a bit cramped for modern drives.
|
|
!
|
|
How to determine if the drive is the bottleneck? You can get a rough
|
|
idea by using two different benchmarks. The first benchmark should be
|
|
! a decent one that really tests the throughput from the drive platter
|
|
! to memory, such as Norton SI or QBench. For the second you take a
|
|
'benchmark' that merely moves data between the processor and the
|
|
drive's buffer cache without exercising the media at all. A popular
|
|
example that works well on drives with a buffer cache of 64k or more
|
|
is Coretest. This second result, while worthless as a disk benchmark,
|
|
is a rough indication of the interface bandwidth.
|
|
|
|
! Often you'll find that the second figure exceeds the first by a
|
|
! considerable margin (over a factor two). This means that the
|
|
! properties of the drive itself are the bottleneck, and improving the
|
|
! interface speed any further won't really help. The only thing that may
|
|
! improve performance somewhat is using block mode (using either a BIOS
|
|
! option or a driver).
|
|
!
|
|
! Only if the drive throughput starts to approach the interface
|
|
! bandwidth will you have a fair chance that a new interface will have a
|
|
! large impact on performance, _provided_ the drive supports the faster
|
|
! modes.
|
|
|
|
Be sure to read the following questions to get a more complete
|
|
picture.
|
|
|
|
2.14 Why isn't my drive as fast as it's advertised to be?
|
|
|
|
Good question. The basic answer is that the advertised modes are
|
|
! *theoretical* transfer rates.
|
|
!
|
|
! This means that for transfers to or from the buffer cache, the data
|
|
! will be transferred across the bus at n Bytes in 1 second.
|
|
! Realistically, however, drives do more than just give data to the host
|
|
! out of cache. For each sector transferred to the host, it needs to get
|
|
! one from the media. This reduces the overall "bandwidth", or the total
|
|
! drive's clock cycles dedicated to these tasks. Also, there is internal
|
|
! controller processing, table updates, and positioning information that
|
|
! has to be taken into consideration. This all reduces the throughput of
|
|
! the data cache to the bus.
|
|
|
|
On top of that, depending on the benchmark used to determine the
|
|
"throughput", the rate can vary from 1MB/s to 9MB/s and upwards, all
|
|
on the same drive. Plus, system configuration (MHz CPU, RAM, Smartdrv
|
|
! (if DOS), L1 cache) make a difference as well. Finally, different
|
|
! areas on the same disk can exhibit as much as a factor two difference
|
|
! in transfer rate.
|
|
|
|
Bottom line is, whatever benchmark you use, you will not "see" the
|
|
advertised transfer rate. The real test is how well it improves *your*
|
|
day to day applications. The rest is just fluff.
|
|
|
|
2.15 Why is my new EIDE interface no faster than my old VLB one?
|
|
|
|
There are several reasons why it is possible that an ATA-2 interface
|
|
is no faster than a local bus ATA one even if the drivers are
|
|
installed and everything works properly. The first, and most
|
|
important, is that the bandwidth of the fastest ATA mode, 8.3MB/s,
|
|
exceeds the real world transfer rate of most drives on the market
|
|
today by a considerable margin. If this is the case for your drive,
|
|
increasing the interface bandwidth beyond this will have no noticeable
|
|
effect.
|
|
|
|
A further possibility is that your drive does not support the ATA-2
|
|
transfer modes at all. In that case, an ATA-2 interface may improve
|
|
performance relative to an old-fashioned ISA bus interface, but it
|
|
will be no faster than a good local bus ATA interface.
|
|
|
|
Finally, if the ATA-2 interface does not support separate timing for
|
|
master and slave drives, putting an ordinary ATA drive on the same
|
|
cable as an ATA-2 drive will reduce the interface speed to that of the
|
|
lowest common denominator.
|
|
|
|
2.16 A guy on the net has the same drive and he gets 16MB/s!
|
|
|
|
"Usenet is like a herd of performing elephants with diarrhea--
|
|
massive, difficult to redirect, awe-inspiring, entertaining,
|
|
and a source of mind-boggling amounts of excrement when you
|
|
least expect it."
|
|
|
|
-- Gene Spafford (spaf@cs.purdue.edu), 1992
|
|
|
|
2.17 I can enable write caching on my harddisk. Should I?
|
|
|
|
Do not confuse this with Smartdrive (or whatever) lazy writes: what is
|
|
meant here is altering the drive's buffer cache management algorithm.
|
|
This is possible using newer versions of Drive Rocket, with hdparm
|
|
under Linux, and probably other utilities too. Provided, of course,
|
|
the drive supports this feature. Sometimes it can also be done using
|
|
jumpers on the drive.
|
|
|
|
There seem to be problems with this, if a program will issue a
|
|
soft-reset (which on Intel Pentium Motherboards also issues a
|
|
hardware-reset) as soon as it sees the last IRQ, which overall ends up
|
|
corrupting data. Use with care, and BACKUP.
|
|
|
|
2.18 Can I safely change the BIOS' xlation mode (None, LBA, Large)?
|
|
|
|
Unfortunately, no. Proceed with care.
|
|
|
|
While with many BIOSes, the sectors on the disk are addressed in the
|
|
same order independent of the translation mode, some use a different
|
|
type of translation algorithm. The latter type of BIOS will shuffle
|
|
your data as if it were a deck of cards if you alter the translation
|
|
mode.
|
|
|
|
Moreover, BIOSes that conform to the WD Enhanced BIOS spec may use
|
|
completely dissimilar drive geometries in the software (INT13)
|
|
interface depending on the translation mode, which opens up the
|
|
possibility of data corruption. This is a major flaw in the WD EBIOS
|
|
specification.
|
|
|
|
2.19 Can I safely move my harddisk between computers?
|
|
!
|
|
! Transferring a partitioned and formatted harddisk between computers is
|
|
! potentially dangerous if they use different translation schemes (see
|
|
! above) INCLUDING moving disk from an old computer that doesn't support
|
|
! translation at all to a new one that does. This is really a little
|
|
! known issue. Usually everything goes smoothly, but you would NOT be
|
|
! the first to be caught by surprise. DO NOT ASSUME IT WON'T HAPPEN TO
|
|
! YOU. IT *HAS* DESTROYED DATA.
|
|
!
|
|
2.20 I have problems with my Award 4.50G BIOS and large drives.
|
|
!
|
|
! If your 4.50G BIOS is dated earlier than 13/12/1994, the address
|
|
! translation table is faulty. To access drives with more than 1024
|
|
! cylinders, you cannot use address translation (Large) but *must* use
|
|
! LBA. In versions dated 13/12/1994 or later this has been fixed.
|
|
!
|
|
2.21 Can my drive do 32-bit access?
|
|
|
|
There appears to be an awful lot of confusion about this subject,
|
|
partly due to some unhappy terminology.
|
|
|
|
In the most literal sense, no ATA(-2) drive will allow 32-bit access.
|
|
Data is transferred to and from the drive over a 16 bit bus. However,
|
|
many local bus interfaces are capable of combining two 16-bit words
|
|
into a 32-bit doubleword when reading data from the disk, and the
|
|
reverse when writing. This way, data transfer between the CPU and the
|
|
interface can be done in 32-bit chunks. This is often called 32-bit
|
|
access, although 32-bit host bus transfers would be a better name.
|
|
|
|
With 32-bit host bus transfers, more efficient use is made of the
|
|
computer's bus and CPU. On the other hand, these are seldom the
|
|
bottleneck, so don't expect miracles from this feature.
|
|
|
|
Windows' 32-bit disk and file access are completely unrelated issues
|
|
and the subject of the following questions.
|
|
|
|
2.22 Help! I have OnTrack Disk Manager installed and now...
|
|
!
|
|
! There's a bit about DM in section 3. Read it. If that doesn't help,
|
|
! contact OnTrack tech support (e-mail: tech@ontrack.com).
|
|
!
|
|
2.23 Help! Windows 32-bit disk access doesn't work anymore!
|
|
!
|
|
! There are numerous reasons why 32BDA can fail; you will more easily be
|
|
! able to do something about it (or decide if you want to fix it in the
|
|
! first place) if you know a bit of what it does.
|
|
|
|
Windows' 32-bit disk access (32BDA) is a bit of a misnomer, actually,
|
|
since it has nothing to do with 32-bit data transfers. A slightly
|
|
better name for it is "FastDisk". It is a feature of Windows in
|
|
386Enhanced mode that allows one to replace the BIOS' disk routines by
|
|
Windows' own routines that work in protected mode. A much better name,
|
|
then, would be "protected mode controller access". For some reason
|
|
Microsoft decided not to use the latter.
|
|
|
|
Anyway, the main advantage of this feature is that with it, Windows
|
|
can use virtual memory for its DOS sessions. Without 32-bit disk
|
|
access, DOS sessions cannot be swapped out and every DOS box takes
|
|
640k of REAL memory. Because it also reduces the number of switches
|
|
between virtual and protected mode Windows has to make, it gives a
|
|
slight performance improvement as well, but usually nothing dramatic.
|
|
|
|
If 32BDA is used together with Windows for Workgroups' 32-bit file
|
|
access feature, it will eliminate these mode switches altogether (at
|
|
least for many disk operations), which gives a far more interesting
|
|
performance boost.
|
|
|
|
Unfortunately, the standard FastDisk routines that are internal to
|
|
windows, called *wdctrl, are severely limited in their capabilities.
|
|
The *wdctrl software understands nothing of non-IDE hardware (e.g.
|
|
SCSI), more than two harddrives, drives with more than 1024 cylinders,
|
|
32-bit host bus transfers, block transfers, or ATAPI CD-ROM drives on
|
|
the primary ATA channel. If you use any of these things, 32-bit disk
|
|
access won't work unless you have a *wdctrl replacement.
|
|
|
|
Today, that means that 32-bit disk access won't work "out of the box"
|
|
for most of us.
|
|
|
|
Most interfaces that are incompatible with *wdctrl come with their own
|
|
FastDisk routines (usually with a .386 extension). For the rest of
|
|
you, many drive manufacturers offer replacement FastDisk software. For
|
|
Western Digital you can use ftp.wdc.com (/drivers/win31.exe); for
|
|
other brands their BBS is your best bet. You can also contact your
|
|
vendor to find out what is available.
|
|
|
|
NB. These drivers are incompatible with the Stealth feature of some
|
|
versions of Quarterdeck's QEMM. Quarterdeck's fix can be found on
|
|
ftp.wdc.com:/drivers/hdutil/32bda.com.
|
|
|
|
2.24 Help! Windows for Workgroups' 32-bit file access fails!
|
|
|
|
The idiosyncrasies of the 32-bit disk access feature with respect to
|
|
disk hardware has led to the popular myth that 32-bit file access has
|
|
similar problems. However, that's all it is: a myth. If 32-bit file
|
|
access fails, you should first check your filesystem and the programs
|
|
that use it. As little as a single open file, e.g. from a printer
|
|
spooler, will cause 32BFA to fail. Oh, and put
|
|
|
|
! DEVICE=C:\WINDOWS\IFSHLP.SYS
|
|
!
|
|
! in your CONFIG.SYS, and make sure your SYSTEM.INI contains the correct
|
|
! magic incantations (vfat.386, vcache.386). If this doesn't help, read
|
|
! the FAQ on this topic (see the net.resource guide for details).
|
|
!
|
|
2.25 The user's net.resource guide
|
|
|
|
There are a couple of related FAQs floating around on the net. Hale
|
|
! Landis (landis@sugs.tware.com) has a few excellent, if pretty
|
|
! technical, documents, posted irregularly, which he keeps on intending
|
|
! to revise :^) Daniel Tauritz (dtauritz@WI.LeidenUniv.NL) no longer
|
|
! maintains EIDE Mini-FAQ that contains a short but potentially useful
|
|
! list of available interfaces; it needs to be expanded and
|
|
! maintained---any takers? All this and more can be found on
|
|
!
|
|
! ftp.wi.leidenuniv.nl:/pub/faqs
|
|
! http://www.wi.leidenuniv.nl/ata
|
|
!
|
|
! Don't forget the comp.sys.ibm.pc.hardware FAQ, maintained by Ralph
|
|
! Valentino. It can be found on comp.answers and the FAQ repository
|
|
! rtfm.mit.edu. It incorporates the world-famous 'Jumper FAQ' (see
|
|
! ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/part3).
|
|
|
|
On the tangential subject of Windows for Workgroups' 32-bit FILE
|
|
access, Mike McCormick (m.mccormick2@genie.geis.com) has a good FAQ in
|
|
! progress, posted occasionally on comp.os.ms-windows.windows.setup. It
|
|
! can also be found on comp.answers and therefore on rtfm.mit.edu too.
|
|
|
|
The SimTel repository, the primary mirror of which is oak.oakland.edu,
|
|
contains an immense number of useful material (PD, freeware and
|
|
shareware). A tiny selection, all from SimTel/msdos/diskutil:
|
|
|
|
! ideinf10.zip (will determine the properties of your harddisk(s)--
|
|
! NOT a benchmark).
|
|
! 3drvs260.zip (gives support for 3 harddisks under DOS).
|
|
! dqwik211.zip (block mode driver).
|
|
! no_idle.zip (disables the auto- idle power saving feature of some
|
|
! harddrives).
|
|
! 1seagate.zip (specs for *all* Seagate harddrives).
|
|
! wasted14.zip (shows wasted space due to cluster size).
|
|
! presz111.zip (partition resizer).
|
|
!
|
|
! A more manageable selection of useful utilities, drivers and
|
|
! information (this FAQ :^) can be found on
|
|
!
|
|
! ftp.aimnet.com:/pub/users/clau/ide_ata
|
|
! ftp.rahul.net:pub/lps/hard-disk
|
|
!
|
|
! Frank Pikelner (frank@cs.yorku.ca) has compiled a list of >500MB
|
|
! harddisk and >4x CD-ROM drive specifications. You can access it
|
|
! through http://www.cs.yorku.ca/People/frank/Welcome.html. If it looks
|
|
! weird, your browser doesn't support the TABLE tag.
|
|
|
|
2.25.1 The user's net.resource guide: I/O card drivers
|
|
|
|
! There's an initiative to build a depository of IDE card drivers; you
|
|
! can find these at
|
|
|
|
ftp.funet.fi:/pub/drivers/pc/disk/ide_ata
|
|
|
|
2.25.2 The user's net.resource guide: hardware manufacturers
|
|
|
|
A number of disk manufacturers now have FTP and web sites; these are
|
|
|
|
! IBM
|
|
! http://www.ibm.com
|
|
! http://www.pc.ibm.com (PC Company)
|
|
|
|
! Iomega (they don't make harddrives, but oh well...)
|
|
! http://www.iomega.com
|
|
|
|
! Maxtor
|
|
! ftp://ftp.maxtor.com
|
|
! http://www.maxtor.com (not yet public as of 4/1/1995)
|
|
|
|
! All files from their BBS are on the FTP site, including biosbnch.zip,
|
|
! a benchmarking utility; greendrv.zip, to set the sleep mode timer on
|
|
! 'green' drives.
|
|
|
|
! Quantum
|
|
! http://www.quantum.com
|
|
|
|
! No official FTP site, although drivers to use Quantum's large
|
|
! harddisks with a non-translating BIOS can be found in
|
|
|
|
ftp.rahul.net:pub/lps/hard-disk/ide_dos.exe
|
|
|
|
! This is NOT an official Quantum support site and may disappear. This
|
|
! site contains miscellaneous storage-related programs and information
|
|
! too.
|
|
|
|
! Seagate
|
|
! ftp://ftp.seagate.com
|
|
! http://www.seagate.com
|
|
|
|
! This includes specifications of ALL Seagate drives, including detailed
|
|
! diagrams/pictures.
|
|
|
|
! Western Digital
|
|
! ftp://ftp.wdc.com
|
|
! http://www.wdc.com
|
|
|
|
! Many drivers and utilities, some of which won't work if you don't have
|
|
! at least one WD Caviar drive in your system. Goodies to be found: a
|
|
! good Windows FastDisk driver in /drivers/hdutil/win31.exe; a Windows
|
|
! helpfile explaining Enhanced IDE in /docs/eide.exe; a utility to
|
|
! examine the Enhanced DPT of your BIOS: /drivers/hdutil/chkbios.com.
|
|
|
|
|
|
Pointers to sites offering software from other manufacturers would be
|
|
appreciated.
|
|
|
|
! If 'your' manufacturer is doesn't have a net site, you may want to
|
|
! check the harddrive spec listings to be found on
|
|
!
|
|
! ftp.ee.ualberta.ca:/pub/drives
|
|
! http://www.ee.ualberta.ca/ftp.html
|
|
!
|
|
! Are there any ATA interface manufacturers offering services on the
|
|
! net, or do they really not care about customer support?
|
|
!
|
|
2.25.3 The user's net.resource guide: software & BIOS publishers
|
|
!
|
|
! AMI
|
|
! ftp://american.megatrends.com
|
|
!
|
|
! IBM
|
|
! http://www.ibm.com
|
|
! http://www.pc.ibm.com (PC Company)
|
|
!
|
|
! Microsoft
|
|
! ftp://ftp.microsoft.com
|
|
! http://www.microsoft.com
|
|
!
|
|
General Windows and DOS updates, fixes and Microsoft Knowledge Base
|
|
articles can be found on the Microsoft FTP site (ftp.microsoft.com).
|
|
Unfortunately, the structure of this site can hardly be called
|
|
intuitive (which, some would argue, is characteristic of Microsoft
|
|
products in general).
|
|
|
|
! Novell
|
|
! http://www.novell.com
|
|
! http://www.netware.com (Netware info)
|
|
!
|
|
! OnTrack
|
|
! e-mail: tech@ontrack.com (tech support) sales@ontrack.com (sales).
|
|
!
|
|
! Phoenix
|
|
! http://www.ptltd.com
|
|
!
|
|
! SCO
|
|
! http://www.sco.com
|
|
!
|
|
!
|
|
- Technicalities -
|
|
|
|
This part of the FAQ is intended to provide additional background
|
|
information for the curious. The answers here differ wildly in the
|
|
depth in which they treat the material; pick and read at will. It's a
|
|
FAQ, not a book.
|
|
!
|
|
|
|
3.1.1 How does ATA(-2) work?
|
|
|
|
To understand the basic concepts of advanced ATA drives, one first
|
|
needs to understand the basics of drive technology. Basically, when
|
|
the operating system needs data to be either read or written to
|
|
secondary storage (the hard disk), the BIOS gets the command, and
|
|
passes that command to the drive. For operating systems other than
|
|
DOS, the BIOS is usually replaced by the operating system's own IO
|
|
subsystem; the principle remains the same.
|
|
|
|
How the command is passed, interpreted, and responded to, forms the
|
|
! basis for Advanced ATA. In a nutshell, there are 7 registers, the Task
|
|
! File, that the BIOS writes to/reads from to create a command. An
|
|
! eighth register is used to read and write data. The signals that
|
|
! create these reads and writes are controlled by the BIOS, but their
|
|
! timing is determined by the interface hardware, and ATA specifications
|
|
! dictate how fast these signals can be asserted or deasserted. There
|
|
! are currently 4 modes of Programmed Input/Output (PIO) and 4 modes of
|
|
! Direct Memory Access (DMA). The numbers all of you have been reading
|
|
! about are only a small portion of these specifications, but they are
|
|
! the ones that marketing can tout best. These "transfer rates" are a
|
|
! result of the specification that controls how fast the I/O Read and
|
|
! Write cycle time of the data register can operate at.
|
|
|
|
3.1.2 What are PIO modes?
|
|
|
|
The PIO mode determines how fast data is transferred to and from the
|
|
drive. In the slowest possible mode, PIO mode 0, the data cycle time
|
|
can not exceed 600 nanoseconds. In a single cycle, 16 bits are
|
|
transferred in or out of the drive. In a single sector, there are 256
|
|
words (16 bits = 1 word); 2048 sectors make up a megabyte. So,
|
|
mathematically,
|
|
|
|
1 cycle 1 sector 1 megabyte 2000
|
|
------- * --------- * ------------ = ----- = 3.3MB/s
|
|
600ns 256 words 2048 sectors 600ns
|
|
|
|
So, the theoretical transfer rate of PIO Mode 0 (600ns cycle time) is
|
|
3.3 megabytes per second.
|
|
|
|
Here are the rest of the PIO modes, with their respective transfer
|
|
rates:
|
|
|
|
PIO Mode: Cycle time transfer rate
|
|
(ns) (MB/s)
|
|
0 600 3.3 | these are the
|
|
1 383 5.2 | old ATA modes
|
|
2 240 8.3 |
|
|
! 3 180 IORDY 11.1
|
|
! 4 120 IORDY 16.6
|
|
!
|
|
! The ATA-2 specific modes (3 and 4) use IORDY hardware flow control.
|
|
! This means that the drive can use the IORDY line to slow down the
|
|
! interface when necessary. Interfaces without proper IORDY support may
|
|
! cause data corruption in the fast PIO modes; with these you're stuck
|
|
! with the slower modes, with typically half the bandwidth.
|
|
|
|
When interrogated with an Identify Drive command, a harddisk returns,
|
|
among other things, information about the PIO and DMA modes it is
|
|
capable of using.
|
|
|
|
3.1.3 What are DMA modes?
|
|
|
|
DMA or Direct Memory Access means that the data is transferred
|
|
directly between drive and memory without using the CPU as an
|
|
intermediary, in contrast to PIO. In true multitasking operating
|
|
systems like OS/2 or Linux, DMA leaves the CPU free to do something
|
|
useful during disk transfers. In a DOS/Windows environment the CPU
|
|
will have to wait for the transfer to finish anyway, so in these cases
|
|
DMA isn't terribly useful.
|
|
|
|
There are two distinct types of direct memory access: DMA and
|
|
busmastering DMA. Ordinary DMA relies on the DMA controller on the
|
|
system's mainboard to perform the complex task of arbitration,
|
|
grabbing the system bus and transferring the data. In the case of
|
|
busmastering DMA, all this is done by logic on the interface card
|
|
itself. Of course, this adds considerably to the complexity and the
|
|
price of a busmastering interface.
|
|
|
|
Unfortunately, the DMA controller on ISA systems is ancient and slow,
|
|
and out of the question for use with a modern harddisk. VLB cards
|
|
cannot be used as DMA targets at all and can only do busmastering DMA.
|
|
It is only on EISA- and PCI-based interfaces that non-busmastering DMA
|
|
is viable: EISA type 'B' DMA will transfer 4MB/s, PCI type 'F' DMA
|
|
between 6 and 8MB/s. Today, proper software support for DMA is still
|
|
rare, as are interfaces supporting it.
|
|
|
|
Anyway, the DMA modes supported are:
|
|
|
|
DMA Mode: Cycle time transfer rate
|
|
Single Word: (ns) (MB/s)
|
|
0 960 2.1 | also in ATA
|
|
1 480 4.2 |
|
|
2 240 8.3
|
|
Multiword:
|
|
0 480 4.2 | also in ATA
|
|
1 150 13.3
|
|
2 120 16.6
|
|
|
|
Note that some interfaces are able to use these DMA modes as a way to
|
|
communicate with the drive, without actually doing direct memory
|
|
access at all. In these cases, the DMA modes are just used as
|
|
glorified PIO modes. Needless to say, the advertisements and glossy
|
|
sales stuff don't bother to point out the difference.
|
|
|
|
3.1.4 How are the Task File and data I/O ports assigned?
|
|
!
|
|
! The Task File registers and the data register of the primary ATA
|
|
! channel occupy the following I/O addresses (in hexadecimal notation):
|
|
!
|
|
! Register Read Function Write Function
|
|
!
|
|
! 1F0 Read Data Write Data
|
|
! (16 Bits) (16 bits)
|
|
! 1F1 N/A Set Features Data
|
|
! 1F2 Status of sector Write sector count
|
|
! count for command setup
|
|
! 1F3 Location of starting Write sector start
|
|
! sector for command setup
|
|
! 1F4 Location of Cyl-low Write cyl-low location
|
|
! for command setup
|
|
! 1F5 Location of Cyl-high Write cyl-high location
|
|
! for command setup
|
|
! 1F6 Head/device selection Write device selection
|
|
! and head selection for
|
|
! command setup
|
|
! 1F7 Device Status Device command
|
|
!
|
|
! The secondary ATA channel usually occupies ports 170-177. There is no
|
|
! reason why the number of ports cannot be expanded beyond this; the de
|
|
! facto standard addresses for the third and fourth ports are 1E8 and
|
|
! 168. Potential BIOS support for arbitrary extra ports is found only in
|
|
! the Phoenix specification.
|
|
!
|
|
3.1.5 What does an ATA-2 interface do?
|
|
!
|
|
! Interfaces have come a long way since the ordinary ISA IDE consisting
|
|
! of little more than a simple buffer. ATA-2 boards have to support at
|
|
! least PIO modes 0 and 3, usually support more, and will have to ensure
|
|
! that the correct timing is used at the ATA interface for each of these
|
|
! modes. Since the timing specifications are quite complicated, a great
|
|
! deal of flexibility is necessary to implement the ATA-2 standard
|
|
! correctly.
|
|
!
|
|
! The following figure defines the relationships between the interface
|
|
! signals for both 8-bit and 16-bit PIO data transfers.
|
|
!
|
|
! |<------------ t0 ------------------------>|
|
|
! __________________________________________ |
|
|
! Address Valid *1 _____/ \________
|
|
! |<-t1->|<----------- t2 ----------->|<-t9->| |
|
|
! | |____________________________|<---t2i----->|_
|
|
! DIOR-/DIOW- ____________/ \_____________/
|
|
! | | | |
|
|
! | | ________|__ ->| |<-t8
|
|
! Write Data *2 --------------------------------<___________>------------
|
|
! | | |<--t3-->| | |
|
|
! | | ->|t4|<- |
|
|
! | | _______|___ ____ |
|
|
! Read Data *2 ---------------------------------<___________X____>------
|
|
! ->|t7|<- | | ->|t6 |<- | |
|
|
! | | ->| tA |<- |<-t5-->|<-t6Z-->|
|
|
! | |___________________________________________|
|
|
! IOCS16- ________/ | | \____
|
|
! | ->|tRd|<- |
|
|
! _________________|___________________|___________________
|
|
! IORDY XXXXXXXXXXXXXXXXX____________________/
|
|
! |<-------tB-------->|
|
|
! *1 Device Address consists of signals CS0-, CS1- and DA2-0
|
|
! *2 Data consists of DD0-15 (16-bit) or DD0-7 (8-bit)
|
|
!
|
|
! In this diagram, t0 denotes the read/write cycle time, the most
|
|
! significant determining parameter for PIO mode throughput. As you can
|
|
! see, there is a lot more to the various PIO and DMA modes than the
|
|
! read/write cycle time only. To design a low-cost interface that fully
|
|
! adheres to the ATA-2 specification is quite a challenge. The common
|
|
! approach is to make the timing completely software programmable;
|
|
! unfortunately, the way ATA cards are programmed has not been
|
|
! standardized and they are completely incompatible with each other in
|
|
! this respect. The consequence is that you will typically need
|
|
! interface-specific drivers for each and every operating system used in
|
|
! order to profit from the fast transfer modes.
|
|
|
|
3.1.6 What is Block mode?
|
|
!
|
|
! Multiple Read/Write commands (reduces Interrupts to host processor).
|
|
|
|
Besides the obvious transfer increase, Fast-ATA and many other drives
|
|
allow for Read/Write Multiple commands, which increase the number of
|
|
sectors passed without intervening interrupts. This lessens the host's
|
|
! overhead, as every interrupt causes the CPU to do a context switch,
|
|
! check the device and set up the data transfer (or perform the transfer
|
|
! itself in the case of PIO).
|
|
|
|
The Read Multiple Command (0xC4) and the Write Multiple Command (0xC5)
|
|
are drive-level commands that can transfer multiple sectors of data
|
|
without asserting the IRQ line of the drive, signaling the processor
|
|
that a drive operation is pending.
|
|
|
|
The IRQ line is asserted when:
|
|
|
|
- A read command has been issued, and the requested data is in the
|
|
drive's buffer, ready to be taken by the host.
|
|
|
|
- A write command has been issued, and the data has transferred to
|
|
the drive's buffer. If write caching is disabled, the IRQ won't be
|
|
asserted until the data has been completely written to the media.
|
|
|
|
During normal reads and writes, the interrupt can constantly bother
|
|
the CPU, and depending on the processor and the task at hand
|
|
(multi-tasking OS, Unix, etc), there can be long delays in having the
|
|
CPU service the drive. The advent of Read/Write Multiple allows many
|
|
sectors (from 2 up to as many as 128) to be transferred in one go,
|
|
completing the task in as much as 30% faster times.
|
|
|
|
On single-tasking operating systems like DOS, any improvement over a
|
|
few percent usually indicates bad buffer cache management on the part
|
|
of the drive.
|
|
|
|
! A final remark: the block size that is optimal for _drive_ throughput
|
|
! doesn't have to be the best for _system_ performance! For example, the
|
|
! DOS FAT filesystem tends to favor a block size equal to the cluster
|
|
! size.
|
|
!
|
|
3.1.7 What is LBA?
|
|
|
|
LBA is a means of linearly addressing sectors addresses, beginning at
|
|
sector 1 of head 0, cylinder 0 as LBA 0, and proceeding on to the last
|
|
physical sector on the drive, which, for instance, on a standard 540
|
|
Meg drive would be LBA 1,065,456. This is new in ATA-2, but has always
|
|
been the one and only addressing mode in SCSI.
|
|
|
|
LBA reduces CPU overhead because the O/S makes requests in LBA calls,
|
|
which the BIOS normally has to convert to CHS (cylinder head sector)
|
|
addressing (the common method) before calling the drive. With LBA,
|
|
! this conversion process is removed. Beware that depending on the way
|
|
! LBA is implemented in the harddisk firmware, the overhead on the part
|
|
! of the drive may in some cases increase.
|
|
|
|
3.2.1 How does ATAPI differ from, and coexist with, ATA(-2)?
|
|
|
|
For the sake of compatibility with non-ATAPI aware software that might
|
|
mistake an ATAPI device for a harddrive, the device pretends it isn't
|
|
there until it's waken up by a special sequence of commands. Once
|
|
activated, it uses a command protocol that radically differs from that
|
|
used by harddisks.
|
|
|
|
The reason is that the 8-bit Task File used by harddisks is not large
|
|
enough to support some CD-ROM command structures. Therefore, only a
|
|
minimum of traditional ATA commands are supported by ATAPI devices.
|
|
! For most of their functions, these devices rely on the ATAPI Transport
|
|
! Protocol using packets of at least 12 bytes sent, as data, through the
|
|
! Data Register. These packet commands have been derived from the SCSI
|
|
! command set; this makes it reasonably easy to rewrite existing SCSI
|
|
CD-ROM and tape drivers for ATAPI hardware.
|
|
|
|
! Beware that non-ATAPI aware 'intelligent' controllers, for example
|
|
! caching controllers, will be mightily confused by packet commands.
|
|
! Traditionally, the data register is only used to transport 512-byte
|
|
! sectors; a 12-byte command packet looks completely different and
|
|
! should be treated in a different way by the controller.
|
|
!
|
|
3.2.2 What's so special the secondary port?
|
|
!
|
|
! Nothing, in principle. A secondary IDE port has been reserved in the
|
|
! PC I/O map for ages (base address 170, IRQ 15), and adapters that
|
|
! could be configured as secondary have been available for quite some
|
|
! time, even though BIOS support was lacking. So while it is a part of
|
|
! EIDE, there is actually nothing new about this feature, except that
|
|
! the possibility of connecting tape drives and CD-ROMs to the ATA
|
|
adapter has transformed four device support from a luxury into a
|
|
necessity.
|
|
|
|
Actually, there is another reason to provide a secondary port for
|
|
ATAPI devices. There are a number of advanced hardware features for
|
|
harddisk interfaces, such as prefetch buffers and write behind, that
|
|
may get in the way of ATAPI compatibility. This means that if the
|
|
! software drivers of an intelligent ATA-2 port are not ATAPI-aware, or
|
|
! simply don't work as they should, you may run into sticky problems. A
|
|
secondary port that provides only basic ATA features is a good way to
|
|
avoid a lot of headaches.
|
|
|
|
Finally, an ATAPI device on the primary port will cause Windows
|
|
FastDisk drivers that aren't ATAPI aware to fail.
|
|
|
|
3.3.1 How does translation work?
|
|
|
|
There are roughly three ways today's BIOSes can handle translation:
|
|
standard CHS addressing, Extended CHS addressing, and LBA addressing.
|
|
Translation does NOT automatically imply LBA, as you will see.
|
|
|
|
[1] Standard CHS: no translation at all :^(
|
|
|
|
Communication between drive, BIOS and operating system goes like this:
|
|
|
|
|
|
+-------- DRIVE --------+ +- BIOS --+ +---- OS ----+
|
|
| | | | | & APPS |
|
|
| physical T1 logical logical |
|
|
| geometry used ====> geometry ----> geometry |
|
|
|internally only (CHS) (CHS) |
|
|
| | | | | |
|
|
+-----------------------+ +---------+ +------------+
|
|
|
|
|
|
There is only one translation step, T1, which is internal to the
|
|
drive. The drive's actual, physical geometry is completely invisible
|
|
! from the outside. The Cylinders, Heads and Sectors printed on the
|
|
! label for use in the BIOS setup have *nothing* to do with the physical
|
|
! geometry! The logical geometry, used throughout, is subject to both
|
|
! IDE's limitation to 16 heads _and_ to the BIOS' limitation of 1024
|
|
! cylinders, which gives the (in)famous 504MB limitation.
|
|
|
|
(CHS) stands for Cylinder, Head, Sector addressing.
|
|
|
|
|
|
[2] Extended CHS
|
|
|
|
+-------- DRIVE --------+ +- BIOS --+ +---- OS ----+
|
|
| | | | | & APPS |
|
|
| physical T1 logical T2 translated |
|
|
| geometry used ====> geometry ====> geometry |
|
|
|internally only (CHS) (CHS) |
|
|
| | | | | |
|
|
+-----------------------+ +---------+ +------------+
|
|
|
|
|
|
Logical geometry is used to communicate between the drive and the
|
|
BIOS, while a different, translated geometry is used to communicate
|
|
between the BIOS and everything else.
|
|
|
|
! There are two translation steps, T1 and T2. T2 is the translation
|
|
! performed by the BIOS. This procedure breaks the 528MB barrier because
|
|
! the geometries used are not subjected to the BIOS and IDE limitations
|
|
_simultaneously_: the logical geometry is subject to IDE's 16 head
|
|
limitation, but _not_ to the 1024 cylinder limitation. For the
|
|
translated geometry, it is just the reverse.
|
|
|
|
! Most BIOSes denote extended CHS translation with 'LARGE'. NOTE that
|
|
! the geometry you usually enter in your BIOS setup is the logical
|
|
! geometry, not the translated one. In case of doubt, consult the BIOS
|
|
! manual.
|
|
|
|
|
|
[3] Logical Block Addressing (LBA)
|
|
|
|
Here, the logical geometry is dispensed with entirely and replaced by
|
|
a single, large, linear block number. This makes far more sense than
|
|
using a logical geometry that is completely fake anyway.
|
|
|
|
|
|
+-------- DRIVE --------+ +- BIOS --+ +---- OS ----+
|
|
| | | | | & APPS |
|
|
| physical T1 linear T2 translated |
|
|
| geometry used ====> block no.====> geometry |
|
|
|internally only (LBA) (CHS) |
|
|
| | | | | |
|
|
+-----------------------+ +---------+ +------------+
|
|
|
|
|
|
This breaks the 528MB barrier in essentially the same way as extended
|
|
! CHS does. Because it is somewhat simpler to use a single linear number
|
|
! to address a sector on the harddisk compared to a CHS type address,
|
|
! this often is _slightly_ (read: insignificantly) faster. Depending on
|
|
! the quality the drive's LBA implementation, it may even turn out to be
|
|
! slower.
|
|
|
|
|
|
A translating BIOS can be implemented via system BIOS or on-board
|
|
controller BIOS. Basically, this takes the drive's logical default
|
|
geometry, and if the cylinder count is beyond 1024, will divide the
|
|
cylinder count by an appropriate factor and multiply the heads by the
|
|
same. For instance, let's take the 540 Meg drive: it has 1057
|
|
cylinders, 16 heads. Well, DOS can only handle 1024 cylinders, but it
|
|
can address up to 255 heads. So, the x-lating BIOS will pass to the
|
|
O/S, via INT 13 calls, the geometry 528 (1057/2 (approx)) and 32 heads
|
|
(16 *2). Then, when the O/S makes a request to the drive, the BIOS
|
|
will re-translate the request to the original order, or to an LBA
|
|
number if LBA is enabled. This allows for capacities of up to 8
|
|
gigabytes.
|
|
|
|
3.3.2 I'd like to know how translation works in detail.
|
|
|
|
You asked for it :^)
|
|
|
|
If a drive is less than 528MB, it should have a logical geometry, as
|
|
reported in Identify Device words 53-58, of 1024 or less cylinders, 16
|
|
or less heads and 63 or less sectors. Such a drive can be addressed
|
|
directly without invoking this algorithm.
|
|
|
|
For drives over 528MB, the CHS address received by the BIOS from DOS
|
|
must be converted to an Extended CHS address, or an LBA address. We'll
|
|
assume ECHS for now.
|
|
|
|
First, during BIOS setup, the BIOS must determine the value of N. This
|
|
value is used to convert the drive's geometry to a geometry that the
|
|
BIOS can support at the INT 13H interface. This interface requires
|
|
that Cyl be less than or equal to 1024. The number of cylinders
|
|
(Identify Device word 1) is divided by N while the number of heads
|
|
(Identify Device word 3) is multiplied by N. N must be 2, 4, 8, ..., a
|
|
power of 2.
|
|
|
|
Second, in most translating BIOSes, the following algorithm is used
|
|
whenever INT 13H is called to perform a read or write:
|
|
|
|
eCyl = ( Cyl * N) + ( Head / dHead ); /* head DIV dHead */
|
|
eHead = ( Head % dHead ); /* head MOD dHead */
|
|
eSector = Sector; /* used as is */
|
|
|
|
|
|
By way of example, assume the drive's geometry is 2000 cylinders, 16
|
|
heads and 63 sectors (these numbers are in Identify Words 1, 3, and 6)
|
|
and that the BIOS determines the value of N to be 2. The BIOS reports
|
|
to DOS that the drive has 1000 cylinders, 32 heads and 63 sectors when
|
|
INT 13H AH=08H function is called. This is 2016000 sectors.
|
|
|
|
Cyl/Head/Sector eCyl/eHead/eSector LBA
|
|
|
|
0 0 1 0 0 1 0
|
|
...
|
|
500 0 1 1000 0 1 1008000
|
|
500 15 63 1000 15 63 1009007
|
|
500 16 1 1001 0 1 1009008
|
|
500 31 63 1001 15 63 1010015
|
|
501 0 1 1002 0 1 1010016
|
|
...
|
|
999 31 63 1999 15 63 2015999
|
|
|
|
Note the following about this algorithm: The physical ordering of
|
|
sectors on the drive is unaffected -- sector n is followed by sector
|
|
n+1 for all CHS and Extended CHS and LBA addresses. This is the only
|
|
sane way of implementing translation, but unfortunately NOT ALL BIOSES
|
|
DO IT THIS WAY. This means that changing translation modes may be a
|
|
dangerous thing to do.
|
|
|
|
3.3.3 What is in the Enhanced Disk Parameter Table?
|
|
|
|
In a standard BIOS, the Fixed Disk Parameter Table (FDPT) contains
|
|
information about the geometry of the harddisk(s). It more or less
|
|
contains the same information as the drive type entry in the CMOS
|
|
setup. A program that wants to use the harddisk on a low level,
|
|
bypassing DOS, normally uses the BIOS' INT13 functions to achieve
|
|
this.
|
|
|
|
The Enhanced fixed Disk Parameter Table (EDPT) is an extension of the
|
|
ordinary FDPT that makes use of undefined fields to provide
|
|
information about the translation mode used. It uses a magic number
|
|
(A0 in byte 3) and a checksum (in byte 15) to ensure that software
|
|
cannot mistake random data for an EDPT. This is more or less standard
|
|
across various flavors of translating BIOSes.
|
|
|
|
On top of this, the Phoenix Enhanced BIOS standard specifies a number
|
|
of extended INT13 functions and a 16 byte FDPT extension. The latter
|
|
contains detailed information about the current PIO or DMA type, block
|
|
mode used, LBA or (E)CHS addressing, 32 bit transfer mode, media type
|
|
(removable, CD-ROM), control port base and IRQ. In other words, it
|
|
covers all new features of the ATA family and is flexible enough to
|
|
accommodate more than four devices, nonstandard port addresses and
|
|
IRQs. Proper support of all this is important to achieve any degree of
|
|
Plug'n'Play functionality with ATA hardware. The WD EIDE BIOS lacks
|
|
all these features.
|
|
|
|
3.3.4 What are the issues surrounding OnTrack's Disk Manager?
|
|
!
|
|
! This is a cross between a background section and a mini-FAQ on Disk
|
|
! Manager. If you want to know more or have problems, read this.
|
|
!
|
|
! Disk Manager 6.x (and above) is a piece of software that performs the
|
|
! translation necessary to access harddisks of more than 1024 cylinders
|
|
! with DOS/Windows. This is achieved by installing a Dynamic Drive
|
|
! Overlay (DDO) to translate drive parameters. At present, it provides
|
|
! only the basic translation functions, without EDPT or extended INT13
|
|
! calls. Of course, this is less of an issue in a software driver than
|
|
! in a system BIOS.
|
|
!
|
|
! If Disk Manager (DM) is used to format only the slave drive, the DDO
|
|
! can be installed in the config.sys as an ordinary device driver
|
|
! (device=dmdrvr.bin). On the other hand, using DM on the master drive
|
|
! isn't quite that easy from a technical point of view. Since you must
|
|
! boot DOS from the master drive, and you must load the DDO before you
|
|
! can access the drive, the only option is to load it very early during
|
|
! the boot process, before the operating system itself. Changes are made
|
|
! to the Master Boot Record (MBR) to accomplish this "pre-boot loading".
|
|
!
|
|
! This scheme works fine, but has a few drawbacks. First, DDO as a
|
|
! pre-boot loader has implications for floppy boots. If you boot
|
|
! directly from a floppy, DDO does not have a chance to boot and the
|
|
! partition does not make sense. This can be remedied by having a line
|
|
! in the config.sys on the floppy which reads "device=dmdrvr.bin". You
|
|
! can also watch for the "press spacebar to boot from floppy message"
|
|
! when booting from the hard drive.
|
|
!
|
|
! The second, and perhaps most important, drawback is that operating
|
|
! system installations routinely overwrite the MBR with their own boot
|
|
! code. The DDO is no longer loaded and your partition will be
|
|
! inaccessible until you let DiskManager write a new MBR. Third,
|
|
! corruption of the DDO sector will result in a DDO Integrity Error.
|
|
! While it is fairly easy to re-write the DDO sector (use the DMCFIG.exe
|
|
! utility on your DM diskette), this is is a sign of a bigger problem
|
|
! (eg. virus) rather than a problem in itself---contact Ontrack tech
|
|
! support (tech@ontrack.com) for assistance.
|
|
!
|
|
! An advantage of formatting the master drive with DM instead of loading
|
|
! the DDO from config.sys is that you can use Windows for Workgroups'
|
|
! 32-bit file access on both drives---if you use dmdrvr.bin, the slave
|
|
! drive is restricted to 16-bit file access.
|
|
!
|
|
! The 6.x versions of Disk Manager have some additional disadvantages
|
|
! that are to be corrected in version 7. They are not fully compatible
|
|
! with the device drivers of most VLB ATA(-2) interfaces; also,
|
|
! non-drive (ATAPI) devices on the chain are not supported. Disk Manager
|
|
! v6.x also only supports DOS (and Windows 3.x) because of the
|
|
! nonstandard partitioning scheme used (v7.x will be fully compatible
|
|
! with OS/2 Warp, Windows NT and Windows 95; Linux has been successfully
|
|
! installed, but has not be through the full test program, so
|
|
! compatibility is not guaranteed). Actually, Windows 95 will support
|
|
! 6.x and above Disk Manager 'out of the box', as will new versions of
|
|
! OS/2 Warp and Windows NT 3.5.1. IBM and MicroSoft have created fixes
|
|
! that allow older versions of OS/2, Warp and Windows NT to work with
|
|
! Disk Manager v6.x.
|
|
!
|
|
! A final concern is disk utilities. If the utility in question hooks
|
|
! INT13 to directly to the hardware (bypassing DOS in the process) it is
|
|
! not going to "see" DDO and could potentially be destructive. Ontrack's
|
|
! policy on this is to refer compatibility questions to the manufacturer
|
|
! of the utility as they cannot possibly maintain compatibility charts
|
|
! for all versions of all utilities.
|
|
!
|
|
3.3.5 How many types of translating/Enhanced BIOSes are there?
|
|
|
|
Too many. See the preceding question for a discussion of some of the
|
|
differences between a Phoenix EBIOS and a WD EBIOS. For a more
|
|
exhaustive discussion of BIOS types, Hale Landis' effort is
|
|
indispensable---see the resource guide below.
|
|
|
|
3.4 How does Windows' 32-bit disk access work?
|
|
|
|
32-bit disk access (32BDA), also known as FastDisk, is a set of
|
|
protected-mode drivers that direct INT13 calls to the hard disk
|
|
controller through a protected mode interface. For the latter the hard
|
|
disk controller has to supply an appropriate virtual device driver
|
|
(VxD).
|
|
|
|
Windows ships with one such device built in: *wdctrl. Unfortunately,
|
|
this device only supports controllers that are strictly compatible
|
|
with the WD1003 standard; this excludes SCSI, ATA-2, CHS translation,
|
|
disks with more than 1024 cylinders and even some features of ATA. If
|
|
it detects one of these during the initialization phase it will refuse
|
|
to load. In today's computers, this means that *wdctrl will rarely do
|
|
the job and an external VxD must be used.
|
|
|
|
32BDA has two advantages over disk access through the BIOS. First,
|
|
since the FastDisk VxD is re-entrant, it enables Windows to use
|
|
virtual memory for DOS sessions. Using virtual memory without 32BDA
|
|
could create a deadlock situation if a page fault is generated during
|
|
the execution of BIOS routines. Since the BIOS is not re-entrant, it
|
|
is not possible to use a BIOS call to read the page from disk until
|
|
the first BIOS call has terminated; on the other hand, this BIOS
|
|
thread must remain suspended until the swapped out page has been read.
|
|
|
|
So 32BDA enables Windows to manage memory much more efficiently with
|
|
one or more DOS sessions open.
|
|
|
|
The second advantage of 32-bit disk access is that it saves two
|
|
(relatively slow) switches between virtual and protected mode per disk
|
|
I/O call. Take, for instance, a disk read performed by a DOS
|
|
application. In the absence of 32BDA, each such call causes the
|
|
following sequence of events:
|
|
|
|
1 Application calls INT21 to read from disk
|
|
2 Windows traps the call, switches to protected mode
|
|
3 Windows switches to real mode, returns to DOS
|
|
4 DOS makes INT13 call to BIOS disk routines
|
|
5 Windows traps the call, switches to protected mode
|
|
6 Windows switches to real mode, returns to BIOS
|
|
7 BIOS acts upon INT13 call and does the read
|
|
8 Windows traps the return from INT13, switches to PM
|
|
9 Windows switches to RM, returns the result to DOS
|
|
10 DOS receives the result, passes on to application
|
|
11 Windows traps the return from DOS, switches to PM
|
|
12 Windows switches to RM, returns result to application
|
|
13 Application receives the result from the INT21 call
|
|
|
|
Using 32-bit disk access replaces steps 6 to 8 by a single call to the
|
|
FastDisk VxD. This removes two mode switches, resulting in a usually
|
|
! small disk performance improvement. (Steps 3-11 also apply to native
|
|
! Windows applications).
|
|
!
|
|
3.5.1 The hacker's documentation guide
|
|
!
|
|
! AT Attachment Interface for Disk Drives, ANSI ASC X3T9.2 working
|
|
! draft, revision 4a.
|
|
!
|
|
! AT Attachment Interface with Extensions (ATA-2), ANSI ASC X3T10
|
|
! working draft, revision 3, proposed American National Standard 948D.
|
|
!
|
|
! AT Attachment-3 Interface (ATA-3), ANSI ASC X3T10 working draft,
|
|
! revision 1.
|
|
!
|
|
! Western Digital Enhanced IDE Implementation Guide, by Western Digital
|
|
! Corporation, revision 5.0.
|
|
|
|
! Fast ATA Sourcebook, Quantum Corporation, November 1994.
|
|
!
|
|
! Enhanced Disk Drive Specification, by Phoenix Technologies Ltd.,
|
|
! version 1.1, January 95.
|
|
!
|
|
3.5.2 The hacker's net.resource guide
|
|
|
|
Hale Landis (landis@sugs.tware.com) has posted a technical discussion
|
|
of various BIOS types and how they support drives with more than 1024
|
|
! cylinders on csip.hardware.storage. This is available from Daniel
|
|
! Tauritz' ftp and www sites (see the user's resource guide) and is
|
|
! invaluable to programmers having to deal with this mess. Lately, he
|
|
! has released a veritable flood of 'how it works' documents dealing
|
|
! with boot sectors, MBRs and partition tables---I hope it's being
|
|
! archived somewhere (anyone?).
|
|
|
|
fission.dt.wdc.com, a Western Digital FTP site, contains loads of
|
|
material pertaining to the SFF Committee, the ATA, ATA-2 and ATAPI
|
|
! standards, the Phoenix Enhanced BIOS spec, and archives of the various
|
|
! reflectors (mailing lists, such as the ATA-2 and ATAPI lists). Look in
|
|
! /pub/standards. The mailing lists themselves can be accessed through
|
|
! majordomo@dt.wdc.com; send a message
|
|
!
|
|
! To: majordome@dt.wdc.com
|
|
!
|
|
! help
|
|
! end
|
|
!
|
|
! to get more information.
|
|
|
|
! ftp.symbios.com: /pub/standards/io also contains information about
|
|
! ATA, ATA-2, ATA-3, SCSI-2 and many more standards.
|
|
|
|
Other pointers are appreciated.
|
|
|
|
(EOF)
|