HDD DMA problems on GA-686BX and Win98SE

Support and general discussion.
Post Reply
undeon
Posts: 6
Joined: Wed 13 Jul, 2022 6:06 pm

HDD DMA problems on GA-686BX and Win98SE

Post by undeon »

Hello everyone,

Host: Ryzen 5 5600X
Guest: GA-686BX, Pentium II 333MHz, 512MB Ram (same results with 64MB or 128MB), updated drivers and all Microsoft KBs applied.... With my host CPU, I can keep 100% performance all the times.

I fell the system very slugish, so i googled about what can be done and remembered about DMA. I saw a Phils Computer Lab benchmark of his system with and without DMA enabled and the difference was huge. But on my system, enabling DMA worsened the HDD performance, and both results are a lot slower than Phils tests. The motherboard he used is an Asus SP-97-XV, with UDMA 33MB/s just like the GA-686BX.

With DMA disabled:
Image

With DMA enabled:
Image

Phils test. DMA disabled on the left and enabled on the right:
Image

I've read this board manual, tips online about its BIOS configuration, but the result is the same...

This is what to expect or there's something that I can do?

Thanks in advance.
User avatar
unreal9010
Posts: 160
Joined: Sat 14 Nov, 2020 8:20 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by unreal9010 »

I've just tested the disk speed using Roadkill's Disk Speed and my test results on an emulated Pentium II 350 are pretty much the same as yours (about 6.5 MB/sec).
undeon
Posts: 6
Joined: Wed 13 Jul, 2022 6:06 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by undeon »

unreal9010 wrote: Wed 13 Jul, 2022 8:48 pm I've just tested the disk speed using Roadkill's Disk Speed and my test results on an emulated Pentium II 350 are pretty much the same as yours (about 6.5 MB/sec).
Thanks for the reply...


Anyone had different results?
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by Arjen42 »

PIO or DMA is meaningless on an emulated computer. Only the hard drive interface (IDE, ESDI, SCSI, or ST506) is emulated and that doesn't really matter for performance. In most cases performance is limited to what the emulated CPU can handle on your machine. If your application or game doesn't need the current CPU speed, it might improve performance if you select a slower CPU. Yes, I know that this may sound counterintuitive, but PCem is single threaded (except for 3DFX) so if you assign too much host CPU cycles to emulated CPU cycles, it will hurt emulated disk performance. Also most BIOS settings related to hardware don't do anything in PCem. PCem doesn't emulate this motherboard, it just uses it BIOS to start the operating system, and for some people it gives a feeling of nostalgy seeing a familiar screen at boot time.
undeon
Posts: 6
Joined: Wed 13 Jul, 2022 6:06 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by undeon »

Arjen42 wrote: Thu 14 Jul, 2022 12:48 pm PIO or DMA is meaningless on an emulated computer. Only the hard drive interface (IDE, ESDI, SCSI, or ST506) is emulated and that doesn't really matter for performance. In most cases performance is limited to what the emulated CPU can handle on your machine. If your application or game doesn't need the current CPU speed, it might improve performance if you select a slower CPU. Yes, I know that this may sound counterintuitive, but PCem is single threaded (except for 3DFX) so if you assign too much host CPU cycles to emulated CPU cycles, it will hurt emulated disk performance. Also most BIOS settings related to hardware don't do anything in PCem. PCem doesn't emulate this motherboard, it just uses it BIOS to start the operating system, and for some people it gives a feeling of nostalgy seeing a familiar screen at boot time.
The benchmarks I've done shows that there is difference enabling DMA or not. Both have the same speed at transfer sizes, but without DMA, I got better writes speeds on lower transfer sizes. I just tested with a Pentium II 233MHz, and the result is worse. Topping at 6,8MB/s write and 6,2MB/s read. Being overly optimist about what my host CPU can do, I've changed the emulated CPU to a Celeron 533 and got higher results, but nothing outstanding. 7,8MB/s and 7,1MB/s write and read speeds. During the test, my host CPU keep the emulation at 100% all the time.

But the problem is PhilsComputerLabs tested with a Pentium-MMX 233MHz and got 12MB/s read and write with DMA disabled and 30MB/s with DMA enabled. CPU speed isn't the problem.
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by Arjen42 »

Was the PhilsComputerLabs benchmark done on the actual physical motherboard? You can't expect PCem to have the same level of performance.
undeon
Posts: 6
Joined: Wed 13 Jul, 2022 6:06 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by undeon »

