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

文档序号:9510132阅读:来源:国知局
分布表223发送到每个核(诸如第一核202和第二核204)的位置预测模块(诸如224和226),以使得更新的分布223可供相应的位置预测模块用于预测任何给定存储器地址的位置。
[0043]图3说明根据本文中所述的至少一些实施例布置的示例存储器地址分布表300。存储器地址摘要器222可包括被配置为执行用于产生存储器地址分布表300的分布摘要器过程的核(或控制器或逻辑等)。分布摘要器线程可以是简单线程,其可标识用于将存储器地址映射到一个或多个核和相关联的高速缓存的基本模式。然而,各种其它技术可被存储器地址摘要器222用于产生存储器地址分布表300。在其它示例中,存储器地址摘要器222可包括用于产生存储器地址分布表300的硬件逻辑。在一些示例中,存储器地址分布表300可指示存储器地址的位模式302和核标识编号304之间的映射以供用于预测相应存储器地址的位置。
[0044]在一个示例中,存储器地址分布表300示出,给定存储器地址具有诸如参考数字306所表示的位模式“00.0X010XXX”,其有可能存在于核编号7 (由条目308表示)中。类似地,如果给定存储器地址具有诸如参考数字310所表示的位模式“00.0X10110X1XXX”,则它有可能存在于多核处理器装置200的核编号5 (由条目312表示)中。存储器地址分布表300可包括若干个这样的位模式和对应的预测核位置。多核处理器装置200的核(诸如第一核202和第二核204)的位置预测模块(诸如模块224和226)可查找这样的存储器地址分布表300来预测给定存储器地址的位置并且从预测的位置访问与该存储器地址相关联的数据。
[0045]图4说明根据本文中所述的至少一些实施例布置的另一示例存储器地址分布表400。存储器地址分布表400可包括存储器地址的位模式402、关于相应存储器地址的预测位置的核标识编号404以及给定存储器地址在与一个或多个标识的核相关联的一个或多个高速缓存中的发生概率406之间的映射。
[0046]例如,如果给定存储器地址具有诸如参考数字408所表示的位模式“000X0010”,则它有可能存在于多核处理器的核编号4 (由条目410表示)中,并且该位模式在核编号4中的发生概率约为80% (由条目412表示)。类似地,如果给定存储器地址具有诸如参考数字414所表示的位模式“000X0110”,则它有可能存在于多核处理器设备的核编号2(由条目416表示)中,并且该位模式在核编号4中的发生概率约为12% (由条目418表示)。多核处理器装置200的核(诸如第一核202和第二核204)的位置预测模块(诸如由参考数字224和226)可利用这样的概率分布来确定给定存储器地址的可能的位置。
[0047]作为示例,如果位模式408包括具有被设置为0的地址位18的32位地址,则它可被映射到核标识编号4,其中存储的地址的大约80%具有被设置为0的地址位18。类似地,存储在核2中的地址的大约12%可具有被设置为0的地址位18。当特定核(比如说核0)需要地址位18为0的特定存储器地址的位置时,对应的位置预测模块利用上述概率分布,并且可在核4和核2中查找存储器地址。在一些示例中,可对存储器地址的32个位中的每个产生概率分布,并且可利用该概率分布来确定存储器地址的位置。
[0048]多核处理器装置200的核(诸如第一核202和第二核204)的位置预测模块(诸如由参考数字224和226表示)可利用存储器地址摘要器222产生的存储器地址分布表223来预测给定存储器地址的位置。在一些示例实施例中,位置预测模块可使用逻辑运算(诸如移位运算、掩蔽运算)和预加载值来提供给定存储器地址的快速位置预测。这样的位置预测模块可在几个时钟周期内提供预测位置。在一些示例中,位置预测模块可利用硬件表和相关联的逻辑来缩短标识存储器地址分布表223中的模式以预测给定存储器地址的位置的时间。存储器地址分布表300和400在这里仅仅是为了说明性的目的而示出的。各种其它技术可被用来产生用于预测一个或多个存储器地址的位置的存储器地址分布表。
[0049]图5是说明根据本公开的至少一些实施例布置的另一示例多核处理器装置500的示意图。多核处理器装置500可包括诸如由参考数字502、504、506、508、510、512、514和516表示的多个核。多核处理器装置500还可包括诸如由参考数字518、520、522、524、526、528,530和532表示的多个路由器,这些路由器耦合到它们对应的核502、504、506、508、510、512、514 和 516。路由器 518、520、522、524、526、528、530 和 532 可被配置为促进多个核 502、504、506、508、510、512、514 和 516 之间的通信。
[0050]这里,路由器518、520、522、524、526、528、530和532按矩阵形式布置,并且形成网格网络。应指出,路由器和核的以上配置仅仅是为了说明性的目的。可设想路由器和核的各种其它的布置。例如,一个路由器可耦合到多个核,或者多个路由器可耦合到一个核。
[0051]在该示例实施例中,每个核(例如,核502)可包括处理器534,并且可与一个或多个片上高速缓存(诸如L1高速缓存536和L2高速缓存538)相关联。在一些示例中,可存在附加的片上共享高速缓存。本技术可适用于具有存储数据的本地高速缓存和共享高速缓存的不同配置的各种多核处理器。而且,路由器中的每个(例如,路由器518)可包括存储器地址的诸如参考数字540所表示的存储器地址分布表(或者其子集),所述存储器地址是被耦合到对应路由器518的输出连接路径(诸如连接路径542和544)的核(诸如核504和510)中的一个或多个核的多个片上高速缓存存储的存储器地址。存储器地址分布表(诸如表540)可由每个路由器(例如,路由器518)维护,并且可被用来预测给定存储器地址的位置。
[0052]在一些不例实施例中,存储器地址分布表540可包括关于存储在核中的一个或多个核上的存储器地址的概率信息。将参照图6来更详细地描述存储器地址分布表540的产生的细节。在一个示例中,存储器地址分布表540可包括Bloom过滤器,其充当指示给定存储器地址是否被存储在耦合到对应路由器(例如,路由器518)的一个或多个输出连接路径(诸如连接路径542和544)的核(诸如核504和510)中的一个或多个核上的数据结构。在一些示例中,附加的硬件逻辑可被用来当相关联的高速缓存的内容被更新时执行对Bloom过滤器的更新。在一个实施例中,附加的硬件逻辑可驻留在每个路由器中。在一些其它示例中,附加的硬件逻辑可驻留在耦合到每个路由器的核中。在一些示例中,线程可在耦合到每个路由器的核上被执行以更新Bloom过滤器。因此,路由器518、520、522、524、526、528、530和532中的每个维护每个输出连接路径处的关于存储在从相应的输出链路路径可到达的核上的存储器地址的信息。
[0053]在操作期间,可将请求发送到可被指示为给定存储器地址的可能的位置的核,并且可接收来自这些核中的一个的响应。然后可从相应的核访问给定存储器地址。
[0054]在一些示例实施例中,所述多个路由器中的每个(诸如路由器518)可被配置为将存储器地址分布表(例如,表540)发送到与耦合到对应路由器(路由器518)的输出连接路径(例如,连接路径542和544)的核(诸如核504和510)相关联的其它路由器(诸如路由器520和526)。可动态地更新链接到每个路由器的存储器地址分布表540,并且可利用存储器地址分布表540来预测访问的存储器地址的位置。
[0055]如以上所讨论的,每个路由器可维护用于相关联的核的被高速缓存的内容的Bloom过滤器。当信息针对每个路由器被更新时,可将该信息传播到其它邻近的路由器。每个路由器可用关于邻近对应的路由器的核的信息以及对这样的信息的每次更新来维护存储器分布表的一部分,可将更新传播到邻近核。在一些示例实施例中,所述多个路由器中的每个可以以不同的精度级别来维护多个存储器地址分布表,并且这样的表可被用来预测给定存储器地址。
[0056]存储器分布表的产生:以上说明的示例实施例描述了具有多个路由器的多核处理器装置。每个路由器可维护存储器分布表以供用于预测给定存储器地址的被高速缓存的位置。可通过监视输入和输出通过多核处理器装置的每个路由器的路由来产生存储器分布表。
[0057]图6说明根据本文中所述的至少一些实施例布置的、图5的多核处理器装置500的示例路由器。如所示,多个输入请求(诸如由参考数字602、604、606和608表示)和多个输出请求(诸如由参考数字610、612、614和616表示)可通过路由器518被路由。可监视输入请求602、604、606和608以及输出请求610、612、614和616的这样的路由,并且可利用该路由来产生路由器518的存储器地址分布表540。
[0058]可对输入请求602、604、606和608以及输出请求610、612、614和616进行分析以监视通过路由器518发送和/或接收(即,传送)数据的核的核标识编号。通过路由器518传送的数据的片上位置可被用来产生对应路由器的存储器地址分布表。在各种示例实施例中,存储器地址分布表可包括概率分布。在一些不例实施例中,存储器地址分布表可包括Bloom过滤器。
[0059]如上所述,所述多个路由器中的每个(诸如路由器518)可被配置为将存储器地址分布表(例如,表540)发送到与耦合到
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1