首页> 中国专利> 自适应时分多路复用来自多处理器核芯的存储器引用

自适应时分多路复用来自多处理器核芯的存储器引用

摘要

所公开的实施例涉及用于处理从多个处理器核芯接收的存储器引用的系统。在操作期间,该系统监控存储器引用以确定在由存储器系统处理存储器引用时来自不同处理器核芯的存储器引用是否彼此干扰。如果来自不同处理器核芯的存储器引用彼此干扰,则该系统在处理器核芯之间对存储器引用的处理进行时分多路复用,使得在处理来自其他处理器核芯的存储器引用之前由存储器系统处理来自给定处理器核芯的连续的存储器引用的块。

著录项

  • 公开/公告号CN102597976A

    专利类型发明专利

  • 公开/公告日2012-07-18

    原文格式PDF

  • 申请/专利权人 拉姆伯斯公司;

    申请/专利号CN201080050435.7

  • 发明设计人 S·C·伍;T·A·戴普;M·T·钦;

    申请日2010-11-10

  • 分类号G06F13/16;G06F12/08;G06F12/06;G06F9/46;

  • 代理机构北京市金杜律师事务所;

  • 代理人酆迅

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 06:12:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-12-16

    授权

    授权

  • 2013-01-16

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20101110

    实质审查的生效

  • 2012-07-18

    公开

    公开

说明书

技术领域

所公开的实施例总体涉及用于计算机的存储器系统的设计。更 具体而言,所公开的实施例涉及为从多个处理器核芯接收的存储器 引用提供自适应时分多路复用的存储器系统的设计。

背景技术

计算技术的近来进展已使得计算机系统设计者能够将多个处理 器核芯有效地集成在单个芯片中。当前,双核芯处理器系统是常用 的,并且在未来的若干年中四核芯处理器系统将成为主导。向前推 若干年,基本上每个处理器制造商的技术路线图指示计算机系统中 的处理器核芯的数目的显著增长。因此,在不久的将来,计算机系 统有可能包括64、128、256或者甚至512个处理器核芯。

然而,随着更多数目的处理器核芯试图访问计算机存储器系统, 有可能产生冲突。更具体而言,由于处理器核芯一般运行不同的程 序,因此它们的存储器引用模式一般而言不相关联。这种关联的缺 乏对于具有少量处理器核芯和大量存储器库的计算机系统而言不是 问题,这是因为当库的数目远大于处理器核芯的数目时,平均而言, 两个或多个处理器核芯访问同一存储器库的可能性较小。因此,来 自给定处理器核芯的引用不太可能遇到来自另一处理器核芯的开放 页面(open page)。给定处理器核芯所访问的行有可能已经开放以 为来自给定处理器核芯的先前引用服务,这意味着存储器引用有可 能生成页面命中。

然而,随着处理器核芯的数目的增加,软件线程的数目有可能 成比例地增加,并且更多线程带来更多干扰。一个线程与另一线程 的线程干扰的可能性有可能随着针对存储器系统中的给定数目的库 的线程数目增加而显著增加。例如,作为保持页面开放以为来自同 一处理器核芯的多个列访问服务从而利用引用流中的空间局部性的 替代,来自另一处理器核芯的访问可以打断存储器访问流并且可以 使得页面关闭并且打开新的页面。这些附加的页面操作产生附加的 预充电和激活操作,并且可以导致用于存储器系统的较低效率以及 功率浪费。

附图说明

图1示出了如何根据所公开的实施例处理来自多个处理器核芯 的存储器引用的一个示例。

图2示出了如何根据所公开的实施例处理来自多个处理器核芯 的存储器引用的另一示例。

图3示出了根据所公开的实施例如何可以将处理器核芯耦合成 环状拓扑。

图4呈现了示出了如何根据所公开的实施例处理存储器引用的 流程图。

具体实施方式

时分多路复用

所公开的实施例提供可升级的解决方案,其通过增加系统存储 器控制器所见的、存储器引用流中的局部性来改进存储器系统功率 和性能。在执行过程期间,程序经常展现出变化数量的空间和时间 局部性。当多个程序并行运行时,尽管每个程序可以展现其自身的 空间和时间局部性,然而当它们的相应的存储器引用流到达存储器 控制器时,存储器引用流的混合可以导致空间和时间局部性被严重 减少。然而,为了改进总体的存储器引用流的局部性,当总体存储 器引用流展现出缺乏局部性时,存储器控制器可以在处理器核芯之 间对存储器系统的访问进行时分多路复用。该时分多路复用允许存 储器控制器从一个处理器核芯连续地发布多个存储器引用,从而利 用处理器核芯的局部性以改进总体的存储器系统功率消耗和性能。 这种技术有时向来自不同核芯的应用增加延迟,但是对于来自给定 处理器核芯的相继引用而言,通常延迟较少。

例如,图1示出了包括64个处理器核芯(核芯0、…、核芯63) 以及包括存储器库的存储器设备的系统。图1还示出了多个存储器 引用,其中每个存储器引用与特定来源核芯、库、行和列相关联。 例如,紧接在核芯0下方出现的存储器引用被标记为“核芯0、库0、 行0和列1”。该存储器引用还以缩略标记“C0、B0、R0、C1”出 现在库0的队列中,其中“C0”代表核芯0,“B0”代表库0,“R0” 代表行0,而“C0”代表列0。

在本示例中,处理器核芯(核芯0、…、核芯63)将其存储器 引用发送至存储器控制器104。存储器控制器104通过处理器接口 105接收这些引用并且将存储器引用转发给针对8个存储器库(库 0、…、库7)的相应的队列,并且继而通过存储器接口107转发给 8个存储器库。在一个示例中,存储器控制器和处理器核芯全部实现 为在单个芯片或集成电路设备上的功能电路块。存储器设备(例如 动态随机存取存储器设备)可以是包括组织为库的存储器单元的单 个芯片设备。备选地,存储器库可以与存储器核芯和存储器控制器 一起集成在单个芯片上。在另一实施例中,处理器核芯、存储器控 制器和存储器设备实现在单独的芯片上。单独的芯片的实现方式可 以例如通过使用硅通孔容纳于或封装于层叠布置中,并且可以包封 在单个封装外壳中。由于具有64个处理器核芯和8个存储器库,因 此来自不同处理器核芯的存储器引用可能在存储器库处彼此干扰。 来自核芯0的引用流访问库0和库1,而来自核芯63的引用流访问 库6和库7。然而,在该示例中,由于存在来自其他处理器核芯的大 量的干扰的存储器引用,因此每个存储器访问遭遇与另一处理器相 关联的开放页面,这导致页面未命中。

图2示出了其中在系统(诸如图1中所示的系统)中时分多路 复用已被激活的另一示例。图2中的系统也包括64个处理器核芯(核 芯0、…、核芯63)以及8个存储器库(库0、…、库7)。当时分 多路复用被激活时,每个处理器核芯能够连续地发布存储器引用的 块。这些连续的存储器引用的块通常具有某一数量的局部性,因此 这些访问倾向于生成更多的页面命中。具体而言,对页面的第一访 问可以生成页面未命中,但是由同一处理器核芯对同一页面的后续 访问将生成页面命中。这种增加的命中率降低了预充电和激活操作 的数目,这节省了功率并且可以可能地提高性能。

为了优化该技术的性能,重要的是能够确定何时开始和结束该 时分多路复用。为了实现这一点,系统可以使用(几个附加比特左 右的)提示来增强从处理器核芯发送至存储器控制器的每个存储器 请求,该提示指示如果发起核芯是计算机系统中的唯一请求者,则 业务是否将为命中、未命中或空闲访问。这些提示可以通过在好像 处理器核芯是系统中的唯一处理器核芯一样追踪所访问的页面的状 态的每个处理器和/或处理器核芯中维护存储结构来生成。(注意到, 该结构不同于位于存储器控制器中的类似结构,并且为除该类似结 构外的结构。)

接着,存储器控制器将这些提示与实际业务结果进行比较以确 定命中和空闲访问是否由于来自其他处理器核芯的存储器引用的干 扰而被变成未命中。如果在单独的处理器/核芯/线程处的过多命中和 空闲访问被变成未命中,则存储器控制器可以切换至时分多路复用。 重要的是注意到,即使在一些情形中这些提示可能对性能产生不利 影响,但是它们并不影响正确性。

此外,作为在处理器核芯处生成提示的替代,生成提示所涉及 的队列和其他电路可以备选地被并入到存储器控制器中。然而,这 可能导致过大和过于复杂的存储器控制器,该存储器控制器并不能 随处理器核芯的数目良好地升级,并且其可能变成性能的瓶颈。附 接至存储器引用的提示还可以包括关于在存储器引用完成之后是否 预充电页面的建议。

可以经由多个可能的通信机制(诸如来自存储器控制器的令牌 或直接消息)通知处理器核芯切换到时分多路复用模式中。例如, 在基于令牌的系统中,处理器核芯拥有令牌指示轮到该处理器核芯 发布存储器引用。如果处理器核芯并不具有待发布的任何引用,则 处理器核芯可以将令牌传递给另一处理器核芯。可以通过简单的处 理器核芯互连拓扑(诸如环)来高效地传送令牌。

