用于隐式DRAM预充电的方法和装置转让专利

申请号 : CN200480027150.6

文献号 : CN1853238B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·奥斯伯恩

申请人 : 英特尔公司

摘要 :

一种装置和方法,其用于隐式地发送命令以关闭存储装置内的存储单元行,以此作为用于开启存储装置内另一存储单元行的激活命令的发送的一部分。

权利要求 :

1.一种存储装置,包括:

至少一个库,其包括被排列成多行存储单元的存储单元;

控制逻辑,其耦合到所述至少一个库,并响应由所述存储装置所接收的单个行激活命令而开启特定的行,从而:如果当行激活命令被收到时,没有行是开启的,则在所述至少一个库内的特定行被开启,如果当行激活命令被收到时,在库内有一个与特定行不同的行是开启的,则所述不同的行被关闭而所述特定的行被开启。

2.如权利要求1所述的存储装置,其特征在于,该存储装置是动态随机访问存储器,其中所述行激活命令经由耦合于所述存储装置的存储总线来接收的,而经由存储总线的数据的发送是与经由存储总线发送的时钟信号相同步的,从而使得该部分数据可以在每半个时钟周期被发送。

3.如权利要求1所述的存储装置,其特征在于,所述控制逻辑可以被编程为仅仅响应显式预充电命令的接收而关闭不同的行。

4.如权利要求1所述的存储装置,其特征在于,所述存储装置提供一个指示,该指示经与所述存储装置耦合的存储总线可被另一个装置读取,该指示表明所述存储装置的控制逻辑能够响应开启特定行的行激活命令的接收从而开启特定的行并关闭不同的行。

5.如权利要求4所述的存储装置,其特征在于,所述指示还提供了存储装置关闭不同的行所需的时间量的说明。

6.如权利要求5所述的存储装置,其特征在于,还包括一个可分立访问的非易失性存储器,可以从所述可分立访问的非易失性存储器读取一个指示,表明所述存储装置的控制逻辑能够响应行激活命令从而开启特定行并关闭不同的行。

7.一种存储器控制装置,包括:

第一存储位置,在该位置存储了关于存储装置内的存储单元的库中的行的数据;和

控制对存储单元的访问的控制逻辑,其耦合至所述第一存储位置以:检查第一存储位置内的数据,从而判断所述库内特定的行是否已经开启;检查第一存储位置内的数据,从而判断如果特定的行尚未开启,是否有不同的行已经开启;如果在发送涉及该库的访问命令前,所述特定行被判断为没有开启且库内也没有其它行开启,则发送行激活命令,并且等待第一预定时间段以便开启特定行的行激活命令得以执行;以及如果在发送涉及该库的访问命令之前,所述特定的行被判断为尚未开启,并且库内有不同的行是开启的,则发送还隐含了预充电命令的单个行激活命令,并且等待第二预定时间段,以便开启特定行的行激活命令和从所述单个行激活命令中解释出的关闭所述不同行的隐式预充电命令都得以完成。

8.如权利要求7所述的存储器控制装置,其特征在于,行激活命令经由耦合到控制装置和存储装置的存储总线而被控制逻辑发送到所述存储装置,其中经存储总线的数据发送与经由存储总线发送的时钟信号同步,从而该部分数据可以在每个半个时钟周期被发送。

9.如权利要求7所述的存储器控制装置,其特征在于,还包括第二存储位置,其耦合到所述控制逻辑以存储来自存储装置的指示,该指示表明所述存储装置是否能够通过执行预充电操作以关闭不同的行以及执行行激活操作以开启特定的行,来对用于开启位于具有被开启的不同行的库内的特定行的单个行激活命令的接收作出响应。

10.如权利要求9所述的存储器控制装置,其特征在于,所述第二存储位置还存储了来自所述存储装置的指示,该指示表明所述存储装置执行预充电操作以关闭所述不同行所需的时间段的长度.

11.如权利要求9所述的存储器控制装置,其特征在于,所述控制逻辑对第二存储位置进行访问以检查给定的存储装置是否能够通过执行预充电操作以关闭所述不同的行以及执行行激活命令以开启所述特定的行,来对用于开启位于具有被开启的不同行的库内的特定行的行激活命令的接收作出响应。

12.一种计算机系统,包括:

处理器;

存储装置,其具有至少一个库,多个存储单元在其中排列成行;和

存储控制器,其耦合到所述处理器和存储装置,从而:如果在所述至少一个库内没有行开启,则发送一个用于开启在所述存储装置至少一个库中的特定行的行激活命令,并且在向所述特定行发送数据访问命令之前,等待第一预定时间段以便行激活操作得以由所述存储装置执行;以及,如果除了所述特定行还有不同的行是开启的,则发送一个用于开启在所述存储装置至少一个库中的特定行的带有隐式预充电操作的单个行激活命令,并且在向所述特定行发送数据访问命令之前,等待第二预定时间段以便使与所述单个行激活命令相关联的预充电操作来关闭不同行并且使与所述单个行激活命令相关联的行激活操作得以执行。

13.如权利要求12所述的计算机系统,其特征在于,所述存储控制器还包括逻辑,其用于接收来自所述存储装置的指示,该指示表明:当所述至少一个库内有不同的行被开启时,所述存储装置是否能够通过执行预充电操作以关闭该不同的行以及执行行激活操作以开启特定的行,从而对所述存储控制器的用于开启所述至少一个库内特定行的行激活指令的发送作出响应。

14.如权利要求13所述的计算机系统,其特征在于,所述存储控制器还包括逻辑,其用于接收来自所述存储装置的指示并且等待所述第二预定时间段,该指示表明执行预充电操作所需的时间量,其中第二预定时间量的长度是至少部分地基于来自所述存储装置的指示而确定的,该指示表明执行预充电操作所需的时间量。

15.如权利要求12所述的计算机系统,其特征在于,所述存储控制器以及存储装置经由存储总线耦合在一起,在所述总线上数据的传送与经总线发送的时钟信号同步,并且其中,部分数据可以至少在每半个时钟周期被传送。

16.一种用于存储器控制的方法,包括:

确定在存储单元库内的特定行是否开启,其中多个存储单元在存储装置内排列成行;

如果所述特定行是关闭的,确定所述库内是否有不同的行被开启;

如果判断出在所述库内没有行被开启,则在向所述存储装置发送用于涉及所述特定行的数据访问操作的命令之前,向所述存储装置发送第一行激活命令以开启所述特定的行,并且等待第一预定时间段以便由所述存储装置所执行的行激活操作得以完成;和如果判断出在所述库内有不同的行被开启,则在向所述存储装置发送用于涉及所述特定行的数据访问操作的命令之前,向所述存储装置发送第二行激活命令,并且等待第二预定时间段以便由所述存储装置所执行的、开启所述特定行的行激活操作以及关闭不同行的预充电操作得以完成。

17.如权利要求16所述的用于存储器控制的方法,接收来自所述存储装置的指示,该指示表明在所述特定行被关闭而有不同的行被开启的情况下,存储装置是否能够通过执行预充电操作以关闭所述不同的行以及执行行激活操作以开启特定的行,从而对用于开启所述库内特定行的行激活命令作出响应.

18.如权利要求17所述的用于存储器控制的方法,其特征在于,还包括:如果没有来自所述存储装置的指示表明该存储装置支持在没有发送预充电命令的情况下执行预充电操作以关闭所述不同的行,则在向所述存储装置发送一个用于开启所述库内的特定行的行激活命令之前,先向所述存储装置发送一个预充电命令以关闭所述库内开启的不同行。

19.一种用于存储器控制的方法,包括:

接收用于开启存储单元库中特定行的行激活命令,其中多个存储单元被排列成行;

如果所述库内没有行是开启的,则响应于单个行激活命令,执行行激活操作以开启所述特定的行;和

如果所述特定行是关闭的而不同的行是开启的,则响应于单个行激活命令,执行预充电操作以关闭不同的行,并执行行激活操作以开启所述特定的行。

20.如权利要求19所述的用于存储器控制的方法,其特征在于,还包括向存储控制器提供一个指示,该指示表明:如果所述特定的行是关闭的而不同的行是开启的,存储控制器除了在执行行激活命令以开启特定行之外,还能够通过执行预充电命令以关闭所述库内的不同行,从而对激活库内特定行的行激活命令的发送作出响应。

