IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特表2024-546868DRAMインターフェース較正のための可変ティック
<>
  • 特表-DRAMインターフェース較正のための可変ティック 図1
  • 特表-DRAMインターフェース較正のための可変ティック 図2
  • 特表-DRAMインターフェース較正のための可変ティック 図3
  • 特表-DRAMインターフェース較正のための可変ティック 図4
  • 特表-DRAMインターフェース較正のための可変ティック 図5
  • 特表-DRAMインターフェース較正のための可変ティック 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-26
(54)【発明の名称】DRAMインターフェース較正のための可変ティック
(51)【国際特許分類】
   G06F 12/00 20060101AFI20241219BHJP
   G11C 7/10 20060101ALI20241219BHJP
   G11C 11/4096 20060101ALI20241219BHJP
【FI】
G06F12/00 564D
G11C7/10 520
G11C7/10 460
G11C11/4096 550
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535502
(86)(22)【出願日】2022-12-15
(85)【翻訳文提出日】2024-07-09
(86)【国際出願番号】 US2022053070
(87)【国際公開番号】W WO2023129398
(87)【国際公開日】2023-07-06
(31)【優先権主張番号】17/564,426
(32)【優先日】2021-12-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】アンワル カシェム
(72)【発明者】
【氏名】クレイグ ダニエル イートン
(72)【発明者】
【氏名】ポウヤ ナジャフィ アシュティアニ
【テーマコード(参考)】
5B160
5M024
【Fターム(参考)】
5B160CC01
5M024AA44
5M024AA49
5M024BB03
5M024BB34
5M024JJ03
5M024JJ36
5M024PP07
(57)【要約】
メモリインターフェースシステムが、動的に変化するトレーニングクロックを使用して、ダイナミックランダムアクセスメモリ(DRAM)とのインターフェースを較正するための方法及びシステムが開示される。開示される技術は、第1のパルスレートのクロック信号を有するシステムクロックを受信することを含む。開示される技術は、次いで、インターフェースのトレーニング中に、第1のパルスレートのクロック信号からトレーニングクロックを生成することであって、トレーニングクロックは、第2のパルスレートのクロック信号を有することと、生成されたトレーニングクロックに基づいて、アドレスデータを含むコマンド信号をDRAMに送信することと、を含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
メモリインターフェースシステムが、動的に変化するトレーニングクロックを使用して、ダイナミックランダムアクセスメモリ(DRAM)とのインターフェースを較正するための方法であって、
第1のパルスレートのクロック信号を有するシステムクロックを受信することと、
前記インターフェースのトレーニング中に、
前記第1のパルスレートのクロック信号からトレーニングクロックを生成することであって、前記トレーニングクロックは、第2のパルスレートのクロック信号を有する、ことと、
生成された前記トレーニングクロックに基づいて、アドレスデータを含むコマンド信号を前記DRAMに送信することと、を含む、
方法。
【請求項2】
前記第2のパルスレートは、前記DRAMの変更されたクロック周波数に一致する、
請求項1の方法。
【請求項3】
前記第1のパルスレートで生成された対応するコマンド信号のコマンド状態を繰り返すことによって、前記第2のパルスレートのコマンド信号を生成することを含む、
請求項1の方法。
【請求項4】
前記第2のパルスレートは、前記DRAMのアドレスピンと前記システムの対応するピンとを接続する配線にわたって伝送される信号の伝搬時間に関連する遅延範囲に基づいて決定される、
請求項1の方法。
【請求項5】
前記DRAMのそれぞれのアドレスピンに送信される前記アドレスデータに関連する伝搬遅延を決定することを含む、
請求項1の方法。
【請求項6】
前記伝搬遅延のうち何れかは、前記第2のパルスレートの前記トレーニングクロックを使用してそれぞれのアドレスピンに送信された前記アドレスデータをキャプチャするフィードバック信号の読み取り値に基づいて決定される、
請求項5の方法。
【請求項7】
決定された伝搬遅延に基づいて、前記それぞれのアドレスピンに送信されるアドレスデータを整列させることを含む、
請求項5の方法。
【請求項8】
前記インターフェースのトレーニング中に、
前記第1のパルスレートの前記クロック信号からトレーニングクロックを生成することであって、前記トレーニングクロックは、第3のパルスレートのクロック信号を有する、ことと、
生成された前記トレーニングクロックに基づいて、前記DRAMにデータを送信することと、を含む、
請求項1の方法。
【請求項9】
動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するためのメモリインターフェースシステムであって、
少なくとも1つのプロセッサと、
命令を記憶するメモリと、を備え、
前記命令は、前記少なくとも1つのプロセッサによって実行されると、
第1のパルスレートのクロック信号を有するシステムクロックを受信することと、
前記インターフェースのトレーニング中に、
前記第1のパルスレートのクロック信号からトレーニングクロックを生成することであって、前記トレーニングクロックは、第2のパルスレートのクロック信号を有する、ことと、
生成された前記トレーニングクロックに基づいて、アドレスデータを含むコマンド信号を前記DRAMに送信することと、
を前記プロセッサに行わせる、
メモリインターフェースシステム。
【請求項10】
前記第2のパルスレートは、前記DRAMの変更されたクロック周波数に一致する、
請求項9のメモリインターフェースシステム。
【請求項11】
前記命令は、
前記第1のパルスレートで生成された対応するコマンド信号のコマンド状態を繰り返すことによって、前記第2のパルスレートのコマンド信号を生成することを前記プロセッサに行わせる、
請求項9のメモリインターフェースシステム。
【請求項12】
前記第2のパルスレートは、前記DRAMのアドレスピンと前記システムの対応するピンとを接続する配線にわたって伝送される信号の伝搬時間に関連する遅延範囲に基づいて決定される、
請求項9のメモリインターフェースシステム。
【請求項13】
前記命令は、
前記DRAMのそれぞれのアドレスピンに送信される前記アドレスデータに関連する伝搬遅延を決定することを前記プロセッサに行わせ、
前記伝搬遅延のうち何れかは、前記第2のパルスレートの前記トレーニングクロックを使用してそれぞれのアドレスピンに送信された前記アドレスデータをキャプチャするフィードバック信号の読み取り値に基づいて決定される、
請求項9のメモリインターフェースシステム。
【請求項14】
前記命令は、
決定された伝搬遅延に基づいて、前記それぞれのアドレスピンに送信されるアドレスデータを整列させることを前記プロセッサに行わせる、
請求項13のメモリインターフェースシステム。
【請求項15】
動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための方法を実施するために、少なくとも1つのプロセッサによって実行可能な命令を含むコンピュータ可読記憶媒体であって、
前記方法は、
第1のパルスレートのクロック信号を有するシステムクロックを受信することと、
前記インターフェースのトレーニング中に、
前記第1のパルスレートのクロック信号からトレーニングクロックを生成することであって、前記トレーニングクロックは、第2のパルスレートのクロック信号を有する、ことと、
生成された前記トレーニングクロックに基づいて、アドレスデータを含むコマンド信号を前記DRAMに送信することと、を含む、
コンピュータ可読記憶媒体。
【請求項16】
前記第2のパルスレートは、前記DRAMの変更されたクロック周波数に一致する、
請求項15のコンピュータ可読記憶媒体。
【請求項17】
前記第1のパルスレートで生成された対応するコマンド信号のコマンド状態を繰り返すことによって、前記第2のパルスレートのコマンド信号を生成することを含む、
請求項15のコンピュータ可読記憶媒体。
【請求項18】
前記第2のパルスレートは、前記DRAMのアドレスピンと前記システムの対応するピンとを接続する配線にわたって伝送される信号の伝搬時間に関連する遅延範囲に基づいて決定される、
請求項15のコンピュータ可読記憶媒体。
【請求項19】
前記DRAMのそれぞれのアドレスピンに送信される前記アドレスデータに関連する伝搬遅延を決定することを含み、
前記伝搬遅延のうち何れかは、前記第2のパルスレートの前記トレーニングクロックを使用してそれぞれのアドレスピンに送信された前記アドレスデータをキャプチャするフィードバック信号の読み取り値に基づいて決定される、
請求項15のコンピュータ可読記憶媒体。
【請求項20】
決定された伝搬遅延に基づいて、前記それぞれのアドレスピンに送信されるアドレスデータを整列させることを含む、
請求項19のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2021年12月29日に出願された米国特許出願第17/564,426号の利益を主張するものであり、その内容は、参照により本明細書に組み込まれる。
【0002】
2021年12月29日に出願された「DRAM specific interface calibration via programmable training sequences」と題する米国特許出願第17/564,327号は、その全体が、参照により本明細書に組み込まれる。
【背景技術】
【0003】
処理ユニットは、動作中に使用されるデータ及び命令を記憶するためのメモリデバイスに依存する。メモリデバイス、例えば、ダイナミックランダムアクセスメモリ(dynamic random-access memory、DRAM)へのアクセスは、メモリ物理層、すなわち、メモリインターフェース(又はPHY)によって制御される。コンピューティング環境における及び製造時の(DRAM、DRAMにアクセスする処理ユニット、及び、それらの間の通信リンクに関連付けられる)変動に起因して、DRAMへの及びDRAMからのデータパス内の回路を制御する動作パラメータは、周期的に較正される必要がある。このような較正は、DRAMへのメモリインターフェースのトレーニングを通じて実施される。多くの場合、較正は、異なるクロック周波数での動作中に実施される必要があり、したがって、1つのクロックパルスレート又は周波数から別のクロックパルスレート又は周波数へのシームレスな遷移を可能にする技術が必要とされる。
【0004】
添付の図面と共に例として与えられる以下の説明から、より詳細な理解を得ることができる。
【図面の簡単な説明】
【0005】
図1】本開示の1つ以上の特徴を実装することができる例示的なデバイスのブロック図である。
図2】本開示の1つ以上の特徴を実装することができる、図1のデバイスによって用いることができる例示的なメモリインターフェースシステムのブロック図である。
図3】本開示の1つ以上の特徴を実装することができる、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための例示的なシステムの機能ブロック図である。
図4】本開示の1つ以上の特徴を実装することができる、DRAMのそれぞれのアドレスピンにおいて受信されるアドレスデータにおける遅延を示す図である。
図5】本開示の1つ以上の特徴を実装することができる、DRAMのそれぞれのアドレスピンにおいて受信されるアドレスデータの整列を示す図である。
図6】本開示の1つ以上の特徴を実装することができる、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための例示的な方法のフローチャートである。
【発明を実施するための形態】
【0006】
メモリインターフェースシステム及びそれに接続されたDRAMに存在するデータパスのプログラム可能な加速トレーニングのためのシステム及び方法が提供される。システムは、プログラム可能なファームウェアに実装された、トレーニング動作をオーケストレーション(orchestrates)するシーケンサを含む。シーケンサは、他のシステムコマンドとインラインのDRAMコマンド(すなわち、コマンド)をスケジュールするように構成される。コマンドは、DRAMが較正されるトレーニング周波数に一致するように、トレーニング動作中に動的に変更され得るレートで、システムデータパスを介してDRAMに送信される。アドレスチャネルをトレーニングする場合、トレーニング周波数は、アドレスデータをDRAMのアドレスピンに供給する配線に沿った信号伝搬時間によって導入される遅延の不確実性に適応するように動的に低減され得る。本明細書で開示されるように、システムは、トレーニングクロックとDRAMコマンドのレートとを独立して制御することができる。
【0007】
本開示で開示される態様は、メモリインターフェースシステムによって、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための方法について説明する。方法は、第1のパルスレートでクロック信号を有するシステムクロックを受信することを含む。次いで、インターフェースのトレーニング中に、方法は、第1のパルスレートでクロック信号から、トレーニングクロックであって、第2のパルスレートでクロック信号を有する、トレーニングクロックを生成することと、生成されたトレーニングクロックに基づいて、アドレスデータを含むコマンド信号をDRAMに送信することと、を更に含む。
【0008】
また、本開示で開示される態様は、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するためのメモリインターフェースシステムについて説明する。システムは、少なくとも1つのプロセッサと、命令を記憶するメモリと、を備える。命令は、少なくとも1つのプロセッサによって実行された場合に、プロセッサに、第1のパルスレートでクロック信号を有するシステムクロックを受信させる。次いで、インターフェースのトレーニング中に、命令は、プロセッサに、第1のパルスレートでクロック信号から、トレーニングクロックであって、第2のパルスレートでクロック信号を有する、トレーニングクロックを生成させ、生成されたトレーニングクロックに基づいて、アドレスデータを含むコマンド信号をDRAMに送信させる。
【0009】
更に、本開示で開示される態様は、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための方法を実施するために、少なくとも1つのプロセッサによって実行可能な命令を含む非一時的なコンピュータ可読記憶媒体について説明する。方法は、第1のパルスレートでクロック信号を有するシステムクロックを受信することを含む。次いで、インターフェースのトレーニング中に、方法は、第1のパルスレートでクロック信号から、トレーニングクロックであって、第2のパルスレートでクロック信号を有する、トレーニングクロックを生成することと、生成されたトレーニングクロックに基づいて、アドレスデータを含むコマンド信号をDRAMに送信することと、を更に含む。
【0010】
図1は、本開示の1つ以上の特徴を実装することができる例示的なデバイス100のブロック図である。デバイス100は、例えば、コンピュータ、ゲームデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話、又は、タブレットコンピュータであってよい。デバイス100は、プロセッサ110、加速処理ユニット(accelerated processing unit、APU)120、ストレージ130、入力デバイス140、メモリ150、及び、出力デバイス160を含み得る。また、デバイス100は、入力ドライバ145及び出力ドライバ165を含み得る。プロセッサ110及びAPU120は、それぞれ、中央処理ユニット(central processing unit、CPU)の1つ以上のコア及びAPUの1つ以上のコアを表すことができる。プロセッサ110、APU120及びメモリ150、又は、それらのサブセットは、同じダイ上又は個別のダイ上に位置し得る。一態様では、デバイス100は、図1に示されていない追加の構成要素を含み得る。
【0011】
APU120は、グラフィックス処理ユニット(graphics processing unit、GPU)、すなわち、例えば、単一命令複数データ(single instruction multiple data、SIMD)パラダイムに従って計算を実施するように構成された1つ以上の並列処理ユニットを備えるシェーダシステムを表すことができる。APU120は、計算コマンド及びグラフィックスレンダリングコマンドを処理し、及び/又は、ディスプレイ(出力デバイス160)に出力を提供するために、プロセッサ110からこれらの計算及びグラフィックスレンダリングコマンドを受け入れるように構成され得る。
【0012】
ストレージ130は、固定又はリムーバブルストレージ(例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、フラッシュドライブ)を含むことができる。入力デバイス140は、例えば、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体認証スキャナ、又は、ネットワーク接続(例えば、無線IEEE802信号の受信のための無線ローカルエリアネットワークカード)を表すことができる。出力デバイス160は、例えば、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上のライト、アンテナ、又は、ネットワーク接続(例えば、無線IEEE802信号の伝送のための無線ローカルエリアネットワークカード)を表すことができる。一態様では、入力ドライバ145は、プロセッサ110(又はAPU120)及び入力デバイス140と通信し、入力デバイス140からプロセッサ110(又はAPU120)への入力の受信を容易にする。別の態様では、出力ドライバ165は、プロセッサ110(又はAPU120)及び出力デバイス160と通信し、プロセッサ110(又はAPU120)から出力デバイス160への出力の送信を容易にする。
【0013】
メモリ150は、ランダムアクセスメモリ(random access memory、RAM)、スタティックランダムアクセスメモリ(static random-access memory、SRAM)、ダイナミックランダムアクセス(DRAM)、キャッシュ、又は、それらの組み合わせを含む揮発性又は不揮発性メモリ表すことができる。メモリ150は、システム構成要素(例えば、プロセッサ110又はAPU120)によるDRAM154へのアクセスを容易にすることができるメモリインターフェース152を備える。メモリインターフェース152は、DRAM154に対する読み取り、書き込み、リフレッシュ、及び、構成等の動作を行う。また、メモリインターフェース152は、本明細書で説明するように、内部データパス及び外部データパスの何れの動作パラメータが設定されているかに基づいて、トレーニングを実施する。
【0014】
図2は、本開示の1つ以上の特徴を実装することができる、図1のデバイスによって用いることができる例示的なメモリシステム200のブロック図である。システム200は、DRAM260(例えば、図1に示されるDRAM154)にアクセスするように構成されたメモリインターフェースシステム210(例えば、図1に示されるメモリインターフェース152)を含む。DRAM260は、DDR4~DDR6、LPDDR4~LPDDR6、GDDR7、又は、HBM3等の様々なDRAM技術を表すことができる。メモリインターフェースシステム210は、マイクロコントローラ220、トレーニングエンジン230、及び、内部データパス240を含む。マイクロコントローラ220、トレーニングエンジン230及び内部データパス240は、直接及び/又はシステム210の内部バス250を介して通信可能に接続される。システム210の機能は、本明細書で説明されるように、ハードウェア、ファームウェア、ソフトウェア又はそれらの組み合わせにおいて、マイクロコントローラ220、トレーニングエンジン230及び内部データパス240といった構成要素によって実装され得る。
【0015】
マイクロコントローラ220は、トレーニングエンジン230によって行われるトレーニング動作を開始するように構成される。マイクロコントローラ220は、ホスト100(例えば、プロセッサ110又はAPU120)によって送信された信号、電源投入、クロック周波数の変化、電力状態の遷移(例えば、アイドル状態とアクティブ状態との間)等のイベントに応じて、又は、所定の周波数で周期的にトレーニング動作を開始すること及び/又はシステム210の状態レジスタを設定することができる。
【0016】
内部データパス240は、較正器241と、受信器246に結合されたインバウンド先入れ先出し(first-in-first-out、FIFO)スタック242と、伝送器248に結合されたアウトバウンドFIFOスタック244と、を含む。受信器246は、DRAM260のピンから測定されたアナログ信号を離散データに変換し、離散データは、次いで、インバウンドFIFOスタック242にプッシュされる。伝送器248は、アウトバウンドFIFO244からポップアウトされた離散データを、DRAM260のピンに供給されるアナログ信号に変換する。受信器246の回路(アナログ-デジタル変換を用いる)及び伝送器248の回路(デジタル-アナログ変換を用いる)を含む内部データパス240の動作は、様々な構成レジスタ(すなわち、CSR)によって制御及び調整され得る。同様に、DRAMは、対応するデータパス(本明細書では外部データパスと呼ばれる)270を含み、このデータパスは、例えば、伝送器248から信号を受信する受信器、及び、受信器246に信号を伝送する伝送器を含み、DRAMの様々な構成レジスタによって制御及び調整され得る。トレーニングエンジン230によって行われるトレーニング動作中に、内部データパス240及び外部データパス270の両方の構成レジスタが本明細書で開示されるように設定(又は較正)される。
【0017】
トレーニングエンジン230は、シーケンサ238、パターン生成器236、SRAM234、及び、相関器232を含む、データパス240、270のトレーニングを行う構成要素を備える。トレーニングエンジン230は、本明細書で開示されるように、様々なプログラム可能な機能を実施することができる。
【0018】
シーケンサ238は、様々な技術(例えば、異なるインターフェースプロトコルを有する)のDRAM260とのインターフェースのトレーニングにおいて用いられるコマンドのシーケンスを生成するようにプログラムされ得る。メモリインターフェースのトレーニングは、データパス240、270内の回路を制御する動作パラメータに対して行われる調整、すなわち、それらの構成レジスタの較正を伴う。内部データパス240の構成レジスタの較正はCSRコマンドによって行われ、外部データパス270の構成レジスタの較正はDRAMコマンドによって実行される。これらの構成レジスタの較正は、例えば、DRAMから読み取ったデータパターンと基準データパターンとの間の差異が最小化される反復プロセス(すなわち、トレーニング)において行われる。トレーニング動作を実施するために、シーケンサ238は、システムコマンドとインターリーブされたDRAMコマンドを含むトレーニングコマンドシーケンスを生成する。次いで、シーケンサ238は、トレーニングコマンドシーケンスを実行し、トレーニング動作を調和させ、相関器232及びパターン生成器236等の他のシステム構成要素に信号を送信して、それらのそれぞれの機能を実施する。
【0019】
パターン生成器236は、トレーニング動作によって基準データパターンとして使用されるデータパターンを生成するように構成される。例えば、DRAM260への書き込みを制御する構成レジスタを較正するトレーニング動作が用いられ得る。この場合、シーケンサ238によって生成されるコマンドシーケンスは、パターン生成器236によって生成されるデータパターンをDRAM260内の指定された場所に書き込むためのコマンドと、書き込まれたデータパターンをDRAM260内の指定された場所から読み戻すためのコマンドと、を含み得る。次に、読み取ったデータパターンを書き込まれたデータパターンと比較することができ、この比較に基づいて、エラー統計を決定することができる。決定されたエラー統計は、次いで、構成レジスタを較正するために、すなわち、以下で詳細に説明するように、書き込まれたデータパターンが伝送されるデータパス240、270の制御変数を調整するために使用され得る。
【0020】
SRAM234は、例えば、それぞれシーケンサ238又はパターン生成器236によって以前に生成されたトレーニングシーケンス又はデータパターンを記憶するために使用され得る。記憶されたトレーニングシーケンス及びデータパターンは、システム100がブートアップしている場合、又は、周期的なトレーニングのために使用され得る。そのようなトレーニングシーケンス及びデータパターンをSRAM234内に前もって有していることが、より速い(ブート又は周期的)トレーニング時間を可能にする。
【0021】
相関器232は、(例えば、パターン生成器236によって生成された、及び/又は、SRAM234に記憶された)基準データパターンにアクセスし、これらの基準データパターンを、DRAM260から読み取った対応するデータパターンと比較するように構成される。例えば、トレーニングが書き込み動作に関する場合、基準データパターンは、DRAM260内のある場所に書き込まれ、次いでその場所から読み戻されたデータパターンであり得る。そのような場合、例えば、シーケンサ238は、パターン生成器236に、基準データパターンを生成するように(又はすでに生成された及び/又はSRAM234に記憶された基準データパターンをロードするように)信号を送ることができる。シーケンサ238は、次いで、基準データパターンをDRAM260内の場所に書き込むことを容易にするコマンドを符号化し得る。また、シーケンサ238は、書き込まれたデータパターンをDRAM260から読み戻すことを容易にするコマンドを符号化し得る。これらのDRAMコマンド及び書き込まれたデータは、アウトバウンドFIFOスタック244及び伝送器248を介してDRAM260に伝送される。読み取ったデータは、受信器246及びインバウンドFIFOスタック242を介して受信される。読み取り動作に続いて、シーケンサ238は、基準データパターンと対応する読み取ったデータパターンとの間の比較を実施するように相関器232に信号を送ることができる。比較に基づいて、相関器232は、エラー統計を決定することができる。エラー統計を使用して、データパス240、270のそれぞれの構成レジスタに記憶された動作パラメータを調整することができる。
【0022】
トレーニング中に、シーケンサ238は、コマンドシーケンス(例えば、書き込み動作及び/又は読み取り動作を含む)を通して反復することができ、各反復は、動作パラメータの更なる調整及び最適な結果(好ましいエラー統計を有する)への収束をもたらすことができる。しかしながら、収束が達成されない場合、反復にわたるエラー統計を収集することができ、動作パラメータの最適な結果に到達するために更なる分析を行うことができる。一態様では、内部データパス240の制御レジスタに記憶された動作パラメータを較正するために、相関器232は、コマンドシーケンスを通して1つ以上の反復から導出されたエラー統計に関連付けられたデータを較正器241に供給し得る。これらのデータに基づいて、較正器241は動作パラメータを調整することができる。外部データパス270の制御レジスタに記憶された動作パラメータを較正するために、較正器は、シーケンサ238に調整値をシグナリングすることができる。それに応じて、シーケンサ238は、DRAM内のそれぞれの制御レジスタを適宜に調整するDRAMコマンド(例えば、モードレジスタ書き込みコマンド又はモードレジスタ読み取りコマンド)を送信することができる。別の態様では、較正器241は、各反復中にDRAMピンから測定された信号の品質を決定し、これらの測定値を使用して、内部データパス240又は外部データパス270の何れかの動作パラメータを調整することができる。上述したように、エラー統計及び/又は信号の品質に関連付けられたデータは、いくつかのトレーニング反復にわたって収集されてもよく、更なる分析のためにシステム210によって使用されてもよく、それに基づいて、動作パラメータの反復調整が収束しない場合に動作パラメータの最適結果が計算されてもよい。
【0023】
DRAMのデータチャネルを較正するために使用されるトレーニングシーケンスの生成及び実行を含むシーケンサ238の動作は、2021年12月29日に出願された「DRAM specific interface calibration via programmable training sequences」と題する米国特許出願第17/564,327号に更に記載されている。しかしながら、データチャネルの較正は、適切に較正されたアドレスチャネルに依存する。DRAMのアドレスチャネルを較正する技術を以下に説明する。
【0024】
図3は、本開示の1つ以上の特徴を実装することができる、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための例示的なシステム300の機能ブロック図である。システム300は、クロック生成器310、パターン生成器320(例えば、図2のパターン生成器236)、シーケンサ330(例えば、図2のシーケンサ238)、及び、DRAM340(例えば、図2のDRAM260)を含む。システム300の構成要素310、320、330に関して本明細書で説明される機能は、図2を参照して本明細書で説明されるメモリインターフェースシステム210の異なる構成要素によって、ソフトウェア、ハードウェア及び/又はファームウェアにおいて実装することができる。一態様では、クロック生成器310は、最大レートでパルス信号、すなわちシステムクロック315を生成する。システムクロック315は、パターン生成器320に供給される。シーケンサ330から(又はメモリインターフェースシステム210の他の構成要素から)受信された制御信号332に基づいて、パターン生成器320は、パルスパターン、すなわちトレーニングクロック325を生成する。トレーニングクロック325は、DRAM340のクロック入力342に供給される。シーケンサ330は、上記で説明したように、トレーニングクロック325によって設定されたトレーニング周波数でDRAMのトレーニングをオーケストレーションする。したがって、シーケンサ330は、DRAMコマンドシーケンスを生成するように構成され、このDRAMコマンドシーケンスを用いてDRAMへのインターフェースのトレーニングが行われ、このDRAMコマンドシーケンスに基づいて、DRAMとのデータパス240、270が較正される。シーケンサ330は、DRAMへのインターフェースがトレーニングされるクロック周波数を動的に変化させるように更に構成される。そのために、シーケンサ330は、パターン生成器320に信号を送って、システムクロック315から、所望のパルスレートでパルスパターンを生成し、システムクロック315のパルスレートを、例えば、1:2、1:4、又は、1:32の比で効果的に遅くすることができる。シーケンサ330は、以下で詳細に説明するように、アドレスデータを含むコマンド信号336を送信し、フィードバック信号334を受信するように構成されており、フィードバック信号334に基づいてDRAM340のアドレスチャネルが較正される。
【0025】
一態様では、シーケンサ330は、動的に変化する粒度でコマンドをスケジュールするように構成される。メモリインターフェースシステム210は、DRAM340の最大クロック周波数を上回る固定クロック周波数315で動作するように構成される。通常、DRAMは、50MHz~5000MHzの範囲で動作することができる。異なる動作周波数でDRAMをトレーニングすることができるように、シーケンサ330は、トレーニングクロック325と、コマンドがDRAMに送信されるレートと、を動的に変更するように構成される。そのために、シーケンサ330は、パターン生成器320を介して、所望のパルスレートを有するパルスパターン、すなわち、DRAMがトレーニングされるトレーニングクロック325を生成することができる。更に、シーケンサによって生成されるコマンドは、システムクロック315の1クロックサイクル中に有効であるコマンド状態の各々からなる。DRAM336に送信されるコマンドの各々は、1つのDRAMクロックサイクル342中に有効であるコマンド状態からなる必要があるので、シーケンサは、各コマンドがトレーニングクロックの1つのクロックサイクル中に有効であるコマンド状態からなるように、その生成されたコマンドの状態を進める。コマンド状態を進めることは、生成されたコマンドがトレーニングクロックパルスレート325に一致するレートであるように、いくつかのシステムクロック315サイクルにわたって同じ状態を維持すること(複数のシステムクロックサイクルにわたって同じコマンド状態を生成すること)を伴う。
【0026】
したがって、シーケンサ330は、トレーニングクロックパルスレート325に基づいてコマンド状態を進める。例えば、2:1動作モードで動作するようにLPDDR5をトレーニングする場合、クロックサイクルごとに新しいコマンド状態を送信する代わりに、シーケンサ330は、同じコマンド状態を2回繰り返す、すなわち、2つのクロックサイクル315ごとに新しいコマンド状態を送信することができる。同様に、4:1動作モードで動作するようにLPDDR5をトレーニングする場合、クロックサイクルごとに新しいコマンド状態を送信する代わりに、シーケンサ330は、同じコマンド状態を4回繰り返す、すなわち、4クロックサイクルごとに新しいコマンド状態を送信する。一態様では、異なるパルスレート325でシステムクロック315からパルスパターンを生成することは、例えば、パターン生成器回路320の制御レジスタを設定することによって、トレーニング動作中にプログラム的に行われ得る。
【0027】
異なる動作クロック周波数でDRAMをトレーニングすることに加えて、トレーニングクロック325の周波数を動的に変化させることは、DRAMのアドレスチャネルを較正する際に役立つ。概して、アドレスチャネルの較正は、上述したデータチャネルの較正に先行すべきである。アドレスチャネルの較正は、異なるDRAMのアドレスピン346に送信される信号の伝搬時間の差を補償するために実施される。すなわち、コマンド信号336のソース(例えば、メモリインターフェースシステム210のピン)を対応するアドレスピン346に接続する配線の物理的特性の変動(例えば、製造及び長さの変動)は、アドレスピンにおけるアドレスデータの受信において異なる遅延を引き起こす。これらの異なる遅延により、アドレスデータの対応する要素がDRAMの異なるクロックサイクル中に受信される。本明細書で開示されるように、DRAM340のアドレスチャネルを較正することは、これらの遅延を測定することと、測定された遅延に基づいて対応するアドレスデータ要素を整列させることと、を含む。
【0028】
図4は、本開示の1つ以上の特徴を実装することができる、DRAMの異なるアドレスピンにおいて受信されるアドレスデータにおける遅延を示す図である。図4に示されるように、コマンド信号336のうちアドレスデータに対応する部分は、アドレスピンCA0及びアドレスピンCA1に到達する。送信されたアドレスデータの対応する要素は、図4において同じ要素番号(例えば、0、1、2、3、4)によって示されている。上述したように、送信されたアドレスデータのソースとそれぞれのアドレスピンとを接続する配線に沿った伝搬時間の差に起因して、アドレスデータからの対応するデータ要素は、それぞれのアドレスピンに到達するときに互いに対して遅延する。これらの遅延を測定する1つの方法は、フィードバックデータ334に基づく。1つ以上のフィードバックピンは、通常、DRAMに送信されるアドレスデータをキャプチャするために使用され得るDRAMにおいて利用可能である。例えば、DDR5-RDIMMは、利用可能な「ALERT」フィードバックピンを有し、アドレスピンの順次トレーニングを可能にする。同様に、LPDDR5は、利用可能な複数の「DQ」フィードバックピンを有し、アドレスピンの並列トレーニングを可能にする。
【0029】
アドレスピン(例えば、CA0又はCA1)に関する伝搬時間遅延を測定するために、シーケンサ330は、アドレスデータをアドレスピンに送信し、アドレスデータがフィードバックチャネル334を介して受信される時間遅延を測定する。例えば、シーケンサ330は、アドレスデータをアドレスピンCA0 420、425に送信し、フィードバックチャネルを介して送信されたアドレスデータ421、426を読み戻してもよい。これらのアドレスデータの各データ要素は、クロックパルス410.1の立ち上がりで読み取られる。同様に、シーケンサ330は、アドレスデータをアドレスピンCA1 430、435に送信し、フィードバックチャネルを介して送信されたアドレスデータ431、436を読み戻してもよい。これらのアドレスデータの各データ要素も、クロックパルス410.1の立ち上がりで読み取られる。示されるように、第1のケースでは、CA0 420及びCA1 430のそれぞれの配線を通して送信された信号は、同じ伝搬時間を有し、したがって、これらの信号が含むアドレスデータ(421及び431)は、同じ対応するアドレスデータ要素が読み取られ得るクロック410.1のパルス立ち上がりで整列される。第2のケースでは、CA0 425及びCA1 435のそれぞれの配線を通して送信された信号は、異なる伝搬時間を有し、したがって、これらの信号が含むアドレスデータ(426及び436)は整列されない。しかしながら、伝搬時間の差は1クロックサイクルよりも大きいので、クロック410.1のパルス立ち上がり時に、同じ対応するアドレスデータ要素が依然として読み取られ、遅延440は検出可能ではない。
【0030】
このような遅延を検出するのを可能にするために、クロックサイクルは、クロック信号410.2に関して図4に示されるように、最大予想遅延よりも大きくなければならない。示されるように、第1のケースでは、CA0 460及びCA1 470のそれぞれの配線を通して送信された信号は、同じ伝搬時間を有し、したがって、これらの信号は、同じ対応するアドレスデータ要素が読み取られ得るクロック410.2のパルス立ち上がりで整列されるアドレスデータ(461及び471)を含む。第2のケースでは、CA0 465及びCA1 475のそれぞれの配線を通して送信される信号は、異なる伝搬時間を有し、したがって、これらの信号は、整列されていないアドレスデータ(466及び476)を含む。しかしながら、この場合、今度はクロック410.2のパルス立ち上がりでアドレスデータ(466及び476)を読み取ることは、CA0 465及びCA1 475からそれぞれ読み取ったアドレスデータ466及び476が整列していないことを示すので、遅延480は検出可能である。配線に沿った伝搬時間によって引き起こされ得る最大予想遅延は、ある範囲、すなわち遅延範囲内にあると(例えば、実験に基づいて)推定され得る。この遅延範囲に基づいて、その範囲よりも大きいクロックサイクルを生成することができる。したがって、アドレスピンの較正中に、シーケンサ330は、遅延範囲よりも大きいクロックサイクルを有するパルスパターン(トレーニングクロック325)を生成するようにパターン生成器320を設定することができる。
【0031】
図5は、本開示の1つ以上の特徴を実装することができる、DRAMのそれぞれのアドレスピンにおいて受信されるアドレスデータの整列を示す図である。上記で説明したように、DRAMへのインターフェースのトレーニングが実施されるトレーニングクロック325、520のパルスレートは、トレーニング中に動的に変化させることができる。図4を参照して説明したように、DRAMのアドレスピンをトレーニングする場合、トレーニングクロック325のパルスレートは、予想される遅延範囲を上回るクロックサイクルを生成するために低減されるべきである。したがって、トレーニング中、パターン生成器320は、システムクロック315の最大データレート510でトレーニングクロックパルス325、520を生成するパルスパターンを生成することができる。次いで、アドレストレーニングが始まると、パターン生成器320は、システムクロック315に対して低減されたデータレート512で(トレーニングクロック325、520の)パルスパターンを生成することができる。アドレストレーニングの終わりに、パターン生成器は、システムクロック315の最大データレート514でパルスパターン325、520を生成することに戻ることができる。トレーニングクロックのデータレートが低減される時間(512)の間、シーケンサ330は、以下で更に説明されるように、それぞれのアドレスデータを、アドレスデータがそれぞれのアドレスピンに到達する場合に整列させるために、アドレスデータの伝送に導入される遅延を決定するために用いられる。
【0032】
アドレスピンCA0 530のトレーニング中、シーケンサ330は、アドレスデータ535を送信し、トレーニングクロック520の立ち上がりでフィードバックピン(例えば、LPDDR5のDQ0ピン)を介して送信されたデータを読み戻す。例えば、シーケンサは、アドレスデータをCA0 530に送信する場合、パルス立ち上がり550でアドレスデータ535.1の2番目の要素を読み戻すことができる。その読み取り値に基づいて、シーケンサは、CA0 530に関連付けられた遅延を、CA0 530へのアドレスデータの次の伝送に導入する。その結果、次のパルス立ち上がり551において、シーケンサは、データアドレス335.2の1番目要素を読み取ることができる。この時点で、シーケンサは、CA0に関連付けられた導入された遅延を記憶する。アドレスピンCA1 540のトレーニング中、シーケンサ330は、アドレスデータ545を送信し、トレーニングクロック520の立ち上がりでフィードバックピン(例えば、LPDDR5のDQ1ピン)を介して送信されたデータを読み戻す。例えば、シーケンサは、アドレスデータをCA1 540に送信する場合、パルス立ち上がり550でアドレスデータ545.1の3番目の要素を読み戻すことができる。その読み取り値に基づいて、シーケンサは、CA1 540に関連付けられた遅延を、CA1 540へのアドレスデータの次の伝送に導入する。その結果、次のパルス立ち上がり551において、シーケンサは、データアドレス545.2の2番目の要素を読み取ることができる。その読み取り値に基づいて、シーケンサは、CA1 540に関連付けられた更なる遅延を、CA1 540へのアドレスデータの次の伝送に導入する。その結果、次のパルス立ち上がり552において、シーケンサは、データアドレス545.3の1番目の要素を読み取ることができる。この時点で、シーケンサは、CA1に関連付けられた導入された更なる遅延を記憶する。このようにして、シーケンサは、全てのそれぞれのアドレスピンに関連付けられた遅延を決定することができ、その結果、決定された遅延がアドレスデータの次の伝送に適用される場合、アドレスデータは、それぞれのアドレスピンに到達する場合に整列される。したがって、アドレスチャネルのトレーニングの終わりに、DRAMへのインターフェースの他のデータパスをトレーニングするために、トレーニングクロックがより高いレート514(例えば、システムクロック315の最大レート)に戻される場合、CA0 530及びCA1 540に関連付けられた記憶された遅延がアドレスデータの伝送に導入され、その結果、送信されたアドレスデータ535.4及び545.4は、それらのそれぞれのアドレスピン530及び540に到達する場合に整合される。信号伝搬時間は信号の周波数に依存するので、他のデータパスをトレーニングする前に、アドレスピンに関連付けられた遅延を、トレーニングクロックのより高いレート514に微調整することができる。
【0033】
図6は、本開示の1つ以上の特徴を実装することができる、動的に変化するトレーニングクロックを使用して、DRAMとのインターフェースを較正するための例示的な方法600のフローチャートである。方法600はステップ610で始まり、第1のパルスレートでクロック信号を有するシステムクロックが受信される。次いで、DRAMとのインターフェースのトレーニング中に、本明細書で開示されるように、ステップ620において、トレーニングクロックが第1のパルスレートでクロック信号から生成される。トレーニングクロックは、第2のパルスレートのクロック信号を有する。一態様では、第2のパルスレートは、DRAM260のアドレスピンとメモリインターフェースシステム210内の対応するピンとを接続する配線にわたって信号の伝搬時間に関連付けられた遅延範囲に基づいて決定され得る。ステップ630において、アドレスデータを含むコマンド信号が、生成されたトレーニングクロックに基づいてDRAMに送信される。一態様では、送信されるコマンド信号は、例えば、第1のパルスレートで生成されたコマンド信号のコマンド状態を繰り返すことによって、第2のパルスレートで生成される。別の態様では、方法600は、DRAM340のそれぞれのアドレスピン346に送信されたアドレスデータに関連付けられた伝搬遅延を決定することを含む。伝搬遅延は、それぞれのアドレスピンに送信されたアドレスデータをキャプチャするフィードバック信号334の読み取り値に基づいて決定され得る。次いで、決定された伝搬遅延に基づいて、アドレスデータは、それぞれのアドレスピンへのアドレスデータの更なる伝送の際に整列され得る。更に、インターフェースのトレーニング中に、方法600は、第3のパルスレートのクロック信号を有するシステムクロックからトレーニングクロックを生成することができる。次いで、第3のパルスレートで生成されたトレーニングクロックに基づいて、データをDRAMのデータチャネルに送信することによって、DRAMの他のデータパスをトレーニングする。
【0034】
本明細書の開示に基づいて、多くの変形が可能であることを理解されたい。特徴及び要素が特定の組み合わせで上述されているが、各特徴又は要素は、他の特徴及び要素を用いずに単独で、又は、他の特徴及び要素を用いて若しくは用いずに様々な組み合わせで使用することができる。
【0035】
提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアにおいて実施することができる。好適なプロセッサとしては、例として、一般目的プロセッサ、特殊目的プロセッサ、従来型プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、複数のマイクロプロセッサ、DSPコアと関連付けられた1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)回路、任意の他のタイプの集積回路(integrated circuit、IC)、及び/又は、状態マシンが挙げられる。そのようなプロセッサは、処理されたハードウェア記述言語(hardware description language、HDL)命令及びネットリストを含む他の中間データ(コンピュータ可読媒体に記憶させることが可能な命令等)の結果を使用して製造プロセスを構成することによって製造することができる。そのような処理の結果はマスクワークとすることができ、次いで、このマスクワークを半導体製造プロセスにおいて使用して、実施形態の態様を実装するプロセッサを製造する。
【0036】
本明細書に提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェア又はファームウェアにおいて実施することができる。非一時的なコンピュータ可読記憶媒体の例としては、読み取り専用メモリ(read only memory、ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードドライブ及びディスク、リムーバブルディスク等の磁気媒体、磁気光学媒体、並びに、CD-ROMディスク及びデジタル多用途ディスク(digital versatile disk、DVD)等の光学媒体が挙げられる。
図1
図2
図3
図4
図5
図6
【国際調査報告】