Arjen42 wrote: Thu 14 Jul, 2022 6:45 pm Was the PhilsComputerLabs benchmark done on the actual physical motherboard? You can't expect PCem to have the same level of performance.
Yes, it was. But there's a thread here where the user got 16MB/s and 12MB/s of write and read speeds respectively, emulating an Pentium 166.
I know the same real hardware can vary a lot in performance, but that don't justify everything getting faster but the HDD.
The goal of PCem is accurately emulate the hardware. With that in mind, is not unreasonable to throw this question, since it can be a driver or Windows configuration problem, for example...
Sooga
Posts: 43
Joined: Tue 05 Jul, 2022 12:54 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by Sooga »

Am I being singled out here? It seems other threads get almost immediate answers and I get promptly ignored so was it something I said perhaps? If I offensed anybody I didn't mean it but these days you never know what is offensible! One man's mole hill is another's WW3!
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by Arjen42 »

@Sooga,

Don't take this personally. There aren't enough people on this forum to answer all questions. Not by number, but simple because they don't know the answer to the questions you're asking. Or they might be busy doing something else.
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by Arjen42 »

undeon wrote: Thu 14 Jul, 2022 7:15 pm Yes, it was. But there's a thread here where the user got 16MB/s and 12MB/s of write and read speeds respectively, emulating an Pentium 166.
I know the same real hardware can vary a lot in performance, but that don't justify everything getting faster but the HDD.
The goal of PCem is accurately emulate the hardware. With that in mind, is not unreasonable to throw this question, since it can be a driver or Windows configuration problem, for example...
A perfect emulation of that motherboard and other peripheral equipment would achieve that result. Unfortunately it's not possible to achieve that goal. The internal workings of hardware is proprietary. I would a lot of effort to reverse engineer that. It would also take a lot more CPU power to emulate the whole board in it's entirely. Instead only the CPU is emulated and a selection of I/O functions are implemented just to make sure the BIOS and other runs without errors. Since all supported computers are IBM PC compatible it is relatively easy to add different PC types. However chances are that specific drivers that improve performance on the real hardware do not have effect on emulated hardware.

To improve performance, I would suggest the following:
  • Switch to a generic hard drive driver, instead of a driver specific for this hardware.
  • Switch from a IDE to a SCSI hard drive controller. (Create a new machine for this as hard drive geometry are different between controllers.)
  • Disable 32-bit hard drive access, assuming you run Windows 95 or 98
  • Switch to another version of Windows (95, 98, NT, or 2000) and decide which one works best for you. (Create a new machine for every OS.)
  • Run DOS games in DOS, not Windows. (Again create a separate machines depending on the type of CPU the game was designed for.)
  • Don't rely on benchmarks as your only source of performance measurement. Most benchmarks focus on transfer rate, however much more important is access time. Most of the time many small pieces of data are read or written. A high transfer rate is only important when you copy very large files.
User avatar
unreal9010
Posts: 160
Joined: Sat 14 Nov, 2020 8:20 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by unreal9010 »

Certain components of the GA-686BX board are emulated, such as its W83977TF SuperIO chip and the PIIX4 82371EB chipset.
The thing is that hard disk read/write speeds as well as DMA/UDMA aren't properly emulated yet.
I must also remind that benchmarks running on virtual machine could be a bit deceiving. Likewise, my 3D Mark '99 benchmark which is running on an emulated Pentium II 350 with Voodoo 2 reports 80-90 fps on average during game benchmarks, although the exact speed doesn't feel close to that at all. In real life scenario, the average fps would be around 25-30. PC Player benchmark also reports some abnormal numbers that are at least 2.5 X above the expected results when running on real machine. At first I though that having V-Sync turned off could be the culprit here, however, when I later turned it on the difference was very subtle.
Nevertheless, I have to say that configurations running on PCem feel at least slightly faster (and more stable) than the real deal.
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by Arjen42 »

unreal9010 wrote: Sun 17 Jul, 2022 6:29 pm Nevertheless, I have to say that configurations running on PCem feel at least slightly faster (and more stable) than the real deal.
Yes, I noticed that as well. Hard drive images that already loaded into the RAM of the host PC are much faster than physical hard drives, old or new. The speed is most likely limited by the emulated CPU speed. Every byte that's read or written needs to processed by the CPU, at least in PIO. DMA would offload the emulated CPU, but since the rest of the system is emulated in the same thread, it would not matter much. It would matter if DMA transfers are handled in a much more efficient way, but I don't know if that's even possible. It would also affect realism if hard drive access was really much more faster.
User avatar
unreal9010
Posts: 160
Joined: Sat 14 Nov, 2020 8:20 pm

Re: HDD DMA problems on GA-686BX and Win98SE

Post by unreal9010 »

Most stuff from CD ISO images gets installed almost in a snap. Not too long ago I installed some demo version from an old magazine coverdisc from back in the day and the whole process was over in about 15-20 seconds. I remember it took about 5-10 minutes to get that demo installed on my machine back in the day. I should mention that I had a crappy 36X Cyberdirve CD-ROM unit which might have prolonged the installation.
Post Reply