CN1134735C - 一种支持高速缓存一致性的高速缓存、数据处理系统及方法 - Google Patents

一种支持高速缓存一致性的高速缓存、数据处理系统及方法 Download PDF

Info

Publication number
CN1134735C
CN1134735C CNB991010981A CN99101098A CN1134735C CN 1134735 C CN1134735 C CN 1134735C CN B991010981 A CNB991010981 A CN B991010981A CN 99101098 A CN99101098 A CN 99101098A CN 1134735 C CN1134735 C CN 1134735C
Authority
CN
China
Prior art keywords
cache
state
speed cache
data item
consistance
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
Application number
CNB991010981A
Other languages
English (en)
Other versions
CN1231443A (zh
Inventor
R·K·阿里米里
����һ
J·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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1231443A publication Critical patent/CN1231443A/zh
Application granted granted Critical
Publication of CN1134735C publication Critical patent/CN1134735C/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/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)

Abstract

在处理器可访问的二级(L2)高速缓存中,实现一个改进的MESI高速缓存一致性协议,该处理器有分开的一级(L1)数据和指令高速缓存。改进MESI协议包含共享状态的两个子状态,它代表与共享状态相同的一致性信息以及关于主题高速缓存登记项的内容/一致性的附加信息。在较低级高速缓存(例如L3)中,对处于共享一致性状态的第一子状态的一个高速缓存登记项进行重新配置,不会使L2高速缓存中的同一高速缓存登记项的内容无效。

Description

一种支持高速缓存一致性的高速 缓存、数据处理系统及方法
本发明总的关于垂直高速缓存(cache)体系中的包括性,具体地,有关就被高速缓存的指令而论的选择包括性。更具体地,本发明有关选择包括性,以防止由于在较低高速缓存级上的重新分配,而使被高速缓存的指令丢掉。
典型的超标量精减指令集(RISC)处理器至少在其存储体系的一级(L1)层中包含有分开的数据和指令高速缓存。由于当代超标量处理器中所要求的带宽,必须有分离的数据和指令高速缓存,在这些处理器中,每个处理器周期内,取指令和引用数据可能很容易达到多于一次高速缓存存取。于是,L1高速缓存(它一般被嵌入在处理器硬件中并被设计为响应时间等于或少于一个处理器周期)通常被分开,以便指令和数据引用可以在同一处理器周期中被发往各单独的高速缓存。
许多数据处理系统都可能包含多级高速缓存体系,它们是逻辑上有秩序的,即,首先检查较高级的高速缓存,若在一个较高级失中,则立即访问较低级上的高速缓存。一般,多级高速缓存被用于以递减的存取等待时间将向处理器的数据分成多个阶段。在高速缓存体系的较高层,使用较小,较快的高速缓存,而在较低层使用较大的,较慢的高速缓存。通常,这类垂直高速缓存结构被认为是包括的,即,每个高速缓存的内容都包含高速缓存体系中紧接其上的高速缓存中的内容。
当从系统内存中读出新的数据或指令而需要高速缓存中的空间时,高速缓存按在该高速缓存中实施的特定置换规则选择一个牺牲品并将所选高速缓存存储单元重新分配。在包含在多个高速缓存中的一个高速缓存存储单元被在一个高速缓存中重新分配的情况下,通过在其它高速缓存中重新分配同一存储单元,保持了逻辑上有序的高速缓存的包括性,不过,在有些情况下,这将产生不期望的结果。例如,若一个包含指令的高速缓存存储单元在三级(L3)高速缓存中被重新分配,则同一空间通常在二级(L2)高速缓存中被重新分配。若随后处理器/L1高速缓存试图从L2高速缓存中再装入指令,则它将在L2和L3高速缓存中落空,并(假设在高速缓存体系中没有更多的级)被要求从系统内存中存取所希望的指令。指令的再装入有时是必须的,例如,在执行了一个误预测分支时。因为从系统内存读取的等待时间往往远大于从L2,L3高速缓存读取的等待时间,所以可能出现明显的性能延迟。
在高速缓存存储单元被重新分配时,防止指令被丢弃的一个问题是,没有将高速缓存中的指令和数据区分出来的明显机制。系统内存中的程序源代码可能包含无法分辨的指令和数据的混合。这可能出现在,例如,在一个装载程序在将代码装入系统内存之后,解除代码连接的情况下。这样,当选中一个牺牲品时,就没有用来客观标识指令的方法,从而设计一个置换规则来选择一个替代牺牲品。进一步,不必所有高速缓存级都包含L1指令高速缓存。仅需要L2高速缓存包括L1指令高速缓存的当前和最近内容,以便使指令再装入的延迟时间最少。在高速缓存体系的所有级中都要求同样的包括性有损于整个高速缓存的效率。
于是,希望提供一个机制,以保持高速缓存体系的较高级中的指令的有选择的包括性。若较低高速缓存级的重新配置不影响该机制,则更加有利,这样,就不要求在所有高速缓存级上都保持指令高速缓存的包括性。
本发明的一个目的是提供垂直高速缓存体系中的包括性的一个改进系统。
本发明的另一个目的是提供一个方法和装置,提供关于垂直高速缓存体系中高速缓存的指令的有选择的包括性。
本发明的另一个目的是提供有选择的包括,以防止由于在较低高速缓存级上的重新配置,使得被高速缓存的指令被丢弃掉。
上述目的可通过以下描述的方法达到。在可被处理器(该处理器有一个分开的一级(L1)数据和指令高速缓存)访问的二级(L2)高速缓存中实现改进的MESI高速缓存一致性协议。该改进MESI协议包括共享状态的两个子状态,它代表与共享状态同样的一致性信息,外加关于主题高速缓存登记项(subject cache entry)的内容/一致性的附加信息。一个子状态,SIC0,指示高速缓存登记项被认为包含的是指令,因为其内容是作为一条取指令操作的结果从系统内存中取出的。第二个子状态,SIC1,表明同样的信息,并表明在该主题高速缓存登记项的包括性处于第一共享子状态时,一个被监听的清空操作命中该主题高速缓存登记项。将处于共享一致性状态的第一子状态中的一个高速缓存登记项在较低级(例如L3)高速缓存中进行重新分配,不会导致一个L2高速缓存中的同一高速缓存登记项的内容无效。一旦进入了第一子状态,一致性状态就不会转变为无效状态,除非收到一个设计为使指令无效的操作。来自本地处理器的,违反其内容中包含指令这一假设的操作,会使一致性状态转变为一个普通的共享状态。因为处于两个一致性子状态的高速缓存登记项的内容被认为是指令,而非数据,所以,L2高速缓存的指令不会作为被监听的清空的结果而被丢弃,而是被保留下来,以供本地处理器可能的再装入使用。
通过下面的详细介绍,可以清楚以上内容以及本发明的其它目的、特征和优点。
被认为是本发明特征的新颖的特性在结合实施例进行描述。不过,本发明本身,以及一个优选的使用模式,更多的目的及优点,借助于下面对一个示例实施例的具体描述及附图,可以得到更好的理解,附图中:
图1描述了按本发明的一个优选实施方案给出的一个多处理器数据处理系统;
图2是按本发明的一个优选实施方案给出的L2高速缓存的方框图;以及
图3描述按本发明的一个优选实施方案给出的改进的MESI高速缓存一致性协议的状态图。
现参照附图,特别是图1,描述按本发明的一个优选实施方案给出的一个多处理器数据处理系统。数据处理系统100是一个包含多个处理器102和104的对称多处理器(SMP)系统,它最好包含可从纽约Armonk的国际商用计算机公司中获得的PowerPCTM处理器家族中的一个。尽管在示例实施方案中仅描述了两个处理器,但本领域专业人士可以认识到,按本发明,可以在多处理器数据处理系统中使用更多的处理器。
处理器102和104分别包含一个一级(L1)数据高速缓存106和108及一个L1指令高速缓存110和112。尽管在示例实施方案中举例说明为分开的指令和数据高速缓存,但本领域专业人士可以认识到,可以实现一个单个的,统一的L1高速缓存。为了使数据存取等待时间最小化,在数据处理系统100中可以实现一个或多个更多的高速缓存存储器级。例如二级(L2)高速缓存114和116,三级(L3)高速缓存118和119。较低高速缓存级-L2和L3-被用于将向L1高速缓存的数据分阶段,且一般有逐级增大的存储容量,但存取等待时间逐级加长。例如,数据高速缓存106和108及指令高速缓存110和112每个可能有32KB的存储容量及大约1-2个处理器周期的存取等待时间。L2高速缓存114和116可能有512KB的存储容量,但存取等待时间为5个处理器周期,而L3高速缓存118和119可能有4MB的存储容量和大于15个处理器周期的存取等待时间。于是,L2高速缓存114和116及L3高速缓存118和119作为处理器102和104及系统内存120间的中间存储器。系统存储器120一般有大得多的存储容量,但其存取等待时间可能大于50个处理器周期。
数据处理系统100中所采用的高速缓存体系的级数和高速缓存体系的配置都可以不同。图示例子中的L2高速缓存114和116是连接在它们各自的处理器102和104及系统内存120(通过系统总线122)间的专用高速缓存。L3高速缓存118和119被描述为逻辑上与L2高速缓存114和116垂直的后备高速缓存。这就使得可以同时在L2高速缓存114或116之一中及在L3高速缓存118和119之一中查寻数据或指令,尽管只在L3高速缓存118或119命中而其相应的L2高速缓存114或116落空的时候,才从L3高速缓存118或119中检索数据或指令。本领域专业人士可以认识到,可以实现所描述的级数和配置的不同置换。
L2高速缓存114和116及L3高速缓存118和119是通过系统总线122被连接到系统内存120上的。连接到系统总线122上的还可能有一个内存映像设备124,例如为显示器提供连接的图形适配器(未示出),和输入/输出(I/O)总线桥126。I/O总线桥126将系统总线122连接到I/O总线128上,I/O总线128可以为I/O设备130和非易失性存储器132提供连接。于是,系统总线122,I/O总线桥126和I/O总线128形成了联接附属设备的互连结构,在本领域中有对它的公知替换实现。I/O设备130包括常规外围设备,这些外围设备包括键盘,诸如鼠标或轨迹球的图形指示设备,显示器,和打印机,它们通过常规适配器与I/O总线128连接。非易失性存储器132可以包含一个硬盘驱动设备并存储控制系统100操作的操作系统和其它软件,它们随系统100的加电而被加载到易失性的系统存储器120中。本领域的专业人士可以认识到,数据处理系统100可以包括许多在图1中未示出的附加部件,例如串行和并行端口,到网络或附属设备的连接,调节对系统存储器120的存取的存储控制器等。这类修改和变动是在本发明精神和范围内的。
系统总线122上的一个典型通信事务包括一个表明事务来源的源标记,一个指明事务的预定接收者的目标标记,一个地址和/或数据。每个连接到系统总线122上的设备最好监听系统总线122上的所有通信事务,在需要时干涉到其它接收者的通信事务,并且在可能并合适时,重现对在设备中复制的系统内存数据的改变。
参照图2,该图说明了按本发明的一个优选实施方案给出的L2高速缓存的方框图。如图3结合状态图所描述的那样,通过实施MESI高速缓存一致性协议的一个改进方案,本发明支持L2高速缓存中的伪精确指令高速缓存包括性,例如图1中所述的L2高速缓存114和116。L2高速缓存200可能是一个使用32位地址的n路组相关高速缓存。相应地,L2高速缓存200中的高速缓存存储器或数据数组202包含一些同余类或行,每个都包含足够的存储空间以存储n个高速缓存行。一个高速缓存行,也称为一个高速缓存块,是一致性状态所描述的高速缓存存储器的单位。通常,在现代数据处理系统中,一个高速缓存行是32,64或128B长。
高速缓存目录204也包含一些行,每行包括n个目录登记项,每个目录登记项与高速缓存存储器202的等效行中的一个相应高速缓存行相关联。每个目录登记项包括一个标志域206,一个一致性状态域208,一个最近最少使用(LRU)域210,和一个包含域(I)212。标志域206被用于存储相关高速缓存行中所存数据的系统内存地址的标志域(例如,〔0-19〕位)。一致性状态域208通过预定义的比特组合定义相关的高速缓存行中所存数据的一致性状态。LRU域210表明,与同余类中其它高速缓存行相比,相关高速缓存行最近被访问的情况,以此指出如果要求替换一个高速缓存行,哪个高速缓存行应被从同余类中舍去。最后,包含域212表明,相关联的高速缓存行是否也被存储在逻辑上有序的L1高速缓存中,例如图1中所述的L1数据高速缓存106和108及L1指令高速缓存110和112。
仍参照图2,L2高速缓存200还包括一个高速缓存控制器24,它管理对高速缓存存储器202存储和取出高速缓存行,并更新高速缓存目录204。高速缓存控制器214根据从相关处理器,例如图1所述处理器102和104,中所接收的信号而操作,或根据从系统总线监听的事务操作。这样,高速缓存控制器212包括一些队列,包括读队列216和写队列218,在其中放置要被执行的操作,直到资源可用。例如,作为执行一条装载指令的结果,一个本地处理器可以向L2高速缓存发布一个读请求。高速缓存控制器214将该读请求放入读队列216中的一个登记项中,并通过将所请求数据提供给本地处理器来为请求服务,并随后从读队列216中消去该读请求。高速缓存控制器214还可以将一个写请求放入写队列218以分别更新与包含被请求数据的高速缓存行相关的LRU和包括域210和212。另一个例子,一个远程处理器可以启动一个表明要修改其本地高速缓存中某一指定高速缓存行的系统总线事务。高速缓存控制器214,响应从系统总线上监听到该业务,而将一个读高速缓存目录204的请求放入读队列216中,以确定指定高速缓存行是否在高速缓存存储器204中。若是,则高速缓存控制器214在系统总线上启动一个合适的响应,并且,如果需要,则在写队列218中放入一个写请求,当对它服务时,更新与指定高速缓存行相关联的高速缓存目录204中的一致性域208。尽管在图2所示实施方案中仅描述了一个读队列216和一个写队列218,不过,本领域专业人士可以意识到,高速缓存控制器214所用的队列的数量只是设计选择的问题,并且可以实施单独的队列,用于高速缓存目录访问而不是高速缓存存储器访问,或者用于从本地处理器接收的信号(而不是从系统总线监听的事务),或者用于两者。
在一个优选实施方案中,在系统加电时,高速缓存目录204中的每个登记项的一致性状态域208被初始化为无效(I)状态,以表明标志域206和高速缓存存储器202内相关高速缓存行中存储的数据都是无效的。此后,一致性状态域208可被修改为以下将详细描述的改进MESI一致性协议中的一个一致性状态。一致性状态域208要转变的状态依赖于系统处理器所做的存储器存取的类型和存储体系对那些存取所做的响应,这些也将在以下做更详细的介绍。根据被请求高速缓存行的一致性状态域208中所显示的一致性状态,高速缓存控制器214对被监听的系统总线操作作不同的响应,该总线操作表明,一个L3高速缓存,例如图1中所描述的L3高速缓存118,正重新分配其高速缓存存储器中指定的高速缓存行。
现参照图3,该图描述了按本发明优选实施方案给出的改进MESI高速缓存一致性协议的状态图。仅在L2高速缓存中实施改进的MESI协议,在较低高速缓存级中实施常规MESI协议。改进的MESI协议包含常规MESI协议使用的四个同样的基本状态:修改(M)的状态302,它表示,已经根据系统内存中的相应数据修改了高速缓存行,而没有修改系统内存数据,这样,数据的唯一有效拷贝位于存储已修改高速缓存行或区段的高速缓存登记项中;专用(E)状态304,它表明该高速缓存登记项与系统内存相一致,但只能在存储体系的那一级的所有高速缓存中,在主题高速缓存中找到该高速缓存登记项;共享(S)状态306,表明可以在主题高速缓存和存储体系中同一级上的至少一个其它高速缓存中找到该高速缓存登记项,且数据的所有拷贝与系统内存中的相应数据相一致;和无效(I)状态308,它表明给定高速缓存中的一个高速缓存登记项-数据和地址标记-不再与系统内存或内存体系中的其它高速缓存相一致。尽管支持修改状态302和专用状态304,但本发明是关于被认为含有指令而非数据的高速缓存存储单元。所以,这些状态不适用于感兴趣的高速缓存存储单元,这里就不详细介绍。
改进的MESI协议还包括两个附加状态,它们是共享状态306的变形或子状态。SIC0状态310表明,可以在主题高速缓存和存储体系中同一级上的至少一个其它高速缓存中找到该高速缓存登记项,该高速缓存登记项的所有拷贝与系统内存相一致,并表明主题高速缓存登记项是作为一个取指令的结果被装载的。SIC1状态312表明,可以在主题高速缓存和存储体系中同一级上的至少一个其它高速缓存中找到该高速缓存登记项,且该高速缓存登记项的所有拷贝与系统内存相一致,并且还表明主题高速缓存登记项是作为一个取指令的结果被装载的,以及该高速缓存登记项已被在存储体系的较低级重新分配。尽管被对较低高速缓存进行重新分配,但L2高速缓存登记项中的指令被保持以供可能的L1高速缓存访问使用。
改进MESI协议中的协议转移依赖于促使该高速缓存登记项被装载的存储器存取的特性和当前存储器存取的特性。如果是作为一个本地处理器读数据的结果,数据被存储在一个高速缓存存储单元中(即,由装载指令激发的一个读数操作),则该高速缓存行的内容被假定包含数据,且一致性状态从无效308转换到共享306。另一方面,如果高速缓存块的内容是作为取指令的结果取出的,则认为该高速缓存存储单元的内容包含指令,且一致性状态从无效308转换到SIC0310。如果处于SIC0状态310的一个高速缓存存储单元是随后由本地处理器激发的读数操作的对象,则关于高速缓存内容包含指令的原始假设无效且一致性状态从SIC0 310转换到共享306。否则,若处于SIC0状态310的一个高速缓存登记项被一个被监听的清空操作命中,例如,这可能是由较低级高速缓存的重新分配引起的,则一致性状态从SIC0 310转换为SIC1 312。一旦一致性状态转换到SIC1 312,则忽略随后对同一存储单元的被监听的清空命中,且来自本地处理器的的读数操作或读出以便修改(rwitm)操作被认为落空。只有作为指令高速缓存块失效(icbi)或等效操作的结果,一致性状态才会从SIC0状态30或SIC1状态312转变为无效状态308。在表1中总结了图3所描述的改进MESI协议中所做的状态转换。
                        表1
状态转换 原因 备注
I→S 读数或rwitm 不认为高速缓存登记项中包含指令
I→SIC0 取指令 假定高速缓存登记项包含指令
S→I 被监听到的清空
SIC0→S 读数 不认为高速缓存登记项中包含指令
SIC0→I 指令高速缓存块失效
SIC0→SIC1 被监听到的清空 较低级高速缓存重新分配
SIC1→I 指令高速缓存块失效
一致性状态转换仅出现在数据处理系统的L2高速缓存中,且该系统在存储体系中有其他较低的高速缓存级。同一操作使得遵守常规MESI协议的较低级高速缓存进行不同的一致性状态转换。在表II中比较了某一特定高速缓存登记项的各种常见操作所引起的L2和L3高速缓存中不同的一致性状态转换。
          表II
操作 L2  L3
取指令 I→SIC0  I→S
读数 SIC0→S  S→S
被监听的清空 SIC0→SIC1  S→I
表II中可见的一个显著的区别是被监听的清空导致的L2和L3高速缓存中一致性状态转换间的不同。L3高速缓存如以前的技术那样对高速缓存登记项重新分配。而L2高速缓存保留高速缓存登记项并转换到一个一致性状态,该状态表明假定高速缓存登记项包含指令且较低级高速缓存中的同一高速缓存登记项已被重新分配。这样,L2高速缓存保留假定的指令,以供本地处理器可能的随后再装入使用。L2高速缓存将本地处理器的L1指令高速缓存的当前和最近的内容包括在内,但L3高速缓存不必也包括同样的内容。于是,在高速缓存体系的较高级中保持了指令的选择包括性,而总高速缓存效率没有因为要求完全垂直包括性而降低。于是,本发明可以防止由于在较低高速缓存级中重新分配而导致的反向清空,使得L2高速缓存中的指令被丢弃。附加的一致性状态并不要求大幅度地增加开销,且该改进只需在多级高速缓存体系的L2高速缓存中实施。
尽管以上描述的仅是对常规MESI协议所做的改进,不过,本发明也可连同对MESI协议的其它改进一起实现,这里包括R-MESI协议,其中最近(R)状态,实质上是共享状态的另一种变形,表明:(1)可以在主题高速缓存和存储体系中同一级的至少一个其它高速缓存中找到高速缓存登记项,且主题高速缓存和其它高速缓存中的数据的所有拷贝都与系统内存中相应的数据相一致。(2)在包含共享数据的所有高速缓存中,主题高速缓存最近接收到系统总线事务中的数据,例如从系统内存中读数。在U.S专利申请系列NO.08/839,557中更全面地描述了R状态,在此将其整体引入以供参考。最近状态的子状态表明,假定高速缓存登记项包含指令,而不是数据,并且/或者表明同一高速缓存登记项已被在较低级高速缓存中重新分配,可以用与SIC0与SIC1状态等效的方式实现该子状态。
尽管只是参照一个优选实施方案描述本发明,但本领域专业人士可以认识到,在不脱离本发明精神和范围的情况下,可以做不同的形式和细节上的改变。

Claims (20)

1.在包括系统内存和多个高速缓存的数据处理系统中,保持高速缓存一致性的方法,包括:
执行一条取指令操作,把一个数据项读取到第一高速缓存中;并且
将该数据项的一致性指示器设置为第一状态,以表明可以在第一高速缓存和至少一个其它高速缓存中找到该数据项,且包含该数据项的所有高速缓存都与系统内存一致,并表明,该数据项是由一个取指令操作读取的。
2.如权利要求1的方法,其特征在于第一状态表明假设该数据项包含指令。
3.如权利要求1的方法,其特征在于第一状态是由一个取指令操作导致的共享状态。
4.如权利要求1的方法,其特征在于,它还包括:
若检测到使一个指令高速缓存存储单元无效的操作并包含与该数据项相关的地址标记,同时一致性指示器处于第一状态,则将一致性指示器更新为第三状态,以表明数据项是无效的。
5.如权利要求1的方法,其特征在于,它还包括:
若检测到包含与该数据项相关的地址标记的读数据操作,同时一致性指示器处于第一状态,则将一致性指示器更新为一个第二状态,该状态表明可以在第一高速缓存和至少一个其它高速缓存中找到该数据项,并且包含该数据项的所有高速缓存与系统内存一致,并表明假定该数据项不包含指令。
6.如权利要求5的方法,其特征在于第二状态是一个共享状态。
7.如权利要求1的方法,其特征在于,它还包括:
若检测到一个包含与该数据项相关的地址标记的被监听的清空操作,同时一致性指示器是第一状态,则将一致性指示器更新为第二状态,表明可在第一高速缓存中找到该数据项,并且第一高速缓存与系统内存相一致,并表明逻辑上按序并在第一高速缓存之后的其它高速缓存不包含该数据项。
8.如权利要求7的方法,其特征在于,在逻辑上按序并在第一高速缓存以下的第二高速缓存中,对包含有该数据项的一个高速缓存存储单元进行重新分配,将引起转换到第二状态。
9.如权利要求7的方法,其特征在于,它还包括:
若检测到使一个指令高速缓存存储单元失效的操作,并包含与该数据项相关的地址标记,同时一致性指示器处于第二状态,则将一致性指示器更新为第三状态,表明该数据项无效。
10.一个数据处理系统,包括:
有第一高速缓存的处理器;
连接到处理器上的第二高速缓存;
连接到第二高速缓存上的第三高速缓存,第三高速缓存逻辑上位于第二高速缓存之下;和
与第二高速缓存中的一个数据项相关的一致性指示器,该一致性指示器有一个第一状态,表明可在第二高速缓存和至少一个其它高速缓存中找到该数据项,并且包含该数据项的所有高速缓存都与系统内存相一致,并表明该数据项是由一条取指令操作读取的。
11.如权利要求10的数据处理系统,其特征在于,一致性指示器有一个第二状态,表明可在第二高速缓存中找到该数据项,但不能在第三高速缓存中找到该数据项。
12.如权利要求11的数据处理系统,其特征在于:
第一高速缓存包含与处理器中的数据高速缓存分开的指令高速缓存,并且
一致性指示器有一个表明该数据项无效的第三状态,一致性指示器根据使第一高速缓存中的一个高速缓存存储单元无效的操作,从第二状态转变为第三状态。
13.如权利要求10的数据处理系统,其特征在于:
第一高速缓存包含与处理器中的数据高速缓存分开的指令高速缓存,且
一致性指示器有一个表明该数据项无效的第二状态,一致性指示器根据使第一高速缓存中的一个高速缓存存储单元失效的操作,从第一状态转变为第二状态。
14.如权利要求10的数据处理系统,其特征在于第一状态表明假定该数据项包含指令。
15.如权利要求10的数据处理系统,其特征在于一致性指示器有一个第二状态,表明可能在第二高速缓存和至少一个其它高速缓存中找到该数据项,表明包含该数据项的所有高速缓存与系统内存相一致,并表明假定该数据项不包含指令。
16.如权利要求10的数据处理系统,其特征在于,响应于把数据项读取到处理器中单独的数据高速缓存中的操作,一致性指示器从第一状态转变为第二状态。
17.支持数据处理系统中的一个高速缓存一致性协议的高速缓存,包括:
包含多个高速缓存存储单元的数据存储器;
包含多个登记项的高速缓存目录,每个目录登记项都与多个高速缓存存储单元中的一个高速缓存存储单元唯一地相关;并且
在至少一个目录登记项中的一致性指示器,该一致性指示器有一个第一状态,表明相关高速缓存存储单元中的数据项与系统内存相一致,并且是由一个取指令操作恢复的。
18.如权利要求17的装置,其特征在于第一状态表明,假设该高速缓存存储单元包含指令。
19.如权利要求17的装置,其特征在于,一致性指示器有一个第二状态,表明在与该高速缓存逻辑上按序并在该高速缓存之下的其它高速缓存中,不能找到相关高速缓存存储单元中的数据项。
20.如权利要求17的装置,其特征在于一致性指示器有一个第二状态,表明假设该数据项不包含指令。
CNB991010981A 1998-02-17 1999-01-15 一种支持高速缓存一致性的高速缓存、数据处理系统及方法 Expired - Fee Related CN1134735C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US024321 1998-02-17
US024,321 1998-02-17
US09/024,321 US6345339B1 (en) 1998-02-17 1998-02-17 Pseudo precise I-cache inclusivity for vertical caches

