A Floating Point Unit (FPU) accelerates software designed to use floating point mathematics — typically CAD programs, spreadsheets, 3D games and design applications. However, today’s most popular PC applications make use of both floating point and integer instructions. As a result, Cyrix chose to emphasize "parallelism" in the design of the 6x86 processor to speed up software that intermixes these two instruction types.
The x86 floating point exception model allows integer instructions to issue and complete while a floating point instruction is executing. In contrast, a second floating point instruction cannot begin execution while a previous floating point instruction is executing. To remove the performance limitation created by the floating point exception model, the 6x86 can speculatively issue up to four floating point instructions to the on-chip FPU while continuing to issue and execute integer instructions. As an example, in a code sequence of two floating point instructions (FLTs) followed by six integer instructions (INTs) followed by two FLTs, the 6x86 processor can issue all ten instructions to the appropriate execution units prior to completion of the first FLT. If none of the instructions fault (the typical case), execution continues with both the integer and floating point units completing instructions in parallel. If one of the FLTs faults (the atypical case), the speculative execution capability of the 6x86 allows the processor state to be restored in such a way that it is compatible with the x86 floating point exception model.
Examination of benchmark tests reveal that synthetic floating point benchmarks use a pure floating point-only code stream not found in real-world applications. This type of benchmark does not take advantage of the speculative execution capability of the 6x86 processor. Cyrix believes that non-synthetic benchmarks based on real-world applications better reflect the actual performance users will achieve. Real-world applications contain intermixed integer and floating point instructions and therefore benefit from the 6x86 speculative execution capability.
The following performance summary highlights the 6x86 processor’s performance results using application categories that are particularly sensitive to floating point performance.
In addition to Winstone 96, Ziff-Davis also distributes the Winstone 32 benchmark. Winstone 32 is a suite of popular 32-bit applications that includes a combined Word Processing/Spreadsheet category. Results are shown below.
In each case shown above, the 6x86 processors perform better than the comparable Pentium® processors.
The following game benchmarks were run with a 2D graphics card.
The following benchmark illustrates 3D game performance using a 3D accelerator card.
The 6x86 processor performs equal to the comparable Pentium in some cases, while the Pentium performs better in others. However, in all cases, both the 6x86 and Pentium processors achieve the smooth motion frame rate of greater than 13 frames/second.
6x86 Processor Performance Benchmarks