A common operation when working with a hard disk is reading or writing a number of
sectors of information in sequence. After all, a sector only contains 512 bytes of user
data, and most files are much larger than that. Let's assume that the sectors on each
track are numbered consecutively, and say that we want to read the first 10 sectors of a
given track on the hard disk. Under ideal conditions, the controller would read the first
sector, then immediately read the second, and so on, until all 10 sectors had been read.
Just like reading 10 words in a row in this sentence.
However, the physical sectors on a track are adjacent to each other and not separated
by very much space. Reading sectors consecutively requires a certain amount of speed from
the hard disk controller. The platters never stop spinning, and as soon as the controller
is done reading all of sector #1, it has little time before the start of sector #2 is
under the head. Many older controllers used with early hard disks did not have sufficient
processing capacity to be able to do this. They would not be ready to read the second
sector of the track until after the start of the second physical sector had already spun
past the head, at which point it would be too late.
If the controller is slow in this manner, and no compensation is made in the
controller, the controller must wait for almost an entire revolution of the platters
before the start of sector #2 comes around and it can read it. Then, of course, when it
tried to read sector #3, the same thing would happen, and another complete rotation would
be required. All this waiting around would kill performance: if a disk had 17 sectors per
track, it would take 17 times as long to read those 10 sectors as it should have in the
ideal case!
To address this problem, older controllers employed a function called interleaving,
allowing the setting of a disk parameter called the interleave factor. When
interleaving is used, the sectors on a track are logically re-numbered so that they do not
correspond to the physical sequence on the disk. The goal of this technique is to arrange
the sectors so that their position on the track matches the speed of the controller, to
avoid the need for extra "rotations". Interleave is expressed as a ratio,
"N:1", where "N" represents how far away the second logical sector is
from the first, how far the third is from the second, and so on.
An example is the easiest way to demonstrate this method. The standard for older hard
disks was 17 sectors per track. Using an interleave factor of 1:1, the sectors would be
numbered 1, 2, 3, .. , 17, and the problem described above with the controller not being
ready in time to read sector #2 would often occur for sequential reads. Instead, an
interleave factor of 2:1 could be used. With this arrangement, the sectors on a 17-sector
track would be numbered as follows: 1, 10, 2, 11, 3, 12, 4, 13, 5, 14, 6, 15, 7, 16, 8,
17, 9. Using this interleave factor means that while sector 1 is being processed, sector 10
is passing under the read head, and so when the controller is ready, sector 2 is just
arriving at the head. To read the entire track, two revolutions of the platters are
required. This is twice as long as the ideal case (1:1 interleaving with a controller fast
enough to handle it) but it is almost 90% better than what would result from using 1:1
interleaving with a controller that is too slow (which would mean 17 rotations were
required).
What if the controller was too slow for a 2:1 interleave? It might only be fast enough
to read every third physical sector in sequence. If so, an interleave of 3:1 could be
used, with the sectors numbered as follows: 1, 7, 13, 2, 8, 14, 3, 9, 15, 4, 10, 16, 5,
11, 17, 6, 12. Again here, this would reduce performance compared to 2:1, if the
controller was fast enough for 2:1, but it would greatly improve performance if
the controller couldn't handle 2:1.
So this begs the question then: how do you know what interleave factor to use? Well, on
older hard disks, the interleave factor was one parameter that had to be tinkered with to
maximize performance. Setting it too conservatively caused the drive to not live up to its
maximum potential, but setting it too aggressively could result in severe performance hits
due to extra revolutions being needed. The perfect interleave setting depended on the
speeds of the hard disk, the controller, and the system. Special utilities were written to
allow the analysis of the hard disk and controller, and would help determine the optimal
interleave setting. The interleave setting would be used when the drive was low-level
formatted, to set up the sector locations for each track.
On modern disk drives, the interleave setting is always 1:1. Controller too slow? Ha!
Today's controllers are so fast, much of the time they sit around waiting for the
platters, tapping their virtual fingers. How did this situation come to change so
drastically in 15 years? Well, it's pretty simple. The spindle
speed of a hard disk has increased from 3,600 RPM on the first hard disks, to today's
standards of 5,400 to 10,000 RPM. An increase in speed of 50% to 177%. The faster spindle
speed means that much less time for the controller to be ready before the next physical
sector comes under the head. However, look at what processing power has done in the same
time frame: CPUs have gone from 4.77 MHz speeds to the environs of 1 GHz; an increase of
over 20,000%! The speed of other chips in the PC and its peripherals have similarly gotten
faster by many multiples.
As a result of this increase in speed in modern circuits, controller speed is no longer
an issue for current drives. There is in fact no way to set the interleave for a modern
drive; it is fixed at 1:1 and no other setting would be necessary. Understanding
interleaving is still important because the concept forms the basis for more advanced
techniques such as head and cylinder skew,
which are used on modern drives. And, well, you never know when you might have to
deal with some old 20 MB clunker. ;^)
Warning: Some older systems
still have BIOS functions for doing "media analysis" or setting interleave
factors for hard disks. These are the interleave analysis utilities I mentioned above.
They are intended for older style drives that do not have an integrated controller. They
should not be used with modern IDE or SCSI disks.
Note: The hard disk interleave setting described here is a totally different concept than memory interleaving.
Next: Cylinder and Head Skew