ARM920T及其MMU,Cache学习杂记 (五)

这里,根据MMU的需求,我们还得在内存中做一个二级转换表,这个页转换表有256个入口,每个入口4KB大小,总共1MB!这个基址我们已假设好,就是0x4C88 D000这个表的数据我们也先初始化好,这里只假设我们要用到的 偏移量为0的值  0x 7654C002

31

30

 

 

 

 

 

 

 

 

 

20

19

 

 

 

 

 

 

12

Ap3

Ap2

Ap1

Ap0

C

B

1

0

0

1

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

0

7

6

5

4

C

0

0

2

如位[1:0]可知,这是一个小页的基址,

 

 根据MMU的操作,二级描述符所在的地址由这个式子求得:Coarse页表的基址<<10+L2表索引<<2 =0x4C88 D000 其中L2表索引为VA[19:12].

二级描述符于是可以从我们假设的值得到为: 0x7654C002

这个值的bit[31:12]被称为页基址:0x7654C

物理地址将由:页基址<<12+页索引 页索引为VA[11:0] 0x5A8  于是,虚拟地址0x0000 05A8 所对应的物理地址为 0x7654C5A8

即,0x0000 0000 开始的4KB被重映射到 0x7654C000开始的4KB

这个过程的逆过程将是我们初始化MMU的重要的过程。

现在我们知道

域是用来做什么的了:域用于一级描述符中,表明内存块的访问权限。

         二级的意思是指需要二级遍历来寻址。

你可能感兴趣的:(ARM920T及其MMU,Cache学习杂记 (五))