CN1110752C - 实现高速缓存一致性机制的方法和系统 - Google Patents
实现高速缓存一致性机制的方法和系统 Download PDFInfo
- Publication number
- CN1110752C CN1110752C CN98104031A CN98104031A CN1110752C CN 1110752 C CN1110752 C CN 1110752C CN 98104031 A CN98104031 A CN 98104031A CN 98104031 A CN98104031 A CN 98104031A CN 1110752 C CN1110752 C CN 1110752C
- Authority
- CN
- China
- Prior art keywords
- cache
- cache memory
- memory
- level
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000007246 mechanism Effects 0.000 title claims abstract description 28
- 230000004048 modification Effects 0.000 claims description 34
- 238000012986 modification Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 abstract description 2
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在数据处理系统内实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法和系统被揭示。按照本发明的方法和系统,存储器分级体系包括一个一级高速缓冲存储器、一个二级高速缓冲存储器和一个主存储器。一级高速缓冲存储器和二级高速缓冲存储器是非包含的。另外,在一级高速缓存内提供第一个状态位和第二个状态位,与一级高速缓存的每个高速缓存行有关。作为一个优选实施例,第一个状态位只有当一级高速缓冲存储器中相应的高速缓存行在直写模式下已被改变时才被置位,而第二个状态位只有当在二级高速缓冲存储器中也存在相应的高速缓存行时才被置位。这样,通过用一级高速缓冲存储器中的第一个状态位和第二个状态位可以保持一级高速缓冲存储器和二级高速缓冲存储器之间的高速缓存一致性。
Description
本发明总的来说涉及数据处理系统,具体来说涉及在高性能数据处理系统内使用的高速缓冲存储器。再进一步具体地说,本发明涉及在高性能数据处理系统内实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法和系统。
包含多级高速缓冲存储器的计算机体系结构已成为一个特别感兴趣的领域,并且是近几年中日益增长的技术。以前主要的研究已解决了两级高速缓冲存储器分级体系及用于操作这种高速缓冲存储器分级体系的有关协议,以使处理器在满足系统的高速缓存一致性要求的同时,达到最高的性能。
两级高速缓冲存储器分级体系是由不同大小和速度的两个高速缓冲存储器组成的一个高速缓冲存储器系统。一般来说,第一个高速缓冲存储器常称为一级高速缓存或L1高速缓存,它的存取时间较快,每比特的成本较高,而第二个存储器常称为二级高速缓存或L2高速缓存,它的存取时间较慢但每比特的成本也较低。一般来说,较小较快的一级高速缓存在芯片上而较大较慢的二级高速缓存在芯片外,尽管在有些高性能处理器设计中,芯片内的二级高速缓存也相当常见。
一致性存储器系统的主要目的是为存储器分级体系内的所有存储器装置提供信息的相同拷贝,以便能实现资源共享的同步和合作用途。要不然,当无意中使用了信息的旧的过时的拷贝时,就会发生问题。因此,在一个称为“包含”的方案下,一级高速缓存通常被设计成包含一个存储在二级高速缓存中的数据子集。这个包含方案在一级高速缓存和二级高速缓存之间提供了一定程度的冗余度,因此至一级高速缓存的总线流量可能被降低。然而,包含方案也存在缺点。一个缺点是要求从一级高速缓存至系统存储器的附加逐出(cast-out),以便当在二级高速缓存中被置换的高速缓存行与在一级高速缓存中的那个存储行不同且在二级高速缓存中被置换的高速缓存行处于“改变”状态时,适应行重填写操作。另外,在一级高速缓存中具有与二级高速缓存中被置换的高速缓存行相同地址的高速缓存行需要被逐出到系统存储器,因为按照包含方案它不能在一级高速缓存中单独存在。
虽然,如果包含的限制经由一个非包含的高速缓冲存储器分级体系被放宽的话,将改善高速缓存的性能,但是为了在一级高速缓存和二级高速缓存之间保持一致性,必须使用特殊的协议。本发明试图提供支持非包含的一级高速缓存和二级高速缓存的一个高速缓存一致性机制。
如前所述,本发明的一个目的在于为此提供数据处理的一个改进方法和系统。
本发明的另一目的是为高性能数据处理系统内使用的高速缓冲存储器提供一个改进的方法和系统。
本发明的再一目的是为支持高性能数据处理系统内的非包含的高速缓冲存储器分级体系提供一个实现高速缓存一致性机制的改进的方法和系统。
上述目的如下面所述来达到。按照本发明的方法和系统,高性能数据处理系统内的存储器分级体系包括一个一级高速缓冲存储器、一个二级高速缓冲存储器和一个主存储器。一级高速缓冲存储器和二级高速缓冲存储器是非包含的。另外,在一级高速缓存内提供第一个状态位和第二个状态位,与一级高速缓存的每个高速缓存行有关。作为优选实施例,第一个状态位只有当一级高速缓冲存储器中相应的高速缓存行在直写模式下已被改变时才被置位,而第二个状态位只有当在二级高速缓冲存储器中也存在相应的高速缓存行时才被置位。这样一来,通过利用一级高速缓冲存储器中的第一个状态位和第二个状态位可以保持一级高速缓冲存储器和二级高速缓冲存储器之间的高速缓存一致性。
在以下详细的描述中,本发明所述的所有目的、特性和优点会显而易见。
通过参照下面一个解释性的实施例的详述,并结合附图一起阅读,将会更好地理解本发明的内容和优选的使用方式,以及进一步的目标和优点,附图包括:
图1是与本发明最佳实施例对应的具有多级非包含的高速缓冲存储器分级体系的典型数据处理系统的方块图;
图2是与本发明优选实施例对应的一级高速缓存的构造方块图;
图3是与本发明优选实施例对应的在一级高速缓存中状态位字段的详细说明;
图4是与本发明优选实施例对应的二级高速缓存的构造方块图;
图5a是与本发明优选实施例对应的利用L位和C位的行填写操作的高速逻辑流程图;
图5b是与本发明优选实施例对应的一级高速缓存的行置换操作的高级逻辑流程图;
图5c是与本发明优选实施例对应的二级高速缓存的行置换操作的高级逻辑流程图;
图6是与本发明优选实施例对应的从一级高速缓存的逐出操作的高级逻辑流程图;
图7是与本发明优选实施例对应的对一级高速缓存进行存储操作的高级逻辑流程图。
本发明可以在多级非包含的高速缓冲存储器分级体系数据处理系统中实现。不难明白,本发明的特性也可以应用于具有一级高速缓存和二级高速缓存的各种数据处理系统中或要求多级高速缓冲存储器存取的地方。
现在参照附图,具体参照图1,其中示出与本发明优选实施例对应的安装有多级非包含的高速缓冲存储器分级体系的典型数据处理系统的方块图。在图1中,仅示出一个单一的处理器104;然而,本发明的特性在多个处理器系统中也是有用的。处理器104具有CPU106,CPU106可以是超标量RISC型,处理器104构成一个单片装置,包括片内指令高速缓存107和片内数据高速缓存108。两个高速缓存107、108都是一级高速缓存,用片内总线结构内的单独路径连接到CPU106。指令高速缓存107经由高速缓存控制器109a连接到片内总线105,而数据高速缓存108经由高速缓存控制器109b连接到片内总线105。
二级高速缓存110经由高速缓存控制器111也连接到片内总线105。二级高速缓存110通常要比指令高速缓存107和数据高速缓存108大得多,对二级高速缓存110的存取要比对指令高速缓存107和数据高速缓存108的存取稍微慢一些。CPU106经由总线接口112也连接到系统总线113,在总线接口112中实现片内总线105和系统总线113之间的定时和控制转换。此外,主存储器115和磁盘存储装置116连接到系统总线113。
指令高速缓存107和数据高速缓存108可以通过有效(即未转换过的)地址以及通过实际(即物理的)地址寻址。因此,在处理器104片内的总线105内有许多地址总线,包括有效地址总线、实际地址总线和指令地址总线。可是,二级高速缓存110通常是仅用实际地址寻址。
如所示的那样,存储器分级体系是从最快的到最慢的,从最小的到最大的,以及从每比特最贵的到每比特最便宜的,相继从一级高速缓存107、108到二级高速缓存110、到主存储器115和到磁盘存储装置116。通常,主存储器115包含磁盘存储装置中内容的一个子集,二级高速缓存110包含主存储器中内容的一个子集。然而,由于一级高速缓存107、108与二级高速缓存110之间为不包含的关系,因此高速缓存107、108中的每一个均可能包含与二级高速缓存110中内容无关的信息。
CPU106可以在一个处理器周期内存取一级高速缓存107、108,然而它可能花好几个处理器周期存取二级高速缓存110。如果在高速缓存107、108和二级高速缓存110中发生高速缓存“错漏”,那么主存储器115被存取以执行一个高速缓存行充填操作-用来自主存储器115的包含被寻址数据的一个等效比特区段置换一个高速缓存行。这个高速缓存行充填操作必须被执行,以便满足那个需要进行的发生过高速缓存“错漏”的所试图的高速缓存存取。如果主存储器115没有包含所需进行的高速缓存行充填操作的存储单元,那么从磁盘存储装置116获得包含这个数据的一个页,因而可以完成该高速缓存分行充填操作。从磁盘存储装置116中取得一个页并把它写入到主存储器115的时间一般要求数千个处理器周期,在此期间,CPU106可以被转换去执行其它任务或被停止以便等待满足需要的数据。
现在参见图2,其示出与本发明优选实施例相应的一级高速缓存16的构造的方块图。一级高速缓存16可以是指令高速缓存107和(或)数据高速缓存108。一级高速缓存16优先地被配置为四路高速缓存-路0、路1、路2和路3-每一路有64个高速缓存行。数据高速缓存16的每个路进一步被分成三个段,即标志段、数据段和状态位段。如图2所示,标志区段分别包括路0、路1、路2和路3的标志组60a、标志组60b、标志组60c和标志组60d。同样地,数据区段分别包括路0、路1、路2和路3的数据组70a、数据组70b、数据组70c和数据组70d。状态位区段也分别包括路0、路1、路2和路3的状态位字段80a、状态位字段80b、状态位字段80c和状态位字段80d。每个标志组60a~60d相应于每个数据组70a~70d。因为所有标志组60a~60d、数据组70a~70d和状态位字段80a~80d都有相同的配置,所以下面只详细介绍标志组60a、数据组70a和状态位字段80a。
每个标志组60a和数据组70a有64个高速缓存行,从行0到行63,每个高速缓存行用地址30的比特20~25编址。数据组70a的每个高速缓存行是64字节(或16字)宽,而标志组60a的每个高速缓存行仅为20比特宽。在数据组70a中的每个高速缓存行包含可以由CPU106请求的实际信息,且高速缓存行内的每个字节用地址30的比特26~31标记。反之,在标志组60a中的每个高速缓存行包含一个用于与地址30的比特0~19比较的地址标志,以便确定是否有高速缓存“命中”或“错漏”。偶尔,标志组60a~60d之一中的一个地址标志与地址30的比特0~19之间匹配,意味着一个高速缓存“命中”。
现在参见图3,其中示出与本发明优选实施例相应的一个一级高速缓存行的状态位字段80a的详细说明。如所示的那样,状态位字段80a包含5个不同的状态位,即有效位10、共用位11、修改位12、L位13和C位14。有效位10、共用位11和修改位12一起被用于实现四状态MESI(修改、排斥、共用和无效)协议。高速缓冲存储器设计的专业人员熟悉四状态MESI协议的实现。剩下的L位13和C位14是用于实现与本发明的优选实施例相应的支持非包含的一级高速缓存和二级高速缓存的高速缓存一致性机制。
现在参见图4,其示出按照本发明优选实施例相应的二级高速缓存110的构造的方块图。二级高速缓存110优选地被配置为具有2048高速缓存行的直接映射高速缓存。每个高速缓存行被分为标志段62、数据段72和状态位段82。每个高速缓存行的状态位段包含三个状态位,即有效位15、共用位16和修改位17。数据段72的每个高速缓存行为64字节(或16字)宽,而标志段62的每个高速缓存行仅为15比特宽。在数据段72中的每个高速缓存行包含可以由CPU106请求的实际信息。
与一级高速缓存16相类似,在二级高速缓存110中的每个高速缓存行用地址30的比特15~25编址,而在高速缓存行内的每个字节用地址30的比特26~31编址。此外,在标志段62中的每个高速缓存行包含一个用于与地址30的比特0~14比较的地址标志,以便确定是否高速缓存“命中”或“错漏”。
现在参见图5a,其中示出与本发明优选实施例相应的利用L位和C位的行填写操作的高级逻辑流程图。当有一个高速缓存“错漏”时,首先用一级高速缓存开始一个重填写操作,如在方框20中所示。然后,选择一个一级高速缓存行作为置换,如在方框22中所示。在一级高速缓存中行置换的细节将在图5b中作进一步描述。然后作出二级高速缓存是否也应当执行行填写操作的决定,如在方框24中所示。如果二级高速缓存不应当执行行填写操作,那么数据被装载到一级高速缓存中相应的高速缓存行,并且相应的高速缓存行的C位和L位被复位到“0”,如在方框28中所示。否则,如果二级高速缓存也应当执行行填写操作,那么选择二级高速缓存中的一个高速缓存行作为置换。数据接着被装载进一级高速缓存的相应高速缓存行和二级行,在一级高速缓存中相应的高速缓存行的C位被复位到“0”,在一级高速缓存中相应的高速缓存行的L位被置位到“1”,如在方框26中所示。按照惯例,置位一个比特是指将该比特置为逻辑“1”,而复位一个比特是指复位一个比特为逻辑“0”,尽管反向赋值也是可接受的。
现在参见图5b,其中示出与本发明优选实施例相应的一级高速缓存的行置换操作的高级逻辑流程图。从方框30开始,然后作出逐出候选高速缓存行的修改(M)位或C位是否被置位的决定,如在方框31和方框32中所示。如果逐出的候选高速缓存行的修改位和C位都不被置位,则逐出的候选高速缓存行被清除,不发送到二级高速缓存,如在方框33中所示。否则,如果逐出的候选高速缓存行的修改位被置位,则逐出的候选高速缓存行被发送到二级高速缓存,如在方框36中所示。同样地,如果修改位不被置位但逐出的候选高速缓存行的C位和L位都被置位,则逐出的候选高速缓存行也被发送到二级高速缓存,如在方框32、方框35和方框36中所示。
现在参见图5c,其中示出与本发明优选实施例相应的二级高速缓存的行置换操作的高级逻辑流程图。从方框40开始,然后在一级高速缓存中逐出的候选高速缓存的L位被复位为“0”。如在方框42中所示。然后,作出逐出的候选高速缓存行的修改位是否被置位的决定,如在方框44中所示。如果逐出的候选高速缓存行的修改位不被置位,则逐出的候选高速缓存行被清除,不发送到主存储器,如在方框48中所示。否则,如果逐出的候选高速缓存行的修改位被置位,则逐出的候选高速缓存行被发送到主存储器,如在方框46中所示。
现在参见图6,其中示出与本发明优选实施例相应的从一级高速缓存逐出操作的高级逻辑流程图。从方框50开始,然后作出逐出的候选高速缓存行的修改位是否被置位的决定,如在方框52中所示。如果逐出的候选高速缓存行的修改位被置位,则高速缓存行被写入到二级高速缓存,并且在该二级高速缓存行中的修改位被置位为“1”。否则,如果逐出的候选高速缓存行的修改位不被置位,则该高速缓存行仍被写入到二级高速缓存但在该二级高速缓存行中的修改位被复位为“0”。
其次,当在二级高速缓存中的一个高速缓存行结束一个行填写操作时,只有当相应的高速缓存行的修改位被置位时该相应的高速缓存行才被发送到主存储器。否则,相应的高速缓存行被清除。
现在参见图7,其中示出与本发明优选实施例相应的至一级高速缓存的存储操作的高级逻辑流程图。对于至一级高速缓存的一个存储操作,首先作出一级高速缓存是否在直写模式的决定,如在方框62中所示。如果一级高速缓存不是在直写模式(这意味着一级高速缓存是在写回模式),则数据字被写入到一级高速缓存并且相应的高速缓存行的修改位被置位为“1”,如分别在方框68和方框70中所示。否则,如果一级高速缓存是在直写模式,则数据字被写入到一级高速缓存和主存储器,不写入到二级高速缓存,且C位被置位为“1”,如分别在方框64和方框66中所示。
总之,在直写模式,存储操作把一个数据字写入到一级高速缓存和主存储器并置位一级高速缓存中相应的高速缓存行的C位。在写回模式,该存储操作把该数据字仅写入到一级高速缓存并置位一级高速缓存中相应的高速缓存行的修改位。当到了执行一级高速缓存的行填写操作的时候,如果逐出的候选高速缓存行的修改位和C位都被置位,则该逐出的候选高速缓存行被发送到二级高速缓存。然而,如果该逐出的候选高速缓存行的修改位和C位都没有被置位,则该逐出的候选高速缓存行被清除,不发送到二级高速缓存。无论如何,当一个数据字被首先装载到一级高速缓存时,高速缓存行的C位被复位为“0”。
如上所述,本发明提供了在一个数据处理系统内实现支持非包含的高速缓冲存储器分级体系的一个高速缓存一致性机制的方法。在直写模式,一个数据字被写入到一级高速缓存和主存储器,而跳过二级高速缓存。因此,在一级高速缓存中的该高速缓存行保持全部更新,而在二级高速缓存中,仅当在一级高速缓存中某高速缓存行被废弃时,其相应的高速缓存行才被更新。在这种情况下,因为一级高速缓存累积所有数据字改变(以及主存储器)直到发生一级高速缓存的窥探(Snoop)或逐出,所以到二级高速缓存的总线流量被减小。此外,能在一级高速缓存中有数据而不必在二级高速缓存中有数据,使得能有效地使用一级高速缓存以及二级高速缓存,一级高速缓存一般是高相联的,二级高速缓存一般是致密的但低相联的。
虽然参照一个优选实施例具体介绍和描述了本发明,但是本专业人员可以明白,在不违背本发明的精神和范围情况下可以在形式和细节上作出各种变化。
Claims (20)
1.在数据处理系统内实现高速缓存一致性机制的方法,其中所说的数据处理系统包括一个一级高速缓冲存储器、一个二级高速缓冲存储器和一个主存储器,其中所说的一级高速缓冲存储器和所说的二级高速缓冲存储器是非包含的,所说的方法包括如下步骤:
提供与所说的一级高速缓存内每个高速缓存行有关的一个修改位、第一个状态位和第二个状态位;
只有当所说的一级高速缓冲存储器中相应的高速缓存行在直写模式下已被一个存储操作修改时,才置位所说的第一个状态位;
只有当在所说的一级高速缓存和所说的二级高速缓存中都存在相应的高速缓存行时,才置位所说的第二个状态位。
2.按照权利要求1的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,如果在所说的一级高速缓冲存储器中的所说的第一个状态位、所说的第二个状态位和所说的修改位没有被置位的话,在所说的一级高速缓冲存储器的行置换操作期间,在不发送到所说的二级高速缓冲存储器的情况下,清除所说一级高速缓冲存储器中的一个高速缓存行的步骤。
3.按照权利要求2的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,如果所说的第一个状态位和所说的第二个状态位都被置位,或在所说的一级高速缓冲存储器中的所说的修改位被置位的话,在所说的一级高速缓冲存储器的所说的行置换期间,发送所说一级高速缓冲存储器中的一个高速缓存行到所说的二级高速缓冲存储器的步骤。
4.按照权利要求1的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括在所说的二级高速缓存中提供一个修改位的步骤。
5.按照权利要求4的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,如果在所说的二级高速缓冲存储器中的所说修改位没有被置位的话,在所说的二级高速缓冲存储器的行置换期间,在不发送到所说的主存储器的情况下清除所说二级高速缓冲存储器中的一个高速缓存行的步骤。
6.按照权利要求5的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,如果在所说的二级高速缓冲存储器中所说的修改位被置位的话,在所说的二级高速缓冲存储器的行置换期间,发送一个高速缓存行到所说的主存储器的步骤。
7.按照权利要求4的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,如果在所说的一级高速缓冲存储器中的修改位被置位的话,在所说的一级高速缓冲存储器的逐出期间,将所说的二级高速缓冲存储器中的修改位置位并把一个高速缓存行写入到所说的二级高速缓冲存储器的步骤。
8.按照权利要求7的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,如果在所说的一级高速缓冲存储器中的修改位没有被置位的话,在所说的一级高速缓冲存储器的所说的逐出期间,将所说的二级高速缓冲存储器中的所说的修改位复位并把一个高速缓存行写入到所说的二级高速缓冲存储器的步骤。
9.按照权利要求1的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,在所说的一级高速缓冲存储器的一个行填写操作期间,如果所说的行填写操作要在所说的二级高速缓冲存储器中被执行的话,在所说的一级高速缓冲存储器中复位所说的第一个状态位和置位所说的第二个状态位并装载一个高速缓存行的步骤。
10.按照权利要求9的实现支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的方法,其特征在于所说的方法还包括,在所说的一级高速缓冲存储器的所说的行填写操作期间,如果所说的行填写操作不在所说的二级高速缓冲存储器中被执行的话,在所说的一级高速缓冲存储器中复位所说的第一个状态位和所说的第二个状态位并装载一个高速缓存行的步骤。
11.具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,所说的数据处理系统包括:
主存储器;
一级高速缓冲存储器,其具有与所说的一级高速缓存内的每个高速缓存行有关的一个修改位、第一个状态位和第二个状态位;以及
二级高速缓冲存储器,所说的二级高速缓冲存储器和所说的一级高速缓冲存储器是非包含的;
只有当在所说的一级高速缓冲存储器中相应的高速缓存行在直写模式下已被存储操作修改时才置位所说的第一个状态位的设备,以及只有当在所说的一级高速缓存和所说的二级高速缓存中都存在相应的高速缓存行时才置位所说的第二状态位的设备。
12.按照权利要求11的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,如果在所说的一级高速缓冲存储器中的所说的第一个状态位、所说的第二个状态位和所说的修改位没有被置位的话,在所说的一级高速缓冲存储器的行置换期间,在不发送到所说的二级高速缓冲存储器的情况下清除所说一级高速缓冲存储器中的一个高速缓存行的设备。
13.按照权利要求12的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,如果所说的第一个状态位和所说的第二个状态位都被置位或在所说的一级高速缓冲存储器中的所说的修改位被置位的话,在所说的一级高速缓冲存储器的所说的行置换期间,发送所说一级高速缓冲存储器中的一个高速缓存行到所说的二级高速缓冲存储器的设备。
14.按照权利要求11的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的二级高速缓冲存储器具有一个修改位。
15.按照权利要求14的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,如果在所说的二级高速缓冲存储器中的所说修改位没有被置位的话,在所说的二级高速缓冲存储器的行置换期间,在不发送到所说的主存储器的情况下清除所说一级高速缓冲存储器中的一个高速缓存行的设备。
16.按照权利要求15的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,如果在所说的二级高速缓冲存储器中的所说的修改位被置位的话,在所说的二级高速缓冲存储器的行置换期间,发送一个高速缓存行到所说的主存储器的设备。
17.按照权利要求4的具有支持非包含的高速缓冲存储器分组体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,如果在所说的一级高速缓冲存储器中的修改位被置位的话,在所说的一级高速缓冲存储器的逐出期间,将在所说的二级高速缓冲存储器中的修改位置位并把一个高速缓存行写入到所说的二级高速缓冲存储器的设备。
18.按照权利要求17的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,如果在所说的一级高速缓冲存储器中的所说的修改位没有被置位的话,在所说的一级高速缓冲存储器的逐出期间,复位在所说的二级高速缓冲存储器中的所说的修改位并把一个高速缓存行写入到所说的二级高速缓冲存储器的设备。
19.按照权利要求11的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,在所说的一级高速缓冲存储器的一个行填写操作期间,如果所说的行填写操作要在所说的二级高速缓冲存储器中被执行的话,在所说的一级高速缓存行中复位所说的第一个状态位和置位所说的第二个状态位并装载一个高速缓存行的设备。
20.按照权利要求19的具有支持非包含的高速缓冲存储器分级体系的高速缓存一致性机制的数据处理系统,其特征在于所说的数据处理系统还包括,在所说的一级高速缓冲存储器的所说的行填写操作期间,如果所说的行填写操作不在所说的二级高速缓冲存储器中被执行的话,在所说的一级高速缓冲存储器中复位所说的第一个状态位和所说的第二个状态位并装载一个高速缓存行的设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US810,775 | 1997-03-05 | ||
US810775 | 1997-03-05 | ||
US08/810,775 US5787478A (en) | 1997-03-05 | 1997-03-05 | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1195817A CN1195817A (zh) | 1998-10-14 |
CN1110752C true CN1110752C (zh) | 2003-06-04 |
Family
ID=25204675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98104031A Expired - Fee Related CN1110752C (zh) | 1997-03-05 | 1998-01-27 | 实现高速缓存一致性机制的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5787478A (zh) |
JP (1) | JP3281893B2 (zh) |
KR (1) | KR19980079433A (zh) |
CN (1) | CN1110752C (zh) |
TW (1) | TW364081B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100461136C (zh) * | 2005-12-30 | 2009-02-11 | 国际商业机器公司 | 多处理器系统中维持数据一致性的方法和系统 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US6061766A (en) * | 1997-06-24 | 2000-05-09 | Sun Microsystems, Inc. | Non-inclusive cache method using pipelined snoop bus |
US6076147A (en) * | 1997-06-24 | 2000-06-13 | Sun Microsystems, Inc. | Non-inclusive cache system using pipelined snoop bus |
US6065098A (en) * | 1997-09-18 | 2000-05-16 | International Business Machines Corporation | Method for maintaining multi-level cache coherency in a processor with non-inclusive caches and processor implementing the same |
US6216218B1 (en) | 1997-11-03 | 2001-04-10 | Donald L. Sollars | Processor having a datapath and control logic constituted with basis execution blocks |
US6067601A (en) * | 1997-11-03 | 2000-05-23 | Brecis Communications | Cache memory based instruction execution |
US6397298B1 (en) * | 1999-07-30 | 2002-05-28 | International Business Machines Corporation | Cache memory having a programmable cache replacement scheme |
US6715040B2 (en) * | 2001-01-05 | 2004-03-30 | Nec Electronics, Inc. | Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit |
US6584546B2 (en) * | 2001-01-16 | 2003-06-24 | Gautam Nag Kavipurapu | Highly efficient design of storage array for use in first and second cache spaces and memory subsystems |
US6922753B2 (en) * | 2002-09-26 | 2005-07-26 | International Business Machines Corporation | Cache prefetching |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US7020746B2 (en) * | 2003-01-28 | 2006-03-28 | Microsoft Corporation | Method and system for an atomically updated, central cache memory |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
US7383388B2 (en) | 2004-06-17 | 2008-06-03 | International Business Machines Corporation | Method for storing data |
US20060155934A1 (en) * | 2005-01-11 | 2006-07-13 | Ramakrishnan Rajamony | System and method for reducing unnecessary cache operations |
US7325101B1 (en) * | 2005-05-31 | 2008-01-29 | Sun Microsystems, Inc. | Techniques for reducing off-chip cache memory accesses |
US20070038814A1 (en) * | 2005-08-10 | 2007-02-15 | International Business Machines Corporation | Systems and methods for selectively inclusive cache |
JP5319049B2 (ja) * | 2005-08-22 | 2013-10-16 | 富士通セミコンダクター株式会社 | キャッシュシステム |
US7596661B2 (en) * | 2005-09-01 | 2009-09-29 | Mediatek Inc. | Processing modules with multilevel cache architecture |
US7725619B2 (en) * | 2005-09-15 | 2010-05-25 | International Business Machines Corporation | Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes |
CN101595462B (zh) * | 2007-01-31 | 2012-04-25 | 高通股份有限公司 | 用以减少多级高速缓冲存储器层级中的掷出的设备和方法 |
US8661208B2 (en) * | 2007-04-11 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Non-inclusive cache systems and methods |
US9279079B2 (en) * | 2007-05-30 | 2016-03-08 | Sharp Kabushiki Kaisha | Method of manufacturing phosphor, light-emitting device, and image display apparatus |
JP2009053820A (ja) * | 2007-08-24 | 2009-03-12 | Nec Electronics Corp | 階層型キャッシュメモリシステム |
US9442846B2 (en) * | 2009-03-17 | 2016-09-13 | Cisco Technology, Inc. | High speed memory systems and methods for designing hierarchical memory systems |
US20110202727A1 (en) * | 2010-02-18 | 2011-08-18 | Qualcomm Incorporated | Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache |
US9378148B2 (en) | 2013-03-15 | 2016-06-28 | Intel Corporation | Adaptive hierarchical cache policy in a microprocessor |
US9418009B2 (en) * | 2013-12-27 | 2016-08-16 | Intel Corporation | Inclusive and non-inclusive tracking of local cache lines to avoid near memory reads on cache line memory writes into a two level system memory |
US10204047B2 (en) * | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
US11954034B2 (en) * | 2022-03-28 | 2024-04-09 | Woven By Toyota, Inc. | Cache coherency protocol for encoding a cache line with a domain shared state |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0452885A2 (en) * | 1990-04-16 | 1991-10-23 | Mitsubishi Denki Kabushiki Kaisha | Picture displaying method |
US5379396A (en) * | 1991-10-11 | 1995-01-03 | Intel Corporation | Write ordering for microprocessor depending on cache hit and write buffer content |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0461926B1 (en) * | 1990-06-15 | 1998-09-02 | Compaq Computer Corporation | Multilevel inclusion in multilevel cache hierarchies |
US5636365A (en) * | 1993-10-05 | 1997-06-03 | Nec Corporation | Hierarchical buffer memories for selectively controlling data coherence including coherence control request means |
-
1997
- 1997-03-05 US US08/810,775 patent/US5787478A/en not_active Expired - Fee Related
- 1997-07-17 TW TW086110164A patent/TW364081B/zh active
- 1997-10-22 KR KR1019970054287A patent/KR19980079433A/ko active IP Right Grant
-
1998
- 1998-01-27 CN CN98104031A patent/CN1110752C/zh not_active Expired - Fee Related
- 1998-02-17 JP JP03458498A patent/JP3281893B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0452885A2 (en) * | 1990-04-16 | 1991-10-23 | Mitsubishi Denki Kabushiki Kaisha | Picture displaying method |
US5379396A (en) * | 1991-10-11 | 1995-01-03 | Intel Corporation | Write ordering for microprocessor depending on cache hit and write buffer content |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100461136C (zh) * | 2005-12-30 | 2009-02-11 | 国际商业机器公司 | 多处理器系统中维持数据一致性的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
JP3281893B2 (ja) | 2002-05-13 |
KR19980079433A (ko) | 1998-11-25 |
US5787478A (en) | 1998-07-28 |
TW364081B (en) | 1999-07-11 |
CN1195817A (zh) | 1998-10-14 |
JPH10254772A (ja) | 1998-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1110752C (zh) | 实现高速缓存一致性机制的方法和系统 | |
US11914508B2 (en) | Memory controller supporting nonvolatile physical memory | |
US7266647B2 (en) | List based method and apparatus for selective and rapid cache flushes | |
US8412907B1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
CN1126046C (zh) | 包括多层次分级存储器体系的数据处理系统的高速缓存相关性协议 | |
US8230179B2 (en) | Administering non-cacheable memory load instructions | |
US5717893A (en) | Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions | |
JP4447580B2 (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
US20050108496A1 (en) | Hardware support for superpage coalescing | |
US20100325374A1 (en) | Dynamically configuring memory interleaving for locality and performance isolation | |
KR20170026114A (ko) | 트랜잭션 기반 하이브리드 메모리 모듈 | |
CN1268695A (zh) | 用于改进超高速缓存性能的输入/输出页面删除确定 | |
CN1734431A (zh) | 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 | |
CN1940892A (zh) | 逐出高速缓存的行的电路布置、数据处理系统和方法 | |
JP3866447B2 (ja) | マルチプロセッサ・ノードデータ処理システムに使用するディレクトリエントリ割当てシステム及び方法 | |
US10884925B2 (en) | Systems and methods for tag-less buffer implementation | |
US7721047B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
US20080313404A1 (en) | Multiprocessor system and operating method of multiprocessor system | |
US20070043914A1 (en) | Non-inclusive cache system with simple control operation | |
US8250300B2 (en) | Cache memory system and method with improved mapping flexibility | |
US6598124B1 (en) | System and method for identifying streaming-data | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
CN111480151A (zh) | 将高速缓存线从共用存储器页面冲洗到存储器 | |
CN114764307A (zh) | 计算机系统及其数据管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |