(57)【要約】コンフィギュレーション情報格納部（１０８）は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納している。ＣＰＵ（１００）は、装着されたリコンフィギュラブルモジュール（１０３〜１０６）を、その個数に応じて、コンフィギュレーション情報格納部（１０８）に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションする。【特許請求の範囲】
【請求項１】
ＣＰＵと、
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納するコンフィギュレーション情報格納部とを備え、
１または複数のリコンフィギュラブルモジュールが、着脱可能に構成されており、
前記ＣＰＵは、装着されたリコンフィギュラブルモジュールを、その個数に応じて、前記コンフィギュレーション情報格納部に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションする
ことを特徴とするコンピュータシステム。
【請求項２】
請求項１において、
通信用バスと、
前記通信用バスにそれぞれ接続されており、リコンフィギュラブルモジュールを着脱可能に構成された複数の接続部とを備え、
前記ＣＰＵは、前記接続部に装着されたリコンフィギュラブルモジュールと、前記通信用バスを介して通信可能である
ことを特徴とするコンピュータシステム。
【請求項３】
請求項１において、
前記ＣＰＵは、装着されたリコンフィギュラブルモジュールの個数が変化したとき、変化後の個数に応じて、前記コンフィギュレーション情報を用いて、装着されたリコンフィギュラブルモジュールをコンフィギュレーションする
ことを特徴とするコンピュータシステム。
【請求項４】
請求項１において、
前記コンフィギュレーション情報は、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを含むものであり、
前記ＣＰＵは、
前記複数のサブコンフィギュレーションデータを、装着されたリコンフィギュラブルモジュールに割り振ることによって、コンフィギュレーションを実行する
ことを特徴とするコンピュータシステム。
【請求項５】
請求項４において、
前記コンフィギュレーション情報は、
前記複数のサブコンフィギュレーションデータの割り振りを決めるためのコンフィギュレーション順序決定情報を含み、
前記コンフィギュレーション順序決定情報は、
前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報を含む
ことを特徴とするコンピュータシステム。
【請求項６】
請求項５において、
前記コンフィギュレーション順序決定情報は、
前記複数のサブコンフィギュレーションデータ同士の依存関係を示す依存関係情報を含む
ことを特徴とするコンピュータシステム。
【請求項７】
請求項５において、
前記コンフィギュレーション順序決定情報は、
装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ決定された、前記複数のサブコンフィギュレーションデータの割り振り順を示す実装順序情報を含む
ことを特徴とするコンピュータシステム。
【請求項８】
請求項４において、
前記コンフィギュレーション情報は、
前記複数のサブコンフィギュレーションデータのサイズに関する情報をさらに含む
ことを特徴とするコンピュータシステム。
【請求項９】
請求項４において、
前記複数のサブコンフィギュレーションデータのサイズが、予め定められた所定のサイズ以下に制限されている
ことを特徴とするコンピュータシステム。
【請求項１０】
請求項４において、
前記コンフィギュレーション情報格納部は、前記コンフィギュレーション情報を、複数個備え、
前記複数のコンフィギュレーション情報は、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ生成されたものである
ことを特徴とするコンピュータシステム。
【請求項１１】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造であって、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、
前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを備えた
ことを特徴とするデータ構造。
【請求項１２】
請求項１１において、
前記複数のサブコンフィギュレーションデータ同士の依存関係を示す依存関係情報を備えた
ことを特徴とするデータ構造。
【請求項１３】
請求項１１において、
リコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ決定された、前記複数のサブコンフィギュレーションデータの割り振り順を示す実装順序情報を備えた
ことを特徴とするデータ構造。
【請求項１４】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造であって、
前記コンフィギュレーション情報を、リコンフィギュラブルモジュールの個数のバリエーションに応じて、複数個備え、
前記各コンフィギュレーション情報は、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを備えた
ことを特徴とするデータ構造。
【請求項１５】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成するマッピング装置であって、
前記所定の機能に対してアルゴリズム解析を行い、処理と入出力データとの関係を表すグラフを生成するアルゴリズム解析部と、
前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを、生成するコンフィギュレーション情報生成部とを備えた
ことを特徴とするマッピング装置。
【請求項１６】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成するマッピング方法であって、
前記所定の機能に対してアルゴリズム解析を行い、処理と入出力データとの関係を表すグラフを生成するアルゴリズム解析ステップと、
前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを、生成するコンフィギュレーション情報生成ステップとを備えた
ことを特徴とするマッピング方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、その機能をダイナミックに再構成可能なリコンフィギュラブルモジュールを構成要素として問題を処理するコンピュータシステム、およびリコンフィギュラブルモジュールの機能を決定するためのコンフィギュレーション情報に関する。
【背景技術】
【０００２】  従来の技術として、コンピュータシステムに、リコンフィギュラブルロジック回路を拡張装置として接続するものがある（特許文献１）。また、複数のＦＰＧＡに所定の問題をマッピングして高速に解くものがある（特許文献２）。さらに、ＬＳＩ設計時にレイアウト上で２つのリコンフィギュラブル回路を接続する方法がある（特許文献３）。
【特許文献１】米国特許第６４３８７３７号明細書
【特許文献２】米国特許第６４１５４３０号明細書
【特許文献３】米国特許第６３３５６３５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】  リコンフィギュラブルＬＳＩを実装したコンピュータシステムにおいて、処理すべき問題が大規模になった場合、既に実装されているリコンフィギュラブルＬＳＩのみでは多大な処理時間が必要となることがあった。一方で、最初から不必要に大規模なリコンフィギュラブルＬＳＩを実装すると、コンピュータシステム全体のコストが高くなってしまうという問題があった。すなわち、処理時間とコストとの間にはトレードオフの関係があり、これに柔軟に対応できるシステムが期待される。【０００４】  ところが上述の従来技術はいずれも、初期にコンピュータシステム全体の構成を決定した上でコンフィギュレーション情報をマッピングしているので、この処理時間とコストとのトレードオフの関係に柔軟に対応することができない。例えば、特許文献１の技術では、リコンフィギュラブルロジック回路に拡張性がない。また、特許文献２の技術では、複数のＦＰＧＡを並べたシステムに固有のマッピングがなされるため、複数のＦＰＧＡのうちどれか１つでも欠けると問題は解けない。さらに、特許文献３の技術では、リコンフィギュラブル回路をあくまで設計時に接続するのみであり、設計終了後にリコンフィギュラブル回路をさらに接続したり、切り離したりすることはできない。また、複数のリコンフィギュラブルＬＳＩでシステムを構成したり、リコンフィギュラブルＬＳＩの個数を可変にしたりすることもできない。【０００５】  本発明は、例えば、初期のコストを低く抑えつつ、将来的に大規模な問題を処理する必要が生じた場合であっても柔軟に対応できるようなコンピュータシステムを提供することを第１の課題とする。【０００６】  また、大規模な問題をリコンフィギュラブル回路で解こうとした場合、複数のリコンフィギュラブルＬＳＩを実装するか、大規模なリコンフィギュラブルＬＳＩを実装する必要がある。ところが従来の技術では、大規模な問題のハードウェアへのマッピングは、１または複数のリコンフィギュラブルＬＳＩを実装したコンピュータシステムに固有のものになる。そのため、例えば１個のリコンフィギュラブルＬＳＩに実装される回路規模が大きくなったり、実装するリコンフィギュラブルＬＳＩの個数が増えたりするなど、ハードウェアの構成が変更された場合には、マッピングをやり直す必要があった。【０００７】  本発明は、実装されるリコンフィギュラブルＬＳＩの構成が変更された場合であっても、マッピングをやり直す必要がないコンフィギュレーション情報を提供することを第２の課題とする。【０００８】  以上を総括して、本発明の目的は、大規模な問題を複数のリコンフィギュラブルモジュールを実装したコンピュータシステムで解く場合に、実装されるリコンフィギュラブルモジュールの個数と無関係なマッピングを実現すること、および将来、問題が大規模化したときであっても、柔軟に対応できるコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００９】  前記の課題に鑑み、本発明は、リコンフィギュラブルモジュールを増設可能にしたことを特徴とする。【００１０】  具体的には、本発明に係るコンピュータシステムは、ＣＰＵと、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納するコンフィギュレーション情報格納部とを備え、１または複数のリコンフィギュラブルモジュールが、着脱可能に構成されており、前記ＣＰＵは、装着されたリコンフィギュラブルモジュールを、その個数に応じて、前記コンフィギュレーション情報格納部に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションするものである。【００１１】  この発明によると、リコンフィギュラブルモジュールが着脱可能に構成されており、リコンフィギュラブルモジュールが装着されたとき、装着されたリコンフィギュラブルモジュールは、その個数に応じて、コンフィギュレーション情報格納部に格納された、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を用いて、ＣＰＵによってコンフィギュレーションされる。このため、リコンフィギュラブルモジュールを増設可能となるので、例えば、初期段階ではコスト削減のためにリコンフィギュラブルモジュールの個数を少なくしておき、将来、問題が大規模化したときにはリコンフィギュラブルモジュールを増設する、というような柔軟な対応が可能になる。【００１２】  また、本発明は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造として、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを備えたものである。【００１３】  このデータ構造を用いることによって、コンピュータシステムに装着されたリコンフィギュラブルモジュールに対して、所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを、複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報を参照して、それぞれ、割り当てることができる。このため、リコンフィギュラブルモジュールの個数が変更された場合であっても、共通のコンフィギュレーション情報を用いて、装着されたリコンフィギュラブルモジュールを最適にコンフィギュレーションすることができる。【００１４】  また、本発明は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造として、前記コンフィギュレーション情報を、リコンフィギュラブルモジュールの個数のバリエーションに応じて、複数個備え、前記各コンフィギュレーション情報は、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを備えたものである。【００１５】  通常、リコンフィギュラブル情報はコンピュータシステムとは異なるシステムにおいて生成される。このため、コンピュータシステムに装着されるリコンフィギュラブルモジュールの個数が変更された場合は、再度何らかの手段によってコン���ィギュレーション情報を入手する必要がある。ところが、本発明のデータ構造のように、予め想定されるリコンフィギュラブルモジュールの個数のバリエーションに対応して複数のコンフィギュレーション情報を準備しておくことによって、装着されたリコンフィギュラブルモジュールの個数が変更された場合にも、柔軟に対応できる。【００１６】  また、本発明は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報生成するマッピング装置および方法として、前記所定の機能に対してアルゴリズム解析を行い、処理と入出力データとの関係を表すグラフを生成し、前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを、生成するものである。
【発明の効果】
【００１７】  本発明によると、リコンフィギュラブルモジュールの個数が変更された場合でも、同じコンフィギュレーション情報を用いて、リコンフィギュラブルモジュールをコンフィギュレーションし、処理を実行することができる。【００１８】  これにより、例えば、リコンフィギュラブルモジュール１個の処理能力が増えたとき、より少ない個数のリコンフィギュラブルモジュールを用いて、同じ機能を同程度の処理時間内で実行させることが可能になる。【００１９】  また、実行させる機能の規模がさらに大きくなったとしても、これに合わせてリコンフィギュラブルモジュールを増設することによって、所定の処理時間内で実行させることが可能になる。例えば、動画の再生のみをさせていたシステムに対して、リコンフィギュラブルモジュールを増設することによって、動画の再生と同時に受信した動画をＨＤからＳＤに変換しながら記録する、というような動作が可能になる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の一実施形態に係るコンピュータシステムの構成を示す図である。
【図２】図２は、リコンフィギュラブルＬＳＩの着脱機構の構成例である。
【図３】図３は、図１と異なる個数のリコンフィギュラブルＬＳＩが実装されたコンピュータシステムの構成を示す図である。
【図４】図４は、本発明の一実施形態に係るマッピング装置の構成を示す図である。
【図５】図５は、動画のＨＤからＳＤへのフォーマット変換の処理内容の例を示す図である。
【図６】図６は、図４のマッピング装置におけるアルゴリズム解析部の処理結果の例を示す図である。
【図７】図７は、図４のマッピング装置におけるコンフィギュレーション情報生成部の処理結果を示す図である。
【図８】図８は、図４のマッピング装置における番号付与部の処理結果の例を示す図である。
【図９】図９は、図４のマッピング装置における通信情報付与部の処理結果の例を示す図であり、本発明に係るコンフィギュレーション情報の一例を示す図である。
【図１０】図１０は、図９のコンフィギュレーション情報が格納された状態を示す模式図である。
【図１１】図１１は、通信用メモリのマッピングの例を示す図である。
【図１２】図１２は、本発明の一実施形態に係るコンピュータシステムの動作を示すフローチャートである。
【図１３】図１３は、図１のコンピュータシステムの動作を具体的に示す図である。
【図１４】図１４は、図３のコンピュータシステムの動作を具体的に示す図である。
【図１５】図１５は、図３のコンピュータシステムにおいて２個のリコンフィギュラブルＬＳＩをその２倍の集積度を有する１個のリコンフィギュラブルＬＳＩに置換した場合の動作を具体的に示す図である。
【図１６】図１６は、本発明に係るコンフィギュレーション情報の他の例を示す図である。
【図１７】図１７は、図１６のコンフィギュレーション情報が格納された状態を示す模式図である。
【図１８】図１８は、図４のマッピング装置におけるコンフィギュレーション情報生成部の処理結果の他の例を示す図である。
【図１９】図１９は、本発明に係るコンピュータシステムの他の構成例である。
【図２０】図２０は、本発明に係るコンピュータシステムの他の構成例である。
【図２１】図２１は、本発明に係るコンピュータシステムの他の構成例である。
【図２２】図２２は、本発明に係るコンピュータシステムの他の構成例である。
【図２３】図２３は、本発明に係るコンピュータシステムの他の構成例である。
【図２４】図２４は、図２３の構成におけるコンフィギュレーション情報の例を示す図である。
【図２５】図２５は、本発明に係るコンピュータシステムの他の構成例である。
【図２６】図２６は、本発明に係るコンピュータシステムの他の構成例である。
【図２７】図２７は、本発明に係るコンピュータシステムの他の構成例である。
【図２８】図２８は、図２６および図２７の構成におけるコンフィギュレーション情報の例を示す図である。
【符号の説明】
【００２１】  １００  ＣＰＵ
１０１  メインメモリ
１０２  バスブリッジ
１０３，１０４，１０５，１０６  リコンフィギュラブルＬＳＩ（リコンフィギュラブルモジュール）
１０７  通信用メモリ
１０８  コンフィギュレーション情報格納メモリ（コンフィギュレーション情報格納部）
１１０  メインバス
１１１  通信用バス
１２０  通信用バス
１２１  ソケット（接続部）
１２２  リコンフィギュラブルＬＳＩ
２００  アルゴリズム解析部
２０１  コンフィギュレーション情報生成部
２０２  番号付与部
２０３  通信情報付与部
３００  コンフィギュレーション順序決定情報
３０１  内部構造情報
３０２  実装順序情報
４００  コンフィギュレーション順序決定情報
４０１  内部構造情報
４０２  依存関係情報
４０４〜４１０  サブコンフィギュレーションデータ
【発明を実施するための最良の形態】
【００２２】  以下、図面を参照しながら本発明を実施するための最良の形態について説明する。【００２３】  図１は本発明の一実施形態に係るコンピュータシステムの構成を示す図である。図１において、プロセッサユニットであるＣＰＵ１００は、メインバス１１０を介してメインメモリ１０１に格納されたプログラムを読み出し、そのプログラムに従って動作することにより、コンピュータシステム全体の制御を司っている。メインバス１１０はバスブリッジ１０２によって通信用バス１１１と接続されている。バスブリッジ１０２は、メインバス１１０と通信用バス１１１のいずれのバスに接続されたいずれのデバイスがマスタ・スレーブとしてデータのやり取りを行うかを調停する機能を有する。【００２４】  メインバス１１０は、コンフィギュレーション情報格納部としてのコンフィギュレーション情報格納メモリ１０８と、画面出力インタフェース（ＩＦ）１０９と、汎用ＩＯ１１２とが接続されている。このコンピュータシステムは、汎用ＩＯ１１２を介して、ＨＤＤドライブ１１３、ＤＶＤドライブ１１４およびチューナー１１５などとデータのやりとりが可能になっている。【００２５】  通信用バス１１１は、その機能を再構成可能なデバイスであるリコンフィギュラブルＬＳＩ１０３〜１０６と、通信用メモリ１０７とが接続されている。リコンフィギュラブルＬＳＩ１０３〜１０６は通信用メモリ１０７を介して互いに通信を行う。【００２６】  図１のコンピュータシステムでは、リコンフィギュラブルＬＳＩ１０３〜１０６が、着脱可能な構成となっている。そして、リコンフィギュラブルＬＳＩ１０３〜１０６はリコンフィギュラブルモジュールとして機能する。【００２７】  コンフィギュレーション情報格納メモリ１０８は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納する。リコンフィギュラブルＬＳＩ１０３〜１０６は、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報によって、その内部接続関係が決定されることにより、その機能をコンフィギュレーション可能である。換言すれば、コンフィギュレーション情報とは、再構成可能なデバイスであるリコンフィギュラブルＬＳＩに所定の機能を実現させるために、その内部接続関係を決定するための情報である。ＣＰＵ１００は、装着されたリコンフィギュラブルモジュールを、その個数に応じて、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションする。【００２８】  図２はリコンフィギュラブルＬＳＩの着脱機構の構成例である。図２の構成では、ボード上の通信用バス１２０に接続された４個の接続部としてのソケット１２１を備えており、各ソケット１２１は、リコンフィギュラブルＬＳＩ１２２が着脱可能に構成されている。このソケット１２１と通信用バス１２０の構成は、例えば、パーソナルコンピュータにおいてメモリを接続する構成と同様に実現することが可能である。図２の例では、リコンフィギュラブルＬＳＩ１２２は２個実装されており、２個のソケット１２１が開いているが、最大４個までのリコンフィギュラブルＬＳＩ１２２を実装���能である。【００２９】  図２のような機構をコンピュータシステムに設けることによって、実装されるリコンフィギュラブルＬＳＩの個数を変更可能にすることができる。例えば図１のコンピュータシステムにおいて、通信用バス１１１に図２のようなソケット１２１を複数個設ければよい。【００３０】  図３は図１と異なる個数である２個のリコンフィギュラブルＬＳＩ１０３，１０４を実装した場合のコンピュータシステムの構成を示す図である。【００３１】  なお、以下の説明では、リコンフィギュラブルＬＳＩ１０３〜１０６の回路規模は同一であるものと仮定して説明を行う。【００３２】  図４は本発明の一実施形態に係るマッピング装置の構成を示す図である。図４のマッピング装置は、図１に示したようなコンピュータシステムの各々のリコンフィギュラブルＬＳＩに、コンピュータシステムとして処理すべき大規模な問題をどのように割り振るか（本明細書においては、マッピングと称す）を決定するものである。すなわち、図４のマッピング装置は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成する。【００３３】  図４のマッピング装置には、まずコンピュータシステムとして処理すべき大規模な問題が入力される。ここで問題とは、例えば、ＭＰＥＧの符号化・復号化、暗号の解読といった、コンピュータシステムが処理すべき対象、言い換えれば、コンピュータシステムが実現する所定の機能のことをいう。【００３４】  入力された大規模な問題は、まずアルゴリズム解析部２００において、複数のステージと接続枝とから成るグラフに展開される。次にコンフィギュレーション情報生成部２０１において、展開された複数のステージを、データ量の上限が限られた複数のサブコンフィギュレーションデータに変換する。変換された複数のサブコンフィギュレーションデータは、番号付与部２０２において、番号を付与される。そして通信情報付与部２０３において、サブコンフィギュレーションデータによってコンフィギュレーションされるリコンフィギュラブルモジュール間の通信情報が、コンフィギュレーション情報に付与される。【００３５】  なお、図４における符号２００〜２０３をそれぞれ処理ステップとみなすことによって、図４は本発明の一実施形態に係る、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成するマッピング方法を示すフローチャートとなる。【００３６】  以下、図５から図９を用いて、図４のマッピング装置の具体的な処理内容をさらに詳細に説明する。なお、以下の説明では大規模な問題の一例として、動画をＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）からＳＤ（Ｓｔａｎｄａｒｄ  Ｄｅｆｉｎｉｔｉｏｎ）にフォーマット変換する処理を例にとって説明する。【００３７】  図５は動画のＨＤからＳＤへのフォーマット変換の処理内容の例である。図５において、ｄｅｃａはオーディオデータのデコード処理をする関数、ｄｅｃｖはビデオデータのデコード処理をする関数、ｅｎｃａはオーディオデータのエンコード処理をする関数、ｅｎｃｖはビデオデータのエンコード処理をする関数である。ｃｏｍｂはｅｎｃｖで生成されたビデオデータとｅｎｃａで生成されたオーディオデータとから、ストリームデータを生成する関数である。【００３８】  本実施形態では、リコンフィギュラブルＬＳＩ１０３〜１０６を着脱可能な構成としている。すなわち、従来のようにコンピュータシステムの構成が予め決まっているわけではなく、その構成は変更され得る。一方、マッピング装置は通常、コンピュータシステムとは別のシステムとして構成されるため、コンピュータシステムの構成が変わるたびにマッピングの処理を再度やり直すことは極めて困難である。したがって、コンピュータシステムの構成が変更された場合であっても、マッピングをやり直すことなくシステムを再構成できるように、コンフィギュレーション情報をいかに生成するかが重要となる。【００３９】  図６は図４のマッピング装置におけるアルゴリズム解析部２００の処理結果の例を示す図である。図６は、図５の処理内容を所定の機能としてアルゴリズム解析を行ったものである。図６に示すように、処理と入出力データとの関係を表すグラフが生成されている。すなわち、入出力データが○で囲われて示されており、処理が□で囲われて示されている。また、データの流れが、矢印状の接続枝で表されている。【００４０】  図６に示すように、ｅｎｃａはｄｅｃａの処理結果を用いており、ｅｎｃｖはｄｅｃａの処理結果を用いている。さらにｃｏｍｂはｅｎｃａとｅｎｃｖの両方の処理結果を用いている。一方で、ｄｅｃａとｄｅｃｖ、あるいはｅｎｃａとｅｎｃｖは、依存関係がないため並列に実行することが可能である。【００４１】  なお、ビデオの処理はオーディオの処理と比較すると一般に処理量が多い。したがってこの例では、ｄｅｃｖとｅｎｃｖは、１つのリコンフィギュラブルＬＳＩにマッピングすることが難しいほど大規模な処理であるとする。【００４２】  図７は図４のマッピング装置におけるコンフィギュレーション情報生成部２０１の処理結果の例を示す図である。図７は、図６のグラフにおける各処理に対して、所定のサイズを上限として分割を行ったものである。図７では、入出力データが○で囲われて示されており、サブコンフィギュレーションデータが□で囲われて示されている。また、データの流れが、矢印状の接続枝で表されている。【００４３】  ここでサブコンフィギュレーションデータとは、コンピュータシステム全体をコンフィギュレーションするコンフィギュレーション情報の中の、各々のコンフィギュラブルモジュールをコンフィギュレーションするためのデータを示す。【００４４】  また、所定のサイズとは、具体的には、各リコンフィギュラブルＬＳＩ１０３〜１０６にマッピング可能な規模のことである。この所定のサイズは、装着されるリコンフィギュラブルモジュールの仕様から決定される。例えば、最小の回路規模を持つリコンフィギュラブルモジュールにマッピングできる程度のデータのサイズを、所定のサイズとすればよい。サブコンフィギュレーションデータを所定のサイズ以上にならないようにすることによって、生成されるサブコンフィギュレーションデータは必ず、１つのリコンフィギュラブルＬＳＩをコンフィギュレーションできる規模のものとなる。【００４５】  図７において、図６と異なるのは、ｄｅｃｖ��ｄｅｃｖ１とｄｅｃｖ２とに、また、ｅｎｃｖがｅｎｃｖ１とｅｎｃｖ２とに分割されている点である。上述のように、ｄｅｃｖとｅｎｃｖは大規模な処理であるため、所定のサイズを上限とした結果、２つに分割されている。分割は、各々のアルゴリズムを解析し、各々のアルゴリズムを並列に処理可能なサブアルゴリズムに分割することによって、行われている。【００４６】  分割された各アルゴリズムおよびサブアルゴリズムは、リコンフィギュラブルＬＳＩの内部接続関係を決定するための情報であるサブコンフィギュレーションデータへと変換される。これによって、所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータが得られる。また、図７に示すようなサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報が得られる。すなわち、図６では□は漠然と処理を表しているのに対して、図７では□は各リコンフィギュラブルＬＳＩをコンフィギュレーションするためのサブコンフィギュレーションデータを示している。【００４７】  図８は図４のマッピング装置における番号付与部２０２の処理結果の例を示す図である。図８（ａ）では、図７の内部構造情報において、各サブコンフィギュレーションデータに通し番号が付与されている。すなわち、□で囲われた各サブコンフィギュレーションデータの肩に、□で囲われた通し番号が付されている。また、図８（ｂ）に示すように、各サブコンフィギュレーションデータ同士の依存関係を示す依存関係情報が生成される。図８（ｂ）のテーブルデータにおいて、各数字はサブコンフィギュレーションデータに付与された通し番号であり、○は依存関係なし、×は依存関係ありを示す。すなわち、○は、異なるリコンフィギュラブルＬＳＩに同一のタイミングでマッピングすることが可能なサブコンフィギュレーションデータ同士であることを示し、×は、番号が小さい方のサブコンフィギュレーションデータの処理が終了した後でないと、番号が大きい方のサブコンフィギュレーションデータをマッピングすることができないことを示す。【００４８】  図９は図４のマッピング装置における通信情報付与部２０３の処理結果の例を示す図である。図９では、図８の内部構造情報において、処理途中における各中間データに番号が付与されている。すなわち、○で囲われた各中間データの肩に、□で囲われた番号が付されている。この番号は、リコンフィギュラブルモジュール同士が通信する際に通信用メモリに置かれるデータの通し番号になる。この状態で、コンピュータシステムをコンフィギュレーションするためのコンフィギュレーション情報が完成したことになる。すなわち、内部構造情報４０１と依存関係情報４０２を含むコンフィギュレーション順序決定情報４００と、複数のサブコンフィギュレーションデータとからなるコンフィギュレーション情報が、図１のコンフィギュレーション情報格納メモリ１０８に格納される。【００４９】  図１０はコンフィギュレーション情報格納メモリ１０８にコンフィギュレーション情報が格納された状態を示す模式図である。図１０において、４００は内部構造情報４０１と依存関係情報４０２を含むコンフィギュレーション順序決定情報であり��４０３は複数のサブコンフィギュレーションデータ４０４〜４１０を含むサブコンフィギュレーションデータモジュールである。コンフィギュレーション順序決定情報４００とサブコンフィギュレーションデータモジュール４０３とによって、コンフィギュレーション情報４２０が構成されている。また、コンフィギュレーション情報格納メモリ１０８には、他の機能を実現するためのコンフィギュレーション情報４３０も格納されている。コンフィギュレーション情報は、例えば、コンフィギュレーション情報格納メモリ１０８に予め実装しておけばよい。あるいは、ＤＶＤなどのコンピュータ読み取り可能な記録媒体にコンフィギュレーション情報を記録しておき、この記録媒体から読み出したコンフィギュレーション情報を、汎用ＩＯ１１２を介して、コンフィギュレーション情報格納メモリ１０８にインストールするようにしてもよい。【００５０】  また図１１は図１の通信用メモリ１０７のマッピングの例である。図１１では、図９において番号が付与された各中間データがマッピングされている。また、下位アドレスには、各中間データとメモリアドレスとの対照表が与えられており、動作時にはこの対照表を用いて通信を行う。【００５１】  図１２は本実施形態に係るコンピュータシステムの動作を示すフローチャートである。図１２に示すように、ＣＰＵ１００はまず、装着されたリコンフィギュラブルＬＳＩの個数を決定する（６００）。そして、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報の中の内部構造情報４０１を参照して、メインメモリ１０１および通信用メモリ１０７におけるデータ格納場所を確保する（６０１）。【００５２】  次に、ＣＰＵ１００は、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報の中の内部構造情報４０１および依存関係情報４０２を参照して、装着されたリコンフィギュラブルＬＳＩの個数に応じて、並列実行するサブコンフィギュレーションデータを決定する（６０２）。そして、決定したサブコンフィギュレーションデータを用いてリコンフィギュラブルＬＳＩをコンフィギュレーションし（６０３）、各リコンフィギュラブルＬＳＩに処理を実行させる（６０４）。このようなステップ６０２〜６０３を、全てのサブコンフィギュレーションデータについてコンフィギュレーションおよび処理が実行されるまで繰り返す（６０５）。全てのサブコンフィギュレーションデータについてコンフィギュレーションおよび処理が実行されると、動作を終了する（６０６）。【００５３】  図１３を用いて、図１のコンピュータシステムの動作を具体的に説明する。ここでは、図９に示すコンフィギュレーション情報がコンフィギュレーション情報格納メモリ１０８に格納されているものとする。まずＣＰＵ１００は、装着されたリコンフィギュラブルＬＳＩ１０３〜１０６の個数を４個と決定する（６００）。そして図１３（ａ）に示すように、メインメモリ１０１において、入力データａ，ｖと出力データｂの格納場所を確保し、通信用メモリ１０７において、番号４，５，６，７−１，７−２，７−３の中間データの格納場所を確保する（６０１）。【００５４】  次に、ＣＰＵ１０���は、サブコンフィギュレーションデータを各リコンフィギュラブルＬＳＩ１０３〜１０６に割り振り、処理を実行させる。ここでは、装着されたリコンフィギュラブルＬＳＩの個数が４個であることに基づき、コンフィギュレーション情報格納メモリ１０８に格納された内部構造情報４０１および依存関係情報４０２を参照して、３回に分けてコンフィギュレーションを行っている。【００５５】  まず図１３（ａ）に示すように、ＣＰＵ１００は、番号１，２，３のサブコンフィギュレーションデータすなわちｄｅｃａ，ｄｅｃｖ１，ｄｅｃｖ２を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３〜１０５をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３〜１０５に処理を実行させる（６０４）。このとき、メインメモリ１０１に格納された入力データａ，ｖがバスブリッジ１０２を介してリコンフィギュラブルＬＳＩ１０３〜１０５に入力され、処理の結果得られた番号４，５，６の中間データが通信用メモリ１０７に格納される。【００５６】  次に図１３（ｂ）に示すように、ＣＰＵ１００は、番号４，５，６のサブコンフィギュレーションデータすなわちｅｎｃａ，ｅｎｃｖ１，ｅｎｃｖ２を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３〜１０５をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３〜１０５に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号４，５，６の中間データがリコンフィギュラブルＬＳＩ１０３〜１０５に入力され、処理の結果得られた番号７−１，７−２，７−３の中間データが通信用メモリ１０７に格納される。【００５７】  次に図１３（ｃ）に示すように、ＣＰＵ１００は、番号７のサブコンフィギュレーションデータすなわちｃｏｍｂを実行するものとして決定し（６０２）、これを用いてリコンフィギュラブルＬＳＩ１０３をコンフィギュレーションする（６０３）。そして、リコンフィギュラブルＬＳＩ１０３に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号７−１，７−２，７−３の中間データがリコンフィギュラブルＬＳＩ１０３に入力され、処理の結果得られた出力データｂがバスブリッジ１０２を介してメインメモリ１０１に格納される。これで、全ての処理が終了したので、動作終了となる（６０５，６０６）。【００５８】  また、図１４を用いて、図３のコンピュータシステムの動作を具体的に説明する。ここでも、図９に示すコンフィギュレーション情報がコンフィギュレーション情報格納メモリ１０８に格納されているものとする。まずＣＰＵ１００は、装着されたリコンフィギュラブルＬＳＩ１０３，１０４の個数を２個と決定する（６００）。そして図１４（ａ）に示すように、メインメモリ１０１において、入力データａ，ｖと出力データｂの格納場所を確保し、通信用メモリ１０７において、番号４，５，６，７−１，７−２，７−３の中間データの格納場所を確保する（６０１）。【００５９】  次に、ＣＰＵ１００は、サブコンフィギュレーションデータを各リコンフィギュラブルＬＳＩ１０３，１０４に割り振り、処理を実行させる。ここでは、装着されたリコンフィギュラブルＬＳＩの個数が２個であることに基づき、コンフィギュレーション情報格納メモリ１０８に格納された内部構造情報４０１および依存関係情報４０２に基づいて、４回に分けてコンフィギュレーションを行っている。【００６０】  まず図１４（ａ）に示すように、ＣＰＵ１００は、番号１，２のサブコンフィギュレーションデータすなわちｄｅｃａ，ｄｅｃｖ１を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３，１０４をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３，１０４に処理を実行させる（６０４）。このとき、メインメモリ１０１に格納された入力データａ，ｖがバスブリッジ１０２を介してリコンフィギュラブルＬＳＩ１０３，１０４に入力され、処理の結果得られた番号４，５の中間データが通信用メモリ１０７に格納される。【００６１】  次に図１４（ｂ）に示すように、番号３，４のサブコンフィギュレーションデータすなわちｄｅｃｖ２，ｅｎｃａを並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３，１０４をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３，１０４に処理を実行させる（６０４）。このとき、メインメモリ１０１に格納された入力データｖがバスブリッジ１０２を介してリコンフィギュラブルＬＳＩ１０３に入力されるとともに、通信用メモリ１０７に格納された番号４の中間データがリコンフィギュラブルＬＳＩ１０４に入力され、処理の結果得られた番号６，７−１の中間データが通信用メモリ１０７に格納される。【００６２】  次に図１４（ｃ）に示すように、番号５，６のサブコンフィギュレーションデータすなわちｅｎｃｖ１，ｅｎｃｖ２を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３，１０４をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３，１０４に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号５，６の中間データがリコンフィギュラブルＬＳＩ１０３，１０４に入力され、処理の結果得られた番号７−２，７−３の中間データが通信用メモリ１０７に格納される。【００６３】  次に図１４（ｄ）に示すように、番号７のサブコンフィギュレーションデータすなわちｃｏｍｂを実行するものとして決定し（６０２）、これを用いてリコンフィギュラブルＬＳＩ１０３をコンフィギュレーションする（６０３）。そして、リコンフィギュラブルＬＳＩ１０３に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号７−１，７−２，７−３の中間データがリコンフィギュラブルＬＳＩ１０３に入力され、処理の結果得られた出力データｂがバスブリッジ１０２を介してメインメモリ１０７に格納される。これで、全ての処理が終了したので、動作終了となる（６０５，６０６）。【００６４】  ここで、図１のような４個のリコンフィギュレーションＬＳＩが装着されたコンピュータシステムでは、図１３に示すように３回に分けて処理がなされているのに対して、図��のような２個のリコンフィギュレーションＬＳＩが装着されたコンピュータシステムでは、図１４に示すように４回に分けて処理がなされている。すなわち、本実施形態によると、装着されたリコンフィギュラブルＬＳＩの個数が異なっていても、同一のコンフィギュレーション情報を用いて、コンピュータシステムをコンフィギュレーションすることが可能である。このため、例えば、当初は少ない個数のリコンフィギュラブルＬＳＩを用いて処理を行わせ、後日にリコンフィギュラブルＬＳＩを増設することによって高速処理させる、といったことが可能になる。【００６５】  なお、図３のリコンフィギュラブルＬＳＩ１個の処理能力が図１のリコンフィギュラブルＬＳＩ１個の処理能力より高い場合には、図１３と同様に処理を実行できる場合もあり得る。【００６６】  また、図１４の処理では処理時間がかかり過ぎるような場合には、リコンフィギュラブルＬＳＩを増設して図１のような構成にすることによって、より高い処理性能を得ることができる。【００６７】  また、図１３の処理ではリコンフィギュラブルＬＳＩ１０６が用いられていない。このリコンフィギュラブルＬＳＩ１０６を用いて、図１３に示された処理と並行に別の処理を行うことができる。図１３では動画を記録する処理を実行しているが、リコンフィギュラブルＬＳＩ１０６を用いて、例えば、動画の記録をしながらテレビ放送を見ることができる。【００６８】  なお、ここまでの説明は、装着されるリコンフィギュラブルＬＳＩの回路規模は全て同一であるものとした。しかしながら、装着されるリコンフィギュラブルＬＳＩの回路規模は互いに異なってもよいことはいうまでもない。このような場合を考慮すると、コンフィギュレーション情報に、各サブコンフィギュレーションデータのサイズに関する情報を含めておくのが好ましい。すなわち、各サブコンフィギュレーションデータについて、そのサブコンフィギュレーションデータによってコンフィギュレーション可能なリコンフィギュラブルＬＳＩの回路規模を示す情報（以下、サイズ情報と称す）を、コンフィギュレーション情報格納メモリ１０８に格納しておく。これにより、例えば、現在装着されているリコンフィギュラブルＬＳＩを後日、さらに集積度の高いリコンフィギュラブルＬＳＩと置換する場合などにも柔軟に対応可能である。【００６９】  図１５は図３のコンピュータシステムにおいて、２個のリコンフィギュラブルＬＳＩ１０３，１０４をその２倍の集積度を有する１個のリコンフィギュラブルＬＳＩ１０３Ａに置換した場合の動作を示す。ＣＰＵ１００は、コンフィギュレーション情報格納メモリ１０８に格納されたサイズ情報を参照することによって、１個のリコンフィギュラブルＬＳＩ１０３Ａに２個のサブコンフィギュレーションデータを割り振っている。これによって、リコンフィギュラブルＬＳＩ１０３Ａは、図３のリコンフィギュラブルＬＳＩ１０３，１０４の２倍のデータが実装される。【００７０】  すなわち、リコンフィギュラブルＬＳＩ１０３Ａは、まず図１５（ａ）に示すように、番号１，２のサブコンフィギュレーションデータすなわちｄｅｃａ，ｄｅｃｖ１を用いてコンフィギュレーションされる。その後、図１５（ｂ）に示��ように、番号３，４のサブコンフィギュレーションデータすなわちｄｅｃｖ２，ｅｎｃａを用いてコンフィギュレーションされ、図１５（ｃ）に示すように、番号５，６のサブコンフィギュレーションデータすなわちｅｎｃｖ１，ｅｎｃｖ２を用いてコンフィギュレーションされ、最後に図１５（ｄ）に示すように、番号７のサブコンフィギュレーションデータすなわちｃｏｍｂを用いてコンフィギュレーションされる。なお、実行される処理は図１４と同様である。【００７１】  もちろん、集積度の高いリコンフィギュラブルＬＳＩと集積度の低いリコンフィギュラブルＬＳＩとを混在させてコンピュータシステムに実装するような場合であっても、サイズ情報を格納しておくことによって、柔軟に対応可能である。【００７２】  なお、上述した依存関係情報やサイズ情報は、コンフィギュレーション情報に含めておく必要は必ずしもない。例えば、装着されるリコンフィギュラブルモジュールの個数のバリエーションが既知であるなら、そのバリエーションに応じてそれぞれ、各サブコンフィギュレーションデータの割り振り順を予め決めておいてもよい。すなわち、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ決定された、各サブコンフィギュレーションデータの割り振り順を示す実装順序情報を、依存関係情報の代わりに、コンフィギュレーション情報に含めておいてもかまわない。【００７３】  図１６はこのような実装順序情報を含むコンフィギュレーション情報の一例である。図１６では、コンフィギュレーション順序決定情報３００は、図９の内部構造情報４０１と同一内容の内部構造情報３０１と、実装順序情報３０２とを含んでいる。実装順序情報３０２では、モジュールが１〜４個の場合それぞれについて、各ステップにおいてどのサブコンフィギュレーションデータを実装するかを示している。なお、ここでは、コンピュータシステムに設けられたリコンフィギュラブルＬＳＩ装着用のソケットの個数が４個であるものとしている。【００７４】  図１６のコンフィギュレーション情報を図９のコンフィギュレーション情報の代わりにコンフィギュレーション情報格納メモリ１０８に格納して用いても、上述したのと同様の処理を実行することができる。図１７は図１６のコンフィギュレーション情報をコンフィギュレーション情報格納メモリ１０８に格納した状態を示す模式図である。図１７において、３００は内部構造情報３０１と実装順序情報３０２を含むコンフィギュレーション順序決定情報であり、４０３は複数のサブコンフィギュレーションデータ４０４〜４１０を含むサブコンフィギュレーションデータモジュールである。コンフィギュレーション順序決定情報３００とサブコンフィギュレーションデータモジュール４０３とによって、コンフィギュレーション情報４２０Ａが構成されている。【００７５】  さらに、図１６の例では、内部構造情報３０１を共通とし、リコンフィギュラブルモジュールの個数のバリエーションそれぞれに対して、各ステップで実装されるサブコンフィギュレーションデータを示す実装順序情報３０２を設けた。この代わりに、リコンフィギュラブルモジュールの個数のバリエーションそれぞれに対して各々マッピ���グを行い、直接コンフィギュレーション情報を持たせても良い。すなわち、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じて、それぞれ、コンフィギュレーション情報を生成してもよい。この場合、所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを含むコンフィギュレーション情報が、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じて、複数個、コンフィギュレーション情報格納メモリ１０８に格納されることになる。【００７６】  図１８は図４のマッピング装置におけるコンフィギュレーション情報生成部２０１の処理結果の他の例を示す図である。図７の例では、アルゴリズムを並列に処理可能な２つの部分に分割していたが、ビデオのデコード処理が必ずしも完全に並列に行えるとは限らない。そこで図１８では、共通に処理しなければならない部分（この場合は最初の処理）について、ｄｅｃｖ０としてサブコンフィギュレーションデータを生成している。実際のコンフィギュレーション情報生成では、このように直列に接続される部分と並列に接続される部分が最適になるように、スケジューリングを行っていく必要があると考えられる。【００７７】  なお、リコンフィギュラブルモジュールが着脱可能に構成されたコンピュータシステムは、図１や図３の構成に限られるものではなく、様々な構成が考えられる。以下、他の構成例について説明する。なお、以下で言及する各図において、図１および図３と共通の構成要素には図１および図３と同一の符号を付しており、その詳細な説明は省略する。【００７８】  図１９はバスブリッジが２階層になったコンピュータシステムであり、パソコンへの実装を想定したものである。ＩＯバス１３１にリコンフィギュラブルブロック１３０が接続されている。リコンフィギュラブルブロック１３０内において、リコンフィギュラブルＬＳＩ１０３，１０４は着脱可能であり、バスブリッジ１３２を介してＩＯバス１３１とのデータのやりとりが可能になっている。【００７９】  図２０はリコンフィギュラブルＬＳＩと並列に専用ハードウェアが接続されたコンピュータシステムである。すなわち、通信用バス１１１に、リコンフィギュラブルＬＳＩ１０３，１０４と並列に専用ハードウェア１４１，１４２が接続されている。当初はリコンフィギュラブルＬＳＩにプログラムによって実装していた機能であっても、仕様が固まってくると、専用ハードウェアによって実行する方が、回路規模や消費電力の削減の点で有利になる。この場合には、専用ハードウェアによって実行する機能以外の機能について、コンフィギュレーション情報を生成し直せばよい。【００８０】  図２１はＲＦ回路を含むリコンフィギュラブルＬＳＩが装着されたコンピュータシステムであり、携帯電話向け用途を想定している。リコンフィギュラブルＬＳＩ１４３，１４４は、無線ＬＡＮ、携帯電話およびＢｌｕｅｔｏｏｔｈの３つの方式に対応できるＲＦ回路１４３ａ，１４４ａを実装している。リコンフィギュラブルＬＳＩ１個だけでは、無線ＬＡＮ、携帯電話およびＢｌｕｅｔｏｏｔｈの３つの方式のうちのいずれか１つの方式でしか通信できない。２つの方式で同時通信する必要性が生じた場合には、通信処理も２倍必要なので、リコンフィギュラブルＬＳＩも２個実装する必要がある。２個のリコンフィギュラブルＬＳＩ１４３，１４４に、３つの方式に対応できるＲＦ回路１４３ａ，１４４ａをそれぞれ実装することによって、２つの方式で同時通信することができる。【００８１】  図２２はＵＳＢ経由でリコンフィギュラブルブロックが接続されたコンピュータシステムである。図２２において、リコンフィギュラブルブロック１５０は、通信用バス１５１、ＵＳＢデバイスＩＦ１５２、通信用メモリ１５３、およびリコンフィギュラブルＬＳＩ１５４，１５５を備えており、ＵＳＢホストＩＦ１５６を介してＩＯバス１３１と接続されている
図２３はＵＳＢ経由でリコンフィギュラブルブロックが階層的に増設されたコンピュータシステムである。図２３において、リコンフィギュラブルブロック１５０ａ，１５０ｂはＵＳＢホストＩＦ１５６と接続されており、リコンフィギュラブルブロック１５０ｃ，１５０ｄは、ＵＳＢホストＩＦ１５６に接続されたＵＳＢハブ１５７と接続されている。ＵＳＢハブ１５７には周辺機器１５８も接続されている。周辺機器１５８はアンテナ部、音声入力部および音声出力部を備えたデバイスであり、無線電話や携帯電話などで利用される機能を備えたものである。これにより例えば、周辺機器１５８とリコンフィギュラブルブロック１５０ｃ，１５０ｄとの間でローカルな処理が可能になる。また、どのリコンフィギュラブルブロックにどのコンフィギュレーション情報をマッピングするかは、ＣＰＵ１００が決定する。したがって、リコンフィギュラブルブロックの接続構造に最適なコンフィギュレーション情報のマッピングが可能になる。【００８２】  図２４はＵＳＢハブによる拡張を考慮したコンフィギュレーション情報の実装概念図である。図２４は図２３のシステム構成における、ＵＳＢハブ１５７を介して接続されたリコンフィギュラブルブロック１５０ｃ，１５０ｄに関するコンフィギュレーション順序決定情報５００を示している。コンフィギュレーション順序決定情報５００は、内部構造情報５０１と実装順序情報５０２を含む。内部構造情報５０１では、周辺機器１５８のアンテナ部から入力された受信データ（ｒ）をストリームデコード処理（ｄｅｃｒ）してデコードされた音声データ（ａ１）を出力し、さらに音声デコード処理（ｄｅｃａ１）してデコードされた音声データ（ａ１）を出力するフローが示されている。また、周辺機器１５８の音声入力部から入力された音声データ（ａ２）を音声エンコード処理（ｅｎｃａ２）してエンコードされた音声データ（ａ２）を出力し、さらにストリームエンコード処理（ｅｎｃｔ）して送信データ（ｔ）を出力するフローが示されている。【００８３】  図２４のコンフィギュレーション順序決定情報５００は、図２３内のＵＳＢホストＩＦ１５６を介して接続されたリコンフィギュラブルブロック１５０ａ，１５０ｂに関するコンフィギュレーション情報（例えば図１６と同様）とともに、コンフィギュレーション情報格納メモリ１０８に格納される。サブコンフィギュレーションデータｄｅｃｒ，ｄｅｃａ１，ｅｎｃａ２，ｅｎｃｔも同様に格納される。【００８４】  リコンフィギュラブルブロック１５０ｃ，１５０ｄはＵＳＢハブ１５７に接続された周辺機器１５８が扱う処理のために用いられる。一方、リコンフィギュラブルブロック１５０ａ，１５０ｂはバス１３１に接続された汎用ＩＯ１１２から入力される動画処理のために用いられる。このため、リコンフィギュラブルブロック１５０ｃ，１５０ｄとリコンフィギュラブルブロック１５０ａ，１５０ｂとは、別々にコンフィギュレーションされ、コンフィギュレーション情報も別個に格納される。【００８５】  図２５はリコンフィギュラブルＬＳＩがバスに接続されずに増設されたコンピュータシステムである。図２５において、リコンフィギュラブルＬＳＩ１６４は通信用バス１１１を介���ないでリコンフィギュラブルＬＳＩ１６３と直接接続されており、また、リコンフィギュラブルＬＳＩ１６６は通信用バス１１１を介さないでリコンフィギュラブルＬＳＩ１６５と直接接続されている。この構成は例えば、リコンフィギュラブルＬＳＩ１６４がリコンフィギュラブルＬＳＩ１６３のみと通信し、リコンフィギュラブルＬＳＩ１６５，１６６などと通信する必要がない場合に、有効となる。【００８６】  図２６はリコンフィギュラブルＬＳＩの他にビデオエンコーダ１７１およびビデオデコーダ１７２が専用ＬＳＩとして増設された構成である。また、図２７は２個のリコンフィギュラブルＬＳＩの他にビデオエンコーダ１７１が専用ＬＳＩとして増設された構成である。【００８７】  図２８はビデオエンコーダまたはビデオデコーダが専用ＬＳＩとして増設されることを考慮して生成されたコンフィギュレーション情報の実装概念図である。図１６に示したコンフィギュレーション順序決定情報３００は、図７に示された各処理をリコンフィギュラブルＬＳＩのみを用いてステップに分けて実行するものとした実装順序情報３０２を含む。これに対して図２８に示すコンフィギュレーション順序決定情報３００Ａは、実装順序情報３０２に加えて、ビデオエンコーダまたはビデオデコーダが専用ＬＳＩとして増設された場合、これらがビデオエンコード処理またはビデオデコード処理を行うことを考慮した、実装順序情報３０３を含んでいる。【００８８】  なお、内部構造情報３０１では、ビデオデコード処理ｄｅｃｖは２つのサブコンフィギュレーションデータｄｅｃｖ１，ｄｅｃｖ２に、またビデオエンコード処理ｅｎｃｖは２つのサブコンフィギュレーションデータｅｎｃｖ１，ｅｎｃｖ２に分割されている。ただし、専用ＬＳＩでは、これらの処理を、リコンフィギュレーションＬＳＩが１ステップの処理を行っている時間内に完了できることが前提になっている。【００８９】  すなわち、専用ＬＳＩは特定の処理を高速に実行するために設計されているので、一般に、リコンフィギュラブルＬＳＩを用いた場合よりも短い時間で処理を完了することができる。図２６および図２７の構成のシステムでは、リコンフィギュラブルＬＳＩがオーディオデコードやオーディオエンコードなどの１単位の処理を実行している間に、ビデオエンコーダ１７１およびビデオデコーダ１７２は、２つに分割されていたビデオエンコード処理ｄｅｃｖまたはビデオデコード処理ｅｎｃｖの全体をそれぞれ実行することができる。
【産業上の利用可能性】
【００９０】  本発明では、システム購入後にユーザが、リコンフィギュラブルモジュールを増設して、実行させる処理量を増やしたり、動画の圧縮伸張などの新たなアルゴリズムに対応させたりすることが可能になるので、例えば、ＤＶＲ等の動画記録装置などに利用するのに適している。【００９１】  また、本発明では、動作周波数の向上やトランジスタ数の増加などによって処理能力がより高いリコンフィギュラブルモジュールが発表された場合、そのリコンフィギュラブルモジュールに置き換えることによって、より少ない個数のリコンフィギュラブルモジュールによる処理が実現できる。このため、同一処理に対する消費電力を減らすことができるので、例えば携帯電話などに利用するのに適している。【００９２】  さらに、リコンフィギュラブルモジュールの増設によって、システム全体の処理能力を簡単に拡張できるので、例えば、マルチメディア処理向けのワークステーションにも最適である。
【図１】
2006109623.tif 000002
【図２】
2006109623.tif 000003
【図３】
2006109623.tif 000004
【図４】
2006109623.tif 000005
【図５】
2006109623.tif 000006
【図６】
2006109623.tif 000007
【図７】
2006109623.tif 000008
【図８】
2006109623.tif 000009
【図９】
2006109623.tif 000010
【図１０】
2006109623.tif 000011
【図１１】
2006109623.tif 000012
【図１２】
2006109623.tif 000013
【図１３】
2006109623.tif 000014
【図１４】
2006109623.tif 000015
【図１５】
2006109623.tif 000016
【図１６】
2006109623.tif 000017
【図１７】
2006109623.tif 000018
【図１８】
2006109623.tif 000019
【図１９】
2006109623.tif 000020
【図２０】
2006109623.tif 000021
【図２１】
2006109623.tif 000022
【図２２】
2006109623.tif 000023
【図２３】
2006109623.tif 000024
【図２４】
2006109623.tif 000025
【図２５】
2006109623.tif 000026
【図２６】
2006109623.tif 000027
【図２７】
2006109623.tif 000028
【図２８】
2006109623.tif 000029
【手続補正書】
【提出日】平成19年8月29日(2007.8.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵと、
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納するコンフィギュレーション情報格納部とを備え、
１または複数のリコンフィギュラブルモジュールが、着脱可能に構成されており、
前記ＣＰＵは、装着されたリコンフィギュラブルモジュールを、その個数に応じて、前記コンフィギュレーション情報格納部に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションする
ことを特徴とするコンピュータシステム。
【請求項２】
請求項１において、
通信用バスと、
前記通信用バスにそれぞれ接続されており、リコンフィギュラブルモジュールを着脱可能に構成された複数の接続部とを備え、
前記ＣＰＵは、前記接続部に装着されたリコンフィギュラブルモジュールと、前記通信用バスを介して通信可能である
ことを特徴とするコンピュータシステム。
【請求項３】
請求項１において、
前記ＣＰＵは、装着されたリコンフィギュラブルモジュールの個数が変化したとき、変化後の個数に応じて、前記コンフィギュレーション情報を用いて、装着されたリコンフィギュラブルモジュールをコンフィギュレーションする
ことを特徴とするコンピュータシステム。
【請求項４】
請求項１において、
前記コンフィギュレーション情報は、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを含むものであり、
前記ＣＰＵは、
前記複数のサブコンフィギュレーションデータを、装着されたリコンフィギュラブルモジュールに割り振ることによって、コンフィギュレーションを実行する
ことを特徴とするコンピュータシステム。
【請求項５】
請求項４において、
前記コンフィギュレーション情報は、
前記複数のサブコンフィギュレーションデータの割り振りを決めるためのコンフィギュレーション順序決定情報を含み、
前記コンフィギュレーション順序決定情報は、
前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報を含む
ことを特徴とするコンピュータシステム。
【請求項６】
請求項５において、
前記コンフィギュレーション順序決定情報は、
前記複数のサブコンフィギュレーションデータ同士の依存関係を示す依存関係情報を含む
ことを特徴とするコンピュータシステム。
【請求項７】
請求項５において、
前記コンフィギュレーション順序決定情報は、
装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ決定された、前記複数のサブコンフィギュレーションデータの割り振り順を示す実装順序情報を含む
ことを特徴とするコンピュータシステム。
【請求項８】
請求項４において、
前記コンフィギュレーション情報は、
前記複数のサブコンフィギュレーションデータのサイズに関する情報をさらに含む
ことを特徴とするコンピュータシステム。
【請求項９】
請求項４において、
前記複数のサブコンフィギュレーションデータのサイズが、予め定められた所定のサイズ以下に制限されている
ことを特徴とするコンピュータシステム。
【請求項１０】
請求項４において、
前記コンフィギュレーション情報格納部は、前記コンフィギュレーション情報を、複数個備え、
前記複数のコンフィギュレーション情報は、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ生成されたものである
ことを特徴とするコンピュータシステム。
【請求項１１】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造であって、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、
前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを備えた
ことを特徴とするデータ構造。
【請求項１２】
請求項１１において、
前記複数のサブコンフィギュレーションデータ同士の依存関係を示す依存関係情報を備えた
ことを特徴とするデータ構造。
【請求項１３】
請求項１１において、
リコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ決定された、前記複数のサブコンフィギュレーションデータの割り振り順を示す実装順序情報を備えた
ことを特徴とするデータ構造。
【請求項１４】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造であって、
前記コンフィギュレーション情報を、リコンフィギュラブルモジュールの個数のバリエーションに応じて、複数個備え、
前記各コンフィギュレーション情報は、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを備えた
ことを特徴とするデータ構造。
【請求項１５】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成するマッピング装置であって、
前記所定の機能に対してアルゴリズム解析を行い、処理と入出力データとの関係を表すグラフを生成するアルゴリズム解析部と、
前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを、生成するコンフィギュレーション情報生成部とを備えた
ことを特徴とするマッピング装置。
【請求項１６】
所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成するマッピング方法であって、
前記所定の機能に対してアルゴリズム解析を行い、処理と入出力データとの関係を表すグラフを生成するアルゴリズム解析ステップと、
前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを、生成するコンフィギュレーション情報生成ステップとを備えた
ことを特徴とするマッピング方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、その機能をダイナミックに再構成可能なリコンフィギュラブルモジュールを構成要素として問題を処理するコンピュータシステム、およびリコンフィギュラブルモジュールの機能を決定するためのコンフィギュレーション情報に関する。
【背景技術】
【０００２】
従来の技術として、コンピュータシステムに、リコンフィギュラブルロジック回路を拡張装置として接続するものがある（特許文献１）。また、複数のＦＰＧＡに所定の問題をマッピングして高速に解くものがある（特許文献２）。さらに、ＬＳＩ設計時にレイアウト上で２つのリコンフィギュラブル回路を接続する方法がある（特許文献３）。
【特許文献１】米国特許第６４３８７３７号明細書
【特許文献２】米国特許第６４１５４３０号明細書
【特許文献３】米国特許第６３３５６３５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
リコンフィギュラブルＬＳＩを実装したコンピュータシステムにおいて、処理すべき問題が大規模になった場合、既に実装されているリコンフィギュラブルＬＳＩのみでは多大な処理時間が必要となることがあった。一方で、最初から不必要に大規模なリコンフィギュラブルＬＳＩを実装すると、コンピュータシステム全体のコストが高くなってしまうという問題があった。すなわち、処理時間とコストとの間にはトレードオフの関係があり、これに柔軟に対応できるシステムが期待される。
【０００４】
ところが上述の従来技術はいずれも、初期にコンピュータシステム全体の構成を決定した上でコンフィギュレーション情報をマッピングしているので、この処理時間とコストとのトレードオフの関係に柔軟に対応することができない。例えば、特許文献１の技術では、リコンフィギュラブルロジック回路に拡張性がない。また、特許文献２の技術では、複数のＦＰＧＡを並べたシステムに固有のマッピングがなされるため、複数のＦＰＧＡのうちどれか１つでも欠けると問題は解けない。さらに、特許文献３の技術では、リコンフィギュラブル回路をあくまで設計時に接続するのみであり、設計終了後にリコンフィギュラブル回路をさらに接続したり、切り離したりすることはできない。また、複数のリコンフィギュラブルＬＳＩでシステムを構成したり、リコンフィギュラブルＬＳＩの個数を可変にしたりすることもできない。
【０００５】
本発明は、例えば、初期のコストを低く抑えつつ、将来的に大規模な問題を処理する必要が生じた場合であっても柔軟に対応できるようなコンピュータシステムを提供することを第１の課題とする。
【０００６】
また、大規模な問題をリコンフィギュラブル回路で解こうとした場合、複数のリコンフィギュラブルＬＳＩを実装するか、大規模なリコンフィギュラブルＬＳＩを実装する必要がある。ところが従来の技術では、大規模な問題のハードウェアへのマッピングは、１または複数のリコンフィギュラブルＬＳＩを実装したコンピュータシステムに固有のものになる。そのため、例えば１個のリコンフィギュラブルＬＳＩに実装される回路規模が大きくなったり、実装するリコンフィギュラブルＬＳＩの個数が増えたりするなど、ハードウェアの構成が変更された場合には、マッピングをやり直す必要があった。
【０００７】
本発明は、実装されるリコンフィギュラブルＬＳＩの構成が変更された場合であっても、マッピングをやり直す必要がないコンフィギュレーション情報を提供することを第２の課題とする。
【０００８】
以上を総括して、本発明の目的は、大規模な問題を複数のリコンフィギュラブルモジュールを実装したコンピュータシステムで解く場合に、実装されるリコンフィギュラブルモジュールの個数と無関係なマッピングを実現すること、および将来、問題が大規模化したときであっても、柔軟に対応できるコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００９】
前記の課題に鑑み、本発明は、リコンフィギュラブルモジュールを増設可能にしたことを特徴とする。
【００１０】
具体的には、本発明に係るコンピュータシステムは、ＣＰＵと、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納するコンフィギュレーション情報格納部とを備え、１または複数のリコンフィギュラブルモジュールが、着脱可能に構成されており、前記ＣＰＵは、装着されたリコンフィギュラブルモジュールを、その個数に応じて、前記コンフィギュレーション情報格納部に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションするものである。
【００１１】
この発明によると、リコンフィギュラブルモジュールが着脱可能に構成されており、リコンフィギュラブルモジュールが装着されたとき、装着されたリコンフィギュラブルモジュールは、その個数に応じて、コンフィギュレーション情報格納部に格納された、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を用いて、ＣＰＵによってコンフィギュレーションされる。このため、リコンフィギュラブルモジュールを増設可能となるので、例えば、初期段階ではコスト削減のためにリコンフィギュラブルモジュールの個数を少なくしておき、将来、問題が大規模化したときにはリコンフィギュラブルモジュールを増設する、というような柔軟な対応が可能になる。
【００１２】
また、本発明は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造として、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを備えたものである。
【００１３】
このデータ構造を用いることによって、コンピュータシステムに装着されたリコンフィギュラブルモジュールに対して、所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを、複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報を参照して、それぞれ、割り当てることができる。このため、リコンフィギュラブルモジュールの個数が変更された場合であっても、共通のコンフィギュレーション情報を用いて、装着されたリコンフィギュラブルモジュールを最適にコンフィギュレーションすることができる。
【００１４】
また、本発明は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を表すデータ構造として、前記コンフィギュレーション情報を、リコンフィギュラブルモジュールの個数のバリエーションに応じて、複数個備え、前記各コンフィギュレーション情報は、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを備えたものである。
【００１５】
通常、コンフィギュレーション情報はコンピュータシステムとは異なるシステムにおいて生成される。このため、コンピュータシステムに装着されるリコンフィギュラブルモジュールの個数が変更された場合は、再度何らかの手段によってコンフィギュレーション情報を入手する必要がある。ところが、本発明のデータ構造のように、予め想定されるリコンフィギュラブルモジュールの個数のバリエーションに対応して複数のコンフィギュレーション情報を準備しておくことによって、装着されたリコンフィギュラブルモジュールの個数が変更された場合にも、柔軟に対応できる。
【００１６】
また、本発明は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報生成するマッピング装置および方法として、前記所定の機能に対してアルゴリズム解析を行い、処理と入出力データとの関係を表すグラフを生成し、前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを、生成するものである。
【発明の効果】
【００１７】
本発明によると、リコンフィギュラブルモジュールの個数が変更された場合でも、同じコンフィギュレーション情報を用いて、リコンフィギュラブルモジュールをコンフィギュレーションし、処理を実行することができる。
【００１８】
これにより、例えば、リコンフィギュラブルモジュール１個の処理能力が増えたとき、より少ない個数のリコンフィギュラブルモジュールを用いて、同じ機能を同程度の処理時間内で実行させることが可能になる。
【００１９】
また、実行させる機能の規模がさらに大きくなったとしても、これに合わせてリコンフィギュラブルモジュールを増設することによって、所定の処理時間内で実行させることが可能になる。例えば、動画の再生のみをさせていたシステムに対して、リコンフィギュラブルモジュールを増設することによって、動画の再生と同時に受信した動画をＨＤからＳＤに変換しながら記録する、というような動作が可能になる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら本発明を実施するための最良の形態について説明する。
【００２１】
図１は本発明の一実施形態に係るコンピュータシステムの構成を示す図である。図１において、プロセッサユニットであるＣＰＵ１００は、メインバス１１０を介してメインメモリ１０１に格納されたプログラムを読み出し、そのプログラムに従って動作することにより、コンピュータシステム全体の制御を司っている。メインバス１１０はバスブリッジ１０２によって通信用バス１１１と接続されている。バスブリッジ１０２は、メインバス１１０と通信用バス１１１のいずれのバスに接続されたいずれのデバイスがマスタ・スレーブとしてデータのやり取りを行うかを調停する機能を有する。
【００２２】
メインバス１１０は、コンフィギュレーション情報格納部としてのコンフィギュレーション情報格納メモリ１０８と、画面出力インタフェース（ＩＦ）１０９と、汎用ＩＯ１１２とが接続されている。このコンピュータシステムは、汎用ＩＯ１１２を介して、ＨＤＤドライブ１１３、ＤＶＤドライブ１１４およびチューナー１１５などとデータのやりとりが可能になっている。
【００２３】
通信用バス１１１は、その機能を再構成可能なデバイスであるリコンフィギュラブルＬＳＩ１０３〜１０６と、通信用メモリ１０７とが接続されている。リコンフィギュラブルＬＳＩ１０３〜１０６は通信用メモリ１０７を介して互いに通信を行う。
【００２４】
図１のコンピュータシステムでは、リコンフィギュラブルＬＳＩ１０３〜１０６が、着脱可能な構成となっている。そして、リコンフィギュラブルＬＳＩ１０３〜１０６はリコンフィギュラブルモジュールとして機能する。
【００２５】
コンフィギュレーション情報格納メモリ１０８は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納する。リコンフィギュラブルＬＳＩ１０３〜１０６は、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報によって、その内部接続関係が決定されることにより、その機能をコンフィギュレーション可能である。換言すれば、コンフィギュレーション情報とは、再構成可能なデバイスであるリコンフィギュラブルＬＳＩに所定の機能を実現させるために、その内部接続関係を決定するための情報である。ＣＰＵ１００は、装着されたリコンフィギュラブルモジュールを、その個数に応じて、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションする。
【００２６】
図２はリコンフィギュラブルＬＳＩの着脱機構の構成例である。図２の構成では、ボード上の通信用バス１２０に接続された４個の接続部としてのソケット１２１を備えており、各ソケット１２１は、リコンフィギュラブルＬＳＩ１２２が着脱可能に構成されている。このソケット１２１と通信用バス１２０の構成は、例えば、パーソナルコンピュータにおいてメモリを接続する構成と同様に実現することが可能である。図２の例では、リコンフィギュラブルＬＳＩ１２２は２個実装されており、２個のソケット１２１が開いているが、最大４個までのリコンフィギュラブルＬＳＩ１２２を実装可能である。
【００２７】
図２のような機構をコンピュータシステムに設けることによって、実装されるリコンフィギュラブルＬＳＩの個数を変更可能にすることができる。例えば図１のコンピュータシステムにおいて、通信用バス１１１に図２のようなソケット１２１を複数個設ければよい。
【００２８】
図３は図１と異なる個数である２個のリコンフィギュラブルＬＳＩ１０３，１０４を実装した場合のコンピュータシステムの構成を示す図である。
【００２９】
なお、以下の説明では、リコンフィギュラブルＬＳＩ１０３〜１０６の回路規模は同一であるものと仮定して説明を行う。
【００３０】
図４は本発明の一実施形態に係るマッピング装置の構成を示す図である。図４のマッピング装置は、図１に示したようなコンピュータシステムの各々のリコンフィギュラブルＬＳＩに、コンピュータシステムとして処理すべき大規模な問題をどのように割り振るか（本明細書においては、マッピングと称す）を決定するものである。すなわち、図４のマッピング装置は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成する。
【００３１】
図４のマッピング装置には、まずコンピュータシステムとして処理すべき大規模な問題が入力される。ここで問題とは、例えば、ＭＰＥＧの符号化・復号化、暗号の解読といった、コンピュータシステムが処理すべき対象、言い換えれば、コンピュータシステムが実現する所定の機能のことをいう。
【００３２】
入力された大規模な問題は、まずアルゴリズム解析部２００において、複数のステージと接続枝とから成るグラフに展開される。次にコンフィギュレーション情報生成部２０１において、展開された複数のステージを、データ量の上限が限られた複数のサブコンフィギュレーションデータに変換する。変換された複数のサブコンフィギュレーションデータは、番号付与部２０２において、番号を付与される。そして通信情報付与部２０３において、サブコンフィギュレーションデータによってコンフィギュレーションされるリコンフィギュラブルモジュール間の通信情報が、コンフィギュレーション情報に付与される。
【００３３】
なお、図４における符号２００〜２０３をそれぞれ処理ステップとみなすことによって、図４は本発明の一実施形態に係る、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を生成するマッピング方法を示すフローチャートとなる。
【００３４】
以下、図５から図９を用いて、図４のマッピング装置の具体的な処理内容をさらに詳細に説明する。なお、以下の説明では大規模な問題の一例として、動画をＨＤ(High Definition)からＳＤ(Standard Definition)にフォーマット変換する処理を例にとって説明する。
【００３５】
図５は動画のＨＤからＳＤへのフォーマット変換の処理内容の例である。図５において、decaはオーディオデータのデコード処理をする関数、decvはビデオデータのデコード処理をする関数、encaはオーディオデータのエンコード処理をする関数、encvはビデオデータのエンコード処理をする関数である。combはencvで生成されたビデオデータとencaで生成されたオーディオデータとから、ストリームデータを生成する関数である。
【００３６】
本実施形態では、リコンフィギュラブルＬＳＩ１０３〜１０６を着脱可能な構成としている。すなわち、従来のようにコンピュータシステムの構成が予め決まっているわけではなく、その構成は変更され得る。一方、マッピング装置は通常、コンピュータシステムとは別のシステムとして構成されるため、コンピュータシステムの構成が変わるたびにマッピングの処理を再度やり直すことは極めて困難である。したがって、コンピュータシステムの構成が変更された場合であっても、マッピングをやり直すことなくシステムを再構成できるように、コンフィギュレーション情報をいかに生成するかが重要となる。
【００３７】
図６は図４のマッピング装置におけるアルゴリズム解析部２００の処理結果の例を示す図である。図６は、図５の処理内容を所定の機能としてアルゴリズム解析を行ったものである。図６に示すように、処理と入出力データとの関係を表すグラフが生成されている。すなわち、入出力データが○で囲われて示されており、処理が□で囲われて示されている。また、データの流れが、矢印状の接続枝で表されている。
【００３８】
図６に示すように、encaはdecaの処理結果を用いており、encvはdecvの処理結果を用いている。さらにcombはencaとencvの両方の処理結果を用いている。一方で、decaとdecv、あるいはencaとencvは、依存関係がないため並列に実行することが可能である。
【００３９】
なお、ビデオの処理はオーディオの処理と比較すると一般に処理量が多い。したがってこの例では、decvとencvは、１つのリコンフィギュラブルＬＳＩにマッピングすることが難しいほど大規模な処理であるとする。
【００４０】
図７は図４のマッピング装置におけるコンフィギュレーション情報生成部２０１の処理結果の例を示す図である。図７は、図６のグラフにおける各処理に対して、所定のサイズを上限として分割を行ったものである。図７では、入出力データが○で囲われて示されており、サブコンフィギュレーションデータが□で囲われて示されている。また、データの流れが、矢印状の接続枝で表されている。
【００４１】
ここでサブコンフィギュレーションデータとは、コンピュータシステム全体をコンフィギュレーションするコンフィギュレーション情報の中の、各々のコンフィギュラブルモジュールをコンフィギュレーションするためのデータを示す。
【００４２】
また、所定のサイズとは、具体的には、各リコンフィギュラブルＬＳＩ１０３〜１０６にマッピング可能な規模のことである。この所定のサイズは、装着されるリコンフィギュラブルモジュールの仕様から決定される。例えば、最小の回路規模を持つリコンフィギュラブルモジュールにマッピングできる程度のデータのサイズを、所定のサイズとすればよい。サブコンフィギュレーションデータを所定のサイズ以上にならないようにすることによって、生成されるサブコンフィギュレーションデータは必ず、１つのリコンフィギュラブルＬＳＩをコンフィギュレーションできる規模のものとなる。
【００４３】
図７において、図６と異なるのは、decvがdecv1とdecv2とに、また、encvがencv1とencv2とに分割されている点である。上述のように、decvとencvは大規模な処理であるため、所定のサイズを上限とした結果、２つに分割されている。分割は、各々のアルゴリズムを解析し、各々のアルゴリズムを並列に処理可能なサブアルゴリズムに分割することによって、行われている。
【００４４】
分割された各アルゴリズムおよびサブアルゴリズムは、リコンフィギュラブルＬＳＩの内部接続関係を決定するための情報であるサブコンフィギュレーションデータへと変換される。これによって、所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータが得られる。また、図７に示すようなサブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報が得られる。すなわち、図６では□は漠然と処理を表しているのに対して、図７では□は各リコンフィギュラブルＬＳＩをコンフィギュレーションするためのサブコンフィギュレーションデータを示している。
【００４５】
図８は図４のマッピング装置における番号付与部２０２の処理結果の例を示す図である。図８（ａ）では、図７の内部構造情報において、各サブコンフィギュレーションデータに通し番号が付与されている。すなわち、□で囲われた各サブコンフィギュレーションデータの肩に、□で囲われた通し番号が付されている。また、図８（ｂ）に示すように、各サブコンフィギュレーションデータ同士の依存関係を示す依存関係情報が生成される。図８（ｂ）のテーブルデータにおいて、各数字はサブコンフィギュレーションデータに付与された通し番号であり、○は依存関係なし、×は依存関係ありを示す。すなわち、○は、異なるリコンフィギュラブルＬＳＩに同一のタイミングでマッピングすることが可能なサブコンフィギュレーションデータ同士であることを示し、×は、番号が小さい方のサブコンフィギュレーションデータの処理が終了した後でないと、番号が大きい方のサブコンフィギュレーションデータをマッピングすることができないことを示す。
【００４６】
図９は図４のマッピング装置における通信情報付与部２０３の処理結果の例を示す図である。図９では、図８の内部構造情報において、処理途中における各中間データに番号が付与されている。すなわち、○で囲われた各中間データの肩に、□で囲われた番号が付されている。この番号は、リコンフィギュラブルモジュール同士が通信する際に通信用メモリに置かれるデータの通し番号になる。この状態で、コンピュータシステムをコンフィギュレーションするためのコンフィギュレーション情報が完成したことになる。すなわち、内部構造情報４０１と依存関係情報４０２を含むコンフィギュレーション順序決定情報４００と、複数のサブコンフィギュレーションデータとからなるコンフィギュレーション情報が、図１のコンフィギュレーション情報格納メモリ１０８に格納される。
【００４７】
図１０はコンフィギュレーション情報格納メモリ１０８にコンフィギュレーション情報が格納された状態を示す模式図である。図１０において、４００は内部構造情報４０１と依存関係情報４０２を含むコンフィギュレーション順序決定情報であり、４０３は複数のサブコンフィギュレーションデータ４０４〜４１０を含むサブコンフィギュレーションデータモジュールである。コンフィギュレーション順序決定情報４００とサブコンフィギュレーションデータモジュール４０３とによって、コンフィギュレーション情報４２０が構成されている。また、コンフィギュレーション情報格納メモリ１０８には、他の機能を実現するためのコンフィギュレーション情報４３０も格納されている。コンフィギュレーション情報は、例えば、コンフィギュレーション情報格納メモリ１０８に予め実装しておけばよい。あるいは、ＤＶＤなどのコンピュータ読み取り可能な記録媒体にコンフィギュレーション情報を記録しておき、この記録媒体から読み出したコンフィギュレーション情報を、汎用ＩＯ１１２を介して、コンフィギュレーション情報格納メモリ１０８にインストールするようにしてもよい。
【００４８】
また図１１は図１の通信用メモリ１０７のマッピングの例である。図１１では、図９において番号が付与された各中間データがマッピングされている。また、下位アドレスには、各中間データとメモリアドレスとの対照表が与えられており、動作時にはこの対照表を用いて通信を行う。
【００４９】
図１２は本実施形態に係るコンピュータシステムの動作を示すフローチャートである。図１２に示すように、ＣＰＵ１００はまず、装着されたリコンフィギュラブルＬＳＩの個数を決定する（６００）。そして、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報の中の内部構造情報４０１を参照して、メインメモリ１０１および通信用メモリ１０７におけるデータ格納場所を確保する（６０１）。
【００５０】
次に、ＣＰＵ１００は、コンフィギュレーション情報格納メモリ１０８に格納されたコンフィギュレーション情報の中の内部構造情報４０１および依存関係情報４０２を参照して、装着されたリコンフィギュラブルＬＳＩの個数に応じて、並列実行するサブコンフィギュレーションデータを決定する（６０２）。そして、決定したサブコンフィギュレーションデータを用いてリコンフィギュラブルＬＳＩをコンフィギュレーションし（６０３）、各リコンフィギュラブルＬＳＩに処理を実行させる（６０４）。このようなステップ６０２〜６０３を、全てのサブコンフィギュレーションデータについてコンフィギュレーションおよび処理が実行されるまで繰り返す（６０５）。全てのサブコンフィギュレーションデータについてコンフィギュレーションおよび処理が実行されると、動作を終了する（６０６）。
【００５１】
図１３を用いて、図１のコンピュータシステムの動作を具体的に説明する。ここでは、図９に示すコンフィギュレーション情報がコンフィギュレーション情報格納メモリ１０８に格納されているものとする。まずＣＰＵ１００は、装着されたリコンフィギュラブルＬＳＩ１０３〜１０６の個数を４個と決定する（６００）。そして図１３（ａ）に示すように、メインメモリ１０１において、入力データａ，ｖと出力データｂの格納場所を確保し、通信用メモリ１０７において、番号４，５，６，７−１，７−２，７−３の中間データの格納場所を確保する（６０１）。
【００５２】
次に、ＣＰＵ１００は、サブコンフィギュレーションデータを各リコンフィギュラブルＬＳＩ１０３〜１０６に割り振り、処理を実行させる。ここでは、装着されたリコンフィギュラブルＬＳＩの個数が４個であることに基づき、コンフィギュレーション情報格納メモリ１０８に格納された内部構造情報４０１および依存関係情報４０２を参照して、３回に分けてコンフィギュレーションを行っている。
【００５３】
まず図１３（ａ）に示すように、ＣＰＵ１００は、番号１，２，３のサブコンフィギュレーションデータすなわちdeca,decv1,decv2を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３〜１０５をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３〜１０５に処理を実行させる（６０４）。このとき、メインメモリ１０１に格納された入力データａ，ｖがバスブリッジ１０２を介してリコンフィギュラブルＬＳＩ１０３〜１０５に入力され、処理の結果得られた番号４，５，６の中間データが通信用メモリ１０７に格納される。
【００５４】
次に図１３（ｂ）に示すように、ＣＰＵ１００は、番号４，５，６のサブコンフィギュレーションデータすなわちenca,encv1,encv2を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３〜１０５をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３〜１０５に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号４，５，６の中間データがリコンフィギュラブルＬＳＩ１０３〜１０５に入力され、処理の結果得られた番号７−１，７−２，７−３の中間データが通信用メモリ１０７に格納される。
【００５５】
次に図１３（ｃ）に示すように、ＣＰＵ１００は、番号７のサブコンフィギュレーションデータすなわちcombを実行するものとして決定し（６０２）、これを用いてリコンフィギュラブルＬＳＩ１０３をコンフィギュレーションする（６０３）。そして、リコンフィギュラブルＬＳＩ１０３に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号７−１，７−２，７−３の中間データがリコンフィギュラブルＬＳＩ１０３に入力され、処理の結果得られた出力データｂがバスブリッジ１０２を介してメインメモリ１０１に格納される。これで、全ての処理が終了したので、動作終了となる（６０５，６０６）。
【００５６】
また、図１４を用いて、図３のコンピュータシステムの動作を具体的に説明する。ここでも、図９に示すコンフィギュレーション情報がコンフィギュレーション情報格納メモリ１０８に格納されているものとする。まずＣＰＵ１００は、装着されたリコンフィギュラブルＬＳＩ１０３，１０４の個数を２個と決定する（６００）。そして図１４（ａ）に示すように、メインメモリ１０１において、入力データａ，ｖと出力データｂの格納場所を確保し、通信用メモリ１０７において、番号４，５，６，７−１，７−２，７−３の中間データの格納場所を確保する（６０１）。
【００５７】
次に、ＣＰＵ１００は、サブコンフィギュレーションデータを各リコンフィギュラブルＬＳＩ１０３，１０４に割り振り、処理を実行させる。ここでは、装着されたリコンフィギュラブルＬＳＩの個数が２個であることに基づき、コンフィギュレーション情報格納メモリ１０８に格納された内部構造情報４０１および依存関係情報４０２に基づいて、４回に分けてコンフィギュレーションを行っている。
【００５８】
まず図１４（ａ）に示すように、ＣＰＵ１００は、番号１，２のサブコンフィギュレーションデータすなわちdeca,decv1を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３，１０４をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３，１０４に処理を実行させる（６０４）。このとき、メインメモリ１０１に格納された入力データａ，ｖがバスブリッジ１０２を介してリコンフィギュラブルＬＳＩ１０３，１０４に入力され、処理の結果得られた番号４，５の中間データが通信用メモリ１０７に格納される。
【００５９】
次に図１４（ｂ）に示すように、番号３，４のサブコンフィギュレーションデータすなわちdecv2,encaを並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３，１０４をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３，１０４に処理を実行させる（６０４）。このとき、メインメモリ１０１に格納された入力データｖがバスブリッジ１０２を介してリコンフィギュラブルＬＳＩ１０３に入力されるとともに、通信用メモリ１０７に格納された番号４の中間データがリコンフィギュラブルＬＳＩ１０４に入力され、処理の結果得られた番号６，７−１の中間データが通信用メモリ１０７に格納される。
【００６０】
次に図１４（ｃ）に示すように、番号５，６のサブコンフィギュレーションデータすなわちencv1,encv2を並列実行するものとして決定し（６０２）、これらを用いてリコンフィギュラブルＬＳＩ１０３，１０４をコンフィギュレーションする（６０３）。そして、各リコンフィギュラブルＬＳＩ１０３，１０４に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号５，６の中間データがリコンフィギュラブルＬＳＩ１０３，１０４に入力され、処理の結果得られた番号７−２，７−３の中間データが通信用メモリ１０７に格納される。
【００６１】
次に図１４（ｄ）に示すように、番号７のサブコンフィギュレーションデータすなわちcombを実行するものとして決定し（６０２）、これを用いてリコンフィギュラブルＬＳＩ１０３をコンフィギュレーションする（６０３）。そして、リコンフィギュラブルＬＳＩ１０３に処理を実行させる（６０４）。このとき、通信用メモリ１０７に格納された番号７−１，７−２，７−３の中間データがリコンフィギュラブルＬＳＩ１０３に入力され、処理の結果得られた出力データｂがバスブリッジ１０２を介してメインメモリ１０７に格納される。これで、全ての処理が終了したので、動作終了となる（６０５，６０６）。
【００６２】
ここで、図１のような４個のリコンフィギュラブルＬＳＩが装着されたコンピュータシステムでは、図１３に示すように３回に分けて処理がなされているのに対して、図３のような２個のリコンフィギュラブルＬＳＩが装着されたコンピュータシステムでは、図１４に示すように４回に分けて処理がなされている。すなわち、本実施形態によると、装着されたリコンフィギュラブルＬＳＩの個数が異なっていても、同一のコンフィギュレーション情報を用いて、コンピュータシステムをコンフィギュレーションすることが可能である。このため、例えば、当初は少ない個数のリコンフィギュラブルＬＳＩを用いて処理を行わせ、後日にリコンフィギュラブルＬＳＩを増設することによって高速処理させる、といったことが可能になる。
【００６３】
なお、図３のリコンフィギュラブルＬＳＩ１個の処理能力が図１のリコンフィギュラブルＬＳＩ１個の処理能力より高い場合には、図１３と同様に処理を実行できる場合もあり得る。
【００６４】
また、図１４の処理では処理時間がかかり過ぎるような場合には、リコンフィギュラブルＬＳＩを増設して図１のような構成にすることによって、より高い処理性能を得ることができる。
【００６５】
また、図１３の処理ではリコンフィギュラブルＬＳＩ１０６が用いられていない。このリコンフィギュラブルＬＳＩ１０６を用いて、図１３に示された処理と並行に別の処理を行うことができる。図１３では動画を記録する処理を実行しているが、リコンフィギュラブルＬＳＩ１０６を用いて、例えば、動画の記録をしながらテレビ放送を見ることができる。
【００６６】
なお、ここまでの説明は、装着されるリコンフィギュラブルＬＳＩの回路規模は全て同一であるものとした。しかしながら、装着されるリコンフィギュラブルＬＳＩの回路規模は互いに異なってもよいことはいうまでもない。このような場合を考慮すると、コンフィギュレーション情報に、各サブコンフィギュレーションデータのサイズに関する情報を含めておくのが好ましい。すなわち、各サブコンフィギュレーションデータについて、そのサブコンフィギュレーションデータによってコンフィギュレーション可能なリコンフィギュラブルＬＳＩの回路規模を示す情報（以下、サイズ情報と称す）を、コンフィギュレーション情報格納メモリ１０８に格納しておく。これにより、例えば、現在装着されているリコンフィギュラブルＬＳＩを後日、さらに集積度の高いリコンフィギュラブルＬＳＩと置換する場合などにも柔軟に対応可能である。
【００６７】
図１５は図３のコンピュータシステムにおいて、２個のリコンフィギュラブルＬＳＩ１０３，１０４をその２倍の集積度を有する１個のリコンフィギュラブルＬＳＩ１０３Ａに置換した場合の動作を示す。ＣＰＵ１００は、コンフィギュレーション情報格納メモリ１０８に格納されたサイズ情報を参照することによって、１個のリコンフィギュラブルＬＳＩ１０３Ａに２個のサブコンフィギュレーションデータを割り振っている。これによって、リコンフィギュラブルＬＳＩ１０３Ａは、図３のリコンフィギュラブルＬＳＩ１０３，１０４の２倍のデータが実装される。
【００６８】
すなわち、リコンフィギュラブルＬＳＩ１０３Ａは、まず図１５（ａ）に示すように、番号１，２のサブコンフィギュレーションデータすなわちdeca,decv1を用いてコンフィギュレーションされる。その後、図１５（ｂ）に示すように、番号３，４のサブコンフィギュレーションデータすなわちdecv2,encaを用いてコンフィギュレーションされ、図１５（ｃ）に示すように、番号５，６のサブコンフィギュレーションデータすなわちencv1,encv2を用いてコンフィギュレーションされ、最後に図１５（ｄ）に示すように、番号７のサブコンフィギュレーションデータすなわちcombを用いてコンフィギュレーションされる。なお、実行される処理は図１４と同様である。
【００６９】
もちろん、集積度の高いリコンフィギュラブルＬＳＩと集積度の低いリコンフィギュラブルＬＳＩとを混在させてコンピュータシステムに実装するような場合であっても、サイズ情報を格納しておくことによって、柔軟に対応可能である。
【００７０】
なお、上述した依存関係情報やサイズ情報は、コンフィギュレーション情報に含めておく必要は必ずしもない。例えば、装着されるリコンフィギュラブルモジュールの個数のバリエーションが既知であるなら、そのバリエーションに応じてそれぞれ、各サブコンフィギュレーションデータの割り振り順を予め決めておいてもよい。すなわち、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じてそれぞれ決定された、各サブコンフィギュレーションデータの割り振り順を示す実装順序情報を、依存関係情報の代わりに、コンフィギュレーション情報に含めておいてもかまわない。
【００７１】
図１６はこのような実装順序情報を含むコンフィギュレーション情報の一例である。図１６では、コンフィギュレーション順序決定情報３００は、図９の内部構造情報４０１と同一内容の内部構造情報３０１と、実装順序情報３０２とを含んでいる。実装順序情報３０２では、モジュールが１〜４個の場合それぞれについて、各ステップにおいてどのサブコンフィギュレーションデータを実装するかを示している。なお、ここでは、コンピュータシステムに設けられたリコンフィギュラブルＬＳＩ装着用のソケットの個数が４個であるものとしている。
【００７２】
図１６のコンフィギュレーション情報を図９のコンフィギュレーション情報の代わりにコンフィギュレーション情報格納メモリ１０８に格納して用いても、上述したのと同様の処理を実行することができる。図１７は図１６のコンフィギュレーション情報をコンフィギュレーション情報格納メモリ１０８に格納した状態を示す模式図である。図１７において、３００は内部構造情報３０１と実装順序情報３０２を含むコンフィギュレーション順序決定情報であり、４０３は複数のサブコンフィギュレーションデータ４０４〜４１０を含むサブコンフィギュレーションデータモジュールである。コンフィギュレーション順序決定情報３００とサブコンフィギュレーションデータモジュール４０３とによって、コンフィギュレーション情報４２０Ａが構成されている。
【００７３】
さらに、図１６の例では、内部構造情報３０１を共通とし、リコンフィギュラブルモジュールの個数のバリエーションそれぞれに対して、各ステップで実装されるサブコンフィギュレーションデータを示す実装順序情報３０２を設けた。この代わりに、リコンフィギュラブルモジュールの個数のバリエーションそれぞれに対して各々マッピングを行い、直接コンフィギュレーション情報を持たせても良い。すなわち、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じて、それぞれ、コンフィギュレーション情報を生成してもよい。この場合、所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュレーションデータを含むコンフィギュレーション情報が、装着されるリコンフィギュラブルモジュールの個数のバリエーションに応じて、複数個、コンフィギュレーション情報格納メモリ１０８に格納されることになる。
【００７４】
図１８は図４のマッピング装置におけるコンフィギュレーション情報生成部２０１の処理結果の他の例を示す図である。図７の例では、アルゴリズムを並列に処理可能な２つの部分に分割していたが、ビデオのデコード処理が必ずしも完全に並列に行えるとは限らない。そこで図１８では、共通に処理しなければならない部分（この場合は最初の処理）について、decv0としてサブコンフィギュレーションデータを生成している。実際のコンフィギュレーション情報生成では、このように直列に接続される部分と並列に接続される部分が最適になるように、スケジューリングを行っていく必要があると考えられる。
【００７５】
なお、リコンフィギュラブルモジュールが着脱可能に構成されたコンピュータシステムは、図１や図３の構成に限られるものではなく、様々な構成が考えられる。以下、他の構成例について説明する。なお、以下で言及する各図において、図１および図３と共通の構成要素には図１および図３と同一の符号を付しており、その詳細な説明は省略する。
【００７６】
図１９はバスブリッジが２階層になったコンピュータシステムであり、パソコンへの実装を想定したものである。ＩＯバス１３１にリコンフィギュラブルブロック１３０が接続されている。リコンフィギュラブルブロック１３０内において、リコンフィギュラブルＬＳＩ１０３，１０４は着脱可能であり、バスブリッジ１３２を介してＩＯバス１３１とのデータのやりとりが可能になっている。
【００７７】
図２０はリコンフィギュラブルＬＳＩと並列に専用ハードウェアが接続されたコンピュータシステムである。すなわち、通信用バス１１１に、リコンフィギュラブルＬＳＩ１０３，１０４と並列に専用ハードウェア１４１，１４２が接続されている。当初はリコンフィギュラブルＬＳＩにプログラムによって実装していた機能であっても、仕様が固まってくると、専用ハードウェアによって実行する方が、回路規模や消費電力の削減の点で有利になる。この場合には、専用ハードウェアによって実行する機能以外の機能について、コンフィギュレーション情報を生成し直せばよい。
【００７８】
図２１はＲＦ回路を含むリコンフィギュラブルＬＳＩが装着されたコンピュータシステムであり、携帯電話向け用途を想定している。リコンフィギュラブルＬＳＩ１４３，１４４は、無線ＬＡＮ、携帯電話およびＢｌｕｅｔｏｏｔｈの３つの方式に対応できるＲＦ回路１４３ａ，１４４ａを実装している。リコンフィギュラブルＬＳＩ１個だけでは、無線ＬＡＮ、携帯電話およびＢｌｕｅｔｏｏｔｈの３つの方式のうちのいずれか１つの方式でしか通信できない。２つの方式で同時通信する必要性が生じた場合には、通信処理も２倍必要なので、リコンフィギュラブルＬＳＩも２個実装する必要がある。２個のリコンフィギュラブルＬＳＩ１４３，１４４に、３つの方式に対応できるＲＦ回路１４３ａ，１４４ａをそれぞれ実装することによって、２つの方式で同時通信することができる。
【００７９】
図２２はＵＳＢ経由でリコンフィギュラブルブロックが接続されたコンピュータシステムである。図２２において、リコンフィギュラブルブロック１５０は、通信用バス１５１、ＵＳＢデバイスＩＦ１５２、通信用メモリ１５３、およびリコンフィギュラブルＬＳＩ１５４，１５５を備えており、ＵＳＢホストＩＦ１５６を介してＩＯバス１３１と接続されている
図２３はＵＳＢ経由でリコンフィギュラブルブロックが階層的に増設されたコンピュータシステムである。図２３において、リコンフィギュラブルブロック１５０ａ，１５０ｂはＵＳＢホストＩＦ１５６と接続されており、リコンフィギュラブルブロック１５０ｃ，１５０ｄは、ＵＳＢホストＩＦ１５６に接続されたＵＳＢハブ１５７と接続されている。ＵＳＢハブ１５７には周辺機器１５８も接続されている。周辺機器１５８はアンテナ部、音声入力部および音声出力部を備えたデバイスであり、無線電話や携帯電話などで利用される機能を備えたものである。これにより例えば、周辺機器１５８とリコンフィギュラブルブロック１５０ｃ，１５０ｄとの間でローカルな処理が可能になる。また、どのリコンフィギュラブルブロックにどのコンフィギュレーション情報をマッピングするかは、ＣＰＵ１００が決定する。したがって、リコンフィギュラブルブロックの接続構造に最適なコンフィギュレーション情報のマッピングが可能になる。
【００８０】
図２４はＵＳＢハブによる拡張を考慮したコンフィギュレーション情報の実装概念図である。図２４は図２３のシステム構成における、ＵＳＢハブ１５７を介して接続されたリコンフィギュラブルブロック１５０ｃ，１５０ｄに関するコンフィギュレーション順序決定情報５００を示している。コンフィギュレーション順序決定情報５００は、内部構造情報５０１と実装順序情報５０２を含む。内部構造情報５０１では、周辺機器１５８のアンテナ部から入力された受信データ（ｒ）をストリームデコード処理（decr）してデコードされた音声データ（ａ１）を出力し、さらに音声デコード処理（deca1）してデコードされた音声データ（ａ１）を出力するフローが示されている。また、周辺機器１５８の音声入力部から入力された音声データ（ａ２）を音声エンコード処理（enca2）してエンコードされた音声データ（ａ２）を出力し、さらにストリームエンコード処理（enct）して送信データ（ｔ）を出力するフローが示されている。
【００８１】
図２４のコンフィギュレーション順序決定情報５００は、図２３内のＵＳＢホストＩＦ１５６を介して接続されたリコンフィギュラブルブロック１５０ａ，１５０ｂに関するコンフィギュレーション情報（例えば図１６と同様）とともに、コンフィギュレーション情報格納メモリ１０８に格納される。サブコンフィギュレーションデータdecr,deca1,enca2,enctも同様に格納される。
【００８２】
リコンフィギュラブルブロック１５０ｃ，１５０ｄはＵＳＢハブ１５７に接続された周辺機器１５８が扱う処理のために用いられる。一方、リコンフィギュラブルブロック１５０ａ，１５０ｂはバス１３１に接続された汎用ＩＯ１１２から入力される動画処理のために用いられる。このため、リコンフィギュラブルブロック１５０ｃ，１５０ｄとリコンフィギュラブルブロック１５０ａ，１５０ｂとは、別々にコンフィギュレーションされ、コンフィギュレーション情報も別個に格納される。
【００８３】
図２５はリコンフィギュラブルＬＳＩがバスに接続されずに増設されたコンピュータシステムである。図２５において、リコンフィギュラブルＬＳＩ１６４は通信用バス１１１を介さないでリコンフィギュラブルＬＳＩ１６３と直接接続されており、また、リコンフィギュラブルＬＳＩ１６６は通信用バス１１１を介さないでリコンフィギュラブルＬＳＩ１６５と直接接続されている。この構成は例えば、リコンフィギュラブルＬＳＩ１６４がリコンフィギュラブルＬＳＩ１６３のみと通信し、リコンフィギュラブルＬＳＩ１６５，１６６などと通信する必要がない場合に、有効となる。
【００８４】
図２６はリコンフィギュラブルＬＳＩの他にビデオエンコーダ１７１およびビデオデコーダ１７２が専用ＬＳＩとして増設された構成である。また、図２７は２個のリコンフィギュラブルＬＳＩの他にビデオエンコーダ１７１が専用ＬＳＩとして増設された構成である。
【００８５】
図２８はビデオエンコーダまたはビデオデコーダが専用ＬＳＩとして増設されることを考慮して生成されたコンフィギュレーション情報の実装概念図である。図１６に示したコンフィギュレーション順序決定情報３００は、図７に示された各処理をリコンフィギュラブルＬＳＩのみを用いてステップに分けて実行するものとした実装順序情報３０２を含む。これに対して図２８に示すコンフィギュレーション順序決定情報３００Ａは、実装順序情報３０２に加えて、ビデオエンコーダまたはビデオデコーダが専用ＬＳＩとして増設された場合、これらがビデオエンコード処理またはビデオデコード処理を行うことを考慮した、実装順序情報３０３を含んでいる。
【００８６】
なお、内部構造情報３０１では、ビデオデコード処理decvは２つのサブコンフィギュレーションデータdecv1,decv2に、またビデオエンコード処理encvは２つのサブコンフィギュレーションデータencv1,encv2に分割されている。ただし、専用ＬＳＩでは、これらの処理を、リコンフィギュレーションＬＳＩが１ステップの処理を行っている時間内に完了できることが前提になっている。
【００８７】
すなわち、専用ＬＳＩは特定の処理を高速に実行するために設計されているので、一般に、リコンフィギュラブルＬＳＩを用いた場合よりも短い時間で処理を完了することができる。図２６および図２７の構成のシステムでは、リコンフィギュラブルＬＳＩがオーディオデコードやオーディオエンコードなどの１単位の処理を実行している間に、ビデオエンコーダ１７１およびビデオデコーダ１７２は、２つに分割されていたビデオエンコード処理decvまたはビデオデコード処理encvの全体をそれぞれ実行することができる。
【産業上の利用可能性】
【００８８】
本発明では、システム購入後にユーザが、リコンフィギュラブルモジュールを増設して、実行させる処理量を増やしたり、動画の圧縮伸張などの新たなアルゴリズムに対応させたりすることが可能になるので、例えば、ＤＶＲ等の動画記録装置などに利用するのに適している。
【００８９】
また、本発明では、動作周波数の向上やトランジスタ数の増加などによって処理能力がより高いリコンフィギュラブルモジュールが発表された場合、そのリコンフィギュラブルモジュールに置き換えることによって、より少ない個数のリコンフィギュラブルモジュールによる処理が実現できる。このため、同一処理に対する消費電力を減らすことができるので、例えば携帯電話などに利用するのに適している。
【００９０】
さらに、リコンフィギュラブルモジュールの増設によって、システム全体の処理能力を簡単に拡張できるので、例えば、マルチメディア処理向けのワークステーションにも最適である。
【図面の簡単な説明】
【００９１】
【図１】本発明の一実施形態に係るコンピュータシステムの構成を示す図である。
【図２】リコンフィギュラブルＬＳＩの着脱機構の構成例である。
【図３】図１と異なる個数のリコンフィギュラブルＬＳＩが実装されたコンピュータシステムの構成を示す図である。
【図４】本発明の一実施形態に係るマッピング装置の構成を示す図である。
【図５】動画のＨＤからＳＤへのフォーマット変換の処理内容の例を示す図である。
【図６】図４のマッピング装置におけるアルゴリズム解析部の処理結果の例を示す図である。
【図７】図４のマッピング装置におけるコンフィギュレーション情報生成部の処理結果を示す図である。
【図８】図４のマッピング装置における番号付与部の処理結果の例を示す図である。
【図９】図４のマッピング装置における通信情報付与部の処理結果の例を示す図であり、本発明に係るコンフィギュレーション情報の一例を示す図である。
【図１０】図９のコンフィギュレーション情報が格納された状態を示す模式図である。
【図１１】通信用メモリのマッピングの例を示す図である。
【図１２】本発明の一実施形態に係るコンピュータシステムの動作を示すフローチャートである。
【図１３】図１のコンピュータシステムの動作を具体的に示す図である。
【図１４】図３のコンピュータシステムの動作を具体的に示す図である。
【図１５】図３のコンピュータシステムにおいて２個のリコンフィギュラブルＬＳＩをその２倍の集積度を有する１個のリコンフィギュラブルＬＳＩに置換した場合の動作を具体的に示す図である。
【図１６】本発明に係るコンフィギュレーション情報の他の例を示す図である。
【図１７】図１６のコンフィギュレーション情報が格納された状態を示す模式図である。
【図１８】図４のマッピング装置におけるコンフィギュレーション情報生成部の処理結果の他の例を示す図である。
【図１９】本発明に係るコンピュータシステムの他の構成例である。
【図２０】本発明に係るコンピュータシステムの他の構成例である。
【図２１】本発明に係るコンピュータシステムの他の構成例である。
【図２２】本発明に係るコンピュータシステムの他の構成例である。
【図２３】本発明に係るコンピュータシステムの他の構成例である。
【図２４】図２３の構成におけるコンフィギュレーション情報の例を示す図である。
【図２５】本発明に係るコンピュータシステムの他の構成例である。
【図２６】本発明に係るコンピュータシステムの他の構成例である。
【図２７】本発明に係るコンピュータシステムの他の構成例である。
【図２８】図２６および図２７の構成におけるコンフィギュレーション情報の例を示す図である。
【符号の説明】
【００９２】
１００  ＣＰＵ
１０１  メインメモリ
１０２  バスブリッジ
１０３，１０４，１０５，１０６  リコンフィギュラブルＬＳＩ（リコンフィギュラブルモジュール）
１０７  通信用メモリ
１０８  コンフィギュレーション情報格納メモリ（コンフィギュレーション情報格納部）
１１０  メインバス
１１１  通信用バス
１２０  通信用バス
１２１  ソケット（接続部）
１２２  リコンフィギュラブルＬＳＩ
２００  アルゴリズム解析部
２０１  コンフィギュレーション情報生成部
２０２  番号付与部
２０３  通信情報付与部
３００  コンフィギュレーション順序決定情報
３０１  内部構造情報
３０２  実装順序情報
４００  コンフィギュレーション順序決定情報
４０１  内部構造情報
４０２  依存関係情報
４０４〜４１０  サブコンフィギュレーションデータ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2006109623.tif 000030
【図２】
2006109623.tif 000031
【図３】
2006109623.tif 000032
【図４】
2006109623.tif 000033
【図５】
2006109623.tif 000034
【図６】
2006109623.tif 000035
【図７】
2006109623.tif 000036
【図８】
2006109623.tif 000037
【図９】
2006109623.tif 000038
【図１０】
2006109623.tif 000039
【図１１】
2006109623.tif 000040
【図１２】
2006109623.tif 000041
【図１３】
2006109623.tif 000042
【図１４】
2006109623.tif 000043
【図１５】
2006109623.tif 000044
【図１６】
2006109623.tif 000045
【図１７】
2006109623.tif 000046
【図１８】
2006109623.tif 000047
【図１９】
2006109623.tif 000048
【図２０】
2006109623.tif 000049
【図２１】
2006109623.tif 000050
【図２２】
2006109623.tif 000051
【図２３】
2006109623.tif 000052
【図２４】
2006109623.tif 000053
【図２５】
2006109623.tif 000054
【図２６】
2006109623.tif 000055
【図２７】
2006109623.tif 000056
【図２８】
2006109623.tif 000057
【国際調査報告】
2006109623.tif 000058
2006109623.tif 000059
2006109623.tif 000060