选择多群集系统中的可用高速缓存的方法与流程

文档序号:11208719阅读:439来源:国知局
选择多群集系统中的可用高速缓存的方法与流程



背景技术:

对于广泛的计算设备的性能和特征的渐增的需求已引导制造商在计算设备中包括多个中央处理器单元(cpu),以便处置数量更多的能力和更重的工作量,同时比前几代更快地执行。某些架构包括被布置在用于执行不同的任务和支持不同的能力的群集中的cpu。计算设备可以包括用于处置该计算设备的软件和子系统的需求的多群集cpu系统。cpu的数量可以仅在cpu可以以与它们的处理速度可比较的速度访问所存储的代码和数据的情况下推进计算设备的执行。太多请求对高速缓存存储器的访问的cpu可能导致性能瓶颈。

为避免造成该性能瓶颈,每个cpu群集可以包括其自己的高速缓存存储器,例如l2高速缓存。在许多情况下,计算设备的cpu群集中的并非全部cpu群集可能是活跃的,或者cpu群集的高速缓存可能未被充分利用。现有的高速缓存一致性协议支持不同的cpu群集的l2高速缓存之间的数据共享。然而,这些高速缓存一致性协议未能充分利用多群集cpu系统中的可用l2高速缓存资源。将被用于支持其它活跃cpu群集的优选l2高速缓存将是具有最低等待时间和最高可用性两者的多群集cpu系统的l2高速缓存。该优选的情况在寻求将其它l2高速缓存资源用于cpu群集时不总是出现。另外,甚至对最高可用性和最低等待时间进行组合可能不提供具有最佳性能结果的组合。



技术实现要素:

各种方面的方法和装置提供从多个共享高速缓存存储器中选择将用作受害方高速缓存的远程共享高速缓存存储器的电路和方法。本方面的方法可以包括:在所述多个共享高速缓存存储器中识别那些具有可用于用作所述受害方高速缓存的空间的远程共享高速缓存存储器;对于所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器或者与所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器相关联的处理器群集,检索与用于将远程共享高速缓存存储器选作所述受害方高速缓存的度量相关的数据;基于所述度量来确定所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器对于用作所述受害方高速缓存的适合性;以及基于所述确定来选择所识别的远程共享高速缓存存储器中的一个远程共享高速缓存存储器以用作所述受害方高速缓存。

在一个方面中,用于将远程共享高速缓存存储器选作所述受害方高速缓存的所述度量可以包括执行速度度量;对于所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器或者与所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器相关联的处理器群集,检索与用于将远程共享高速缓存存储器选作所述受害方高速缓存的度量相关的数据可以包括:检索所识别的远程共享高速缓存存储器的命中率、所识别的远程共享高速缓存存储器的错失率、所述处理器群集的等待时间和主存储器的等待时间;以及,基于所述度量来确定所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器对于用作所述受害方高速缓存的适合性可以包括:计算针对所识别的远程共享高速缓存存储器的执行速度指示符;以及,将针对所识别的远程共享高速缓存存储器的执行速度指示符与门限或者针对另一个识别的远程共享高速缓存存储器的另一个执行速度指示符进行比较。

一个方面的方法可以还包括:基于地址交织方案将被选择为用作所述受害方高速缓存的所识别的远程共享高速缓存存储器的存储器地址与被选择为用作所述受害方高速缓存的另一个远程共享高速缓存存储器的存储器地址进行交织。

在一个方面中,计算针对所识别的远程共享高速缓存存储器的执行速度指示符可以包括使用以下方程:所识别的远程共享高速缓存存储器的所述命中率乘以所述处理器群集的所述等待时间加上所识别的远程共享高速缓存存储器的所述错失率乘以所述主存储器的所述等待时间。

在一个方面中,用于将远程共享高速缓存存储器选作所述受害方高速缓存的所述度量可以包括效率度量;对于所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器或者与所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器相关联的处理器群集,检索与用于将远程共享高速缓存存储器选作所述受害方高速缓存的度量相关的数据可以包括:检索所述处理器群集的状态数据;以及,基于所述度量来确定所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器对于用作所述受害方高速缓存的适合性可以包括:将所述处理器群集的所述状态数据与门限或者另一个处理器群集的状态数据进行比较。

一个方面的方法可以还包括:基于地址交织方案将被选择为用作所述受害方高速缓存的所识别的远程共享高速缓存存储器的存储器地址与被选择为用作所述受害方高速缓存的另一个远程共享高速缓存存储器的存储器地址进行交织。

在一个方面中,检索所述处理器群集的状态数据可以包括:检索温度、电流泄漏、功率使用或者操作频率中的至少一项。

在一个方面中,用于将远程共享高速缓存存储器选作所述受害方高速缓存的所述度量可以包括有效受害方高速缓存大小度量;对于所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器或者与所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器相关联的处理器群集,检索与用于将远程共享高速缓存存储器选作所述受害方高速缓存的度量相关的数据可以包括:检索所识别的远程共享高速缓存存储器的可用共享高速缓存存储器大小或者所识别的远程共享高速缓存存储器的存储器等待时间中的至少一项;根据所述度量确定所识别的远程共享高速缓存存储器中的每个远程共享高速缓存存储器对于用作所述受害方高速缓存的适合性可以包括:所识别的远程共享高速缓存存储器的所述可用共享高速缓存存储器大小或者所识别的远程共享高速缓存存储器的所述存储器等待时间中的至少一项与门限或者针对另一个识别的远程共享高速缓存存储器的同一类型的数据;以及,本方面的方法可以还包括:基于地址交织方案将被选择为用作所述受害方高速缓存的所识别的远程共享高速缓存存储器的存储器地址与被选择为用作所述受害方高速缓存的另一个远程共享高速缓存存储器的存储器地址进行交织。

一个方面的方法可以还包括:基于地址交织方案将被选择为用作所述受害方高速缓存的所识别的远程共享高速缓存存储器的存储器地址与被选择为用作所述受害方高速缓存的另一个远程共享高速缓存存储器的存储器地址进行交织。

一个方面的方法可以还包括:基于所识别的远程共享高速缓存存储器与其它远程共享高速缓存存储器之间的可用共享高速缓存存储器大小的比率或者所识别的远程共享高速缓存存储器与所述其它远程共享高速缓存存储器之间的存储器等待时间的比率确定所述地址交织方案,其中,所述地址交织方案包括任意的地址交织方案、对称n路地址交织方案和非对称地址交织方案中的一项。

一个方面的方法可以还包括:确定用于将远程共享高速缓存存储器选作所述受害方高速缓存的所述度量。

一个方面包括一种计算设备,所述计算设备具有:被通信地连接到彼此的多个处理器群集;被分配了执行进程的所述多个处理器群集中的第一处理器群集;各自被通信地连接到所述多个处理器群集中的至少一个处理器群集的多个共享高速缓存存储器;以及,被通信地连接到所述多个处理器群集并且被配置为具有用于执行上面描述的一个或多个方面的方法的操作的处理器可执行指令的处理器。

一个方面包括一种计算设备,所述计算设备具有用于执行上面描述的一个或多个方面的方法的功能的单元。

一个方面包括一种具有存储在其上的处理器可执行指令的非暂时性处理器可读介质,所述处理器可执行指令被配置为,使处理器执行上面描述的一个或多个方面的方法的操作。

附图说明

被并入本文并且构成本说明书的部分的附图示出了本发明的示例方面,并且与上面给出的一般描述和下面给出的详细描述一起用于阐述本发明的特征。

图1是示出适于实现一个方面的计算设备的部件方框图。

图2是示出适于实现一个方面的示例多核处理器的部件方框图。

图3是示出适于实现一个方面的示例单片式系统(soc)的部件方框图。

图4是对根据一个方面的包括针对每个处理器群集的可用共享高速缓存存储器的层的多个处理器群集的图示。

图5是包括与根据一个方面的执行处理器群集相关的针对多个处理器群集的标绘点的图表图示。

图6是对根据一个方面的包括针对每个处理器群集的可用共享高速缓存存储器的层的多个处理器群集的图示。

图7是对根据一个方面的包括针对每个处理器群集的可用共享高速缓存存储器的层的多个处理器群集的图示。

图8是对根据一个方面的包括针对每个处理器群集的可用共享高速缓存存储器的层的多个处理器群集和处理器群集数据的图示。

图9是示出用于实现将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面方法的流程图。

图10是示出用于实现根据执行速度度量将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面的方法的流程图。

图11是示出用于实现根据效率度量将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面的方法的流程图。

图12是示出用于实现根据有效受害方高速缓存大小度量将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面的方法的流程图。

图13是示出适于与各种方面一起使用的示例移动计算设备的部件方框图。

图14是示出适于与各种方面一起使用的示例移动计算设备的部件方框图。

图15是示出适于与各种方面一起使用的示例服务器的部件方框图。

具体实施方式

将参考附图详细描述各种方面。只要可能,相同的附图标记将贯穿附图被用于指相同或者相似的部分。对具体的示例和实现作出的提及是出于说明的目的的,并且不旨在限制本发明或者权利要求的范围。

术语“计算设备”和“移动计算设备”在本文中被可互换地用于指以下各项中的任一项或者全部项:蜂窝电话、智能电话、个人或者移动多媒体播放器、个人数字助理(pda)、膝上型计算机、平板型计算机、智能本、超级本、掌上型计算机、无线电子邮件接收器、启用了多媒体互联网的蜂窝电话、无线游戏控制器和类似的包括存储器和多核可编程处理器的个人电子设备。计算设备在该计算设备内包括一个或多个处理器,并且因此对计算设备执行操作的引用包括该计算设备内的一个或多个处理器执行该操作。尽管各种方面对于诸如是智能电话这样的具有有限的存储器和电池资源的移动计算设备是特别有用的,但方面概括地说在任何实现多个存储器设备和有限的功率预算的电子设备中是有用的,其中,减少处理器的功率消耗可以延长移动计算设备的电池操作时间。

术语“单片式系统”(soc)在本文中被用于指互连的电子电路的集合,所述电子电路通常但不仅仅包括硬件核、存储器和通信接口。硬件核可以包括多种不同类型的处理器,诸如通用处理器、中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)、加速处理单元(apu)、辅助处理器、单核处理器和多核处理器。硬件核可以还体现其它的硬件和硬件组合,诸如现场可编程门阵列(fpga)、专用集成电路(asci)、其它可编程逻辑设备、分立的门逻辑、晶体管逻辑、性能监控硬件、看门狗硬件和时间参考。集成电路可以被配置为使得集成电路的部件位于单块诸如是硅的半导体材料上。

方面包括用于对多群集cpu系统中的可用高速缓存资源的改进了的利用的方法和实现这样的方法的计算设备。各种方面可以应用于任何类型的高速缓存存储器(例如,l1高速缓存存储器、l2高速缓存存储器、l3高速缓存存储器、l4高速缓存存储器等),并且因此对l2高速缓存存储器的引用是为了易于解释而作为示例类型的高速缓存存储器被使用的,并且除非专门详述,否则将不限制权利要求的范围。在一个方面中,可以通过对于具有高l2高速缓存需求的进程选择远程l2高速缓存存储器以用作受害方高速缓存来改进高速缓存资源利用。可以基于与对远程l2高速缓存存储器和主存储器的访问相关的等待时间性能计算来选择远程l2高速缓存存储器。方面可以通过使用地址交织以提高l2高速缓存存储器的有效容量来改进多个l2高速缓存存储器的使用。方面可以通过基于执行其它线程或者进程的处理器群集的各种状态使用多个l2高速缓存存储器来节约功率。方面可以使用一个或多个其它处理器群集的l2高速缓存存储器来改进受害方高速缓存模式的有效性。

在一个方面中,计算设备可以基于性能度量的组合确定每个l2高速缓存存储器的性能。这样的性能度量可以包括通过成功的远程l2高速缓存存储器访问被调整的等待时间。例如,可以基于计算远程l2高速缓存存储器命中率乘以群集等待时间加上远程l2高速缓存存储器错失率乘以主存储器等待时间来确定远程l2高速缓存存储器的性能。对远程l2高速缓存存储器的成功的访问的等待时间与对远程l2高速缓存存储器的非成功的访问的等待时间结合可以给出对于针对使用远程l2高速缓存存储器的总等待时间的性能评估。针对使用远程l2高速缓存存储器的等待时间越低,则越有可能远程l2高速缓存存储器可以被用作用于支持在另一个处理器群集上被执行的进程的受害方高速缓存。

在一个方面中,为改进多个l2高速缓存存储器的使用,可以使用地址交织来提升l2高速缓存存储器的有效容量和吞吐量。可以对多个远程l2高速缓存的可用部分进行交织,使得可以跨多个远程l2高速缓存存储器散布连续的存储器访问请求,因此改进受害方高速缓存吞吐量。交织方案可以包括任意数量的远程l2高速缓存存储器。交织方案可以是任意的或者基于可用的l2高速缓存存储器大小的。

在一个方面中,为改进功率效率,可以基于执行其它线程或者进程的处理器群集的各种状态使用多个l2高速缓存存储器。使用多个高速缓存存储器资源一般表示使用更多功率。为减少使用多个l2高速缓存存储器的功率代价,可以基于与l2高速缓存存储器相关联的处理器群集的温度、处理器群集的处理器的操作频率、处理器群集的功率消耗和/或处理器的电流泄漏来选择远程l2高速缓存存储器中的一个或多个远程l2高速缓存存储器。与针对各种状态具有较低值的处理器相关联的l2高速缓存存储器然后可以被选作远程l2高速缓存。

减少将用作远程受害方高速缓存的远程l2高速缓存存储器的等待时间和提高其可用性可以减少高速缓存错失的次数,导致对主存储器的较少的访问、减少了的带宽使用、减少了的存储器访问冲突,并且改进性能。这可以提高执行进程的性能,因为对所存储的信息的访问是更快并且更不易于受延迟或者中断的影响的。此外,减少通过使用远程l2高速缓存存储器而被消耗的功率可以通过避免由各种处理器状态导致的性能降级来改进性能。

图1示出了适于与各种方面一起使用的包括与远程计算设备50通信的计算设备10的系统。计算设备10可以包括具有处理器14、存储器16、通信接口18和存储装置存储器接口20的soc12。计算设备可以还包括诸如是有线或者无线调制解调器的通信部件22、存储装置存储器24、用于建立与无线网络30的无线连接32的天线26和/或用于连接到去往互联网40的有线连接44的网络接口28。处理器14可以包括多种硬件核中的任一种硬件核以及一些处理器核。soc12可以包括一个或多个处理器14。计算设备10可以包括多于一个soc12,因此增加处理器14和处理器核的数量。计算设备10可以还包括不与soc12相关联的处理器14。单个的处理器14可以是如下面参考图2描述的多核处理器。处理器14可以各自被配置为用于可以与计算设备10的其它处理器14相同或者不同的专门用途。可以将相同或者不同的配置的处理器14和处理器核中的一个或多个处理器14和处理器核分组在一起。

soc12的存储器16可以是被配置为用于存储用于被处理器14访问的数据和处理器可执行代码的易失性和非易失性存储器。计算设备10和/或soc12可以包括被配置用于各种目的的一个或多个存储器16。在一个方面中,一个或多个存储器16可以包括诸如是随机存取存储器(ram)或者主存储器、或者高速缓存存储器这样的易失性存储器。这些存储器16可以被配置为临时地保存有限数量的在基于多种因素预期未来的访问时从非易失性存储器被请求、从非易失性存储器被加载到存储器16的数据和/或处理器可执行代码指令和/或被处理器14产生并且被临时地存储以用于未来的快速访问而不被存储在非易失性存储器中的中间处理数据和/或处理器可执行代码指令。在一个方面中,存储器16可以是专用于被不同的处理器14或者处理器核使用的,或者可以是在不同的处理器14或者处理器核之间被共享的。

在一个方面中,处理器16可以被配置为至少临时地存储从诸如是另一个存储器16或者存储装置存储器24的另一个存储器设备被加载到存储器16的用于被处理器14中的一个或多个处理器14访问的处理器可执行代码。在一个方面中,被加载到存储器16的处理器可执行代码可以响应于处理器14对功能的执行被加载。响应于功能的执行将处理器可执行代码加载到存储器16可以由由于被请求的处理器可执行代码未被加载到存储器16中而是不成功的或者错失的对存储器16的存储器访问请求而造成。响应于错失,可以作出对另一个存储器设备的存储器访问请求以便将被请求的处理器可执行代码从该另一个存储器设备加载到存储器设备16。在一个方面中,响应于功能的执行将处理器可执行指令加载到存储器16可以由对另一个存储器设备的存储器访问请求而造成,并且处理器可执行指令可以被加载到存储器16以用于稍后的访问。

通信接口18、通信部件22、天线26和/或网络接口28可以共同协作,以便使计算设备10能够经由无线连接32和/或有线网络44通过无线网络30与远程计算设备50通信。无线网络30可以使用例如包括被用于无线通信的射频频谱的多种无线通信技术来实现,以便为计算设备10提供它可以通过其与远程计算设备50交换数据的与互联网40的连接。

存储装置存储器接口20和存储装置存储器24可以共同协作,以便允许计算设备10在非易失性存储介质上存储数据和处理器可执行代码。可以就像存储器16的方面那样对存储装置存储器24进行配置,其中,存储装置存储器24可以存储用于被处理器14中的一个或多个处理器14访问的处理器可执行代码。非易失性的存储装置存储器24可以甚至在计算设备10的电力已被关闭之后保留信息。在电力被重新打开并且计算设备10重启时,被存储在存储装置存储器24中的信息可以是对计算设备10可用的。存储装置存储器接口20可以控制对存储装置存储器24的访问,并且允许处理器14从存储装置存储器24读数据和向其写数据。

计算设备10的部件中的一些部件或者全部部件可以被不同地布置和/或组合,而仍然提供必要的功能。此外,计算设备10可以不限于部件中的每个部件的一项,并且每个部件的多个实例可以被包括在计算设备10的各种配置中。

图2示出了适于实现一个方面的多核处理器14。多核处理器14可以具有多个同构或者异构的处理器核200、201、202、203。处理器核200、201、202、203可以是同构的,这在于,单个处理器14的处理器核200、201、202、203可以被配置用于相同目的,并且具有相同或者相似的性能特性。例如,处理器14可以是通用处理器,并且处理器核200、201、202、203可以是同构的通用处理器核。替换地,处理器14可以是图形处理单元或者数字信号处理器,并且处理器核200、201、202、203可以分别是同构的图形处理器核或者数字信号处理器核。为易于引用,可以在本文中可互换地使用术语“处理器”和“处理器核”。

处理器核200、201、202、203可以是异构的,这在于,单个处理器14的处理器核200、201、202、203可以出于不同的目的被配置和/或具有不同的性能特性。这样的异构的处理器核的示例可以包括所谓的“big.little”架构,在该架构中,可以将较慢、低功率的处理器核与更强大并且功耗更大的处理器核耦合在一起。

在图2中所示出的示例中,多核处理器14包括四个处理器核200、201、202、203(即,处理器核0、处理器核1、处理器核2和处理器核3)。为易于阐述,本文中的示例可以引用在图2中被示出的四个处理器核200、201、202、203。然而,在图2中被示出并且在本文中被描述的四个处理器核200、201、202、203仅作为示例被提供,并且将不以任何方式将各种方面限于四核处理器系统。计算设备10、soc12或者多核处理器14可以单个地或者组合地包括比在本文中被示出并且被描述的四个处理器核200、201、202、203更少或者更多的处理器核。

在一个方面中,处理器核200、201、202、203可以具有关联的专用高速缓存存储器204、206、208、210。就像图1中的存储器16那样,专用高速缓存存储器204、206、208、210可以被配置为临时地保存有限数量的在预期未来的访问时从非易失性存储器被请求和/或从非易失性存储器被加载的数据和/或处理器可执行代码指令。专用高速缓存存储器204、206、208、210可以还被配置为存储被处理器核200、201、202、203产生并且被临时地存储以用于未来的快速访问而不被存储在非易失性存储器中的中间处理数据和/或处理器可执行代码指令。专用高速缓存存储器204、206、208、210可以各自是与处理器核200、201、202、203中的一个处理器核相关联的。每个专用高速缓存存储器204、206、208、210可以被分别的关联的处理器核200、201、202、203访问。在图2中所示出的示例中,每个处理器核200、201、202、203与专用高速缓存存储器204、206、208、210中的一个专用高速缓存存储器通信(即,使处理器核0与专用高速缓存存储器0配对、处理器核1与专用高速缓存存储器1配对、处理器核2与专用高速缓存存储器2配对以及处理器核3与专用高速缓存存储器3配对)。每个处理器核200、201、202、203被示为与仅一个专用高速缓存存储器204、206、208、210通信,然而,专用高速缓存存储器的数量将不是限制性的,并且可以对于每个处理器核200、201、202、203有差别。

在一个方面中,处理器核200、201、202、203可以具有关联的共享高速缓存存储器212、214。共享高速缓存存储器212、214可以被配置为执行与专用高速缓存存储器204、206、208、210相似的功能。然而,共享高速缓存存储器212、214可以各自与处理器核200、201、202、203中的多于一个处理器核通信(即,使处理器核0和处理器核1与共享高速缓存存储器0配对以及处理器核2和处理器核3与共享高速缓存存储器1配对)。每个处理器核200、201、202、203被示为与仅一个共享高速缓存存储器212、214通信,然而,共享高速缓存存储器的数量将不是限制性的,并且可以对于每个处理器核200、201、202、203有差别。类似地,每个共享高速缓存存储器被示为与仅两个处理器核200、201、202、203通信,然而,处理器核的数量将不是限制性的,并且可以对于每个共享高速缓存存储器212、214有差别。可以将与同一个共享高速缓存存储器212、214通信的处理器核200、201、202、203一起分组到如本文中进一步描述的处理器群集中。

图3示出了适于实现一个方面的soc12。soc12可以具有多个同构或者异构的处理器300、302、304、306。处理器300、302、304、306中的每个处理器可以是与图2中的处理器14类似的。每个处理器300、302、304、306的用途和/或性能特性可以以与图2中的处理器核200、201、202、203类似的方式确定处理器300、302、304、306是同构的还是异构的。

