用于页面激活的系统、计算系统和访问存储器的方法与流程

文档序号:21406940发布日期:2020-07-07 14:41阅读:158来源:国知局
用于页面激活的系统、计算系统和访问存储器的方法与流程

[相关申请的交叉参考]

本专利申请主张于2018年12月27日提出申请的美国临时专利申请第62/785,661号的优先权权益,所述美国临时专利申请的公开内容全文通过引用并入本文。

本文所公开的主题大体涉及处理系统。更具体来说,本文所公开的主题涉及一种用于为系统存储器提供推测性页面激活(speculativepageactivation)的系统及方法。



背景技术:

存储器访问延迟(memory-accesslatency)直接影响计算系统的性能。图1a描绘了典型系统芯片(systemonachip,soc)100的功能框图。soc100可包括一个或多个处理器101a-101n、相干互连102、一个或多个存储器(动态随机存取存储器(dynamicrandomaccessmemory,dram))控制器103a-103n以及一个或多个存储器104a-104n。存储器104a-104n可为动态随机存取存储器(dram)。在操作中,诸如101a-101n的处理器可经由相干互连102向诸如103a-103n的存储器控制器发送存储器访问请求。诸如103a-103n的存储器控制器执行例如dram页面关闭、dram页面激活及dram访问等dram操作,且所请求的数据接着经由互连102返回到诸如101a-101n的处理器。

soc100的总存储器访问延迟可包括与请求装置(即诸如101a-101n的处理器)相关联的延迟、时钟域交叉(clock-domaincrossing,cdc)延迟、与高速缓存相干性组件(即高速缓存以及窥探过滤器(snoopfilter,sf)查找)相关联的延迟、互连102的延迟(即仲裁(arbitration)及串行化(serialization))以及与dram页面关闭、dram页面激活、dram访问及数据返回相关联的延迟。

图1b描绘了与诸如103a-103n的典型存储器控制器及诸如104a-104n的相关联典型dram存储器相关联的存储器访问延迟。在111处表示与dram访问请求(整个请求路径)相关的延迟。在112处表示与dram激活相关的延迟。在113处表示与dram读取相关的延迟,且在114处表示与向请求者提供响应相关的互连延迟。



技术实现要素:

示例性实施例提供一种用于页面激活的系统,所述系统可包括存储器控制器、互连及处理器。所述互连可耦合到所述存储器控制器,且所述处理器可通过第一路径及第二路径耦合到所述存储器控制器,其中所述第一路径可穿过所述互连,且所述第二路径可绕过所述互连。所述处理器可被配置成基本上并发地经由所述第一路径向所述存储器控制器发送存储器访问请求且经由所述第二路径向所述存储器控制器发送页面激活请求或提示请求。在一个实施例中,所述处理器可被进一步配置成基于所述存储器访问请求的类型或者所述系统的当前功率/性能状态来动态地判断是否经由所述第二路径发送存储器访问请求。

另一示例性实施例提供一种计算系统,所述计算系统可包括处理器、相干互连及存储器控制器。所述相干互连可耦合到所述处理器,且所述存储器控制器可通过第一路径及第二路径耦合到所述处理器,其中所述第一路径可穿过所述相干互连,且所述第二路径可绕过所述相干互连。所述存储器控制器可被配置成基本上并发地经由所述第一路径从所述处理器接收存储器访问请求且经由所述第二路径从所述处理器接收页面激活请求或提示请求。在一个实施例中,所述存储器控制器可被进一步配置成基于所述存储器访问请求的类型或者所述计算系统的当前功率/性能状态来动态地判断是否经由所述第二路径对所述存储器访问请求作出响应。

又一示例性实施例提供一种访问存储器的方法,所述方法可包括:在存储器控制器处基本上并发地经由第一路径接收被发送到所述存储器控制器的页面激活请求或提示请求且经由第二路径接收存储器访问请求,所述第一路径绕过连接到所述存储器控制器的互连,且所述第二路径穿过所述互连,所述页面激活请求或所述提示请求包括页面地址;以及如果所述存储器控制器确定所述存储器的对应于所述页面激活请求或所述提示请求的页面尚未打开,则在响应于所述存储器访问请求访问所述存储器之前,由所述存储器控制器响应于所述页面激活请求或所述提示请求激活所述存储器的对应于所述页面地址的所述页面。在一个实施例中,所述方法可进一步包括由所述存储器控制器动态地判断,其中所述存储器控制器基于所述存储器访问请求的类型或者所述存储器控制器的当前功率/性能状态来动态地确定经由所述第二路径对所述存储器访问请求作出响应。

附图说明

在以下部分中,将参照图中所示的示例性实施例来阐述本文所公开的主题的方面,在图中:

图1a描绘了典型系统芯片(soc)的功能框图。

图1b描绘了与图1a的典型soc的典型存储器控制器及相关联的典型dram存储器相关联的存储器访问延迟。

图2a描绘了根据本文所公开主题的计算系统的一个示例性实施例的功能框图。

图2b描绘了根据本文所公开主题的由计算系统利用存储器访问技术提供的存储器访问延迟,所述存储器访问技术使dram操作与相干性操作并行化。

图3描绘了根据本文所公开主题的存储器访问方法的流程图,所述存储器访问方法有效地使dram操作与相干性操作并行化以减少存储器访问延迟。

图4描绘了根据本文所公开主题的计算系统的另一示例性实施例的功能框图。

[符号的说明]

100:典型系统芯片(soc)/soc;

101a-101n、201a-201n、401a-401n:处理器;

102、202:互连/相干互连;

103a-103n、203a-203n、403a-403n:存储器(dram)控制器;

104a-104n、204a-204n、404a-404n:存储器;

111、112、113、211、212、213:延迟;

114、214:互连延迟;

200、400:计算系统;

220a-220n、420a-420n、430a-430n、440:带外信令线;

301、302:步骤;

402:互连。

具体实施方式

在以下详细说明中,阐述许多具体细节来提供对公开内容的透彻理解。然而,所属领域中的技术人员将理解,无需这些具体细节也可实践所公开的方面。在其他情形中,未详细阐述众所周知的方法、程序、组件及电路,以免使本文所公开的主题模糊不清。

本说明书通篇中所提及的“一个实施例(oneembodiment)”或“实施例(anembodiment)”意指结合所述实施例所阐述的特定特征、结构或特性可包括在本文所公开的至少一个实施例中。因此,在本说明书通篇中各处出现的短语“在一个实施例中(inoneembodiment)”或“在实施例中(inanembodiment)”或者“根据一个实施例(accordingtooneembodiment)”(或具有相似含义的其他短语)可能未必均指同一实施例。此外,在一个或多个实施例中,特定特征、结构或特性可采用任何适合的方式进行组合。就此而言,本文所用的词“示例性(exemplary)”意指“用作实例、例子或例示”。本文被阐述为“示例性”的任何实施例不应被视为与其他实施例相比必定是优选的或有利的。此外,取决于本文论述的上下文,单数用语可包括对应的复数形式且复数用语可包括对应的单数形式。还要注意,本文中所示及所论述的各个图(包括组件图)仅是出于例示目的,而并非按比例绘制。相似地,示出的各种波形及时序图仅是用于例示目的。例如,为清晰起见,可相对于其他元件夸大元件中的一些元件的尺寸。此外,在适当情况下,在图中重复使用参考编号来指示对应的元件和/或类似元件。

本文所用术语仅是用于阐述特定示例性实施例的目的,而非旨在限制所主张的主题。除非上下文另外清楚地指明,否则本文所用单数形式“一(a、an)”及“所述(the)”旨在也包括复数形式。还将理解,当在本说明书中使用用语“包括(comprises和/或comprising)”时,是指明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。本文所用用语“第一(first)”、“第二(second)”等被用作位于所述用语后面的名词的标签,且除非明确定义,否则所述用语并不暗示任何类型的次序(例如,空间、时间、逻辑等)。此外,在两个或更多个图中可使用相同的参考编号来指代具有相同或相似的功能的部件、组件、块、电路、单元或模块。然而,这种用法仅是为了使例示简洁且易于论述起见;所述用法并不暗示这种组件或单元的构造细节或架构细节在所有实施例中是相同的或者这些通常提及的部件/模块是实施本文所公开特定实施例的教示内容的唯一方式。

除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本主题所属领域中的一般技术人员所通常理解的含义相同。还将理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。

本文所用用语“模块”是指被配置成提供本文结合模块所描述的功能的软件、固件和/或硬件的任何组合。软件可被实施为软件封装、代码和/或指令集或指令,且在本文所述任何实施方案中所用的用语“硬件”可例如以单独形式或以任何组合的形式包括硬布线电路系统、可编程电路系统、状态机电路系统和/或存储由可编程电路系统执行的指令的固件。模块可共同地或单独地实施为形成较大系统(例如但不限于集成电路(integratedcircuit,ic)、系统芯片(soc)等等)一部分的电路系统。

本文所公开的主题提供一种存储器访问技术,所述存储器访问技术有效地使dram操作与相干性操作并行化,以减少存储器访问延迟。在一个实施例中,与例如dram页面关闭操作和/或dram页面激活等dram访问操作相关联的延迟可与相干性操作并发地发生,以使得dram访问操作好似被掩蔽或隐藏。通过使用例如可与高速缓存相干性操作并行地发起dram访问操作的带外信令(out-of-bandsignaling),从而通过与高速缓存相干性操作、时钟域交叉和/或互连延迟相关联的延迟来掩蔽或隐藏与dram访问操作相关联的延迟,进而无需过于复杂的技术就可实现减少的存储器访问延迟。带外信令可包括由处理器针对潜在的即将到来的存储器访问请求推测性发送的“早期”页面激活请求。

在一个实施例中,接收带外信令的存储器控制器可根据存储器控制器所经历的工作负载选择性地不对带外信令作出响应。也就是说,存储器控制器可被配置成接收带外信令作为提示,所述提示可基于存储器控制器的工作负载而被选择性地忽略。如果存储器控制器选择对提示作出响应并访问dram中的特定数据,且如果所访问的数据是不需要的或不是最新的,则可丢弃所述数据而不影响系统功能。因此,传输机制可能由于一些所传输的数据可能被丢弃而有损,但整个系统功能不会受到不利影响。在另一实施例中,带外信令可包括与早期页面激活请求相关联的优先级指示,且存储器控制器可基于存储器控制器所经历的工作负载、访问类型(即,读取或写入、需求请求(demandrequest)或预取请求(pre-fetchrequest))和/或当前功率/性能状态选择性地忽略优先级指示。

由于如果仅当dram页面尚未打开时才激活所述页面,因此本文所公开的主题还为处理系统提供改进的功率效率。如果实际上需要这样的命令,则存储器控制器会酌情向dram发送存储器页面激活命令。因此,考虑到与读取请求相比,dram页面激活所涉及的速率相对较慢,一个页面激活可足以用于多次读取访问。另外,如果性能/功率折衷是可接受的,则可发送带外存储器页面激活请求。此外,由于不需要完整的地址总线—只需要dram页面地址,因此带外存储器页面请求提供路由效率。

图2a描绘了根据本文所公开主题的计算系统200的一个示例性实施例的功能框图。在一个实施例中,计算系统200可被配置作为soc。计算系统200可包括一个或多个处理器201a-201n、互连202、一个或多个存储器(dram)控制器203a-203n以及一个或多个存储器204a-204n。互连202可为相干互连或非相干互连。存储器204a-204n可为动态随机存取存储器(dram)。在一个实施例中,诸如203a-203n的存储器控制器及诸如204a-204n的对应的存储器可实施为存储器模块。

在一种操作模式中,计算系统200可以相似于图1a中所描绘的典型soc100的方式执行存储器访问。更具体来说,诸如201a-201n的处理器可经由相干互连202向诸如203a-203n的存储器控制器发送存储器访问请求。诸如203a-203n的存储器控制器执行例如dram页面关闭、dram页面激活及dram访问等dram操作,以访问所请求的数据,且所请求的数据接着经由互连202返回到诸如201a-201n的处理器。在此操作模式下,与图1a中所描绘的soc100相比,可能不提供减少的存储器访问延迟。

在另一种操作模式下,计算系统200利用有效地使dram操作与相干性操作并行化的存储器访问技术来减少存储器访问延迟。具体而言,计算系统200包括带外信令线220a-220n,带外信令线220a-220n绕过互连202以从诸如201a-201n的处理器直接向诸如203a-203n的存储器控制器提供早期页面激活请求。带外信令线220a-220n也可称为推测性dram激活路径。在一个实施例中,从诸如201a-201n的处理器向每一存储器控制器203a-203n提供单独的带外信令线。应理解,尽管仅对于处理器201a描绘了带外信令线220a-220n,然而也可对于一个或多个处理器201b-201n提供对应的带外信令线220a-220n。在一个实施例中,早期页面激活请求可包括早期页面请求与需求请求或预取请求相关联的指示。在一个实施例中,处理器可通过带外信令发送早期页面请求,同时如果要访问dram,则查询处理器的内部高速缓存以进一步掩蔽或隐藏存储器访问延迟。

在一个实施例中,诸如201a-201n的处理器可基于访问类型(即,读取或写入、需求请求或预取请求)、当前功率/性能状态来动态地确定发送早期页面激活请求。例如,与如果诸如201a-201n的处理器处于低功率、低性能状态相比,如果诸如201a-201n的处理器处于高性能状态,则诸如201a-201n的处理器可确定更频繁地发送早期页面激活请求。在一个实施例中,如果在短的时间段内对同一dram页面有多次访问,则诸如201a-201n的处理器可仅需要发送一个早期页面激活请求。

在一个实施例中,诸如203a-203n的存储器控制器可被配置成在接收到早期页面激活请求时对所述早期页面激活请求作出响应。在一个实施例中,响应于接收到早期页面激活请求,诸如203a-203n的存储器控制器可选择性地激活(即打开新页面),而无需任何预充电(pre-charging)(即关闭任何其他页面)。在另一实施例中,诸如203a-203n的存储器控制器可选择性地预充电(即关闭页面),以便激活页面(即打开新页面)。在又一实施例中,诸如203a-203n的存储器控制器可选择性地预充电(即关闭页面),而不进行页面激活。

在另一实施例中,诸如203a-203n的存储器控制器可被配置成使得带外信令作为提示被诸如203a-203n的存储器控制器接收,且诸如203a-203n的存储器控制器可根据例如存储器控制器所经历的工作负载选择性地不对带外信令作出响应。诸如203a-203n的存储器控制器可基于存储器控制器所经历的工作负载、访问类型(即,读取或写入、需求请求或预取请求)和/或当前功率/性能状态来动态地确定对早期页面激活请求作出响应。

图2b描绘了根据本文所公开主题的由计算系统200利用存储器访问技术提供的存储器访问延迟,所述存储器访问技术使dram操作与相干性操作并行化。在211处表示的和相干互连202相关的延迟与在212处表示的和带外dram页面激活请求相关的延迟基本上是同时的。在213处表示与dram读取相关的延迟,且在214处表示与向请求者提供响应相关的互连延迟。当与图1b中所描绘的存储器访问延迟相比时,图2b中所描绘的存储器访问延迟已减少。

在一个实施例中,带外信令可以附加地或替代地包括页面预充电请求/提示。存储器控制器可被配置成在即使对应的页面尚未超时的情况下,仍然判断是否需要预充电操作。例如,作为即将到来的存储器访问的目标的打开页面可能接近超时,且存储器控制器可确定与激活命令一起提前对打开页面进行预充电是有利的。

图3描绘了根据本文所公开主题的存储器访问方法的流程图,所述存储器访问方法有效地使dram操作与相干性操作并行化以减少存储器访问延迟。在301处,可通过在例如存储器控制器203a-203n等存储器控制器处接收而经由第一路径接收页面激活请求(或提示请求)。页面激活请求(或提示请求)与经由第二路径发送的存储器访问请求基本上并发地发送到存储器控制器,其中第一路径绕过连接到存储器控制器的互连(例如互连202),且第二路径穿过互连。在一个实施例中,页面激活请求(或提示请求)可包括但不限于页面地址。

在302处,如果存储器控制器确定存储器的对应于页面激活请求或提示请求的页面尚未打开,则存储器控制器在响应于存储器访问请求访问存储器之前,响应于页面激活请求(或提示请求)激活存储器的对应于页面地址的页面。

在一个实施例中,可将带外请求优先化以用于被存储器控制器用来判断是否对于特定请求对dram页面进行预充电和/或激活的决策过程。例如,需求存储器访问可优先于预取,因此如果控制器的工作负载繁重,则存储器控制器可确定仅对请求dram页面进行预充电和/或激活。

在另一实施例中,可由诸如201a-201n的处理器和/或由诸如203a-203n的存储器控制器基于早期页面激活与对应需求请求之间的循环的移动平均值(movingaverage)来动态地对早期页面激活进行使能。例如,如果早期页面激活与对应需求请求之间的循环的平均数目超过预定阈值,则可对早期页面激活功能进行去能,原因是循环的平均数目指示早期页面激活过早,且由早期页面激活导致的预充电或激活可能处于dram中的错误位置。

在一个实施例中,如果存储器控制器的工作负载繁重,则可对早期页面激活进行去能,以避免页面激活的颠簸(thrashing)。

在一个实施例中,可由诸如201a-201n的处理器和/或诸如203a-203n的存储器控制器中的任一者针对特定条件或操作而对早期页面激活进行去能。例如,如果读取对写入的比率大,则可针对读取而对早期页面激活进行去能。也可针对发生在处理器最末级高速缓存(last-levelcache,llc)中的大的命中率而对早期页面激活进行去能。对于此种情况,高速缓存控制器可向存储器控制器发送最末级高速缓存(llc)命中率,以使得存储器控制器可在判断是否对早期页面激活功能进行去能时考虑llc命中率。

在一个实施例中,如果早期页面激活的数目在预定时间间隔期间超过预定阈值,则可由诸如201a-201n的处理器或由诸如203a-203n的存储器控制器对早期页面激活进行去能,原因是与可通过早期页面激活获得的任何性能改进相比,功率可能被浪费。

另一实施例可从互连和/或存储器控制器向处理器提供系统级反馈(或反馈消息),所述系统级反馈可用于调节由处理器发送的早期页面请求的数目。反馈可作为带外信号来提供或经由互连来提供。另外,还可基于最末级高速缓存中的命中从高速缓存控制器向处理器提供反馈。在一个实施例中,存储器控制器可向处理器发送反馈,所述反馈指示存储器控制器未对早期页面请求作出响应或未对早期页面请求采取行动。

图4描绘了根据本文所公开主题的计算系统400的另一示例性实施例的功能框图。在一个实施例中,计算系统400可被配置作为soc。计算系统400可包括一个或多个处理器401a-401n、互连402、一个或多个存储器(dram)控制器403a-403n以及一个或多个存储器404a-404n。互连402可为相干互连或非相干互连。存储器404a-404n可为动态随机存取存储器(dram)。在一个实施例中,诸如403a-403n的存储器控制器及诸如404a-404n的对应的存储器可实施为存储器模块。

计算系统400还可包括带外信令线420a-420n,带外信令线420a-420n绕过互连402,以从诸如401a-401n的处理器直接向诸如403a-403n的存储器控制器提供早期页面激活请求(或提示请求)。反馈可经由带外信令线430a-430n从诸如403a-403n的相应的存储器控制器提供到诸如401a-401n的处理器。应理解,尽管仅对于处理器401a描绘了带外信令线420a-420n及430a-430n,然而可对于其他处理器401b-401n中的一者或多者提供对应的带外信令线420a-420n及430a-430n。反馈也可经由带外信令线440由互连402提供。

如所属领域中的技术人员将认识到,可在广大范围的应用中对本文所述创新概念进行修改及变化。因此,所主张主题的范围不应仅限于以上所论述的任何具体示例性教示内容,而是由随附的权利要求书来界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1