CN104364776B - 使用缓存缺失请求提供缓存替换通知 - Google Patents
使用缓存缺失请求提供缓存替换通知 Download PDFInfo
- Publication number
- CN104364776B CN104364776B CN201380030971.4A CN201380030971A CN104364776B CN 104364776 B CN104364776 B CN 104364776B CN 201380030971 A CN201380030971 A CN 201380030971A CN 104364776 B CN104364776 B CN 104364776B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- buffer memory
- cache
- information
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims abstract description 285
- 239000000872 buffer Substances 0.000 claims abstract description 158
- 238000013507 mapping Methods 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 22
- 238000000151 deposition Methods 0.000 claims description 3
- 230000003111 delayed effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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/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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
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
相关申请案的交叉参考
本发明要求2013年4月23日由Yolin Lih递交的发明名称为“使用缓存缺失请求提供缓存替换通知(Providing Cache Replacement Notice using a Cache Missrequest)”的第13/868281号美国非临时专利申请案的在先申请优先权,所述申请案要求2012年6月15日由Yolin Lih递交的发明名称为“用于缓存替换通知的方法(A Method forCache Replacement Notice)”的第61/660086号美国临时专利申请案的在先申请优先权,这两个在先申请的内容以引用的方式并入本文本中,如全文再现一般。
关于由联邦政府赞助
研究或开发的声明
不适用。
参考缩微胶片附录
不适用。
背景技术
计算系统可使用缓存存储器来改善计算性能。例如,计算系统可将其需频繁访问的数据存储在容量较小但速度较快的缓存存储器中,而不是将数据存储在容量较大但速度较慢的存储器(例如,主存储单元)中。因此,计算系统能够更快速地访问数据,这样可以减少存储器访问的时延。此外,一些计算系统可包括多级缓存存储器以进一步改善性能。
在具有多级缓存存储器的计算系统中,计算系统首先尝试从低级缓存存储器开始读取或写入数据。如果低级缓存存储器中不存在数据,低级缓存存储器将向下一较高级的缓存存储器发送缓存缺失请求以获取数据。高级缓存存储器将使用来自其自身存储器的数据来实现缓存缺失请求,或从更高级的缓存存储器或主存储器获取数据,然后实现缓存缺失请求。
有时,当缓存存储器需要存储新数据时,缓存存储器需具有可用的空余存储空间以容纳新数据。然而,缓存存储器通常不具有可用的空余存储空间,因此需要通过将先前存储的数据从存储器中移除来创建空间。当这种情况发生时,缓存存储器向下一较高级的缓存存储器发送缓存替换通知消息。缓存替换通知消息可包括被移除数据的完整线地址和其它信息,包括但不限于源和/或目的地信息、纠错信息等。高级缓存存储器使用缓存替换通知消息来更新其目录信息,这样高级缓存存储器知晓哪些数据存储在低级缓存存储器中。
发明内容
在一项实施例中,本发明包括具有接口和处理器的计算设备。所述接口用于接收来自缓存存储器的缓存缺失请求。所述处理器耦合到所述接口并用于至少部分基于从所述缓存缺失请求中获取的信息识别从所述缓存存储器中移除的数据。
在另一项实施例中,本发明包括具有存储器、第一接口、处理器和第二接口的计算设备。所述存储器用于存储缓存数据。所述第一接口用于接收缓存请求。所述处理器耦合到所述第一接口并用于当确定所述缓存请求中标识的所述数据未存储在所述存储器中时,生成缓存缺失请求。所述第二接口耦合到所述处理器并用于将所述缓存缺失请求发送到缓存存储器。所述缓存缺失请求可选地包括在所述缓存缺失请求中标识的所述数据的指示和从所述存储器中移除的一部分所述缓存数据的指示。
在又一项实施例中,本发明包括用于提供缓存替换通知的方法。存储关于缓存存储器中存储的数据的目录信息,并且从所述缓存存储器接收缓存缺失请求。至少部分基于所述缓存缺失请求中包含的信息更新所述目录信息。
结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其它特征。
附图说明
为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的简要描述,其中相同参考标号表示相同部分。
图1是使用缓存缺失请求来提供缓存替换通知的计算环境的示意图。
图2是用于从低级缓存存储器角度而言使用缓存缺失请求来提供缓存替换通知的方法的流程图。
图3是用于从高级缓存存储器角度而言使用缓存缺失请求来提供缓存替换通知的方法的流程图。
图4是相联缓存映射方案的示意图。
图5是直接缓存映射方案的示意图。
具体实施方式
最初应理解,尽管下文提供一个或多个实施例的说明性实施方案,但可使用任意数目的当前已知或现有的技术来实施所公开的系统和/或方法。本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包含本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书的范围以及其均等物的完整范围内修改。虽然已经论述了传统技术的某些方面以帮助理解本发明,但是申请人没有办法否认这些技术方面,并且预计本发明可包含一个或多个本文所述的传统技术方面。
本发明的实施例包括用于使用缓存缺失请求来提供缓存替换通知的方法和装置。在某些情况下,缓存替换通知信息(例如,缓存替换属性)被附加到缓存缺失请求中,并且仅将该请求发送到高级缓存存储器,而不是分别发送缓存替换通知和缓存缺失请求。例如,如果低级缓存存储器已满并且接收对其不具有的数据的请求,低级缓存存储器将向高级缓存存储器发送附加有缓存替换通知信息的缓存缺失请求。高级缓存存储器可以使用缓存缺失请求来识别需要发送到低级缓存存储器的数据以及识别将从低级缓存存储器中移除的数据。因此,低级缓存存储器无需发送缓存替换通知和缓存缺失请求,高级缓存存储器也无需接收缓存替换通知和缓存缺失请求。这样可以用于减少低级和高级缓存存储器之间交换的消息的数目。这样还可以用于降低带宽要求,减少消息时延、传出带宽污染、队列空间污染和阻塞时延污染。实施例另外的特征和优点将在下文论述并在附图中示出。
图1是使用缓存缺失请求来提供缓存替换通知的计算环境100的示意图。然而,实施例不限于任意特定环境并且可以在不同于图1所示的具体示例的环境中实施。
计算环境100包括一个或多个数据请求者120、低级缓存存储器140、高级缓存存储器160和附加存储设备180。数据请求者120可以包括任意类型的可能需要使用缓存存储器的计算设备或不同类型的可能需要使用缓存存储器的计算设备的组合。例如,数据请求者120可以包括独立计算设备,包括但不限于:个人电脑、笔记本电脑、平板电脑、智能手机、服务器等。数据请求者120还可以包括大型计算设备的部件,包括但不限于:中央处理器或多核中央处理器的一个核。
低级缓存存储器140和高级缓存存取160可以包括任意类型的存储器存储设备或存储器存储设备类型的组合。例如,低级缓存存储器140和高级缓存存储器160可以包括集成的片上缓存存储器(例如,在与处理器相同的芯片内集成的一级、二级、三级等缓存存储器)、单独的计算机芯片、磁存储设备、光存储设备或任意其它类型的存储器存储设备。
低级缓存存储器140可选地包括第一通信接口142、第二通信接口144、存储单元146和处理单元148。低级缓存存储器140使用第一通信接口142向数据请求者120发送数据并接收来自数据请求者120的数据。例如,低级缓存存储器140可以通过接口142从一个数据请求者120接收缓存请求,并且低级缓存存储器140可以通过接口142将对该请求的响应(例如,含有所请求的数据的响应)发回给数据请求者120。
低级缓存存储器140使用第二通信接口144向高级缓存存储器160发送数据并接收来自高级缓存存储器160的数据。例如,如果低级缓存存储器140不具有实现来自一个请求者120的缓存请求所需的数据时,那么低级缓存存储器140可以通过接口144向高级缓存存储器160发送缓存缺失请求。低级缓存存储器140随后可通过接口144从高级缓存存储器160接收对该缓存缺失请求的响应。另外,应注意,可以使用任意类型的通信接口或通信接口类型的组合来实施低级缓存存储器的第一通信接口142、低级缓存存储器的第二通信接口144和本申请案所描述的其它通信接口。例如,可以使用一个或多个端口(例如,端口1至N,其中N等于任意数字)或任意其它类型的通信接口来实施各通信接口。
存储单元146可包括缓存信息150和缓存管理策略152。在一项实施例中,缓存信息150包括来自主存储单元的数据,并且该数据作为缓存线存储在缓存信息150中。每个缓存线包括数据块,数据块包含来自主存储单元的数据、含有所述数据在主存储单元中的地址的标签和一个或多个状态位。状态位可以用于指示缓存线的特定状态。例如,缓存线可以标记为干净(clean)或脏(dirty)。当缓存线为干净时,数据块中的数据从主存储单元读取之后未被更改。当缓存线为脏时,数据块中的数据从主存储单元读取之后已被更改。
缓存管理策略152可以包括管理低级缓存存储器140的操作所需的任意数据、指令、算法等。在一项实施例中,缓存管理策略152包括替换策略和写入策略。当低级缓存存储器140需要为新数据腾出可用空间时,替换策略提供低级缓存存储器140将如何决定移除或淘汰(evict)哪些缓存信息150的指令。可使用的替换策略的一些示例包括先入先出(FIFO)替换策略和最近最少使用(LRU)替换策略。写入策略提供低级缓存存储器140如何将来自其缓存信息150的信息写入主存储单元的指令。写入策略的一些示例包括透写(write-through)策略和回写(write-back)策略。然而,实施例不限于任意特定类型的缓存管理策略、替换策略和写入策略,并且实施例可以使用任意缓存管理策略、替换策略和写入策略。
处理单元148可选地进行操作低级缓存存储器140所需的任意处理、逻辑操作、计算等。例如,处理单元148可以接收来自接口142、接口144和/或存储单元146的数据,根据存储在存储单元146中的指令(例如,存储在缓存管理策略152中的指令)处理数据,并提供结果作为输出。
高级缓存存储器160可选地包括第一通信接口162、第二通信接口164、存储单元166和处理单元168。高级缓存存储器160使用第一通信接口162向低级缓存存储器140发送数据并接收来自低级缓存存储器140的数据。例如,高级缓存存储器160可以通过接口162接收来自低级缓存存储器140的缓存缺失请求并且可以通过接口162对低级缓存存储器140的缓存缺失请求作出响应(例如,通过发送所请求的数据)。
高级缓存存储器160使用第二通信接口164向附加存储设备180发送数据并接收来自附加存储设备180的数据。附加存储设备180可以包括以通信方式耦合到高级缓存存储器160的任意类型的存储设备或存储设备类型的组合。例如,附加存储设备180可包括更高级的缓存存储器(例如,三级缓存、四级缓存等)、主存储单元、磁存储设备、光存储设备、独立计算设备等。高级缓存存储器160可以使用第二通信接口164向附加存储设备180发送缓存缺失请求以回写数据或与附加存储设备180进行任何其它必需的数据交换。
存储单元166可包括缓存信息170、目录信息172、缓存管理策略174,以及低级缓存算法和/或结构信息176。缓存信息170可以包括来自主存储单元的数据。类似于低级缓存存储器140中的缓存信息150,缓存信息170可以包括作为缓存线存储的数据,缓存线具有数据块、标签和一个或多个状态位。在实施例中,高级缓存存储器160可用于缓存信息170的存储量比低级缓存存储器140可用于缓存信息150的要大。因此,高级缓存存储器160能够向低级缓存存储器140提供存储器140没有容量存储的数据。此外,高级缓存存储器160的读取和/或写入时间可比低级缓存存储器140更慢。然而,实施例不限于任意特定配置的大小和/或相对速度,并且低级缓存存储器140和高级缓存存储器160均可具有任意容量大小和/或速度。
目录信息172可选地存储关于哪些数据(例如,哪些主存储器数据、哪些标签等)存储在低级缓存存储器140中的信息。在实施例中,当高级缓存存储器160接收来自低级缓存存储器140的缓存缺失请求时,缓存缺失请求包括其包含的缓存替换通知信息(例如,缓存替换属性)。高级缓存存储器160能够使用缓存缺失请求中的缓存替换通知信息来更新目录信息172,使得高级缓存存储器160能够及时更新低级缓存存储器140的内容,而无需接收单独的缓存替换通知消息。
缓存管理策略174可包括与低级缓存存储器140中的缓存管理策略152类似的缓存管理策略信息。例如,缓存管理策略174可以包括管理高级缓存存储器160的操作所需的任意数据、指令、算法等,包括但不限于:替换策略和写入策略。高级缓存存储器160的策略可以与低级缓存存储器140的策略相同或类似。然而,缓存管理策略174不限于任意特定类型的缓存管理策略、替换策略和写入策略,并且实施例可以使用任意缓存管理策略、替换策略和写入策略。
低级缓存算法和/或结构信息176可包括关于低级缓存存储器140使用的算法的信息(例如,关于缓存管理策略152的信息)和/或关于低级缓存存储器140的结构和组织的信息。例如,关于低级缓存存储器140的结构和组织的信息可包括关于低级缓存存储器140使用的相联方案(associativity scheme)的信息(例如,N路相联、直接映射、预测执行、扭斜相联、伪相联等)。在一些实施例中,高级缓存存储器160可以单独使用其低级缓存算法和/或结构信息176中的信息或结合来自缓存缺失请求的信息来更新其目录信息172。例如,如果低级缓存存储器140使用直接映射方案,那么每条数据(例如,每个缓存线)可以只存储到低级缓存存储器140中的一个位置。因此,高级缓存存储器160无需来自低级缓存存储器140的任何缓存替换通知信息以确定任意新请求的数据将存储在何处。新请求的数据只可存储至一个位置。因此,高级缓存存储器160将了解先前存储在该位置处的数据被淘汰并替换为新请求的数据。高级缓存存储器160随后可以相应地更新其目录信息172。在一项示例中,低级缓存存储器140使用N路相联映射,高级缓存存储器160在其信息176中存储N路相联映射的指示。在这种情况下,低级缓存存储器140可包括关于N路中的哪一路具有被淘汰的数据的指示。随后,基于缓存缺失请求中请求的数据、缓存缺失请求中标识的路数和目录信息172,高级缓存存储器160能够确定哪些数据被淘汰以及新请求的数据将存储在何处。鉴于上述情况,应强调的是,至少在某些实施例中,高级缓存存储器160能够在不接收关于哪些低级缓存数据被淘汰的任意信息的情况下更新其目录信息172,或者在仅接收被淘汰的缓存数据中的部分信息(例如,路标识符)的情况下更新其目录信息172。因此,至少一些实施例不需要使用单独的缓存替换通知消息来更新高级缓存存储器160的目录信息172。
最后参照图1,高级缓存存储器160的处理单元168可选地进行操作高级缓存存储器160所需的任意处理、逻辑操作、计算等。例如,处理单元168可以接收来自接口162、接口164和/或存储单元166的数据,根据存储在存储单元166中的指令处理数据,并提供结果作为输出。在一项示例中,高级缓存存储器160使用其处理单元168来确定从低级缓存存储器140中淘汰了哪些缓存并使用该信息来更新其存储器166中的目录信息172。
图2是用于从低级缓存存储器角度而言使用缓存缺失请求来提供缓存替换通知的方法的流程图。在方框202处,接收缓存请求。例如,在低级缓存存储器为一级缓存的实施例中,一级缓存可以接收来自例如中央处理器或中央处理器的一个核的缓存请求。在方框204处,确定缓存请求中标识的数据是否存在于低级缓存存储器中。如果数据存在于低级缓存存储器中,那么存在缓存命中,并且方法继续到方框206,在方框206处,低级缓存存储器处理缓存请求(例如,读取或写入缓存请求所指定的数据)。如果数据不存在于低级缓存存储器中,那么存在缓存缺失,并且方法继续到方框208,在方框208处,确定是否存在任何可用的缓存存储器(例如,未存储数据的缓存存储器)。如果存在可用的缓存存储器,那么方法继续到方框212,在方框212处,低级缓存存储器向高级缓存存储器发送缓存缺失请求。缓存缺失请求包括缓存请求所指定的数据的指示。缓存缺失请求还可包括在方框208处确定的可用缓存存储位置的指示。这可以由高级缓存存储器使用来更新关于新请求的数据将存储在何处的目录信息。
如果在方框208处不存在可用的缓存存储器,那么低级缓存存储器需要为新请求的数据腾出一些可用存储空间。在方框210处,低级缓存存储器通过进行干净缓存淘汰或脏缓存线回写来实现腾出存储空间。在低级缓存存储器已为新请求的数据腾出一些存储空间之后,方法继续到方框212,在方框212处,低级缓存存储器向高级缓存存储器发送缓存缺失请求。在一项实施例中,缓存缺失请求不包括新请求的数据将存储在低级缓存存储器中的位置的任意指示。例如,在低级缓存存储器使用直接映射方案的情况下,高级缓存存储器能够基于所请求的数据并基于高级缓存存储器存储的有关低级缓存存储器的信息(例如,关于低级缓存存储器实施的算法、策略、结构等)确定低级缓存存储器将新请求的数据存储在何处。在另一实施例中,缓存缺失请求不包括新请求的数据将存储在低级缓存存储器中的位置的指示。新请求的数据将存储在低级缓存存储器中的位置的指示可仅包括一小部分数据。例如,如果低级缓存存储器使用N路相联映射方案,那么该指示可包括新请求的数据将存储在哪一路的路标识符。例如,如果低级缓存存储器使用4路相联映射方案,那么缓存缺失请求可包括路-1、路-2、路-3、路-4等路标识符。因此,缓存缺失请求可不包括标识所请求的数据存储在何处的信息,或者可仅包括所请求的数据将存储在何处的部分信息。高级缓存存储器仍然能够基于所请求的数据并基于其存储的关于低级缓存存储器的信息确定将数据存储在何处。然而,在又一项实施例中,缓存缺失请求可包括新请求的数据将存储在何处的完整地址或位置信息。对于通过减少低级和高级缓存存储器之间交换的消息的数目并减少消息间的时延在单独的消息中发送缓存缺失请求和缓存替换通知的其它系统而言,该实施例仍然有利。
图3是用于从高级缓存存储器角度而言使用缓存缺失请求来提供缓存替换通知的方法的流程图。在方框302处,高级缓存存储器接收来自低级缓存存储器的缓存缺失请求。如上所述,缓存缺失请求包括正在请求哪些数据的指示。缓存缺失请求可不包括低级缓存存储器将数据存储在何处的指示,可包括低级缓存存储器将数据存储在何处的部分指示(例如,路标识符或其它缓存替换属性),或可包括低级缓存存储器将数据存储在何处的完整指示。在方框304处,高级缓存存储器获取关于低级缓存存储器的信息(例如,策略信息、算法信息、结构信息、组织方案等)。该信息可存储在如图1所示的高级缓存存储器内并在本地检索,或者该信息可从远程源获取。在方框306处,高级缓存存储器确定低级缓存存储器将数据存储在何处。在缓存缺失请求不包括将数据存储在何处的指示时,高级缓存存储器仅基于在方框302处请求了哪些数据的指示并基于关于在方框304处低级缓存存储器获取的信息确定位置。在缓存缺失请求包括将数据存储在何处的部分信息(例如,路标识符或其它缓存替换属性)时,高级缓存存储器基于缓存缺失请求中的部分位置信息、基于在缓存缺失请求中请求了哪些数据并基于在方框304处获取的低级缓存存储器信息确定位置。在缓存缺失请求包括关于将数据存储在何处的完整信息(例如,完整的存储位置地址)时,高级缓存存储器可以可选地跳过方框304并仅基于缓存缺失请求中的信息确定将数据存储在何处。
在方框308处,高级缓存存储器更新关于哪些数据将存储在低级缓存存储器中的目录信息。例如,如果目录信息指示在方框306处确定的位置处已存储了任意其它数据,那么高级缓存存储器可以确定从低级缓存存储器中移除先前在该位置存储的数据并替换为新请求的数据。因此,高级缓存存储器更新其目录信息以指示先前存储的数据不再存在于低级缓存存储器中以及新请求的数据存在于低级缓存存储器中。
在方框310处,高级缓存存储器对缓存缺失请求作出响应。如果高级缓存存储器已在本地存储了所请求的数据,那么其可以直接将数据发送给低级缓存存储器。如果高级缓存存储器未在本地存储所请求的数据,那么其可以向另一存储设备请求并获取数据。例如,高级缓存存储器可以向更高级的缓存存储器(例如,三级、四级等缓存存储器)、主存储单元或任意其它存储设备请求数据。
应注意,上文所述且在图3中示出的步骤顺序仅用于说明性目的。本发明的实施例不限于完成步骤的任意特定顺序。在其它实施例中,所示的步骤可以不同顺序执行和/或一些步骤可并行执行。此外,实施例可以包括与图3所示的特定示例相比,省略或增加了一个或多个步骤的方法和设备。
图4是N路相联缓存映射方案的示意图。使用N路相联缓存映射方案的缓存存储器可利用本发明的某些实施例。在图4中,主存储单元400包括存储位置402,缓存存储器420包括存储位置422。主存储单元400和缓存存储器420可包括任意数目的位置。例如,主存储单元400可以包括存储位置1至Y,其中Y为任意数字;缓存存储器420可以包括位置1至Z,其中Z为任意数字。缓存存储器420中的各个位置422包括多路424。路424可以包括第1至N路,其中N为任意数字(例如,2、3、4、5、6、7和8等)。此外,各路424可以由路标识符(例如,路-1、路-2等)标识。
在实施例中,每个主存储单元位置402可以存储至多个缓存存储单元路424中。低级缓存存储器使用的特定映射方案可以由高级缓存存储器存储。因此,如果低级缓存存储器提供低级缓存存储器将使用哪一路的指示,那么高级缓存存储器可以确定低级缓存存储器将数据存储在何处。因此,通过存储关于低级缓存存储器使用的映射方案的信息,高级缓存存储器无需接收来自低级缓存存储器的完整地址信息以确定低级缓存存储器将数据存储在何处。
图5是直接缓存映射方案的示意图。使用直接缓存映射方案的缓存存储器可利用本发明的某些实施例。在图5中,主存储单元500包括存储位置502,缓存存储器520包括存储位置522。主存储单元500和缓存存储器520可包括任意数目的位置。例如,主存储单元500可以包括存储位置1至Y,其中Y为任意数字;缓存存储器520可以包括位置1至Z,其中Z为任意数字。
在实施例中,各主存储单元位置502可以仅存储至一个缓存存储位置522。因此,高级缓存存储器可以仅基于被存储数据的标识确定低级缓存存储器将数据存储在何处。因此,在直接缓存映射方案中,只要高级缓存存储器能够获取关于低级缓存存储器使用的特定映射方案的信息,高级缓存存储器就无需接收来自低级缓存存储器的任何额外信息以确定将数据存储在何处。
如前所述,本发明的实施例可使用例如图4所示的N路相联映射方案或例如图5所示的直接映射方案。实施例还可使用任意其它映射方案,包括但不限于:预测执行、扭斜相联、伪相联等。因此,实施例不限于缓存存储器使用的任意特定映射方案,并且可以对实施例进行修改以在各种缓存存储器中使用。
如上所述并在附图中示出,实施例包括用于使用缓存缺失请求来提供缓存替换通知的方法和装置。在某些情况下,缓存替换通知信息(例如,缓存替换属性)被附加到缓存缺失请求中,并且仅将该请求发送到高级缓存存储器,而不是分别发送缓存替换通知和缓存缺失请求。高级缓存存储器可以使用缓存缺失请求来识别需要发送到低级缓存存储器的数据以及识别将从低级缓存存储器中移除的数据。在其它示例中,仅部分缓存替换通知消息或无缓存替换通知消息被附加到缓存缺失请求中。在这种情况下,高级缓存存储器仍然能够通过获取关于低级缓存存储器使用的策略、算法、结构、映射方案等信息识别将从低级缓存存储器移除的数据。因此,低级缓存存储器无需发送缓存替换通知和缓存缺失请求,高级缓存存储器也无需接收缓存替换通知和缓存缺失请求。
本发明公开至少一项实施例,且所属领域的普通技术人员对所述实施例和/或所述实施例的特征作出的变化、组合和/或修改均在本发明公开的范围内。因组合、合并和/或省略所述实施例的特征而得到的替代性实施例也在本发明的范围内。应当理解的是,本发明已明确阐明了数值范围或限制,此类明确的范围或限制应包括涵盖在上述范围或限制(如从大约1至大约10的范围包括2、3、4等;大于0.10的范围包括0.11、0.12、0.13等)内的类似数量级的迭代范围或限制。例如,每当揭示具有下限Rl和上限Ru的数值范围时,具体是揭示落入所述范围内的任何数字。具体而言,特别公开所述范围内的以下数字:R=Rl+k*(Ru-Rl),其中k是从1%到100%范围内以1%递增的变量,即,k是1%、2%、3%、4%、5%……70%、71%、72%……95%、96%、97%、98%、99%或100%。此外,还特此公开了,上文定义的两个R值所定义的任何数值范围。除非另行说明,术语“大约”表示其后数值的±10%的范围。相对于权利要求的某一要素,术语“可选地”的使用表示该要素可以是需要的,或者也可以是不需要的,二者均在所述权利要求的范围内。使用如包括、包含和具有等较广术语应被理解为提供对如……组成、基本上由……组成,以及大体上由……组成等较窄术语的支持。因此,保护范围不受上文所述的限制,而是由所附权利要求书定义,所述范围包含所附权利要求书的标的物的所有等效物。每项和每条权利要求作为进一步公开的内容并入说明书中,且权利要求书是本发明的实施例。所述揭示内容中的参考的论述并不是承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其他细节。
虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。
Claims (15)
1.一种提供缓存替换通知的计算设备,其特征在于,包括:
接收来自缓存存储器的缓存缺失请求的接口;以及
耦合到所述接口的处理器,用于至少部分基于从所述缓存缺失请求中获取的信息识别从所述缓存存储器中移除的数据;
其中,所述计算设备包括高级缓存存储器,以及所述缓存存储器包括低级缓存存储器;
所述缓存缺失请求包括替换属性,以及所述处理器用于至少部分基于所述替换属性识别所述被移除的数据。
2.根据权利要求1所述的计算设备,其特征在于,所述替换属性包括路标识符。
3.根据权利要求1所述的计算设备,其特征在于,所述替换属性包括至少一部分存储地址。
4.根据权利要求1所述的计算设备,其特征在于,所述缓存缺失请求包括所述缓存存储器请求的数据的指示,以及所述处理器用于至少部分基于所述被请求的数据的指示识别所述被移除的数据。
5.根据权利要求1所述的计算设备,其特征在于,进一步包括存储器,用于存储关于所述缓存存储器使用的映射方案的信息,以及所述处理器用于至少部分基于关于所述映射方案的所述信息识别所述被移除的数据。
6.根据权利要求1所述的计算设备,其特征在于,进一步包括存储器,用于存储关于所述缓存存储器使用的缓存管理策略的信息,以及所述处理器用于至少部分基于关于所述缓存管理策略的所述信息识别所述被移除的数据。
7.根据权利要求1所述的计算设备,其特征在于,进一步包括存储器,用于存储关于所述缓存存储器中存储的数据的目录信息,以及所述处理器,用于至少部分基于从所述缓存存储器中移除的所述数据的标识更新所述存储器中存储的所述目录信息。
8.一种提供缓存替换通知的计算设备,其特征在于,包括:
用于存储缓存数据的存储器;
用于接收来自缓存存储器的缓存请求的第一接口;
耦合到所述第一接口的处理器,用于当确定所述缓存请求中标识的数据未存储在所述存储器中时,生成缓存缺失请求;
耦合到所述处理器的第二接口,用于将所述缓存缺失请求发送到缓存存储器,其中所述缓存缺失请求包括在所述缓存请求中标识的所述数据的指示和从所述存储器中移除的一部分所述缓存数据的指示;
其中,所述计算设备包括高级缓存存储器,以及所述缓存存储器包括低级缓存存储器;
从所述存储器中移除的所述一部分缓存数据的所述指示包括缓存替换属性。
9.根据权利要求8所述的计算设备,其特征在于,从所述存储器中移除的所述一部分缓存数据的所述指示包括与被移除的所述缓存数据关联的地址。
10.根据权利要求8所述的计算设备,其特征在于,从所述存储器中移除的所述一部分缓存数据的所述指示包括路标识符。
11.根据权利要求8所述的计算设备,其特征在于,所述存储器用于使用相联映射方案存储所述缓存数据。
12.根据权利要求8所述的计算设备,其特征在于,所述存储器用于使用直接映射方案存储所述缓存数据。
13.一种提供缓存替换通知的方法,其特征在于,包括:
存储关于缓存存储器中存储的数据的目录信息;
从所述缓存存储器接收缓存缺失请求;以及
至少部分基于所述缓存缺失请求中包含的信息更新所述目录信息;
其中,通过高级缓存存储器存储关于低级缓存存储器中存储的数据的目录信息;
进一步包括至少部分基于所述缓存缺失请求中包含的所述信息识别被移除的所述缓存存储器中存储的一部分所述数据;
接收所述缓存缺失请求包括接收被请求数据的指示和缓存替换属性。
14.根据权利要求13所述的方法,其特征在于,进一步包括至少部分基于存储的关于所述缓存存储器的信息识别所述被移除的所述缓存存储器中存储的一部分所述数据。
15.根据权利要求13所述的方法,其特征在于,进一步包括至少部分基于所述缓存缺失请求中包含的所述信息和存储的关于所述缓存存储器的信息识别被移除的所述缓存存储器中存储的一部分所述数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261660086P | 2012-06-15 | 2012-06-15 | |
US61/660,086 | 2012-06-15 | ||
US13/868,281 | 2013-04-23 | ||
US13/868,281 US20130339620A1 (en) | 2012-06-15 | 2013-04-23 | Providing Cache Replacement Notice Using a Cache Miss Request |
PCT/CN2013/077287 WO2013185638A1 (en) | 2012-06-15 | 2013-06-17 | Providing cache replacement notice using a cache miss request |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104364776A CN104364776A (zh) | 2015-02-18 |
CN104364776B true CN104364776B (zh) | 2018-07-03 |
Family
ID=49757025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380030971.4A Active CN104364776B (zh) | 2012-06-15 | 2013-06-17 | 使用缓存缺失请求提供缓存替换通知 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130339620A1 (zh) |
CN (1) | CN104364776B (zh) |
WO (1) | WO2013185638A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940241B1 (en) * | 2014-07-03 | 2018-04-10 | Sanmina Corporation | Network system with cache offload service for flash storage |
KR20160033505A (ko) * | 2014-09-18 | 2016-03-28 | 한국전자통신연구원 | 원격 메모리 제공 시스템 및 원격 메모리 제공을 위한 임시페이지 풀 운영 방법 |
CN104699422B (zh) * | 2015-03-11 | 2018-03-13 | 华为技术有限公司 | 缓存数据的确定方法及装置 |
CN107810490A (zh) * | 2015-06-18 | 2018-03-16 | 华为技术有限公司 | 用于基于目录的缓存一致性的系统和方法 |
US10869227B2 (en) | 2018-03-23 | 2020-12-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Message cache management in a mesh network |
CN110716887B (zh) * | 2019-09-11 | 2021-08-10 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809530A (en) * | 1995-11-13 | 1998-09-15 | Motorola, Inc. | Method and apparatus for processing multiple cache misses using reload folding and store merging |
US6098151A (en) * | 1992-12-14 | 2000-08-01 | Nec Corporation | Cache memory control system that caches requested data and adjacently displayed data |
CN101063957A (zh) * | 2006-04-25 | 2007-10-31 | 国际商业机器公司 | 管理锁定的高速缓冲存储器中的组替换的系统和方法 |
US7415575B1 (en) * | 2005-12-08 | 2008-08-19 | Nvidia, Corporation | Shared cache with client-specific replacement policy |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804759B2 (en) * | 2002-03-14 | 2004-10-12 | International Business Machines Corporation | Method and apparatus for detecting pipeline address conflict using compare of byte addresses |
US6912623B2 (en) * | 2002-06-04 | 2005-06-28 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy |
US7089370B2 (en) * | 2003-09-30 | 2006-08-08 | International Business Machines Corporation | Apparatus and method for pre-fetching page data using segment table data |
-
2013
- 2013-04-23 US US13/868,281 patent/US20130339620A1/en not_active Abandoned
- 2013-06-17 WO PCT/CN2013/077287 patent/WO2013185638A1/en active Application Filing
- 2013-06-17 CN CN201380030971.4A patent/CN104364776B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098151A (en) * | 1992-12-14 | 2000-08-01 | Nec Corporation | Cache memory control system that caches requested data and adjacently displayed data |
US5809530A (en) * | 1995-11-13 | 1998-09-15 | Motorola, Inc. | Method and apparatus for processing multiple cache misses using reload folding and store merging |
US7415575B1 (en) * | 2005-12-08 | 2008-08-19 | Nvidia, Corporation | Shared cache with client-specific replacement policy |
CN101063957A (zh) * | 2006-04-25 | 2007-10-31 | 国际商业机器公司 | 管理锁定的高速缓冲存储器中的组替换的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013185638A1 (en) | 2013-12-19 |
US20130339620A1 (en) | 2013-12-19 |
CN104364776A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055851B2 (en) | Line swapping scheme to reduce back invalidations in a snoop filter | |
CN104364776B (zh) | 使用缓存缺失请求提供缓存替换通知 | |
US10169232B2 (en) | Associative and atomic write-back caching system and method for storage subsystem | |
JP6613375B2 (ja) | プロファイリングキャッシュ置換 | |
JP6653768B2 (ja) | 異なるキャッシュレベルのキャッシュラインの状態をモニタリングするシャドウタグメモリ | |
US7962694B2 (en) | Partial way hint line replacement algorithm for a snoop filter | |
CN110209601A (zh) | 存储器接口 | |
US9824009B2 (en) | Information coherency maintenance systems and methods | |
CN103999057B (zh) | 具有开关的相变存储器(pcms)的元数据管理和支持 | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
CN105550155B (zh) | 用于多处理器系统的探听过滤器以及相关探听过滤方法 | |
TWI652576B (zh) | Memory system and processor system | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP2017045457A (ja) | トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法 | |
CN104169892A (zh) | 并发访问的组相联溢出缓存 | |
CN109739780A (zh) | 基于页级映射的动态二级缓存闪存转换层地址映射方法 | |
KR20200080142A (ko) | 배타적 마지막 레벨 캐시를 위한 바이패스 예측기 | |
US20070233965A1 (en) | Way hint line replacement algorithm for a snoop filter | |
CN115809028A (zh) | 一种缓存数据替换方法、装置、图形处理系统及电子设备 | |
US20080307169A1 (en) | Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory | |
CN109983444A (zh) | 具有不同高速缓存结构和支持对不同高速缓存结构的并发查找的存储器控制器的多级系统存储器 | |
CN102043731A (zh) | 一种存储系统的缓存系统 | |
CN108733584A (zh) | 用于优化数据缓存的方法和设备 | |
CN110737407A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |