VOGONS


Cyrix DX2-80 slower than DX2-66?

Topic actions

First post, by Galaxian

User metadata
Rank Newbie
Rank
Newbie

Playing around with my 486 build, I've tried a few CPUs from Cyrix.
Ranging from a DX2-50, to a 5x86 (found out that one isn't compatible with my board though)
When "upgrading" from a DX2-66 to a DX2-80 I noticed a drop in performance.
I suspect it might have something to do with the required jumper settings for the 80MHz processor,
because it requires to be set up for a 40MHz processor and then the CPU is responsible for its own internal clock.

The BIOS definitely sees it as 80MHz, so why is it seemingly slower than the 66MHz variant?

Other specs:

Seanix 486VLP3 Motherboard
64MB FPM RAM (2x32MB) (72 pin SIMMs)
Generic I/O controller
256k cache on board
1MB Cirrus Logic GD5428 (VESA)
Soundblaster VIBRA16
and of course your typical smattering of drives, including a floppy emulator.

Reply 1 of 28, by derSammler

User metadata
Rank l33t
Rank
l33t

What exactly is the "66MHz variant"? The Intel DX2-66 is most likely faster than the Cyrix DX2-80. Also keep in mind that VLB cards usually use a wait state if FSB is >33 MHz, so video speed may suffer.

btw, what did you use to check performance after all?

Reply 2 of 28, by Galaxian

User metadata
Rank Newbie
Rank
Newbie

The CPUs in question are both from Cyrix, and the noted performance drop has been observed in Windows 98 itself, as well as in games such as DOOM which ran decently on the 66 and is a touch choppy on the 80.
I've noticed a general increase in response times when opening folders, for example. It takes longer to "draw" on the screen.
Or when selecting multiple items, it seems to struggle.

I never noticed any of these things with the 66MHz DX2 but I am seeing them with the 80MHz.

Shouldn't the 80 definitely be faster, seeing as DX2 CPUs are clock doubled?
That would mean the 66 is 33x2 and the 80 is 40x2, either way seems like it should be faster, not slower.

Reply 3 of 28, by amadeus777999

User metadata
Rank Oldbie
Rank
Oldbie

Just set the bus to 40mhz with the old chip and see if it struggles there too. Is your board an OEM board? These tend to add waitstates. If it is indeed an OEM board then you may have to change jumpers on the fly to prevent wait states from being inserted.

Reply 4 of 28, by appiah4

User metadata
Rank l33t++
Rank
l33t++

Does the VLB VGA have an onboard jumper to use it at FSB 40MHz+? Have you set it? Your VLB card may be misbehaving at the higher FSB.

Check your board to verify that it is running at 0 WS.

Finally it might just be that your I/O controller does not like 40MHz and is messing up the system performance.

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 5 of 28, by derSammler

User metadata
Rank l33t
Rank
l33t

@Galaxian:

What you describe is exactly what is expected to happen: you lose video performance since the VGA card can not work with zero waitstate when using an FSB of 40 MHz. That's the drawback you have in this case for a little more CPU processing power.

Reply 8 of 28, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

I'm playing with an Intel DX2-66 and a Cx486DX2-80 and seeing a similar situation.
When I set the bus speed to 40MHz but leave the VLB jumper on <= 33 MHz and CPU speed jumper on <= 33 MHz, the numbers in Speedsys for memory reads bigger than 256kb (my cache size) get worse than the DX2-66.
The speed in the top left corner reads 27 MHz which suspiciously is 2/3 of 40.
The video RAM speed and disk buffered/linear read speeds do get better though.

Sometimes when booting freshly powered up the system locks up with the video BIOS copyright on the screen, sometimes not. I almost wonder if the BIOS is de-tuning the wait states, etc. overriding the jumper settings when it does work.

Very well, I suppose I'm retracing why there is a DX4-100 and Am5x86-133.

Reply 9 of 28, by candle_86

User metadata
Rank l33t
Rank
l33t

I noticed similar with my St dx2-80 aka cyrix, in Doom and 3d bench it scores slightly slower than the dx2-66 from Intel I had. I'm keeping it though because everyone does Intel or maybe and, but who does an ST 486.

Reply 10 of 28, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
candle_86 wrote on 2020-07-11, 05:08:

I noticed similar with my St dx2-80 aka cyrix, in Doom and 3d bench it scores slightly slower than the dx2-66 from Intel I had. I'm keeping it though because everyone does Intel or maybe and, but who does an ST 486.

Do you think it's just that Cyrix was the half-baked cheap option, or it's indeed all the slow-downs induced by raising the bus to 40 MHz?

Reply 11 of 28, by Anonymous Coward

User metadata
Rank l33t
Rank
l33t

I don't know how your motherboard handles wait states. Usually the VLB wait state will be set by a jumper on the motherboard. Memory wait states on 486 boards are normally set in the BIOS, but I have seen some older 486 designs that used jumpers.

Sometimes the memory wait state jumpers are "hidden" in the user manual by lumping them in with CPU settings. If this is the case, you can probably figure out which one it is by trial and error.

Most VLB cards will work fine at 40MHz with 0ws. I've only encountered one or two that choked.

If properly tuned, a Cyrix based 486 at 80 should not be slower than an Intel DX/2-66. Cyrix chips were only supposed to be 5-10% slower than their intel counterparts.

"Will the highways on the internets become more few?" -Gee Dubya
V'Ger XT|Upgraded AT|Ultimate 386|Super VL/EISA 486|SMP VL/EISA Pentium

Reply 12 of 28, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Do you run the Cyrix' L1 cache in write back or write through mode?

I've got a motherboard that allows Cyrix processors (the older ones without "standard pinout") to be operated in L1 write back, same with Pentium overdrive. However, all other socket 3 processors can only be operated in L1 write through.
For best performance: Is manufacturers imprinted recommendation a LIE?

Reply 14 of 28, by mkarcher

User metadata
Rank l33t
Rank
l33t
Galaxian wrote on 2019-07-28, 10:21:
When "upgrading" from a DX2-66 to a DX2-80 I noticed a drop in performance. I suspect it might have something to do with the req […]
Show full quote

When "upgrading" from a DX2-66 to a DX2-80 I noticed a drop in performance.
I suspect it might have something to do with the required jumper settings for the 80MHz processor,
because it requires to be set up for a 40MHz processor and then the CPU is responsible for its own internal clock.

The BIOS definitely sees it as 80MHz, so why is it seemingly slower than the 66MHz variant?

My money is on "chipset autoconfiguration". Most BIOSes have the option to auto-configure RAM and cache timings automatically depending on the bus clock. On some BIOSes, auto-config is the only option (and no timing configuration is displayed in the advanced chipset setup). On most BIOSes, you can set auto-config to "disabled" and manually configure timings.

Often, the chipset specification allows full L2 cache performance (called "2-1-1-1" read burst with zero-wait state writes in most setup variants, called "2-1-2" in other setup variants) is supported only up to 33MHz. In this performance settings, transferring one cache line from L2 into L1 takes 5 cycles, which is 150ns at 33MHz. At 30MHz, the auto-configuration falls back to a "2-2-2-2" read burst, which needs 8 cycles to transfer one cache line. At 40 MHz bus clock, 8 cycles is 200ns. This is a considerable performance drop.

At you own risk, you can try running your board at full L2 speed even at 40MHz. The same caveats as for overclocking applies: it might crash or corrupt data, as it is most likely out-of-spec.

Reply 15 of 28, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Anonymous Coward wrote on 2020-07-11, 14:18:
I don't know how your motherboard handles wait states. Usually the VLB wait state will be set by a jumper on the motherboard. M […]
Show full quote

I don't know how your motherboard handles wait states. Usually the VLB wait state will be set by a jumper on the motherboard. Memory wait states on 486 boards are normally set in the BIOS, but I have seen some older 486 designs that used jumpers.

Sometimes the memory wait state jumpers are "hidden" in the user manual by lumping them in with CPU settings. If this is the case, you can probably figure out which one it is by trial and error.

Most VLB cards will work fine at 40MHz with 0ws. I've only encountered one or two that choked.

If properly tuned, a Cyrix based 486 at 80 should not be slower than an Intel DX/2-66. Cyrix chips were only supposed to be 5-10% slower than their intel counterparts.

What I did was set the bus speed to 40MHz, but I left the other two jumpers - VLB speed <= 33 MHz and CPUCLK <= 33 MHz, on the settings for a 33 MHz bus.

That's the thing, some things were faster and others were slower. It's the memory graph in the bottom right corner where the read graph, once it got past 256K, dropped to about 19MB/s for the DX2-66 and 15 MB/s for the DX2-80.

This is what made me suspicious about the 27 MHz in the top left corner.

Reply 16 of 28, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Disruptor wrote on 2020-07-11, 16:16:

Do you run the Cyrix' L1 cache in write back or write through mode?

I've got a motherboard that allows Cyrix processors (the older ones without "standard pinout") to be operated in L1 write back, same with Pentium overdrive. However, all other socket 3 processors can only be operated in L1 write through.
For best performance: Is manufacturers imprinted recommendation a LIE?

It's in write through. The write in in Speedsys is a straight horizontal line about as fast as an L2-cached read which seems consistent with that. No jumpers on the board for write back. The board is also 5V only so it may be too old. There is a BIOS setting for L2 write back, though, and the performance seems consistent with it being on.

Reply 17 of 28, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2020-07-11, 17:23:
My money is on "chipset autoconfiguration". Most BIOSes have the option to auto-configure RAM and cache timings automatically de […]
Show full quote
Galaxian wrote on 2019-07-28, 10:21:
When "upgrading" from a DX2-66 to a DX2-80 I noticed a drop in performance. I suspect it might have something to do with the req […]
Show full quote

When "upgrading" from a DX2-66 to a DX2-80 I noticed a drop in performance.
I suspect it might have something to do with the required jumper settings for the 80MHz processor,
because it requires to be set up for a 40MHz processor and then the CPU is responsible for its own internal clock.

The BIOS definitely sees it as 80MHz, so why is it seemingly slower than the 66MHz variant?

My money is on "chipset autoconfiguration". Most BIOSes have the option to auto-configure RAM and cache timings automatically depending on the bus clock. On some BIOSes, auto-config is the only option (and no timing configuration is displayed in the advanced chipset setup). On most BIOSes, you can set auto-config to "disabled" and manually configure timings.

Often, the chipset specification allows full L2 cache performance (called "2-1-1-1" read burst with zero-wait state writes in most setup variants, called "2-1-2" in other setup variants) is supported only up to 33MHz. In this performance settings, transferring one cache line from L2 into L1 takes 5 cycles, which is 150ns at 33MHz. At 30MHz, the auto-configuration falls back to a "2-2-2-2" read burst, which needs 8 cycles to transfer one cache line. At 40 MHz bus clock, 8 cycles is 200ns. This is a considerable performance drop.

At you own risk, you can try running your board at full L2 speed even at 40MHz. The same caveats as for overclocking applies: it might crash or corrupt data, as it is most likely out-of-spec.

I replied to an old thread so I'm the recent one here, but what you're saying sounds like my suspicion. Would that also be consistent with Speedsys displaying 27 MHz?

The only performance-related options in the BIOS that I don't already understand are one about waiting 1T or none for FPU (I set it to none), and 1T or 2T for ELBA# (won't boot on 1T, default is 2T).

