Breakthrough for the ao486 core announced - Cache

User avatar
NightShadowPT
Posts: 208
Joined: Mon May 25, 2020 9:56 am
Has thanked: 5 times
Been thanked: 9 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by NightShadowPT »

SuperBabyHix wrote: Tue Jul 07, 2020 3:33 am The DX vs SX differentiation really is not significant for games. Off the top of my head I can think of maybe three games (prior to Quake coming out in 1996) that made use for a math co-processor (Falcon 3.0, MS Flight Sim 5, and I believe Sim City.) The Doom engine, for example, used integer math exclusively.

You can check against the very massive Phils VGA Benchmark Database to see this core is performing around the 486 SX/DX 33 level.
https://docs.google.com/spreadsheets/d/ ... edit#gid=0
This table is great and I think it really helps estimating the results of these improvements.

This new Core version will fall squarely on 486DX33 territory (comparing PCPBench FPS, Doom FPS and Realticks scores), an AMAZING improvement!
dshadoff wrote: Tue Jul 07, 2020 5:29 am Strictly speaking, the core is similar or slower than a 386 running at the same clock speed (note that the clock speed of this core is 90MHz). However, I believe that it may implement the new 486 instructions (minus the coprocessor). You may not remember 386DX-40 or 486SX2/50, but they existed and would be suitable comparisons for performance (and would likely outmatch the core in its current state). But honestly, it doesn't much matter since there were so many other factors speeding up or slowing down machines of that era.
I do remember them, I was quite active on the PC during the 386sx to 486DX4 era, and I am quite familiar with their performance. Great times :)

I think it is clear that the ao486 core is far from optimized, one of the main reasons we cannot compare Mhz to Mhz. That's why we need to look at benchmark scores, to give us a ballpark performance that you can compare to real hardware.
dshadoff wrote: Tue Jul 07, 2020 5:29 am I see the cache-related performance increases as releasing the original potential of the core, but I see other people in this thread wishing for more and more CPU-thirsty games, which eventually will be beyond the reach of this core.

I think it might be interesting to send the core into a new direction like to pursue the NEC PC-98 series of PC-like computers, which might actually be easier than reworking the CPU's pipelining and execution units.
It is obvious that the core would benefit from having SVGA at some point, but for now I'd rather see it be more accurate with better performance and stability, including less bugs with EMM (there is still something wonky with it's memory management).

Would love to see a NEC PC-98 and/or Tandy cores (branched from AO486), but I see them more as separate cores because they are targeting a more specific kind of hardware.
bbond007
Top Contributor
Posts: 519
Joined: Tue May 26, 2020 5:06 am
Has thanked: 85 times
Been thanked: 198 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by bbond007 »

dshadoff wrote: Tue Jul 07, 2020 5:29 am Strictly speaking, the core is similar or slower than a 386 running at the same clock speed (note that the clock speed of this core is 90MHz). However, I believe that it may implement the new 486 instructions (minus the coprocessor). You may not remember 386DX-40 or 486SX2/50, but they existed and would be suitable comparisons for performance (and would likely outmatch the core in its current state). But honestly, it doesn't much matter since there were so many other factors speeding up or slowing down machines of that era.
I feel the build I am testing is somewhere between 386DX-40mhz and 486SX-25mhz performance wise which is fantastic!
ao486_SI.png
ao486_SI.png (364.12 KiB) Viewed 9184 times
Beeble
Posts: 99
Joined: Sun May 24, 2020 9:04 pm
Has thanked: 16 times
Been thanked: 12 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Beeble »

Those benchmarks are an indicator, but performance varies n comparrison.

Wing Commander 2 runs on the Mister like a 486 DX50 at least I would say, which doesnt reflect in the synthetic benchmarks.

Impression may vary depending on scenario I assume.
Neo666
Posts: 15
Joined: Sun May 24, 2020 8:31 pm
Has thanked: 1 time

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Neo666 »

Just tried ao486_Cache3.zip core that bbond007 posted earlier - great speed improvement over official core - Doom runs a lot better!

However, I'm getting no music from the Sound Blaster for some reason, same VHD has SB music with official core. Anyone else had this issue?

Thanks
User avatar
NightShadowPT
Posts: 208
Joined: Mon May 25, 2020 9:56 am
Has thanked: 5 times
Been thanked: 9 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by NightShadowPT »

Beeble wrote: Tue Jul 07, 2020 7:18 am Those benchmarks are an indicator, but performance varies n comparrison.

Wing Commander 2 runs on the Mister like a 486 DX50 at least I would say, which doesnt reflect in the synthetic benchmarks.

Impression may vary depending on scenario I assume.
That's a fair point.

I guess it will depend if the game is dependent on the less well implemented parts for the core or not.
lroby74
Posts: 111
Joined: Tue May 26, 2020 2:59 pm
Has thanked: 127 times
Been thanked: 15 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by lroby74 »

Neo666 wrote: Tue Jul 07, 2020 10:30 am Just tried ao486_Cache3.zip core that bbond007 posted earlier - great speed improvement over official core - Doom runs a lot better!

However, I'm getting no music from the Sound Blaster for some reason, same VHD has SB music with official core. Anyone else had this issue?

Thanks
Do you have SET BLASTER string in Autoexec.bat?
Something like this : SET BLASTER = A220 I5 D1 H5 P330
Neo666
Posts: 15
Joined: Sun May 24, 2020 8:31 pm
Has thanked: 1 time

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Neo666 »

Yes, it's working just fine with the official build, but the same VHD with the same settings has no Souind Blaster music on the test core - sound effects are playing though
User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 152 times
Been thanked: 51 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by tontonkaloun »

Neo666 wrote: Tue Jul 07, 2020 11:16 am Yes, it's working just fine with the official build, but the same VHD with the same settings has no Souind Blaster music on the test core - sound effects are playing though
Yes, you're right ! no music for example with doom2
User avatar
laserdisc
Posts: 3
Joined: Mon May 25, 2020 5:04 am
Has thanked: 1 time

Re: Breakthrough for the ao486 core announced - Cache

Unread post by laserdisc »

So for laughs I thought I would take my GOG.com install of Xwing Collector's Edition and place it into it's own VHD (to act as a cdrom). And took cache3 for a test drive.
Intro plays with MUCH smoother than release. I get full audio (setup below) but there's still some slight music playback (fluidsynth) slowdown in places as before otherwise most of the time the music plays fine. The joystick doesn't work as with the release version it does. Don't know what's happening there. Noticeable performance increase to say the least, colour me impressed.

Setup:
MidiLink: Local - Type: FluidSynth (using basic sf-55 soundfont, nothing fancy here) [Default MidiLink.ini (no changes)]
SoftMPU 1.91
Empty-CD : Fake CDROM driver to load MSCDEX to get a drive letter out of it.
MSDOS: ASSIGN.COM : used this to assign D: (2nd VHD) to E: (MSCDEX assigned driver letter)
AUTOEXEC.BAT : "SET BLASTER=A220 I5 D1 P330"
Xwing set to use General Midi at port 330
PikWik
Posts: 256
Joined: Sat May 30, 2020 7:00 pm
Has thanked: 192 times
Been thanked: 71 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by PikWik »

so cool to see ao486 getting more attention and progress.
looks like we may be closer to having a proper core for all the classic DOS games of late 80s and 90s !

:ugeek:
User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 152 times
Been thanked: 51 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by tontonkaloun »

with the "last" release, the sound spits a little (doom for example)
lroby74
Posts: 111
Joined: Tue May 26, 2020 2:59 pm
Has thanked: 127 times
Been thanked: 15 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by lroby74 »

Neo666 wrote: Tue Jul 07, 2020 11:16 am Yes, it's working just fine with the official build, but the same VHD with the same settings has no Souind Blaster music on the test core - sound effects are playing though
OPL3 in OSD?
FPGAzumSpass
Core Developer
Posts: 380
Joined: Sat May 23, 2020 12:55 pm
Has thanked: 38 times
Been thanked: 383 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by FPGAzumSpass »

NightShadowPT wrote: Tue Jul 07, 2020 12:51 am
bbond007 wrote: Mon Jul 06, 2020 10:00 pm This is a test of the latest where FPGAzumSpass has disabled the (faulty) ao486 level 1 cache for an additional boost!

--> https://youtu.be/y9CycqjfOxY
What does this mean? That it will be possible to implement a more efficient L1 Cache to boost performance even further? Or just that in the FPGA implementation you don't need L1 and L2 caches?
Yes it would boost even further.

It is still not understood why enabling the Level 1 cache hangs up the core, but in either case it was kind of a slow cache anyway with 3 cycles latency from cache request to response.
L1 cache is more difficult than L2, as it must keep coherency, but i guess at some point we get it back or a new one.
However, don't expect a huge performance gain from it.. The best that could happen is 4-5 cycles less latency.

That may lead to something like additional 30% more performance, which is nice, but not the big jump anymore.
User avatar
NightShadowPT
Posts: 208
Joined: Mon May 25, 2020 9:56 am
Has thanked: 5 times
Been thanked: 9 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by NightShadowPT »

FPGAzumSpass wrote: Wed Jul 08, 2020 4:11 am
NightShadowPT wrote: Tue Jul 07, 2020 12:51 am
bbond007 wrote: Mon Jul 06, 2020 10:00 pm This is a test of the latest where FPGAzumSpass has disabled the (faulty) ao486 level 1 cache for an additional boost!

