(57)【要約】      （修正有）【課題】複数のＯＲチェーンバス用拡張データバス反転（ＥＤＢＩ）符号化に関する複数の方法及び装置を提供する。【解決手段】データバスに連結され、入力データを受信する受信機、受信機に連結され、データバスにおける次のデータ値が有効な値からパーキング状態に移行するか否かを決定する制御ロジック及びデータバスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定に少なくとも部分的に基づき、入力データを符号化する符号化ロジック１６０から構成される。【選択図】図４
2016122435.tif 000002
【特許請求の範囲】
【請求項１】
データバスに連結され、入力データを受信する受信機、
前記受信機に連結され、前記データバスにおける次のデータ値が有効な値からパーキング状態に移行するか否かを決定する制御ロジック、及び、
前記データバスにおける前記次のデータ値が前記有効な値から前記パーキング状態に移行するか否かの前記決定に少なくとも部分的に基づき、前記入力データを符号化する符号化ロジック、
を備える装置。
【請求項２】
前記符号化ロジックは、現在のバス値及び前記次のデータ値間のハミング距離と、前記次のデータ値の重みとの比較に少なくとも部分的に基づき、前記入力データを符号化する、
請求項１に記載の装置。
【請求項３】
前記符号化ロジックは、前記次のデータ値の重みと前記データバスの幅との比較に少なくとも部分的に基づき、前記次のデータ値の反転をさせる、
請求項１または２に記載の装置。
【請求項４】
前記入力データは、複数のソースに由来する、
請求項１から３の何れか一項に記載の装置。
【請求項５】
前記複数のソースは、複数のバスを含む、
請求項４に記載の装置。
【請求項６】
前記複数のソースは、デイジーチェーン構成に連結される、
請求項４または５に記載の装置。
【請求項７】
前記複数のソースは、ＯＲツリー構成に連結される、
請求項４から６の何れか一項に記載の装置。
【請求項８】
前記符号化ロジックは、前記複数のバスからの前記入力データを追加ビットを用いて符号化する、
請求項１に記載の装置。
【請求項９】
前記符号化ロジックと、
前記制御ロジックと、
１つまたは複数のプロセッサコアを有するプロセッサと、
メモリと、は同一の集積デバイス上にある、
請求項１に記載の装置。
【請求項１０】
バスにおける入力データを、前記バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定の少なくとも部分的に基づき、符号化する段階
を含む
方法。
【請求項１１】
現在のバス値及び前記次のデータ値間のハミング距離と、前記次のデータ値の重みとの比較に少なくとも部分的に基づき、前記入力データを符号化する段階、
をさらに含む
請求項１０に記載の方法。
【請求項１２】
前記次のデータ値の重みと前記バスの幅との比較の少なくとも部分的に基づき、前記次のデータ値の反転をさせる段階、
をさらに含む
請求項１０または１１に記載の方法。
【請求項１３】
前記入力データは、複数のソースに由来する、
請求項１０から１２の何れか一項に記載の方法。
【請求項１４】
前記複数のソースは、複数のバスを含む、
請求項１３に記載の方法。
【請求項１５】
前記複数のソースは、デイジーチェーン構成に連結される、
請求項１３または１４に記載の方法。
【請求項１６】
前記複数のソースは、ＯＲツリー構成に連結される、
請求項１３から１５の何れか一項に記載の方法。
【請求項１７】
前記複数のバスからの前記入力データを追加ビットを用いて符号化する段階、
をさらに含む
請求項１０に記載の方法。
【請求項１８】
ディスプレイデバイスと、
前記ディスプレイデバイスに連結され、メモリに格納される１つまたは複数の画像を前記ディスプレイデバイスに表示させるプロセッサと、
前記プロセッサに連結され、バスにおける入力データを、前記バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定の少なくとも部分的に基づき、符号化するロジックと、
を備えるシステム。
【請求項１９】
前記ロジックは、現在のバス値及び前記次のデータ値間のハミング距離と、前記次のデータ値の重みとの比較に少なくとも部分的に基づき、前記入力データを符号化する、
請求項１８に記載のシステム。
【請求項２０】
前記ロジックは、前記次のデータ値の重みと前記バスの幅との比較に少なくとも部分的に基づき、前記次のデータ値の反転をさせる、
請求項１８または１９に記載のシステム。
【請求項２１】
前記入力データは、複数のソースに由来する、
請求項１８から２０の何れか一項に記載のシステム。
【請求項２２】
前記複数のソースは、複数のバスを含む、
請求項２１に記載のシステム。
【請求項２３】
前記ロジックは、前記複数のバスからの前記入力データを追加ビットを用いて符号化する、
請求項１８に記載のシステム。
【請求項２４】
１つまたは複数の命令を含むコンピュータ可読媒体であって、
前記１つまたは複数の命令は、プロッセサ上で実行された場合、前記プロセッサに請求項１０から１７の何れか一項に記載の１つまたは複数の動作を実行するように構成させる、
コンピュータ可読媒体。
【請求項２５】
請求項１０から１７の何れか一項に記載の方法を実行する手段を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、エレクトロニクスの分野に関する。より具体的には、実施形態は、複数ＯＲチェーンバスの拡張データバス反転符号化に関する。
【図面の簡単な説明】
【０００２】
詳細な説明は、複数の添付の図面を参照して提供される。複数の図において、参照番号の最左端の桁は、その参照番号が最初に現れる図を特定する。複数の異なる図において複数の同一の参照番号が用いられる場合は、複数の同様または同一のアイテムを示す。
【図１】本明細書において説明される様々な実施形態を実装するのに利用可能なコンピューティングシステムの実施形態のブロック図を示す。
【図２】本明細書において説明される１つまたは複数の実施形態を実装するのに利用可能なコンピューティングシステムの実施形態のブロック図を示す。
【図３Ａ】データバス反転（ＤＢＩ）符号化がデータ送信アクティビティを増大させるデータのパーキングを伴う４ビットのバスデータ送信を示す。
【図３Ｂ】重み付けコーディング（ＷＣ）符号化がデータ送信アクティビティを増大させるデータのパーキングを伴う４ビットのバスデータ送信を示す。
【図４】実施形態に係る拡張データバス反転（ＥＤＢＩ）エンコーダのブロック図を示す。
【図５】実施形態に係るＥＤＢＩ符号化を提供する方法のフロー図を示す。
【図６】実施形態に係るＥＤＢＩ決定ブロックを示す。
【図７】本明細書において説明される１つまたは複数の実施形態を実装するのに利用可能なコンピューティングシステムの実施形態のブロック図を示す。
【図８】本明細書において説明される１つまたは複数の実施形態を実装するのに利用可能なコンピューティングシステムの実施形態のブロック図を示す。
【図９】実施形態に係るシステムオンチップ（ＳｏＣ）パッケージのブロック図を示す。
【発明を実施するための形態】
【０００３】
以下の説明において、多数の具体的な詳細は、様々な実施形態の完全な理解を提供すべく、記載される。しかし、いくつかの実施形態は、複数の特定の詳細がなくても実施可能である。複数の他の例において、複数の周知の方法、複数の手順、複数のコンポーネント、及び複数の回路は、複数の特定の実施形態を不明瞭にしないようにすべく、詳細に説明されていない。複数の実施形態の様々な態様は、複数の集積半導体回路（「ハードウェア」）、１つまたは複数のプログラムにまとめられる複数のコンピュータ可読命令（「ソフトウェア」）またはハードウェア及びソフトウェアのいくつかの組み合わせのような、様々な手段を用いて実行されてよい。本開示の複数の目的のため、「ロジック」の参照は、ハードウェア、ソフトウェア、またはこれらのいくつかの組み合わせの何れかを意味するものとする。
【０００４】
概して、（例えば、データ送信を強調する）複数の比較的に幅の広いバスを有する複数のシステムに対し、複数のバスの容量（データ移行アクティビティ用）の充電及び放電に起因して、大量なエネルギーが放散される。（１）複数のデータ値変化、及び／または（２）有効なものから「パーキング」状態へのデータバス移行に起因して、バスにおける切り替えアクティビティは起こり得る。「パーキング」状態は、概して、バスが、例えば、より迅速及び／または正確に複数の後続の動作を容易にするように、決定的状態を有する状態を指す。例えば、いくつかの実装は、２つのバスを組み合わせる（ＯＲチェーンする）場合、複数の複合マルチプレクサを用いてよい。しかし、バスの状態がパーキングの場合、制御ゲートの出力は、決定的に読み取られてよい（例えば、複数の入力のうちの1つが常に１または０）。また、状態のパーキングは、複数の複合マルチプレクサに関連付けられるハードウェアの量を減少する（同様に、複数のコスト、電力消費、及び／または遅延を減少する）。さらに、複数のマルチプレクサに対する複数の制御信号はもはや存在しないので、複数の複合マルチプレクサの欠如は、より容易な制御ソリューションを提供する。複数の以前のソリューションは、概して、複数のバスを組み合わせる場合にパーキング状態を考慮しなく、従って、次第により多くの電力消費、複数のコスト、複数の遅延などをもたらす切り替えアクティビティを増大し得る。
【０００５】
そこで、いくつかの実施形態は、複数の「ＯＲ」（すなわち、ロジックＯＲ）チェーンバス用拡張データバス反転（ＥＤＢＩ）符号化を提供する。本明細書において説明されるように、用語「バス」は、「相互接続」と互換的に称されてよい。本明細書において説明されるように、ＥＤＢＩ符号化は、バスのパーキングが用いられる場合、複数のデータバスの切り替えアクティビティ（例えば、各バスにおける複数の送信機と）を減少し得る。実施形態において、バスにおける入力データ（例えば、複数のソース／バスに由来する）は、バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定に少なくとも部分的に基づき、符号化される。
【０００６】
さらに、本明細書において説明される複数の技術は、図１から９を参照して説明されるものを含み、（例えば、デスクトップコンピュータ、サーバ、ワークステーションなどのような非移動式デバイスと、スマートフォン、タブレット、ＵＭＰＣ（ウルトラモバイルパーソナルコンピュータ）、ラップトップコンピュータ、ウルトラブックＴＭコンピューティングデバイス、（複数のスマートウォッチ、スマートメガネのような）複数のウェアラブルデバイスのような移動式デバイスなどの）様々なコンピューティングシステムに利用可能である。より具体的には、図１は、実施形態に係るコンピューティングシステム１００のブロック図を示す。システム１００は、１つまたは複数のエージェント１０２―１から１０２―Ｍ（本明細書において、総括して、「複数のエージェント１０２」またはより概して、「エージェント１０２」と称される）を含む。実施形態において、１つまたは複数のエージェント１０２は、図１から９を参照して説明される複数のコンピューティングシステムのようなコンピューティングシステムの複数のコンポーネントである。
【０００７】
図１に図示されるように、複数のエージェント１０２は、ネットワークファブリック１０４を介して通信を行う。一実施形態において、ネットワークファブリック１０４は、様々なエージェント（例えば複数のコンピューティングデバイス）にデータ通信を行うことを可能にするコンピュータネットワークを含む。実施形態において、ネットワークファブリック１０４は、シリアル（例えば、ポイントツーポイント）リンク及び／または（実施形態においてリングとして構成される）共有通信ネットワークを介して通信を行う１つまたは複数の相互接続（または複数の相互接続ネットワーク）を含む。各リンクは、１つまたは複数のレーンを含んでよい。例えば、いくつかの実施形態は、例えば、完全バッファデュアル（ＦＢＤ）リンクは複数のメモリモジュールを（プロセッサまたはメモリハブのような）ホストコントローラデバイスに連結するシリアルリンクである、複数のＦＢＤインラインメモリモジュールとの通信を可能にする、複数のリンクにおけるコンポーネントのデバッグまたは検証を容易にする。デバッグ情報が複数のチャネルトラフィックトレースキャプチャツール（例えば１つまたは複数のロジックアナライザ）によって、当該チャネルに沿って観察されるように、当該デバッグ情報は、ＦＢＤチャネルホストから送信される。
【０００８】
一実施形態において、システム１００は、物理層、リンク層、ルーティング層、トランスポート層、及び／またはプロトコル層を含む層状プロトコル方式をサポートする。ファブリック１０４は、ポイントツーポイントまたは共有ネットワークに対して１つのプロトコル（例えば、キャッシュプロセッサまたはキャッシュアウェアメモリコントローラ）から別のプロトコルへのデータの移行を（例えば、複数のパケットの形に）さらに容易にする。また、いくつかの実施形態において、ネットワークファブリック１０４は、１つまたは複数のキャッシュコヒーレントプロトコルに繋ぐ通信を提供する。
【０００９】
さらに、図１の複数の矢印の方向に示されるように、複数のエージェント１０２は、ネットワークファブリック１０４を介して、データを送信及び／または受信をすることができる。従って、他の複数のエージェントが通信用双方向リンクを利用する一方、いくつかのエージェントは、単方向リンクを利用する。例えば、いくつかのエージェント（例えばエージェント１０２―１）は、（例えば、双方向リンク１１０を介して）データを送受信の両方をする一方、１つまたは複数のエージェント（例えばエージェント１０２―Ｍ）は、（例えば、単方向リンク１０６を介して）データを送信し、複数の他のエージェント（例えばエージェント１０２―２）は、（例えば、単方向リンク１０８を介して）データを受信する。
【００１０】
さらに、少なくとも１つのエージェント１０２はホームエージェントであって、１つまたは複数のエージェント１０２は、要求またはキャッシュエージェントである。概して、複数の要求／キャッシュエージェントは、対応する「ホームエージェント」が関連付けられるメモリアドレスにアクセスするようにホームノード／エージェントに要求を送信する。さらに、実施形態において、１つまたは複数のエージェント１０２（エージェント１０２―１の１つのみが示される）は、（当該エージェントに専用されるまたは複数の他のエージェントと共有され得る）メモリ１２０のようなメモリへのアクセスを有する。いくつかの実施形態において、各（または少なくとも１つの）エージェント１０２は、当該エージェントと同一のダイにおける、またはそうでなければ、当該エージェントによってアクセス可能なメモリ１２０に連結される。また、図１に示されるように、複数のエージェント１０２は、本明細書において説明されるように、複数のＯＲチェーンバスに対する複数のＥＤＢＩ符号化動作をサポートするＥＤＢＩエンコーダロジック１６０を含む。
【００１１】
図２は、実施形態に係るコンピューティングシステム２００のブロック図である。システム２００は、複数のソケット２０２から２０８（４つが示されているが、いくつかの実施形態はより多くのまたは少ないソケットを含み得る）を含む。各ソケットは、プロセッサを含む。また、システム２００における様々なエージェントは、ロジック１６０を含むことができる。ロジック１６０は複数のアイテム２０２及びＭＣ２／ＨＡ２にのみ示されるが、ロジック１６０は、システム２００の複数の他のエージェント内に提供されてよい。さらに、より多くのまたは少ないロジックブロックは、実装に応じてシステムに存在し得る。さらに、各ソケットは、ポイントツーポイント（ＰｔＰ）リンク、または例えば迅速経路相互接続（ＱＰＩ）、ＭＩＰＩ（モバイルインダストリプロセッサインタフェース）などのディファレンシャル相互接続を介して、複数の他のソケットに連結する。図１のネットワークファブリック１０４に関連して説明されたように、各ソケットは、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む複数のデュアルインラインメモリモジュール（ＤＩＭＭｓ）によって形成される、システムメモリの局所部分に連結する。
【００１２】
別の実施形態において、ネットワークファブリックは、任意のシステムオンチップ（ＳｏＣまたはＳＯＣ）アプリケーションのために利用され、ＡＭＢＡ（次世代マイクロコントローラバスアーキテクチャ）用の複数のＡＲＭ準拠インタフェース、ＯＣＰ（オープンコアプロトコル）、ＭＩＰＩ（モバイルインダストリプロセッサインタフェース）、ＰＣＩ（周辺構成要素相互接続）またはＰＣＩｅ（周辺構成要素相互接続エクスプレス）のような複数のカスタムまたは標準インタフェースを利用する。
【００１３】
いくつかの実施形態は、複数のＩＰリソース自体に複数の何らかの変化をももたらさないＰＣＩベースのシステムのようなＰＣ（パーソナルコンピュータ）ベースのシステムにおいて複数のＡＸＩ／ＯＣＰ技術のような複数の異質のリソースの使用を可能にする技術を用いる。複数の実施形態は、本明細書においてＹｕｎｉｔ及びシムと称される、２つ非常に薄いハードウェアブロックを提供し、複数のＰＣＩ互換性システムを生成する自動生成相互接続ファブリック内にＡＸＩ／ＯＣＰ  ＩＰをプラグするように用いられ得る。一実施形態において、Ｙｕｎｉｔの第１（例えば、北の）インタフェースは、ダイレクトメディアインタフェース（ＤＭＩ）バス、ＰＣＩバス、または周辺構成要素相互接続エクスプレス（ＰＣＩｅ）バスのようなＰＣＩ互換性バスに対してインタフェースとなるアダプタブロックに接続する。第２（例えば、南の）インタフェースは、ＡＸＩ／ＯＣＰ相互接続のようなノンＰＣ相互接続に直接に接続する。様々な実施例において、このバスは、ＯＣＰバスであってよい。
【００１４】
いくつかの実施形態において、Ｙｕｎｉｔは、複数のＰＣＩ構成サイクル、を対象ＩＰが理解できる複数のトランザクションに変換することによってＰＣＩエニュメレーションを実装する。このユニットはまた、複数の再配置可能なＰＣＩアドレスから複数の固定ＡＸＩ／ＯＣＰアドレスにアドレス変換を実行し、その逆も実行する。Ｙｕｎｉｔは、生産者‐消費者モデル（例えば、ＰＣＩ生産者‐消費者モデル）を満たすように順序付けメカニズムをさらに実装し得る。同様に、複数の個々のＩＰは、複数の専用のＰＣＩシムを介して、相互接続に接続される。各シムは、対応するＩＰに対して全体のＰＣＩヘッダを実装し得る。Ｙｕｎｉｔは、ＰＣＩヘッダへの全てのアクセスを、及びシムへのデバイスメモリスペースを、決まったルートを経て送る。シムは、全ての複数のヘッダ読み取り／書き込みトランザクションを実行し、複数の他のトランザクションをＩＰに渡す。いくつかの実施形態において、シムはまた、ＩＰの複数の特徴に関連する全ての電力管理を実装する。
【００１５】
従って、Ｙｕｎｉｔを実装する複数の実施形態は、モノリシックコンパティビリティブロックであるというよりも、分散型アプローチを取る。例えば、アドレス変換及び順序付けのような全てのＩＰに跨って共通する機能性は、Ｙｕｎｉｔに実装される一方、例えば電力管理、エラー処理などのＩＰ固有の機能性は、そのＩＰに合わせられる複数のシムに実装される。
【００１６】
このように、新しいＩＰは、Ｙｕｎｉｔに対して複数の最小の変化を伴って加えられ得る。例えば、一実施例において、複数の変化は、アドレスリダイレクションテーブルに新しいエントリを追加することによって起こり得る。複数のシムはＩＰ固有である一方、いくつかの実施例において、（例えば、９０％より大きい）大量の機能性は、全てのＩＰに跨って共通である。これは、新しいＩＰに対して既存のシムの迅速な再構成を可能にする。こうして、いくつかの実施形態はまた、修正を行わずに複数の自動生成相互接続ファブリックの使用を可能にする。ポイントツーポイントバスアーキテクチャにおいて、複数の相互接続ファブリックの設計は、挑戦的な課題となり得る。上述のＹｕｎｉｔアプローチは、複数の工業規格ツールに対して何らかの修正を要求せず、最小の取り組みで工業エコシステムをＰＣＩシステムに梃入れする。
【００１７】
図２に示されるように、各ソケットは、メモリコントローラ（ＭＣ）／ホームエージェント（ＨＡ）（例えばＭＣ０／ＨＡ０からＭＣ３／ＨＡ３）に連結される。複数のメモリコントローラは、システムメモリの一部であり得る（図７のメモリ７１２のような）対応するローカルメモリ（ＭＥＭ０からＭＥＭ３と表記される）に連結される。いくつかの実施形態において、メモリコントローラ（ＭＣ）／ホームエージェント（ＨＡ）（例えばＭＣ０／ＨＡ０からＭＣ３／ＨＡ３）は、図１のエージェント１０２―１と同一または同様であってよく、ＭＥＭ０からＭＥＭ３と表記されるメモリは、本明細書において複数の図の何れかを参照して説明されている複数のメモリデバイスと同一または同様であってよい。また、一実施形態において、ＭＥＭ０からＭＥＭ３は、例えば、親子式として、ミラーデータに構成されてよい。また、システム２００の１つまたは複数のコンポーネントは、いくつかの実施形態において、同一の集積回路ダイ上に含まれ得る。
【００１８】
さらに、少なくとも１つの実施例（図２に示されるように）は、ミラーリングを有するソケット粘着固定されていない構成に用いられることができる。例えば、メモリコントローラに割り当てられるデータ（例えばＭＣ０／ＨＡ０）は、複数のＰｔＰリンクを通じて別のメモリコントローラ（例えばＭＣ３／ＨＡ３）に対してミラーリングされる。
【００１９】
複数のバスを組み合わせるいくつかのソリューションは、以下を含んでよい。
【００２０】
（１）１つの追加ワイヤを有するバス符号化方式であるデータバス反転（ＤＢＩ）。ＤＢＩは、送信する、現在のバス値及び次のデータ値間のハミング距離（ＤＨ）を算出する。ＤＨがバス幅の半分より大きい場合、追加ワイヤ値は真理値「１」にセットされ、複数の次のバス値は反転される次のデータ値としてセットされる。そうでない場合、追加ワイヤは真理値「０」にセットされ、複数の次のバス値は次のデータ値に等しくセットされる。
【００２１】
（２）重みコーディング（ＷＣ）は、次のデータ値上の真理値「１」の個数を計算する。計算された個数がバス幅の半分より大きい場合、複数の次のバス値は、反転されるデータ値にセットされる。ＷＣはまた、複数のバス値が反転されるか否かを示すように追加ワイヤを用いてよい。
【００２２】
一実施形態において、ＥＤＢＩエンコーダロジック１６０は、以下に基づき機能する：（ａ）ＥＤＢＩロジック１６０は、次のデータ値が有効なものから「パーキング」状態に行くか否かを決定する。行く場合は、ＥＤＢＩロジックは、（１）送信する、現在のバス値及び次のデータ値間のＤＨ及び（２）次のデータ値の重み（Ｗ）、の両方を考慮してバスにおける複数のビット値のトグリングを決定し、（ｂ）そうでない場合、ＥＤＢＩロジック１６０は、ＤＢＩ符号化と同様に動作する。
【００２３】
複数のソースから（例えば、ＯＲツリーを用いて）データを収集する複数のバスに対し、データパーキングは、データ送信の最後に実行される。例えば、メモリの複数のバンクは、複数のＯＲツリーによって（例えば、ロジックＯＲゲートと組み合わせられ、論理的にＯＲになるようにチェーンの次のメモリバンクの出力と共に次の段階に供給される複数のメモリバンクの各ペアの複数の出力を有するチェーンに）一緒に連結されてよい。このような例（例えば、全ての値がゼロのデータパーキングを提供する）において、データパーキングがデータ送信の最後に実行される場合、ＤＢＩまたはＷＣ符号化のような複数の以前のバス符号化方式は、図３Ａ及び３Ｂに示されるように、それぞれ、データ移行アクティビティを増大させ得る。より具体的には、図３Ａは、ＤＢＩ符号化が如何に複数のビット移行の数を４から６に増加するかを示し、図３Ｂは、ＷＣ符号化が如何に複数のビット移行の数を４から６に増加するかを示す。これに対し、ＥＤＢＩは、当該符号化技術は、データパーキングが要求される場合でも、複数の任意のデータバス値に対するデータ移行アクティビティのレベルを減少（または維持）することを保証してよい。
【００２４】
図４は、実施形態に係る拡張データバス反転（ＥＤＢＩ）エンコーダロジック１６０のブロック図を示す。実施形態において、パーキング状態は全てゼロと仮定される。さらに、本明細書において説明される複数の技術は、（ａ）バスの全てのビットに適用され得て、または（ｂ）バスを別個に符号化される複数のグループで複数の個々のグループに分けることによって適用され得る。
【００２５】
図４に図示されるように、ＥＤＢＩエンコーダロジック１６０は、従来のＤＢＩ及びＷＣと同様である（従って、ＥＤＢＩロジックは任意の追加オーバヘッドを追加しない）１つの追加ワイヤでバス符号化を実行する（すなわち、ｎビットの未符号化データから（ｎ＋１）ビットの符号化データに）。次のデータ送信の次にデータパーキング動作が行われると想定される場合、「flag_Parking」と言う１ビットフラグ（または追加ワイヤ）は１（または実装に応じて別の値）にセットされ、ＥＤＢＩ決定ブロックロジック６００は、（１）現在のバス値（Ｙｔ−１）及び次のデータ値（Ｘｔ）間のＤＨ、及び（２）次のデータ値の重み（Ｗ）の両方を考慮する。そうでない場合、ＥＤＢＩ決定ブロックロジック６００は、実施形態においてＤＢＩ符号化と同様に動作する。
【００２６】
さらに、図４に示されるように、未符号化データは、マルチプレクサ４０２に（例えば、直接に及びインバータ４０４経由でも）供給される。ロジック６００は、次に、マルチプレクサ４０２のどの入力が複数のフリップフロップ４０６に供給されるように選択され符号化データとして出力されるかを決める。
【００２７】
図５は、実施形態に係るＥＤＢＩ符号化を提供する方法５００のフロー図を示す。一実施形態において、図１から４と図６から９を参照して説明されている様々なコンポーネントは、図５を参照して説明される１つまたは複数の動作を実行するように利用可能である。実施形態において、方法５００は、図１のＥＤＢＩエンコーダロジック１６００のようなロジックに実装される。
【００２８】
図５を参照すれば、動作５０２では、flag_Parkingがアサート（例えば、「１」にセット）されるか否かが決定される。アサートされた場合、動作５０４では、次のデータ値（Ｘｔ）と現在のバス値（Ｙｔ−１）の組み合わせの重み（論理的にＸＯＲされると示される）さらに次のデータ値（Ｘｔ）の重みは、（図４に示されたような入力バスの幅である）ｎと比較される。これらの重みの組み合わせはｎより大きい場合、動作５０６では、複数の次のバス値を反転される未符号化／入力データとしてピックし、追加ワイヤにおける信号はアサート（例えば、真理値「１」にセット）される。組み合わせはｎより大きくない場合、動作５０８では、複数の次のバス値を未符号化／入力データに等しくピックし、追加ワイヤにおける信号はデアサート（例えば、真理値「０」にセット）される。代替的に、動作５０２でflag_Parkingがデアサート（例えば、「０」にセット）されると決定された場合、動作５１０では、現在のバス値（Ｙｔ−１）と論理的にＸＯＲされる次のデータ値（Ｘｔ）の重みがｎの半分より大きいか否かを決定する。大きい場合、方法５００は、動作５０６を継続し、そうでない場合は、動作５１０の後は動作５０８が実行される。
【００２９】
図６は、実施形態に係るＥＤＢＩ決定ブロックロジック６００を示す。図示されるように、ＥＤＢＩ決定ブロックロジック６００は、バス幅の半分（０．５ｎ）と次のデータ値（Ｘｔ）の重みとの間で（例えば、flag_Parkingフラグの状態に基づき）選択するマルチプレクサ６０２を含む。マルチプレクサ６０２の出力は、次に、現在のバス値（Ｙｔ−１）と論理的にＸＯＲされる次のデータ値（Ｘｔ）の重みと組み合わせられる（すなわち、加算器６０４によって追加される）。加算器６０４の出力は、コンパレータ６０６によってｎと比較され、その結果は、次に、インバータ（図６に示されないが、例えば、図４においてＩＮＶと表記される）によって反転される（図４のマルチプレクサ４０２に対する選択信号として供給される前に）。
【００３０】
いくつかの実施形態において（例えば、パーキング状態から開始することによって複数のデータ送信機がデータを送信し、次に、２−バーストデータを送信してパーキング状態に戻されると仮定する）、提案されたＥＤＢＩ符号化は、ＷＣとＤＢＩ符号化と比較した場合、例えば、複数の４ビットデータグループ上で実行されるＷＣまたはＤＢＩは、減少されるビット移行確率をおよそ０．４４をもたらすことができるような、より下位のビット移行確率を達成する。前述の仮定の下、バス符号化方式がまったく用いられていない場合、ビット移行確率はおよそ０．５である。
【００３１】
さらに、いくつかの実施形態は、ＯＲツリーまたはデイジーチェーンを用いて複数のソースからデータを収集する複数のバスの最終値を決定することが可能である。例えば、ＥＤＢＩロジック１６０は、組み合わせられたデータ移行アクティビティができる限り低いことを確保するように複数のビットを反転し、一方で、（ＤＢＩまたはＷＣ符号化のような）複数の他のソリューションは、例えば、データ移行アクティビティの増加に導くような最終パーキング状態を考慮しない。従って、いくつかの実施形態は、ＯＲツリーまたはデイジーチェーンに連結される複数のバスの電力消費を減少する。同様に、節約された電力予算は、このようなバスを含み、及び／または性能を改善するように用いられるコンピューティングシステムのバッテリー寿命を延長することができる。
【００３２】
図７は、コンピューティングシステム７００の実施形態のブロック図を示す。図１の１つまたは複数のエージェント１０２は、コンピューティングシステム７００の１つまたは複数のコンポーネントを含んでよい。また、システム７００の様々なコンポーネントは、図７に図示されるように、ロジック１６０を含む。しかし、ロジック１６０は、図示されているものを含みまたは除いた、システム７００全体にわたって複数の位置に提供されてよい。例えば、ロジック１６０はメモリ７１２の内部及びメモリ７１２のインタフェースで、または複数の他のブロックに提供され得る。従って、ロジック１６０は、データ値がパーキングされる必要となる場所のどこにでも配置され得る。コンピューティングシステム７００は、相互接続ネットワーク（またはバス）７０４に連結される１つまたは複数の中央処理装置（ＣＰＵ）７０２（本明細書において、総括して、「複数のプロセッサ７０２」またはより概して、「プロセッサ７０２」と称される）を含む。図１から６を参照して説明された複数の動作は、システム７００の１つまたは複数のコンポーネントによって実行され得る。
【００３３】
複数のプロセッサ７０２は、例えば汎用プロセッサ、（コンピュータネットワーク７０５を通じて通信を行ったデータを処理する）ネットワークプロセッサなど（縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサまたは複合命令セットコンピュータ（ＣＩＳＣ）プロセッサを含む）の任意の種類のプロセッサであり得る。さらに、複数のプロセッサ７０２は、単一または複数コア設計を有する。複数コア設計を有する複数のプロセッサ７０２は、同一の集積回路（ＩＣ）ダイにおける複数の異なる種類のプロセッサコアを集積する。また、複数コア設計を有する複数のプロセッサ７０２は、複数の対称または非対称マルチプロセッサとして実装され得る。
【００３４】
プロセッサ７０２は、様々な実施形態において、私用及び／または共有の１つまたは複数のキャッシュを含む。概して、キャッシュは、他の箇所に格納されたまたは先に算出された元のデータに対応するデータを格納する。メモリアクセスレイテンシを減少すべく、一旦データがキャッシュに格納されると、将来の使用は、プリフェッチングまたは元のデータを再算出することなく、キャッシュされたコピーにアクセスすることによってできる。キャッシュは、例えば、レベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュ、レベル３（Ｌ３）キャッシュ、中レベルキャッシュ、ラストレベルキャッシュ（ＬＬＣ）などの、システム７００の１つまたは複数のコンポーネントによって利用可能な電子データ（例えば、複数の命令を含む）を格納する、任意の種類のキャッシュであり得る。さらに、このようなキャッシュは、様々な位置（例えば、本明細書において説明されている複数のコンピューティングシステムの複数の他のコンポーネントの内部）に配置され得る。
【００３５】
チップセット７０６は、追加的に相互接続ネットワーク７０４に連結され得る。さらに、チップセット７０６は、グラフィックスメモリ制御ハブ（ＧＭＣＨ）７０８を含む。ＧＭＣＨ７０８は、メモリ７１２に連結されるメモリコントローラ７１０を含む。メモリ７１２は、例えば、プロセッサ７０２、またはコンピューティングシステム７００の複数のコンポーネントと通信を行う任意の他のデバイスによって実行される複数の命令の複数のシーケンスを含むようなデータを格納する。また、一実施形態において、メモリ７１２は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの１つまたは複数の揮発性ストレージ（またはメモリ）デバイスを含む。不揮発性メモリはまた、ハードディスクのように利用可能である。複数の追加のデバイスは、複数のプロセッサ及び／または複数のシステムメモリのような、相互接続ネットワーク７０４に連結され得る。
【００３６】
ＧＭＣＨ７０８は、（例えば、実施形態において、グラフィクスアクセラレータを介して）ディスプレイデバイス７１６に連結されるグラフィックスインタフェース７１４をさらに含む。一実施形態において、グラフィックスインタフェース７１４は、アクセラレイティッドグラフィックスポート（ＡＧＰ）または周辺構成要素相互接続（ＰＣＩ）（またはＰＣＩエクスプレス（ＰＣＩｅ）インタフェース）を介して、ディスプレイデバイス７１６に連結される。実施形態において、（フラットパネルディスプレイのような）ディスプレイデバイス７１６は、ビデオメモリまたはシステムメモリ（例えば、メモリ７１２）のようなストレージデバイスに格納される画像のデジタル表現を、例えば、ディスプレイ７１６によって解釈し表示される複数のディスプレイ信号に解釈する信号変換器を通じて、グラフィックスインタフェース７１４に連結される。
【００３７】
図７に示されるように、ハブインタフェース７１８は、ＧＭＣＨ７０８を入力／出力コントロールハブ（ＩＣＨ）７２０に連結させる。ＩＣＨ７２０は、コンピューティングシステム７００に連結される複数の入力／出力（Ｉ／Ｏ）デバイスにインタフェースを提供する。ＩＣＨ７２０は、ＰＣＩｅ規格、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、Ｉ２Ｃ（通信インタフェース）などに準拠する周辺構成要素相互接続（ＰＣＩ）ブリッジのような周辺ブリッジ（またはコントローラ）７２４を通じてバス７２２に連結される。ブリッジ７２４は、プロセッサ７０２と複数の周辺デバイスとの間のデータパスを提供する。複数の他の種類のトポロジはまた利用可能である。さらに、複数のバスは、例えば、複数のブリッジまたは複数のコントローラを通じて、ＩＣＨ７２０に連結され得る。さらに、バス７２２は、複数のバスシステムの複数の他の種類及び複数の構成を含み得る。さらに、ＩＣＨ７２０に連結される複数の他の周辺機器は、様々な実施形態において、インテグレーテッドドライブエレクトロニクス（ＩＤＥ）またはスモールコンピュータシステムインタフェース（ＳＣＳＩ）ハードドライブ、ＵＳＢポート、Ｉ２Ｃデバイス、キーボード、マウス、パラレルポート、シリアルポート、フロッピー（登録商標）ディスクドライブ、デジタル出力サポート（例えば、デジタルビデオインタフェース（ＤＶＩ））などを含む。
【００３８】
バス７２２は、オーディオデバイス７２６、１つまたは複数のディスクドライブ７２８、及び（実施形態において、ＮＩＣである）ネットワークアダプタ７３０に連結される。一実施形態において、ネットワークアダプタ７３０またはバス７２２に連結される複数の他のデバイスは、チップセット７０６と通信を行う。また、様々なコンポーネント（例えばネットワークアダプタ７３０）は、いくつかの実施形態において、ＧＭＣＨ７０８に連結される。さらに、プロセッサ７０２及びＧＭＣＨ７０８は、単一のチップを形成するように組み合わせられ得る。実施形態において、メモリコントローラ７１０は、１つまたは複数のＣＰＵ７０２に提供される。さらに、実施形態において、ＧＭＣＨ７０８及びＩＣＨ７２０は、ペリフェラルコントロールハブ（ＰＣＨ）内に組み合わせられる。
【００３９】
さらに、コンピューティングシステム７００は、揮発性及び／または不揮発性メモリ（またはストレージ）を含む。例えば、不揮発性メモリは、１つまたは複数の以下のものを含む：リードオンリメモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）、ディスクドライブ（例えば、７２８）、フロッピー（登録商標）ディスク、コンパクトディスクＲＯＭ（ＣＤ‐ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、光磁気ディスク、または電子データ（例えば、複数の命令を含む）を格納可能な複数の他の種類の不揮発性機械可読媒体。
【００４０】
メモリ７１２は、実施形態において、１つまたは複数の以下のものを含む：オペレーティングシステム（Ｏ／Ｓ）７３２、アプリケーション７３４、及び／またはデバイスドライバ７３６。メモリ７１２はまた、複数のメモリマッピングＩ／Ｏ（ＭＭＩＯ）動作専用の複数の領域を含み得る。メモリ７１２に格納される複数のプログラム及び／またはデータは、複数のメモリ管理動作の一部として、ディスクドライブ７２８内にスワップされる。アプリケーション７３４は、ネットワーク７０５に連結される１つまたは複数のコンピューティングデバイスと１つまたは複数のパケットを通信することを（例えば、プロセッサ７０２上で）実行する。実施形態において、パケットは、１つまたは複数の記号及び／または少なくとも１つの送信機から少なくとも1つの受信機に（例えば、ネットワーク７０５のようなネットワークを通じて）送信される1つまたは複数の電気的信号によって符号化される1つまたは複数の値、のシーケンスである。例えば、各パケットは、ソースアドレス、目的地アドレス、パケット型などのような、パケットをルーティング及び／または処理するのに利用される様々な情報を含むヘッダを有する。各パケットは、当該パケットがコンピュータネットワーク（例えばネットワーク７０５）を通じて、様々なコンピューティングデバイス間で転送する未処理データ（またはコンテンツ）を含むペイロードを有する。
【００４１】
実施形態において、アプリケーション７３４は、例えば、デバイスドライバ７３６を通じて、システム７００の様々なコンポーネントと通信を行うようにＯ／Ｓ７３２を利用する。従って、デバイスドライバ７３６は、Ｏ／Ｓ７３２と、ネットワークアダプタ７３０、または、例えば、チップセット７０６を介してシステム７００に連結される複数の他のＩ／Ｏデバイスとの間の通信インタフェースを提供するネットワークアダプタ７３０特有の複数のコマンドを含む。
【００４２】
実施形態において、Ｏ／Ｓ７３２は、ネットワークプロトコルスタックを含む。プロトコルスタックは、概して、ネットワーク７０５を通じて送信される、指定されるプロトコルに準拠する複数のパケットを処理するように実行される複数の手順または複数のプログラムのセットをを指す。例えば、複数のＴＣＰ／ＩＰ（トランスポート制御プロトコル／インターネットプロトコル）パケットは、ＴＣＰ／ＩＰスタックを用いて処理される。デバイスドライバ７３６は、例えば、プロトコルスタックを介して処理される、メモリ７１２における複数のバッファを示す。
【００４３】
ネットワーク７０５は、任意の種類のコンピュータネットワークを含み得る。ネットワークアダプタ７３０は、ネットワーク７０５を通じてデータを送信及び／または受信するように、複数のパケットを、（例えば、メモリ７１２に格納される）複数の利用可能なデスクリプタに割り当てられる（例えば、メモリ７１２に格納される）複数のバッファに書き込むダイレクトメモリアクセス（ＤＭＡ）エンジンをさらに含み得る。さらに、ネットワークアダプタ７３０は、複数のアダプタ関連動作を実行するネットワークアダプタコントローラロジック（例えば１つまたは複数のプログラマブルプロセッサ）を含む。実施形態において、アダプタコントローラは、ＭＡＣ（媒体アクセス制御）コンポーネントである。ネットワークアダプタ７３０は、任意の種類の揮発性／不揮発性メモリ（例えば、１つまたは複数のキャッシュ及び／またはメモリ７１２を参照して説明されている複数の他のメモリの種類）のようなメモリをさらに含む。
【００４４】
図８は、実施形態に係るポイントツーポイント（ＰｔＰ）構成に配置されるコンピューティングシステム８００を示す。特に、図８は、複数のプロセッサ、メモリ、及び複数の入力／出力デバイスが多数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。図１から７を参照して説明される複数の動作は、システム８００の１つまたは複数のコンポーネントによって実行され得る。
【００４５】
図８に図示されるように、システム８００は、複数のプロセッサを含むが、明確にすべく、プロセッサ８０２及び８０４の２つのみが示される。プロセッサ８０２及び８０４は、それぞれ、メモリ８１０及び８１２との通信を可能にするローカルメモリコントローラハブ（ＭＣＨ）８０６及び８０８を含む。メモリ８１０及び／または８１２は、図８のメモリ８１２を参照して説明されているもののように、様々なデータを格納する。図８に示されるように、プロセッサ８０２及び８０４（または、例えばチップセット８２０、複数のＩ／Ｏデバイス８４３などのシステム８００の複数の他のコンポーネント）はまた、図１から７を参照して説明されたもののような1つまたは複数のキャッシュを含み得る。
【００４６】
実施形態において、プロセッサ８０２及び８０４は、図８を参照して説明される複数のプロセッサ８０２のうちの１つである。プロセッサ８０２及び８０４は、それぞれ、ポイントツーポイント(ＰｔＰ)インタフェース８１４を介して、ＰｔＰインタフェース回路８１６及び８１８を用いてデータを交換する。また、プロセッサ８０２及び８０４は、それぞれ、ポイントツーポイントインタフェース回路８２６、８２８、８３０及び８３２を用いて個々のＰｔＰインタフェース８２２及び８２４を介して、チップセット８２０とデータを交換し得る。チップセット８２０は、例えば、ＰｔＰインタフェース回路８３７を用いて、高性能グラフィックスインタフェース８３６を介して、高性能グラフィックス回路８３４とさらにデータを交換し得る。
【００４７】
少なくとも１つの実施形態において、ロジック１６０は、プロセッサ８０２、８０４及び／またはチップセット８２０のうちの１つまたは複数に提供される。しかし、複数の他の実施形態は、図８のシステム８００内の複数の他の回路、複数のロジックユニット、または複数のデバイスに存在してよい。さらに、複数の他の実施形態は、図８に示される複数の回路、複数のロジックユニット、または複数のデバイス全体にわたって分散されてよい。例えば、システム８００の様々なコンポーネントは、図１のロジック１６０を含む。しかし、ロジック１６０は、図示されているものを含みまた除き、システム８００全体にわたって複数の位置に提供され得る。
【００４８】
チップセット８２０は、ＰｔＰインタフェース回路８４１を用いてバス８４０と通信を行う。バス８４０は、バスブリッジ８４２及び複数のＩ／Ｏデバイス８４３のような、それ自体と通信を行う１つまたは複数のデバイスを含む。バスブリッジ８４２は、バス８４４を介して、キーボード／マウス８４５、複数の通信デバイス８４６（例えば複数のモデム、複数のネットワークインタフェースデバイス、またはコンピュータネットワーク８０５と通信を行う複数の他の通信デバイス）、オーディオＩ／Ｏデバイス、及び／またはデータストレージデバイス８４８のような、複数の他のデバイスと通信を行う。データストレージデバイス８４８は、プロセッサ８０２及び／または８０４によって実行されるコード８４９を格納する。
【００４９】
いくつかの実施形態において、本明細書において説明される１つまたは複数のコンポーネントは、システムオンチップ（ＳｏＣ）デバイスとして、具現化され得る。図９は、実施形態に係るＳｏＣパッケージのブロック図を示す。図９に図示されるように、ＳｏＣパッケージ９０２は、１つまたは複数の中央処理装置（ＣＰＵ）コア９２０、１つまたは複数のグラフィックスプロセッサユニット（ＧＰＵ）コア９３０、入力／出力（Ｉ／Ｏ）インタフェース９４０、及びメモリコントローラ９４２を含む。ＳｏＣパッケージ９０２の様々なコンポーネントは、複数の他の図を参照して本明細書において説明されるような相互接続またはバスに連結される。また、ＳｏＣパッケージ９０２は、複数の他の図を参照して本明細書において説明されたもののようなより多くのまたは少ないコンポーネントを含んでよい。さらに、ＳｏＣパッケージ９２０の各コンポーネントは、例えば、本明細書において複数の他の図を参照して説明されるような、１つまたは複数の他のコンポーネントを含んでよい。一実施形態において、ＳｏＣパッケージ９０２（及びその複数のコンポーネント）は、例えば、単一の半導体デバイス内にパッケージ化されるような、１つまたは複数の集積回路（ＩＣ）ダイ上に提供される。
【００５０】
図９に図示されるように、ＳｏＣパッケージ９０２は、メモリコントローラ９４２を介して、メモリ９６０（複数の他の図を参照して本明細書において説明されたメモリと同様または同一のものあり得る）に連結される。実施形態において、メモリ９６０（またはその一部）は、ＳｏＣパッケージ９０２上で一体化され得る。
【００５１】
Ｉ／Ｏインタフェース９４０は、例えば、複数の他の図を参照して本明細書において説明されるような相互接続及び／またはバスを介して、１つまたは複数のＩ／Ｏデバイス９７０に連結される。Ｉ／Ｏデバイス９７０は、１つまたは複数のキーボード、マウス、タッチパッド、ディスプレイ、画像／ビデオキャプチャデバイス（例えばカメラまたはカムコーダ／ビデオレコーダ）、タッチスクリーン、スピーカなどを含む。さらに、ＳｏＣパッケージ９０２は、実施形態において、ロジック１６０を含む／集積する。代替的に、ロジック１６０は、ＳｏＣパッケージ９０２の外部に（すなわち、別個のロジックとして）提供される。
【００５２】
以下の複数の例は、更なる複数の実施形態に関する。例１は、データバスに連結される受信機と、受信機に連結される制御ロジックと、符号化ロジックとを備える装置を含む。受信機は、入力データを受信し、制御ロジックは、データバスにおける次のデータ値が有効な値からパーキング状態に移行するか否かを決定し、符号化ロジックは、バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定に少なくとも部分的に基づき入力データを符号化する。例２は、符号化ロジックが現在のバス値及び次のデータ値間のハミング距離と、次のデータ値の重みとの比較に少なくとも部分的に基づき入力データを符号化する、例１の装置を含む。例３は、符号化ロジックが次のデータ値の重みとバス幅との比較に少なくとも部分的に基づき次のデータ値の反転をさせる、例１の装置を含む。例４は、入力データは複数のソースに由来する、例１の装置を含む。例５は、複数のソースは複数のバスを含む、例４の装置を含む。例６は、複数のソースはデイジーチェーン構成に連結される、例４の装置を含む。例７は、複数のソースはＯＲツリー構成に連結される、例４の装置を含む。例８は、符号化ロジックは追加ビットで複数のバスから入力データを符号化する、例１の装置を含む。例９は、符号化ロジックと、制御ロジックと、１つまたは複数のプロセッサコアを有するプロセッサと、メモリとは同一の集積デバイス上にある、例１の装置を含む。
【００５３】
例１０は、バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定に少なくとも部分的に基づきバスにおける入力データを符号化する段階を備える方法を含む。例１１は、現在のバス値及び次のデータ値間のハミング距離と、次のデータ値の重みとの比較に少なくとも部分的に基づき入力データを符号化する段階をさらに備える例１０の方法を含む。例１２は、次のデータ値の重みとバス幅との比較に少なくとも部分的に基づき次のデータ値の反転をさせる段階をさらに備える例１０の方法を含む。例１３は、入力データは複数のソースに由来する、例１０の方法を含む。例１４は、複数のソースは複数のバスを含む、例１３の方法を含む。例１５は、複数のソースはデイジーチェーン構成に連結される、例１３の方法を含む。例１６は、複数のソースはＯＲツリー構成に連結される、例１３の方法を含む。例１７は、追加ビットで複数のバスから入力データを符号化する段階をさらに備える例１０の方法を含む。
【００５４】
例１８は、ディスプレイデバイスと、ディスプレイデバイスに連結されるプロセッサと、プロセッサに連結されるロジックとを備えるシステムを含む。プロセッサは、ディスプレイデバイスにメモリに格納される１つまたは複数の画像を表示させ、ロジックは、バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定に少なくとも部分的に基づきバスにおける入力データを符号化する。例１９は、ロジックは、現在のバス値及び次のデータ値間のハミング距離と、次のデータ値の重みとの比較に少なくとも部分的に基づき、入力データを符号化する、例１８のシステムを含む。例２０は、ロジックは、次のデータ値の重みとバス幅との比較に少なくとも部分的に基づき、次のデータ値の反転をさせる、例１８のシステムを含む。例２１は、入力データは複数のソースに由来する、例１８のシステムを含む。例２２は、複数のソースは複数のバスを含む、例２１のシステムを含む。例２３は、複数のソースはデイジーチェーン構成に連結される、例２１のシステムを含む。例２４は、複数のソースはＯＲツリー構成に連結される、例２１のシステムを含む。例２５は、ロジックは、追加ビットで複数のバスから入力データを符号化する、例１８のシステムを含む。
【００５５】
例２６は、任意の先の例に記載されたような方法を実行する手段を備える装置を含む。
【００５６】
例２７は、複数の機械可読命令を含む機械可読ストレージを含む。複数の機械可読命令は、実行された場合、方法を実装し、または任意の先の例に記載されたような装置を実現する。
【００５７】
様々な実施形態において、例えば、図１から９を参照して本明細書において説明される複数の動作は、ハードウェア（例えば、回路）、ソフトウェア、ファームウェア、マイクロコード、または複数のこれらの組み合わせとして実装される。これらは、本明細書において説明される処理を実行するコンピュータをプログラミングするように用いられる、それ自体に格納される複数の命令（または複数のソフトウェア手順）を有する、例えば、有形の（例えば、非一時的）機械可読または（例えば、非一時的）コンピュータ可読媒体を含むような、コンピュータプログラムプロダクトとして、提供され得る。また、用語「ロジック」は、例として、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアの複数の組み合わせを含んでよい。機械可読媒体は、図１から９に関連して説明されたもののようなストレージデバイスを含んでよい。さらに、このようなコンピュータ可読媒体は、コンピュータプログラムプロダクトとして、ダウンロードされ得る。当該プログラムは、キャリアウェーブまたは通信リンク（例えば、バス、モデム、またはネットワーク接続）を介して他の伝播媒体における複数のデータ信号を通じて、リモートコンピュータ（例えば、サーバ）から要求コンピュータ（例えば、クライアント）に転送されてよい。
【００５８】
本明細書における「一実施形態」または「実施形態」という記載は、実施形態に関連して説明された特定の特徴、構造または特性が、少なくとも実装に含まれてもよいことを意味する。本明細書における様々な箇所における「一実施形態において」という表現の出現は、全て同一の実施形態を参照してもよく、しなくてもよい。
【００５９】
また、説明及び特許請求の範囲において、「連結」及び「接続」という複数の用語は、それらの複数の活用形と共に用いられてもよい。いくつかの実施形態において、「接続」は、２つまたはそれより多くのエレメントが互いに直接物理的にまたは電気的に接触することを示すように用いられてもよい。「連結」は、２つまたはそれより多くのエレメントが直接物理的にまたは電気的に接触することを意味してよい。しかし、「連結」はまた、２つまたはそれより多くのエレメントが互いに直接的に接触していなくてよいが、互いに協同して相互作用してよいことを意味してよい。
【００６０】
従って、複数の実施形態は、複数の構造的な特徴及び／または複数の方法論的な動きに固有の記載で説明されているが、特許請求される主題は、説明された複数の具体的な特徴または複数の動きに限定されないことを理解されたい。むしろ、複数の具体的な特徴及び複数の動きは、特許請求される主題を実施するための例示的な複数の形式として開示される。
【図１】
2016122435.tif 000003
【図２】
2016122435.tif 000004
【図４】
2016122435.tif 000005
【図５】
2016122435.tif 000006
【図６】
2016122435.tif 000007
【図７】
2016122435.tif 000008
【図８】
2016122435.tif 000009
【図９】
2016122435.tif 000010
【図３Ａ】
2016122435.tif 000011
【図３Ｂ】
2016122435.tif 000012
【手続補正書】
【提出日】平成27年12月18日(2015.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データバスに連結され、入力データを受信する受信機、
前記受信機に連結され、前記データバスにおける次のデータ値が有効な値からパーキング状態に移行するか否かを決定する制御ロジック、及び、
前記データバスにおける前記次のデータ値が前記有効な値から前記パーキング状態に移行するか否かの前記決定に少なくとも部分的に基づき、前記入力データを符号化する符号化ロジック、
を備える装置。
【請求項２】
前記符号化ロジックは、現在のバス値及び前記次のデータ値間のハミング距離と、前記次のデータ値の重みとの比較に少なくとも部分的に基づき、前記入力データを符号化する、
請求項１に記載の装置。
【請求項３】
前記符号化ロジックは、前記次のデータ値の重みと前記データバスの幅との比較に少なくとも部分的に基づき、前記次のデータ値の反転をさせる、
請求項１または２に記載の装置。
【請求項４】
前記入力データは、複数のソースに由来する、
請求項１から３の何れか一項に記載の装置。
【請求項５】
前記複数のソースは、複数のバスを含む、
請求項４に記載の装置。
【請求項６】
前記複数のソースは、デイジーチェーン構成に連結される、
請求項４または５に記載の装置。
【請求項７】
前記複数のソースは、ＯＲツリー構成に連結される、
請求項４から６の何れか一項に記載の装置。
【請求項８】
前記符号化ロジックは、前記複数のバスからの前記入力データを追加ビットを用いて符号化する、
請求項１に記載の装置。
【請求項９】
前記符号化ロジックと、
前記制御ロジックと、
１つまたは複数のプロセッサコアを有するプロセッサと、
メモリと、は同一の集積デバイス上にある、
請求項１に記載の装置。
【請求項１０】
バスにおける入力データを、前記バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定の少なくとも部分的に基づき、符号化する段階
を含む
方法。
【請求項１１】
現在のバス値及び前記次のデータ値間のハミング距離と、前記次のデータ値の重みとの比較に少なくとも部分的に基づき、前記入力データを符号化する段階、
をさらに含む
請求項１０に記載の方法。
【請求項１２】
前記次のデータ値の重みと前記バスの幅との比較の少なくとも部分的に基づき、前記次のデータ値の反転をさせる段階、
をさらに含む
請求項１０または１１に記載の方法。
【請求項１３】
前記入力データは、複数のソースに由来する、
請求項１０から１２の何れか一項に記載の方法。
【請求項１４】
前記複数のソースは、複数のバスを含む、
請求項１３に記載の方法。
【請求項１５】
前記複数のソースは、デイジーチェーン構成に連結される、
請求項１３または１４に記載の方法。
【請求項１６】
前記複数のソースは、ＯＲツリー構成に連結される、
請求項１３から１５の何れか一項に記載の方法。
【請求項１７】
前記複数のバスからの前記入力データを追加ビットを用いて符号化する段階、
をさらに含む
請求項１０に記載の方法。
【請求項１８】
ディスプレイデバイスと、
前記ディスプレイデバイスに連結され、メモリに格納される１つまたは複数の画像を前記ディスプレイデバイスに表示させるプロセッサと、
前記プロセッサに連結され、バスにおける入力データを、前記バスにおける次のデータ値が有効な値からパーキング状態に移行するか否かの決定の少なくとも部分的に基づき、符号化するロジックと、
を備えるシステム。
【請求項１９】
前記ロジックは、現在のバス値及び前記次のデータ値間のハミング距離と、前記次のデータ値の重みとの比較に少なくとも部分的に基づき、前記入力データを符号化する、
請求項１８に記載のシステム。
【請求項２０】
前記ロジックは、前記次のデータ値の重みと前記バスの幅との比較に少なくとも部分的に基づき、前記次のデータ値の反転をさせる、
請求項１８または１９に記載のシステム。
【請求項２１】
前記入力データは、複数のソースに由来する、
請求項１８から２０の何れか一項に記載のシステム。
【請求項２２】
前記複数のソースは、複数のバスを含む、
請求項２１に記載のシステム。
【請求項２３】
前記ロジックは、前記複数のバスからの前記入力データを追加ビットを用いて符号化する、
請求項１８に記載のシステム。
【請求項２４】
１つまたは複数の命令を含むコンピュータ可読媒体であって、
前記１つまたは複数の命令は、プロッセサ上で実行された場合、前記プロセッサに請求項１０から１７の何れか一項に記載の１つまたは複数の動作を実行するように構成させる、
コンピュータ可読媒体。
【請求項２５】
請求項１０から１７の何れか一項に記載の方法を実行する手段を備える装置。
【請求項２６】
コンピュータにより実行されるプログラムであって、
前記コンピュータにより実行されると、前記コンピュータに請求項１０から１７の何れか一 項に記載の方法を実行させる
プログラム。
【外国語明細書】
2016122435000001.pdf