Welcome, Guest. Please login or register.

Author Topic: 80386 poster  (Read 5052 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Bif

  • Full Member
  • ***
  • Join Date: Aug 2009
  • Posts: 124
    • Show all replies
Re: 80386 poster
« on: March 10, 2010, 01:26:11 AM »
While much maligned, MMX was actually a pretty big leap in mainstream computing evolution at the time. While it was awkwards to use for some types of processing, using it in my audio engine for mixing/DSP sped it up considerably. Up to 8x performance in some parts of the engine, with other parts getting something between 1.5 and the 8x speedup. That's some pretty darn good speedup for the time! It's one of those rare things that got me excited about computing again.
 
In all my years since then I'm not sure I recall any kind of architectural change that brought on that much of a further leap in performance. Sure SSE and all it's variants were added, but it wasn't actually any faster than MMX, just much easier and more precise to use.
 

Offline Bif

  • Full Member
  • ***
  • Join Date: Aug 2009
  • Posts: 124
    • Show all replies
Re: 80386 poster
« Reply #1 on: March 11, 2010, 06:28:53 PM »
Quote from: yakumo9275;547033
the other thing to remember was that the x86 FPU was (and still is) stack based making it pretty poor performer, MMX came in as register based and very easy to use... mmx was like WHOA!

Oh you made me dredge up horrid memories of X87 programming. Thanks!
 
Actually x87 wasn't too incredibly hard to program, but it was hard to program for if you also want good performance (on Pentium and up). The trick is to use the FXCH instruction to swap values in the registers/stack - this essentially gives you random access to the registers. With that, you can then pipeline better as you can compute unrelated things in different registers. Where it became very painful is that you now have to keep track of what results are where in the stack amongst a pile of FXCH instructions moving things around. Lots of commenting necessary.
 
I think that's really the most horrid thing about x86 winning the computing war. We are still stuck with all these arcane instruction sets. Thankfully its rare to need to hand assemble any of that any more, compilers are pretty darn good.