We've looked at MMX in a previous Byte Size.
So now it's time for the talk.... the 3DNow!
talk.
In February 1999, Intel introduced the Pentium III processor which included an update to
the Pentium II MMX model called Streaming SIMD Extensions, or SSE.
These new instructions were known as Katmai New Instructions up until their debut as the
Pentium III's codename was also Katmai.
The cost reduced Celeron 533A and faster also included SSE.
SIMD, this initialism, within an initialism stands for Single Instruction, Multiple Data
- also known as vectorised instructions - allowing the processor to handle the same operation
from multiple data points simultaneously, therefore increasing the speed of applications
making use of this technology.
This can be used for an example in an image where the brightness is changed and the same
value needs to be subtracted from multiple data points.
Rather than processing one pixel at a time, SIMD can handle multiple pixels simultaneously.
SSE is made up of 70 new instructions for graphics and sound processing to build upon
the MMX technology released 2 years prior.
As well as adding further Multimedia enhancing instructions, SSE allows for floating point
calculations utilising a separate unit within the processor instead of sharing the floating
point unit like previous MMX iterations.
There are also new integer and cacheability control instructions, all of which are useful
for imaging, 3D video, steaming and MPEG2 decoding, which reduced the need for a separate
MPEG2 decoder card back in the late 90s.
The fact that SSE supported four floating point operations per cycle and allowed data
prefecthing - a mechanism for reading data into the cache before it's actually called
for - also meant the new instructions were useful for 3D rendering, on any software which
took advantage of it.
Something which AMD's 3DNow!
was also intended to help with.
3DNow! is really AMD's alternative to Intel's SSE.
I say alternative, but actually, 3DNow!
was really introduced before SSE in the K6-2 processor launched during May 1998.
AMD had licenced MMX from Intel for the K6 released in April 1997, but didn't want the
expense of licensing the new SSE technology Intel were developing for the Pentium III,
so their solution was their own set of instructions which were targeted specifically at the 3D
market.
A market almost every game had already or was crossing into.
As well as consisting of the exclamation mark in the name, 3DNow!
incorporates 21 instructions, again using SIMD techniques to operate on arrays of data,
rather than single elements.
Like Intel, it offers single precision floating point operations and enables up to four floating
point operations per cycle.
Data pre-fetching is also supported as is the ability to mix floating point with MMX
instructions, again like SSE.
AMD's claim was that 3DNow!
incorporated the name abilities as Intel's new technology with less complexity, although
due to their differences software written to support SSE will not support 3DNow! and
vice versa.
Both technologies were supported by Windows 98, DirextX 6, SGI's Open GL as well as graphic
accelerator drivers provided by 3DFX, ATI, Matrox and NVIDIA, although programs such
as Adobe Photoshop failed to support AMD's offering, leaving SSE a little ahead in the
professional stakes.
But of course AMD, like Cyrix liked to aim for the budget conscientious consumer, and
the gamer, an equally lucrative market.
Here's how AMD explained 3DNow!
1.
Physics - the CPU performs floating point intensive physics calculations to create simulations
of the real world.
2.
Geometry - Next, the CPU transforms mathematical representations of objects into 3D representations,
using floating point intensive 3D geometry 3.
Setup - The CPU starts the process of creating the perspective required for a 3D view, and
the graphics accelerator completes it.
4.
Rendering - Finally, the graphics accelerator applies realistic textures to computer generated
objects, using per-pixel calculations of colour, shadow and position.
Outside of the support by graphics card drivers, one of the games to directly support 3DNow!
was Sub Culture, a game which AMD pushed for allowing distant images to appear faster,
objects to have more detailed textures at a greater distance and images to have smoother
fluidity and geometries, when stacked up against the Pentium II.
3DNow!
had an install base of more than 9 million by 1999, which AMD were hoping to push to
over 30 million by the end of the century.
So where did these technologies lead?
Well, SSE2 was introduced in November 2000 along with the Pentium 4 processor, adding
144 additional SIMD instructions, whilst being a little ahead and with their goal in mind,
AMD introduced an enhanced 3DNow!
with their Athlon processors in 1999, which included Digital Signal Processing and some
further MMX instructions from SSE.
AMD reached their install base target, but with Intel having their usual clout and still
superior Floating point perfromance, this Intel integration & licensing went further
when AMD tried to re-gain some of the professional market with the Athlon XP in October 2001
which included the full SSE instruction set under the name of 3DNow!
Professional.
AMD would include SSE2 in their Opteron processors in 2003 following a progression which apart
from the odd misalignment would see AMD continuing to licence SSE technology for compatibility
up until SSE4 in 2007.
There are new instruction sets after this released by both AMD and Intel up to and including
today's processors, but this is really outside of this videos - and my - scope.
What isn't outside it's scope is 3DNow!
So what happened to AMD's own instruction set which bridged their transition from MMX
to SSE, and which was supported by various games and programs throughout that period?
Well, in 2010 AMD announced it was to retire the 3DNow!
Instruction set, marking the end of a 12 year run, with Phenom II K10 derived processors
being some of the last to incorporate the technology.
The only two instructions retained going forward would be PREFETCH and PREFETCHW, leaving SSE
to pick up the bulk and rendering any code still making use of 3DNow!
redundant
So I guess that means ultimately, SSE won this little battle.
Although 3DNow!
will always be a winner for me, just for it's incredibly '90s name alone.