CN108701092B - 自愈粗粒探听过滤器 - Google Patents

自愈粗粒探听过滤器 Download PDF

Info

Publication number
CN108701092B
CN108701092B CN201780014397.1A CN201780014397A CN108701092B CN 108701092 B CN108701092 B CN 108701092B CN 201780014397 A CN201780014397 A CN 201780014397A CN 108701092 B CN108701092 B CN 108701092B
Authority
CN
China
Prior art keywords
cache
snoop filter
snoop
entry
filter
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
CN201780014397.1A
Other languages
English (en)
Other versions
CN108701092A (zh
Inventor
E·F·罗宾森
K·J·亚历山大
Z·H·萨莫艾尔
B·C·米歇尔森
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108701092A publication Critical patent/CN108701092A/zh
Application granted granted Critical
Publication of CN108701092B publication Critical patent/CN108701092B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0815Cache consistency protocols
    • 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
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

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

本公开涉及过滤在相干多处理器系统中的探听。举例来说,响应于更新在各自具有1级L1高速缓冲存储器的多个本地处理单元间共享的2级L2高速缓冲存储器处的目标存储器位置的请求,可在跟踪所述L1高速缓冲存储器中的项目的探听过滤器中执行基于所述目标存储器位置的查找。如果所述查找未命中所述探听过滤器且所述探听过滤器缺乏空间存储新项目,那么可选择从所述探听过滤器逐出的受害项目,且可将使映射到所述受害项目的每一高速缓存线失效的请求发送到具有映射到所述受害项目的一或多个高速缓存线的所述处理单元中的至少一个。接着可用对应于所述目标存储器位置的所述新项目在所述探听过滤器中替换所述受害项目。

Description

自愈粗粒探听过滤器
技术领域
本文中描述的各方面和实施例大体涉及相干多处理器系统,且明确地说,涉及可过滤对多处理器系统中的一或多个处理器的探听的自愈粗粒探听过滤器。
背景技术
典型多处理器集成电路(即,芯片)利用使用互连总线互连的多个处理器核心。一般来说,一或多个高速缓冲存储器支持每个处理器核心,其中每一高速缓冲存储器通常存储在主存储器与具有固定大小且通常被叫作“高速缓存线”的块中的高速缓冲存储器之间传送的数据文件。在常规基于目录的方法中,每一高速缓冲存储器包含含有与高速缓冲存储于其中的数据文件相关联的所有地址的目录。在每一处理器核心处高速缓冲存储的数据可在互连总线上的所有其它处理器核心间共享。因此,多处理器系统可潜在地具有相同数据的许多复本,一个复本在主存储器中(主存储器可在芯片上或在芯片外),并且一个复本在每一处理器核心高速缓冲存储器中。此外,因为每一处理器核心可与互连总线上的任一其它处理器核心共享本地高速缓冲存储器中的数据,所以现代多处理器系统中的基本问题是,当任一(任何)处理器需要更新给定存储器位置时,如何确保那个存储器位置的所有复本一致或相干(如由所有处理器观测)。一般来说,互连总线包含用以处置各种处理器核心和高速缓冲存储器间的所有相干性业务量以维持高速缓存相干性的硬件机构。
虽然其它变化是可能的,但达成高速缓存相干性的普通方法是使含有目标存储器位置的复本的所有高速缓冲存储器停止使用目标位置的当前复本,这可通过使含有目标存储器位置的高速缓存线失效来达成。一旦已使目标存储器位置的所有高速缓冲存储的复本失效,那么希望更新目标存储器位置的处理器自由地这样做。随后存取那个存储器位置的任一其它处理器将接着从进行更新的处理器或从主存储器获得更新的值。维持多处理器系统中的高速缓存相干性的一个机制利用“探听”,于是需要特定高速缓存线的处理器核心在本地高速缓冲存储器中首先看到。如果处理器核心在本地高速缓冲存储器中发现高速缓存线,那么已发生高速缓冲存储器“命中”。然而,如果处理器核心未在本地高速缓冲存储器中发现高速缓冲存储器行,那么已发生高速缓冲存储器“未命中”,在此情况下,处理器可“探听”与其它处理器相关联的高速缓冲存储器以确定任何其它高速缓冲存储器是否具有所请求的高速缓存线。如果所请求的高速缓存线位于与另一处理器核心相关联的高速缓冲存储器中,那么与其它处理器核心相关联的高速缓冲存储器可“干预”以将高速缓存线提供到请求处理器核心,使得请求处理器核心不必存取来自主存储器的数据。
在只有两个处理器核心和相关联的高速缓冲存储器附接到互连总线的情况下,探听技术可通常良好地工作。举例来说,如果第一处理器核心请求高速缓存线且与第二处理器核心相关联的高速缓冲存储器含有所请求的高速缓存线,那么与第二处理器核心相关联的高速缓冲存储器将提供所请求的高速缓存线到第一处理器核心。否则,与第一处理器核心相关联的高速缓冲存储器将存取来自主存储器的所请求的高速缓存线。然而,随着互连总线支持越来越多的可具有在本地高速缓冲存储器中的所请求数据的处理器核心,需要更复杂的仲裁机构以决定哪一高速缓冲存储器将提供所请求的高速缓存线到请求处理器核心。举例来说,一个仲裁机构可包含在互连总线上实施的探听过滤器,其中所述探听过滤器维护表示在互连总线上的所有处理器核心高速缓冲存储器拥有的高速缓存线的项目。因此,并不将探听请求对互连总线上的所有处理器高速缓冲存储器广播,探听过滤器可引导互连总线只探听可以可能具有数据的复本的处理器高速缓冲存储器。因此,在“探听”相干性协议中,当修改处理器希望修改目标存储器位置时,修改处理器可被叫作“主机”,而其它处理器可被叫作“探听者”。通告具有相干高速缓冲存储器的每一其它处理器,修改处理器打算修改目标存储器位置使得探听者可在看到来自主机的请求后即采取适当行动。
虽然探听协议通常比基于目录的协议定标得好,然而探听协议具有定标弱点,于是活动处理器的数目的增加导致每一活动处理器接收的探听业务量的量的对应增加。因此,探听过滤通常具有首要目标,其为尽可能地减少不必要的探听的数目而不带来面积或等待时间成本,或随着时间进展,归因于累积的错误肯定而减小过滤器探听的能力。
发明内容
以下提出关于本文中公开的一或多个方面和/或实施例的简化概述。因而,不应将以下概述视为与所有预期方面和/或实施例有关的广泛综述,也不应将以下概述看作识别与所有预期方面和/或实施例有关的关键或至关重要的要素,或描绘与任何特定方面和/或实施例相关联的范围。因此,以下概述具有以下唯一目的:以简化形式提出和与本文中所公开的机构有关的一或多个方面和/或实施例有关的某些概念以先于下文呈现的具体实施方式。
根据各种方面,一种具有粗粒实施方案的探听过滤器可实现多处理器系统中的相干性,其中除了自愈(或自校正)方面之外,所述探听过滤器还可有利地具有低面积和低等待时间,使得所述探听过滤器不产生大量错误肯定且不患有随着时间进展减小的过滤探听的能力。因而,所述探听过滤器可具有关于低面积和低等待时间的与粗粒探听过滤器相关联的优点,同时还具有与细粒探听过滤器相关联的可管理性优点,于是过滤探听的能力未减小,且错误肯定不随着时间的过去而累积,这可满足尽可能地减少不必要的探听的首要目标。
举例来说,根据各种方面,一种用于过滤如本文中所描述的相干多处理器系统中的探听的方法可包括接收更新在各自具有1级(L1)高速缓冲存储器的多个本地处理单元间共享的2级(L2)高速缓冲存储器处的目标存储器位置的请求;和基于在跟踪与每一本地处理单元相关联的所述L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找。响应于查找未命中探听过滤器和探听过滤器缺乏可用空间来存储对应于目标存储器位置的新项目,所述方法可进一步包括选择受害项目以从探听过滤器逐出(例如,探听过滤器中最非最近存取的项目、最非最近建立的项目、选自多个最非最近存取的项目中的最非频繁存取的项目、远程探听频繁命中且多个本地处理单元最近尚未存取的一或多个项目、随机项目等)。所述方法可进一步包括将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个,和用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。在各种实施例中,可响应于查找未命中探听过滤器和探听过滤器缺乏可用空间存储对应于目标存储器位置的新项目来清空所述探听过滤器和在每一本地处理单元处的所述L1高速缓冲存储器,在此情况下,从探听过滤器逐出的选定受害项目可包括在探听过滤器中的每一项目且发送到每一L1高速缓冲存储器中的请求可使全部L1高速缓冲存储器被清空。替代地,响应于基于所述目标存储器位置未命中探听过滤器和探听过滤器具有可用空间存储新项目的查找,所述方法可包括在探听过滤器中安装新项目。然而,在查找命中探听过滤器的情况下,可识别多个本地处理单元当中的具有映射到目标存储器位置的一或多个高速缓存线的至少一个处理单元,可将本地探听转发到所述识别的至少一个处理单元,且可因此更新用以在探听过滤器缺乏可用空间存储新项目后即选择受害项目被逐出的一或多个度量。
根据各种方面,在查找未命中探听过滤器且探听过滤器缺乏可用空间存储对应于目标存储器位置的新项目的情况下,所述方法可进一步包括在临时溢出区域中建立所述新项目,和在接收到指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的来自所述至少一个处理单元的确认后,即将所述新项目从所述临时溢出区域移动到所述探听过滤器内以替换所述选定受害项目。此外,响应于接收到指示远程主机已请求在于临时溢出区域中建立新项目后且在接收到确认前修改存储器位置的权限的一或多个远程探听,所述方法可包括响应于所述远程探听命中所述选定受害项目或所述新项目,将所述远程探听转发到所述多个本地处理单元中的一或多个。替代地,根据各种方面,所述方法可包括在接收到所述确认前临时停用所述探听过滤器,在此情况下,在停用所述探听过滤器时接收到的远程探听可转发到在每一本地处理单元处的所述L1高速缓冲存储器。
根据各种方面,相干多处理器系统可因此包括:各自具有L1高速缓冲存储器的多个本地处理单元;在所述多个本地处理单元间共享的L2高速缓冲存储器,其中所述L2高速缓冲存储器包含被配置成跟踪与每一本地处理单元相关联的所述L1高速缓冲存储器中的项目的探听过滤器;和处理器,其被配置成接收更新在所述L2高速缓冲存储器处的目标存储器位置的请求;基于所述目标存储器位置执行在所述探听过滤器中的查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间存储对应于所述目标存储器位置的新项目,选择受害项目从所述探听过滤器逐出;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;和用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
根据各种方面,如本文中所描述的一种设备可包括用于接收更新在各自具有L1高速缓冲存储器的多个本地处理单元间共享的非包含性L2高速缓冲存储器处的目标存储器位置的请求的装置;用于基于跟踪与每一本地处理单元相关联的所述L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找的装置;用于响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间存储对应于所述目标存储器位置的新项目来选择受害项目从所述探听过滤器逐出的装置;用于将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个的装置;和用于用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目的装置。
根据各种方面,如本文中所描述的一种计算机可读媒体可存储计算机可执行指令,所述计算机可执行指令被配置成使一或多个处理器接收更新在各自具有L1高速缓冲存储器的多个本地处理单元间共享的非包含性L2高速缓冲存储器处的目标存储器位置的请求;基于跟踪与每一本地处理单元相关联的所述L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间存储对应于所述目标存储器位置的新项目来选择受害项目从所述探听过滤器逐出;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;和用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
与本文中公开的方面和实施例相关联的其它目标和优点基于附图和详细描述将对所属领域的技术人员显而易见。
附图说明
随着在结合附图考虑时通过参考以下详细描述变得更好地理解本文中所描述的各种方面和实施例以及其许多附带优点,将容易获得对本文中所描述的各种方面和实施例以及其许多附带优点的更全面了解,附图只是为了说明而不是限制来提出,且其中:
图1说明根据各种方面的串行化点可处置高速缓存相干性业务量的示范性多处理器架构。
图2说明根据各种方面的实施自愈粗粒探听过滤器的示范性多处理器架构。
图3说明根据各种方面的更详细地展示关于自愈粗粒探听过滤器可如何操作的示范性架构。
图4A说明根据各种方面的起始粗粒探听过滤器自愈(或自校正)模式的示范性方法。
图4B说明根据各种方面的执行在粗粒探听过滤器中的查找而不建立新项目或起始自愈(或自校正)模式的示范性方法。
图5A说明根据各种方面的自愈已达到对过滤探听的能力的限制的粗粒探听过滤器的示范性方法。
图5B说明根据各种方面的在达到对过滤探听的能力的限制后即自愈粗粒探听过滤器的另一方法。
图6说明根据各种方面的自愈粗粒探听过滤器的示范性替代方法。
图7A说明根据各种方面的本地1级(L1)高速缓冲存储器可关于在已达到对过滤探听的能力的限制的粗粒探听过滤器处执行的自愈操作而发挥性能的示范性方法。
图7B说明根据各种方面的本地L1高速缓冲存储器可关于在粗粒探听过滤器处执行的自愈操作而发挥性能的另一示范性方法。
图8说明根据各种方面的可实施本文中描述的自愈粗粒探听过滤器的示范性多处理器系统。
图9说明根据各种方面的可实施本文中描述的自愈粗粒探听过滤器的示范性服务器。
具体实施方式
以下描述和相关图式中公开各个方面和实施例,以展示与示范性方面和实施例有关的具体实例。在阅读本公开之后,相关领域的技术人员将显而易见替代方面和实施例,且可在不脱离本公开的范围或精神的情况下,建构并实践替代方面和实施例。另外,将不详细地描述众所周知的元件,或可省略所述元件,以免混淆本文中公开的方面和实施例的相关细节。
词语“示范性”在本文中用以意指“充当实例、例子或说明”。本文中描述为“示范性”任何实施例未必应解释为比其它实施例优选或有利。同样地,术语“实施例”并不需要所有实施例均包含所论述特征、优势或操作模式。
本文中使用的术语仅描述特定实施例且不应解释为限制本文中公开的任何实施例。如本文所使用,单数形式“一”和“所述”希望还包括复数形式,除非上下文另外清楚地指示。所属领域的技术人员将进一步理解,如本文中所使用的术语“包括(comprises、comprising)”和/或“包含(includes、including)”指定所陈述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件和/或其群组的存在或添加。
另外,各个方面和/或实施例可就将由(例如)计算装置的元件执行的动作序列来进行描述。所属领域的技术人员将认识到,本文中描述的各种动作可由具体电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指令或由两者的组合执行。另外,本文中描述的这些动作序列可被视为全部体现在具有存储于其上的一组对应的计算机指令的任何形式的非暂时性计算机可读媒体内,所述计算机指令在执行时将使相关联的处理器执行本文中描述的功能性。因此,本文所描述的各种方面可以若干不同形式体现,已预期其全部在所要求的主题的范围内。另外,对于本文中描述的方面中的每一个,任何此类方面的对应形式可在本文中描述为(例如)“被配置成……的逻辑”和/或被配置成执行所描述的动作的其它结构组件。
如在本文中进一步详细描述,本文中公开的各种方面和实施例大体涉及多处理器系统中的相干性,且更确切地说,涉及一种粗粒探听过滤器,除了自愈(或自校正)方面之外,其还可有利地具有低面积和低等待时间,使得粗粒探听过滤器不产生大量错误肯定且不患有随着时间进展而减小的过滤探听的能力。
明确地说,作为一般背景,典型的“探听”相干性协议涉及通知具有相干高速缓冲存储器的每一处理器另一处理器已请求修改目标存储器位置的权限的时间(例如,因为处理器希望修改目标存储器位置或可在未来修改目标存储器位置,使得在准备时推测性地请求唯一复本以潜在地在未来写入线)。在那种情况下,请求修改目标存储器位置的权限的处理器被叫作“主机”,且其它处理器被叫作“探听者”。在看到来自主机的修改目标存储器位置的请求后,探听者即基于查找操作采取适当行动。举例来说,响应于查找操作导致高速缓存未命中,不需要进一步行动。替代地,在查找操作导致完全高速缓存命中的情况下,探听者可使对应的本地副本失效。然而,响应于发现修改的命中,探听者通常(i)使线失效,或(ii)指导主机等待,同时探听者在使高速缓存线失效前用修改的信息更新存储器,其中探听者响应于修改的高速缓存命中采取的特定行动可取决于与已实施的相干性协议相关联的细节。其它可能性是,探听者可能不能够执行高速缓冲存储器查找和/或使之失效,在此情况下,探听者将通常以可使主机重新发送请求的“重试”来响应。替代地,互连件可充当用于主机的代理。在任一情况下,探听者将需要再次看到请求,使得探听者可在主机完成写入操作以更新目标存储器位置前执行查找和使本地副本失效。
虽然探听协议定标得比基于目录的协议好,但探听协议倾向于患有可在本文中所描述的各种方面和实施例中解决的定标弱点。具体地说,随着特定多处理器系统中的活动处理器的数目增加,在每一活动处理器处接收到的探听业务量的对应增加在增加。举例来说,假设每十(10)个指令包含一(1)个存储指令且进一步假设处理器维持每循环一(1)个指令(instruction per cycle,IPC)处理量,所述多处理器系统将经历每10个循环两(2)个存储。此外,每一处理器将潜在地在每10个循环(对应于其它处理器执行的存储)接收探听请求。在处理器数目增加到10的情况下,多处理器系统将经历10个循环中的10个存储,从而导致每一探听者在10个循环中接收到九(9)个探听。随着继续定标,在具有二十(20)个处理器的多处理器系统中,每一探听者将需要在每循环处理多达~2个探听,等等。此外,虽然可将存储指令搜集到执行单个写入的群组内且因此每群组执行单个探听,但定标问题仍存在。在一些点,多处理器系统可产生比每一处理器能够在不影响与非探听操作相关联的处理量的情况下处置的探听业务量多的探听业务量。因此,随着现代多处理器系统正支持越来越多的可各自具有多个核心的处理器(例如,双核处理器、四核处理器等),存在不断增加的尽可能地减少不必要的探听业务量的需求。
参看图1,说明串行化点160可处置高速缓存相干性业务量的示范性多处理器架构100。在图1中展示的的实例架构100中,串行化点160连接到若干附接的处理器110q、110r、110s、110t,其中处理器110q-110t各分别具有伴有本地1级(L1)高速缓冲存储器(未图示)的多个处理单元112q、112r、112s、112t。此外,处理器110q-110t各自具有在相应多个处理单元112q-112t间共享的相应本地2级(L2)高速缓冲存储器114q、114r、114s、114t。然而,所属领域的技术人员应了解,图1中说明的特定布置只是示范性,于是多处理器架构100可包含包含多个中央处理单元(CPU)的任何合适布置,所述CPU共享一或多个高速缓冲存储器(例如,具有两个或更多个处理器核心的单个处理器、包含具有单个核心的一或多个处理器的多个处理器等)。此外,如在以下描述中所使用,特定高速缓冲存储器被称作“较低级”还是“较高级”可取决于与处理器的靠近性,其中“较高级”高速缓冲存储器可被定义为相对于更远离处理器的“较低级”高速缓冲存储器更靠近处理器。举例来说,在图1中展示的架构100中,L2高速缓冲存储器114q-114t相对于与每一个别处理单元112相关联的L1高速缓冲存储器更远离处理单元112q-112t,于是L2高速缓冲存储器114q-114t相对于L1高速缓冲存储器可被称作“较低级”,且L1高速缓冲存储器相对于L2高速缓冲存储器114q-114t可被称作“较高级”。此外,如果架构100是包含一或多个3级(L3)高速缓冲存储器,那么L3高速缓冲存储器将相对于L2高速缓冲存储器114q-114t为“较低级”,且L2高速缓冲存储器114q-114t将相对于L3高速缓冲存储器为“较高级”。
根据各种方面,在图1中展示的架构100中,离开主机的每一高速缓冲存储器相干请求(例如,写入)转到串行化点160。高速缓存相干性协议通常使用先到先得概念,于是入站的探听到达一个探听者的次序与探听到达所有探听者的次序相同。因而,串行化点160可为先入先出(FIFO)队列或可分辨来自多个主机的大体上同时请求的任何其它合适的机制。从串行化点160,可将请求对所有探听者广播。以下描述将提供基于来自处理器110q(标注为M-q并且下文也这样叫)的请求的实例,于是请求处理器M-q 110将为主机且探听者将为处理器110r、110s、110t(在图1中标注为M-r、M-s、M-t并且下文也这样叫)。此外,注意,主机请求带宽为4×在探听者处的探听带宽,因为来到串行化点160的在图1中展示的每一入站箭头152表示每循环每主机的唯一请求。然而,出站箭头154(还从串行化点160角度来看)被逻辑共享,这是因为所有探听者接收到同一探听。
因此,需要帮助所需探听带宽(对应于出站箭头154)保持与潜在请求带宽(对应于入站箭头152)一致的机制。举例来说,假定串行化点160能够知晓来自M-q 110q的请求正在存取未在M-r 110r、M-s 110s还是M-t 110t处高速缓存的的存储器位置,那么串行化点160可避免基于来自M-q 110q的请求发送探听。此外,串行化点160可取而代之发送对另一请求的探听,并且因而,潜在地在同一循环中处置两个请求(即,避免探听的请求和发出探听的请求)。在这当中,避免探听和创造在同一循环中处置多于一个请求的可能性帮助探听带宽(出站箭头154)更密切匹配请求带宽(入站箭头152)。因而,如本文中所使用的术语“探听过滤”通常指关于在探听者处的高速缓冲存储器内容的知识用以避免发送不必要的探听的概念。
存在可实施探听过滤的若干方式,各自具有某些优点和缺点。“细粒度探听过滤器”(FGSF)通常以高速缓存线精细度跟踪在探听者高速缓冲存储器中的内容。取决于特定实施方案,FGSF(i)精确地知道在FGSF正在跟踪的高速缓冲存储器中含有什么,或(ii)知道被跟踪的高速缓冲存储器中可含有什么。精确FGSF通常被视为探听过滤金标准,其中精确FGSF准确地知道何时发送和何时不发送探听到目标探听者。在那个意义上,精确FGSF可被称为大体上不具有错误肯定,这是因为精确FGSF在探听者中复制高速缓冲存储器标签且准确地知道高速缓冲存储器含有(或可含有)什么。然而,基于管理精确FGSF需要的通信和能量(例如,探听者必须通知FGSF关于任何完全的逐出,不仅仅是修改的逐出),导致无错误肯定的精确度携带着高的开销成本。就面积来说,归因于重复标签,精确FGSF也是昂贵的。虽然存在利用包含性样式的重复标签而非完全重复标签且因此具有较少需要管理的探听者通信的不太精确的FGSF实施方案,但重复标签的降低的精确度导致至少一些错误肯定。因此,在不太精确的FGSF实施方案中,可将比实际需要发送多的探听发送到探听者。此外,不太精确的FGSF具有与精确FGSF类似的高面积和电力成本,这是因为不太精确的FGSF仍然高速缓存线跟踪探听者内容,但不太精确的FGSF可具有比精确FGSF少的通信开销。
额外已知过滤技术利用“布隆”过滤器,其可具有细粒度实施方案,其中布隆过滤器“跟踪”在高速缓存线精细度层上的探听者高速缓冲存储器内容。在与以上已描述的细粒度过滤器类型类似的方面中,布隆过滤器还不具有错误否定,如果探听过滤器将要指示当事实上实际需要探听时特定请求不需要探听,因此导致失去的高速缓存相干性,那么这将发生。然而,因为布隆过滤器使用若干地址散列跟踪探听者高速缓冲存储器内容,所以布隆过滤器可产生错误肯定,这发生在过滤器指示当事实上不需要探听时需要针对特定请求的探听时。然而,错误肯定稍微可容许(或至少比错误否定可容许),这是因为错误肯定不影响高速缓存相干性,但错误肯定可影响性能和能量使用。此外,管理布隆过滤器以清除从探听者逐出的线变得有问题,这是因为布隆过滤器可饱和且失去清除随着时间的过去而累积的错误肯定的能力(但饱和的布隆过滤器可保留执行过滤功能的能力)。虽然布隆过滤器通常需要比FGSF少的面积,但布隆过滤器不太精确,且归因于累积的错误肯定(尤其归因于与用以跟踪探听者高速缓冲存储器内容的散列化有关的地址混叠)随着时间的过去管理更有问题。此外,与布隆过滤器相关联的面积和通信开销随着需要更多精确度而增大。
可能最不昂贵的过滤器(至少就硅面积来说)是粗粒探听过滤器(CGSF)。一般来说,CGSF跟踪地址范围,例如,1GB区域、16KB页面或另一合适范围。在探听者不断存取在跟踪的范围内的任一地址的情况下,当属于那个范围的任何后续存取发生时,探听将被发出到那个探听者。CGSF很小,且当每一主机在处于CGSF精细度内的地址范围(或多个范围)内操作时工作得很好。一般来说,一旦主机开始在第二范围内操作,那么不存在对于那个主机可能的更多过滤,这是因为CGSF只跟踪对于那个主机的单个范围的存在。因此,一旦主机开始使用落在CGSF能够跟踪的范围外的地址,那么必须将所有探听发送到那个主机,这是因为CGSF可不再消除错误否定”,且如果那个主机未观测所有探听,那么相干性处于风险。应注意,虽然CGSF的此描述是针对每主机仅单个范围,但可实施CGSF以每主机支持多个范围,例如,16个。然而,关键限制仍存在,其中在跟踪已由那个主机高速缓存的地址范围的能力方面,CGSF将达到(饱和)限制,除非所述范围被组织使得范围的数目和每范围的的大小足以覆盖全部地址空间。因而,一旦CGSF饱和,CGSF被有效地停用,直到所有高速缓冲存储器已被清空。解决以上提到的CGSF的问题的一个方法可以是将CGSF可跟踪的地址范围扩大到每主机大于一个的某一数目。然而,这方法并不定标得好,这是因为跟踪额外地址范围需要的面积快速增长,且执行过滤器查找的等待时间随着主机或范围在数目上增长而增加。再一考虑因素是,增大特定范围覆盖的区域的大小增加了错误肯定的数目,这导致探听业务量的不太有效的过滤。
再次参看图1,假定串行化点160具有实施于其中的一些探听过滤器(例如,FGSF、CGSF、布隆过滤器等),所述探听过滤器将只覆盖每一主机群集M-q 110q、M-r 110r、M-s110s、M-t 110t存取的地址。一旦串行化点160决定将探听发送到在用于地址A的M-q 110q处的L2高速缓冲存储器114q,那么L2高速缓冲存储器114q必须接着决定是否将探听转发到(i)每一附接的处理单元112q,P0……Pn,(ii)一些附接的处理单元112q,或(iii)无一个局部附接的处理单元112q。对于需要在较高级高速缓冲存储器(例如,L1高速缓冲存储器)处的内容为较低级L2高速缓冲存储器114的子集的包含性L2高速缓冲存储器114,保证在每一L1高速缓冲存储器处(在每一处理单元112q-112t中)的内容含于相应L2高速缓冲存储器114内。使L2高速缓冲存储器114为包含性可在多处理器系统中有用,这是因为包含性质限制高速缓冲存储器相干消息在存储器层级中的较高级处具有的效应,因为当较高级L1高速缓冲存储器可与相干性检查和使之失效隔离(归因于包含性质)时可改善总体性能。举例来说,如果取决于L2高速缓冲存储器114是否已个别地跟踪每一处理单元是否已高速缓存线,探听在L2高速缓冲存储器114中命中,那么L2高速缓冲存储器114需要(i)如果L2高速缓冲存储器114未关于L1存取直接跟踪,那么将探听转发到所有局部附接的处理单元112,或(ii)如果L2高速缓冲存储器114具有包含性位,那么将探听不转发到任何一个,或只转发到局部附接的处理单元112中的一些。因而,当L2高速缓冲存储器114为包含性时,L2高速缓冲存储器114具有固有的探听过滤能力,其中来自在L2高速缓冲存储器114中未命中的串行化点160的入站探听完全不需要转发到任一局部附接的处理单元112。然而,包含性高速缓冲存储器设计固有地浪费面积和带宽,这是因为在较高级中的每一高速缓存线在较低级中复制,从而导致额外面积成本,且在较低级中的更新触发在其它级中的更多得多的更新,从而导致额外带宽成本。此外,包含性质可降低L2高速缓冲存储器114有效性,尤其当若干处理单元112共享同一L2高速缓冲存储器114时(虽然一旦已作出制造L2高速缓冲存储器114的决策,包含性质即可提供高效且廉价的细粒过滤器)。
在替代地使在M-q 110q处的L2高速缓冲存储器114q为非包含性的实施方案中,串行化点160可仍然能够过滤器是否将探听转发到M-q 110q。然而,L2高速缓冲存储器114q将未必知道应将探听转发到哪些处理单元112q(P0……Pn)。并且,当局部附接的处理单元112q(例如,P0)起始对于特定目标存储器位置的更新请求时,L2高速缓冲存储器114q将需要确定是否将本地探听发送到其它局部附接的处理单元112q,不管是否需要到串行化点160的请求。
如果L2高速缓冲存储器114q可既不过滤对应于图1中的出站箭头154的外部入站探听业务量,也不过滤内部探听业务量,那么附接的处理单元112q可快速地被大量不必要的探听压垮。明确地说,探听可以为不必要的,这是因为每一处理单元112q通常在相应处理单元112q拥有的页面和地址范围内操作,于是在不存在探听过滤的情况下,将预期多数探听业务量在L1高速缓冲存储器发现未命中。在那个意义上,执行在本地L1高速缓冲存储器中的查找且发现未命中的任何探听在理论上是不必要的。来到L2高速缓冲存储器114的不必要的探听可对系统性能具有不利影响,但来到个别处理单元112(即,与其相关联的本地L1高速缓冲存储器)的不必要的探听对系统性能具有较大不利影响,这是因为局部执行的指令高度利用L1高速缓冲存储器。到L1高速缓冲存储器的探听业务量因此对在处理单元112处的指令执行流干扰得比到L2高速缓冲存储器114的探听业务量多。
因此,本文中所描述的各种方面和实施例可利用具有粗粒探听过滤器可关于低面积和低等待时间提供的优点同时还具有与细粒探听过滤器相关联的可管理性优点的探听过滤器,于是过滤探听的能力不减小且错误肯定不随着时间进展而累积,这可满足尽可能地减少不必要的探听的首要目标。
举例来说,根据各种方面,图2说明示范性多处理器系统200,其包含至少一个处理器210,所述处理器具有非包含性2级(L2)高速缓冲存储器230和在其中实施的探听过滤器234以过滤到共享非包含性L2高速缓冲存储器230的多个附接的处理单元220当中的一或多个处理单元的探听。明确地说,非包含性L2高速缓冲存储器230可通常省却在与个别处理单元220相关联的1级高速缓冲存储器222中的内容含于较低级L2高速缓冲存储器230中的要求。举例来说,然而从包含性高速缓冲存储器(例如,L2高速缓冲存储器230)逐出受害项目将需要对应的返失效和从任何较高级高速缓冲存储器(例如,L1高速缓冲存储器222)的逐出,非包含性L2高速缓冲存储器230不需要L1高速缓冲存储器222逐出对应于从非包含性L2高速缓冲存储器230逐出的受害项目的项目。
因此,L1高速缓冲存储器222可含有已从非包含性L2高速缓冲存储器230逐出的数据。因而,为了解决可引起的问题,凭这些问题,非包含性L2高速缓冲存储器230将未必知道将外部入站探听转发到哪些处理单元220,和/或当另一局部附接的处理单元220起始更新特定目标存储器位置的请求时,是否将本地探听发送到一或多个局部附接的处理单元220,探听过滤器234可维护表示所有本地处理单元220在本地L1高速缓冲存储器222内拥有的高速缓存线的项目。举例来说,在各种实施例中,探听过滤器234可具有粗粒实施方案,这是因为细粒度探听过滤器(例如,包含性L2高速缓冲存储器)在省却复制在较低级L2高速缓冲存储器230处的1级高速缓冲存储器222中的内容的要求的非包含性实施方案中是不可能的。此外,细粒探听过滤器(例如,重复的L1标签)可归因于与其相关联的高面积成本而为不合需要的,且归因于错误肯定和维持实时过滤器以减少错误肯定的有限能力,布隆过滤器也不是合乎需要的。
因此,图2中展示的探听过滤器234可具有粗粒实施方案,其中过滤器控制器236和过滤器项目替换管理器238可用以当已达到对探听过滤器234的限制时自校正探听过滤器234。在各种实施例中,探听过滤器234可按任何精细度(例如,1KB、1MB、1GB等)设计以容纳与在局部附接的处理单元220上执行的一或多个应用软件线程相关联的工作集合(例如,16MB)。然而,通常不能依赖于操作系统来分配邻接物理地址空间以符合与应用软件线程相关联的需求。举例来说,响应于特定应用程序请求系统存储器260(其可包含随机存取存储器(RAM)(例如,动态RAM(DRAM)、静态RAM(SRAM)等))中的128KB地址空间,操作系统可指派贯穿系统存储器260随机分布的三十二(32)个4KB页面。
在各种实施例中,粗粒探听过滤器234可跟踪具有4KB(页面)精细度的存储器块。然而,所属领域的技术人员应了解探听过滤器234可被实例以过滤(或跟踪)八(8)个页面或取决于多处理器系统200中的面积预算和工作负荷需求可为适当的任何其它合适的数目个页面。举例来说,假定L1高速缓冲存储器222具有16KB容量和4KB页面大小,那么少为四(4)个的页面可完全填充L1高速缓冲存储器222,在某些实施方案中,这可为过度限制性的。因此,探听过滤器234可被实施以过滤每处理单元220多达n个页面,其中n可具有取决于在多处理器系统200中的面积预算和工作负荷需求的实施方案具体值。替代地,在各种实施例中,探听过滤器234可被设计成具有在各种局部附接的处理单元220间共享的项目的集区。因而,总体概念是,探听过滤器234可被设计成使用专用于各种局部附接的处理单元220和/或在其间共享的项目跟踪任何合适数目个存储器块,但在某一点,探听过滤器234可在可跟踪的内容方面达到限制。
举例来说,在各种实施例中,非包含性L2高速缓冲存储器230和每一L1高速缓冲存储器222可在复位时是空的。当一或多个处理单元220开始存取系统存储器260中的存储器位置时,可将请求发送到被配置成相互耦合多处理器系统200中的各种组件和管理在多处理器系统200中的各种组件间的数据传送的系统总线250。因此,当特定处理单元220(例如,处理单元P0)请求对系统存储器260中的目标存储器块的存取(例如,以读取目标存储器块或写入到目标存储器块)时,处理单元220可首先确定本地L1高速缓冲存储器222是否具有对应于目标存储器块的项目。L1高速缓冲存储器222可检查在可含有那个地址的任何高速缓存线中的请求的目标存储器块的内容,并且如果目标存储器块在L1高速缓冲存储器222中,那么发现高速缓冲存储器“命中”。否则,如果未在L1高速缓冲存储器222中发现目标存储器块,那么L1高速缓冲存储器“未命中”已发生,在此情况下,可针对目标存储器块检查L2高速缓冲存储器230。如果目标存储器块还未在L2高速缓冲存储器230中发现,那么L2高速缓冲存储器未命中已发生。在此情况下,可将高速缓存线从系统存储器260复制到非包含性L2高速缓冲存储器230内和到L1高速缓冲存储器220内,且可创建对应的高速缓存项目。此外,因为L2高速缓冲存储器230具有非包含性实施方案,所以当逐出一或多个受害项目以腾出空间存储新高速缓存项目时,可不需要L1高速缓冲存储器222执行对应的逐出。一般来说,在L2高速缓冲存储器230和L1高速缓冲存储器220中创建的高速缓存项目可包含复制的高速缓存线(即,目标存储器块的数据)以及系统存储器260(例如,“标签”)中的请求的位置(即,与目标存储器块相关联的物理地址)。
此外,在各种实施例中,可按需要针对对系统存储器260中的在用于存取处理单元的探听过滤器234中尚未建立的块的每一存取在探听过滤器234中建立项目。因为探听过滤器234具有粗粒实施方案且可只跟踪每处理单元220多达n个独特页面,所以一旦特定处理单元220(例如,处理单元Pn)存取独特页面n+1,那么探听过滤器234需要作出决策。最简单的决策将是使探听过滤器234饱和,意味着关于已存取独特页面n+1的处理单元220,硬件将必须自动停用探听过滤器234,这是因为探听过滤器234已失去跟踪在与其相关联的L1高速缓冲存储器222处的内容的能力。替代地,在探听过滤器234具有在各种局部附接的处理单元220间共享的项目集区的情况下,当已使用集区中的所有项目且任何局部附接的处理单元220尝试存取新的独特页面时,探听过滤器234可饱和。不管怎样,探听过滤器234可廉价地跟踪(例如,经由多热向量)已失去过滤能力的处理单元220,所述处理单元基本上包含持有不能放到探听过滤器234内的地址的任一(任何)处理单元220,不管探听过滤器234分配或另外管理项目的方式。然而,当探听过滤器234失去针对一或多个处理单元220过滤探听的能力时,探听过滤器234应仍然能够关于其它处理单元220有效地过滤探听,直到其它处理单元220也请求持有探听过滤器234不能登录的地址。因而,当归因于可跟踪的页面的数目的限制,探听过滤器234失去针对特定处理单元220过滤的能力时,探听过滤器234可设定多热向量中对应于已失去过滤能力的处理单元220的位。当对应于处理单元220的位已在多热向量(或其它合适的跟踪机构)中设定时,所述位可指示探听过滤器234可不再针对对应的处理单元220过滤探听,因为探听过滤器234可不再滤出针对那个处理单元220的探听,所以所述处理单元因此看到所有探听。
因此,不管探听过滤器234使用专用还是共享项目,关于已失去过滤探听的能力的局部附接的处理单元220中的一或多个停用探听过滤器234可造成各种问题。举例来说,L2高速缓冲存储器230将不知道是否将从一或多个远程处理器240接收的任何外部入站探听转发到已停用过滤的处理单元220。因此,为了处置这条件,将迫使L2高速缓冲存储器230仅将所有外部入站探听转发到停用探听过滤的处理单元220(例如,Pn)。此外,当另一局部附接的处理单元220(例如,处理单元P0)起始更新目标存储器位置的请求时,探听过滤器234将不能够确定是否将本地探听发送到已停用过滤的处理单元220,不管是否需要到系统总线250的请求来存取系统存储器260中的目标存储器位置。
因而,根据各种方面,当探听过滤器234已达到对跟踪独特存储器块的能力的限制时,探听过滤器234可起始自愈(或自校正)模式以维持跟踪独特存储器块的能力。更明确地说,在各种实施例中,过滤器控制器236可使用过滤器项目替换管理器238选择项目从探听过滤器234逐出。举例来说,在各种实施例中,过滤器控制器236可使用过滤器项目替换管理器238确定基于探听过滤器234中的年限的最非最近建立的项目(例如,基于项目安装于探听过滤器234中的次序的FIFO)、最非频繁使用的项目、随机项目等。此外,在待从探听过滤器234逐出的项目为最非频繁使用的项目的情况下,可根据对所述项目的存取与总体最近存取之间的比率确定最非频繁使用的项目。举例来说,在各种实施例中,当基于最非频繁使用的项目选择受害项目时,受害项目可为预定数目个最非最近存取的项目(例如,四(4)个最非最近存取的项目)当中的具有最少存取的项目,由此防止将可能具有低存取计数的最近安装的项目为受害项目。此外,在各种实施例中,可使用计时器周期性地递减所有计数,使得以前“热”的项目将随着时间的过去而“冷”,除非继续存取以前热的项目。响应于过滤器控制器236挑选受害项目从探听过滤器234逐出,可通知L1高速缓冲存储器222从对应于受害项目的存储块(例如,页面)逐出每一线,其中L1高速缓冲存储器222可接着展开请求到一系列查找以逐线逐出对应于受害项目的页面/范围。替代地,L1高速缓冲存储器222可简单地清空映射到受害项目的所有高速缓冲存储器集合而不执行查找,这可消除执行标签读取的需求(虽然清空映射到受害项目的所有高速缓冲存储器集合可具有一些非目标页面可最终以被不必要地逐出结束的副作用)。
根据各种方面,探听过滤器234可接着等待来自L1高速缓冲存储器222的完成指示,在这时间期间,待从探听过滤器234逐出的受害项目可保持处于探听过滤器234中且继续与其相关联的过滤功能。此外,探听过滤器234可包含“溢出区域”以临时存储待建立的新项目,其中待建立的新项目可执行来自溢出区域的与其相关联的过滤功能,直到将新项目移动到主要探听过滤器234内(即,在已逐出受害项目后)。替代地,可临时停用探听过滤,直到在探听过滤器234中建立新项目,伴有一起到来的任何探听将被转发到L1高速缓冲存储器222的效应。
在具有本文中提供的描述的上下文中,术语“清空”和其变化形式可大体意味着如果高速缓存线被清除,那么高速缓存线失效,或如果高速缓存线被修改,那么高速缓存线移动到较低级高速缓冲存储器/存储器(例如,从L1高速缓冲存储器222到L2高速缓冲存储器230,从L2高速缓冲存储器230到L3高速缓冲存储器(如果存在),或如果不存在L3高速缓冲存储器,那么到系统存储器260,等等)。因此,涉及“清空”特定高速缓冲存储器的任何参考或描述涵盖高速缓冲存储器内容全部失效和/或高速缓冲存储器内容移动到较低级高速缓冲存储器/存储器且失效的实施方案。替代地,涉及使特定页面、范围等失效的任何参考或描述涵盖属于或另外映射到指定页面、范围等的任何高速缓存线失效和/或属于或另外映射到指定页面、范围等的高速缓存线移动到较低级高速缓冲存储器/存储器且接着失效的实施方案。在后者情况下,所属领域的技术人员应了解仅在实际在那个时候存在于高速缓冲存储器中的受害范围内的高速缓存线将需要移动到较低级高速缓冲存储器/存储器(例如,在受害范围涵盖六十四(64)个64B线的实施方案中,L1高速缓冲存储器222可仅已存取所述范围的某一子集且因此将只需要将那个子集移动到L2高速缓冲存储器230)。
在各种实施例中,不挑选受害项目从探听过滤器234逐出,当探听过滤器234溢出时,自愈模式可清空探听过滤器234和全部L1高速缓冲存储器222,并且因为所有高速缓冲存储器空着,所以探听过滤可接着从复位重新开始。虽然从性能或功率的角度看来,清空全部探听过滤器234和全部L1高速缓冲存储器222可能未必合乎需要人,但在所有高速缓冲存储器空的情况下从复位重新开始可腾出探听过滤器234中的空间用于新页面,准许探听过滤功能继续,且在变满后,简化探听过滤器234中的项目替换。如果探听过滤器234中的容量与对L1高速缓冲存储器222处的内容的使用期限的预期工作负荷需求平衡,那么清空全部探听过滤器234和L1高速缓冲存储器222的功率和性能影响减轻,这是因为可存在此类清空所有事件的对应减少。如果处理器210在处理器210频繁地被置于睡眠或遇到频繁的情境改变事件(例如,中断)的环境中,那么L1高速缓冲存储器222内容的使用期限将更短。另一方面,如果探听过滤器234容量相对于对L1高速缓冲存储器222中的存储器块的使用期限的工作负荷需求较小,那么L2高速缓冲存储器230的存在可经由清空所有事件减轻自愈探听过滤器234(例如,因为L2高速缓冲存储器230有可能含有从L1高速缓冲存储器222清空的许多数据)。
根据各种方面,图3更详细地说明与以上描述的粗粒探听过滤器相关联的架构,其中图3中展示的架构可实施于任一合适的相干多处理器系统(例如,服务器处理器、移动装置处理器、台式计算机处理器等)中的非包含性2级(L2)高速缓冲存储器处。如图3中所展示,可在如312处所描绘的粗粒探听过滤器处接收到新请求,其中新请求可包括来自远程处理单元310的仅查找请求(例如,入站探听)和/或来自局部附接的处理单元310的查找与更新请求。在任一情况下,新请求312可提供到过滤器控制器320、过滤器项目替换管理器328和可含有一或多个项目323的探听过滤器322。如图3中所描绘,探听过滤器322中的每一项目323可包含可被设定以指示项目323有效且应在于探听过滤器322中执行查找时考虑的有效(V)位。此外,每一项目323可包含具有用以指示哪一(些)局部附接的处理单元310需要看到探听的一或多个参考(ref)位的字段。举例来说,参考位可通常包括跟踪哪一(些)处理单元310已在对应的项目323覆盖的范围内高速缓存一或多个线的位向量,或参考位可替代地为与项目323已被指派到的一个处理单元310相关联的识别符(ID)。在各种实施例中,仍然参看图3,探听过滤器322中的每一项目323可进一步包含具有指示与项目323覆盖的过滤器范围相关联的物理地址的一或多个位的页面地址(PA)字段(例如,对于44b物理地址空间中的4KB页面将为PA(43:12)的页面地址)。当项目323有效时,可将PA字段与相关联于执行过滤器查找以确定在探听过滤器322中是否存在命中的操作(op)的物理地址比较,在此情况下,用于导致命中的项目323的参考(ref)位被多路传输出以确定何处转发探听。
根据各种方面,关于来自远程处理单元310的仅查找请求312,可将仅查找请求312提供到过滤器控制器320、过滤器项目替换管理器328和探听过滤器322。响应于仅查找请求发现探听过滤器322中含有的一或多个项目323间的命中,过滤器控制器320可基于与命中项目323相关联的参考位将探听线地址转发到一或多个较高级高速缓冲存储器340,如332处所描绘。替代地,响应于仅查找请求导致未命中(例如,在查找不匹配探听过滤器322中含有的任何项目323的情况下),过滤器控制器320可滤出探听,意味着过滤器控制器320不将入站探听转发到较高级高速缓冲存储器340。此外,在各种实施例中,过滤器项目替换管理器328可被配置成跟踪有多少远程探听正命中在探听过滤器322中的每一项目323,和/或另外当项目323匹配远程探听时,对最非最近和/或最非频繁使用的逻辑进行调整。举例来说,当来自远程处理单元310的外部入站探听正频繁地命中特定项目323时,过滤器项目替换管理器328可将那个项目323考虑为用于替换的良好候选者,这是因为存取那个项目323的过程可能已迁移到另一(远程)处理单元310。因而,即使一或多个本地处理单元310已频繁地存取项目323但并不是最近,过滤器项目替换管理器328仍可将项目323考虑为替换候选者。虽然选择更最近存取的项目323替换可通常不合需要,然而当远程探听正命中项目323而非等待直到项目323变为最非最近存取的项目323不久时,过滤器项目替换管理器328可选择项目323替换。如果项目323正得到来自远程探听的许多命中,那么那些探听将不被滤出。然而,如果来自远程探听的命中是归因于项目323已老化到存取项目323的过程已移动或项目323覆盖仅在本地处理单元310处稀疏地使用的范围的事实,那么项目323在探听过滤器322中具有减少的或极少的有用性,且有可能使比所必要多的探听被转发到本地处理单元310,这渐渐损害了减少不必要的探听的数目的目标。
根据各种方面,当在312处接收的新请求是从本地处理单元310接收的查找与更新时,过滤器控制器320可类似地执行查找以确定探听过滤器中的任何项目323是否匹配在新请求312中指示的目标存储器位置。一般来说,当新请求312源自本地处理单元310时,探听过滤器322中的查找满足两个目的。首先,如果在本地处理单元310处的L1高速缓冲存储器将要在L1高速缓冲存储器(例如,读取op)中安装目标存储器块,那么探听过滤器322中的查找用以那个确定处理单元310是否已具有用于目标范围的有效项目或是否需要建立新的项目。如果op正简单地将数据返回到请求者,那么可不存在将探听发送到其它本地处理单元310的需求,并且这样做通常不必要。然而,在一些处理器实施方案中,L1高速缓冲存储器可跟踪高速缓存线的本地副本是唯一还是共享,在此情况下,L1高速缓冲存储器可能需要在另一处理单元读取所述线使得必要时可将状态降级到共享的情况下看到探听。第二,如果op(或请求类型)将要修改目标存储器块,那么探听过滤器322中的查找可用以确定是否任一(任何)其它本地处理单元310需要看到探听失效以从与其相关联的L1高速缓冲存储器去除所述线的(不久将过时的)复本。因此,响应于来自本地处理单元310的查找发现探听过滤器322中含有的项目323当中的命中,过滤器控制器320可基于与匹配项目323相关联的参考位将探听线地址转发到较高级高速缓冲存储器340,如332处所描绘(虽然探听将通常不被发送回到发起的本地处理单元310,除非在某些情况下实施方案具有这样做的特定需求)。此外,过滤器控制器320可基于对目标存储器位置的存取更新过滤器项目替换管理器328。举例来说,可更新过滤器项目替换管理器328以指示导致命中的项目323被存取使得可基于对匹配项目323的存取按需要更新最非最近使用的项目323、最非频繁使用的项目323等。
在各种实施例中,响应于查找导致未命中,过滤器控制器320可类似地滤出探听且不将本地探听转发到任何较高级高速缓冲存储器340。此外,当在系统存储器中存取存储器块时,探听过滤器322和过滤器项目替换管理器328被合适地更新。举例来说,在探听过滤器具有可用空间的情况下,可将新项目323安装于探听过滤器322中以对应于存取的存储器块,且可适当地更新过滤器项目替换管理器328使得新项目323变为最近建立的项目323。然而,在探听过滤器322不具有可用空间存储新项目323的情况下,可起始以上描述的自愈方面。举例来说,过滤器控制器320可使用过滤器项目替换管理器328选择受害项目323从探听过滤器322逐出(例如,最非最近建立的项目323、最非最近使用的项目323、最非频繁使用的项目323、随机项目323等)。此外,新项目323可临时存储于溢出区域324中。过滤器控制器320可接着通知较高级高速缓冲存储器340以从对应于受害项目323的存储器块(例如,页面)逐出每一线,其中通知可包含具有适当参考位集合的“失效页面/范围”请求以指示哪些较高级高速缓冲存储器340需要执行页面/范围失效,如334处所描绘。
过滤器控制器320可接着等待来自较高级高速缓冲存储器340的确认或完成指示,在所述时间期间,来自本地处理单元310的请求可停止。然而,受害项目323可保留于探听过滤器322中且继续执行与其相关联的过滤功能,且新项目可从溢出区域324内执行与其相关联的过滤功能,直到可将新项目移动到主要探听过滤器322内(即,在已逐出受害项目323以腾出空间后)。在此类情况下,来自远程探听310的新外部请求可继续正常地执行查找,于是在新外部请求“命中”溢出区域324中的新项目或尚未从主要探听过滤器322逐出的受害项目323的情况下,可按与以上所描述大体上相同的方式将探听转发到较高级高速缓冲存储器340。此外,在某些使用情况中,可扩展溢出区域324以持有多于一个即将发生的更新(例如,两个或更多个即将发生的新项目),在此情况下,来自本地处理单元310的新查找与更新请求可继续如上所述流动,直到溢出区域324不具有更多可用资源来存储即将发生的更新。替代地,可临时停用探听过滤,直到在主要探听过滤器322中建立新项目,伴有任何入站探听将被转发到较高级高速缓冲存储器340的效应。
根据各种方面,图4A说明起始粗粒探听过滤器自愈(或自校正)模式的示范性方法400A,其可通常在当探听过滤器不具有任何可用空间跟踪用于本地处理单元的更多项目时那个本地处理单元设法在探听过滤器中建立新项目时执行。因而,在以下描述中,图4A中展示的方法400A可基于以下假定执行:将预期所有读取和写入op在探听过滤器中执行查找,且在发现未命中后即在探听过滤器中建立新项目,这是因为较高级(例如,L1)高速缓冲存储器希望高速缓存正被存取的线。因此,在各种实施例中,图4A中展示的方法400A可实施于任一合适相干多处理器系统中的非包含性2级(L2)高速缓冲存储器中,其中非包含性L2高速缓冲存储器和任何局部附接的L1高速缓冲存储器可一开始在初始化和/或复位时为空,如在块410处所展示。在各种实施例中,在块420处,可在粗粒探听过滤器处从局部附接的处理单元接收到新请求,其中新请求可包括查找与更新请求。响应于探听过滤器中的一或多个项目匹配在查找与更新请求中指示的目标存储器位置,使得查找在探听过滤器中发现“命中”,可基于指示处理单元需要看到探听的参考位将本地探听转发到局部附接的L1高速缓冲存储器中的一或多个,如块430处所描绘。在各种实施例中,可基于在触发探听过滤器查找的原始请求中指示的地址将本地探听与用于单个L1高速缓冲存储器的线地址一起转发。此外,在块430处,可基于对在查找与更新请求中指示的目标存储器位置的存取更新过滤器项目替换管理器。举例来说,可更新过滤器项目替换管理器以指示导致命中的项目被存取,使得可按需要适当地更新最非最近使用的项目、最非频繁使用的项目等。
在各种实施例中,在块440处,过滤器控制器可响应于查找导致未命中而滤出(不转发)任何探听到局部附接的L1高速缓冲存储器。此外,当在系统存储器中存取存储器块时,合适地更新探听过滤器和过滤器项目替换管理器。举例来说,在针对存储器块的探听过滤器查找发现未命中且探听过滤器具有可用空间的情况下,在块450处,可将新项目安装于探听过滤器中以对应于存取的存储器块,且可在块450处适当地更新过滤器项目替换管理器使得新项目变为最近建立的项目。然而,在探听过滤器查找发现未命中且因此需要建立新项目但不具有可用空间存储新项目的情况下,可起始以上描述的自愈方面,如在块460处所描绘。在各种实施例中,以下进一步详细地描述实施自愈方面的实例方法。
根据各种方面,现参看图4B,说明示范性方法400B以在本文中描述的粗粒探听过滤器中执行查找,而不建立新项目或起始自愈(或自校正)模式。因而,可响应于任何远程探听(例如,仅查找请求)和/或在执行查找的本地处理单元不打算高速缓存正被存取的线使得告诉探听过滤器本地处理单元具有高速缓存的复本可能是不合需要的(因为这样做将导致不必要的探听业务量)使用情况中执行图4B中展示的方法400B。在各种实施例中,可因此执行图4B中展示的方法400B以处置不在探听过滤器中建立新项目或起始自愈(或自校正)模式的仅查找请求。因此,如在图4A中展示的方法400A中,非包含性L2高速缓冲存储器和局部附接的L1高速缓冲存储器可一开始在初始化和/或复位时为空,如在块412处所展示。粗粒探听过滤器可接着在块422处接收仅查找请求,其中仅查找请求可包括远程探听请求或发起于不打算高速缓存与其相关联的L1高速缓冲存储器中正被存取的线的局部附接的处理单元处。在各种实施例中,在块442处,过滤器控制器可响应于查找导致未命中而滤出(不转发)任何探听到局部附接的L1高速缓冲存储器。然而,响应于探听过滤器中的一或多个项目匹配在仅查找请求中指示的目标存储器位置,使得查找在探听过滤器中发现“命中”,可基于指示处理单元需要看到探听的参考位将本地探听转发到局部附接的L1高速缓冲存储器中的一或多个,如块432处所描绘。在各种实施例中,可基于在触发探听过滤器查找的原始请求中指示的地址将本地探听与用于单个L1高速缓冲存储器的线地址一起转发。此外,在块432处,可基于对在仅查找请求中指示的目标存储器位置的存取更新过滤器项目替换管理器。举例来说,可更新过滤器项目替换管理器以指示导致命中的项目被存取,使得可按需要适当地更新最非最近使用的项目、最非频繁使用的项目等。替代地,如上文所提到,如果仅查找请求来源于远程处理单元,那么可更新过滤器项目替换管理器,以适当跟踪有多少远程探听命中探听过滤器中的每一项目,和/或另外当项目匹配远程探听请求时对最非最近和/或最非频繁使用的逻辑进行调整。
根据各种方面,图5A说明自愈已达到对过滤探听的能力的限制的粗粒探听过滤器的示范性方法500A。更明确地说,在块502处,过滤器项目替换管理器可用以选择受害项目从探听过滤器逐出,其中选定受害项目可包括最非最近建立的项目、最非最近使用的项目、最非频繁使用的项目、随机项目等。在各种实施例中,在块506处,新项目可临时存储于溢出区域中,且在块510处,可通知L1高速缓冲存储器从对应于受害项目的存储器块(例如,页面)逐出每一线。举例来说,在块510处发送到L1高速缓冲存储器的通知可包括具有适当参考位集合的“失效页面/范围”请求。在等待来自L1高速缓冲存储器的确认或完成指示时,来自本地处理单元的查找可仍然发生,直到存在在探听过滤器中建立新项目的需求且不存在可用于存储新项目的空间(例如,溢出区域满了或未实施)。然而,在某些使用情况中,可扩展用以临时所述新项目的溢出区域以持有多于一个即将发生的更新(例如,两个或更多个即将发生的新项目),在此情况下,来自本地处理单元的新查找与更新请求可继续如上所述流动,直到溢出区域不具有更多可用资源来存储即将发生的更新。此外,只要新请求在探听过滤器中命中,那么新请求不需要建立新项目,且因此通常准许流动。在任何情况下,受害项目(或多个项目)可保持处于探听过滤器中且继续执行与其相关联的过滤功能,且新项目(或多个项目)可从溢出区域内执行与其相关联的过滤功能,直到可将新项目移动到主要探听过滤器内。
因而,响应于接收到新请求,确定可以是关于新请求是否为远程(仅查找)请求,在块514处。响应于确定新请求为远程请求且远程请求导致命中(在块518处),可将探听转发到按与以上所描述大体上相同的方式设定其参考位的L1高速缓冲存储器。替代地,如果新请求是导致未命中的远程请求,那么可在块518处滤出探听,意味着不将远程探听转发到较高级L1高速缓冲存储器。在各种实施例中,可接着在块554处进行关于是否已从L1高速缓冲存储器接收到确认或完成指示的确定,其中在等待确认或完成指示时,方法500A可返回到块514以检查新请求。在各种实施例中,一旦从L1高速缓冲存储器接收到确认,那么在块558处,可从探听过滤器逐出受害项目(或多个项目),且可将新项目(或多个项目)从溢出区域移动到主要探听过滤器内,此时,在块562处,正常过滤模式可恢复。
在各种实施例中,如上文所提到,在正进行自愈或自校正方面时,从本地处理单元的查找可继续正常地流动,直到存在在探听过滤器中建立新项目的需求且探听过滤器不具有任何更多房间来持有此新项目(例如,因为溢出区域满了或未实施)。因而,如果在块514处进行的先前描述的确定指示新请求不是远程请求,那么方法500A可包括在块522处确定新请求是否是从本地处理单元接收的。响应于确定新请求不是从本地处理单元接收,既不存在远程请求,也不存在待处理的本地请求(即,根本不存在请求),于是所述方法可继续进行到块554以检查/再检查是否已从L1高速缓冲存储器接收到确认或完成指示,如上所述。然而,响应于在块522处确定新请求是从本地处理单元接收的,可在块526处进行关于所述请求是否命中探听过滤器(例如,在探听过滤器中发现匹配范围)的再一确定。响应于来自命中探听过滤器的本地处理单元的请求,在块530处,可将本地探听转发到以与以上所描述大体上相同的方式设定其参考位的一或多个L1高速缓冲存储器(虽然本地探听通常将不被发送回到发起的本地处理单元)。替代地,如果请求导致未命中,那么可不需要探听,如在块534处指示,且可在块538处进行关于是否需要新过滤器项目的再一确定。在需要新过滤器项目的情况下,块542可包括确定是否存在溢出区域和溢出区域是否具有空间持有请求,在此情况下,在块546处,可将请求添加到溢出区域。否则,如果未实施溢出区域或溢出区域缺乏空间持有请求,那么本地请求可在块550处停止,直到溢出区域或主要探听过滤器具有空间存储新项目。方法500A可因此流动到块554,在所述块进行关于是否已接收到确认或完成指示的确定,其中在等待确认或完成指示时,方法500A可返回到块514以检查新请求。在各种实施例中,一旦接收到确认,在块558处,可从探听过滤器逐出受害项目(或多个项目),且可将新项目(或多个项目)从溢出区域移动到主要探听过滤器内,此时,在块562处,正常过滤模式可恢复。一般来说,所属领域的技术人员应了解,图5A中说明的方法500A可在硬件中实施,于是可并行地执行在块514与554处执行的功能。因此,虽然如图5A中所说明的方法500A将各种块展示为在检查确认或完成指示(在块554处)前针对新请求检查(在块514、522处),但所属领域的技术人员应了解,此说明只是为了易于描述且清晰,且在块514、522处检查新请求和在块554处检查确认或完成指示可同时并行地发生等。
现参看图5B,在达到对过滤探听的能力的限制后自愈粗粒探听过滤器的另一方法500B在其中说明,其中图5B中展示的方法500B可大体上类似于在图5A中展示且在上文进一步详细描述的方法500A。然而,在图5B中展示的方法500B中,在已选择一或多个受害项目且已在溢出区域中建立替换一或多个受害项目的一或多个新项目后,可在块508处临时停用探听过滤。因此,在图5B中,当在块514处接收到远程(仅查找)请求时,在块520处,可将探听转发到L1高速缓冲存储器,这是因为已临时停用过滤。此外,当在块522处接收到来自本地处理单元的请求时,在块524处,探听可同样地被转发到L1高速缓冲存储器,这是因为已临时停用过滤,但探听可通常不被转发回到发起的本地处理单元,除非存在这样做的特定实施需求。在各种实施例中,在图5B中展示的方法500B中的其余操作基本上与以上关于图5A中展示的方法500A描述的操作相同。举例来说,来自本地处理单元的请求可继续流动,只要新请求在探听过滤器中命中且因此不需要建立新项目,于是来自本地处理单元的请求可继续,直到存在在探听过滤器中建立新项目的需求且不存在可用于存储新项目的空间(例如,溢出区域满了或未实施)。此外,在图5B中,受害项目(或多个项目)可保持处于探听过滤器中且继续执行与其相关联的过滤功能,且新项目(或多个项目)可从溢出区域内执行与其相关联的过滤功能,直到可将新项目移动到主要探听过滤器内,其中在等待确认或完成指示(例如,在块554处)时,所述逻辑可连续地检查新请求(例如,在块514、522处)。
根据各种方面,图6说明粗粒探听过滤器可在达到对过滤探听的能力的限制后即用来自愈的替代方法600。明确地说,不挑选受害项目从探听过滤器逐出(例如,如在图5A和图5B中),当探听过滤器归因于达到对跟踪独特存储器块的能力的限制而溢出时,在块610处,探听过滤器可简单地被清空且全部L1高速缓冲存储器也可被清空。在各种实施例中,如果L1高速缓冲存储器具有写通实施方案,那么可不存在当清空在进行中时将探听业务量转发到L1高速缓冲存储器的需求。然而,如果L1高速缓冲存储器具有写回实施方案,那么在已进行清空请求后,将需要将探听发送到L1高速缓冲存储器,直到另外完成“清空完成”交握或其它合适的程序,使得L2高速缓冲存储器知道已清空L1高速缓冲存储器。在各种实施例中,一旦已完成清空,可在探听过滤器中建立新项目,且可在块620处适当地更新过滤器项目替换管理器,于是正常探听过滤可接着在块630处从复位重新开始,这是因为在于块610处执行的清空之后,所有高速缓冲存储器都空。因此,图6中展示的方法600可在所有高速缓冲存储器空的情况下基本上从复位重新开始探听过滤器,使得探听过滤器具有用于新页面的空间,由此允许探听过滤功能继续且简化在溢出后替换探听过滤器中的项目的过程。然而,如上文所提到,L2高速缓冲存储器可能需要在清空在进行中时继续将探听发送到L1高速缓冲存储器,这取决于L1高速缓冲存储器写通/写回策略和实施方案细节,直到到达这“重新开始”点。
根据各种方面,图7A说明可关于在已达到对过滤探听的能力的限制的粗粒探听过滤器处执行的自愈操作在本地1级(L1)高速缓冲存储器处执行的实例方法700A。更明确地说,如上所述,可在需要过滤到共享非包含性L2高速缓冲存储器的多个附接的处理单元当中的一或多个处理单元的探听的非包含性2级(L2)高速缓冲存储器处实施探听过滤器。因而,响应于在探听过滤器已达到对过滤探听的能力的限制后在探听过滤器处接收到的本地查找与更新请求导致未命中,探听过滤器可起始上文进一步详细描述的自愈操作。举例来说,在各种实施例中,在探听过滤器处起始的自愈操作可包括选择一或多个受害项目从探听过滤器逐出和在临时溢出区域中建立一或多个新项目。探听过滤器可接着将使对应于一或多个选定探听过滤器受害项目的页面/范围失效的请求发送到L1高速缓冲存储器,于是在块710处,L1高速缓冲存储器可接收页面/范围失效请求。因此,在块720处,L1高速缓冲存储器可接着逐出对应于与待从探听过滤器逐出的一或多个受害项目相关联的页面/范围的每一高速缓存线和/或使所述每一高速缓存线失效。举例来说,在块720处,L1高速缓冲存储器可选择逐线展开逐出的页面/范围,或替代地,L1高速缓冲存储器可盲目地使映射到一或多个受害项目的所有高速缓冲存储器集合失效,这可消除执行标签读取的需求。在任一情况下,一旦映射到一或多个受害项目的所有高速缓存线已适当地失效,那么在块730处,L1高速缓冲存储器可将完成指示发送到探听过滤器。探听过滤器可接着用已在溢出区域中建立的一或多个新项目替换主要探听过滤器中的一或多个受害项目,使得正常过滤操作可恢复。
根据各种方面,图7B说明在探听过滤器达到对过滤探听的能力的限制后本地L1高速缓冲存储器可关于在粗粒探听过滤器处执行的自愈操作执行的另一方法700B。更明确地说,在探听过滤器选择复位所有高速缓冲存储器且基本上从头重新开始过滤操作而非挑选一或多个受害项目逐出的使用情况中,可进行图7B中展示的方法700B。因而,在各种实施例中,在溢出后可清空全部探听过滤器,且在块712处可接收初始化/复位L1高速缓冲存储器的通知。全部L1高速缓冲存储器可接着在块722处清空,且在块730处,L1高速缓冲存储器可将完成指示发送到探听过滤器。如果L2高速缓冲存储器包含L1高速缓冲存储器,那么L2高速缓冲存储器将已具有L1高速缓冲存储器中的所有数据的复本,这将使来自清空L1高速缓冲存储器的性能和功率影响最小化,这是因为数据仍然在L2高速缓冲存储器中局部持有。在写通高速缓冲存储器中,清空操作通常仅使高速缓冲存储器内容失效。归因于写通的本质,高速缓冲存储器不需要在清空时移动任何数据,这是因为高速缓冲存储器已被写出到较低级高速缓冲存储器或存储器子系统。另一方面,如果L1高速缓冲存储器具有写回实施方案,那么清空操作可使任何局部修改的数据复制到下一个较低级高速缓冲存储器(即,L2高速缓冲存储器)。对于非包含性L2高速缓冲存储器实施方案,一个选项可以是使清空将来自写通L1高速缓冲存储器的数据移动到L2高速缓冲存储器,而非仅使所述线的L1高速缓冲存储器复本失效。L2高速缓冲存储器将接着执行查找,并且如果查找导致命中,那么抛弃数据,这是因为L2高速缓冲存储器已具有复本。然而,如果查找导致未命中,那么L2高速缓冲存储器可选择在L2高速缓冲存储器中安装线或抛弃请求。意图将是在L2高速缓冲存储器中保存与在L1高速缓冲存储器清空发生时可可行一样多的L1高速缓冲存储器内容,而不不当地影响在L2高速缓冲存储器或系统总线处的其它操作。探听过滤器可从所有高速缓冲存储器空的初始化/重设状态恢复正常过滤操作,探听过滤器具有用于新页面的空间,且探听过滤功能可继续而不必处置在溢出后替换受害项目的程序。
根据各种方面,本文中描述的自愈粗粒探听过滤器可提供于任一合适的相干多处理器系统中,集成到任一合适的相干多处理器系统内,或以其它方式实施于任一合适的相干多处理器系统中。举例来说,在各种实施例中,可包含自愈粗粒探听过滤器的相干多处理器系统可包含(不限于)基于微处理器的集成电路、移动装置处理器、蜂窝电话处理器、便携式计算机处理器、台式计算机处理器、个人数字助理(PDA)处理器、服务器处理器等。
举例来说,根据各种方面,图8说明可实施上文进一步详细描述的自愈粗粒探听过滤器的实例多处理器系统800。在各种实施例中,多处理器系统800可包含具有多个处理器核心812的一或多个处理器810,每一处理器核心具有本地1级(L1)高速缓冲存储器814以迅速地存取临时存储的数据。处理器810也可具有共享的2级(L2)高速缓冲存储器816,其可包含探听过滤器818以过滤到共享L2高速缓冲存储器816的多个处理器核心812的探听。处理器810可进一步耦合到系统总线820,所述系统总线可相互耦合多处理器系统800中包含的各种主装置和从装置。此外,如将对所属领域的技术人员显而易见,处理器810可在系统总线820上交换地址、控制和数据信息以与这些其它装置通信。举例来说,处理器810可将传递总线事务请求以存取存储器子系统830中的目标位置,这可导致在实施于系统总线820上的探听过滤器(未图示)指示存取的存储器位置高速缓存于处理器810处的情况下,系统总线820将探听业务量发送到处理器810。因而,实施于L2高速缓冲存储器816处的探听过滤器818可用以执行过滤功能以确定是否滤出探听,和/或如果未滤出探听,那么应将入站探听转发到哪些处理器核心812。此外,探听过滤器818可用以基于存取的位置是否高速缓存于在另一局部附接的处理器核心812处的L1高速缓冲存储器814中,关于当一或多个处理器核心812存取存储器子系统830中的位置时发送本地探听执行类似功能。在各种实施例中,L2高速缓冲存储器816可通常具有写回实施方案。因而如果实施于系统总线820的探听过滤器将为如本文所描述的粗粒探听过滤器,那么如果/当实施于系统总线820上的探听过滤器告诉L2高速缓冲存储器816清空特定范围时,L2高速缓冲存储器816将移动至少脏数据到存储器子系统830。此外,虽然未在图8中明确地说明,但可提供多个系统总线820,其中每一系统总线820可构成不同构造。
根据各种方面,其它装置也可连接到系统总线820。举例来说,如图8中所说明,作为实例,连接到系统总线820的装置可包含存储器子系统830、一或多个输入装置822、一或多个输出装置824、一或多个网络接口装置826和一或多个显示控制器840。输入装置822可包含任何类型的输入装置,包含(但不限于)输入键、开关、语音处理器等。输出装置824可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置826可为被配置成允许数据到和从网络880的交换的任何装置。网络880可为任何类型的网络,包含(但不限于)有线或无线网络、私人或公共网络、局域网(LAN)、广域网(WLAN)和因特网。网络接口装置826可被配置成支持所要的任何类型的通信协议。存储器子系统830可包含静态存储器832和/或动态存储器834。
根据各种方面,处理器810也可被配置成通过系统总线820存取显示控制器840以控制发送到一或多个显示器870的信息。显示控制器840可包含存储器控制器842和存储器844以存储响应于与处理器810的通信待发送到显示器870的数据。因而,显示控制器840可将信息发送到显示器870以经由一或多个视频处理器860显示,视频处理器可处理待显示成适合于显示器870的格式的信息。显示器870可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
根据各种方面,图9说明可关于本文中描述的各种方面和实施例使用的示范性服务器装置900。举例来说,在各种实施例中,服务器装置900可包含多处理器架构,其包含具有在多个附接的处理单元(例如,多个处理器核心)间共享的2级(L2)高速缓冲存储器的至少一个处理器901。此外,在至少一个处理器901中提供的共享L2高速缓冲存储器可具有跟踪在多个附接的处理单元处的1级(L1)高速缓冲存储器内容的能力和基于其过滤到多个附接的处理单元的探听的能力。因而,图9中展示的服务器装置900可通常包括具有此多处理器架构的任何合适的市售服务器装置。如图9中展示,服务器装置900可包含至少一个处理器901,其可耦合到易失性存储器902和大容量非易失性存储器,例如,磁盘驱动器903。服务器装置900还可包含耦合到至少一个处理器901的软盘驱动器、光盘(CD)或DVD光盘驱动器906。服务器装置900还可包含耦合到至少一个处理器901的网络接入端口904以建立与网络907(例如,连接到其它广播系统计算机和服务器的局域网、因特网、公共交换电话网络和/或蜂窝式数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE、等))的数据连接。
所属领域的技术人员将了解,可使用多种不同技术和技艺中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个以上描述中可能提及的数据、指令、命令、信息、信号、位、符号和码片。
另外,所属领域的技术人员将了解,关于本文所公开的方面而描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施决策不应被解释为会脱离本文中所描述的各个方面和实施例的范围。
关于本文中公开的方面而描述的各种说明性逻辑块、模块和电路可以用以下各者来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其被设计成执行本文中所描述的功能的任何组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心或任何其它此类配置)。
方面本文中公开的方面描述的方法、序列和/或算法可以直接以硬件、以由处理器执行的软件模块或以硬件与软件模块的组合来体现。软件模块可以驻留在RAM存储器、快闪存储器、ROM、EPROM、EEPROM、寄存器、硬盘、可移动磁盘、CD-ROM或所属领域中已知的任何其它形式的非暂时性计算机可读媒体中。示例性非暂时性计算机可读媒体可耦合到处理器,使得处理器可从非暂时性计算机可读媒体读取信息,和将信息写入到非暂时性计算机可读媒体。在替代方案中,非暂时性计算机可读媒体可集成到处理器。处理器和非暂时性计算机可读媒体可以驻留于ASIC中。ASIC可以驻留在IoT装置中。在替代方案中,处理器和计算机可读媒体可作为离散组件驻留于用户终端中。
在一或多个示范性方面中,所描述的功能可以用硬件、软件、固件或其任何组合实施。如果用软件实施,那么可将所述功能作为一或多个指令或代码而存储在非暂时性计算机可读媒体上或经由非暂时性计算机可读媒体发射。计算机可读媒体可包含存储媒体和/或通信媒体,所述媒体包含有助于将计算机程序从一处传送到另一处的任何非暂时性媒体。存储媒体可为可由计算机存取的任何可用媒体。借助于实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用以携带或存储呈指令或数据结构的形式的所要的程序代码且可由计算机存取的任何其它媒体。并且,恰当地将任何连接称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波的无线技术包含于媒体的定义中。在本文可互换使用的术语磁盘和光盘包含CD、激光光盘、光学光盘、DVD、软盘和蓝光光盘,其通常以磁性方式再现数据和/或用激光以光学方式再现数据。以上各个的组合也应包含在计算机可读媒体的范围内。
虽然前述公开内容展示说明性方面和实施例,但所属领域的技术人员应了解,在不脱离如由所附权利要求书定义的本公开的范围的情况下,可在其中进行各种改变和修改。此外,根据本文中描述的各种说明性方面和实施例,所属领域的技术人员应了解,以上描述和/或在附加于此的任何方法权利要求中叙述的任何方法中的功能、步骤和/或动作无需以任何特定次序执行。更进一步,在以单数形式在上文描述或在所附权利要求书中叙述任何元件的程度上,所属领域的技术人员应了解,单数形式也预料到复数形式,除非明确陈述限于单数形式。

Claims (33)

1.一种用于过滤相干多处理器系统中的探听的方法,包括:接收更新在各自具有1级L1高速缓冲存储器的多个本地处理单元间共享的2级L2高速缓冲存储器处的目标存储器位置的请求;基于在跟踪与所述多个本地处理单元中的每一个相关联的每一L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间来存储对应于所述目标存储器位置的新项目,选择受害项目以从所述探听过滤器逐出;在临时溢出区域中建立所述新项目;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;从所述至少一个处理单元接收指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的确认;以及将所述新项目从所述临时溢出区域移动到所述探听过滤器内以在接收到所述确认后用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
2.根据权利要求1所述的方法,进一步包括:响应于基于所述目标存储器位置所述查找未命中所述探听过滤器且所述探听过滤器具有所述可用空间来存储所述新项目,在所述探听过滤器中安装所述新项目。
3.根据权利要求1所述的方法,进一步包括:在于所述临时溢出区域中建立所述新项目后且在接收到所述确认前接收远程探听,所述远程探听指示远程主机已请求修改存储器位置的权限;以及响应于所述远程探听命中所述选定受害项目或所述新项目,将所述远程探听转发到所述多个本地处理单元中的一或多个。
4.根据权利要求1所述的方法,进一步包括:在接收到所述确认前临时停用所述探听过滤器;接收指示在所述探听过滤器停用时远程主机已请求修改存储器位置的权限的远程探听;以及将所述远程探听转发到在每一本地处理单元处的所述L1高速缓冲存储器。
5.根据权利要求1所述的方法,进一步包括:响应于所述查找命中所述探听过滤器,在所述多个本地处理单元当中识别具有映射到所述目标存储器位置的一或多个高速缓存线的至少一个处理单元;将本地探听转发到所述识别的至少一个处理单元;以及更新与在所述探听过滤器中跟踪的所述项目相关联的一或多个度量,所述一或多个度量用以在所述探听过滤器缺乏所述可用空间以存储所述新项目后即选择所述受害项目被逐出。
6.根据权利要求1所述的方法,其中所述选定受害项目包括选自所述探听过滤器中最非最近存取的多个项目当中的最非频繁存取的项目。
7.根据权利要求1所述的方法,其中所述选定受害项目包括所述探听过滤器中最非最近存取的项目、所述探听过滤器中最非最近建立的项目或所述探听过滤器中的随机项目中的一或多个。
8.根据权利要求1所述的方法,其中所述选定受害项目包括在所述探听过滤器中的所述多个本地处理单元在给定时间周期内尚未存取且根据在所述给定时间周期期间对所述一或多个项目的存取与总体最近存取之间的比率确定远程探听频繁地命中的一或多个项目。
9.根据权利要求1所述的方法,进一步包括:响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏所述可用空间来存储对应于所述目标存储器位置的所述新项目,清空所述探听过滤器和在每一本地处理单元处的所述L1高速缓冲存储器,于是从所述探听过滤器逐出的所述选定受害项目包括在所述探听过滤器中的每一项目且发送到每一L1高速缓冲存储器的所述请求使全部L1高速缓冲存储器被清空。
10.根据权利要求1所述的方法,其中所述L2高速缓冲存储器为非包含性。
11.一种相干多处理器系统,包括:多个本地处理单元,其各自具有1级L1高速缓冲存储器;在所述多个本地处理单元间共享的2级L2高速缓冲存储器,其中所述L2高速缓冲存储器包含被配置成跟踪与所述多个本地处理单元中的每一个相关联的每一L1高速缓冲存储器中的项目的探听过滤器;以及处理器,其被配置成:接收更新在所述L2高速缓冲存储器处的目标存储器位置的请求;基于所述目标存储器位置执行在所述探听过滤器中的查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间来存储对应于所述目标存储器位置的新项目,选择受害项目以从所述探听过滤器逐出;在临时溢出区域中建立所述新项目;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;从所述至少一个处理单元接收指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的确认;以及将所述新项目从所述临时溢出区域移动到所述探听过滤器内以在接收到所述确认后用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
12.根据权利要求11所述的相干多处理器系统,其中所述处理器被进一步配置成响应于所述查找未命中所述探听过滤器和所述探听过滤器具有所述可用空间来存储所述新项目,将所述新项目安装于所述探听过滤器中。
13.根据权利要求11所述的相干多处理器系统,其中所述处理器被进一步配置成:在已于所述临时溢出区域中建立所述新项目后且在接收到所述确认前接收远程探听,所述远程探听指示远程主机已请求修改存储器位置的权限;以及响应于所述远程探听命中所述选定受害项目或所述新项目,将所述远程探听转发到所述多个本地处理单元中的一或多个。
14.根据权利要求11所述的相干多处理器系统,其中所述处理器被进一步配置成:在接收到所述确认前临时停用所述探听过滤器;接收指示在所述探听过滤器停用时远程主机已请求修改存储器位置的权限的远程探听;以及将所述远程探听转发到在每一本地处理单元处的所述L1高速缓冲存储器。
15.根据权利要求11所述的相干多处理器系统,其中所述处理器被进一步配置成:响应于所述查找命中所述探听过滤器,在所述多个本地处理单元当中识别具有映射到所述目标存储器位置的一或多个高速缓存线的至少一个处理单元;将本地探听转发到所述识别的至少一个处理单元;以及更新与在所述探听过滤器中跟踪的所述项目相关联的一或多个度量,所述一或多个度量用以在所述探听过滤器缺乏所述可用空间以存储所述新项目后即选择所述受害项目被逐出。
16.根据权利要求11所述的相干多处理器系统,其中所述选定受害项目包括选自所述探听过滤器中最非最近存取的多个项目当中的最非频繁存取的项目。
17.根据权利要求11所述的相干多处理器系统,其中所述选定受害项目包括所述探听过滤器中最非最近存取的项目、所述探听过滤器中最非最近建立的项目或所述探听过滤器中的随机项目中的一或多个。
18.根据权利要求11所述的相干多处理器系统,其中所述选定受害项目包括在所述探听过滤器中的所述多个本地处理单元在给定时间周期内尚未存取且根据在所述给定时间周期期间对所述一或多个项目的存取与总体最近存取之间的比率确定远程探听频繁地命中的一或多个项目。
19.根据权利要求11所述的相干多处理器系统,其中所述处理器被进一步配置成:响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏所述可用空间来存储对应于所述目标存储器位置的所述新项目,清空所述探听过滤器和在每一本地处理单元处的所述L1高速缓冲存储器,于是从所述探听过滤器逐出的所述选定受害项目包括在所述探听过滤器中的每一项目且发送到每一L1高速缓冲存储器的所述请求使全部L1高速缓冲存储器被清空。
20.根据权利要求11所述的相干多处理器系统,其中所述L2高速缓冲存储器为非包含性。
21.一种设备,包括:用于接收更新在各自具有1级L1高速缓冲存储器的多个本地处理单元间共享的非包含性2级L2高速缓冲存储器处的目标存储器位置的请求的装置;用于基于在跟踪与所述多个本地处理单元中的每一个相关联的每一L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找的装置;用于响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间存储对应于所述目标存储器位置的新项目来选择受害项目从所述探听过滤器逐出的装置;用于在临时溢出区域中建立所述新项目的装置;用于将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个的装置;用于从所述至少一个处理单元接收指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的确认的装置;以及用于将所述新项目从所述临时溢出区域移动到所述探听过滤器内以在接收到所述确认后用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目的装置。
22.根据权利要求21所述的设备,进一步包括:用于响应于基于所述目标存储器位置所述查找未命中所述探听过滤器且所述探听过滤器具有所述可用空间来存储所述新项目而在所述探听过滤器中安装所述新项目的装置。
23.根据权利要求21所述的设备,进一步包括:用于在于所述临时溢出区域中建立所述新项目后且在接收到所述确认前接收远程探听的装置,所述远程探听指示远程主机已请求修改存储器位置的权限;以及用于响应于所述远程探听命中所述选定受害项目或所述新项目而将所述远程探听转发到所述多个本地处理单元中的一或多个的装置。
24.根据权利要求21所述的设备,进一步包括:用于在接收到所述确认前临时停用所述探听过滤器的装置;用于接收指示在所述探听过滤器停用时远程主机已请求修改存储器位置的权限的远程探听的装置;以及用于将所述远程探听转发到在每一本地处理单元处的所述L1高速缓冲存储器的装置。
25.根据权利要求21所述的设备,进一步包括:用于响应于所述查找命中所述探听过滤器而在所述多个本地处理单元当中识别具有映射到所述目标存储器位置的一或多个高速缓存线的至少一个处理单元的装置;用于将本地探听转发到所述识别的至少一个处理单元的装置;以及用于更新与在所述探听过滤器中跟踪的所述项目相关联的一或多个度量的装置,所述一或多个度量用以在所述探听过滤器缺乏所述可用空间以存储所述新项目后即选择所述受害项目被逐出。
26.根据权利要求21所述的设备,进一步包括:用于响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏所述可用空间来存储对应于所述目标存储器位置的所述新项目而清空所述探听过滤器和在每一本地处理单元处的所述L1高速缓冲存储器的装置,于是从所述探听过滤器逐出的所述选定受害项目包括在所述探听过滤器中的每一项目且发送到每一L1高速缓冲存储器的所述请求使全部L1高速缓冲存储器被清空。
27.一种非暂时性计算机可读媒体,其存储计算机可执行指令,所述存储的计算机可执行指令被配置成使一或多个处理器:接收更新在各自具有1级L1高速缓冲存储器的多个本地处理单元间共享的非包含性2级L2高速缓冲存储器处的目标存储器位置的请求;基于在跟踪与所述多个本地处理单元中的每一个相关联的每一L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间来存储对应于所述目标存储器位置的新项目,选择受害项目以从所述探听过滤器逐出;在临时溢出区域中建立所述新项目;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;从所述至少一个处理单元接收指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的确认;以及将所述新项目从所述临时溢出区域移动到所述探听过滤器内以在接收到所述确认后用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
28.一种用于过滤相干多处理器系统中的探听的方法,包括:接收更新在各自具有1级L1高速缓冲存储器的多个本地处理单元间共享的2级L2高速缓冲存储器处的目标存储器位置的请求;基于在跟踪与所述多个本地处理单元中的每一个相关联的每一L1高速缓冲存储器中的项目的探听过滤器中的所述目标存储器位置执行查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间来存储对应于所述目标存储器位置的新项目,选择受害项目以从所述探听过滤器逐出;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏所述可用空间存储对应于所述目标存储器位置的所述新项目而清空所述探听过滤器和在每一本地处理单元处的所述L1高速缓冲存储器,于是从所述探听过滤器逐出的所述选定受害项目包括在所述探听过滤器中的每一项目且发送到每一L1高速缓冲存储器的所述请求使全部L1高速缓冲存储器被清空;以及用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
29.根据权利要求28所述的方法,进一步包括:在接收到指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的来自所述至少一个处理单元的确认前,临时停用所述探听过滤器;接收指示在停用所述探听过滤器时远程主机已请求修改存储器位置的权限的远程探听;以及将所述远程探听转发到在每一本地处理单元处的所述L1高速缓冲存储器。
30.根据权利要求28所述的方法,其中所述L2高速缓冲存储器为非包含性。
31.一种相干多处理器系统,包括:各自具有1级L1高速缓冲存储器的多个本地处理单元;在所述多个本地处理单元间共享的2级L2高速缓冲存储器,其中所述L2高速缓冲存储器包含被配置成跟踪在与所述多个本地处理单元中的每一个相关联的每一L1高速缓冲存储器中的项目的探听过滤器;以及处理器,其被配置成:接收更新在所述L2高速缓冲存储器处的目标存储器位置的请求;基于所述目标存储器位置执行在所述探听过滤器中的查找;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏可用空间来存储对应于所述目标存储器位置的新项目,选择受害项目以从所述探听过滤器逐出;将使映射到所述选定受害项目的每一高速缓存线失效的请求发送到所述多个处理单元中的具有在与其相关联的所述L1高速缓冲存储器中的映射到所述选定受害项目的一或多个高速缓存线的至少一个;响应于所述查找未命中所述探听过滤器和所述探听过滤器缺乏所述可用空间存储对应于所述目标存储器位置的所述新项目而清空所述探听过滤器和在每一本地处理单元处的所述L1高速缓冲存储器,于是从所述探听过滤器逐出的所述选定受害项目包括在所述探听过滤器中的每一项目且发送到每一L1高速缓冲存储器的所述请求使全部L1高速缓冲存储器被清空;以及用对应于所述目标存储器位置的所述新项目替换所述探听过滤器中的所述选定受害项目。
32.根据权利要求31所述的相干多处理器系统,其中所述处理器被进一步配置成:临时停用所述探听过滤器,直到从所述至少一个处理单元接收到指示映射到所述选定受害项目的每一高速缓存线已在与其相关联的所述L1高速缓冲存储器中失效的确认;接收指示远程主机已在所述探听过滤器停用时请求修改存储器位置的权限的远程探听;以及将所述远程探听转发到在每一本地处理单元处的所述L1高速缓冲存储器。
33.根据权利要求31所述的相干多处理器系统,其中所述L2高速缓冲存储器为非包含性。
CN201780014397.1A 2016-03-07 2017-02-09 自愈粗粒探听过滤器 Expired - Fee Related CN108701092B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/063,259 US9817760B2 (en) 2016-03-07 2016-03-07 Self-healing coarse-grained snoop filter
US15/063,259 2016-03-07
PCT/US2017/017168 WO2017155659A1 (en) 2016-03-07 2017-02-09 Self-healing coarse-grained snoop filter

