分离式共享信息及专用信息缓存的制作方法

文档序号:11160907阅读:718来源:国知局
分离式共享信息及专用信息缓存的制造方法与工艺

所揭示的方面是针对用于降低缓存结构的访问时间及增大其能效的系统及方法。更确切地说,示范性方面是针对分隔的缓存结构,例如多处理器设计中的2级或3级缓存,从而针对专用信息及共享信息提供分离式缓存结构。



背景技术:

高性能处理环境中常用多处理器系统或多核处理器。多处理器系统包括相配合提供高性能的多个处理器或处理核心(例如,通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)等)。为此目的,两个或更多个处理器可共享至少一个存储器结构,例如主存储器。处理器中的每一者也可具有带有不同程度的独占性或专用所有权的额外存储器结构。举例来说,处理器可具有1级(L1)缓存,所述1级缓存为小型快速高性能的存储器结构,其常规上整合在处理器的芯片中且排他性地由所述处理器使用或专用。L1缓存常规上用于存储少量重要及其相关联处理器最常使用的信息。在L1缓存与主存储器之间可存在一或多个在常规上以层级方式布置的额外缓存结构。这些可包含(例如)2级(L2)缓存及有时包括3级(L3)缓存。所述L2及L3缓存在常规上较大,可相对于一或多个处理器整合于芯片外,且可存储可在所述多个处理器当中共享的信息。L2缓存在常规上经设计以相对于相关联处理器为本地的,但含有与其它处理器共享的信息。

当L2或L3缓存存储跨处理器共享的信息时,一致性或同步化的概念产生。举例来说,两个或更多个处理器可基于其个别处理需求从主存储器检索相同信息且将所述信息存储在共享的L2或L3缓存中。然而,当任何更新写入回至所述共享缓存中时,不同版本可得以创建,因为每一处理器可以不同方式对共享信息起作用。为了维持跨越多个处理器的处理整合性或一致性,不得从共享缓存中检索过时信息。采用众所周知的缓存同步化及一致性协议来确保对共享信息的修改被有效地传播遍及所述多个处理器及存储器结构。此类一致性协议可涉及用以播送共享信息的更新的每一处理器的硬件及相关联的软件,及用以监控共享信息的实施及使用的“窥探”控制器及机制。

举例来说,一致性协议的一些实施方案涉及跟踪所述共享缓存的每一条目或缓存行。一致性状态(例如基于众所周知的修改/互斥/共享/无效(MESI)协议)需要与共享缓存的每一缓存行相关联。这些状态的任何更新必须跨越各种存储器结构及不同处理器予以传播。所述窥探控制器交叉检验跨越各个共享缓存的相同信息的多个副本的一致性状态,以便确保最新信息可为任何请求共享信息的处理器所用。这些一致性协议及窥探机制的实施方案极其昂贵,且其复杂度随着处理器及共享缓存结构的数目增大而增大。

然而,在常规的架构中,与一致性协议的实施相关的这些费用的相当大一部分往往是不必要及浪费的。这是因为(例如)共享L2缓存的大部分(高达80-90%)通常由非共享(或换句话说,单个相关联处理器专用)的信息占据。此类专用信息不需要与其相关联的昂贵一致性机制。在本实例中,仅共享L2缓存其余的更小分率包含很可能跨多个处理器共享且可能需要一致性机制的信息。然而,由于所述共享信息以及所述专用信息存储在统一共享L2缓存中,因此整个共享L2缓存将需要具有一致性机制就位。

此外,在常规的实施方案中,访问时间或访问时延也不必要地较高。举例来说,希望访问第一处理器专用但存储在相对于第一处理器为本地的统一共享第一L2缓存结构中的信息的第一处理器将必须搜遍专用信息以及共享信息两者以便访问所要专用信息。搜遍共享第一L2缓存在常规上涉及标签结构,其大小及相关联的时延随着必须搜索的缓存行的数目增大。因此,即使第一处理器知道其试图访问的信息是专用的,其也仍然必须牺牲资源及访问时间来将搜索扩展至存储在共享第一L2缓存中的共享信息。另一方面(例如)就希望访问存储在共享第一L2缓存中的共享信息的远程第二处理器而言也存在类似问题。即使共享信息含于共享第一L2缓存的仅一小部分中,远程第二处理器还是将必须搜遍整个共享第一L2缓存。

因此,需要避免前述与共享缓存结构的常规实施方案相关联的缺点。



技术实现要素:

本发明的示范性实施例是针对经配置以用于存储专用信息及共享信息的分离式缓存结构。

举例来说,示范性实施例是针对一种操作多处理器系统的方法,所述方法包括将专用于第一处理器的信息存储在耦合至第一处理器的第一专用信息缓存中,且将第一处理器与一或多个其它处理器之间共享/可共享的信息存储在耦合至第一处理器的第一共享信息缓存中。第一专用信息缓存及第一共享信息缓存是分离的。

另一示范性实施例是针对多处理器系统,其包括:第一处理器;耦合至第一处理器的第一专用信息缓存,第一专用信息缓存经配置以存储第一处理器专用的信息;及耦合至第一处理器的第一共享信息缓存,第一共享信息缓存经配置以存储在第一处理器与一或多个其它处理器之间共享/可共享的信息。第一专用信息缓存及第一共享信息缓存是分离的。

另一示范性实施例是针对多处理器系统,其包括:第一处理器;用于存储第一处理器专用的信息的第一装置,所述第一装置耦合至第一处理器;及用于存储在第一处理器与一或多个其它处理器之间共享/可共享的信息的第二装置,所述第二装置耦合至第一处理器。所述第一装置与所述第二装置是分离的。

