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 :).
|