POV-Ray : Newsgroups : povray.off-topic : Complicated : Re: Complicated Server Time
30 Jul 2024 00:25:04 EDT (-0400)
  Re: Complicated  
From: Orchid XP v8
Date: 6 Jun 2011 13:40:09
Message: <4ded10f9@news.povray.org>
On 06/06/2011 04:59 PM, Darren New wrote:
> On 6/3/2011 7:45, Invisible wrote:
>> (By contrast, a *real* 32-bit chip like the Motorola 68000 has
>> registers A0
>> through A7 and D0 through D7, and when you do an operation,
>
> Which is fine if you're not trying to be assembly-language compatible.

That's amusing. The 68000 is a 16-bit processor, which is 
forwards-compatible with the 68020. You run the same code, but now all 
the 32-bit operations automatically go twice as fast. It doesn't /get/ 
much more compatible than that. (Admittedly later processors did 
introduce a few new instructions that won't work on the older models.)

>> In short, they kept kludging more and more stuff in. Having a stack-based
>> FPU register file is a stupid, stupid idea.
>
> Not when your FPU is a separate chip from your CPU.

In what way does having a bizarre machine model help here?

>> But now all our software depends on this arrangement,
>
> Not any longer. For example, I believe gcc has a command-line switch to
> say "use x87 instructions" instead of loading floats via the MMX
> instructions.

Yeah, but every OS will have to support the old arrangement forever 
more, every VM product will have to support it forever more, and every 
processor design will have to support it forever more.

>> Aliasing the MMX registers to the FPU registers was stupid,
>
> No, it saved chip space.

It's quite clear that the design motivation behind this was not chip 
space but OS support. Compared to the space taken up by huge caches, a 
piffling 7 registers is nothing...

>> The list goes on...
>
> It would be nice if it was practical to throw out all software and start
> over every time we had a new idea, wouldn't it? But then, everything
> would be as successful as Haskell. ;-)

This is precisely why Haskell's unofficial motto is "avoid success at 
all costs". (I.e., once you are successful, you have to *care* about 
backwards compatibility.)

I would argue that backwards compatibility is about balance. On the one 
hand, if you change your entire platform every three minutes, nobody 
will build anything for it. (For example, Java.) On the other hand, if 
you support everything forever, you end up with an unmanageable mess. 
(For example, IA32.)

I keep hoping that some day somebody will come up with a chip design 
that runs crappy old 16-bit MS-DOS stuff under software emulation, but 
runs real Big Boy software that people might give a damn about on a 
platform with a modern, coherant design. But apparently I'm just dreaming...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.