用于测试存储器元件的控制电路和方法

xiaoxiao2020-7-22  5

【专利下载】Tel:18215660330

用于测试存储器元件的控制电路和方法
【专利摘要】本发明公开了可更快速执行DDR或其它存储器的存储器训练的技术和结构。配置存储器控制器以便可确定用于一个或更多个硬件元件(诸如延迟锁定环路(DLL))的一个或更多个存储器参数(例如,计时延迟)。可执行训练,而无需由系统BIOS居间调停(或向系统BIOS报告结果)。因此,可在硬件中完全执行训练。本发明也公开了电压训练技术。
【专利说明】用于测试存储器元件的控制电路和方法
[0001]背景【技术领域】
[0002]本公开一般涉及计算装置的存储器。更具体地说,本公开涉及计算装置存储器的操作参数的测试和/或确定。
[0003]相关技术描述
[0004]在许多计算机架构中,计算机处理器通过总线连接到计算机存储器。为精确执行存储器读或写,可能需要把存储器数据信号延迟到与存储器控制信号同步。控制信号可为例如指示何时存取比特流的信号。由于控制信号和数据信号可不同相到达,故使用延迟值以使两个信号一起同步返回可减少错误。(同步可在从高至低或从低至高的位转移当中防止比特流被错误抽样)。另外,由于存储器、连接到存储器的数据线(或总线)和/或总体操作环境的变化的物理特征,可以用不同方式操作存储器的不同部分。
[0005]可因此通过若干延迟锁定环路(DLL)提供存储器存取。每个DLL可支配对存储器的一部分的存储器存取,且对于特定延迟设置可为可调的以使存储器数据与存储器控制同步。校正各种DLL计时延迟参数的适当值可确保把数据精确写入计算机存储器的所有部分并从计算机存储器的所有部分读出。然而,尤其是在较高存储器操作频率下,确定延迟设置可能是耗时的。
[0006]实施方案概要
[0007]在一个实施方案中,公开了一种包括控制电路和参数调整电路的存储器控制器。控制电路被配置以使用一个或更多个存储器训练参数执行存储器元件的测试,且参数调整电路被配置以接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个。
[0008]在另一实施方案中,公开了一种方法,其包括存储器控制器执行存储器兀件的多个试验,其中多个试验的初始试验使用用于计时参数的第一值,其中多个试验的随后试验各使用用于计时参数的各个不同的值,且其中各个不同的值由存储器控制器根据存储器元件的多个试验的一个或更多个先前执行的试验的结果来确定。该方法也包括存储器控制器根据多个试验的结果确定用于计时参数的操作值。
[0009]在另一实施方案中,公开了一种设备,该设备包括用于使用一个或更多个存储器训练参数执行存储器元件的测试的构件和用于接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个的构件。
[0010]在另一实施方案中,公开了一种计算机可读存储媒介,其包括由在计算机系统上可执行的程序操作的数据结构,程序在数据结构上操作以执行过程的部分来制作包括数据结构所描述的电路系统的集成电路,数据结构所描述的电路系统包括被配置以使用一个或更多个存储器训练参数执行存储器元件的测试的控制电路,以及包括被配置以接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个的参数调整电路。[0011]本公开的教导和所附权利要求书明确不局限于本概要中以上讨论的特征和实施方案。
[0012]附图简述
[0013]图1A是示出存储器控制器通过输入/输出(“I/O”)电路连接到计算机存储器元件的方块图。
[0014]图1B是示出I/O电路的一个实施方案的方块图。
[0015]图2是示出参数调整电路和控制电路的实施方案的方块图。
[0016]图3示出用于确定存储器参数操作值的方法的流程图。
[0017]图4是示出示例性计算机系统的一个实施方案的方块图。
[0018]详述[0019]本说明书包括对“一个实施方案”或“实施方案”的参考。用语“在一个实施方案中”或“在实施方案中”的出现不一定代表同一实施方案。特定功能、结构、或特征可以与本公开一致的任何适当方式组合。
[0020]术语。以下段落提供本公开(包括所附权利要求)中出现的术语的定义和/或上下文:
[0021]“包括”。本术语为开放式的。如在所附权利要求中所使用,本术语不排除额外结构或步骤。考虑叙述如下的权利要求:“一种包括一个或更多个处理器单元的设备……”。这样的权利要求不排除设备包括额外组件(例如,网络接口单元、图形电路系统等)。
[0022]“被配置以”。各种单元、电路或其它组件可描述或请求为“被配置以”执行一个或多个任务。在这样的上下文中,“被配置以”用于通过指示单元/电路/组件包括在操作过程中执行(那些)一个或多个任务的结构(例如,电路系统)来包括结构。同样地,即使当指定单元/电路/组件当前不操作(例如,关闭)时,也可说单元/电路/组件被配置以执行任务。与“被配置以”术语一起使用的单元/电路/组件包括硬件——例如,电路、存储可执行以实施操作的程序指令的存储器等。单元/电路/组件“被配置以”执行一个或更多个任务的叙述,并不意为援引35U.S.C.§112第六段用于该单元/电路/组件。另外,“被配置以”可包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵来以能够执行待解决任务的方式操作的通用结构(例如,通用电路系统)。“被配置以”也可包括使制造过程(例如,半导体制作设施)适于制作适于实施或执行一个或更多个任务的装置(例如,集成电路)。
[0023]“第一”、“第二”等。如本文所使用,这些术语用作名词之前的标记,且不表示任何类型的顺序(例如,空间、时间、逻辑等)。例如,“第一”存储器参数值和“第二”存储器参数值可用于指任何两个值,且不表示一个值比另一个高或一个值先于另一个值确定。换句话说,“第一”和“第二”是描述词。
[0024]“根据”。如本文所使用,该术语用于描述影响确定的一个或更多个因素。该术语不排除可影响确定的额外因素。也就是说,确定可仅根据那些因素或至少部分地根据那些因素。考虑用语“根据B确定A”。虽然B可为影响A的确定的因素,但是这样的用语不排除也根据C确定A。在其它情况中,可仅根据B确定A。
[0025]“处理器”。本术语具有本领域中一般且被接受的含义,且包括能够执行指令的装置。处理器可代表但不限于中央处理单元(CPU)、协处理器、算术处理单元、图形处理单元、数字信号处理器(DSP)等。处理器可为具有单管线或多管线的超标量处理器。处理器可包括每个被配置以执行指令的单核心或多核心。
[0026]“BIOS”或“BIOS装置”。本术语具有本领域中一般且被接受的含义,且包括存储器或存储装置(诸如EPROM或EEPR0M),存储器或存储装置具有存储在其上的、独立于计算机系统的操作系统、可由计算机系统的处理器执行的计算机指令,以改变硬件系统设置、电源设置、启动装置的顺序设置等。
[0027]“存储器训练参数”或“存储器参数”。如本文所使用,这些术语指影响存储器读和/或存储器写的操作的任何参数。
[0028]计算机系统可包括连接到与存储器总线接口的一个或更多个存储器控制器通道(MCC)的存储器控制器。(例如,x86处理器可具有位于其北桥、连接到DRAM控制器通道的存储器控制器。)MCC可包括以分数方式延迟发射器和接收器以保证从控制器写入和从存储器读出工作正确的电路。一些延迟值可比其它延迟值工作良好,且可允许存储器在较高频率操作。因此确定适当延迟值的过程可帮助系统实现最佳效能。一种可完成该过程的方法是使BIOS从存储器控制器通道读出数据并向其写入数据,同时通过PCI存取(例如,通过南桥)动态调整发射器和接收器中的延迟。这是称为“存储器训练”的动态过程的例子。
[0029]在存储器训练期间,存储器控制器可写入数据至存储器,然后读回数据并把它与先前写入的数据相比较,以确定处理器是否使用正确的延迟设置写或读数据。在比较失败后,新的延迟设置可用于通道控制器,且可重复过程直到比较正确。然而,当大量存储器附接到存储器控制器时,会显著增加训练时间,尤其当由BIOS执行许多PCI的存取时(因为可能要求BIOS在完成位上轮询以确定在移动以测试另一个不同的延迟设置之前,完成特定延迟设置的存取)。对于额外信息,参考美国专利公开N0.2009/0244997 (对应于美国申请N0.12/059,653)和美国专利公开N0.2010/0325372 (对应于美国申请N0.12/486,488),这些专利公开全文以引用方式并入本文。本公开包括可允许存储器训练更快速执行的结构和技术。在一个实施方案中,执行存储器训练而无需来自BIOS的居间调停。
[0030]现参看图1A,示出方块图100,其中存储器控制器105通过输入/输出(“1/0”)电路150连接到计算机存储器元件180。存储器元件180包括可位于计算机系统(诸如系统400 )内的一个或更多个存储器存储兀件(以下关于图4所描述)。在一个实施方案中,存储器元件180是动态随机存取存储器(DRAM)的一个或更多个模块,但是在其它实施方案中可为被配置以存储数据的任何其它类型的存储器。在一个实施方案中,存储器元件180是DDR2或DDR3DRAM。因此,存储器元件180包括多个存储字节组。通过1/0电路150提供至存储器元件180 (和这些存储字节组)的存取。
[0031]在图1B的方块图中示出1/0电路150的实施方案。在图1B中,1/0电路150B被配置以耦接到控制电路120和存储器元件180,且包括发射缓冲器154、发射器156、接收器158和接收缓冲器160。在一些实施方案中,1/0电路150包括缓冲器154、发射器156、接收器158和接收缓冲器160中的任何或全部中的多个。在一些实施方案中,发射器156和接收器158组合成单个收发器结构,诸如在美国公开2009/0244997所述。因此,1/0电路150的许多配置是可能的。
[0032]待写入存储器元件180的信息可在通过发射器156发送之前存储在发射缓冲器154中。发射器156可包括(或连接到)一个或更多个延迟锁定环路,每个延迟锁定环路可用于使写入存储器元件180的一个或更多个部分(存储字节组)同步。发射器156内的每个DLL(或横跨多发射器156的每个DLL)可受不同的计时参数值支配。例如,第一 DLL可根据第一计时值使存储器数据信号(DQ)与存储器数据选通信号(DQS)相配,而另一 DLL可使用第二、不同的计时值使DQ与DQS相配。同样地,接收器158可包括也根据一个或更多个计时延迟值使DQ与DQS相配的一个或更多个DLL。在一些实施方案中,发射器156和接收器158中的DLL可共享。更一般地,发射器156、接收器158和/或包括在其中(或发射器156和接收器158被配置以连接到)的DLL可具有‘997公开和/或‘372公开中所述的发射器、接收器、收发器和DLL的任何或全部特征。
[0033]回阅图1A,如图所示,存储器控制器105包括参数调整电路110和控制电路120。参数调整电路110被配置以启动图1A实施方案中的一个或更多个存储器元件的测试。在一个实施方案中,参数调整电路110从另一组件(诸如BIOS装置或处理器)接收开始存储器测试的指示。在其它实施方案中,参数调整电路110可被配置以自动(例如,响应于包括正在通电的电路110的计算机系统)启动存储器测试。在另外的实施方案中,参数调整电路110可被配置以响应于触发事件(诸如经检测出的环境条件的改变(例如,上升或降低的温度;上升或降低的电压))、来自软件(例如,操作系统或BIOS)的命令或可使用固定长度和/或可变长度计时的任何组合的基于硬件或软件的计时器来启动(或再启动)一个或更多个存储器元件的测试。在一些实施方案中,控制电路120,而不是参数调整电路110,被配置以启动存储器测试。
[0034]一般来说,本文关于参数调整电路110和控制电路120所述的任何或所有结构和功能可择优安置在其它电路系统中。因此,在一些实施方案中,参数调整电路110和控制电路120 (和其中包括的功能)的全部或部分可安置在存储器控制器105外部。在一些实施方案中,参数调整电路110 (和其中包括的功能)的全部或部分可安置在控制电路120内,反之亦然。另外,I/O电路150 (和其中包括的功能)的全部或部分可安置在存储器控制器105、存储器元件180和/或本文未明确描述的其它结构之内。
[0035]在图1A的实施方案中,控制电路120被配置以使用一个或更多个存储器训练参数执行一个或更多个存储器元件的测试。在一个实施方案中,一个或更多个存储器训练参数包括一个或更多个计时参数。这些计时参数可用来支配用于读出和/或写入存储器元件180的一个或更多个DLL的行为。例如,给定DLL可把DQ信号延迟一定分数的(或多个)时钟周期,以把DQ信号与相应的DQS信号更好对准(或者,在一些实施方案中,可关于DQ信号延迟DQS信号)。在另一实施方案中,用于一个或更多个存储器元件的测试的一个或更多个存储器训练参数包括一个或更多个电压参数,诸如存储器通道的操作电压(或额定峰值电压)。
[0036]现参看图2,示出参数调整电路210和控制电路260的方块图。这些电路可具有如上所述的参数调整电路110和控制电路120的任何特征、结构或功能,反之亦然。如图所示,参数电路210包括参数确定逻辑220、结果存储230和接口逻辑240,而控制电路260包括测试数据生成器262、比较器264和接口逻辑266。如以上关于电路110和120所述,电路210 (和其中包括的功能)的全部或部分可安置在电路260中,或反之亦然。在一个实施方案中,共用电路包括关于电路210和260所描述的全部结构和功能。
[0037]参数调整电路210被配置以确定用于一个或更多个存储器训练参数的一个或更多个操作值。如本文所使用,术语“操作值”指用作正常计算操作的部分的值(与仅用于测试或校正目的的值相反)。当然,操作值和测试值可具有相同数值或属于相同数值范围。在图2的实施方案中,参数确定逻辑220被配置以根据存储在结果存储230中的中间结果确定操作值。在一个实施方案中,参数调整电路210使用存储器元件的测试的多个中间结果来确定一个或更多个参数操作值。在一个实施方案中,存储器测试的中间结果经由接口逻辑240通过控制电路260输送至存储230。在图2的实施方案中,接口逻辑240包括用于与控制电路260通信的部分242以及用于与BIOS通信(例如,接收指示以开始测试)的部分244。
[0038]在图2的实施方案中,测试数据生成器262被配置以使用一个或更多个存储器训练参数生成存储器元件的测试的测试数据。在一个实施方案中,生成器262是图形生成器,且能够根据一个或更多个预配置模式或序列生成大量数据(例如,数百兆字节或更多)。在一些实施方案中,所有生成的测试数据或其部分可随机或伪随机生成。一些数据模式包括被设计以测试困难的边缘情况(例如,某相邻数个零后面跟着单个一,后面再跟着许多相邻零可使得“一”数位较难检测到,反之亦然)的部分。
[0039]在图2的实施方案中,接口逻辑266用于使用用于一个或更多个存储器训练参数的一个或更多个电流(测试)值来把数据写入存储器元件180 (例如,通过I/O电路150)。在测试数据写入存储器元件180之后,从存储器读回数据(例如,通过接收器158和接收缓冲器160)。在一些实施方案中,读取测试数据的过程可与写入测试数据的过程重叠(即,在这些实施方案中,并非所有测试数据都需在读取可开始之前写入存储器元件180)。比较器264包括电路逻辑以确定从存储器读取的测试数据(输入数据)是否与写入存储器的测试数据(输出数据)相同,并从其中生成中间结果。这些中间结果然后可报告到结果存储230并由结果存储230存储。把测试数据写入存储器并读回的过程在本文称为“读/写试验”。在一些实施方案中,读/写试验也包括其它额外操作,诸如生成一个或更多个中间结果。
[0040]根据实施方案,由比较器264生成的中间结果数据的类型和丰富性可改变。在一些实施方案中,比较器264被配置以关于对于给定的存储器训练参数而言输入测试数据是否与输出测试数据完全相同来简单生成通过/失败指示。在其它实施方案中,如果数据的临界数量或百分比是正确的(例如,每IGB测试数据小于I比特错误或字节错误),那么比较器264可生成通过结果。在另外的实施方案中,比较器264可生成指示在读/写试验期间发生的比特错误或字节错误的数量的定量数据和/或测试数据模式内错误的位置(例如,指示哪些特定情况可导致失败)。
[0041]根据对应于一个或更多个存储器训练参数的一个或更多个中间结果,参数调整电路210被配置以调整存储器训练参数中的至少一个。例如,在一个实施方案中,参数调整电路210被配置以使用用于给定DLL的给定计时参数值(诸如用于该DLL的DQ与DQS之间的零偏移延迟值)来开始存储器元件180的测试。在使用给定值完成初始的读/写试验后,参数调整电路可把给定值增加固定数量(例如,用于给定DLL的DQ与DQS之间的偏移增加1/32时钟周期)。然后可使用用于存储器训练参数的新值执行随后的读/写试验,因此可生成进一步的中间结果(其后,可对用于给定DLL的存储器训练参数值做出进一步的调整)。在各种实施方案中,包括参数调整电路210的存储器控制器可同时并行训练多个DLL。在一些实施方案中,并行训练可通过多个存储器控制器通道发生。另外,具有多个存储器控制器的系统也可同步或并行训练那些控制器。
[0042]参数调整电路210也被配置以确定用于一个或更多个存储器训练参数的操作值。因此,在一个实施方案中,参数确定逻辑220被配置以执行多个读/写试验的中间结果的计算以计算操作值。此类计算可包括用于给定DLL的延迟值的“左边缘”和/或“右边缘”的确定。例如,如果中间结果由以下计时参数值和不同读/写试验的通过/失败指示组成:
【权利要求】
1.一种存储器控制器,其包括: 控制电路,其被配置以使用一个或更多个存储器训练参数执行存储器元件的测试;和 参数调整电路,其被配置以接收所述测试的中间结果并根据所述中间结果调整所述一个或更多个存储器训练参数中的至少一个。
2.如权利要求1所述的存储器控制器,其中所述一个或更多个存储器训练参数中的所述至少一个是计时参数;以及 其中所述参数调整电路被配置以根据多个中间结果确定用于所述计时参数的一个或更多个操作值。
3.如权利要求1所述的存储器控制器,其中所述测试的所述中间结果包括已使用用于所述一个或更多个存储器训练参数的给定值完成所述存储器元件的多个读/写试验中的一个或更多个的指示;以及 其中所述参数调整电路被配置以根据已完成所述存储器元件的所述多个读/写试验中的一个或更多个的所述指示来把所述一个或更多个存储器训练参数中的所述至少一个调整为所述给定值之外的值。
4.如权利要求3所述的存储器控制器,其中所述存储器元件包括多组存储字节;以及 其中所述控制电路被配置以通过对于所述多组存储字节中的每组提供相应的多个计时参数值至所述存储字节组专用的延迟锁定环路来执行所述存储器元件的所述测试。
5.如权利要求1所述的存储器控制器,其中所述参数调整电路被配置以通过使用用于所述一个或更多个存储器训练 参数中的所述至少一个的多个值在所述存储器元件上执行多个读/写试验来执行所述测试; 其中所述存储器控制器还被配置以通过执行所述多个读/写试验的结果的计算来确定用于所述一个或更多个存储器训练参数中的所述至少一个的操作值。
6.如权利要求1所述的存储器控制器,其中所述控制电路被配置以通过变化电压参数和计时参数来执行所述存储器元件的所述测试。
7.如权利要求6所述的存储器控制器,其中所述参数调整电路被配置以对于多个电压参数值中的每一个使用所述电压参数值在所述存储器元件上执行相应的多个读/写试验,其中所述相应的多个读/写试验中的每一个使用不同的计时参数值。
8.如权利要求7所述的存储器控制器,其中所述存储器控制器被配置以确定用于所述存储器元件的多个操作计时参数值,其中所述多个操作计时参数值中的每一个对应于所述多个电压参数值中的至少一个相应值。
9.如权利要求5所述的存储器控制器,其中所述存储器控制器被配置以通过把左边缘值和右边缘值平均来确定所述操作值。
10.一种方法,其包括: 存储器控制器执行存储器元件的多个试验,其中所述多个试验的初始试验使用用于计时参数的第一值,其中所述多个试验的随后试验各使用用于所述计时参数的各个不同的值,其中所述各个不同的值由所述存储器控制器根据所述存储器元件的所述多个试验的一个或更多个先前执行的试验的结果来确定;和 所述存储器控制器根据所述多个试验的结果确定用于所述计时参数的操作值。
11.如权利要求10所述的方法,其中所述执行所述存储器元件的所述多个试验不取决于把所述多个试验的所述结果报告至BIOS装置。
12.如权利要求10所述的方法,其中所述存储器元件包括多组存储字节; 其中执行所述存储器元件的所述多个试验包括: 通过多个延迟锁定环路的不同环路执行写入所述多组存储字节的不同组;和 执行所述多组存储字节的所述不同组的读取。
13.如权利要求12所述的方法,其还包括所述存储器控制器确定用于所述计时参数的多个操作值,其中所述多个经确定的操作值中的每一个对应于所述多个延迟锁定环路中的至少一个。
14.如权利要求10所述的方法,其中所述执行所述存储器元件的所述多个试验响应于改变的环境条件的指示。
15.如权利要求10所述的方法,其还包括所述存储器控制器根据所述多个试验的所述结果确定用于所述计时参数的操作值范围,其中所述经确定操作值在所述范围中。
16.—种设备,其包括: 用于使用一个或更多个存储器训练参数执行存储器元件的测试的构件;和 用于接收所述测试的中间结果并根据所述中间结果调整所述一个或更多个存储器训练参数中的至少一个的构件。
17.如权利要求16所述的 设备,其中所述一个或更多个存储器训练参数中的所述至少一个是计时参数;以及 其中所述设备还包括用于根据多个中间结果确定用于所述一个或更多个存储器训练参数的一个或更多个操作值的构件。
18.如权利要求16所述的设备,其中所述测试的所述中间结果包括已使用用于所述一个或更多个存储器训练参数的给定值完成所述存储器元件的多个读/写试验中的一个或更多个的指示;以及 其中所述设备还包括用于根据已完成所述存储器元件的所述多个读/写试验中的一个或更多个的所述指示来把所述一个或更多个存储器训练参数中的所述至少一个调整为所述给定值之外的值的构件。
19.一种计算机可读存储媒介,其包括由可在计算机系统上执行的程序操作的数据结构,所述程序在所述数据结构上操作以执行过程的部分来制作包括所述数据结构所描述的电路系统的集成电路,所述数据结构所描述的所述电路系统包括: 控制电路,其被配置以使用一个或更多个存储器训练参数执行存储器元件的测试;和 参数调整电路,其被配置以接收所述测试的中间结果并根据所述中间结果调整所述一个或更多个存储器训练参数中的至少一个。
20.如权利要求19所述的计算机可读存储媒介,其中所述存储媒介存储硬件描述语言(HDL)数据、Verilog数据或图形数据库系统II (⑶SII)数据。
【文档编号】G06F13/16GK103502964SQ201280021923
【公开日】2014年1月8日 申请日期:2012年5月3日 优先权日:2011年5月6日
【发明者】奥斯温·E·霍斯蒂, 哈罗德·H·鲍蒂斯塔, 肖恩·瑟尔斯 申请人:超威半导体公司

最新回复(0)