分区的共享高速缓存转让专利

申请号 : CN200680047731.5

文献号 : CN101331465B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : C·纳拉

申请人 : 英特尔公司

摘要 :

本发明讨论的一些实施例可在各种计算环境中利用共享高速缓存内的分区。在一个实施例中,在两种存储器访问代理之间共享的数据可存储在共享高速缓存的共享分区中。另外,由存储器访问代理之一访问的数据可存储在共享高速缓存的一个或多个私有分区中。

权利要求 :

1.一种用于分区的共享高速缓存的装置,包括:

耦合到共享高速缓存的第一存储器访问代理;

耦合到所述共享高速缓存的第二存储器访问代理,第二存储器访问代理包括多个处理器核;以及所述共享高速缓存包括:

共享分区,用来存储在第一存储器访问代理和第二存储器访问代理之间共享的数据;

以及

至少一个私有分区,用来存储由所述多个处理器核中的一个或多个处理器核访问的数据。

2.如权利要求1所述的装置,还包括高速缓存控制器,用来:对于第一存储器访问代理的存储器访问请求,在所述共享高速缓存的第一分区上执行第一组高速缓存策略;以及对于第二存储器访问代理的存储器访问请求,在所述共享高速缓存的第一分区和第二分区中的一个或多个分区上执行第二组高速缓存策略。

3.如权利要求2所述的装置,其中第一组高速缓存策略是第二组高速缓存策略的子集。

4.如权利要求1所述的装置,其中第一存储器访问代理或第二存储器访问代理中的至少一个识别存储器访问请求涉及的所述共享高速缓存中的分区。

5.如权利要求1所述的装置,其中第一存储器访问代理或第二存储器访问代理中的至少一个识别应用于涉及所述共享高速缓存的存储器事务的高速缓存策略。

6.如权利要求1所述的装置,其中所述多个处理器核中的一个或多个处理器核在所述共享高速缓存的一个或多个私有分区中执行部分写合并。

7.如权利要求1所述的装置,还包括比所述共享高速缓存低级的一个或多个高速缓存,其中所述一个或多个高速缓存窥探涉及所述共享分区的一个或多个存储器事务。

8.如权利要求1所述的装置,其中所述共享高速缓存是2级高速缓存、高于2级的高速缓存或最后一级高速缓存之一。

9.如权利要求1所述的装置,其中第一存储器访问代理包括一个或多个处理器。

10.如权利要求9所述的装置,其中所述一个或多个处理器中的至少一个处理器包括1级高速缓存。

11.如权利要求9所述的装置,其中所述一个或多个处理器中的至少一个处理器包括多级体系中的多个高速缓存。

12.如权利要求1所述的装置,其中所述多个处理器核中的一个或多个处理器核包括1级高速缓存。

13.如权利要求1所述的装置,其中所述多个处理器核中的至少一个处理器核包括多级体系中的多个高速缓存。

14.如权利要求1所述的装置,还包括至少一个私有分区,用来存储由第一存储器访问代理访问的数据。

15.如权利要求1所述的装置,其中第一存储器访问代理包括至少一个处理器,所述处理器包括多个处理器核。

16.如权利要求1所述的装置,其中所述多个处理器核在相同的集成电路管芯上。

17.如权利要求1所述的装置,其中第一存储器访问代理包括一个或多个处理器核,并且第一存储器访问代理与第二存储器访问代理在相同的集成电路管芯上。

18.一种用于分区的共享高速缓存的方法,包括:

在共享高速缓存的共享分区中存储在第一存储器访问代理和第二存储器访问代理之间共享的数据,第二存储器访问代理包括多个处理器核;以及在所述共享高速缓存的至少一个私有分区中存储由所述多个处理器核中的一个或多个处理器核访问的数据。

19.如权利要求18所述的方法,还包括在所述共享分区的一个或多个私有分区中存储由第一存储器访问代理访问的数据。

20.如权利要求18所述的方法,还包括识别存储器访问请求涉及的所述共享高速缓存中的高速缓存分区。

