CN1549973A - 用于使用分布式高速缓存器的方法和设备 - Google Patents

用于使用分布式高速缓存器的方法和设备 Download PDF

Info

Publication number
CN1549973A
CN1549973A CNA028168496A CN02816849A CN1549973A CN 1549973 A CN1549973 A CN 1549973A CN A028168496 A CNA028168496 A CN A028168496A CN 02816849 A CN02816849 A CN 02816849A CN 1549973 A CN1549973 A CN 1549973A
Authority
CN
China
Prior art keywords
cache
consistance
equipment
caches
subelement
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
Application number
CNA028168496A
Other languages
English (en)
Other versions
CN100380346C (zh
Inventor
K・克雷塔
K·克雷塔
D·贝尔
R·乔治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1549973A publication Critical patent/CN1549973A/zh
Application granted granted Critical
Publication of CN100380346C publication Critical patent/CN100380346C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种使用分布式高速缓存器的系统和方法。更具体来讲,本发明涉及一种可扩充的方法,该方法用于通过实现分布式高速缓存器来改善高速缓存器的带宽和等待时间性能。分布式高速缓存器消除了单一的单片式高速缓存器系统在结构上和实现方式上的不利影响。

Description

用于使用分布式高速缓存器的方法和设备
发明背景
本发明涉及一种方法和设备,用于使用分布式高速缓存器(例如,处于超大规模集成电路(VLSI)设备中)。更具体来讲,本发明涉及一种可扩充的方法,该方法用于通过实现分布式高速缓存器来改善高速缓存器的带宽和等待时间性能。
正如现有技术中所公知的,计算机系统中的系统高速缓存器用于增强现代计算机的系统性能。例如,高速缓存器可以通过保持最近存取的存储单元、以备它们被再次需要,在处理器和相对慢速的系统存储器之间维护数据。高速缓存器的存在使得处理器可以利用快速存取的高速缓存器中的数据,来连续地执行操作。
从结构上来讲,系统高速缓存器被设计为“单片式”单元。为了向处理器核心给出来自多条流水线的同步读写访问,可以为单片式高速缓存器设备添加多个端口。然而,使用具有几个端口的单片式高速缓存器设备(例如,以两端口的单片式高速缓存器的方式),存在几种在结构以及实现方式方面的不利影响。对于两端口单片式高速缓存器设备的当前解决方案可能包括,对于来自两个端口的请求、为对这些请求进行的服务进行复用,或者提供两组地址、命令和数据端口。由于必须在多个端口之间共享高速缓存器资源,前一方案、也就是进行复用,限制了高速缓存性能。对来自两个端口的请求进行服务,可能会使有效的事务带宽减半,并且使最不利情况下的事务服务等待时间加倍。后一方案、也就是为每一客户设备提供独立的读/写端口,存在不可扩充的固有问题。在需要时增加额外的端口组,例如提供五组读和写端口,可能要求五个读端口和五个写端口。在单片式高速缓存器设备上,五端口高速缓存器可能显著地增加小片尺寸,而使得实施变得不切实际。此外,为了提供单一端口高速缓存器设备的有效带宽,新的高速缓存器可能需要支持五倍于原来的高速缓存器设备的带宽。当前单片式高速缓存器设备对于多端口来讲并不是最佳化的,也不是可获得的最高效的实现方式。
正如现有技术中所公知的,已经在多处理器计算机系统设计中使用了多高速缓存器系统。实施了一致性协议,用于确保每一处理器仅仅从高速缓存器中检索数据的最新版本。换言之,高速缓存器一致性是多个高速缓存器中的数据的同步化,以致通过任一高速缓存器读一个存储单元,都将返回经由任何其他高速缓存器写入该存储单元的最新数据。可以为高速缓存数据增添MESI(修改-排他-共享-无效)一致性协议数据,以便对在各个高速缓存器内的、同一数据的多个拷贝进行仲裁和同步化。因而,处理器通常被称为“可高速缓存的”设备。
然而,输入/输出部件(I/O部件)通常是不可高速缓存的设备,例如与外设部件互连总线(PCI规范,2.1版本)耦合的那些输入/输出部件。也就是说,它们通常没有实施由处理器使用的相同高速缓存器一致性协议。通常,I/O部件经由直接存储器存取(DMA)操作,从存储器或者可高速缓存的设备中检索数据。可以将I/O设备作为各个I/O桥接部件之间的连接点来提供,I/O部件连接到该I/O设备,并最终连接到处理器。
输入/输出(I/O)设备还可以用作高速缓存I/O设备。也就是说,该I/O设备包括用于数据的、单一的单片式高速缓存资源。因此,由于一个I/O设备通常与几个客户端口耦合,所以单片式I/O高速缓存器设备将遭受与先前所论及的那些相同的、结构和性能方面的不利影响。当前I/O高速缓存器设备设计不是用于高性能系统的有效实现方式。
鉴于上述情况,需要一种方法和设备,用于使用VLSI设备中的分布式高速缓存器。
附图概述
图1是采用本发明的一个实施例的处理器高速缓存器系统的一部分的方框图。
图2是示出采用本发明的一个实施例的输入/输出高速缓存器设备的方框图。
图3是示出采用本发明的一个实施例的入站一致性读事务的程序框图。
图4是示出采用本发明的一个实施例的入站一致性写事务的程序框图。
附图的详细说明
参见图1,示出了采用本发明的一个实施例的处理器高速缓存器系统的方框图。在该实施例中,CPU125是从高速缓存器-一致性CPU设备100请求数据的处理器。所述高速缓存器-一致性CPU设备100通过对分布式高速缓存器110、115和120内的数据进行仲裁和同步化,实现一致性。CPU端口部件130、135和140例如可以包括系统RAM。然而,可以将用于CPU端口的任何适当的部件用作端口部件130、135和140。在该范例中,高速缓存器-一致性CPU设备100是一芯片组的一部分,该芯片组提供PCI总线,用于与I/O部件(下文中论及)接口以及与系统存储器和所述CPU接口。
所述高速缓存器-一致性CPU设备100包括一致性引擎105,以及一个或多个读和写高速缓存器110、115和120。在高速缓存器-一致性CPU设备100的这一实施例中,一致性引擎105包含一个目录,用于对分布式高速缓存器110、115和120内的所有数据进行索引。所述一致性引擎105可以例如使用修改-排他-共享-无效(MESI)一致性协议,利用行状态MESI标记符对数据进行标记:“M”状态(修改),“E”状态(排他),“S”状态(共享),或者“I”状态(无效)。来自任一CPU端口部件130、135或者140的高速缓存器的每一新请求都被对照一致性引擎105中的目录加以校验。如果请求不影响在任何其他高速缓存器中查找到的任何数据,则处理该事务。使用MESI标记符使得一致性引擎105可以在对同一数据进行读取和写入的诸高速缓存器之间进行快速仲裁,同时保持所有高速缓存器之间的所有数据被同步化和追踪。
高速缓存器-一致性CPU设备100并没有采用单一的单片式高速缓存器,而是从物理上将高速缓存资源划分为更小的、更易实现的部分。高速缓存器110、115和120被分布到该设备上的所有端口,以致每一高速缓存器与一个端口部件相关联。依照本发明的一个实施例,高速缓存器110物理上位于与被服务的端口部件130邻近的设备上。类似地,高速缓存器115与端口部件135位置接近,高速缓存器120与端口部件140位置接近,从而减少了事务数据请求的等待时间。该方法将用于“高速缓存器命中”的等待时间最小化,并且提高了性能。高速缓存器命中是指在无需使用主(或者另一)存储器的情况下、可以被该高速缓存器满足的、对于从存储器进行读取的请求。该方案对于通过端口部件130、135和140预取的数据格外有用。
此外,所述分布式高速缓存器结构改善了总带宽,使得每一端口部件130、135和140能够为每一读/写高速缓存器110、115和120使用整个事务带宽。依据本发明的这一实施例的分布式高速缓存器还在可扩充设计方面作出了改进。在使用单片式高速缓存器时,端口数目的增加可能导致CPU设备在设计方面几何上更加复杂(例如四个端口的CPU设备使用单片式高速缓存器将比一个端口的CPU设备复杂十六倍)。利用本发明的这一实施例,通过为增加的端口增加一个另外的高速缓存器、并且添加与一致性引擎的适当联系,另一端口的增加将被更容易地设计到CPU设备中。因此,分布式高速缓存器本质上是更可扩充的。
参见图2,示出了采用本发明的一个实施例的输入/输出高速缓存器设备的方框图。在该实施例中,高速缓存器-一致性I/O设备200被连接到一致性主机,在这里一致性主机是前端总线225。所述高速缓存器-一致性I/O设备200通过对分布式高速缓存器210、215和220内的数据进行仲裁和同步化,实现一致性。用于改善当前系统的进一步的实现方式包括对现有的事务缓冲器进行调整,以便形成高速缓存器210、215和220。缓冲器通常存在于用于外部系统和输入/输出接口的内部协议引擎中。这些缓冲器用于将外部事务请求分段和重新组合为更适于内部协议逻辑的尺寸。通过为这些之前已有的缓冲器补充一致性逻辑和内容可寻址存储器、用于追踪和维护一致性信息,这些缓冲器可以被有效地用作在分布式高速缓存器系统内实现的MESI一致性高速缓存器210、215和220。I/O部件230、235和240例如可以包括磁盘驱动器。然而,可以将用于I/O端口的任何适当的部件或设备用作I/O部件230、235和240。
所述高速缓存器-一致性I/O设备200包括一致性引擎205,以及一个或多个读和写高速缓存器210、215和220。在高速缓存器-一致性I/O设备200的这一实施例中,一致性引擎205包括一个目录,用于对分布式高速缓存器210、215和220内的所有数据进行索引。所述一致性引擎205例如可以使用MESI一致性协议,利用行状态MESI标记符对数据进行标记:M-状态,E-状态,S-状态,或者I-状态。来自任一所述I/O部件230、235或者240的高速缓存器的每一新请求都被对照一致性引擎205中的目录加以校验。如果该请求没有表示出与在任何其他高速缓存器中查找到的任何数据的一致性冲突,则处理该事务。使用MESI标记符使得一致性引擎205可以在对同一数据进行读取和写入的诸高速缓存器之间进行快速仲裁,同时保持所有高速缓存器之间的所有数据被同步化和追踪。
高速缓存器-一致性I/O设备200没有采用单一的单片式高速缓存器,而是从物理上将高速缓存资源划分为更小的、更易实现的部分。高速缓存器210、215和220被分布到该设备上的所有端口,以致每一高速缓存器与一个I/O部件相关联。依照本发明的一个实施例,高速缓存器210物理上位于与被服务的I/O部件230邻近的设备上。类似地,高速缓存器215与I/O部件235位置接近,高速缓存器220与I/O部件240位置接近,从而减少了事务数据请求的等待时间。该方法将用于“高速缓存器命中”的等待时间最小化,并且提高了性能。这一方案对于由I/O部件230、235和240预取的数据特别有用。
此外,所述分布式高速缓存器结构改善了总带宽,使得每一端口部件230、235和240能够为每一读/写高速缓存器210、215和220使用整个事务带宽。
通过使用高速缓存器-一致性I/O设备200,至少以两种方式改善了I/O设备中的有效事务带宽。高速缓存器-一致性I/O设备200可以积极地预取数据。如果高速缓存器-一致性I/O设备200推测性地对随后将被处理器系统请求或者修改的数据的所有权进行请求,可以由处理器对高速缓存器210、215和220进行“探听”(即监视),随后处理器将返回数据,该数据具有被保留的正确一致性状态。因此,高速缓存器-一致性I/O设备200可以选择性地清除竞争的一致性数据,而不是对于其中在预取缓冲器之一中修改了数据的非一致性系统中、将该非一致性系统中的预取数据全部删除。因此,高速缓存器命中率被增加了,从而提高了性能。
高速缓存器-一致性I/O设备200还使得可以将一致性所有权请求流水线化,所述一致性所有权请求是对于一系列被指定给一致性存储器的入站写事务的一致性所有权请求。这是可行的,因为高速缓存器-一致性I/O设备200提供了内部高速缓存器,该内部高速缓存器相对于系统存储器被保持一致。可以发出写事务,而无需在它们返回的时候阻塞该所有权请求。现有的I/O设备必须阻塞每一入站写事务,在随后的写事务可能被发出之前,等待系统存储器控制器完成该事务。将I/O写流水线化显著地改善了对于一致性存储空间的入站写事务的总带宽。
从上可知,所述分布式高速缓存器足以增强整体的高速缓存器系统性能。所述分布式高速缓存器增强了具有多个端口高速缓存器系统的结构和实现方式。特别是在I/O高速缓存器系统中,分布式高速缓存器节省了I/O设备中的内部缓冲器资源,从而改善了设备尺寸,同时改善了I/O设备对于存储器的等待时间和带宽。
参见图3,示出了采用本发明的一个实施例的入站一致性读事务的程序框图。入站一致性读事务由端口部件130、135或者140发起(或者类似地,由I/O部件230、235或者240发起)。因此,在框300中,发出了一个读事务。控制被传递到判定框305,在其中,在分布式高速缓存器110、115或者120内(或者类似地,在高速缓存器210、215或者220内)对所述读事务的地址进行校验。如果校验结果为高速缓存器命中,则在框310中,从高速缓存器中检索该数据。然后控制被传递到框315,在其中,可以推测性地使用该高速缓存器中的预取数据,以便增加有效的读带宽和减少读事务等待时间。如果在判定框305中、没有在高速缓存器中查找到所述读事务数据,结果为未命中,则将一个高速缓存器行分配给该读事务请求。然后控制传递到框325,在其中,该读事务被转送到一致性主机,以便检索所述被请求的数据。在请求这一数据的时候,可以使用框315中的推测性预取机制,以便通过在当前读请求之前推测性地读取一个或多个高速缓存器行、以及通过在分布式高速缓存器中维持该推测性读出数据来提高高速缓存器命中率。
参见图4,示出了采用本发明一个实施例的一个或多个入站一致性写事务的程序框图。入站一致性写事务由端口I/O部件130、135或者140发起(或者类似地,由I/O部件230、235或者240发起)。因此,在框400中,发出了一个写事务。控制被传递到框405,在其中,在分布式高速缓存器110、115或者120内(或者类似地,在高速缓存器210、215或者220内)对所述写事务的地址进行校验。
在判定框410中,作出对于校验结果是“高速缓存器命中”还是“高速缓存器未命中”的判定。如果高速缓存器一致性设备不具有高速缓存器行的排他“E”或者修改“M”所有权,则校验结果为高速缓存器未命中。然后控制传递到框415,在其中,一致性引擎的高速缓存目录将“对所有权的请求”转送到外部一致性设备(例如存储器),请求该目标高速缓存器行的排他“E”所有权。当将排他所有权授予所述高速缓存器一致性设备的时候,该高速缓存目录将该行标记为“M”。在此,在判定框420中,高速缓存目录可以或者在框425中,将该写事务数据转送到前端总线、以便在一致性存储空间中写数据,或者在框430中,在分布式高速缓存器内、以修改“M”状态,本地维护该数据。在框425中,如果该高速缓存目录在一旦接收到该行的排他“E”所有权时、始终将写数据转送到前端总线,则该高速缓存器一致性设备是作为“写直通型”高速缓存器来工作的。在框430中,如果该高速缓存目录在分布式高速缓存器内、以修改“M”状态、本地维护该数据,则该高速缓存器一致性设备是作为“回写型”高速缓存器来工作的。在每一实例中,或者是在框425中,将写事务数据转送到前端总线、以便在一致性存储空间中写数据,或者是在框430中,在分布式高速缓存器内、以修改“M”状态、本地维护该数据,控制在之后都被传递到框435,在其中,使用了在分布式高速缓存器内的流水线化能力。
在框435中,全局系统一致性的流水线化能力可以被用来将一系列入站写事务流水线化,从而改善了对于存储器的入站写的总带宽。由于如果按照与从端口部件130、135或者140(或者类似地从I/O部件230、235或者240)接收所述写事务数据时相同的顺序、将该写事务数据晋级为修改“M”状态,将维持全局系统一致性,所以可以将对于多个写请求的流的处理流水线化。在这一模式中,随着从端口部件130、135或者140(或者类似地,从I/O部件230、235或者240)接收到每一写请求,所述高速缓存目录将对于所有权的请求转送到外部一致性设备,用于请求目标高速缓存器行的排他“E”所有权。当排他所有权被授予高速缓存器一致性设备的时候,一旦所有的先前的写也已经被标记为修改“M”,则高速缓存目录将该行标记为修改“M”。因此,来自端口部件130、135或者140(或者类似地,来自I/O部件230、235或者240)的一系列入站写将导致相应的一系列所有权请求,同时为了全局系统一致性,这些写的流被按照正确的顺序晋级为修改“M”状态。
如果在判定框410中、作出校验结果为“高速缓存器命中”的判定,则随后控制传递到判定框440。如果高速缓存器一致性设备已经具有对于在其他分布式高速缓存器之一中的高速缓存器行的排他“E”或者修改“M”所有权,则校验结果为高速缓存器命中。在此,在判定框440中,所述高速缓存目录或者作为写直通型高速缓存器,将控制传递到框445,或者作为回写型高速缓存器,将控制传递到框455来管理一致性冲突。如果高速缓存目录始终阻塞新的写事务,直到在接收到对于同一行的后继写入时、前一批的写数据才可以被转送到前端总线为止,那么所述高速缓存器一致性设备是作为写直通型高速缓存器来工作。如果该高速缓存目录始终在分布式高速缓存器中、以修改″M″状态、将来自两次写中的数据都在本地合并,则该高速缓存器一致性设备是作为“回写型”高速缓存器来工作的。在框445中,作为写直通型高速缓存器,新的写事务被阻塞,直到在框450中、旧的(“前一批的”)写事务数据可以被转送到前端总线、以便在一致性存储空间中写数据为止。在已经转送完前一批的写事务之后,然后在框425中,可以将其他写事务转送到前端总线,以便在一致性存储空间中写数据。然后控制传递到框435,在其中,使用了分布式高速缓存器的流水线化能力。在框455中,作为回写型高速缓存器,来自两个写的数据在分布式高速缓存器中、以修改“M”状态被本地地合并,并且在框430中,以修改“M”状态在内部保存。同样,控制传递到框435,在其中,如上所述,可以将多个入站写事务流水线化。
尽管在此处已经具体图示和说明了单一实施例,但是可以理解的是,本发明的改进和变型被上述教导覆盖了,并且属于所附权利要求书中的范围,而没有背离本发明的精神和指定范围。

Claims (17)

1.一种高速缓存器一致性设备,包括:
多个客户端口,均与多个端口部件之一相耦合;
多个子单元高速缓存器,均与所述多个客户端口之一相耦合,并且均被分配给所述多个端口部件之一;以及
一致性引擎,与所述多个子单元高速缓存器相耦合。
2.如权利要求1所述的设备,其中,所述多个端口部件包括处理器端口部件。
3.如权利要求1所述的设备,其中,所述多个端口部件包括输入/输出端口部件。
4.如权利要求3所述的设备,其中,所述多个子单元高速缓存器包括使用一致性逻辑协议的事务缓冲器。
5.如权利要求4所述的设备,其中,所述一致性逻辑协议包括修改-排他-共享-无效(MESI)高速缓存器一致性协议。
6.一种处理系统,包括:
处理器;
多个端口部件;以及
高速缓存器一致性设备,与所述处理器相耦合,并且包括多个客户端口,所述多个客户端口均与所述多个端口部件之一相耦合,所述高速缓存器一致性设备进一步包括多个高速缓存器,所述多个高速缓存器均与所述多个客户端口之一相耦合、并且均被分配给所述多个端口部件之一,所述高速缓存器一致性设备还包括与所述多个高速缓存器相耦合的一致性引擎。
7.如权利要求6所述的处理系统,其中,所述多个端口部件包括处理器端口部件。
8.如权利要求6所述的处理系统,其中,所述多个端口部件包括输入/输出端口部件。
9.在包括一致性引擎和多个客户端口的高速缓存器一致性设备中,一种用于处理事务的方法,包括:
在所述多个客户端口之一接收事务请求,所述事务请求包括地址;以及
确定所述地址是否存在于多个子单元高速缓存器之一中,所述子单元高速缓存器中的每一个被分配给多个客户端口中的所述一个。
10.如权利要求9所述的方法,其中,所述事务请求是一项读事务请求。
11.如权利要求10所述的方法,进一步包括:
将用于所述读事务请求的数据从所述多个子单元高速缓存器中的所述一个传送到所述多个客户端口之一。
12.如权利要求11所述的方法,进一步包括:
在所述读事务请求之前预取一个或多个高速缓存器行;以及
更新所述多个子单元高速缓存器中的一致性状态信息。
13.如权利要求12所述的方法,其中,所述一致性状态信息包括修改-排他-共享-无效(MESI)高速缓存器一致性协议。
14.如权利要求9所述的方法,其中,所述事务请求是一项写事务请求。
15.如权利要求14所述的方法,进一步包括:
为所述多个子单元高速缓存器所述一个中的高速缓存器行修改一致性状态信息;
由所述一致性引擎更新所述多个子单元高速缓存器中的其他子单元高速缓存器中的一致性状态信息;以及
将用于所述写事务请求的数据从所述多个子单元高速缓存器中的所述一个传送到存储器。
16.如权利要求15所述的方法,进一步包括:
按照接收的顺序,对所述写事务请求的一致性状态信息进行修改;以及
将多个写请求流水线化。
17.如权利要求16所述的方法,其中,所述一致性状态信息包括修改-排他-共享-无效(MESI)高速缓存器一致性协议。
CNB028168496A 2001-08-27 2002-08-02 用于使用分布式高速缓存器的方法和设备 Expired - Fee Related CN100380346C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/940,324 2001-08-27
US09/940,324 US20030041215A1 (en) 2001-08-27 2001-08-27 Method and apparatus for the utilization of distributed caches

Publications (2)

Publication Number Publication Date
CN1549973A true CN1549973A (zh) 2004-11-24
CN100380346C CN100380346C (zh) 2008-04-09

Family

ID=25474633

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028168496A Expired - Fee Related CN100380346C (zh) 2001-08-27 2002-08-02 用于使用分布式高速缓存器的方法和设备

Country Status (5)

Country Link
US (1) US20030041215A1 (zh)
EP (1) EP1421499A1 (zh)
KR (1) KR100613817B1 (zh)
CN (1) CN100380346C (zh)
WO (1) WO2003019384A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819420A (zh) * 2012-07-31 2012-12-12 中国人民解放军国防科学技术大学 基于命令取消的高速缓存流水线锁步并发执行方法
CN108829614A (zh) * 2014-12-23 2018-11-16 英特尔公司 缓冲存储器中的推测性读
WO2022109770A1 (en) * 2020-11-24 2022-06-02 Intel Corporation Multi-port memory link expander to share data among hosts

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US6681292B2 (en) * 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
JP2004213470A (ja) * 2003-01-07 2004-07-29 Nec Corp ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
US7277897B2 (en) * 2003-08-01 2007-10-02 Oracle International Corporation Dynamic reassignment of data ownership
US7139772B2 (en) 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
US8234517B2 (en) * 2003-08-01 2012-07-31 Oracle International Corporation Parallel recovery by non-failed nodes
US7120651B2 (en) * 2003-08-01 2006-10-10 Oracle International Corporation Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US20050057079A1 (en) * 2003-09-17 2005-03-17 Tom Lee Multi-functional chair
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US20070150663A1 (en) * 2005-12-27 2007-06-28 Abraham Mendelson Device, system and method of multi-state cache coherence scheme
US8943271B2 (en) * 2008-06-12 2015-01-27 Microsoft Corporation Distributed cache arrangement
US8176256B2 (en) * 2008-06-12 2012-05-08 Microsoft Corporation Cache regions
US8117391B2 (en) * 2008-10-08 2012-02-14 Hitachi, Ltd. Storage system and data management method
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US9652387B2 (en) 2014-01-03 2017-05-16 Red Hat, Inc. Cache system with multiple cache unit states
CN105978744B (zh) * 2016-07-26 2018-10-26 浪潮电子信息产业股份有限公司 一种资源分配方法、装置及系统
WO2022246769A1 (zh) * 2021-05-27 2022-12-01 华为技术有限公司 一种访问数据的方法和装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5193166A (en) * 1989-04-21 1993-03-09 Bell-Northern Research Ltd. Cache-memory architecture comprising a single address tag for each cache memory
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5557769A (en) * 1994-06-17 1996-09-17 Advanced Micro Devices Mechanism and protocol for maintaining cache coherency within an integrated processor
US5613153A (en) * 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5802560A (en) * 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US5813034A (en) * 1996-01-25 1998-09-22 Unisys Corporation Method and circuitry for modifying data words in a multi-level distributed data processing system
JP3139392B2 (ja) * 1996-10-11 2001-02-26 日本電気株式会社 並列処理システム
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6055610A (en) * 1997-08-25 2000-04-25 Hewlett-Packard Company Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations
US6587931B1 (en) * 1997-12-31 2003-07-01 Unisys Corporation Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US6330591B1 (en) * 1998-03-09 2001-12-11 Lsi Logic Corporation High speed serial line transceivers integrated into a cache controller to support coherent memory transactions in a loosely coupled network
US6141344A (en) * 1998-03-19 2000-10-31 3Com Corporation Coherence mechanism for distributed address cache in a network switch
US6560681B1 (en) * 1998-05-08 2003-05-06 Fujitsu Limited Split sparse directory for a distributed shared memory multiprocessor system
US6067611A (en) * 1998-06-30 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US6526481B1 (en) * 1998-12-17 2003-02-25 Massachusetts Institute Of Technology Adaptive cache coherence protocols
US6859861B1 (en) * 1999-01-14 2005-02-22 The United States Of America As Represented By The Secretary Of The Army Space division within computer branch memories
JP3959914B2 (ja) * 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6704842B1 (en) * 2000-04-12 2004-03-09 Hewlett-Packard Development Company, L.P. Multi-processor system with proactive speculative data transfer
US6629213B1 (en) * 2000-05-01 2003-09-30 Hewlett-Packard Development Company, L.P. Apparatus and method using sub-cacheline transactions to improve system performance
US6751710B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Scalable multiprocessor system and cache coherence method
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter
US6493801B2 (en) * 2001-01-26 2002-12-10 Compaq Computer Corporation Adaptive dirty-block purging
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
US6925515B2 (en) * 2001-05-07 2005-08-02 International Business Machines Corporation Producer/consumer locking system for efficient replication of file data
US7546422B2 (en) * 2002-08-28 2009-06-09 Intel Corporation Method and apparatus for the synchronization of distributed caches

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819420A (zh) * 2012-07-31 2012-12-12 中国人民解放军国防科学技术大学 基于命令取消的高速缓存流水线锁步并发执行方法
CN102819420B (zh) * 2012-07-31 2015-05-27 中国人民解放军国防科学技术大学 基于命令取消的高速缓存流水线锁步并发执行方法
CN108829614A (zh) * 2014-12-23 2018-11-16 英特尔公司 缓冲存储器中的推测性读
WO2022109770A1 (en) * 2020-11-24 2022-06-02 Intel Corporation Multi-port memory link expander to share data among hosts

Also Published As

Publication number Publication date
CN100380346C (zh) 2008-04-09
WO2003019384A1 (en) 2003-03-06
EP1421499A1 (en) 2004-05-26
US20030041215A1 (en) 2003-02-27
KR100613817B1 (ko) 2006-08-21
KR20040029110A (ko) 2004-04-03

Similar Documents

Publication Publication Date Title
CN100380346C (zh) 用于使用分布式高速缓存器的方法和设备
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US5303362A (en) Coupled memory multiprocessor computer system including cache coherency management protocols
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US7546422B2 (en) Method and apparatus for the synchronization of distributed caches
KR100545951B1 (ko) 최적화된 입/출력 애플리케이션을 위한 분산된 판독 및기입 캐싱 구현
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
DE69616402T2 (de) Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
US6662277B2 (en) Cache system with groups of lines and with coherency for both single lines and groups of lines
US6973544B2 (en) Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US7493446B2 (en) System and method for completing full updates to entire cache lines stores with address-only bus operations
US6751705B1 (en) Cache line converter
US7194586B2 (en) Method and apparatus for implementing cache state as history of read/write shared data
US5551000A (en) I/O cache with dual tag arrays
US20030126369A1 (en) Cache memory eviction policy for combining write transactions
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US8332592B2 (en) Graphics processor with snoop filter
US5987544A (en) System interface protocol with optional module cache
US6735675B2 (en) Method and apparatus for altering data length to zero to maintain cache coherency
EP0681241A1 (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
KR100841129B1 (ko) 멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치
CN113435153B (zh) 一种gpu缓存子系统互联的数字电路设计方法
JPH10232831A (ja) キャッシュ・タグ維持装置
JP3782178B2 (ja) 情報処理装置
JPH11149409A (ja) メモリコントローラおよびコンピュータシステム

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080409

Termination date: 20100802