(57)【特許請求の範囲】
【請求項１】
送信モジュールと、
受信モジュールと、
マルチプレクサであり、
送信チャンネルのグループにおいて信号変化が検出され、かつ、
前記信号変化に応じて、前記マルチプレクサの出力が前記信号変化を生じているチャンネルへスイッチされる、
マルチプレクサと、を含み、
前記信号変化は、前記マルチプレクサの出力をデータファーストインファーストアウトバッファの出力と比較することによって検出される、
ダイナミックインターコネクト。
【請求項２】
前記マルチプレクサの出力は、少なくとも一つのＴＤＭサイクルに対して変化が生じている前記チャンネルに対してスイッチされる、
請求項１に記載のダイナミックインターコネクト。
【請求項３】
信号変化がないことに応じて、送信チャンネルの送信順序は、チャンネル番号によって与えられる、
請求項１に記載のダイナミックインターコネクト。
【請求項４】
専用コントロールバスが前記受信モジュールに対して送信され、かつ、
前記専用コントロールバスは現在の送信チャンネルをフラグ付けする、
請求項１に記載のダイナミックインターコネクト。
【請求項５】
前記受信モジュールのＴＤＭデマルチプレクサは、前記コントロールバス上のチャンネル情報を評価することによって、前記送信モジュールに対して同期化される、
請求項４に記載のダイナミックインターコネクト。
【請求項６】
送信コントロールモジュールは、データステーブル信号をディアサートすることによって、前記信号変化をフラグ付けする、
請求項１に記載のダイナミックインターコネクト。
【請求項７】
前記データステーブル信号は、前記受信モジュールに対するコントロールバス上に含まれている、
請求項６に記載のダイナミックインターコネクト。
【請求項８】
前記データステーブル信号のコンフィグレーションは、変化している信号が受信されて安定するまで次のクロックサイクルを遅らせる、
請求項６に記載のダイナミックインターコネクト。
【請求項９】
送信チャンネルのグループを決定するために、前記送信チャンネルのスイッチング周波数が分析される、
請求項１に記載のダイナミックインターコネクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、一般的に、時分割データ多重化（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｄａｔａ  ｍｕｌｔｉｐｌｅｘｉｎｇ）および送信に関する。より特定的には、本技術は、周波数認識の（ｆｒｅｑｕｅｎｃｙ  ａｗａｒｅ）機能を用いたダイナミックインターコネクト（ｄｙｎａｍｉｃ  ｉｎｔｅｒｃｏｎｎｅｃｔ）に関する。
【背景技術】
【０００２】
フィールドでプログラム可能なゲートアレイ（ＦＰＧＡ）の機能は、劇的に増大してきたが、一方で、ＦＰＧＡの入力／出力（Ｉ／Ｏ）ピンの数は安定して維持されている。複雑なチップデザインを正確にプロトタイプするためには、チップデザインをエミュレートするように数個のＦＰＧＡがリンクされ得る。ＦＰＧＡを使用してチップデザインをエミュレートすることにより、デザイナーは、意図するようなチップデザイン機能を確保することができる。一つのＦＰＧＡを使用することが望まれるが、しかしながら、デザインをエミュレートするために十分なＩ／Ｏピンを有していないことがある。対照的に、数個のＦＰＧＡを使用することは、プロトタイプの遅いスピードを結果として生じ得る。
【図面の簡単な説明】
【０００３】
【図１】図１は、４個の通信チャンネルを使用する送信モジュールと受信モジュールを含んでいるダイナミックインターコネクトを図示している。
【図２】図２は、信号変化検出のためのタイミングと送信順序の変更を説明している。
【図３】図３は、第１パーティションと第２パーティションにおいて実行しているチャンネルを用いたアプリケーションのブロック図である。
【図４】図４は、ランタイムダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。
【図５】図５は、周波数認識のダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。
【図６】図６には、本発明に従ったシステムオンチップ（ＳＯＣ）の実施例が描かれている。
【０００４】
類似のコンポーネントまたは機能を参照するように、明細書および図面の全体にわたり同一の番号が使用されている。１００のシリーズの番号は、図１において最初に見られる機能を参照し、２００のシリーズの番号は、図２において最初に見られる機能を参照する、等。
【発明を実施するための形態】
【０００５】
ＦＰＧＡの機能は、過去数年にわたり劇的に増大したが、一方、Ｉ／Ｏピンの数は安定して維持されている。ＦＰＧＡベースのエミュレーションまたはプロトタイピングプラットフォームについて、キャパシティ（ｃａｐａｃｉｔｙ）とＩ／Ｏピンの数との間の増加しているギャップが、ますます危機的になっている。Ｉ／Ｏピンの欠乏は、複数のＦＰＧＡにパーティション化されるデザインに対してデータ送信におけるボトルネックを導入し得る。
【０００６】
ここにおいて説明される実施例は、エミュレーションにおけるパーティショニング（ｐａｒｔｉｔｉｏｎｉｎｇ）およびプラットフォームのプロトタイピング（ｐｒｏｔｏｔｙｐｉｎｇ）を用いたダイナミックインターコネクトに向けたものである。いくつかの事例においては、ランタイム時分割多重化（ＴＭＤ）スキームは、ランタイムダイナミック多重化スキームを使用することによって、より効率的に２つのデバイス間での信号の送信ができるようにする。デバイスは、ＦＧＰＡであり得る。ランタイムスキームを通じて、時分割多重化データ接続について要求される送信時間は、送信信号を並列比較ユニット（ｐａｒａｌｌｅｌ  ｃｏｍｐａｒｅ  ｕｎｉｔ）へとグループ化すること、および、信号値が変化したグループに対して高い送信優先度を割り当てることによって最適化される。送り手（ｓｅｎｄｅｒ）は、受信チップに対して信号変化をフラグ付け（ｆｌａｇ）することができ、そして、受信チップは、変化信号がディアサート（ｄｅ−ａｓｓｅｒｔ）された後で通常オペレーションを続けることができる。さらに、受信チップは、変化なしの信号の受信においてはウェイト（ｗａｉｔ）しない。
【０００７】
本技術は、また、異なる信号グループのスイッチング特性をアカウントへと使用し、そして、ハードウェアプラットフォームの利用可能な物理的リンクをより良く利用するためにそれぞれのグループに対して異なるインターコネクトを選択する。ここにおいて使用されるように、スイッチング特性は、信号変化の周波数を参照する。さらに、ここにおいて使用されるように、インターコネクトの実施は、これらに限定されるわけではないが、異なるＴＤＭおよび要求される物理的リンクの異なる数量を含んでよい。
【０００８】
実施例において、信号のスイッチング周波数は、要求されるＴＤＭスキーマ（ｓｃｈｅｍａ）を計算するときに使用され得る。同一のアプリケーション周波数において実行されている信号は、グループ化され得る。そして、要求される周波数と要求されるインターコネクト幅の知識が、それぞれ個別のグループに対して最良にフィットする物理的リンクの数を計算するために使用され得る。それぞれのグループは、利用可能なリンク全数のうちほんの一部（ｆｒａｃｔｉｏｎ）を使用している。
【０００９】
図１は、４個の通信チャンネルを使用する送信モジュール１０２と受信モジュール１０４を含んでいるダイナミックインターコネクト１００を図示している。専用コントロールモジュール１０６は、送信されるべきチャンネルを選択する。この実施例においては、左側におけるｎ個のユーザ信号１０８が４つのチャンネル１１０Ａ、１１０Ｂ、１１０Ｃ、および１１０Ｄへと分割される。それぞれのチャンネル１１０Ａ、１１０Ｂ、１１０Ｃ、および１１０Ｄは、コントロールモジュール１０６によって同期された固定の多重化スキーム（ｆｉｘｅｄ  ｍｕｌｔｉｐｌｅｘｉｎｇ  ｓｃｈｅｍｅ）を処理する。
【００１０】
チャンネル１１０Ａといった、それぞれのチャンネル１１０について、ＴＤＭマルチプレクサ（ｍｕｌｔｉｐｌｅｘｅｒ）１１２が、ファーストインファーストアウト（ｆｉｒｓｔ  ｉｎ、ｆｉｒｓｔ  ｏｕｔ）バッファ１１４の出力と比較される。ＴＤＭマルチプレクサ１１２の出力をデータファーストインファーストアウト（ＦＩＦＩＯ）バッファ１１４の出力に対して比較することによって、信号変化が検出される。スタートシンク（ｓｔａｒｔ  ｓｙｎｃ）信号１１３は、それぞれのＴＤＭマルチプレクサがそれぞれのＦＰＧＡに対して同期化されたことを確保するように、ＴＤＭマルチプレクサ１１２を開始するために使用され得る。カウンタが、ＴＤＭマルチプレクサを同期化するためのメカニズムとして使用され得る。いくつかの事例においては、参照番号１１６でＸＯＲ操作を使用して、比較が生じる。１１１での信号変化検出は、出力を変化が検出されたチャンネルへスイッチする。このチャンネルは、次に、少なくとも一つの完全なＴＤＭサイクルのために選択される。送信のために一つのチャンネルが選択される場合、ＦＩＦＯ１１４の入力データが、実際の送信データである。そうでなければ、ＦＩＦＯ１１４の出力データが、ＦＩＦＯの入力へフィードバックされる。従って、ＦＩＦＯ１１４の入力は、古いＦＩＦＯ１１４データ、または、マルチプレクサ１１７から送信されたデータ、参照番号１１５で多重化されたもの、から選択し得る。ソースセレクト１２８は、正しいデータがＦＩＦＯ１１４へ差し戻されるように、マルチプレクサ１１５をコントロールするために使用される。
【００１１】
あらゆるチャンネルにおいて信号変化が検出されない場合、チャンネル番号により送信命令（ｔｒａｎｓｍｉｓｓｉｏｎ  ｏｒｄｅｒ）が与えられる。例えば、この実施例において、それぞれのチャンネルに対して要求される多重化ファクタ（ｍｕｌｔｉｐｌｅｘｉｎｇ  ｆａｃｔｏｒ）は、ＴＤＭ＝ｎ／４／（出力ピンの数）、である。いかなる場合でも、それぞれのチャンネルの出力は、別のマルチプレクサ１１７へ送付される。このマルチプレクサは、送信データ出力を受信モジュール１０４に対して渡す。
【００１２】
専用コントロールバス１１８は、コントロールとチャンネルデコードブロック１２０を通じて現在の通信チャンネルにフラグ付けしている受信モジュール１０４に対して送信される。いくつか事例において、コントロールバスは、マルチプレクサ１１７から受信モジュール１０４に対して送信されたデータの起点（ｏｒｉｇｉｎａｔｉｏｎ）を示している。受信ＴＤＭデマルチプレクサ（ｄｅ−ｍｕｌｔｉｐｌｅｘｅｒ）モジュール１２２は、コントロールバス１１８上のチャンネル情報を評価することによって、送信モジュール１０２に対して同期化される。いくつかの事例においては、チャンネル３から０へのスイッチングが受信ＴＤＭカウンタを同期化する。
【００１３】
マルチプレクサ１３０は、送信モジュール１０２から受信したチャンネルデータを分離化（ｄｅｍｕｌｔｉｐｌｅｘ）するために使用される。コントロールとチャンネルデコード１２０は、入力としてコントロール信号１１８を捉え、そして、チャンネル選択信号１３２を用いてマルチプレクサ１３０のチャンネルを選択するために、これを使用する。選択されたチャンネルは、次に、参照番号１３４で、データとして、受信モジュールから外へ送付される。
【００１４】
信号変化が検出される限り、送信コントロールモジュール１０６は、アプリケーションデザインに対して「データステーブル（”ｄａｔａ  ｓｔａｂｌｅ”）」信号１２６をディアサートすることによって、これをフラグ付けする。データステーブルは、変化が検出されていないことを示している。コンフィグレーション期間の後で、データステーブル信号はディアサートされてよい。この信号１２６は、受信モジュール１０４に対するコントロールバス１１８においても、同様に、含まれ得るものである。「データステーブル」アサーション（ａｓｓｅｒｔｉｏｎ）について概ねのディレイ（ｄｅｌａｙ）を設定することによって、次のアプリケーションクロックサイクルの実行が自動的に遅らせられ得る。ディレイは、全ての変化している信号が受信側へ成功裡に送信されたことが保証され、かつ、全ての信号が受信モジュール出力において安定しているまでである。
【００１５】
複雑なプロトタイピングまたはエミュレーションシステムにおいては、インターコネクト１００によって図示されるように、デザインは複数のＦＰＧＡの上に分割される。同期システム（ｓｙｎｃｒｏｎｏｕｓ  ｓｙｓｔｅｍ）のために、クロックエッジ（ｃｌｏｃｋ  ｅｄｇｅ）は、ストレージエレメントへの全ての入力信号が安定した後で発生する。このことは、デザインがフリップフロップ（Ｆｌｉｐ−Ｆｌｏｐ）境界において分割され得ないときに、問題を導き得る。これらの場合には、全てのアプリケーションデザインに対して実際に最も速いクロック期間を決定するために複数のチップにわたるパス分析（ｐａｔｈ  ａｎａｌｙｓｉｓ）が求められる。最悪ケースの信号パスによって判断されるものである。このパスは、複数のマルチプレクサおよびデマルチプレクサのセクションを含んでよい。
【００１６】
図１において説明されるダイナミックインターコネクトなしでは、計算された最悪ケースの信号ディレイに基づいて、デザインパフォーマンスは、いつでも遅いものである。ダイナミックインターコネクトを用いると、次のアプリケーションクロックエッジが動的にイネーブル（ｅｎａｂｌｅ）されるので、システムパフォーマンスは、より速い。最悪ケースのパス上で信号が変化する場合に限り、パフォーマンスが、ダイナミックインターコネクトを使用しないシステムにおけるものと同じ値にまで落ち得るものである。最悪ケースのパス上に信号変化を伴ってさえも、同一のインターコネクトモジュールに属している全てのチャンネルにおいて信号変化がない限り、デザインは我々の発明を用いてより速く実行され得るものである。
【００１７】
図２は、信号変化検出のためのタイミング２００と送信順序の変更を説明している。説明を容易にするために、図２は、４つのチャンネルを含んでいる。参照番号１１０Ａにおけるチャンネル０、参照番号１１０Ｂにおけるチャンネル１、参照番号１１０Ｃにおけるチャンネル２、および参照番号１１０Ｄにおけるチャンネル３、である。この実施例において、参照番号１１０Ａにおけるチャンネル０は最も高い優先度を有しており、参照番号１１０Ｂにおけるチャンネル１は２番目に高い優先度を有しており、参照番号１１０Ｃにおけるチャンネル２は３番目に高い優先度を有しており、そして、参照番号１１０Ｄにおけるチャンネル３は最も低い優先度を有している。優先度は、種々のデザインパラメータに基づいて割り当てられ得る。アプリケーション周波数、異なるＴＤＭ、要求される物理的リンクの異なる数量、等といったものである。
【００１８】
参照番号２０２において送信スロットが図示されている。それぞれのスロットは、所定の時点における送信のためのチャンネルスケジュールを示す番号を有している。送信スロットは、時間長のＴＤＭ期間である。参照番号２０４におけるデータ変化信号は、データにおいて変化がない場合にロー（ｌｏｗ）であり、かつ、送信データにおいて変化がある場合にハイ（ｈｉｇｈ）である。さらに、参照番号２０６におけるデータステーブル信号は、データが安定している場合にハイである。参照番号２０６におけるデータステーブル信号は、データが変化している場合にローであり、そして、最後のデータ変化の後で一定期間が過ぎるまではハイに戻らない。いくつかの事例において、一定期間は、コンフィグレーションディレイ（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｄｅｌａｙ）として参照される。
【００１９】
データ変化の前に、チャンネルスケジューラ（ｓｃｈｅｄｕｌｅｒ）は、ラウンドロビン（ｒｏｕｎｄ  ｒｏｂｉｎ）アルゴリズムといった、あらゆるアルゴリズムに従って送信のためのチャンネルを選択してよい。参照番号２０８における時間「Ａ」においては、参照番号１１０Ｃにおけるチャンネル２の入力が変化している。この変化は、参照番号２０６におけるデータステーブル信号を設定可能な時間（ｃｏｎｆｉｇｕｒａｂｌｅ  ｔｉｍｅ）についてディアサートし、そして、チャンネル２は次のスロットにおいて送信のためにマーク付けされる。設定可能な時間は、デザインによって実施されるあらゆる時間期間であってよい。上述のように、それぞれの送信スロットは、ＴＤＭ送信クロックサイクルを存続させる。参照番号１１０Ａにおけるチャンネル０のデータが参照番号１１０Ｃにおけるチャンネル２の直ぐ後で変化し、かつ、参照番号１１０Ａにおけるチャンネル０がより高い優先度を有しているので、参照番号１１０Ａにおけるチャンネル０が、参照番号１１０Ｃにおけるチャンネル２の前に次のタイムスロットにおいて送信のためにマーク付けされる。参照番号２１０における時間「Ｂ」においては、参照番号１１０Ｂにおけるチャンネル１のデータと参照番号１１０Ｄにおけるチャンネル３のデータが変化している。参照番号１１０Ｂにおけるチャンネル１は、より高い優先度を有しており、そして、参照番号１１０Ｄにおけるチャンネル３の前に、最初に送信される。参照番号１１０Ｄにおけるチャンネル３が送信された後で、チャンネルスケジューラは、ラウンドロビンアルゴリズムに戻る。時間「Ａ」において割り込みされて、チャンネル２を送信することによって継続するものである。データステーブル信号は、データ変化ディアサートの後で設定時間が経過したときにアサートされる。
【００２０】
参照番号２１２における時間「Ｃ」においては、参照番号１１０Ｄにおけるチャンネル３でのデータ入力が変化し、そして、次の送信スロットに対してスケジュールされる。他のデータ変化が存在しないので、参照番号１１０Ｄにおけるチャンネル３が送信され、かつ、設定可能時間が経過した後で、データステーブル信号が再びアサートされる。従って、アプリケーションデザインは、時間「Ａ」におけるよりもずっと速く実行を継続することができるであろう。
【００２１】
ダイナミックインターコネクトを通じて、送信チャンネルの数が設定可能である。信号値変化検出がそれぞれのチャンネルに対して適用され、そして、変化している信号を伴うチャンネルに対して信号送信が優先度付けされる。いくつかの実施例においては、送信から受信モジュールまで小さなコントロールバスが使用される。さらに、インターコネクトの送信側におけるロッキングメカニズム（ｌｏｃｋｉｎｇ  ｍｅｃｈａｎｉｓｍ）は、信号が変化している間に次のアプリケーションクロックエッジを防いでいる。全体に、ダイナミックインターコネクトは、通常のＴＤＭデマルチプレクサモジュールと比較して、受信側において非常に小さなオーバーヘッドを結果として生じる。加えて、いくつかの実施例において、全てのチャンネルについて送信データが変化しない場合に、アプリケーションデザインは、固定ＴＤＭスキームを使用して構成されたシステムよりも速く、チャンネル時間の数に至るまで実行することができよう。
【００２２】
図３は、第１パーティション３０４と第２パーティション３０６において実行しているチャンネルを用いたアプリケーション３０２のブロック図である。アプリケーション３０２は、異なるクロックドメインを判断するために分析され、そして、異なるドメインを実行しているアプリケーション３０２の信号は、それのクロックドメインに従ってグループ化または分割される。例えば、アプリケーションは、参照番号３０８における第１ＣＬＫ１ドメイン、および、参照番号３１０における第２ＣＬＫ２ドメインを含んでいる。説明を容易にするために、２つのクロックドメイン３０８と３１０が図示されている。しかしながら、あらゆる数のクロックドメインが使用され得る。
【００２３】
信号が分割される場合に、グループごとの信号の全体数量が決定される。この実施例においては、参照番号３１２において信号グループｎが存在し、そして、参照番号３１４において信号グループｍが存在する。参照番号３１２における信号グループｎは第１クロックドメイン３０８において実行し、一方で、参照番号３１４における信号グループｍは第２クロックドメイン３１０において実行する。
【００２４】
参照番号３１２における信号グループｎおよび参照番号３１４における信号グループｍのそれぞれに対して最適な時分割多重化（ＴＭＤ）ファクタを計算するために、システムの中で利用可能な物理的リンクの数が要求される。最適ＴＤＭは、ｆｍａｘとして参照されてよく、そして、アプリケーションにおける全てのクロックのうち最も高い周波数である。この実施例において、アプリケーションのクロックは、参照番号３０８における第１ＣＬＫ１ドメイン、および、参照番号３１０における第２ＣＬＫ２ドメインである。さらに、参照番号３１６においてパーティション３０４とパーティション３０６との間に物理的リンクの数が表されている。
【００２５】
これらのパラメータに基づいて、参照番号３１２における信号グループｎおよび参照番号３１４における信号グループｍのそれぞれに対する個別のＴＤＭファクタは、以下のように計算され得る。
【００２６】
ｎ’＝ｆ（ｎ、ｆ１、ｆｍａｘ、ｘ）
【００２７】
ｍ’＝ｆ（ｍ、ｆ２、ｆｍａｘ、ｘ）
【００２８】
ここで、ｎ’は、参照番号３１２における信号グループｎに対するＴＤＭファクタであり、かつ、信号グループｎ、物理的リンクｆ１上で実行している第１仮想リンクのためのアプリケーション周波数、最適ＴＤＭｆｍａｘ、および利用可能な物理的リンクｘの数、に係る関数である。同様に、ｍ’は、参照番号３１４における信号グループに対するＴＤＭファクタであり、かつ、信号グループｍ、物理的リンクｆ２上で実行している第２仮想リンクのためのアプリケーション周波数、最適ＴＤＭｆｍａｘ、および利用可能な物理的リンクｘの数、に係る関数である。
【００２９】
個別のＴＤＭファクタを計算することによって、より遅いアプリケーション周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのうちより小さな部分を使用することができる。しかし、それらのリンクに対してより高いＴＤＭファクタを有することによってこれを補償することができる。これらのリンクが、物理的リンクにわたる信号状態を得るためにより高いタイミングバジェット（ｔｉｍｉｎｇ  ｂｕｄｇｅｔ）を有しているので、このことが行われ得る。一方で、最も高いスイッチング周波数を伴う信号グループが、最も小さいＴＤＭファクタを使用するべきである。このことが、主にエミュレーションパフォーマンスを制限しているからである。
【００３０】
図４は、ランタイムダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。ブロック４０２においては、複数の送信信号が並列比較ユニット（ｐａｒａｌｌｅｌ  ｃｏｍｐａｒｅ  ｕｎｉｔ）の中にグループ化される。ブロック４０４においては、信号の送信順序が、並列比較ユニットの中で変化している信号値および送信優先度に応じて、動的に（ｄｙｎａｍｉｃａｌｌｙ）並列比較ユニットの中で決定される。いくつかの実施例においては、変化している信号に応じて、データステーブル信号が一定期間にディアサートされる。一定期間は、設定可能なタイムディレイであってよく、システムの特定のデザインに従って実施される。ブロック４０６においては、信号の送信順序に基づいて、送信のための信号がスケジュールされる。信号は、チャンネルスケジューラによって割り当てられた時間スロットであり得る。いくつかの事例において、時間スロットは、ＴＤＭ送信クロックサイクルの長さで継続する。
【００３１】
図５は、周波数認識（ｆｒｅｑｕｅｎｃｙ  ａｗａｒｅ）のダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。ブロック５０２においては、複数のクロックドメインに対してアプリケーションが分析される。ブロック５０４においては、複数の送信信号が、同じクロックドメインにおいて実行している数多くのグループの中へグループ化される。それぞれのグループ毎の信号の全体数量は、アプリケーション周波数、要求される周波数、または要求されるインターコネクト幅、を使用して計算され得る。もしくは、物理的リンクの数を計算するために、これらのあらゆる組み合わせが使用される。
【００３２】
以下の表は、周波数認識のダイナミックインターコネクトに係るいくつかの計算結果を示している。
【表１】
0006277279.tif 000002
【００３３】
第１の行はＮ−ｐｈｙｓｉｃａｌを示しており、リンクに対する利用可能な物理的ワイヤの全体数量である。ここにおいて使用されるように、リンクは、２つのＦＰＧＡ間のリンクであってよい。第２の行はｆ１であり、物理的リンク上で実行している第１仮想リンクに対するアプリケーション周波数を表している。第３の行はＮ１−ｖｉｒｔｕａｌであり、物理的リンク上で実行している第１仮想リンクのために要求される仮想ワイヤの数を示している。第４の行はｆ２であり、物理的リンク上で実行している第２仮想リンクに対するアプリケーション周波数を表している。第５の行はＮ２−ｖｉｒｔｕａｌであり、物理的リンク上で実行している第２仮想リンクのために要求される仮想ワイヤの数を示している。
【００３４】
「ＴＤＭｓｉｍｐｌｅ」行は、全ての仮想リンクが単に追加され、かつ、利用可能な物理的リンクを介してルート（ｒｏｕｔｅ）される場合に、従来の多重化方法を使用して結果として生じるＴＤＭを示している。「ＴＤＭｎｅｗ」行は、ここにおいて説明される本技術を用いた結果として生じるＴＤＭファクタを示しており、仮想リンクのスイッチング周波数を考慮に入れている。最後の行は、従来の多重化方法と比較して本技術に係るパフォーマンスの改善または増加を示している。
【００３５】
網掛け（ｙｅｌｌｏｗ  ｃｏｌｏｒｅｄ）フィールドは、ベースラインのシナリオ（＃１）と比較して、どの値が変化したかを示している。上記の表において示されるように、それぞれのＴＤＭファクタは、ここにおいて説明される技術に従った新たなＴＤＭファクタと同じ量のデータを転送するために、より多くのクロックサイクルを使用する。特に、第７のシナリオに対して、新たなＴＤＭファクタは、６０クロックサイクルを使用してＦＰＧＡ間でデータを転送する。一方で、従来のＴＤＭは、同じ量のデータを１１４クロックサイクルにおいて転送する。このようにして、データを転送するために使用されるクロックサイクルの数が、５４サイクルクロック削減されており、これは５０％に近い改善である。
【００３６】
次に図６に移ると、本発明に従ったシステムオンチップ（ＳＯＣ）の実施例が描かれている。特定の説明的な実施例として、ＳＯＣ６００はユーザ装置（ｕｓｅｒ  ｅｑｕｉｐｍｅｎｔ、ＵＥ）の中に含まれている。一つの実施例において、ＵＥは、通信のためにエンドユーザによって使用されるべきあらゆるデバイスを参照している。ハンドヘルドフォン、スマートフォン、タブレット、ウルトラシン（ｕｌｔｒｅ−ｔｈｉｎ）ノートブック、ブロードバンドアダプタ付ノートブック、または、あらゆる他の同様な通信デバイス、といったものである。しばしばＵＥは基地局（ｂａｓｅ  ｓｔａｔｉｏｎ）またはノードに対して接続し、本質的に、ＧＳＭ（登録商標）ネットワークにおけるモバイルステーション（ＭＳ）に対して潜在的に対応している。
【００３７】
ここで、ＳＯＣ６００は、２つのコア６０６と６０７を有している。上記と同様に、コア６０６と６０７は、インストラクションセットアーキテクチャに従ってよい。Ｉｎｔｅｌ（Ｒ）Ａｒｃｈｉｔｅｃｔｕｒｅ  ＣｏｒｅＴＭベースプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ、Ｉｎｃ．（ＡＭＤ）プロセッサ、ＭＩＰＳベースプロセッサ、ＡＲＭベースプロセッサデザイン、または、それらのカスタマーといったものであり、そのライセンシーまたはアダプター（ａｄｏｐｔｅｒ）も同様である。コア６０６と６０７は、システム６００の他のパーツと通信するために、バスインターフェイスユニット６０９とＬ２キャッシュ６１０に関連するキャッシュコントロール６０８に対して接続されている。インターコネクト６１０は、オンチップ（ｏｎ−ｃｈｉｐ）インターコネクトを含んでいる。ＩＯＳＦ、ＡＭＢＡ、または、上記の他のインターコネクト、といったものであり、上記の発明の一つまたはそれ以上の態様を実施する可能性のあるものである。
【００３８】
インターフェイス６１０は、他のコンポーネントに対する通信チャンネルを提供する。ＳＩＭカードを用いたインターフェイスに対するＳｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ（ＳＩＭ）６３０、ＳＯＣ６００をイニシャライズおよびブートするためのコア６０６と６０７による実行のためのブートコードを保持するブートＲＯＭ６３５、外部メモリ（例えば、ＤＲＡＭ６６０）とインターフェイスするためのＳＤＲＡＭコントローラ６４０、不揮発性メモリ（例えば、フラッシュ６６５）とインターフェイスするためのフラッシュコントローラ６４５、周辺機器とインターフェイスするためのペリフェラルコントロールＱ１  ６５０（例えば、シリアルペリフェラルインターフェイス）、入力（例えば、タッチ可能入力）を表示かつ受信するためのビデオコーデック６２０とビデオインターフェイス６２５、グラフィクス関連の計算を実行するためのＧＰＵ６１５、等といったものである。これらのインターフェイスのうちあらゆるものはここにおいて説明される本発明の態様を包含し得るものである。
【００３９】
加えて、システムは、ブルートゥース（登録商標）モジュール６７０、３Ｇモデム６７５、ＧＰＳ６８０、およびＷｉＦｉ６８５といった、通信のための周辺機器を示している。上述のように、ＵＥは、通信のための無線（ｒａｄｉｏ）を含んでいる。結果として、これらのペリフェラル通信モジュールは、必ずしも全てを要しない。しかしながら、ＵＥの中に、外部通信のためのいくつかの形式の無線が含まれるべきものである。
【００４０】
実施例１
【００４１】
ここにおいては、ダイナミックインターコネクトが説明される。ダイナミックインターコネクトは、通信モジュール、受信モジュール、およびマルチプレクサを含んでいる。信号変化が送信チャンネルのグループにおいて検出され、そして、信号変化に応じて、マルチプレクサの出力が変化を生じているチャンネルへスイッチされる。
【００４２】
信号変化は、マルチプレクサの出力をデータファーストインファーストアウトバッファの出力と比較することによって検出され得る。マルチプレクサの出力は、少なくとも一つのＴＤＭサイクルに対して変化が生じているチャンネルに対してスイッチされてよい。さらに、信号変化がないことに応じて、送信チャンネルの送信順序は、チャンネル番号によって与えられてよい。専用コントロールバスは、受信モジュールに対して送信されてよく、そして、専用コントロールバスは、現在の送信チャンネルをフラグ付けする。受信モジュールのＴＤＭマルチプレクサは、コントロールバス上のチャンネル情報を評価することによって送信モジュールに対して同期化されてよい。送信コントロールモジュールは、データステーブル信号をディアサートすることによって信号変化をフラグ付けする。加えて、データステーブル信号は、受信モジュールに対するコントロールバス上に含まれ得る。データステーブル信号のコンフィグレーションは、変化している信号が受信されて安定するまで次のクロックサイクルを遅らせてよく、そして、送信チャンネルのグループを決定するために送信チャンネルのスイッチング周波数が分析される。
【００４３】
実施例２
【００４４】
ここにおいては、ランタイムダイナミック多重化スキームが説明される。本方法は、複数の送信信号を並列比較ユニットへとグループ化すること、および、並列比較グループと送信優先度の中で変化している信号に応じて、並列比較ユニットの中で動的に信号の送信順序を決定することを含んでいる。本方法は、また、信号の送信順序に基づいて、送信のための信号をスケジュールすることも含んでいる。
【００４５】
データステーブル信号は、変化している信号値に応じた一定期間ディアサートされてよく、そして、一定期間は設定可能な時間遅延であってよい。信号は、信号の送信順序において送信のためのスロットに割り当てられ得る。そして、それぞれのスロットは、ＴＤＭ送信クロックサイクル続く。データステーブル信号は、信号値の変化から設定時間が経過した後でアサートされ得る。
【００４６】
実施例３
【００４７】
ここにおいては、周波数認識のダイナミックインターコネクトが説明される。周波数認識のダイナミックインターコネクトは、送信モジュール、受信モジュール、およびマルチプレクサを含んでいる。信号変化が、送信チャンネルの複数のグループにおいて検出される。アプリケーション周波数によってグループ化されたものである。信号変化に応じて、マルチプレクサの出力は、数多くの物理的リンクを使用して、変化が生じているチャンネルへスイッチされる。
【００４８】
少なくともアプリケーション周波数、要求される周波数、またはインターコネクト幅、もしくは、それらのあらゆる組み合わせが、物理的リンクの数を計算するために使用され得る。送信チャンネルのそれぞれのグループは、利用可能なリンク全数のうちほんの一部を使用し得る。さらに、複数の仮想リンクの合計は、異なるパーティションとデバイス間で利用可能な物理的リンクにわたりルートされ得る。複数の送信チャンネルのグループは、複数の異なるクロックドメインにわたりアプリケーション周波数によってグループ化され得る。
【００４９】
実施例４
【００５０】
ここにおいては、周波数認識のダイナミック多重化スキームのための方法が説明される。本方法は、複数のクロックドメインに対するアプリケーションを分析すること、および、複数の送信信号を同一のクロックドメイン上で実行されている数多くのグループの中へとグループ化することを含んでいる。
【００５１】
それぞれのグループ毎の信号の総数量は、アプリケーション周波数、要求される周波数、または要求されるインターコネクト幅を使用して計算され得る。もしくは、これらのあらゆる組み合わせが、物理的リンクの数を計算するために使用される。それぞれの周波数グループに対する最適な時分割多重化ファクタは、物理的リンクおよび他のインターコネクト実施の数に基づいて計算されてよい。より遅い周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのより少ない部分を使用し、そして、それらのリンクに対してより高い時分割多重化ファクタを有し得る。より高い周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのより大きい部分を使用し、そして、それらのリンクに対してより低い時分割多重化ファクタを有し得る。
【００５２】
本発明は、限定された数の実施例に関して説明されてきたが、当業者であれば、そこから数多くの変更および変形を正しく理解するであろう。添付の請求項は、そうした変更および変形の全てを、本発明の真の精神および範囲内のものとしてカバーする、ということが意図されている。
【００５３】
デザインは、種々のステージを通過してよい。創作からシミュレーション、製作までである。デザインを表わすデータは、数多くの方法においてデザインを表し得る。最初に、シミュレーションにおいて役に立つように、ハードウェアが、ハードウェア記述言語または別の機能性記述言語を使用して表わされ得る。加えて、デザインプロセスのいくつかのステージにおいて、ロジック及び/又はトランジスタゲートを用いた回路レベルモデルが作成され得る。さらに、大部分のデザインは、あるステージで、ハードウェアモデルにおける種々のデバイスの物理的配置を表しているデータのレベルに到達する。従来の半導体製造技術が使用される事例において。ハードウェアを表しているデータは、集積回路を生成するために使用されるマスクのための異なるマスクレイヤにおける種々の機能の存在または不存在を規定しているデータであり得る。デザインのあらゆる表現において、データは、あらゆる形態のマシンで読取り可能な媒体の中に保管されてよい。メモリ、もしくは、ディスクといった磁気または光ストレージは、光または電波変調を介して送信された情報、または、そうでなければ、そうした情報を送信するために生成された情報を保管するためのマシンで読取り可能な媒体であり得る。コードまたはデザインを示している又は伝送している電気的搬送波が送信される場合、電気信号のコピー、バッファリング、または、再送信が実行される限度において、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、少なくとも一時的に、有形の、マシンで読取り可能な媒体に、搬送波の中にエンコードされた情報といった、本発明の実施例に係る技術を具現化しているアーティクル（ａｒｔｉｃｌｅ）を保管し得る。
【００５４】
ここにおいて使用されるモジュールは、ハードウェア、ソフトウェア、及び/又は、ファームウェアのあらゆる組み合わせを参照する。例として、モジュールは、マイクロコントローラといった、一時的でない媒体と関連付けされたハードウェアを含み、マイクロコントローラによって実行されるように適合されたコードを保管する。従って、モジュールに対する参照は、一つの実施例においては、ハードウェアを参照する。一時的でない媒体において保持されるべきコードを認識及び/又は実行するように特別に構成されているものである。さらに、別の実施例において、モジュールの使用は、コードを含んでいる一時的でない媒体を参照する。既定のオペレーションを実施するためにマイクロコントローラによって実行されるように特別に構成されているものである。そして、推測できるように、さらに別の実施例において、用語モジュールは（この例において）、マイクロコントローラと一時的でない媒体の組み合わせを参照し得る。分離したものとして示されるモジュール境界は、しばしば、一般に変動し、かつ、潜在的にオーバーラップする。例えば、第１および第２モジュールは、ハードウェア、ソフトウェア、ファームウェア、または、それらの組み合わせを共有してよく、一方で、いくつかの独立したハードウェア、ソフトウェア、または、ファームウェアを潜在的に維持している。一つの実施例において、用語ロジックの使用は、トランジスタ、抵抗、といったハードウェア、または、プログラム可能なロジックデバイスといった、他のハードウェア、を含んでいる。
【００５５】
フレーズ「ために（”ｔｏ”）」または「ために構成されている（”ｃｏｎｆｉｇｕｒｅｄ  ｔｏ”）」は、一つの実施例においては、指示または決定されたタスクを実行するための装置、ハードウェア、ロジック、またはエレメントを、配置すること、一緒に置くこと、製造すること、売却をオファーすること、取り込むこと、及び/又は、デザインすることを参照する。この例においては、それらの動作していない装置またはエレメントは、上記の指示されたタスクを実行するためにデザイン、結合、及び/又は、そうでなければインターコネクトされる場合には、いまだに、指示されたタスクを実行する「ために構成されている」ものである。純粋に説明的な実施例として、ロジックゲートは、オペレーションの最中に０または１を提供し得る。しかし、クロックに対してイネーブル（ｅｎａｂｌｅ）信号を提供する「ために構成されている」ロジックゲートは、１または０を提供し得る全ての潜在的なロジックゲートを含むわけではない。代わりに、ロジックゲートは、いくつかの方法で、オペレーションの最中に１または０の出力がクロックをイネーブルするように結合されたものである。用語「ために構成されている」の使用は、オペレーションを要しないことに再び留意する。しかし、代わりに、装置、ハードウェア、及び/又は、エレメントの潜在的状態に注目する。潜在的状態において、装置、ハードウェア、及び/又はエレメントは、装置、ハードウェア、及び/又はエレメントが動作しているときの特定のタスクを実行するようにデザインされている。
【００５６】
さらに、フレーズ「可能な（”ｃａｐａｂｌｅ  ｏｆ／ｔｏ”）」及び/又は「動作可能な（”ｏｐｅｒａｂｌｅ  ｔｏ”）」は、一つの実施例において、装置、ロジック、ハードウェア、及び/又は、エレメントを特定されたやり方で使えるようにするようにデザインされた、いくつかの装置、ロジック、ハードウェア、及び/又は、エレメントを参照する。上述のように、可能な、または、動作可能な、の使用は、一つの実施例においては、装置、ロジック、ハードウェア、及び/又は、エレメントの潜在的な状態を参照する。その状態では、装置、ロジック、ハードウェア、及び/又は、エレメントは動作していないが、特定されたやり方で装置が使えるようにするようにデザインされている。
【００５７】
値（ｖａｌｕｅ）は、ここにおいて使用されるように、数、状態、論理状態、またはバイナリ論理状態の既知の表現を含んでいる。しばしば、論理レベル、ロジック値、または論理値の使用は、また、１および０としても参照される。単純にバイナリ論理状態を表わすものである。例えば、１はハイ（ｈｉｇｈ）論理レベルを参照し、かつ、０はロー（ｌｏｗ）論理レベルを参照する。一つの実施例において、トランジスタまたはフラッシュセルといった、ストレージセルは、一つの論理値または複数の論理値を保持することが可能である。しかしながら、コンピュータシステムにおける値の他の表現が使用されてきた。例えば、１０進数の１０は、また、バイナリ値の１０１０および１６進数のＡとしても表現され得る。従って、値は、コンピュータシステムにおいて保持されることが可能な情報に係るアルゴリズム表現を含んでいる。
【００５８】
さらに、状態（ｓｔａｔｅ）は、値または値に係る部分によって表現され得る。例として、論理的１といった、第１の値は、デフォルトまたは初期状態を表してよく、一方で、論理的０といった、第２の値は、デフォルトでない状態を表してよい。加えて、用語リセットおよびセットは、一つの実施例において、デフォルトおよびアップデートされた値又は状態を、それぞれに参照している。例えば、デフォルト値は、潜在的にハイ論理値、つまりリセット、を含み、一方で、アップデートされた値は、潜在的にロー論理値、つまりセット、を含んでいる。値のあらゆる組み合わせは、あらゆる数の状態を表わすために使用され得ることに留意する。
【００５９】
上記に明らかにされた方法、ハードウェア、ソフトウェア、ファームウェア、またはコードの実施例は、マシンでアクセス可能、マシンで読取り可能、コンピュータでアクセス可能、または、コンピュータで読取り可能な媒体上に保管された、処理エレメントによって実行されるインストラクションまたはコードを介して実施されてよい。一時的でないマシンでアクセス可能／読取り可能な媒体は、コンピュータまたは電子システムといった、マシンによって読取り可能な形式において情報を提供する（つまり、保管及び/又は送信する）あらゆるメカニズムを含んでいる。例えば、一時的でないマシンでアクセス可能な媒体は、スタティックＲＡＭ（ＳＲＡＭ）またはダイナミックＲＡＭ（ＤＲＡＭ）といったランダムアクセスメモリ、ＲＯＭ、磁気または光記録媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的（伝播された）信号（つまり、搬送波、赤外信号、デジタル信号）から受け取った情報を保持するためのストレージデバイスの他の形式、等を含んでいる。これらは、そこからの情報を受け取ることができる一時的でない媒体と区別されるものである。
【００６０】
本発明の実施例を実行するためのロジックをプログラムするために使用されるインストラクションは、ＤＲＡＭ、キャッシュ、フラッシュメモリ、または、他のストレージといった、システムにおけるメモリの中に保管されてよい。さらに、インストラクションは、ネットワークを介して、または、他のコンピュータで読取り可能な媒体を用いて配布され得る。従って、マシンで読取り可能な媒体は、マシン（例えば、コンピュータ）によって読取り可能な形式において情報を保管または送信するためのあらゆるメカニズムを含んでよい。これらに限定されるわけではないが、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク、リードオンリーメモリ（ＣＤ−ＲＯＭ）、および、光磁気ディスク、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可リードオンリーメモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可リードオンリーメモリ（ＥＥＰＲＯＭ）、磁気または光カード、フラッシュメモリ、もしくは、伝搬された信号（例えば、搬送波、赤外信号、デジタル信号）の電気、光、音響、または、他の形式を介してインターネットにわたり情報の送信において使用される、有形の、マシンで読取り可能な媒体、である。従って、コンピュータで読取り可能な媒体は、マシン（例えば、コンピュータ）によって読取り可能な形式においてインストラクションまたは情報を保管もしくは送信するために適切なあらゆるタイプの有形のマシンで読取り可能な媒体を含んでいる。
【００６１】
この明細書の全体を通じて「一つの実施例」または「一実施例」への言及は、実施例に関連して説明された特定の機能、構造、または特性が、本発明に係る少なくとも一つの実施例に含まれていることを意味する。従って、この明細書の全体を通じて様々な場所におけるフレーズ「一つの実施例」または「一実施例」の出現は、必ずしも同一の実施例を参照することを要しない。さらに、特定の機能、構造、または特性は、一つまたはそれ以上の実施例において、あらゆる適切なやり方で組み合わされてよい。
【００６２】
上記の明細書においては、特定の典型的な実施例に関して詳細な説明がなされてきた。しかしながら、添付の請求項において明らかにされるように、本発明のより広い精神および範囲から逸脱することなく、それに対して種々の変更または変形がなされ得ることが明らかであろう。明細書と図面は、従って、限定的な意味より、むしろ説明的な意味において理解されるべきである。さらに、実施例および他の典型的な言語の上記の使用は、必ずしも同一の実施例または同一の例を参照することを要しないが、異なる又は別の実施例を参照してよい。潜在的に、同一の実施例も同様である。
【図１】
0006277279.tif 000003
【図２】
0006277279.tif 000004
【図３】
0006277279.tif 000005
【図４】
0006277279.tif 000006
【図５】
0006277279.tif 000007
【図６】
0006277279.tif 000008