--> https://youtu.be/y9CycqjfOxY
What does this mean? That it will be possible to implement a more efficient L1 Cache to boost performance even further? Or just that in the FPGA implementation you don't need L1 and L2 caches?
Yes it would boost even further.

It is still not understood why enabling the Level 1 cache hangs up the core, but in either case it was kind of a slow cache anyway with 3 cycles latency from cache request to response.
L1 cache is more difficult than L2, as it must keep coherency, but i guess at some point we get it back or a new one.
However, don't expect a huge performance gain from it.. The best that could happen is 4-5 cycles less latency.

That may lead to something like additional 30% more performance, which is nice, but not the big jump anymore.
First of all, thank you for your work on this core... it's great to see it getting some love.

It has been a long time since I've been so excited at the progress on a core and the potential to achieve new heights.

I would argue that 30% is still a considerable speed boost (not when you compare it to 150%, but still), putting the core speed anywhere between a 33--50Mhz 486DX, allowing most MS-DOS games to be played.

Thanks again for all your work.
dshadoff
Core Developer
Posts: 534
Joined: Sun May 24, 2020 9:30 pm
Has thanked: 19 times
Been thanked: 141 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by dshadoff »

The good news is that as the number of total cycles per instruction goes down (for example due to L2 cache), each additional cycle of gain has an increasing percentage impact...
Neo666
Posts: 15
Joined: Sun May 24, 2020 8:31 pm
Has thanked: 1 time

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Neo666 »

lroby74 wrote: Tue Jul 07, 2020 7:36 pm
Neo666 wrote: Tue Jul 07, 2020 11:16 am Yes, it's working just fine with the official build, but the same VHD with the same settings has no Souind Blaster music on the test core - sound effects are playing though
OPL3 in OSD?
OPL2 or OPL3 both have no Sound Blaster music, but do have sound effects with test version 3 - to be clear the exact VHD and settings work with offical version with music and sound effects.

Here are my boot config files - maybe I have something set wrong?

autoexec.bat

Code: Select all

@ECHO OFF
set BLASTER=A220 I5 D1 T2
PATH=C:\;C:\DOS;C:\QEMM
GOTO %CONFIG%

:QEMM
C:\QEMM\LOADHI /R:2 /RES=4272 /SQT=FC00-FCFF DOSKEY
GOTO END

:QEMM_SOFTMPU
C:\QEMM\LOADHI /R:1 C:\SOFTMPU /MPU:330 /OUTPUT:COM1
C:\QEMM\LOADHI /R:2 /RES=4272 /SQT=FC00-FCFF DOSKEY
GOTO END

:QEMM_IRQ_SOFTMPU
C:\QEMM\LOADHI /R:1 C:\SOFTMPU /SB:220 /IRQ:5 /MPU:330 /OUTPUT:COM1
C:\QEMM\LOADHI /R:2 /RES=4272 /SQT=FC00-FCFF DOSKEY
GOTO END

:HIMEM
:HIMEM_EMM386
DOSKEY

:END
config.sys

Code: Select all

[MENU]
MENUITEM=HIMEM
MENUITEM=HIMEM_EMM386
MENUITEM=QEMM
MENUITEM=QEMM_SOFTMPU
MENUITEM=QEMM_IRQ_SOFTMPU

[HIMEM]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF

[HIMEM_EMM386]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICEHIGH=C:\DOS\EMM386.EXE NOEMS X=A000-C7FF I=C800-EFFF

[QEMM]
device=c:\qemm\dosdata.sys
device=c:\qemm\qemm386.sys ram aram=c800-dfff r:1
device=c:\qemm\dos-up.sys @c:\qemm\dos-up.dat

[QEMM_SOFTMPU]
device=c:\qemm\dosdata.sys
device=c:\qemm\qemm386.sys ram aram=c800-dfff r:1
device=c:\qemm\dos-up.sys @c:\qemm\dos-up.dat

[QEMM_IRQ_SOFTMPU]
device=c:\qemm\dosdata.sys
device=c:\qemm\qemm386.sys ram aram=c800-dfff r:1
device=c:\qemm\dos-up.sys @c:\qemm\dos-up.dat

[COMMON]
DOS=HIGH
FILES=50
BUFFERS=50
LASTDRIVE=Z
DEVICE=C:\DOS\MOUSE.SYS
rem SHELL=C:\COMMAND.COM C:\ /P
lroby74
Posts: 111
Joined: Tue May 26, 2020 2:59 pm
Has thanked: 127 times
Been thanked: 15 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by lroby74 »

