JP2023545287A - 動的タイミング較正システムおよび方法 - Google Patents

動的タイミング較正システムおよび方法 Download PDF

Info

Publication number
JP2023545287A
JP2023545287A JP2023521920A JP2023521920A JP2023545287A JP 2023545287 A JP2023545287 A JP 2023545287A JP 2023521920 A JP2023521920 A JP 2023521920A JP 2023521920 A JP2023521920 A JP 2023521920A JP 2023545287 A JP2023545287 A JP 2023545287A
Authority
JP
Japan
Prior art keywords
bus
read
timing value
write
delay
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
JP2023521920A
Other languages
English (en)
Other versions
JPWO2022081559A5 (ja
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.)
Google LLC
Original Assignee
Google LLC
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
Priority claimed from US17/068,766 external-priority patent/US11657010B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023545287A publication Critical patent/JP2023545287A/ja
Publication of JPWO2022081559A5 publication Critical patent/JPWO2022081559A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • H04L12/4035Bus networks with centralised control, e.g. polling in which slots of a TDMA packet structure are assigned based on a contention resolution carried out at a master unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13292Time division multiplexing, TDM

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

ここに提供されるのは、共通の時間多重化されたバス(120)に接続されたデバイス(130、150)における内部遅延の動的適応および補正を実行するためのシステムならびに方法である。本方法は、バス(120)で複数の読出値を使用して実際の遅延を測定することによって、構成要素内およびシステム内の固有および未知の遅延を補正することによって、デバイス(130、150)がより高いバス周波数で確実に動作することを可能にする。固有ノイズおよびジッタを用いて測定の精度を高め、それによって、本質的に、これらの不確実性を、測定分解能を高めるための自己ディザリングとして使用する。適応中、遅延は、適応時間を速めるために複数のステップサイズで調整されてもよい。

Description

関連出願の参照
本出願は、米国特許仮出願62/914,351(2019年10月11日提出)の利益および優先権を主張し、米国特許出願16/455,625(2019年6月27日)の一部継続である、米国特許出願17/068,766(2020年10月12日提出)の継続であり、これらの各々は、参照によりその全体が本明細書に組み込まれる。
米国特許出願16/455,625(2019年6月27日提出)は、米国特許仮出願62/721,412(2018年8月22日提出);米国特許仮出願62/791,607(2019年1月11日提出);米国特許仮出願62/824,985(2019年3月27日提出);および米国特許仮出願62/853,654(2019年5月28日提出)の利益およびその優先権を主張し、これらの各々は、参照によりその全体が本明細書に組み込まれる。
本出願はまた、"Dynamic Timing Calibration Systems and Methods"と題される、米国特許仮出願62/895,449(2019年9月3日提出)にも関連し、それは、その全体が参照により本明細書に組み込まれる。
技術分野
本出願は、概して、共通ライン上のデータおよびクロック情報の時間多重化を利用する、共通バスに取り付けられた複数のデバイス間の同期のためのシステムおよび方法に関する。
背景
多くの現代の通信システムは、バスシステムを介して2つ以上の接続されたデバイス間(例えば、ヘッドホンとホスト処理システムとの間)でのデータの転送を可能にする。ピン数を節約し、物理的制約を考慮するために、共通バス上で2つ以上の信号を組み合わせてデバイス間の信号の共有を可能にすることは、しばしば利点となる。これらの信号が時間多重化されるとき、個々のデバイスは、共通の同期ソースを使用し、それは、典型的には、データの開始を識別するためにクロックラインおよびフレーム開始マーカによって提供される。
クロックおよびフレーム開始情報を送出する、バスに結合されたデバイスは、本明細書ではマスタデバイスと呼ばれ、この情報の受信機は、本明細書ではスレーブデバイスと呼ばれる。クロックおよびフレーム開始のソースは、別のデバイスであり得、および/またはサブ回路が、使用するすべてのために、この情報をバスに提供し得る。マスタデバイスがスレーブデバイスに情報を伝達すると仮定すると、クロックおよびデータはシステム内で等しい遅延を被るので、マスタデバイスからスレーブデバイスによって高速でデータを受信することが一般的である。しかしながら、関与する回路における内部伝搬遅延、ならびにバス直径およびこのバスシステムの物理的パラメータによって決定されるような外部遅延に応じて、スレーブデバイスから伝搬され、マスタデバイスにおいて受信される信号の到着時間に大きな不確実性があり得る。伝送速度が低い場合、これは問題ではないが、高速リンクでは、この不確実性は、受信機アイ開口のサイズの減少をもたらし、より高い伝送速度での信号品質の低下または完全な伝送失敗のいずれかをもたらす。
製造コストおよびシリコン面積の増加、および/または同じく製造コストを増大させる個々の部品のトリミングを伴う、非常に高精度の回路の製造によって、問題をある程度軽減することが可能である。個々の部品の遅延からこの変動性を低減する努力を行っても、プロセス、電圧、および温度(PVT)による変動性が依然として存在する。したがって、精密な設計およびトリミングによって伝送速度を増加させることが可能ではあるが、PVT変動があれば、より高速での性能を大きく制限することになる。
上記に鑑みて、当技術分野では、接続されたデバイス間の高速通信を容易にする低コスト、低電力バスシステムが引き続き必要とされている。
概要
本開示は、デバイスが自己較正することを可能にするための自動調整手順を含むバスシステムおよび方法を開示する。本明細書に開示されるアプローチは、これらのデバイス内の精密トリミングまたは精密回路の排除により、低コストデバイスの生産を可能にする。
様々な実施形態において、ある方法は、複数のデバイス間の通信を容易にするようにバスを制御することを含み、通信は、時間多重化されたクロックおよびデータプロトコルに少なくとも部分的に基づいて同期され、本方法はさらに、第1のデバイスを使用してバスを第1の値に初期化することと、第2のデバイスからバス上で第1の値とは異なる第2の値を受信することと、第2の値に少なくとも部分的に基づいて、第2のデバイスに、第2のデバイスへの応答を送信することとを含み、応答は、第2のデバイスからのバス上の通信を較正するために、第2のデバイスの遅延を制御するよう構成される。
本方法は、第1のデバイスが、第2のデバイスの遅延を推定することと、第1のデバイスによって読み出される値の変動を引き起こすよう第2のデバイスの遅延を調整することとをさらに含んでもよい。いくつかの実施形態では、本方法は、第2の値がバス上で整定される前に、第2のデバイスによって書き込まれた第2の値を読み戻すことを含む。第2の値は、第2のデバイスによって複数回書き込まれてもよく、第1のデバイスは、バス上の現在の読戻し値の推定の変動性を低減するために、読出値をフィルタリングしてもよい。第1のデバイスは、バスに結合された1つ以上のデバイスに返答で応答するよう要求し、返答に少なくとも部分的に基づいて遅延をデバイスに対して調整するコマンドを生成してもよく、返答は、各応答デバイスからの複数の応答を含む。本方法は、バスから読み出される値の平均を、0と1との間の確率を有するよう調整することと、それに応じて遅延を調整して、同じ値を読み戻すことを回避することとを含んでもよい。
いくつかの実施形態では、本方法は、バス回路内に、不確定状態を引き起こし得る漏れ電流を抑制するよう構成されるバスホルダを提供することをさらに含み、バスホルダは、非駆動時にバスの現在の状態を維持する。
本方法は、さらに、初期補正中に第1の遅延ステップを使用して正しい遅延位置の推定を取得するために第1の整定モード(settling mode)を提供することと、遅延の最終調整のためのより正確な遅延位置を取得するために第2の整定モードを提供することとをさらに含んでもよく、第2の整定モードは、第1の遅延ステップよりも小さい第2の遅延ステップを使用し、第1の整定モードよりも遅く整定し、本方法はさらに、複数の読戻し値に基づいて、第1の整定モードと第2の整定モードとの間で切り替わることを含んでもよい。第1の整定モードと第2の整定モードとの間で切り替わることは、N個の読出しにわたって値に変化がないときに第1の整定モードに切り替えることと、N個の読出しにわたって値に1つ以上の変化があるときに第2の整定モードに切り替えることとをさらに含んでもよい。本方法は、さらに、適応モードに複数の適応速度を提供することと、読み戻されている値が以前の値と等しいかどうかを判断し、適応速度をある上限まで増加させることと、読み戻されている値が以前の値と異なるかどうかを判断し、適応速度をある下限まで減少させることとを含んでもよい。
様々な実施形態では、システムは、バスに結合された第1のデバイスを備え、第1のデバイスは、バスを制御して、時間多重化されたクロックおよびデータプロトコルに少なくとも部分的に基づいて複数のデバイス間の通信を同期させ、およびバスを第1の値に初期化するよう構成され、システムはさらに、バスに通信可能に結合された第2のデバイスを備え、第2のデバイスは、バス上で、第1の値とは異なる第2の値を送信するよう構成される。第1のデバイスは、バスから第2の値を読み出し、第2の値に少なくとも部分的に基づいて第2のデバイスに応答を送信するよう構成されてもよく、応答は、第2のデバイスからのバス上の通信を較正するために、第2のデバイスの遅延を制御するよう構成されてもよい。システムは、実際のハードウェア値とアライメントされることになる複数の計算される遅延値に対する制限を含むよう構成されてもよい。
いくつかの実施形態では、第1のデバイスは、第1のデバイスによって読み出されている値が2つ以上の値の間で変動するように第2のデバイスの遅延を調整するよう構成される。第1のデバイスは、さらに、第2のデバイスによって書き込まれた値を複数回読み出し、これらの値のフィルタリングを実行するよう構成されてもよく;フィルタは、バス上の現在の読戻し値の推定の変動性を低減するよう構成される。第1のデバイスは、バスを既知の値にセットし、次いで、出力ドライバを無効にすることによってバスを駆動されないままにし、その後、第2のデバイスがバスの状態を変更し得るように、構成されてもよい。
バスは、不確定状態をもたらし得る漏れ電流に関する問題を排除するよう構成されるバスホルダを含む回路を備えてもよく、バスホルダは、非駆動時にバスの現在の状態を維持する。
いくつかの実施形態では、第1のデバイスは、複数の接続されたデバイスがバスを駆動するよう構成される前に、複数の接続されたデバイスに初期遅延値を書き込むよう構成され、初期遅延値は、他の接続されたデバイスを更新するための初期値としてシステムが動作していた最後の時間から用いられている以前の遅延値である。システムは、さらに、バスから読み出される値の平均を、0と1との間の確率を有するよう調整し、それに応じて遅延を調整し、同じ値を読み戻すことを回避するよう構成されてもよい。
システムは、正しい遅延位置の推定を得るために遅延の調整中に使用するための第1の整定モードと、遅延の最終的な調整のためのより正確な遅延位置を判断するよう構成される第2の整定モードとを含むよう構成されてもよく、第2の整定モードは、後続の補正中に第1の整定モードよりも小さい遅延ステップを有する。システムは、さらに、複数の読戻し値に基づいて、第1の整定モードと第2の整定モードとの間で切換わるよう構成されてもよい。
システムは、さらに、複数の適応速度を伴う適応モードを含むように構成されてもよく、読み戻された値が以前の値と同じであるとき、適応速度は、ある上限まで増分的に増加され、読み戻された値が以前の値と異なるとき、適応速度は、ある下限まで減分される。
図面の簡単な説明
本開示の局面およびそれらの利点は、以下の図面および以下の詳細な説明を参照することによって、よりよく理解することができる。当然のことながら、図面のうちの1つまたは複数に示される同様の要素を識別するために同様の参照番号が用いられ、その中の表示は、本開示の実施形態を例示する目的のためのものであり、本開示を限定するためのものではないことが理解されるべきである。図面中の構成要素は必ずしも縮尺通りではなく、代わりに、本開示の原理を明確に示すことに重点が置かれる。
本開示の1つ以上の実施形態による、共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを、デバイス内およびバス自体上の遅延とともに示す、ブロック図である。 本開示の1つ以上の実施形態による、較正されたスレーブデバイスのアイダイアグラムである。 本開示の1つ以上の実施形態による、スレーブデバイスからのタイミング情報を示すタイミング図である。 本開示の1つ以上の実施形態による、スレーブデバイスからのタイミング情報を示すタイミング図である。 本開示の1つ以上の実施形態による、スレーブデバイスからのタイミング情報を示すタイミング図である。 本開示の1つ以上の実施形態による、スレーブデバイスからのタイミング情報を示すタイミング図である。 本開示の1つ以上の実施形態による、タイミング情報のために2つのタイムスロットを含む、1行に16個のタイムスロットを有する例示的な時間多重化されたバスシステムのタイムスロットを示す図である。 本開示の1つ以上の実施形態による、スレーブデバイスが種々の(小さすぎる、較正された、および大きすぎる)遅延でマスタデバイスに書き込むのを示す。 本開示の1つ以上の実施形態による、バス上のジッタおよびノイズによりスレーブデバイスから得られる個々のサンプルの変動性を示すタイミング比較図である。 本開示の1つ以上の実施形態による、マスタデバイスによってバスに発行される1つ以上のコマンドを使用するスレーブデバイス遅延の例示的なプログラミングを示すフローチャートである。 本開示の1つ以上の実施形態による、埋め込まれたクロック情報とともに、時分割多重化バスに取り付けられたスレーブデバイスからの内部論理を示すブロック図である。 本開示の1つ以上の実施形態による、行またはフレーム内のタイミングイベントを補正することによって1つ以上のスレーブデバイスの遅延を調整するために使用されるクロック回復回路を示すブロック図である。 本開示の1つ以上の実施形態による、スレーブデバイスの内部遅延を調整するためにマスタデバイスからの返された遅延情報のアナログ積分を使用する回路を示すブロック図である。 本開示の1つ以上の実施形態による、デジタル制御アルゴリズムおよび遅延要素を制御するデジタル/アナログ変換器を使用してスレーブデバイス回路の内部遅延を調整するよう構成された遅延回路を示すブロック図である。 本開示の1つ以上の実施形態による、線形探索を使用して内部マスタまたはスレーブデバイス遅延を制御するよう構成されたプログラム、プロセス、および/またはアルゴリズムを示すフローチャートである。 本開示の1つ以上の実施形態による、2つのステップサイズを有する線形探索方法を使用して内部マスタまたはスレーブデバイス遅延を制御するよう構成されたプログラム、プロセス、および/またはアルゴリズムを示すフローチャートである。 本開示の1つ以上の実施形態による、適応2ステップ線形探索方法を使用して内部マスタまたはスレーブデバイス遅延を制御するよう構成されたプログラム、プロセス、および/またはアルゴリズムを示すフローチャートである。 本開示の1つ以上の実施形態による、適応マルチステップ線形探索方法を使用して内部マスタまたはスレーブデバイス遅延を制御するよう構成されたプログラム、プロセス、および/またはアルゴリズムを示すフローチャートである。 本開示の1つ以上の実施形態による、各遅延調整の前に複数の読出測定値を含む図12のアルゴリズムの修正である。 本開示の1つ以上の実施形態による、マスタデバイスまたはスレーブデバイスが複数の読出/書込シーケンスを使用してその内部遅延を自己調整する調整手順を実現するプログラム、プロセス、および/またはアルゴリズムを示すフローチャートである。 本開示の1つ以上の実施形態による、交替イベントに対して2つの読出を実行することによって立ち下がりエッジおよび立ち上がりエッジの両方に対する遅延を読み出すよう構成されたマスタデバイスまたはスレーブデバイスを示すタイミング図である。 本開示の1つ以上の実施形態による、共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを、デバイス内部およびバス自体上の遅延とともに示すブロック図である。 本開示の1つ以上の実施形態による、共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを、デバイス内部およびバス自体上の遅延とともに示すブロック図である。 本開示の1つ以上の実施形態による、共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを、デバイス内部およびバス自体上の遅延とともに示すブロック図である。 本開示の1つ以上の実施形態による、共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを含むバスシステムの例示的な較正タイミングを、デバイス内部およびバス自体上の遅延とともに示す。 本開示の1つ以上の実施形態による、2つの異なるクロックまたは同期レートを実現する共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを含むバスシステムの例示的な較正タイミングを、デバイス内部およびバス自体上の遅延とともに示す。 本開示の1つ以上の実施形態による、共通バスに接続され、書込タイミング調整モジュールを含むバスデバイスを、デバイス内部およびバス自体上の遅延とともに示すブロック図である。 本開示の1つ以上の実施形態による、共通バスに接続され、読出タイミング調整モジュールを含むバスデバイスを、デバイス内部およびバス自体上の遅延とともに示すブロック図である。
詳細な説明
本開示の様々な実施形態によれば、クロックおよびデータ情報が組み合わされる、共通バスに接続された複数のデバイス間の同期を達成するためのシステムおよび方法が説明される。
バスシステムに接続された複数のデバイス間の同期のために、1つのデバイスは、同じバスシステムに接続された他のデバイスによって受信され、時間基準として使用される同期パターンを送出する。バスに接続されたこれらの他のデバイスの内部遅延は未知であってもよい。本明細書で開示される実施形態は、時間基準と個々のデバイスとの間の遅延を較正するためのシステムおよび方法を含む。
本明細書では、個々のデバイスが、これらのデバイスによってバスに書き込まれ、時間基準を提供するデバイスによって複製されるデータに基づいて、これらのデバイス自身によって時間調整を実行することを可能にする、自己較正のための方法が説明される。この文脈では、時間基準を提供するデバイスはマスタデバイスと呼ばれ、自身のタイミングを修正しようとするデバイスはスレーブデバイスと呼ばれる。様々な実施形態では、較正を実行するための手順は、以下を含むことになる:(i)マスタデバイスは、スレーブデバイスがロックすることができる時間基準(例えば、同期パターン)を送出し;(ii)その情報に基づいて、これらのスレーブデバイスは、マスタデバイスからスレーブデバイスへの情報を読み出すことが可能であってもよく、なぜならば、マスタデバイスからの同期パターンおよび任意のコマンドの両方が同じ遅延を被り、したがって、確実に受信されることができるからである。
しかしながら、スレーブデバイスからマスタデバイスへの遅延は、これが測定されるまで未知であり、したがって、高速バス動作を促進し、バス衝突を回避するために、バスは、スレーブデバイスからマスタデバイスへのデータの伝送のタイミングを最適化するよう構成される。いくつかの実施形態では、この問題は、マスタデバイスに値を書き込むことをスレーブデバイスにさせることによって解決され、この値は、バス状態の現在の値を変化させることになり、マスタデバイスは、それが読み出した値を、内部遅延を示すものとしてスレーブデバイスが使用するよう、バスに書き込むであろう。
スレーブデバイスは、マスタデバイスから読み戻された値に基づいて、内部遅延を調整するよう構成される。例えば、読み戻された値は、0および1のある確率、例えば50%に近づき、それによって、この特定の遅延値が、最適な時間におけるスレーブデバイス送信機の開放をもたらすことになることを示し、これから、マスタデバイスは、1時間単位後にマスタデバイスからその値を確実に読み出すことが可能であってもよく、ここで、1時間単位は、クロックシステムに対する時間基準によって定義される。
本明細書に説明される方法は、シングルエンドのバスシステム上の例を用いて示されるが、類似方法が、マスタデバイスおよびスレーブデバイスの両方が差動送信機回路および受信機回路を含むであろう、差動バスに適用されてもよい。
ここで、デバイスの埋め込まれたクロック遅延調整を伴う時間多重化された通信を利用して、バス120に取り付けられた複数の構成要素間のバス通信を実行するためのシステム100の構成要素について、図1を参照して説明する。システム100は、外部または内部通信のためのポート104と、バス制御ユニット106と、共通バスに接続された送信機出力ポート108および同じく共通バスに接続された受信機入力ポート110とを含んでもよい、少なくとも1つのマスタデバイス102を含む。マスタデバイスは、クロック生成回路または外部クロック源(図示せず)を含んでもよいが、これは、システムの他の部分に配置されてもよい。
バスシステムは、スレーブ1 130のような1つ以上のスレーブデバイスを含んでもよい。このデバイスは、受信機入力ポート132と、クロックまたはタイミング回復回路134と、任意選択の入力時間調整回路136と、出力送信機ポート138と、出力タイミング調整回路140と、バス制御回路142と、通信のための様々なポート144とを含む。スレーブ1に加えて、同様の回路(例えば、受信機入力ポート152、クロックまたはタイミング回復回路154、任意選択の入力時間調整回路156、出力送信機ポート158、出力タイミング調整回路160、バス制御回路162、および通信のための様々なポート164)を有する同様のデバイス、スレーブ2 150が示されているが、2つのデバイスは同一でなくてもよく、両方のデバイスがバスに取り付けられる必要もない。いくつかの実施形態では、スレーブ1および2に加えて、複数のデバイスがバス上に位置する。スレーブデバイスは、マスタデバイス同期情報への同期のために、例えば、DLL(遅延ロックループ)またはPLL(位相ロックループ)を使用してもよい。場合によっては、これらのサブ回路は、PLL回路およびDLL回路の動作に干渉するバス上の任意のランダムデータを除去するようタイムゲートを含んでもよい。このタイムゲート(図示せず)は、スレーブデバイスがバスへのロックを取得した後に初めて用いられてもよい。
マスタデバイスから、取り付けられたスレーブデバイスへの、任意のクロック信号およびデータ信号は、同じ遅延を被ることになる。したがって、スレーブデバイスは、任意のデータを回復するために、クロック基準を、安定したタイミングとして使用してもよい。しかしながら、マスタデバイスおよびスレーブデバイスの両方における内部遅延は未知であり、バス遅延などの未知の外部要因がある。したがって、スレーブデバイスからマスタデバイスへの方向におけるデータの到着に関して、有意な不確実性が存在することになる。このタイミングを最適化するために、低コストで非常に正確な遅延較正を得る手順を説明する。この手順は、システムへの追加の特別な回路の追加を必要としない。ここで、通常はシステム動作に有害であると考えられるジッタおよびノイズのような要素が、システムのタイミング分解能を向上させるために使用されることになり、それによって、わずか2つの電圧レベルが情報の送受信に使用される場合であっても、マスタデバイスおよびスレーブデバイスが正確なタイミング情報を取得することを可能にする。非常に低電力のシステムに関連付けられる大きなジッタは、遷移点付近でサンプリングされた受信の値において変動性をもたらすことになるが、この変動性は、総パス遅延のタイミング推定を改善するために建設的に使用されることになる。マスタデバイス内部のデータの受信を調整することは可能であるが、考えられ得るもっとも高い帯域幅については、1つ以上の取り付けられたスレーブデバイス内部の実際の送信イベントを調整するほうが、より良い場合がある。このようにして、スレーブデバイスからの任意のデータを、バスシステム上の考えられ得るもっとも高い帯域幅について、緊密にアライメントさせることができる。
必要とされる遅延調整の範囲は、特定の技術考慮事項によって支配される、構成要素公差、バス直径、および内部遅延に依存する。例として、スレーブデバイス受信機回路を、入力エッジと比較した出力整定点(settling point)における変動を+5ナノ秒(ns)(内部遅延)および+/-10ns、全変動-5ns~+15ns(静的遅延、ジッタは含まれない)で製造することが、現在実現可能である。
マスタデバイスは、それ自身のタイミング基準を含み、いくつかの企図される実現例では、このデバイス内の変動は、-1~+5nsの範囲内であってもよい。0~200cmの間のバス直径(例えば、比較的長いバスシステム)の場合、(約16cm/nsの遅い伝搬速度を仮定して)0~12nsの間の遅延を得ることになる。これらの要因の総変動は、-6~32nsの間の総タイミング変動をもたらす。高速で低電力の信号送信システムを得るために、クロック遷移の数を制限することが望ましいが、これは、スレーブデバイス受信機回路においてジッタを増加させることになる。
コストおよびシステムの考慮事項のため、製造公差にかかわらず、スレーブデバイスデータ位置を適切にアライメントさせることが望ましい。考えられ得るもっとも低い電力消費のために、受信機クロック回復回路におけるジッタは増加することになり、したがって、マスタデバイスおよびスレーブデバイスのデータパターンのアライメント不良による帯域幅の損失を制限することが望ましい。0.3~1.5ns(現実的な値)のオーダーのrmsジッタの場合、我々は、多くの実現例において、+/-2.1~10.5nsの最悪の場合の変動を有することになる(10-12の誤差確率に対してファクタ7)。
較正が成功したと見なされるために、いくつかの実施形態では、スレーブデバイスデータは、このファクタが総エラーバジェットのわずかな割合であるように、最適値の1~2ns以内にアライメントさせられることが望ましい。この値は非常に小さいので、これをワンタイムファクトリプログラミング(one-time factory programming)によってプログラムまたは制御するのは現実的ではない。したがって、本明細書では、最適なタイミング制御のためにデバイス内部の遅延を動的に測定および制御する実施形態について説明する。
スレーブデバイス遅延タイミングの制御は、マスタデバイスにおいて、またはスレーブデバイスにおいて、またはバスもしくは構成要素に別の方法で接続された別のデバイスにおいて、生じ得る。マスタデバイスがタイミングを制御する利点は、すべてのスレーブデバイスが制御回路を必要とせず、したがって、単一の回路が、考えられ得る、より単純なシステムのために、すべてのデバイスを制御することができることである。しかしながら、マスタデバイスがスレーブデバイスからどのような値を読み出したかをスレーブデバイス知っている場合、スレーブデバイスがそれ自身のタイミングを制御することも可能である。
これを解決することができる1つの方法は、マスタデバイスに、較正段階中にそれがスレーブデバイスから読み出した値を書き戻させることによる。以前の方法に勝る利点は、マスタデバイスが1つのビットを書き戻すだけでよく、これは、較正段階中の帯域幅要件の低下を可能にする、ということである。スレーブデバイス自体が、較正を完全に担うことができ、マスタデバイスの内部に位置する制御アルゴリズムのいかなる特別な特性にも依拠する必要がないことになる。代替として、マスタデバイスは、絶対遅延制御値をスレーブデバイスに提供する代わりに、スレーブデバイスに対して、その内部遅延を調整する(例えば、遅延の変化なし、遅延を増加させる、または遅延を減少させる)よう、信号を送ることができる。
図2は、比較的高い周波数(例えば、75MHz)で動作し、+/-1ns内で正確な遅延調整を使用するスレーブデバイスによって送信されるデータのアイダイアグラムを示す。図から分かるように、システム全体のノイズジッタおよびノイズに対して+/-4.5nsが残され、データは依然として読出可能であることになる。これは、誤差確率が10-12の場合、ジッタ平方自乗平均(rms)の643ピコ秒(ps)に相当する。調整なしで、-10~+30nsの範囲内で必要とされる調整の、より早期の値を使用すると、データは、アイ開口にわたってランダムに散乱されるであろう。
図3A~図3Dは、スレーブデバイスからマスタデバイスへの遅延情報のサンプリングに関与するイベントの実施形態を示す。図3Aを見ると、これは、システム遅延の測定に関与するイベントを示す。第1に、マスタデバイスは、同期イベントの開始を知らせるためにL-H遷移を送出する。次いで、マスタデバイスは、バスをフロート状態のままにし、その後、スレーブデバイスが、バスのレベルを変更し得る。最後に、バスが再び(この例ではHレベルからLレベルに)変化するまでにかかる時間に基づいて、システム遅延(すなわち、マスタデバイス→スレーブデバイス→マスタデバイス)が示される。任意選択で、図には示されていないが、マスタデバイスは、スレーブデバイスがマスタデバイスからのいかなる他の対話もなしにそれ自身で任意の遅延調整を実行する場合、マスタデバイスがバスから読み出した値のコピーを同じフレームもしくは行または後の行もしくはフレームのいずれかで送出することができる。タイミング図は、マスタデバイスの観点から示されている。いかなるデバイスもバスを駆動していないときにバス値を一定に保つために、バスホルダがシステムに含まれてもよい。バスホルダの出力インピーダンスは、バス(伝送線)のインピーダンスよりも著しく高くてもよく、個々の出力ドライバの出力インピーダンスよりも著しく高くてもよい。バスホルダは、1つ以上の構成要素内に位置してもよく、または漏れ電流が小さく動作周波数が高いシステムには全く必要とされなくてもよい。
図3Bを見ると、マスタデバイスがバスをアイドルのままにした後、バスがレベルを変更する正確な時間には、いくらかの不確実性がある。この不確実性は、主としてスレーブデバイスクロック回復回路からのジッタによって引き起こされる。正確なマスタデバイスタイミングにも少しの不確実性はあることになるが、このタイミングは、基準クロックへの直接接続により、はるかに安定することになる。
図3Cを参照すると、スレーブデバイスがバス値を変更してからかなり後でマスタデバイスがバス値を読み出す場合、読み出される値は、常に、同じであることになる。図に示される場合では、マスタデバイスは、常にL値またはゼロを読み出すことになる。これは、スレーブデバイス内部で設定された遅延値が低すぎることを示し、なぜならば、それは、正しい動作のために実際に必要とされるよりも多くの帯域幅を占有し得るからである。
図3Dを参照すると、マスタデバイスが、スレーブデバイスがバス値を変更する時間よりも有意に早くバス値を読み出す場合、それは、いつも同じ値を読み出すことになる。この場合、マスタデバイスは常にHまたは1を読み出すことになる。これは、マスタデバイスがこのタイムスロットにおいてスレーブデバイスからいかなる情報も受信することができないため、遅延値が大きすぎるように設定されたことを示す。
図4は、各行に16個のタイムスロットを含む時間多重化されたシステムの一実施形態を示す。各行はまた、マスタデバイスからスレーブデバイスに同期情報を伝達するために、2つのタイムスロットを使用する。すべての他のタイムスロットは、マスタデバイスとスレーブデバイスとの間でデータを転送するために、またはデータ転送の方向が変化することを可能にするために、使用されてもよい。マスタデバイスは、遅延情報を取得するために、タイムスロットの中央およびタイムスロットのエッジにおいてスレーブデバイスからデータを読み出すことになる(すなわち、/クロックサイクル早い)。
図を見ると、最後のタイムスロット(15)は、バスを同期パルスの開始としてLレベルに事前定義するために使用される。次のタイムスロット(番号0)は、バスをHにセットするために使用され、LからHへの遷移間の境界は、マスタデバイスとスレーブデバイスとの間の正しい同期を得るためにスレーブデバイスのクロック回復回路に使用される。タイムスロット1は、バスをアイドルにセットするために使用され、バスの方向をマスタデバイスからスレーブデバイスに変えることを可能にし、バスに書き込む。スレーブデバイス内の内部遅延およびスレーブデバイスに未知の外部遅延に基づいて、タイムスロット1内のどこかで出力レベルを変更してもよい。マスタデバイスは、タイムスロット1とタイムスロット2との間の遷移時にバスレベルを読み戻すことができる。この読出は遅延補正に使用されることになる。最後に、タイムスロット2の中央に位置するバスの値は、実際のデータ転送のためにスレーブデバイスからの戻り値として使用されることになり、なぜならば、ここでは、バスは整定する時間を有しており、このスキームがジッタおよびノイズの最大許容範囲を可能にするためである(すなわち、サンプリング点は「データアイ」の中央にある)。タイムスロット3~14は、図ではアイドル状態で示されているが、データが遅延測定に干渉しないであろう限り、デバイス間で実際のデータを転送することを含み得る。
図5は、遅延測定の詳細をより詳細に示す。一番上の第1のタイミング図は、遅延補正の設定が低すぎ、その結果、マスタデバイスが、タイムスロット1とタイムスロット2との間のテストサンプリングポイントであっても、バスレベルの変化を常に読み戻すスレーブデバイスを示す。第2のタイミング図では、マスタデバイスは、0および1の交番値を読み出すことになる(すなわち、ある時は、バスレベルの変化を見ることになり、ある時は、バスレベルの変化を見ないことになる)。ジッタおよびノイズにより、読み戻されている値は、ランダムに交番することになる。最後に、図の一番下の最後のタイミング図は、遅延補正の設定が長すぎて、必要とされる変化に応答するのが遅すぎるスレーブデバイスを示す。マスタデバイスは、タイムスロット1とタイムスロット2との間の遷移においてバスレベルを測定するとき、バスレベルの変化を見ることは決してないことになる。最後に、スレーブデバイスとマスタデバイスとの間の通信のために使用されることになる実際の値は、テストされた値の/タイムスロット後、すなわちタイムスロット2の中間においてサンプリングされる値となる。
図6は、スレーブデバイスによって書き込まれた値の、マスタデバイスによる測定が、ノイズおよびタイミングジッタによって変調されることになることを示す。しかしながら、この変動性は、より正確な調整のために複数のサンプルが組み合わされるときに2個を超えるレベルを得るために使用されてもよい。スレーブデバイスにおける非常に低い電力消費の要件により、タイミングジッタは相当なものになる。しかしながら、本出願では、これは、本発明者らの利点のために使用され、というのも、それは、本発明者らが複数の測定された値の平均を形成することを可能にし、それらは、共になって、遷移ゾーンに関する情報をもたらすからであり、本発明者らは、その値が遷移の前であるか後であるかを判断するだけでなく、平均された値を正確に使用して遅延設定を最適値に調整することができ、多くの実施形態において、いずれかの読出値(50%Lおよび50%H)の50%付近の平均戻り値をもたらす。返されたバス値の50%未満が変化を示さない場合、それは、より良好な信号品位のために遅延がより小さくあるべきであることを意味し、50%を超える変化を示す場合、それは、バス帯域幅を最適化するために遅延がより小さな値に設定されるべきであることを意味する。マスタデバイスは、スレーブデバイス自体の内部のタイミングを調整してもよいし、単に読出値を書き戻してスレーブデバイス自体にそれらを調整させてもよい。マスタデバイスがそれ自身の受信機タイミングを調整することになる場合、スレーブデバイスは、いかなる調整も必要としないことになるが、この方式は、より単純である一方で、帯域幅の最適未満の使用をもたらすこととなり、なぜならば、スレーブデバイスは、余分な帯域幅が変動のために割り振られない限り、相互の間で干渉し得るからである。したがって、受信機タイミングではなく送信機タイミングを調整することが推奨される。
図7には、1つ以上の実施形態による、スレーブデバイス遅延の読出および最適な補正を実行するためにマスタデバイスによってバスシステムに発行される1つ以上のコマンドの例が示されている。バスへのコマンドの発行は、以下のように進行する。第1に、マスタデバイスは、バスに取り付けられたすべてのデバイスがそれらのクロック受信機回路によって同期を獲得するであろうほど十分に長い時間、同期情報を発行する。ここで、それらのデバイスは、マスタデバイスからコマンドおよびデータを読み出すことができるが、それら自身の送信機回路は、まだ内部および外部遅延に対して適切に較正されていない。
アルゴリズム700に示されるコマンドおよび手順は、関与する全体的なステップの例を示す。まず、マスタデバイスは、ステップ702において、どのデバイスを時間補正するかを選択するコマンドを発行する。マスタデバイスは、ステップ704において、このスレーブデバイスに初期遅延を設定する(このステップは、いくつかの実施形態ではスキップされてもよい)。次いで、マスタデバイスは、ステップ706において、バスを既知の値に初期化し、それを駆動されないままにする。このイベントは、あらゆる行において送信されている自然発生の同期パルスと組み合わされてもよいことに留意されたい。(図4および図5のタイムスロット15および0)。ステップ708において、選択されたデバイスは、スレーブデバイスの内部タイミングに基づいて、現在のバス値を変更することによって応答する。ステップ710において、マスタデバイスは、次いで、マスタデバイス自身のタイミングに基づいて、バスから現在値を読み戻す。ステップ712において、目的が、スレーブデバイスに内部タイミングをそれ自身で調整させることである場合、マスタデバイスは、任意で、それがバスから読み出した値を書き戻してもよい。スレーブデバイスは、マスタデバイスからの同期パルスおよびコマンドが等しく遅延されるので、マスタデバイスからデータを確実に読み出すことができることに留意されたい。任意選択のステップ714において、データは、いつ補正が行われていようと、その前に平均化される。ステップ716では、値がこの遅延位置で信頼できるかどうかが考慮され、そうでなければステップ706に戻る。ステップ718において、遅延推定が完了しているかどうかが考慮され、遅延推定が完了している場合、遅延設定を変更し、新たな遅延値で継続し(720)、そうでなければ、ステップ719において、より多くの読出が必要であることをスレーブデバイスに知らせる。遅延値が最適値である場合、これはスレーブデバイスのために使用されるべきであり(722)、バスに取り付けられたすべてのデバイスがステップ724において較正されると、アルゴリズムは完了する。
図8は、DLLトポロジに基づいてスレーブデバイスの内部で内部遅延補正を実行するための回路800の例示的な実施形態を示す。この例では、遅延セルを使用して、マスタデバイスとのロック、および、スレーブデバイスからのデータの放出の制御を得る。クロック回復回路がDLLトポロジに基づく場合、遅延補正のためにこの回路を使用することは、有利である場合があり、なぜならば、2つの回路(クロック回復および遅延補正)を1つの回路に組み合わせてもよいからである。図示されるように、回路800は、バスデータを受信するための入力受信バッファ802と、スレーブデバイスがマスタデバイスにロックされると、同期パルスからバストラフィックをフィルタ除去するために使用されるタイムゲート804と、マスタデバイスへの安全な同期を保証し、タイムゲートを制御する、バス同期回路806と、バス同期回路によって制御され、データの単一の行を個々のタイムスロットに分割するために使用される遅延セル808(8つが図示されているが、その数は適用例によって異なり得る)と、出力タイミングを選択し、遅延させ、制御するマルチプレクサ810と、スレーブデバイスによって送信されるべき次のデータを含む送信レジスタ812と、バスに接続される送信出力バッファ814とを含む。測定された遅延値に基づいて、マスタデバイスまたはスレーブデバイスのいずれかが、マルチプレクサの設定を制御し、それによって、タイミングを最適値に調整することになる。この制御は、システムが起動すると実行されるか、または連続的に実行されて、環境変化(例えば、バスシステムにおける内部遅延および外部遅延に影響を及ぼし得る温度の変化)を補正してもよい。したがって、これらの遅延を連続的に監視および補正することによって、これらのデバイス変動を補正することができ、システムは、最適な態様で連続的に動作することができる。必要とされる時間調整が単一のタイムスロットによってサポートされる時間調整を超える場合、スレーブデバイスは、これらのより大きい遅延調整に対応するために、異なるタイムスロットでパルスを送信するよう構成されてもよい(示される遅延調整は、遅延調整を単一のタイムスロット内でサポートする)。
図9は、1つ以上の実施形態による、デジタル補正ユニットに基づいてスレーブデバイス内で内部遅延補正を実行するための例示的なシステム900を示す。システム900は、クロック回復回路902を含んでもよく、それは、マスタデバイスによって提供される同期化パターンにロックされているPLLと、同期化回路と、クロック回復に影響を及ぼすことからデータを除去するために設けられるタイムゲート(図示せず)とを含む。このタイムゲートは、ロックを保証するためにデバイスが元の同期パターンへのロックを取得した後に初めて活性化されてもよい。システム900は、タイミングカウンタ903、送信イベントの時間を変更する加算器904(時間補正ユニット)、データの送信開始を検出する比較器906、スレーブデバイス出力データ用レジスタ908、および実送信出力バッファ910を含むことになる。場合によっては、実際のタイミングイベントは、データの開始に遅延を加える代わりにプログラムされてもよい。そのようにして、加算器904を必要とせず、代わりに、データの正しい開始が比較器906に提供されることになる。
クロックの両エッジをタイミング調整に利用することで、タイミング精度をほぼ2倍に向上させることができる。一例として、250MHzの内部高速クロックを有することで、両エッジを利用して2nsのタイミング補正が可能となる。したがって、最適な遅延設定では、誤差は最大で1ns(すなわち+/-1.0ns)である。この場合、タイミングが2倍未満に制限される理由は、実際のシステムにおける完全な50%未満のクロックデューティサイクルによるものである。
図10は、積分器1002と、積分器からの出力によって制御される遅延セル1004と、送信機出力バッファ1006とに基づいて、スレーブデバイス内で内部遅延補正を実行するための例示的なシステム1000を示す。ここで、遅延補正は、戻り値を合計し、これらの積分されたものを使用して、遅延セルを制御することによって、連続的に実行される。内部漏洩および他の要因に起因して、この回路は、遅延測定が定期的に行われることを必要とする場合があり、さもなければ、最適な位置からドリフトするかもしれないことに留意されたい。
図11は、DAC(デジタル/アナログ変換器)1102、遅延セル1104、および出力送信バッファ1106に基づいて、スレーブデバイス内で内部遅延補正を実行するための例示的な回路1100を示す。この回路は、デジタル計算された最適遅延値を使用してDACを制御し、DACからのアナログ出力が遅延セルの遅延を制御することになる。これは、次いで、出力送信バッファを制御する。システム1000に勝るこの回路の利点は、ドリフトが比較的少なく、内部漏れ電流が、それを、最適な遅延位置から著しく離れるように動かさないことである。欠点は、DACの必要性であるが、それは、それが単調であり、遅延セルを制御するのに充分なステップ数を有する限り、高精度である必要はない。したがって、いくつかの適用例では、6ビット程度のわずかな分解能が、遅延を制御するのに充分であってもよい。温度に伴う著しいドリフトに遭遇するシステムの場合、較正アルゴリズムを連続的に実行する必要があり得る。
マスタデバイスとスレーブデバイスとの間の制御された遅延を得るための4つの方法が、それぞれ、図12~図15に示される。これらのデバイスを制御するために使用され得る他の方法、例えば、二分探索またはバイナリサーチがある。しかしながら、ここに記載される方法は、単純な態様で、とられるステップが充分に小さいことを保証することができ、従って、スレーブデバイスがマスタデバイスまたはバスに取り付けられた他のデバイスによって提供される任意の情報を上書きし始める危険性がない、という利点を有する。さらに、本明細書に記載されるアルゴリズムは、適切なパラメータの選択により遅延に影響を及ぼすノイズに対して非常にノイズロバストである。
図12は、第1のアルゴリズムのフローチャートの例示的な実施形態を示す。この方法1200は線形探索アルゴリズムを含む。各サイクルについて、マスタデバイスはバスをセットし、スレーブデバイスはバス値を変更することによって応答する。マスタデバイスによって読み出される値に基づいて、スレーブデバイス内の遅延は、わずかな時間量だけ増減されることになる。言い換えれば、スレーブデバイスがあまりにも遅くバスに書き込む場合、スレーブデバイス内部の遅延は、マスタデバイスへの書込を実行した後、わずかな量だけ減少されることになり、同様に、スレーブデバイスがあまりにも早く書き込む場合(例えば、マスタデバイスによるすべての読出値の半分より多くが変化して見られる場合)、遅延値は増加されることになる。この方法は、遅延を小さいステップ(例えば、0.05ns)で変更することによって、遅延のジッタが充分に制御されることを保証するが、これはまた、大きい遅延変化(例えば、20ns)に対して、アルゴリズムが、理想的な遅延に到達する前に、数百ステップ(反復)を経てもよいことも意味する。したがって、この方法は、速い整定時間(settling time)と良好な収束との間の妥協であり、所与の低いジッタ要件に対して、これは長い整定時間をもたらすことになる。この方法は、以下に詳細に記載されるように機能する。
アルゴリズムは、調整手順へのエントリポイントであるステップ1202で開始する。次いで、マスタデバイスは、ステップ1204において、バスを既知の値にセットし、ステップ1206において、スレーブデバイスは、バス上の値を変更する。マスタデバイスは、バスから現在の値を読み出した後、ステップ1209において、任意で、バスからそれが読み出した値を書き戻すことができ、スレーブデバイスは、この値を自己調整のために使用してもよい。マスタデバイスがスレーブデバイス遅延を制御している場合、このステップは不要であってもよい。マスタデバイスは、それ自身のタイミングに基づいてステップ1204およびステップ1208で動作しており、同様に、スレーブデバイスは、スレーブデバイス内部タイミングに基づいてステップ1206を実行することになることに留意されたい。概して、これらのタイミング基準は異なることになり、したがって、タイミングの補正が必要とされてもよい。ステップ1210で、(ステップ1208で読み出された)バスからの戻り値に基づいて、判断がなされる。値が変化した場合、我々は、‐統計的に言えば、戻り値はジッタおよびノイズによって大きく影響されるので‐遅延が大きすぎることを知っている。したがって、これが当てはまる場合、現在の遅延は、わずかに上方に、たとえば+0.05nsだけ調整されることになる。そうでない場合、すなわちバス値の変化が検出されなかった場合、遅延は(再び統計的な意味で)大きすぎ、我々は、逆方向に小さい補正、例えば-0.05nsを行うことになる。これらの値は単なる例であり、多くの他の値が使用され得る。より大きい値を選択する場合、最適な遅延を見つけるための探索時間はより速くなるが、ランダムな変動による最終的な出力ジッタはより大きくなるので、これは妥協点である。ステップ1216において、我々は、出力遅延がシステム限界内にあることを保証する。すなわち、我々が補正し得る最大値として既知であるものを超えてその値を増大させたり、回路が取り扱うことができる最低値を超えてその値を減少させたりしない。次に、ステップ1218において、積分された遅延値が内部レジスタから実際の遅延設定にマッピングされ(例えば、実際的な遅延設定の数は、値を計算するために使用される精度未満であってもよい)、ステップ1220において、実際のスレーブデバイスタイミングが補正される。最後に、ステップ1220において、アルゴリズムが完了しているか否かが判断される。アルゴリズムが完了していない場合、それは、ステップ1204から継続することになる。アルゴリズムが完了しているか否かの判断は、アルゴリズムが取り得る既知の最大数の反復を使用して、または返された0および1の数の平均された値を使用することによってのいずれかで行うことができる。多くの反復(例えば、100)にわたるこの平均が0.50に達すると、最適な遅延タイミング補正に達した。何らかの許容差を許容するために、平均が、例えば0.47~0.53の範囲内の値に達すると、アルゴリズムは終了してもよい。別の実施形態では、マスタデバイスは、ステップ1209においてスレーブデバイス遅延を調整してもよい(例えば、遅延変化なし、遅延を増加させる、または遅延を減少させる)。
図13は、第2のアルゴリズムのフローチャート1300を示す。この方法は、2つの適応速度を含むことによって改善された線形探索アルゴリズムである。最初に、本方法は、より大きい遅延調整(例えば、1~2ns)を行い、第1の遷移が見出された後(マスタデバイスによってスレーブデバイスから以前の値とは異なる値を測定することによって、マスタデバイスはスレーブデバイスからサンプリングした)、それは、0.05ns付近の時間ステップを伴う、より低速の追跡モードに変化し、ジッタが制御されることを確実にする。これは、単純な方法の整定時間をかなり改善するが、たった1つの、ノイズの多い測定で、この方法は低速モードに変更され、次いで、適応は、より低速になることになる。この方法の場合、ジッタは、方法1と比較して、わずかにより高い。この方法は、以下に詳細に記載されるように機能する。
アルゴリズムは、ステップ1302で開始し、ステップ1304でフラグ(第1の遷移)をゼロに等しくセットする。このフラグは、スレーブデバイス応答の後に、戻された読出値が前の読出バス値と異なる点を見つけるために、使用される。ステップ1306において、マスタデバイスは、バスを既知の値にセットし、次いで、バスホルダによって値が維持されてもよい間にバスを解放する。ステップ1308において、スレーブデバイスは、その内部タイミングに基づいてバスを変更し、ステップ1310において、マスタデバイスは、マスタデバイス内部タイミングに基づいてバスを読み出す。ステップ1312において、マスタデバイスは、任意で、それがバスから読み出した値を、スレーブデバイスがそれ自身のタイミングを自己較正することができるように、書き戻してもよい。この任意のステップは、マスタデバイスがスレーブデバイスのタイミング値を直接設定している場合には必要とされず、スレーブデバイスがタイミングをそれ自身で制御することになる場合に含まれてもよい。別の実施形態では、マスタデバイスはまた、ステップ1312において、現在の遅延値に対する変更(例えば、変化なし、遅延の増加、遅延の減少)を発行することによって、スレーブデバイスタイミングを制御してもよい。
ステップ1314において、マスタデバイスによって読み戻されたバス値がマスタデバイスによって読み戻された以前の値と同じであるかどうかが判断される(このアルゴリズムを実行する第1のシーケンスでは、2つの値は同じであると仮定されるものとすることに留意されたく、なぜならば、利用可能な情報がなく、フラグ「第1の遷移」はゼロのままであることになるからである)。2つの値が同じである場合、フラグ「第1の遷移」はゼロのままであることになるが、2つの値が異なる場合、それは、ステップ1316において1または真にセットされる。このフラグは、最初に迅速な探索を実行し、遷移が見つかると、より遅く、より正確な探索を実行するために使用される。ステップ1318では、「第1遷移」フラグの値に基づいて判断を行う。値に変化がない場合、高速探索1322を続けるが、単一の遷移が見つかると、ステップ1320で規定されるように、より遅く、より正確な遅延補正で継続する。早送りモードにおける遅延値の値は、例えば0.75nsであってもよいが、それは適用例に依ることになり、低速で、より正確なステッピングに対する値は、適用例によって、例えば0.125nsであってもよい。これらの値は、二進算術を使用して容易に表すことができる。ステップ1324~1336で実行されるプロセスは、方法1で説明したステップ1210~1222と同じであってよく、繰り返されない。このアルゴリズムは、アルゴリズム1と同じジッタ性能を維持しながら、より速い探索時間という利点を有する。
第3のアルゴリズムは、図14に示され、第2のアルゴリズムの進化であり、このアルゴリズムは、以前のN個の値に基づいて、常に低速モードと高速モードとの間で変化し得る。N個の以前の読出値がすべて同じである場合(すなわち、同じ方向に適応している)、2回ステップのうちの、より大きい方が取られることになる(ΔTLARGE)。読み出されたN個の直近の値の間に何らかの差がある場合、より小さい時間ステップが取られることになる(ΔTSMALL)。この方法は、方法2と比較してノイズおよびジッタに対する感度がはるかに低く、方法2よりもわずかに大きいジッタでより速い整定時間を達成する。この方法は、以下に詳細に記載されるように機能する。
アルゴリズム1400は、ステップ1402で開始し、次いで、マスタデバイスは、ステップ1404でバスを既知の値にセットし、バスを解放する。バスホルダが存在してもよく、バスホルダは、いずれのデバイスも(例えば、1~2kΩの範囲である)媒体出力インピーダンスを用いてバスを駆動していない場合、バス状態を維持してもよい。スレーブデバイスはステップ1406においてバス値を変化させ、マスタデバイスはステップS1408においてそれ自身のタイミングに基づいてバス値読み戻す。マスタデバイスは、任意で、スレーブデバイスが自己調整のために使用するために、ステップ1410において、読出値をバスに書き戻してもよい。マスタデバイスがスレーブデバイスの遅延を制御している場合、このステップは必要ではなく、マスタデバイスは、正確な遅延値を発行することによって、または現在の値を制御すること(例えば、変化なし、遅延の増加、遅延の減少)によってのいずれかで、スレーブデバイスの遅延を制御してもよい。ステップ1412において、マスタデバイスによって読み出された過去のN個のサンプルに基づいて判断が行われる。直近のN個のサンプルに変化がない場合、大きな適応値が使用されるプロセス1414を行う。高速適応値の値(プロセス1414)は0.75nsであってもよく、低速適応値の値(プロセス1416)は0.125nsであってもよい。Nの値は、大きなノイズであっても高い適応値と低い適応値との間に振動がないことを保証するよう、さまざまな実施形態において8であってもよい。ステップ1418~1432は、ステップ1210~1224と同じであるため、説明は繰り返さない。このアルゴリズムは、大きなノイズの存在下でも上手く機能し、あまりにも遅く取られるいくつかのステップがあり得るが、一般に、2つのステップ値のみを使用してできるだけ速く適応することになる。
第4のアルゴリズムは、図15に示され、図14に示される第3のアルゴリズムと比較してさらなる進化である。ここで、マスタデバイスがバス上で同じ値を2回サンプリングするときはいつでも時間遅延変化を増加させ、そうでなければ、遅延を減少させることになる。ある点で、平衡に達し、更新係数に応じて2つの可能な戻り値(LまたはH、0および1)の50%に近い平均読出値を与える。言い換えれば、次の遅延調整の長さは、値の変化について以下のようになる:ΔT=α×ΔTであり、αは典型的には1.05~1.2の範囲にあることになる。二進算術において丸め誤差なしに容易に表される数、たとえば乗算の代わりに加算を使用する係数として実現され得る1+1/8=1.125を選択することが有利であってもよい。
値に変化がない場合、次の遅延調整の長さは以下のようになる:ΔT=α×ΔTであり、αは典型的には0.8~0.95の範囲であることになる。二進算術において丸め誤差なしに容易に表される数、たとえば乗算の代わりに加算を使用する係数として実現され得る1-1/8=0.875を選択することが有利であってもよい。適応ステップサイズのため、この方法は最も速く機能し、方法1とほぼ同じジッタ性能を有する(ジッタは、整定時間のわずかな増加によってさらに低下され得る)。アルゴリズムの安定性を保証するために、遅延変化の最小値および最大値に対する境界が存在し、したがって、遅延における最小および最大ステップサイズが実現される。この方法は、以下に詳細に記載されるように機能する。
ステップ1502において、アルゴリズム1500が開始される。ステップ1504において、マスタデバイスは、バスを既知の値にセットし、ステップ1506において、スレーブデバイスは、それ自身のタイミングに基づいてバス値を変更する。ステップ1508において、マスタデバイスは、マスタデバイスのタイミングに基づいてバス上の値を読み出す。任意選択のステップ1510において、マスタデバイスは、それが読み出した値を書き戻す。このステップは、スレーブデバイスがその内部タイミングを自己調整しようとしている場合に必要とされるにすぎない。マスタデバイスがスレーブデバイスの遅延を制御している場合、このステップは必要ない。この場合、マスタデバイスは、絶対遅延値を書き込むことによって、または現在の遅延値に対する変更を発行する(例えば、変化なし、遅延の増加、遅延の減少)ことによって、スレーブデバイスのタイミングを制御することになる。ステップ1512において、マスタデバイスによってバスから読み出された以前の2つの値が同じであるかどうか、判断が行われる。このアルゴリズムの第1の反復では、デフォルトの初期遅延値、例えば0.75nsがステップ1514で使用される。2つの戻り値が同じである場合、これは、ノイズがほとんどない遅延調整の範囲内にあることを示す。これは、より速く移動することを試みるべきであることを意味する。これは、遅延調整値に1より大きい係数、例えば1.125を乗算することによって達成される。しかしながら、2つの値が異なる場合、これは、遷移の中央のノイズのある領域内にあり、0と1との間で変動することが多いということを示すため、より小さいステップが使用される(ステップ1516)。ここで、遅延調整補正係数は1未満(例えば、0.875)となる。この点から、我々はここで、ステップ1518における時間調整を、演算の精度が限られているため、ある範囲内、例えば1/128~1.0nsに制限し、他のデバイスからのデータの上書きを回避する。ステップ1520~1534は、ステップ1210~1224と同一であってもよく、したがって、説明は繰り返さない。
最後に、戻り値の平均は、例えば、加重平均、例えば、平均=0.99*平均+0.01×(直近の読出値)を形成することによって、アルゴリズムがいつ終了したかの指標として使用されてもよい。ある適用例では、固定された有限数の反復が、代わりに、ノイズおよびジッタレベルに関する既知の情報ならびに既知の整定特性(settling characteristics)に基づいて使用されてもよく、例えば、アルゴリズムは、40回の反復後に完了していると見なされてもよい。
これらの方法の各々は、バス上でサンプリングされた2つ以上の値の平均の形成で補完することができ、これは、マスタデバイスがスレーブデバイスを制御している場合に、特に効果的であってもよく、なぜならば、この場合、書込動作が単一ビットの読出よりも長くかかるため、各書込動作の前に複数の読出動作を実行することが有益である場合があるからである。
ある実際の実現例では、遅延についての初期推測が使用される。システム全体が例えば-10~+30ns遅延内に収束しなければならない既知の範囲があるので、この範囲の中間点に等しい初期値を選択することは妥当であるかもしれない。しかしながら、マスタデバイス出力の上書きを含む、他のデバイス出力の上書きに関する問題を回避するために、開始点をわずかに増加させること、たとえば上記の例では遅延の初期値=15nsを使用することが有利である場合がある。これは、最も正の遅延設定と比較して、最も負の遅延設定に収束するのにわずかにより長い時間を要することを意味する(すなわち、-10nsに収束することは、+30nsよりも長くかかる)。最も保守的な設計手法では、他のデバイスから早期の値を上書きすることに対する最大の保護のための初期値として、最大の遅延が選択されるであろう。
図16には、遅延調整を実行する前にアルゴリズム1を複数の読出サンプルの使用に拡張する例が示されている。調整を実行する前の複数のサンプルの平均化とは別に、アルゴリズム1600は、図12の第1のアルゴリズムと同様であってもよい。例えば、ステップ1606,1608,1610,1612および1614は、それぞれステップ1204,1206,1208,1209および1210に対応する。いくつかの変更は、値をゼロに初期化し(ステップ1604)、バスからの過去の読出値に基づいてステップ1616および1618で合計を形成し、ステップ1622で行われた判断に基づいてバスからの読出をK回繰り返し、ステップ1624で最終遅延補正を形成することを含む。ステップ1620,1626,1628および1630は、それぞれ、図12の1216,1218,1220および1222のステップに対応してもよい。
第2、第3および第4のアルゴリズムは、同様に、遅延調整を実行する前に複数のサンプルの使用に拡張することができる。しかしながら、制御アルゴリズムがスレーブデバイス内に位置するとき、各読出動作と書込動作との間の遅延値を動的に変更するほうが、よりよい場合があり、なぜならば、スレーブデバイス自体が、バスからの単一ビットの読出に基づいて、デバイス内の複数のビットを変更することができるからである。したがって、更新動作は、必要とする帯域幅がより少なくなり、したがって潜在的により効率的である。別の実施形態では、スレーブデバイス内の絶対遅延値を更新する代わりに、マスタデバイスは、調整のために必要とされる帯域幅を減少させるように、現在の値に対する変更を発行することになる。
これらの方法に加えて、例えば、二分探索およびバイナリサーチを用いる方法を用いてもよい。しかしながら、スレーブデバイス出力データがマスタデバイス値および関連付けられる未知値と衝突し始めるほど負に遅延を調整する際の問題のため、これらの方法は、この状況を回避するために含まれるよう最大ステップサイズに対する何らかの制限を伴って使用されるべきであることが示唆される。
コンピュータシミュレーションを用いることにより、4つのアルゴリズムをより正確に比較することができる。シミュレーションは、アルゴリズムのための以下の具体的な設定に基づき:一般的なジッタレベルは、1.2ns(rms)、ガウスノイズであった。実用的な回路では、これは通常、スレーブデバイス内での受信および制御後0.3~1.5nsの範囲であろう。
第1のアルゴリズム(図12):ステップサイズは0.05nsに設定し、遅延調整精度は0.1nsに設定した。
第2のアルゴリズム(図13):ステップサイズは0.125nsおよび0.75nsに設定した。遅延調整精度は0.1nsに設定した。初期ステップ値は、より大きい方のステップサイズ(0.75ns)であった。
第3のアルゴリズム(図14):ステップサイズは0.125nsおよび0.75nsに設定した。遅延調整精度は0.1nsに設定した。マスタデバイスから読み戻されるレベルがN=8回の連続測定において変化しなかった場合、ステップサイズは0.75nsに設定された。8つの同じ値の測定が達成される前に何らかの変化があった場合、値はより低い値(0.05ns)に戻された。初期ステップ値は、より大きい方のステップサイズであった。
第4のアルゴリズム(図15):遅延サイズは、1/128nsと1nsとの間に設定した。遅延調整精度は、0.1nsまたは2.0nsに設定した(表1参照)。初期遅延ステップは0.75nsであった。遅延ステップ変更は、以前の遅延値がマスタデバイスによる現在の読出値と同じであった場合、1.125の係数によって変更された。マスタデバイスによって読み出された現在値と以前の値との間に差があった場合、遅延ステップサイズに0.875を乗じた。この1.125および0.875の乗算は、二進算術を使用する単純な加算(1+1/8)および(1-1/8)のいずれかとして実現され得ることに留意されたい。実際の遅延は現在の読出値に基づいて更新され、値が低い場合、最後の遅延値は遅延ステップ値だけ増分された。現在の読出値が高い場合、実際の遅延は、現在の遅延ステップ値だけ減分された。
Figure 2023545287000002
この実施形態では、誤差確率は10-12であり、インロック(in-lock)探索時間およびインロック時間ベースの変動は12回のシミュレーションに基づいた。遅延ジッタ0.1dtは遅延調整における出力分解能100psを意味し、2.0dtは遅延調整における出力分解能2.0nsを意味する。
図17は、1つ以上の実施形態による、スレーブデバイスの遅延を調整するために使用される例示的アルゴリズムまたはバスコマンドを示す。アルゴリズム1700は、マスタデバイスが応答すべきデバイスを選択するステップ1702で開始する。ステップ1704において、マスタデバイスは、スレーブデバイスに初期遅延値を設定してもよい。このステップは任意選択であることに留意されたい。スレーブデバイスは、すでに良好な遅延値に適応していてもよく、アルゴリズムは、単に軽微な調整のために実行してもよい。また、スレーブデバイスは、いかなる調整も必要としないであろう初期内部値を有してもよい。やはり、この場合においても、マスタデバイスは、スレーブデバイスの内部に初期値を設定する必要はないことになる。
ステップ1706において、マスタデバイスは、マスタデバイスの内部タイミングに基づいて、バスを既知の値にセットする。スレーブデバイスがバス上の値を変更する前に、マスタデバイスがステップ1706においてバスに送出する既知の値を変更する(たとえば、LとHとの間で交番する)ことによって、調整された遅延は、マスタデバイスとスレーブデバイスとの両方からの立ち下がりデータエッジと立ち上がりデータエッジとの両方に基づいてもよく、それによって、より正確な平均を形成する。
ステップ1708では、スレーブデバイスは、それ自身の内部タイミングに基づいて、異なる値をバスに書き戻すことによって応答する。ステップ1710において、マスタデバイスは、それ自身のタイミングに基づいてバス上の値を読み戻す。典型的には、この読出イベントは、スレーブデバイスからのデータが充分に整定したと思われる/タイムスロット前に生ずるであろう。ステップ1712において、マスタデバイスは、バスに読出値を書き戻す。これは、読出イベントと同じ行(例えば、タイムスロット3~14において、図4~図5に示されるタイミングで)または後続の行で起こり得る。代替として、マスタデバイスは、絶対遅延を制御するか、またはスレーブデバイス内の現在の遅延に対する変更を発行するであろう。
ステップ1714では、スレーブデバイスは、マスタデバイスによって書き戻された値に基づいて、それ自身の内部遅延を調整する。遅延の適応および調整は、(図12~図15にそれぞれ示されるように)4つのアルゴリズムに示されるように行われてもよい。
ステップ1716において、調整手順が完了しているかどうかの判断が行われる。これは、有限で既知の反復回数に基づいてもよく(例えば、各遅延調整コマンドは、32回の遅延調整を用いてもよい)、または遅延の収束に基づいてもよい(ほぼ等しい数の受け取られた論理0および1に基づいて、読み戻し値が0.50付近の平均に到達するか、またはしばらくの間、位置が変わらない)。ステップ数が有限でない場合、マスタデバイスまたはスレーブデバイスのどちらかが、アルゴリズムがいつ完了したかを伝えるようフィードバックを提供する必要があり、そうでなければ、ステップ1706からの調整を継続する。最後に、ステップ1718において、すべてのデバイスが適切に調整されているかどうかの判断が行われる。これが当てはまらない場合、ステップ1702に進む。アルゴリズムがいつ完了するかの判断は、現在のステップサイズ、使用される反復の数、または平均読出値が所与の間隔内、例えば0.4~0.6であり、特定の反復数に達したとき、または調整された遅延値が所与の反復数にわたって変化していないかどうかに基づくことができる。
他の実施形態では、マスタデバイスは、ステップ1712において、現在の遅延値に対する変更(例えば、変化なし、増加または減少)を発行することによって、スレーブデバイスの内部タイミングを調整する。
いくつかの実施形態では、2つのスレーブデバイスは、これらの2つのデバイス間の遅延を、マスタデバイスとスレーブデバイスとの間と同様に、調整してもよい。この場合、受信側スレーブデバイスが、現在のバス値の変化を読み出し、送信側スレーブデバイスのタイミングを、読出値を反映することによって、または他方のスレーブデバイスにおける実際の遅延を調整することによって、調整することになる。
いくつかの実施形態では、スレーブデバイスは、任意の他のデバイスからのいかなる相互作用も伴わずに、それ自身のタイミングを調整してもよく、この場合、タイミングは、受信された同期パターンと密接にアライメントされてもよいが、バス直径およびシステム内の他の遅延のための調整を含まないことになる。
図18は、1つ以上の実施形態による、2つのスレーブデバイス値を読み出すマスタデバイスの実施例を示す。ここでは、スレーブデバイスは、立ち下がりおよび立ち上がり遷移の両方で応答することになる。遅延の測定がスレーブデバイス内部の未知または未較正の時間ステップに基づく場合、これは、2つの設定間の数または遅延数を見出すことによって、所与の時間単位に必要とされる時間ステップの数を見出すために、使用されてもよい。この値を2で割ることによって、クロック周期の半分に等しい遅延ユニットの数を見つけることができる。さらに、この最終的な方法は、マスタデバイスが立ち上がりエッジ遅延と立ち下がりエッジ遅延との両方の測定値を得ることを可能にしてもよい。
本明細書で説明されるように、スレーブデバイスがバス値を変更し、マスタデバイスが、スレーブデバイスが最適な受信信頼性のためにそのバス書込タイミングを調整することができるように、その値を読み出し、次いで、反映するとき、システムタイミングトポロジは、本質的に、表2のケース1であり、図19のタイミング線1902によって識別されるとおりである。図19は、本開示の1つ以上の実施形態による、および図1のシステム100と同様の、共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを、デバイス内部およびバス自体上の遅延とともに、示す。これは、標準的なスレーブからマスタへの較正の場合である。
別のスレーブデバイススレーブ2が、スレーブ1によるバス状態の変化からそれが読み出した値を反映する場合、このスレーブ反映値は、本明細書で説明されるタイミング調整のための種々のプロセスを使用して、スレーブ1からスレーブ2への書き込みのタイミングを最適化するために使用されることができる。そのようなシステムタイミングトポロジは、本質的に表2のケース2であり、図20のタイミング線2002によって識別されるとおりである。
スレーブデバイスが、その書込時間をそれ自身の出力に適合させる場合、スレーブデバイスは、その内部タイミングから外部の観測される出力までの固有の遅延を補正し、したがって、その書込は、対応するマスタデバイス同期エッジとアライメントされる。これがそうであるのは、その内部読出論理が、マスタデバイス同期信号および自己生成される書込値または信号の両方に対して同じ遅延を認めるためである。したがって、この場合、スレーブデバイスのタイミングは、高価な同調/プログラミングを必要とすることなく、受信されたマスタデバイスタイミングと非常に正確にアライメントされることになる。そのようなシステムタイミングトポロジは、本質的に表2のケース3であり、図21のタイミング線2102によって識別されるとおりである。
ケース3では、スレーブ1デバイスがバスに書き込み、同時にバスから読み戻す。このプロセスは、スレーブ1の出力データがマスタデバイスによって提供される同期パターンとアライメントされるように、スレーブ1の書込タイミングを調整するために使用される。このプロセスは、バスデバイス間の任意の内部タイミング差を補正し、出力がマスタデバイスによって提供される(内部タイミング分割によって提供される実際または仮想の)タイミングエッジに完全にアライメントされることを確実にするために、使用されてもよい。複数のデバイスがスレーブ1の近くに位置する場合、すべてのそのようなデバイスに対して、同時に、デバイスのいかなる修正も伴わずに、書き込むことが可能であり、なぜならば、エッジがマスタデバイスタイミングとアライメントされることになり、他のデバイスが同じ時間基準を有するデータを受信することになるからである。表2のケース4はケース3と同様であるが、マスタデバイスに焦点を当てている。マスタ内部の受信タイミングが固定されたタイミングである場合、ケース2と同様の手順で送信および受信タイミングの差を補正して、例えば、自己試験や衝突試験のために完全なタイミングを得ることができる。様々な実施形態では、ケース4は、完全なシステムタイミング較正を完了するために必要な時間を節約/短縮するために、バスの起動時、スレーブデバイスがバスに取り付けられる前でも、実行されてもよい。マスタデバイスは、バスから読み出すための内部サンプリング点を調整するために、初期0-1同期パルスを使用してもよい。書込タイミングを調整し、読出ポイントを固定された状態に保つことにより、外部0-1イベントをマスタデバイスの読出ポイントとアライメントさせることが可能である。このようにして、微小なタイミング差をなくしてもよく、その結果、より速いバス動作速度を達成可能である。たとえば、マスタデバイスからの同期およびデータの両方がタイムシフトされてもよい。
図24Aは、本開示の1つ以上の実施形態による、バス120に接続され、書込タイミング調整モジュールまたは論理2406Aを含むバスデバイス(たとえば、マスタデバイス102)を示すブロック図であり、固有の書込遅延ΔTがバスデバイス内の送信機/出力ポート108に関連付けられ、固有の読出遅延ΔTがバスデバイス内の受信機/入力ポート110に関連付けられる。図24Aでは、マスタデバイス102は、ケース4に関して説明したように、固有の読出遅延ΔTを補償し、バス通信タイミングに関してマスタ書込イベント2406Bおよびマスタ読出イベント2406Cを適切にアライメントさせるために、書込タイミング調整モジュール2406Aを使用してマスタデバイス102の書込遅延を調整するよう構成されてもよい。様々な実施形態では、書込タイミング調整モジュール2406A、マスタ書込イベント2406B、および/またはマスタ読出イベント2406Cのうちの1つ以上は、図1に示すように、バス制御ユニット106によって、および/またはその中に実現されてもよい。同様のタイミング調整モジュールが、本明細書で説明されるスレーブデバイスのいずれか内に実現されてもよい。
様々な書込タイミング調整例を以下の表1に要約する。
Figure 2023545287000003
代替的に、または書込タイミング調整に加えて、読出タイミング調整が行われてもよい。読出タイミングの場合、スレーブデバイスまたはマスタデバイス内で受信イベントが発生する正確な時間は、対応する受信タイミングを補正することによって補正される。これらの場合、本明細書に記載される様々な処理と同様の処理を採用するが、タイミングの変化が正しい態様で起こることを確実にすることが重要である。
例えば、書込タイミング調整アルゴリズムを修正して、最後の値が変化(すなわち、適切な読出)を示した場合には、読出時間を減少させ(例えば、0および1の確率が約50%である点に到達する)、バス値の変化がなかった場合には、読出時間を増加させるであろうようにしてもよい。言い換えると、変化が常に読み出される場合、通常、書込位置が増加され、その場合、代わりに、読出位置が調整される場合、読出遅延は減少されるであろう(すなわち、反対の調整)。
表3のケース5では、マスタデバイスの読出時間は、スレーブ1によって提供される値に基づいて調整される。正確な読出イベントの内部遅延はマスタデバイスの内部で調整されるので、読出値をバスに反映して戻す必要はなく、なぜならば、マスタデバイスはすでに読出遅延調整のためにそれが必要とする情報を有するからである。この点において、この読出タイミング調整は、書込タイミング調整と比較して、帯域幅の半分しか必要としないことになる。したがって、先の記述では、調整ステップごとに2つの行を使用した(スレーブデバイスがバスに書き込み、次の行、マスタデバイスが、書き込まれた値を書き戻す)が、この読出調整を1つの行で実行することが可能である。
いくつかの実施形態では、表3のケース5およびケース6は、すべてのデバイスがそれらの読出遅延タイミングを同時に調整する単一の読出調整に組み合わされてもよい。これが可能であるのは、スレーブ1から読み出す取り付けられたデバイスが、それら自身の以前の読出値に基づいて、それら自身の読出タイミングを調整することができるからである。したがって、複数のデバイスが、手順を完了するための時間を増加させることなく、それらのタイミングを同時に調整することができる。唯一の実用的な制限は、バス上の最も低速なデバイスが総調整時間を決定することになることである。ケース6の場合、スレーブデバイススレーブ2の読出タイミングは、スレーブ1によってバスが変更される間に調整される。スレーブ2はバスから値を読み出し、この値を使用してその読出タイミングを調整する(すなわち、50%付近の0および1を達成しようとする)ので、スレーブ2がバスから読み出された値を書き戻す必要はない。図22は、読出タイミング較正と書込タイミング較正との間の差を示し、上の行では、各デバイスは、読出タイミングを較正するために同じデータ行内で書込および読出を行うことができ、下の行では、各デバイスは、書込タイミングを較正するために反映を必要とする。
ケース7の場合、マスタデバイスは、それ自身の送信タイミングと完全にアライメントするように、それ自身の受信タイミングを調整する。これは、マスタデバイス内部の遅延を補正するために、およびマスタデバイスがグループ書き込みの一部として使用されるために、使用されてもよく、グループのすべてのメンバは、それらの内部タイミングをマスタデバイスからの出力に調整している。このように、マスタデバイスは、完全な受信タイミングを得るためにクロック回復回路を必要としないことになる。様々な実施形態では、ケース7は、完全なシステムタイミング較正を完了するために必要な時間を節約/短縮するために、バスの起動時、スレーブデバイスがバスに取り付けられる前でも、実行されてもよい。マスタデバイスは、バスから読み出すための内部サンプリング点を調整するために、初期0-1同期パルスを使用してもよい。読出タイミングを調整し、書込時間を一定に保つことで、外部の0-1イベントをマスタの読出ポイントにアライメントさせることが可能である。これにより、微小なタイミング差をなくしてもよく、その結果、より速いバス動作速度を達成可能である。
図24Bは、バス120に接続され、読出タイミング調整モジュールまたはロジック2406Dを含むバスデバイス(例えば、マスタデバイス102)を示すブロック図であり、図24Aでケース4に関して説明した固有遅延に類似して、固有書込遅延ΔTがバスデバイス内の送信機/出力ポート108に関連付けられ、固有読出遅延ΔTがバスデバイス内の受信機/入力ポート110に関連付けられる。図24Bでは、マスタデバイス102は、ケース7に関して説明したように、固有の書込遅延ΔTを補償し、バス通信タイミングに関してマスタ書込イベント2406Bおよびマスタ読出イベント2406Cを適切にアライメントさせるために、読出タイミング調整モジュール2406Aを使用してマスタデバイス102の読出遅延を調整するよう構成されてもよい。様々な実施形態では、読出タイミング調整モジュール2406D、マスタ書込イベント2406B、および/またはマスタ読出イベント2406Cのうちの1つ以上は、図1に示すように、バス制御ユニット106によって、および/またはその中に実現されてもよい。同様のタイミング調整モジュールが、本明細書で説明されるスレーブデバイスのいずれか内に実現されてもよい。
ケース8では、スレーブデバイスは、マスタデバイス同期パルスとアライメントされるように、それ自身の受信タイミングを調整する。これは、典型的には、システムタイミングに必要でもなければ関連もせず、なぜならば、同期およびデータがすでにこの方向にアライメントされているからである(同期およびデータは等しく遅延される)。
Figure 2023545287000004
一般的なシステムタイミング調整は、以下のように進んでもよい。単一のスレーブ1が複数のデバイス(2~N)に書き込む一般的な場合について、第1に、スレーブ1の書込タイミングが、帯域幅を保存するためにマスタデバイスタイミングとアライメントするように最適化され(ケース3)、第2に、デバイス2~Nの読出タイミング(ケース5~6)が最適化される。単純な構成の場合、ケース1~2は、すべてのシナリオをカバーし、完全なアライメントを与えることになる。長いケーブル遅延を伴う場合、出力信号と戻り信号との間の衝突を回避するために、後のタイムスロットに書き込む必要があり得る。代替として、複数のデバイスと同時に通信するとき、より長いタイムスロットが使用されてもよい。反映値が内部である場合には、コマンドシーケンスに余分な行を挿入する必要はない。これは、適応プロセスをより高速にすることになる。
追加の実施形態では、一般的なシステムタイミング調整は、様々な異なる動作順序に従ってケース1、6、および7を実行することを含んでもよい。例えば、一実施形態では、システム100は、ケース7を実行してもよく、マスタデバイスは、それ自身の送信タイミングと完全にアライメントするようにそれ自身の受信または読出タイミングを調整することになる。いくつかの実施形態では、これは、システム100がケース1を実行するのと実質的に同時に、またはその前に実行されてもよく、スレーブデバイスは、バス値を変更し、マスタデバイスは、その値を読み出し、次いで、スレーブデバイスが、本明細書で説明されるように、そのバス書込または送信タイミングを調整することができるように、その値を反映する。様々な実施形態では、システム100は、次いで、すべての他のスレーブデバイス読出タイミングを調整するために、ケース6および/またはケース8を実行してもよい。いくつかのさらなる実施形態では、システム100は、ケース2および/またはケース3の実施形態を実行して、マスタデバイス読出/書込タイミング調整を全く必要とせずに、すべてのスレーブデバイス書込および読出タイミング(たとえば、送信および受信タイミング)を調整するか、またはマスタデバイス読出/書込タイミング調整を最小限に抑えてもよい(たとえば、マスタデバイスおよび複数のスレーブデバイスがそれぞれの読出/書込タイミングにすでに整定した後に新たなスレーブデバイスがバス通信に参加しようと試みるときにシステム100の動的再較正に必要とされる時間を最小限に抑えてもよい)。
より一般的には、ケース1~8のうちの任意の1つ以上を、システム100の実施形態によって任意の順序または組み合わせで実行して、本明細書で説明されるように、システム100のバス120によっておよび/またはそれを介してサポートされるバス接続されたデバイス間のバス通信のための動的書込および読出較正を提供してもよい。様々な実施形態では、そのようなタイミング調整は、バス120を介して通信可能に結合された各デバイス(たとえば、マスタまたはスレーブ)の達成可能な範囲内でタイミング較正を容易にするために(例えば、図4に示すような)適切なタイムスロットの識別および選択を含んでもよい。さらに、そのようなタイミング調整は、本明細書で説明するように、読出タイミングおよび/または書込タイミングを調整するように修正されてもよい、本明細書で識別されるプロセスおよび/またはアルゴリズムのいずれかを使用して実行されてもよい。
いくつかの実施形態では、バスのクロックレートが調整可能であることが望ましい場合がある。送信および受信に使用される回路の帯域幅、およびそれによって内部遅延が同じままである限り、新たなタイミング較正は必要とされない。一般的な原理は、完全な受信アイパターンを保証するために、較正中に1つのクロックエッジで調整し、通常動作のために次のクロックエッジで読み出すことである。内部遅延が同期/クロックレートにおける変化中にわずかに変化する場合、較正精度は低減されることになり、場合によっては、内部遅延の変化が大きすぎる場合、再較正が必要となり得る。そうでなければ、同じ較正値が使用されてもよい。例えば、図23は、本開示の1つ以上の実施形態による、2つの異なるクロックまたは同期レートを実現する共通バスに接続されたマスタデバイスおよび2つのスレーブデバイスを含むバスシステムの例示的な較正タイミングを、デバイス内およびバス自体上の遅延とともに、示す。
バスをネイティブパルス密度変調(PDM)モードで起動させることが可能である。これは、PDMとの後方互換性を保証する。いくつかの実施形態では、差動データを検出し、シングルエンドの標準PDMモード(クロック周波数の変化を除いて許可される直接プログラミングを伴わない)から差動モードに変更するよう構成された差動電圧検出アルゴリズムを含むことが可能である。同様に、インターフェースが差動モードで開始することが可能であり、シングルエンドの標準PDM信号が検出されると、インターフェースはシングルエンドのモードに変化する。そのような変化はまた、信号が特定の時間量にわたって特定のレベルに保たれるときにこれらの2つの動作モードの間で変化する特定の時定数の使用で、またはクロック線もしくはデータ線のデューティサイクル変調によって、起こり得る。
特定の実施形態では、あるシステムは、制御されたPDM(PDM+)システムで利用可能なものなどの、プログラミングを含む第3のシングルエンドのモードを含んでもよい。3つのモード(後方互換性PDM、プログラマブルPDM、および差動)間の変更は、クロック線およびデータ線のプログラミングによって起こってもよい。種々の実施形態では、差動動作モードが、低EMIのために使用されてもよく、後方互換性PDMモードが、汎用システムおよび/またはバス接続されたデバイスのためのバックアップモードがあることを確実にするために使用されてもよい。
いくつかの実施形態では、システム100は、タイミング較正を実行するために特別な同期ワードを使用するよう構成されてもよい。そのような特別な同期ワードが使用される場合、送信されたコマンドが選択された同期ワードと干渉しないように特別な注意が必要である。したがって、較正コマンドの実行中に、以下の応答が利用可能である:(1)試験値-未知の値であり、制御可能ではない;(2)反映された値-未知の値だが制御可能である(読み出されたものを反映する);(3)制御可能な任意選択の既知の値-この値は、特別な同期値の生成を回避するために、読出のシーケンスに挿入されてもよい。
一般に、既知の値(2)および制御可能な値(3)が一緒に使用されるときに同期ワードを生成しないことを確実にするように注意を払うべきである。値(3)が制御されるので、同期ワードの長さが少なくとも2ビットより長い限り、同期ワードが生成されないことを常に保証することができる。デバイスによるそれ自身からの特別な読出の場合、または読出遅延調整の場合、値(2)は、通常、送出されず、これは、値(3)を制御するときに考慮されるべきである。
適用可能な場合、本開示によって提供される様々な実施形態は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せを使用して実現されてもよい。また、適用可能な場合、本明細書に記載される様々なハードウェア構成要素および/または論理構成要素は、本開示の範囲から逸脱することなく、ソフトウェア、ハードウェア、および/またはその両方を備える複合構成要素に組み合わせられてもよい。適用可能な場合、本明細書に記載される様々なハードウェア構成要素および/または論理構成要素は、本開示の範囲から逸脱することなく、ソフトウェア、ハードウェア、またはその両方を備えるサブ構成要素に分離されてもよい。加えて、適用可能な場合、ソフトウェア構成要素はハードウェア構成要素として実現されてもよく、逆もまた同様であることが企図される。
前述の開示は、本開示を、開示された厳密な形態または特定の使用分野に限定することを意図するものではない。したがって、本開示に対する様々な代替実施形態および/または修正は、本明細書で明示的に説明されようと暗示されようと、本開示に照らして可能であることが企図される。このように本開示の実施形態を説明したが、当業者は、本開示の範囲から逸脱することなく、形態および詳細において変更を行うことができることを認識するであろう。したがって、本開示は、特許請求の範囲によってのみ限定される。

Claims (20)

  1. 複数のデバイス間の通信を容易にするようバスを制御することを含み、前記通信は、時間多重化されたクロックおよびデータプロトコルに少なくとも部分的に基づいて同期され、さらに、
    第1のデバイスが、第1の読出タイミング値を前記バスに書き込むことと、
    前記第1のデバイスが、前記バスに書き込まれた前記第1の読出タイミング値に関連付けられる第2の読出タイミング値を読み出すこととを含み、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、さらに、
    前記第1のデバイスに関連付けられる読出タイミングを、前記第1の読出タイミング値および前記第2の読出タイミング値に少なくとも部分的に基づいて判断し、前記第1のデバイスに関連付けられる前記読出タイミングは、前記第1のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの読出遅延を制御するよう構成される、方法。
  2. 前記方法はさらに、
    第2のデバイスが、第1の書込タイミング値を前記バスに書き込むことと、
    前記第1のデバイスが、前記バスに書き込まれた前記第1の書込タイミング値に関連付けられる第2の書込タイミング値を読み出すこととを含み、前記第1の書込タイミング値を書き込むことおよび前記第2の書込タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記方法はさらに、
    前記第1のデバイスが、前記第2の書込タイミング値に少なくとも部分的に基づいて、前記第2のデバイスに応答を書き込むことを含み、前記応答は、前記第2のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第2のデバイスの書込遅延を制御するよう構成される、請求項1に記載の方法。
  3. 前記方法はさらに、
    前記第2のデバイスが、第3の読出タイミング値を前記バスに書き込むことと、
    第3のデバイスが、前記バスに書き込まれた前記第3の読出タイミング値に関連付けられる第4の読出タイミング値を読み出すこととを含み、前記第3の読出タイミング値を書き込むことおよび前記第4の読出タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記方法はさらに、
    前記第3の読出タイミング値および前記第4の読出タイミング値に少なくとも部分的に基づいて、前記第3のデバイスに関連付けられる読出タイミングを判断することを含み、前記第3のデバイスに関連付けられる前記読出タイミングは、前記第2のデバイスから前記第3のデバイスへの前記バス上の通信を較正するために、前記第3のデバイスの読出遅延を制御するよう構成される、請求項2に記載の方法。
  4. 前記方法はさらに、
    前記第2のデバイスが、第3の読出タイミング値を前記バスに書き込むことと、
    前記第1のデバイスが、前記バスに書き込まれた前記第3の読出タイミング値に関連付けられる第4の読出タイミング値を読み出すこととを含み、前記第3の読出タイミング値を書き込むことおよび前記第4の読出タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記方法はさらに、
    前記第3の読出タイミング値および前記第4の読出タイミング値に少なくとも部分的に基づいて、前記第1のデバイスに関連付けられる読出タイミングを判断することを含み、前記第1のデバイスに関連付けられる前記読出タイミングは、前記第2のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの読出遅延を制御するよう構成される、請求項2に記載の方法。
  5. 前記方法はさらに、
    前記第1のデバイスまたは前記第2のデバイスが、第3の書込タイミング値を前記バスに書き込むことと、
    前記第2のデバイスが、前記バスに書き込まれた前記第3の書込タイミング値に関連付けられる第4の書込タイミング値を読み出すこととを含み、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、前記方法はさらに、
    前記第3の書込タイミング値および前記第4の書込タイミング値に少なくとも部分的に基づいて、前記第2のデバイスに関連付けられる書込タイミングを判断することを含み、前記第2のデバイスに関連付けられる前記書込タイミングは、前記第1のデバイスから前記バスに結合された他のデバイスへの前記バス上の通信を較正するために、前記第2のデバイスの書込遅延を制御するよう構成される、請求項2に記載の方法。
  6. 前記方法はさらに、
    初期補正中に第1の遅延ステップを使用して正しい書込遅延位置の推定を得るために第1の整定モードを提供することと、
    前記書込遅延の最終調整のためのより正確な書込遅延位置を得るために第2の整定モードを提供することとを含み、前記第2の整定モードは、前記第1の遅延ステップよりも小さい第2の遅延ステップを用い、前記第1の整定モードよりも遅く整定し、前記方法はさらに、
    複数の読出書込タイミング値に少なくとも部分的に基づいて、前記第1の整定モードと前記第2の整定モードとの間で切り替えることと、
    事前選択された読出回数にわたって前記第2の書込タイミング値に変化がない場合、前記第1の整定モードに切り替えることと、
    前記事前選択された読出回数にわたって第2の書込タイミング値に1つ以上の変化があった場合、前記第2の整定モードに切り替えることとを含む、請求項2に記載の方法。
  7. 前記方法はさらに、
    適応モードに複数の適応速度を提供することと、
    読み出される前記第2の書込タイミング値が以前の第2の書込タイミング値と等しいかどうかを判断し、前記適応速度を特定の上限まで選択的に増加させることと、
    読み出される前記第2の書込タイミング値が前記以前の第2の書込タイミング値と異なるかどうかを判断し、前記適応速度を特定の下限まで選択的に減少させることとを含む、請求項2に記載の方法。
  8. 前記方法はさらに、
    前記第1のデバイスが、前記バスに第1の書込タイミング値を書き込むことと、
    前記第1のデバイスが、前記バスに書き込まれた前記第1の書込タイミング値に関連付けられる第2の書込タイミング値を読み出すこととを含み、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、前記方法はさらに、
    前記第1のデバイスに関連付けられる書込タイミングを、前記第1の書込タイミング値および前記第2の書込タイミング値に少なくとも部分的に基づいて判断し、前記第1のデバイスに関連付けられる前記書込タイミングは、前記第1のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの書込遅延を制御するよう構成される、請求項1に記載の方法。
  9. 前記方法はさらに、
    前記バスから読み出された前記第2の読出タイミング値の平均を、0と1との間の確率を有するように調整することと、
    同じ値を読み戻すことを回避するよう、前記第1のデバイスの前記読出遅延を調整することとを含む、請求項1に記載の方法。
  10. システムであって、
    時間多重化されたクロックおよびデータプロトコルに少なくとも部分的に基づいて複数のデバイス間の同期された通信をサポートするよう構成されるバスに通信可能に結合された第1のデバイスを備え、前記第1のデバイスは、
    第1の読出タイミング値を前記バスに書き込むよう構成され、
    前記第1の読出タイミング値に関連付けられる第2の読出タイミング値を読み出すよう構成され、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、前記第1のデバイスはさらに、
    前記第1のデバイスに関連付けられる読出タイミングを、前記第1の読出タイミング値および前記第2の読出タイミング値に少なくとも部分的に基づいて判断するよう構成され、前記第1のデバイスに関連付けられる前記読出タイミングは、前記第1のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの読出遅延を制御するよう構成される、システム。
  11. 前記システムはさらに、
    前記バスに通信可能に結合された第2のデバイスを備え、前記第2のデバイスは、
    前記バスに第1の書込タイミング値を書き込むよう構成され、
    前記バスに書き込まれた前記第1の書込タイミング値に関連付けられる第2の書込タイミング値に少なくとも部分的に基づいて、前記第1のデバイスによって生成された応答を読み出すよう構成され、
    前記第2のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスによって生成された前記応答に少なくとも部分的に基づいて、前記第2のデバイスの書込遅延を制御するよう構成される、請求項10に記載のシステム。
  12. 前記バスに通信可能に結合された第3のデバイスをさらに備え、
    前記第2のデバイスは、第3の読出タイミング値を前記バスに書き込むよう構成され、前記第3のデバイスは、
    前記バスに書き込まれた前記第3の読出タイミング値に関連付けられる第4の読出タイミング値を読み出すよう構成され、前記第3の読出タイミング値を書き込むことおよび前記第4の読出タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記第3のデバイスはさらに、
    前記第3の読出タイミング値および前記第4の読出タイミング値に少なくとも部分的に基づいて、前記第3のデバイスに関連付けられる読出タイミングを判断するよう構成され、前記第3のデバイスに関連付けられる前記読出タイミングは、前記第2のデバイスから前記第3のデバイスへの前記バス上の通信を較正するために、前記第3のデバイスの読出遅延を制御するよう構成される、請求項11に記載のシステム。
  13. 前記第2のデバイスは、第3の読出タイミング値を前記バスに書き込むよう構成され、前記第1のデバイスは、
    前記バスに書き込まれた前記第3の読出タイミング値に関連付けられる第4の読出タイミング値を読み出すよう構成され、前記第3の読出タイミング値を書き込むことおよび前記第4の読出タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記第1のデバイスはさらに、
    前記第3の読出タイミング値および前記第4の読出タイミング値に少なくとも部分的に基づいて、前記第1のデバイスに関連付けられる読出タイミングを判断するよう構成され、前記第1のデバイスに関連付けられる前記読出タイミングは、前記第2のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの読出遅延を制御するよう構成される、請求項11に記載のシステム。
  14. 前記第2のデバイスは、
    第3の書込タイミング値を前記バスに書き込むよう構成され、
    前記バスに書き込まれた前記第3の書込タイミング値に関連付けられる第4の書込タイミング値を読み出すよう構成され、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、前記第2のデバイスはさらに、
    前記第3の書込タイミング値および前記第4の書込タイミング値に少なくとも部分的に基づいて、前記第2のデバイスに関連付けられる書込タイミングを判断するよう構成され、前記第2のデバイスに関連付けられる前記書込タイミングは、前記第1のデバイスから前記バスに結合された他のデバイスへの前記バス上の通信を較正するために、前記第2のデバイスの書込遅延を制御するよう構成される、請求項11に記載のシステム。
  15. 前記第1のデバイスは、
    前記第1のデバイスの前記読出遅延を推定するよう構成され、
    前記第1のデバイスによって読み出される前記第2の読出タイミング値の変動を引き起こすよう、前記第1のデバイスの前記読出遅延を調整するよう構成される、請求項10に記載のシステム。
  16. システムであって、
    時間多重化されたクロックおよびデータプロトコルに少なくとも部分的に基づいて複数のデバイス間の同期された通信をサポートするよう構成されるバスに通信可能に結合された第1のデバイスと、
    前記バスに通信可能に結合された第2のデバイスとを備え、前記第2のデバイスは、
    前記バスに第1の書込タイミング値を書き込むよう構成され、
    前記バスに書き込まれた前記第1の書込タイミング値に関連付けられる第2の書込タイミング値に少なくとも部分的に基づいて、前記第1のデバイスによって生成された応答を読み出すよう構成され、
    前記第2のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスによって生成された前記応答に少なくとも部分的に基づいて、前記第2のデバイスの書込遅延を制御するよう構成される、システム。
  17. 前記第1のデバイスは、
    第1の読出タイミング値を前記バスに書き込むよう構成され、
    前記第1の読出タイミング値に関連付けられる第2の読出タイミング値を読み出すよう構成され、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、前記第1のデバイスはさらに、
    前記第1の読出タイミング値および前記第2の読出タイミング値に少なくとも部分的に基づいて、前記第1のデバイスに関連付けられる読出タイミングを判断するよう構成され、
    第3の書込タイミング値を前記バスに書き込むよう構成され、
    前記第3の読出タイミング値に関連付けられる第4の書込タイミング値を読み出すよう構成され、前記第3の書込値を書き込むことおよび前記第4の書込値を読み出すことは、前記バスの同じデータ行内で生じ、前記第1のデバイスはさらに、
    前記第1の読出タイミング値および前記第2の読出タイミング値に少なくとも部分的に基づいて、前記第1のデバイスに関連付けられる書込タイミングを判断し、前記第1のデバイスに関連付けられる前記読出タイミングおよび前記書込タイミングは、前記第1のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの読出遅延および書込遅延を制御するよう構成される、請求項16に記載のシステム。
  18. 前記バスに通信可能に結合された第3のデバイスをさらに備え、
    前記第2のデバイスは、第1の読出タイミング値を前記バスに書き込むよう構成され、前記第3のデバイスは、
    前記バスに書き込まれた前記第1の読出タイミング値に関連付けられる第2の読出タイミング値を読み出すよう構成され、前記第1の読出タイミング値を書き込むことおよび前記第2の読出タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記第3のデバイスはさらに、
    前記第1の読出タイミング値および前記第2の読出タイミング値に少なくとも部分的に基づいて、前記第3のデバイスに関連付けられる読出タイミングを判断するよう構成され、前記第3のデバイスに関連付けられる前記読出タイミングは、前記第2のデバイスから前記第3のデバイスへの前記バス上の通信を較正するために、前記第3のデバイスの読出遅延を制御するよう構成される、請求項16に記載のシステム。
  19. 前記第2のデバイスは、第1の読出タイミング値を前記バスに書き込むよう構成され、前記第1のデバイスは、
    前記バスに書き込まれた前記第1の読出タイミング値に関連付けられる第3の読出タイミング値を読み出すよう構成され、前記第1の読出タイミング値を書き込むことおよび前記第2の読出タイミング値を読み出すことは、前記バスの同じデータ行内で生じ、前記第1のデバイスはさらに、
    前記第1のデバイスに関連付けられる読出タイミングを、前記第1の読出タイミング値および前記第2の読出タイミング値に少なくとも部分的に基づいて判断するよう構成され、前記第1のデバイスに関連付けられる前記読出タイミングは、前記第2のデバイスから前記第1のデバイスへの前記バス上の通信を較正するために、前記第1のデバイスの読出遅延を制御するよう構成される、請求項16に記載のシステム。
  20. 前記第2のデバイスは、
    第3の書込タイミング値を前記バスに書き込むよう構成され、
    前記バスに書き込まれた前記第3の書込タイミング値に関連付けられる第4の書込タイミング値を読み出すよう構成され、前記書き込むことおよび前記読み出すことは、前記バスの同じデータ行内で生じ、前記第2のデバイスはさらに、
    前記第3の書込タイミング値および前記第4の書込タイミング値に少なくとも部分的に基づいて、前記第2のデバイスに関連付けられる書込タイミングを判断するよう構成され、前記第2のデバイスに関連付けられる前記書込タイミングは、前記第1のデバイスから前記バスに結合された他のデバイスへの前記バス上の通信を較正するために、前記第2のデバイスの書込遅延を制御するよう構成される、請求項16に記載のシステム。
JP2023521920A 2020-10-12 2021-10-12 動的タイミング較正システムおよび方法 Pending JP2023545287A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/068,766 US11657010B2 (en) 2018-08-22 2020-10-12 Dynamic timing calibration systems and methods
US17/068,766 2020-10-12
PCT/US2021/054552 WO2022081559A1 (en) 2020-10-12 2021-10-12 Dynamic timing calibration systems and methods

Publications (2)

Publication Number Publication Date
JP2023545287A true JP2023545287A (ja) 2023-10-27
JPWO2022081559A5 JPWO2022081559A5 (ja) 2024-02-22

Family

ID=78516963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023521920A Pending JP2023545287A (ja) 2020-10-12 2021-10-12 動的タイミング較正システムおよび方法

Country Status (5)

Country Link
EP (1) EP4226250A1 (ja)
JP (1) JP2023545287A (ja)
KR (1) KR20230084554A (ja)
CN (1) CN116530059A (ja)
WO (1) WO2022081559A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742798A (en) * 1996-08-09 1998-04-21 International Business Machines Corporation Compensation of chip to chip clock skew
KR102013617B1 (ko) * 2015-11-18 2019-08-23 한국전자통신연구원 시간 동기화 방법 및 그 장치
US11294837B2 (en) * 2018-08-22 2022-04-05 Google Llc Dynamic delay calibration of devices attached to bus systems utilizing time-multiplexed clock and data lines

Also Published As

Publication number Publication date
KR20230084554A (ko) 2023-06-13
WO2022081559A1 (en) 2022-04-21
EP4226250A1 (en) 2023-08-16
CN116530059A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US11294837B2 (en) Dynamic delay calibration of devices attached to bus systems utilizing time-multiplexed clock and data lines
US8824224B2 (en) Frequency-agile strobe window generation
EP2189986B1 (en) Delay adjustment device, semiconductor device and delay adjustment method
US6978403B2 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
US9160466B2 (en) Periodic calibration for communication channels by drift tracking
US20240202150A1 (en) Dynamic timing calibration systems and methods
US8073090B2 (en) Synchronous de-skew with programmable latency for multi-lane high speed serial interface
JP5174493B2 (ja) 半導体集積回路装置及びアイ開口マージン評価方法
TWI737459B (zh) 可精確地調整工作週期與相位失真之時脈信號的校準電路與其相關的校準方法
US6581017B2 (en) System and method for minimizing delay variation in double data rate strobes
KR100971428B1 (ko) 듀티 보정 회로
TWI741027B (zh) 半導體裝置
US8009492B2 (en) Circuit for generating data strobe signal and method
US9036436B2 (en) Supporting calibration for sub-rate operation in clocked memory systems
KR20110131765A (ko) 위상 보정 회로 및 이를 이용한 데이터 정렬 회로
CN111312307A (zh) 存储器控制电路及校正方法
JP2023545287A (ja) 動的タイミング較正システムおよび方法
JP5375330B2 (ja) タイミング調整回路、タイミング調整方法及び補正値算出方法
US11936379B2 (en) Digital delay line calibration with duty cycle correction for high bandwidth memory interface
US11855652B2 (en) Calibrating a multiplexer of an integrated circuit
TWI830552B (zh) 校準方法、電路、存儲介質、時鐘恢復電路及電子裝置
CN114513293A (zh) 一种秒脉冲延迟补偿系统及方法
WO2010059331A1 (en) Jitter correction in high speed data link
JP2004234154A (ja) クロック補整回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240214