又一示范性实施例是针对包括代码的非暂时性计算机可读存储媒体,所述代码在由多处理器系统的第一处理器执行时使第一处理器执行存储信息的操作,所述非暂时性计算机可读存储媒体包括:用于将第一处理器专用的信息存储在耦合至第一处理器的专用信息缓存中的代码,及用于将第一处理器与一或多个其它处理器之间共享/可共享的信息存储在耦合至第一处理器的第一共享信息缓存中的代码。第一专用信息缓存及第一共享信息缓存是分离的。

附图说明

呈现随附图式以辅助描述本发明的实施例,且提供所述图式仅用于说明实施例而非对实施例加以限制。

图1说明具有常规的统一L2缓存的常规多处理器系统。

图2说明具有示范性分离式L2缓存(专用信息L2缓存及共享信息L2缓存)的示范性多处理器系统。

图3A至B说明当无提示可用时示范性分离式L2缓存的本地及远程访问时间。

图4A至B说明当有提示可用以指示所要信息是专用还是共享时示范性分离式L2缓存的本地及远程访问时间。

图5A至C说明示范性分离式L2缓存的并行搜索的本地及远程访问时间。

图6说明关于示范性分离式缓存的示范性读取操作及相关的一致性状态的流程图。

图7A至B说明关于示范性分离式缓存的示范性写入操作及相关的一致性状态的流程图。

图8是说明根据示范性方面的操作多处理器系统的方法的流程图。

图9说明本发明的一方面可有利地采用的示范性无线装置900。

具体实施方式

在以下针对本发明的特定实施例的描述及相关图式中揭示本发明的若干方面。可在不脱离本发明的范围的情况下设计替代实施例。此外,将不详细描述或将省略本发明的众所周知的元件,以免混淆本发明的相关细节。

词语“示范性”在本文中用以意指“充当实例、例子或说明”。本文中描述为“示范性”的任何实施例不必理解为比其它实施例优选或有利。同样,术语“本发明的实施例”并不需要本发明的所有实施例包含所论述的特征、优点或操作模式。

本文中所使用的术语仅出于描述特定实施例的目的,且并不意图限制本发明的实施例。如本文中所使用,除非上下文另外明确指示,否则单数形式“一”及“所述”意在也包含复数形式。将进一步理解,术语“包括”及/或“包含”在本文中使用时指定所陈述的特征、整体、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整体、步骤、操作、元件、组件及/或其群组的存在或添加。

此外,许多实施例依据待由(例如)计算装置的元件执行的动作序列来加以描述。应认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指令或由所述两者的组合来执行。另外,可认为本文中所描述的这些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有一组对应的计算机指令,一旦执行所述计算机指令将使相关联的处理器执行本文中所描述的功能性。因此,本发明的各种方面可以许多不同形式来体现,已预期其全部属于所主张的标的物的范围内。此外,对于本文中所描述的实施例中的每一者,任何此等实施例的对应形式可在本文中描述为(例如)“经配置以(执行所描述动作)的逻辑”。

示范性方面是针对用于避免与含有专用及共享信息两者的常规统一共享缓存结构相关联的资源损耗及较长访问时间的系统及方法。因此,一或多个方面是针对将共享信息及专用信息分离或分隔且将其放置在单独的缓存结构中。一般来说,如本文所使用的术语“信息”涵盖可存储在例如缓存等存储器结构中的任何类型的信息。更确切地说,“信息”可涵盖指令以及数据。因此,将针对可包含指令缓存、数据缓存或组合的指令及数据缓存的缓存结构描述示范性方面。指令与数据之间的区别与本文中所论述的示范性方面不相关,且因此采用术语“信息”代替指令及/或数据,以便消除可能因使用术语“数据”而产生的混淆。因此,如果论述有关示范性方面的示范性L2缓存,那么应理解,示范性L2缓存可为L2指令缓存或L2数据缓存或可保存指令以及数据的组合L2缓存。在示范性方面更相关的区别是关于缓存中的信息(指令/数据)是专用的还是共享的。因此,本说明书中对“信息类型”的提及是关于所述信息是专用的还是共享的。

因此,如本文中所采用,术语“专用信息”定义为包含非共享或非可共享但(例如)供特定处理器或核心专用的信息。另一方面,将若干处理器当中共享或可共享的信息定义为“共享信息”。一或多个示范性方面是针对分离式缓存结构,其中专用信息缓存经配置以包括专用信息,而共享信息缓存经配置以包含共享信息。因此,在示范性方面中将定义为包括专用信息以及共享信息的“常规统一缓存”分成两个缓存,其中每一缓存根据信息类型——专用信息缓存及共享信息缓存——进行配置。这允许基于其保存的信息类型优化每一缓存。

更详细地说,第一装置(例如专用信息缓存)经设计以保存与专用信息缓存相关联的本地第一处理器或核心专用的信息。第二装置(例如共享信息缓存)也与专用信息缓存一起提供,所述第二装置可保存第一处理器与一或多个其它远程处理器或可能相对于本地第一处理器处于远程位置的远程缓存之间共享或可共享的信息。这允许针对共享信息缓存单独定制及实施一致性协议,因为专用信息缓存不含共享或可共享信息,且因此不需要一致性机制就位。此外,在通过将一致性协议限制于共享信息缓存来降低实施这些协议的成本的过程中,所述示范性方面采用所述示范性缓存还能够实现更快访问时间及提高处理系统的性能。在示范性案例中,专用信息缓存的大小可小于常规统一缓存的大小,且搜索专用信息缓存更快是因为所述搜索排除共享信息。即使专用信息缓存的条目数目与常规统一缓存中的条目数目相当或相等,示范性专用信息缓存也可有更小整体大小且显示经提高的访问速度,因为示范性专用信息缓存中可避免一致性位及相关的一致性检查。在共享信息的实例中,可为共享信息缓存定制一致性协议,所述共享信息缓存可经配置以(例如,基于经验数据)保存比专用信息缓存或常规统一缓存少的条目数目。基于对应地更小的搜索空间,示范性共享信息缓存中的共享信息的访问时间可比在常规的统一缓存中搜索共享信息快很多。

虽然已参考示范性专用信息缓存及共享信息缓存的相对大小来提供以上实例,但应理解,这些实例不应解释为限制。另一方面,就存储在这些缓存中的缓存条目数目而言,示范性方面可包含任何大小的分离式专用信息缓存及共享信息缓存。基于对用于专用信息缓存的一致性实施的避免及在专用信息缓存或共享信息缓存中定向搜索信息的能力,可在任何大小的示范性分离式专用信息缓存及共享信息缓存中观测到性能及访问速度上的提高。基于这一点,应也可认识到,一些方面涉及示范性案例:其中,基于与处理器的本地缓存中专用信息更高百分比相关的经验数据,可使示范性专用信息缓存具备更大的大小且使示范性共享信息缓存具备更小的大小。以下图式中的示范性说明可采纳此类设定为相对较大大小的专用信息缓存及设定为较小大小的共享信息缓存来展示相对访问速度,但同样,这些说明并不解释为限制。

还应认识到,示范性方面的各态样有别于试图基于其中含有的信息为专用或是共享来将常规的统一缓存组织成区段或片段的已知方法,因为对信息的搜索量(及对应的访问时间)仍然较高且对应于整个常规统一缓存的搜索结构。举例来说,仅鉴别常规统一缓存中的缓存行是关于共享信息还是专用信息不能充分获得根据示范性方面的实体地分隔的缓存结构的益处。

应理解,所述示范性系统及方法是关于任何层级或大小的缓存(例如,L2、L3等)。虽然一些方面可能关于共享L2缓存而予以论述,但应清楚,所揭示的技术可延伸至存储器层级中的可包含共享信息的任何其它级缓存,例如L3缓存。此外,如前文所述,示范性技术可延伸至指令缓存及/或数据缓存,或换句话说,存储在示范性缓存结构中的信息可为指令及/或数据,或(就此而言)存储在特定缓存实施方案中的任何其它形式的信息。

现参考图1,说明常规的多处理器系统100。第一处理器102及第二处理器104展示成具有相关联的L2缓存106及108,其以通信方式耦合至主存储器110。在以下描述中,可将第一处理器102视为本地处理器,第二处理器104相对于其而言可为远程处理器或位于远程位置。在此论述中,术语“本地”及“远程”仅用于表达缓存与其它系统组件的相对放置,且不应解释为限制性的。此外,本文中不要求远程位置(例如)在芯片外或在与本地处理器所整合的芯片不同的芯片上。为简单起见,其它缓存(例如,处理器102、104内的本地L1缓存、L3缓存等)从此说明中省去,但可存在。L2缓存106及108可在处理器102及104之间共享。L2缓存106及108为常规的统一缓存,且其含有专用信息及共享信息两者。举例来说,L2缓存106相对于处理器102为本地的,且含有本地处理器102专用的信息(即本文中的“专用信息”)以及与远程处理器104共享的信息(即本文中的“共享信息”)。由于L2缓存106为常规的统一缓存,因此L2缓存106的所有条目或缓存行必须实施一致性协议。跨越L2缓存106的所有行的一致性位107代表性地说明了这一点。类似地,还展示L2缓存108的一致性位109。L2缓存106及108遭受与针对专用信息的一致性协议的不必要实施相关联的前述缺点:长访问时间、高功率消耗、低效搜索功能、浪费资源等。

现参考图2,说明关于包括处理器202及204的多处理器系统200的示范性方面。与图1的常规多处理器系统100相比,多处理器系统200包含以通信方式耦合至主存储器210的分离式缓存,其中系统总线212处置其各种互连(为简单起见,本视图中省去例如L1/L3缓存等额外细节,其中理解为存储器层级的这些及其它方面可能存在,但无限制性)。更详细地说,多处理器系统100中的L2缓存106(例如)由分离式缓存(专用信息L2缓存206p及共享信息L2缓存206s)代替。专用信息L2缓存206p包含处理器202专用(即,未共享或不可共享)的专用信息,其中处理器202相对于专用信息L2缓存206p为本地的。共享信息L2缓存206s包含可与本地处理器202及远程处理器204共享或可共享的共享信息。

在一些方面,例如如所说明,专用信息L2缓存206p与共享信息L2缓存206s相比可在大小上较大。然而,就如已论述的,这并非限制,且在其它方面,基于(例如)处理器202从这些缓存访问的专用信息及共享信息的相对量、或对专用信息及共享信息事务所要的性能要求,有可能专用信息L2缓存206p与共享信息L2缓存206s相比可具有更小或相等的大小。在一些情况下,可存储在专用信息L2缓存206p及共享信息L2缓存206s中的信息(专用或共享)的组合量可与可能存储在多处理器系统100的常规统一L2缓存106中的信息量相当。因此,在说明性实例中,专用信息L2缓存206p的大小可为常规统一L2缓存106大小的80-90%,而共享信息L2缓存206s的大小可为常规统一L2缓存106大小的10-20%。同样,此类情况也不是限制,且信息的组合量可小于或大于(例如)常规统一缓存(例如图1中的常规L2缓存106)中的条目数目。即使在示范性专用信息L2缓存206p及共享信息L2缓存206s的组合大小可能大于(比如)常规L2缓存106的情况下,示范性方面中的访问时间可仍然更快,因为可提供提示(如下文将进一步论述)来指引对专用信息L2缓存206p或共享信息L2缓存206s中的一者的特定信息的搜索;或可并行搜索专用信息L2缓存206p及共享信息L2缓存206s(同样,如以下章节将进一步论述)。