21.如权利要求18所述的方法,还包括:

对于第一存储器访问代理的存储器访问请求,在所述共享高速缓存的第一分区上执行第一组高速缓存策略;以及对于第二存储器访问代理的存储器访问请求,在所述共享高速缓存的第一分区或第二分区中的一个或多个分区上执行第二组高速缓存策略。

22.如权利要求18所述的方法,还包括识别应用于涉及所述共享高速缓存的存储器事务的高速缓存策略。

23.如权利要求18所述的方法,还包括在所述共享高速缓存的至少一个私有分区中执行部分写合并。

24.如权利要求18所述的方法,还包括动态或静态地调整所述共享高速缓存中的一个或多个分区的大小。

25.如权利要求18所述的方法,还包括窥探涉及所述共享高速缓存的所述共享分区的一个或多个存储器事务。

26.一种业务管理设备,包括:

交换结构;以及

用来处理经由所述交换结构传递的数据的装置,包括:高速缓存控制器,用来响应于存储器访问请求而在共享高速缓存的一个或多个共享分区和一个或多个私有分区中的一个分区中存储所述数据;

第一存储器访问代理和第二存储器访问代理,用来发送所述存储器访问请求,第二存储器访问代理包括多个处理器核;

所述一个或多个共享分区中的至少一个共享分区,用来存储在第一存储器访问代理和第二存储器访问代理之间共享的数据;以及所述一个或多个私有分区中的至少一个私有分区,用来存储由所述多个处理器核中的一个或多个处理器核访问的数据。

27.如权利要求26所述的业务管理设备,其中所述交换结构遵照公共交换接口(CSIX)、高级交换互连(ASI)、HyperTransport、Infiniband、外围设备互连(PCI)、PCI Express(PCI-e)、以太网、SONET(同步光网络)上的分组、或用于ATM的通用测试及操作PHY(物理)接口(UTOPIA)中的一个或多个。

28.如权利要求26所述的业务管理设备,其中所述高速缓存控制器:对于第一存储器访问代理的存储器访问请求,在所述共享高速缓存的第一分区上执行第一组高速缓存策略;以及对于第二存储器访问代理的存储器访问请求,在所述共享高速缓存的第一分区和第二分区中的一个或多个分区上执行第二组高速缓存策略。

29.如权利要求26所述的业务管理设备,其中第一存储器访问代理包括至少一个处理器,所述处理器含有多个处理器核。

30.如权利要求26所述的业务管理设备,还包括至少一个私有分区,用来存储由第一存储器访问代理访问的数据。

说明书 :

分区的共享高速缓存

背景技术

