处理高速缓存未命中的方法和装置的制作方法

文档序号:6560100阅读:196来源:国知局
专利名称:处理高速缓存未命中的方法和装置的制作方法
技术领域
本发明一般地涉及计算机系统,更具体地说,涉及用于处理高速缓存未命中的方法和装置。
背景技术
允许系统的硬件和软件都能在地址转换高速缓存中存储数据是有利的(例如,在处理高速缓存未命中时)。当I/O设备访问存储器而关联的地址未在地址高速缓存中准备好时会出现地址高速缓存未命中。当地址高速缓存未命中发生时,地址转换硬件将从存储器取回新地址的关联的地址转换信息,并且必须使用新的数据来替换地址高速缓存中的旧的表项。但是,由于传统的系统不能防止硬件重写由软件存储在高速缓存中的数据(并且反之亦然),所以传统的系统一般只适合于使用硬件或软件之一在高速缓存中存储数据。因此,需要用于处理高速缓存未命中的改进的方法和装置。

发明内容
在本发明的第一方面中,提供了第一方法。所述第一方法包括如下步骤(1)提供具有多个高速缓存表项的高速缓存,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;(2)判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(3)根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及(4)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
在本发明的第二方面中,提供了第二方法。所述第二方法包括如下步骤(1)提供具有多个高速缓存表项的高速缓存,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;(2)判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(3)根据当前运行模式以及与所述多个高速缓存表项关联的移除状态位的值来判定状态;以及(4)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
在本发明的第三方面中,提供了第一装置。所述第一装置包括适于执行如下步骤的选择逻辑(1)与具有多个高速缓存表项的高速缓存相连,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问,并且判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(2)根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及(3)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
在本发明的第四方面中,提供了第二装置。所述第二装置包括适于执行如下步骤的选择逻辑(1)与具有多个高速缓存表项的高速缓存相连,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问,并且判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(2)根据当前运行模式以及与所述多个高速缓存表项关联的移除状态位的值来判定状态;以及(3)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
在本发明的第五方面中,提供了第一系统。所述第一系统包括(1)存储器;(2)地址转换逻辑的高速缓冲存储器,所述高速缓冲存储器具有多个高速缓存表项,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;(3)处理器,所述处理器适于执行软件并与所述高速缓冲存储器相连;(4)输入/输出(I/O)设备,所述输入/输出(I/O)设备与所述存储器和高速缓冲存储器相连;以及(5)与所述高速缓冲存储器相连的所述地址转换逻辑的选择逻辑。所述系统适于(a)判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(b)根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及(c)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。根据本发明的这些和其他方面提供了大量其他的方面。
从以下详细说明、所附权利要求以及附图,本发明的其他特征和方面将变得更加显而易见。


图1是根据本发明的一个实施例的用于处理高速缓存未命中的系统的方块图;图2是根据本发明的一个实施例的包括在用于处理高速缓存未命中的系统中的选择逻辑的方块图;图3是示出了根据本发明的一个实施例的系统如何处理高速缓存未命中的表。
具体实施例方式
本发明提供了用于使用硬件和软件在地址转换高速缓存中存储数据的方法和装置。例如,根据本发明的一个实施例的系统可以适于以这样的模式来运行其中硬件和/或软件可以在多个高速缓存表项中的一个或多个高速缓存表项中存储数据。当将数据存储在高速缓存表项中时,可以设置一个位,所述位与该高速缓存表项对应并且指示了存储在该高速缓存表项中的数据的移除状态(例如,提示-锁定(HL))。
必要时,系统可以选择高速缓存的表项,可以根据与多个高速缓存表项关联的相应提示-锁定位以及系统的运行模式(例如,硬件和/或软件是否可以在高速缓存中存储数据)来从所述表项移除数据。例如,如果系统判定所需数据没有存储在多个相应高速缓存表项中的一个高速缓存表项中(例如,出现高速缓存未命中),则系统可以根据与相应表项关联的相应提示-锁定位以及系统的运行模式来选择相应表项中的一个表项。此后,硬件或软件可以将所需数据存储在选定表项中。进而,硬件或软件可以更新与所述选定表项关联的提示-锁定位。
这样,本发明提供了用于使用硬件和软件在地址转换高速缓存中存储数据的方法和装置。更具体地说,本发明提供了其中可以采用软件和/或硬件来处理地址转换高速缓存未命中的方法和装置。本发明的方法和装置还可以允许软件在硬件处理地址转换高速缓存未命中时预载入地址转换高速缓存。可以使用与高速缓存表项对应的提示-锁定位来防止在处理高速缓存未命中时将该表项从高速缓存移除。对于由软件预载入地址转换高速缓存并且期望保留在高速缓存中直到I/O设备完成与该地址转换高速缓存表项关联的存储器访问的那些表项,防止此移除尤其重要。即使在没有使用软件未命中处理时,这种移除的预防对最小化特定高速I/O设备的存取等待时间也是有用的。
图1是根据本发明的一个实施例的用于处理高速缓存未命中的系统的方块图。参考图1,用于处理高速缓存未命中的系统100可以是计算机或其他适合的设备。系统100可以包括适于执行软件104的处理器102。处理器102可与诸如一个或多个DRAM或其他适合的存储器之类的系统存储器106相连。这样,处理器102(例如,由此执行软件104)可从存储器106读取数据和/或向存储器106写入数据。类似地,系统100可以包括与系统存储器106相连的硬件,如一个或多个I/O设备108(仅示出了一个)。所述一个或多个I/O设备108适于从存储器106读取数据和/或向存储器106写入数据。
为了减小在使用处理器102或I/O设备108从系统存储器106读取数据和/或向系统存储器106写入数据时的等待时间,系统100可以包括高速缓冲存储器110(或替代地,转换旁视缓冲器(TLB)),其适于局部地存储同样存储在系统存储器106中的数据(例如,地址转换数据)。高速缓冲存储器110可与处理器102以及一个或多个I/O设备108相连。系统100可以适于以多个模式中的一个模式来运行。例如,系统100可以以如下模式来运行第一模式(例如,位HW_MH=’0’并且位SW_MH=’1’),其中只有软件可以向高速缓冲存储器110写入数据(例如,处理高速缓存未命中);第二模式(例如,位HW_MH=’1’并且位SW_MH=’0’),其中只有硬件可以向高速缓冲存储器110写入数据;以及第三模式(例如,位HW_MH=’1’并且位SW_MH=’1’),其中软件和硬件都可以向高速缓冲存储器110写入数据。寄存器120可以存储此类指示系统运行模式的位。这样,处理器102(例如,由此执行软件104)和/或地址转换逻辑或硬件122(其可以共同引用至少选择逻辑118和高速缓冲存储器110),当由I/O设备108访问而引起地址高速缓存未命中时,可以快速从高速缓冲存储器110读取数据和/或向高速缓冲存储器110写入数据。
高速缓冲存储器110可以包括多个适于存储数据的表项112。表项112可以包括和/或与相应的有效位114关联,所述有效位114指示了存储在相应表项112中的数据是否有效以及因此是否可用于地址转换。此外,表项112可以包括和/或与相应的提示-锁定位116(例如,提示/锁定位)关联,所述提示-锁定位116指示了是否可以从高速缓冲存储器110移除存储在相应的表项112中的数据。这样,提示-锁定位116可用于防止无意中重写存储在高速缓冲存储器110中的数据。
更具体地说,系统110可以包括可与处理器102以及一个或多个I/O设备108相连的选择逻辑118。此外,选择逻辑118可与高速缓冲存储器110相连。选择逻辑118适于判定与数据(如地址转换数据)对应的多个高速缓冲存储器表项112中的一个表项是否可存储(如可用于存储)所述数据,如果是,则从所述多个对应的高速缓冲存储器表项112选择一个此类表项来存储所述数据。选择逻辑118适于根据与对应于所述数据的表项112关联的相应提示-锁定位116和有效位114以及根据系统100的运行状态来做出上述判定和选择。这样,软件或硬件(例如,响应于由I/O设备108访问的存储器地址的高速缓冲存储器未命中而操作的地址转换逻辑或硬件122)可以向高速缓冲存储器表项112写入数据而不会无意中重写数据。
高速缓冲存储器110可以是组相联高速缓冲存储器(尽管可以以不同的方式来配置高速缓冲存储器110)。因此,高速缓冲存储器110的表项112可被分成组或同余类(congruence class)。要写入高速缓冲存储器110的数据可与组或同余类对应,因此,所述数据应被写入包括在此类组或同余类内的表项112。例如,如果高速缓冲存储器110是四路组相联高速缓冲存储器110,则每个组或同余类可包括四个表项112。因而,为了将与组或同余类对应的数据写入高速缓冲存储器110,可以选择所述组或同余类中的四个表项112(如果可用)中的一个表项来存储所述数据。
选择逻辑118可以包括逻辑、寄存器、存储器等的任何适合的组合,并且在至少一个实施例中,可以包括专用集成电路(ASIC)。以下参考图2描述了选择逻辑118的详细信息。
图2是根据本发明的一个实施例的包括在用于处理高速缓存未命中的系统100中的选择逻辑118的方块图。参考图2,选择逻辑118适于判定与数据(如地址转换数据)对应的多个高速缓冲存储器表项112中的一个表项是否可存储(如可用于存储)所述数据,如果是,则选择所述多个对应的高速缓冲存储器表项112中的一个表项来存储所述数据。假设选择逻辑118适于与四路组相联高速缓冲存储器相连(尽管选择逻辑118可以适于与具有不同配置的高速缓冲存储器110相连)。此外,一般假设当软件不能向高速缓冲存储器110存储数据时,硬件可以向高速缓冲存储器110存储数据。因此,选择逻辑118适于判定与数据对应的组或同余类中的多个路中的一个路是否可存储所述数据,如果是,从所述组或同余类选择一个路来存储所述数据。
选择逻辑118可以访问与要写入高速缓冲存储器110的数据对应的同余类中的表项112的相应有效位114以及提示-锁定位116,以便确定一个或多个此类表项112的状态(例如,状况)。基于此类位以及系统100的运行模式,选择逻辑118可输出由选择逻辑118使用的多个子规则(例如,替换子规则)中的一个子规则产生的表项112(例如路)。更具体地说,选择逻辑118可以包括“与”逻辑200(例如,第一到第六“与”逻辑202-212)以及“或”逻辑214(例如,第一到第五“或”逻辑216-224),所述逻辑适于根据所述位和系统100的运行模式来输出由多个子规则中的一个子规则产生的表项112(例如路)。
条件1例如,如果与是同余类的第一路的表项112关联的有效位114指示表项112无效,并且或者与第一路关联的提示-锁定位116指示该路可以被从高速缓冲存储器110移除,或者系统运行在只有硬件可以向高速缓冲存储器110写入数据(如处理高速缓存未命中)的模式(在图2中表示为[V(0)=’0’并且(HL(0)=’0’或SW_MH=’0’)]),则选择逻辑118将选择可向其写入数据的第一路(替换路)。选择逻辑118可使用“与”逻辑2 00以及“或”逻辑214的一个或多个部分来输出选定的路(例如,其用作可以替换它的数据的路(替换路))。
条件2可替代地,如果不满足以上条件,并且如果与是同余类的第二路的表项112关联的有效位114指示表项112无效,并且或者与第二路关联的提示-锁定位116指示该路可以从高速缓冲存储器110移除,或者系统运行在只有硬件可以向高速缓冲存储器110写入数据(如处理高速缓存未命中)的模式(在图2中表示为[V(1)=’0’并且(HL(1)=’0’或SW_MH=’0’)]),则选择逻辑118将选择可向其写入数据的第二路(替换路)。选择逻辑118可使用“与”逻辑200以及“或”逻辑214的一个或多个部分来输出选定的路。
条件3可替代地,如果不满足以上条件,并且如果与是同余类的第三路的表项112关联的有效位114指示表项112无效,并且或者与第三路关联的提示-锁定位116指示该路可以从高速缓冲存储器110移除,或者系统100运行在只有硬件可以向高速缓冲存储器110写入数据(如处理高速缓存未命中)的模式(在图2中表示为[V(2)=’0’并且(HL(2)=’0’或SW-MH=’0’)]),则选择逻辑118将选择可向其写入数据的第三路(替换路)。选择逻辑118可使用“与”逻辑200以及“或”逻辑214的一个或多个部分来输出选定的路。
条件4可替代地,如果不满足以上条件,并且如果与是同余类的第四路的表项112关联的有效位114指示表项112无效,并且或者与第四路关联的提示-锁定位116指示该路可以从高速缓冲存储器110移除,或者系统100运行在只有硬件可以向高速缓冲存储器110写入数据(如处理高速缓存未命中)的模式(在图2中表示为[V(3)=’0’并且(HL(3)=’0’或SW_MH=’0’)]),则选择逻辑118将选择可向其写入数据的第四路(替换路)。选择逻辑118可使用“与”逻辑200以及“或”逻辑214的一个或多个部分来输出选定的路。
条件5可替代地,如果不满足以上条件,并且如果与所述多个表项(例如,多个路)分别关联的所有提示-锁定位116指示相应的路优选地不应被从高速缓冲存储器110移除(例如,应防止移除或锁定以防移除)(在图2中表示为HL(0:3)=’1111’),并且软件未命中处理被禁用(由SW_MH=’0’表示),则选择逻辑118可以使用第五子规则234来选择可向其写入数据的路。尽管提示-锁定位隐含地建议不移除表项,但是为了写入与高速缓存未命中对应的新表项,仍然必须选择一个表项来移除。选择逻辑118可使用“与”逻辑200以及“或”逻辑214的一个或多个部分来输出选定的路。根据第五子规则234,选择逻辑118可以确定多个表项中最近最少使用的(LRU)表项(例如,路)(例如,对所有表项计算LRU),并选择此类将被写入的表项。当系统运行在其中硬件(例如,响应于由I/O设备108访问的存储器地址的高速缓冲存储器未命中而操作的地址转换硬件122)和/或软件104可以向高速缓冲存储器表项112写入数据(例如,响应于高速缓存未命中)的模式,条件5可以得到满足。
条件6可替代地,如果不满足以上条件,并且如果所有分别与所述多个路关联的提示-锁定位116没有指示可以防止从高速缓冲存储器110移除(例如,应防止移除或锁定以防移除)相应的表项(图2中表示为非HL(0:3)=’1111’),则选择逻辑118可以使用第六子规则236来选择可向其写入数据的路。选择逻辑118可使用“与”逻辑200以及“或”逻辑214的一个或多个部分来输出选定的路。根据第六子规则236,选择逻辑118可以通过确定具有指示可以从高速缓冲存储器110移除相应路的提示-锁定位116的多个路中的最近最少使用(LRU)的路来选择路(如果有)。
可替代地,如果选择逻辑118无法选择路,则选择逻辑118可以输出错误。以上所述的选择逻辑118是示例性的。因此,可以以不同的方式来配置选择逻辑118。例如,选择逻辑118可以包括更多或更少数量的逻辑和/或不同的逻辑或在高速缓存同余类中处理不同数量的路。进而,选择逻辑118可以对更多或更少数量的状态(例如,条件)和/或不同的状态进行测试。另外,选择逻辑118可以使用更多或更少数量的子规则和/或不同的子规则。
在运行期间,系统100可能经历高速缓存未命中。例如,系统100可以访问高速缓冲存储器110并确定所需数据没有存储在高速缓冲存储器110中。因此,系统100可以使用选择逻辑118来从与所需数据对应的组或同余类选择表项112,并使用硬件或软件(取决于系统100的运行模式)将所需数据存储在选定的表项112中。这样,系统100可以处理高速缓存未命中。更具体地说,图3是示出了根据本发明的一个实施例的系统100如何处理高速缓存未命中(例如,仅当硬件未命中处理被启用时)的表300。参考图3,系统100可根据系统100的运行模式,使用不同的替换规则(例如,一个或多个子规则)来处理高速缓存未命中。这样,系统100可以确定其当前存储的数据可以被所需数据替换(例如,重写)的高速缓存表项112。例如,系统100可以运行在其中软件或硬件都不能将数据存储到高速缓冲存储器110(例如,为了处理高速缓存未命中)的第一模式。因此,没有指定处理高速缓存未命中的过程(例如,软件未命中处理(SW_MH)或硬件未命中处理(HW_MH))。从而,如表300的第一行302所示,响应于高速缓存未命中,可以出现异常,并且因此系统100可以输出错误。
可替代地,系统100可以运行在其中硬件不能向高速缓冲存储器110进行写入(如HW_MH=’0’)而软件可以向高速缓冲存储器进行写入(如SW_MH=’1’)的第二模式。当软件104可以向高速缓冲存储器110写入数据时,软件应确保存储在高速缓冲存储器110中的数据是正确的(例如,最新的)。因此,当硬件尝试访问高速缓冲存储器110(例如,从其读取数据)时不应发生高速缓存未命中。从而,如表300的第二行304所示,响应于高速缓存未命中,可以出现异常,并且因此系统100可以输出错误。
可替代地,系统100可以运行在其中硬件可以向高速缓冲存储器110进行写入(如HW_MH=’1’)而软件不能向高速缓冲存储器进行写入(如SW_MH=’0’)的第三模式。如表300的第三行306所示,响应于在查找所需数据时的高速缓存未命中,为了确定其当前存储的数据可以被所需数据替换(如重写)的(与所需数据对应的组或同余类的)路,系统100可以对以上描述的第一至第六条件进行测试,并且如果满足第一至第六条件中的一个或多个条件,则使用适当的子规则226-236选择一路来存储所需数据。
可替代地,系统100可以运行在其中硬件和软件都可以向高速缓冲存储器110进行写入(如HW_MH开启并且SW_MH开启)的第四模式。如表300的第四行308所示,响应于在查找所需数据时的高速缓存未命中,为了确定其当前存储的数据可以被所需数据替换(如重写)的(与所需数据对应的组或同余类的)路,系统100可以对条件1至4以及条件6进行测试,使用适当的子规则226-232以及236选择一路来存储所需数据。
以上所述的根据系统100的运行模式以及与高速缓冲存储器110的各路关联的相应提示-锁定位116来处理高速缓存未命中的方法是示例性的。因此,可以使用更多或更少数量的规则和/或不同的规则来处理当系统100在任意模式下运行时的高速缓存未命中。
通过使用本发明的方法和装置,硬件和软件都可以将数据存储在系统100的高速缓冲存储器中(例如,为了处理高速缓存未命中)。系统100可以根据系统100的运行模式(例如,是否使用软件未命中处理和/或硬件未命中处理)以及与高速缓冲存储器表项112关联的相应提示-锁定位116来处理高速缓存未命中。提示-锁定位116的定义可以根据系统100的运行模式而改变(如动态地)。这样,本发明可以提供用于允许对高速缓冲存储器110(例如,页表高速缓存,转换旁视缓冲器等)的同时硬件和软件未命中处理,以及用于根据系统100中是否启用了软件和/或硬件未命中处理来重新定义提示-锁定位116的方法和装置。因此,本发明可以提高多处理器和/或多线程环境(其中应用可以分别具有不同的未命中处理策略)的可伸缩性,同时保持诸如硬件未命中处理之类的传统功能。这样,本发明使得软件和硬件未命中处理两者能够在系统100上以功能模式共存。本发明可借助每个高速缓冲存储器表项112一个的位使硬件和软件能够同时在高速缓冲存储器110中存储数据。
以上描述只是披露了本发明的示例性实施例。对以上披露的装置和方法的修改(其落入本发明的范围之内)将对本领域的技术人员是显而易见的。例如,在更广泛的方面中,本发明可以包括用于以下操作的方法和装置(1)提供具有多个高速缓存表项的高速缓存,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;(2)判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(3)根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及(4)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
例如,高速缓存可以运行在软件和/或硬件都可以在其中存储数据的第一模式、只有软件可以在其中存储数据的第二模式,或者只有硬件可以在其中存储数据的第三模式(尽管所述高速缓存(以及包括该高速缓存的装置)可以在更多或更少数量的模式下运行)。在这样的装置中,可以判定在多个高速缓存表项中的一个高速缓存表项中缺少所需的数据(例如,出现高速缓存未命中)。所述多个高速缓存表项可以是高速缓存的同余类的路。进而,在这样的装置中,通过对以上参考图2和3描述的条件进行测试,可以根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态,以及可以根据所述状态来判定至少一个所述高速缓存表项的可用性。进而,如以上参考图2和3所描述的,所述装置可以根据所述测试的条件使用选择算法来选择可以由所需数据替换其数据的路。
进而,以上参考页表高速缓存和未命中处理描述了所述方法和装置。但是,应当理解,当本发明描述页表高速缓存的处理时,假设是软件将预载入表项到高速缓存中以避免终止关联的I/O访问的异常,并且当本发明包括处理器转换旁视缓冲器(TLB)时,软件可以在TLB未命中发生后处理该未命中,因为处理器通常提供了机制来保持适当的状态并允许指令执行在程序中发生TLB未命中的位置处重新启动。
另外,在其中将TLB用作转换机制(例如,对于系统100的处理器102)的实施例中,软件104可以通过将所需数据载入TLB来处理异常(例如,因没有高速缓存表项112可以被替换而发生)。
因此,虽然已连同本发明的示例性实施例一起披露了本发明,但是应当理解,其他实施例可以落入由以下权利要求限定的本发明的精神和范围之内。
权利要求
1.一种方法,所述方法包括提供具有多个高速缓存表项的高速缓存,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
2.如权利要求1中所述的方法,还包括根据所述可用性来选择可以替换其数据的所述多个高速缓存表项中的一个高速缓存表项。
3.如权利要求2中所述的方法,还包括采用硬件来检索所述所需的数据;以及使用所述硬件将所述所需的数据存储在所述选定的高速缓存表项中。
4.如权利要求2中所述的方法,还包括使用所述软件将所述所需的数据存储在所述选定的高速缓存表项中。
5.如权利要求1中所述的方法,其中所述多个高速缓存表项是所述高速缓存的同余类中的路。
6.如权利要求5中所述的方法,还包括根据所述可用性来选择可以替换其数据的所述高速缓存的所述同余类中的多个路中的一个路。
7.如权利要求1中所述的方法,还包括输出错误。
8.如权利要求1中所述的方法,还包括根据所述系统的运行模式来重新定义与所述高速缓存表项关联的相应提示-锁定位的含义。
9.一种装置,所述装置包括选择逻辑,所述选择逻辑适于与具有多个高速缓存表项的高速缓存相连,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问,并且判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
10.如权利要求9中所述的装置,其中所述选择逻辑还适于根据所述可用性来选择可以替换其数据的所述多个高速缓存表项中的一个高速缓存表项。
11.如权利要求9中所述的装置,其中所述多个高速缓存表项是所述高速缓存的同余类中的路。
12.如权利要求11中所述的装置,其中所述选择逻辑还适于根据所述可用性来选择可以替换其数据的所述高速缓存的所述同余类中的多个路中的一个路。
13.如权利要求9中所述的装置,其中所述选择逻辑还适于输出错误。
14.一种系统,所述系统包括存储器;地址转换逻辑的高速缓冲存储器,所述高速缓冲存储器具有多个高速缓存表项,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;处理器,所述处理器适于执行软件并与所述高速缓冲存储器相连;输入/输出设备,所述输入/输出设备与所述存储器和高速缓冲存储器相连;以及与所述高速缓冲存储器相连的所述地址转换逻辑的选择逻辑;其中所述系统适于判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
15.如权利要求14中所述的系统,其中所述系统还适于根据所述可用性来选择可以替换其数据的所述多个高速缓存表项中的一个高速缓存表项。
16.如权利要求15中所述的系统,其中所述系统还适于采用地址转换逻辑来从存储器检索所述所需的数据;以及使用所述地址转换逻辑将所述所需的数据存储在所述选定的高速缓冲存储器表项中。
17.如权利要求15中所述的系统,其中所述系统还适于使用所述软件将所述所需的数据存储在所述选定的高速缓存表项中。
18.如权利要求14中所述的系统,其中所述多个高速缓存表项是所述高速缓冲存储器的同余类中的路。
19.如权利要求14中所述的系统,其中所述系统还适于输出错误。
20.如权利要求14中所述的系统,其中所述系统还适于根据所述系统的运行模式来重新定义与所述高速缓冲存储器表项关联的相应提示-锁定位的含义。
21.一种方法,所述方法包括提供具有多个高速缓存表项的高速缓存,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;根据当前运行模式以及与所述多个高速缓存表项关联的移除状态位的值来判定状态;以及根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
22.如权利要求21中所述的方法,还包括根据所述可用性来选择可以替换其数据的所述多个高速缓存表项中的一个高速缓存表项。
23.一种装置,所述装置包括选择逻辑,所述选择逻辑适于与具有多个高速缓存表项的高速缓存相连,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问,并且判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;根据当前运行模式以及与所述多个高速缓存表项关联的移除状态位的值来判定状态;以及根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。
24.如权利要求23中所述的装置,其中所述选择逻辑还适于根据所述可用性来选择可以替换其数据的所述多个高速缓存表项中的一个高速缓存表项。
全文摘要
在第一方面中,提供了第一方法。所述第一方法包括如下步骤(1)提供具有多个高速缓存表项的高速缓存,每个表项都适于存储数据,其中所述高速缓存适于由硬件和软件以第一运行模式来访问;(2)判定在所述多个高速缓存表项中的一个高速缓存表项中缺少所需的数据;(3)根据当前运行模式以及与所述多个高速缓存表项关联的提示-锁定位的值来判定状态;以及(4)根据所述状态来判定至少一个所述高速缓存表项的可用性,其中高速缓存表项的可用性指示可以替换存储在所述高速缓存表项中的数据。还提供了许多其他方面。
文档编号G06F12/08GK1979451SQ200610101870
公开日2007年6月13日 申请日期2006年7月12日 优先权日2005年12月8日
发明者J·D·艾里希, C·B·麦克布莱德, A·H·沃特朗 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1