继续参考图2,一致性位207仅与共享信息L2缓存206s相关联,而专用信息L2缓存206p未展示具有对应的一致性位。相比于常规统一L2缓存106的一致性位107,一致性位207的大小可更小,部分原因是仅存储在更小的共享信息L2缓存206s中的条目对其有需要。关于一致性协议的适用于示范性方面的额外细节将在本发明的随后章节中予以论述。共享信息L2缓存206s可充当供较大专用信息L2缓存206p用的窥探过滤器,部分原因是远程处理器可首先搜索或窥探共享信息L2缓存206s,且在极少情况下可能将搜索延伸至专用信息L2缓存206p(其如上文所论述可能包含一些共享或可共享的信息)。

根据分离式示范性缓存的以上一般结构,现将论述填充及访问专用信息L2缓存206p及共享信息L2缓存206s。应理解,与具有一致性位209的专用信息L2缓存208p及共享信息L2缓存208s相关的对应方面是类似的,且出于简洁起见,将不再重复这些方面的详细论述。还将理解,(例如)在异构多处理器系统中的处理器202及204可能不相似,且因此每一处理器的分离式缓存的特性可能不同。举例来说,两个专用信息L2缓存206p及208p的大小可能不同且不相干,且两个共享信息L2缓存206s及208p的大小可能不同且不相干。相应地,其访问时间及访问协议也可能不同且不相干。因此,将描述示范性协议以供确定:是否必须将特定缓存行或信息指引至专用信息L2缓存206p及共享信息L2缓存206s以供填充这些缓存;就循序搜索这些示范性缓存而言,为了访问特定缓存行而搜索这些分离式缓存的次序;对示范性缓存的并行搜索的选择;及相对性能及功率益处。一般来说,应认识到,可选择性地禁用所述分离式缓存以供节约功率。举例来说,如果处理器202希望访问专用信息且相关的访问请求被识别为应导向专用信息L2缓存206p的一个请求,那么没有理由启动共享信息L2缓存206s或保持其在作用中。因此,可将共享信息L2缓存206s停用或置于睡眠模式。

因此,示范性方面可涉及分离式缓存的示范性访问,其中得不到关于所要访问是针对专用信息还是共享信息的额外提示或指示。举例来说,处理器202可能希望访问来自其本地L2缓存的信息,但其可能不知道这个信息是将位于专用信息L2缓存206p中还是共享信息L2缓存206s中。因此,可能需要搜索专用信息L2缓存206p及共享信息L2缓存206s两者。在一个方面中,可循序地搜索(也可能并行搜索,将在下文更详细地论述)专用信息L2缓存206p及共享信息L2缓存206s。可按特定处理需求定制依序搜索的次序,且虽然更详细地处理首先搜索专用信息L2缓存206p、然后搜索共享信息L2缓存206s的情况,但从此处描述可容易理解首先搜索共享信息L2缓存206s、然后搜索专用信息L2缓存206p的相反情况。可基于示范性协议执行依序搜索,所述示范性协议在大多数情况下将通过识别两个分离的缓存中会发现所要信息的最可能的一者且首先搜索所述两个分离缓存中所述最可能的一者来优化访问时间。在几个罕见的情况中,依序搜索在更可能的一者中未命中之后将需要延伸至所述两个分离缓存中不大可能的一者。虽然在这些罕见情况中,整体访问有可能比搜遍常规统一缓存的整体访问高,但示范性多处理器系统200的整体性能仍然比常规多处理器系统100的整体性能高,因为常见情况得到提高。虽然并行搜索也有可能,但这将需要启动专用信息L2缓存206p及共享信息L2缓存206s两者及相关的搜索功能。因此,在一些方面中,并行搜索可能涉及功率节省与高速访问之间的权衡。

图3A中形象地表示了以上与本地访问相关的方面。访问常规多处理器系统100的常规统一L2缓存106所花费的时间说明为时间302。现参考示范性多处理器系统200,在常见情况情境中,处理器202将假定所要信息为专用的(如先前论述,这在常规上构成约80-90%的访问)。因此,处理器202可首先搜索专用信息L2缓存206p。访问专用信息L2缓存206p所花费的时间说明为时间304。代表性地,时间304展示为小于时间302,且因此在常见情况中,示范性方面可减少访问时间。在罕见情况中,所要信息并非专用,而是与远程处理器204共享或可共享(这在常规上构成约10-20%的访问)。因此,在这些情况下,一旦处理器202已搜遍专用信息L2缓存206p且未命中,则处理器202可循序地继续搜索共享信息L2缓存206s。用于此依序搜索的全部访问时间说明为时间306。如所见,时间306可略微大于常规统一L2缓存106访问时间302。然而,由于罕见情况不频繁,因此归因于常见情况访问的改进,示范性多处理器系统200的整体性能得以提高。

另外,示范性方面可通过将待首先搜索的缓存实体地放置得接近处理器来进一步优化依序搜索的常见情况。举例来说,在上述示范性方面中,通过将专用信息L2缓存206p物理上放置得接近处理器202,可降低电线时延。由于专用信息L2缓存206p不需要一致性状态标签,因此可通过定制专用信息L2缓存206p的设计以省略与一致性相关的硬件(其常规上包含在L2缓存中)来进一步降低专用信息L2缓存206p的大小。此外,由于来自远程处理器204的窥探请求并不干扰本地处理器202对专用信息L2缓存206p的专用访问,因此进一步优化所述专用访问。

现参考在时间306之后还没在共享信息L2缓存206s中发现所要信息的情况,处理器202可将搜索延伸至远程处理器204的共享信息L2缓存208s及专用信息L2缓存208p。这些情况属于远程访问的类别。在示例性方面中,此类远程访问的访问时间也在大多数情况下得到改进。所述远程访问及对应的访问将参考图3B相对于常规多处理器系统100中可比的远程访问予以论述。