21.一种用于存储器控制的设备,包括:

用于检查如果特定行关闭而不同的行开启,存储装置是否能够通过执行预充电操作以关闭不同的行,以及执行行激活操作以开启特定的行,从而对行激活命令作出响应的装置,其中所述行激活命令用于开启具有多个排列成行的存储单元的存储单元库中的特定行;

用于对存储控制器进行编程从而在所述特定行关闭而有不同的行开启的情况下,发送用于激活库内特定行的单个行激活命令,并且在向所述存储装置发送涉及所述特定行的数据访问命令之前,等待预定的时间段以使得所述存储装置执行预充电命令以关闭不同的行以及执行行激活命令以开启所述特定的行的装置。

22.如权利要求21所述的用于存储器控制的设备,其特征在于,还包括:基于来自所述存储装置的指示而确定所述预定时间段的长度,其中所述指示表明响应行激活命令的接收而执行预充电操作所需的时间量。

说明书 :

背景技术

与其它存储技术,包括且尤其是静态随机访问存储(SRAM)装置相比,动态随机访问存储(DRAM)装置提供了存储密度更高和功率消耗更少的优点。然而,获得这些优点的代价是:在每次读访问、写访问、以及其它功能之前和/或之后产生各种所需的延时以使得DRAM装置内的存储单元和其它元件预备好后续的访问。这类延时的例子包括行预充电、刷新操作、行激活等。为了对这些数以万计的延时进行有效的管理,创建了一些指令,其可以对各种延时发生的时刻进行更为精确的控制,但是,这产生了由那些需要在读访问和写访问之间发送的额外命令所致的额外支出。

通过将各种功能多路复用于各种信号输入和输出来同时降低DRAM装置的成本和物理尺寸已经是一种公知的手段。然而,这种多路复用需要多个阶段来发送命令和/或地址,有效地用时序分离(temporal separation)来替换信号的物理分离,其中在时序分离中,需要更多的时间来允许各种信号输入和输出首先服务于一个功能,然后至少再服务于第二个功能,如果没有更多功能的话。一个导致这样的时间消耗的一个多路复用的例子由以下原因造成:将发送给DRAM装置的地址分离成为至少两个部分(通常至少一个行地址和一个列地址),被分离的两个部分然后被多路复用到相同的输入信号上,从而使得地址的第一部分必须在第一分立(distinct)时间段内发送,随后所述地址的至少第二部分在至少又一个分立时间段内发送。这种分成分立阶段的时序分离又再次增加了用于所需的数以万计的命令的开支。

由于用于制作DRAM装置的DRAM单元,以及用于制作DRAM单元的晶体管等在设计上的进步,DRAM装置的速度在日益提高,因此由DRAM装置的多路复用的输入输出信号所组成的接口的操作速度也需要提高。为了试图获得更高的接口速度,同时保持命令、地址和数据发送中的完整性,一种公知的手段是将由多路复用的输入和输出所执行的各种阶段与功能同步于一个时钟信号,从而确保各种输入和输出的状态在适当的时刻被发送和锁存。起初,通常使用完整的时钟周期作为存储总线上事件的时间基准。然而,更为高速的DRAM装置致使近来愈发开始使用半个时钟周期来作为存储总线上事件的时间基准,这被称作信号的“双倍时钟(double-clocking)”,或者更为普遍地,相比于SDRAM(同步DRAM)装置,其被称之为“DDR”或者“双倍数据速率”装置。尽管被提高的接口速度有望完全地满足很多所需命令的开支的需要,但是在满足数万个命令和/或地址中每一个的发送中所需要的各个阶段中的每一个的发送中更为紧迫的信号建立时间和保持时间的要求上,如此较高的接口速度仍然遇到了困难。由于这些困难,有人建议仅以在所谓的“2n时钟(2n clocking)”中发送数据的时钟速率的一半的速率来发送命令和/或地址,从而否定了双倍时钟对命令和/或地址发送所带来的好处。

在发送命令和/或地址中的这些多种困难所产生的累积时间补偿(penalty)已经开始严重到可以和预备DRAM单元以供访问的时间损失相当的程度。确实,人们愈发开始关心的是:用于发送地址和/或命令所需的开支会越来越多地占用实际数据传输所需的存储总线的可用带宽。

附图简述

通过如下的详尽描述,本发明的目的、特征和优点对于本领域普通技术人员而言将变得明显,其中:

图1是采用存储系统的实施例的方框图。

图2a和图2b是采用了存储总线的实施例的时序图,以及对应事件的效果图。

图3是采用了存储总线的实施例的时序图。

图4是采用了计算机系统的实施例的方框图。

图5是一个实施例的流程图。

详细描述

在随后的描述中,将出于解释性的目的阐明若干细节以提供对本发明的透彻理解。尽管如此,对于本领域普通技术人员而言,显然这些特定的细节并不是实现本发明所必须的。

本发明的实施例涉及以一种方式插入对于一个存储装置内的存储单元库中的一个开启的行上的预充电操作的隐式通讯的支持,采用该方式可以减少所需的命令的数量,进而减小发送命令以启动这类预充电操作所需要的带宽。虽然以下讨论集中在DRAM装置上,其中存储单元被排列成行和列的一个或多个二维阵列,但是本领域技术人员应该理解下文中所要求保护的发明可以在具有以任何方式(包括交错库、超过两维的阵列(即,超过两部分的地址),内容可寻址等)排列的存储单元的任何类型的存储装置的支持下实施。而且,尽管以下讨论中至少有一部分是集中于计算机系统内的存储装置的,本领域技术人员应该理解下文中所要求保护的发明可以结合具有存储装置的其它电子装置来实施。

图1是采用存储系统的一个实施例的简化框图。存储系统100至少部分地由经存储总线180而耦合在一起的存储器控制器170和存储装置190所组成。熟知存储系统设计的人将容易地辨认出,图1描述的是一种相对简单的存储系统的形式,采用一些可替换的实施例同样也是可以的,其中元件的确切配置和结构可以在不背离下文所要求保护的本发明的精神和范围的前提下被减少、增加或者替换。例如,尽管为了简化下文中的讨论,存储系统100被描绘成仅有一个存储总线180和一个存储装置190,本领域技术人员应该可以容易地理解:存储系统100的其它可能实施例可以用多个存储总线和/或装置来组成。

存储控制器170控制着由存储装置190所执行的功能,该功能作为向耦合到存储控制器170的外部装置(未示出)提供对存储装置190的访问的功能中的一部分。特别地,一个耦合到存储控制器170的外部装置将命令发给存储控制器170以将数据存储于存储装置190内,并且从存储装置190获取被存储的数据。存储控制器170接收这些命令并且以一种格式将其转给存储装置190,其中该格式的时序和协议与存储总线180和/或构成存储装置190和存储总线180之间的接口的控制逻辑191及数据缓冲197相兼容。实际上,存储控制器170响应来自外部装置的读和写命令从而协调对存储装置190内的存储单元所作的访问。作为对于各种实施例中的这些功能的支持,存储控制器170也调整各种必须被执行以确保存储在存储装置190内的数据得以保存的维护操作,这类维护操作包括定期刷新操作的初始化以及在访问之间所需的预充电操作的发生。

存储总线180由各种与存储控制器170和存储装置190耦合在一起的控制、地址和数据信号线所组成.组成存储总线180的各种可能的实施例的各种信号线的精确数量和特征可以被设置为和任何可能的存储器接口彼此协作(interoperable),这其中包括那些应与已知型号的存储装置相兼容的装置,这其中包括诸如FPM(快速页面模式)存储装置、EDO(扩展数据输出)、双端口VRAM(视频随机访问存储器)、窗口(window)RAM、SDR(单倍数据速率)、DDR(双倍数据速率)、RAMBUSTM DRAM等DRAM(动态随机访问存储器)装置。在某些实施例中,当各个信号线上的活动要与一个时钟信号相协同时,一个或数个该类信号线,可能是控制信号线,在存储控制器170和存储装置190之间发送时钟信号。在某些实施例中,一个或数个控制信号和地址信号被多路复用到公共的信号线上,从而控制信号和地址信号在不同时刻在公共导线上被发送,从而在存储控制器170和存储装置190之间传送信号。而且,在某些实施例中,一个或数个地址信号和数据信号可被多路复用到公共信号线上。