专用高速缓存存储器204、206、208、210和共享高速缓存存储器212、214还是与在图2中被描述的相同的部件相似的,然而在这里,专用高速缓存存储器204、206、208、210和共享高速缓存存储器212、214与处理器300、302、304、306通信。soc14的部件的数量和配置将不是限制性的,并且soc14可以在不同的布置中包括部件中的任何部件的更多或者更少的项。

在一个方面中,本文中描述的处理器和处理器核不需要被放置在同一个soc或者处理器上以共享共享高速缓存存储器。处理器和处理器核可以是跨各种部件分布的,而维持同与一个或多个其它处理器或者处理器核相同的共享高速缓存存储器的连接。

图4示出了根据一个方面的包括不同水平的可用共享高速缓存存储器460、462、464、466的多个处理器群集400、402、404、406、408。在图4中被示出(并且稍后在图6-8、13和15中被描述)的示例中的处理器群集400、402、404、406、408各自被示为具有两个处理器410、412、414、416、418、420、422、424、426、428,所述处理器是各自与专用高速缓存存储器430、432、434、436、438、440、442、444、446、448和共享高速缓存存储器450、452、454、456、458相关联的。例如,处理器群集400(处理器群集0)包括处理器410(处理器01)、412(处理器02),并且处理器410、412是各自与分别的专用高速缓存存储器430(与处理器01相关联的专用高速缓存存储器01)、432(与处理器02相关联的高速缓存存储器02)相关联的。此外,处理器410、412是各自与共享高速缓存存储器450(与处理器01和处理器02相关联的共享高速缓存存储器0)相关联的。处理器400、402、404、406、408可以经由互连总线468与彼此通信,互连总线468可以允许处理器群集400、402、404、406、408向、从和关于共享高速缓存存储器450、452、454、456、458传送数据。如上面指出的,这些示例处理器群集400、402、404、406、408将不是限制性的,并且可以被配备有采用多种数量和配置的部件。

共享高速缓存存储器450、452、454、456、458中的一个或多个共享高速缓存存储器可以包括作为可用共享高速缓存存储器460、462、464、466的部分。换句话说,共享高速缓存存储器450、452、454、456、458的部分可以是正在使用中的,或者正在存储用于潜在的使用的信息,或者正在被访问。共享高速缓存存储器450、452、454、456、458的其它部分可以是空闲的或者可用的,或者正在存储不再被指定为用于使用的信息、是空白的,或者未正在被访问。可用共享高速缓存存储器460、462、464、466是共享高速缓存存储器450、452、454、456、458的后一种部分。每个可用共享高速缓存存储器460、462、464、466可以包括如由可用共享高速缓存存储器460、462、464、466的不同的大小指示的不同水平的共享高速缓存存储器空间。每个可用共享高速缓存存储器460、462、464、466的共享高速缓存存储器空间的量可以取决于对共享高速缓存存储器450、452、454、456、458的使用随时间变化。

图4中示出的示例显示了处理器群集400不具有可用共享高速缓存存储器。在该示例中,为处理器群集400分配了具有高共享高速缓存存储器需求的进程(其也可以被称为执行进程),这表示执行进程使用可能已是针对共享高速缓存存储器450的可用共享高速缓存存储器的存储器中的全部或者接近全部存储器。处理器群集400、402、404、406、408中的任一个处理器群集在被分配了执行进程时也可以被称为执行处理器群集400、402、404、406、408。共享高速缓存存储器450、452、454、456、458中的任一个共享高速缓存存储器在它们位于执行处理器群集400、402、404、406、408的远端时也可以被称为远程共享高速缓存存储器450、452、454、456、458。另外,示例示出共享高速缓存存储器452、454、456、458中的每个共享高速缓存存储器包括不同水平的可用共享高速缓存存储器460、462、464、466(即,可用共享高速缓存存储器2小于可用共享高速缓存存储器1,可用共享高速缓存存储器1小于可用共享高速缓存存储器3,可用共享高速缓存存储器3小于可用共享高速缓存存储器4)。处理器群集402、404、406、408中的每个处理器群集关于执行处理器群集400的位置可以指示处理器群集402、404、406、408中的每个处理器群集与执行处理器群集400的相对距离。相对距离可以导致处理器群集402、404、406、408与执行处理器群集400之间的通信的不同的等待时间。

图5示出了存储器等待时间对可用共享存储器高速缓存大小的图表500,包括关于执行处理器群集400的针对处理器群集402、404、406、408的标绘点502、504、506、508。每个标绘点502、504、506、508与图4中的处理器群集402、404、406、408中的一个处理器群集有相关性(即,标绘点1与处理器群集1有相关性,标绘点2与处理器群集2有相关性,标绘点3与处理器群集3有相关性,以及标绘点4与处理器群集4有相关性)。图表500与在图4中被表述的可用共享存储器高速缓存大小和距离/等待时间有相关性。例如,处理器群集402在距离上最接近执行处理器群集400,因此标绘点502在描绘存储器等待时间的y轴上是最低的。处理器群集404、406、408距离执行处理器群集400越远,则越大的存储器等待时间被对应的标绘点504、506、508显示。类似地,针对对应的处理器群集402、404、406、408的可用共享高速缓存存储器460、462、464、466的大小由对应的标绘点502、504、506、508沿x轴示出。在图表500的轴上被示出的值将是示例性的并且非限制性的,并且在测量存储器等待时间和可用共享高速缓存存储器大小时可以使用任何范围的值。

在于图5中被示出并且与在图4中被示出的示例相对应的示例中,处理器群集402具有如由标绘点502指示的在与执行处理器群集400通信时的最低的存储器等待时间和第二低的量的可用共享高速缓存存储器450。类似地,处理器群集404具有如由标绘点504指示的第二低的存储器等待时间和最低的可用共享高速缓存存储器452。处理器群集406具有如由标绘点506指示的第二高的存储器等待时间和第二高的可用共享高速缓存存储器454。处理器群集408具有如由标绘点508指示的最高的存储器等待时间和最高的可用共享高速缓存存储器456。概括地说,用于用作针对执行进程的受害方高速缓存的优选的可用共享高速缓存存储器将具有最低的存储器等待时间和最高的可用共享高速缓存存储器大小的组合(即,最接近图表500右下角)。然而,最低的存储器等待时间和最高的可用共享高速缓存存储器大小可能不总是从可用共享高速缓存存储器460、462、464、466中可得的。因此,可以使用各种方法来将可用共享高速缓存存储器460、462、464、466选作针对被执行进程群集500执行的执行进程的受害方高速缓存。

在一个方面中,可以基于性能数据的组合确定处理器群集402、404、406、408和它们的相关的共享高速缓存存储器452、454、456、458中的每项的执行速度。该执行速度可以被用于将可用共享高速缓存存储器460、462、464、466选作受害方高速缓存。这样的性能数据可以包括通过成功的远程共享高速缓存存储器访问被调整的诸如是图5中示出的那些数据的存储器等待时间。例如,可以基于对远程共享高速缓存存储器命中率乘以处理器群集等待时间加上远程共享高速缓存存储器错失率乘以主存储器等待时间的计算来确定远程共享高速缓存存储器452、454、456、458的执行速度。将对远程共享高速缓存存储器452、454、456、458的成功的访问的等待时间与对远程共享高速缓存存储器452、454、456、458的不成功的访问的等待时间结合可以给出对于针对使用远程共享高速缓存存储器452、454、456、458的总等待时间/执行速度的性能评估。针对使用远程共享高速缓存存储器452、454、456、458的总等待时间越低,则越有可能远程共享高速缓存存储器452、454、456、458可以被用作用于支持在执行处理器群集400上被执行的执行进程的受害方高速缓存。可以将针对使用远程共享高速缓存存储器452、454、456、458的执行速度与门限或者与针对使用另一个远程共享高速缓存存储器452、454、456、458的执行速度进行比较。在一个方面中,远程共享高速缓存存储器命中率、处理器群集等待时间、远程共享高速缓存存储器错失率和/或主存储器等待时间可以在一段时间内被测量、基于历史信息被计算和/或从存储装置被检索。从存储装置检索的性能数据可以是在部件的设计和建造阶段期间被提供的,或者是被存储的之前所测量的性能数据。

图6和7示出了包括针对处理器群集402、404中的每个处理器群集的水平的可用共享高速缓存存储器460、462的多个处理器群集400、402、404。可用共享高速缓存存储器460、462在被用作受害方高速缓存时,可以与高速缓存存储器地址交织一起被使用,以便增大有效受害方高速缓存大小。高速缓存存储器地址交织可以跨远程共享高速缓存存储器452、454地散布被用于访问可用共享高速缓存存储器460、462的存储器地址,使得它们可以作为单个较大的受害方高速缓存被访问。这可以降低对于远程共享高速缓存存储器452、454的连续的请求的部分为了完成该连续的请求将不得不等待远程共享高速缓存存储器452、454中的一个远程共享高速缓存存储器以完成请求的之前的部分的概率。高速缓存存储器地址交织可以跨任意数量的具有可用共享高速缓存存储器的多个共享高速缓存存储器被实现。用于高速缓存存储器地址交织的方案可以是任意的,或者方案可以是基于每个可用共享高速缓存存储器大小和/或相关的处理器群集上的活动的。这后一种方案可以被称为n路方案,其中,n指示可用共享高速缓存存储器被划分成的块的数量,并且n是2或者更大。

处理器群集402、404可以充当用于描述高速缓存存储器地址交织方案的示例。如6中的示例示出可用共享高速缓存存储器460、462是相同或者接近相同大小的。在实现高速缓存存储器地址交织方案时,可用共享高速缓存存储器460、462的相似的大小非常适于实现任意的方案。在任意的方案中,可以跨可用共享高速缓存存储器460、462地散布高速缓存存储器地址,而几乎没有或者没有任何除了避免覆盖存储想要的数据的地址之外的控制(例如,替换方案还未指示已存储的数据可以被替换)。可用共享高速缓存存储器460、462的相似的大小使得它们易于作为单个受害方高速缓存来管理,因为它们可以作为由两个相似大小的块组成的单个受害方高速缓存被访问。

继续图6中的示例,也可以对于相似大小的可用共享高速缓存存储器460、462实现n路高速缓存存储器地址交织方案。在一个方面中,n路方案可以是基于可用共享高速缓存存储器460、462中的每个可用共享高速缓存存储器的大小的。尽管该类型的n路方案(就图7中的示例被进一步描述)可以被应用于相似大小的可用共享高速缓存存储器,但这是较不可能的,因为这样做的好处不明显。

在一个方面中,n路方案可以是基于与可用共享高速缓存存储器460、462相关的处理器群集402、404上的活动的。出于各种原因,诸如被执行的进程的需求,处理器群集402、404可能不具有相同水平的活动。处理器群集402、404之间的活动水平的不等可以导致具有较高活动水平的处理器群集(例如,处理器群集402)具有比具有较低活动水平的处理器群集(例如,处理器群集404)高的存储器等待时间。在它们之间存在存储器等待时间的不等时跨可用共享高速缓存存储器460、462均匀地或者任意地散布高速缓存存储器地址可能导致针对实施执行进程的降低了的执行速度。尽管这样的交织是可能的,并且可以增大有效受害方高速缓存大小,但其不可以高效地这样做。根据基于处理器群集402、404上的活动的n路方案跨可用共享高速缓存存储器460、462散布高速缓存存储器地址也可以增大有效受害方高速缓存大小,并且更高效地这样做。在这样的n路方案中,n的值和每可用共享高速缓存存储器460、462的块数的分配可以是基于处理器群集402、404之间的存储器等待时间的不等的。换句话说,继续该示例,相对于处理器群集404的存储器等待时间的处理器群集402的存储器等待时间越大,则可用共享高速缓存存储器462应当比可用共享高速缓存存储器460越经常地有利地被使用。在一个示例中,假设7比2的处理器群集402、404之间的活动比率,其中,较高的数量显示较高的活动和较高的存储器等待时间,则n的值可以是9,并且相反的比率2比7可以被用于向可用共享高速缓存存储器460、462散布高速缓存存储器地址。因此,在执行进程的执行期间,具有较低的活动和存储器等待时间和较高的针对受害方高速缓存被散布高速缓存存储器地址数的可用共享高速缓存存储器462可以被更频繁地访问。任何用于决定如何确定n的值和跨任意数量的可用共享高速缓存存储器空间被寻址的散布高速缓存存储器的比率的算法可以被用于实现基于任意数量的处理器群集上的活动的n路方案。

图7中的示例示出了可用共享高速缓存存储器460、462是不同大小的。在该示例中,可用共享高速缓存存储器460小于可用共享高速缓存存储器462。可以与关于在图6中被示出的示例作出的描述类似地实现任意的高速缓存存储器地址交织方案。然而,假设由于大小不等造成的潜在的不均匀的分布,则任意的方案可以导致高速缓存存储器地址的较非线性的散布。也可以与关于在图6中被示出的示例作出的描述类似地实现基于处理器群集402、404上的活动的n路方案。

如在图7中被示出的示例中那样,基于可用共享高速缓存存储器460、462中的每个可用共享高速缓存存储器的大小的n路高速缓存存储器地址交织方案可以在可用共享高速缓存存储器460、462是在大小上不同的时被实现。在它们之间存在可用共享高速缓存存储器大小的不等时跨可用共享高速缓存存储器460、462均匀地或者任意地散布高速缓存存储器地址可以导致针对实施执行进程的降低了的执行速度。尽管这样的交织是可能的,并且可以增大有效受害方高速缓存大小,但其不可以高效地这样做。根据基于可用共享高速缓存存储器大小的n路方案跨可用共享高速缓存存储器460、462散布高速缓存存储器地址也可以增大有效受害方高速缓存大小,并且更高效地这样做。在这样的n路方案中,n的值和每可用共享高速缓存存储器460、462的块数的分配可以是基于处理器群集402、404之间的可用共享高速缓存存储器空间的不等的。换句话说,继续该示例,相对于处理器群集402的处理器群集404的可用共享高速缓存存储器空间越大,则可用共享高速缓存存储器462应当越经常地比可用共享高速缓存存储器460有利地被使用。在一个示例中,假设可用共享高速缓存存储器460、462之间的1比2的可用共享高速缓存存储器大小的比率,其中,较高的数量显示较大的可用空间,则n的值可以是3,并且该比率可以被用于向可用共享高速缓存存储器460、462散布高速缓存存储器地址。因此,在实施执行进程期间,具有较大的可用共享高速缓存存储器空间和较高的针对受害方高速缓存的散布高速缓存存储器地址数的可用共享高速缓存存储器462可以被更频繁地访问。任何用于决定如何确定n的值和跨任意数量的可用共享高速缓存存储器被寻址的散布高速缓存存储器的比率的算法可以被用于实现基于任意数量的处理器群集上的可用共享高速缓存存储器空间的n路方案。

应当指出,还考虑了用于使用可用共享高速缓存存储器的大小和处理器群集上的活动的组合作为n路方案的基础的算法。

图8示出了包括数据800、802的多个处理器群集400、402、404,数据800、802指示执行不同于执行进程的线程或者进程的处理器群集402、404的各种状态。状态数据800、802可以被用于确定处理器群集402、404中的每个处理器群集的操作的效率。基于它们分别的效率选择受害方高速缓存可以降少在实施执行进程时的功率使用。状态数据800、802可以包括分别的处理器群集402、404的温度、电流泄漏、功率使用和/或操作频率。状态数据800、802中的每项数据可以被用于指示处理器群集402、404的效率。概括地说,相比于状态数据800、802中的每项的较低的值,状态数据800、802中的每项数据的较高的值指示较多的功率被用于实施执行处理器群集402、404上的进程。针对具体的处理器群集402、404的任何一项或多项状态数据402、404的值越低,则越有可能关联的可用共享高速缓存存储器460、462可以被用作针对执行进程的受害方高速缓存。对于将被用作受害方高速缓存的可用共享高速缓存存储器460、462的确定可以是基于使用状态数据800、802中的任一项数据或者其组合来确定处理器群集402、404的效率的算法的。可以将处理器402、404的效率与门限或者与另一个处理器群集402、404的效率进行比较。在一个方面中,状态数据402、404可以在一段时间内被测量、基于历史信息被计算和/或从存储装置被检索。从存储装置检索的状态数据402、404可以是在部件的设计和建造阶段期间被提供的,或者是被存储的之前所测量的状态数据402、404。

图9示出了用于实现将远程可用共享高速缓存存储器选作受害方高速缓存的一个方面的方法900。可以使用软件、诸如是处理器的通用或者专用硬件或者软件和硬件的组合在计算设备中执行方法900。在方框902中,计算设备可以识别具有用于用作受害方高速缓存的可用共享高速缓存存储器空间的远程共享高速缓存存储器。对这样的远程共享高速缓存存储器的识别可以包括:由计算设备确定是否有或者多少可用共享高速缓存存储器空间是与远程共享高速缓存存储器相关联的。这可以通过处理器监控远程共享高速缓存存储器的命中和/或错失率或者通过检查被配置为保留这样的信息的数据结构(例如,表)中的可用地址空间来完成。远程共享高速缓存存储器是否适于用作受害方高速缓存可以取决于该共享高速缓存存储器中的可用的空间的量是否超过门限。

在方框904中,计算设备可以确定将根据其将远程共享高速缓存存储器选作受害方高速缓存的度量。如本文中讨论的,计算设备可以考虑执行速度度量、效率度量和/或有效受害方高速缓存大小度量。在一个方面中,计算设备可以被预编程为专门地或者基于各种因素使用这些度量中的一个或多个度量。在一个方面中,可以包括包含执行进程的软件的在计算设备上运行的软件可以关于将使用哪个度量来确定受害方高速缓存来命令计算设备。在一个方面中,计算设备可以基于一些因素确定将使用哪个度量,这样的因素包括执行进程的类型和需求和/或计算设备的状态。

在方框906中,计算设备可以对于所识别的远程共享高速缓存存储器和/或对应的处理器群集检索与所确定的度量相关的数据。如本文中另外讨论的,度量中的每个度量可以涉及使用不同的数据来确定远程共享高速缓存存储器是否可以被选择以用作受害方高速缓存。例如,执行速度度量可以使用针对访问远程共享高速缓存存储器的性能数据,效率度量可以使用针对与远程共享高速缓存存储器相关联的处理器群集的效率数据,以及有效受害方高速缓存大小度量可以使用可用共享高速缓存存储器空间和/或等待时间数据。

在方框908中,计算设备可以根据所确定的度量确定哪些远程共享高速缓存存储器将用作受害方高速缓存。可以根据对所识别的远程共享高速缓存存储器和/或它们的对应的处理器群集的所检索的数据进行的比较作出该确定。在一个方面中,对所检索的数据继进行的比较可以包括:将一个远程共享高速缓存存储器和/或对应的处理器群集的所检索的数据与另一个远程共享高速缓存存储器和/或对应的处理器群集的所检索的数据或者门限进行比较,以便选择或者拒绝将该远程共享高速缓存存储器用作受害方高速缓存。在一个方面中,对所检索的数据继进行的比较可以包括:对一个远程共享高速缓存存储器和/或对应的处理器群集的所检索的数据进行的比较可以包括使用所检索的数据执行计算以便确定比较的值。

在方框910中,计算设备可以选择远程共享高速缓存存储器中的一个或多个远程共享高速缓存存储器以用作受害方高速缓存。选择远程共享高速缓存存储器以用作受害方高速缓存可以由方框908中的比较的有利的结果引起。在方框912中,计算设备可以使用所选择的远程共享高速缓存存储器作为针对被执行处理器群集执行的执行进程的受害方高速缓存。

图10示出了用于实现根据执行速度度量将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面的方法1000。可以使用软件、诸如是处理器的通用或者专用硬件或者软件和硬件的组合在计算设备中执行方法1000。方法1000的方框可以提供图9的方框904、906、908、910的更多细节。在方框1002中,计算设备可以确定应当基于执行速度度量选择受害方高速缓存。如本文中讨论的,对于基于执行速度度量选择受害方高速缓存的确定可以是被预编程的、由来自在计算设备上运行的软件(其可以包括包含执行进程的软件)的指令提供的和/或可以是基于一些因素的,这样的因素包括执行进程的类型和需求和/或计算设备的状态。

在方框1004中,计算设备可以对于所识别的远程共享高速缓存存储器和对应的处理器群集检索与执行速度相关的数据。如本文中讨论的,与执行速度相关的该数据可以包括远程共享高速缓存存储器命中率、处理器群集等待时间、远程共享高速缓存存储器错失率和主存储器等待时间。对执行速度数据进行检索可以包括:在一段时间内测量执行速度数据、基于历史信息计算执行速度数据和/或从存储装置检索执行速度数据。

在方框1006中,计算设备可以计算针对所识别的远程共享高速缓存存储器的执行速度指示符。执行速度指示符可以被用于识别所识别的远程共享高速缓存存储器的执行速度水平。在方面中,对执行速度指示符进行计算可以涉及执行以下方程:远程共享高速缓存存储器命中率乘以处理器群集等待时间加上远程共享高速缓存存储器错失率乘以主存储器等待时间。执行速度指示符可以指示对所识别的远程共享高速缓存存储器进行访问的总等待时间。

在方框1008中,计算设备可以对针对所识别的远程共享高速缓存存储器的执行速度指示符进行比较。在一个方面中,可以相对于门限实现该比较。在一个方面中,可以相对于另一个识别的远程共享高速缓存存储器的执行速度指示符实现该比较。在方框1010中,计算设备可以基于方框1008中的比较选择具有有利的执行速度指示符的一个或多个远程共享高速缓存存储器以用作受害方高速缓存。如参考图12详细讨论的,在方法1000的一个方面中,计算设备可以基于所识别的远程共享高速缓存存储器的与多个远程共享高速缓存存储器的有效受害方高速缓存、执行速度、效率和/或大小相关的数据确定地址交织方案。关于要实现的高速缓存存储器地址交织方案作出的确定可以取决于所识别的远程共享高速缓存存储器之间的执行速度、效率、存储器等待时间和/或可用共享高速缓存存储器大小的比率。计算设备可以对在方框1010中被选择的多个远程共享高速缓存存储器应用高速缓存存储器地址交织方案。计算设备可以在方框912中使用所选择的远程共享高速缓存存储器作为针对被执行处理器群集执行的执行进程的受害方高速缓存。

