用于页面时效处理的多位矢量的制作方法

文档序号:6407020阅读:172来源:国知局
专利名称:用于页面时效处理的多位矢量的制作方法
本申请的主题相关于下面所列出的所有申请,它们具有相同申请日,并转让给同一受让人,这些相关申请是申请号07/872,731,由S.parikh提出的申请,题目为“MethodandApparatusforIncreasingEfficieneyofAger”(IBMDocketNo.DA9-92-020);申请号07/872,935,由S.parikh提出的申请,题目为“MethodandApparatusforEfficientProcessingofpageTableEntires”(IBMDocketNo.DA9-92-029)申请号07/872,221,由S.parikh提出的申请,题目为“TabulationofMulti-BitVectorHistory”(IBMDocketNo.DA9-92-032);申请号07/872,733,由S.parikh提出的申请,题目为“MethodandApparatusforPredeterminingpagesforSwappingfromPhysiealMemory(IBMDocketNo.DA9-92-035)。
上述共同未决申请在此作为本申请的参考文献。
本发明一般相关于存贮器管理,特别相关于利用一个多位比特矢量来改进页面的时效过程的方法和装置。
在现代化的微处理器中,虚拟存贮器的概念是与实际存贮器相结合而使用的,虚拟存贮器使得较少量的实际存贮器(直接关系到费用问题)。可用于大作业和/或多个作业中。这种可能性基于这样的事实,即在任一时刻任一特定作业的仅仅一相对而言较少的部分需要存贮在实际存贮器中。因此,在同时运行多个作业的计算机系统中,可以仅仅将当前运行作业的数据和代码置于实际存贮器中,而将没有用到的数据和代码或者留在虚拟存贮器中,或者存贮在硬盘驱动器中。
以分页为基础的存贮器管理采用页面技术,每一页面通常包括4K(成千个比特)个存贮器地址,虚拟存贮器使得作业相信可用的存贮器(对32比特寻址方式而言)有4G(千兆比特)个,而事实上在实际存贮器(RAM)上通常不到1M(百万比特)。因此需要从实际存贮器到另一位置(如一个磁盘/辅助存储器)进行页面“交换”。
在以分页为基础的存贮器管理中(例如,“INTEL”公司的386和486微处理器,以下称之为i386/i486),为了允许交换,通常提供一个分页系统,它可以对每个单独的页面进行映象和置位。通过产生和保持列出一个页面表(将每一页面的位置列在页面表索引(PTE)中)以实现映象。因此,当一个作业需要一个特定页面时,通过扫描整个页面表可确定那个页面。PTE包括页面的地址以及一个指示最近应用的被存取过/没被存取过的标志位。
为了获得最大的对实际存贮器的交换效率,给操作系统提供一个时效器(ager)。其目的是在需要空间时,将目前最不可能用到的页面从实际存贮器中提出。那些目前还没有用到的页面将首先被指定到一个“空闲”表格,然后在需要时被换出。因此,如果有没用到的页面,最有效的方式是将其置于存储器(即磁盘)中,而不是占用实际存贮器中可能需要的空间。因此,时效器和分页系统共同作用以记录一个页面的位置,并且仅仅将真正需要的页面保留在实际存贮器中。
一个主操作系统性能的关键性的决定因素是以分页为基础的存贮器管理性能,因为它能在工作装置的尺寸大小、反应时间和容量方面直接影响系统的其它性能。因此,仔细设计基本的存贮器管理是绝对必要的。在现代化的微处理器中,对分页存贮器管理的支持是存在的,但却很有限。
分页存贮器管理的效率直接受下述因素影响(1)时效处理的效率和效果,(2)对不再属于工作装置中的页面的正确识别,(3)时效处理周期的长度。通过缩短时效处理周期,通常可相应地缩小工作装置的尺寸。对于额外牵涉的(over-committed)系统而言,时效器必须绝对有效,因为如果没有这种效力,错误的页面就会占据实际存贮器。
在一些诸如“i386/i486”之类的现代化微处理器的以分页为基础的存贮器管理结构中,相应于存贮器中的每一个页面有一个PTF,前面对此已作过描述。页面表索引驻留在页面表中,每个过程有其自身单独的页面表组和PTE组。每次当一个页面的内容被存取时,就由基本硬件在PTE中相应于该页面设置一个“已存取”标志位。这一标志告知时效器该页面已被存取过(或没有被存取过),因为最后的时效处理器服务或周期通过了该页面表。当对PTE扫描之后、时效器清除该标志位。通常,时效器必须扫描一个系统中所有过程的所有页面表以完成一个完整的时效处理周期。时效器周期性地扫描所有的PTE,检验各个状态,并且采取适当的行动,这些行动可能包括将目前不被存取的页面换出。在“i386/i486”微处理器中,对识别包括确定存取序列的确定的页面存取模式的支持限制在PTE中的“已被存取/未被存取”位。在基础硬件中,无页面记时打印(nopagetimestamping)可用来告之分页存贮器管理子系统页面存取的确定序列。
精心利用分派给时效器的时间是非常重要的(1)该时效器必须有效地完成识别要翻出的下一组页面的选择任务;(2)该时效器在识别那些需要翻出的页面时必须准确。不正确的识别会严重地增加错误的翻页、增加对实际存贮器的需求、从而最后减少系统的竞争能力。由该时效器所消费的中央处理单元(CPU)的时间是以牺牲系统中其它处理过程为代价的,一个完全的时效处理周期占据几个CPU时间片。为了有效地利用由该时效器所消费的资源(例如CPU时间),该时效器对不同的处理过程合理地分派这些可用的资源是非常重要的。
除时效器的作用效率之外,对那些指定为“空闲表格”、随后将要翻出的页面选择过程进行简化也是很重要的。当前的系统采用一种称之为“当前最不会用到”(LRU)的近似方法来将一个页面从存贮器中换出去。这种方法经常导致不正确的判定,特别是对高动态和额外牵涉的系统更是如此。如上所述,设定了相应于两个实际页面的存取标志后,操作系统没有办法确定哪个页面首先被存取。此外,相应于两个不同页面的两个PTE的被存取标志被复位后,操作系统无法确定哪一个最后被存取。因此,时效器完全有可能选择一个不正确的页面(即一个当前较有可能用到的页面)将其换出。
例如,当扫描PTE时,时效器可以检查两个存取标志位被复位了的PTE。对该时效器而言,这表示当这些标志被最后复位后,页面就不再被存取了。可以将这两个页面都指定为空闲表格(即一个要被翻出页面的可能的候选表格),并且如果它们不立即被存取的话将把它们同时翻出页面。换句话说,从时效器的角度来看,这两个页面被同等处理。然而,一个页面可能具有很高的用途(即包括具有高用途软件代码的一个页面),却碰巧在刚才哪一刻没有存取,而另一个页面可能是真正的低用途页面。这第一个页面比第二个页面在将来有更高的被存取的可能性。然而,由于时效器的局限性,有这样的可能性,即当要将一个页面翻出时,第一个页面(即高用途页面)可能被选中,因为从时效器的有限的观察能力来看,两个页面看起来是相同的。因此,当第一个页面被换出后如果又需要进行访问,就会出现页面错误。一个页面错误通常导致处理时间上的延迟,这是因为在查找该页面并将其换回到实际存贮器中时,必须暂停正在运行的过程。
当页面无论何时被存取时,在一个相应的PTE中设置被存取比特标志位。时效处理过程依次扫描PTE以确定那些已被/还没被存取的页面,而没有被存取的页面最后被设置为空闲表格,可能被送出页面。扫描过程的耗时是固定的。并非在一个页面表中的所有的PTE都要被扫描,因为仅有相应于这些PTE的页面子集存在于实际存贮器中。通常仅仅为了要找到与存在于实际存贮器中的一个页面相应的一个索引就可能要对大量的PTE进行扫描。实质上为了查找相应于实际存贮器中的页面的PTE,可能要对非常大量的索引进行扫描。
因此需要有一种方法和装置能更有效地管理微处理器中的存贮器。特别需要有一种方法和装置,在一个以分页为基础的存贮器管理中取得更全面的页面时效处理的历史(history)。
本发明包括采一个多位比特矢量进行页面时效处理的方法和装置,它能基本上消除或减少采用一般的时效处理和分页所产生的一些问题。在此所描述的方法和装置在以分页为基础的存贮器管理系统中提供了一个更为精确的页面的历史。
根据本发明的一方面,它提供了一种在计算机系统中利用一个页面控制器和一个时效器的存贮器管理方法。页面控制器具有页面表并且其中带有页面表索引,用来对一个过程的每一页面进行映象和查寻。建立一个包含有多个位的一个比特矢量,用于记录在每一页面表中访问每一页面表索引次数的历史。当需要在实际存贮器中为一新的页面开辟一个位置时,估算这些矢量以确定那个(些)页面应首先被翻出。
建立一个用于保存多个该矢量的库。可以建立具有多个位的比特矢量,该多个位可以包括,例如,8位、16位、32位等等。
为了更全面地理解本发明及其优点,下面将结合附图作更详细的描述。


图1是虚拟存贮器、实际存贮器和外存之间相互关系的图形表示;
图2是现有技术的一个页面表和一个页面表索引;
图3是一个比特矢量以及根据本发明所建立的一个库;
图4是根据本发明的一个数据处理系统的示意图;
图5示出了根据本发明当时效器扫描页面表索引时的流程图;
图6示出了当识别要被翻出的页面时本发明的作用流程图;
首先参照图1,一个存贮器系统的图形表示用参考号10来标示。当写入一个计算机程序时,同时应该认识到用于寻址用的可用的存贮器比实际存在的存贮器要多。通常提供4千兆(G)虚拟(即实际上并不存在的)可寻址存贮器12。不同的计算机系统具有不同数量的实际存贮器(RAM)14,实际存贮器14的量要少于虚拟存贮器。如图1所示,存贮器14具有nM(百万字节)存贮容量,其中n一般代表介于1至64之间的一个任意数。因此,计算机硬件可以提供一个存贮设备16,例如一个硬盘驱动器,与实际存贮器14共同使用。
当一个过程(如一个计算机程序)在一计算机系统(见图5)上运行时,诸如由参考号18所表示的一个页面(包括4K数据)可以从虚拟存贮器12传送到实际存贮器14。页面从虚拟存贮器12向实际存贮器14传送而没有特别的排序,因此,在虚拟存贮器12中的连续页面可能并不是实际存贮器中的连续页面。
一旦正在计算机系统上运行的过程已使用过了该页面,一个不同的过程就要求得到实际存贮器14中的实际空间。如果得不到,就需要将实际存贮器14中的一个页面从实际存贮器14换到存储设备16中。此外,如果一个过程需要被放置到存储设备16中的一个页面中,那个页面就必须从存贮设备16换到实际存贮器14中。
在虚拟存贮器12、实际存贮器14和存贮设备16之中对页面进行映象和定位是从分页为基础的存贮器管理的任务。参照图2,在以“i386/i486”为基础的微处理器中,以分页为基础的存贮器管理通常采用一个页面表30,该页面表中包括多个页面表索引32。每一个页面表索引32包括一个地址单元34和一系列信息位或标志位36。信息标志位36有多种用途,例如,提示页面是否存在于实际存贮器中、指示该页面是否为一个读/写页面、等等,以及包括一个已存取/未存取标志位(如参考号38所示)。标志位38的作用是使得以分页为基础的存贮器管理掌握一个页面目前是否会用到。每次当页面被存取时,基础硬件(“i386/i486”芯片)就对标志位38置位。
一个时效器与以分页为基础的存贮器管理一起用于帮助实际存贮器14和存储设备16之间的交换。时效器的目的是扫描已被存取/未被存取标志位38,并且当在实际存贮器14中需要位置时,将当前最不会用到的页面从实际存贮器中换到存储设备16内。由于从单一的已被存取/未被存取标志位38中所能获得的信息是有限的,因此时效器有可能选择错误的页面将其从实际存贮器中换出去。这种可能性是因为一旦对不同的PTE设置了标志位,时效器无法知道哪一个标志38是最新设置的。此外,一旦时效器扫描了所有的PTE后,对标志位38复位,这时无法确定最后存取哪一个页面。
下面参照图3,它示出了本发明的一个实施例。一个SP矢量库通常用标号50来表示。库50包含多个SP矢量(每一实际页面有一个SP矢量),如参考号52或54所示。每一个SP矢量52、54包括多个位(如这里仅仅为举例起见所示的8位),各个位用参考号56、57、58、59、60、61、62和63表示。虽然如图3所示有56至63的8个位(标志),但如果需要的话,可选择任意位。例如,一个16位SP矢量可以是两个8位矢量的串联,并且可以处理每个8位矢量,对此后面将作详细描述。显然,还可能有24位、32位等等。
SP矢量52、54包含有8位,其中每位既可以是“1”,也可以是“0”。例如,如果访问与SP矢量52相关的页面,那么在最右边的位中,即位56中放“1”。当下次时效器检测PTE,看该页面是否已被访问时,位56中的“1”向左移动一位,即移到位57中。如果由于最后的时效器扫描,该页面被存取了,那么在位56中置另一个“1”。如果该页面没有被存取,那么在位56中放入一个“0”,如此类推。换句话说,每次丢掉最左边的位,就完成一次移位。因此对相应于每个SP矢量(设矢量复盖时效器扫描PTE的最后8次)的每一页面产生一个历史。这样一种变化历史为时效器提供了比从现有技术中所能获得的更多有用的信息。
下面参照图4,它以方框图的形式示出了根据本发明的一个数据处理系统,用参考号100来表示。系统100包括一个处理器102,其中包括一个中央处理单元(CPU)104和一个存贮器106。附加存贮器以一个硬盘存储器108和一个软盘设备110形式被连接到处理器102。软盘设备110装有一个软磁盘112,该软磁盘上记录有计算机程序代码,该程序代码可在本系统100中实施本发明。系统100包括用户接口硬件,其中有可使用户向处理器102输入的鼠标器114、键盘116和向用户显示数据的显示器118。系统100也可包含一台打印机120。
参考图5,该流程图示出了本发明在时效器扫描页面表索引时的流程。该时效器从方框140处开始;在方框142处读出每个页面表索引中已被存取/未被存取标志位;在方框144读出SP矢量相应于被检测的页面的当前值。在方框148,根据在方框142中所确定的标志位的状态来修改SP矢量。然后,在判定方框150时效器确定是否所有的标志位都已被扫描。如果判定方框的响应是“否”,那么时效器返回到方框142,进一步读出已被存取/未被存取标志位,如果响应是“是”,那么该时效处理周期结束。
参照图6,它示出了本发明在判断哪些页面应被翻出时的流程图。流程开始于方框160,其后,作为待翻出的候选页面的x个(这是一个可根据需要预先选定的参数)页面被放置在空闲表格的目前最不可能采用的一端。在方框164,识别在SP矢量中具有最少数量“1”的页面。在方框166,将这(些)页从实际存贮器中调换出去,然后在方框168处结束该流程。
因此,通过采用本发明可以获得更有效的存贮器管理。它不是仅仅信赖于每个页面表索引中的单个已被存取/未被存取位标志,而是产生一个多位矢量来保持每一页面所利用的历史。因此,在将页面从实际存贮器中换到外存中时,每个页面有更为可靠的参考状态。从而时效器更有可能将利用次量最少的页面换出,从而尽量少地出现错误。
虽然本发明具体参考一个实施例进行了描述,本领域的普通技术人员应该认识到在不脱离本发明精神和范围前提下可对许多细节进行修改。
权利要求
1.在利用一页面控制器和一时效器的计算机系统中改进的存贮器管理方法,该页面控制器具有至少一个页面表,其中带有页面表索引,用于对一个过程的每一页面进行映象和查找,该改进方法的特征在于包括如下步骤建立比特矢量,该矢量包括多个比特,用于记录在多个时效处理周期中对每个页面表中每一页面表索引的存取历史;对该矢量进行估算以确定首先应该将哪个页面翻出。
2.根据权利要求1所述的方法,其特征在于包括下列步骤产生一个用于保存多个所述矢量的库。
3.根据权利要求1所述的方法,其特征在于所述估算所述矢量的步骤包括从所述统计步骤中估算所述存取次数。
4.在利用一页面控制器和一时效器的计算机系统中的一种辅助存贮器管理的设备,该页面控制器具有至少一个页面表,其中带有页面表索引,用于对一个过程的每一页面进行映象和查找,其特征在于包括一个包含多个比特的比特矢量,用于记录在多个时效处理周期中系统每个页面的已被存取/未被存取的历史。
5.根据权利要求4的设备,其特征在于包括一个用于保存多个所述矢量的库。
6.一个具有存储器管理系统的计算机系统,其特征在于包括一个包含多个比特的比特矢量,用于记录在多个时效处理周期中计算机系统的一个过程的每个页面的已被存取/未被存取的历史;用于估算所述比特矢量以确定哪个所述页面应该从实际存贮器中转移到外存储器中。
7.根据权利要求6所述的计算机系统,其特征在于包括一个用于保存多个所述矢量的库。
全文摘要
建立一个多位SP矢量来记录一个过程的每一页面的历史。当一个时效器每次扫描页面表索引的已被存取/未被存取位标志时,SP矢量就作出修改以反映该对应页面是否被存取。因此根据SP矢量中的位的数目可以建立起该页面过去被利用的历史,至少部分地依赖于该历史来选择要从实际存贮器中换出的页面。
文档编号G06F12/08GK1077808SQ9310320
公开日1993年10月27日 申请日期1993年3月22日 优先权日1992年4月22日
发明者施瑞肯特·N·帕瑞科 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1