The Cyrix Cx486 Family

Cyrix Cx486DRx2 - Intel is certainly not inside :)

Cyrix Challenges 486DX with Cx486DLC (Microprocessor Report, Vol. 6 No. 8, 17 Jun 1992)

The Cyrix Cx486 Family
Cyrix Cx486DRx2
The L1 Cache
Some Good Cyrix Control Software (DOS, OS/2 & UNIX)
Better Cyrix Control Software (OS/2 & DOS)
Improved results with 8570
Caveats & known problems
   8580, Warp 3 & Cx486DRx2 20/40GP
   Cx486DLC & FasMath Coprocessor problem
   16 MHz 8570 note
Evergreen processors?
Some additional links
A Final Word

Content by Tim O'Connor (original archived HERE). Edited by Major Tom.


The Cyrix Cx486 Family

My Cx486DRx2 belongs to the Cyrix family of 386/486 hybrid CPUs, meant primarily to offer increased 486 function to existing 386 systems. The family includes:

Cyrix

Cx486DLC        Cx486SLC        Cx486SLC/e
Cx486DLC2       Cx486SLC2       Cx486SLC/e-V
Cx486DRx        Cx486SRx        Cx486DRu
Cx486DRx2       Cx486SRx2       Cx486DRu2

Texas Instruments

TI486DLC        TI486SLC

Although the focus here is the Cx486DRx2, it does share logic with the other members of this Cyrix DLC/SLC family and therefore the information here *might* be of use to you if you have one of these other processors. The differences between them can be found in the Chiplist, chapter 2.30 and Chapter 2.31. The main points are this: the SLC processors are 386SX (24-bit address bus) replacements and are not to be confused with the IBM 486SLC, whereas the DLC/DR processors are 80386DX replacements. The Texas Instrument processors listed are similar to the Cx486DLC/SLC and are the result of a previous arrangement between the two companies.


Cyrix Cx486DRx2

This is pin-compatible with i80386DX processors and uses the i80486 instruction set. It was engineered to give i80486 function without being a slavish copy of the Intel CPU: it is a product of Cyrix' own work. The average number of clock cycles it takes for this processor to complete an instruction is 4, which if I remember correctly would be the same number-of-cycles-per-instruction needed by the i80386DX. It does not have a floating-point arithmetic unit and thus floating-point math is carried out in software. It is a clock-doubled version of the Cx486DRx, and comes in several clock rate varieties:

16/32 MHz, 20/40 MHz, 25/50 MHz, and 33/66 MHz

...where the first speed is the motherboard speed and the second speed is the processors internal clock speed. The 20/40 and the 25/50 have heat sinks. The clock speed is (as far as I know) permanently enabled and neither requires nor accepts any user intervention.


The L1 Cache

This processor gets a lot of its 'speed' from its 1KB L1 cache. Now here's where this gets interesting... on many motherboards that aren't 'Cyrix aware' this cache will be enabled on boot, but the entire 80386/80486 memory address space (all 4GB of it) will be disabled, turning off the L1 cache for all intents & purposes.

Another issue that gets thrown into this are DMA events: when a device request a direct memory access (like a disk drive) it would change and therefore invalidate the current contents of the L1 cache. The processor has two options available to validate the cache: either the FLUSH input or the BARB input. FLUSH will occur after a DMA event 1) if the processor is instructed to use this input to validate the cache or 2) if the planar is 'Cyrix-aware'. The BARB input is used if FLUSH is not supported by the planar. If you use BARB to validate the contents of the cache it entails more overhead, because the instruction is executed at every memory refresh rather than merely after a DMA event. If your motherboard doesn't support FLUSH, you have no other option than to use the BARB input. Apparently, most 386 boards don't respect FLUSH.

So, we need to find the software that will 1) ascertain the state of the cache, 2) change the cached area of memory if need be, and 3) determine the cache validation method - BARB or FLUSH.


Some Good Cyrix Control Software (DOS, OS/2 & UNIX)

After a bit of searching, I was able to find some Control software out in the great wide world. BE AWARE THE FOLLOWING PROGRAMS ONLY APPLY TO CX486DLC FAMILY CPUs. DON'T BE STUPID.

For DOS (Windows?) you can try Paul Gortmaker's CYRIX100.ZIP This was written specifically for the DLC/SLC processors, but applies to other 'family' members as well. There are two versions of the CYRIX.EXE control program which are well-documented. Now, since this was originally *ix inspired, keep in mind that although DOS is case-insensitive, Gortmaker's CYRIX.EXE isn't. This program was a godsend when I first discovered it. It can simply query the current state of the processor, as well as provide cache control, and control over the DMA validation method. Here's an alternate download location for this archive at leo.org.

For OS/2, there's a device driver CYRIX.SYS that can be loaded in CONFIG.SYS. Unfortunately, we don't know who to thank for this driver, as it's an amazing piece of work. I loaded it right after TESTCFG.SYS, and had no problems with Warp 3. It automagically selected the 'right answers' for my machine, BARB input for DMA validation, and released all 4GB of 80386 memory space to be cached. Unfortunately, it only operates as intended with Warp 3. With OS/2 2.1, the driver loads but is not allowed by the OS to tinker with CPU control registers - CR0. You can use the Gortmaker DOS utility above in conjunction with CYRIX.SYS to query the processor state from within a VDM, but not to alter cache control/DMA validation.

