VOGONS


Reply 20 of 43, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Okay, back on topic.. Speaking about SCSI and Windows..

SCSI had a predecessor to Native Command Queuing (NCQ), called Tagged Command Queuing (TCQ).

https://en.wikipedia.org/wiki/Native_Command_Queuing

https://en.wikipedia.org/wiki/Tagged_Command_Queuing

Both are important in a multitasking environment, in which multiple files are being used simultaneously.

Let's imagine a lift, an elevator in a small building.
Without NCQ, the order in which a floor is being reached is chaotic (depending on button requests each time): 4-1-3-1-2
With NCQ, the lift moves in a row, so all passengers get to their floor ASAP: 4-3-2-1

That's one of the reasons as to why SCSI or SASI is being used in professional fields or on Unix.

While PATA/IDE HDDs may support these features, it's not guaranteed that OS, the IDE drivers or the IDE controller support such things.

In the SCSI world, however, these features are very old, so there's a chance classic software can make use of it (through SCSI).

If you're on plain DOS, that's not needed, of course.
Rather contrary, NCQ/TCQ can reduce linear read/write performance due to their jumpy behavior.

In a humble DOS/16-Bit Windows environment, an IDE caching controller may indirectly solve the same issues as NCQ/TCQ by combining/buffering I/O requests.

That's one of the reasons as to why SmartDrive and the 32-Bit File Access (HDD cache) can improve smoothness noticeable.

If you can, please consider experimenting with SCSI a bit. There are SCSI emulators by now.
You won't regret it once you play with Unix, OS/2 or Windows NT/9x.

Edit: Or in other words, NCQ/TCQ make the HDD multi-tasking capable.

So it makes sense that they're ideal, if not required, for multitasking systems.

Otherwise, an HDD can only handle one request at a time.
In relation to thousands of files, this gives an idea how important they are.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 21 of 43, by chinny22

User metadata
Rank l33t++
Rank
l33t++

Think Win95 makes alot of sense on a 486.
Most of the time it'll boot it'll boot into dos mode but here you get the benefits of FAT32, slightly nicer versions of himem.sys, edit.com and whatever else I'm forgetting at the moment.
While it's true you wont be able to do much gaming in Win95 it's a lot nicer/easier for file management, networking and general system management.

Reply 22 of 43, by douglar

User metadata
Rank Oldbie
Rank
Oldbie
chinny22 wrote on 2023-02-27, 12:02:

Think Win95 makes alot of sense on a 486.
Most of the time it'll boot it'll boot into dos mode but here you get the benefits of FAT32, slightly nicer versions of himem.sys, edit.com and whatever else I'm forgetting at the moment.
While it's true you wont be able to do much gaming in Win95 it's a lot nicer/easier for file management, networking and general system management.

I agree. I even go as far as to put BootGUI=0 in the msdos.sys so that I'm using DOS as a default, and I start the GUI by running win.com at the command prompt.

Consider installing Win95 OSR2 (aka Win95b / MS-DOS 7.1) if you are going to want USB support, UDMA support, or volumes > 2GB.

Win 95 OSR 2.5 / Internet Explorer 4.0 / Windows 98 is the point where a majority of people consider a faster processor, unless they want to spend a lot of time fiddling with after market OS tweaks to improve performance on low end hardware or they have a higher tolerance for hour glass cursors than the average user.

Me personally, I get a kick out of seeing how far I can push the old hardware. Probably goes back to when I was paid to do this stuff, but I was told I should spend my time trying to make the latest long forgotten build of the boring inhouse software deploy reliably with DDE instead of spending the rest of the week in the test lab making a stripped down build of WinNT4 Workstation to give new life to 486 computers like I really wanted.

Reply 23 of 43, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie

As @douglar has mentioned many times, i also think this setup would work great even on lower speed 486s:
Windows 95 (OSR 2.5, because why not?), without IE4 desktop update, with UDMA enabled.

UDMA really is an important keyword on those machines!

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!

Reply 24 of 43, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
GigAHerZ wrote on 2023-02-27, 14:47:

As @douglar has mentioned many times, i also think this setup would work great even on lower speed 486s:
Windows 95 (OSR 2.5, because why not?), without IE4 desktop update, with UDMA enabled.

UDMA really is an important keyword on those machines!

UDMA on a 486 is going to require a PCI IDE card unless you know of some 486 chipset that supports it for the onboard IDE?

Reply 25 of 43, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote on 2023-02-27, 16:50:
GigAHerZ wrote on 2023-02-27, 14:47:

As @douglar has mentioned many times, i also think this setup would work great even on lower speed 486s:
Windows 95 (OSR 2.5, because why not?), without IE4 desktop update, with UDMA enabled.

UDMA really is an important keyword on those machines!

UDMA on a 486 is going to require a PCI IDE card unless you know of some 486 chipset that supports it for the onboard IDE?

I have VLB based simple IO card doing DMA on my non-PCI 486.
Is there any technical reason not to be able to do it even on ISA bus? It has DMA, too. (Maybe it just isn't as beneficial so in practice nobody's done it...)

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!

Reply 26 of 43, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
GigAHerZ wrote on 2023-02-27, 19:46:
jakethompson1 wrote on 2023-02-27, 16:50:
GigAHerZ wrote on 2023-02-27, 14:47:

As @douglar has mentioned many times, i also think this setup would work great even on lower speed 486s:
Windows 95 (OSR 2.5, because why not?), without IE4 desktop update, with UDMA enabled.

UDMA really is an important keyword on those machines!

UDMA on a 486 is going to require a PCI IDE card unless you know of some 486 chipset that supports it for the onboard IDE?

I have VLB based simple IO card doing DMA on my non-PCI 486.
Is there any technical reason not to be able to do it even on ISA bus? It has DMA, too. (Maybe it just isn't as beneficial so in practice nobody's done it...)

I didn't think the "DMA" checkbox in Windows 95 for UltraDMA actually did anything unless the IDE controller complies with this specification: http://bswd.com/idems100.pdf
Here's a period article explaining that it was a fresh new feature in the Intel PIIX introduced with Triton: https://www.tomshardware.com/reviews/storage-guide,33-6.html

As you can see in the spec, it's quite complicated since the OS might want to have the device do DMA into a memory region that is virtually contiguous, yet not physically contiguous. That's what the physical region descriptors are for, basically an array of <starting physical address, number of bytes> pairs. Without support for that the memory region has to be physically contiguous.
I think "DMA" and "bus mastering" get mixed together here. ISA DMA is so slow that's why hard drive controllers switched from ISA DMA to Programmed I/O with the change from XT to AT.
Do you have benchmarks on your VLB system from within Windows both with DMA checked and unchecked and how much speed increase are you seeing?

Reply 27 of 43, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote on 2023-02-27, 19:59:
I didn't think the "DMA" checkbox in Windows 95 for UltraDMA actually did anything unless the IDE controller complies with this […]
Show full quote
GigAHerZ wrote on 2023-02-27, 19:46:
jakethompson1 wrote on 2023-02-27, 16:50:

UDMA on a 486 is going to require a PCI IDE card unless you know of some 486 chipset that supports it for the onboard IDE?

I have VLB based simple IO card doing DMA on my non-PCI 486.
Is there any technical reason not to be able to do it even on ISA bus? It has DMA, too. (Maybe it just isn't as beneficial so in practice nobody's done it...)

I didn't think the "DMA" checkbox in Windows 95 for UltraDMA actually did anything unless the IDE controller complies with this specification: http://bswd.com/idems100.pdf
Here's a period article explaining that it was a fresh new feature in the Intel PIIX introduced with Triton: https://www.tomshardware.com/reviews/storage-guide,33-6.html

As you can see in the spec, it's quite complicated since the OS might want to have the device do DMA into a memory region that is virtually contiguous, yet not physically contiguous. That's what the physical region descriptors are for, basically an array of <starting physical address, number of bytes> pairs. Without support for that the memory region has to be physically contiguous.
I think "DMA" and "bus mastering" get mixed together here. ISA DMA is so slow that's why hard drive controllers switched from ISA DMA to Programmed I/O with the change from XT to AT.
Do you have benchmarks on your VLB system from within Windows both with DMA checked and unchecked and how much speed increase are you seeing?

