JP2023543479A - メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイス - Google Patents

メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイス Download PDF

Info

Publication number
JP2023543479A
JP2023543479A JP2023519763A JP2023519763A JP2023543479A JP 2023543479 A JP2023543479 A JP 2023543479A JP 2023519763 A JP2023519763 A JP 2023519763A JP 2023519763 A JP2023519763 A JP 2023519763A JP 2023543479 A JP2023543479 A JP 2023543479A
Authority
JP
Japan
Prior art keywords
dqs
transmission delay
memory controller
delay
memory
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
JP2023519763A
Other languages
English (en)
Inventor
年兵 李
永耀 李
忠建 ▲陳▼
仕彬 ▲許▼
良▲義▼ ▲張▼
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2023543479A publication Critical patent/JP2023543479A/ja
Pending legal-status Critical Current

Links

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
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1204Bit line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

本出願は、メモリ訓練方法、メモリコントローラ、プロセッサ、および電子デバイスを提供する。メモリコントローラは、N個のDQの伝送遅延を不変に保ち、DQSの伝送遅延を調整し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定する。メモリコントローラは、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間の目標DQS伝送遅延に調整する。本方法は、DQSとN個のDQとの間の相対タイミング位置を迅速にアライメントするのに役立つ。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、その結果、N個のDQは十分なタイミングマージンを保つ。

Description

関連出願の相互参照
本出願は、2020年9月30日に中国国家知識産権局に出願され、「MEMORY TRAINING METHOD、MEMORY CONTROLLER、PROCESSOR、AND ELECTRONIC DEVICE」と題された中国特許出願第202011063745.4号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
本出願は、メモリ訓練の技術分野に関し、特に、メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイスに関する。
現在の電子デバイスのほとんどでは、プロセッサとメモリチップとが一体化されている。メモリチップは、プロセッサの動作基盤であり、プロセッサは、メモリコントローラを介してメモリチップに結合され得る。メモリコントローラは、メモリバスを介してメモリチップに接続される。メモリバスは、少なくとも1つのデータ信号線と、タイミング信号線とを主に含む。各データ信号線は、データ信号(data signal)を伝送することができる。本出願では、データ信号を表すためにDQが使用される。DQは、DDRプロトコルとも呼ばれるダブルデータレート同期ダイナミックランダムアクセスメモリ(double data rate synchronous dynamic random access memory、DDR SDRAM)プロトコルで定義されるデータ信号の略称である。タイミング信号線は、データストローブ信号(data strobe signal)を伝送することができる。本出願では、データストローブ信号を表すためにDQSが使用される。DQSは、DDRプロトコルで定義されるデータストローブ信号の略称である。DQおよびDQSは両方とも周期信号であり、一般に同じ周期長を有する。
ほとんどの場合、プロセッサは、メモリコントローラを介してメモリチップからデータを読み出すか、またはメモリコントローラを介してメモリチップにデータを書き込むことができる。メモリコントローラによってメモリチップからデータを読み出すプロセスにおいて、メモリコントローラは、メモリチップに、メモリコントローラにDQおよびDQSを送信するように命令することができる。DQは、メモリチップ内のメモリコントローラによって読み出されるデータを運ぶことができる。DQSは、DQのレベル状態を識別するためにメモリコントローラをトリガすることができる。メモリコントローラは、DQ信号のレベル状態に従って、DQ信号で運ばれたデータをさらに取得することができる。
メモリコントローラによってメモリチップにデータを書き込むプロセスにおいて、メモリコントローラは、メモリチップにDQおよびDQSを送信することができる。DQは、メモリコントローラによってメモリチップに書き込まれるデータを運ぶことができる。DQSは、DQのレベル状態を識別するためにメモリチップをトリガすることができる。さらに、DQで運ばれたデータは、メモリチップに書き込まれ得る。
メモリコントローラによってメモリチップからデータを読み出す前述のプロセス、およびメモリコントローラによってメモリチップにデータを書き込むプロセスから、メモリコントローラとメモリチップとの間のデータ伝送の精度は、DQSとDQとの間の相対タイミング位置のアライメントに依存することが知見され得る。すなわち、DQがDQSに対して十分なタイミングマージンを有する場合にのみ、DQの受信端は比較的低いビットエラーレートを有することができ、それによってデータ伝送の精度を保証することができる。
ほとんどの電子デバイスは、電源が投入された後に、比較的複雑なメモリ訓練を含み、DQSとDQとの間の相対タイミング位置を正確にアライメントすることができるメモリ初期化を実施するが、DQSとDQとの間の相対タイミング位置は、電子デバイスが周囲温度および誤差蓄積などの客観的要因のためにメモリ初期化を完了した後も依然としてオフセットであり得る。しかしながら、メモリ訓練に使用される現在の方法は、過度に長時間を要する。したがって、メモリ訓練は、電子デバイスの作業プロセスにおいて繰り返し実施されることができない。電子デバイスの作業時間が長くなるにつれて、DQSとDQとの間の相対タイミング位置オフセットが徐々に増加される。電子デバイスにおいて、メモリコントローラとメモリチップとの間のデータ伝送のビットエラーレートが徐々に増加され、それに応じてデータ伝送の精度が低減される。
これを考慮して、本出願は、短時間で同じ方向に伝送されるDQSとDQとの間の相対タイミング位置をアライメントするのに役立つメモリ訓練方法を提供する。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、それによって、メモリコントローラとメモリチップとの間で伝送されるDQは、十分なタイミングマージンを保つ。
第1の態様によれば、本出願の実施形態は、メモリ訓練方法を提供する。本方法は、メモリコントローラに適用されてもよく、以下のステップを主に含む:メモリコントローラは、N個のDQの伝送遅延を不変に保ち、DQSの伝送遅延を調整し、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定する。メモリコントローラは、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間に位置される目標DQS伝送遅延に調整する。目標DQS伝送遅延と最大DQS伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上であり、かつ/または目標DQS伝送遅延と最小DQS伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上である。
本出願の実施形態では、N個のDQおよびDQSは、同じ方向に伝送される信号である。例えば、N個のDQおよびDQSはすべてメモリコントローラからメモリチップに伝送されるか、またはN個のDQおよびDQSはすべてメモリチップからメモリコントローラに伝送される。DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。メモリコントローラによるDQSの伝送遅延の調整は、DQSの位相を調整するために使用される。
具体的には、N個のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、N個のDQの受信端はメモリチップであり、DQSの伝送遅延はDQSの送信遅延である。メモリコントローラは、DQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間に位置される目標DQS送信遅延に調整する。目標DQS送信遅延と最大DQS送信遅延との間の間隔は、メモリチップに適用可能な目標ホールド時間以上であり、かつ/または目標DQS送信遅延と最小DQS送信遅延との間の間隔は、メモリチップに適用可能な目標セットアップ時間以上である。この場合、N個のDQによって運ばれたすべてのデータが正しく伝送されるという条件は、メモリチップがN個のDQのレベル状態を正しく識別することができ、それによって、N個のDQによって運ばれたすべてのデータがメモリチップに正しく書き込まれ得ることと理解され得る。
N個のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、N個のDQの受信端はメモリコントローラであり、DQSの伝送遅延はDQSの受信遅延である。メモリコントローラは、DQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間に位置される目標DQS受信遅延に調整する。目標DQS受信遅延と最大DQS受信遅延との間の間隔は、メモリコントローラに適用可能な目標ホールド時間以上であり、かつ/または目標DQS受信遅延と最小DQS受信遅延との間の間隔は、メモリコントローラに適用可能な目標セットアップ時間以上である。この場合、N個のDQによって運ばれたすべてのデータが正しく伝送されるという条件は、メモリコントローラがN個のDQのレベル状態を正しく識別することができ、それによって、N個のDQによって運ばれたデータが正しく読み出され得ることと理解され得る。
本出願の実施形態で提供される技術的解決策では、メモリコントローラは、DQSの伝送遅延を調整することによって、N個のDQとDQSとの間の相対タイミング位置をアライメントすることができ、それによって、N個のDQは十分なタイミングマージンを有する。DQSおよびN個のDQの伝送遅延がそれぞれ調整されるメモリ訓練解決策と比較して、本出願の実施形態では、伝送遅延調整ステップが低減され、それによってDQSとN個のDQとの間の相対タイミング位置を迅速にアライメントするのに役立つ。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、それによって、N個のDQは十分なタイミングマージンを保つ。
次に、メモリコントローラが最小DQS伝送遅延を決定する具体的な実装形態が例としてさらに説明される:
可能な実装形態では、メモリコントローラは、少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に低減することができる。この場合、DQSの伝送遅延は、最小DQS伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、最初に、DQSの伝送遅延を第1のDQS伝送遅延に低減することができる。第1のDQS伝送遅延と低減前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間である。少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、メモリコントローラは、DQSの伝送遅延を徐々に増加させ、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最小DQS伝送遅延であると決定する。
低減前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、メモリコントローラがこのメモリ訓練の実施を開始する前の、またはメモリコントローラがこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
受信端に適用可能な目標セットアップ時間は、通常、DQの半周期の持続時間未満であるので、低減されたDQSの伝送遅延と最小伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間を超えない。この実装形態により、DQSの伝送遅延を調整するステップは低減されることができ、最小DQS伝送遅延が迅速に決定され得る。
例えば、DQSの伝送遅延を徐々に増加させる場合、メモリコントローラは、毎回、第1のDQS調整振幅を増加させる様式でDQSの伝送遅延を徐々に増加させることができる。第1のDQS調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第1のDQS調整振幅は、メモリコントローラによるDQSの伝送遅延の最小調整振幅であり得る。
次に、メモリコントローラが最大DQS伝送遅延を決定する具体的な実装形態が例としてさらに説明される:
可能な実装形態では、メモリコントローラは、少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に増加させることができる。この場合、DQSの伝送遅延は、最大DQS伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、DQSの伝送遅延を第2のDQS伝送遅延に増加させることができる。第2のDQS伝送遅延と増加前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、メモリコントローラは、DQSの伝送遅延を徐々に低減し、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最大DQS伝送遅延であると決定する。
増加前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、メモリコントローラがこのメモリ訓練の実施を開始する前の、またはメモリコントローラがこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
この実装形態は、DQSの伝送遅延を調整する回数を低減するのに役立ち、よって、最大DQS伝送遅延を迅速に決定するのに役立つ。具体的な分析は、前述の最小DQS伝送遅延の決定と同様であり、詳細は、ここでは再度説明されない。
例えば、DQSの伝送遅延を徐々に低減する場合、メモリコントローラは、毎回、第2のDQS調整振幅を低減する様式でDQSの伝送遅延を徐々に低減することができる。第2のDQS調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第2のDQS調整振幅は、メモリコントローラによるDQSの伝送遅延の最小調整振幅であり得る。
第2の態様によれば、本出願の実施形態は、メモリ訓練方法を提供する。本方法は、メモリコントローラに適用されてもよく、以下のステップを主に含む:メモリコントローラは、DQSの伝送遅延を不変に保ち、第1のDQの伝送遅延を調整し、第1のDQによって運ばれたデータが正しく伝送された場合、第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定する。メモリコントローラは、第1のDQの伝送遅延を、最大DQ伝送遅延と最小DQ伝送遅延との間に位置される目標DQ伝送遅延に調整する。目標DQ伝送遅延と最大DQ伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上であり、かつ/または目標DQ伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上である。
本出願の実施形態では、DQSおよび第1のDQは、同じ方向に伝送される信号である。例えば、DQSおよび第1のDQは両方ともメモリコントローラからメモリチップに伝送されてもよく、または両方ともメモリチップからメモリコントローラに伝送されてもよい。DQSは、第1のDQのレベル状態を識別するために、第1のDQの受信端をトリガすることができる。メモリコントローラによる第1のDQの伝送遅延の調整は、第1のDQの位相を調整するために使用される。
具体的には、第1のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、第1のDQの受信端はメモリチップであり、第1のDQの伝送遅延は第1のDQの送信遅延であり、メモリコントローラは、第1のDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間に位置される目標DQ送信遅延に調整する。目標DQ送信遅延と最大DQ送信遅延との間の間隔は、メモリチップに適用可能な目標セットアップ時間以上であり、かつ/または目標DQ送信遅延と最小DQ送信遅延との間の間隔は、目標チップに適用可能な目標セットアップ時間以上である。
第1のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、第1のDQの受信端はメモリコントローラであり、第1のDQの伝送遅延は第1のDQの受信遅延であり、メモリコントローラは、第1のDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間に位置される目標DQ受信遅延に調整する。目標DQ受信遅延と最大DQ受信遅延との間の間隔は、メモリコントローラに適用可能な目標セットアップ時間以上であり、かつ/または目標DQ受信遅延と最小DQ受信遅延との間の間隔は、メモリコントローラに適用可能な目標ホールド時間以上である。
本出願の実施形態では、DQSはN個のDQに対応することができ、すなわち、DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。本出願の実施形態では、第1のDQはN個のDQ内に位置され、DQのうちの1つであり得る。この場合、第1のDQの伝送遅延を調整する前に、メモリコントローラは、ラウンドロビン規則に従って、N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQが第1のDQであるとさらに決定することができる。
本出願の実施形態では、メモリコントローラは、各メモリ訓練プロセスにおいて、1つのみのDQ(第1のDQ)の伝送遅延を調整する。DQSおよびDQの伝送遅延がそれぞれ調整されるメモリ訓練解決策と比較して、本出願の実施形態は、伝送遅延調整ステップを低減し、それによって、DQSと第1のDQとの間の相対タイミング位置を迅速にアライメントするのに役立つ。加えて、1つのDQの伝送遅延が調整されるとき、プロセッサは別のDQを介してメモリチップに依然としてアクセスすることができ、それによってプロセッサの動作に対するメモリ訓練の影響をさらに低減する。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、それによって、N個のDQは十分なタイミングマージンを保つ。
次に、制御回路が最小DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、メモリコントローラは、第1のDQによって運ばれたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に低減することができる。この場合、第1のDQの伝送遅延は、最小DQ伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、第1のDQの伝送遅延を第1のDQ伝送遅延に低減することができる。第1のDQ伝送遅延と低減前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQによって運ばれたデータの伝送にエラーが発生した場合、メモリコントローラは、第1のDQの伝送遅延を徐々に増加させ、第1のDQによって運ばれたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最小DQ伝送遅延であると決定することができる。
低減前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、メモリコントローラがこのメモリ訓練の実施を開始し得る前の、またはメモリコントローラがこのメモリ訓練の実施を開始し得るときの第1のDQの伝送遅延であってもよい。
受信端に適用可能な目標ホールド時間は、通常、第1のDQの半周期未満であり、第1のDQの低減された伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間を超えない。したがって、この実装形態は、第1のDQ伝送遅延を調整する回数を低減するのに役立ち、それによって、最小DQ伝送遅延が迅速に決定され得る。
例えば、第1のDQの伝送遅延を徐々に増加させる場合、メモリコントローラは、毎回、第1のDQ調整振幅を増加させる様式で第1のDQの伝送遅延を徐々に増加させることができる。第1のDQ調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第1のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅である。
次に、メモリコントローラが最大DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、メモリコントローラは、第1のDQによって運ばれたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に増加させることができる。この場合、第1のDQの伝送遅延は、最大DQ伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、第1のDQの伝送遅延を第2のDQ伝送遅延に増加させることができる。第2のDQ伝送遅延と増加前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路は、第1のDQの伝送遅延を徐々に低減するために遅延回路を制御し、第1のDQによって運ばれたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最大DQ伝送遅延であると決定することができる。
増加前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
この実装形態は、第1のDQ伝送遅延を調整する回数を低減するのに役立ち、よって、最大DQ伝送遅延を迅速に決定するのに役立つ。具体的な分析は、前述の最小DQ伝送遅延の決定と同様であり、詳細は、ここでは再度説明されない。
例えば、制御回路は、毎回、第2のDQ調整振幅を低減する様式で第1のDQの伝送遅延を徐々に低減するために、遅延回路を制御することができる。第2のDQ調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第2のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅であり得る。
第3の態様によれば、本出願の実施形態は、メモリコントローラを提供する。メモリコントローラは、第1の態様のいずれか1つで提供されるメモリ訓練方法を実装することができる。第3の態様における対応する解決策の技術的効果については、第1の態様における対応する解決策によって得られ得る技術的効果を参照することができる。繰り返しについては詳細に説明されない。例えば:
メモリコントローラは、遅延回路と制御回路とを主に含む。遅延回路は、制御回路の制御下でDQSの伝送遅延を生成することができる。遅延回路は、DQSの伝送遅延を調整し、DQSの位相を調整することができる。制御回路は、N個のDQの伝送遅延を不変に保つために遅延回路を制御し、DQSの伝送遅延を調整するために遅延回路を制御し、よって、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定することができる。前述のN個のDQおよびDQSはすべてメモリコントローラからメモリチップに伝送されるか、またはすべてメモリチップからメモリコントローラに伝送され、DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。N個のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、N個のDQの受信端はメモリチップである。N個のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、N個のDQの受信端はメモリコントローラである。制御回路は、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間に位置される目標DQS伝送遅延に調整するために、遅延回路を制御する。目標DQS伝送遅延と最大DQS伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上であり、かつ/または目標DQS伝送遅延と最小DQS伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上である。
具体的には、N個のDQおよびDQSはメモリコントローラから伝送されてもよく、DQSの伝送遅延はDQSの送信遅延である。この場合、制御回路は、DQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間に位置される目標DQS送信遅延に調整するために、遅延回路を制御することができる。
N個のDQおよびDQSは、同様に、メモリチップからメモリコントローラに伝送されてもよく、DQSの伝送遅延はDQSの受信遅延である。この場合、制御回路は、DQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間に位置される目標DQS受信遅延に調整するために、遅延回路を制御することができる。
次に、制御回路が最小DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に低減するために、遅延回路を制御することができる。この場合、DQSの伝送遅延は、最小DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、DQSの伝送遅延を第1のDQS伝送遅延に低減するために、遅延回路を制御することができる。第1のDQS伝送遅延と低減前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間である。少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路は、DQSの伝送遅延を徐々に増加させるために遅延回路を制御し、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最小DQS伝送遅延であると決定する。
低減前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に増加させるために遅延回路を制御する場合、制御回路は、毎回、第1のDQS調整振幅を増加させる様式でDQSの伝送遅延を徐々に増加させるために、遅延回路を制御することができる。第1のDQS調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第1のDQS調整振幅は、遅延回路によるDQSの伝送遅延の最小調整振幅であり得る。
次に、制御回路が最大DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に増加させるために、遅延回路を制御することができる。この場合、DQSの伝送遅延は、最大DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、DQSの伝送遅延を第2のDQS伝送遅延に増加させるために、遅延回路を制御することができる。第2のDQS伝送遅延と増加前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路は、DQSの伝送遅延を徐々に低減するために遅延回路を制御し、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最大DQS伝送遅延であると決定する。
増加前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に低減するために遅延回路を制御する場合、制御回路は、毎回、第2のDQS調整振幅を低減する様式でDQSの伝送遅延を徐々に低減するために、遅延回路を制御することができる。第2のDQS調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第2のDQS調整振幅は、遅延回路によるDQSの伝送遅延の最小調整振幅であり得る。
第4の態様によれば、本出願の実施形態は、メモリコントローラを提供する。メモリコントローラは、第2の態様のいずれか1つで提供されるメモリ訓練方法を実装することができる。第4の態様における対応する解決策の技術的効果については、第2の態様における対応する解決策によって得られ得る技術的効果を参照されたい。繰り返しについては詳細に説明されない。例えば:
遅延回路は、制御回路の制御下で第1のDQの伝送遅延を生成することができる。遅延回路は、第1のDQの伝送遅延を調整し、第1のDQの位相を調整することができる。制御回路は、DQSの伝送遅延を不変に保つために遅延回路を制御し、第1のDQの伝送遅延を調整するために遅延回路を制御し、よって、第1のDQによって運ばれたデータが正しく伝送された場合、第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定することができる。DQSおよび第1のDQは両方ともメモリコントローラからメモリチップに伝送されるか、または両方ともメモリチップからメモリコントローラに伝送される。DQSは、第1のDQのレベル状態を識別するために、第1のDQの受信端をトリガすることができる。第1のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、第1のDQの受信端はメモリチップである。第1のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、第1のDQの受信端はメモリコントローラである。制御回路は、第1のDQの伝送遅延を、最大DQ伝送遅延と最小DQ伝送遅延との間に位置される目標DQ伝送遅延に調整するために、遅延回路を制御する。目標DQ伝送遅延と最大DQ伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上であり、かつ/または目標DQ伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上である。
DQSはN個のDQに対応することができ、第1のDQはN個のDQ内に位置される。DQSの伝送遅延を不変に保つために遅延回路を制御し、第1のDQの伝送遅延を調整するために遅延回路を制御する前に、制御回路は、まず、ラウンドロビン規則に従って、N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQを第1のDQとして、さらに決定することができる。
具体的には、第1のDQおよびDQSの両方がメモリコントローラからメモリチップに送信されてもよく、第1のDQの伝送遅延は第1のDQの送信遅延である。この場合、制御回路は、第1のDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間に位置される目標DQ送信遅延に調整するために、遅延回路を制御することができる。
第1のDQおよびDQSは両方ともメモリチップからメモリコントローラに伝送されてもよく、第1のDQの伝送遅延は第1のDQの受信遅延である。この場合、制御回路は、第1のDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間に位置される目標DQ受信遅延に調整するために、遅延回路を制御することができる。
次に、制御回路が最小DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、第1のDQによって運ばれたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に低減するために、遅延回路を制御することができる。この場合、第1のDQの伝送遅延は、最小DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、第1のDQの伝送遅延を第1のDQ伝送遅延に低減するために、遅延回路を制御することができる。第1のDQ伝送遅延と低減前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路は、第1のDQの伝送遅延を徐々に増加させるために遅延回路を制御し、第1のDQによって運ばれたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最小DQ伝送遅延であると決定することができる。
低減前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、第1のDQの伝送遅延を徐々に増加させるために遅延回路を制御する場合、制御回路は、毎回、第1のDQ調整振幅を増加させる様式で第1のDQの伝送遅延を徐々に増加させるために、遅延回路を制御することができる。第1のDQ調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第1のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅である。
次に、制御回路が最大DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、第1のDQによって運ばれたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に増加させるために、遅延回路を制御することができる。この場合、第1のDQの伝送遅延は、最大DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、第1のDQの伝送遅延を第2のDQ伝送遅延に増加させるために、遅延回路を制御することができる。第2のDQ伝送遅延と増加前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路は、第1のDQの伝送遅延を徐々に低減するために遅延回路を制御し、第1のDQによって運ばれたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最大DQ伝送遅延であると決定することができる。
増加前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、制御回路は、毎回、第2のDQ調整振幅を低減する様式で第1のDQの伝送遅延を徐々に低減するために、遅延回路を制御することができる。第2のDQ調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第2のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅であり得る。
第5の態様によれば、本出願の実施形態は、メモリ訓練装置を提供する。メモリ訓練装置は、メモリコントローラであってもよい。例えば、メモリ訓練装置は、第1の態様または第2のいずれか1つで提供されるメモリ訓練方法を実施することができる。具体的には、第2の通信装置は、例えば、制御ユニットおよび遅延ユニットを含む、第2の態様の方法または可能な実装形態のいずれか1つを実施するように構成されたモジュールを含んでもよい。
例えば、遅延ユニットは、DQSまたは第1のDQに伝送遅延を適用することができ、制御ユニットは、遅延ユニットを制御することによって、DQSまたは第1のDQの伝送遅延を調整することができ、それによって、メモリ訓練装置は、第1の態様または第2の態様のいずれか1つで提供されるメモリ訓練方法を実施することができる。
第6の態様によれば、本出願の実施形態は、プロセッサをさらに提供する。プロセッサは、第3の態様または第4の態様のいずれか1つで提供されるプロセッサコアおよびメモリコントローラを含んでもよい。プロセッサコアは、メモリコントローラにトリガ命令を送信することができる。メモリコントローラは、トリガ命令を受信した後にメモリ訓練を実施することができる。
例えば、プロセッサコアは、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。過去の周囲温度は、プロセッサコアがトリガ命令を以前に送信した周囲温度である。
例えば、プロセッサコアは、現在の時点と、プロセッサコアがメモリ訓練を以前に完了した時点との間の時間間隔が時間閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。
第7の態様によれば、本出願は、電子デバイスを提供する。電子デバイスは、第6の態様で提供されるプロセッサと、メモリチップとを含んでもよい。メモリチップは、プロセッサ内のメモリコントローラに接続される。
第8の態様によれば、本出願の実施形態は、電子デバイスを提供する。電子デバイスは、プロセッサと、メモリチップと、メモリコントローラとを主に含む。メモリコントローラは、第3の態様または第4の態様のいずれか1つで提供されるメモリコントローラであってもよい。メモリコントローラは、プロセッサおよびメモリチップにそれぞれ接続される。
プロセッサは、メモリコントローラにトリガ命令を送信することができる。メモリコントローラは、トリガ命令を受信した後にメモリ訓練を実施することができる。
例えば、プロセッサは、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。過去の周囲温度は、プロセッサがトリガ命令を以前に送信した周囲温度である。
別の例では、プロセッサは、現在の時点とトリガ命令が以前に送信された時点との間の時間間隔が時間閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。
第9の態様によれば、本出願の実施形態は、コンピュータ可読記憶媒体をさらに提供する。コンピュータ可読記憶媒体は、命令を記憶する。命令がメモリコントローラ上で実行されると、メモリコントローラは、前述の態様の方法を実施することを可能にされる。
第10の態様によれば、本出願の実施形態は、命令を含むコンピュータプログラム製品をさらに提供する。命令がメモリコントローラ上で実行されると、メモリコントローラは、前述の態様の方法を実施することを可能にされる。
本出願のこれらの態様または他の態様は、以下の実施形態の説明においてより明確かつより分かりやすくなる。
電子デバイスの概略構造図である。 DQとDQSとの間の対応関係の概略図である。 メモリコントローラ内のレジスタの概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する別の概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 メモリ初期化手順の概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態による、DQとDQSとの間の相対タイミング位置関係の概略図である。 本出願の一実施形態による、最大DQS送信遅延および/または最小DQS送信遅延を決定するための方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQSの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQSの伝送遅延を調整する別の概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する別の概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態による最大DQ送信遅延および/または最小DQ送信遅延の概略図である。 本出願の一実施形態による、最大DQ送信遅延および/または最小DQ送信遅延を決定するための方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるラウンドロビン規則の概略図である。 本出願の一実施形態によるメモリコントローラの概略構造図である。 本出願の一実施形態による電子デバイスの概略構造図である。
本出願の目的、技術的解決策および利点をより明確にするために、以下で、添付の図面を参照して本出願を詳細にさらに説明する。方法実施形態における具体的な動作方法はまた、装置実施形態またはシステム実施形態に適用されてもよい。本出願の説明では、「少なくとも1つ」とは、1つ以上を意味し、「複数の」とは、2つ以上を意味することに留意されたい。これを考慮して、本発明の実施形態では、「複数の」はまた、「少なくとも2つ」として理解されてもよい。「および/または」という用語は、関連する対象物を説明するための関連関係を説明し、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の3つのケース:Aのみが存在する、AおよびBの両方が存在する、ならびにBのみが存在する、を表し得る。加えて、文字「/」は、一般に、関連する対象物間の「または」の関係を示す。加えて、本出願の説明では、「第1」および「第2」などの用語は、区別および説明のために使用されているにすぎず、相対的な重要性を示すまたは暗示するものとして理解されるべきではないし、または順序を示すまたは暗示するものとして理解されるべきではないことを理解されたい。
以下、本出願の実施形態における添付の図面を参照して、本出願の実施形態における技術的解決策を、明確かつ完全に説明する。
電子デバイス(例えば、スマートフォン、タブレット、基地局、スマートカメラ、自動運転車など)において、メモリチップは、プロセッサの動作基盤である。プロセッサは、メモリコントローラを介してメモリチップに結合され得る。メモリコントローラは、プロセッサに接続されてもよく、またはプロセッサの内部に一体化されてもよい。
例えば、図1に示されるように、電子デバイス10は、プロセッサ11と、メモリチップ12とを主に含む。プロセッサ11は、プロセッサコア112と、メモリコントローラ111とを含む。別の可能なアーキテクチャでは、メモリコントローラ111は、プロセッサ11の外部に位置される。詳細は、ここでは再度説明されない。
本出願の実施形態では、プロセッサコア112は、論理演算能力を有する論理回路であってもよい。メモリチップ12は、ダブルデータレート同期ダイナミックランダムアクセスメモリ(double data rate synchronous dynamic random access memory、DDR SDRAM)をサポートするメモリチップであってもよい。DDR SDRAMは、通常、略してDDRと呼ばれる。例えば、メモリチップ12は、低電力DDR5(low power DDR5、LPDDR5)などの第5世代DDR(5番目のDDR、DDR5)をサポートし得る。メモリチップ12はまた、低電力DDR4(low power DDR4、LPDDR4)などの第4世代DDR(4番目のDDR、DDR4)をサポートし得る。
図1では、メモリコントローラ111とメモリチップ12とは、メモリバス13を介して接続されている。メモリバス13は、複数のデータ信号線(図1のデータ信号線L0~L7)と、複数のタイミング信号線(図1のタイミング信号線LS-P、LS-N)とを主に含む。
データ信号線L0~データ信号線L7は、8個のデータ信号(data signal、DQ)を並列に伝送してもよい。例えば、データ信号線L0がDQ0を伝送し、データ信号線L1がDQ1を伝送し、...、データ信号線L7がDQ7を伝送してもよい。DQは周期デジタル信号であり、したがってデータを運ぶことができることを理解されたい。例えば、DQは、1ビットのデータを1周期で伝送することができる。1ビットデータ「0」はローレベル周期に伝送され、1ビットデータ「1」はハイレベル周期に伝送され得る。データ信号線L0~データ信号線L7は、8個のDQを並列に伝送することができるので、データ信号線L0~データ信号線L7は、1周期に合計8ビットのデータを伝送する。
DQはデジタル信号であるため、DQの受信端は、DQのレベル状態を正しく識別し、よってDQによって運ばれるデータを正しく取得するために、DQと同じ周期を有するクロック信号によってDQの周期を正しく区別することができることが理解されよう。これを考慮して、メモリバス13は、タイミング信号線LS-Nと、タイミング信号線LS-Pとをさらに含んでもよい。タイミング信号線LS-Nおよびタイミング信号線LS-Pは、データストローブ信号(data strobe signal、DQS)を伝送することができる。
具体的には、タイミング信号線LS-NはDQS-Nを伝送し、タイミング信号線LS-PはDQS-Pを伝送することができる。DQS-NおよびDQS-Pは反転信号である。例えば、DQS-NおよびDQS-Pは、図2に示されるようなものであり得る。DQSは、DQS-NおよびDQS-Pを含む。DQSは、DQに対応するクロック信号として使用されてもよく、DQと同じ送信端および受信端を有し、DQのレベル状態を識別するためにDQの受信端をトリガすることができる。説明を容易にするために、本出願の実施形態では、以下、DQS-NおよびDQS-Pを表すためにDQSが使用される。
メモリコントローラ111とメモリチップ12との間の双方向データ伝送は、メモリバス13を介して実装され得ることに留意されたい。例えば、メモリコントローラ111によってメモリチップ12にデータを書き込むプロセスにおいて、メモリコントローラ111はDQSおよびDQの送信端として使用されてもよく、メモリチップ12はDQSおよびDQの受信端として使用されてもよい。メモリコントローラ111によってメモリチップ12からデータを読み出すプロセスにおいて、メモリチップ12はDQSおよびDQの送信端として使用されてもよく、メモリコントローラ111はDQSおよびDQの受信端として使用されてもよい。
説明を容易にするために、本出願の実施形態では、書き込みDQおよび書き込みDQSは、メモリコントローラ111によってメモリチップ12にデータを書き込むプロセスにおいてメモリコントローラ111によってメモリチップ12に送信されるDQおよびDQSをそれぞれ示すために使用される。また、読み出しDQおよび読み出しDQSは、メモリコントローラ111によってメモリチップ12からデータを読み出すプロセスにおいてメモリチップ12によってメモリコントローラ111に送信されるDQおよびDQSをそれぞれ示すために使用される。書き込みDQは、書き込みDQ0~書き込みDQ7を含み、読み出しDQは、読み出しDQ0~読み出しDQ7を含む。
次に、データ書き込みおよびデータ読み出しの具体的な実装形態がそれぞれ説明される。
シナリオ1:メモリコントローラ111がメモリチップ12にデータを書き込む
プロセッサ11の実行プロセスにおいて、プロセッサコア112は、メモリチップ12にデータを書き込むためにメモリコントローラ111を呼び出すことができる。プロセッサコア112によってメモリコントローラ111を呼び出す具体的な実装形態については、従来技術を参照することができる。これは、本出願の実施形態では限定されない。
メモリコントローラ111は、プロセッサコア112によって呼び出された場合、メモリチップ12にデータを書き込むことができる。具体的には、メモリコントローラ111は、データ信号線L0~データ信号線L7を介して、書き込みDQ0~書き込みDQ7をメモリチップ12に送信することができる。メモリコントローラ111によって送信された書き込みDQ0~書き込みDQ7は、メモリチップ12に書き込まれる必要がある目標書き込みデータを運ぶことができる。
メモリコントローラ111によってメモリチップ12にデータを書き込むプロセスにおいて、メモリコントローラ111は、メモリチップ12に書き込みDQSをさらに送信する。書き込みDQSは、書き込みDQ0~書き込みDQ7のレベル状態を識別するためにメモリチップ12をトリガすることができる。メモリチップ12は、識別されたレベル状態に従って、書き込みDQ0~書き込みDQ7によって運ばれたデータをさらに記憶することができ、それによって、データがメモリチップ12に書き込まれる。
一般に、メモリコントローラ111によってメモリチップ12に送信される書き込みDQSにおいて、書き込みDQS-Nと書き込みDQS-Pとの交点(図2に示されるように)は、書き込みDQのレベル状態を識別するためにメモリチップ12をトリガするトリガ点として使用され得る。すなわち、メモリチップ12が、受信した書き込みDQSが交点にあると決定した場合、メモリチップ12は、書き込みDQ0~書き込みDQ7の現在のレベル状態を識別することができる。したがって、書き込みDQ0~書き込みDQ7で運ばれた目標書き込みデータは、メモリチップ12に書き込まれ得る。
例えば、目標書き込みデータが11010011である場合、データは、書き込みDQSの同じ交点に対応する。この場合、書き込みDQ0~書き込みDQ7によってそれぞれ運ばれるデータは、以下の通りである。書き込みDQ0は、「1」を運ぶことができる。書き込みDQ1は、「1」を運ぶことができる。書き込みDQ2は、「0」を運ぶことができる。書き込みDQ3は、「1」を運ぶことができる。書き込みDQ4は、「0」を運ぶことができる。書き込みDQ5は、「0」を運ぶことができる。書き込みDQ6は、「1」を運ぶことができる。書き込みDQ7は、「1」を運ぶことができる。
受信した書き込みDQSが交点にあると決定した場合、メモリチップ12は、受信した書き込みDQ0~DQ7のレベル状態を識別することができる。先の例では、書き込みDQ0はハイレベルにあり(「1」を運ぶ)、書き込みDQ1はハイレベルにあり(「1」を運ぶ)、書き込みDQ2はローレベルにあり(「0」を運ぶ)、書き込みDQ3はハイレベルにあり(「1」を運ぶ)、書き込みDQ4はローレベルにあり(「0」を運ぶ)、書き込みDQ5はローレベルにあり(「0」を運ぶ)、書き込みDQ6はハイレベルにあり(「1」を運ぶ)、書き込みDQ7はハイレベルにある(「1」を運ぶ)。メモリチップ12は、識別された書き込みDQ0~書き込みDQ7のレベル状態に従って、目標書き込みデータ「11010011」をさらに記憶することができる。
シナリオ2:メモリコントローラ111がメモリチップ12からデータを読み出す
プロセッサ11の実行プロセスにおいて、プロセッサコア112は、メモリチップ12からデータを読み出すためにメモリコントローラ111を呼び出すことができる。プロセッサコア112によってメモリコントローラ111を呼び出す具体的な実装形態については、従来技術を参照することができる。これは、本出願の実施形態では限定されない。
プロセッサコア112によって呼び出された場合、メモリコントローラ111は、メモリチップ12に、目標読み出しデータをメモリコントローラ111に送信するように命令することができ、それによって、メモリコントローラ111は、メモリチップ12内の目標読み出しデータを読み出す。メモリコントローラ111によってメモリチップ12に命令する具体的な実装形態については、従来技術を参照することができる。これは、本出願の実施形態では限定されない。
メモリチップ12は、データ信号線L0~データ信号線L7を介して、読み出しDQ0~読み出しDQ7をメモリコントローラ111に送信することができる。読み出しDQ0~読み出しDQ7は、メモリコントローラ111に送信される目標読み出しデータを運ぶことができる。メモリチップ12が、読み出しDQ0~読み出しDQ7をメモリコントローラ111に送信するとき、メモリチップ12は、読み出しDQSをメモリコントローラ111にさらに送信する。メモリコントローラ111は、読み出しDQSに従って読み出しDQ0~読み出しDQ7のレベル状態を識別し、識別されたレベル状態に従って、読み出しDQ0~読み出しDQ7で運ばれた目標読み出しデータを取得し、それによってメモリチップ12からのデータ読み出しを実装することができる。
読み出しDQSおよび読み出しDQ0~読み出しDQ7の具体的な実装形態は、前述のシナリオ1と同様であり、詳細は、ここでは再度説明されない。違いは、メモリチップ12によってメモリコントローラ111に送信される読み出しDQSにおいて、2つの隣接する交点間の中間点が、通常、読み出しDQ0~読み出しDQ7のレベル状態を識別するためにメモリコントローラ111をトリガするトリガ点として、使用され得ることにある。すなわち、メモリチップ12が、受信した読み出しDQSが中間点にあると決定した場合、メモリコントローラ111は、読み出しDQ0~読み出しDQ7で運ばれた目標読み出しデータを取得するために、読み出しDQ0~読み出しDQ7の現在のレベル状態を識別することができる。
前述のシナリオ1およびシナリオ2から、メモリコントローラ111とメモリチップ12との間でデータが正確に伝送され得るかどうかは、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置がアライメントされているかどうかと密接に関連していることが知見され得る。同じ方向に伝送されるDQSおよびDQは、読み出しDQSおよび読み出しDQとして理解されてもよく、または書き込みDQSおよび書き込みDQとして理解されてもよい。
図2に示される書き込みDQSおよび書き込みDQは、一例として使用される。書き込みDQは、書き込みDQ0~書き込みDQ7のいずれの書き込みDQであってもよい。書き込みDQSの交点はトリガ点として使用され、この交点に対応する書き込みDQの周期は、交点の発生の瞬間が入る一定の書き込みDQ周期を指す。図2から、書き込みDQSのトリガ点(交点)は、トリガ点に対応する書き込みDQの周期を2つの部分に分割することができることが知見され得る。トリガ点前の部分はセットアップ(setup)時間であり、トリガ点後の部分はホールド(hold)時間である。t1~t2間において、メモリチップ12よって受信された任意の書き込みDQ周期の開始時点がt1、書き込みDQ周期の終了時点がt2、メモリチップ12によって受信された書き込みDQSがトリガ点にある時点がt0であると仮定される。この場合、t1~t0間の期間はセットアップ時間と呼ばれ得、t0~t2間の期間はホールド時間と呼ばれ得る。
書き込みDQのセットアップ時間が十分である、そのことが、データ伝送の精度を向上させる。具体的には、書き込みDQはデジタル信号であるため、書き込みDQのレベル状態は通常、変化しており、すなわち、書き込みDQは任意の周期においてローレベルまたはハイレベルであり得る。書き込みDQのレベル状態は、2つの隣接する周期間で、不変のままであってもよく、ローレベルからハイレベルに変化してもよく、またはハイレベルからローレベルに変化してもよい。
一般に、ハイレベルおよびローレベルは、基準レベルに対するものである。すなわち、書き込みDQのレベルが基準レベルよりも低い場合、書き込みDQはローレベルにある。書き込みDQのレベルが基準レベルよりも高い場合、書き込みDQはハイレベルにある。書き込みDQのレベル状態が変化するとき、通常、レベル状態の切り替えを完了するのに一定の遅延を要する。例えば、図2に示されるように、書き込みDQのレベルは、tminおよびtmaxにおいて基準レベルに達する。
例えば、以前の周期のローレベルが現在の周期のハイレベルに切り替えられるとき、セットアップ時間が十分でない場合、例えばt0がt1~tmin間にある場合、t0での書き込みDQのレベルは、基準レベルよりも高いハイレベルに上昇しない可能性がある。この場合、メモリチップ12は、現在の周期において書き込みDQがローレベルにあると誤って考える可能性がある。すなわち、現在の周期の書き込みDQはハイレベルにあるべきであるが、t0がt1~tmin間に位置され、基準レベルより大きくなるようにレベルが増加されていないため、現在の周期の書き込みDQは、ローレベルとして誤って識別される。その結果、メモリチップ12に書き込まれたデータにエラーが発生する。したがって、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を確保するためには、セットアップ時間が十分に長いことを確保することが必要である。
書き込みDQのホールド時間が十分である、そのことが同様に、データ伝送の精度を向上させる。具体的には、メモリチップ12は、書き込みDQのレベル状態を一定の遅延で識別することができる。例えば、現在の周期のハイレベルが次の周期のローレベルに切り替えられるとき、メモリチップ12は、t0において、書き込みDQのレベル状態の識別を開始する。ホールド時間が十分でない場合、例えば、t0がtmax~t2間にある場合、メモリチップ12が書き込みDQのレベル状態を識別する周期(次の周期では書き込みDQはローレベルにある)の間に、書き込みDQのレベルが基準レベル未満となるように低減される可能性があり、それによって、メモリチップ12が現在の周期のレベルをローレベルとして誤って識別し、さらに、メモリチップ12に書き込まれたデータにエラーが発生する。すなわち、現在の周期の書き込みDQは、ハイレベルにあるべきであるが、t0がtmax~t2間にあり、レベルが基準レベル未満となるように低減されるため、ローレベルにあると誤って考えられる。したがって、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を確保するためには、ホールド時間が十分に長いことを確保することが必要である。
結論として、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を向上させるためには、書き込みDQのホールド時間およびセットアップ時間の両方が比較的長い持続時間を有する必要がある。書き込みDQのホールド時間またはセットアップ時間の持続時間が十分でない場合、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度が低減され、ビットエラーレートが増加される。
一般に、メモリコントローラ111およびメモリチップ12内の基準電圧は同じ大きさを有する。すなわち、図2に示される書き込みDQSおよび書き込みDQについて、tmin~t1間の時間間隔は、メモリチップ12に適用可能な最小セットアップ時間とも呼ばれ得る。tmax~t2間の時間間隔は、メモリチップt2に適用可能な最小ホールド時間とも呼ばれ得る。
書き込みDQの周期において、書き込みDQSのセットアップ時間とメモリチップ12に適用可能な最小セットアップ時間との差は、書き込みDQのセットアップ時間のタイミングマージンと呼ばれ得る。書き込みDQSのホールド時間とメモリチップ12に適用可能な最小ホールド時間との差は、書き込みDQのホールド時間のタイミングマージンと呼ばれ得る。書き込みDQのセットアップ時間のタイミングマージンおよびホールド時間のタイミングマージンの最小値は、書き込みDQのタイミングマージンと理解され得る。例えば、図2において、書き込みDQのタイミングマージンは、t0とtminとの差、およびtmaxとt0との差の最小値である。
一般に、tmin~tmax間の時間間隔は、メモリチップ12の性能によって主に決定される。すなわち、メモリコントローラ111にとって、書き込みDQのセットアップ時間のタイミングマージンとホールド時間のタイミングマージンとの和は調整不能である。この場合、メモリコントローラ111は、書き込みDQSの交点に対応する時点t0をtminとtmaxとの中間位置に、すなわち、書き込みDQのセットアップ時間のタイミングマージンがホールド時間のタイミングマージンと等しくなるように調整してもよい。したがって、書き込みDQのタイミングマージンは最大値に達する可能性があり、それによって、タイミングマージンの観点から、メモリコントローラ111によってメモリチップ12にデータを伝送する精度が最適化され得る。
同じ理由に基づいて、メモリコントローラ111によってメモリチップ12からデータを読み出すプロセスにおいて、メモリチップ12によってメモリコントローラ111に送信された読み出しDQのホールド時間と、メモリコントローラ111に適用可能な最小ホールド時間との差は、読み出しDQのホールド時間のタイミングマージンとも呼ばれ得る。読み出しDQのセットアップ時間とメモリコントローラ111に適用可能な最小セットアップ時間との差は、読み出しDQのセットアップ時間のタイミングマージンとも呼ばれ得る。読み出しDQのタイミングマージンは、読み出しDQのホールド時間のタイミングマージンおよび読み出しDQのセットアップ時間のタイミングマージンの最小値と理解され得る。メモリチップ12によってメモリコントローラ111に送信された読み出しDQにおけるホールド時間のタイミングマージンがセットアップ時間のタイミングマージンと等しい場合、読み出しDQのタイミングマージンは最大値に達し得る。この場合、タイミングマージンの観点から、メモリチップ12によってメモリコントローラ111にデータを伝送する精度が最適化され得る。
読み出しDQおよび書き込みDQのタイミングマージンを向上させて、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を向上させるためには、同じ方向に伝送されるDQおよびDQSの相対タイミング位置がアライメントされる必要が、通常、ある。このプロセスは、しばしばメモリ訓練とも呼ばれる。
本出願の実施形態では、「アライメント」は、同じ方向に伝送されるDQSおよびDQにおいて、DQのホールド時間のタイミングマージンがセットアップ時間のタイミングマージンと等しいこととして理解され得る。あるいは、DQのホールド時間のタイミングマージンがセットアップ時間のタイミングマージンと同様であり、それによって、DQは、比較的十分なホールド時間のタイミングマージンおよびセットアップ時間のタイミングマージンを有する。DQのセットアップ時間のタイミングマージンは受信端に適用可能な最小セットアップ時間に対するものであり、同様に、DQのホールド時間のタイミングマージンは受信端に適用可能な最小ホールド時間に対するものである。すなわち、「アライメント」は、DQのセットアップ時間が受信端に適用可能な最小セットアップ時間以上であること、およびDQのホールド時間が受信端に適用可能な最小ホールド時間以上であることを保証し得る。
受信端は、メモリチップ12であってもよく、またはメモリコントローラ111であってもよい。受信端に適用可能な最小セットアップ時間および最小ホールド時間は、受信端の構造および性能などの要因に従って取得され得る。DQのセットアップ時間が受信端に適用可能な最小セットアップ時間未満であるか、またはDQのホールド時間が受信端に適用可能な最小ホールド時間未満である場合、受信端はDQによって運ばれたデータを正しく識別することができない。
これを考慮して、電子デバイス10が電源投入されたとき、同じ方向に伝送されるDQとDQSとの間の相対タイミング位置をアライメントするために、プロセッサ11が電源投入された後の初期化中にメモリ訓練が実施され得る。現在、多くの複雑なメモリ訓練解決策が出現している。ほとんどのメモリ訓練解決策において、メモリコントローラ111は、DQおよびDQSの位相を変化させるために、DQおよびDQSの伝送遅延を主に調整し、それによって、同じ方向に伝送されるDQおよびDQSの相対タイミング位置をアライメントする。
具体的には、書き込みDQおよび書き込みDQSの伝送遅延は、送信遅延と呼ばれ得る。メモリコントローラ111は、書き込みDQおよび書き込みDQSの送信遅延を調整し、それによって、書き込みDQおよび書き込みDQSの相対タイミング位置をアライメントする。読み出しDQおよび読み出しDQSの伝送遅延は、受信遅延と呼ばれ得る。メモリコントローラ111は、読み出しDQおよび読み出しDQSの受信遅延を調整し、それによって、読み出しDQおよび読み出しDQSの相対タイミング位置をアライメントする。
書き込みDQおよび書き込みDQSの送信遅延は、メモリコントローラ111によって書き込みDQおよび書き込みDQSに適用される位相調整振幅として理解され得る。具体的には、複数の書き込みDQおよび書き込みDQにそれぞれ対応する複数の位相調整器が、メモリコントローラ111に配置されている。書き込みDQSを例にとると、メモリコントローラ111によって生成された書き込みDQS信号は、書き込みDQSに対応する位相調整器に入力されてもよく、位相調整器は、書き込みDQSに一定の遅延、すなわち書き込みDQSの送信遅延を適用することができる。よって、出力書き込みDQSの位相が変化され得る。書き込みDQSは、対応する位相調整器によって伝送された後にのみ、メモリコントローラ111から出力される。
同様に、読み出しDQおよび読み出しDQSの受信遅延は、メモリコントローラ111によって読み出しDQおよび読み出しDQSに適用される位相調整振幅として理解され得る。具体的には、複数の読み出しDQおよび読み出しDQにそれぞれ対応する複数の位相調整器が、メモリコントローラ111に配置されている。読み出しDQSを例にとると、メモリコントローラ111によって受信された読み出しDQS信号は、読み出しDQSに対応する位相調整器に入力されてもよく、位相調整器は、読み出しDQSに一定の遅延、すなわち読み出しDQSの受信遅延を適用することができる。よって、受信した読み出しDQSの位相が変化され得る。対応する位相調整器によって読み出しDQSが調整された後、メモリコントローラ111は、読み出しDQSのトリガ点をさらに識別し、識別されたトリガ点に従って読み出しDQのレベル状態を識別する。
例えば、図3に示されるメモリコントローラ111は、8個のレジスタ(register、REG)1、具体的には、REG1-0~REG1-7を主に含む。8個のREG1は、それぞれ、書き込みDQ0~書き込みDQ7の位相調整器と1対1に対応し(例えば、REG1-0は、DQ0の位相調整器に対応し、REG1-1は、DQ1の位相調整器に対応し、以下同様である)、書き込みDQ0~書き込みDQ7の送信遅延をそれぞれ調整するように構成され得る。例えば、各REG1は、第1の入力第1の出力(first input first output、FIFO)レジスタであってもよい。
各REG1は32ビットを含むことができ、32ビットは32種類の送信遅延に対応する。例えば、書き込みDQ1の送信遅延には32個の可能な値があり、値から32番目の値までは連続的に増加され、任意の2つの隣接する値の間隔は固定値である。固定値は、1ステップ(step)送信遅延とも呼ばれ得、1ステップ送信遅延は、書き込みDQの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅としても理解され得る。
REG1-1のビット1~ビット32は、それぞれ、書き込みDQ1の送信遅延の32個の可能な値と1対1に対応する。REG1-1に1ビットが追加されるたびに、対応する送信遅延は1ステップ(step)の送信遅延だけ増加される。例えば、メモリコントローラ111は、他の位置をローレベルに保ちながら、REG1-1内の任意の位置をハイレベルに設定し、それによって、書き込みDQ1の送信遅延は、ハイレベルの位置に対応する送信遅延に調整され得る。
メモリコントローラ111は、REG2をさらに含む。REG2は、書き込みDQSの位相調整器に対応し、書き込みDQSの送信遅延を調整するように構成され得る。メモリコントローラ111は、8個のREG3、具体的には、REG3-0~REG3-7をさらに含む。8個のREG3は、読み出しDQ0~読み出しDQ7の位相調整器にそれぞれ対応し、読み出しDQ0~読み出しDQ7の受信遅延をそれぞれ調整するように構成され得る。メモリコントローラ111は、REG4をさらに含む。REG4は、読み出しDQSの位相調整器に対応し、読み出しDQSの受信遅延を調整するように構成され得る。
メモリコントローラ111がREG1-0~REG1-7を介して書き込みDQ0~書き込みDQ7の送信遅延を調整する具体的な実装形態、メモリコントローラ111がREG2を介して書き込みDQSの送信遅延を調整する具体的な実装形態、およびメモリコントローラ111がREG3-0~REG3-7を介して読み出しDQ0~読み出しDQ7の受信遅延を調整する具体的な実装形態、およびメモリコントローラ111がREG4を介して読み出しDQSの受信遅延を調整する具体的な実装形態については、従来技術を参照することができることに留意されたい。詳細は、ここでは再度説明されない。
図3に示されるメモリコントローラ111に基づいて、現在一般的なタイミング位置アライメント様式は、以下のプロセスを主に含む:
1.書き込みDQと書き込みDQSとの相対タイミング位置がアライメントされる。
メモリコントローラ111が書き込みDQと書き込みDQSとの間の相対タイミング位置をアライメントするのを開始する前に、メモリコントローラ111は、書き込みDQ0~書き込みDQ7および書き込みDQSの送信遅延を、デフォルト送信遅延またはデフォルト送信遅延として最初に構成することができる。次いで、メモリコントローラ111は、デフォルト送信遅延に基づいてDQSおよび各DQの送信遅延を調整することができる。書き込みDQ0~書き込みDQ7および書き込みDQSのデフォルト送信遅延は、同じであってもよく、または異なっていてもよい。これは、本出願の実施形態では限定されない。
例えば、メモリコントローラ111によって構成されたデフォルト送信遅延に基づいて、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置が図4aに示され得る。書き込みDQ0~書き込みDQ7間、および書き込みDQSと複数の書き込みDQとの間の相対タイミング位置は、大きくオフセットされている。
図4aは、書き込みDQ0の1周期~書き込みDQ7の1周期と書き込みDQSの交点との間の相対タイミング位置のみを示していることに留意されたい。書き込みDQ0~書き込みDQ7における各書き込みDQは、書き込みDQSと同じ周期を有するため、メモリコントローラ111が書き込みDQ0~書き込みDQ7および書き込みDQSの送信遅延を変化させない場合、別の周期における書き込みDQSの交点と対応する書き込みDQ周期との間の相対タイミング位置が図4aに示され得る。すなわち、周期持続時間をTと仮定すると、t00+MTでの書き込みDQSの交点と対応する書き込みDQ周期との間の相対タイミング位置も図4aに示されることができ、Mは0以上の整数である。
図4aに示される、メモリコントローラ111によって送信された書き込みDQと書き込みDQSとの間のタイミング位置アライメントプロセスは、以下のステップを主に含む:
ステップ1:図4bに示されるように、メモリコントローラ111は、少なくとも1つの書き込みDQによって運ばれたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQSの送信遅延を徐々に低減する。この場合、メモリコントローラ111によって送信された書き込みDQSの交点は、図4bに示されるようなものであり得る。
図4bは、書き込みDQ0~書き込みDQ7の交点とメモリコントローラ111の書き込みDQSとの間の相対タイミング位置を示していることが理解されよう。メモリバス13の伝送エラーを考えずに、書き込みDQ0~書き込みDQ7の交点とメモリチップ12によって受信された書き込みDQSとの間の相対タイミング位置も図4bに示され得る。
メモリコントローラ111は、書き込みDQSの送信遅延を低減し、書き込みDQ0~書き込みDQ7の送信遅延を不変に保つため、メモリコントローラ111によって送信された書き込みDQ0~書き込みDQ7の任意の書き込みDQ周期の時点と比較して、任意の書き込みDQ周期に対応する書き込みDQSの交点をメモリコントローラ111が送信する時点が早められる。すなわち、図4bに示される時間増加方向に基づいて、書き込みDQSの交点は矢印で示された方向の反対方向に移動する。
図4bに示されるように、この場合、書き込みDQ3のセットアップ時間が短すぎ、それによって、メモリチップ12は、書き込みDQ3のレベル状態を正しく識別することができない。したがって、書き込みDQ3によって運ばれたデータは、メモリチップ12に正しく書き込まれ得ない。この時点で、メモリコントローラ111は、書き込みDQSの送信遅延の低減を停止してもよい。この場合、書き込みDQ3の現在のセットアップ時間は、メモリチップ12に適用可能な最小セットアップ時間とほぼ等しい(わずかに小さい)。
ステップ2:メモリコントローラ111は、現在の書き込みDQSの送信遅延を保つ(現在の書き込みDQSの送信遅延がD1であると仮定する)。メモリコントローラ111は、書き込みDQ0~書き込みDQ7によって運ばれたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQ0~書き込みDQ2および書き込みDQ4~書き込みDQ7の送信遅延を徐々に増加させる。この場合、任意の書き込みDQ周期と書き込みDQSとの間の相対タイミング位置は、図4cに示されるようなものであり得る。
具体的には、メモリコントローラ111が書き込みDQSの送信遅延を送信遅延D1に調整した後、いくつかの書き込みDQ(図4bの書き込みDQ0~書き込みDQ2および書き込みDQ4~書き込みDQ7)によって運ばれたデータは、メモリチップ12に正しく書き込まれ得る。
この場合、メモリコントローラ111は、書き込みDQ0~書き込みDQ2および書き込みDQ4~書き込みDQ7の送信遅延を連続的に増加させてもよい。書き込みDQ0を例にとると、メモリコントローラ111が書き込みDQSの送信遅延を不変に保つ場合、メモリコントローラ111は、書き込みDQ0の送信遅延を増加させ、それによって、メモリコントローラ111が書き込みDQSの交点を送信する時点と比較して、メモリコントローラ111が交点に対応する書き込みDQ0を送信する周期時点は遅延される。すなわち、図4cに示される時間増加方向に基づいて、メモリコントローラ111は、書き込みDQ0の送信遅延を増加させ、それによって、書き込みDQ0の1周期は、図中の矢印で示される方向に移動し得る。
メモリコントローラ111は、書き込みDQ0~書き込みDQ7によって運ばれたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQ0~書き込みDQ7の送信遅延を徐々に増加させることが知見され得る。書き込みDQ0~書き込みDQ7のセットアップ時間は、メモリチップ12に適用可能な最小セットアップ時間に等しいかそれに近い(わずかに小さい)。
ステップ2の後、書き込みDQ0と書き込みDQ7との間のタイミングアライメントが完了され、これは、書き込みDQ0と書き込みDQ7との間の位相同期がステップ2の後に保たれ得ることとしても理解され得る。
ステップ3:メモリコントローラ111は、ステップ2の後、書き込みDQ0~書き込みDQ7の送信遅延を保ち、書き込みDQSの送信遅延を増加させ続ける。図4dに示される時間増加方向に基づいて、メモリコントローラ111は、書き込みDQSの送信遅延を増加させる。このため、メモリコントローラ111が書き込みDQ0~書き込みDQ7を送信する任意のDQ周期の時点と比較して、メモリコントローラ111がDQ周期に対応するDQSの交点を送信する時点は遅延される。すなわち、メモリコントローラ111は、書き込みDQのタイミング位置に対して、書き込みDQSの送信遅延を増加させ、それによって、書き込みDQSの交点は、図4dの矢印で示される方向に移動する。
メモリコントローラ111は、少なくとも1つの書き込みDQによって運ばれたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQSの送信遅延を徐々に増加させる。この場合、少なくとも1つの書き込みDQのホールド時間が小さすぎ、メモリチップ12に適用可能な最小ホールド時間に近い(わずかに小さい)。
例えば、書き込みDQ0~書き込みDQ7の交点と書き込みDQSとの間の相対タイミング位置は、図4dに示されるようなものであり得る。一般に、書き込みDQ0~書き込みDQ7は、同じ書き込みDQ周期を有し、書き込みDQ0~書き込みDQ7は、位相同期している。したがって、書き込みDQ0~書き込みDQ7は、同じホールド時間を有し得る。すなわち、ステップ3で書き込みDQSの送信遅延が調整された後、書き込みDQ0~書き込みDQ7の各々のホールド時間は、メモリチップ12に適用可能な最小ホールド時間に近い(わずかに小さい)。
図4cの書き込みDQSの送信遅延をD1、図4dの書き込みDQSの送信遅延をD2と仮定すると、メモリコントローラ111は、ステップ3の後に書き込みDQSの送信遅延をD2から(D1+D2)/2に低減することができ、それによって、書き込みDQ0~書き込みDQ7のタイミングマージンは最大値に達する。この時点で、書き込みDQ0~書き込みDQ7と書き込みDQSとの相対タイミング位置のアライメントが完了される。
2.読み出しDQと読み出しDQSとの相対タイミング位置がアライメントされる。
書き込みDQおよび書き込みDQSと同様に、読み出しDQおよび読み出しDQSもアライメントされる必要がある。具体的な実装プロセスについては、書き込みDQと書き込みDQSとの間の相対タイミング位置のアライメントを参照することができる。違いは、読み出しDQと読み出しDQSとの間の相対タイミング位置をアライメントする具体的な実装プロセスにおいて、メモリチップ12が読み出しDQおよび読み出しDQSをメモリコントローラ111に送信し、DQSの中間点が、読み出しDQのレベル状態を識別するために、メモリコントローラ111をトリガすることにある。メモリコントローラ111は、読み出しDQおよび読み出しDQSの相対タイミング位置をメモリコントローラ111の側でアライメントするために、読み出しDQおよび読み出しDQSの受信遅延を調整する。詳細は、ここでは再度説明されない。
現在のタイミング位置アライメント様式の前述の説明から、現在のタイミング位置アライメント様式では、書き込みDQSの送信遅延および読み出しDQSの受信遅延が調整される必要があるだけでなく、書き込みDQ0~書き込みDQ7の送信遅延および読み出しDQ0~読み出しDQ7の受信遅延も調整する必要があることが知見され得る。この実装形態では、多くの調整ステップがあり、それによって、この実装形態は長時間を要する。
加えて、メモリコントローラ111が同じ方向に伝送されるDQSおよびDQに対してタイミング位置アライメントを実施するとき、プロセッサ11はメモリチップ12に正常にアクセスすることができないので、前述のメモリ訓練様式は、一般に、電子デバイス10の起動プロセスにおけるメモリ初期化にのみ適用され得る。電子デバイス10の作業プロセスにおいてメモリ再訓練が実施される場合、プロセッサ11が長時間にわたってメモリチップ12にアクセスすることができないため、電子デバイス10の作業が中断される。
しかしながら、電子デバイス10内のプロセッサ11の動作能力が向上されるにつれて、プロセッサコア112、メモリコントローラ111、およびメモリチップ12の作業周波数も徐々に増加される。メモリコントローラ111の作業周波数が増加されると、メモリコントローラ111によってメモリチップ12に送信される書き込みDQおよび書き込みDQSの周期は短縮される。この場合、書き込みDQおよび書き込みDQSの相対タイミング位置がアライメントされている場合でも、メモリチップ12のタイミングマージンが比較的小さく、結果として、メモリコントローラ111によってメモリチップ12に伝送されるデータのビットエラーレートは不安定である。
加えて、電子デバイス10の現在の作業シナリオがより複雑になり、ますます多くの環境要因がメモリコントローラ111およびメモリチップ12のタイミングマージンに影響を及ぼす可能性がある。例えば、人工知能(artificial intelligence、AI)チップ(プロセッサ11の具体的な実装形態のうちの1つ)は、通常、自動運転車(電子デバイス10の具体的な実装形態のうちの1つ)に配置される。AIチップは、自動運転中央制御プラットフォーム内のチップまたは自動車のスマートコックピット内のチップであってもよい。
自動運転車の作業環境は複雑で変化し得る。AIチップを支持する単一の基板の温度は、一般に-40℃~125℃の広い温度範囲内で変化する。比較的大きい温度変化範囲は、メモリコントローラ111およびメモリチップ12のタイミングマージンに対して比較的大きい影響を引き起こす。高周波数で作業するAIチップおよびAIチップに結合されたメモリチップの場合、十分なタイミングマージンがないという問題を引き起こす可能性が非常に高い。
これを考慮して、本出願の実施形態は、メモリ訓練方法を提供する。メモリ訓練方法では、メモリコントローラ111とメモリチップ12との間で同じ方向に伝送されるDQSおよびDQの相対タイミング位置は、迅速にアライメントされ得る。本出願の実施形態で提供されるメモリ訓練方法は、比較的短時間を要するため、電子デバイス10の作業プロセスにおいて繰り返し実施され得る。したがって、本出願の実施形態で提供されるメモリ訓練方法は、メモリ再訓練(retraining)方法とも呼ばれ得る。このようにして、電子デバイス10内のメモリコントローラ111およびメモリチップ12は、常に、比較的十分なタイミングマージンを保つことができ、それによって、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を向上させるのに役立つ。
例えば、電子デバイス10の作業プロセスにおいて、プロセッサコア112は、本出願の実施形態で提供されるメモリ訓練方法を実施するようにメモリコントローラ111をトリガするために、メモリコントローラ111にトリガ命令を送信することができる。本出願の実施形態で提供されるメモリ訓練方法を実施した後、メモリコントローラ111は、実行結果をプロセッサコア112にさらにフィードバックすることができ、それによって、メモリコントローラ111が同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを完了した後、プロセッサコア112は、メモリコントローラ111を介してメモリチップ12にアクセスし続けることができる。
可能な実装形態では、プロセッサコア112は、構成されたメモリ訓練周期に従って、メモリコントローラ111を、本出願の実施形態で提供されるメモリ訓練方法に定期的にトリガすることができる。
具体的には、プロセッサコア112は、メモリ訓練周期の間隔で、メモリコントローラ111にトリガ命令を送信することができる。例えば、タイミングは、電子デバイス10の起動プロセスにおいてメモリ初期化が完了された後に開始し、タイミング持続時間がメモリ訓練周期に達した後、トリガ命令がメモリコントローラ111に送信される。トリガ命令を受信した後、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法の実施を開始することができる。メモリコントローラ111が、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを完了した後、プロセッサコア112は、前述のタイミング持続時間をゼロにし、タイミングを継続することができる。タイミング持続時間が前述のメモリ訓練周期に再び達した後、プロセッサコア112は、メモリコントローラ111にトリガ命令を再び送信することができ、それによって、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を再び実施することができる。
別の可能な実装形態では、図1に示されるように、電子デバイス10は、温度センサ14をさらに含んでもよい。例えば、温度センサ14およびプロセッサ11および/またはメモリチップ12は、同じプリント回路基板(print circle board、PCB)上に支持され得る。プロセッサコア112は、温度センサ14を介して周囲温度を検出することができる。現在の周囲温度と過去の周囲温度との間の差が温度変動閾値を超えると決定した場合、プロセッサコア112は、メモリコントローラ111に前述のトリガ命令を送信することができ、それによって、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を実施する。前述の過去の周囲温度は、プロセッサコア112がトリガ命令を以前に送信した周囲温度として理解され得る。
具体的には、過去の周囲温度が25℃、温度変動閾値が±20℃であると仮定される。次いで、現在の周囲温度が45℃よりも高いか、または5℃よりも低い場合、プロセッサコア112は、メモリコントローラ111に前述のトリガ命令を送信する。例えば、現在の周囲温度が47℃であり、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超える。したがって、プロセッサコア112は、メモリコントローラ111にトリガ命令を送信することができる。また、メモリコントローラ111が同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを完了した後、プロセッサコア112は、過去の周囲温度を47℃にさらに更新することができる。
周囲温度変化に起因して、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置がオフセットされ得ることが理解されよう。よって、メモリコントローラ111およびメモリチップ12のタイミングマージンは、十分ではない。本出願の実施形態では、メモリ訓練方法を実施するためにメモリコントローラ111をトリガするためのトリガ条件として周囲温度が使用され、それによって、メモリコントローラ111は、周囲温度が大きく変化したときに、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置を較正することができ、それによって、メモリコントローラ111およびメモリチップ12が比較的十分なタイミングマージンを有することを維持するのに役立つ。
例えば、前述のプロセスにおいて、メモリコントローラ111は、図5に示される作業手順を主に実施する。図5に示されるように、方法は、以下のステップを主に含む。
S501:メモリコントローラ111が電源投入される。一般に、電子デバイス10またはプロセッサ11が電源投入された後、メモリコントローラ111が電源投入され得る。
S502:電源投入された後、メモリコントローラ111は、ZQ較正(ZQ calibration)を実施する。ZQ較正の具体的な実装形態については、従来技術を参照することができる。詳細は、ここでは再度説明されない。
S503:メモリコントローラ111は、メモリ訓練を完了するために、プロセッサコア112の呼び出しを受信する。可能な実装形態では、メモリコントローラ111は、図4a~図4eに示されるメモリ訓練方法などの現在の従来のメモリ訓練方法に従って、メモリ訓練を完了することができる。
これは、メモリコントローラ111が、S503を実施するときに初めて、メモリ訓練を実施するためである。この場合、同じ方向に伝送されるDQとDQSとの相対タイミング位置は、大きくオフセットされる。同じ方向に伝送されるDQとDQSとの間の相対タイミング位置を正確にアライメントするために、現在の従来のメモリ訓練方法が使用され得る。この場合、同じ方向に伝送されるDQとDQSとの相対タイミング位置がその後オフセットされる場合も、そのオフセット度合いは比較的小さく、その後のメモリ訓練時間を短縮するのに役立つ。
S504:メモリ訓練を完了した後、メモリコントローラ111は、正常に作業することができる。メモリコントローラ111は、プロセッサコア112の呼び出しに基づいて、メモリチップ12にアクセスすることができる。例えば、メモリコントローラ111は、メモリチップ12からデータを読み出してもよく、またはメモリチップ12にデータを書き込んでもよい。
S505:通常の作業プロセスでは、プロセッサコア112によって送信されたトリガ命令を受信した場合、メモリコントローラ111は、S506の実施を継続する。プロセッサコア112によって送信されたトリガ命令が受信されない場合、通常の作業が継続する。
S506:メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を実施する。
具体的には、メモリ訓練は、書き込みDQと書き込みDQSとの間の相対タイミング位置のアライメント(S5061)と、読み出しDQと読み出しDQSとの間の相対タイミング位置のアライメント(S5062)とを含む。S5061およびS5062の順序は、本出願の実施形態では厳密に限定されないことを理解されたい。メモリコントローラ111は、S5061を最初に実施し、次いでS5062を実施してもよく、またはS5062を最初に実施し、次いでS5061を実施してもよい。
本出願の実施形態で提供されるメモリ訓練方法では、メモリコントローラ111は、書き込みDQSまたは書き込みDQの送信遅延を調整することによって、書き込みDQと書き込みDQSとの間の相対タイミング位置のアライメントを完了することができ、読み出しDQSまたは読み出しDQの受信遅延を調整することによって、読み出しDQと読み出しDQSとの間の相対タイミング位置のアライメントを完了することができる。図4a~図4eに示されるメモリ訓練プロセスと比較して、本出願の実施形態では、短時間で同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを容易にするように、伝送遅延を調整するステップが大幅に低減され得る。
次に、本出願の実施形態で提供されるメモリ訓練方法が、以下の実施形態1~実施形態4を使用してさらに説明される。DQSおよび対応するN個のDQは同じ方向に伝送されることを理解されたい。Nは、1以上の整数である。DQSは、N個のDQのレベル状態を識別するために、受信端をトリガすることができる。例えば、図1に示されるメモリバス13に基づいて、DQSおよび対応する8個のDQ(すなわち、DQ0~DQ7)が同じ方向に伝送される。理解を容易にするために、同じ方向に伝送されるDQSおよびDQ0~DQ7は、本出願の実施形態において次に示される。
実施形態1:書き込みDQと書き込みDQSとの間の相対タイミング位置をアライメントするために、書き込みDQSの送信遅延が調整される。
例えば、図6に示されるように、実施形態1は、以下のステップを主に含む:
S601:メモリコントローラ111は、N個の書き込みDQによって運ばれたすべてのデータが正しく書き込まれた場合、書き込みDQSの最大DQS送信遅延および/または最小DQS送信遅延を決定する。
例えば、N個の書き込みDQが書き込みDQ0~書き込みDQ7を含むと仮定され、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置が図7に示される。書き込みDQSの過度に大きいかまたは小さい送信遅延のいずれかが、書き込みDQ0~書き込みDQ7によって運ばれたデータを書き込む際にエラーを引き起こす可能性があることが理解されよう。例えば、図7において、書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれた場合、書き込みDQSの送信遅延が最小DQS送信遅延であるとき、書き込みDQSの交点は、交点1aで表されることができ、交点1aに対応する直線は、交点1aが位置される時点を表す。書き込みDQSの送信遅延が最大DQS送信遅延であるとき、書き込みDQSの交点は、交点1bで表されることができ、交点1bに対応する直線は、交点1bが位置される時点を表す。その後の図において、交点(または中間点)に対応する直線はすべて、交点(または中間点)が位置される時点を表し得る。詳細は、ここでは再度説明されない。
書き込みDQSの送信遅延が最小DQS送信遅延未満である場合、1つ以上の書き込みDQのセットアップ時間が十分ではなく、よって、データ書き込みエラーが発生する。書き込みDQSの送信遅延が最大DQS送信遅延よりも大きい場合、1つ以上の書き込みDQのホールド時間が十分ではなく、よって、データ書き込みエラーが同様に発生する。
S602:メモリコントローラ111は、N個の書き込みDQの送信遅延を保ち、書き込みDQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間に位置される目標DQS送信遅延に調整する。目標DQS送信遅延と最大DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1以上である。目標DQS送信遅延と最小DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1以上である。
メモリチップ12に適用可能な目標ホールド時間H1は、メモリチップ12に適用可能な最小ホールド時間と等しくてもよく、またはメモリチップ12に適用可能な最小ホールド時間よりも大きくてもよい。メモリチップ12に適用可能な目標セットアップ時間S1は、メモリチップ12に適用可能な最小セットアップ時間と等しくてもよく、またはメモリチップ12に適用可能な最小セットアップ時間よりも大きくてもよい。目標ホールド時間H1および目標セットアップ時間S1の具体的な実装形態は、メモリコントローラ111とメモリチップ12との間のデータ伝送のための性能要件に基づいて決定され得る。これは、本出願の実施形態では限定されない。
S601では、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延および最小DQS送信遅延のうちの1つまたは2つを決定するため、S602の目標DQS送信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、書き込みDQSの最大DQS送信遅延を決定するが、書き込みDQSの最小DQS送信遅延を決定しない。この場合、目標DQS送信遅延と最大DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1であり得る。
本出願の実施形態では、メモリ訓練は、メモリ初期化、すなわち、メモリ再訓練(retraining)の後に実施され得る。したがって、書き込みDQ間のオフセットは、通常、比較的小さい。すなわち、最大DQS送信遅延と最小DQS送信遅延との間の時間間隔は比較的大きく、書き込みDQの周期持続時間に近い。加えて、書き込みDQの周期は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりもはるかに大きいため、目標DQS送信遅延と最大DQS送信遅延との間の間隔がメモリチップ12に適用可能な目標ホールド時間H1である場合、目標DQS送信遅延と最小DQS送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きい。
ケース2:メモリコントローラ111は、書き込みDQSの最小DQS送信遅延を決定するが、書き込みDQSの最大DQS送信遅延を決定しない。この場合、目標DQS送信遅延と最小DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1であり得る。
上述したように、最大DQS送信遅延と最小DQS送信遅延との間の時間間隔は比較的大きく、書き込みDQの周期持続時間に近い。加えて、書き込みDQの周期は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりもはるかに大きいため、目標DQS送信遅延と最小DQS送信遅延との間の間隔がメモリチップ12に適用可能な目標セットアップ時間S1である場合、目標DQS送信遅延と最大DQS送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりも大きい。
ケース3:メモリコントローラ111は、書き込みDQSの最小DQS送信遅延および最大DQS送信遅延を決定する。この場合、目標DQS送信遅延と最大DQS送信遅延との間の間隔が、メモリチップ12に適用可能な目標ホールド時間H1であり得るか、または目標DQS送信遅延と最小DQS送信遅延との間の間隔が、メモリチップ12に適用可能な目標セットアップ時間S1であり得るか、または目標DQS送信遅延が、最大DQS送信遅延と最小DQS送信遅延との間の中間位置に位置され得る。
上述したように、最大DQS送信遅延と最小DQS送信遅延との間の時間間隔は比較的大きく、書き込みDQの周期持続時間に近い。目標DQS送信遅延は、最大DQS送信遅延と最小DQS送信遅延との間の中間位置に位置され、それによって、目標DQS送信遅延と最小DQS送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きくなり得、目標DQS送信遅延と最大DQS送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標ホールド時間H1よりも大きくなり得る。
本出願の実施形態では、メモリコントローラ111は、書き込みDQSの送信遅延を調整することによって、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置をアライメントすることができる。図4a~図4eに示されるメモリ訓練プロセスと比較して、本出願の実施形態では、メモリコントローラ111は、書き込みDQ0~書き込みDQ7の送信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
メモリコントローラ111がS601を実施するとき、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延および最小DQS送信遅延をそれぞれ決定することができることに留意されたい。書き込みDQSの初期DQS送信遅延と最小DQS送信遅延との間のオフセットが大きい場合、それは、各書き込みDQが初期DQS送信遅延下で十分なセットアップ時間を有することを示す。この場合、最大DQS送信遅延のみが決定されてもよい。同様に、書き込みDQSの初期DQS送信遅延と最大DQS送信遅延との間のオフセットが比較的大きい場合、それは、現在の各書き込みDQが十分なホールド時間を有することを示す。この場合、最小DQS送信遅延のみが決定されてもよい。
書き込みDQSの初期DQS送信遅延は、メモリコントローラ111がこのメモリ訓練の実施を開始する前の、またはメモリコントローラがこのメモリ訓練の実施を開始するときの書き込みDQSの送信遅延として理解され得る。書き込みDQSの初期DQS送信遅延はまた、メモリコントローラ111が前述のトリガ命令を受信する前の書き込みDQSの送信遅延として理解されてもよい。例えば、書き込みDQSの送信遅延は、初期DQS送信遅延であり、書き込みDQSの交点は、図7の交点0として示され得る。
可能な実装形態では、メモリコントローラ111は、少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生するまで、書き込みDQSの送信遅延を、初期DQS送信遅延から開始して徐々に低減することができる。この場合、書き込みDQSの送信遅延は、最小DQS送信遅延として使用され得る。
メモリコントローラ111は、さらに、少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生するまで、書き込みDQSの送信遅延を初期DQS送信遅延から開始して徐々に増加させることができる。この場合、書き込みDQSの送信遅延は、最大DQS送信遅延として使用され得る。
別の可能な実装形態では、メモリコントローラ111は、図8に示される方法を使用して、最大DQS送信遅延および/または最小DQS送信遅延をさらに決定することができる。方法は、以下のステップを主に含む:
S801:メモリコントローラ111は、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って書き込みDQSの送信遅延を低減する。すなわち、メモリコントローラ111は、書き込みDQSの送信遅延を初期DQS送信遅延から第1のDQS送信遅延に低減することができる。第1のDQS送信遅延と初期DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間である。
例えば、図9aに示されるように、書き込みDQSの送信遅延が初期DQS送信遅延である場合、書き込みDQSの交点は、図9aにおいて交点0として示され得る。メモリコントローラ111は、書き込みDQ0~書き込みDQ7の送信遅延を保ち、それによって、各書き込みDQの周期がメモリチップ12に伝送される時刻が安定する。メモリコントローラ111は、書き込みDQSの送信遅延を低減する。書き込みDQSの交点に対応する書き込みDQの周期と比較して、書き込みDQSの交点がメモリチップ12に伝送される時刻が早められる。すなわち、図9aに示されるように、書き込みDQSの交点は、図9aの矢印で示される方向とは反対方向に移動する。
書き込みDQSの送信遅延が第1のDQS送信遅延である場合、書き込みDQSの交点は、図9aにおいて交点1として示され得る。交点1と交点0との間の時間間隔は、第1のDQS送信遅延と初期DQS送信遅延との間の時間間隔であり、メモリチップ12に適用可能な目標セットアップ時間S1である。
S802:少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S803の実施を継続する。書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれた場合、メモリコントローラ111は、S805の実施を継続する。
書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれた場合、それは、初期DQS送信遅延と最小DQS送信遅延との間の時間間隔が比較的大きいことを示し、書き込みDQ0~書き込みDQ7のセットアップ時間が初期DQS送信遅延下で十分であり、較正は必要とされないことが理解されよう。したがって、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延を決定するために、最小DQS送信遅延を決定することなくS805の実施を継続し、書き込みDQSの送信遅延を増加させることができる。
少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、それは、初期DQS送信遅延下での少なくとも1つの書き込みDQのセットアップ時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。例えば、書き込みDQSの送信遅延が第1のDQS送信遅延であると仮定すると、書き込みDQSの交点は、図9aにおいて交点1として示され得る。図9aから、書き込みDQ3および書き込みDQ6のセットアップ時間は十分でないことが知見され得る。この場合、書き込みDQ3および書き込みDQ6によって運ばれたデータの書き込みにエラーが発生し、メモリコントローラ111は、S803の実施を継続する。
S803:メモリコントローラ111は、第1の調整振幅に従って書き込みDQSの送信遅延を増加させる。第1の調整振幅は、メモリチップ12に適用可能な目標セットアップ時間S1未満であることに留意されたい。一般に、第1の調整振幅は、書き込みDQSの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅であり得、最小調整振幅は、ステップ(step)とも呼ばれ得る。
S804:少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S803の実施を継続するために戻る。
メモリコントローラ111は、S803およびS804を1回以上実施し、書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれるまで、書き込みDQSの送信遅延を徐々に増加させる。この場合、書き込みDQSの送信遅延は最小DQS送信遅延として使用されてもよく、書き込みDQSの交点は、図7の交点1aとして示され得る。
電子デバイス10の作業プロセスでは、書き込みDQSの交点が対応する書き込みDQ周期の中間位置からオフセットされている場合でも、書き込みDQSの交点は対応する書き込みDQ周期の中間位置の近くに依然として位置されることが理解されよう。この場合、メモリコントローラ111が書き込みDQSの送信遅延を初期DQS送信遅延から徐々に低減する場合、メモリコントローラ111は、書き込みDQSの送信遅延を複数回調整し、書き込みDQ0~書き込みDQ7によって運ばれたデータが正しく書き込まれたかどうかをチェックすることによって、最小DQS送信遅延を決定することができる。
本出願の実施形態で提供されるS801~S804では、メモリチップ12に適用可能な目標セットアップ時間S1は、通常、書き込みDQの半周期の持続時間未満である。しかしながら、第1のDQS送信遅延から最小DQS送信遅延までの調整振幅は、メモリチップ12に適用可能な目標セットアップ時間S1を超えない。したがって、S803は比較的少ない回数実施され、よって最小DQS送信遅延が迅速に決定され得る。
S805:メモリコントローラ111は、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って書き込みDQSの送信遅延を増加させる。すなわち、メモリコントローラ111は、書き込みDQSの送信遅延を初期DQS送信遅延から第2のDQS送信遅延に増加させることができる。第2のDQS送信遅延と初期DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1である。
例えば、図9bに示されるように、書き込みDQSの送信遅延が初期DQS送信遅延である場合、書き込みDQSの交点は、図9bにおいて交点0として示され得る。メモリコントローラ111は、書き込みDQ0~書き込みDQ7の送信遅延を保ち、それによって、各書き込みDQの周期がメモリチップ12に伝送される時刻が安定する。メモリコントローラ111は、書き込みDQSの送信遅延を増加させる。書き込みDQSの交点に対応する書き込みDQの周期と比較して、書き込みDQSの交点がメモリチップ12に伝送される時刻が遅延される。すなわち、図9bに示されるように、書き込みDQSの交点は、図9bの矢印で示される方向に移動する。
書き込みDQSの送信遅延が第2のDQS送信遅延である場合、書き込みDQSの交点は、図9bにおいて交点2として示され得る。交点2と交点0との間の時間間隔は、第2のDQS送信遅延と初期DQS送信遅延との間の時間間隔であり、メモリチップ12に適用可能な目標ホールド時間H1である。
S806:少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S807の実施を継続する。書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれた場合、メモリコントローラ111は、S808の実施を継続する。
書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれた場合、それは、初期DQS送信遅延と最大DQS送信遅延との間の時間間隔が比較的大きいことを示し、書き込みDQ0~書き込みDQ7のホールド時間が十分であり、較正は必要とされないことが理解されよう。したがって、メモリコントローラ111は、最大DQS送信遅延を決定する必要はなく、S602の実施を継続することができる。
いくつかのシナリオでは、書き込みDQ0~書き込みDQ7によって運ばれたデータがS802およびS806で正しく書き込まれる場合があり得る。すなわち、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って書き込みDQSの送信遅延が低減された後、書き込みDQ0~書き込みDQ7によって運ばれたデータが正しく書き込まれる。すなわち、書き込みDQ0~書き込みDQ7は、初期DQS送信遅延下で十分なセットアップ時間を有する。初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って書き込みDQSの送信遅延が増加された後、書き込みDQ0~書き込みDQ7によって運ばれたデータが正しく書き込まれる。すなわち、書き込みDQ0~書き込みDQ7は、初期DQS送信遅延下で十分なホールド時間を有する。この場合、メモリコントローラ111は、初期DQS送信遅延を目標DQS送信遅延として直接使用することができる。
少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、それは、少なくとも1つの書き込みDQのホールド時間が十分ではなく、較正が必要とされることを示す。この場合、書き込みDQSの交点は、図9bにおいて交点2として示され得る。したがって、メモリコントローラ111は、S807の実施を継続し得る。
S807:メモリコントローラ111は、第2の調整振幅に従って書き込みDQSの送信遅延を低減する。第2の調整振幅は、メモリチップ12に適用可能な目標ホールド時間H1未満であることに留意されたい。一般に、第2の調整振幅は、書き込みDQSの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅、すなわち、1ステップの振幅でもあり得る。
S808:少なくとも1つの書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S807の実施を継続するために戻る。
メモリコントローラ111は、S807およびS808を1回以上実施し、書き込みDQ0~書き込みDQ7によって運ばれたすべてのデータが正しく書き込まれるまで、書き込みDQSの送信遅延を徐々に低減する。この場合、書き込みDQSの送信遅延は最大DQS送信遅延として使用されてもよく、書き込みDQSの交点は、図7の交点1bとして示され得る。
メモリコントローラ111は、図8に示される方法を実施することによって、書き込みDQSの最大DQS送信遅延および/または最小DQS送信遅延を決定することができる。次いで、メモリコントローラ111は、最大DQS送信遅延および/または最小DQS送信遅延に基づいてS602の実施を継続することができる。
メモリコントローラ111によって、書き込みDQSの最大DQS送信遅延および/または最小DQS送信遅延を決定するプロセスにおいて、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延を決定するために、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って書き込みDQSの送信遅延を増加させ、次いで、書き込みDQSの最小DQS送信遅延を決定するために、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って書き込みDQSの送信遅延を低減することができることが理解されよう。前述のプロセスも本出願の実施形態に含まれるべきであり、具体的な実装形態の詳細は再度説明されない。
実施形態2:読み出しDQと読み出しDQSとの間の相対タイミング位置をアライメントするために、読み出しDQSの受信遅延が調整される。
実施形態1と同様の技術的概念に基づいて、本出願の実施形態で提供される実施形態2では、読み出しDQと読み出しDQSとの間の相対タイミング位置がアライメントされ得る。
具体的には、図10に示されるように、実施形態2は、以下のステップを主に含む:
S1001:メモリコントローラ111は、N個の読み出しDQによって運ばれたすべてのデータが正しく読み出された場合、読み出しDQSの最大DQS受信遅延および/または最小DQS受信遅延を決定する。
このプロセスはS602と同様である。違いは、メモリチップ12が、N個の読み出しDQと、N個の読み出しDQに対応する読み出しDQSとを出力し、メモリコントローラ111が、N個の読み出しDQと、N個の読み出しDQに対応する読み出しDQSとを受信することにある。一般に、読み出しDQSにおける交点間の中間点がトリガ点として使用され、メモリコントローラ111は、N個の読み出しDQのレベル状態を識別するためにトリガされる。
具体的には、可能な実装形態では、メモリコントローラ111は、少なくとも1つの読み出しDQによって運ばれたデータの読み出しにエラーが発生するまで、読み出しDQSの受信遅延を、初期DQS受信遅延から開始して徐々に低減することができる。この場合、読み出しDQSの受信遅延は、最小DQS受信遅延として使用され得る。メモリコントローラ111は、さらに、少なくとも1つの読み出しDQによって運ばれたデータの読み出しにエラーが発生するまで、読み出しDQSの受信遅延を初期DQS受信遅延から開始して徐々に増加させることができる。この場合、読み出しDQSの受信遅延は、最大DQS受信遅延として使用され得る。
読み出しDQSの初期DQS受信遅延は、メモリコントローラ111が読み出しDQSの受信遅延の調整を開始する前の読み出しDQSの受信遅延として理解され得る。読み出しDQSの初期DQS受信遅延はまた、メモリコントローラ111が前述のトリガ命令を受信する前の読み出しDQSの受信遅延として理解されてもよい。
別の可能な実装形態では、メモリコントローラ111は、図8のプロセスと同様のプロセスを使用して、読み出しDQSの最大DQS受信遅延および最小DQS受信遅延をさらに決定することができる。具体的には、メモリコントローラ111は、最大DQS受信遅延および/または最小DQS受信遅延をそれぞれ決定することができる。
1.最小DQS受信遅延を決定する
初期DQS受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って読み出しDQSの受信遅延を低減する。すなわち、メモリコントローラ111は、読み出しDQSの受信遅延を初期DQS受信遅延から第1のDQS受信遅延に低減し、第1のDQS受信遅延と初期DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2である。
メモリコントローラ111に適用可能な目標セットアップ時間S2は、メモリコントローラ111に適用可能な最小セットアップ時間と等しくてもよく、またはメモリコントローラ111に適用可能な最小セットアップ時間よりも大きくてもよい。目標セットアップ時間S2の具体的な実装形態は、メモリコントローラ111とメモリチップ12との間のデータ伝送のための性能要件に基づいて決定され得る。これは、本出願の実施形態では限定されない。
例えば、図11aに示されるように、読み出しDQSの受信遅延が初期DQS受信遅延である場合、読み出しDQSの中間点は、図11aにおいて中間点0として示され得る。メモリコントローラ111は、読み出しDQ0~読み出しDQ7の受信遅延を保ち、読み出しDQSの受信遅延を低減する。読み出しDQSの中間点に対応する読み出しDQの周期と比較して、メモリコントローラ111は、読み出しDQSの中間点のタイミングアドバンスを識別する。すなわち、図11aに示されるように、読み出しDQSの中間点は、図11aの矢印で示される方向とは反対方向に移動する。
読み出しDQSの受信遅延が第1のDQS受信遅延である場合、読み出しDQSの中間点は、図11aにおいて中間点1として示され得る。中間点1と中間点0との間の時間間隔は、第1のDQS受信遅延と初期DQS受信遅延との間の時間間隔であり、メモリコントローラ111に適用可能な目標セットアップ時間S2である。
読み出しDQ0~読み出しDQ7によって運ばれたすべてのデータが第1のDQS受信遅延下で正しく読み出された場合、それは、初期受信遅延と最小受信遅延との間の時間間隔が比較的大きいことを示す。初期DQS受信遅延下では、読み出しDQ0と読み出しDQ7との間のセットアップ時間は十分であり、較正は必要とされない。この場合、最小DQS受信遅延を決定することなく、最大DQS受信遅延が決定され続け得る。少なくとも1つの読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、それは、初期DQS受信遅延下での少なくとも1つの読み出しDQのセットアップ時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。この場合、読み出しDQSの中間点は、図11aに示されるようなものであり得る。
第1のDQS受信遅延下で少なくとも1つの読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、メモリコントローラ111は、読み出しDQSの受信遅延を徐々に増加させることができ、それによって、読み出しDQSの中間点は、読み出しDQ0~読み出しDQ7によって運ばれたすべてのデータが正しく読み出されるまで、図11aの矢印で示される方向に移動する。この場合、読み出しDQSの受信遅延は、最小DQS受信遅延である。最小DQS受信遅延下では、読み出しDQSの交点は、図11bに示されるようなものであり得る。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図8のS801~S804に示される書き込みDQSの最小DQS送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
2.最大DQS受信遅延を決定する
初期DQS受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標ホールド時間H2に従って読み出しDQSの受信遅延を増加させる。すなわち、メモリコントローラ111は、読み出しDQS受信遅延を初期DQS受信遅延から第2のDQS受信遅延に増加させ、第2のDQS受信遅延と初期DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2である。
メモリコントローラ111に適用可能な目標ホールド時間H2は、メモリコントローラ111に適用可能な最小ホールド時間と等しくてもよく、またはメモリコントローラ111に適用可能な最小ホールド時間よりも大きくてもよい。目標ホールド時間H2の具体的な実装形態は、メモリコントローラ111とメモリチップ12との間のデータ伝送のための性能要件に基づいて決定され得る。これは、本出願の実施形態では限定されない。
例えば、図11cに示されるように、読み出しDQSの受信遅延が初期DQS受信遅延である場合、読み出しDQSの中間点は、図9aにおいて中間点0として示され得る。メモリコントローラ111は、読み出しDQ0~読み出しDQ7の受信遅延を保ち、読み出しDQSの受信遅延を増加させる。読み出しDQSの中間点に対応する読み出しDQの周期と比較して、メモリコントローラ111は、読み出しDQSの中間点のタイミング遅延を識別する。すなわち、図11cに示されるように、読み出しDQSの中間点は、図11cの矢印で示される方向に移動する。
読み出しDQSの受信遅延が第2のDQS受信遅延である場合、読み出しDQSの中間点は、図11cにおいて中間点2として示され得る。中間点2と中間点0との間の時間間隔は、第2のDQS受信遅延と初期DQS受信遅延との間の時間間隔であり、メモリコントローラ111に適用可能な目標ホールド時間H2である。
読み出しDQ0~読み出しDQ7によって運ばれたすべてのデータが第2のDQS受信遅延下で正しく読み出された場合、それは、初期DQS受信遅延と最大DQS受信遅延との間の時間間隔が比較的大きいことを示す。読み出しDQ0と読み出しDQ7との間のホールド時間は十分であり、較正は必要とされない。この場合、最大DQS受信遅延を決定することなく、S1002が実施され続け得る。
初期DQS受信遅延と最大DQS受信遅延との間の時間間隔、および初期DQS受信遅延と最小DQS受信遅延との間の時間間隔が比較的大きい場合もあり得ることが理解されよう。すなわち、初期DQS受信遅延に基づいて、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って読み出しDQSの受信遅延が低減された後、読み出しDQ0~読み出しDQ7によって運ばれたすべてのデータが正しく読み出される。すなわち、読み出しDQ0~読み出しDQ7は、初期DQS受信遅延下で十分なセットアップ時間を有する。初期DQS受信遅延に基づいて、メモリコントローラ111に適用可能な目標ホールド時間H2に従って読み出しDQSの受信遅延が増加された後、読み出しDQ0~読み出しDQ7によって運ばれたすべてのデータが正しく読み出される。すなわち、読み出しDQ0~読み出しDQ7は、初期DQS受信遅延下で十分なホールド時間を有する。この場合、メモリコントローラ111は、初期DQS受信遅延を目標DQS受信遅延として直接使用することができる。
第2のDQS受信遅延下で少なくとも1つの読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、それは、初期DQS受信遅延下での少なくとも1つの読み出しDQのホールド時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。この場合、読み出しDQSの中間点は、図11cにおいて中間点2として示され得る。
少なくとも1つの読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、メモリコントローラ111は、読み出しDQSの受信遅延を徐々に低減することができ、それによって、読み出しDQSの中間点は、読み出しDQ0~読み出しDQ7によって運ばれたすべてのデータが正しく読み出されるまで、図11cの矢印で示される方向とは反対方向に移動する。この場合、読み出しDQSの受信遅延は、最大DQS受信遅延である。最大DQS受信遅延下では、読み出しDQSの中間点は、図11dに示されるようなものであり得る。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図8のS805~S808に示される書き込みDQSの最大DQS送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
S1002:メモリコントローラ111は、N個の読み出しDQの受信遅延を保ち、読み出しDQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間に位置される目標DQS受信遅延に調整する。目標DQS受信遅延と最大DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2以上である。目標DQS受信遅延と最小DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2以上である。
S1001では、メモリコントローラ111は、最大DQS受信遅延および最小DQS受信遅延のうちの1つまたは2つを決定するため、S1002の目標DQS受信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、最大DQS受信遅延を決定するが、最小DQS受信遅延を決定しない。この場合、目標DQS受信遅延と最大DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2であり得る。
本出願の実施形態では、メモリ訓練は、メモリ初期化後に実施され得る。したがって、読み出しDQ間のオフセットは、通常、比較的小さい。すなわち、最大DQS受信遅延と最小DQS受信遅延との間の時間間隔は比較的大きく、読み出しDQの周期持続時間に近い。加えて、読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりもはるかに大きいため、目標DQS受信遅延と最大DQS受信遅延との間の間隔がメモリコントローラ111に適用可能な目標ホールド時間H2である場合、目標DQS受信遅延と最小DQS受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きい。
ケース2:メモリコントローラ111は、最小DQS受信遅延を決定するが、最大DQS受信遅延を決定しない。この場合、目標DQS受信遅延と最小DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得る。
上述したように、最大DQS受信遅延と最小DQS受信遅延との間の時間間隔は比較的大きく、読み出しDQの周期持続時間に近い。加えて、読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりもはるかに大きいため、目標DQS受信遅延と最小DQS受信遅延との間の間隔がメモリコントローラ111に適用可能な目標セットアップ時間である場合、目標DQS受信遅延と最大DQS受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きい。
ケース3:メモリコントローラ111は、最小DQS受信遅延および最大DQS受信遅延を決定する。この場合、目標DQS受信遅延と最大DQS受信遅延との間の間隔が、メモリコントローラ111に適用可能な目標ホールド時間H2であり得るか、または目標DQS受信遅延と最小DQS送信遅延との間の間隔が、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得るか、または目標DQS受信遅延が、最大DQS受信遅延と最小DQS受信遅延との間の中間位置に位置され得る。
上述したように、最大DQS受信遅延と最小DQS受信遅延との間の時間間隔は比較的大きく、読み出しDQの周期持続時間に近い。目標DQS受信遅延は、最大DQS受信遅延と最小DQS受信遅延との間の中間位置に位置され、それによって、目標DQS受信遅延と最小DQS受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きくなり得、目標DQS受信遅延と最大DQS受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きくなり得る。
本出願の実施形態では、メモリコントローラ111は、読み出しDQSの受信遅延を調整することによって、読み出しDQ0~読み出しDQ7と読み出しDQSとの間の相対タイミング位置をアライメントすることができる。図4a~図4eに示されるメモリ訓練プロセスと比較して、本出願の実施形態では、メモリコントローラ111は、読み出しDQ0~読み出しDQ7の受信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
実施形態3:書き込みDQと書き込みDQSとの間の相対タイミング位置をアライメントするために、書き込みDQの受信遅延が調整される。
実施形態1および実施形態2の両方において、メモリ訓練は、DQSの受信遅延または送信遅延を調整することによって実装される。DQとDQSとの間には対応するタイミング位置関係があるので、DQとDQSとの間の相対タイミング位置は、DQの受信遅延または送信遅延を調整することによってもアライメントされ得ることが理解されよう。
実施形態3では、メモリコントローラ111は、書き込みDQSの送信遅延を保ち、書き込みDQ0~書き込みDQ7の送信遅延をそれぞれ調整し、それによって、各書き込みDQと書き込みDQSとの相対タイミング位置がアライメントされる。例えば、任意の書き込みDQについて、実施形態3は、図12に示される以下のステップを主に含む:
S1201:メモリコントローラ111は、第1の書き込みDQによって運ばれたデータが正しく書き込まれた場合、第1の書き込みDQの最大DQ送信遅延および/または最小DQ送信遅延を決定する。
第1の書き込みDQは、DQ0~DQ7のいずれか1つであり得る。メモリコントローラ111が書き込みDQSの送信遅延を不変に保つ場合、書き込みDQSの交点がメモリチップ12に伝送される時点は安定していることが理解されよう。メモリコントローラ111が書き込みDQSの交点を送信する時点と比較して、メモリコントローラ111が書き込みDQSの交点に対応する第1の書き込みDQの周期を送信する時点は、第1の書き込みDQの送信遅延を増加させることによって遅延され、それによって、第1の書き込みDQのセットアップ時間は低減され、一方、ホールド時間は増加される。逆に、第1の書き込みDQの送信遅延を低減することによって、メモリコントローラ111が書き込みDQSの交点に対応する第1の書き込みDQの周期を送信する時点が早められ、それによって、第1の書き込みDQのホールド時間は低減され、一方、セットアップ時間は増加される。
実施形態3では、図13に示されるように、第1の書き込みDQの送信遅延が最大DQ送信遅延よりも大きい場合、第1の書き込みDQのセットアップ時間が短すぎるため、メモリチップ12は、第1の書き込みDQのレベル状態を正しく識別することができない。よって、第1の書き込みDQによって運ばれたデータは、メモリチップ12に正しく書き込まれ得ない。第1の書き込みDQの送信遅延が最小DQ送信遅延未満である場合、第1の書き込みDQのホールド時間が短すぎるため、メモリチップ12は、第1の書き込みDQのレベル状態を正しく識別することができない。よって、第1の書き込みDQによって運ばれたデータは、メモリチップ12に正しく書き込まれ得ない。
S1202:メモリコントローラ111は、書き込みDQSの送信遅延を保ち、第1の書き込みDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間に位置される目標DQ送信遅延に調整する。目標DQ送信遅延と最小DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1以上である。目標DQ送信遅延と最大DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1以上である。
メモリチップ12に適用可能な目標ホールド時間H1および目標セットアップ時間S1の両方について、実施形態1を参照することができる。詳細は、ここでは再度説明されない。S1201では、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延および最小DQ送信遅延のうちの1つまたは2つを決定するため、S1202の目標DQ送信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定するが、第1の書き込みDQの最小DQ送信遅延を決定しない。この場合、目標DQ送信遅延と最大DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1であり得る。
図13に示されるように、最大DQ送信遅延と最小DQ送信遅延との間の時間間隔Δtは、第1の書き込みDQの周期持続時間に近く、第1の書き込みDQの周期は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりもはるかに大きい。したがって、目標DQ送信遅延と最大DQ送信遅延との間の間隔がメモリチップ12に適用可能な目標セットアップ時間S1である場合、目標DQ送信遅延と最小DQ送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりも大きい。
ケース2:メモリコントローラ111は、第1の書き込みDQの最小DQ送信遅延を決定するが、第1の書き込みDQの最大DQ送信遅延を決定しない。この場合、目標DQ送信遅延と最小DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1であり得る。
上述したように、最大DQ送信遅延と最小DQ送信遅延との間の時間間隔Δtは、第1の書き込みDQの周期持続時間に近く、第1の書き込みDQの周期は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりもはるかに大きい。したがって、目標DQ送信遅延と最小DQ送信遅延との間の間隔がメモリチップ12に適用可能な目標ホールド時間H1である場合、目標DQ送信遅延と最大DQ送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きい。
ケース3:メモリコントローラ111は、最小DQ送信遅延および最大DQ送信遅延を決定する。この場合、目標DQ送信遅延と最大DQ送信遅延との間の間隔が、メモリチップ12に適用可能な目標セットアップ時間S1であり得るか、または目標DQ送信遅延と最小DQ送信遅延との間の間隔が、メモリチップ12に適用可能な目標ホールド時間H1であり得るか、または目標DQ送信遅延が、最大DQ送信遅延と最小DQ送信遅延との間の中間位置に位置され得る。
上述したように、最大DQ送信遅延と最小DQ送信遅延との間の時間間隔Δtは、第1の書き込みDQの周期持続時間に近い。目標DQ送信遅延は、最大DQ送信遅延と最小DQ送信遅延との間の中間位置に位置され、それによって、目標DQ送信遅延と最小DQ送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標ホールド時間H1よりも大きくなり得、目標DQ送信遅延と最大DQ送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標セットアップ時間H1よりも大きくなり得る。
実施形態3では、メモリコントローラ111は、第1の書き込みDQの送信遅延を調整し、それによって、第1の書き込みDQと書き込みDQSとの間の相対タイミング位置がアライメントされ得る。メモリコントローラ111は、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置をそれぞれアライメントするために、図12に示される方法を使用して、書き込みDQ0~書き込みDQ7の送信遅延を連続的に調整することができる。
実施形態3では、メモリコントローラ111は、各メモリ訓練プロセスにおいて、1つのみの書き込みDQ(第1の書き込みDQ)の送信遅延を調整する。図4a~図4eに示されるメモリ訓練プロセスと比較して、実施形態3では、メモリコントローラ111は、他の書き込みDQおよび書き込みDQSの送信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
第1の書き込みDQは、図1のデータ信号線L0によって伝送される書き込みDQ0であると仮定されることに留意されたい。次いで、メモリコントローラ111が書き込みDQ0の送信遅延を調整するとき、メモリコントローラ111は、データ信号線L1~データ信号線L7を介してメモリチップ12に依然としてアクセスすることができる。すなわち、実施形態3では、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置がアライメントされるとき、メモリチップ12は、さらに、プロセッサコア112の継続的な実行に対するメモリ訓練の影響をさらに低減するように、並列にアクセスされ得る。
メモリコントローラ111がS1201を実施するとき、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延および最小DQ送信遅延をそれぞれ決定することができることに留意されたい。第1の書き込みDQの初期DQ送信遅延と最小DQ送信遅延との間のオフセットが大きい場合、それは、第1の書き込みDQが初期DQ送信遅延下で十分なホールド時間を有することを示す。この場合、最大DQ送信遅延のみが決定され得る。同様に、第1の書き込みDQの初期DQ送信遅延と最大DQ送信遅延との間のオフセットが比較的大きい場合、それは、第1の書き込みDQが初期DQ送信遅延下で十分なセットアップ時間を有することを示す。この場合、最小DQ送信遅延のみが決定され得る。
第1の書き込みDQの初期DQ送信遅延は、メモリコントローラ111がメモリ訓練の実施を開始する前の、またはメモリコントローラがメモリ訓練の実施を開始するときの第1の書き込みDQの送信遅延として理解され得る。第1の書き込みDQの初期DQ送信遅延はまた、メモリコントローラ111が前述のトリガ命令を受信する前の第1の書き込みDQの送信遅延として理解されてもよい。
可能な実装形態では、メモリコントローラ111は、第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生するまで、第1の書き込みDQの送信遅延を、初期DQ送信遅延から開始して徐々に低減することができる。この場合、第1の書き込みDQの送信遅延は、最小DQ送信遅延として使用され得る。メモリコントローラ111は、さらに、第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生するまで、第1の書き込みDQの送信遅延を初期DQ送信遅延から開始して徐々に増加させることができる。この場合、第1の書き込みDQの送信遅延は、最大DQ送信遅延として使用され得る。
別の可能な実装形態では、メモリコントローラ111は、図14に示される方法を使用して、最大DQ送信遅延および/または最小DQ送信遅延をさらに決定することができる。方法は、以下のステップを主に含む:
S1401:メモリコントローラ111は、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って第1の書き込みDQの送信遅延を低減する。すなわち、メモリコントローラ111は、第1の書き込みDQの送信遅延を初期DQ送信遅延から第1のDQ送信遅延に低減することができる。第1のDQ送信遅延と初期DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間である。
S1402:第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1403の実施を継続する。第1の書き込みDQによって運ばれたデータが正しく書き込まれた場合、メモリコントローラ111は、S1405の実施を継続する。
第1の書き込みDQによって運ばれたデータが正しく書き込まれた場合、それは、初期DQ送信遅延と最小DQ送信遅延との間の時間間隔が比較的大きいことを示し、第1の書き込みDQのホールド時間が初期DQ送信遅延下で十分であり、較正は必要とされないことが理解されよう。したがって、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定するために、最小DQ送信遅延を決定することなくS1405の実施を継続し、第1の書き込みDQの送信遅延を増加させることができる。
第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、それは、初期DQ送信遅延下での第1の書き込みDQのホールド時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。例えば、図15に示されるように、初期DQ送信遅延下での書き込みDQSの交点は、第1の書き込みDQの周期の比較的遅い位置に位置され、すなわち、第1の書き込みDQのホールド時間は、初期DQ送信遅延下で比較的短い。
初期DQ送信遅延に基づいて、メモリコントローラ111は、メモリチップ12に適用可能な目標ホールド時間H1に従って、第1のDQの送信遅延を初期DQ送信遅延から第1のDQ送信遅延に低減する。メモリコントローラ111が書き込みDQSの送信遅延を保つため、第1の書き込みDQの対応する周期がメモリチップ12に伝送される時刻は、書き込みDQSの交点と比較して早められ、早められた時間振幅は、メモリチップ12に適用可能な目標ホールド時間H1である。
図15から、第1の書き込みDQのホールド時間は、第1のDQ送信遅延下で十分ではなく、それによって、第1の書き込みDQによって運ばれたデータの書き込みにエラーを引き起こすことが知見され得る。
S1403:メモリコントローラ111は、第3の調整振幅に従って第1の書き込みDQの送信遅延を増加させる。第3の調整振幅は、メモリチップ12に適用可能な目標ホールド時間H1未満であることに留意されたい。一般に、第3の調整振幅は、第1の書き込みDQの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅であり得る。
S1404:第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1403の実施を継続するために戻る。
メモリコントローラ111は、S1403およびS1404を1回以上実施し、第1の書き込みDQによって運ばれたデータが正しく書き込まれるまで、第1の書き込みDQの送信遅延を徐々に増加させる。この場合、図15に示されるように、第1の書き込みDQの送信遅延は、最小DQ送信遅延として使用され得る。
電子デバイス10の作業プロセスでは、書き込みDQSの交点が対応する第1の書き込みDQ周期の中間位置からオフセットされている場合でも、書き込みDQSの交点は対応する書き込みDQ周期の中間位置の近くに依然として位置されることが理解されよう。この場合、メモリコントローラ111が第1の書き込みDQの送信遅延を初期DQ時点から徐々に低減する場合、メモリコントローラ111は、第1の書き込みDQの送信遅延を複数回調整し、第1の書き込みDQによって運ばれたデータが正しく書き込まれたかどうかをチェックすることによって、最小DQ送信遅延を決定することができる。
本出願の実施形態で提供されるS1401~S1404では、メモリチップ12に適用可能な目標ホールド時間H1は、通常、第1の書き込みDQの半周期未満である。しかしながら、第1のDQ送信遅延から最小DQ送信遅延までの調整振幅は、メモリチップ12に適用可能な目標ホールド時間H1を超えない。したがって、S1403は比較的少ない回数実施され、よって最小DQ送信遅延が迅速に決定され得る。
S1405:メモリコントローラ111は、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って第1の書き込みDQの送信遅延を増加させる。すなわち、図16に示されるように、メモリコントローラ111は、第1の書き込みDQの送信遅延を初期DQ送信遅延から第2のDQ送信遅延に増加させることができる。第2のDQ送信遅延と初期DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1である。
メモリコントローラ111は、書き込みDQSの送信遅延を保ち、第1の書き込みDQの送信遅延を増加させる。したがって、書き込みDQSの交点と比較して、第1の書き込みDQの対応する周期がメモリチップ12に伝送される時刻が遅延される。すなわち、第1の書き込みDQの周期は、図16の矢印で示される方向に移動する。加えて、移動距離は、メモリチップ12に適用可能な目標セットアップ時間S1である。
S1406:第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1407の実施を継続する。第1の書き込みDQによって運ばれたデータが正しく書き込まれた場合、メモリコントローラ111は、S1408の実施を継続する。
第1の書き込みDQのデータが第2のDQ送信遅延下で正しく書き込まれた場合、それは、初期DQ送信遅延と最大DQ送信遅延との間の時間間隔が比較的大きいことを示し、第1の書き込みDQのホールド時間が初期DQ送信遅延下で十分であり、較正は必要とされないことが理解されよう。図16に示されるように、初期DQ送信遅延下での書き込みDQSの交点は、第1の書き込みDQの対応する周期の比較的遅い位置に位置される。すなわち、第1の書き込みDQのセットアップ時間は、初期DQ送信遅延下で比較的長い。
メモリコントローラ111が第1の書き込みDQの送信遅延を第2のDQ送信遅延に増加させた後、第1の書き込みDQは比較的大きいセットアップ時間を依然として有し、第1の書き込みDQによって運ばれたデータはメモリチップ12に依然として正しく書き込まれ得る。したがって、メモリコントローラ111は、最大DQ送信遅延を決定する必要はなく、S1202の実施を継続することができる。
いくつかのシナリオでは、第1の書き込みDQによって運ばれたデータがS1402およびS1406で正しく書き込まれる場合があり得る。すなわち、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って第1の書き込みDQの送信遅延が低減された後、第1の書き込みDQによって運ばれたデータが正しく書き込まれる。すなわち、第1の書き込みDQは、初期DQ送信遅延下で十分なホールド時間を有する。初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って第1の書き込みDQの送信遅延が増加された後、第1の書き込みDQによって運ばれたデータが正しく書き込まれる。すなわち、第1の書き込みDQは、初期DQ送信遅延下で十分なセットアップ時間を有する。この場合、メモリコントローラ111は、初期DQ送信遅延を目標DQ送信遅延として直接使用することができる。
第2のDQ送信遅延下で第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、それは、第1の書き込みDQのセットアップ時間が伝送性能(安定性)の要件を維持するのに十分ではなく、較正が必要とされることを示す。
一般に、メモリチップ12の目標セットアップ時間S1および目標ホールド時間H1のいずれも、第1の書き込みDQの半周期の持続時間よりも大きくない。すなわち、メモリコントローラ111が第1の書き込みDQの最小DQ送信遅延を決定する場合、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定する必要がない。メモリコントローラ111が第1の書き込みDQの最大DQ送信遅延を決定する場合、メモリコントローラ111は、第1の書き込みDQの最小DQ送信遅延を決定する必要がない。
S1407:メモリコントローラ111は、第4の調整振幅に従って第1の書き込みDQの送信遅延を低減する。第4の調整振幅は、メモリチップ12に適用可能な目標セットアップ時間未満であることに留意されたい。一般に、第4の調整振幅は、第1の書き込みDQの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅でもあり得る。
S1408:第1の書き込みDQによって運ばれたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1407の実施を継続するために戻る。
メモリコントローラ111は、S1407およびS1408を1回以上実施し、第1の書き込みDQによって運ばれたデータが正しく書き込まれるまで、第1の書き込みDQの送信遅延を徐々に低減する。この場合、第1の書き込みDQの送信遅延は、最大DQ送信遅延として使用され得る。
メモリコントローラ111は、図14に示される方法を実施することによって、第1の書き込みDQの最大DQ送信遅延および/または最小DQ送信遅延を決定することができる。次いで、メモリコントローラ111は、最大DQ送信遅延および/または最小DQ送信遅延に基づいてS1202の実施を継続することができる。
メモリコントローラ111によって、第1の書き込みDQの最大DQ送信遅延および/または最小DQ送信遅延を決定するプロセスにおいて、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定するために、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って第1の書き込みDQの送信遅延を増加させ、次いで、第1の書き込みDQの最小DQ送信遅延を決定するために、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って第1の書き込みDQの送信遅延を低減することができることが理解されよう。前述のプロセスも本出願の実施形態に含まれるべきであり、具体的な実装形態の詳細は再度説明されない。
実施形態4:読み出しDQと読み出しDQSとの間の相対タイミング位置をアライメントするために、読み出しDQの受信遅延が調整される。
実施形態3と同様の技術的概念に基づいて、本出願の実施形態で提供される実施形態4では、読み出しDQと読み出しDQSとの間の相対タイミング位置がアライメントされ得る。
具体的には、図17に示されるように、実施形態4は、以下のステップを主に含む:
S1701:メモリコントローラ111は、第1の読み出しDQによって運ばれたデータが正しく書き込まれた場合、第1の読み出しDQの最大DQ受信遅延および/または最小DQ受信遅延を決定する。
このプロセスはS1202と同様である。違いは、メモリチップ12が第1の読み出しDQおよび読み出しDQSを出力し、メモリコントローラ111が第1の読み出しDQおよび読み出しDQSを受信することにある。一般に、読み出しDQSにおける隣接する交点間の中間点がトリガ点として使用され、メモリコントローラ111は、第1の読み出しDQのレベル状態を識別するためにトリガされる。
具体的には、可能な実装形態では、メモリコントローラ111は、第1の読み出しDQによって運ばれたデータの読み出しにエラーが発生するまで、第1の読み出しDQの受信遅延を、初期DQ受信遅延から開始して徐々に低減することができる。この場合、第1の読み出しDQの受信遅延は、最小DQ受信遅延として使用され得る。メモリコントローラ111は、さらに、第1の読み出しDQによって運ばれたデータの読み出しにエラーが発生するまで、第1の読み出しDQの受信遅延を、初期DQ受信遅延から開始して徐々に増加させることができる。この場合、第1の読み出しDQの受信遅延は、最大DQ受信遅延として使用され得る。
別の可能な実装形態では、メモリコントローラ111は、図14のプロセスと同様のプロセスを使用して、第1の読み出しDQの最大DQ受信遅延および最小DQ受信遅延をさらに決定することができる。具体的には、メモリコントローラ111は、最大DQ受信遅延および/または最小DQ受信遅延をそれぞれ決定することができる。
1.最小DQ受信遅延を決定する
初期DQ受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標ホールド時間に従って第1の読み出しDQの受信遅延を低減する。図18に示されるように、メモリコントローラ111は、第1の読み出しDQの受信遅延を初期DQ受信遅延から第1のDQ受信遅延に低減し、第1のDQ受信遅延と初期DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2である。
メモリコントローラ111が適用可能な目標セットアップ時間H2の具体的な実装形態については、実施形態2。詳細は、ここでは再度説明されない。
第1の読み出しDQによって運ばれたデータが第1のDQ受信遅延下で正しく読み出された場合、それは、初期DQ受信遅延と最小DQ受信遅延との間の時間間隔が比較的大きいことを示す。初期DQ受信遅延下では、第1の読み出しDQのセットアップ時間は十分であり、較正は必要とされない。この場合、最小DQ受信遅延を決定することなく、最大DQ受信遅延が決定され続け得る。図18に示されるように、第1の読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、それは、初期DQ受信遅延下での第1の読み出しDQのホールド時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。
第1のDQ受信遅延下で第1の読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、メモリコントローラ111は、第1の読み出しDQの受信遅延を徐々に増加させることができ、それによって、読み出しDQSに対する第1の読み出しDQの中間点は、第1の読み出しDQによって運ばれたデータが正しく読み出されるまで、図18の矢印で示される方向に移動する。この場合、図18に示されるように、第1の読み出しDQの受信遅延は、最小DQ受信遅延である。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図14のS1401~S1404に示される第1の書き込みDQの最小DQ送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
2.最大DQ受信遅延を決定する
初期DQ受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って第1の読み出しDQの受信遅延を増加させる。図19に示されるように、メモリコントローラ111は、第1の読み出しDQの受信遅延を初期DQ受信遅延から第2のDQ受信遅延に増加させ、第2のDQ受信遅延と初期DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2である。メモリコントローラ111が適用可能な目標セットアップ時間S2の具体的な実装形態については、実施形態2を参照することができる。詳細は、ここでは再度説明されない。
図19に示されるように、第1の読み出しDQのデータが第2のDQ受信遅延下で正しく読み出された場合、それは、初期DQ受信遅延と最大DQ受信遅延との間の時間間隔が比較的大きいことを示す。初期DQ受信遅延下では、第1の読み出しDQのセットアップ時間は十分であり、較正は必要とされない。この場合、最大DQ受信遅延を決定することなく、S1702が実施され続ける。
初期DQ受信遅延と最大DQ受信遅延との間の時間間隔、および初期DQ受信遅延と最小DQ受信遅延との間の時間間隔が比較的大きい場合もあり得ることが理解されよう。すなわち、初期DQ受信遅延に基づいて、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って第1の読み出しDQの受信遅延が増加された後、第1の読み出しDQによって運ばれたデータが正しく読み出される。すなわち、第1の読み出しDQは、初期DQ受信遅延下で十分なセットアップ時間を有する。初期DQ受信遅延に基づいて、メモリコントローラ111に適用可能な目標ホールド時間H2に従って第1の読み出しDQの受信遅延が低減された後、第1の読み出しDQによって運ばれたデータが正しく読み出される。すなわち、第1の読み出しDQは、初期DQ受信遅延下で十分なホールド時間を有する。この場合、メモリコントローラ111は、初期DQ受信遅延を目標DQ受信遅延として直接使用することができる。
第2のDQ受信遅延下で第1の読み出しDQによって運ばれたデータの読み出しにエラーが発生した場合、それは、初期DQ受信遅延下での第1の読み出しDQのセットアップ時間が伝送性能(安定性)を維持するのに十分ではなく、較正が必要とされることを示す。メモリコントローラ111は、第1の読み出しDQによって運ばれたデータが正しく読み出されるまで、第1の読み出しDQの受信遅延を、第2のDQ受信遅延から開始して徐々に低減することができる。この場合、第1の読み出しDQの受信遅延は、最大DQ受信遅延である。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図8のS1405~S1408に示される第1の書き込みDQの最大DQ送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
一般に、メモリコントローラ111の目標セットアップ時間S2および目標ホールド時間H2のいずれも、第1の読み出しDQの半周期の持続時間よりも大きくない。すなわち、メモリコントローラ111が第1の読み出しDQの最小DQ受信遅延を決定する場合、メモリコントローラ111は、第1の書き込みDQの最大DQ受信遅延を決定する必要がない。メモリコントローラ111が第1の読み出しDQの最大DQ受信遅延を決定する場合、メモリコントローラ111は、第1の読み出しDQの最小DQ受信遅延を決定する必要がない。
S1702:メモリコントローラ111は、読み出しDQSの受信遅延を保ち、第1の読み出しDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間に位置される目標DQ受信遅延に調整する。目標DQ受信遅延と最大DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間以上である。目標DQ受信遅延と最小受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間以上である。
S1701では、メモリコントローラ111は、最大DQ受信遅延および最小DQ受信遅延のうちの1つまたは2つを決定するため、S1702の目標DQ受信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、最大DQ受信遅延を決定するが、最小DQ受信遅延を決定しない。この場合、目標DQ受信遅延と最大DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得る。最大DQ受信遅延と最小DQ受信遅延との間の時間間隔が比較的大きいため、間隔は、第1の読み出しDQの周期持続時間に近い。加えて、第1の読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりもはるかに大きいため、目標DQ受信遅延と最大DQ受信遅延との間の間隔がメモリコントローラ111に適用可能な目標セットアップ時間である場合、目標DQ受信遅延と最小DQ受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きい。
ケース2:メモリコントローラ111は、最小DQ受信遅延を決定するが、最大DQ受信遅延を決定しない。この場合、目標DQ受信遅延と最小DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2であり得る。上述したように、最大DQ受信遅延と最小DQ受信遅延との間の時間間隔は比較的大きく、第1の読み出しDQの周期持続時間に近い。加えて、第1の読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりもはるかに大きいため、目標DQ受信遅延と最小DQ受信遅延との間の間隔がメモリコントローラ111に適用可能な目標ホールド時間H2である場合、目標DQ受信遅延と最大DQ受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きい。
ケース3:メモリコントローラ111は、最小DQ受信遅延および最大DQ受信遅延を決定する。この場合、目標DQ受信遅延と最大DQ受信遅延との間の間隔が、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得るか、または目標DQ受信遅延と最小DQ受信遅延との間の間隔が、メモリコントローラ111に適用可能な目標ホールド時間H2であり得るか、または目標DQ受信遅延が、最大DQ受信遅延と最小DQ受信遅延との間の中間位置に位置され得る。
上述したように、最大DQ受信遅延と最小DQ受信遅延との間の時間間隔は比較的大きく、読み出しDQの周期持続時間に近い。目標DQ受信遅延は、最大DQ受信遅延と最小DQ受信遅延との間の中間位置に位置され、それによって、目標DQ受信遅延と最小DQ受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きくなり得、目標DQ受信遅延と最大DQ受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標セットアップ時間H2よりも大きくなり得る。
実施形態4では、メモリコントローラ111は、各メモリ訓練プロセスにおいて、1つのみの読み出しDQ(第1の読み出しDQ)の受信遅延を調整する。図4a~図4eに示されるメモリ訓練プロセスと比較して、実施形態4では、メモリコントローラ111は、他の読み出しDQおよび読み出しDQSの受信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
第1の読み出しDQは、図1のデータ信号線L0によって伝送される読み出しDQ0であると仮定されることに留意されたい。次いで、メモリコントローラ111が書き込みDQ0の受信遅延を調整するとき、メモリコントローラ111は、データ信号線L1~データ信号線L7を介してメモリチップ12に依然としてアクセスすることができる。すなわち、実施形態4では、読み出しDQ0~読み出しDQ7と読み出しDQSとの間の相対タイミング位置がアライメントされるとき、メモリチップ12は、さらに、プロセッサコア112の継続的な実行に対するメモリ訓練の影響をさらに低減するように、並列にアクセスされ得る。
実施形態3および実施形態4では、メモリコントローラ111は、各メモリ訓練において、書き込みDQと書き込みDQSとの間の相対タイミング位置を1つのみのデータ伝送線上にアライメントし、読み出しDQと読み出しDQSとの間の相対タイミング位置をデータ伝送線上にアライメントすることができることに留意されたい。メモリコントローラ111は、ラウンドロビン規則を使用して、書き込みDQ0~書き込みDQ7と書き込みDQSとのアライメント、および読み出しDQ0~読み出しDQ7と読み出しDQSとのアライメントを連続的に完了する。例えば、メモリコントローラ111によって使用されるラウンドロビン規則は、図20に示されるようなものであってもよく、以下のステップを主に含む:
S2001:メモリコントローラ111は、トリガ命令を受信する。
S2002:メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ0の送信遅延および読み出しDQ0の受信遅延が調整される必要があると決定する。さらに、メモリコントローラ111は、書き込みDQ0の送信遅延を調整し、それによって、書き込みDQ0と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ0の受信遅延を調整し、それによって、読み出しDQ0と読み出しDQSとの間の相対タイミング位置がアライメントされる。
S2003:メモリコントローラ111は、メモリ訓練を完了する。
S2004:メモリコントローラ111は、トリガ命令を受信する。
S2005:メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ1の送信遅延および読み出しDQ1の受信遅延が調整される必要があると決定する。さらに、メモリコントローラ111は、書き込みDQ1の送信遅延を調整し、それによって、書き込みDQ1と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ1の受信遅延を調整し、それによって、読み出しDQ1と読み出しDQSとの間の相対タイミング位置がアライメントされる。
S2006:メモリコントローラ111は、メモリ訓練を完了する。
類推によって、メモリコントローラ111は、前述のルールに従って、書き込みDQ2~書き込みDQ7の送信遅延と、読み出しDQ2~読み出しDQ7の受信遅延とを連続的に調整する。
S2007:メモリコントローラ111は、トリガ命令を受信する。
S2008:メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ7の送信遅延および読み出しDQ7の受信遅延が調整される必要があると決定する。さらに、メモリコントローラ111は、書き込みDQ7の送信遅延を調整し、それによって、書き込みDQ7と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ7の受信遅延を調整し、それによって、読み出しDQ7と読み出しDQSとの間の相対タイミング位置がアライメントされる。
S2009:メモリコントローラ111は、メモリ訓練を完了する。
トリガ命令が次回に受信された後(すなわち、図20に示されるように、S2009からS2001に戻った後)、メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ0の送信遅延および読み出しDQ0の受信遅延が調整される必要があると決定し、さらに、書き込みDQ0の送信遅延を調整し、それによって、書き込みDQ0と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ0の受信遅延を調整し、それによって、読み出しDQ0と読み出しDQSとの間の相対タイミング位置がアライメントされる(S2002)。
前述は、本出願で提供されるメモリ訓練方法を、方法の実施形態の観点から説明している。前述の機能を実装するために、メモリコントローラは、対応する機能を実施するためのハードウェア回路および/またはソフトウェアモジュールを含むことができることが理解されよう。当業者は、本明細書に開示された実施形態で説明された例のステップと組み合わせて、本出願が、ハードウェア、またはハードウェアとコンピュータソフトウェアとの組み合わせによって実装され得ることを容易に認識するはずである。機能が、ハードウェアによって実施されるか、またはコンピュータソフトウェアによって駆動されるハードウェアによって実施されるかは、技術的解決策の特定の用途および設計制約に依存する。当業者は、特定の用途ごとに、説明された機能を実装するために異なる方法を使用し得るが、その実装は本発明の範囲を超える、と考えられるべきではない。
例えば、本出願の実施形態は、メモリコントローラを提供する。メモリコントローラは、前述の実施形態のいずれか1つで提供されるメモリ訓練方法を実装することができる。図21に示されるように、メモリコントローラ2100は、遅延回路2101と制御回路2102とを主に含む。メモリコントローラ2100は、図1に示されるメモリコントローラ111として使用され得る。
可能な実装形態では、遅延回路2101は、制御回路2102の制御下でDQSの伝送遅延を生成することができる。遅延回路2101は、DQSの伝送遅延を調整し、DQSの位相を調整することができる。
例えば、遅延回路2101は、レジスタおよび位相調整器を含んでもよい。位相調整器は、DQSの伝送遅延を生成することができる。レジスタは、制御回路2102が遅延回路2101を制御するための制御インターフェースとして使用され得る。このようにして、制御回路2102は、レジスタを介して遅延回路2101を制御することによって、DQSの伝送遅延を調整することができる。
制御回路2102は、一定の論理演算能力を有する論理回路であってもよく、DQSの伝送遅延を調整するために遅延回路2101を制御することができ、それによって、メモリコントローラ2100は、本出願の実施形態においてDQSの伝送遅延を調整することによってメモリ訓練を実施するための方法を実施することができる。
1つの具体例では、制御回路2102は、N個のDQの伝送遅延を不変に保つために遅延回路2101を制御し、DQSの伝送遅延を調整するために遅延回路2101を制御し、よって、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定することができる。前述のN個のDQおよびDQSはすべてメモリコントローラ2100からメモリチップに伝送されるか、またはすべてメモリチップからメモリコントローラ2100に伝送され、DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。N個のDQおよびDQSがメモリコントローラ2100からメモリチップに伝送される場合、N個のDQの受信端はメモリチップである。N個のDQおよびDQSがメモリチップからメモリコントローラ2100に伝送される場合、N個のDQの受信端はメモリコントローラ2100である。制御回路2102は、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間に位置される目標DQS伝送遅延に調整するために、遅延回路2101を制御する。目標DQS伝送遅延と最大DQS伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上であり、かつ/または目標DQS伝送遅延と最小DQS伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上である。
具体的には、N個のDQおよびDQSはメモリコントローラ2100から伝送されてもよく、DQSの伝送遅延はDQSの送信遅延である。この場合、制御回路2102は、DQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間に位置される目標DQS送信遅延に調整するために、遅延回路2101を制御することができる。
N個のDQおよびDQSは、同様に、メモリチップからメモリコントローラ2100に伝送されてもよく、DQSの伝送遅延はDQSの受信遅延である。この場合、制御回路2102は、DQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間に位置される目標DQS受信遅延に調整するために、遅延回路2101を制御することができる。
次に、制御回路2102が最小DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に低減するために、遅延回路2101を制御することができる。この場合、DQSの伝送遅延は、最小DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、DQSの伝送遅延を第1のDQS伝送遅延に低減するために、遅延回路2101を制御することができる。第1のDQS伝送遅延と低減前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間である。少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路2102は、DQSの伝送遅延を徐々に増加させるために遅延回路2101を制御し、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最小DQS伝送遅延であると決定する。
低減前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に増加させるために遅延回路2101を制御する場合、制御回路2102は、毎回、第1のDQS調整振幅を増加させる様式でDQSの伝送遅延を徐々に増加させるために、遅延回路2101を制御することができる。第1のDQS調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第1のDQS調整振幅は、遅延回路2101によるDQSの伝送遅延の最小調整振幅であり得る。
次に、制御回路2102が最大DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に増加させるために、遅延回路2101を制御することができる。この場合、DQSの伝送遅延は、最大DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、DQSの伝送遅延を第2のDQS伝送遅延に増加させるために、遅延回路2101を制御することができる。第2のDQS伝送遅延と増加前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路2102は、DQSの伝送遅延を徐々に低減するために遅延回路2101を制御し、N個のDQによって運ばれたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最大DQS伝送遅延であると決定する。
増加前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に低減するために遅延回路2101を制御する場合、制御回路2102は、毎回、第2のDQS調整振幅を低減する様式でDQSの伝送遅延を徐々に低減するために、遅延回路2101を制御することができる。第2のDQS調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第2のDQS調整振幅は、遅延回路2101によるDQSの伝送遅延の最小調整振幅であり得る。
別の可能な実装形態では、遅延回路2101は、制御回路2102の制御下で第1のDQの伝送遅延を生成することができる。遅延回路2101は、第1のDQの伝送遅延を調整し、第1のDQの位相を調整することができる。
例えば、遅延回路2101は、レジスタおよび位相調整器を含んでもよい。位相調整器は、第1のDQの伝送遅延を生成することができる。レジスタは、制御回路2102が遅延回路2101を制御するための制御インターフェースとして使用され得る。このようにして、制御回路2102は、レジスタを介して遅延回路2101を制御することによって、第1のDQの伝送遅延を調整することができる。
制御回路2102は、一定の論理演算能力を有する論理回路であってもよく、第1のDQの伝送遅延を調整するために遅延回路2101を制御することができ、それによって、メモリコントローラ2100は、本出願の実施形態において第1のDQの伝送遅延を調整することによってメモリ訓練を実施するための方法を実施することができる。
1つの具体例では、制御回路2102は、DQSの伝送遅延を不変に保つために遅延回路2101を制御し、第1のDQの伝送遅延を調整するために遅延回路2101を制御し、よって、第1のDQによって運ばれたデータが正しく伝送された場合、第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定することができる。DQSおよび第1のDQは両方ともメモリコントローラ2100からメモリチップに伝送されるか、または両方ともメモリチップからメモリコントローラ2100に伝送される。DQSは、第1のDQのレベル状態を識別するために、第1のDQの受信端をトリガすることができる。第1のDQおよびDQSがメモリコントローラ2100からメモリチップに伝送される場合、第1のDQの受信端はメモリチップである。第1のDQおよびDQSがメモリチップからメモリコントローラ2100に伝送される場合、第1のDQの受信端はメモリコントローラ2100である。制御回路2102は、第1のDQの伝送遅延を、最大DQ伝送遅延と最小DQ伝送遅延との間に位置される目標DQ伝送遅延に調整するために、遅延回路2101を制御する。目標DQ伝送遅延と最大DQ伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上であり、かつ/または目標DQ伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上である。
DQSはN個のDQに対応することができ、第1のDQはN個のDQ内に位置される。DQSの伝送遅延を不変に保つために遅延回路2101を制御し、第1のDQの伝送遅延を調整するために遅延回路2101を制御する前に、制御回路2102は、まず、ラウンドロビン規則に従って、N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQを第1のDQとしてさらに決定することができる。
具体的には、第1のDQおよびDQSの両方がメモリコントローラ2100からメモリチップに送信されてもよく、第1のDQの伝送遅延は第1のDQの送信遅延である。この場合、制御回路2102は、第1のDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間に位置される目標DQ送信遅延に調整するために、遅延回路2101を制御することができる。
第1のDQおよびDQSは両方ともメモリチップからメモリコントローラ2100に伝送されてもよく、第1のDQの伝送遅延は第1のDQの受信遅延である。この場合、制御回路2102は、第1のDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間に位置される目標DQ受信遅延に調整するために、遅延回路2101を制御することができる。
次に、制御回路2102が最小DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、第1のDQによって運ばれたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に低減するために、遅延回路2101を制御することができる。この場合、第1のDQの伝送遅延は、最小DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、第1のDQの伝送遅延を第1のDQ伝送遅延に低減するために、遅延回路2101を制御することができる。第1のDQ伝送遅延と低減前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路2102は、第1のDQの伝送遅延を徐々に増加させるために遅延回路2101を制御し、第1のDQによって運ばれたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最小DQ伝送遅延であると決定することができる。
低減前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、第1のDQの伝送遅延を徐々に増加させる場合、制御回路2102は、毎回、第1のDQ調整振幅を増加させる様式で第1のDQの伝送遅延を徐々に増加させるために、遅延回路2101を制御することができる。第1のDQ調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第1のDQ調整振幅は、遅延回路2101による第1のDQの伝送遅延の最小調整振幅である。
次に、制御回路2102が最大DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、第1のDQによって運ばれたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に増加させるために、遅延回路2101を制御することができる。この場合、第1のDQの伝送遅延は、最大DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、第1のDQの伝送遅延を第2のDQ伝送遅延に増加させるために、遅延回路2101を制御することができる。第2のDQ伝送遅延と増加前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQによって運ばれたデータの伝送にエラーが発生した場合、制御回路2102は、第1のDQの伝送遅延を徐々に低減するために遅延回路2101を制御し、第1のDQによって運ばれたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最大DQ伝送遅延であると決定することができる。
増加前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、制御回路2102は、毎回、第2のDQ調整振幅を低減する様式で第1のDQの伝送遅延を徐々に低減するために、遅延回路2101を制御することができる。第2のDQ調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第2のDQ調整振幅は、遅延回路2101による第1のDQの伝送遅延の最小調整振幅であり得る。
同じ技術的概念に基づいて、本出願の実施形態はプロセッサをさらに提供する。プロセッサは、図1に示されるプロセッサ11であってもよい。例えば、プロセッサ11は、プロセッサコア112と、メモリコントローラ111とを含む。プロセッサコア112およびメモリコントローラ111の具体的な実装形態については、前述の実施形態を参照することができる。詳細は、ここでは再度説明されない。
同じ技術的概念に基づいて、本出願の実施形態は、電子デバイスをさらに提供する。電子デバイスは、図1に示される電子デバイス10であってもよく、プロセッサ11とメモリチップ12とを含む。メモリチップ12は、プロセッサ11内のメモリコントローラ111に接続されている。電子デバイスの具体的な実装形態については、前述の実施形態を参照することができる。詳細は、ここでは再度説明されない。
同じ技術的概念に基づいて、本出願の実施形態は、電子デバイスをさらに提供する。図22に示されるように、電子デバイス2200は、プロセッサ11と、メモリチップ12と、メモリコントローラ111とを主に含む。メモリコントローラ111は、前述の実施形態のいずれか1つで提供されるメモリコントローラであってもよい。メモリコントローラ111は、プロセッサ11およびメモリチップ12にそれぞれ接続されている。
プロセッサ11は、トリガ命令をメモリコントローラ111に送信することができる。トリガ命令を受信した後、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を実施することができる。
例えば、プロセッサ11は、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超えると決定した場合、メモリコントローラ111にトリガ命令を送信することができる。過去の周囲温度は、プロセッサがトリガ命令を以前に送信した周囲温度である。
別の例では、プロセッサは、現在の時点とトリガ命令が以前に送信された時点との間の時間間隔が時間閾値を超えると決定した場合、メモリコントローラ111にトリガ命令を送信することができる。
当業者は、本出願の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを理解するはずである。したがって、本出願は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組み合わせを伴う実施形態の形態を使用することができる。加えて、本出願は、コンピュータ使用可能プログラムコードを含む1つ以上のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、および光メモリなどを含むが、これらに限定されない)上に実装されるコンピュータプログラム製品の形態を使用することができる。
本出願は、本出願による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。コンピュータプログラム命令は、フローチャートおよび/またはブロック図における各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図におけるプロセスおよび/またはブロックの組み合わせを実装するために使用され得ることを理解されたい。これらのコンピュータプログラム命令は、マシンを生成するために汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または他のプログラマブルデータ処理デバイスのプロセッサに提供されてもよく、それによって、コンピュータまたは他のプログラマブルデータ処理デバイスのプロセッサによって実行される命令を介して、フローチャート内の1つ以上のフローおよび/またはブロック図内の1つ以上のブロックに特定される機能を実装するための装置が生成される。
コンピュータプログラム命令は、特定の様式で作業するようにコンピュータまたは別のプログラマブルデータ処理デバイスに指示することができるコンピュータ可読メモリに代替的に記憶されてもよく、それによって、コンピュータ可読メモリに記憶された命令が命令装置を含むアーティファクトを生成する。命令装置は、フローチャートの1つ以上の手順の、および/またはブロック図の1つ以上のブロックの特定の機能を実装する。
コンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイス上に代替的にロードされてもよく、それによって、一連の動作およびステップは、コンピュータまたは別のプログラマブルデバイス上で実施され、それによって、コンピュータ実装処理が生成される。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャートの1つ以上の手順および/またはブロック図の1つ以上のブロックにおける特定の機能を実装するためのステップを提供する。
当業者が、本出願の趣旨および範囲から逸脱することなく、本出願に様々な修正および変形を行うことができることは明らかである。本出願は、以下の特許請求の範囲およびそれらと同等の技術によって規定される保護範囲内に入る限り、本出願のこれらの修正および変形を包含することが意図されている。
10 電子デバイス
11 プロセッサ
12 メモリチップ
13 メモリバス
14 温度センサ
111 メモリコントローラ
112 プロセッサコア
2100 メモリコントローラ
2101 遅延回路
2102 制御回路
2200 電子デバイス
関連出願の相互参照
本出願は、2020年9月30日に中国国家知識産権局に出願され、「MEMORY TRAINING METHOD、MEMORY CONTROLLER、PROCESSOR、AND ELECTRONIC DEVICE」と題された中国特許出願第202011063745.4号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
本出願は、メモリ訓練技術の分野に関し、特に、メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイスに関する。
現在の電子デバイスのほとんどでは、プロセッサとメモリチップとが一体化されている。メモリチップは、プロセッサの動作基盤であり、プロセッサは、メモリコントローラを介してメモリチップに結合され得る。メモリコントローラは、メモリバスを介してメモリチップに接続される。メモリバスは、少なくとも1つのデータ信号線と、タイミング信号線とを主に含む。各データ信号線は、データ信号を伝送することができる。本出願では、データ信号を表すためにDQが使用される。DQは、DDRプロトコルとも呼ばれるダブルデータレート同期ダイナミックランダムアクセスメモリ(DDR SDRAM)プロトコルで定義されるデータ信号の略称である。タイミング信号線は、データストローブ信号を伝送することができる。本出願では、データストローブ信号を表すためにDQSが使用される。DQSは、DDRプロトコルで定義されるデータストローブ信号の略称である。DQおよびDQSは両方とも周期信号であり、一般に同じ周期長を有する。
ほとんどの場合、プロセッサは、メモリコントローラを介してメモリチップからデータを読み出すか、またはメモリコントローラを介してメモリチップにデータを書き込むことができる。メモリコントローラによってメモリチップからデータを読み出すプロセスにおいて、メモリコントローラは、メモリチップに、メモリコントローラにDQおよびDQSを送信するように命令することができる。DQは、メモリチップ内のメモリコントローラによって読み出されるデータを搬送することができる。DQSは、DQのレベル状態を識別するためにメモリコントローラをトリガすることができる。メモリコントローラは、DQ信号のレベル状態に基づいて、DQ信号で搬送されたデータをさらに取得することができる。
メモリコントローラによってメモリチップにデータを書き込むプロセスにおいて、メモリコントローラは、メモリチップにDQおよびDQSを送信することができる。DQはメモリコントローラによってメモリチップに書き込まれるデータを搬送することができる。DQSは、DQのレベル状態を識別するためにメモリチップをトリガすることができる。さらに、DQで搬送されたデータは、メモリチップに書き込まれ得る。
メモリコントローラによってメモリチップからデータを読み出す前述のプロセス、およびメモリコントローラによってメモリチップにデータを書き込むプロセスから、メモリコントローラとメモリチップとの間のデータ伝送の精度は、DQSとDQとの間の相対タイミング位置のアライメントに依存することが知見され得る。言い換えれば、DQがDQSに対して十分なタイミングマージンを有する場合にのみ、DQの受信端は低いビットエラーレートを有することができ、それによってデータ伝送の精度を保証することができる。
ほとんどの電子デバイスは、電源が投入された後に、複雑なメモリ訓練を含み、DQSとDQとの間の相対タイミング位置を正確にアライメントすることができるメモリ初期化を実施するが、DQSとDQとの間の相対タイミング位置は、電子デバイスが周囲温度および誤差蓄積などの客観的要因のためにメモリ初期化を完了した後も依然としてオフセットであり得る。しかしながら、メモリ訓練に使用される現在の方法は、過度に長時間を要する。したがって、メモリ訓練は、電子デバイスの作業プロセスにおいて繰り返し実施されることができない。電子デバイスの作業時間が長くなるにつれて、DQSとDQとの間の相対タイミング位置オフセットが徐々に増加される。電子デバイスにおいて、メモリコントローラとメモリチップとの間のデータ伝送のビットエラーレートが徐々に増加され、それに応じてデータ伝送の精度が低減される。
これを考慮して、本出願は、短時間で同じ方向に伝送されるDQSとDQとの間の相対タイミング位置をアライメントするのに役立つメモリ訓練方法を提供する。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、その結果、メモリコントローラとメモリチップとの間で伝送されるDQは、十分なタイミングマージンを保つ。
第1の態様によれば、本出願の実施形態は、メモリ訓練方法を提供する。本方法は、メモリコントローラに適用されてもよく、以下のステップを主に含む:メモリコントローラは、N個のDQの伝送遅延を不変に保ち、DQSの伝送遅延を調整し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定する。メモリコントローラは、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間目標DQS伝送遅延に調整する。目標DQS伝送遅延と最大DQS伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上であり、かつ/または目標DQS伝送遅延と最小DQS伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上である。
本出願の実施形態では、N個のDQおよびDQSは、同じ方向に伝送される信号である。例えば、N個のDQおよびDQSはすべてメモリコントローラからメモリチップに伝送されるか、またはN個のDQおよびDQSはすべてメモリチップからメモリコントローラに伝送される。DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。メモリコントローラによるDQSの伝送遅延の調整は、DQSの位相を調整するために使用される。
具体的には、N個のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、N個のDQの受信端はメモリチップであり、DQSの伝送遅延はDQSの送信遅延である。メモリコントローラは、DQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間目標DQS送信遅延に調整する。目標DQS送信遅延と最大DQS送信遅延との間の間隔は、メモリチップに適用可能な目標ホールド時間以上であり、かつ/または目標DQS送信遅延と最小DQS送信遅延との間の間隔は、メモリチップに適用可能な目標セットアップ時間以上である。この場合、N個のDQで搬送されたすべてのデータが正しく伝送されるという条件は、メモリチップがN個のDQのレベル状態を正しく識別することができ、その結果、N個のDQで搬送されたすべてのデータがメモリチップに正しく書き込まれ得ることと理解され得る。
N個のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、N個のDQの受信端はメモリコントローラであり、DQSの伝送遅延はDQSの受信遅延である。メモリコントローラは、DQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間目標DQS受信遅延に調整する。目標DQS受信遅延と最大DQS受信遅延との間の間隔は、メモリコントローラに適用可能な目標ホールド時間以上であり、かつ/または目標DQS受信遅延と最小DQS受信遅延との間の間隔は、メモリコントローラに適用可能な目標セットアップ時間以上である。この場合、N個のDQで搬送されたすべてのデータが正しく伝送されるという条件は、メモリコントローラがN個のDQのレベル状態を正しく識別することができ、その結果、N個のDQで搬送されたデータが正しく読み出され得ることと理解され得る。
本出願の実施形態で提供される技術的解決策では、メモリコントローラは、DQSの伝送遅延を調整することによって、N個のDQとDQSとの間の相対タイミング位置をアライメントすることができ、その結果、N個のDQは十分なタイミングマージンを有する。DQSおよびN個のDQの伝送遅延がそれぞれ調整されるメモリ訓練解決策と比較して、本出願の実施形態では、伝送遅延調整ステップが低減され、それによってDQSとN個のDQとの間の相対タイミング位置を迅速にアライメントするのに役立つ。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、その結果、N個のDQは十分なタイミングマージンを保つ。
次に、メモリコントローラが最小DQS伝送遅延を決定する具体的な実装形態が例としてさらに説明される
可能な実装形態では、メモリコントローラは、少なくとも1つのDQで搬送されたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に低減することができる。この場合、DQSの伝送遅延は、最小DQS伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、最初に、DQSの伝送遅延を第1のDQS伝送遅延に低減することができる。第1のDQS伝送遅延と低減前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間である。少なくとも1つのDQで搬送されたデータの伝送にエラーが発生した場合、メモリコントローラは、DQSの伝送遅延を徐々に増加させ、N個のDQで搬送されたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最小DQS伝送遅延であると決定する。
低減前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、メモリコントローラがこのメモリ訓練の実施を開始する前の、またはメモリコントローラがこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
受信端に適用可能な目標セットアップ時間は、通常、DQの半周期の持続時間未満であるので、低減されたDQSの伝送遅延と最小伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間を超えない。この実装形態により、DQSの伝送遅延を調整するステップは低減されることができ、最小DQS伝送遅延が迅速に決定され得る。
例えば、DQSの伝送遅延を徐々に増加させる場合、メモリコントローラは、毎回、第1のDQS調整振幅を増加させる様式でDQSの伝送遅延を徐々に増加させることができる。第1のDQS調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第1のDQS調整振幅は、メモリコントローラによるDQSの伝送遅延の最小調整振幅であり得る。
次に、メモリコントローラが最大DQS伝送遅延を決定する具体的な実装形態が例としてさらに説明される
可能な実装形態では、メモリコントローラは、少なくとも1つのDQで搬送されたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に増加させることができる。この場合、DQSの伝送遅延は、最大DQS伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、DQSの伝送遅延を第2のDQS伝送遅延に増加させることができる。第2のDQS伝送遅延と増加前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。少なくとも1つのDQで搬送されたデータの伝送にエラーが発生した場合、メモリコントローラは、DQSの伝送遅延を徐々に低減し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最大DQS伝送遅延であると決定する。
増加前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、メモリコントローラがこのメモリ訓練の実施を開始する前の、またはメモリコントローラがこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
この実装形態は、DQSの伝送遅延を調整する回数を低減するのに役立ち、よって、最大DQS伝送遅延を迅速に決定するのに役立つ。具体的な分析は、前述の最小DQS伝送遅延の決定と同様であり、詳細は、ここでは再度説明されない。
例えば、DQSの伝送遅延を徐々に低減する場合、メモリコントローラは、毎回、第2のDQS調整振幅を低減することによってDQSの伝送遅延を徐々に低減することができる。第2のDQS調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第2のDQS調整振幅は、メモリコントローラによるDQSの伝送遅延の最小調整振幅であり得る。
第2の態様によれば、本出願の実施形態は、メモリ訓練方法を提供する。本方法は、メモリコントローラに適用されてもよく、以下のステップを主に含む:メモリコントローラは、DQSの伝送遅延を不変に保ち、第1のDQの伝送遅延を調整し、第1のDQで搬送されたデータが正しく伝送された場合、第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定する。メモリコントローラは、第1のDQの伝送遅延を、最大DQ伝送遅延と最小DQ伝送遅延との間目標DQ伝送遅延に調整する。目標DQ伝送遅延と最大DQ伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上であり、かつ/または目標DQ伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上である。
本出願の実施形態では、DQSおよび第1のDQは、同じ方向に伝送される信号である。例えば、DQSおよび第1のDQは両方ともメモリコントローラからメモリチップに伝送されてもよく、または両方ともメモリチップからメモリコントローラに伝送されてもよい。DQSは、第1のDQのレベル状態を識別するために、第1のDQの受信端をトリガすることができる。メモリコントローラによる第1のDQの伝送遅延の調整は、第1のDQの位相を調整するために使用される。
具体的には、第1のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、第1のDQの受信端はメモリチップであり、第1のDQの伝送遅延は第1のDQの送信遅延であり、メモリコントローラは、第1のDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間目標DQ送信遅延に調整する。目標DQ送信遅延と最大DQ送信遅延との間の間隔は、メモリチップに適用可能な目標セットアップ時間以上であり、かつ/または目標DQ送信遅延と最小DQ送信遅延との間の間隔は、目標チップに適用可能な目標セットアップ時間以上である。
第1のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、第1のDQの受信端はメモリコントローラであり、第1のDQの伝送遅延は第1のDQの受信遅延であり、メモリコントローラは、第1のDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間目標DQ受信遅延に調整する。目標DQ受信遅延と最大DQ受信遅延との間の間隔は、メモリコントローラに適用可能な目標セットアップ時間以上であり、かつ/または目標DQ受信遅延と最小DQ受信遅延との間の間隔は、メモリコントローラに適用可能な目標ホールド時間以上である。
本出願の実施形態では、DQSはN個のDQに対応することができ、すなわち、DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。本出願の実施形態では、第1のDQはN個のDQ内に位置され、DQのうちの1つであり得る。この場合、第1のDQの伝送遅延を調整する前に、メモリコントローラは、ラウンドロビン規則に従って、N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQが第1のDQであるとさらに決定することができる。
本出願の実施形態では、メモリコントローラは、各メモリ訓練プロセスにおいて、1つのみのDQ(第1のDQ)の伝送遅延を調整する。DQSおよびDQの伝送遅延がそれぞれ調整されるメモリ訓練解決策と比較して、本出願の実施形態は、伝送遅延調整ステップを低減し、それによって、DQSと第1のDQとの間の相対タイミング位置を迅速にアライメントするのに役立つ。加えて、1つのDQの伝送遅延が調整されるとき、プロセッサは別のDQを介してメモリチップに依然としてアクセスすることができ、それによってプロセッサの動作に対するメモリ訓練の影響をさらに低減する。したがって、メモリ訓練は、プロセッサの作業プロセスにおいて繰り返し実施されてもよく、その結果、N個のDQは十分なタイミングマージンを保つ。
次に、制御回路が最小DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、メモリコントローラは、第1のDQで搬送されたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に低減することができる。この場合、第1のDQの伝送遅延は、最小DQ伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、第1のDQの伝送遅延を第1のDQ伝送遅延に低減することができる。第1のDQ伝送遅延と低減前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQで搬送されたデータの伝送にエラーが発生した場合、メモリコントローラは、第1のDQの伝送遅延を徐々に増加させ、第1のDQで搬送されたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最小DQ伝送遅延であると決定することができる。
低減前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、メモリコントローラがこのメモリ訓練の実施を開始し得る前の、またはメモリコントローラがこのメモリ訓練の実施を開始し得るときの第1のDQの伝送遅延であってもよい。
受信端に適用可能な目標ホールド時間は、通常、第1のDQの半周期未満であり、第1のDQの低減された伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間を超えない。したがって、この実装形態は、第1のDQ伝送遅延を調整する回数を低減するのに役立ち、その結果、最小DQ伝送遅延が迅速に決定され得る。
例えば、第1のDQの伝送遅延を徐々に増加させる場合、メモリコントローラは、毎回、第1のDQ調整振幅を増加させる様式で第1のDQの伝送遅延を徐々に増加させることができる。第1のDQ調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第1のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅である。
次に、メモリコントローラが最大DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、メモリコントローラは、第1のDQで搬送されたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に増加させることができる。この場合、第1のDQの伝送遅延は、最大DQ伝送遅延として使用され得る。
別の可能な実装形態では、メモリコントローラは、第1のDQの伝送遅延を第2のDQ伝送遅延に増加させることができる。第2のDQ伝送遅延と増加前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQで搬送されたデータの伝送にエラーが発生した場合、制御回路は、第1のDQの伝送遅延を徐々に低減するために遅延回路を制御し、第1のDQで搬送されたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最大DQ伝送遅延であると決定することができる。
増加前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
この実装形態は、第1のDQ伝送遅延を調整する回数を低減するのに役立ち、よって、最大DQ伝送遅延を迅速に決定するのに役立つ。具体的な分析は、前述の最小DQ伝送遅延の決定と同様であり、詳細は、ここでは再度説明されない。
例えば、制御回路は、毎回、第2のDQ調整振幅を低減することによって第1のDQの伝送遅延を徐々に低減するために、遅延回路を制御することができる。第2のDQ調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第2のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅であり得る。
第3の態様によれば、本出願の実施形態は、メモリコントローラを提供する。メモリコントローラは、第1の態様のいずれか1つで提供されるメモリ訓練方法を実装することができる。第3の態様における対応する解決策の技術的効果については、第1の態様における対応する解決策によって得られ得る技術的効果を参照することができる。繰り返しについては詳細に説明されない
例えば、メモリコントローラは、遅延回路と制御回路とを主に含む。遅延回路は、制御回路の制御下でDQSの伝送遅延を生成することができる。遅延回路は、DQSの伝送遅延を調整し、DQSの位相を調整することができる。制御回路は、N個のDQの伝送遅延を不変に保つために遅延回路を制御し、DQSの伝送遅延を調整するために遅延回路を制御し、よって、N個のDQで搬送されたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定することができる。前述のN個のDQおよびDQSはすべてメモリコントローラからメモリチップに伝送されるか、またはすべてメモリチップからメモリコントローラに伝送され、DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。N個のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、N個のDQの受信端はメモリチップである。N個のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、N個のDQの受信端はメモリコントローラである。制御回路は、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間目標DQS伝送遅延に調整するために、遅延回路を制御する。目標DQS伝送遅延と最大DQS伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上であり、かつ/または目標DQS伝送遅延と最小DQS伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上である。
具体的には、N個のDQおよびDQSはメモリコントローラから伝送されてもよく、DQSの伝送遅延はDQSの送信遅延である。この場合、制御回路は、DQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間目標DQS送信遅延に調整するために、遅延回路を制御することができる。
N個のDQおよびDQSは、同様に、メモリチップからメモリコントローラに伝送されてもよく、DQSの伝送遅延はDQSの受信遅延である。この場合、制御回路は、DQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間目標DQS受信遅延に調整するために、遅延回路を制御することができる。
次に、制御回路が最小DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、少なくとも1つのDQで搬送されたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に低減するために、遅延回路を制御することができる。この場合、DQSの伝送遅延は、最小DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、DQSの伝送遅延を第1のDQS伝送遅延に低減するために、遅延回路を制御することができる。第1のDQS伝送遅延と低減前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間である。少なくとも1つのDQで搬送されたデータの伝送にエラーが発生した場合、制御回路は、DQSの伝送遅延を徐々に増加させるために遅延回路を制御し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最小DQS伝送遅延であると決定する。
低減前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に増加させるために遅延回路を制御する場合、制御回路は、毎回、第1のDQS調整振幅を増加させる様式でDQSの伝送遅延を徐々に増加させるために、遅延回路を制御することができる。第1のDQS調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第1のDQS調整振幅は、遅延回路によるDQSの伝送遅延の最小調整振幅であり得る。
次に、制御回路が最大DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、少なくとも1つのDQで搬送されたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に増加させるために、遅延回路を制御することができる。この場合、DQSの伝送遅延は、最大DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、DQSの伝送遅延を第2のDQS伝送遅延に増加させるために、遅延回路を制御することができる。第2のDQS伝送遅延と増加前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。少なくとも1つのDQで搬送されたデータの伝送にエラーが発生した場合、制御回路は、DQSの伝送遅延を徐々に低減するために遅延回路を制御し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最大DQS伝送遅延であると決定する。
増加前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に低減するために遅延回路を制御する場合、制御回路は、毎回、第2のDQS調整振幅を低減することによってDQSの伝送遅延を徐々に低減するために、遅延回路を制御することができる。第2のDQS調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第2のDQS調整振幅は、遅延回路によるDQSの伝送遅延の最小調整振幅であり得る。
第4の態様によれば、本出願の実施形態は、メモリコントローラを提供する。メモリコントローラは、第2の態様のいずれか1つで提供されるメモリ訓練方法を実装することができる。第4の態様における対応する解決策の技術的効果については、第2の態様における対応する解決策によって得られ得る技術的効果を参照されたい。繰り返しについては詳細に説明されない。例えば:
遅延回路は、制御回路の制御下で第1のDQの伝送遅延を生成することができる。遅延回路は、第1のDQの伝送遅延を調整し、第1のDQの位相を調整することができる。制御回路は、DQSの伝送遅延を不変に保つために遅延回路を制御し、第1のDQの伝送遅延を調整するために遅延回路を制御し、よって、第1のDQで搬送されたデータが正しく伝送された場合、第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定することができる。DQSおよび第1のDQは両方ともメモリコントローラからメモリチップに伝送されるか、または両方ともメモリチップからメモリコントローラに伝送される。DQSは、第1のDQのレベル状態を識別するために、第1のDQの受信端をトリガすることができる。第1のDQおよびDQSがメモリコントローラからメモリチップに伝送される場合、第1のDQの受信端はメモリチップである。第1のDQおよびDQSがメモリチップからメモリコントローラに伝送される場合、第1のDQの受信端はメモリコントローラである。制御回路は、第1のDQの伝送遅延を、最大DQ伝送遅延と最小DQ伝送遅延との間目標DQ伝送遅延に調整するために、遅延回路を制御する。目標DQ伝送遅延と最大DQ伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上であり、かつ/または目標DQ伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上である。
DQSはN個のDQに対応することができ、第1のDQはN個のDQ内に位置される。DQSの伝送遅延を不変に保つために遅延回路を制御し、第1のDQの伝送遅延を調整するために遅延回路を制御する前に、制御回路は、まず、ラウンドロビン規則に従って、N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQを第1のDQとして、さらに決定することができる。
具体的には、第1のDQおよびDQSの両方がメモリコントローラからメモリチップに送信されてもよく、第1のDQの伝送遅延は第1のDQの送信遅延である。この場合、制御回路は、第1のDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間目標DQ送信遅延に調整するために、遅延回路を制御することができる。
第1のDQおよびDQSは両方ともメモリチップからメモリコントローラに伝送されてもよく、第1のDQの伝送遅延は第1のDQの受信遅延である。この場合、制御回路は、第1のDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間目標DQ受信遅延に調整するために、遅延回路を制御することができる。
次に、制御回路が最小DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、第1のDQで搬送されたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に低減するために、遅延回路を制御することができる。この場合、第1のDQの伝送遅延は、最小DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、第1のDQの伝送遅延を第1のDQ伝送遅延に低減するために、遅延回路を制御することができる。第1のDQ伝送遅延と低減前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQで搬送されたデータの伝送にエラーが発生した場合、制御回路は、第1のDQの伝送遅延を徐々に増加させるために遅延回路を制御し、第1のDQで搬送されたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最小DQ伝送遅延であると決定することができる。
低減前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、第1のDQの伝送遅延を徐々に増加させるために遅延回路を制御する場合、制御回路は、毎回、第1のDQ調整振幅を増加させる様式で第1のDQの伝送遅延を徐々に増加させるために、遅延回路を制御することができる。第1のDQ調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第1のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅である。
次に、制御回路が最大DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路は、第1のDQで搬送されたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に増加させるために、遅延回路を制御することができる。この場合、第1のDQの伝送遅延は、最大DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路は、第1のDQの伝送遅延を第2のDQ伝送遅延に増加させるために、遅延回路を制御することができる。第2のDQ伝送遅延と増加前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQで搬送されたデータの伝送にエラーが発生した場合、制御回路は、第1のDQの伝送遅延を徐々に低減するために遅延回路を制御し、第1のDQで搬送されたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最大DQ伝送遅延であると決定することができる。
増加前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、制御回路は、毎回、第2のDQ調整振幅を低減することによって第1のDQの伝送遅延を徐々に低減するために、遅延回路を制御することができる。第2のDQ調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第2のDQ調整振幅は、遅延回路による第1のDQの伝送遅延の最小調整振幅であり得る。
第5の態様によれば、本出願の実施形態は、メモリ訓練装置を提供する。メモリ訓練装置は、メモリコントローラであってもよい。例えば、メモリ訓練装置は、第1の態様または第2の態様のいずれか1つで提供されるメモリ訓練方法を実施することができる。具体的には、第2の通信装置は、例えば、制御ユニットおよび遅延ユニットを含む、第2の態様の方法または可能な実装形態のいずれか1つを実施するように構成されたモジュールを含んでもよい。
例えば、遅延ユニットは、DQSまたは第1のDQに伝送遅延を適用することができ、制御ユニットは、遅延ユニットを制御することによって、DQSまたは第1のDQの伝送遅延を調整することができ、その結果、メモリ訓練装置は、第1の態様または第2の態様のいずれか1つで提供されるメモリ訓練方法を実施することができる。
第6の態様によれば、本出願の実施形態は、プロセッサをさらに提供する。プロセッサは、第3の態様または第4の態様のいずれか1つで提供されるプロセッサコアおよびメモリコントローラを含んでもよい。プロセッサコアは、メモリコントローラにトリガ命令を送信することができる。メモリコントローラは、トリガ命令を受信した後にメモリ訓練を実施することができる。
例えば、プロセッサコアは、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。過去の周囲温度は、プロセッサコアがトリガ命令を以前に送信した周囲温度である。
例えば、プロセッサコアは、現在の時点と、プロセッサコアがメモリ訓練を以前に完了した時点との間の時間間隔が時間閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。
第7の態様によれば、本出願は、電子デバイスを提供する。電子デバイスは、第6の態様で提供されるプロセッサと、メモリチップとを含んでもよい。メモリチップは、プロセッサ内のメモリコントローラに接続される。
第8の態様によれば、本出願の実施形態は、電子デバイスを提供する。電子デバイスは、プロセッサと、メモリチップと、メモリコントローラとを主に含む。メモリコントローラは、第3の態様または第4の態様のいずれか1つで提供されるメモリコントローラであってもよい。メモリコントローラは、プロセッサおよびメモリチップにそれぞれ接続される。
プロセッサは、メモリコントローラにトリガ命令を送信することができる。メモリコントローラは、トリガ命令を受信した後にメモリ訓練を実施することができる。
例えば、プロセッサは、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。過去の周囲温度は、プロセッサがトリガ命令を以前に送信した周囲温度である。
別の例では、プロセッサは、現在の時点とトリガ命令が以前に送信された時点との間の時間間隔が時間閾値を超えると決定した場合、メモリコントローラにトリガ命令を送信することができる。
第9の態様によれば、本出願の実施形態は、コンピュータ可読記憶媒体をさらに提供する。コンピュータ可読記憶媒体は、命令を記憶する。命令がメモリコントローラ上で実行されると、メモリコントローラは、前述の態様の方法を実施することを可能にされる。
第10の態様によれば、本出願の実施形態は、命令を含むコンピュータプログラム製品をさらに提供する。命令がメモリコントローラ上で実行されると、メモリコントローラは、前述の態様の方法を実施することを可能にされる。
本出願のこれらの態様または他の態様は、以下の実施形態の説明においてより明確かつより分かりやすくなる。
電子デバイスの構の概略図である。 DQとDQSとの間の対応関係の概略図である。 メモリコントローラ内のレジスタの概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する別の概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 メモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 メモリ初期化手順の概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態による、DQとDQSとの間の相対タイミング位置関係の概略図である。 本出願の一実施形態による、最大DQS送信遅延および/または最小DQS送信遅延を決定するための方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQSの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQSの伝送遅延を調整する別の概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整する別の概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQおよびDQSの伝送遅延を調整するさらに別の概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態による最大DQ送信遅延および/または最小DQ送信遅延の概略図である。 本出願の一実施形態による、最大DQ送信遅延および/または最小DQ送信遅延を決定するための方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練方法の概略フローチャートである。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるメモリ訓練プロセスにおけるDQの伝送遅延を調整する概略図である。 本出願の一実施形態によるラウンドロビン規則の概略図である。 本出願の一実施形態によるメモリコントローラの構造の略図である。 本出願の一実施形態による電子デバイスの構造の略図である。
本出願の目的、技術的解決策および利点をより明確にするために、以下で、添付の図面を参照して本出願を詳細にさらに説明する。方法実施形態における具体的な動作方法はまた、装置実施形態またはシステム実施形態に適用されてもよい。本出願の説明では、「少なくとも1つ」とは、1つ以上を意味し、「複数の」とは、2つ以上を意味することに留意されたい。これを考慮して、本発明の実施形態では、「複数の」はまた、「少なくとも2つ」として理解されてもよい。「および/または」という用語は、関連する対象物を説明するための関連関係を説明し、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の3つのケース:Aのみが存在する、AおよびBの両方が存在する、ならびにBのみが存在する、を表し得る。加えて、文字「/」は、一般に、関連する対象物間の「または」の関係を示す。加えて、本出願の説明では、「第1」および「第2」などの用語は、区別および説明のために使用されているにすぎず、相対的な重要性を示すまたは暗示するものとして理解されるべきではないし、または順序を示すまたは暗示するものとして理解されるべきではないことを理解されたい。
以下、本出願の実施形態における添付の図面を参照して、本出願の実施形態における技術的解決策を、明確に説明する。
電子デバイス(例えば、スマートフォン、タブレットコンピュータ、基地局、スマートカメラ、自動運転車など)において、メモリチップは、プロセッサの動作基盤である。プロセッサは、メモリコントローラを介してメモリチップに結合され得る。メモリコントローラは、プロセッサに接続されてもよく、またはプロセッサの内部に一体化されてもよい。
例えば、図1に示されるように、電子デバイス10は、プロセッサ11と、メモリチップ12とを主に含む。プロセッサ11は、プロセッサコア112と、メモリコントローラ111とを含む。別の可能なアーキテクチャでは、メモリコントローラ111は、プロセッサ11の外部に位置される。詳細は、ここでは再度説明されない。
本出願の実施形態では、プロセッサコア112は、論理演算能力を有する論理回路であってもよい。メモリチップ12は、DDR SDRAMをサポートするメモリチップであってもよい。DDR SDRAMは、通常、略してDDRと呼ばれる。例えば、メモリチップ12は、低電力DDR5(LPDDR5)などの第5世代DDR(DDR5)をサポートし得る。メモリチップ12はまた、低電力DDR4(LPDDR4)などの第4世代DDR(DDR4)をサポートし得る。
図1では、メモリコントローラ111とメモリチップ12とは、メモリバス13を介して接続されている。メモリバス13は、複数のデータ信号線(図1のデータ信号線L0~L7)と、複数のタイミング信号線(図1のタイミング信号線LS-P、LS-N)とを主に含む。
データ信号線L0~データ信号線L7は、8個のデータ信号(DQ)を並列に伝送してもよい。例えば、データ信号線L0がDQ0を伝送し、データ信号線L1がDQ1を伝送し、...、データ信号線L7がDQ7を伝送してもよい。DQは周期デジタル信号であり、したがってデータを搬送することができることを理解されたい。例えば、DQは、1ビットのデータを1周期で伝送することができる。1ビットデータ「0」はローレベル周期に伝送され、1ビットデータ「1」はハイレベル周期に伝送され得る。データ信号線L0~データ信号線L7は、8個のDQを並列に伝送することができるので、データ信号線L0~データ信号線L7は、1周期に合計8ビットのデータを伝送する。
DQはデジタル信号であるため、DQの受信端は、DQのレベル状態を正しく識別し、よってDQで搬送されるデータを正しく取得するために、DQと同じ周期を有するクロック信号を使用してDQの周期を正しく区別することができることが理解されよう。これを考慮して、メモリバス13は、タイミング信号線LS-Nと、タイミング信号線LS-Pとをさらに含んでもよい。タイミング信号線LS-Nおよびタイミング信号線LS-Pは、データストローブ信号(DQS)を伝送することができる。
具体的には、タイミング信号線LS-NはDQS-Nを伝送し、タイミング信号線LS-PはDQS-Pを伝送することができる。DQS-NおよびDQS-Pは反転信号である。例えば、DQS-NおよびDQS-Pは、図2に示され得る。DQSは、DQS-NおよびDQS-Pを含む。DQSは、DQに対応するクロック信号として使用されてもよく、DQの送信端および受信端と同じ送信端および受信端を有し、DQのレベル状態を識別するためにDQの受信端をトリガすることができる。説明を容易にするために、本出願の実施形態では、DQSは、以下、DQS-NおよびDQS-Pを表す。
メモリコントローラ111とメモリチップ12との間の双方向データ伝送は、メモリバス13を介して実装され得ることに留意されたい。例えば、メモリコントローラ111によってメモリチップ12にデータを書き込むプロセスにおいて、メモリコントローラ111はDQSおよびDQの送信端として使用されてもよく、メモリチップ12はDQSおよびDQの受信端として使用されてもよい。メモリコントローラ111によってメモリチップ12からデータを読み出すプロセスにおいて、メモリチップ12はDQSおよびDQの送信端として使用されてもよく、メモリコントローラ111はDQSおよびDQの受信端として使用されてもよい。
説明を容易にするために、本出願の実施形態では、書き込みDQおよび書き込みDQSは、メモリコントローラ111によってメモリチップ12にデータを書き込むプロセスにおいてメモリコントローラ111によってメモリチップ12に送信されるDQおよびDQSをそれぞれ示すために使用される。読み出しDQおよび読み出しDQSは、メモリコントローラ111によってメモリチップ12からデータを読み出すプロセスにおいてメモリチップ12によってメモリコントローラ111に送信されるDQおよびDQSをそれぞれ示すために使用される。書き込みDQは、書き込みDQ0~書き込みDQ7を含み、読み出しDQは、読み出しDQ0~読み出しDQ7を含む。
次に、データ書き込みおよびデータ読み出しの具体的な実装形態がそれぞれ説明される。
シナリオ1:メモリコントローラ111がメモリチップ12にデータを書き込む
プロセッサ11の実行プロセスにおいて、プロセッサコア112は、メモリチップ12にデータを書き込むためにメモリコントローラ111を呼び出すことができる。プロセッサコア112によってメモリコントローラ111を呼び出す具体的な実装形態については、従来技術を参照されたい。これは、本出願の実施形態では限定されない。
メモリコントローラ111は、プロセッサコア112によって呼び出された場合、メモリチップ12にデータを書き込むことができる。具体的には、メモリコントローラ111は、データ信号線L0~データ信号線L7を介して、書き込みDQ0~書き込みDQ7をメモリチップ12に送信することができる。メモリコントローラ111によって送信された書き込みDQ0~書き込みDQ7は、メモリチップ12に書き込まれる必要がある目標書き込みデータを搬送することができる。
メモリコントローラ111によってメモリチップ12にデータを書き込むプロセスにおいて、メモリコントローラ111は、メモリチップ12に書き込みDQSをさらに送信する。書き込みDQSは、書き込みDQ0~書き込みDQ7のレベル状態を識別するためにメモリチップ12をトリガすることができる。メモリチップ12は、識別されたレベル状態に基づいて、書き込みDQ0~書き込みDQ7で搬送されたデータをさらに記憶することができ、その結果、データがメモリチップ12に書き込まれる。
一般に、メモリコントローラ111によってメモリチップ12に送信される書き込みDQSにおいて、書き込みDQS-Nと書き込みDQS-Pとの交点(図2に示されるように)は、書き込みDQのレベル状態を識別するためにメモリチップ12をトリガするトリガ点として使用され得る。言い換えれば、メモリチップ12が、受信した書き込みDQSが交点にあると決定した場合、メモリチップ12は、書き込みDQ0~書き込みDQ7の現在のレベル状態を識別することができる。したがって、書き込みDQ0~書き込みDQ7で搬送された目標書き込みデータは、メモリチップ12に書き込まれ得る。
例えば、目標書き込みデータが11010011である場合、データは、書き込みDQSの同じ交点に対応する。この場合、書き込みDQ0~書き込みDQ7それぞれ搬送されるデータは、以下の通りである。書き込みDQ0は、「1」を搬送することができる。書き込みDQ1は、「1」を搬送することができる。書き込みDQ2は、「0」を搬送することができる。書き込みDQ3は、「1」を搬送することができる。書き込みDQ4は、「0」を搬送することができる。書き込みDQ5は、「0」を搬送することができる。書き込みDQ6は、「1」を搬送することができる。書き込みDQ7は、「1」を搬送することができる。
受信した書き込みDQSが交点にあると決定した場合、メモリチップ12は、受信した書き込みDQ0~DQ7のレベル状態を識別することができる。先の例では、書き込みDQ0はハイレベルにあり(「1」を搬送する)、書き込みDQ1はハイレベルにあり(「1」を搬送する)、書き込みDQ2はローレベルにあり(「0」を搬送する)、書き込みDQ3はハイレベルにあり(「1」を搬送する)、書き込みDQ4はローレベルにあり(「0」を搬送する)、書き込みDQ5はローレベルにあり(「0」を搬送する)、書き込みDQ6はハイレベルにあり(「1」を搬送する)、書き込みDQ7はハイレベルにある(「1」を搬送する)。メモリチップ12は、識別された書き込みDQ0~書き込みDQ7のレベル状態に基づいて、目標書き込みデータ「11010011」をさらに記憶することができる。
シナリオ2:メモリコントローラ111がメモリチップ12からデータを読み出す
プロセッサ11の実行プロセスにおいて、プロセッサコア112は、メモリチップ12からデータを読み出すためにメモリコントローラ111を呼び出すことができる。プロセッサコア112によってメモリコントローラ111を呼び出す具体的な実装形態については、従来技術を参照されたい。これは、本出願の実施形態では限定されない。
プロセッサコア112によって呼び出された場合、メモリコントローラ111は、メモリチップ12に、目標読み出しデータをメモリコントローラ111に送信するように命令することができ、その結果、メモリコントローラ111は、メモリチップ12内の目標読み出しデータを読み出す。メモリコントローラ111によってメモリチップ12に命令する具体的な実装形態については、従来技術を参照されたい。これは、本出願の実施形態では限定されない。
メモリチップ12は、データ信号線L0~データ信号線L7を介して、読み出しDQ0~読み出しDQ7をメモリコントローラ111に送信することができる。読み出しDQ0~読み出しDQ7は、メモリコントローラ111に送信される目標読み出しデータを搬送することができる。メモリチップ12が、読み出しDQ0~読み出しDQ7をメモリコントローラ111に送信するとき、メモリチップ12は、読み出しDQSをメモリコントローラ111にさらに送信する。メモリコントローラ111は、読み出しDQSに従って読み出しDQ0~読み出しDQ7のレベル状態を識別し、識別されたレベル状態に基づいて、読み出しDQ0~読み出しDQ7で搬送された目標読み出しデータを取得し、それによってメモリチップ12からのデータ読み出しを実装することができる。
読み出しDQSおよび読み出しDQ0~読み出しDQ7の具体的な実装形態は、前述のシナリオ1と同様であり、詳細は、ここでは再度説明されない。違いは、メモリチップ12によってメモリコントローラ111に送信される読み出しDQSにおいて、2つの隣接する交点間の中間点が、通常、読み出しDQ0~読み出しDQ7のレベル状態を識別するためにメモリコントローラ111をトリガするトリガ点として、使用され得ることにある。言い換えれば、メモリチップ12が、受信した読み出しDQSが中間点にあると決定した場合、メモリコントローラ111は、読み出しDQ0~読み出しDQ7で搬送された目標読み出しデータを取得するために、読み出しDQ0~読み出しDQ7の現在のレベル状態を識別することができる。
前述のシナリオ1およびシナリオ2から、メモリコントローラ111とメモリチップ12との間でデータが正確に伝送され得るかどうかは、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置がアライメントされているかどうかと密接に関連していることが知見され得る。同じ方向に伝送されるDQSおよびDQは、読み出しDQSおよび読み出しDQとして理解されてもよく、または書き込みDQSおよび書き込みDQとして理解されてもよい。
図2に示される書き込みDQSおよび書き込みDQは、一例として使用される。書き込みDQは、書き込みDQ0~書き込みDQ7のいずれの書き込みDQであってもよい。書き込みDQSの交点はトリガ点として使用され、この交点に対応する書き込みDQの周期は、交点の発生の瞬間が入る一定の書き込みDQ周期を指す。図2から、書き込みDQSのトリガ点(交点)は、トリガ点に対応する書き込みDQの周期を2つの部分に分割することができることが知見され得る。トリガ点前の部分はセットアップ時間であり、トリガ点後の部分はホールド時間である。t1~t2間において、メモリチップ12よって受信された任意の書き込みDQ周期の開始時点がt1、書き込みDQ周期の終了時点がt2、メモリチップ12によって受信された書き込みDQSがトリガ点にある時点がt0であると仮定される。この場合、t1~t0間の期間はセットアップ時間と呼ばれ得、t0~t2間の期間はホールド時間と呼ばれ得る。
書き込みDQのセットアップ時間が十分である、そのことが、データ伝送の精度を向上させる。具体的には、書き込みDQはデジタル信号であるため、書き込みDQのレベル状態は通常、変化しており、すなわち、書き込みDQは任意の周期においてローレベルまたはハイレベルであり得る。書き込みDQのレベル状態は、2つの隣接する周期間で、不変のままであってもよく、ローレベルからハイレベルに変化してもよく、またはハイレベルからローレベルに変化してもよい。
一般に、ハイレベルおよびローレベルは、基準レベルに対するものである。言い換えれば、書き込みDQのレベルが基準レベルよりも低い場合、書き込みDQはローレベルにある。書き込みDQのレベルが基準レベルよりも高い場合、書き込みDQはハイレベルにある。書き込みDQのレベル状態が変化するとき、通常、レベル状態の切り替えを完了するのに一定の遅延を要する。例えば、図2に示されるように、書き込みDQのレベルは、tminおよびtmaxにおいて基準レベルに達する。
例えば、以前の周期のローレベルが現在の周期のハイレベルに切り替えられるとき、セットアップ時間が十分でない場合、例えばt0がt1~tmin間にある場合、t0での書き込みDQのレベルは、基準レベルよりも高いハイレベルに上昇しない可能性がある。この場合、メモリチップ12は、現在の周期において書き込みDQがローレベルにあると誤って考える可能性がある。言い換えれば、現在の周期の書き込みDQはハイレベルにあるべきであるが、t0がt1~tmin間に位置され、基準レベルより大きくなるようにレベルが増加されていないため、現在の周期の書き込みDQは、ローレベルとして誤って識別される。その結果、メモリチップ12に書き込まれたデータにエラーが発生する。したがって、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を確保するためには、セットアップ時間が十分に長いことを確保することが必要である。
書き込みDQのホールド時間が十分である、そのことが同様に、データ伝送の精度を向上させる。具体的には、メモリチップ12は、書き込みDQのレベル状態を一定の遅延で識別することができる。例えば、現在の周期のハイレベルが次の周期のローレベルに切り替えられるとき、メモリチップ12は、t0において、書き込みDQのレベル状態の識別を開始する。ホールド時間が十分でない場合、例えば、t0がtmax~t2間にある場合、メモリチップ12が書き込みDQのレベル状態を識別する周期(次の周期では書き込みDQはローレベルにある)の間に、書き込みDQのレベルが基準レベル未満となるように低減される可能性があり、その結果、メモリチップ12が現在の周期のレベルをローレベルとして誤って識別し、さらに、メモリチップ12に書き込まれたデータにエラーが発生する。言い換えれば、現在の周期の書き込みDQは、ハイレベルにあるべきであるが、t0がtmax~t2間にあり、レベルが基準レベル未満となるように低減されるため、ローレベルにあると誤って考えられる。したがって、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を確保するためには、ホールド時間が十分に長いことを確保することが必要である。
結論として、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を向上させるためには、書き込みDQのホールド時間およびセットアップ時間の両方が長い持続時間を有する必要がある。書き込みDQのホールド時間またはセットアップ時間の持続時間が十分でない場合、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度が低減され、ビットエラーレートが増加される。
一般に、メモリコントローラ111およびメモリチップ12内の基準電圧は同じ大きさを有する。言い換えれば、図2に示される書き込みDQSおよび書き込みDQについて、tmin~t1間の時間間隔は、メモリチップ12に適用可能な最小セットアップ時間とも呼ばれ得る。tmax~t2間の時間間隔は、メモリチップ12に適用可能な最小ホールド時間とも呼ばれ得る。
書き込みDQの周期において、書き込みDQSのセットアップ時間とメモリチップ12に適用可能な最小セットアップ時間との差は、書き込みDQのセットアップ時間のタイミングマージンと呼ばれ得る。書き込みDQSのホールド時間とメモリチップ12に適用可能な最小ホールド時間との差は、書き込みDQのホールド時間のタイミングマージンと呼ばれ得る。書き込みDQのセットアップ時間のタイミングマージンおよびホールド時間のタイミングマージンの最小値は、書き込みDQのタイミングマージンと理解され得る。例えば、図2において、書き込みDQのタイミングマージンは、t0とtminとの差、およびtmaxとt0との差の最小値である。
一般に、tmin~tmax間の時間間隔は、メモリチップ12の性能によって主に決定される。言い換えれば、メモリコントローラ111にとって、書き込みDQのセットアップ時間のタイミングマージンとホールド時間のタイミングマージンとの和は調整不能である。この場合、メモリコントローラ111は、書き込みDQSの交点に対応する時点t0をtminとtmaxとの中間位置に、すなわち、書き込みDQのセットアップ時間のタイミングマージンがホールド時間のタイミングマージンと等しくなるように調整してもよい。したがって、書き込みDQのタイミングマージンは最大値に達する可能性があり、その結果、タイミングマージンの観点から、メモリコントローラ111によってメモリチップ12にデータを伝送する精度が最適化され得る。
同じ理由に基づいて、メモリコントローラ111によってメモリチップ12からデータを読み出すプロセスにおいて、メモリチップ12によってメモリコントローラ111に送信された読み出しDQのホールド時間と、メモリコントローラ111に適用可能な最小ホールド時間との差は、読み出しDQのホールド時間のタイミングマージンとも呼ばれ得る。読み出しDQのセットアップ時間とメモリコントローラ111に適用可能な最小セットアップ時間との差は、読み出しDQのセットアップ時間のタイミングマージンとも呼ばれ得る。読み出しDQのタイミングマージンは、読み出しDQのホールド時間のタイミングマージンおよび読み出しDQのセットアップ時間のタイミングマージンの最小値と理解され得る。メモリチップ12によってメモリコントローラ111に送信された読み出しDQにおけるホールド時間のタイミングマージンがセットアップ時間のタイミングマージンと等しい場合、読み出しDQのタイミングマージンは最大値に達し得る。この場合、タイミングマージンの観点から、メモリチップ12によってメモリコントローラ111にデータを伝送する精度が最適化され得る。
読み出しDQおよび書き込みDQのタイミングマージンを向上させて、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を向上させるためには、同じ方向に伝送されるDQおよびDQSの相対タイミング位置がアライメントされる必要が、通常、ある。このプロセスは、しばしばメモリ訓練とも呼ばれる。
本出願の実施形態では、「アライメント」は、同じ方向に伝送されるDQSおよびDQにおいて、DQのホールド時間のタイミングマージンがセットアップ時間のタイミングマージンと等しいこととして理解され得る。あるいは、DQのホールド時間のタイミングマージンがセットアップ時間のタイミングマージンと同様であり、その結果、DQは、十分なホールド時間のタイミングマージンおよびセットアップ時間のタイミングマージンを有する。DQのセットアップ時間のタイミングマージンは受信端に適用可能な最小セットアップ時間に対するものであり、同様に、DQのホールド時間のタイミングマージンは受信端に適用可能な最小ホールド時間に対するものである。言い換えれば、「アライメント」は、DQのセットアップ時間が受信端に適用可能な最小セットアップ時間以上であること、およびDQのホールド時間が受信端に適用可能な最小ホールド時間以上であることを保証し得る。
受信端は、メモリチップ12であってもよく、またはメモリコントローラ111であってもよい。受信端に適用可能な最小セットアップ時間および最小ホールド時間は、受信端の構造および性能などの要因に従って取得され得る。DQのセットアップ時間が受信端に適用可能な最小セットアップ時間未満であるか、またはDQのホールド時間が受信端に適用可能な最小ホールド時間未満である場合、受信端はDQで搬送されたデータを正しく識別することができない。
これを考慮して、電子デバイス10が電源投入されたとき、同じ方向に伝送されるDQとDQSとの間の相対タイミング位置をアライメントするために、プロセッサ11が電源投入された後の初期化中にメモリ訓練が実施され得る。現在、多くの複雑なメモリ訓練解決策が出現している。ほとんどのメモリ訓練解決策において、メモリコントローラ111は、DQおよびDQSの位相を変化させるために、DQおよびDQSの伝送遅延を主に調整し、それによって、同じ方向に伝送されるDQおよびDQSの相対タイミング位置をアライメントする。
具体的には、書き込みDQおよび書き込みDQSの伝送遅延は、送信遅延と呼ばれ得る。メモリコントローラ111は、書き込みDQおよび書き込みDQSの送信遅延を調整し、それによって、書き込みDQおよび書き込みDQSの相対タイミング位置をアライメントする。読み出しDQおよび読み出しDQSの伝送遅延は、受信遅延と呼ばれ得る。メモリコントローラ111は、読み出しDQおよび読み出しDQSの受信遅延を調整し、それによって、読み出しDQおよび読み出しDQSの相対タイミング位置をアライメントする。
書き込みDQおよび書き込みDQSの送信遅延は、メモリコントローラ111によって書き込みDQおよび書き込みDQSに適用される位相調整振幅として理解され得る。具体的には、複数の書き込みDQおよび書き込みDQにそれぞれ対応する複数の位相調整器が、メモリコントローラ111に配置されている。書き込みDQSを例にとると、メモリコントローラ111によって生成された書き込みDQS信号は、書き込みDQSに対応する位相調整器に入力されてもよく、位相調整器は、書き込みDQSに一定の遅延、すなわち書き込みDQSの送信遅延を適用することができる。よって、出力書き込みDQSの位相が変化され得る。書き込みDQSは、対応する位相調整器によって伝送された後にのみ、メモリコントローラ111から出力される。
同様に、読み出しDQおよび読み出しDQSの受信遅延は、メモリコントローラ111によって読み出しDQおよび読み出しDQSに適用される位相調整振幅として理解され得る。具体的には、複数の読み出しDQおよび読み出しDQにそれぞれ対応する複数の位相調整器が、メモリコントローラ111に配置されている。読み出しDQSを例にとると、メモリコントローラ111によって受信された読み出しDQS信号は、読み出しDQSに対応する位相調整器に入力されてもよく、位相調整器は、読み出しDQSに一定の遅延、すなわち読み出しDQSの受信遅延を適用することができる。よって、受信した読み出しDQSの位相が変化され得る。対応する位相調整器によって読み出しDQSが調整された後、メモリコントローラ111は、読み出しDQSのトリガ点をさらに識別し、識別されたトリガ点に従って読み出しDQのレベル状態を識別する。
例えば、図3に示されるメモリコントローラ111は、8個のレジスタ(REG)1、具体的には、REG1-0~REG1-7を主に含む。8個のREG1は、それぞれ、書き込みDQ0~書き込みDQ7の位相調整器と1対1に対応し(例えば、REG1-0は、DQ0の位相調整器に対応し、REG1-1は、DQ1の位相調整器に対応し、以下同様である)、書き込みDQ0~書き込みDQ7の送信遅延をそれぞれ調整するように構成され得る。例えば、各REG1は、第1の入力第1の出力(FIFO)レジスタであってもよい。
各REG1は32ビットを含むことができ、32ビットは32種類の送信遅延に対応する。例えば、書き込みDQ1の送信遅延には32個の可能な値があり、1番目の値から32番目の値までは連続的に増加され、任意の2つの隣接する値の間隔は固定値である。固定値は、1ステップ送信遅延とも呼ばれ得、1ステップ送信遅延は、書き込みDQの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅としても理解され得る。
REG1-1のビット1~ビット32は、それぞれ、書き込みDQ1の送信遅延の32個の可能な値と1対1に対応する。REG1-1に1ビットが追加されるたびに、対応する送信遅延は1ステップの送信遅延だけ増加される。例えば、メモリコントローラ111は、他の位置をローレベルに保ちながら、REG1-1内の任意の位置をハイレベルに設定し得、その結果、書き込みDQ1の送信遅延は、ハイレベルの位置に対応する送信遅延に調整され得る。
メモリコントローラ111は、REG2をさらに含む。REG2は、書き込みDQSの位相調整器に対応し、書き込みDQSの送信遅延を調整するように構成され得る。メモリコントローラ111は、8個のREG3、具体的には、REG3-0~REG3-7をさらに含む。8個のREG3は、読み出しDQ0~読み出しDQ7の位相調整器にそれぞれ対応し、読み出しDQ0~読み出しDQ7の受信遅延をそれぞれ調整するように構成され得る。メモリコントローラ111は、REG4をさらに含む。REG4は、読み出しDQSの位相調整器に対応し、読み出しDQSの受信遅延を調整するように構成され得る。
メモリコントローラ111がREG1-0~REG1-7を介して書き込みDQ0~書き込みDQ7の送信遅延を調整する具体的な実装形態、メモリコントローラ111がREG2を介して書き込みDQSの送信遅延を調整する具体的な実装形態、およびメモリコントローラ111がREG3-0~REG3-7を介して読み出しDQ0~読み出しDQ7の受信遅延を調整する具体的な実装形態、およびメモリコントローラ111がREG4を介して読み出しDQSの受信遅延を調整する具体的な実装形態については、従来技術を参照することに留意されたい。詳細は、ここでは再度説明されない。
図3に示されるメモリコントローラ111に基づいて、現在一般的なタイミング位置アライメント様式は、以下のプロセスを主に含む:
1.書き込みDQと書き込みDQSとの相対タイミング位置がアライメントされる。
メモリコントローラ111が書き込みDQと書き込みDQSとの間の相対タイミング位置をアライメントするのを開始する前に、メモリコントローラ111は、書き込みDQ0~書き込みDQ7および書き込みDQSの送信遅延を、デフォルト送信遅延として最初に構成することができる。次いで、メモリコントローラ111は、デフォルト送信遅延に基づいてDQSおよび各DQの送信遅延を調整することができる。書き込みDQ0~書き込みDQ7および書き込みDQSのデフォルト送信遅延は、同じであってもよく、または異なっていてもよい。これは、本出願の実施形態では限定されない。
例えば、メモリコントローラ111によって構成されたデフォルト送信遅延に基づいて、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置が図4aに示され得る。書き込みDQ0~書き込みDQ7間、および書き込みDQSと複数の書き込みDQとの間の相対タイミング位置は、大きくオフセットされている。
図4aは、書き込みDQ0の1周期~書き込みDQ7の1周期と書き込みDQSの交点との間の相対タイミング位置のみを示していることに留意されたい。書き込みDQ0~書き込みDQ7における各書き込みDQは、書き込みDQSと同じ周期を有するため、メモリコントローラ111が書き込みDQ0~書き込みDQ7および書き込みDQSの送信遅延を変化させない場合、別の周期における書き込みDQSの交点と対応する書き込みDQ周期との間の相対タイミング位置が図4aに示され得る。言い換えれば、周期持続時間をTと仮定すると、t00+MTでの書き込みDQSの交点と対応する書き込みDQ周期との間の相対タイミング位置も図4aに示されることができ、Mは0以上の整数である。
図4aに示される、メモリコントローラ111によって送信された書き込みDQと書き込みDQSとの間のタイミング位置アライメントプロセスは、以下のステップを主に含む:
ステップ1:図4bに示されるように、メモリコントローラ111は、少なくとも1つの書き込みDQで搬送されたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQSの送信遅延を徐々に低減する。この場合、メモリコントローラ111によって送信された書き込みDQSの交点は、図4bに示され得る。
図4bは、書き込みDQ0~書き込みDQ7の交点とメモリコントローラ111の書き込みDQSとの間の相対タイミング位置を示していることが理解されよう。メモリバス13の伝送エラーを考えずに、書き込みDQ0~書き込みDQ7の交点とメモリチップ12によって受信された書き込みDQSとの間の相対タイミング位置も図4bに示され得る。
メモリコントローラ111は、書き込みDQSの送信遅延を低減し、書き込みDQ0~書き込みDQ7の送信遅延を不変に保つため、メモリコントローラ111によって送信された書き込みDQ0~書き込みDQ7の任意の書き込みDQ周期の時点と比較して、任意の書き込みDQ周期に対応する書き込みDQSの交点をメモリコントローラ111が送信する時点が早められる。言い換えれば、図4bに示される時間増加方向に基づいて、書き込みDQSの交点は矢印で示された方向の反対方向に移動する。
図4bに示されるように、この場合、書き込みDQ3のセットアップ時間が短すぎ、その結果、メモリチップ12は、書き込みDQ3のレベル状態を正しく識別することができない。したがって、書き込みDQ3で搬送されたデータは、メモリチップ12に正しく書き込まれ得ない。この時点で、メモリコントローラ111は、書き込みDQSの送信遅延の低減を停止してもよい。この場合、書き込みDQ3の現在のセットアップ時間は、メモリチップ12に適用可能な最小セットアップ時間とほぼ等しい(わずかに小さい)。
ステップ2:メモリコントローラ111は、現在の書き込みDQSの送信遅延を保つ(現在の書き込みDQSの送信遅延がD1であると仮定する)。メモリコントローラ111は、書き込みDQ0~書き込みDQ7で搬送されたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQ0~書き込みDQ2および書き込みDQ4~書き込みDQ7の送信遅延を徐々に増加させる。この場合、任意の書き込みDQ周期と書き込みDQSとの間の相対タイミング位置は、図4cに示され得る。
具体的には、メモリコントローラ111が書き込みDQSの送信遅延を送信遅延D1に調整した後、いくつかの書き込みDQ(図4bの書き込みDQ0~書き込みDQ2および書き込みDQ4~書き込みDQ7)で搬送されたデータは、メモリチップ12に正しく書き込まれ得る。
この場合、メモリコントローラ111は、書き込みDQ0~書き込みDQ2および書き込みDQ4~書き込みDQ7の送信遅延を連続的に増加させてもよい。書き込みDQ0を例にとると、メモリコントローラ111が書き込みDQSの送信遅延を不変に保つ場合、メモリコントローラ111は、書き込みDQ0の送信遅延を増加させ、その結果、メモリコントローラ111が書き込みDQSの交点を送信する時点と比較して、メモリコントローラ111が交点に対応する書き込みDQ0を送信する周期時点は遅延される。言い換えれば、図4cに示される時間増加方向に基づいて、メモリコントローラ111は、書き込みDQ0の送信遅延を増加させ、その結果、書き込みDQ0の1周期は、図中の矢印で示される方向に移動し得る。
メモリコントローラ111は、書き込みDQ0~書き込みDQ7で搬送されたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQ0~書き込みDQ7の送信遅延を徐々に増加させることが知見され得る。書き込みDQ0~書き込みDQ7のセットアップ時間は、メモリチップ12に適用可能な最小セットアップ時間に等しいかそれに近い(わずかに小さい)。
ステップ2の後、書き込みDQ0と書き込みDQ7との間のタイミングアライメントが完了され、これは、書き込みDQ0と書き込みDQ7との間の位相同期がステップ2の後に保たれ得ることとしても理解され得る。
ステップ3:メモリコントローラ111は、ステップ2の後、書き込みDQ0~書き込みDQ7の送信遅延を保ち、書き込みDQSの送信遅延を増加させ続ける。図4dに示される時間増加方向に基づいて、メモリコントローラ111は、書き込みDQSの送信遅延を増加させる。このため、メモリコントローラ111が書き込みDQ0~書き込みDQ7を送信する任意のDQ周期の時点と比較して、メモリコントローラ111がDQ周期に対応するDQSの交点を送信する時点は遅延される。言い換えれば、メモリコントローラ111は、書き込みDQのタイミング位置に対して、書き込みDQSの送信遅延を増加させ、その結果、書き込みDQSの交点は、図4dの矢印で示される方向に移動する。
メモリコントローラ111は、少なくとも1つの書き込みDQで搬送されたデータがメモリチップ12に正しく書き込まれ得なくなるまで、書き込みDQSの送信遅延を徐々に増加させる。この場合、少なくとも1つの書き込みDQのホールド時間が小さすぎ、メモリチップ12に適用可能な最小ホールド時間に近い(わずかに小さい)。
例えば、書き込みDQ0~書き込みDQ7の交点と書き込みDQSとの間の相対タイミング位置は、図4dに示され得る。一般に、書き込みDQ0~書き込みDQ7は、同じ書き込みDQ周期を有し、書き込みDQ0~書き込みDQ7は、位相同期している。したがって、書き込みDQ0~書き込みDQ7は、同じホールド時間を有し得る。言い換えれば、ステップ3で書き込みDQSの送信遅延が調整された後、書き込みDQ0~書き込みDQ7の各々のホールド時間は、メモリチップ12に適用可能な最小ホールド時間に近い(わずかに小さい)。
図4cの書き込みDQSの送信遅延をD1、図4dの書き込みDQSの送信遅延をD2と仮定すると、メモリコントローラ111は、ステップ3の後に書き込みDQSの送信遅延をD2から(D1+D2)/2に低減することができ、その結果、書き込みDQ0~書き込みDQ7のタイミングマージンは最大値に達する。この時点で、書き込みDQ0~書き込みDQ7と書き込みDQSとの相対タイミング位置のアライメントが完了される。
2.読み出しDQと読み出しDQSとの相対タイミング位置がアライメントされる。
書き込みDQおよび書き込みDQSと同様に、読み出しDQおよび読み出しDQSもアライメントされる必要がある。具体的な実装プロセスについては、書き込みDQと書き込みDQSとの間の相対タイミング位置のアライメントを参照することができる。違いは、読み出しDQと読み出しDQSとの間の相対タイミング位置をアライメントする具体的な実装プロセスにおいて、メモリチップ12が読み出しDQおよび読み出しDQSをメモリコントローラ111に送信し、DQSの中間点が、読み出しDQのレベル状態を識別するために、メモリコントローラ111をトリガすることにある。メモリコントローラ111は、読み出しDQおよび読み出しDQSの相対タイミング位置をメモリコントローラ111の側でアライメントするために、読み出しDQおよび読み出しDQSの受信遅延を調整する。詳細は、ここでは再度説明されない。
現在のタイミング位置アライメント様式の前述の説明から、現在のタイミング位置アライメント様式では、書き込みDQSの送信遅延および読み出しDQSの受信遅延が調整される必要があるだけでなく、書き込みDQ0~書き込みDQ7の送信遅延および読み出しDQ0~読み出しDQ7の受信遅延も調整する必要があることが知見され得る。この実装形態では、多くの調整ステップがあり、その結果、この実装形態は長時間を要する。
加えて、メモリコントローラ111が同じ方向に伝送されるDQSおよびDQに対してタイミング位置アライメントを実施するとき、プロセッサ11はメモリチップ12に正常にアクセスすることができないので、前述のメモリ訓練様式は、一般に、電子デバイス10の起動プロセスにおけるメモリ初期化にのみ適用され得る。電子デバイス10の作業プロセスにおいてメモリ再訓練が実施される場合、プロセッサ11が長時間にわたってメモリチップ12にアクセスすることができないため、電子デバイス10の作業が中断される。
しかしながら、電子デバイス10内のプロセッサ11の動作能力が向上されるにつれて、プロセッサコア112、メモリコントローラ111、およびメモリチップ12の作業周波数も徐々に増加される。メモリコントローラ111の作業周波数が増加されると、メモリコントローラ111によってメモリチップ12に送信される書き込みDQおよび書き込みDQSの周期は短縮される。この場合、書き込みDQおよび書き込みDQSの相対タイミング位置がアライメントされている場合でも、メモリチップ12のタイミングマージンが小さく、結果として、メモリコントローラ111によってメモリチップ12に伝送されるデータのビットエラーレートは不安定である。
加えて、電子デバイス10の現在の作業シナリオがより複雑になり、ますます多くの環境要因がメモリコントローラ111およびメモリチップ12のタイミングマージンに影響を及ぼす可能性がある。例えば、人工知能(AI)チップ(プロセッサ11の具体的な実装形態のうちの1つ)は、通常、自動運転車(電子デバイス10の具体的な実装形態のうちの1つ)に配置される。AIチップは、自動運転中央制御プラットフォーム内のチップまたは自動車のスマートコックピット内のチップであってもよい。
自動運転車の作業環境は複雑で変化し得る。AIチップを担持する単一の基板の温度は、一般に、-40℃~125℃の広い温度範囲内で変化する。きい温度変化範囲は、メモリコントローラ111およびメモリチップ12のタイミングマージンに対して大きい影響を引き起こす。高周波数で作業するAIチップおよびAIチップに結合されたメモリチップの場合、十分なタイミングマージンがないという問題を引き起こす可能性が非常に高い。
これを考慮して、本出願の実施形態は、メモリ訓練方法を提供する。メモリ訓練方法では、メモリコントローラ111とメモリチップ12との間で同じ方向に伝送されるDQSおよびDQの相対タイミング位置は、迅速にアライメントされ得る。本出願の実施形態で提供されるメモリ訓練方法は、短時間を要するため、電子デバイス10の作業プロセスにおいて繰り返し実施され得る。したがって、本出願の実施形態で提供されるメモリ訓練方法は、メモリ再訓練方法とも呼ばれ得る。このようにして、電子デバイス10内のメモリコントローラ111およびメモリチップ12は、常に、十分なタイミングマージンを保つことができ、それによって、メモリコントローラ111とメモリチップ12との間のデータ伝送の精度を向上させるのに役立つ。
例えば、電子デバイス10の作業プロセスにおいて、プロセッサコア112は、本出願の実施形態で提供されるメモリ訓練方法を実施するようにメモリコントローラ111をトリガするために、メモリコントローラ111にトリガ命令を送信することができる。本出願の実施形態で提供されるメモリ訓練方法を実施した後、メモリコントローラ111は、実行結果をプロセッサコア112にさらにフィードバックすることができ、その結果、メモリコントローラ111が同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを完了した後、プロセッサコア112は、メモリコントローラ111を介してメモリチップ12にアクセスし続けることができる。
可能な実装形態では、プロセッサコア112は、構成されたメモリ訓練周期に従って、メモリコントローラ111を、本出願の実施形態で提供されるメモリ訓練方法を実施するために定期的にトリガすることができる。
具体的には、プロセッサコア112は、メモリ訓練周期の間隔で、メモリコントローラ111にトリガ命令を送信することができる。例えば、タイミングは、電子デバイス10の起動プロセスにおいてメモリ初期化が完了された後に開始し、タイミング持続時間がメモリ訓練周期に達した後、トリガ命令がメモリコントローラ111に送信される。トリガ命令を受信した後、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法の実施を開始することができる。メモリコントローラ111が、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを完了した後、プロセッサコア112は、前述のタイミング持続時間をゼロにし、タイミングを継続することができる。タイミング持続時間が前述のメモリ訓練周期に再び達した後、プロセッサコア112は、メモリコントローラ111にトリガ命令を再び送信することができ、その結果、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を再び実施することができる。
別の可能な実装形態では、図1に示されるように、電子デバイス10は、温度センサ14をさらに含んでもよい。例えば、温度センサ14およびプロセッサ11および/またはメモリチップ12は、同じプリント回路基板(PCB)上に担持され得る。プロセッサコア112は、温度センサ14を介して周囲温度を検出することができる。現在の周囲温度と過去の周囲温度との間の差が温度変動閾値を超えると決定した場合、プロセッサコア112は、メモリコントローラ111に前述のトリガ命令を送信することができ、その結果、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を実施する。前述の過去の周囲温度は、プロセッサコア112がトリガ命令を以前に送信した周囲温度として理解され得る。
具体的には、過去の周囲温度が25℃、温度変動閾値が±20℃であると仮定される。次いで、現在の周囲温度が45℃よりも高いか、または5℃よりも低い場合、プロセッサコア112は、メモリコントローラ111に前述のトリガ命令を送信する。例えば、現在の周囲温度が47℃であり、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超える。したがって、プロセッサコア112は、メモリコントローラ111にトリガ命令を送信することができる。メモリコントローラ111が同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを完了した後、プロセッサコア112は、過去の周囲温度を47℃にさらに更新することができる。
周囲温度変化に起因して、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置がオフセットされ得ることが理解されよう。よって、メモリコントローラ111およびメモリチップ12のタイミングマージンは、十分ではない。本出願の実施形態では、メモリ訓練方法を実施するためにメモリコントローラ111をトリガするためのトリガ条件として周囲温度が使用され、その結果、メモリコントローラ111は、周囲温度が大きく変化したときに、同じ方向に伝送されるDQSとDQとの間の相対タイミング位置を較正することができ、それによって、メモリコントローラ111およびメモリチップ12が十分なタイミングマージンを有することを維持するのに役立つ。
例えば、前述のプロセスにおいて、メモリコントローラ111は、図5に示される作業手順を主に実施する。図5に示されるように、方法は、以下のステップを主に含む。
S501:メモリコントローラ111が電源投入される。一般に、電子デバイス10またはプロセッサ11が電源投入された後、メモリコントローラ111が電源投入され得る。
S502:電源投入された後、メモリコントローラ111は、ZQ較正を実施する。ZQ較正の具体的な実装形態については、従来技術を参照されたい。詳細は、ここでは再度説明されない。
S503:メモリコントローラ111は、メモリ訓練を完了するために、プロセッサコア112の呼び出しを受信する。可能な実装形態では、メモリコントローラ111は、図4a~図4eに示されるメモリ訓練方法などの現在の従来のメモリ訓練方法に従って、メモリ訓練を完了することができる。
これは、メモリコントローラ111が、S503を実施するときに初めて、メモリ訓練を実施するためである。この場合、同じ方向に伝送されるDQとDQSとの相対タイミング位置は、大きくオフセットされる。同じ方向に伝送されるDQとDQSとの間の相対タイミング位置を正確にアライメントするために、現在の従来のメモリ訓練方法が使用され得る。この場合、同じ方向に伝送されるDQとDQSとの相対タイミング位置がその後オフセットされる場合も、そのオフセット度合いは小さく、その後のメモリ訓練時間を短縮するのに役立つ。
S504:メモリ訓練を完了した後、メモリコントローラ111は、正常に作業することができる。メモリコントローラ111は、プロセッサコア112の呼び出しに基づいて、メモリチップ12にアクセスすることができる。例えば、メモリコントローラ111は、メモリチップ12からデータを読み出してもよく、またはメモリチップ12にデータを書き込んでもよい。
S505:通常の作業プロセスでは、プロセッサコア112によって送信されたトリガ命令を受信した場合、メモリコントローラ111は、S506の実施を継続する。プロセッサコア112によって送信されたトリガ命令が受信されない場合、通常の作業が継続する。
S506:メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を実施する。
具体的には、メモリ訓練は、書き込みDQと書き込みDQSとの間の相対タイミング位置のアライメント(S5061)と、読み出しDQと読み出しDQSとの間の相対タイミング位置のアライメント(S5062)とを含む。S5061およびS5062の順序は、本出願の実施形態では厳密に限定されないことを理解されたい。メモリコントローラ111は、S5061を最初に実施し、次いでS5062を実施してもよく、またはS5062を最初に実施し、次いでS5061を実施してもよい。
本出願の実施形態で提供されるメモリ訓練方法では、メモリコントローラ111は、書き込みDQSまたは書き込みDQの送信遅延を調整することによって、書き込みDQと書き込みDQSとの間の相対タイミング位置のアライメントを完了することができ、読み出しDQSまたは読み出しDQの受信遅延を調整することによって、読み出しDQと読み出しDQSとの間の相対タイミング位置のアライメントを完了することができる。図4a~図4eに示されるメモリ訓練プロセスと比較して、本出願の実施形態では、短時間で同じ方向に伝送されるDQSとDQとの間の相対タイミング位置のアライメントを容易にするように、伝送遅延を調整するステップが大幅に低減され得る。
次に、本出願の実施形態で提供されるメモリ訓練方法が、以下の実施形態1~実施形態4を使用してさらに説明される。DQSおよび対応するN個のDQは同じ方向に伝送されることを理解されたい。Nは、1以上の整数である。DQSは、N個のDQのレベル状態を識別するために、受信端をトリガすることができる。例えば、図1に示されるメモリバス13に基づいて、DQSおよび対応する8個のDQ(すなわち、DQ0~DQ7)が同じ方向に伝送される。理解を容易にするために、同じ方向に伝送されるDQSおよびDQ0~DQ7は、本出願の実施形態において次に示される。
実施形態1:書き込みDQと書き込みDQSとの間の相対タイミング位置をアライメントするために、書き込みDQSの送信遅延が調整される。
例えば、図6に示されるように、実施形態1は、以下のステップを主に含む:
S601:メモリコントローラ111は、N個の書き込みDQで搬送されたすべてのデータが正しく書き込まれた場合、書き込みDQSの最大DQS送信遅延および/または最小DQS送信遅延を決定する。
例えば、N個の書き込みDQが書き込みDQ0~書き込みDQ7を含むと仮定され、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置が図7に示される。書き込みDQSの過度に大きいかまたは小さい送信遅延のいずれかが、書き込みDQ0~書き込みDQ7で搬送されたデータを書き込む際にエラーを引き起こす可能性があることが理解されよう。例えば、図7において、書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれた場合、書き込みDQSの送信遅延が最小DQS送信遅延であるとき、書き込みDQSの交点は、交点1aで表されることができ、交点1aに対応する直線は、交点1aが位置される時点を表す。書き込みDQSの送信遅延が最大DQS送信遅延であるとき、書き込みDQSの交点は、交点1bで表されることができ、交点1bに対応する直線は、交点1bが位置される時点を表す。その後の図において、交点(または中間点)に対応する直線はすべて、交点(または中間点)が位置される時点を表し得る。詳細は、ここでは再度説明されない。
書き込みDQSの送信遅延が最小DQS送信遅延未満である場合、1つ以上の書き込みDQのセットアップ時間が十分ではなく、よって、データ書き込みエラーが発生する。書き込みDQSの送信遅延が最大DQS送信遅延よりも大きい場合、1つ以上の書き込みDQのホールド時間が十分ではなく、よって、データ書き込みエラーが同様に発生する。
S602:メモリコントローラ111は、N個の書き込みDQの送信遅延を保ち、書き込みDQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間目標DQS送信遅延に調整する。目標DQS送信遅延と最大DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1以上である。目標DQS送信遅延と最小DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1以上である。
メモリチップ12に適用可能な目標ホールド時間H1は、メモリチップ12に適用可能な最小ホールド時間と等しくてもよく、またはメモリチップ12に適用可能な最小ホールド時間よりも大きくてもよい。メモリチップ12に適用可能な目標セットアップ時間S1は、メモリチップ12に適用可能な最小セットアップ時間と等しくてもよく、またはメモリチップ12に適用可能な最小セットアップ時間よりも大きくてもよい。目標ホールド時間H1および目標セットアップ時間S1の具体的な実装形態は、メモリコントローラ111とメモリチップ12との間のデータ伝送のための性能要件に基づいて決定され得る。これは、本出願の実施形態では限定されない。
S601では、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延および最小DQS送信遅延のうちの1つまたは2つを決定するため、S602の目標DQS送信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、書き込みDQSの最大DQS送信遅延を決定するが、書き込みDQSの最小DQS送信遅延を決定しない。この場合、目標DQS送信遅延と最大DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1であり得る。
本出願の実施形態では、メモリ訓練は、メモリ初期化、すなわち、メモリ再訓練の後に実施され得る。したがって、書き込みDQ間のオフセットは、通常、小さい。言い換えれば、最大DQS送信遅延と最小DQS送信遅延との間の時間間隔は大きく、書き込みDQの周期持続時間に近い。加えて、書き込みDQの周期は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりもはるかに大きいため、目標DQS送信遅延と最大DQS送信遅延との間の間隔がメモリチップ12に適用可能な目標ホールド時間H1である場合、目標DQS送信遅延と最小DQS送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きい。
ケース2:メモリコントローラ111は、書き込みDQSの最小DQS送信遅延を決定するが、書き込みDQSの最大DQS送信遅延を決定しない。この場合、目標DQS送信遅延と最小DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1であり得る。
上述したように、最大DQS送信遅延と最小DQS送信遅延との間の時間間隔は大きく、書き込みDQの周期持続時間に近い。加えて、書き込みDQの周期は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりもはるかに大きいため、目標DQS送信遅延と最小DQS送信遅延との間の間隔がメモリチップ12に適用可能な目標セットアップ時間S1である場合、目標DQS送信遅延と最大DQS送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりも大きい。
ケース3:メモリコントローラ111は、書き込みDQSの最小DQS送信遅延および最大DQS送信遅延を決定する。この場合、目標DQS送信遅延と最大DQS送信遅延との間の間隔が、メモリチップ12に適用可能な目標ホールド時間H1であり得るか、または目標DQS送信遅延と最小DQS送信遅延との間の間隔が、メモリチップ12に適用可能な目標セットアップ時間S1であり得るか、または目標DQS送信遅延が、最大DQS送信遅延と最小DQS送信遅延との間の中間位置に位置され得る。
上述したように、最大DQS送信遅延と最小DQS送信遅延との間の時間間隔は大きく、書き込みDQの周期持続時間に近い。目標DQS送信遅延は、最大DQS送信遅延と最小DQS送信遅延との間の中間位置に位置され、その結果、目標DQS送信遅延と最小DQS送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きくなり得、目標DQS送信遅延と最大DQS送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標ホールド時間H1よりも大きくなり得る。
本出願の実施形態では、メモリコントローラ111は、書き込みDQSの送信遅延を調整することによって、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置をアライメントすることができる。図4a~図4eに示されるメモリ訓練プロセスと比較して、本出願の実施形態では、メモリコントローラ111は、書き込みDQ0~書き込みDQ7の送信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
メモリコントローラ111がS601を実施するとき、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延および最小DQS送信遅延をそれぞれ決定することができることに留意されたい。書き込みDQSの初期DQS送信遅延と最小DQS送信遅延との間のオフセットが大きい場合、それは、各書き込みDQが初期DQS送信遅延下で十分なセットアップ時間を有することを示す。この場合、最大DQS送信遅延のみが決定されてもよい。同様に、書き込みDQSの初期DQS送信遅延と最大DQS送信遅延との間のオフセットが大きい場合、それは、現在の各書き込みDQが十分なホールド時間を有することを示す。この場合、最小DQS送信遅延のみが決定されてもよい。
書き込みDQSの初期DQS送信遅延は、メモリコントローラ111がこのメモリ訓練の実施を開始する前の、またはメモリコントローラがこのメモリ訓練の実施を開始するときの書き込みDQSの送信遅延として理解され得る。書き込みDQSの初期DQS送信遅延はまた、メモリコントローラ111が前述のトリガ命令を受信する前の書き込みDQSの送信遅延として理解されてもよい。例えば、書き込みDQSの送信遅延は、初期DQS送信遅延であり、書き込みDQSの交点は、図7の交点0として示され得る。
可能な実装形態では、メモリコントローラ111は、少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生するまで、書き込みDQSの送信遅延を、初期DQS送信遅延から開始して徐々に低減することができる。この場合、書き込みDQSの送信遅延は、最小DQS送信遅延として使用され得る。
メモリコントローラ111は、さらに、少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生するまで、書き込みDQSの送信遅延を初期DQS送信遅延から開始して徐々に増加させることができる。この場合、書き込みDQSの送信遅延は、最大DQS送信遅延として使用され得る。
別の可能な実装形態では、メモリコントローラ111は、図8に示される方法を使用して、最大DQS送信遅延および/または最小DQS送信遅延をさらに決定することができる。方法は、以下のステップを主に含む:
S801:メモリコントローラ111は、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って書き込みDQSの送信遅延を低減する。言い換えれば、メモリコントローラ111は、書き込みDQSの送信遅延を初期DQS送信遅延から第1のDQS送信遅延に低減することができる。第1のDQS送信遅延と初期DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間である。
例えば、図9aに示されるように、書き込みDQSの送信遅延が初期DQS送信遅延である場合、書き込みDQSの交点は、図9aにおいて交点0として示され得る。メモリコントローラ111は、書き込みDQ0~書き込みDQ7の送信遅延を保ち、その結果、各書き込みDQの周期がメモリチップ12に伝送される時刻が安定する。メモリコントローラ111は、書き込みDQSの送信遅延を低減する。書き込みDQSの交点に対応する書き込みDQの周期と比較して、書き込みDQSの交点がメモリチップ12に伝送される時刻が早められる。言い換えれば、図9aに示されるように、書き込みDQSの交点は、図9aの矢印で示される方向とは反対方向に移動する。
書き込みDQSの送信遅延が第1のDQS送信遅延である場合、書き込みDQSの交点は、図9aにおいて交点1として示され得る。交点1と交点0との間の時間間隔は、第1のDQS送信遅延と初期DQS送信遅延との間の時間間隔であり、メモリチップ12に適用可能な目標セットアップ時間S1である。
S802:少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S803の実施を継続する。書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれた場合、メモリコントローラ111は、S805の実施を継続する。
書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれた場合、それは、初期DQS送信遅延と最小DQS送信遅延との間の時間間隔が大きいことを示し、書き込みDQ0~書き込みDQ7のセットアップ時間が初期DQS送信遅延下で十分であり、較正は必要とされないことが理解されよう。したがって、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延を決定するために、最小DQS送信遅延を決定することなくS805の実施を継続し、書き込みDQSの送信遅延を増加させることができる。
少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、それは、初期DQS送信遅延下での少なくとも1つの書き込みDQのセットアップ時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。例えば、書き込みDQSの送信遅延が第1のDQS送信遅延であると仮定すると、書き込みDQSの交点は、図9aにおいて交点1として示され得る。図9aから、書き込みDQ3および書き込みDQ6のセットアップ時間は十分でないことが知見され得る。この場合、書き込みDQ3および書き込みDQ6で搬送されたデータの書き込みにエラーが発生し、メモリコントローラ111は、S803の実施を継続する。
S803:メモリコントローラ111は、第1の調整振幅に従って書き込みDQSの送信遅延を増加させる。第1の調整振幅は、メモリチップ12に適用可能な目標セットアップ時間S1未満であることに留意されたい。一般に、第1の調整振幅は、書き込みDQSの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅であり得、最小調整振幅は、ステップとも呼ばれ得る。
S804:少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S803の実施を継続するために戻る。
メモリコントローラ111は、S803およびS804を1回以上実施し、書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれるまで、書き込みDQSの送信遅延を徐々に増加させる。この場合、書き込みDQSの送信遅延は最小DQS送信遅延として使用されてもよく、書き込みDQSの交点は、図7の交点1aとして示され得る。
電子デバイス10の作業プロセスでは、書き込みDQSの交点が対応する書き込みDQ周期の中間位置からオフセットされている場合でも、書き込みDQSの交点は対応する書き込みDQ周期の中間位置の近くに依然として位置されることが理解されよう。この場合、メモリコントローラ111が書き込みDQSの送信遅延を初期DQS送信遅延から徐々に低減する場合、メモリコントローラ111は、書き込みDQSの送信遅延を複数回調整し、書き込みDQ0~書き込みDQ7で搬送されたデータが正しく書き込まれたかどうかをチェックすることによって、最小DQS送信遅延を決定することができる。
本出願の実施形態で提供されるS801~S804では、メモリチップ12に適用可能な目標セットアップ時間S1は、通常、書き込みDQの半周期の持続時間未満である。しかしながら、第1のDQS送信遅延から最小DQS送信遅延までの調整振幅は、メモリチップ12に適用可能な目標セットアップ時間S1を超えない。したがって、S803は少ない回数実施され、よって最小DQS送信遅延が迅速に決定され得る。
S805:メモリコントローラ111は、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って書き込みDQSの送信遅延を増加させる。言い換えれば、メモリコントローラ111は、書き込みDQSの送信遅延を初期DQS送信遅延から第2のDQS送信遅延に増加させることができる。第2のDQS送信遅延と初期DQS送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1である。
例えば、図9bに示されるように、書き込みDQSの送信遅延が初期DQS送信遅延である場合、書き込みDQSの交点は、図9bにおいて交点0として示され得る。メモリコントローラ111は、書き込みDQ0~書き込みDQ7の送信遅延を保ち、その結果、各書き込みDQの周期がメモリチップ12に伝送される時刻が安定する。メモリコントローラ111は、書き込みDQSの送信遅延を増加させる。書き込みDQSの交点に対応する書き込みDQの周期と比較して、書き込みDQSの交点がメモリチップ12に伝送される時刻が遅延される。言い換えれば、図9bに示されるように、書き込みDQSの交点は、図9bの矢印で示される方向に移動する。
書き込みDQSの送信遅延が第2のDQS送信遅延である場合、書き込みDQSの交点は、図9bにおいて交点2として示され得る。交点2と交点0との間の時間間隔は、第2のDQS送信遅延と初期DQS送信遅延との間の時間間隔であり、メモリチップ12に適用可能な目標ホールド時間H1である。
S806:少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S807の実施を継続する。書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれた場合、メモリコントローラ111は、S808の実施を継続する。
書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれた場合、それは、初期DQS送信遅延と最大DQS送信遅延との間の時間間隔が大きいことを示し、書き込みDQ0~書き込みDQ7のホールド時間が十分であり、較正は必要とされないことが理解されよう。したがって、メモリコントローラ111は、最大DQS送信遅延を決定する必要はなく、S602の実施を継続することができる。
いくつかのシナリオでは、書き込みDQ0~書き込みDQ7で搬送されたデータがS802およびS806で正しく書き込まれる場合があり得る。言い換えれば、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って書き込みDQSの送信遅延が低減された後、書き込みDQ0~書き込みDQ7で搬送されたデータが正しく書き込まれる。言い換えれば、書き込みDQ0~書き込みDQ7は、初期DQS送信遅延下で十分なセットアップ時間を有する。初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って書き込みDQSの送信遅延が増加された後、書き込みDQ0~書き込みDQ7で搬送されたデータが正しく書き込まれる。言い換えれば、書き込みDQ0~書き込みDQ7は、初期DQS送信遅延下で十分なホールド時間を有する。この場合、メモリコントローラ111は、初期DQS送信遅延を目標DQS送信遅延として直接使用することができる。
少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、それは、少なくとも1つの書き込みDQのホールド時間が十分ではなく、較正が必要とされることを示す。この場合、書き込みDQSの交点は、図9bにおいて交点2として示され得る。したがって、メモリコントローラ111は、S807の実施を継続し得る。
S807:メモリコントローラ111は、第2の調整振幅に従って書き込みDQSの送信遅延を低減する。第2の調整振幅は、メモリチップ12に適用可能な目標ホールド時間H1未満であることに留意されたい。一般に、第2の調整振幅は、書き込みDQSの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅、すなわち、1ステップの振幅でもあり得る。
S808:少なくとも1つの書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S807の実施を継続するために戻る。
メモリコントローラ111は、S807およびS808を1回以上実施し、書き込みDQ0~書き込みDQ7で搬送されたすべてのデータが正しく書き込まれるまで、書き込みDQSの送信遅延を徐々に低減する。この場合、書き込みDQSの送信遅延は最大DQS送信遅延として使用されてもよく、書き込みDQSの交点は、図7の交点1bとして示され得る。
メモリコントローラ111は、図8に示される方法を実施することによって、書き込みDQSの最大DQS送信遅延および/または最小DQS送信遅延を決定することができる。次いで、メモリコントローラ111は、最大DQS送信遅延および/または最小DQS送信遅延に基づいてS602の実施を継続することができる。
メモリコントローラ111によって、書き込みDQSの最大DQS送信遅延および/または最小DQS送信遅延を決定するプロセスにおいて、メモリコントローラ111は、書き込みDQSの最大DQS送信遅延を決定するために、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って書き込みDQSの送信遅延を増加させ、次いで、書き込みDQSの最小DQS送信遅延を決定するために、初期DQS送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って書き込みDQSの送信遅延を低減することができることが理解されよう。前述のプロセスも本出願の実施形態に含まれるべきであり、具体的な実装形態の詳細は再度説明されない。
実施形態2:読み出しDQと読み出しDQSとの間の相対タイミング位置をアライメントするために、読み出しDQSの受信遅延が調整される。
実施形態1と同様の技術的概念に基づいて、本出願の実施形態で提供される実施形態2では、読み出しDQと読み出しDQSとの間の相対タイミング位置がアライメントされ得る。
具体的には、図10に示されるように、実施形態2は、以下のステップを主に含む:
S1001:メモリコントローラ111は、N個の読み出しDQで搬送されたすべてのデータが正しく読み出された場合、読み出しDQSの最大DQS受信遅延および/または最小DQS受信遅延を決定する。
このプロセスはS602と同様である。違いは、メモリチップ12が、N個の読み出しDQと、N個の読み出しDQに対応する読み出しDQSとを出力し、メモリコントローラ111が、N個の読み出しDQと、N個の読み出しDQに対応する読み出しDQSとを受信することにある。一般に、読み出しDQSにおける交点間の中間点がトリガ点として使用され、メモリコントローラ111は、N個の読み出しDQのレベル状態を識別するためにトリガされる。
具体的には、可能な実装形態では、メモリコントローラ111は、少なくとも1つの読み出しDQで搬送されたデータの読み出しにエラーが発生するまで、読み出しDQSの受信遅延を、初期DQS受信遅延から開始して徐々に低減することができる。この場合、読み出しDQSの受信遅延は、最小DQS受信遅延として使用され得る。メモリコントローラ111は、さらに、少なくとも1つの読み出しDQで搬送されたデータの読み出しにエラーが発生するまで、読み出しDQSの受信遅延を初期DQS受信遅延から開始して徐々に増加させることができる。この場合、読み出しDQSの受信遅延は、最大DQS受信遅延として使用され得る。
読み出しDQSの初期DQS受信遅延は、メモリコントローラ111が読み出しDQSの受信遅延の調整を開始する前の読み出しDQSの受信遅延として理解され得る。読み出しDQSの初期DQS受信遅延はまた、メモリコントローラ111が前述のトリガ命令を受信する前の読み出しDQSの受信遅延として理解されてもよい。
別の可能な実装形態では、メモリコントローラ111は、図8のプロセスと同様のプロセスを使用して、読み出しDQSの最大DQS受信遅延および最小DQS受信遅延をさらに決定することができる。具体的には、メモリコントローラ111は、最大DQS受信遅延および/または最小DQS受信遅延をそれぞれ決定することができる。
1.最小DQS受信遅延を決定する
初期DQS受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って読み出しDQSの受信遅延を低減する。言い換えれば、メモリコントローラ111は、読み出しDQSの受信遅延を初期DQS受信遅延から第1のDQS受信遅延に低減し、第1のDQS受信遅延と初期DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2である。
メモリコントローラ111に適用可能な目標セットアップ時間S2は、メモリコントローラ111に適用可能な最小セットアップ時間と等しくてもよく、またはメモリコントローラ111に適用可能な最小セットアップ時間よりも大きくてもよい。目標セットアップ時間S2の具体的な実装形態は、メモリコントローラ111とメモリチップ12との間のデータ伝送のための性能要件に基づいて決定され得る。これは、本出願の実施形態では限定されない。
例えば、図11aに示されるように、読み出しDQSの受信遅延が初期DQS受信遅延である場合、読み出しDQSの中間点は、図11aにおいて中間点0として示され得る。メモリコントローラ111は、読み出しDQ0~読み出しDQ7の受信遅延を保ち、読み出しDQSの受信遅延を低減する。読み出しDQSの中間点に対応する読み出しDQの周期と比較して、メモリコントローラ111は、読み出しDQSの中間点のタイミングアドバンスを識別する。言い換えれば、図11aに示されるように、読み出しDQSの中間点は、図11aの矢印で示される方向とは反対方向に移動する。
読み出しDQSの受信遅延が第1のDQS受信遅延である場合、読み出しDQSの中間点は、図11aにおいて中間点1として示され得る。中間点1と中間点0との間の時間間隔は、第1のDQS受信遅延と初期DQS受信遅延との間の時間間隔であり、メモリコントローラ111に適用可能な目標セットアップ時間S2である。
読み出しDQ0~読み出しDQ7で搬送されたすべてのデータが第1のDQS受信遅延下で正しく読み出された場合、それは、初期受信遅延と最小受信遅延との間の時間間隔が大きいことを示す。初期DQS受信遅延下では、読み出しDQ0と読み出しDQ7との間のセットアップ時間は十分であり、較正は必要とされない。この場合、最小DQS受信遅延を決定することなく、最大DQS受信遅延が決定され続け得る。少なくとも1つの読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、それは、初期DQS受信遅延下での少なくとも1つの読み出しDQのセットアップ時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。この場合、読み出しDQSの中間点は、図11aに示され得る。
第1のDQS受信遅延下で少なくとも1つの読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、メモリコントローラ111は、読み出しDQSの受信遅延を徐々に増加させることができ、その結果、読み出しDQSの中間点は、読み出しDQ0~読み出しDQ7で搬送されたすべてのデータが正しく読み出されるまで、図11aの矢印で示される方向に移動する。この場合、読み出しDQSの受信遅延は、最小DQS受信遅延である。最小DQS受信遅延下では、読み出しDQSの交点は、図11bに示され得る。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図8のS801~S804に示される書き込みDQSの最小DQS送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
2.最大DQS受信遅延を決定する
初期DQS受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標ホールド時間H2に従って読み出しDQSの受信遅延を増加させる。言い換えれば、メモリコントローラ111は、読み出しDQS受信遅延を初期DQS受信遅延から第2のDQS受信遅延に増加させ、第2のDQS受信遅延と初期DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2である。
メモリコントローラ111に適用可能な目標ホールド時間H2は、メモリコントローラ111に適用可能な最小ホールド時間と等しくてもよく、またはメモリコントローラ111に適用可能な最小ホールド時間よりも大きくてもよい。目標ホールド時間H2の具体的な実装形態は、メモリコントローラ111とメモリチップ12との間のデータ伝送のための性能要件に基づいて決定され得る。これは、本出願の実施形態では限定されない。
例えば、図11cに示されるように、読み出しDQSの受信遅延が初期DQS受信遅延である場合、読み出しDQSの中間点は、図9aにおいて中間点0として示され得る。メモリコントローラ111は、読み出しDQ0~読み出しDQ7の受信遅延を保ち、読み出しDQSの受信遅延を増加させる。読み出しDQSの中間点に対応する読み出しDQの周期と比較して、メモリコントローラ111は、読み出しDQSの中間点のタイミング遅延を識別する。言い換えれば、図11cに示されるように、読み出しDQSの中間点は、図11cの矢印で示される方向に移動する。
読み出しDQSの受信遅延が第2のDQS受信遅延である場合、読み出しDQSの中間点は、図11cにおいて中間点2として示され得る。中間点2と中間点0との間の時間間隔は、第2のDQS受信遅延と初期DQS受信遅延との間の時間間隔であり、メモリコントローラ111に適用可能な目標ホールド時間H2である。
読み出しDQ0~読み出しDQ7で搬送されたすべてのデータが第2のDQS受信遅延下で正しく読み出された場合、それは、初期DQS受信遅延と最大DQS受信遅延との間の時間間隔が大きいことを示す。読み出しDQ0と読み出しDQ7との間のホールド時間は十分であり、較正は必要とされない。この場合、最大DQS受信遅延を決定することなく、S1002が実施され続け得る。
初期DQS受信遅延と最大DQS受信遅延との間の時間間隔、および初期DQS受信遅延と最小DQS受信遅延との間の時間間隔が大きい場合もあり得ることが理解されよう。言い換えれば、初期DQS受信遅延に基づいて、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って読み出しDQSの受信遅延が低減された後、読み出しDQ0~読み出しDQ7で搬送されたすべてのデータが正しく読み出される。言い換えれば、読み出しDQ0~読み出しDQ7は、初期DQS受信遅延下で十分なセットアップ時間を有する。初期DQS受信遅延に基づいて、メモリコントローラ111に適用可能な目標ホールド時間H2に従って読み出しDQSの受信遅延が増加された後、読み出しDQ0~読み出しDQ7で搬送されたすべてのデータが正しく読み出される。言い換えれば、読み出しDQ0~読み出しDQ7は、初期DQS受信遅延下で十分なホールド時間を有する。この場合、メモリコントローラ111は、初期DQS受信遅延を目標DQS受信遅延として直接使用することができる。
第2のDQS受信遅延下で少なくとも1つの読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、それは、初期DQS受信遅延下での少なくとも1つの読み出しDQのホールド時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。この場合、読み出しDQSの中間点は、図11cにおいて中間点2として示され得る。
少なくとも1つの読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、メモリコントローラ111は、読み出しDQSの受信遅延を徐々に低減することができ、その結果、読み出しDQSの中間点は、読み出しDQ0~読み出しDQ7で搬送されたすべてのデータが正しく読み出されるまで、図11cの矢印で示される方向とは反対方向に移動する。この場合、読み出しDQSの受信遅延は、最大DQS受信遅延である。最大DQS受信遅延下では、読み出しDQSの中間点は、図11dに示され得る。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図8のS805~S808に示される書き込みDQSの最大DQS送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
S1002:メモリコントローラ111は、N個の読み出しDQの受信遅延を保ち、読み出しDQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間目標DQS受信遅延に調整する。目標DQS受信遅延と最大DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2以上である。目標DQS受信遅延と最小DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2以上である。
S1001では、メモリコントローラ111は、最大DQS受信遅延および最小DQS受信遅延のうちの1つまたは2つを決定するため、S1002の目標DQS受信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、最大DQS受信遅延を決定するが、最小DQS受信遅延を決定しない。この場合、目標DQS受信遅延と最大DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2であり得る。
本出願の実施形態では、メモリ訓練は、メモリ初期化後に実施され得る。したがって、読み出しDQ間のオフセットは、通常、小さい。言い換えれば、最大DQS受信遅延と最小DQS受信遅延との間の時間間隔は大きく、読み出しDQの周期持続時間に近い。加えて、読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりもはるかに大きいため、目標DQS受信遅延と最大DQS受信遅延との間の間隔がメモリコントローラ111に適用可能な目標ホールド時間H2である場合、目標DQS受信遅延と最小DQS受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きい。
ケース2:メモリコントローラ111は、最小DQS受信遅延を決定するが、最大DQS受信遅延を決定しない。この場合、目標DQS受信遅延と最小DQS受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得る。
上述したように、最大DQS受信遅延と最小DQS受信遅延との間の時間間隔は大きく、読み出しDQの周期持続時間に近い。加えて、読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりもはるかに大きいため、目標DQS受信遅延と最小DQS受信遅延との間の間隔がメモリコントローラ111に適用可能な目標セットアップ時間である場合、目標DQS受信遅延と最大DQS受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きい。
ケース3:メモリコントローラ111は、最小DQS受信遅延および最大DQS受信遅延を決定する。この場合、目標DQS受信遅延と最大DQS受信遅延との間の間隔が、メモリコントローラ111に適用可能な目標ホールド時間H2であり得るか、または目標DQS受信遅延と最小DQS送信遅延との間の間隔が、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得るか、または目標DQS受信遅延が、最大DQS受信遅延と最小DQS受信遅延との間の中間位置に位置され得る。
上述したように、最大DQS受信遅延と最小DQS受信遅延との間の時間間隔は大きく、読み出しDQの周期持続時間に近い。目標DQS受信遅延は、最大DQS受信遅延と最小DQS受信遅延との間の中間位置に位置され、その結果、目標DQS受信遅延と最小DQS受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きくなり得、目標DQS受信遅延と最大DQS受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きくなり得る。
本出願の実施形態では、メモリコントローラ111は、読み出しDQSの受信遅延を調整することによって、読み出しDQ0~読み出しDQ7と読み出しDQSとの間の相対タイミング位置をアライメントすることができる。図4a~図4eに示されるメモリ訓練プロセスと比較して、本出願の実施形態では、メモリコントローラ111は、読み出しDQ0~読み出しDQ7の受信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
実施形態3:書き込みDQと書き込みDQSとの間の相対タイミング位置をアライメントするために、書き込みDQの受信遅延が調整される。
実施形態1および実施形態2の両方において、メモリ訓練は、DQSの受信遅延または送信遅延を調整することによって実装される。DQとDQSとの間には対応するタイミング位置関係があるので、DQとDQSとの間の相対タイミング位置は、DQの受信遅延または送信遅延を調整することによってもアライメントされ得ることが理解されよう。
実施形態3では、メモリコントローラ111は、書き込みDQSの送信遅延を保ち、書き込みDQ0~書き込みDQ7の送信遅延をそれぞれ調整し、その結果、各書き込みDQと書き込みDQSとの相対タイミング位置がアライメントされる。例えば、任意の書き込みDQについて、実施形態3は、図12に示される以下のステップを主に含む:
S1201:メモリコントローラ111は、第1の書き込みDQで搬送されたデータが正しく書き込まれた場合、第1の書き込みDQの最大DQ送信遅延および/または最小DQ送信遅延を決定する。
第1の書き込みDQは、DQ0~DQ7のいずれか1つであり得る。メモリコントローラ111が書き込みDQSの送信遅延を不変に保つ場合、書き込みDQSの交点がメモリチップ12に伝送される時点は安定していることが理解されよう。メモリコントローラ111が書き込みDQSの交点を送信する時点と比較して、メモリコントローラ111が書き込みDQSの交点に対応する第1の書き込みDQの周期を送信する時点は、第1の書き込みDQの送信遅延を増加させることによって遅延され、その結果、第1の書き込みDQのセットアップ時間は低減され、一方、ホールド時間は増加される。逆に、第1の書き込みDQの送信遅延を低減することによって、メモリコントローラ111が書き込みDQSの交点に対応する第1の書き込みDQの周期を送信する時点が早められ、その結果、第1の書き込みDQのホールド時間は低減され、一方、セットアップ時間は増加される。
実施形態3では、図13に示されるように、第1の書き込みDQの送信遅延が最大DQ送信遅延よりも大きい場合、第1の書き込みDQのセットアップ時間が短すぎるため、メモリチップ12は、第1の書き込みDQのレベル状態を正しく識別することができない。よって、第1の書き込みDQで搬送されたデータは、メモリチップ12に正しく書き込まれ得ない。第1の書き込みDQの送信遅延が最小DQ送信遅延未満である場合、第1の書き込みDQのホールド時間が短すぎるため、メモリチップ12は、第1の書き込みDQのレベル状態を正しく識別することができない。よって、第1の書き込みDQで搬送されたデータは、メモリチップ12に正しく書き込まれ得ない。
S1202:メモリコントローラ111は、書き込みDQSの送信遅延を保ち、第1の書き込みDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間目標DQ送信遅延に調整する。目標DQ送信遅延と最小DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1以上である。目標DQ送信遅延と最大DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1以上である。
メモリチップ12に適用可能な目標ホールド時間H1および目標セットアップ時間S1の両方について、実施形態1を参照することができる。詳細は、ここでは再度説明されない。S1201では、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延および最小DQ送信遅延のうちの1つまたは2つを決定するため、S1202の目標DQ送信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定するが、第1の書き込みDQの最小DQ送信遅延を決定しない。この場合、目標DQ送信遅延と最大DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1であり得る。
図13に示されるように、最大DQ送信遅延と最小DQ送信遅延との間の時間間隔Δtは、第1の書き込みDQの周期持続時間に近く、第1の書き込みDQの周期は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりもはるかに大きい。したがって、目標DQ送信遅延と最大DQ送信遅延との間の間隔がメモリチップ12に適用可能な目標セットアップ時間S1である場合、目標DQ送信遅延と最小DQ送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりも大きい。
ケース2:メモリコントローラ111は、第1の書き込みDQの最小DQ送信遅延を決定するが、第1の書き込みDQの最大DQ送信遅延を決定しない。この場合、目標DQ送信遅延と最小DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間H1であり得る。
上述したように、最大DQ送信遅延と最小DQ送信遅延との間の時間間隔Δtは、第1の書き込みDQの周期持続時間に近く、第1の書き込みDQの周期は、通常、メモリチップ12に適用可能な目標ホールド時間H1よりもはるかに大きい。したがって、目標DQ送信遅延と最小DQ送信遅延との間の間隔がメモリチップ12に適用可能な目標ホールド時間H1である場合、目標DQ送信遅延と最大DQ送信遅延との間の間隔は、通常、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きい。
ケース3:メモリコントローラ111は、最小DQ送信遅延および最大DQ送信遅延を決定する。この場合、目標DQ送信遅延と最大DQ送信遅延との間の間隔が、メモリチップ12に適用可能な目標セットアップ時間S1であり得るか、または目標DQ送信遅延と最小DQ送信遅延との間の間隔が、メモリチップ12に適用可能な目標ホールド時間H1であり得るか、または目標DQ送信遅延が、最大DQ送信遅延と最小DQ送信遅延との間の中間位置に位置され得る。
上述したように、最大DQ送信遅延と最小DQ送信遅延との間の時間間隔Δtは、第1の書き込みDQの周期持続時間に近い。目標DQ送信遅延は、最大DQ送信遅延と最小DQ送信遅延との間の中間位置に位置され、その結果、目標DQ送信遅延と最小DQ送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標ホールド時間H1よりも大きくなり得、目標DQ送信遅延と最大DQ送信遅延との間の時間間隔は、メモリチップ12に適用可能な目標セットアップ時間S1よりも大きくなり得る。
実施形態3では、メモリコントローラ111は、第1の書き込みDQの送信遅延を調整し、その結果、第1の書き込みDQと書き込みDQSとの間の相対タイミング位置がアライメントされ得る。メモリコントローラ111は、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置をそれぞれアライメントするために、図12に示される方法を使用して、書き込みDQ0~書き込みDQ7の送信遅延を連続的に調整することができる。
実施形態3では、メモリコントローラ111は、各メモリ訓練プロセスにおいて、1つのみの書き込みDQ(第1の書き込みDQ)の送信遅延を調整する。図4a~図4eに示されるメモリ訓練プロセスと比較して、実施形態3では、メモリコントローラ111は、他の書き込みDQおよび書き込みDQSの送信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
第1の書き込みDQは、図1のデータ信号線L0によって伝送される書き込みDQ0であると仮定されることに留意されたい。次いで、メモリコントローラ111が書き込みDQ0の送信遅延を調整するとき、メモリコントローラ111は、データ信号線L1~データ信号線L7を介してメモリチップ12に依然としてアクセスすることができる。言い換えれば、実施形態3では、書き込みDQ0~書き込みDQ7と書き込みDQSとの間の相対タイミング位置がアライメントされるとき、メモリチップ12は、さらに、プロセッサコア112の継続的な実行に対するメモリ訓練の影響をさらに低減するように、並列にアクセスされ得る。
メモリコントローラ111がS1201を実施するとき、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延および最小DQ送信遅延をそれぞれ決定することができることに留意されたい。第1の書き込みDQの初期DQ送信遅延と最小DQ送信遅延との間のオフセットが大きい場合、それは、第1の書き込みDQが初期DQ送信遅延下で十分なホールド時間を有することを示す。この場合、最大DQ送信遅延のみが決定され得る。同様に、第1の書き込みDQの初期DQ送信遅延と最大DQ送信遅延との間のオフセットが大きい場合、それは、第1の書き込みDQが初期DQ送信遅延下で十分なセットアップ時間を有することを示す。この場合、最小DQ送信遅延のみが決定され得る。
第1の書き込みDQの初期DQ送信遅延は、メモリコントローラ111がメモリ訓練の実施を開始する前の、またはメモリコントローラがメモリ訓練の実施を開始するときの第1の書き込みDQの送信遅延として理解され得る。第1の書き込みDQの初期DQ送信遅延はまた、メモリコントローラ111が前述のトリガ命令を受信する前の第1の書き込みDQの送信遅延として理解されてもよい。
可能な実装形態では、メモリコントローラ111は、第1の書き込みDQで搬送されたデータの書き込みにエラーが発生するまで、第1の書き込みDQの送信遅延を、初期DQ送信遅延から開始して徐々に低減することができる。この場合、第1の書き込みDQの送信遅延は、最小DQ送信遅延として使用され得る。メモリコントローラ111は、さらに、第1の書き込みDQで搬送されたデータの書き込みにエラーが発生するまで、第1の書き込みDQの送信遅延を初期DQ送信遅延から開始して徐々に増加させることができる。この場合、第1の書き込みDQの送信遅延は、最大DQ送信遅延として使用され得る。
別の可能な実装形態では、メモリコントローラ111は、図14に示される方法を使用して、最大DQ送信遅延および/または最小DQ送信遅延をさらに決定することができる。方法は、以下のステップを主に含む:
S1401:メモリコントローラ111は、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って第1の書き込みDQの送信遅延を低減する。言い換えれば、メモリコントローラ111は、第1の書き込みDQの送信遅延を初期DQ送信遅延から第1のDQ送信遅延に低減することができる。第1のDQ送信遅延と初期DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標ホールド時間である。
S1402:第1の書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1403の実施を継続する。第1の書き込みDQで搬送されたデータが正しく書き込まれた場合、メモリコントローラ111は、S1405の実施を継続する。
第1の書き込みDQで搬送されたデータが正しく書き込まれた場合、それは、初期DQ送信遅延と最小DQ送信遅延との間の時間間隔が大きいことを示し、第1の書き込みDQのホールド時間が初期DQ送信遅延下で十分であり、較正は必要とされないことが理解されよう。したがって、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定するために、最小DQ送信遅延を決定することなくS1405の実施を継続し、第1の書き込みDQの送信遅延を増加させることができる。
第1の書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、それは、初期DQ送信遅延下での第1の書き込みDQのホールド時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。例えば、図15に示されるように、初期DQ送信遅延下での書き込みDQSの交点は、第1の書き込みDQの周期の遅い位置に位置され、すなわち、第1の書き込みDQのホールド時間は、初期DQ送信遅延下で短い。
初期DQ送信遅延に基づいて、メモリコントローラ111は、メモリチップ12に適用可能な目標ホールド時間H1に従って、第1のDQの送信遅延を初期DQ送信遅延から第1のDQ送信遅延に低減する。メモリコントローラ111が書き込みDQSの送信遅延を保つため、第1の書き込みDQの対応する周期がメモリチップ12に伝送される時刻は、書き込みDQSの交点と比較して早められ、早められた時間振幅は、メモリチップ12に適用可能な目標ホールド時間H1である。
図15から、第1の書き込みDQのホールド時間は、第1のDQ送信遅延下で十分ではなく、それによって、第1の書き込みDQで搬送されたデータの書き込みにエラーを引き起こすことが知見され得る。
S1403:メモリコントローラ111は、第3の調整振幅に従って第1の書き込みDQの送信遅延を増加させる。第3の調整振幅は、メモリチップ12に適用可能な目標ホールド時間H1未満であることに留意されたい。一般に、第3の調整振幅は、第1の書き込みDQの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅であり得る。
S1404:第1の書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1403の実施を継続するために戻る。
メモリコントローラ111は、S1403およびS1404を1回以上実施し、第1の書き込みDQで搬送されたデータが正しく書き込まれるまで、第1の書き込みDQの送信遅延を徐々に増加させる。この場合、図15に示されるように、第1の書き込みDQの送信遅延は、最小DQ送信遅延として使用され得る。
電子デバイス10の作業プロセスでは、書き込みDQSの交点が対応する第1の書き込みDQ周期の中間位置からオフセットされている場合でも、書き込みDQSの交点は対応する書き込みDQ周期の中間位置の近くに依然として位置されることが理解されよう。この場合、メモリコントローラ111が第1の書き込みDQの送信遅延を初期DQ時点から徐々に低減する場合、メモリコントローラ111は、第1の書き込みDQの送信遅延を複数回調整し、第1の書き込みDQで搬送されたデータが正しく書き込まれたかどうかをチェックすることによって、最小DQ送信遅延を決定することができる。
本出願の実施形態で提供されるS1401~S1404では、メモリチップ12に適用可能な目標ホールド時間H1は、通常、第1の書き込みDQの半周期未満である。しかしながら、第1のDQ送信遅延から最小DQ送信遅延までの調整振幅は、メモリチップ12に適用可能な目標ホールド時間H1を超えない。したがって、S1403は少ない回数実施され、よって最小DQ送信遅延が迅速に決定され得る。
S1405:メモリコントローラ111は、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って第1の書き込みDQの送信遅延を増加させる。言い換えれば、図16に示されるように、メモリコントローラ111は、第1の書き込みDQの送信遅延を初期DQ送信遅延から第2のDQ送信遅延に増加させることができる。第2のDQ送信遅延と初期DQ送信遅延との間の間隔は、メモリチップ12に適用可能な目標セットアップ時間S1である。
メモリコントローラ111は、書き込みDQSの送信遅延を保ち、第1の書き込みDQの送信遅延を増加させる。したがって、書き込みDQSの交点と比較して、第1の書き込みDQの対応する周期がメモリチップ12に伝送される時刻が遅延される。言い換えれば、第1の書き込みDQの周期は、図16の矢印で示される方向に移動する。加えて、移動距離は、メモリチップ12に適用可能な目標セットアップ時間S1である。
S1406:第1の書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1407の実施を継続する。第1の書き込みDQで搬送されたデータが正しく書き込まれた場合、メモリコントローラ111は、S1408の実施を継続する。
第1の書き込みDQのデータが第2のDQ送信遅延下で正しく書き込まれた場合、それは、初期DQ送信遅延と最大DQ送信遅延との間の時間間隔が大きいことを示し、第1の書き込みDQのホールド時間が初期DQ送信遅延下で十分であり、較正は必要とされないことが理解されよう。図16に示されるように、初期DQ送信遅延下での書き込みDQSの交点は、第1の書き込みDQの対応する周期の遅い位置に位置される。言い換えれば、第1の書き込みDQのセットアップ時間は、初期DQ送信遅延下で長い。
メモリコントローラ111が第1の書き込みDQの送信遅延を第2のDQ送信遅延に増加させた後、第1の書き込みDQは大きいセットアップ時間を依然として有し、第1の書き込みDQで搬送されたデータはメモリチップ12に依然として正しく書き込まれ得る。したがって、メモリコントローラ111は、最大DQ送信遅延を決定する必要はなく、S1202の実施を継続することができる。
いくつかのシナリオでは、第1の書き込みDQで搬送されたデータがS1402およびS1406で正しく書き込まれる場合があり得る。言い換えれば、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って第1の書き込みDQの送信遅延が低減された後、第1の書き込みDQで搬送されたデータが正しく書き込まれる。言い換えれば、第1の書き込みDQは、初期DQ送信遅延下で十分なホールド時間を有する。初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って第1の書き込みDQの送信遅延が増加された後、第1の書き込みDQで搬送されたデータが正しく書き込まれる。言い換えれば、第1の書き込みDQは、初期DQ送信遅延下で十分なセットアップ時間を有する。この場合、メモリコントローラ111は、初期DQ送信遅延を目標DQ送信遅延として直接使用することができる。
第2のDQ送信遅延下で第1の書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、それは、第1の書き込みDQのセットアップ時間が伝送性能(安定性)の要件を維持するのに十分ではなく、較正が必要とされることを示す。
一般に、メモリチップ12の目標セットアップ時間S1および目標ホールド時間H1のいずれも、第1の書き込みDQの半周期の持続時間よりも大きくない。言い換えれば、メモリコントローラ111が第1の書き込みDQの最小DQ送信遅延を決定する場合、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定する必要がない。メモリコントローラ111が第1の書き込みDQの最大DQ送信遅延を決定する場合、メモリコントローラ111は、第1の書き込みDQの最小DQ送信遅延を決定する必要がない。
S1407:メモリコントローラ111は、第4の調整振幅に従って第1の書き込みDQの送信遅延を低減する。第4の調整振幅は、メモリチップ12に適用可能な目標セットアップ時間未満であることに留意されたい。一般に、第4の調整振幅は、第1の書き込みDQの送信遅延を調整するためにメモリコントローラ111によって使用され得る最小調整振幅でもあり得る。
S1408:第1の書き込みDQで搬送されたデータの書き込みにエラーが発生した場合、メモリコントローラ111は、S1407の実施を継続するために戻る。
メモリコントローラ111は、S1407およびS1408を1回以上実施し、第1の書き込みDQで搬送されたデータが正しく書き込まれるまで、第1の書き込みDQの送信遅延を徐々に低減する。この場合、第1の書き込みDQの送信遅延は、最大DQ送信遅延として使用され得る。
メモリコントローラ111は、図14に示される方法を実施することによって、第1の書き込みDQの最大DQ送信遅延および/または最小DQ送信遅延を決定することができる。次いで、メモリコントローラ111は、最大DQ送信遅延および/または最小DQ送信遅延に基づいてS1202の実施を継続することができる。
メモリコントローラ111によって、第1の書き込みDQの最大DQ送信遅延および/または最小DQ送信遅延を決定するプロセスにおいて、メモリコントローラ111は、第1の書き込みDQの最大DQ送信遅延を決定するために、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標セットアップ時間S1に従って第1の書き込みDQの送信遅延を増加させ、次いで、第1の書き込みDQの最小DQ送信遅延を決定するために、初期DQ送信遅延に基づいて、メモリチップ12に適用可能な目標ホールド時間H1に従って第1の書き込みDQの送信遅延を低減することができることが理解されよう。前述のプロセスも本出願の実施形態に含まれるべきであり、具体的な実装形態の詳細は再度説明されない。
実施形態4:読み出しDQと読み出しDQSとの間の相対タイミング位置をアライメントするために、読み出しDQの受信遅延が調整される。
実施形態3と同様の技術的概念に基づいて、本出願の実施形態で提供される実施形態4では、読み出しDQと読み出しDQSとの間の相対タイミング位置がアライメントされ得る。
具体的には、図17に示されるように、実施形態4は、以下のステップを主に含む:
S1701:メモリコントローラ111は、第1の読み出しDQで搬送されたデータが正しく書き込まれた場合、第1の読み出しDQの最大DQ受信遅延および/または最小DQ受信遅延を決定する。
このプロセスはS1202と同様である。違いは、メモリチップ12が第1の読み出しDQおよび読み出しDQSを出力し、メモリコントローラ111が第1の読み出しDQおよび読み出しDQSを受信することにある。一般に、読み出しDQSにおける隣接する交点間の中間点がトリガ点として使用され、メモリコントローラ111は、第1の読み出しDQのレベル状態を識別するためにトリガされる。
具体的には、可能な実装形態では、メモリコントローラ111は、第1の読み出しDQで搬送されたデータの読み出しにエラーが発生するまで、第1の読み出しDQの受信遅延を、初期DQ受信遅延から開始して徐々に低減することができる。この場合、第1の読み出しDQの受信遅延は、最小DQ受信遅延として使用され得る。メモリコントローラ111は、さらに、第1の読み出しDQで搬送されたデータの読み出しにエラーが発生するまで、第1の読み出しDQの受信遅延を初期DQ受信遅延から開始して徐々に増加させることができる。この場合、第1の読み出しDQの受信遅延は、最大DQ受信遅延として使用され得る。
別の可能な実装形態では、メモリコントローラ111は、図14のプロセスと同様のプロセスを使用して、第1の読み出しDQの最大DQ受信遅延および最小DQ受信遅延をさらに決定することができる。具体的には、メモリコントローラ111は、最大DQ受信遅延および/または最小DQ受信遅延をそれぞれ決定することができる。
1.最小DQ受信遅延を決定する
初期DQ受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標ホールド時間に従って第1の読み出しDQの受信遅延を低減する。図18に示されるように、メモリコントローラ111は、第1の読み出しDQの受信遅延を初期DQ受信遅延から第1のDQ受信遅延に低減し、第1のDQ受信遅延と初期DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2である。
メモリコントローラ111が適用可能な目標セットアップ時間H2の具体的な実装形態については、実施形態2。詳細は、ここでは再度説明されない。
第1の読み出しDQで搬送されたデータが第1のDQ受信遅延下で正しく読み出された場合、それは、初期DQ受信遅延と最小DQ受信遅延との間の時間間隔が大きいことを示す。初期DQ受信遅延下では、第1の読み出しDQのセットアップ時間は十分であり、較正は必要とされない。この場合、最小DQ受信遅延を決定することなく、最大DQ受信遅延が決定され続け得る。図18に示されるように、第1の読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、それは、初期DQ受信遅延下での第1の読み出しDQのホールド時間が伝送性能(安定性)の要件を満たすのに十分ではなく、較正が必要とされることを示す。
第1のDQ受信遅延下で第1の読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、メモリコントローラ111は、第1の読み出しDQの受信遅延を徐々に増加させることができ、その結果、読み出しDQSに対する第1の読み出しDQの中間点は、第1の読み出しDQで搬送されたデータが正しく読み出されるまで、図18の矢印で示される方向に移動する。この場合、図18に示されるように、第1の読み出しDQの受信遅延は、最小DQ受信遅延である。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図14のS1401~S1404に示される第1の書き込みDQの最小DQ送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
2.最大DQ受信遅延を決定する
初期DQ受信遅延に基づいて、メモリコントローラ111は、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って第1の読み出しDQの受信遅延を増加させる。図19に示されるように、メモリコントローラ111は、第1の読み出しDQの受信遅延を初期DQ受信遅延から第2のDQ受信遅延に増加させ、第2のDQ受信遅延と初期DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2である。メモリコントローラ111が適用可能な目標セットアップ時間S2の具体的な実装形態については、実施形態2を参照することができる。詳細は、ここでは再度説明されない。
図19に示されるように、第1の読み出しDQのデータが第2のDQ受信遅延下で正しく読み出された場合、それは、初期DQ受信遅延と最大DQ受信遅延との間の時間間隔が大きいことを示す。初期DQ受信遅延下では、第1の読み出しDQのセットアップ時間は十分であり、較正は必要とされない。この場合、最大DQ受信遅延を決定することなく、S1702が実施され続ける。
初期DQ受信遅延と最大DQ受信遅延との間の時間間隔、および初期DQ受信遅延と最小DQ受信遅延との間の時間間隔が大きい場合もあり得ることが理解されよう。言い換えれば、初期DQ受信遅延に基づいて、メモリコントローラ111に適用可能な目標セットアップ時間S2に従って第1の読み出しDQの受信遅延が増加された後、第1の読み出しDQで搬送されたデータが正しく読み出される。言い換えれば、第1の読み出しDQは、初期DQ受信遅延下で十分なセットアップ時間を有する。初期DQ受信遅延に基づいて、メモリコントローラ111に適用可能な目標ホールド時間H2に従って第1の読み出しDQの受信遅延が低減された後、第1の読み出しDQで搬送されたデータが正しく読み出される。言い換えれば、第1の読み出しDQは、初期DQ受信遅延下で十分なホールド時間を有する。この場合、メモリコントローラ111は、初期DQ受信遅延を目標DQ受信遅延として直接使用することができる。
第2のDQ受信遅延下で第1の読み出しDQで搬送されたデータの読み出しにエラーが発生した場合、それは、初期DQ受信遅延下での第1の読み出しDQのセットアップ時間が伝送性能(安定性)を維持するのに十分ではなく、較正が必要とされることを示す。メモリコントローラ111は、第1の読み出しDQで搬送されたデータが正しく読み出されるまで、第1の読み出しDQの受信遅延を、第2のDQ受信遅延から開始して徐々に低減することができる。この場合、第1の読み出しDQの受信遅延は、最大DQ受信遅延である。
前述のプロセスは単に簡単な説明であることを理解されたい。具体的な実装形態については、メモリコントローラ111によって、図8のS1405~S1408に示される第1の書き込みDQの最大DQ送信遅延を決定するプロセスを参照することができる。詳細は、ここでは再度説明されない。
一般に、メモリコントローラ111の目標セットアップ時間S2および目標ホールド時間H2のいずれも、第1の読み出しDQの半周期の持続時間よりも大きくない。言い換えれば、メモリコントローラ111が第1の読み出しDQの最小DQ受信遅延を決定する場合、メモリコントローラ111は、第1の書き込みDQの最大DQ受信遅延を決定する必要がない。メモリコントローラ111が第1の読み出しDQの最大DQ受信遅延を決定する場合、メモリコントローラ111は、第1の読み出しDQの最小DQ受信遅延を決定する必要がない。
S1702:メモリコントローラ111は、読み出しDQSの受信遅延を保ち、第1の読み出しDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間目標DQ受信遅延に調整する。目標DQ受信遅延と最大DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間以上である。目標DQ受信遅延と最小受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間以上である。
S1701では、メモリコントローラ111は、最大DQ受信遅延および最小DQ受信遅延のうちの1つまたは2つを決定するため、S1702の目標DQ受信遅延も、場合によって説明される必要があることに留意されたい。
ケース1:メモリコントローラ111は、最大DQ受信遅延を決定するが、最小DQ受信遅延を決定しない。この場合、目標DQ受信遅延と最大DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得る。最大DQ受信遅延と最小DQ受信遅延との間の時間間隔が大きいため、間隔は、第1の読み出しDQの周期持続時間に近い。加えて、第1の読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりもはるかに大きいため、目標DQ受信遅延と最大DQ受信遅延との間の間隔がメモリコントローラ111に適用可能な目標セットアップ時間である場合、目標DQ受信遅延と最小DQ受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きい。
ケース2:メモリコントローラ111は、最小DQ受信遅延を決定するが、最大DQ受信遅延を決定しない。この場合、目標DQ受信遅延と最小DQ受信遅延との間の間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2であり得る。上述したように、最大DQ受信遅延と最小DQ受信遅延との間の時間間隔は大きく、第1の読み出しDQの周期持続時間に近い。加えて、第1の読み出しDQの周期は、通常、メモリコントローラ111に適用可能な目標ホールド時間H2よりもはるかに大きいため、目標DQ受信遅延と最小DQ受信遅延との間の間隔がメモリコントローラ111に適用可能な目標ホールド時間H2である場合、目標DQ受信遅延と最大DQ受信遅延との間の間隔は、通常、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きい。
ケース3:メモリコントローラ111は、最小DQ受信遅延および最大DQ受信遅延を決定する。この場合、目標DQ受信遅延と最大DQ受信遅延との間の間隔が、メモリコントローラ111に適用可能な目標セットアップ時間S2であり得るか、または目標DQ受信遅延と最小DQ受信遅延との間の間隔が、メモリコントローラ111に適用可能な目標ホールド時間H2であり得るか、または目標DQ受信遅延が、最大DQ受信遅延と最小DQ受信遅延との間の中間位置に位置され得る。
上述したように、最大DQ受信遅延と最小DQ受信遅延との間の時間間隔は大きく、読み出しDQの周期持続時間に近い。目標DQ受信遅延は、最大DQ受信遅延と最小DQ受信遅延との間の中間位置に位置され、その結果、目標DQ受信遅延と最小DQ受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標ホールド時間H2よりも大きくなり得、目標DQ受信遅延と最大DQ受信遅延との間の時間間隔は、メモリコントローラ111に適用可能な目標セットアップ時間S2よりも大きくなり得る。
実施形態4では、メモリコントローラ111は、各メモリ訓練プロセスにおいて、1つのみの読み出しDQ(第1の読み出しDQ)の受信遅延を調整する。図4a~図4eに示されるメモリ訓練プロセスと比較して、実施形態4では、メモリコントローラ111は、他の読み出しDQおよび読み出しDQSの受信遅延を調整する必要がない。したがって、メモリ訓練持続時間が短縮される。
第1の読み出しDQは、図1のデータ信号線L0によって伝送される読み出しDQ0であると仮定されることに留意されたい。次いで、メモリコントローラ111が書き込みDQ0の受信遅延を調整するとき、メモリコントローラ111は、データ信号線L1~データ信号線L7を介してメモリチップ12に依然としてアクセスすることができる。言い換えれば、実施形態4では、読み出しDQ0~読み出しDQ7と読み出しDQSとの間の相対タイミング位置がアライメントされるとき、メモリチップ12は、さらに、プロセッサコア112の継続的な実行に対するメモリ訓練の影響をさらに低減するように、並列にアクセスされ得る。
実施形態3および実施形態4では、メモリコントローラ111は、各メモリ訓練において、書き込みDQと書き込みDQSとの間の相対タイミング位置を1つのみのデータ伝送線上にアライメントし、読み出しDQと読み出しDQSとの間の相対タイミング位置をデータ伝送線上にアライメントすることができることに留意されたい。メモリコントローラ111は、ラウンドロビン規則を使用して、書き込みDQ0~書き込みDQ7と書き込みDQSとのアライメント、および読み出しDQ0~読み出しDQ7と読み出しDQSとのアライメントを連続的に完了する。例えば、メモリコントローラ111によって使用されるラウンドロビン規則は、図20に示されることができ、以下のステップを主に含む:
S2001:メモリコントローラ111は、トリガ命令を受信する。
S2002:メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ0の送信遅延および読み出しDQ0の受信遅延が調整される必要があると決定する。さらに、メモリコントローラ111は、書き込みDQ0の送信遅延を調整し、その結果、書き込みDQ0と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ0の受信遅延を調整し、その結果、読み出しDQ0と読み出しDQSとの間の相対タイミング位置がアライメントされる。
S2003:メモリコントローラ111は、メモリ訓練を完了する。
S2004:メモリコントローラ111は、トリガ命令を受信する。
S2005:メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ1の送信遅延および読み出しDQ1の受信遅延が調整される必要があると決定する。さらに、メモリコントローラ111は、書き込みDQ1の送信遅延を調整し、その結果、書き込みDQ1と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ1の受信遅延を調整し、その結果、読み出しDQ1と読み出しDQSとの間の相対タイミング位置がアライメントされる。
S2006:メモリコントローラ111は、メモリ訓練を完了する。
類推によって、メモリコントローラ111は、前述のルールに従って、書き込みDQ2~書き込みDQ7の送信遅延と、読み出しDQ2~読み出しDQ7の受信遅延とを連続的に調整する。
S2007:メモリコントローラ111は、トリガ命令を受信する。
S2008:メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ7の送信遅延および読み出しDQ7の受信遅延が調整される必要があると決定する。さらに、メモリコントローラ111は、書き込みDQ7の送信遅延を調整し、その結果、書き込みDQ7と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ7の受信遅延を調整し、その結果、読み出しDQ7と読み出しDQSとの間の相対タイミング位置がアライメントされる。
S2009:メモリコントローラ111は、メモリ訓練を完了する。
トリガ命令が次回に受信された後(すなわち、図20に示されるように、S2009からS2001に戻った後)、メモリコントローラ111は、ラウンドロビン規則に従って、書き込みDQ0の送信遅延および読み出しDQ0の受信遅延を調整される必要があると決定し、さらに、書き込みDQ0の送信遅延を調整し、その結果、書き込みDQ0と書き込みDQSとの間の相対タイミング位置がアライメントされる。加えて、メモリコントローラ111は、読み出しDQ0の受信遅延を調整し、その結果、読み出しDQ0と読み出しDQSとの間の相対タイミング位置がアライメントされる(S2002)。
前述は、本出願で提供されるメモリ訓練方法を、方法の実施形態の観点から説明している。前述の機能を実装するために、メモリコントローラは、対応する機能を実施するためのハードウェア回路および/またはソフトウェアモジュールを含むことができることが理解されよう。当業者は、本明細書に開示された実施形態で説明された例のステップと組み合わせて、本出願が、ハードウェア、またはハードウェアとコンピュータソフトウェアとの組み合わせによって実装され得ることを容易に認識するはずである。機能が、ハードウェアによって実施されるか、またはコンピュータソフトウェアによって駆動されるハードウェアによって実施されるかは、技術的解決策の特定の用途および設計制約に依存する。当業者は、特定の用途ごとに、説明された機能を実装するために異なる方法を使用し得るが、その実装は本発明の範囲を超える、と考えられるべきではない。
例えば、本出願の実施形態は、メモリコントローラを提供する。メモリコントローラは、前述の実施形態のいずれか1つで提供されるメモリ訓練方法を実装することができる。図21に示されるように、メモリコントローラ2100は、遅延回路2101と制御回路2102とを主に含む。メモリコントローラ2100は、図1に示されるメモリコントローラ111として使用され得る。
可能な実装形態では、遅延回路2101は、制御回路2102の制御下でDQSの伝送遅延を生成することができる。遅延回路2101は、DQSの伝送遅延を調整し、DQSの位相を調整することができる。
例えば、遅延回路2101は、レジスタおよび位相調整器を含んでもよい。位相調整器は、DQSの伝送遅延を生成することができる。レジスタは、制御回路2102が遅延回路2101を制御するための制御インターフェースとして使用され得る。このようにして、制御回路2102は、レジスタを介して遅延回路2101を制御することによって、DQSの伝送遅延を調整することができる。
制御回路2102は、一定の論理演算能力を有する論理回路であってもよく、DQSの伝送遅延を調整するために遅延回路2101を制御することができ、その結果、メモリコントローラ2100は、本出願の実施形態においてDQSの伝送遅延を調整することによってメモリ訓練を実施するための方法を実施することができる。
1つの具体例では、制御回路2102は、N個のDQの伝送遅延を不変に保つために遅延回路2101を制御し、DQSの伝送遅延を調整するために遅延回路2101を制御し、よって、N個のDQで搬送されたすべてのデータが正しく伝送された場合、DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定することができる。前述のN個のDQおよびDQSはすべてメモリコントローラ2100からメモリチップに伝送されるか、またはすべてメモリチップからメモリコントローラ2100に伝送され、DQSは、N個のDQのレベル状態を識別するために、N個のDQの受信端をトリガすることができる。N個のDQおよびDQSがメモリコントローラ2100からメモリチップに伝送される場合、N個のDQの受信端はメモリチップである。N個のDQおよびDQSがメモリチップからメモリコントローラ2100に伝送される場合、N個のDQの受信端はメモリコントローラ2100である。制御回路2102は、DQSの伝送遅延を、最大DQS伝送遅延と最小DQS伝送遅延との間目標DQS伝送遅延に調整するために、遅延回路2101を制御する。目標DQS伝送遅延と最大DQS伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上であり、かつ/または目標DQS伝送遅延と最小DQS伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上である。
具体的には、N個のDQおよびDQSはメモリコントローラ2100から伝送されてもよく、DQSの伝送遅延はDQSの送信遅延である。この場合、制御回路2102は、DQSの送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間目標DQS送信遅延に調整するために、遅延回路2101を制御することができる。
N個のDQおよびDQSは、同様に、メモリチップからメモリコントローラ2100に伝送されてもよく、DQSの伝送遅延はDQSの受信遅延である。この場合、制御回路2102は、DQSの受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間目標DQS受信遅延に調整するために、遅延回路2101を制御することができる。
次に、制御回路2102が最小DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、少なくとも1つのDQで搬送されたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に低減するために、遅延回路2101を制御することができる。この場合、DQSの伝送遅延は、最小DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、DQSの伝送遅延を第1のDQS伝送遅延に低減するために、遅延回路2101を制御することができる。第1のDQS伝送遅延と低減前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間である。少なくとも1つのDQで搬送されたデータの伝送にエラーが発生した場合、制御回路2102は、DQSの伝送遅延を徐々に増加させるために遅延回路2101を制御し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最小DQS伝送遅延であると決定する。
低減前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に増加させるために遅延回路2101を制御する場合、制御回路2102は、毎回、第1のDQS調整振幅を増加させる様式でDQSの伝送遅延を徐々に増加させるために、遅延回路2101を制御することができる。第1のDQS調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第1のDQS調整振幅は、遅延回路2101によるDQSの伝送遅延の最小調整振幅であり得る。
次に、制御回路2102が最大DQS伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、少なくとも1つのDQで搬送されたデータの伝送にエラーが発生するまで、DQSの伝送遅延を、初期DQS伝送遅延から開始して徐々に増加させるために、遅延回路2101を制御することができる。この場合、DQSの伝送遅延は、最大DQS伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、DQSの伝送遅延を第2のDQS伝送遅延に増加させるために、遅延回路2101を制御することができる。第2のDQS伝送遅延と増加前のDQSの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。少なくとも1つのDQで搬送されたデータの伝送にエラーが発生した場合、制御回路2102は、DQSの伝送遅延を徐々に低減するために遅延回路2101を制御し、N個のDQで搬送されたすべてのデータが正しく伝送された場合、対応するDQSの伝送遅延がDQSの最大DQS伝送遅延であると決定する。
増加前のDQSの伝送遅延は、初期DQS伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときのDQSの伝送遅延であってもよい。
例えば、DQSの伝送遅延を徐々に低減するために遅延回路2101を制御する場合、制御回路2102は、毎回、第2のDQS調整振幅を低減することによってDQSの伝送遅延を徐々に低減するために、遅延回路2101を制御することができる。第2のDQS調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第2のDQS調整振幅は、遅延回路2101によるDQSの伝送遅延の最小調整振幅であり得る。
別の可能な実装形態では、遅延回路2101は、制御回路2102の制御下で第1のDQの伝送遅延を生成することができる。遅延回路2101は、第1のDQの伝送遅延を調整し、第1のDQの位相を調整することができる。
例えば、遅延回路2101は、レジスタおよび位相調整器を含んでもよい。位相調整器は、第1のDQの伝送遅延を生成することができる。レジスタは、制御回路2102が遅延回路2101を制御するための制御インターフェースとして使用され得る。このようにして、制御回路2102は、レジスタを介して遅延回路2101を制御することによって、第1のDQの伝送遅延を調整することができる。
制御回路2102は、一定の論理演算能力を有する論理回路であってもよく、第1のDQの伝送遅延を調整するために遅延回路2101を制御することができ、その結果、メモリコントローラ2100は、本出願の実施形態において第1のDQの伝送遅延を調整することによってメモリ訓練を実施するための方法を実施することができる。
1つの具体例では、制御回路2102は、DQSの伝送遅延を不変に保つために遅延回路2101を制御し、第1のDQの伝送遅延を調整するために遅延回路2101を制御し、よって、第1のDQで搬送されたデータが正しく伝送された場合、第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定することができる。DQSおよび第1のDQは両方ともメモリコントローラ2100からメモリチップに伝送されるか、または両方ともメモリチップからメモリコントローラ2100に伝送される。DQSは、第1のDQのレベル状態を識別するために、第1のDQの受信端をトリガすることができる。第1のDQおよびDQSがメモリコントローラ2100からメモリチップに伝送される場合、第1のDQの受信端はメモリチップである。第1のDQおよびDQSがメモリチップからメモリコントローラ2100に伝送される場合、第1のDQの受信端はメモリコントローラ2100である。制御回路2102は、第1のDQの伝送遅延を、最大DQ伝送遅延と最小DQ伝送遅延との間目標DQ伝送遅延に調整するために、遅延回路2101を制御する。目標DQ伝送遅延と最大DQ伝送遅延との間の間隔は、受信端に適用可能な目標セットアップ時間以上であり、かつ/または目標DQ伝送遅延と最小DQ伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間以上である。
DQSはN個のDQに対応することができ、第1のDQはN個のDQ内に位置される。DQSの伝送遅延を不変に保つために遅延回路2101を制御し、第1のDQの伝送遅延を調整するために遅延回路2101を制御する前に、制御回路2102は、まず、ラウンドロビン規則に従って、N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQを第1のDQとしてさらに決定することができる。
具体的には、第1のDQおよびDQSの両方がメモリコントローラ2100からメモリチップに送信されてもよく、第1のDQの伝送遅延は第1のDQの送信遅延である。この場合、制御回路2102は、第1のDQの送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間目標DQ送信遅延に調整するために、遅延回路2101を制御することができる。
第1のDQおよびDQSは両方ともメモリチップからメモリコントローラ2100に伝送されてもよく、第1のDQの伝送遅延は第1のDQの受信遅延である。この場合、制御回路2102は、第1のDQの受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間目標DQ受信遅延に調整するために、遅延回路2101を制御することができる。
次に、制御回路2102が最小DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、第1のDQで搬送されたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に低減するために、遅延回路2101を制御することができる。この場合、第1のDQの伝送遅延は、最小DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、第1のDQの伝送遅延を第1のDQ伝送遅延に低減するために、遅延回路2101を制御することができる。第1のDQ伝送遅延と低減前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQで搬送されたデータの伝送にエラーが発生した場合、制御回路2102は、第1のDQの伝送遅延を徐々に増加させるために遅延回路2101を制御し、第1のDQで搬送されたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最小DQ伝送遅延であると決定することができる。
低減前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、第1のDQの伝送遅延を徐々に増加させる場合、制御回路2102は、毎回、第1のDQ調整振幅を増加させる様式で第1のDQの伝送遅延を徐々に増加させるために、遅延回路2101を制御することができる。第1のDQ調整振幅は、受信端に適用可能な目標ホールド時間未満である。例えば、第1のDQ調整振幅は、遅延回路2101による第1のDQの伝送遅延の最小調整振幅である。
次に、制御回路2102が最大DQ伝送遅延を決定する様式がさらに説明される:
可能な実装形態では、制御回路2102は、第1のDQで搬送されたデータの伝送にエラーが発生するまで、第1のDQの伝送遅延を、初期DQ伝送遅延から開始して徐々に増加させるために、遅延回路2101を制御することができる。この場合、第1のDQの伝送遅延は、最大DQ伝送遅延として使用され得る。
別の可能な実装形態では、制御回路2102は、第1のDQの伝送遅延を第2のDQ伝送遅延に増加させるために、遅延回路2101を制御することができる。第2のDQ伝送遅延と増加前の第1のDQの伝送遅延との間の間隔は、受信端に適用可能な目標ホールド時間である。第1のDQで搬送されたデータの伝送にエラーが発生した場合、制御回路2102は、第1のDQの伝送遅延を徐々に低減するために遅延回路2101を制御し、第1のDQで搬送されたデータが正しく伝送された場合、対応する第1のDQの伝送遅延が最大DQ伝送遅延であると決定することができる。
増加前の第1のDQの伝送遅延は、初期DQ伝送遅延であってもよく、例えば、制御回路2102がこのメモリ訓練の実施を開始する前の、または制御回路がこのメモリ訓練の実施を開始するときの第1のDQの伝送遅延であってもよい。
例えば、制御回路2102は、毎回、第2のDQ調整振幅を低減することによって第1のDQの伝送遅延を徐々に低減するために、遅延回路2101を制御することができる。第2のDQ調整振幅は、受信端に適用可能な目標セットアップ時間未満である。例えば、第2のDQ調整振幅は、遅延回路2101による第1のDQの伝送遅延の最小調整振幅であり得る。
同じ技術的概念に基づいて、本出願の実施形態はプロセッサをさらに提供する。プロセッサは、図1に示されるプロセッサ11であってもよい。例えば、プロセッサ11は、プロセッサコア112と、メモリコントローラ111とを含む。プロセッサコア112およびメモリコントローラ111の具体的な実装形態については、前述の実施形態を参照することができる。詳細は、ここでは再度説明されない。
同じ技術的概念に基づいて、本出願の実施形態は、電子デバイスをさらに提供する。電子デバイスは、図1に示される電子デバイス10であってもよく、プロセッサ11とメモリチップ12とを含む。メモリチップ12は、プロセッサ11内のメモリコントローラ111に接続されている。電子デバイスの具体的な実装形態については、前述の実施形態を参照することができる。詳細は、ここでは再度説明されない。
同じ技術的概念に基づいて、本出願の実施形態は、電子デバイスをさらに提供する。図22に示されるように、電子デバイス2200は、プロセッサ11と、メモリチップ12と、メモリコントローラ111とを主に含む。メモリコントローラ111は、前述の実施形態のいずれか1つで提供されるメモリコントローラであってもよい。メモリコントローラ111は、プロセッサ11およびメモリチップ12にそれぞれ接続されている。
プロセッサ11は、トリガ命令をメモリコントローラ111に送信することができる。トリガ命令を受信した後、メモリコントローラ111は、本出願の実施形態で提供されるメモリ訓練方法を実施することができる。
例えば、プロセッサ11は、現在の周囲温度と過去の周囲温度との差が温度変動閾値を超えると決定した場合、メモリコントローラ111にトリガ命令を送信することができる。過去の周囲温度は、プロセッサがトリガ命令を以前に送信した周囲温度である。
別の例では、プロセッサは、現在の時点とトリガ命令が以前に送信された時点との間の時間間隔が時間閾値を超えると決定した場合、メモリコントローラ111にトリガ命令を送信することができる。
当業者は、本出願の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを理解するはずである。したがって、本出願は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組み合わせを伴う実施形態の形態を使用することができる。加えて、本出願は、コンピュータ使用可能プログラムコードを含む1つ以上のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、および光メモリなどを含むが、これらに限定されない)上に実装されるコンピュータプログラム製品の形態を使用することができる。
本出願は、本出願による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。コンピュータプログラム命令は、フローチャートおよび/またはブロック図における各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図におけるプロセスおよび/またはブロックの組み合わせを実装するために使用され得ることを理解されたい。これらのコンピュータプログラム命令は、マシンを生成するために汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または他のプログラマブルデータ処理デバイスのプロセッサに提供されてもよく、その結果、コンピュータまたは他のプログラマブルデータ処理デバイスのプロセッサによって実行される命令を介して、フローチャート内の1つ以上のフローおよび/またはブロック図内の1つ以上のブロックに特定される機能を実装するための装置が生成される。
コンピュータプログラム命令は、特定の様式で作業するようにコンピュータまたは別のプログラマブルデータ処理デバイスに指示することができるコンピュータ可読メモリに代替的に記憶されてもよく、その結果、コンピュータ可読メモリに記憶された命令が命令装置を含むアーティファクトを生成する。命令装置は、フローチャートの1つ以上の手順の、および/またはブロック図の1つ以上のブロックの特定の機能を実装する。
コンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイス上に代替的にロードされてもよく、その結果、一連の動作およびステップは、コンピュータまたは別のプログラマブルデバイス上で実施され、その結果、コンピュータ実装処理が生成される。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャートの1つ以上の手順および/またはブロック図の1つ以上のブロックにおける特定の機能を実装するためのステップを提供する。
当業者が、本出願の範囲から逸脱することなく、本出願に様々な修正および変形を行うことができることは明らかである。本出願は、以下の特許請求の範囲およびそれらと同等の技術によって規定される保護範囲内に入る限り、本出願のこれらの修正および変形を包含することが意図されている。
10 電子デバイス
11 プロセッサ
12 メモリチップ
13 メモリバス
14 温度センサ
111 メモリコントローラ
112 プロセッサコア
2100 メモリコントローラ
2101 遅延回路
2102 制御回路
2200 電子デバイス

Claims (45)

  1. メモリコントローラに適用されるメモリ訓練方法であって、
    N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記メモリコントローラによって、前記N個のDQの伝送遅延を不変に保ち、DQSの伝送遅延を調整し、前記DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定するステップであって、前記N個のDQおよび前記DQSがすべて、前記メモリコントローラによってメモリチップに伝送されるか、またはすべて、メモリチップによって前記メモリコントローラに伝送され、前記DQSが、前記N個のDQのレベル状態を識別するために前記N個のDQの受信端をトリガするために使用され、前記N個のDQおよび前記DQSが前記メモリコントローラによって前記メモリチップに伝送される場合、前記N個のDQの前記受信端は前記メモリチップであるか、または前記N個のDQおよび前記DQSが前記メモリチップによって前記メモリコントローラに伝送される場合、前記N個のDQの前記受信端は前記メモリコントローラである、ステップと、
    前記メモリコントローラによって、前記DQSの前記伝送遅延を、前記最大DQS伝送遅延と前記最小DQS伝送遅延との間に位置される目標DQS伝送遅延に調整するステップであって、前記目標DQS伝送遅延と前記最大DQS伝送遅延との間の間隔が、前記受信端に適用可能な目標ホールド時間以上であり、かつ/または前記目標DQS伝送遅延と前記最小DQS伝送遅延との間の間隔が、前記受信端に適用可能な目標セットアップ時間以上である、ステップと
    を含む、メモリ訓練方法。
  2. 前記N個のDQおよび前記DQSが前記メモリコントローラによって前記メモリチップに伝送される場合、前記DQSの前記伝送遅延は前記DQSの送信遅延であり、前記メモリコントローラが、前記DQSの前記送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間に位置される目標DQS送信遅延に調整する、
    請求項1に記載のメモリ訓練方法。
  3. 前記N個のDQおよび前記DQSが前記メモリチップによって前記メモリコントローラに伝送される場合、前記DQSの前記伝送遅延は前記DQSの受信遅延であり、前記メモリコントローラが、前記DQSの前記受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間に位置される目標DQS受信遅延に調整する、
    請求項1に記載のメモリ訓練方法。
  4. 前記N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記メモリコントローラによって、前記DQSの最小DQS伝送遅延を決定する前記ステップが、
    前記メモリコントローラによって、前記DQSの前記伝送遅延を第1のDQS伝送遅延に低減するステップであって、前記第1のDQS伝送遅延と低減前の前記DQSの前記伝送遅延との間の間隔が前記受信端に適用可能な目標セットアップ時間である、ステップと、
    少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、前記メモリコントローラによって、前記DQSの前記伝送遅延を徐々に増加させ、前記N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記DQSの対応する前記伝送遅延が前記DQSの最小DQS伝送遅延であると決定するステップと
    を具体的に含む、請求項1から3のいずれか一項に記載のメモリ訓練方法。
  5. 前記メモリコントローラによって、前記DQSの前記伝送遅延を徐々に増加させる前記ステップが、
    前記メモリコントローラによって、毎回、第1のDQS調整振幅を増加させる様式で前記DQSの前記伝送遅延を徐々に増加させるステップであって、前記第1のDQS調整振幅は、前記受信端に適用可能な前記目標セットアップ時間未満である、ステップ
    を具体的に含む、請求項4に記載のメモリ訓練方法。
  6. 前記第1のDQS調整振幅が、前記メモリコントローラによる前記DQSの前記伝送遅延の最小調整振幅である、請求項5に記載のメモリ訓練方法。
  7. 前記N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記メモリコントローラによって、前記DQSの最大DQS伝送遅延を決定する前記ステップが、
    前記メモリコントローラによって、前記DQSの前記伝送遅延を第2のDQS伝送遅延に増加させるステップであって、前記第2のDQS伝送遅延と増加前の前記DQSの前記伝送遅延との間の間隔が前記受信端に適用可能な目標ホールド時間である、ステップと、
    少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、前記メモリコントローラによって、前記DQSの前記伝送遅延を徐々に低減し、前記N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記DQSの対応する前記伝送遅延が前記DQSの最大DQS伝送遅延であると決定するステップと
    を具体的に含む、請求項1から3のいずれか一項に記載のメモリ訓練方法。
  8. 前記メモリコントローラによって、前記DQSの前記伝送遅延を徐々に低減する前記ステップが、
    前記メモリコントローラによって、毎回、第2のDQS調整振幅を低減する様式で前記DQSの前記伝送遅延を徐々に低減するステップであって、前記第2のDQS調整振幅は、前記受信端に適用可能な前記目標ホールド時間未満である、ステップ
    を具体的に含む、請求項7に記載のメモリ訓練方法。
  9. 前記第2のDQS調整振幅が、前記メモリコントローラによる前記DQSの前記伝送遅延の最小調整振幅である、請求項8に記載のメモリ訓練方法。
  10. メモリコントローラに適用されるメモリ訓練方法であって、
    第1のDQによって運ばれたすべてのデータが正しく伝送された場合、前記メモリコントローラによって、DQSの伝送遅延を不変に保ち、前記第1のDQの伝送遅延を調整し、前記第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定するステップであって、前記DQSおよび前記第1のDQが両方とも、前記メモリコントローラによってメモリチップに伝送されるか、または両方とも、メモリチップによって前記メモリコントローラに伝送され、前記DQSが、前記第1のDQのレベル状態を識別するために前記第1のDQの受信端をトリガするために使用され、前記第1のDQおよび前記DQSが前記メモリコントローラによって前記メモリチップに伝送される場合、前記第1のDQの前記受信端は前記メモリチップであるか、または前記第1のDQおよび前記DQSが前記メモリチップによって前記メモリコントローラに伝送される場合、前記第1のDQの前記受信端は前記メモリコントローラである、ステップと、
    前記メモリコントローラによって、前記第1のDQの前記伝送遅延を、前記最大DQ伝送遅延と前記最小DQ伝送遅延との間に位置される目標DQ伝送遅延に調整するステップであって、前記目標DQ伝送遅延と前記最大DQ伝送遅延との間の間隔が、前記受信端に適用可能な目標セットアップ時間以上であり、かつ/または前記目標DQ伝送遅延と前記最小DQ伝送遅延との間の間隔が、前記受信端に適用可能な目標ホールド時間以上である、ステップと
    を含む、メモリ訓練方法。
  11. N個のDQが前記DQSに対応し、前記第1のDQが前記N個のDQ内に位置され、
    前記メモリコントローラによって、第1のDQの伝送遅延を調整する前記ステップの前に、前記方法が、
    前記メモリコントローラによって、ラウンドロビン規則に従って、前記N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQが前記第1のDQであると決定するステップ
    をさらに含む、請求項10に記載のメモリ訓練方法。
  12. 前記第1のDQおよび前記DQSが両方とも前記メモリコントローラによって前記メモリチップに伝送される場合、前記第1のDQの前記伝送遅延は前記第1のDQの送信遅延であり、前記メモリコントローラが、前記第1のDQの前記送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間に位置される目標DQ送信遅延に調整する、
    請求項10または11に記載のメモリ訓練方法。
  13. 前記第1のDQおよび前記DQSが両方とも前記メモリチップによって前記メモリコントローラに伝送される場合、前記第1のDQの前記伝送遅延は前記第1のDQの受信遅延であり、前記メモリコントローラが、前記第1のDQの前記受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間に位置される目標DQ受信遅延に調整する、
    請求項10または11に記載のメモリ訓練方法。
  14. 前記第1のDQによって運ばれたデータが正しく伝送された場合、前記メモリコントローラによって、前記第1のDQの最小DQ伝送遅延を決定する前記ステップが、
    前記メモリコントローラによって、前記第1のDQの前記伝送遅延を第1のDQ伝送遅延に低減するステップであって、前記第1のDQ伝送遅延と低減前の前記第1のDQの前記伝送遅延との間の間隔が前記受信端に適用可能な目標ホールド時間である、ステップと、
    前記第1のDQによって運ばれたデータの伝送にエラーが発生した場合、前記メモリコントローラによって、前記第1のDQの前記伝送遅延を徐々に増加させ、前記第1のDQによって運ばれた前記データが正しく伝送された場合、前記第1のDQの対応する前記伝送遅延が前記最小DQ伝送遅延であると決定するステップと
    を具体的に含む、請求項10から13のいずれか一項に記載のメモリ訓練方法。
  15. 前記メモリコントローラによって、前記第1のDQの前記伝送遅延を徐々に増加させる前記ステップが、
    前記メモリコントローラによって、毎回、第1のDQ調整振幅を増加させる様式で前記第1のDQの前記伝送遅延を徐々に増加させるステップであって、前記第1のDQ調整振幅は、前記受信端に適用可能な前記目標ホールド時間未満である、ステップ
    を具体的に含む、請求項14に記載のメモリ訓練方法。
  16. 前記第1のDQ調整振幅が、前記メモリコントローラによる前記第1のDQの前記伝送遅延の最小調整振幅である、請求項15に記載のメモリ訓練方法。
  17. 前記第1のDQによって運ばれたデータが正しく伝送された場合、前記メモリコントローラによって、前記第1のDQの最大DQ伝送遅延を決定する前記ステップが、
    前記メモリコントローラによって、前記第1のDQの前記伝送遅延を第2のDQ伝送遅延に増加させるステップであって、前記第2のDQ伝送遅延と増加前の前記第1のDQの前記伝送遅延との間の間隔が前記受信端に適用可能な目標セットアップ時間である、ステップと、
    前記第1のDQによって運ばれたデータの伝送にエラーが発生した場合、前記メモリコントローラによって、前記第1のDQの前記伝送遅延を徐々に低減し、前記第1のDQによって運ばれた前記データが正しく伝送された場合、前記第1のDQの対応する前記伝送遅延が前記最大DQ伝送遅延であると決定するステップと
    を具体的に含む、請求項10から13のいずれか一項に記載のメモリ訓練方法。
  18. 前記メモリコントローラによって、前記第1のDQの前記伝送遅延を徐々に低減する前記ステップが、
    前記メモリコントローラによって、毎回、第2のDQ調整振幅を低減する様式で前記第1のDQの前記伝送遅延を徐々に低減するステップであって、前記第2のDQ調整振幅は、前記受信端に適用可能な前記目標セットアップ時間未満である、ステップ
    を具体的に含む、請求項17に記載のメモリ訓練方法。
  19. 前記第2のDQ調整振幅が、前記メモリコントローラによる前記第1のDQの前記伝送遅延の最小調整振幅である、請求項18に記載のメモリ訓練方法。
  20. 遅延回路と、制御回路とを備え、
    前記遅延回路が、前記制御回路の制御下でDQSの伝送遅延を生成するように構成され、
    前記制御回路が、
    N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記N個のDQの伝送遅延を不変に保つために前記遅延回路を制御し、前記DQSの前記伝送遅延を調整するために前記遅延回路を制御し、前記DQSの最大DQS伝送遅延および/または最小DQS伝送遅延を決定し、前記N個のDQおよび前記DQSがすべて、前記メモリコントローラによってメモリチップに伝送されるか、またはすべて、メモリチップによって前記メモリコントローラに伝送され、前記DQSが、前記N個のDQのレベル状態を識別するために前記N個のDQの受信端をトリガするために使用され、前記N個のDQおよび前記DQSが前記メモリコントローラによって前記メモリチップに伝送される場合、前記N個のDQの前記受信端は前記メモリチップであるか、または前記N個のDQおよび前記DQSが前記メモリチップによって前記メモリコントローラに伝送される場合、前記N個のDQの前記受信端は前記メモリコントローラであり、
    前記DQSの前記伝送遅延を、前記最大DQS伝送遅延と前記最小DQS伝送遅延との間に位置される目標DQS伝送遅延に調整するために前記遅延回路を制御し、前記目標DQS伝送遅延と前記最大DQS伝送遅延との間の間隔が、前記受信端に適用可能な目標ホールド時間以上であり、かつ/または前記目標DQS伝送遅延と前記最小DQS伝送遅延との間の間隔が、前記受信端に適用可能な目標セットアップ時間以上である
    ように構成される、
    メモリコントローラ。
  21. 前記N個のDQおよび前記DQSが前記メモリコントローラによって前記メモリチップに伝送される場合、前記DQSの前記伝送遅延は前記DQSの送信遅延であり、前記制御回路が、
    前記DQSの前記送信遅延を、最大DQS送信遅延と最小DQS送信遅延との間に位置される目標DQS送信遅延に調整するために前記遅延回路を制御する
    ように具体的に構成される、請求項20に記載のメモリコントローラ。
  22. 前記N個のDQおよび前記DQSが前記メモリチップによって前記メモリコントローラに伝送される場合、前記DQSの前記伝送遅延は前記DQSの受信遅延であり、前記制御回路が、
    前記DQSの前記受信遅延を、最大DQS受信遅延と最小DQS受信遅延との間に位置される目標DQS受信遅延に調整するために前記遅延回路を制御する
    ように具体的に構成される、請求項20に記載のメモリコントローラ。
  23. 前記制御回路が、
    前記DQSの前記伝送遅延を第1のDQS伝送遅延に低減するために前記遅延回路を制御し、前記第1のDQS伝送遅延と低減前の前記DQSの前記伝送遅延との間の間隔が前記受信端に適用可能な目標セットアップ時間であり、
    少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、前記DQSの前記伝送遅延を徐々に増加させるために前記遅延回路を制御し、前記N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記DQSの対応する前記伝送遅延が前記DQSの最小DQS伝送遅延であると決定する
    ように具体的に構成される、請求項20から22のいずれか一項に記載のメモリコントローラ。
  24. 前記制御回路が、
    毎回、第1のDQS調整振幅を増加させる様式で前記DQSの前記伝送遅延を徐々に増加させるために前記遅延回路を制御し、前記第1のDQS調整振幅は、前記受信端に適用可能な前記目標セットアップ時間未満である、
    ように具体的に構成される、請求項23に記載のメモリコントローラ。
  25. 前記第1のDQS調整振幅が、前記遅延回路による前記DQSの前記伝送遅延の最小調整振幅である、請求項24に記載のメモリコントローラ。
  26. 前記制御回路が、
    前記DQSの前記伝送遅延を第2のDQS伝送遅延に増加させるために前記遅延回路を制御し、前記第2のDQS伝送遅延と増加前の前記DQSの前記伝送遅延との間の間隔が前記受信端に適用可能な目標ホールド時間であり、
    少なくとも1つのDQによって運ばれたデータの伝送にエラーが発生した場合、前記DQSの前記伝送遅延を徐々に低減するために前記遅延回路を制御し、前記N個のDQによって運ばれたすべてのデータが正しく伝送された場合、前記DQSの対応する前記伝送遅延が前記DQSの最大DQS伝送遅延であると決定する
    ように具体的に構成される、請求項20から22のいずれか一項に記載のメモリコントローラ。
  27. 前記制御回路が、
    毎回、第2のDQS調整振幅を低減する様式で前記DQSの前記伝送遅延を徐々に低減するために前記遅延回路を制御し、前記第2のDQS調整振幅は、前記受信端に適用可能な前記目標ホールド時間未満である
    ように具体的に構成される、請求項26に記載のメモリコントローラ。
  28. 前記第2のDQS調整振幅が、前記遅延回路による前記DQSの前記伝送遅延の最小調整振幅である、請求項27に記載のメモリコントローラ。
  29. 遅延回路と、制御回路とを備え、
    前記遅延回路が、前記制御回路の制御下で第1のDQの伝送遅延を生成するように構成され、
    前記制御回路が、
    第1のDQによって運ばれたデータが正しく伝送された場合、DQSの伝送遅延を不変に保つために前記遅延回路を制御し、前記第1のDQの前記伝送遅延を調整するために前記遅延回路を制御し、前記第1のDQの最大DQ伝送遅延および/または最小DQ伝送遅延を決定し、前記DQSおよび前記第1のDQが両方とも、前記メモリコントローラによってメモリチップに伝送されるか、または両方とも、メモリチップによって前記メモリコントローラに伝送され、前記DQSが、前記第1のDQのレベル状態を識別するために前記第1のDQの受信端をトリガするために使用され、前記第1のDQおよび前記DQSが前記メモリコントローラによって前記メモリチップに伝送される場合、前記第1のDQの前記受信端は前記メモリチップであるか、または前記第1のDQおよび前記DQSが前記メモリチップによって前記メモリコントローラに伝送される場合、前記第1のDQの前記受信端は前記メモリコントローラであり、
    前記第1のDQの前記伝送遅延を、前記最大DQ伝送遅延と前記最小DQ伝送遅延との間に位置される目標DQ伝送遅延に調整するために前記遅延回路を制御し、前記目標DQ伝送遅延と前記最大DQ伝送遅延との間の間隔が、前記受信端に適用可能な目標セットアップ時間以上であり、かつ/または前記目標DQ伝送遅延と前記最小DQ伝送遅延との間の間隔が、前記受信端に適用可能な目標ホールド時間以上である
    ように構成される、
    メモリコントローラ。
  30. N個のDQが前記DQSに対応し、前記第1のDQが前記N個のDQ内に位置され、
    前記制御回路が、
    ラウンドロビン規則に従って、前記N個のDQ内の、メモリ訓練が以前に完了されたDQに続く次のDQが前記第1のDQであると決定する
    ようにさらに構成される、
    請求項29に記載のメモリコントローラ。
  31. 前記第1のDQおよび前記DQSが両方とも前記メモリコントローラによって前記メモリチップに伝送される場合、前記第1のDQの前記伝送遅延は前記第1のDQの送信遅延であり、前記制御回路が、
    前記第1のDQの前記送信遅延を、最大DQ送信遅延と最小DQ送信遅延との間に位置される目標DQ送信遅延に調整するために前記遅延回路を制御する
    ように具体的に構成される、請求項29または30に記載のメモリコントローラ。
  32. 前記第1のDQおよび前記DQSが両方とも前記メモリチップによって前記メモリコントローラに伝送される場合、前記第1のDQの前記伝送遅延は前記第1のDQの受信遅延であり、前記制御回路が、
    前記第1のDQの前記受信遅延を、最大DQ受信遅延と最小DQ受信遅延との間に位置される目標DQ受信遅延に調整するために前記遅延回路を制御する
    ように具体的に構成される、請求項29または30に記載のメモリコントローラ。
  33. 前記制御回路が、
    前記第1のDQの前記伝送遅延を第1のDQ伝送遅延に低減するために前記遅延回路を制御し、前記第1のDQ伝送遅延と低減前の前記第1のDQの前記伝送遅延との間の間隔が前記受信端に適用可能な目標ホールド時間であり、
    前記第1のDQによって運ばれたデータの伝送にエラーが発生した場合、前記第1のDQの前記伝送遅延を徐々に増加させるために前記遅延回路を制御し、前記第1のDQによって運ばれた前記データが正しく伝送された場合、前記第1のDQの対応する前記伝送遅延が前記最小DQ伝送遅延であると決定する
    ように具体的に構成される、請求項29から32のいずれか一項に記載のメモリコントローラ。
  34. 前記制御回路が、
    毎回、第1のDQ調整振幅を増加させる様式で前記第1のDQの前記伝送遅延を徐々に増加させるために前記遅延回路を制御し、前記第1のDQ調整振幅は、前記受信端に適用可能な前記目標ホールド時間未満である、
    ように具体的に構成される、請求項33に記載のメモリコントローラ。
  35. 前記第1のDQ調整振幅が、前記遅延回路による前記第1のDQの前記伝送遅延の最小調整振幅である、請求項34に記載のメモリコントローラ。
  36. 前記制御回路が、
    前記第1のDQの前記伝送遅延を第2のDQ伝送遅延に増加させるために前記遅延回路を制御し、前記第2のDQ伝送遅延と増加前の前記第1のDQの前記伝送遅延との間の間隔が前記受信端に適用可能な目標セットアップ時間であり、
    前記第1のDQによって運ばれたデータの伝送にエラーが発生した場合、前記第1のDQの前記伝送遅延を徐々に低減するために前記遅延回路を制御し、前記第1のDQによって運ばれた前記データが正しく伝送された場合、前記第1のDQの対応する前記伝送遅延が前記最大DQ伝送遅延であると決定する
    ように具体的に構成される、請求項29から32のいずれか一項に記載のメモリコントローラ。
  37. 前記制御回路が、
    毎回、第2のDQ調整振幅を低減する様式で前記第1のDQの前記伝送遅延を徐々に低減するために前記遅延回路を制御し、前記第2のDQ調整振幅は、前記受信端に適用可能な前記目標セットアップ時間未満である
    ように具体的に構成される、請求項36に記載のメモリコントローラ。
  38. 前記第2のDQ調整振幅が、前記遅延回路による前記第1のDQの前記伝送遅延の最小調整振幅である、請求項37に記載のメモリコントローラ。
  39. プロセッサコアと、請求項20から38のいずれか一項に記載のメモリコントローラとを備え、
    前記プロセッサコアが、前記メモリコントローラにトリガ命令を送信するように構成され、
    前記メモリコントローラが、前記トリガ命令を受信した後にメモリ訓練を実施するように構成される、
    プロセッサ。
  40. 前記プロセッサコアが、
    現在の周囲温度と過去の周囲温度との間の差が温度変動閾値を超えると決定した場合、前記メモリコントローラに前記トリガ命令を送信し、前記過去の周囲温度は、前記プロセッサコアが前記トリガ命令を以前に送信した周囲温度である
    ように具体的に構成される、請求項39に記載のプロセッサ。
  41. 前記プロセッサコアが、
    現在の時点と、前記プロセッサコアが前記メモリ訓練を以前に完了した時点との間の時間間隔が時間閾値を超えると決定した場合、前記メモリコントローラに前記トリガ命令を送信する
    ように具体的に構成される、請求項39または40に記載のプロセッサ。
  42. 請求項39から41のいずれか一項に記載のプロセッサと、メモリチップとを備え、前記メモリチップが、前記プロセッサ内のメモリコントローラに接続されている、電子デバイス。
  43. プロセッサと、メモリチップと、請求項20から38のいずれか一項に記載のメモリコントローラとを備え、前記メモリコントローラが、前記プロセッサおよび前記メモリチップにそれぞれ接続されており、
    前記プロセッサが、前記メモリコントローラにトリガ命令を送信するように構成され、
    前記メモリコントローラが、前記トリガ命令を受信した後にメモリ訓練を実施するように構成される、
    電子デバイス。
  44. 前記プロセッサが、
    現在の周囲温度と過去の周囲温度との間の差が温度変動閾値を超えると決定した場合、前記メモリコントローラに前記トリガ命令を送信し、前記過去の周囲温度は、前記プロセッサが前記トリガ命令を以前に送信した周囲温度である
    ように具体的に構成される、請求項43に記載の電子デバイス。
  45. 前記プロセッサが、
    現在の時点と、前記トリガ命令が以前に送信された時点との間の時間間隔が時間閾値を超えると決定した場合、前記メモリコントローラに前記トリガ命令を送信する
    ように具体的に構成される、請求項43または44に記載の電子デバイス。
JP2023519763A 2020-09-30 2021-09-03 メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイス Pending JP2023543479A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202011063745.4A CN114356206A (zh) 2020-09-30 2020-09-30 一种内存训练方法、内存控制器、处理器和电子设备
CN202011063745.4 2020-09-30
PCT/CN2021/116509 WO2022068524A1 (zh) 2020-09-30 2021-09-03 一种内存训练方法、内存控制器、处理器和电子设备

Publications (1)

Publication Number Publication Date
JP2023543479A true JP2023543479A (ja) 2023-10-16

Family

ID=80951144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023519763A Pending JP2023543479A (ja) 2020-09-30 2021-09-03 メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイス

Country Status (6)

Country Link
US (1) US20230244617A1 (ja)
EP (1) EP4206893A4 (ja)
JP (1) JP2023543479A (ja)
KR (1) KR20230073326A (ja)
CN (1) CN114356206A (ja)
WO (1) WO2022068524A1 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036053B2 (en) * 2002-12-19 2006-04-25 Intel Corporation Two dimensional data eye centering for source synchronous data transfers
US7698589B2 (en) * 2006-03-21 2010-04-13 Mediatek Inc. Memory controller and device with data strobe calibration
CN108874686B (zh) * 2017-05-08 2021-08-03 龙芯中科技术股份有限公司 内存参数调节方法、装置及设备
CN107248416A (zh) * 2017-06-07 2017-10-13 晶晨半导体(上海)股份有限公司 一种用于双速率数据存储系统的数据传输的时序控制方法
KR102368966B1 (ko) * 2017-10-23 2022-03-03 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치들을 포함하는 스토리지 장치, 그리고 제어기와 불휘발성 메모리 장치들 사이에서 데이터 입력 및 출력 라인들을 트레이닝하는 방법
CN108646984B (zh) * 2018-05-16 2020-01-03 华为技术有限公司 一种dqs位置调整方法和装置
US10991403B2 (en) * 2019-02-15 2021-04-27 Apple Inc. Memory calibration with end point replay

