- Aug 12, 2014
- 522
- 3
- 81
Hello,
OK, in modern 64-bit Intel systems, processors, while in the 64-bit sub-mode of the IA-32e mode (I suppose what most people just call 64-bit mode), have a linear address space of 2^64 bytes.
Now, current computers can't reach all 2^64 addresses, but I think that they use the bottom 2^48.
That is, the theoretical linear address space is 0 to (2^64) - 1, but the actual current linear address space is 0 to (2^48) - 1.
But, 2^48 is still a huge number, 281,474,976,710,656 to be exact; that's over 281 trillion.
Now, computers don't come with anything close to that amount of RAM (NSA hardware excluded).
Further, if I have paging turned off and can't rely on swapping out with a non-volatile memory device to extend the physical address space, then linear addresses directly become physical addresses with no further manipulation.
So, what happens if my 64-bit computer running in 64-bit mode with paging turned off has 6 GB of RAM, but a process that's running upon it puts 7,000,000,000 (7 billion in decimal) or something greater but less than (2^48) - 1 on the address bus in an attempt to read or write or execute?
Obviously, 7,000,000,000 > 6 binary billion.
Thanks.
OK, in modern 64-bit Intel systems, processors, while in the 64-bit sub-mode of the IA-32e mode (I suppose what most people just call 64-bit mode), have a linear address space of 2^64 bytes.
Now, current computers can't reach all 2^64 addresses, but I think that they use the bottom 2^48.
That is, the theoretical linear address space is 0 to (2^64) - 1, but the actual current linear address space is 0 to (2^48) - 1.
But, 2^48 is still a huge number, 281,474,976,710,656 to be exact; that's over 281 trillion.
Now, computers don't come with anything close to that amount of RAM (NSA hardware excluded).
Further, if I have paging turned off and can't rely on swapping out with a non-volatile memory device to extend the physical address space, then linear addresses directly become physical addresses with no further manipulation.
So, what happens if my 64-bit computer running in 64-bit mode with paging turned off has 6 GB of RAM, but a process that's running upon it puts 7,000,000,000 (7 billion in decimal) or something greater but less than (2^48) - 1 on the address bus in an attempt to read or write or execute?
Obviously, 7,000,000,000 > 6 binary billion.
Thanks.
Last edited: