4.5.2 地址变换机构 4.5.3  访问内存的有效时间

1. 基本的地址变换机构
  进程在运行期间,需要对程序和数据的地址进行变换,即将用户地址空间中的逻辑地址变换为内存空间中的物理地址,由于它执行的频率非常高,每条指令的地址都需要进行变换,因此需要采用硬件来实现。页表功能是由一组专门的寄存器来实现的。一个页表项用一个寄存器。

4.5.2 地址变换机构 4.5.3  访问内存的有效时间

                                                  分页系统的地址变换机构

2. 具有快表的地址变换机构
  
由于页表是存放在内存中的,这使CPU在每存取一个数据时,都要两次访问内存。第一次是访问内存中的页表,从中找到指定页的物理块号,再将块号与页内偏移量W拼接,以形成物理地址。第二次访问内存时,才是从第一次所得地址中获得所需数据(或向此地址中写入数据)。因此,采用这种方式将使计算机的处理速度降低近1/2。可见,以此高昂代价来换取存储器空间利用率的提高,是得不偿失的。

 

4.5.2 地址变换机构 4.5.3  访问内存的有效时间

                                         具有快表的地址变换机构

4.5.3  访问内存的有效时间
  
从进程发出指定逻辑地址的访问请求,经过地址变换,到在内存中找到对应的实际物理地址单元并取出数据,所需要花费的总时间,称为内存的有效访问时间(Effective Access TimeEAT)。假设访问一次内存的时间为t,在基本分页存储管理方式中,有效访问时间分为第一次访问内存时间(即查找页表对应的页表项所耗费的时间t)与第二次访问内存时间(即将页表项中的物理块号与页内地址拼接成实际物理地址所耗费的时间t)之和:
         
EAT = t + t = 2t

在引入快表的分页存储管理方式中,通过快表查询,可以直接得到逻辑页所对应的物理块号,由此拼接形成实际物理地址,减少了一次内存访问,缩短了进程访问内存的有效时间。但是,由于快表的容量限制,不可能将一个进程的整个页表全部装入快表,所以在快表中查找到所需表项存在着命中率的问题。所谓命中率,是指使用快表并在其中成功查找到所需页面的表项的比率。这样,在引入快表的分页存储管理方式中,有效访问时间的计算公式即为:
    
        EAT×λ+(t+λ)(1—а)+t=2t+λ—t×а
上式中,λ表示查找快表所需要的时间,а表示命中率,t表示访问一次内存所需要的时间。

可见,引入快表后的内存有效访问时间分为查找到逻辑页对应的页表项的平均时间а × λ + (t + λ)(1 - а),以及对应实际物理地址的内存访问时间t。假设对快表的访问时间λ20 ns(纳秒),对内存的访问时间t100 ns,则下表中列出了不同的命中率а与有效访问时间的关系:

4.5.2 地址变换机构 4.5.3  访问内存的有效时间