29-Mar-2024 08:52 GMT.
UNDER CONSTRUCTION
[Web] Analysis: x86 Vs PPCANN.lu
Posted on 09-Jul-2003 21:21 GMT by Hagge38 comments
View flat
View list
It's up, created by Nicholas Blachford, read it all on osnews.
List of all comments to this article
Sorted by date, most recent at bottom
Comment 1Matt Parsons09-Jul-2003 19:50 GMT
Comment 2Don CoxRegistered user09-Jul-2003 20:11 GMT
Comment 3takemehomegrandmaRegistered user09-Jul-2003 20:24 GMT
Comment 4corpse09-Jul-2003 20:41 GMT
Comment 5corpse09-Jul-2003 21:03 GMT
Comment 6Elektro09-Jul-2003 21:26 GMT
Comment 7Christophe DecaniniRegistered user09-Jul-2003 21:33 GMT
Comment 8Lando09-Jul-2003 22:30 GMT
Comment 9Johan Rönnblom09-Jul-2003 22:54 GMT
Comment 10Anonymous09-Jul-2003 23:00 GMT
Comment 11corpse09-Jul-2003 23:47 GMT
Comment 12corpse09-Jul-2003 23:50 GMT
Comment 13corpse09-Jul-2003 23:58 GMT
Analysis: x86 Vs PPC : Comment 14 of 38ANN.lu
Posted by Chain|Q on 10-Jul-2003 05:18 GMT
In reply to Comment 5 (corpse):
Actually, the 80386 added no more general purpose registers, just added two more segment registers (FS, GS) and extended the existing register set to 32bit. It also removed some limits in how can a register be used. Anyway, i still hardly call any of the x86 registers "general purpose". As using 68k terminology, the x86 has 4 'data' registers (EAX-EDX) and four 'address' registers (ESI,EDI,EBP,ESP). The most important difference is, just like on 68k, you can't work with the lower byte of an address register directly. And there are much more limitations in, like you must use some registers for some instructions. For example move.l d0,(a0)+ is simply not exists on x86. There is an instruction which does pretty much the same (STOSD), but it has no operands, so always uses EAX as source, and ES:EDI as target address. Bye-bye general purpose registers... Or you can use MOV [EDI],EAX of course, but in this case you have to increase the address register by hand, doing an ADD EDI,4... These are small but important differences, when you are talking about the effectiveness of an architecture.

Anyway, the most painful part of the x86 architecture is the FPU, since the x86 has no linear address space, but it's some weird kind of a stack. So on x86, you just can't fmove.l (a0),fp3, and then fmul fp2,fp3, because you only can move values to the top of the stack (all values moves down then) and you can only make operations on the value currently at the top of the stack. Of course there is an instruction, which swaps two values in the stack, but this makes overhead simply not exists on architectures using linear FPU register set. Other difference, compared to the 68k for example, that you cannot move values directly between the CPU and the FPU, you have to store the value to the memory first, and then move to the FPU. Needless to say, this makes unnecessary overhead on the cache and memory interface, and in worst case on the whole bus system. So this makes FPU coding on x86 difficult, and also makes the FPU unnecessarily complex, and ineffective. This is why most architectures beats the sh*t out of x86 at the same clock speeds, when floating point operations came into the picture.

And yes, i'm playing the smart-ass, hehe... ;] But hope this makes the picture more clear for ppl. has no or few programming experiences with 32bit x86. (I've some 10 years or so, but i'm not proud for it, hehe.:)
Jump...
#15 Chain|Q #25 Megol
TopPrevious commentNext commentbottom
List of all comments to this article (continued)
Comment 15Chain|Q10-Jul-2003 05:22 GMT
Comment 16gz10-Jul-2003 05:55 GMT
Comment 17Emeric SH10-Jul-2003 06:29 GMT
Comment 18Fabio Alemagna10-Jul-2003 06:55 GMT
Comment 19Bill Hoggett10-Jul-2003 07:01 GMT
Comment 20Matt Parsons10-Jul-2003 07:18 GMT
Comment 21John Block10-Jul-2003 08:13 GMT
Comment 22elektroRegistered user10-Jul-2003 10:24 GMT
Comment 23corpse10-Jul-2003 11:15 GMT
Comment 24Rob10-Jul-2003 15:46 GMT
Comment 25Megol10-Jul-2003 19:23 GMT
Comment 26anonymous10-Jul-2003 20:00 GMT
Comment 27CodeSmith10-Jul-2003 21:27 GMT
Comment 28CodeSmith10-Jul-2003 21:32 GMT
Comment 29Bill Hoggett10-Jul-2003 21:59 GMT
Comment 30DaveP11-Jul-2003 06:57 GMT
Comment 31Rob11-Jul-2003 08:32 GMT
Comment 32Matt Parsons11-Jul-2003 09:35 GMT
Comment 33Matt Parsons11-Jul-2003 11:08 GMT
Comment 34Chain|Q11-Jul-2003 15:31 GMT
Comment 35Joe "Floid" Kanowitz11-Jul-2003 18:05 GMT
Comment 36smp26612-Jul-2003 01:00 GMT
Comment 37Anonymous14-Jul-2003 18:17 GMT
Comment 38Anonymous14-Jul-2003 18:18 GMT
Back to Top