• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 48
    • 下载费用:30 金币  

    哪里有重庆时时彩群: 多个处理器系统中的互连环形网络.pdf

    关 键 词:
    处理器 系统 中的 互连 环形 网络
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201410102655.X

    申请日:

    2014.01.16

    公开号:

    CN103970712A

    公开日:

    2014.08.06

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 15/173申请日:20140116|||公开
    IPC分类号: G06F15/173; G06F12/08 主分类号: G06F15/173
    申请人: 马维尔国际贸易有限公司
    发明人: E·乔舒亚; S·查普曼; E·阿密特; N·米兹拉希; M·拉兹; H·卡谢布恩; A·施米洛维施; S·贾米尔; F·奥布伦斯
    地址: 巴巴多斯圣米加勒
    优先权: 2013.01.16 US 61/753,094; 2013.01.16 US 61/753,091; 2014.01.15 US 14/155,773
    专利代理机构: 北京市金杜律师事务所 11256 代理人: 酆迅
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410102655.X

    授权公告号:

    ||||||

    法律状态公告日:

    2018.07.13|||2016.02.17|||2014.08.06

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明的各实施方式总体上涉及一种多个处理器系统中的互连环形网络。具体地,在各种实施方式中,本发明提供了一种系统,包括第一多个处理内核,第一多个处理内核,其中多个处理内核耦合到第一多个内核接口??橹械南嘤δ诤私涌谀??,第一多个内核接口??楸慌渲梦詈弦孕纬纱砟诤说牡谝换沸瓮?;第二多个处理内核,其中多个处理内核耦合到第二多个内核接口??橹械南嘤δ诤私涌谀??,第二多个内核接口??楸慌渲梦詈弦孕纬纱砟诤说牡诙沸瓮?;第一全局接口???,用于形成第一环形网络与第三环形网络之间的接口;以及第二全局接口???,用于形成第二环形网络和第三环形网络之间的接口。

    权利要求书

    权利要求书
    1.  一种系统,包括:
    第一多个处理内核,所述第一多个处理内核中的多个处理内核耦合到第一多个内核接口??橹械南嘤δ诤私涌谀??,所述第一多个内核接口??楸慌渲梦詈弦孕纬纱砟诤说牡谝换沸瓮?;
    第二多个处理内核,所述第二多个处理内核中的多个处理内核耦合到第二多个内核接口??橹械南嘤δ诤私涌谀??,所述第二多个内核接口??楸慌渲梦詈弦孕纬纱砟诤说牡诙沸瓮?;
    第一全局接口???,被配置为通过在所述第一环形网络与第三环形网络之间传输数据以形成所述第一环形网络与所述第三环形网络之间的接口,所述第三环形网络将所述第一环形网络和所述第二环形网络互连;以及
    第二全局接口???,被配置为通过在所述第二环形网络与所述第三环形网络之间传输数据以形成所述第二环形网络和所述第三环形网络之间的接口。

    2.  根据权利要求1所述的系统,还包括:
    多个高速缓存,所述第一多个处理内核和所述第二多个处理内核中的多个处理内核耦合到所述多个高速缓存中的相应高速缓存。

    3.  根据权利要求2所述的方法,其中所述多个高速缓存中的第一高速缓存被耦合到所述第一多个处理器中的第一处理器,所述第一高速缓存被配置为通过旁路所述第一环形网络和所述第二环形网络由所述第一处理器访问。

    4.  根据权利要求3所述的系统,其中所述第一高速缓存被配置为经由所述第一环形网络由所述第一多个处理器中的第二处理器访问。

    5.  根据权利要求4所述的系统,其中所述第一高速缓存被配置为,经由(i)所述第二环形网络、(ii)所述第三环形网络以及(iii)所述第一环形网络,由所述第二多个处理器的第三处理器访问。

    6.  根据权利要求2所述的系统,其中所述多个高速缓存中的多个高速缓存被包括或耦合到所述第一多个内核接口??楹退龅诙喔瞿诤私涌谀?橹邢嘤Φ囊桓瞿诤私涌谀??。

    7.  根据权利要求2所述的系统,其中:
    所述第一多个处理器的第一处理器被耦合到所述多个高速缓存的第一高速缓存;
    所述第一多个处理器的第二处理器被耦合到所述多个高速缓存的第二高速缓存;
    所述第二多个处理器的第三处理器被耦合到所述多个高速缓存的第三高速缓存;以及
    所述第一处理器被配置为,(i)通过旁路所述第一环形网络和所述第二环形网络访问所述第一高速缓存,以读取来自所述第一高速缓存的第一数据,(ii)经由所述第一环形网络访问所述第二高速缓存,以读取来自所述第二高速缓存的第二数据,以及(iii)经由所述第一环形网络、所述第二环形网络和所述第三环形网络访问所述第三高速缓存,以读取来自所述第三高速缓存的第三数据。

    8.  根据权利要求2所述的系统,其中:
    所述第一多个处理器的第一处理器被耦合到所述多个高速缓存的第一高速缓存;
    所述第一多个处理器的第二处理器被耦合到所述多个高速缓存的第二高速缓存;
    所述第二多个处理器的第三处理器被耦合到所述多个高速缓存的第三高速缓存;以及
    所述第一处理器被配置为:(i)访问所述第一高速缓存以读取来自所述第一高速缓存的第一数据,(ii)响应于所述第一数据没有被高速缓存在所述第一高速缓存中,访问所述第二高速缓存以读取来自所述第二高速缓存的所述第一数据,以及(iii)响应于所述第一数据没有被高速缓存在所述第一高速缓存和第二高速缓存中,访问所述第三高速缓存以读取来自所述第三高速缓存的所述第一数据。

    9.  根据权利要求8所述的系统,其中:
    所述第一处理器被进一步配置为,响应于所述第一数据没有被高速缓存在 所述第一高速缓存、所述第二高速缓存和所述第三高速缓存中,访问耦合到所述第一环形网络和所述第二环形网络之一的存储器,以读取来自所述存储器的所述第一数据。

    10.  根据权利要求1所述的系统,还包括:
    第三多个处理内核,所述第三多个处理内核中的多个处理内核耦合到第三多个内核接口??橹械南嘤δ诤私涌谀??,所述第三多个内核接口??楸慌渲梦詈弦孕纬纱砟诤说牡谒幕沸瓮?;以及
    第三全局接口???,配置为形成所述第三环形网络与所述第四环形网络之间的接口。

    说明书

    说明书多个处理器系统中的互连环形网络
    相关申请的交叉引用
    本申请要求于2013年1月16日提交的美国临时专利申请No.61/753,091,以及于2013年1月16日提交的美国临时专利申请No.61/753,094的优先权,上述申请的全部说明通过引入并入本文。
    技术领域
    本公开的各实施例涉及计算系统,更具体地,涉及多处理器系统的架构。
    背景技术
    除非这里另外指出,否则这部分中所描述的方法并不构成针对本公开中的权利要求书的现有技术也并不被认可通过由于包括在该部分之中而作为现有技术。
    多处理器系统通常包括多个处理器。多处理器系统还可以包括多个高速缓存。在一个示例中,高速缓存可以仅由所述多个处理器中的相应的一个处理器来访问。在另一示例中,高速缓存可以被共享,即,可以由一个以上的所述多个处理器访问。
    概述
    在各种实施方式中,本发明公开了一种系统,包括第一多个处理内核,所述第一多个处理内核中的多个处理内核耦合到第一多个内核接口??橹械南嘤Φ哪诤私涌谀??,所述第一多个内核接口??榕渲梦詈弦孕纬纱砟诤说牡谝换沸瓮?;第二多处理内核,所述第二多个处理内核中的多个处理内核耦合到第二多个内核接口??橹械南嘤Φ哪诤私涌谀??,所 述第二多个内核接口??榕渲梦詈弦孕纬纱砟诤说牡诙沸瓮?;第一全局接口???,配置为通过在所述第一环形网络和第三环形网络中发送数据以形成所述第一环形网络和第三环形网络之间的接口,所述第三环形网络将所述第一环形网络和第二环形网络互连;和第二全局接口???,配置为通过在所述第二环形网络和第三环形网络之间传输数据以形成所述第二环形网络和第三环形网络的接口。在一个实施例中,所述系统还包括多个高速缓存,所述第一多个处理内核和第二多个处理内核耦合到所述多个高速缓存中的相应的高速缓存中。在一个实施例中,所述多个高速缓存中的第一高速缓存被耦合到所述第一多个处理器中的第一处理器,所述第一高速缓存配置为由所述第一处理器通过旁路所述第一环形网络和第二环形网络访问。在一个实施例中,所述第一高速缓存配置为由所述第一多个处理器中的第二处理器经由第一环形网络访问。在一个实施例中,所述第一高速缓存配置为由所述第二多个处理器的第三处理器通过(i)所述第二环形网络、(ii)所述第三环形网络、以及(iii)所述第一环形网络访问。在一个实施例中,所述多个高速缓存中的一些包括在或耦合到所述第一多个内核接口??楹偷诙喔瞿诤私涌谀?橹邢嘤Φ囊桓瞿诤私涌谀??。在一个实施例中,所述第一多个处理器中的第一处理器耦合到所述多个高速缓存中的第一高速缓存;所述第一多个处理器中的第二处理器耦合到所述多个高速缓存中的第二高速缓存;所述第二多个处理器的第三处理器耦合到所述多个高速缓存中的第三高速缓存;以及所述第一处理器被配置为(i)通过旁路所述第一环形网络和第二环形网络访问第一高速缓存,以从所述第一高速缓存中读取第一数据,(ii)通过所述第一环形网络,连接所述第二高速缓存以从所述第二缓存中读取第二数据,以及(iii)通过所述第一环形网络、第二环形网络和第三环形网络访问第三缓存以从所述第三高速缓存中读取第三数据。在一个实施例中,所述第一多个处理器中的第一处理器耦合到所述多个高速缓存中的第一高速缓存;所述第一多个处理器中的第二处理器耦合到所述多个高速缓存中的第二高速缓存;所述第二多个处理器中的第三处理器耦合到所述多个高速缓存中的第三高 速缓存;所述第一处理器被配置为(i)访问第一高速缓存,以从所述第一高速缓存中读取第一数据,(ii)响应于所述第一数据没有被高速缓存在第一高速缓存中,访问第二高速缓存以从第二高速缓存中读取所述第一数据,以及(iii)响应于所述第一数据没有被高速缓存在所述第一高速缓存和第二高速缓存中,访问第三高速缓存以从第三高速缓存中读取第一数据。在一个实施例中,所述第一处理器被进一步配置为,响应于所述第一数据没有被高速缓存在所述第一高速缓存、第二高速缓存和第三高速缓存中,访问耦合到所述第一环形网络和第二环形网络中的的存储器以从所述存储器中读取所述第一数据。在一个实施例中,所述系统还包括:第三多处理内核,所述多个第三处理核耦合到第三多内核接口??橹械南嘤Φ哪诤私涌谀??,所述第三多内核接口??榕渲梦詈弦孕纬傻谒幕沸瓮?;和第三全局接口???,配置为形成所述第三环形网络和第四环形网络之间的接口。
    在各种实施方式中,本发明公开一种方法,包括:通过耦合到第一多内核接口??橹械南嘤Φ囊桓龅亩喔龅谝欢啻砟诤?,与所述第一多内核接口??榈南嘤δ诤私涌谀?橥ㄐ?,所述第一多内核接口??楸徊贾迷诘谝换沸瓮缰?;通过耦合到相应的多个第二多内核接口??榈亩喔龅诙啻砟诤?,与所述多个第二内核接口??榈南嘤δ诤私涌谀?橥ㄐ?,所述多个第二内核接口??楸徊贾迷诘诙沸瓮缰?;通过在所述第一环形网络和所述第三环形网络中传输数据,由第一全局接口??榻龅谝换沸瓮绾偷谌沸瓮缃涌诹?,所述第三环形网络互连到所述第一环形网络和所述第二环形网络;和通过在所述第二环形网络和第三环形网络之间传输数据,由第二全局接口??榻龅诙吠偷谌沸瓮缃涌诹?。在一个实施例中,所述第一多处理内核和第二多处理内核中的多个被耦合到所述多个高速缓存中的相应高速缓存中,该方法还包括:由多个所述多个高速缓存与一个或多个所述第一多处理内核和第二多处理内核通信。在一个实施例中,所述多个高速缓存中的第一高速缓存被耦合到所述第一多处理器中的第一处理器,所述方法还包括:通过旁路所述第一环形 网络和第二环形网络由所述第一处理器访问所述第一高速缓存。在一个实施例中,所述方法进一步包括:由所述第一多处理器中的第二处理器通过所述第一环形网络访问所述第一高速缓存。在一个实施例中,所述方法进一步包括:由所述第二多处理器中的第三处理器,通过(i)所述第二环形网络,(ii)所述第三环形网络,以及(iii)所述第一环形网络访问所述第一高速缓存。在一个实施例中,所述方法进一步包括:耦合多个所述多个高速缓存至所述第一多个内核接口??楹偷诙喔瞿诤私涌谀?橹邢嘤Φ囊桓瞿诤私涌谀??。在一个实施例中,所述第一多处理器的第一处理器耦合到所述多个高速缓存中的第一高速缓存,所述第一多处理器的第二处理器耦合到所述多个高速缓存中的第二高速缓存,所述第二多处理器的第三处理器耦合到所述多个高速缓存中的第三高速缓存,所述方法还包括:通过旁路所述第一环形网络和第二环形网络,由所述第一处理器访问第一高速缓存以从所述第一高速缓存中读取第一数据;经由所述第一环形网络由所述第一处理器访问所述第二高速缓存,以从所述第二高速缓存中读取第二数据;以及经由所述第一环形网络、第二环形网络和第三环形网络由所述第一处理器访问所述第三高速缓存,以从所述第三高速缓存中读取第三数据。在一个实施例中,所述第一多处理器中的第一处理器被耦合到所述多个高速缓存中的第一高速缓存,所述第一多处理器中的第二处理器被耦合到所述多个高速缓存中的第二高速缓存,所述第二多处理器的第三处理器被耦合到所述多个高速缓存中的第三高速缓存,该方法还包括:由所述第一处理器访问所述第一高速缓存以从所述第一高速缓存读取第一数据;响应于所述第一数据没有被缓存在所述第一高速缓存中,由所述第一处理器访问所述第二高速缓存以从所述第二高速缓存中读取第一数据;以及响应于所述第一数据没有被缓存在所述第一高速缓存和第二高速缓存中,由所述第一处理器访问所述第三高速缓存以从所述第三高速缓存中读取第一数据。在一个实施例中,响应于所述第一数据没有被缓存在所述第一高速缓存、第二高速缓存和第三高速缓存中,由所述第一处理器访问耦合到所述第一环形网络和第二环形网络上的存储器来从所述存储器 中读取第一数据。在一个实施例中,所述方法还包括:由耦合到第三多内核接口??橹械南嘤Χ喔龅亩喔龅谌啻砟诤?,与所述第三多内核接口??橹械南嘤Φ哪诤私涌谀?橥ㄐ?,所述第三多内核接口??椴贾迷诘谒幕沸瓮?;和通过第三全局接口???,在所述第四环形网络和第三环形网络之间接口连接。
    在各种实施方式中,本发明公开了一种系统,包括:多个处理内核;多个内核接口???,其中多个所述多个处理内核被耦合到所述多内核接口??橹械南嘤Φ哪诤私涌谀??;多个高速缓存,其中多个所述多内核接口??榘ɑ蝰詈系剿龆喔龈咚倩捍嬷械南嘤Φ母咚倩捍嬷?;存储器;以及耦合到所述存储器的存储器接口???,所述存储器接口??楹退龆喔瞿诤私涌谀?楸慌渲梦谝换沸瓮?,多个所述多内核接口??榕渲梦ü谒鱿嘤Φ拇砗撕退龅谝换沸瓮缰浯涫萁鱿嘤Φ拇砟诤私涌诹又了龅谝换沸瓮?,并且所述存储器接口??楸慌渲贸赏ü谒龃娲⑵骱退龅谝换沸瓮缰浯涫萁龃娲⑵鹘涌诹又了龅谝换沸瓮?。在一个实施例中,所述系统还包括:全局接口???,配置为通过在第一环形网络和第二环形网络之间传输数据而在第一环形网络和第二环形网络之间建立连接,该第二环形网络与第一环形网络隔离。在一个实施例中,存储在所述存储器中的第一地址的数据被缓存到所述第一环形网络的多个高速缓存中的一个或多个高速缓存中。在一个实施例中,所述多个内核接口??榈牡谝荒诤私涌谀?槭撬龃娲⑵鞯牡谝坏刂返谋镜亟涌谀??,以使得所述第一内核接口??楸A舾咚倩捍嬉恢滦孕畔?,该一致性信息与维护存储在存储器第一地址中数据的一致性相关,第一内核接口??榘ǎ河糜谑侗鸨慌渲梦娲⒃谒龃娲⑵髦械牡谝坏刂返母咚倩捍媸莸亩喔龈咚倩捍嬷械囊桓龌蚨喔龈咚倩捍娴谋?。在一个实施例中,所述多个内核接口??榈牡谝荒诤私涌谀?槲び氪娲⒃谒龃娲⑵髦械牡谝坏刂返氖菹喙亓母咚倩捍嬉恢滦孕畔?,所述第一内核接口??榘ǎ河糜谑侗鹚龆喔龃砟诤说囊桓龌蚨喔龃砗说谋?,使得对应于所述一个或多个处理核的一个或多个高速缓存被配置为缓 存在所述存储器的第一地址中存储的数据,该表是可以用来在多个高速缓存中维护存储在存储器第一地址中数据的一致性。在一个实施例中,所述第二环形网络被配置为在所述第一环形网络和第三环形网络之间建立连接,其中所述多个高速缓存是第一多个高速缓存,其中第一内核接口??槲び氪娲⒃诖娲⑵鞯谝坏刂分惺菹喙亓母咚倩捍嬉恢滦孕畔?,该系统进一步包括:第二多个高速缓存,耦合到所述第三环形网络并与所述第三环形网络相关联,其中所述第一内核接口??榛拱ㄒ桓鍪荼?,该数据表用于识别所述多个第二高速缓存中的至少一个高速缓存是否被配置为缓存存储在所述存储器的第一地址中的数据。在一个实施例中,所述第一内核接口??樾纬稍谒龅谝换沸瓮缰杏糜谒龃娲⑵鞯牡谝坏刂返谋镜亟涌谀??,使得所述第一内核接口??槲钟胛执娲⒃谒龃娲⑵鞯牡谝坏刂分械氖莸囊恢滦韵喙亓母咚倩捍嬉恢滦孕畔?。在一个实施例中,所述存储器接口??楸慌渲贸纱泶娲⑵鞣梦是肭?,该请求通过处理核以访问存储器,从而通过处理核来从存储器中读取数据。在一个实施例中,选择性地多个所述多个内核接口??橹苯玉詈系剿龆喔龈咚倩捍嬷械南嘤Ω咚倩捍嬷?,使得多个所述多个内核接口??橥ü月匪龅谝换沸瓮绶梦矢枚喔龈咚倩捍嬷械南嘤Ω咚倩捍?。在一个实施例中,所述系统还包括:输入/输出接口???,配置成耦合到所述第一环形网络。在一个实施例中,所述输入/输出接口??榛贡慌渲梦ü谒龅谝换沸瓮绾鸵桓龌蚨喔鍪淙?输出设备之间传输数据,以形成所述第一环形网络和一个或多个输入/输出设备之间的接口。
    在各种实施方式中,本发明公开一种方法,包括:由耦合到多个内核接口??橹械南嘤Φ亩喔龃砟诤酥械亩喔龃砟诤擞胨龆喔瞿诤私涌谀?橹械南嘤δ诤私涌谀?橥ㄐ?;由耦合到多个高速缓存中相应的一个高速缓存的多个内核接口??橹械亩喔瞿诤私涌谀?橛胨龆喔龈咚倩捍嫦嘤Φ母咚倩捍嫱ㄐ?;以及,由存储器接口??橛腭詈系礁么娲⑵鹘涌谀?榈拇娲⑵魍ㄐ?,所述存储器接口??楹退龆喔瞿诤私涌谀?楸慌渲梦谝换沸瓮?,所述多个内核接口??橹械亩喔瞿诤私涌谀?榕渲梦?过在所述相应的处理核和所述第一环形网络之间传输数据将所述相应的处理内核接口连接至所述第一环形网络,所述存储器接口??榕渲梦ü谒龃娲⑵骱退龅谝换沸瓮缰浯涫萁龃娲⑵鹘涌诹又了龅谝换沸瓮?。在一个实施例中,所述方法进一步包括:通过全局接口??橛攵喔鏊龆嗄诤私涌谀?橥ㄐ?,所述全局接口??榕渲梦ü谒龅谝换沸瓮绾偷诙沸瓮缰浯涫萁龅谝换沸瓮绾偷诙沸瓮缰浣涌诹?,所述第二环形网络与所述第一环形网络分离。在一个实施例中,所述方法还包括:缓存存储在所述多个高速缓存中的一个或多个高速缓存中的所述存储器的第一地址的数据。在一个实施例中,所述多个内核接口??榈牡谝荒诤私涌谀?槭怯糜谒龃娲⑵鞯谝坏刂返谋镜亟涌谀??,使得所述第一内核接口??槲び氪娲⒃谒龃娲⑵髦械牡谝坏刂返氖菹喙亓母咚倩捍嬉恢滦孕畔?,所述方法还包括:在第一内核接口???,维护一个数据表,该表被配置为缓存存储在所述存储器第一地址的数据的所述多个高速缓存的一个或多个高速缓存。在一个实施例中,所述多个内核接口??榈牡谝荒诤私涌谀?槭怯糜谒龃娲⑵鞯牡谝坏刂返谋镜亟涌谀??,使得所述第一内核接口??槲び氪娲⒃谒龃娲⑵髦械牡谝坏刂返氖菹喙亓母咚倩捍嬉恢滦孕畔?,所述方法还包括:在所述第一内核接口???,维护识别所述多个处理核的一个或多个处理核使得对应于所述一个或多个处理核的一个或多个高速缓存被配置为缓存存储在所述存储器的第一地址的数据的表,所述表用于在多数多个高速缓存中维护存储在所述存储器第一地址中数据的一致性。在一个实施例中,所述第二环形网络被配置为在所述第一环形网络和第三环形网络之间接口连接,其中所述多个高速缓存是第一多个高速缓存,其中第二多个高速缓存耦合到所述第三环形网络并与所述第三环形网络相关联,且其中第一内核接口??槲び氪娲⒃谒龃娲⑵髦械牡谝坏刂返氖菹喙亓母咚倩捍嬉恢滦孕畔?,所述方法还包括:在所述第一内核接口???,维护识别所述第二高速缓存中的至少一个是否被配置为缓存存储在所述存储器的第一地址中的数据的表。在一个实施例中,所述方法还包括:由所述 存储器接口??榇泶娲⑵鞣梦是肭笠苑梦仕龃娲⑵?,以由来自所述存储器的处理核读取数据。在一个实施例中,所述方法还包括:由多个所述多个内核接口???,与输入/输出接口??橥ㄐ?,所述输入/输出接口??榕渲梦詈系剿龅谝换沸瓮?。所述方法还包括:由所述输入/输出接口??橥ü谒龅谝换沸瓮绾退鲆桓龌蚨喔鍪淙?输出设备之间传输数据将所述第一环形网络和一个或多个输入/输出设备接口连接。
    在各种实施方式中,本发明公开了一种方法,包括:由多个处理内核中的多个处理内核与多个内核接口??榈南嘤Φ哪诤私涌谀?橥ㄐ?,所述多个内核接口??楸慌渲梦谝换沸瓮?,其中所述多个内核接口??橹械亩喔瞿诤私涌谀?楸获詈系剿舳喔龈咚倩捍嬷邢嘤Φ母咚倩捍?;由所述多个内核接口??榈牡谝荒诤私涌谀?榇铀龆喔龃砟诤说南喽杂Φ牡谝淮砗私邮帐挛袂肭笠远寥∈?;由所述第一内核接口??榧觳?,要被读出的数据是否被缓存在被耦合到所述第一内核接口??榈牡谝桓咚倩捍嬷?;并且如果检查出被读出的数据被缓存在第一高速缓存中,则由所述第一内核接口??榇湟滴袂肭笾恋诙诤私涌谀?橐约觳橐欢脸龅氖菔欠窕捍嬖隈詈现了龅诙诤私涌谀?榈牡诙咚倩捍嬷?。在一个实施例中,发送该事务请求到所述第二内核接口??榻徊桨ǎ憾懒⒂诮寥〉氖菔欠癖桓咚倩捍嬖谒龅谝桓咚倩捍嬷?,由所述第一内核接口??榉⑺透檬挛袂肭蟮剿龅诙诤私涌谀?橐耘卸辖寥〉氖菔欠癖换捍嬖谒龅诙捍嬷?。
    在一个实施例中,发送该事务请求到所述第二内核接口??榻徊桨ǎ喝范ń寥〉氖萦氪娲⑵鞯牡谝淮娲⑵鞯刂废喙亓?;确定所述第二内核接口??槭撬龃娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??;以及响应于确定所述第二内核接口??槭怯糜谒龃娲⑵鞯牡谝淮娲⑵鞯刂返乃霰镜亟涌谀??,发送所述事务请求至所述第二内核接口???,以检查将被读取数据是否被缓存在所述第二高速缓存中。在一个实施例中,确定所述第二内核接口??槭怯糜谒龃娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀?榻徊桨ǎ喝范ㄋ龅诙诤私涌谀?榇娲⒘擞朐谒龃娲⑵鞯牡谝淮?储器地址的数据的相关联的信息;以及响应于确定所述第二内核接口??榇娲⒘擞氪娲⒃谒龃娲⑵鞯牡谝淮娲⑵鞯刂返氖莞咚倩捍嬉恢滦韵喙亓男畔?,确定所述第二内核接口??槭怯糜谒龃娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??。在一个实施例中,所述方法进一步包括:响应于检查将要读取的数据是否被缓存在第一高速缓存中,由所述第一内核接口??槿范ń寥〉氖荼桓咚倩捍嬖诘谝桓咚倩捍嬷?;由第一内核接口??榇铀龅谝桓咚倩捍嬷卸寥∈?;由所述第一内核接口??榇铀龅诙诤私涌谀?榻邮障煊?,所述响应指示将被读取的数据不是缓存在第二高速缓存中;并且随后,从所述第二内核接口??榻邮罩甘?,该指示用于表明要读取的数据没有被缓存在第二缓存中的响应,由所述第一内核接口??榉⑸浯拥谝桓咚倩捍嬷卸寥〉氖莸剿龅谝淮砗?。在一个实施例中,所述方法进一步包括:响应于检查将要读取的数据是否被缓存在第一高速缓存中,由所述第一内核接口??槿范ń寥〉氖莶皇腔捍嬖诘谝桓龈咚倩捍嬷?,其中将要读取的数据被缓存在第二缓存中;由所述第二内核接口??槎寥±醋运龅诙咚倩捍娴氖?,并且由所述第二内核接口??榫傻谝荒诤私涌谀?榉⑺痛拥诙咚倩捍娑脸龅氖葜恋谝淮砟诤?。该方法进一步包括:确定将要读取的数据不是缓存在第一高速缓存和第二高速缓存的任一个中;以及响应于确定要被读出的数据不是缓存在第一高速缓存和第二高速缓存的任一个中,发送所述事务请求到第三内核接口???,以检查将要读取的数据是否被缓存在耦合到所述第三内核接口??榈牡谌咚倩捍嬷?。该方法进一步包括:(i)响应于确定要被读出的数据不是缓存在第一高速缓存和第二高速缓存的任一个中,和(ii)当发送事务请求到第三内核接口??槭?,发送所述事务请求到第四内核接口???,以检查将要读取的数据是否被缓存在耦合到所述第四内核接口??榈牡谒母咚倩捍嬷?。在一个实施例中,所述多个内核接口??榘ǎ?i)所述第一内核接口???,(ii)所述第二内核接口???,以及(iii)一个或多个其他内核接口???,并且其中所述方法还包括:确定要读取的数据不是缓存在第一高速缓存和第二高速缓存的任一个中;以及响应于确定要被 读取的数据没有被缓存在第一高速缓存和第二高速缓存的任一个中,发送所述事务请求至所述一个或多个其他内核接口??榈拿恳桓?,以判断将要读取的数据是否被缓存在分别耦合到所述一个或多个其他内核接口??榈囊桓龌蚨喔銎渌咚倩捍嬷?。该方法进一步包括:确定将要读取的数据不是缓存在一个或多个其它高速缓存的任一个中;以及响应于确定要被读出的数据不是被缓存在以下任一个中(i)所述第一高速缓存,(ii)所述第二高速缓存,以及(iii)一个或多个其他高速缓存,发送事务请求至存储器接口??槔创颖获詈系剿龃娲⑵鹘涌谀?榈拇娲⑵髦凶ト∈?。该方法进一步包括:响应于发送所述事务请求至存储器接口???,通过存储器接口??榇铀龃娲⑵髦凶ト∈?;并且发送从存储器读出的数据到所述第一处理核。该方法进一步包括:操作启发式算法,该算法保证了将要读取的数据被缓存在所述第一高速缓存和第二高速缓存中概率高的一个或两个。
    在各种实施方式中,本发明提供了一种系统,包括:多个处理内核;和多个内核接口???,所述多个多处理内核耦合到所述多个内核接口??橹械南嘤Φ哪诤私涌谀??,其中多个内核接口??橹械亩喔瞿诤私涌谀?橛攵喔龈咚倩捍嬷械南嘤Ω咚倩捍嫦喙亓?,其中所述多个内核接口??榈牡谝荒诤私涌谀?轳詈系剿龆喔龃砟诤说南喽杂Φ牡谝淮砟诤?,其中所述多个内核接口??楸慌渲梦谝换沸瓮?,其中所述第一内核接口??楸慌渲梦铀龅谝淮砟诤私邮斩寥∈莸氖挛袂肭?,检查以确定将要读取的数据是否被缓存在耦合到所述第一内核接口??榈牡谝桓咚倩捍嬷?,且当检查以确定将要读取的数据是被缓存在第一高速缓存中时,发送事务请求到第二内核接口???,以检查将要读取的数据是否被缓存在耦合到所述第二内核接口??榈牡诙咚倩捍嬷?。在一个实施例中,所述第一内核接口??楸慌渲梦ü率龆鞔涓檬挛袂肭笾了龅诙诤私涌谀?椋喝范ㄒ欢脸龅氖萦氪娲⑵髦械牡谝淮娲⑵鞯刂废喙亓?;确定所述第二内核接口??槭谴娲⑵鞯牡谝桓龃娲⑵鞯刂返谋镜亟涌谀??;响应于确定所述第二内核接口??槭谴娲⒌牡谝淮娲⑵鞯刂返谋镜亟?口???,发送所述事务请求至所述第二内核接口??橐约觳榻寥〉氖菔欠癖换捍嬖谒龅诙咚倩捍嬷?。在一个实施例中,所述第一内核接口??榻徊奖慌渲梦合煊τ诩觳榻寥〉氖菔潜换捍嬖谒龅谝桓咚倩捍嬷?,确定将要读取的数据被缓存在所述第一高速缓存中;从所述第一高速缓存读取所述数据;从所述第二内核接口??榻邮障煊?,所述响应指示将要读取的数据没有被缓存在所述第二高速缓存中;接下来从所述第二内核接口??榻邮罩甘?,该指示表明将要读取的数据没有被缓存在所述第二高速缓存的响应,传输从所述第一高速缓存读取的数据值所述第一处理内核。在一个实施例中,所述第一内核接口??榻徊奖慌渲梦合煊τ诩觳槿绻寥〉氖荼换捍嬖谒龅谝桓咚倩捍嬷?,确定将要读取的数据没有被缓存在所述第一高速缓存中,其中所述第二内核接口??楸慌渲梦铀龅诙咚倩捍娑寥∈?,并且通过所述第一内核接口??榇浯铀龅诙咚倩捍娑寥〉氖葜了龅谝淮砟诤?。在一个实施例中,所述第一内核接口??榻徊奖慌渲梦喝范ń寥〉氖菝挥斜换捍嬖谒龅谝桓咚倩捍婧退龅诙咚倩捍嬷械娜我桓?;和响应于确定将要读取的数据没有被缓存在所述第一高速缓存和所述第二高速缓存中的任一个,传输所述事务请求至第三内核接口??橐约觳榻寥〉氖菔欠癖换捍嬖隈詈系剿龅谌诤私涌谀?榈牡谌咚倩捍嬷?。在一个实施例中,所述第一内核接口??榻徊奖慌渲梦?i)响应于确定将要读取的数据没有被缓存在所述第一高速缓存和所述第二高速缓存中的任一个和(ii)当传输所述事务请求至第三内核接口??槭?,传输所述事务请求至第四内核接口??橐约觳榻寥〉氖菔欠癖换捍嬖隈詈系剿龅谒哪诤私涌谀?榈牡谒母咚倩捍嬷?。在一个实施例中,所述多个内核接口??榘ǎ?i)所述第一内核接口???,(ii)第二内核接口???,和(iii)一个或多个其他内核接口???,其中所述第一内核接口??榻徊奖慌渲梦喝范ㄒ欢脸龅氖莶皇腔捍嬖诘谝桓咚倩捍婧偷诙咚倩捍嬷械娜我桓?;响应于确定要被读出的数据不是缓存在第一高速缓存和第二高速缓存中的任一个,发送所述事务请求至所述一个或多个其他内核接口??榈?每一个,以检查将要读取的数据是否被缓存在分别连接到所述一个或多个其他内核接口??榈囊桓龌蚨喔銎渌捍嬷?;确定要被读出的数据不是缓存在所述一个或多个其它高速缓存的任一个中;以及响应于确定要读取的数据不是缓存在以下任一个:(i)所述第一高速缓存、(ii)所述第二高速缓存以及(iii)一个或多个其它高速缓存,发送所述事务请求至存储器接口??橐源玉詈系剿龃娲⑵鹘涌谀?榈拇娲⑵髯ト∷鍪?。所述第一环形网络包括所述存储器接口???。所述存储器接口??楸慌渲梦合煊τ诮邮账鍪挛袂肭?,从所述存储器中获取所述数据;并且通过所述第一环形网络发送从所述存储器读出的数据至所述第一处理内核。
    在各种实施方式中,本发明提供一种方法,包括:由耦合到第一多个内核接口??榈南嘤σ桓龅亩喔龅谝欢喔龃砟诤擞胨龅谝欢喔瞿诤私涌谀?橄嘤Φ哪诤私涌谀?橥ㄐ?,所述第一多个内核接口??楸徊贾迷诘谝换沸瓮缰?,所述多个第一多内核接口??楸慌渲梦ü谒鱿嘤Υ砟诤撕退龅谝换沸瓮缰屑浯浣鱿嘤Φ拇砟谀诤私涌诹又恋谝换沸瓮?;由耦合到第二多个内核接口??榈亩喔龅诙喔龃砟诤擞胨龅诙喔瞿诤私涌谀?榈南嘤Φ哪诤私涌谀?橥ㄐ?,所述第二多个核处理??楸徊贾糜诘诙沸瓮?,所述第二多个核处理??楸慌渲梦ü谒鱿嘤Φ拇砟诤撕退龅诙沸瓮缰浯涫萁鱿嘤Φ拇砟谀诤私涌诹又了龅诙沸瓮?;由全局环形网络在所述第一环形网络和所述第二环形网络之间接口连接;由所述第一多个内核接口??榈牡谝荒诤私涌谀?榇铀龅谝欢喔瞿诤私涌谀?橄嘤Φ牡谝淮砟诤私邮帐挛袂肭笠远寥∈?,第一高速缓存被耦合到所述第一内核接口???;并且由所述第一内核接口??榇渌鍪挛袂肭笾了龅谝欢喔瞿诤私涌谀?榈牡诙诤私涌谀??,以检查将要读取的数据是否被缓存在耦合到所述第二内核接口??榈牡诙咚倩捍嬷?。传输所述事务请求至所述第二内核接口??榻徊桨ǎ河伤龅谝荒诤私涌谀?橥ü龅谝换沸瓮绱渌鍪挛袂肭笾了龅诙诤私涌谀??。传输所述事务请求至所述第二内核接口??榻徊桨ǎ喝范ń寥〉氖萦氪娲⑵鞯牡?一存储器地址相关联;确定所述第二内核接口??槭怯糜谒龃娲⑵鞯乃龅谝淮娲⑵鞯刂返乃龅谝换沸瓮缰械谋镜亟涌谀??;和响应于确定所述第二内核接口??槭怯糜谒龃娲⑵鞯乃龅谝淮娲⑵鞯刂返乃龅谝换沸瓮缰械谋镜亟涌谀??,传输所述事务请求至所述第二内核接口???。确定所述第二内核接口??槭怯糜谒龃娲⑵鞯乃龅谝淮娲⑵鞯刂返乃龅谝换沸瓮缰械谋镜亟涌谀?榻徊桨ǎ喝范ㄋ龅诙诤私涌谀?樵隈詈系剿龅谝换沸瓮绾偷诙沸瓮绲亩喔龈咚倩捍嬷写娲⒂胛ご娲⒃谒Υ娲⑵鞯牡谝淮娲⑵鞯刂返氖莸母咚倩捍嬉恢滦韵喙亓男畔?;和响应于确定所述第二内核接口??榇娲⒂胛ご娲⒃谒Υ娲⑵鞯牡谝淮娲⑵鞯刂返氖莸母咚倩捍嬉恢滦韵喙亓男畔?,确定所述第二内核接口??槭撬龃娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??。在一个实施例中,所述方法还包括:确定要被读出的数据不是缓存在第二高速缓存中;以及响应于确定要被读出的数据不是缓存在第二高速缓存中,由所述第一内核接口??榇涓檬挛袂肭蟮剿龅诙喔瞿诤私涌谀?榈牡谌诤私涌谀??,以检查将要读取的数据是否被缓存在耦合到所述第三内核接口??榈牡谌咚倩捍嬷?。发送所述事务请求到所述第三内核接口??榻徊桨ǎ河伤龅谝荒诤私涌谀?橥ü龅谝换沸瓮?、所述全局环形网络和所述第二环形网络传输该事务请求至所述第三内核接口???。发送所述事务请求到所述第三内核接口??榻徊桨ǎ喝范ń寥〉氖萦氪娲⑵鞯牡谝淮娲⑵鞯刂废喙亓?;确定所述第三内核接口??槭怯糜诖娲⑵鞯牡谝淮娲⑵鞯牡刂吩谒龅诙沸瓮缰械谋镜亟涌谀??,使得所述第三内核接口??榇娲⒂胛ご娲⒃隈詈系剿龅诙沸瓮绲亩喔龈咚倩捍娴乃龃娲⑵鞯牡谝淮娲⑵鞯刂返氖莸母咚倩捍嬉恢滦韵喙亓男畔?;以及响应于确定所述第三内核接口??槭撬龅诙沸瓮缰械乃龃娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??,传输所述事务请求至所述第三内核接口???。确定将要读取的数据不是缓存在所述第二高速缓存中还包括:响应于传输所述事务请求至所述第二内核接口???,由所述第一内核接口??榻邮绽醋运龅诙诤私涌谀?榈南?应,所述响应指示将要读取的数据不是缓存在所述第二高速缓存中;以及基于所述响应,确定将被读出的数据不是缓存在所述第二高速缓存中。所述方法进一步包括:响应于传输所述事务请求至所述第三内核接口???,确定将要读取的数据不是缓存在所述第三高速缓存中;和响应于确定将要读取的数据不是缓存在所述第三高速缓存中,传输所述事务请求至存储器接口??橐曰袢±醋择詈系剿龃娲⑵鹘涌谀?榈拇娲⑵鞯氖?,所述存储器接口??榕渲梦谒龃娲⑵骱拖嘤Φ幕沸瓮缰浯涫?。所述存储器接口??楸获詈系剿龅谝换沸瓮?,且其中传输所述事务请求至所述存储器接口??榘ǎ和ü龅谝换沸瓮?,传输所述事务请求至所述存储器接口??橐曰袢±醋择詈系剿龃娲⑵鹘涌谀?榈拇娲⑵鞯氖?。所述存储器接口??楸获詈系剿龅诙沸瓮?,且其中传输所述事务请求至所述存储器接口??榘ǎ和ü?i)所述第一环形网络、(ii)所述全局环形网络和(iii)所述第二环形网络,传输所述事务请求至所述存储器接口??橐曰袢±醋择詈系剿龃娲⑵鹘涌谀?榈拇娲⑵鞯氖?。
    在各种实施方式中,本发明公开了一种系统,包括:第一多个处理内核;第一多个内核接口???,多个所述第一多个处理内核被耦合至所述第一多个内核接口??橄嘤Φ哪诤私涌谀??,所述第一多个内核接口??楸徊贾糜诘谝换沸瓮?,多个所述第一内核接口??榕渲梦ü谒鱿嘤Φ拇砟诤撕退龅谝换沸瓮缰浯涫萁龅谝欢喔龃砟诤讼嘤Φ拇砟谀诤私涌诹又了龅谝换沸瓮?;第二多个处理内核;第二多个内核接口???,所述第二多个处理内核耦合到所述第二多个内核接口??榈南嘤Φ哪诤私涌谀??,所述多个第二内核接口??楸徊贾迷诘诙沸瓮?,所述多个第二多个处理内核被配置为通过在所述相应的处理内核所述第二环形网络之间传输数据将所述第二多个处理内核的相应的处理内内核接口连接到所述第二环形网络;和全局环形网络,被配置为在所述第一环形网络和第二环形网络之间接口连接,其中所述第一多个内核接口??榈牡谝荒诤私涌谀?楸慌渲梦?,从所述第一多个处理内核的相应的第一处理内核接收读取数据的事务请求,第一高速缓存被耦合到所述第一 内核接口???,并由所述第一内核接口??榉⑺退鍪挛袂肭蟮剿龅谝欢喔瞿诤私涌谀?榈牡诙诤私涌谀??,以检查要被读出的数据是否被缓存在被耦合到所述第二内核接口??榈牡诙咚倩捍?。所述第一内核接口??楸慌渲梦伤龅谝换沸瓮绶⑺退鼋灰浊肭笾了龅诙诤私涌谀??。所述第一内核接口??楸慌渲梦⑺透檬挛袂肭蟮剿龅诙诤私涌谀??,通过:确定要被读出的数据与存储器的第一存储器地址相关联;确定所述第二内核接口??槭窃诘谝换沸瓮绲拇娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??;以及响应于确定所述第二内核接口??槭窃谒龅谝换沸瓮绲拇娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??,发送所述交易请求至所述第二内核接口???。所述第一内核接口??楸慌渲梦范ㄋ龅诙诤私涌谀?槭窃诘谝换沸瓮绲拇娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??,通过:确定所述第二内核接口??榇娲⒂胛ご娲⒃隈詈系剿龅谝换沸瓮绾偷诙沸瓮绲亩喔龈咚倩捍嬷械乃龃娲⑵鞯牡谝淮娲⑵鞯刂返氖莞咚倩捍嬉恢滦韵喙亓男畔?;以及响应于确定所述第二内核接口??榇娲⒂胛ご娲⒃谒龃娲⑵鞯牡谝淮娲⑵鞯刂返氖莞咚倩捍嬉恢滦韵喙亓男畔?,确定所述第二内核接口??槭怯糜谒龃娲⑵鞯牡谝淮娲⑵鞯刂返谋镜亟涌谀??。所述第一内核接口??榛贡慌渲梦喝范ㄒ欢脸龅氖莶皇腔捍嬖谒龅诙咚倩捍嬷?;以及响应于确定要被读出的数据不是缓存在所述第二高速缓存,发送所述事务请求至所述第二多个内核接口??榈牡谌诤私涌谀??,以检查要被读取的数据是否缓存在耦合到所述第三内核接口??榈牡谌咚倩捍嬷?。所述第一内核接口??楸慌渲梦伤龅谝换沸瓮?、所述全局环形网络和所述第二环形网络发送所述事务请求至所述第三内核接口???。所述第一内核接口??楸慌渲梦范ㄒ欢脸龅氖莶皇潜桓咚倩捍嬖谒龅诙咚倩捍嬷?,通过:响应于发送所述事务请求到所述第二内核接口???,从所述第二内核接口??榻邮障煊?,该响应表示要被读出的数据不是缓存在所述第二高速缓存,以及基于所述响应,确定将被读出的数据不是缓存在所述第二高速缓存中。
    所述第一内核接口??榛贡慌渲梦合煊τ诜⑺退鍪挛袂肭笾了龅谌诤私涌谀??,确定将被读出的数据不是缓存在所述第三高速缓存中;以及响应于确定要读取的数据不是缓存在所述第三高速缓存中,发送所述事务请求至存储器接口??橐蕴崛●詈系剿龃娲⑵鹘涌谀?榈拇娲⑵髦械氖?。在一个实施例中,所述存储器接口??楸获詈系剿龅谝换沸瓮?;所述第一内核接口??楸慌渲梦?,经由所述第一环形网络发送所述事务请求至所述存储器接口???,以提取耦合到所述存储器接口??榈拇娲⑵鞯氖?。
    在一个实施例中,所述存储器接口??楸获詈系剿龅诙沸瓮?;所述第一内核接口??楸慌渲梦?,通过(i)所述第一环形网络、(ii)所述全局环形网络、以及(iii)所述第二环形网络发送所述事务请求至所述存储器接口???,以提取耦合到所述存储器接口??榈拇娲⑵髦械氖?。
    在各种实施方式中,本发明提供了一种系统,包括:存储器;以及耦合到所述存储器的存储器接口???,所述存储器接口??榕渲梦刂贫源娲⑵鞯姆梦?,所述存储器接口??榘ㄇ肭笞楹夏??,其被配置为:接收第一存储器访问请求,以访问存储在所述存储器中的数据;接收第二存储器访问请求,以访问存储在所述存储器中的数据;基于所述第一存储器访问请求和第二存储器访问请求,生成第三存储器访问请求;以及基于所述第三存储器访问请求,访问所述存储器以读取来自所述存储器的数据。在一个实施例中,所述第一存储器访问请求和所述第二存储器访问请求的每一个是访问存储在所述存储器的第一存储器地址的数据。所述请求组合??楸慌渲梦ü楹纤龅谝淮娲⑵鞣梦是肭蠛退龅诙娲⑵鞣梦是肭蠖伤龅谌娲⑵鞣梦是肭?。所述第一存储器访问请求具有第一优先级,其中所述第二存储器访问请求具有不同与所述第一优先级的第二优先级,并且其中所述存储器接口??榛拱ǎ河畔燃斗峙淠??,配置为向所述第三存储器访问请求分配所述第一优先级和第二优先级中的一个。所述第一优先级高于所述第二优先级;以及所述优先级分配??楸慌渲梦?,基于所述第一优先级高于所述第二优先级,向所述第三存储器访问请求分 配所述第一优先级。在一个实施例中,所述第一优先级高于所述第二优先级,使得与所述第二存储器访问请求相比,所述第一存储器访问请求具有较高的执行优先级,其中基于所述存储器访问请求的类型向存储器访问请求分配优先级。在一个实施例中,所述第一存储器访问请求是数据预提取请求,所述第二存储器访问请求是数据读取请求。在一个实施例中,所述第一存储器访问请求和所述第二存储器访问请求的每一个是从第一处理器接收的。在一个实施例中,所述第一存储器访问请求是从所述第一处理器接收的;且所述第二存储器访问请求是从不同于所述第一处理器的第二处理器接收的。在一个实施例中,所述存储器接口???、第一处理器和第二处理器被安排在一个环形网络。在一个实施例中,由所述存储器接口??榻邮账龅诙娲⑵鞣梦是肭螅?i)在接收到所述第一存储器访问请求之后,以及(ii)在由所述存储器接口??槌浞种葱兴龅谝淮娲⑵鞣梦是肭笾?,使得所述第一存储器访问请求和第二存储器访问请求在至少第一时间段内在所述存储器接口??橹卸杂诖硎枪餐淳龅?。
    在各种实施方式中,本发明提供一种方法,包括:由耦合到存储器存储器接口??榻邮盏谝淮娲⑵鞣梦是肭笠苑梦蚀娲⒃谒龃娲⑵髦械氖?,所述存储器接口??榕渲梦刂贫运龃娲⑵鞯姆梦?;由所述存储器接口??榻邮盏诙娲⑵鞣梦是肭笠苑梦蚀娲⒃谒龃娲⑵髦械氖?;基于所述第一存储器访问请求和第二存储器访问请求,生成第三存储器访问请求;以及基于所述第三存储器访问请求,访问所述存储器,以读取所述存储器中的数据。在一个实施例中,接收所述第一存储器访问请求和所述第二存储器访问请求还包括:接收所述第一存储器访问请求和所述第二存储器访问请求,使得所述第一存储器访问请求和所述第二存储器访问请求的每一个是访问存储在所述存储器中的第一存储器地址的数据。生成所述第三存储器访问请求还包括:通过组合所述第一存储器访问请求和所述第二存储器访问请求生成所述第三存储器访问请求。在一个实施例中,所述第一存储器访问请求具有第一优先级,所述第二存储器访问请求具有不同于所述第一优先级的第二优先级,所述方法还包括:向第三存储器访问请 求分配所述第一优先级和第二优先级中的一个。在一个实施例中,所述第一优先级高于所述第二优先级,并且其中向所述第三存储器访问请求分配所述第一优先级和第二优先级的一个还包括:基于所述第一优先级高于所述第二优先级,向所述第三存储器访问请求分配所述第一优先级。在一个实施例中,接收所述第一存储器访问请求和所述第二存储器访问请求还包括:接收所述第一存储器访问请求和所述第二存储器访问请求,使得所述第一存储器存取请求是数据的预提取请求,并且所述第二存储器访问请求是数据读取请求。在一个实施例中,接收所述第一存储器访问请求和所述第二存储器访问请求还包括:从第一处理器接收所述第一存储器访问请求和第二存储器访问请求的每一个。在一个实施例中,接收所述第一存储器访问请求和所述第二存储器访问请求还包括:接收来自第一处理器的所述第一存储器访问请求;和接收来自不同于所述第一处理器的第二处理器的所述第二存储器存取请求。在一个实施例中,接收所述第一存储器访问请求和所述第二存储器访问请求还包括:接收所述第二存储器访问请求,(i)在接收所述第一存储器访问请求以后、以及(ii)在充分执行所述第一存储器访问请求之前,使得第一存储器访问请求和第二存储器访问请求在至少一个第一时间段用于处理所述存储器接口??橹惺枪餐淳龅?。
    附图简要说明
    在下面的详细描述中,附图构成参考,其形成了本发明的一部分,其中相同的标号表示相同的部件,并且其中在附图中通过实施例示出了本发明方法的原理。值得注意的是,可以利用其他实施例,可以在不脱离本发明的精神和范围内做出结构或逻辑上的改变。因此,以下详细描述不应被视为具有限制意义,并且根据本发明实施例的范围由所附权利要求及其等同物限定。
    图1示意性地示出了包括布置在多个环形网络中的多个处理内核的多核处理系统。
    图2示出了包括一个全局环形互连多个本地环的系统。
    图3示出了一个内核接口??榈睦?。
    图4示出了存储在一个示例分布式探听过滤器的入口内容的例子。
    图5示出了一个示例的远程线路目录。
    图6A至图6D示出了示例的读取操作,其中多核处理系统工作在静态映射的高速缓存体系结构模式。
    图6E是一个流程图,示出了一个用于读取操作的示例性方法,其中多核处理系统工作在静态映射的高速缓存体系结构模式。
    图7A至图7D说明了示例读取操作,其中多核处理系统运行在动态映射的高速缓存架构模式。
    图7E是一个流程图,示出了一个用于读取操作的示例性方法,其中多核处理系统工作在动态映射的高速缓存体系结构模式。
    图8示出了一种用于组合多个存储器访问请求的系统。
    图9是一个流程图,示出了用于操作图8的系统的示例方法。
    详细说明
    图1示意性地示出了多核处理系统100(以下称为“系统100”),其包括多个布置在多个环形网络的处理内核(“处理内核”也在本文中被称为“处理器”)。所述多个处理器包括第一多个处理器120a1,...,120a4,和第二多个处理器120b1,...,120b4。在一个实施例中,多个所述多个处理器被耦合到各自的内核接口???。例如,每个处理器120a1,...,120a4,120b1,...,120b4被分别耦合到内核接口???22a1,...,122a4,122b1,...,122b4中的相应的一个。在一个实施例中,每个内核接口??榘?或耦合到)相应的高速缓存。例如,内核接口???22a1包括一个相应的缓存124a1,内核接口???22b1包括一个相应的高速缓存124b1,等等。
    在一个实施例中,内核接口???22a1,...,122a4被布置在第一环形网络160a中(一个环形网络此后也被称为环),内核接口???22b1,...,122b4被布置在第二环160b。例如,内核接口???22a1,...,122a4被使用一个或多个通信链路(与系统100的各种其它组件一起)耦合或链接以形成环 160a。类似地,内核接口???22b1,...,122b4被使用一个或多个通信链路(如图1所示的与系统100的各种其它组件一起)耦合或链接以形成环160b。每个内核接口??樾纬上嘤Φ拇砥骱拖嘤Φ幕分涞慕涌?。例如,内核接口???22a1形成相应的处理器120a1和相应的环160a中的接口,内核接口???20b1形成相应的处理器120b1和相应的环160b之间的接口,等等。
    在一个实施例中,全局环160g(例如在图1中使用虚线示出)互连到环160a和160b。例如,全局环160g形成环160a和160b之间的接口。全局环160g包括配置为接口连接环160a和全局环160g之间的全局接口???12a。全局环160g还包括配置为接口连接环160b和全局环160g之间的全局接口???12b。在一个例子中,全局接口???12a和112b被耦合或链接到使用一个或多个通信链路(如图1,与系统100的各种其它组件一起),以形成全局环160g。为了从全局环160g中区分出环160a和160b,环160a和160b的每一个也在本文中被称为本地环。因此,在一个实施例中,一个本地环包括:(i)一个或多个内核接口???,以及(ii)至少一个全局接口???例如,接口连接本地环到全局环)。在一个实施例中,全局环包括一个或多个全局接口??橐杂胍桓龌蚨喔鱿嘤Φ谋镜鼗方涌诹?。
    在一个实施例中,如图1所示,系统100包括高速缓存123a1,...,123b4。例如,多个处理器120a1,...,120b4包括(或耦合到)缓存123a1,...,123b4中的相应的一个。例如,处理器120a1包含(或耦合到)高速缓存123a1,处理器120b1包含(或耦合到)缓存123b1,等等。在一个实施例中,高速缓存123a1,...,123b4例如是1级(L1)的高速缓存、2级(L2)高速缓存等。在一个实施例中,例如,高速缓存123a1可直接访问处理器120a1,而不与系统100中的任一个环接口连接(例如,通过旁路系统100的任一个环)。在一个例子中,一个或多个高速缓存123a1,...,123b4缓存系统100的一个或多个存储器的数据(例如,存储器128a、128b或类似情况)。
    在一个实施例中,高速缓存124a1,...,124b4例如是1级(L1)高速缓 存、2级(L2)高速缓存、末级高速缓存(LLC),和/或类似物。在一个实施例中,高速缓存124a1是可直接访问处理器120a1,例如,通过旁路系统100的任一环160。如将在本文中详细讨论的,例如,高速缓存124a1也是经由环160a访问由处理器120a3;且高速缓存124a1也是经由环160a和160b、全局环160g访问处理器120b1。因此,在本文所描述的实施例中,对系统100的任一给定的高速缓存的访问是层次结构的,即无论是直接或通过与一个或多个环160通信,高速缓冲存储器是可访问系统100中的任一处理器。
    在一个实施例中,每个环160a和160b包括一个或多个相应的存储器接口???。例如,环160a上包括存储器接口???26a,环160b包括存储器接口???26b。存储器接口???26a和126b分别耦合到存储器128a和128b。存储器接口???26a形成存储器128a和环160a之间的接口,存储器接口???26b形成存储器128b和环160b之间的接口。例如,多个存储器128a和128b是随机存取存储器(RAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)等。在一个实施例中,高速缓存124a1,...,124b3选择性地从存储器128a和128b缓存数据,如将在本文中详细讨论如下。在一个实施例中,例如,存储器128a的第一存储器地址可被高速缓存在本地环160a和/或160b中的一个或多个高速缓存,这将在本文中详细下面进行讨论。
    在一个实施例中,系统100还包括一个或多个输入/输出(I/O)接口???。例如,全局环160g包括I/O接口???14g1和114g2。虽然在图1中未示出,但在一个实施例中,本地环160a和160b的一个或两个还包括一个或多个对应的I/O接口???。在一个实施例中,I/O接口??樾纬闪讼喙亓幕泛鸵桓龌蚨喔鯥/O设备之间的接口。例如,I/O接口???14g1形成了全局环160g和一个或多个I/O设备118(例如,一个或多个I/O外围设备)之间的接口。在另一个例子中,I/O接口???14g2形成了全局环160g和存储器管理单元119之间的接口。例如,存储器管理单元119是虚拟内存系统架构师(VMSA)组件,其转换和展示I/O事务上的安全 ?;?。在一个示例中,虚拟存储器系统架构师(VMSA)组件转换虚拟地址空间和物理空间之间的地址,和/或展示安全?;?。在一个实施例中,如图1所示,存储器管理单元119被耦合到一个或多个I/O设备(例如,图1中标记为I/O设备119a的一个或多个I/O设备),和与I/O设备119a交换数据。
    除非另有提及并且为了本发明的目的,接口??橹傅氖悄诤私涌谀??、全局接口???、存储器接口??楹?或I/O接口??橹械囊桓?。
    除非另有说明,一个集群是指相应的本地环和与本地环相关联的各种组件。例如,第一集群是指本地环160a,并与本地环160a相关联的各种组件(例如,内核接口???22a1,...,122a4、处理器120a1,...,120a4、耦合到本地环160a的存储器接口???26a、耦合到存储器接口???26a的存储器128a等)。类似地,第二集群是指本地环160b,以及与本地环160b相关联的各种组件(即,内核接口???22b1,...,122b4、处理器120b1,...,120b4、耦合到本地环160b的存储器接口???26b、耦合到存储器接口???26b的存储器128b、等等)。
    尽管图1示出了每个环160a和160b都包括四个各自的内核接口???和4个相关联的处理器),在另一个实施例中,环160a和160b的一个或两个包括任何不同数量的内核接口???和相应数目的相关联的处理器)。
    在一个实施例中,并如所讨论的,多个处理器120a1,...,120b4表示相应的处理内核。然而,在另一个实施例中,图1中的系统100的处理器表示多个处理内核。作为一个例子,处理器120a1代表一组或一集群处理内核。在这个例子中,一集群处理内核(其由处理器120a1表示)经由内核接口???22a1被耦合到本地环160a,且这集群处理内核遵守与相应的内核接口??橄喙亓男?。
    在一个实施例中,系统100位于集成电路芯片中。例如,系统100是系统级芯片(SoC)的一部分。在另一个实施例中,系统100的第一部分(例如,与本地环160a相关联的各种组件)位于第一集成电路芯片,并且系统100的第二部分(例如,与本地环160b相关联的各种组件)位于一 个或多个其他集成电路芯片。在这个实施例中,例如,全局环160g的某些部分(例如,全局接口???12a)位于第一集成电路芯片,而全局环160g的其他部分(例如,全局接口???12b)位于所述一个或多个其他集成电路芯片。
    尽管图1示出了接口连接两个本地环160a和160b的全局环160g,在另一个实施例中,全局环160g接口连接两个以上的环。例如,图2示出了系统200,包括全局环260g,其互连本地环260a、260d。全局环260g包括全局接口???12a,...,212d,其分别与本地环260a,...,260d互连。虽然每个环260a,...,260d以及全局环260g包括各种其它部件(例如,类似于图1中的环160a和160b,全局环160g),为了说明的清楚这些组件未在图2中示出。例如,系统200包括多个处理器、内核接口???、高速缓存、存储器接口???、I/O接口??榈?,尽管这些部件未在图2中示出。在图2的系统200中,全局环260g由各自的全局接口???12a,...,212d被连接到四个本地环260a,...,260d。因此,如在图1和2中所示,系统100和200是容易可扩展的,例如,例如通过在全局环中加入相应的全局接口??楦嗟谋镜鼗房梢杂肴只方涌诹?。
    再次参看图1,在一个实施例中,系统100的各种组件可以发出一个事务处理请求。例如,系统100的多个处理器120a1,...,120b3可以选择性地发出一个或多个相应的事务请求??梢栽谙低?00中发出各种类型的事务请求。例如,读事务请求可以由一个处理器发出以从高速缓存或从存储器中读取数据,写事务请求可以由处理器发出以将数据写入到高速缓存或存储器,高速缓存事务请求可以由处理器发出以在高速缓存上执行操作(例如,从高速缓存中释放高速缓存行以更新高速缓存行),等等。
    如果系统100的处理器发出一个事务请求,则相应的内核接口??榻邮崭檬挛袂肭蟛⒔檬挛袂肭笸ü嘤Φ幕贩⑺偷胶鲜实哪康牡?。例如,如果处理器120a1发出事务请求,则相应的内核接口???24a1接收该事务请求,并将所述业务请求发送到合适的目的地,例如,到环160a中的另一个内核接口??榛虼娲⑵鹘涌谀??,或环160b内。在一个实施例中, 内核接口???24a1,...,124a3执行由处理器120a1(以及任何其他处理器)发出的事务请求的一致性检查,和/或跟踪所述事务请求的一致性信息。在一个实施例中,内核接口???24a1成为用于由相关联的处理器120a1发出的事务请求的环160a上的本地接口???。在一个实施例中,内核接口???24a1,...,124a3的一个成为用于由处理器120a1(或环160a中的任何其他处理器)发出的事务请求的环160a上的本地接口???。例如,由处理器120a1发出的事务请求具有映射到内核接口???24a1的源地址,从而使得内核接口???22a1成为环160a中事务请求的本地接口???。因此,初始化或在环发出事务请求的内核接口??槭鞘挛袂肭蟮谋镜亟涌谀??。
    在内核接口??槌跏蓟氖挛袂肭笠部梢员挥成涞较低?00中的另一个接口???。例如,内核接口???22a3可以是由处理器120a1发出的事务请求的目的地,并且相应地,内核接口???22a3形成为事务请求的本地接口???。为了本发明的目的,除非另有所述,形成为事务请求目的地的另一个接口???例如,内核接口???22a3),形成了事务请求的主程接口???。因此,在一个例子中,在本地接口??榉⑵鹗挛袂肭?,并且该事务请求被发送到用于处理和进行的相应的本地接口???例如,为了确保系统100的高速缓存的一致性和/或事务处理的一致性)。在一个例子中,对于事务请求,相应的主程接口??楹拖嘤Φ谋镜亟涌谀?榭梢允峭荒诤私涌谀??。例如,如果处理器120a1发起目标为内核接口???22a1的高速缓存124a1的事务请求,则内核接口???22a1是用于事务请求的主程接口??楹捅镜亟涌谀??。
    再次参看图1,在一个实施例中,高速缓存124a1,...,124b3选择性地从存储器128a和128b中缓存数据。来自存储器128a和128b的数据可被高速缓存在使用静态映射或动态映射的系统100的高速缓存中。例如,如图1所示,存储器128a被耦合到环160a,存储器128b被耦合到环160b。在静态映射中,存储器(例如,存储器128a)的特定存储器地址的数据可被高速缓存在特定的高速缓存中,并且所述映射是静态的性质。例如, 如后面将要讨论的,一个或多个表(例如,分布式探听过滤器和/或远程线路目录)识别特定的高速缓存,其中存储器的特定存储器地址的数据可以被缓存。在一个实施例中,在静态映射中,存储在存储器128a中的第一地址的第一数据可以被高速缓存在系统100的高速缓存124a1,...,124b4的多于一个中,且一个或多个表识别高速缓存,其中第一数据是可能进行高速缓存的。在一个实施例中,存在第一地址到环160a中的高速缓存124a1,...,124a4中的一个的静态映射,以及到环160b中的高速缓存124b1,...,124b4中的一个的静态映射。
    在动态映射中,存储器(例如,存储器128a)的特定存储器地址的数据也可被高速缓存在系统100的一个或多个缓存124a1,...,124b4中。然而,不同于静态映射,可能潜在地缓存数据高速缓存是变化的(例如,是动态的),以及上面所讨论的一个或多个表(例如,分布式探听过滤器和/或所述远程线路目录)不一定识别可能进行高速缓存数据的高速缓存。将在本文的下面更详细地讨论静态和动态映射。
    内核接口???
    图3示出了图1的系统100的一个示例性内核接口???例如,内核接口???22a1)。在一个实施例中,虽然只有内核接口???22a1示于图3,系统100的各种其它内核接口??榭赡芫哂兄辽俨糠掷嗨朴谕?的结构。
    图3的示例性内核接口???22a1包括高速缓存124a1,虽然在另一个实施例中,高速缓存124a1是位于内核接口???22a1的外部(例如,直接耦合到内核接口???22a1)。内核接口???22a1还包括一致性控制???10a1。在一个实施例中,一致性控制???10a1确保了高速缓存124a1是与系统100的其他高速缓存和存储器一致的(例如,同步的)。
    在一个实施例中,系统100的存储器中的存储器地址被映射到系统100的一个或多个相应的内核接口???。例如,每个存储器128a的地址被分配给至少一个相应的内核接口???22a1,...,122a4。即,存储器128a的存储器地址的整个跨度被分配在环160a的内核接口???22a1,...,122a4 中。在一个例子中,如果存储器(例如,存储器128a)的第一地址被映射到特定的内核接口???,则特定的内核接口???例如,内核接口???22a1)形成第一存储器地址的主程接口???。存储器的每个存储地址都有一个对应的主程接口???。例如,如果存储器128a的第一存储器地址具有内核接口???22a1作为主程接口???,那么内核接口???22a1存储与存储器128a的第一存储器地址的高速缓存一致性相关联的各种信息。
    而且,存储器128a的特定地址可以被映射到一个以上的内核接口???。作为一个例子,在一个实施例中存储器128a的第一地址被映射到内核接口???22a1和122b1。因此,每个内核接口???22a1和122b1形成了第一存储器地址的主程接口???。此外,内核接口???22a1形成了本地环160a的第一存储器地址的本地主程接口???,而内核接口???22b1形成了本地环160b的第一存储器地址的本地主程接口???。当存储器128a被耦合到环160a,内核接口???22a1也形成了存储器128a的第一存储器地址的全局主程接口???。例如,本地主程接口??榇娲⒂胂嘤Φ谋镜鼗返牡谝淮娲⑵鞯刂返母咚倩捍嬉恢滦韵喙亓母髦中畔?,且全局主程接口??榇娲⒂胝鱿低?00的第一存储器地址的高速缓存一致性相关联的的各种信息。在一个实施例中,存储器128a的地址的四分之一被映射到内核接口???22a1和122b1,存储器128a的地址的四分之一被映射到内核接口???22a2和122b2,存储器128a的地址的四分之一被映射到内核接口???22a2和122b2,存储器128a的地址的余下的四分之一被映射到内核接口???22a3和122b3。
    如所讨论的,在一个实施例中,存储在系统100的存储器中的一个(例如,存储器128a和128b中的一个)的第一数据可被高速缓存在一个以上的系统100的高速缓存中。例如,存储在存储器128a的第一存储器地址的第一数据可被缓存在高速缓存124a1,...,124b4中的一个或多个。假设内核接口???22a1是存储器128a的第一存储器地址的主程接口???例如,全局主程接口???。在一个实施例中,内核接口???22a1还包括分布式探听过滤器(DSF)314a1。在一个例子中,内核接口???22a1 作为存储器128a的第一存储器地址的主程接口???,DSF314a1跟踪本地环160a中的所有高速缓存,这些高速缓存可以存储的存储器128a第一存储器地址的第一数据。例如,如果第一数据可被存储(或储存)在本地环160a的高速缓存123a1和123a3,则DSF314a1指示与存储器128a的第一存储器地址相关联的第一数据可以被高速缓存存储在处理器120a1和120a3中。例如,图4示出了存储在一个示例分布式探听过滤器的条目(例如,在图3的DSF314a1中的条目)中的内容的例子。在图4中DSF314a1的条目表示与存储器128a的第一存储器地址相关联的第一数据可以被存储由处理器120a1和120a3包括的高速缓存中(例如,可被存储在高速缓存123a1和123a3)。这表明该存储器128a中的第一地址的第一数据可由处理器120a1和120a3持有?;痪浠八?,如果DSF被包括在第一内核接口???,则该DSF条目指示,对于该第一内核接口??槭侵鞒探涌谀?榈拇娲⑵鞯刂?,一个或多个处理器可以高速缓存第一数据,在一个或多个处理器中一个或多个高速缓存可以被包括在一个或多个处理器中。
    在一个实施例中,对于耦合到第一本地环的存储器的特定存储器地址,相应的DSF仅表示可以保持特定存储器地址的数据的第一本地环的处理器。例如,参考图4,即使存储器128a的第一地址的第一数据可以由处理器120a1、120a3和120b2的高速缓存被缓存,DSF314a1的条目也仅表示处理器120a1和120a3(如只有这两个处理器都与本地环160a相关联)。即,在这个例子中,DSF314a1的条目不表示与处理器120b2相关联的高速缓存可存储存储器128a中的第一地址的第一数据。
    再次参看图3,在一个实施例中,内核接口???22a1还包括一个远端线路目录(RLD)318a1。在一个例子中,内核接口???22a1作为存储器128a的第一存储器地址的主程接口???例如,全局主程接口???,RLD318a1跟踪系统100中的所有远程集群,在一个实施例中,其存储了存储器128a的第一存储器地址的第一数据。例如,假设第一数据可被存储(或储存)在高速缓存本地环160a的120a1和120a3,核本地环160b的缓存124b2。然后,RID318a1指示与存储器128a的第一存储器地址相 关联的所述第一数据可以被存储在与本地环160b相关联的集群中。即,RID318a1标识一个或多个远程集群(即,一个或多个集群是远程或不同于与本地环160a相关联的集群)可以高速缓存与存储器128a的第一存储器地址相关联的第一数据。图5示出了一个示例性的远程线路目录(例如,图3中的RLD318a1)。在图5中的RLD318a1表示与存储器128a的第一存储器地址相关联的第一数据可以被存储在一个集群2(例如,它是与本地环160b相关联的)中。因此,在图5中的RID318a1标识所有远程集群(以及相关联的远程本地环),其中与存储器128a的第一存储器地址相关联的第一数据可以被存储。值得注意的是,尽管与本地环160a相关联的集群可缓存与存储器128a的第一存储器地址相关联的第一数据,但是RLD318a1不标识与本地环160a相关联的集群,而是,RLD318a1仅识别远程集群(即与本地环160a相关联的集群远程、或不同于本地环160a相关联的集群),其可以缓存与存储器128a的第一存储器地址相关联的第一数据。
    与本地环160a相关联的第一集群是存储器128a的第一存储器地址的本地集群(例如,内存128a包括在第一集群中)。与本地环160b相关联的第二集群是存储器128a的第一存储器地址的远程集群。在一个实施例中,RLD318a1选择性地识别一个或多个远程集群,以用于高速缓存存储在存储器128a的第一存储器地址的第一数据。
    高速缓存结构
    如前面所讨论的,系统100的高速缓存体系结构包括一个多组高速缓存(例如,多个高速缓存切片,包括高速缓存124a1,...,124b4),其中每个高速缓存可以被多于一个的处理器接入。在系统100中,到不同高速缓存的接入时间不同,并取决于发出请求的处理器(即,请求高速缓存访问的处理器)。例如,相比与处理器120a1接入高速缓存124a2花费的时间,处理器120a1接入高速缓存124a1花费的时间相对较少。同样地,相比于处理器120a1接入缓存124b4花费的时间,处理器120a1访问高速缓存124a2花费的时间相对较少。系统100的高速缓存体系结构在本文中还被 称为非统一高速缓存体系结构(NUCA),例如,因为由多个处理器访问多个高速缓存所用的时间是不均匀的。
    在一个实施例中,系统100的高速缓存体系结构可以以多种方式中的一种进行操作。例如,系统100的高速缓存体系结构可以在一个静态映射的高速缓存体系结构模式和动态映射的高速缓存体系结构模式的一种进行操作。
    在静态映射的高速缓存架构模式中,例如,存储器128a的特定存储器地址被静态映射到环160a的高速缓存中的一个和环160b的高速缓存中的一个。此外,在静态映射的高速缓存架构模式,内存128a的特定内存地址到高速缓存的映射是特定存储器地址的驻留在主程接口???例如,全局主程接口???的相应的DSF和RLD。例如,在静态映射的高速缓存架构模式中,如果内核接口???22a1是存储器128a的特定存储器地址的主程接口???,那么驻留在内核接口???22a1的DSF和RLD标识该特定高速缓存,其中特定存储器地址的数据可以被缓存。如果高速缓存(例如,高速缓存123a1)可以缓存存储器128a的特定存储器地址的数据,则相应的处理器(例如,处理器120a1)据说可以保持存储器128A的特定存储器地址的数据。
    在动态映射的高速缓存架构模式中,在一个实施例中,例如,存储器128a的特定存储器地址被动态地分配给系统100的任一高速缓存。因此,在动态映射的高速缓存架构模式中,存储器128a的特定存储器地址的数据可以被动态分配和高速缓存在系统100的任一高速缓存中(例如,到本地环160a和/或本地环160B的任一高速缓存中)。在一个实施例中,在动态映射的高速缓存架构模式中,由系统100的一个或多个高速缓存缓存存储器128a的特定存储器地址的数据可能与特定存储器地址的驻留在主程接口???例如,全球家庭接口???的DSF和RLD不一致。
    以下各节更详细的讨论静态映射的缓存架构模式和动态映射的高速缓存架构模式下系统100的操作。
    静态映射的高速缓存架构模式
    图6A示出了当一个多核处理系统(例如,图1的系统100)工作在静态映射的高速缓存体系结构模式的一个示例性读操作。图6A是图1的简化版本。例如,在图6A中,只有一个本地环0(例如,它可以是环160a和160b中的任何一个)被示出。此外,为了简单起见,在图6A中,本地环0的处理器被标识为P0,...,P3,各自的内核接口??楸槐昙俏狢IM0,...,CIM3。此外,如图6A所示,各个内核接口??镃IM0,...,3是与高速缓存0,...,3中相应的一个相关联的。在图6A中,每个高速缓存被示为外部到相应的内核接口???,虽然在另一个实施例中(例如,如图1所示),高速缓存可以被包括在相应的内核接口??槟?。图6A还示出了本地环0的各个组件之间传输的各种事务请求。
    在图6A和各个随后的附图(例如,图6B、图7D)中,事务请求(或数据)的发起、处理和/或传输是由一个数字表示一种类型的事务请求。例如,在这些图中的每个动作是使用一个相应的数字和一个或多个相应的字母表示一种类型的操作的标记。例如,图6A示出了0AR、1AR等。这些数字表示一个序列,其中相关的动作发生。例如,与数字“1”相关联的动作发生在与数字“0”相关联的动作之后。如果两个操作具有相同的编号,则两个操作可以至少同时部分地发生。
    在图6A的例子中,处理器P1发起事务请求,它可以是一个读取本地环0的高速缓存中缓存的数据的地址请求。例如,最初,处理器P1发出地址请求(在图6A中标记为0AR)连接到相应的CIM1。因此,CIM1是事务请求的本地接口???。在图6A的例子中,假定CIM3是主程接口???即,CIM3是地址请求的目的地,并且用于处理该地址请求)。由处理器P1发出的地址请求有主程接口??榈牡刂?例如,标识CIM3作为主程接口???。在一个静态映射的高速缓存体系结构模式中,这意味着与CIM3相关联的高速缓存3可以缓存处理器P1想要访问的数据。因此,CIM1转发地址请求到CIM2(例如,在图6A中示为1AR);随后,CIM2转发地址请求到CIM3(例如,在图6A中示为2AR)。一旦CIM3接收到地址请求,CIM3确定该地址请求导致高速缓存命中(例如,在图 6A中示为高速缓存3命中)。即,所请求的数据被缓存在缓存3。CIM3访问并读取高速缓存3(例如,在图6A中示为4RD)中的数据,且缓存3输出数据(例如,图6A中示为5DATA)到CIM3。CIM3接收从缓存3中读取的数据,并通过CIM2和CIM1(例如,在图6A示为6R、7R和8R)将数据发送到所述处理器P1(即,该请求的发起者)。
    在图6A中,读取请求是在缓存3的主程接口??榈拿?。然而,在另一实施例中,读取请求可能不会导致主程接口??榈母咚倩捍娴母咚倩捍婷?。图6B示出了另一个示例读操作,其中多核处理系统(例如,图1的系统100)工作在静态映射的高速缓存体系结构模式。在图6B中,读取请求会导致主程接口??榈母咚倩捍娴幕捍嫖疵?。类似于图6A,在图6B的例子中,处理器P1启动一个地址请求(在图6B中标记为0AR),例如,以读取数据。要读取的数据被存储在存储器0的特定地址,它具有CIM3作为主程接口???。因此,CIM1是地址请求的本地接口???,CIM3是主程接口???即,CIM3是地址请求的目的地,并且处理该地址请求)。由处理器P1发出的地址请求通过CIM1和CIM2(例如,在图6B中被示为1AR和2AR)到达CIM3。一旦CIM3接收地址请求,则CIM3确定高速缓存未命中(例如,在图6B中示为3高速缓存未命中)。也就是,高速缓存3不具有所请求数据的有效副本。
    响应于缓存3中的高速缓存未命中,CIM3随后通过向存储器接口???(例如,在图6B中示出为4AR)转发地址请求。存储器接口???从存储器0(例如,在图6B示为5RD)读取数据,并经由全局接口???、CIM0和CIM1,发送读取自存储器0的数据到处理器P1中(例如,在图6B中示为7R、8R、9R和10R)。CIM1还发送从存储器0读出的数据到CIM3(例如,在图6B中示出为10R和11R)。一旦CIM3接收数据,则CIM3将数据写入到高速缓存3(例如,在图6B中示为12W)。因而,在图3中,响应于与主程接口??橄喙亓母咚倩捍?中的高速缓存未命中,从存储器0中直接取出所请求的数据。
    在图6A和6B中,本地接口??楹椭鞒探涌谀?樵谕桓霰镜鼗分?。 即,本地环0的处理器P1尝试读取缓存在本地环0的高速缓存3中的数据。
    图6C示出了另一个示例读操作,其中多核处理系统(例如,图1的系统100)工作在静态映射的高速缓存体系结构模式中。在图6C的例子汇总,本地环0的处理器从不同的本地环(例如,本地环1)中读取数据。类似于图6A,在图6C中的系统具有本地环0、相关联的处理器P0,...,P3、相关联的CIM0,...,3、相关联的缓存0,...,3和存储器接口???。此外,图6C示出了第二本地环1,包括处理器P10,...,P13、CLM10,...,13、高速缓存10,...,13、存储器接口???和耦合到所述存储器接口???的存储器1。全局环(例如,在图6C中使用虚线示出)包括全局接口???和1,其互连两个本地环0和1。
    在图6C中,处理器P2发出读取存储在存储器1中的特定存储器地址的数据的事务请求。即,在本地环0的处理器P2尝试读取存储在耦合到本地环1的存储器1的特定存储器地址的数据。CIM2是本地接口???,该事务在处理器P2发起。
    还假没在存储器1的特定存储器地址的数据可以被高速缓存在高速缓存1和11。因此,缓存1是环0的存储器0的特定存储器地址的本地主程接口???,高速缓存11是在环1的存储器1的特定存储器地址的本地主程接口???。此外,由于存储器1被耦合到本地环1,高速缓存11也是用于存储器1的特定存储器地址的全局主程接口???。例如,全局主程接口???即CIM11)保持的DSF标识高速缓存11有可能缓存存储器1的特定存储器地址的数据。此外,全局主程接口???即CIM11)维护的RLD标识存储器1的特定存储器地址的数据是潜在的缓存在本地环0和1的高速缓存中。
    再次参看图6C,当处理器P2发出地址请求到CIM2(例如,示出为0AR),与CIM1(即,本地主程接口???相关联的高速缓存1首先检查以确定所请求的数据是否被存储在高速缓存1中。如图6C所示,确定所请求的数据在高速缓存1中未命中(例如,在图6C中示为2高速缓存 未命中)。所请求的数据没有被存储在本地环0的本地主程接口??镃IM1的高速缓存1中,然后检查CIM11(即全局主程接口???的高速缓存11以确定请求的数据是否缓存在其中。例如,事务请求是从CIM1通过CIM0、全局接口???、全局接口???和CIM10(例如,在图6C中示为3AR,...,7AR)发送到CIM11。
    在图6C的例子中,事务请求还导致全局主程接口??镃IM11的高速缓存11的高速缓存未命中。因此,例如,交易请求被发送到存储器接口???以从存储器1(例如,在图6C中示为9AR,...,12RD)读取所请求的数据。一旦数据被从存储器1由存储器接口???读出,所请求的数据经由全局接口???和0和CIM0、1和2传输给处理器P2(例如,在图6C中示为14R,...,19R)。在一个实施例中,从存储器1中读出的数据也可以被发送到高速缓存1和11(例如,与本地和全局主程接口??橄喙亓母咚倩捍?的一个或两个以缓存数据(例如,在图6C中在高速缓存1中缓存的数据被示为18W)。
    值得注意的是,在图6C中,18W表示从CIM1发送数据到高速缓存1,18R表示从CIM1发送数据到CIM2。这两个操作具有相同的数值“18”,表明这两个动作可以至少同时地进行部分。
    图6D示出了另一个示例读操作,其中多核处理系统(例如,图1的系统100)工作在静态映射的高速缓存体系结构模式中。图6D的系统架构是类似于图6C的系统架构。例如,图6C和6D都示出了两个本地环0和1,与本地环相关的各种组件和连接两个本地环的全局环。
    在图6D中,处理器P2发出事务请求以读取存储在存储器0的特定存储器地址的数据。即,本地环0的处理器P2尝试读取耦合到本地环0的存储器的特定存储器地址的数据。CIM2是本地接口???,其中事务在处理器P2发起。
    在图6D的例子中,假设在存储器0的特定存储器地址的数据可以被高速缓存1和11高速缓存。因此,CIM1是为存储器0的特定存储器地址的本地环0中的本地主程接口???,CIM11是为存储器0的特定存储 器地址的本地环1的本地主程接口???。此外,由于存储器0被耦合到本地环0中,CIM1也是用于存储器0的特定存储器地址的全局主程接口???。由全局主程接口??槲さ腞LD(即CIM1)识别出存储器0的特定存储器地址的数据是潜在的缓存在本地环1的高速缓存中。
    在图6D中,当处理器P2发出地址请求到CIM2(例如,示为0AR),与CIM1(即,全局主程接口???相关联的高速缓存1首先检查以确定所请求的数据是否被存储在高速缓存1中。如图6D所示,确定所请求的数据在高速缓存1中未命中(例如,在图6D中示为2高速缓存未命中)。由于所请求的数据没有存储在本地环0的全局主程接口??镃IM1的高速缓存1中,因此查找包含在CIM1中的RID来检查所请求的数据是否被缓存在运程本地环的高速缓存中。在图6D的例子中,CIM1的RID返回HIT(在图6D中示为2RLD),并指向本地环1。因此,CIM11的高速缓存11(即,本地环1的本地主程接口???随后检查以确定所请求的数据是否在其中被高速缓存。例如,事务请求是从CIM1通过CIM0、全局接口???和1、CIM10(例如,在图6D中示为3AR,...,7AR)发送到CIM11。在图6D的例子中,事务请求导致本地环1的本地主程接口???例如,在图6D中被示为8高速缓存命中)的CIM11的高速缓存11高速缓存命中。所请求的数据是由CIM11从高速缓存11(例如,在图6D中示为9RD和10DATA)读取。随后,如图6D所示,从高速缓存11读出的数据被从CIM11传递给处理器P2(例如,在图6D中示为11R,...,17R在)。此外,在一个实施例中,当CIM1接收从高速缓存11读出的数据时,CIM1也存储数据在高速缓存1(例如,在图6D中示为16W)中。但应当注意的是,在图6D,16W表示发送CIM1中的数据到高速缓存1,16R表示发送CIM1中的数据到CIM2。在一个实施例中,这两个操作具有相同的数值“16”,表明这两个动作至少部分同时地执行。
    图6E是一个示出了用于读出操作的示例性方法650的流程图,其中多核处理系统(例如,在图6A至图6D中所示的系统)工作在静态映射的高速缓存体系结构模式。参照图6A至图6E,在654,多个第一多个处 理内核(例如,处理器P0,...,P3)耦合到第一多个内核接口??橹邢嘤Φ囊桓?例如,CIM0,...,3)与所述第一多个内核接口??榈母鞲瞿诤私涌谀?榻型ㄐ?,所述第一多个内核接口??楸徊贾迷诘谝换沸瓮?例如,本地环0);耦合到第二多个内核接口??榈南嘤Φ亩喔?例如,CIM10,...,13)的多个第二多个处理内核(例如,处理器P10,...,P13)与第二多个内核接口??榈南嘤Φ哪诤私涌谀?橥ㄐ?,所述第二多个内核接口??楸徊贾迷诘诙沸瓮?例如,本地环1);全局环形网络接口连接所述第一环形网络和第二环形网络。
    在658,第一多个内核接口??榈牡谝荒诤私涌谀??例如,图6C中的CIM2)从所述第一多个处理内核的一个相对应的第一处理内核(例如,处理器P2)接收读取数据的事务请求,第一高速缓存(例如,高速缓存2)被耦合到第一内核接口???。
    在662,第一内核接口??榉⑺徒灰浊肭蟮降诙诤私涌谀?榈亩喔龅谝荒诤私涌谀??例如,CIM1,这是在第一环形网络中的本地主接口???,以检查是否在数据要读取缓存在第二高速缓存(例如,高速缓存1)耦合到所述第二内核接口???。
    在666,确定将被读出的数据不是缓存在第二高速缓存(例如,在图6C中示为2高速缓存未命中),并且可能缓存在第二环形网络的第三高速缓存(例如,基于RLD命中);以及响应于确定要被读出的数据不是缓存在第二高速缓存(并可能缓存在第二环形网络的第三高速缓存),第二内核接口??榉⑺退鍪挛袂肭蟮降诙喔瞿诤私涌谀?榈牡谌诤私涌谀??例如,图6C中的CIM11,它是在第二环形网络的本地主程接口???,以检查将要读取的数据是否被缓存在第三高速缓存(例如,高速缓存11),其被耦合到所述第三内核接口???。
    在670,确定将被读出的数据不是缓存在第三高速缓存(例如,在图6C中示为8高速缓存未命中);以及响应于确定要被读出的数据不是缓存在第三高速缓存高速中,该事务请求被发送到存储器接口???例如,存储器接口???)以从耦合到所述存储器接口??榈拇娲⑵?例如,存储 器1)提取数据。
    动态映射的高速缓存架构模式
    如前面所讨论的,在静态映射的高速缓存体系结构模式,例如,对于系统100的存储器128a的特定存储器地址,相应的DSF跟踪包含在相应的处理器中的高速缓存(例如,图1中的高速缓存123a1,...,123a4);和相应的RLD跟踪包含在一个或多个远程环中的高速缓存(例如,CIM0,...,CIM3的RID跟踪本地环1的CIM,即CIM10,...,CIM13的高速缓存)。因此,在静态映射的高速缓存架构模式中,如参考图6A至图6D,检查与主程干扰???例如,一个或多个本地和全局主程干扰???相关联的高速缓存或在相应的DSF和/或RLD指示的任何其它高速缓存,以确定由处理器请求的数据是否被高速缓存。即,在静态映射的高速缓存架构模式中,事务将检查预先确定数目的高速缓存(例如,基于相应的DSF和/或RLD),以确定所请求的数据是否被缓存在这些高速缓存的任一个中。在一个实施例,如果所请求的数据未被缓存在这些高速缓存的任一个中时,从存储器中取出数据。
    与此相反,在动态映射的高速缓存体系结构模式,例如,对于系统100的存储器128a的特定存储器地址,连接到CIM(例如,图1中的缓存124a1,...,124b3)的高速缓存可以保持数据,所述数据不是由同一个节点的相应的DSF和RLD跟踪的。例如,在动态映射的高速缓存体系结构模式下,一个或多个高速缓存动态地缓存存储器128a的特定存储器地址的数据,其中跟踪相同数据的RLD和DSF可以是不同的CIM。为了定位已缓存的数据,在动态映射的高速缓存架构模式中,例如,当处理器请求存储器128a的特定存储器地址的数据,首先检查与本地接口??楹椭鞒探涌谀?橄喙亓母咚倩捍?。如果所请求的数据未存储在这些高速缓存中,则也可以检查系统中的任何其它数量的高速缓存,以确定是否有任何这些其它高速缓存是否已缓存请求的数据。在下文对动态映射的高速缓存体系结构模式进行了详细讨论。
    图7A示出了示例读操作,其中多核处理系统(例如,图1的系统100) 工作在动态映射的高速缓存体系结构模式。图7A中示出的体系结构类似于图6A。例如,图7A示出了仅一个本地环0(例如,环160a与160b的任何一个),其包括处理器P0,...,P3、内核接口??镃IM0,...,CIM3、缓存0,...,3、存储器接口???和存储器0。
    在图7A的例子中,例如,处理器P1启动一个地址请求以读取存储器0的特定存储器地址的数据,其可以被缓存在本地环0的高速缓存中的一个。例如,最初,处理器P1发出地址请求(在图7A中标记为0AR)到相应的CIM1。因此,CIM1是事务请求的本地接口???。在图7A的例子中,假定CIM3是事务请求的主程接口???即,即跟踪事务地址的DSF和RLD在CIM3中)。
    在动态映射的高速缓存架构模式中,由所述处理器P1请求的数据可以以相对高的概率被缓存在本地接口??楹?或主程接口??橄喙亓母咚倩捍嬷?。例如,在一个实施例中,一种启发式算法试图确保该数据被高速缓存在耦合到该处理器的高速缓存或相关联的主程接口??榈母咚倩捍嬷?,所述数据是可能由处理器请求的。例如,所述启发式算法是基于由所述处理器请求的过去的数据,关于运行在哪个处理器上的哪种应用(以及哪个处理器可以请求数据)的先验知识等。例如,由处理器P1请求的数据可以以相对高的概率被缓存在高速缓存1中;当发现数据可以由多个处理器共享时,该数据可以以有相对高的优先级被缓存在主程接口??榈母咚倩捍?例如,CIM3的高速缓存3)中。例如,由处理器P1请求的数据可以以相对高的概率被缓存在高速缓存1和3中。因此,首先检查高速缓存1(与本地CIM1相关联)和高速缓存3(与主程接口??镃IM3相关联)以确定由处理器P1请求的数据是否被缓存在高速缓存1和3的一个中。
    因此,一旦CIM1接收到地址请求,CIM1就确定地址请求是否是高速缓存1的高速缓存命中或高速缓存未命中。在图7A1的例子中,该地址请求导致高速缓存1的高速缓存命中(例如,在图7A中示为1高速缓存命中)。而当CIM1确定地址请求是否是高速缓存1的高速缓存命中或高 速缓存未命中时,CIM1还至少部分地同时发送地址请求到主程接口??镃IM3(例如,在图7A中示为1AR和2AR)。因而,在图7A中,不论地址请求是否导致高速缓存1的高速缓存命中或高速缓存未命中,CIM1都发送地址请求到CIM3。例如,CIM1发送地址请求到CIM3,其中CIM1检查以确定该地址请求是否导致高速缓存1的高速缓存命中。
    此外,地址请求导致高速缓存未命中、RLD未命中和CIM3中的DSF未命中(例如,在图7A中示为3高速缓存未命中、3DSF未命中、3RLD未命中)。CIM3发送响应到CIM1(例如,在图7A中示为4Resp和5Resp),表明该地址请求导致高速缓存3的高速缓存未命中。当地址请求导致高速缓存1的高速缓存命中时,CIM1从高速缓存1中读取所请求的数据(例如,在图7A中示为2RD和3DATA)。在CIM1从CIM3接收表示高速缓存3的高速缓存未命中的反应之前、之后或进行中时,CIM1发送从高速缓存1中读取的所请求的数据到处理器P1。在图7的例子中,在从CIM3接收表示高速缓存3的高速缓存未命中的响应至CIM1后,CIM1发送从高速缓存1中读取的所请求的数据到处理器P1(例如,在图7A示为6R)。
    图7B示出了另一示例读操作,其中多核处理系统(例如,图1的系统100)工作在动态映射的高速速缓存系结构模式。在图7A中,地址请求导致本地接口??榈母咚倩捍娴母咚倩捍婷?,而导致主程接口??榈母咚倩捍嫖疵?。与此相反,在图7B,地址请求导致本地接口??榈母咚倩捍娴母咚倩捍嫖疵?,而导致主程接口??榈母咚倩捍婷?。
    类似于图7A,在图7B的例子中,例如,处理器P1启动一个地址请求,以读出存储器0的特定存储器地址的数据。此外,类似于图7A,在图7B的例子中,CIM1是本地接口??槎鳦IM3是主程接口???。
    在图7B中,首先,处理器P1发出地址请求(在图7A中标记为0AR)到相应的CIM1。一旦CIM1接收到地址请求,则CIM1确定地址请求是否是高速缓存1的高速缓存命中或高速缓存未命中。在图7B的例子中,地址请求导致高速缓存1中的高速缓存未命中(例如,在图7B中示为1 高速缓存未命中)。当CIM1确定地址请求是高速缓存1的高速缓存命中或是高速缓存未命中时,CIM1还发送地址请求到主程接口??镃IM3(例如,在图7B中示为1AR和2AR)。因而,在图7B中,不论该地址请求导致高速缓存1的高速缓存命中或高速缓存未命中时,CIM1都发送地址请求到CIM3。
    在图7B的例子中,地址请求导致高速缓存3的高速缓存命中(例如,在图7B中示为3高速缓存命中)。CIM3(例如,在图7B中示为4RD和5DATA),并且经由CIM2与CIM1发送从高速缓存3中读取的数据到处理器P1(例如,在图7B中示为6R、7R和8R)。
    图7C示出了另一个示例读操作,其中多核处理系统(例如,图1的系统100)工作在动态映射的高速缓存体系结构模式。如所讨论的,在图7A中,地址请求导致本地接口??榈母咚倩捍娴母咚倩捍婷?,而导致主程接口??榈母咚倩捍嫖疵?。而且,在图7B中,地址请求导致本地接口??榈母咚倩捍娴母咚倩捍嫖疵?,而导致主程接口??榈母咚倩捍婷?。与此相反,在图7C中,地址请求导致本地接口??楹椭鞒探涌谀?榱秸叩母咚倩捍娴母咚倩捍嫖疵?,其结果是检查本地环0的其它高速缓存。
    类似于图7A和7B,在图7C的例子中,例如,处理器P1启动一个地址请求,以读取存储器0的特定存储器地址的数据。此外,类似于图7A和7B,在图7C的例子中,CIM1是本地接口??槎鳦IM3是主程接口???。
    在图7C中,最初,处理器P1发出地址要求(在图7C中标记为0AR)到相应的CIM1。一旦CIM1接收到地址请求,则CIM1确定地址请求是否是高速缓存1的高速缓存命中或高速缓存未命中。在图7C的例子中,该地址请求导致高速缓存1的高速缓存未命中(例如,在图7C中示为1高速缓存未命中)。当CIM1确定地址请求是否是高速缓存1的高速缓存命中或高速缓存未命中时,CIM1还发送地址请求到主程接口??镃IM3(例如,在图7C中示为1AR和2AR)。因而,在图7C中,不论地址请 求是否导致高速缓存1的高速缓存命中或高速缓存未命中,CIM1都发送地址请求到CIM3。
    在图7C的例子中,该地址请求也导致高速缓存3的高速缓存未命中(例如,在图7C中示为3高速缓存命中),与DSF未命中和RLD未命中一起。CIM3发送响应到CIM1(例如,在图7C中示为4Resp和5Resp),表明该地址请求导致高速缓存3的高速缓存未命中。
    当地址请求导致本地接口??楹椭鞒探涌谀?榱秸叩母咚倩捍娴母咚倩捍嫖疵惺?,CIM1然后发送地址请求到(i)本地环0的一个或多个其它高速缓存(例如,到本地环0的除了本地接口??楹椭鞒探涌谀?榈乃薪涌谀?榈母咚倩捍?,以及(ii)到存储器接口???。例如,在接收到指示地址请求导致高速缓存3的高速缓存未命中之后,CIM1发送地址请求到CIM0和CIM2的每一个(例如,在图7C中示为6AR和6AR),以检查所请求的数据是否被缓存在高速缓存0和2的一个或两个中。地址请求也被发送到存储器接口???。在一个实施例中,CIM1至少部分同时地发起地址请求的发送到CIM0和CIM2的每一个。在一个实施例中,通过(i)CIM0和(ii)全局接口???发送地址请求到存储器接口???(在图7C中示为7AR和8AR)。
    在图7C的例子中,地址请求还导致高速缓存0的高速缓存未命中(例如,在图7C中示为7高速缓存未命中),而导致高速缓存2的高速缓存未命中(例如,在图7C中示为7高速缓存命中)。CIM2从高速缓存2中读取所请求的数据(例如,在图7C中示为8RD和9DATA),并经由CIM1发送从高速缓存2中读取的数据到处理器P1(例如,在图7C中示为10R和11R)。
    如所讨论的,还通过(i)CIM0和(ii)全局接口???发送地址请求到存储器接口???(在图7C中示为7AR和8AR)。响应于高速缓存0的高速缓存未命中,CIM0传送响应到存储器接口???,表明该地址请求导致高速缓存未命中(在图7C中示为8Resp(未命中)和9Resp(未命中))。另外,响应于高速缓存2的高速缓存命中,CIM2发送响应到存 储器接口???,表明该地址请求导致高速缓存2的高速缓存命中(在图7C中示为8Resp(命中)和9Resp(命中))。根据接收到该地址请求导致高速缓存2的高速缓存命中的指示,存储器接口???避免访问存储器0以提取相应于该地址请求的数据(或避免发送从存储器0预先提取的数据到请求的处理器)。
    在一个实施例中,当地址请求被发送到存储器接口???(例如,通过CIM0,在图7C中示为7AR和8AR),该地址请求包含一些将遵循地址请求的响应。例如,在图7C中,基于高速缓存1和3的高速缓存未命中(即,与本地和家庭接口??橄喙亓母咚倩捍?,还有要检查的其他两个高速缓存(例如,高速缓存0和2)。因此,两种响应表明命中或未命中(例如,来自两个高速缓存0和2)是由存储器接口???在接收到地址请求之后接收的。因此,由存储器接口???接收到的所请求的地址表示两个响应将遵循地址请求。一旦存储器接口???接收到地址请求,则存储器接口???等待接收两个响应(例如,在一个实施例中,在等待期间,存储器接口???可以从存储器0预先提取所请求的数据)。如果由存储器接口???接收到的两个响应中的至少一个指示命中,则存储器接口???丢弃地址请求。例如,在图7C中,响应之一(例如,来自CIM2的响应)是一个命中——因此,存储器接口???丢弃地址请求。然而,如参考图7D在本文稍后讨论的,如果这两个反应都是未命中,则存储器接口???访问存储器0(例如,如果存储器接口???尚未预先提取请求的数据),并发送从存储器0所获取的数据到请求的处理器。
    图7D示出了另一示例读操作,其中多核处理系统(例如,图1的系统100)工作在动态映射的高速缓存体系结构模式。如所讨论的,在图7A中,地址请求导致本地接口??榈母咚倩捍娴母咚倩捍婷?,而导致主程接口??榈母咚倩捍嫖疵?。在图7B中,地址请求导致本地接口??榈母咚倩捍娴母咚倩捍嫖疵?,而导致主程接口??榈母咚倩捍婷?。在图7C中,地址请求导致本地接口??楹椭鞒探涌谀?榱秸叩母咚倩捍娴母咚倩捍嫖疵?,而导致环0的另一个高速缓存的高速缓存命中。在图7D 的例子中,地址请求导致本地环0的所有高速缓存的高速缓存未命中,因此在其上的数据被从存储器0中读出。
    类似于图7A至图7C,在图7D的例子中,例如,处理器P1启动一个地址请求,以读取存储器0的特定存储器地址的数据。此外,类似于图7A至图7C,在图7D的例子中,,CIM1是本地接口??楹虲IM3是主程接口???。
    在图7D中,最初,处理器P1发出地址请求(在图7D中标记为0AR)到相应的CIM1。一旦CIM1接收到地址请求,则CIM1确定地址请求是否是高速缓存1的高速缓存命中或高速缓存未命中。在图7D的例子中,地址请求导致高速缓存1的高速缓存未命中(例如,在图7D中示为1高速缓存未命中)。当CIM1确定地址请求是否是高速缓存1的高速缓存命中或高速缓存未命中是,CIM1还发送地址请求到主程接口??镃IM3(例如,在图7D中示为1AR和2AR)。在图7D1的例子中,地址请求也导致高速缓存3的高速缓存未命中(例如,在图7D中示为3高速缓存命中)。CIM3发送响应到CIM1(例如,在图7D中示为4Resp和5Resp),表明该地址请求导致高速缓存3的高速缓存未命中。
    当地址请求导致本地接口??楹椭鞒探涌谀?榱礁龅母咚倩捍娴母咚倩捍嫖疵惺?,CIM1发送地址请求到本地环0的一个或多个其他高速缓存(例如,到本地环0的除了本地接口??楹椭鞒探涌谀?榈乃薪涌谀?榈母咚倩捍?。例如,在接收到地址请求导致高速缓存3的高速缓存未命中的指示之后,CIM1发送地址请求到CIM0和CIM2的每一个(例如,在图7D中示为6AR和6AR),以检查所请求的数据是否被缓存在高速缓存0和高速缓存2的一个或两个中。在一个实施例中,CIM1至少部分同时地发送地址请求到CIM0和CIM2的每一个。地址请求也被发送到存储器接口???(例如,在图7D中示为7AR和8AR)。在图7D的例子中,地址请求也导致在这两个高速缓存0和1中的高速缓存未命中(例如,在图7D中示为7高速缓存未命中)。
    当地址请求导致本地环0的所有高速缓存的高速缓存未命中时,从存 储器0中取出请求的数据。例如,当CIM0检查高速缓存命中或高速缓存未命中时,CIM0也发送地址请求到存储器接口???,例如,以在高速缓存未命中的情况下预先提取数据(例如,在图7D中示为7AR和8AR)。在确定所述地址请求是高速缓存未命中之后,CIM0还传送响应到存储器接口???,表明该地址请求是高速缓存0的高速缓存未命中(例如,在图7D中示为8Resp(未命中)和9Resp(未命中))。同样地,CIM2还发送响应到存储器接口???,表明该地址请求是高速缓存2的高速缓存未命中(在图7D中也示为8Resp(未命中)和9Resp(未命中))。
    如先前参考图7C讨论的,由图7D中的存储器接口???接收到的地址请求还表明两种响应(例如,来自CIM0和CIM2)将遵循地址请求。一旦存储器接口???接收两个高速缓存未命中指示(例如,从CIM0和CIM2),则存储器接口???从存储器0获取所请求的数据(例如,在图7D中示为10RD和11DATA)。然后存储器接口???发送从存储器0提取的数据到处理器P1,例如,经由全局接口???、CIM0与CIM1(例如,在图7D中示为12R,...,15R)。
    尽管图7A至图7D示出了仅检查本地环0的高速缓存来确定地址请求是否是高速缓存命中或高速缓存未命中,在一个实施例中,也可以检查另外一个本地环的高速缓存(例如,通过一个全局环互连到本地环0的本地环1),例如,假如本地环0的所有高速缓存导致高速缓存未命中。因此,在这样一个实施例中,访问本地环1的高速缓存是通过全局环进行的。在一个实施例中,在检查本地环1的其它高速缓存之前,首先检查与本地环1的本地接口??橄喙亓母咚倩捍?。
    图7E是一个示出了读操作的示例性方法750流程图,其中多核处理系统(例如,在图7A至图7D中示出的系统)工作在动态映射的高速缓存体系结构模式。
    在754,多个多个处理内核(例如,图7A至图7D中的处理器P0,...,P3)与多个内核接口??榈南嘤Φ哪诤私涌谀?橥ㄐ?例如,CIM0,...,3),所述多个内核接口??楸慌渲梦谝换沸瓮?,其中多个所述多个内核接 口??楸获詈系剿龆喔龈咚倩捍娴南嘤Φ母咚倩捍?例如,高速缓存0,...,3)。
    在758,由多个内核接口??榈牡谝荒诤私涌谀??例如,图7D中的CIM1)从多个处理内核的相应的第一处理内核(例如,处理器P1)接收事务请求以读取数据。
    在762,第一内核接口??榧觳橐匀范ㄒ寥〉氖菔欠癖桓咚倩捍嬖隈詈系剿龅谝荒诤私涌谀?榈牡谝桓咚倩捍?例如,高速缓存1);且当检查将被读取的数据是否被缓存在第一高速缓存,第一内核接口??榉⑺褪挛袂肭蟮降诙诤私涌谀??例如,图7D中的CIM3,它是主程接口???,以检查将要读取的数据是否被缓存在耦合到所述第二内核接口??榈牡诙咚倩捍?例如,高速缓存3)。
    在766,确定将被读出的数据不是缓存在第一高速缓存和第二高速缓存(例如,在图7D中示为1高速缓存未命中和3高速缓存未命中)的任一个中。因此,发送事务请求到第一环形网络的一个或多个其他内核接口??榈拿恳桓?例如,CIM0和CIM2),以检查将要读取的数据是否被缓存在分别耦合到所述一个或多个其他内核接口??榈囊桓龌蚨喔銎渌咚倩捍?例如,高速缓存0和高速缓存2)。
    在770,确定将被读出的数据不是缓存在一个或多个其它高速缓存的任一个(例如,在图7D中示为7高速缓存未命中)。因此,发送事务请求到存储器接口???例如,图7D中的存储器接口???)以从耦合到所述存储器接口??榈拇娲⑵?例如,存储器0)提取数据。
    在一个实施例中,系统工作在静态映射的高速缓存体系结构模式或者动态映射的高速缓存架构模式中的任一个。在一个示例中,比起实施动态映射的高速缓存体系结构模式,静态映射的高速缓存体系结构模式是相对较不复杂的实现。在一个例子中,比在静态映射的高速缓存架构模式中的未命中惩罚,在功耗和延迟方面,动态映射的高速缓存体系结构模式中高速缓存未命中的惩??梢愿?。然而,在一个示例中,考虑到上述讨论的启发式算法,相比于静态映射的高速缓存体系结构模式,动态映射的高速 缓存体系结构模式可以提供相对较好的延迟和更高的带宽。在一个实施例中,系统100是否工作在静态映射的高速缓存体系结构模式或者动态映射的高速缓存体系结构模式是可配置的。例如,系统100的一个参数被配置成选择性地操作系统100在静态映射的高速缓存体系结构模式或动态映射的高速缓存架构模式中的一个中。在另一个例子中,系统100是否工作在静态映射的高速缓存体系结构模式或动态映射的高速缓存体系结构模式是基于系统100的各种组件的配置或属性。作为一个例子,如果系统100表现出每个处理器的相对较小的存储器足迹(因此,显示出高速缓存的高的命中率)以及存储器和处理器之间相对高的亲和力,系统100工作在动态映射的高速缓存体系结构模式。在另一个例子中,如果系统100具有一个各个处理器之间相对较大的共享的存储器,则系统100工作在动态映射的高速缓存体系结构模式。
    结合存储器访问请求
    图8示出了用于组合多个存储器访问请求的系统800。该系统800包括一个耦合到本地环804的存储器接口???08。存储器接口???08还耦合到存储器812。在一个实施例中,环804、存储器接口???08和存储器812类似于图1的系统100的相应部件(或图6A至图6D和7A至图7D中相应的部件)。例如,环804、存储器接口???08和/或存储器812分别类似于图1的系统100的环160a、存储接口???26a和存储器128a。图8仅示出了环804的一部分,各种部件耦合到所述环(例如,参考图1讨论的)未在图8中示出。在一个实施例中,通过控制对存储器812的访问,存储器接口???08充当用于存储器812的存储器控制器。
    存储器接口???08接收存储器请求的流。某些这些请求是存储器访问请求,例如,以读取来自存储器812的各个存储器地址的数据。例如,存储器接口???08接收预先提取请求822以从存储器812的地址预先提取数据。例如,在处理器实际上需要数据之前,预先提取请求822是由一个处理器发出的。例如,处理器发出预先提取请求822,猜测所请求的数据可能很快需要一些时间。在一个实施例中,预先提取请求822是一个推 测性读取请求,例如,以基于可能在不久的将来需要数据的推测从存储器812读取数据(例如,基于处理器处理第一数据,处理器猜测处理器可能在不久的将来需要第二数据)。
    存储器接口???08还接收一个读取请求826,以从存储器812的地址读取数据。例如,当处理器要从存储器812的地址读取数据时,读取请求826是由处理器发出的。
    在一个实施例中,预先提取请求822和读取请求826可以由单个组件(例如,处理器)接收。在另一个实施例中,预先提取请求822和读取请求826可以由两个不同的相应部件接收(例如,预先提取请求822由第一处理器接收的,并且读取请求826由第二处理器接收)。
    图8示出了通过第一通信链路由存储器接口???08接收预先提取请求822(例如,从环804的左侧),并通过第二通信链路接收读取请求826(例如,从环804的右侧)。然而,在另一个实施例中,虽然未在图8中示出,存储器接口???08可以通过相同的通信链路接收预先提取请求822和读取请求826(例如,从环804的相同侧)。
    在一个实施例中,存储器接口???08同时接收预先提取请求822和读取请求826?;蛘?,在另一实施例中,存储器接口???08在接收读取请求826之前接收预先提取请求822(例如,当存储器接口???08接收预先提取请求822时存储器接口???08接收读取请求826,当预先提取请求822被排队在存储器接口???08进行处理时接收读取请求826,或者在由存储器接口???08充分执行预先提取请求822之前接收读取请求826)??商婊坏?,在又一实施例中,存储器接口???08在接收读取请求826之后接收预先提取请求822(例如,当存储器接口???08处理读取请求826时存储器接口???08接收预先提取请求822,当读取请求826被排队在存储器接口???08进行处理时接收预先提取请求826,或者在由存储器接口???08充分执行读取请求826之前)。
    在一个实施例中,发出每一个读取请求826和预先提取请求822以读取存储器812的同一存储器地址的数据。作为一个例子,每一个读取请求 826和预先提取请求822旨在读取存储器812的第一存储器地址的数据。
    在一个实施例中,存储器接口???08包括请求组合???32和优先级分配???38。在一个实施例中,该请求组合???32确定(i)读取请求826和预先提取请求822的两者同时为存储器接口???08的当前未决以执行,以及(ii)发出每一个读取请求826和预先提取请求822以读取存储器812的同一存储器地址的数据。在一个实施例中,基于这样的确定,请求组合???32结合读取请求826和预先提取请求822。例如,请求组合???32产生一个组合请求840以提取存储器812的数据,并从存储器812中读取数据。在一个实施例中,一旦从存储器812读出所请求的数据,则存储器接口???08发送存储器812读出的数据到读取请求826和预先提取请求822的发起者,从而完成了读取请求826和预先提取请求822的处理。在一个实施例中,组合请求840包括读取请求826,并且响应于所述预先提取请求822没有被执行数据的抓取。在一个实施例中,组合请求840包括从存储器812读取数据的请求。
    因此,如果分别单独执行读取请求826和预先提取请求822(即,如果请求组合???32不组合读取请求826和预先提取请求822),则存储器接口???08将需要访问存储器812两次,以从存储器812的同一存储器地址两次读出相同的数据(换言之,一旦用于处理读取请求826,并且一旦用于处理所述预先提取请求822)。然而,通过组合读取请求826和预先提取请求822,当处理读取请求826和预先提取请求822时,存储器接口???08需要访问存储器812仅一次。
    在一个实施例中,访问存储器812的请求有一个相应的相关联的优先级(例如,基于一种类型的请求的一个预先定义的优先级)。例如,存储器接口???08接收的读取请求(例如,读取请求826)具有第一优先级,而存储器接口???08接收的预先提取请求(例如,预先提取请求822)具有第二优先级。在一个实施例中,第一优先级高于所述第二优先级。即,如果具有第一优先级的读取请求是驻留在存储器接口???08以用于与预先提取请求一起处理,则读取请求是先于预先提取请求执行的(例如,由 于所述第一优先级高于所述第二优先级)。因此,第一优先级高于第二优先级意味着相比于预先提取请求该读取请求具有较高的执行优先级。
    如所讨论的,在一个例子中,由存储器接口???08接收到的读取请求826具有第一优先级,而由存储器接口???08接收的预先提取请求822具有第二优先级。在一个实施例中,优先级分配???38向组合请求840分配第三优先级。在一个实施例中,所述第三优先级是第一优先级和第二优先级中的较高者。在一个实施例中,第一优先级高于所述第二优先级,因此,第三优先级等于第一优先级。
    在一个实施例中,向组合请求840分配较高的优先级(例如,第一优先级),例如,执行驻留在存储器接口???08的各种其它预先提取请求之前,由存储器接口???08执行组合请求840。
    图9是一个流程图,示出了用于操作图8中的系统800的示例性方法900。在904,存储器接口???例如,存储器接口???08),其耦合到存储器(例如,存储器812),接收第一存储器访问请求(例如,预先提取请求822)以访问存储在存储器的数据,存储器接口??榕渲梦刂贫源娲⑵鞯姆梦?;以及存储器接口??榻邮盏诙娲⑵鞣梦是肭?例如,读取请求826)以访问存储在存储器中的数据。
    在908,基于所述第一存储器访问请求和第二存储器访问请求,存储器接口???例如,请求合并???32)生成第三存储器访问请求(例如,组合请求840),例如,通过组合所述第一存储器访问请求和第二存储器访问请求。在912,基于所述第三存储器访问请求,所述存储器接口??榉梦蚀娲⑵饕远寥〈娲⑵髦械氖?。
    描述可以使用术语“一个实施例”或“多个实施例”,其均可以指代相同或不同实施例的一个或多个。此外,在实施例中使用的术语“包括”、“包含”、“具有”等是同义的。
    已经按照最有助于理解所请求?;ぶ魈獾姆绞浇髦植僮饔置枋鑫喔龇至⒍骰虿僮?。然而,描述的顺序不应被认为是暗示这些操作必需依赖顺序。具体地,这些操作可以不按照呈现的顺序执行??梢园凑沼朊?述的实施例不同的顺序来执行描述的操作。在附加实施例中可以执行各种附加操作和/或可以省略描述的操作。
    尽管这里已经图示和描述了特定实施例,但本领域普通技术人员将理解到的是,在不脱离范围的情况下,被计算用于实现相同目的的各种各样的替代和/或等同实施例或实施方案可以代替图示和描述的这些实施例。本领域技术人员将容易理解到,可以以非常广泛的各种各样的方式来实施实施例。本申请旨在于覆盖这里讨论的实施例的任意修改或变体。因此,其目的显然是实施例仅受权利要求及其等同方案的限制。

    关于本文
    本文标题:多个处理器系统中的互连环形网络.pdf
    链接地址://www.4mum.com.cn/p-6143837.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 麻将来了cdkey在哪领 安徽快3开奖走势图 波克棋牌室下载 半全场4串11 快乐10分任5中奖多少钱 悠洋棋牌手机旧版 足球比分直播188 天猫店赚钱吗 中国竞猜 双色球复式查询法 在线单机捕鱼达人 福建36选7第14095期开奖结果查询 2017上期福彩中奖号 933彩票安卓 曾道人图库系列 甘肃11选5走势图解