Not at hand unfortunately. (Don't even have win95 on this same machine right now)
I do remember that the DMA box is missing in windows, if windows can't support it.

As i did find working drivers for this VLB IO card for DOS, i did confirm it with speedsys that my "HDD" speed (i used CF card) went "through the roof". Possibly there are some screenshots of speedsys somewhere in this forum.
So i can definitely tell you that much that VLB IO card with DMA drivers for DOS has a big impact on disk performance.

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!

Reply 28 of 43, by douglar

User metadata
Rank Oldbie
Rank
Oldbie

Win95 "DMA support" didn't come until Win95 OSR2. And yes, you need both a drive and a controller that support UDMA. https://en.wikipedia.org/wiki/UDMA

Getting UDMA to work on a 486 would require that rare unicorn of a PCI controller that is old enough to work with a 486 but new enough to support UDMA. I have not found that card yet.

Seems possible you could get the older "Multi-Word DMA2" to work with Windows 95 if you had a storage device that supported it, and your controller supported it, and maybe you had a special driver, but I've never had that work. https://en.wikipedia.org/wiki/WDMA_(computer)

I think I got Multi-word DMA 0 to work on an ISA bus with a standard IDE card. I'll have to work out an experiment to verify that.

Reply 29 of 43, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
douglar wrote on 2023-02-27, 21:00:
Win95 "DMA support" didn't come until Win95 OSR2. And yes, you need both a drive and a controller that support UDMA. https://e […]
Show full quote

Win95 "DMA support" didn't come until Win95 OSR2. And yes, you need both a drive and a controller that support UDMA. https://en.wikipedia.org/wiki/UDMA

Getting UDMA to work on a 486 would require that rare unicorn of a PCI controller that is old enough to work with a 486 but new enough to support UDMA. I have not found that card yet.

Seems possible you could get the older "Multi-Word DMA2" to work with Windows 95 if you had a storage device that supported it, and your controller supported it, and maybe you had a special driver, but I've never had that work. https://en.wikipedia.org/wiki/WDMA_(computer)

I think I got Multi-word DMA 0 to work on an ISA bus with a standard IDE card. I'll have to work out an experiment to verify that.

I've got a promise ultra133 tx2 in my PCI 486 working fine. It does 30+MB/s both in 98SE and DOS. (UDMA is always enabled in the driver, there is no checkbox for it)

Reply 30 of 43, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
GigAHerZ wrote on 2023-02-27, 20:38:

As i did find working drivers for this VLB IO card for DOS, i did confirm it with speedsys that my "HDD" speed (i used CF card) went "through the roof". Possibly there are some screenshots of speedsys somewhere in this forum.
So i can definitely tell you that much that VLB IO card with DMA drivers for DOS has a big impact on disk performance.

Nice. I've done some studying of various pre-Bus Mastering VLB and PCI IDE controllers. There are a few tricks they have up their sleeve. The most impactful seems to be "FIFO mode" in which the controller continues reading WORDs from the drive into a small in-controller buffer, such that the CPU can REP INSD directly from that buffer. The second most impactful is Multiple Sector aka Block mode where the number of sectors per interrupt is increased from 1 to perhaps 8 or 16, decreasing CPU overhead for large reads or writes to the drive. There are others like 32-bit I/O and controlling when IRQs are disabled when accessing the drive. These drivers often have a "speed table" that customizes timings when accessing the drive. You had to deal with this when using Linux with one of these pre-PIIX IDE controllers.

The IDE driver that comes with Win95 (Esdi_506.pdr) doesn't attempt this stuff so you might find that when you stay in DOS and use your controller's custom driver, Speedsys has much faster speeds than if you run it from inside a Win95 DOS box. I've done some looking into how to get around this via a custom driver, with some good results.

If you have a VLB IDE card that actually does bus mastering it would be interesting to take a look at it and its driver.

Reply 31 of 43, by Jo22

User metadata
Rank l33t++
Rank
l33t++
GigAHerZ wrote on 2023-02-27, 19:46:
jakethompson1 wrote on 2023-02-27, 16:50:
GigAHerZ wrote on 2023-02-27, 14:47:

As @douglar has mentioned many times, i also think this setup would work great even on lower speed 486s:
Windows 95 (OSR 2.5, because why not?), without IE4 desktop update, with UDMA enabled.

UDMA really is an important keyword on those machines!

UDMA on a 486 is going to require a PCI IDE card unless you know of some 486 chipset that supports it for the onboard IDE?

I have VLB based simple IO card doing DMA on my non-PCI 486.
Is there any technical reason not to be able to do it even on ISA bus? It has DMA, too. (Maybe it just isn't as beneficial so in practice nobody's done it...)

As far as I know, ISA's DMA capabilities were a bit limited.
PCI had that so-called "bus mastering" support. It allowed DMA in a way it wasn't "getting in the way" so often.

douglar wrote on 2023-02-27, 21:00:

Win95 "DMA support" didn't come until Win95 OSR2. And yes, you need both a drive and a controller that support UDMA. https://en.wikipedia.org/wiki/UDMA

That's Win 95B, afaik. Can't really keep that OSR naming scheme in mind. 😅

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 32 of 43, by douglar

User metadata
Rank Oldbie
Rank
Oldbie
maxtherabbit wrote on 2023-02-27, 21:20:

I've got a promise ultra133 tx2 in my PCI 486 working fine. It does 30+MB/s both in 98SE and DOS. (UDMA is always enabled in the driver, there is no checkbox for it)

Nice. Farthest I get is a lock up after identifying the drives but before DOS loads.

Maybe I should Re-FDISK and reinstall the OS or something. Or hunt for new BIOS's.

Thanks for the motivation. I'll have to start a thread called "Modern storage controllers on a 486" =)

Reply 33 of 43, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
douglar wrote on 2023-02-28, 00:56:
Nice. Farthest I get is a lock up after identifying the drives but before DOS loads. […]
Show full quote
maxtherabbit wrote on 2023-02-27, 21:20:

I've got a promise ultra133 tx2 in my PCI 486 working fine. It does 30+MB/s both in 98SE and DOS. (UDMA is always enabled in the driver, there is no checkbox for it)

Nice. Farthest I get is a lock up after identifying the drives but before DOS loads.

Maybe I should Re-FDISK and reinstall the OS or something. Or hunt for new BIOS's.

Thanks for the motivation. I'll have to start a thread called "Modern storage controllers on a 486" =)

What chipset? There's some talk about the UMC UM8881F having the latest PCI support of any 486 chipset.

Reply 34 of 43, by rasz_pl

User metadata
Rank l33t
Rank
l33t
GigAHerZ wrote on 2023-02-27, 19:46:
I have VLB based simple IO card doing DMA on my non-PCI 486. Is there any technical reason not to be able to do it even on ISA b […]
Show full quote

I have VLB based simple IO card doing DMA on my non-PCI 486.
Is there any technical reason not to be able to do it even on ISA bus? It has DMA, too. (Maybe it just isn't as beneficial so in practice nobody's done it...)

As i did find working drivers for this VLB IO card for DOS, i did confirm it with speedsys that my "HDD" speed (i used CF card) went "through the roof". Possibly there are some screenshots of speedsys somewhere in this forum.
So i can definitely tell you that much that VLB IO card with DMA drivers for DOS has a big impact on disk performance.

Name the card. Bus mastering VLB IDE controller would be amazing, but I havent seen one yet.
I know of only one non PCI busmastering DMA IDE controller in existence Re: DIY 16-bit ISA IDE interface?

jakethompson1 wrote on 2023-02-27, 21:29:

Nice. I've done some studying of various pre-Bus Mastering VLB and PCI IDE controllers. There are a few tricks they have up their sleeve. The most impactful seems to be "FIFO mode" in which the controller continues reading WORDs from the drive into a small in-controller buffer, such that the CPU can REP INSD directly from that buffer.

that would be PDC20630 😀
Re: Is there a VLB card that supports > Mode 3 or UDMA support?

Open Source AT&T Globalyst/NCR/FIC 486-GAC-2 proprietary Cache Module reproduction

Reply 35 of 43, by douglar

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote on 2023-02-28, 01:06:

What chipset? There's some talk about the UMC UM8881F having the latest PCI support of any 486 chipset.

I've tried a UMC UM8881F, Intel 420TX, and a Via82C505

I've got promise controllers ATA-66, ATA-100, and SATA-150

Probably something simple and fixable, like LBA vs CHS or something

Reply 36 of 43, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
douglar wrote on 2023-02-28, 03:46:
I've tried a UMC UM8881F, Intel 420TX, and a Via82C505 […]
Show full quote
jakethompson1 wrote on 2023-02-28, 01:06:

What chipset? There's some talk about the UMC UM8881F having the latest PCI support of any 486 chipset.

I've tried a UMC UM8881F, Intel 420TX, and a Via82C505

I've got promise controllers ATA-66, ATA-100, and SATA-150

Probably something simple and fixable, like LBA vs CHS or something

Ah. I thought Feipoa might have tried this already on the MB-8433UUD (8881F)

Reply 37 of 43, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

I can tell you that in 1995/1996, the college that I was taking my Computer Science 'A' levels had just added a small number of Win 95 desktops to the classroom. For the first year of my course we were using 386 machines (PS/2 towers) with Dos, as well as an assortment of Acorn Archimedes (mainly A3020's, with a couple of A5000's) as well as a few older BBC Micros (which were never really touched).

The Win 95 machines (RM desktops) that they bought were DX4's with 8mb (yes, 8mb). They were so slow as to be effectively unusable immediately after loading the desktop.

The course teacher allowed us to reinstall Dos 6 + Win 3.1 on them all to make them useable for our of studies - which were mainly Qbasic based, with a little bit of, iirc, Watcom C and assembly.

My collection database and technical wiki:
https://www.target-earth.net

Reply 38 of 43, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie
rasz_pl wrote on 2023-02-28, 02:03:
GigAHerZ wrote on 2023-02-27, 19:46:
I have VLB based simple IO card doing DMA on my non-PCI 486. Is there any technical reason not to be able to do it even on ISA b […]
Show full quote

I have VLB based simple IO card doing DMA on my non-PCI 486.
Is there any technical reason not to be able to do it even on ISA bus? It has DMA, too. (Maybe it just isn't as beneficial so in practice nobody's done it...)

As i did find working drivers for this VLB IO card for DOS, i did confirm it with speedsys that my "HDD" speed (i used CF card) went "through the roof". Possibly there are some screenshots of speedsys somewhere in this forum.
So i can definitely tell you that much that VLB IO card with DMA drivers for DOS has a big impact on disk performance.

Name the card. Bus mastering VLB IDE controller would be amazing, but I havent seen one yet.
I know of only one non PCI busmastering DMA IDE controller in existence Re: DIY 16-bit ISA IDE interface?

It's something quite simple. FCC ID: KJD-IDEIO VLB and the IDE chip on the VLB side is Promise PDC20630.
Should be this one: https://retronn.de/imports/hwgal/hw_controlle … _vlb_front.html

And when i now quickly googled it again, i found a post from here, vogons, for drivers. Possibly i got my DOS drivers also from here:
Re: 486 CD-Rom Questions

jakethompson1 wrote on 2023-02-27, 21:29:
Nice. I've done some studying of various pre-Bus Mastering VLB and PCI IDE controllers. There are a few tricks they have up thei […]
Show full quote
GigAHerZ wrote on 2023-02-27, 20:38:

As i did find working drivers for this VLB IO card for DOS, i did confirm it with speedsys that my "HDD" speed (i used CF card) went "through the roof". Possibly there are some screenshots of speedsys somewhere in this forum.
So i can definitely tell you that much that VLB IO card with DMA drivers for DOS has a big impact on disk performance.

Nice. I've done some studying of various pre-Bus Mastering VLB and PCI IDE controllers. There are a few tricks they have up their sleeve. The most impactful seems to be "FIFO mode" in which the controller continues reading WORDs from the drive into a small in-controller buffer, such that the CPU can REP INSD directly from that buffer. The second most impactful is Multiple Sector aka Block mode where the number of sectors per interrupt is increased from 1 to perhaps 8 or 16, decreasing CPU overhead for large reads or writes to the drive. There are others like 32-bit I/O and controlling when IRQs are disabled when accessing the drive. These drivers often have a "speed table" that customizes timings when accessing the drive. You had to deal with this when using Linux with one of these pre-PIIX IDE controllers.

The IDE driver that comes with Win95 (Esdi_506.pdr) doesn't attempt this stuff so you might find that when you stay in DOS and use your controller's custom driver, Speedsys has much faster speeds than if you run it from inside a Win95 DOS box. I've done some looking into how to get around this via a custom driver, with some good results.

If you have a VLB IDE card that actually does bus mastering it would be interesting to take a look at it and its driver.

IIRC, the DOS drivers did have some kind of speed setting from 0 or 1 to 7 or 8. Therefore i start to think that maybe it was just that and nothing else...

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!

Reply 39 of 43, by rasz_pl

User metadata
Rank l33t
Rank
l33t
GigAHerZ wrote on 2023-03-02, 17:26:
rasz_pl wrote on 2023-02-28, 02:03:

Name the card. Bus mastering VLB IDE controller would be amazing, but I havent seen one yet.
I know of only one non PCI busmastering DMA IDE controller in existence Re: DIY 16-bit ISA IDE interface?

It's something quite simple. FCC ID: KJD-IDEIO VLB and the IDE chip on the VLB side is Promise PDC20630.

yep Re: Is there a VLB card that supports > Mode 3 or UDMA support?
its doing DMA to the drive, but it doesnt to DMA to the motherboard 🙁

Open Source AT&T Globalyst/NCR/FIC 486-GAC-2 proprietary Cache Module reproduction