CN1474969A - 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 - Google Patents

用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 Download PDF

Info

Publication number
CN1474969A
CN1474969A CNA01819186XA CN01819186A CN1474969A CN 1474969 A CN1474969 A CN 1474969A CN A01819186X A CNA01819186X A CN A01819186XA CN 01819186 A CN01819186 A CN 01819186A CN 1474969 A CN1474969 A CN 1474969A
Authority
CN
China
Prior art keywords
data
request
state
encoding
data division
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
CNA01819186XA
Other languages
English (en)
Other versions
CN1277216C (zh
Inventor
H・阮
H·阮
Q·莫雷尔
S·雅米尔
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 CN1474969A publication Critical patent/CN1474969A/zh
Application granted granted Critical
Publication of CN1277216C publication Critical patent/CN1277216C/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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

公开了一种用于在多处理机系统的多级高速缓冲存储器体系中消除共享高速缓存器存取的歧义的可扩大的方法,该方法用于改善系统性能和降低成本。作为相干共享存储器体系的一个实施例,共享数据存储单元提供保存数据的部分和保存相应状况编码的部分。所述的共享存储器单元可以是例如共享高速缓存器并且数据部分可以是高速缓存线。所述的状况编码相当于特定高速缓存线,所述状态编码提供足够的信息以便在不依靠窥探共享总线或向专用存储器传输反向状态查询的现有方法的情况下消除对共享存储器的数据请求的歧义。如果数据相应的状况编码指示净状态,意味着请求数据的专用副本还没有,那么共享存储控制器从共享存储器传输数据以响应数据请求。另一方面,如果相应的状况编码指示脏状态,意味着在专用存储器的请求数据的副本已经被改变,那么共享存储控制器传输数据请求到专用存储器单元。所述的专用存储器单元,依次提供请求数据的相干副本到共享存储器单元。共享存储控制器然后进展到以专用存储器单元提供的相干副本满足初始的数据请求。

Description

用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
发明的领域
这个发明普遍地涉及多处理机系统中的共享存储器体系,特别是在共享多级存储器体系中使用相干协议中的一个独占的脏的状态以便消除所有权的歧义以及使用用于存储器参考的修改状态。
发明的背景
在具有一个共享多级存储器体系的一个多处理机系统中,该多处理机系统一般地包括一个共享高速缓冲存储器,一个处理器可以请求从共享高速缓冲存储器访问处于由另一个处理器拥有状态的数据。该请求处理机不知道在该共享高速缓冲存储器的该请求数据是否有效或它是否已经由在存储器体系的另一个级的专用存储器的另一个处理器改变。因此,在共享高速缓冲存储器的请求数据直到它的真实的状态能被确定才对请求处理机是有用的。在共享高速缓冲存储器体系的数据的不定的状态被认为是"共享不定性."
一种在多处理机系统中解决共享不定性的方法利用公用总线来窥探处理(M.Papamar cos和J.Patel,"用于具有专用高速缓冲存储器的多处理机的低开销相干性的解决方案",Proc 11th ISCA 1984,348-354页)。为保存相干性在公用总线上的窥探处理给处理器的专用高速缓冲存储器增加了通信量。增加的通信量未必会涉及到各个处理器实际上所需要的数据。因此窥探的一个不利情况是高速缓冲存储器访问的平均延迟被增加,因为数据请求不得不与窥探竞争专用高速缓冲存储器的访问。此外,竞争增加了共享公用总线的处理器数目。因此,由于较低的平均存取次数而造成总体系统性能下降。窥探可以发生另外一个缺点原因是,在接收到窥探结果之前,访问在共享高速缓存器中的请求数据必须等待。
另一种解决共享不定性的方法包括通过由访问共享高速缓存器的处理器共享的互连网络广播查询(通常称为歧义消除查询或反向查询)。当请求数据被发现处于一个不定的状态时,一个查询被广播到其它处理器。此外,因为请求处理器必须等到广播查询被接收的回复,因此增加了延迟。随着共享高速缓冲存储器的处理器数目增加,潜在的广播和回复数也会随之增加,它们会增加网路拥塞。
除了与这些现有方法相关联的延迟增加之外,还有与提供硬件功能相关联的额外代价,以便实现一个特定选择的方法。硬件功能需要附加的电路,并且附加的电路需要增加硅面积。附加的硬件电路和增加的硅面积的不良影响是,增加了关键时序路径的数量和负担,潜在地会导致整个系统性能更进一步下降。
在分布式系统中使用的另一种方法被称为SCI(规模可扩展的计算机连接接口,IEEE标准1596-1992规模可扩展的计算机连接接口,皮斯卡塔韦,NJ)。SCI支持具有分布式通过主存储器维护的双向链表的一次-写-多次-读格式。专用高速缓存器的地址以受控方式插入到列表上并且只有在列表最前面的地址可以改写数据。所述的接口通过转发数据请求到列表的最前的部分来维护相干的存储体系。这种系统的缺点是,在数据可以被改写之前,所述的列表必须被顺序地清除。对于大型分布式系统,与这种方法有关的潜在的延迟导致整个系统性能下降。除了在这种分布式系统中固有的不良网路拥塞的潜在性以外,在分布式系统故障的情况下有疑问的链路维护问题也必须被定位。
附图的简要说明
本发明将通过举例的方式进行说明并且不仅限于相关附图。
图1表示一种具有共享和专用存储器的多处理机系统。
图2表示一个具有共享和专用存储器的多处理机系统中的共享不定性的例子。
图3表示一个用于解决共享不定性的相干协议的实施例的状态迁移图,所述的协议包括独占脏状态和独占净状态。
图4表示一个相干存储体系的实施例,包括专用存储器和共享存储器,支持不进行反向查询而解决共享不定性。
图5表示根据图4所示的相干存储体系,解决共享不定性方法的一个实施例。
图6表示一个使用图4所示的相干存储体系的多处理机系统的一个例子。
图7表示另一个相干存储体系的实施例,包括专用存储器和共享存储器,支持不进行反向查询而解决共享不定性。
图8表示根据图7所示的相干存储体系,解决共享不定性方法的一个实施例。
图9a表示一个相干存储体系的备选方案的实施例,包括专用存储器和共享存储器,支持解决共享不定性。
图9b表示另一个相干存储体系的备选方案的实施例,包括专用存储器和共享存储器,支持解决共享不定性。
图9c表示又一个相干存储体系的备选方案的实施例,包括专用存储器和共享存储器,支持解决共享不定性。
图9d表示在分布式网络系统中的相干存储体系的再一个备选方案的实施例,包括专用存储器和共享存储器,支持解决共享不定性。
图10表示一个计算系统的实施例,该计算系统包括一个包括使用第一相干协议的专用存储器,使用第二相干协议支持解决共享不定性的共享存储器和使用总线窥探以及第三相干协议的共享存储器的相干存储体系。
图11表示另一个计算系统的实施例,该计算系统包括一个包括使用第一相干协议的专用存储器,使用第二相干协议支持解决共享不定性的共享存储器和使用第三相干协议的分布式共享存储器的相干存储体系。
图12表示另一个计算系统的实施例,该计算系统包括一个包括使用分布式相干协议的专用存储器,同样使用分布式相干协议的分布式共享存储器,以及使用第二相干协议在解决共享不定性时支持唯一的本地分离所有权的分布式共享存储器的相干存储体系。
图13a表示多核心处理器的实施例,包括相干存储体系,该相干存储体系包括专用存储器和支持解决共享不定性的共享存储器。
图13b表示另一个计算系统的实施例,包括相干存储体系,该相干存储体系包括专用存储器和支持解决共享不定性的共享存储器。
详细说明
对于多处理机系统中的相干共享存储器体系的实施例来讲,共享数据储存单元提供保存数据的存储部分,被称为数据部分;和保存相应的状态编码的存储部分,被称作状态部分。共享存储器单元可以是,例如,共享高速缓存器或共享文件存储器或共享数据库或其它的共享存储器,并且所述的数据部分可以分别是高速缓存线或文件或记录或数据的其它部分。一般来讲,参考高速缓存线和存储在高速缓存线的数据是同一个概念,或参考文件和存储在文件中的数据是同一个概念;如果,例如,在它们两个之间没有区别,数据部分和在数据部分中存储的数据可以交换地使用。
相当于特定的数据部分的状态编码提供了足够的信息,以便消除对共享存储器的数据请求的歧义,而不必依靠现有的窥探共享总线或向专用存储器传送反向状态查询的方法。
如果相应的状态编码指示为净状态,响应数据请求,共享-存储控制器从共享存储器传输数据,意味着请求数据的专用副本没有被修改。另一方面,如果相应的状态编码指示为独占脏状态,共享-存储控制器传输数据请求到专用存储器单元,意思是专用存储器中请求数据的副本已经被修改。所述的专用存储器单元,接着提供请求数据的相干的副本到共享存储器单元。共享-存储控制器然后通过专用存储器单元提供相干的副本,以满足初始数据请求。另外,可以通过专用存储器单元直接将相干的副本提供给共享存储器单元并且同时满足初始数据请求或者采用其它次序。
如果到共享存储单元的数据请求指示需要修改请求数据,则共享-存储控制器还提供无效传输到以前请求有关数据的副本的专用存储器单元。相应于包括这种数据的部分的状态编码然后被设置为独占脏状态,以便为相干地处理潜在地以后的数据请求提供工具。
本发明的这个以及其它实施例可以根据以下教导实现,并且各种的修改和改变在不脱离本发明的主要的精神和范围的以下的教导的情况下是显而易见的。因此,说明书和附图将被视为说明性的,而不被限定于此,并且本发明仅依据权利要求书进行调整。
图1表示具有共享存储器190的多处理机系统100,它将数据提供到处理器101的专用存储器110,以及将数据提供到处理器102的专用存储器120。多处理机系统100可以位于单一或多印刷电路板上。另外,多处理机系统100可以位于多处理器核心硅芯片上,或位于多芯片组件之中,或分布在通信网络上。
相干存储体系是这样的,在其中处理器请求读取一部分数据,该部分数据以前在体系中的某处被改变过,产生最新的修改的数据部分的副本提供给请求处理机。相干协议用来保证相干存储体系中的这种特性。一种这样的相干协议使用四个状态:M(修改),E(独占的),S(共享)和I(无效)。MESI协议的详细说明可以参见:Lilja,D.J..所著的在大规模的共享-存储器多处理机中的高速缓存相干性:问题与比较,发表在1993年9月美国计算机学会计算观察25(3)期中。
如上所述,在这种系统中共享不定性必须在处理器请求以一种相干的方式被满足之前,通过一些的装置进行歧义消除。
图2表示一个具有共享存储器290和专用存储器210和220的多处理机系统200的共享不定性的例子。例如,如果数据部分219在共享存储器290中状态为M,并且处理器202以前请求过数据部分副本218,在响应处理器201的后续对数据部分219的数据请求时,提供哪个副本(数据部分219或数据部分218)是不定的。如果处理器202没有修改数据部分218,则共享存储器290可以将数据部分219的副本提供到处理器201的专用存储器210。这样将提供对数据部分219的更快速的存取并且有助于改善总体系统性能。但是如果处理器202已经修改了数据部分218,那么对数据部分218的一个更新副本的数据请求应从共享存储器290发送到专用存储器220,使用所述数据部分218的更新副本来满足处理器201的数据请求。数据部分219的改变了的状态是不定的。共享存储器290为了响应数据请求,专用存储器220中数据部分218的状态需要为共享存储器290所知。
相似情况也存在于具有独占状态E的数据。例如,如果数据部分217在共享存储器290中状态为E,并且处理器201以前请求过数据部分副本216,在响应处理器202的后续对数据部分217的数据请求时,提供哪个副本(数据部分217或数据部分216)是不定的。如果处理器201没有修改数据部分216,则共享存储器290可以将数据部分217的副本提供到处理器202的专用存储器220。此外,这样将提供对数据部分217的更快速的存取并且有助于改善总体系统性能。但是如果处理器201已经修改了数据部分216,那么对于请求数据部分216的一个更新副本的数据请求应从共享存储器290发送到专用存储器210,使用所述请求数据部分216的一个更新副本来满足处理器202的数据请求。数据部分217的独占的状态是不定的。共享存储器290为了响应数据请求,专用存储器220中数据部分216的状态需要为共享存储器290所知。
当处理器有权修改数据时,由于M状态和E状态这二者都表示独占的所有权,所以它们都是独占的状态是可以理解的。不同的是M状态表示需要更新中央存储器或主存储器。为了解决共享不定性并且避免反向查询,数据部分的状态在共享存储器被跟踪。需要一种方式表示这些独占的状态需要从外围专用存储器进行数据更新。
图3表示一个用于解决共享不定性的相干协议的实施例的状态迁移图300,所述的协议包括独占脏状态(ED)和独占净状态(EC)。在数据请求之前,可以将数据部分设定为默认状态I,或响应无效请求通过状态M的迁移314,状态ED的迁移324,状态EC的迁移334,或状态S的迁移354,将数据部分恢复到状态I。在对中央存储器或主存储器的数据请求之后,将数据部分提供给具有根据迁移343的状态EC、或具有根据迁移345的状态S的共享存储器。如果数据请求将改变数据部分,可以根据迁移342给它分配状态ED。
在对专用存储器的数据请求之后,如果在不同于请求专用存储器的专用存储器中没有数据部分副本存在,则具有初始状态EC的数据部分将根据迁移333保持一个状态EC。如果在不同于请求专用存储器的专用存储器中存在数据部分副本,可以根据迁移335分配新的状态S,或如果专用存储器的数据请求是对数据部份具有修改权的请求,可以分配新的ED状态。如果专用存储器的数据请求不是对数据部份具有修改权的请求,具有初始状态S的数据部分可以根据迁移355再分配状态S,或如果数据请求是具有修改权的请求,可以根据迁移352分配新的状态ED。可以理解的是向专用存储器的无效请求的传输可能还与迁移352相关。
如果数据部分从专用存储器被写回到共享存储器,初始的状态ED可以根据迁移321分配新的状态M,并且相反地,在具有修改数据部分的权力的数据请求之后,具有初始的状态M的数据部分可以被分配新的状态ED。在具有修改数据部分的权力的数据请求之后,具有初始的状态ED的数据部分可以根据迁移322保持或恢复状态ED。可以理解的是其它相关的活动,比如请求数据部分的更新副本以及传输无效请求可以伴随迁移322并且中间临时状态分配可以用于连接这些相关的活动。最终,在不具有修改数据部分的权力的数据请求之后,具有初始的状态M的数据部分可以根据迁移311保持状态M,直到数据部分已经写回到中央存储器或主存储器。
可以理解的是可以使用三个或更多的比特对五个状态的一组进行数字编码。还可以理解的是脏状态组编码还可以包括修改-脏(MD)状态编码,表示需要从具有修改权的外围专用存储器接收数据更新,而且包括第六个状态的状态组可以方便地被编码而不需要另外的编码比特。还可以理解的是,在有些实施中包括第六状态是很有用的。
在用于消除共享存储器体系中相干性的歧义的相干协议的实施例中披露了一种方法,该方法为共享存储器中的数据部分提供了表示一个或多个独占脏状态,以便跟踪专用存储器中的所有权由此消除共享状态的歧义,减少了反向查询并且改善了总体系统性能。
可以理解的是如果具有独占脏状态的数据部分的专用存储器的所有者识别码也被共享存储器所知,可以更进一步减少反向查询。关于相干存储体系的一个实施例,图4表示被保存在与数据部分对应的存储器的当前部分中的可扩展的当前编码,更进一步减少反向查询并且潜在地避免不必要的无效请求。
共享存储器490通过430存储数据部分411。每个数据部分在存储控制器491具有用于保存状态编码的相应的状态部分和用于保存当前编码的相应的当前部分。当收到来自专用存储器410,专用存储器420、专用存储器440、或专用存储器480的数据请求时,请求数据部分的副本是从中央存储器或主存储器中获取的并且通过共享存储器490存储。一个相应的状态部分保存数据部分的状态编码。一个相应的当前部分保存一个当前编码,专用存储器单元根据所述当前编码请求数据部分的副本。
例如一个相当于数据部分411的状态部分保存状态编码ED并且相应的当前部分保存当前编码0001,表示数据部分411已经被提供给专用存储器410以便响应一种表示需要修改请求数据部分类型的数据请求。同样地,数据部分413具有一个状态编码ED和一个当前编码0100,表示数据部分413已经被提供给专用存储器440以便响应一个需要修改数据的数据请求。  数据部分415具有一个状态编码ED和一个当前编码1000,表示数据部分415已经被提供给专用存储器480以便响应一个需要修改请求数据的数据请求。并且最后,数据部分418具有一个状态编码ED和一个当前编码0010,表示数据部分418已经被提供给专用存储器420以便响应一个表示需要修改请求数据部分类型的数据请求。
一个相当于数据部分412的状态部分保存一个状态编码S并且相应的当前部分保存当前编码0101,表示数据部分412已经被提供给专用存储器410和专用存储器440以便响应一种不表示需要修改请求数据部分类型的数据请求。同样地,数据部分419具有状态编码S和一个当前编码1111,表示数据部分419已经被提供给专用存储器410、专用存储器420、专用存储器440和专用存储器480,以便响应一种不表示需要修改请求数据部分类型的数据请求。
数据部分414具有状态编码M并且相应的当前部分保存一个当前编码1000,表示以前修改的数据部分414已经被提供给专用存储器480,以便响应一个不表示需要修改数据的数据请求。
数据部分416具有一个状态编码I和一个当前编码0000,表示在共享存储器中数据部分416是无效的,而在这样情况下数据或任何有关以前有可能保存副本的专用存储器的信息可能是精确的,也可能是不精确的。如果包含概念被实施,那么包含副本的任何专用存储器将使之无效。另外,存储位置可以相当于已从共享存储器收回的数据部分,随后相同的存储位置被无效,而在这样情况下数据部分的副本可以存在专用存储器中。
数据部分417具有一个状态编码ED和一个当前编码0010,表示数据部分417已经被独占地提供给专用存储器420,以便响应一种不表示需要修改请求数据类型的数据请求。最后,数据部分430具有一个状态编码ED和一个当前编码0001,表示数据部分430已经被独占地提供给专用存储器410,以便响应一种不表示需要修改请求数据的数据请求。应该理解的是,具有的状态编码EC的数据部分的副本可能同时被提供给根级别为特定的共享存储器的本地相干存储体系内的多个专用存储器单元。
如图4所示的相干存储体系提供了不需要用于窥探的共享总线来解决共享不定性的方案。它更进一步提供了减少反向查询和减少不必要的无效请求的传输,由此有助于更高的系统性能。
图5表示根据图4所示的相干存储体系,解决共享不定性方法的一个实施例。在处理块500,处理器i请求读取一个数据部分,数据请求由处理器i的专用存储器接收并且由处理块501处理。在处理块501,如果在专用存储器中的数据部分是有效的,那么控制流程转到处理块510,有将提供请求数据部分给处理器i。否则,由存储控制器491接收数据请求并且由处理块502进行处理。在处理块502,如果请求数据部分的状态是S,那么控制流程转到处理块509,它将给数据部分分配一个当前编码,表示数据部分的共享副本将存在于处理器i的专用存储器中。否则,控制流程转到处理块503。在处理块503,如果请求数据部分的状态是M,那么控制流程转到处理块509,它将给数据部分分配一个当前编码,表示修改的数据部分的副本将存在于处理器i的专用存储器中。否则,控制流程转到处理块504。在处理块504,如果请求的数据部分的状态是EC,那么控制流程转到处理块509,它将给数据部分分配当前编码,表示数据部分的独占副本将存在于处理器i的专用存储器中。每当控制流程转到处理块509时,在共享存储器中的数据部分是一个最新的副本并且可以由共享存储器来提供以响应一个数据请求。
如果数据部分的状态不是EC,那么控制流程转到处理块505。在处理块505,如果请求数据部分的状态是ED,那么控制流程转到处理块506,它从专用存储器请求由相应的当前编码表示的更新数据部分。在收到的更新副本之后,一个新的状态编码例如M,可以再分配给数据部分。另外,数据部分可以写回到中央存储器或主存储器并且一个新的状态EC或S可以再分配给数据部分。控制流程然后转到处理块509,它分配一个当前编码给数据部分,用于表示数据部分的副本将存在于处理器i的专用存储器中。根据所处理的数据请求的类型,处理块509还可以传输无效请求到由相应的当前编码以前表示的专用存储器。当处理在处理块509完成时,控制流程转到处理块510,它通过将请求数据部分提供给处理器i的专用存储器完成处理。
如果处理块505中,请求数据部分的状态不是ED,那么控制流程将转到处理块507。在处理块507,如果请求数据部分的状态是I,那么控制流程转到处理块508,它请求一个来自中央存储器或主存储器的外部数据部分。在从中央存储器或主存储器收到请求数据部分之后,控制流程转到处理块509,它分配一个当前编码给数据部分,表示数据部分的副本将存在于处理器i的专用存储器中。控制流程然后转到处理块510,它将请求数据部分提供给处理器i的专用存储器。
应当理解的是图5所示的实施例是以举例的方式进行说明,本发明并不仅限于此,本领域的普通技术人员可以对所披露的实施例在方案和细节上进行修改。例如,附加的处理块可以被包括或被组合以便传输无效请求,或根据如图3所示的状态迁移图再分配新的状态编码。另外,控制流程从处理块到处理块进展的顺序可以在不脱离所披露的实施例的原则的基础上并在不脱离附加权利要求书的范围内进行修改。上述披露的方法和装置可以应用在多处理机系统中,以便提供一个具有减少反向查询和减少不必要无效请求的相干存储体系。
图6表示一个使用如图4所示的相干存储体系多处理机系统600的例子,包括处理器601和它的专用存储器610、处理器602和它的专用存储器620、处理器604和它的专用存储器640、处理器608和它的专用存储器680、和共享存储器690。例如,数据部分613具有一个状态编码ED和一个当前编码0001,表示修改的数据部分副本612存在于处理器601的专用存储器610中。例如,数据部分625具有一个状态编码EC和一个当前编码0010,表示未修改的数据部分副本624存在于处理器602的专用存储器620中。如果,例如,处理器608请求数据部分697的副本686并且副本686具有相应的状态I,那么数据部分697的请求被传输到共享存储器690。如果数据部分697的状态是ED并且相应的当前编码0100,表示专用存储器640中驻留有一个修改副本646,那么对修改副本646的数据请求被传输到专用存储器640。专用存储器640可以传输请求副本646并且再分配给它一个状态编码S。当修改副本646通过共享存储器被接收时,数据部分697可以被更新并且被再分配一个状态编码M。  然后可以将更新数据部分697提供给专用存储器680并且再分配一个当前编码1100,表示专用存储器640和专用存储器680中驻留有两个副本。当数据部分697通过专用存储器680被接收时,副本686可以被更新并且被再分配一个状态编码M。因此,不用窥探或不必要的反向查询的情况下,数据部分697的共享状态可以被消除歧义。
图7表示支持解决共享不定性的相干存储体系的另一个实施例。应当理解的是,因为共享存储器790将数据部分仅仅提供给两个专用存储器单元,专用存储器710和专用存储器720,有可能不依靠被明确地存储在控制791中的每个数据部分的当前编码消除数据请求的歧义。如果一个特定的专用存储器单元向共享存储器请求一个数据部分,那么一个对应那个数据部分的独占脏状态编码表示其它专用存储器单元包括了请求数据部分的修改副本。
例如对应于数据部分711、数据部分713、数据部分715和数据部分718的状态部分保存状态编码ED,因此如果相应的数据部分受到专用存储器单元之一的请求,那么它们将早已被提供给其它专用存储器单元,以便响应表示需要修改请求数据部分类型的数据请求。数据部分712和数据部分719具有状态编码S,表示那个相应的数据部分已经被提供给专用存储器单元中的一个以便响应不需要修改请求数据部分的数据请求。数据部分714的状态是M,表示以前修改的数据部分714可以被提供以便响应不需要修改请求数据部分的数据请求。数据部分716的状态是I,表示在共享存储器和任何以前保存副本的专用存储器中数据部分716已经无效。数据部分717和数据部分730具有状态编码EC,表示相应的数据部分已经被提供以便响应不需要修改请求数据部分类型的数据请求。
图8表示根据图7所示的相干存储体系,解决共享不定性方法的一个实施例。在处理块800,处理器i请求读取一个数据部分,数据请求由处理器i的专用存储器接收并且由处理块801处理。在处理块801,如果在专用存储器中数据部分是有效的,那么控制流程转到处理块810,它将提供请求数据部分给处理器i。否则,由存储控制器791接收数据请求并且由处理块802进行处理。在处理块802,如果数据部分的状态是S,那么控制流程转到处理块810,它通过将请求数据部分提供给处理器i的专用存储器完成处理。否则,控制流程转到处理块803。在处理块803,如果请求数据部分的状态是M,那么控制流程转到处理块810,通过将请求数据部分提供给处理器i的专用存储器完成处理。否则,控制流程转到处理块804。在处理块804,如果请求数据部分的状态是EC,那么控制流程转到处理块810,它将请求数据部分提供给处理器i的专用存储器。否则,控制流程转到处理块805。
在处理块805,如果请求数据部分的状态是ED,那么控制流程转到处理块806,它请求一个来自处理器的专用存储器的更新数据部分,该更新数据部分不启动数据请求。在收到更新副本之后,一个新的状态编码例如M,可以被再分配给数据部分。可选地,数据部分可以写回到中央存储器或主存储器并且一个新的状态EC或S可以被再分配给数据部分。控制流程然后转到处理块810,它将请求数据部分提供给处理器i的专用存储器。
如果在处理块805中的数据部分的状态不是ED,那么控制流程将转到处理块807。在处理块807,如果数据部分的状态是状态编码I,那么控制流程转到处理块808,它请求一个来自中央存储器或主存储器的外部数据部分。在从中央存储器或主存储器收到数据部分之后,控制流程转到处理块810,它通过将请求数据部分提供给处理器i的专用存储器完成处理。
应当理解的是,在不脱离本发明的原则并且在附加权利要求书的范围内,本领域的普通技术人员可以进行权衡和修改。例如,可以在由一个当前编码而编码的信息量和传输的不必要的无效请求的平均数之间进行权衡。一个类似权衡可以在当前编码和反向数据请求被传输到专用存储器的平均数之间进行。
图9a表示包括专用存储器910、专用存储器920、专用存储器940、专用存储器980、和共享存储器990的相干存储体系的另一个实施例,所述共享存储器990支持解决共享不定性。控制991包括一个状态部分和由共享存储器990存储的每个相应数据部分的当前部分。控制991的当前部分保存当前编码,它表示两个高位专用存储器单元906或者两个低位的专用存储器单元905。如果必须传输一个无效请求,在当前编码的最小有效位被设置时,控制991将请求传输到两个低位的专用存储器单元905,并且在当前编码的最大有效位被设置时,将请求传输到两个高位专用存储器单元906。因此有一半存储器需要存储当前编码,可能将有两倍的无效请求被传输。当请求数据部分的状态是ED的时,可能有反向数据请求平均数的三分之五也被传输以便提供相干性。
例如,数据部分911、数据部分913、数据部分915和数据部分918的状态是ED;因此如果一个这样的数据部分被使用相同当前编码所标识的专用存储器单元请求,那么所述的数据部分已经被提供给其他使用当前编码标识专用存储器单元,以响应表示需要修改请求数据部分类型的数据请求。另一方面,如果请求专用存储器单元不由当前编码表示,那么对更新副本的数据请求将被传输到两个由当前编码表示的专用存储器单元。因为ED是独占状态,仅有一个将响应。
相应于数据部分912和数据部分919的状态部分保存状态编码S,并且它们相应的当前部分保存当前编码11,表示这些数据部分已经被提供给至少两个专用存储器单元,以便响应不需要修改请求数据部分的数据请求。如果对这些数据部分任何一个的无效请求需要被传输,那么当有可能只有两个或三个专用存储器单元实际上需要无效它们的数据部分时全部四个专用存储器单元将接收传输。
数据部分914的状态编码是M并且当前编码10表示以前修改的数据部分914已经被提供给至少一个高位专用存储器单元906,以便响应不表示需要修改请求数据部分类型的数据请求。数据部分916的状态编码是I,并且当前编码00表示在共享存储器和以前保存副本的任何专用存储器中数据部分916已经无效。
数据部分917和数据部分971的状态编码是EC并且当前编码01表示相应的数据部分已经被提供给至少一个低位的专用存储器单元905,以便响应不表示需要修改请求数据部分类型的数据请求。
本领域的普通技术人员可以更进一步权衡和修改另一个实施例。例如,可以理解的是由一个三位状态编码的信息而编码量允许达到四个将被编码的独占脏状态。对于四个-处理器的系统,每个独占脏状态编码可以标识保存数据部分的最新的副本的专用存储器单元。
图9b表示包括专用存储器910、专用存储器920、专用存储器940、专用存储器980、和共享存储器990的相干存储体系的另一个实施例。控制992包括一个由共享存储器990存储的每个相应的数据部分的状态部分。控制992的状态部分保存一个状态编码,它表示每个专用存储器单元的独占脏状态,如ED1对应于专用存储器910、ED2对应于专用存储器920、ED4对应于专用存储器940、ED8对应于专用存储器980。如果一个无效请求必须被传输,控制992将请求传输给全部四个专用存储器单元。因此,当请求数据部分具有独占脏状态时,不必要的反向数据请求不被传输。除了可能的四次无效请求被传输外,不需要其他的存储器存储当前编码。
例如,相应于数据部分921的状态部分保存一个状态编码ED1,表示相应的数据部分已经被提供给专用存储器910,以便响应表示需要修改请求数据部分类型的数据请求。数据部分923的状态编码是ED4,表示相应的数据部分已经被提供给专用存储器940,以便响应表示需要修改请求数据部分类型的数据请求。数据部分925的状态是ED8,表示相应的数据部分已经被提供给专用存储器980,以便响应表示需要修改请求数据部分类型的数据请求。另外,数据部分928的状态是ED2,表示相应的数据部分已经被提供给专用存储器920,以便响应表示需要修改请求数据部分类型的数据请求。
数据部分922和数据部分929具有状态编码S,表示那个相应的数据部分已经被提供给一个或多个专用存储器单元,以便响应不需要修改请求数据部分的数据请求。如果对任何一个相应的数据部分的无效请求需要被传输,那么当实际上有可能只有一个、两个或三个专用存储器单元实际上需要无效请求数据部分时,全部四个专用存储器单元将接收传输。
数据部分924的状态编码是M,表示以前修改的数据部分924可以被提供给专用存储器单元,以便响应不表示需要修改请求数据部分的数据请求。数据部分926的状态编码是I,表示在共享存储器和以前保存副本的任何专用存储器中的数据部分926已经无效。数据部分927和数据部分972的状态编码是EC,表示这些的数据部分的每一个都被提供给专用存储器单元,以便响应不表示需要修改请求数据部分的数据请求。
图9c表示相干存储体系的另一个替换性实施例。控制993包括一个状态部分和由共享存储器990存储的数据部分的每个相应的当前部分。控制993的状态部分保存一个状态编码,它包括每个专用存储器单元的独占脏状态,如ED1对应于专用存储器910、ED2对应于专用存储器920、ED4对应于专用存储器940、ED8对应于专用存储器980。控制993的当前部分保存一个当前编码,它包括用于包含专用存储器940或专用存储器980的高位存储单元906的高位,或用于包含专用存储器910或专用存储器920的低位存储单元905的低序位。如果一个无效请求必须被传输,控制993将请求传输到被设定的每个当前编码位对应的两个专用存储器单元。因此,当请求数据部分具有独占脏状态时,则没有不必要的反向数据请求被传输,并且一半的其他的存储器需要存储当前编码,但是潜在地有两倍的无效请求被传输。
例如,数据部分931的状态编码是ED1并且当前编码01表示数据部分931已经被提供给低位专用存储器910,以便响应表示需要修改请求数据部分类型的数据请求。数据部分933的状态编码是ED4并且当前编码10表示数据部分933已经被提供给高位专用存储器940,以便响应表示需要修改请求数据部分的数据请求。数据部分935的状态编码是ED8并且当前编码10表示数据部分935已经被提供给高位专用存储器980,以便响应表示需要修改请求数据部分的数据请求。数据部分938的状态编码是ED2并且当前编码01表示数据部分938已经被提供给低位专用存储器920,以便响应表示需要修改请求数据部分类型的数据请求。如果任一数据部分的无效请求或反向数据请求需要被传输,那么只有适当的专用存储器单元会接收传输。
数据部分932和数据部分939的状态编码是S并且当前编码11表示这些数据部分已经被提供给至少两个专用存储器单元,以便响应不表示需要修改请求数据部分的数据请求。如果这些数据部分任何一个无效请求需要被传输,那么当实际上,有可能只有两个或三个专用存储器单元实际上需要无效它们的数据部分时,全部四个专用存储器单元将接收传输。
数据部分934的状态编码是M并且当前编码10表示以前修改的数据部分934已经被提供给至少一个高位专用存储器单元,以便响应不表示需要修改请求数据部分类型的数据请求。如果数据部分934的无效请求需要被传输,那么当有可能两个专用存储器单元中只有一个实际上需要无效它们的数据部分时,两个高位专用存储器单元906将接收传输。
数据部分936的状态编码是I,并且当前编码00表示在共享存储器和以前保存副本的任何专用存储器中数据部分936已经无效。
数据部分937和数据部分973的状态编码是EC并且当前编码01表示这些数据部分都已经被提供给至少一个低位专用存储器单元905,以便响应不表示需要修改请求数据部分的数据请求。如果这些数据部分任何一个的无效请求需要被传输,那么当有可能两个专用存储器单元中只有一个实际上需要无效它们的数据部分时,两个专用存储器单元将接收传输。
应当理解的是,在不脱离本发明的原则并且在附加权利要求书的范围内,本领域的普通技术人员可以对元件例如协议和通信方法在方案和细节上进行修改。例如,分布式存储器系统和分布式相干协议可以取得减少反向查询和本地共享控制合并的有益效果。
图9d表示在包括专用存储器901、专用存储器902、专用存储器904、专用存储器980、和共享存储器990的网络分布式系统中的相干存储体系的另一个替换性实施例,所述共享存储器990支持解决共享不定性。控制994包括一个状态部分和由共享存储器990存储的每个相应数据部分的当前部分。控制994的状态部分保存一个状态编码,它包括独占脏状态。控制994的当前部分保存一个当前编码,它包括一个双向链的SCI列表。
例如,一个相当于数据部分951的状态部分保存一个状态编码ED并且相应的当前部分保存列表51的当前编码,表示数据部分951已经被提供给位于列表51的最前面的专用存储器,以便响应表示需要修改请求数据部分类型的数据请求。数据部分953具有状态编码ED和列表53的当前编码,表示数据部分953已经被提供给位于列表53的最前面的专用存储器,以便响应表示需要修改请求数据部分的数据请求。数据部分955具有状态编码ED和列表55的当前编码,表示数据部分955已经被提供给位于列表55的最前面的专用存储器,以便响应表示需要修改请求数据部分的数据请求。数据部分958具有状态编码ED和列表58的当前编码,表示数据部分958已经被提供给位于列表58的最前面的专用存储器,以便响应表示需要修改请求数据部分的数据请求。
数据部分952具有状态编码S和列表52的当前编码,表示数据部分952已经被提供给列表52的专用存储器,以便响应不表示需要修改请求数据部分类型的数据请求。数据部分959具有状态编码S和列表59的当前编码,表示数据部分959已经被提供给列表59的专用存储器,以便响应不表示需要修改请求数据部分类型的数据请求。
数据部分954具有状态编码M和列表54的当前编码,表示以前修改的数据部分954已经被提供给列表54的专用存储器单元,以便响应不表示需要修改请求数据部分类型的数据请求。
数据部分956具有状态编码I,表示在共享存储器中数据部分956已经无效以及列表56的当前编码,它可能是重要的,也可能是不重要的。应当注意的是在一个分布式系统中,一些延迟可以被期待以便无效专用存储器副本,并且这便于在当前编码列表56中保存一些信息,但是通常状态编码I表示对于相应的存储位置来讲没有有效数据或当前编码。
数据部分957具有状态编码EC和列表57的当前编码,表示数据部分957已经被独占地提供给在列表57最前面的专用存储器,以便响应不表示需要修改请求数据部分类型的数据请求。数据部分974具有状态编码EC和列表74的当前编码,表示数据部分974已经被独占地提供给在列表74最前面的专用存储器,以便响应不表示需要修改请求数据部分类型的数据请求。
图10表示一个计算系统1000的实施例,包括一个相干存储体系,该相干存储体系包括使用M-S-I相干协议的专用存储器1011,1012,1016和1017,使用支持解决共享不定性的M-EID-EC-S-I相干协议的共享存储器1010和1015,以及在共享总线1003上使用总线窥探和使用M-E-S-I相干协议的共享存储器1004。多处理机系统1001和1002可以是单一或多印刷电路板。另外,多处理机系统1001和1002可以位于一个多-处理器-核心硅芯片上,或位于一个多芯片组件之内。
图11表示计算系统1100的另一个实施例,包括相干存储体系,该相干存储体系包括使用M-S-1相干协议的专用存储器1111,1112,1116和1117,使用支持解决共享不定性的M-ED-EC-S-I相干协议的共享存储器1110和1115,以及使用SCI相干协议的分布式共享存储器1104。当通过通信网络1103通信时,多处理机系统1101和1102可以被设置成彼此相互独立和与共享存储器1104相独立的处理器系统。
图12表示计算系统1200的另一个实施例,包括一个相干存储体系,该相干存储体系包括使用分布式SCI相干协议的专用存储器1211、1212、1216和1217,同样使用分布式SCI相干协议的分布式共享存储器1204,和使用M-ED-EC-S-I相干协议的分布式共享存储器1210和1215,所述M-ED-EC-S-I相干协议在解决共享不定性的时候支持独占本地分离所有权。多处理机系统1201和1202可以采用类似于图9d所示的方式被设置。当通过局域网(LAN)1203通信时,多处理机系统1201和1202还可以被设置成好像彼此相互独立和与共享存储器1204相独立的处理器系统。多处理机系统1201和1202可以提供对共享存储器1204的不同类型访问。例如,当多处理机系统1202可以通过虚拟专用网络(VPN)提供更安全的访问时,多处理机系统1201可以通过广域网(WAN)提供一个更公共的访问。
应当理解的是在此披露的方法和装置可以用于多用户多处理机系统或单用户多处理机系统或多核心的处理器。图13a表示一个多核心处理器1351的实施例,包括一个相干存储体系1301,该相干存储体系包括专用存储器1310、专用存储器1320和具有存储控制器1391的共享存储器1390,它支持解决共享不定性。专用存储器1310和专用存储器1320分别对应处理器核心1311和处理器核心1312。处理器核心1311和专用存储器1310可以紧密集成为组合处理核心1315。类似地,处理器核心1312和专用存储器1320可以紧密集成为组合处理核心1325。应该理解的是多核心处理器1351可以包括单芯片或可以包括多芯片,并且处理核心1315可以与处理核心1325相似或不同。还可以理解的是多核心的处理器1351可以更进一步包括总线控制电路或其它通信电路、除处理器核心1311和1312之外的处理器核心以及除专用存储器1310和1320之外的专用存储器。图13b更进一步表示计算系统1302的一个实施例,包括一个包括专用存储器1310,1320…1340以及具有存储控制器1391的共享存储器1390的相干存储体系,所述共享存储器1390支持解决共享不定性。专用存储器1310,1320、…1340分别对应处理器1321,1322、…1340。计算系统1302可以包括一个个人电脑,所述的个人电脑包括但不仅限于中央处理1352、图形存储器、其它高速缓冲存储器以及本地存储器;系统总线、本地总线和桥;外围系统、磁盘以及输入/输出系统、网络系统以及存储系统。
上述说明是用来解释本发明的最佳实施例。通过上述讨论,在不脱离本发明的原则并且在附加权利要求书的范围内,本领域的普通技术人员可以对本发明在装置和细节上加以修改是显而易见的。

Claims (32)

1.一种装置,包括:
第一数据存储单元,它包括用于保存第一数据编码的数据部分以及用于保存相应数据部分的第一状态编码相应的状态部分;  以及
耦合在第一个数据存储单元的第一存储控制器,它用于接收第一数据请求,并且如果第一状态编码是一组净状态编码中的一个,它还响应第一数据请求传输所述的第一数据编码,并且如果第一状态编码是一组独占脏状态编码中的一个,它还传输第二数据请求。
2.权利要求1所述的装置,第一数据存储单元还包括:
相当于所述的数据部分和所述的状态部分的当前部分,它用于保存相应数据部分的第一当前编码。
3.权利要求1所述的设备,还包括:
第二数据存储单元,它用于接收来自第一数据存储单元的第一数据;和
第三数据存储单元,它用于响应来自第一数据存储单元的第二数据请求传输第二数据。
4.权利要求3所述的装置,其中第一数据存储单元是共享存储器。
5.权利要求3的装置,其中第二数据存储单元和第三数据存储单元是专用存储器。
6.权利要求5的装置,其中第一数据存储单元、第二数据存储单元和第三数据存储单元位于同样的芯片上。
7.权利要求5的装置,其中第二数据存储单元和第三数据存储单元是分布式存储器。
8.一种装置,包括:
第一处理器,它用于传输第一数据请求;
相应地耦合到多个处理器的多个数据存储单元;
对应第一处理器的多个数据存储单元的第一数据存储单元,所述的第一数据存储单元具有用于保存第一数据编码的第一数据部分,还具有用于保存第一状态编码的相应的第一状态部分,以及第一存储控制器,如果第一状态编码是一组有效的状态编码中的一个,则所述第一存储控制器传输第一数据编码以便响应第一数据请求并且如果第一状态编码是一组无效状态编码中的一个,则所述第一存储控制器传输第二数据请求;
耦合到第一处理器的第二数据存储单元,第二数据存储单元具有用于保存第二数据编码的第二数据部分,还具有用于保存相应的第二数据部分的第二状态编码的第二状态部分,以及具有第二存储控制器,第二存储控制用于接收第二数据请求,并且如果第二状态编码是一组净状态编码中的一个,则第二存储控制器传输第二数据编码以便响应第二数据请求,如果第二状态编码是一组独占脏状态编码中的一个,则所述第二存储控制器传输第三数据请求;并且
多个数据存储单元的第三数据存储单元,第三数据存储单元具有用于保存第三数据编码的第三数据部分,第三数据存储单元还具有第三存储控制器,第三存储控制器用于传输第三数据编码以便响应第三数据请求。
9.权利要求8所述的装置,第二数据存储单元还包括:
对应于第二数据部分的第二当前部分,它用于保存相应的第二数据部分的当前编码。
10.权利要求9所述的装置,其中当第三数据存储单元保存第二数据编码的副本时,当前编码表示第三数据存储单元。
11.权利要求10所述的装置,其中当第三数据存储单元保存第二数据编码的修改过的副本时,当前编码仅表示第三数据存储单元。
12.权利要求8所述的装置,其中第二数据存储单元是共享存储器。
13.权利要求8所述的装置,其中第一数据存储单元和第三数据存储单元是专用存储器。
14.权利要求13所述的装置,其中第一数据存储单元、第二数据存储单元和第三数据存储单元在同一个芯片上。
15.权利要求13所述的装置,其中第一数据存储单元和第三数据存储单元是分布式存储器。
16.一种装置,包括:
第一数据存储单元,它具有数据部分用于保存第一状态编码的相应的状态部分,以及用于保存相应的数据部分的第一当前编码的相应的当前部分;以及
耦合到第一数据存储单元的第一存储控制器,它用于接收第一请求类型的第一数据请求,并且如果第一状态编码是一组有效的状态编码中的一个,它响应所述的第一数据请求,根据第一当前编码传输无效请求,并且它还用于设置第一状态编码为一组独占脏状态编码中的一个。
17.权利要求16所述的装置,其中第一存储控制器,响应第一请求类型的第一数据请求,设置第一当前编码以便表示第一数据请求的发起者。
18.权利要求17所述的装置,其中第一请求类型是用于修改所述的请求数据的请求。
19.一种装置,包括:
用于存储数据部分的共享存储装置;
用于对相当于数据部分的独占脏状态进行编码的共享状态记录装置;
用于存储修改和未修改数据部分的专用副本的多个专用存储装置;
用于维护专用存储装置和共享存储装置之间数据部分的相干性的控制装置。
20.权利要求19所述的装置,还包括:
用于对相应数据部分的副本的位置进行编码的当前记录装置。
21.权利要求20所述的装置,其中如果数据部分的副本是允许被修改的,所述的位置编码仅表示一个位置。
22.权利要求20所述的装置,其中维护相干性包括,如果数据部分的副本允许被修改,通过对应于数据部分的当前编码表示的专用存储器请求使数据部分的副本无效。
23.权利要求19所述的装置,其中维护相干性包括,如果数据部分的更新副本具有相应的独占脏状态,则请求来自专用的数据部分的更新副本,以便响应数据部分的请求。
24.一种方法,包括:
如果相应的数据部分状态是一组净状态编码中的一个,则传输数据部分编码,以便响应第一数据请求;
如果相应的数据部分状态是一组独占脏状态编码中的一个,则传输第二数据请求;
如果第一数据请求是第一请求类型并且如果数据部分状态是一组有效的状态编码中的一个,则根据相应的数据部分的当前编码传输无效请求;并且
如果第一数据请求是第一请求类型,则将数据部分状态设置为一组脏状态编码中的一个。
25.权利要求24所述的方法,还包括:
如果第一数据请求是第一请求类型,则设置当前编码以便表示第一数据请求的发起者。
26.权利要求25所述的装置,其中第一请求类型用于修改请求数据的请求,则当前编码被设置仅用来表示一个发起者。
27.一种方法的状态机可执行编码,包括一个或多个具有存储在其上的可执行编码的代码存储介质,当由一个或多个状态机执行时,引起一个或多个状态机进行如下操作:
如果相应的数据部分状态是一组净状态编码中的一个,则传输数据部分编码以响应第一数据请求;
如果相应的数据部分状态是一组独占脏状态编码中的一个,则传输第二数据请求;
如果第一数据请求是第一请求类型并且如果数据部分状态是一组有效的状态编码中的一个,则传输无效请求;以及
如果第一数据请求是第一请求类型,则设置数据部分状态为一组脏状态编码中的一个。
28.权利要求27所述的方法的状态机可执行编码,其中根据相应的数据部分的当前编码传输无效请求。
29.权利要求27所述的方法的状态机可执行编码,其中可执行编码还引起一个或多个状态机进行如下操作:
如果第一数据请求是第一请求类型,则设置当前编码以便表示第一数据请求的发起者。
30.权利要求27所述的方法的状态机可执行编码,其中第一请求类型用于修改请求数据的请求,则当前编码被设置仅用来表示一个发起者。
31.一种装置,包括:
处理器核心;以及
耦合到所述的处理器核心的存储器,它包括相当于存储在存储器中的数据部分的状态的存储部分,所述的状态包括净或脏状态的指示,存储在所述的存储器中的数据处于独占状态。
32.一种方法,包括:
在存储单元中存储状态信息,所述状态信息指示数据是否以独占状态被存储,所述状态信息包括净或脏状态的指示,以便指示所述数据处于独占状态时,所述数据处于净状态或者脏状态。
CNB01819186XA 2000-09-29 2001-09-26 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 Expired - Fee Related CN1277216C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/677,122 US6651145B1 (en) 2000-09-29 2000-09-29 Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US09/677,122 2000-09-29

Publications (2)

Publication Number Publication Date
CN1474969A true CN1474969A (zh) 2004-02-11
CN1277216C CN1277216C (zh) 2006-09-27

Family

ID=24717419

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01819186XA Expired - Fee Related CN1277216C (zh) 2000-09-29 2001-09-26 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备

Country Status (7)

Country Link
US (2) US6651145B1 (zh)
CN (1) CN1277216C (zh)
AU (1) AU2001296370A1 (zh)
DE (1) DE10196702T1 (zh)
GB (1) GB2384344B (zh)
HK (1) HK1054808A1 (zh)
WO (1) WO2002027497A2 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1301467C (zh) * 2004-10-19 2007-02-21 威盛电子股份有限公司 计算机系统内部数据存取方法与相关装置
CN100442251C (zh) * 2004-11-15 2008-12-10 因芬尼昂技术股份公司 计算机设备
CN101088076B (zh) * 2004-12-27 2011-06-08 英特尔公司 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统
CN101739316B (zh) * 2008-11-21 2013-04-03 国际商业机器公司 高速缓存旁路系统和方法
CN101739355B (zh) * 2008-11-21 2013-07-17 国际商业机器公司 伪高速缓冲存储器系统和方法
US8806129B2 (en) 2008-11-21 2014-08-12 International Business Machines Corporation Mounted cache memory in a multi-core processor (MCP)
US9824008B2 (en) 2008-11-21 2017-11-21 International Business Machines Corporation Cache memory sharing in a multi-core processor (MCP)
CN107643991A (zh) * 2017-09-22 2018-01-30 算丰科技(北京)有限公司 数据处理芯片和系统、数据存储转发处理方法
CN117093511A (zh) * 2023-09-04 2023-11-21 海光云芯集成电路设计(上海)有限公司 访存控制方法、访存控制装置、芯片及电子设备

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7409412B2 (en) * 2002-11-27 2008-08-05 Sap Ag Data element and structure for data processing
US7225302B2 (en) * 2002-11-27 2007-05-29 Sap Ag Method and software application for avoiding data loss
US7464091B2 (en) * 2002-11-27 2008-12-09 Sap Ag Method and software for processing data objects in business applications
US7430569B2 (en) * 2002-11-27 2008-09-30 Sap Ag Computerized replication of data objects
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US8533401B2 (en) * 2002-12-30 2013-09-10 Intel Corporation Implementing direct access caches in coherent multiprocessors
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US20050204102A1 (en) * 2004-03-11 2005-09-15 Taylor Richard D. Register access protocol for multi processor systems
US7610200B2 (en) * 2004-08-30 2009-10-27 Lsi Corporation System and method for controlling sound data
US7804504B1 (en) 2004-12-13 2010-09-28 Massachusetts Institute Of Technology Managing yield for a parallel processing integrated circuit
US20060143397A1 (en) * 2004-12-29 2006-06-29 O'bleness R F Dirty line hint array for cache flushing
US8010498B2 (en) 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
US20070028064A1 (en) * 2005-07-28 2007-02-01 Mcbrearty Gerald F Method for suspending mirrored writes during large data transfers
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US20080077638A1 (en) * 2006-09-21 2008-03-27 Microsoft Corporation Distributed storage in a computing environment
US7853754B1 (en) 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
US7804329B2 (en) * 2008-11-21 2010-09-28 International Business Machines Corporation Internal charge transfer for circuits
US8347050B2 (en) * 2009-01-27 2013-01-01 Microsoft Corporation Append-based shared persistent storage
US8799572B2 (en) 2009-04-20 2014-08-05 Microsoft Corporation Sliding-window multi-class striping
JP5568939B2 (ja) * 2009-10-08 2014-08-13 富士通株式会社 演算処理装置及び制御方法
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US8688914B2 (en) 2011-11-01 2014-04-01 International Business Machines Corporation Promotion of partial data segments in flash cache
US9529532B2 (en) 2014-03-07 2016-12-27 Cavium, Inc. Method and apparatus for memory allocation in a multi-node system
US9372800B2 (en) * 2014-03-07 2016-06-21 Cavium, Inc. Inter-chip interconnect protocol for a multi-chip system
US9411644B2 (en) 2014-03-07 2016-08-09 Cavium, Inc. Method and system for work scheduling in a multi-chip system
US10592459B2 (en) 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
CN105426319B (zh) * 2014-08-19 2019-01-11 超威半导体产品(中国)有限公司 动态缓存分区设备和方法
CN109614220B (zh) 2018-10-26 2020-06-30 阿里巴巴集团控股有限公司 一种多核系统处理器和数据更新方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5130922A (en) 1989-05-17 1992-07-14 International Business Machines Corporation Multiprocessor cache memory system using temporary access states and method for operating such a memory
JPH0625984B2 (ja) * 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
JP3009430B2 (ja) * 1990-07-09 2000-02-14 キヤノン株式会社 プロセッサおよびそのキャッシュメモリ制御方法
US5524212A (en) * 1992-04-27 1996-06-04 University Of Washington Multiprocessor system with write generate method for updating cache
US5680576A (en) * 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
JPH0950400A (ja) * 1995-08-10 1997-02-18 Nec Corp マルチプロセッサシステム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1301467C (zh) * 2004-10-19 2007-02-21 威盛电子股份有限公司 计算机系统内部数据存取方法与相关装置
CN100442251C (zh) * 2004-11-15 2008-12-10 因芬尼昂技术股份公司 计算机设备
CN101088076B (zh) * 2004-12-27 2011-06-08 英特尔公司 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统
US9122617B2 (en) 2008-11-21 2015-09-01 International Business Machines Corporation Pseudo cache memory in a multi-core processor (MCP)
CN101739355B (zh) * 2008-11-21 2013-07-17 国际商业机器公司 伪高速缓冲存储器系统和方法
US8806129B2 (en) 2008-11-21 2014-08-12 International Business Machines Corporation Mounted cache memory in a multi-core processor (MCP)
CN101739316B (zh) * 2008-11-21 2013-04-03 国际商业机器公司 高速缓存旁路系统和方法
US9824008B2 (en) 2008-11-21 2017-11-21 International Business Machines Corporation Cache memory sharing in a multi-core processor (MCP)
US9886389B2 (en) 2008-11-21 2018-02-06 International Business Machines Corporation Cache memory bypass in a multi-core processor (MCP)
CN107643991A (zh) * 2017-09-22 2018-01-30 算丰科技(北京)有限公司 数据处理芯片和系统、数据存储转发处理方法
CN107643991B (zh) * 2017-09-22 2023-09-19 北京算能科技有限公司 数据处理芯片和系统、数据存储转发处理方法
CN117093511A (zh) * 2023-09-04 2023-11-21 海光云芯集成电路设计(上海)有限公司 访存控制方法、访存控制装置、芯片及电子设备
CN117093511B (zh) * 2023-09-04 2024-05-10 海光云芯集成电路设计(上海)有限公司 访存控制方法、访存控制装置、芯片及电子设备

Also Published As

Publication number Publication date
DE10196702T1 (de) 2003-08-28
GB2384344B (en) 2004-12-29
GB2384344A (en) 2003-07-23
CN1277216C (zh) 2006-09-27
GB0309110D0 (en) 2003-05-28
HK1054808A1 (en) 2003-12-12
US20030233523A1 (en) 2003-12-18
WO2002027497A2 (en) 2002-04-04
AU2001296370A1 (en) 2002-04-08
WO2002027497A3 (en) 2003-01-30
US6651145B1 (en) 2003-11-18
US7003632B2 (en) 2006-02-21

Similar Documents

Publication Publication Date Title
CN1277216C (zh) 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
US6295598B1 (en) Split directory-based cache coherency technique for a multi-processor computer system
CN1157659C (zh) 非均匀存储器访问数据处理系统及其通信方法
US6405289B1 (en) Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
CN100520738C (zh) 更新无效一致状态的方法、数据处理系统和高速缓存系统
CN100474270C (zh) 用于信息处理的系统和方法
CN1290022C (zh) 支持一致总线上改进突发传输的方法
US7577816B2 (en) Remote translation mechanism for a multinode system
EP0817073A2 (en) A multiprocessing system configured to perform efficient write operations
CN87107293A (zh) 用于数字数据处理器的总线接口电路
EP0497600B1 (en) Memory access method and apparatus
CN101042679A (zh) 维护存储器一致性的方法和系统
CN1156771C (zh) 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统
CN1495618A (zh) 芯片多处理器或多处理系统的高速缓存共享
JPH11134312A (ja) 分散共有メモリ多重プロセッサシステム
JP2000242621A (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
CN1866222A (zh) 用于初始化存储器块的处理器、数据处理系统和方法
KR20000052493A (ko) 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템
CN101030170A (zh) 多状态高速缓存一致性方案的设备、系统和方法
WO1995025306A2 (en) Distributed shared-cache for multi-processors
CN101030171A (zh) 减少无效一致状态的数据处理系统、高速缓存系统和方法
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
WO2007106383A1 (en) Selective address translation for a resource such as a hardware device
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
CN101055545A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060927

Termination date: 20120926