HAL Virtual Memory Layout (Ultra-Pico)                          Index in PTE

|=======================| <- 4GB                = 100000000
|   Reserved for PDE    |                                       1023
|-----------------------| <- 4GB - 4KB          = 
|                       |
|   Reserved for PTEs   |
|                       |
|=======================| <- 4GB - 12KB         = 
|      Local APIC       |
|-----------------------| <- 4GB - 16KB         =
|                       |                                       
| IO APIC (1 ~ 8 Pages) |                                        
|                       |                                       
|=======================| <- 4GB - 16KB - (4KB ~ 32KB)  = 
|                       |
|          ...          |
|                       |
|  Global Memory Pool   |
|                       |                                       End of ELF + 1
|=======================|
|                       |                                       End of ELF
| Text and Static Data  |                                        |
|                       |                                        8
|-----------------------| <- 4GB - 512KB + 4KB  = 
|      Init Stack       |
|=======================| <- 4GB - 512KB        = 
|                       |
|   Kernel Text and     |
|     Static Data       |
|                       |
|=======================| <- 4GB - 1MB
|                       |
|          ...          |
|                       |
|     Per-CPU Data      |
|   2 Pages * (CPU-1)   |
|    Up to 256 CPUs     |
|                       |
|          ...          |
|                       |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| Per-CPU Private Data  |                                       1007
|-----------------------| <- 4GB - 4MB + 4KB   =
|     Per-CPU Stack     |                                       1004
|=======================| <- 4GB - 4MB   =




Physical Memory Layout
|=======================| <- End of Physical Memory
|                       |
|     Dynamic Data      |
|                       |
|=======================| <- 1MB + 512KB + Kernel Loaded Size + 8KB * Number CPUs
|                       |
| Per-CPU Data & Stack  |
|                       |
|=======================| <- 2MB + Initial Kernel PTE Size
|                       |
|  Initial Kernel PTEs  |
|                       |                                       512
|=======================| <- 2MB
|                       |                                       511
|    Kernel Text and    |
|      Static Data      |
|                       |                                       384
|=======================| <- 1MB + 512KB
|       Kernel PDE      |                                       383
|-----------------------| <- 1MB + 512KB - 4KB
|   Kernel Low 4MB PTE  |                                       382
|-----------------------| <- 1MB + 512KB - 8KB
|  Kernel High 4MB PTE  |                                       381
|=======================| <- 1MB + 512KB - 12KB
|                       |                                       380
| HAL Text, Static Data,|
|    and Memory Pool    |
|                       |                                       256
|=======================| <- 1MB
|          ...          |
|  Reserved 256 Pages   |
|          ...          |
|=======================| <- 0
