IA-64 and Alpha are "real" 64-bit processors, that is they can only run, a
single, 64-bit based instruction set.
The X86-64 kind architectures(AMD 64 and Intel 64) have two different modes
of operation, a native mode and an extended mode.
These processors can run native 32-bit (IA-32) code when initialized in
native mode, and 64-bit code (IA-32e)when initialized for long mode, the
"64-bit" instruction set is nothing more than an extension of the IA-32
instruction set (hence the IA-32e), and is completely different from the
IA64 instruction set. The great advantage of this architecture is that it
can run 32-bit X86 and "64-bit" user code while running a 64-bit (X64) based
OS, without the need for a 32-bit "emulator" like the IA64 and Alpha
architecture does.
All the (X64) OS has to do, is perform a switch from IA-32 mode to IA-32e
mode when a 32-bit user program transitions into the kernel, this switch
takes a hit of less than 100 cycles, which is < 0.2% of the time taken to
transition into kernel space.
The alignment requirements depend on the mode the processor actually
executes, no surprises here, 32-bit code must adhere to the IA-32
requirements, while IA-32e has the 64-bit requirements.
Willy.
Thanks, didnt realize that... we run the sql server on a HP 4620/40/60
something... ( I guess... they dont mark them too well) I converted my
code for Aplha 1200 -> I64 on a 2620/40... something.. (pizza carton,
2U high) didnt release it though, no stable dev-env yet, has to test
it for all our other products, and I think Forms handeling of float or
something is holiding us back, or maybe IBM MQ.. or both
and the way in my thoughts was that I64 is x64, just like xNIX ->
uNIX, linux, ubuntu, redhat an so on...
So there are different strands/iterations/models of 64 bits out
there... I thought that when Intel helped HP with the processor it
would be the same... Guess not... we coult and have run WNT on a Alpha
2100 but thats over... will never go there again... Support? yeaah...
its like running OS/2 and complain about the printers/drivers doesnt
work.. been there, done that
The alingment error "started" when going to alpha, and it will get
worse going to I64, got an example of some code from the teacher (but
he trned the optimizer off) with 0,2 sek for the vax&vms/5 sec for
alpha and almost 100 sec for I64 with deliberate wrong code and
telling the compiler not to take care of it...
Just wondering if I will go OpenVMS or Windoze on our Oracle10g
installation... and the hardware platform, and wirtualizing it, and
putting disks in the SAN or .... arrrgh...
Thanks for taking time to explain it to me Willy
PS
like my uVAX II with VMS 4.5, RD53 disks/TK50 and all... gives me
hedaces just to order spare parts... but It works! (and so does the
DECSA connecting us to the mainframe)
//CY