please try these :
SET BLASTER = A220 I5 D1 H5 P330
in autoexec.bat
Neo666
Posts: 15
Joined: Sun May 24, 2020 8:31 pm
Has thanked: 1 time

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Neo666 »

lroby74 wrote: Wed Jul 08, 2020 10:11 am please try these :
SET BLASTER = A220 I5 D1 H5 P330
in autoexec.bat
Thanks for the suggestion, but still same issue - I think I'll just wait for the official release - got a nice taste of the performance increases coming.
bbond007
Top Contributor
Posts: 519
Joined: Tue May 26, 2020 5:06 am
Has thanked: 85 times
Been thanked: 198 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by bbond007 »

tontonkaloun wrote: Tue Jul 07, 2020 2:08 pm Yes, you're right ! no music for example with doom2
Doom seems to have lost its FM sound in the version that enabled 32bit cache access, but worked with the first build with cache.

However, other games still seem to work with FM...
User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 152 times
Been thanked: 51 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by tontonkaloun »

bbond007 wrote: Wed Jul 08, 2020 6:53 pm
tontonkaloun wrote: Tue Jul 07, 2020 2:08 pm Yes, you're right ! no music for example with doom2
Doom seems to have lost its FM sound in the version that enabled 32bit cache access, but worked with the first build with cache.

However, other games still seem to work with FM...
it's the same with the ao486_cache2 version
FPGAzumSpass
Core Developer
Posts: 380
Joined: Sat May 23, 2020 12:55 pm
Has thanked: 38 times
Been thanked: 383 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by FPGAzumSpass »

There are known bugs with the cache version and known bugs from earlier.
That's known and we work on it. (well, mainly Sorgelig)

Please use the testversions that float around with caution and only for a little preview.
User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 152 times
Been thanked: 51 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by tontonkaloun »

FPGAzumSpass wrote: Wed Jul 08, 2020 7:40 pm There are known bugs with the cache version and known bugs from earlier.
That's known and we work on it. (well, mainly Sorgelig)

Please use the testversions that float around with caution and only for a little preview.
The improvement of the core is already great!
We are not going to complain !!

:D :D :D :D
Beeble
Posts: 99
Joined: Sun May 24, 2020 9:04 pm
Has thanked: 16 times
Been thanked: 12 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Beeble »

I have the ao486_Cache2.zip running fine with sound. Anything that improves on 3 or 4 worth changing the running system?
User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 152 times
Been thanked: 51 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by tontonkaloun »

Beeble wrote: Thu Jul 09, 2020 9:18 am I have the ao486_Cache2.zip running fine with sound. Anything that improves on 3 or 4 worth changing the running system?
music sound on domm/doom2 ?
Beeble
Posts: 99
Joined: Sun May 24, 2020 9:04 pm
Has thanked: 16 times
Been thanked: 12 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Beeble »

AS mentioned, I have sound running in Doom with ao486_Cache2.zip
Mills
Posts: 83
Joined: Mon Jun 08, 2020 2:52 pm
Has thanked: 15 times
Been thanked: 29 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Mills »

This is great. I hope more people keep working on PC cores and cards (VGA has still some little bugs).

I could not test ao486_Cache2.zip because it did not recognize my VHD images.
User avatar
NML32
Posts: 288
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 272 times
Been thanked: 43 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by NML32 »

Agreed, it's great to see the ao486 core getting updates.
Televicious
Posts: 93
Joined: Mon May 25, 2020 8:23 pm
Been thanked: 4 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Televicious »

I'm curious, ao486 was based on Bochs CPU C++ emulation correct? Is it C++ converted to run in VHDL? Would logic analyzing the actual CPU be better?
I was looking at an Intel project from 2006 where they programmed a Pentium in a Virtex-4 FPGA and used the FGPA as an actual chip replacement in an x86 computer and it resulted in a 27x performance boost over software implementations using very little resources. Closed source project for sure, but is that an end goal with the core? To replace that C++ cpu emulation piece by piece and create a full fledged 486 cpu in fpga?
thorr
Top Contributor
Posts: 1099
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 535 times
Been thanked: 252 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by thorr »

To take it a step further, things like pipelines and branch prediction could be implemented to further improve the CPU implementation. Nothing says it has to exactly be a 486. It just needs to be able to run the x86 instruction set correctly and this can be improved on just like it was with 386 to 486 to Pentium, etc.
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: Breakthrough for the ao486 core announced - Cache

Unread post by Newsdee »

In a way it's true to form, considering that back in the day there was no one single "PC" but rather a range of compatible machines made with slightly different hardware. So this would still be a "PC compatible", with its own performance optimizations, not constrained to one specific implementation (unlike consoles that are much more standardized). It's exciting to follow the development of this! :)
Post Reply