参考图3B,相对于图3A中的上述依序搜索来说明远程访问协议及访问时间。在常规多处理器系统100中,如果确定本地统一L2缓存106不具有处理器102所要的信息,那么处理器102可查看远程L2缓存108。累计用于搜遍L2缓存106及108两者的访问时间且表示为时间312。另一方面,在示范性多处理器系统200中,通过时间306(参考图3A)将确定两个本地缓存(专用信息L2缓存206p及共享信息L2缓存206s)并不具有处理器202所要的信息。处理器202接着继续首先查看远程共享信息L2缓存208s,因为这个缓存更可能(同样,80-90%的远程访问)具有共享信息。因此,在更可能的情境中,本地缓存(专用信息L2缓存206p、共享信息L2缓存206s)的依序访问及随后的远程共享信息L2缓存208s所需的累计时间为时间314。如所见,时间314小于常规实施方案的时间312。在罕见情况(例如10-20%的远程访问)下,共享信息可能最终存在于远程专用信息L2缓存208p中,且依序访问将产生访问时间316,其可略微大于常规访问时间312。然而,更可能的情境中优良的访问时间的性能益处胜过罕见情况中较长访问时间的性能影响。此外,在一些实施方案中,如果在远程专用信息L2缓存208p中发现共享信息,那么可将所述共享信息提升至远程共享信息L2缓存208s以供在未来降低对应的访问时间。同样,应注意,必要时可通过首先搜索远程专用信息L2缓存208p且接着搜索远程信息L2缓存208s来颠倒远程缓存的依序搜索的次序。此外,在其它情况下,远程缓存的搜索也可并行进行。

一些示范性方面还可包含硬件/软件优化以进一步改进远程访问。举例来说,对于图3B中所说明的方面及参考图2,可将远程共享信息L2缓存208s放置得接近系统总线212以在远程访问期间具有更短的电线时延。同样,如先前描述,可使远程共享信息L2缓存208s的区域小于远程专用信息L2缓存208p,且一致性位209及相关联的硬件可限于远程共享信息L2缓存208s。远程共享信息L2缓存208s还充当远程专用信息L2缓存208p的窥探过滤器,且避免来自处理器204的本地访问的很大部分对共享信息L2缓存208s的干扰(因为来自处理器204的本地访问更可能在专用信息L2缓存208p中命中)。

虽然已针对没有提示可供用于预先确定所要信息是专用的还是共享/可共享的情况来描述以上关于本地及远程的依序访问的示范性方面,但一或多个方面也可包含引导这个确定的提示。举例来说,使用编译程序或操作系统(OS)支持,处理器所要的特定信息可识别为处理器专用的或与远程处理器共享/可共享的。在其它关于已知架构的实例中,采用页表属性或可共享性属性(例如“共享正常存储器属性”)来描述存储器区域是否被多个处理器访问。如果所要信息属于所述存储器区域,那么所述信息可识别为共享的或可共享的,且因此为非专用的。此类有关信息的类型的识别可用于推导提示,其中所述提示可用于导入访问协议。

举例来说,如果处理器202基于提示而知道其寻求的信息是专用的还是共享/可共享的,那么所述处理器可直接把可能保存所述类型的信息的缓存作为目标。更确切地说,如果基于提示而确定所述信息为专用的,那么处理器202可将相关访问以相关联的低时延指引至专用信息L2缓存206p。举例来说,参考图4A,对于本地访问,如果提示可供使用,那么对于专用信息,访问时间将对应于用于访问专用信息L2缓存206p的时间304(类似于参考图3A所描述的没有提示可供使用的常见情况情境)。对于共享信息,访问时间将对应于用于小的共享信息L2缓存206s的访问时间或时间308。可见这些访问时间304及308两者比对应的统一L2缓存106的常规访问时间(其将仍为时间302)低,因为提示并不加快常规的访问时间。

参考图4B,说明远程访问及相关联的访问时间,其中提示可供使用。对于共享信息(基于提示),如果处理器202所要的信息在本地共享信息L2缓存206s中未命中,那么所述处理器继续访问远程共享信息L2缓存208s。累计访问时间将为时间318。同样,应指出,时间318明显比对应的如相对于图3B所论述的常规实施方案中发生的时间312低,因为提示并不加快常规实施方案中的访问时间。

应理解,如果基于所述提示已知是专用的信息在本地专用信息L2缓存206p中未命中,那么所述访问协议将不继续搜索远程缓存,因为所述信息是专用的且因此不应存在于任何其它远程缓存中。因此,依照所述未命中,访问协议将直接继续搜索下一级存储器(例如一些情况下的L3缓存,或主存储器210)。这种直接继续搜索较高级缓存及/或主存储器的方式符合预期行为,其中在上下文切换或线程迁移之后,专用缓存中的所有数据将被写回(如果已变更)且失效。

一些示范性方面中也可包含关于功率考虑因素的额外优化。举例来说,对于具有两个或更多个处理器或核心的多处理器,并不在所有在作用中的处理器中共享所有信息,而且随着处理器数目增大,查找所有处理器的远程专用信息缓存及远程共享信息缓存往往会极其昂贵且耗费功率。为了以低成本/低功率方式有效地处理这一点,一些示范性方面实施对信息的层级搜索,其中针对共享信息的常见情况对所述层级搜索进行了优化。当发出请求的处理器针对所要信息搜索其它远程处理器时,所述发出请求的处理器可首先将对所要信息的请求发送至所有远程共享信息缓存。如果所要信息在所有共享信息缓存中未命中,那么一则信息可被发回至发出请求的处理器,将所述未命中告知发出请求的处理器。示范性方面可经配置以仅当所要信息在所有共享信息缓存中未命中时才能够将搜索延伸至远程专用信息缓存。因此,(例如)在无提示可供使用的情况下,可将根据上文所描述的示范性方面的依序搜索延伸至任何数目的处理器。

