(57)【特許請求の範囲】
【請求項１】
直列接続された半導体デバイスの構成を同期させるための方法であって、
前記システムを初期化するステップと、
直列接続された半導体デバイスの構成内の第１のデバイスへ第１のクロック信号を提供するステップと、
前記構成内の第２のデバイスから第２のクロック信号を受信するステップであって、前記第２のクロック信号は、前記構成内の前記デバイスのうちの少なくとも１つの中のクロック同期装置による処理を受けたバージョンの前記第１のクロック信号に一致する、ステップと、
前記第１および第２のクロック信号間の位相差を検出するために、前記第１および第２のクロック信号を処理するステップと、
前記位相差に基づいて、前記構成内の前記デバイスのうちの少なくとも１つの中の前記クロック同期装置に調整を指令するステップと
を含む方法。
【請求項２】
直列接続された半導体デバイスの構成を同期させるための方法であって、
前記初期化ステップは、固定成分ｔFを用いて、各スレーブデバイスの対応する外部調整可能なフィードバック遅延ユニット（ＥＡ−ＦＤＵ）を初期ロックするステップをさらに含み、前記固定成分ｔFは、前記スレーブデバイス中の伝播遅延の推定値に一致させることができる請求項１に記載の方法。
【請求項３】
直列接続された半導体デバイスの構成を同期させるための方法であって、
前記処理するステップは、マスタ入力クロック信号とマスタ出力クロック信号との間の前記位相差を取得するステップをさらに含む請求項１に記載の方法。
【請求項４】
直列接続された半導体デバイスの構成を同期させるための方法であって、
前記処理するステップでは、前記マスタ入力クロック信号と前記マスタ出力クロック信号との間の位相差を事前設定された許容値と比較し、前記位相差が許容される場合、前記処理を終了する請求項３に記載の方法。
【請求項５】
直列接続された半導体デバイスの構成を同期させるための方法であって、
許容されない位相シフトが１８０度より大きいか、または小さいかを判定するステップをさらに含む請求項４に記載の方法。
【請求項６】
直列接続された半導体デバイスの構成を同期させるための方法であって、
前記指令するステップでは、前記位相シフトが１８０度よりも小さい場合、遅延を増加させ、前記位相シフトが１８０度よりも大きい場合、遅延を低減させる請求項５に記載の方法。
【請求項７】
直列接続された半導体デバイスの構成を同期させるための方法であって、
前記指令するステップは、Ｗｒｉｔｅ ＥＡ−ＦＤＵコマンドを発行するステップを含み、
前記Ｗｒｉｔｅ ＥＡ−ＦＤＵコマンドは、各スレーブデバイスに備えられる外部調節可能なフィードバック遅延(ＥＡ−ＦＤ)レジスタに、所望の遅延を指定するビットパターンを書き込む命令である請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2007年3月12日出願の先の米国仮特許出願第60/894,246号の利益を主張する。同出願の開示の全体が、参照により明示的に組み込まれる。
【０００２】
本発明は、一般に半導体デバイスに関するものであり、より詳細には、そのようなデバイスの直列接続された構成に沿って伝播されるクロック信号を同期させる方法および装置に関するものである。
【背景技術】
【０００３】
コンピュータベースのシステムは、通常、たとえばメモリなどの半導体デバイスを含む。これらの半導体デバイスは、制御装置によって制御される。制御装置は、コンピュータの中央演算処理装置(CPU)の一部を形成することができ、またはCPUから分離することができる。制御装置は、半導体デバイスと情報を通信するインターフェースを有する。複数の半導体デバイスとの通信が望まれるとき、様々な構成が可能である。特に、直列接続された半導体デバイスの構成は、半導体デバイスを互いに、インターフェースを介してポイントツーポイント方式で接続することによって、形成することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国仮特許出願第60/894,246号明細書
【特許文献２】米国特許出願第60/722,368号明細書
【特許文献３】米国特許出願第11/324,023号明細書
【特許文献４】米国特許出願第11/496,278号明細書
【特許文献５】米国特許出願第11/521,734号明細書
【特許文献６】米国特許出願第11/606,407号明細書
【特許文献７】米国特許出願第11/771,023号明細書
【特許文献８】米国特許出願第11/771,241号明細書
【特許文献９】米国仮特許出願第60/868,773号明細書
【特許文献１０】米国仮特許出願第60/890,935号明細書
【特許文献１１】米国仮特許出願第60/787,710号明細書
【特許文献１２】米国仮特許出願第60/802,645号明細書
【非特許文献】
【０００５】
【非特許文献１】「Low-Jitter Process-Independent DLL and PLL Based on Self-Biased Techniques」John G. Maneatis著、IEEE Journal of Solid-State Circuits、Vol. 31、No. 11、1723ページ、1996年11月
【発明の概要】
【課題を解決するための手段】
【０００６】
第1の広い態様によれば、本発明は、直列接続されたデバイスの構成内で使用するための半導体デバイスを提供しようとする。この半導体デバイスは、構成内の前のデバイスから発信されたクロック信号を受け取るための入力と、構成内の後続のデバイス宛の同期クロック信号を供給するための出力と、受け取ったクロック信号および同期クロック信号の以前のバージョンを処理することによって、同期クロック信号を生成するように構成されたクロック同期装置と、同期クロック信号の以前のバージョンを処理する際にクロック同期装置によって使用されるパラメータを調整するように構成された制御装置とを備える。
【０００７】
第2の広い態様によれば、本発明は、直列接続されたデバイスの構成内の前のデバイスから発信されたクロック信号を受け取るステップと、受け取ったクロック信号および同期クロック信号の以前のバージョンを処理することによって、構成内の後続のデバイス宛の同期クロック信号を生成するステップと、同期クロック信号の以前のバージョンを処理する際にクロック同期装置によって使用されるパラメータを調整するステップと、同期クロック信号を出力するステップとを含む方法を提供しようとする。
【０００８】
第3の広い態様によれば、本発明は、直列接続された半導体デバイスの構成と、構成内のデバイスのうちの第1のデバイスへ伝送され、構成内のデバイスのうちの他のデバイスを通って直列に伝播され、構成内のデバイスのうちの最後のデバイスによって制御装置へ戻されるクロック信号を生成するように構成された制御装置とを備え、構成内のデバイスのそれぞれで対応するバージョンのクロック信号が、そのデバイスの動作を制御する、システムを提供しようとする。構成内のデバイスのうちの少なくとも1つは、構成内のデバイスのうちの後続のデバイスへ分配し、または制御装置へ戻すために、対応するバージョンのクロック信号を処理するように構成された、対応するクロック同期装置を備える。制御装置はさらに、構成内のデバイスのうちの第1のデバイスへ伝送されるクロック信号および構成内のデバイスのうちの最後のデバイスによって戻されるクロック信号の処理に基づいて、少なくとも1つのクロック同期装置のパラメータを調整するように構成される。
【０００９】
第4の広い態様によれば、本発明は、直列接続された半導体デバイスの構成内の第1のデバイスへ第1のクロック信号を供給するステップと、構成内の第2のデバイスから第2のクロック信号を受け取るステップであって、この第2のクロック信号が、構成内のデバイスのうちの少なくとも1つ内のクロック同期装置による処理を受けたバージョンの第1のクロック信号に一致する、ステップと、第1および第2のクロック信号を処理して、第1および第2のクロック信号間の位相差を検出するステップと、この位相差に基づいて、構成内のデバイスのうちの少なくとも1つ内のクロック同期装置に調整を指令するステップとを含む方法を提供しようとする。
【００１０】
第5の広い態様によれば、本発明は、直列接続された半導体デバイスの構成に対する制御装置を提供しようとする。この制御装置は、構成内の第1のデバイスへ第1のクロック信号を供給するように構成された出力と、構成内の第2のデバイスから第2のクロック信号を受け取るように構成された入力であって、この第2のクロック信号が、構成内のデバイスのうちの少なくとも1つ内のクロック同期装置による処理を受けたバージョンの第1のクロック信号に一致する、入力と、第1および第2のクロック信号を処理して、第1および第2のクロック信号間の位相差を検出する検出器と、この検出器によって検出された位相差に基づいて、構成内のデバイスのうちの少なくとも1つ内のクロック同期装置に調整を指令するように構成された同期制御装置とを備える。
【００１１】
本発明の上記その他の態様および特徴は、本発明の特定の実施形態についての以下の説明を添付の図面と併せて検討すれば、当業者にはここで明らかになる。
【００１２】
本発明の実施形態について、例示のみを目的として、添付の図を参照して次に説明する。
【図面の簡単な説明】
【００１３】
【図１】システム制御装置と連通する直列接続された半導体デバイスの構成を含む、本発明の一実施形態によるシステムを示すブロック図である。
【図２Ａ】本発明の限定されない例示的な実施形態による、図1のデバイスのうちの1つの細部を示すブロック図である。
【図２Ｂ】本発明の限定されない例示的な実施形態による、調整可能な遅延ユニットおよび外部調整可能なフィードバック遅延ユニット(EA-FDU)を含む、図1に示すデバイスのうちの1つのさらなる細部を示すブロック図である。
【図３Ａ】EA-FDUによって加えられる遅延の固定成分を考慮した、図1に示すデバイスのうちの1つ内の特定の信号の進行を示すタイミング図である。
【図３Ｂ】図3A内の信号と同じ信号の進行を示すが、EA-FDUによって加えられる遅延の固定成分と可変成分の両方を考慮したタイミング図である。
【図４Ａ】システム制御装置が、特にそのデバイスを標的としかつEA-FDUによって加えられる遅延に影響を与える情報を運ぶ書込みコマンドを発行するシナリオで、図1に示すデバイスのうちの1つ内の特定の信号の進行を示すタイミング図である。
【図４Ｂ】図4A内の信号と同じ信号の進行を示すが、システム制御装置によってコマンドが同報通信されるシナリオのタイミング図である。
【図５】図1の構成内の隣接するデバイス間の相互接続の細部を示すブロック図である。
【図６】本発明の限定されない例示的な実施形態による、図1のシステム制御装置によって実行される同期処理のステップを示す流れ図である。
【図７】デバイス内にクロック同期装置がない場合に図5のデバイス間で交換される特定の信号の進行を示すタイミング図である。
【図８】本発明の限定されない例示的な実施形態による、各デバイス内にクロック同期装置が提供されるときに図5のデバイス間で交換される特定の信号の進行を示すタイミング図である。
【図９】システム制御装置が、そのデバイスを標的としかつEA-FDUによって加えられる遅延に関する情報を要求する読出しコマンドを発行するシナリオで、図1に示すデバイスのうちの1つ内の特定の信号の進行を示すタイミング図である。
【図１０】出力駆動強度の調整を提供する、本発明の別の限定されない例示的な実施形態による、図1のデバイスのうちの1つの一例の細部を示すブロック図である。
【図１１Ａ】システム制御装置が、特にそのデバイスを標的としかつ出力駆動強度を調整するための情報を運ぶ書込みコマンドを発行するシナリオで、図1に示すデバイスのうちの1つ内の特定の信号の進行を示すタイミング図である。
【図１１Ｂ】図11A内の信号と同じ信号の進行を示すが、システム制御装置によってコマンドが同報通信されるシナリオのタイミング図である。
【図１２】システム制御装置が、そのデバイスを標的としかつ出力駆動強度に関する情報を要求する読出しコマンドを発行するシナリオで、図1に示すデバイスのうちの1つ内の特定の信号の進行を示すタイミング図である。
【図１３】電圧制御発振器およびEA-FDUを含む、図1に示すデバイスのうちの1つのさらなる細部を示すブロック図である。
【発明を実施するための形態】
【００１４】
本明細書の記載および図面は、本発明の特定の実施形態についての説明のみを目的とし、理解の助けであることを明白に理解されたい。本明細書の記載および図面は、本発明の制限を規定するものではない。
【００１５】
本発明の実施形態の以下の詳細な説明では、本明細書の一部を形成する添付の図面を参照し、添付の図面は、本発明を実施できる方法を説明する特定の実施形態を示す。これらの実施形態について、当業者が本発明を実施できるように十分詳細に説明するが、他の実施形態も利用できること、ならびに本発明の範囲から逸脱することなく、論理上、電気上その他の変更を加えることができることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって規定される。
【００１６】
一般に、本発明は、直列接続された半導体デバイスの構成、ならびに構成内のデバイスと通信する装置および方法に関する。「直列接続された半導体デバイスの構成」とは、構成内の半導体デバイスがインターフェースを介してポイントツーポイント形式で接続されることを意味する。たとえば、構成内の2つの隣接するデバイスは、一方のデバイスの出力と他方のデバイスの入力によって相互接続される。直列接続された半導体デバイスの構成の例は、以下の米国特許出願に提供されている。これらの出願の内容をすべて、参照により本明細書に組み込む。
-2005年9月30日出願の第60/722,368号明細書
-2005年12月30日出願の第11/324,023号明細書
-2006年7月31日出願の第11/496,278号明細書
-2006年9月15日出願の第11/521,734号明細書
-2006年11月29日出願の第11/606,407号明細書
-2007年6月29日出願の第11/771,023号明細書
-2007年6月29日出願の第11/771,241号明細書
【００１７】
本明細書に企図される半導体デバイスは、半導体集積回路(IC)デバイスとすることができ、たとえば、メモリデバイス、中央演算処理装置、グラフィックス処理装置、表示制御装置IC、ディスクドライブIC、およびソリッドステートドライブなどである。メモリデバイスに関する限り、これらのデバイスは、いくつかの限定されない可能性を挙げると、NAND型フラッシュ電気的消去可能なプログラム可能読出し専用メモリ(EEPROM)、NOR型フラッシュEEPROM、AND型フラッシュEEPROM、DiNOR型フラッシュEEPROM、シリアルフラッシュEEPROM、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、読出し専用メモリ(ROM)、電気的プログラム可能読出し専用メモリ(EPROM)、強誘電体ランダムアクセスメモリ(FeRAMまたはFRAM（登録商標）)、磁気抵抗ランダムアクセスメモリ(MRAM)、相変化ランダムアクセスメモリ(PRAMまたはPCRAM)などのタイプのものとすることができる。
【００１８】
本明細書に企図される半導体デバイスの例には、1つまたは複数の入力ポートで受け取られ、クロック信号の挙動に依存する時点でサンプリングされる信号に応答して動作を実行するデバイスが含まれる。手法の1つは、システム制御装置から共用の信号線に沿って共通のクロック信号を供給することである。この手法は、「マルチドロップ」クロック分配方式として知られている。しかし、共用の信号線に沿ってクロック信号が進む経路は、デバイスごとにわずかに異なり、特に高い動作周波数では、クロックスキューを発生させる。さらに、共用の信号線は、複数のデバイスの負荷を支持するのに十分な電力をもたなければならない。したがって、マルチドロップクロック分配方式の使用は、直列接続されたデバイスの数、およびこれらのデバイスの動作周波数が増大するにつれ、理想的な選択肢ではなくなる。
【００１９】
クロック分配の別の手法は、たとえば2006年12月6日出願の米国仮特許出願第60/868,773号および2007年2月21日出願の米国仮特許出願第60/890,935号に記載のように、構成内の1つのデバイスからそれに隣接するデバイスへクロック信号を伝播するために、各デバイス内でDLL(遅延ロックループ)またはPLL(位相ロックループ)回路ブロックを使用することである。これら出願の開示の全体を、参照により本明細書に組み込む。しかし、直列接続されたデバイスの数が増大するにつれて、チップ対チップの配線負荷などの要因により、隣接するデバイス間に寄生遅延が蓄積する。したがって、構成内の最後のデバイスによってクロックアウトされる(かつシステム制御装置によって再びクロックインされる)信号は、構成内の第1のデバイスを駆動するためにシステム制御装置によって使用されるクロック信号に対して、位相が外れていることがある。この位相不整合は、システム制御装置内で実施されるDLLまたはPLLによって回復できないほど深刻になることがある。
【００２０】
したがって、半導体デバイスを直列に接続するための既存の手法は、このように接続できるデバイスの総数および/またはこれらのデバイスの動作周波数に、過度に限定的な上限を課す可能性があることが理解される。このことは、直列接続されたデバイスの構成がそれらの並列の相当物と競争する能力を制限することがある。したがって、当業界では、直列接続された半導体デバイスの構成内でデバイスからデバイスへ伝播されるクロック信号の同期を改善することが必要とされる。
【００２１】
図1は、本発明の限定されない一実施形態によるシステムを示す。図1を参照すると、システム制御装置102は、直列に接続されたN個のデバイスからなる構成と通信する。図示の実施形態では、この構成は、「第1の」半導体デバイス104-0〜中間の半導体デバイス104-j-1、別の中間の半導体デバイス104-j、さらなる中間の半導体デバイス104-j+1〜「最後の」半導体デバイス104-N-1を含む。ただし、Nは整数であり、1≦j≦N-2である。構成内の半導体デバイス104-0〜N-1の数は、特に制限されないことを理解されたい。
【００２２】
半導体デバイス104-0〜N-1は、たとえば、メモリデバイスなどの半導体デバイスとすることができる。半導体デバイス104-0〜N-1がメモリデバイスである場合、システム制御装置102は、メモリ制御装置として実施される。システム制御装置102はそれ自体、半導体デバイスとすることができることを理解されたい。
【００２３】
図1に示すシステムでは、初期化手順中、構成の半導体デバイスには、システム制御装置102によってデバイスアドレス(またはデバイス識別子)が割り当てられる。たとえば、低い方から高い方へ連続する数字からなるデバイスアドレスが生成され、半導体デバイス104-0〜104-N-1に割り当てられる。半導体デバイス104-0〜104-N-1はそれぞれ、独自のアドレスレジスタ(図示せず)を有し、このアドレスレジスタが、割り当てられたデバイスアドレスを保持する。
【００２４】
デバイスアドレスが半導体デバイス104-0〜104-N-1に割り当てられた後、構成のデバイスの動作を制御するために、システム制御装置102は、デバイスのうちの第1の半導体デバイス104-0に、アクセスコマンドおよび他の情報を送る。そのような動作には、たとえば、デバイスアドレス認識およびデータ処理が含まれる。一般的に、データ処理の一例は、各デバイス内に含まれるメモリ(図示せず)にアクセスすることである。たとえば、アクセスコマンドが書込みコマンドである場合、提供されたデータは、デバイスアドレスに従って、標的(または宛先)デバイスのメモリ内に書き込まれる。アクセスコマンドが読出しコマンドである場合、メモリのデータは、メモリアドレスに従って読み出され、読み出されたデータは、別のデバイスへ伝送され、かつシステム制御装置102へ転送される。デバイスアドレス割当て、デバイスアドレス認識、およびデータアクセスの例は、以下の米国特許出願に記載されている。これらの出願の内容をすべて、参照により本明細書に組み込む。
-2006年3月28日出願の米国仮特許出願第60/787,710号明細書
-2006年5月23日出願の米国仮特許出願第60/802,645号明細書
-2006年12月6日出願の米国仮特許出願第60/868,773号明細書
【００２５】
図1のシステムでは、半導体デバイス104-0〜N-1はすべて、同様に構成される。デバイス104-0〜N-1の挙動は、マスタデバイス102によってこれらのデバイスに供給されるクロック(図示せず)によって同期される。たとえば、クロックは、後に説明するように、共通クロック方式またはクロック転送方式で、供給することができる。
【００２６】
図2Aは、図1のシステムの細部を示す。図1および2Aを参照すると、システム制御装置102(以下、「マスタデバイス」と呼ぶ)は、半導体デバイス104-j(以下、「スレーブデバイス」と呼ぶ)と連通する。スレーブデバイス104-jがメモリデバイスである場合、マスタデバイス102は、メモリ制御装置として実施することができる。
【００２７】
スレーブデバイス104-jは、スレーブ制御装置106と、メモリアレイ108と、クロック同期装置110と、複数のポートを備えるインターフェースとを含む。後により詳細に説明するように、スレーブ制御装置106は、信号がインターフェースの入力ポートを介して到達したのに応答して、メモリアレイ108にアクセスして様々な制御および処理機能を実行し、かつインターフェースの出力ポートを介して出力信号を供給する。スレーブ制御装置106はまた、クロック同期装置110へ制御信号SCTRLを供給する。制御信号SCTRLは、マスタデバイス102からスレーブデバイス104-jのインターフェースの入力ポートを介して受け取ったコマンドに応答して生成される。
【００２８】
スレーブデバイス104-jのインターフェースは、直列入力ポート(以下、「SIP-jポート」)および直列出力ポート(以下、「SOP-jポート」)を含む。SIP-jポートは、入力情報信号SSIP-jによって運ばれる情報(たとえば、コマンド、アドレス、およびデータ情報)をスレーブデバイス104-jへ転送するために使用される。この情報の一部を、スレーブ制御装置106宛とすることができ、また一部をメモリアレイ108宛とすることができる。SOP-jポートは、スレーブデバイス104-jからの情報(たとえば、コマンド、アドレス、およびデータ情報)を出力情報信号SSOP-jにのせて転送または中継するために使用される。この情報の一部は、場合によっては、メモリアレイ108から発生したものである。SIP-jおよびSOP-jは、単一ビット幅またはマルチビット幅のポートとすることができることを理解されたい。すなわち、SIP-jおよびSOP-jポートはそれぞれ、1本、2本、4本、8本、または任意の他の考えられる数の信号線を有することができる。
【００２９】
さらに、スレーブデバイス104-jのインターフェースは、入力ポートイネーブル入力ポート(以下、「IPE-jポート」)および出力ポートイネーブル入力ポート(以下、「OPE-jポート」)を含む。IPE-jポートは、入力ポートイネーブル信号SIPE-jを受け取る。入力ポートイネーブル信号SIPE-jは、入力ポートイネーブル信号SIPE-jがアサートされたときに、SIP-jポートをイネーブルして、SIP-jポートを介してスレーブデバイス104-jに情報を入力するように、スレーブデバイス104-jによって使用される。同様に、OPE-jポートは、出力ポートイネーブル信号SOPE-jを受け取る。出力ポートイネーブル信号SOPE-jは、出力ポートイネーブル信号SOPE-jがアサートされたときに、SOP-jポートをイネーブルして、SOP-jポートを介してスレーブデバイス104-jから情報を出力するように、スレーブデバイス104-jによって使用される。
【００３０】
さらに、スレーブデバイス104-jのインターフェースは、入力ポートイネーブルエコー出力ポート(以下、「IPEQ-jポート」)および出力ポートイネーブルエコー出力ポート(以下、「OPEQ-jポート」)を含む。IPEQ-jおよびOPEQ-jポートは、スレーブデバイス104-jから、それぞれ信号SIPEQ-jおよびSOPEQ-jを出力する。信号SIPEQ-jおよびSOPEQ-jは、それぞれ入力ポートイネーブル信号SIPE-jおよび出力ポートイネーブル信号SOPE-jの伝播されたバージョンである。
【００３１】
さらに、スレーブデバイス104-jのインターフェースは、クロック入力ポート(以下、「RCK-jポート」)を含む。RCK-jポートは、入力クロック信号SRCK-jを受け取る。入力クロック信号SRCK-jは、SIP-jポート(1つまたは複数の信号線からなる幅を有することができる)に存在する信号の、スレーブデバイス104-j内部のレジスタへのラッチ、ならびにスレーブデバイス104-j内部のレジスタからSOP-jポートへの信号のラッチを制御するために使用される。入力クロック信号SRCK-jはまた、IPE-jおよびOPE-jポートに存在する信号の、スレーブデバイス104-j内部のレジスタへのラッチ、ならびにそれぞれIPEQ-jおよびOPEQ-jポートへのラッチを制御するために使用される。
【００３２】
さらに、スレーブデバイス104-jのインターフェースは、クロック出力ポート(以下、「TCK-jポート」)を含む。TCK-jポートは、出力クロック信号STCK-jを供給し、出力クロック信号STCK-jは、後続のデバイスへ伝播される。後続のデバイスは、たとえば、別のスレーブデバイスまたはマスタデバイス102とすることができる。出力クロック信号STCK-jは、クロック同期装置110から発生する。クロック同期装置110は、スレーブ制御装置106から制御信号SCTRLを受け取るとともに、RCK-jポートからバッファリングされたバージョンの入力クロック信号SRCK-jを受け取る。
【００３３】
動作の際には、入力ポートイネーブル信号SIPE-jは、入力クロック信号SRCK-jと同期する入力情報信号SSIP-jによって運ばれる有効な情報に対するウィンドウの「開始」および「終端」を制御する。出力ポートイネーブル信号SOPE-jは、出力クロック信号STCK-jと同期する出力情報信号SSOP-jによって運ばれる有効な情報に対するウィンドウの「開始」および「終端」を制御する。
【００３４】
さらに、スレーブデバイス104-jのインターフェースは、チップ選択ポート(図示せず)を含むことができる。チップ選択ポートは、スレーブデバイス104-jおよび場合によっては他のスレーブデバイスの動作を同時にイネーブルするチップ選択信号を受け取る。スレーブデバイス104-jの1つまたは複数の機能をリセットするためのリセット信号をマスタデバイス102から運ぶ目的で、リセットポート(図示せず)を設けることもできる。特定の限定されない構成では、チップ選択信号をマルチドロップ方式で供給でき、またリセット信号をポイントツーポイント方式で供給できることが、当業者には理解される。もちろん、本発明の範囲から逸脱することなく、他の構成も可能である。
【００３５】
本発明の範囲から逸脱することなく、クロックレートのタイプ(たとえば、シングルデータレート対ダブルデータレート)、クロック応答のタイプ(たとえば、ソースシンクロナス対オフセット)、およびスレーブデバイス104-jの機能の様々な他の態様に応じて、スレーブデバイス104-j内に、バッファ、移相器、他の論理サブ回路などの他の構成要素を設けることができることも、当業者には理解される。
【００３６】
たとえば、図示の実施形態では、スレーブデバイス104-jは、RCK-j、SIP-j、OPE-j、およびIPE-jポートにそれぞれ接続された複数の入力バッファ120-1、120-2、120-3、および120-4と、TCK-j、SOP-j、OPEQ-j、およびIPEQ-jポートにそれぞれ接続された複数の出力バッファ122-1、122-2、122-3、および122-4とを含む。
【００３７】
また、入力経路側には、スレーブデバイス104-jは、クロック信号と同期して非クロック入力信号をラッチするための第1組のD型フリップフロップ124-1、124-2、124-3(または他のラッチ回路)を含むことができる。このクロック信号は、入力クロック信号SRCK-jまたは(図示のように)クロック同期装置110から得られるフィードバッククロック信号SCLK_FBとすることができる。他の実施形態では、D型フリップフロップ124-1、124-2、124-3を駆動するために使用されるクロック信号は、入力クロック信号SRCK-jまたはフィードバッククロック信号SCLK_FBから導出される内部クロック駆動スキームから得ることができる。様々な構成内のクロックツリーを含めて、多種多様な内部クロック駆動スキームを使用できることが企図される。
【００３８】
ここに説明する実施形態では、スレーブデバイス104-jのクロック応答のタイプは、エッジアライン型のソースシンクロナスであるものとし、したがって、フィードバッククロック信号SCLK_FBは、実際にD型フリップフロップ124-1、124-2、124-3に供給される前に、180°移相器130を通過する。これは、ソースシンクロナスクロックが、クロック信号とデータの間に0°の位相合わせをもたらすからである。クロック応答のタイプが異なる(たとえば、センターアライン型のソースシンクロナス)場合、フィードバッククロック信号SCLK_FBに加えるべき移相量は、それに対応して異なることがある。また、ここに説明する実施形態では、スレーブデバイス104-jのクロックレートのタイプは、シングルデータレート(SDR)である。ダブルデータレート(DDR)型のクロックレートのタイプが使用される場合、移相器130を90°移相器に交換することができる。
【００３９】
D型フリップフロップ124-1、124-2、124-3によって出力される非クロック入力信号は、さらに処理するためにスレーブ制御装置106に供給される。それに応答して、スレーブ制御装置106は、非クロック出力信号を生成し、これらの信号を、出力経路側の第2組のD型フリップフロップ126-1、126-2、126-3(または他のラッチ回路)に供給する。D型フリップフロップ126-1、126-2、126-3は、クロック信号と同期して非クロック出力信号をラッチするように動作可能である。このクロック信号は、クロック同期装置110から得られる中間出力クロック信号SCLK_INTとすることができる。バッファ素子134は、第2組のD型フリップフロップ126-1、126-2、126-3に対する整合遅延モデルを示し、クロック同期装置110とTCK-jポートに接続された出力バッファ122-1との間に配置される。
【００４０】
図2Bは、図2Aのスレーブデバイスのさらなる細部を示す。図1、2A、および2Bを参照すると、スレーブデバイス104のクロック同期装置110は、「外部調整可能な」遅延ロックループ(EA-DLL)を実施する。このために、クロック同期装置110は、調整可能な遅延ユニット202と、位相検出器および遅延線制御装置(PD-DLC)204と、外部調整可能なフィードバック遅延ユニット(EA-FDU)206とを備える。
【００４１】
調整可能な遅延ユニット202は、基準クロック信号SCLK_REFを受け取るための入力ポートを有する。基準クロック信号SCLK_REFは、RCK-jポートに接続された入力バッファ120-1によって出力される信号である。言い換えれば、基準クロック信号SCLK_REFは、入力バッファ120-1を通過した後の入力クロック信号SRCK-jに相当する。調整可能な遅延ユニット202は、中間クロック信号SCLK_INTを生成するために、基準クロック信号SCLK_REFに制御可能な遅延を加える。中間クロック信号SCLK_INTは、調整可能な遅延ユニット202の出力ポートに現れる。バッファ210は、中間クロック信号SCLK_INTの重い負荷を処理するために使用することができる。
【００４２】
調整可能な遅延ユニット202は、デジタル遅延線またはアナログ遅延線を含めて、様々な方法で実施することができる。これらの遅延線はどちらも、単段式または多段式とすることができる。たとえば、多段式遅延ユニットでは、多数のカスケード接続された遅延素子を設けることができ、これらの遅延素子のそれぞれには、調整可能な遅延ユニット202の出力ポートまでの対応する遅延素子の出力信号を切り換えるために、カウンタによって駆動できるスイッチが接続される。遅延ユニットの入出力ポート間で起動される遅延素子の数により、調整可能な遅延ユニット202によって加えられる瞬時遅延が決まる。もちろん、本発明の範囲から逸脱することなく、他の実装形態も可能である。
【００４３】
調整可能な遅延ユニット202によって加えられる遅延量の制御は、調整可能な遅延ユニット202の制御ポートで受け取られるコマンド信号SDLYによって行われる。コマンド信号SDLYは、PD-DLC204によって、その出力ポートを介して供給される。PD-DLC204は、それぞれの入力ポートで受け取った2つの信号に基づいて、コマンド信号SDLYを生成するように動作する。第1の信号は、調整可能な遅延ユニット202の入力ポートにも供給される基準クロック信号SCLK_REFである。第2の信号は、クロック同期装置110から出力されるフィードバッククロック信号SCLK_FBである。
【００４４】
フィードバッククロック信号SCLK_FBは、EA-FDU206によって、その出力ポートを介して供給される。EA-FDU206はまた、バッファ素子134にも供給される中間出力クロック信号SCLK_INTを受け取るための入力ポートを有する。EA-FDU206はまた、スレーブ制御装置106から制御信号SCTRLを受け取るための制御ポートを備える。EA-FDU206は、中間出力クロック信号SCLK_INTに遅延を加えることによって、フィードバッククロック信号SCLK_FBを生成するように動作する。そのような遅延は、制御信号SCTRLの関数である。EA-FDU206によって加えられている遅延の現在の値は、スレーブ制御装置106によって制御できるパラメータの一例である。
【００４５】
動作の際には、PD-DLC204は、フィードバッククロック信号SCLK_FBと基準クロック信号SCLK_REFの位相差を検出し、検出した位相差に基づいて、コマンド信号SDLYを出力する。したがって、フィードバッククロック信号SCLK_FBの位相が基準クロック信号SCLK_REFの位相に一致するとき、PD-DLC204の出力はゼロになる。この時点で、クロック同期装置110は、「遅延ロック」状態を実現している。そのような状態では、フィードバッククロック信号SCLK_FBは、中間クロック信号SCLK_INTの遅延したバージョンであることが観察される。言い換えれば、中間クロック信号SCLK_INTは、フィードバッククロック信号SCLK_FBの以前のバージョンであり、遅延ロックの状態中は、基準クロック信号SCLK_REFと同じ位相を有する。
【００４６】
中間クロック信号SCLK_INTが基準クロック信号SCLK_REFより進んでいる時間量(すなわち、先行時間量)は、EA-FDU206によって加えられている遅延の現在の値に一致する。この遅延は、2つの成分、すなわち固定成分tFおよび可変成分tEAFDに分類することができる。シミュレーションの結果に基づいて設計段階中に決定できる固定成分tFは、スレーブデバイス104-j中の(すなわち、RCK-jポートからクロック同期装置110へ、そしてクロック同期装置110からTCK-jポートへ)入力クロック信号SRCK-jの伝播遅延に近似する。具体的には、可変成分tEAFDをゼロとすると、固定成分tFによって、クロック同期装置110は、中間出力クロック信号SCLK_INTの位相に対して(また基準クロック信号SCLK_REFの位相に対して)、スレーブデバイス104-j中の伝播遅延の近似に一致する量だけ進んだ位相で、フィードバッククロック信号SCLK_FBを生成することになる。その結果、出力クロック信号STCK-jの位相は、スレーブデバイス104jを通って伝播した後、入力クロック信号SRCK-jの位相とほぼ整合する。
【００４７】
特定の例を挙げると、各入力バッファ120-1、120-2、120-3、120-4中の伝播遅延がtD1であり、各出力バッファ122-1、122-2、122-3、122-4中の伝播遅延がtD2であるとする。したがって、設計段階中に、EA-FDU206によって加えられている遅延の固定成分を、tF=tD1+tD2に設定することができる。もちろん、スレーブデバイス104-j中の伝播遅延の他の発生源を設計段階中に特定し、固定成分tFによって補償することもできる。
【００４８】
図3Aは、図2BのEA-FDU206によって加えられている遅延の固定成分の結果を示すタイミング図である(この場合、tF=tD1+tD2に設定されている)。具体的には、図2Bおよび3Aを参照すると、入力クロック信号SRCK-j、出力クロック信号STCK-j、基準クロック信号SCLK_REF、中間クロック信号SCLK_INT、フィードバッククロック信号SCLK_FB、およびSCLK_FB#と表す180度移相器130の出力を示す。また比較の目的で、SIP-jポートに接続された入力バッファ120-1の出口でのバージョンの入力情報信号SSIP-jも供給する。この信号をSSIP-j_1と表す。出力クロック信号STCK-jの位相は、入力クロック信号SRCK-jの位相に整合していることがわかる。もちろん、この整合は近似にすぎないことがあり、これは、入力バッファ120-1、120-2、120-3、120-4および出力バッファ122-1、122-2、122-3、122-4中の伝播遅延が設計段階中にどれだけうまく近似されたかに依存する。このタイミング図は、異なるクロックレートのタイプまたはクロック応答のタイプに対して異なる特徴を表すはずであることを理解されたい。
【００４９】
次に図2Bに戻ると、本発明の一実施形態によれば、EA-FDU206によって加えられている遅延の可変成分tEAFDは、マスタデバイス102から受け取ったコマンドに基づいて、出力クロック信号STCK-jの位相を微調整するために操作される。これらのコマンドは、スレーブ制御装置106によって解釈され、EA-FDU206の制御ポートに供給される制御信号SCTRLに変換される。
【００５０】
可変成分tEAFDに調整が加えられると、フィードバッククロック信号SCLK_FBは、対応する時間ずれを受ける。PD-DLC204は、(ここではずらされた)フィードバッククロック信号SCLK_FBと基準クロック信号SCLK_REFの間の新しい位相差を検出し、検出した位相差に基づいて、コマンド信号SDLYの新しいインスタンス化を出力する。コマンド信号SDLYのこの新しいインスタンス化は、ゼロではなく(正または負)、それに応答して、調整可能な遅延ユニット202は、基準クロック信号SCLK_REFに加えられている遅延の現在の値を調整し、それによって、調整可能な遅延ユニット202の出力ポートで、ずらされたバージョンの中間クロック信号SCLK_INTを生成する。このずらされたバージョンの中間クロック信号SCLK_INTは、EA-FDU206へ戻され、EA-FDU206は、さらにずらされたバージョンのフィードバッククロック信号SCLK_FBを生成する。上記の処理は、遅延ロックの状態が実現されるまで継続し、遅延ロックの時点で、フィードバッククロック信号SCLK_FBの位相は、基準クロック信号SCLK_REFの位相に一致する。
【００５１】
図3Bを参照すると、図3Aのものに類似しているが、可変成分tEAFDの追加の結果を示すタイミング図を示す。EA-FDU206によって加えられている遅延の現在の値(すなわち、tF+tEAFD=tD1+tD2+tEAFD)により、出力クロック信号STCK-jの位相が入力クロック信号SRCK-jの位相と整合しなくなったことがわかる。不整合の量は可変成分tEAFDに依存し、故意にもたらされる。その理由には、スレーブデバイス104-jと直列方式でスレーブデバイス104-jに接続された他のデバイス(図示せず)との間の寄生遅延の補償が含まれることがある。
【００５２】
もちろん、この例では、可変成分tEAFDを正の値とし、その結果出力クロック信号STCK-jが入力クロック信号SRCK-jより進むが、可変成分tEAFDを負の値とすることができ、その結果出力クロック信号STCK-jが入力クロック信号SRCK-jに遅れることが、理解される。
【００５３】
制御信号SCTRLによって柔軟性が提供されることにより、クロック同期装置110の設計段階の要件を緩和できることも理解されたい。たとえば、設計段階中に、出力クロック信号STCK-jと入力クロック信号SRCK-jの間に必要な位相の遅れまたは進みを提供することに加えて、固定成分tFをtD1+tD2という単なる大まかな推定値に初期化し、かつ制御信号SCTRLを使用して、あらゆる誤りが補償されるまで可変成分tEAFDを調整することができる。実際には、固定成分tFをさらにゼロまで低減させ、可変成分tEAFDに対する初期値としてtD1+tD2の推定値を使用することができ、そこから、制御信号SCTRLにより、さらなる調整を加えることができる。
【００５４】
制御信号SCTRLは、スレーブ制御装置106によって供給され、マスタデバイス102から受け取ったコマンドに基づいて生成されることが想起される。より具体的には、一例として図2Bを参照すると、スレーブ制御装置106は、外部調整可能なフィードバック遅延(EA-FD)レジスタ220を備えることができ、EA-FDレジスタ220には、マスタデバイス102によって書き込むことができる。特定の実施形態では、EA-FDレジスタ220は、EA-FDU206によって加えられている遅延の現在の値に対して所望の遅延調整を指定するビットパターンを含む。スレーブ制御装置106は、EA-FDレジスタ220の内容を示す制御信号SCTRLを発行するように構成される。特に、制御信号SCTRLは、制御信号SCTRLがEA-FDU206の制御ポートで受け取られ、EA-FDU206によって解釈されるとき、中間クロック信号SCLK_INTに加えられている遅延の現在の値に対して対応する遅延調整をもたらすようにフォーマットされる。この遅延調整は、複数の「遅延単位」で指定することができ、1遅延単位の持続時間は、動作要件を満たすのに必要なだけ大きくまたは小さくすることができる設計パラメータである。
【００５５】
EA-FDレジスタ220内に含むことができる様々なビットパターン、およびEA-FDU206によって加えられている遅延の現在の値に対する所望の遅延調整に関するそのような各ビットパターンの可能な意味を、以下の表1に提供する。
【００５６】
【表１】
0005680151.tif 000002
【００５７】
表1は、例示だけを目的として、ビットパターン定義の例を示すことを理解されたい。これらのビットパターンは、所望の遅延調整に対してより細かいまたはより粗い粒度が必要とされる場合、容易に修正しかつ/または拡張することができる。
【００５８】
スレーブ制御装置106は、EA-FDレジスタ220を読み出した後すぐにEA-FDレジスタ220をクリアするように設計でき、またはマスタデバイス102によってEA-FDレジスタ220に書き込まれるたびに1回だけEA-FDレジスタ220を読み出すように設計できること、が当業者には理解される。
【００５９】
スレーブ制御装置106は、マスタデバイス102からコマンドを受け取り、それを認識すると、EA-FDレジスタ220に書き込むことが想起される。そのようなコマンドは、SIP-jおよびIPE-jポートに現れる信号を制御することによって、送ることができる。以下、このコマンドを、「Write EA-FDU」コマンドと呼ぶ。より具体的には、IPE-jポートの信号がアサート状態に保たれるものとすると、「Write EA-FDU」コマンドの一例は、以下の3バイト形式を有することができる。
【００６０】
【表２】
0005680151.tif 000003
【００６１】
上記の形式の例では、第1バイト(「デバイスアドレス」)は、個別にまたはグループの一部として、スレーブデバイス104-jを識別する。言い換えれば、スレーブデバイス104-jは、認識している1つまたは複数のアドレスを有する。これらのアドレスは、初期化手順中に学習することができる。これらのアドレスのうちの1つは、他のスレーブデバイスに対して独自の「固有アドレス」とすることができ、一方これらのアドレスのうちの別のアドレスは、スレーブデバイス104-j、およびマスタデバイス102に接続された他の1つ(または複数もしくはすべて)のスレーブデバイス(複数可)(もしあれば)によって共通で認識される「共通アドレス」とすることができる。受け取った情報内のそれ自体のアドレス(またはそれ自体のアドレスのうちの1つ)を認識することによって、スレーブ制御装置106は、コマンドのさらなるバイトを受け取ることを予想し、かつそのコマンドに応答しなければならないことを予想する。
【００６２】
上記の形式の例では、第2バイト(B0h)は、「Write EA-FDU」コマンドの「さらなるバイト」であり、このコマンドが「Write EA-FDU」コマンドであり、何らかの他のコマンドではないことを示す16進値を表す。これは、このコマンドを、スレーブ制御装置106が応答するように構成できる他のコマンドと区別するのに役立つ。もちろん、「Write EA-FDU」コマンドの正確な16進値は設計パラメータであり、この例では、例示の目的を果たすこと以外のいかなる意味ももたない。
【００６３】
上記の形式の例では、第3バイト(DATA)は、EA-FDレジスタ220に書き込むべきビットパターンを表し、これは、上表に従うことができる。
【００６４】
ここで、スレーブデバイス104-jは、固有アドレス「00h」および共通アドレス「FFh」を有するものとする。図4Aおよび4Bはそれぞれ、EA-FDU206によって加えられている遅延の現在の値に対する所望の遅延調整が+1遅延単位分の増分である場合の、「Write EA-FDU」コマンドに対する基本的なタイミング図を示す。図4Aの場合、「Write EA-FDU」コマンドは、特にスレーブデバイス104-j宛であり、図4Bの場合、スレーブデバイス104-jは、「Write EA-FDU」コマンドのいくつかの可能な所期の宛先のうちの1つにすぎない。
【００６５】
これらのタイミング図では、限定されない例として、1対の入力クロック信号SRCK-j+SRCK-j#を使用する差動クロックスキームを示す。また、限定されない例として、ダブルデータレート(DDR)手法も示す。さらに、この特定の例では、入出力間の待ち時間(または「フロースルー(flow through)待ち時間」、tIOLと表す)は、1クロックサイクル(または2DDRサイクル)に相当する。もちろん、他の実装形態では、シングルエンド式のクロックスキーム、ならびに異なるクロックレートのタイプおよびポート幅を使用することができる。
【００６６】
次に、直列接続された半導体デバイス104-0〜7の構成を含むシステム502を示す図5を参照する。この例では、システム502は、前述のマスタデバイス102と、それぞれ前述のスレーブデバイス104-jに構造の点で類似する8つのスレーブデバイス104-0〜7とを含む。もちろん、システム502は、ポイントツーポイント方式で接続された任意の数のスレーブデバイスを含むことができることが、当業者には明らかになるはずである。
【００６７】
スレーブデバイス104-0〜7はそれぞれ、前述のスレーブデバイス104-jに構造の点で類似している。すなわち、スレーブデバイス104-0〜7はそれぞれ、前述のスレーブデバイス104-jのインターフェースに適合するインターフェースを有する。したがって、スレーブデバイス104-0〜7はそれぞれ、直列入力ポート(SIP-0〜7)、直列出力ポート(SOP-0〜7)、入力ポートイネーブル入力ポート(IPE-0〜7)、出力ポートイネーブル入力ポート(OPE-0〜7)、入力ポートイネーブルエコー出力ポート(IPEQ-0〜7)、出力ポートイネーブルエコー出力ポート(OPEQ-0〜7)、クロック入力ポート(RCK-0〜7)、およびクロック出力ポート(TCK-0〜7)を備えるインターフェースを有する。さらに、スレーブデバイス104-0〜7のそれぞれのインターフェースは、チップ選択ポート(図示せず)およびリセットポート(図示せず)を含むことができる。
【００６８】
適合するインターフェースを有する限り、異なるタイプのスレーブデバイスを利用できることを理解されたい。通常、システム502は、構成内のスレーブデバイスとして、様々な種類の半導体集積回路デバイスを備えることができる。たとえば、スレーブデバイスがメモリデバイスである場合、そのようなメモリデバイスは、同じタイプのもの(たとえば、すべてNAND型フラッシュメモリコアを有する)でも、異なるタイプのもの(たとえば、NAND型フラッシュメモリコアを有するものと、DRAMメモリコアを有するものがある)でもよい。当業者には想到されるメモリタイプおよびデバイスタイプの他の組合せも、本発明の範囲内である。
【００６９】
マスタデバイス102は、構成の第1のスレーブデバイス104-0に1群の信号を供給するための複数の出力ポートを備えるインターフェースを有する。具体的には、マスタデバイス102のインターフェースは、マスタ出力クロック信号STCKが出力されるマスタクロック出力ポート(以下、「TCKポート」)と、マスタ直列出力情報信号SSOPが供給されるマスタ直列出力ポート(以下、「SOPポート」)と、マスタ直列入力ポートイネーブル信号SIPEが供給されるマスタ直列入力ポートイネーブル出力ポート(以下、「IPEポート」)と、マスタ直列出力ポートイネーブル信号SOPEが供給されるマスタ直列出力ポートイネーブル出力ポート(以下、「OPEポート」)とを備える。
【００７０】
マスタデバイス102のインターフェースは、スレーブデバイス104-0〜7宛のチップ選択信号、リセット信号、ならびに様々な他の制御およびデータ情報を供給できる様々なポートをさらに備えることができる。
【００７１】
マスタデバイス102のインターフェースは、構成の最後のスレーブデバイス104-7から1群の信号を受け取る複数の入力ポートをさらに備える。具体的には、マスタデバイス102のインターフェースは、マスタ入力クロック信号SRCKを受け取るマスタクロック入力ポート(以下、「RCKポート」)と、マスタ直列入力情報信号SSIPが供給されるマスタ直列入力ポート(以下、「SIPポート」)と、マスタ直列入力ポートイネーブルエコー信号SIPEQが供給されるマスタ直列入力ポートイネーブルエコー入力ポート(以下、「IPEQポート」)と、マスタ直列出力ポートイネーブルエコー信号SOPEQが供給されるマスタ直列出力ポートイネーブルエコー入力ポート(以下、「OPEQポート」)とを備える。
【００７２】
システム502は、リング型の閉フィードバックループを形成する。すなわち、マスタデバイス102の出力ポート(すなわち、TCK、SOP、IPE、およびOPEポート)は、第1のスレーブデバイス104-0の入力ポート(すなわち、それぞれRCK-0、SIP-0、IPE-0、およびOPE-0ポート)に接続され、第1のスレーブデバイス104-0の出力ポート(すなわち、TCK-0、SOP-0、IPEQ-0、およびOPEQ-0ポート)は、スレーブデバイス104-1の入力ポート(すなわち、それぞれRCK-1、SIP-1、IPE-1、およびOPE-1ポート)に接続される。次に、スレーブデバイス104-1の出力ポート(すなわち、TCK-1、SOP-1、IPEQ-1、およびOPEQ-1ポート)は、スレーブデバイス104-2の入力ポート(すなわち、それぞれRCK-2、SIP-2、IPE-2、およびOPE-2ポート)に接続され、スレーブデバイス104-2の出力ポート(すなわち、TCK-2、SOP-2、IPEQ-2、およびOPEQ-2ポート)は、スレーブデバイス104-3の入力ポート(すなわち、それぞれRCK-3、SIP-3、IPE-3、およびOPE-3ポート)に接続される。これは、スレーブデバイス104-7まで継続し、スレーブデバイス104-7では、入力ポート(すなわち、それぞれRCK-7、SIP-7、IPE-7、およびOPE-7ポート)が、スレーブデバイス104-6の出力ポート(すなわち、TCK-6、SOP-6、IPEQ-6、およびOPEQ-6ポート)に接続され、また出力ポート(すなわち、TCK-7、SOP-7、IPEQ-7、およびOPEQ-7ポート)が、マスタデバイス102の入力ポート(すなわち、それぞれRCK、SIP、IPEQ、およびOPEQポート)に接続される。
【００７３】
説明を簡略化する目的で、システム502は、単一ビット幅(1倍)の入出力信号を示す(説明の残りの部分もこれに焦点を当てる)。しかし、入出力信号は、本発明の精神から逸脱することなく、いくつかの限定されない可能性を挙げると2倍、4倍、および8倍など、1倍より幅広くできることが明らかになるはずである。
【００７４】
図5に示す構成により、マスタクロック出力信号STCK、ならびにマスタ直列入力ポートイネーブル信号SIPEおよびマスタ直列出力ポートイネーブル信号SOPEを、1つのスレーブデバイスから次のスレーブデバイスへ、これらの信号が最終的に、それぞれマスタクロック入力信号SRCK、マスタ直列入力ポートイネーブルエコー信号SIPEQ、およびマスタ直列出力ポートイネーブルエコー信号SOPEQの形でマスタデバイス102に戻るまで、伝播することができる。
【００７５】
隣接するデバイスのポート間の相互接続は、図面に504として示すように、「相互接続負荷」を通じて行われることを理解されたい。相互接続負荷504は、パッケージ内部のボンディングワイアの負荷、PCB(プリント回路基板)トレースの負荷、パッケージのはんだボールの負荷などのうちの1つまたは複数からなることがある。システム502が、複数のスレーブデバイス(この場合、8つのスレーブデバイス104-0〜7であるが、通常任意の数)およびマスタデバイス102を含む単一のパッケージ内で実施されるとき、これはマルチチップパッケージ(MCP)として知られ、そのような場合、相互接続負荷504は、MCPのチップ間のワイア相互接続の負荷からなることがある。デバイス間の相互接続負荷504は、PCB層が長さおよび形状の点で整合しないことなどの様々な条件のため、変わることがある。また、MCPを実現する際には、MCP内部の相互接続負荷504は、PCBから生じる相互接続負荷504とは異なる。したがって、図面では相互接続負荷504を単一の番号によって表すが、実際には、この負荷は、相互接続間で互いに異なることがあることを理解されたい。
【００７６】
動作の際には、マスタデバイス102は、マスタクロック信号STCKを生成する。マスタクロック信号STCKは、第1のスレーブデバイス104-0へ送出され、相互接続負荷504を介して、入力クロック信号SRCK-0の形で、第1のスレーブデバイス104-0のRCK-0ポートに到達する。マスタデバイス102はまた、マスタ直列出力情報信号SSOPの形で直列情報を生成する。マスタ直列出力情報信号SSOPは、マスタクロック信号STCKと同期して第1のスレーブデバイス104-0へ送出される。この直列情報は、相互接続負荷504を介して、直列入力情報信号SSIP-0の形で、第1のスレーブデバイス104-0によってそのSIP-0ポートで受け取られる。マスタデバイス102はまた、マスタ直列出力情報信号SSOPが、マスタ直列入力ポートイネーブル信号SIPEと確実に整合するようにする。マスタ直列入力ポートイネーブル信号SIPEは、相互接続負荷504を介して、入力ポートイネーブル信号SIPE-0の形で、第1のスレーブデバイス104-0によってそのIPE-0ポートで受け取られる。
【００７７】
第1のスレーブデバイス104-0内のスレーブ制御装置106は、直列情報が第1のスレーブデバイス104-0宛であるかどうかを判断する。この直列情報が第1のスレーブデバイス104-0宛である場合、スレーブ制御装置106は、この情報を解釈し、かつ動作を行う。たとえば、第1のスレーブデバイス104-0がメモリデバイスである場合、直列情報は、読出しコマンドまたは書込みコマンドでありうる。書込みコマンドの場合、さらなるアドレスおよびデータ情報がSIP-0ポートを介して到達することが予想され、このデータ情報は、スレーブ制御装置106によってメモリアレイ108内へ転送される。読出しコマンドの場合、さらなるアドレス情報がSIP-0ポートを介して到達することが予想され、メモリアレイ108からどの情報をSOP-0ポートに配置すべきかを示す。スレーブ制御装置106はまた、メモリアレイ108から読み出された情報が、マスタ直列出力ポートイネーブル信号SOPEと確実に整合するようにする。マスタ直列出力ポートイネーブル信号SOPEは、相互接続負荷504を介して、出力ポートイネーブル信号SOPE-0の形で、第1のスレーブデバイス104-0によってそのOPE-0ポートで受け取られる。
【００７８】
他方では、直列情報が第1のスレーブデバイス104-0宛でない場合、第1のスレーブデバイス104-0は単に、出力クロック信号STCK-0と同期して、受け取った直列情報を次のスレーブデバイス104-1の方へ再び伝送する。すなわち、スレーブ制御装置106は、SIP-0ポートを介して受け取った直列情報をSOP-0ポートへ転送する。
【００７９】
さらに、直列情報が第1のスレーブデバイス104-0宛であるか否かにかかわらず、スレーブ制御装置106は、IPE-0およびOPE-0ポートに現れる信号を、それぞれIPEQ-0およびOPEQ-0ポートに転送する。
【００８０】
さらに、入力クロック信号SRCK-0は、次のスレーブデバイス104-1へ伝播される。具体的には、入力クロック信号SRCK-0は、クロック同期装置110によって処理され、クロック同期装置110は、中間クロック信号SCLK_INTを出力する。この中間クロック信号は、バッファ素子134および出力バッファ122-1を通過してから、TCK-0ポートを介して、出力クロック信号STCK-0の形で出力される。初期条件下では、出力クロック信号STCK-0は、入力クロック信号SRCK-0とほぼ位相ロックされる。
【００８１】
次のスレーブデバイス104-1でも、同じ基本的な動作が実行される。そのうち、スレーブデバイス104-0〜7のうちの所与のスレーブデバイスのSOP-jポートに現れる情報は、マスタデバイス102宛の情報を含むことがあることに留意されたい。これは特に、そのスレーブデバイスに読出しコマンドが発行された場合である。この情報は、最後のスレーブデバイス104-7によってそのSOP-7ポートを介して直列出力情報信号SSOP-7の形で伝送されるまで、引き続き伝播される。最後のスレーブデバイス104-7のスレーブ制御装置106は、出力クロック信号STCK-7と同期して、直列出力情報信号SSOP-7を出力する。直列出力情報信号SSOP-7は、相互接続負荷504を介して、マスタデバイス102のSIPポートで、マスタ直列入力情報信号SSIPの形で受け取られる。同様に、出力クロック信号STCK-7は、相互接続負荷504を横切ってから、マスタデバイス102のRCKポートで、マスタ入力クロック信号SRCKの形で受け取られる。
【００８２】
上記の説明から理解できるように、マスタデバイス102は、TCK、SIP、IPE、およびOPEポートを使用することによって、構成内のスレーブデバイス104-0〜7のうちの選択された1つ(または複数)のスレーブデバイスの挙動を制御するための命令を送ることができる。次いで、選択されたスレーブデバイス(複数可)は、マスタデバイス102からのこれらの命令に応答し、かつさらに構成に沿って適切な応答を伝送する。最終的に、マスタデバイス102は、そのSIP、IPEQ、およびOPEQポートを通じて応答を受け取る。
【００８３】
さらに、スレーブデバイス間、ならびにマスタデバイス102と第1のスレーブデバイス104-0および最後のスレーブデバイス104-7との間に存在する相互接続負荷504は、伝播している信号(クロック信号を含む)に遅延を加えることに留意されたい。したがって、マスタデバイス102と第1のスレーブデバイス104-0の間の相互接続負荷504により、第2のスレーブデバイス104-1では、出力クロック信号STCK-0と比較すると、入力クロック信号SRCK-1がわずかに傾斜または遅延している。次いで、第2のスレーブデバイス104-1内のクロック同期装置110は、入力クロック信号SRCK-1に基づいてロック手順を実行し、かつ出力クロック信号STCK-1を生成する。出力クロック信号STCK-1は、初期条件では、入力クロック信号SRCK-1とほぼ位相ロックされる。次に、第2のスレーブデバイス104-1と第3のスレーブデバイス104-2の間の相互接続負荷504により、第3のスレーブデバイス104-2では、出力クロック信号STCK-1と比較すると、入力クロック信号SRCK-2がわずかに傾斜または遅延している。次いで、第3のスレーブデバイス104-2内のクロック同期装置110は、入力クロック信号SRCK-2に基づいてロック手順を実行し、かつ出力クロック信号STCK-2を生成する。出力クロック信号STCK-2は、初期条件では、入力クロック信号SRCK-2とほぼ位相ロックされる。この処理は、最後のスレーブデバイス104-7が出力クロック信号STCK-7を生成し、出力クロック信号STCK-7が、相互接続負荷504を介して、マスタデバイス102のRCKポートで受け取られるまで継続する。
【００８４】
したがって、RCKポートのマスタ入力クロック信号SRCKは、各スレーブデバイス104-0〜7内のクロック同期装置110によって再同期された、伝播されたバージョンのマスタ出力クロック信号STCKである。様々な相互接続負荷504は、「相互接続負荷遅延」を発生させることがあり、この遅延により初期条件下では、マスタ入力クロック信号SRCKには、マスタ出力クロック信号STCKと比較すると、著しい位相誤りが生じる。相互接続負荷遅延が既知である場合、各スレーブデバイス104-0〜7内のEA-FDU206によって加えられる遅延の固定成分(すなわち、固定成分tF)に対して、この相互接続負荷遅延を相殺するのに適した値を、設計段階で選択することができる。しかし、相互接続負荷遅延は、変動しかつ予測不能であり、したがって、設計段階では補償できない。したがって、本発明の一実施形態では、マスタデバイス102は、各スレーブデバイス104-0〜7内のEA-FDレジスタ220を動的に更新するように構成される。
【００８５】
より具体的には、図5に示すように、様々な出力信号を生成しかつ様々な入力信号を処理するのに有用な他の構成要素に加えて、マスタデバイス102は、位相周波数検出器(PFD)506およびマスタ制御装置508を備える。PFD506は、RCKポートに接続された第1の入力ポートを有し、この第1の入力ポートからマスタクロック入力信号SRCKを受け取る。さらに、PFD506は、第2の入力ポートを有し、マスタ出力クロック信号STCKの1バージョンを受け取る。このために、PFD506の第2の入力ポートは、TCKポートから分岐させることができ、またはマスタデバイス102内部のクロック分配ツリーを介して、マスタ出力クロック信号STCKを得ることができる。PFD506は、その2つの入力ポートに入るクロック信号間の位相および/または周波数差を求め、この差を示す差信号を、PFD506の出力ポートで供給するように構成される。
【００８６】
PFD506によって出力される差信号SDIFFは、マスタ制御装置508の入力ポートに供給される。マスタ制御装置508は、PFD506から受け取った差信号SDIFFに基づいて、スレーブデバイス104-0〜7のうちの1つまたは複数のスレーブデバイス内のEA-FDU206によって加えられている遅延の現在の値を調整するための同期処理を実行するように構成される。これは、「Write EA-FDU」コマンドなどのコマンドを、SIPおよびIPEポートを介して発行することによって実現される。この同期処理の一実施形態について、図6に示す一連のステップを参照して以下に詳述する。
【００８７】
ステップ610で、マスタ制御装置508は、各スレーブデバイス104-0〜7内で初期化手順が実行されるのを待つ。具体的には、システムに通電され、それに応答して、システム502内のスレーブデバイス104-0〜7がそれぞれ、設計仕様に従って、対応する初期化手順を実行する。初期化手順は、固定成分tFを使用して、各スレーブデバイスの対応するEA-FDU206を初期ロックするステップを含む。固定成分tFは、当該スレーブデバイス中の伝播遅延の推定値に一致させることができる。初期ロックが完了した後は、スレーブデバイス104-0〜7はそれぞれ、この伝播遅延の推定値を補償することによって、その出力クロック信号STCK-jをその入力クロック信号SRCK-jと同相にしている。本発明の範囲から逸脱することなく、自己発見およびデバイスアドレス割当て手順などの他の初期化機能を実行することができる。
【００８８】
初期化手順が完了した後、ステップ620で、マスタ制御装置508は、マスタ入力クロック信号SRCKとマスタ出力クロック信号STCKとの間の位相差(Δpと表す)を得る。これは、PFD506からの出力を読み出すことにによって、行うことができる。Δpは、スレーブデバイス間、ならびにマスタデバイス102と第1のスレーブデバイス104-0および最後のスレーブデバイス104-7との間に相互接続負荷504が存在するため、ゼロではない可能性が高いことが想起される。
【００８９】
ステップ630で、ステップ620で求められたΔpが、ゼロ(または「安定」を示すと見なされる値の範囲)と比較される。Δpがゼロ(または「安定」を示すと見なされる値の範囲内)である場合、システム502は安定していると見なされ、同期処理が終了する。Δpがゼロではない場合、マスタ制御装置508は、位相調整サブルーチンを開始する。位相調整サブルーチンは、Δpが180度より小さい場合の第1の分岐640A、およびΔpが180度より大きい場合の第2の分岐640Bという2つの分岐を有する。第1の分岐640Aおよび第2の分岐640Bについて、以下により詳細に説明する。
【００９０】
位相調整サブルーチンの第1の分岐640Aでは、Δpは180度より小さく、したがって、マスタ制御装置508は、マスタ入力クロック信号SRCKとマスタ出力クロック信号STCKとの間の位相差を低減させようとする。このために、マスタ制御装置508は、1つまたは複数の標的スレーブデバイスが、それぞれのEA-FDU206によって加えられている遅延の現在の値を増大させるように、これらの標的スレーブデバイスに「Write EA-FDU」コマンドを発行する。
【００９１】
位相調整サブルーチンの第2の分岐640Bでは、Δpは180度より大きく、したがって、マスタ制御装置508は、マスタ入力クロック信号SRCKとマスタ出力クロック信号STCKとの間の位相差を増大させようとする。このために、マスタ制御装置508は、1つまたは複数の標的スレーブデバイスが、それぞれのEA-FDU206によって加えられている遅延の現在の値を低減させるように、これらの標的スレーブデバイスに「Write EA-FDU」コマンドを発行する。
【００９２】
「Write EA-FDU」コマンドによって指定されるビットパターン、ならびにこのコマンドが送られる標的スレーブデバイスの数、識別情報、および順序は、設計パラメータに基づいて選択することができる。たとえば、Δpが0(または360)度に十分に近接している場合、本発明の範囲内で、「Write EA-FDU」コマンドを単一の標的スレーブデバイスへ送り、そのようなコマンドが、-1、-2、-4、または-8遅延単位分の減分を指定する。
【００９３】
しかし、Δpが0度より著しく大きい場合(および360度より著しく小さい場合)、単一の標的スレーブデバイスに、そのEA-FDU206によって加えられている遅延の現在の値を、そのような大きな量だけ調整することを要求することで、そのスレーブデバイスが動作不良を起こす(その入出力ラッチ回路内に設定/保持時間のマージンがないために発生することがある)可能性がある。したがって、マスタ制御装置508は、順に書き込むべき複数の標的デバイスの間でΔpを分配することができる。求められている位相差が大きければ大きいほど、「Write EA-FDU」コマンドを受け取る標的デバイスの数も多くなる。その結果、マスタ制御装置508は、1つまたは2つの標的スレーブデバイスではなく、より多くの標的スレーブデバイスのサブセットに「Write EA-FDU」コマンドを送り、それによって、システム502全体で所望の遅延調整をより均等に分配し、したがってより安定したシステム性能を実現することができる。複数の標的スレーブデバイスに書き込むべき場合、単一の「Write EA-FDU」コマンドで2つ以上の標的スレーブデバイスに到達するためのアドレス指定スキームを開発することは、本発明の範囲内である。
【００９４】
さらには、Δpが180度に十分に近接する可能性もある。180度では、スレーブデバイスはそれぞれ、対応するEA-FDU206によって加えられている遅延の現在の値を、少なくとも1遅延単位分だけ調整することが必要とされるはずである。そのような状況下で、「Write EA-FDU」コマンドを各スレーブデバイスに順に送ることは、本発明の範囲内である。別法として、同報通信コマンドを発行することもできる。Δpが実際に180度に十分に近接していると判断して同報通信コマンドの考慮を保証するために、その大きさ|Δp|をバルク遅延係数TMAXと比較することができる。バルク遅延係数TMAXは、システム502全体にわたる総相互接続負荷遅延の推定値を表す。構成内にN個のスレーブデバイスが存在する場合、バルク遅延係数TMAXは、tDLYと表す個々の相互接続負荷遅延の推定値のN倍に設定することができる。一般にNは、いかなる特定の値にも限定されるものではないが、この例では、N=8であり、バルク遅延係数TMAXは、8×tDLYに等しい。|Δp|がバルク遅延係数TMAXより大きい場合、同報通信「Write EA-FDU」コマンドを発行することができ、各スレーブデバイス104-0〜7内のEA-FDU206によって加えられている遅延の現在の値を調整する。
【００９５】
Δpを許容可能な範囲内にする目的で、「Write EA-FDU」コマンドを受け取ることができる個々の標的スレーブデバイスを選択し、かつそれらの標的スレーブデバイス内のEA-FDU206によって加えられている遅延の現在の値に対して所望の遅延調整を決定するための、さらなる他の技法が存在する。本発明の範囲から逸脱することなく、これらの技法のいずれかを使用できることを理解されたい。
【００９６】
一実施形態についての上記の説明から理解できるように、分岐640Aまたは640Bの実行中、マスタ制御装置508は、1つまたは複数の標的スレーブデバイス宛の1つまたは複数の「Write EA-FDU」コマンドを生成し、そのようなコマンドはそれぞれ、対応する1つまたは複数の標的スレーブデバイス内のEA-FDU206によって加えられている遅延の現在の値に対して所望の遅延調整(たとえば、増分または減分)を示す対応するビットパターンを含む。
【００９７】
特定の限定されない一例を挙げると、所望の遅延調整は+1遅延単位であるものとする。したがって、前のビットパターン定義に基づいて、DATAバイト「00h」を有する「Write EA-FDU」コマンドが、前述の基準に応じて、(i)特定の標的スレーブデバイス、または(ii)スレーブデバイスのサブセット、または(iii)すべてスレーブデバイスのうちのいずれかへ送られる。これにより、各標的スレーブデバイス内のEA-FDU206によって加えられている遅延の現在の値を、1遅延単位分増大させる。標的スレーブデバイス内のEA-FDU206は、フィードバッククロック信号SCLK_FBが1遅延単位分遅れていることを検出すると、再ロック手順を実行し、それによって、出力クロック信号STCK-x(および最終的にはマスタ入力クロック信号SRCK)が、その位相を追加の1遅延単位分進める。標的スレーブデバイス(および該当する場合は、他の標的でないスレーブデバイス)が、分岐640Aまたは640B中に発行された「Write EA-FDU」コマンド(複数可)に応答できるように、特定の時間量(予め決定できる)待った後、同期制御装置はステップ620に戻り、ステップ620で、マスタ制御装置508は再び、マスタ入力クロック信号SRCKとマスタ出力クロック信号STCKの位相差を示すΔpを得る。
【００９８】
図7は、クロック同期装置110の外部調整をもたず、各クロック同期装置110内のEA-FDU206によって加えられている遅延の固定成分tFだけに依拠する構成の性能がどのようなものであるかを示すタイミング図を示す(この例では、実際の相互接続負荷遅延は、前述の個々の相互接続負荷遅延の推定値tDLYに一致すると仮定している)。対照的に、図8は、前述の処理などの同期処理を使用してΔpを許容可能な範囲内にした後の、クロック同期装置110の外部調整を有する構成の性能を示すタイミング図を示す(これらの例では、実際の相互接続負荷遅延は、前述の個々の相互接続負荷遅延の推定値tDLYに一致すると仮定している)。
【００９９】
スレーブデバイス104-0〜7の間で遅延が均等に分配されたと仮定する図8の場合、所与のスレーブデバイス104-j内のEA-FDU206によって加えられている遅延の現在の値は、tDLYに収束する。tDLYは各スレーブデバイスに対して同じであると仮定するが、実際には、スレーブデバイス104-0〜7のうちの所与のスレーブデバイスに対して異なることがあることを理解すべきであることに留意されたい。また、スレーブデバイス104-0〜7の間で遅延を均等に分配する必要はない。
【０１００】
したがって、スレーブデバイス104-0〜7のうちの1つまたは複数内のEA-FDU206によって加えられている遅延の値に調整を加えることによって、マスタデバイス102でマスタ出力クロック信号STCKをマスタ入力クロック信号SRCKに位相ロックできることが理解される。次いで、任意の多数のスレーブデバイスを使用でき、ならびにそれらのスレーブデバイスの動作周波数を増大できることが明らかになる。さらに、動作中、マスタデバイス102は、必要な場合(たとえば、システム502の温度が変化したときなど)、「Write EA-FDU」コマンドを発行することによって、1つまたは複数のスレーブデバイス内のEA-FDU206によって加えられている遅延の現在の値を再調整することができる。TCKおよびRCKクロックドメイン内の差を吸収するために、マスタデバイス102内に高価なデータ受取りおよび処理回路を組み込む必要はないことも理解されたい。
【０１０１】
スレーブデバイス104-jのスレーブ制御装置106は、マスタデバイス102から「Write EA-FDU」コマンドを受け取り、それを認識すると、対応するEA-FDレジスタ220に書き込むことが想起される。さらに、スレーブデバイス104-jのスレーブ制御装置106はまた、マスタデバイス102から「Read EA-FDU」コマンドを受け取り、それを認識すると、EA-FDレジスタ220から読み出すことができることが、当業者には理解される。そのようなコマンドは、マスタデバイス102がスレーブデバイス104-0〜7のうちの特定のスレーブデバイス内のEA-FDレジスタ220の現在の値を知りたいと望む実装形態では、有用となることがある。
【０１０２】
「Read EA-FDU」コマンドは、SIP-j、IPE-j、およびOPE-jポートに現れる信号を制御することによって、送ることができる。より具体的には、IPE-jポートの信号がhigh状態に保たれるものとすると、「Read EA-FDU」コマンドの一例は、以下の2バイト形式を有することができる。
【０１０３】
【表３】
0005680151.tif 000004
【０１０４】
上記の形式の例では、第1バイト(「デバイスアドレス」)は、スレーブデバイス104-jを、その固有アドレスによって識別する。受け取った情報内のそれ自体のアドレスを認識することによって、スレーブ制御装置106は、コマンドのさらなるバイトを受け取ることを予想し、かつそれに応答することを予想する。
【０１０５】
上記の形式の例では、第2バイト(B1h)は、「Read EA-FDU」コマンドの「さらなるバイト」であり、このコマンドが「Read EA-FDU」コマンドであり、何らかの他のコマンドではないことを示す16進値を表す。これは、このコマンドを、スレーブ制御装置106が応答するように構成できる他のコマンド(「Write EA-FDU」コマンドなど)と区別するのに役立つ。もちろん、「Read EA-FDU」コマンドの正確な16進値は設計パラメータであり、この例では、例示の目的を果たすこと以外のいかなる意味ももたない。
【０１０６】
ここで、スレーブデバイス104-jは、固有アドレス「00h」を有するものとする。図9は、「Read EA-FDU」コマンドに対する基本的なタイミング図を示す。スレーブ制御装置106がEA-FDレジスタ220の内容をSOP-jポートへ転送することが可能でありかつ予想される時間枠を送るために、OPE-jポートに現れる出力ポートイネーブル信号SOPE-jは、マスタデバイス102によってhigh状態に設定されることに留意されたい。
【０１０７】
これらのタイミング図では、限定されない例として、1対の入力クロック信号SRCK-j+SRCK-j#を使用する差動クロックスキームを示す。また、限定されない例として、ダブルデータレート(DDR)手法も示す。さらに、この特定の例では、入出力間の待ち時間(または「フロースルー待ち時間」、tIOLと表す)は、1クロックサイクル(または2DDRサイクル)に相当する。もちろん、他の実装形態では、シングルエンド式のクロックスキーム、ならびに異なるクロックレートのタイプおよびポート幅を使用することができる。
【０１０８】
次に、スレーブデバイス104-0〜7のうちの1つまたは複数を代表するスレーブデバイス104-j内に存在しうる追加の特徴を示す図10を参照する。具体的には、スレーブデバイス104-jは、可変出力駆動強度制御を備える。
【０１０９】
出力駆動強度制御の機能についての説明に進む前に、図10は、差動クロックスキーム(シングルエンド式のクロックスキームとは対照的)が使用されるスレーブデバイス104-jの一実装形態を示すことについて述べるべきである。差動クロックスキームは、いくつかの高速の適用分野では一般的である。具体的には、入力クロック信号SRCK-jではなく、ポートRCK-jおよびRCK-j#に到達する1対の差動入力クロック信号SRCK-jおよびSRCK-j#を示す。同様に、出力クロック信号STCK-jではなく、ポートTCK-jおよびTCK-j#を介して出力される1対の差動出力クロック信号STCK-jおよびSTCK-j#を示す。差動出力クロック信号STCK-j、STCK-j#は、中間クロック信号SCLK_INTから導出される。中間クロック信号SCLK_INTは、同じく差動式とすることもできるが、シングルエンド式とすることもできる。
【０１１０】
スレーブデバイス104-jの内部で差動クロックスキームを処理する際に多くの異なる手法が可能であり、本発明の範囲から逸脱することなく、任意のそのような手法を使用することができる。たとえば、図10に示す限定されない実施形態では、差動入力クロック信号SRCK-j、SRCK-j#から前述の基準クロック信号SCLK_REFを駆動するために、新しい入力バッファ1010が設けられる。他の入力バッファ120-2、120-3、および120-4は、前と同様のものとすることができる。
【０１１１】
次に出力駆動強度制御の機能に移ると、スレーブデバイス104-jは、複数の可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4を含むことに留意されたい。可変強度出力ドライバ1022-1は、TCK-jおよびTCK-j#ポートに接続される。可変強度出力ドライバ1022-2、1022-3、および1022-4は、それぞれSOP-j、OPEQ-j、およびIPEQ-jポートに接続される。図示の実施形態では、図2Bに示す出力バッファ122-1、122-2、122-3、122-4を、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4に交換したが、他の実施形態では、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4を出力バッファ122-1、122-2、122-3、122-4に加えることもできることを理解されたい。
【０１１２】
可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4は、修正されたスレーブ制御装置106によって制御されるように、それぞれの出力信号を所望の駆動強度で駆動することができる。可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4は、たとえば「フル駆動強度」と「ハーフ駆動強度」の間で出力駆動強度を変更できるとき、拡張モードレジスタの設定値に従う。他の可能性も、当業者には想到される。
【０１１３】
本発明の一実施形態では、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって提供される柔軟性は、スレーブデバイス104-jによって出力されている信号のスルーレートを意図的に変更する働きをする。スルーレートは、構成内のデバイス間の相互接続負荷のため、出力駆動強度の影響を特に受けやすい。所与の信号のスルーレートが変更されたとき、システム502内の後続の下流デバイスには、信号がわずかに遅延しているかのように見える。
【０１１４】
したがって、マスタデバイス102でマスタ出力クロック信号STCKとマスタ入力クロック信号SRCKの間のクロック同期の改善を実現するために、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4の出力駆動強度に調整を加えて、EA-FDレジスタ220に対する前述の調整を補完することができる。
【０１１５】
このために、一例では、修正されたスレーブ制御装置106は、マスタデバイス102によって書き込むことができる出力駆動強度(以下、「ODSR」)レジスタ1020を備えることができる。特定の実施形態では、ODSRレジスタ1020は、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えるべき所望の強度を指定するビットパターンを含む。スレーブ制御装置106は、ODSRレジスタ1020の内容を示すODSR制御信号SODSRを発行するように構成される。ODSR制御信号SODSRは、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4のそれぞれの制御ポートに供給することができる。ODSR制御信号SODSRが対応する制御ポートで受け取られ、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって解釈されるとき、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって所望の強度が加えられるように、ODSR制御信号SODSRをフォーマットすることができる。所望の強度は、動作要件を満たすのに必要なだけ大きくまたは小さくすることができる設計パラメータである。
【０１１６】
もちろん、差動またはシングルエンド式のクロックスキームを使用することで、EA-FDレジスタ220およびまた場合によってはODSRレジスタ1020への書込み動作を指令することによって、マスタ出力クロック信号STCKとマスタ入力クロック信号SRCKの間の同期を実現する能力を損なうことはないことを理解されたい。
【０１１７】
ODSRレジスタ1020内に含むことができる様々なビットパターン、および可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えるべき所望の強度に関するそのような各ビットパターンの可能な意味を、以下の表2に提供する。
【０１１８】
【表４】
0005680151.tif 000005
【０１１９】
表2は、例示だけを目的として、ビット定義の例を示すことを理解されたい。これらのビットパターンは、所望の強度に対してより細かいまたはより粗い粒度が必要とされる場合、容易に修正しかつ/または拡張することができる。
【０１２０】
修正されたスレーブ制御装置106は、マスタデバイス102からコマンドを受け取り、それを認識すると、ODSRレジスタ1020に書き込むことが想起される。そのようなコマンドは、マスタデバイス102のPFD506の出力の測定に基づいて、定式化することができる。そのようなコマンドは、SIP-jおよびIPE-jポートに現れる信号を制御することによって、送ることができる。以下、このコマンドを、「Write ODSR」コマンドと呼ぶ。より具体的には、IPE-jポートの信号がhigh状態に保たれるものとすると、「Write ODSR」コマンドの一例は、以下の3バイト形式を有することができる。
【０１２１】
【表５】
0005680151.tif 000006
【０１２２】
上記の形式の例では、第1バイト(「デバイスアドレス」)は、個別にまたはグループの一部として、スレーブデバイス104-jを識別する。受け取った情報内のそれ自体のアドレス(またはそれ自体のアドレスのうちの1つ)を認識することによって、修正されたスレーブ制御装置106は、コマンドのさらなるバイトを受け取ることを予想し、かつそれに応答することを予想する。
【０１２３】
上記の形式の例では、第2バイト(B1h)は、「Write ODSR」コマンドの「さらなるバイト」であり、このコマンドが「Write ODSR」コマンドであり、何らかの他のコマンドではないことを示す16進値を表す。これは、このコマンドを、修正されたスレーブ制御装置106が応答するように構成できる他のコマンド(「Write EA-FDU」および「Read EA-FDU」コマンドなど)と区別するのに役立つ。もちろん、「Write ODSR」コマンドの正確な16進値は設計パラメータであり、この例では、例示の目的を果たすこと以外のいかなる意味ももたない。
【０１２４】
上記の形式の例では、第3バイト(DATA)は、ODSRレジスタ1020に書き込むべきビットパターンを表し、これは、上表に従うことができる。
【０１２５】
ここで、スレーブデバイス104-jは、固有アドレス「07h」および共通アドレス「FFh」を有するものとする。図11Aおよび11Bはそれぞれ、「Write ODSR」コマンドに対する基本的なタイミング図を示す。図11Aの場合、「Write ODSR」コマンドは、特にスレーブデバイス104-j宛であり(可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えるべき所望の強度は、通常の強度である)、図11Bの場合、スレーブデバイス104-jは、「Write ODSR」コマンドのいくつかの可能な所期の宛先のうちの1つにすぎない(可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えるべき所望の強度は、2分の1の強度である)。
【０１２６】
これらのタイミング図では、限定されない例として、1対の入力クロック信号SRCK-j+SRCK-j#を使用する差動クロックスキームを示す。また、限定されない例として、ダブルデータレート(DDR)手法も示す。さらに、この特定の例では、入出力間の待ち時間(または「フロースルー待ち時間」、tIOLと表す)は、1クロックサイクル(または2DDRサイクル)に相当する。もちろん、他の実装形態では、シングルエンド式のクロックスキーム、ならびに異なるクロックレートのタイプおよびポート幅を使用することができる。
【０１２７】
さらに、スレーブデバイス104-jの修正されたスレーブ制御装置106はまた、マスタデバイス102から「Read ODSR」コマンドを受け取り、それを認識すると、ODSRレジスタ1020から読み出すことができることが、当業者には理解される。そのようなコマンドは、マスタデバイス102がスレーブデバイス104-0〜7のうちの特定のスレーブデバイス内のODSRレジスタ1020の現在の値を知りたいと望む一実装形態では、有用となることがある。
【０１２８】
「Read ODSR」コマンドは、SIP-j、IPE-j、およびOPE-jポートに現れる信号を制御することによって、送ることができる。より具体的には、IPE-jポートの信号がhigh状態に保たれるものとすると、「Read ODSR」コマンドの一例は、以下の2バイト形式を有することができる。
【０１２９】
【表６】
0005680151.tif 000007
【０１３０】
上記の形式の例では、第1バイト(「デバイスアドレス」)は、スレーブデバイス104-jを、その固有アドレスによって識別する。受け取った情報内のそれ自体のアドレスを認識することによって、修正されたスレーブ制御装置106は、コマンドのさらなるバイトを受け取ることを予想し、かつそれに応答することを予想する。
【０１３１】
上記の形式の例では、第2バイト(B3h)は、「Read ODSR」コマンドの「さらなるバイト」であり、このコマンドが「Read ODSR」コマンドであり、何らかの他のコマンドではないことを示す16進値を表す。これは、このコマンドを、修正されたスレーブ制御装置106が応答するように構成できる他のコマンド(「Write EA-FDU」、「Read EA-FDU」、および「Write ODSR」コマンドなど)と区別するのに役立つ。もちろん、「Read ODSR」コマンドの正確な16進値は設計パラメータであり、この例では、例示の目的を果たすこと以外のいかなる意味ももたない。
【０１３２】
ここで、スレーブデバイス104-jは、固有アドレス「07h」を有するものとする。図12は、「Read ODSR」コマンドに対する基本的なタイミング図を示す。修正されたスレーブ制御装置106がODSRレジスタ1020の内容をSOP-jポートへ転送することが可能でありかつ予想される時間枠を送るために、OPE-jポートに現れる出力ポートイネーブル信号SOPE-jは、マスタデバイス102によってhigh状態に設定されることに留意されたい。
【０１３３】
いくつかの場合、クロック同期装置110に供給される単一の制御信号によって、周波数と位相の両方を調整することができる。たとえば、図13を参照すると、外部調整可能な位相ロックループを実施するクロック同期装置1410を備えるスレーブデバイス104-jの一実施形態を示す。このために、クロック同期装置1410は、位相周波数検出器(PFD)1402と、電荷ポンプ1404と、ループフィルタおよびバイアス発生器1406と、電圧制御発振器(VCO)1408と、前述の外部調整可能なフィードバック遅延ユニット(EA-FDU)206とを備える。
【０１３４】
PFD1402は、それぞれの入力ポートで受け取った2つの信号に基づいて、電荷ポンプ制御信号SCPを生成するように動作する。第1の信号は、基準クロック信号SCLK_REFである。第2の信号は、EA-FDU206によって出力されるフィードバッククロック信号SCLK_FBである。PFD1402は、出力ポートを介して電荷ポンプ制御信号SCPを供給する。一実施形態では、電荷ポンプ制御信号SCPは、電荷ポンプ1404によって加えるべき電圧増分または減分を示すことができる。
【０１３５】
電荷ポンプ1404は、PFD1402から電荷ポンプ制御信号SCPを受け取るための入力ポートを有する。電荷ポンプ1404は、電荷ポンプ制御信号SCPに基づいて、電圧制御信号SV_CTRLを生成する。電圧制御信号SV_CTRLは、電荷ポンプ1404の出力ポートで、ループフィルタおよびバイアス発生器1406に供給される。
【０１３６】
ループフィルタおよびバイアス発生器1406は、電荷ポンプ1404から入力ポートを介して、電圧制御信号SV_CTRLを受け取る。ループフィルタおよびバイアス発生器1406は、電圧制御信号SV_CTRLに基づいて、2つの電圧制御信号SVBP(PMOSバイアス電圧)およびSVBN(NMOSバイアス電圧)を生成する。2つの電圧制御信号SVBPおよびSVBNは、ループフィルタおよびバイアス発生器1406のそれぞれの出力ポートで、VCO1408に供給される。
【０１３７】
VCO1408は、ループフィルタおよびバイアス発生器1406からそれぞれの入力ポートを介して、2つの電圧制御信号SVBPおよびSVBNを受け取る。VCO1408は、2つの電圧制御信号SVBPおよびSVBNに基づいて、中間クロック信号SCLK_INTを生成する。中間クロック信号SCLK_INTは、VCO1408の出力ポートで、EA-FDU206の入力ポートに供給される。VCO1408の動作に関するさらなる詳細は、「Low-Jitter Process-Independent DLL and PLL Based on Self-Biased Techniques」John G. Maneatis著、IEEE Journal of Solid-State Circuits、Vol. 31、No. 11、1723ページ、1996年11月を参照されたい。同文献を、参照により本明細書に組み込む。
【０１３８】
EA-FDU206は、修正されたスレーブ制御装置106から制御信号SCTRLを受け取るための制御ポートを備えることが想起される。EA-FDU206は、中間出力クロック信号SCLK_INTに遅延を加えることによって、フィードバッククロック信号SCLK_FBを生成するように動作する。そのような遅延は、制御信号SCTRLの関数である。前と同様に、EA-FDU206によって加えられている遅延の現在の値は、修正されたスレーブ制御装置106によって制御できるパラメータの一例である。
【０１３９】
動作の際には、PFD1402は、フィードバッククロック信号SCLK_FBと基準クロック信号SCLK_REFの位相差を検出し、検出した位相差に基づいて、電荷ポンプ制御信号SCPを出力する。したがって、フィードバッククロック信号SCLK_FBの位相が基準クロック信号SCLK_REFの位相に一致するとき、PFD1402の出力はゼロになる。この時点で、クロック同期装置1410は、「位相ロック」状態を実現している。そのような状態では、フィードバッククロック信号SCLK_FBは、中間クロック信号SCLK_INTの遅延したバージョンであることが観察される。言い換えれば、中間クロック信号SCLK_INTは、フィードバッククロック信号SCLK_FBの以前のバージョンであり、位相ロックの状態中は、基準クロック信号SCLK_REFと同じ位相を有する。
【０１４０】
本発明の代替実施形態では、EA-FDU206とともに位相ロックループの他の実装形態も可能であることを理解されたい。
【０１４１】
いくつかの場合、マスタ出力クロック信号STCKおよびマスタ入力クロック信号SRCKは、位相が外れているだけでなく、互いに対して周波数オフセットを有する可能性がある。言い換えれば、ステップ620で得られたPFD506の出力は、位相差Δpに加えて、または位相差Δpの代わりに、周波数差(Δfと表す)が存在することを示す。この可能性に対応するために、引き続き図13を参照すると、クロック同期装置110が、EA-FDU206に加えて、またはEA-FDU206の代わりに、外部調整可能なフィードバック周波数ユニット(EA-FFUと表されている)1306を備えることは、本発明の範囲内である。
【０１４２】
任意選択のEA-FFU1306は、可変周波数変換器(たとえば、乗算器もしくは除算器)、または当業者には周知の他の回路の形で実施することができる。EA-FFU1306は、中間クロック信号SCLK_INTを受け取るための入力ポートと、EA-FDU206によって処理するための別の中間クロック信号SCLK_INT2を供給するための出力ポート(実際にEA-FDU206が存在する場合)とを有する。EA-FFU1306はまた、スレーブ制御装置106から周波数制御信号SFREQを受け取るための制御ポートを備える。EA-FFU1306は、中間出力クロック信号SCLK_INTに周波数オフセットを加えることによって、中間クロック信号SCLK_INT2を生成するように動作する。そのような周波数オフセットは、周波数制御信号SFREQの関数である。EA-FFU1306によって加えられる周波数オフセットは、スレーブ制御装置106によって制御できるパラメータの別の例である。
【０１４３】
EA-FDU206とEA-FFU1306の間の相互接続の順序を逆にすることができる(実際にEA-FDU206が存在する場合)ことを理解されたい。
【０１４４】
本発明の実施形態を、直列に相互接続された半導体デバイスの構成に関する他の革新と併せて使用できることが、当業者には理解される。そのような他の革新の例は、様々な特許出願に見ることができる。そうした一式の出願には、以下のものが含まれる。
-2005年9月30日出願の第60/722,368号明細書
-2005年12月30日出願の第11/324,023号明細書
-2006年7月31日出願の第11/496,278号明細書
-2006年9月15日出願の第11/521,734号明細書
-2006年11月29日出願の第11/606,407号明細書
-2007年6月29日出願の第11/771,023号明細書
-2007年6月29日出願の第11/771,241号明細書
【０１４５】
上記の実施形態では、「Write EA-FDU」コマンドについて、EA-FDU206によって加えられている遅延の現在の値に対して所望の遅延調整を指定するビットパターンを含むものとして説明したが、これは、本発明を限定するものとして解釈すべきではない。たとえば、代替実施形態では、「Write EA-FDU」コマンドは、EA-FDU206によって加えるべき遅延の所望の実際の値を指定するビットパターンを含むことができる。そのような場合、「Write EA-FDU」コマンドの形式が確実に、十分なダイナミックレンジを提供するように、注意を払うべきである。さらに、この代替実施形態では、EA-FDレジスタ220が所望の遅延調整ではなく所望の遅延を指定するので、スレーブ制御装置106は、EA-FDレジスタ220を読み出した後すぐにEA-FDレジスタ220をクリアすること、またはマスタデバイス102によってEA-FDレジスタ220に書き込まれるたびに1回だけEA-FDレジスタ220を読み出すことに関与する必要はない。
【０１４６】
また、上記の実施形態では、「Write ODSR」コマンドについて、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えるべき所望の強度を指定するビットパターンを含むものとして説明したが、これは、本発明を限定するものとして解釈すべきではない。たとえば、代替実施形態では、「Write ODSR」コマンドは、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えられている現在の強度に対する所望の調整を指定するビットパターンを含むことができる。そのような場合、修正されたスレーブ制御装置106は、ODSRレジスタ1020を読み出した後すぐにODSRレジスタ1020をクリアするように、またはマスタデバイス102によってODSRレジスタ1020に書き込まれるたびに1回だけODSRレジスタ1020を読み出すように設計することができる。
【０１４７】
さらに、上記の実施形態では、「Write ODSR」コマンドについて、所与の標的スレーブデバイス内のすべての可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4によって加えるべき所望の強度を指定するビットパターンを含むものとして説明したが、これは、本発明を限定するものとして解釈すべきではない。たとえば、代替実施形態では、複数のODSRレジスタが、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4のそれぞれに対して1つずつ存在してもよい。したがって、複数の「Write ODSR」コマンドを生成することができ、「Write ODSR」コマンドはそれぞれ、可変強度出力ドライバ1022-1、1022-2、1022-3、1022-4のうちの個々の可変強度出力ドライバによって加えられている現在の強度に対する所望の調整を指定するビットパターンを含む。
【０１４８】
また、上記の実施形態では、スレーブデバイス104-0〜7のクロック応答のタイプについて、エッジアライン型のソースシンクロナスであるものとして説明したが、これは、本発明を限定するものとして解釈すべきではない。代替実施形態では、クロック応答のタイプを、センターアライン型ソースシンクロナスとすることができる。さらなる他の可能性も、本発明の範囲内であるものとして企図される。
【０１４９】
さらに、上記の実施形態では、スレーブデバイス104-0〜7のクロックレートのタイプについて、シングルデータレート(SDR)またはダブルデータレート(DDR)のいずれかであるものとして説明したが、これは、本発明を限定するものとして解釈すべきではない。たとえば、いくつかの限定されない可能性を挙げると、スレーブデバイス104-0〜7のクロックレートのタイプを、クワッドデータレート(QDR)、オクタルデータレート(ODR)、またはグラフィックスダブルデータレート(GDDR)とすることができる。
【０１５０】
また、システム502の様々なデバイスの構成要素および回路について、「アクティブhigh」状態の信号に応答するものとして説明したが、これは、本発明を限定するものとして解釈すべきではない。たとえば、システム502の様々なデバイスの構成要素および回路は、設計上の選択に応じて、「アクティブlow」状態の信号に応答することができる。
【０１５１】
さらに、システム502の様々なデバイスの構成要素および回路について、互いに直接接続されるものとして図示したが、これは、話を簡単にするためのものであり、本発明の趣旨を損なうことなく、他の構成要素および回路をそれらの間に配置しまたはそれらに結合できることを理解されたい。その結果、図面では直接接続であるように見えるものを、実際に実現する際には、実際には間接接続として実施することもできる。
【０１５２】
さらに、いくつかの実施形態では、差動クロックスキームを使用できるが、他の実施形態では、シングルエンド式のクロックスキームを使用できることを理解されたい。
【０１５３】
さらに、スレーブデバイスと他のスレーブデバイスの間、またはスレーブデバイスとマスタデバイスの間を進む信号の多くについて、単一ビット幅を有するものとして説明しかつ図示してきたが、システム502の様々な構成要素およびそれらのインターフェースを修正して、マルチビット幅信号を可能にすることは、当業者の理解できる範囲内である。また、それぞれが単一ビット幅を有する複数の組の信号を供給することも、本発明の範囲内である。したがって、たとえば、2ビット幅のクロックが望ましい場合、複数の単一ビット幅のクロックサブ信号を使用することによって、または幅が2ビットの単一のクロック信号を使用することによって、この特徴を実施することができる。より大きなビット幅を必要とする信号では、それぞれ特定のビット幅を有するサブ信号の組合せを使用することができる。
【０１５４】
また、前述の制御装置、処理装置、および他の要素のうちの特定のものの動作および機能をハードウェアまたはソフトウェアによって実現できることも、当業者には明らかである。
【０１５５】
本発明の特定の実施形態について、説明しかつ図示したが、添付の特許請求の範囲に規定されるように、本発明の範囲から逸脱することなく、多数の修正および変形を加えることができることが、当業者には明らかである。
【符号の説明】
【０１５６】
102 マスタデバイス、システム制御装置
104-0〜N-1 半導体デバイス
104-j 半導体デバイス、スレーブデバイス
106 スレーブ制御装置
108 メモリアレイ
110 クロック同期装置
120-1、120-2、120-3、120-4 入力バッファ
122-1、122-2、122-3、122-4 出力バッファ
124-1、124-2、124-3 D型フリップフロップ
126-1、126-2、126-3 D型フリップフロップ
130 移相器
134 バッファ素子
202 調整可能な遅延ユニット
204 位相検出器および遅延線制御装置(PD-DLC)
206 外部調整可能なフィードバック遅延ユニット(EA-FDU)
210 バッファ
220 外部調整可能なフィードバック遅延(EA-FD)レジスタ
502 システム
504 相互接続負荷
506 位相周波数検出器(PFD)
1010 入力バッファ
1020 出力駆動強度(ODSR)レジスタ
1022-1、1022-2、1022-3、1022-4 可変強度出力ドライバ
1306 外部調整可能なフィードバック周波数ユニット(EA-FFU)
1402 位相周波数検出器(PFD)
1404 電荷ポンプ
1406 ループフィルタおよびバイアス発生器
1408 電圧制御発振器(VCO)
1410 クロック同期装置
【図１】
0005680151.tif 000008
【図２Ａ】
0005680151.tif 000009
【図２Ｂ】
0005680151.tif 000010
【図３Ａ】
0005680151.tif 000011
【図３Ｂ】
0005680151.tif 000012
【図４Ａ】
0005680151.tif 000013
【図４Ｂ】
0005680151.tif 000014
【図５】
0005680151.tif 000015
【図６】
0005680151.tif 000016
【図７】
0005680151.tif 000017
【図８】
0005680151.tif 000018
【図９】
0005680151.tif 000019
【図１０】
0005680151.tif 000020
【図１１Ａ】
0005680151.tif 000021
【図１１Ｂ】
0005680151.tif 000022
【図１２】
0005680151.tif 000023
【図１３】
0005680151.tif 000024