3、存储管理单元(MMU)
: b6 T+ M P0 {( x z) h; y' b( d MMU 在CPU 和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个过程称为内存映射。
- U" N0 ]+ p- y# K! [1 y( N' Y MMU 主要完成下面的工作:
( B1 g, {1 Q6 o8 G+ ] A. 虚拟存储空间到物理空间的映射。/ T Y1 \4 @. Z5 t
B. 存储器访问权限的控制。1 J4 _ h) V$ S4 o: b, r, } b1 f
C. 设置虚拟存储空间的缓冲特性。
+ }9 P6 p; o; Q; S 嵌入式系统中常常采用页式存储管理。为了管理这些页引入了页表的概念。
) {1 o4 z8 I$ ^% c* r 页表是位于内存中的表,它的每一行对应虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的访问权限和该页的缓冲特性等。* A$ n* f* N y; h* G$ v- t' p
从虚拟地址到物理地址的变换过程就是查询页表的过程。. r; F. P2 Q, k% k
由于页表存储在内存中的,整个查询过程需要付出很大的代价。根据程序局部性的特点,增加了一个小容量、高速度的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为:地址转换后备缓冲器(TLB)。
& |/ M a3 K8 Z& T 当CPU 访问内存时,首先在TLB 中查找需要的地址变换条目,如果该条目不存在,CPU 再从内存中的页表中查询,并把相应的结果添加到TLB 中,更新它的内容。/ a0 i; T0 K! {$ h/ c* N
嵌入式系统中虚拟存储空间到物理空间的映射以内存块为单位进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。& @( k2 }6 L/ l1 }" X
在页表和TLB 中,每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相对应的一个内存块的基地址之间的对应关系。) m, d/ d) g) A6 D/ X
在MMU 中实现虚拟地址到物理地址的映射是通过两级页表来实现的。
! X7 V5 d m* b A" g 禁止MMU 时,所有物理地址和虚拟地址相等,即使用平板存储模式。 |