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