因此,示范性多处理器系统可有利地将缓存结构分离成专用信息缓存及共享信息缓存。可针对这两种分离的缓存的特定目的对其进行定制。举例来说,专用信息缓存可经优化以将高性能及低功率路径提供给相关联的本地处理器的L1缓存及/或处理核心。共享信息缓存可经优化以将高性能及低功率路径提供给所述示范性多处理器系统的其余部分。由于不再需要专用信息缓存来跟踪一致性,因此共享信息缓存可在这点上得以进一步优化。举例来说,由于相较于针对相对更大的常规统一缓存,针对小的分离共享信息缓存实施更复杂的协议的负担更低,因此可采用这些复杂协议来跟踪一致性。

此外,可基于性能目标定制专用信息缓存及共享信息缓存的缓存行的相对大小及数目。可定制共享信息缓存的结合性来符合共享模式或共享信息模式的要求,其中这种结合性可不同于对应的专用信息缓存的结合性。类似地,可针对专用信息缓存及共享信息缓存单独选择替换策略(例如,最近最少使用、最近使用、随机等)。例如,由于可使具有较低数目的端口(因一致性状态及信息被省略的缘故)的专用信息缓存的布局不同于共享信息缓存的布局,也可对专用信息缓存及共享信息缓存的布局进行定制。如先前论述,可通过在依序搜索期间选择性断开专用信息缓存及共享信息缓存中的至少一者来获得功率节省。在一些情况下,当专用信息缓存相关联的处理器不在执行代码时,可将所述专用信息缓存断开,因为这将意味着不会发生专用信息访问。

现参考图5A至C,将论述示范性专用信息及共享信息缓存的并行访问。一般来说,这些情况可能涉及提示不可用的状况,因为提示会有助于仅对更可能具有所要信息的缓存的定向搜索。然而,这并非限制,且必要时,如果提示可供使用,那么也可执行并行搜索。

参考图5A,其中的说明再次将常规统一L2缓存106的访问时间说明为访问时间302。相比之下,专用信息L2缓存206p的访问时间展示为访问时间504,而共享信息L2缓存206s的访问时间展示为访问时间508,其中与访问时间504及508相关的访问并行发生。因此,并行搜遍专用信息L2缓存206p及共享信息L2缓存206s两者的整体时延或访问时间将是访问时间504与508中的更长者。在所说明的情况中,假定专用信息L2缓存206p较大,伴有对应地较高的访问时间504,且因此并行搜索将消耗与访问时间504相关的时延(即使基于专用信息L2缓存206p及共享信息L2缓存206s大小相同,因此访问时间504及508相等,但访问时间中较高的一者将仍等于504或508,且因此这种情况的处理将类似)。如可见,这比访问时间302低。虽然在示例性方面中的此类并行访问可能需要接通且搜索专用信息L2缓存206p及共享信息L2缓存206s两者,从而带来一些冗余,但性能益处可胜过所附加的功率成本,因为信息可从缓存返回,其中比起常规统一缓存的可能情况,所述信息呈现得更早。

参考图5B,说明专用信息L2缓存206p及共享信息L2缓存206s两者均不含有所要信息的情境,例如,如同其与图5A相关。因此,必须启动远程访问。在常规统一缓存实施方案中,远程访问的整体访问时间将是累计访问时间以及搜遍统一的本地L2缓存106及随后的远程L2缓存108所涉及的任何额外时延,描绘为访问时间312。另一方面,一旦专用信息L2缓存206p及共享信息L2缓存206s的并行搜索在访问时间504及508中的较大者(如所说明是504)处结束,那么远程搜索可立即开始,即,早于常规统一L2缓存的可能情况。可接着在远程共享信息L2缓存208s中搜索所要信息,因为这个缓存是共享信息最可能存在的地方。如果所要信息存在于远程共享信息L2缓存208s中,那么访问时间将为如比访问时间312低的访问时间514所指示。

参考图5C,说明图5B的替代性方面,其中示范性分离式缓存的远程搜索也可并行执行而非如图5B中首先搜遍远程共享信息L2缓存208s。照此,在图5C中,仍并行搜索远程共享信息L2缓存208s及远程专用信息L2缓存208p,伴以整体时延514及516,如所描绘。在此实例中,基于假设远程专用信息L2缓存208p较大,因此整体时延516较大。整体时延516涉及用于并行搜索本地分离式缓存且接着并行搜索远程分离式缓存的时间。如所见,整体时延516比用于常规的统一本地及远程L2缓存的时延312低。因此,同样,即使在图5C中所描绘的较不常见实例中,性能及访问时间也得以提高,且可弥补所引发的功率方面的任何附加成本。

从以上所描述的示范性方面可知,可见可能需要将示范性专用信息及共享信息缓存配置成分离式。此外,在一些方面中,可能需要对分离的专用信息及共享信息缓存进行配置,使得不允许将共享信息填充在专用信息缓存中,且不允许将专用信息填充在共享信息缓存中。以此方式,可有可能基于存储在分离式缓存中的信息性质来定制所述分离式缓存的大小、一致性机制、放置等。

现参考图6至7,说明示范性方面中分别针对读取及写入操作的一致性协议的实施方案。用来维持特别是写回缓存中的一致性的常用机制涉及如先前所提及的所谓MESI协议。简单来说,针对(例如)具有共享内存的多处理器系统内的第一缓存的每个缓存行或缓存条目,常规MESI协议定义四种状态:修改(M)、互斥(E)、共享(S)及无效(I)。修改(M)状态指示缓存条目仅存在于第一缓存中,但“已变更”,即,其已由主存储器中的值发生修改。互斥(E)状态指示仅第一缓存拥有所述缓存条目,且所述缓存条目“未变更”,即,其与主存储器中的值匹配。共享(S)状态指示所述缓存条目未变更,但所述缓存条目的副本也可存在于存储器系统中的一或多个其它缓存中。无效(I)状态指示所述缓存条目无效。通过各种与所要存储器访问相关的处理元件之间的通信(也称为“窥探”)及基于缓存条目的状态(M/E/S/I)而管理对缓存及主存储器的更新的权限来维持一致性。举例来说,如果多处理器系统中的第一处理器希望将数据写入至第一缓存(其可为与第一处理器相关联的本地L1缓存)的缓存条目,那么如果所述缓存条目处于互斥(E)状态,则第一处理器可写入缓存行且将其更新至修改(M)状态。另一方面,如果所述缓存条目处于共享(S)状态,那么所述缓存条目的所有其它副本必须在可准许第一处理器写入所述缓存条目之前失效。如本文所论述,可针对示范性分离的本地及远程缓存定制一致性协议的示范性实施方案。

