存储器控制器及优化存储器控制器的方法

文档序号:6376026阅读:112来源:国知局
专利名称:存储器控制器及优化存储器控制器的方法
技术领域
一般而言,本发明涉及存储器转储,更具体地说,涉及存储器控制器优化以及优化存储器控制器的相关方法和程序产品。
背景技术
在存储器总线上的仲载过程中,内部存储器控制器用掉大量周期去等待来自存储器总线的对现有请求的确认。这一延迟时间造成许多不利情况。首先,在这一延迟期间,资源利用不足,因为存储器总线和/或相应的存储器控制器是空闲的。第二,当对于存储器控制器保持待决存储器请求队列时,较高优先级待决请求可能被迫等待存储器总线上现有较低优先级请求的完成。在其他场合,一个待决请求的优先级可能高于另一个待决请求,但可能在队列中未被放在正确的位置。已知的当前技术基于某些来自外部控制的可选设置调节存储器请求优先级,即重新安排队列。不幸的是,不能基于总线活动主动重新确定待决请求优先级的任何重新安排都不能充分优化存储器控制器的使用。此外,当前技术不能利用由放弃现存请求或中断现存请求所获得的效率来完成一个待决请求。
考虑前述情况,本技术领域需要基于存储器部线活动主动重新确定待决请求的优先级和在适当的时候放弃或中断现存请求,从而优化存储器控制器。

发明内容
本发明提供一种存储器控制器、方法和程序产品,通过基于存储器总线活动对请求重新确定优先级,从而显示出主动优化。本发明连续地监视存储器总线活动,并在必要时重新确定待决请求的优先级。此外,提供了放弃或中断存储器总线上现存请求的机制。
本发明的第一方面是针对主动优化一个芯片的内部存储器控制器的方法,该内部存储器控制器具有来自多个请求器的多个对存储器总线的待决请求,该方法包含如下步骤监视存储器总线活动;基于存储器总线活动重新确定待决存储器请求优先级;以及重复上述步骤。
本发明的第二方是针对管理多个对存储器总线的待决存储器请求的存储器控制器,该控制器包含存储器总线监视系统;以及基于存储器总线活动主动重新确定待决存储器请求优先级的重定优先级系统。
本发明的第三方面是针对一个包含计算机可用介质的计算机程序产品,其中体现的计算机可读程序代码用于优化一个存储器控制器,它管理多个对存储器总线的待决存储器请求,该程序产品包含被配置成监视存储器总线活动的程序代码;和被配置成基于存储器总线活动主动地重新确定待决存储器请求的优先级的程序代码。
由下文对本发明实施例的更具体描述,本发明的前述及其他特性将显而易见。


将参考下列附图详细描述本发明,图中相似符号代表相似部件,这里图1显示计算机系统方框图,系统中包括芯片、存储器总线和存储器之间的存储器接口;以及图2显示用于优化存储器控制器的过程的流程图。
具体实施例方式
参考附图,图1是计算机系统12内的存储器接口10的方框图。计算机系统12特别包括中央处理单元(CPU)14、存储器16、结构化存储器总线17、存储器总线控制器18以及至少一个芯片20,该芯片提供系统的各种功能。每个芯片20包括一个内部存储器控制器22,它可由多个内部小芯片(chiplet)访问。这里小芯片24是指“请求器”,因为在本发明的范围,它们向内部存储器控制器22发出存储器请求以访问存储器总线17。每个芯片20还包括转换寄存器,用于存储待决请求的优先级化队列。存储器总线17与存储器总线控制器18通信,特别是用于访问存储器16,以经由存储器总线控制器18读或写数据。
还可以提供其他部件作为计算机系统12的组成部分,如高速缓存、通信系统、系统软件等。存储器16可以包含任何已知类型数据存储系统和/或传输介质,包括磁介质、光介质、随机存取存储器(RAM)、只读存储器(ROM)、数据对象等。再有,存储器16可以驻留在包含一种或多种数据存储器的单个物理位置,或被分布在多个物理系统上。CPU14类似地可以包含单个处理单元或分布在一个或多个位置的多个处理单元。尽管显示了一个芯片20,但应该理解,任何数量的芯片20都可以访问存储器总线17。
如图1中所示,每个请求器24包括若干寄存器用于存储特别是标识30、预先确定的评估时间周期32、预先确定的请求器最小吞吐量34、请求器优先级36以及效率38。
为便于描述,内部存储器控制器22能有它的功能,它相对于本发明被分割,如图2中所示。特别是控制器22能被说成是包括存储器总线监视系统26和基于存储器总线活动主动重新确定待决存储器请求的优先级的重定优先级系统27。还可以提供一个实现系统28以确定何时和如何实现对待决请求序列56重新确定优先级。重定优先级系统27可以有它的功能分割,包括存储器总线吞吐量计算器40、请求器可接受的等待时间计算器42、估计等待时间计算器44、比较器46、权重赋予器48以及优先级重定器50。实现系统28可以包括回写控制52。应该认识到,存储器控制器22包括与转储有关的多种其他功能,图中没有示出但认为是其结构中内在的。
转到图2,将描述上述功能的操作。应该认识到尽管对所有步骤都将描述,但并非所有步骤都构成如所附权利要求中勾划的存储器控制器22的发明性特性。此外,在某些情况下,如果希望的话,可以变更所示步骤的顺序。
在第一步骤S1中,由内部存储器控制器22的监视系统26连续监视存储器总线17的活动。这一步骤包括监视存储总线17的忙状态,但还包括收集存储器总线性能因子,如多种转储类型、转储率和持续时间以及转储中的延迟时间。延迟时间可以在各个转储请求、确认和完成中的任意两者之间确定。
在步骤S2-S7中,由优先级重定系统27使用存储器总线性能参数基于存储器总线17的活动主动地对待决存储器请求重新确定优先级。在步骤S2,存储器总线性能参数可用于由存储器总线吞吐量计算器(图1)计算存储器总线吞吐量。存储器总线吞吐量可以由某些测量数据来表述,如每单位时间的字节数,它是特定类型转转储率(基于总线宽度和时间)以及转储的各个部分,如请求和应答、请求和转储完成等之间的延迟时间的函数。存储器总线吞吐量也是评估时间周期32(图1)的函数,即一个请求器想要评估存储器活动所用的时间窗口或持续时间的函数。例如,一个特定总线的存储器总线吞吐量(宽度)可以在10ns时间内被评估,在此期间转储以1bit/ns发生达3ns,停止2ns,继续以2bit/ns转储达3ns,然后再停止,保持2ns,结果吞吐量为0.9bit/ns(9bit/10ns)。于是,每个请求器24可以基于它各自的评估时间周期发起一个定制的对存储器总线吞吐量的评估过程。
在步骤S3中,由可接受的等待时间计算器42(图1)计算一个请求器24的可接受的等待时间。“可接受的等待时间”在下文中简写为AWT,是请求器为访问存储器总线17希望等待的一个可定制的时间量。一个计算实施例是基于各请求器的评估时间周期32(图1)、请求器最小吞吐量34(图1)、效率38(图1)以及总线17的宽度。“请求器最小吞吐量”34是请求器将接受的存储器总线17的最小吞吐量。效率是用户定义的应用于请求器最小吞吐量34的一个百分比。在这一实施例中,AWT=[效率×请求器最小吞吐量]/比特计数,这里比特计数是在评估时间周期32期间计数的周期数乘以总线宽度,例如32比特的5周期是160比特。
在步骤S4中,由估计等待计算器44计算的下一个存储器请求完成所需的估计等待时间。在一个实施例中,“估计等待时间”(下文中简写为EWT)是基于存储器总线吞吐量(由步骤S2得到)和请求器评估时间周期32。就是说,存储器总线吞吐量除以请求器评估时间周期32。EWT代表在评估时间周期期间,为完成待决请求,预计存储器总线17需要的时间量,它将依赖存储器总线17的工作负荷而改变。换言之,EWT均匀地是控制器22为完成转储不得不等待的时间量,所以,是存储器控制器22为完成其他工作(如重定优先级)可使用的时间量。
关于步骤S2-S4,虽然对每个请求器只描述了一个评估时间周期32,但应该理解,对不同的计算能建立不同的评估时间周期。例如,用于每个AWT和EWT计算的评估时间周期。此外,虽然对于计算AWT、EWT和存储器总线吞吐量已描述了特定的实施例,但应该理解,根据用户的喜好能实现各种不同的因子和数学公式。
在步骤S5中,比较器46对每个请求器的请求比较AWT和EWT。如果AWT小于EWT,则向那个请求器请求的权重赋予器48发送允许“赋予权重”信号。当AWT大于EWT时,表明那个请求器接受访问存储器总线17的估计等待时间,而且没有要对该请求的优先级进行重新评估。然而,可能由于其他待决请求优先级的重新确定使该请求的优先级发生改变,如下文中解释的那样。
在步骤S6,产生允许“赋予权重”信号的待决请求被权重赋予器48赋予新的加权因子。因此,每个待决存储器请求有一个加权因子,如下文描述的那样,新的请求在初始被内部存储器控制器22接受时由权重赋予器48赋予新的加权因子。赋予权重可以包括实现一个散列算法,它把加权因子赋予待决请求。计算加权因子的一项技术是使这些因子基于请求器各自的标识30(图1)、EWT和AWT。特别是,每个待决请求可被赋予一个由各自的EWT除以各自AWT确定的加权因子,即EWT/AWT。该加权因子还可以包括请求器的标识30(图1)的某些表现,于是来自更重要的请求器的请求可能被更早地处理。为了与待决请求队列54比较,在存储器总线17上的现存请求也可以有如前述计算的加权因子。应该理解,加权因子能以多种方式计算,所描述的实施例只是一种计算方法。
在步骤S7中,存储在优先级转换寄存器54中的待决存储器请求队列56由优先级重定器50基于修正的待决请求加权因子进行重定优先级。然后,新的队列56被存储在优先级转换寄存器54中。
实现新队列的任务,步骤S8-S9,是实现系统28的功能。在步骤S8中,回写控制52确定何时将实现待决请求新队列56。回写控制52是由存储器控制器22上与请求器24接口的握手控制产生的。在确定何时实现新队列56时,可以考虑多种因素。例如,如果一个现存请求的转储正在发生,而它的优先级高于任何待决请求,如果该实现会减慢转储的话,则回写控制52可以等待实现新的队列。在另一个例子中,回写控制52可以在实现新队列之前等待当前待决请求开始。任何种类的预先确定的场景都可经过回写控制52来实现。为进一步控制何时实现新队列56,提供一个主机控制60,它允许由计算机系统12的其他部分越过回写控制52。例如,可以在将要发生已知类型转储而无需计算时,或者某一系统部件想要人工控制转储时,由主机控制60越过回写控制52。
在步骤S9中,由回写控制52确定如何实现新队列56。可以用多种形式来实现。为便于讨论,可以存在四个请求器24A、24B、24C及24D,相应的请求为A、B、C、D,各自的优先级为1、2、3、4,以1为最高。在第一个实况中,实现新队列56包括重写请求器24A-24D的优先级寄存器36(图1),而转储行动中没有立即的改变。就是说,来自队列56的待决存储器请求的优先级是在各自的请求器优先级寄存器36中实现的,从而改变了内部存储器控制器22对请求的工作顺序。例如,请求器24D的请求的优先级可能已被提高,从而使优先级顺序从A、B、C、D改为D、A、B、C。
在第二个实况中,回写控制56也可以实现放弃一个请求器在存储器总线17上的一个现存请求而完成另一个待决请求。当一个现存请求(例如D)的优先级低而一个新的待决请求(例如A)的优先级很高时就可能发生这种情况,这样必须放弃该现存请求。
在第三个实况中,回写控制52还可以实现中断一个现存的请求,完成另一个待决请求,然后继续进行原来的现存请求。例如,当存储器控制器22空闲而等待来自存储器总线17的对现存请求(例如C)的确认,并且一个待决请求(例如A)的EWT表明该待决请求能在现存请求(C)之前被完成,此时便可能发生这种情况。在这种情况中,存储器控制器22被指示中断(即置于保持状态)该现存请求(C),完成待决请求(A),然后继续进行现存请求(C)。当然,该待决请求的完成是被预测为不会违反现存请求器24C的AWT。
在步骤S9之后,重复上文概括的过程,即继续在步骤S1监视总线活动。
上述发明在芯片20内提供了更高的效率,而且给出最佳机会去有效地利用内部存储器控制器22。通过持续监视存储器总线17的活动,与静态优先级相比,本发明增大了内部存储器总线控制器22负荷的灵活性。
在前文的讨论中,会理解所讨论的方法步骤是由芯片20内包含的硬件以及由内部存储器控制器22和/或请求器24内的一组寄存器和控制硬件完成的。然而,应该理解,这里描述的各种设备、模块、机构和系统可以在硬件或软件中实现或在硬件与软件的结合中实现,而且可以不同于图中所示那样划分。它们可以以适于完成这里描述的方法的任何类型计算机或其他装置来实现。典型的硬件和软件的结合会是通用计算机系统加上计算机程序,当它被装载和执行时,控制该计算机系统使其完成这里描述的方法。替代地,含有专用硬件用于完成一个或多个本发明功能性任务的专用计算机能被利用。本发明还能在一个计算机程序产品中实现,它包含能实现这里描述的方法和功能的全部特性,而且它当被装载到一个计算机系统中时能完成这些方法和功能。在本发明的范围内,计算机程序、软件程序、程序、程序产品或软件是指以任何语言、代码或符号对一组指令的表现,这组指令能直接地或在下列情况之后使具有信息处理能力的一个系统完成一个特定的功能(a)转换成另一种语言、代码或符号;(b)在不同的材料形式中再现。
尽管已结合上文概括的具体实施例描述了本发明,但是,明显的是,对于本领域技术人员,许多替代、修改和变化是显然的。因此,上文中列举的实施例是要作为说明性示例而不是限定性的。可以做出各种改变而不偏离由下列权利要求定义的本发明的精神和范围。
权利要求
1.一种主动优化一个芯片的内部存储器控制器的方法,该内部存储器控制器具有来自多个请求器的多个对存储器总线的待决存储器请求,该方法包含如下步骤监视存储器总线活动;基于存储器总线活动重新确定待决存储器请求的优先级;以及重复上述步骤。
2.权利要求1的方法,进一步包含放弃存储器总线上的一个现存请求和完成一个待决请求的步骤。
3.权利要求1的方法,进一步包含中断存储器总线上的一个现存请求、完成一个待决请求和继续该现存请求的步骤。
4.权利要求1的方法,其中监视步骤包括收集存储器总线性能因子。
5.权利要求4的方法,其中每个请求器包括一个评估时间周期寄存器、一个请求器最小吞吐量寄存器以及一个效率寄存器,而且每个待决请求包括一个加权因子,其中重定优先级的步骤包括确定存储器总线的吞吐量;确定一请求器将不得不等待以获得对总线访问的估计等待时间;基于各请求器评估时间周期、请求器最小吞吐量、效率以及总线带宽,计算请求器的可接受等待时间;对于其可接受等待时间小于估计等待时间的每个待决请求赋予新的加权因子;以及对已有优先级的待决请求队列重新确定优先级。
6.权利要求5的方法,其中重新确定优先级的步骤包括实现一种散列算法。
7.权利要求5的方法,其中存储器总线吞吐量是基于至少一个特定类型转储的转储率、转储各部分之间的任何时间延迟以及评估时间周期。
8.一种用于管理多个对存储器总线的待决存储器请求的存储器控制器,该控制器包含存储器总线监视系统;以及基于存储器总线活动主动重新确定待决存储器请求的优先级的重定优先级系统。
9.权利要求8的存储器控制器、其中重定优先级系统包括存储器总线吞吐量计算器;请求器可接收等待时间计算器;估计等待时间计算器;比较可按收等待时间和估计等待时间的比较器;权重赋予器,在可接受等待时间少于估计等待时间的情况中,赋予待决存储器请求一个加权因子;以及优先级重定器,用于基于加权因子对已有优先级的待决存储器请求队列重新确定优先级。
10.权利要求9的存储器控制器,进一步包含一个实现系统,其中包括回写控制器,它确定何时实现待决存储器请求的优先级化队列。
11.权利要求10的存储器控制器,进一步包含一个实现系统,其中包括回写控制器,它通过改变至少一个各自待决存储器请求请求器的优先级寄存器来实现待决存储器请求的优先级化队列。
12.权利要求11的存储器控制器,其中回写控制器还通过进行下列中的至少一个来实现待决存储器请求的优先级化队列放弃存储器总线上的一个现存请求并完成一个待决请求;以及中断存储器总线上的一个现存请求,完成一个待决请求并继续该现存请求。
13.权利要求9的存储器控制器,进一步包含一个优先级转换寄存器,用于存储待决存储器请求的优先级化队列。
14.权利要求9的存储器控制器,其中存储器总线吞吐量计算器基于至少一个特定类型转储的转储率、转储部分之间的任何延迟以及估计时间周期来确定存储器总线吞吐量。
15.权利要求9的存储器控制器,其中可接受等待时间计算器基于预先确定的评估时间周期、预先确定的请求器最小吞吐量、效率以及总线宽度来计算可接受等待时间。
16.权利要求9的存储器控制器,其中估计等待时间计算器基于请求器估计时间周期和存储器总线吞吐量来计算估计等待时间。
17.权利要求9的存储器控制器,其中优先级重定器实现一个散列算法。
18.一种包含计算机可用介质的计算机程序产品,其中体现的计算机可读程序代码用于优化一个存储器控制器,它管理多个对存储器总线的待决存储器请求,该程序产品包含被配置成监视存储器总线活动的程序代码;以及被配置成基于存储器总线活动主动地重新确定待决存储器请求的优先级的程序代码。
19.权利要求18的程序产品,其中被配置成重定优先级的程序代码包括被配置成完成下列中的至少一项的程序代码确定存储器总线吞吐量;确定一请求器将不得不等待以获得对总线访问的估计等待时间;基于各请求器评估时间周期、请求器最小吞吐量、效率以及总线宽度,计算请求器的可接受等待时间;对于其可接受等待时间小于估计等待时间的各个待决请求赋予加权因子;以及基于该加权因子,对已有优先级的待决存储器请求队列重新确定优先级。
20.权利要求18的程序产品,进一步包含程序代码,被配置成通过改变至少一个各自待决请求的请求器的优先级寄存器来实现待决存储器请求的优先级化队列。
全文摘要
一种存储器控制器、方法和程序产品,通过基于存储器总线活动对请求重新确定优先级来实现存储器控制器的优化。本发明连续监视存储器总线活动,并在必要时重新确定待决请求的优先级。此外,提供了放弃或中断存储器总线上现存请求以完成一个待决请求的机制。
文档编号G06F12/00GK1487429SQ0315386
公开日2004年4月7日 申请日期2003年8月25日 优先权日2002年9月25日
发明者J·D·卡尔, J D 卡尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1