[RC5] ia64 core?

Peter Cordes peter at llama.nslug.ns.ca
Fri Mar 30 14:42:16 EST 2001

On Fri, Mar 30, 2001 at 07:52:32PM +0200, Rolf Stals wrote:
> At 20:37 29-3-01 -0800, you wrote:
> >itanium core necessito por favor.
> >anyone heard if one is in the works or anything?
> Nope, because the processor is very rare and only in hands of people who
> signed aprox. 100 contracts that keep their mouth shut.
> Also you can see from reading from this site:
> http://www.tweakers.net/reviews/204/1 that the current client on a ia-64
> couldnt perform better than an client on a 100Mhz computer.

 IA64 can do IA32 in hardware.  The Itanium implementation of this
architecture doesn't waste many transistors on this ridiculous job.  (I say
ridiculous because if they were aiming to run IA32 code fast, they would
have just made another IA32 CPU.  The point of IA64 is to say "screw all
that backward compatibility, let's see what we can do without that
boat anchor around our necks.")

 tweakers.net must have been running the stock IA32 core on the machine,
which obviously is going to suck, and is totally meaningless.  There's no
way to infer the performance of an IA64 binary from IA32 performance.

> But when there
> is a client released for this processor it should be very very quick
> because the rc5-64 is, as it says, an 64 bit code and because the processor
> can handle that there is no need anymore for the client to write to the
> disk/memory anymore for putting 64bits code to 32bits, crunch it and put it
> back as 64bits. This can now al be done by one cpu cycle.

 You're saying that the lack of 64bit registers makes it hard to deal with
an algorithm that uses 64bit keys.  (It wouldn't write to memory, and esp.
not disk, just have to do more work shuffling register.)  However, rc5 never
requires manipulating 64bit integers directly.  Everything is done by
splitting the key in half, and doing stuff to each half, and XORing the
halves, and stuff like that.  (The important point is that you don't need to
do 64bit rotates, adds, or multiplies for rc5.  It was designed when common
computers were 32bit, so it uses 32bit operations.  The rest of my
description of how it works it totally bogus, since I don't have time to
look up the RFC.)

 This being the case, you won't see a big speedup just from having a 64bit
CPU.  If it's possible to have a 32bit quantity in the high half, and
another in the low half, of the same register, and do stuff with them, then
RC5 could go faster than it would on a similar CPU that had only 32bit
registers.  Otherwise, the 64bit aspect isn't going to help much.  (it helps
some, since you can move more bits at the same time, and you do sometimes
have to copy around 64bit quantities.)

#define X(x,y) x##y
Peter Cordes ;  e-mail: X(peter at llama.nslug. , ns.ca)

"The gods confound the man who first found out how to distinguish the hours!
 Confound him, too, who in this place set up a sundial, to cut and hack
 my day so wretchedly into small pieces!" -- Plautus, 200 BCE
To unsubscribe, send 'unsubscribe rc5' to majordomo at lists.distributed.net
rc5-digest subscribers replace rc5 with rc5-digest

More information about the rc5 mailing list