存储装置190是一种DRAM存储装置,其接口由被配置为与存储总线180交互协作的控制逻辑191和数据缓存器197所组成。在某些实施例中,存储装置190是一单个集成电路。在其它实施例中,存储装置190由一个可拆装存储模块的多个集成电路所组成,这种存储模块比如SIMM(单列直插式存储模块)、SIPP(单列针式封装)、DIMM(双列直插式存储模块)等。

存储装置190的存储单元被分成多个库,比如库199a-199d,每个库被排列成具有行和列的两维存储单元阵列。在某些实施例中,控制逻辑191经存储总线180接收至少来自存储控制器170的一些命令和地址,并且使用行地址解码器193a-193d、列地址解码器194和/或用来访问库199a-199d的一个或多个特定部分的库选择逻辑192来执行这些指令。实质上,为了对存储装置190内的存储单元进行访问,该存储单元的地址是由三部分所组成的,所述三部分由存储控制器170经存储总线180被发送到存储装置190,即库、给定存储单元的行和列。为了响应从存储控制器170所接收的至少读和写命令,I/O选择多路复用器195和数据缓冲器197被用于将数据存储到一个或数个存储单元中,或者从该存储单元中获取数据。

在某些实施例中,存储控制器170维持对应于存储装置190的库199a-199d的库状态缓冲器179a-179d,缓冲器中有关于对应库的某行是否开启的信息,以及该行的行地址信息。存储控制器170依靠库状态缓冲器179a-179d的内容来确定是否需要发送一个行激活命令以准备给定库内的一个给定行以供访问,以及同一库内的不同的行是否已经开启,从而需要额外的时间以供在给定行响应激活命令而被开启之前通过预充电操作而将不同的行关闭。

更特别地,在某些实施例中,如果存储控制器170将访问给定库内的给定行,则存储控制器170检查对应于给定库的库状态缓冲器179a-179d中的任何一个的内容以确定给定行是否已经开启,如果给定行尚未开启,则判断是否有不同的行已经开启.例如,如果存储控制器170要访问库199a内的给定行,则存储控制器170检查库状态缓冲器179a的内容以确定给定行是否已开启.如果给定行已开启,则没有必要发送行激活命令来开启给定行.然而,如果给定行尚未开启,则存储控制器170检查库状态缓冲器179a的内容以确定库199a内是否有不同的行已开启.如果在库199a内没有行是开启的(有时称之为“页空闲”状态),则存储控制器170必须向存储装置190发送一个行激活命令以开启库199a内的给定行以备被访问,而且存储控制器170必须在激活命令的发送和执行对给定行的访问之间提供充足的时间,以用于给定行准备好被访问的发生.或者,如果给定行还没有开启,但是一个不同的行开启了(有时称之为“页丢失”状态),则存储控制器170必须向存储装置190发送一个行激活命令(带有隐式的预充电命令)来同时关闭不同的行并开启库199a内的给定行以备被访问,而且存储控制器170必须在激活命令的发送和执行对给定行的访问之间提供充足的时间,以用于经预充电操作关闭不同的行,并使给定行准备好被访问的发生.

图2a和2b是采用了经存储总线的信号发送的实施例的时序图和对应效果图。图2a-b都描述了用于激活存储器库299,即库299内的一行存储单元的激活命令的发送,在其之后则是读命令或者写命令的发送,用于访问在开启行内的存储器位置以获取或存储一段数据。图2a和图2b都描述了和已知同步DRAM接口相兼容的信号和时序的使用,其可以支持具有多个存储器库的示例存储装置,其中库299只是其中之一。尽管这些图和所附的阐述集中于某种存储总线的实施例,其中在总线上发生与一个时钟信号同步的事项,但是本领域技术人员应该容易理解的是,其他的实施例可以采用其他的时序协调方式,或者可以是异步的。

