|
知识路径: > 计算机系统知识 > 计算机软件知识 > 操作系统知识 > 存储管理(主存保护、动态连接分配、分页、虚存) > 存储管理 > 分页式存储管理 >
|
考试要求:掌握
相关知识点:2个
|
|
|
|
页表可以存放在一组寄存器中,地址转换时只要从相应寄存器中取值就可得到块号,这虽然方便了地址转换,但硬件花费代价太高,如果把页表放在主存中就可降低计算机的成本。但是,当要按给定的逻辑地址进行读/写时,必须访问两次主存。第一次按页号读出页表中相应栏内容的块号,第二次根据计算出来的绝对地址进行读/写,降低了运算速度。
|
|
|
为了提高运算速度,通常都设置一个专用的高速存储器,用来存放页表的一部分,这种高速存储器称为相联存储器(Associative Memory),存放在相联存储器中的页表称为快表。相联存储器的存取时间是远小于主存的,但造价高,故一般都是小容量的,例如Intel 80486的快表为32个单元。
|
|
|
根据程序执行局部性的特点,即它在一定时间内总是经常访问某些页,若把这些页登记在快表中,无疑将大大加快指令的执行速度。快表的格式如下:
|
|
|
|
它指出已在快表中的页及其对应主存的块号。有了快表后,绝对地址形成的过程是,按逻辑地址中的页号查快表,若该页已登记在快表中,则由块号和单元号形成绝对地址;若快表中查不到对应页号,则再查主存中的页表而形成绝对地址,同时将该页登记到快表中。当快表填满后,又要在快表中登记新页时,则需在快表中按一定策略淘汰一个旧的登记项,最简单的策略是“先进先出”,总是淘汰最先登记的那一页。
|
|
|
采用相联存储器的方法后,地址转换时间大大下降。假定访问主存的时间为100×10-9s,访问相联存储器的时间为20×10-9s,相联存储器为32个单元时查快表的命中率可达90%,于是按逻辑地址进行存取的平均时间为:
|
|
|
(100+20)×90%+(100+100+20)×(1-90%)=130×10-9s
|
|
|
比两次访问主存的时间100×10-9s×2+20×10-9s=220×10-9s下降了四成多。
|
|
|
同样,整个系统也只有一个相联存储器,只有占用CPU者才占有相联存储器。在多道程序中,当某道程序让出处理器时,应同时让出相联存储器。由于快表是动态变化的,所以让出相联存储器时应把快表保护好以便再执行时使用。当一道程序占用处理器时,除置页表控制寄存器外还应将它的快表送入相联存储器。
|
|
|