在计算机系统里访问包括目录结构的主存储器内容的方法和装置的制作方法

文档序号:6417470阅读:186来源:国知局
专利名称:在计算机系统里访问包括目录结构的主存储器内容的方法和装置的制作方法
技术领域
笼统地说,本发明涉及在计算机系统里访问存储器的方法,具体而言,本发明涉及一种系统和方法,用来让计算机处理器和CPU(中央处理单元)访问主存储器系统的数据内容,其中对主存储器的访问是利用储存在主存储器里的目录结构通过硬件翻译实地址而实现的。
背景技术
在计算机系统的主存储器里采用数据压缩技术,从而使每一高速缓存线(cache line)都得到压缩以后才存入主存储器,这种技术在计算机结构学领域正方兴未艾。结果是,在不使用主存储器压缩技术的传统计算机系统里,在主存储器里占据统一固定大小的高速缓存线,在使用了存储器压缩技术以后,占据的是大小可变的存储器空间。在美国专利第5761536号和标题为“压缩存储访问”的共同未决的美国专利申请第08/603976号里,可以找到在主存储器里有效地储存并访问可变大小高速缓存线的技术,这项专利和这项专利申请都转让给了本发明的受让人。这种技术还可以在国际商用机器公司(IBM)华生(Watson)研究中心的RC 21146号IBM研究报告里找到,这份报告是P.Franaszek和J.Robinson在1998年3月30日完成的,其标题为“压缩随机存取存储器(RAM)内部结构的设计和分析”。
有效地储存和访问可变大小高速缓存线的技术需要使用目录结构,其中将计算机系统的CPU(或处理器)产生的真实存储器地址作为索引加入目录里,以后就用它来寻找包括压缩数据的主存储器内容。现在参考

图1~3来介绍压缩主存储器系统和目录结构的一个实例。
图1说明使用压缩主存储器的计算机系统实例的总体结构。CPU102从高速缓存104里读取数据并将数据写入其中。高速缓存则利用一个压缩控制器106从压缩主存储器108读取数据并将数据写入其中。
图2更详细地说明图1中高速缓存104、压缩控制器106的部件和压缩主存储器108的结构。压缩主存储器是用普通RAM存储器M 210来实现的,它被用来储存目录D 220和许多大小固定的块230。高速缓存240通常是用用于一组高速缓存线248的高速缓存目录245来实现的。压缩控制器106包括一个解压缩器250,用来读取压缩了的线,还包括一个压缩器260用来写入压缩线。每一高速缓存线都与某一个真实存储器地址270有关。然而,跟普通存储器不同,地址270并不指向存储器M 210里的一个地址;相反,地址270用于查找目录D 220里的索引。每一目录项都包括用来检索相关高速缓存线的信息(图3里有更详细的说明)。例如,与地址A1 271有关的线1的目录项221是用于这种线的,它已经压缩到如此程度以至于能够将它整个地储存在目录项里;与地址A2 272有关的线2的目录项222是用于这种线的,它是用压缩格式用整个第一块231和第二块232的一部分来储存的;最后,分别与地址A3 273和A4 274有关的线3和线4的目录项223和224适用于这种线的,它用压缩格式储存在许多整块(线3的块233、234和线4的块235)里,这两个压缩线3和4的剩余部分合并储存在块236里。
图3说明目录项格式的一些实例。在这一实例里,假定图2的块230的大小为256字节,图2的高速缓存线248的大小为1024字节。这意味着线可以用一种非压缩格式存入4个块中。对于这一实例,目录项的大小是16字节,其中第一字节由若干标志位组成;第一个字节305的内容决定了目录项其余部分的格式。标志位301规定线是用压缩格式还使用非压缩格式储存的;如果是用非压缩格式储存的,就用线1 310来解释目录项的其余部分,其中4个30比特地址给出储存了线的4个块的存储器地址。如果是用压缩格式储存的,标志位302就说明压缩线是不是整个储存在目录项里;如果是这样,目录项的格式就是线3 330,其中储存的是多达120位的压缩数据。否则,对于长度超过120位的压缩线,就可以采用线1310或者线2 320的格式。如果用的是线1 310的格式,另一个标志位303就标明储存压缩线所用的块数,从1个到4个30位地址说明这些块的位置;最后是4个碎块信息位304,说明最后一块里储存的压缩线的剩余部分即碎片的大小(以32字节为单位),以及一个标志位说明碎片是储存在这一块的开头还是末尾。目录项320说明的是另一种格式,其中部分压缩线储存在目录项里(以减少解压缩等待时间);在这种情况下,目录项里只储存了压缩线其余部分的第一块和最后一块的地址,插入其间的块(如果有的话)则用链接表技术来寻址,也就是说,如果需要,每一储存压缩线的块都有一个指针字段,其中包括的是储存该压缩线的下一块的地址。
相反,在不用压缩主存储器的传统计算机系统里,主存储器地址直接使用真实存储器地址。在压缩主存储器系统里,从目录到包括压缩高速缓存线内容的数据的映射,是用压缩控制器硬件自动进行的,对处理器来说这一目录是“不可见的”;也就是说,处理器根本不可能(用传统的处理器结构)访问目录内容。但是有许多理由要求提供这种访问。一种途径是改变处理器结构,使得例如其访问模式能够绕过压缩控制器硬件,并允许直接检查主存储器的内容。虽然这种途径解决了这一问题,但是很显然它有若干缺点,例如,在这种方式中,无法使用采用现行处理器结构的“现货”处理器。
即使假定有另一种寻址模式,可以把它叫做“R=P”(实地址=物理地址)模式,它能绕过利用目录结构从真实存储器地址到物理存储器位置的硬件翻译,这另一种寻址模式也存在着以下难题切换到这一模式以后,计算机系统所有高速缓存级的所有高速缓存内容都变成了无效数据,因为正常操作中的高速缓存内容反映的主存储器内容是用目录结构从真实存储器地址到物理位置的翻译来寻址的。因此,为了切换到这一模式,所有修改过的高速缓存级的高速缓存线都必须首先强行写入主存储器,然后必须将所有高速缓存级的所有高速缓存线全都标为无效。必须用一个相似的过程才能从R=P模式正确地切换回来。因此,在R=P模式和普通寻址模式之间进行切换意味着相等大的处理时间开销。此外,在多处理器系统里,当一个处理器工作于R=P模式而其余处理器工作于普通寻址模式时,在高速缓存一致性协议方面将出现大量的问题。
因此非常需要一种装置和方法,用来在间接寻址主存储器结构里,以及在其它应用中的间接寻址主存储器结构(例如容错主存储器设计)里,让处理器和CPU对压缩主存储器系统的目录结构进行直接寻址。
此外,非常需要一种系统和方法,用来让处理器对压缩存储器系统里的主存储器内容进行直接寻址,而不必改变现有处理器的结构,也不需要引入新的寻址模式。
发明简述本发明提供一种两级目录结构和寻址方式,在主存储器分级结构里的最低级是直接寻址的系统里,它允许处理器或CPU对用于压缩主存储器(和/或容错存储器)的目录结构进行直接寻址。具体而言,采用的第二级目录项指向包括(第一级)目录的存储器块,从而允许直接检查目录内容,用于硬件排错和性能监测。它还支持灵活的设计,从而使处理器可以用软件管理存储器内容(跟纯硬件存储器管理相对应),这样可以降低压缩主存储器或容错存储器系统的成本。
另外,本发明的第二级目录占用的是一部分逻辑存储器,它是位于一组给定存储器地址处的一部分存储器,但不是说它本身包括在存储器里。也就是说,引用一组存储器地址的结果是由硬件装置确定的,这一硬件装置计算出每一个这种逻辑存储器地址的逻辑内容。
附图简述通过参考后面的描述、权利要求和附图,可以更好地理解本发明的装置和方法各个方面的各种特点和优点。
图1说明用来实现压缩主存储器的一个普通计算机系统;图2说明一种传统压缩主存储器系统的结构;图3说明的是图2所示压缩主存储器系统中目录项格式的实例;图4说明的是本发明第一个实施方案里,访问压缩主存储器内容的装置;图5说明的是本发明第二个实施方案里,访问压缩主存储器内容的装置;图6说明访问计算机系统的压缩主存储器内容的硬件方式。
发明详述现在更详细地介绍本发明中访问压缩主存储器系统目录结构的一种方法。参考图1和图2,在向高速缓存104写入数据时,显然压缩控制器106利用目录D 220(图2)将CPU 102(图1)产生的实地址翻译过来,用来访问目录项里的压缩数据、一个或多个块230里的压缩数据或者块230里的未压缩数据。因此,如上所述,没有任何办法让CPU访问包含目录D 220的那部分存储器M 210。
在本发明的第一个实施方案里,如图4所示,访问D 220的一种方法是使用第二级目录D2 410,它包括许多目录项,这些目录项的格式允许访问采用未压缩格式的所有D 220。也就是说,在每一个这种目录项里,图3所示目录项里的压缩标志301被设置成“未压缩的”,而且4个地址块310指向D 220中一串4个连续的存储器块。利用目录项格式、图3所示实例里的块大小之类,每一目录项都支持访问1024字节,目录项的大小是16字节,因此,每一个第二级目录项都支持访问D 220中的1024/16=64个目录项。这用图4进行说明,其中对应于地址A0 414的D2 410目录项412支持访问D220中的64个连续目录项420,对应于地址A1~A64(430)。因此,CPU 102可以通过地址A0 414访问包括了对应于地址A1-A64(430)的目录项的1024字节存储器。
前面的实例说明的是第一级目录D 220的一种静态目录结构,也就是说D包括预先分配的一个连续存储区。压缩主存储器系统的另一种方式是采用一种动态目录结构,例如通过分配一个256字节的块230用作16个额外的16字节目录项而不是作为数据(它支持访问16kB数据,也就是说4个4 kB页,这4 kB是许多流行计算机系统所用的页的大小),其中的目录可以增长。用这种方式支持访问额外的存储器时,利用允许改变总的逻辑主存储器大小的操作系统,通过修改操作系统的页表将这一点记录下来。另外,还可以通过释放包括目录项的块230和适当地修改页表,来缩小逻辑主存储器的尺寸。在这种方式中,目录D 220不必位于事先知道的给定存储器区域,而是可以占据整个主存储器M 210中任意位置上的一些块。在此情形,为了支持访问第一级目录,图5说明了本发明的第二种方法。在图5所示的系统里,D2 510用来支持直接访问整个存储器,效果上就是绕过第一级目录和压缩/解压缩。图5说明整个存储器,它包括第一部分D2510,这一部分包括若干个目录项,例如16字节目录项;它还包括第二部分M2,这一部分包括若干存储区,例如每一个存储区都有1024字节。如图所示,对应于地址A0 531的目录项541用于对地址A3 534处的第一个1024字节存储器544进行访问;对应于地址A1 532的目录项542用于对地址A4 535处的1024字节存储器545进行访问;对应于地址A2 533的目录项543用于对地址A5 536处的最后1024字节存储器546进行访问。
如前所述,第二级目录可以用常规RAM来实现,其中第二级目录的内容在系统引导过程中就载入,或者用ROM来实现(因为第二级目录的内容并不改变)。此外,对第二级目录的存储器访问结果可以用专用硬件计算出来,如图6所示。在这一实例中,假定使用的是图5所示的方法;而且图3说明了所采用的目录项格式。参考图6,将一个“模板”目录项载入只读寄存器602,其中的标志数据段610包括未压缩的位组,而且载入块地址段612、613、614、615时,同时载入了地址A3 534处第一个1024字节存储区544(见图5)中的4个连续256字节块的地址。假定存储器地址A 605的间隔尺寸是16字节;也就是说,A+1指的是下一个16字节入口,等等(对于这一实例,为简单起见,假定第一个第二级目录项的地址是A=0;对其它基地址的修改方法不言自明。既然每一个连续的第二级目录项都指向4个连续的块,就必须将A乘以4,这用一个移位寄存器630将地址A向左移动两位来完成。然后利用加法器632、633、634、635将结果A’631跟“模板”目录项的块地址内容相加,并载入存储器输出寄存器640的对应段622、623、624、625。最后从目录项“模板”标志段610将标志段620的内容直接载入存储器输出寄存器640。这样,这一实例说明了另一个实施方案,其中的第二级目录不需要任何RAM也不需要任何ROM;取而代之,对第二级目录的存储器访问结果是用硬件机制计算出来的。
在对最低级主存储器的寻址是一种间接寻址的系统中,本发明支持处理器对用于实现压缩主存储器(和/或容错存储器)的目录结构进行访问。这种访问支持对目录内容进行检查,用于硬件排错和性能监测。它使得某些设计变得非常合理,其中的处理器利用软件来管理存储器内容(跟纯硬件存储器管理相反),从而降低压缩主存储器和容错存储器系统的成本。
虽然详述是针对压缩主存储器系统中所使用的间接寻址主存储器来进行的,但应当明白,本发明还可以用于其它的间接寻址主存储器。
尽管说明本发明时参考了说明性的实施方案,但是本领域的技术人员应当明白,可以对本发明在形式和内容上进行修改,而不会偏离本发明的范围和实质。本发明的范围和实质只由后面的权利要求进行限定。
权利要求
1.一种具有一个CPU(中央处理单元)并采用主存储器的计算机系统,这里的主存储器可以用它包括的第一个目录结构来访问,其中利用所述第一个目录结构将CPU产生的真实存储器地址翻译成一个或多个物理存储器位置;该计算机系统用来访问第一个目录结构的内容,第一个目录结构包括主存储器提供的第二个目录结构,这里的第二个目录结构包括一个或多个目录项,每一个目录项都有一种结构,这种结构支持访问第一个目录结构中预定数量的目录项,这第二个目录结构可以响应所述CPU产生的真实存储器地址。
2.权利要求1的计算机系统,其中的第一个目录结构包括预先分配的连续存储器区,第二个目录结构的每一个目录项都支持对所述第一个目录结构中的多个连续目录项进行访问。
3.权利要求1的计算机系统,其中的主存储器是一种压缩存储器。
4.权利要求2的计算机系统,其中第一个目录结构的大小是固定的,在一组固定的存储器位置上它有许多目录项。
5.权利要求1的计算机系统,其中CPU产生的真实存储器地址是用压缩控制器装置来翻译的。
6.权利要求1的计算机系统,其中的第一个目录项包括一个或多个标志指示器,说明第一个目录项剩余部分的数据格式。
7.权利要求6的计算机系统,其中第一个目录项里的第一个标志指示器说明该目录项里的数据是用压缩方式还是用非压缩方式储存的。
8.权利要求7的计算机系统,其中如果第一个标志说明该目录项里的数据是用压缩格式储存的,那么第二个标志就说明压缩数据是不是全部储存在该目录项里。
9.权利要求8的计算机系统,其中如果第二个标志说明压缩数据不是全部存在该目录项里,那么第三个标志就说明剩余压缩数据的多少。
10.一种具有一个CPU并采用存储器的一个计算机系统,这里的存储器可以用包括在其中的第一个目录结构来访问,其中CPU产生的真实存储器地址是利用第一个目录结构翻译成一个或多个物理存储器位置的;计算机系统用于访问所有存储器,包括第二个目录结构,该目录结构里有一个或多个目录项,每一目录项的格式都支持对一个预定主存储器段进行访问,第二个目录允许直接访问所述存储器的所有内容,包括第一个目录结构。
11.权利要求10的计算机系统,其中第一个目录结构的尺寸是可变的。
12.权利要求10的计算机系统,其中第二个目录结构是所述存储器的一部分,而且第二个目录结构的内容是在系统的引导过程中载入的。
13.权利要求10的计算机系统,其中第二个目录结构包括ROM。
14.权利要求10的计算机系统,其中CPU产生的真实存储器地址是用压缩控制器装置来翻译的。
15.权利要求10的计算机系统,其中第一个目录项包括一个或多个标志指示器,说明该目录项剩余部分的格式。
16.权利要求15的计算机系统,其中第一个目录项里的第一个标志指示器说明该目录项里的数据是用压缩方式还是用非压缩方式储存的。
17.权利要求16的计算机系统,其中如果第一个标志说明该目录项里的数据是用压缩格式储存的,那么第二个标志就说明压缩数据是不是全部储存在该目录项里。
18.权利要求17的计算机系统,其中如果第二个标志说明压缩数据不是全部存在该目录项里,那么第三个标志就说明剩余压缩数据的多少。
19.权利要求10的计算机系统,其中第二个目录结构是用硬件机制来实现的,包括第一只读寄存器装置,其中载入了预定基地址目录模板,该模板包括对应于要访问的所述存储器里连续块的块地址段,每一个块地址段都是按照预定尺寸来分隔的;从所述CPU接收存储器地址用来访问所述存储器的装置;按照所述预定间隔尺寸将所述地址跟一个预定数相乘的装置;一个或多个加法器装置,用来将地址作乘法运算获得的结果跟目录模板中对应的块地址段相加;和一种存储器输出寄存器,用来接收所述加法运算的连续结果,其中的存储器输出寄存器用来访问所述存储器里的一个存储器位置。
20.权利要求19的计算机系统,其中作乘法运算的装置包括一个移位装置。
全文摘要
一种系统,用来访问一个计算机系统里目录结构的内容,该计算机系统有一个CPU并通过存储器里的第一个目录结构对主存储器进行间接寻址。在这一系统里,利用该目录结构将CPU产生的真实存储器地址翻译成一个或多个物理存储器位置。主存储器里有第二个目录结构,它包括一个或多个目录项,每一个目录项的格式都支持对第一个目录结构中预定数量目录项的访问。或者第二个目录结构可以访问主存储器的所有内容,而且可以随着主存储器容量的变化而改变。或者可以用硬件来实现第二个目录结构,该硬件通过计算来得到主存储器里要访问的数据的地址。
文档编号G06F12/02GK1260536SQ9912614
公开日2000年7月19日 申请日期1999年12月13日 优先权日1999年1月12日
发明者P·A·弗拉纳斯泽克, J·T·罗宾森 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1