Help


[permalink] [id link]
+
Page "Visual Instruction Set" ¶ 4
from Wikipedia
Edit
Promote Demote Fragment Fix

Some Related Sentences

MMX and has
User application uptake of the x86 extensions has been slow with even bare minimum baseline MMX and SSE support ( in some cases ) not being supported by applications some 10 years after these extensions became commonly available.
Once MMX has been used, the programmer must use the emms instruction ( C: _mm_empty ()) to restore operation to the x87 register file.
Internally, the Efficeon has two arithmetic logic units, two load / store / add units, two execute units, two floating-point / MMX / SSE / SSE2 units, one branch prediction unit, one alias unit, and one control unit.

MMX and only
MMX provides only integer operations.
MMX had two main problems: it re-used existing floating point registers making the CPU unable to work on both floating point and SIMD data at the same time, and it only worked on integers.
Sometimes programmers must use several VIS instructions to accomplish an operation that can be done with only one MMX or SSE instruction, but it should be kept in mind that fewer instructions doesn't automatically result in better performance.

MMX and 8
MMX added 8 new " registers " to the architecture, known as MM0 through MM7 ( henceforth referred to as MMn ).
* IA Software Developer's Manual, Vol 1 ( PDF ), see chapter 8 for MMX programming

MMX and registers
MMX could not be used simultaneously with the x87 FPU instructions because the registers were reused ( to allow for fast context switches ).
Hence, anything that was done to the floating point stack would also affect the MMX registers.
Also the MMX's 64-bit MMn registers are aliased to the FPU stack, and each of the floating point registers are 80 bits wide, meaning that the upper 16 bits of the floating point registers are unused in MMX.
A homogenous processor system typically requires extra registers for " special instructions " such as SIMD ( MMX, SSE etc.
Other systems, like MMX and 3DNow !, offered support for data types that were not interesting to a wide audience and had expensive context switching instructions to switch between using the FPU and MMX registers.
MMX defined eight registers, known as MM0 through MM7 ( henceforth referred to as MMn ).
Hence, anything that was done to the floating point stack would also affect the MMX registers and vice versa.
The mapping of the MMX registers onto the existing FPU registers made it somewhat difficult to work with floating point and SIMD data in the same application.
Because the FPU stack registers are 80 bits wide, the upper 16 bits of the stack registers go unused in MMX, and these bits are all set to ones, making them NaNs or infinities in the floating point representation.
SSE floating point instructions operate on a new independent register set ( the XMM registers ), and it adds a few integer instructions that work on MMX registers.
This limitation reduces the effectiveness of pipelining, but the separate XMM registers do allow SIMD and scalar floating point operations to be mixed without the performance hit from explicit MMX / floating point mode switching.
SSE2 adds new math instructions for double-precision ( 64-bit ) floating point and also extends MMX integer instructions to operate on 128-bit XMM registers.
Until SSE2, SSE integer instructions introduced with later SSE extensions could still operate on 64-bit MMX registers because the new XMM registers require operating system support.
SSE2 enables the programmer to perform SIMD math on any data type ( from 8-bit integer to 64-bit float ) entirely with the XMM vector-register file, without the need to use the legacy MMX or FPU registers.

MMX and shared
** The early MMX instruction set shared a register file with the floating-point stack, which caused inefficiencies when mixing floating-point and MMX code.

MMX and with
Just like the Pentium MMX the 6x86L required a split powerplane voltage regulator with separate voltages for I / O and CPU core.
In 1996, the Pentium with MMX Technology ( often simply referred to as Pentium MMX ) was introduced with the same basic microarchitecture complemented with an MMX instruction set, larger caches, and some other enhancements.
Pentium logo, with MMX ( instruction set ) | MMX enhancement
It was sold as Pentium with MMX Technology ( usually just called Pentium MMX ); although it was based on the P5 core, it featured a new set of 57 " MMX " instructions intended to improve performance on multimedia tasks, such as encoding and decoding digital media data.
However, with the 0. 25 µm Tillamook Mobile Pentium MMX ( named after a city in Oregon ), the module also held the 430TX chipset along with the system's 512 KB SRAM cache memory.
The first widely-deployed desktop SIMD was with Intel's MMX extensions to the x86 architecture in 1996.
Pentium with MMX
MMX is a single instruction, multiple data ( SIMD ) instruction set designed by Intel, introduced in 1996 with their P5-based Pentium line of microprocessors, designated as " Pentium with MMX Technology ".

MMX and FPU
The K6 processor included a feedback dynamic instruction reordering mechanism, MMX instructions, and a floating-point unit ( FPU ).
However, the new XMM register-file allowed SSE SIMD-operations to be freely mixed with either MMX or x87 FPU ops.
The company addressed numerous design shortcomings of the older cores, including incomplete MMX compatibility and the half-speed FPU.
* Register window-to visualize the 80x86 register contents, including segments, flags and the FPU ( CodeView existed before MMX and other SIMD extensions ).
* Integrated FPU with MMX and 3DNow!

MMX and stack
The first addition allowed offloading of basic floating-point operations from the x87 stack and the second made MMX almost obsolete and allowed the instructions to be realistically targeted by conventional compilers.
SSE2 extends MMX instructions to operate on XMM registers, allowing the programmer to completely avoid the eight 64-bit MMX registers " aliased " on the original IA-32 floating point register stack.

MMX and while
Another reason was that the Rise mP6's PR 266 rating was based upon the old Intel Pentium MMX, while its main competitors were the Intel Celeron 266, the IDT WinChip 2-266 and the AMD K6-2 266, that all delivered more performance in most benchmarks and applications.

MMX and SPARC
It uses VIS on SPARC platforms ( and MMX / SSE / SSE2 on x86 / x64 platforms ) to accelerate multimedia application execution
To name a few, specialized instructions are found in the SPARC VIS, Intel MMX and SSE, and Motorola Altivec instruction sets.

0.205 seconds.