Now, for all you UNIX people out there... you'll have to forgive me because I haven't tried any of this myself. Don't really want to either, but that shouldn't stop you, right?:)

Approach A: If you're a Linuxed PS/2er, you might be able to get by without any additional software by simply altering linux/arch/i386/setup.S in the manner suggested by Linux readme for CX486DRx2. It's the readme.3rd of a larger document which could be of further use to you as well: ps2scsi.tgz.html

Approach B: Linux control software: cyrix-1_00_tar.gz. An alternate download source would also be at ibiblio.org. Louis Ohland passed this on, knowing of a successful installation of this control software for a CX486SRx2. The usage for the subject machine was:

/bin/cyrix -i2 -i3 -i4 -r -c -f -b -k- -e -xCC00,16 modprobe bogo.o

This produced 22.08 bogomips on the subject machine. Again, I'm pretty dumb when it comes to *ix, So use your brain & Good Luck!


Better Cyrix Control Software (OS/2 & DOS)

Just when I thought CYRIX.SYS was the coolest thing since sliced bread Tim Clarke sent me a copy of the original Cyrix software for CX486DRx and CX486SRx that support DOS/Win and OS/2. He did this as a generous public service, with no financial gain on his part. For my part, I hesitated about publicly posting proprietary software. I tried to contact Via, the current owner of the Cyrix name. Received no answer. None.

So, Via, if anybody there reads this: I take no profit here. This is your software & I wouldn't claim otherwise. It runs the processor better than anything else I've yet tried. The software was licensed with the sale of a CPU and it stands to reason that since the only person that can make use of this software is one who also has a Cyrix CX486DRx/CX486SRx CPU, they should have received it with the processor. If a person has purchased a Cx486DRx/SRx secondhand they should have the same computing ability as the original owner. This isn't my preferred way of doing things - But y'all wouldn't answer my e-mails!

So, here it goes, in LOADDSKF 1.44MB floppy format: CX486DRX.ZIP The archived programs support DOS (Win3.1) and OS/2. CX486DRx & CX486SRx CPUs only.

Ed. The 3.30 version supports Dos/WfW/OS2/NT3.5: Cx486DRx2.EXE.

Now the good stuff - Cyrix' own programs do a much better job of controlling the processor. The single largest thing which makes this possible is the ability to enable the processor's pipeline, something all of the other control software discussed here does not do. With the OS/2 version of the control software the caching, pipeline, and DMA validation method can all be controlled through a nifty WPS utility. Furthermore, it works on OS/2 2.1 and Warp 3 (and this time, I know this for a certainty). The machine performs as if it were a slower 486SX... which, if you know Warp 3, you know is an entirely tolerable existence.

For OS/2, the control software, CX486.EXE and FASTIO.EXE, are installed by default in STARTUP.CMD; I had no difficulty moving the executables to CONFIG.SYS in RUN statements because it makes my life simpler. The installation program will create STARTUP.CMD if one doesn't yet exist.


Results

The text table below of Sysbench results should show you how the machine has improved with different hardware - and different Cyrix control software. The difference between 'Configuration I' and 'Configuration IV' has been a very rewarding thing to experience. Why the cruddy FP-marks? No FPU:).

Sysbench 0.9.4e  Condensed Results for 8570, OS/2 Warp 3.  DIVE tests omitted.

                   Configuration I      Configuration II
                   8514/A,              XGA-2,
                   no CPU assist.       no CPU assist

Machine name       IBM 20Mhz 8570       IBM 20Mhz 8570
Processor          Unknown Cyrix xMHz   Unknown Cyrix xMHz
                    stepping 4.15.15     stepping 4.15.15
External cache     0KB                  0KB
Graphics card      IBM 8514/A - 1MB     XGA-2 1MB
Coprocessor        No                   No
Processors         1                    1
RAM                14.24 MB             14.25 MB


Operating System data
OS/2 version       20.30                20.30
CSDLevel           XR03001_             XR0W040_
FIXLevel           Unknown              XR0W040_
Revision number    8.200                8.264
Priority           Dynamic              Dynamic
Maxwait            3                    3
Timeslice          (32,32)              (32,32)
Protectonly        YES                  YES
Swap file size     11.00MB              16.00MB
  ...initially     6.00MB               16.00MB

Video data
Resolution         1024x768x8 bits/pix  640x480x8 bits/pixel
Bytes/scanline     0                    640
Aperture size      0                    307200
PM-Graphics-marks  11.695               11.455
CPU integer-marks  2.821                2.676
CPU FP-marks       0.000                0.000
File I/O marks     383.557              455.835
Memory marks       5.544                6.099
Simultaneous I/O   0.573                0.575
Disk I/O marks     4.558                4.595

                   Configuration III    Configuration IV
                   CYRIX.SYS loaded     CX486.EXE / FASTIO.EXE

                 (OS/2 and hardware configured same as II above)

PM-Graphics-marks  11.507               12.259
CPU integer-marks  3.090                7.228
CPU FP-marks       0.000                0.000
File I/O marks     425.559              443.580
Memory marks       5.450                12.198
Simultaneous I/O   0.575                0.575
Disk I/O marks     4.598                4.688

Known Problems

8580, Cx486DRx2 20/40GP, and Warp 3

Whether or not any driver is used, there is a warning out there for 8580 folks who use this processor. This was also from the Norloff BBS:

=======================================================================
  PS/2 8580 with Cyrix Upgrade Locks Up during OS/2 Warp Installation
=======================================================================

Please Read Entire Document for Full Explanation of Procedures
--------------------------------------------------------------

DESCRIPTION

When the OS/2 Warp 3.0 Installation program prompts for Diskette 1, the
OS/2 logo appears with the message, "Loading Please Wait." The screen
then turns blank, the cursor goes to the top-left corner, and the
diskette-drive light stays on. The system appears to be locked up.
Pressing Ctrl+Alt+Del does not work. You must turn the system off.

The system is a PS/2 8580 with a Cyrix 486DX 20/40 MHz processor, 16 MB
of RAM, 4 MB on the system board, and two memory cards, one with 4 MB
and one with 8 MB. Both cards have 85 ns single in-line memory modules
(SIMMs).



RESOLUTION - This is a hardware problem.

1. Turn on the system, or press Ctrl+Alt+Del if it is already on.

2. When the small white box appears in the upper-left corner, press Alt+F2.
   A list of the drivers that were loaded appears. OS2DASD.DMD was the
   last driver loaded and installed. The cursor then went to the
   upper-left corner and the system locked up.

3. Turn off the system; then remove the 4 MB and 8 MB cards.

4. Turn on the system and continue with the installation. With the 8 MB card
   removed, the system can bypass the problem and complete the installation.

______________________________________________________________________

IBM disclaims all warranties, whether express or implied, including
without limitation, warranties of fitness and merchantability with
respect to the information in this document. By furnishing this
document, IBM grants no licenses to any related patents or copyrights.
Copyright (c) 1994, 1996 IBM Corporation. Any trademarks and product
or brand names referenced in this document are the property of their
respective owners. Consult your product manuals for complete trademark
information.

Cx486DLC & FasMath Coprocessor Problem

Apparently there is a known problem whereby an early Cx486DLC's will crash a system with the one of the Cyrix FasMath Cx387+, Cx83D87, or EMC87 math coprocessors. This is tied to synchronization problems with FSAVE & FSTOR instructions. Later DLC's that have this problem fixed will have the letters AB printed in the lower right hand corner.
Refer to Chiplist Chapter 3.12.1 for details.

For all 16 MHz 8570's with the Cx486DRx2 16/32GP

You will definitely need 85 ns memory (which you should be using anyway, right?) in order to cope with this CPU (so says the Chiplist).


Some additional links

If you've been reading this far, here might be some additional places of interest.

  • I've had exceptionally good luck with my 8570 and it's Cyrix upgrade processor. Somebody else - with a 16 MHz 8570 - didn't. Their story is told HERE.
  • On Fred Spencer's 8580 pages: CPU upgrade options for the 8580 PS/2. Link HERE.
  • For those far, far brighter than me, there's Grzegorz Mazur's x86 site. He has a method for for identifying CPUs by asking the processor directly, even the Cx486DLC family processors. Link HERE.

Evergreen Upgrade Processors

What about my Evergreen processor which is based on a Cyrix core?. Boy, I sure hate to disappoint folks. Fact is, I don't know much about these processors, and I don't actually have one to play with here. I know information on them is sketchy as well & requires a lot of digging. There are architectural differences between some of the Evergreen 386-to-486 replacements based on the TI486SXL2 - a much larger L1 cache, and (I gather) software control required to activate clock-doubling.


Final Word on Cx486DRx2

This has been the main driving force behind this site. I found information on the Cx486DRx2 so widely scattered I felt I had to collect it all together so that somebody else wouldn't have to go through the same hassle. And my 8570's the happier for it. 'Final Word' however, is a bit tongue-in-cheek: I probably will never understand the full depth & breadth of this processor. Yet I've tried to be as accurate & complete as possible here. If there are inaccuracies, please let me know. Any further information on this processor or one of its family will be appreciated... hopefully, I will be able to add to this page and fill in some more gaps. For all you folks who've done me a kindness by sending me Cyrix-related stuff- a very big thank you :).

Content created and/or collected by:
Louis F. Ohland, Peter H. Wendt, David L. Beem, William R. Walsh, Tatsuo Sunagawa, Tomáš Slavotínek, Jim Shorney, Tim N. Clarke, Kevin Bowling, and many others.

Ardent Tool of Capitalism is maintained by Tomáš Slavotínek.
Last update: 13 Oct 2024 - Changelog | About | Legal & Contact