3DNow!

From Wikipedia, the free encyclopedia

3DNow! is the name of a multimedia extension created by AMD for its processors, starting with the K6-2 in 1998. It is an addition of SIMD instructions to the traditional x86 instruction set, designed to improve a CPU's ability to perform the vector processing requirements of many graphic-intensive applications.

Contents

3DNow! was originally developed as an enhancement to the MMX instruction set; to extend it from only operating on integer math to also accelerating floating point calculations. This was especially needed by AMD at the time of introduction because their K6 processor was not well equipped for intensive floating point mathematics in comparison to the Intel Pentium II. This was during the late 1990s when 3D graphics was exploding in popularity because of 3D gaming, and 3D games heavily use floating point arithmetic. Whereas earlier in the '90s AMD could easily get by with limited floating point performance, because the vast majority of software was integer-calculation-based, with which the K6 was extremely proficient, 3D gaming and advanced multimedia applications were quickly changing the landscape.

The 3DNow! technology contains 21 new instructions that support SIMD floating-point operations and includes SIMD integer operations, data prefetch, and faster MMX-to-floating-point switching. Later, Intel would add similar (but incompatible) instructions to the Pentium III, known as SSE.

AMD upgraded the instruction set over time. The first enhancement was called quite simply Enhanced 3DNow! (sometimes Extended 3DNow! or 3DNow+), introduced with the first-generation Athlons and the K6-2+/III+ series; which added 19 new instructions mostly to do with instruction prefetching, etc. A little known fact is that these new additions contained a partial(MMX extension) SSE1 implementation. The second enhancement was called 3DNow! Professional, which was introduced with the Athlon XP processors; this version basically integrated the full SSE1 technology from Intel and combined it with Enhanced 3DNow!. AMD added a new 3DNow! instruction pfrsqrtv in its Geode GX and Geode LX which is currently absent in all the other processors.

One advantage of 3DNow! is that it is possible to add or multiply the two numbers that are stored in the same register. With SSE, each number can only be combined with a number in the same position in another register. This capability, known as horizontal in Intel-speak, was the major addition to the SSE3 instruction set.

A disadvantage with 3DNow! compared to SSE is that it only stores two numbers in a register, as opposed to four in SSE. However, 3DNow! instructions can generally be executed with a lower latency and quicker throughput than SSE instructions.

3DNow! also shares the same physical registers as MMX, while SSE has its own independent registers. Because these MMX and 3DNow! registers are also used by the standard x87 FPU, 3DNow! instructions and x87 instructions can not be executed simultaneously. However, because it is aliased to the x87 FPU, the 3DNow! & MMX register states can be saved and restored by the traditional x87 FNSAVE and FRSTR instructions. Using the pre-existing x87 instructions meant that no operating system modifications had to be made to support 3DNow!.

By contrast, to save and restore the state of SSE registers required the use of the newly added FXSAVE and FXRSTR instructions; the FX* instructions are an upgrade to the older x87 save and restore instructions because these could save not only SSE register states but also those x87 register states (hence which meant that it could save MMX and 3DNow! registers too). Use of the FX* instructions required that the processor entered a slightly modified version of Protected mode called Enhanced mode; the only difference between Protected mode and Enhanced mode was that the latter enabled the use of SSE (and thus the FX* instructions), and the former disabled their use. Operating systems which supported SSE would enter Enhanced mode, whereas those which were unaware of its existence would enter only traditional Protected mode.

On AMD Athlon XP and K8-based cores (i.e. Athlon 64), assembly programmers have noted that it is possible to actually use both 3DNow! and SSE at the same time. Although both share the same functional unit, this can allow more performance by avoiding some register pressure, but it is difficult to accomplish. [1]

Optimized for 3DNow!

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.