CN1746867A - 使用核心指示符的高速缓存过滤 - Google Patents

使用核心指示符的高速缓存过滤 Download PDF

Info

Publication number
CN1746867A
CN1746867A CN200510103704.2A CN200510103704A CN1746867A CN 1746867 A CN1746867 A CN 1746867A CN 200510103704 A CN200510103704 A CN 200510103704A CN 1746867 A CN1746867 A CN 1746867A
Authority
CN
China
Prior art keywords
cache
core
speed
speed cache
processor
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.)
Granted
Application number
CN200510103704.2A
Other languages
English (en)
Other versions
CN100511185C (zh
Inventor
Y·C·刘
K·西斯特拉
G·蔡
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1746867A publication Critical patent/CN1746867A/zh
Application granted granted Critical
Publication of CN100511185C publication Critical patent/CN100511185C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0817Cache consistency protocols using directory methods
    • 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

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)
  • Storage Device Security (AREA)

Abstract

一种微处理器内的过滤核心高速缓存访问的高速缓存体系结构。更具体地说,本发明的实施例涉及在具有多个处理器核心高速缓存和内含共享高速缓存的处理器内管理事务处理、如窥探的技术。

Description

使用核心指示符的高速缓存过滤
技术领域
本发明的实施例涉及微处理器和微处理器系统。更具体地说,本发明的实施例涉及在对一个或多个处理器核心高速缓存的多个访问之中的高速缓存过滤。
背景技术
微处理器已经发展成允许多个软件程序同时运行的多核心机器。处理器“核心”通常指用于解码、调度、执行和退出指令的逻辑和电路,以及使指令能够不按程序次序执行的其它电路,例如分支预测逻辑。在多核心处理器中,各核心通常使用诸如一级(L1)高速缓存的专用高速缓存并从中取回更频繁使用的指令和数据。多核心处理器内的一个核心可能试图访问另一个核心的高速缓存内的数据。而且,驻留在多核心处理器的外部总线上的代理可试图从多核心处理器内的任一核心高速缓存取回数据。
图1说明现有技术多核心处理器体系结构,该体系结构包括核心A、核心B和它们各自的专用高速缓存、以及共享高速缓存,共享高速缓存可包含存在于核心A与核心B的高速缓存内的部分或所有数据。通常,外部代理或核心试图通过首先检查(“窥探”)以查看数据是否驻留在特定高速缓存中来从高速缓存、例如核心高速缓存中取回数据。数据可能或者也可能不存在于窥探的高速缓存内,但是窥探周期引起了到核心和它们各自专用高速缓存的内部总线上的通信量。随着到其它核心的核心“交叉窥探”的数量增加以及来自外部代理的窥探数量增加,到核心和它们各自核心高速缓存的内部总线会变得重要。而且,因为一些窥探不产生请求的数据,所以它们能引起内部总线上不必要的通信量。
共享高速缓存是现有技术,该技术试图通过包括存放在各核心的高速缓存的部分或全部数据,以减少到核心和它们各自专用高速缓存的内部总线上的通信量,因此担当内含“过滤”高速缓存。使用共享高速缓存,能首先通过共享高速缓存服务来自其他核心或外部代理对核心的窥探,从而防止一些窥探到达核心高速缓存。然而,为了保持共享高速缓存和核心高速缓存之间的相干性,必须对核心高速缓存进行访问,从而抵消了通过使用共享高速缓存引起的内部总线上的通信量的一些减少。而且,使用共享高速缓存用于高速缓存过滤的现有技术多核心处理器经常经历等待时间,这是由于为确保共享高速缓存相干性在共享高速缓存和核心高速缓存之间必须发生的操作引起的。
为了帮助保持内含共享高速缓存和对应核心高速缓存之间的相干性,各种高速缓存行状态已用于现有技术多核心处理器。例如,在一种现有技术多核心处理器体系结构中,为内含共享高速缓存的各行保持“MESI”高速缓存行状态信息。“MESI”是对四种高速缓存行状态的只取首字母缩写词:“修改”、“独占”、“共享”、“无效”。“修改”通常意味着共享“修改的”高速缓存行对应的核心高速缓存行已被改变,因此共享高速缓存不再包含数据的最近版本。“独占”通常意味着仅由特定的核心或外部代理使用(“拥有”)高速缓存行。“共享”通常意味着可由任何代理或核心使用高速缓存行,而“无效”通常意味着任何代理或核心不能使用高速缓存行。
在一些现有技术多核心处理器中使用了扩展高速缓存行状态信息,以便向处理器驻留的计算机系统内的处理器核心和代理指示分开的高速缓存行状态信息。例如,“MS”状态已经与共享高速缓存行结合使用来指示关于外部代理修改该行以及关于处理器核心共享该行。类似地,“ES”已用于指示关于外部代理独占地拥有共享高速缓存行以及关于处理器核心共享该行。同样,“MI”已用于指示关于外部代理修改高速缓存行以及关于处理器核心使该行无效。
在保持共享高速缓存与相应核心高速缓存之间的高速缓存相干性、同时减少共享高速缓存与核心之间的内部总线上的窥探通信量的努力中,上文所述的共享高速缓存行状态信息和扩展高速缓存行状态信息已经产生新问题。随着处理器核心和/或外部代理数量的增加,加剧了该问题,因此,外部代理和/或核心的数量可能受到限制。
发明内容
根据本发明的一个方面,提供一种设备,包括内含共享高速缓存,具有内含共享高速缓存行和指示处理器核心高速缓存是否可能具有存储在内含共享高速缓存行内的数据的副本的核心位。
在一个实施例中,所述核心位指示是否保证所述处理器核心高速缓存不具有存储在内含共享高速缓存行内的数据的副本。
在一个实施例中,所述内含共享高速缓存行的要求所有权的读取(RFO)操作是否会导致所述核心位的变化取决于所述内含高速缓存行的当前状态和所述核心位的当前状态。
在一个实施例中,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
在一个实施例中,所述内含共享高速缓存行的读取行(RL)操作是否会导致所述核心位的变化取决于所述内含高速缓存行的当前状态和所述核心位的当前状态。
在一个实施例中,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
在一个实施例中,所述内含共享高速缓存行的高速缓存填充会导致处理器核心位改变以反映所述高速缓存填充所对应的核心。
根据本发明的另一方面,提供一种系统,包括:具有多个核心的处理器,所述多个核心中的每一个具有专用核心高速缓存;存储在所述多个核心高速缓存中存储的所有数据的副本的内含共享高速缓存,内含共享高速缓存的各行对应于多个核心位,这些核心位指示所述多个核心高速缓存中的哪个可能具有存储在所述多个核心位所对应的所述内含共享高速缓存行中的数据的副本。
在一个实施例中,所述多个核心位指示保证所述多个核心高速缓存中哪一个不包含所述数据的副本。
在一个实施例中,所述核心位指示来自所述内含共享高速缓存的外部代理的窥探事务处理是否要导致对所述多个处理器核心高速缓存中任一个的窥探。
在一个实施例中,来自所述外部代理的窥探事务处理是否要导致对所述多个处理器核心高速缓存中任一个的窥探还取决于窥探事务处理的类型和所述外部代理窥探的内含共享高速缓存行的状态。
在一个实施例中,窥探的内含共享高速缓存行的状态从由以下各项构成的组中选择:修改、独占、共享、无效、修改-共享、独占-共享。
在一个实施例中,所述多个核心高速缓存是一级(L1)高速缓存,所述内含共享高速缓存是二级(L2)高速缓存。
在一个实施例中,所述外部代理是通过前端总线耦合到所述处理器的外部处理器。
在一个实施例中,所述外部代理是通过点到点接口耦合到所述处理器的外部处理器。
根据本发明的又一方面,提供一种方法,包括:发起对第一高速缓存的访问;取决于指示第二高速缓存是否可能包含存储在第一高速缓存中的数据的副本的一组位的状态,发起对第二高速缓存的访问;取回作为所述访问之一的结果的所述数据的副本。
在一个实施例中,如果对第一高速缓存的访问指示无效高速缓存行状态,则发起对第二高速缓存的访问而不管所述位组的状态。
在一个实施例中,所述位组对应于多个处理器核心。
在一个实施例中,如果所述位组包含对应于第二高速缓存的条目中的第一值,则保证第二高速缓存不包含所述数据的副本。
在一个实施例中,如果所述位组包含对应于第二高速缓存的条目中的第二值,则取决于对应于对第一高速缓存的高速缓存行访问的多个状态,可访问第二高速缓存。
在一个实施例中,所述第一高速缓存是包含第二高速缓存的相同数据的内含共享高速缓存。
在一个实施例中,所述第二高速缓存是要由多个处理器核心中的至少一个访问的核心高速缓存。
在一个实施例中,对第一和第二高速缓存的访问是窥探事务处理。
在一个实施例中,对第一和第二高速缓存的访问是高速缓存查找事务处理。
根据本发明的再一方面,提供一种多核心处理器,包括:处理器核心;耦合到所述处理器核心的处理器核心高速缓存;系统总线接口;内含共享高速缓存,具有内含共享高速缓存行和第一装置,所述第一装置用于指示是否保证处理器核心高速缓存不具有存储在所述内含共享高速缓存行内的数据的副本。
在一个实施例中,所述内含共享高速缓存行的要求所有权的读取(RFO)操作是否会导致第一装置改变状态取决于所述内含高速缓存行的当前状态和第一装置的当前状态。
在一个实施例中,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
在一个实施例中,所述内含共享高速缓存行的读取行(RL)操作是否会导致第一装置改变状态取决于所述内含高速缓存行的当前状态和第一装置的当前状态。
在一个实施例中,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
在一个实施例中,所述内含共享高速缓存行的高速缓存填充会导致第一装置改变状态以反映所述高速缓存填充所对应的核心。
附图说明
在附图的图中通过实例而不是限制说明了本发明的实施例,图中相同的引用指示类似的元件,其中:
图1说明现有技术多核心处理器体系结构。
图2说明包括本发明的一个实施例的各方面的多个内含共享高速缓存行。
图3A和图3B具有根据本发明的一个实施例的两个表格,指示在内含共享高速缓存查找操作期间在什么情况下核心位可能改变。
图4是说明结合本发明的至少一个实施例使用的操作的流程图。
图5是说明根据本发明的一个实施例可执行核心窥探的条件的表格。
图6说明可使用本发明的至少一个实施例的前端总线计算机系统。
图7说明可使用本发明的至少一个实施例的点到点计算机系统。
具体实施方式
本发明的实施例涉及微处理器和/或计算机系统内的高速缓存体系结构。更具体地说,本发明的实施例涉及在具有多个处理器核心高速缓存和内含共享高速缓存的处理器内部管理窥探的技术。
本发明的实施例通过减少来自外部源和多核心处理器内的其它核心的窥探数量可减少处理器核心内部总线上的通信量。在一个实施例中,通过使用与内含共享高速缓存的各行相关联的多个核心位来指示特定的核心是否可能包含所窥探的数据,从而减少了到核心的窥探通信量。
图2说明内含共享高速缓存内部的具有与此相关的一系列核心位205的多个高速缓存标记行201,用来指示哪个核心(如果有)具有对应于高速缓存标记的数据的副本。在图2说明的实施例中,每个核心位对应于多核心处理器内的一个处理器核心,并指示哪个(些)核心有对应于各高速缓存标记的数据。图2中的核心位,连同各行的MESI和扩展MESI状态,用来提供可减少各处理器核心所见的窥探通信量的窥探过滤器。例如,具有“S”状态(共享)和核心位1和0(对应于两个核心)的内含共享高速缓存行可指示对应于1核心位的核心高速缓存行可能处于“S”或“I”(无效)状态,因此可能有或者可能没有数据。然而,保证对应于0核心位的核心高速缓存行在其高速缓存内没有请求的数据,因此没有必要窥探那个核心。
本发明的一个实施例提出可能影响对处理器核心高速缓存进行访问的三种一般情况:1)高速缓存查找,2)高速缓存填充,3)窥探。当任一个处理器核心试图在内含共享高速缓存中找到数据时,高速缓存查找发生。取决于访问的共享高速缓存行状态和访问类型,高速缓存查找可能导致访问处理器中的其它核心的高速缓存。
本发明的一个实施例通过消除作为请求的数据的可能来源的一个或多个核心高速缓存,使用核心位连同访问的共享高速缓存行的状态来减少核心内部总线上的通信量。例如,图3A和3B是说明对于两种不同类型的高速缓存查找:要求所有权的读取访问301和读取行访问335,由共享高速缓存行状态和核心位而定的当前和下一个高速缓存行状态的表。要求所有权的读取访问通常是请求代理存取高速缓存的数据以便获得对高速缓存行的独占控制/存取(“所有权”),而行读取通常是请求代理试图实际上从高速缓存行取回数据的操作,因此能在多个代理之中被共享。
图3A的表301说明在要求所有权的读取(RFO)的情况下,取决于当前高速缓存行状态315和将访问的核心320,RFO操作的结果对存取的高速缓存行的下一个状态305以及下一个状态核心位310有不同的影响。总之,表301说明如果内含共享高速缓存行中的当前状态指示其它核心可能具有请求的数据,则核心位会反映出哪个(些)核心在其核心高速缓存中可能有数据。至少在一个实施例中,核心位防止窥探多核心处理器的每个核心,因此减少了内部核心总线上的通信量。
而在本发明的一个实施例中,如果核心之中占有或共享请求的共享高速缓存行,则核心位和高速缓存状态在高速缓存查找期间可能不改变。例如,表301的条目325指示,如果存取的共享高速缓存行处于修改状态(“M”)327,则共享高速缓存行状态会保持在M状态330并且核心位不会改变332。相反,如列311指示的,高速缓存查找可产生随后的窥探和填充事务处理,并且正请求的核心其后可获得行的所有权。然后可更新最终高速缓存行状态312和核心位313以反映最新获得的行所有权。
表301的其余部分指示由其它共享高速缓存行状态以及响应RFO操作会存取哪个核心而定的下一个共享高速缓存行状态和核心位。在RFO操作期间,取决于共享高速缓存行核心位,通过减少对核心高速缓存的访问,本发明的至少一个实施例能减少内部核心总线上的通信量。
类似地,表335说明在高速缓存行查找操作期间对存取的共享高速缓存行的下一个状态340和核心位345的读取行(RL)操作的结果以及对核心高速缓存的存取填充共享高速缓存行之后的高速缓存行状态和核心位。例如,表335的条目360指示,如果存取的共享高速缓存行处于修改状态(“M”)362并且核心位反映请求核心是“相同的”364有数据的核心,则下一个状态核心位367和高速缓存行状态365能保持不变,因为核心位指示请求代理对高速缓存行具有独占所有权。作为结果,如列366所示,没有必要窥探其他核心的高速缓存,因此不需要填充高速缓存行,并且最终高速缓存状态368和核心位369值可保持不变。
表335的其余部分指示由其它共享高速缓存行状态以及响应RL操作会存取哪个核心而定的下一个共享高速缓存行状态和核心位。在RL操作期间,取决于共享高速缓存行核心位,通过减少对核心高速缓存的访问,本发明的至少一个实施例能减少内部核心总线上的通信量。
在窥探事务处理期间,本发明的实施例能通过滤出不会导致取回请求的数据的到核心的访问来减少内部核心总线上的通信量。图4是说明使用核心位过滤核心窥探的至少一个实施例的操作的流程图。在操作401,外部代理发起对内含共享高速缓存条目的窥探事务处理。取决于内含共享高速缓存行状态和对应的核心位,对核心的窥探可能是必需的,以便在操作405取回最近的数据或只是使核心中的数据无效以获得所有权。如果核心窥探是必需的,则在操作410窥探适当的一(多)个核心并且在操作415返回窥探结果。如果没有必要进行核心窥探,则在操作415从内含共享高速缓存返回窥探结果。
通过图4说明在实施例中是否执行核心窥探取决于窥探类型、内含共享高速缓存行状态和核心位值。图5是说明可能执行核心窥探的情况以及作为结果可能窥探哪个(些)核心的表501。总之,表501指示如果内含共享高速缓存行是无效的或者核心位指示没有核心具有请求的数据,则不执行核心窥探。否则,基于表501的条目可执行核心窥探。
例如,表501的条目505指示如果窥探是“go to I”类型的窥探,则意味着该条目在窥探后会转到无效状态,并且内含共享高速缓存行条目处于M、E、S、MS或ES状态中的任一个,并且设置至少一个核心位以指示数据存在于核心高速缓存内,然后窥探各自的核心。在条目505的情况下,核心位指示核心1没有数据(通过“0”核心位指示),因此只窥探核心0,因为它事实上可能具有请求的数据(通过“1”核心位指示)。表501中核心位中的“1”不一定保证对应的核心高速缓存会包含请求的数据的当前副本。然而,“0”指示确保对应的核心没有请求的数据。不可能发出对对应于“0”核心位的核心的窥探,因此减少了核心内部总线上的通信量。
虽然在表501中说明的实施例指示多核心处理器有两个核心(通过两个核心位指示),但是其它实施例可能具有不止两个核心,因此可能有更多的核心位。而且,在其它处理器中,可使用其它窥探类型和/或高速缓存行状态,因此在其它实施例中,窥探核心的环境和窥探哪些核心可能发生变化。
图6说明可使用本发明的一个实施例的前端总线(FSB)计算机系统。多核心处理器606从核心的一级(L1)高速缓存603、内含共享二级(L2)高速缓存存储器610和主存储器615中存取数据。
图6的处理器内说明的是本发明的一个实施例606。在一些实施例中,图6的处理器可以是多核心处理器。在另一些实施例中,处理器可能是多处理器系统内的单核心处理器。而在其它实施例中,处理器可能是多处理器系统中的多核心处理器。
可以采用各种存储器资源实现主存储器,例如动态随机存取存储器(DRAM)、硬盘驱动器(HDD)620、或通过包含各种存储装置和技术的网络接口630的远离计算机系统的存储器资源。高速缓存存储器可位于处理器内部或非常接近处理器,例如在处理器的局部总线607上。而且,高速缓存存储器可包含相对较快的存储单元,例如6-晶体管(6T)单元或其它近似相等或更快存取速度的存储单元。
图6的计算机系统可以是总线代理、例如微处理器的点到点(PtP)网络,这些总线代理通过专用于PtP网络上各代理的总线信号进行通信。在内部或至少相关联,各总线代理是本发明的至少一个实施例606,使得在总线代理之间采用迅速的方式能够便于存储操作。
图7说明采用点到点(PtP)配置而设置的计算机系统。具体地说,图7表示通过多个点到点接口互连处理器、存储器和输入/输出装置的系统。
图7中的系统也可包括若干处理器,其中为了清楚只显示两个处理器770、780。处理器770、780每一个可包括与存储器72、74连接的本地存储控制器集线器(MCH)772、782。处理器770、780可使用PtP接口电路778、788通过点到点(PtP)接口750交换数据。处理器770、780均可使用点到点接口电路776、794、786、798通过各自PtP接口752、754与芯片组790交换数据。芯片组790也可通过高性能图形接口739与高性能图形电路738交换数据。
本发明的至少一个实施例可位于处理器770和780内部。而本发明的其它实施例可存在于图7系统内的其它电路、逻辑单元或装置中。而且,本发明的其它实施例可分布于图7所说明的若干电路、逻辑单元或装置。
利用使用互补金属氧化物半导体器件的电路或“硬件”,或者使用一组存储媒体上、被机器(例如处理器)执行来完成与本发明实施例相关的操作的指令或“软件”,可实现本文描述的本发明的实施例。或者,可使用硬件和软件的组合来实现本发明的实施例。
虽然参照说明性实施例描述了本发明,但是该描述不是要解释为限制意义。说明性实施例的各种修改以及其它实施例对本发明涉及的领域中的技术人员来说是显而易见的,而且认为它们属于本发明的精神和范围之内。

