(57)【要約】本発明は、プラットフォーム上のデータを転送するための、特に、プラットフォームの異なるコンポーネント間で同時にデータを転送するためのデータ転送デバイス（１０）に関する。少なくとも一つがインプットポート（１３、１４、１５）であり少なくとも一つがアウトプットポート（１６、１７、１８）である少なくとも三つのポート間でデータを同時に転送するように調整されたデータ転送デバイスが、示される。データ転送デバイス（１０）は、インプットポート（１３、１４、１５）とアウトプットポート（１６、１７、１８）との間でデータを転送する命令を実行する少なくとも二つのコントローラ（２０、２１）を含む。コントローラ（２０、２１）は、コントローラ（２０、２１）間で同期するための同期命令、及び／又はインプットポート（１３、１４、１５）とアウトプットポート（１６、１７、１８）を同期させるための同期命令を受信するよう調整されている。
2013510357.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つがインプットポート（１３、１４、１５）であり少なくとも一つがアウトプットポート（１６、１７、１８）である少なくとも三つのポート間でデータを同時に転送するように調整されたデータ転送デバイス（１０）であって、
前記データ転送デバイス（１０）は、インプットポート（１３、１４、１５）とアウトプットポート（１６、１７、１８）との間でデータを転送する命令を実行する少なくとも二つのコントローラ（２０、２１）を含み、
前記データ転送デバイス（１０）は、前記コントローラ（２０、２１）がインプットポートとアウトプットポートの間で同期するための同期命令を受信するように調整されていることを特徴とする
データ転送デバイス。
【請求項２】
前記コントローラは、コントローラ（２０、２１）間で同期するための同期命令を受信するように調整されている
請求項１に記載のデータ転送デバイス。
【請求項３】
夫々のコントローラ（２０、２１）は、一つのアウトプットに接続する
請求項１又は２に記載のデータ転送デバイス。
【請求項４】
更に、転送命令を記録するための少なくとも二つのプログラムメモリ（４０、４１）を含む
請求項１乃至のうちのいずれか一に記載のデータ転送デバイス。
【請求項５】
コントローラ（２０、２１）と同数のプログラムメモリ（４０、４１）を含む
請求項４に記載のデータ転送デバイス。
【請求項６】
更に、前記少なくとも二つのプログラムメモリ（４０、４１）をプログラミングするためのコントローラインタフェース（４３）を含む
請求項４又は５に記載のデータ転送デバイス。
【請求項７】
フロントエンドインタフェース（１）とベースバンドエンジン（１２）との間に接続された、請求項１乃至６のうちのいずれか一に記載のデータ転送デバイスの利用。
【請求項８】
前記データ転送デバイス（１０）が、更に、ベースバンドエンジンと他のモデムブロック（２９）との間の相互接続として用いられる、請求項７に記載のデータ転送デバイス（１０）の利用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページラットフォーム上でデータを転送する、特に、プラットフォームの異なるコンポーネント間で同時データを転送する、データトランスファデバイスに関する。
【背景技術】
【０００２】
種々の無線スタンダードが継続して成長し、ＩＣ設計と送受信器の統合に関するコストが増加していることから、再構成可能無線通信プラットフォーム上に無線スタンダードを実装することが、近い将来唯一の実行可能なオプションとなる。
【０００３】
認知再構成可能無線通信（ＣＲＲ）のコンセプトでは、種々の通信モードがサポートされる必要がある。要求されるフレキシビリティ及び高パフォーマンスにより、異種マイクロプロセッサプラットフォームに導かれる。プラットフォームは、アプリケーションが稼働し得るフレームワークを意味する。ＣＲＲは、それ故必要なパフォーマンス及びフレキシビリティを提供する実効的方法である。認知無線通信は、広く定義すると、その転送を自立的に変更し、それが操作する環境との相互作用及びその環境の習得に基づいて、パラメータを受信できる、無線通信である。よりスペクトル中心の定義は、同じスペクトルリソースを利用する他の無線システムと共存する無線通信を示す。当該無線通信は他の無線システムと大きく干渉することは無い。
【０００４】
別のタイプの認知無線通信はソフトウエア無線（ＳＤＲ）システムであり、以前はハードウエア内に実装されていたコンポーネントが、代わりに、例えば、埋め込みコンピュータデバイスなどのコンピュータシステム上にソフトウエアを用いて実装されている無線通信システムである。基本的なＳＤＲシステムは、サウンドカードを備えたコンピュータデバイス、若しくは、あるフォームのＲＦフロントエンドから始まる別のアナログデジタルコンバータを、含み得る。信号処理のかなりの量が、特定用途のハードウエア内ではなく、コンピュータデバイスの汎用プロセッサにハンドオーバされる。このようなデザインは、用いられるソフトウエアにのみ依拠する異なる無線通信プロトコルを受信し転送し得る無線通信を生成する。
【０００５】
ＣＲＲ若しくはＳＤＲの範囲内の無線スタンダードは、ＬＴＥエボリューション、ＷＬＡＮエボリューション、及び放送スタンダードである。目標は、詳細な検出能力を伴う４×４ＭＩＭＯオペレーションのサポートを加えた１Ｇｂｐｓ及び１００Ｍｂｐｓのサポートを含む、４Ｇ連続性要件をサポートすることである。３ＧＰＰ  ＬＴＥスタンダードは、非常に可塑性あるスタンダードであり、プラットフォームを寸法取りすることは、プラットフォームによりサポートされるモードサブセットに大いに依存する。一方でベースバンドエンジンとフロントエンドインターフェースとの間の、及び、他方でベースバンドエンジンと外側モデムブロックとの間の、何れも受信及び転送時の、相互接続帯域幅、更には、ベースバンドエンジン及び外側モデムブロックに対する計算要件は、想定される通信モードに大いに依存する。内側及び外側モデム処理の計算要件に対する、（一方でデジタルフロントエンドインターフェースとベースバンドエンジンとの間の、及び、他方でベースバンドエンジンと外側モデムブロックとの間の）要求される相互接続帯域幅に関するプラットフォームのための機能要件は、選択した通信モードに依存する。
【０００６】
通常、例えば、ＷＯ２００７／１３２０１６（特許文献１）に記載されるように、例えば、ＡＨＢ（アドバンストハイパフォーマンスバス）、ＡＨＢ−Ｌｉｔｅ（シングルバスマスタにみが用いられるデザインで利用することが意図された完全なＡＨＢ記述のサブセット）、又はＡＸＩ（アドバンストエクステンシブルインターフェース）のような、バスインフラストラクチャが、相互接続として用いられる。ゲートカウントとプログラミングパラダイムの両方において、ＡＸＩ及びＡＨＢは、必要とされるものに対して、少し思い。更に、バスアーキテクチャの予測可能性も望ましい。一つのソースから多数の宛先へのブロードキャプチャスティングに対して、このタイプのバスが複雑になり、回避すべきものとすらなる。公知技術の多くの相互接続は、一つ又はそれ以上の以下の問題を有する。
−相互接続帯域幅は、Ｇｂｐｓスタンダードにとって小さすぎる。
−より多くのインターフェースに対して拡張可能でない。
−ベースバンドプロセッサ間のインタープロセス通信が高価過ぎる。
−中央ＤＭＡ（ダイレクトメモリアクセス）コントローラが、相互接続トラフィックを疑うであろう。
−（ＤＭＡコントローラプログラミングのための）ＡＲＭ（アドバンストレデューストインストラクションセットコンピュータマシン）の完全なコントロール下でのアドレスのためのデータフロー。
−電力消費
−予測可能性
【０００７】
また、別の周知の技術は、異なる並列化スキームに対して十分な可塑性が無いポイントツーポイント接続である。
【０００８】
ＷＯ２００８／１０３８５０（特許文献２）は、カメラと連結するための複数のインプットポート、インプットポートに連結する同期ロジックブロック、カメラポートに連結する画像共有ロジックブロック、及び、画像共有ロジックブロックに連結するアウトプットポートを含む、ビデオサーベイランスシステムを、開示する。開示のシステムでは、多数のカメラ間で、画像キャプチャ及び／又はその後のトランスファを同期させることが望まれる。サーベイランスシステムは、全てのインプットポートが同期化されることを確認し、続いて情報を送信する。しかしながら、システムに入ってくるであろうデータは、予測不可能であるから、アウトプットにおけるバッファデータオーバフローを回避するために、このようなシステムは、アウトプットにおいて過度に設計されたメモリスペースを有する必要がある。過度に設計されたメモリスペースがエリアを消費し、よってシステムが低電力となることを回避してしまうので、このことは所望されていない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】ＷＯ２００７／１３２０１６
【特許文献２】ＷＯ２００８／１０３８５０
【発明の概要】
【発明が解決しようとする課題】
【００１０】
エネルギ及びレイテンシーのためのデバイスに、プラットフォーム上の異なるコンポーネント間での実効的通信を与えることが、本発明の実施形態の目的である。
【課題を解決するための手段】
【００１１】
前記目的は、本発明にかかる方法及びデバイスによって達成される。
【００１２】
本開示は、少なくとも一つがインプットポートであり少なくとも一つがアウトプットポートである少なくとも三つのポート間でデータを同時に転送するように調整されたデータ転送デバイスを提示する。データ転送デバイスは、インプットポートとアウトプットポートとの間でデータを転送する命令を実行する少なくとも二つのコントローラ（ＩＣ１、ＩＣ２）を含む。コントローラは、インプットポートとアウトプットポートの間で同期するための同期命令を受信するように調整されている。
【００１３】
本発明の実施形態に係るデータ転送デバイスでは、コントローラは、コントローラ間で同期するための同期命令を受信するように調整されている。
【００１４】
一つの実施形態では、夫々のコントローラは、一つのアウトプットに接続する。
【００１５】
本発明の実施形態では、データ転送デバイスが、転送命令を記録するための少なくとも二つのプログラムメモリを含む。データ転送デバイスは、コントローラと同数のプログラムメモリを含んでもよい。
【００１６】
一つの実施形態では、データ転送デバイスは、更に、上記の少なくとも二つのプログラムメモリをプログラミングするためのコントローラインタフェースを含む。
【発明の効果】
【００１７】
提示されたデバイスは、プラットフォーム上の異なるコンポーネント間の同期化された及び同期化されない通信の実効的なかつ予測可能なデバイスを提供する。デバイスは、低電力及び予測可能なレイテンシーにより、多数のコア間の実効的な通信をサポートする。更に、多数の（送信及び／又は受信の）スタンダードでさえそれらの多数のストリームは、異なるコア間で異なるコード並列化ストラテジを保証すべく与えられる、必要な自由度で、並列に動作可能である。多数の同期若しくは非同期通信ストリームを管理できる、分散型のプログラム可能なストリームコントロールアーキテクチャが提供される。フローコントロールは、ソースとデスティネーション間で、及び、ストリーム間で、実装される。
【００１８】
ＣＲＲ及びＳＤＲシステムをサポートする再構成可能なプラットフォームソリューションを設計する際に用いられ得る、ということは、本発明の実施形態の利点である。プラットフォームは、多数のスタンダードと、スタンダード間のハンドオーバとの、共存をサポートし得る。ベースバンドレベルでは、プラットフォームのランタイム再構成によりランタイムの間にこれをサポートする可撓性が与えられ、これにより、ランタイムの動作の並列化／モードにおける変更が得られ得る。
【００１９】
本発明の特定の且つ好適な形態が、添付の独立及び従属の請求項内に示されている。従属請求項からの特徴は、適宜、独立請求項の特徴と、及び、他の従属請求項の特徴と組み合わせてもよく、請求項内に明確に示されたものに限定されない。
【図面の簡単な説明】
【００２０】
例示の実施形態は、添付の図面と併せて以下に記載される。図面では同一番号は同一部位を示す。
【図１】図１は、本発明の実施形態に係る、クロスバー及び相互接続コントローラを含む転送デバイスを示す。
【図２】本発明の実施形態に係る転送デバイスを含むプラットフォームテンプレートを示す。
【図３】本発明の実施形態に係る相互接続ブロックの概観を示す。
【図４】図３の相互接続ブロックの内部を示す。  図面は、図解のためのみのものであり限定的ではない。図面では、幾つかの要素のサイズは誇張されており、説明のため、スケールに基づいて描かれていない。
【００２１】
請求項中の符号は、請求の範囲を限定するように解釈されるものではない。
【発明を実施するための形態】
【００２２】
本発明は、特定の実施形態に関して所与の図面を参照して、記載されるが、本発明はこれらに限定されない。記載の図面は、図解のためのみのものであり限定的ではない。図面では、幾つかの要素のサイズは誇張されており、説明のため、スケールに基づいて描かれていない。
【００２３】
更に、明細書中及びクレーム中の第１、第２、第３などの用語は、類似の要素間で区別をするために用いられるのであり、必ずしも順番の若しくは時間順の序列を記載するために用いられるものではない。用語は適切な条件下で相互に交換可能であり、本発明の実施形態は、本明細書に記載し例示するものと異なる順序で動作してもよい。
【００２４】
更に、明細書中及びクレーム中の頂部、底部、上、下などの用語は、便宜的に用いられるのであり、必ずしも相対的位置のために用いられるものではない。用語は適切な条件下で相互に交換可能であり、明細書に記載した本発明の実施形態は、本明細書に記載し例示するものと異なる順序で動作してもよい。
【００２５】
請求項で用いる、「含まれる」の用語は、以降に掲げる手段群に限定して解釈されるべきではない。他の要素やステップを排除するものではない。当該用語は、記載の特徴、整数、ステップ、若しくは参照のコンポーネントの存在を記述するものとして解釈される必要があるが、一つ若しくは複数の他の特徴、整数、ステップ若しくはコンポーネント、又はそれらの群の存在又は追加を排除するものではない。よって、「手段Ａ及びＢを含むデバイス」という表現の範囲は、コンポーネントＡ及びＢのみから構成されるデバイスに限定されるべきではない。本発明に関しては、デバイスの唯一の関連あるコンポーネントは、Ａ及びＢである、ということである。
【００２６】
プラットフォーム上のデータの同時転送のために調整されたデータ転送デバイス１０が示される。データ転送デバイス１０は、例えば、一方でベースバンドエンジン（例えば、ＣＧＡ）１２とフロントエンドインターフェース（例えば、ＤＦＥ）１１との間、及び、ベースバンドエンジン１２と外側モデムブロック（例えば、ＦＥＣ）１２との間などの、プラットフォームの異なるコンポーネント間での相互接続として機能する。特に、データ転送デバイス１０は、少なくとも３つのポートを含み、そのうちの少なくとも一つは、例えば、例示の実施形態のポート１３、１４、１５のインプットポートであり、少なくとも一つは、例えば、例示の実施形態のポート１６、１７、１８のアウトプットポートである。データ転送デバイス１０は、インプットポート１３、１４、１５とアウトプットポート１６、１７、１８との間でデータを転送する命令を実行するための少なくとも２つのコントローラ２０、２１を含む。本発明の実施形態に係るデータ転送デバイス１０の知能は、プログラム可能相互接続コントローラ２０、２１内にある。コントローラ２０、２１は、コントローラ２０、２１間で同期させる同期命令、及び／又は、インプットポート１３、１４、１５とアウトプットポート１６、１７、１８を同期させる同期命令を受信するように、調整されている。
【００２７】
異なるコンポーネント間の可能なタイプのデータフローは、例えば、以下の通りである（ＳＤＲプラットフォームにのみ特有の例示の目的のための例）
−フロントエンドインターフェース間における、コントロールフロー、データフロー無し。
−フロントエンドインターフェースとベースバンドエンジン間における、データフロー、コントロールフロー。
−ベースバンド／内側モデムエンジン間における、データフロー、コントロールフロー。
−ベースバンド／内側モデムエンジンと外側モデムエンジン間における、データフロー、コントロールフロー無し。
−外側モデムエンジン間における、データフロー無し、コントロールフロー無し。
【００２８】
本発明の実施形態に係る提示の転送デバイス１０は、プラットフォーム上の異なるコンポーネント間の同期の及び非同期の通信に係る実効的で信頼性の高いデバイスを提供する。転送デバイス１０は、レイテンシー及びパワーが低くて信頼性が高い、複数のコア間の実効的通信をサポートする。更に、多数のストリームが要求された自由度で稼働でき、異なるコア間の異なるコード並列化ストラテジを保証するように設定され得る。多数のストリームは、多数のストリームを伝送するものでも、受信するものでも、その両方でもよい。多数の同期又は非同期の通信ストリームを並列で管理できる、配布されプログラム可能なストリームコントロールアークテクチャが、提示される。ソースとデスティネーションとの間に、及び、ストリーム間に、コローコントロールが実装される。配布されるコントロールメカニズムは、データ及びコントロールトラフィックを分断し及び／又はデータトラフィックを分断し相互接続のリユースを回避する可能性にも、言及する。
【００２９】
前世代のプラットフォームと対比して最も大きい変化の一つは、異なるコア間のデータ通信のためのカスタム相互接続の追加である。無線ＣＲＲ（認知再構成可能無線通信）／ＳＤＲ（ソフトウエア無線）システムでは、異なるコンポーネント間のデータ及びコントロール通信は、設計時にて周知である。トラフィックを実施するためＤＭＡを用いることは、ＡＲＭプロセッサが非常に粒度細かく（シンボル毎若しくは数シンボル毎）それをプログラムすることを要求するだけでなく、バスのトラフィックを二重にする。
【００３０】
図１は、プラットフォームのための提示されたデータ転送デバイス１０を示す。プラットフォームは図２に示される。
【００３１】
図２に示す本発明の実施形態に係るプラットフォームは、データ通信／計算と、プラットフォーム上のコントロールとを分離することで、先行技術のプラットフォームとは異なったものとなっている。３つの異なる機能ブロックが、データ平面内で展開され得る。
【００３２】
１．同期／感知１１：第１のデジタルブロックが、（ＡＤＣのためのゲインを設定する）アナログフロントエンドとインターフェースを採ることに関与し、（ＷＬＡＮ及びＬＴＥのための）粗時間同期を行い、共存若しくはハンドオーバに対するスペクトル感知を行い、スペクトル「ホワイトスペース」の利用を可能にする。
２．ベースバンドプロセッシング１２：ベースバンドプロセッサがマルチスレッディングをサポートし得る。
３．デコーディングプロセッサ（ＦＥＣ）２９：異なるタイプのデコーディング、例えば、ＬＤＰＣでコーディングとターボデコーディングの両方を、実行できるプロセッサ。
これらの異なる機能の各々は、これらのタスクを実効的に実行できるＡＳＩＰ上にマップされ得る。これらのプロセッサの間のデータ通信は、カスタム相互接続ファブリックを用いて、操作され得る。
【００３３】
コントロールプレーンアーキテクチャは、異なる機能を有する。データパス内の異なる処理ユニット間で状態情報及びコントロールデータを交換すること、及び、データパス内で異なる処理コアを構成しバーストをセットアップすること、である。コントロールプロセッサ２８は、パケットレベルコントロールについてもっぱら関与し得る。それは、データプレーンをセットアップして完全なパケットを処理でき、ソフトウエアＰＨＹ層若しくはＭＡＣ層に有用なデータが利用可能であるとき中断され得るに過ぎない。
【００３４】
本発明の実施形態に係るデータ転送デバイス１０は、プラットフォーム上の異なるコア間のデータ通信に対するカスタム相互接続である。それは、クロスバー２７に接続するＦＩＦＯ２５、２６を含む。ＦＩＦＯ２５、２６により、完全送信若しくは受信チェーンに関するフローコントロールを有することができる。ＦＩＦＯ２５、２６は適切な実装を備えることができ、例えば、ソフトウエアとして、若しくはハードウエアとして、又はメモリとしても、実装され得る。メモリの場合、相互接続コントローラは、それ自身のプログラムによりＤＭＡとして作用し、データ転送デバイスにおいてソースからデスティネーションまで適切なモーメントにデータを転送する。相互接続コントローラ２０、２１による分散化コントロールのために、プラットフォームのコントロールプロセッサ２８は、相互接続コントローラ２０、２１をシンボルの完全なバーストのためにプログラムできる。このことにより、データフローがセットアップされ、何らの介入無くバースト自身の間稼働できる。このことは、相互に通信するのに必要なコアのみがそのように（十分な可塑性のみを）できるということを意味する。
【００３５】
本発明の実施形態に係るデータ転送デバイス１０の利点は、プラットフォーム上の異なるコア間の分離データ及びコントロールトラフィック、フローコントロール、フレキシビリティ、低電力消費、高スループット及び低レイテンシー相互接続、転送をリプログラムするためのプラットフォームのコントロールプロセッサ２８の負荷の縮小を、含む。データ転送デバイス１０はコンポーネント間のデータの転送のための専用コントロールとして作用し、この転送のタイミング及び転送されるデータの量が適切であることを保証できるので、低電力消費が獲得され得る。クロスバー２７のいずれかのエンドのＦＩＦＯ接続２５、２６により、低レイテンシー相互接続が得られ得る。スループットが高いときに転送の時期が選ばれ、転送のレイテンシーが最小化されるような、データ転送デバイスのプログラム可能性により、低レイテンシーがされに得られ得る。図３は、インターフェースを伴うデータ転送デバイス１０の高レベルオーバビューを示す。一つのサイド（図の右９では、ベースバンドプロセッサ１２に接続し、他のサイド（図の左）では、他の周辺機器、（図３には示していないが図１及び図２に見られる）通常、一つのインスタンス化に対するＤＦＥ１１若しくはＤｉｆｆ、外側モデムブロック（ＦｌｅｘＦＥＣ、レガシービタビエンジン、スクランブラ／デスクランブラエンジン）に接続する。この例に対しては、データ転送デバイス１０は、ベースバンド１２とインターフェースを採る、パラメータ量のＡＨＢＬｉｔｅマスターインターフェース３０と、他の周辺機器と接続する、パラメータ量のＡＨＢＬｉｔｅマスターインターフェース３１とを、有する。当然ながら、当業者に周知の他のどんなインターフェースも利用可能である。ＡＨＢＬｉｔｅインターフェースの各々の次に、ベースバンドエンジン１２からの、若しくはデータ転送デバイス１０の周辺機器からの、「レディ」信号３２、３３が、相互接続コントローラ２０、２１とベースバンドエンジン１２間のハンドシェーキング、若しくは、相互接続コントローラ２０、２１と周辺機器間のハンドシェーキングのために、利用可能となっている。内側相互接続コントローラ２０、２１をプログラミングすることを含む、データ転送デバイス１０の汎用コントロールのために用いられる、スレーブインターフェース３４も設けられる。
【００３６】
図４は、データ転送デバイス１０の内部を示す。データ転送デバイス１０のインテリジェンスは、プログラム可能相互接続コントローラ２０、２１内にあり、一方はあらゆるベースバンドに対して接続される。これらの相互接続コントローラ２０、２１は夫々、コントロールインターフェース３４を介してロードされ得るプログラムメモリ４０、４１を有する。あらゆるマスターインターフェースに対して、それとインターフェースを採ることに関与するブロック（ＡＨＢハンドラモジュール）４２、４３が存在し得る。これらブロック４２、４３は、利用される特定のプロトコルに固有である。そのようなブロックが特定のプロトコルに必要とされないならば、アドレスはデータバス上に直接配置され得る。ベースバンドサイドでは、あらゆる相互接続コントローラ２０は、一つのインターフェースポート３０のこのＡＨＢハンドラ４２に直接接続する。他のサイドでは、あらゆるＡＨＢハンドラ４３はコンバイナブロック４４に接続され、該コンバイナブロック４４は異なる相互接続コントローラ２０．２１の信号を組み合わせてＡＨＢハンドラ４３と一貫してインターフェースを採る。ベースバンドエンジン１２の「レディ」信号３２は、それとインターフェースを採る相互接続コントローラ２０と接続し、左手サイド（周辺機器）インターフェースの「レディ」信号３２は、全ての相互接続コントローラ２０、２１に接続する。ソースとデスティネーション間の同期の間に、ソースはデータがレディであることを確認せねばならず、デスティネーションはデータを受信するのにスペースが利用可能であることを確認せねばならない。あらゆる相互接続コントローラ２０、２１は、「レディ」信号４５も生成し、該「レディ」信号４５は、全ての他の相互接続コントローラ２１、２０に接続される。他の相互接続コントローラからの、更にはベースバンドエンジンからの及び他の周辺機器からの、「レディ」信号４５、３２、３３は、相互接続コントローラのプログラム内の特別の同期コマンドを介して同期するのに用いられ得る。「レディ」信号４５は、相互接続コントローラ２０と相互接続コントローラ２１との間でハンドシェークを設け、新しいデータが送信される前にデータが行ってしまったこと（若しくは未だ行っていないこと）を示す。図２のデータプレーンの左手サイドにて転送デバイス１０内で処理されるデータが、図２のデータプレーンの右手サイドにて転送デバイス１０内で処理されるデータに従属するものであるとき、同期信号４５が用いられる。両方のデータのピースが独立しているものであるならば、同期信号を用いる必要は無い。更に、汎用コントロールブロック４６により、プラットフォームコントローラ２８は相互接続コントローラ２０、２１をコントロールできる。当然ながら、コンバイナブロック４４以外の、全てのブロックがクロックを与えられる。コンバイナブロック４４は、純粋に組み合わせロジックであり、相互接続コントローラ２０、２１の両方のサイドのレイテンシービヘイビアが同一であることを保証する。また当然ながら、全ての相互接続コントローラ２０、２１は、(図４の左手サイドの）ベースバンドエンジン以外の、周辺への全てのａｈｂインターフェース３１に��クセスすることが可能である。このことは、一つ以上の相互接続コントローラ２０、２１は互換性無く（例えば、二度の書き込み、若しくは読み出し及び書き込み）同じａｈｂインターフェース３１とアクセスできるということに係わっている。本発明の特定の実施形態では、ハードウエア（例えば、コンバイナブロック４４）は、汎用コントロールへ信号伝達されるエラーとして検出する。本発明の特定の実施形態では、競合解消は実装されない。プログラマはこの状況を回避すべきである。
【００３７】
異なるブロック間のインターフェース３０、３１の詳細を以下、記載する。表１は、ＡＨＢハンドラモジュールインターフェースを記載する。
【表１】
2013510357.tif 000003
表１：ＡＨＢハンドラインターフェース記述
【００３８】
当然ながら、読み出し及び書き込み信号は、相互に排他的である。同じクロックサイクル内での両方のａサーとはエラーを生じる。書き込みトランザクションが要求されれば（即ち、ｗｒｉｔｅ（書き込み）がアサートされれば）、ｗｒｉｔｅｄａｔａ（書き込みデータ）のみが関連し、ｐｒｏｄｕｃｅがアサートされれば、ｒｅａｄｄａｔａ（読み出しデータ）のみが有効である。ｒｅａｄ（読み出し）若しくはｗｒｉｔｅ（書き込み）がアサートされれば、アドレスが用いられる。ＡＨＢハンドラ４２、４３がａｃｃｅｐｔ信号をデアサートすれば、データ転送デバイス１０上の（もしあれば）読み出し若しくは書き込み要求は、このクロックサイクル内で処理されておらず、ａｃｃｅｐｔ信号が再びアサートされるまで次のもので上書きされるべきではない。ｃｏｎｓｕｍｅ信号は、ＡＨＢハンドラ４２、４３がｆｉｆｏからのデータを除去することを回避するために、デアサートされ得る。そのようにすることにより、ＡＨＢハンドラモジュール４２、４３は、ｃｏｎｓｕｍｅ信号が再び除去されるまで、ｒｅａｄｄａｔａ（読み出しデータ）を提供し続けるであろう。ｒｅａｄｄａｔａ（読み出しデータ）が生成されている（データ有効信号）ならば、ＡＨＢハンドラ４２、４３によりｐｒｏｄｕｃｅ信号が設定される。
【００３９】
命令セット
表２は、相互接続コントローラ２０、２１の命令セットを示す。（オペコード０〜３の）最初の４命令は、データの転送を生じないコントロールコンストラクトである。（オペコード４〜７の）最後の４命令は、データ転送デバイス１０上でのデータの転送を生じない。一つの命令（ＬＯＡＤＣＯＮＳＴ）は次のプログラムライン上でオペランドを取るが、それも１６ビットワードである。
【００４０】
【表２】
2013510357.tif 000004
表２：相互接続コントローラ命令セット
【００４１】
命令の詳細
このセクションでは、命令の動作のより詳細な記述と共に、個別の命令のコーディングが示される。概論として、命令は１６ビットワードであり、そのうち最重要の３ビットは表２に示す命令のオペコードを示す。
【００４２】
ＳＹＮＣ
「ＳＹＮＣ」命令は、同期の目的のために用いられ得る。そのフォーマットは表３に示す。この命令のためのオペコードは０であり、他のパラメータは以下の通りである。
【００４３】
・Ｓｅｔ  Ｒｅａｄｙ：相互接続コントローラ２０、２１の「レディ」信号４５を設定する。これにより他の相互接続コントローラ２１、２０が、この相互接続コントローラ２０、２１のレディ信号４５を待った後に動作を継続できる。
【００４４】
・Ｆｉｆｏ  ＩＤ：ｆｉｆｏがセットされたならば同期するｆｉｆｏ２５、２６の識別子。この場合、相互接続２０、２１は、ｆｉｆｏ２５、２６がその「レディ」信号をセットするまで、このｓｙｎｃ命令上でブロックする。
【００４５】
・ＩＣ  ＩＤ：ＩＣがセットされたならば同期する相互接続コントローラ２０、２１の識別子。この場合、他の相互接続コントローラ２１、２０がその「レディ」信号４５をセットするまで（即ち、「Ｓｅｔ  Ｒｅａｄｙ」パラメータをセットして同期命令を動作するまで）、相互接続コントローラ２０、２１がこの命令上でブロックする。
【００４６】
・Ｆｉｆｏ：セットされると、「Ｆｉｆｏ  ＩＤ」パラメータにより与えられる識別子で、ｆｉｆｏ２５、２６と同期する。セットされないと、このパラメータは無視され、ｆｉｆｏとの同期が実行されない。
【００４７】
・ＩＣ：セットされると、「ＩＣ  ＩＤ」パラメータにより与えられる識別子で、相互接続コントローラ２０、２１と同期する。セットされないと、このパラメータは無視され、別の相互接続コントローラとの同期が実行されない。
【００４８】
・ＢＢ：セットされると、この相互接続コントローラ２０、２１が接続されるベースバンドエンジン１２と同期する。セットされないと、ベースバンドエンジンとの同期が実行されない。
【００４９】
・Ｃｌｅａｒ  Ｆｉｆｏ：セットされると、識別子「Ｆｉｆｏ  ＩＤ」でｆｉｆｏ２５、２６の「レディ」信号がクリアされ、そうでなければ、変更されない。
【００５０】
・Ｃｌｅａｒ  ＩＣ：セットされると、識別子「ＩＣ  ＩＤ」で相互接続コントローラ２０、２１の「レディ」信号４５がクリアされ、そうでなければ、変更されない。
【００５１】
・Ｃｌｅａｒ  ＢＢ：セットされると、ベースバンドエンジン１２の「レディ」信号３２がクリアされ、そうでなければ、変更されない。
【００５２】
【表３】
2013510357.tif 000005
表３：ＳＹＮＣ命令エンコーディング
全てのパラメータを０に設定するＳＹＮＣ命令に対しては特に留意すべきである。０としてコードされる、この命令は、相互接続コントローラ２０、２１内で、何の機能も始動しない。非ゼロ命令データで命令がリロードされるまで、それはこの命令にて引き伸ばしをするであろう。当然ながら、この命令は同期に対して何らの意味も有さない。
【００５３】
ＪＵＭＰＮＺ
「ＪＵＭＰＮＺ」命令は、カウンタが０に達したかどうかをチェックする。もしそうであれば、プログラム実行は次のプログラムラインで継続し、そうでなければ、カウンタがデクリメントされプログラム実行は新しい位置で継続する。「ＬＯＡＤＣＮＴ」命令と共に、この命令はプログラム内の繰り返しのために、規定する。ネスト化される動作の数は、利用可能なカウンタの量により制約される。命令エンコーディングは、カウンタ識別子に対して３ビット提供し、このことにより、カウンタの最大量は８となる。表４は、「ＪＵＭＰＮＺ」命令のエンコーディングを示す。そのオペコードは１であり、他のパラエータは以下の通りである。
【００５４】
・Ｃｏｕｎｔｅｒ  ＩＤ：利用すべきカウンタの識別子。
【００５５】
・位置：カウンタがゼロに等しくないならば、ジャンプする先のプログラムライン。
【００５６】
【表４】
2013510357.tif 000006
表４：ＪＵＭＰＮＺ命令エンコーディング
【００５７】
ＬＯＡＤＢＢ
「ＬＯＡＤＢＢ」は、（「ＸＦＥＲ」及び「ＩＮＳＣＯＮＳＴ」命令で）ベースバンド１２にアクセスするのに用いられる初期パラメータをロードする。それは、初期アドレス、及びこのアドレスのためのインクリメント値をセットする。そのエンコーディングは表５に示される。そのオペコードは２であり、他のパラメータは以下の通りである。
【００５８】
・インクリメント：ベースバンド１２へのアクセス（即ち、「ＸＦＥＲ」命令、若しくはパラメータ「ＴｏＢＢ」がセットされた「ＩＮＣＯＮＳＴ」命令）の後ベースバンドアドレスがインクリメントされるべき、（ワード内の）量。それは３ビット値であり、それは０〜７ワード、若しくは、４バイトのステップ内の０から２８バイトに対する値である。
【００５９】
・ベースバンドアドレス：ワード内のベースバンドアドレスの初期値。このアドレスは、ベースバンドプロセッサ１２への最初のアクセスのために用いられるであろう。それは１０ビットに限定され、よって初期アドレスは、ベースバンドメモリの最初の１Ｋワード内部であるべきであり、若しくは最初の４Ｋバイトの範囲内であるべきである。
【００６０】
当然ながら、両方のパラメータはワードの中である。バイトアドレスを得るため、２つのゼロビットが加えられるべきである。
【００６１】
【表５】
2013510357.tif 000007
表５：ＬＯＡＤＢＢ命令エンコーディング
【００６２】
ＬＯＡＤＣＮＴ
「ＬＯＡＤＣＯＮＴ」命令は、値をカウンタにロードする。「ＪＵＭＰＮＺ」命令と共に、プログラム内に繰り返しを挿入するのに用いられ得る。そのエンコーディングは表６に示される。そのオペコードは３であり、他のパラメータは以下の通りである。
【００６３】
・Ｃｏｕｎｔｅｒ  ＩＤ：ロードされるカウンタの識別子。
【００６４】
・Ｖａｌｕｅ：カウンタが初期化されるべき値。それは１０−値であり、シングルループ内の繰り返しの最大量が１０２３であるということを意味する。
【００６５】
【表６】
2013510357.tif 000008
表６：ＬＯＡＤＣＮＴ命令エンコーディング
【００６６】
ＬＯＡＤＣＯＮＳＴ
「ＬＯＡＤＣＯＮＳＴ」命令は、ベースバンドメモリ若しくはｆｉｆｏ内に一定値を挿入する「ＩＮＳＣＯＮＳＴ」命令により用いられるコンスタントをロードするのに用いられる。コンスタントは３２ビットコンスタントであり、その「ＬＯＡＤＣＯＮＳＴ」命令は、１６ＬＳＢ若しくは１６ＭＳＢを初期化できる。完全な３２ビットコンスタントをロードするのには２つの「ＬＯＡＤＣＯＮＳＴ」命令を必要とする。「ＬＯＡＤＣＯＮＳＴ」は、次のプログラムライン上で１６ビットオペランドを必要とする。「ＬＯＡＤＣＯＮＳＴ」命令のエンコーディングは、表７に示される。オペコードは４であり、その他のパラメータは以下の通りである。
【００６７】
・ＭＳＢ：セットされると、オペランドがコンスタントの１６ＭＳＢ内にロードされるであろうし、そうでなければ１６ＬＳＢ内にロードされるであろう。
【００６８】
【表７】
2013510357.tif 000009
表７：ＬＯＡＤＣＯＮＳＴ命令エンコーディング
【００６９】
ＩＮＳＣＯＮＳＴ
「ＩＮＳＣＯＮＳＴ」命令は、ベースバンドメモリ内若しくはＦＩＦＯ内に「ＬＯＡＤＣＯＮＳＴ」命令で予めロードされた値を複数回インサートする。それは常に３２ビット値を挿入するが、但しセッティングに拠ってはその一部が０であってもよい。これは、例えば、転送される複数のデータワードに署名を加え、全ての要求されたインプットデータが利用可能でありベースバンドプロセッサ１２が開始可能であることをベースバンドプロセッサ１２に検知させるために、用いられ得る。そのエンコーディングは表８に示される。それはオペコード５を有し、他のパラメータは以下の通りである。
【００７０】
・ＴｏＢＢ：セットされれば、（「ＬＯＡＤＤＢＢ」命令によりセットされ、先の「ＸＦＥＲ」若しくは「ＩＮＳＣＯＮＳＴ」命令により変更され得る）現下のベースバンドパラメータを用いて、コンスタントがベースバンドメモリ内にインサートされる。セットされなければ、パラメータ「Ｆｉｆｏ  ＩＤ」により与えられる識別子で、コンスタントがｆｉｆｏ内にインサートされる。
【００７１】
・Ｆｉｆｏ  ＩＤ：パラメータ「ＴｏＢＢ」がセットされないとき、データをインサートするｆｉｆｏの識別子。パラメータ「ＴｏＢＢ」がセットされると、このパラメータは無視される。
【００７２】
・ＭＳＢ：セットされれば、コンスタントの１６ＭＳＢが用いられ、インサートされる値の１６ＭＳＢが、「ＭＳＢ」パラメータがセットされた最新の「ＬＯＡＤＣＯＮＳＴ」命令のオペランドに等しい、ということを意味する。このパラメータがセットされないならば、１６ＭＳＢがゼロで置換される。
【００７３】
・ＬＳＢ：セットされれば、コンスタントの１６ＬＳＢが用いられ、インサートされる値の１６ＬＳＢが、「ＭＳＢ」パラメータがセットされない最新の「ＬＯＡＤＣＯＮＳＴ」命令のオペランドに等しい、ということを意味する。このパラメータがセットされないならば、１６ＬＳＢがゼロで置換される。ＬＳＢ及びＭＳＢの両方がセットされないならば、全てゼロを伴う３２ビット値がインサートされるであろう。
【００７４】
・Ｃｏｕｎｔ：コンスタントがインサートされるべき回数。これは６ビット値であり、０〜６３の範囲にある。
【００７５】
【表８】
2013510357.tif 000010
表８：ＩＮＳＣＯＮＳＴ命令エンコーディング
【００７６】
ＦＩＦＯ２ＮＵＬＬ
「ＦＩＦＯ２ＮＵＬＬ」命令は、ｆｉｆｏ２５、２６からデータワードの量を除去し、それらを廃棄する。命令エンコーディングが表９に示される。それはオペコード６を有し、他のパラメータは以下の通りである。
【００７７】
・Ｆｉｆｏ  ＩＤ：データが読み出され除去されるべきｆｉｆｏ２５、２６の識別子。
【００７８】
・Ｃｏｕｎｔ：除去されるデータワードの量。これは８ビット値であり、範囲は０〜２５５である。
【００７９】
【表９】
2013510357.tif 000011
表９：ＦＩＦＯ２ＮＵＬＬ命令エンコーディング
【００８０】
ＸＦＥＲ
「ＸＦＥＲ」命令は、データワードの量をベースバンドメモリからｆｉｆｏ２５、２６などに移動する。命令エンコーディングが表１０に示される。それはオペコード７を有し、他のパラメータは以下の通りである。
【００８１】
・ＴｏＢＢ：セットされれば、転送方向はｆｉｆｏ２６からベースバンド１２へとなる（即ち、データワードがｆｉｆｏ２６から読み出され、ベースバンドメモリ内に書き込まれる）。セットされなければ、転送方向がベースバンド１２からｆｉｆｏ２６へとなる（即ち、データワードがベースバンドメモリから読み出され、ｆｉｆｏ２６内に書き込まれる）。
【００８２】
・Ｆｉｆｏ  ＩＤ：（パラメータ「ＴｏＢＢ」がセットされるときの）データが読み出されるｆｉｆｏ２６の、又は、（パラメータ「ＴｏＢＢ」がセットされないときの）データが書き込まれるｆｉｆｏ２６の、識別子。
【００８３】
・Ｃｏｕｎｔ：転送されるデータワードの量。これは８ビット値であり、範囲は０〜２５５である。
【００８４】
当然ながら、この命令はベースバンドプロセッサパラメータを常に含み、よって、毎データワード転送後に、最新の「ＬＯＡＤＢＢ」命令により特定されるベースバンドインクリメントで、ベースバンドアドレスがインクリメントされる。
【００８５】
【表１０】
2013510357.tif 000012
表１０：ＸＦＥＲ命令エンコーディング
【００８６】
例
本発明の実施形態に係る、相互接続コントローラ内にロードされるコードの２例を、以下に示す。当然ながら、これらの例は、スループットとレイテンシーとの間のトレードオフを示す。
【００８７】
【表１１】
2013510357.tif 000013
【００８８】
上記コードは、大量の４０エレメント内で２ソースから一つのデスティネーションへ転送がどう生じるかを示す。個々の「ＸＦＥＲ」命令は２０エレメントを一つのソースから上記コード内の別のデスティネーションへ転送する。これらの転送は、サイズ４（０〜３）の（内側）ループ内にあり、これにより、ソース０からデスティネーション１へ全体１６０エレメントの転送が生じ得る。当然ながら、定常状態では、定常のセットの転送は高速度で為され得る。これらの微粒子転送により、転送のレイテンシーを隠すことができ、これにより転送が十分に実効的となり、よってソースにおけるバッファを小さく維持できる。
【００８９】
【表１２】
2013510357.tif 000014
【００９０】
上記ソースコードは、ソース０〜３からデスティネーションポートへの、例１と比べてより粗いセットの転送を示す。ｃｏｕｎｔ１のみのループがあり、よって、ソースから出スティネーションへの、各々１６０エレメントの４転送のみ、実効的に存在する。第１の転送は（ソース０におけるセットアップによる）より多くのサイクルを取るが、以下の転送は全く異なる。転送が為される前に、相互接続コントローラ２０はソース０が準備されるのを待機し、これにより、余分数のサイクルが必要となる。このモードの転送では、命令ごとにより多くにデータが転送されるため、より高いスループットを行うが、ソース３からデータを転送するためのより多くのレイテンシーがある。
【符号の説明】
【００９１】
１０・・・データ転送デバイス、
１３、１４、１５・・・インプットポート、
１６、１７、１８・・・アウトプットポート、
２０、２１・・・コントローラ。
【図１】
2013510357.tif 000015
【図２】
2013510357.tif 000016
【図３】
2013510357.tif 000017
【図４】
2013510357.tif 000018
【国際調査報告】
2013510357.tif 000019
2013510357.tif 000020