I've recently learned that AMD-64 (x86_64) processors - while theoretically capable of addressing 64-bits of address space, actually only address 48-bits. Evidently, AMD did not think a full 64-bit address space would be necessary or practical any time soon.
From the Wikipedia article:
The AMD64 architecture defines a 64-bit virtual address format, of which the low-order 48 bits are used in current implementations. This allows up to 256 TB (248 bytes) of virtual address space.
In fact, this limited address space is sometimes actually "exploited" by programmers, who stuff the high 16-bits of a pointer with extra information. (See for example, tagged_ptr in the Boost C++ libraries).
I'm trying to find out if this same practice holds for other 64-bit architectures, such as IA64 and PowerPC. I've been Googling around for some time, but can't find any information on this.
Does the (little used) IA64 architecture, or PowerPC architecture also only have a 48-bit address space in practice?