ARM VMSA (Virtual Memory System Architecture)

VMSA Address Types & Spaces

VA

  • Maximum address width: 48bits
  • Address Space Size: 256TB
VA range countrangesubrange
Translation stage with single VA Range0x0000 0000 0000 0000 ~ 0x0000 FFFF FFFF FFFFx
Translation stage with two VA Range0x0000 0000 0000 0000 ~ 0x0000 FFFF FFFF FFFF0x FFFF 0000 0000 0000 ~ 0xFFFF FFFF FFFF FFFF

(Special Case) ARMv8.2-LVA Implemented & 64KB translation granule

  • Maximum address width: 52bits
  • Address Space Size: 4PB
VA range countrangesubrange
Translation stage with single VA Range0x0000 0000 0000 0000 ~ 0x000F FFFF FFFF FFFFx
Translation stage with two VA Range0x0000 0000 0000 0000 ~ 0x000F FFFF FFFF FFFF0xFFF0 0000 0000 0000 ~ 0xFFFF FFFF FFFF FFFF

Translation stage with single VA Range

Translation stage with two VA Ranges

VMSAv8-64 Descriptor formats

VMSAv8-64 Table Descriptor format

OAGranule63 to 5958 to 515049 to 4847 to 1615 to 1413 to 1211 to 109 to 87 to 210
52bit4KBAttributesIGNOREDRES0Next-level Table Address[49:12]<<<IGNOREDNext-level Table Address[51:50]IGNORED11
52bit16KBAttributesIGNOREDRES0Next-level Table Address[49:14]<<RES0IGNOREDNext-level Table Address[51:50]IGNORED11
52bit64KBAttributesIGNOREDRES0<Next-level Table Address[47:16]Next-level Table Address[51:48]<<<<11
48bit4KBAttributesIGNOREDRES0<Next-level Table Address[47:12]<<IGNORED<<11
48bit16KBAttributesIGNOREDRES0<Next-level Table Address[47:14]<RES0IGNORED<<11
48bit64KBAttributesIGNOREDRES0<Next-level Table Address[47:16]RES0<IGNORED<<11

Attribute Field

Condition6362~61605958~535251
Stage 1NSTableAPTableUXNTable or XNTablePXNTable or RES0 or IGNOREDIGNOREDProtected or IGNOREDIGNORED
Stage 2 with indirect permission disabledRES0RES0<<IGNORED<<
Stage 2 with indirect permission enabledRES0IGNORED<<IGNORED<<

VMSAv8-64 Page Descriptor format

OAGranule63~50
52bit4KB