令牌还可以在存储器控制器和核芯之间传送不同类型的信息。 示例包括何时打开和关闭时分多路复用,何时对库的子集(而非整 个存储器系统)进行时分多路复用以及何时针对核芯的子集执行时 分多路复用。可以基于诸如上述的那些提示或基于诸如在存储器控 制器处的存储器库队列的占用深度之类的附加信息做出关于何时打 开时分多路复用、对哪个库进行时分多路复用等的决策。注意到, 这些令牌提供了如下框架:其中关于存储器控制器的信息可以由处 理器核芯使用并且反之亦然。常规上,存储器系统已提供从处理器 核芯至存储器控制器的仅单向的通信,而没有从相反方向返回的通 信。

令牌和存储器引用还可以用于传送优先级信息。例如,特定线 程和相关联的存储器引用可以被标识为“高优先级”以确保高的服 务质量(QoS)。例如,可以允许高优先级引用不停顿地发布,并且 可以允许高优先级线程发布比低优先级线程更大的连续的引用的 块。

此外,被传递给处理器核芯的令牌或消息还可以包括指定可以 由核芯发布的连续的引用的数目的信息。以此方式,每个处理器核 芯可以发布给存储器控制的连续的存储器引用的数目可以依赖于所 处理的存储器引用与来自处理器核芯的提示的匹配良好程度而增加 或减少(在用户定义的极限内)。当少量命中/空闲访问变成未命中, 或者如果平均延迟受时分多路复用负面影响时,可以降低时分多路 复用的程度(每核芯较少的连续引用)或者可以终止时分多路复用。

环状拓扑

图3示出了根据所公开的实施例的多核芯处理器系统的示例性 环状拓扑。(注意到,环状拓扑仅是多个可能的互连拓扑中的一个。 一般而言,也可以使用其他互连拓扑。)该环状拓扑包括耦合至双 向环304的多个处理器核芯310-317。该系统还包括耦合到环304的 控制处理器318,其中控制处理器318促进执行操作系统和各种应用 并且还控制处理器核芯310-317的操作。环304还耦合至I/O接口 308以提供对I/O设备(诸如硬盘驱动器)的访问。环304附加地耦 合至一致性接口306,该一致性接口促进控制通过一致性接口306 连接的处理器核芯310-317、控制处理器318和在不同裸片(未示出) 上的附加的处理器核芯中的高速缓冲存储器之间的一致性。最后, 环304还耦合至存储器控制器302,其将来自处理器核芯310-317和 控制处理器318的存储器请求引导至多个存储器库(未示出)。

在图3中示出的计算机系统的操作期间,当计算机系统重负载 并且来自不同处理器核芯的存储器访问开始彼此干扰时,存储器控 制器302通过将令牌传递至环304上而发起时分多路复用(标签A)。 该令牌首先流至处理器核芯310,处理器核芯310响应于接收该令牌 而发布连续的存储器引用的块给存储器控制器302(标签B)。在处 理器核芯310已发布连续的存储器引用的块之后,处理器核芯310 将令牌传递回环上(标签C)。接着,令牌流至处理器核芯311,处 理器核芯311也发布其连续的存储器引用的块至存储器控制器302 (标签D)。在处理器核芯311已发布其连续的存储器引用的块之 后,处理器核芯311将令牌传递回环上(标签E)以供下一核芯使用, 其余类推。令牌继续围绕环循环以控制存储器引用的发布直至存储 器控制器302通过从环中移除令牌来终止时分多路复用。

由处理器核芯做出的调度决策

处理器核芯还可以做出某些调度决策以优化时分多路复用期间 的性能。例如,给定处理器核芯可以针对其自身的引用流追踪在每 个库中的最后开放页面。这使得给定处理器核芯能够确定哪个存储 器引用将在时分多路复用期间生成页面命中。处理器核芯还可以维 持其自身的本地队列,该本地队列存储至每个存储器库的待决引用。 处理器核芯继而可以在对待发送至存储器控制器的存储器引用的集 合进行合并之前检索和分类这些本地队列中的存储器引用。在处理 器核芯处的该附加的队列空间高效地充当针对每个库的溢出存储区 域,该区域将针对每个存储器库的待决引用的列表扩展超出存储器 控制器可以存储的量。

之前的示例假定所有的存储和调度决策由处理器核芯和存储器 控制器做出。然而,环状总线架构通常包括环“站”(进入和离开 环的地点,以及在环之间转移或跳过环站的地点),并且上述技术 也可以应用至环站。例如,存储器引用可以被缓冲在环站中,并且 可以使用令牌来控制对环站和/或它们相关联的处理器核芯的访问限 制。除了通过核芯和/或存储器控制器之外或者作为其替代,还可以 由环站做出调度决策。

延迟敏感请求

上面的实施例在一些方面涉及存储器系统重负载并且功率消耗 和带宽较重要的情形。然而,存在可以应用上述技术的其他一些实 施例,例如,当存储器系统轻负载并且减少延迟是更为重要的考虑 时。在此情形中,可以将存储器引用增强成包括指定何时生成存储 器引用的时间戳。如果时分多路复用被启用并且不能发布引用直至 处理器核芯获得令牌,则当存储器引用最终发布给存储器控制器时, 检查相关联的时间戳以确定引用被延迟了多久。如果延迟相对于存 储器引用在存储器库队列和存储器控制器中花费的时间较大,则时 分多路复用对于存储器延迟有害并且应该关闭针对该库/核芯的时分 多路复用。此外,如果平均延迟变得过高(并且队列并不满),则 存储器控制器可以发布第二令牌以有效地将等待时间减半。

处理存储器引用

图4呈现了示出了根据所公开的实施例如何处理存储器引用的 流程图。首先,每个处理器核芯确定如果来自处理器核芯的所有存 储器引用均在没有来自其他处理器核芯的干扰的情形下处理,则来 自该处理器核芯的存储器引用是否将生成页面命中、空闲访问或页 面未命中(步骤402)。接着,每个处理器核芯将提示和每个存储器 引用传送给处理器控制器,其中该提示指示存储器引用是否将生成 页面命中、空闲访问或页面未命中(步骤404)。

接着,存储器控制器使用提示来确定来自其他处理器核芯的存 储器引用是否正导致来自给定处理器核芯的、将生成页面命中或空 闲访问的存储器引用生成页面未命中,从而指示来自不同处理器核 芯的存储器引用彼此干扰(步骤406)。如果来自不同处理器核芯的 存储器引用彼此干扰,则存储器控制器开始在处理器核芯之间对存 储器引用的处理进行时分多路复用,从而在处理来自其他处理器核 芯的存储器引用之前处理来自给定存储器核芯的连续的存储器引用 的块(步骤408)。(注意到,如果提供了某些类型的反馈机制以使 得处理器核芯能够了解引用被证明是命中或未命中,则处理器核芯 有可能发起时分多路复用。处理器核芯继而可以将该信息与它们为 引用生成的提示进行比较)

最终,当时分多路复用发生时,如果来自不同处理器核芯的存 储器引用之间的干扰率低于阈值,或者如果针对存储器引用的延迟 超出阈值并且如果包含针对存储器库的待决引用的队列并未满,则 存储器控制器可以中断时分多路复用(步骤410)或者通过减少核芯 一次可以发布的连续的存储器引用的数目来减少时分多路复用的程 度。

一般化和扩展

上述技术涉及时分多路复用,但是它们可以被扩展至更为一般 的概念,即控制如何以及何时对将存储器引用从处理器核芯传递至 存储器控制器的机制做出改变。此外,尽管上述技术在包括仅一个 存储器控制器的计算机系统的上下文中描述,但是这些技术还可以 应用于具有多个存储器控制器的计算机系统。

此外,以上在环状总线架构的上下文中描述的存储和调度决策 可以被扩展至备选的互连拓扑,诸如网格或交叉连接的配置。

呈现之前的描述以使得本领域技术人员能够做出和使用所公开 的实施例,并且之前的描述提供在特定应用及其要求的上下文中。 对所公开的实施例的各种修改将对于本领域技术人员是显然的,并 且本文限定的一般原理可以应用至其他实施例和应用而不偏离所公 开实施例的精神实质和范围。因此,所公开的实施例并不限于所示 出的实施例,而是根据与本文公开的原理和特征的最宽广的范围相 一致。

此外,在具体实施例部分中描述的方法和过程可以体现为可以 存储在上述计算机可读存储介质中的代码和/或数据。当计算机系统 读取并且执行存储在计算机可读存储介质上的代码和/或数据时,计 算机系统执行体现为数据结构和代码并且存储在计算机可读存储介 质内的方法和过程。此外,下述方法和过程可以包括在硬件中。例 如,硬件可以包括但不限于专用集成电路(ASIC)芯片、现场可编 程门阵列(FPGA)、片上系统集成电路和现在已知的或将来开发的 其他可编程逻辑器件。当硬件被激活时,硬件执行包括在硬件模块 内的方法和过程。

已经仅出于说明和描述的目的呈现了前述的实施例的描述。它 们不旨在穷尽或是限制本发明为所公开的形式。因此,对于本领域 实践人员来说许多修改和变化是显然的。此外,上述公开不旨在限 制本发明。本发明的范围由所附权利要求限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号