在菊花链存储拓扑中的存储命令延迟均衡的制作方法

文档序号:6784515阅读:304来源:国知局
专利名称:在菊花链存储拓扑中的存储命令延迟均衡的制作方法
技术领域
本发明公开一般性地涉及存储器系统,更加特别的,涉及在菊花链存储设备中的指令延迟均衡。
背景技术
存储设备广泛用于多种电子产品和计算机中以存储数据。存储设备是包含多个存储器芯片的半导体电子设备,每一个芯片存储整个数据的一部分。存储器芯片本身包含大量的存储单元,每个单元存储一位数据。存储器芯片可以是DIMM(双列直插存储器模块)或者PCB(印刷电路板)的一部分,其包含多个这样的存储器芯片。在如下说明中,术语“存储设备”,“存储器模块”和“DIMM”表示相同意思。系统中的处理器或者存储器控制器可以与存储设备通信以完成读/写和检测操作。图1描述当前技术的结构10,其示出在存储器控制器11和多个存储设备(DIMM)12,18和24之间在并行存储总线30(也称为“短总线(stub bus)”)上的信号通信。为了便于讨论和描述,图1中只示出了总共N个存储设备中的三个存储设备(DIMM0(12),DIMM1(18),DIMM N-1(24)),它们由存储器控制器11控制并与之通信。可以观察到,也是为了讨论方便,图1中,每个显示的DIMM包含相同数目N个DRAM(动态随机访问存储器)存储器芯片。例如,存储器模块12包含具有N个DRAM芯片16的DRAM存储器库14,而存储器模块18包含具有N个DRAM芯片22的储存器库20,等等。但是,显然,图1中的每一个DIMM可以包含不同数目的存储器芯片或DRAM。应该注意的是,“DRAM芯片”,“储存器芯片”,“数据存储和检索元件”和“存储元件”在此后文中作为同义词使用。
每个存储器芯片16,22,28可以包含多个位于芯片外部的引脚(未显示),该引脚用于将该芯片与该芯片通过DIMM在其上驻留的其它系统设备电气连接。那些引脚(未显示)中的一部分可以组成存储器地址引脚或者地址总线,数据引脚或者数据总线,和控制引脚或者控制总线。存储器芯片的其它构造细节在此处不相关,并且,因此不进行表述。在本领域中的普通技术人员将容易地认识到图1中的存储器芯片16,22和28不是意图对典型的存储器芯片的所有特征进行详细描述。多种外设或者电路(未显示)可以典型地与相应的存储器芯片一起设置在DIMM上,用于向芯片中的存储器单元(未显示)写入数据和从中读取数据。进而,为了简明起见,图1中DIMM(例如,DIMM12,18和24)的构造细节也没有显示出。在现实中,每个DIMM可以通过合适的DIMM连接器(未显示)连接到并行总线30,以允许DIMM和控制器11之间的信号流。
在图1的并行总线配置10中,存储器控制器11通过并行总线30的地址/控制总线部分(未显示)发出地址和/或控制信号并且通过并行总线30的数据总线部分(未显示)从/向DIMM传输数据。并行总线30是信号传输总线,它包含地址和控制线(两个均为单向)和数据线(是双向的)-它们中的部分或者全部与系统中的每个DIMM相连接,并且被用于在存储器控制器11和各DIMM12,18,24之间完成数据传输操作(即数据发送和接收操作)。存储器控制器11可以决定存储器模块(或DIMM)的操作模式。某些来自存储器控制器11的控制信号(未显示)可以包括芯片选择(CS_N)信号,行地址选择(RAS_N)信号,列地址选择(CAS_N)信号,写入使能(WE_N)信号,行/列地址(A),数据掩码(DM)信号,终止控制(ODT_N)信号和一系列单边终止(singleended)或者差分数据选通脉冲信号(RDQS/RDQS#/DQS/DQS#)等。这些控制信号在并行总线30的控制线或者控制总线部分(未显示)上传输,以便在合适的存储器芯片(DRAM)中所选的存储器单元上完成数据传输操作。一种存储器配置和另外一种存储器配置在地址、数据和控制总线的“宽度”(也就是线的数目)方面不相同。
可以观察到,在图1的并行总线配置10中,每个存储器模块12,18,24通过并行总线30与存储器控制器11直接相连接。换句话说,存储器控制器11并行地与每个存储器模块(DIMM)相连接。因此,从控制器11输出的每一个信号并行地到达每个存储器模块。虽然这样的布局可以更易于实现,并且,可以提供“更宽”的存储总线,这个方法所付出的代价是总线30上负载的信号的速度受限。在并行总线30的当前的实施例中,信号速度能力约为800MHz。进而,在并行总线配置中,在最慢的DIMM中遇到的任何延迟决定数据传输操作的全部延迟。要将存储数据传输操作的信号速度提升到GHz领域,来利用现代更快的存储器芯片和控制器的处理性能,并行总线配置可能不合适。
图2显示了替代配置32,其中存储器模块(DIMM)34,40和44以菊花链式的配置与存储器控制器33相连接。如前所述,为了简明起见,图2中只示出(总共N个模块的)三个存储器模块。为了简明扼要,在图2中,存储器模块的连接器(DIMM连接器)被以与相应的存储器模块相同的参考标号来标识。类似于图2的实施例,图2中的每个DIMM包含相应的DRAM存储器库,该DRAM存储器库具有多个存储器芯片或者DRAM芯片在其中。例如,DIMM0(34)显示包含具有N个DRAM芯片38的存储器库36。为了简明扼要的目的,图2中的其他存储器库(例如,存储器库42和46)没有显示相应的存储器芯片。
在图2的菊花链式配置32中,每一个DIMM连接器34,40,44具有一对“下行链路”终端和一对“上行链路”终端。每一对下行链路终端包含下行链路输入终端(DL_In)和下行链路输出终端(DL_Out)。相同地,每一对上行链路终端包含上行链路输入终端(UL_In)和上行链路输出终端(UL_Out)。菊花式链配置32是与图1中所示的并行机制相反的串行信号传输机制。因此,存储器模块在下行链路通道(包含配置32中所有的下行链路终端48A-48C)上接收来自存储器控制器33的信号,而给存储器控制器33的信号在上行链路通道(包含配置32中所有的上行链路终端50A-50C)上传输。信号通过信号“跳跃(hop)”从一个存储器模块串行地传播到另一个存储器模块。因此,例如,从存储器控制器33广播给DIMM34,40,44的全体的一个指令,首先在DIMM 0(34)的DL_In终端48A接收,其接下来通过其DL_Out终端48B(也与DIMM 40的DL_In终端相连接)将指令转发给DIMM1(40)。这样完成一个指令“跳跃”。在第二个指令“跳跃”之后,来自存储器控制器33的该指令出现在存储器模块40的DL_Out终端48C。因此,经过总共N-1次“跳跃”,指令将到达存储通道(包含以菊花链式配置32与存储器控制器33相连接的所有存储器模块)最后或最远的DIMM(此处为DIMM 44)。类似的,来自该最后或最远的DIMM44的对该指令的响应要到达存储器控制器33也需要N-1次“跳跃”。应该注意的是,此处的术语“指令”指的是从存储器控制器33(例如,在数据写入操作中,或者在存储器模块测试操作中)发送给系统32中的一个或者多个DIMM的地址、数据和/或控制信号。另一方面,此处使用的术语“响应”指的是由DIMM响应于从存储器控制器33接收到的的指令而产生的并且发送给存储器控制器33的(例如在数据读取操作中,或者在存储器测试操作中)数据或者状态信号。
如从图2中看出,在菊花链式存储器配置中,存储器控制器33只直接与DIMM模块中的一个(也就是图2中的存储器模块34)相连接,与图1中并行总线配置的与所有存储器模块连接相对立。因此,串行菊花链的一个缺点是一个存储器模块的缺陷或者故障导致来自存储器控制器33的指令进一步的“下游”传播受阻。但是,除了此缺点,菊花链式的配置32提供显著的优点,包括例如,非常高速的信号传播(在多GHz的范畴)和对单个DIMM数据传输操作更多控制。因此,菊花链式配置32中信号发送能够明显地快于并行配置10中的信号发送。如前所述,菊花链式配置中的每一个DIMM作为下一个下游DIMM(连接到DL_Out终端)或上游DIMM(连接到UL_Out终端)的信号“转发器”。下行链路和上行链路通道是非常快、窄带宽、单向(一个方向)的信号总线,承载编码的信号分组(包含来自存储器控制器33的存储地址,数据和/或控制信息),所述编码的信号分组由接收器DIMM进行解码。下行链路通道承载一个方向的信号,而上行链路通道承载相反方向的不同信号。明显看出,在图2中的菊花链式配置中,无论信号是从存储器控制器33广播给存储通道中所有的DIMM,或者信号只定址到存储通道中的单个DIMM,信号必须通过“跳跃”行进。也就是说,来自存储器控制器33的任何信号通过一个或多个跳跃传输给希望/目标DIMM,该一个或多个跳跃涉及一个或多个居间DIMM。
应该注意的是,此处使用的术语“菊花链式配置”指的是高速的、串行总线配置,更具体的,是使用单向信号传输链路将多个电子设备(例如,图2中的存储器模块34,40,44)与其控制器(例如,图2中的存储器控制器33)相连接的串行总线,其中承载控制器输出的信号的链路或者终端的集合(下行链路)是与承载给控制器的信号的链路集合(上行链路)不同的。
从前述讨论中可以看出,图2中的菊花链式配置中,信号在到达目标DIMM或存储器控制器33前遇到可变量的延迟。例如,DIMM44可能在经过特定的延迟之后接收到来自存储器控制器33的信号,其中延迟包含在信号到达DIMM 44之前由N-1个跳跃消耗的时间。另一方面,在DIMM40的情况中,信号到达DIMM40的延迟可能仅包含单个跳跃(通过DIMM34)所用的时间。在由DIMM生成响应的事件中,响应到达存储器控制器33的延迟也依赖于存储通道的“深度”而变化。例如,由DIMM0(34)生成的响应可以不要任何“跳跃”到达存储器控制器,而来自DIMM 44的响应在到达存储器控制器33之前需要经过N-1跳跃。因此,延迟量可以随着存储器模块34,40,44到存储器控制器33之间的物理接近程度而线性变化(也就是存储器模块越远,延迟越大),并且也可以随着存储通道中存储器模块的总数而线性变化(也就是说,以菊花链式与控制器33串行相连接的存储器模块越多,到更远模块的延迟就越大)。
从上述讨论中看出,图2中菊花链式配置32中,因为,通过“跳跃”的固有的指令传播延迟,来自控制器33的一个指令可以由不同的DIMM在不同时间进行处理。同样,又是因为通过“跳跃”的延迟,来自不同DIMM的响应可以在不同的时刻到达控制器33。在图2的实施例中,指令延迟或者指令传播延迟(也就是来自存储器控制器33的指令或信号到达最远的DIMM44的总延迟)必须与响应延迟或者响应传播延迟(也就是响应从最远的DIMM44到达存储器控制器33的总延迟)一起计算,以便确保来自系统32中任意DIMM的响应在同时到达存储器控制器33。这个效应可以称为“延迟标准化(levelization)”,也就是说,存储器控制器33不需要等待不同的时间来接收来自系统32中不同的DIMM的响应。相反,存储器控制器33需要的是等待一个固定的、预置时间的延迟来期待来自系统32中任意DIMM的响应。因此,从存储器控制器的角度,在发送指令与接收响应之间只存在一个固定的、单一延迟,而不管存储通道的深度或者DIMM与存储器控制器33的物理接近程度。这个方面与图1中并行总线的等待时间基本相似。如前所述,在图1的情况中,最慢的DIMM的延迟将决定处理器11在发送指令和接收到来自系统10中的DIMM的响应之间经历的等待时间。在图2的菊花链式配置32的情况中,同样希望将控制器33从基于每个DIMM的不同实例确定延迟中解脱出来。而将延迟“标准化”,使得控制器33可以在同时接收(或者“期待”)来自DIMM34,40,44的响应。
图3示出了在图2的菊花链式存储通道中实现延迟标准化的当前技术的拓扑。在图3中,只针对图2中系统32的DIMM中的一个(也就是DIMM1(40))示出了实现延迟标准化的构造细节。但是,明显地,相似的配置也可以被实现在系统32中的DIMM34,40,44的每一个上。图3中显示的DIMM40包含DIMM专用响应延迟单元52,它允许在其中存储可编程的延迟。要在延迟单元52中编程写入的延迟量可以主要依赖3个要素(1)DIMM40与存储器控制器33的物理接近程度,(2)菊花链式配置32中DIMM的总数,和(3)到系统中最远的DIMM(例如,图2中的DIMM44)的命令传播延迟和从最远的DIMM到存储器控制器33的响应传播延迟的总和。例如,为了简单和便于描述,假定图2所示的系统32中仅有3个DIMM(DIMM34,40,44),并且在系统32中的每一个DIMM上(除了最远的DIMM44,如下所述),对于每个指令和响应的传播,存在一个时钟周期的“与跳跃相关”的延迟。这就是说,假定将指令信号通过下行链路通道传播到紧接着的下一个下游DIMM需要一个时钟周期的延迟,那么将响应信号通过上行链路通道传播给紧接着的下一个上游DIMM也需要一个时钟周期的延迟,也就是说在上行和下行链路通道中的对称延迟。在这个例子中,忽略了非常小的由DRAM存储器库42处理信号的延迟(处理指令和生成响应),图3中的延迟单元52可以被编程来将由存储器库42中的存储器芯片所产生的对来自存储器控制器33的指令的响应(可以包含要读取的数据)适当延迟传输。
在本例子中,在延迟单元52中编程的延迟量等于[T*(N-1)/P]个时钟周期,其中“T”是在一个DIMM(如下所述,除了最远的DIMM44之外)“与跳跃相关”的总的时钟周期延迟,其包含指令传播到菊花链中下一个“下游”DIMM和响应传播到下一个“上游”DIMM的延迟(在本例中,T=2),“N”是系统中DIMM的总数(这里为N=3),并且“P”是该DIMM与存储器控制器33的物理接近程度(例如,对于第一个或最近DIMM34,P=1,对于第二个下游DIMM40,P=2,等等)。因此,在DIMM1(40)的情况中,被编程到单元52中的延迟量等于2个时钟周期,而被存储在DIMM0(34)中相应的延迟单元(未显示)中的延迟量为4个时钟周期。在最远的DIMM(也就是图2中的DIMM44)的情况中,可编程的延迟量可以是0,因为对于最远的DIMM,T=0。
从上述可知,参考图2和3讨论的标准化允许存储器控制器33从菊花链式配置32中任意存储器模块同时接收到响应。通过使用在系统32中每个DIMM的合适的延迟来补偿在向菊花链中最远的DIMM传播指令和从其接收响应信号中消耗的时间,存储器控制器33同时接收到来自每一个DIMM的响应,而不论这些DIMM相对于控制器33的物理接近程度。也就是说,控制器33在通过下行链路通道发送指令之后经过固定的延迟时间后,“期待”和接收响应,而不管该指令是发送给单个DIMM或者广播给系统中所有的DIMM。例如,如果一个指令在时间“t”被发出,那么在前面例子中,存储器控制器33在“t”的4个时钟周期后接收到响应,而不管指令是发给DIMM0(34)还是DIMM N-1(44)。
参考图3的实施例可以发现图3中的虚线显示在DIMM40中信号如何传输。因此,例如,出现在DL_In终端48B的指令信号将直接传播到DL_Out终端48C,以便发送到下一个下游DIMM。该指令信号将也被发送给DRAM存储器库42进行处理(例如,数据写入到存储单元)。另一方面,出现在UL_IN终端50C的来自相邻(上游)DIMM的响应信号类似地直接传播到UL_Out终端50B。DIMM40可以将其自己的响应(如下讨论通过延迟单元52适当地延迟)添加到在UL_In终端50C接收到的信号,以便将其响应与前面DIMM的响应一同发送给上行链路通道中的下一个DIMM。
不论来自DIMM的响应到存储器控制器33的传输是流线式或者“标准化”,图3中的实施例仍然使得存储器控制器33不能预测一个指令何时将被特定的DIMM执行。特别在某些DRAM操作中,可能希望存储器控制器33通过寻址DIMM预测指令的执行,使得控制器33能够更加有把握地和/或更方便地控制存储系统的功率消耗(或者功率特性)。例如,某些DRAM操作,诸如“刷新”指令,可以消耗大量功率。在图3的实施例中,存储器控制器33可以将DIMM特定刷新指令分散时间来执行,以便尽量减少消耗太多系统功率,也就是,尽量避免当2个或者多个DIMM同时执行它们的刷新指令时导致的功率消耗突然波动。因此,在仅3个DIMM(例如,DIMM34,40,44)的例子中,存储器控制器33可以在第一个时钟周期发出刷新指令给最远的DIMM44,随后在第二个时钟周期发出第二个刷新指令给中间的DIMM40,在第三个时钟周期发出第三个刷新指令给最近的DIMM34。但是,尽管这样分散刷新指令,还会发生DIMM40和44在同时结束刷新指令的执行,不倾向于发生这样的情况。或者,即使这样同时处理刷新指令是能够允许的,存储器控制器仍然希望“知道”何时指令将被受信的DIMM所处理。
因此,希望能够设计一个系统,其中,除了预测对来自DIMM的响应的接收时序,存储器控制器可以有效地预测它所发送的指令将何时被受信的DIMM执行。利用这个预测指令的执行时序的能力,存储器控制器能够有效地控制在菊花链式存储通道上的所有DRAM设备(或存储器模块)的功率特性(power profile)。

发明内容
在一个实施例中,本发明公开提出一种方法,包含以菊花链式配置连接多个存储器模块,其中多个存储器模块中的每一个包含相应的多个存储单元;在该多个存储器模块中的一个接收指令;将该指令传播给菊花链式配置中的一个或者多个存储器模块;并且配置该多个存储器模块中的至少一个,延迟在那里接收的指令向其中包含的一个或者多个存储器元件的传输,直到经过相应的预置延迟。
在另一个实施例中,本发明公开提出一种方法,包含以菊花链式配置连接多个电子设备;在多个电子设备中的一个电子设备接收指令;将该指令传输给菊花链式配置中其余的电子设备;并且,配置该多个电子设备中的每个电子设备,延迟指令的执行来产生相应的响应,直到经过相应的预置延迟。
在可选的实施例中,本发明公开提出一个组合,包含一个以串行配置方式连接多个存储器模块的存储器控制器,其中,该多个存储器模块中的至少一个被配置为,延迟在那里接收的指令向其中包含的一个或者多个存储器元件的传输,直到经过相应的预置延迟。在又一个实施例中,本发明公开提出一个系统,其包含处理器总线通过总线与处理器相连接的控制器,该控制器还以菊花链式配置与多个电子设备相连接;和多个电子设备,其中该多个电子设备中的每个电子设备被配置为,延迟从控制器接收的指令的执行来产生相应的响应,直到经过相应的预置延迟。
本发明公开描述一种用于菊花链式存储拓扑的方法,其中,除了对来自存储器模块(DIMM)的响应的接收时序的预测,存储器控制器能够有效地预测由其发出的指令何时会被受信的DIMM所执行。通过对DIMM指令延迟单元中的DIMM专用指令延迟进行编程,依照本发明公开的指令延迟均衡方法将对该指令信号在存储通道中的所有DIMM上的执行进行“标准化”或“同步化”。利用这样的预测指令执行时序的能力,控制器能够有效地控制在菊花链式存储通道上所有DRAM设备(或者存储器模块)的功率特性。DIMM中独立的DIMM专用响应延迟单元也可以被编程来在响应路径中提供DIMM专用的延迟补偿,进而允许存储器控制器更准确地确定对之前发送的指令的响应的接收时序,并且,因此更好地管理或者规划(按时序)下一步的响应处理。


为了本发明公开更加易于理解和便于实践,现在将联系附图描述本发明公开,该描述用于举例说明而不是限制,其中图1显示当前技术方案,其中示出了在存储器控制器和多个存储设备(DIMM)之间通过并行存储总线进行的信号通信;图2显示一种可选的配置,其中存储器模块(DIMM)与存储器控制器以菊花链式的配置进行连接;图3显示当前技术中用于实现图2中的菊花链式存储通道中的延迟标准化的方法;图4显示依照本发明公开的一个实施例的指令延迟均衡方法;和图5是一种系统的框图,其中可以使用依照本发明公开教义的指令延迟均衡方法。
具体实施例方式
现在将详细地参考本发明的多个实施例,实施例的例子被显示在附图中。应该理解的是,这里包含的本发明的附图和说明中示出并描述了与本发明特别相关的元件,而由于简化的目的,略去典型数据存储或者存储器系统中出现的其他元件。在此应该注意,术语“连接到”,“连接着”,“电气地连接到”等在本文中可交换运用,通常指的是被电气连接的情况。
图4显示依照本发明的一个实施例的指令延迟均衡方法。为了显示的方便,仅示出一个具有DIMM专用可编程指令延迟单元56的存储器模块(DIMM)54。DIMM54可以是图3中DIMM40的修改版本,并且因此,也表示为DIMM1。DIMM连接器54上的上行链路和下行链路终端以它们在图2和3中的相同参考标号指代。DRAM存储器库42也以在图2和3中所用的相同的参考标号进行指代。应该注意的是,图4中的DIMM1(54)可以类似于图2中的菊花链式配置来使用。在那种情况下,图2中显示的所有DIMM34,40,44可以用相应的具有与图4中描述的DIMM54相似的结构的DIMM来代替,以便用图2中的菊花链式配置来实现依照本发明的指令延迟均衡方法。因为在图4的实施例中,指令延迟和响应延迟的值的计算方法不同,图4中显示的可编程响应延迟单元58具有的参考标号与图3中用于延迟单元的参考标号“52”不同。因此,图3和4之间相同的参考标号标识相似的电路元件或组件,而不同的参考标号用于区分在图4的实施例中出现的修改或者附加的电路元件或者组件。
应该发现,不论图2中每个DIMM的配置是图3所示的配置或图4所示的配置,图2的实施例中指令传播延迟和响应传播延迟的总和保持相同。图3和图4中的实施例之间的不同是,总的信号传播延迟(也就是指令和响应传播延迟的总和),在图3的实施例中是通过单个响应路径延迟补偿来计算的,然而在图4的实施例中,总延迟被分为其相应的指令传播延迟和响应传播延迟,并且每一个这样的延迟分量如下所述单个地进行补偿。
如上所述,在图4的实施例中,将指令经由下行链路通道从存储器控制器(例如,存储器控制器33)传播到菊花链中最远的DIMM(例如,合理修改的包含如图4所示元件的DIMM44)的单向指令传播延迟,与响应从系统中最远的DIMM传播到存储器控制器的单向响应传播延迟,以分开的方式考虑。因此,假设,如前所述,三DIMM菊花式链配置(例如,如图2中所示的并且每个DIMM具有与图4中的DIMM54相似拓扑的配置32)对于每一个指令和响应在系统32中每一个DIMM(除最远的DIMM之外)上的传播具有一个时钟周期的“跳跃相关”延迟,并且忽视由各DIMM中DRAM存储器库造成的非常短的处理延迟(来处理指令并生成响应),该“跳跃相关”指令传播延迟等于两个时钟周期,而响应传播延迟等于两个周期。在这种情况下,在图4的实施例中,在DIMM指令延迟单元(例如,单元56)中DIMM专用指令延迟的值可以被编程等于[C*(N-1)/P],其中“C”是在一个DIMM上指令传播给下一个“下游”DIMM的总的“跳跃相关”的时钟周期延迟,参数“N”和“P”与先前定义的相同。类似地,在图4的实施例中,在DIMM响应延迟单元(例如,单元58)中DIMM专用响应延迟的值可以被编程等于[R*(N-1)/P],其中“R”是在一个DIMM上将响应传播给下一个“上游”DIMM的总的“跳跃相关”的时钟周期延迟,参数“N”和“P”与先前定义的相同。在一个实施例中,C+R=T,其中参数“T”与先前定义的相同。
使用上述公式,可以看出在三DIMM菊花链(N=3)的例子中,指令传播延迟=C*(N-1)=2时钟周期,其中C=1时钟周期。而且,在这样的配置中,响应传播延迟=R*(N-1)=2时钟周期,其中R=1时钟周期。利用这些值,可以看出三DIMM菊花链中的中间DIMM(例如,DIMM54)将1个时钟周期的DIMM专用指令延迟编程到延迟单元56中,因为,[C*(N-1)/P]=1。中间DIMM54将一个时钟周期的DIMM专用响应延迟编程到延迟单元58中,因为[R*(N-1)/P]=1。另一方面,最接近存储器控制器的DIMM(例如,以图4中所示方式修改的图2中的DIMM34)将2个时钟周期的DIMM专用指令延迟编程到其自己的指令延迟单元(类似于延迟单元56)中,并且将2个时钟周期的响应延迟编程到自己的响应延迟单元(类似于延迟单元58)中。如前所述,离存储器控制器最远的DIMM(例如,以图4中形式修改的图2中的DIMM44)将因为对于最远的DIMM C=0和R=0,而在其指令和响应延迟单元中具有0时钟周期的延迟。
除了在其中存储的不同延迟值,从模块外部看来,响应延迟单元(例如,单元58)的功能与上文中参考图3中的延迟单元52所讨论的情况相同。但是,依照本发明公开的指令延迟单元(例如,在图4中的延迟单元56)用于延迟受信的DIMM(例如,DIMM54)对指令的执行或处理,直到已经经过在DIMM的指令延迟单元56中所编程的延迟时间。应该注意的是,此处使用的术语“执行”或者“处理”指代由DIMM的DRAM存储器库(例如,存储器库42)进行的指令执行或者处理。在一个实施例中,这些术语可能也包含相应响应的生成(该响应随后被响应延迟单元58适当延迟)。因此,依照本发明的一个实施例,在DIMM连接器54的DL_In终端48B接收到的指令信号不仅传送(通过DL_Out终端48C)给在下行链路通道中的下一个DIMM,还在将该指令呈现或传输给DRAM存储器库42和用于处理/执行的相关联电路(未显示)之前由指令延迟单元56延迟。在经过单元56中所编程的延迟后,DRAM存储器库42和其相关联的信号处理电路(未显示)可以确定该指令是否是定址给DIMM54来执行的,如果是的话,随后按照存储器控制器的指示执行该指令(例如,写数据到存储器单元,在存储器单元上进行检测操作等),并且生成响应,此响应随后在通过UL_Out终端50B发布给上行链路通道(并且最终到达存储器控制器)之前,被馈送给响应延迟单元58以便延迟合适的延迟量(如上文所述)。
可以从前述讨论中看出,通过在DIMM的指令延迟单元(例如,图4中的单元56)中编程DIMM专用指令延迟,依照本发明的指令延迟均衡方法对该指令信号在存储通道中的所有DIMM上的执行进行了“标准化”或者“同步化”。进一步,菊花链式系统中的存储器控制器(例如,图2中的控制器33)可以被改编或者配置为在其中存储指令传播延迟的值(也就是指令信号从控制器到系统中最远的DIMM的总延迟),以便“预测”给定指令何时将被受信DIMM执行。例如,在上文中讨论的示范性的时钟延迟值的例子中,可以看出指令传播延迟是2时钟周期(在3DIMM通道中到达最远的DIMM需要2“跳跃”)。因此,这样的系统中的存储器控制器在控制器发出指令给最近的DIMM的时间“t”的2个时钟周期后,将期待每一个受信的DIMM执行指令。因此,即使指令信号不是广播信号,而是定址到存储通道中特定的DIMM(或者选择的一系列DIMM),编程到DIMM的相应指令延迟单元中的预置延迟“标准化”了指令的执行,使得存储器控制器能够有效地“预测”何时该指令将被受信的DIMM执行。
依照本发明的延迟标准化方法不仅在响应路径中(包括通过系统中所有上行链路的响应信号传播路径),也在指令路径中(包括通过系统中各下行链路的指令信号传播路径)实现了延迟补偿。因为指令路径中的延迟补偿,菊花链式拓扑中的存储器控制器可以被配置来预测指令信号何时将由所定址用于执行的一个或多个DIMM执行或者处理。这个功能允许存储器控制器有效地安排向系统中一个或者多个DIMM发送资源敏感的指令信号(例如,存储器模块执行的刷新指令需要大量的功率消耗)的时间,以便有效地平衡系统的功率消耗或功率特性(以阻止,例如,系统过载或者系统中突然发生功率波动)。存储通道功率特性的受控管理进一步导致在菊花链式配置结构中的上行链路和下行链路通道传输信号的整体性的改善。另外,响应路径中的延迟补偿导致延迟的“标准化”,进一步允许存储器控制器精确确定对之前其所发送指令的响应的接收时序,并且因此,更好地管理或者规划(以时间为序)对响应的进一步处理。
图5是描述系统100的框图,其中使用了依照本发明教义的指令延迟均衡方法。系统100可以包含数据处理单元或者计算单元102,其包含用于完成多种计算功能(例如,执行特定软件来完成特定计算或者数据处理任务)的处理器104。计算单元102可以还包含一组菊花链式存储设备或存储器模块106(类似于图2中所示的配置),其通过存储器控制器110与处理器104进行通信。存储器控制器110可以通过下行链路107和上行链路108与菊花链存储设备中的一个连接。其他存储设备可以通过相应的下行链路和上行链路,按照例如通过图2中的配置32所描述的相似方式,与直接与存储器控制器110相连的该存储设备(未图示)相连接。为了讨论的方便,下行链路107和上行链路108此处一起称为“存储器控制器总线”。如上文所讨论,存储器控制器总线可以承载地址、数据和/或控制信号。存储设备106的每一个可以具有图4中的示范DIMM54所示的配置。也就是,存储设备106的每一个可以包含设备专用可编程指令和响应延迟单元来提供如上文所讨论的指令路径和响应路径延迟补偿。进一步,存储设备106的每一个可以是包含多个动态随机访问存储器(DRAM)芯片或者其他诸如SRAM(静态随机访问存储器)芯片或闪存的其它类型存储器电路的存储器模块(DIMM)。进而,DRAM可以是同步的DRAM,通常被称为SGRAM(同步图形随机访问存储器),SDRAM(同步动态随机访问存储器),SDRAM II或者DDR SDRAM(双倍数据速率SDRAM),也可以是Synchlink或者RambusDRAM。本领域中的那些普通技术人员将可以很容易地识别出图5中的存储设备106是简化来描述存储设备的一个实施例,并且不是试图对典型存储器模块或DIMM的所有特性进行详细描述。处理器104能够基于存储在存储设备106中的信息和数据完成多种功能。处理器104可以是微处理器,数字信号处理器,嵌入式处理器,微控制器,专用存储器测试芯片,类似设备等。
存储器控制器110响应于从处理器104接收到的控制信号,控制通过总线112(可以是并行或者串行总线)的到存储设备106的数据通信和从存储设备106发出的数据通信。存储器控制器110可以包含指令解码电路(未显示)。指令解码电路可以在总线112上接收输入控制信号(未显示)来决定一个或者多个存储设备106的操作模式。总线112上(也在存储控制器总线108上)的一些输入信号或者控制信号(在图5中未显示)的例子包含外部时钟信号、芯片选择信号、行访问选通信号、列访问选通信号、写入使能信号、存储器刷新信号等。
系统100可以包含与计算单元102相连接的一个或者多个输入设备114(例如,键盘,鼠标等),以允许用户人工输入数据、指令等来操作计算单元102。与计算单元102相连接的一个或者多个输出设备116也可以被提供作为系统100的一部分,来显示或者输出由处理器104生成的数据。输出设备116的例子包含打印机、视频终端或者视频显示器单元(VDU)。在一个实施例中,系统100还包含一个或者多个与数据处理单元102相连接的数据存储设备118,以允许处理器104向内部或者外部存储介质(未显示)存储数据或者从中检索数据。典型的数据存储设备118的例子包含接受硬盘和软盘的驱动器、CD-ROM(压缩磁盘只读存储器)和磁带盒。
此处应该注意的是,依照本发明一个实施例的指令和响应延迟分离补偿方法可以不仅用于菊花链式存储器模块,还可以与以图2所示相似方法连接的任意其他菊花链式电子设备(未显示)一起使用,并且由普通控制器(未显示)控制,此控制器需要预测指令在一个或者多个电子设备执行的时序和响应从该一个或者多个电子设备发回的时序。
前文描述一种用于菊花链式存储拓扑的方法,其中,除了预测对从存储器模块(DIMM)发来的响应的接收时序,存储器控制器能够有效地预测它发出的指令何时将被受信DIMM执行。通过在DIMM指令延迟单元中编程DIMM专用指令延迟,依照本发明的指令延迟均衡方法对指令信号在存储通道中所有DIMM上的执行进行了“标准化”或者“同步化”。利用这样的预测指令执行时序的能力,存储器控制器能够有效地控制在菊花链存储通道上的所有DRAM设备(或者存储器模块)的功率特性。DIMM中的独立的DIMM专用响应延迟单元也可以被编程来提供响应路径中的DIMM专用延迟补偿,进而允许存储器控制器精准地确定对其之前发出的指令的响应的接收时序,并且因此,更好地管理或者规划(以时间为序)对响应的进一步处理。
尽管已经参考本发明的特定实施例详细地描述了本公开,对本领域中的技术人员来说,在不背离本发明精神和范围的情况下可以对其进行多种变化或者修改。因此,本公开意在覆盖在所附权利要求和其等价物的范围内对本发明进行的各种修改和变型。
权利要求
1.一种方法,包括以菊花链式配置连接多个存储器模块,其中,所述多个存储器模块的每一个包含相应的多个存储元件;在所述多个存储器模块中的一个上接收指令;将所述指令传播给所述菊花链式配置中的一个或多个存储器模块;并且将所述多个存储器模块中的至少一个配置为,延迟在此接收的指令向它其中包含的一个或多个存储元件的传输,直到经过了相应的第一预置延迟。
2.依照权利要求1的方法,进一步包括,存储器控制器与所述多个存储模块中的仅一个连接。
3.依照权利要求2的方法,其中,接收所述指令包含配置所述存储器控制器将所述指令发送给与之相连接的存储器模块;并且在与所述存储器控制器相连接的存储器模块处接收所述指令。
4.依照权利要求2的方法,其中,所述配置包含确定所述多个存储器模块中的所述至少一个与所述存储器控制器之间的物理接近程度;确定在所述菊花式链配置中,将所述指令从所述存储器控制器传播到多个存储器模块中最后接收到所述指令的那个模块所造成的指令延迟时间;基于所述物理接近程度、所述指令延迟时间和所述多个存储器模块中存储器模块的总数确定所述相应的第一个预置延迟;并且对所述多个存储器模块中至少一个进行编程,以便在将所述指令发送给它其中所包含的一个或者多个存储元件之前,将所述相应第一个预置延迟给予(impart)所述指令。
5.依照权利要求2的方法,进一步包括配置所述多个存储器模块中的所述至少一个来生成对其所接收到的所述指令的响应;并且进一步配置所述多个存储器模块中的所述至少一个,以便延迟将所述响应发送给所述存储器控制器,直到经过相应的第二个预置延迟为止。
6.依照权利要求5的方法,其中,所述进一步配置包括确定所述多个存储器模块中的所述至少一个与所述存储器控制器之间的物理接近程度;确定将最后响应传播到所述存储器控制器所需要的响应延迟时间,其中,所述最后响应是所述多个存储器模块在所述菊花链式配置中最后接收到所述指令的一个存储器模块所产生的对所述指令的响应;基于所述物理接近程度、所述响应延迟时间和所述多个存储器模块中存储器模块的总数,确定所述相应第二个预置延迟;并且编程所述多个存储器模块中的所述至少一个,以便在将所述响应发送给所述存储器控制器之前,将所述相应的第二个预置延迟给予所述响应。
7.一种方法,包括以菊花链式配置连接多个电子设备;在所述多个电子设备中的第一个电子设备上接收指令;将所述指令传播给所述菊花链式配置中的其余的电子设备;并且将所述多个电子设备中的每个电子设备配置为,延迟所述指令的执行以产生对应的响应,直到经过了相应的第一预置延迟。
8.依照权利要求7的方法,其中,对于最后接收到所述被传播的指令的电子设备,所述相应的第一个预置延迟为0。
9.依照权利要求7的方法,进一步包含将控制器连接到所述第一个电子设备;并且配置所述控制器将所述指令传输给所述第一个电子设备,其中所述接收包含在与控制器相连接的第一个电子设备处接收由所述控制器传输的所述指令。
10.依照权利要求9的方法,其中,配置每一个所述电子设备包含确定所述每一个电子设备与所述控制器之间的物理接近程度;确定将所述指令从所述控制器传播到所述菊花式链配置中最后一个接收到所述指令的电子设备所需要的指令延迟时间;基于其所述物理接近程度、所述指令延迟时间和所述多个电子设备中电子设备的总数,为每一个电子设备确定所述相应第一个预置延迟;并且对所述每一个电子设备编程,以延迟处理所述指令,直到经过了所述相应的第一个预置延迟。
11.依照权利要求9的方法,进一步包含进一步配置每一个所述电子设备,以便延迟将所述相应响应发送给所述控制器,直到经过了相应的第二个预置延迟。
12.依照权利要求11的方法,其中,进一步配置所述每一个电子设备包含确定所述每一个电子设备与所述控制器之间的物理接近程度;确定将所述对应的响应从所述菊花式链配置中最后一个接收到所述指令的电子设备,传播给所述控制器所需要的响应延迟时间;基于其所述物理接近程度、所述响应延迟时间和所述多个电子设备中电子设备的总数,为每一个电子设备确定所述相应的第二个预置延迟;并且对所述每一个电子设备编程,以便在将所述相应的响应发送给控制器之前,将所述相应的第二个预置延迟给予所述相应的响应。
13.依照权利要求11的方法,其中,对于最后接收到所述被传播的指令的电子设备来说,所述相应的第二个预置延迟是0。
14.一种组合,包含被配置用于生成和传输指令的存储器控制器;和多个以串行配置相互连接的存储器模块,其中,所述多个存储器模块中只有一个与所述存储器控制器相连接,并且其中,每一个存储器模块包含相应的多个存储单元;其中,与所述存储器控制器相连接的存储器模块被配置来接收来自所述存储器控制器的指令,并且将所述指令传播给所述串行配置中的其他存储器模块,其中,所述多个存储器模块中的至少一个被配置为,延迟将在此接收的指令发送给它其中包含的一个或多个存储元件,直到经过了相应的第一个预置延迟。
15.依照权利要求14的组合,其中,基于所述多个存储器模块中的所述至少一个与所述存储器控制器之间的物理接近程度、将所述指令从所述存储器控制器传播到在所述串行配置中最后接收到所述指令的多个存储器模块中的一个所需要的指令延迟时间、和所述多个存储器模块中存储器模块的总数,来确定所述相应的第一个预置延迟。
16.依照权利要求14的组合,其中,所述相应的第一个预置延迟被存储在所述多个存储器模块中的所述至少一个中。
17.依照权利要求14的组合,其中,对于所述串行配置中最后一个接收到所述被传播的指令的存储器模块来说,所述相应的第一个预置延迟为0。
18.依照权利要求14的组合,其中,所述多个存储器模块中的所述至少一个被配置来生成对其所接收到的所述指令的响应,并且延迟将所述响应发送给所述存储器控制器,直到经过了相应的第二个预置延迟。
19.依照权利要求18的组合,其中,所述相应的第二个预置延迟是基于,所述多个存储器模块中的所述至少一个与所述存储器控制器之间的物理接近程度、将对所述指令的响应从所述多个存储器模块中在所述串行配置中最后一个接收到该指令的存储器模块传播到存储器控制器所需的响应延迟时间、和所述多个存储器模块中存储器模块的总数,而确定的。
20.依照权利要求18的组合,其中所述相应的第二个预置延迟存储在所述多个存储器模块中的所述至少一个中。
21.依照权利要求18的组合,其中对于所述串行配置中最后一个接收到所述被传播的指令的存储器模块来说,所述相应的第二个预置延迟为0。
22.依照权利要求14的组合,其中所述串行配置是菊花链式配置。
23.一种系统,包含处理器;总线;通过所述总线连接所述处理器的控制器,其中控制器被配置来生成和传输指令;以菊花链式配置相互连接的多个电子设备,其中,所述多个电子设备中只有一个与所述控制器相连接,并且其中,该多个电子设备中的每一个电子设备使用用于所述菊花链式配置的信号传输机制与所述控制器通信,其中,与所述控制器相连接的电子设备被配置来接收来自所述控制器的指令,并且将所述指令传播给所述菊花链式配置中的其他电子设备,其中,所述多个电子设备中的每一个被配置来延迟执行所述指令以生成相应的响应的过程,直到经过了相应的第一个预置延迟。
24.权利要求23所述的系统,其中,所述每一个电子设备的相应的第一个预置延迟是基于,所述每个电子设备与所述控制器之间的物理接近程度、将所述指令从所述控制器传播到所述菊花链式配置中最后接收到所述指令的电子设备所需要的指令延迟时间、和所述多个电子设备中电子设备的总数,而确定的。
25.权利要求23所述的系统,其中,所述相应的第一个预置延迟存储在每一个所述电子设备中。
26.权利要求23所述的系统,其中对于最后一个接收到所述被传播的指令的电子设备来说,所述相应的第一个预置延迟为0。
27.权利要求23所述的系统,其中每一个所述电子设备被配置为延迟将所述相应的响应发送给所述控制器,直到经过了相应的第二个预置延迟,其中,所述相应的第二个预置延迟是基于所述每一个电子设备与所述控制器之间的物理接近程度、将所述相应的响应从所述菊花链式配置中最后一个接收到所述指令的电子设备传播到所述控制器所需要的响应延迟时间和所述多个电子设备中电子设备的总数而确定的。
28.权利要求27所述的系统,其中所述相应的第二个预置延迟存储在每一个所述电子设备中。
29.权利要求27所述的系统,其中对于所述串行配置中最后一个接收到所述被传播的指令的电子设备来说,所述相应的第二个预置延迟为0。
全文摘要
一种用于菊花链式存储拓扑的方法,其中除了对来自存储器模块(DIMM)的响应的接收时序的预测,存储器控制器可以有效地预测从其发出的指令何时将被受信的DIMM执行。通过对DIMM的指令延迟单元内的DIMM专用指令延迟进行编程,依照本发明公开的指令延迟均衡方法对指令信号在存储通道中所有的DIMM上的执行进行了“规格化”和“同步化”。利用这样的预测指令执行时序的能力,存储器控制器能够有效地控制菊花链式存储通道中所有DRAM设备(或者存储器模块)的功率特性。DIMM中独立的DIMM专用响应延迟单元可以也被编程,来提供响应路径中的DIMM专用延迟补偿,进一步允许存储器控制器准确地确定响应接收的时序,并且,因此更好地管理对响应的进一步处理。
文档编号G11C29/00GK101014941SQ200580028359
公开日2007年8月8日 申请日期2005年8月9日 优先权日2004年8月19日
发明者D·A·拉森 申请人:微米技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1