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

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

Info

Publication number
CN102597976B
CN102597976B CN201080050435.7A CN201080050435A CN102597976B CN 102597976 B CN102597976 B CN 102597976B CN 201080050435 A CN201080050435 A CN 201080050435A CN 102597976 B CN102597976 B CN 102597976B
Authority
CN
China
Prior art keywords
core
memory reference
processor core
memory
division multiplexing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201080050435.7A
Other languages
English (en)
Other versions
CN102597976A (zh
Inventor
S·C·伍
T·A·戴普
M·T·钦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rambus Inc
Original Assignee
Rambus Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rambus Inc filed Critical Rambus Inc
Publication of CN102597976A publication Critical patent/CN102597976A/zh
Application granted granted Critical
Publication of CN102597976B publication Critical patent/CN102597976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

自适应时分多路复用来自多处理器核芯的存储器引用
技术领域
所公开的实施例总体涉及用于计算机的存储器系统的设计。更具体而言,所公开的实施例涉及为从多个处理器核芯接收的存储器引用提供自适应时分多路复用的存储器系统的设计。
背景技术
计算技术的近来进展已使得计算机系统设计者能够将多个处理器核芯有效地集成在单个芯片中。当前,双核芯处理器系统是常用的,并且在未来的若干年中四核芯处理器系统将成为主导。向前推若干年,基本上每个处理器制造商的技术路线图指示计算机系统中的处理器核芯的数目的显著增长。因此,在不久的将来,计算机系统有可能包括64、128、256或者甚至512个处理器核芯。
然而,随着更多数目的处理器核芯试图访问计算机存储器系统,有可能产生冲突。更具体而言,由于处理器核芯一般运行不同的程序,因此它们的存储器引用模式一般而言不相关联。这种关联的缺乏对于具有少量处理器核芯和大量存储器库的计算机系统而言不是问题,这是因为当库的数目远大于处理器核芯的数目时,平均而言,两个或多个处理器核芯访问同一存储器库的可能性较小。因此,来自给定处理器核芯的引用不太可能遇到来自另一处理器核芯的开放页面(openpage)。给定处理器核芯所访问的行有可能已经开放以为来自给定处理器核芯的先前引用服务,这意味着存储器引用有可能生成页面命中。
然而,随着处理器核芯的数目的增加,软件线程的数目有可能成比例地增加,并且更多线程带来更多干扰。一个线程与另一线程的线程干扰的可能性有可能随着针对存储器系统中的给定数目的库的线程数目增加而显著增加。例如,作为保持页面开放以为来自同一处理器核芯的多个列访问服务从而利用引用流中的空间局部性的替代,来自另一处理器核芯的访问可以打断存储器访问流并且可以使得页面关闭并且打开新的页面。这些附加的页面操作产生附加的预充电和激活操作,并且可以导致用于存储器系统的较低效率以及功率浪费。
附图说明
图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)、片上系统集成电路和现在已知的或将来开发的其他可编程逻辑器件。当硬件被激活时,硬件执行包括在硬件模块内的方法和过程。
已经仅出于说明和描述的目的呈现了前述的实施例的描述。它们不旨在穷尽或是限制本发明为所公开的形式。因此,对于本领域实践人员来说许多修改和变化是显然的。此外,上述公开不旨在限制本发明。本发明的范围由所附权利要求限定。

Claims (36)

1.一种用于处理在包括多个处理器核芯的系统中的存储器引用的方法,所述方法包括:
监控存储器引用以确定在所述存储器引用在所述系统中处理时,所述存储器引用是否彼此干扰,其中确定存储器引用是否彼此干扰包括:
在给定处理器核芯或线程处确定如果来自所述给定处理器或线程核芯的所有存储器引用均在没有来自其他处理器核芯或线程的干扰的情形下被处理,那么来自所述给定处理器核芯或线程的存储器引用是否将生成页面命中、空闲访问和页面未命中之一;
将提示与来自所述给定处理器核芯或线程的每个存储器引用一起传送给存储器控制器,其中所述提示指示所述存储器引用是否将生成页面命中、空闲访问或页面未命中;以及
在所述存储器控制器处,使用所述提示来确定来自其他处理器核芯或线程的存储器引用是否正导致来自所述给定处理器核芯或线程的、将生成页面命中或空闲访问的存储器引用生成页面未命中,从而指示来自不同处理器核芯或线程的存储器引用彼此干扰;以及
如果存储器引用彼此干扰,则对存储器引用的处理进行时分多路复用,使得在处理其他的存储器引用之前处理连续的存储器引用的块。
2.根据权利要求1所述的方法,其中所述存储器引用来自不同的处理器核芯和不同的线程中的一个,其中确定存储器引用是否彼此干扰包括确定所述存储器引用是否交织于同一存储器库。
3.根据权利要求1所述的方法,其中在所述时分多路复用发生时,如果存储器之间的干扰率低于阈值,则所述方法还包括中断对由处理器核芯或线程发布的连续的存储器引用的块中的存储器引用的时分多路复用。
4.根据权利要求1所述的方法,
其中监控所述存储器引用包括测量针对每个存储器引用的延迟;以及
其中在时分多路复用发生时,如果针对存储器引用的延迟超出阈值,并且如果包含针对存储器库的待决引用的队列未满,则所述方法还包括中断所述时分多路复用或者减少连续的存储器引用的块中的存储器引用的数目。
5.根据权利要求1所述的方法,其中所述系统中的所述多个处理器核芯以环状拓扑耦合在一起,其中所述时分多路复用包括在处理器核芯之间的环上传递令牌,并且其中令牌允许处理器核芯发布连续的存储器引用的块。
6.根据权利要求5所述的方法,其中所述时分多路复用还包括使多个令牌在所述环上循环。
7.根据权利要求5所述的方法,其中所述时分多路复用应用至涉及所述存储器系统中的特定库的引用,而不应用至涉及其他库的引用。
8.根据权利要求5所述的方法,其中所述时分多路复用应用至源自所述系统中的处理器核芯的特定子集的引用,而不应用至源自其他处理器核芯的引用。
9.根据权利要求5所述的方法,其中所述令牌基于一个或多个条件跳过所述环上的特定处理器核芯。
10.根据权利要求5所述的方法,其中所述令牌指定所述多个处理器核芯在所述时分多路复用期间在没有来自所述多个处理器核芯的其他处理器核芯的干扰的情形下发布的连续的存储器引用的块的大小。
11.根据权利要求5所述的方法,其中时分多路复用包括持续一段时间防止一个或多个处理器核芯发布存储器引用。
12.根据权利要求5所述的方法,其中所述时分多路复用包括允许预定的存储器引用行进而无需等待其他的存储器引用。
13.根据权利要求5所述的方法,其中所述时分多路复用包括允许预定的线程发布比较低优先级线程发布的连续的存储器引用的块大的连续的存储器引用的块。
14.根据权利要求1所述的方法,
其中给定处理器核芯保持追踪待决存储器引用;以及
其中在时分多路复用发生时,所述给定处理器核芯在所述处理器核芯发布连续的存储器引用的块时重新排列所述待决存储器引用以最大化页面命中和空闲访问。
15.一种用于处理在包括多个处理器核芯的系统中的存储器引用的方法,所述方法包括:
处理存储器引用;
监控所述存储器引用,以确定在处理所述存储器引用时来自不同线程的存储器引用是否彼此干扰,其中确定存储器引用是否彼此干扰包括:
在给定处理器核芯或线程处确定如果来自所述给定处理器或线程核芯的所有存储器引用均在没有来自其他处理器核芯或线程的干扰的情形下被处理,那么来自所述给定处理器核芯或线程的存储器引用是否将生成页面命中、空闲访问和页面未命中之一;
将提示与来自所述给定处理器核芯或线程的每个存储器引用一起传送给存储器控制器,其中所述提示指示所述存储器引用是否将生成页面命中、空闲访问或页面未命中;以及
在所述存储器控制器处,使用所述提示来确定来自其他处理器核芯或线程的存储器引用是否正导致来自所述给定处理器核芯或线程的、将生成页面命中或空闲访问的存储器引用生成页面未命中,从而指示来自不同处理器核芯或线程的存储器引用彼此干扰;以及
如果来自不同线程的存储器引用彼此干扰,则在线程之间对存储器引用的处理进行时分多路复用,使得在处理来自其他线程的存储器引用之前处理来自给定线程的连续的存储器引用的块。
16.一种处理器核芯,包括:
处理单元,用于执行对数据进行操作的指令;
接口,用于发送存储器引用至存储器控制器;以及
监控电路,被配置成确定如果来自存储器核芯的所有存储器引用在没有来自其他处理器核芯的干扰的情形下被处理,那么来自所述处理器核芯的存储器引用是否将生成页面命中、空闲访问以及页面未命中之一;
其中所述监控电路被配置成将提示和存储器引用一起传送给所述存储器控制器,其中所述提示指示存储器引用是否将生成页面命中、空闲访问和页面未命中之一,并且其中所述存储器控制器使用所述提示来确定来自其他处理器核芯的存储器引用是否导致来自给定处理器核芯的、将生成页面命中或空闲访问的存储器引用生成页面未命中,从而指示来自不同处理器核芯的存储器引用彼此干扰。
17.一种集成电路,包括:
多个处理器核芯;以及
存储器控制器,确定在处理所述存储器引用时来自所述多个处理器核芯的存储器引用是否彼此干扰;以及
其中如果来自所述多个处理器核芯的不同处理器核芯的存储器引用彼此干扰,则所述存储器控制器被配置成在处理器核芯之间对存储器引用的处理进行时分多路复用,使得在处理来自其他处理器核芯的存储器引用之前处理来自给定处理器核芯的连续的存储器引用的块;
其中给定处理器核芯被配置成确定如果来自所述给定处理器核芯的所有存储器引用在没有来自其他处理器核芯的干扰的情形下被处理,那么来自所述给定处理器核芯的存储器引用是否将生成页面命中、空闲访问或页面未命中之一;
其中所述给定处理器核芯被配置成将提示与每个存储器引用一起传送给存储器控制器,其中所述提示指示所述存储器引用是否将生成页面命中、空闲访问和页面未命中之一;以及
其中所述存储器控制器被配置成使用所述提示来确定来自其他处理器核芯的存储器引用是否正使得来自所述给定处理器核芯的、将生成页面命中或空闲访问的存储器引用生成页面未命中,从而指示来自不同处理器核芯的存储器引用彼此干扰。
18.根据权利要求17所述的集成电路,其中确定来自不同处理器核芯的存储器引用是否彼此干扰包括确定来自不同处理器核芯的存储器引用是否交织于同一存储器库,从而导致引起附加的预充电和激活操作的附加的页面未命中。
19.根据权利要求17所述的集成电路,其中在所述时分多路复用发生时,如果来自不同处理器核芯的存储器引用之间的干扰率低于阈值,则所述存储器控制器被配置成中断所述时分多路复用或减少由处理器核芯发布的连续的存储器引用的块中的存储器引用的数目。
20.根据权利要求17所述的集成电路,
其中在监控所述存储器引用时,所述存储器控制器被配置成测量针对每个存储器引用的延迟;以及
其中在时分多路复用发生时,如果针对所述存储器引用的延迟超出阈值,并且如果包含针对所述存储器库的待决引用的队列未满,则所述存储器控制器被配置成中断所述时分多路复用或减少由处理器核芯发布的连续的存储器引用的块中的存储器引用的数目。
21.根据权利要求17所述的集成电路,其中所述集成电路中的所述多个处理器核芯以环状拓扑耦合在一起,其中所述时分多路复用通过在所述环上的处理器核芯之间传递一个或多个令牌来实现,并且其中令牌允许处理器核芯发布连续的存储器引用的块。
22.根据权利要求21所述的集成电路,其中所述时分多路复用还包括使多个令牌在所述环上循环。
23.根据权利要求21所述的集成电路,其中所述时分多路复用应用至涉及所述存储器集成电路中的特定库的引用,而不应用至涉及其他库的引用。
24.根据权利要求21所述的集成电路,其中所述时分多路复用应用至源自所述集成电路中的处理器核芯的特定子集的引用,而不应用至源自其他处理器核芯的引用。
25.根据权利要求21所述的集成电路,其中给定令牌基于一个或多个条件跳过所述环上的特定处理器核芯。
26.根据权利要求21所述的集成电路,每个令牌指定所述多个处理器核芯在所述时分多路复用期间在没有来自所述多个处理器核芯的其他处理器核芯的干扰的情形下可以发布的连续的存储器引用的块的大小。
27.根据权利要求21所述的集成电路,其中所述时分多路复用包括持续一段时间防止一个或多个处理器核芯发布存储器引用。
28.根据权利要求21所述的集成电路,其中所述时分多路复用包括允许特定的高优先级引用行进而无需等待其他引用。
29.根据权利要求21所述的集成电路,其中所述时分多路复用包括允许高优先级线程发布比较低优先级线程发布的连续的存储器引用的块大的连续的存储器引用的块。
30.根据权利要求21所述的集成电路,其中所述处理器核芯通过环站耦合至所述环,并且其中所述时分多路复用在所述环站内执行。
31.根据权利要求17所述的集成电路,
其中给定处理器核芯被配置成保持追踪待决存储器引用;以及
其中在时分多路复用发生时,所述给定处理器核芯被配置成在所述处理器核芯发布连续的存储器引用的块时重新排列所述待决存储器引用以最大化页面命中和空闲访问。
32.一种存储器控制器,包括:
处理器接口,被配置成耦合至多个处理器核芯;
存储器接口,被配置成耦合至多个存储器设备;以及
控制电路,用于接收来自所述多个处理器核芯的存储器引用以及向所述多个存储器设备发布所述存储器引用;
其中所述控制电路被配置成监控存储器引用,以确定来自不同处理器核芯的存储器引用是否彼此干扰;以及
其中如果来自不同处理器核芯的存储器引用彼此干扰,则所述控制电路被配置成在处理器核芯之间对存储器引用的处理进行时分多路复用,使得在处理来自其他处理器核芯的存储器引用之前处理来自给定处理器核芯的连续的存储器引用的块;
其中所述存储器控制器被配置成与来自给定处理器核芯的每个存储器引用一起接收提示,其中所述提示指示如果来自所述给定处理器核芯的所有存储器引用在没有来自其他处理器核芯的干扰的情形下处理,则所述存储器引用是否将生成页面命中、空闲访问和页面未命中之一;以及
其中所述存储器控制器被配置成使用所述提示来确定来自其他处理器核芯的存储器引用是否正使得来自所述给定处理器核芯的、将生成页面命中或空闲访问的存储器引用生成页面未命中,从而指示来自不同处理器核芯的存储器引用彼此干扰。
33.根据权利要求32所述的存储器控制器,其中在确定来自不同处理器核芯的存储器引用是否彼此干扰时,所述存储器控制器被配置成确定来自不同处理器核芯的存储器引用是否交织于同一存储器库,从而导致引起附加的预充电和激活操作的附加的页面未命中。
34.根据权利要求32所述的存储器控制器,其中在所述时分多路复用发生时,如果来自不同处理器核芯的存储器引用之间的干扰率低于阈值,则所述存储器控制器被配置成中断所述时分多路复用或减少由处理器核芯发布的连续的存储器引用的块中的存储器引用的数目。
35.根据权利要求32所述的存储器控制器,
其中在监控所述存储器引用时,所述存储器控制器被配置成测量针对每个存储器引用的延迟;以及
其中在时分多路复用发生时,如果针对所述存储器引用的延迟超出阈值,并且如果包含针对所述存储器库的待决引用的队列未满,则所述存储器控制器配置成中断所述时分多路复用或减少由处理器核芯发布的连续的存储器引用的块中的存储器引用的数目。
36.根据权利要求32所述的存储器控制器,其中所述多个处理器核芯以环状拓扑耦合在一起,其中所述存储器控制器被配置成通过在所述环上转发一个或多个令牌来促进所述时分多路复用,并且其中令牌允许处理器核芯发布连续的存储器引用的块。
CN201080050435.7A 2010-01-19 2010-11-10 自适应时分多路复用来自多处理器核芯的存储器引用 Active CN102597976B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29642310P 2010-01-19 2010-01-19
US61/296,423 2010-01-19
PCT/US2010/056195 WO2011090537A2 (en) 2010-01-19 2010-11-10 Adaptively time-multiplexing memory references from multiple processor cores

Publications (2)

Publication Number Publication Date
CN102597976A CN102597976A (zh) 2012-07-18
CN102597976B true CN102597976B (zh) 2015-12-16

Family

ID=44307445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080050435.7A Active CN102597976B (zh) 2010-01-19 2010-11-10 自适应时分多路复用来自多处理器核芯的存储器引用

Country Status (4)

Country Link
US (1) US8935489B2 (zh)
EP (1) EP2526493B1 (zh)
CN (1) CN102597976B (zh)
WO (1) WO2011090537A2 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9697146B2 (en) * 2012-12-27 2017-07-04 Advanced Micro Devices, Inc. Resource management for northbridge using tokens
CN111651378B (zh) * 2020-07-06 2023-09-19 Oppo广东移动通信有限公司 一种数据存储方法、SoC芯片及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496909B1 (en) * 1999-04-06 2002-12-17 Silicon Graphics, Inc. Method for managing concurrent access to virtual memory data structures
CN1506835A (zh) * 2002-12-12 2004-06-23 国际商业机器公司 使用处理器互连进行微处理器通信的方法和数据处理系统
US7043599B1 (en) * 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
US7178005B1 (en) * 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829007A (en) * 1993-06-24 1998-10-27 Discovision Associates Technique for implementing a swing buffer in a memory array
US5611075A (en) * 1994-10-04 1997-03-11 Analog Devices, Inc. Bus architecture for digital signal processor allowing time multiplexed access to memory banks
US6119173A (en) * 1997-01-27 2000-09-12 Alcatel Usa Sourcing, L.P. System and method for communications and process management in a distributed telecommunications switch
US6499031B1 (en) * 1999-07-26 2002-12-24 Microsoft Corporation Systems and methods for using locks with computer resources
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6895479B2 (en) * 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
US7093094B2 (en) 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7020762B2 (en) * 2002-12-24 2006-03-28 Intel Corporation Method and apparatus for determining a dynamic random access memory page management implementation
AU2003303438A1 (en) * 2002-12-24 2004-07-22 Sun Microsystems, Inc. Performing hardware scout threading in a system that supports simultaneous multithreading
US6938130B2 (en) * 2003-02-13 2005-08-30 Sun Microsystems Inc. Method and apparatus for delaying interfering accesses from other threads during transactional program execution
US7240164B2 (en) * 2003-08-14 2007-07-03 Intel Corporation Folding for a multi-threaded network processor
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
US8892821B2 (en) 2003-12-10 2014-11-18 International Business Machines Corporation Method and system for thread-based memory speculation in a memory subsystem of a data processing system
US7197652B2 (en) 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
JP4287799B2 (ja) * 2004-07-29 2009-07-01 富士通株式会社 プロセッサシステムおよびスレッド切り替え制御方法
US8065459B2 (en) * 2006-05-17 2011-11-22 Nxp B.V. Multi-processing system and a method of executing a plurality of data processing tasks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496909B1 (en) * 1999-04-06 2002-12-17 Silicon Graphics, Inc. Method for managing concurrent access to virtual memory data structures
US7043599B1 (en) * 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
CN1506835A (zh) * 2002-12-12 2004-06-23 国际商业机器公司 使用处理器互连进行微处理器通信的方法和数据处理系统
US7178005B1 (en) * 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor

Also Published As

Publication number Publication date
US20120278583A1 (en) 2012-11-01
EP2526493B1 (en) 2019-06-19
WO2011090537A3 (en) 2011-10-20
US8935489B2 (en) 2015-01-13
EP2526493A4 (en) 2015-04-15
CN102597976A (zh) 2012-07-18
EP2526493A2 (en) 2012-11-28
WO2011090537A2 (en) 2011-07-28

Similar Documents

Publication Publication Date Title
US10705878B2 (en) Task allocating method and system capable of improving computational efficiency of a reconfigurable processing system
US20230004329A1 (en) Managed fetching and execution of commands from submission queues
US8266393B2 (en) Coordination among multiple memory controllers
CN105339917A (zh) 访问存储器中数据的分离的存储器控制器
US20190354317A1 (en) Operation instruction scheduling method and apparatus for nand flash memory device
US20170083474A1 (en) Distributed memory controller
CN105320608B (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
US10705986B2 (en) Flash interface controller and operation command processing method
US20130212594A1 (en) Method of optimizing performance of hierarchical multi-core processor and multi-core processor system for performing the method
US20070156955A1 (en) Method and apparatus for queuing disk drive access requests
CN104584497A (zh) 管理具有流控制的二维网络中的饥饿和阻塞
US20110113200A1 (en) Methods and apparatuses for controlling cache occupancy rates
US9081576B2 (en) Task scheduling method of a semiconductor device based on power levels of in-queue tasks
US8930436B2 (en) Apparatus and method of dynamically distributing load in multiple cores
US11134021B2 (en) Techniques for processor queue management
CN102597976B (zh) 自适应时分多路复用来自多处理器核芯的存储器引用
CN106911740A (zh) 一种缓存管理的方法和装置
CN116724287A (zh) 一种内存控制方法及内存控制装置
CN114500401B (zh) 一种应对突发流量的资源调度方法和系统
CN105208111B (zh) 一种信息处理的方法及物理机
CN113767368A (zh) 资源获取方法、相关装置及计算机存储介质
CN113568563A (zh) 用于ssd的自适应存储调度器
CN101661406A (zh) 处理单元调度装置和方法
EP3771164B1 (en) Technologies for providing adaptive polling of packet queues

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant