用于读取数据的系统延迟均衡法的制作方法

文档序号:6749910阅读:137来源:国知局
专利名称:用于读取数据的系统延迟均衡法的制作方法
背景技术
本发明一般地涉及高速同步存储系统,具体说,涉及设置存储器件的读延迟以便从任何存储器件读取的数据同时到达存储控制器。
背景技术


图1给出一个示范性计算机系统。该计算机系统包括处理器500、存储子系统100以及扩展总线控制器510。存储子系统100和扩展总线控制器510经由局部总线520连接到处理器500。扩展总线控制器510还连接到至少一条扩展总线530,扩展总线530可以连接各种外设540-542,例如大容量存储设备、键盘、鼠标、图形适配器以及多媒体适配器。
存储子系统100包括存储控制器400,它通过多条信号线401a-401d、402、403、404、405a-405d连接到多个存储模块301-302。多条数据信号线401a-401d由存储控制器400和存储模块301-302用于交换数据DATA。地址ADDR以信号形式通过多条地址信号线403发送,而命令CMD以信号形式通过多条命令信号线402发送。存储模块301-302包括多个存储器件101-108和寄存器201-202。各存储器件101-108均是高速同步存储器件。尽管图1只显示了两个存储模块301-302和相关信号线401a-401d、402、403、404、405a-405d,应注意,可以使用任何数量的存储模块。
将存储模块301、302连接到存储控制器400的多条信号线401a-401d、402、403、404、405a-405d,称为存储总线150。存储总线150可具有业内周知的附加信号线,例如片选信号线(为简单起见并未示出)。每排跨存储总线150的存储器件101-104、105-108被称为存储列。一般而言,单面存储模块(例如图1所示的存储模块)包含一个存储列。然而,也可以采用包含两个存储列的双面存储模块。
多条数据信号线401a-401d将存储器件101-108连接到存储控制器400。读数据同步于读时钟信号RCLK串行输出,RCLK在多条读时钟信号线405a-405d上驱动。读时钟信号RCLK由读时钟发生器401产生,经过驱动经存储模块301、302的存储器件101-108到达存储控制器400。命令和地址用命令时钟信号CCLK进行时钟控制,CCLK由存储控制器驱动,经存储模块301、302的寄存器201、202到达端接器402。命令、地址和命令时钟信号线402-404直接连接到存储模块301、302的寄存器201、202。在这些信号被分配到存储模块301、302的存储器件101-108之前,由寄存器201、202对这些信号进行缓冲。因此存储子系统100至少在读时钟RCLK控制的读时钟域和命令时钟CCLK控制的命令时钟域工作。存储子系统100还可具有附加的时钟域,例如由写时钟(未示出)控制的时钟域。
当存储器件101-108接受读命令时,直到经过一定量的时间之后,与该读命令有关的数据才在存储总线150上输出。该时间称为器件读延迟。存储器件101-108可经程序控制以多个器件读延迟中任意一个读延迟来进行操作,所述多个器件读延迟范围从最小器件读延迟(其随器件变化)到最大延迟期。
但是,器件读延迟仅是存储控制器400所看见的读延迟的一部分。存储控制器所见的这种读延迟称为系统读延迟,它是器件读延迟和存储器件101-108和存储控制器400之间信号传播时间效应引起的延迟之和。如果各存储器件101-108和存储控制器400之间的信号传播相同,那么信号传播时间引起的延迟将是恒定的,对各存储器件101-108的影响相同。但是,如图1所示,在命令CMD、地址ADDR和命令时钟CCLK被分配到存储器件101-108之前,它们先被送到寄存器201、202。存储模块301、302上的各存储器件101-104、105-108与寄存器201、202的距离各不相同。因此,各存储器件101-104将在不同时刻收到存储控制器400发出的读命令。另外,存储控制器400与两个存储模块301、302的寄存器201、202之间的距离亦存在差异。寄存器201(在存储模块301上)更接近存储控制器400,因此将先于寄存器202(在存储模块302上)收到命令、地址和命令时钟。因此,对存储控制器的命令CMD、地址ADDR和命令时钟CCLK信号而言,存储子系统100的各存储器件101-108具有到存储控制器的不同的信号路径长度,因此它们将分别在不同时刻收到存储控制器发出的读命令。在高频时钟(例如300兆赫兹至至少533兆赫兹)条件下,这些定时差异将变得很重要,因为它们可能使时钟周期边界重叠。
由于各存储器件101-108的最小器件读延迟差异及其命令CMD、地址ADDR和命令时钟CCLK的信号传播差异,各存储器件101-108可能具有不同的系统读延迟。因为,每个存储器件只存储了一部分存储字,存储控制器通常并行读取多个存储器件。存储子系统100的存储器件101-108的系统读延迟差异使这项任务变得困难。因此,需要一种装置和方法来均衡各存储器件的系统读延迟,以便存储控制器可以有效地处理跨多个存储器件的读事务。
发明概述本发明的目的是一种方法和装置,用在高速存储系统中均衡各存储器件的系统读延迟。均衡处理确保各存储器件以相同的系统读延迟对存储控制器作出响应,而不管各器件的最小器件读延迟以及因存储器件在存储总线上所处物理位置不同而引起的信号传播时间差异。每个存储器件均具有多条配置线,这些配置线可由存储控制器用于设置存储器件,使其以比器件的最小器件读延迟长的多个器件读延迟中的任一读延迟进行操作。在这种均衡过程中,各存储器件最初均以其最小器件读延迟进行操作。存储控制器读取校准图案(calibration pattern)以确定各存储器件的系统读延迟。存储控制器计算偏移量,该偏移量可以加到各存储器件的器件读延迟中,使各存储器件以以下这种系统读延迟进行操作这种系统读延迟等于当各存储器件以其最小器件读延迟工作时所观测到的最长系统读延迟。各存储器件随后以增加了的器件延迟进行操作,增加量等于与该存储器件有关的偏移量。这样,对存储系统中的所有存储器件作了均衡,使其以相同系统读延迟进行操作附图简述通过以下给出的参照附图对本发明最佳实施例所作的详细说明,本发明的前述及其它优点和特征将变得显而易见,附图中图1是显示含高速存储系统的计算机系统的框图;图2是显示在均衡之前包括图1所示高速存储系统的多个存储器件的读延迟的时序图;图3A是显示根据本发明的存储模块301的更为详细的图;图3B是显示图3A所示存储模块中存储器件之一的更为详细的图;图4是显示存储器件的器件读延迟和配置线状态之间关系的图;图5是说明存储控制器如何均衡存储系统中各存储器件之间系统读延迟的流程图;以及图6是说明经过均衡之后包括所述高速存储系统的多个存储器件的读延迟的时序图。
最佳实施例的详细说明现在参照附图,其中相同的标号表示类似的部件,图2显示存储控制器400向各存储器件101-108发出的读操作的时序图,其中,各存储器件被设置成以其最小器件读延迟操作。存储器件的最小器件读延迟基于其结构,可随器件变化。在图2所示示例中,最接近存储模块400的存储模块301的存储器件DRAM-1 101、DRAM-2102、DRAM-3 103、DRAM-4 104具有分别为7、8、5和6个时钟周期的最小器件读延迟。离存储控制器400最远的存储模块302的存储器件DRAM-5 105、DRAM-6 106、DRAM-7 107、DRAM-8 108具有分别为8、6、8和7个时钟周期的最小器件读延迟。最小器件读延迟是在发起读命令RD之后在存储总线150上获得读数据之前测得的时钟周期数。
由于命令CMD与命令时钟CCLK信号的信号传播路径长度差异,存储子系统100内各存储器件101-108在不同时刻接收存储控制器400发出的读命令RD。图2显示在时钟周期T0的中间时刻发出读命令的存储控制器。距离存储控制器400最近的存储模块301上的存储器件101-104在时钟周期T1和T2之间收到读命令,而存储模块302上的存储器件105-108在时钟周期T1和T3之间收到读命令。到各存储器件101-108的系统读延迟是器件读延迟和存储控制器400和存储器件之间信号传播时间的函数。例如,最靠近存储控制器400的存储模块301中的存储器件101-104具有分别为9、10、6和7个时钟周期的系统读延迟。离存储控制器400最远的存储模块302中的存储器件105-108具有分别为10、8、9和8个时钟周期的系统读延迟。注意,系统读延迟差异如此之大,足够存储模块103在存储模块102开始其数据输出之前完成其数据输出。
现在参照图3A,它显示根据本发明的存储模块301之一的更为详细的图。除了连接到读时钟信号线405a-405d、数据信号线401a-401d、命令时钟信号线404、多条命令信号线402以及多条地址信号线403,各存储器件101-104还通过多条配置线410连接到寄存器201(这些配置线410未在图1中示出以免使该图混乱)。在例示实施例中,各多条配置线410分别包括至少3条分别传送配置信号CFG0、CFG1和CFG2的配置信号线411-413。对各存储器件而言,存储控制器400可通过将命令CMD和地址ADDR发送到寄存器201中这样来设置配置线411-413的状态。
图3B是图3A所示存储器件101之一的更为详细的图。合适的存储器件包括任何类型的高速DRAM。因此,本发明的原理可以结合到任何类型的单或双数据率同步存储器件或高级DRAM技术(ADT)存储器件中。存储器件101包括控制电路(包括地址译码器)2000,控制电路2000连接到多条信号线,包括命令时钟信号线404、多条命令信号线402、多条地址信号线403和多条配置线410。存储器件101还包括写数据通路2002和读数据通路2003,它们都(通过I/O门控电路2006)连接到数据信号线401a和多个存储阵列2001。读数据通路通过读时钟延迟锁定环(DLL)连接到读时钟信号线405a,该时钟延迟锁定环用于使读数据输出与读时钟同步。读数据通路还包括串行化器2004,它将从多个存储阵列2004中读出的并行数据转换成串行数据,并同步于读时钟信号RCLK将其输出到数据信号线401a上。
线连的存储器件DRAM-1 101-DRAM-4 104响应配置线411-413的不同状态,以便以不同的可选器件读延迟进行操作。图4显示如何能使存储器件101-104在8个时钟周期的器件读延迟差异范围上进行操作,该范围从最小器件读延迟到最小器件读延迟加上7个时钟周期。在备选实施例中,存在或多或少的配置线,且允许的器件延迟量有相应变化。或者,存在与器件读延迟无关的针对存储功能的附加配置线。例如,附加配置线可用于启用或禁用读时钟DLL 2005。
多条配置线410中每一条的状态可由存储控制器400设定。例如,存储控制器可包括这样一个命令此命令让存储模块301、302的寄存器201、202在多条地址信号线410上使与在多条地址信号线403上有效的地址相对应的状态有效。因此,存储控制器400能够改变存储器件101-108的器件读延迟,并因此能够通过改变配置线411-413的状态而改变存储器件的系统读延迟。
存储控制器400用多条配置线410来均衡存储子系统100的所有存储器件101-108中的系统读延迟。参照图5,处理从步骤1001开始,其中,存储控制器400指示所有存储器件101-108以其最小器件读延迟进行操作。通过使合适的命令CMD和地址ADDR信号分别在多条命令信号线420和多条地址信号线403上有效,从而设置配置线GFG0、GFG1、CFG2的特定状态,这样存储控制器400就可以指示存储器件以最小器件读延迟进行操作。如图4所示,配置线GFG0、CFG1、CFG2的状态使存储器件101-108以特定的延迟进行操作。因此,本发明的一个方面是用相对数字来指定各存储器件的器件读延迟。这与现有技术的存储系统相反,现有技术的存储系统将延迟指定为若干实际时钟周期,从而要求存储控制器知道各存储器件的最小器件读延迟。例如,如果器件具有2个时钟周期的最小器件读延迟,则为了对存储器件编程使之以其最小器件读延迟操作,现有技术存储控制器需要知道最小器件读延迟对应于2个时钟周期,这就需要存储控制器将延迟值编程设定为实际时钟周期数(这种情况下是两个时钟周期)。然而,在本发明中,存储控制器400无需知道各存储器件101-108的最小器件读延迟,因为规定读延迟为距离最小读延迟的偏移量。
在步骤102,存储控制器从每个存储器件101-108读取校准图案,记下每个存储器件101-108的最小操作系统读延迟。校准图案经过格式化,允许存储控制器容易地识别数据何时第一次到达存储控制器。在例示实施例中,每个存储器件101-108每条命令返回8比特数据,该数据经数据信号线401a-401d串行驱动到存储控制器400。好的校准图案允许存储控制器容易地辨认出数据第一比特何时到达存储控制器。在例示实施例中,最佳校准图案是这样一个字节其中,到达存储控制器的第一比特设为“1”状态而剩余比特设为不同状态。因此(二进制)01111111或(二进制)10000000将会是最佳校准图案。
在步骤1003,存储控制器400确定最小操作系统读延迟集合中的最大值。在步骤1004,对每个存储器件101-108,存储控制器400计算等于存储器件的系统读延迟与最小操作系统读延迟集合中最大值之差的偏移量。在步骤1005,存储控制器400指示存储器件以增加的器件读延迟进行操作。增加的延迟量等于所述偏移量并且由在存储器件的多条配置线410上有效的信号的状态来控制。
例如,图2显示具有8个系统读延迟分别为9、10、6、7、10、8、9和8个时钟周期的存储器件DRAM-1 101-DRAM-8 108的存储系统。观测到的最大系统读延迟为10个时钟周期。各存储器件101-108的偏移量等于观测到的最大系统读延迟(此例中为10个时钟周期)与各存储器件的系统读延迟之差。在本示例中,各器件101-108的偏移量分别等于1、0、4、3、0、2、1和2。因此存储控制器400将以增加的器件读延迟(一个时钟周期)对存储器件101进行操作,而以增加的器件读延迟(0个时钟周期)(即等于最小器件读延迟)对存储器件102进行操作。图3显示此过程的最终结果是得到这种存储系统其中,各存储器件101-108均具有相等的系统读延迟。因此,当把读命令发给存储器件DRAM-1 101-DRAM-8 108时,存储控制器会在几乎同一时刻看到从所有存储模块的所有存储器件来的读数据。
尽管上面已对本发明的一些实施例作了说明和图示,但本发明不限于这些具体实施例,因为可以对等效元件作许多修改、变化和替换而又不会背离本发明的精神和范围。因此应认识到,本发明的范围不受已作说明和图解的具体结构的细节所限制,而只受所附权利要求范围限制。
权利要求
1.一种存储器件,包括存储阵列;连接到所述存储阵列的控制电路;连接到所述控制电路的至少一条配置线;其中,所述控制电路根据在所述至少一条配置线上有效的信号的状态以选定的器件读延迟来操作所述存储器件。
2.如权利要求1所述的存储器件,其特征在于,所述器件读延迟集合包括所述存储器件的最小器件读延迟。
3.如权利要求1所述的存储器件,其特征在于,所述控制电路将所述第一多条配置线上有效的信号的状态解释成一定数量的时钟周期,并以等于所述最小器件读延迟加所述数目的时钟周期的器件读延迟来操作所述存储器件。
4.如权利要求1所述的存储器件,其特征在于,所述控制电路响应外部存储控制器发出的命令,向所述存储控制器输出作为读数据的校准图案。
5.如权利要求4所述的存储器件,其特征在于,所述校准图案包括至少两个具有不同逻辑状态的连续比特。
6.如权利要求5所述的存储器件,其特征在于,所述校准图案的第一比特设为二进制0,而其后所有比特设为二进制1。
7.如权利要求5所述的存储器件,其特征在于,所述校准图案的第一比特设为二进制1,而其后所有比特设为二进制0。
8.如权利要求1所述的存储器件,其特征在于,所述至少一条配置线包括多条配置线。
9.如权利要求1所述的存储器件,其特征在于,所述器件读延迟集合包括N个器件延迟,其范围在所述器件最小读延迟和等于所述器件最小读延迟加N-1个时钟周期的的时钟周期数之间。
10.如权利要求9所述的存储器件,其特征在于,N等于8。
11.如权利要求1所述的存储器件,其特征在于还包括附加的配置线,其中,所述附加的配置线具有启用或禁用所述存储器件的读时钟延迟锁定环的信号状态。
12.一种存储模块,包括多个存储器件;以及向所述多个存储器件提供配置信息的寄存器;其中,每个所述存储器件还包括存储阵列;连接到所述存储阵列的控制电路;连接到所述寄存器和所述控制电路的至少一条配置线,其中所述控制电路根据在所述至少一条配置线上有效的信号的状态以选定的器件读延迟来操作所述存储器件。
13.如权利要求12所述的存储模块,其特征在于,所述器件读延迟集合包括所述存储器件的最小器件读延迟。
14.如权利要求12所述的存储模块,其特征在于,所述控制电路将所述一条配置线上有效的信号的状态解释成一定数目的时钟周期,并以等于所述最小器件读延迟加所述数目的时钟周期的器件读延迟来操作所述存储器件。
15.如权利要求12所述的存储模块,其特征在于,所述控制电路响应外部存储控制器发出的命令,向所述存储控制器输出作为读数据的校准图案。
16.如权利要求15所述的存储模块,其特征在于,所述校准图案包括至少两个具有不同逻辑状态的连续比特。
17.如权利要求16所述的存储模块,其特征在于,所述校准图案的第一比特设为二进制0,而其后所有比特设为二进制1。
18.如权利要求16所述的存储模块,其特征在于,所述校准图案的第一比特设为二进制1,而其后所有比特设为二进制0。
19.如权利要求12所述的存储模块,其特征在于,所述至少一条配置线包括多条配置线。
20.如权利要求12所述的存储模块,其特征在于,所述器件读延迟集合包括N个器件延迟,其范围在所述器件最小读延迟和等于所述器件最小读延迟加N-1个时钟周期的时钟周期数之间。
21.如权利要求20所述的存储模块,其特征在于,N等于8。
22.如权利要求12所述的存储模块,其特征还包括附加的配置线,其中,所述附加的配置线具有启用或禁用所述存储器件的读时钟延迟锁定环的信号状态。
23.一种操作存储器件的方法,所述存储器件具有至少一条配置线,所述方法包括根据在所述至少一条配置线上有效的信号的状态以选定的器件读延迟来操作所述存储器件。
24.如权利要求23所述的方法,其特征在于,所述器件读延迟集合包括所述存储器件的最小器件读延迟。
25.如权利要求23所述的方法,其特征在于,所述控制电路将所述至少一条配置线上有效的信号的状态解释成一定数量的时钟周期,并以等于所述最小器件读延迟加所述数目的时钟周期的器件读延迟来操作所述存储器件。
26.如权利要求23所述的方法,其特征在于还包括如下步骤响应外部存储控制器发出的命令,输出校准图案。
27.如权利要求26所述的方法,其特征在于,所述校准图案包括至少两个具有不同逻辑状态的连续比特。
28.如权利要求27所述的方法,其特征在于,所述校准图案的第一比特设为二进制0,而其后所有比特设为二进制1。
29.如权利要求27所述的方法,其特征在于,所述校准图案的第一比特设为二进制1,而其后所有比特设为二进制0。
30.如权利要求23所述的方法,其特征在于,所述至少一条配置线包括多条配置线。
31.一种计算机系统,包括处理器;与所述处理器相连的存储控制器;与所述存储控制器相连的至少一个存储模块,每个所述存储模块包括多个存储器件;其中,每个所述存储器件还包括存储阵列;与所述存储阵列相连的控制电路;与所述控制电路相连的至少一条配置线;其中,所述控制电路根据在所述至少一条配置线上有效的信号的状态以选定的器件读延迟进行操作所述存储器件。
32.如权利要求31所述的计算机系统,其特征在于,所述器件读延迟集合包括所述存储器件的最小器件读延迟。
33.如权利要求31所述的计算机系统,其特征在于,所述控制电路将所述至少一条配置线上有效的信号的状态解释成一定数目的时钟周期,并以等于所述最小器件读延迟加所述数目的时钟周期的器件读延迟来操作所述存储器件。
34.如权利要求31所述的计算机系统,其特征在于,所述控制电路响应外部存储控制器发出的命令,输出校准图案。
35.如权利要求34所述的计算机系统,其特征在于,所述校准图案包括至少两个具有不同逻辑状态的连续比特。
36.如权利要求35所述的计算机系统,其特征在于,所述校准图案的第一比特设为二进制0,而其后所有比特设为二进制1。
37.如权利要求35所述的计算机系统,其特征在于,所述校准图案的第一比特设为二进制1,而其后所有比特设为二进制0。
38.如权利要求31所述的计算机系统,其特征在于,所述至少一条配置线包括多条配置线。
39.如权利要求31所述的计算机系统,其特征在于,所述器件读延迟集合包括N个器件延迟,其范围在所述器件最小读延迟和等于所述器件最小读延迟加N-1个时钟周期的时钟周期数之间。
40.如权利要求39所述的计算机系统,其特征在于,N等于8。
41.一种操作存储器系统的方法,所述存储器系统具有多个存储器件和一个存储控制器,所述方法包括如下步骤响应从所述存储控制器发出的命令,设置所述多个存储器件中每个存储器件,使其以其最小器件读延迟进行操作;在所述存储控制器处测量所述多个存储器件中每个存储器件的系统读延迟;在所述存储控制器处确定最大系统读延迟,所述最大系统读延迟等于所述多个系统读延迟中的最大者;在所述存储控制器处计算多个偏移量,所述多个偏移量中每个偏移量与所述多个存储器件中相应一个存储器件相关,并且等于所述最大系统读延迟与所述多个存储器件中所述相应一个存储器件的系统读延迟之差;以及所述存储控制器设置所述多个存储器件中每个存储器件,使其以增加的器件读延迟进行操作,其中,所述增加的器件读延迟量等于与所述多个存储器件之一相关的偏移量。
42.如权利要求41所述的方法,其特征在于,所述测量步骤还包括响应来自所述存储控制器的命令从每个存储器件发送校准图案。
43.如权利要求42所述的方法,其特征在于,所述校准图案包括至少两个具有不同逻辑状态的连续比特。
44.如权利要求43所述的方法,其特征在于,所述校准图案的第一比特设为二进制0,而其后所有比特设为二进制1。
45.如权利要求44所述的方法,其特征在于,所述校准图案的第一比特设为二进制1,而其后所有比特设为二进制0。
全文摘要
在高速存储子系统中,各存储器件的最小器件读延迟差以及各存储器件和存储控制器之间的信号传播时间差可能导致范围很宽的系统读延迟。本发明通过比较各器件的系统读延迟差,然后以使每个器件表现出相同系统读延迟的器件系统读延迟来操作各存储器件,从而使高速存储系统中每个存储器件的系统读延迟得到均衡。
文档编号G11C11/407GK1507629SQ02809648
公开日2004年6月23日 申请日期2002年3月12日 优先权日2001年3月13日
发明者J·W·杨岑, B·基施, K·J·赖安, T·A·曼宁, B·约翰逊, J W 杨岑, 惭, 曼宁, 赖安 申请人:微米技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1