图6至7可适用于任何处理系统,例如图2的多处理器系统200。图6至7涉及针对遵循始发本地处理器对应的请求的读取(载入)及写入(存储)操作的操作流程。可存在一或多个具有对应的缓存的远程处理器。出于概括性起见,在图6至7中已将发出请求的本地处理器的本地分离式缓存(例如,处理系统200中的本地处理器202的专用信息L2缓存206p及共享信息缓存L2缓存206s)分别标示为“LPCache”及“LSCache”。照此,LPCache及LSCache可为任何本地专用信息及共享信息缓存,包含L2缓存、L3缓存或其类似者。类似地,远程处理器的分离式缓存(例如,远程处理器204的远程专用信息L2缓存208p及共享信息缓存L2缓存208s)已总体上分别标示为“RPCache”及“RSCache”。任何数目的此类远程处理器及对应的远程缓存RPCaches及RSCaches可存在于图6至7的上下文中。就专用信息缓存(例如,LPCaches及RPCaches)而言,应记得并不出现一致性的概念,且因此专用信息缓存的缓存条目的上述互斥(E)状态将涉及把“有效”位设置为或其处于缓存条目的“V”状态。类似地,修改(M)状态将涉及把“已变更”位设置为或其处于缓存条目的“D”状态。

记住以上符号,图6说明关于示范性多处理器系统中的读取或载入操作的流程图,其中所述读取操作涉及由发出请求的本地处理器搜索信息副本。在决策框602中,读取操作开始于在本地的分离式缓存LSCache及LPCache中搜索所要信息(不论这是分别根据图3A至B及图4A至B在无提示或有提示的情况下循序地执行,或是根据图5A至C并行执行)。如果在本地的分离式缓存LSCache及LPCache中的一者中存在命中,那么如框604所指示,与所要信息相关的缓存条目的一致性状态不存在改变。另一方面,如果存在未命中,那么操作流程进行到决策框606,其中从RSCache开始对远程缓存进行搜索。如果在框606中存在未命中,那么在框608中将读取请求转发到一或多个RPCaches。另一方面,如果存在命中,那么出现两中单独的可能性,使分支遵循框632(其中所要信息仅有一个副本存在于RSCache中,呈M状态)及框640(其中存在多个呈S状态的副本)。

首先沿着框608进行,在决策框610中确定是否有任何RPCache包含所要信息。如果RPCaches中没有一个产生命中,那么在框612中,从主存储器检索所要信息的副本,随后在框616中将所检索到的信息以有效(V)状态存储在发出请求的本地处理器的LPCache中。

另一方面,如果在决策框610中确定所要信息在RPCaches中的一者中可得到,那么操作流程进行至决策框614,其中确定所要信息是处于有效(V)还是已变更(D)状态。如果其处于V状态,那么在框618中将所要信息移动至对应的远程共享缓存RSCache中,且在框620中将所述信息放置于总线上,以将所述信息转送至发出请求的处理器的LSCache。在框622中,将含有所要信息的共享缓存条目的一致性状态设置为S。如果在框614中,确定所要信息的副本处于D状态,那么在框624中,同样将所述信息的副本移动至对应的远程共享缓存RSCache,且在框626中将所述信息放置于总线上以将所述信息的副本转送至发出请求的处理器的本地共享缓存LSCache。然而,在此情况下,由于所述信息已变更,且含有所要信息的共享缓存条目的状态已从D变至S,因此也在框628中执行将所述信息的副本回写至主存储器。

在框606中确定RSCache具有呈M状态的所要信息的一个副本的情况下,操作流程进行至框632,其中将修改的信息放置于总线上,以便在框634中执行将修改的信息回写至主存储器。对应地,在框636中,含有所述修改信息的共享缓存条目的状态从M变至S。然后在框638中,将所述信息存储至针对所要信息发出请求的本地处理器的LSCache。

沿着框640进行,当决策框606揭示在RSCaches中有可用的呈S状态的所要信息的多个副本时,则在框640中,将来自RSCaches中的随机/任意一者的所述信息的副本放在总线上,以便在框642中将所述副本转送至发出请求的本地处理器的LSCache。

现参考图7A至B,说明(例如)基于来源于图6中所描述的多处理器系统中的发出请求的本地处理器的请求而对所要信息进行写入或存储操作。所述写入操作可基于无提示可供使用。在决策框702中,可检查发出请求的本地处理器的本地专用信息缓存LPCache。如果对应于所要信息的条目已经呈现在LPCache内,那么在决策框704中进行确定所要信息是出于已变更(D)状态还是有效(V)。如果所述缓存条目处于D状态或已变更,那么在框706中用待写入的信息更新所述缓存条目。如果所述缓存条目处于V或有效状态,那么在框708中用待写入的信息更新所述缓存条目,且在框710中将所述缓存条目的状态从V变至D。