图11示出了用于实现根据效率度量将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面的方法1100。可以使用软件、诸如是处理器这样的通用或者专用硬件或者软件和硬件的组合在计算设备中执行方法1100。方法1100的方框可以提供图9的方框904、906、908、910的更多细节。在方框1102中,计算设备可以确定应当基于效率度量选择受害方高速缓存。如本文中讨论的,对于基于效率度量选择受害方高速缓存的确定可以是被预编程的、由来自在计算设备上运行的软件(其可以包括包含执行进程的软件)的指令提供的和/或可以是基于一些因素的,这样的因素包括执行进程的类型和需求和/或计算设备的状态。

在方框1104中,计算设备可以对于所识别的远程共享高速缓存存储器的对应的处理器群集检索与效率相关的数据。如本文中讨论的,与效率相关的该数据可以包括处理器群集的状态数据,包括温度、电流泄漏、功率使用和/或操作频率。对状态数据进行检索可以包括:在一段时间内测量状态数据、基于历史信息计算状态数据和/或从存储装置检索状态数据。

在方框1106中,计算设备可以对处理器群集的与所识别的远程共享高速缓存存储器的效率相关的数据进行比较。状态数据可以被用于识别与所识别的远程共享高速缓存存储器相关的处理器群集的效率水平。在一个方面中,可以相对于门限实现该比较。在一个方面中,可以相对于与所识别的远程共享高速缓存存储器相关的另一个处理器群集的状态数据实现对与所识别的远程共享高速缓存存储器相关的处理器群集的状态数据作出的该比较。在方框1108中,计算设备可以基于方框1006中的比较来选择与具有有利的执行效率数据的一个或多个处理器核相对应的一个或多个远程共享高速缓存存储器以用作受害方高速缓存。

如参考图12详细讨论的,在方法1100的一个方面中,计算设备可以基于所识别的远程共享高速缓存存储器的与多个远程共享高速缓存存储器的有效受害方高速缓存、执行速度、效率和/或大小相关的数据确定地址交织方案。关于要实现的高速缓存存储器地址交织方案的确定可以取决于所识别的远程共享高速缓存存储器之间的执行速度、效率、存储器等待时间和/或可用共享高速缓存存储器大小的比率。计算设备可以对在方框1106中被选择的多个远程共享高速缓存存储器应用高速缓存存储器地址交织方案。计算设备可以在方框912中使用所选择的远程共享高速缓存存储器作为针对被执行处理器群集执行的执行进程的受害方高速缓存。

图12示出了用于实现根据有效受害方高速缓存大小度量将可用远程共享高速缓存存储器选作受害方高速缓存的一个方面的方法1200。可以使用软件、诸如是处理器的通用或者专用硬件或者软件和硬件的组合在计算设备中执行方法1200。方法1200的方框可以提供图9的方框904、906、908、910的更多细节。在方框1202中,计算设备可以确定应当基于有效受害方高速缓存大小度量选择受害方高速缓存。如本文中讨论的,对于基于有效受害方高速缓存大小度量选择受害方高速缓存的确定可以是被预编程的、由来自在计算设备上运行的软件(其可以包括包含执行进程的软件)的指令提供的和/或可以是基于一些因素的,这样的因素包括执行进程的类型和需求和/或计算设备的状态。

在方框1204中,计算设备可以对于所识别的远程共享高速缓存存储器检索与有效受害方高速缓存大小相关的数据。如本文中讨论的,与有效受害方高速缓存大小相关的该数据可以包括所识别的远程共享高速缓存存储器的可用共享高速缓存存储器大小和/或所识别的远程共享高速缓存存储器的存储器等待时间。对状态数据进行检索可以包括:在一段时间内测量状态数据、基于历史信息计算状态数据和/或从存储装置检索状态数据。在方框1206中,计算设备可以对所识别的远程共享高速缓存存储器的与有效受害方高速缓存大小相关的数据进行比较。在一个方面中,可以相对于门限实现该比较。在一个方面中,可以相对于另一个识别的远程共享高速缓存存储器的与有效受害方高速缓存大小相关的数据实现对一个所识别的远程共享高速缓存存储器的与有效受害方高速缓存大小相关的数据作出的该比较。

在方框1208中,计算设备可以基于所识别的远程共享高速缓存存储器的与有效受害方高速缓存大小相关的数据确定地址交织方案。在一个方面中,地址交织方案可以包括任意的或者n路的、对称的或者非对称的高速缓存存储器地址交织方案。任意的高速缓存存储器地址交织方案可以将受害方高速缓存的地址分配给所识别的远程共享高速缓存存储器而几乎没有或者没有任何约束。n路对称高速缓存存储器地址交织方案可以以在所识别的远程共享高速缓存存储器之中均匀分布为基础而将受害方高速缓存的地址分配给所识别的远程共享高速缓存存储器。n路非对称高速缓存存储器地址交织方案可以以在所识别的远程共享高速缓存存储器之中非均匀分布为基础而将受害方高速缓存的地址分配给所识别的远程共享高速缓存存储器。关于要实现的高速缓存存储器地址交织方案作出的确定可以取决于所识别的远程共享高速缓存存储器之间的执行速度、效率、存储器等待时间和/或可用共享高速缓存存储器大小的比率。

在方框1210中,计算设备可以基于方框1206中的比较选择具有有利的有效受害方高速缓存大小数据的一个或多个远程共享高速缓存存储器以用作具有地址交织的受害方高速缓存。在一个方面中,可以在可选的方框1208中确定高速缓存存储器地址交织方案。在一个方面中,高速缓存存储器地址交织方案可以是被预编程的和/或由来自在计算设备上运行的软件(其可以包括包含执行进程的软件)的指令提供的。计算设备可以在方框912中使用所选择的远程共享高速缓存存储器作为针对被执行处理器群集执行的执行进程的受害方高速缓存。

各种方面(包括但不限于上面参考图1-12讨论的方面)可以在多种计算系统中被实现,这样的计算系统可以包括图13中示出的适于与各种方面一起使用的示例移动计算设备。移动计算设备1300可以包括被耦合到触摸屏控制器1304和内部存储器1306的处理器1302。处理器1302可以是被指定用于通用或者专用处理任务的一个或多个多核集成电路。内部存储器1306可以是易失性和/或非易失性存储器,并且还可以是安全的和/或加密的存储器或者不安全的和/或未加密的存储器,或者是其任意组合。可以被利用的存储器类型的示例包括但不限于ddr、lpddr、gddr、wideio、ram、sram、dram、p-ram、r-ram、m-ram、stt-ram和嵌入式dram。触摸屏控制器1304和处理器1302可以还被耦合到诸如是电阻感应触摸屏、电容感应触摸屏、红外线感应触摸屏等这样的触摸屏面板1312。额外地,计算设备1300的显示器不需要具有触摸屏能力。

移动计算设备1300可以具有被耦合到彼此和/或处理器1302的用于发送和接收通信的一个或多个无线信号收发机1308(例如,花生、蓝牙、zigbee、wi-fi、rf无线电)和天线1310。收发机1308和天线1310可以与上面提到的电路一起被用于实现各种无线传输协议栈和接口。移动计算设备1300可以包括实现经由蜂窝网络的通信并且被耦合到处理器的蜂窝网络无线调制解调器芯片1316。

