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

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

Info

Publication number
CN103502964A
CN103502964A CN201280021923.4A CN201280021923A CN103502964A CN 103502964 A CN103502964 A CN 103502964A CN 201280021923 A CN201280021923 A CN 201280021923A CN 103502964 A CN103502964 A CN 103502964A
Authority
CN
China
Prior art keywords
parameter
test
storer
memory controller
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201280021923.4A
Other languages
English (en)
Inventor
奥斯温·E·霍斯蒂
哈罗德·H·鲍蒂斯塔
肖恩·瑟尔斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN103502964A publication Critical patent/CN103502964A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明公开了可更快速执行DDR或其它存储器的存储器训练的技术和结构。配置存储器控制器以便可确定用于一个或更多个硬件元件(诸如延迟锁定环路(DLL))的一个或更多个存储器参数(例如,计时延迟)。可执行训练,而无需由系统BIOS居间调停(或向系统BIOS报告结果)。因此,可在硬件中完全执行训练。本发明也公开了电压训练技术。

Description

用于测试存储器元件的控制电路和方法
背景
技术领域
本公开一般涉及计算装置的存储器。更具体地说,本公开涉及计算装置存储器的操作参数的测试和/或确定。
相关技术描述
在许多计算机架构中,计算机处理器通过总线连接到计算机存储器。为精确执行存储器读或写,可能需要把存储器数据信号延迟到与存储器控制信号同步。控制信号可为例如指示何时存取比特流的信号。由于控制信号和数据信号可不同相到达,故使用延迟值以使两个信号一起同步返回可减少错误。(同步可在从高至低或从低至高的位转移当中防止比特流被错误抽样)。另外,由于存储器、连接到存储器的数据线(或总线)和/或总体操作环境的变化的物理特征,可以用不同方式操作存储器的不同部分。
可因此通过若干延迟锁定环路(DLL)提供存储器存取。每个DLL可支配对存储器的一部分的存储器存取,且对于特定延迟设置可为可调的以使存储器数据与存储器控制同步。校正各种DLL计时延迟参数的适当值可确保把数据精确写入计算机存储器的所有部分并从计算机存储器的所有部分读出。然而,尤其是在较高存储器操作频率下,确定延迟设置可能是耗时的。
实施方案概要
在一个实施方案中,公开了一种包括控制电路和参数调整电路的存储器控制器。控制电路被配置以使用一个或更多个存储器训练参数执行存储器元件的测试,且参数调整电路被配置以接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个。
在另一实施方案中,公开了一种方法,其包括存储器控制器执行存储器元件的多个试验,其中多个试验的初始试验使用用于计时参数的第一值,其中多个试验的随后试验各使用用于计时参数的各个不同的值,且其中各个不同的值由存储器控制器根据存储器元件的多个试验的一个或更多个先前执行的试验的结果来确定。该方法也包括存储器控制器根据多个试验的结果确定用于计时参数的操作值。
在另一实施方案中,公开了一种设备,该设备包括用于使用一个或更多个存储器训练参数执行存储器元件的测试的构件和用于接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个的构件。
在另一实施方案中,公开了一种计算机可读存储媒介,其包括由在计算机系统上可执行的程序操作的数据结构,程序在数据结构上操作以执行过程的部分来制作包括数据结构所描述的电路系统的集成电路,数据结构所描述的电路系统包括被配置以使用一个或更多个存储器训练参数执行存储器元件的测试的控制电路,以及包括被配置以接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个的参数调整电路。
本公开的教导和所附权利要求书明确不局限于本概要中以上讨论的特征和实施方案。
附图简述
图1A是示出存储器控制器通过输入/输出(“I/O”)电路连接到计算机存储器元件的方块图。
图1B是示出I/O电路的一个实施方案的方块图。
图2是示出参数调整电路和控制电路的实施方案的方块图。
图3示出用于确定存储器参数操作值的方法的流程图。
图4是示出示例性计算机系统的一个实施方案的方块图。
详述
本说明书包括对“一个实施方案”或“实施方案”的参考。用语“在一个实施方案中”或“在实施方案中”的出现不一定代表同一实施方案。特定功能、结构、或特征可以与本公开一致的任何适当方式组合。
术语。以下段落提供本公开(包括所附权利要求)中出现的术语的定义和/或上下文:
“包括”。本术语为开放式的。如在所附权利要求中所使用,本术语不排除额外结构或步骤。考虑叙述如下的权利要求:“一种包括一个或更多个处理器单元的设备……”。这样的权利要求不排除设备包括额外组件(例如,网络接口单元、图形电路系统等)。
“被配置以”。各种单元、电路或其它组件可描述或请求为“被配置以”执行一个或多个任务。在这样的上下文中,“被配置以”用于通过指示单元/电路/组件包括在操作过程中执行(那些)一个或多个任务的结构(例如,电路系统)来包括结构。同样地,即使当指定单元/电路/组件当前不操作(例如,关闭)时,也可说单元/电路/组件被配置以执行任务。与“被配置以”术语一起使用的单元/电路/组件包括硬件——例如,电路、存储可执行以实施操作的程序指令的存储器等。单元/电路/组件“被配置以”执行一个或更多个任务的叙述,并不意为援引35U.S.C.§112第六段用于该单元/电路/组件。另外,“被配置以”可包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵来以能够执行待解决任务的方式操作的通用结构(例如,通用电路系统)。“被配置以”也可包括使制造过程(例如,半导体制作设施)适于制作适于实施或执行一个或更多个任务的装置(例如,集成电路)。
“第一”、“第二”等。如本文所使用,这些术语用作名词之前的标记,且不表示任何类型的顺序(例如,空间、时间、逻辑等)。例如,“第一”存储器参数值和“第二”存储器参数值可用于指任何两个值,且不表示一个值比另一个高或一个值先于另一个值确定。换句话说,“第一”和“第二”是描述词。
“根据”。如本文所使用,该术语用于描述影响确定的一个或更多个因素。该术语不排除可影响确定的额外因素。也就是说,确定可仅根据那些因素或至少部分地根据那些因素。考虑用语“根据B确定A”。虽然B可为影响A的确定的因素,但是这样的用语不排除也根据C确定A。在其它情况中,可仅根据B确定A。
“处理器”。本术语具有本领域中一般且被接受的含义,且包括能够执行指令的装置。处理器可代表但不限于中央处理单元(CPU)、协处理器、算术处理单元、图形处理单元、数字信号处理器(DSP)等。处理器可为具有单管线或多管线的超标量处理器。处理器可包括每个被配置以执行指令的单核心或多核心。
“BIOS”或“BIOS装置”。本术语具有本领域中一般且被接受的含义,且包括存储器或存储装置(诸如EPROM或EEPROM),存储器或存储装置具有存储在其上的、独立于计算机系统的操作系统、可由计算机系统的处理器执行的计算机指令,以改变硬件系统设置、电源设置、启动装置的顺序设置等。
“存储器训练参数”或“存储器参数”。如本文所使用,这些术语指影响存储器读和/或存储器写的操作的任何参数。
计算机系统可包括连接到与存储器总线接口的一个或更多个存储器控制器通道(MCC)的存储器控制器。(例如,x86处理器可具有位于其北桥、连接到DRAM控制器通道的存储器控制器。)MCC可包括以分数方式延迟发射器和接收器以保证从控制器写入和从存储器读出工作正确的电路。一些延迟值可比其它延迟值工作良好,且可允许存储器在较高频率操作。因此确定适当延迟值的过程可帮助系统实现最佳效能。一种可完成该过程的方法是使BIOS从存储器控制器通道读出数据并向其写入数据,同时通过PCI存取(例如,通过南桥)动态调整发射器和接收器中的延迟。这是称为“存储器训练”的动态过程的例子。
在存储器训练期间,存储器控制器可写入数据至存储器,然后读回数据并把它与先前写入的数据相比较,以确定处理器是否使用正确的延迟设置写或读数据。在比较失败后,新的延迟设置可用于通道控制器,且可重复过程直到比较正确。然而,当大量存储器附接到存储器控制器时,会显著增加训练时间,尤其当由BIOS执行许多PCI的存取时(因为可能要求BIOS在完成位上轮询以确定在移动以测试另一个不同的延迟设置之前,完成特定延迟设置的存取)。对于额外信息,参考美国专利公开No.2009/0244997(对应于美国申请No.12/059,653)和美国专利公开No.2010/0325372(对应于美国申请No.12/486,488),这些专利公开全文以引用方式并入本文。本公开包括可允许存储器训练更快速执行的结构和技术。在一个实施方案中,执行存储器训练而无需来自BIOS的居间调停。
现参看图1A,示出方块图100,其中存储器控制器105通过输入/输出(“I/O”)电路150连接到计算机存储器元件180。存储器元件180包括可位于计算机系统(诸如系统400)内的一个或更多个存储器存储元件(以下关于图4所描述)。在一个实施方案中,存储器元件180是动态随机存取存储器(DRAM)的一个或更多个模块,但是在其它实施方案中可为被配置以存储数据的任何其它类型的存储器。在一个实施方案中,存储器元件180是DDR2或DDR3DRAM。因此,存储器元件180包括多个存储字节组。通过I/O电路150提供至存储器元件180(和这些存储字节组)的存取。
在图1B的方块图中示出I/O电路150的实施方案。在图1B中,I/O电路150B被配置以耦接到控制电路120和存储器元件180,且包括发射缓冲器154、发射器156、接收器158和接收缓冲器160。在一些实施方案中,I/O电路150包括缓冲器154、发射器156、接收器158和接收缓冲器160中的任何或全部中的多个。在一些实施方案中,发射器156和接收器158组合成单个收发器结构,诸如在美国公开2009/0244997所述。因此,I/O电路150的许多配置是可能的。
待写入存储器元件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的任何或全部特征。
回阅图1A,如图所示,存储器控制器105包括参数调整电路110和控制电路120。参数调整电路110被配置以启动图1A实施方案中的一个或更多个存储器元件的测试。在一个实施方案中,参数调整电路110从另一组件(诸如BIOS装置或处理器)接收开始存储器测试的指示。在其它实施方案中,参数调整电路110可被配置以自动(例如,响应于包括正在通电的电路110的计算机系统)启动存储器测试。在另外的实施方案中,参数调整电路110可被配置以响应于触发事件(诸如经检测出的环境条件的改变(例如,上升或降低的温度;上升或降低的电压))、来自软件(例如,操作系统或BIOS)的命令或可使用固定长度和/或可变长度计时的任何组合的基于硬件或软件的计时器来启动(或再启动)一个或更多个存储器元件的测试。在一些实施方案中,控制电路120,而不是参数调整电路110,被配置以启动存储器测试。
一般来说,本文关于参数调整电路110和控制电路120所述的任何或所有结构和功能可择优安置在其它电路系统中。因此,在一些实施方案中,参数调整电路110和控制电路120(和其中包括的功能)的全部或部分可安置在存储器控制器105外部。在一些实施方案中,参数调整电路110(和其中包括的功能)的全部或部分可安置在控制电路120内,反之亦然。另外,I/O电路150(和其中包括的功能)的全部或部分可安置在存储器控制器105、存储器元件180和/或本文未明确描述的其它结构之内。
在图1A的实施方案中,控制电路120被配置以使用一个或更多个存储器训练参数执行一个或更多个存储器元件的测试。在一个实施方案中,一个或更多个存储器训练参数包括一个或更多个计时参数。这些计时参数可用来支配用于读出和/或写入存储器元件180的一个或更多个DLL的行为。例如,给定DLL可把DQ信号延迟一定分数的(或多个)时钟周期,以把DQ信号与相应的DQS信号更好对准(或者,在一些实施方案中,可关于DQ信号延迟DQS信号)。在另一实施方案中,用于一个或更多个存储器元件的测试的一个或更多个存储器训练参数包括一个或更多个电压参数,诸如存储器通道的操作电压(或额定峰值电压)。
现参看图2,示出参数调整电路210和控制电路260的方块图。这些电路可具有如上所述的参数调整电路110和控制电路120的任何特征、结构或功能,反之亦然。如图所示,参数电路210包括参数确定逻辑220、结果存储230和接口逻辑240,而控制电路260包括测试数据生成器262、比较器264和接口逻辑266。如以上关于电路110和120所述,电路210(和其中包括的功能)的全部或部分可安置在电路260中,或反之亦然。在一个实施方案中,共用电路包括关于电路210和260所描述的全部结构和功能。
参数调整电路210被配置以确定用于一个或更多个存储器训练参数的一个或更多个操作值。如本文所使用,术语“操作值”指用作正常计算操作的部分的值(与仅用于测试或校正目的的值相反)。当然,操作值和测试值可具有相同数值或属于相同数值范围。在图2的实施方案中,参数确定逻辑220被配置以根据存储在结果存储230中的中间结果确定操作值。在一个实施方案中,参数调整电路210使用存储器元件的测试的多个中间结果来确定一个或更多个参数操作值。在一个实施方案中,存储器测试的中间结果经由接口逻辑240通过控制电路260输送至存储230。在图2的实施方案中,接口逻辑240包括用于与控制电路260通信的部分242以及用于与BIOS通信(例如,接收指示以开始测试)的部分244。
在图2的实施方案中,测试数据生成器262被配置以使用一个或更多个存储器训练参数生成存储器元件的测试的测试数据。在一个实施方案中,生成器262是图形生成器,且能够根据一个或更多个预配置模式或序列生成大量数据(例如,数百兆字节或更多)。在一些实施方案中,所有生成的测试数据或其部分可随机或伪随机生成。一些数据模式包括被设计以测试困难的边缘情况(例如,某相邻数个零后面跟着单个一,后面再跟着许多相邻零可使得“一”数位较难检测到,反之亦然)的部分。
在图2的实施方案中,接口逻辑266用于使用用于一个或更多个存储器训练参数的一个或更多个电流(测试)值来把数据写入存储器元件180(例如,通过I/O电路150)。在测试数据写入存储器元件180之后,从存储器读回数据(例如,通过接收器158和接收缓冲器160)。在一些实施方案中,读取测试数据的过程可与写入测试数据的过程重叠(即,在这些实施方案中,并非所有测试数据都需在读取可开始之前写入存储器元件180)。比较器264包括电路逻辑以确定从存储器读取的测试数据(输入数据)是否与写入存储器的测试数据(输出数据)相同,并从其中生成中间结果。这些中间结果然后可报告到结果存储230并由结果存储230存储。把测试数据写入存储器并读回的过程在本文称为“读/写试验”。在一些实施方案中,读/写试验也包括其它额外操作,诸如生成一个或更多个中间结果。
根据实施方案,由比较器264生成的中间结果数据的类型和丰富性可改变。在一些实施方案中,比较器264被配置以关于对于给定的存储器训练参数而言输入测试数据是否与输出测试数据完全相同来简单生成通过/失败指示。在其它实施方案中,如果数据的临界数量或百分比是正确的(例如,每1GB测试数据小于1比特错误或字节错误),那么比较器264可生成通过结果。在另外的实施方案中,比较器264可生成指示在读/写试验期间发生的比特错误或字节错误的数量的定量数据和/或测试数据模式内错误的位置(例如,指示哪些特定情况可导致失败)。
根据对应于一个或更多个存储器训练参数的一个或更多个中间结果,参数调整电路210被配置以调整存储器训练参数中的至少一个。例如,在一个实施方案中,参数调整电路210被配置以使用用于给定DLL的给定计时参数值(诸如用于该DLL的DQ与DQS之间的零偏移延迟值)来开始存储器元件180的测试。在使用给定值完成初始的读/写试验后,参数调整电路可把给定值增加固定数量(例如,用于给定DLL的DQ与DQS之间的偏移增加1/32时钟周期)。然后可使用用于存储器训练参数的新值执行随后的读/写试验,因此可生成进一步的中间结果(其后,可对用于给定DLL的存储器训练参数值做出进一步的调整)。在各种实施方案中,包括参数调整电路210的存储器控制器可同时并行训练多个DLL。在一些实施方案中,并行训练可通过多个存储器控制器通道发生。另外,具有多个存储器控制器的系统也可同步或并行训练那些控制器。
参数调整电路210也被配置以确定用于一个或更多个存储器训练参数的操作值。因此,在一个实施方案中,参数确定逻辑220被配置以执行多个读/写试验的中间结果的计算以计算操作值。此类计算可包括用于给定DLL的延迟值的“左边缘”和/或“右边缘”的确定。例如,如果中间结果由以下计时参数值和不同读/写试验的通过/失败指示组成:
Figure BDA0000408421570000101
那么可确定“左边缘”1/8(第一成功值)和“右边缘”4/8(最后成功值)。由此信息,可通过把左边缘值和右边缘值平均计算得到操作值5/16。如果可得到每个试验的定量数据(诸如比特或字节错误的数量),那么也可执行确定操作值的其它方法,诸如加权平均。也可使用迭代测试确定操作值——例如,可运行左边缘1/8和右边缘4/8之内的额外读/写试验,其后使用额外生成的数据计算操作值。一个或更多个操作值在被确定之后,可存储在结果存储230、专用寄存器中(例如,参数调整电路210内或DLL自身内的寄存器内)或本领域技术人员可想到的任何其它适当位置。在一个实施方案中,参数操作值可存储在BIOS中。
电压存储器参数也可由参数调整电路210和控制电路260训练。因此在一个实施方案中,控制电路260被配置以通过变化电压参数和计时参数两者来执行存储器元件180的测试。对于给定DLL,可例如通过确定用于在一电压电平处的该DLL的计时参数的操作值、然后升高或降低电压电平并进行额外读/写试验以确定用于在其它电压处计时参数的一个或更多个其它操作值来执行这样的测试。例如,这样的测试的结果可采取以下形式:
在确定用于不同电压电平的各种计时设置之后,存储器通道控制器可相应地选择适当的计时参数操作值(例如,对于不同存储器通道的电压,使用不同的计时值,或响应于系统操作期间的电压电平波动,选择不同的计时值)。因此,在一个实施方案中,对于多个电压参数值中的每一个,可根据上述方法使用该电压参数值在存储器元件上执行相应的多个读/写试验,以确定用于该电压电平的计时参数操作值。
现参看图3,示出用于确定参数操作值的方法300的流程图。在各种实施方案中,通过参数调整电路210和控制电路260来全部或部分执行方法300的步骤。
在步骤310中,接收到开始在存储器元件上执行多个读/写试验的指示。如上所述,这样的指示可响应于系统通电、改变的环境条件(电压、温度等)或硬件或软件计时器而自动生成。在一些实施方案中,可从BIOS装置接收到这样的指示。开始测试的指示也可包括额外信息,诸如待测试的特定地址范围。
在步骤320中,使用用于存储器训练参数的第一值执行初始读/写试验。在各种实施方案中,此初始值可预置、动态确定或在指示中指定,以开始测试。例如,对于特定DLL,初始读/写试验可使用DQ/DQS计时延迟值零。然后把数据写入存储器并从存储器读出,以确定该计时延迟值是否产生正确结果。
在步骤330中,根据初始试验的结果,确定用于存储器训练参数的不同值。在一些实施方案中,该步骤可包括把DQ/DQS计时延迟值增加固定数量(例如,时钟周期的某分数)。在其它实施方案中,计时延迟值可增加动态确定的数量(例如,响应于关于来自先前试验的比特或字节错误的数量的定量数据)。应注意,虽然本文的各种例子涉及测试期间“增加”存储器训练参数值,但是其它数学运算来改变该值是同样可能的,诸如递减(减去)、乘法或除法。因此可根据一个或更多个先前结果确定不同的参数值。
在步骤340中,使用从步骤330新确定的参数值来执行额外的读/写试验。步骤340可包括以上关于步骤320所述的任何或全部元素。在步骤350中,做出是否继续测试所讨论的特定存储器参数的确定。例如,如果已检测出左边缘,那么当也检测出右边缘时,可停止测试(例如,在检测到一个或更多个先前经检测的成功随后的一个或更多个失败后,停止测试)。或者,在一些实施方案中,可继续测试直到已计算出可能值的全部范围。如果确定继续测试特定参数,则该方法返回步骤330并按照以上所述继续进行。然而,若确定不再进行进一步测试,则在步骤360中,确定用于特定存储器参数的操作值。可以如上所述或如本领域技术人员可想起的任何方式做出该确定(例如,左边缘/右边缘平均、加权平均等)。
在一些实施方案中,执行步骤320-360而无需把结果报告至BIOS装置。因此,在这些实施方案中,可确定操作参数值,而无需由计算机系统(诸如系统400)的BIOS做出任何居间调停或的决定。这可大大加速存储器参数训练过程,如在许多计算机系统中,一个或更多个存储器控制器是北桥的部分(或连接到北桥),而BIOS附接到显著较慢的南桥。如先前所述,在一些实施方案中,BIOS可通过发送指示到参数调整电路210或控制电路260中的一个来启动存储器训练,而无需采取任何进一步行动直到训练完成。另外,在BIOS在初始启动阶段之后在存储器训练中不发挥作用的实施方案中,BIOS可自由执行启动计算机系统所需的其它操作(因此把整体启动时间加快得更多)。
如可从以上公开可见,在一个实施方案中,控制电路260是用于使用一个或更多个存储器训练参数执行存储器元件的测试的构件,且参数调整电路210是用于接收测试的中间结果并根据中间结果调整一个或更多个存储器训练参数中的至少一个的构件。
示例性计算机系统
现参看图4,描绘了可包括存储器控制器105的示例性计算机系统400的一个实施方案。计算机系统400包括通过互连件460(例如,系统总线)耦接到系统存储器420和I/O接口440的处理器子系统480。I/O接口440耦接到一个或更多个I/O装置450。计算机系统400可为各种类型装置中的任何一种,包括但不限于服务器系统、个人计算机系统、台式计算机、膝上型计算机或笔记本计算机、主计算机系统、便携式计算机、工作站、网络计算机、诸如移动电话、传呼机或个人数据助理(PDA)的消费装置。计算机系统400也可为任何种类的网络外围装置,诸如存储装置、交换机、调制解调器、路由器等。虽然为方便起见示出单个计算机系统400,但是系统400也可实施为共同操作的两个或更多计算机系统。
处理器子系统480可包括一个或更多个处理器或处理单元。例如,处理器子系统480可包括耦接到一个或更多个资源控制处理元件420的一个或更多个处理单元(其中的每一个可具有多处理元件或核心)。在计算机系统400的各种实施方案中,处理器子系统480的多个实例可耦接到互连件460。在各种实施方案中,处理器子系统480(或480内的各处理器单元或处理元件)可包括缓存或其它形式的板上存储器。在一个实施方案中,处理器子系统480可包括如上所述的存储器控制器105。
在各种实施方案中,系统存储器420是可由处理器子系统480使用的,且包括诸如元件180的一个或更多个存储器元件。可使用不同物理存储器媒介实施系统存储器420,物理存储器媒介诸如硬盘存储、软盘存储、可移动磁盘存储、闪速存储器、随机存取存储器(RAM——静态RAM(SRAM)、扩展数据输出(EDO)RAM、同步动态RAM(SDRAM)、双倍数据速率(DDR)SDRAM、RAMBUS RAM等)、只读存储器(ROM——可编程ROM(PROM)、电可擦写可编程ROM(EEPROM)等)等。计算机系统400中的存储器不局限于诸如存储器420的主存储。相反,计算机系统400也可包括其它形式的存储,诸如处理器子系统480中的高速缓存存储器和I/O装置450上的二级存储(例如,硬盘驱动器、存储阵列等)。在一些实施方案中,这些其它形式的存储也可存储可由处理器子系统480执行的程序指令。
根据各种实施方案,I/O接口440可为被配置以耦接到其它装置且与其它装置通信的各种类型接口的任何一种。在一个实施方案中,I/O接口440是从前侧至一根或更多根后侧总线的桥接芯片(例如,南桥)。I/O接口440可通过一根或更多根相应总线或其它接口耦接至一个或更多个I/O装置450。I/O装置的示例包括存储装置(硬盘驱动器、光驱动器、可移动闪存驱动器、存储阵列、SAN或它们的相关控制器)、网络接口装置(例如,至局域网或广域网)或其它装置(例如,图形接口装置、用户接口装置等)。在一个实施方案中,计算机系统400通过网络接口装置耦接至网络。
由计算机系统(例如,计算机系统400)执行的程序指令可存储在各种形式的计算机可读存储媒介上。一般来说,计算机可读存储媒介可包括由计算机可读以向计算机提供指令和/或数据的任何非暂时性/有形存储媒介。例如,计算机可读存储媒介可包括诸如磁或光媒介的存储媒介,例如,磁盘(固定的或可移动的)、磁带、CD-ROM、或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、或蓝光。存储媒介可进一步包括通过诸如通用串行总线(USB)接口等外围接口可存取的易失性或非易失性存储媒介,诸如RAM(例如,同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、Rambus DRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪速存储器、非易失性存储器(例如闪速存储器)。存储媒介可包括微电子机械系统(MEMS),以及通过诸如网络和/或无线链路的通信介质可存取的存储媒介。
在一些实施方案中,计算机可读存储媒介可用于存储由程序读取且直接或间接用于制作用于如上所述的参数调整电路110和/或210和控制电路120和/或260的硬件的指令。例如,指令可概述用诸如Verilog或VHDL的高级设计语言(HDL)描述硬件功能的行为级或寄存器传输级(RTL)描述的一个或更多个数据结构。可通过合成工具读取描述,合成工具可合成描述以产生网表。网表可包括一组逻辑门(例如,在合成库中限定的),逻辑门代表参数调整电路110和/或210和控制电路120和/或260的功能。然后可把网表放置和路由以产生描述应用于掩码的几何形状的数据集。然后掩码可用于各种半导体制作步骤以产生对应于参数调整电路110和/或210和控制电路120和/或260的一个或多个半导体电路。
虽然以上描述了具体实施方案,但即使其中只有一个实施方案是关于特定特征进行描述的,这些实施方案也不意为限制本公开的范围。除非另作说明,否则本公开所提供的特征的示例意为说明性的,而非限制性的。如对于受益于本公开的本领域技术人员明显的是,以上描述意为包括此类替代物、修改和等效物。
本公开的范围包括本文(显式或隐式)公开的任何特征或特征的组合或其任何归纳,无论它是否缓解本文提出的任何或全部问题。因此,在本申请(或请求其优先权的申请)进行申请期间,特征的任何此类组合可制定为新的权利要求。特别地,参阅所附权利要求书,从属权利要求中的特征可与独立权利要求中的特征组合,且各自的独立权利要求中的特征可以任何适当方式组合,而不仅仅是所附权利要求书中列举的特定组合。

Claims (20)

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(GDSII)数据。
CN201280021923.4A 2011-05-06 2012-05-03 用于测试存储器元件的控制电路和方法 Pending CN103502964A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/102,975 2011-05-06
US13/102,975 US20120284576A1 (en) 2011-05-06 2011-05-06 Hardware stimulus engine for memory receive and transmit signals
PCT/US2012/036399 WO2012154512A1 (en) 2011-05-06 2012-05-03 Control circuit and method for testing a memory element

Publications (1)

Publication Number Publication Date
CN103502964A true CN103502964A (zh) 2014-01-08

Family

ID=46124737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280021923.4A Pending CN103502964A (zh) 2011-05-06 2012-05-03 用于测试存储器元件的控制电路和方法

Country Status (6)

Country Link
US (1) US20120284576A1 (zh)
EP (1) EP2705432A1 (zh)
JP (1) JP2014517964A (zh)
KR (1) KR20140030220A (zh)
CN (1) CN103502964A (zh)
WO (1) WO2012154512A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105931674A (zh) * 2015-02-26 2016-09-07 瑞萨电子株式会社 半导体器件、测试程序和测试方法
CN106133710A (zh) * 2014-06-27 2016-11-16 超威半导体公司 用于训练存储器物理层接口的集成控制器
CN108010558A (zh) * 2017-11-28 2018-05-08 晶晨半导体(上海)股份有限公司 一种存储器的信号完整性测试方法
CN108039189A (zh) * 2017-11-28 2018-05-15 晶晨半导体(上海)股份有限公司 一种存储器的信号完整性测试方法
CN109828878A (zh) * 2019-01-18 2019-05-31 晶晨半导体(上海)股份有限公司 存储模块的测试方法、主板中存储单元的测试方法及装置
WO2019218753A1 (zh) * 2018-05-16 2019-11-21 华为技术有限公司 一种dqs位置调整方法和装置
CN110993005A (zh) * 2019-12-11 2020-04-10 海光信息技术有限公司 电路结构、芯片、训练方法及训练装置
WO2021190298A1 (zh) * 2020-03-25 2021-09-30 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
WO2021203895A1 (zh) * 2020-04-08 2021-10-14 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
TWI806018B (zh) * 2020-05-07 2023-06-21 南韓商三星電子股份有限公司 記憶體模組以及計算系統

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9224442B2 (en) 2013-03-15 2015-12-29 Qualcomm Incorporated System and method to dynamically determine a timing parameter of a memory device
US9430418B2 (en) * 2013-03-15 2016-08-30 International Business Machines Corporation Synchronization and order detection in a memory system
US9142272B2 (en) 2013-03-15 2015-09-22 International Business Machines Corporation Dual asynchronous and synchronous memory system
US9535778B2 (en) 2013-03-15 2017-01-03 International Business Machines Corporation Reestablishing synchronization in a memory system
US20150026528A1 (en) * 2013-07-16 2015-01-22 Manuel A. d'Abreu Controller based memory evaluation
US9218575B2 (en) * 2013-09-04 2015-12-22 Intel Corporation Periodic training for unmatched signal receiver
US10275386B2 (en) 2014-06-27 2019-04-30 Advanced Micro Devices, Inc. Memory physical layer interface logic for generating dynamic random access memory (DRAM) commands with programmable delays
US10055370B2 (en) 2014-07-09 2018-08-21 Advanced Micro Devices, Inc. Method and apparatis for processor standby
US9543041B2 (en) * 2014-08-29 2017-01-10 Everspin Technologies, Inc. Configuration and testing for magnetoresistive memory to ensure long term continuous operation
CN104750589B (zh) * 2015-03-12 2018-03-02 广东欧珀移动通信有限公司 一种存储器参数调节方法及移动终端
KR102389820B1 (ko) 2015-09-22 2022-04-22 삼성전자주식회사 트레이닝 동작을 제어하는 메모리 컨트롤러, 메모리 시스템 및 그의 동작방법
KR20180007374A (ko) 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
JP6841185B2 (ja) * 2017-08-18 2021-03-10 京セラドキュメントソリューションズ株式会社 情報処理装置、及び画像形成装置
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
CN107679210A (zh) * 2017-10-17 2018-02-09 山东浪潮通软信息科技有限公司 一种报表数据交换方法、装置及系统
JP6962130B2 (ja) * 2017-10-24 2021-11-05 富士通株式会社 データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法
CN109960616B (zh) * 2017-12-22 2023-04-07 龙芯中科技术股份有限公司 基于处理器的内存参数的调试方法及系统
KR20210026353A (ko) 2019-08-30 2021-03-10 삼성전자주식회사 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템
CN116737472B (zh) * 2022-10-27 2024-05-03 荣耀终端有限公司 一种测试存储器时序训练过程的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647467B1 (en) * 2006-05-25 2010-01-12 Nvidia Corporation Tuning DRAM I/O parameters on the fly
US7924637B2 (en) * 2008-03-31 2011-04-12 Advanced Micro Devices, Inc. Method for training dynamic random access memory (DRAM) controller timing delays
US8819474B2 (en) * 2009-04-03 2014-08-26 Intel Corporation Active training of memory command timing
US20100325372A1 (en) 2009-06-17 2010-12-23 Housty Oswin E Parallel training of dynamic random access memory channel controllers
US20110040902A1 (en) * 2009-08-13 2011-02-17 Housty Oswin E Compensation engine for training double data rate delays
US8233336B2 (en) * 2009-09-25 2012-07-31 Infineon Technologies Ag Memory controller comprising adjustable transmitter impedance

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106133710A (zh) * 2014-06-27 2016-11-16 超威半导体公司 用于训练存储器物理层接口的集成控制器
CN106133710B (zh) * 2014-06-27 2019-10-11 超威半导体公司 用于训练存储器物理层接口的集成控制器
CN105931674B (zh) * 2015-02-26 2021-03-19 瑞萨电子株式会社 半导体器件、测试程序和测试方法
CN105931674A (zh) * 2015-02-26 2016-09-07 瑞萨电子株式会社 半导体器件、测试程序和测试方法
CN108010558A (zh) * 2017-11-28 2018-05-08 晶晨半导体(上海)股份有限公司 一种存储器的信号完整性测试方法
CN108039189A (zh) * 2017-11-28 2018-05-15 晶晨半导体(上海)股份有限公司 一种存储器的信号完整性测试方法
US11430494B2 (en) 2018-05-16 2022-08-30 Huawei Technologies Co., Ltd. DQS position adjustment method, controller and network device
WO2019218753A1 (zh) * 2018-05-16 2019-11-21 华为技术有限公司 一种dqs位置调整方法和装置
CN109828878A (zh) * 2019-01-18 2019-05-31 晶晨半导体(上海)股份有限公司 存储模块的测试方法、主板中存储单元的测试方法及装置
CN109828878B (zh) * 2019-01-18 2022-10-11 晶晨半导体(上海)股份有限公司 存储模块的测试方法、主板中存储单元的测试方法及装置
CN110993005A (zh) * 2019-12-11 2020-04-10 海光信息技术有限公司 电路结构、芯片、训练方法及训练装置
CN110993005B (zh) * 2019-12-11 2021-03-26 海光信息技术股份有限公司 电路结构、芯片、训练方法及训练装置
WO2021190298A1 (zh) * 2020-03-25 2021-09-30 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
WO2021203895A1 (zh) * 2020-04-08 2021-10-14 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
US11579810B2 (en) 2020-04-08 2023-02-14 Changxin Memory Technologies, Inc. Semiconductor memory training method and related device
TWI806018B (zh) * 2020-05-07 2023-06-21 南韓商三星電子股份有限公司 記憶體模組以及計算系統

Also Published As

Publication number Publication date
KR20140030220A (ko) 2014-03-11
WO2012154512A1 (en) 2012-11-15
EP2705432A1 (en) 2014-03-12
US20120284576A1 (en) 2012-11-08
JP2014517964A (ja) 2014-07-24

Similar Documents

Publication Publication Date Title
CN103502964A (zh) 用于测试存储器元件的控制电路和方法
KR102222420B1 (ko) 메모리 물리 계층 인터페이스를 훈련하기 위한 통합 제어기
US9811273B1 (en) System and method for reliable high-speed data transfer in multiple data rate nonvolatile memory
KR101549648B1 (ko) 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치
CN102999454B (zh) 动态数据选通检测
US8819474B2 (en) Active training of memory command timing
EP3105761B1 (en) Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays
US9892220B2 (en) Method and apparatus for adjusting a timing derate for static timing analysis
US20150370955A1 (en) Method for adjusting a timing derate for static timing analysis
TWI796748B (zh) 使用替代結果之記憶體子系統校準
US7251794B2 (en) Simulation testing of digital logic circuit designs
US8539413B1 (en) Frequency optimization using useful skew timing
US10573360B1 (en) Method and apparatus for adaptable phase training of high frequency clock signaling for data capture
US9183125B2 (en) DDR receiver enable cycle training
CN106708167A (zh) 一种调整时钟的方法及控制器
US20120110400A1 (en) Method and Apparatus for Performing Memory Interface Calibration
US20230112432A1 (en) Dynamic setup and hold times adjustment for memories
US20230205435A1 (en) Dynamic random-access memory (dram) phase training update
US10157151B2 (en) System and method of determining memory access time
CN113361084B (zh) 芯片设计方法、装置、设备、可读存储介质以及程序产品
WO2023064729A1 (en) Dynamic setup and hold times adjustment for memories
US20230290426A1 (en) Scan-based voltage frequency scaling
US10885952B1 (en) Memory data transfer and switching sequence
US9922152B2 (en) Computer implemented system and method for reducing failure in time soft errors of a circuit design
JP2001189649A (ja) 可変遅延装置、信号遅延方法、および半導体装置の試験方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140108