I think I have the jumpers set to max out all the VLB stuff now, and my issue is on some cold boots it locks up at the VGA BIOS copyright screen, and when it does boot, the memory graph in Speedsys beyond 256K is pretty unimpressive. Raw CPU performance, VESA Memory throughput, L1 and L2 cached memory, and disk I/O all look better though.

I know how to write asm to do i/o port reads and writes and such if I were curious about settings that don't show in the BIOS, but there seems to be very little documentation at that depth about the UMC 82C491F.

Reply 18 of 28, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote on 2020-07-11, 18:43:

It's in write through. The write in in Speedsys is a straight horizontal line about as fast as an L2-cached read which seems consistent with that. No jumpers on the board for write back. The board is also 5V only so it may be too old. There is a BIOS setting for L2 write back, though, and the performance seems consistent with it being on.

I don't give a penny for Speedsys' write line on a 486. On this architecture it seems to be not affected by write back cache at all.
And I also have noticed the 27 MHz of Speedsys for my Cx486-DX2/80. It is definitively wrong for this CPU.

Reply 19 of 28, by mkarcher

User metadata
Rank l33t
Rank
l33t
jakethompson1 wrote on 2020-07-11, 18:41:
Anonymous Coward wrote on 2020-07-11, 14:18:

I don't know how your motherboard handles wait states. Usually the VLB wait state will be set by a jumper on the motherboard. Memory wait states on 486 boards are normally set in the BIOS, but I have seen some older 486 designs that used jumpers.

