(57)【要約】      （修正有）【課題】複数のメモリ素子のための信号バッファリングおよびリタイミング回路を提供する。【解決手段】複数のメモリ素子のための信号バッファリングおよびリタイミング（ＳＢＲ）回路である。ＰＬＬをベースとするクロック発生器によって、受け取ったホスト・クロック信号から１組の位相シフト・クロック信号セットが生成される。複数の位相選択器の各々によって、前記１組の位相シフト・クロック信号セットからサブセットの連続クロック信号が個々に選択される。個々のサブセットの連続クロック信号が、異なる組の１つまたは複数のバーニヤに印加され、個々のバーニヤによって、複数の連続クロック信号の中から１つのクロック信号が個々に選択される。ＳＢＲ回路は、スキューおよび遅延に関連する比較的厳格な信号タイミング要求事項を満足するように設計することができる。【選択図】図１
2008022557.tif 000002
【特許請求の範囲】
【請求項１】
信号（たとえば１１０）を複数のメモリ素子（たとえば１０６）に並列に印加するためにバッファリングし、かつ、リタイミング化するための信号バッファリングおよびリタイミング（ＳＢＲ）回路（たとえば１０４）であって、
入力クロック信号（たとえば１１６）から１組の位相シフト・クロック信号セット（たとえば１２４）を生成するように適合された、ＰＬＬをベースとするクロック発生器（たとえば１１８、１２２）と、
複数の位相選択器（たとえば１２６）であって、個々の位相選択器が、前記１組の位相シフト・クロック信号セットからサブセットの連続クロック信号（たとえば１２８）を個々に選択するように適合された複数の位相選択器と、
１組の１つまたは複数の出力クロック・バーニヤ・セット（たとえば１３０）であって、個々の出力クロック・バーニヤが、（１）対応する位相選択器から対応するサブセットの連続クロック信号を受け取り、（２）前記複数の連続クロック信号のうちの１つをそのリタイミング・クロック（たとえば６０４）として選択し、また、（３）そのリタイミング・クロックを使用して、前記複数のメモリ素子のうちの少なくとも１つに対する出力クロック信号（たとえばＣＫ［ｉ］）を生成するように適合された出力クロック・バーニヤ・セットと、
１組の１つまたは複数のフィードバック・クロック・バーニヤ・セット（たとえば１３２）であって、個々のフィードバック・クロック・バーニヤが、（１）対応する位相選択器から対応するサブセットの連続クロック信号を受け取り、（２）前記複数の連続クロック信号のうちの１つをそのリタイミング・クロック（たとえば６０４）として選択し、また、（３）そのリタイミング・クロックを使用して、前記ＰＬＬをベースとするクロック発生器に提供されるフィードバック・クロック信号（たとえば１３６）を生成するように適合されたフィードバック・クロック・バーニヤ・セットと、
１組または複数組の非クロック・バーニヤ・セット（たとえば１３４）であって、個々の非クロック・バーニヤが、（１）対応する位相選択器から対応するサブセットの連続クロック信号を受け取り、（２）前記複数の連続クロック信号のうちの１つをそのリタイミング・クロック（たとえば４０４）として選択し、（３）１ビットのアドレス・データまたは制御データ（たとえば１４０）を受け取り、また、（４）そのリタイミング・クロックを使用して、前記１ビットのアドレス・データまたは制御データから、前記複数のメモリ素子のうちの少なくとも１つに対するリタイミング化されたビット信号（たとえば１４２）を生成するように適合された非クロック・バーニヤ・セットと
を備えたＳＢＲ回路。
【請求項２】
前記ＰＬＬをベースとするクロック発生器が、前記入力クロック信号から前記１組の位相シフト・クロック信号セットを生成するために使用する１つまたは複数のフィードバック・クロック信号のうちの任意の１つを選択するように構成された、請求項１に記載のＳＢＲ回路。
【請求項３】
個々の位相選択器を、他のすべての位相選択器には無関係に、その対応するサブセットの連続クロック信号を選択するように構成することができ、また、
個々のバーニヤを、他のすべてのバーニヤには無関係に、そのリタイミング・クロック信号を選択するように構成することができる、請求項１に記載のＳＢＲ回路。
【請求項４】
前記ＰＬＬをベースとするクロック発生器が、
前記入力クロック信号および１つまたは複数のフィードバック・クロック信号のうちの１つから、１組（たとえば１２０）の位相シフト高レート・クロック信号セットを生成するように適合されたＰＬＬ（たとえば１１８）と、
前記１組の位相シフト高レート・クロック信号セットから前記１組の位相シフト・クロック信号セットを生成するように適合された位相発生器（たとえば１２２）と
を備え、
前記位相シフト・クロック信号が、前記入力クロック信号のクロック・レートと同じクロック・レートを有し、
前記位相シフト高レート・クロック信号が、前記位相シフト・クロック信号のクロック・レートより速いクロック・レートを有し、
位相シフト・クロック信号の数が位相シフト高レート・クロック信号の数より多い、請求項１に記載のＳＢＲ回路。
【請求項５】
前記メモリ素子がＤＤＲメモリであり、
前記ＰＬＬをベースとするクロック発生器が、受け取った差動クロック信号（たとえば１０８）から前記入力クロック信号を生成するように適合された差動バッファ（たとえば１１４）をさらに備えた、請求項４に記載のＳＢＲ回路。
【請求項６】
個々の位相選択器が異なる組のバーニヤに対応し、
前記複数のバーニヤ・セットが、複数の専用バーニヤ・セットおよび１つまたは複数の共有バーニヤ・セットを備え、
個々のメモリ素子が、少なくとも１つの対応する専用バーニヤ・セットを有し、
少なくとも１つの共有バーニヤ・セットが、すべてのメモリ素子によって共有される、請求項１に記載のＳＢＲ回路。
【請求項７】
復号化された複数のアドレス・ビットおよび制御ビット（たとえば１４０）を生成するために、受け取ったアドレス信号および制御信号（たとえば１１０）を復号化するように適合された信号復号器（たとえば１３８）をさらに備え、復号化された個々のアドレス・ビットまたは制御ビットが少なくとも１つの非クロック・バーニヤに提供される、請求項１に記載のＳＢＲ回路。
【請求項８】
復号化された少なくとも１つのアドレス・ビットまたは制御ビットが、異なるバーニヤ・セットに配置された複数の異なる非クロック・バーニヤに提供される、請求項７に記載のＳＢＲ回路。
【請求項９】
個々の非クロック・バーニヤが、（ｉ）パラレル・データ・ストリームを生成するために、受け取ったアドレス・データまたは制御データのビットを逆多重化し（たとえば４１６）、かつ、（ｉｉ）リタイミング化されたビット信号を生成するために、そのリタイミング・クロックに基づいて前記パラレル・データ・ストリームを多重化する（たとえば４１８）ように適合された、請求項１に記載のＳＢＲ回路。
【請求項１０】
信号（たとえば１１０）を複数のメモリ素子（たとえば１０６）に並列に印加するためにバッファリングし、かつ、リタイミング化するための方法（たとえば１０４）であって、
入力クロック信号（たとえば１１６）から１組の位相シフト・クロック信号セット（たとえば１２４）を生成するステップ（たとえば１１８、１２２）と、
前記１組の位相シフト・クロック信号セットから、複数のサブセットの連続クロック信号（たとえば１２８）を個々に選択するステップ（たとえば１２６）と、
第１のサブセットの連続クロック信号に対して、前記複数の連続クロック信号のうちの１つを第１のリタイミング・クロック（たとえば６０４）として選択し（たとえば１３０）、かつ、前記第１のリタイミング・クロックを使用して、前記複数のメモリ素子のうちの少なくとも１つに対する出力クロック信号（たとえばＣＫ［ｉ］）を生成するステップと、
第２のサブセットの連続クロック信号に対して、前記複数の連続クロック信号のうちの１つを第２のリタイミング・クロック（たとえば６０４）として選択し（たとえば１３２）、かつ、前記第２のリタイミング・クロックを使用して、前記１組の位相シフト・クロック信号セットを生成するために使用するフィードバック・クロック信号（たとえば１３６）を生成するステップと、
他の個々のサブセットの連続クロック信号に対して、前記複数の連続クロック信号のうちの１つを他のリタイミング・クロック（たとえば４０４）として選択し（たとえば１３４）、かつ、前記他のリタイミング・クロックを使用して、受け取った１ビットのアドレス・データまたは制御データ（たとえば１４０）から、前記複数のメモリ素子のうちの少なくとも１つに対するリタイミング化されたビット信号（たとえば１４２）を生成するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・システムに関し、詳細にはコンピュータ・システム内のメモリ素子にデータを書き込み、かつ、メモリ素子からデータを読み出すための回路に関する。
【背景技術】
【０００２】
本出願は、参照によりその教示が本明細書に組み込まれている、弁理士事件整理番号Ｃｏｒｎｅｌｉｕｓ  １−１６−１−１１−２  ＰＲＯＶとして２００６年７月１２日に出願された米国仮出願第６０／８３０，１８７号の出願日の利益を主張するものである。
本出願の主題は、参照によりその教示が本明細書に組み込まれている、弁理士事件整理番号Ｐａｒｉｋｈ  ７として２００５年９月３０日に出願された米国特許出願第１１／２４０，２９０号に関する。
【０００３】
従来のコンピュータ・システムでは、ホスト・コントローラが、ランダム・アクセス・メモリ（ＲＡＭ）などのメモリ素子にデータを書き込み、かつ、メモリ素子からデータを読み出すためのクロック、アドレスおよび他の制御信号を提供する。特定のアプリケーションに応じて、場合によっては、これらの異なる信号をメモリ素子に並列に印加するタイミングに関連する比較的厳格な要求事項が存在する。たとえばシステム要求事項は、場合によっては、これらの信号が到着する最も早い時間と最も遅い時間の差（スキューとも呼ばれている）を特定の最大スキュー値に制限する。また、場合によっては、コントローラからメモリ素子までの総合信号伝播遅延を特定の最大遅延値に制限する要求事項が存在する。
【特許文献１】米国仮出願第６０／８３０，１８７号
【特許文献２】米国特許出願第１１／２４０，２９０号
【非特許文献１】I2C-Bus Specification、第2.1版、2000年1月
【発明の開示】
【発明が解決しようとする課題】
【０００４】
過去においては、複数の異なるメモリ素子を有する従来のコンピュータ・システムは、スキューおよび／または遅延要求事項に合致するための専用の個別信号バッファリングおよびリタイミング回路を、異なるメモリ素子毎に有することが常であった。
【課題を解決するための手段】
【０００５】
一実施形態では、本発明は、信号を複数のメモリ素子に並列に印加するためにバッファリングし、かつ、リタイミング化するための信号バッファリングおよびリタイミング（ＳＢＲ）回路である。ＳＢＲ回路は、ＰＬＬをベースとするクロック発生器と、複数の位相選択器と、１つまたは複数の出力クロック・バーニヤのセットと、１組の１つまたは複数のフィードバック・クロック・バーニヤ・セットと、１組または複数組の非クロック・バーニヤ・セットとを備えている。ＰＬＬをベースとするクロック発生器によって、入力クロック信号から１組の位相シフト・クロック信号セットが生成される。個々の位相選択器によって、前記１組の位相シフト・クロック信号セットからサブセットの連続クロック信号が個々に選択される。個々の出力クロック・バーニヤによって、（１）対応する位相選択器から対応するサブセットの連続クロック信号が受け取られ、（２）複数の連続クロック信号のうちの１つがそのリタイミング・クロックとして選択され、また、（３）そのリタイミング・クロックを使用して、複数のメモリ素子のうちの少なくとも１つに対する出力クロック信号が生成される。個々のフィードバック・クロック・バーニヤによって、（１）対応する位相選択器から対応するサブセットの連続クロック信号が受け取られ、（２）複数の連続クロック信号のうちの１つがそのリタイミング・クロックとして選択され、また、（３）そのリタイミング・クロックを使用して、ＰＬＬをベースとするクロック発生器に提供されるフィードバック・クロック信号が生成される。個々の非クロック・バーニヤによって、（１）対応する位相選択器から対応するサブセットの連続クロック信号が受け取られ、（２）複数の連続クロック信号のうちの１つがそのリタイミング・クロックとして選択され、（３）１ビットのアドレス・データまたは制御データが受け取られ、また、（４）そのリタイミング・クロックを使用して、前記１ビットのアドレス・データまたは制御データから、複数のメモリ素子のうちの少なくとも１つに対するリタイミング化されたビット信号が生成される。
【０００６】
他の実施形態では、本発明は、信号を複数のメモリ素子に並列に印加するためにバッファリングし、かつ、リタイミング化するための方法および装置である。入力クロック信号から１組の位相シフト・クロック信号セットが生成される。前記１組の位相シフト・クロック信号セットから、複数のサブセットの連続クロック信号が個々に選択される。第１のサブセットの連続クロック信号に対して、複数の連続クロック信号のうちの１つが第１のリタイミング・クロックとして選択され、該第１のリタイミング・クロックを使用して、複数のメモリ素子のうちの少なくとも１つに対する出力クロック信号が生成される。第２のサブセットの連続クロック信号に対して、複数の連続クロック信号のうちの１つが第２のリタイミング・クロックとして選択され、該第２のリタイミング・クロックを使用して、前記１組の位相シフト・クロック信号セットを生成するために使用されるフィードバック・クロック信号が生成される。他の個々のサブセットの連続クロック信号に対して、複数の連続クロック信号のうちの１つが他のリタイミング・クロックとして選択され、該他のリタイミング・クロックを使用して、受け取った１ビットのアドレス・データまたは制御データから、複数のメモリ素子のうちの少なくとも１つに対するリタイミング化されたビット信号が生成される。
【０００７】
本発明の他の態様、特徴および利点については、以下の詳細な説明、添付の特許請求の範囲および添付の図面から、より完全に明らかになるであろう。図において、同様の参照数表示は、類似した構成要素または全く同じ構成要素を表する。
【発明を実施するための最良の形態】
【０００８】
図１は、本発明の一実施形態による、複数のメモリ素子を有するコンピュータ・システム１００の一部をブロック図で示したものである。この特定の実施形態では、メモリ素子はすべてデュアル・イン・ライン・メモリ・モジュール（ＤＩＭＭ）ダブル・データ・レート（ＤＤＲ）メモリである。ＤＤＲメモリは、立上り縁および立下り縁の両方ではなく、立上り縁または立下り縁毎にしかデータを読み出し、あるいはデータを書き込むことができないシングル・データ・レート（ＳＤＲ）メモリとは異なり、印加されるクロック信号の立上り縁および立下り縁毎にデータを読み出し、あるいはデータを書き込むことができる。本発明は、複数のＤＤＲメモリを有するコンピュータ・システムのコンテキストの中で記述されているが、本発明は、通常、ＤＤＲ素子および／またはＳＤＲ素子を任意に組み合わせた複数のメモリを有するコンピュータ・システムの中で実施することができる。
【０００９】
詳細には、図１には、ホスト・コントローラ１０２、信号バッファリングおよびリタイミング（ＳＢＲ）回路１０４、および単一のブロック１０６で一括して示されている複数のＤＤＲメモリが示されている。必ずしもその必要はないが、ＳＢＲ回路１０４は、単一の集積回路（ＩＣ）チップ上で実施されていることが好ましく、図１に示されている構成要素は、コンピュータ・システム１００の単一回路基板上に構成されていることが好ましい。
【００１０】
ホスト・コントローラ１０２によって、ＳＢＲ回路１０４に、（１）信号ライン１０８を介して３３３ＭＨｚ差動ホスト・クロック信号（ｃｌｋ＿ｈｏｓｔ＿ｐ、ｃｌｋ＿ｈｏｓｔ＿ｎ）が送信され、また、（２）バス１１０を介して以下に示すアドレス信号および制御信号が送信される。
〇  １６ビット・アドレス信号（Ａｄｄｒｅｓｓ［１５：０］）
〇  ３ビット・チップ・セレクト信号（ＣＳ［２：０］）
〇  ３ビット・オン・デバイス・ターミネーション信号（ＯＤＴ［２：０］）
〇  １ビット・ライト・イネーブル信号（ＷＥ）
〇  ３ビット・バンク・アドレス信号（ＢＡ［２：０］）
〇  １ビット列アドレス・セレクト信号（ＣＡＳ）
〇  １ビット行アドレス・セレクト信号（ＲＡＳ）
また、ホスト・コントローラ１０２によって、（１）ＳＢＲ回路１０４にリセット制御信号（ｒｅｓｅｔ＿ｎ）が送信され、また、（２）Ｉ２Ｃバス１１２を介してＳＢＲ回路１０４に以下に示す集積回路間（Ｉ２Ｃ）信号が送信される。
〇  １ビット・シリアル・データ信号（ＳＤＡ）
〇  １ビット・シリアル・クロック信号（ＳＣＬ）
〇  ＳＤＡおよびＳＣＬの両方をサンプリングするために使用される２５ＭＨｚサンプリング・クロック信号（ｃｌｋ＿ｉ２ｃ）
【００１１】
ＳＢＲ回路１０４は、ホスト・コントローラ１０２から受け取ったこれらの信号を処理し（これについては以下でさらに詳細に説明する）、以下に示す７組の信号セットをＤＤＲメモリ・ブロック１０６に提供する。
（１）ＤＤＲメモリ・ブロック１０６のポートＡに、Ａｄｄｒｅｓｓ［１５：０］、ＢＡ［２：０］、ＷＥ、ＣＡＳ、ＲＡＳ
（２）ＤＤＲメモリ・ブロック１０６のポートＢに、Ａｄｄｒｅｓｓ［１５：０］、ＢＡ［２：０］、ＷＥ、ＣＡＳ、ＲＡＳ
（３）ＤＤＲメモリ・ブロック１０６のポートＣに、Ａｄｄｒｅｓｓ［１５：０］、ＢＡ［２：０］、ＷＥ、ＣＡＳ、ＲＡＳ
（４）ＤＤＲメモリ・ブロック１０６のポートＤに、Ａｄｄｒｅｓｓ［１５：０］、ＢＡ［２：０］、ＷＥ、ＣＡＳ、ＲＡＳ
（５）８つの１ビット・クロック・イネーブル信号（ＣＫＥ［７：０］）
（６）８つの１ビット・チップ・セレクト信号（ＣＳ［７：０］）および８つの１ビット・オン・デバイス・ターミネーション信号（ＯＤＴ［７：０］）
（７）１２個の差動クロック信号（ＣＫ［１１：０］）
【００１２】
ポートＡ〜Ｄは、特定の実施態様に応じて、１つないし４つの異なるＤＤＲメモリ素子の入力ポートであってもよい。たとえば、ポートの各々を異なる単一ポートＤＤＲメモリに対応させることができる。別法としては、任意の２つ、または３つ、さらには４つのすべてのポートを単一多重ポートＤＤＲメモリに対応させることも可能である。たとえば、ポートＡおよびＢを第１の二重ポートＤＤＲメモリに対応させ、ポートＣおよびＤを第２の二重ポートＤＤＲメモリまたは２つの異なる単一ポートＤＤＲメモリのいずれかに対応させることができる。
【００１３】
可能なアプリケーションの１つでは、上に挙げた７組の信号セットの各々のスキューは、５０ピコ秒以内でなければならず、また、ホスト・コントローラからメモリ素子までの遅延は、３３３ＭＨｚホスト・クロック信号の１サイクルないし３サイクル以内でなければならない。ＳＢＲ回路１０４のアーキテクチャは、これらの信号タイミング要求事項を満足するように設計されている。
【００１４】
図１に示すように、ホスト・コントローラ１０２から受け取った３３３ＭＨｚ差動ホスト・クロック信号１０８は、ＳＢＲ回路１０４内で、差動バッファ１１４によって、位相固定ループ（ＰＬＬ）１１８に印加するための３３３ＭＨｚシングル・エンド（ＳＥ）基準クロック信号１１６に変換される。
【００１５】
ＰＬＬ１１８によって、位相発生器１２２に印加される１６個の均一に間隔を隔てた（つまり約２２．５度だけ分離された）１．３３３ＧＨｚの位相オフセット・クロック信号１２０が生成される。
【００１６】
位相発生器１２２によって、１２個の異なる位相選択器１２６の各々に印加される６４個の均一に間隔を隔てた（つまり約５．６２５度だけ分離された）３３３ＭＨｚの位相オフセット・クロック信号１２４が生成される。図１には８つの位相選択器しか示されていないが、ＳＢＲ回路１０４は、実際には１２個の位相選択器を使用して実施されており、ポートＡ、Ｂ、ＣおよびＤの各々は、一方が１組８個の偶数バーニヤ・セット（１６ビット・アドレス中の８つの偶数ビットのためのバーニヤ・セット）のための位相選択器であり、もう一方が１組８個の奇数バーニヤ・セット（１６ビット・アドレス中の８つの奇数ビットのためのバーニヤ・セット）のための位相選択器である２つの位相選択器を有する。これらの偶数バーニヤ・セットおよび奇数バーニヤ・セットは、すべての信号のタイミングをそのポートにバランスさせるために、ポート毎に提供されている。
【００１７】
図２は、クロック信号１１６、１２０および１２４の相対タイミングを示したものである。詳細には、図２（ａ）は、３３３ＭＨｚクロック信号１１６を示したものであり、図２（ｂ）は、ＰＬＬ１１８によって生成される１６個の位相オフセット１．３３３ＭＨｚクロック信号１２０を示したものである。また、図２（ｃ）は、位相発生器１２２によって生成される６４個の位相オフセット３３３ＭＨｚクロック信号１２４を示したものである。
【００１８】
もう一度図１を参照すると、位相選択器１２６の各々は、位相発生器１２２から受け取る６４個のクロック信号から１組１６個の連続クロック信号１２８セットを選択するように構成されており、位相選択器の各々は、自身の組（必ずしもその必要はないが、場合によっては固有の組）の１６個のクロック信号セットを選択するように個々に構成することができる。１組１６個の連続クロック信号セットは、６４個のクロック信号の円形セット内に「取り囲む」ことができることに留意されたい。たとえば位相発生器は、位相発生器１２２によって生成される最後の１０個のクロック信号および最初の６個のクロック信号からなる１組１６個の連続クロック信号セットを選択するように構成することができる。
【００１９】
図１に示すように、ＳＢＲ回路１０４は、８組のバーニヤ・セットを有しており、そのうちの１つは、ＳＢＲ回路１０４からＤＤＲメモリ・ブロック１０６へ送信される異なる７組の信号セットの各々のためのものであり、８番目のバーニヤ・セットは、ＰＬＬ１１８のためのフィードバック・クロック信号１３６と結合する（これについては以下でより詳細に説明する）。信号ビットの各々は、独自のバーニヤを有する。たとえば、ポートＡのためのバーニヤ・セットは、２２個の異なるバーニヤを有しており、そのうちの１つは、Ａｄｄｒｅｓｓ［１５：０］中の１６個のビットの各々のためのものであり、１つは、ＢＡ［２：０］中の３つのビットの各々のためのものであり、また、１つは、ＷＥ、ＣＡＳおよびＲＡＳの各々のためのものである。一方、クロック・イネーブル信号のためのバーニヤ・セットには、８つのバーニヤ、つまりＣＫＥ［７：０］中の８つのビットの各々に１つのバーニヤしか存在していない。
【００２０】
ＳＢＲ回路１０４は、クロック・バーニヤ（１３０および１３２）と非クロック・バーニヤ１３４の２つの異なるタイプのバーニヤを有しており、また、出力クロック・バーニヤ１３０とフィードバック・クロック・バーニヤ１３２の２つの異なるタイプのクロック・バーニヤが存在する。出力クロック・バーニヤ１３０の各々は、差動クロック信号ＣＫ［１１：０］（ＤＤＲメモリ・ブロック１０６へ送信される信号）中の異なる対のクロック信号に対応する。１つのフィードバック・クロック・バーニヤ１３２は、シングル・エンド・フィードバック・クロック信号１３６（ＰＬＬ１１８に印加される信号）に対応する。他の７つのフィードバック・バーニヤ１３２は、クロックのタイミングをバランスさせるために使用されるダミーである。非クロック・バーニヤ１３４の各々は、ＤＤＲメモリ・ブロック１０６へ送信される異なるアドレス・ビットまたは制御ビットに対応する。
【００２１】
個々のバーニヤ・セット内では、すべてのバーニヤが、対応する位相選択器１２６によって選択された同じセットの１６個の連続クロック信号を受け取る。たとえば、ポートＡのためのバーニヤ・セット内の２２個のすべてのバーニヤが、図１に示す一番上の位相選択器１２６によって選択された１６個の連続クロック信号を受け取る。バーニヤの各々は、受け取った１６個のクロック信号の中から、信号ビット処理を制御するために使用する１つのクロック信号を選択するように構成されており、バーニヤの各々は、自身（必ずしもその必要はないが、場合によっては固有）のクロック信号を選択するように個々に構成することができる。
【００２２】
図１に示すように、信号復号器１３８は、ホスト・コントローラ１０２からバス１１０を介して受け取ったアドレス信号および制御信号を復号する（必要に応じて）。信号復号器１３８によって復号化されたアドレス信号および制御信号は、必要に応じて、バス１４０を介して、異なるバーニヤ・セットの異なるバーニヤに分配される。たとえば、ポートＡに対するＡｄｄｒｅｓｓ［０］ビットと結合するバーニヤは、バス１４０を介して、復号化されたＡｄｄｒｅｓｓ［０］ビットを受け取り、一方、第４のチップ・セレクト信号ＣＳ［３］と結合するバーニヤは、バス１４０を介して、復号化されたＣＳ［３］ビットを受け取る。ポートＢ、ＣおよびＤと結合する、バス１４０を介して同じく同じＡｄｄｒｅｓｓ［０］ビットを受け取るバーニヤが存在することに留意されたい。しかしながら、重要なことには、これらの４つのバーニヤは、すべて、選択された異なるクロック信号によって駆動することが可能である（必ずしもその必要はないが）。
【００２３】
図１に示す上位４組のバーニヤ・セットは、個々のセットがメモリ素子の特定のポートに対応するアドレス信号および制御信号を専ら処理するため、場合によっては「専用」バーニヤ・セットと呼ぶことができる。次の３つバーニヤ・セットは、これらのセットの各々が複数のメモリ素子に対する制御信号またはクロック信号を処理するため、場合によっては「共有」バーニヤ・セットと呼ぶことができる。
【００２４】
バーニヤの各々は、バーニヤによって生成される、リタイミング化された対応するビット信号１４２をＤＤＲメモリ・ブロック１０６へ駆動し（最初の７つのバーニヤ・セットの個々のバーニヤの場合）、あるいはＰＬＬ１１８へ駆動する（８番目のバーニヤ・セットの場合）独自の出力ドライバ１４４を有する。
【００２５】
図１に示すように、８つのバーニヤ・セットは、８つの異なるバーニヤを有しており、それらの各々が、図１に示す一番下の位相選択器１２６から受け取る１６個の連続クロック信号のうちの１つ（必ずしもその必要はないが、場合によっては異なる１つ）からフィードバック・クロック信号１３６を生成する。ＰＬＬ１１８は、ＰＬＬ出力クロック信号１２０を生成するためのＰＬＬフィードバック信号として非ダミー・フィードバック・クロック信号を使用するように構成されている。
【００２６】
Ｉ２Ｃインタフェース１４６は、ＳＢＲ回路１０４内の内部制御／状態レジスタ（図示せず）に、正規モード動作およびスリープ・モード動作のためのプログラマビリティ機能を提供する。Ｉ２Ｃインタフェース１４６は、参照によりその教示が本明細書に組み込まれている、I2C-Bus Specification、第2.1版、2000年1月に明記されているI2Cバス・プロトコルをサポートする。
【００２７】
パワー・マネジャー１４８は、ＳＢＲ回路１０４への穏やかな電力の供給および停止を保障する。また、パワー・マネジャー１４８は、ホスト入力信号をマスキングし、差動クロックＣＫ［１１：０］およびクロック・イネーブル信号ＣＫＥ［７：０］の出力を停止することによって、ＳＢＲ回路１０４を低電力モードにする動作を実行する。
【００２８】
図３は、図１に示す位相発生器１２２のブロック図を示したものである。位相発生器１２２は、図１に示すＰＬＬ１１８によって生成される１６個の１．３３３ＧＨｚクロック信号１２０（図３ではクロック信号ＰＨＡＳＥ［１５：０］で参照されている）を受け取り、６４個の３３３ＭＨｚクロック信号１２４（図３ではクロック信号ＣＫＰＨ［６３：０］で参照されている）を生成する。
【００２９】
詳細には、４つのリタイミング・ブロック３０２（１）〜（４）の各々が１６個のクロック信号１２０を受け取り、３つの遅延ブロック３０４（１）〜（３）の各々が第１の１．３３３ＧＨｚクロック信号ＰＨＡＳＥ［０］を受け取っている。分割器３０６は、１．３３３ＧＨｚクロック信号ＰＨＡＳＥ［０］を４分の１に分割し、３３３ＭＨｚクロック信号３０８を生成する。この３３３ＭＨｚクロック信号３０８は、第１のリタイミング・ブロック３０２（１）および第１の遅延ブロック３０４（１）の両方に印加される。
【００３０】
第１のリタイミング・ブロック３０２（１）は、クロック信号３０８に基づいて、６４個のクロック信号１２４のうちの第１の組の１６個のクロック信号ＣＫＰＨ［１５：０］セットを生成する。
【００３１】
第１の遅延ブロック３０４（１）は、３３３ＭＨｚクロック信号３０８を１．３３３ＧＨｚクロック信号ＰＨＡＳＥ［０］の１クロック・サイクルだけ遅延させ、得られた第１の遅延クロック信号３１０を第２のリタイミング・ブロック３０２（２）および第２の遅延ブロック３０４（２）の両方に印加する。
【００３２】
第２のリタイミング・ブロック３０２（２）は、第１の遅延クロック信号３１０に基づいて、６４個のクロック信号１２４のうちの第２の組の１６個のクロック信号ＣＫＰＨ［３１：１６］セットを生成する。
【００３３】
第２の遅延ブロック３０４（２）は、３３３ＭＨｚの第１の遅延クロック信号３１０を１．３３３ＧＨｚクロック信号ＰＨＡＳＥ［０］の１クロック・サイクルだけ遅延させ、得られた第２の遅延クロック信号３１２を第３のリタイミング・ブロック３０２（３）および第３の遅延ブロック３０４（３）の両方に印加する。
【００３４】
第３のリタイミング・ブロック３０２（３）は、第２の遅延クロック信号３１２に基づいて、６４個のクロック信号１２４のうちの第３の組の１６個のクロック信号ＣＫＰＨ［４７：３２］セットを生成する。
【００３５】
第３の遅延ブロック３０４（３）は、３３３ＭＨｚの第２の遅延クロック信号３１２を１．３３３ＧＨｚクロック信号ＰＨＡＳＥ［０］の１クロック・サイクルだけ遅延させ、得られた第３の遅延クロック信号３１４を第４のリタイミング・ブロック３０２（４）に印加する。
【００３６】
第４のリタイミング・ブロック３０２（４）は、第３の遅延クロック信号３１４に基づいて、６４個のクロック信号１２４のうちの第４の組（最後の組）の１６個のクロック信号ＣＫＰＨ［６３：４８］セットを生成する。
【００３７】
位相選択器１２６の各々は、本質的には、位相発生器１２２から６４個の位相オフセット・クロック信号１２４を受け取り、受け取った６４個のクロック１２４の中から最初の１６個の出力クロック１２８（開始フェーズとも呼ばれる）を識別する６ビット制御信号（０から６３までの値を有する）に基づいて、１組１６個の連続クロック信号１２８セットを出力するマルチプレクサである。開始フェーズが任意の１６〜３１または４８〜６３である場合、対応する１６個の連続クロック信号１２８が反転される。このクロック・バス反転を下流側で処理するために、位相選択器１２６の各々は、さらに、１ビットＦＬＩＰ信号（図１には示されていない）を生成しており、クロック・バスが反転する場合はこの値がセットされ（たとえば論理１にセットされる）、また、クロック・バスが反転していない場合はリセットされる（たとえば論理０にセットされる）。このＦＬＩＰ信号は、対応する組の１６個の連続クロック信号１２８セットを受け取る個々のバーニヤに印加される。
【００３８】
バーニヤ
図４は、図１に示す個々の非クロック・バーニヤ１３４のブロック図を示したものである。非クロック・バーニヤ１３４は、（１）（ａ）復号化されたアドレス・データまたは制御データの対応するビットをバス１４０から受け取り（Ｓｉｇｎａｌ＿Ｉｎとして）、かつ、（ｂ）図１に示す対応する位相選択器１２６によって選択された１６個の連続クロック信号１２８を受け取り、（２）これらの１６個のクロックの中から、受け取ったデータ・ビットをリタイミング化し、リタイミング化されたデータ・ビットをＳｉｇｎａｌ＿Ｏｕｔ（つまり図１に示す信号１４２）として、図１に示す対応する出力ドライバ１４４に提供するために使用するクロックを１つ選択する。
【００３９】
詳細には、１６対１グリッチレス・マルチプレクサ４０２は、図１に示す対応する位相選択器１２６によって生成される４ビット・バーニヤ制御信号４０６（Ｖｅｒｎｉｅｒ＿Ｃｔｌ［３：０］）およびＦＬＩＰ信号４０８に基づいて、１６個の連続クロック１２８からリタイミング・クロック４０４を選択する。ＦＬＩＰ信号がセットされている場合、マルチプレクサ４０２は、リタイミング・クロック４０４を生成するために、選択されたクロック１２８を反転させることに留意されたい。
【００４０】
図５は、図４に示す１６対１グリッチレス・マルチプレクサ４０２に使用することができるグリッチレス１６：１マルチプレクサ５００のブロック図を示したものである。１６対１マルチプレクサ５０６は、１６個の連続クロック１２８を受け取り、マルチプレクサ・コントローラ５０２によって生成される４ビット・グレイ・コード・マルチプレクサ制御信号５０４（Ｇｒａｙ＿Ｃｔｌ［３：０］）に基づいてリタイミング・クロック４０４を選択する。マルチプレクサ・コントローラ５０２は、マルチプレクサ制御信号５０４を生成するために、リタイミング・クロック４０４に基づいてバーニヤ制御信号４０６を同期化する。マルチプレクサ・コントローラ５０２には、準安定状態になる機会を確実にゼロにすることができる回路技法が使用されている。詳細には、マルチプレクサ・コントローラ５０２は、バーニヤ制御信号４０６を連続的にモニタする。マルチプレクサ・コントローラ５０２がバスの変化を知覚すると、マルチプレクサ・コントローラ５０２は、それに応じてその状態マシンを更新することができるが、マルチプレクサ５０６の出力（つまりリタイミング・クロック４０４）にグリッチが現れないようにすることができるのは、クロック１２８がローの場合のみである。また、バーニヤ制御信号４０６を生成するソフトウェアは、変化を知覚し、かつ、適切に対処する（つまりマルチプレクサ５０６によって構築されるリタイミング・クロック４０４に対して連続クロック１２８の選択を変更する）ための十分な時間をマルチプレクサ・コントローラ５０２に与えるために、バーニヤ制御信号４０６が変化する頻度を、たとえば６クロック・サイクル毎にせいぜい１回に制限するように設計されている。
【００４１】
マルチプレクサ・コントローラ５０２は、４ビット２進バーニヤ制御信号４０６を、１６対１マルチプレクサ５０６からリタイミング・クロック４０４に同期化される４ビット・グレイ・コード・マルチプレクサ制御信号５０４に変換する。マルチプレクサ・コントローラ５０２は、必要に応じて、ＦＬＩＰ信号４０８の値に基づいてマルチプレクサ制御信号５０４を修正し、マルチプレクサ５０６による所望の多重化を生成する。
【００４２】
たとえばＦＬＩＰ信号４０８が０の場合、マルチプレクサ・コントローラ５０２は、バーニヤ制御信号４０６と同じになるようにマルチプレクサ制御信号５０４を生成する。したがってバーニヤ制御信号４０６が［００００］である場合、マルチプレクサ制御信号５０４は［００００］であり、マルチプレクサ５０６は、リタイミング・クロック４０４に対して、連続クロック１２８の位相０クロックを選択する。同様に、バーニヤ制御信号４０６が［０００１］である場合、マルチプレクサ制御信号５０４は［０００１］であり、マルチプレクサ５０６は、リタイミング・クロック４０４に対して、連続クロック１２８の位相１クロックを選択する。バーニヤ・クロック信号４０６の他の１４個の値に対しても同様である。
【００４３】
しかしながら、ＦＬＩＰ信号４０８が１の場合、マルチプレクサ・コントローラ５０２は、バーニヤ制御信号４０６の補数になるようにマルチプレクサ制御信号５０４を生成する。したがってバーニヤ制御信号４０６が［００００］である場合、マルチプレクサ制御信号５０４は［１１１１］であり、マルチプレクサ５０６は、リタイミング・クロック４０４に対して、連続クロック１２８の位相１５クロックを選択する。同様に、バーニヤ制御信号４０６が［０００１］である場合、マルチプレクサ制御信号５０４は［１１１０］であり、マルチプレクサ５０６は、リタイミング・クロック４０４に対して、連続クロック１２８の位相１４クロックを選択する。バーニヤ・クロック信号４０６の他の１４個の値に対しても同様である。
【００４４】
もう一度図４を参照すると、グリッチレス・クロック開始／停止ブロック４１０は、図１に示すＰＬＬ１１８がロックされると、マルチプレクサ・クロックＣＫ＿ＭＵＸを穏やかにイネーブルする。また、開始／停止ブロック４１０は、マルチプレクサ・クロックＣＫ＿ＭＵＸが常にローで停止するリセット状態にＰＬＬが突入する前に、マルチプレクサ・クロックＣＫ＿ＭＵＸを穏やかローにシャット・ダウンすることに関与している。詳細には、正規の動作状態の下では、クロック・イネーブル制御信号ＥＮ＿ＣＬＫがロー（つまり非イネーブル状態）からハイ（つまりイネーブル状態）になると、リタイミング・クロック４０４は、リタイミング・クロック４０４の次の立上り縁で（つまり次のクロック・サイクルの開始時に）、マルチプレクサ・クロックＣＫ＿ＭＵＸとして伝播を開始する。同様に、ＥＮ＿ＣＬＫがハイからローになると、リタイミング・クロック４０４は、リタイミング・クロック４０４の次の立下り縁で（つまり現行のクロック・サイクルの終了時に）、ＣＫ＿ＭＵＸとしての伝播を停止する。
【００４５】
クロック・オーバライド制御信号ＣＬＫ＿ＯＶＥＲＲＩＤＥは、図１に示すＩ２Ｃインタフェース１４６による開始／停止ブロック４１０の制御を可能にする。詳細には、ＣＬＫ＿ＯＶＥＲＲＩＤＥ＝１である場合、ＥＮ＿ＣＬＫの極性に無関係にＣＬＫ＿ＯＵＴがイネーブルされる。非同期であるこのオーバライド機能は、クロック・イネーブル制御信号ＥＮ＿ＣＬＫが動作しない場合に使用されるフェイルセーフ・モードを提供する。リセット制御信号ＲＥＳＥＴは、開始／停止ブロック４１０内の出力フリップ・フロップ（図示せず）をローの値に保持する。
【００４６】
クロックが開始／停止ブロック４１０からイネーブルされると、リセット発生器４１２によってシンク・スタート制御信号ＳＹＮＣ＿ＳＴＡＲＴがセットされ、デマルチプレクサ／マルチプレクサの同期化（以下で説明する）を開始することができる。
コントローラ４１４は、デマルチプレクサ・クロックＣＫ＿ＤＥＭＵＫ（つまり図１に示すクロック１１６）およびマルチプレクサ・クロックＣＫ＿ＭＵＸ（開始／停止ブロック４１０から）を受け取り、デマルチプレクサ／マルチプレクサ・セクションを同期化するためにそれぞれ１対４デマルチプレクサ４１６および４対１マルチプレクサ４１８に印加される２ビット・グレイ・コード制御信号ＧＲＡＹ＿ＤＥＭＵＸ［１：０］およびＧＲＡＹ＿ＭＵＸ［１：０］を生成する。２ビット遅延制御信号ＤＥＬ［１：０］は、図１に示す３３３ＭＨｚホスト・クロック信号１０８の１サイクル毎の６４個の異なる位相から２５６個の異なる位相へ、４ホスト・クロック・サイクルでバーニヤ毎にプログラム可能位相を拡張する。ＤＥＬの値によって、デマルチプレクサ／マルチプレクサ・セクションをイネーブルする前に遅延させるホスト・クロック・サイクルの数が決まる。
【００４７】
デマルチプレクサ４１６は、２ビット・デマルチプレクサ制御信号ＧＲＡＹ＿ＤＥＭＵＸ［１：０］に基づいてシリアル・データ・ストリームＳｉｇｎａｌ＿Ｉｎを４つのパラレル・データ・ストリーム（ＢＩＴ１＿ＦＦ１、ＢＩＴ２＿ＦＦ２、ＢＩＴ３＿ＦＦ３およびＢＩＴ４＿ＦＦ４）に変換し、一方、マルチプレクサ４１８は、２ビット制御信号ＧＲＡＹ＿ＭＵＸ［１：０］に基づいて、デマルチプレクサ６１６から受け取った４つのパラレル・データ・ストリームを直列にする。こうして、シリアル入力データ・ストリームＳｉｇｎａｌ＿Ｉｎがリタイミング化され、リタイミング化されたシリアル出力データ・ストリームＳｉｇｎａｌ＿Ｏｕｔが生成される。
【００４８】
アップであれダウンであれ、バーニヤ１３４を一度に１ＬＳＢずつ変化させても（つまり制御信号４０６の値を１ビットずつ増加または減少させ、延いてはＧｒａｙ＿ＤｅｍｕｘおよびＧｒａｙ＿Ｍｕｘの値を１ビットずつ変化させても）、デマルチプレクサ４１６およびマルチプレクサ４１８の同期化を妨害することはない。また、このような変化によって大きなジッタが生成されることもない。したがって、バーニヤ１３４が１ＬＳＢずつ変化する毎にスリープ・モードを介して巡回させる必要はない。しかしながら、バーニヤ１３４が一度に１ＬＳＢを超えて変化する場合、同期化を再起動させるためには、バーニヤ１３４は、スリープ・モードを介して巡回しなければならない。スリープ・モードは、（ｉ）内部クロックを停止して電力消費を少なくし、（ｉｉ）信号をポート上で静止状態に保持するように設計されている。
【００４９】
図６は、図１に示す個々の出力クロック・バーニヤ１３０および個々のフィードバック・クロック・バーニヤ１３２に使用することができるクロック・バーニヤ６００のブロック図を示したものである。クロック・バーニヤ６００は、図４に示す非クロック・バーニヤ１３４と同様のアーキテクチャを有するが、特定の重大な相違がある。類似点に関して言えば、１６対１グリッチレス・マルチプレクサ６０２、グリッチレス・クロック開始／停止ブロック６１０およびマルチプレクサ６１８は、図４に示すマルチプレクサ４０２、ブロック４１０およびマルチプレクサ４１８と全く同様に実施することができる。
【００５０】
相違点に関しては、クロック・バーニヤ６００には、図４に示すデマルチプレクサ４１６に類似したデマルチプレクサが使用されていない。デマルチプレクサ６１６は、図４に示すようなデマルチプレクサ４１６とは異なり、バイパスされ、さらにはクロック・バーニヤ６００から除去される。図６に示すように、マルチプレクサ６１８への最後の３つのデータ入力および２ビット制御信号Ｇｒａｙ＿Ｍｕｘは、マルチプレクサ６１８がＳｉｇｎａｌ＿Ｏｕｔとして常にその最初のデータ入力を出力することを保障するために接地に接続されている。
【００５１】
また、ダミー・ブロック６１２および６１４は、等価信号伝播遅延を提供するために、それぞれ図４に示すリセット発生器４１２およびコントローラ４１４の処理を模倣する。
【００５２】
拡張
以上、本発明について、図１に示す、ＳＢＲ回路１０４が存在するコンピュータ・システム１００のコンテキストの中で説明した。本発明は、一般に、
〇  ホスト・クロック信号の周波数が３３３ＭＨｚ以外の周波数であり、かつ／またはホスト・クロック信号が差動ではなくシングル・エンドである
〇  ＰＬＬをベースとするクロック発生回路（たとえば図１に示すＰＬＬ１１８および位相発生器１２２）が、６４個の位相オフセット・クロック信号以外の信号を生成し、かつ／または３３３ＭＨｚ以外の周波数で信号を生成する
〇  ＰＬＬをベースとするクロック発生回路が、１６個の位相オフセット中間クロック信号（たとえば図１に示すクロック信号１２０）以外の信号を生成し、かつ／または１．３３３ＭＨｚ以外の周波数で信号を生成する
〇  ４つのポートＡ〜Ｄ以外のポートを有する異なる数のメモリ・ブロックが存在する
〇  異なる数のバーニヤ・セットが存在する
〇  異なる信号セットが存在し、かつ／または様々なバーニヤ・セットに異なる数のバーニヤが存在する
〇  異なる数および／またはタイプのアドレス信号および制御信号がＳＢＲ回路によって処理される
コンピュータ・システムのためのＳＢＲ回路のコンテキストの中で実施することができる。
【００５３】
本発明は、単一集積回路（ＡＳＩＣまたはＦＰＧＡなど）、マルチチップ・モジュール、シングル・カードあるいはマルチ・カード回路パックとしての可能実施態様を始めとする、（アナログ、ディジタルまたはアナログとディジタルの両方のハイブリッド）回路をベースとするプロセスとして実施することができる。当業者には明らかなように、回路エレメントの様々な機能は、ソフトウェア・プログラムの中の処理ブロックとして実施することも可能である。このようなソフトウェアは、たとえばディジタル信号プロセッサ、マイクロコントローラまたは汎用コンピュータに使用することができる。
【００５４】
明確に言及されていない限り、個々の数値および範囲は、その値または範囲の前に「約」または「ほぼ」という語が付されているものとして近似的に解釈されたい。
また、本発明の性質を説明するために上で説明し、かつ、図に示した詳細、材料および部品の配置には、特許請求の範囲に明示されている本発明の範囲を逸脱することなく様々な変更を加えることができることは当業者には理解されよう。
【００５５】
特許請求の範囲における図面番号および／または図面参照ラベルの使用には、特許請求の範囲の解釈を容易にするために、特許請求する主題の１つまたは複数の可能実施形態を識別することが意図されている。このような使用を、特許請求の範囲を対応する図面に示されている実施形態に必然的に限定するものとして解釈してはならない。
【００５６】
本明細書に示されている例示的方法のステップは、必ずしも上で説明した順序で実行する必要はなく、このような方法のステップの順序は、単なる例示的なものにすぎないことを理解されたい。同様に、このような方法は、追加ステップを含むことも可能であり、また、特定のステップを省略し、あるいは本発明の様々な実施形態と矛盾しない方法で特定のステップを組み合わせることも可能である。
【００５７】
特許請求の範囲の方法クレームにおける構成要素は、構成要素が存在する場合、対応するラベルが付された特定のシーケンスで記載されているが、これらの構成要素は、クレームの記載がこれらの構成要素の一部またはすべてを実施するための特定のシーケンスを暗に意味していない限り、その特定のシーケンスでの実施に必ずしも限定されない。
【００５８】
本明細書における「一実施形態」あるいは「ある実施形態」という用語の参照は、その実施形態に関連して記述されている特定の特徴、構造または特性を、本発明の少なくとも１つの実施形態に含むことができることを意味する。本明細書の様々な部分に出現する「一実施形態では」という語句は、それらのすべてが必ずしも同じ実施形態を指するわけではなく、また、個別の実施形態または代替実施形態は、必ずしも他の実施形態を互いに排他するものではない。「実施態様」という用語についても同様である。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態による、複数のメモリ素子を有するコンピュータ・システムの一部を示すブロック図である。
【図２】図１に示すクロック信号１１６、１２０および１２４の相対タイミングを示す図である。
【図３】図１に示す位相発生器のブロック図である。
【図４】図１に示す個々の非クロック・バーニヤのブロック図である。
【図５】図４に示す１６対１グリッチレス・マルチプレクサに使用することができるグリッチレス１６：１マルチプレクサのブロック図である。
【図６】図１に示す個々の出力クロック・バーニヤおよび個々のフィードバック・クロック・バーニヤに使用することができるクロック・バーニヤのブロック図である。
【図１】
2008022557.tif 000003
【図２】
2008022557.tif 000004
【図３】
2008022557.tif 000005
【図４】
2008022557.tif 000006
【図５】
2008022557.tif 000007
【図６】
2008022557.tif 000008