Software

Q. Can I run Windows NT 4.0 on my Cyrix 6x86?

A. Yes, Microsoft has stressed that NT 4.0 is stable on all certified platforms, including ALL revisions of the 6x86.

Microsoft did, however, discover a bug in the Cyrix 6x86 processor during stress testing of NT 4.0 that caused the operating system to crash. To guarantee Windows NT 4.0 stability, a workaround was developed by both companies. In the workaround, the chip's internal cache operating mode is changed from write-back to write-through when a problematic 6x86 is discovered. The result is a performance degradation of approximately 20%-30%.

Cyrix says it hasn't identified the specific problem in its 6x86 processor that caused the instability during Microsoft's testing. Byte Magazine has confirmed that a newer version of the 6x86 (designated as revision 2.7 by Cyrix) doesn't exhibit the slowdown, indicating that NT can distinguish between buggy and fixed versions of the chip. If NT 4 detects one of these newer, revised chips, it runs at standard speed with the chip's internal cache fully enabled. Cyrix was unable to specify what changes were made in the chip or the manufacturing process between revisions 2.6 and 2.7 that may have fixed the problem. Company officials said it is Cyrix's corporate policy not to discuss the specifics of the company's chip revisions.

Steve Tobak, vice president of marketing at Cyrix, is quoted as saying that a software fix would be offered if one is available. Or, he added, at the users' option, Cyrix will replace the chip. Current versions of the chip remedy the problem.

Q. Are there any other operating systems that have the 6x86 performance problem found in Windows NT 4.0?

A. No. This problem only occurs in Windows NT 4.0. There are no performance problems with the Cyrix 6x86 on any other operating system regardless of the 6x86 revision that you have. This is not an issue for Windows 3.1, Windows 95, Windows NT 3.51, OS/2, and LINUX users.

Q. Is there a software fix to remedy the Windows NT 4.0 performance problem found in 6x86 processors that are pre-revision 2.7?

A. I have discovered many utilities that claim to do this very thing. They are available for download on my Files and Utilities page. Cyrix or IBM did not write these utilities, however. Regardless, I have received many comments from readers stating that these utilities work.

Windows NT 4.0 changes the chip's internal cache operating mode from write-back to write-through when a problematic 6x86 is discovered. This is what causes the 20%-30% performance degradation. The NT 4.0 utilities set Bit 29 (NW or Not-Write Back) in the CR0 to 0 so the processor operates in Write-Back cache mode. More simply, it manipulates the internal registers of the 6x86 to change the internal cache operating mode back to write-back. This causes NT 4.0 to run at its standard speed.

W. Aaron Waychoff had the following comments after installing the nt406x86.zip utility:

I have a rev. 2.6 150+ running NT 4.0. I applied the patch last night (see notes below) and came up with a huge performance increase.

Winbench96 CPUMark 32 results:

Before: 111
After: 157
After overclocking to 133MHZ: 177

I recommend this patch highly. I took a look at the driver and cannot see anything out of sorts with it either. (no "suspicious code")

A note on installation: Follow the instructions exactly to get it to install the first time. (You really do need to put it on a floppy) Also, you must manually put a shortcut to the batch file that ships with it in the All Users startup group. It is supposed to do something like this, but it does not. The driver will not load without this step. I tried to set it to Automatic startup, but that also fails. The only problem to this approach is that someone must log into the machine to activate the WB cache mode. This normally isn't a problem, unless you have a network server...

Mark Smith also sent me comments about the same utility:

Here are my results. With PUZZLE my time went from 1.54s to .83s. I am also including the results of a NT benchmark utility called NBENCH. It is a basic low level bench mark utility.

Here are the results before the patch.

CPU Performance, MOPs/sec
Integer Speed: 31.3
Floating Speed: 10.2

Here are the results after applying the patch.

CPU Performance, MOPs/sec
Integer Speed: 122.0
Floating Speed: 11.2

My integer performance went up by 400% and my memory performance went up by~430%. This clearly shows how important an L1 cache is. Overall my system is much more responsive. Lastly, the patch places itself in the startup folder of the Administrator account. Drvon.bat needs to be copied to the ALL USERS tree of the start menu to make it available to all logins.

Q. Is there really a bug with Windows NT 4.0 and 6x86 processors that are pre-revision 2.7 or is it Microsoft’s fault?

A. This has been one of the most hotly contested newsgroup debates since the issue has become public. It seems as if peoples opinions are split down the middle. Some people think that there really is a bug in older Cyrix processors that causes problems with Windows NT 4.0 and Cyrix quietly corrected it in later chip revisions. Others think that it is either a Microsoft conspiracy against Cyrix because the problem did not show up in public betas or that Microsoft did a poor job of testing Windows NT 4.0 on the Cyrix platform and used equipment not certified by Cyrix. Neither company has accepted responsibility for the problem. Cyrix continues to blame Microsoft and Microsoft continues to blame Cyrix.

Q. How does a Cyrix 6x86 (post-revision 2.7) perform when running Windows NT?

A. According to PC Magazine, the Cyrix 6x86 does not decisively outperform the Pentium when running Windows NT as it does when running Windows 95. Although the 6x86 makes use of several architectural features that are present in the Pentium Pro but lacking in the Pentium Classic, expect the 6x86 to slightly exceed Windows NT performance produced by the Pentium.

Q. Why does Windows 95 identify my Cyrix 6x86 as a 486? Is this a problem?

A. The algorithm used in Windows 95 to detect the CPU was completed before the Cyrix 686 was released and therefore the Cyrix 686 responds to the algorithm just as a 486 does. The 6x86 processor is, however, certified by Microsoft for Windows 95. The OEM Service Release 2 of Windows 95 detects the 6x86 properly. It identifies the 6x86 as a CyrixInstead chip.

This misrepresentation in Windows 95 can be a problem with some games that require a Pentium processor to run and query the CPU class to obtain the CPU type to verify that a Pentium system is being used. This query will return 486, unfortunately, on a Cyrix 6x86 based system and the game is rendered unplayable. I have experienced this personally with Assault Rigs from Psygnosis. Psygnosis supplied a small patch to get around the problem. There are many other games that also behave in this manner.

Q. Is there a workaround to the Windows 95 identification problem?

A. I agree that the Windows 95 identification problem does suck, but here is a workaround. You can get the Windows 95 system to report a 6x86 as a Pentium by having it query the CPUID instruction for a CPU ID. The CPUID is disabled by default. You can enable it with the ibmm1.exe program and Windows 95 will report a Pentium as being used.

Using ibmm1.exe, set MAPEN in CCR3 to 1. This will allow the remaining control registers to be accessible and manipulated. In CCR4, the CPUID bit is visible; set that to 1.

Once set, Win95a will report a Pentium as the CPU. Win95a must be started with the bit already set.

Unfortunately, the processor clears the CPUID bit on a reset. There is no way to save the setting unless you put a program into your autoexec.bat which will set this bit every time the machine boots.

Download 686_p.exe or 6xopt078.zip from my Files & Utilitiesand put it in your autoexec.bat. Select one or the other, but you do not need them both. These files will set this bit for you everytime you start Windows 95. Please visit my Files & Utilities page for additional CPUID utilities.

Warning! Please read the following warning from the 686 data book if you choose to run one of the CPUID utilities:

To prevent potential conflicts with other devices which may use ports 22 and 23h to access their registers, the remaining registers (indexes D0-FDh) are accessible only if the MAPEN(3-0) bits in CCR3 are set to 1h. See Figure 2-16 (Page2-28) for more information on the MAPEN(3-0) bit locations. If MAPEN[3-0] = 1h, any access to indexes in the range 00-FFh will not create external I/O bus cycles. Registers with indexes C0-CFh, FE, FFh are accessible regardless of the state of MAPEN[3-0]. If the register index number is outside the C0-CFh or FE-FFh ranges, and MAPEN[3-0] are set to 0h, external I/O bus cycles occur.

Q. Is there a software compatibility list for games?

A. Are you a gamer? Have you had problems running your favorite game on your Cyrix 6x86 because of the Windows 95 and Cyrix 6x86 identification problem described in the section above? Are you wondering if that great game that you have been wanting to buy at your local software store will run on your 6x86 without a problem?

Cyrix has just posted a compatibility list for games at http://www.cyrix.com/process/support/games.htm to help tackle these types of questions and gaming problems. The compatibility list is an information area indexed by software maker that lists all of the games that are known to work with the 6x86 and games that cannot ID the 6x86 properly. A workaround, software patch, or status update is described or made available for those games that are known to have problems.

This should help eliminate the steady stream of questions about the 6x86 and games. Note, in defense of Cyrix, Cyrix has made freely available the code that software manufacturers can use to identify the 6x86 properly in their applications. Many software makers have simply decided not to use it and opted for other processor identification methods instead.

Q. Why won't the SoundBlaster AWE64 work with a 6x86?

A. The AWE64 achieves its voice count of 64 by integrating a 32 voice hardware wavetable synthesis engine with a 32 voice software synthesizer. The problem is that WaveSynth/WG software synthesizer that is included with the AWE64 does not work on a 6x86. The WaveSynth/WG software uses Pentium specific instructions. The WaveSynth/SG software looks for an Intel Pentium prior to its installation and it will not install unless you have a Intel P90 or higher CPU. It says in BOLD lettering on the box that an Intel Pentium 90 or higher processor is required and they mean it! The problem has nothing to do with compatibility of the AWE64 hardware. The hardware works perfectly, but the WaveSynth/WG software does not.

You can forget trying to fool Windows 95 into believing that you are using a Pentium machine with a CPU identifier such as 6x86_p.exe so that you may install the software. It will not work. Even if you install a Pentium CPU inorder to install the software it will lock up trying to load the necessary drivers as soon as you reinstall the 6x86 because the software is truly incompatible.

Here is the standard Cyrix tech support cut and paste response to the problem.

At present, this card will not work with a Cyrix CPU.

The 6x86 with the Creative Labs SoundBlaster AWE64 and the Software Midi Synthesizer has 3 issues:

1. Checking for a Pentium/Pro

We have been working with Creative Labs and the synthesizer manufacture on this problem for a few months. Creative Labs has fixed the installation problem in a new beta.

2. Use of the Timestamp counter

In talking with the developers they apparently are using the timestamp counter for dynamic load balancing.

3. Pentium FPU optimization.

This involves Pentium optimized floating point code and the requirement to have a Pentium 90 level FPU. We are investigating issues 2 and 3. Cyrix is working with Creative Labs on a solution to this issue.

If you think that this problem will be fixed sometime soon, it won't. Creative has no plans to fix it all. Although Creative won't admit to it, I suspect that their lack of motivation to fix it may be related to the law-suit they just recently won against Cyrix. Creative Labs Inc. sued Cyrix for false advertisement, trademark infringement and unfair competition in regards to Cyrix's claims about its new Cyrix Media GX(r) chip set. According to Creative Labs, Cyrix falsely claims the chip set is fully compatible with Creative Labs Sound Blaster hardware, and diagnostic programs will mistakenly identify the hardware as being Sound Blaster hardware.

At this time the only solutions to this problem are:

1. Treat the card as an AWE32.
2. Switch to an Intel Pentium 90+.
3. Call or email
Creative Labs and complain very LOUDLY! Hit them where it hurts; in the pocketbook.
4. Don't buy a Creative product.