定位多核处理器中的被高速缓存的数据的制作方法_4

文档序号:9510132阅读:来源:国知局
对应路由器(路由器518)的输出连接路径(例如,连接路径542和544)的核(诸如核504和510)相关联的其它路由器(诸如路由器520和526)。这样的更新的存储器地址分布表然后可被用来预测给定存储器地址的位置。
[0060]本文中所述的示例技术可被用来定位多核处理器装置中的被高速缓存的数据。示例技术还可被用来当多核处理器装置的单个核开启、但是其它核的高速缓存工作时定位被高速缓存的数据。更一般地,示例技术可被用在如下的各种应用中,在这些应用中,被在处理器上执行的线程访问的数据可被高速缓存在多核处理器装置的许多高速缓存中的一个中,并且维护存储器地址到它们的高速缓存位置的准确映射的效率低下。在一些示例中,上述概率技术可连同标准的一致性逻辑一起来实施以定位多核处理器装置的核中的被高速缓存的数据。
[0061]在某些实施例中,附加技术可被用来预测给定存储器地址的位置。例如,对给定存储器地址的请求可被传送到每个核以定位具有给定存储器地址的核。在其它示例中,对给定存储器地址的请求可被发送到中央目录,并且可被进一步引导到具有给定存储器地址的适当的目的地核。
[0062]上述示例方法和系统提供用于预测多核处理器中以及其它一般的并行或分布式计算系统中的被高速缓存的数据的位置的概率框架。本技术被用来使用基于存储在多核处理器的核上的存储器地址的位置的存储器地址分布的计算来预测给定存储器地址的位置。这样的预测可以在不维护具有很大大小的、可与核的数量和多核处理器的存储器大小成比例地生长的集中式目录的情况下进行。
[0063]例如,对于具有N个核的多核处理器装置,给定存储器地址可存在于任何的高速缓存中或者N个核中的每个中。如果片上高速缓存中的至少一个包括大约Μ个存储器位置,则对于位掩模数据结构,存储器目录可能需要大约ΜΧΝ个位来维护存储器位置到它们所有的被高速缓存的位置的映射。而且,为了向Ν个核中的每个提供映射的副本,可利用大约(ΜΧΝ)ΧΝ个位的目录。可以看出,随着核的数量增加,维护这样的映射的存储器要求可能变得相当大。本技术继而可利用概率技术来在不需要集中式和/或局部目录的情况下预测给定存储器地址的位置。而且,本解决方案对于大量核是可伸缩的,并且可导致多核处理器中的数据查找时间缩短。
[0064]图7是说明根据本公开的至少一些实施例布置的、被布置为用于管理多核处理器中的被高速缓存的存储器地址的示例计算装置700的框图。在非常基本的配置702中,计算装置700通常包括一个或多个处理器704和系统存储器706。存储器总线708可被用于处理器704和系统存储器706之间的通信。处理器704包括多核处理器。
[0065]取决于期望的配置,处理器704可以是任何类型,包括但不限于微处理器(μ P)、微控制器(μ C)、数字信号处理器(DSP)或它们的任何组合。处理器704可包括一个或多个等级的高速缓存,诸如等级一的高速缓存710和等级二的高速缓存712、两个或更多个处理器核714和寄存器716。示例处理器核714可包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或它们的任何组合。示例存储器控制器718也可与处理器704 —起被使用,或在一些实施方式中存储器控制器718可以是处理器704的内部部分。处理器704可包括诸如上述的位置预测模块,其促进基于被处理器核714中的一个或多个的片上高速缓存存储的存储器地址的存储器地址分布表来预测给定存储器地址的位置。
[0066]取决于期望的配置,系统存储器706可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如R0M、闪存等)或它们的任何组合。系统存储器706可包括操作系统720、一个或多个应用722以及程序数据724。在一些实施例中,应用722可被布置为与程序数据724 —起在操作系统720上进行操作。该所述的基本配置702在图7中通过内部虚线内那些部件而被示出。应用722可包括用于预测给定存储器地址的位置的算法。程序数据724可包括被处理器核中的一个或多个高速缓存的一个或多个存储器地址的位置的存储器地址分布表。
[0067]计算装置700可具有附加特征或功能以及用于促进基本配置702和任何所需的装置和接口之间的通信的附加接口。例如,总线/接口控制器730可被用来促进基本配置702与一个或多个数据存储装置732之间经由存储接口总线734的通信。数据存储装置732可以是可移除存储装置736、不可移除存储装置738或它们的组合。
[0068]可移除存储装置和不可移除存储装置的示例举几个示例来说包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘装置、诸如压缩盘(⑶)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器。示例计算机存储介质可包括在信息存储的任何方法或技术中被实施的易失性和非易失性、可移除和不可移除的介质,诸如计算机可读指令、数据结构、程序模块或其它数据。
[0069]系统存储器706、可移除存储装置736和不可移除存储装置738是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、ROM、EEPR0M、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储器装置或可用于存储期望的信息以及可被计算装置700访问的任何其它介质。任何这样的计算机存储介质可以是计算装置700的一部分。
[0070]计算装置700也可包括用于促进从各种接口装置(例如,输出装置742、外围接口744和通信装置746)到基本配置702的经由总线/接口控制器730的通信的接口总线740。示例输出装置742包括图形处理单元748和音频处理单元750,其可被配置为与诸如显示器或扬声器的各种外部装置经由一个或多个A/V端口 752进行通信。
[0071]示例外围接口 744包括串行接口控制器754或并行接口控制器756,其可被配置为与诸如输入装置(例如,键盘、鼠标、笔、声音输入装置、触摸输入装置等)或其它外围装置(例如,打印机、扫描仪等)的外部装置经由一个或多个I/O端口 758进行通信。示例通信装置746包括网络控制器760,其可被布置为促进与一个或多个其它计算装置762经由一个或多个通信端口 764在网络通信链路上的通信。
[0072]网络通信链路可以是通信介质的一个示例。通信介质通常可以被体现为计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据,并且可包括任何信息递送介质。“调制数据信号”可以是具有其特性集合中的一个或多个或者被更改为对信号中的信息进行编码的信号。举例来说,而非限制,通信介质可包括诸如有线网络或有线直接连接的有线介质、以及诸如声学、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。如本文中所使用的术语计算机可读介质可包括存储介质和通信介质两者。
[0073]计算装置700也可被实施作为小型便携式(或移动)电子装置的一部分,所述电子装置诸如蜂窝电话、个人数据助理(PDA)、个人媒体播放器装置、无线网表装置、个人耳机装置、专用装置或包括以上功能中的任何功能的混合装置。计算装置700也可被实施作为包括笔记本计算机和非笔记本计算机配置两者的个人计算机。
[0074]在本申请中所述的特定实施例(意图使其作为各方面的例证)方面,本公开不应当是受限的。如对本领域技术人员来说将显而易见的,在不脱离其精神和范围的情况下可以做出许多修改和改变。通过前述描述,本公开范围内的功能等价的方法和设备(除本文中所列举的那些之外)对于本领域技术人员来说将是显而易见的。意图使这样的修改和改变落在所附权利要求的范围内。
[0075]本公开仅由所附权利要求的各项以及这样的权利要求所赋予的等同物的全部范围一起来限定。应当理解,本公开并不限于特定的方法、试剂、化合物成分或生物系统(当然其可以变化)。还应当理解,本文中所使用的术语仅仅是为了描述特定实施例的目的,且并不意图是限制性的。
[0076]关于基本上任何复数和/或单数术语在本文中的使用,本领域技术人员可以按照其适用于的情景和/或应用而从复数转化到单数和/或从单数转化到复数。为了清楚起见,在本文中可能明确地阐述了各种单数/复数变换。
[0077]本领域技术人员将理解的是,总之,本文中且尤其是所附权利要求(例如所附权利要求的主体)中所使用的术语通常意图是“开放的”术语(例如术语“包括”应当被解释为“包括但不限于”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限于”,等等)。本领域技术人员将进一步理解的是,如果所引入的权利要求叙述的特定数字是有意的,这样的意图将被明确叙述在权利要求中,并且在没有这样的叙述的情况下不存在这样的意图。
[0078]例如,作为理解的辅助,下面所附的权利要求可以包含引入性短语“至少一个”和“一个或多个”的使用以引入权利要求叙述。然而,这样的短语的使用不应被解释为暗示着通过不定冠词“一”或“一个”引入权利要求叙述将包含这样引入的权利要求叙述的任何特定权利要求限定到包含只有一个这样的叙述的实施例,即使当该同一权利要求包括引入性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词时也是这样(例如,“一”和/或“一个”应当被解释为意味着“至少一个”或“一个或多个”);对于用来引入权利要求叙述的定冠词的使用来说情况是同样的。
[0079]此外,即使明确记载了所引入的权利要求叙述的特定数字,本领域技术人员也将认识到,这样的记载应当
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1