(57)【特許請求の範囲】
【請求項１】
第１および第２のシードを用いてそれぞれビクティムレーンおよび第１のアグレッサレーンに複数の疑似ランダムパターンの第１のセットを生成することにより、前記ビクティムレーンおよび前記第１のアグレッサレーンを含む通信相互接続において干渉試験の第１のイテレーションを実装し、
前記第１のイテレーションにおけるサイクルが完了したことに応答して前記第１のアグレッサレーンにおいて前記第２のシードを次の値に進め、前記第１および第２のシードを用いてそれぞれ前記ビクティムレーンおよび前記第１のアグレッサレーンに複数の疑似ランダムパターンの第２のセットを生成することにより、干渉試験の第２のイテレーションを実装するハードウェアロジックを少なくとも部分的に有するロジックを備える、コントローラ。
【請求項２】
前記通信相互接続は、第２のアグレッサレーンを含み、
前記ロジックは、前記第１のイテレーションにおいて更に第３のシードを用いて前記第２のアグレッサレーンに疑似ランダムパターンを生成し、
前記ロジックは、前記第２のイテレーションにおいて更に前記第３のシードを用いて前記第２のアグレッサレーンに疑似ランダムパターンを生成し、
前記ロジックは、更に、前記第２のイテレーションにおけるサイクルが完了したことに応答して前記第２のアグレッサレーンにおいて前記第３のシードを次の値に進め、前記第１、第２、および第３のシードを用いてそれぞれ前記ビクティムレーン、前記第１のアグレッサレーン、および前記第２のアグレッサレーンに複数の疑似ランダムパターンの第３のセットを生成することにより、干渉試験の第３のイテレーションを実装する、請求項１に記載のコントローラ。
【請求項３】
前記ロジックは、前記通信相互接続において前記複数の疑似ランダムパターンを送信する、請求項１または２に記載のコントローラ。
【請求項４】
前記ロジックは、予め定められた数の試験ループおよび予め定められた期間の待機のうちの少なくとも１つを実行する、請求項１〜３のいずれか１項に記載のコントローラ。
【請求項５】
少なくとも１つの処理コンポーネントと、
コントローラとを備え、
前記コントローラは、
第１および第２のシードを用いてそれぞれビクティムレーンおよび第１のアグレッサレーンに複数の疑似ランダムパターンの第１のセットを生成することにより、前記ビクティムレーンおよび前記第１のアグレッサレーンを含む通信相互接続において干渉試験の第１のイテレーションを実装し、
前記第１のイテレーションにおけるサイクルが完了したことに応答して前記第１のアグレッサレーンにおいて前記第２のシードを次の値に進め、前記第１および第２のシードを用いてそれぞれ前記ビクティムレーンおよび前記第１のアグレッサレーンに複数の疑似ランダムパターンの第２のセットを生成することにより、干渉試験の第２のイテレーションを実装するハードウェアロジックを少なくとも部分的に含むロジックを有する、電子デバイス。
【請求項６】
前記通信相互接続は、第２のアグレッサレーンを含み、
前記ロジックは、前記第１のイテレーションにおいて更に第３のシードを用いて前記第２のアグレッサレーンに疑似ランダムパターンを生成し、
前記ロジックは、前記第２のイテレーションにおいて更に前記第３のシードを用いて前記第２のアグレッサレーンに疑似ランダムパターンを生成し、
前記ロジックは、更に、前記第２のイテレーションにおけるサイクルが完了したことに応答して前記第２のアグレッサレーンにおいて前記第３のシードを次の値に進め、前記第１、第２、および第３のシードを用いてそれぞれ前記ビクティムレーン、前記第１のアグレッサレーン、および前記第２のアグレッサレーンに複数の疑似ランダムパターンの第３のセットを生成することにより、干渉試験の第３のイテレーションを実装する、請求項５に記載の電子デバイス。
【請求項７】
前記ロジックは、前記通信相互接続において前記複数の疑似ランダムパターンを送信する、請求項５または６に記載の電子デバイス。
【請求項８】
前記ロジックは、予め定められた数の試験ループおよび予め定められた期間の待機のうちの少なくとも１つを実行する、請求項５〜７のいずれか１項に記載の電子デバイス。
【請求項９】
実行されると、コンピュータに、
第１および第２のシードを用いてそれぞれビクティムレーンおよび第１のアグレッサレーンに複数の疑似ランダムパターンの第１のセットを生成することにより、前記ビクティムレーンおよび前記第１のアグレッサレーンを含む通信相互接続において干渉試験の第１のイテレーションを実装する手順と、
前記第１のイテレーションにおけるサイクルが完了したことに応答して前記第１のアグレッサレーンにおいて前記第２のシードを次の値に進め、前記第１および第２のシードを用いてそれぞれ前記ビクティムレーンおよび前記第１のアグレッサレーンに複数の疑似ランダムパターンの第２のセットを生成することにより、干渉試験の第２のイテレーションを実装する手順とを実行させる、コンピュータプログラム。
【請求項１０】
前記通信相互接続は、第２のアグレッサレーンを含み、
前記第１のイテレーションを実装する手順では、更に、第３のシードを用いて前記第２のアグレッサレーンに疑似ランダムパターンを生成し、
前記第２のイテレーションを実装する手順では、更に、前記第３のシードを用いて前記第２のアグレッサレーンに疑似ランダムパターンを生成し、
前記コンピュータに、前記第２のイテレーションにおけるサイクルが完了したことに応答して前記第２のアグレッサレーンにおいて前記第３のシードを次の値に進め、前記第１、第２、および第３のシードを用いてそれぞれ前記ビクティムレーン、前記第１のアグレッサレーン、および前記第２のアグレッサレーンに複数の疑似ランダムパターンの第３のセットを生成することにより、干渉試験の第３のイテレーションを実装する手順を実行させる、請求項９に記載のコンピュータプログラム。
【請求項１１】
前記コンピュータに、前記通信相互接続において前記複数の疑似ランダムパターンを送信する手順を実行させる、請求項９または１０に記載のコンピュータプログラム。
【請求項１２】
前記コンピュータに、予め定められた数の試験ループおよび予め定められた期間の待機のうちの少なくとも１つを実行する手順を実行させる、請求項９〜１１のいずれか１項に記載のコンピュータプログラム。
【請求項１３】
請求項９〜１２のいずれか１項に記載のコンピュータプログラムを格納する、コンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
本明細書において説明される主題は、概ね電子デバイスの分野に関し、より詳細には電子デバイスにおける干渉試験に関する。
【０００２】
電子デバイスは、周辺構成要素相互接続エクスプレス（ＰＣＩｅ）、ユニバーサルシリアルバス（ＵＳＢ）、ダブルデータレート（ＤＤＲ）等のような複数の相互接続により通信可能に結合されるコンポーネントを含む。これらの通信インターフェースは、不完全な相互接続、ボードルーティング、ビア等のような設計上の欠陥または製造上の欠陥により生じ得る符号間干渉およびクロストーク等のノイズを受ける。そのような電子デバイスの設計者および製造者は、電子デバイスにおける符号間干渉の影響を判断する必要がある。従って、干渉試験のための技術は、例えば電子デバイスにおいて効用を見出すことができる。
【図面の簡単な説明】
【０００３】
詳細な説明は、添付の図面を参照して記載される。
【図１】いくつかの例による干渉試験を受け得る複数の通信インターフェースを含み得る電子デバイスの概略図である。
【図２】いくつかの例による干渉試験を実装する例示的なアーキテクチャのハイレベルの概略図である。
【図３Ａ】いくつかの例による干渉試験を実装する方法における複数の動作を図示するフロー図である。
【図３Ｂ】いくつかの例による干渉試験プロセスにおける複数のイテレーションを図示する。
【図３Ｃ】いくつかの例による干渉試験プロセスにおける複数のイテレーションを図示する。
【図４Ａ】いくつかの例による干渉試験を実装する方法における複数の動作を図示するフロー図である。
【図４Ｂ】いくつかの例による干渉試験プロセスにおける複数のイテレーションを図示する。
【図４Ｃ】いくつかの例による干渉試験プロセスにおける複数のイテレーションを図示する。
【図５Ａ】いくつかの例による干渉試験を実装する方法における複数の動作を図示するフロー図である。
【図５Ｂ】いくつかの例による干渉試験を実装する方法における複数の動作を図示するフロー図である。
【図６】いくつかの例による干渉試験を実装するように適合され得る電子デバイスの概略図である。
【図７】いくつかの例による干渉試験を実装するように適合され得る電子デバイスの概略図である。
【図８】いくつかの例による干渉試験を実装するように適合され得る電子デバイスの概略図である。
【図９】いくつかの例による干渉試験を実装するように適合され得る電子デバイスの概略図である。
【図１０】いくつかの例による干渉試験を実装するように適合され得る電子デバイスの概略図である。
【図１１】干渉試験技術の一例を示す。
【発明を実施するための形態】
【０００４】
複数の電子デバイスに干渉試験を実装する例示的なシステムおよび方法が、本明細書において説明される。以下の説明において、様々な例の完全な理解を提供するべく、多くの具体的な詳細が記載される。しかし、当業者であれば、様々な例が具体的な詳細なしに実施され得ることを理解するであろう。他の複数の例において、具体的な例を不明瞭にしないように、周知の複数の方法、手順、コンポーネント、および回路は詳細に図示または説明されていない。
【０００５】
上記のように、コンピュータシステム、タブレットコンピューティングデバイス、携帯電話、電子リーダ等のような複数の電子デバイスの通信相互接続において干渉試験を実行することは、有用であり得る。本明細書において説明される主題は、電子デバイスにおいて用いられる複数の通信相互接続で干渉について試験するべく用いられ得る複数の干渉試験技術を提供することにより、これらおよび他の問題に対処する。いくつかの例において、本明細書において説明される複数の技術は、電子デバイスに組み込まれ得るロジック（例えば、ソフトウェア、ファームウェア、またはロジック回路）として実装され得る。例えば、ロジックは、基本入出力システム（ＢＩＯＳ）によるなどして電子デバイスを構成する間にアクセスされ得る干渉マネージャモジュールとして実装され得る。
【０００６】
本明細書において説明される第１の干渉試験技術は、通信相互接続における複数の隣接レーン間の信号対信号クロストークについて試験する機能を向上させる複数のパターンを作成することを可能にする。第２の干渉試験技術は、通信相互接続の各レーン上において符号間干渉（ＩＳＩ）について試験する機能を向上させる複数のパターンを作成することを可能にする。本明細書において説明される第３の干渉試験技術は、試験プロセスがプログラミング可能な数の反復を実装して、試験プロセスに複数のギャップおよび待機を組み込むことを可能にする。本明細書において説明される複数の技術は、独立に実装されてもよく、または組み合わされてもよい。
【０００７】
図１は、いくつかの例による干渉試験を実装するように適合され得る電子デバイス１００の概略図である。様々な例において、電子デバイス１００は、ディスプレイ、１または複数のスピーカ、キーボード、１または複数の他のＩ／Ｏデバイス、マウス、カメラ等を含む１または複数の付随する入力／出力デバイスを含むか、またはこれらに結合され得る。他の例示的なＩ／Ｏデバイスは、タッチスクリーン、音声起動式入力デバイス、トラックボール、測位デバイス、加速度計／ジャイロスコープ、バイオメトリック機能入力デバイス、および電子デバイス１００がユーザからの入力を受信することを可能にするその他のデバイスを含んでもよい。
【０００８】
電子デバイス１００は、システムハードウェア１２０およびメモリ１４０を含み、これらはランダムアクセスメモリおよび／またはリードオンリメモリとして実装され得る。ファイルストアは、電子デバイス１００に通信可能に結合され得る。ファイルストアは、例えばソリッドステートドライブ（ＳＳＤ）、１または複数のハードドライブ、または他のタイプのストレージデバイスのような電子デバイス１００の内部にあり得る。あるいは、ファイルストアは、例えば１または複数の外部ハードドライブ、ネットワーク接続ストレージ、または別個のストレージネットワークのような電子デバイス１００の外部にもあり得る。
【０００９】
システムハードウェア１２０は、１または複数のプロセッサ１２２、グラフィックスプロセッサ１２４、ネットワークインターフェース１２６、およびバス構造体１２８を含み得る。一実施形態において、プロセッサ１２２は米国カリフォルニア州サンタクララ市のインテル（登録商標）コーポレーションから入手可能なインテル（登録商標）Ａｔｏｍ（登録商標）プロセッサ、インテル（登録商標）Ａｔｏｍ（登録商標）ベースのシステムオンチップ（ＳＯＣ）、またはインテル（登録商標）Ｃｏｒｅ２  Ｄｕｏ（登録商標）またはｉ３／ｉ５／ｉ７シリーズのプロセッサとして実施され得る。本明細書において用いられるように、「プロセッサ」という用語は、マイクロプロセッサ、マイクロコントローラ、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セット（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、またはその他のタイプのプロセッサもしくは処理回路等、任意のタイプの計算要素を意味するが、これらに限定されない。
【００１０】
グラフィックスプロセッサ１２４は、グラフィックスオペレーションおよび／またはビデオオペレーションを管理するアジャンクトプロセッサとして機能し得る。グラフィックスプロセッサ１２４は、電子デバイス１００のマザーボード上に集積されてもよく、またはマザーボード上の拡張スロットを介して結合されてもよく、あるいは処理ユニットと同一のダイもしくは同一のパッケージ上に配置されてもよい。
【００１１】
一実施形態において、ネットワークインターフェース１２６は、イーサネット（登録商標）インターフェース（例えば、米国電気電子学会／ＩＥＥＥ８０２．３‐２００２を参照されたい）等の有線インターフェース、またはＩＥＥＥ８０２．１１ａ、ｂ、もしくはｇに準拠したインターフェース（例えば、ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ＩＴ−Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  ｉｎｆｏｒｍａｔｉｏｎ  ｅｘｃｈａｎｇｅ  ｂｅｔｗｅｅｎ  ｓｙｓｔｅｍｓ  ＬＡＮ／ＭＡＮ‐  Ｐａｒｔ  ＩＩ：Ｗｉｒｅｌｅｓｓ  ＬＡＮ  Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  （ＭＡＣ）  ａｎｄ  Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ  （ＰＨＹ）  ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  Ａｍｅｎｄｍｅｎｔ  ４：  Ｆｕｒｔｈｅｒ  Ｈｉｇｈｅｒ  Ｄａｔａ  Ｒａｔｅ  Ｅｘｔｅｎｓｉｏｎ  ｉｎ  ｔｈｅ  ２．４  ＧＨｚ  Ｂａｎｄ，８０２．１１Ｇ−２００３を参照されたい）等の無線インターフェースであり得る。無線インターフェースの別の例は、汎用パケット無線サービス（ＧＰＲ）インターフェースである（例えば、Ｇｕｉｄｅｌｉｎｅｓ  ｏｎ  ＧＰＲＳ  Ｈａｎｄｓｅｔ  Ｒｅｑｕｉｒｅｍｅｎｔｓ，Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ／ＧＳＭ  Ａｓｓｏｃｉａｔｉｏｎ，Ｖｅｒ．３．０．１，Ｄｅｃｅｍｂｅｒ  ２００２を参照されたい）。
【００１２】
バス構造体１２８は、システムハードウェア１２８の様々なコンポーネントを接続する。一実施形態において、バス構造体１２８は、１１ビットバス、工業規格アーキテクチャ（ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＳＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェントドライブエレクトロニクス（ＩＤＥ）、ＶＥＳＡローカルバス（ＶＬＢ）、周辺構成要素相互接続（ＰＣＩ）、ユニバーサルシリアルバス（ＵＳＢ）、アドバンストグラッフィックスポート（ＡＧＰ）、パーソナルコンピュータメモリカード国際協会バス（ＰＣＭＣＩＡ）、およびスモールコンピュータシステムインターフェース（ＳＣＳＩ）、高速同期式シリアルインターフェース（ＨＳＩ）、シリアル低電力チップ間メディアバス（ＳＬＩＭｂｕｓ（登録商標））等を含むが、これらに限定されない利用可能な様々なバスアーキテクチャを使用するメモリバス、周辺バス、もしくは外部バス、ならびに／またはローカルバスを含むいくつかのタイプのバス構造体のうちの１または複数であってもよい。
【００１３】
電子デバイス１００は、複数のＲＦ信号を送受信するＲＦトランシーバ１３０、近距離無線通信（ＮＦＣ）無線機１３４、およびＲＦトランシーバ１３０により受信される複数の信号を処理する信号処理モジュール１３２を含み得る。ＲＦトランシーバは、例えばＢｌｕｅｔｏｏｔｈ（登録商標）または８０２．１１Ｘ、ＩＥＥＥ８０２．１１ａ、ｂ、もしくはｇに準拠したインターフェース（例えば、ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ＩＴ  −Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  ｉｎｆｏｒｍａｔｉｏｎ  ｅｘｃｈａｎｇｅ  ｂｅｔｗｅｅｎ  ｓｙｓｔｅｍｓ  ＬＡＮ／ＭＡＮ−Ｐａｒｔ  ＩＩ：  Ｗｉｒｅｌｅｓｓ  ＬＡＮ  Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  （ＭＡＣ）  ａｎｄ  Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ  （ＰＨＹ）  ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  Ａｍｅｎｄｍｅｎｔ  ４：Ｆｕｒｔｈｅｒ  Ｈｉｇｈｅｒ  Ｄａｔａ  Ｒａｔｅ  Ｅｘｔｅｎｓｉｏｎ  ｉｎ  ｔｈｅ  ２．４  ＧＨｚ  Ｂａｎｄ，８０２．１１Ｇ−２００３を参照されたい）のようなプロトコルによりローカル無線接続を実装し得る。無線インターフェースの別の例は、ＷＣＤＭＡ（登録商標）、ＬＴＥ、汎用パケット無線サービス（ＧＰＲ）インターフェースである（例えば、Ｇｕｉｄｅｌｉｎｅｓ  ｏｎ  ＧＰＲＳ  Ｈａｎｄｓｅｔ  Ｒｅｑｕｉｒｅｍｅｎｔｓ，Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ／ＧＳＭ  Ａｓｓｏｃｉａｔｉｏｎ，Ｖｅｒ．３．０．１，Ｄｅｃｅｍｂｅｒ  ２００２を参照されたい）。
【００１４】
電子デバイス１００は、例えばキーパッド１３６およびディスプレイ１３８のような１または複数の入力／出力インターフェースを更に含み得る。いくつかの例において、電子デバイス１００はキーパッドを有しておらず、入力にタッチパネルを用いる場合がある。
【００１５】
メモリ１４０は、電子デバイス１００の複数の動作を管理するオペレーティングシステム１４２を含み得る。一実施形態において、オペレーティングシステム１４２は、インターフェースをシステムハードウェア１２０に提供するハードウェアインターフェースモジュール１５４を含む。更にオペレーティングシステム１４０は、電子デバイス１００の動作において用いられる複数のファイルを管理するファイルシステム１５０と、電子デバイス１００上で実行される複数の処理を管理する処理制御サブシステム１５２とを含み得る。
【００１６】
オペレーティングシステム１４２は、システムハードウェア１２０と共に動作し、遠隔のソースからの複数のデータパケットおよび／またはデータストリームを送受信し得る、１または複数の通信インターフェース１４６を含み（または管理し）得る。オペレーティングシステム１４２は、オペレーティングシステム１４２とメモリ１３０に常駐する１または複数のアプリケーションモジュールとの間にインターフェースを提供するシステムコールインターフェースモジュール１４４を更に含み得る。オペレーティングシステム１４２は、ＵＮＩＸ（登録商標）オペレーティングシステムもしくはそのいずれかの派生物（例えばＬｉｎｕｘ（登録商標）、アンドロイド等）、またはウィンドウズ（登録商標）ブランドのオペレーティングシステム、または他のオペレーティングシステムとして実施されてもよい。
【００１７】
いくつかの例において、電子デバイスはコントローラ１７０を含み得、コントローラ１７０は、主要な実行環境から分離された１または複数のコントローラを備え得る。この分離は、コントローラがメインプロセッサから物理的に分離されたコントローラの形で実装され得るという意味で物理的であり得る。あるいは信頼できる実行環境は、コントローラが複数のメインプロセッサをホスティングする同一のチップまたはチップセット上でホスティングされ得るという意味で論理的であり得る。
【００１８】
例として、いくつかの例においてコントローラ１７０は、電子デバイス１００のマザーボード上に配置された独立した集積回路として、例えば同一のＳＯＣダイ上の専用プロセッサブロックとして実装され得る。複数の他の例において、信頼できる実行エンジンは、ハードウェア強制メカニズムを用いる残余のプロセッサから分離されたプロセッサ１２２の一部に実装され、またはオペレーティングシステムのユーザ空間またはカーネルにおけるプロセッサにおいて実行され得る複数のロジック命令として実装され得る。
【００１９】
図１に図示される実施形態において、コントローラ１７０は、プロセッサ１７２、メモリモジュール１７４、干渉マネージャ１７６、およびＩ／Ｏインターフェース１７８を備える。いくつかの例において、メモリモジュール１７４は、永続的フラッシュメモリモジュールを備えてもよく、様々な機能モジュールは、永続的メモリモジュール、例えばファームウェアまたはソフトウェアにおいてエンコードされたロジック命令として実装され得る。Ｉ／Ｏモジュール１７８は、直列Ｉ／Ｏモジュールまたは並列Ｉ／Ｏモジュールを備えてもよい。コントローラ１７０は、メインプロセッサ１２２およびオペレーティングシステム１４２から分離されているので、コントローラ１７０はセキュアにされ得、すなわち、通常はホストプロセッサ１２２からソフトウェア攻撃をマウントするハッカーにはアクセスできない。いくつかの例において、干渉マネージャ１７６は電子デバイス１００のメモリ１４０内に存在し得、プロセッサ１２２のうちの１または複数において実行可能であり得る。
【００２０】
いくつかの例において、干渉マネージャ１７６は電子デバイス１００の１または複数の他のコンポーネントとインタラクトして、電子デバイスにおいて１または複数の通信相互接続に対して干渉試験を実装する。図２は、いくつかの例による干渉試験を実装する例示的なアーキテクチャのハイレベルの概略図である。図２を参照すると、コントローラ２２０は、コントローラ１７０のような汎用プロセッサ１２２または低電力コントローラとして実施され得る。コントローラ２２０は、複数の干渉試験動作およびローカルメモリ２４０を管理する干渉マネージャ２３０を備え得る。上記のように、いくつかの例において干渉マネージャ２３０は、コントローラ２２０上で実行可能な複数のロジック命令として、例えばソフトウェアもしくはファームウェアとして実装されてもよく、またはハードワイヤードロジック回路にされてもよい。ローカルメモリ２４０は、揮発性および／または不揮発性メモリを用いて実装され得る。
【００２１】
コントローラ２２０は、１または複数の入力／出力デバイス２５０に通信可能に結合され得る。例えばコントローラ２２０は、上記の複数のＩ／Ｏデバイスのうちの１または複数に通信可能に結合され得る。
【００２２】
干渉マネージャ２３０は、１または複数の相互接続２１０に通信可能に結合され得、これにより電子デバイス１００の複数のコンポーネント間の通信を可能にする。例えば、相互接続２１０は周辺構成要素相互接続エクスプレス（ＰＣＩｅ）、ユニバーサルシリアルバス（ＵＳＢ）、ダブルデータレート（ＤＤＲ）相互接続のうちの１または複数であってもよく、複数の通信レーン２１２、２１４、２１６を備えてもよい。
【００２３】
複数の電子デバイスにおいて干渉試験を実装するシステムの様々な構造を説明したので、ここでシステムの動作態様を説明する。干渉試験技術の第１の例は、イタラティブな試験手順を実装し、複数の疑似乱数発生器のシードは予め定められたように変化して、複数の隣接信号レーンに適用される試験順列の数を増やす。干渉試験のこの第１の例は、図３Ａ〜図３Ｃを参照して説明される。図３Ａは、電子デバイスにおいて干渉試験を実装する第１の方法における複数の動作を図示するフロー図である。図３Ａのフロー図に図示される複数の動作は、単独または電子デバイス１００の他のコンポーネントと組み合わせて、干渉マネージャ２３０により実装され得る。図３Ｂ〜３Ｃは、いくつかの例による干渉試験プロセスにおける複数のイテレーションを図示する。
【００２４】
まず図３Ａを参照すると、動作３１０において干渉マネージャ２３０は、１または複数の干渉試験パラメータを受信する。例えば、干渉試験パラメータは、電子デバイス１００に対する干渉試験の管理を担当するユーザにより干渉マネージャ２３０に入力され得る。代替的にまたは更に、複数の干渉試験パラメータは電子デバイス１００上のメモリ位置から取得され得る。
【００２５】
動作３１２において、干渉マネージャ２３０はシードの最初のセットについて干渉試験の第１のイテレーションを実行する。いくつかの例において、干渉試験プロセスは、１または複数のアグレッサレーンと通信相互接続におけるビクティムレーンとの間の干渉について試験し得る。図３Ｂを簡単に参照すると、一例において干渉試験プロセスは、第１のアグレッサレーン３６０、ビクティムレーン３５０、および第２のアグレッサレーン３７０の間の干渉について試験する。通信相互接続における各レーンは、通信相互接続のレーンにおいて送信される疑似ランダムパターンを生成するパターンジェネレータ３５２、３６２、３７２に通信可能に結合される。次にビクティムレーン３５０の送信特性が測定され、相互接続に対する複数の信号対信号クロストーク測定値を判断し得る。例として、パターンジェネレータ３５２、３６２、３７２は線形フィードバックシフトレジスタ（ＬＦＳＲ）として実装され得る。
【００２６】
いくつかの例において、第１のイテレーションは、各パターンジェネレータ３５２、３６２、３７２と共に実装され、これらには各々の第１のシードが提供される。図３Ｃは、干渉試験の具体例を図示する。図３Ｃに図示される例において、パターンジェネレータ１には１１１１のシードが提供されるが、パターンジェネレータ２には００１０のシードが提供され、パターンジェネレータ３には０１０１のシードが提供される。
【００２７】
干渉試験の第１のイテレーションにおいて、干渉マネージャ２３０は、２Ｎ−１に等しいいくつかのサイクルを実行する。式中、Ｎはシードの長さに対応する。図３Ｂに図示される具体例において、シードの長さは４であり、従って１５の試験サイクル（３５４、３６４、３７４）を実行し、ビクティムレーン３６０上の干渉に対する複数のパターンジェネレータの各パターンを試験する。
【００２８】
第１のイテレーションが終了すると、制御は動作３１４に進み、干渉マネージャ２３０は複数のレーンのうちの１または複数でシードを前進させる。例として、図３Ｂを参照すると、第１の２Ｎ−１サイクルの最初のラッピング（すなわち、完了）時にシード１は進み、２Ｎ−１サイクル（３５６、３６６、３７６）の別のサイクルが２Ｎ−１回実行され（動作３１６）、毎回シード１を前進させる。
【００２９】
動作３１８において、相互接続にこれ以上のアグレッサラインは存在しない場合、制御は動作３２６に進み、干渉試験は終了し得る。対照的に、動作３１８において相互接続に追加のアグレッサラインが存在する場合、制御は動作３２０に進み、干渉マネージャ２３０は複数のレーンの１または複数において再びシードを前進させる。例として、図３Ｂを参照すると、第２の２Ｎ−１サイクルのラッピング（すなわち、完了）時に、シード２は進み、上記の２Ｎ−１×２Ｎ−１サイクルの別のサイクル（３５８、３６８、３７８）が２Ｎ−１回実行され（動作３２２）、１つのビクティムおよび２つのアグレッサパターンジェネレータを用いたシステムを完全に実行すると、合計で（２Ｎ−１）×（２Ｎ−１）×（２Ｎ−１）のサイクルをもたらす。
【００３０】
動作３２４において、相互接続にこれ以上のアグレッサラインは存在しない場合、制御は動作３２６に進み、干渉試験は終了し得る。対照的に、動作３２４において相互接続に追加のアグレッサラインが存在する場合、制御は動作３２０に進み、干渉マネージャ２３０は複数のレーンの１または複数において再びシードを前進させる。従って、動作３２０〜３２４は、相互接続においてパターンの異なる組み合わせを試験するべく、干渉マネージャ２３０が複数のアグレッサレーンのシードを継続して前進させ得るループを規定し、毎回、全ての以前の段階を２Ｎ−１回、反復する。
【００３１】
干渉試験技術の第２の例は、イタラティブな試験手順を実装し、通信相互接続において送信された複数の疑似ランダムコードの一部を反復して符号間干渉について試験するべく、複数の疑似乱数発生器に対するシードが予め定められたレートで再ロードされる。干渉試験のこの第２の例は、図４Ａ〜図４Ｃを参照して説明される。図４Ａは、電子デバイスにおいて干渉試験を実装する第２の方法における複数の動作を図示するフロー図である。図４Ａのフロー図に図示される複数の動作は、単独または電子デバイス１００の複数の他のコンポーネントと組み合わせて、干渉マネージャ２３０により実装され得る。図４Ｂ〜４Ｃは、いくつかの例による干渉試験プロセスにおける複数のイテレーションを図示する。
【００３２】
まず図４Ａを参照すると、動作４１０において干渉マネージャ２３０は、再ロードレートパラメータおよびセーブレートパラメータを受信する。例えば、再ロードレートパラメータおよびセーブレートパラメータは、電子デバイス１００に対する干渉試験の管理を担当するユーザにより干渉マネージャ２３０に入力され得る。代替的にまたは更に、複数の干渉試験パラメータは電子デバイス１００上のメモリ位置から取得され得る。
【００３３】
動作４１２において、干渉マネージャ２３０は擬似ランダムシーケンスを生成する。例として、図４Ｂを参照すると、干渉マネージャ２３０はパターンジェネレータ４５２にシードを提供して、疑似ランダムパターンを生成し得る。上記のように、パターンジェネレータ４５２は、複数の線形フィードバックシフトレジスタ（ＬＦＳＲ）として実装され得る。シードに応答して、パターンジェネレータ４５２は、ｎビットの疑似乱数（例えば、１５ビットのＬＦＳＲに対して１１１０００１００１１０１０１）を生成する。
【００３４】
動作４１４において、シードは再ロードレートに応じてパターンジェネレータ４５２に再ロードされ、動作４１６において擬似ランダムシーケンスの一部が相互接続において送信される。動作４１８において、シードはセーブレートに応じて保存される。
【００３５】
図４Ｂは、再ロードレートが疑似ランダムコードを３ビット毎に４回反復するように構成され、セーブレートが１０（３×（４−１）＋１）である例を図示する。図４Ａに図示される複数の動作に従って、シードはパターンジェネレータ４５２に入力されて３ビット毎に再ロードされ、４回反復される。これにより、パターンジェネレータ４５２をもたらし、パターンジェネレータ４５２により生成された疑似ランダムパターンの最初の３ビットを４回反復するパターンを出力する。反復パターンは各イテレーションにおいて１０ｍｏｄ３＝１ビットだけ前進し、複数の反復パターンのコンテンツ間に（３−１＝２）ビットの重複をもたらす。そのようなパターンは、例えば、再ロードレートが潜在的な共振構造の有効電気長に相関する相互接続に対する共振効果を評価するのに用いられ得る。
【００３６】
図４Ｃは、再ロードレートが疑似ランダムコードを３ビット毎に４回反復するように構成され、セーブレートが１１（３×（４−１）＋２）である例を図示する。図４Ａに図示される複数の動作に従って、シードはパターンジェネレータ４５２に入力されて３ビット毎に再ロードされ、４回反復される。これにより、パターンジェネレータ４５２をもたらし、パターンジェネレータ４５２により生成された疑似ランダムパターンの最初の３ビットを４回反復するパターンを出力する。反復パターンは各イテレーションにおいて１０ｍｏｄ３＝２ビットだけ前進し、複数の反復パターンのコンテンツ間に（３−２＝１）ビットの重複をもたらす。
【００３７】
図１１は、干渉試験技術の第３の例を示す。干渉試験技術の第３の例は、半導体技術協会（ＪＥＤＥＣ）のダブルデータレート（ＤＤＲ）ファミリのバス（例えばＤＤＲ３、ＤＤＲ４）または低電力ＤＤＲバス（例えばＬＰＤＤＲ２、ＬＰＤＤＲ３、ＬＰＤＤＲ４等）に対して、プログラミング可能な長さ、ギャップ、ループ、および待機時間を有するコマンド、制御、ならびに複数のアドレスレーンについてのパターンを、それらの間で切り替える手段を提供するロジックを実装する。第３の例において、ロジックはアイドル状態で開始し、コマンドアドレスデータバッファ（ＣＡＤＢ）の読み取りに移行する。ＣＡＤＢは、各コマンド、制御、およびアドレスのラインに対する値を識別するバッファである。ロジックは、開始バッファポインタから開始してループを規定する終了バッファポインタまで、ＣＡＤＢからの読み取りを継続する。カウンタは、ループをいくつ実行するか、およびいくつ実行されたかを示すべく用いられ得る。バッファポインタが最終値に到達すると、ロジックはループカウンタ値をデクリメントして開始バッファポインタにラッピングする。ループカウンタがゼロに到達すると、ロジックは、試験が完了したことを示し得る。ロジックは無限ループもセットアップすることができ、この場合にはカウンタはデクリメントされない。
【００３８】
読み取られると、コマンド、制御（２ｎまたは３ｎコマンドモードにおけるチップ選択（ＣＳ）ラインを除く）、およびアドレスのラインは、ＤＤＲ入力／出力（Ｉ／Ｏ）に対する機能パスを設定してオーバーライドする。複数のＣＳラインをアサートした後、ギャップカウンタが開始され、ＣＡＤＢから実行される異なる複数のコマンド間の時間を設定するべく、ゼロに到達するまでカウントされる。
【００３９】
干渉試験の第３の例の更なる詳細は、電子デバイスにおいて干渉試験を実装する方法における複数の動作を図示するフロー図である、図５Ａ〜５Ｂを参照して説明される。図５Ａ〜図５Ｂのフロー図に図示される複数の動作は、単独または電子デバイス１００の複数の他のコンポーネントと組み合わせて、干渉マネージャ２３０により実装され得る。
【００４０】
まず図５Ａを参照すると、動作５１０においてコマンドポインタはスタートインデックスに設定され、ロジックは、５１２においてコマンドアドレスデータバッファ（ＣＡＤＢ）から読み取る。動作５１４において、コマンドおよびアドレスが設定される。
【００４１】
動作５１６において、相互接続が１ｎ、２ｎ、または３ｎのタイミングモードで動作しているか否かが判断される。相互接続が１ｎのタイミングモードで動作している場合、制御は動作５１８に進み、チップ選択（ＣＳ）ラインが設定される。対照的に、動作５１６において相互接続が２ｎのタイミングモードで動作している場合、制御は動作５２０に進み、ロジックは、ＣＳラインが設定される前に１つのクロックサイクルが経過することを可能にする。動作５１６において相互接続が３ｎのタイミングモードで動作している場合、制御は動作５２２に進み、ロジックは、ＣＳラインが設定される前に２つのクロックサイクルが経過することを可能にする。
【００４２】
チップ選択ラインが設定されると、制御は動作５３０に進み、ループが終了したか否かを判断するべく監視する。動作５３０においてループが終了していない場合、制御は動作５３２に進み、コマンドポインタはＣＡＤＢにおける次のコマンドに設定される。次に制御は動作５３４に進み、ギャップがゼロよりも大きいか否かが判断される。動作５３４においてギャップがゼロよりも大きい場合、制御は動作５３６に進み、ＣＡＤＢから次のコマンドを読み取る前に予め定められた期間が経過することを可能にされる。
【００４３】
再び動作５３０を参照すると、ループが終了すると、制御は動作５４０に進み、初期化手順が実行されたか否かが判断される。手順が実行された場合、制御は動作５４２に進み、試験プロセスは終了する。対照的に、動作５４０において初期化手順が実行されなかった場合、制御は動作５４４に進み、コマンドポインタは、コマンドインデックスの開始位置に設定される。次に制御は動作５４６に進み、待機がゼロよりも大きいか否かが判断される。動作５４６においてギャップがゼロよりも大きい場合、制御は動作５４８に進み、ＣＡＤＢから次のコマンドを読み取る前に予め定められた期間が経過することを可能にされる。
【００４４】
従って、図５Ａおよび５Ｂに図示される複数の動作は、ロジックが、試験プロセスにプログラミング可能な数のイテレーション、ならびにギャップおよび待機を組み込んだ複数の干渉試験スケジューリングを実装することを可能にする。図５Ａ〜図５Ｂに図示される複数の動作は、図３Ａおよび図４Ａに図示される複数の動作と共に実装されてもよく、または独立に実装されてもよい。
【００４５】
上記のように、いくつかの例において電子デバイスは、コンピュータシステムとして実施され得る。図６は、一例によるコンピューティングシステム６００のブロック図を図示する。コンピューティングシステム６００は、相互接続ネットワーク（またはバス）６０４を介して通信する１または複数の中央処理装置６０２またはプロセッサを含み得る。複数のプロセッサ６０２は、汎用プロセッサ、（コンピュータネットワーク６０３を介して通信されるデータを処理する）ネットワークプロセッサ、または（縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサまたは複合命令セットコンピュータ（ＣＩＳＣ）を含む）他のタイプのプロセッサを含み得る。更に、複数のプロセッサ６０２はシングルまたはマルチのコア設計を有し得る。マルチコア設計を有する複数のプロセッサ６０２は、同一の集積回路（ＩＣ）ダイ上に異なる複数のタイプのプロセッサコアを集積させ得る。また、マルチコア設計を有する複数のプロセッサ６０２は、対称または非対称のマルチプロセッサとして実装され得る。一例において、複数のプロセッサ６０２のうちの１または複数は、図１のプロセッサ１０２と同一または類似し得る。例えば、複数のプロセッサ６０２の１または複数は、図１〜図３Ｃを参照して検討された制御ユニット１２０を含み得る。図３Ａ〜図５Ｂを参照して検討された複数の動作は、システム６００の１または複数のコンポーネントによっても実行され得る。
【００４６】
チップセット６０６は、相互接続ネットワーク６０４とも通信し得る。チップセット６０６は、メモリ制御ハブ（ＭＣＨ）６０８を含み得る。ＭＣＨ６０８は、メモリ６１２（図１のメモリ１３０と同一または類似し得る）と通信するメモリコントローラ６１０を含み得る。メモリ４１２は、コンピューティングシステム６００に含まれるプロセッサ６０２またはその他のデバイスにより実行され得る複数の命令のシーケンスを含むデータを格納し得る。一例において、メモリ６１２は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、または複数の他のタイプのストレージデバイスのような１または複数の揮発性ストレージ（またはメモリ）デバイスを含み得る。ハードディスク等の不揮発性メモリも使用され得る。複数のプロセッサおよび／または複数のシステムメモリ等、複数の追加のデバイスが相互接続ネットワーク６０４を介して通信し得る。
【００４７】
ＭＣＨ６０８は、ディスプレイデバイス６１６と通信するグラフィックスインターフェース６１４も含み得る。一例として、グラフィックスインターフェース６１４は、アクセラレーティッドグラフィックスポート（ＡＧＰ）を介してディスプレイデバイス６１６と通信し得る。一例において、ディスプレイ６１６（フラットパネルディスプレイ等）は、例えば、ビデオメモリまたはシステムメモリ等のストレージデバイスに格納された画像のデジタル表現をディスプレイ６１６により変換されて表示される複数の表示信号に変換する信号コンバータを介してグラフィックスインターフェース６１４と通信し得る。ディスプレイデバイスにより生成される複数の表示信号は、ディスプレイ６１６により変換され、次にディスプレイ６１６に表示される前に様々な制御デバイスを通り得る。
【００４８】
ハブインターフェース６１８は、ＭＣＨ６０８および入力／出力制御ハブ（ＩＣＨ）６２０が通信することを可能にし得る。ＩＣＨ６２０は、コンピューティングシステム６００と通信するＩ／Ｏデバイスにインターフェースを提供し得る。ＩＣＨ６２０は、周辺構成要素相互接続（ＰＣＩ）ブリッジ、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、または複数の他のタイプの周辺ブリッジもしくはコントローラ等の周辺ブリッジ（もしくはコントローラ）６２４を介してバス６２２と通信し得る。ブリッジ６２４は、プロセッサ６０２と周辺デバイスとの間にデータ経路を提供し得る。複数の他のタイプのトポロジが使用され得る。また、例えば複数のブリッジまたはコントローラを介して、複数のバスがＩＣＨ６２０と通信し得る。更に、様々な例においてＩＣＨ６２０と通信する複数の他の周辺機器は、ｉｎｔｅｇｒａｔｅｄ  ｄｒｉｖｅ  ｅｌｅｃｔｒｏｎｉｃｓ（ＩＤＥ）もしくはスモールコンピュータシステムインターフェース（ＳＣＳＩ）ハードドライブ、ＵＳＢポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー（登録商標）ディスクドライブ、デジタル出力サポート（例えば、デジタルビデオインターフェース（ＤＶＩ））、または他のデバイスを含み得る。
【００４９】
バス６２２は、オーディオデバイス６２６、１または複数のディスクドライブ６２８、および（コンピュータネットワーク６０３と通信する）ネットワークインターフェースデバイス６３０と通信し得る。複数の他のデバイスがバス６２２を介して通信し得る。また、様々なコンポーネント（ネットワークインターフェースデバイス６３０等）は、いくつかの例においてＭＣＨ６０８と通信し得る。更に、プロセッサ６０２、および本明細書において検討される１または複数の他のコンポーネントは、（例えば、システムオンチップ（ＳＯＣ）を提供するべく）組み合わされて単一のチップを形成し得る。更に、グラフィックスアクセラレータ６１６は、複数の他の例においてＭＣＨ６０８内に含まれ得る。
【００５０】
更に、コンピューティングシステム６００は、揮発性および／または不揮発性メモリ（またはストレージ）を含み得る。例えば、不揮発性メモリとしては、リードオンリメモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）、ディスクドライブ（例えば６２８）、フロッピー（登録商標）ディスク、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、光磁気ディスク、または（例えば、複数の命令を含む）電子データを格納することができる複数の他のタイプの不揮発性機械可読媒体のうちの１または複数が挙げられ得る。
【００５１】
図７は、一例によるコンピューティングシステム７００のブロック図を図示する。システム７００は、１または複数のプロセッサ７０２−１〜７０２−Ｎ（一般に本明細書においては「複数のプロセッサ７０２」または「プロセッサ７０２」と称される）を含み得る。プロセッサ７０２は、相互接続ネットワークまたはバス７０４を介して通信し得る。各プロセッサは様々なコンポーネントを含み得るが、これらのいくつかは、明確にするべくプロセッサ７０２−１のみを参照して検討される。従って、残余のプロセッサ７０２−２〜７０２−Ｎの各々は、プロセッサ７０２−１を参照して検討される同一または類似の複数のコンポーネントを含み得る。
【００５２】
一例において、プロセッサ７０２−１は、１または複数のプロセッサコア７０６−１〜７０６−Ｍ（本明細書において、「複数のコア７０６」またはより一般には「コア７０６」と称される）、共有キャッシュ７０８、ルータ７１０、および／またはプロセッサ制御ロジックもしくはユニット７２０を含み得る。プロセッサコア７０６は、単一の集積回路（ＩＣ）チップ上に実装され得る。更にチップは、１もしくは複数の共有および／またはプライベートキャッシュ（キャッシュ７０８等）、複数のバスもしくは相互接続（バスもしくは相互接続ネットワーク７１２等）、複数のメモリコントローラ、または複数の他のコンポーネントを含み得る。
【００５３】
一例において、ルータ７１０は、プロセッサ７０２−１および／またはシステム７００の様々なコンポーネントの間で通信するべく用いられ得る。更に、プロセッサ７０２−１は２つ以上のルータ７１０を含み得る。更に、多数のルータ７１０が通信して、プロセッサ７０２−１の内部または外部にある様々なコンポーネントの間でデータのルーティングを可能にし得る。
【００５４】
共有キャッシュ７０８は、コア７０６等、プロセッサ７０２−１の１または複数のコンポーネントにより使用される（例えば、複数の命令を含む）データを格納し得る。例えば、共有キャッシュ７０８はプロセッサ７０２の複数のコンポーネントにより、より速くアクセスするべくメモリ７１４に格納されたデータをローカルにキャッシュし得る。一例において、キャッシュ７０８は、中間レベルキャッシュ（レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）等、または複数の他のレベルのキャッシュ）、ラストレベルキャッシュ（ＬＬＣ）、および／またはこれらの組み合わせを含み得る。更に、プロセッサ７０２−１の様々なコンポーネントは、バス（例えば、バス７１２）および／またはメモリコントローラもしくはハブを介して共有キャッシュ７０８と直接に通信し得る。図７に示されるように、いくつかの例において複数のコア７０６のうちの１または複数は、レベル１（Ｌ１）キャッシュ７１６−１（本明細書において一般には「Ｌ１キャッシュ７１６」と称される）を含み得る。一例において、制御ユニット７２０は、図２のメモリコントローラ１２２を参照して上記された複数の動作を実装するロジックを含み得る。
【００５５】
図８は、一例によるコンピューティングシステムにおけるプロセッサコア７０６および複数の他のコンポーネントの一部のブロック図を図示する。一例において、図８に示される矢印は、コア７０６を介する複数の命令のフローの方向を図示する。１または複数のプロセッサコア（プロセッサコア７０６等）は、図７を参照して検討されるもののような単一の集積回路チップ（またはダイ）上に実装され得る。更にチップは、１または複数の共有および／またはプライベートキャッシュ（例えば、図７のキャッシュ７０８）、複数の相互接続（例えば、図７の相互接続７０４および／または１１２）、複数の制御ユニット、複数のメモリコントローラ、または複数の他のコンポーネントを含み得る。
【００５６】
図８に図示されるように、プロセッサコア７０６は、コア７０６により実行するための複数の命令（条件付き分岐を有する複数の命令を含む）をフェッチするフェッチユニット８０２を含み得る。複数の命令は、メモリ７１４のような任意のストレージデバイスによりフェッチされ得る。コア７０６は、フェッチされた命令をデコードするデコードユニット８０４も含み得る。例えば、デコードユニット８０４は、フェッチされた命令をデコードして、複数のｕｏｐ（マイクロオペレーション）にし得る。
【００５７】
更に、コア７０６は、スケジューリングユニット８０６を含み得る。複数の命令のディスパッチの準備ができ、かつ例えばデコード済み命令の全てのソースの値が利用可能になるまで、スケジューリングユニット８０６は、（例えば、デコードユニット８０４から受信された）複数のデコード済み命令を格納することに関連する様々なオペレーションを実行し得る。一例において、スケジューリングユニット８０６は、実行するべく実行ユニット８０８に対する複数のデコード済み命令をスケジューリングし、および／または発行（もしくはディスパッチ）し得る。実行ユニット８０８は、複数の命令がデコードされ（例えば、ユニット８０４によりデコードされ）、（例えば、スケジューリングユニット８０６により）ディスパッチされた後に、ディスパッチされた命令を実行し得る。一例において、実行ユニット８０８は２つ以上の実行ユニットを含み得る。実行ユニット８０８は、加算、減算、乗算、および／または除算等、様々な論理演算オペレーションも実行し得、１または複数の論理演算ロジックユニット（ＡＬＵ）を含み得る。一例において、コプロセッサ（図示せず）は、実行ユニット８０８と共に様々な論理演算オペレーションを実行し得る。
【００５８】
更に、実行ユニット８０８は、複数の命令をアウトオブオーダで実行し得る。従って、プロセッサコア７０６は一例において、アウトオブオーダプロセッサコアであり得る。コア７０６は、リタイアメントユニット８１０も含み得る。リタイアメントユニット８１０は、実行された複数の命令がコミットされた後、それらをリタイアし得る。一例において、実行された複数の命令のリタイアメントは、複数の命令の実行、割り当て解除される複数の命令により用いられる物理レジスタ等からコミットされるプロセッサ状態をもたらし得る。
【００５９】
コア７０６は、１または複数のバス（例えば、バス８０４および／または８１２）を介してプロセッサコア７０６の複数のコンポーネントと他のコンポーネント（図８を参照して検討されるコンポーネント等）との間の通信を可能にするバスユニット７１４も含み得る。コア７０６は、コア７０６の様々なコンポーネントによりアクセスされたデータ（電力消費状態の設定に関係する値等）を格納する１または複数のレジスタ８１６も含み得る。
【００６０】
更に、図７は相互接続８１２を介してコア７０６に結合されるべき制御ユニット７２０を図示するが、様々な例において制御ユニット７２０は、コア７０６の内部等の他の箇所に配置され、バス７０４等を介してコアに結合されてもよい。
【００６１】
いくつかの例において、本明細書において検討される複数のコンポーネントのうちの１または複数は、システムオンチップ（ＳＯＣ）デバイスとして実施され得る。図９は、一例によるＳＯＣパッケージのブロック図を図示する。図９に図示されるように、ＳＯＣ９０２は、１または複数のプロセッサコア９２０、１または複数のグラフィックスプロセッサコア９３０、入力／出力（Ｉ／Ｏ）インターフェース９４０、およびメモリコントローラ９４２を含む。ＳＯＣパッケージ９０２の様々なコンポーネントは、複数の他の図を参照して本明細書において検討されるもののような相互接続またはバスに結合され得る。また、ＳＯＣパッケージ９０２は、他の図を参照して本明細書において検討されるもの等、より多いかまたはより少ないコンポーネントを含み得る。更に、ＳＯＣパッケージ９０２の各コンポーネントは、例えば本明細書における複数の他の図を参照して検討される１または複数の他のコンポーネントを含み得る。一例において、ＳＯＣパッケージ９０２（およびその複数のコンポーネント）は、１または複数の集積回路（ＩＣ）ダイ上に設けられ、１または複数のＩＣは例えば、単一の半導体デバイスにパッケージ化される。
【００６２】
図９に図示されるように、ＳＯＣパッケージ９０２は、メモリコントローラ９４２を介してメモリ９６０（本明細書において他の図を参照して検討されるメモリに類似するか、または同一であり得る）に結合される。一例において、メモリ９６０（またはその一部）は、ＳＯＣパッケージ９０２上に集積され得る。
【００６３】
Ｉ／Ｏインターフェース９４０は、例えば、本明細書において他の図を参照して検討されるもの等の相互接続および／またはバスを介して１または複数のＩ／Ｏデバイス９７０に結合され得る。Ｉ／Ｏデバイス９７０は、キーボード、マウス、タッチパッド、ディスプレイ、画像／ビデオキャプチャデバイス（カメラまたはカムコーダ／ビデオレコーダ等）、タッチ面、スピーカ等のうちの１または複数を含み得る。
【００６４】
図１０は、一例による、ポイントツーポイント（ＰｔＰ）構成で配置されたコンピューティングシステム１０００を図示する。具体的には、図１０は、複数のプロセッサ、メモリ、および複数の入力／出力デバイスがいくつかのポイントツーポイントインターフェースにより相互接続されるシステムを示す。図２を参照して検討される複数の動作は、システム１０００の１または複数のコンポーネントにより実行され得る。
【００６５】
図１０に図示されるように、システム１０００はいくつかのプロセッサを含み得るが、明確にするべく、これらのうちの２つのみ、プロセッサ１００２および１００４が示されている。プロセッサ１００２および１００４は各々、メモリ１０１０および１０１２との通信を可能にするローカルメモリコントローラハブ（ＭＣＨ）１００６および１００８を含み得る。いくつかの例において、ＭＣＨ１００６および１００８は、図１のメモリコントローラ１２０および／またはロジック１２５を含み得る。
【００６６】
一例において、プロセッサ１００２および１００４は、図７を参照して検討された複数のプロセッサ７０２のうちの１つであり得る。プロセッサ１００２および１００４は、ＰｔＰインターフェース回路１０１６および１０１８を各々用いるポイントツーポイント（ＰｔＰ）インターフェース１０１４を介してデータを交換し得る。また、プロセッサ１００２および１００４は各々、ポイントツーポイントインターフェース回路１０２６、１０２８、１０３０、および１０３２を用いる個々のＰｔＰインターフェース１０２２および１０２４を介してチップセット１０２０とデータを交換し得る。チップセット１０２０は、例えばＰｔＰインターフェース回路１０３７を用いる高性能グラフィックスインターフェース１０３６を介して高性能グラフィックス回路１０３４とデータを更に交換し得る。
【００６７】
図１０に示されるように、図１におけるコア１０６および／またはキャッシュ１０８のうちの１または複数は、プロセッサ１００４内に配置され得る。しかし、他の例は、図１０のシステム１０００内の他の複数の回路、ロジックユニット、またはデバイス内に存在し得る。更に、複数の他の例は、図１０に図示されるいくつかの回路、ロジックユニット、またはデバイス全体に分散され得る。
【００６８】
チップセット１０２０は、ＰｔＰインターフェース回路１０４１を用いてバス１０４０と通信し得る。バス１０４０は、バスブリッジ１０４２およびＩ／Ｏデバイス１０４３等、バス１０４０と通信する１または複数のデバイスを有し得る。バス１０４４を介してバスブリッジ１０４３は、キーボード／マウス１０４５、複数の通信デバイス１０４６等の他のデバイス（コンピュータネットワーク１００３と通信し得るモデム、ネットワークインターフェースデバイス、または他の通信デバイス等）、オーディオＩ／Ｏデバイス、および／またはデータストレージデバイス１０４８と通信し得る。データストレージデバイス１０４８（ハードディスクドライブまたはＮＡＮＤフラッシュベースのソリッドステートドライブであり得る）は、プロセッサ１００４により実行され得るコード１０４９を格納し得る。
【００６９】
以下の複数の例は、更なる例に関する。
【００７０】
例１は、第１のシードを用いてビクティムレーンおよび第１のアグレッサレーンに複数の疑似ランダムパターンの第１のセットを生成することにより、ビクティムレーンおよびアグレッサレーンを含む通信相互接続において干渉試験の第１のイテレーションを実装し、第１のアグレッサレーンにおいてシードを前進させることにより、干渉試験の第２のイテレーションを実装するように構成されるハードウェアロジックを少なくとも部分的に有するロジックを備えるコントローラである。
【００７１】
例２において、例１の主題は、サイクルと競合する第１のシードに応答して第１のアグレッサレーンにおいてシードを前進させるように更に構成されるロジックを任意選択で含み得る。
【００７２】
例３において、例１〜２のいずれか１つの主題は、通信相互接続において疑似ランダムパターンを送信するように更に構成されるロジックを任意選択で含み得る。
【００７３】
例４において、例１−３のいずれか１つの主題は、相互接続が第３のアグレッサレーンを含み、ロジックが第２のアグレッサレーンにおいてシードを前進させることにより、干渉試験の第３のイテレーションを実装するように更に構成される配置を任意選択で含み得る。
【００７４】
例５において、例１〜４のいずれか１つの主題は、通信相互接続において疑似ランダムパターンを送信するように更に構成されるロジックを任意選択で含み得る。
【００７５】
例６において、例１〜５のいずれか１つの主題は、予め定められた数の試験ループおよび予め定められた待機期間のうちの少なくとも１つを実行するように更に構成されるロジックを任意選択で含み得る。
【００７６】
例７は、少なくとも１つの処理コンポーネントと、コントローラとを備え、コントローラは、第１のシードを用いるビクティムレーンおよび第１のアグレッサレーンにおいて複数の疑似ランダムパターンの第１のセットを生成することにより、ビクティムレーンおよびアグレッサレーンを含む通信相互接続において干渉試験の第１のイテレーションを実装し、第１のアグレッサレーンにおいてシードを前進させることにより、干渉試験の第２のイテレーションを実装するように構成されたハードウェアロジックを少なくとも部分的に含むロジックを有する、電子デバイスである。
【００７７】
例８において、例７の主題は、サイクルと競合する第１のシードに応答して第１のアグレッサレーンにおいてシードを前進させるように更に構成されるロジックを任意選択で含み得る。
【００７８】
例９において、例７〜８のいずれか１つの主題は、通信相互接続において疑似ランダムパターンを送信するように更に構成されるロジックを任意選択で含み得る。
【００７９】
例１０において、例７〜９のいずれか１つの主題は、相互接続が第３のアグレッサレーンを含み、ロジックが第２のアグレッサレーンにおいてシードを前進させることにより、干渉試験の第３のイテレーションを実装するように更に構成される配置を任意選択で含み得る。
【００８０】
例１１において、例７〜１０のいずれか１つの主題は、通信相互接続において疑似ランダムパターンを送信するように更に構成されるロジックを任意選択で含み得る。
【００８１】
例１２において、例７〜１２のいずれか１つの主題は、予め定められた数の試験ループおよび予め定められた待機期間のうちの少なくとも１つを実行するように更に構成されるロジックを任意選択で含み得る。
【００８２】
例１３は、コントローラにより実行されると、コントローラを、第１のシードを用いてビクティムレーンおよび第１のアグレッサレーンに複数の疑似ランダムパターンの第１のセットを生成することにより、ビクティムレーンおよびアグレッサレーンを含む通信相互接続において干渉試験の第１のイテレーションを実装し、第１のアグレッサレーンにおいてシードを前進させることにより、干渉試験の第２のイテレーションを実装するように構成する、非一時的コンピュータ可読媒体上に格納された複数のロジック命令を備えるコンピュータプログラム製品である。
【００８３】
例１４において、例１３の主題は、サイクルと競合する第１のシードに応答して第１のアグレッサレーンにおいてシードを前進させるように更に構成されるロジックを任意選択で含み得る。
【００８４】
例１５において、例１３〜１４のいずれか１つの主題は、通信相互接続において疑似ランダムパターンを送信するように更に構成されるロジックを任意選択で含み得る。
【００８５】
例１６において、例１３〜１５のいずれか１つの主題は、相互接続が第３のアグレッサレーンを含み、ロジックが第２のアグレッサレーンにおいてシードを前進させることにより、干渉試験の第３のイテレーションを実装するように更に構成される配置を任意選択で含み得る。
【００８６】
例１７において、例１３〜１６のいずれか１つの主題は、通信相互接続において疑似ランダムパターンを送信するように更に構成されるロジックを任意選択で含み得る。
【００８７】
例１８において、例１３〜１７のいずれか１つの主題は、予め定められた数の試験ループおよび予め定められた待機期間のうちの少なくとも１つを実行するように更に構成されるロジックを任意選択で含み得る。
【００８８】
例１９は、再ロードレートパラメータおよびセーブレートパラメータを受信し、再ロードレートパラメータに従って第１のシードを再ロードすることにより、複数の反復疑似ランダムパターンの第１のセットを生成し、通信相互接続の第１のレーンにおいて複数の反復疑似ランダムパターンの第１のセットを送信するように構成されるハードウェアロジックを少なくとも部分的に有するロジックを備える、コントローラである。
【００８９】
例２０において、例１９の主題は、ロジックがセーブレートに応じて第１のシードを保存するように更に構成される配置を任意選択で含み得る。
【００９０】
例２１において、例１９〜２０のいずれか１つの主題は、第１の疑似ランダムパターンを生成し、再ロードレートに応じて第１の疑似ランダムパターンのサブセットを反復し、通信相互接続において疑似ランダムパターンのサブセットを送信するように更に構成されるロジックを任意選択で含み得る。
【００９１】
例２２において、例１９〜２１のいずれか１つの主題は、予め定められた数の試験ループおよび予め定められた待機期間のうちの少なくとも１つを実行するように更に構成されるロジックを任意選択で含み得る。
【００９２】
例２３は、再ロードレートパラメータおよびセーブレートパラメータを受信し、再ロードレートパラメータに従って第１のシードを再ロードすることにより、複数の反復疑似ランダムパターンの第１のセットを生成し、通信相互接続の第１のレーンにおいて複数の反復疑似ランダムパターンの第１のセットを送信するように構成されるハードウェアロジックを少なくとも部分的に有するロジックを備える、少なくとも１つの処理コンポーネントおよびコントローラを備えた電子デバイスである。
【００９３】
例２４において、例２３の主題は、ロジックがセーブレートに応じて第１のシードを保存するように更に構成される配置を任意選択で含み得る。
【００９４】
例２５において、例２３〜２４のいずれか１つの主題は、第１の疑似ランダムパターンを生成し、再ロードレートに応じて第１の疑似ランダムパターンのサブセットを反復し、通信相互接続において疑似ランダムパターンのサブセットを送信するように更に構成されるロジックを任意選択で含み得る。
【００９５】
例２６において、例２３〜２５のいずれか１つの主題は、予め定められた数の試験ループおよび予め定められた待機期間のうちの少なくとも１つを実行するように更に構成されるロジックを任意選択で含み得る。
【００９６】
例２７は、コントローラにより実行されると、コントローラを、再ロードレートパラメータおよびセーブレートパラメータを受信し、再ロードレートパラメータに従って第１のシードを再ロードすることにより、複数の反復疑似ランダムパターンの第１のセットを生成し、通信相互接続の第１のレーンにおいて複数の反復疑似ランダムパターンの第１のセットを送信するように構成する、非一時的コンピュータ可読媒体に格納された複数のロジック命令を備える、コンピュータプログラム製品である。
【００９７】
例２８において、例２７の主題は、ロジックがセーブレートに応じて第１のシードを保存するように更に構成される配置を任意選択で含み得る。
【００９８】
例２９において、例２７〜２８のいずれか１つの主題は、第１の疑似ランダムパターンを生成し、再ロードレートに応じて第１の疑似ランダムパターンのサブセットを反復し、通信相互接続において疑似ランダムパターンのサブセットを送信するように更に構成されるロジックを任意選択で含み得る。
【００９９】
例３０において、例２７〜２９のいずれか１つの主題は、予め定められた数の試験ループおよび予め定められた待機期間のうちの少なくとも１つを実行するように更に構成されるロジックを任意選択で含み得る。
【０１００】
本明細書において言及される「ロジック命令」という用語は、１または複数の論理オペレーションを実行する１または複数の機械により理解され得る表現に関する。例えば、複数のロジック命令は、１または複数のデータオブジェクトに１または複数のオペレーションを実行するプロセッサコンパイラにより変換可能な命令を含み得る。しかし、これは複数の機械可読命令の一例に過ぎず、例はこの点で限定されない。
【０１０１】
本明細書において言及される「コンピュータ可読媒体」という用語は、１または複数の機械により認識可能な複数の表現を保持することができる媒体に関する。例えばコンピュータ可読媒体は、複数のコンピュータ可読命令またはデータを格納する１または複数のストレージデバイスを備え得る。そのようなストレージデバイスは例えば、光、磁気、または半導体ストレージ媒体等のストレージ媒体を備え得る。しかし、これはコンピュータ可読媒体の一例に過ぎず、例はこの点で限定されない。
【０１０２】
本明細書において言及される「ロジック」という用語は、１または複数の論理オペレーションを実行する構造に関する。例えばロジックは、１または複数の入力信号に基づいて１または複数の出力信号を提供する回路を備え得る。そのような回路は、デジタル入力を受信してデジタル出力を提供する有限ステートマシン、または１もしくは複数のアナログ入力信号に応答して１または複数のアナログ出力信号を提供する回路を備え得る。そのような回路は、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の形で提供され得る。また、ロジックは、複数のそのような機械可読命令を実行する処理回路と組み合わせてメモリに格納される複数の機械可読命令を含み得る。しかし、これらはロジックを提供し得る構造の例に過ぎず、例はこの点で限定されない。
【０１０３】
本明細書に説明される複数の方法のうちのいくつかは、コンピュータ可読媒体上で複数のロジック命令として実施され得る。プロセッサ上で実行されると、複数のロジック命令により、プロセッサは、説明される複数の方法を実装する専用マシンとしてプログラミングされる。プロセッサは、ロジック命令により本明細書に説明される複数の方法を実行するように構成される場合、説明される複数の方法を実行する構造を構成する。あるいは、本明細書に説明される複数の方法は、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等におけるロジックにされてもよい。
【０１０４】
本明細書および特許請求の範囲において、「結合される」、「接続される」という用語は、それらの派生語と共に用いられ得る。複数の具体的な例において、「接続される」は、２つまたはそれより多くの要素が互いに直接物理的または電気的に接触していることを示すべく用いられ得る。「結合される」は、２つまたはそれより多くの要素が直接物理的または電気的に接触していることを意味し得る。しかし、「結合される」は、２つまたはそれより多くの要素が互いに直接に接触しないことがあるが、なおも互いに協働または相互作用し得ることも意味し得る。
【０１０５】
本明細書において「一例」または「いくつかの例」に言及する場合、当該例に関して説明される特定の機能、構造、または特性が少なくとも実装に含まれることを意味する。本明細書の様々な個所において「一例」という文言が現れる場合、全てが同一の例を指す場合があり、またはそうでない場合がある。
【０１０６】
複数の構造的機能および／または方法論的動作に固有の言語で複数の例が説明されているが、特許請求される主題は、説明される特定の機能または動作に限定され得ないことを理解されたい。むしろ、特定の機能および動作は、特許請求される主題を実装する見本形態として開示されている。
【図１】
0006316977.tif 000002
【図２】
0006316977.tif 000003
【図３Ａ】
0006316977.tif 000004
【図３Ｂ】
0006316977.tif 000005
【図３Ｃ】
0006316977.tif 000006
【図４Ａ】
0006316977.tif 000007
【図４Ｂ】
0006316977.tif 000008
【図４Ｃ】
0006316977.tif 000009
【図５Ａ】
0006316977.tif 000010
【図５Ｂ】
0006316977.tif 000011
【図６】
0006316977.tif 000012
【図７】
0006316977.tif 000013
【図８】
0006316977.tif 000014
【図９】
0006316977.tif 000015
【図１０】
0006316977.tif 000016
【図１１】
0006316977.tif 000017