(57)【要約】【課題】本発明は、仕様変更可能性、性能、及び消費電力が異なる複数のモジュールを搭載し最適な処理の割当てを可能にすると共に、信号伝送路における転送量が比較的少ない論理再構成可能な集積回路を提供することを目的とする。【解決手段】集積回路は、プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェースを含む。【選択図】　　　図１
2004040188.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、
パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、
該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェース
を含むことを特徴とする集積回路。
【請求項２】
該演算回路群は、
該モジュール間インターフェースに接続されるデータ格納回路と、
該データ格納回路と該演算器との間に信号経路を確立し該信号経路の接続を変更可能な接続回路と、
該接続回路の該信号経路の接続を制御する制御回路
を含むことを特徴とする請求項１記載の集積回路。
【請求項３】
該接続回路は変更可能な信号経路を該演算回路間に確立することを特徴とする請求項２記載の集積回路。
【請求項４】
該モジュール間インターフェースに接続されゲートレベルでの論理変更が可能な再構成可能ゲートアレイを更に含むことを特徴とする請求項１記載の集積回路。
【請求項５】
該モジュール間インターフェースに接続され特定の処理を実行する専用ハードウェアを更に含むことを特徴とする請求項１記載の集積回路。
【請求項６】
該モジュール間インターフェースに接続される共有メモリを更に含むことを特徴とする請求項１記載の集積回路。
【請求項７】
該モジュール間インターフェースは接続経路を変更可能な再構成可能ネットワークであることを特徴とする請求項１記載の集積回路。
【請求項８】
該パラメータ付専用ハードウェアは、
該モジュール間インターフェースに接続されるデータ入出力バッファと、
該データ入出力バッファに接続され特定の処理を実行する専用ハードウェアと、
該専用ハードウェアの動作及び処理仕様を制御する制御回路
を含むことを特徴とする請求項１記載の集積回路。
【請求項９】
プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェースを含む集積回路をプログラミングするシステム開発方法であり、
オブジェクト指向分析によりオブジェクト及びオブジェクト間の関係を生成し、
互いに関係するオブジェクトを纏めることにより少なくとも１つのオブジェクトを含むプロセスを生成し、
該集積回路の該プロセッサ、該演算回路群、及び該パラメータ付専用ハードウェア毎に該プロセスを割り当てる
各段階を含むことを特徴とするシステム開発方法。
【請求項１０】
該プロセス間の通信を通信インターフェースとして所定の言語で記述し、
該所定の言語で記述された通信インターフェースを該モジュール間インターフェースのリソース、ハードウェアに対するドライバ、及びプロセス間通信のソフトウェアライブラリの少なくとも１つにマッピングする
各段階を更に含むことを特徴とする請求項９記載のシステム開発方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に集積回路に関し、詳しくは論理を再構成可能な集積回路に関する。
【従来の技術】
実行する処理が予め決められている場合には、これに対して専用ＬＳＩを設計すれば、高い性能且つ少ない消費電力でこの処理を実行するシステムを実現することが出来る。但し、仕様を変更して異なる処理を実行しようとすると、設計及び製造を全てやり直す必要があり、専用ＬＳＩは仕様変更可能性が極めて低い構成である。
【０００２】
仕様変更可能性が高い構成としては、プロセッサによりソフトウェアを実行し、仕様の変更はソフトウェアを書き換えることで実現する構成が挙げられる。この場合、仕様変更可能性は極めて高いが、プロセッサは汎用処理を実行可能なように構成されているために冗長性が高く、処理性能が低くなると共に消費電力が大きくなってしまう。
【０００３】
ＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）は、メモリへのコンフィギュレーションデータの書き込みによって論理素子間の接続を自由に再構成可能とすることにより、ゲート単位での変更を可能な構成とするものである。但し仕様変更可能性があるといっても、仕様変更のためにはＲＴＬ（Ｒｅｇｉｓｔｅｒ　Ｔｒａｎｓｆｅｒ　Ｌｏｇｉｃ）設計からやり直す必要があり、専用ＬＳＩのようにハードウェアを製造し直す必要は無いが、論理設計の面では専用ＬＳＩの設計変更と同等の手間がかかってしまう。またハードウェアに冗長性が高いために、回路規模の面では例えば専用ＬＳＩの１０倍程度の大きさになってしまい、コストが高く消費電力も大きい。
【０００４】
またＳＯＣ（Ｓｙｓｔｅｍ　ｏｎ　Ｃｈｉｐ）は、プロセッサと専用ハードウェアとを同一のＬＳＩチップで構成したものであり、プロセッサは専用ハードウェアを制御するために使用される。専用ハードウェア部分については、上述の専用ＬＳＩと同一の問題がある。
【０００５】
またＦＰＧＡとプロセッサとを組み合せ、プロセッサにより専用ハードウェアを制御する構成が存在する。この構成においてＦＰＧＡの部分については、上述のＦＰＧＡの問題点がそのまま当てはまる。
【０００６】
またプログラミングの問題を考えると、プロセッサとソフトウェアとで構成される高い仕様変更可能性を備えたシステムにおいてさえ、トップダウン的に設計をする場合には、ソフトウェアの仕様変更には大きな手間と時間とがかかり大変な作業となってしまう。トップダウン的なアプローチにおいては処理手順がフローチャートで表現されるために、フローチャートを書き直してソフトウェアを変更する作業は容易ではない。例えば、新しい処理を追加する場合、既存のプログラムの一部に条件分岐を追加すること等が必要になり、新たな処理を単に追加するだけでなく、更なる処理を分岐の先に展開する必要が生じたりする。これを繰り返すとプログラムの可読性やメンテナンス性が低くなり、エラーが多くなったり修正が不可能な状態になったりする。
【０００７】
またＳＯＣでのプログラミングの問題としては、ソフトウェアとハードウェアとの役割の振り分けの難しさがある。ＳＯＣにおいては、設計の初期段階において設計者が経験則に基づいてソフトウェアとハードウェアとに各処理部分を割り振るので、処理の振り分けが最適化されていない場合が多い。また後になってから、ハードウェアとソフトウェアとの間の境界を動かすことが難しい。
【０００８】
即ち、トップダウン的アプローチによるソフトウェアとハードウェアとの切り分けにおいては、設計の最初の段階で全体を見渡し、経験に基づいて重いと判断される処理をハードに割り当て、軽いと判断される処理及び制御はソフトに割り当てる。このような設計手法により得られる構成は、必ずしも最適化されていない。後になって、ハードウェアからソフトウェアに処理を移行させることは不可能ではないが、ソフトウェアからハードウェアに処理を移行するためにはハードウェアの設計変更と工場での製造工程が必要となってしまう。
【発明が解決しようとする課題】
上記のような問題点を解決する１つの手法として、プレアデスというシステムが提案されている（Ｈｕｉ　Ｚｈａｎｇ，　Ｖａｎｄａｎａ　Ｐｒａｂｈｕ，　Ｖａｒｇｈｅｓｅ　Ｇｅｏｒｇｅ，　Ｍａｒｌｅｎｅ　Ｗａｎ，　Ｍａｒｔｉｎ　Ｂｅｎｅｓ，　Ａｒｔｈｕｒ　Ａｂｎｏｕｓ，　”Ａ　１Ｖ　Ｈｅｔｅｒｏｇｅｎｅｏｕｓ　Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ　Ｐｒｏｃｅｓｓｏｒ　ＩＣ　ｆｏｒ　Ｂａｓｅｂａｎｄ　Ｗｉｒｅｌｓｓ　Ａｐｐｌｉｃａｔｉｏｎｓ”，　Ｐｒｏｃｅｅｄｉｎｇｓ　ｏｆ　ＩＳＳＣＣ２０００）。プレアデスにおいては、プロセッサ、ＭＡＣ（乗加算器）、ＡＬＵ（算術演算器）、ＡＧＵ（アドレス生成器）、ＭＥＭ（メモリ）、ＦＰＧＡ等をバスにより接続し、シングルスレッド処理を実行するように設計されている。
【０００９】
プレアデスにおいては、プロセッサ以外に粒度（変更可能な単位の大きさ）が異なる複数種類の再構成可能なモジュール及び専用ハードウェアを提供することにより、仕様変更可能性、性能、及び消費電力の３点から最適化された構成を提供しようとする。但し設計方法がトップダウン的であり、ソフトウェア動作からハードウェア（再構成可能な部分も含む）に移動する処理部分を切り出して、その部分をハードウェアに移動することで最適化をするため、移動のための設計変更に時間がかかる。
【００１０】
またプレアデスでは、シングルプロセス（或いはシングルスレッド）内の処理を各モジュールに割り当てて信号処理を行っているため、各モジュール間で頻繁なデータ転送が必要となり、モジュール間の信号伝送路のリソースにより処理性能が制限される。これをハードウェア的な観点から考えると、プレアデスではＭＡＣ（乗加算器）やＡＬＵ（算術演算器）といった個々の演算器とＦＰＧＡやプロセッサとが、信号伝送路上の同一の階層に設けられる構成となっているため、演算器間或いは演算器とＦＰＧＡ間若しくは演算器とプロセッサ間でのデータの転送量が大きくなり、処理性能が劣化してしまう。
【００１１】
以上を鑑みて、本発明は、仕様変更可能性、性能、及び消費電力が異なる複数のモジュールを搭載し最適な処理の割当てを可能にすると共に、信号伝送路における転送量が比較的少ない論理再構成可能な集積回路を提供することを目的とする。
【課題を解決するための手段】
本発明による集積回路は、プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェースを含むことを特徴とする。
【００１２】
上記発明においては、異なる粒度（変更可能な単位の大きさ）を有する複数の異なるモジュールを搭載することにより、消費電力、性能、仕様変更可能性を最適化することが可能になる。また個々の演算回路がモジュール間インターフェースに独立に接続されるのではなく、演算回路群内に可変な接続経路を設け複数の演算回路を含む構成となっているために、複数の演算器間でのデータ転送を演算回路群内で閉じた構成が実現される。従って本発明においては、モジュール間インターフェース上のデータ転送速度により演算器による演算処理速度が制限されることがなく、高いシステム性能を達成することが出来る。
【００１３】
また本発明によるシステム開発方法は、プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェースを含む集積回路について、オブジェクト指向分析によりオブジェクト及びオブジェクト間の関係を生成し、互いに関係するオブジェクトを纏めることにより少なくとも１つのオブジェクトを含むプロセスを生成し、該集積回路の該プロセッサ、該演算回路群、及び該パラメータ付専用ハードウェア毎に該プロセスを割り当てる各段階を含む。
【００１４】
上記発明では、ハードウェアを含むシステムをオブジェクトで構成することで、オブジェクトの変更等による仕様変更を容易に行うことが出来る。プロセッサ部分或いは再構成可能なハードウェア部分にマッピングされたオブジェクトについては仕様変更が可能であり、仕様変更の対象であるオブジェクトと集積回路のモジュールとの対応関係が明確であるので、仕様変更を容易に行うことが出来る。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図１は、本発明によるアプリケーション特化型プラットフォームＬＳＩの構成を示す図である。
【００１６】
図１において、アプリケーション特化型プラットフォームＬＳＩ１０は、プロセッサ１１、複数の演算器によって構成され演算器間の接続を可変とすることで演算処理の流れを再構成可能な演算回路群１２、ゲートレベルの論理変更が可能な再構成可能ゲートアレイ１３、特定の処理を実行するための専用ハードウェア１４、パラメータ設定により特定の処理の仕様変更が可能なパラメータ付専用ハードウェア１５、共有されるメモリ１６、及びモジュール間インターフェース１７を含む。なお図１において、演算回路群１２、再構成可能ゲートアレイ１３、専用ハードウェア１４、及びパラメータ付専用ハードウェア１５は、それぞれ複数個設けられているが、個数に特に制限は無く１つだけ設ける構成であってもよい。また本発明においてアプリケーション特化型プラットフォームＬＳＩ１０は、少なくともプロセッサ１１、演算回路群１２、及びパラメータ付専用ハードウェア１５を含む構成であるとし、それ以外の論理モジュールである再構成可能ゲートアレイ１３及び専用ハードウェア１４はオプションである。
【００１７】
図１のように、本発明においては、異なる粒度（変更可能な単位の大きさ）を有する複数の異なるモジュールを搭載することにより、消費電力、性能、仕様変更可能性を最適化することが可能になる。即ち、処理の各部分を最適なモジュールに割当てて実行することにより消費電力と性能とを最適化すると共に、仕様変更の場合に必要となる変更の単位の大きさを考慮してモジュールへの処理の割当てを考慮することにより、最適な仕様変更可能性を実現することが出来る。
【００１８】
図２は、アプリケーション特化型プラットフォームＬＳＩの第１実施例の構成を示す図である。図２において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００１９】
図２のアプリケーション特化型プラットフォームＬＳＩ１０Ａは、図１の構成要素に加え、データ転送コントローラ１８を含む。またモジュール間インターフェース１７は複数本のバスで構成され、データ転送コントローラ１８がバス上のデータ転送をコントロールする構成となっている。また共有メモリ１６以外に、各モジュールにローカルなメモリを備えても良い。
【００２０】
図３は、アプリケーション特化型プラットフォームＬＳＩの第２実施例の構成を示す図である。図３において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２１】
図３のアプリケーション特化型プラットフォームＬＳＩ１０Ｂは、図１の構成要素に加え、データ転送コントローラ１８、及びＤＳＰ１９を含む。またモジュール間インターフェース１７は、クロスバーで構成され、データ転送コントローラ１８がクロスバー上のデータ転送をコントロールする構成となっている。これにより、各モジュール間の信号経路の接続を変更可能な再構成可能モジュール間インターフェースを提供することが出来る。また共有メモリ１６以外に、各モジュールにローカルなメモリを備えても良い。また例えば共有メモリ１６を１６バンク構成の４ポートメモリとし、バンク構成によりメモリアクセスの競合を排除する構成として良い。
【００２２】
図４は、アプリケーション特化型プラットフォームＬＳＩの第３実施例の構成を示す図である。図４において、図３と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２３】
図４（ａ）のアプリケーション特化型プラットフォームＬＳＩ１０Ｃは、プロセッサ１１、演算回路群１２、専用ハードウェア１４、パラメータ付専用ハードウェア１５、メモリ１６、クロスバーにより実現されるモジュール間インターフェース１７、データ転送コントローラ１８、Ｉ／Ｏコントローラ２０、及びコネクト部２１を含む。このアプリケーション特化型プラットフォームＬＳＩ１０Ｃには、再構成可能ゲートアレイ１３が設けられていない。
【００２４】
図４（ｂ）は、アプリケーション特化型プラットフォームＬＳＩ１０Ｃに接続する再構成可能ゲートアレイＬＳＩ３０を示す。再構成可能ゲートアレイＬＳＩ３０は、再構成可能ゲートアレイ１３とコネクタ部３１とを含む。
【００２５】
図４（ｃ）は、アプリケーション特化型プラットフォームＬＳＩ１０Ｃと再構成可能ゲートアレイＬＳＩ３０とを積層して接続した構成を示す。コネクタ部２１と３１とを配線接続することで、アプリケーション特化型プラットフォームＬＳＩ１０Ｃから再構成可能ゲートアレイ１３の機能を使用できるようになる。なお図４（ｃ）の構成では積層実装しているが、基板上に２つのチップを平面上に並べて搭載する構成としても良い。また２チップ構成に限定されず、各ＬＳＩを更に並べて３つ以上のチップを一つの基板に実装してもよい。
【００２６】
図５は、アプリケーション特化型プラットフォームＬＳＩの第４実施例の構成を示す図である。図５において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２７】
図５のアプリケーション特化型プラットフォームＬＳＩ１０Ｄは、プロセッサ１１、演算回路群１２、再構成可能ゲートアレイ１３、専用ハードウェア１４、パラメータ付専用ハードウェア１５、メモリ１６、モジュール間インターフェース１７、及びＤＳＰ１９を含む。この第４実施例の構成においては、モジュール間インターフェース１７が階層バスで実現されている。この階層バスにおいて、近接するモジュール間は下層バスにより接続され、距離が離れたモジュール間は上層バス（太線で図示）を介してデータ転送が行われる。図５の例は、２層構成のバスとなっているが、階層数は２層に限られるものでなく、３層或いはそれ以上の階層数であってもよい。
【００２８】
図６は、演算回路群１２の第１実施例の構成を示す図である。
【００２９】
図６の演算回路群１２Ａは、レジスタ４０−１乃至４０−４、複数のセレクタ４１−１乃至４１−３、演算器４２−１１乃至４２−１５、４２−２１乃至４２−２５、及び４２−３１乃至４２−３５、及びコントローラ４３を含む。モジュール間インターフェース１７から供給されるデータは、レジスタ４０−１に入力され一時的に保持される。レジスタ４０−１には複数のレジスタ回路が設けられ複数のデータを同時に格納することが出来る。レジスタ４０−１のデータは、コントローラ４３により制御されるセレクタ４１−１を介して、演算器４２−１１乃至４２−１５に供給される。
【００３０】
演算器４２−１１乃至４２−１５は種類の異なる演算器であり、演算器４２−１１乃至４２−１３は例えば、それぞれ８ビットＭＰＹ（乗算器）、１６ビットＭＰＹ（乗算器）、及びＭＡＣ（乗加算器）である。また演算器４２−１４乃至４２−１５は例えばＡＬＵ（算術演算器）である。演算器４２−１１乃至４２−１５はコントローラ４３の制御の下に動作し、各々が２つのデータを受け取り、所定の演算を実行して１つのデータを出力する。出力されたデータはレジスタ４０−２に供給される。これにより一段目の演算器配列による演算が終了する。なお演算器４２−１１乃至４２−１５が異なる種類であることは必要ではなく、全て同一の種類の演算器（例えばＡＬＵ）であってもよい。
【００３１】
２段目及び３段目も１段目と同様に構成される。レジスタ４０−２のデータは、セレクタ４１−２を介して演算器４２−２１乃至４２−２５に供給され、所定の演算が実行された後、演算結果がレジスタ４０−３に供給される。レジスタ４０−３のデータは、セレクタ４１−３を介して演算器４２−３１乃至４２−３５に供給され、所定の演算が実行され、演算結果がレジスタ４０−４に供給される。レジスタ４０−４の演算結果はモジュール間インターフェース１７に供給される。
【００３２】
このようにモジュール間インターフェース１７から供給されるデータを１段目で演算し、１段目の演算結果のデータを２段目で演算し、２段目の演算結果のデータを３段目で演算する。この際コントローラ４３により、各演算器に供給する演算対象のデータを選択することで、演算器間の接続を任意に構成する。これにより、ある段の結果を次段に供給する演算データの流れを制御し、所望の演算処理を実行することが出来る。コントローラ４３はプログラマブルであり、演算処理の内容を変更する必要が有る場合には、コントローラ４３の制御プログラムを書き換えて演算データの流れ（演算器間の接続）を変更することにより、演算単位での仕様変更が可能となる。
【００３３】
なおこの例では３段構成としたが、段数は３段に限られることなく、２段或いは４段以上の構成であってもよい。
【００３４】
前述のプレアデスでは、ＭＡＣ（乗加算器）やＡＬＵ（算術演算器）といった個々の演算器とＦＰＧＡやプロセッサとが、信号伝送路上の同一の階層に設けられる構成となっているため、演算器間或いは演算器とＦＰＧＡ間若しくは演算器とプロセッサ間でのデータの転送量が大きくなり、処理性能が劣化してしまう。それに対して本発明におけるアプリケーション特化型プラットフォームＬＳＩ１０においては、ゲート単位の変更が可能なＦＰＧＡとソフト書き換えによる変更が可能なプロセッサとの中間の粒度である演算回路群１２は、複数種類の演算器間でのデータ転送を演算回路群１２内で閉じた形の構成となっている。従って本発明においては、モジュール間インターフェース１７上のデータ転送速度により演算器による演算処理速度が制限されることがなく、高いシステム性能を達成することが出来る。
【００３５】
図７は、演算回路群１２の第２実施例の構成を示す図である。
【００３６】
図７の演算回路群１２Ｂは、４段の演算器配列５１乃至５４を含む。各段の演算器配列は、図６の演算回路群１２Ａの演算器配列と同様にレジスタ、セレクタ、及び複数の演算器からなる。４段の演算器配列５１−５４は、後段に行くほど演算器の数が少なくなる構成となっている。これは一連の演算処理を実行するにあたり、後段に行くほど演算の並行性が少なくなることに対応している。即ち、各演算器は２つ又は１つのデータ入力から１つのデータ出力を生成するので、一般に、後段に行くほどデータ数が少なくなり必要な演算器の数が少なくなる。
【００３７】
また図７の構成においては、コンフィギュレーションメモリ４４及びバイパス４５が設けられる。バイパス４５は、各段のレジスタ間を直接に接続することで、演算器が不足した場合或いは該当段に必要なタイプの演算器がない場合等に、次段以降の演算器を使用するために設けられる。これにより、少ない演算器数で演算の最適化を実現することが出来る。またコンフィギュレーションメモリ４４は、各セレクタの選択についての設定情報を蓄えるメモリであり、このメモリにコントローラ４３から適宜設定データを書き込むことで、各セレクタの動作を制御することが出来る。これにより、セレクタによる複雑な選択の組み合わせを、容易に実現することが出来る。
【００３８】
図８は、演算回路群１２の第３実施例の構成を示す図である。
【００３９】
図８の演算回路群１２Ｃは、コントローラ６０、コンフィギュレーションメモリ６１、レジスタ６２、セレクタ６３、クロスバー６４、バッファ６５、及び演算器６６−１乃至６６−６を含む。
【００４０】
モジュール間インターフェース１７から供給されるデータは、レジスタ６２に入力され一時的に保持される。レジスタ６２には複数のレジスタ回路が設けられ複数のデータを同時に格納することが出来る。レジスタ６２のデータは、コントローラ６０により制御されるセレクタ６３及びクロスバー６４を介して、演算器６６−１乃至６６−６に供給される。セレクタ６３の選択についての設定情報は、コンフィギュレーションメモリ６１に格納されている。
【００４１】
演算器６６−１乃至６６−６は種類の異なる演算器であり、例えばＭＰＹ（乗算器）、ＢＩＴ演算器、ＭＡＣ（乗加算器）、ＡＬＵ（算術演算器）等を含む。演算器６６−１乃至６６−６はコントローラ６０の制御の下に動作し、各々が２つ又は１つのデータを受け取り、所定の演算を実行して１つのデータを出力する。なお同一種類の演算器が複数個設けられていてもよく、全ての演算器が同一種類であってもよい。出力されたデータはクロスバー６４及びセレクタ６３を介してレジスタ６２に供給される。これにより演算器配列による最初の演算が終了する。
【００４２】
その後は、コントローラ６０の制御に従って、レジスタ６２のデータを演算器６６−１乃至６６−６により演算し、その結果をレジスタ６２に戻す動作を必要な回数繰り返す。この際、演算の中間結果をバッファ６５に格納して、演算器６６−１乃至６６−６で利用できるようにする。また各演算器６６−１乃至６６−６の出力部分にはレジスタ６６ａが設けられ、出力を一時的に保持可能な構成となっている。また更に、コントローラ６０にはアドレス生成回路６０ａが設けられ、アドレス指定による各ユニットの制御が可能となっている。
【００４３】
またコントローラ６０はプログラマブルであり、演算処理の内容を変更する必要が有る場合には、コントローラ６０の制御プログラムを書き換えて演算データの流れ（演算器間の接続）を変更することにより、演算単位での仕様変更が可能となる。
【００４４】
図９は、演算回路群１２の第４実施例の構成を示す図である。
【００４５】
図９の演算回路群１２Ｄは、コントローラ７０、コンフィギュレーションメモリ７１、メモリ７２、リコンフィギュラブルネットワーク７３、及び演算器７４−１乃至７４−７を含む。演算器７４−１乃至７４−７は種類の異なる演算器であり、例えばＭＰＹ（乗算器）、ＢＩＴ演算器、ＭＡＣ（乗加算器）、ＡＬＵ（算術演算器）、ＭＯＤ演算器（モジュロ演算器）等を含む。なお同一種類の演算器が複数個設けられていてもよく、全ての演算器が同一種類であってもよい。モジュール間インターフェース１７とのインターフェース部分には、メモリ７２が設けられる。またメモリ７２と各演算器７４−１乃至７４−７との間には、信号経路の接続を自由に再構成可能なリコンフィギュラブルネットワーク７３が設けられる。リコンフィギュラブルネットワーク７３の信号経路の接続を設定するコンフィギュレーションデータは、コンフィギュレーションメモリ７１に格納されている。図９の演算回路群１２Ｄの動作は、図８の演算回路群１２Ｃの動作と略同様である。
【００４６】
図１０は、パラメータ付専用ハードウェア１５の第１実施例の構成を示す図である。
【００４７】
図１０のパラメータ付専用ハードウェア１５Ａは、コントローラ８０、パラメータ保持レジスタ８１、データ入出力用バッファ８２、専用ハードウェアエンジン８３、及び一時データ格納バッファ８４を含む。
【００４８】
モジュール間インターフェース１７から供給されるデータは、データ入出力用バッファ８２に一時的に格納され保持される。データ入出力用バッファ８２に格納されるデータは、専用ハードウェアエンジン８３に供給され、コントローラ８０の制御の下で動作する専用ハードウェアエンジン８３により所定のデータ処理が実行される。一時データ格納バッファ８４は、専用ハードウェアエンジン８３によりデータ処理が実行される際に、処理の中間結果等を一時的に格納して保持するバッファである。
【００４９】
専用ハードウェアエンジン８３は、所定の処理を実行するために専用に設計・製造されたハードウェアであり、エンジンの役割を変更することは出来ない。しかし例えば処理のデータ数や精度等のパラメータを変更可能なように構成されている。このパラメータの情報はパラメータ保持レジスタ８１に格納されており、コントローラ８０がパラメータ保持レジスタ８１に格納される情報に基づいて専用ハードウェアエンジン８３を動作させることで、所定の動作を所望の仕様に従い実行することが出来る。
【００５０】
図１１は、パラメータ付専用ハードウェア１５の第２実施例の構成を示す図である。図１１において、図１０と同一の構成要素は同一の符号で参照し、その説明は省略する。
【００５１】
図１１のパラメータ付専用ハードウェア１５Ｂは高速フーリエ変換を実行するためのハードウェアであり、専用ハードウェアエンジン８３Ｂは、ＦＦＴ用のバタフライ演算器８５−１乃至８５−４、及びデータ並び替え処理用のパーミュテータ８６を含む。コントローラ８０により計算する回数を制御することで、ポイント数（データ数）の異なるＦＦＴを実行することが出来る。
【００５２】
図１２は、パラメータ付専用ハードウェア１５の第３実施例の構成を示す図である。図１２において、図１１と同一の構成要素は同一の符号で参照し、その説明は省略する。
【００５３】
図１２のパラメータ付専用ハードウェア１５Ｃは、図１１のパラメータ付専用ハードウェア１５Ｂに対して、クロックコントローラ８７が追加された構成となっている。クロックコントローラ８７はクロック信号を生成し、コントローラ８０、データ入出力用バッファ８２、専用ハードウェアエンジン８３Ｂ、及び一時データ格納バッファ８４に供給する。これらの回路ユニットは、供給されたクロック信号に基づいて動作する。図１２のパラメータ付専用ハードウェア１５Ｃでは、パラメータ設定により、クロックコントローラ８７が生成するクロック信号の周波数を変更可能な構成となっている。これにより、ＦＦＴ演算処理に要する時間を制御することが可能となり、その結果処理モードが変更可能となる。
【００５４】
図１３は、パラメータ付専用ハードウェア１５の第４実施例の構成を示す図である。図１３において、図１２と同一の構成要素は同一の符号で参照し、その説明は省略する。
【００５５】
図１３のパラメータ付専用ハードウェア１５Ｄはスペクトラム拡散通信における逆拡散処理を実行するためのハードウェアであり、専用ハードウェアエンジン８３Ｄは、逆拡散処理用の逆拡散エンジン８５−１乃至８５−８を含む。即ち８フィンガーの逆拡散処理が可能である。またパラメータ設定によりコントローラ８０による制御動作を変更することで、８つの逆拡散エンジンによる時分割処理を実行して、１６、　３２、　或いは４８フィンガーの処理を実現することも可能である。このように時分割処理によりフィンガー数を大きくする場合には、クロックコントローラ８７が生成するクロック信号の周波数を高くして、所定の時間内に所定の処理を終了させることが必要となる。
【００５６】
以下に、本発明によるアプリケーション特化型プラットフォームＬＳＩにおけるシステム開発について説明する。
【００５７】
ソフトウェアの分野では、トップダウンアプローチの仕様変更やメンテナンスの困難さを解決するために、オブジェクト指向の設計手法が開発され利用されている。オブジェクト指向の設計手法においては、ソフトウェアの構成要素を、人間が直感的に理解しやすいオブジェクト単位とし、そのオブジェクト間の相互関係を構築していくことによりソフトウェア全体を形成する。この設計方法のメリットは、ソフトウェアを構成する単位が小さいオブジェクトであるので、仕様を変更する際にはオブジェクトを変更したり、入れ替えたり、或いはオブジェクト間の関係を変更したりすればよく、仕様変更等が容易であることである。
【００５８】
本発明では従来のソフトウェア開発だけでなく、ハードウェアを含むシステムをオブジェクトで構成することで、オブジェクトの変更等による仕様変更を容易にする。オブジェクト指向で設計されたシステムにおいて、少なくとも一つ以上のオブジェクトで構成されるプロセスを、本発明のアプリケーション特化型プラットフォームＬＳＩの各モジュールにマッピングする。
【００５９】
プロセッサ部分或いは再構成可能なハードウェア部分にマッピングされたオブジェクトについては、仕様変更が可能であるため、ＳＯＣでは不可能であったシステムの仕様変更が可能となる。このとき仕様変更の対象であるオブジェクトとＬＳＩのモジュールとの対応関係が明確であるので、仕様変更を容易に行うことが出来る。
【００６０】
図１４は、アプリケーション特化型プラットフォームＬＳＩにおけるシステム開発の一例を示す。
【００６１】
まず仕様からシステムに対するオブジェクト分析を行い、システムをオブジェクトとオブジェクト間の関係として記述する。この段階ではソフトとハードとの区別はない。
【００６２】
次に、関係のあるオブジェクトをそれぞれ纏めることによりプロセス化する。この際、プロセス内での通信量に比較して、プロセス間での通信量が小さくなるようにすること、プロセス間の関係も少なめにすること等を条件として、プロセス化を行う。この段階ではソフトとハードとの区別はない。
【００６３】
次に、プロセス間通信をインターフェース或いはチャネルといった抽象化された形式で記述する。この段階ではソフトとハードとの区別はない。
【００６４】
最後に、アプリケーション特化型プラットフォームＬＳＩを構成する各モジュールに各プロセスを割り当てる。このときインターフェース或いはチャネルで記述された通信は、アプリケーション特化型プラットフォームＬＳＩ上の通信用リソース或いはミドルウェアにマッピングされる。この段階においてハードとソフトとを区別してマッピングする。モジュールに対するプロセスの割り当てを最適化することで、システムを最適化する。また、プロセスはオブジェクトで構成されているため、オブジェクトのプロセス間移動は容易であり、プロセスを再構成するような最適化の作業も容易である。なおこの設計手法は、アプリケーション特化型プラットフォームＬＳＩにだけ適用可能なものではなく、通常のＳＯＣ等にも適用可能である。
【００６５】
上記の本設計手法においては、シングルプロセス（シングルスレッド）のプログラミングではなく、マルチプロセス（マルチスレッド）のプログラミングが行われることになる。各モジュール（プロセッサ、演算回路群、再構成可能ゲートアレイ、専用ハードウェア、パラメータ付専用ハードウェア等）に対してプロセス（スレッド）を割り当てることで、モジュール間のデータ転送を少なくすることが可能になる。それぞれのプロセス（スレッド）内の処理は少なくとも一つ以上のオブジェクトで構成する。そのため、プロセス間の処理の移動が容易である。
【００６６】
上述のように、プロセス（スレッド）間通信をインターフェース記述或いはチャネル記述といった抽象度の高いレベルの記述とすることで、プログラミングの段階ではハードウェア間通信、ソフトウェア間通信、或いはハードウェアとソフトウェア間の通信であるかを意識する必要がなくなる。これを実現するために、インターフェース或いはチャネルに対応するハードウェアモジュール（ハードウェア間通信及びソフトとハード間通信の一部をつかさどる）を設けると共に、ソフトとハードとをつなぐドライバ、ソフト同士をつなぐライブラリを提供する。
【００６７】
なお各モジュール間におけるスレッド或いはプロセス間の通信は、プロセッサ１１が実行するソフトウェアによって制御される。
【００６８】
以下に、本発明によるアプリケーション特化型プラットフォームＬＳＩ用のシステム開発手法について具体時に説明する。
【００６９】
最初の段階であるオブジェクト分析にはＵＭＬを用い、それをＣ＋＋で実装すればよい。次の段階でオブジェクトを纏めることでプロセス化する。更に次の段階でプロセスとインターフェースとを分離する。この際、インターフェースとプロセスとは例えばＳｙｓｔｅｍＣを用いて表現すればよい。次の段階で、プロセスをアプリケーション特化型プラットフォームＬＳＩの各モジュールにマッピングするが、この際、性能を評価しながらマッピングを調整することで最適化を行う。なお使用する記述言語はＣ＋＋の代わりに例えばＪＡＶＡ（登録商標）でもよく、オブジェクト指向言語なら任意のものでよい。またインターフェース記述はＳｙｓｔｅｍＣに限られるものではなく、ＪＩＮＩやＣＯＲＢＡ等を使用してもよい。
【００７０】
図１５は、アプリケーション特化型プラットフォームＬＳＩの各モジュールへプロセスをマッピングする方法の一例を示す。
【００７１】
割当ての対象モジュールがプロセッサである場合には、プロセスをソフトウェアオブジェクトとしてマッピングする。この際、ソフトウェアオブジェクトを生成するのはコンパイラである。またＡＰＩコールで呼び出すプロセスとして、所定のプロセスを専用ハードウェアにマッピングする。またパラメトライズ化されたハードウェアを使用出来るプロセスは、引数付きＡＰＩコールで呼び出すプロセスとして、パラメータ付専用ハードウェアにマッピングする。プロセッサによるソフトウェア処理では速度的に問題があるプロセスは、演算回路群或いは再構成可能ゲートアレイにマッピングする。演算回路群へのマッピングに際しては、専用コンパイラを使用するか或いは専用プログラミングを行う。また再構成可能ゲートアレイへのマッピングに際しては、ＲＴＬ記述又は高位論理合成ツールにより回路としてマッピングする。
【００７２】
またインターフェースは前述のように、例えばＳｙｓｔｅｍＣのチャネル或いはシグナルで記述されている。このインターフェースを、関連プロセスがマッピングされたモジュールのタイプに従って、最適な通信方式にマッピングする。例えば、ハードウェア間の通信である場合にはモジュール間のインターフェースにマッピングし、ソフトとハード間の通信である場合にはドライバとモジュール間のインターフェースに変換され、ソフト間の通信である場合にはプロセス間通信ライブラリに変換する。
【００７３】
以上の動作により、アプリケーション特化型プラットフォームＬＳＩにシステムの各プロセス及びインターフェースをマッピングすることが出来る。
【００７４】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００７５】
なお本発明は、以下の内容を含むものである。
（付記１）プロセッサと、
複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、
パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、
該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェース
を含むことを特徴とする集積回路。
（付記２）該演算回路群は、
該モジュール間インターフェースに接続されるデータ格納回路と、
該データ格納回路と該演算器との間に信号経路を確立し該信号経路の接続を変更可能な接続回路と、
該接続回路の該信号経路の接続を制御する制御回路
を含むことを特徴とする付記１記載の集積回路。
（付記３）該接続回路は変更可能な信号経路を該演算回路間に確立することを特徴とする付記２記載の集積回路。
（付記４）該モジュール間インターフェースに接続されゲートレベルでの論理変更が可能な再構成可能ゲートアレイを更に含むことを特徴とする付記１記載の集積回路。
（付記５）該モジュール間インターフェースに接続され特定の処理を実行する専用ハードウェアを更に含むことを特徴とする付記１記載の集積回路。
（付記６）該モジュール間インターフェースに接続される共有メモリを更に含むことを特徴とする付記１記載の集積回路。
（付記７）該モジュール間インターフェースは接続経路を変更可能な再構成可能ネットワークであることを特徴とする付記１記載の集積回路。
（付記８）該パラメータ付専用ハードウェアは、
該モジュール間インターフェースに接続されるデータ入出力バッファと、
該データ入出力バッファに接続され特定の処理を実行する専用ハードウェアと、
該専用ハードウェアの動作及び処理仕様を制御する制御回路
を含むことを特徴とする付記１記載の集積回路。
（付記９）プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェースを含む集積回路をプログラミングするシステム開発方法であり、
オブジェクト指向分析によりオブジェクト及びオブジェクト間の関係を生成し、
互いに関係するオブジェクトを纏めることにより少なくとも１つのオブジェクトを含むプロセスを生成し、
該集積回路の該プロセッサ、該演算回路群、及び該パラメータ付専用ハードウェア毎に該プロセスを割り当てる
各段階を含むことを特徴とするシステム開発方法。
（付記１０）該プロセス間の通信を通信インターフェースとして所定の言語で記述し、
該所定の言語で記述された通信インターフェースを該モジュール間インターフェースのリソース、ハードウェアに対するドライバ、及びプロセス間通信のソフトウェアライブラリの少なくとも１つにマッピングする
各段階を更に含むことを特徴とする付記９記載のシステム開発方法。
（付記１１）プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェースを含む集積回路において、データ処理の複数のプロセスを該プロセッサ、該演算回路群、該パラメータ付専用ハードウェア毎に割り当ててマルチプロセス処理を実行することを特徴とするデータ処理方法。
（付記１２）プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、ゲートレベルでの論理変更が可能な再構成可能ゲートアレイと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェア、及び該再構成可能ゲートアレイを互いに接続するモジュール間インターフェースを含む集積回路において、データ処理の複数のプロセスを該プロセッサ、該演算回路群、該パラメータ付専用ハードウェア、及び該再構成可能ゲートアレイ毎に割り当ててマルチプロセス処理を実行することを特徴とするデータ処理方法。
（付記１３）プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、特定の処理を実行する専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェア、及び該特定の処理を実行する専用ハードウェアを互いに接続するモジュール間インターフェースを含む集積回路において、データ処理の複数のプロセスを該プロセッサ、該演算回路群、該パラメータ付専用ハードウェア、及び該特定の処理を実行する専用ハードウェア毎に割り当ててマルチプロセス処理を実行することを特徴とするデータ処理方法。
【発明の効果】
本発明においては、異なる粒度（変更可能な単位の大きさ）を有する複数の異なるモジュールを搭載することにより、消費電力、性能、仕様変更可能性を最適化することが可能になる。また個々の演算回路がモジュール間インターフェースに独立に接続されるのではなく、演算回路群内に可変な接続経路を設け複数の演算回路を含む構成となっているために、複数の演算器間でのデータ転送を演算回路群内で閉じた構成が実現される。従って本発明においては、モジュール間インターフェース上のデータ転送速度により演算器による演算処理速度が制限されることがなく、高いシステム性能を達成することが出来る。
【００７６】
また本発明では、ハードウェアを含むシステムをオブジェクトで構成することで、オブジェクトの変更等による仕様変更を容易に行うことが出来る。プロセッサ部分或いは再構成可能なハードウェア部分にマッピングされたオブジェクトについては仕様変更が可能であり、仕様変更の対象であるオブジェクトと集積回路のモジュールとの対応関係が明確であるので、仕様変更を容易に行うことが出来る。
【図面の簡単な説明】
【図１】本発明によるアプリケーション特化型プラットフォームＬＳＩの構成を示す図である。
【図２】アプリケーション特化型プラットフォームＬＳＩの第１実施例の構成を示す図である。
【図３】アプリケーション特化型プラットフォームＬＳＩの第２実施例の構成を示す図である。
【図４】アプリケーション特化型プラットフォームＬＳＩの第３実施例の構成を示す図である。
【図５】アプリケーション特化型プラットフォームＬＳＩの第４実施例の構成を示す図である。
【図６】演算回路群の第１実施例の構成を示す図である。
【図７】演算回路群の第２実施例の構成を示す図である。
【図８】演算回路群の第３実施例の構成を示す図である。
【図９】演算回路群の第４実施例の構成を示す図である。
【図１０】パラメータ付専用ハードウェアの第１実施例の構成を示す図である。
【図１１】パラメータ付専用ハードウェアの第２実施例の構成を示す図である。
【図１２】パラメータ付専用ハードウェアの第３実施例の構成を示す図である。
【図１３】パラメータ付専用ハードウェアの第４実施例の構成を示す図である。
【図１４】アプリケーション特化型プラットフォームＬＳＩにおけるシステム開発の一例を示す図である。
【図１５】アプリケーション特化型プラットフォームＬＳＩの各モジュールへプロセスをマッピングする方法の一例を示す図である。
【符号の説明】
１０　アプリケーション特化型プラットフォームＬＳＩ
１１　プロセッサ
１２　演算回路群
１３　再構成可能ゲートアレイ
１４　専用ハードウェア
１５　パラメータ付専用ハードウェア
１６　メモリ
１７　モジュール間インターフェース
【図１】
2004040188.tif 000003
【図２】
2004040188.tif 000004
【図３】
2004040188.tif 000005
【図４】
2004040188.tif 000006
【図５】
2004040188.tif 000007
【図６】
2004040188.tif 000008
【図７】
2004040188.tif 000009
【図８】
2004040188.tif 000010
【図９】
2004040188.tif 000011
【図１０】
2004040188.tif 000012
【図１１】
2004040188.tif 000013
【図１２】
2004040188.tif 000014
【図１３】
2004040188.tif 000015
【図１４】
2004040188.tif 000016
【図１５】
2004040188.tif 000017