[0001] 为改进性能,一些计算系统利用多个处理器。这些计算系统还可包括能由多个处理器共享的高速缓存。然而,处理器可具有不同的高速缓存使用行为。例如,一些处理器可能正在使用共享高速缓存用于高吞吐量数据。结果,这些处理器可能会过于频繁地刷新共享高速缓存,从而使得剩余的处理器(其可能处理低吞吐量数据)不能有效地将他们的数据缓存在共享高速缓存中。附图说明
[0002] 将参考附图来提供具体描述。在图中,参考标号中的最左边数字标识其中该参考标号最先出现的图。在不同图中使用的相同参考标号表示相似或完全相同的项。
[0003] 图1、3和5说明了根据本发明各种实施例的计算系统的框图。
[0004] 图2说明了利用分区的共享高速缓存的方法实施例的流程图。
[0005] 图4说明了分布式处理平台的实施例的框图。具体实施方式
[0006] 在以下的描述中,陈述了许多特定细节以便提供对各种实施例的透彻理解。然而,本发明的各种实施例可以在没有这些特定细节的前提下实施。在其他实例中,并没有详细描述公知的方法、过程、部件和电路,以便不会使得本发明的具体实施例变得模糊。
[0007] 本文中讨论的一些实施例可在各种计算环境(如参考图1和图3至5讨论的那些计算环境)中利用共享高速缓存内的分区。更具体而言,图1说明了根据本发明实施例的多处理器计算系统100的一部分的框图。系统100包括一个或多个处理器102(在本文中称作“多个处理器102”或更一般地称作“处理器102”)。处理器102可通过总线(或互连网络)104与系统100的其他部件进行通信,所述其他部件例如为一个或多个核106-1至106-N(本文称作“多个核106”或更一般地称作“核106”)。
[0008] 如将进一步参考图3和5所讨论的,任何类型的多处理器系统可包括处理器核106和/或处理器102。此外,处理器核106和/或处理器102可提供在相同的集成电路管芯上。而且,在一个实施例中,至少一个处理器102可包括一个或多个处理器核。在一个实施例中,处理器102中的核可与核106同类或异类。
[0009] 在一个实施例中,系统100可处理通过计算机网络108传递的数据。例如,处理器核106中的每个核可执行一个或多个线程以便处理经由网络108传递的数据。在一个实施例中,处理器核106例如可以是一个或多个微引擎(ME)、网络处理器引擎(NPE)和/或流式处理器(可处理与例如图形、音频或其他类型实时数据的数据流相对应的数据)。此外,处理器102可以为通用处理器(如用来执行系统100内的各种通用任务)。在一个实施例中,处理器核106可提供与任务(例如数据加密等)相关的硬件加速。系统100还可包括一个或多个媒体接口110,其可为系统100的各种部件提供物理接口以便与网络108进行通信。在一个实施例中,系统100可包括用于处理器核106和处理器102中的每一个的一个媒体接口110。
[0010] 如图1所示,系统100可包括存储器控制器120,其可与总线104通信并提供对存储器122的访问。存储器122可由处理器102、处理器核106和/或通过总线104通信的其他部件共享。存储器122可存储数据,包括可由处理器102和/或处理器核106或系统100中包括的其他设备执行的指令序列。例如,存储器122可存储对应于在网络108上传递的一个或多个数据分组的数据。
[0011] 在一个实施例中,存储器122可包括一个或多个易失性存储(或存储器)设备,例如参考图3讨论的那些。而且,存储器122可包括非易失性存储器(外加或替代易失性存储器),例如参考图3讨论的那些。因此,系统100可包括易失性和/或非易失性存储器(或存储装置)。此外,多个存储设备(包括易失性和/或非易失性存储器)可耦合到总线104(未示出)。在一个实施例中,存储器控制器120可包括多个存储器控制120及相关联的存储器122。而且,在一个实施例中,总线104可包括多种多样的总线104或结构。
[0012] 另外,处理器102和核106可通过高速缓存控制器132与共享高速缓存130通信。如图1所示,高速缓存控制器132可通过总线104或直接地(例如通过用于处理器102和核106中的每一个的独立的高速缓存端口)与处理器102和核106通信。因此,高速缓存控制器132可向第一存储器访问代理(如处理器102)和第二存储器访问代理(如核106)提供对共享高速缓存130的访问(如读或写)。在一个实施例中,共享高速缓存130可以是2级(L2)高速缓存、高于2级(如3级或4级)的高速缓存或最后一级高速缓存(LLC)。
而且,在各种实施例中,处理器102和核106中的一个或多个可包括一个或多个高速缓存,例如1级高速缓存(如分别为高速缓存124和126-1至126-N(本文中称作“多个高速缓存
126”或更一般地称作“高速缓存126”))。在一个实施例中,高速缓存(如高速缓存124和/或126)可代表单个统一的高速缓存。在另一实施例中,高速缓存(如高速缓存124和/或126)可包括配置在多级体系中的多个高速缓存。而且,该体系的级可包括多个同类或异类的高速缓存(如数据高速缓存和指令高速缓存)。
[0013] 如图1所示,共享高速缓存130可包括一个或多个共享分区134(如用来存储在核106和/或处理器102(或处理器102中的一个或多个核)的各种分组之间共享的数据)和一个或多个私有分区136。例如,私有分区中的一个或多个分区可存储仅由核106中的一个或多个核访问的数据;然而,其他私有分区可存储仅由处理器102(或处理器102内的核中一个或多个核)访问的数据。因此,共享分区134可使得核106能参与同处理器102的一致性高速缓存存储器通信。而且,在一个实施例中,分区134和136中的每个分区可代表独立的一致性域。另外,系统100可包括一个或多个其他的高速缓存(如高速缓存124和
126、其他中间级高速缓存或LLC(未示出)),所述一个或多个其他的高速缓存同共享高速缓存130一起参与高速缓存一致性协议。此外,在一个实施例中,高速缓存中的每个高速缓存同分区134和/或136中的一个或多个分区一起参与高速缓存一致性协议,例如以便在系统100内提供一个或多个高速缓存一致性域。而且,即使图1所示的分区134和136看起来像具有相同大小,但这些分区也可具有不同的(可调整的)大小,这将进一步参考图2讨论。
[0014] 图2说明了利用分区的共享高速缓存的方法200的实施例的流程图。在各种实施例中,参考方法200讨论的操作中的一个或多个操作可由参考图1、3、4和/或5讨论的一个或多个部件执行。例如,方法200可使用图1中的共享高速缓存130的分区134和136用于数据存储。
[0015] 参考图1和2,在操作202,高速缓存控制器132可从存储器访问代理(如处理器102或核106之一)接收访问(如读或写)共享高速缓存130的存储器访问请求。在一个实施例中,分区134和136的大小可以是静态或固定的,如在系统初始化时被确定。例如,分区134和136的大小可以是静态的以便降低使用共享高速缓存分区134用于不同类型的数据的影响(如其中一个处理器可能正在使用共享高速缓存用于高吞吐量数据,其过于频繁地刷新共享高速缓存,使得剩余的处理器不能有效地将其数据缓存在共享高速缓存中)。
[0016] 在一个实施例中,在可选操作204,例如在操作202的存储器访问请求所请求的存储器部分比当前在分区134或136之一中可得到的存储器部分更大时,高速缓存控制器132可确定分区134和136的大小是否要被调整。如果需要进行分区大小调整,则高速缓存控制器132会可选地调整分区134和136的大小(在操作206)。在一个实施例中,因为共享高速缓存130的总大小可以是固定的,一个分区中大小的增加可导致剩余分区中的一个或多个分区的大小减小。因此,例如由于高速缓存行为、存储器访问代理请求、数据流行为、时间考虑(如延时)或其他因素,分区134和/或136的大小会被动态地调整(如在操作204和/或206)。此外,系统100可包括对应于分区134和136如何或何时可被调整的一个或多个寄存器(或在存储器122中存储的变量)。这种寄存器或变量可设置边界、计数等。
[0017] 在操作208,高速缓存控制器132可确定哪一个存储器访问代理(如处理器102或核106)发起存储器访问请求。这可基于存储器访问请求提供的标记(如识别存储器访问请求的源的一个或多个位)或在操作202接收存储器访问请求的高速缓存端口而被确定。
[0018] 在一些实施例中,因为核106可具有与处理器102相比不同的高速缓存使用行为(例如,核106可处理从缓存受益较少的高吞吐量或流式数据,因为数据可能被写入一次并可能被读取一次,而在之间有相对较长的延迟),所以对于处理器102与核106的存储器访问请求,可执行不同的高速缓存策略。一般,高速缓存策略可指明响应于请求(例如来自请求者、系统或另一存储器访问代理)高速缓存130如何将数据装载、预取、存储、共享和/或回写到存储器122。例如,如果核106用作输入/输出(I/O)代理(如,用来处理在网络108上传递的数据),这种存储器访问可对应于比完整高速缓存行(如32个字节)小的数据块(如一个双字)。为此,在一个实施例中,核106中的至少一个核可请求高速缓存控制器132在私有分区136的至少一个中执行部分写合并(如合并较小的数据块)。在另一示例中,核106可例如为不从缓存受益的数据识别选择高速缓存策略(包括分配策略),该选择高速缓存策略被应用于涉及共享高速缓存130的存储器事务,没有写分配的写事务可被执行。这使得能够将数据发送到存储器122,而不是为写入一次而不被该代理再次读取的数据占据共享高速缓存130中的高速缓存行。类似地,在其中待写入的数据与能访问共享高速缓存130的另一代理时间上相关的实施例中,核106可识别在选择共享分区134中将要执行的写分配的高速缓存策略。
[0019] 因此,对于处理器102的(如操作202的)存储器访问请求,在操作210,高速缓存控制器132可确定请求(如在操作202)涉及哪个分区(如共享分区134或私有分区136中的一个私有分区)。在一个实施例中,存储器访问代理(如在该例中处理器102)可利用与存储器访问请求(如在操作202)相对应的标记来指示存储器访问请求涉及哪个分区。例如,存储器访问代理102可以用识别共享高速缓存130内的特定分区的一个或多个位来标记存储器访问请求。或者,高速缓存控制器132可基于存储器访问请求的地址(如仅被存储在共享高速缓存130的分区(如134或136)的特定一个分区中的具体地址或地址的范围)确定共享高速缓存130的目标分区。在操作212,高速缓存控制器132可在目标分区上执行第一组高速缓存策略。在操作214,高速缓存控制器132可将对应于来自处理器102的存储器访问请求的数据存储在目标分区中。在一个实施例中,比操作210的目标高速缓存(如高速缓存124或其他可由处理器102访问的中间级高速缓存)低级的一个或多个高速缓存可窥探(snoop)涉及(如操作210的)目标分区的一个或多个存储器事务。因此,与处理器102相关联的高速缓存124不需要窥探涉及核106的私有分区136的存储器事务。在一个实施例中,例如对于核106可处理高吞吐量数据,其可能过于频繁地刷新共享高速缓存130,使得处理器102不能有效地将数据缓存在共享高速缓存130中的情况,这改善了系统效率。
[0020] 而且,对于多个核106中的一个核的存储器访问请求,在操作216,高速缓存控制器132可确定存储器访问请求涉及哪一个分区。如参考操作210所述,存储器访问代理可利用与(如操作202的)存储器访问请求相对应的标记来指示存储器访问请求涉及哪个分区(如分区134或136)。例如,存储器访问代理106可以用识别共享高速缓存130内的特定分区的一个或多个位来标记存储器访问请求。或者,高速缓存控制器132可基于存储器访问请求的地址(如仅被存储在共享高速缓存130的分区(如134或136)的特定一个分区中的具体地址或地址的范围)确定共享高速缓存130的目标分区。在一个实施例中,对于特定事务,处理器102内的处理器核使访问限制于分区134或136中的一个分区,结果,利用操作202的存储器访问请求,由处理器102发送的任何存储器访问请求可不包括任何分区标识信息。
[0021] 在操作218,高速缓存控制器132可在共享高速缓存130的一个或多个分区上执行第二组高速缓存策略。在操作214,高速缓存控制器132可将对应于核106的存储器访问请求的数据存储在(如操作216的)目标分区中。在一个实施例中,(如操作210的)第一组高速缓存策略与(如操作218的)第二组高速缓存策略可以不同。在一个实施例中,(如操作210的)第一组高速缓存策略可以是(如操作218的)第二组高速缓存策略的子集。在一个实施例中,(如操作210的)第一组高速缓存策略可以是暗示的而(如操作218的)第二组高速缓存策略可以是明确的。明确的高速缓存策略一般是指其中高速缓存控制器132接收有关哪个高速缓存策略在相应的操作212或218被利用的信息的实现;然而,使用暗示的高速缓存策略,不会提供对应于操作202的请求的有关特定高速缓存策略选择的信息。
[0022] 图3说明了根据本发明的实施例的计算系统300的框图。计算系统300可包括耦合到互连网络(或总线)304的一个或多个中央处理器单元(CPU)302或处理器(本文一般称作“多个处理器302”或“处理器302”)。处理器302可以是任何合适的处理器,例如通用处理器、网络处理器(其处理在计算机网络108上传递的数据)或其他类型的处理器,包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。而且,处理器302可具有单个或多个核设计。具有多个核设计的处理器302可在相同的集成电路(IC)管芯上集成不同类型的处理器核。此外,具有多个核设计的处理器302可实现为对称或非对称多处理器。而且,系统300可包括参考图1-2讨论的处理器核106、共享高速缓存130和/或高速缓存控制器中的一个或多个。在一个实施例中,处理器302可以与参考图1-2讨论的处理器102相同或相似。例如,处理器302可包括图1的高速缓存124。此外,参考图1-2讨论的操作可由系统300的一个或多个部件执行。
[0023] 芯片组306也可耦合到互连网络304。芯片组306可包括存储器控制集线器(MCH)308。MCH 308可包括耦合到存储器312的存储器控制器310。存储器312可存储数据(包括由处理器302和/或核106、或包括在计算系统300中的任何其他设备执行的指令序列)。在一个实施例中,存储器控制器310和存储器312可分别与图1的存储器控制器120和存储器122相同或相似。在本发明的一个实施例中,存储器312可包括一个或多个易失性存储(或存储器)设备,例如随机访问存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)等。还可利用非易失性存储器,例如硬盘。另外的设备可耦合到互连网络304,例如多个CPU和/或多个系统存储器。
[0024] MCH 308还可包括耦合到图形加速器316的图形接口314。在本发明的一个实施例中,图形接口314可经由加速图形端口(AGP)耦合到图形加速器316。在本发明的实施例中,显示器(例如平板显示器)可通过例如信号转换器耦合到图形接口314,该信号转换器将存储设备(如视频存储器或系统存储器)中存储的图像的数字表示变换成由显示器解释并显示的显示信号。由显示器设备产生的显示信号在被显示器解释并随后显示在其上之前可通过各种控制设备。
[0025] 集线器接口318可将MCH 308耦合到输入/输出控制集线器(ICH)320。ICH 320可向耦合到计算系统300的I/O设备提供接口。ICH 320可通过诸如外围设备互连(PCI)桥、通用串行总线(USB)控制器等的外围桥(或控制器)324耦合到总线322。桥324可提供CPU 302和外围设备之间的数据路径。可利用其他类型的拓扑。此外,多个总线可例如通过多个桥或控制器耦合到ICH 320。此外,这些多个总线可以同类或异类。而且,在各种本发明的实施例中,其他耦合到ICH320的外围设备可包括集成驱动电子设备(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(如数字视频接口(DVI))等。
[0026] 总线322可耦合到音频设备326、一个或多个盘驱动器(或盘接口)328、以及一个或多个网络接口设备330(其耦合到计算机网络108)。在一个实施例中,网络接口设备330可以是网络接口卡(NIC)。在另一实施例中,网络接口设备330可以是存储主机总线适配器(HBA)(如用来连接到光纤通道盘)。其他设备可耦合到总线322。此外,在本发明的一些实施例中,各种部件(如网络接口设备330)可耦合到MCH308。另外,处理器302和MCH308可被结合以形成单个集成电路芯片。在一个实施例中,图形加速器316、ICH 320、外围桥324、音频设备326、盘或盘接口328和/或网络接口330可按各种配置结合在单个集成电路芯片中。此外,各种配置可与处理器302和MCH 308结合在一起以形成单个集成电路芯片。而且,在本发明的其他实施例中,图形加速器316可包括在MCH 308内。
[0027] 另外,计算系统300可包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可包括以下存储器中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、带有电池的非易失性存储器(NVRAM)、盘驱动器(如328)、软盘、只读光盘(CD-ROM)、数字化视频光盘(DVD)、闪存、磁光盘或适合存储电子数据(包括指令)的其他类型的非易失性机器可读媒体。
[0028] 对应于图1和图3的系统100和300可使用在各种应用中。例如,在联网应用中,可能为在网络处理器(如处理例如按数据分组形式的在网络上传递的数据的处理器)的分组处理元件和控制和/或内容处理元件之间的最佳、高吞吐量通信而将分组处理与通用处理紧密地耦合。例如,如图4所示,分布式处理平台400的实施例可包括通过底板406(如交换结构)互连的刀片(blade)402-A至402-M和线路卡404-A至404-P的集合。交换结构406例如可遵照公共交换接口(CSIX)或其他结构技术,如高级交换互连(ASI)、HyperTransport、Infmiband、外围设备互连(PCI)(和/或PCI Express(PCI-e))、以太网、SONET(同步光网络)上的分组、RapidIO和/或用于异步传输模式(ATM)的通用测试和操作PHY(物理)接口(UTOPIA)。
[0029] 在一个实施例中,线路卡404可提供线路终止和输入/输出(I/O)处理。线路卡404可包括数据面中的处理(分组处理)以及控制面处理,以便进行在数据面中执行的策略的管理。刀片402-A至402-M可包括:用来进行未分配给线路卡的控制面功能的控制刀片;用来执行诸如驱动器枚举、路由表管理、全局表管理、网络地址翻译以及向控制刀片消息传送等的系统管理功能的控制刀片;应用及服务刀片;和/或内容处理刀片。交换结构或多个结构406还可驻留在一个或多个刀片上。在网络基础设施中,内容处理刀片可用来进行标准线路卡功能性以外的增强的基于内容的处理,所述标准线路卡功能性包括语音处理、加密清除以及在性能要求高时的侵入检测。在一个实施例中,控制、管理、内容处理和/或专门应用和服务处理的功能可按各种方式结合在一个或多个刀片402上。
[0030] 线路卡404中的至少一个线路卡(如线路卡404-A)是基于系统100和/或300的体系结构实现的专门线路卡,用来将处理器(如通用处理器或另一类型的处理器)的处理智能紧密地耦合到网络处理器(如处理在网络上传递的数据的处理器)的更为专门的能力。线路卡404-A包括一个或多个媒体接口110,用来处理在连接(如参考图1-3讨论的网络108或例如经由光纤通道的其他类型的连接,例如存储区域网络(SAN)连接)上的通信。一个或多个媒体接口110可耦合到处理器,本文示为网络处理器(NP)410(其在一个实施例中可以是处理器核106中的一个或多个)。尽管可使用单个NP,但是在该实现中,一个NP用作入口处理器,而其他的NP用作出口处理器。或者,一系列NP可配置为流水线以进行不同级的入口业务或出口业务或两者的处理。平台400中的其他部件和互连示出在图1中。本文中,总线104可通过输入/输出(I/O)块408耦合到交换结构406。在一个实施例中,总线104可通过存储器控制器120耦合到I/O块408。在一个实施例中,I/O块408可以是交换设备。而且,一个或多个NP 410和处理器102可耦合到该I/O块408。或者或此外,基于图1和图3的系统的其他应用可由分布式处理平台400采用。例如,对于优化的存储处理,例如涉及企业服务器的应用、网络存储、清除和存储子系统应用,处理器410可实现为I/O处理器。对于另外其他的应用,处理器410可以是协处理器(例如用作加速器)或独立的控制面处理器。在一个实施例中,处理器410可包括一个或多个通用和/或专门处理器(或其他类型的处理器)或协处理器。在一个实施例中,线路卡404可包括一个或多个处理器
102。取决于刀片402和线路卡404的配置,分布式处理平台400可实现交换设备(如交换机或路由器)、服务器、网关或其他类型装备。
[0031] 在各种实施例中,共享高速缓存(如图1的共享高速缓存130)可被分区以便由参考图1-3讨论的平台400的各种部件(如线路卡404和/或刀片402的若干部分)使用。共享高速缓存130可通过高速缓存控制器(如图1和图3的高速缓存控制器132)耦合到平台的各种部件。此外,共享高速缓存可在平台400的任何合适位置(例如在线路卡404和/或刀片402内)提供,或耦合到交换结构406。
[0032] 图5说明了根据本发明的实施例、按点对点(PtP)配置安排的计算系统500。具体来说,图5示出了其中处理器、存储器和输入/输出设备通过许多点对点接口互连的系统。参考图1-4讨论的操作可通过系统500的一个或多个部件而被执行。
[0033] 如图5所示,系统500可包括几个处理器,其中为清楚起见仅仅示出了两个处理器502和504。系统500可包括参考图1-4讨论的处理器核106、共享高速缓存130和/或高速缓存控制器132中的一个或多个,他们可通过PtP接口而与系统500的各种部件进行通信(例如按图5所示)。此外,处理器502和504可包括参考图1讨论的高速缓存124。在一个实施例中,处理器502和504可与参考图1-4讨论的处理器102相似。处理器502包括与存储器510耦合的本地存储器控制器集线器(MCH)506,处理器504包括与存储器512耦合的本地存储器控制器集线器(MCH)508。在图5所示的实施例中,核106还可包括与存储器耦合的本地MCH(未示出)。存储器510和/或512可存储各种数据,例如分别参考图
1和图3的存储器122和/或312讨论的那些数据。
[0034] 处理器502和504可以是任何合适的处理器,例如参考图3的处理器302讨论的那些处理器。处理器502和504可分别使用PtP接口电路516和518而经由点对点(PtP)接口514交换数据。处理器502可使用点对点接口电路526、530经由单独的PtP接口522与芯片组520交换数据,处理器504可使用点对点接口电路528、532经由单独的PtP接口524与芯片组520交换数据。芯片组520还可使用PtP接口电路537经由高性能图形接口
536与高性能图形电路534交换数据。
[0035] 本发明的至少一个实施例可通过利用处理器502和504而提供。例如,处理器核106可位于处理器502和504内。然而,本发明的其他实施例可存在于图5的系统500中的其他电路、逻辑单元或设备内。此外,本发明的其他实施例可分布在整个图5所示的几个电路、逻辑单元或设备中。
[0036] 芯片组520可使用PtP接口电路541耦合到总线540。总线540可具有耦合到它的一个或多个设备,例如总线桥542和I/O设备543。经由总线544,总线桥543可耦合到其他设备,例如键盘/鼠标545、参考图3讨论的网络接口设备330(如可耦合到计算机网络108的调制解调器、网络接口卡(NIC)等)、音频I/O设备、和/或数据存储设备或接口548。
数据存储设备548可存储可由处理器502和/或504执行的代码549。
[0037] 在本发明的各种实施例中,本文例如参考图1-5讨论的操作可实现为硬件(如逻辑电路)、软件、固件或其组合,他们可被提供为计算机程序产品,例如包括计算机可读介质或具有指令(或软件过程)存储在其上的计算机可读介质,所述指令用来对计算机进行编程以执行本文讨论的过程。计算机可读介质可包括例如关于图1-5讨论的任何合适的存储设备。
[0038] 此外,这种计算机可读媒体可作为计算机程序产品下载,其中可通过在载波或其他传播介质中体现的数据信号方式经由通信链路(如调制解调器或网络连接)将程序从远程计算机(如服务器)传送到请求计算机(如客户机)。因此,在本文中,载波应当视为包括计算机可读介质。
[0039] 在说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的具体特征、结构或特性可包括在至少一个实现中。在说明书中,在各处出现的词组“在一个实施例中”可以都指相同的实施例或可以不都指相同的实施例。
[0040] 而且,在说明书和权利要求书中,可使用术语“耦合”和“连接”及其派生词。在本发明的一些实施例中,可使用“连接”来表明两个或两个以上元件彼此直接物理或电接触。“耦合”可意味着两个或两个以上元件直接物理或电接触。然而,“耦合”还可意味着两个或两个以上元件彼此并不直接接触,但是彼此仍然协作并交互。
[0041] 因此,尽管按照对于结构特征和/或方法动作特定的语言描述了本发明的实施例,但是应当理解,所要求保护的主题不受限于所描述的特定特征或动作。相反,特定的特征和动作是按照实现所要求主题的样本形式公开的。