Publications (2)

Publication Number Publication Date
CN108701092A CN108701092A (zh) 2018-10-23
CN108701092B true CN108701092B (zh) 2019-12-27

Family

ID=58057323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780014397.1A Expired - Fee Related CN108701092B (zh) 2016-03-07 2017-02-09 自愈粗粒探听过滤器

Country Status (4)

Country Link
US (1) US9817760B2 (zh)
EP (1) EP3427154B1 (zh)
CN (1) CN108701092B (zh)
WO (1) WO2017155659A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157133B2 (en) 2015-12-10 2018-12-18 Arm Limited Snoop filter for cache coherency in a data processing system
US9990292B2 (en) * 2016-06-29 2018-06-05 Arm Limited Progressive fine to coarse grain snoop filter
US10956325B2 (en) * 2016-12-12 2021-03-23 Intel Corporation Instruction and logic for flushing memory ranges in a distributed shared memory system
US10846230B2 (en) * 2016-12-12 2020-11-24 Intel Corporation Methods and systems for invalidating memory ranges in fabric-based architectures
US10339060B2 (en) * 2016-12-30 2019-07-02 Intel Corporation Optimized caching agent with integrated directory cache
US10042766B1 (en) 2017-02-02 2018-08-07 Arm Limited Data processing apparatus with snoop request address alignment and snoop response time alignment
US10545881B2 (en) 2017-07-25 2020-01-28 International Business Machines Corporation Memory page eviction using a neural network
US10528483B2 (en) * 2017-10-23 2020-01-07 Advanced Micro Devices, Inc. Hybrid lower-level cache inclusion policy for cache hierarchy having at least three caching levels
US10956332B2 (en) * 2017-11-01 2021-03-23 Advanced Micro Devices, Inc. Retaining cache entries of a processor core during a powered-down state
US10776282B2 (en) * 2017-12-15 2020-09-15 Advanced Micro Devices, Inc. Home agent based cache transfer acceleration scheme
US10761985B2 (en) * 2018-08-02 2020-09-01 Xilinx, Inc. Hybrid precise and imprecise cache snoop filtering
US11232039B2 (en) * 2018-12-10 2022-01-25 Advanced Micro Devices, Inc. Cache for storing regions of data
US10698825B1 (en) * 2019-03-12 2020-06-30 Arm Limited Inter-chip communication in a multi-chip system
US11055221B2 (en) * 2019-03-22 2021-07-06 Samsung Electronics Co., Ltd. Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory
US10922236B2 (en) 2019-04-04 2021-02-16 Advanced New Technologies Co., Ltd. Cascade cache refreshing
CN110059023B (zh) * 2019-04-04 2020-11-10 创新先进技术有限公司 一种刷新级联缓存的方法、系统及设备
US11151039B2 (en) * 2020-03-17 2021-10-19 Arm Limited Apparatus and method for maintaining cache coherence data for memory blocks of different size granularities using a snoop filter storage comprising an n-way set associative storage structure
GB2597938A (en) * 2020-08-10 2022-02-16 Advanced Risc Mach Ltd Monitoring memory locations to identify whether data stored at the memory locations has been modified
US11941285B2 (en) * 2021-04-20 2024-03-26 Micron Technology, Inc. Mitigating slow read disturb in a memory sub-system
GB2620198A (en) * 2022-07-01 2024-01-03 Advanced Risc Mach Ltd Coherency control

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198025A (zh) * 2012-01-04 2013-07-10 国际商业机器公司 用于近邻数据高速缓存共享的方法和系统
US9058272B1 (en) * 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325102B1 (en) * 2003-11-17 2008-01-29 Sun Microsystems, Inc. Mechanism and method for cache snoop filtering
US8209489B2 (en) 2008-10-22 2012-06-26 International Business Machines Corporation Victim cache prefetching
US8856448B2 (en) 2009-02-19 2014-10-07 Qualcomm Incorporated Methods and apparatus for low intrusion snoop invalidation
US9086973B2 (en) 2009-06-09 2015-07-21 Hyperion Core, Inc. System and method for a cache in a multi-core processor
US9304924B2 (en) 2012-08-17 2016-04-05 Futurewei Technologies, Inc. Cache coherent handshake protocol for in-order and out-of-order networks
GB2522057B (en) 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
US9507716B2 (en) * 2014-08-26 2016-11-29 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058272B1 (en) * 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
CN103198025A (zh) * 2012-01-04 2013-07-10 国际商业机器公司 用于近邻数据高速缓存共享的方法和系统

