Next
Previous
Contents

3. Drive Technologies

A far more complete discussion on drive technologies for IBM PCs
can be found at the home page of
The Enhanced IDE/Fast-ATA FAQ
which is also regularly posted on Usenet News.
There is also a site dedicated to
ATA and ATAPI Information and Software.

Here I will just present what is needed to get an understanding
of the technology and get you started on your setup.

3.1 Drives

This is the physical device where your data lives and although the
operating system makes the various types seem rather similar they
can in actual fact be very different. An understanding of how it
works can be very useful in your design work. Floppy drives fall
outside the scope of this document, though should there be a big
demand I could perhaps be persuaded to add a little here.

3.2 Geometry

Physically disk drives consists of one or more platters containing
data that is read in and out using sensors mounted on movable heads
that are fixed with respects to themselves. Data transfers therefore
happens across all surfaces simultaneously which defines a cylinder
of tracks. The drive is also divided into sectors containing a
number of data fields.

Drives are therefore often specified in terms of its geometry: the
number of Cylinders, Heads and Sectors (CHS).

For various reasons there is now a number of translations between

the physical CHS of the drive itself

the logical CHS the drive reports to the BIOS or OS

the logical CHS used by the OS

Basically it is a mess and a source of much confusion. For more
information you are strongly recommended to read the
Large Disk mini-HOWTO

3.3 Media

The media technology determines important parameters such as
read/write rates, seek times, storage size as well as if it is
read/write or read only.

Magnetic Drives

This is the typical read-write mass storage medium, and as
everything else in the computer world, comes in many flavours
with different properties. Usually this is the fastest technology
and offers read/write capability. The platter rotates with a
constant angular velocity (CAV) with a variable physical sector
density for more efficient magnetic media area utilisation.
In other words, the number of bits per unit length is kept
roughly constant by increasing the number of logical sectors
for the outer tracks.

Typical values for rotational speeds are 4500 and 5400 RPM, though
7200 is also used. Very recently also 10000 RPM has entered
the mass market.
Seek times are around 10 ms, transfer rates quite variable from
one type to another but typically 4-40 MB/s.
With the extreme high performance drives you should remember that
performance costs more electric power which is dissipated as heat,
see the point on
Power and Heating.

Note that there are several kinds of transfers going on here, and
that these are quoted in different units. First of all there is
the platter-to-drive cache transfer, usually quoted in
Mbits/s. Typical values here is about 50-250 Mbits/s. The second
stage is from the built in drive cache to the adapter, and this
is typically quoted in MB/s, and typical quoted values here is
3-40 MB/s. Note, however, that this assumed data is already in
the cache and hence for maximum readout speed from the drive the
effective transfer rate will decrease dramatically.

Optical Drives

Optical read/write drives exist but are slow and not so common. They
were used in the NeXT machine but the low speed was a source for much
of the complaints. The low speed is mainly due to the thermal nature
of the phase change that represents the data storage. Even when using
relatively powerful lasers to induce the phase changes the effects are
still slower than the magnetic effect used in magnetic drives.

Today many people use CD-ROM drives which, as the
name suggests, is read-only. Storage is about 650 MB, transfer speeds
are variable, depending on the drive but can exceed 1.5 MB/s. Data is
stored on a spiraling single track so it is not useful to talk about
geometry for this. Data density is constant so the drive uses constant
linear velocity (CLV). Seek is also slower, about 100 ms, partially due
to the spiraling track. Recent, high speed drives, use a mix of
CLV and CAV in order to maximize performance. This also reduces access
time caused by the need to reach correct rotational speed for readout.

A new type (DVD) is on the horizon, offering up to about 18 GB on a
single disk.

Solid State Drives

This is a relatively recent addition to the available technology and
has been made popular especially in portable computers as well as in
embedded systems. Containing no movable parts they are very fast
both in terms of access and transfer rates. The most popular type is
flash RAM, but also other types of RAM is used. A few years ago many
had great hopes for magnetic bubble memories but it turned out to be
relatively expensive and is not that common.

In general the use of RAM disks are regarded as a bad idea as it is
normally more sensible to add more RAM to the motherboard and let the
operating system divide the memory pool into buffers, cache, program
and data areas. Only in very special cases, such as real time systems
with short time margins, can RAM disks be a sensible solution.

Flash RAM is today available in several 10's of megabytes
in storage and one might be tempted to use it for fast, temporary
storage in a computer. There is however a huge snag with this: flash
RAM has a finite life time in terms of the number of times you can
rewrite data, so putting
swap, /tmp or /var/tmp on such
a device will certainly shorten its lifetime dramatically.
Instead, using flash RAM for directories that are read often but
rarely written to, will be a big performance win.

