Question

Is 36-bit address bus needed for Physical Address Extension on 32-bit processors? What would happen if I used 32-bit address located in page that has 36-bit address?

Was it helpful?

Solution 2

36-bit (or larger) physical addresses are not needed for PAE. This allows software to use PAE without caring about the physical address size (and without needing to write completely different paging code for some CPUs - e.g. Intel Atom). It also means that certain features that are only supported by PAE (and long mode) can be used on CPUs that don't have a 36-bit (or larger) physical address bus (specifically, the "no execute" or "execute disable" feature).

It's important not to confuse virtual addresses (addresses used by software) and physical addresses (addresses used by the CPU, hardware, etc). PAE has no effect on virtual addresses and all virtual addresses are still only 32-bit. If you access something at a 32-bit (virtual) address, the CPU converts the 32-bit virtual address into a 36-bit physical address using lookup tables (page tables, page directories, and the page directory pointer table).

OTHER TIPS

Is 36-bit address bus needed for Physical Address Extenstion on 32-bit processors?

Obviously, there's practically no benefit in enabling or supporting PAE on a CPU with a 32-bit address bus since you wouldn't be able to access anything at physical addresses at and above 232.

What would happen if I used 32-bit address located in page that has 36-bit address?

The question isn't quite clear.

Virtual addresses remain 32-bit when PAE is enabled. Physical addresses in page tables extend to 36 bits (as usual, the lowest 12 bits aren't stored in PDEs and PTEs, they are considered 0 as 4KB pages are naturally aligned on 4KB address boundaries).

If you're talking about the physical addresses in the PDEs and PTEs, nobody's preventing you from using in them physical addresses lesser than 232.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top