That weird one from Intel Itanium.  Why?, because it's not a 64bit 
ISA.  They use a smaller Instruction Set Architecture than 64bit, 
which is a Good Thing for caching purposes.  (This is not an 
endorsement of Itanium, I haven't looked closely enough to make an 
accurate assessment)

In truth, I wouldn't pick a 64bit processor anyway.  Having 64bit or 
even 128bit registers for the occasional high precision operation is 
one thing, but getting your code bloated to the nth degree as part of 
it is not a good trade off given current technologies.

There hasn't been a good 64bit ISA brought to the table yet I think.  
What I would like to see in such an ISA is the ability to express 
more than one operation per instruction.  I have this ISA that I 
wrote out that was a 32bit ISA, but part of me wants to expand it to 
64, and the idea behind it is singular sized instructions that can be 
tagged with "sub ops".  Basically the first bit determined whether it 
was a "true 32bit instruction", i.e. did one thing in one 
instruction, or whether it was a micro op instruction.  The micro op 
instructions would have encoded within them 3 seperate register to 
register arithmetic operations, or 3 stack operations performed by 
baselining the stack with one of the registers.  (ala stmia, ldmia of 
ARM fame)

If this idea were expanded out to 64 bits, then you would probably 
have 3 different "multi op" types, one that did 6 ops per insn, 3 and 
1.  One op insns would probably be mostly reserved for something like 
loading registers.  (Loading 64bit registers can be less than fun)

The key for quick arithmetics IMHO is to be able to load *two* full 
sized registers and perform an operation between them in 3 
instructions.  The problem today is bandwidth into the CPU, the only 
way to solve it is with better memory technologies, or more expresive 
ISAs..., since the bandwidth problem isn't getting solved anytime 
soon we might as well get into expresiveness.

Thanks,
Shane Nay.

Anyway, ALUs are tiny structures so this could be fun.
BTW- quick arithmetics in the ISA I threw together would be done this 
way-
lui r0, #0x0123456 @lui has 28 bits of expresiveness
lui r1, #0x0123456
{ ori r0 #0x7, ori r1 #0x7, add r0, r1}

 /* The add op places the result in the first mentioned register, so 
the result would be r0=0x02468ACE , r1=0x01234567*/
(Full add register to register with a 32bit insn size, 32bit register 
size total code and data- 32bit*3=96bit.  In ARM this would be 3 
instructions and 2 32bit data pieces, so 160bits, not to mention the 
cache hit involved with ldr)

On Saturday 16 February 2002 21:14, Dave Poirier wrote:
> I've been doing a bit of thinking here, and I would like to have
> your opinion on something.
>
> If you had to choose a 64bit cpu for its instruction set (not it's
> speed, nor its availability), which one would you choose?
>
> Any suggestion and url would be greatly appreciated, thanks.

_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/pgui-devel

Reply via email to