在图2a中,当发送一个行激活命令以开启在库299内的一个要被访问的行时,在时间点286,库299内没有存储单元行被开启。和激活命令的发送同时发生的还可以是激活命令所要作用的库和/或行地址的发送,在本例中的库为库299。在时间间隔287中发生最小预定量的时钟周期以提供充足的时间使得开启要被访问的行的过程得以完成。如同本领域技术人员将意识到的,其它命令、地址和/或数据也可在时间间隔287内发送,其中发送的这些命令、地址和/或数据可能涉及其它的库和/或存储装置。本领域技术人员同样应该清楚的是,时间间隔287可能只比开启要被访问的行所需的时间的量要长,以便适应其他方面的与开启要被访问的行无关的存储器控制。在时间点288,对要被访问的行的实际访问由读命令或者写命令的发送启动。和该读或写命令的发送同时发生的还可以是读或写命令所作用的库和/或列地址的发送。

在图2b中,当发送一个行激活命令以开启库299内一个要被访问的行时,在时间点286,在库299内一个与要被访问的行不同的存储单元行已经是开启的。如图2a中所示,和激活命令的发送同时发生的还可以是激活命令所作用的库和/或行地址的发送,此处的库依然是库299。又一次地,在时间间隔287中发生最小预定数量的时钟周期,在该时间间隔287中各种不相关的命令、地址和/或数据可被发送。然而,与图2a所描述的不同,该预定数量的时钟周期旨在提供充足的时间以完成对已经在时间点286开启的不同行进行预充电(即关闭)的隐式(implied)过程,以及被命令的(commanded)行激活以开启要被访问的行的过程。因此,在时间间隔287中用于完成图2b中两个过程所需的最小量的时钟周期要比图2a中的时间间隔287要长。在时间点288处,对要被访问的行的实际访问由读命令或者写命令的发送启动,同时可能进行的还有对读命令或写命令所作用的库和/或行地址的同时发送。

关于图2a和2b中的时间间隔287的长度,在某些实施例中,在时间点286发送行激活命令和/或在时间点288发送读/写命令的装置可以采用缓冲器、寄存器组和/或其他存储装置的形式以保存关于在库299内行是否是开启的当前信息,如果是的话,还保存该行的地址.这种信息可以被用于确定是否要把给定的行激活命令解释为具有隐式预充电命令.在做这样的判断时,这样的信息可被用于确定保证不需预充电操作而发生的行激活操作以及附带有隐式预充电操作的行激活操作得以完成所需要的时间间隔287的最小长度.在某些实施例中,时间间隔287的长度可以通过一些时钟转换或者参考图2a和2b所述的完整时钟周期来测量和/或分配.或者,在其他包括使用异步时序的实施例中,时间间隔287的长度可以用其他方式来测量和/或分配.而且,尽管在图2a和2b所述的实施例中特别提到,将库地址、行地址和列地址的发送与特定命令的发送同时进行,但是本领域技术人员应该可以认识到,为了提供与现有的DDR技术规格的互用性,或者出于其它不背离下文所保护的本发明的精神和范围前提下的原因,任何信号、地址和/或命令的组合可以与行激活和/或读/写命令同时发送.

图3是实施例的时序图,其中应用了信号经存储总线被发送到多个存储装置,且描述了向两个存储装置发送行激活命令和读/写命令。通过将片选线-CS0驱动至低状态作为从该存储装置接收或向其发送的地址、命令和/或数据的一部分,来选择一个存储装置,通过类似地将片选线-CS1驱动至低状态来选择另一存储装置。两个存储装置均被描述成用于接收命令,这些命令适于在首先使得已开启的不同行关闭后用一个行激活命令来开启要被访问的行。需要再次指出的是,尽管这些图和所附的阐述集中于某种存储总线的实施例,在该总线上发生与一个时钟信号同步的事项,但是本领域技术人员应该容易理解,其他的实施例可以采用其他形式的时序协调,或者可以是异步的。

通过-CS0所选中的存储装置以一种和当前的DDR协议相一致的方式被控制,其中要被访问的行仅在同一库内不同的行已经通过行预充电命令的显式(explicit)发送被首先显示地关闭之后才可被开启。在时间点381,这种显式预充电命令的发送可能与同时的显式预充电命令所作用的存储器的库的库地址的发送一起发生。在时间点381和383之间允许经过一段时间,从而使在时间点383发送一个用于开启要被访问行的行激活命令之前,被显式命令的预充电操作得以完成。在一些旨在与当前的DDR实现的时序和/或协议相一致的实施例中,行激活命令所作用的库和/或行的地址也可以和行激活命令同时发送。在时间点383和385之间允许经过又一段时间以使在时间点385发送读/写命令之前行激活操作得以完成,同时发送的可能还有相应的库地址和/或列地址。

相反,由-CS1选中的另一个存储装置被控制以执行与刚才所述的对于由-CS0选中的存储装置相同的操作,但却不需要预充电命令的显式发送。具体来说,在时间点387,一个带有隐式预充电命令的行激活命令被发送,有可能还相应地发送激活命令和预充电命令都作用的库地址,和/或有可能相应地发送激活命令所作用的行的行地址。在时间点387和389之间允许经过一段时间以使在时间点389发送读/写命令,可能同时发送相应的库和/或列地址之前,隐式命令预充电操作和显式命令的激活操作都能得以完成。

尽管已经分别讨论过向通过-CS0和-CS1所选中的各个存储装置发送命令的情况,但能够向存储装置发送命令的存储控制器(或者其它用作存储控制器的装置)的各种实施例仍然可并入以下支持:即能够在使用显式发送的预充电命令或使用带有被发送的激活命令的隐式预充电命令之间进行切换.这样的存储控制器可以将支持隐式预充电命令的存储装置和其它不支持该功能的装置进行结合.为了提高与目前限制更大的、不支持隐式预充电命令的DDR变体(variant)的互用性,某些存储控制器的实施例会在一个或多个控制寄存器中结合一个或多个比特,从而可以选择性地发送显式预充电命令,以支持当前限制更大的存储装置的DDR变体.此外,确实支持使用隐式预充电命令的存储装置的变体可以在一个或多个控制寄存器或者其它的存储设备中结合一个或多个比特以提供一个指示:其具有超越当前DDR变体的能力,通过支持隐式预充电命令使这一能力的存在可以被辨识出.

图4是一个采用计算机系统的实施例的简化框图。计算机系统400至少部分地由CPU(中央处理单元)410、系统逻辑420、以及存储装置490所组成。系统逻辑420耦合到CPU410并执行各种支持CPU的功能,包括为CPU410提供到存储装置490的访问,其中系统逻辑420也与该存储装置490耦合,还包括在系统逻辑420中使用存储控制器470。CPU410、系统逻辑420以及存储装置490组成计算机系统400的一种内核,其可以支持由CPU410来执行机器可读指令,并且在存储装置490内存储数据和指令。

在各种实施例中,CPU410可以是各种类型CPU中的任意一种,包括可以执行被广泛知晓且使用的“x86”指令集的至少一部分的CPU,而在其它多种实施例中,可以有一个以上的CPU。在各种实施例中,存储装置490可以是各种类型动态随机访问存储器(RAM)中的任意一种,包括快速页模式(FPM)、扩展数据输出(EDO)、同步动态RAM(SDRAM)的单倍数据速率(SDR)或者双倍数据速率(DDR)形式,采用了RAMBUSTM接口的各种技术的RAM等,而存储控制器470则为逻辑420提供存储器类型的适当接口。存储装置490的存储单元的至少一部分被分成库499a-d,每个库由以一个两维存储阵列中的行和列排列的存储单元组成。为了对存储装置490内的一部分存储单元进行访问,必须由存储控制器470用库地址、行地址和列地址的组合来对该部分进行寻址。本领域技术人员应该认识到,对于具有四个存储单元的库,即库499a-499d的单个存储装置490的描述,只不过是可作为计算机系统一部分的存储系统的一个实例,可以在不背离如下文所保护的本发明的精神和范围的前提下,使用更大数量的存储装置和/或在存储装置中使用不同数量的库。

在某些实施例中,系统逻辑420耦合到CPU410,并为CPU410提供对储存装置(storage device)460的访问,其中由存储媒介461所承载的数据和/或指令可以由该储存装置来访问。存储媒介461可以采用本领域技术人员能够理解的各种类型和技术中的任意一种,包括CD或者DVD ROM,磁盘或者光盘,磁-光碟片、磁带、半导体存储器、在纸上或者其它材料上的字符或者穿孔等。在某些实施例中,非易失性存储装置430耦合到系统逻辑420(或者计算机系统400的其它部分)并提供对初始系列指令的存储,该指令在计算机系统400被“重启(reset)”或者初始化时(例如,当计算机系统被“打开”或者“上电”时)被执行,以执行准备计算机系统400以供常规使用所需的任务。在这类实施例的某些变化中,一旦计算机系统400被初始化或者重启,CPU410就对非易失性存储装置430进行访问以获取要被执行的指令,从而准备存储控制器470以供为CPU410提供到存储装置490的访问过程中的常规使用。同样的这些被获取的指令可能被执行以准备系统逻辑420以供为储存装置460和可由储存装置460使用的任何形式的存储媒介461提供访问过程中的常规使用。

在某些实施例中,存储媒介461承载将被CPU410执行的机器可访问指令,以使CPU410对存储装置490进行一个或多个测试以确定存储装置490是什么类型的DRAM装置,和/或确定存储装置490支持什么功能.如果判断出存储装置490可以支持如前所述的内嵌有被发送的行激活命令的隐式预充电命令的使用,则使CPU410对存储控制器470进行编程或者配置,从而使用这种隐式预充电命令.在一些实施例中,当存储控制器470被如此编程时,存储控制器470可以访问或者包含一个诸如行访问缓冲器479之类的储存装置,在该储存装置中保存涉及存储装置490内的各种行的状态的数据.这样的数据,不管其是否被存储于诸如行访问缓冲器479之类的特定缓冲器中,都可提供一个指示,即表明库499a-d中的哪一个具有开启的行,以及这些开启的行的地址.存储控制器470可以访问这种数据以确定在库499a-d中一个给定库内要被访问的行是否已经开启,如果没有,则判定在同一库内是否有不同的行已经被开启.如果要被访问的行被判断为已经开启,则不需要发送行激活命令即可执行访问.然而,如果要被访问的行被判断为尚未开启,则在对要被访问的行进行任何访问之前,必须发送一个行激活命令,并且要经过一个预定的最小时间段.如果还判断出在同一库中还有一个不同的行已经开启,则存储装置490将行激活命令同样解释为一个隐式预充电命令,以关闭所述不同的行,而预定的最小时间段将会更长以允许关闭不同的行,以及开启要被访问的行.

图5是实施例的流程图。在510,判断要被访问的行是否已开启。如果要被访问的行已经开启,则在512对该行进行访问以供读、写等。然而,如果要被访问的行尚未开启,则在520判断是否有一个不同的行已经开启。如果没有不同的行被开启,则在522发送一个开启要被访问的行的行激活命令,在524经过了完成对要被访问的行的激活所需的一段时间,然后在512进行访问。然而,如果有一个不同的行已经开启,则在530判断包含了该库——所述不同的行以及要被访问的行均在该库中——的存储装置是否支持对隐式预充电命令的使用。如果存储装置不支持隐式预充电命令,则在542,向存储装置发送一个带有隐式预充电命令的行激活命令,在544经过了完成不同行的预充电(关闭)所需的时间段,并在524经过了激活要被访问的行所需的时间段,然后在512进行访问。然而,如果存储装置不支持隐式预充电命令,则在532发送关闭不同行的显式预充电命令,在534经过完成关闭不同行所需的时间段,在522发送用于开启要被访问的行的激活命令,同时在524经过足以进行激活所需的时间,然后在512进行访问。

本发明对各种可能的实施例进行了较详细的说明。显然,根据前述的说明,对于本领域技术人员而言,多种备选、修改、变化和使用将是很明显的。本领域技术人员应该理解到,本发明可以支持采用了任何一种可能的存储器技术的多种可能的存储装置的方式来实施。本领域技术人员同样应该理解到,本发明可以支持电子装置而非计算机系统的方式来实施,比如音频/视频娱乐设备、交通工具中的控制器设备、由电子电路所控制的电器等。