CN1731372A - 用于控制存储器系统的方法和设备 - Google Patents
用于控制存储器系统的方法和设备 Download PDFInfo
- Publication number
- CN1731372A CN1731372A CNA2004100821781A CN200410082178A CN1731372A CN 1731372 A CN1731372 A CN 1731372A CN A2004100821781 A CNA2004100821781 A CN A2004100821781A CN 200410082178 A CN200410082178 A CN 200410082178A CN 1731372 A CN1731372 A CN 1731372A
- Authority
- CN
- China
- Prior art keywords
- data
- state
- processor
- speed buffering
- clauses
- 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.)
- Granted
Links
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
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
Abstract
用于控制存储器系统的方法和设备。高速缓冲状态保持单元存储在高速缓冲存储器的每一条目中存储的数据的地址信息,并将每一条目的状态保持为“强修正”、“弱修正”、“共享”和“无效”中的任何之一。一旦接收数据读请求,数据取程序选择单元根据地址信息和状态选择至少一个数据取程序。读数据传送单元从所读取的数据中选择最新的数据并将该最新的数据传送到发出数据读请求的处理器。高速缓冲状态更新单元在登记数据的地址信息时,根据数据读请求的类型来更新条目的状态。
Description
技术领域
本发明涉及一种用于控制多处理器系统中的高速缓冲存储器与主存储器之间一致性(coherency)的技术,该多处理器系统中的多个处理器中的每一个具有独立的高速缓冲存储器,通过该技术可以减小在高速缓冲存储器与主存储器之间的事务,且可以防止多处理器系统的性能退化。
背景技术
有一种多处理器系统,其中对每一处理器设置了独立的高速缓冲。在这种多处理器系统中,高速缓冲存储器可以是该处理器的组成部分。在多处理器系统中,通常采用诸如MESI协议、推测性读取(speculativeread)、窥探型高速缓冲(snoop cache)等的方法,以有效地确保一致性并因此提高性能。
MESI协议是一种高速缓冲一致性协议,其中通过将高速缓冲的每个行分入四种状态即“修正”、“专用”、“共享”和“无效”之一,来管理存储器系统。MESI协议明确地确定最新的数据位置,因此有效地确保每一个高速缓冲存储器与主存储器之间的一致性(例如,参见日本专利特开平公开No.2002-24198)。
在推测性读取方法中,查询处理器并同时做出读取主存储器的读请求。当处理器请求数据时,必须为所请求的数据查询每一个处理器。这样做以确保数据的一致性。仅在从处理器接收响应之后执行读取主存储器的读请求。这导致显著的等待时间(latency)(延迟)。
因此,如果处理器的响应表明不能获得所请求的数据,则通过对处理器发出请求并同时发出读取主存储器的推测性读请求,将从主存储器推测读取的数据传输到做出该读请求的处理器。因此通过采用推测性读取方法可以减小取数据的等待时间。
然而,如果对于每一个读请求都发出推测性读请求,则高速缓冲与主存储器之间的事务会显著增长,导致系统性能退化。因此,采用利用窥探型高速缓冲的方法。在这种方法中,将窥探型高速缓冲设置为控制存储器存取的存储器系统控制设备的组成部分。该窥探型高速缓冲存储关于各高速缓冲存储器的行的信息。
该存储器系统控制设备参考窥探型高速缓冲的状态以测量每一处理器的高速缓冲的每一行的状态,而不需要查询处理器,由此不需要推测性读请求(例如,参见日本专利特开平公告No.H8-185359)。
然而,取决于连接处理器的总线的规范(specification),存储器系统控制设备可能不能精确测量出处理器的高速缓冲的状态的转变。对窥探型高速缓冲的参考不能给出高速缓冲的精确状态。这需要查询处理器。
为了避免增加从处理器获得响应的等待时间,需要使用推测性读请求来读取主存储器。然而,由于发出很多推测性读请求,因而高速缓冲存储器与主存储器之间的事务会显著增加,由此有害地影响系统性能。
发明内容
本发明的目的是至少解决常规技术中的上述问题。
根据本发明的一个方面的存储器系统控制设备,其控制为多处理器系统的多个处理器中的每一个处理器所设置的高速缓冲存储器与主存储器之间的一致性,所述存储器系统控制设备包括:高速缓冲状态保持单元,其存储在高速缓冲存储器的每一条目(entry)中存储的数据的地址信息,并将每一条目的利用状态保持为“强修正”、“弱修正”、“共享”和“无效”中的任何一种;数据取程序选择单元,一旦接收了来自所述多个处理器中的一个处理器的数据读请求,则基于高速缓冲状态保持单元保持的地址信息和利用状态,选择至少一个数据取程序;读数据传送单元,从由数据取程序选择单元选出的取程序所读取的数据中选择最新的数据,并将所选择的最新数据传送到发出所述数据读请求的处理器;和高速缓冲状态更新单元,当将数据的地址信息登记在与发出数据读请求的所述处理器对应的高速缓冲状态保持单元的条目之一中时,基于数据读请求的类型来更新条目的利用状态。
根据本发明另一方面的存储器系统控制方法,其用于控制为多处理器系统的多个处理器中的每一个处理器所设置的高速缓冲存储器与主存储器之间的一致性,该方法包括:高速缓冲状态保持步骤,存储在高速缓冲存储器的每一条目中所存储的数据的地址信息,并将每一条目的利用状态保持为“强修正”、“弱修正”、“共享”和“无效”中的任何一种;数据取程序选择步骤,一旦从所述多个处理器中的一个处理器接收了数据读请求,则基于在高速缓冲状态保持步骤保持的地址信息和利用状态,选择至少一个数据取程序;读数据传送步骤,从数据取程序选择步骤所选择的取程序所读取的数据中选择最新数据,并将被选择的最新数据传送到发出所述数据读请求的处理器;和高速缓冲状态更新步骤,当将所述数据的地址信息登记在与发出数据读请求的所述处理器对应的所述高速缓冲状态保持步骤中的条目之一中时,基于数据读请求的类型来更新条目的利用状态。
本发明的其它目的、特征和优点在本发明的下述详细说明中具体阐明,并在结合附图来阅读本发明的下述详细说明时变得显而易见。
附图说明
图1是根据本发明实施例的存储器系统控制方法的图;
图2是根据本发明实施例的存储器系统控制设备的框图;
图3是在状态为“弱修正”时根据本发明实施例的存储器系统控制方法的控制程序的图;
图4是在状态为“强修正”时根据本发明实施例的存储器系统控制方法的控制程序的图;
图5是在状态为“弱修正”时表示根据本发明实施例的存储器系统控制方法的控制程序的时序图;
图6是为“强修正”时的表示根据本发明实施例的存储器系统控制方法在状态控制程序的时序图;
图7A是根据MESI协议的存储器系统控制方法的图;
图7B是根据MSI协议的存储器系统控制方法的图;
图8是根据MSI协议的存储器系统控制方法在状态为“修正”时的控制程序的图。
具体实施方式
参考附图阐释根据本发明的用于控制存储器系统的方法和设备的示例性实施例。在下述说明中,假设高速缓冲为每一处理器的组成部分。虽然本发明假设每一处理器具有自己的高速缓冲,但是高速缓冲并不是必须作为每一处理器的组成部分。
图7A是根据MESI协议的存储器系统控制方法的图。在图7A中示出了具有多个处理器的多处理器系统中的高速缓冲存储器侧上的状态管理与窥探型高速缓冲侧上的状态管理之间的一致性。
高速缓冲存储器是一种设置在处理器与主存储器之间以加速二者之间的数据交换的存储器件。在这里引用的示例中,每个处理器具有各自分开的高速缓冲存储器。
窥探型高速缓冲是一种设置为存储器系统控制设备的组成部分的存储器件,该存储器系统控制设备控制在处理器与主存储器之间的数据交换。对于每一高速缓冲存储器,存在相应的窥探型高速缓冲。窥探型高速缓冲保持相应的高速缓冲存储器的每一行的标记(tag)信息。
如图7A中所示,存储在高速缓冲存储器中的每一行被分为四种状态即“M(修正)”、“E(专用)”、“S(共享)”和“I(无效)”之一。与该高速缓冲存储器相应的窥探型高速缓冲的每一行也被分为四种状态之一。
因此,当高速缓冲存储器的状态总是与窥探型高速缓冲的状态一致时,存储器系统控制设备不需要向处理器查询高速缓冲存储器的状态,而可以通过仅查阅各处理器的窥探型高速缓冲来确定要从其中读取数据的处理器。
具体地,一旦从处理器接收到数据读请求,存储器系统控制设备查阅每一处理器的窥探型高速缓冲以寻找包括被请求数据的行。如果窥探型高速缓冲没有具有被请求的数据的行,则存储器系统控制设备从主存储器中读取包括被请求数据的行。如果包括被请求数据的行存在于窥探型高速缓冲的其中之一中,则存储器系统控制设备检验该行的状态并确定从其中读取被请求数据的处理器。
如果行的状态为“M”,则表示该行已经被处理器修正过并存储在修正状态下的高速缓冲存储器中。结果,需要从该行所属的处理器的高速缓冲存储器中读取该数据。
如果行的状态为“E”,则表示该行属于单个处理器。如果该行的状态为“S”,则表示该行由多个处理器共享。结果,可以从该行所属的处理器的高速缓冲存储器中或从主存储器中读取该数据。
如果该行的状态为“I”,则表示该行具有无效内容,且因此必须从除该行所属的处理器之外的处理器的高速缓冲存储器中或从主存储器中读取数据。
因此,当高速缓冲存储器的状态与窥探型高速缓冲的状态一致时,系统没有负载且该系统可以有效地读取数据。
图7B是根据MSI协议的存储器系统控制方法的图。处理器的高速缓冲存储器中的行的状态根据处理器总线的要求从“E”变换到“M”到“I”。该存储器系统控制设备不能测量行的改变的状态。
在这种情况下,通常,在窥探型高速缓冲侧采用MSI协议来代替MSEI协议。在MSI协议中状态“M”和状态“E”没有差别。
在图7B中示出的例子中,在高速缓冲存储器侧上具有状态“E”的行在窥探型高速缓冲侧上被处理(manage)为具有状态“M”的行。即使当该行的状态改变为“M”或“I”,在存储器系统控制设备侧上也探测不到该改变。结果,窥探型高速缓冲侧上的状态“M”保持不变。因此,窥探型高速缓冲侧上的状态“M”不仅相应于高速缓冲存储器侧上的状态“E”还相应于状态“M”或“I”。
换句话说,在该示例中,窥探型高速缓冲侧上的状态“M”表示高速缓冲存储器中的数据为最新的可能性与该数据不为最新的可能性一样大,并因此不能明确表示高速缓冲存储器中的数据最新。
结果,当包括被处理器请求的数据的行在窥探型高速缓冲中且该行的状态为“M”时,存储器系统控制设备查询对应于与该行相关的窥探型高速缓冲的处理器。如果接收的响应为没有可用的有效数据,则存储器系统控制设备必须向主存储器发出另一数据请求。
通常,在向处理器发出查询的同时执行推测性读请求来读取主存储器,以减小直到从服务器接收响应之后才从主存储器中请求数据而引起的等待时间。虽然一方面,推测性读请求减小由高速缓冲错误引起的等待时间,另一方面,它们增加了高速缓冲存储器与主存储器之间的事务。
接下来通过引用示例来阐释推测性读请求的产生。图8是在状态为“修正”时根据MSI协议的存储器系统控制方法的控制程序的图。
当存储器系统控制设备200从处理器100a接收了请求不存在于高速缓冲存储器中的任何一个中的数据的读请求时(步骤S301),它向主存储器300发出读请求来读取包括该数据的行(步骤S302)。
将从主存储器300读取的行送到读数据传送单元220(步骤S303)。将该行从读数据传送单元220传送到发出请求的处理器100a并存储在高速缓冲存储器110a中。在此,高速缓冲存储器110a中存储的行的状态改变为“E”而窥探型高速缓冲231a中的同一行的状态改变为“M”。
随后,即使在高速缓冲存储器110a中的行的状态在该行由处理器100a更新时改变为“M”或在行被处理器100a放弃时改变为“I”的情况下,存储器系统控制设备200也不能测量该转变(步骤S305)。
如果处理器100b对在同一行中存储的数据发出专用读请求(步骤S306),则存储器系统控制设备200搜索每一个窥探型高速缓冲并证实对应于处理器100a的窥探型高速缓冲231a中的行的状态为“M”。
由于状态“M”表示高速缓冲存储器110a中的数据是最新的或无效的,因而存储器系统控制设备200查询与该行相关的处理器100a(步骤S307)。
此外,为了避免在从处理器100a中获得响应的长等待时间,存储器系统控制设备200同时向主存储器300发出读请求以读取包括该数据的行(步骤308)。
如果从处理器100a接收到响应(步骤S309)并且通过主存储器300传送了被请求的行(步骤S310),则读数据传送单元220从来自处理器100a的响应内容中确定最新数据的位置,选择合适的数据,并将其传送到处理器100b(步骤S311)。
在此,高速缓冲存储器110a和窥探型高速缓冲231a中的行的状态改变为“I”,而高速缓冲存储器110b中的同一行的状态改变为“E”而在窥探型高速缓冲231b中状态改变为“M”。
因此,在窥探型高速缓冲侧上采用MSI协议代替MESI协议的常规方法中,需要向主存储器发出推测性读请求,增加了高速缓冲存储器与主存储器之间的事务。
下面阐释根据本发明实施例的存储器系统控制方法。图1是根据本发明实施例的存储器系统控制方法的图。在本发明的实施例中,处理器的高速缓冲存储器中的行的状态从“E”到“M”到“I”的转换也不能被存储器系统控制设备测量。
如图1中所示,在常规方法中的窥探型高速缓冲侧上的状态“M”(修正)被分入根据本发明实施例的存储器系统控制方法中的“M(强修正)”和“W(弱修正)”。
根据本发明实施例的存储器系统控制方法中的状态“M”,与根据MESI协议的常规存储器系统控制方法中的状态“M”一样,明确地表示高速缓冲存储器中的数据是最新的。状态“W”与根据MSI协议的常规存储器系统控制方法中的状态“M”一样,表示高速缓冲存储器侧上的数据状态未知。
如果根据来自处理器的请求的内容确定高速缓冲存储器中的行的状态为“M”,则存储器系统控制设备将窥探型高速缓冲中的同一行的状态设置为“M”。例如,如果处理器发出具有数据已经被写入的先决条件的数据读请求,则存储器系统控制设备将窥探型高速缓冲中的行的状态设置为“M”。
由于保证了其状态在窥探型高速缓冲中为“M”的行在高速缓冲存储器中是最新的,所以不需要向主存储器发出推测性读请求。因此,可以将系统的负载减小一定程度。
下面阐述根据本发明实施例的存储器系统控制设备的结构。图2是根据本发明实施例的存储器系统控制设备的框图。在图2中,存储器系统控制设备200连接多个处理器100a至100d和主存储器300。可以将任何数量的处理器连接到存储器系统控制设备200。
处理器100a是执行各种操作的指令执行单元并包括高速缓冲存储器110a。高速缓冲存储器110a具有仅存储预定数量的主存储器300的行的容量并将各行的状态存储为“M”或“E”或“I”。
处理器100b、100c和100d具有相似的结构并因此不再分开描述。
存储器系统控制设备200控制处理器100a至100d与主存储器之间的数据交换并确保一致性。存储器系统控制设备200包括:处理器接口单元210a至210d、读数据选择和传送单元220、高速缓冲控制单元230和主存储器接口单元240。
处理器接口单元210a为输入/输出单元,通过该输入/输出单元在处理器100a与存储器系统控制设备200之间进行数据交换。类似地,处理器接口单元210b至210d分别执行处理器100b至100d与存储器系统控制设备200之间的数据交换。
读数据选择与传送单元220将数据从处理器100a至100d以及主存储器300传送到请求该数据的处理器。当存储器系统控制设备200向主存储器300发出推测性读请求,同时查询处理器100a至100d中的任何之一时,读数据选择与传送单元220从相同的行读取两个不同的信息。然而,数据选择和传送单元220确定来自处理器的响应内容,并选择要被传送到请求该数据的处理器的数据。
高速缓冲控制单元230控制窥探型高速缓冲的各行的状态并当存在来自处理器100a至100d的数据请求时选择数据读取程序。高速缓冲控制单元230包括窥探型高速缓冲231a至231d和窥探型高速缓冲更新单元233。
窥探型高速缓冲231a存储在高速缓冲存储器110a中存储的各行的标记信息并将各行的状态存储为“M”或“W”或“S”或“I”。窥探型高速缓冲231b至231d分别存储在高速缓冲存储器110b至110d中存储的各行的状态和标记信息。
当有来自处理器100a至100d的读请求以读取数据时,数据取程序选择单元232选择用于读取包括该数据的行的读程序。具体地,数据取程序选择单元232检查在窥探型高速缓冲231a至231d中是否可以得到包括该数据的行,如果该行不能从窥探型高速缓冲231a至231d中得到,则从主存储器300中读取包括该数据的行。
如果可以从窥探型高速缓冲231a至231d中获得包括该数据的行,则数据取程序选择单元232验证其状态并选择读取程序。如果该行的状态为“M”,则数据取程序选择单元232从对应于该窥探型高速缓冲的高速缓冲存储器中读取该行。如果该行的状态为“W”,则数据取程序选择单元232查询对应于该窥探型高速缓冲的处理器并同时向主存储器300发出推测性读请求。
如果该行的状态为“S”,则数据取程序选择单元232从对应于该窥探型高速缓冲的高速缓冲存储器中读取该行。在这种情况下,数据取程序选择单元232还从主存储器300读取该行。如果该行状态为“I”,则数据取程序选择单元232从主存储器300读取该行。
窥探型高速缓冲更新单元233根据来自处理器100a至100d的读请求或状态更新通知来更新窥探型高速缓冲231a至231d的各行的状态。例如,如果来自处理器100a至100d的读请求是先决条件为已经写入了数据的类型,则该窥探型高速缓冲更新单元233将窥探型高速缓冲231b至231d的行的状态改变为“M”。
主存储器接口单元240为输入/输出单元,通过该输入/输出单元,在主存储器300与存储器系统控制设备200之间进行数据交换。主存储器300配置有该多处理器系统所使用的程序和这些程序所使用的数据,在该多处理器系统中设置存储器系统控制设备200。
下面通过引用示例来阐述根据本发明实施例的存储器系统控制方法中的控制程序。图3是在状态为“弱修正”时根据本发明实施例的存储器系统控制方法的控制程序。
当存储器系统控制设备200从处理器100a接收到对不存在于高速缓冲中的任何一个高速缓冲中的数据的读请求(步骤101)时,它向主存储器300发出读请求以读取包括该数据的行(步骤S102)。
将从主存储器300读取的行传送到读数据选择与传送单元220(步骤S103)。将该行从读数据选择与传送单元220传送到发出请求的处理器100a并存储在高速缓冲存储器110a中。在此,存储在高速缓冲存储器110a的行的状态改变为“E”且窥探型高速缓冲231a中的相同行的状态改变为“W”。
随后,即使高速缓冲存储器110a中的行的状态在该行被处理器100a更新时改变为“M”或在该行被处理器100a放弃时改变为“I”,存储器系统控制设备200也不能测量该转变(步骤S105)。
如果处理器100b对存储在相同行中的数据发出专用读请求(步骤S106),则存储器系统控制设备200检索每一窥探型高速缓冲并证实对应于处理器100a的窥探型高速缓冲中的行的状态为“W”。
由于状态“W”可能表示在高速缓冲存储器110a中的数据最新或无效,因而存储器系统控制设备200查询与该行相关的处理器100a(步骤107)。
而且,为了避免从处理器100a中获得响应的长等待时间,存储器系统控制设备200同时向存储器300发出读请求以读取包括该数据的行(步骤S108)。
如果从处理器100a接收响应(步骤S109)并且通过主存储器300传送了该被请求的行(步骤S110),则读数据选择与传送单元220从来自处理器100a的响应内容来确定最新数据的位置,选择合适的数据,并将其传送到处理器100b(步骤S111)。
在此,在高速缓冲存储器110a和窥探型高速缓冲231a中的行的状态改变为“I”,而在高速缓冲存储器110b中的相同行的状态改变为“E”而在窥探型高速缓冲231b中状态改变为“W”。
因此,在根据本发明实施例的存储器系统控制方法中,当窥探型高速缓冲侧上的状态为“弱修正”时,还需要向主存储器发出推测性读请求,并因此增加了在高速缓冲存储器与主存储器之间的事务。
图4是在状态为“强修正”时根据本发明实施例的存储器系统控制方法的控制程序的图。
当存储器系统控制设备200从处理器100a接收到请求不存在于高速缓冲中的任何一个高速缓冲中的数据的读请求(步骤S201)时,其向主存储器300发出读请求以读取包括该数据的行(步骤S202)。
将从主存储器300读取的行传送到读数据选择与传送单元220(步骤S203)。将该行从读数据选择与传送单元220传送到发出请求的处理器100a并存储在高速缓冲存储器110a中。在此,存储在高速缓冲存储器110a中的行的状态改变为“M”而窥探型高速缓冲231a中相同行的状态也改变为“M”。
随后,即使该行由处理器100a更新,高速缓冲存储器110a中的状态也保持“M”(步骤S205)。
如果处理器100b发出对存储在相同行中的数据的专用读请求(步骤S106),则存储器系统控制设备200检索每一窥探型高速缓冲并证实对应于处理器110a的窥探型高速缓冲231a中的行的状态为“M”。
由于状态“M”表示高速缓冲存储器110a中的数据是最新的,所以存储器系统控制设备200请求处理器100a释放该行(步骤S207)。
如果处理器100a释放了该行(步骤S208),则读数据选择与传送单元220将该被释放的行传送到处理器100b(步骤S209)。
在此,高速缓冲存储器100a和窥探型高速缓冲231a中的行的状态改变为“I”,而在高速缓冲存储器100b中的相同行的状态改变为“E”并且在窥探型高速缓冲231b中状态改变为“W”。
因此,在根据本发明实施例的存储器系统控制方法中,当窥探型高速缓冲侧上的状态为“强修正”时,不需要向主存储器发出推测性读请求。结果,避免了高速缓冲存储器与主存储器之间的事务的增加。
通过利用时序图来表示控制程序,可以更好地理解推测性读请求的发出。图5是表示在状态为“弱修正”时根据本发明实施例的存储器系统控制方法的控制程序的时序图。图6是表示在状态为“强修正”时根据本发明实施例的存储器系统控制方法的控制程序的时序图。
图5与图6之间的差别是,在图6中没有对应于图5的步骤S108和S110的步骤(步骤S108和S110对应于向主存储器发出推测性读请求),因而一定程度上减小了主存储器与高速缓冲存储器之间的事务。
因此,根据本发明的实施例,根据来自处理器的读请求类型,将窥探型高速缓冲的“修正”状态区分为“弱修正”和“强修正”。通过这样做,确保了在“强修正”状态下的处理器的高速缓冲存储器中的可用数据是最新的。因此,减少了向主存储器的读请求几率,并因此减小主存储器与高速缓冲之间的事务。
根据本发明,将高速缓冲的“修正”状态区分为“弱修正”和“强修正”。通过这样做,可以更加精确有效地控制该高速缓冲。
此外,根据本发明,如果接收了以数据已经被写入为先决条件的请求数据的数据请求,则存储该数据,其状态设置为“强修正”。因此,可以将存储在高速缓冲存储器中的数据状态与其它“修正”状态区分,且可以明确地将该数据认定为最新的。
而且,根据本发明,对于在高速缓冲状态保持单元中具有状态“强修正”的数据,仅向高速缓冲存储器发出数据请求,而不需要向主存储器发送推测性读请求。因此可以减小高速缓冲存储器与主存储器之间的事务。
虽然为了完整清楚的公开,已经结合具体的实施例描述了本发明,但是附属的权利要求书不因此而受限制,而是被解释为本领域普通技术人员可能采取的所有落入本文所阐述的基本教导的修改和选择结构。
Claims (20)
1、一种存储器系统控制设备,控制高速缓冲存储器与主存储器之间的一致性,所述高速缓冲存储器被提供用于多处理器系统的多个处理器中的每一个处理器,所述存储器系统控制设备包括:
高速缓冲状态保持单元,其存储在所述高速缓冲存储器的每一条目中存储的数据的地址信息,并将每一条目的利用状态保持为“强修正”、“弱修正”、“共享”和“无效”中的任何一种;
数据取程序选择单元,一旦从所述多个处理器之一接收了数据读请求,则基于所述高速缓冲状态保持单元保持的地址信息和利用状态,选择至少一个数据取程序;
读数据传送单元,从通过由数据取程序选择单元选择的取程序所读取的数据中选择最新数据,并将被选择的最新数据传送到发出所述数据读请求的处理器;和
高速缓冲状态更新单元,当将数据的地址信息登记在与发出所述数据读请求的所述处理器对应的高速缓冲状态保持单元的条目之一中时,基于所述数据读请求的类型来更新所述条目的利用状态。
2、根据权利要求1的存储器系统控制设备,其中,当从所述多个处理器中的一个处理器接收了具有写入前提的数据读请求时,所述高速缓冲状态更新单元将数据的利用状态在高速缓冲状态保持单元中登记为“强修正”。
3、根据权利要求1的存储器系统控制设备,其中当从所述多个处理器中的一个处理器接收了具有写入可能性的数据读请求时,所述高速缓冲状态更新单元将数据的利用状态在所述高速缓冲状态保持单元中登记为“弱修正”。
4、根据权利要求1的存储器系统控制设备,其中,当从所述多个处理器中的一个处理器接收了具有将利用状态改变为“共享”的前提的数据读请求时,所述高速缓冲状态更新单元将数据的利用状态在高速缓冲状态保持单元中登记为“弱修正”。
5、根据权利要求1的存储器系统控制设备,其中,当从所述多个处理器中的一个处理器接收了具有将利用状态改变为“无效”的前提的数据读请求时,所述高速缓冲状态更新单元将数据的利用状态在高速缓冲状态保持单元中登记为“弱修正”。
6、根据权利要求1的存储器系统控制设备,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于所述高速缓冲状态保持单元的任何一个条目中,并且当包括所述数据的所述条目的利用状态为“强修正”时,所述数据取程序选择单元选择一个仅从对应于所述高速缓冲状态保持单元的处理器中读取所述数据的过程作为所述数据取程序。
7、根据权利要求1的存储器系统控制设备,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于所述高速缓冲状态保持单元的任何一个条目中,并且当包括所述数据的条目的利用状态为“弱修正”时,所述数据取程序选择单元选择一个从对应于所述高速缓冲状态保持单元的处理器中读取所述数据和从所述主存储器读取所述数据的过程作为所述数据取程序。
8、根据权利要求1的存储器系统控制设备,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于所述高速缓冲状态保持单元的任何一个条目中,并且当包括所述数据的条目的利用状态为“共享”时,所述数据取程序选择单元选择一个从对应于所述高速缓冲状态保持单元的处理器中读取所述数据的过程作为所述数据取程序。
9、根据权利要求1的存储器系统控制设备,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于所述高速缓冲状态保持单元的任何一个条目中,并且当包括所述数据的条目的利用状态为“无效”时,所述数据取程序选择单元选择一个仅从所述主存储器读取所述数据的过程作为所述数据取程序。
10、根据权利要求1的存储器系统控制设备,其中当由所述多个处理器中的一个处理器请求的数据的地址信息不存在于所述高速缓冲状态保持单元的任何一个条目中时,所述数据取程序选择单元选择一个仅从所述主存储器读取所述数据的过程作为所述数据取程序。
11、一种存储器系统控制方法,用于控制高速缓冲存储器与主存储器之间的一致性,所述高速缓冲存储器被提供用于多处理器系统的多个处理器中的每一个处理器,所述存储器系统控制方法包括:
高速缓冲状态保持步骤,存储在所述高速缓冲存储器的每一条目中所存储的数据的地址信息,并将每一条目的利用状态保持为“强修正”、“弱修正”、“共享”和“无效”中的任何一种;
数据取程序选择步骤,一旦从所述多个处理器中的一个处理器接收了数据读请求,则基于在高速缓冲状态保持步骤保持的地址信息和利用状态,选择至少一个数据取程序;
读数据传送步骤,从所述数据取程序选择步骤所选择的取程序所读取的数据中选择最新数据,并将所选择的最新数据传送到发出所述数据读请求的处理器;和
高速缓冲状态更新步骤,当将数据的地址信息登记在与发出数据读请求的处理器对应的高速缓冲存储状态保持步骤中的条目之一中时,基于数据读请求的类型来更新所述条目的利用状态。
12、根据权利要求11的存储器系统控制方法,其中,当从所述多个处理器中的一个处理器接收了具有写入前提的数据读请求时,所述高速缓冲状态更新步骤包括将数据的利用状态在高速缓冲状态保持步骤中登记为“强修正”。
13、根据权利要求11的存储器系统控制方法,其中,当从所述多个处理器中的一个处理器接收了具有写入可能性的数据读请求时,所述高速缓冲状态更新步骤包括将数据的利用状态在高速缓冲状态保持步骤中登记为“弱修正”。
14、根据权利要求11的存储器系统控制方法,其中,当从所述多个处理器中的一个处理器接收了具有将利用状态改变为“共享”的前提的数据读请求时,所述高速缓冲状态更新步骤包括将数据的利用状态在高速缓冲存储状态保持步骤中登记为“弱修正”。
15、根据权利要求11的存储器系统控制方法,其中,当从所述多个处理器中的一个处理器接收了具有将利用状态改变为“无效”的前提的数据读请求时,所述高速缓冲状态更新步骤包括将数据的利用状态在高速缓冲存储状态保持步骤中登记为“弱修正”。
16、根据权利要求11的存储器系统控制方法,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于所述高速缓冲存储状态保持步骤中的任何一个条目中,且当包括所述数据的条目的利用状态为“强修正”时,所述数据取程序选择步骤包括选择一个仅从对应于高速缓冲存储状态保持步骤的处理器中读取所述数据的过程作为所述数据取程序。
17、根据权利要求11的存储器系统控制方法,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于高速缓冲存储状态保持步骤中的任何一个条目中,且当包括该数据的条目的利用状态为“弱修正”时,所述数据取程序选择步骤包括选择一个从对应于高速缓冲存储状态保持步骤的处理器中读取所述数据和从主存储器中读取所述数据的过程作为所述数据取程序。
18、根据权利要求11的存储器系统控制方法,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于高速缓冲存储状态保持步骤中的任何一个条目中,且当包括所述数据的条目的利用状态为“共享”时,所述数据取程序选择步骤包括选择一个从对应于高速缓冲存储状态保持步骤的处理器中读取所述数据的过程作为所述数据取程序。
19、根据权利要求11的存储器系统控制方法,其中当由所述多个处理器中的一个处理器请求的数据的地址信息存在于高速缓冲存储状态保持步骤中的任何一个条目中,且当包括所述数据的条目的利用状态为“无效”时,所述数据取程序选择步骤包括选择一个仅从所述主存储器中读取所述数据的过程作为所述数据取程序。
20、根据权利要求11的存储器系统控制方法,其中当由所述多个处理器中的一个处理器请求的数据的地址信息不存在于高速缓冲存储状态保持步骤中的任何一个条目中时,所述数据取程序选择步骤包括选择一个仅从所述主存储器中读取所述数据的过程作为所述数据取程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004229082A JP4673585B2 (ja) | 2004-08-05 | 2004-08-05 | メモリシステム制御装置およびメモリシステム制御方法 |
JP2004229082 | 2004-08-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1731372A true CN1731372A (zh) | 2006-02-08 |
CN100338587C CN100338587C (zh) | 2007-09-19 |
Family
ID=34930886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100821781A Expired - Fee Related CN100338587C (zh) | 2004-08-05 | 2004-12-31 | 用于控制存储器系统的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7783840B2 (zh) |
EP (1) | EP1624377B1 (zh) |
JP (1) | JP4673585B2 (zh) |
KR (1) | KR100691695B1 (zh) |
CN (1) | CN100338587C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334735B (zh) * | 2007-06-27 | 2012-03-21 | 国际商业机器公司 | 多处理器计算系统中单个处理器的代码更新的方法和系统 |
CN102722467A (zh) * | 2012-05-31 | 2012-10-10 | 深圳市江波龙电子有限公司 | 一种多处理器设备及其程序运行方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099583A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | システムコントローラおよびキャッシュ制御方法 |
JP5168800B2 (ja) * | 2006-03-08 | 2013-03-27 | 富士通株式会社 | マルチプロセッサシステム |
WO2008114443A1 (ja) | 2007-03-20 | 2008-09-25 | Fujitsu Limited | マルチプロセッサシステム及びその制御方法 |
US8127192B2 (en) * | 2007-07-18 | 2012-02-28 | International Business Machines Corporation | Predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification/validation in interrupt mode |
US7747908B2 (en) * | 2007-07-18 | 2010-06-29 | International Business Machines Corporation | System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation |
US7739570B2 (en) * | 2007-07-18 | 2010-06-15 | International Business Machines Corporation | System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation |
US7661023B2 (en) * | 2007-07-18 | 2010-02-09 | International Business Machines Corporation | System and method for verification of cache snoop logic and coherency between instruction & data caches for processor design verification and validation |
US7689886B2 (en) * | 2007-07-18 | 2010-03-30 | International Business Machines Corporation | System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation |
US7647539B2 (en) * | 2007-07-18 | 2010-01-12 | International Business Machines Corporation | System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation |
JP2009042992A (ja) * | 2007-08-08 | 2009-02-26 | Renesas Technology Corp | バス制御装置 |
US8185694B2 (en) * | 2008-07-25 | 2012-05-22 | International Business Machines Corporation | Testing real page number bits in a cache directory |
KR101639672B1 (ko) * | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
KR101944329B1 (ko) | 2012-04-17 | 2019-04-18 | 삼성전자주식회사 | 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법 |
US9619382B2 (en) * | 2013-08-19 | 2017-04-11 | Intel Corporation | Systems and methods for read request bypassing a last level cache that interfaces with an external fabric |
US9665468B2 (en) | 2013-08-19 | 2017-05-30 | Intel Corporation | Systems and methods for invasive debug of a processor without processor execution of instructions |
US9632947B2 (en) | 2013-08-19 | 2017-04-25 | Intel Corporation | Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early |
US9361227B2 (en) | 2013-08-30 | 2016-06-07 | Soft Machines, Inc. | Systems and methods for faster read after write forwarding using a virtual address |
FR3021773B1 (fr) * | 2014-05-27 | 2017-10-06 | Bull Sas | Interrogation speculative en memoire centrale d'un systeme multiprocesseur |
JP6674085B2 (ja) * | 2015-08-12 | 2020-04-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537574A (en) * | 1990-12-14 | 1996-07-16 | International Business Machines Corporation | Sysplex shared data coherency method |
JPH06208507A (ja) * | 1993-01-11 | 1994-07-26 | Casio Comput Co Ltd | キャッシュメモリシステム |
JPH08185359A (ja) * | 1994-10-31 | 1996-07-16 | Toshiba Corp | メモリサブシステム |
US5692149A (en) * | 1995-03-16 | 1997-11-25 | Samsung Electronics Co., Ltd. | Block replacement method in cache only memory architecture multiprocessor |
EP0735487B1 (en) * | 1995-03-31 | 2001-10-31 | Sun Microsystems, Inc. | A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system |
US5684977A (en) | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
KR19980032776A (ko) | 1996-10-16 | 1998-07-25 | 가나이 츠토무 | 데이타 프로세서 및 데이타 처리시스템 |
KR100433511B1 (ko) * | 1996-12-30 | 2005-05-09 | 삼성전자주식회사 | 캐시일관성유지를위한스누핑장치 |
JPH11212868A (ja) * | 1998-01-28 | 1999-08-06 | Oki Electric Ind Co Ltd | スヌープキャッシュメモリ制御システム |
JP2000132531A (ja) * | 1998-10-23 | 2000-05-12 | Pfu Ltd | マルチプロセッサ |
US6526480B1 (en) * | 1998-12-10 | 2003-02-25 | Fujitsu Limited | Cache apparatus and control method allowing speculative processing of data |
US6918009B1 (en) * | 1998-12-18 | 2005-07-12 | Fujitsu Limited | Cache device and control method for controlling cache memories in a multiprocessor system |
US6857051B2 (en) * | 1998-12-23 | 2005-02-15 | Intel Corporation | Method and apparatus for maintaining cache coherence in a computer system |
JP2002024198A (ja) * | 2000-07-06 | 2002-01-25 | Fujitsu Ltd | 分散共有メモリ型並列計算機 |
US6721856B1 (en) * | 2000-10-26 | 2004-04-13 | International Business Machines Corporation | Enhanced cache management mechanism via an intelligent system bus monitor |
US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US6763435B2 (en) * | 2001-10-16 | 2004-07-13 | International Buisness Machines Corporation | Super-coherent multiprocessor system bus protocols |
US7073004B2 (en) * | 2002-12-12 | 2006-07-04 | International Business Machines Corporation | Method and data processing system for microprocessor communication in a cluster-based multi-processor network |
-
2004
- 2004-08-05 JP JP2004229082A patent/JP4673585B2/ja not_active Expired - Fee Related
- 2004-12-01 US US10/999,972 patent/US7783840B2/en not_active Expired - Fee Related
- 2004-12-06 EP EP04257577.9A patent/EP1624377B1/en not_active Expired - Fee Related
- 2004-12-14 KR KR1020040105539A patent/KR100691695B1/ko active IP Right Grant
- 2004-12-31 CN CNB2004100821781A patent/CN100338587C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334735B (zh) * | 2007-06-27 | 2012-03-21 | 国际商业机器公司 | 多处理器计算系统中单个处理器的代码更新的方法和系统 |
CN102722467A (zh) * | 2012-05-31 | 2012-10-10 | 深圳市江波龙电子有限公司 | 一种多处理器设备及其程序运行方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1624377B1 (en) | 2013-10-23 |
EP1624377A2 (en) | 2006-02-08 |
US7783840B2 (en) | 2010-08-24 |
KR100691695B1 (ko) | 2007-03-09 |
CN100338587C (zh) | 2007-09-19 |
JP4673585B2 (ja) | 2011-04-20 |
JP2006048406A (ja) | 2006-02-16 |
EP1624377A3 (en) | 2008-06-04 |
US20060031641A1 (en) | 2006-02-09 |
KR20060013330A (ko) | 2006-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100338587C (zh) | 用于控制存储器系统的方法和设备 | |
CN1142503C (zh) | 多处理机数据处理系统中同级到同级的超高速缓存移动 | |
CN1277216C (zh) | 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 | |
CN1116643C (zh) | 具有共享干预支持的非均匀存储器访问数据处理系统及方法 | |
KR101497516B1 (ko) | 디렉토리 기반의 멀티코어 아키텍처 상에서 캐시 상태 전송의 가속화 | |
CN1841342A (zh) | 数据处理系统和方法 | |
CN1261884C (zh) | 能够管理虚拟存储器处理方案的数据处理系统 | |
CN101042680A (zh) | 更新无效一致状态的方法、数据处理系统和高速缓存系统 | |
CN104106061B (zh) | 多处理器数据处理系统以及其中的方法、高速缓存存储器和处理单元 | |
CN1855070A (zh) | 用于减小高速缓存架构中的延迟和窥探代价的方法和装置 | |
CN1261886C (zh) | 能够利用虚拟存储器处理方案的数据处理系统 | |
CN87105300A (zh) | 高速缓冲存储器的目录和控制装置 | |
US20060230237A1 (en) | Method and system for maintaining cache coherence of distributed shared memory system | |
CN1991795A (zh) | 用于信息处理的系统和方法 | |
CN1277226C (zh) | 分布式共享内存系统数据维护方法 | |
CN1263311A (zh) | 混合huma/s-coma系统及方法 | |
CN1685319A (zh) | 具有集成目录与处理器高速缓存的计算机系统 | |
CN1804816A (zh) | 用于程序员控制的超高速缓冲存储器线回收策略的方法 | |
CN101063957A (zh) | 管理锁定的高速缓冲存储器中的组替换的系统和方法 | |
CN1509436A (zh) | 以推测方式使高速缓存中的缓存行失效的方法及系统 | |
CN1866222A (zh) | 用于初始化存储器块的处理器、数据处理系统和方法 | |
CN101055545A (zh) | 数据处理系统中初始化存储块的方法、处理器、数据处理系统 | |
CN1869957A (zh) | 数据处理系统中的数据处理方法和装置 | |
WO2012128769A1 (en) | Dynamically determining profitability of direct fetching in a multicore architecture | |
CN1607510A (zh) | 改善高速缓存性能的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070919 Termination date: 20211231 |