CN108292281A - 实现带宽服务质量的非一致性存储器访问延迟调整 - Google Patents

实现带宽服务质量的非一致性存储器访问延迟调整 Download PDF

Info

Publication number
CN108292281A
CN108292281A CN201680068847.0A CN201680068847A CN108292281A CN 108292281 A CN108292281 A CN 108292281A CN 201680068847 A CN201680068847 A CN 201680068847A CN 108292281 A CN108292281 A CN 108292281A
Authority
CN
China
Prior art keywords
request
group
queue
aiming field
sent out
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.)
Granted
Application number
CN201680068847.0A
Other languages
English (en)
Other versions
CN108292281B (zh
Inventor
F·甘博纳特
K·库马尔
T·维尔哈姆
R·K·拉马努詹
B·J·什莱赫塔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN108292281A publication Critical patent/CN108292281A/zh
Application granted granted Critical
Publication of CN108292281B publication Critical patent/CN108292281B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/603Details of cache memory of operating mode, e.g. cache mode or local memory mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

系统、装置和方法可以提供检测由存储器架构中的多个域共享的队列中的发出的请求,其中所述多个域与非一致性访问延迟相关联。另外,可以确定与发出的请求相关联的目标域。此外,如果所述发出的请求满足关于目标域的过度表示条件并且第一组附加请求与目标域相关联,则可以防止第一组附加请求被发出到队列。在一个示例中,第二组附加请求被允许发出到队列,而第一组附加请求被防止发出到队列,其中第二组附加请求与多个域中的一个或多个剩余域相关联。

Description

实现带宽服务质量的非一致性存储器访问延迟调整
相关申请的交叉引用
本申请要求于2015年12月24日提交的美国非临时专利申请第14/998,085号的优先权的利益。
技术领域
实施例一般涉及存储器结构。更具体地,实施例涉及用于实现带宽服务质量的非一致性存储器访问延迟调整。
背景技术
存储器技术的最近发展可能导致出现更先进的存储器结构来补充和/或取代传统的动态随机存取存储器(DRAM)。因此,计算系统中的给定存储器架构可能包括许多不同的存储器池,每个池具有不同的访问延迟、带宽和/或其他性质。多个计算核心可以通过具有有限数量条目的共享缓冲器访问各种存储器池。由于存储器池的非一致性存储器访问(NUMA)延迟,访问较高延迟池的请求可能会随着时间的推移控制共享缓冲器。例如,如果池A相对“快”并且具有较低的访问延迟(例如,50ns)并且池B相对“慢”并且具有较高的访问延迟(例如,500ns),则服务访问池A的请求平均比服务访问池B的请求快十倍。当池A访问请求被快速服务并从共享缓冲器中移除时,它们可以用对池B的较慢请求替换。在这种情况下,共享缓冲器可能最终被访问池B的请求填满。因此,生成池A请求的过程可能会经历对服务质量(QoS)和/或性能的负面影响。
附图说明
通过阅读以下说明书和所附权利要求,并且通过参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,其中:
图1是根据实施例的计算系统的示例的框图;
图2是根据实施例操作高速缓存代理装置的方法的示例的流程图;
图3是根据实施例的信用策略实施场景的示例的框图;
图4是根据实施例的节制场景的示例的框图;
图5是根据实施例的高速缓存代理的示例的框图;并且
图6是根据实施例的延迟感知计算系统的示例的框图。
具体实施方式
存储器架构的最新发展可以提供用于存储被认为存储在易失性存储器中的易失性数据的非易失性存储器(NVM)。例如,这样的易失性数据可以包括例如由应用程序或操作系统使用的数据,应用程序或操作系统认为所述数据存储在易失性存储器中并且在系统重置之后不再存储在易失性存储器中。NVM的例子可以包括例如块可寻址存储器设备,诸如NAND或NOR技术、相变存储器(PCM)、三维交叉点存储器或其他字节可寻址非易失性存储器设备、使用硫族化物相变材料(例如硫族化物玻璃)的存储器设备、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、诸如固态盘(SSD)NAND或NOR的闪存、多阈值级NAND闪存、NOR闪存、包含忆阻器技术的磁阻随机存取存储器(MRAM)存储器、自旋转移转矩(STT)-MRAM或上述任何组合或其他存储器。这些存储器结构在数据中心环境中尤其有用,例如高性能计算(HPC)系统、大数据系统和涉及相对高带宽数据传输的其他架构。
现在转到图1,示出了延迟感知计算系统10,其中存储器架构包括与非一致性访问延迟相关联的多个域(例如,池、级)。计算系统10通常可以是具有计算功能(例如数据中心、服务器、个人数字助理/PDA、笔记本电脑、平板电脑)、通信功能(例如智能电话)、成像功能、媒体播放功能(例如,智能电视/TV)、可穿戴功能(例如手表、眼镜、头饰、鞋类、珠宝)、车辆功能(例如汽车、卡车、摩托车)等或其任何组合的电子设备/平台的部分。在所示出的示例中,节点12(“节点0”)包括插槽14(“插槽0”,例如包括具有主处理器、多个核心和一个或多个高速缓存代理的半导体管芯/芯片,未示出),该插槽14经由本地链路18(例如,统一路径互连/UPI)通信地耦合到插槽16(“插槽1”,例如,包括具有主处理器、多个核心和一个或多个高速缓存代理的半导体管芯/芯片,未示出)。
类似地,节点20(“节点2”)可以包括插槽22(“插槽0”,例如包括具有主处理器、多个核心和一个或多个高速缓存代理的半导体管芯/芯片,未示出),该插槽22经由本地链路26(例如,UPI)通信地耦合到插槽24(“插槽1”,例如,包括具有主处理器、多个核心和一个或多个高速缓存代理的半导体管芯/芯片,未示出)。例如,每个插槽14、16、22、24可以耦合到本地存储器,诸如易失性存储器。在这方面,节点12、20的高速缓存代理可以分别使用共享队列,诸如缓冲器、超级队列(SQ)、请求表(TOR)等来管理本地(例如,管芯上)请求以访问计算系统10中的本地和远程存储器。
示例性易失性存储器包括动态易失性存储器,包括DRAM(动态随机存取存储器),或诸如同步DRAM(SDRAM)的一些变体。
这里描述的存储器子系统可以与许多存储器技术兼容,诸如DDR4(DDR version4,2012年9月由JEDEC发布的初始规范)、LPDDR4(LOW POWER DOUBLE DATA RATE(LPDDR)version 4,JESD209-4,最初由JEDEC于2014年8月发布)、WIO2(Wide I/O 2(WideIO2),JESD229-2,最初由JEDEC于2014年8月发布)、HBM(HIGH BANDWIDTH MEMORY DRAM,JESD235,最初由JEDEC于2013年10月发布)、DDR5(DDR version5,目前由JEDEC讨论)、LPDDR5(LPDDRversion 5,目前由JEDEC讨论)、HBM2(HBM version 2,目前由JEDEC讨论)和/或其他,以及基于这些规范的衍生物或扩展的技术。
例如,节点28(“节点3”)可以包括插槽30(“插槽0”,例如,包括具有主处理器、多个核心和一个或多个高速缓存代理的半导体管芯/芯片,未示出),该插槽30通信地耦合到DDR标准兼容存储器32和HBM标准兼容存储器34。所示插槽30还经由本地链路38(例如,UPI)通信地耦合到插槽36(“插槽1”,例如,包括具有主处理器、多个核心和一个或多个高速缓存代理的半导体管芯/芯片,未示出)。插槽36又可以本地耦合到DDR存储器40和高带宽存储器42。
此外,另一个节点44(“节点1”)可以包括被配置为存储易失性数据的NVM服务器46,其中所示的NVM服务器46耦合到多个NVM节点48(例如“NVM节点0”到“NVM节点n”)。节点12可以经由接口52(例如主机结构接口/HFI)和链路54通信地耦合到交换机50。类似地,节点20可以经由接口56(例如,HFI)和链路58通信地耦合到交换机50,节点28可以经由接口60(例如,HFI)和链路62通信地耦合到交换机50,并且节点44可以经由接口64(例如,HFI)和链路66通信地耦合到交换机50。所示系统10的存储器架构可以被认为是非一致性存储器访问(NUMA)架构,其程度在于:可以以不同速度访问不同域,这取决于请求访问的核心的位置和正被访问的存储器的位置。
例如,节点28中的插槽30的核心可以观察和/或遇到至少四个不同的延迟域:(1)本地DDR存储器32;(2)本地高带宽存储器34;(3)由插槽36暴露的存储器;以及(4)由节点44上的NVM服务器46暴露的存储器、由节点12暴露的存储器、以及由节点20暴露的存储器。由插槽30遇到的每个延迟域可以被认为是在从域中取回数据(例如,缓存行)的延迟和性能影响方面表现出不同的行为的“归属(home)”。实际上,除了远程访问延迟之外,性能可能受到一致性管理(例如,窥探)的影响。如将更详细讨论的,自适应高速缓存代理可以执行负载均衡和公平操作,以控制核心上运行的线程向不同延迟域发出请求的速率。因此,由于插槽30中的共享队列由本地访问请求(例如,NVM节点48)支配和/或过分表示,所以由在插槽30上运行的线程访问DDR存储器32的请求可能不会经历QoS或性能的降级。
图2示出了操作自适应高速缓存代理装置的方法70。方法70通常可以在计算系统节点(例如,已经讨论的节点12、20、28、44(图1)中的一个或多个)中实现。更具体地,方法70可以实现为以下中的一个或多个模块:在机器或计算机可读存储介质中存储的一组逻辑指令中,诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等;在可配置逻辑中,诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD);在使用电路技术的固定功能逻辑硬件中,诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术,或其任意组合。例如,用于执行方法70中所示的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言和常规的过程性编程语言,诸如“C”编程语言或类似的编程语言。
图示的处理框72提供检测由存储器架构中的多个域共享的队列中的发出的请求。来自多个域的聚合请求导致对存储系统的不一致访问延迟。在框74处可以确定与发出的请求相关联的目标域(destination domain)。框74可以包括将一组系统地址解码器(SAD)规则(例如,使用预编译的代码/p码配置的解码器)按一定的优先级顺序应用于发出的请求。最适当的解码器规则可以对应于发出的请求的目的地(例如,归属)延迟域/池/等级。在这方面,除了目标节点、地址范围和其他解码器领域之外,解码器可以自动地将存储器级别识别为例如整数值(例如,0到N,其中0是最快的访问延迟并且N是最慢的延迟)。存储器级地址定义可被存储到任何合适的存储器位置(例如,DRAM地址空间、存储器映射的输入输出/MMIO地址空间,等等)。
框76可以确定关于目标域是否满足过度表示条件。框76通常可以包括识别目标域(例如,基于指示相关联的目标域的解码结果),将解码结果发送到发起发出的请求的核心,以及确定目标域是否相对于其他延迟域达到了某个平衡或公平阈值。例如,如果共享队列最多保存12个条目,并且四个不同延迟域中的每一个被分配三个条目,则框76可以确定共享队列是否包含三个访问目标域的请求。如果是这样,则所示的框78防止第一组附加请求被发出到队列,其中第一组附加请求也与目标域相关联。
如将更详细讨论的,框78可以包括在核心中实施关于目标域的信用策略。因此,核心可能会预测第一组附加请求与目标域相关联,并使用预测来实施信用策略。框78还可以包括向核心发送节制信号,其中节制信号指示过度表示状态(例如,“针对目标域的队列中没有剩余空间”)。此外,所示的框80在防止第一组附加请求被发出到队列的同时允许向队列发出第二组附加请求,其中第二组附加请求与多个域中的一个或多个剩余域相关联。
图3示出示例,其中高速缓存代理82通信地耦合到存储器架构84,该存储器架构84包括多个延迟域(“域1”到“域N”)以及被配置为针对每个延迟域实施信用策略88的多个核心86(86a、86b)。信用策略88可以是可编程的。在所示的示例中,存储器架构84共享队列87,并且第一核心86a将第一请求90发送到高速缓存代理82,高速缓存代理82可以驻留在与第一核心86a相同的半导体管芯上,但是位于管芯上的不同位置(例如,在非核区域)。SAD也可以位于非核区域中的高速缓存代理82附近。第一核心86a可以使用存储器类型预测器92来预测存储器架构84中的针对第一请求90的目标域。在这方面,预测器92可以维护预测表,该预测表包含(在每个延迟域和每个高速缓存代理的基础上)所访问的最后的地址范围。示例预测表如下表I所示。
高速缓存代理ID 延迟域 最后访问的范围 粒度掩码
0 0 120000000 040000000
0 1 700000000 100000000
M N F80000000 040000000
表I
在所示示例中,范围的大小对于每个域是固定的并且使用位掩码来指定,其中粒度可以是每个域可配置的。因此,假定域1的粒度为例如4GB,则发送到高速缓存代理0且以域1为目标的最后地址(例如,0x78C9657FA)属于地址范围[0x700000000,0x 700000000+4GB]。因此,为了预测请求目标地址@X和高速缓存代理(例如,下面的表达式中的“CAm”)的域,该表将作为内容可寻址存储器结构通过对对应的掩码和@X应用“&”操作来访问:
PredictedDomain=(DomainPredictionTable[CAm][@X&granularity_mask_domain])
如果PredictedDomain为NULL(意味着没有域匹配),则PredictedDomain可以被自动分配零值(例如,假设零对应于最快和/或最接近的域)。简而言之,访问延迟域的应用程序可能在该域的某个地址范围内运行。通过适当地指定粒度,有可能实现与诸如第一请求90的访问请求相关联的目标域的智能且准确的预测。这样的预测方案的益处在于其可能潜在产生高命中率并且可能使用在几个周期内提供结果的内容可寻址存储器(CAM)结构来实现。
第一核心86a还可以确定预测的目标域是否符合信用策略88,并且如果是,则从分配给预测的目标域的信用推测性地扣除。因此,如果第一请求90被预测为访问所示出的域3,则第一核心86a可以从可用于域3的当前信用中扣除单一信用。因此,第一请求90可以包括请求有效载荷以及预测的目标域。在接收到第一请求90时,高速缓存代理82可以使用SAD来确定与第一请求90相关联的实际目标域。如果预测正确,则高速缓存代理82可以返回包括请求数据、状态消息(例如,去往)和实际目标域的确认92(ACK)。一旦第一请求90完成,第一核心86a就可以更新预测表和信用策略88(例如,递增域3信用)。另一方面,如果预测不正确,则高速缓存代理82可以返回非确认(NACK)以及正确目标域的指示。在这种情况下,第一核心86a可以更新预测表并重新提交第一请求90。
第一核心86a还可以预测第二请求96与不具有剩余信用的目标域(例如,所示示例中的域1或域N)相关联。在这种情况下,第一核心86可以通过阻止或以其他方式拒绝第二请求96来实施信用策略88。然而,第三请求97可能与诸如例如域2或域3的剩余域相关联。在这种情况下,第一核心86a可以向高速缓存代理82发出第三请求97并从高速缓存代理82接收ACK 99。
现在转到图4,示出了示例,其中高速缓存代理98通信地耦合到存储器架构84和被配置为响应由高速缓存代理98发出的可编程节制信号的多个核心100(100a、100b)。在所示的示例中,存储器架构84共享队列104,并且第一核心100a将第一请求102发送到高速缓存代理98。更具体地,如果高速缓存代理98确定由于第一请求102与例如域1相关联并且共享队列104的域1分配是满的而出现过度表示条件,则高速缓存代理98可以返回ACK 108并产生节制信号106。类似地,访问例如域N的第二请求110可能导致高速缓存代理98返回ACK112并产生节制信号114。因此,如果在第一核心100a中遇到访问域1的后续请求116,则节制信号106可以使得核心100a阻止后续请求116并防止其被发出到共享队列104。然而,访问域2的另一个请求118仍然可以被发出到高速缓存代理98,因为高速缓存代理98尚未产生用于域2的节制信号。在这种情况下,高速缓存代理98可以响应于其他请求120的成功服务和/或完成而生成ACK 120。
现在转到图5,示出了高速缓存代理装置122(122a-122c)。可以包括逻辑指令、可配置逻辑、固定功能逻辑硬件等或其任何组合的装置122通常可以实现已经讨论的方法70(图2)的一个或多个方面。在一个示例中,装置122可以容易地替代高速缓存代理82(图3)和/或高速缓存代理98(图4)。更具体地说,图示的高速缓存代理装置122包括队列监视器122a,以检测由存储器架构中的多个域共享的队列中的发出的请求,其中多个域与非一致性访问延迟相关联。另外,系统地址解码器122b可以确定与发出的请求相关联的目标域。
所示出的装置122还包括请求仲裁器122c,用于如果所发出的请求满足关于目标域的过度表示条件并且第一组附加请求与目标域相关联则防止第一组附加请求被发出到队列。请求仲裁器122c还可以在防止第一组附加请求被发出到队列的同时允许第二组附加请求被发出到队列,其中第二组附加请求与多个域中的一个或多个剩余域相关联。
在一个示例中,请求仲裁器122c包括节制组件124以将节制信号发送到核心,其中节制信号指示过度表示状态。可替代地,核心可能会实施关于目标域的信用策略,以防止第一组附加请求被发出。另外,系统地址解码器122b可以将解码结果发送到发起发出的请求的核心,其中解码结果指示发出的请求与目标域相关联。
图6示出了延迟感知计算系统126。计算系统126通常可以是具有计算功能(例如数据中心、服务器、个人数字助理/PDA、笔记本电脑、平板电脑)、通信功能(例如智能电话)、成像功能、媒体播放功能(例如,智能电视/TV)、可穿戴功能(例如手表、眼镜、头饰、鞋类、珠宝)、车辆功能(例如汽车、卡车、摩托车)等或其任何组合的电子设备/平台的部分。在所示示例中,系统126包括用于向系统126供电的电源128和具有耦合到主存储器134(例如,易失性“近”存储器)的集成存储器控制器(IMC)132的处理器130。IMC 132还可以耦合到包含非易失性存储器结构(诸如例如,NVM 138)的另一个存储器模块136(例如,双列直插式存储器模块/DIMM)。NVM 138可以包括“远”存储器140,其也可以用于存储易失性数据。因此,远存储器140和主存储器134可以用作两级存储器(2LM)结构,其中主存储器134通常用作远存储器140的低延迟和高带宽高速缓存。
NVM 138可以包括前面列出的非易失性存储器设备的任何示例。如已经提到的那样,存储器模块136可以包括易失性存储器,例如配置为一个或多个存储器模块的DRAM,诸如例如DIMM、小型DIMM(SODIMM)等。示例性的易失性存储器包括动态易失性存储器,包括DRAM(动态随机存取存储器)或某些变体,如同步DRAM(SDRAM)。
这里描述的存储器子系统可以与许多存储器技术兼容,诸如DDR4(DDR version4,2012年9月由JEDEC发布的初始规范)、LPDDR4(LOW POWER DOUBLE DATA RATE(LPDDR)version 4,JESD209-4,最初由JEDEC于2014年8月发布)、WIO2(Wide I/O 2(WideIO2),JESD229-2,最初由JEDEC于2014年8月发布)、HBM(HIGH BANDWIDTH MEMORY DRAM,JESD235,最初由JEDEC于2013年10月发布)、DDR5(DDR version5,目前由JEDEC讨论)、LPDDR5(LPDDRversion 5,目前由JEDEC讨论)、HBM2(HBM version 2,目前由JEDEC讨论)和/或其他,以及基于这些规范的衍生物或扩展的技术。
所示的系统126还包括作为片上系统(SoC)在半导体管芯144上与处理器130一起实现的输入输出(IO)模块142,其中IO模块142充当主机设备并且可以与例如显示器146(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器148和大容量存储设备150(例如,硬盘驱动器/HDD、光盘、闪存等)进行通信。存储器模块136可以包括具有逻辑154的NVM控制器152,该逻辑154经由内部总线156或其他合适的接口连接到远存储器140。所示的逻辑154可以实现已经讨论的方法70(图2)的一个或多个方面。逻辑154可以替代地在系统80中其他地方实现。
附加注释和示例:
示例1可以包括延迟感知计算系统,该系统包括:包括多个域的存储器架构,至少两个所述域包括不同的相关联的存储器访问延迟;对所述多个域中的两个或更多个域进行互连的交换机;由所述多个域共享的队列;队列监视器,用于检测所述队列中的发出的请求;系统地址解码器,用于确定与所述发出的请求相关联的目标域;以及请求仲裁器,用于如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止第一组附加请求被发出到所述队列。
示例2可以包括示例1的系统,其中请求仲裁器用于在防止第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,并且其中所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
示例3可以包括示例1的系统,还包括核心,用于实施关于所述目标域的信用策略,以防止所述第一组附加请求被发出。
示例4可以包括示例1的系统,还包括节制组件,用于向核心发送节制信号,其中所述节制信号指示所述过度表示状态。
示例5可以包括示例1的系统,其中,所述系统地址解码器将解码结果发送到发起所述发出的请求的核心,并且其中所述解码结果指示所述发出的请求与所述目标域相关联。
示例6可以包括示例1至5中的任何一个的系统,还包括一个或多个核心,用于预测所述第一组附加请求与所述目标域相关联。
示例7可以包括权利要求1的系统,还包括以下中的一个或多个:通信地耦合到所述存储器架构的处理器;通信地耦合到所述存储器架构的显示器;通信地耦合到处理器的网络接口;或者通信地耦合到处理器的电池。
示例8可以包括高速缓存代理装置,包括:队列监视器,用于检测由存储器架构中的多个域共享的队列中的发出的请求,其中至少两个所述域包括不同的相关联的存储器访问延迟;系统地址解码器,用于确定与所述发出的请求相关联的目标域;以及请求仲裁器,用于如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止第一组附加请求被从到所述队列发出。
示例9可以包括示例8的装置,其中所述请求仲裁器用于在防止所述第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,并且其中所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
示例10可以包括示例8的装置,还包括核心,用于实施关于所述目标域的信用策略,以防止所述第一组附加请求被发出。
示例11可以包括示例8的装置,还包括节制组件,用于将节制信号发送到核心,其中所述节制信号指示所述过度表示状态。
示例12可以包括示例8的装置,其中,所述系统地址解码器将解码结果发送到发起所述发出的请求的核心,并且其中所述解码结果指示所述发出的请求与所述目标域相关联。
示例13可以包括示例8至12中的任何一个的装置,还包括一个或多个核心,用于预测所述第一组附加请求与所述目标域相关联。
示例14可以包括一种用于操作高速缓存代理装置的方法,该方法包括:检测由存储器架构中的多个域所共享的队列中的发出的请求,其中至少两个所述域包括不同的相关联的存储器访问延迟;确定与所述发出的请求相关联的目标域;以及如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止第一组附加请求被发出到所述队列。
示例15可以包括示例14的方法,还包括:在防止第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,其中所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
示例16可以包括示例14的方法,其中防止所述第一组附加请求被发出包括在核心中实施关于所述目标域的信用策略。
示例17可以包括示例14的方法,其中防止所述第一组附加请求被发出包括向核心发送节制信号,其中所述节制信号指示所述过度表示状态。
示例18可以包括示例14的方法,还包括将解码结果发送到发起所述发出的请求的核心,其中所述解码结果指示所述发出的请求与所述目标域相关联。
示例19可以包括示例14至18中任何一个的方法,还包括在一个或多个核心中预测所述第一组附加请求与所述目标域相关联。
示例20可以包括包含一组指令的至少一个计算机可读存储介质,所述指令在由计算设备执行时使计算设备:检测由存储器架构中的多个域所共享的队列中的发出的请求,其中至少两个所述域包括不同的相关联的存储器访问延迟;确定与所述发出的请求相关联的目标域;以及如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止第一组附加请求被发出到所述队列。
示例21可以包括示例20的至少一个计算机可读存储介质,其中,所述指令在被执行时使得计算设备在防止第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,并且其中所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
示例22可以包括示例20的至少一个计算机可读存储介质,其中所述指令在被执行时使得计算设备在核心中实施关于所述目标域的信用策略,以防止所述第一组附加请求被发出。
示例23可以包括示例20的至少一个计算机可读存储介质,其中所述指令在被执行时使得计算设备向核心发送节制信号,并且其中,所述节制信号指示过度表示状态。
示例24可以包括示例20的至少一个计算机可读存储介质,其中,所述指令在被执行时使得计算设备将解码结果发送到发起所述发出的请求的核心,并且其中所述解码结果指示所述发出的请求与目标域相关联。
示例25可以包括示例20至24中的任何一个的至少一个计算机可读存储介质,其中所述指令在被执行时使得计算设备在一个或多个核心中预测第一组附加请求与目标域相关联。
示例26可以包括一种高速缓存代理装置,其包括用于检测由存储器架构中的多个域所共享的队列中的发出的请求的单元,其中至少两个所述域包括不同的相关联的存储器访问延迟,用于确定与所述发出的请求相关联的目标域的单元,以及用于如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联则防止第一组附加请求被发出到所述队列的单元。
示例27可以包括示例26的装置,还包括用于在防止所述第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列的单元,其中所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
示例28可以包括示例26的装置,其中用于防止第一组附加请求被发出的单元包括用于在核心中实施关于目标域的信用策略的单元。
示例29可以包括示例26的装置,其中用于防止第一组附加请求被发出的单元包括用于向核心发送节制信号的单元,其中节制信号指示过度表示状态。
示例30可以包括示例26的装置,还包括用于将解码结果发送给发起发出的请求的核心的单元,其中解码结果指示所述发出的请求与目标域相关联。
示例31可以包括示例26至30中的任何一个的装置,还包括用于在一个或多个核心中预测第一组附加请求与目标域相关联的单元。
这里描述的技术因此可以提供新的硬件和软件接口,其使得能够在多NUMA系统中公平和灵活地供应存储器带宽。因此,可以成功采用经由存储器语义提供对远程存储器的访问的新兴的存储器技术和结构技术。而且,技术使得能够避免与带宽节制相关的性能下降。
实施例适用于所有类型的半导体集成电路(“IC”)芯片。这些IC芯片的例子包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。另外,在一些附图中,信号导线用线表示。一些可以是不同的以指示更多组成信号路径,具有数字标签以指示多个组成信号路径,和/或在一个或多个端具有箭头以指示主要信息流方向。然而,这不应该以限制的方式来解释。而是,可以结合一个或多个示例性实施例来使用这样的附加细节以促进对电路的更容易的理解。任何表示的信号线,无论是否具有附加信息,实际上可以包括可以在多个方向上行进的一个或多个信号,并且可以用任何合适类型的信号方案来实现,例如用差分对实现的数字或模拟线、光纤线和/或单端线。
可能已经给出了示例尺寸/模型/值/范围,尽管实施例不限于此。随着制造技术(例如光刻)随着时间推移而成熟,预计可以制造更小尺寸的设备。另外,为了图示和讨论的简单性,并且为了不模糊实施例的某些方面,可以或可以不在附图中示出对IC芯片和其他组件的公知电源/接地连接。此外,为了避免使实施例模糊,并且鉴于关于这种框图布置的实现的细节高度依赖于要在其中实现实施例的平台的事实,可以以框图形式示出布置,即,这些细节应该在本领域技术人员的视野范围内。在阐述具体细节(例如,电路)以描述示例实施例的情况下,对于本领域技术人员来说应当显而易见的是,可以在没有这些具体细节或者具有这些具体细节的变体的情况下实践实施例。因此该描述被认为是说明性的而不是限制性的。
术语“耦合”在本文中可以用于指代所讨论的组件之间的任何类型的直接或间接的关系,并且可以应用于电、机械、流体、光学、电磁、机电或其他连接。另外,除非另外指出,否则术语“第一”、“第二”等在此可以仅用于便于讨论,并且不带有特定的时间或时间顺序意义。
本领域的技术人员将从前面的描述中领会到,实施例的广泛技术可以以各种形式来实现。因此,虽然已经结合其特定示例描述了实施例,但是实施例的真实范围不应该如此受限制,因为在研究附图、说明书和所附权利要求书后,其他修改对于本领域技术人员将变得显而易见。

Claims (25)

1.一种延迟感知计算系统,包括:
包括多个域的存储器架构,所述域中的至少两个域包括不同的相关联的存储器访问延迟;
对所述多个域中的两个或更多个域进行互连的交换机;
由所述多个域共享的队列;
队列监视器,用于检测所述队列中的发出的请求;
系统地址解码器,用于确定与所述发出的请求相关联的目标域;以及
请求仲裁器,用于如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止所述第一组附加请求被发出到所述队列。
2.如权利要求1所述的系统,其中,所述请求仲裁器用于在防止所述第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,并且其中,所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
3.如权利要求1所述的系统,还包括核心,用于实施关于所述目标域的信用策略,以防止所述第一组附加请求被发出。
4.如权利要求1所述的系统,还包括节制组件,用于向核心发送节制信号,其中,所述节制信号指示所述过度表示状态。
5.如权利要求1所述的系统,其中,所述系统地址解码器将解码结果发送到发起所述发出的请求的核心,并且其中,所述解码结果指示所述发出的请求与所述目标域相关联。
6.如权利要求1至5中任一项所述的系统,还包括一个或多个核心,用于预测所述第一组附加请求与所述目标域相关联。
7.如权利要求1所述的系统,还包括以下中的一个或多个:
通信地耦合到所述存储器架构的处理器;
通信地耦合到所述存储器架构的显示器;
通信地耦合到处理器的网络接口;或者
通信地耦合到处理器的电池。
8.一种高速缓存代理装置,包括:
队列监视器,用于检测由存储器架构中的多个域共享的队列中的发出的请求,其中,所述域中的至少两个域包括不同的相关联的存储器访问延迟;
系统地址解码器,用于确定与所述发出的请求相关联的目标域;以及
请求仲裁器,用于如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止所述第一组附加请求被发出到所述队列。
9.如权利要求8所述的装置,其中,所述请求仲裁器用于在防止所述第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,并且其中,所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
10.如权利要求8所述的装置,还包括核心,用于实施关于所述目标域的信用策略,以防止所述第一组附加请求被发出。
11.如权利要求8所述的装置,还包括节制组件,用于向核心发送节制信号,其中,所述节制信号指示所述过度表示状态。
12.如权利要求8所述的装置,其中,所述系统地址解码器将解码结果发送到发起所述发出的请求的核心,并且其中,所述解码结果指示所述发出的请求与所述目标域相关联。
13.如权利要求8至12中任一项所述的装置,还包括一个或多个核心,用于预测所述第一组附加请求与所述目标域相关联。
14.一种操作高速缓存代理装置的方法,包括:
检测由存储器架构中的多个域共享的队列中的发出的请求,其中,所述域中的至少两个域包括不同的相关联的存储器访问延迟;
确定与所述发出的请求相关联的目标域;以及
如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止所述第一组附加请求被发出到所述队列。
15.如权利要求14所述的方法,还包括在防止所述第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,其中,所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
16.如权利要求14所述的方法,其中,防止所述第一组附加请求被发出包括在核心中实施关于所述目标域的信用策略。
17.如权利要求14所述的方法,其中,防止所述第一组附加请求被发出包括向核心发送节制信号,其中,所述节制信号指示所述过度表示状态。
18.如权利要求14所述的方法,还包括将解码结果发送到发起所述发出的请求的核心,其中,所述解码结果指示所述发出的请求与所述目标域相关联。
19.如权利要求14至18中任一项所述的方法,还包括在一个或多个核心中预测所述第一组附加请求与所述目标域相关联。
20.至少一种计算机可读存储介质,其包括一组指令,所述指令在由计算设备执行时使得所述计算设备:
检测由存储器架构中的多个域共享的队列中的发出的请求,其中,所述域中的至少两个域包括不同的相关联的存储器访问延迟;
确定与所述发出的请求相关联的目标域;以及
如果所述发出的请求满足关于所述目标域的过度表示条件并且第一组附加请求与所述目标域相关联,则防止所述第一组附加请求被发出到所述队列。
21.如权利要求20所述的至少一种计算机可读存储介质,其中,所述指令在被执行时使得计算设备在防止所述第一组附加请求被发出到所述队列的同时允许第二组附加请求被发出到所述队列,并且其中,所述第二组附加请求与所述多个域中的一个或多个剩余域相关联。
22.如权利要求20所述的至少一种计算机可读存储介质,其中,所述指令在被执行时使得计算设备在核心中实施关于所述目标域的信用策略,以防止所述第一组附加请求被发出。
23.如权利要求20所述的至少一种计算机可读存储介质,其中,所述指令在被执行时使得计算设备向核心发送节制信号,并且其中,所述节制信号指示所述过度表示状态。
24.如权利要求20所述的至少一种计算机可读存储介质,其中,所述指令在被执行时使得计算设备将解码结果发送到发起所述发出的请求的核心,并且其中,所述解码结果指示所述发出的请求与所述目标域相关联。
25.一种高速缓存代理装置,包括用于执行如权利要求14至18中任一项所述的方法的单元。
CN201680068847.0A 2015-12-24 2016-11-23 用于非一致性存储器访问延迟调整的系统、装置、方法 Active CN108292281B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/998,085 US10146681B2 (en) 2015-12-24 2015-12-24 Non-uniform memory access latency adaptations to achieve bandwidth quality of service
US14/998,085 2015-12-24
PCT/US2016/063546 WO2017112283A1 (en) 2015-12-24 2016-11-23 Non-uniform memory access latency adaptations to achieve bandwidth quality of service

Publications (2)

Publication Number Publication Date
CN108292281A true CN108292281A (zh) 2018-07-17
CN108292281B CN108292281B (zh) 2021-10-15

Family

ID=59087772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680068847.0A Active CN108292281B (zh) 2015-12-24 2016-11-23 用于非一致性存储器访问延迟调整的系统、装置、方法

Country Status (4)

Country Link
US (2) US10146681B2 (zh)
EP (1) EP3394763B1 (zh)
CN (1) CN108292281B (zh)
WO (1) WO2017112283A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10237169B2 (en) 2016-04-01 2019-03-19 Intel Corporation Technologies for quality of service based throttling in fabric architectures
US10402327B2 (en) * 2016-11-22 2019-09-03 Advanced Micro Devices, Inc. Network-aware cache coherence protocol enhancement
US10162757B2 (en) 2016-12-06 2018-12-25 Advanced Micro Devices, Inc. Proactive cache coherence
US10521342B2 (en) * 2017-06-07 2019-12-31 Intel Corporation Memory address decoding prioritization
US10880406B2 (en) 2019-03-05 2020-12-29 Mastercard International Incorporated Controlling access to data resources on high latency networks
US11989129B2 (en) 2020-08-06 2024-05-21 Intel Corporation Multiple virtual NUMA domains within a single NUMA domain via operating system interface tables
US11860799B2 (en) * 2021-12-20 2024-01-02 Micron Technologies, Inc. Memory request modulation
KR20240059347A (ko) * 2022-10-27 2024-05-07 삼성전자주식회사 메모리 공간 할당 방법, 장치 및 시스템

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037445A1 (en) * 2000-04-19 2001-11-01 Mukherjee Shubhendu S. Cycle count replication in a simultaneous and redundantly threaded processor
CN1488104A (zh) * 2001-01-31 2004-04-07 国际商业机器公司 控制数据处理系统间经由存储器的数据流的方法和装置
CN101403958A (zh) * 2007-10-03 2009-04-08 佳能株式会社 存储器访问控制装置、命令发出装置和方法
CN101960418A (zh) * 2008-03-26 2011-01-26 英特尔公司 用于改进功率/性能权衡的多核存储器热量抑制算法
CN102197382A (zh) * 2008-10-23 2011-09-21 美信集成产品公司 多层内容保护微控制器
US20120198187A1 (en) * 2011-01-28 2012-08-02 International Business Machines Corporation Technique for preserving memory affinity in a non-uniform memory access data processing system
CN103370699A (zh) * 2011-02-15 2013-10-23 Arm有限公司 控制存储器中的延时和功率消耗
CN103513957A (zh) * 2012-06-27 2014-01-15 上海芯豪微电子有限公司 高性能缓存系统和方法
CN103827881A (zh) * 2011-03-09 2014-05-28 耶德托公司 用于设备操作系统中的动态平台安全的方法和系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7159216B2 (en) 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US7539143B2 (en) * 2003-08-11 2009-05-26 Netapp, Inc. Network switching device ingress memory system
US7492779B2 (en) * 2004-11-05 2009-02-17 Atrica Israel Ltd. Apparatus for and method of support for committed over excess traffic in a distributed queuing system
US7437543B2 (en) * 2005-04-19 2008-10-14 International Business Machines Corporation Reducing the fetch time of target instructions of a predicted taken branch instruction
US7383396B2 (en) 2005-05-12 2008-06-03 International Business Machines Corporation Method and apparatus for monitoring processes in a non-uniform memory access (NUMA) computer system
US7752381B2 (en) * 2005-05-24 2010-07-06 Micron Technology, Inc. Version based non-volatile memory translation layer
WO2007123542A1 (en) 2006-04-21 2007-11-01 Sun Microsystems, Inc. Hiding system latencies in a throughput networking system
US8661208B2 (en) 2007-04-11 2014-02-25 Hewlett-Packard Development Company, L.P. Non-inclusive cache systems and methods
US8621157B2 (en) 2011-06-13 2013-12-31 Advanced Micro Devices, Inc. Cache prefetching from non-uniform memories
US9298621B2 (en) * 2011-11-04 2016-03-29 Hewlett Packard Enterprise Development Lp Managing chip multi-processors through virtual domains
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US9626294B2 (en) * 2012-10-03 2017-04-18 International Business Machines Corporation Performance-driven cache line memory access
KR20160018471A (ko) 2013-04-02 2016-02-17 바이올린 메모리 인코포레이티드 스토리지 미디어 성능을 높이는 시스템
CN104035823B (zh) * 2014-06-17 2018-06-26 华为技术有限公司 负载均衡方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037445A1 (en) * 2000-04-19 2001-11-01 Mukherjee Shubhendu S. Cycle count replication in a simultaneous and redundantly threaded processor
CN1488104A (zh) * 2001-01-31 2004-04-07 国际商业机器公司 控制数据处理系统间经由存储器的数据流的方法和装置
CN101403958A (zh) * 2007-10-03 2009-04-08 佳能株式会社 存储器访问控制装置、命令发出装置和方法
CN101960418A (zh) * 2008-03-26 2011-01-26 英特尔公司 用于改进功率/性能权衡的多核存储器热量抑制算法
CN102197382A (zh) * 2008-10-23 2011-09-21 美信集成产品公司 多层内容保护微控制器
US20120198187A1 (en) * 2011-01-28 2012-08-02 International Business Machines Corporation Technique for preserving memory affinity in a non-uniform memory access data processing system
CN103370699A (zh) * 2011-02-15 2013-10-23 Arm有限公司 控制存储器中的延时和功率消耗
CN103827881A (zh) * 2011-03-09 2014-05-28 耶德托公司 用于设备操作系统中的动态平台安全的方法和系统
CN103513957A (zh) * 2012-06-27 2014-01-15 上海芯豪微电子有限公司 高性能缓存系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KONRAD MALKOWSKI ET AL.: "T-NUCA - A Novel Approach to Non-Uniform Access Latency Cache Architectures for 3D CMPs", 《IEEE XPLORE》 *

Also Published As

Publication number Publication date
EP3394763B1 (en) 2021-03-03
US11138101B2 (en) 2021-10-05
US20190171556A1 (en) 2019-06-06
CN108292281B (zh) 2021-10-15
US10146681B2 (en) 2018-12-04
US20170185351A1 (en) 2017-06-29
EP3394763A4 (en) 2019-09-18
WO2017112283A1 (en) 2017-06-29
EP3394763A1 (en) 2018-10-31

Similar Documents

Publication Publication Date Title
CN108292281A (zh) 实现带宽服务质量的非一致性存储器访问延迟调整
US10514745B2 (en) Techniques to predict memory bandwidth demand for a memory device
DE102020118307A1 (de) Proaktiver daten-vorabruf mit angewandter quality-of-service
CN103946826B (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
CN108701003A (zh) 用于对远程节点的许多存储操作的原子写入的结构弹性支持
EP4020243B1 (en) Memory controller to manage quality of service enforcement and migration between local and pooled memory
CN105378682A (zh) 持久存储器中数据的观察
EP3506116A1 (en) Shared memory controller in a data center
KR20170130388A (ko) 비대칭 세트 결합된 캐시
US20160188490A1 (en) Cost-aware page swap and replacement in a memory
US20180285268A1 (en) Method and apparatus for reducing write congestion in non-volatile memory based last level caches
US10417128B2 (en) Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches
US20180336034A1 (en) Near memory computing architecture
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
CN115794682A (zh) 缓存替换方法及装置、电子设备、存储介质
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
US11966330B2 (en) Link affinitization to reduce transfer latency
US10558255B2 (en) Hybrid hardware/firmware power management controller for media devices
CN109582613A (zh) 用于存储器访问和调度的系统、方法和装置
US11055228B2 (en) Caching bypass mechanism for a multi-level memory
US9720830B2 (en) Systems and methods facilitating reduced latency via stashing in system on chips
US11775431B2 (en) Cache memory with randomized eviction
US20210326262A1 (en) Low latency metrics sharing across processor units
US11526448B2 (en) Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning
US20230205695A1 (en) In-kernel caching for distributed cache

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant