There are a number of 'EIDE' features which can be desirable in a new
interface. Some features, however, may already be present on your
system or be unimportant to you.
- The least a modern interface should provide is PIO mode 3
transfers (up to 11.1MB/s) for drives that support it. It should also
be able to use slower PIO modes (0, 1 and 2) to ensure compatibility
with older drives.
- True direct memory access (DMA) is found mostly on interfaces
integrated into mainboards, Intel 430*X based boards being the most
common example. This will improve system performance in multitasking
operating systems. Ultra-ATA will give you DMA/33, which
actually isn't all that much faster but a lot safer for your data.
- Since ATAPI CD-ROMs have rapidly become very popular in the
low-end market, and ATAPI tapestreamers are similarly taking off, a
secondary port allowing you to connect a total of four ATA*
devices is hardly a luxury. Note that a few modern soundcards provide
a secondary or tertiary ATA/IDE interface instead of the traditional
proprietary CD-ROM connectors. Beware of conflicts in combination
with a dual-ported interface.
If you intend to connect harddisks to the second port and use them
with DOS or Windows 3.x, remember that many older BIOSes have no
support for the secondary channel and many interfaces do not ship with
the required drivers.
- You will want an on-card Enhanced BIOS too if your
mainboard BIOS doesn't support translation or if its support is buggy
or outdated. The interface BIOS will override the mainboard BIOS'
harddisk routines.
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 8 to 16k of UMB space, though, and
you will still want drivers for every other operating system you use.
- Drivers! Without well-designed drivers most interfaces could as
well be old-fashioned ISA cards 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 and Win95. Newer versions of Windows (Win95 OEM2 and
beyond) ship with a large amount of drivers.
Note that some 'EIDE' interfaces which used to be popular were
slightly to very buggy. This ranged from minor problems with ATA-2
compliance to obscure things like the use of a single buffer for both
primary and secondary channel or a badly designed prefetch buffer,
both of which may cause data corruption under very specific
circumstances.
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, which should be good for disk capacities of up to
8GB. A copyright before 1994, on the other hand, reduces your chances to
something close to zero :-(
- For AMI, I only have reliable information on their HiFlex BIOS; it
can be recognized by its characteristically funky orange
and green color scheme. There at least two other types: WinBIOS with a
Windows like interface, and a custom BIOS used with Intel Pentium boards.
Both may translation even if they have a (much) earlier copyright. I have
no further information on those.
AMI HiFlex BIOSes dated 7-25-94 and later and support translation. The
date is embedded in the long number displayed at the bottom of the screen
on bootup; it must be
072594
or later to support LBA.
40-0100-00101111-111192-486-ABC-F
(111192
will not support LBA)
50-0100-001292-00101111-072594-ABCDEF-F
(072594
will support LBA)
- Award seems to call all its BIOSes 4.50G :-) Some have translation
support, some don't, some have buggy support (see
8.2
). With a BIOS dated 12/31/1994 or later you have full
translation support, with one dated earlier (7/29/1994, perhaps earlier
than that as well) buggy support only.
- 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.
- MR BIOS incorporated CHS translation--roughly the same as today's
Large mode--as early as 1990!
Note that only BIOSes fully implementing the IBM/Microsoft/Phoenix
standards will allow access to disks larger than 8GB. Fortunately, these
are becoming more and more common these days. We are not aware of utilities
that will detect the presence of such a BIOS.
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 to go up to 8GB
ftp://ftp.wdc.com/drivers/hdutil/chkbios.exe
. 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.
This should work fine.
Older drives do not support the high-speed advanced transfer modes
defined by ATA-2 and, later, Ultra-ATA. To retain compatibility with
these drives, ATA-2 and Ultra-ATA interfaces have programmable
timing. The driver or BIOS queries the drive regarding its maximum
transfer rate and will configure the interface to match. A few
interfaces are jumper configurable in which case the responsibility is
yours.
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 device. Otherwise, your old
drive might end up slowing down your newer one because the controller
is forced to use the lowest common speed. Modern interfaces like the
Intel PIIX3 (430HX and VX and 440FX chipset), PIIX4 (430TX chipset)
and, to a lesser extent PIIX (430FX chipset) don't suffer from this
problem.
Fast-ATA and EIDE devices can be used without fear on regular ISA or
VLB IDE 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. Of course you should expect the
transfer rates to come out lower than on a full ATA-2 interface.
Likewise, an Ultra-ATA drive will do fine on an ATA-2 (EIDE)
interface. Better even, using DMA mode 2, its performance will be
hardly any slower than it would be on an Ultra-ATA interface.
It is not necessary to use an EIDE interface for harddisks of
over 504MB. An Enhanced BIOS is all you need for DOS and Windows; for
many other operating systems such as OS/2 or Linux you won't need even
that.
Yes, in principle, but there's still the small matter of the 504MB
barrier. If the new drive exceeds this capacity, you must have an Enhanced
BIOS in order to use more than 504MB with DOS, Windows or Win95 (see
Q
4.10
for other operating systems). 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, which means that a 2300
cylinder drive will appear to have just 252 cylinders. The solution is to
specify 1024 cylinders in the BIOS setup.
This becomes a real problem when a BIOS with this error also won't allow you
to enter the drive parameters manually. Among IBM systems, the 1991-vintage
PS/2 models 35sx and 40sx, the ValuePoint I, and at least some of the
ValuePoint Si models have this flaw. With these machines, you should either
try go get a BIOS upgrade from
ftp://ftp.pcco.ibm.com
if you
have a flash BIOS, or verify that the drive you intend to use 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). The Promise
EIDEMax is also reported to work, and will allow you to use drives of up to
8GB in full. Note that some operating systems, such as Linux and OS/2, allow
you to override the BIOS' drive geometry information, which may also help
addressing this problem. Another option is using OnTrack Disk Manager
version 7.
Using a large harddisk is usually no big problem, even if you don't have an
Enhanced BIOS. However, some OSs don't understand translation, which makes
the combination with DOS, Windows and Win95 problematic.
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 more than 1024
cylinders in the drive type setup. There is one caveat though: the BIOS is
still used to boot the operating system, so you will have to ensure that
everything necessary to get the OS running in the first place resides
below cylinder 1024. Remember that if you have an Enhanced BIOS, drives up
to 8GB will appear to have no more than 1024 cylinders, so in those cases
these boot restrictions are removed.
Once running, these operating systems use their own software to
control the disks (Win95 also does this, but has a special position;
see below). 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/Win/Win95. 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 don't understand translation at all. Newer
ones (OS/2 3.x, Linux 1.2 or better, Win95, SCO 5.0.x) will handle
standard translation schemes out of the box, but not always those
employed by some software drivers (EZDrive, Disk Manager v6.x or
older). In the case of DM 6, fixes or updates are available for some
operating systems (see above).
Novell has a NetWare driver IDE.DSK
version 3.0 dated September
2, 1994. This version of the driver uses the Identify Device ATA
command to get the drive parameters and ignores the BIOS
parameters. This means that Novell now works with big IDE drives.
A final remark: OS/2 enforces DOS compatibility for FAT
partitions. That means that without an Enhanced BIOS, only HPFS
partitions can extend beyond cylinder 1024.
True, but it doesn't necessarily mean you can actually benefit from that support
in all cases.
Despite a large number of significant changes, in its way of handling harddisks
Win95 largely resembles Windows for Workgroups. Just like OS/2, Linux and other
operating systems, Win95 uses 32-bit protected mode drivers for the harddisks
(unless it's using compatibility mode), and is happy to handle harddrives of
respectable size: well over 100GB. However, unlike OS/2 and Linux, and like
Windows for Workgroups, Win95 boots from the same old DOS we all love to hate.
Even once Win95 has booted, DOS hasn't gone. Win95 always keeps it behind the
scenes and uses it to run devices in compatibility mode. In 'safe mode',
important for troubleshooting, Win95 completely relies on DOS.
What all of this implies is that even though Win95's protected-mode disk driver
may support gargantuan drives, it will never change the setup it inherits from
DOS in order to retain compatibility with the latter. If you can only get at the
first 504MB of your drive in DOS, it will be the same in Win95. You will still
need one of the usual > 504MB solutions mentioned elsewhere in this FAQ. For
details, see also Microsoft KnowledgeBase article Q126855, "Windows 95
Support for Large IDE Hard Disks".
For DOS and Windows you probably want BIOS support for all your
harddisks. Older BIOSes support drives on the primary channel only, just
two; newer ones add support for the secondary channel for a total of
four. Few BIOSes support more than that; MR BIOS is an exception.
If the BIOS supports just two drives and you want more, there's a software
solution available: 3drives
(see
the net.resource guide
). Some interface
cards also ship with the necessary support. Creative Labs has drivers for
CD-ROMs on the tertiary and quaternary port.
Other operating systems such as Win95 and OS/2 support both primary and
secondary interface without aid from the BIOS. Linux will support a nearly
arbitrary number of interfaces; you'll have to pass kernel parameters to
specify the ones beyond the first two.
The current versions of most operating systems support ATAPI CD-ROMs. That
includes OS/2 3.0, Linux 1.2 and above, and Win95.
Unfortunately, hardware manufacturers have started designing these CD-ROM units
while the ATAPI standard was still evolving, so there are now a couple of
versions implemented in the real world. Moreover, the complexity and novelty of
ATAPI means that there are some variations even among implementations of the
same revision. Writing an OS ATAPI driver that works with all CD-ROMs,
therefore, is a daunting task and not all have succeeded equally well. So
although these OSs all support ATAPI, they do not work with all ATAPI equipment.
See Microsoft KnowledgeBase Q131499, "CD-ROM Drives Requiring Real-Mode
Drivers", for more details on Win95 support. For OS/2, take a look at
http://www.austin.ibm.com/pspinfo/os2hw.html
; for updated drivers use the
latest install disk upgrade or
ftp://ftp.pc.ibm.com/pub/os2_drivers/atapi.zip
.
There is a problem with PCI and multi-I/O or dual-ported IDE interfaces. Such
interfaces need two or more predetermined interrupts which cannot be shared with
other PCI devices, which is probably impossible with your PCI slots. The usual
workaround consists of either integration of I/O functions on the mainboard, or
the use of a tiny 'paddle' board that plugs into an ISA slot.
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 interfaces be fully
compatible with oldfashioned I/O cards.
Some vendors use 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. Moreover, such extensions may cause
compatibility problems since they use PCI signals reserved for other purposes.
A new interface may or may not help; it is possible to make a rough
prediction if a better interface would really speed things up.
Hardware vendors and marketing people would love to see everyone rush
out and buy the latest generation of 'Ultra-ATA' 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 is. If the speed at which the drive physically
transfers 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 33MB/s figures) have
little to do with their real-world performance.
In addition, an 'ordinary' ATA-2 (EIDE) interface already offers
respectable bandwidth---the fastest ATA-2 transfer mode is
theoretically 16.6MB/s, which is more than any Ultra-ATA drive on the
market today can sustain. In addition it usually supports the
CPU-cycle-saving DMA modes. An IDE interface, on the other hand, makes
a much better candidate for replacement since it rarely has a
bandwidth over 2.5MB/s, which is cramped by today's standards, and
doesn't support DMA.
How to determine if the drive is the bottleneck? You can get a rough idea using
Coretest version 3
. This version of
Coretest gives two performance figures of interest here: the (B)uffered transfer
rate which is an indication of the bandwidth between drive and interface, and
the (S)ustained rate which is related to the speed of the drive media. If your
drive has a small buffer cache, you may have to use the /B16
option to
get the correct buffered transfer rate.
Usually you'll find that the first figure exceeds the second by a considerable
margin (say, a factor two or more). This means that the physical properties of
the drive itself are the bottleneck, and improving the interface speed any
further won't help much. 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 faster modes than the one currently used.
This is not an endorsement of Coretest as a disk benchmark; there are more
reliable ones around, such as
QBench
.
Be sure to read question
7.2
to get a more
complete picture.
Next Chapter, Previous Chapter
Table of contents of this chapter,
General table of contents
Top of the document,
Beginning of this Chapter