当前位置: 首页 > 专利查询>英特尔公司专利>正文

使用核心指示符的高速缓存过滤制造技术

技术编号:2854993 阅读:179 留言:0更新日期:2012-04-11 18:40
一种微处理器内的过滤核心高速缓存访问的高速缓存体系结构。更具体地说,本发明专利技术的实施例涉及在具有多个处理器核心高速缓存和内含共享高速缓存的处理器内管理事务处理、如窥探的技术。

【技术实现步骤摘要】

本专利技术的实施例涉及微处理器和微处理器系统。更具体地说,本专利技术的实施例涉及在对一个或多个处理器核心高速缓存的多个访问之中的高速缓存过滤。
技术介绍
微处理器已经发展成允许多个软件程序同时运行的多核心机器。处理器“核心”通常指用于解码、调度、执行和退出指令的逻辑和电路,以及使指令能够不按程序次序执行的其它电路,例如分支预测逻辑。在多核心处理器中,各核心通常使用诸如一级(L1)高速缓存的专用高速缓存并从中取回更频繁使用的指令和数据。多核心处理器内的一个核心可能试图访问另一个核心的高速缓存内的数据。而且,驻留在多核心处理器的外部总线上的代理可试图从多核心处理器内的任一核心高速缓存取回数据。图1说明现有技术多核心处理器体系结构,该体系结构包括核心A、核心B和它们各自的专用高速缓存、以及共享高速缓存,共享高速缓存可包含存在于核心A与核心B的高速缓存内的部分或所有数据。通常,外部代理或核心试图通过首先检查(“窥探”)以查看数据是否驻留在特定高速缓存中来从高速缓存、例如核心高速缓存中取回数据。数据可能或者也可能不存在于窥探的高速缓存内,但是窥探周期引起了到核心和它们各自专用高速缓存的内部总线上的通信量。随着到其它核心的核心“交叉窥探”的数量增加以及来自外部代理的窥探数量增加,到核心和它们各自核心高速缓存的内部总线会变得重要。而且,因为一些窥探不产生请求的数据,所以它们能引起内部总线上不必要的通信量。共享高速缓存是现有技术,该技术试图通过包括存放在各核心的高速缓存的部分或全部数据,以减少到核心和它们各自专用高速缓存的内部总线上的通信量,因此担当内含“过滤”高速缓存。使用共享高速缓存,能首先通过共享高速缓存服务来自其他核心或外部代理对核心的窥探,从而防止一些窥探到达核心高速缓存。然而,为了保持共享高速缓存和核心高速缓存之间的相干性,必须对核心高速缓存进行访问,从而抵消了通过使用共享高速缓存引起的内部总线上的通信量的一些减少。而且,使用共享高速缓存用于高速缓存过滤的现有技术多核心处理器经常经历等待时间,这是由于为确保共享高速缓存相干性在共享高速缓存和核心高速缓存之间必须发生的操作引起的。为了帮助保持内含共享高速缓存和对应核心高速缓存之间的相干性,各种高速缓存行状态已用于现有技术多核心处理器。例如,在一种现有技术多核心处理器体系结构中,为内含共享高速缓存的各行保持“MESI”高速缓存行状态信息。“MESI”是对四种高速缓存行状态的只取首字母缩写词“修改”、“独占”、“共享”、“无效”。“修改”通常意味着共享“修改的”高速缓存行对应的核心高速缓存行已被改变,因此共享高速缓存不再包含数据的最近版本。“独占”通常意味着仅由特定的核心或外部代理使用(“拥有”)高速缓存行。“共享”通常意味着可由任何代理或核心使用高速缓存行,而“无效”通常意味着任何代理或核心不能使用高速缓存行。在一些现有技术多核心处理器中使用了扩展高速缓存行状态信息,以便向处理器驻留的计算机系统内的处理器核心和代理指示分开的高速缓存行状态信息。例如,“MS”状态已经与共享高速缓存行结合使用来指示关于外部代理修改该行以及关于处理器核心共享该行。类似地,“ES”已用于指示关于外部代理独占地拥有共享高速缓存行以及关于处理器核心共享该行。同样,“MI”已用于指示关于外部代理修改高速缓存行以及关于处理器核心使该行无效。在保持共享高速缓存与相应核心高速缓存之间的高速缓存相干性、同时减少共享高速缓存与核心之间的内部总线上的窥探通信量的努力中,上文所述的共享高速缓存行状态信息和扩展高速缓存行状态信息已经产生新问题。随着处理器核心和/或外部代理数量的增加,加剧了该问题,因此,外部代理和/或核心的数量可能受到限制。
技术实现思路
根据本专利技术的一个方面,提供一种设备,包括内含共享高速缓存,具有内含共享高速缓存行和指示处理器核心高速缓存是否可能具有存储在内含共享高速缓存行内的数据的副本的核心位。在一个实施例中,所述核心位指示是否保证所述处理器核心高速缓存不具有存储在内含共享高速缓存行内的数据的副本。在一个实施例中,所述内含共享高速缓存行的要求所有权的读取(RFO)操作是否会导致所述核心位的变化取决于所述内含高速缓存行的当前状态和所述核心位的当前状态。在一个实施例中,所述内含高速缓存行的当前状态从由以下各项构成的组中选择修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。在一个实施例中,所述内含共享高速缓存行的读取行(RL)操作是否会导致所述核心位的变化取决于所述内含高速缓存行的当前状态和所述核心位的当前状态。在一个实施例中,所述内含高速缓存行的当前状态从由以下各项构成的组中选择修改、修改-无效、修改-共享、独占、独占-共享、共享、无效。在一个实施例中,所述内含共享高速缓存行的高速缓存填充会导致处理器核心位改变以反映所述高速缓存填充所对应的核心。根据本专利技术的另一方面,提供一种系统,包括具有多个核心的处理器,所述多个核心中的每一个具有专用核心高速缓存;存储在所述多个核心高速缓存中存储的所有数据的副本的内含共享高速缓存,内含共享高速缓存的各行对应于多个核心位,这些核心位指示所述多个核心高速缓存中的哪个可能具有存储在所述多个核心位所对应的所述内含共享高速缓存行中的数据的副本。在一个实施例中,所述多个核心位指示保证所述多个核心高速缓存中哪一个不包含所述数据的副本。在一个实施例中,所述核心位指示来自所述内含共享高速缓存的外部代理的窥探事务处理是否要导致对所述多个处理器核心高速缓存中任一个的窥探。在一个实施例中,来自所述外部代理的窥探事务处理是否要导致对所述多个处理器核心高速缓存中任一个的窥探还取决于窥探事务处理的类型和所述外部代理窥探的内含共享高速缓存行的状态。在一个实施例中,窥探的内含共享高速缓存行的状态从由以下各项构成的组中选择修改、独占、共享、无效、修改-共享、独占-共享。在一个实施例中,所述多个核心高速缓存是一级(L1)高速缓存,所述内含共享高速缓存是二级(L2)高速缓存。在一个实施例中,所述外部代理是通过前端总线耦合到所述处理器的外部处理器。在一个实施例中,所述外部代理是通过点到点接口耦合到所述处理器的外部处理器。根据本专利技术的又一方面,提供一种方法,包括发起对第一高速缓存的访问;取决于指示第二高速缓存是否可能包含存储在第一高速缓存中的数据的副本的一组位的状态,发起对第二高速缓存的访问;取回作为所述访问之一的结果的所述数据的副本。在一个实施例中,如果对第一高速缓存的访问指示无效高速缓存行状态,则发起对第二高速缓存的访问而不管所述位组的状态。在一个实施例中,所述位组对应于多个处理器核心。在一个实施例中,如果所述位组包含对应于第二高速缓存的条目中的第一值,则保证第二高速缓存不包含所述数据的副本。在一个实施例中,如果所述位组包含对应于第二高速缓存的条目中的第二值,则取决于对应于对第一高速缓存的高速缓存行访问的多个状态,可访问第二高速缓存。在一个实施例中,所述第一高速缓存是包含第二高速缓存的相同数据的内含共享高速缓存。在一个实施例中,所述第二高速缓存是要由多个处理器核心中的至少一个访问的核心高速缓存。在一个实施例中,对第一和第二高速缓存的访问是窥探事务处理。在一个实施例中,对第一和本文档来自技高网
...

【技术保护点】
一种设备,包括:内含共享高速缓存,具有内含共享高速缓存行和指示处理器核心高速缓存是否可能具有存储在内含共享高速缓存行内的数据的副本的核心位。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:YC刘K西斯特拉G蔡
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1