• Please review our updated Terms and Rules here

importance of HDD interleave!

Mike Chambers

Veteran Member
Joined
Sep 2, 2006
Messages
2,641
i don't know whether or not most of you guys pay attention to interleave values when low-level formatting your old MFM/RLL hard drives, but for those that don't, or don't know what it is, i want to stress it's importance as i was reminded myself here tonight.

i got a new 5160 delivered to me today, and the hard drive works fine - a 30 MB seagate RLL half-height. the first thing i did was load spinrite II and run a drive analysis. it was formatted with the default interleave of 3:1, and it was measured to transfer data at a rate of 28 KB/s.

it tested the transfer speeds using all possible interleave values, and it turned out that using an interleave of 4:1, it was able to pull off - get this....

199 KB/s

yes, that's right 199 KB/s raw hard disk transfer rate on a 4.77 MHz XT box. needless to say, i decided to just wipe the drive then. i didn't need the last owner's stuff. did a full LLF using the 4:1 interleave, installed MS-DOS 5.0 and wow! this thing is rocking!

i suggest all of you go run spinrite II on your old boxen with similar drives and pay attention to the interleave test results. you might just be amazed at how much faster you can get your drive going. i did the same thing on another old 20 MB MFM drive (an Everex) and while it wasn't quite as drastic, i was able to kick it up to 90 KB/s from 27 KB/s.

just think of this as a public service announcement.
 
The problem with these numbers is that it doesn't take into account how and by what the data is being used. If you're just searching a directory, the interleave can be about as low as possible (before losing disk revs due to not being about to get the next sector read). On the other hand, an application that issues a request a bit too late to catch the next sector, drops to one rev per sector/cluster transferred.

One of the schemes for squeezing performance out of the system is to format a hard drive in several different interleaves according to need.

Of course, if you have the resources or hard drive to perform caching, all of this is pretty much academic.
 
I have a utility called "PCcheck", which (non-destructively) tests the hard drive interleave all the way from 12:1 down to 1:1, and then tells you which interleave offers the best performance.

Some aftermarket XT controllers can do 3:1, but most are only good for 4:1. I believe the original IBM XT 10-megabyte drive and controller specified 6:1 interleave, but the hardware is said to work fine at 5:1.
 
The problem with these numbers is that it doesn't take into account how and by what the data is being used. If you're just searching a directory, the interleave can be about as low as possible (before losing disk revs due to not being about to get the next sector read). On the other hand, an application that issues a request a bit too late to catch the next sector, drops to one rev per sector/cluster transferred.

One of the schemes for squeezing performance out of the system is to format a hard drive in several different interleaves according to need.

Of course, if you have the resources or hard drive to perform caching, all of this is pretty much academic.

i know, like i said that's just the pure, raw transfer speed. no data processing involved. where i've really noticed a huge difference is in application loading times from entering the command to having the program running. it's incredibly snappy, and a huge improvement over before i re-formatted. i certainly haven't noticed anything else running any slower.

my FTP downloads are twice as fast now as well, which would be expected. i'm getting roughly 65-75 KB/s through mbbrutman's FTP client, when before it was under 30 KB/s. of course, the ethernet card interfacing is going to keep it from going any faster.
 
Since we are dealing with old hardware does this affect long term durability?

Id give up some performance if I can cut down on wear and tear.
 
Since we are dealing with old hardware does this affect long term durability?

Id give up some performance if I can cut down on wear and tear.

no, not at all. everything mechanically works the same. the data is just arranged differently on the disk tracks. the platters and head armature movement speeds aren't changed.
 
Hi
I have to point out what Chuck said again.
Although, I was doing this on a H89 floppy disk, the principle are the same.
It was using BASIC to read an write data records. I found that reading
data had more delay than writing data. This meant the the interleave
for one was different than the other.
The fellow I was fixing this for was concerned with load time so I optimized
for reading data. It still was faster for writing than the default ( 1:1 ) but
it was so much faster loading that the fellow thought it must be missing
something. Of course, it wasn't.
The interleave I left him with was slightly slower for programs like TYPE.
The application can completely change the results, one can be faster and
the next can be slower. It is difficult to predict without running the experiment.
There is no single best interleaving.
Dwight
 
I have a utility called "PCcheck", which (non-destructively) tests the hard drive interleave all the way from 12:1 down to 1:1, and then tells you which interleave offers the best performance.

Some aftermarket XT controllers can do 3:1, but most are only good for 4:1. I believe the original IBM XT 10-megabyte drive and controller specified 6:1 interleave, but the hardware is said to work fine at 5:1.


