【方輝專欄】ARM64體系結(jié)構(gòu)編程與實(shí)踐學(xué)習(xí)筆記(八) ARM64內(nèi)存管理
2022-07-28
摘要: 本文主要對(duì)ARM64內(nèi)存管理相關(guān)知識(shí)進(jìn)行介紹。關(guān)鍵字:Armv8、體系結(jié)構(gòu)、ARM64內(nèi)存管理、頁(yè)表1. Arm64內(nèi)存管理組成Arm64處理器內(nèi)核的內(nèi)存管理單元(Memory Management Unit,MMU)包括轉(zhuǎn)換旁路緩沖(Translation Lookaside Buffer, TLB)和表遍歷單元(Table Walk Unit, TWU)。MMU的工作職責(zé)是把輸入的虛擬地址翻譯成對(duì)應(yīng)的物理地址及相應(yīng)的頁(yè)表屬性和內(nèi)存訪問(wèn)權(quán)限等信息。TWU負(fù)責(zé)完成查表過(guò)程,TLB用于緩存頁(yè)表轉(zhuǎn)換的結(jié)果,從而縮短頁(yè)表查詢的時(shí)間。進(jìn)程空間又分為內(nèi)核空間(kernel space)和用戶空間(user space),無(wú)論是內(nèi)核空間還是用戶空間都可以通過(guò)處理器提供的頁(yè)表機(jī)制映射到實(shí)際的物理地址。在對(duì)稱多系統(tǒng)(Symmetric Multi-Processor,SMP)中,每個(gè)處理器內(nèi)核內(nèi)置了MMU和TLB硬件單元。例如,CPU0和CPU1共享物理內(nèi)存,也共享同一份頁(yè)表,當(dāng)一個(gè)CPU更改了頁(yè)表項(xiàng)時(shí),需要使用BBM(Break Before Make)機(jī)制來(lái)保證其他CPU能訪問(wèn)正確和有效的TLB。2. AArch64頁(yè)表機(jī)制在AArch64體系結(jié)構(gòu)中,以48位地址總線位寬為例,虛擬地址(VA)被劃分為兩個(gè)空間,每個(gè)空間最多支持256TB.低位地址空間0x0000 0000 0000 0000 - 0x0000 FFFF FFFF FFFF;高位地址空間0xFFFF 0000 0000 0000 - 0xFFFF FFFF FFFF FFFF;在AArch64體系結(jié)構(gòu)中的頁(yè)表支持如下特性:最多可以支持4級(jí)頁(yè)表。輸入地址的最大有效位寬為48位。輸出地址的最大有效位寬為48位。翻譯的頁(yè)面粒度可以是4KB、16KB或64KB。處理器查詢頁(yè)表的過(guò)程如下:根據(jù)VA[63]選擇TTBR0/1;當(dāng)VA[63]=0選擇TTBR0,否則選擇TTBR1;VA[47:39]作為L(zhǎng)0索引,L0頁(yè)表有512個(gè)頁(yè)表項(xiàng)。VA[38:30]作為L(zhǎng)1索引,L1頁(yè)表有512個(gè)頁(yè)表項(xiàng)。VA[29:21]作為L(zhǎng)2索引,L2頁(yè)表有512個(gè)頁(yè)表項(xiàng)。VA[20:12]作為L(zhǎng)3索引,L3頁(yè)表有512個(gè)頁(yè)表項(xiàng)。L3頁(yè)表項(xiàng)存放4K頁(yè)面物理基地址,再加上VA[11:0]構(gòu)成全部物理地址。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++關(guān)于億道電子億道電子技術(shù)有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國(guó)內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國(guó)廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過(guò)程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。20 年來(lái),先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們?cè)谥袊?guó)區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國(guó)本土客戶,為客戶提供從芯片級(jí)開發(fā)工具、EDA 設(shè)計(jì)工具、軟件編譯以及測(cè)試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡(jiǎn)單、更可靠、更高效的目標(biāo)。歡迎關(guān)注“億道電子”公眾號(hào)了解更多研發(fā)工具軟件知識(shí)
查看更多→