CN101008920A - 用于数据高速缓存的方法和系统 - Google Patents
用于数据高速缓存的方法和系统 Download PDFInfo
- Publication number
- CN101008920A CN101008920A CNA2007100018448A CN200710001844A CN101008920A CN 101008920 A CN101008920 A CN 101008920A CN A2007100018448 A CNA2007100018448 A CN A2007100018448A CN 200710001844 A CN200710001844 A CN 200710001844A CN 101008920 A CN101008920 A CN 101008920A
- Authority
- CN
- China
- Prior art keywords
- speed cache
- cache
- data
- processor
- row
- 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.)
- Pending
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
- 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
-
- 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
- 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/12—Replacement control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了这样的高速缓存技术,其中,在一个或多个处理器与主存储器之间,部分数据被存储在较慢的主存储器中并且被传送到较快的存储器。所述高速缓存是这样的,其中在修改或者占用位于给定高速缓存单元的数据之前或者当时,单个高速缓存系统必须与其它相关联的高速缓存系统进行通信,或者与这种高速缓存系统进行核对,以便确定它们是否包含给定高速缓存单元的拷贝。所述高速缓存还包括用于确定存储在特定存储单元中的数据何时可以被替换的措施。
Description
技术领域
本发明涉及高速缓存技术,其中,在一个或多个处理器与主存储器之间,部分数据被存储在较慢的主存储器中并且被传送到较快的存储器。系统是这样的,即:在修改或者占用位于给定高速缓存单元的数据之前或者当时,单个高速缓存系统必须通告其它高速缓存系统或者与其它高速缓存系统进行核对,所述其它高速缓存系统可能包含给定高速缓存单元的拷贝,并且所述系统包括用于确定存储在特定存储单元中的数据何时可以被替换的措施。
背景技术
在具有辅助的共享高速缓存、例如2级(L2)高速缓存的多处理器系统中,所述共享高速缓存保持下级高速缓存、例如1级(L1)高速缓存的实际辖区以外的行。这是二级高速缓存的价值所在;它包含所有下级高速缓存的扩展集。这降低了来自主存储器的通信量。
当处理器、例如处理器A请求一行以便存储时(“EX”或者专用请求),该行被安装于L1和L2高速缓存中以便专用于处理器A。当另一处理器、例如处理器B请求所述行时,如果所述行被保持为专用于处理器A,那么延长处理。
然而,如通常情况下那样,处理器A不再使用所述行,并且实际上,该行对于L1而言已经过时,而且只存在于L2中。尽管如此,该行仍被标记为专用于处理器A。由此,需要诸如交叉询问和交叉无效之类的额外处理来将此行从L1高速缓存中移除。
在此处所描述的很多情况下,此行不再存在于L1中。这样做不必要地延长了处理器B的取出请求,降低了性能。由此,存在加速此处理过程的需要。
发明内容
此处所描述的方法和系统提供了这样一种高速缓存技术,其中,在一个或多个处理器与主存储器之间,部分数据被存储在较慢的主存储器中并且被传送到较快的存储器。作为一般的原则,高速缓存是这样的,其中在修改或者占用位于给定高速缓存单元的数据之前或者当时,单个高速缓存系统必须与其它相关联的高速缓存系统进行通信,或者与这种高速缓存系统进行核对,以便确定它们是否包含给定高速缓存单元的拷贝。所述高速缓存还包括用于确定存储在特定存储单元中的数据何时可以被替换的措施。
作为背景技术,行必须存在于L1高速缓存中,以便供任何处理器使用。现在,当行存在于L1和L2中时,所述行的状态被认为在两个高速缓存中匹配。也就是说,所述行在两个级别中被同样地标记为专用、共享或修改。如果一行对于L1而言过时了,并且只驻留在L2中,那么该行不再由原来的处理器使用。新近使用的行已经替换了该行。然而,所述L2高速缓存以对该处理器而言“专用”的状态来继续保持该行。
当将要在L1高速缓存中替换该行时,此处所述的方法和系统改变L2高速缓存中的该行的状态。所述状态从专用于一个特定标识的处理器改变为不专用于任何处理器。由此,当专用的行在特定处理器中过时的时候,L2中的行状态将从专用于该特定标识的处理器改变为“不专用的”,并且对于任何L1高速缓存而言都不需要交叉询问或无效,由此改进了总体系统性能。
附图说明
图1举例说明了处理器和L1高速缓存、L2高速缓存和主存储器。
图2举例说明了包括具有L1高速缓存、共享的L2高速缓存和主存储器的两个处理器的系统。
图3举例说明了具有控制和数据线的高速缓存、中央处理单元和主存储器,以及示例性的高速缓存行中的有效块、地址块和数据块。
具体实施方式
提供了这样的高速缓存技术,其中,在一个或多个处理器与主存储器之间,部分数据被存储在较慢的主存储器中并且被传送到较快的存储器。高速缓存是这样的,其中在修改或者占用位于给定高速缓存单元的数据之前或者当时,单个高速缓存系统必须与其它相关联的高速缓存系统进行通信,或者与这种高速缓存系统进行核对,以便确定它们是否包含给定高速缓存单元的拷贝。所述高速缓存还包括用于确定存储在特定存储单元中的数据何时可以被替换的措施。
如此处所述的那样,当专用的行在L1高速缓存中过时的时候,所述L1向L2高速缓存发送信号,以表明所述行不再存在于L1高速缓存中。这样做使得L2高速缓存将被更新以便表明所述行被“驱逐”。也就是说,所有权从特定处理器改变为“无主的”。
作为背景技术,尽管在技术方面进行了改进,但是微处理器仍然比主存储器快得多。存储器存取时间越发成为总体应用程序性能的瓶颈。因此,应用程序可能会花费相当大量的时间等待数据。这样做不仅会给总体性能带来消极影响,而且应用程序也无法从处理器时钟速度提升中获得效益。
克服此问题的一种方式是在处理器和主存储器之间插入小型高速缓冲存储器。这种缓冲器通常被称为高速缓冲存储器,或者简称为高速缓存。图1中举例说明了这种缓冲器或高速缓存。
图1举例说明了包括处理器111和L1高速缓存113、L2高速缓存121和主存储器131的处理器系统101。在所述系统上运行的应用程序通过从高速缓存而不是主存储器中取出数据来充分利用此改进。由于对高速缓存的存取时间更短,所以应用程序的性能得以改进。当然,存储器和高速缓存之间还存在通信量,但是这是极小的。
所述系统101首先把处理器111所需的数据从主存储器131复制到L2高速缓存121中,然后从L2高速缓存121复制到L1高速缓存113中并且复制到处理器111中的寄存器(未示出)中。结果的存储沿相反方向进行。首先,系统把数据从处理器111复制到L1高速缓存113中,并且复制到L2高速缓存121。根据高速缓存体系结构的细节,所述数据然后被立即复制回到存储器131(直写),或者被延期(反写)。如果应用程序再次需要相同的数据,那么如果数据仍处于L1高速缓存113和L2高速缓存121中或者只存在于L2高速缓存121中,那么数据存取时间被显著地降低。为了进一步降低存储器传送的成本,把一个以上的单元载入高速缓存中。把传送单位称为高速缓存块或者高速缓存行。对单个数据单元的存取会把整行带入到高速缓存中。确保所述行包含所请求的单元。
等待时间和带宽是与高速缓存和存储器相关联的两个度量。它们都不是统一的,而是专用于存储器分级体系的特定组件。等待时间往往用处理器周期或者纳秒来表示,而带宽通常以每秒兆字节或者每秒千兆字节来给出。
实际上,存储器组件的等待时间被测量为用于取出传送单位(通常是高速缓存行)的第一部分所花费的时间。由于组件的速度取决于其在分级结构中的相对位置,所以等待时间不是统一的。根据经验,不妨说当从L1高速缓存113移动到L2高速缓存121然后再移动到主存储器131时,等待时间增加了。
某些存储器组件、例如L1高速缓存113可以物理地位于处理器111上。优点在于其速度将与处理器时钟成比例。因此,依照处理器时钟周期而不是纳秒来表示这种组件的等待时间是十分有意义的。
在某些微处理器上,作为L1高速缓存113的集成(芯片上)高速缓存并非始终以处理器速度运行。它们以作为处理器时钟的整数份额(1/2、1/3等)的时钟速率来操作。
处理器外部的高速缓存组件通常不会得益于处理器时钟提升,或者仅仅部分地得益于此。其等待时间往往依照纳秒来给出。主存储器等待时间几乎始终用纳秒表示。
带宽是存储器组件的渐近速度的测量值。此数反映出大批数据可以被移入和移出得有多快。正如同等待时间一样,带宽也是不统一的。通常,带宽减少,更多的数据离开处理器111。
如果取数据的步骤数目可以降低,那么等待时间可以得以降低。
图2举例说明了包括具有L1高速缓存213a、213b、共享的L2高速缓存221和主存储器231的两个处理器211a、211b的系统201。数据线241和控制线251执行其正常的功能。就图2而言,当专用的行在L1高速缓存213a或者213b中过时的时候,L1高速缓存213a或者213b向L2高速缓存221发送信号,以表明所述行不再存在于L1高速缓存213a或者213b中。这样做使得L2高速缓存221将被更新以便表明所述行被“驱逐”。也就是说,所有权从特定处理器改变为“无主的”。
图3举例说明了系统301的组件,包括L1高速缓存313、处理器单元311、L2高速缓存321、写缓冲器、主存储器331和MUX333,具有控制和数据线,以及示例性的高速缓存行中的有效块323、地址块325和数据块327。
当专用的行在L1高速缓存313中过时的时候,所述L1高速缓存313向L2高速缓存321发送信号,以表明所述行不再存在于L1高速缓存313中。这样做使得L2高速缓存321将被更新以便表明所述行被“驱逐”。也就是说,所有权从特定处理器改变为“无主的”。
考虑图3中所示的高速缓存。处理器311向L2高速缓存321提供物理地址以便标记比较。到达L2高速缓存321中的地址具有两个字段,块地址和偏移地址,其中所述块地址包括高速缓存索引的地址标记和指示,以及控制数据。
所述高速缓存索引选择待测试的标记,以便查看所期望的块是否处于高速缓存中。下一步是索引选择。在直接映射的情况下,与读取和检查标记相并行地读取所述数据并且将其发送至处理器311。
在从高速缓存321中读取标记之后,将其与来自处理器311的块地址的标记部分进行比较。为了确保所述标记和数据行都包含有效信息,必须读取并且验证有效性数据(作为“无主”的专用于处理器)。如果高速缓存数据是有效的,那么发信号通知处理器311以便加载来自L2高速缓存321的数据。
在写操作的情况下,还把数据写入到写缓冲器,以便写入到主存储器。
在高速缓存未命中的情况下,L1高速缓存313向处理器311发送停止信号,并且发送读取信号到L2高速缓存321然后到主存储器331。从主存储器中进行读取替换了高速缓存中的行,例如通常最近最少使用的行,其中包括数据、标记和有效性信息。
依照本发明的方法和系统,当专用的行在L1高速缓存中过时,并且L1高速缓存向L2高速缓存发送信号时,这表明所述行不再存在于L1高速缓存中,由此使得L2高速缓存被更新以便表明该行被“驱逐”。也就是说,所有权从特定处理器改变为“无主的”。
参见图2,通过降低并且在某些情况下甚至消除交叉询问处理,改进了性能。消除交叉询问处理避免了向L1高速缓存213a或者213b发送对于因L1替换或过时替换而不再存在于L1高速缓存213a或者213b中的行的交叉询问。然后当另一处理器请求该行时,缩短了等待时间,并且避免了在另一L1高速缓存处进行徒劳的目录查找。
另外,消除交叉询问处理可避免向L1高速缓存213a或者213b发送对于L2高速缓存221中将被替换的行的交叉无效。通常,当行在L2高速缓存221中过时的时候,该行在L1高速缓存213a或者213b中也必须被无效。这样做维护了L1高速缓存213a或者213b与L2高速缓存221之间的子集规则。这两个无效中断了L1高速缓存213a或者213b处的正常处理。如果所述行不再存在于L1高速缓存213a或者213b中,那么这种中断是不必要的,并且会给性能带来消极影响。
虽然已经就专用的行描述了方法与系统,但是应该理解的是,当为L1高速缓存213a或者213b中过时的共享行而更新L2高速缓存目录221时,此处所述的方法和系统还避免了对共享行的交叉询问和交叉无效。
如果L1共享高速缓存实现方式为每个处理器维护一个独立的位以便标识哪些L1高速缓存“保持该行”,那么每当行在L1高速缓存213a或者213b中过时的时候,L2高速缓存221中的各个“CP保持该行”的位可以被重置。交叉询问和交叉无效可以只对其“CP保持行”位有效的CP来执行。如果所有位都是无效的,那么所有交叉询问和交叉无效都可得以避免。以这种方式,L2高速缓存221的过时替换避免了对L1高速缓存213a或者213b的不必要的交叉无效。通过避免L1高速缓存213a或者213b处的不必要的中断,也改进了性能。
本发明的其它方面是一种包括计算机可读程序代码的程序产品,所述程序代码用于配置并且控制计算机系统。所述计算机系统包括多个微处理器,其中每一微处理器均具有相关联的L1高速缓存213a或者213b、与L1高速缓存213a和213b相关联的L2高速缓存221、以及主存储器231。所述程序产品使得高速缓存存储用于传送至处理器和主存储器以及从中传送的部分数据,并且还进一步在从中读取数据、向其读入数据或者修改高速缓存数据之前或当时,使得与其它相关联的高速缓存进行通信的单个高速缓存与所述其它高速缓存进行核对,以确定它们是否包含给定高速缓存单元的拷贝。所述计算机代码还确定存储在特定高速缓冲存储单元中的数据何时可以被替换。
具体来讲,当所述行在L1高速缓存中将要被替换时,计算机代码向L2高速缓存中所述行的状态写入改变,并且还把所述行的状态从专用于特定标识的处理器改变为不专用于任何处理器。
虽然已经参照某些优选实施例和示范描述了本发明,但是这不意味着由此来限制本发明的范围,本发明的范围仅仅由所附权利要求书来限定。
Claims (9)
1.一种数据高速缓存方法,包括:在一个或多个处理器和主存储器之间,在较慢的主存储器中存储部分数据以便向/从更快的存储器传送,还包括:在从中读取数据、向其读入数据或者修改被高速缓存的数据之前,单个高速缓存与其它相关联的高速缓存进行通信以便检查所述高速缓存,由此确定它们是否包含给定高速缓存单元的拷贝,并且确定存储在特定高速缓存单元中的数据何时可以被替换。
2.如权利要求1所述的数据高速缓存方法,包括:当行在L1高速缓存中将要被替换时,向L2高速缓存中的行的状态写入改变。
3.如权利要求2所述的数据高速缓存方法,包括:把所述行的状态从专用于特定标识的处理器改变为不专用于任何处理器。
4.一种包括多个微处理器的计算机系统,每一微处理器均具有相关联的L1高速缓存、与L1高速缓存相关联的L2高速缓存、和主存储器,所述高速缓存存储用于向/从处理器和主存储器传送的部分数据,还包括:在从中读取数据、向其读入数据或修改被高速缓存的数据之前,单个高速缓存与其它相关联的高速缓存进行通信以便检查所述高速缓存,由此确定它们是否包含给定高速缓存单元的拷贝,并且确定存储在特定高速缓存单元中的数据何时可以被替换。
5.如权利要求4所述的计算机系统,适合于当行在L1高速缓存中将要被替换时,向L2高速缓存中的行的状态写入改变。
6.如权利要求5所述的计算机系统,适合于把所述行的状态从专用于特定标识的处理器改变为不专用于任何处理器。
7.一种包括计算机可读程序代码的程序产品,所述程序代码用于配置并控制计算机系统,所述计算机系统包括多个微处理器,每一微处理器均具有相关联的L1高速缓存、与L1高速缓存相关联的L2高速缓存、和主存储器,所述程序产品使得所述高速缓存存储用于向/从处理器和主存储器传送的部分数据,并且进一步使得在从中读取数据、向其读入数据或修改被高速缓存的数据之前,与其它相关联的高速缓存进行通信的单个高速缓存检查所述高速缓存,由此确定它们是否包含给定高速缓存单元的拷贝,并且确定存储在特定高速缓存单元中的数据何时可以被替换。
8.如权利要求7所述的程序产品,进一步包含计算机代码,用于当行在L1高速缓存中将要被替换时,向L2高速缓存中的行的状态写入改变。
9.如权利要求8所述的程序产品,进一步包含计算机代码,用于把所述行的状态从专用于特定标识的处理器改变为不专用于任何处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/339,196 | 2006-01-25 | ||
US11/339,196 US7577795B2 (en) | 2006-01-25 | 2006-01-25 | Disowning cache entries on aging out of the entry |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101008920A true CN101008920A (zh) | 2007-08-01 |
Family
ID=38286941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100018448A Pending CN101008920A (zh) | 2006-01-25 | 2007-01-05 | 用于数据高速缓存的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7577795B2 (zh) |
JP (1) | JP5063104B2 (zh) |
CN (1) | CN101008920A (zh) |
TW (1) | TWI383295B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645034B (zh) * | 2008-08-05 | 2013-07-24 | 英特尔公司 | 用于检测数据存取违例的方法和装置 |
CN103348333A (zh) * | 2011-12-23 | 2013-10-09 | 英特尔公司 | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966453B2 (en) | 2007-12-12 | 2011-06-21 | International Business Machines Corporation | Method and apparatus for active software disown of cache line's exlusive rights |
US9075732B2 (en) * | 2010-06-15 | 2015-07-07 | International Business Machines Corporation | Data caching method |
US8516200B2 (en) | 2010-09-07 | 2013-08-20 | International Business Machines Corporation | Avoiding cross-interrogates in a streaming data optimized L1 cache |
US8635412B1 (en) * | 2010-09-09 | 2014-01-21 | Western Digital Technologies, Inc. | Inter-processor communication |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9075720B2 (en) | 2010-10-04 | 2015-07-07 | International Business Machines Corporation | Locking a cache line for write operations on a bus |
US9785552B2 (en) * | 2015-01-14 | 2017-10-10 | Kabushiki Kaisha Toshiba | Computer system including virtual memory or cache |
US10210087B1 (en) * | 2015-03-31 | 2019-02-19 | EMC IP Holding Company LLC | Reducing index operations in a cache |
US9952973B2 (en) | 2015-10-29 | 2018-04-24 | Western Digital Technologies, Inc. | Reducing write-backs to memory by controlling the age of cache lines in lower level cache |
US10248563B2 (en) | 2017-06-27 | 2019-04-02 | International Business Machines Corporation | Efficient cache memory having an expiration timer |
US10528482B2 (en) | 2018-06-04 | 2020-01-07 | International Business Machines Corporation | Cache management |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265232A (en) * | 1991-04-03 | 1993-11-23 | International Business Machines Corporation | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data |
US6745292B1 (en) * | 1995-12-08 | 2004-06-01 | Ncr Corporation | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors |
US5926830A (en) * | 1996-10-07 | 1999-07-20 | International Business Machines Corporation | Data processing system and method for maintaining coherency between high and low level caches using inclusive states |
US5963978A (en) * | 1996-10-07 | 1999-10-05 | International Business Machines Corporation | High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators |
US5809526A (en) * | 1996-10-28 | 1998-09-15 | International Business Machines Corporation | 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 |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
US6269425B1 (en) * | 1998-08-20 | 2001-07-31 | International Business Machines Corporation | Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system |
US6360301B1 (en) * | 1999-04-13 | 2002-03-19 | Hewlett-Packard Company | Coherency protocol for computer cache |
US6405322B1 (en) * | 1999-04-13 | 2002-06-11 | Hewlett-Packard Company | System and method for recovery from address errors |
US6557084B2 (en) * | 1999-07-13 | 2003-04-29 | International Business Machines Corporation | Apparatus and method to improve performance of reads from and writes to shared memory locations |
JP2001034533A (ja) | 1999-07-21 | 2001-02-09 | Nec Kofu Ltd | キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法 |
US6532520B1 (en) * | 1999-09-10 | 2003-03-11 | International Business Machines Corporation | Method and apparatus for allocating data and instructions within a shared cache |
US6574710B1 (en) * | 2000-07-31 | 2003-06-03 | Hewlett-Packard Development Company, L.P. | Computer cache system with deferred invalidation |
JP2002055881A (ja) * | 2000-08-08 | 2002-02-20 | Hitachi Ltd | キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置 |
US6851024B1 (en) * | 2000-08-17 | 2005-02-01 | Hewlett-Packard Development Company, L.P. | Exclusive caching in computer systems |
US6640289B2 (en) | 2000-11-15 | 2003-10-28 | Unisys Corporation | Software controlled cache line ownership affinity enhancements in a multiprocessor environment |
US6738870B2 (en) | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | High speed remote storage controller |
US6738871B2 (en) | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | Method for deadlock avoidance in a cluster environment |
US6715040B2 (en) * | 2001-01-05 | 2004-03-30 | Nec Electronics, Inc. | Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit |
US6662275B2 (en) * | 2001-02-12 | 2003-12-09 | International Business Machines Corporation | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache |
US6658539B2 (en) * | 2001-10-16 | 2003-12-02 | International Business Machines Corporation | Super-coherent data mechanisms for shared caches in a multiprocessing system |
US7177853B1 (en) * | 2002-02-21 | 2007-02-13 | Emc Corporation | Cache management via statistically adjusted time stamp queue |
US6826654B2 (en) * | 2002-08-08 | 2004-11-30 | International Business Machines Corporation | Cache invalidation bus for a highly scalable shared cache memory hierarchy |
US6868485B1 (en) * | 2002-09-27 | 2005-03-15 | Advanced Micro Devices, Inc. | Computer system with integrated directory and processor cache |
US6981106B1 (en) * | 2002-11-26 | 2005-12-27 | Unisys Corporation | System and method for accelerating ownership within a directory-based memory system |
US7039765B1 (en) * | 2002-12-19 | 2006-05-02 | Hewlett-Packard Development Company, L.P. | Techniques for cache memory management using read and write operations |
US6990560B2 (en) * | 2003-01-16 | 2006-01-24 | International Business Machines Corporation | Task synchronization mechanism and method |
US7484044B2 (en) * | 2003-09-12 | 2009-01-27 | Intel Corporation | Method and apparatus for joint cache coherency states in multi-interface caches |
US7284097B2 (en) | 2003-09-30 | 2007-10-16 | International Business Machines Corporation | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes |
US20050289323A1 (en) * | 2004-05-19 | 2005-12-29 | Kar-Lik Wong | Barrel shifter for a microprocessor |
US7350059B2 (en) * | 2004-05-21 | 2008-03-25 | Via Technologies, Inc. | Managing stack transfers in a register-based processor |
-
2006
- 2006-01-25 US US11/339,196 patent/US7577795B2/en not_active Expired - Fee Related
- 2006-12-22 JP JP2006346754A patent/JP5063104B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-05 CN CNA2007100018448A patent/CN101008920A/zh active Pending
- 2007-01-05 TW TW096100412A patent/TWI383295B/zh not_active IP Right Cessation
-
2009
- 2009-05-05 US US12/435,468 patent/US8131945B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645034B (zh) * | 2008-08-05 | 2013-07-24 | 英特尔公司 | 用于检测数据存取违例的方法和装置 |
CN103348333A (zh) * | 2011-12-23 | 2013-10-09 | 英特尔公司 | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 |
US9411728B2 (en) | 2011-12-23 | 2016-08-09 | Intel Corporation | Methods and apparatus for efficient communication between caches in hierarchical caching design |
CN103348333B (zh) * | 2011-12-23 | 2017-03-29 | 英特尔公司 | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20100030965A1 (en) | 2010-02-04 |
TW200813714A (en) | 2008-03-16 |
JP2007200292A (ja) | 2007-08-09 |
US8131945B2 (en) | 2012-03-06 |
TWI383295B (zh) | 2013-01-21 |
JP5063104B2 (ja) | 2012-10-31 |
US20070174554A1 (en) | 2007-07-26 |
US7577795B2 (en) | 2009-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101008920A (zh) | 用于数据高速缓存的方法和系统 | |
KR100252570B1 (ko) | 축소된요구블로킹을갖는캐시메모리 | |
US8370585B2 (en) | Data processing system and cache control method | |
US5113514A (en) | System bus for multiprocessor computer system | |
CA1322058C (en) | Multi-processor computer systems having shared memory and private cache memories | |
TW591384B (en) | Method and system for speculatively invalidating lines in a cache | |
EP0404369B1 (en) | A method for maintaining cache coherence in a multiprocessor computer system | |
US7644221B1 (en) | System interface unit | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US8176261B2 (en) | Information processing apparatus and data transfer method | |
CN101410797A (zh) | 无序处理器中的事务存储器 | |
US7783840B2 (en) | Method and apparatus for controlling memory system | |
US10949292B1 (en) | Memory interface having data signal path and tag signal path | |
US5987544A (en) | System interface protocol with optional module cache | |
JPH0532775B2 (zh) | ||
KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
US6862646B2 (en) | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain | |
JP3732397B2 (ja) | キャッシュシステム | |
CN115686769A (zh) | 根据cxl协议处理一致存储器事务的系统、装置和方法 | |
US20060041706A1 (en) | Apparatus And Related Method For Maintaining Read Caching Data of South Bridge With North Bridge | |
US9436613B2 (en) | Central processing unit, method for controlling central processing unit, and information processing apparatus | |
US20190034200A1 (en) | Information processing device and information processing method | |
US5907853A (en) | Method and apparatus for maintaining duplicate cache tags with selectable width | |
JP3340047B2 (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070801 |