0% found this document useful (0 votes)
69 views2 pages

MMX (Why MMX) Make The Common Case Fast

The document discusses MMX technology, which was introduced to accelerate multimedia and communications applications by including new instructions and data types. It examines common characteristics of compute-intensive multimedia and communication algorithms, such as using small integer data types and highly parallel operations. MMX adds 57 new single instruction, multiple data integer instructions that can perform the same operation on multiple data elements packed into 64-bit registers simultaneously, improving performance. It maintains compatibility with existing systems by aliasing the MMX registers to portions of floating point registers.

Uploaded by

Ravi Patel
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views2 pages

MMX (Why MMX) Make The Common Case Fast

The document discusses MMX technology, which was introduced to accelerate multimedia and communications applications by including new instructions and data types. It examines common characteristics of compute-intensive multimedia and communication algorithms, such as using small integer data types and highly parallel operations. MMX adds 57 new single instruction, multiple data integer instructions that can perform the same operation on multiple data elements packed into 64-bit registers simultaneously, improving performance. It maintains compatibility with existing systems by aliasing the MMX registers to portions of floating point registers.

Uploaded by

Ravi Patel
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

MMX (Why MMX) Make the Common Case Fast: Multimedia and Communication consume significant computing resources.

. Providing specific hardware support makes sense

GOALS: accelerate multimedia and communications applications. maintain full compatibility with existing operating systems and applications. exploit inherent parallelism in multimedia and communication algorithms includes new instructions and data types to improve performance First Step: examine code Examined a wide range of applications: graphics, MPEG video, music synthesis, speech compression, speech recognition, image processing, games, video conferencing. Identified and analyzed the most compute-intensive routines

Common Characteristics Small integer data types: e.g. 8-bit pixels, 16-bit audio samples Small, highly repetitive loops Frequent multiply-and-accumulate Compute-intensive algorithms Highly parallel operations

MMX Technology A set of basic, general purpose integer instructions: Single Instruction, Multiple Data (SIMD) 57 new instructions Eight 64-bit wide MMX registers Four new data types Example Pixels are generally 8-bit integers. Pack eight pixels into a 64-bit MMX register. An MMX instruction takes all eight of the pixels at once from the MMX register, performs the arithmetic or logical operation on all eight elements in parallel, and writes the result into an MMX register

Compatibility No new exceptions or states are added. Aliases to existing FP registers: The exponent field of the corresponding floating-point register (bits 64-78) and the sign bit (bit 79) are set to ones (1's), making the value in the register a NaN (Not a Number) or infinity when viewed as a floating-point value

57 Instructions:- The following subsections describe each of the MMX instructions in detail. The organization is as fol-lows: Basic arithmetic: add, subtract, multiply, arithmetic shift and multiply-add Comparison Conversion: pack & unpack Instructions, Logical Instructions, Shift and Rotate Instructions Move: register-to-register Load/Store: 64-bit and 32-bit Empty MMX Machine State Instruction

The MMX Programming Environment The MMX architecture extends the Pentium architecture by adding the following: Eight MMX registers (MM0..MM7). Four MMX data types (packed bytes, packed words, packed double words, and quad word). 57 MMX Instructions. The MMX Registers The MMX architecture adds eight 64-bit registers to the Pentium. The MMX instructions refer to these registers as MM0, MM1, MM2, MM3, MM4, MM5, MM6, and MM7. These are strictly data registers, you cannot use them to hold addresses nor are they suitable for calculations involving addresses. Although MM0..MM7 appear as separate registers in the Intel Architecture, the Pentium processors alias these registers with the FPUs registers (ST0..ST7). Each of the eight MMX 64-bit registers is physi-cally equivalent to the L.O. 64-bits of each of the FPUs registers (see Figure 11.1). The MMX registers overlay the FPU registers in much the same way that the 16-bit general purpose registers overlay the 32-bit general purpose registers. DATA Types:-

You might also like