另一方面,如果LPCache 702没有保存关于写入信息的缓存条目,那么操作流程从框702进行到决策框712。在框712中,从本地共享缓存LSCache开始在共享缓存中搜索所要信息。如果本地共享缓存LSCache产生未命中,则操作进行到图7B中所说明的框726。如果在LSCache中存在命中,那么在决策框714中确定对应的缓存条目处于M状态还是S状态。如果其处于S状态,则意味着所要信息将由发出请求的本地处理器仅写入至LSCache,这将改变远程共享缓存中的共享副本的状态。因此在框716中将更新播送至所有RSCaches以指示所述状态已修改,且在框718中所述状态在所有保存所要信息的副本的RSCaches上从S修改至I。在框720中,LSCache中的所述缓存条目由发出请求的本地处理器利用待写入的所要信息予以更新,且在框722中将所述缓存条目的状态从S变至M。另一方面,如果在决策框714确定所述缓存条目的状态为M,那么在框724中仅利用待写入的所要信息更新LSCache中的缓存条目,而不要求任何进一步的播送或状态。

接着看图7B,在决策框726中,确定对应于所要信息的缓存条目是否存在于远程共享缓存RSCaches中的任一者中。如果存在(于至少一个RSCache中),那么在决策框746中,确定RSCache中的缓存条目的状态是M还是S。如果状态为M,那么在框750中,将对应的缓存条目写回至主存储器,且在框752中将所述缓存条目的状态从M变至I。在框754中,接着将所要信息写入至发出请求的本地处理器的本地专用缓存LPCache。另一方面,如果在决策框726中,RSCache中的缓存条目的状态为S,那么在框748中,所述状态直接修改至I,且在框756中,接着将所要信息写入至发出请求的本地处理器的本地专用缓存LPCache。

另一方面,如果决策框726揭示没有一个RSCaches保存所要信息,那么在决策框728中确定远程专用缓存RPCaches中的任一者是否产生命中。如果没有,那么在框730中从主存储器检索所要信息,且在框732中将所要信息存储在发出请求的本地处理器的本地专用缓存LPCache中。另一方面,如果RPCaches中的一者保存所要信息,那么在决策框734中确定所要信息的状态是有效(V)还是已变更(D)。如果状态为V,那么在框742中,所述状态失效或设置为已变更(D),且在框744中将所要信息存储在发出请求的本地处理器的LPCache中。另一方面,如果所述状态已经是已变更(D),则在框736中将所要信息写回至主存储器,且在框740中将所述信息存储在发出请求的本地处理器的LPCache中。

应了解,示范性方面包含用于执行本文揭示的过程、函数及/或算法的各种方法。举例来说,如图8中所说明,示范性方面可包含操作多处理器系统(例如多处理器系统200)的方法(800)。所述方法可包含将第一处理器(例如,处理器202)专用的信息存储在耦合至第一处理器的第一专用信息缓存(例如,专用信息L2缓存206p)中(框802)。所述方法可进一步包含将在第一处理器与一或多个其它处理器(例如,处理器204)之间共享/可共享的信息存储在耦合至第一处理器的第一共享信息缓存(例如,专用信息L2缓存206p)中(框804),其中所述第一专用信息缓存与所述第一共享信息缓存分离。

现参考图9,描绘包含根据示范性实施例配置的多核心处理器的无线装置的特定说明性实施例的框图,且所述无线装置一般表示为900。无线装置900包含数字信号处理器(DSP)964,其可包含具有根据本发明的方面的分离式缓存的多个处理器。更确切地说,DSP 964可包含本地及远程处理器,例如图2的多处理器系统200的处理器202及204。根据示范性方面,本地分离式专用信息L2缓存206p及共享信息L2缓存206s可以通信方式耦合至本地处理器202,且类似地,远程分离式专用信息L2缓存208p及共享信息L2缓存208s可以通信方式耦合至远程处理器204。本地分离式专用信息L2缓存206p及共享信息L2缓存206s以及远程分离式专用信息L2缓存208p及共享信息L2缓存208s可进一步通过系统总线212耦合至一或多个较高层级的缓存(未展示)及存储器932。

图9还展示耦合至DSP 964及显示器928的显示控制器926。译码器/解码器(编码解码器)934(例如,音频及/或语音编码解码器)可耦合至DSP 964。还说明了例如无线控制器940(其可包含调制解调器)等其它组件。扬声器936及麦克风938可耦合至编码解码器934。图9还指示无线控制器940可耦合至无线天线942。在特定实施例中,DSP 964、显示控制器926、存储器932、编码解码器934及无线控制器940包含在系统级封装或片上系统装置922中。

在特定实施例中,输入装置930及电力供应器944耦合至片上系统装置922。此外,在特定实施例中,如图9中所说明,显示器928、输入装置930、扬声器936、麦克风938、无线天线942及电力供应器944在片上系统装置922外部。然而,显示器928、输入装置930、扬声器936、麦克风938、无线天线942及电力供应器944中的每一者可耦合至片上系统装置922的组件,例如接口或控制器。

应注意,虽然图9描绘了无线通信装置,但DSP 964及存储器932也可整合至机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元或计算机中。

所属领域的技术人员将了解,可使用多种不同技术及技艺中的任一者来表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示贯穿以上描述可能提到的数据、指令、命令、信息、信号、位、符号及码片。

此外,所属领域的技术人员将了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施方案决策不应解释为会导致脱离本发明的范围。

结合本文所揭示的实施例而描述的方法、序列及/或算法可直接以硬件、以由处理器执行的软件模块或以两者的组合来体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除磁盘、CD-ROM,或此项技术中已知的任一其它形式的存储媒体中。示范性存储媒体耦合至处理器,使得处理器可从存储媒体读取信息以及将信息写入至存储媒体。在替代方案中,存储媒体可与处理器成一体式。

因此,本发明的实施例可包含一种计算机可读媒体,其体现用于操作具有分离式专用信息及共享信息缓存的多处理系统的方法。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的实施例中。

虽然前文的揭示内容展示本发明的说明性实施例,但应注意,在不脱离如所附权利要求书界定的本发明的范围的情况下,可在其中做出各种改变及修改。无需以任何特定次序来执行根据本文中所描述的本发明的实施例的方法权利要求项的功能、步骤及/或动作。此外,虽然可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1