减少探听过滤器中的后来无效的行交换方案的制作方法

文档序号:6614635阅读:298来源:国知局
专利名称:减少探听过滤器中的后来无效的行交换方案的制作方法
减少探听过滤器中的后来无效的行交换方案技术领域交换方案。
技术背景00021 作为增加新的计算机系统的计算能力的一种方法,多个 处理器或者具有多个核心的处理器的使用越来越普遍。多处理器和多 核系统共享系统资源、如系统存储器和存储装置。多个处理器或核心 通常访问存储器或存储装置中的相同数据,并尝试同时利用这种数 据。为了实现这个方面,多处理器和多核系统跟踪数据的使用以保持 数据一致性。保持多处理器系统中的数据一致性的一个方面是确保各 处理器中緩存的数据是一致的。例如,各处理器可能在将数据写回系 统存储器之前改变其高速缓存中的数据。如果另一个处理器在被改变 数据写回存储器之前向系统存储器请求这个数据,则数据一致性丟失。100031 用于保持这些系统中的数据一致性的一个常见方案是采 用探听过滤器。要确保数据一致性,处理器或核心可在访问或修改数 据之前向其它处理器发送一致性请求、通常称作探听。传统的探听过 滤器保持来自各处理器或核心的数据请求的高速緩存,以便跟踪各处 理器或核心的高速緩存的内容。,每当处理器从存储器检索数据时,包 含那个数据的标记地址的一致性记录存储在探听过滤器中。但是,探 听过滤器不知道已经由处理器或核心逐出的高速緩存条目,因为不可 能让处理器向探听过滤器发送所有高速緩存命中存储器引用以保持处 理器的高速緩存条目与探听过滤器条目之间的完全匹配。例如,处理器经常引用的行可能在探听过滤器看来是陈旧的,因为该行的活动没 有暴露在内部高速缓存分级结构之外。在另一种情况中,处理器的高 速緩存中的清洁(未修改)行可能被另 一个高速緩存未命中地址取代而 没有通知探听过滤器。因此,探听过滤器可能具有不再由处理器使用 的许多陈旧数据条目。此外,为了在接收到来自处理器或核心的新请 求时为新条目留出空间,探听过滤器可能必须逐出可能仍然在使用的 高速緩存条目。
为了使这个过程对总线的带宽和处理器的使用情况的影 响最小,探听过滤器高速緩存通常足够大到跟踪探听过滤器所涵盖的 处理器中的所有高速緩存的组合大小的若千倍。实际上,探听过滤器 可能比系统中的处理器或核心的高速緩存的总大小要大四到八倍。这 些大探听过滤器占用大量空间,并增加复杂度因而增加集线器控制器 的成本。因此,选择良好的置换策略优于增加探听过滤器大小。另外 还需要对于后来无效的发布的改进。发明内容根据本发明的一方面,本发明涉及一种方法,包括 接收来自多个处理器中的一个处理器的对数据的请求; 至少部分根据所述请求来确定高速緩存条目位置; 将所述数据存储在对应于所述处理器的高速緩存的高速緩存条目 位置上;以及将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲 和单元中。根据本发明的另一方面,本发明涉及一种装置,包括 探听过滤器,可用于接收来自多个处理器中的一个处理器的对数据的请求; 至少部分根据所述请求来确定高速緩存条目位置; 将数据存储在对应于所述处理器的高速緩存的所述高速緩存条目 位置上;以及将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲 和单元中。根据本发明的又一方面,本发明涉及一种系统,包括 SRAM(静态随机存取存储器); 与所述SRAM耦合的多个处理器;以及与所述多个处理器耦合的芯片组,所述芯片组包括可用于从所述SRAM访问数据以及执行以下操作的探听过滤器接收来自多个处理器中的一个处理器的对数据的请求;至少部分根据所述请求来确定高速纟爰存条目位置;将所述数据存储在对应于所述处理器的高速緩存的所述高速緩存条目位置上;以及将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲和单元中。根据本发明的再一方面,本发明涉及一种在其中存储了指令的制造产品,所述指令在由机器执行时引起以下操作接收来自多个处理器中的一个处理器的对数据的请求;至少部分根据所述请求来确定高速緩存条目位置;将所述数据存储在对应于所述处理器的高速緩存的所述高速緩存条目位置上;以及将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲和单元中。


100061 通过附图、作为实例而不是限制来说明本发明的实施 例,附图中,相同的参考标号表示相似的元件。应当注意,本公开中, "一个"实施例的不同说法不一定表示同一个实施例,这类说法表示 至少一个。
系统100可具有任何数量的处理器107、 111,均具有与 处理器107、 111关联的至少一个高速緩存109、 113。在一个实施例 中,系统100可具有固定数量的处理器107、 111。在另一个实施例中, 系统100可具有用于任何处理器的槽或接口 。处理器的数量可通过对 系统添加或去除处理器来改变。
—致性引擎分析搜索结果以及路提示、标记地址数据、总线或处理器标识信息以及组位置指示。在一个实施例中,组位置可 在请求中指定,并且可能是提供一对 一 的 一致映射的固定的 一对一 映 射、简单二进制解码、表查找或者特殊哈希函数解码。路可采用标记 查找(上地址字段比较)来执行,或者在查找中没有找到,则可采用其它选择方案,其中包括但不限于pLRU(伪最近最少使用)、完全或部分 路提示或者随机。
在得到查找过程的结果之后,可将请求转发给适当的目 的地来完成(框405)。在数据结构中找到所请求数据的情况下,将请求 转发给包含数据的处理器和高速緩存。保存所请求数据的处理器或高 速緩存可在查找的结果中表明,并根据在其中发现与请求匹配的亲和 单元来确定。在数据结构中未找到所请求数据的情况下,将请求转发给系统存储器来完成。类似地,如果在数据结构中找到所请求数据, 但它的状态信息表示其无效,则在系统存储器上完成该请求。00401 为了容纳要返回-哈请求处理器高速緩存的数据,更新由 探听过滤器保存的高速緩存的表示。通过为新条目分配空间来更新该 表示。通过检测在其上接收到请求的总线来确定响应请求而进行更新 的亲和单元。还可对请求进行解析或处理,以便确定请求中包含的路 提示或位置提示。根据请求所提供的路提示,以及通过釆用匹配请求 处理器的组选择算法的组选择算法,来选择用于将新条目存储在探听 过滤器中的槽。这样,在请求处理器的高速緩存以及探听过滤器的数 据结构中为所请求数据分配了相应条目。这种方案允许数据结构比传 统高速緩存更小并降低丢弃由处理器的任一个正使用的高速緩存条目 的可能性,以及使集线器控制器、请求处理器和完成请求的任何处理 器之间的总线带宽的使用为最小。100411 进行检查以确定高速緩存中的所选空间是否被占用(框 409)。如果槽未被占用,则更新该槽以反映数据存储在请求处理器高 速缓存的相应空间中(框413)。当请求根据所请求数据的位置从完成了 该请求的处理器返回时或者从存储器返回时,在4果听过滤器中更新数 据。如果槽被占用,则逐出该槽(框411)。在还没有使逐出的数据无效 的情况下,可在将无效消息发送给始发处理器之前将该数据暂时存储 在缓沖器中,以便确保请求处理器不依靠那个数据(框415)。00421 如果从另一个处理器检索到数据,则可通过向那个处理 器发送无效消息来使那个处理器的条目,无效。例如,如果接收到对另 一个处理器的高速緩存中的数据的独占请求,则在接收到数据之后向 那个处理器发送无效消息。
此外,在这个实施例中,如果发生高速緩存未命中,则 可根据在对应亲和单元中是否找到高速緩存条目位置来将一致性记录 存储在高速緩存条目位置或推导高速緩存条目位置上。如果在对应亲和单元中找到高速緩存条目位置,则一致性记录可存储在与高速緩存 对应的亲和单元的高速緩存条目位置上。另一方面,如果在对应亲和 单元中没有找到高速緩存条目位置,则 一致性记录可存储在与高速緩 存对应的亲和单元的推导高速緩存条目位置上。
参照图10C,如果处理器601请求数据项C,并选择其 中要存储数据项C的处理器高速緩存605的由组1、路2表示的高速 緩存条目位置,则在高速緩存未命中时,可从系统存储器中检索数据 项C,并将它存储在处理器高速緩存605的已确定高速緩存条目位置 上(1000C)。由于这个高速緩存条目位置被.占用(即包含数据项A),所以可能从高速緩存605的高速緩存条目位置中逐出数据项A(1002C)。 但是,在这种情况中,无需从对应于高速緩存605的亲和单元(即亲和 单元611A)中逐出一致性记录CRA,因为一致性记录CRA已经迁移 到最后请求该数据项的处理器、即处理器603的亲和单元、在这个实 例中为对应亲和单元611B。因此,当最后一个请求处理器603随后请 求数据项A(即处理器极可能请求数据项A)时,不会产生高速緩存未命 中。图10D说明高速緩存605、 607和对应亲和单元611A、 611B的结 果状态。[00781在图10A-10D中,在图9的流程图所描述的交换方案中 选择的受影响者(即路)可根据部分路提示置换策略来确定。但是,这 个交换方案也适用于其它置换策略,包括但不限于完全路提示置换、 随机置换和pLRU置换策略。I0079J 在一个实施例中,探听过滤器及其组件实现为硬件装 置。在另一个实施例中,这些组件可通过软件(例如微码、汇编语言或 高级语言)来实现。这些软件实现可存储在机器可读媒体中。"机器可 读,,或"机器可访问"媒体可包括能够存储或传递以机器(例如计算机 网络装置、个人数字助理制造工具、具有一个或多个处理器的任何装 置等)可访问形式的信息的任何媒体或机构。机器可读或可访问媒体的 实例包括可记录、不可记录々某体,例如只读存储器(ROM)、随机存取 存储器(RAM)、磁存储媒体、光存储纟某体、物理存储i某体、闪速存储 器或类似的媒体。00801 在以上说明中,参照本发明的具体实施例描述了本发明 的实施例。但是很显然,可对其进行各种修改及变更,而没有背离所 附权利要求书提出的本发明的广义精神和范围。因此,说明和附图要 看作是说明性而不是限制性的。
权利要求
1.一种方法,包括接收来自多个处理器中的一个处理器的对数据的请求;至少部分根据所述请求来确定高速缓存条目位置;将所述数据存储在对应于所述处理器的高速缓存的高速缓存条目位置上;以及将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
2. 如权利要求l所述的方法,其特征在于,将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲和单元中的步骤包括将所 述数据存储在对应于所述高速纟爰存的亲和单元的随机选择的高速缓存 条目位置上。
3. 如权利要求l所述的方法,其特征在于,将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲和单元中的步骤包括将所 述数据存储在对应于所述高速緩存的亲和单元的按照路提示置换策略 所选的高速緩存条目位置上。
4. 如权利要求3所述的方法,其特征在于,还包括确定与所述多 个处理器的另一个处理器对应的另一个高速缓存的另一个高速緩存条 目位置上的高速緩存命中的发生,并且其中将所述一致性记录存储在 对应于所述高速緩存的亲和单元中的所述步骤包括将对应于所述高速 緩存的亲和单元的高速緩存条目位置上的一致性记录与对应于另一个 高速緩存的亲和单元的另一个高速緩存条目位置上的一致性记录交 换。
5. 如权利要求3所述的方法,其特征在于,还包括确定高速緩存 未命中的发生,并且将所述一致性记录存储在对应于所述高速緩存的 亲和单元中的步骤包括如果在所述对应亲和单元中找到所述高速緩存条目位置,则将所述一致性记录存储在所述亲和单元的高速緩存条目位置上;以及如果在所述对应亲和单元中没有找到所述高速乡爰存条目位置,则 将所述一致性记录存储在所述亲和单元的推导高速緩存条目位置上。
6. 如权利要求5所述的方法,其特征在于,所述高速緩存条目位 置包括组和路。
7. 如权利要求6所述的方法,其特征在于,将所述一致性记录存 储在推导高速緩存条目位置上的所述步骤包括将所述一致性记录存储 在所述亲和单元的随机选取的路上。
8. 如权利要求6所述的方法,其特征在于,将所述一致性记录存 储在推导高速緩存条目位置上的所述步骤包括计算路编号。
9. 一种装置,包括 探听过滤器,可用于接收来自多个处理器中的一个处理器的对数据的请求; 至少部分根据所述请求来确定高速緩存条目位置; 将数据存储在对应于所述处理器的高速緩存的所述高速緩存条目 位置上;以及将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲 和单元中。
10. 如权利要求9所述的装置,其特征在于,所述探听过滤器通 过将所述数据存储在对应于所迷高速緩存的亲和单元的随机选择的高 速緩存条目位置上,将对应于所述数据的 一致性记录存储在对应于所 述高速缓存的亲和单元中。
11. 如权利要求9所述的装置,其特征在于,所述探听过滤器通 过将所述数据存储在对应于所迷高速緩存的亲和单元的按照路提示置 换策略所选的高速緩存条目位置上,将对应于所述数据的一致性记录 存储在对应于所述高速緩存的亲和单元中。
12. 如权利要求ll所述的装置,其特征在于,所述探听过滤器还 可用于确定与所述多个处理器的另 一个处理器对应的另 一个高速缓存的另 一个高速緩存条目位置上的高速緩存命中的发生,并且其中所述 探听过滤器通过将对应于所述高速緩存的亲和单元的高速緩存条目位 置上的一致性记录与对应于另一个高速緩存的亲和单元的另一个高速 緩存条目位置上的一致性记录交换,将所述一致性记录存储在对应于 所述高速緩存的亲和单元中。
13. 如权利要求ll所述的装置,其特征在于,所述探听过滤器还 可用于确定高速緩存未命中的发生,并且所述探听过滤器通过以下操 作将所述一致性记录存储在对应于所述高速緩存的亲和单元中如果在所述对应亲和单元中找到所述高速緩存条目位置,则将所 述一致性记录存储在所述亲和单元的高速緩存条目位置上;以及如果在所述对应亲和单元中没有找到所述高速緩存条目位置,则 将所述一致性记录存储在所述亲和单元的推导高速緩存条目位置上。
14. 如权利要求13所述的装置,其特征在于,所述高速緩存条目 位置包括组和路,以及所述探听过滤話通过计算路编号来将所述一致 性记录存储在推导高速緩存条目位置上。
15. —种系统,包括 SRAM(静态随机存取存储器); 与所述SRAM耦合的多个处理器;以及与所述多个处理器耦合的芯片组,所述芯片组包括可用于从所述SRAM访问数据以及执行以下操作的探听过滤器接收来自多个处理器中的一个处理器的对数据的请求;至少部分根据所述请求来确定高速緩存条目位置;将所述数据存储在对应于所述处理器的高速緩存的所述高速緩存条目位置上;以及将对应于所述数据的 一致性记录存储在对应于所述高速緩存的亲和单元中。
16. 如权利要求15所述的系统,其特征在于,所述探听过滤器通过将所述数据存储在对应于所迷高速緩存的亲和单元的按照路提示置 换策略所选的高速緩存条目位置上,将对应于所述数据的一致性记录 存储在对应于所述高速緩存的亲和单元中。
17. 如权利要求16所述的系统,其特征在于,所述探听过滤器还 可用于确定与所述多个处理器的另一个处理器对应的另一个高速緩存 的另一个高速缓存条目位置上的高速緩存命中的发生,并且其中所述 探听过滤器通过将对应于所述高速緩存的亲和单元的高速緩存条目位 置上的一致性记录与对应于另一个高速緩存的亲和单元的另一个高速 緩存条目位置上的一致性记录交换,将所述一致性记录存储在对应于 所述高速緩存的亲和单元中。
18. 如权利要求16所述的系统,其特征在于,所述探听过滤器还 可用于确定高速缓存未命中的发生,并且所述探听过滤器通过以下操 作将所述一致性记录存储在对应于所述高速緩存的亲和单元中如果在所述对应亲和单元中找到所述高速緩存条目位置,则将所 述一致性记录存储在所述亲和单元的高速緩存条目位置上;以及如果在所述对应亲和单元中没有找到所述高速緩存条目位置,则 将所述一致性记录存储在所述亲和单元的推导高速緩存条目位置上。
19. 如权利要求18所述的系统,其特征在于,所述高速緩存条目 位置包括组和路,以及所述探听过滤器通过计算路编号来将所述一致 性记录存储在推导高速緩存条目位置上。
20. —种在其中存储了指令的制造产品,所述指令在由机器执行 时引起以下操作接收来自多个处理器中的一个处理器的对数据的请求; 至少部分根据所述请求来确定高速緩存条目位置; 将所述数据存储在对应于所述处理器的高速緩存的所述高速緩存 条目位置上;以及将对应于所述数据的一致性记录存储在对应于所述高速緩存的亲和单元中。
21. 如权利要求20所述的方法,其特征在于,将对应于所述数据 的一致性记录存储在对应于所迷高速緩存的亲和单元中的操作包括将 所述数据存储在对应于所述高速緩存的亲和单元的按照路提示置换策 略所选的高速緩存条目位置上。
22. 如权利要求21所述的方法,其特征在于,还包括确定与所述 多个处理器的另 一个处理器对应的另 一个高速緩存的另 一个高速缓存 条目位置上的高速緩存命中的发生,并且其中将所述一致性记录存储 在对应于所述高速緩存的亲和单元中的操作包括将对应于所述高速緩 存的亲和单元中的高速緩存条目位置上的一致性记录与对应于另 一个 高速緩存的亲和单元的另一个高速緩存条目位置上的一致性记录交 换。
23. 如权利要求21所述的方法,其特征在于,还包括确定高速緩 存未命中的发生,并且将所述一致性记录存储在对应于所述高速緩存 的亲和单元中的所述 操作包括如果在所述对应亲和单元中找到所述高速緩存条目位置,则将所 述一致性记录存储在所述亲和单元的高速緩存条目位置上;以及如果在所述对应亲和单元中没有找到所述高速緩存条目位置,则 将所述一致性记录存储在所述亲和单元的推导高速緩存条目位置上。
24. 如权利要求23所述的方法,其特征在于,所述高速緩存条目 位置包括组和路,并且其中将所述一致性记录存储在推导高速緩存条 目位置上的操作包括计算路编号。
全文摘要
本发明涉及减少探听过滤器中的后来无效的行交换方案。在一个实施例中,提供一种方法。本实施例的方法提供以下步骤接收来自多个处理器中的一个处理器的对数据的请求,至少部分根据请求来确定高速缓存条目位置,将数据存储在对应于处理器的高速缓存的高速缓存条目位置上,以及将对应于数据的一致性记录存储在对应于高速缓存的亲和单元中。
文档编号G06F12/08GK101236527SQ20071019434
公开日2008年8月6日 申请日期2007年12月14日 优先权日2006年12月14日
发明者B·费希姆, K·普夫莱德雷尔, K·程, M·曼维瓦拉, S·钦塔马尼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1