VOGONS


Cyrix 5x86 Register Enhancements Revealed

Topic actions

Reply 40 of 65, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie

Recently I found another tool to set Cyrix registers with, I attached it here. Currently using it with my GX1 and with success. The GX1/MediaGXm has a different register layout so most tools don't work so well.

Few things I've noticed so far:
- FP_FAST seems to give the biggest increase in performance;
- MMX is disabled by default on my machine (or is extended MMX something different?);
- A lot of registers were already optimal (LSSR, MEM_BYP, DTE_EN);
- BTB seems to work when EMM386 is not loaded. With EMM386 and BTB Blood hangs during demo mode almost always at the same spot. Quake sometimes won't run or crash;
- BTB does do +3 frames extra in Quake with no EMM386 running;
- Need to double check but it seems one of the registers causes the timing in Into The Shadows demo by Triton to be off;

Still need to look at CR0 - NW and CD, as WT1 doesn't seem to have any effect.

Attachments

  • Filename
    set6x86-1.3.zip
    File size
    100.15 KiB
    Downloads
    119 downloads
    File license
    Fair use/fair dealing exception

YouTube

Reply 41 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I was about to reply, "I think I've tried set6x86.exe", then I went looking in my files and what I tried is called "6x86set.exe", not "set6x86.exe". I'll have a look at what you attached. The readme mentions that it is for Cyrix 6x86 chips though. I don't think the register layout of the MediaGX is the same as the 6x86 either. Is it closer to the 5x86 or the 6x86?

I had tried BTB on my MediaGX in the past, but it didn't seem stable in Windows. I'm using a GXm chip though, not a GX1. Did you test BTB in Windows with Quake, or just DOS?

Plan your life wisely, you'll be dead before you know it.

Reply 42 of 65, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie

The set6x86 tool doesn't map things but only gives you the ability to read/write bits through the correct ports/to the correct addresses. MediaGXm seems to have some features of both the 5x86 and the 6x86, but both CTCHIP's 5x86 and 6x86 profiles don't map correctly. GXm and GX1 seem to be the same register wise. With set6x86 it's up to the user to check the datasheet of what does what. set6x86 and get6x86 are the same executable but it behaves differently on filename basis.

I've only checked BTB in a DOS/Win31 environment. I do use the EMM386/Himem from Win98 as they play well with MegaEm. EMM386 puts the CPU in virtual mode and perhaps BTB doesn't like that. Win31/Win9X/ME are using virtual mode as well if I'm not mistaken, which might explain why BTB is unstable in Windows but usable in DOS without EMM386.

Last edited by Rawit on 2019-01-16, 23:05. Edited 1 time in total.

YouTube

Reply 43 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

It is a bit curious why Cyrix/National Semi couldn't get branch prediction working on these GXm and GX1 CPUs. These chips were manufactured into the 2000's. BTB works on a 6x86 and on a 5x86 with S1R3. For S0R5 Cx5x86 CPUs, I use a batch file to turn on/off branch prediction when in DOS. On S0R5 CPUs, there are some other [unremarkable] features which need to be disabled when using BTB, hence the batch file. You might want to play with that when testing the GX1 with BTB.

Plan your life wisely, you'll be dead before you know it.

Reply 44 of 65, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie

Some recent discoveries:

Found out that the GX1 does not have LOOP_EN and RSTK_EN. I used the Cyrix GXm databook before, but the AMD GX1 databook shows that those functions were replaced with something else. BTB is also required (0) / off according to this document.

I also discovered that with DOS32A replacing DOS4GW Blood doesn't hang with BTB enabled and EMM386 running.

Last edited by Rawit on 2019-08-03, 18:02. Edited 1 time in total.

YouTube

Reply 45 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I forgot about the utility you enclosed and forgot to test it! Hopefully I'll remember now.

According to which document? When I do a search for RSTK in the PDF databooks I have, nothing turns up.

BTB required? Which document? Is BTB enabled by default on your GX1 chip? Btw, I'm now using a GX1-300 chip in my GX system.

Plan your life wisely, you'll be dead before you know it.

Reply 46 of 65, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie

https://www.amd.com/system/files/TechDocs/goe … tabook-rev5.pdf

BTB is required to be off or 0 according to this. And there is no mention of loop and rstk in it. In your thread for register settings for various Cyrix processors you set those both on ON for the MediaGXm. I thought that was applicable for the GX1 but they seem to differ. Wish I had a NS databook for the GX1.

Last edited by Rawit on 2019-08-03, 15:06. Edited 1 time in total.

YouTube

Reply 47 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Wow, rather offensive to see the AMD logo listed on a Cyrix processor's datasheet.

The AMD Geode GX1 databook is probably the same as National's. I've attached it. Only a few pages difference.

Attachments

Plan your life wisely, you'll be dead before you know it.

Reply 49 of 65, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote:
I have done some testing with BTBT, RLML, and AISP (pits 6, 4, and 3, respectively) of the performance control register using a […]
Show full quote

I have done some testing with BTBT, RLML, and AISP (pits 6, 4, and 3, respectively) of the performance control register using a Cyrix MediaGXm-266.

AISP: This is 0 by default. "All instructions stalled to serialise pipeline"
AISP: When enabled (1), decreased Quake frame rate from 36.2 fps to 20.9 fps
AISP: When enabled (1), decreased DOOM frame rate from 103.6 fps to 62.4 fps
This feature, when enabled, will slow the CPU by 40%. However, if L1 is disabled, it reduces the DOOM score by only 6%

RLML = 0 by default. "Reoder of locked misaligned loads"
RLML: no change in Quake score
RLML: no change in DOOM score

BTBT: Doom score did not increase when setting BTBT enabled.
BTBT: DOOM score did not increase when setting BTBT enabled when BTB also enabled.

BTB: increased DOOM frame rate from 103.6 fps to 107.8 fps.
BTB: not stable in Quake, which is curious because BTB works with DOS Quake with Cyrix 5x86 CPUs. BTB maybe is not DOS stable at 266 MHz, but perhaps is OK at 133 MHz (speculation).

FP_FAST: increased Quake frame rate from 33.1 fps to 36.2 fps.
FP_FAST: did not increase DOOM frame rate (DOOM is ALU-only).

LSSER: increased Quake frame rate from 34.0 fps to 36.2 fps
LSSER: increased DOOM frame rate from 101.1 to 103.6 fps

I've been benching my 233 GX1 build with Phil's benchmark suite while toggeling register enhancements but my Doom fps isn't even close to your results:

Doom: 69.8 fps with a Savage4, 71.6 fps with a G200.
Quake: 30.8 fps with a Savage4, 30.9 fps with a G200.

The Quake results can be explained with the 233 - 266 difference, but your Doom results are something else. I've also noticed that AISP is not available on the GX1, it's been replaced with INC_MGN0 (Bit 0 on the PCR0 register) and I can't find RLML either. FP_FAST is enabled and makes the biggest difference together with a dedicated videocard and faster RAM. Quake went from 15fps to 30fps because of that.

Did you see a huge jump in Doom fps with certain registers? Or did already get close to such fps with no register enhancements activated?

Attachments

YouTube

Reply 50 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Well, I am now using a Cyrix MediaGX1-300 in this system. I found that by reducing the RAM quantity to just 64 MB, I can still run the memory on its fastest settings and maintain a stable system. Not all GX1-300 chips would run reliably at 300 MHz on this system.

So our systems are growing further apart. I'm using a Voodoo Banshee still. I just ran DOOM and I get 780 realtics, so 95.8 fps (no sound). Using Quake shareware version 1.06, I get 40.2 fps (no sound). I am not using Phil's benchmark pack. Your scores will be a little higher if you use DOOM and QUAKE shareware versions. In DOOM, be sure to first enter the game and hit the + key (the one next to the backspace, not the keybad '+') to reduce the green frame around the screen. Then you can exit and run DOOM from the DOS menu. Just run setup first to ensure sounds are off.

I also re-ran Speedsys (enclosed).

Cyrix_MediaGX1-300.png
Filename
Cyrix_MediaGX1-300.png
File size
22.78 KiB
Views
1656 views
File license
Fair use/fair dealing exception
Filename
Cyrix_MediaGX1-300.TXT
File size
6.08 KiB
Downloads
66 downloads
File license
Fair use/fair dealing exception

Plan your life wisely, you'll be dead before you know it.

Reply 51 of 65, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie

Feipoa, thanks for your detailed response. I have the same experience with RAM as you; 48 MB runs at the fastest settings without issues. 144 MB (16 MB on-board) was unstable with the fastest settings and I tried various sticks of RAM that worked in different systems and were 133 Mhz/CL2. For my DOS setup 48 MB is perfect I think.

Your system with the GX1-300 is clocked 28% faster than mine and this is reflected in the increase in memory speed, memory throughput and the Quake framerate (all +/- 28% faster).

I expected the VESA memory speed to be roughly the same though, but the increase in clock does seem to have effects on the PCI bus... or that Banshee is in an entirely different performance league. Both my Savage4 and G200 max. out around 27000-ish but I've seen Speedsys benchmarks with G200's reaching around 44000, so it's probably the CPU/PCI bus.

I'm going to re-test Doom when I have time. What version of Doom did you use? You run it with screen-size on maximum with Doomguy's face still visible?

YouTube

Reply 52 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

The Doom Demo version. Is there more than one version? I thought there was just one. I think its v1.9. As for the window sizes, see these images I took.

I'm not sure how much you can trust the VESA speed info from Speedsys. Best to run game benchmarks.

DOOM_window_incorrect.jpg
Filename
DOOM_window_incorrect.jpg
File size
467.85 KiB
Views
1609 views
File license
Fair use/fair dealing exception
DOOM_window_correct.jpg
Filename
DOOM_window_correct.jpg
File size
434.58 KiB
Views
1609 views
File license
Fair use/fair dealing exception

Plan your life wisely, you'll be dead before you know it.

Reply 53 of 65, by Montgomery

User metadata
Rank Newbie
Rank
Newbie

I finally managed to lay my hands on a Cyrix 5x86 derivative or so i suppose. The chip in question is an ST5x86-100. First of all would you please confirm that it really is a Cyrix 5x86 from a different supplier (SGS-Thomson)? The other problem is with the motherboard it came in. It is currently configured to run the CPU fine (at factory settings) but I would like to make some adjustments. However I cannot find a manual or even jumper settings for it. I have leafed through the TULARC database visually checking the couple of hundred listed boards but none of them is identical with mine. Neither did my search with the the BIOS ID string (11/11/95-ALI-1487/89-ALI5119-00) yield any results. If you could recognize or identify this board and direct me to some jumper settings (CPU voltages, cache options, multiplier would be the most important) I would greately appreciate.

002.jpg
Filename
002.jpg
File size
508.96 KiB
Views
1426 views
File license
Public domain

Also since the setup is working as-is I tried some tests but their results were less than expected.

ST5X86.jpg
Filename
ST5X86.jpg
File size
48.37 KiB
Views
1426 views
File license
Public domain

I cannot seam to be able to set CPU registers. The IBM M9 program has the relevant settings (BTB, LSSER, FP FAST) x-ed out. If I set them either to 0 or 1 and push F3 to write to reg they just drop back to those x-es.

003.jpg
Filename
003.jpg
File size
202.84 KiB
Views
1426 views
File license
Public domain

I would appreciate any tips regarding this situation too.

Reply 54 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I don't have that board. If you are looking for the manual and have already searched thru google, best to start a new post requesting help.

I do not understand why sometimes the IBM utility X-out some features on some chips, but not others. I generally don't use the IBM utility. Use the Peter Moss utility for DOS.

Plan your life wisely, you'll be dead before you know it.

Reply 55 of 65, by Montgomery

User metadata
Rank Newbie
Rank
Newbie

Thank you for your quick answer. You are always of great help and I especially appreciate the promtness of your responses. I will try the Peter Moss program too. (Once I get the motherboard working again because now the RTC stopped counting time. CMOS data is stored but it doesn't tick at all. I read that you had similar issues with slow counting timer, I might need to replace the crystal too.)

Reply 56 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

If I recall, I had some 386 boards whereby the timer wasn't ticking up at the expected rate. I fixed the issue, but don't recall if it was the crystal or a capacitor next to the crystal that as the issue, the capacitor being part of the oscillator circuit.

Plan your life wisely, you'll be dead before you know it.

Reply 57 of 65, by Montgomery

User metadata
Rank Newbie
Rank
Newbie

OK I solved one problem. It seems the CMOS battery acted up in some way because removing it solved my RTC issue. Now I have a loosing CMOS settings when turned off issue though. 😀 Whatever. The more important part is a working timer because Speedsys always hung at the Year2000 bug test while the timer was off.

Now to be on topic here is a screenshot with the best performance settings I could find for the 100Mhz ST chip. The BIOS memory timings were: DRAM speed=Fastest, SRAM speed=2-1-1-1, SRAM waitstate=0, and the 5x86 enhancements were: BTB_EN=on, LSSER=off, LINBRST=on, MEM_BYP=on, FP_FAST=on.

ST5x86 Enhanced with fast memory timings.jpg
Filename
ST5x86 Enhanced with fast memory timings.jpg
File size
51.53 KiB
Views
1378 views
File license
Fair use/fair dealing exception

I have to research a bit but it seems to be quite decent for a 100Mhz chip? The next step would be overclocking it to either 120Mhz (or possibly 150Mhz, but I doubt it could take that much OC) with a 3X multiplier or finding the appropriate settings on the motherboard for 2X50 or 2X66Mhz. So now I'm back to looking for jumper settings for the illusive motherboard.

Reply 58 of 65, by feipoa

User metadata
Rank l33t++
Rank
l33t++

From my experience with "It's ST" 5x86 chips, they are the worst overclockers of the 3 (IBM/Cyrix/ST). Roamer has it that their requirements to qualify chips were rather low. I've tried to overclock mine and it failed immediately.

Plan your life wisely, you'll be dead before you know it.

Reply 59 of 65, by debs3759

User metadata
Rank Oldbie
Rank
Oldbie
Montgomery wrote on 2020-09-04, 12:33:

OK I solved one problem. It seems the CMOS battery acted up in some way because removing it solved my RTC issue. Now I have a loosing CMOS settings when turned off issue though. 😀

The battery is needed to save the settings - removing the battery is one way to reset the CMOS. It sounds like you need a replacement battery, and they are very cheap.

See my graphics card database at www.gpuzoo.com
Constantly being worked on. Feel free to message me with any corrections or details of cards you would like me to research and add.