In order to get the optimum life time out of flash RAM you will
need to use special drivers that will use the RAM evenly and
minimize the number of block erases.

This example illustrates the advantages of splitting up your directory
structure over several devices.

Solid state drives have no real cylinder/head/sector addressing but for
compatibility reasons this is simulated by the driver to give a uniform
interface to the operating system.

3.4 Interfaces

There is a plethora of interfaces to chose from widely ranging in
price and performance. Most motherboards today include IDE interface
which are part of modern chipsets.

Many motherboards also include a SCSI interface chip made by Symbios
(formerly NCR) and that is connected directly to the PCI bus. Check
what you have and what BIOS support you have with it.

MFM and RLL

Once upon a time this was the established technology, a time when
20 MB was awesome, which compared to todays sizes makes you think
that dinosaurs roamed the Earth with these drives. Like the dinosaurs
these are outdated and are slow and unreliable compared to what we
have today. Linux does support this but you are well advised to
think twice about what you would put on this. One might argue that
an emergency partition with a suitable vintage of DOS might be
fitting.

ESDI

Actually, ESDI was an adaptation of the very widely used SMD interface used on
"big" computers to the cable set used with the ST506 interface, which was more
convenient to package than the 60-pin + 26-pin connector pair used with SMD.
The ST506 was a "dumb" interface which relied entirely on the controller and
host computer to do everything from computing head/cylinder/sector locations
and keeping track of the head location, etc. ST506 required the controller to
extract clock from the recovered data, and control the physical location of
detailed track features on the medium, bit by bit. It had about a 10-year life
if you include the use of MFM, RLL, and ERLL/ARLL modulation schemes. ESDI,
on the other hand, had intelligence, often using three or four separate
microprocessors on a single drive, and high-level commands to format a track,
transfer data, perform seeks, and so on. Clock recovery from the data stream
was accomplished at the drive, which drove the clock line and presented its
data in NRZ, though error correction was still the task of the controller.
ESDI allowed the use of variable bit density recording, or, for that matter,
any other modulation technique, since it was locally generated and resolved at
the drive. Though many of the techniques used in ESDI were later incorporated
in IDE, it was the increased popularity of SCSI which led to the demise of ESDI
in computers. ESDI had a life of about 10 years, though mostly in servers and
otherwise "big" systems rather than PC's.

IDE and ATA

Progress made the drive electronics migrate from the ISA slot
card over to the drive itself and Integrated Drive Electronics
was borne. It was simple, cheap and reasonably fast so the BIOS
designers provided the kind of snag that the computer industry is
so full of. A combination of an IDE limitation of 16 heads
together with the BIOS limitation of 1024 cylinders gave us the
infamous 504 MB limit. Following the computer industry traditions
again, the snag was patched with a kludge and we got all sorts of
translation schemes and BIOS bodges. This means that you need to
read the installation documentation very carefully and check up
on what BIOS you have and what date it has as the BIOS has to
tell Linux what size drive you have. Fortunately with Linux you
can also tell the kernel directly what size drive you have with
the drive parameters, check the documentation for LILO and Loadlin,
thoroughly. Note also that IDE is equivalent to ATA, AT Attachment.
IDE uses CPU-intensive Programmed Input/Output (PIO) to transfer
data to and from the drives and has no capability for the more
efficient Direct Memory Access (DMA) technology. Highest transfer
rate is 8.3 MB/s.

EIDE, Fast-ATA and ATA-2

These 3 terms are roughly equivalent, fast-ATA is ATA-2 but EIDE
additionally includes ATAPI. ATA-2 is what most use these days
which is faster and with DMA. Highest transfer rate is increased
to 16.6 MB/s.

Ultra-ATA

A new, faster DMA mode that is approximately twice the speed of EIDE PIO-Mode 4
(33 MB/s). Disks with and without Ultra-ATA can be mixed on the same cable
without speed penalty for the faster adapters. The Ultra-ATA interface is
electrically identical with the normal Fast-ATA interface, including the
maximum cable length.

The ATA/66 was superceeded by ATA/100 and very recently we have
now gotten ATA/133. While the interface speed has iproved dramatically
the disks are often limited by platter-to-cache limites which today
stands at about 40 MB/s.

For more information read up on these overviews and whitepapers from Maxtor:
Fast Drives Technology on the ATA/133 interface
and
Big Drives Technology on breaking the 137 GB limit.

Serial-ATA

A new, standard has been agreed upon, the Serial-ATA
interface, backed by the
The Serial ATA
group who made the announcement in August 2001.

Advantages are numerous: simple, thin connectors rather than old
cumbersome cable mats that also obstructued air flow, higher speeds
(about 150 MB/s) and backward compatibility.

ATAPI

The ATA Packet Interface was designed to support CD-ROM drives
using the IDE port and like IDE it is cheap and simple.

SCSI

The Small Computer System Interface is a multi purpose interface
that can be used to connect to everything from drives, disk arrays,
printers, scanners and more. The name is a bit of a misnomer as it
has traditionally been used by the higher end of the market as well
as in work stations since it is well suited for multi tasking
environments.

The standard interface is 8 bits wide and can address 8 devices.
There is a wide version with 16 bit that is twice as fast on the
same clock and can address 16 devices. The host adapter always
counts as a device and is usually number 7.
It is also possible to have 32 bit wide busses but this usually
requires a double set of cables to carry all the lines.

The old standard was 5 MB/s and the newer fast-SCSI increased this
to 10 MB/s. Recently ultra-SCSI, also known as Fast-20, arrived
with 20 MB/s transfer rates for an 8 bit wide bus.
New low voltage differential (LVD) signalling allows
these high speeds as well as much longer cabling than before.

Even more recently an even faster standard has been introduced:
SCSI 160 (originally named SCSI 160/m) which is capable of a monstrous 160 MB/s
over a 16 bit wide bus. Support is scarce yet but for a few
10000 RPM drives that can transfer 40 MB/s sustained.
Putting 6 such drives on a RAID will keep such a bus saturated
and also saturate most PCI busses. Obviously this is only for
the very highest end servers per today. More information on
this standard is available at
The Ultra 160 SCSI home page
Adaptec just announced a Linux driver for their SCSI 160 host adapter.
More information will come when more information becomes available.

Now also SCSI/320 is available.

The higher performance comes at a cost that is usually higher than for
(E)IDE. The importance of correct termination and good quality cables
cannot be overemphasized. SCSI drives also often tend to be of a higher
quality than IDE drives. Also adding SCSI devices tend to be easier
than adding more IDE drives: Often it is only a matter of plugging
or unplugging the device; some people do this without powering down
the system. This feature is most convenient when you have multiple
systems and you can just take the devices from one system to the
other should one of them fail for some reason.

There is a number of useful documents you should read if you use
SCSI, the SCSI HOWTO as well as the SCSI FAQ posted on Usenet News.

SCSI also has the advantage you can connect it easily to tape drives
for backing up your data, as well as some printers and scanners. It
is even possible to use it as a very fast network between computers
while simultaneously share SCSI devices on the same bus. Work is under
way but due to problems with ensuring cache coherency between the
different computers connected, this is a non trivial task.

SCSI numbers are also used for arbitration. If several drives request
service, the drive with the lowest number is given priority.

Note that newer SCSI cards will simultaneously support an array
of different types of SCSI devices all at individually optimized
speeds.

3.5 Cabling

I do not intend to make too many comments on hardware but I feel I
should make a little note on cabling. This might seem like a
remarkably low technological piece of equipment, yet sadly it is the
source of many frustrating problems. At todays high speeds one should
think of the cable more of a an RF device with its inherent demands on
impedance matching. If you do not take your precautions you will get a
much reduced reliability or total failure. Some SCSI host adapters are
more sensitive to this than others.

Shielded cables are of course better than unshielded but the price is
much higher. With a little care you can get good performance from a
cheap unshielded cable.

