新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM存儲器之:存儲管理單元MMU

ARM存儲器之:存儲管理單元MMU

作者: 時(shí)間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://www.2s4d.com/article/257009.htm

一級頁表和二級頁表的特征如表15.21所示。

表15.21 一級頁表和二級頁表特征

類型

頁表占用的存儲空間

(單位:KB)

支持的頁大小

(單位:KB)

頁表項(xiàng)數(shù)目

一級頁表

16

1024

4096

粗二級頁表

1

1,4,64

1024

細(xì)二級頁表

4

1,4,64

256

(2)傳輸表基地址

當(dāng)處理器發(fā)出地址請求信號,而其要求的虛擬地址沒有包含在TLB中時(shí),將會初始化一個(gè)產(chǎn)生過程。傳輸過程需要的地址轉(zhuǎn)換表——傳輸表的基地址存放在協(xié)處理器寄存器c2中,通過此基地址找到傳輸表,準(zhǔn)備一次地址傳輸過程。

(3)基于一級頁表的地址變換過程

基于一級頁表的地址變換過程是指從虛擬地址到物理地址的轉(zhuǎn)換只需要一級頁表就能完成的地址轉(zhuǎn)換。一級頁表地址轉(zhuǎn)換過程如圖15.25所示。

圖15.25一級頁表地址轉(zhuǎn)換過程

圖15.25中,CP15寄存器c2中存放的是內(nèi)存中一級頁表的基地址。因?yàn)橐患夗摫泶笮?6KB,也就是說,一級頁表是16KB地址對齊的,所以c2中bits[13∶0]=0,bits[31∶14]為內(nèi)存中頁表基地址。

CP15的寄存器c2的bits[31∶14]和虛擬地址的bits[31∶20]結(jié)合作為一個(gè)31位數(shù)的高30位值,忽略32位值的最后兩位,可以使用該值從頁表中查到一個(gè)4字節(jié)的地址頁表項(xiàng)。

一級頁表支持以下4種類型的頁表項(xiàng)。

·1MB段轉(zhuǎn)換項(xiàng);

·指向細(xì)二級頁表的目錄項(xiàng);

·指向粗二級頁表的目錄項(xiàng);

·產(chǎn)生中止異常的錯(cuò)誤項(xiàng)。

系統(tǒng)通過頁表項(xiàng)的低兩位bits[1:0]來確定頁表項(xiàng)的類型。頁表項(xiàng)的格式要求二級頁表的地址必須與其頁大小的倍數(shù)對齊。一級頁表的各種頁表項(xiàng)的格式如圖15.26所示。

圖15.26一級頁表項(xiàng)

如果bits[1:0]=0b10時(shí),該頁表項(xiàng)為段描述符(SectionDescriptor),段描述符定義了對應(yīng)的1MB的虛擬存儲空間的地址映射關(guān)系。

如果bits[1:0]=0b01時(shí),該頁表項(xiàng)包含了粗二級頁表的物理地址。該粗二級頁表定義了對應(yīng)的1MB虛擬存儲空間的地址映射關(guān)系。它可以實(shí)現(xiàn)以大頁和小頁為單位的地址映射。

如果bits[1:0]=0b11時(shí),該頁表項(xiàng)包含了細(xì)二級頁表的物理地址。該細(xì)二級頁表定義了對應(yīng)的1MB虛擬存儲空間的地址映射關(guān)系。它可以實(shí)現(xiàn)以大頁、小頁和極小頁為單位的地址映射。

如果bits[1:0]=0b00時(shí),說明此頁表項(xiàng)是一個(gè)錯(cuò)誤頁表項(xiàng)。它將產(chǎn)生一個(gè)存儲頁錯(cuò)誤。錯(cuò)誤條件會導(dǎo)致預(yù)取指令中止或數(shù)據(jù)中止,這取決于具體的存儲器訪問類型。

存儲器相關(guān)文章:存儲器原理




關(guān)鍵詞: ARM 存儲管理單元 MMU

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