Claims (30)

1.一种设备,包括:
内含共享高速缓存,具有内含共享高速缓存行和指示处理器核心高速缓存是否可能具有存储在内含共享高速缓存行内的数据的副本的核心位。
2.如权利要求1所述的设备,其特征在于,所述核心位指示是否保证所述处理器核心高速缓存不具有存储在内含共享高速缓存行内的数据的副本。
3.如权利要求2所述的设备,其特征在于,所述内含共享高速缓存行的要求所有权的读取(RFO)操作是否会导致所述核心位的变化取决于所述内含高速缓存行的当前状态和所述核心位的当前状态。
4.如权利要求3所述的设备,其特征在于,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
5.如权利要求2所述的设备,其特征在于,所述内含共享高速缓存行的读取行(RL)操作是否会导致所述核心位的变化取决于所述内含高速缓存行的当前状态和所述核心位的当前状态。
6.如权利要求5所述的设备,其特征在于,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
7.如权利要求2所述的设备,其特征在于,所述内含共享高速缓存行的高速缓存填充会导致处理器核心位改变以反映所述高速缓存填充所对应的核心。
8.一种系统,包括:
具有多个核心的处理器,所述多个核心中的每一个具有专用核心高速缓存;
存储在所述多个核心高速缓存中存储的所有数据的副本的内含共享高速缓存,内含共享高速缓存的各行对应于多个核心位,这些核心位指示所述多个核心高速缓存中的哪个可能具有存储在所述多个核心位所对应的所述内含共享高速缓存行中的数据的副本。
9.如权利要求8所述的系统,其特征在于,所述多个核心位指示保证所述多个核心高速缓存中哪一个不包含所述数据的副本。
10.如权利要求9所述的系统,其特征在于,所述核心位指示来自所述内含共享高速缓存的外部代理的窥探事务处理是否要导致对所述多个处理器核心高速缓存中任一个的窥探。
11.如权利要求10所述的系统,其特征在于,来自所述外部代理的窥探事务处理是否要导致对所述多个处理器核心高速缓存中任一个的窥探还取决于窥探事务处理的类型和所述外部代理窥探的内含共享高速缓存行的状态。
12.如权利要求11所述的系统,其特征在于,窥探的内含共享高速缓存行的状态从由以下各项构成的组中选择:修改、独占、共享、无效、修改-共享、独占-共享。
13.如权利要求12所述的系统,其特征在于,所述多个核心高速缓存是一级(L1)高速缓存,所述内含共享高速缓存是二级(L2)高速缓存。
14.如权利要求13所述的系统,其特征在于,所述外部代理是通过前端总线耦合到所述处理器的外部处理器。
15.如权利要求13所述的系统,其特征在于,所述外部代理是通过点到点接口耦合到所述处理器的外部处理器。
16.一种方法,包括:
发起对第一高速缓存的访问;
取决于指示第二高速缓存是否可能包含存储在第一高速缓存中的数据的副本的一组位的状态,发起对第二高速缓存的访问;
取回作为所述访问之一的结果的所述数据的副本。
17.如权利要求16所述的方法,其特征在于,如果对第一高速缓存的访问指示无效高速缓存行状态,则发起对第二高速缓存的访问而不管所述位组的状态。
18.如权利要求17所述的方法,其特征在于,所述位组对应于多个处理器核心。
19.如权利要求18所述的方法,其特征在于,如果所述位组包含对应于第二高速缓存的条目中的第一值,则保证第二高速缓存不包含所述数据的副本。
20.如权利要求19所述的方法,其特征在于,如果所述位组包含对应于第二高速缓存的条目中的第二值,则取决于对应于对第一高速缓存的高速缓存行访问的多个状态,可访问第二高速缓存。
21.如权利要求20所述的方法,其特征在于,所述第一高速缓存是包含第二高速缓存的相同数据的内含共享高速缓存。
22.如权利要求21所述的方法,其特征在于,所述第二高速缓存是要由多个处理器核心中的至少一个访问的核心高速缓存。
23.如权利要求22所述的方法,其特征在于,对第一和第二高速缓存的访问是窥探事务处理。
24.如权利要求22所述的方法,其特征在于,对第一和第二高速缓存的访问是高速缓存查找事务处理。
25.一种多核心处理器,包括:
处理器核心;
耦合到所述处理器核心的处理器核心高速缓存;
系统总线接口;
内含共享高速缓存,具有内含共享高速缓存行和第一装置,所述第一装置用于指示是否保证处理器核心高速缓存不具有存储在所述内含共享高速缓存行内的数据的副本。
26.如权利要求25所述的设备,其特征在于,所述内含共享高速缓存行的要求所有权的读取(RFO)操作是否会导致第一装置改变状态取决于所述内含高速缓存行的当前状态和第一装置的当前状态。
27.如权利要求26所述的设备,其特征在于,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
28.如权利要求27所述的设备,其特征在于,所述内含共享高速缓存行的读取行(RL)操作是否会导致第一装置改变状态取决于所述内含高速缓存行的当前状态和第一装置的当前状态。
29.如权利要求28所述的设备,其特征在于,所述内含高速缓存行的当前状态从由以下各项构成的组中选择:修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。
30.如权利要求29所述的设备,其特征在于,所述内含共享高速缓存行的高速缓存填充会导致第一装置改变状态以反映所述高速缓存填充所对应的核心。
CNB2005101037042A 2004-09-08 2005-09-08 使用核心指示符的高速缓存过滤 Expired - Fee Related CN100511185C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/936952 2004-09-08
US10/936,952 US20060053258A1 (en) 2004-09-08 2004-09-08 Cache filtering using core indicators

Publications (2)

Publication Number Publication Date
CN1746867A true CN1746867A (zh) 2006-03-15
CN100511185C CN100511185C (zh) 2009-07-08

Family

ID=35997498

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101037042A Expired - Fee Related CN100511185C (zh) 2004-09-08 2005-09-08 使用核心指示符的高速缓存过滤

Country Status (3)

Country Link
US (1) US20060053258A1 (zh)
CN (1) CN100511185C (zh)
TW (1) TWI291651B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111582A (zh) * 2014-10-31 2017-08-29 德克萨斯仪器股份有限公司 具有非阻塞高性能事务信用系统的多核总线架构
CN109154911A (zh) * 2016-06-23 2019-01-04 超威半导体公司 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7404046B2 (en) * 2005-02-10 2008-07-22 International Business Machines Corporation Cache memory, processing unit, data processing system and method for filtering snooped operations
US8407432B2 (en) * 2005-06-30 2013-03-26 Intel Corporation Cache coherency sequencing implementation and adaptive LLC access priority control for CMP
US20070005899A1 (en) * 2005-06-30 2007-01-04 Sistla Krishnakanth V Processing multicore evictions in a CMP multiprocessor
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
JP5568939B2 (ja) * 2009-10-08 2014-08-13 富士通株式会社 演算処理装置及び制御方法
US8489822B2 (en) 2010-11-23 2013-07-16 Intel Corporation Providing a directory cache for peripheral devices
US8856456B2 (en) * 2011-06-09 2014-10-07 Apple Inc. Systems, methods, and devices for cache block coherence
US20130007376A1 (en) * 2011-07-01 2013-01-03 Sailesh Kottapalli Opportunistic snoop broadcast (osb) in directory enabled home snoopy systems
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US8984228B2 (en) 2011-12-13 2015-03-17 Intel Corporation Providing common caching agent for core and integrated input/output (IO) module
US9122612B2 (en) * 2012-06-25 2015-09-01 Advanced Micro Devices, Inc. Eliminating fetch cancel for inclusive caches
US9058269B2 (en) * 2012-06-25 2015-06-16 Advanced Micro Devices, Inc. Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit
JP5971036B2 (ja) * 2012-08-30 2016-08-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9612960B2 (en) * 2012-11-19 2017-04-04 Florida State University Research Foundation, Inc. Data filter cache designs for enhancing energy efficiency and performance in computing systems
US9378148B2 (en) 2013-03-15 2016-06-28 Intel Corporation Adaptive hierarchical cache policy in a microprocessor
US9405687B2 (en) 2013-11-04 2016-08-02 Intel Corporation Method, apparatus and system for handling cache misses in a processor
US9852071B2 (en) 2014-10-20 2017-12-26 International Business Machines Corporation Granting exclusive cache access using locality cache coherency state
US20170091101A1 (en) * 2015-12-11 2017-03-30 Mediatek Inc. Snoop Mechanism And Snoop Filter Structure For Multi-Port Processors

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy
US20020053004A1 (en) * 1999-11-19 2002-05-02 Fong Pong Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links
US6434672B1 (en) * 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
US6782452B2 (en) * 2001-12-11 2004-08-24 Arm Limited Apparatus and method for processing data using a merging cache line fill to allow access to cache entries before a line fill is completed
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7117389B2 (en) * 2003-09-18 2006-10-03 International Business Machines Corporation Multiple processor core device having shareable functional units for self-repairing capability
US7689778B2 (en) * 2004-11-30 2010-03-30 Intel Corporation Preventing system snoop and cross-snoop conflicts
US8407432B2 (en) * 2005-06-30 2013-03-26 Intel Corporation Cache coherency sequencing implementation and adaptive LLC access priority control for CMP

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111582A (zh) * 2014-10-31 2017-08-29 德克萨斯仪器股份有限公司 具有非阻塞高性能事务信用系统的多核总线架构
CN107111582B (zh) * 2014-10-31 2020-04-28 德克萨斯仪器股份有限公司 具有非阻塞高性能事务信用系统的多核总线架构
CN109154911A (zh) * 2016-06-23 2019-01-04 超威半导体公司 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器
CN109154911B (zh) * 2016-06-23 2021-03-05 超威半导体公司 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器

Also Published As

Publication number Publication date
CN100511185C (zh) 2009-07-08
TW200627263A (en) 2006-08-01
TWI291651B (en) 2007-12-21
US20060053258A1 (en) 2006-03-09

Similar Documents

Publication Publication Date Title
CN1746867A (zh) 使用核心指示符的高速缓存过滤
JP5714733B2 (ja) キャッシュ競合の解決
CN101523361B (zh) 数据处理设备中对共享存储器的写访问请求的处理
CN100375067C (zh) 异构多核微处理器局部空间共享存储方法
US6681293B1 (en) Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
JP4960989B2 (ja) インバリデーショントランザクションのスヌープフィルタからの削除
US7941610B2 (en) Coherency directory updating in a multiprocessor computing system
US6463510B1 (en) Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US20060225074A1 (en) Method and apparatus for communication between two or more processing elements
US6470429B1 (en) System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
US20080126707A1 (en) Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture
US20060218352A1 (en) Cache eviction technique for reducing cache eviction traffic
US6751705B1 (en) Cache line converter
CN101042679A (zh) 维护存储器一致性的方法和系统
US20070005899A1 (en) Processing multicore evictions in a CMP multiprocessor
CN1754158A (zh) 将写入数据注入到高速缓存的方法和设备
WO2013090297A1 (en) Providing common caching agent for core and integrated input/output (io) module
JPH10320283A (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
US6463514B1 (en) Method to arbitrate for a cache block
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US20030105929A1 (en) Cache status data structure
EP2082324A1 (en) Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems
US6629213B1 (en) Apparatus and method using sub-cacheline transactions to improve system performance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090708

Termination date: 20100908