Developer Frequently Asked Questions
Does the 6x86 support CPUID?
Does the 6x86MX support CPUID?
Does the 6x86MX have RDTSC?
What new features are in a 6x86L CPU?
How do I detect a 6x86, 6x86MX, or MediaGX?
Does the MediaGX support CPUID?
Can I optimize for the 6x86 and 6x86MX?
What are the pairing rules for the 6x86 and 6x86MX?
How do I figure out the correct MHz?
What is the "PR Rating" and how can it be determined?
What is the difference between the 6x86 and 6x86MX?
What compiler optimizations should I use?
Do the 6x86 and 6x86MX processors support MMX instructions?
How do I check for MMX support?
What is this new XCHG Errata I'm hearing about? Is it a bug?
What is the 'Intel F0 Bug' and do Cyrix processors have this bug?
-
Q.
Does 6x86 support CPUID?
-
A.
Yes, but it is normally turned off in the BIOS.
-
-
Q.
Does the 6x86MX support CPUID?
-
A.
Yes. For more information, see the databook, or
Cyrix CPU Detection Guide
.
-
-
Q.
Does the 6x86MX have RDTSC?
-
A.
Yes. For more information, see the databook, or
Cyrix CPU Detection Guide
.
-
-
Q.
What new features are in a 6x86L CPU?
-
A.
Debug Extensions (I/O Breakpoints), Compare Exchange Eight Byte (CMPEX8B)
-
-
Q.
How do I detect a 6x86, 6x86MX, or MediaGX?
-
A.
Refer to
Cyrix CPU Detection Guide
.
-
-
Q.
Does the MediaGX support CPUID?
-
A.
The current version of the MediaGX does not. The future version will support CPUID and RDTSC.
-
-
Q.
Can I optimize for the 6x86 and 6x86MX?
-
A.
Very little. There are no pairing rules, and most dependencies are removed. See Application Note 106 for more information.
-
-
Q.
What are the pairing rules for the 6x86 and 6x86MX?
-
A.
There are none.
-
-
Q.
How do I figure out the correct MHz?
-
A.
See
BIOS Writer's Guide. (PDF 264K)
-
-
Q.
What is the "PR Rating" and how can it be determined?
-
A.
It is a Performance Rating for comparing different vendors CPUs based on Ziff-Davis Winstone benchmark. (
See also
). It may be determined by a
lookup table
.
-
-
Q.
What is the difference between the 6x86 and 6x86MX?
-
A.
See Below:
-
-
Summary of Differences Between the
6x86 and 6x86MX CPUs
Feature
|
6x86
|
6x86MX
|
Pinout
|
P54C (socket 7)
|
P55C (socket 7)
|
Supply Voltage
|
6x86 3.3V or 3.52V
6x86L 2.8V core; 3.3V I/O
|
2.9V core; 3.3V I/O
|
CPU Primary Cache
|
16K Size 4-way 512 lines 32 bytes per line
|
64K Size 4-way 2048 lines 32 bytes per line
|
TLB
|
L1: 128 entry / Victim TLB: 8 entry
|
L1: 16 entry / L2: 384 entry
|
BTB
|
256
|
512
|
Lockable Cache
|
no
|
yes
|
Time Stamp Counter
|
no
|
yes
|
Performance Counters
|
no
|
yes
|
Global PTE
|
no
|
yes
|
CPUID enabled
|
no
|
yes
|
MMX
|
no
|
yes
|
6x86MX Multimedia Extensions
|
no
|
yes
|
Nestable SMI support
|
no
|
yes
|
CMOV
|
no
|
yes
|
Cacheable SMI Code/Data
|
no
|
yes
|
-
Q.
What compiler optimizations should I use?
-
A.
Do not use Pentium compiler optimizations since that leads to larger code.
-
-
Q.
Do the 6x86 and 6x86MX processors support MMX instructions?
-
A.
The 6x86MX supports the MMX instructions and includes additional multimedia instructions. See Application Note 106.
-
- Q.
How do I check for MMX support?
- A. Do CPUID (eax=1) and check the feature flags bit 23 for MMX support. See
Cyrix CPU Detection Guide
- Q.
What is this new XCHG Errata I'm hearing about? Is it a bug?
- A.An issue has been reported by Aleksandr K. Konosevich, of ESHS Lab with the 6x86 core that appears to be confined to one piece of developmental software. The problem will cause a system to lock up due to interrupts not being serviced. The problem is easily detectable by the CPU freezing up. To get perspective on this issue, millions of 6x86 core products have been shipped over the last 3 years and this is the first report of the problem.
The problem is with the following code:
top: xchg [bx], ax mov ax, cx jmp top The fix to the above code is to add a NOP after the xchg:
top: xchg [bx], ax nop mov ax, cx jmp top The issue can be remedied with an opcode matching capability that is unique to Cyrix 6x86 core products. The
pipexchg.ziputility can be placed in the Autoexec.bat in DOS/Win9x and the problem will not occur.
- Q.
What is the 'Intel F0 Bug' and do Cyrix processors have this bug?
- A.The Intel family of Pentium processors do not properly handle the following code sequence:
(Assembly Program)
.MODEL small .386 .CODE .STARTUP db 0f0h ;
LOCK db 00fh, 0c7h, 0c8h ; CMPEXG8B EAX .EXIT ;
exit to DOS END
The CMPEXG8B EAX is an invalid instruction, and should generate an 'invalid exception'. Intel Pentium processors do not seem to handle this properly and lock up the system. All the Cyrix family of processors handle the code sequence properly. Last update: 13-Nov-97
|