2

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?

  • Please provide what you have read that indicates that x86_64 processors cannot address 64-bits so we are all on the same page. – Ramhound Nov 4 '14 at 16:08
  • Microsoft limited the memory usage, this is not AMDs issue. – magicandre1981 Nov 4 '14 at 18:42
  • @magicandre1981 Microsoft supports a max of 512GB on Windows 8 Professional, and 4TB with Windows Server 2012, but the actual x86-64 processor architecture has a limit at 256TB. – Kevin Panko Nov 6 '14 at 19:22
  • @KevinPanko I know this. MS implemented the limits because supporting 256TB makes no sense today. We won't hit this limit soon. – magicandre1981 Nov 7 '14 at 4:48
3

No, the normal situation is for all 64 bits to be used for the address, even though many of those bits are always going to be zeros.

It is only the AMD64 situation that is unusual, and therefore worth mentioning that only 48 bits are used.

From IA-64:

It is a 64-bit register-rich explicitly parallel architecture. The base data word is 64 bits, byte-addressable. The logical address space is 264 bytes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.