And where can other people find this util?
(I've got a tandy 1000sx that is dog slow).

Thanks,
later,
dabone
 
You can purchase the full version from Eurosoft, but here is a free demo version. Not all features are available, but the interleave verification does work:

http://mysite.verizon.net/tekel/pccheck.zip

i've been using a newer version of pccheck for years to diag hardware problems in clients' computers when i suspect them. i have a nice script that does all kinds of good automated stuff. it's an excellent program.
 
RLL drives always saw more of a boost -- often and incredible boost if you got the interleave correct. I remember back in the day using the original release of spinrite, and having two near identical XT clones give radically different boosts just because one had a single 40 meg ST251, which maxed out around 96k/sec, and the other had a pair of 30 gig ST238's which maxed out at over 200k/sec...

Though a lot of the speed also came from the right mix of drive and controller... ESPECIALLY the controller. The WDXT-GEN2 on a ST238 for example could run all the way up to the theoretical max RLL interface throughput of 232K/sec -- the stock ST-11R that was sold as a package deal with the ST-238 direct from Seagate you were lucky if it breaks 40K/sec even after tuning the interleave.

A LOT of that also hinged on the ROM bios on the card. Seagate's disk ROM sucked -- WD drives sucked -- which is why everyone bought WD cards with Seagate drives --- and it's why half the XT and XT clones you open up usually have a WD controller mated to a ST225, ST251 or ST238.
 
Last edited:
I found an old copy of coretest, and it says I'm getting 230k. It's a ST351AX drive connected to a ST05x controller. I just thought it was slow.. boy has time glazed over how bad the old days were.

Now I have solid state drives for my amigas, c128, vic 20, and coco2 and 3. I have floppy drives but never take them out boxes anymore.

Hopefully I'll see next week what the XT-IDE+CF Card can do.

Later,
dabone
 
Again, with my original post--it depends on the application and the hardware.

If you're using hardware than has read-ahead/write-behind caching, interleave hardly matters. In particular modern drives with their big on-drive caches make the subject of interleave a non-starter.

However, if you're using a non-caching controller, drive or driver (Actually, I bristle a bit at the talk of an IDE "controller", which is, after all, only a bus interface), interleave is important. And "optimum interleave" is highly dependent on the application. Let's take an MFM drive interleaved, for argument's sake at 2:1. So, for 17 sectors, the track layout will look like:

1,10,2,11,3,12,4,13,5,14,6,15,7,16,8,17,9

Now, this is fine if your application, after reading sector 1, can issue a request in time to catch sector 2. But if it can't, it's going to have to wait for an entire revolution until sector 2 comes around again. So your app will perform worse than if the interleave had been set for 3:1, 4:1 or even 5:1.

But since most applications do things in a sequence of "read...process data...read some more", that "optimum interleave" meaning "if I issue reads like there were no tomorrow, what's the minimum interleave before I start to have to wait a rev for things to come around?" is hardly optimum for most applications.

I used to set hard disks up so that the tracks containing the directory and FAT were set up with the "minimum crazy interleave" (on an XT, 2:1 or 3:1, depending on controller latency) and all others were set up with an interleave one greater (3:1 or 4:1). Often the difference in performance was substantial.

You can see the same thing in some CP/M and ISIS floppies--the boot tracks are sometimes set up for 1:1 or 2:1 interleave, while the remaining tracks are set up for something greater than that. I've also seen CP/M floppies set up with three interleaves--one for the boot track, another for the directory and still another for the application data area.
 
good idea on formatting the different tracks with different interleaves - i might actually try that out this weekend.
 
can that be done in dos / windows some how? i remember a program called FDFormat, i have it around here some place, it let you change the sector and cylinder skew to improve disk performance. Probably interleave.

The BIOS interface to MFM/RLL drives allows for specification of a list of sector addresses. I used a little command-line utility that I wrote. I don't know if I can still find it after all these years, but one should be pretty simple for anyone to write.
 
The BIOS interface to MFM/RLL drives allows for specification of a list of sector addresses. I used a little command-line utility that I wrote. I don't know if I can still find it after all these years, but one should be pretty simple for anyone to write.

yeah. for anyone to write an app to do it, basically this is the meat of what you'll need to know:

http://www.ctyme.com/intr/rb-0611.htm

function 6 also allows setting bad sector flags: http://www.ctyme.com/intr/rb-0614.htm

i suppose i'll write one myself. what did you do for the user to specify the tracks and interleaves, just supply a list of track ranges and their new interleave values?

say, something like: 0-5=3,6-600=5 for example? thats about as good a way as any that i can think of.
 
Back
Top