Publications (2)

Publication Number Publication Date
CN1231443A CN1231443A (zh) 1999-10-13
CN1134735C true CN1134735C (zh) 2004-01-14

Family

ID=21819988

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991010981A Expired - Fee Related CN1134735C (zh) 1998-02-17 1999-01-15 一种支持高速缓存一致性的高速缓存、数据处理系统及方法

Country Status (10)

Country Link
US (1) US6345339B1 (zh)
EP (1) EP0936552B1 (zh)
JP (1) JP3245125B2 (zh)
KR (1) KR100320974B1 (zh)
CN (1) CN1134735C (zh)
CA (1) CA2260285A1 (zh)
DE (1) DE69930983T2 (zh)
MY (1) MY119935A (zh)
SG (1) SG71192A1 (zh)
TW (1) TW428133B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748490B1 (en) * 2000-03-29 2004-06-08 Ati International Srl Method and apparatus for maintaining data coherency in a shared memory system
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6996679B2 (en) * 2003-04-28 2006-02-07 International Business Machines Corporation Cache allocation mechanism for saving multiple elected unworthy members via substitute victimization and imputed worthiness of multiple substitute victim members
US6993628B2 (en) * 2003-04-28 2006-01-31 International Business Machines Corporation Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member
US7484044B2 (en) 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
US7426612B2 (en) * 2004-06-30 2008-09-16 Intel Corporation Methods and apparatus for enforcing instruction-cache coherence
US20070094450A1 (en) * 2005-10-26 2007-04-26 International Business Machines Corporation Multi-level cache architecture having a selective victim cache
US7836257B2 (en) * 2007-12-19 2010-11-16 International Business Machines Corpation System and method for cache line replacement selection in a multiprocessor environment
US8055847B2 (en) * 2008-07-07 2011-11-08 International Business Machines Corporation Efficient processing of data requests with the aid of a region cache
DE112013007751B3 (de) * 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US9563562B2 (en) 2012-11-27 2017-02-07 Nvidia Corporation Page crossing prefetches
US9639471B2 (en) 2012-11-27 2017-05-02 Nvidia Corporation Prefetching according to attributes of access requests
US9824009B2 (en) * 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
CN104978283B (zh) * 2014-04-10 2018-06-05 华为技术有限公司 一种内存访问控制方法,及装置
US9852071B2 (en) 2014-10-20 2017-12-26 International Business Machines Corporation Granting exclusive cache access using locality cache coherency state
US10282296B2 (en) 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
KR20190086669A (ko) * 2016-12-12 2019-07-23 인텔 코포레이션 프로세서 아키텍처에 대한 장치들 및 방법들

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US5317716A (en) * 1988-08-16 1994-05-31 International Business Machines Corporation Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
CA2148186A1 (en) 1994-05-04 1995-11-05 Michael T. Jackson 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
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories
JP3132749B2 (ja) * 1994-12-05 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ・データ処理システム
US5809529A (en) * 1995-08-23 1998-09-15 International Business Machines Corporation Prefetching of committed instructions from a memory to an instruction cache
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US6199144B1 (en) * 1997-12-31 2001-03-06 Intel Corporation Method and apparatus for transferring data in a computer system

Also Published As

Publication number Publication date
EP0936552B1 (en) 2006-04-26
TW428133B (en) 2001-04-01
CA2260285A1 (en) 1999-08-17
DE69930983T2 (de) 2006-11-23
MY119935A (en) 2005-08-30
JPH11328024A (ja) 1999-11-30
KR19990072592A (ko) 1999-09-27
SG71192A1 (en) 2000-03-21
US6345339B1 (en) 2002-02-05
EP0936552A2 (en) 1999-08-18
JP3245125B2 (ja) 2002-01-07
EP0936552A3 (en) 1999-09-22
CN1231443A (zh) 1999-10-13
KR100320974B1 (ko) 2002-01-18
DE69930983D1 (de) 2006-06-01

Similar Documents

Publication Publication Date Title
CN1134735C (zh) 一种支持高速缓存一致性的高速缓存、数据处理系统及方法
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
US6460114B1 (en) Storing a flushed cache line in a memory buffer of a controller
US9477600B2 (en) Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6275909B1 (en) Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
JPH11272559A (ja) マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
CN1200365C (zh) 基于请求的同步总线操作
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US8473686B2 (en) Computer cache system with stratified replacement
US6950906B2 (en) System for and method of operating a cache
CN1127693C (zh) 保持指令、数据高速缓存之间相关性的方法和设备
CN100514311C (zh) 用于实现组合式数据/相关性高速缓存的方法和装置
US6349367B1 (en) Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6279086B1 (en) Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position
US6928522B2 (en) Unbalanced inclusive tags
US6338124B1 (en) Multiprocessor system bus with system controller explicitly updating snooper LRU information
US8271733B2 (en) Line allocation in multi-level hierarchical data stores
US6321305B1 (en) Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6249843B1 (en) Store instruction having horizontal memory hierarchy control bits

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