Changes between Version 10 and Version 11 of VASFeatures


Ignore:
Timestamp:
2011-10-22T16:12:13Z (13 years ago)
Author:
Jakub Jermář
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • VASFeatures

    v10 v11  
    9948-bit virtual address width
    1010
    11 ||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation''' =||= '''HelenOS use'''  =||
    12 || `FFFF800000000000`       || 128 TiB       || none                  || kernel identity^(2)^ ||
    13 || `0000800000000000`       || 16776960 TiB  || VA hole^(1)^          ||                      ||
    14 || `0000000000000000`       || 128 TiB       || none                  || uspace non-identity  ||
     11||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation'''   =||= '''HelenOS use'''             =||
     12|| `FFFF800000000000`       || 128 TiB       || none                    || kernel identity^[#amd64f2 (2)]^ ||
     13|| `0000800000000000`       || 16776960 TiB  || VA hole^[#amd64f1 (1)]^ ||                                 ||
     14|| `0000000000000000`       || 128 TiB       || none                    || uspace non-identity             ||
    1515
    16 1. depends on implementation, but in practice current implementations use 48 bits
    17 2. physical addresses beyond the limit of physical memory are mapped non-identity
     16
     171. [=#amd64f1] depends on implementation, but in practice current implementations use 48 bits
     182. [=#amd64f2] physical addresses beyond the limit of physical memory are mapped non-identity
    1819
    1920----
    2021
    21 
    2222== arm32 ==
    2323
    24 ||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation''' =||= '''HelenOS use'''  =||
    25 || `80000000`               || 2 GiB         || none                  || kernel identity^(1)^ ||
    26 || `00000000`               || 2 GiB         || none                  || uspace non-identity  ||
     24||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation''' =||= '''HelenOS use'''             =||
     25|| `80000000`               || 2 GiB         || none                  || kernel identity^[#arm32f1 (1)]^ ||
     26|| `00000000`               || 2 GiB         || none                  || uspace non-identity             ||
    2727
    28 1. physical addresses beyond the limit of physical memory are mapped non-identity
    2928
     291. [=#arm32f1] physical addresses beyond the limit of physical memory are mapped non-identity
    3030
    3131----
    3232
    33 
    3433== ia32 ==
    3534
    36 ||= '''Starting address''' =||= '''Size''' =||= '''HW limitation''' =||= '''HelenOS use'''  =||
    37 || `80000000`               || 2 GiB        || none                  || kernel identity^(1)^ ||
    38 || `00000000`               || 2 GiB        || none                  || uspace non-identity  ||
     35||= '''Starting address''' =||= '''Size''' =||= '''HW limitation''' =||= '''HelenOS use'''            =||
     36|| `80000000`               || 2 GiB        || none                  || kernel identity^[#ia32f1 (1)]^ ||
     37|| `00000000`               || 2 GiB        || none                  || uspace non-identity            ||
    3938
    40 1. physical addresses beyond the limit of physical memory are mapped non-identity
     391. [=#ia32f1] physical addresses beyond the limit of physical memory are mapped non-identity
    4140
    4241----
     
    4948
    5049== mips32 ==
     50     
     51||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation'''                   =||= '''HelenOS use'''   =||
     52|| `E0000000`               || 512 MiB       || kseg3, kernel                           || unused                ||
     53|| `C0000000`               || 512 MiB       || ksseg, kernel                           || unused                ||
     54|| `A0000000`               || 512 MiB       || kseg1, kernel uncached^[#mips32f1 (1)]^ || `hw_map()`            ||
     55|| `80000000`               || 512 MiB       || kseg0, kernel identity^[#mips32f2 (2)]^ || kernel identity       ||
     56|| `00000000`               || 2 GiB         || kuseg, uspace                           || uspace non-identity   ||
    5157
    52 ||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation'''         =||= '''HelenOS use'''   =||
    53 || `E0000000`               || 512 MiB       || kseg3, kernel                 || unused                ||
    54 || `C0000000`               || 512 MiB       || ksseg, kernel                 || unused                ||
    55 || `A0000000`               || 512 MiB       || kseg1, kernel uncached^(1)^   || `hw_map()`            ||
    56 || `80000000`               || 512 MiB       || kseg0, kernel identity^(2)^   || kernel identity       ||
    57 || `00000000`               || 2 GiB         || kuseg, uspace                 || uspace non-identity   ||
    58 
    59 1. maps to physical 0, uncached, bypasses TLB
    60 2. maps to physical 0, cacheable, bypasses TLB
     581. [=#mips32f1] maps to physical 0, uncached, bypasses TLB
     592. [=#mips32f2] maps to physical 0, cacheable, bypasses TLB
    6160
    6261
     
    6564== ppc32 ==
    6665
    67 ||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation''' =||= '''HelenOS use'''    =||
    68 || `80000000`               || 2 GiB         || none                  || kernel identity^(1)^   ||
    69 || `00000000`               || 2 GiB         || none                  || uspace non-identity    ||
     66||= '''Starting address''' =||= '''Size'''  =||= '''HW limitation''' =||= '''HelenOS use'''              =||
     67|| `80000000`               || 2 GiB         || none                  || kernel identity^[#ppc32f1 (1)]^  ||
     68|| `00000000`               || 2 GiB         || none                  || uspace non-identity              ||
    7069
    71 1. physical addresses beyond the limit of physical memory are mapped non-identity
     701. [=#ppc32f1] physical addresses beyond the limit of physical memory are mapped non-identity
    7271
    7372----
     
    797844-bit virtual address width
    8079
    81 ||= '''Starting address''' =||= '''Size'''   =||= '''HW limitation''' =||= '''HelenOS use'''    =||
    82 || `FFFFF80000000000`       || 8 TiB          || kernel^(1)^           || kernel identity^(3)^  ||
    83 || `0000080000000000`       || 16777200 TiB   || VA hole^(2)^          ||                        ||
    84 || `0000000000000000`       || 8 TiB          || kernel^(1)^           || kernel identity^(3)^  ||
     80||= '''Starting address''' =||= '''Size'''   =||= '''HW limitation'''     =||= '''HelenOS use'''               =||
     81|| `FFFFF80000000000`       || 8 TiB          || kernel^[#sparc64f1 (1)]^  || kernel identity^[#sparc64f3 (3)]^ ||
     82|| `0000080000000000`       || 16777200 TiB   || VA hole^[#sparc64f2 (2)]^ ||                                   ||
     83|| `0000000000000000`       || 8 TiB          || kernel^[#sparc64f1 (1)]^  || kernel identity^[#sparc64f3 (3)]^ ||
    8584
    8685
     
    898864-bit virtual address width
    9089
    91 ||= '''Starting address''' =||= '''Size'''    =||= '''HW limitation''' =||= '''HelenOS use'''    =||
    92 || `0000000000000000`       || 16 EiB          || kernel^(1)^           || kernel identity^(3)^   ||
     90||= '''Starting address''' =||= '''Size'''    =||= '''HW limitation'''    =||= '''HelenOS use'''                =||
     91|| `0000000000000000`       || 16 EiB          || kernel^[#sparc64f1 (1)]^ || kernel identity^[#sparc64f3 (3)]^  ||
    9392
    9493
     
    979648-bit virtual address width
    9897
    99 ||= '''Starting address''' =||= '''Size'''   =||= '''HW limitation''' =||= '''HelenOS use'''    =||
    100 || `FFFF800000000000`       || 128 TiB        || kernel^(1)^           || kernel identity^(3)^   ||
    101 || `0000800000000000`       || 16776960 TiB   || VA hole^(4), (5)^     ||                        ||
    102 || `0000000000000000`       || 128 TiB        || kernel^(1)^           || kernel identity^(3)^   ||
     98||= '''Starting address''' =||= '''Size'''   =||= '''HW limitation'''                        =||= '''HelenOS use'''                =||
     99|| `FFFF800000000000`       || 128 TiB        || kernel^[#sparc64f1 (1)]^                     || kernel identity^[#sparc64f3 (3)]^  ||
     100|| `0000800000000000`       || 16776960 TiB   || VA hole^[#sparc64f4 (4)], [#sparc64f5 (5)]^  ||                                    ||
     101|| `0000000000000000`       || 128 TiB        || kernel^[#sparc64f1 (1)]^                     || kernel identity^[#sparc64f3 (3)]^  ||
    103102
    104 1. both kernel and uspace run in separated 64-bit address spaces
    105 2. no code within 4GiB reach of the VA hole on UltraSPARC I and II
    106 3. physical addresses beyond the limit of physical memory are identity mapped, uncachable
    107 4. no code within 4GiB reach of the VA hole on T1
    108 5. no code within 8KiB below VA hole on T2
     1031. [=#sparc64f1] both kernel and uspace run in separated 64-bit address spaces
     1042. [=#sparc64f2] no code within 4GiB reach of the VA hole on UltraSPARC I and II
     1053. [=#sparc64f3] physical addresses beyond the limit of physical memory are identity mapped, uncachable
     1064. [=#sparc64f4] no code within 4GiB reach of the VA hole on T1
     1075. [=#sparc64f5] no code within 8KiB below VA hole on T2