ARM核920T性能優(yōu)化之MMU_第1頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、arm核920t性能優(yōu)化之mmu為了使任務有各自的虛擬存儲映射,mmu硬件采納地址重定位(address relocation),即在地址拜訪主存之前,轉(zhuǎn)換由處理器核輸出的存儲器地址??烧J為在介于內(nèi)核和主存間的mmu中有一個重定位寄存器,這樣就能很簡單理解這個轉(zhuǎn)換過程。當處理器核產(chǎn)生一個虛擬地址時,mmu取出這個虛擬地址的高位,并用重定位寄存器中的值來替換它,從而形成一個物理地址。虛擬地址的低位是一個偏移量,它轉(zhuǎn)換成物理存儲器的一個特定地址。一個重定位寄存器只能轉(zhuǎn)換一塊存儲空間,這塊存儲空間的大小由虛擬地址的偏移量部分所占的位數(shù)所打算。這樣的一塊虛擬存儲空間稱為一頁(page),而轉(zhuǎn)換過程中所

2、對應的那塊物理存儲空間稱為一個頁幀(page frame)。mmu暫時存放轉(zhuǎn)換數(shù)據(jù)的一組重定位寄存器事實上是一個由64個重定位寄存器組成的全相聯(lián)cache。這個cache稱為轉(zhuǎn)換旁路緩沖器(tlb),tlb緩存最近被拜訪的頁的轉(zhuǎn)換數(shù)據(jù)。除了用法重定位寄存器外,mmu還用法主存中的表來存放描述系統(tǒng)中用到的虛擬存儲器映射的數(shù)據(jù),這些轉(zhuǎn)換數(shù)據(jù)的表稱為頁表(page tables)。頁表中的每個頁表項pte(page table entry)包含關(guān)于虛擬頁的以下信息:用于將虛擬頁轉(zhuǎn)換為物理頁的物理基地址,分配給該頁的拜訪權(quán)限,頁的cache和寫緩沖器配置。通過上下文切換時激活不同的頁表,使得執(zhí)行有重疊

3、虛擬地址的多個任務成為可能。mmu可以重定位一個任務的執(zhí)行地址,而無需在物理存儲器中移動這個任務。任務的物理存儲空間只是容易地通過激活和不激活頁表來映射到虛擬存儲空間。當剛剛提到的地址轉(zhuǎn)換發(fā)生時,cache可能包括無效的,從舊的頁表映射來的虛擬數(shù)據(jù)。為了保證存儲器數(shù)據(jù)的全都性,cache可能需清理和清除。tlb可能也需清除,由于它也可能緩存了舊的轉(zhuǎn)換數(shù)據(jù)。任務切換需要以下步驟:1)保存活躍任務的上下文,并將該任務置于睡眠態(tài);2)清除cache,假如用法回寫策略,則需要清理d-cache;3)清除tlb,從而移除原任務的轉(zhuǎn)換數(shù)據(jù);4)配置mmu,以用法新的頁表,把虛擬運行空間轉(zhuǎn)換為被喚醒任務在物

4、理存儲器中的位置;5)復原被喚醒任務的上下文6)繼續(xù)執(zhí)行復原的任務二頁表arm mmu硬件采納2級頁表結(jié)構(gòu):一級頁表(l1)和二級頁表(l2)。一級頁表惟獨一個l1主頁表(l1 master page table)。l1主頁表包含兩種類型的頁表項:保存指向二級頁表起始地址指針的頁表項和保存用于轉(zhuǎn)換1mb段的頁表項。l1主頁表也稱為段頁表(section page table)。l1主頁表將4gb的地址空間劃分為多個1mb的段(section),因此l1頁表包含4096個頁表項,l1主頁表是一個混合表,可作為l2頁表的頁名目,也可作為用于轉(zhuǎn)換1mb虛擬空間的l2粗(coarse)頁表或l2細(f

5、ine)頁表的指針;當l1頁表用于轉(zhuǎn)換一個1mb的段時,其頁表項(pte)包含的是物理存儲器中1mb頁幀(page frame)的首地址。名目頁表項和1mb的段頁表項可以共存于l1主頁表。一級頁表項:一級頁表支持4種類型的頁表項:1)1mb段轉(zhuǎn)換項2)指向l2細頁表的名目項3)指向l2粗頁表的名目項4)產(chǎn)生中止異樣的錯誤項二級頁表項:l2頁表有4種可能的頁表項:1)定義64kb頁幀屬性的大(large)頁表項;2)定義4kb頁幀的小(small)頁表項;3)定義1kb頁幀的微(tiny)頁表項;4)拜訪時產(chǎn)生頁錯誤中止異樣的錯誤頁表項;l1轉(zhuǎn)換表基址cp15:c2寄存器保存轉(zhuǎn)換表基地址ttb(

6、translation table base address)-指向l1主頁表在虛存中的位置。cp15:c2寄存器的格式三轉(zhuǎn)換旁路緩沖器(tlb)單步頁表搜尋:假如mmu搜尋的是1mb大小的段頁,則硬件能用單步搜尋找到所要的頁表項,由于1mb的頁表項是存放在l1主頁表里的。2步頁表搜尋:假如mmu搜尋的是大小為1kb,4kb,16kb或64kb的頁,則頁表搜尋須執(zhí)行2步才干找到地址轉(zhuǎn)換數(shù)據(jù)。四域和拜訪權(quán)限有兩種不同的控制用來管理一個任務的存儲器拜訪權(quán)限,:域(domain)用于主控制(primay control),頁表中的拜訪權(quán)限用于次控制(secondary control)。有16種不同

7、的域可以分配給虛存的1mb段,并通過設置l1主頁表項(pte)中的域的有關(guān)位(位域)來分配給一個段。當一個域分配給了一個段時,它必需遵守分配給這個域的拜訪權(quán)限。域的拜訪權(quán)限在cp15:c3寄存器中分配,它控制處理器核拜訪虛存段的能力。16個可用的域,每個域用法cp15:c3寄存器的2位來定義拜訪權(quán)限,域拜訪位取值及對應的意義如下表所列:基于頁表的拜訪權(quán)限。頁表項中的ap位打算該頁的拜訪權(quán)限?!癮p”,“ap3”,“ap2”,“ap1”,“ap0”結(jié)合cp15寄存器c1的r/s位,打算如何舉行拜訪權(quán)限檢查。段描述符中的“ap”控制囫圇段(1mb)的拜訪權(quán)限;大頁描述符中的每個“apx”(x為03

8、)控制一個大頁(64kb)中1/4內(nèi)存的拜訪權(quán)限,即“ap3”對應大頁高端的16kb,“ap0”對應大頁低端的16kb;小頁描述符與大頁描述符相像,每個“apx”控制一個小頁(4kb)的1/4內(nèi)存的拜訪權(quán)限。微小頁中的“ap”就控制囫圇微小頁1kb的拜訪權(quán)限。五cache和寫緩沖六cp15:c1控制寄存器七迅速上下文切換擴展迅速上下文切換擴展fcse(fast context switch extension),是mmu中的一個附加硬件,用于提高arm系統(tǒng)的系統(tǒng)性能。fcse使得多個自立的任務可以運行在一個固定的重疊存儲空間中,而上下文切換時又不需要清理或清除cache,或tlb。假如沒有fc

9、se,則從一個任務切換到另一個任務需要轉(zhuǎn)變虛擬存儲映射。假如涉及兩個有重疊地址的任務,則保存在cache和tlb中的信息將變?yōu)闊o效,這樣系統(tǒng)就必需清除cache和tlb中的無效數(shù)據(jù)。清除這些模塊的過程使任務切換增強了無數(shù)時光,由于內(nèi)核不僅要清除cache和tlb中的無效數(shù)據(jù),還要從主存中裝載新的數(shù)據(jù)到cache和tlb。用法fcse,虛擬存儲管理增強了一次地址轉(zhuǎn)換。fcse在虛擬地址到達cache和tlb前,用法一個特別的,包含進程id值的重定位寄存器來修改虛擬地址。把修改之前的虛存地址稱為va(virtual address),把第一次轉(zhuǎn)換之后的地址稱為修改后虛地址mva(modified virtual address)。這樣,任務間的切換就不用涉及到轉(zhuǎn)變頁表,只需容易的將新任務的進程id寫到位于cp15的fcse進程id寄存器。為了利用fcse,編譯鏈接全部的任務,使他們都運行在虛存的第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論