作为一种附加的管理手段,页式管理为80386处理器提供了一种在保护模式下组织和管理大型段的手段。和可变长度的段不同,页式管理里面的内存页的长度是固定的,80386定义的页长度为4 KB。在80386处理器中,由于段界限在段描述符中使用20位表示,在不使用分页机制的时候一个段的最大长度只能是1 MB,而在分段的基础之上引入分页之后,段界限的最大值变成了1 M×4 KB=4 GB,足以满足绝大多数段长度的需求。
分页管理的关键是将分段部件输出的线性地址转换成为送到地址线上的物理地址,这个过程是由分页部件完成的。在分页管理方式下,80386处理器将每4 KB存储单元定义为一个页面,每个页面有一个低12位为0(即只有高20位有效)的起始地址。80386将页的首地址等组织在一起形成页表,每个页表最多可以有1024个页表项,系统中最多可以有1024个页表,这些页表的首地址由一个页目录表来管理。80386处理器依靠页目录表和页表两个表中的内容将线性地址转换为物理地址,实现分页管理的地址转换功能,这个转换过程如图5-14所示。
图5-14 线性地址转换为物理地址
除了地址转换之外,分页部件还要负责实现页面保护等功能,以保证对物理存储器访问的合法性。为此,80386处理器在页表和页目录表中设置了一系列的标志或控制信息位,如读/写位、存在(有效)位、用户/超级用户位等。由于页面或页表的首地址低12位为0,页表项或页目录表项的32位中只有高20位被用来存储页表或页面的起始地址,余下的12位就被用来存放这些标志或控制信息位。
(www.xing528.com)
图5-15 转换旁视缓冲器TLB
从上面的叙述中可以看出,分页部件将线性地址转换为物理地址需要经过两次查表和三次地址加法才能完成,这将大大降低线性地址向物理地址转换的速度。为了在一定程度上解决这个问题,在80386微处理器中增加了一个用来存储页面描述符的高速缓冲存储器,称为转换旁视缓冲器(Transla-tion Look-aside Buffer,TLB,见图5-15)。TLB由一系列的TLB表项组成,每个TLB表项缓存一次最近的线性地址到物理地址的转换结果,这些TLB表项存储在一组联想存储器中,以线性地址的高20位作为联想存储器的标志进行寻址,快速得到物理地址的高20位用于物理地址的生成。
作为一种高速缓冲器,TLB也有不命中的情况,也就是线性地址的高20位没有出现在TLB中,这时80386处理器只能通过两次查表来完成地址转换的工作并对TLB中的内容进行替换。好在程序的局部性原理使得这种TLB不命中的概率较低(一般在2%以下),分页部件的地址转换能够以比较高的速度进行。80386处理器的TLB具有32个表项,X86系列微处理器的后续产品的TLB表项数更多。
在80386及其后的X86系列微处理器中,页式管理总是和段式管理结合在一起,以段页式管理的形式使用的。段页式管理同时使用处理器的分段部件和分页部件,由分段部件实现逻辑地址到线性地址的地址转换,再由分页部件实现线性地址到物理地址的转换过程。除了X86系列微处理器之外,其他系列的微处理器,如PowerPC、Sparc、Alpha等,都提供类似的段页式存储器管理功能,只是在某些细节上会有所差别。
由于存储系统访问速度和存储系统容量对于微型计算机系统的整体性能有着非常巨大的影响,工业界也一直在寻求各种技术方案来提高微型计算机中存储系统的访问速度和存储容量。这些技术方法既包括硬件技术,如命中率更高和速度更快的Cache、传输带宽的前端总线(如QPI)和内存模块(如DDR Ⅲ),也包括一些软件和固件技术,如更好的存储器控制策略、更灵活和有效的内存管理算法等。这些技术的研究与使用极大地提高了存储系统的容量和速度等性能指标,从而达到提高微型计算机系统整体性能的目标。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。