为缓存一致性处理缓存回写和缓存淘汰.pdf

上传人:a1 文档编号:4041707 上传时间:2018-08-12 格式:PDF 页数:20 大小:1.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380040894.0

申请日:

2013.07.30

公开号:

CN104520824A

公开日:

2015.04.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20130730|||公开

IPC分类号:

G06F12/08

主分类号:

G06F12/08

申请人:

华为技术有限公司

发明人:

林奕林; 贺成洪; 史洪波; 张纳新

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

61/677,905 2012.07.31 US; 61/780,494 2013.03.13 US; 13/900,187 2013.05.22 US

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

一种由计算机系统实施的方法,所述计算机系统包括第一存储器代理和耦合到所述第一存储器代理的第二存储器代理,其中所述第二存储器代理能够访问包括缓存线的缓存,所述方法包括所述第二存储器代理更改所述缓存线的状态,以及将非侦听消息通过指派给侦听响应的通信信道从所述第二存储器代理发送到所述第一存储器代理,其中所述非侦听消息告知所述第一存储器代理所述缓存线的所述状态更改。

权利要求书

权利要求书
1.  一种由计算机系统实施的方法,所述计算机系统包括第一存储器 代理和耦合到所述第一存储器代理的第二存储器代理,其中所述第二存储 器代理能够访问包括缓存线的缓存,其特征在于,所述方法包括:
所述第二存储器代理更改所述缓存线的状态;以及
将非侦听消息通过指派给侦听响应的通信信道从所述第二存储器代 理发送到所述第一存储器代理,其中所述非侦听消息告知所述第一存储器 代理所述缓存线的所述状态更改。

2.  根据权利要求1所述的方法,其特征在于,所述第一存储器代理 为归属代理,所述第二存储器代理为缓存代理,其中将所述缓存线的状态 从脏更改为干净或无效,以及所述非侦听消息是包括所述脏缓存线中存储 的数据的回写消息。

3.  根据权利要求1所述的方法,其特征在于,所述第一存储器代理 是归属代理或第一缓存代理,所述第二存储器代理是第二缓存代理,其中 将所述缓存线的状态从干净更改为无效,以及所述非侦听消息是淘汰消 息。

4.  根据权利要求1所述的方法,其特征在于,在包括发送所述非侦 听消息的事务中,所述非侦听消息之后在所述第一和第二存储器代理之间 不执行握手。

5.  根据权利要求4所述的方法,其特征在于,进一步包括:
将关于所述缓存线的另一事务中的侦听响应通过所述通信信道从所 述第二存储器代理发送到所述第一存储器代理;以及
所述第一存储器代理按所述第二存储器代理发起所述非侦听消息和 所述侦听响应的排序处理所述非侦听消息和所述侦听响应。

6.  根据权利要求4所述的方法,其特征在于,进一步包括:
所述第一存储器代理通过指派给缓存线请求的额外通信信道接收从 另一存储器代理发送的关于所述缓存线的缓存线请求;以及
所述第一存储器代理在不考虑所述第一存储器代理接收非侦听消息 和所述缓存线请求的顺序的情况下在所述缓存线请求之前处理所述非侦 听消息。

7.  根据权利要求4所述的方法,其特征在于,进一步包括:
通过指派给缓存线请求的额外通信信道将关于所述缓存线的缓存线 请求从所述第二存储器代理发送到所述第一存储器代理;以及
所述第一存储器代理按所述第二存储器代理发起所述非侦听消息和 所述缓存线请求的排序处理所述非侦听消息和所述缓存线请求。

8.  一种装置,其特征在于,包括:
第一存储器代理;以及
耦合到所述第一存储器代理的第二存储器代理,用于:
更改能够访问所述第二存储器代理的缓存线的状态;以及
将非侦听消息通过指派给侦听响应的通信信道发送到所述第一 存储器代理,其中所述非侦听消息告知所述第一存储器代理所述缓存 线的所述状态更改。

9.  根据权利要求8所述的装置,其特征在于,所述第一存储器代理 为归属代理,所述第二存储器代理为缓存代理,其中将所述缓存线的状态 从脏更改为干净或无效,以及所述侦听消息是包括所述脏缓存线中存储的 数据的回写消息。

10.  根据权利要求8所述的装置,其特征在于,将所述缓存线的状态 从干净更改为无效,以及所述非侦听消息是淘汰消息。

11.  根据权利要求8所述的装置,其特征在于,在包括发送所述非侦 听消息的事务中,所述回写或淘汰消息之后在所述第一和第二存储器代理 之间不执行握手。

12.  根据权利要求11所述的装置,其特征在于,所述第一存储器代 理是归属代理(HA),用于:
接收来自所述通信信道的多条消息,包括侦听响应和所述非侦听消 息,其中所述多个消息均包含HA处理所需的所有信息;以及
处理所述多条消息中的每条消息。

13.  根据权利要求11所述的装置,其特征在于,所述第一存储器代 理是归属代理(HA),用于:
接收来自所述通信信道的多条消息,包括侦听响应和所述非侦听消 息;以及
处理所述多条消息中的每条消息,
其中所述HA预分配有含存储空间和带宽的足够资源,这样所述HA 及时执行对所述多条消息中的每条消息的处理。

14.  根据权利要求13所述的装置,其特征在于,所述HA还用于:
通过指派给读请求和写请求的额外通信信道接收从所述第二存储器 代理或任意其它缓存代理发送的有关所述缓存线的所述读请求和所述写 请求;以及
按第一顺序处理所述每条读请求和所述每条写请求,以及按独立于所 述第一顺序的第二顺序处理所述多条消息。

15.  一种由计算机系统实施的方法,所述计算机系统包括归属代理 (HA)和至少一个缓存代理(CA),其中所述至少一个CA包括能够访 问含缓存线的缓存的CA,其特征在于,所述方法包括:
所述CA更改所述缓存线的状态;以及
将含存储在所述缓存线中的数据的回写消息或淘汰消息从所述CA发 送到所述HA,其中在包括所述状态更改和发送所述回写或淘汰消息的事 务中,所述回写或淘汰消息之后在所述HA和所述CA之间不执行握手。

16.  根据权利要求15所述的方法,其特征在于,所述握手包括完成 和确认消息的交换,以及在所述回写或淘汰消息之后在所述HA和所述CA 之间不执行所述完成和确认消息的交换。

17.  根据权利要求15所述的方法,其特征在于,所述回写或淘汰消 息是在不响应于所述事务中从所述至少一个CA中的任意CA发送到所述 HA的任意先前的缓存线请求的情况下由所述CA发起的志愿消息,其中 使用指派给侦听响应的通信信道发送所述回写或淘汰消息。

18.  根据权利要求15所述的方法,其特征在于,在发送所述回写或 淘汰消息之前,进一步包括
将缓存线请求通过指派给缓存线请求的额外通信信道从所述CA发送 到所述HA;
将侦听请求从所述HA发送到所述CA以响应所述缓存线请求;以及
将侦听响应通过所述通信信道从所述CA发送到所述HA以响应所述 侦听请求,其中所述回写或淘汰消息是所述侦听响应的一部分。

19.  根据权利要求18所述的方法,其特征在于,进一步包括所述HA 不考虑其自身接收所述回写或淘汰消息和所述缓存线请求的顺序情况下 在所述缓存线请求之前处理所述回写或淘汰消息。

20.  根据权利要求19所述的方法,其特征在于,所述回写消息对应于作 为读请求的所述缓存线请求或所述淘汰消息对应于作为写请求的所述缓存线 请求。

说明书

说明书为缓存一致性处理缓存回写和缓存淘汰
相关申请案交叉申请
本发明要求2013年5月22日由Iulin Lih等人递交的发明名称为“为 缓存一致性处理缓存回写和缓存淘汰(Handling Cache Write-back and  Cache Eviction for Cache Coherence)”的第13/900187号美国非临时专利 申请案的在先申请优先权,该在先申请案要求2012年7月31日由Iulin Lih 等人递交的发明名称为“为缓存一致性处理缓存回写和缓存淘汰(Handling  Cache Write-back and Cache Eviction for Cache Coherence)”的第61/677905 号美国临时专利申请案以及2013年3月13日由Iulin Lih等人递交的发明 名称为“为缓存一致性处理缓存回写和缓存淘汰(Handling Cache  Write-back and Cache Eviction for Cache Coherence)”的第61/780494号美 国临时专利申请案的在先申请优先权,这些在先申请的内容以引用的方式 并入本文本中,如全文再现一般。
关于由联邦政府赞助
研究或开发的声明
不适用。
参考缩微胶片附录
不适用。
背景技术
随着处理器的时钟速度提高以及主存储器变得更大,当处理器访问主 存储器时可能出现较长的时延周期。可实施缓存等级(例如,不同缓存级 别)以降低由频繁访问主存储器引起的时延和性能瓶颈。缓存可能是一个 或多个小型高速相联存储器,其降低了访问主存储器的平均时间。为了降 低访问主存储器的平均时间,缓存提供了经常引用的主存储器位置的副 本。当处理器在主存储器中读取或写入位置时,处理器首先检查缓存存储 器中是否存在数据副本。如果存在,处理器指向缓存存储器而不是速度较 慢的主存储器。若想缓存有效,处理器需要不断地访问缓存而不是主存储 器。遗憾的是,缓存的大小通常较小并限于存储主存储器内数据的较小的 子集。大小限制本质上可限制缓存内的“命中”率。当缓存保存由处理器 请求的数据的有效副本时,发生“命中”,而当缓存无法保存被请求数据 的有效副本时,发生“缺失”。当缓存内发生“缺失”时,处理器可随后 访问速度较慢的主存储器。
具体而言,在多处理器计算机系统中可能存在所有处理器共享的主存 储器以及用于每个处理器或处理核的单独缓存存储器。因此,任何一个指 令或数据都可能具有多个副本:主存储器中有一个副本,每个缓存存储器 中有一个副本。在这种情况下,当数据或指令的一个副本被更改时,还应 该更改其它副本以维持一致性。缓存一致性协议可帮助确保及时地在整个 系统传播共享数据或指令中的更改。例如,当计算机系统将数据块写入缓 存时,计算机系统需要在某个点将该数据块回写至主存储器。该写时间受 写策略控制,写策略可以是写通策略或回写策略。
当缓存中的缓存线状态被缓存代理(CA)更改(例如,缓存线中的数据 需要被淘汰或被替换为新数据)时,更新后的数据可能需要被归属代理(HA) 回写至主存储器。CA和HA之间可能需要多轮消息交换以完成一致性事务, 其中一些消息交换并非总是必要的。例如,传统回写事务可包括含完成和确 认消息的握手过程。由于握手在回写完成后实施,因此握手过程可能会向系 统增加不必要的流量开销。此外,不论某些消息(例如,缓存线请求和回写 或淘汰消息)的不同属性,传统事务都可通过相同的请求信道发送这些消息, 这可能导致潜在死锁问题和HA过载。因此,需要简化缓存一致性事务以减少 系统流量,从而提升系统性能。
发明内容
在一项实施例中,本发明包括一种由计算机系统实施的方法,所述计 算机系统包括第一存储器代理和耦合到所述第一存储器代理的第二存储 器代理,其中所述第二存储器代理能够访问包括缓存线的缓存,所述方法 包括所述第二存储器代理更改所述缓存线的状态,以及将非侦听消息通过 指派给侦听响应的通信信道从所述第二存储器代理发送到所述第一存储 器代理,其中所述非侦听消息告知所述第一存储器代理所述缓存线的所述 状态更改。
在另一项实施例中,本发明包括一种装置,所述装置包括第一存储器 代理和耦合到所述第一存储器代理的第二存储器代理,所述第二存储器代 理用于更改能够访问所述第二存储器代理的缓存线的状态,以及将非侦听 消息通过指派给侦听响应的通信信道发送到所述第一存储器代理,其中所 述非侦听消息告知所述第一存储器代理所述缓存线的所述状态更改。
在又一项实施例中,本发明包括一种由计算机系统实施的方法,所述 计算机系统包括HA和至少一个CA,其中所述至少一个CA包括能够访 问含有缓存线的缓存的CA,所述方法包括所述CA更改所述缓存线的状 态,以及将含有存储在所述缓存线中的数据的回写消息或淘汰消息从所述 CA发送到所述HA,其中在包括所述状态更改和发送所述回写或淘汰消息 的事务中,不在所述回写或淘汰消息之后执行所述HA和所述CA之间的 握手。
结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其 它特征。
附图说明
为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的 简要描述,其中相同参考标号表示相同部分。
图1示出了存储器系统的实施例。
图2示出了一致性域实施方式的实施例。
图3A示出了缓存一致写事务的实施例。
图3B示出了缓存一致读事务的实施例。
图4A示出了缓存一致回写事务的实施例。
图4B示出了缓存一致淘汰事务的实施例。
图5示出了缓存一致消息处理方法的实施例。
图6示出了计算机系统的实施例。
具体实施方式
最初应理解,尽管下文提供一个或多个实施例的说明性实施方案,但 可使用任意数目的当前已知或现有的技术来实施所公开的系统和/或方法。 本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包含 本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书 的范围以及其均等物的完整范围内修改。
缓存存储器(简称为缓存)通常可包括多个缓存线,这些缓存线用作 包含读写访问的数据访问的基本单元或块。缓存线可包括数据以及状态。 例如,每个缓存线或缓存行条目可能存在两个标记位:有效位和脏位。有 效位指示缓存线是否有效,脏位指示自从最后一次从主存储器读取缓存线 以后该缓存线是否被更改。如果自从最后一次从主存储器读取缓存线以后 该缓存线被更改,则缓存线为“干净”;否则,如果存储器已经向缓存线 写入新数据,且新数据仍未到达主存储器,则缓存线为“脏”。
根据该协议,可使用多种术语描述缓存线的状态。例如,MESI协议 定义了修改(Modified)、独占(Exclusive)、共享(Shared)和无效(Invalid) 状态。根据MESI协议,当缓存线仅在当前缓存中存在且为脏(即,已经 修改了主存储器中的缓存线的值)时,该缓存线处于修改(M)状态。未 来某个时候,在缓存允许对主存储器(现无效)中对应地址的任意其它读 取之前,缓存可能需要将数据回写至主存储器。回写可将缓存线状态更改 为独占状态。当缓存线仅在当前缓存中存在且为干净(即,缓存中的数据 与主存储器匹配)时,缓存线处于独占(E)状态。任何时候都可以将缓 存线的状态更改为S状态以响应读请求。或者,当缓存线正在被写入时其 状态可被更改为M状态。当缓存线存储在存储器系统的其它缓存或多个 缓存中且为干净(即,缓存中的数据与主存储器匹配)时,缓存线处于共 享(S)状态。在任何时候,可通过将缓存线状态更改为I状态来丢弃缓 存线。无效(I)状态指示缓存线无效或未使用。尽管使用MESI作为示例, 但应理解在本发明的范围内可以使用任意状态协议。
缓存请求可指由于内部事件引起的从CA到另一存储器代理(HA或CA) 的消息。例如,缓存线请求可以是从CA到其它存储器代理的读请求或写请 求,响应于CA的缓存中的读或写缺失,以请求缓存线数据和/或读或写的权 限。回写消息(有时简称为回写)可指例如由于内部事件引起的从缓存代理 (CA)到归属代理(HA)的消息以(例如,当CA将缓存状态从修改更改 为干净或无效时)更新包括数据和缓存线状态的缓存线。淘汰消息(有时简 称为淘汰)可指当例如由于内部事件引起缓存线失效时从CA到另一存储器 代理(HA或CA)的消息。侦听响应可指当由于外部事件或来自其它存储器 代理的侦听请求引起更改缓存线的状态时从CA到另一存储器代理(HA或 CA)的消息。考虑到消息类型的不同,回写和淘汰消息可归类为非侦听消息 (注意,此处的非侦听消息不可以是缓存线请求)。
在一致性协议中,包括回写和淘汰的非侦听消息可被视为特殊请求。其中 一种属性是相对于其它消息,按顺序处理非侦听消息。为了遵循缓存一致性的 原则,应按不同顺序处理不同请求。例如,如果回写或淘汰之后的缓存线请求 具有相同的目标缓存线地址和相同的发送方,那么它们可能需要表现得像已经 保持了传送排序。否则,因为缓存线请求可减少请求的响应延迟,所以缓存线 请求优先于回写或淘汰。常见的保持缓存线请求到回写/淘汰排序的解决方案 是为它们使用路由信道等相同资源,并且在它们都具有相同的发送方和目标地 址的情况下强制执行该信道内的消息排序。为了简化该实施方式,有时可强制 执行比必需的更紧的排序。
上述解决方案可能导致死锁问题。假设,例如首先将缓存线请求从 CA发送到HA,随后将志愿回写从相同的CA发送到相同的HA。根据传 送顺序,HA应首先处理缓存线请求并随后处理回写。此外,假设在HA 能够处理缓存线请求之前缓存线请求要求回写的结果。然而,如果HA具 有有限资源(例如,存储空间和/或带宽),那么HA无法处理回写以得到 所需的结果,从而导致死锁。
为避免死锁,一些一致性协议可给HA预分配大量资源,例如较大缓 冲区和/或较大带宽,使得能够处理由HA接收到的所有回写消息。例如, 如果HA之前已经被读取了100次,那么HA将要接收最多100次回写或 淘汰。在这种情况下,可给HA预分配足够的资源以同时处理200个操作 (包括100个缓存线请求和100个回写或淘汰)。虽然可以使用该解决方 案来避免死锁,但该解决方案可能需要大量资源(例如,缓冲区大小和/ 或带宽),这可能会增加系统成本。另一避免死锁的方法可以是实施端到 端流控制,例如使复杂的发送/接收方握手机制随时限制未决请求的数目。 由于握手机制,该解决方案可能会增加系统复杂度。有时,可一起实施资 源的预分配和端对端流控制,但其仍然无法在不增加系统成本或复杂度的 情况下解决死锁问题。
本文公开了用于简化的和改进的处理缓存一致性系统中缓存回写和 缓存淘汰通知消息的装置、系统、协议和方法。根据本文所公开的实施例, 缓存回写或缓存淘汰消息可被视为具有与侦听响应而不是读或写请求相同的 信道和优先级。该过程可通过指派给侦听响应的通信信道发送回写和淘汰消 息并授予它们最符合它们需求的排序优先级。回写和淘汰消息与侦听响应的 统一可简化该方法以避免死锁,从而提升了系统性能、简化了实施方式并且 减少了成本。当在源和目的地之间处理包括回写或淘汰消息的事务时,所公 开的处理方法还可消除握手过程,这可能减少包流量和延迟。
图1示出了处理器系统100的实施例,在处理器系统100中实施所公 开的一致性协议。如图1所示,存储器系统100可以是计算机系统的一部 分并且可包括HA110和多个CA,包括CA120(还表示为C0)、CA130 (还表示为C1)、CA140(还表示为C2)以及CA150(还表示为C3)。 HA110可包括主存储器112或包括能够访问主存储器112的存储控制器。 每个CA120、130、140和150可包括或能够访问每个缓存存储器(简称 为缓存)122、132、142和152。尽管出于说明性目的,存储器112被示 作主存储器,但只要存储器112与缓存存储器122、132、142和152相比 对应于较高的层级,存储器112可以是任何合适类型的存储器或存储部件, 缓存存储器122、132、142和152还可以都是任何合适类型的存储器或存 储部件。示例性存储器类型可包括但不限于集成的片上缓存存储器(即, 在同一芯片内集成的缓存存储器,例如1级(L1)、2级(L2)或3级(L3) 缓存)、独立计算机芯片上的存储器、磁储存设备、光储存设备和任意其 它类型的存储器存储设备及其组合。例如,较低级存储器122可以是1级 缓存,而较高级存储器112可以是2级或3级缓存。
应理解,CA和HA(通常称为存储器代理)是相对的术语且不受任何 特定级别的缓存或存储器的限制。例如,较低级别上的HA可以是较高级 别上的CA,而较高级别上的CA可以是较低级别上的HA。存储器代理可 以是CA或HA,可实施为任意存储控制器或管理器。此外,基于该应用, 存储器系统100的拓扑可采用多种形式。例如,任意两个代理之间可能存 在点到点连接。CA120至150可互相耦合并且耦合到HA110.或者,一些 CA可直接连接到HA110,而其它CA可通过其它CA间接耦合到HA110。 应理解,存储器系统100可与计算机系统的其它部件(例如,多核处理器、 输入/输出(I/O)设备等等)一起运行。
图2示出了一致性域实施方式200的实施例。具体而言,可在发起任 务之前配置一致性域并且在完成任务之后立即移除一致性域。一致性域可 受限于特定地址范围并且可以映射到特定的一个或多个存储器,例如缓存 122、132、142和152中的任意一个。因此,待存储在给定地址范围内的 数据仅可存储在映射到一致性域中的范围的缓存。在任务之前或之后重配 置一致性域可允许系统在为较高级存储器和处理器提供一致存储地址方 案的同时指定可存储给定数据集的部件。假设,如图2所示,系统包括表 示为缓存0至缓存4的五个缓存。此外,假设系统包括地址范围 0x0000-0x0FFF、0x1000-0x1FFF、0x2000-0x2FFF和0x3000-0x3FFF(十 六进制表示)。第一一致性域可将地址范围0x0000-0x0FFF映射到缓存0 至2,而第二一致性域可将地址范围0x1000-0x1FFF映射到缓存2至4。 同样,第三和第四一致性域可将地址范围0x2000-0x2FFF和 0x3000-0x3FFF分别映射到缓存0、2和4以及缓存1和3。可重配置每个 一致性域以在过程开始、过程结束或按给定应用所需映射到不同的缓存。
缓存线请求(例如,读或写请求)可能需要后续侦听过程,而与缓存 线请求不同,回写消息或淘汰消息可能不需要任何后续侦听过程。无需侦 听的情况下,在回写或淘汰之后发送完成响应和确认。在本文所公开的一 致性协议中,回写消息和淘汰消息可被视为特殊请求,即视为不同于缓存 线请求。具体而言,回写和淘汰可被当作它们好像是用于系统资源和策略 (例如,排序优先级、传输信道)目的的侦听响应。
可由于外部事件发起回写或淘汰消息。例如,由第一CA发送到HA 的读或写请求可提示HA从第二CA获取回写或淘汰作为侦听响应的一部 分。或者,可由于内部事件发起回写或淘汰消息。例如,第一CA可将志 愿回写或淘汰消息发送到HA,例如在不响应任何侦听请求的情况下作为 替换通知的一部分。下文将进一步描述外部和内部事件场景。
图3A示出了缓存一致写事务300的实施例。可在HA110、CA120、CA130 和主存储器112之间采用该协议。这些部件可位于单个处理器或处理器集群 上,并且可根据实施方式与L1缓存、L2缓存和/或L3缓存相关联。
如图3A所示,如果CA120管理的缓存线中的写缺失事件发生,可将 写请求从CA120发送到HA110以在某存储器位置或地址处写数据。HA110 可保持缓存中所有缓存线的目录,因此HA110可知晓任意已经检查来自 相应存储器地址的数据的缓存(多个缓存)。相应地,HA110在接收到写 请求之后可将侦听请求(有时简称为侦听)发送到CA130(以及任意其它 已经检查数据的CA),数据的副本可存储于CA130中。侦听请求可包含 使CA130进行以下操作的指令:淘汰存储在对应缓存线中的任意数据或 使存储在对应缓存线中的任意数据无效。CA130随后可将含淘汰消息的侦 听响应发回至HA110,该淘汰消息指示CA130中的缓存线已经更改为无 效状态且缓存线中的任意数据都为过时。在这种情况下,由于外部事件发 起淘汰消息。由于淘汰消息是侦听响应的一部分,因此侦听响应信道可用 于传输淘汰消息。
在接收来自CA130的侦听响应之后,HA110可通过将未决写请求写 入主存储器112来授予未决写请求。接着,主存储器112可使用OK消息 确认该写操作。在传统事务中,HA110可进一步将完成消息发回至CA120, 并且CA120可使用发回至HA110的确认作出响应。当HA110接收到确认 时,事务300结束。相比之下,根据本文所公开的实施例,将包括在HA110 和CA130之间交换的完成和确认消息的握手过程从该事务中移除或消除。 事务300中的握手过程可被移除,因为其在HA110和CA120之间传送, 因此握手过程并非用于发出淘汰消息的CA130。实际上,包括侦听请求和 侦听响应的侦听过程不需要任何后续握手过程。消除HA110和CA120之 间的握手可减少包流量和延迟,这转而提升了系统性能。
图3B示出了缓存一致读事务350的实施例。本领域普通技术人员将认识 到事务350和先前所描述的事务300之间的相似点,因此以下描述着重于仍 未覆盖的方面。如图3B所示,如果CA120管理的缓存中的数据读缺失发 生,可将写请求从CA120发送到HA110以在某个(某些)地址处读取数 据。HA110可保持所有缓存的目录,因此HA110可知晓任意已经检查请 求的数据的缓存(多个缓存)。相应地,HA110在接收到读请求之后可将 侦听请求发送到CA130(以及任意其它已经检查数据的CA),数据的副 本可存储于CA130中。侦听请求可包含使CA130进行以下操作的指令: 将该数据的更新后的值(若有)返回至HA110。CA130随后可将侦听响应 发回至HA110,并将其缓存线状态更改为干净或独占。侦听响应可包括(如 果CA130中的对应缓存线为脏的话)具有更新后的数据的回写消息或(如 果CA130中的缓存线为干净的话)不包括回写消息。在这种情况下,由 于外部事件发起回写消息。由于回写消息是侦听响应的一部分,侦听响应 信道可用于传输回写消息。
在接收到来自CA130的侦听响应之后,如果侦听响应具有回写,那 么HA110可通过在主存储器112中写入对应地址来更新数据;接着,主 存储器112可使用OK消息确认更新。HA110可通过读响应消息(未在图 3中示出)将主存储器112中的更新后的数据发送到CA120。在现有技术 中,在发送读响应之后,HA110可进一步将另一完成消息发送到CA120。 一旦接收到事务结束的确认,CA120可将该确认发回至HA110。在本文公 开的实施例中,可从该事务中移除包括完成和确认消息的发送/接收的握手 过程。握手过程可被移除,因为其在HA110和CA120之间传送,因此握 手过程并非用于发出回写消息的CA130。
图4A示出了缓存一致回写事务400的实施例。本领域普通技术人员将 认识到的事务400和先前所描述的事务之间的相似点,因此以下描述着重于 仍未覆盖的方面。如图4A所示,可将志愿回写消息从CA120发送到HA110, 例如在不响应任何第三方缓存线请求的情况下作为替换通知的一部分。回 写消息可包括存储在CA120中的更新后的数据,其需要返回至HA110。 在传统方法中,除非回写是侦听响应的一部分(例如,事务350中的回写 是侦听响应的一部分,而事务400中的回写不是侦听响应的一部分),否 则回写可被视为与缓存线请求(读或写请求)相同或类似。相比之下,根 据本文所公开的实施例,无论回写是否为侦听响应的一部分,回写使用系 统资源并遵循预留给侦听响应的策略。在实施例中,侦听响应信道而不是 请求信道可用于传输事务400中的回写消息。这种处理的优点将在下文描 述。回想到回写消息不需要任何后续侦听过程,因此在事务400中,HA110 可直接将更新后的数据写入存储器112中。存储器112可使用OK消息确 认该写操作。在传统方法中,HA110可进一步将完成消息发回至CA120, 并且CA120可使用发送到HA110的确认作出响应。当HA110接收到确认 时,事务结束。相比之下,根据本文所公开的实施例,将包括在HA110 和CA120之间交换的完成和确认消息的握手过程从事务400中消除或移 除。事务300中的握手过程可被移除,因为在握手之前已经完成了回写过 程。
图4B示出了缓存一致淘汰事务450的实施例。本领域普通技术人员将认 识到的事务450和先前所描述的事务之间的相似点,因此以下描述着重于仍 未覆盖的方面。如图4B所示,可在不响应任何第三方缓存线请求的情况 下,例如当需要使CA120中的缓存线无效以为新数据腾出空间时,将志 愿淘汰消息从CA120发送到HA110。在传统方法中,除非淘汰是侦听响 应的一部分(例如,事务300中的淘汰是侦听响应的一部分,而事务450 中的淘汰不是侦听响应的一部分),否则淘汰可被视为与缓存线请求(读 或写请求)相同或类似。相比之下,根据本文所公开的实施例,无论淘汰 是否为侦听响应的一部分,淘汰使用系统资源并遵循预留给侦听响应的策 略。在实施例中,侦听响应信道而不是请求信道可用于传输事务450中的 淘汰消息。这种处理的优点将在下文描述。
回想到淘汰消息不需要任何后续侦听过程,因此在事务450中,HA110 不需要执行该过程。在传统方法中,HA110可进一步将完成消息发回至 CA120,并且CA120可使用发送到HA110的确认作出响应。当HA110接 收到确认时,事务结束。相比之下,根据本文所公开的实施例,将包括在 HA110和CA120之间交换的完成和确认消息的握手过程从事务450中消 除。事务300中的握手过程可被移除,因为在握手之前已经完成了淘汰过 程。
尽管上文所述的事务(例如,事务300、350、400和450)位于HA 和一个或多个CA之间,但应理解本文所公开的相同原理可用于多个CA 之间的事务。任何存储器代理(CA或HA)可以是事务的源或发送方,任 意其它存储器代理可以是事务的目的地或接收方。例如,握手过程的消除 可以在任意发送方和接收方之间实施以减少包流量和延迟。此外,上文所 述的事务可以是实际事务的简化说明,因此可在多个代理之间交换额外消息 或信息。
如上文所示,存储器系统可包括多个代理,用于通过缓存一致性协议 相互通信。由于可将多条消息从一个源发送到多个目的地、或多次从一个 源发送到相同目的地、或从多个源发送到相同目的地,因此可能产生排序 冲突并需要通过合适的排序策略(下文将描述)解决。
当存在发往相同地址的多个读或写请求时,应一致地处理这些操作或 事务之间的排序。排序策略可遵循源排序或目的地排序。源排序和目的地 排序可能不是相同的,因为源和目的地可以不同的方式按优先顺序排列操 作。例如,源可能认为读请求比回写消息更重要(因为源需要读取数据但 可能不关注回写消息的传送),而目的地可能认为回写消息为比读请求更 重要(因为目的地需要通过回写消息更新其数据但不关注从源读取的数 据)。源排序(或传送排序)策略可根据在源处发起的操作的顺序强制执 行观察到的一致性。或者,目的地排序(或完成排序)策略可根据目的地 提供的操作的顺序强制执行观察到的一致性。如本领域普通技术人员将会 认识到的那样,可能存在处理源和目的地排序之间的差异的其它变体。
在本文所公开的一致性协议中,回写和淘汰是特殊请求或操作,因此应以 与处理缓存线请求不同的方式处理它们的排序。在实施例中,回写和淘汰可比 其它从不同源发起但发往相同目的地的未决读或写请求具有更高的优先级。因 此,可参考其它发往相同目的地,即朝向目的地或在目的地处的缓存线请求重 新排序回写和淘汰,从而将它们设置为在其它缓存线请求之前完成。在某种程 度上,回写或淘汰的处理方法可以与侦听响应的相同,侦听响应也优先于发往 相同目的地的未决读或写请求。在这种情况下,回写和淘汰消息可被视为自发 的侦听响应。
当回写或淘汰与从相同源发起的发往相同目的地的缓存线请求冲突 时,或当回写或淘汰与另一侦听响应冲突(不管是否来自相同源)时,应 保持原始排序策略。也就是说,可不执行重新排序。
在一些实施例中,处理回写和淘汰消息可遵循一些或全部以下规则。根 据规则1,回写和淘汰消息的传输可使用与用于缓存线请求的通信信道不同 的通信信道。通信信道可以是不同的物理信道(电线集)或虚拟信道。例如, 回写或淘汰消息的传输可使用侦听响应信道而不是缓存线请求信道。在这种 情况下,由于不同资源用于处理回写/淘汰和缓存线请求,因此可能有效消 除死锁的潜在问题。具体而言,当前正由HA处理的回写和/或淘汰消息的 数目可能不会影响HA处理缓存线请求的能力。换言之,回写和缓存线请 求不再位于相同的队列或线中。因此,本发明可能不需要任何形式的端对 端缓冲流控制来避免死锁,这在区域和性能方面花费昂贵,并且通常不可 扩展。
根据规则2,侦听响应信道中的每条消息(包括回写、淘汰和常规侦听响 应)都应能够由HA等目的地使用。可使用多种方法实施规则2。在第一示例 性方法中,侦听响应信道中的每条消息都是一条包括命令/指令和数据的完整 消息。换言之,每条消息都是非分裂消息。在第二示例性方法中,HA可预分 配有特定存储空间和/或带宽,这样HA可保证具有足够的空间和/或带宽用来 处理HA发出的每条侦听请求的所有侦听响应。由于已经解决了死锁问题,因 此这种情况下的资源预分配可能要求相对少量的系统开销。
根据规则3,如果回写或淘汰后的侦听响应共享相同的源和目标地址, 那么应保持源排序。例如,当将侦听响应和关于(CA管理的)缓存中的 相同缓存线和发往主存储器中的相同存储器地址的回写/淘汰从CA发送 到HA时,HA可以按CA发起侦听响应和回写/淘汰消息的排序处理侦听 响应和回写/淘汰消息。根据规则4,如果回写或淘汰排序之后的缓存线请 求共享相同的源和目标地址,那么可能存在若干排序选项。例如,选项1 是后侦听。该选项可强制执行目的地排序而不是源排序。在实施例中,如 果HA接收了缓存线请求并决定或确定可能存在来自相同源的在缓存线请 求之后运行的回写或淘汰,那么HA可向源发出侦听请求(还可向其它CA 发出其它侦听请求)。在这种情况下,缓存线请求可能需要等待来自所有 CA的所有侦听响应以由HA接收和处理。HA可根据缓存侦听滤波器作出 决定,或HA可仅将侦听请求广播至耦合到HA的所有CA。在使用中, 任何处理方案都可由HA使用,只要HA响应缓存线请求考虑侦听响应的 影响(例如,根据含最新数据的侦听响应更新的数据、或在接收含淘汰消 息的侦听响应之后更新的目录);例如,选项2是保持源排序。该选项可 强制执行源排序,例如当缓存线请求跟踪回写或淘汰且它们都具有相同的 源和目的地时。此外,选项2可通过请求信道和侦听响应信道强制执行排 序。
图5示出了缓存一致消息处理方法500的实施例,该方法可由含存储器 系统(例如,存储器系统100)的计算机系统实施。假设,出于示例性目的, 存储器系统包括第一存储器代理和第二存储器代理。回想到本文中的存储器 代理可指HA或CA,因此我们可进一步假设第一存储器代理为HA或CA, 而第二存储器代理为能够访问含缓存线的缓存的CA。方法500开始于步 骤510,在步骤510中,第二存储器代理更改缓存线的状态。在步骤520 中,第二存储器代理通过指派给侦听响应的通信信道将非侦听消息发送到 第一存储器代理,其中非侦听消息告知第一存储器代理步骤510中的缓存 线的状态更改。应注意,方法500所示的事务不包括第一和第二存储器代 理之间的任何握手(完成响应和/或确认)。
根据该事务,方法500中的步骤可表示多种不同的事件。在第一示例 中,第一存储器代理为HA,第二存储器代理为CA。在步骤510中,可将 缓存线的状态从脏更改为干净或无效,在这种情况下,步骤520中的非侦 听消息是含脏缓存线中存储的数据的回写消息。在第二示例中,第一存储 器代理为HA或CA,第二存储器代理为CA。在步骤510中,可将缓存线 的状态从干净更改为无效,在这种情况下,步骤520中的非侦听消息为淘 汰消息。
在使用中,由于第一和第二存储器代理(还可能涉及存储器系统中的 额外存储器代理)之间可发生多个事务,因此所属领域普通技术人员将理 解适当时可将额外步骤添加到方法500中。例如,缓存线请求(读或写) 可通过指派给缓存线请求的额外通信信道在第一和第二存储器代理之间 传送。可由第一存储器代理在处理多条消息或请求过程中强制执行源排序 或目的地排序策略。
上述方案可以在网络部件上实施,例如计算机或网络部件,其具有足 够的处理能力、内存资源以及网络吞吐能力来处理其上的必要工作量。图 6示出了网络部件或计算机系统600的实施例,网络部件或计算机系统600 适用于实施本文所公开的方法的一项或多项实施例,例如写事务300、读 事务350、回写事务400、淘汰事务450和消息处理方法500。此外,计算 器系统600中的部件可用于实施本文所述的任意装置,例如存储器系统 100、一致性域实施方式200。计算机系统600包括处理器602,所述处理 器与包含以下项的存储设备通信:存储器代理603、存储器代理605、存 储器代理607、输入/输出(I/O)设备610和发射器/接收器612。虽然处 理器602被图示为单个处理器,但是它并非受此限制而是可以包括多个处 理器。处理器602可以实施为一个或多个中央处理器(CPU)芯片、核(例 如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC), 和/或数字信号处理器(DSP),并且/或者可以是一个或多个ASIC的一部分。 处理器602可用于实施本文所述的任意方案,包括写事务300、读事务350、 回写事务400、淘汰事务450和消息处理方法500。处理器602可以使用硬 件或软硬件的组合来实施。
处理器602和存储器代理603、605和607均可通过总线609彼此通信。 总线609可包括多个通信信道,其中一些通信信道被指派给侦听响应,一些 通信信道被指派给缓存线请求。存储器代理603可以是包括或能够访问辅助 存储器604的HA。存储器代理605可以是包括或能够访问只读存储器(ROM) 606的CA。存储器代理605可以是包括或能够访问随机存取存储器(RAM) 608的CA。辅助存储器604通常包括一个或多个磁盘驱动器或磁带驱动器, 用于数据的非易失性存储,而且如果RAM608的容量不足以存储所有工作 数据,所述辅助存储器则用作溢流数据存储设备。辅助存储器604可以是 一个或多个闪存。辅助存储器604可以用于存储程序,当选择执行这些程 序时,所述程序将加载到RAM608中。ROM606用于存储在程序执行期间 读取的指令以及可能读取的数据。ROM606是非易失性存储设备,其存储 容量相对于辅助存储器604的较大存储容量而言通常较小。RAM608用于 存储易失性数据,并且还可能用于存储指令。对ROM606和RAM608二 者的存取通常比对辅助存储器604的存取快。
发射器/接收器612可用作计算机系统600的输出和/或输入设备。例 如,如果发射器/接收器612用作发射器,其可将数据传出计算机系统600。 如果发射器/接收器612用作接收器,其可将数据传入计算机系统600。发 射器/接收器612可采用以下形式:调制解调器、调制解调器组、以太网卡、 通用串行总线(USB)接口卡、串行接口、令牌环卡、光纤分布式数据接 口(FDDI)卡、无线局域网(WLAN)卡和无线收发器卡例如码分多址 (CDMA)、全球移动通信系统(GSM)、长期演进(LTE)、全球微波 接入互操作性(WiMAX)和/或其它空中接口协议无线收发器卡,以及其 它公知网络设备。发射器/接收器612可使处理器602与因特网或者一个或 多个内网通信。I/O设备610可包括视频监控器,液晶显示器(LCD),触 屏显示器,或其它类型的显示器。I/O设备610还可包括一个或多个键盘、鼠 标、轨迹球或其它公知的输入设备。
应理解,通过将可执行指令编程和/或加载至计算机系统600,处理器602、 辅助存储器604、RAM608、和ROM606中的至少之一被更改,将计算机系 统600的一部分转换成特定机器或装置(例如,本发明宣扬的拥有新颖功能 的处理器系统)。可执行指令可存储于辅助存储器604、ROM606和/或RAM608 上,并加载至处理器602中进行处理。加载可执行软件至计算机所实现的功 能可以通过公知设计规则转换成硬件实施,这在电力工程和软件工程领域 是很基础的。决定使用软件还是硬件来实施一个概念通常取决于对设计稳 定性及待生产的单元数量的考虑,而不是从软件领域转换至硬件领域中所 涉及的任何问题。一般来说,经常变动的设计更适于在软件中实施,因为 重新编写硬件实施比重新编写软件设计更为昂贵。通常,稳定及大规模生 产的设计更适于在如专用集成电路(ASIC)这样的硬件中实施,因为运行 硬件实施的大规模生产比软件实施更为便宜。设计通常可以以软件形式进 行开发和测试,之后通过公知设计规则转变成专用集成电路中等同的硬件 实施,该集成电路硬线软件指令。由新ASIC控制的机器是一特定的机器 或装置,同样地,编程和/或加载有可执行指令的电脑可视为特定的机器或 装置。
本发明公开至少一项实施例,且所属领域的普通技术人员对所述实施 例和/或所述实施例的特征作出的变化、组合和/或修改均在本发明公开的 范围内。因组合、合并和/或省略所述实施例的特征而得到的替代性实施例 也在本发明的范围内。在明确陈述数值范围或限制的情况下,应将此类表 达范围或限制理解为包含属于明确陈述的范围或限制内的类似量值的迭 代范围或限制(例如,从约为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%……50%、51%、52%…… 95%、96%、97%、98%、99%或100%。此外,还特此公开了,上文定义 的两个R值所定义的任何数值范围。除非另有说明,否则术语“约”是指 随后数字的±10%。相对于权利要求的某一要素,术语“可选地”的使用表 示该要素可以是需要的,或者也可以是不需要的,二者均在所述权利要求 的范围内。例如包括、包含和具有等较广义的术语,应被理解为用于支持 较狭义的术语,例如“由……组成”、“基本上由……组成”、以及“大 体上由……组成”等。因此,保护范围不受上文所述的限制,而是由所附 权利要求书定义,所述范围包含所附权利要求书的标的物的所有等效物。 每项和每条权利要求作为进一步公开的内容并入说明书中,且权利要求书 是本发明的实施例。所述揭示内容中的参考的论述并不是承认其为现有技 术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何 参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此 以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其他 细节。
虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可 通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的 实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细 节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征 可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离 散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法 进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以 采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦 合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的, 均不脱离此处公开的精神和范围。

为缓存一致性处理缓存回写和缓存淘汰.pdf_第1页
第1页 / 共20页
为缓存一致性处理缓存回写和缓存淘汰.pdf_第2页
第2页 / 共20页
为缓存一致性处理缓存回写和缓存淘汰.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《为缓存一致性处理缓存回写和缓存淘汰.pdf》由会员分享,可在线阅读,更多相关《为缓存一致性处理缓存回写和缓存淘汰.pdf(20页珍藏版)》请在专利查询网上搜索。

一种由计算机系统实施的方法,所述计算机系统包括第一存储器代理和耦合到所述第一存储器代理的第二存储器代理,其中所述第二存储器代理能够访问包括缓存线的缓存,所述方法包括所述第二存储器代理更改所述缓存线的状态,以及将非侦听消息通过指派给侦听响应的通信信道从所述第二存储器代理发送到所述第一存储器代理,其中所述非侦听消息告知所述第一存储器代理所述缓存线的所述状态更改。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1