図面 (/)
課題・解決手段
概要
背景
フィールドでプログラム可能なゲートアレイ(FPGA)の機能は、劇的に増大してきたが、一方で、FPGAの入力/出力(I/O)ピンの数は安定して維持されている。複雑なチップデザインを正確にプロトタイプするためには、チップデザインをエミュレートするように数個のFPGAがリンクされ得る。FPGAを使用してチップデザインをエミュレートすることにより、デザイナーは、意図するようなチップデザイン機能を確保することができる。一つのFPGAを使用することが望まれるが、しかしながら、デザインをエミュレートするために十分なI/Oピンを有していないことがある。対照的に、数個のFPGAを使用することは、プロトタイプの遅いスピードを結果として生じ得る。
概要
ダイナミックインターコネクトが、ここにおいて説明される。ダイナミックインターコネクトは、送信モジュール、受信モジュール、およびマルチプレクサを含んでいる。送信チャンネルのグループにおいて信号変化が検出され、かつ、信号変化に応じて、マルチプレクサの出力が信号変化を生じているチャンネルへスイッチされる。
目的
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
送信モジュールと、受信モジュールと、マルチプレクサであり、送信チャンネルのグループにおいて信号変化が検出され、かつ、前記信号変化に応じて、前記マルチプレクサの出力が前記信号変化を生じているチャンネルへスイッチされる、ダイナミックインターコネクト。
請求項2
前記信号変化は、前記マルチプレクサの出力をデータファーストインファーストアウトバッファの出力と比較することによって検出される、請求項1に記載のダイナミックインターコネクト。
請求項3
請求項4
請求項5
請求項6
請求項7
送信コントロールモジュールは、データステーブル信号をディアサートすることによって、前記信号変化をフラグ付けする、請求項1に記載のダイナミックインターコネクト。
請求項8
前記データステーブル信号は、前記受信モジュールに対するコントロールバス上に含まれている、請求項7に記載のダイナミックインターコネクト。
請求項9
前記データステーブル信号のコンフィグレーションは、変化している信号が受信されて安定するまで次のクロックサイクルを遅らせる、請求項7に記載のダイナミックインターコネクト。
請求項10
請求項11
ランタイムダイナミック多重化スキームのための方法であって、複数の送信信号を並列比較ユニットへとグループ化するステップと、並列比較グループの中で変化している信号および送信優先度に応じて、動的に並列比較ユニットの中で前記信号の送信順序を決定するステップと、信号の前記送信順序に基づいて送信のための信号をスケジュールするステップと、を含む、方法。
請求項12
変化している信号値に応じて、データステーブル信号を一定期間ディアサートするステップ、を含む、請求項11に記載の方法。
請求項13
前記一定期間は、設定可能な時間遅延である、請求項12に記載の方法。
請求項14
請求項15
前記データステーブル信号は、信号値の変化から設定時間が経過した後でアサートされる、請求項13に記載の方法。
請求項16
送信モジュールと、受信モジュールと、マルチプレクサであり、アプリケーション周波数によってグループ化された複数の送信チャンネルのグループにおいて信号変化が検出され、かつ、前記信号変化に応じて、前記マルチプレクサの出力が、物理的リンクを使用して、前記信号変化を生じているチャンネルへスイッチされる、周波数認識のダイナミックインターコネクト。
請求項17
少なくともアプリケーション周波数、要求される周波数、または要求されるインターコネクト幅、もしくは、これらのあらゆる組み合わせが、物理的リンクの数を計算するために使用される、請求項16に記載の周波数認識のダイナミックインターコネクト。
請求項18
請求項19
請求項20
前記複数の送信チャンネルのグループは、複数の異なるクロックドメインにわたりアプリケーション周波数によってグループ化される、請求項16に記載の周波数認識のダイナミックインターコネクト。
請求項21
周波数認識のダイナミック多重化スキームのための方法であって、複数のクロックドメインについてアプリケーションを分析するステップと、複数の送信信号を、同一のクロックドメインにおいて実行されている数多くのグループの中へグループ化するステップと、を含む、方法。
請求項22
それぞれのグループ毎の信号の全体数量は、アプリケーション周波数、要求される周波数、または、要求されるインターコネクト幅を使用して計算され、もしくは、物理的リンクの数量を計算するために、これらのあらゆる組み合わせが使用される、請求項21に記載の方法。
請求項23
請求項24
請求項25
より遅い周波数において実行している信号グループは、リンクに対してより高い時分割多重化ファクタを有する、請求項21に記載の方法。
請求項26
より高い周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのより大きな部分を使用する、請求項21に記載の方法。
請求項27
より高い周波数において実行している信号グループは、リンクに対してより低い時分割多重化ファクタを有する、請求項21に記載の方法。
技術分野
0001
本技術は、一般的に、時分割データ多重化(time division data multiplexing)および送信に関する。より特定的には、本技術は、周波数認識の(frequency aware)機能を用いたダイナミックインターコネクト(dynamic interconnect)に関する。
背景技術
0002
フィールドでプログラム可能なゲートアレイ(FPGA)の機能は、劇的に増大してきたが、一方で、FPGAの入力/出力(I/O)ピンの数は安定して維持されている。複雑なチップデザインを正確にプロトタイプするためには、チップデザインをエミュレートするように数個のFPGAがリンクされ得る。FPGAを使用してチップデザインをエミュレートすることにより、デザイナーは、意図するようなチップデザイン機能を確保することができる。一つのFPGAを使用することが望まれるが、しかしながら、デザインをエミュレートするために十分なI/Oピンを有していないことがある。対照的に、数個のFPGAを使用することは、プロトタイプの遅いスピードを結果として生じ得る。
図面の簡単な説明
0003
図1は、4個の通信チャンネルを使用する送信モジュールと受信モジュールを含んでいるダイナミックインターコネクトを図示している。
図2は、信号変化検出のためのタイミングと送信順序の変更を説明している。
図3は、第1パーティションと第2パーティションにおいて実行しているチャンネルを用いたアプリケーションのブロック図である。
図4は、ランタイムダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。
図5は、周波数認識のダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。
図6には、本発明に従ったシステムオンチップ(SOC)の実施例が描かれている。
0004
類似のコンポーネントまたは機能を参照するように、明細書および図面の全体にわたり同一の番号が使用されている。100のシリーズの番号は、図1において最初に見られる機能を参照し、200のシリーズの番号は、図2において最初に見られる機能を参照する、等。
実施例
0005
FPGAの機能は、過去数年にわたり劇的に増大したが、一方、I/Oピンの数は安定して維持されている。FPGAベースのエミュレーションまたはプロトタイピングプラットフォームについて、キャパシティ(capacity)とI/Oピンの数との間の増加しているギャップが、ますます危機的になっている。I/Oピンの欠乏は、複数のFPGAにパーティション化されるデザインに対してデータ送信におけるボトルネックを導入し得る。
0006
ここにおいて説明される実施例は、エミュレーションにおけるパーティショニング(partitioning)およびプラットフォームのプロトタイピング(prototyping)を用いたダイナミックインターコネクトに向けたものである。いくつかの事例においては、ランタイム時分割多重化(TMD)スキームは、ランタイムダイナミック多重化スキームを使用することによって、より効率的に2つのデバイス間での信号の送信ができるようにする。デバイスは、FGPAであり得る。ランタイムスキームを通じて、時分割多重化データ接続について要求される送信時間は、送信信号を並列比較ユニット(parallel compare unit)へとグループ化すること、および、信号値が変化したグループに対して高い送信優先度を割り当てることによって最適化される。送り手(sender)は、受信チップに対して信号変化をフラグ付け(flag)することができ、そして、受信チップは、変化信号がディアサート(de−assert)された後で通常オペレーションを続けることができる。さらに、受信チップは、変化なしの信号の受信においてはウェイト(wait)しない。
0007
本技術は、また、異なる信号グループのスイッチング特性をアカウントへと使用し、そして、ハードウェアプラットフォームの利用可能な物理的リンクをより良く利用するためにそれぞれのグループに対して異なるインターコネクトを選択する。ここにおいて使用されるように、スイッチング特性は、信号変化の周波数を参照する。さらに、ここにおいて使用されるように、インターコネクトの実施は、これらに限定されるわけではないが、異なるTDMおよび要求される物理的リンクの異なる数量を含んでよい。
0008
実施例において、信号のスイッチング周波数は、要求されるTDMスキーマ(schema)を計算するときに使用され得る。同一のアプリケーション周波数において実行されている信号は、グループ化され得る。そして、要求される周波数と要求されるインターコネクト幅の知識が、それぞれ個別のグループに対して最良にフィットする物理的リンクの数を計算するために使用され得る。それぞれのグループは、利用可能なリンク全数のうちほんの一部(fraction)を使用している。
0009
図1は、4個の通信チャンネルを使用する送信モジュール102と受信モジュール104を含んでいるダイナミックインターコネクト100を図示している。専用コントロールモジュール106は、送信されるべきチャンネルを選択する。この実施例においては、左側におけるn個のユーザ信号108が4つのチャンネル110A、110B、110C、および110Dへと分割される。それぞれのチャンネル110A、110B、110C、および110Dは、コントロールモジュール106によって同期された固定の多重化スキーム(fixed multiplexing scheme)を処理する。
0010
チャンネル110Aといった、それぞれのチャンネル110について、TDMマルチプレクサ(multiplexer)112が、ファーストインファーストアウト(first in、first out)バッファ114の出力と比較される。TDMマルチプレクサ112の出力をデータファーストインファーストアウト(FIFIO)バッファ114の出力に対して比較することによって、信号変化が検出される。スタートシンク(start sync)信号113は、それぞれのTDMマルチプレクサがそれぞれのFPGAに対して同期化されたことを確保するように、TDMマルチプレクサ112を開始するために使用され得る。カウンタが、TDMマルチプレクサを同期化するためのメカニズムとして使用され得る。いくつかの事例においては、参照番号116でXOR操作を使用して、比較が生じる。111での信号変化検出は、出力を変化が検出されたチャンネルへスイッチする。このチャンネルは、次に、少なくとも一つの完全なTDMサイクルのために選択される。送信のために一つのチャンネルが選択される場合、FIFO114の入力データが、実際の送信データである。そうでなければ、FIFO114の出力データが、FIFOの入力へフィードバックされる。従って、FIFO114の入力は、古いFIFO114データ、または、マルチプレクサ117から送信されたデータ、参照番号115で多重化されたもの、から選択し得る。ソースセレクト128は、正しいデータがFIFO114へ差し戻されるように、マルチプレクサ115をコントロールするために使用される。
0011
あらゆるチャンネルにおいて信号変化が検出されない場合、チャンネル番号により送信命令(transmission order)が与えられる。例えば、この実施例において、それぞれのチャンネルに対して要求される多重化ファクタ(multiplexing factor)は、TDM=n/4/(出力ピンの数)、である。いかなる場合でも、それぞれのチャンネルの出力は、別のマルチプレクサ117へ送付される。このマルチプレクサは、送信データ出力を受信モジュール104に対して渡す。
0012
専用コントロールバス118は、コントロールとチャンネルデコードブロック120を通じて現在の通信チャンネルにフラグ付けしている受信モジュール104に対して送信される。いくつか事例において、コントロールバスは、マルチプレクサ117から受信モジュール104に対して送信されたデータの起点(origination)を示している。受信TDMデマルチプレクサ(de−multiplexer)モジュール122は、コントロールバス118上のチャンネル情報を評価することによって、送信モジュール102に対して同期化される。いくつかの事例においては、チャンネル3から0へのスイッチングが受信TDMカウンタを同期化する。
0013
マルチプレクサ130は、送信モジュール102から受信したチャンネルデータを分離化(demultiplex)するために使用される。コントロールとチャンネルデコード120は、入力としてコントロール信号118を捉え、そして、チャンネル選択信号132を用いてマルチプレクサ130のチャンネルを選択するために、これを使用する。選択されたチャンネルは、次に、参照番号134で、データとして、受信モジュールから外へ送付される。
0014
信号変化が検出される限り、送信コントロールモジュール106は、アプリケーションデザインに対して「データステーブル(”data stable”)」信号126をディアサートすることによって、これをフラグ付けする。データステーブルは、変化が検出されていないことを示している。コンフィグレーション期間の後で、データステーブル信号はディアサートされてよい。この信号126は、受信モジュール104に対するコントロールバス118においても、同様に、含まれ得るものである。「データステーブル」アサーション(assertion)について概ねのディレイ(delay)を設定することによって、次のアプリケーションクロックサイクルの実行が自動的に遅らせられ得る。ディレイは、全ての変化している信号が受信側へ成功裡に送信されたことが保証され、かつ、全ての信号が受信モジュール出力において安定しているまでである。
0015
複雑なプロトタイピングまたはエミュレーションシステムにおいては、インターコネクト100によって図示されるように、デザインは複数のFPGAの上に分割される。同期システム(syncronous system)のために、クロックエッジ(clock edge)は、ストレージエレメントへの全ての入力信号が安定した後で発生する。このことは、デザインがフリップフロップ(Flip−Flop)境界において分割され得ないときに、問題を導き得る。これらの場合には、全てのアプリケーションデザインに対して実際に最も速いクロック期間を決定するために複数のチップにわたるパス分析(path analysis)が求められる。最悪ケースの信号パスによって判断されるものである。このパスは、複数のマルチプレクサおよびデマルチプレクサのセクションを含んでよい。
0016
図1において説明されるダイナミックインターコネクトなしでは、計算された最悪ケースの信号ディレイに基づいて、デザインパフォーマンスは、いつでも遅いものである。ダイナミックインターコネクトを用いると、次のアプリケーションクロックエッジが動的にイネーブル(enable)されるので、システムパフォーマンスは、より速い。最悪ケースのパス上で信号が変化する場合に限り、パフォーマンスが、ダイナミックインターコネクトを使用しないシステムにおけるものと同じ値にまで落ち得るものである。最悪ケースのパス上に信号変化を伴ってさえも、同一のインターコネクトモジュールに属している全てのチャンネルにおいて信号変化がない限り、デザインは我々の発明を用いてより速く実行され得るものである。
0017
図2は、信号変化検出のためのタイミング200と送信順序の変更を説明している。説明を容易にするために、図2は、4つのチャンネルを含んでいる。参照番号110Aにおけるチャンネル0、参照番号110Bにおけるチャンネル1、参照番号110Cにおけるチャンネル2、および参照番号110Dにおけるチャンネル3、である。この実施例において、参照番号110Aにおけるチャンネル0は最も高い優先度を有しており、参照番号110Bにおけるチャンネル1は2番目に高い優先度を有しており、参照番号110Cにおけるチャンネル2は3番目に高い優先度を有しており、そして、参照番号110Dにおけるチャンネル3は最も低い優先度を有している。優先度は、種々のデザインパラメータに基づいて割り当てられ得る。アプリケーション周波数、異なるTDM、要求される物理的リンクの異なる数量、等といったものである。
0018
参照番号202において送信スロットが図示されている。それぞれのスロットは、所定の時点における送信のためのチャンネルスケジュールを示す番号を有している。送信スロットは、時間長のTDM期間である。参照番号204におけるデータ変化信号は、データにおいて変化がない場合にロー(low)であり、かつ、送信データにおいて変化がある場合にハイ(high)である。さらに、参照番号206におけるデータステーブル信号は、データが安定している場合にハイである。参照番号206におけるデータステーブル信号は、データが変化している場合にローであり、そして、最後のデータ変化の後で一定期間が過ぎるまではハイに戻らない。いくつかの事例において、一定期間は、コンフィグレーションディレイ(configuration delay)として参照される。
0019
データ変化の前に、チャンネルスケジューラ(scheduler)は、ラウンドロビン(round robin)アルゴリズムといった、あらゆるアルゴリズムに従って送信のためのチャンネルを選択してよい。参照番号208における時間「A」においては、参照番号110Cにおけるチャンネル2の入力が変化している。この変化は、参照番号206におけるデータステーブル信号を設定可能な時間(configurable time)についてディアサートし、そして、チャンネル2は次のスロットにおいて送信のためにマーク付けされる。設定可能な時間は、デザインによって実施されるあらゆる時間期間であってよい。上述のように、それぞれの送信スロットは、TDM送信クロックサイクルを存続させる。参照番号110Aにおけるチャンネル0のデータが参照番号110Cにおけるチャンネル2の直ぐ後で変化し、かつ、参照番号110Aにおけるチャンネル0がより高い優先度を有しているので、参照番号110Aにおけるチャンネル0が、参照番号110Cにおけるチャンネル2の前に次のタイムスロットにおいて送信のためにマーク付けされる。参照番号210における時間「B」においては、参照番号110Bにおけるチャンネル1のデータと参照番号110Dにおけるチャンネル3のデータが変化している。参照番号110Bにおけるチャンネル1は、より高い優先度を有しており、そして、参照番号110Dにおけるチャンネル3の前に、最初に送信される。参照番号110Dにおけるチャンネル3が送信された後で、チャンネルスケジューラは、ラウンドロビンアルゴリズムに戻る。時間「A」において割り込みされて、チャンネル2を送信することによって継続するものである。データステーブル信号は、データ変化ディアサートの後で設定時間が経過したときにアサートされる。
0020
参照番号212における時間「C」においては、参照番号110Dにおけるチャンネル3でのデータ入力が変化し、そして、次の送信スロットに対してスケジュールされる。他のデータ変化が存在しないので、参照番号110Dにおけるチャンネル3が送信され、かつ、設定可能時間が経過した後で、データステーブル信号が再びアサートされる。従って、アプリケーションデザインは、時間「A」におけるよりもずっと速く実行を継続することができるであろう。
0021
ダイナミックインターコネクトを通じて、送信チャンネルの数が設定可能である。信号値変化検出がそれぞれのチャンネルに対して適用され、そして、変化している信号を伴うチャンネルに対して信号送信が優先度付けされる。いくつかの実施例においては、送信から受信モジュールまで小さなコントロールバスが使用される。さらに、インターコネクトの送信側におけるロッキングメカニズム(locking mechanism)は、信号が変化している間に次のアプリケーションクロックエッジを防いでいる。全体に、ダイナミックインターコネクトは、通常のTDMデマルチプレクサモジュールと比較して、受信側において非常に小さなオーバーヘッドを結果として生じる。加えて、いくつかの実施例において、全てのチャンネルについて送信データが変化しない場合に、アプリケーションデザインは、固定TDMスキームを使用して構成されたシステムよりも速く、チャンネル時間の数に至るまで実行することができよう。
0022
図3は、第1パーティション304と第2パーティション306において実行しているチャンネルを用いたアプリケーション302のブロック図である。アプリケーション302は、異なるクロックドメインを判断するために分析され、そして、異なるドメインを実行しているアプリケーション302の信号は、それのクロックドメインに従ってグループ化または分割される。例えば、アプリケーションは、参照番号308における第1CLK1ドメイン、および、参照番号310における第2CLK2ドメインを含んでいる。説明を容易にするために、2つのクロックドメイン308と310が図示されている。しかしながら、あらゆる数のクロックドメインが使用され得る。
0023
信号が分割される場合に、グループごとの信号の全体数量が決定される。この実施例においては、参照番号312において信号グループnが存在し、そして、参照番号314において信号グループmが存在する。参照番号312における信号グループnは第1クロックドメイン308において実行し、一方で、参照番号314における信号グループmは第2クロックドメイン310において実行する。
0024
参照番号312における信号グループnおよび参照番号314における信号グループmのそれぞれに対して最適な時分割多重化(TMD)ファクタを計算するために、システムの中で利用可能な物理的リンクの数が要求される。最適TDMは、fmaxとして参照されてよく、そして、アプリケーションにおける全てのクロックのうち最も高い周波数である。この実施例において、アプリケーションのクロックは、参照番号308における第1CLK1ドメイン、および、参照番号310における第2CLK2ドメインである。さらに、参照番号316においてパーティション304とパーティション306との間に物理的リンクの数が表されている。
0025
これらのパラメータに基づいて、参照番号312における信号グループnおよび参照番号314における信号グループmのそれぞれに対する個別のTDMファクタは、以下のように計算され得る。
0026
n’=f(n、f1、fmax、x)
0027
m’=f(m、f2、fmax、x)
0028
ここで、n’は、参照番号312における信号グループnに対するTDMファクタであり、かつ、信号グループn、物理的リンクf1上で実行している第1仮想リンクのためのアプリケーション周波数、最適TDMfmax、および利用可能な物理的リンクxの数、に係る関数である。同様に、m’は、参照番号314における信号グループに対するTDMファクタであり、かつ、信号グループm、物理的リンクf2上で実行している第2仮想リンクのためのアプリケーション周波数、最適TDMfmax、および利用可能な物理的リンクxの数、に係る関数である。
0029
個別のTDMファクタを計算することによって、より遅いアプリケーション周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのうちより小さな部分を使用することができる。しかし、それらのリンクに対してより高いTDMファクタを有することによってこれを補償することができる。これらのリンクが、物理的リンクにわたる信号状態を得るためにより高いタイミングバジェット(timing budget)を有しているので、このことが行われ得る。一方で、最も高いスイッチング周波数を伴う信号グループが、最も小さいTDMファクタを使用するべきである。このことが、主にエミュレーションパフォーマンスを制限しているからである。
0030
図4は、ランタイムダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。ブロック402においては、複数の送信信号が並列比較ユニット(parallel compare unit)の中にグループ化される。ブロック404においては、信号の送信順序が、並列比較ユニットの中で変化している信号値および送信優先度に応じて、動的に(dynamically)並列比較ユニットの中で決定される。いくつかの実施例においては、変化している信号に応じて、データステーブル信号が一定期間にディアサートされる。一定期間は、設定可能なタイムディレイであってよく、システムの特定のデザインに従って実施される。ブロック406においては、信号の送信順序に基づいて、送信のための信号がスケジュールされる。信号は、チャンネルスケジューラによって割り当てられた時間スロットであり得る。いくつかの事例において、時間スロットは、TDM送信クロックサイクルの長さで継続する。
0031
図5は、周波数認識(frequency aware)のダイナミック多重化スキームのための方法を説明するプロセスフローチャートである。ブロック502においては、複数のクロックドメインに対してアプリケーションが分析される。ブロック504においては、複数の送信信号が、同じクロックドメインにおいて実行している数多くのグループの中へグループ化される。それぞれのグループ毎の信号の全体数量は、アプリケーション周波数、要求される周波数、または要求されるインターコネクト幅、を使用して計算され得る。もしくは、物理的リンクの数を計算するために、これらのあらゆる組み合わせが使用される。
0032
以下の表は、周波数認識のダイナミックインターコネクトに係るいくつかの計算結果を示している。
0033
第1の行はN−physicalを示しており、リンクに対する利用可能な物理的ワイヤの全体数量である。ここにおいて使用されるように、リンクは、2つのFPGA間のリンクであってよい。第2の行はf1であり、物理的リンク上で実行している第1仮想リンクに対するアプリケーション周波数を表している。第3の行はN1−virtualであり、物理的リンク上で実行している第1仮想リンクのために要求される仮想ワイヤの数を示している。第4の行はf2であり、物理的リンク上で実行している第2仮想リンクに対するアプリケーション周波数を表している。第5の行はN2−virtualであり、物理的リンク上で実行している第2仮想リンクのために要求される仮想ワイヤの数を示している。
0034
「TDMsimple」行は、全ての仮想リンクが単に追加され、かつ、利用可能な物理的リンクを介してルート(route)される場合に、従来の多重化方法を使用して結果として生じるTDMを示している。「TDMnew」行は、ここにおいて説明される本技術を用いた結果として生じるTDMファクタを示しており、仮想リンクのスイッチング周波数を考慮に入れている。最後の行は、従来の多重化方法と比較して本技術に係るパフォーマンスの改善または増加を示している。
0035
網掛け(yellow colored)フィールドは、ベースラインのシナリオ(#1)と比較して、どの値が変化したかを示している。上記の表において示されるように、それぞれのTDMファクタは、ここにおいて説明される技術に従った新たなTDMファクタと同じ量のデータを転送するために、より多くのクロックサイクルを使用する。特に、第7のシナリオに対して、新たなTDMファクタは、60クロックサイクルを使用してFPGA間でデータを転送する。一方で、従来のTDMは、同じ量のデータを114クロックサイクルにおいて転送する。このようにして、データを転送するために使用されるクロックサイクルの数が、54サイクルクロック削減されており、これは50%に近い改善である。
0036
次に図6に移ると、本発明に従ったシステムオンチップ(SOC)の実施例が描かれている。特定の説明的な実施例として、SOC600はユーザ装置(user equipment、UE)の中に含まれている。一つの実施例において、UEは、通信のためにエンドユーザによって使用されるべきあらゆるデバイスを参照している。ハンドヘルドフォン、スマートフォン、タブレット、ウルトラシン(ultre−thin)ノートブック、ブロードバンドアダプタ付ノートブック、または、あらゆる他の同様な通信デバイス、といったものである。しばしばUEは基地局(base station)またはノードに対して接続し、本質的に、GSM(登録商標)ネットワークにおけるモバイルステーション(MS)に対して潜在的に対応している。
0037
ここで、SOC600は、2つのコア606と607を有している。上記と同様に、コア606と607は、インストラクションセットアーキテクチャに従ってよい。Intel(R)Architecture CoreTMベースプロセッサ、Advanced Micro Devices、Inc.(AMD)プロセッサ、MIPSベースプロセッサ、ARMベースプロセッサデザイン、または、それらのカスタマーといったものであり、そのライセンシーまたはアダプター(adopter)も同様である。コア606と607は、システム600の他のパーツと通信するために、バスインターフェイスユニット609とL2キャッシュ610に関連するキャッシュコントロール608に対して接続されている。インターコネクト610は、オンチップ(on−chip)インターコネクトを含んでいる。IOSF、AMBA、または、上記の他のインターコネクト、といったものであり、上記の発明の一つまたはそれ以上の態様を実施する可能性のあるものである。
0038
インターフェイス610は、他のコンポーネントに対する通信チャンネルを提供する。SIMカードを用いたインターフェイスに対するSubscriber Identity Module(SIM)630、SOC600をイニシャライズおよびブートするためのコア606と607による実行のためのブートコードを保持するブートROM635、外部メモリ(例えば、DRAM660)とインターフェイスするためのSDRAMコントローラ640、不揮発性メモリ(例えば、フラッシュ665)とインターフェイスするためのフラッシュコントローラ645、周辺機器とインターフェイスするためのペリフェラルコントロールQ1 650(例えば、シリアルペリフェラルインターフェイス)、入力(例えば、タッチ可能入力)を表示かつ受信するためのビデオコーデック620とビデオインターフェイス625、グラフィクス関連の計算を実行するためのGPU615、等といったものである。これらのインターフェイスのうちあらゆるものはここにおいて説明される本発明の態様を包含し得るものである。
0039
加えて、システムは、ブルートゥース(登録商標)モジュール670、3Gモデム675、GPS680、およびWiFi685といった、通信のための周辺機器を示している。上述のように、UEは、通信のための無線(radio)を含んでいる。結果として、これらのペリフェラル通信モジュールは、必ずしも全てを要しない。しかしながら、UEの中に、外部通信のためのいくつかの形式の無線が含まれるべきものである。
0040
実施例1
0041
ここにおいては、ダイナミックインターコネクトが説明される。ダイナミックインターコネクトは、通信モジュール、受信モジュール、およびマルチプレクサを含んでいる。信号変化が送信チャンネルのグループにおいて検出され、そして、信号変化に応じて、マルチプレクサの出力が変化を生じているチャンネルへスイッチされる。
0042
信号変化は、マルチプレクサの出力をデータファーストインファーストアウトバッファの出力と比較することによって検出され得る。マルチプレクサの出力は、少なくとも一つのTDMサイクルに対して変化が生じているチャンネルに対してスイッチされてよい。さらに、信号変化がないことに応じて、送信チャンネルの送信順序は、チャンネル番号によって与えられてよい。専用コントロールバスは、受信モジュールに対して送信されてよく、そして、専用コントロールバスは、現在の送信チャンネルをフラグ付けする。受信モジュールのTDMマルチプレクサは、コントロールバス上のチャンネル情報を評価することによって送信モジュールに対して同期化されてよい。送信コントロールモジュールは、データステーブル信号をディアサートすることによって信号変化をフラグ付けする。加えて、データステーブル信号は、受信モジュールに対するコントロールバス上に含まれ得る。データステーブル信号のコンフィグレーションは、変化している信号が受信されて安定するまで次のクロックサイクルを遅らせてよく、そして、送信チャンネルのグループを決定するために送信チャンネルのスイッチング周波数が分析される。
0043
実施例2
0044
ここにおいては、ランタイムダイナミック多重化スキームが説明される。本方法は、複数の送信信号を並列比較ユニットへとグループ化すること、および、並列比較グループと送信優先度の中で変化している信号に応じて、並列比較ユニットの中で動的に信号の送信順序を決定することを含んでいる。本方法は、また、信号の送信順序に基づいて、送信のための信号をスケジュールすることも含んでいる。
0045
データステーブル信号は、変化している信号値に応じた一定期間ディアサートされてよく、そして、一定期間は設定可能な時間遅延であってよい。信号は、信号の送信順序において送信のためのスロットに割り当てられ得る。そして、それぞれのスロットは、TDM送信クロックサイクル続く。データステーブル信号は、信号値の変化から設定時間が経過した後でアサートされ得る。
0046
実施例3
0047
ここにおいては、周波数認識のダイナミックインターコネクトが説明される。周波数認識のダイナミックインターコネクトは、送信モジュール、受信モジュール、およびマルチプレクサを含んでいる。信号変化が、送信チャンネルの複数のグループにおいて検出される。アプリケーション周波数によってグループ化されたものである。信号変化に応じて、マルチプレクサの出力は、数多くの物理的リンクを使用して、変化が生じているチャンネルへスイッチされる。
0048
少なくともアプリケーション周波数、要求される周波数、またはインターコネクト幅、もしくは、それらのあらゆる組み合わせが、物理的リンクの数を計算するために使用され得る。送信チャンネルのそれぞれのグループは、利用可能なリンク全数のうちほんの一部を使用し得る。さらに、複数の仮想リンクの合計は、異なるパーティションとデバイス間で利用可能な物理的リンクにわたりルートされ得る。複数の送信チャンネルのグループは、複数の異なるクロックドメインにわたりアプリケーション周波数によってグループ化され得る。
0049
実施例4
0050
ここにおいては、周波数認識のダイナミック多重化スキームのための方法が説明される。本方法は、複数のクロックドメインに対するアプリケーションを分析すること、および、複数の送信信号を同一のクロックドメイン上で実行されている数多くのグループの中へとグループ化することを含んでいる。
0051
それぞれのグループ毎の信号の総数量は、アプリケーション周波数、要求される周波数、または要求されるインターコネクト幅を使用して計算され得る。もしくは、これらのあらゆる組み合わせが、物理的リンクの数を計算するために使用される。それぞれの周波数グループに対する最適な時分割多重化ファクタは、物理的リンクおよび他のインターコネクト実施の数に基づいて計算されてよい。より遅い周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのより少ない部分を使用し、そして、それらのリンクに対してより高い時分割多重化ファクタを有し得る。より高い周波数において実行している信号グループは、パーティション間で利用可能な物理的リンクのより大きい部分を使用し、そして、それらのリンクに対してより低い時分割多重化ファクタを有し得る。
0052
本発明は、限定された数の実施例に関して説明されてきたが、当業者であれば、そこから数多くの変更および変形を正しく理解するであろう。添付の請求項は、そうした変更および変形の全てを、本発明の真の精神および範囲内のものとしてカバーする、ということが意図されている。
0053
デザインは、種々のステージを通過してよい。創作からシミュレーション、製作までである。デザインを表わすデータは、数多くの方法においてデザインを表し得る。最初に、シミュレーションにおいて役に立つように、ハードウェアが、ハードウェア記述言語または別の機能性記述言語を使用して表わされ得る。加えて、デザインプロセスのいくつかのステージにおいて、ロジック及び/又はトランジスタゲートを用いた回路レベルモデルが作成され得る。さらに、大部分のデザインは、あるステージで、ハードウェアモデルにおける種々のデバイスの物理的配置を表しているデータのレベルに到達する。従来の半導体製造技術が使用される事例において。ハードウェアを表しているデータは、集積回路を生成するために使用されるマスクのための異なるマスクレイヤにおける種々の機能の存在または不存在を規定しているデータであり得る。デザインのあらゆる表現において、データは、あらゆる形態のマシンで読取り可能な媒体の中に保管されてよい。メモリ、もしくは、ディスクといった磁気または光ストレージは、光または電波変調を介して送信された情報、または、そうでなければ、そうした情報を送信するために生成された情報を保管するためのマシンで読取り可能な媒体であり得る。コードまたはデザインを示している又は伝送している電気的搬送波が送信される場合、電気信号のコピー、バッファリング、または、再送信が実行される限度において、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、少なくとも一時的に、有形の、マシンで読取り可能な媒体に、搬送波の中にエンコードされた情報といった、本発明の実施例に係る技術を具現化しているアーティクル(article)を保管し得る。
0054
ここにおいて使用されるモジュールは、ハードウェア、ソフトウェア、及び/又は、ファームウェアのあらゆる組み合わせを参照する。例として、モジュールは、マイクロコントローラといった、一時的でない媒体と関連付けされたハードウェアを含み、マイクロコントローラによって実行されるように適合されたコードを保管する。従って、モジュールに対する参照は、一つの実施例においては、ハードウェアを参照する。一時的でない媒体において保持されるべきコードを認識及び/又は実行するように特別に構成されているものである。さらに、別の実施例において、モジュールの使用は、コードを含んでいる一時的でない媒体を参照する。既定のオペレーションを実施するためにマイクロコントローラによって実行されるように特別に構成されているものである。そして、推測できるように、さらに別の実施例において、用語モジュールは(この例において)、マイクロコントローラと一時的でない媒体の組み合わせを参照し得る。分離したものとして示されるモジュール境界は、しばしば、一般に変動し、かつ、潜在的にオーバーラップする。例えば、第1および第2モジュールは、ハードウェア、ソフトウェア、ファームウェア、または、それらの組み合わせを共有してよく、一方で、いくつかの独立したハードウェア、ソフトウェア、または、ファームウェアを潜在的に維持している。一つの実施例において、用語ロジックの使用は、トランジスタ、抵抗、といったハードウェア、または、プログラム可能なロジックデバイスといった、他のハードウェア、を含んでいる。
0055
フレーズ「ために(”to”)」または「ために構成されている(”configured to”)」は、一つの実施例においては、指示または決定されたタスクを実行するための装置、ハードウェア、ロジック、またはエレメントを、配置すること、一緒に置くこと、製造すること、売却をオファーすること、取り込むこと、及び/又は、デザインすることを参照する。この例においては、それらの動作していない装置またはエレメントは、上記の指示されたタスクを実行するためにデザイン、結合、及び/又は、そうでなければインターコネクトされる場合には、いまだに、指示されたタスクを実行する「ために構成されている」ものである。純粋に説明的な実施例として、ロジックゲートは、オペレーションの最中に0または1を提供し得る。しかし、クロックに対してイネーブル(enable)信号を提供する「ために構成されている」ロジックゲートは、1または0を提供し得る全ての潜在的なロジックゲートを含むわけではない。代わりに、ロジックゲートは、いくつかの方法で、オペレーションの最中に1または0の出力がクロックをイネーブルするように結合されたものである。用語「ために構成されている」の使用は、オペレーションを要しないことに再び留意する。しかし、代わりに、装置、ハードウェア、及び/又は、エレメントの潜在的状態に注目する。潜在的状態において、装置、ハードウェア、及び/又はエレメントは、装置、ハードウェア、及び/又はエレメントが動作しているときの特定のタスクを実行するようにデザインされている。
0056
さらに、フレーズ「可能な(”capable of/to”)」及び/又は「動作可能な(”operable to”)」は、一つの実施例において、装置、ロジック、ハードウェア、及び/又は、エレメントを特定されたやり方で使えるようにするようにデザインされた、いくつかの装置、ロジック、ハードウェア、及び/又は、エレメントを参照する。上述のように、可能な、または、動作可能な、の使用は、一つの実施例においては、装置、ロジック、ハードウェア、及び/又は、エレメントの潜在的な状態を参照する。その状態では、装置、ロジック、ハードウェア、及び/又は、エレメントは動作していないが、特定されたやり方で装置が使えるようにするようにデザインされている。
0057
値(value)は、ここにおいて使用されるように、数、状態、論理状態、またはバイナリ論理状態の既知の表現を含んでいる。しばしば、論理レベル、ロジック値、または論理値の使用は、また、1および0としても参照される。単純にバイナリ論理状態を表わすものである。例えば、1はハイ(high)論理レベルを参照し、かつ、0はロー(low)論理レベルを参照する。一つの実施例において、トランジスタまたはフラッシュセルといった、ストレージセルは、一つの論理値または複数の論理値を保持することが可能である。しかしながら、コンピュータシステムにおける値の他の表現が使用されてきた。例えば、10進数の10は、また、バイナリ値の1010および16進数のAとしても表現され得る。従って、値は、コンピュータシステムにおいて保持されることが可能な情報に係るアルゴリズム表現を含んでいる。
0058
さらに、状態(state)は、値または値に係る部分によって表現され得る。例として、論理的1といった、第1の値は、デフォルトまたは初期状態を表してよく、一方で、論理的0といった、第2の値は、デフォルトでない状態を表してよい。加えて、用語リセットおよびセットは、一つの実施例において、デフォルトおよびアップデートされた値又は状態を、それぞれに参照している。例えば、デフォルト値は、潜在的にハイ論理値、つまりリセット、を含み、一方で、アップデートされた値は、潜在的にロー論理値、つまりセット、を含んでいる。値のあらゆる組み合わせは、あらゆる数の状態を表わすために使用され得ることに留意する。
0059
上記に明らかにされた方法、ハードウェア、ソフトウェア、ファームウェア、またはコードの実施例は、マシンでアクセス可能、マシンで読取り可能、コンピュータでアクセス可能、または、コンピュータで読取り可能な媒体上に保管された、処理エレメントによって実行されるインストラクションまたはコードを介して実施されてよい。一時的でないマシンでアクセス可能/読取り可能な媒体は、コンピュータまたは電子システムといった、マシンによって読取り可能な形式において情報を提供する(つまり、保管及び/又は送信する)あらゆるメカニズムを含んでいる。例えば、一時的でないマシンでアクセス可能な媒体は、スタティックRAM(SRAM)またはダイナミックRAM(DRAM)といったランダムアクセスメモリ、ROM、磁気または光記録媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的(伝播された)信号(つまり、搬送波、赤外信号、デジタル信号)から受け取った情報を保持するためのストレージデバイスの他の形式、等を含んでいる。これらは、そこからの情報を受け取ることができる一時的でない媒体と区別されるものである。
0060
本発明の実施例を実行するためのロジックをプログラムするために使用されるインストラクションは、DRAM、キャッシュ、フラッシュメモリ、または、他のストレージといった、システムにおけるメモリの中に保管されてよい。さらに、インストラクションは、ネットワークを介して、または、他のコンピュータで読取り可能な媒体を用いて配布され得る。従って、マシンで読取り可能な媒体は、マシン(例えば、コンピュータ)によって読取り可能な形式において情報を保管または送信するためのあらゆるメカニズムを含んでよい。これらに限定されるわけではないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク、リードオンリーメモリ(CD−ROM)、および、光磁気ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可リードオンリーメモリ(EPROM)、電気的消去可能プログラム可リードオンリーメモリ(EEPROM)、磁気または光カード、フラッシュメモリ、もしくは、伝搬された信号(例えば、搬送波、赤外信号、デジタル信号)の電気、光、音響、または、他の形式を介してインターネットにわたり情報の送信において使用される、有形の、マシンで読取り可能な媒体、である。従って、コンピュータで読取り可能な媒体は、マシン(例えば、コンピュータ)によって読取り可能な形式においてインストラクションまたは情報を保管もしくは送信するために適切なあらゆるタイプの有形のマシンで読取り可能な媒体を含んでいる。
0061
この明細書の全体を通じて「一つの実施例」または「一実施例」への言及は、実施例に関連して説明された特定の機能、構造、または特性が、本発明に係る少なくとも一つの実施例に含まれていることを意味する。従って、この明細書の全体を通じて様々な場所におけるフレーズ「一つの実施例」または「一実施例」の出現は、必ずしも同一の実施例を参照することを要しない。さらに、特定の機能、構造、または特性は、一つまたはそれ以上の実施例において、あらゆる適切なやり方で組み合わされてよい。
0062
上記の明細書においては、特定の典型的な実施例に関して詳細な説明がなされてきた。しかしながら、添付の請求項において明らかにされるように、本発明のより広い精神および範囲から逸脱することなく、それに対して種々の変更または変形がなされ得ることが明らかであろう。明細書と図面は、従って、限定的な意味より、むしろ説明的な意味において理解されるべきである。さらに、実施例および他の典型的な言語の上記の使用は、必ずしも同一の実施例または同一の例を参照することを要しないが、異なる又は別の実施例を参照してよい。潜在的に、同一の実施例も同様である。