CN101859286A - 存储器命令时序的主动训练 - Google Patents
存储器命令时序的主动训练 Download PDFInfo
- Publication number
- CN101859286A CN101859286A CN201010187457A CN201010187457A CN101859286A CN 101859286 A CN101859286 A CN 101859286A CN 201010187457 A CN201010187457 A CN 201010187457A CN 201010187457 A CN201010187457 A CN 201010187457A CN 101859286 A CN101859286 A CN 101859286A
- Authority
- CN
- China
- Prior art keywords
- clk
- logic
- interconnection
- setting
- cmd
- 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.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008713 feedback mechanism Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009933 burial Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004087 circulation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
本发明的实施例一般针对用于对存储器命令时序进行主动训练的系统、方法和装置。在某些实施例中,使用存储模块和存储控制器之间的主动反馈来主动训练CMD/CTL时序。还描述并请求保护了其他实施例。
Description
技术领域
本发明的实施例一般涉及数据处理系统领域,并且更特别地涉及用于存储器命令时序(memory command timing)的主动训练(active training)的系统、方法和装置。
背景技术
在某些存储器体系结构中,存储控制器通过命令/控制(CMD/CTL)总线以及数据总线与存储模块通信。CMD/CTL总线上的快的信号传输速率推动着对于在CMD/CTL信号和时钟(CLK)之间进行严格的时序控制(timing control)的需求。在传统系统中,基于主板布线准则、系统仿真和经验数据的组合来对CMD/CTL信号和CLK之间的相对间隔进行静态编程。
附图说明
本发明的实施例通过示例的方式而非通过限制性的方式在附图的图中示出,在附图中,同样的附图标记指代类似的元件。
附图1是示出根据本发明实施例实现的计算系统的所选择方面的高级框图;
附图2是示出根据本发明实施例的主动CMD/CTL训练的所选择方面的框图;
附图3是示出根据本发明实施例的用于确定信号延迟的电路的所选择方面的框图;
附图4是示出根据本发明实施例的信号延迟和延迟设置之间的关系的图表;
附图5是示出根据本发明实施例的用于CMD/CTL训练的方法的所选择方面的流程图;
附图6是示出用于读DQ-DQS训练的方法的所选择方面的流程图。
具体实施方式
本发明实施例通常针对用于对存储器命令时序进行主动训练的系统、方法和装置。正如前面提到的,在传统系统中,CMD/CTL时序是基于仿真结果、经验数据积累等而被静态地设置的。这种方法不能解决设备可变性、板可变性或规范违反(这种情况在动态随机存取存储器或DRAM中很常见)。除此之外,这种传统的方法需要花费很大的力气去表征跨越宽解空间的最佳时序。本发明实施例提供了针对CMD/CTL时序的主动训练。针对CMD/CTL的主动训练是一个困难的挑战,这是由于来自DRAM的任何清楚的反馈信号的缺乏、以及任何对时序的违反会使DRAM进入未知状态的事实而导致的。如下面参考附图1-5所进一步讨论的那样,存储系统中预先存在的机构可以被适配为在存储模块和存储控制器之间提供主动反馈。
附图1是示出了根据本发明实施例实现的计算系统的所选择方面的高级框图。系统100包括集成电路102、DRAM子系统104和存储器互连106。在可选实施例中,系统100可以包括更多元件、更少元件和/或不同元件。
集成电路102包括处理器核108和逻辑110。处理器核108可以是包括一般处理器核、图形处理器核等的各式各样的处理器核中的任一种。逻辑110广义地表示一系列广泛的逻辑,例如包括存储控制器、其他输入/输出(IO)接口等。虽然附图1示出了其中存储控制器与处理器核集成在一起的实施例,但是可以理解的是,在可选实施例中,存储控制器和处理器核可以处于分离的集成电路中。
存储器互连106耦合集成电路102与DRAM子系统104。在某些实施例中,互连106为源同步互连。术语“源同步”是指在同一互连上传输信号和CLK,并使用CLK以在接收器处采样信号。在下面描述的实施例中,使用延迟锁定环/相位内插器(DLL/PI)(其将时钟周期分成128个等间隔相位)来生成CLK。在可选实施例中,可以使用不同的机制来划分CLK,并且可以将CLK分成不同数量的相位。如下面进一步描述的那样,可以使用数字控制码(例如选择码)将CLK置于周期中的任何位置。
在某些实施例中,存储器互连106包括数据互连和CMD/CTL互连。数据互连可以具有多分支布局(multi-drop topology),而CMD/CTL互连可以具有菊链式布局。在本专利中,术语“总线”与“互连”被同义地使用。
DRAM子系统104为系统100提供主存储器的至少一部分。在图示的实施例中,DRAM子系统104包括一个或多个存储模块112。模块112可以是包括双列直插存储模块(DIMMs)、寄存式DIMMs(RDIMMs)、无缓冲DIMMs(UDIMMs)、小型DIMMs(SO-DIMMs)等的各式各样的存储模块中的任何一种。每一个模块112可以有一个或多个DRAM 114(以及可能的其他元件,如寄存器、缓冲器等)。DRAM 114可以是包括几乎任意代的双倍数据速率(DDR)DRAM的各式各样的设备中的任何一种。在某些实施例中,DRAM 114(以及系统100的其他部件)符合(至少部分符合)一个或多个定义DDR3的规范。
基本输入/输出系统(BIOS)116尤其提供用于对系统100的所选择方面进行初始化的逻辑。在某些实施例中,BIOS116包括逻辑118。如下面参照附图2-5进一步讨论的那样,逻辑118使用反馈机构来主动训练互连106的CMD/CTL总线。例如,逻辑118可以使用反馈机构111来主动训练CMD/CTL总线。如下面进一步讨论的,在某些实施例中,机构111包括RX DQ/DQS训练有限状态机(FSM)。在可选实施例中,机构111可以包括不同的或附加的逻辑。在再一个实施例中,该机构可以在固件中(例如在BIOS116中)实现(或部分实现)。
附图2是示出根据本发明实施例的主动CMD/CTL训练的所选择方面的框图。计算系统200包括经由互连220与存储模块204耦合的集成电路202。在其他实施例中,系统200可以具有更多元件、更少元件和/或不同元件。系统200可以是包括台式计算机、膝上型计算机、服务器、消费性电子设备(如游戏系统)、移动互联网设备等的各种计算系统中的任何一种。
在某些实施例中,集成电路202包括一个或多个处理器核和集成的存储控制器。在其他实施例中,集成电路202为芯片组的元件。在图示的实施例中,互连220包括数据总线和CMD/CTL总线。数据总线可以具有多分支布局,而CMD/CTL总线可以具有菊链式布局。CMD信号可以包括存储器地址(MA)、存储体地址(bank address)(BA)、行地址选通(RAS)、列地址选通(CAS)、允许写入(WE)等。控制信号可以包括片内终结器(on-die termination)(ODT)、芯片选择(CS)、时钟使能(CE)等。CMD线可以被跨越多级(rank)共享,并且每一级可以有单独的CTL线。在可选实施例中,互连220可以有更多元件、更少元件和/或不同元件。
模块204可以是包括DIMM、小型DIMM(SO-DIMMs)、RDIMMs、UDIMMs等的各式各样的存储模块中的任何一种。每一个模块包括多个DRAM。在某些实施例中,DRAM(以及系统200的其他元件)至少部分遵守一个或多个DDR3规范。
系统200包括用于利用模块204与集成电路202之间的反馈来使能CMD时序的主动训练的功能部件。那些功能部件包括用于控制该训练的逻辑(例如224)、用于给信号不同数量的延迟的硬件(例如,214、216和218)、以及用于提供反馈机构的逻辑(例如208和210)。在可选实施例中,系统200可以包括用以主动训练CMD时序的更多的功能部件和/或不同的功能部件。
还有很多方法可以用来主动训练CMD时序。首先,你可以对CMD和CTL的延迟设置进行静态编程,以及然后相对于CMD和CTL移动CLK以确定哪些对准(alignment)是有效的。第二种方法是静态编程CTL对(versus)CLK,以及然后一起移动CLK和CTL,以确定哪些对准(alignment)是有效的。第三种方法是使用两阶段训练流程,其中第一种方法和之后的第二种方法在连续的阶段中加以执行。另外,其他组合也是可以的。例如,可以固定CLK,并可以相对于该CLK来移动CMD和CTL中的一个或两个。
下面描述的实施例针对用于主动CMD训练的第一种方法。这种方法解决了用于采样CMD的建立时序和保持时序的问题。但是可以理解的是,本发明的可选实施例可以使用第一、第二和第三种方法的几乎任何组合。
BIOS 222包括逻辑224。在某些实施例中,逻辑224启动并控制训练CMD时序的过程。例如,逻辑224可以为CMD和CTL设置初始值,并利用反馈机构(208和210)来确定多个CLK延迟设置的通过/失败结果。然后,逻辑224可以基于该通过/失败结果来确定合适的CLK延迟设置。下面参照附图5对逻辑224进行进一步讨论。
在图示的实施例中,逻辑224使用预先存在的机构来为训练CMD时序提供反馈。特别是,逻辑224可以使用RX DQ/DQS训练有限状态机(FSM)作为反馈机构。为了便于说明,将RX DQ/DQS训练FSM显示在两个分别的部分中:FSM 208和DATA210。FSM 208和DATA210协同工作以发送信号给DRAM206,并接收从DRAM 206返回的信息。例如,FSM 208可以发送具有与CLK对准的各种CMD。如果DRAM 206接收并正确解释该CMD,则CMD和CLK具有合适的对准(alignment)。当这种情况发生时,DRAM 206通过在DQ/DQS总线上将模式(例如触发模式(toggle pattern))传递到集成电路202来进行响应。如果DATA210接收到针对CMD和CLK之间的给定对准的模式(pattem),则测试通过,并且DATA210会发送成功测试的指示给逻辑224。如果DATA210没有接收到针对给定对准的模式,则针对该特定设置的测试失败,并且DATA210会发送不成功的测试的指示给逻辑224。
在某些实施例中,为了FSM可以通过,DRAM必须正确地登记(register)MSR命令、Activate命令和多个Read CAS(列地址选通)命令。如果DRAM 206没能正确地登记这些命令中的任一者,则DRAM将不能在DQ和DQS上返回正确的信号,并且RX训练会卡在FindOpen中。最终会基于可编程超时计数器而将其标记为失败。
使用预先存在的反馈机构例如RX DQ/DQS FSM提供了许多优点。首先,因为许多控制器已经有了该FSM,所以没有必要在许多控制器中增加新的逻辑。此外,只需要命令流量(command traffic)起作用,而不需要任何起点。这种方法不会在很大程度上依赖于相同信道上的其他DRAM设备上的MRS编程(例如,尽管RX眼可能是比较小的,但是FSM仍然可以通过,而无需在非目标(non-targeted)DIMM中开启片内终结器(on-die termination))。这种方法针对UDIMM和RDIMM二者都可以无缝地(seamlessly)工作。它提供了良好的覆盖度,因为它需要若干不同的CMD引脚以满足时序要求。这些引脚可以包括RAS(行地址选通)、WE(允许写入)、CS(芯片选择)、BA[1:0]和A[2:0]。使用RX DQ/DQS FSM还消除了错误通过的风险。在某些情况下(例如一些RDIMM实施例),可以为通过/失败逻辑增加额外的反馈,例如来自寄存器或类似设备的地址奇偶错。
逻辑224针对各种CLK延迟设置收集通过/失败结果,并且决定在操作时间内哪个延迟设置用于CLK。例如,可能会有一个或多个这样的CLK延迟设置范围,即在该范围内测试通过。在某些实施例中,逻辑224确定哪个范围是最长的范围。例如,考虑这样一个实施例,其中有128个可能的CLK延迟设置(0到127)。此外,假设有两个通过的设置范围:1-3和10-122。逻辑224可以选择第二个范围(10-122)。在某些实施例中,逻辑224则确定最大的通过区域的中心。继续同样的例子,逻辑224可以计算哪个设置对应于该通过区域的中央(例如(122+10)/2=66)。在逻辑224确定了哪个延迟值对应于该通过区域的中心(如66)以后,则它可以将CLK的延迟设定(例如,为控制CLK的延迟的相位内插器提供数字选择码)为适当值。
CTL 214、CMD 216和CLK 218分别包括对CTL、CMD和CLK信号给予延迟的电路。例如,锁相环(PLL)212可以为CTL214、CMD216和CLK218中的每一个提供CLK。CTL 214、CMD 216和CLK 218可以包括将该CLK划分为多个相位(如128个)的电路,以及选择将CTL、CMD和CLK信号对准到这些相位中的哪个相位的电路。下面参照附图3-4进一步讨论该电路的示例。
附图3是示出用于确定信号延迟的电路的所选方面的框图。锁相环(PLL)302将CLK分发给多个电路(例如附图2中所示的CTL 214、CMD 216和CLK218)。延迟锁定环(DLL)304接收CLK并将其划分为多个(如16个)等间隔的CLK。这些时钟被提供给相位内插器(PI)306,该相位内插器通过内插相邻相位来产生更细间隔尺寸(granularity)的CLK(如128个)。PI 306还接收数字选择码312,该码选出时钟的相位。该被选择的相位控制锁存器308以给予XX DDR CLK 314该所选择的延迟。可以使用类似的处理来给予CMD和CTL适当的延迟。
附图4是示出根据本发明实施例的延迟设置和信号延迟之间的关系的图表。纵轴示出所选择的相位(例如以微微秒计(in pico seconds)),而横轴表示设置。图示的延迟和设置之间的关系仅仅是示例性的,并且在其他实施例中关系可以是不同的。
附图5是示出根据本发明实施例的用于CMD/CTL训练的方法的所选择方面的流程图。参照502,设置CMD和CTL的延迟推出(delay push out)。在本专利中,术语“延迟设置”和“延迟推出”被同义地使用。在某些实施例中,训练逻辑(例如附图2中的逻辑224)通过为CTL 214和CMD 216(附图2中所示)的相位内插器提供适当的选择码来设置延迟推出。
参照504,将CLK的延迟推出设置为初始值。例如,训练逻辑可以为CLK218的相位内插器提供适当的选择码,以将该延迟推出设置为初始值。在某些实施例中,该初始值为零。在其他实施例中,可以使用不同的初始值。
参照506,训练逻辑使用反馈机构(例如附图2中所示的208和210)来针对各种CLK设置测试CLK和CMD/CTL之间的对准。例如,针对多个CLK设置中的每一个,该训练逻辑使用FSM 208发送多个命令/控制信号,并且还使用DATA210来确定DRAM是否响应于该命令/控制信号提供了适当的模式。针对该测试的每一次迭代,训练逻辑记录由DATA 210提供的通过/失败指示。在该测试的每一次迭代之后,复位存储模块(508),并且将CLK的延迟设置编程为下一个设置。可以选择每一次迭代之间的步长,以产生准确性和运行时间之间的理想折衷。例如,如果CLK被分成128个相位,并且步长为4,则该测试可能具有32次迭代。附图5示出了测试的两个循环以示出多个通道可以被并行地训练。
参照510,训练逻辑找出在测试期间产生通过结果的CLK延迟设置的最大范围。使用与前面所讨论的相同的例子,可能有两个产生通过结果的CLK设置范围:1-3和10-122。训练逻辑将选择第二个范围(10-122),因为第二个范围最大。然后,训练逻辑找出该最大通过范围的中心,并将该CLK延迟设置设定为该最大通过范围的中心。继续相同的例子,训练逻辑可以计算该第二范围的中心(如(122+10)/2=66),并且然后利用对应于所选择范围的中心(例如对应于66)的选择码来对CLK延迟设置进行编程。
在对一个或多个CLK延迟设置进行编程以后,在512处可以复位存储模块。这为启动过程的其他操作提供了“清白的历史”。可以针对存储子系统(如附图1中示出的子系统104)中的每一个通道上的每一级(rank)重复上面描述的进程,从而在CLK和CMD/CTL之间提供合适的对准。
命令训练方案(例如DDR3命令训练方案)的一个挑战就是运行该训练和在各次迭代之间复位DIMM所花费的时间。在某些实施例中,通过使用下面的技术将这个时间减少到每次迭代2ms以下。可以提供可编程计数器来确定RX训练机使用的采样数。可以提供可编程超时计数器以用于RX训练机。同样,特别定制(并减少的)复位序列可用于DRAM。可以使用可编程步长来避免执行完所有的128次迭代。如果在初始(进程搜索(course search))期间没有发现错误,则可以用第二遍,该第二遍采用CLK相位中的更细的间隔尺寸(granularity)。在某些实施例中,不针对通过的测试复位DRAM。同样,可以并行地训练所有通道。另外,可以在具有相同时钟的各级(rank)之间共享CLK延迟设置。
上面描述的用于主动训练CMD时序的机构允许更高的传输频率、更高的系统性能(例如在某些配置中允许1N时序)和更快的上市时间。其以很低的成本提供了这些优点。该机构非常灵活,并且可用于各种各样的系统中。
本发明实施例的元件还可以被提供作为机器可读介质以用于存储机器可执行指令。机器可读介质可以包括但不限于,快闪存储器、光盘、光盘只读存储器(CD-ROM)、数字多功能/视频盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、传播媒体或其他类型的适用于存储电子指令的机器可读介质。例如,本发明的实施例可以作为计算机程序被下载,该计算机程序可以经由通信链路(例如调制解调器或网络连接)通过在载波或其他传播媒体中包含的数据信号从远程计算机(如服务器)传输至发出请求的计算机(如客户端)。
在上面的描述中,使用特定的术语来描述本发明的实施例。例如,术语“逻辑”表示用于执行一个或多个功能的硬件、固件、软件(或其任何组合)。比如,“硬件”的例子包括但不限于集成电路、有限状态机、或者甚至是组合逻辑。集成电路可以采用处理器的形式,诸如微处理器、专用集成电路、数字信号处理器、微控制器等。
应该明了的是,贯穿本说明书提到的“一个实施例”或“实施例”意思是结合该实施例描述的特定特征、结构或特性包含在本发明的至少一个实施例中。因此,要强调和应当明了的是,在本说明书的各部分中对于“实施例”或“一个实施例”或“可选实施例”的两个或更多个提及不一定都涉及同一实施例。此外,特定特征、结构或特性可根据适当情况结合在本发明的一个或多个实施例中。
类似的,应该明了的是,在对本发明实施例的上述描述中,有时候可以将各种特征集合到一个实施例、附图或对其的描述中,以使得公开内容更为流畅,并有助于对各发明方面中的一个或多个方面的理解。然而,并不能将本公开的方法解释为反映了这样一种意图,即与每个权利要求中所清楚地叙述的特征相比,所要求保护的主题需要更多的特征。恰恰相反,正如下面的权利要求所反映的那样,发明方面在于比单个前面公开的实施例的所有特征更少的特征。因此,在详细描述之后的权利要求书因此被清楚地结合到该详细描述中。
Claims (22)
1.一种装置,包括:
用于为链接存储控制器与存储子系统的CMD/CTL互连设定CMD延迟设置以及设定CTL延迟设置的逻辑;
用于设定初始CLK延迟设置的逻辑;
用于给位于存储控制器中的互连训练机构顺序地提供多个CLK延迟设置的逻辑,以及针对所述多个CLK延迟设置中的每一个,用于记录由互连训练机构提供的通过或失败结果的逻辑;
用于至少部分根据互连训练机构所提供的结果来选择所述多个CLK延迟设置之一的逻辑;和
用于将CLK延迟设定为所选择的CLK延迟设置的逻辑。
2.如权利要求1所述的装置,其中,所述互连训练机构包括RX DQ/DQS训练有限状态机。
3.如权利要求2所述的装置,其中,用于选择所述多个CLK延迟设置之一的逻辑包括:
用于识别一个或多个通过区域的逻辑;
用于选择最大的通过区域的逻辑;以及
用于识别与所述最大的通过区域的中心相对应的CLK延迟设置的逻辑。
4.如权利要求2所述的装置,其中,所述存储控制器被集成到与处理器相同的管芯上。
5.如权利要求2所述的装置,其中,所述CMD/CTL互连是源同步互连。
6.如权利要求2所述的装置,其中,所述装置包括用于计算系统的基本输入/输出系统。
7.如权利要求2所述的装置,其中,所述存储子系统包括多个双倍数据速率(DDR)3存储设备。
8.一种方法,包括:
为链接存储控制器与存储子系统的CMD/CTL互连设定CMD延迟设置;
为链接存储控制器与存储子系统的CMD/CTL互连设定CTL延迟设置;
设定初始CLK延迟设置;
给位于存储控制器中的互连训练机构顺序地提供多个CLK延迟设置;
针对所述多个CLK延迟设置中的每一个,记录由互连训练机构提供的通过或失败结果;以及
至少部分根据互连训练机构所提供的结果来选择所述多个CLK延迟设置之一。
9.如权利要求8所述的方法,进一步包括:
将CLK延迟设定为所选择的CLK延迟设置。
10.如权利要求9所述的方法,其中,所述互连训练机构包括RX DQ/DQS训练有限状态机。
11.如权利要求10所述的方法,其中,选择所述多个CLK延迟设置之一包括:
识别一个或多个通过区域;
选择最大的通过区域;以及
识别与所述最大的通过区域的中心相对应的CLK延迟设置。
12.如权利要求10所述的方法,其中,所述存储控制器被集成到与处理器相同的管芯上。
13.如权利要求10所述的方法,其中,所述CMD/CTL互连是源同步互连。
14.如权利要求10所述的方法,其中,所述装置包括用于计算系统的基本输入/输出系统。
15.如权利要求10所述的方法,其中,所述存储子系统包括多个双倍数据速率(DDR)3存储设备。
16.一种系统,包括:
存储控制器,其包括互连训练机构;以及
与所述存储控制器耦合的集成电路,所述集成电路包括:
用于为链接存储控制器与存储子系统的CMD/CTL互连设定CMD延迟设置以及设定CTL延迟设置的逻辑;
用于设定初始CLK延迟设置的逻辑;
用于给位于存储控制器中的互连训练机构顺序地提供多个CLK延迟设置的逻辑,以及针对所述多个CLK延迟设置中的每一个,用于记录由互连训练机构提供的通过或失败结果的逻辑;
用于至少部分根据互连训练机构所提供的结果来选择所述多个CLK延迟设置之一的逻辑;和
用于将CLK延迟设定为所选择的CLK延迟设置的逻辑。
17.如权利要求16所述的系统,其中,所述互连训练机构包括RX DQ/DQS训练有限状态机。
18.如权利要求17所述的系统,其中,用于选择所述多个CLK延迟设置之一的逻辑包括:
用于识别一个或多个通过区域的逻辑;
用于选择最大的通过区域的逻辑;以及
用于识别与所述最大的通过区域的中心相对应的CLK延迟设置的逻辑。
19.如权利要求17所述的系统,其中,所述存储控制器被集成到与处理器相同的管芯上。
20.如权利要求17所述的系统,其中,所述CMD/CTL互连是源同步互连。
21.如权利要求17所述的系统,其中,所述集成电路包括用于计算系统的基本输入/输出系统。
22.如权利要求17所述的系统,其中,所述存储子系统包括多个双倍数据速率(DDR)3存储设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/417,828 | 2009-04-03 | ||
US12/417,828 US8819474B2 (en) | 2009-04-03 | 2009-04-03 | Active training of memory command timing |
US12/417828 | 2009-04-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101859286A true CN101859286A (zh) | 2010-10-13 |
CN101859286B CN101859286B (zh) | 2014-10-22 |
Family
ID=42228846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010187457.XA Expired - Fee Related CN101859286B (zh) | 2009-04-03 | 2010-04-02 | 存储器命令时序的主动训练 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8819474B2 (zh) |
CN (1) | CN101859286B (zh) |
DE (1) | DE102010013668B4 (zh) |
GB (1) | GB2469210B (zh) |
TW (1) | TWI430105B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108231110A (zh) * | 2016-12-15 | 2018-06-29 | 爱思开海力士有限公司 | 半导体装置、半导体系统及训练方法 |
CN109871339A (zh) * | 2017-12-05 | 2019-06-11 | 爱思开海力士有限公司 | 存储器系统以及该存储器系统的操作方法 |
CN113053431A (zh) * | 2017-11-21 | 2021-06-29 | 三星电子株式会社 | 执行命令总线训练的装置和方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8451969B2 (en) * | 2011-03-15 | 2013-05-28 | Intel Corporation | Apparatus, system, and method for timing recovery |
US8665665B2 (en) * | 2011-03-30 | 2014-03-04 | Mediatek Inc. | Apparatus and method to adjust clock duty cycle of memory |
US20120284576A1 (en) * | 2011-05-06 | 2012-11-08 | Housty Oswin E | Hardware stimulus engine for memory receive and transmit signals |
US8850155B2 (en) * | 2011-12-19 | 2014-09-30 | Advanced Micro Devices, Inc. | DDR 2D Vref training |
US9003246B2 (en) | 2012-09-29 | 2015-04-07 | Intel Corporation | Functional memory array testing with a transaction-level test engine |
US8996934B2 (en) | 2012-09-29 | 2015-03-31 | Intel Corporation | Transaction-level testing of memory I/O and memory device |
US9009531B2 (en) | 2012-12-05 | 2015-04-14 | Intel Corporation | Memory subsystem data bus stress testing |
US9009540B2 (en) | 2012-12-05 | 2015-04-14 | Intel Corporation | Memory subsystem command bus stress testing |
US9824772B2 (en) * | 2012-12-26 | 2017-11-21 | Nvidia Corporation | Hardware chip select training for memory using read commands |
US9607714B2 (en) | 2012-12-26 | 2017-03-28 | Nvidia Corporation | Hardware command training for memory using write leveling mechanism |
US20140181452A1 (en) * | 2012-12-26 | 2014-06-26 | Nvidia Corporation | Hardware command training for memory using read commands |
US9196384B2 (en) | 2012-12-28 | 2015-11-24 | Intel Corporation | Memory subsystem performance based on in-system weak bit detection |
US9076499B2 (en) | 2012-12-28 | 2015-07-07 | Intel Corporation | Refresh rate performance based on in-system weak bit detection |
US9378169B2 (en) | 2012-12-31 | 2016-06-28 | Nvidia Corporation | Method and system for changing bus direction in memory systems |
US9536626B2 (en) | 2013-02-08 | 2017-01-03 | Intel Corporation | Memory subsystem I/O performance based on in-system empirical testing |
US9374004B2 (en) | 2013-06-28 | 2016-06-21 | Intel Corporation | I/O driver transmit swing control |
US9658642B2 (en) | 2013-07-01 | 2017-05-23 | Intel Corporation | Timing control for unmatched signal receiver |
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 |
US10943183B2 (en) | 2016-07-12 | 2021-03-09 | Samsung Electronics Co., Ltd. | Electronics device performing software training on memory channel and memory channel training method thereof |
US10416912B2 (en) | 2016-11-03 | 2019-09-17 | Intel Corporation | Efficiently training memory device chip select control |
KR102353027B1 (ko) | 2017-07-03 | 2022-01-20 | 삼성전자주식회사 | 스토리지 장치의 데이터 트레이닝 방법 |
EP3977452A4 (en) | 2019-05-24 | 2023-06-21 | Intel Corporation | TRAINING FOR CHIP SELECT SIGNAL READ OPERATIONS BY STORAGE DEVICES |
US11619964B2 (en) | 2021-07-26 | 2023-04-04 | Micron Technology, Inc. | Methods for improving timing in memory devices, and related devices and systems |
KR20230080766A (ko) * | 2021-11-30 | 2023-06-07 | 삼성전자주식회사 | 메모리 장치에 대한 메모리 컨트롤러 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370067B1 (en) * | 2001-01-25 | 2002-04-09 | Ishoni Networks, Inc. | Automatic configuration of delay parameters in a dynamic memory controller |
CN101183557A (zh) * | 2006-11-15 | 2008-05-21 | 奇梦达股份公司 | 控制信号训练 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6137734A (en) | 1999-03-30 | 2000-10-24 | Lsi Logic Corporation | Computer memory interface having a memory controller that automatically adjusts the timing of memory interface signals |
US6535986B1 (en) * | 2000-03-14 | 2003-03-18 | International Business Machines Corporation | Optimizing performance of a clocked system by adjusting clock control settings and clock frequency |
US6691214B1 (en) * | 2000-08-29 | 2004-02-10 | Micron Technology, Inc. | DDR II write data capture calibration |
US6553472B2 (en) | 2001-01-12 | 2003-04-22 | Sun Microsystems, Inc. | Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US20050083095A1 (en) | 2003-10-16 | 2005-04-21 | Tsvika Kurts | Adaptive input/output buffer and methods thereof |
JP4351941B2 (ja) * | 2004-03-26 | 2009-10-28 | 株式会社アドバンテスト | 試験装置及び試験方法 |
EP1735794B1 (en) * | 2004-03-31 | 2011-04-27 | Micron Technology, Inc. | Reconstruction of signal timing in integrated circuits |
TWI251837B (en) * | 2004-10-13 | 2006-03-21 | Via Tech Inc | Method and related apparatus for adjusting timing of memory signals |
US7886174B2 (en) | 2007-06-27 | 2011-02-08 | Intel Corporation | Memory link training |
US20090023963A1 (en) | 2007-07-20 | 2009-01-22 | Nie-Jiann Wen | Noncatalytic Conversion of Carbon Tetrachloride to Perchloroethylene |
US20090030752A1 (en) | 2007-07-27 | 2009-01-29 | General Electric Company | Fleet anomaly detection method |
US7975164B2 (en) * | 2008-06-06 | 2011-07-05 | Uniquify, Incorporated | DDR memory controller |
-
2009
- 2009-04-03 US US12/417,828 patent/US8819474B2/en active Active
-
2010
- 2010-04-01 GB GB1005641.4A patent/GB2469210B/en not_active Expired - Fee Related
- 2010-04-01 DE DE102010013668.9A patent/DE102010013668B4/de not_active Expired - Fee Related
- 2010-04-02 CN CN201010187457.XA patent/CN101859286B/zh not_active Expired - Fee Related
- 2010-04-02 TW TW099110372A patent/TWI430105B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370067B1 (en) * | 2001-01-25 | 2002-04-09 | Ishoni Networks, Inc. | Automatic configuration of delay parameters in a dynamic memory controller |
CN101183557A (zh) * | 2006-11-15 | 2008-05-21 | 奇梦达股份公司 | 控制信号训练 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108231110A (zh) * | 2016-12-15 | 2018-06-29 | 爱思开海力士有限公司 | 半导体装置、半导体系统及训练方法 |
CN113053431A (zh) * | 2017-11-21 | 2021-06-29 | 三星电子株式会社 | 执行命令总线训练的装置和方法 |
US11715504B2 (en) | 2017-11-21 | 2023-08-01 | Samsung Electronics Co., Ltd. | Memory device for supporting command bus training mode and method of operating the same |
CN109871339A (zh) * | 2017-12-05 | 2019-06-11 | 爱思开海力士有限公司 | 存储器系统以及该存储器系统的操作方法 |
CN109871339B (zh) * | 2017-12-05 | 2023-12-15 | 爱思开海力士有限公司 | 存储器系统以及该存储器系统的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201005641D0 (en) | 2010-05-19 |
CN101859286B (zh) | 2014-10-22 |
US20100257397A1 (en) | 2010-10-07 |
TW201104449A (en) | 2011-02-01 |
DE102010013668B4 (de) | 2015-03-12 |
DE102010013668A1 (de) | 2011-01-05 |
TWI430105B (zh) | 2014-03-11 |
GB2469210A (en) | 2010-10-06 |
GB2469210B (en) | 2012-01-18 |
US8819474B2 (en) | 2014-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101859286B (zh) | 存储器命令时序的主动训练 | |
US20210303383A1 (en) | Memory module register access | |
US9851744B2 (en) | Address and control signal training | |
CN102422360B (zh) | 校准存储器系统中的写平整的起始值的方法 | |
CN102959639B (zh) | 经由存储器的误差信号训练存储器信号的方法和装置 | |
KR100711157B1 (ko) | 액티브 터미네이션 제어를 위한 방법, 메모리, 모듈 레지스터, 집적 회로, 메모리 모듈 및 시스템 | |
US8751754B2 (en) | Memory systems and methods for controlling the timing of receiving read data | |
US7539810B2 (en) | System, method and storage medium for a multi-mode memory buffer device | |
US7752364B2 (en) | Apparatus and method for communicating with semiconductor devices of a serial interconnection | |
US8631220B2 (en) | Adjusting the timing of signals associated with a memory system | |
US6173345B1 (en) | Method and apparatus for levelizing transfer delays for a channel of devices such as memory devices in a memory subsystem | |
CN103502964A (zh) | 用于测试存储器元件的控制电路和方法 | |
US9257200B2 (en) | Bit error testing and training in double data rate (DDR) memory system | |
CN101937726A (zh) | 针对存储器的快速数据眼再训练 | |
CN101131859A (zh) | 接口电路 | |
US20100082967A1 (en) | Method for detecting memory training result and computer system using such method | |
CN101903783A (zh) | 协议感知数字通道装置 | |
CN108694968B (zh) | 存储器设备、存储器控制器及相关存储器系统 | |
CN104868885A (zh) | 具有可变延迟线单元的延迟线电路 | |
CN104657294A (zh) | 用于检测相位的方法和相位检测系统 | |
US9196327B2 (en) | Data storage device, storage media controller and storage media control method | |
CN110265075B (zh) | 一种内存接口的控制方法和系统 | |
CN102141967B (zh) | 总线时序参数配置方法和装置 | |
CN100565490C (zh) | 通过模块上寄存器的主动终止控制 | |
CN112530484B (zh) | 存储器模块及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141022 Termination date: 20210402 |
|
CF01 | Termination of patent right due to non-payment of annual fee |