VOGONS


Any IDE busmaster controllers for ISA?

Topic actions

First post, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

Dear all,

I wonder whether there are any IDE ISA controllers that support busmaster DMA.

So far I heard about:

- GSI 4C
—- provides jumpers for IDE DMA Acknowledge and DMA request

- SIIG EIDE Master ISA
—- provides jumper for DMA CHANNEL SELECTION per ide channel.

But they never explicitly used the term Busmaster anywhere. I learned in various threads that this is important as using the standard onboard Slow Dma controller only isn’t the goal you want to achieve.

So is anyone aware of any proved busmaster compatible non SCSI controllers ? Or maybe anyonecsn approve that above ones do real busmastering ?

Thank you very much

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 1 of 22, by st31276a

User metadata
Rank Member
Rank
Member

You are correct in the sense that the controller must do bus master in order for it to be a useful improvement at all.

Problem is, this hardware was mostly used in single tasking environments, where loading/storing data using PIO was not bothersome because there was generally nothing else of significance for the CPU to do while waiting for IO anyway.

Another problem is that the disks were also only capable of PIO transfers anyway. DMA modes for IDE disks only entered the scene with pci / chipset based UDMA33 controllers.

An intelligent IDE controller that does PIO to the disk and bus master DMA over the ISA bus might be possible to design, but would require its own bios like a scsi HBA. I think scsi was the solution for this problem back in the day.

IDE was basically an AT bus attachment that connected the controller on the drive to the data lines on the bus when the correct address was decoded. Very cheap solution.

I wish there were a bus master capable ISA ide controller too, but I do not know of any.

Last edited by st31276a on 2025-11-04, 15:26. Edited 1 time in total.

Reply 2 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
Marco wrote on 2025-11-04, 11:35:

I wonder whether there are any IDE ISA controllers that support busmaster DMA.

Sorry for starting with a focus on a technicality, but it will be relevant for this reply. The typical ISA IDE adapter card is not worth to be called a "controller", because it doesn't do anything except for forwarding ISA signals to the IDE cable. The hard drive controller is integrated into the drive instead of being on a controller board (thus the name "integrated drive electronics" for IDE). So for ISA, we are usually looking at brain-dead IDE ISA interface boards.

Marco wrote on 2025-11-04, 11:35:

GSI 4C

This card is still an ISA IDE interface card without logic on this card. This card is special in that it allows 4 channels to be connected (instead of the single channel at fixed address 1F0 and IRQ14, used by stanard ISA IDE interface cards), and it does not only forward the lines required for port IO from the ISA bus to the drive, but it can also forward a DRQ/DACK of the ISA bus to the drive. Most ISA IDE interface cards do not connect anything to the single DACK/DRQ pair on the IDE cable. So this is indeed third-party DMA driven by a 8237-like DMA controller.

Many IDE drives implement ISA-compatible DMA: The protocol of single-word DMA is identical to ISA DMA in "single cycle mode", and the protocol of multi-word DMA is identical to ISA DMA in "demand mode". The data rates are low, if a 8237 at 4MHz is driving the stuff. With an interface card like the GSI 4c, you will likely not get great performance unless you can run the ISA DMA controller at 8MHz instead of 4MHz.

Marco wrote on 2025-11-04, 11:35:

SIIG EIDE Master ISA

The manual of this card can be found at http://www.bitsavers.org/pdf/siig/SIIG_CI-105 … nual_199505.pdf

The quote "up to 8.33MB/s" sounds like bus-master DMA. You only get that rate at 16-bit transfers if every transfer uses just 2 ISA bus clocks. The 8237-type DMA cycles take 4 clocks, there is a compressed mode, which AFAIK is not used in PC/AT-type system that can get down to 3 clocks, but it cleary can't get to two clocks. Also, third-party DMA at 8 or 8.3MHz is out of spec. Chapter 4 in that manual shows the IDE connector pinout, and it misses the DMA pins (DRQ on 21, DACK on 29) which might be worrysome, but as the manual does not stop pointing it it uses "Multiword DMA", I suppose it is just a lazy pinout diagram copied from some source that doesn't implement DMA.

I can't find any pictures of the card that would allow me to reverse engineer it sufficiently far to find out whether it might be able to implement bus mastering.

Reply 3 of 22, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

Thank you very much so far. The 8,3mb might indeed refer to max allowed PIO (Mode 2) or Singleword DMA 2. I cannot see a fixed reference to busmaster yet

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 4 of 22, by douglar

User metadata
Rank l33t
Rank
l33t

I have two versions of the card sold as the SIIG SC-JEE012, aka IDE Master ISA+I/O
https://theretroweb.com/expansioncards/s/siig … -isa-i-o-cn2424
https://theretroweb.com/expansioncards/s/cent … s-ci-5000-rev-a
Both are PIO only.

