向处理器核分配高速缓冲存储器关联性的制作方法

文档序号:6350181阅读:154来源:国知局
专利名称:向处理器核分配高速缓冲存储器关联性的制作方法
向处理器核分配高速缓冲存储器关联性
背景技术
在包括个人计算机(PC)、服务器和嵌入式领域的主要市场份额中,多核处理器已作为主流计算平台而出现。随着给定芯片上处理器核的数目增长,对该芯片的本地存储器的潜在需求也增长。当处理器执行指令时,例如,处理器首先查看其片上高速缓存(cache) 来找寻与该指令关联的数据,以避免更加耗时地在其他地方(例如,非片上或在主存芯片上)搜索该数据。多个处理器核可以共享单个高速缓存,无论是主高速缓存还是高速缓存分级结构内其他位置的高速缓存,例如L2或L3高速缓存。对于多个核,多个输入应用流在搜寻共享的高速缓存空间时可能彼此干扰,结果,可能导致共享的高速缓存并且因此导致处理器的工作效率不高。与多核有关的其他因素也可能降低效率。然而,不是所有应用都大大受益于额外高速缓存资源的可用性。一个示例是流传输(streaming)应用,其中数据被取到高速缓存中,接受处理,然后不太可能被再次使用。 因此,不同类型的应用以平等的优先级共享高速缓存空间,这可能导致高速缓存资源的非最优分配。由于对离片存储的额外要求,使用共享的高速缓存而导致的处理器核之间的冲突可能在等待时间和功率方面代价较高。

发明内容
大体上描述了一种技术,涉及具有多个处理器核以及由至少一些处理器核共享的高速缓冲存储器的多核处理器。多核处理器可以配置为向每个处理核单独地分配相应的高速缓冲存储器关联性级别。在一个示例中,提供了一种计算系统。该计算系统可以包括多核处理器、高速缓冲存储器、以及耦接至多核处理器的高速缓存控制器。多核处理器可以包括多个单独的处理器核。高速缓冲存储器可以配置为对于多个单独处理器核中的至少一些是可访问的。高速缓存控制器可以配置为分配高速缓冲存储器内的存储空间。高速缓存控制器还可以配置为促进多个单独处理器核中的至少一些以相应的关联性级别来访问高速缓冲存储器,其中相应的关联性级别对于多个单独处理器核中的至少一些而言是不同的。在另一示例中,提供了一种允许多个处理器核访问高速缓冲存储器的方法。该方法可以包括向多个处理器核中的每一个分配相应的高速缓冲存储器关联性级别。分配给多个处理器核中至少一个处理器核的高速缓冲存储器关联性级别可以不同于分配给多个处理器核中至少另一个处理器核的高速缓冲存储器关联性级别。该方法还可以包括促进多个处理器核中的每一个以分配的相应关联性级别来访问高速缓冲存储器。在又一示例中,提供了一种计算机可访问介质,其上存储有计算机可执行指令,用于执行在计算系统中允许多个处理器核访问高速缓冲存储器的过程。该过程可以包括向多个处理器核中的每一个分配相应的高速缓冲存储器关联性级别。分配给多个处理器核中至少一个处理器核的高速缓冲存储器关联性级别可以不同于分配给多个处理器核中至少另一个处理器核的高速缓冲存储器关联性级别。该过程还可以包括允许多个处理器核中的每一个处理器以分配的相应关联性级别对高速缓冲存储器进行访问。
虽然公开了多个示例,但是根据下面的详细描述,其他示例对于本领域技术人员而言是明显的。明显可见,这里描述的系统、设备和方法可以在多个明显方面进行修改,这全部在这里教义的精神和范围内。因此,详细描述应视为本质上是示例性而非限制性的。