That's the thing, some things were faster and others were slower. It's the memory graph in the bottom right corner where the read graph, once it got past 256K, dropped to about 19MB/s for the DX2-66 and 15 MB/s for the DX2-80.

This is what made me suspicious about the 27 MHz in the top left corner.

The memory graph seems to indicate that I indeed was right about "chipset autoconfiguration" being the cause of the problem, but I explained about L2 timings, whereas the problem is in fact about main memory timing. (Nearly?) all 486 consumer boards derive the memory timing (how long to wait after the falling edge on /RAS to switch to the column address, how long to wait after that to provide the falling edge on /CAS, how long to wait after /CAS being pulled low until the data output is valid, how long /CAS needs to be low and how long /CAS needs to be high after that before the next fast-page-mode access may occur) from the main oscillator, sometimes allowing specification in half-cycles. This means the resolution for setting these time is 30/15ns with 33MHz FSB, and 25/12.5ns with 40MHz FSB. To compensate for the faster timing, the BIOS is likely increasing the number of clocks or half-clocks to keep in specification with some memory timing requirements.

As far as I know, BIOS auto-configuration on 486 boards usually tunes memory access times to be suitable for 80ns or 70ns RAM. If you have 60ns RAM installed, it is likely that the cycles counts you use at 33MHz would also work at 40MHz.

Finally, some thoughts about the numbers: 19MB/s is 1.19 cache lines per microsecond, or 840ns per cache line. This is around 28 cycles at 33MHz per cache line. 15MB/s is 0.94 cache lines per microsecond, or 1070 ns per cache line. This is around 43 cycles per cache line. The raw cycle count will be a bit lower, as the memory is also busy doing other things like refresh, but those numbers seem excessively slow for reading. Are you sure you did not mix up read timings and move timings? For moving, data is transferred twice over the bus, so speeds between 15MB/s and 20MB/s make much more sense.