(57)【要約】  相互接続を設計する方法（１０００）は、入力ポートの数（Ｍ）及び出力ポートの数（Ｓ）を決定すること（１０１０）を含み、相互接続（１００、１０１、１０２、１０３）を形成するように複数のモジュール要素（５００、６００、７００、８００）を選択する段階（１０３０）を含み、各モジュール要素は、パラメータ検証環境によって検証されるモジュール要素グループから選択される。複数の入力ポート（１０２（１）−１０２（Ｍ））及び複数の出力ポート（１０１（１）−１０１（Ｓ））を有する相互接続（１００、１０１、１０２、１０３）は、複数のモジュール要素（５００、６００、７００、８００）を含み、各モジュール要素は二地点間プロトコルに対応するように適応されており、少なくとも１つのモジュール要素（６００）はサンプリング回路（６１０）及び迂回回路（６１２）を有し、サンプリング回路は迂回回路によって選択的に迂回される。
2009508201.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力ポート及び複数の出力ポートを有する相互接続であって、
複数のモジュール要素を有し、各モジュール要素は二地点間プロトコルに対応するように適応されており、少なくとも１つのモジュール要素はサンプリング回路及び迂回回路を有し、前記サンプリング回路は前記迂回回路によって選択的に迂回される、
ことを特徴とする相互接続。
【請求項２】
前記複数のモジュール要素はＭ個のエキスパンダを有し、異なるエキスパンダは異なるマスタに結合され、且つ各エキスパンダは並列にＳ個のアービタ及びマルチプレクサに結合されている、請求項１に記載の相互接続。
【請求項３】
前記選択的な迂回は、期待される当該相互接続のレイテンシ値に応じて行われる、請求項１又は２に記載の相互接続。
【請求項４】
前記モジュール要素は更にＳ個のスプリッタを有し、各スプリッタは該スプリッタに結合されたスレーブへのトランザクションを最適化するように適応されている、請求項１乃至３の何れか一項に記載の相互接続。
【請求項５】
前記モジュール要素は更にサンプリング手段を有する、請求項１乃至４の何れか一項に記載の相互接続。
【請求項６】
前記モジュール要素は更にサンプリング手段を有する、請求項１乃至５の何れか一項に記載の相互接続。
【請求項７】
前記モジュール要素は更にクロックセパレータを有する、請求項１乃至６の何れか一項に記載の相互接続。
【請求項８】
前記モジュール要素は更にバス幅適応化手段を有する、請求項１乃至７の何れか一項に記載の相互接続。
【請求項９】
各モジュール要素は、モジュール要素の入力バス幅の大きさで互いに異なるモジュール要素群から選択される、請求項１乃至８の何れか一項に記載の相互接続。
【請求項１０】
第１のモジュール要素の検証環境は、前記第１のモジュール要素とは入力バス幅又は出力バス幅で異なる第２のモジュール要素の検証環境の派生物である、請求項１乃至９の何れか一項に記載の相互接続。
【請求項１１】
前記モジュール要素は、未処理のトランザクション要求の調停優先度を指し示す標識を変更するように適応されている、請求項１乃至１０の何れか一項に記載の相互接続。
【請求項１２】
入力ポートの数及び出力ポートの数を決定することを有する、相互接続を設計する方法であって、
相互接続を形成するように複数のモジュール要素を選択する選択段階を有し、各モジュール要素は、パラメータ検証環境によって検証されるモジュール要素グループから選択される、
ことを特徴とする方法。
【請求項１３】
モジュールサンプリング要素を付加すべきか、あるいは少なくとも１つのモジュール要素内の少なくとも１つのサンプリング回路を迂回すべきか、を決定する決定段階を更に有する請求項１２に記載の方法。
【請求項１４】
前記決定段階は、期待される相互接続のレイテンシ値に応じて行われる、請求項１２又は１３に記載の方法。
【請求項１５】
前記選択段階は更に、期待される相互接続のレイテンシ値に応じて少なくとも１つのサンプリング手段を選択することを有する、請求項１２乃至１４の何れか一項に記載の方法。
【請求項１６】
前記選択段階は、二地点間プロトコルに対応するように適応されたモジュール要素を選択することを有する、請求項１２乃至１５の何れか一項に記載の方法。
【請求項１７】
前記選択段階はＭ個のエキスパンダを選択することを有し、異なるエキスパンダは異なるマスタに結合され、且つ各エキスパンダは並列にＳ個のアービタ及びマルチプレクサに結合される、請求項１２乃至１６の何れか一項に記載の方法。
【請求項１８】
前記選択段階はＳ個のスプリッタを選択することを有し、各スプリッタは該スプリッタに結合されたスレーブへのトランザクションを最適化するように適応されている、請求項１２乃至１７の何れか一項に記載の方法。
【請求項１９】
前記選択段階はクロックセパレータを選択することを有する、請求項１２乃至１８の何れか一項に記載の方法。
【請求項２０】
前記選択段階はバス幅適応化手段を選択することを有する、請求項１２乃至１７の何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は相互接続（インターコネクト）、及び相互接続の設計方法に関する。
【背景技術】
【０００２】
オンチップ相互接続は、集積回路の様々な要素を接続するものである。最新の集積回路において、これらの相互接続は、通常、複数のマスタ（メモリ・トランザクションを開始することが可能な要素）を複数のスレーブ（メモリ・トランザクションに応答することが可能な要素）に接続するために使用されている。相互接続には、オーダード（ordered）スプリット（又は非スプリット）トランザクション相互接続、ブロッキング及び非ブロッキング相互接続、フルファブリック（full  fabric）及びパーシャルファブリック（partial  fabric）相互接続などを含む様々な種類がある。相互接続はまた、そのレイテンシ及びスループットによって特徴付けられる。
【０００３】
最新の相互接続の設計者は、異なるマスタ及びスレーブに相互接続を調整し、短い設計期間内に相互接続の設計を完了させることを要求される。
【０００４】
これらのマスタ及びスレーブは、それらがサポートするトランザクションの性質によって異なり得る。これには、異なるパイプライン深さ、バーストサイズ、クロック周波数、アドレスアライメント、優先読み出し（critical  word  first）に関するラップアラウンド能力などが含まれる。
【０００５】
また、最新の相互接続は、高い周波数で動作し、比較的長いパス（path）によって導入される遅延を補償し、且つ消費する電力量があまり多くないものでなければならない。
【０００６】
効率的な相互接続、及び相互接続の設計方法を提供することが望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、効率的な相互接続、及び相互接続の設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態に従った、複数の入力ポート及び複数の出力ポートを有する相互接続は、複数のモジュール要素を有し、各モジュール要素は二地点間プロトコルに対応するように適応されており、少なくとも１つのモジュール要素はサンプリング回路及び迂回回路を有し、サンプリング回路は迂回回路によって選択的に迂回される。
【０００９】
本発明の他の一実施形態に従った、入力ポートの数及び出力ポートの数を決定することを有する、相互接続を設計する方法は、相互接続を形成するように複数のモジュール要素を選択する選択段階を有し、各モジュール要素は、パラメータ検証環境によって検証されるモジュール要素グループから選択される。
【発明を実施するための最良の形態】
【００１０】
本発明は、添付の図面に関連付けられた以下の詳細な説明によって、より十分に理解され、その真価が認識されることになる。
【００１１】
添付の図面は本発明の典型的な実施形態を例示するものである。それら図面は本発明の範囲を限定するものではなく、本発明の実施形態の幾つかを理解することを支援するものである。なお、図は全て、縮尺通りには描かれていない。
【００１２】
本発明は拡張性のある相互接続、及び相互接続を形成し得るモジュール要素を使用する設計方法を提供する。モジュール要素の使用は検証時間及び設計時間を短縮する。
【００１３】
特に、この相互接続は、チップレベルでの回路検証の労力を軽減する非３ステートの完全に統合可能な設計である。
【００１４】
都合良くは、相互接続グループによって接続されるべきマスタ群及びスレーブ群を受け入れること、様々な要求（これには限られないが、例えばレイテンシ要求）を満たすようにマスタ群及びスレーブ群を要素グループにグループ分けすること、各要素グループに対して相互接続を設計すること、及びそのグループの相異なる相互接続間を相互接続することによって、相互接続グループが設計される。都合良くは、レイテンシに敏感な要素グループは、レイテンシに敏感な相互接続によって相互接続される。
【００１５】
都合良くは、モジュール要素のパラメータは、少なくとも１つのマスタ又はスレーブの特性に応じて決定される。通常、これらのパラメータは最低のレイテンシで使用されるべきスレーブ・マスタ対に合わせられる。都合良くは、相互接続の要素のバス幅はプロセッサのバス幅に適合するが、必ずしもそうである必要はない。
【００１６】
都合良くは、モジュール要素のパラメータは、バス幅適応化手段、クロックセパレータ等の数を最小化するように選択されることができる。
【００１７】
都合良くは、相互接続は、選択的に迂回され得る複数のサンプリング回路を含んでいる。選択的な迂回は、相異なるレイテンシを要求する相異なる周波数領域に対して同一の設計を使用することを可能にする。この選択的迂回は、様々な制御信号、プログラム可能な、あるいはプログラム可能でないプラグ、等によって制御されることが可能である。この選択はまた、設計段階において迂回されるサンプリング回路を除外することに等しくなり得る。
【００１８】
都合良くは、この相互接続は、サンプリング回路又はモジュール式のサンプリング要素を含めることによって、タイミング問題を解決する。
【００１９】
サンプリング回路又は要素によって導入される不利なレイテンシ条件は、深いパイプラインをサポートすることによって補償される。モジュール要素は、マスタからデータ又は制御信号を受信し、そのデータ又は制御信号を相互接続内で伝搬する間、そのマスタを開放することができる。
【００２０】
図１は、本発明の一実施形態に従った相互接続のモジュール要素３００−８００を例示している。
【００２１】
都合良くは、モジュール要素は：（ｉ）エキスパンダ６００、（ｉｉ）アービタ・マルチプレクサ８００、（ｉｉｉ）スプリッタ５００、（ｉｖ）サンプリング手段７００、（ｖ）クロックセパレータ３００、及び（ｖｉ）バス幅適応化手段４００を含んでいる。
【００２２】
なお、相互接続は必ずしもこれら全ての要素を含んでいる必要はない。また、これらの要素は集積回路内の独立要素として用いられることも可能である。当業者に認識されるように、相互接続は複数段のこれらモジュール要素を含んでいてもよい。
【００２３】
本発明の一実施形態によれば、これらモジュール要素構築ブロックの各々は、これら要素群の各要素間の密着接続を容易にすること等のために、同一の標準インターフェースを使用する。
【００２４】
本発明の他の一実施形態によれば、各モジュール要素は様々な未処理のトランザクション要求の様々な属性を変更することが可能である。例えば、様々なトランザクション要求は、アップグレードされ得る調停優先度に関連付けられることができる。各モジュール要素は、それが別の要素からの要求に応答して、あるいは時間ベースの優先度アップグレードスキームを更に適用しての何れかで、蓄積するトランザクション要求の優先度をアップグレードすることができる。
【００２５】
都合良くは、少なくとも１つのモジュール要素は、要求及びアドレス段階、データ段階、及びトランザクション終了段階という段階群の開始及び／又は終了を表す信号の受信及び生成を行うことができる。
【００２６】
都合良くは、少なくとも１つのモジュール要素は、１つ以上のトランザクション要求を蓄積し、他の要素に蓄積された複数の未処理トランザクション要求をサポートすることができる。例えば、エキスパンダ６００は、データ段階及び／又はトランザクション終了段階に続かれていないトランザクション要求を１６個まで受信することができる。もっとも、エキスパンダ６００は、より限られた数の要求を蓄積してもよい。
【００２７】
エキスパンダ６００は、二地点間（ポイントツーポイント）インターフェースを備えた単一のマスタが、各々が二地点間インターフェースを備えた複数のスレーブにアクセスすることを可能にする。スレーブ選択はアドレスの復号化に基づく。アービタ・マルチプレクサ８００は、二地点間インターフェースを備えた複数のマスタが、二地点間インターフェースを備えた単一のスレーブにアクセスすることを可能にする。
【００２８】
スプリッタ５００は、二地点間インターフェースを備えた単一のマスタが、二地点間インターフェースを備えた単一のスレーブにアクセスすることを可能にする。スプリッタ５００はスレーブの能力に従ってトランザクションを最適化する。
【００２９】
サンプリング手段７００は、二地点間インターフェースを備えた単一のマスタが、二地点間インターフェースを備えた単一のスレーブにアクセスすることを可能にする。これは、スレーブに向けて生成されたトランザクションをサンプリングする。なお、サンプリング手段７００及びその他の要素は、１つ以上のサンプリング回路と、必要に応じての１つ以上の迂回回路を含むことができる。
【００３０】
クロックセパレータ３００は、二地点間インターフェースを備えた単一のマスタが、二地点間インターフェースを備えた単一のスレーブにアクセスすることを可能にする。マスタが１つのクロック範囲で動作する一方で、スレーブは他の１つのクロック範囲で動作してもよい。バス幅適応化手段４００は、二地点間インターフェースを備えた単一のマスタが、二地点間インターフェースを備えた単一のスレーブにアクセスすることを可能にする。マスタのデータバス幅はスレーブのデータバス幅とは異なる。
【００３１】
都合良くは、要素２００−８００の各モジュール要素は入力インターフェース及び出力インターフェースを含んでいる。説明の便宜上、これらのインターフェースは図７（入力インターフェース３０５及び出力インターフェース３１５）及び図８（入力インターフェース２０５及び出力インターフェース２１５）においてのみ図示されている。
【００３２】
本発明の一実施形態によれば、要素２００−８００のうちの複数のモジュール要素は、迂回回路によって選択的に迂回され得るサンプリング回路を含んでいる。説明の便宜上、図４のみがサンプリング回路６１０及び迂回回路６１２を示している。
【００３３】
図２は、本発明の一実施形態に従った相互接続１００を例示している。
【００３４】
相互接続１００はＭ個のマスタとＳ個のスレーブとの間を接続している。ただし、Ｍ及びＳは正の整数である。Ｍ個のマスタはＭ個の入力ポート１０２（１）−１０２（Ｍ）に接続されており、Ｓ個のスレーブは出力ポート１０１（１）−１０１（Ｓ）に接続されている。これらの入力ポート及び出力ポートはマスタ群とスレーブ群との間の双方向トラフィックをサポートすることができ、単に便宜上の理由により、入力ポート及び出力ポートと参照される。都合良くは、入力ポート１０２（１）−１０２（Ｍ）はエキスパンダ６００（１）−６００（Ｍ）の入力インターフェースであり、出力ポートはスプリッタ５００（１）−５００（Ｓ）の出力インターフェースである。
【００３５】
相互接続１００はＭ個のエキスパンダ６００（１）−６００（Ｍ）、Ｓ個のアービタ・マルチプレクサ８００（１）−８００（Ｓ）、及びＳ個のスプリッタ５００（１）−５００（Ｓ）を含んでいる。各エキスパンダは単一の入力ポートとＳ個の出力とを含んでおり、異なる出力は異なるアービタ・マルチプレクサに接続されている。
【００３６】
各アービタ・マルチプレクサ８００は（単一のスプリッタに接続された）単一の出力とＭ個の入力とを含んでおり、異なる入力は異なるエキスパンダ６００に接続されている。各スプリッタ５００は１つのスレーブに接続されている。
【００３７】
なお、相互接続１００は図２に例示された構成とは異なる構成を有していてもよい。例えば、相互接続１００は複数のサンプリング手段７００、クロックセパレータ３００、及びデータバス幅適応化手段４００を含んでいてもよい。これらの要素は、異なるバス幅を有し異なる周波数で動作するスレーブ及びマスタへの相互接続をサポートするために必要とされ得る。
【００３８】
各スプリッタ５００は単一のスレーブに専用とされる。このスプリッタ５００は、そのスレーブとのトランザクションを最適化するようにプログラムされることが可能である。都合良くは、各スプリッタ５００はスレーブの最大バーストサイズ、アライメント及び優先読み出し（ラップ（wrap））能力に従ってプログラムされる。
【００３９】
相互接続１００は、最小数のサンプリング回路を用い且つその他のサンプリング回路を迂回することによって、低レイテンシの相互接続として動作することができる。これはまた、レイテンシに敏感な相互接続として動作し得る。
【００４０】
都合良くは、相互接続１００は、スレーブごとの調停をサポートする非ブロッキング型のフルファブリックスイッチであり、故に、各スレーブへの最大データバス利用率を実現する。
【００４１】
相互接続１００の各モジュール要素は、標準的な二地点間高性能インターフェースを有している。各マスタ及びスレーブはそのインターフェースを介してインターフェース接続されている。これらのインターフェースは３段階プロトコルを用いる。このプロトコルは要求及びアドレス段階、データ段階、及びトランザクション終了段階を含んでいる。これらの段階の各々は独立に許可される。このプロトコルは要求及びアドレス段階に対してパーキング許可を定める。データ段階及びトランザクション終了段階は、都合良くは、相互接続１００内のバッファが一杯であることに従って許可される。要求はトランザクション要求としても参照される。トランザクション終了段階は、都合良くは、トランザクション終了（end  of  transaction；ＥＯＴ）を指し示すものを送信することを含む。
【００４２】
例えば、マスタは書き込みトランザクション要求をエキスパンダ６００（１）に送信し得る。エキスパンダ６００（１）は最大で３個の書き込みトランザクション要求を蓄積し得るが、複数のトランザクション要求が相互接続のその他の要素に蓄積されるとき、最大で１６個の書き込みトランザクション要求を受信することができる。故に、このエキスパンダは、（マスタから如何なるＥＯＴ又はＥＯＤ信号をも受信することなく）１６番目の書き込みトランザクション要求を受信すると、１７番目のトランザクション要求を送信することができないことに気付くべきマスタにビジー信号を送信する。
【００４３】
他方で、エキスパンダ６００（１）はトランザクション要求を蓄積するとき、エキスパンダ６００（１）にデータを送ったことによってデータ段階に入ることが可能なマスタに肯定応答を送信する。エキスパンダ６００（１）は全体データの受信を終了すると、トランザクションを終了することが可能なマスタにＥＯＤ信号を送信する。
【００４４】
エキスパンダ６００（１）は適当なアービタ・マルチプレクサにトランザクション要求を送信する。トランザクション要求が調停に勝ち、且つマルチプレクサ及びアービタが要求の肯定応答信号を受信すると、エキスパンダ６００（１）は受け取ったデータをスプリッタに送信する。伝送が終了すると、エキスパンダ６００（１）はトランザクション終了段階に入る。そして、スプリッタは標的スレーブを用いて３段階プロトコルを実行する。
【００４５】
相互接続１００は、高周波数のマスタ群と遠隔スレーブとの間を相互接続するために、複数のサンプリング回路を用いることができる。サンプリングユニットの数はパイプラインの深さに影響を及ぼす。もっとも、パイプラインの深さは、これに限られないが例えば相互接続１００のバッファ能力など、その他のパラメータにも影響を受け得る。サンプリング回路数は、例えばサンプリング手段７００等のサンプリング手段を相互接続１００に付加すること、及び／又はエキスパンダ、アービタ・マルチプレクサ及びスプリッタ内のサンプリング回路を迂回したりしなかったりすることによって増大されることができる。例えば、エキスパンダ６００は主サンプリング手段６４０とともに、迂回され得るアドレス・属性サンプリング手段６１０を含んでいる。
【００４６】
都合良くは、相互接続１００は書き込みトランザクションをローカルに終了するか、スレーブによってそれを終了させるかする。書き込み終了能力は、トランザクションに関連付けられた属性によって実現される。データの一貫性を提供するよう、スレーブは書き込みトランザクションを終了するべきであり、さもなければ、相互接続１００はトランザクションをローカルに終了することができる。
【００４７】
都合良くは、相互接続１００、そして特に各アービタ・マルチプレクサ８００は、以下の特徴によって特徴付けられ得る調停スキームを実行する：複数（例えば、４つ）のサービスの質（又は優先度）レベル、優先度アップグレード機構、優先度マッピング、疑似ラウンドロビン調停、時間ベース優先度アップグレード、優先度マスキング、重み付け調停、及びレイト・デシジョン調停。
【００４８】
優先度は各トランザクションの１つの属性である。アービタは優先度ごとに専用のアービタ回路を含んでいる。優先度アップグレード機構は、マスタ（又は、別の要素）が未処理のトランザクションの優先度を、そのトランザクション要求の生成後に得られた情報に基づいてアップグレードすることを可能にする。アップグレードはトランザクション要求に関連付けられた優先度属性を変更することを伴う。アップグレードは相互接続の様々な要素によって実行されることが可能である。
【００４９】
本発明の一実施形態によれば、一部のトランザクション要求はアップグレード不可能としてラベル付けされ得る一方で、他のトランザクション要求はアップグレード可能としてラベル付けされ得る。アップグレード不可能なトランザクション要求は、優先度アップグレードセッション中にアップグレードされることはない。
【００５０】
優先度マッピングはマスタの優先度を、スレーブの優先度、又は共通の優先度にマッピングすることを可能にする。疑似ラウンドロビン調停は、最新のトランザクション要求が検出されるまで、最後の調停の勝者を記憶し、この最後の調停の勝者からトランザクション要求ベクトルをスキャンすることを伴う。
【００５１】
時間ベース優先度アップグレードは、未処理のトランザクション要求の優先度を、それらが保留されている時間に応じて更新することを含む。都合良くは、この機能はスターベーションの虞を低減する。本発明の一実施形態によれば、所定のタイミング閾値Ｔ１が定義される。Ｔ１の半分が経過したとき、優先度が上げられる。Ｔ１の更なる１／４が経過したとき、優先度が更に高められる。Ｔ１の更なる１／８が経過したとき、優先度が更に高められる。当業者に認識されるように、本発明の範囲を逸脱することなく、その他の時間ベース優先度アップグレード手法も適用されることができる。
【００５２】
優先度マスキングは、所定のタイムスロット中に、所定の優先度の様々な要求を選択的にマスクすることを含む。都合良くは、１つのタイムスロット中に、最高の優先度のトランザクション要求がマスクされ、別の１つのタイムスロット中に、最高の優先度のトランザクション要求と次に高い優先度のトランザクション要求とが阻止され、等々と続けられる。都合良くは、一部のトランザクション要求は阻止されることができず、様々なタイムスロット中に全てのトランザクション要求が許可される。これは、より低い優先度を有するトランザクションに対して最低限の調停勝ちスロットを保証するものであり、故に、潜在的なスターベーション問題を解消する。
【００５３】
重み付け調停は、調停の勝者が調停セッションに勝った後に複数の連続したトランザクション（トランザクションシーケンス）に参画することを可能にすることを含む。重み付けは、調停の勝者によって実行されることが可能なトランザクションの量を表すことができる。都合良くは、トランザクションシーケンスにおいて一層高い優先度のトランザクション要求が調停スキームに勝った場合、トランザクションシーケンスは停止する。
【００５４】
レイト・デシジョン調停は、実質的に、実行中のトランザクションの終了時に、あるいは実行中のトランザクションの終わりの長さに対応する遅延の後に、新たな調停勝者を決定することを含む。
【００５５】
相互接続１００はオーダード相互接続であり、故に、場所をとるリオーダー（re-order）バッファを必要としない。都合良くは、相互接続１００は、スター型トポロジーを作り出す境界された集権的領域内に統合される。この統合化は、相互接続１００と、それに接続されたマスタ及びスレーブとの間に少量のバッファを付加することを必要とし得る。そうではあるものの、この統合化は、経路選択の複雑さを劇的に低減させ、設計及び検証のための時間を更に短縮する。
【００５６】
相互接続１００は比較的小さい面積を有し、それにより比較的低い静的な電力消費をもたらす。また、電力ゲーティング技術を適用することにより、相互接続１００の電力消費は更に削減される。
【００５７】
相互接続１００は、サンプリングを本質的に実行する複数の二地点間インターフェース（ポートとも呼ばれる）を含んでいる。また、相互接続１００は、選択的に迂回され得る複数のサンプリング回路を含んでおり、故に、長いパスによって生じる低周波フィルタリング問題を防止する。
【００５８】
相互接続１００はオーダードトランザクションプロトコルをサポートしている。また、実装を単純化し且つリオーダーバッファを排除するため、相互接続１００は新たなスレーブへのトランザクションを、そのスレーブへの未処理のトランザクションの全てが完了するまで生成しない。この動作により、トランザクションの完了順がトランザクションの開始順と同一になることが確保される。結果として、或る特定のスレーブへの実際のレイテンシは、付加的なストール（引き止め）サイクルのために増大し得る。
【００５９】
本発明の他の一実施形態によれば、相互接続１００は、或るスレーブへのトランザクションをそのスレーブへの先行トランザクションが完了するまで引き止めておくことを要しない比較的限られたリオーダー機構を含む。
【００６０】
図３は、本発明の一実施形態に従った集積回路１０を例示している。
【００６１】
集積回路１０は、相互接続１０１、１０２及び１０３を含む相互接続グループを含んでいる。複数の相互接続の使用は、或る特定の要素群が低レイテンシの相互接続によって接続されるべきときに必要とされ得る。単一の相互接続ではそのような低レイテンシを提供することができない場合、集積回路の要素群は複数のグループにグループ分けされることができる。少なくとも１つのグループは、互いに物理的に接近し、低レイテンシ相互接続で相互に接続された複数の要素群を含んでいる。相互接続１０１及び１０２は低レイテンシ相互接続である一方で、相互接続１０３はレイテンシの影響を受けにくい相互接続である。都合良くは、相互接続１０３と比較して、より多くのサンプリング回路が相互接続１０１及び１０２において迂回される。
【００６２】
相互接続１０１は、プロセッサ１１０及び１１２並びに共有オンチップメモリ１２０を含む第１グループの要素群を相互に接続している。相互接続１０１はまた、相互接続１０２及び１０３に接続されている。２つのプロセッサ１１０及び１１２はこの相互接続のマスタである。
【００６３】
相互接続１０２は、プロセッサ１１４及び１１８並びに共有オンチップメモリ１２４を含む第２グループの要素群を相互に接続している。２つのプロセッサ１１４及び１１８はこの相互接続のマスタである。
【００６４】
相互接続１０３は、ＤＭＡ１２２、外部ホストインターフェース（Ｉ／Ｆ）１１６、周辺装置１３０、１３２及び１３４、並びにメモリコントローラ１３６を含む第３グループの要素群を相互に接続している。メモリコントローラ１３６はオフチップメモリ１９０に接続されている。周辺装置１３０、１３２及び１３４、並びにメモリコントローラ１３６は相互接続１０３のスレーブである。
【００６５】
図４は、本発明の一実施形態に従ったエキスパンダ６００を例示している。
【００６６】
エキスパンダ６００は、入力ポート１０２、複数（例えば、Ｓ個）の出力ポート６０１−６０３、アドレス及び属性のサンプリング手段６１０、アドレス及び優先度の翻訳ユニット６２０、スレーブデコーダ６３０、主サンプリング手段６４０、デマルチプレクサ６５０、及び制御ユニット６６０を含んでいる。
【００６７】
アドレス・属性サンプリング手段６１０は迂回されることができる。迂回されない場合には、これはアドレス・属性ラインをサンプリングする。
【００６８】
エキスパンダ６００はそれに蓄積されたトランザクション要求の優先度アップグレードをサポートしている。故に、蓄積されたトランザクション要求の優先度属性は更新されることが可能である。更新された優先度がアービタ・マルチプレクサ８００（１）−８００（Ｓ）によって考慮される。このアップグレードは、通常、そのトランザクションの標的であるスレーブがそのトランザクション要求に応答する前に行われることができる。
【００６９】
主サンプリング手段６４０は、マスタからスレーブへの全てのライン（アドレス、書き込みデータ及び属性のラインを含む）に二重バッファを含んでいる。二重バッファは、或るトランザクションのアドレス、書き込みデータ及び属性のラインを、別のトランザクションが終了する前にサンプリングすることを可能にする。主サンプリング手段６４０は、スレーブからマスタへのライン（例えば、読み出しデータを含む）に単一バッファを提供する。
【００７０】
主サンプリング手段６４０はトランザクション優先度アップグレード及び時間ベース優先度アップグレードを容易にする。時間ベース優先度アップグレードは、或る一定の時間閾値より長く保留されている未処理のトランスポート要求の優先度を高めることを伴う。都合良くは、保留時間が複数の時間閾値を超過している場合、複数のトランザクション優先度アップグレードが行われることが可能である。
【００７１】
優先度アップグレードは都合良くはマスタによって開始され、或る一定の未処理のトランザクション要求の優先度を（優先度属性を変更することによって）高めることを含んでいる。都合良くは、その一定のトランザクション要求に先行するその他のトランザクション要求の優先度属性も高められる。この機能は、一定のパイプライントランザクション要求が低い優先度のトランザクション要求の前にサービスを受ける確率を高めながら、要求の順序を維持することを可能にする。都合良くは、コントローラ６６０はこの優先度アップグレードを制御することが可能であるが、これは必ずしもそうである必要はない。
【００７２】
アドレス・優先度翻訳ユニット６２０は、所定の値に従ってアドレスの上位ビット群を翻訳する。優先度の翻訳は、マスタのトランザクション優先度をスレーブのトランザクション優先度又は共通の優先度に翻訳することを伴う。この翻訳は所定のトランザクション優先度ルックアップテーブルを用いることを含み得る。
【００７３】
スレーブデコーダ６３０は、アドレスライン上でアドレスを受信し、そのトランザクションが相互接続に接続されたＳ個のスレーブに含まれるスレーブに向けられたものであるか、又はそのアドレスが誤ったものでないかを、各スレーブに関連付けられた所定のアドレス範囲に基づいて決定する。
【００７４】
本発明の一実施形態によれば、各スレーブに割り当てられたアドレス範囲は固有のものであり、それにより１つのスレーブのみが選択されることが可能である。本発明の他の一実施形態によれば、アドレス範囲は重複を有するが、入力アドレスと相異なるアドレス範囲群との間での多重整合を解消するために、例えばスレーブの優先度などの付加情報が提供される。
【００７５】
アドレス範囲群は、都合良くは、エキスパンダ６００内に配置されたアドレスレジスタに格納される。典型的に、１つのアドレスレジスタがアドレス範囲の開始アドレスを格納し、他のアドレスレジスタがアドレス範囲の終端アドレス、又は開始アドレスからのオフセット量を格納する。
【００７６】
デマルチプレクサ６５０は、データ、アドレス及び属性の信号を、標的スレーブにスプリッタ５００を介して接続されたアービタ・マルチプレクサ８００に送信する。
【００７７】
制御ユニット６６０は、アドレス・属性サンプリング手段６１０、アドレス・優先度翻訳ユニット６２０、スレーブデコーダ６３０、主サンプリング手段６４０、及びデマルチプレクサ６５０の動作を制御する。制御ユニット６６０は、電力ゲーティング技術を制御することができ、また、或る標的スレーブに向けられたトランザクション要求を、その標的スレーブに向けられた処理中のトランザクションが完了するまで阻止することができる。トランザクションの完了は、標的スレーブから発せられたトランザクション終了信号によって指し示されることができる。
【００７８】
都合良くは、制御ユニット６６０は、アクセス追跡手段、要求生成手段、データ終了標識生成手段、及びトランザクション種類追跡回路を含んでいる。アクセス追跡手段は、終了しなかったトランザクションを追跡する。要求生成手段はトランザクション要求信号を標的スレーブに送信する。データ終了標識生成手段はＥＯＤ標識をマスタに送信する。トランザクション種類追跡回路は、現時点でデータ段階中にあるトランザクションの種類（読み出し、書き込み、エラー、休止）を指し示す情報を記録する。
【００７９】
図５は、本発明の一実施形態に従ったスプリッタ５００を例示している。
【００８０】
スプリッタ５００は、マスタからのデータトランザクションを受信し、それをスレーブへの１つ以上のトランザクションに変換すること、及びその逆を行うことに適応されている。スプリッタ５００は、例えば最大バーストサイズ、データバーストアライメント、ラップサイズ及びこれらに類するものなどの様々なスレーブトランザクションの特徴（属性とも呼ばれる）を保存する。そして、スプリッタ５００はこれらの属性に応じてスレーブへのトランザクションを定める。スプリッタ５００はまた、３段階プロトコルをスレーブに向けて、そしてマスタに向けて適用する。例えば、マスタが１２８ビットのデータバーストを送信し、スレーブが３２ビットのデータバーストを受信することができる場合、スプリッタ５００はこのデータバーストを４つのスレーブデータバーストに変換する。
【００８１】
スプリッタ５００は、スレーブトランザクションの属性に応答するように（最適化モード）、あるいはサンプリング段階として（サンプリングモード）構成されることが可能である。サンプリングモードにおいては、スプリッタ５００は信号をサンプリングし、それらをスレーブに送信するのみである。なお、スプリッタ５００の入力ポート及び出力ポートのバス幅は同一であり、故に、サンプリングモードは容易に実行されることができる。
【００８２】
スプリッタ５００は、データユニット５１０、応答ユニット５２０、要求ユニット５３０、及び制御／デバッグユニット５４０を含んでいる。制御／デバッグユニット５４０はスプリッタを制御し、また、デバッグモードにおいても使用される。
【００８３】
なお、相互接続１００のその他のモジュール要素もデバッグユニット及び／又は結合されたデバッグ及び制御ユニットを含んでいるが、説明の簡略化のため、図５のみがデバッグユニットを示している。
【００８４】
データユニット５１０は、マスタとスレーブとの間でデータ交換することを可能にするバッファを含んでいる。応答ユニット５２０は伝送終了信号及びデータ終了信号を管理する。要求ユニット５３０はアクセスの最適化を実行するとともに、その他の制御信号の管理を行う。
【００８５】
スプリッタ５００は、複数のトランザクション要求を蓄積することができ、１つのサンプリング回路と、迂回され得る必要に応じてのサンプリング回路とを含んでいる。この第２のサンプリング回路は要求ユニット５３０内に配置される。都合良くは、スプリッタ５００のラップ（wrap）が有効にされるとき、あるいはスプリッタ５００が最適化モードで動作するとき、２つのサンプリング回路が動作させられる。
【００８６】
都合良くは、書き込みトランザクションが発生したとき、マスタはスプリッタ５００にデータバーストを送信する。マスタはまた、バーストサイズを反映した情報を送信し、それにより、スプリッタ５００はデータバースト全体を受信したときにＥＯＤ信号をマスタに送信することができ、マスタ−スプリッタ間でのデータ段階が終了する。マスタはまた、マスタ−スプリッタ間でのトランザクション終了段階が終了したときにＥＯＴ信号を送信することができる。ＥＯＤ及びＥＯＴは、データがスレーブに送信されていない（あるいは、完全には送信されていない）場合であっても送信されることができる。スプリッタ５００は使用された３段階プロトコルにて、データを１つ以上のデータビートでスレーブに送信する。スレーブは、スプリッタ−スレーブ間でのデータ段階、及びスプリッタ−スレーブ間でのトランザクション終了段階が完了したとき、ＥＯＤ信号及びＥＯＴ信号をスプリッタ５００に送信する。
【００８７】
本発明の一実施形態によれば、スプリッタ５００はトランザクション優先度アップグレード及び時間ベース優先度アップグレードをサポート可能である。これらの機能は、スプリッタ５００がアービタに続かれる場合に必要とされ得る。
【００８８】
図６は、本発明の一実施形態に従ったマルチプレクサ・アービタ８００を例示している。
【００８９】
マルチプレクサ・アービタ８００は、複数（例えば、Ｍ個）の入力ポート８０１−８０３、出力ポート８１２、アトミックなストール（引き止め）ユニット８１０、マルチプレクサ８２０、アービタ８３０、及びサンプリング手段８４０を含んでいる。アトミック・ストールユニット８１０は様々なマスタから、同一スレーブ宛のトランザクション要求を受信する。サンプリング手段８４０はマルチプレクサ８２０とアービタ８３０との間に接続されており、調停結果をサンプリングする。
【００９０】
アービタ８３０は、アトミック・ストールユニット８１０からのトランザクション要求、マスタの調停優先度、マスタの重み付け、及びレイト調停の制御信号を受信し、調停の勝者、及びトランザクションが開始されたことの標識をマルチプレクサ８２０に提供する。このトランザクション開始標識は、スプリッタから送信されたトランザクション肯定応答信号に応答するものである。マルチプレクサ８２０はまた、トランザクション要求群を受信し、スプリッタ５００に出力されるべき未処理のトランザクション要求群のうちの１つを、アービタ８３０からの制御信号に応じて選択する。
【００９１】
アービタ８３０は、調停エンジン８３２、要求編成手段８３４、及び要求生成手段８３６を含んでいる。
【００９２】
要求編成手段８３４は、トランザクション要求群及びそれらの優先度を受信し、各ベクトルが或る一定の優先度に属するトランザクション要求群を表すような、複数の要求ベクトルを生成する。各ベクトルは、未処理のトランザクション要求群を送信したマスタ群を指し示す。
【００９３】
要求生成手段８３６は、所定のタイムスロット中に所定の優先度の様々なトランザクション要求を選択的にマスクするマスキングユニット８３７を含んでいる。例えば、４つの優先度が存在し、１６個のタイムスロットが定められると仮定する。２つのタイムスロット中に、最高の優先度のトランザクション要求群がマスクされ、対応する要求ベクトルがヌルにされる。２つのその他のタイムスロット中に、高い方から２つの優先度のトランザクション要求群がマスクされ、対応する２つの要求ベクトルがヌルにされる。１つのタイムスロット中に、最低の優先度のトランザクション要求群のみが有効にされ、その他のタイムスロット中には、全てのトランザクション要求群がマスクされない。
【００９４】
要求生成手段８３６はまた、調停サイクルを実行すべき時を指し示すタイミング信号を調停エンジン８３２に送信することによって、重み付け調停及びレイト・デシジョン調停を適用する。例えば、要求生成手段はデータバーストサイズ及びデータビートサイズについての標識を受信し、次の調停サイクルをトリガーすべき時を決定することができる。要求生成手段８３６は未処理のトランザクション要求群の優先度を認識しており、低めの優先度のトランザクション要求の長いトランザクションの間に高めの優先度の要求が到着した場合、調停サイクルを要求することができる。
【００９５】
要求生成手段８３６はまた、３段階プロトコルを実施するために、例えばマスタ要求信号及びスレーブ肯定応答信号などの制御信号を送信する。
【００９６】
調停エンジン８３２は複数の調停回路を含んでおり、各調停回路は同一の優先度に属するトランザクション要求群に関連付けられている。調停の勝者は、調停回路内での調停サイクルに勝った最も高いマスクされていないトランザクション要求である。
【００９７】
調停エンジン８３２は、各ベクトルが或る一定の優先度に属するトランザクション要求群を表している複数の要求ベクトルを受信する。各ベクトルは、未処理のトランザクション要求群を送信したマスタ群を指し示している。調停エンジン８３２は、最後の調停サイクルの勝者のみを考慮に入れる疑似ラウンドロビン調停スキームを適用する。
【００９８】
当業者に認識されるように、周知の調停スキームを含むその他の調停スキームが適用されることも可能である。
【００９９】
図７は、本発明の一実施形態に従ったクロックセパレータ３００を例示している。
【０１００】
クロックセパレータ３００は優先度アップグレード及び３段階プロトコルをサポートしており、入力及び出力のインターフェース（Ｉ／Ｆ）に加えて、制御パス３１０、データパス３２０及びコントローラ３３０を含んでいる。コントローラ３３０はクロックセパレータの動作を制御する。制御パス３１０は、トランザクション要求、制御信号及び属性を伝搬するために使用される。これらの信号は、ＥＯＴ信号、ＥＯＤ信号、肯定応答信号、トランザクション要求信号及びこれらに類するものを含み得る。
【０１０１】
コントローラ３３０はクロックセパレータの動作モードについての標識を受信し、それに従ってクロックセパレータ３００を制御することができる。例えば、クロックセパレータは、入力クロック周波数と出力クロック周波数とが同一である迂回モード、入力クロックと出力クロックとの間に所定の関係が存在する様々なモード等で動作することが可能である。
【０１０２】
データパス３２０は、書き込み動作のための２つのサンプリング回路と、読み出し動作のための１つのサンプリング回路とを含んでいる。データパス３２０は通常、書き込み動作のためのバッファと読み出し動作のためのバッファとを含んでいる。バッファリングにより、入力クロック周波数と出力クロック周波数との間の差を補償することが可能になる。
【０１０３】
破線の縦線３０１は、クロックセパレータ３００の要素群が入力周波数領域と出力周波数領域とで動作することを例示している。なお、これらの周波数は互いに異なっていてもよいが、これは必ずしもそうである必要はない。クロックセパレータ３００は、入力クロックと出力クロックとの間の同期化や、スキュー及び／又はジッタの抑制などに使用されることができる。
【０１０４】
図８は、本発明の一実施形態に従ったバス幅適応化手段４００を例示している。
【０１０５】
バス幅適応化手段４００は優先度アップグレード及び３段階プロトコルをサポートしており、入力及び出力のインターフェース（Ｉ／Ｆ）に加えて、制御パス４１０、データパス４２０及びコントローラ４３０を含んでいる。コントローラ４３０はバス幅適応化手段４００の動作を制御する。制御パス４１０は、トランザクション要求、制御信号及び属性を伝搬するために使用される。これらの信号は、ＥＯＴ信号、ＥＯＤ信号、肯定応答信号、トランザクション要求信号及びこれらに類するものを含み得る。
【０１０６】
コントローラ４３０は、相異なるバスの幅についての標識、データのアライメント及びタイミングパラメータを受信し、それらに従ってバス幅適応化手段４００を制御することができる。データパス４２０は書き込み動作のための２つのサンプリング回路と、読み出し動作のための１つのサンプリング回路とを含んでいる。データパス４２０は通常、書き込み動作のためのバッファと読み出し動作のためのバッファとを含んでいる。バッファリングにより、入力バス幅と出力バス幅との間の差を補償することが可能になる。
【０１０７】
図９は、本発明の一実施形態に従った相互接続の設計方法１０００を例示している。
【０１０８】
方法１０００は、入力ポート数（Ｍ）及び出力ポート数（Ｓ）を決定する段階１０１０で開始する。Ｍは相互接続に接続されるマスタの数に相当し、Ｓは相互接続に接続されるスレーブの数に相当する。
【０１０９】
段階１０１０に続くのは、相互接続を形成するように複数のモジュール要素を選択する段階１０３０である。ただし、各モジュール要素は、モジュール要素の入力バス幅の大きさで互いに異なるモジュール要素から成るグループから選択される。都合良くは、少なくとも１つの要素グループがパラメータ検証環境を用いて検証される。
【０１１０】
段階１０３０に続くのは、モジュールサンプリング要素を付加すべきか、あるいは、少なくとも１つのモジュール要素内の少なくとも１つのサンプリング回路を迂回すべきかを決定する段階１０４０である。都合良くは、段階１０４０は相互接続に期待されるレイテンシ値に応じて行われる。
【０１１１】
都合良くは、上記の選択は、相互接続に期待されるレイテンシ値に応じて、少なくとも１つのサンプリング手段を選択することを含む。都合良くは、この選択は、特定の二地点間プロトコルをサポートするように適応されたモジュール要素群を選択することを含む。都合良くは、この選択はＭ個のエキスパンダ（６００（１）−６００（Ｍ））を選択することを含む。ただし、異なるマスタには異なるエキスパンダが接続され、各エキスパンダは並列にＳ個のアービタ・マルチプレクサに結合されている。
【０１１２】
都合良くは、この選択はＳ個のスプリッタを選択することを含む。ただし、各スプリッタは該スプリッタに結合されたスレーブへのトランザクション群を最適化するように適応される。都合良くは、この選択はクロックセパレータ及び／又はバス幅適応化手段を選択することを含む。この選択は、マスタのクロック周波数、スレーブのクロック周波数、マスタのバス幅、及びスレーブのバス幅に応じて行われる。
【０１１３】
図１０は、本発明の一実施形態に従った調停方法１１００を例示している。
【０１１４】
調停方法１１００は、少なくとも１つのマスタに関連付けられた少なくとも１つのトランザクション要求を受信する段階１１１０で開始する。ただし、全てのトランザクション要求は同一のスレーブに関連付けられている。各トランザクション要求はトランザクション要求の優先度及び重み付けを伴っている。
【０１１５】
段階１１１０に続くのは、トランザクション要求群を選択的にマスキングする段階１１２０である。この選択的なマスキングは様々なタイムスロットにて適用されることができ、１つ以上の優先度、特に一層高い優先度を有するトランザクション要求群をマスクすることが可能である。
【０１１６】
段階１１２０に続くのは、１つ以上の調停サイクルを実行すべき時を決定する段階１１３０である。この決定は、処理中のトランザクションの長さに応じて為される。都合良くは、調停サイクルは処理中のトランザクションのアドレス段階の終わり近くで実行される。本発明の一実施形態によれば、調停の勝者の選択とデータ段階の開始時との間には時間ギャップが存在し得る。必ずしもそうとは言えないが、通常、この時間ギャップは読み出しトランザクション内で発生する。書き込みトランザクションにおいては、データ段階中に伝送されるべきデータは、通常、調停が行われるとき相互接続内に保管される。読み出しトランザクションにおいては、通常、データは調停サイクルが行われるときスレーブ内に保管される。故に、次の調停サイクルを開始するためにデータ伝送の終了を待つことに代えて、アービタは現段階で許可されているデータ伝送の長さを計算し、その長さに対応する遅延の後に次の調停サイクルを開始する。
【０１１７】
段階１１３０に続くのは、優先度ごとに、マスクされていないトランザクション要求群の間で調停シーケンスを実行する段階１１４０である。都合良くは、各調停サイクルは疑似ラウンドロビン調停スキームを適用することを伴う。段階１１４０は調停の勝者を与え、また、その勝者によって伝送され得るデータビートの量を計算することを含む。
【０１１８】
段階１１４０に続くのは、調停の勝者についての標識を提供する段階１１５０である。段階１１５０は、調停の勝者によって連続して導かれることが可能なトランザクションの数を決定することを含み得る。この決定は、通常、トランザクション要求の重み付けに応じて行われる。
【０１１９】
段階１１５０に続くのは、次の調停サイクルを実行すべき時を決定して段階１１１０に移る段階１１６０である。なお、段階１１１０が段階１１６０に先行されている場合、段階１１３０はスキップされることができる。また、或るマスタが調停サイクルに勝ち、且つトランザクションシーケンスの最中にある場合であっても、このシーケンスは、より高い優先度のトランザクション要求が調停サイクルに勝った場合には停止されることができる。
【０１２０】
方法１１００はまた、未処理のトランザクション要求群の優先度を更新する段階１１１５を含んでいる。段階１１１５は、方法１１００のその他の段階の実行中に行われることができる。都合良くは、或るトランザクション要求の優先度の更新は、そのトランザクション要求が調停に勝ったときに阻止されるが、これは必ずしもそうである必要はない。段階１１１５は時間に基づくものであってもよいし、且つ／或いはマスタによって開始されてもよい。この優先度の更新は、特定のトランザクション要求群、特に特定のトランザクション要求と同一の待ち行列に格納されたトランザクション要求群、に先行するトランザクション要求群の優先度を高めることを含み得る。
【０１２１】
本発明の一実施形態によれば、調停スキームは、３段階通信プロトコルに参画するマルチプレクサ及びアービタによって適用される。都合良くは、アービタ及びマルチプレクサは、相互接続を形成するようにその他のモジュール要素に接続されることが可能なモジュール要素である。
【０１２２】
図１１は、本発明の一実施形態に従った相互接続グループの設計方法１２００を例示している。
【０１２３】
方法１２００は、相互接続グループによって相互接続されるべきマスタ群及びスレーブ群を表す情報を受信する段階１２１０で開始する。
【０１２４】
段階１２１０に続くのは、これに限られないが例えばレイテンシ要求などの様々な要求を満たすように、マスタ群及びスレーブ群を要素グループにグループ分けする段階１２２０である。
【０１２５】
段階１２２０に続くのは、要素グループごとに相互接続を設計するとともに、グループ内の様々な相互接続間を相互接続する段階１２３０である。都合良くは、レイテンシに敏感な要素グループはレイテンシに敏感な相互接続によって相互接続される。段階１２３０は方法１０００の各段階を適用することを含み得る。
【０１２６】
図１２は、本発明の一実施形態に従った検証プロセス１３００を例示している。
【０１２７】
検証プロセス１３００は、モジュール要素グループのハイレベル設計（ボックス１３１０）、パラメータ検証の制約（ボックス１３２０）、及び検証されるモジュール要素のパラメータ（ボックス１３３０）を、ネットリスト生成手段（ボックス１３４０）及びテストベンチ生成手段（ボックス１３４５）に提供することによって開始する。ネットリスト生成手段１３４０及びテストベンチ生成手段１３４５の出力は、刺激情報（ボックス１３５０）とともにパラメータ検証ステージ（ボックス１３６０）に与えられる。
【０１２８】
例えば、スプリッタグループのハイレベル設計が提供されることができ、バス幅がパラメータとして与えられる。言い換えると、ハイレベル設計は単にこれらのパラメータを変更することによって一群のスプリッタを表すことができる。
【０１２９】
また、検証の制約（ボックス１３２０）が与えられる。
【０１３０】
本発明の一実施形態によれば、新たなモジュール要素グループごとに、制約のパラメータセット、仕様、カバーセット及びテストパターンが作成されるべきである。様々なモジュール要素の試験は、実質的に同一の切れ端（スタブ）群及び監視装置を用いて行われる。検査されるモジュール設計は、ランダムな、疑似ランダムな、あるいは事象駆動の、刺激によって刺激されることができる。いったんパラメータ検証環境が定められると、新たなパラメータを有する新たなモジュール要素の検証は、新たなパラメータ（ボックス１３３０）を与え、刺激を再起動することを必要とする。
【０１３１】
典型的なパラメータのハイレベル設計は、パラメータ群に応答して繰り返されるループを含んでいる。アドレスデコードを表す典型的なハイレベル設計コードは：
//アドレスデコーダ
for(i=0;i<=(‘MEX_NOS-l);i=i+1)
begin
wire  decoder  i  _hit;  //  デコーダにおけるヒット  #  I
mex_<NOS>s_<MDBW>b_mex_start_end_decoder
#(‘MEX_ADDR_DEC_WIDTH)  target  i  _decoder  (
.ipm_addr(aptu_ipm_addr  [35:36  −
‘MEX_ADDR_DEC_WIDTH]),
.start_addr(mci_decoder  i
_start_addr[‘MEX_ADDR_DEC_WIDTH  −  1:0]),
.end_addr(mci_decoder  i
_end_addr[‘MEX_ADDRJDEC_WIDTH  −  1:0]),
.enable(mci  decoder  i  _en),
.hit(decoder  i  _hit)
);
end  
のように例示される。
【０１３２】
図１３は、本発明の一実施形態に従ったテストベンチ１４００を例示している。テストベンチは複数の試験環境を含むことができるが、説明の便宜上、単一の試験環境のみが示されている。
【０１３３】
テストベンチ１４００はモジュール要素１４０２の動作を試験している。テストベンチ１４００は、モジュール要素１４０２に刺激を供給する開始手段１４１０を含んでいる。これら開始手段は様々なモジュール要素を試験するために使用されることができる。都合良くは、開始手段１４１０は指示された刺激又はランダムな刺激を供給し得る。
【０１３４】
都合良くは、テストベンチは以下のようにパラメータ的である。（ｉ）刺激は、パラメータ（Ｍ、Ｓ、データバス幅）を有し、然るべくそれを駆動する特定のモジュールインターフェースを考慮に入れるべきである。都合良くは、刺激は全パラメータ範囲（検証空間）に及ぶべきである。（ｉｉ）検査手段は、パラメータの全検証範囲に及ぶようにパラメータ的であるべきである。（ｉｉｉ）カバーセットは、全検証空間に及ぶようにパラメータ的であるべきである。（ｉｖ）テストベンチのネットリストは、柔軟性を有し、正しいデータバス幅を有する適当数の開始手段／標的スタブ、検査手段、及び監視手段のインスタンス化を可能にするべきである。
【０１３５】
刺激は、モジュール要素１４０２及び入力追跡手段１４２０に供給される。モジュール要素１４０２の出力は標的１４７０及び出力追跡手段１４６０に供給される。モジュール要素１４０２はまた、制御信号を受信するためなどのために、制御監視手段１４８０及び制御モジュール１４３０に接続されている。
【０１３６】
都合良くは、追跡手段、監視手段及び標的の殆どは、同一のモジュール要素グループ又は他のモジュール要素グループの様々なモジュール要素を試験するために使用されることができる。
【０１３７】
出力監視手段、追跡手段及び標的の数は、モジュール要素の出力ポート数（例えば、１又はＳ）に応じたものである。開始手段及び入力追跡手段の数は、モジュール要素の入力ポート数（例えば、１又はＭ）に応じたものである。
【０１３８】
図１４は、本発明の一実施形態に従った検証方法１５００を例示している。
【０１３９】
方法１５００は、モジュール要素グループを検証するために使用されることが可能なパラメータ検証環境を定める段階１５１０で開始する。
【０１４０】
例えば、Ｓ個のスレーブ及びデータバス幅ＤＢＷを有するエキスパンダを検証するため、テストベンチは、単一の開始手段スタブ、Ｓ個の標的スタブ、及び各々がデータバス幅ＤＢＷを有するＳ＋１個の標準的な監視手段及び検査手段、を組み込んだネットリストを生成する。さらに、テストベンチは上述の具体的なパラメータを有するエキスパンダ検査手段を組み込んでいる。単一の制御スタブ、制御監視手段、及び検査手段が配置される。
【０１４１】
段階１５１０に続くのは、該グループに属するモジュール要素のパラメータセットを受信する段階１５２０である。
【０１４２】
段階１５２０に続くのは、モジュール要素のパラメータに応じた検証環境を作り出す段階１５３０である。この環境は、追跡手段、監視手段、開始スタブ、標的スタブ等を含んでいる。
【０１４３】
段階１５３０に続くのは、段階１５３０の検証環境を用いてモジュール要素を検証する段階１５４０である。
【０１４４】
当業者は、添付の請求項に記載された本発明の意図及び範囲を逸脱することなく、ここで説明された実施形態の変形、変更、及び他の実現法に想到するであろう。従って、本発明は、以上の例示的な説明によって定められるものではなく、添付の特許請求の範囲によって定められるものである。
【図面の簡単な説明】
【０１４５】
【図１】本発明の一実施形態に従った相互接続のモジュール要素を例示する図である。
【図２】本発明の一実施形態に従った相互接続を例示する図である。
【図３】本発明の一実施形態に従った集積回路を例示する図である。
【図４】本発明の一実施形態に従ったエキスパンダを例示する図である。
【図５】本発明の一実施形態に従ったスプリッタを例示する図である。
【図６】本発明の一実施形態に従ったマルチプレクサ・アービタを例示する図である。
【図７】本発明の一実施形態に従ったクロックセパレータを例示する図である。
【図８】本発明の一実施形態に従ったバス幅適応化手段を例示する図である。
【図９】本発明の一実施形態に従った相互接続の設計方法を例示する図である。
【図１０】本発明の一実施形態に従った調停方法を例示する図である。
【図１１】本発明の一実施形態に従った相互接続グループの設計方法を例示する図である。
【図１２】本発明の一実施形態に従った検証プロセスを例示する図である。
【図１３】本発明の一実施形態に従ったテストベンチを例示する図である。
【図１４】本発明の一実施形態に従った検証方法を例示する図である。
【図１】
2009508201.tif 000003
【図２】
2009508201.tif 000004
【図３】
2009508201.tif 000005
【図４】
2009508201.tif 000006
【図５】
2009508201.tif 000007
【図６】
2009508201.tif 000008
【図７】
2009508201.tif 000009
【図８】
2009508201.tif 000010
【図９】
2009508201.tif 000011
【図１０】
2009508201.tif 000012
【図１１】
2009508201.tif 000013
【図１２】
2009508201.tif 000014
【図１３】
2009508201.tif 000015
【図１４】
2009508201.tif 000016
【手続補正書】
【提出日】平成20年6月3日(2008.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の入力ポート及び複数の出力ポートを有する相互接続であって、
複数のモジュール要素を有し、各モジュール要素は二地点間プロトコルに対応するように適応されており、少なくとも１つのモジュール要素はサンプリング回路及び迂回回路を有し、前記サンプリング回路は前記迂回回路によって選択的に迂回される、
ことを特徴とする相互接続。
【請求項２】
前記複数のモジュール要素はＭ個のエキスパンダを有し、異なるエキスパンダは異なるマスタに結合され、且つ各エキスパンダは並列にＳ個のアービタ及びマルチプレクサに結合されている、請求項１に記載の相互接続。
【請求項３】
前記選択的な迂回は、期待される当該相互接続のレイテンシ値に応じて行われる、請求項１又は２に記載の相互接続。
【請求項４】
前記モジュール要素は更にＳ個のスプリッタを有し、各スプリッタは該スプリッタに結合されたスレーブへのトランザクションを最適化するように適応されている、請求項１乃至３の何れか一項に記載の相互接続。
【請求項５】
前記モジュール要素は更にサンプリング手段を有する、請求項１乃至４の何れか一項に記載の相互接続。
【請求項６】
前記モジュール要素は更にサンプリング手段を有する、請求項１乃至５の何れか一項に記載の相互接続。
【国際調査報告】
2009508201.tif 000017
2009508201.tif 000018
2009508201.tif 000019