Also Published As

Publication number Publication date
US20170255557A1 (en) 2017-09-07
EP3427154B1 (en) 2020-01-22
US9817760B2 (en) 2017-11-14
CN108701092A (zh) 2018-10-23
EP3427154A1 (en) 2019-01-16
WO2017155659A1 (en) 2017-09-14

Similar Documents

Publication Publication Date Title
CN108701092B (zh) 自愈粗粒探听过滤器
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
JP7337173B2 (ja) トランスレーションルックアサイドバッファエビクションに基づくキャッシュ置換
JP4848771B2 (ja) キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
US10725923B1 (en) Cache access detection and prediction
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US10282295B1 (en) Reducing cache footprint in cache coherence directory
US11314646B2 (en) Region based split-directory scheme to adapt to large cache sizes
US20190050332A1 (en) Providing dead-block prediction for determining whether to cache data in cache devices
US7725660B2 (en) Directory for multi-node coherent bus
US7669013B2 (en) Directory for multi-node coherent bus
KR102355991B1 (ko) 영역-기반 캐시 디렉토리 체계에서 비공개 영역에 대한 액세스 가속화
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
KR20200088391A (ko) 공통 메모리 페이지로부터 메모리로의 캐시 라인들의 린싱
US9842050B2 (en) Add-on memory coherence directory
US20210397560A1 (en) Cache stashing system
JP2008310414A (ja) コンピュータシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191227

Termination date: 20210209