分页存储 -- 地址变换机构

来源:互联网 发布:macbook air推荐软件 编辑:程序博客网 时间:2024/05/17 04:17

------ 为了能将用户地址空间中的逻辑地址变换为内存空间中的物理地址,在系统中必须设置地址变换机构

地址变换机构基本任务是:实现从逻辑地址到物理地址的转换。(页面大小和物理块大小相同)

由于页内地址和物理地址是一一对应的(例如,对于页面大小是1KB的页内地址是0~1023,其相应的物理块内的地址也是0~1023)

无需再进行转换,因此,地址变换机构的任务实际上只是将逻辑地址中的页号,转换为内存中物理块号

又因为页表(页面映射表)的作用就是用于实现从页号到物理块号的变换,因此,地址变换任务是借助于页表来完成的

1、基本的地址变换机构

---- 页表的功能可以由一组专门的寄存器来实现。一个页表项(存地址)用一个寄存器。

---- 由于寄存器具有较高的访问速度,因而有利于提高地址变换的速度;但由于寄存器成本较高,且大多数现代计算机的页表都很大,使页表项

的总数可达几千甚至几十万个,显然这些页表项不可能都用寄存器来实现。

---- 因此,页表大多驻留在内存中。在系统中只设置一个页表寄存器PTR(Page-Table Register),在其中存放页表内存中的始址

页表的长度(页表项的个数。平时,进程未执行时,页表的始址和页表长度存放在本进程的PCB中。

---- 当调度程序调度到某进程时,才将这两个数据装入页表寄存器中。

---- 因此,在单处理机环境下,虽然系统中可以运行多个进程,但只需一个页表寄存器

---- 当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将有效地址(相对地址)分为页号页内地址两部分,再以页号为

索引去检索页表查找操作由硬件执行

---- 在执行检索之前,先将页号页表长度(页表项的个数)进行比较,如果页号大于或等于页表长度,则表示本次所访问的地址已超越进程

的地址空间。于是,这一错误将被系统发现并产生一地址越界中断。若未出现越界错误,则将页表始址+(页号x页表项),得到该表项在页表

中的位置,得到该页的物理块号,将之装入物理地址寄存器中。同时,再将逻辑地址寄存器中的页内地址送入物理地址寄存器块内地址字段中。

2、具有快表的地址变换机构

---- 由于页表是存放在内存中的,这使CPU在每存取一个数据时,都要两次访问内存

---- 第一次是访问内存中的页表,从中找到指定页的物理块号,再将块号页内偏移量W(页内地址,等于块内地址)拼接,形成物理地址

---- 第二次访问内存时,才是从第一次所得地址中获得所需数据(或向此地址中写入数据)。

因此,采用这种方式将使计算机的处理速度降低近1/2.可见,以此高昂代价来换取存储器空间利用率的提高,是得不偿失的。

---- 为了提高地址变换速度,可在地址变换机构中增设一个具有并行查询能力的特殊高速缓冲寄存器(高速缓冲存储器(Cache)其原始意义

是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM

技术高速缓存),又称为“联想寄存器(存储器)”(Associative Memory)或称为“快表”。

在IBM系统中又取名为TLB(Translation Lookaside Buffer翻译后备缓冲器),用以存放当前访问的那些页表项

---- 通常是在快表中存放正在运行作业当前访问的那些页表项,以加速地址变换过程,主存中的页表有时也称为慢表。

---- 引入快表以后的地址变换过程是:

--1)在CPU给出有效地址(逻辑地址/相对地址)后,由地址变换机构自动地将逻辑地址分为页号P和页内偏移量W两部分。

--2)将页号送入高速缓冲寄存器,并将此页号与高速缓存/快表(内存的一部分,SRAM-电子状态,DRAM:电容)中的所有页号进行比较,若其中

有与此相匹配的页号,便表示所要访问的页表项在快表中。于是直接从快表中读出该页号所对应的物理块号,与页内偏移量拼接形成物理地址,并送

物理地址寄存器中。---- 如果在快表中未找到对应的页表项,则还需再访问内存中的页表,找到后,把从页表项中读出的物理块号,与页内偏移量

拼接形成物理地址,并送往地址寄存器;同时,再将此页表项存入快表中,即重新修改快表。

但如果联想存储器已满,则OS必须找到一个老的且已被认为不再需要页表项,将它换出。

--3)用物理地址访问内存。

---- 配有快表地址变换机构如下图所示:

  

---- 由于成本的关系,快表不可能做的很大,通常只存放16~512个页表项,这对中、小型作业来说,已有可能把全部页表项存放在快表中,但对于

大型作业,则只能将其一部分页表项放入其中。由于对程序和数据的访问往往带有局限性,因此,据统计,从快表中能找到所需页表项的机率可达90%以上。

这样,由于增加了地址变换机构而造成的速度损失,可减少到10%以下,达到了可接受的程度。

---- 在分页系统中增加了快表后,在快表中找出所需页表项的概率称为平均命中率。

---- 所谓有效访问时间(EAT,Effective Access Time),是指给定逻辑地址找到内存中对应物理地址单元中的数据所花的总时间。

0 0
原创粉丝点击