移动计算设备1300可以包括被耦合到处理器1302的外设设备连接接口1318。外设设备连接接口1318可以被特异地配置为接受一种类型的连接,或者可以被配置为接受各种类型的公共的或者私有的物理和通信连接,这样的连接诸如是usb、火线、雷电或者pcie。外设设备连接接口1318可以还被耦合到以类似的方式被配置的外设设备连接端口(未示出)。

移动计算设备1300可以还包括用于提供音频输出的扬声器1314。移动计算设备1300可以还包括由塑料、金属或者材料的组合构成的用于包含上面讨论的部件中的全部部件或者一些部件的外壳1320。移动计算设备1300可以包括被耦合到处理器1302的诸如是一次性的或者可再充电的电池这样的电源1322。可再充电的电池可以还被耦合到外设设备连接端口以便从位于移动计算设备1300外部的源接收充电电流。移动计算设备1300可以还包括用于接收用户输入的物理按钮1324。移动计算设备1300可以还包括用于打开和关闭移动计算设备1300的电源按钮1326。

各种方面(包括但不限于上面参考图1-12讨论的方面)可以在多种计算系统中被实现,这样的计算系统可以包括诸如是图14中示出的膝上型计算机1400这样的多种移动计算设备。许多膝上型计算机包括触摸板触摸表面1417,触摸板触摸表面1417充当计算机的指点设备,并且因此可以接收与在被装备了触摸屏显示器并且在上面被描述的计算设备上被实现的那些手势相似的拖拽、滚动和轻拂手势。膝上型计算机1400将通常包括被耦合到易失性存储器1412和诸如是闪存的磁盘驱动器1413这样的大容量非易失性存储器的处理器1411。额外地,计算机1400可以具有被耦合到处理器1411的可以被连接到无线数据链路的用于发送和接收电磁辐射的一个或多个天线1408和/或蜂窝电话收发机1416。计算机1400可以还包括被耦合到处理器1411的软盘驱动器1414和压缩盘(cd)驱动器1415。在笔记本配置中,计算机外壳包括全都被耦合到处理器1411的触摸板1417、键盘1418和显示器1419。如所公知的,计算设备的其它配置可以包括被耦合到处理器(例如,经由usb输入)的计算机鼠标或者轨迹球,计算机鼠标或者轨迹球也可以结合各种方面被使用。

各种方面(包括但不限于上面参考图1-12讨论的方面)可以在多种计算系统中被实现,这样的计算系统可以包括用于在服务器高速缓存存储器中压缩数据的多种市场上可得的服务器中的任一种服务器。在图15中示出了示例服务器1500。这样的服务器1500通常包括被耦合到易失性存储器1502和诸如是磁盘驱动器1504这样的大容量非易失性存储器的一个或多个多核处理器组件1501。如图15中示出的,多核处理器组件1501可以通过将它们插入组件的机架而被添加到服务器1500。服务器1500可以还包括被耦合到处理器1501的软盘驱动器、压缩盘(cd)或者dvd光盘驱动器1506。服务器1500可以还包括被耦合到多核处理器组件1501的用于建立与网络1505的网络接口连接的网络接入端口1503,网络1505诸如是被耦合到其它广播系统计算机和服务器的局域网、互联网、公共交换电话网和/或蜂窝数据网络(例如,cdma、tdma、gsm、pcs、3g、4g、lte或者任何其它类型的蜂窝数据网络)。

可以使用诸如是c、c++、c#、smalltalk、java、javascript、visualbasic、结构化查询语言(例如,事务-sql)、perl这样的高级编程语言或者使用各种其它编程语言编写用于在可编程处理器上执行以便实现各种方面的操作的计算机程序代码或者“程序代码”。如本申请中使用的被存储在计算机可读存储介质上的程序代码或者程序可以指机器语言代码(诸如目标代码),机器语言代码的格式是可以被处理器理解的。

许多计算设备操作系统内核被组织到用户空间(非特权代码在其处运行)和内核空间(特权代码在其处运行)中。该分离在安卓和其它通用公开许可(gpl)环境中特别重要,在这样的gpl环境中,作为内核空间的部分的代码必须是经gpl许可的,而在用户空间中运行的代码可以不是经gpl许可的。应当理解,除非另外明确指出,否则这里讨论的各种软件组件/模块可以在内核空间或者用户空间中被实现。

前述的方法描述和流程图仅作为说明性的示例被提供,并且不旨在要求或者暗示各种方面的操作必须按照所呈现的次序被执行。如本领域的技术人员应当认识到的,前述方面中的操作的次序可以按照任意次序被执行。诸如是“此后”、“然后”、“接下来”等这样的术语不旨在限制操作的次序;这些术语被简单地用于引导读者通过对方面的描述。另外,任何例如使用冠词“一”、“一个”或者“那个”以单数形式对权利要求元素的引用不旨在理解为将元素限于单数。

结合各种方面描述的各种说明性的逻辑块、模块、电路和算法操作可以被实现为电子硬件、计算机软件或者两者的组合。为清晰地说明硬件与软件的该可互换性,已在上面一般地就它们的功能描述了各种说明性的部件、块、模块、电路和操作。这样的功能被实现为硬件还是软件取决于具体的应用和被强加于总体系统的设计约束。技术人员可以针对每个具体的应用以不同的方式实现所描述的功能,但这样的实现决策不应当理解为导致脱离本发明的范围。

被用于实现结合本文中公开的方面描述的各种说明性的逻辑、逻辑块、模块和电路的硬件可以利用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其它可编程逻辑设备、分立的门或者晶体管逻辑、分立的硬件部件或者被设计为执行本文中描述的功能的其任意组合来实现或者执行。通用处理器可以是微处理器,但替换地,处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以被实现为计算设备的组合,例如,dsp与微处理器的组合、多个微处理器、结合dsp核的一个或多个微处理器或者任何其它这样的配置。替换地,某些操作或者方法可以被专用于给定的功能的电路执行。

在一个或多个方面中,所描述的功能可以用硬件、软件、固件或者其任意组合来实现。如果用软件来实现,则功能可以作为非暂时性计算机可读介质或者非暂时性处理器可读介质上的一个或多个指令或者代码被存储。本文中公开的方法或者算法的操作可以在可以位于非暂时性计算机可读或者处理器可读存储介质上的处理器可执行软件模块中被体现。非暂时性计算机可读或者处理器可读存储介质可以是任何可以被计算机或者处理器访问的存储介质。通过示例而非限制,这样的非暂时性计算机可读或者处理器可读介质可以包括ram、rom、eeprom、闪存、cd-rom或者其它光盘存储装置、磁盘存储装置或者其它磁性存储设备或者任何其它的可以被用于存储采用指令或者数据结构的形式的期望的程序代码并且可以被计算机访问的介质。如本文中使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光在光学上复制数据。以上各项的组合也被包括在非暂时性计算机可读和处理器可读介质的范围内。额外地,方法或者算法的操作可以作为代码和/或指令的集合中的任一项或者其任意组合驻留在可以被并入计算机程序产品的非暂时性处理器可读介质和/或计算机可读介质上。

提供对所公开的方面的前述描述以使本领域的技术人员能够制作或者使用本发明。对这些方面的各种修改对于本领域的技术人员将是显而易见的,并且本文中定义的一般原理可以被应用于其它方面,而不脱离本发明的精神或者范围。因此,本发明不旨在限于本文中示出的方面,而将符合与下面的权利要求和本文中公开的原理和新颖特征一致的最宽范围。

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