View Single Post
Old 2009-02-20, 21:56   #5
ldesnogu's Avatar
Jan 2008

24·3·11 Posts

Originally Posted by rogue View Post
They must be learning from IBM as PowerPC does the same thing. You need two multiplies to get the 128-bit product (for 64x64 multiplies in 64-bit registers). They did it before the PowerPC line for some instructions, why did they drop it on PowerPC? I suspect there is some thing about "pure RISC" that using two registers for output (only one of which is specified on the instruction) is not to be done. Then again they set bits in control registers all the time based upon the results of different instructions...
The problem of having two outputs is that you need to increase the number of write ports in your register bank which makes it bigger and may add some critical paths. You also need to add data paths to route multiple outputs for forwarding paths, which can quickly become a problem.

As far as bits in control registers go, that's generally handled differently and causes less trouble because these are not as wide as registers and you can apply some tricks by only forwarding parts of these control regs.

So it's not a RISC issue or an encoding issue, it's a design constraint

I hope I did not use too many technical terms and that I made my point clear...
ldesnogu is offline   Reply With Quote