I revived an old 6Mhz PC AT today by removing the
original Western Digital based
hard disk controller and replacing it with a newer, generic IDE controller.
While discussing this beast, the topic of putting a
CD-ROM on it came up. (I
would never do such a thing except for giggles.) The topic of the CD-ROM led
to a throughput question - could this old monster even do it? As in, is the
ISA bus up to reading from the CD-ROM at a reasonable speed?
Not a problem. Your ISA bus is running at 6 MHz (167 ns cycle) and
can do 16 bit transfers every couple four (667 ns) on a good day with
the wind at its back. The IDE specification for PIO mode 0 is really
spec'd for an 8 MHz ISA bus so it specifies 600 ns between transfers.
But ISTR that it's spec'd as a minimum time between transfers of 600
ns. The maximum can be much longer, and often is since PIO mode max
rates only happen if the processor isn't doing anything else. That's
while IDE drives always have a track buffer. So your 6MHz ISA bus
will max out at 3 MB/s (using 100% of CPU for I/O).
The original multimedia PC systems were suggested to use <15% CPU on a
single speed CD (153,600 bytes/s). On you system I'd estimate that a
single speed CD read would take 2.5% of the CPU time if the driver is
written well. You would theoretically max out your system with a 40X
CD-ROM drive, but I'd be very surprised if you can keep up with a 24X
drive.
When writing to a hard disk, would this machine have
used a tight processor
loop, or would it have used DMA? Under what circumstances would it use DMA to
transfer data to a hard disk?
The default BIOS would use polled I/O. CD-ROM drivers almost always
use polled I/O, because most IDE cards don't support DMA because a lot
of the drives don't support the ATA DMA modes. If by chance you do
have a DMA capable IDE card you will need to install a driver to use
it.
And one last question .. Unlike the PC and XT, the AT
BIOS handles hard drives.
It didn't blink when I removed the crusty WD based controller and replaced it
with a no-name WinBond based controller. Does the new IDE controller really
look that much like the old controller that the BIOS can't tell?
The BIOS shouldn't know the difference between the controllers. Just
as long as the I/O ports are in the right place (and they are designed
to be) there's no difference. The smarts on an IDE drive emulate the
old AT disk controller's communications with the BIOS. You will
probably have problems getting the BIOS to recognize the proper size
of any disks you install. You may need a disk manager in order to get
things running properly.