The CN2424 version has a Tans TS8310 IDE controller on it, but it's not clear that it does anything other than maybe a rom controller. The TS8310 IDE controller only seems to do PIO transfers. I've tried it with the SIIG rom (https://www.vogonsdrivers.com/getfile.php?fileid=1816 ) and with the TANS rom (https://www.vogonsdrivers.com/getfile.php?fileid=2078 ). Curiously, neither rom has any Tans specific features. They work with any generic PIO IDE controller.

You can overclock the ISA bus on a lot of motherboards. If you can increase the ISA bus speed, that gets passed along to the IDE devices. Most IDE devices built since 1996 can handle 16Mhz no problem. Still PIO though.

Here's my experience with ISA IDE transfers on an 8.3Mhz bus---

  • ISA PIO transfers get about 2.2MB/s if you are using a storage device built after 1996 and BIOS shadowing is enabled.
  • Using a driver or bios with "block mode transfers" along with a drive that supports block mode transfers can improve throughput to about 3.2MB/s if you find a device that can transfer 16 blocks at a time. These devices are usually hard drives.
  • Switching to a caching ISA controller will do memory mapped transfers instead of PIO transfers which can get you 4MB/s with some latency overhead when accessing data that's not in the cache.

Curiously, compact flash devices have a memory mapped mode. I always wondered if that would work over an ISA bus.

Reply 5 of 22, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

Thanks a lot. Will memory mapped transfers also reduce cpu usage? Anyway the info regarding the cache controller is new to me. Thx

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 6 of 22, by Grzyb

User metadata
Rank l33t
Rank
l33t
Marco wrote on Yesterday, 21:26:

Will memory mapped transfers also reduce cpu usage?

I would say no - the CPU will be busy executing REP MOVSW.

Nie rzucim ziemi, skąd nasz root!

Reply 7 of 22, by douglar

User metadata
Rank l33t
Rank
l33t
Marco wrote on Yesterday, 21:26:

Thanks a lot. Will memory mapped transfers also reduce cpu usage? Anyway the info regarding the cache controller is new to me. Thx

I got this guy -- https://theretroweb.com/expansioncards/s/buslogic-bt-510a

Will it reduce CPU utilization? That's a tough thing to measure in DOS, since the CPU isn't doing anything when the system is waiting on something else. Same thing if you are in windows using INT13h BIOS transfers, because the system is going back to real mode and it doesn't matter if it is a CPU wait or an IO wait. In real mode, a wait is a wait.

I'm not sure how the memory mapped transfers worked to be honest. I had assumed that the device would create a region in upper memory that was mapped to the cache memory on the controller board and the caching controller would move things around on its side so that the requested data appeared in that memory range and then the int13h bios call would pull stuff out of that shared memory area at roughly 1/2 max theoretical bus bandwidth. I haven't played around with that controller in windows to see if there was a protected mode driver that didn't ramp up the CPU load.

Reply 8 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on Yesterday, 21:41:
Marco wrote on Yesterday, 21:26:

Will memory mapped transfers also reduce cpu usage?

I would say no - the CPU will be busy executing REP MOVSW.

Depends on how you measure "CPU usage". Both REP INSW and REP MOVSW utilize the CPU 100%. But usually, the I/O "in" cycle (by REP INSW) gets more default wait states than the memory "read" cycle (by REP MOVSW), so the REP MOVSW completes faster. That's why you get higher transfer rates, if the drive is sufficiently fast. On the other hand, at a fixed rate (like 1MB/s), you get less CPU usage with REP MOVSW, especially if the controller card can activate the 0WS signal to cancel the default wait states than you get with REP INSW.

Reply 9 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
douglar wrote on Yesterday, 21:03:
I have two versions of the card sold as the SIIG SC-JEE012, aka IDE Master ISA+I/O https://theretroweb.com/expansioncards/s/siig […]
Show full quote

I have two versions of the card sold as the SIIG SC-JEE012, aka IDE Master ISA+I/O
https://theretroweb.com/expansioncards/s/siig … -isa-i-o-cn2424
https://theretroweb.com/expansioncards/s/cent … s-ci-5000-rev-a
Both are PIO only.

To be fair, the manual on the retroweb for the CN2424 card does not mention anything about DMA and 8.3MB/s, so it's not surprising that card is PIO only. On the other hand, the CI-1050 manual claims that the card is able to run multiword DMA at up to 8.3MB/s, and it has jumpers for DACK and DRQ. Despite the confusingly similar names, I don't think those cards are related.

Reply 10 of 22, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

I tested indeed in the past the CI-1050. with provided bios slower than with XTIDE. With XTIDE and Dma on exactly same performance in speedsys as with a standard ide interface card with Xtide

Last edited by Marco on 2025-11-05, 22:33. Edited 1 time in total.

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 11 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
Marco wrote on Yesterday, 22:28:

I tested indeed in the past the CI-1050. with provided bios slower than with XTIDE. With XTIDE and Dma on exactly same performance in speedsys as with a standard ide interface card

Can you dump the BIOS of the CI-1050, please? This will make it easy to find out whether it used the AT 8237-like DMA or busmaster DMA.

Reply 12 of 22, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

I would for sure but I don’t have the card anymore 🙁

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 13 of 22, by douglar

User metadata
Rank l33t
Rank
l33t

Anything look weird about this version of the card? Like maybe no components are populated except for the ROM ?

The attachment siig.jpg is no longer available

SIIG made some good products, but sometimes they did some strange things to use up spare PCB's, like sawing the VLB connector off this board--

https://theretroweb.com/expansioncards/s/siig … e-controller-vl

Reply 14 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t

I also have a TANS card that is just an LBA BIOS card, but uses a TANS IDE interface chip. I wonder why this card has two wide DIP chips. Maybe a BIOS ROM and a configuration flash?

Reply 15 of 22, by douglar

User metadata
Rank l33t
Rank
l33t
mkarcher wrote on Today, 06:29:

I also have a TANS card that is just an LBA BIOS card, but uses a TANS IDE interface chip. I wonder why this card has two wide DIP chips. Maybe a BIOS ROM and a configuration flash?

Maybe one is an sram for caching the BIOS? This card is similar https://theretroweb.com/expansioncards/s/cent … s-ci-5000-rev-a

I see a Rev B: http://www.bitsavers.org/pdf/siig/SIIG_CI-1050/CI-1050_t.jpg

And the BIOS is here: http://www.bitsavers.org/pdf/siig/SIIG_CI-1050/

And I copied them here: https://theretroweb.com/expansioncards/s/siig … eide-master-isa

Reply 16 of 22, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

Seems as if the DMA settings on these cards are only for (multi) word Dma (1) I guess

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 17 of 22, by douglar

User metadata
Rank l33t
Rank
l33t
Marco wrote on Today, 17:34:

Seems as if the DMA settings on these cards are only for (multi) word Dma (1) I guess

MWDMA is a different thing from ISA Busmaster DMA or 8237A DMA.

MWDMA is an ATA protocol that works between an IDE controller chip and an IDE storage device that is capable of MWDMA modes. I only know of one MWDMA controller chip that isn't PCI: the Promise 20C630 VLB controller. It can talk MWDMA to a subset of IDE devices willing to talk MWDMA, but it not a DMA device and presents itself to the rest of the system as a faster PIO device. All the other MWDMA capable chips are PCI devices. Seems like ISA lacks the address lines necessary to fully implement MWDMA. VLB lacks the codified bus master features that PCI has, which is likely a significant impediment to full MWDMA implementation on VLB.

ISA BUSMASTER DMA requires a card that has all the circuity necessary to completely take over the ISA bus, and we are not seeing that hardware on these cards.

ISA 8237A DMA relies on the 8237A controllers built into the motherboard. 8237A transfer modes are not faster than PIO or memory mapped transfers. They are used by things like floppy drives and isa sound cards where stable transfer rates are more important that total throughput.

Note: My experience is that IDE storage devices with firmware after 2012 often have limited support for the MWDMA protocols, which I guess shouldn't be too surprising since MWDMA had been superseded by the superior UDMA 15 years earlier. What I'm saying is that it can be tough to get contemporary PATA devices & Sata devices to work with old MWDMA transfer protocols.

Edit p.s. Looks like the roms for that card are doing 8237A DMA

Reply 18 of 22, by Marco

User metadata
Rank Oldbie
Rank
Oldbie

Indeed the eide CL1050 states:

The EIDE Master ISA
is the only ISA IDE card available on the current market that provides Multiword DMA transfer hardware (up to 8.33 MB/sec). It breaks the bottleneck of IDE performance.

Furthermore that just seems to be a bios kind of thing. When you use Xtide all ata analysis tools show that my current ide HDD is using mwdma 2. at least iirc

1) VLSI SCAMP 311 | 386SX25@TI486SXLC2-50@63 | 16MB | CL-GD5434 | CT2830| SCC-1 | MT32 | WDC160GB/7200/8MB | Fast-SCSI AHA 1542CF + BlueSCSI v2/15k U320
2) SIS486 | 486DX/2 66(@80) | 32MB | TGUI9440 | LAPC-I

Reply 19 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
douglar wrote on Today, 18:12:
Marco wrote on Today, 17:34:

Seems as if the DMA settings on these cards are only for (multi) word Dma (1) I guess

MWDMA is a different thing from ISA Busmaster DMA or 8237A DMA.

Well, kind of different. MWDMA is defined in the IDE specification, but it is actually the same protocol as the 8237A configured to demand mode. On the other hand, MWDMA2 uses considerably faster timing than the 8237A clocked at 4 MHz (or 4.16MHz for ISA at 8.33MHz).