summaryrefslogtreecommitdiff
path: root/etc/etc.i386/INSTALL.ata
diff options
context:
space:
mode:
authorTom Cosgrove <tom@cvs.openbsd.org>2004-02-10 00:55:15 +0000
committerTom Cosgrove <tom@cvs.openbsd.org>2004-02-10 00:55:15 +0000
commit49df626df1011b4dafdb1f2fe9d42f1364576567 (patch)
tree04c6805646f3603de843a326a3c25521135ff361 /etc/etc.i386/INSTALL.ata
parentac682f657c977cbbe217eaa424262a6fad05567b (diff)
These files are out-of-date and not really relevant to the install.
The latest versions are at http://www.ata-atapi.com/hiw.htm. Discussed with nick@ and jmc@. ok deraadt@.
Diffstat (limited to 'etc/etc.i386/INSTALL.ata')
-rw-r--r--etc/etc.i386/INSTALL.ata921
1 files changed, 0 insertions, 921 deletions
diff --git a/etc/etc.i386/INSTALL.ata b/etc/etc.i386/INSTALL.ata
deleted file mode 100644
index d0bbde7ac07..00000000000
--- a/etc/etc.i386/INSTALL.ata
+++ /dev/null
@@ -1,921 +0,0 @@
- ATA/ATA-1/ATA-2/IDE/EIDE/etc FAQ
-
- Part 1 of ? -- The Basics
-
- Version 0b -- 7 Feb 95
-
- by Hale Landis -- landis@sugs.tware.com
-
-Note: Major changes from the previous version are marked by a
- "!" at the left margin on the first line of the changed
- paragraph.
-
-First the "legal" stuff...
-
- 1) This FAQ is not intended to replace any other FAQ on this
- subject but is an attempt to provide historical and technical
- information about the ATA interface.
-
- 2) This FAQ is not an endorsement of any vendor's product(s).
-
- 3) This FAQ is not a recommendation to purchase any vendor's
- product(s).
-
- 4) Every effort is made to insure that all of the information
- presented here is not copyrighted, not proprietary and
- unrestricted.
-
- 4) When opinions are stated they are clearly identified,
- including the person's name and email address. Such opinions
- are offered as long as they contribute to the understanding of
- the subject being discussed. No "flames" allowed.
-
-This is the first version of this FAQ. It will take some time to
-get all the significant information into it so it will be rapidly
-growing and changing during the next several weeks or months. I
-don't even know how many parts there will be yet! Versions will
-be numbered with simple integer numbers (no 1.1, 1.2, etc)
-starting at 0.
-
-If you have a question that is not answered here or if you have
-unrestricted material that you would like to contribute, please
-email it to landis@sugs.tware.com. DO NOT send material that is
-copyrighted, proprietary or otherwise restricted in any way -- I
-can't use such material in this document.
-
-I don't have FTP access to anything at this time so I leave it to
-others to put this at the appropriate FAQ FTP sites.
-
-About myself: Until recently I worked for Seagate where I was
-one of several people that attended the ATA, ATA-2, PCMCIA and
-SFF meetings for Seagate. I was also the manager of a software
-development group that created much of the engineering test
-software for ATA hard disk drives. I am now a consultant and I
-still attend the ATA-2 meetings.
-
-Table of Contents
------------------
-
-Part 1 - The Basics
-
- Glossary
- Basic Questions
-
-Part 2 - BIOS and Drivers
-
- TBD
-
-
-Glossary
---------
-
-Read and understand these terms. You will be lost and confused
-if you don't! Many of these are describe in much greater detail
-in other parts of this FAQ.
-
-ATA or AT Attachment
-
- ATA is the proper and correct name for what most people call
- IDE. In this document, ATA refers to all forms of ATA (ATA-1,
- ATA-2, etc, IDE, EIDE, etc). The ATA interface uses a single
- 40-conductor cable in most desktop systems.
-
-ATA-1
-
- ATA-1 is the common name of the original ATA (IDE)
- specification. ATA-1 is not an official standard yet. Final
- approval is pending.
-
-ATA-2 or ATA Extensions
-
- ATA-2 is the common name of the new ATA specification. ATA-2
- is still in early draft form and has not been submitted for
- approval as an official standard.
-
-ATA-3
-
-! ATA-3 is the common name of a future version of the ATA
- specification. The ATA-3 working group has held several
- meeting but the only things adopted so far are a DMA
- version of the Identify command, a description of
- "device 1 only configurations" and a set of "security"
- commands.
-
-! There is much discussion going on concerning merging ATA-3
- with ATAPI. This will require some kind of "command overlap"
- capability. The details of this are consuming much of the
- meeting time.
-
-ATAPI or ATA Packet Interface
-
- ATAPI is a proposed new interface specification. Initially it
- will probably be used for CD-ROM and tape devices. It uses
- the ATA hardware interface at the physical level but uses a
- subset of the SCSI command set at the logical level. The
- ATAPI specification work is currently being done in the SFF
- committee.
-
-! The ATAPI folks have delayed forwarding their CD-ROM
- specification from SFF to X3T10 so the X3T10 ATAPI working
- group has nothing to work on yet and have held no meetings.
-
-! Block Mode
-
-! Block mode is the name given to the use of the ATA Read
- Multiple and Write Multiple commands. These commands generate
- a single interrupt to the host system for each block of
- sectors transferred. The traditional Read Sectors and Write
- Sectors commands generate an interrupt to the host for each
- sector transferred.
-
-CAM (Common Access Method) Committee
-
- The Common Access Method committee, now disbanded, worked on
- two specifications: the CAM SCSI and CAM ATA specifications.
- Both specifications were forwarded to the X3T9 committee for
- further work years ago.
-
-CHS or Cylinder/Head/Sector
-
- CHS is the old and traditional way to address data sectors on
- a hard disk. This style of addressing relates a sector's
- address to the position of the read/write heads. In today's
- ATA devices, all sector addresses used by the host are logical
- and have nothing to do with the actual physical position of
- the sector on the media or the actual position of the
- read/write heads.
-
-Command Block
-Control Block
-
- These are names given to the I/O register interface used by
- ATA devices. It refers to a set of I/O registers, or I/O
- ports and I/O port addresses used to program the device.
- These names replace the older term Task File.
-
-DMA or Direct Memory Access
-
- DMA is a method of data transfer between two devices that does
- not use the system's main processor as part of the data path.
- DMA requires lots of hardware: a DMA arbitration unit, a DMA
- data transfer unit and host bus signals that enable the DMA
- controller to assume control of the host system's bus. When
- the DMA controller has control of the host system's bus, it
- moves data between the two devices by generating the
- appropriate bus read/write cycles. For the ATA READ DMA
- command this means generating an I/O read cycle and then a
- memory write cycle for each 16-bit word being transferred.
- For the ATA WRITE DMA command, a memory read cycle is followed
- by an I/O write cycle for each 16-bit word transferred.
-
-EIDE or Enhanced IDE
-
- EIDE is a marketing program started by Western Digital to
- promote certain ATA-2 features including ATAPI. WD has
- encouraged other product vendors to mark their products as
- "EIDE compatible" or "EIDE capable".
-
-ESDI
-
- See MFM.
-
-Fast ATA
-
- Fast ATA is a Seagate marketing program used to promote
- certain ATA-2 features in newer ATA devices. Seagate has
- encouraged other product vendors to mark their products as
- "Fast ATA compatible" or "Fast ATA capable".
-
-Host or Host System
-
- The computer system that the ATA device is attached to.
-
-HBA or Host Bus Adapter or Host Adapter
-
- The hardware that converts host bus signals to/from ATA
- interface signals. An ATA-1 host adapter is generally a very
- simple piece of hardware. An ATA-2 host adapter can be simple
- or complex.
-
-IDE
-
- IDE can mean any number of things: Imbedded Device (or Drive)
- Electronics (yes, you can spell embedded with an "i"),
- Intelligent Device (or Drive) Electronics, etc. The term IDE
- is the trademark of someone (Western Digital does not claim
- IDE as theirs but they do claim EIDE). Many hard disk vendors
- do not use IDE to describe their products to avoid any
- trademark conflicts.
-
-LBA or Logical Block Addressing
-
- LBA is a newer (for ATA it is newer) way to address data
- sectors on a hard disc. This style of addressing uses a
- 28-bit binary number to address a sector. LBA numbers start
- at zero. In today's ATA devices, all sector addresses used by
- the host are logical and have nothing to do with the actual
- physical location of the sector on the media.
-
-Local Bus
-
- Usually this refers to the processor's local bus in a high
- performance computer system. Usually the processor, the
- external processor instruction/data cache, the main memory
- controller and the bridge controller for the next low speed
- system bus, for example, a PCI bus, are located on the local
- bus. Lower speed local buses may have connectors that allow
- the attachment of other devices. For example, the VL-Bus is a
- local bus that can allow attachment of video, SCSI or ATA
- controllers. It is very difficult to attach other devices to
- high speed (say faster than 100MHz) local buses due to
- electrical restrictions that come into play at those higher
- speeds.
-
-Master
-
- ATA device 0. Device 0, the master, is the "master" of
- nothing. See Slave.
-
-Megabyte or MB
-
- Megabyte or MB is 1,000,000 bytes or 10^6 bytes. IT IS NOT
- 1,048,576 bytes or 2^20 bytes, repeat NOT!
-
-MFM
-
- In this document MFM refers to any of the older hard disk
- controller interfaces, MFM, RLL and ESDI. It is used to
- describe any hard disk controller that uses the Task File
- interface on the host side and the ST506/ST412 interface
- on the drive side.
-
-OS
-
- Operating System.
-
-PC Card ATA
-PCMCIA
-
- We can thank the Personal Computer Memory Card International
- Association for the PC Card specification. The PCMCIA is a
- nonprofit industry association. The PC Card ATA
- specification is another form of the ATA interface used by
- PCMCIA compatible ATA devices. This interface uses the PCMCIA
- 68-pin connector. Most 68-pin ATA devices are dual mode --
- they can operate as either a PCMCIA PC Card ATA device or as a
- 68-pin ATA device.
-
-PCI
-
- We can thank Intel and the other members of the PCI committee
- for the PCI bus specification. PCI is intended to be the next
- high performance computer bus. PCI is not generally described
- as a processor local bus.
-
-PIO or Programmed Input/Output
-
- PIO is a method of data transfer between two devices that uses
- the system's main processor as part of the data path. On
- x86 systems, the REP INS and REP OUT instructions
- implement this data transfer method. INS reads and I/O port
- and writes the data into memory. OUTS reads data from memory
- and writes the data to an I/O port. Each time an INS or OUTS
- instruction is executed, the memory address is updated. The
- REP prefix causes the instructions to be repeated until a
- counter reaches zero.
-
-RLL
-
- See MFM.
-
-Slave
-
- ATA device 1. Device 1, the slave, is a "slave" to nothing.
- See Master.
-
-Task File
-
- This is the name given to the I/O register interface used by
- MFM controllers. It refers to a set of I/O registers, or I/O
- ports and I/O port addresses used to program the controller.
- In ATA, this name has been replaced by the terms Command Block
- and Control Block.
-
-SCSI
-
- See the SCSI FAQ.
-
-SFF or Small Form Factor
-
- The SFF committee is an ad hoc committee formed by most of the
- major storage device and system vendors to set standards for
- the physical layout of hard disk and other devices. SFF has
- published many specifications that describe the physical
- mounting and connector specifications for hard disk devices,
- including ATA devices. During a brief period of time when the
- X3T9 committee was not doing much work on the ATA-1 interface,
- the SFF committee published several specifications that were
- not really part of the original SFF charter. Most, if not
- all, of these nonphysical specifications have now been
- incorporated into the latest X3T9 or X3T10 ATA specifications.
- ATAPI is currently an SFF specification.
-
-ST506 and ST412
-
- This is the common name for the hard disk controller to hard
- disk drive interface used by MFM, RLL and ESDI controllers and
- disk drives. ST stands for Seagate Technology. The ST506 and
- ST412 were the Seagate products that set the de facto
- standards for this interface many years ago. This interface
- is composed of two cables: a 34-conductor and a 20-conductor
- cable.
-
-VESA and VL-Bus
-
- We can thank the Video Electronics Standards Association for
- the VESA Local Bus or VL-Bus specification. The VL-Bus is one
- example of a local bus. VESA is a nonprofit industry
- association like the PCMCIA.
-
-WG or Working Group
-
- The actual work on various specifications and standards
- documents within the X3T9, X3T10 and SFF committees happens in
- working group meetings. Most WG meetings are held monthly.
-
-X3T9 and X3T10
-
- These are the names of the official standards committees that
- have worked on the ATA-1 and ATA-2 specifications. X3T9 was
- responsible for the SCSI and ATA-1 specifications and
- standards. X3T10 has replaced X3T9 and is now responsible for
- the current SCSI and ATA specifications and standards work.
-
-528MB
-
- This term is used in this document to describe the capacity
- boundary that exists in most x86 system software. This
- boundary limits the size of an ATA disk drive to 528MB. For
- cylinder/head/sector style addressing of disk data sectors,
- this number is computed as follows:
-
- a) the number of cylinders are limited to 1024, numbered
- 0-1023.
-
- b) the number of heads (per cylinder) are limited to 16,
- numbered 0-15,
-
- c) the number of sectors (per track) are limited to 63,
- numbered 1-63.
-
- d) a sector is 512 bytes,
-
- e) 528MB means the following values:
-
- ( 1024 * 16 * 63 ) or 1,032,192 data sectors
-
- or
-
- ( 1024 * 16 * 63 * 512 ) or 528,482,304 bytes.
-
-68-pin ATA
-
- This refers to a variation of the ATA interface that uses the
- PCMCIA 68-pin physical interface but does not use the PCMCIA
- electrical or logical interface. Most 68-pin ATA devices are
- dual mode -- they can operate as either a PCMCIA PC Card ATA
- device or as a 68-pin ATA device. This interface was
- developed within the SFF committee and is now included in
- ATA-2.
-
-Basic Questions
----------------
-
-### Where did ATA come from?
-
- What we now call the ATA-1 interface was developed for Compaq
- many years ago by Imprimus (then part of CDC, now part of
- Seagate) and Western Digital. The first ATA-1 hard disk
- drives were made by Imprimus but it was Conner that made the
- interface so popular.
-
-### How is ATA different from MFM?
-
- From the host software standpoint, ATA is very much like the
- Task File interface used by MFM controllers. A properly
- written host software driver should not notice any difference
- between the MFM Task File interface and the ATA Command Block
- interface while doing basic commands such as Read/Write
- Sectors.
-
- At the hardware level, ATA uses a single cable between a host
- bus adapter and the ATA device, where the MFM controller
- interface uses two cables between the controller and the
- drive.
-
- In the MFM environment, the controller is one piece of
- hardware and the drive another piece of hardware. Most likely
- these two pieces of hardware are from different vendors. The
- MFM controller is dependent on the design of both the host bus
- and on the drive.
-
- In the ATA environment, the host adapter is the one piece of
- hardware that is dependent on the host system bus design. The
- ATA interface is (mostly) system independent. All of the
- hard disk controller and drive logic is contained in the ATA
- device hardware. This gives the hard disk designer complete
- control over both the controller and drive functions.
-
-### Why is ATA so popular?
-
- Two basic things make ATA so popular today: cost and hard
- disk drive technology. An ATA-1 host adapter is cheap,
- usually much less than $25US and it uses only one cable. On
- the technology side, current hard disk features, such as,
- defect handling, error recovery, zone recording, cache
- management and power management require that the controller be
- fully integrated with the read/write channel, the servo system
- and spindle hardware of the disk drive.
-
-### What are the basics of the ATA interface?
-
- The ATA interface is a very simple interface based on an ISA
- bus I/O device architecture. The interface consists of two
- sets of I/O registers, mostly 8-bit, for passing command and
- status information. The registers are like a set of mail
- boxes with a door on front and back connected such that both
- doors can not be open at the same time. The front door is
- open when the Busy bit in the Status register is zero and the
- host can read and write the registers. The back door is open
- when the Busy bit in the Status register is one and the ATA
- device can read or write the registers.
-
- The physical interface contains just enough signals for a 16
- bit data bus, five register address bits, and a few control
- signals like read register, write register and reset.
-
- ATA devices look like traditional hard disk
- drives even though some are not really a hard disc with
- rotating platters. User data is recorded in 512 byte sectors.
- Each sector has a sector address. There are two ways to
- express sector addresses: by cylinder/head/sector (CHS) or by
- logical block address (LBA). CHS is standard, LBA is optional.
-
-### What is EIDE or Fast ATA?
-
- Both are marketing programs used to promote various ATA-2
- features, mostly the faster data transfer rates defined by
- ATA-2.
-
- ---
-
- WD defines EIDE as:
-
- * Support for drives larger than 528MB.
-
- * Support for two connectors to allow up to four drives.
-
- * Support for CD-ROM and tape peripherals.
-
- * Support for 11.1/16.6 Mbytes/second, I/O Channel Ready PIO
- data transfers.
-
- * Support for 13.3/16.6 Mbytes/second, DMA data transfers.
-
- ---
-
-???Seagate defines Fast ATA as:
-
- * Support for PIO mode 3 (11.1 MB/sec) and DMA mode 1(13.3
- MB/sec).
-
- * Support for Multi-sector [Read/Write Multiple] transfers.
-
- * Support for >528 MB.
-
- * Support for Identify Drive Extensions & Set Transfer Mode
- Extensions.
-
- * Backward compatibility with ATA-1.
-
- ---
-
- What does all of this mean to us?
-
- Support for the ATA-2 high speed PIO and DMA data transfer
- modes is both a hardware and software issue.
-
- Support for more than one hard disc controller (or ATA host
- adapter) requires the BIOS and/or the operating system to
- support more than one Task File or Command/Control Block
- register set on the host bus.
-
- The 528MB problem is due to the original design of the x86
- BIOS which limits cylinders to 1024 and sectors to 63. The
- ATA interface allows up to 65,535 cylinders, 16 heads and 255
- sectors -- that's about 136GB (137GB if is LBA is used).
- Support for devices over 528MB requires the BIOS and/or
- operating system to support some form of CHS translation.
- Note that LBA alone does not solve this problem (in fact,
- LBA may make things more complex).
-
- Support for CD-ROM and tape will probably be done via the
- ATAPI interface which uses a different command structure than
- ATA. That makes ATAPI another host software issue.
-
-### What does an ATA-1 host adapter do?
-
- An ATA-1 host adapter is a simple piece of logic whose main
- purpose is to reduce the system bus address lines from 12 (or
- more) down to 5. It may also buffer some signals giving some
- degree of electrical isolation between the host bus (usually
- an ISA or EISA bus) and the ATA bus. In ATA-1, the ATA
- interface is controlled directly by the host bus so that all
- timings are controlled by the host bus timing.
-
-### What does an ATA-2 host adapter do?
-
- This answer is complex because it depends on how smart your
- ATA-2 host adapter is. First, an ATA-2 host adapter supports
- the ATA-2 higher speed data transfer rates. That requires
- that the host adapter is attached to something other than an
- ISA or EISA bus. Second, an ATA-2 host adapter may perform
- 32-bit wide transfers on the host bus. This requires FIFO
- logic and data buffers in the host adapter. Third, an ATA-2
- host adapter may use a different data transfer protocol on the
- host side than is used on the ATA device side.
-
-! ### Can I put an ATA-2 device on an ATA-1 host adapter?
-! ### Can I put an ATA-1 device on an ATA-2 host adapter?
-
- The answer to both questions is yes, as long as the electrical
- timing specifications of the device are not violated. In
- general it is impossible for an ATA-1 host adapter to violate
- the specifications of an ATA-2 device. It is possible for an
- ATA-2 host adapter to violate the timing specifications of an
- ATA-1 device but this is not common. However, host adapter
- hardware design errors or software driver bugs can cause such
- a problem. The result will be corrupted data read or written
- to the ATA-1 device.
-
-! ### I have an ATA-2 host adapter with an ATA-2 device. I want to
-! ### add an ATA-1 device to this host adapter. Can I run the ATA-2
-! ### device in its ATA-2 data transfer modes?
-
- Sorry, *NO* you can *NOT* run the new drive in its faster data
- transfer modes. Be very careful, most of the ATA-2 host
- adapter vendors don't have anything in their setup
- documentation or software to prevent this sort of thing.
-
- When you run the new drive at a data transfer speed that is
- faster than the older drive can support, you are violating the
- electrical interface setup and hold times on the older drive.
- There is no telling what the older drive will do about this,
- but you are asking for data corruption and other nasty
- problems on your older drive.
-
-### How many disk controllers and/or ATA host adapters and/or
-### SCSI host adapters can I put in my system?
-
- From a hardware standpoint -- as many as you want as long as
- there are no I/O port address, memory address or interrupt
- request signal conflicts. From a software standpoint it is a
- whole different story.
-
- First the simple x86 system hard disk controller
- configurations...
-
- a) 1 ATA with 1 or 2 drives at I/O port addresses
- 1Fxh/3Fxh using interrupt request 14 (IRQ14).
-
- b) 1 ATA with 1 drive at I/O port addresses 1Fxh/3Fxh
- using interrupt request 14 (IRQ14) plus a SCSI with 1 drive.
-
- c) 1 SCSI with 1 or 2 drives.
-
- Other configurations are possible but are most likely not
- supported in the system or SCSI host adapter BIOS. And if its
- not supported at the BIOS level, it is unlikely to be
- supported by an operating system, especially DOS. The primary
- reason the above configurations are so restrictive is that the
- original IBM x86 BIOS supported only one MFM controller with a
- maximum of 2 drives. This restriction was then coded into
- much x86 software including many early version of DOS. The
- configurations above work because they don't break this old
- rule.
-
- Just remember this -- most systems will always boot from
- the first drive on the first controller. In a) that is
- ATA drive 0, in b) that is ATA drive 0, in c) that is
- SCSI drive 0.
-
- And now the more complex configurations...
-
- Once you go beyond the three configurations above all bets are
- off. Most likely you will need operating system device
- drivers in order to access any drives beyond the first two.
- And now your real problems start especially if you like to run
- more than one operating system!
-
- If you do run more than one OS, then you need equivalent
- drivers for each system if you would like to access all the
- drives. Plus it would be nice if all the drivers configured
- the drives in the same manner and supported all the possible
- partitioning schemes and partition sizes. It would be
- especially nice if a driver would not destroy the data in a
- partition just because it did not understand the file system
- format in that partition.
-
- One of the things EIDE promotes is BIOS support for up to four
- ATA devices -- 2 ATA host adapters each with 1 or 2 drives.
- The first would be at I/O port addresses 1Fxh/3Fxh using
- interrupt request 14 (IRQ14) and the second at I/O port
- addresses 17xh/37xh using interrupt request 15 (IRQ15).
- Acceptance of this configuration has not been spreading like
- wild fire through the BIOS world.
-
- Lets look at a two complex configurations...
-
- a) 1 ATA with 2 drives and 1 SCSI with 1 or more drives.
-
- Nice configuration. The ATA drives would be supported by the
- system BIOS and the SCSI drives may be, could be, should be,
- supported by the SCSI host adapter BIOS but probably not. So
- in order to use the 2 SCSI drives you probably have to disable
- the BIOS on the SCSI card and then load a device driver in
- CONFIG.SYS. And because the SCSI BIOS is disabled, you then
- need a SCSI driver for that other OS you run.
-
- b) 2 ATA with 1 or 2 drives on each.
-
- Also a nice configuration. But because the system BIOS
- probably only supports the first controller address, you'll
- need a DOS device driver loaded in CONFIG.SYS in order to
- access the drives on the second controller. You'll need that
- driver even if there is only one drive on the first
- controller. You also need a similar driver to support the
- second controller in your other OS.
-
- Note: I understand that OS/2 does support both MFM/ATA
- controller addresses and does allow up to four drives -- I
- have not confirmed this for myself.
-
-! ### Are disk drives the only ATA devices?
-
- No. Over the years there have been ATA tape drives, ATA
- CD-ROMS and other strange devices. Most of these are expected
- to be added to an existing ATA host adapter as the second
- device (device 1) with an existing ATA disk drive (device 0).
- In general these require software drivers to operate with your
- OS.
-
- Now, we have ATAPI CD-ROM and tape devices that can be placed
- on an ATA host adapter. And soon we should see system
- motherboard BIOS support for booting from an ATAPI CD-ROM
- device. The general idea is that an ATAPI device can coexist
- with an ATA device on the same cable.
-
-! ### What can be done to improve ATA device performance?
-
- A difficult question. But the first step is usually to reduce
- the number of interrupts that the host sees during a read or
- write command. ATA disk drives have three types of read/write
- commands:
-
- * Read Sectors / Write Sectors -- These commands are the old
- traditional data transfer commands. These commands generate
- one interrupt to the host for each sector transferred. These
- are PIO data in and PIO data out commands which use the host
- processor to transfer the data.
-
- * Read Multiple / Write Multiple -- These commands where
- defined in ATA-1 but were not used very much until recently.
- These commands generate one interrupt to the host for each
- block of sectors transferred. The number of sector per block
- is generally 4, 8 or 16. However, when 1 sector per block is
- used, these commands are the same as the Read/Write Sectors
- commands. These are PIO data in and PIO data out commands
- which use the host processor to transfer the data.
-
- * Read DMA / Write DMA -- These commands where defined in
- ATA-1 but were not used very much until recently. The main
- reason for not using them was that x86 system DMA transfer
- rates are much slower than PIO. However, these command do
- generate a single interrupt at the completion of the command.
-
- Now see the next question...
-
-! ### What else can be done to improve ATA device performance?
-! ### -or-
-! ### What is PIO mode "x" ?
-
- An even more difficult question. The second step is usually
- to increase the rate at which the host transfers data.
-
- (Ahh... I can see the funny look on your face from here. You
- are saying to yourself: "the rate at which the host transfers
- data? doesn't this guy have things backwards?" Read on...)
-
- The rate at which data is transferred to or from an ATA device
- is determined by only one thing: the PIO or DMA cycle time
- the host uses. No, the drive does not have much to do with
- this! The only requirement is that the host not exceed the
- minimum PIO or DMA cycle times that the device supports. For
- example, during a PIO read command when the device signals an
- interrupt to the host this means that the device is waiting
- for the host to read the next sector or block of sectors from
- the drive. The host must execute a REP INSW instruction to do
- transfer the data. The rate at which the host executes this
- instruction determines the PIO cycle time. Technically, for a
- read command, the cycle time is the time from the host
- assertion of the I/O Read signal to the next time the host
- asserts the I/O Read signal.
-
- Be careful when looking at the table below -- the data rate is
- the data transfer rate achieved while transferring the sector
- or block or sectors. It is an "instantaneous" data rate. The
- overall data transfer rate for a command includes many time
- consuming events such as the amount of time the host requires
- to process an interrupt. Note that on many fast ATA drives
- today, the time it takes the host to process an interrupt is
- frequently greater than the time required to transfer the
- sector of block of sectors for that interrupt! It is not
- uncommon for the host overhead to reduce the data rate to 1/2
- or 1/3 of the instantaneous rate shown here.
-
- The ATA PIO modes are defined as follows:
-
- PIO min cycle data comment
- mode time rate
-
- 0 ???ns ?MB the rate at which a system
- running at 4.77MHZ could
- execute the REP INSW.
-
- 1 ???ns ?MB the rate at which a system
- running at 6MHz could
- execute the REP INSW.
-
- 2 240ns 8MB the rate at which a system
- running at 8MHz could
- execute the REP INSW.
-
- 3 180ns 13MB requires an ATA-2
- host adapter.
-
- 4 120ns 16MB requires an ATA-2
- host adapter.
-
- The complete description of the PIO (and DMA modes is much
- more complex and will be cover in more detail later in this
- FAQ.
-
-### Do I need BIOS or OS drivers to support more than 528MB?
-
- Warning: Read the previous question before reading this one.
-
- Maybe, probably, yes. The answer to this *very* complex and
- will be discussed in detail in Part 2. Here is the brief
- answer...
-
- A traditional x86 system BIOS supports only CHS mode
- addressing with cylinders limited to 1024, heads limited to 16
- and sectors limited to 63. This allows addressing of drives
- up to 528MB. These limitations come from the INT 13
- read/write calls that combine a 10-bit cylinder number with a
- 6-bit sector number into a 16-bit register.
-
- Note that this is entirely a software problem: the ATA
- interface supports up to 65,535 cylinders, 16 heads and 255
- sectors.
-
- While the head number usually requires only 4-bits, up to 6 or
- 8 bits are available in the INT 13 interface. This fact has
- allowed the SCSI folks to support big drives by increasing the
- number of heads above 16. The SCSI host adapter BIOS converts
- this "fake" CHS address to a different CHS or an LBA when it
- issues a read/write command to the drive. The following table
- shows some approximate drives sizes and the "fake" CHS
- parameters that you may see from a SCSI BIOS:
-
- cyl head sector size
-
- 1024 16 63 512MB
- 1024 32 63 1GB
- 512 64 63 1GB
- 1024 64 63 2GB
- 1024 256 63 8GB
-
- The last entry represents the largest possible drive that
- a traditional INT 13 BIOS can support.
-
- The system BIOS folks *must* start supporting drives over
- 528MB in their BIOS by implementing some type of CHS
- translation. To date, few systems have such BIOS. And here
- is the bad part: Microsoft says that the BIOS *must*
- support it in order to use it in their OS. The algorithm is
- simple (but warning: this is not the complete algorithm!):
-
- INT 13 input action ATA interface
-
- cyl number "multiply" by n modified cyl number
- head number "divide" by n modified head number
- sector number nothing sector number
-
- The value of n must be selected such that the modified head
- number is less than 16.
-
- LBA addressing at the hard disk drive level or at the BIOS or
- driver level is another solution. This solution will probably
- not be popular for several more years. It requires that the
- BIOS people implement a new INT 13 interface, called the
- Microsoft/IBM Extensions and that the OS people start using
- this new BIOS interface. Few system BIOS support this
- alternative interface today. Without this new interface, LBA
- support at the hard disk drive level is not required.
-
- So most of us have older systems without much possibility of
- getting a BIOS upgrade, so what do we do? Well we must obtain
- one of the many driver products that are on the market that
- live in one of the disk boot sectors and "take over" the
- system BIOS INT 13 with an INT 13 that supports the
- translation. The biggest problem with this is that the
- replacement INT 13 BIOS must live someplace in memory. For
- DOS based systems, it can usually live at the top of the 640K
- of memory and DOS is made to think that that part of memory,
- usually around 8K bytes, does not exist. But the protected
- mode OS's don't like this and usually wipe out the driver when
- they load their kernel. So if you plan to run multiple OS's
- on your system, buyer beware!
-
- Then there is the Windows problem: the standard FastDisk
- driver in Windows does *not* support such translation schemes
- and can not be enabled. So make sure the driver you
- purchase also comes with a Windows FastDisk replacement.
-
- Buyer beware!
-
-### Do I need BIOS or OS drivers to support the ATA-2 data
-### transfer rates?
-
- Warning: Read the previous two questions before reading this
- one.
-
- Maybe, probably, yes. The answer to this *very* complex and
- will be discussed in detail in Part 2. Here is the brief
- answer...
-
- If you have a new ATA drive that supports the advanced PIO or
- DMA data transfer rates (ATA-2 PIO Mode 3 or 4, or, ATA-2 DMA
- Mode 1 or 2) then you also must have a new ATA host adapter
- that attaches to the VL-Bus or PCI bus or some other high
- speed bus (probably a 32-bit bus) in your system. That host
- adapter has I/O registers of its own that are used to control
- its advanced features. Controlling those advanced features
- requires software -- either in the system INT 13 BIOS or in a
- INT 13 BIOS on the host adapter card or in a driver loaded
- via the boot record or later by your OS.
-
- Depending on how that host adapter works you may also
- need a Windows FastDisk replacement in order to use the high
- speed data transfer modes in Windows.
-
- Buyer beware!
-
-### I just purchased a new high speed host adapter for my VL-Bus
-### (or PCI bus) system and a new 540MB hard disk. How do I get
-### full use out of all this new hardware?
-
- Did you read the previous three questions?
-
- You need BIOS or driver software and a Windows FastDisk
- replacement. These *must* support both CHS translation
- (because your drive is over 528MB) and the host adapter
- hardware (to use the high speed data transfer rates).
-
- Some drivers on the market today use LBA addressing on the
- ATA interface to get over 528MB. This may make your disk
- partition(s) unreadable by another OS.
-
- Check the hardware and software specifications of the product
- before you buy it! Ask lots of questions -- you probably get
- lots of incorrect or misleading answers -- be prepared for
- that! If you plan to run something other than DOS and
- Windows, especially if you plan a "dual boot" or "boot
- manager" environment, be real careful.
-
- Buyer beware!
-
- OPINION: I know of only one product that supports all of this
- new hardware, supports over 528MB *and* supports most of the
- current OS's that are shipping including several in shipping
- in beta form. The product is from a small two person company
- that is trying to sell the product on an OEM basis and not in
- the retail market. - Hale Landis <landis@sugs.tware.com>
-
-/end part 1/
---
-\\===============\\=======================\\
- \\ Hale Landis \\ 303-548-0567 \\
- // Niwot, CO USA // landis@sugs.tware.com //
-//===============//=======================//