CN104335197A - 用于存储器访问延迟训练的方法和装置 - Google Patents

用于存储器访问延迟训练的方法和装置 Download PDF

Info

Publication number
CN104335197A
CN104335197A CN201380027176.XA CN201380027176A CN104335197A CN 104335197 A CN104335197 A CN 104335197A CN 201380027176 A CN201380027176 A CN 201380027176A CN 104335197 A CN104335197 A CN 104335197A
Authority
CN
China
Prior art keywords
enable signal
data strobe
signal
strobe signal
training unit
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
Application number
CN201380027176.XA
Other languages
English (en)
Other versions
CN104335197B (zh
Inventor
格伦·A·戴斯
沃伦·R·安德森
安瓦·P·卡施恩
理查德·W·里维斯
爱德华多·普莱特
格拉德·R·塔尔伯特
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 CN104335197A publication Critical patent/CN104335197A/zh
Application granted granted Critical
Publication of CN104335197B publication Critical patent/CN104335197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dram (AREA)

Abstract

本发明公开了训练用于启用存储器子系统中的数据选通信号的延迟的各种方法和装置的实施方案。在一个实施方案中,一种系统包括被配置成接收数据选通信号的存储器控制器。所述存储器控制器包括训练电路。所述训练电路包括第一存储电路,其被耦合用于接收在数据输入端上的所述数据选通信号以及在时钟输入端上的使能信号;以及训练单元,其被配置成基于从所述第一触发器接收的输出信号调整所述使能信号的相位直到所述使能信号的断言与在所述数据选通信号中的前同步码指示相一致为止。

Description

用于存储器访问延迟训练的方法和装置
背景
1.技术领域
本公开涉及计算机系统,且更特别地说,涉及训练用于使计算机系统中的存储器的读取同步的信号的延迟时间。
2.相关技术描述
为了正确地从存储器读取数据,确定数据为有效时的时间是一个重要因素。为了优化计算机系统的性能,可能需要使该值最小化。为了确定可读取从存储器接收的数据的最佳时间,可执行训练程序。
对各种类型的双倍数据速率(DDR)的存储器,如DDR、DDR2和DDR3而言,在读取操作期间,数据选通信号可能与源自存储器的数据一起返回。数据选通信号为源同步时钟信号,其可用于使在存储器控制器中的接收器处的数据同步以及指示该数据为有效的。可在系统操作的开始进行数据选通信号的训练以确保正确的时序。
一种用于执行训练DDR数据选通的方法开始于在已知为种子的低操作频率上进行读取。随后,训练程序可进行一系列读取以确定启用数据选通信号以在已知为种子的第一频率上观察所返回的数据的最佳时间。可基于在计算机系统的设计阶段期间在实验室内进行的表征确定种子。可在不同的频率上进行训练直到确定启用数据选通信号的最佳时间为止。所产生的在原始频率上的经过训练的最佳时间可用于计算用于在下一个较高频率上进行后续训练的大致开始时间。所产生的第二个经过训练的值可用于计算用于在第三个较高频率上进行训练的大致开始时间,以此类推。使用在较低频率上的经过训练的时间以确定用于在较高频率上进行训练的开始时间的方法可重复多次直到已对用于正常操作中的所有频率进行训练为止。
发明概要
本发明公开了训练用于启用数据选通信号的延迟的各种方法和装置的实施方案。在一个实施方案中,一种系统包括存储器控制器,其被配置成接收数据选通信号。存储器控制器包括训练电路。训练电路包括第一存储电路,其被耦合用于接收在数据输入端上的数据选通信号以及在时钟输入端上的使能信号;以及训练单元,其被配置成基于从第一存储电路接收的输出信号调整使能信号的相位直到使能信号的断言与在数据选通信号中的前同步码指示相一致为止。
在一个实施方案中,一种方法包括调整使能信号相对于从存储器接收的数据选通信号的相位。可调整相位直到使能信号的断言与数据选通信号中的前同步码指示相一致为止。可通过调整延迟锁定环(DLL)的延迟而完成调整。该方法还包括将延迟的指示存储至寄存器中。
存储器子系统的一个实施方案包括被耦合至存储器控制器的存储器。存储器控制器被配置成将读取请求发送至存储器。存储器被配置成响应于读取请求将数据和数据选通信号提供至存储器控制器。存储器控制器包括训练单元,其被配置成调整使能信号相对于数据选通信号的相位直到使能信号的断言与在数据选通信号中的前同步码指示相一致为止,其中所述调整包括调整延迟锁定环(DLL)的延迟。存储器控制器还被配置成将延迟的指示存储至寄存器中。
附图简述
在阅读下列详细描述和参照附图后,本公开的其他方面将变得明显,其简要地描述如下。
图1为包括处理单元、显示器、外围总线、存储器和存储器控制器的系统的方框图。
图2为包括训练单元的存储器控制器的一个实施方案的方框图。
图3为示出用于训练使能信号相对于数据选通信号的延迟的方法的一个实施方案的时序图。
图4为示出用于训练使能信号相对于数据选通信号的延迟的方法的一个实施方案的流程图。
图5为计算机可读载体介质的一个实施方案的方框图。
虽然本发明很容易进行各种修改和替换,但仍在附图中以实例方式示出并在本文将详细地描述本发明的具体实施方案。然而,应理解的是附图及其描述并不是意欲将本发明限制于所公开的特别形式,而是与此相反,本发明涵盖落在所附的权利要求书限定的本发明的精神和范围中的所有修改、等同物和替代方案。
详细描述
图1为计算机系统10的一个实施方案的方框图。在所示的实施方案中,计算机系统10包括被耦合至存储器6的集成电路(IC)2。例如,计算机系统10可包括传统的计算机系统,如膝上型、桌上型或服务器型计算机,或各种其他类型的计算装置,如手持计算装置(例如,移动手机或智能手机)、数字电视、平板计算装置等。在所示的实施方案中,IC 2为具有一些处理器内核11的片上系统(SoC)。IC2的实施方案可包括中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、应用处理器、数字信号处理器(DSP)等。在各种实施方案中,处理器内核的数量可以少至一个或可多达适宜在IC晶粒上实施的数量。在多核实施方案中,处理器内核11可以是彼此相同的(即,同质多核),或一个或多个内核可以是彼此不同的(即,异构多核)。处理器内核11中的每一个可包括一个或多个执行单元、高速缓冲存储器、调度器、分支预测电路等。此外,处理器内核11中的每一个可被配置成断言对访问存储器6的请求,存储器6可充当计算机系统10的主存储器。这种请求可包括读取请求和/或写入请求且最初可通过北桥12从各自处理器内核11进行接收。对访问存储器6的请求可响应于某些指令的执行而进行发起且也可响应于预取操作而进行发起。
在所示实施方案中,北桥12可在IC 2的各种功能单元之间提供通信的路由和控制。相应地,北桥12可包括一个或多个交叉开关矩阵单元,其被配置成将不同的功能单元彼此耦合起来(例如,在存储器访问请求期间将处理器内核11中的一个耦合至存储器控制器18)。此外,北桥12可实施用于在IC 2的操作期间优化功耗与性能的各种电源管理功能。
在所示的实施方案中,I/O接口13也被耦合至北桥12。I/O接口13可充当计算机系统10中的南桥装置。一些不同类型的外围总线可被耦合至I/O接口13。在该特定实例中,总线类型包括外围组件互连(PCI)总线、扩展PCI(PCI-X)、千兆以太网(GBE)总线以及通用串行总线(USB)。然而,这些总线类型为示例性的且许多其他总线类型也可被耦合至I/O接口13。外围装置可被耦合至外围总线中的一些或全部。这种外围装置包括(但不限于)键盘、鼠标、打印机、扫描器、操纵杆或其他类型的游戏控制器、媒体录制装置、外部存储装置、网络接口卡等。可经相应的外围总线被耦合至I/O单元13的外围装置中的至少一些可断言使用直接存储器访问(DMA)的存储器访问请求。这些请求(其可包括读取和写入请求)可经I/O接口13被传送至北桥12。
在所示的实施方案中,IC 2包括被耦合至计算机系统10的显示器3的图形处理单元14。显示器3可以是平板LCD(液晶显示器)、等离子体显示器、CRT(阴极射线管)或任何其他合适的显示器类型。GPU 14可进行各种视频处理功能并将处理的信息提供至显示器3以作为视觉信息输出。
在所示的实施方案中,存储器控制器18被耦合至北桥12,且在一些实施方案中,其实际上可以是北桥12的组件。存储器控制器18可接收从北桥12传送的存储器请求。响应于读取请求(包括预取)而从存储器6存取的数据可通过存储器控制器18经北桥12被传送至请求的代理。响应于写入请求,存储器控制器18可接收要经北桥12而从请求的代理写入的请求和数据两者。如果多个存储器访问请求在给定的时间上是未决的,存储器控制器18则可在这些请求之间进行仲裁。
要注意的是存储器控制器18也包括用于支持将数据写入存储器6的功能,然而为了简单起见在此并未示出该功能。
在所示实施方案中,存储器6可在一个实施方案中作为多个存储器模块而实施。存储器模块中的每一个可包括被安装在其上面的一个或多个存储器装置(例如,存储器芯片)。在另一个实施方案中,存储器6可包括被安装在主板或其他载体上的一个或多个存储器装置,其中IC 2也可被安装在该主板或其他载体上。在又一个实施方案中,可在IC 2本身的晶粒上实施存储器6的至少一部分。具有上述各种实施的组合的实施方案也是可能的和考虑中的。存储器6可用于在操作期间实施与IC 2一起使用的随机存取存储器(RAM)。
在所示的实施方案中,存储器6被实现为一些不同类型的双倍数据速率(DDR)的动态RAM(DRAM)中的一个。这些类型的DDRDRAM包括原始DDR标准的DRAM、DDR2 DRAM和DDR3 DRAM。也可以考虑的是存储器6可被实施为未来标准的DDR DRAM。不管特定标准是什么,存储器6可响应于源自存储器控制器18的读取请求随所请求的数据一起返回数据选通信号和DQS。数据选通信号为用于使在存储器控制器18的接收器25中的数据同步的有效的源同步时钟信号。当没有从存储器6返回数据时,数据选通信号可以是闲置的或可以是三态的。在一些情况下,当未进行读取时,数据选通信号可以是三态的(即,处于高阻抗状态)。如果数据选通信号是在三态时进行采样的,那么它可能会导致不可预测的行为,包括错误读取和接收器25中延迟锁定环(DLL)的内部操作的损坏。然而,下面所讨论的方法和装置的实施方案可避免在数据选通信号为三态时对数据选通信号进行采样。
在所示的实施方案中,存储器控制器18包括调度器21,其被耦合以从北桥12接收读取命令。调度器21被配置成调度各种读取命令以传输至存储器6。在一些实施方案中,调度器21可被配置成对冲突的读取命令进行仲裁。读取命令可被转发至发射器23以传输至存储器6。此外,调度器21可将接收使能信号(‘Rx_Enable’)提供至接收器25以响应于读取命令而能从存储器6接收数据。在所示的实施方案中,接收器25可包括用于保持使能信号的断言与从存储器6进行的数据选通信号的传输保持一致的一些缓冲和定时电路。这可防止错误数据被接收器25所接收。在接收器25中的使能信号的断言的时序可由训练单元30进行的训练程序所确定。下面将更详细地讨论训练单元30和相应的训练程序。
现在转向图2,其为存储器控制器18的一个实施方案的方框图。要注意的是,这里并未示出存储器控制器18的组件中的所有,且因此其他组件(包括上面所讨论的那些)可被包括在各种实施方案中。
在所示的实施方案中,存储器控制器18包括接收器25,其被耦合用于接收从存储器6传送的数据。可基于从存储器6传送的数据选通信号而使数据同步至接收的数据选通信号(‘RDQS’)(接收的数据选通信号可是大致与从存储器6提供的数据选通信号相同的信号,然而由于缓冲器33的存在则对其分别简称)。接收的数据选通信号可以使用使能信号(‘Rx_enable’)经逻辑门34(在该实施方案中被实施为与门)而进行选通。当断言使能信号时,使接收的数据选通能够通往接收器25的延迟锁定环(DLL)251。DLL 251可进而将相应的时钟信号提供至触发器39(或一组触发器)以使输入数据同步。否则,当使能信号未被断言时,则不将接收的数据选通提供至DLL 251,从而防止在接收器25中接收无意的数据。当使能信号被去断言时,因此避免三态数据选通信号的采样,其可防止发生错误操作的可能性,如上所讨论的。因此,控制何时对使能信号进行断言和去断言可确保在适当的时间对数据选通信号进行采样以确保正确的操作,即,数据选通信号在高状态和低状态之间进行主动切换的时间,如在图3所示的图案中所示的。
使能信号是基于源自与提供至DLL 35的时钟信号(‘pclk’)相同的域的接收的使能信号(‘Rx_enable_p’)。在所示的实施方案中,将接收的使能信号提供至先入先出存储器(FIFO)29。FIFO 29的读取和写入指针被同步至pclk信号,其可通过存储器控制器18内部的锁相环(PLL)所生成并用于使其中的操作同步。FIFO 29的输出被耦合至存储电路(在该实施方案中为触发器32),其被耦合用于接收源自DLL 35的时钟信号。在所示的实施方案中,DLL 35被耦合用于接收pclk信号作为输入时钟且被配置成将pclk信号的延迟版本提供至触发器32。相应地,被提供至逻辑门34的Rx_enable信号可被同步至如DLL 35输出的pclk信号的延迟版本。
在读取期间,可在特定时间点对使能信号进行断言。如果太早断言使能信号从而允许接收的数据选通信号通往DLL 251,那么接收器25可能错误地接收数据。如果太晚断言使能信号,从存储器6返回的数据可能不会被接收器25所接收。因此,可进行训练以确定用于断言使能信号的最佳时间。在所示的实施方案中,存储器控制器18包括训练单元30,其包括触发器31、相位检测器37和训练控制逻辑38。
在所示的实施方案中,在触发器31的数据输入端上接收RDQS信号。触发器31的时钟输入端被耦合用于接收源自触发器32的使能信号输出。触发器31的输出被提供至相位检测器37。基于从触发器31接收的输出信号,相位检测器37可相对于接收的数据选通信号RDQS确定使能信号Rx_enable的相位。在这个实施方案中,FIFO 29可将逻辑高提供至触发器32的D输入端,从而响应于前同步码断言Rx_enable信号。相应地,它为产生前同步码的读取,且该前同步码可使触发器31对RDQS信号进行采样。
可在训练控制逻辑38的控制下进行使能信号的训练。为了进行训练,可对被提供至训练控制逻辑38的训练信号(“训练”)进行断言。训练控制逻辑38可在进行训练算法时指导相位检测器37。在确定要在训练算法中进行的各种步骤时,训练控制逻辑38可使用相位检测器37所提供的信息。
在所示实施方案中,相位检测器37的输出包括一个或多个信号,其使在控制寄存器36中存储的值增加或减少。控制寄存器38的输出可以是被提供至DLL 35的指示,其用于设置pclk信号的延迟以生成被提供至触发器32的时钟信号。相应地,相位检测器37可用于有效地控制在使能信号和接收的数据选通信号之间的相位关系。更特别地,在所示实施方案中,相位检测器37可通过增加在控制寄存器36中存储的值而增加通过DLL 32所提供的延迟。可通过减少在控制寄存器36中存储的值而通过相位检测器37减少通过DLL所提供的延迟。通常,改变通过DLL 32所提供的延迟可改变在接收的数据选通信号和使能信号之间的相位关系。在训练期间,相位检测器37可使DLL 32的延迟基于在该算法的一些部分期间通过触发器31提供的输出信号以及基于在该算法的其他部分期间源于训练控制逻辑38的直接控制而发生变化。
图3为示出可通过训练单元30进行的训练算法的一个实施方案的时序图。可通过断言至训练控制逻辑38的训练信号而发起训练。此外,在算法的步骤0中,可在进行训练程序时发起连续的读取,其读取是通过前同步码进行停顿的。在所示的实例中,通过在逻辑1和逻辑0之间的接收的数据选通信号的循环来指示读取。在所示实例中,前同步码是通过在逻辑1之间的一些(在这种情况下为三个)连续的逻辑0所指示的。通常,数据读取操作可能发生在接收有限数量的数据位的突发中,在这之后,数据选通信号可能是三态的(即,处于高阻抗状态中)。为了为每个读取突发做准备,每个读取操作可在以低电平驱动数据选通时的时间之前。该时间被称为前同步码。如果读取操作是背对背地发生的,那么输入的数据选通将显示看起来像时钟的波形且不生成前同步码。更特别地,突发可通过如图所示的前同步码进行停顿,其持续时间可足够的短以防数据选通信号变为三态的。否则,如果在读取之间的时间量大于前同步码的持续时间,数据选通信号则可以是通过存储器所实现的三态的。
算法的步骤1为定位接收的数据选通信号的任何上升沿(要注意的是,改为定位下降沿的实施方案也是可能的和考虑中的)。这可通过使使能信号循环、测量在使能信号和接收的数据选通信号(其也是循环的)之间的相位差并调整相位差直到其为零而实现。一旦已发现上升沿,训练控制逻辑38则指导相位检测器37以从DLL 36的延迟减去数据选通信号的一半单位间隔。如在本文所使用的,单位间隔可以是接收的数据选通信号的周期的一半。因此,如果数据选通信号具有50%的占空比,单位间隔则可以是占空比的等同物。
在相对于接收的数据选通信号按其一半的单位间隔调整使能信号的相位后,训练控制逻辑38可指导相位检测器37开始按一个单位间隔增量调整使能信号的相位直到发现前同步码的末端为止(步骤3)。在所示的实例中,通过增加进行相位调整。然而,也可使用减少而非增加以实现相同的目的。对于相位调整的每个增量,相位关系可被报告至训练控制逻辑38,其可保留和监控测量的历史。基于该历史,训练控制逻辑38可确定使能信号何时与接收的数据选通信号的第一个后前同步码循环的第一个下降沿相对齐。
一旦训练控制逻辑38已确定已检测到前同步码的末端,它则可指导相位检测器37调整相位检测器以减去延迟直到使能信号的相位发生在前同步码内为止(步骤4)。在一个实施方案中,使能信号可与前同步码的大致中点相对齐。一旦该调整已发生,相位检测器37则可将使能信号相对于接收的数据选通信号的相位的指示记录在控制寄存器36中。在该点上,训练完成。对于在任务(即正常)模式中的未来操作,使能信号的断言可在前同步码期间发生,该前同步码在源自存储器6的数据的一个或多个连续读取期间位于数据选通信号的第一个上升沿之前。
通过将使能信号的上升沿与在前同步码内的点相对齐,可提供更多的余量以容忍因温度和电压变化而导致的漂移。这进而可允许以更快的频率操作至存储器的接口。要进一步注意的是,上面讨论的训练算法不需要以不同的频率进行多次迭代,也不需要预表征的起动条件,其也被称为“种子值”。与以前的方法相比,这进而允许更可靠地并以更少的时间进行训练程序。
现在转向图4,其为用于训练使能信号相对于数据选通信号的延迟的方法的一个实施方案的流程图。虽然方法400可使用上面参照图1和2所述的硬件实施方案而进行,但要注意的是,能够进行该方法的其他硬件实施方案也是可能的和考虑中的。
方法400开始于通过进行多个系列的连续的存储器读取而发起训练,其读取是通过前同步码进行停顿的(方框405)。读取可被同步至数据选通信号,其包括前同步码(例如,在1和0的交替循环之间的多个连续的逻辑0)。读取可按一系列进行,其随后是前同步码,然后是另一系列等。
在训练程序期间,可通过调整使能信号的上升沿的相位直到与数据选通的上升沿具有零相位差为止而定位数据选通信号的边沿(在该特定情况下为上升沿)(方框410)。在这一点上使能信号要对齐的上升沿可以是数据选通信号的任何上升沿。
响应于定位数据选通信号的上升沿,可从使能信号的相位减去一个单位间隔的一半且随后可按一个单位间隔增量对相位进行后续调整(方框415)。调整可包括增加或减少。如果未发现前同步码的末端(方框420,否),则继续在方框415进行调整。一旦已发现前同步码的末端(方框420,是),则可进行最终的相位调整以将使能信号的断言置于位于前同步码内的一点上(方框425)。在一个实施方案中,最终的相位调整可将使能信号的断言置于在或接近前同步码的中点处。在完成最终的相位调整后,将相应延迟值的指示存储在控制寄存器中(方框430)。该值可用于在正常的操作期间设置延迟锁定环的延迟。
接下来转向图5,示出包括代表系统10的数据库505的计算机可访问存储介质500的方框图。一般来说,计算机可访问存储介质500可包括在使用期间可通过计算机访问以将指令和/或数据提供至计算机的任何非临时性存储介质。例如,计算机可访问存储介质500可包括存储介质,如磁或光介质,例如盘(固定的或可移动的)、带、CD-ROM或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或蓝光。存储介质可进一步地包括易失性或非易失性存储器介质,如RAM(例如,同步动态的RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、RambusDRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪速存储器、可经外围接口如通用串行总线(USB)接口进行访问的非易失性存储器(例如,闪速存储器)等。存储介质可包括微机电系统(MEMS),以及可经通信介质如网络和/或无线链接进行访问的存储介质。
一般地,在计算机可访问存储介质500上载有的代表系统10和/或其部分的数据505可以是能通过程序读取且直接或间接使用以制造包括系统10的硬件的数据库或其他数据结构。例如,数据库505可以是用高级设计语言(HDL)(如Verilog或VHDL)对硬件功能的行为级描述或寄存器传输级(RTL)描述。该描述可通过合成工具进行读取,且该合成工具可合成描述以根据合成库产生包括门列表的网表。该网表包括一组门,其也代表包括系统10的硬件的功能。随后可对网表进行安置和路由以产生描述要被应用至掩模的几何形状的数据组。接着,可在各半导体制造步骤中使用掩模以产生与系统10相应的一个或多个半导体电路。可替代地,根据需要,在计算机可访问存储介质500上的数据库505可以是网表(具有或不具有合成库)或数据组或图形数据系统(GDS)II数据。
虽然计算机可访问存储介质500载有系统10的代表,但是根据需要,其他实施方案可载有系统10的任何部分的代表,包括IC 2、任何代理组(例如,处理内核11、I/O接口13、北桥12等)或代理的部分。
虽然已参照特定实施方案描述了本发明,但将理解的是,这些实施方案为说明性的且本发明的范围并不仅限于此。所述实施方案的任何变化、修改、添加和改进均是可能的。这些变化、修改、添加和改进可落在如在下列权利要求中详细说明的本发明的范围中。

Claims (30)

1.一种系统,其包括:
存储器控制器,其被配置成接收数据选通信号,其中所述存储器控制器包括训练电路,所述训练电路包括:
第一存储电路,其被耦合用于接收在数据输入端上的所述数据选通信号以及在时钟输入端上的使能信号;以及
训练单元,其被配置成基于从所述第一存储电路接收的输出信号调整所述使能信号的相位直到所述使能信号的断言与在所述数据选通信号中的前同步码指示相一致为止。
2.根据权利要求1所述的系统,其还包括逻辑门,所述逻辑门具有被耦合用于接收所述数据选通信号的第一输入端以及被耦合用于接收所述使能信号的第二输入端,其中所述逻辑电路被配置成当断言所述使能信号时传递所述数据选通信号。
3.根据权利要求2所述的系统,其还包括第二存储电路,所述第二存储电路被耦合用于将所述使能信号提供至所述第一存储电路的所述时钟输入端且还被耦合用于将所述使能信号提供至所述逻辑电路的所述第二输入端,其中所述第一和第二存储电路为触发器。
4.根据权利要求3所述的系统,其还包括延迟锁定环(DLL),所述DLL被耦合用于接收输入时钟信号且被配置成基于将延迟提供至所述输入时钟信号而生成输出时钟信号。
5.根据权利要求4所述的系统,其中所述训练单元包括控制寄存器,其中所述DLL被配置成基于在所述控制寄存器中存储的值将延迟量提供至所述输入时钟信号。
6.根据权利要求5所述的系统,其中所述训练单元被配置成检测所述使能信号相对于所述数据选通信号的所述相位且被配置成更新在所述控制寄存器中存储的所述值。
7.根据权利要求1所述的系统,其中所述前同步码包括在所述数据选通信号中的多个连续的逻辑零,且其中所述训练单元被配置成调整所述使能信号的所述相位以在所述前同步码中断言所述使能信号。
8.根据权利要求7所述的系统,其中所述训练单元被配置成响应于所述训练程序的发起确定何时接收所述数据选通信号的上升沿。
9.根据权利要求8所述的系统,其中所述训练单元被配置成响应于确定何时接收所述数据选通信号的上升沿以:
递增地调整所述使能信号的所述相位直到所述使能信号的上升沿与所述前同步码的末端相一致为止;
针对调整的每个增量更新在控制寄存器中存储的值;以及
响应于确定所述使能信号的所述上升沿何时与所述前同步码的所述末端相一致而从所述值减去预定量。
10.根据权利要求1所述的系统,其还包括存储器,所述存储器被耦合用于将数据和所述数据选通信号传送至所述存储器控制器,其中所述存储器控制器被配置成使从所述存储器接收的数据与所述数据选通信号同步。
11.一种方法,其包括:
调整使能信号相对于从存储器接收的数据选通信号的相位直到所述使能信号的断言与在所述数据选通信号中的前同步码指示相一致为止,其中所述调整包括调整延迟锁定环(DLL)的延迟;以及
将所述延迟的指示存储至寄存器中。
12.根据权利要求11所述的方法,其还包括训练单元检测所述前同步码,其中检测所述前同步码包括检测在所述数据选通信号中的多个连续的逻辑零。
13.根据权利要求12所述的方法,其还包括所述训练单元调整所述使能信号的所述相位以在所述前同步码中对所述使能信号进行断言。
14.根据权利要求12所述的方法,其还包括所述训练单元响应于发起训练程序而检测所述数据选通信号的第一上升沿。
15.根据权利要求14所述的方法,其还包括所述训练单元递增地调整所述使能信号的所述相位直到与所述数据选通信号中发生在所述前同步码的末端的边沿相一致为止。
16.根据权利要求15所述的方法,其还包括所述训练单元将所述使能信号的所述相位从所述前同步码的所述末端调整至所述前同步码中,随后调整所述使能信号的所述相位以与所述前同步码的所述末端相一致。
17.根据权利要求11所述的方法,其还包括当断言所述使能信号时逻辑门将所述数据选通信号传递至在存储器控制器中的接收器且还包括当未断言所述使能信号时所述逻辑门阻止所述数据选通信号传递至所述接收器。
18.根据权利要求11所述的方法,其还包括:
第一存储电路接收在数据输入端上的所述数据选通信号以及在时钟输入端上的所述使能信号并生成相应的输出信号;
训练单元基于所述输出信号确定所述使能信号相对于所述数据选通信号的所述相位;
所述训练单元基于所述使能信号相对于所述数据选通信号的所述相位而促使所述DLL的所述延迟的调整;以及
第二存储电路从所述DLL接收时钟信号并断言与从所述DLL接收的所述时钟信号同步的所述使能信号。
19.根据权利要求11所述的方法,其还包括在所述调整期间从存储器进行多次连续的读取,其中所述数据选通信号在所述调整期间继续切换。
20.根据权利要求11所述的方法,其还包括:
存储器控制器将读取请求提供至存储器;
所述存储器响应于接收所述读取请求而将所述数据选通信号提供至所述存储器控制器;以及
在所述前同步码内出现的某个时间点上断言所述使能信号。
21.一种存储器子系统,其包括:
存储器;以及
存储器控制器,其被耦合至所述存储器,其中所述存储器控制器被配置成将读取请求发送至所述存储器,且其中所述存储器被配置成响应于所述读取请求将数据和数据选通信号提供至所述存储器控制器,其中所述存储器控制器包括训练单元,所述训练单元被配置成:
调整使能信号相对于所述数据选通信号的相位直到所述使能信号的断言与在所述数据选通信号中的前同步码指示相一致为止,其中所述调整包括调整延迟锁定环(DLL)的延迟;以及
将所述延迟的指示存储至寄存器中。
22.根据权利要求21所述的存储器子系统,其中所述训练单元包括第一触发器,所述第一触发器被耦合用于接收在其数据输入端上的所述数据选通以及在其时钟输入端上的所述使能信号。
23.根据权利要求22所述的存储器子系统,其还包括第二触发器,所述第二触发器被耦合用于将所述使能信号提供至所述第一触发器的所述时钟输入端以及逻辑门的第一输入端,其中所述逻辑门的第二输入端被耦合用于接收所述数据选通信号。
24.根据权利要求23所述的存储器子系统,其还包括延迟锁定环(DLL),其中所述DLL被配置成通过延迟输入时钟信号而提供输出时钟信号,其中所述第二触发器被耦合用于接收所述输出时钟信号,其中所述DLL被配置成使所述输入时钟信号延迟所述寄存器中存储的值所指示的量。
25.根据权利要求24所述的存储器子系统,其还包括训练单元,其中所述训练单元被配置成确定所述使能信号相对于所述数据选通信号的所述相位。
26.根据权利要求25所述的存储器子系统,其中所述训练单元被配置成递增地改变在所述寄存器中存储的所述值以促使所述使能信号相对于所述数据选通信号的相位的改变直到在所述前同步码中断言所述使能信号的所述相位为止。
27.一种包括经计算机系统上可执行的程序运行的数据结构的非临时性计算机可读介质,所述程序在所述数据结构上运行以进行进程中的一部分,从而制造包括通过所述数据结构描述的电路的集成电路,在所述数据结构中描述的所述电路包括:
存储器控制器,其中所述存储器控制器被配置成将读取请求发送至存储器,且其中所述存储器被配置成响应于所述读取请求将数据和数据选通信号提供至所述存储器控制器,其中所述存储器控制器包括训练单元,所述训练单元被配置成:
调整使能信号相对于所述数据选通信号的相位直到所述使能信号的断言与在所述数据选通信号中的前同步码指示相一致为止,其中所述调整包括调整延迟锁定环(DLL)的延迟;以及
将所述延迟的指示存储至寄存器中
28.根据权利要求27所述的计算机可读介质,其中所述训练单元包括第一触发器,所述第一触发器被耦合用于接收在其数据输入端上的所述数据选通以及在其时钟输入端上的所述使能信号。
29.根据权利要求28所述的计算机可读介质,其还包括:
第二触发器,其被耦合用于将所述使能信号提供至所述第一触发器的所述时钟输入端;
延迟锁定环(DLL),其中所述DLL被配置成通过延迟输入时钟信号而提供输出时钟信号,其中所述第二触发器被耦合用于接收所述输出时钟信号,其中所述DLL被配置成使所述输入时钟信号延迟所述寄存器中存储的值所指示的量;以及
训练单元,其中所述训练单元被配置成确定所述使能信号的所述相位并还被配置成促使所述使能信号的所述相位的调整。
30.根据权利要求27所述的计算机可读介质,其中所述数据结构包括下列数据类型中的一种或多种:
HDL(高级设计语言)数据;
RTL(寄存器传输级)数据;
图形数据系统(GDS)II数据。
CN201380027176.XA 2012-05-22 2013-05-22 用于存储器访问延迟训练的方法和装置 Active CN104335197B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/477,642 2012-05-22
US13/477,642 US8760946B2 (en) 2012-05-22 2012-05-22 Method and apparatus for memory access delay training
PCT/US2013/042281 WO2013177315A1 (en) 2012-05-22 2013-05-22 Method and apparatus for memory access delay training

Publications (2)

Publication Number Publication Date
CN104335197A true CN104335197A (zh) 2015-02-04
CN104335197B CN104335197B (zh) 2017-04-19

Family

ID=48614140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380027176.XA Active CN104335197B (zh) 2012-05-22 2013-05-22 用于存储器访问延迟训练的方法和装置

Country Status (7)

Country Link
US (1) US8760946B2 (zh)
EP (1) EP2852898B1 (zh)
JP (1) JP5819027B2 (zh)
KR (1) KR101549648B1 (zh)
CN (1) CN104335197B (zh)
IN (1) IN2014DN10277A (zh)
WO (1) WO2013177315A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108206043A (zh) * 2016-12-16 2018-06-26 爱思开海力士有限公司 数据存储装置及其操作方法
CN109076036A (zh) * 2016-06-24 2018-12-21 超威半导体公司 使用复制通道的信道训练
CN109313616A (zh) * 2016-06-23 2019-02-05 超威半导体公司 异步反馈训练
CN109313619A (zh) * 2016-06-06 2019-02-05 高通股份有限公司 功率和性能感知的存储器控制器投票机构
CN109686388A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 存储设备和存储设备的操作方法
CN111354390A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 存储器系统、存储器系统的操作方法和存储器控制器
WO2021190298A1 (zh) * 2020-03-25 2021-09-30 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
CN116501268A (zh) * 2023-06-28 2023-07-28 牛芯半导体(深圳)有限公司 应用于ddr phy的数据读取方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181452A1 (en) * 2012-12-26 2014-06-26 Nvidia Corporation Hardware command training for memory using read commands
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
US9378169B2 (en) 2012-12-31 2016-06-28 Nvidia Corporation Method and system for changing bus direction in memory systems
US9190129B2 (en) * 2013-05-31 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Continuous tuning of preamble release timing in a double data-rate memory device interface
US9478268B2 (en) * 2014-06-12 2016-10-25 Qualcomm Incorporated Distributed clock synchronization
KR20160147517A (ko) 2015-06-15 2016-12-23 에스케이하이닉스 주식회사 반도체시스템
KR102472123B1 (ko) 2016-03-16 2022-11-30 에스케이하이닉스 주식회사 반도체 시스템 및 그의 동작 방법
KR102536657B1 (ko) * 2016-07-12 2023-05-30 에스케이하이닉스 주식회사 반도체 장치 및 반도체 시스템
US10311236B2 (en) 2016-11-22 2019-06-04 Advanced Micro Devices, Inc. Secure system memory training
KR102649888B1 (ko) 2016-11-29 2024-03-22 에스케이하이닉스 주식회사 트레이닝 장치 및 이를 포함하는 반도체 시스템
US10545866B1 (en) * 2017-06-30 2020-01-28 Cadence Design Systems, Inc. Method and system for efficient re-determination of a data valid window
JP6890055B2 (ja) * 2017-06-30 2021-06-18 ルネサスエレクトロニクス株式会社 半導体装置
KR102273191B1 (ko) 2017-09-08 2021-07-06 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
CN108922570B (zh) * 2018-07-13 2020-11-13 豪威科技(上海)有限公司 读dqs信号的相位偏移检测方法、训练方法、电路及系统
JP2020046918A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 記憶装置及び制御方法
US10622982B1 (en) * 2019-01-10 2020-04-14 Western Digital Technologies, Inc. Measurement, calibration and tuning of memory bus duty cycle
KR20210136203A (ko) 2020-05-06 2021-11-17 삼성전자주식회사 저장 장치 및 그것의 리트레이닝 방법
JP2022146543A (ja) * 2021-03-22 2022-10-05 キオクシア株式会社 半導体記憶装置、メモリシステム、および方法
US11967960B2 (en) * 2021-07-30 2024-04-23 Advanced Micro Devices, Inc. Methods and apparatus for synchronizing data transfers across clock domains using heads-up indications
US20230206986A1 (en) * 2021-12-28 2023-06-29 Micron Technology, Inc. Low power clock injection during idle mode operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1574086A (zh) * 2003-05-30 2005-02-02 海力士半导体有限公司 数字延迟锁定回路及其控制方法
CN1664956A (zh) * 2004-03-05 2005-09-07 海力士半导体有限公司 半导体存储装置中的延迟锁定回路及其时钟锁定方法
US20060136769A1 (en) * 2004-12-21 2006-06-22 Kizer Jade M Interface circuit for strobe-based systems
WO2008079910A2 (en) * 2006-12-20 2008-07-03 Rambus Inc. Strobe acquisition and tracking
US7886174B2 (en) * 2007-06-27 2011-02-08 Intel Corporation Memory link training

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050375A1 (en) 2003-08-29 2005-03-03 Mark Novak Memory interface system and method
US7457175B1 (en) 2006-10-23 2008-11-25 3Par, Inc. Dual data rate memory strobe checker
US7924637B2 (en) 2008-03-31 2011-04-12 Advanced Micro Devices, Inc. Method for training dynamic random access memory (DRAM) controller timing delays
KR101040242B1 (ko) * 2008-10-13 2011-06-09 주식회사 하이닉스반도체 데이터 스트로브 신호 생성장치 및 이를 이용하는 반도체 메모리 장치
US8385144B2 (en) 2011-02-25 2013-02-26 Lsi Corporation Utilizing two algorithms to determine a delay value for training DDR3 memory
JP5733126B2 (ja) * 2011-09-15 2015-06-10 富士通セミコンダクター株式会社 メモリインタフェース回路及びタイミング調整方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1574086A (zh) * 2003-05-30 2005-02-02 海力士半导体有限公司 数字延迟锁定回路及其控制方法
CN1664956A (zh) * 2004-03-05 2005-09-07 海力士半导体有限公司 半导体存储装置中的延迟锁定回路及其时钟锁定方法
US20060136769A1 (en) * 2004-12-21 2006-06-22 Kizer Jade M Interface circuit for strobe-based systems
WO2008079910A2 (en) * 2006-12-20 2008-07-03 Rambus Inc. Strobe acquisition and tracking
US7886174B2 (en) * 2007-06-27 2011-02-08 Intel Corporation Memory link training

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313619A (zh) * 2016-06-06 2019-02-05 高通股份有限公司 功率和性能感知的存储器控制器投票机构
CN109313616A (zh) * 2016-06-23 2019-02-05 超威半导体公司 异步反馈训练
CN109313616B (zh) * 2016-06-23 2024-03-29 超威半导体公司 异步反馈训练
US11805026B2 (en) 2016-06-24 2023-10-31 Advanced Micro Devices, Inc. Channel training using a replica lane
CN109076036A (zh) * 2016-06-24 2018-12-21 超威半导体公司 使用复制通道的信道训练
CN109076036B (zh) * 2016-06-24 2022-01-28 超威半导体公司 一种用于传输数据的方法及系统
CN108206043A (zh) * 2016-12-16 2018-06-26 爱思开海力士有限公司 数据存储装置及其操作方法
CN109686388A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 存储设备和存储设备的操作方法
US11972836B2 (en) 2017-10-19 2024-04-30 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
CN109686388B (zh) * 2017-10-19 2023-11-03 三星电子株式会社 存储设备和存储设备的操作方法
CN111354390B (zh) * 2018-12-20 2023-08-15 爱思开海力士有限公司 存储器系统、存储器系统的操作方法和存储器控制器
CN111354390A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 存储器系统、存储器系统的操作方法和存储器控制器
WO2021190298A1 (zh) * 2020-03-25 2021-09-30 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
CN116501268A (zh) * 2023-06-28 2023-07-28 牛芯半导体(深圳)有限公司 应用于ddr phy的数据读取方法
CN116501268B (zh) * 2023-06-28 2024-02-27 牛芯半导体(深圳)有限公司 应用于ddr phy的数据读取方法

Also Published As

Publication number Publication date
EP2852898B1 (en) 2017-08-02
KR101549648B1 (ko) 2015-09-03
WO2013177315A1 (en) 2013-11-28
US20130315014A1 (en) 2013-11-28
KR20140147898A (ko) 2014-12-30
CN104335197B (zh) 2017-04-19
US8760946B2 (en) 2014-06-24
JP5819027B2 (ja) 2015-11-18
JP2015520902A (ja) 2015-07-23
IN2014DN10277A (zh) 2015-08-07
EP2852898A1 (en) 2015-04-01

Similar Documents

Publication Publication Date Title
CN104335197A (zh) 用于存储器访问延迟训练的方法和装置
EP3105761B1 (en) Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays
US20120284576A1 (en) Hardware stimulus engine for memory receive and transmit signals
US20140181824A1 (en) Qos inband upgrade
US11994930B2 (en) Optimizing power in a memory device
US20120290800A1 (en) Method and apparatus to reduce memory read latency
WO2016036572A2 (en) Delay circuits and related systems and methods
EP3283971B1 (en) Control circuits for generating output enable signals, and related systems and methods
US20240036748A1 (en) Dynamic random-access memory (dram) phase training update
JP2005518042A (ja) クロックの異なるバス間におけるデータ転送
US11860685B2 (en) Clock frequency divider circuit
US20230112432A1 (en) Dynamic setup and hold times adjustment for memories
US11567769B2 (en) Data pipeline circuit supporting increased data transfer interface frequency with reduced power consumption, and related methods
US20240105243A1 (en) Clock qualifier enhancement for external double data rate memory interfaces
US9170768B2 (en) Managing fast to slow links in a bus fabric
KR20240072272A (ko) 메모리에 대한 동적 셋업 및 홀드 시간 조정
CN118103908A (zh) 存储器的动态设置时间和保持时间调节
WO2023064729A1 (en) Dynamic setup and hold times adjustment for memories
JP2011150533A (ja) 集積回路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant