(57)【要約】  本発明の実施例は、最小数のトランジションが行われることを保証するため、入力及び出力データレーンのデータトランジション数を追跡することによって、派生クロッキングアーキテクチャの必須の同期サイクルの必要を実質的に削除するポイント・ツー・ポイントメモリチャネルを実現する。本発明の他の実施例は、最小のデータトランジション密度を満たす可能性を向上させるため、データ反転を実行する。さらなる他の実施例が請求項に記載される。
2007511010.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータレーンを有するポイント・ツー・ポイントメモリチャネルの少なくとも１つのデータレーンについて達成されるデータトランジション密度を計算するステップと、
前記達成されるトランジション密度に応答して、前記少なくとも１つのデータレーンを介し同期信号を送信するステップと、
から構成されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
前記少なくとも１つのデータレーンについて達成されるデータトランジション密度を計算するステップは、所定回数のクロックサイクル中にデータトランジションが前記少なくとも１つのデータレーン上で行われる回数を計数することを特徴とする方法。
【請求項３】
請求項２記載の方法であって、さらに、
前記少なくとも１つのデータレーンについて所望のデータトランジション密度を格納するステップと、
前記達成されるデータトランジション密度と前記所望のデータトランジション密度とを比較するステップと、
を有することを特徴とする方法。
【請求項４】
請求項３記載の方法であって、
前記達成されるトランジション密度に応答して、前記少なくとも１つのデータレーンを介し同期信号を送信するステップは、前記達成されるデータトランジション密度が前記少なくとも１つのデータレーンの前記所望のデータトランジション密度より小さい場合、前記データレーンのすべてを介し同期信号を送信することを特徴とする方法。
【請求項５】
ポイント・ツー・ポイント形式に接続されるプロセッサを有するホストと複数のＤＩＭＭと、
各々が複数のデータレーンを有する入力データチャネルと出力データチャネルと、
前記少なくとも１つのデータレーンの達成されるデータトランジション密度が、前記少なくとも１つのデータレーンの所望のデータトランジション密度より小さいか検出するよう構成される少なくとも１つのトランジション検出回路と、
から構成されることを特徴とするメモリチャネル。
【請求項６】
請求項５記載のメモリチャネルであって、
前記少なくとも１つのトランジション検出回路は、前記ホスト上に配置されることを特徴とするメモリチャネル。
【請求項７】
請求項５記載のメモリチャネルであって、
前記少なくとも１つのトランジション検出回路は、前記複数のＤＩＭＭの対応する一つに配置されることを特徴とするメモリチャネル。
【請求項８】
請求項５記載のメモリチャネルであって、
前記少なくとも１つのトランジション検出回路は、
各々が対応するデータライン上のデータトランジションを検出するよう構成される複数のデータトランジション検出装置と、
クロックサイクルカウンタと、
各々が対応するデータトランジション検出装置により検出されるデータトランジションを計数し、前記クロックサイクルカウンタによりリセットされるよう構成される複数のデータトランジションカウンタと、
前記複数のデータトランジションカウンタの少なくとも１つが、前記クロックサイクルカウンタにより規定される期間中、記所望のデータトランジション密度より小さな対応するデータトランジション検出装置により検出されるデータトランジション数を計数するときを通知するよう構成されるロジックブロックと、
から構成されることを特徴とするメモリチャネル。
【請求項９】
請求項８記載のメモリチャネルであって、
前記クロックサイクルカウンタと前記複数のデータトランジションカウンタは、プログラム可能であることを特徴とするメモリチャネル。
【請求項１０】
請求項８記載のメモリチャネルであって、
前記ロジックブロックは、ＡＮＤゲートと複数のＮＡＮＤゲートから構成されることを特徴とするメモリチャネル。
【請求項１１】
請求項５記載のメモリチャネルであって、
前記少なくとも１つのトランジション検出回路は、
各々が対応するデータレーンのデータトランジションを検出するよう構成される複数のデータトランジション検出装置と、
クロックサイクルカウンタと、
各々が対応するデータトランジション検出装置により検出されるデータトランジションを計数し、前記クロックサイクルカウンタによりリセットされるよう構成される複数のデータトランジションカウンタと、
前記出力データパスのデータレーンに対応する前記複数のデータトランジションカウンタの少なくとも１つが、前記クロックサイクルカウンタにより規定される期間中、前記所望のデータトランジション密度より小さな前記対応するデータトランジション検出装置により検出されるデータトランジション数を計数するときを通知するよう構成される第１ロジックブロックと、
前記入力データパスのデータレーンに対応する前記複数のデータトランジションカウンタの少なくとも１つが、前記クロックサイクルカウンタにより規定される期間中、前記所望のデータトランジション密度より小さな前記対応するデータトランジション検出装置により検出されるデータトランジション数を計数するときを通知するよう構成される第２ロジックブロックと、
から構成されることを特徴とするメモリチャネル。
【請求項１２】
請求項１１記載のメモリチャネルであって、
前記クロックサイクルカウンタと前記複数のデータトランジションカウンタは、プログラム可能であることを特徴とするメモリチャネル。
【請求項１３】
請求項１１記載のメモリチャネルであって、
前記第１ロジックブロックと第２ロジックブロックは、ＡＮＤゲートと複数のＮＡＮＤゲートから構成されることを特徴とするメモリチャネル。
【請求項１４】
読み出し時、
所望のデータトランジション数を格納するステップと、
クロックサイクル数を格納するステップと、
ポイント・ツー・ポイントメモリチャネルのデータレーンについて、前記クロックサイクル数に等しいクロックサイクル期間中に測定されたデータトランジション数を記録するステップと、
前記測定されたデータトランジション数と前記所望のデータトランジション数とを比較するステップと、
から構成されるプロセスをマシーンに実行させるマシーン可読媒体。
【請求項１５】
請求項１４記載のマシーン可読媒体であって、読み出し時、さらに、前記測定されたデータトランジション数が前記所望のデータトランジション数より小さい場合、前記データレーンを介し同期信号を送信するステップを有するプロセスをマシーンに実行させるマシーン可読媒体。
【請求項１６】
予め選択されたデータ反転スキームに従う反転モードにより複数のデータレーンを有するポイント・ツー・ポイントメモリチャネルから選択されたデータレーンを動作させるステップから構成されることを特徴とする方法。
【請求項１７】
請求項１６記載の方法であって、
前記反転モードにより選択されたデータレーンを動作させるステップは、前記ポイント・ツー・ポイントメモリチャネルのノードの前記選択されたデータレーンの受信機と送信機の両方に同時にデータ反転を適用することを特徴とする方法。
【請求項１８】
所定のデータ反転スキームを実現するよう構成されるロジックブロックと、
各々が前記所定のデータ反転スキームに従う反転モードにより対応するデータレーンを動作させるよう構成される複数の反転装置と、
から構成されることを特徴とするプログラム可能なトランジション生成装置。
【請求項１９】
請求項１８記載のプログラム可能なトランジション生成装置であって、さらに、
各々が対応する反転装置からの出力に接続される複数のバッファを有することを特徴とする装置。
【請求項２０】
請求項１８記載のプログラム可能なトランジション生成装置であって、
前記複数の反転装置は、入力として前記ビットシーケンスからのビットと前記対応するデータレーンを有することを特徴とする装置。
【請求項２１】
請求項１８記載のプログラム可能なトランジション生成装置であって、
前記ロジックブロックは、ラップアラウンドシフトレジスタから構成されることを特徴とする装置。
【請求項２２】
読み出し時、予め選択されたデータ反転スキームに従う反転モードによりポイント・ツー・ポイントメモリチャネルの選択されたデータレーンを動作させるステップから構成されるプロセスをマシーンに実行させるマシーン可読媒体。
【請求項２３】
請求項２２記載のマシーン可読媒体であって、
前記予め選択されたデータ反転スキームに従う反転モードによりポイント・ツー・ポイントメモリチャネルの選択されたデータレーンを動作させるステップは、前記選択されたデータレーンに対応する複数の受信機と複数の送信機に同時に前記予め選択されたデータ反転スキームに従って適用されるデータ反転を適用することを特徴とするマシーン可読媒体。
【請求項２４】
請求項２２記載のマシーン可読媒体であって、
読み出し時、さらに、前記予め選択されたデータ反転スキームを表すビットシーケンスをラップアラウンドシフトレジスタにロードするステップを有するプロセスを前記マシーンに実行させるマシーン可読媒体。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の背景］
１．発明の技術分野
本開示は、一般にメモリシステム、コンポーネント及び方法に関し、より詳細には、ＦＢＤ（Ｆｕｌｌｙ  Ｂｕｆｆｅｒｅｄ  ＤＩＭＭ）メモリチャネルにおける派生クロッキング（ｄｅｒｉｖｅｄ  ｃｌｏｃｋｉｎｇ）技術のデータ密度を維持するための方法及び装置に関する。
２．関連技術の説明
図１は、「スタブバス（ｓｔｕｂ  ｂｕｓ）」トポロジーを示す従来技術によるメモリチャネル１００を示すブロック図である。メモリチャネルは、ホスト１１０と４つのＤＩＭＭ１２０、１３０、１４０、１５０を有する。各ＤＩＭＭ１２０、１３０、１４０、１５０は、ホスト１１０とデータを交換するためメモリバス１１５に接続されている。各ＤＩＭＭ１２０、１３０、１４０、１５０は、短い電気スタブをメモリバス１１５に加えている。過去約１５年の間、メモリサブシステムはこのタイプのスタブバストポロジーに依存してきた。
【０００２】
シミュレーションは、メモリチャネルごとに２〜４のＤＩＭＭのアプリケーションについて、スタブバス技術が８バイト幅ＤＩＭＭについて５３３〜６６７ＭＴ／ｓ（メガトランザクション／秒）又は４．２〜５．３ＧＢ／ｓ（ギガバイト／秒）の最大帯域幅に達することを示してきた。次に重要なレベルである８００メガトランスファ／秒（ＭＴ／ｓ）以上に到達することは、スタブバストポロジーにより不可能でない場合には困難となる。
【０００３】
本発明の実施例は、従来技術の上記及び他の問題点に対処するものである。
【０００４】
［発明の詳細な説明］
メモリチャネルごとに４．２〜５．３ＧＢ／ｓ以上のメモリ帯域幅要求を向上させるため、本発明の実施例は、「ポイント・ツー・ポイント」（Ｐ２Ｐ）信号処理技術を利用している。図２は、Ｐ２Ｐトポロジーによるメモリチャネル２００を示すブロック図である。Ｐ２Ｐメモリチャネル２００は、４つのＤＩＭＭ２２０、２３０、２４０及び２５０を有する。各ＤＩＭＭは、８つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置２６０を有する。他のＰ２Ｐメモリチャネルは、異なる個数のＤＩＭＭを有するかもしれないが、そのような場合にも図２に示されるように構成されるであろう。
【０００５】
ホスト２１０とＤＩＭＭ２２０〜２５０は、メモリバス２１５に接続され、ここで、２１５ａは（ホストへの）入力データストリームを表し、２１５ｂは（ホストからの）出力データストリームを表す。この場合、ＤＩＭＭ２５０が連鎖の最後にあるため、ホストから最も離れたＤＩＭＭ２５０からの入力データパスと出力データパスは、利用されない。
【０００６】
ホスト２１０は、１以上のマイクロプロセッサ、信号プロセッサ、メモリコントローラ、グラフィックプロセッサなどを有することが可能である。典型的には、メモリコントローラは、システムメモリへのアクセスを調整し、入力データパス２１５ａと出力データバス２１５ｂに直接接続されるホスト２１０のコンポーネントとされるであろう。
【０００７】
ポイント・ツー・ポイント構成では、各ＤＩＭＭはバッファチップ２７０を有する。バッファチップ２７０は、入力データストリーム２１５ａ又は出力データストリーム２１５ｂから信号を取得し、この信号をデイジーチェーン（ｄａｉｓｙ−ｃｈａｉｎ）形式による近隣ＤＩＭＭを介し次のバッファチップ２７０に再送することが要求されている。これらのポイント・ツー・ポイントリンクは、差動信号ペア（ｄｉｆｆｅｒｅｎｔｉａｌ  ｓｉｇｎａｌｉｎｇ  ｐａｉｒ）を用いて双方向の高速同時データ通信を可能にする。
【０００８】
入力データストリーム２１５ａと出力データストリーム２１５ｂは、いくつかの高速信号（図示せず）から構成され、各高速信号は差動ペアにより実現される。
【０００９】
バッファチップ２７０は、データストリーム２１５ａと２１５ｂから信号を取得するため、有効なデータをラッチしなければならない。図３は、データストリーム２１５ａ又は２１５ｂの一部である差動ペアの一例となるデータトランジションを示す図である。バッファチップ２７０は、差動信号がそれのトランジションを完了させるとデータをラッチすることが好ましい。言い換えると、バッファチップ２７０は、データアイ（ｄａｔａ  ｅｙｅ）のほぼ中間でデータをラッチすることが好ましい。各バッファチップ２７０は、外部基準クロックから受信したデータをラッチするための派生クロック（図示せず）を生成し、それがデータアイの中心となるように派生クロックを補間する。
【００１０】
データアイと派生クロックの間の位相関係を維持するため、一定期間におけるある最小回数のデータトランジションが求められる。言い換えると、最小トランジション密度（ｍｉｎｉｍｕｍ  ｔｒａｎｓｉｔｉｏｎ  ｄｅｎｓｉｔｙ）が維持される必要がある。最小トランジション密度は、典型的には、各１２８クロックサイクルについて５データトランジションのオーダーとされるが、それはシステム要求に応じて、それより多くても少なくともよい。
【００１１】
最小数のデータトランジションが行われることを保証するため、ホスト２１０は、出力データパス２１５ｂを介し求められるデータトランジションを含む同期データストリームを定期的に送信するようにしてもよい。同期ストリームが最後のＤＩＭＭ２５０に到達すると、出力と入力の両方のデータパスが同期されるように、それは入力データパス２１５ａを介しホストに送信される。あるいは、ホスト２１０からの同期データストリームは、最後のＤＩＭＭ２５０において終了するようにしてもよく、最後のＤＩＭＭ２５０は、ホスト２１０で終了するよう入力データパス２１５ａを介し送信される他の同期データストリームを生成することができる。
【００１２】
１２８クロックサイクルごとに５データトランジションを達成するため、データ同期ストリームは、利用可能な帯域幅の約４％を要求する。ＦＢＤメモリチャネルのＦＬＩＴ（Ｆｌｏｗ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）長は１２サイクル長であるため、同期データストリームは、１２８サイクルごとに１２サイクル又は利用可能な帯域幅の約９．４％となるであろう。このスキームでは、実際のデータトランジション密度はモニタされず、同期サイクルは、それらが実際には必要とされているか否かに関係なく送信される。この結果、これは、データ帯域幅（及びシステムパフォーマンス）が犠牲にされるため、好ましい実現形態ではない。
【００１３】
図４は、本発明の実施例によるトランジション密度検出装置４０を示すブロック図である。図４を参照するに、トランジション密度検出装置４０は、図２のＰ２ＰメモリチャネルなどのＰ２Ｐメモリチャネルの入力（ＩＢ）データパス又は出力（ＯＢ）データパスからのデータレーンの１つを入力として有するいくつかのデータトランジション検出装置（ＤＴＤ）を有する。この特定のケースにおいて、入力データパスには１４のデータレーン（ＩＢ［０］〜ＩＢ［１３］）が存在し、出力データパスには１０のデータレーン（ＯＢ［０］〜ＯＢ［９］）が存在する。各データレーンＯＢ［０−９］及びＩＢ［０−１３］は、差動信号に対応する。
【００１４】
ＤＴＤ［０−２３］は、対応するデータレーンＯＢ及びＩＢが図３に示されるようなトランジションを受ける時を検出する。ＤＴＤ［０−２３］は、対応するデータレーンＯＢ及びＩＢを介したトランジションが検出されると、出力をアサートする。ＤＴＤ［０−２３］の出力は、対応するプログラム可能なデータトランジションカウンタ（ＤＴＣ）に対する入力である。この場合、ＤＴＣ［０−２３］は、３ビット非ラップアラウンドカウンタ（３−ｂｉｔ  ｎｏｎ−ｗｒａｐａｒｏｕｎｄ  ｃｏｕｎｔｅｒ）である。あるいは、ＤＴＣに使用されるカウンタのサイズは、より大きなものでも小さなものであってもよい。ＤＴＣは、所与のクロックサイクル数についての所望のデータトランジション数により予めプログラムされている。カウンタが予めプログラムされた数に到達すると即座に、それは、対応するデータレーンが予めプログラムされた数により指定されるトランジション密度に到達したことを示すそれの出力をアサートする。例えば、ＤＴＣ［０］が５により予めプログラムされる場合、対応する出力データレーンＯＢ［０］について少なくとも５つのデータトランジションが行われたとき、それの出力をアサートする。
【００１５】
データトランジション密度検出装置４０はまた、８ビットプログラム可能ラップアラウンドクロックサイクルカウンタ４２を有する。クロックサイクルカウンタ４２は、所望の回数のデータトランジションが行われることを必要とする所望のクロックサイクル数により予めプログラムされる。例えば、クロックサイクルカウンタ４２を数１２８により予めプログラムすることにより、クロックサイクルカウンタは１２８クロックサイクルごとに出力をアサートする。あるいは、クロックサイクルカウンタ４２のビット数は、より多くてもより少なくてもよい。クロックサイクルカウンタ４２の出力がアサートされると、それは非ラップアラウンドＤＴＣ［０−２３］のすべてをリセットする。
【００１６】
ＤＴＤ［０−２３］、ＤＴＣ［０−２３］及びクロックサイクルカウンタ４２は、共に機能グループ４１を構成する。
【００１７】
ＤＴＣ［０−２３］の出力は、ＮＡＮＤロジック４４の入力として供される。ＮＡＮＤロジック４４は、ＤＴＣ［０−２３］の出力の何れかが「０」であるとき、データレーンＯＢ［０−９］又はＩＢ［０−１３］の１つが所望のデータトランジション密度に到達していないことを示す「１」を出力する。当業者は、これがＮＡＮＤゲートを用いてどのように実現されるか精通しており、ＮＡＮＤロジック４４の詳細は、これ以上は説明しない。同様に、他の実施例は、同じ結果を達成するため、ＮＡＮＤロジック４４の代わりに異なるタイプのロジックゲートを使用するようにしてもよい。クロックサイクルカウンタ４２が、指定されたクロックサイクル数の後に「１」をアサートするとき、ＮＡＮＤロジック４４の出力が「１」である場合、ＡＮＤゲート４６における入力が両方ともアサートされ、信号ＤｏＳｙｎｃがイネーブルとされる。このため、ＤｏＳｙｎｃ信号は、データレーンＯＢ［０−９］とＩＢ［０−１３］の何れかが同期サイクルを要求するとアサートされる。ＮＡＮＤロジック４４と同様に、ＡＮＤゲート４６により実現されるロジックが、当業者に周知の他のロジックゲートの組み合わせを用いて実現されてもよい。
【００１８】
図５は、本発明の他の実施例によるトランジション密度検出装置を示すブロック図である。図５により示される実施例は、機能グループ４１が図４に示されるものと同一のコンポーネントを有するという点で、図４に示されるものと同一である。しかしながら、これらの実施例では、ＮＡＮＤロジックブロック５２は２つある。ＮＡＮＤロジック５２は、出力データパスＯＢ［０−９］に対応し、ＮＡＮＤロジック５４は、入力データパスＩＢ［０−１３］に対応する。ＮＡＮＤロジック５２と５４の動作は、図４のＮＡＮＤロジック４４と同じである。すなわち、ＮＡＮＤロジック５２の出力は、出力データパスＯＢ［０−９］の１つがプログラムされたデータトランジション密度に到達していないとき、アサートされる。ＮＡＮＤロジック５４の出力は、入力データパスＩＢ［０−１３］の１つがプログラムされたデータトランジション密度に到達していないとき、アサートされる。ＮＡＮＤロジック５２と５４の出力は、それぞれＡＮＤゲート５６と５８に供給される。
【００１９】
図４に示される実施例と同様に、ＡＮＤゲート５６と５８の他の入力は、クロックサイクルカウンタ４２の出力である（図４を参照されたい）。これらの実施例によると、２つの信号が生成される。ＤｏＳｙｎｃＯＢは、出力データパスの１つが、プログラムされたクロックサイクル数の後に同期信号を要求するとアサートされ、ＤｏＳｙｎｃＩＢは、入力データパスの１つが、プログラムされたクロックサイクル数の後に同期信号を要求するとアサートされる。
【００２０】
図４及び５を参照するに、ＤｏＳｙｎｃ、ＤｏＳｙｎｃＯＢ及びＤｏＳｙｎｃＩＢは、このような同期が必要とされるときに限って、同期信号の送信をトリガーするのに利用されてもよい。従って、メモリチャネルの実際のデータトランジション密度に関係なく、帯域幅は同期信号をブラインド送信することにより無駄にされない。これにより、図４及び５に示される実施例は、送信される信号に対する特定の間隔においてデータトランジション密度をトラッキング可能なプログラム可能な機構を提供する。
【００２１】
これらの実施例においてクロックサイクルカウンタ４２とＤＴＣ［０−２３］のプログラム可能性は便利な特徴であるが、他の実施例は、このような特徴を要求しない。言い換えると、ＤＴＣ［０−２３］とクロックサイクルカウンタ４２は、それらがカウンタのビット数に応じた各自のリミットに達すると、単に出力をアサートすることができる。
【００２２】
さらに、図４及び５に示される実施例は、図２のバッファチップ２７０のホスト２１０の両方に設けられるようにしてもよい。
【００２３】
図６Ａは、本発明のさらなる他の実施例によるプログラム可能なトランジション生成装置６０を示すブロック図である。トランジション生成装置６０は、予め選択されたデータ反転スキームに従ってバッファチップ２７０（図２）の送信機及び受信機（図示せず）の両方に同時にデータ反転を適用する。従って、予め選択された方法によりデータ反転を適用することにより、所定のクロックサイクル数ごとにホストが一度必須の同期信号を送信することなく、最小データトランジション密度が達成される可能性が高くなる。トランジション生成装置６０は、図２のバッファチップ２７０とホスト２１０の両方に設けられてもよい。
【００２４】
図６Ａにおいて、シフトレジスタ６１０は、１４のストレージビットを有するラップアラウンドシフトレジスタである。シフトレジスタ６１０の各ストレージビットＩＮＶ［１３：０］は、入力データパスＩＮＢ［１３：０］のデータレーンに対応する。ストレージビットＩＮＶ［１３］、ＩＮＶ［１２］、ＩＮＶ［１１］などとそれの対応するデータレーンＩＢ［１３］、ＩＢ［１２］、ＩＢ［１１］などのそれぞれは、反転装置６２０の入力となる。シフトレジスタのストレージビットＩＮＶ［１３：０］がそれの対応するデータレーンＩＢ［１３：０］について「１」を含むときは常に、対応する反転装置６２０はイネーブルとされ、当該データレーンは反転モードにより処理される。
【００２５】
シフトレジスタ６１０の動作中、ビットＩＮＶ［１３：０］は各クロックサイクルを右方向にシフトする。言い換えると、最上位ビットＩＮＶ［１３］はＩＮＶ［１２］となり、ＩＮＶ［１２］はＩＮＶ［１１］になるなどであり、最下位ビットＩＮＶ［０］は、新たな最上位ビットＩＮＶ［１３］となるシリアル入力ＳｅｒＩｎにラップアラウンドされる。あるいは、シフトレジスタ６１０は、ビットＩＮＶ［１３：０］が各クロックサイクルを左方向にシフトするように、構成可能である。反転装置６２０からの出力は、対応するバッファ６３０によりバッファされる。
【００２６】
図６Ａは、一方向のみのデータトランジションを処理するよう構成されるトランジション生成装置６０を示す。すなわち、トランジション生成装置６０は、入力（ＩＢ）データパスの一部である受信機と送信機（図示せず）のみにデータ反転を適用する。例えば、出力データパスが１０のデータラインＯＢ［９：０］を含む場合、１０のストレージビットを有する他のデータトランジション生成装置６０は、出力データパスを介し受信機及び送信機に必要とされる。あるいは、図６Ａのデータトランジション生成装置６０は、シフトレジスタ６１０が２４ビット長（入力パスに１４ビットと、出力パスに１０ビット）のシフトレジスタと置換される場合、入力データパスＩＢ［１３：０］と出力データパスＯＢ［９：０］の両方を収容することが可能である。この場合、追加的な１０の反転装置６２０と追加的な１０のバッファ６３０がまた、出力データパスを処理するのに必要とされるであろう。
【００２７】
シフトレジスタ６１０は、チャネル上のすべてのＤＩＭＭとホストのリセット中に、ＰａｒＩｎを介しパラレルにロードされるようにしてもよく、シフトレジスタのコンテンツは、ＣＬＯＣＫと同期してシフトされる。シフトレジスタ６１０は、チャネル上のすべてのコンポーネントによるロックステップにおいて動作し、すなわち、各ＤＩＭＭの受信機及び送信機は、反転処理と同期される。あるいは、シフトレジスタ６１０は、チャネル上の他の１つの隣接チャネルによってのみロックステップにより動作するようにしてもよい。これは、図２を参照してより容易に説明される。入力パス２１５ａにおいて、ＤＩＭＭ２４０のバッファチップ２７０の送信機（図示せず）は、ＤＩＭＭ２３０のバッファチップ２７０の上の受信機（図示せず）によるロックステップにおいて動作する。出力パス２１５ｂにおいて、ＤＩＭＭ２３０のバッファチップ２７０の送信機（図示せず）は、ＤＩＭＭ２４０のバッファチップ２７０の受信機（図示せず）によるロックステップにおいて動作する。言い換えると、個々のＤＩＭＭ又はホスト２１０と隣接ＤＩＭＭ２２０を介し互いに対向する受信機と送信機が、ロックステップにおいて動作する。
【００２８】
図６Ｂは、図６Ａの実施例を用いて可能なデータ反転スキームのいくつかの例を示すテーブルである。行６４０、６５０及び６６０はそれぞれ、シフトレジスタ６１０のビット一ＩＮＶ［１３：０］にパラレルにロードされる初期値を表す１４ビットを含む。行６４０は、データレーンが１つおきのクロックサイクルにおいて反転されるデータ反転スキームを表す。行６５０は、何れのデータ反転も入力データレーンＩＢ［１３：０］に適用されないデータ反転スキームを表す。行６６０は、データ反転がＩＢ［７］から始まり、ＩＢ［６］，．．．，ＩＢ［０］，ＩＢ［１３］，．．．，ＩＢ［８］、そしてＩＢ［７］において再スタートされるまでに、入力データレーンＩＢ［１３：０］のそれぞれに逐次的に適用されるマーチング（ｍａｒｃｈｉｎｇ）データ反転スキームを表す。図６Ｂの矢印は、ＩＮＶ［０］位置のビットが、シフトレジスタ６１０の動作中にＩＮＶ［１２］位置にラップアラウンドされることを示す。
【００２９】
あるいは、ラップアラウンドされたシフトレジスタ６１０のストレージビットＩＮＶ［Ｘ：０］のビット数は、入力データパスのデータレーン数ＩＢ［Ｙ：０］の個数より大きなものであってもよい（Ｘ＞Ｙ）。例えば、図６Ｂの行６６０に示されるデータ反転スキームでは、データ反転は１４クロックサイクルごとに各データレーンごとに適用される。しかしながら、ラップアラウンドシフトレジスタ６１０が１２８ビットシフトレジスタであって、データレーンＩＢ［１３：０］に対応する１４のビットがシフトレジスタ６１０の全体に任意に分散されている場合、行６６０と同様のパターンを利用して、データ反転が１２８クロックサイクルごとに、又は約９倍低速に各入力データレーンごとに適用される。
【００３０】
各１４クロックサイクルごとと各１２８クロックサイクルごとの間の何れかのデータ反転周波数を達成するため、より多くの「１」がシフトレジスタ６１０のＩＮＶ［１３：０］にロードされるビットパターンに追加されてもよい。
【００３１】
あるいは、ラップアラウンドシフトレジスタ６１０のストレージビットＩＮＶ［Ｘ：０］のビット数は、入力データパスのデータレーンＩＢ［Ｙ：０］のレーン数より小さなものであってもよい（Ｘ＜Ｙ）。例えば、１つおきのクロックサイクルでデータレーンについて反転が行われる図６Ｂの行６４０に示されるものなど、データ反転スキームを実現することのみ所望されていると仮定する。この場合、１，０によりロードされる２ビットシフトレジスタが、１４ビットシフトレジスタ６１０の代わりに利用可能である。反転装置６２０の１／２は、入力として２ビットシフトレジスタの１ビットを使用し、その他の１／２は、他方のビットを使用する。１４ビットレジスタと比較して、２ビットレジスタを利用することにより、汎用性が犠牲にされるが、同一のデータ反転スキームが図６Ｂの行６４０と同様に達成可能である。
【００３２】
この結果、データ反転があるデータレーンについて行われる頻度が、シフトレジスタ６１０のビット数とシフトレジスタにロードされるビットパターンにより制御可能であることは明らかである。各バッファチップ２７０の送信機と受信機は反転モードにより動作するよう同期されているため、各バッファチップについてデータトランジションを有しすぎるペナルティは存在しない。
【００３３】
さらに、図６Ａにより示される実施例と上述の他の実施例はシフトレジスタを用いてデータ反転スキームを実現するが、他の実施例は、異なる方法によりデータ反転を実現可能である。例えば、最上位ビットから最下位ビットに移行するとき、バイナリカウンタのビットが頻度の増大させることにより「０」から「１」又はその単体にスイッチするため、バイナリカウンタが利用可能である。この場合、対応するデータパスＩＢ［１３：０］に加えて、反転装置６２０は、所望の頻度により状態をスイッチするカウンタから選択されたビットを入力として有することとなる。データ反転スキームを実現する他の多数の方法が、当業者には明らかであろう。
【００３４】
複数の実施例により本発明の原理を説明及び図示したが、本発明は上記原理から逸脱することなく構成及び詳細において変更可能であるということは明らかであろう。以下の請求項の趣旨及び範囲内に属するすべての改良及び変形が主張される。
【図面の簡単な説明】
【００３５】
【図１】図１は、「スタブバス」トポロジーを用いた従来技術によるメモリチャネルを示すブロック図である。
【図２】図２は、「ポイント・ツー・ポイント」によるメモリチャネルを示すブロック図である。
【図３】図３は、差動ペア信号の典型的なデータトランジションを示す図である。
【図４】図４は、本発明の実施例によるプログラム可能なトランジション密度検出装置を示すブロック図である。
【図５】図５は、本発明の他の実施例によるプログラム可能なトランジション密度検出装置を示すブロック図である。
【図６Ａ】図６Ａは、本発明のさらなる他の実施例によるプログラム可能な反転装置を示すブロック図である。
【図６Ｂ】図６Ｂは、図６Ａの実施例を利用することにより可能なデータ反転スキームの例を示すテーブルである。
【図１】
2007511010.tif 000003
【図２】
2007511010.tif 000004
【図３】
2007511010.tif 000005
【図４】
2007511010.tif 000006
【図５】
2007511010.tif 000007
【図６Ａ】
2007511010.tif 000008
【図６Ｂ】
2007511010.tif 000009
【国際調査報告】
2007511010.tif 000010
2007511010.tif 000011
2007511010.tif 000012