Also Published As

Publication number Publication date
EP4206893A1 (en) 2023-07-05
CN114356206A (zh) 2022-04-15
US20230244617A1 (en) 2023-08-03
WO2022068524A1 (zh) 2022-04-07
EP4206893A4 (en) 2024-03-06
KR20230073326A (ko) 2023-05-25

Similar Documents

Publication Publication Date Title
RU2643664C2 (ru) Обучение чтению контроллера памяти
US11513955B2 (en) Memory module with local synchronization and method of operation
US10360959B2 (en) Adjusting instruction delays to the latch path in DDR5 DRAM
US8762657B2 (en) Method and system for synchronizing address and control signals in threaded memory modules
US20190164583A1 (en) Signal training for prevention of metastability due to clocking indeterminacy
US20240014817A1 (en) Apparatus for transmitting and receiving a signal, a method of operating the same, a memory device, and a method of operating the memory device
KR102327983B1 (ko) 반도체 메모리를 위한 메모리 명령을 포함하는 장치 및 방법
US10606512B2 (en) On-die termination architecture
KR20160105093A (ko) 고속 통신을 위한 인터페이스 회로 및 이를 포함하는 시스템
KR20050107291A (ko) 동작 모드가 별도로 설정되는 메모리 장치들을 구비하는메모리 시스템 및 동작 모드 설정 방법
JP2009237678A (ja) メモリコントローラデバイス、メモリコントローラデバイスの制御方法およびデータ受信デバイス
US7411862B2 (en) Control signal training
CN110674062A (zh) 重叠存储器访问的方法
JP2021149931A (ja) 双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル
KR20190093102A (ko) 듀티 사이클을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템
JP2023543479A (ja) メモリ訓練方法、メモリコントローラ、プロセッサおよび電子デバイス
US20150155861A1 (en) Semiconductor device and semiconductor system including the same
JP2003122625A (ja) インターフェース回路
US20220358061A1 (en) Unmatched architecture compensation via digital component delay
KR20240019004A (ko) 랭크간 타이밍을 조정하는 메모리 모듈, 메모리 시스템, 그리고 그것의 트레이닝 방법
WO2022132538A1 (en) Signal skew correction in integrated circuit memory devices
KR20240059348A (ko) 다중 위상 클록 신호들의 스큐를 조절하는 메모리 장치, 이를 컨트롤하는 메모리 컨트롤러 및 메모리 장치의 동작방법
KR20200078294A (ko) 신호를 송수신 하기 위한 장치, 그것의 동작 방법, 메모리 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230510

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240528