根据以下说明和所附权利要求,结合附图,本公开的前述和其他特征将更加清楚。 在认识到这些附图仅仅示出了根据本公开的一些示例且因此不应被认为是限制本公开范围的前提下,通过使用附图以额外的特征和细节来详细描述本公开。附图中图1是示出了多核处理器的示意图;图2是示出了共享高速缓冲存储器的示意图;图3是示出了具有按处理器核分别分配的关联性级别的高速缓冲存储器示例的示意图;图4是示出了多个处理器核的示例的框图,每个处理器核可以输出地址;图5是示出了由多个处理器核输出的地址组成示例的示意图;图6是配置为将高速缓冲存储器中存储的标签与来自处理器核的地址的一部分相比较的比较器的框图;图7是示出了具有按处理器核分别分配的关联性级别的高速缓冲存储器另一示例的示意图;图8是示出了高速缓存分配处理的框图;图9是示出了高速缓存分配系统和处理的框图;以及图10示出了存储有指令以将多核处理器配置为使处理线程为可高速缓存或不可高速缓存的任何计算机可读介质的示例,全部是根据本公开的至少一些示例而布置的。
具体实施例方式在以下详细说明中,参考了作为详细说明一部分的附图。在附图中,类似符号通常表示类似部件,除非上下文另行指明。
具体实施方式
部分、附图和权利要求书中记载的示例性实施例并不是限制性的。在不脱离在此所呈现主题的精神或范围的情况下,可以利用其他实施例,且可以进行其他改变。应当理解,在此一般性记载以及附图中图示的本公开的各方案可以按照在此明确和隐含公开的多种不同配置来设置、替换、组合、分割和设计。本公开涉及方法、设备、系统和计算机程序产品,它们涉及将高速缓存内的存储空间单独地分配给访问该高速缓存的各个单独处理器核。在多核处理器系统中,多个应用可以在分离的处理器核上并行运行,每个处理器核具有其自己的存储需求。然而,存储空间是有限的。依据芯片的设计,各个单独的处理器核可能不得不与一个或多个其他处理器核共享本地存储空间。该本地存储器可以包括例如2级(U)或3级(U)高速缓存。多核处理器中一些核的需求可能不同于处理器中其他核的需求,这些需求也可能随时间而改变。一种这样的需求可以是实现足够的处理性能而需要的高速缓冲存储器的量和/或特性。例如,一个核在访问如下高速缓冲存储器时可以充分工作该高速缓冲存储器被直接映射从而主存储器中某一地址处存储的数据可以仅存储在该高速缓冲存储器中的一个位置处。这种类型的高速缓冲存储器可以提供较小的等待时间,该特性以较低的高速缓存命中率为代价,这对于该核的最优性能可能不是关键的。另一方面,例如,另一核可能能够在较大等待时间的情况下良好操作,但是可能要求相对高的高速缓存命中率。具有这种需求的核可以在关联性级别高于直接映射高速缓冲存储器所提供的关联性级别的情况下工作得更加高效。例如,主存储器中某一地址处存储的数据可以存储在高速缓冲存储器中多个不同位置(例如4个位置)之一处。这种高速缓冲存储器称为是N路集合关联的, 其中N是数据可以在高速缓冲存储器中存储的位置的数目。正如可由核分配高速缓冲存储器的关联性一样,可以根据多种处理线程的特性来改变是否对主存储器中存储的数据或指令进行高速缓存的决策。例如,一些线程可以包含大量指令循环,这可能要求重复地访问相同的指令。这些线程可以极大地受益于将它们的指令存储在高速缓存中。其他线程可能主要由具有较低局部性的指令构成,因此不会明显受益于对指令进行高速缓存。另外的线程可以由按可预测方式执行的指令构成,例如具有极少分支的线程。对这种线程中的指令进行高速缓存也可以提供有限的益处,因为执行这些指令的可预测性使得很容易预取这些指令从而它们可供处理器执行。如本文所述,公开了多核计算环境中对共享高速缓存资源进行高效使用的多种示例。通过识别哪些处理器核可以受益于对具有不同特性的高速缓冲存储器的访问,对于多核处理器的不同核而言,不同处理器核能够访问高速缓冲存储器的方式可以不同。例如,对于一个处理器核,高速缓冲存储器可以是4路集合关联的;对以另一处理器核,高速缓冲存储器可以是2路集合关联的;对于又一处理器核,高速缓冲存储器可以是直接映射的。此夕卜,由于处理器核的应用执行特性或其他特性随时间改变,高速缓存关联性可以动态改变, 从而动态地优化总体系统性能。在其他示例中,如果线程包含预期要以可预测方式执行的指令,或者如果线程包含大量的非循环指令(称为跨越引用(strided reference)),可以将该线程标记为不可高速缓存的。因为跨越引用是非循环的,所以包含跨越引用的线程可能不受益于被存储在高速缓冲存储器中。其他线程可以包含相对较大数目的非跨越指令, 这些线程可以被存储在高速缓冲存储器中。图1是示出了根据本公开至少一些示例的多核处理器100的示意图。多核处理器 100可以包括具有处理器核阵列102的单个集成电路。处理器核阵列102可以包括某一数目(N)的处理器核104 (1)-104 (N)。可以提供任何适当数目的处理器核104。每个处理器核 104可以一般地具有任何所需配置,包括但不限于微处理器(μΡ)、微控制器(yC)、数字信号处理器(DSP)或其任意组合。因此,每个处理器核104可以包括用于执行程序指令的逻辑、以及其他功能块,例如算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP)核、 寄存器、累加器等。所有核104或其中仅仅一些核可以包括高速缓冲存储器(未示出)。除了任何核104中的任何高速缓冲存储器之外,多核处理器100还可以包括高速缓冲存储器106。高速缓冲存储器106可以利用任何类型的存储装置来实现,其可以是易失性或非易失性的。例如,作为一些示例,可以利用动态随机存取存储器(“DRAM”)装置、静态随机存取存储器(“SRAM”)装置、或闪存装置来实现高速缓冲存储器106。高速缓冲存储器106可以处于相对于核104的任何级别处,例如1级高速缓存,在一些示例中可以或者可以不包括附加级别。高速缓冲存储器106可以由核104中的一些或全部共享。多核处理器100可以包括高速缓存控制器118,高速缓存控制器118可以适配为对核104可以什么方式来访问高速缓冲存储器106加以控制,如下更详细所述。多核处理器100可以直接或者经由接口设备(例如存储器控制器12 耦接至主存储装置120。主存储装置120可以是任何适当形式的存储器,包括但不限于易失性存储器如DRAM装置或SRAM装置,非易失性存储器如只读存储器(ROM)装置或闪存装置、数据存储装置如磁盘存储设备(例如,硬盘驱动器或HDD)、磁带存储设备、光存储设备(例如,紧致盘或CD、数字通用盘或DVD),或者可拆卸、不可拆卸、易失性或非易失性等其他机器可读存储介质。总线112也可以支持多核处理器100与其他组件(例如输入输出(I/O)设备114、外部传感器等)之间的接口,或者可以是由处理器核104的任何子集共享的资源。如上所述,多核处理器100可以具有任何适当数目的处理器核104。例如,多核处理器100可以具有两( 个核、四(4)个核、几十个核、甚至几百个或更多个处理器核。一些多核处理器可以是同构的,使得每个处理器核使用单一核设计。其他多核处理器可以是异构的,使得一个或多个处理器核可以不同于其他一个或多个处理器核,并且每一个核或一部分核可以设计用于多核处理器100中的不同角色。多核处理器100可以包括核控制器116。核控制器116可以配置为确定各个单独处理器核104处理哪些处理任务(称为“线程”)、以及哪些线程要被存储或不存储在高速缓冲存储器106中。该确定可以基于处理器核104所执行的代码中插入的指示(indicia) 如标志(flag)。指示可以在从源代码编译期间被插入在可执行代码中,或者可以由处理器核104上运行的操作系统或由一些其他手段来插入。图1是多核处理器的示意图,没有示出这里所述组件的物理位置。可以理解,这里描述的多核处理器100是示意性的,其他示例和修改是可能的。例如,设计选择可以受到如下考虑的驱动硬件尺寸和复杂度相对于性能、热能和热耗散、处理器速度、总吞吐量等。本领域技术人员可以理解,多核处理器100可以提供在适当的计算环境中,例如个人计算机(PC)中。计算环境可以包括多核处理器100、主存储器120、一条或多条总线, 以及一个或多个I/O设备,例如键盘、鼠标、触摸屏、显示设备(例如基于CRT或LCD的监视器)、通用串行总线(USB)或其他端口连接、CD驱动、DVD驱动等等。各种组件之间的总线连接可以使用总线协议如外围组件互连(PCI)、PCI Express、加速图形端口(AGP)、 HyperTransport或任何其他适当总线协议来实现,并且不同设备之间的连接可以使用不同协议。PC可以工作于使用逻辑连接至一个或多个远程计算机的联网环境中。这种远程计算机例如可以是其他PC、服务器、路由器、网络PC、对等设备或其他常见的网络节点,并且可以包括以上针于多核处理器100描述的多个元件或全部元件。逻辑连接可以包括例如局域网(LAN)或广域网(WAN)、内联网和互联网。图2是示出了根据本公开至少一些示例的共享高速缓冲存储器的示意图。图2示出了适合用于多核处理器系统中的多个处理器核201-204。每个处理器核201-204可以具有不同的性能特性,如由核201-204的不同尺寸所代表的那样。例如,相比于较小的核202 和204(可能适合处理复杂度较低的软件应用),较大的核201和203可以具有较高性能, 适合比较复杂的软件应用。要理解,可以提供更多或更少的核,核可以具有统一或变化的尺寸,并且这里对核的具体描述不是限制性的。图3是示出了根据本公开至少一些示例的共享高速缓冲存储器300的示意图。如图3所示,高速缓冲存储器300可以具有在多个处理器核201-204之中单独分配的不同关联性级别。每个核201-204可以布置为向/从共享高速缓冲存储器300传送数据。高速缓存控制器118(图1)或者是独立的或者与核控制器116相组合,可以适配为对每个核201-204 可以什么方式访问高速缓冲存储器300加以控制。高速缓冲存储器300可以使用任何适当的替换策略来用新的条目移出(evict)高速缓存条目,例如最近最少使用(“LRU”)替换策略。处理器核201-204可以配置为使用任何适当的写策略向高速缓冲存储器300写入指令和数据,例如高速缓冲存储器300是写通(write-through)高速缓冲存储器,其中处理器核 201-204在每次写入高速缓冲存储器300时也写入主存储器120 ;或者高速缓冲存储器300 是写回(write-back)高速缓冲存储器,其中处理器核201-204在向高速缓冲存储器300写入指令或数据时并不立即将指令或数据写入主存储器120。也可以使用其他写策略。图4是示出了根据本公开至少一些示例的多个处理器核201-204的框图,每个处理器核可以输出地址。更具体地,如图4所示,每个处理器核201-204可以直接或者通过存储器控制器(未示出)输出相应的地址~_4。地址Ay可以用于读取主存储器120(图1) 中以及(可能地)高速缓冲存储器300中存储的数据。图5是示出了根据本公开至少一些示例布置的多个处理器核201-204所输出的地址Ay的组合的示意图。如图5所示,地址Ay可以由多个地址位构成,这些地址位可以划分成低阶地址位Ap中阶地址位AM、和高阶地址位Ah。在每个组中放置哪些位的选择可以变化,并且可以取决于多个设计参数。中阶地址位Am可以用作索引来选择高速缓冲存储器 300中的相应存储单元行。因此,不同索引或不同索引范围可以选择高速缓冲存储器300中的不同存储单元行。如图3所示,高速缓冲存储器300可以在概念上视为三维阵列,其中每个存储单元行被划分成多个列,每一列具有一定“深度”的存储位置,这些存储位置可以单独寻址或成组寻址。实际上,图3所示行的每一列可以是每个第N列,N个介入列作为图3 所示存储位置的“深度”。高速缓存控制器118(图1)或者是独立的,或者与核控制器116相组合,可以适配为指定高速缓冲存储器300每一行中的某些列(分别指示)将由处理器核201-204 中的特定一个处理器核来访问。例如,图3所示第一行的前4列可以仅由核201访问,第一行的后续2列可以仅由核202访问,后续2列中每一列可以分别仅由核203和核204访问。 如图3进一步所示,每一列中第一位置存储供核201-204中特定一个核使用的标签1\_4。标签IV4可以包括存储地址的高阶位Ah。因此,例如,第一行的前4列可以存储与可由处理器核201访问的数据对应的四个标签1\。第一行的后续2列可以存储与可由处理器核202访问的数据对应的两个标签T2。最后,第一行的后续2列中每一列可以分别存储与可由处理器核203和204访问的数据分别对应的单个标签T3和Τ4。与每个标签IV4对应的数据可以存储在每一列中的存储位置中,并且该数据可以通过低阶地址位怂而访问。图6是根据本公开至少一些示例,配置为将高速缓冲存储器300中存储的标签与来自处理器核201-204之一的地址的一部分相比较的比较器500的框图。在操作中,例如, 处理器核201可以发布地址A1以从主存储器120中读取数据。地址A1的中阶位Am用作索引以访问高速缓冲存储器300中对应的存储单元行中存储的标签。如图5所示,将行的前4 列中的标签T1顺序地施加至比较器500,比较器500可以是高速缓存控制器118(图1)的一部分,一些其他组件的部分,或者是独立的装置。然后,比较器500可以将每个标签T1与地址A1的高阶地址位A1^H比较。在匹配的情况下,比较器500输出“命中”指示,其指示了与地址A1对应的数据存储在高速缓冲存储器300中以及在主存储器120中。该命中指示可以由高速缓存控制器118用来通过使用低阶地址位Ai而访问与地址A1对应的数据,从而访问在对应于索引Am的行和存储了标签T的列中存储的该数据。如上所述以及如图3所示,与处理器核201发布的存储地址A1对应的数据可以存储在由地址A1的中阶地址位Am指定的行的4列中任何一列中。只要处理器核201正在读取的数据可以存储在高速缓冲存储器300中4列中的任何一列中(由列C1指示),高速缓冲存储器300就可以视为对于处理器核201而言是4路集合关联的。然而,根据本公开的原理,高速缓冲存储器300针对其他处理器核202-204可以具有不同的关联性级别。例如, 处理器核202正在读取的数据可以存储在高速缓冲存储器300中2列中的任何一列中(由列C2指示),从而高速缓冲存储器300可以视为对于处理器核202而言是2路集合关联的。 最后,由于处理器核203、204各自正在读取的数据可以分别存储在仅一列(分别由(3丄4指示)中,所以高速缓冲存储器300可以视为对于处理器核203和204而言是直接映射的。例如,每个处理器核201-204的关联性级别可以基于每个处理器核的特性或能力,或者基于正由每个处理器核运行的软件的性质。虽然每个处理器核201-204的关联性级别可以是固定的,但是在一些示例中,每个处理器核201-204的关联性级别可以是动态的,使得关联性级别可以随条件变化而改变,条件例如是正由处理器核运行的软件的性质。在这种情况下,高速缓存控制器118可以是可重新编程的,以响应于对主存储器120的每次写入,在高速缓冲存储器300中存储标签,标签在数目上与处理器核的当前关联性级别相对应。例如,如果对于处理器核202,高速缓冲存储器300的关联性级别从2路集合关联增加到3路集合关联,则对于处理器核201 的高速缓冲存储器300的关联性级别可以对应地从4路集合关联降低到3路集合关联。在这种情况下,图3中C1指示的第4列可以由处理器核202访问,并且现在由C2指示。虽然针对每个处理器核201-204,高速缓冲存储器300的关联性级别对于所有存储单元行可以是相同的,但是在一些实施例中,高速缓存控制器118可以为高速缓冲存储器300设定关联性级别,该关联性级别随处理器核201-204而逐行地改变。例如,高速缓冲存储器300的行N可以是对于处理器核201而言是4路集合关联的,并且在高速缓冲存储器300的行N+M中,可以是对于处理器核201而言是2路集合关联的。虽然图3的示例中所示的高速缓冲存储器300的每一列可以仅由各个处理器核 201-204中单个处理器核来访问,但是在其他实施例中,高速缓冲存储器300的每一列可以由各个处理器核201-204中的一个或多个处理器核来访问。例如,图7是示出了根据本公开至少一些其他示例的共享高速缓冲存储器300的示意图。如图7所示,由高速缓存控制器118(独立的或者与核控制器116相组合)控制对高速缓冲存储器300的访问。高速缓存控制器118可以适配为依据可以存储在高速缓冲存储器300每一行中的每一列(C1-C4) 的第一位置中的相应位矢量V的值,指定该相应列由处理器核201-204中的任意一个或多个来访问。例如,位矢量V可以是4位矢量,其中该矢量的每个位对应于处理器核201-204 中的相应一个。如果位矢量是“1”,则该列可以由处理器核201-204中对应的一个来访问。 例如,如果一列的位矢量V是“ 1010”,则该列可以由处理器核201或处理器核203访问。在一列具有位矢量V “1111”的情况下,该列可以由四个处理器核201-204中的任何一个来访问。
无论每一列的位矢量V的具体值如何,每一列的第一位置存储标签T,供可以访问该列的核201-204使用。标签T可以具有与图3的高速缓冲存储器300中存储的标签1\_4 相同的构成,并且可以按照与图3的高速缓冲存储器300中存储的标签IV4相同的方式来使用。具体而言,可以通过低阶地址位A^来访问标签T,然后比较器500可以将每个标签T 与地址A1的高阶地址位A1^H比较。在匹配的情况下,比较器500输出“命中”指示,该命中指示可以由高速缓存控制器118用来访问与地址A1对应的数据。根据本公开的另一方面,高速缓存控制器118可以配置为至少部分地基于处理器核201-204上正在运行的执行应用线程(以下称为“线程”),确定是否对主存储器120中存储的数据进行高速缓存。例如,一个应用可以在线程中的指令或线程使用的数据存储在高速缓冲存储器300中时更加高效地操作,而另一应用的效率可能不会明显受益于线程中的指令或线程使用的数据存储在高速缓冲存储器300中。例如,可以参照线程的局部性 (locality)来完成将指令或数据存储在高速缓冲存储器300中的决定。例如,在应用程序内,一些指令可以是循环的(执行多于一次),而其他指令可以是非循环的(仅执行一次)。 这种非循环指令称为跨越引用。由于跨越引用是非循环的,例如,相同指令不重复多于一次,所以跨越引用可能不受益于被存储在高速缓冲存储器300中。另外的指令可以按可预测方式执行,在这种情况下可以从主存储器120中预取指令,从而减少了将指令存储在高速缓冲存储器中的需求。图8是示出了根据本公开至少一些示例的高速缓存分配处理的框图。如图8所示, 来自计算环境500的指令可以包含多个执行线程501-502,该指令可以被发送至分支预测器600以确定该指令是循环的(例如,分支预测器600是否已看到该指令多次)还是非循环的。如果分支预测器600确定指令是非循环的,即是跨越引用,则可以用不可高速缓存标志来标记该指令,使得绝不将该指令发送给共享高速缓冲存储器300 [方框601]。备选地, 如果分支预测器600确定指令是循环的[方框602],则可以将指令发送给高速缓冲存储器 300。由此,可以将对高速缓冲存储器300的访问限制到可以更显著地受益于高速缓存空间的那些指令。要理解,软件应用执行特性可以动态地改变。因此,在本文公开的一个或多个示例中,用不可高速缓存标志来标记指令的决定(方框601)可以配置为以动态方式随时间改变。图9是示出了根据本公开至少一些示例的高速缓存分配的系统和处理的框图。如图9所示,计算机系统700可以包括处理器701,处理器701配置为执行用于划分共享高速缓存的处理示例。在其他示例中,可以在处理器701外部执行该处理的多种操作或多种操作的一部分。在操作702,该处理可以包括确定与处理器核201-204中的至少一个(一个或多个)关联的至少一个(一个或多个)执行线程的特性。在操作704,该处理可以包括核控制器116(图1)至少部分地基于线程的特性,使用与多核处理器耦合的软件,分别向各个处理器核201-204分配高速缓冲存储器300内的存储空间。图10示出了根据本公开至少一些示例的任何计算机可读介质802的示例,计算机可读介质802布置为存储指令,以将多核处理器配置为使处理线程为可高速缓存的或不可高速缓存的。计算机可读介质802可以是计算机程序产品800如操作系统、编译器或应用程序的一部分。计算机可读介质802可以适配为存储指令804,指令804可以布置为将多核处理器配置为执行前述处理或方法中的一个或多个。这些指令804例如可以包括一个或多个可执行指令806,用于确定处理线程包含跨越引用的程度。计算机可读介质802中存储的可执行指令804也可以包括可执行指令808,用于将多核处理器配置为基于处理线程是否包含跨越引用的确定,将线程标记为可高速缓存的或不可高速缓存的。计算机可读介质802中存储的另一可执行指令810可以布置为将多核处理器配置为,将线程中的尚未被标记为不可高速缓存的指令或已被标记为可高速缓存的指令存储在高速缓冲存储器中。以上描述了基于处理器核的高速缓存分配的多个示例。下面是基于处理器的高速缓存分配的方法和系统的具体示例。这些示例仅仅是为说明目的,不是限制性的。第一示例中公开了一种计算系统,包括多核处理器、可由至少两个处理器核访问的至少一个高速缓冲存储器、以及与多核处理器耦接的高速缓存控制器,该高速缓存控制器用于向访问高速缓冲存储器的各个单独处理器核分别分配高速缓冲存储器关联性。在一些其他示例中,可以至少部分地基于处理器核的硬件特性,向处理器核分配高速缓冲存储器关联性。在其他示例中,可以至少部分地基于与处理器核关联的一个或多个执行线程的执行特性,向处理器核分配高速缓冲存储器关联性。在一些另外的示例中,可以动态地实现高速缓冲存储器关联性的分配,使得高速缓冲存储器关联性可以随时间改变。在这些和其他示例中,可以针对高速缓冲存储器的不同行,分别确定高速缓冲存储器关联性。在另外的其他示例中,系统或软件包括一个或多个组件(例如分支预测器),配置为识别处理线程中的跨越引用,并用不可高速缓存标志来标记该线程,从而不将该线程的指令存储在高速缓冲存储器内。本公开不限于在本申请中描述的具体示例,这些具体示例意在说明不同方案。本领域技术人员清楚,不脱离本公开的精神和范围,可以做出许多修改和变型。本领域技术人员根据之前的描述,除了在此所列举的方法和装置之外,还可以想到本公开范围内功能上等价的其他方法和装置。这种修改和变型应落在所附权利要求的范围内。本公开应当由所附权利要求的术语及其等价描述的整个范围来限定。应当理解,本公开不限于具体方法、试齐U、化合物组成或生物系统,这些都是可以改变的。还应理解,这里所使用的术语仅用于描述具体示例的目的,而不应被认为是限制性的。至于本文中任何关于多数和/或单数术语的使用,本领域技术人员可以从多数形式转换为单数形式,和/或从单数形式转换为多数形式,以适合具体环境和/或应用。为清楚起见,在此明确声明单数形式/多数形式可互换。本领域技术人员应当理解,一般而言,所使用的术语,特别是所附权利要求中(例如,在所附权利要求的主体部分中)使用的术语,一般地应理解为“开放”术语(例如,术语 “包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”等)。本领域技术人员还应理解,如果意在所引入的权利要求中标明具体数目,则这种意图将在该权利要求中明确指出,而在没有这种明确标明的情况下,则不存在这种意图。例如,为帮助理解,所附权利要求可能使用了引导短语“至少一个”和“一个或多个”来引入权利要求中的特征。然而,这种短语的使用不应被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含该特征的任意特定权利要求限制为仅包含一个该特征的实施例, 即便是该权利要求既包括引导短语“一个或多个”或“至少一个”又包括不定冠词如“一”或 “一个”(例如,“一”和/或“一个”应当被解释为意指“至少一个”或“一个或多个”);在使用定冠词来引入权利要求中的特征时,同样如此。另外,即使明确指出了所引入权利要求特征的具体数目,本领域技术人员应认识到,这种列举应解释为意指至少是所列数目(例如, 不存在其他修饰语的短语“两个特征”意指至少两个该特征,或者两个或更多该特征)。另外,在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有 C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。另外,在以马库什组描述本公开的特征或方案的情况下,本领域技术人员应认识至IJ,本公开由此也是以该马库什组中的任意单独成员或成员子组来描述的。本领域技术人员应当理解,出于任意和所有目的,例如为了提供书面说明,这里公开的所有范围也包含任意及全部可能的子范围及其子范围的组合。任意列出的范围可以被容易地看作充分描述且实现了将该范围至少进行二等分、三等分、四等分、五等分、十等分等。作为非限制性示例,在此所讨论的每一范围可以容易地分成下三分之一、中三分之一和上三分之一等。本领域技术人员应当理解,所有诸如“直至”、“至少”、“大于”、“小于”之类的语言包括所列数字,并且指代了随后可以如上所述被分成子范围的范围。最后,本领域技术人员应当理解,范围包括每一单独数字。因此,例如具有1 3个单元的组是指具有1、2 或3个单元的组。类似地,具有1 5个单元的组是指具有1、2、3、4或5个单元的组,以此类推。以上的详细描述通过使用方框图、流程图和/或示例,已经阐述了设备和/或工艺的众多实施例。在这种方框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种方框图、流程图或示例中的每一功能和/或操作可以通过各种硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实施例中, 本公开所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。此外,本领域技术人员将认识到,本公开所述主题的机制能够作为多种形式的程序产品进行分发,并且无论实际用来执行分发的信号承载介质的具体类型如何,本公开所述主题的示例性实施例均适用。信号承载介质的示例包括但不限于可记录型介质,如软盘、硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等;以及传输型介质,如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路
寸J ο本领域技术人员应认识到,上文详细描述了设备和/或工艺,此后使用工程实践来将所描述的设备和/或工艺集成到数据处理系统中是本领域的常用手段。也即,这里所述的设备和/或工艺的至少一部分可以通过合理数量的试验而被集成到数据处理系统中。 本领域技术人员将认识到,典型的数据处理系统一般包括以下各项中的一项或多项系统单元外壳;视频显示设备;存储器,如易失性和非易失性存储器;处理器,如微处理器和数字信号处理器;计算实体,如操作系统、驱动程序、图形用户接口、以及应用程序;一个或多个交互设备,如触摸板或屏幕;和/或控制系统,包括反馈环和控制电机(例如,用于感测位置和/或速度的反馈;用于移动和/或调节成分和/或数量的控制电机)。典型的数据处理系统可以利用任意合适的商用部件(如数据计算/通信和/或网络计算/通信系统中常用的部件)予以实现。本公开所述的主题有时说明不同部件包含在不同的其他部件内或者不同部件与不同的其他部件相连。应当理解,这样描述的架构只是示例,事实上可以实现许多能够实现相同功能的其他架构。在概念上,有效地“关联”用以实现相同功能的部件的任意设置,从而实现所需功能。因此,这里组合实现具体功能的任意两个部件可以被视为彼此“关联”从而实现所需功能,而无论架构或中间部件如何。同样,任意两个如此关联的部件也可以看作是彼此“可操作地连接”或“可操作地耦合”以实现所需功能,且能够如此关联的任意两个部件也可以被视为彼此“能可操作地耦合”以实现所需功能。能可操作地耦合的具体示例包括但不限于物理上可配对和/或物理上交互的部件,和/或无线交互和/或可无线交互的部件,和/或逻辑交互和/或可逻辑交互的部件。尽管已经在此公开了多个方案和实施例,但是本领域技术人员应当明白其他方案和实施例。这里所公开的多个方案和实施例是出于说明性的目的,而不是限制性的,本公开的真实范围和精神由所附权利要求表征。
权利要求
1.一种计算系统,包括多核处理器,包括多个单独处理器核;高速缓冲存储器,配置为对于所述多个单独处理器核中的至少一些是可访问的;以及高速缓存控制器,耦接至多核处理器,高速缓存控制器配置为分配高速缓冲存储器内的存储空间,高速缓存控制器进一步配置为促进所述多个单独处理器核中的至少一些以相应的关联性级别来访问高速缓冲存储器,其中相应的关联性级别对于所述多个单独处理器核中的至少一些而言是不同的。
2.根据权利要求1所述的计算系统,还包括核控制器,耦接至所述多个单独处理器核,核控制器配置为确定所述多个单独处理器核中的每一个将要处理哪些处理任务。
3.根据权利要求1所述的计算系统,还包括核控制器,耦接至所述多个单独处理器核,核控制器配置为确定要将哪些线程存储在高速缓冲存储器中。
4.根据权利要求1所述的计算系统,其中,所述多个单独处理器核中的至少一些包括相应的分支预测器,分支预测器配置为识别跨越引用,其中,计算系统还包括核控制器,耦接至所述多个单独处理器核中配置为访问高速缓冲存储器的至少一些处理器核,核控制器配置为至少部分地基于对跨越引用的识别来分配高速缓冲存储器内的存储空间。
5.根据权利要求1所述的计算系统,还包括核控制器,耦接至所述多个单独处理器核,核控制器配置为至少部分地基于与每一个单独处理器核关联的硬件特性,向单独处理器核分配高速缓冲存储器内的存储空间。
6.根据权利要求1所述的计算系统,其中,高速缓存控制器配置为针对高速缓冲存储器的每一行,向能够访问高速缓冲存储器的每一个单独处理器核分配相应的关联性级别。
7.根据权利要求1所述的计算系统,其中,配置为访问高速缓冲存储器的每一个单独处理器核配置为输出包括多个中阶地址位的地址,并且高速缓存控制器配置为使用所述中阶地址位作为索引,来选择高速缓冲存储器中相应的存储单元行。
8.根据权利要求1所述的计算系统,其中,配置为访问高速缓冲存储器的每一个单独处理器核配置为输出包括多个高阶地址位的地址,并且高速缓存控制器配置为使用所述高阶地址位作为在高速缓冲存储器中存储的相应标签,其中将来自单独处理器核之一的地址的高阶地址位与所存储的每一个标签相比较,高速缓存控制器配置为响应于地址的高阶地址位与所存储的标签之一之间的匹配,使所述单独处理器核之一访问高速缓冲存储器中与存储该标签的位置相对应的位置处存储的数据。
9.根据权利要求1所述的计算系统,其中,配置为访问高速缓冲存储器的每一个单独处理器核配置为输出包括多个低阶地址位的地址,并且高速缓存控制器配置为使用所述低阶地址位来选择高速缓冲存储器的行中存储的数据的多个位。
10.根据权利要求1所述的计算系统,其中,高速缓冲存储器的每一列配置为存储位矢量,并且高速缓存控制器配置为使用所述位矢量来确定单独处理器核中哪个处理器核能够访问高速缓冲存储器的相应列。
11.根据权利要求1所述的计算系统,其中,高速缓存控制器配置为使用写回高速缓存写策略,来将指令和数据写入高速缓冲存储器。
12.根据权利要求1所述的计算系统,其中,高速缓存控制器配置为至少部分地基于与每一个单独处理器核关联的硬件特性,允许配置为访问高速缓冲存储器的每一个单独处理器核以相应的关联性级别来访问高速缓冲存储器。
13.根据权利要求1所述的计算系统,其中,高速缓存控制器配置为至少部分地基于与所述多个单独处理器核中的至少一些关联的执行线程的执行特性,允许所述多个单独处理器核中的所述至少一些以相应的关联性级别来访问高速缓冲存储器。
14.一种允许多个处理器核访问高速缓冲存储器的方法,包括向所述多个处理器核中的每一个分配相应的高速缓冲存储器关联性级别,分配给所述多个处理器核中至少一个处理器核的高速缓冲存储器关联性级别不同于分配给所述多个处理器核中至少另一个处理器核的高速缓冲存储器关联性级别;以及促进所述多个处理器核中的每一个以分配的相应关联性级别来访问高速缓冲存储器。
15.根据权利要求14所述的方法,还包括使用最近最少使用替换策略,来移出高速缓冲存储器中存储的数据。
16.根据权利要求14所述的方法,其中,向所述多个处理器核中的每一个分配相应的关联性级别包括针对高速缓冲存储器的每一行,向所述多个处理器核中能够访问高速缓冲存储器的每一个处理器核分配相应的关联性级别,分配给一些行的关联性级别不同于分配给其他行的关联性级别。
17.根据权利要求14所述的方法,还包括识别包含有多于特定量的非循环指令的线程;用不可高速缓存标志来标记所识别的线程;以及阻止所标记的线程被存储在高速缓冲存储器中。
18.根据权利要求14所述的方法,其中,向所述多个处理器核中的每一个分配相应的关联性级别包括动态地向所述多个处理器核中的每一个分配相应的关联性级别,使得所分配的关联性级别随时间而改变。
19.一种计算机可访问介质,其上存储有计算机可执行指令,用于执行在计算系统中允许多个处理器核访问高速缓冲存储器的过程,所述过程包括向所述多个处理器核中的每一个分配相应的高速缓冲存储器关联性级别,分配给所述多个处理器核中至少一个处理器核的高速缓冲存储器关联性级别不同于分配给所述多个处理器核中至少另一个处理器核的高速缓冲存储器关联性级别;以及允许所述多个处理器核中的每一个以分配的相应关联性级别来访问高速缓冲存储器。
20.根据权利要求19所述的计算机可访问介质,其中,向所述多个处理器核中的每一个分配相应的高速缓冲存储器关联性级别包括将所述多个处理器核中的每一个与高速缓冲存储器的多个行中每一行的特定列相关联。
全文摘要
总体上描述了一种技术,涉及具有多个处理器核以及由至少一些处理器核共享的高速缓冲存储器的多核处理器。多核处理器可以配置为向每个处理核单独地分配相应的高速缓冲存储器关联性级别。
文档编号G06T1/00GK102483840SQ201080036611
公开日2012年5月30日 申请日期2010年6月11日 优先权日2009年8月21日
发明者安德鲁·乌尔夫, 托马斯·马丁·康特 申请人:英派尔科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1