Bob said:
Yes, you could adjust the adjust interleave on pre-IDE drives, the idea
was to set the rate the data came off the platter to match what the
computer could shuffle off to memory. For instance if you had a 1:1
interleave then adjacent sectors were read, and you would fill the
buffer and then the drive would get ahead of the CPU and then you would
have the case where you had to wait for the rotating platter to come all
the way around to the next sector to start reading again, and then the
CPU would be waiting. SO, the slowest CPU may be 1:3 interleave for the
fastest data transfer for a particular drive, a faster one would be 1:2
and a high end CPU may be able to handle 1:1. So anyway if you had built
a bunch of identical PC's and then you could test one and set the
interleave for the rest of them, as long the drive and CPU stayed the
same you were good. On the other hand, if you started messing with the
memory refresh cycle timing in the CPU, you could have the CPU cranked
up, but then you might want to adjust the interleave to a 1:2 or 1:1 to
get the data in and out faster.
When we were designing computers at work, we actually had one generation
of hardware that was slow enough, that changing the interleave paid off.
We had some kind of disk, that this was the kind of interleave that
worked best.
1--4--7--2--5--8--3--6--9
^ ^ ^
Our controller was slow enough, that it could not handle back to back
sectors, and couldn't read the sector header fast enough to make a
decision. With some sector times in between, the hardware could be
"armed" and waiting when the next one showed up.
If the interleave was set to 1:1 via the format command, our controller
couldn't see sector 2 until it was ready and waiting one rotation later,
which was a lot slower. If you "blow the interleave", it becomes
blindingly obvious when running a benchmark. So using our slow
hardware, and formatting with a 1:1 interleave pattern, resulted in
significantly slower transfer rates.
1--2--3--4--5--6--7--8--9--1--2
^ ^
Once we got past that generation of hardware, interleave was never
an issue again. The generation of hard disk controller I worked
on, was 1:1, and was ready for the next sector right after the
write splice between sectors passed by. (The write splice,
is the fuzzy bit between sectors, where the clock phasing
is screwed up.) And they're all fast enough now, you
never have to worry about this stuff any more.
1--2--3--4--5--6--7--8--9--1--2
^ ^ ^
Our system used so-called "intelligent" controllers (disk board
has its own processors), and only the floppy interface was super-crude.
Our floppy design was so bad, you couldn't use the computer for anything
else, if reading or writing the floppy. In fact, it was recommended to
just take your hand off the mouse, while working with a floppy
Start a copy, and walk away. The floppy driver was written in assembler,
with wait loops counting processor cycles - no multitasking allowed.
Fun times...
To get around that, the next generation of floppy, was a SCSI or
SASI design (I never really cared to inquire about the details), with
its own controller board strapped to the floppy drive. A wee bit more
expensive to buy. And then, you could multitask while working with
the floppy. No more assembler code.
My job was an excellent education, even if the stuff we
worked on never amounted to much.
I wouldn't even have known what an interleave factor was, if
it wasn't for that early stuff.
Paul