For Fast-ATA and Ultra-ATA, the maximum cable length is specified
as 45cm (18"). The data lines of both IDE channels are connected on many
boards, though, so they count as one cable. In any case EIDE cables
should be as short as possible. If there are mysterious crashes or
spontaneous changes of data, it is well worth investigating your cabling.
Try a lower PIO mode or disconnect the second channel and see if the problem
still occurs.

For Cable Select (ATA drives) you set the drive jumpers
to cable select and use the cable to determine master and slave. This
is not much used.

Do not have a slave on an ATA controller (primary or secondary)
without a master on the same controller, behaviour in these cases is
undetermined.

Use as short cable as possible, but do not forget the
30 cm minimum separation for ultra SCSI
and 60 cm separation for differential SCSI.

Avoid long stubs between the cable and the drive, connect
the plug on the cable directly to the drive without an extension.

SCSI Cabling limitations:

Bus Speed (MHz) | Max Length (m)
--------------------------------------------------
5 | 6
10 (fast) | 3
20 (fast-20 / ultra) | 3 (max 4 devices), 1.5 (max 8 devices)
xx (differential) | 25 (max 16 devices
--------------------------------------------------

Use correct termination for SCSI devices and at the correct
positions: both ends of the SCSI chain. Remember the host adapter
itself may have on board termination.

Do not mix shielded or unshielded cabling, do not wrap
cables around metal, try to avoid proximity to metal parts along
parts of the cabling. Any such discontinuities can cause impedance
mismatching which in turn can cause reflection of signals which
increases noise on the cable.
This problems gets even more severe in the case of multi channel
controllers.
Recently someone suggested wrapping bubble plastic around the cables
in order to avoid too close proximity to metal, a real problem inside
crowded cabinets.

More information on SCSI cabling and termination can be found at
various
web pages around the net.

3.6 Host Adapters

This is the other end of the interface from the drive, the part
that is connected to a computer bus. The speed of the computer
bus and that of the drives should be roughly similar, otherwise
you have a bottleneck in your system. Connecting a RAID 0
disk-farm to a ISA card is pointless. These days most computers
come with 32 bit PCI bus capable of 132 MB/s transfers which
should not represent a bottleneck for most people in the near
future.

As the drive electronic migrated to the drives the remaining part
that became the (E)IDE interface is so small it can easily fit into
the PCI chip set. The SCSI host adapter is more complex and often
includes a small CPU of its own and is therefore more expensive and
not integrated into the PCI chip sets available today. Technological
evolution might change this.

Some host adapters come with separate caching and intelligence but as
this is basically second guessing the operating system the gains are
heavily dependent on which operating system is used. Some of the more
primitive ones, that shall remain nameless, experience great gains.
Linux, on the other hand, have so much smarts of its own that the
gains are much smaller.

Mike Neuffer, who did the drivers for the DPT controllers, states that
the DPT controllers are intelligent enough that given enough cache
memory it will give you a big push in performance and suggests that
people who have experienced little gains with smart controllers just
have not used a sufficiently intelligent caching controller.

3.7 Multi Channel Systems

In order to increase throughput it is necessary to identify the most
significant bottlenecks and then eliminate them. In some systems, in
particular where there are a great number of drives connected, it is
advantageous to use several controllers working in parallel, both for
SCSI host adapters as well as IDE controllers which usually have 2
channels built in. Linux supports this.

Some RAID controllers feature 2 or 3 channels and it pays to spread
the disk load across all channels. In other words, if you have two
SCSI drives you want to RAID and a two channel controller, you should
put each drive on separate channels.

3.8 Multi Board Systems

In addition to having both a SCSI and an IDE in the same machine
it is also possible to have more than one SCSI controller. Check
the SCSI-HOWTO on what controllers you can combine. Also you will
most likely have to tell the kernel it should probe for more than
just a single SCSI or a single IDE controller. This is done using
kernel parameters when booting, for instance using LILO.
Check the HOWTOs for SCSI and LILO for how to do this.

Multi board systems can offer significant speed gains if you
configure your disks right, especially for RAID0. Make sure you
interleave the controllers as well as the drives, so that you
add drives to the md RAID device in the right order.
If controller 1 is connected to drives sda and sdc
while controller 2 is connected to drives sdb and sdd
you will gain more paralellicity by adding in the order of
sda - sdc - sdb - sdd rather than sda - sdb - sdc - sdd
because a read or write over more than one cluster will be more
likely to span two controllers.

The same methods can also be applied to IDE. Most motherboards
come with typically 4 IDE ports:

hda primary master

hdb primary slave

hdc secondary master

hdd secondary slave

where the two primaries share one flat cable and the secondaries
share another cable. Modern chipsets keep these independent.
Therefore it is best to RAID in the order hda - hdc - hdb - hdd
as this will most likely parallelise both channels.

3.9 Speed Comparison

The following tables are given just to indicate what speeds are
possible but remember that these are the theoretical maximum
speeds. All transfer rates are in MB per second
and bus widths are measured in bits.

Controllers

IDE : 8.3 - 16.7
Ultra-ATA : 33 - 66

SCSI :
Bus width (bits)

Bus Speed (MHz) | 8 16 32
--------------------------------------------------
5 | 5 10 20
10 (fast) | 10 20 40
20 (fast-20 / ultra) | 20 40 80
40 (fast-40 / ultra-2) | 40 80 --
--------------------------------------------------

Bus Types

ISA : 8-12
EISA : 33
VESA : 40 (Sometimes tuned to 50)

PCI
Bus width (bits)

Bus Speed (MHz) | 32 64
--------------------------------------------------
33 | 132 264
66 | 264 528
--------------------------------------------------

3.10 Benchmarking

This is a very, very difficult topic and I will only make a few
cautious comments about this minefield. First of all, it is more
difficult to make comparable benchmarks that have any actual meaning.
This, however, does not stop people from trying...

Instead one can use benchmarking to diagnose your own system, to
check it is going as fast as it should, that is, not slowing down.
Also you would expect a significant increase when switching from
a simple file system to RAID, so a lack of performance gain will
tell you something is wrong.

When you try to benchmark you should not hack up your own, instead
look up iozone and bonnie and read the documentation very
carefully. In particular make sure your buffer size is bigger than
your RAM size, otherwise you test your RAM rather than your disks
which will give you unrealistically high performance.

A very simple benchmark can be obtained using hdparm -tT which
can be used both on IDE and SCSI drives.

For more information on benchmarking and software for a number of
platforms, check out
ACNC
benchmark page
as well as
this one
and also
The Benchmarking-HOWTO.

There are also official home pages for
bonnie,
bonnie++
and
iozone.

Trivia: Bonnie is intended to locate bottlenecks, the name is a tribute
to Bonnie Raitt, "who knows how to use one" as the author puts it.

3.11 Comparisons

SCSI offers more performance than EIDE but at a price. Termination
is more complex but expansion not too difficult. Having more than
4 (or in some cases 2) IDE drives can be complicated, with wide SCSI
you can have up to 15 per adapter. Some SCSI host adapters have
several channels thereby multiplying the number of possible drives
even further.

For SCSI you have to dedicate one IRQ per host adapter which can
control up to 15 drives. With EIDE you need one IRQ for each
channel (which can connect up to 2 disks, master and slave)
which can cause conflict.

RLL and MFM is in general too old, slow and unreliable to be of much
use.

3.12 Future Development

SCSI-3 is under way and will hopefully be released soon. Faster
devices are already being announced, recently an 80 MB/s
and then a 160 MB/s monster specification has been proposed and
also very recently became commercially available.
These are based around the Ultra-2 standard (which used a 40 MHz clock)
combined with a 16 bit cable.

Some manufacturers already announce SCSI-3
devices but this is currently rather premature as the standard is not
yet firm. As the transfer speeds increase the saturation point of the
PCI bus is getting closer. Currently the 64 bit version has a limit of
264 MB/s. The PCI transfer rate will in the future be increased from the
current 33 MHz to 66 MHz, thereby increasing the limit to 528 MB/s.

The ATA development is continuing and is increasing the performance
with the new ATA/100 standard. Since most ATA drives are slower in
sustained transfer from platter than this the performance increase
will for most people be small.

More interesting is the Serial ATA development, where the flat cable
will be replaced with a high speed serial link. This makes cabling
far simpler than today and also it solves the problem of cabling
obstructing airflow over the drives.

Another trend is for larger and larger drives. I hear it is possible
to get 75 GB on a single drive though this is rather expensive.
Currently the optimum storage for your money is about 30 GB but also
this is continuously increasing. The introduction of DVD will in the
near future have a big impact, with nearly 20 GB on a single disk you
can have a complete copy of even major FTP sites from around the
world. The only thing we can be reasonably sure about the future
is that even if it won't get any better, it will definitely be bigger.

Addendum: soon after I first wrote this I read that the maximum useful
speed for a CD-ROM was 20x as mechanical stability would be too great
a problem at these speeds. About one month after that again the first
commercial 24x CD-ROMs were available... Currently you can get 40x and
no doubt higher speeds are in the pipeline.

A project to encapsulate SCSI over TCP/IP, called
iSCSI
has started, and one
Linux iSCSI implementation
has appeared.

3.13 Recommendations

My personal view is that EIDE
or Ultra ATA is the best way to start out on your
system, especially if you intend to use DOS as well on your machine.
If you plan to expand your system over many years or use it as a
server I would strongly recommend you get SCSI drives. Currently
wide SCSI is a little more expensive. You are generally more likely
to get more for your money with standard width SCSI. There is also
differential versions of the SCSI bus which increases maximum length
of the cable. The price increase is even more substantial and cannot
therefore be recommended for normal users.

In addition to disk drives you can also connect some types of
scanners and printers and even networks to a SCSI bus.

Also keep in mind that as you expand your system you will draw ever
more power, so make sure your power supply is rated for the job and
that you have sufficient cooling. Many SCSI drives offer the option
of sequential spin-up which is a good idea for large systems.
See also
Power and Heating.

Next
Previous
Contents