问答题
已知系统为32位实地址,采用48位虚拟地址,页面大小4KB,页表项大小为8B;每段最大为4GB。
问答题
假设系统使用纯页式存储,则要采用多少级页表,页内偏移多少位?
【正确答案】页面大小为4KB,故页内偏移为12位。系统采用48位虚拟地址,故虚页号为48-12=36位。采用多级页表时,最高级页表项不能超出一页大小;每页能容纳页表项数为4KB/8B=512=29。36/9=4,故应采用4级页表,最高级页表项正好占据一页空间。
【答案解析】
问答题
假设系统采用一级页表,TLB命中率为98~/0,TLB访问时间10ns,内存访问时间100ns,并假设当TLB访问失败时才开始访问内存,问平均页面访问时间是多少?
【正确答案】系统进行页面访问操作时,首先读取页面对应的页表项,有98%的概率可以在TLB中直接读取到,然后进行地址转换,访问内存读取页面;如果TLB未命中,则要通过一次内存访问来读取页表项。页面平均访问时间为:
98%×(10+100)+(1-98%)×(10+100+100)=112(ns)
【答案解析】
问答题
如果是二级页表,页面平均访问时间是多少?
【正确答案】二级页表的平均访问时间计算同理:
98%×(10+100)+(1-98%)×(10+100+100+100)=114(ns)
【答案解析】
问答题
上题中,如果要满足访问时间小于120ns,那么命中率需要至少多少?
【正确答案】设快表命中率为p,则应满足:
p×(10+100)+(1-)×(10+100+100+100)≤120(ns)
解得p≥95%
【答案解析】
问答题
若系统采用段页式存储,则每用户最多可以有多少个段?段内采用几级页表?
【正确答案】系统采用48位虚拟地址,每段最大为4GB,故段内地址为32位,段号为48-32=16位。每个用户最多可以有216个段。段内采用页式地址,与1)中计算同理,(32-12)/9,取上整为3,故段内应采用3级页表。
【答案解析】[解析] 在采用多级页表的页式存储管理中,若快表使中,则只需要一次访问内存操作即时存取指令或数据,这一点需要注意和理解。以本题1)中假设的条件为例,不考虑分段时,需要4级页表。如果快表未命中,则需要从虚拟二址的高位起,每9位逐级访问各级页表,第5次才能访问到指令或数据所以的内存页面。
如果快表命中,首先考虑快表中的实际内容:快表存放经常被访问的页面对应的页表项,页表项中是完整的48-12=36位页面号,所以根据快表可以直接对虚拟地址进行转换。故多级页表中,快表命中时同样只需要一次访问内存操作。根本原因在于,快表提供了进行地址转换的完整的页面号,而不是某一级的页面号。