(57)【特許請求の範囲】
【請求項１】
デバイス間の信号送信のための方法であって、
入力／出力（Ｉ／Ｏ）インターフェースを通じて送信される信号を受信する段階、
前記信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、前記信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定する段階、
前記非反転信号での１の数および０の数の前記比率、または、前記反転信号での１の数および０の数の前記比率のいずれが、１の数または０の数の目標比率により接近する、０の数に対する１の数の計算平均比率を提供するかどうかを決定する段階、および
前記非反転信号での１の数および０の数の前記比率が、前記目標比率により接近する前記計算平均比率を提供する場合、前記Ｉ／Ｏインターフェースを通じて前記非反転信号を送信する段階、または
前記反転信号での１の数および０の数の前記比率が、前記目標比率により接近する前記計算平均比率を提供する場合、反転指示信号を生成することを含み、前記Ｉ／Ｏインターフェースを通じて前記反転信号を送信する段階
を備え、
前記計算平均比率は、特定のサイクル中におけるネット比率である、
方法。
【請求項２】
前記決定する段階は、アキュムレータにおいて１の数および０の数の差に符号が付されたネットを保持する段階をさらに含む、請求項１に記載の方法。
【請求項３】
前記目標比率が１対１であり、前記決定する段階は、前記非反転信号または前記反転信号のいずれが、ゼロのネット差により接近する前記計算平均比率を提供するかどうかを決定する段階を含む、請求項２に記載の方法。
【請求項４】
前記目標比率が１対１以外であり、前記決定する段階は、前記非反転信号または前記反転信号のいずれが、前記目標比率を達成すべく、ネット差により接近する前記計算平均比率を提供するかどうかを決定する段階を備える、請求項２に記載の方法。
【請求項５】
前記差に符号が付されたネットを前記保持する段階は、異なるランクに対する別個の差に符号が付されたネットを保持する段階を備える、請求項２から４の何れか一項に記載の方法。
【請求項６】
前記差に符号が付されたネットを前記保持する段階は、異なるデバイス用の別個の差に符号が付されたネットを保持する段階を備える、請求項２から５の何れか一項に記載の方法。
【請求項７】
前記Ｉ／Ｏインターフェースは、前記Ｉ／Ｏインターフェースの信号線が上側および下側の電圧供給レール間の電圧に終端されるＶＴＴ終端を有する、請求項１から６の何れか一項に記載の方法。
【請求項８】
前記目標比率は、前記Ｉ／ＯインターフェースにわたりＤＣ（直流）バランスの目標レベルを達成するように構成される、請求項１から７の何れか一項に記載の方法。
【請求項９】
前記非反転信号における１の数および０の数の前記比率、または、前記反転信号における１の数および０の数の前記比率のいずれが、前記目標比率により接近する、０の数に対する１の数の前記計算平均比率を提供するかどうかを前記決定する段階を、ダイナミックバス反転の実行に対して、選択的に適用する段階をさらに備える、請求項１から８の何れか一項に記載の方法。
【請求項１０】
前記選択的に適用する段階はさらに、
前記非反転信号または前記反転信号のいずれが、前記目標比率により接近する、０の数に対する１の数の前記計算平均比率を提供するかどうかを決定する段階と、前記目標比率により接近する前記計算平均比率を提供する信号を送信する段階との間で選択的に切り替える段階と、
出力された前記信号上のトグル数を減少する、または送信される１の数の総数を減少するためにダイナミックバス反転を実行する段階とを備える、請求項９に記載の方法。
【請求項１１】
前記選択的に切り替える段階はさらに、
前記非反転信号または反転信号の０の数に対する１の数の比率が予め決定された範囲内になければ、前記目標比率により接近する計算平均比率を提供すべくダイナミックバス反転を適用する段階と、
さもなければ、出力された前記信号上の前記トグル数を減少するか、または送信される１の数の前記総数を減少するかのためにダイナミックバス反転を適用する段階とを備える、請求項１０に記載の方法。
【請求項１２】
前記送信される信号を前記受信する段階は、
一連の連続出力トランザクションの複数信号の１つを受信する段階を備え、
１の数および０の数の前記比率を前記特定する段階は、前記一連の連続出力トランザクションにわたり前記比率を特定する段階を備え、
前記非反転信号または反転信号の１の数および０の数の前記比率のいずれが、前記目標比率により接近する前記計算平均比率を提供するかどうかを前記決定する段階は、前記１つの受信信号の０の数に対する１の数の前記比率が、前記一連の連続出力トランザクションに対して、前記目標比率により接近する前記計算平均比率を提供するかどうかを決定する段階を備える、
請求項１から１１の何れか一項に記載の方法。
【請求項１３】
通信用に結合される送信デバイスと受信デバイスを含む回路であって、
前記送信デバイスを入力／出力（Ｉ／Ｏ）インターフェースを通じて前記受信デバイスに結合するハードウェアコネクタと、
前記Ｉ／Ｏインターフェースを通じて前記受信デバイスに送信される信号を受信するバッファと、
前記信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、前記信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定し、前記非反転信号での１の数および０の数の前記比率、または、前記反転信号での１の数および０の数の前記比率のいずれが、１の数または０の数の目標比率により接近する、０の数に対する１の数の計算平均比率を提供するかどうかを決定し、および前記非反転信号での１の数および０の数の前記比率が、前記目標比率により接近する前記計算平均比率を提供する場合、前記Ｉ／Ｏインターフェースを通じて前記非反転信号を送信し、または前記反転信号での１の数および０の数の前記比率が、前記目標比率により接近する前記計算平均比率を提供する場合、反転指示信号を生成する処理を含み、前記Ｉ／Ｏインターフェースを通じて前記反転信号を送信する
ロジックと
を備え、
前記計算平均比率は、特定のサイクル中におけるネット比率である、
回路。
【請求項１４】
前記インターフェースを通じて送信される１の数および０の数の差に符号が付されたネットを維持するアキュムレータをさらに備える、請求項１３に記載の回路。
【請求項１５】
メモリデバイスと、
前記メモリデバイスに結合される入力／出力（Ｉ／Ｏ）インターフェースと、
前記Ｉ／Ｏインターフェースを通じて前記メモリデバイスに結合されるメモリコントローラと
を有するメモリサブシステムを備える電子デバイスであって、
前記メモリコントローラは、前記Ｉ／Ｏインターフェースを通じて前記メモリデバイスに送信される信号を受信するバッファと、前記信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、前記信号の反転バージョン（「反転信号」）での１の数および０の数の前記比率とを特定し、前記非反転信号での１の数および０の数の前記比率、または、前記反転信号での１の数および０の数の比率のいずれが、１の数または０の数の目標比率により接近する０の数に対する１の数の計算平均比率を提供するかどうかを決定し、および前記非反転信号での１の数および０の数の前記比率が、前記目標比率により接近する前記計算平均比率を提供する場合、前記Ｉ／Ｏインターフェースを通じて前記非反転信号を送信し、または前記反転信号での１の数および０の数の前記比率が、前記目標比率により接近する前記計算平均比率を提供する場合、反転指示信号を生成する処理を含み、前記Ｉ／Ｏインターフェースを通じて前記反転信号を送信するロジックと、前記メモリデバイスからアクセスされるデータに基づいて表示を生成すべく結合されるタッチスクリーンディスプレイとを含み、
前記計算平均比率は、特定のサイクル中におけるネット比率である、
電子デバイス。
【請求項１６】
コンピュータに、請求項１から１２のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項１７】
請求項１から１２のいずれか一項に記載のデバイス間の信号送信のための方法を実行する手段を備えるデバイス間の信号送信のための装置。
【請求項１８】
請求項１６に記載のプログラムを格納する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して、メモリサブシステムに関し、特に、０の数に対する１の数のプログラム可能な目標比率を維持すべく反転を実行するダイナミックバス反転実行に関する。
［著作権表示／許可］
【０００２】
本特許文献の開示部分は、著作権保護の対象となる材料を含み得る。著作権者は、特許商標庁における特許出願および記録に見られる特許文献または特許開示が何人により複製されても異議を有しないが、それ以外の場合には全ての著作権等を留保するものである。「著作権、２０１４年、インテル（登録商標）コーポレーション、無断複写・転載禁止」という著作権の通知は、下記に記載された全てのデータ、本明細書の添付の図面、ならびに下記に記載されるいずれのソフトウェアにも適用される。
【背景技術】
【０００３】
チップ間通信は、コンピューティングシステムの構成要素間のシグナル伝達を提供する。送信デバイスは、信号またはビットパターンを受信デバイスに送信する。データバス反転は従来、データバスを通じて転送される１の数または０の数を最小化するために使用されている。バス反転は、送信前のバス上の各ビットを反転することを指す。そのような反転されたバスは、バスが反転されていることを示すビットまたは信号が付随し、受信デバイスが受信されたデータを適切に解釈することを可能にする。そのような概念は、データバス以外のバスにさらに拡張され、本明細書にて大体においてダイナミックバス反転（ＤＢＩ）と呼ばれ、１または複数のバスを含む、信号線の任意の集合またはグループを含み得る。述べられたように、ＤＢＩは、特定のロジックレベルを有するビット数を最小化すべく、信号線グループを反転するために使用されている。例えば、送信デバイスは、送信される１の数の総数の最小化を求める場合、０の数よりも多い１の数を有する信号線グループに対して、送信デバイスは、信号線を反転し、反転指示を生成し得る。同じことが逆に、０の数の総数を最小化しようとする送信デバイスに対して達成され得る。
【０００４】
ＤＢＩの拡張使用は、信号線グループの信号切り替えの最小化を含む。そのような使用では、所望のロジック状態を最小化すべく、より多くの１の数または０の数が存在するかどうかを決定し、信号線グループを反転する代わりに、送信デバイスは、出力ビットパターンが同じままとなる信号線よりも多くの信号線を切り替えるかどうかを決定し得る。このように、出力ビットパターンは、先の送信と同じ論理値を送信する信号線よりも０から１または１から０へのより多くの移行がある場合、送信デバイスは、バスを反転し、反転指示を生成し得る。そのような動作は、連続送信用の信号線グループのトグル数を減少し得る。
【０００５】
しかしながら、消費電力の考察は、伝達速度が増大すると同時に、より低い電圧とより厳しい電力バジェットとについて現代電子工学では重要性が増してきているので、チップ間通信のＤＣ（直流）バランスが関心ある性能ファクターとなっている。ＤＢＩは２つの連続送信しか考察しないで、直前のトランザクションに基づき現在のトランザクションにて何を送信すべきかを決定する。転送された信号に応じて、ＤＢＩは実際には信号線グループのＤＣバランスを低下する場合がある。例えば、送信デバイスが１の数の総数を最小化しようとする８ビットのバスを検討する。４つより多いビットが１の数である場合、送信デバイスはバスを反転し、４つより多い０の数を送信する。どちらの場合にも、バス上にＤＣバランスは存在しない。
【図面の簡単な説明】
【０００６】
以下の説明は、本発明の実施形態の実行の例として与えられる図解を有する図の考察を含む。図面は、限定としてではなく例として理解されるべきである。本明細書に使用されるように、１または複数の「実施形態」への言及は、本発明の少なくとも１つの実行に含まれる特定の特徴、構造、および／または特性を説明するものとして理解されたい。従って、本明細書に現れる"１つの実施形態において"または"代替的実施形態において"等のような文言は、本発明の様々な実施形態および実行を説明するものであり、必ずしも全てが同じ実施形態を指すものではない。しかしながら、これらは必ずしも相互に排他的でもない。
【０００７】
【図１】０の数に対する１の数の目標比率を維持すべく、ダイナミックバス反転を実行するシステムの実施形態のブロック図である。
【０００８】
【図２】Ｉ／Ｏインターフェース上で所望のＤＣオフセットを維持すべく、ダイナミックバス反転を実行するシステムの実施形態のブロック図である。
【０００９】
【図３】ダイナミックバス反転ロジックの実施形態のブロック図である。
【００１０】
【図４】０の数に対する１の数の目標比率を維持すべく、ダイナミックバス反転を使用するシステム対そうでないシステムに対して出力ノイズを比較する挙動シミュレーションの実施形態を示す。
【００１１】
【図５】プログラム可能なダイナミックバス反転を実行するためのプロセスの実施形態のフロー図である。
【００１２】
【図６】プログラム可能なダイナミックバス反転が実行され得るコンピューティングシステムの実施形態のブロック図である。
【００１３】
【図７】プログラム可能なダイナミックバス反転が実行され得るモバイルデバイスの実施形態のブロック図である。
【００１４】
下記に記載の実施形態のうちのいくつかまたは全てを図示し得る図面の説明を含み、ならびに本明細書において提示される本発明の概念における他の可能な実施形態または実行を検討する、特定の詳細および実行の説明を後述する。
【発明を実施するための形態】
【００１５】
本明細書に説明されるように、システムは、ある期間を通じて信号線グループにわたり０の数に対する１の数の所望の比率を達成すべく、ダイナミックバス反転（ＤＢＩ）を採用する。その比率は、デバイスに対して事前設定される、および／または、システムにてダイナミックに設定されるプログラム可能レベルとなり得る。０の数に対する１の数の所望の比率を達成するためにＤＢＩを採用すべく、送信デバイスは、送信または出力される信号の非反転バージョン（「非反転信号」）での１の数および０の数の総数、および／または比率を特定し、信号の反転バージョン（「反転信号」）での１の数および０の数の総数、および／または比率を特定する。送信デバイスは、非反転信号または反転信号における０の数に対する１の数の比率が、目標比率により接近する計算平均比率をもたらすかどうかを計算し得る。目標比率は、送信デバイスを事前設定することにより、および／または、動作のためにデバイスを動的に設定することにより設定され得る所望の比率を表す。送信デバイスは、目標比率により接近する計算平均比率を達成する信号を送信する。非反転信号の比率を計算平均比率に加えることにより、目標比率により接近する平均比率をもたらす場合、送信デバイスは、反転指示を生成することなくその信号を送信する。反転信号の比率を計算平均比率に加えることにより、目標比率により接近する平均比率をもたらす場合、送信デバイスは反転信号を送信し、反転指示を生成する。
【００１６】
０の数に対する１の数の所望の比を達成することにより、任意の所望の比率となり得ることは理解されよう。０の数に対する１の数の特定の比率が１対１ではないことには、利点が存在し得る。１つの実施形態において、所望の比率は、１対１、すなわち１の数および０の数が等しいことである。チップ間のインターフェース上でＤＣ（直流）バランスを達成すべく、１の数および０の数の等しい数が考察され得る。本明細書に用いられるように、インターフェースはあるチップまたはあるデバイスが別のチップまたは別のデバイスと通信することを可能にするために使用される機構を指す。インターフェースは、デバイス間通信に関わるハードウェアおよび／またはソフトウェアコンポーネントを指し得る。例えば、インターフェースは典型的には、信号線または他の送信線を通じて送信および受信するためのドライバおよび／またはトランシーバを含む。インターフェースは、ピンまたはボールまたは他の相互接続機構を含み得る。なお、デバイスは、どの信号をどのピンに送信するか、どのタイミングで使用するか、および／または信号交換時におけるその他のファクターを決定するコントローラまたは他のロジックを含む。
【００１７】
１つの実施形態において、そのようなコントローラは、０の数に対する１の数の所望の比率を達成すべく、ＤＢＩを計算する、または決定し得る。例えば、コントローラは、ＤＢＩ信号と関連するバスまたは信号線グループのために、０の数に対する１の数のネット比率（ｎｅｔ  ｒａｔｉｏ）を計算および維持し得る。コントローラは、サイクルごとに信号線用のネットＤＣバランス履歴として比率を維持し得、その比率に影響し、よってＤＣバランスに影響するＤＢＩ制御を加え得る。１つの実施形態において、コントローラまたは他のロジックは、送信された（１の数のネット数（ｎｅｔ  ｎｕｍｂｅｒ）引く０の数のネット数）にかかる符号付き総計を維持する。計算はあるいは、０の数のネット数引く１の数のネット数として実行され得ることが理解されよう。１つの実施形態において、コントローラまたはロジックは、計算された符号付き総計の絶対値を最小化すべくＤＢＩビットを制御し得る。１つの実施形態において、コントローラまたはロジックは、プログラム可能な目標値からの、計算された符号付き総計の絶対値の分散を最小化すべくＤＢＩビットを制御し得る。１つの実施形態において、送信デバイスは、目標値で予めプログラムされる。１つの実施形態において、送信デバイスは、ホストデバイスからの命令または信号に基づいて目標値をプログラムする。１つの実施形態において、ホストデバイスは目標値をプログラムする。目標値は、電力管理サブシステムまたは他の制御ロジックに基づいてプログラムされ得る。
【００１８】
０の数に対する１の数の比率を維持すべくＤＢＩを使用することは、他の目的でＤＢＩを適用することと必ずしも相互に排他的ではないことは、理解されよう。例えば、１つの実施形態において、システムが、目標ネット誤差（または目標ネット符号付き総計）を有し、特定のサイクル中のネット誤差がどちらのＤＢＩ値に対しても小さい場合、ロジックが代わりに、トグル数を減少し電力を節約すべく、ＤＢＩを計算し得る。０の数に対する１の数の比率の達成も、従来のＤＢＩ機能の実行もするためにＤＢＩを使用する他の例が、利用され得る。
【００１９】
チップ間通信速度が増大する一方、送信電力は降下するので、高周波ノイズは、シグナル伝達を低下しうることは理解されよう。ＤＣバランス化によるチップ間シグナル伝達により、高周波ノイズを減少し、信号品質を改善し得る。１つの実施形態において、システムは、ＤＢＩのアプリケーションに対して重み付けアプローチを使用し得る。例えば、信号送信を担当するオンチップコントローラは、出力信号を反転すべきかどうかを決定する際、１の数および０の数の比率と、特定の論理値の数（またはトグル数）との両方を要因としうる。そのような実行において、コントローラは、両方の目的でＤＢＩを採用する重み付けアルゴリズムを適用し得る。
【００２０】
例えば、コントローラは、以下の条件のいずれかの下で、信号グループを反転すべく、ＤＢＩを適用することを決定することができる。１つの実施形態において、コントローラは、１の数および０の数の差が閾値より低い、または予め決定された範囲内にある場合、０の数に対する１の数の比率を達成するためにＤＢＩを適用すべきかどうかを決定するに過ぎず、さもなければ、コントローラは、特定の論理値の数を最小化すべくＤＢＩを適用する。逆に、１つの実施形態において、コントローラは、１の数および０の数の差が閾値より低い、または予め決定された範囲内にある場合、特定の論理値の数を最小化するためにＤＢＩを適用すべきかどうかを決定するに過ぎず、さもなければ、コントローラは、０の数に対する１の数の比率を達成すべくＤＢＩを適用する。１つの実施形態において、コントローラは、連続出力トランザクションの数に対して０の数に対する１の数の比率を達成すべくＤＢＩを適用するかどうかを決定し、次に特定の論理値の数を最小化すべくＤＢＩを適用し、次に連続出力トランザクションの数に対するシーケンスを繰り返す。そのような実行において、０の数に対する１の数の比率を達成すべくＤＢＩを適用するためのトランザクションの数は、特定の論理値の数を最小化すべくＤＢＩを適用するためのトランザクションの数に必ずしも等しくないが、それらはあり得る。他のことも考察され得ることは理解されよう。
【００２１】
１つの実施形態において、ＤＢＩは、一度に１つのトランザクションを調査するに過ぎない、より普通のシリアル実行とは対照的に、並行してＮ個のトランザクションなどの一連の連続出力トランザクションにわたって計算され得る。従来のＤＢＩは、ＤＢＩ用に単一のトランザクションを評価するに過ぎず、一度に単一のトランザクションにＤＢＩを実行するか、実行しないかのいずれかである。目標比率を達成することができる、本明細書に説明されるＤＢＩは、一度に複数のトランザクションのためのＤＢＩを決定し得る。複数のトランザクションを考察することにより、ＤＢＩは、ＤＣバランスを改善しつつ、さらに電力を減少し得る。例えば、ＤＢＩ決定エンジンは、Ｎ個のトランザクションごとに目標比率を達成すべくＤＢＩを計算し得、その間の（Ｎ−１）個のトランザクションの各々ごとにトランザクションベースで従来のＤＢＩを実行し得る。１つの実施形態において、送信データは、ＤＢＩロジックが将来のトランザクションを考察し得るＮ本の並列配線として利用可能とされ（例えば、バッファ化され）、それにより、複数の異なるタイプのＤＢＩ間でトレードオフするために行う決定を改善する（例えば、目標比率を達成し、１の数の総数を減少するなど）。このように、１つの実施形態において、０の数に対する１の数の目標比率に関連する計算は、一連のトランザクションについてなされ得るが、他のＤＢＩ形式がまだ、各出力トランザクションにて実行され得る。
【００２２】
送信デバイスは、一度に複数のトランザクションを考察することによりＤＢＩを実行する。このように、送信デバイスは、経時的に０の数に対する１の数の目標比率を達成すべくＤＢＩを適用するために、多くの連続送信の履歴を保持する。１つの実施形態において、送信デバイスは、アキュムレータにて履歴を保持する。他のストレージロジックが、ＤＢＩの履歴を保持するために使用され得ることが理解されよう。１つの実施形態において、送信デバイスは、異なるグループの信号線用に別個にＤＢＩを保持する。１つの実施形態では、メモリデバイスにおいて、メモリコントローラは、種々のチャネル、種々のデバイスまたは種々のランク用にＤＢＩを保持し得る。例えば、複数のランクを有するメモリサブシステムを仮定する。単一の累積または履歴回路に対して、１つのランクは、正の方向に目標比率から離れてランピングし得る一方、別のランクは負の方向に目標比率から離れてランピングし得るが、サブシステムが全体的に目標比率を達成するように見え得る。種々のランクのための種々のアキュムレータに対して、メモリコントローラは、各ランクの目標比率を個別に達成すべく、種々のランクに別個にＤＢＩを適用し得る。このように、例えば、ランク０およびランク１を仮定すると、メモリコントローラは目標比率を別個に監視するアキュムレータ０およびアキュムレータ１を有し得る。ランク０に送信する場合、メモリコントローラは、アキュムレータ０に履歴を保持し得る。同様に、ランク１に送信する場合、メモリコントローラは、アキュムレータ１に履歴を保持し得る。そのような概念は、任意の数のランクに拡張され得、または、チャネル、デバイスまたは他の制御粒度に拡張され得る。
【００２３】
１つの実施形態において、履歴ロジックまたはアキュムレータは、「リーキーバケット」アキュムレータとなり得る。リーキーバケットアキュムレータは、ある期間の間のみ情報を持続する。履歴として保持される誤差情報または他の情報をリークすることにより、アキュムレータは、誤差を無期限に持続しないで、送信デバイスがスライディングウィンドウとして履歴を保持する。例えば、メモリデバイスがＸＭＨｚの帯域幅を有するＶＴＴ終端を有するメモリデバイスを検討する。そのような例では、メモリコントローラは、およそＸＭＨｚに相当する履歴のスライディングウィンドウを保持することができる。このように、メモリコントローラは、メモリデバイスの帯域幅と同様のレートで誤差情報を漏れ出す、または、落とす場合がある。概して、送信デバイスは、受信デバイスの帯域幅と、必ずしも正確に同じ帯域幅でなくてもよいが、帯域幅が同様になり得るリーキーアキュムレータを使用し得る。
【００２４】
１つの実施形態において、チップ間通信は、メモリデバイスとホストとの間で生じる。ホストは、メモリコントローラであり得る。メモリコントローラは、独立型デバイスであり得るか、またはプロセッサに統合され得る。メモリコントローラは、プロセッサを有する同じチップの一部であり得る。メモリコントローラは、メモリデバイスとインターフェースで接続し、中央プロセッサ、グラフィックプロセッサおよび／または他の処理ユニットによる動作のために要求されるデータにアクセスする必要性に対応するメモリアクセス命令を生成する。１つの実施形態において、チップ間通信は、コンピューティングシステムまたはコンピューティングデバイスの任意の２つのデバイス間で生じる。このように、本明細書の説明は、具体的に特定されないメモリ技術に十分等しく適用することができ、反転され得る共通バスを共有する任意のタイプのデバイス用のデバイス間通信にも適用することができる。本明細書に説明される任意の実施形態によるチップ間通信は、反転され得る信号線グループを共有する２つのデバイス間の任意のシングルエンド形のインターフェースに適用され得る。シングルエンド形のインターフェースは、信号対電圧レールまたは基準電圧を測定する。差動インターフェースは、関連する配線上の信号成分に関連して信号を伝える。
【００２５】
メモリデバイスへの言及は、異なるメモリタイプに適用し得る。メモリデバイスは、概して、揮発性メモリ技術を指す。揮発性メモリは、デバイスに対して電源が遮断されたならば、その状態（ひいては、その上に格納されたデータ）が不定となるメモリである。ダイナミック揮発性メモリは、状態を維持するためにデバイス内に格納されたデータをリフレッシュすることを必要とする。ダイナミック揮発性メモリの１つの例としては、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）、またはシンクロナスＤＲＡＭ（ＳＤＲＡＭ）等のなんらかの変形が挙げられる。本明細書に説明されるメモリサブシステムは、ＤＤＲ３（２００７年６月２７日にＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ：電子機器技術評議会）によって元々リリースされ、現在リリース２１である、二重データレートバージョン３）、ＤＤＲ４（ＤＤＲバージョン４、ＪＥＤＥＣによって２０１２年９月に公表された初期の仕様）、ＬＰＤＤＲ３（ＪＥＤＥＣによる２０１３年８月の低電力ＤＤＲバージョン３、ＪＥＳＤ２０９−３Ｂ）、ＬＰＤＤＲ４（２０１４年８月に元々ＪＥＤＥＣによって公表されたＬＰＤＤＲバージョン４（ＪＥＳＤ２０９−４））、ＷＩＯ２（（２０１４年８月に元々ＪＥＤＥＣによって公表されたＩ／Ｏ２（ワイドＩ／Ｏ２）、ＪＥＳＤ２２９−２）、ＤＤＲ５（ＤＤＲバージョン５、ＪＥＤＥＣによって目下検討中）、ＬＰＤＤＲ５（ＪＥＤＥＣによって目下検討中）、および／またはその他、ならびにそのような仕様の派生物もしくは拡張に基づく技術等の多くのメモリ技術と互換性を有し得る。
【００２６】
メモリデバイスへの言及は、異なるメモリタイプに適用し得る。メモリデバイスは、概して、揮発性メモリ技術を指す。揮発性メモリは、デバイスに対して電源が遮断されたならば、その状態（ひいては、その上に格納されたデータ）が不定であるメモリである。ダイナミック揮発性メモリは、状態を維持するためにデバイス内に格納されたデータをリフレッシュすることを必要とする。ダイナミック揮発性メモリの１つの例としては、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）、またはシンクロナスＤＲＡＭ（ＳＤＲＡＭ）等のなんらかの変形が挙げられる。本明細書に説明されるメモリサブシステムは、ＬＰＤＤＲ４（２０１４年８月に元々ＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）によって公表されたＬＰＤＤＲ（ＬＯＷ  ＰＯＷＥＲ  ＤＯＵＢＬＥ  ＤＡＴＡ  ＲＡＴＥ（低電力二重データ速度）バージョン４（ＪＥＳＤ２０９−４））および／またはその他、ならびにそのような仕様の派生物もしくは拡張に基づく技術などの多くのメモリ技術と互換性を有し得る。メモリは、複数のメモリランクを含む。１つの実施形態において、メモリサブシステムは、単一のメモリアクセス動作を実行すべく複数の命令を発行する。１つの実施形態において、各命令は、マルチサイクルの命令である。
【００２７】
図１は、０の数に対する１の数の目標比率を維持すべくダイナミックバス反転を実行するシステムの実施形態のブロック図である。システム１００は、デバイス間通信に関係するメモリサブシステムの構成要素を表示する。すなわち、メモリコントローラ１１０およびメモリデバイス１２０は、信号線１３０を含む入力／出力（Ｉ／Ｏ）インターフェースを通じて通信する。メモリサブシステムが、具体的に表されているが、信号線グループを通じて通信し、付随する反転信号を有する任意のデバイスが本明細書に論じられるデバイス間通信を実行することができることは、理解されよう。さらに、以下の説明は、メモリコントローラ１１０が、メモリデバイス１２０に送信される信号にＤＢＩを適用する実施形態に言及する点でも理解されよう。１つの実施形態において、メモリデバイス１２０は、ＤＢＩをメモリコントローラ１１０に送信される信号に適用し得る。このように、システム１００は、２つのデバイスは、デバイス間通信に関係し、通信にて０の数に対する１の数の目標比率を達成すべくＤＢＩを動的に適用する多くの構成のいずれかを示し得る１つの例である。
【００２８】
メモリコントローラ１１０のインターフェース１１２は、それが外部デバイスとインターフェースで接続を可能にするメモリコントローラでのハードウェア接続を表す。同様に、メモリデバイス１２０のインターフェース１２２は、それが外部デバイスとインターフェースで接続可能であるメモリデバイスでのハードウェア接続を表す。システム１００において、インターフェース１１２および１２２は、メモリデバイス１１０が信号線１３０を通じてメモリデバイス１２０と通信するのを可能にする。信号線１３０は、２つのデバイスを相互接続するトレースまたは配線を表す。インターフェース１１２および１２２は、信号線１３０とインターフェースで接続すべく、ピン、ボール、パッドおよび／または他のハードウェアを含み得る。インターフェース１１２および１２２は、メモリコントローラ１１０およびメモリデバイス１２０にそれぞれ作用するロジックによって制御される。ロジックは、ハードウェア、ソフトウェア（すなわち、ファームウェア）または組み合わせを含み得る。ロジックは、インターフェース（インターフェース１１２、インターフェース１２２および信号線１３０の全てに関する）にわたってデジタル信号を送受信する信号線のタイミングおよび駆動を制御する。
【００２９】
インターフェース１１２および１２２はまた、具体的に示されていない他の信号線グループを含み得ることは理解されよう。メモリコントローラ１１０とメモリデバイス１２０との間の接続は、反転され得る信号線グループの一部ではない１または複数の信号線を含み得る。１つの実施形態において、信号線１３０は、信号線の単一バス（例えば、データバス）を含む。１つの実施形態において、信号線１３０は、複数の信号線バスにかかる。１つの実施形態において、信号線１３０は、全て一緒に反転されるバスと、１または複数の他の信号線とを含む。任意の数の組み合わせが存在するが、２つのデバイス間の相互接続のアーキテクチャおよびシステム構成に依存するだろう。このように、システム１００に示されるものは、説明のためのみであり、限定的ではない。
【００３０】
動作フローの１つの実施形態として、メモリコントローラ１１０がホストまたはホストプロセッサから１または複数の要求を受信することを検討する。ホストプロセッサは、ホストオペレーティングシステムによる命令、および／またはシステム１００が一部であるコンピューティングデバイス上で実行しているアプリケーションを実行する中央処理ユニットを含み得る。ホストプロセッサは、メモリデバイス１２０からのデータ要求を生成するグラフィック処理ユニットまたは他のコントローラを含み得る。メモリコントローラ１１０は、メモリデバイス１２０からのデータ要求を受信すべく入力バッファ１１４または他のバッファまたはキャッシュ機構を含む。入力バッファ１１４は、メモリコントローラ１１０に使用され得る任意のタイプのバッファを表わすが、本明細書には具体的に説明されない。入力バッファ１１４は、メモリコントローラ１１０がホストからの要求を受信し、その要求をメモリデバイス１２０に送信すべく適切にデキューするのを可能にする。
【００３１】
１つの実施形態において、メモリコントローラ１１０は、ＤＢＩ１１６を含み、これは、メモリコントローラ１１０がダイナミックバス反転を実行するのを可能にするハードウェアおよび／またはソフトウェアロジックを表す。ＤＢＩ１１６は少なくとも、信号線１３０を通じて送信される信号をいつ反転するかを決定する制御ロジック、信号線の反転を始動させる制御ロジック、および信号線１３０が反転される場合、ＤＢＩ信号１３２を始動する制御機構を含む。１つの実施形態において、ＤＢＩ１１６は、０の数に対する１の数の異なる目標比率でプログラム可能である。例えば、１つのケースにおいて、ＤＢＩ１１６は、１の数および０の数の５０％の目標比率または１対１の比率を有し得る。そのような比率は、高速通信の場合にバランスのとれたＤＣオフセットを達成し、高周波ノイズを減少するために役立ち得る。１つのケースでは、ＤＢＩは、異なる比率を有し得、それは、（信号の合計ビット数に対する１つの論理状態（１の数か、０の数のいずれか）の割合を意味する）割合か、または１対１、２対１、４対５、その他の割合等の何か他の表示のいずれかとして説明され得る。ゼロ以外のＤＣオフセットが特定のコモンモードシナリオにて有用であり、５０％以外の目標比率で達成され得ることが理解されよう。
【００３２】
１つの実施形態において、ＤＢＩ１１６は、０の数の１の数に対する、または０の数に対する１の数の特定の比率を達成しようとするＤＢＩ計算機を用いて変更される従来のＤＢＩエンジンである。１つの実施形態において、ＤＢＩ１１６の制御ロジックは、０の数に対する１の数のプログラムされたまたは特定された比率（高周波バランス化と呼ばれ得る）を達成しようとすること、ならびに、典型的には消費電力を減少しようとする従来のＤＢＩを実行することの組み合わせを実行し得る。このように、０の数に対する１の数の目標比率を達成すべくＤＢＩを適用することにより、高周波バランス化を実行し得、従来のＤＢＩを適用することにより、電力制御を実行し得る。本明細書に説明されるように、ＤＢＩ１１６は、高周波バランス化のみを実行する、または電力制御の実行に加えて高周波バランス化を実行するべく有効にされ得る。両方の機構の適用は、本明細書に説明される任意の実施形態に従ってなし得る。
【００３３】
１つの実施形態において、メモリコントローラ１１０は、信号線１３０を通じて送信される１の数と０の数の実行中のネット総計を保持するアキュムレータ１１８を含む。別のバッファリング機構が、アキュムレータ回路の代わりに使用され得ることが理解されよう。アキュムレータ回路は、非常に少ないロジック要求で実行中のネット（ｎｅｔ）を可能にする累積情報を提供し得る。１つの実施形態において、アキュムレータ１１８は、ＤＢＩ１１６（例えば、専用内部回路）の一部である。１つの実施形態において、アキュムレータ１１８は、信号線１３０に対する１の数および０の数の実行中の合計を保持するために使用される複数のアキュムレータデバイスを表す。１つの実施形態において、アキュムレータ１１８は、インターフェースを通じて送信される１の数および０の数の差が符号付きされた実行中のネット（正味数）を維持する。
【００３４】
１つの実施形態において、インターフェース１１２および１２２は、反転用に別個に制御される複数の信号線グループを含み得る。このように、例えば、信号線１３０、およびグループの信号線１３０の反転を制御する関連付けられたＤＢＩ信号１３２に加えて、それぞれが関連付けられたＤＢＩ信号のあるさらなる信号線グループとなり得る。そのような構成では、ＤＢＩ１１６および／またはアキュムレータ１１８は、他の信号線グループおよび関連付けられるＤＢＩ信号に対して二重化され得る。１つの実施形態において、ＤＢＩ１１６は、ある信号線グループ用にＤＢＩ情報を格納すべく、レジスタまたは他のストレージデバイスを含み得、他の信号線グループ用にＤＢＩロジック１１６および／またはアキュムレータ１１８を再利用し得る。１つの実施形態において、二重化されたＤＢＩロジック１１６または複数のグループの信号線を通じて制御を時間多重化する信号ＤＢＩエンジンを用いて、異なる目標比率が、２つのデバイス間の同じインターフェース上で異なる信号線に適用され得る。
【００３５】
ＤＢＩ１１６は、送信されるべき信号の１の数および０の数の総数を特定することができる。１つの実施形態において、ＤＢＩ１１６は、信号の非反転バージョン（例えば、「非反転信号」）と、信号の反転バージョン（例えば、「反転信号」）との両方で１の数および０の数の総数を特定する。ＤＢＩ１１６は、反転信号および非反転信号の両方での１の数および０の数の総数の間の（数学的なロジックの計算を実行する際に「エラー（ｅｒｒｏｒ）」とよく呼ばれる）差を計算し得る。１つの実施形態において、ＤＢＩ１１６はそのような計算に基づいて、非反転信号または反転信号（１の数および０の数の総数に基づく）が、計算平均比率または実行中の合計（例えば、上述した実行中のネット）を目標比率により接近させるかどうかについて決定する。計算平均比率は、アキュムレータ１１８または代用ロジックを参照して決定される。１つの実施形態において、ＤＢＩ１１６は、非反転信号および反転信号の計算値を比較して、どちらの信号が計算平均比率を目標値により接近して移動させるかを決定する。次に、ＤＢＩ１１６は、計算平均比率を目標比率により接近して移動させる信号の送信を始動させることができる。反転信号が、計算平均比率を目標比率により接近して移動させる場合、ＤＢＩ１１６はＤＢＩ信号１３２を通じてＤＢＩ指示を始動させるだろう。
【００３６】
１つの実施形態において、メモリデバイス１２０は、ＯＤＴ（オンダイ終端）１２４およびデコーダ１２６を含む。デコーダ１２６は、信号線１３０を通じてメモリコントローラ１１０によって送信される信号をサンプリングまたは読み出すメモリデバイスにてロジックを受信することを表す。デコーダ１２６は、信号線１３０の特定の信号の命令および／またはアドレス情報に基づき、どの動作が実行されるべきかを決定する、信号線１３０上に表される信号をデコードまたは解釈する。このように、デコーダ１２６は、ＤＢＩ信号１３２
（実行に応じて、ハイか、ローのいずれかの論理レベルによる反転を示し得る）の論理状態をサンプリングし得、受信された通りに信号線１３０上の信号の値を読み取るかどうか、または、復号化の前にまたは復号化の一部として受信信号を反転させるかどうかを決定し得る。
【００３７】
ＯＤＴ１２４は、信号線１３０を終端するメモリデバイス１２０でのロジックを表し、反射を回避し、信号線１３０を経由して受信する信号の信号品質を改善する。ＯＤＴは、十分に理解されているので、本明細書にて詳細に論じられない。１つの実施形態において、ＯＤＴ１２４は、ＶＴＴまたは中間レールの終端にて１または複数の信号線１３０を終端する。中間レールの終端は、高電圧レール（例えば、ＶＤＤすなわち通信用に設定される値）と、低電圧レール（例えば、ＶＳＳ）との間にあるものとして理解されよう。より具体的には、中間レールの終端は、出力される高電圧と、出力される低電圧と（それぞれＶＤＤおよびＶＳＳ以外となり得る）の中間にあり得る。１つの実施形態において、ＶＴＴは、出力ドライバのプルアップレッグおよびプルダウンレッグの電流を等しくする電圧点として理解され得る。ＶＴＴ終端を適用することにより、高速接続に従来存在する消費電力および特定のシグナル伝達の問題を改善し得る（例えば、あるレールから他のレールへのクリーン信号を達成するのに十分な強さで信号線を駆動しなければならないという容量効果を改善する）。ＶＴＴは、十分制御され、固定された基準電圧またはＶｒｅｆレベルを終端強度から独立したレシーバに提供し得る。しかしながら、ＶＴＴ終端により、ＤＢＩによって悪化され得るＤＣバランス化の問題がもたらされる場合がある。本明細書に説明されるように、ＤＢＩ１１６は、ＤＣオフセットをＶＴＴ終端と等価な値にバランスをとり得る１の数および０の数の比率を達成し得る。そのようなバランス化は、より簡易でより安価なレギュレータ回路設計を可能にし得る。
【００３８】
図２は、Ｉ／Ｏインターフェース上で所望のＤＣオフセットを維持するダイナミックバス反転を実行するシステムの実施形態のブロック図である。システム２００は、図１のシステム１００にあるような、本明細書に説明される任意のデバイス間通信システムに実装され得るメモリデバイスを表す。１つの実施形態において、メモリデバイス２１０は、ＤＢＩの適用を受ける信号を受信およびデコードするデバイスを表す。１つの実施形態において、メモリデバイス２１０は、ＤＢＩの適用を受ける信号を生成および送信するデバイスを表す。
【００３９】
メモリデバイス２１０はＩ／Ｏ２２０を含み、これはメモリデバイス２１０が信号を送信および／または受信することのできるＩ／Ｏインターフェースを表す。メモリデバイス２１０は、信号線２３０を経由して、メモリコントローラなどの外部デバイスに接続される。信号線２３０は、ＤＢＩの適用を受ける信号線グループを表す。別個のＤＢＩ指示信号はシステム２００に示されておらず、信号線２３０の一部と理解され得る。信号線２３０は、信号が反転された時を指示する、関連するＤＢＩ指示信号を有する。
【００４０】
メモリデバイス２１０は、ＤＢＩロジック２４０を含む。１つの実施形態において、ＤＢＩロジック２４０は、システム１００のＤＢＩロジック１１６と類似し、ＤＢＩ１１６に関したいかなる記述にも従って機能し得る。このように、１つの実施形態において、メモリデバイス１２０は、送信デバイスとしてＤＢＩを実行する。例えば、メモリデバイス２１０が関連するメモリコントローラ（具体的に示さず）から命令を受信した場合、メモリはデータを検索し、データを要求しているコントローラに送信する。１つの実施形態において、ＤＢＩ２４０は、メモリデバイス２１０がＤＢＩ指示信号に基づいて信号線２３０をデコードするのを可能にするロジックを表す。このように、メモリデバイス２１０は、メモリ素子（具体的に示されず）に正確にアクセスし得、メモリコントローラによって送信される命令を実行し得る。
【００４１】
１つの実施形態において、メモリデバイス２１０は、メモリが信号線２３０用のダイナミック終端の実行を可能にするＯＤＴ２５０を含む。１つの実施形態において、ＯＤＴ２５０は、信号線２３０をＶＴＴに終端する。Ｉ／Ｏ２２０と関連するＩ／Ｏアイ２２２に示されるように、ＶＴＴは、ＶＤＤとＶＳＳとの間の電圧レベルであり、ＶＤＤおよびＶＳＳは、信号線２３０を通じて交換（送信または受信）される信号の高電圧レールを表し、システムＶＤＤおよびシステムＶＳＳと必ずしも等価ではない。１つの実施形態において、ＶＴＴは、ＶＤＤおよびＶＳＳ間の中間に位置付けされる。しかしながら、ＶＴＴは、ＶＤＤおよびＶＳＳ間の中間ではないどこかに位置付けされ得ることは理解されよう。
【００４２】
１つの特定の用途において、ＬＰＤＤＲ５および／またはＤＤＲ５技術用のデータレートを増大しつつ向上した電力効率をいかにして提供するかを決定すべく、目下議論が行われている。メモリデバイス上のオンダイのＶＴＴベースの終端は、メモリサブシステムにおける電力効率を向上させる１つの可能性として議論されている。ＶＴＴベースの終端は、２つのファクターによって終端電力を減少させることができ、電力を終端強度からより独立させることができる。
【００４３】
しかしながら、ＯＤＴは、レギュレータ２７０および電源２８０によって表されるように、電源および／またはレギュレータに終端することが理解されよう。電源２８０は、メモリデバイス２１０の外側に図示され、電力がメモリデバイスの外側で生成され、電力がメモリデバイス２１０に提供されることを示す。１つの実施形態において、レギュレータ２７０は、メモリデバイス２１０内にある。従って、レギュレータ２７０は、電源２８０から給電を受け、Ｉ／Ｏ２２０の動作用に基準および／またはレール電圧を生成する。現代のホストシステム（例えば、プロセッサと共通のダイ上に統合されるメモリコントローラを通常含むプロセッサシステム）上で使用されるレギュレータは、高帯域幅の非線形レギュレータとなり得る。そのようなレギュレータは、高速トランジスタを必要とする場合があり、重要な設計および製造上の制約を有する場合がある。そのようなレギュレータの要求は、メモリデバイス２１０を生成するべく使用されるプロセスおよび技術によっては通常達成できるものではない場合がある。信号線２３０を通じて通信のＤＣバランスを制御することにより、ＶＴＴベースのｄｌ／ｄｔが減少され得、より簡易で、より低い帯域幅のレギュレータ設計を可能にし得る。
【００４４】
このように、１つの実施形態において、ＤＢＩ２４０は、関連するメモリコントローラの終わりか、メモリデバイス２１０のいずれかで、あるいは両方で、０の数に対する１の数の目標比率を達成するＤＢＩの適用を表す。特定の許容範囲内の目標比率を達成することにより、所望のＤＣバランスを出力データにもたらし得る。ＤＢＩ２４０は、目標比率を達成しようとするが、常に目標比率を正確に維持するのは、実用的ではない場合があることが理解されよう。このように、目標または所望の比率と共に、システム２００は、目標比率からの許容範囲または容認される分散を可能にし得る。ＤＢＩ２４０は、所望のＤＣバランスを維持すべくＩ／Ｏ２２０を通じて出力される信号にＤＢＩを適用し、ＶＴＴノード（または、Ｉ／Ｏが終端されるノード）と出入りする所望のネット電流のバランスをとり得る。
【００４５】
上記に論じられたように、ＤＢＩ２４０は、Ｉ／Ｏ２２０を通じて送信される１の数および／または０の数のネット数を追跡し得る。ＤＢＩ２４０は、ネット数をできるだけ目標に接近させ続けるようにＤＢＩビットまたはＤＢＩ指示信号を計算し得る。１つの実施形態において、目標はゼロである。このように、レギュレータ２７０は、ＶＴＴ電圧を生成する、またはＶＴＴノードを提供するので、ＶＴＴ電圧調整は、所望の性能を達成すべく、別の方法で必要とされるより低い帯域幅および電流でＤＣ供給値を提供し得る。そのような実行において、レギュレータ２７０は、比較的控え目な量のローカルデキャップ（ノイズフィルタリングの容量結合）でＶＴＴノード上のノイズを減少し得る。
【００４６】
メモリデバイス２１０は、Ｉ／Ｏドライバ２６０を含み、これは、Ｉ／Ｏ２２０を通じて出力を駆動する、または信号線２３０を通じて送信する制御ロジックを表す。Ｉ／Ｏドライバ２６０は、Ｉ／Ｏインターフェースの受信端にて所望の論理値を作り出すべく、信号用の所望のビット値または論理値を生成し、Ｉ／Ｏを駆動する回路を含む。Ｉ／Ｏドライバ２６０およびＯＤＴ２５０は、Ｉ／Ｏ２２０を通じてデータを送受信するのと連動して動作する。
【００４７】
図３は、ダイナミックバス反転ロジックの実施形態のブロック図である。回路３００は、１の数および０の数の所望の比率を達成するためのＤＢＩエンジンの１つの実施形態を表す。１つの実施形態において、回路３００が示され、１対１すなわち５０％の比率を達成するように構成される。しかしながら、回路３００は、異なる比率を達成すべく変更され得る。
【００４８】
回路３００は、データ３１０を受信する。データ３１０は、回路３００のロジックと関連付けられる信号線グループ上に出力されるデータを表す。１つの実施形態において、データ３１０は、２Ｎビットのデータを含む。数は異なる場合があり、必ずしも２進数ではないが、ロジックは２進数で動作する場合、より簡易になり得る。１つの実施形態において、信号線の実際の数は、非２進数である限りにおいて、回路３００は、２Ｎ本の信号線が存在するかのようにデータ３１０に作用し得、未使用の信号線を適当な論理値（例えば、ゼロで）でビットスタッフし得る。１つの実施形態において、回路３００は、（Ｎ＋１）ビットを有する数となり得るデータ３１０からビット単位総和３２０を生成する。ビット総和３２２は、ビット単位総和ロジック３２０の出力を表す。
【００４９】
１つの実施形態において、回路３００は、加算器３４０および加算器３５０でビット総和３２２を受信する。加算器３４０は、ネットの値すなわち実行中の計算平均引くビット総和（ネット３３２−ビット総和３２２）足す２Ｎ−１を計算する。１つの実施形態において、加算器３４０は、反転信号（反転されている信号）に対するネットからの差を計算する。加算器３５０は、ネット足すビット総和（ネット３３２＋ビット総和３２２）引く２Ｎ−１の値を計算する。１つの実施形態において、加算器３５０は、非反転信号に対するネットからの差を計算する。２Ｎ−１を加算または減算することは、ＶＴＴが用いられる構成のように、中間レールに対して値を正規化することと等価であり、ロジックは実行中のネットをＶＴＴの「ゼロ」にできるだけ接近して保持しようとする。加算器３４０および３５０は、回路３００が実装されるシステムの構成に応じて、プログラム可能となり得、異なる正規化値を適用する、または何も適用しないように構成され得ることは理解されよう。
【００５０】
総計（ＤＢＩ）３４２は、反転信号用の目標との差または誤差（例えば、５０％またはなんらかの他の目標）である符号付き総計を表す。総計（ＤＢＩ無）３５２は、非反転信号用の目標との差または誤差である符号付き総計を表す。１つの実施形態において、回路３００は、総計３４２および総計３５２が所望の目標により接近する値を表すかどうかを決定する。１つの実施形態において、絶対値ロジック３６２は、符号付き総計３５２上に絶対値を生成する。１つの実施形態において、絶対値ロジック３６４は、符号付き総計３５４上の絶対値を生成する。１つの実施形態において、ロジック３７０は、総計３５２の絶対値が総計３４２の絶対値より大きいかどうかを決定し得る。決定の出力は、ロジック３８０でＤＢＩデータ３８２を計算するために使用され得る。出力はまた、回路３００によって生成されるＤＢＩ指示であるＤＢＩ信号３７２として役割を果たし得る。
【００５１】
１つの実施形態において、ロジック３７０の出力はまた、選択された総計をネット総計に加える多重化回路用の選択制御として役割を果たし得る。このように、マルチプレクサは、ＤＢＩが使用される場合、符号付き総計３４２を計算された実行中の平均に加え、ＤＢＩが信号用に使用されない場合、符号付き総計３５２を計算された実行中の平均に加え得る。マルチプレクサは、選択された総計を残余総計３３０または等価カウンタブロックに送る。残余総計３３０は、実行中のネット３３２を維持し、これが回路３００の計算に使用され、後続のトランザクション上でＤＢＩを使用するかどうかを決定する。このように、先のネットが計算を行うために使用され、次に計算された総計が後続の計算用のネットに加えられる。
【００５２】
図４は、０の数に対する１の数の目標比率を維持すべくダイナミックバス反転を使用するシステム対そうでないシステムに対する出力ノイズを比較する挙動シミュレーションの実施形態を示す。図表４００は、２つのケースに対するメモリインターフェース用のシミュレーション結果を示す。第1のケースでは、ＤＢＩ無がインターフェースに適用された。第２のケースでは、ＤＢＩは１の数および０の数の目標比率を達成するためだけにインターフェースに適用された。ＤＢＩが１の数および０の数の目標比率を達成する時間の少なくともいくらかと、特定の論理レベルの送信を減少する、またはロジックトランザクションを減少する時間の少なくともいくらかとに適用される、ＤＢＩのハイブリッド適用の使用ケースは、シミュレーションされなかった。
【００５３】
図表４００において、中央のグレー領域は、デバイス間インターフェース用のＶＴＴレギュレータに対する挙動を表す。具体的に、経時的な電圧スパイクがスクランブルバステストによって生成される異なるランダムデータパターン用の出力ノイズを表す。ケース４１０は、ケース４２０よりもレギュレータ出力上のノイズがはるかに高いことが観察されるだろう。ケース４２０は、比較の目的で図表４００のケース４２０に重ね合わされていることが理解されよう。このように、ケース４１０の中央は、ケース４２０によって覆い隠されているせいで、見えない。ケース４２０において、ＤＢＩは、１の数および０の数の目標比率を達成すべく適用された。具体的に、ケース４２０は、１の数および０の数のの１対１の比率を達成しようとした。名目的なＤＣ電圧レベルは、高周波ノイズが比較的穏やかな状態で、およそ５５０ｍＶであることが観察されよう。ケース４２０にてそれを観察すると、０の数に対する１の数の１対１の比率を達成するＤＢＩの適用により、およそ９ｍＶの二乗平均平方根（ＲＭＳ）ノイズ値になった。ケース４１０において、ＤＢＩ無が、インターフェースを通じた送信に適用された。高周波ノイズの寄与が、より暗いノイズスパイクによって表される。図表４００は、ケース４１０上に重ね合わされたケース４２０を表すことが理解されよう。ケース４１０において、名目のＤＣ電圧レベルはまだ５５０ｍＶであるが、ノイズのＲＭＳは３２ｍＶであり、すなわちケース４２０のそれの３倍よりも大きい。
【００５４】
図表４００にて示されるシミュレーションにおいて、ケース４１０用にシミュレーションされたレギュレータ（ＤＢＩ無）は、応答時間が２ｎｓ未満の高帯域幅のレギュレータであった。ケース４２０（１の数と０の数との間のネットゼロの差を達成するＤＢＩ）に関しては、レギュレータは、ＤＣ値を供給しなければならなかったに過ぎず、実際上ゼロの帯域幅を必要とした。レギュレータにおける差以外に、ケース４１０および４２０に対するシミュレーションは、ドライバ、電流およびデキャップが数の点で同一のモデルを使用する。このように、ケース４２０は、ケース４１０に対して３倍より多くノイズを減少し、著しくより簡易なレギュレータ設計でそのように行う。
【００５５】
前述のように、０の数に対する１の数の目標比率は、プログラム可能である。そのようなプログラム可能性は、異なる使用ケースのシナリオに対して有用であり得る。例えば、ＬＰＤＤＲ４の場合、ＤＲＡＭまたはメモリデバイスの送信器は、コモンモードをおよそ２００ｍＶ未満に制限する。そのような場合に、ＤＢＩエンジンは、所望のコモンモードのＤＣオフセットを達成する０の数に対する１の数の比率を達成すべくプログラムされ得る。１つの実施形態において、ＤＢＩ計算エンジンは、目標として１の数および０の数の任意の比率をプログラムするオフセットを含み得る。このように、ＶＴＴ終端に対する最大電力効率は大体、５０％の比率で達成され得るが、他の比率が目標比率にとして所望される多くの考察および多くの実装が存在し得る。
【００５６】
図５は、プログラム可能なダイナミックバス反転を実行するためのプロセスの実施形態のフロー図である。プロセス５００は、０の数に対する１の数の比率を達成すべくＤＢＩを適用する工程を説明する。１つの実施形態において、制御エンティティは、ＤＢＩエンジンに対する０の数に対する１の数の目標比率を設定する（５０２）。制御エンティティは、デバイス内の動作条件に基づいてダイナミックに変化し得るホストシステムとなり得る。制御エンティティは、被試験システムの性能に基づき目標比率を設定するテストシステムとなり得る。制御エンティティは、ＤＢＩエンジンと関連するデバイス間通信インターフェースが配置されるシステムのアーキテクチャおよびセットアップに基づき、動作用のデバイスをプログラムする構成システムとなり得る。
【００５７】
１つの実施形態において、プロセス５００は、デバイス間通信インターフェースを共有する２つのデバイス用の送信デバイスの動作を参照して理解され得る。１つの実施形態において、プロセス５００は、命令をメモリデバイスまたはＤＲＡＭに送信するメモリコントローラデバイスの動作を参照して理解され得る。１つの実施形態において、メモリデバイスは、メモリコントローラへのデータ送信に関して同様または同一のフローを採用し得る。１つの実施形態において、非メモリＩ／Ｏインターフェースは、当業者によって理解されるように、同様なやり方で動作し得る。このように、例は、非限定的である。１つの実施形態において、メモリコントローラは、ホストからメモリアクセス要求を受信し得る（５０４）。ホストによって実行されるオペレーティングシステムまたはアプリケーションは、その実行に基づきデータ要求を生成する。メモリコントローラは、データアクセス要求を実行させる命令信号を生成し得る（５０６）。
【００５８】
１つの実施形態において、メモリコントローラは、１の数および０の数の目標比率の達成に少なくとも部分的に依存するＤＢＩ計算を実行するＤＢＩエンジンまたはＤＢＩロジックを含む。このように、ＤＢＩロジックは、非反転信号用および信号の反転バージョン用の１の数および／または０の数の総数を特定し得る（５０８）。参照される信号は、要求を指示すべくメモリコントローラによってメモリデバイスに出力される信号またはビットの組み合わせである。信号は、ＤＢＩロジックおよびＤＢＩ指示信号と関連付けられる信号線グループを通じて送信される全てのビットを参照する。
【００５９】
１つの実施形態において、ＤＢＩロジックは、非反転信号の１の数および０の数の比率に基づき平均比率を計算する（５１０）。１つの実施形態において、ＤＢＩロジックは、反転信号の１の数および０の数の比率に基づき平均比率を計算する（５１２）。１つの実施形態において、ＤＢＩロジックは、非反転信号または反転信号の比率が目標比率に最も接近する計算平均を提供するかどうかを決定する（５１４）。目標比率に最も接近する計算平均を提供する工程は、計算平均比率を目標比率により接近して移動する工程、および／または計算平均を目標比率により接近して維持する工程を含み得る。
【００６０】
１つの実施形態において、非反転または反転信号の比率が計算平均比率を目標比率により接近して提供するかどうかを決定する工程は、アキュムレータにて１の数および０の数の実行中の差を保持する工程を含む。１つの実施形態において、実行中の差は、符号付きの値である。１つの実施形態において、目標比率は、１対１の比率である。１つの実施形態において、目標比率は、１対１以外である。１つの実施形態において、受信デバイスは、ＶＴＴ終端を採用し、目標比率は、ＶＴＴ終端に関するＤＣバランスを達成するように構成される。
【００６１】
１つの実施形態において、非反転信号の１の数および０の数の総数または比率が、計算比率を目標比率により接近して提供する場合（５１６  非反転分岐）、１つの実施形態において、ＤＢＩロジックは、否定的なＤＢＩ指示を生成し得る。否定的なＤＢＩ指示は、単にＤＢＩ無指示となり得るに過ぎない。否定的なＤＢＩ指示は、ＤＢＩが信号線グループに適用されないことを指示する論理値出力となり得る。次に、送信デバイスは、信号を反転せずに非反転信号を送信する（５１８）。１つの実施形態において、非反転信号の１の数および０の数の総数または比率が、計算比率を目標比率により接近して提供する場合（５１６  反転分岐）、１つの実施形態において、ＤＢＩロジックは、肯定的な反転インジケータを生成する（５２０）。そのような肯定的な反転インジケータは、関連付けられる信号線グループが反転されたことを受信デバイスにシグナル伝達する。次に、送信デバイスは、信号を反転し、反転信号を受信デバイスに送信する（５２２）。
【００６２】
図６は、プログラム可能なダイナミックバス反転が実装され得るコンピューティングシステムの実施形態のブロック図である。システム６００は、本明細書に説明される任意の実施形態によるコンピューティングデバイスを表現し、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲームもしくは娯楽制御システム、スキャナ、複写機、プリンタ、ルーティングもしくはスイッチングデバイス、または他の電子デバイスであり得る。システム６００は、システム６００のための命令の処理、動作管理、および実行を提供するプロセッサ６２０を含む。プロセッサ６２０は、システム６００のための処理を提供する任意のタイプのマイクロプロセッサ、中央処理ユニット（ＣＰＵ）、処理コア、または他の処理ハードウェアを含み得る。プロセッサ６２０は、システム６００の動作全体を制御し、１または複数のプログラム可能な汎用もしくは専用マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、プログラム可能なコントローラ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能なロジックデバイス（ＰＬＤ）等、またはそのようなデバイスの組み合わせであるか、またはこれらを含み得る。
【００６３】
メモリサブシステム６３０は、システム６００の主メモリを表し、コードがプロセッサ６２０によって実行されることになる一時的なストレージ、またはルーチンを実行する際に使用されることになるデータ値を提供する。メモリサブシステム６３０は、読取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュメモリ、１または複数の様々なランダムアクセスメモリ（ＲＡＭ）、または他のメモリデバイス等の１または複数のメモリデバイス、またはそのようなデバイスの組み合わせを含み得る。メモリサブシステム６３０は、とりわけ、オペレーティングシステム（ＯＳ）６３６を格納して、そのホストとして働き、システム６００内での命令の実行のためのソフトウェアプラットフォームを提供する。なお、他の命令６３８は、システム６００の論理および処理を提供すべく、メモリサブシステム６３０から格納および実行される。ＯＳ６３６および命令６３８は、プロセッサ６２０によって実行される。メモリサブシステム６３０は、それがデータ、命令、プログラム、または他のアイテムを格納するメモリデバイス６３２を含む。１つの実施形態において、メモリサブシステムは、メモリデバイス６３２への命令を生成および発行するメモリコントローラであるメモリコントローラ６３４を含む。メモリコントローラ６３４がプロセッサ６２０の物理的な一部であり得ることが理解されよう。
【００６４】
プロセッサ６２０およびメモリサブシステム６３０は、バス／バスシステム６１０に結合される。バス６１０は、適当なブリッジ、アダプタ、および／またはコントローラによって接続された任意の１または複数の別個の物理的バス、通信線／インターフェース、および／または二地点間接続を表す抽象概念である。従って、バス６１０は、例えば、システムバス、周辺部品相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔもしくは産業標準アーキテクチャ（ＩＳＡ：ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、小型コンピュータシステムインターフェース（ＳＣＳＩ：ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）バス、ユニバーサルシリアルバス（ＵＳＢ）、または米国電気電子技術者協会（ＩＥＥＥ：Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）規格１３９４バス（通常「ファイヤワイヤ」と呼ばれる）のうちの１または複数を含み得る。バス６１０における複数のバスは、ネットワークインターフェース６５０における複数のインターフェースにも対応し得る。
【００６５】
システム６００は、また、バス６１０に結合された、１または複数の入力／出力（Ｉ／Ｏ）インターフェース（複数可）６４０、ネットワークインターフェース６５０、１または複数の内蔵大容量ストレージデバイス（複数可）６６０、および周辺機器インターフェース６７０を含む。Ｉ／Ｏインターフェース６４０は、１または複数のインターフェース構成要素を含み得、それらを通して、ユーザは、システム６００（例えば、ビデオ、オーディオ、および／または英数字インターフェーシング）とインタラクトする。ネットワークインターフェース６５０は、１または複数のネットワークを通して遠隔デバイス（例えば、サーバ、他のコンピューティングデバイス）と通信する能力をシステム６００に提供する。ネットワークインターフェース６５０は、イーサネット（登録商標）アダプタ、無線相互接続コンポーネント、ＵＳＢ（ユニバーサルシリアルバス）、または他の有線もしくは無線規格ベースのインターフェースまたはプロプライエタリインターフェースを含み得る。
【００６６】
ストレージ６６０は、１または複数の磁気、固体状態、あるいは光学ベースのディスク等の不揮発性様式あるいは組み合わせで大量のデータを格納するための任意の従来の媒体となり得るか、それを含み得る。ストレージ６６０は、永続的な状態で、コードまたは命令、およびデータ６６２を保持する（すなわち、値は、システム６００への電源の遮断にもかかわらず保持される）。ストレージ６６０は一般的には「メモリ」と考えられ得るが、メモリ６３０は命令をプロセッサ６２０に提供する実行メモリまたは動作メモリである。ストレージ６６０は不揮発性であるが、メモリ６３０は揮発性メモリ（すなわち、システム６００への電力が遮断されると、データの値または状態が不定になる）を含み得る。
【００６７】
周辺機器インターフェース６７０は、具体的に上述されていない任意のハードウェアインターフェースを含み得る。周辺機器は、概して、システム６００に従属して接続するデバイスを指す。従属的接続は、動作が実行され、ユーザがインタラクトするソフトウェアおよび／またはハードウェアプラットフォームを、システム６００が提供するものである。
【００６８】
１つの実施形態において、メモリサブシステム６３０および／または他のサブシステム（例えば、プロセッサ６２０、Ｉ／Ｏインターフェース６４０および／または他のもの）は、ＤＢＩの適用を受けるデバイス間Ｉ／Ｏインターフェースを含む。ＤＢＩロジックは、Ｉ／Ｏインターフェースを越える送信にて０の数に対する１の数の所望の比率を達成すべく、プログラム可能なＤＢＩ６８０によって表されるようにプログラム可能となり得る。そのようなプログラム可能なＤＢＩは、先の送信の履歴を格納する機構（例えば、計算平均比率を格納するアキュムレータまたはレジスタ）と、プログラム可能な目標比率とを含む。ＤＢＩロジックまたはＤＢＩ計算は、送信すべき信号にＤＢＩを適用するかどうかを決定する際に、目標比率および先の計算比率を構成する。非反転信号が、計算比率を目標比率により接近して提供する場合、送信デバイスは非反転信号を送信する。反転信号が、計算比率を目標比率により接近して提供する場合、送信デバイスはＤＢＩを信号に適用し、反転信号を送信する。
【００６９】
図７は、プログラム可能なダイナミックバス反転が実装され得るモバイルデバイスの実施形態のブロック図である。デバイス７００は、コンピューティングタブレット、モバイルフォンもしくはスマートフォン、無線使用可能電子書籍端末、ウェアラブルコンピューティングデバイス、または他のモバイルデバイス等のモバイルコンピューティングデバイスを表す。複数のコンポーネントのうちの特定のものが全体として示され、そのようなデバイスの全てのコンポーネントがデバイス７００に示されているわけではないことが理解されよう。
【００７０】
デバイス７００は、デバイス７００の主な処理動作を実行するプロセッサ７１０を含む。プロセッサ７１０は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラム可能なロジックデバイス、または他の処理手段等の１または複数の物理的デバイスを含み得る。プロセッサ７１０によって実行される処理動作は、アプリケーションおよび／またはデバイス機能が実行されるオペレーティングプラットフォームまたはオペレーティングシステムの実行を含む。複数の処理動作は、人間のユーザまたは複数の他のデバイスとのＩ／Ｏ（入力／出力）に関連する複数の動作、電力管理に関連する複数の動作、および／またはデバイス７００を別のデバイスに接続することに関連する複数の動作を含む。これらの処理動作は、オーディオＩ／Ｏおよび／またはディスプレイＩ／Ｏに関連する複数の動作も含み得る。
【００７１】
１つの実施形態において、デバイス７００は、オーディオサブシステム７２０を含み、オーディオサブシステム７２０は、複数のオーディオ機能をコンピューティングデバイスに提供することに関連付けられたハードウェア（例えば、オーディオハードウェアおよびオーディオ回路）およびソフトウェア（例えば、ドライバ、コーデック）のコンポーネントを表す。オーディオ機能は、スピーカおよび／またはヘッドフォン出力、ならびにマイク入力を含み得る。そのような機能のための複数のデバイスは、デバイス７００に統合され、またはデバイス７００に接続され得る。１つの実施形態において、ユーザは、プロセッサ７１０により受信および処理される複数のオーディオ命令を提供することにより、デバイス７００とインタラクトする。
【００７２】
ディスプレイサブシステム７３０は、ユーザがコンピューティングデバイスとインタラクトする視覚および／または触覚ディスプレイを提供する、ハードウェア（例えば、ディスプレイデバイス）およびソフトウェア（例えば、ドライバ）の複数のコンポーネントを表す。ディスプレイサブシステム７３０は、ディスプレイインターフェース７３２を含み、ディスプレイインターフェース７３２は、ディスプレイをユーザに提供するために用いられる特定のスクリーンまたはハードウェアデバイスを含む。１つの実施形態において、ディスプレイインターフェース７３２は、ディスプレイに関連する少なくともいくつかの処理を実行する、プロセッサ７１０と別個のロジックを含む。１つの実施形態において、ディスプレイサブシステム７３０は、ユーザに対して出力および入力の両方を提供するタッチスクリーンデバイスを含む。１つの実施形態において、ディスプレイサブシステム７３０は、出力をユーザに提供する高解像度（ＨＤ）ディスプレイを含む。高解像度は、およそ１００ＰＰＩ（インチごとの画素）以上の画素密度を有するディスプレイを指し得、フルＨＤ（例えば、１０８０ｐ）、ｒｅｔｉｎａディスプレイ、４Ｋ（超高解像度又はＵＨＤ）、又は他のようなフォーマットを含み得る。
【００７３】
Ｉ／Ｏコントローラ７４０は、ユーザとのインタラクションに関連するハードウェアデバイスおよびソフトウェアコンポーネントを表す。Ｉ／Ｏコントローラ７４０は、オーディオサブシステム７２０および／またはディスプレイサブシステム７３０の一部であるハードウェアを管理するために動作し得る。なお、Ｉ／Ｏコントローラ７４０は、デバイス７００に接続する追加の複数のデバイスに対する接続ポイントを図示し、ユーザはデバイス７００を介してシステムとインタラクトし得る。例えば、デバイス７００に取り付けられ得る複数のデバイスとしては、マイクデバイス、スピーカもしくはステレオシステム、ビデオシステムもしくは他のディスプレイデバイス、キーボードもしくはキーパッドデバイス、またはカードリーダもしくは他のデバイス等の特定のアプリケーションと共に用いるための他のＩ／Ｏデバイスが挙げられ得る。
【００７４】
上述のように、Ｉ／Ｏコントローラ７４０は、オーディオサブシステム７２０および／またはディスプレイサブシステム７３０とインタラクトし得る。例えば、マイクまたは他のオーディオデバイスを介した入力は、デバイス７００の１または複数のアプリケーションまたは機能に対する入力または命令を提供し得る。なお、ディスプレイ出力の代わり、またはこれに加えてオーディオ出力が提供され得る。別の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスは、Ｉ／Ｏコントローラ７４０により少なくとも部分的に管理され得る入力デバイスとしても機能する。Ｉ／Ｏコントローラ７４０により管理される複数のＩ／Ｏ機能を提供するべく、デバイス７００上に追加の複数のボタンまたはスイッチも存在し得る。
【００７５】
１つの実施形態において、Ｉ／Ｏコントローラ７４０は、デバイス７００に含まれ得る加速度計、カメラ、光センサもしくは他の環境センサ、ジャイロスコープ、全地球測位システム（ＧＰＳ）、または他のハードウェア等の複数のデバイスを管理する。入力は、直接のユーザインタラクションの一部であると共に、システムの動作に影響する、システムへの環境入力（ノイズに対するフィルタリング、輝度検出のためのディスプレイの調整、カメラのフラッシュの適用、または他の複数の機能等）を提供することの一部であり得る。１つの実施形態において、デバイス７００は、バッテリ電力使用量、バッテリの充電、および省電力動作に関する複数の機能を管理する電力管理７５０を含む。
【００７６】
メモリサブシステム７６０は、デバイス７００に情報を格納するためのメモリデバイス７６２を含む。メモリサブシステム７６０は、不揮発性（メモリデバイスへの電力が中断されても状態が変化しない）および／または揮発性（メモリデバイスへの電力が中断されると、状態が不定になる）メモリデバイスを含み得る。メモリ７６０は、システム７００の複数のアプリケーションおよび機能の実行に関連するアプリケーションデータ、ユーザデータ、音楽、写真、文書、または他のデータ、ならびにシステムデータ（長期的または一時的であるかに関係なく）を格納し得る。１つの実施形態において、メモリサブシステム７６０は、（システム７００の制御の一部ともみなされ得、潜在的にプロセッサ７１０の一部とみなされ得る）メモリコントローラ７６４を含む。メモリコントローラ７６４は、メモリデバイス７６２に複数の命令を生成して発行するスケジューラを含む。
【００７７】
接続７７０は、デバイス７００が複数の外部デバイスと通信することを可能にするハードウェアデバイス（例えば、無線および／または有線コネクタ、ならびに通信ハードウェア）およびソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイントまたは基地局等の別個のデバイス、ならびにヘッドセット、プリンタ、または他のデバイス等の周辺機器であり得る。
【００７８】
接続７７０は、複数の異なるタイプの接続を含み得る。一般化するべく、デバイス７００はセルラー接続７７２および無線接続７７４と共に図示される。セルラー接続７７２は一般に、セルラネットワーク接続を指し、ＧＳＭ（登録商標）（モバイル通信のためのグローバルシステム）または改変形態もしくは均等物、ＣＤＭＡ（ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ）または改変形態もしくは均等物、ＴＤＭ（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅｘｉｎｇ）または改変形態もしくは均等物、ＬＴＥ（ｌｏｎｇ  ｔｅｒｍ  ｅｖｏｌｕｔｉｏｎ、「４Ｇ」とも呼ばれる）、または他の複数のセルラサービス規格を介して提供されるもの等、複数の無線キャリアにより提供される。無線接続７７４は、セルラでない無線接続を指し、パーソナルエリアネットワーク（Ｂｌｕｅｔｏｏｔｈ（登録商標）等）、ローカルエリアネットワーク（ＷｉＦｉ（登録商標）等）、および／またはワイドエリアネットワーク（ＷｉＭａｘ（登録商標）等）、または他の無線通信を含み得る。無線通信は、非固体媒体を通して変調された電磁放射の使用を通したデータ転送を指す。有線通信は、固体通信媒体を介して行われる。
【００７９】
複数の周辺接続７８０は、周辺接続を行うハードウェアインターフェースおよびコネクタ、ならびにソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）を含む。デバイス７００は、他のコンピューティングデバイスに対する周辺デバイス（「ｔｏ」７８２）であり得ると共に、それに接続された複数の周辺デバイスを有するもの（「ｆｒｏｍ」７８４）でもあり得ることを理解されよう。一般に、デバイス７００は、デバイス７００上のコンテンツの管理（例えば、ダウンロードおよび／またはアップロード、変更、同期）などを目的として複数の他のコンピューティングデバイスに接続する「ドッキング」コネクタを有する。なお、ドッキングコネクタは、デバイス７００がコンテンツの出力を制御することを可能にする特定の複数の周辺機器、例えば、オーディオビジュアルシステムまたは他のシステムに、デバイス７００が接続することを可能にし得る。
【００８０】
独自のドッキングコネクタまたは他の独自の接続ハードウェアに加えて、デバイス７００は一般的または規格ベースのコネクタにより周辺接続７８０を行い得る。一般的なタイプとしては、（多数の異なるハードウェアインターフェースのうちのいずれかを含み得る）ユニバーサルシリアルバス（ＵＳＢ）コネクタ、ＭｉｎｉＤｉｓｐｌａｙＰｏｒｔ（ＭＤＰ）を含むＤｉｓｐｌａｙＰｏｒｔ、高解像度マルチメディアインターフェース（ＨＤＭＩ（登録商標））、ファイヤワイヤ、または他のタイプを含み得る。
【００８１】
１つの実施形態において、メモリサブシステム７６０および／または他のサブシステム（例えば、プロセッサ７１０、ディスプレイサブシステム７３０、周辺接続７８０および／または他のもの）は、ＤＢＩの適用を受けるデバイス間Ｉ／Ｏインターフェースを含む。ＤＢＩロジックは、Ｉ／Ｏインターフェースにわたる送信にて０の数に対する１の数の所望の比を達成すべく、プログラム可能なＤＢＩ７６６によって表されるようにプログラム可能となり得る。そのようなプログラム可能なＤＢＩは、先の送信の履歴を格納する機構（例えば、計算平均比率を格納するアキュムレータまたはレジスタ）と、プログラム可能な目標比率とを含む。ＤＢＩロジックまたはＤＢＩ計算は、送信すべき信号にＤＢＩを適用するかどうかを決定する際に、目標比率および先の計算比率の理由を説明する。非反転信号が、計算比率を目標比率により接近して提供する場合、送信デバイスは非反転信号を送信する。反転信号が、計算比率を目標比率により接近して提供する場合、送信デバイスはＤＢＩを信号に適用し、反転信号を送信する。
【００８２】
１つの態様において、デバイス間の信号送信のための方法は、入力／出力（Ｉ／Ｏ）インターフェースを通じて送信される信号を受信する工程、信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定する工程、非反転信号での１の数および０の数の比率、または、反転信号での１の数および０の数の比率が、０の数に対する１の数の計算平均比率を１の数または０の数の目標比率により接近して提供するかどうかを決定する工程、および非反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、Ｉ／Ｏインターフェースを通じて非反転信号を送信する工程、または反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、反転指示信号を生成する処理を含み、Ｉ／Ｏインターフェースを通じて反転信号を送信する工程を備える。
【００８３】
１つの実施形態において、決定する工程はさらに、アキュムレータにて１の数および０の数の差が符号付きされた実行中のネットを保持する工程を備える。１つの実施形態において、目標比率が１対１であり、決定する工程は、非反転信号または反転信号が計算平均比率をゼロのネット差により接近して提供するかどうかを決定する工程を備える。１つの実施形態において、目標比率が１対１以外であり、決定する工程は、非反転信号または反転信号が目標比率を達成すべく、計算平均比率をネット差により接近して提供するかどうかを決定する工程を備える。１つの実施形態において、差が符号付きされた実行中のネットを保持する工程は、異なるランクに対する別個の差が符号付きされた実行中のネットを保持する工程を備える。１つの実施形態において、差が符号付きされた実行中のネットを保持する工程は、異なるデバイス用の別の差が符号付きされた実行中のネットを保持する工程を備える。１つの実施形態において、Ｉ／Ｏインターフェースは、Ｉ／Ｏインターフェースの信号線が上側および下側の電圧供給レール間の電圧に終端されるＶＴＴ終端を有する。１つの実施形態において、Ｉ／ＯインターフェースにわたりＤＣ（直流）バランスの目標レベルを達成すべく、目標比率を計算する工程をさらに備える。１つの実施形態において、非反転信号における１の数および０の数の比率、または、反転信号における１の数および０の数の比率が、０の数に対する１の数の計算平均比率を目標比率により接近して提供するかどうかを決定する工程を、ダイナミックバス反転の実行に対して、選択的に適用する工程をさらに備える。１つの実施形態において、選択的に適用する工程はさらに、非反転信号または反転信号が０の数に対する１の数の計算平均比率を目標比率により接近して提供するかどうかを決定する工程と、計算平均比率を目標比率により接近して提供する信号を送信する工程との間で選択的に切り替える工程と、出力信号上のトグル数を減少する、または送信される１の数を減少するためにダイナミックバス反転を実行する工程とを備える。１つの実施形態において、選択的に切り替える工程はさらに、非反転信号または反転信号の０の数に対する１の数の比率が予め決定された範囲内になければ、目標比率により接近する計算平均比率を提供すべくダイナミックバス反転を適用する工程と、さもなければ、出力信号上のトグル数を減少するか、または送信される１の数の総数を減少するかのためにダイナミックバス反転を適用する工程とを備える。１つの実施形態において、送信される信号を受信する工程は、一連の連続出力トランザクションの複数信号の１つを受信する工程を備え、１の数および０の数の比率を特定する工程は、一連の連続出力トランザクションの複数信号の１つを受信する工程にわたり比率を特定する工程を備え、非反転信号または反転信号の１の数および０の数の比率が、計算平均比率を目標比率により接近して提供するかどうかを決定する工程が、１つの受信信号の０の数に対する１の数の比率が、一連の連続出力トランザクションに対して、計算平均比率を目標比率により接近して提供するかどうかを決定する工程を備える。
【００８４】
１つの態様において、通信用に結合される送信デバイスと受信デバイスを含む回路は、送信デバイスを入力／出力（Ｉ／Ｏ）インターフェースを通じて受信デバイス結合するハードウェアコネクタと、Ｉ／Ｏインターフェースを通じて受信デバイスに送信される信号を受信するバッファと、信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定し、非反転信号での１の数および０の数の比率、または、反転信号での１の数および０の数の比率が、０の数に対する１の数の計算平均比率を１の数または０の数の目標比率により接近して提供するかどうかを決定し、および非反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、Ｉ／Ｏインターフェースを通じて非反転信号を送信し、または反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、反転指示信号を生成する処理を含み、Ｉ／Ｏインターフェースを通じて反転信号を送信するロジックと
を含む。
【００８５】
１つの実施形態において、回路は、インターフェースを通じて送信される１の数および０の数の差が符号付きされた実行中のネットを維持するアキュムレータをさらに備える。１つの実施形態において、決定するロジックはさらに、差が符号付きされた実行中のネットと、非反転信号および反転信号の１の数および０の数の差とを比較するロジックを備える。１つの実施形態において、目標比率が１対１であり、決定するロジックは、非反転信号または反転信号が計算平均比率をゼロのネット差により接近して提供するかどうかを計算するロジックを備える。１つの実施形態において、目標比率が１対１以外であり、決定するロジックは、非反転信号または反転信号が目標比率を達成すべく、計算平均比率をネット差により接近して提供するかどうかを計算するロジックを備える。１つの実施形態において、アキュムレータは、複数のアキュムレータの１つを備え、それぞれが異なるランク用に差が符号付きされた実行中のネットを保持する。１つの実施形態において、アキュムレータは、複数のアキュムレータの１つを備え、それぞれが異なるデバイス用に差が符号付きされた実行中のネットを保持する。１つの実施形態において、Ｉ／Ｏインターフェースは、Ｉ／Ｏインターフェースの信号線が上側および下側の電圧供給レール間の電圧に終端されるＶＴＴ終端を有する。１つの実施形態において、Ｉ／ＯインターフェースにわたりＤＣ（直流）バランスの目標レベルを達成すべく、目標比率を計算するロジックをさらに備える。１つの実施形態において、ロジックは、ダイナミックバス反転ロジックを備える。１つの実施形態において、ロジックは、非反転信号または反転信号が０の数に対する１の数の計算平均比率を目標比率により接近して提供するかどうかを決定する工程と、計算平均比率を目標比率により接近して提供する信号を送信する工程との間で選択的に切り替え、出力信号上のトグル数を減少するか、または送信される１の数の総数を減少するかのためにダイナミックバス反転を実行する。１つの実施形態において、ロジックはさらに、非反転信号または反転信号の０の数に対する１の数の比率が予め決定された範囲内になければ、目標比率により接近した計算平均比率を提供すべくダイナミックバス反転を適用し、さもなければ、出力信号上のトグル数を減少するか、または送信される１の数の総数を減少するかのためにダイナミックバス反転を適用する。１つの実施形態において、信号は、一連の連続出力トランザクションの複数信号の１つを備え、ロジックは、一連の連続出力トランザクションを通じて比率を特定し、ロジックは、一連の連続出力トランザクションに対して、どちらの比率が計算平均比率を目標比率により接近して提供するかを決定する。
【００８６】
１つの態様において、メモリデバイスと、メモリデバイスに結合される入力／出力（Ｉ／Ｏ）インターフェースと、Ｉ／Ｏインターフェースを通じてメモリデバイスに結合されるメモリコントローラとを備えるメモリサブシステムを有する電子デバイスであって、メモリコントローラは、Ｉ／Ｏインターフェースを通じてメモリデバイスに送信される信号を受信するバッファと、信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定し、非反転信号での１の数および０の数の比率、または、反転信号での１の数および０の数の比率が、０の数に対する１の数の計算平均比率を１の数または０の数の目標比率により接近して提供するかどうかを決定し、および非反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、Ｉ／Ｏインターフェースを通じて非反転信号を送信し、または反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、反転指示信号を生成する処理を含み、Ｉ／Ｏインターフェースを通じて反転信号を送信するロジックと、メモリデバイスからアクセスされるデータに基づいて表示を生成すべく結合されるタッチスクリーンディスプレイとを含む。通信用に結合される送信デバイスおよび受信デバイスを含む回路に関して説明される任意の実施形態もまた、電子デバイスに適用することができる。
【００８７】
１つの態様において、アクセスされた場合、コンピューティングデバイスにデバイス間の信号送信用の動作を実行する、格納された内容を有するコンピュータ可読記憶媒体を備える製造物品であって、
入力／出力（Ｉ／Ｏ）インターフェースを通じて送信される信号を受信する工程、
信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定する工程、
非反転信号での１の数および０の数の比率、または、反転信号での１の数および０の数の比率が、０の数に対する１の数の計算平均比率を１の数または０の数の目標比率により接近して提供するかどうかを決定する工程、および
非反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、Ｉ／Ｏインターフェースを通じて非反転信号を送信する工程、または
反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、反転指示信号を生成する処理を含み、Ｉ／Ｏインターフェースを通じて反転信号を送信する工程
を含む。デバイス間の信号送信用の方法に関して説明される任意の実施形態はまた、製造物品にも適用され得る。
【００８８】
１つの態様において、デバイス間の信号送信用の装置は、
入力／出力（Ｉ／Ｏ）インターフェースを通じて送信される信号を受信する手段、
信号の非反転バージョン（「非反転信号」）での１の数および０の数の比率と、信号の反転バージョン（「反転信号」）での１の数および０の数の比率とを特定する手段、
非反転信号での１の数および０の数の比率、または、反転信号での１の数および０の数の比率が、０の数に対する１の数の計算平均比率を１の数または０の数の目標比率により接近して提供するかどうかを決定する手段、および
非反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、Ｉ／Ｏインターフェースを通じて非反転信号を送信する手段、または
反転信号での１の数および０の数の比率が、計算平均比率を目標比率により接近して提供する場合、反転指示信号を生成する処理を含み、Ｉ／Ｏインターフェースを通じて反転信号を送信する手段
を備える。デバイス間の信号送信のための方法に関して説明される任意の実施形態もまた、装置に適用し得る。
【００８９】
本明細書において図示される複数のフロー図は、一連の様々な処理動作の例を提供する。フロー図は、ソフトウェアまたはファームウェアルーチンにより実行されるべき複数の動作、ならびに物理的動作を示し得る。１つの実施形態において、フロー図は、ハードウェアおよび／またはソフトウェアの形で実行され得る有限ステートマシン（ＦＳＭ）の状態を示し得る。特定のシーケンスまたは順序で示されているが、別途指定されない限り、動作の順序は変更され得る。従って、図示される複数の実施形態は、専ら例としてのみ理解されるべきであり、処理は異なる順序で実行され得、いくつかの動作は並行して実行され得る。なお、１または複数の動作は、様々な実施形態において省略され得る。従って各実施形態において、全ての動作が必要とされるわけではない。他の複数のプロセスフローも可能である。
【００９０】
様々な動作または機能が本明細書に説明される限りにおいて、動作または機能は、ソフトウェア、コード、命令、構成、および／またはデータとして説明され、または定義され得る。コンテンツは、直接に実行可能なもの（「オブジェクト」または「実行可能な」形式）、ソースコード、または差分コード（「デルタ」または「パッチ」コード）であり得る。本明細書に説明される複数の実施形態におけるソフトウェアコンテンツは、コンテンツが格納された製造物品を経由して、または通信インターフェースを経由してデータを送信するように通信インターフェースを動作する方法により提供され得る。機械可読記憶媒体は、説明される機械に複数の機能または動作を実行させ得、記録可能／記録不可能な媒体（例えば、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス等）のような機械（例えば、コンピューティングデバイス、電子システム等）によりアクセス可能な形態で情報を格納する任意の機構を含む。通信インターフェースは、メモリバスインターフェース、プロセッサバスインターフェース、インターネット接続、ディスクコントローラ等のような別のデバイスに通信するハードワイヤード、無線、光等の媒体のいずれかにインターフェースで接続する任意の機構を含む。通信インターフェースは、複数の構成パラメータを提供し、および／または信号を送信して、通信インターフェースがソフトウェアコンテンツを記述するデータ信号を提供するように準備することにより構成され得る。通信インターフェースは、通信インターフェースに送信される１または複数の命令または信号によりアクセスされ得る。
【００９１】
本明細書に説明される様々なコンポーネントは、説明される複数の動作または機能を実行するための手段であり得る。本明細書に説明される各コンポーネントは、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む。これらのコンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア（例えば、特定用途向けハードウェア、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）等）、エンベデッドコントローラ、ハードワイヤード回路等として実装され得る。
【００９２】
本明細書において説明されるもの以外にも、本発明において開示される複数の実施形態および実行に対して、その範囲を逸脱することなく様々な変更が行われ得る。従って、本明細書における図示および例は、限定的な意味ではなく、例示的な意味に解釈されるべきである。本発明の範囲は、以下に続く特許請求の範囲を参照することによってのみ判断されるべきである。
【図１】
0006723999.tif 000002
【図２】
0006723999.tif 000003
【図３】
0006723999.tif 000004
【図４】
0006723999.tif 000005
【図５】
0006723999.tif 000006
【図６】
0006723999.tif 000007
【図７】
0006723999.tif 000008