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內核的內存分布圖如下:

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

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

(2)非規范區域

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

內核空間又做了如下細分:

  • 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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM