ARM存儲(chǔ)器之:存儲(chǔ)管理單元MMU
基于細(xì)二級(jí)頁表的地址變換過程如圖15.29所示。
(7)基于二級(jí)頁表的地址變換過程
二級(jí)頁表有4種可能的頁表項(xiàng):
·定義64KB頁幀屬性的大(Large)頁表項(xiàng);
·定義4KB頁幀屬性的?。⊿mall)頁表項(xiàng);
·定義1KB頁幀屬性的微(tiny)頁表項(xiàng);
·訪問中止異常的錯(cuò)誤項(xiàng)。
系統(tǒng)通過頁表項(xiàng)的最低位[1:0]來確定頁表項(xiàng)的類型。二級(jí)頁表的頁表項(xiàng)格式如圖15.30所示。
當(dāng)bits[1:0]=0b01時(shí),該頁表項(xiàng)為大頁表項(xiàng),它包含了一個(gè)64KB物理存儲(chǔ)塊的基地址。如果頁表是細(xì)二級(jí)頁表,那么大頁表項(xiàng)將在表中重復(fù)64次;如果頁表是粗二級(jí)頁表,那么大頁表項(xiàng)將在表中重復(fù)16次。
圖15.29基于細(xì)二級(jí)頁表的地址變換過程
圖15.30二級(jí)頁表的頁表項(xiàng)格式
當(dāng)bits[1:0]=0b10時(shí),該頁表項(xiàng)為小頁表項(xiàng),它保存一個(gè)4KB物理存儲(chǔ)塊的基地址。如果頁表是細(xì)二級(jí)頁表,那么小頁表項(xiàng)將在表中重復(fù)4次;如果頁表是粗二級(jí)頁表,那么大頁表項(xiàng)只需在表中出現(xiàn)1次。
當(dāng)bits[1:0]=0b11時(shí),該頁表項(xiàng)為微頁表項(xiàng),它保存一個(gè)1KB物理存儲(chǔ)塊的基地址。如果頁表是細(xì)二級(jí)頁表,那么微頁表項(xiàng)只需在表中重復(fù)1次;微頁表項(xiàng)不會(huì)出現(xiàn)在粗二級(jí)頁表中,如果出現(xiàn),那么訪問結(jié)果不可預(yù)知。
當(dāng)bits[1:0]=0b00時(shí),該頁表項(xiàng)產(chǎn)生存儲(chǔ)頁訪問錯(cuò)誤。錯(cuò)誤條件會(huì)導(dǎo)致預(yù)取指中止或數(shù)據(jù)中止,這取決于具體的存儲(chǔ)器訪問類型。
(8)大頁表描述符及其地址變換過程
如果二級(jí)頁表項(xiàng)bits[1:0]=0b01,說明該頁表項(xiàng)為大頁表項(xiàng),它不僅包含了一個(gè)64KB物理存儲(chǔ)塊基地址,同時(shí)還含有4組權(quán)限位域以及頁的Cache和寫緩存屬性。每一組訪問權(quán)限域代表虛存頁的1/4,這些頁表項(xiàng)可以看成是16KB子頁,以更好的控制64KB頁的訪問權(quán)限。
具體定義如表15.26所示。
表15.26 大頁表項(xiàng)中各字段含義
字段 | 含義 |
bits[1:0] | 大頁表項(xiàng)類型標(biāo)識(shí)符 |
bits[3:2] | Cache和寫緩存屬性 |
bits[11:4] | 訪問權(quán)限控制位,具體編碼見表15.27。 一個(gè)大頁分為4個(gè)子頁 AP0子頁0的訪問權(quán)限 AP1子頁1的訪問權(quán)限 AP2子頁2的訪問權(quán)限 AP3子頁3的訪問權(quán)限 |
bits[15:12] | 當(dāng)前未使用,應(yīng)為0 |
bits[31:16] | 該大頁對(duì)應(yīng)的物理頁幀的基地址的高16位 |
圖15.31說明了基于大頁表的地址變換過程。
圖15.31基于大頁表的地址變換過程
(9)小頁表描述符及其地址變換過程
如果二級(jí)頁表項(xiàng)bits[1∶0]=0b10,說明該頁表項(xiàng)為小頁表項(xiàng),它不僅包含了一個(gè)4KB物理存儲(chǔ)塊基地址,同時(shí)還含有4組權(quán)限位域以及頁的Cache和寫緩存屬性。每一組訪問權(quán)限域代表虛存頁的1/4,這些頁表項(xiàng)可以看成是1KB子頁,以更好的控制4KB頁的訪問權(quán)限。
頁表項(xiàng)的具體定義如表15.27所示。
表15.27 小頁表項(xiàng)中各字段含義
字段 | 含義 |
bits[1:0] | 小頁表項(xiàng)類型標(biāo)識(shí)符 |
bits[3:2] | Cache和寫緩存屬性 |
bits[11:4] | 訪問權(quán)限控制位,具體編碼見表15.22。 一個(gè)小頁分為4個(gè)子頁 AP0子頁0的訪問權(quán)限 AP1子頁1的訪問權(quán)限 AP2子頁2的訪問權(quán)限 AP3子頁3的訪問權(quán)限 |
bits[15:12] | 當(dāng)前未使用,應(yīng)為0 |
bits[31:16] | 該小頁對(duì)應(yīng)的物理頁幀的基地址的高20位 |
圖15.32說明了基于小頁表的地址變換過程。
圖15.32基于小頁表的地址變換過程
(10)微頁表描述符及其地址變換過程
如果二級(jí)頁表項(xiàng)bits[1∶0]=0b11,該二級(jí)頁表項(xiàng)是微頁表項(xiàng),它提供了一個(gè)1KB物理存儲(chǔ)塊的基地址,同時(shí)含有一個(gè)訪問權(quán)限位域以及頁的Cache和寫緩存屬性。微頁表項(xiàng)的具體含義如表15.28所示。
表15.28 微頁表項(xiàng)中各字段含義
字段 | 含義 |
bits[1:0] | 微頁表項(xiàng)類型標(biāo)識(shí)符 |
bits[3:2] | Cache和寫緩存屬性 |
bits[5:4] | 訪問權(quán)限控制位,具體編碼見表15.29 |
bits[9:6] | 當(dāng)前未使用,應(yīng)為0 |
bits[31:10] | 該微頁對(duì)應(yīng)的物理頁幀的基地址的高22位 |
圖15.33說明了基于微頁表的地址變換過程。
圖15.33基于微頁表的地址變換過程
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論