||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (September 2011)|
The 6x86 is superscalar and superpipelined and performs register renaming, speculative execution, out-of-order execution, and data dependency removal. However, it continued to use native x86 execution and ordinary microcode only, like Centaur's Winchip, unlike competitors Intel and AMD which introduced the method of dynamic translation to micro-operations with Pentium Pro and K5.
With regard to internal caches, it has a 16-kB primary cache and is socket-compatible with the Intel P54C Pentium. It was also unique in that it was the only x86 design to incorporate a 256-byte Level 0 scratchpad cache. It has six performance levels: PR 90+, PR 120+, PR 133+, PR 150+, PR 166+ and PR 200+. These performance levels do not map to the clock speed of the chip itself (for example, a PR 133+ ran at 110 MHz, a PR 166+ ran at 133 MHz, etc.).
The 6x86 and 6x86L weren't completely compatible with the Intel P5 Pentium instruction set and is not multi-processor capable. For this reason, the chip identified itself as a 80486 and disabled the CPUID instruction by default. CPUID support could be enabled by first enabling extended CCR registers then setting bit 7 in CCR4. The lack of full P5 Pentium compatibility caused problems with some applications because programmers had begun to use P5 Pentium-specific instructions. Some companies released patches for their products to make them function on the 6x86.
The first generation of 6x86 had heat problems. This was primarily caused by their higher heat output than other x86 CPUs of the day and, as such, computer builders sometimes did not equip them with adequate cooling. The CPUs topped out at around 25 W heat output (like the AMD K6), whereas the P5 Pentium produced around 15 W of waste heat at its peak. However, both numbers would be a fraction of the heat generated by many high performance processors, some years later.
The 6x86L (codename M1L) was later released by Cyrix to address heat issues; the L standing for low-power. Improved manufacturing technologies permitted usage of a lower Vcore. Just like the Pentium MMX the 6x86L required a split powerplane voltage regulator with separate voltages for I/O and CPU core. Another release of the 6x86, the 6x86MX, added MMX compatibility, introduced the EMMI instruction set, and quadrupled the primary cache size to 64 KB. Later revisions of this chip were renamed MII, to better compete with the Pentium II processor.
It has been, somewhat erroneously, speculated by experts that 6x86 was designed to perform well specifically on business-oriented benchmarks of the time, most notably Ziff-Davis' Winstone benchmark., however the cpu design was aimed solely at providing a high performance platform for business applications. In reality, despite being considerably faster than its Intel counterparts when compared on a clock for clock basis, it scored slower on many tests, highlighting deficiencies in many benchmarking schemes in use at that time. Winstone ran various speed tests using several popular applications. It was one of the leading benchmarks during the mid-'90s and was used in some leading magazines, such as Computer Shopper[disambiguation needed] and PC Magazine, as a deciding factor for system ratings.
Cyrix used a PR rating (Performance Rating) to relate their performance to the Intel P5 Pentium (pre-P55C), because a 6x86 at a lower clock rate outperformed the higher-clocked P5 Pentium. For example, a 133 MHz 6x86 will outperform a P5 Pentium at 166 MHz, and as a result Cyrix could market the 133 MHz chip as being a P5 Pentium 166's equal. A PR rating was also necessary because the 6x86 could not clock as high as P5 Pentium and maintain equivalent manufacturing yields, so it was critical to establish the slower clock speeds as equal in the minds of the consumer. However, the PR rating was not an entirely truthful representation of the 6x86's performance.
While the 6x86's integer performance was significantly higher than P5 Pentium's, its floating point performance was more mediocre—between 2 and 4 times the performance of the 486 FPU per clock cycle(depending on the operation and precision). The FPU in the 6x86 was largely the same circuitry that was developed for Cyrix's earlier high performance 8087/80287/80387-compatible coprocessors, which was very fast for its time—the Cyrix FPU was much faster than the 80387, and even the 80486 FPU. However, it was still considerably slower than the new and completely redesigned P5 Pentium and P6 Pentium Pro-Pentium III FPUs. During the 6x86's development, the majority of applications (office software as well as games) performed almost entirely integer operations. The designers foresaw that future applications would most likely maintain this instruction focus. So, to optimize the chip's performance for what they believed to be the most likely application of the CPU, the integer execution resources received most of the transistor budget.
The popularity of the P5 Pentium caused many software developers to hand-optimize code in assembly language, to take advantage of the P5 Pentium's tightly pipelined and lower latency FPU. For example, the highly anticipated first person shooter Quake used highly optimized assembly code designed almost entirely around the P5 Pentium's FPU. As a result, the P5 Pentium significantly outperformed other CPUs in the game. Fortunately for the 6x86 (and AMD K6), many games continued to be integer-based throughout the chip's lifetime.
The 6x86 successor—MII—was late to market, and couldn't scale well in clock speed with the manufacturing processes used at the time. Similar to the AMD K5, the Cyrix 6x86 was a design far more focused on integer per-clock performance than clock scalability, something that proved to be a strategic mistake. Therefore, despite being very fast clock by clock, the 6x86 and MII were forced to compete at the low-end of the market as AMD K6 and Intel P6 Pentium II were always ahead on clock speed. The 6x86's and MII's old generation "486 class" floating point unit combined with an integer section that was at best on-par with the newer P6 and K6 chips meant that Cyrix could no longer compete in performance.
- Gwennap, Linley (25 October 1993). "Cyrix Describes Pentium Competitor" Microprocessor Report.
- Gwennap, Linley (5 December 1994). "Cyrix M1 Design Tapes Out". Microprocessor Report.
- Gwennap, Linley (2 June 1997). "Cyrix 6x68MX Outperforms AMD K6". Microprocessor Report.
- Slater, Michael (12 February 1996). "Cyrix, IBM Push 6x86 to 133 MHz". Microprocessor Report.
- Slater, Michael (28 October 1996). "Cyrix Doubles x86 Performance with M2". Microprocessor Report.
- Cyrix 6x86 ("M1") at PCGuide
- cpu-collection.de Cyrix 6x86 processor images and descriptions
- Paul Hsieh's 6th Generation x86 CPU Comparison in-depth analysis of 6th generation x86 CPUs, including the 6x86MX.
- Cyrix M1 stats at Sandpile.org