[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: perspectives on 32 bit vs 64 bit



Adam Skutt wrote:

Helge Hafting wrote:

The limit is 4GB.

No, wrong.  The limit is 64 GiB physical RAM, period.  PAE has been part
of the ISA for pratically forever now, so it's silly to say it's
anything else.

Well, correct.


However, practically, Linux can only use 16 GiB physical RAM without
special patches, because of how the virtual memory is split by default
(1GiB/3GiB).  Windows is subject to the same limitation.

Fully getting around this requires a 4G/4G patch, which is a terrible
performance penalty because it requires a full TLB flush on every
context switch.

> (Well,

you can theoretically address more, but you definitely don't want
to do the work necessary to do that.

No, you cannot.  One process cannot address more than 4 GiB virtual
memory at a time, period.

You can address more than 4GiB by using the always-unpopular
"segment" registers found on intel processors. That means 48-bit
pointers, which certainly can address more than 4G.
And yes, I know that the segmentation mechanism creates a 32-bit
address from the 48-bit pointer, but that can be worked around.
Simply have all but one segment "not present" and rely on the os
to trap access and remap the page tables whenever the code switch segments.

It is ugly and bad for performance, which is why I said "you don't
want to do it." But doable - certainly.

Helge Hafting



Reply to: