ARM64內核內存佈局圖

ARM64架構處理器採用48位物理尋址機制,最大能夠尋找到256TB的物理地址空間。對於目前的應用來講已經足夠了,不須要擴展到64位的物理地址尋址。虛擬地址也一樣最大支持48位支持,因此在處理器的架構設計上,把虛擬地址空間劃分爲兩個空間,每一個空間最大支持256TB。Linux內核在大多數體系結構中都把兩個地址空間劃分爲用戶空間和內核空間。架構

  • 用戶空間:0x0000_0000_0000_0000到0x0000_ffff_ffff_ffff佈局

  • 內核空間:0xffff_0000_0000_0000到0xffff_ffff_ffff_ffff架構設計

64位的Linux內核已經沒有高端內存的概念了,由於48位的尋址空間已經足夠大了設計

在QEMU實驗平臺上,ARM64架構的LInux內核的內存分佈圖以下:orm

如圖所示,ARM64架構處理器的Linux內核內存佈局圖。ARM64架構處理器的Linux內核內存佈局以下:blog

(1)用戶空間:0x0000_0000_0000_0000到0x0000_ffff_ffff_ffff,一共有256TB。內存

(2)非規範區域擴展

(3)內核空間:0xffff_0000_0000_0000到0xffff_ffff_ffff_ffff。一共有256TB。map

內核空間又作了以下細分:im

  • vmalloc區域:0xffff_0000_0000_0000到0xffff_7bff_bfff_0000,大小爲126974GB。
  • vmemmap區域:0xffff_7bff_c000_0000到0xffff_7fff_c000_0000,大小爲4096GB。
  • PCI I/O區域:0xffff_7fff_ae00_0000到0xffff_7fff_be00_0000,大小爲16MB。
  • Modules區域:0xffff_7fff_c000_0000到0xffff_8000_0000_0000,大小爲64MB。
  • normal memory線性映射區:0xffff_8000_0000_0000到0xffff_ffff_ffff_ffff,大小爲128TB。
相關文章
相關標籤/搜索