[MPlayer-users] info on info displayed by mplayer

armin.gerritsen at philips.com armin.gerritsen at philips.com
Tue Oct 28 12:28:29 CET 2003


liane d'ambre wrote:

> [Automatic answer: RTFM (read DOCS, FAQ), also read
> DOCS/bugreports.html] when i launch mplayer on a file i have many
> info on screen, i have a few maybe stupid question about thouse info :
> -first question , i have to puter on the first i have :
> CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
> on the other
> CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
> What is 3Dnow ? what is SSE ?

OK, in short this is the story:

Years ago, Intel created the MMX standard to improve performance in
'multimedia applications'. It is a SIMD instruction set - that is Single
Instruction Multiple Data. That means it can do the same instruction on
multiple items at the same time. It is also often called packed or vector
instructions. Why, because one packs for instance two data-items in one
register, and then does calculations on it. This can be useful when for
instance doing calculations on data-items, which are related, like vectors.
But also thinks like MPEG-pattern matching or copying can be done faster in
some cases. MMX is 64bit.

However MMX is limited to non-floating point data. AMD extended the
instruction set in 1998 with some floating-point instructions. This is
called 3DNow!. They choose the name for marketing reasons, because it was
intended to help the K6-2 CPU compete with the Intel Pentium II, which had a
much stronger FPU and was therefore faster in 3D games.

Intel in 1999 released the Pentium III, which had SSE. This is not an
extension to the MMX set, but a new set. It contains pretty many similar
instructions like 3DNow! plus some extra and all MMX instructions.

One may wonder, why duplicate them. The reason is that MMX and all
extensions use the FPU-unit. You 'simply' switch the FPU in a different mode
and it is no longer a FPU, but a MMX/3DNow! unit. Pro is that there are no
new registers, so an OS doesn't require knowing about it. Downside is that
one cannot use FPU and MMX/3DNow! at the same time. With SSE this is
possible (in theory although in practise mixing will decrease performace
because of implementation reasons), but one requires OS support (or very
carefully written software - the first Creative SoundBlaster drivers that
used SSE where not careful enough written and crashed if some other
applications also used SSE because it overwrote the register contents of
that application and visa versa.) Windows 98 and 2000 and higher where the
first to have native-SSE support.

SSE is 128 bit, but even today on the Pentium 4 the decoders are limited in
such a way they can only operate on 64bit at a time (so 128bit in 2 cycles
vs MMX is 64bit decoding in one cycle)

AMD in 1999 released the AMD Athlon, which extended the MMX/3DNow! set even
further. MPlayer calls it 3DNow2, but the official name is Enhanced 3DNow!.
They included instructions similar like the SSE-extensions, and even used
for some of the instructions exactly the same opcodes. That way when using
the instructions on a SSE-compatible CPU, one could also use them on an
Athlon. These shared instructions are sometimes called XMM. I guess MPlayer
calls them MMX2?

AMD also changed the internals of the Athlon so that although the FPU and
MMX/3DNow/Enhanced3DNow unit was still shared switching was instantinious
and doesn't cost you any cycles anymore.

Some years ago AMD signed a contract with Intel to share some patents. Part
of the deal was the licence to use SSE(2). Therefore AMD was able to
introduce the AMD Athlon XP, which has 3DNow! Professional. This is a
marketing name, which means it supports MMX/3DNow/Enhanced3DNow plus SSE.
They are not allowed to use the name SSE itself.

However, both SSE and all MMX and its extensions where still limited to
non-floating point and single precision (32bit). The Pentium 4 has therefore
SSE2 that can operate on 64bit floating-point numbers. The Athlon 64 also
supports SSE2 and even extents this if you switch the CPU to 64bit mode.

>Is SSE the equivalent of 3Dnow on
> pentium cpu ?

More or less yes, although it are different technologies, they were intended
to do the same thing: accelerate 32bit floating-point operations.

> If not is it possible to have both 3Dnow and SSE flag activate ?

Yes, if you own an Athlon XP or Athlon 64.
The latter even has 3DNow!, 3DNow2, SSE and SSE2 enabled.

Regards,

Armin




More information about the MPlayer-users mailing list