(57)【要約】【課題】再構成可能な回路構成装置の仕様が異なるときでも、回路構成装置の仕様に合った構成情報を生成可能な情報処理装置および情報処理方法を提供する。【解決手段】動作記述情報に基いて、コントロールデータフローグラフ（ＣＤＦＧ）を生成するＣＤＦＧ生成部１１と、ＣＤＦＧ生成部１１により生成されたＣＤＦＧ、および回路構成装置２４の仕様情報に基いて、ＣＤＦＧの内の回路構成装置２４で実行可能な処理を抽出する実行可能処理抽出部１２と、実行可能処理抽出部１２から出力された実行可能な部分グラフ、および回路構成装置２４の仕様情報に基いて、回路構成装置２４のアドレッシング装置２４１およびデータパス装置２４２の処理実行時の動作を決定する実行処理割当部１３と、実行処理割当部１３で生成された割当結果、および回路構成装置２４の仕様情報に基いて構成情報を生成する構成情報生成部１４とを設ける。【選択図】　図１
2004086656.tif 000002
【特許請求の範囲】
【請求項１】
構成情報に基いて内部の回路を再構成し所定の演算を行う回路構成装置に、前記構成情報を供給する情報処理装置であって、
前記回路構成装置の性能を示す仕様情報に基いて、所定の演算を行わせる第１の動作記述情報の内から、前記回路構成装置で実行可能な第２の動作記述情報を抽出する抽出手段と、
前記抽出手段で抽出された第２の動作記述情報、および前記仕様情報に基いて、前記構成情報を生成する構成情報生成手段とを有する
情報処理装置。
【請求項２】
前記第１の動作記述情報は、順次実行処理、選択実行処理、または反復実行処理を行わせる制御情報を少なくとも１つ含み、
前記抽出手段は、
前記第１の動作情報に含まれる前記制御情報に基いて、順次実行処理、選択実行処理、反復実行処理それぞれに対応する第１のデータフローグラフを生成するグラフ生成手段と、
前記仕様情報に基いて、前記グラフ生成手段で生成された前記第１のデータフローグラフの内から、前記回路構成装置で実行可能な第２のデータフローグラフを抽出して、当該第２のデータフローグラフを含む前記第２の動作記述情報を生成する実行可能処理抽出手段とを有する
請求項１に記載の情報処理装置。
【請求項３】
前記実行可能処理抽出手段は、前記仕様情報に基いて、前記第１のデータフローグラフの内、前記回路構成装置で実行可能な演算または命令を示す第２のデータフローグラフを抽出し、当該第２のデータフローグラフを含む第２の動作記述情報を生成する
請求項２に記載の情報処理装置。
【請求項４】
前記回路構成装置は、前記構成情報に応じて再構成可能なデータパス装置を有し、
前記仕様情報は、前記データパス装置の性能に関する第２の仕様情報を含み、前記構成情報生成手段は、前記抽出手段で抽出された第２の動作記述情報、および前記第２の仕様情報に基いて、前記データパス装置の演算方法を示すデータ含む前記構成情報を生成する
請求項１に記載の情報処理装置。
【請求項５】
前記データパス装置は、所定の演算を行う演算器を有し、
前記構成情報に応じて再構成して、少なくとも前記演算器間の接続関係、または前記演算器の動作のいずれかを設定し、
前記構成情報生成手段は、前記仕様情報に基いて、前記抽出手段から出力された第２のデータフローグラフが含む順次実行処理、選択実行処理、反復実行処理の制御情報を、当該制御情報に対応する前記演算器に割当て、少なくとも前記各演算器の動作または接続関係を決定し、当該演算器の動作または接続関係を示すデータを含む構成情報を生成する
請求項４に記載の情報処理装置。
【請求項６】
前記回路構成装置は、前記構成情報に基いて再構成して、前記データパス装置の演算処理で用いられるメモリのアドレス算出方法を決定するアドレッシング装置を有し、
前記構成情報生成手段は、前記仕様情報、および前記抽出手段から出力された第２のデータフローグラフに基いて、前記アドレッシング装置のアドレス算出方法を決定し、前記決定されたアドレス算出方法を示すデータを含む構成情報を生成する
請求項５に記載の情報処理装置。
【請求項７】
前記回路構成装置は、前記構成情報に基いて再構成し、メモリ上のアドレスを算出するカウンタを含むアドレッシング装置を有し、
前記構成情報生成手段は、前記第２の動作記述情報に基いて、前記カウンタの動作を決定し、当該動作を示すデータを含む構成情報を生成する
請求項１に記載の情報処理装置。
【請求項８】
前記実行可能処理抽出手段は、前記仕様情報および前記第１のデータフローグラフに基いて、前記第１のデータフローグラフの内から、前記回路構成装置がメモリにアクセス可能な第２のデータフローグラフを抽出し、当該第２のデータフローグラフを含む第２の動作記述情報を生成する
請求項２に記載の情報処理装置。
【請求項９】
構成情報に基いて内部の回路を再構成し所定の演算を行う回路構成装置に、前記構成情報を供給する情報処理装置の情報処理方法であって、
前記回路構成装置の性能を示す仕様情報に基いて、所定の演算を行わせる第１の動作記述情報の内から、前記回路構成装置で実行可能な第２の動作記述情報を抽出し、
前記抽出された第２の動作記述情報、および前記仕様情報に基いて、前記構成情報を生成する
情報処理方法。
【請求項１０】
前記第１の動作記述情報は、順次実行処理、選択実行処理、または反復実行処理を行わせる制御情報を少なくとも１つ含み、
前記第２の動作記述情報を抽出するとき、前記第１の動作情報に含まれる前記制御情報に基いて、順次実行処理、選択実行処理、反復実行処理それぞれに対応する第１のデータフローグラフを生成し、
前記仕様情報に基いて、前記生成された第１のデータフローグラフの内から、前記回路構成装置で実行可能な第２のデータフローグラフを抽出して、当該第２のデータフローグラフを含む前記第２の動作記述情報を生成する
請求項９に記載の情報処理方法。
【請求項１１】
前記第２の動作記述情報を生成するとき、前記仕様情報に基いて、前記第１のデータフローグラフの内から、前記回路構成装置で実行可能な演算または命令を示す第２のデータフローグラフを抽出し、当該第２のデータフローグラフを含む第２の動作記述情報を生成する
請求項１０に記載の情報処理方法。
【請求項１２】
前記回路構成装置は、前記構成情報に応じて再構成可能なデータパス装置を有し、
前記仕様情報は、前記データパス装置の性能に関する第２の仕様情報を含み、前記構成情報を生成するとき、前記抽出された第２の動作記述情報、および前記第２の仕様情報に基いて、前記データパス装置の演算方法を示すデータ含む前記構成情報を生成する
請求項９に記載の情報処理方法。
【請求項１３】
前記データパス装置は、所定の演算を行う演算器を有し、
前記構成情報に応じて再構成して、少なくとも前記演算器間の接続関係、または前記演算器の動作のいずれかを設定し、
前記構成情報を生成するとき、前記仕様情報に基いて、前記抽出手段から出力された第２のデータフローグラフが含む順次実行処理、選択実行処理、反復実行処理の制御情報を、当該制御情報に対応する前記演算器に割当て、少なくとも前記各演算器の動作または接続関係を決定し、当該演算器の動作または接続関係を示すデータを含む構成情報を生成する
請求項１２に記載の情報処理方法。
【請求項１４】
前記回路構成装置は、前記構成情報に基いて再構成して、前記データパス装置の演算処理で用いられるメモリのアドレス算出方法を決定するアドレッシング装置を有し、
前記構成情報を生成するとき、前記仕様情報、および前記抽出手段から出力された第２のデータフローグラフに基いて、前記アドレッシング装置のアドレス算出方法を決定し、前記決定されたアドレス算出方法を示すデータを含む構成情報を生成する
請求項１３に記載の情報処理方法。
【請求項１５】
前記回路構成装置は、前記構成情報に基いて再構成し、メモリ上のアドレスを算出するカウンタを含むアドレッシング装置を有し、
前記構成情報を生成するとき、前記第２の動作記述情報に基いて、前記カウンタの動作を決定し、当該動作を示すデータを含む構成情報を生成する
請求項９に記載の情報処理方法。
【請求項１６】
前記第２の動作記述情報を生成するとき、前記仕様情報および前記第１のデータフローグラフに基いて、前記第１のデータフローグラフの内から、前記回路構成装置がメモリにアクセス可能な第２のデータフローグラフを抽出し、当該第２のデータフローグラフを含む第２の動作記述情報を生成する
請求項１０に記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、構成情報に基いて再構成可能な再構成回路を含む演算装置の構成情報を生成する情報処理装置、および情報処理方法に関するものである。
【０００２】
【従来の技術】
小型携帯機器の急速な普及により、低消費電力、高速動作の論理回路を短期間で開発することが要求されるようになっている。このため再構成可能な回路構成装置（再構成回路とも言う）が必要とされるようになった。
この再構成可能な回路構成装置において、細粒度のセルから構成されるＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ　）などを含む回路構成装置が普及している。また、近年では、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ　ａｎｄ　ｌｏｇｉｃａｌ　ｕｎｉｔ　）等の粗粒度のセルから構成される再構成可能な回路構成装置の方が信号処理などで有利であり、注目されている。
【０００３】
上記のような粗粒度のセルから構成される再構成可能な回路構成装置が動的に再構成可能である場合、メモリ上に格納された構成情報をもとに回路構成装置の動作を決定する。この場合には、メモリ上に格納する構成情報を別途作成する必要があり、構成情報作成の効率化が全体の開発期間に大きく影響する。
【０００４】
また、高レベル言語の動作記述によるアプリケーションを入力し、設計者が与えた電力、遅延などのコストを満たす動的再構成可能な回路構成装置と、その構成情報を生成する手法が知られている。この手法は、入力されたアプリケーションに最良の動的再構成可能な回路構成装置とその構成情報を出力することができる（例えば、非特許文献１参照。）。
【０００５】
ところで、データフローグラフ（ＤＦＧ：Ｄａｔａ　ｆｌｏｗ　ｇｒａｐｈ　）およびプログラミング言語による動作記述を入力とし、このＤＦＧを実現する再構成可能な回路構成装置を生成する方法が知られている。この方法では、プログラミング言語で記述された動作（動作記述情報とも言う）を、全て実現する再構成可能な回路構成装置を自動で生成することができる（例えば、特許文献１参照。）。
【０００６】
【特許文献１】
特開平１１−１２０２１０号公報
【非特許文献１】
Ｍａｒｌｅｎｅ　Ｗａｎ、　Ｈｕｉ　Ｚｈａｎｇ、　Ｖａｒｇｈｅｓｅ　Ｇｅｏｒｇｅ、　Ｍａｒｔｉｎ　Ｂｅｎｅｓ、　Ａｒｔｈｕｒ　Ａｂｎｏｕｓ、　Ｖａｎｄａｎａ　Ｐｒａｂｈｕ、　Ｊａｎ　Ｒａｂａｅｙ、　“Ｄｅｓｉｇｎ　Ｍｅｔｈｏｄｏｌｏｇｙ　ｏｆ　ａ　Ｌｏｗ−ＥｎｅｒｇｙＲｅｃｏｎｆｉｇｕｒａｂｌｅ　Ｓｉｎｇｌｅ−Ｃｈｉｐ　ＤＳＰ　Ｓｙｓｔｅｍ”
【０００７】
【発明が解決しようとする課題】
しかし、ＤＦＧおよびプログラミング言語による動作記述に基いて、そのＤＦＧを実現する再構成可能な回路（例えば、非特許文献１参照）では、回路構成装置の仕様を考慮していないため、入力された記述情報から、既に開発されている回路構成装置が実行可能な処理を抽出し、その構成情報を生成することはできなかった。つまり、例えば、再構成可能な回路構成装置の仕様が変更された場合に、その仕様に応じた構成情報を生成することができないという問題点があった。
【０００８】
また、例えば、上述した回路構成装置（特許文献１を参照）では、入力された動作記述の全動作を実行する回路構成装置しか生成できない。このため、再構成可能な回路構成装置の実行部分と他の回路構成装置の実行部分とを、例えば人手で切り分けなければならないという問題点がある。
【０００９】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、再構成可能な回路構成装置の仕様が異なった場合であっても、その回路構成装置の仕様に合った構成情報を生成可能な情報処理装置および情報処理方法を提供することにある。
【００１０】
また、本発明の他の目的は、再構成可能な回路構成装置の実行部分と、他の回路構成装置の実行部分とに分けることが可能な情報処理装置および情報処理装置を提供することにある。
【００１１】
【課題を解決するための手段】
前記目的を達成するために、第１の発明の情報処理装置は、構成情報に基いて内部の回路を再構成し所定の演算を行う回路構成装置に、前記構成情報を供給する情報処理装置であって、前記回路構成装置の性能を示す仕様情報に基いて、所定の演算を行わせる第１の動作記述情報の内から、前記回路構成装置で実行可能な第２の動作記述情報を抽出する抽出手段と、前記抽出手段で抽出された第２の動作記述情報、および前記仕様情報に基いて、前記構成情報を生成する構成情報生成手段とを有する。
【００１２】
第１の発明の情報処理装置によれば、構成情報に基いて内部の回路を再構成し所定の演算を行う回路構成装置に、前記構成情報を供給する。
抽出手段では、前記回路構成装置の性能を示す仕様情報に基いて、所定の演算を行わせる第１の動作記述情報の内から、前記回路構成装置で実行可能な第２の動作記述情報が抽出される。
構成情報生成手段では、前記抽出手段で抽出された第２の動作記述情報、および前記仕様情報に基いて、前記構成情報が生成される。
【００１３】
好適には、前記第１の動作記述情報は、順次実行処理、選択実行処理、または反復実行処理を行わせる制御情報を少なくとも１つ含み、前記抽出手段は、前記第１の動作情報に含まれる前記制御情報に基いて、順次実行処理、選択実行処理、反復実行処理それぞれに対応する第１のデータフローグラフを生成するグラフ生成手段と、前記仕様情報に基いて、前記グラフ生成手段で生成された前記第１のデータフローグラフの内から、前記回路構成装置で実行可能な第２のデータフローグラフを抽出して、当該第２のデータフローグラフを含む前記第２の動作記述情報を生成する実行可能処理抽出手段とを有する。
【００１４】
さらに、前記目的を達成するために、第２の発明の情報処理方法は、構成情報に基いて内部の回路を再構成し所定の演算を行う回路構成装置に、前記構成情報を供給する情報処理装置の情報処理方法であって、前記回路構成装置の性能を示す仕様情報に基いて、所定の演算を行わせる第１の動作記述情報の内から、前記回路構成装置で実行可能な第２の動作記述情報を抽出し、前記抽出された第２の動作記述情報、および前記仕様情報に基いて、前記構成情報を生成する。
【００１５】
好適には、前記第１の動作記述情報は、順次実行処理、選択実行処理、または反復実行処理を行わせる制御情報を少なくとも１つ含み、前記第２の動作記述情報を抽出するとき、前記第１の動作情報に含まれる前記制御情報に基いて、順次実行処理、選択実行処理、反復実行処理それぞれに対応する第１のデータフローグラフを生成し、前記仕様情報に基いて、前記生成された第１のデータフローグラフの内から、前記回路構成装置で実行可能な第２のデータフローグラフを抽出して、当該第２のデータフローグラフを含む前記第２の動作記述情報を生成する。
【００１６】
【発明の実施の形態】
図１は、本実施の形態に係る情報処理装置と演算装置の一実施の形態を示す図である。
本発明の一実施の形態に係る情報処理装置１は、構成情報に基いて再構成可能な回路構成装置２４を含む演算装置２に、演算装置２に所定の演算処理を行わせる動作記述情報と、その回路構成装置２４の仕様情報とに基いて、構成情報を生成する。
【００１７】
演算装置２の回路構成装置２４は、その構成情報に基いて回路構成を再構成する。
演算装置２は、動作記述情報に応じて生成された構成情報に基いて、回路構成装置２４に所定の演算処理を行わせ、また、回路構成装置２４以外の回路、例えばＣＰＵ２３が、例えば動作記述情報に基いて生成された演算情報に基いて所定の演算処理を行う。
【００１８】
演算装置
図２は、図１に示した情報処理装置が生成する構成情報に基いた動作を行う回路構成装置を含む演算装置の機能ブロック図である。
演算装置２は、例えば、ＩＦ２１、メモリ２２、ＣＰＵ２３、および回路構成装置２４を有する。
ＩＦ２１、メモリ２２、ＣＰＵ２３、および回路構成装置２４は、例えばバスＢＳにより接続されている。
【００１９】
ＩＦ２１は、例えば、ＣＰＵ２３の制御により、情報処理装置１とデータ伝送線Ｌを介してデータ通信を行う。
ＩＦ２１は、例えば、情報処理装置１から出力された所定の演算処理に関する所定のデータ、例えば構成情報や演算情報等を受信する。
メモリ２２は、ＣＰＵ２３の制御のもと、例えば、演算処理に関する所定のデータ、具体的には構成情報や演算情報等を記憶する。
【００２０】
ＣＰＵ２３は、ＩＦ２１で演算処理に関するデータ、構成情報や演算情報が入力されると、メモリ２２に記憶させる。
ＣＰＵ２３は、所定の演算を行う際には、メモリ２２に記憶された、構成情報を回路構成装置２４に出力し、回路構成装置２４に構成情報に基いて内部の回路を再構成させる。
また、ＣＰＵ２３は、演算情報に基いて所定の演算処理を行う。
この際、例えばＣＰＵ２３は、構成情報に基いて再構成された回路構成装置２４に所定の演算を行わせ、その演算結果を用いて所定の演算処理を行う。
【００２１】
図３は、図２に示した演算装置の回路構成装置の一実施の形態を示すブロック図である。
回路構成装置２４は、例えば図３に示すように、アドレッシング装置２４１、データパス装置２４２、および構成情報ローダ２４３を有する。
【００２２】
アドレッシング装置２４１は、アドレス算出用の単一または複数のカウンタ２４１１、例えばカウンタ２４１１−０〜ｎを有する。
アドレッシング装置２４１は、構成情報に基いて、各カウンタ２４１１の動作とアドレス算出方法を設定（再構成）する。
【００２３】
データパス装置２４２は、特定の演算を実行可能な単一または複数の演算器２４２１、例えば演算器２４２１−１〜ｍを有する。
データパス装置２４２は、例えば、構成情報に基いて演算器の配列や係数パラメータ等を設定（再構成）して、指定の演算を行い、演算結果をメモリ２２に出力する。
【００２４】
構成情報ローダ２４３は、例えば、ＣＰＵ２３の制御のもと、メモリ２２から構成情報を読出し、アドレッシング装置２４１、およびデータパス装置２４２に出力する。アドレッシング装置２４１およびデータパス装置２４２は、構成情報に基いて内部の回路構成を再構成する。
【００２５】
上述した回路構成装置２４が所定の演算処理を行う場合の動作を簡単に説明する。
構成情報ローダ２４３は、例えばＣＰＵ２３の制御により、構成情報をメモリ２２から読み出し、アドレッシング装置２４１およびデータパス装置２４２に出力する。
【００２６】
アドレッシング装置２４１では、構成情報に基いて、各カウンタ２４１１の動作とアドレス算出方法が設定（再構成）される。データパス装置２４２では、構成情報に基いて各演算器２４２１が実行する演算が設定（再構成）される。
【００２７】
データパス装置２４２では、アドレッシング装置２４１が算出したメモリアドレス上のデータに基いて、構成情報に応じて設定された演算を実行し、アドレッシング装置２４１が算出したメモリ２２のメモリアドレス上に、演算結果を出力する。
データパス装置２４２は、上述の処理をアドレッシング装置２４１が算出した全てのアドレスの、メモリ２２上のデータに対して実行する。
【００２８】
回路構成装置２４の仕様を示す仕様情報は、具体的には、上述したアドレッシング装置２４１の仕様に関する情報、例えばカウンタ数、各カウンタのビット幅、アドレス算出方法、およびデータパス装置２４２の仕様に関する情報、例えば演算器数、各演算器が実行可能な演算、演算器同士の接続関係等の情報を含む。
【００２９】
情報処理装置
図４は、図１に示した本発明に係る情報処理装置のハードウェアの一実施の形態を示す図である。
情報処理装置１は、例えば図４に示すように、ＩＦ１０１、入出力部１０２、ＲＡＭ１０３、ＲＯＭ１０４、記憶部１０５、およびＣＰＵ１０６を有する。
ＩＦ１０１、入出力部１０２、ＲＡＭ１０３、ＲＯＭ１０４、記憶部１０５、およびＣＰＵ１０６は、バスＢＳにより接続されている。
例えば、情報処理装置１は、いわゆるパーソナルコンピュータである。
【００３０】
ＩＦ１０１は、ＣＰＵ１０６の制御により、例えば、データ伝送線Ｌを介して、演算装置２とデータ通信を行う。
入出力部１０２は、例えば、ユーザの操作に応じたデータをＣＰＵ１０６に出力する、いわゆるキーボードやマウス等の入力装置、およびＣＰＵ１０６の制御により所定の画像を表示するＬＣＤ（ｌｉｑｕｉｄ　ｃｒｙｓｔａｌ　ｄｉｓｐｌａｙ）等の表示装置等を有する。
【００３１】
ＲＡＭ１０３は、ＣＰＵ１０６の所定の処理のワークスペースとして用いられる。
ＲＯＭ１０４は、例えば、起動プログラムやＯＳ（オペレーティングシステム）等の所定のプログラムや初期設定等が記憶されており、ＣＰＵ１０６により読み出されて、所定の処理に用いられる。
記憶部１０５は、例えば、動作記述情報に基いて構成情報や演算情報を生成するための所定の処理を行うためのプログラム等が記憶されている。
【００３２】
ＣＰＵ１０６は、ＲＡＭ１０３、ＲＯＭ１０４、記憶部１０５に記憶されている所定のデータやプログラムに基いて、所定の処理を行う。
ＣＰＵ１０６は、例えば、記憶部１０５から、構成情報を生成するための所定の処理を行うためのプログラムを読出し、ＲＡＭ１０３をワークスペースとして、所定の処理を行う。
【００３３】
ＣＰＵ１０６は、例えば動作記述情報、回路構成装置２４の仕様情報とに基いて構成情報や演算情報等を生成する処理を行う。
また、動作記述情報や回路構成装置２４の仕様情報は、入出力部１０２から入力されてもよい。
ＣＰＵ１０６は、ＩＦ１０１に、生成した構成情報を演算装置２に出力させる。
【００３４】
本実施の形態に係る情報処理装置１は、例えば機能的には、図１に示すように、ＣＤＦＧ生成部１１、実行可能処理抽出部１２、実行処理割当部１３、および構成情報生成部１４とを有する。
例えば、ＣＰＵ１０６は、ＲＡＭ１０３、ＲＯＭ１０４、記憶部１０５に記憶されている所定のデータやプログラムに基いて、これらの機能を実現する。
【００３５】
ＣＤＦＧ生成部１１および実行可能処理抽出部１２は本発明に係る抽出手段に相当し、実行処理割当部１３および構成情報生成部１４は本発明に係る構成情報生成手段に相当する。
ＣＤＦＧ生成部１１は本発明に係るグラフ生成手段に相当し、実行可能処理抽出部１２は本発明に係る実行可能処理抽出手段に相当する。
【００３６】
ＣＤＦＧ生成部
ＣＤＦＧ生成部１１は、動作記述情報に基いて、コントロールデータフローグラフ（ＣＤＦＧ）を生成する。
動作記述情報（アプリケーション動作記述情報とも言う）は、演算装置２に所望の演算処理を行わせるための動作を記述したデータである。
動作記述情報は、例えば、順次実行処理、選択実行処理、反復実行処理のいずれかまたは全てを記述可能な言語で記述される。例えば、アプリケーション動作記述情報は、Ｃ／Ｃ＋＋言語等の高級言語で記述される。
【００３７】
以下、具体的にＣＤＦＧ生成部１１の機能を説明する。
図５は、図１に示した情報処理装置に入力される動作記述情報の一具体例を示す図である。図６は解析木の一具体例を示す図、図７は構文木の一具体例を示す図、図８はＣＦＧの一具体例を示す図、図９はＤＦＧの一具体例を示す図である。
【００３８】
動作記述情報は、例えば図５に示すように、順次実行処理、選択実行処理、反復実行処理等を示すコマンド（制御情報）により構成される。図５に示した一具体例では、動作記述情報として、ＭＡＣ（Ｍｕｌｔｉｐｌｉｅｒ　ａｃｃｕｍｕｌａｔｏｒ）演算（積和演算）を示している。
【００３９】
ＣＤＦＧ生成部１１は、動作記述情報に基いて字句解析処理を行い解析木を生成する。例えば、図５に示した動作記述情報の場合には、ＣＤＦＧ生成部１１は、図６に示すような解析木を生成する。
【００４０】
ＣＤＦＧ生成部１１は、生成された解析木に基いて構文解析処理を行い構文木を生成する。例えば、図６に示した解析木の場合には、ＣＤＦＧ生成部１１は、図７に示すような構文木を生成する。
【００４１】
ＣＤＦＧ生成部１１は、生成された解析木および構文木に基いて、コントロールフローグラフ（ＣＦＧ）、データフローグラフ（ＤＦＧ）から構成されるＣＤＦＧを生成する。例えば、図６，７に示すような解析木および構文木の場合には、ＣＤＦＧ生成部１１は、図８に示すようなＣＦＧと、図９に示すようなＤＦＧとで構成されるＣＤＦＧを生成する。
【００４２】
ＣＦＧは、例えば逐次処理、反復処理、選択処理の３種類のノードを有する
ＤＦＧは、動作記述の演算式や命令の実行順序および依存関係を表す。このためＤＦＧのノードは演算または命令である。ＣＦＧの各ノードはそれぞれ１つ以上のＤＦＧを持つ。
【００４３】
図１０は、図１に示した情報処理装置のＣＤＦＧ生成部の動作の一実施の形態のフローチャートである。ＣＤＦＧ生成部１１の動作を図１０を参照しながら簡単に説明する。
【００４４】
ＣＤＦＧ生成部１１は、入力された、仕様情報および動作情報に基いて、構文解析処理を行い解析木を生成し（ＳＴ１）、解析木に基いて構文解析処理を行い構文木（ＳＴ２）を生成し、構文木および解析木に基いてコントロールグラフ（ＣＤＦ）、データフローグラフ（ＤＦＧ）から構成されるＣＤＦＧを生成する（ＳＴ３）。
【００４５】
実行可能処理抽出部
実行可能処理抽出部１２は、ＣＤＦＧ生成部１１により生成されたＣＤＦＧ、および回路構成装置２４の仕様情報に基いて、ＣＤＦＧの内の回路構成装置２４で実行可能な処理を抽出する。
例えば、実行可能処理抽出部１２は、ＣＤＦＧ生成部１１で生成されたＣＤＦＧから、回路構成装置２４が実行可能な処理に相当する部分グラフを抽出する。以下、実行可能処理抽出部１２の処理を具体的に説明する。
【００４６】
図１１は、図１に示した情報処理装置の実行可能処理抽出部を説明するための図である。図１１（ａ）はＣＤＦＧの一具体例を示す図、図１１（ｂ）はＣＤＦＧから実行可能処理抽出部により選択された部分グラフを示す図、図１１（ｃ）は選択された部分グラフの一具体例を示す図である。
【００４７】
実行可能処理抽出部１２は、例えば図１１（ａ）に示すようにＣＤＦＧから図１１（ｂ）に示すようにハッチングした部分を部分グラフとして選択する。図１１（ｃ）は部分グラフの一具体例である。
【００４８】
実行可能処理抽出部１２は、その部分グラフ上に、回路構成装置２４で実行不可能な演算、命令が含まれていないかどうかを比較する。
実行可能処理抽出部１２は、部分グラフ上の各変数の格納アドレスが入力仕様のアドレッシング装置２４１の算出可能なアドレス範囲内に存在するかを比較する。
実行可能処理抽出部１２は、部分グラフ上の各演算および命令の個数、依存関係が、データパス装置２４２で実行可能なものであるかどうかを比較する。
【００４９】
上記の手順をＣＤＦＧの全範囲に適用することで、実行可能処理抽出部１２は、仕様情報に対応する回路構成装置２４で、実行可能な処理を表す部分グラフを抽出する。
【００５０】
例えば図５に示した動作記述情報の場合には、図１１（ｃ）に示したＤＦＧが部分グラフとして抽出可能な場合、仕様情報に対応した回路構成装置２４のデータパス装置２４２は、乗算、加算を実行可能な演算器を持つ必要がある。
また、各入出力変数ごとに、それぞれアドレス算出用のカウンタが必要な場合、ａ［ｉ］、　ｂ［ｉ］のアドレス算出用のカウンタは、ループ上限であるｓｉｚｅの取るべき値の範囲を表現可能なビット幅を持つ必要がある。
【００５１】
図１２（ａ）は、図１１（ｂ）に示した部分グラフに係る特性情報の一具体例を示す図である。図１２（ｂ）は回路構成装置２の仕様情報の一具体例を示す図である。
【００５２】
例えば、図１１（ｃ）で示した部分グラフは、繰り返し処理内の処理部分に相当し、この部分グラフに係る特性情報は、例えば図１２（ａ）に示すように、ループ範囲：０−１２７、ループ方向：Ｉｎｃ、変数の数：３つ、演算の種類、数：×１，＋１、変数のビット幅：１６ビット等の情報を有する。
【００５３】
回路構成装置２の仕様情報は、例えば図１２（ｂ）に示すように、アドレッシング装置２４１の仕様情報として、カウンタ数：４、レジスタビット幅：３２ビット、カウント方向：Ｉｎｃ、カウンタステップ値：１−８等の情報を有し、データパス装置２４２の仕様情報として、演算器数：４、データパスビット幅：１６ビット、実行可能な演算：＋，−，×等の情報を有する。
【００５４】
実行可能処理抽出部１２は、例えば図１２（ａ），（ｂ）に示したように、部分グラフの特性情報と仕様情報とを比較し、実行可能であるか否かを判別する。
【００５５】
図１３は、図１に示した情報処理装置の実行可能処理抽出部の動作の一具体例を示すフローチャートである。実行可能処理抽出部１２の動作を図１３を参照しながら簡単に説明する。
【００５６】
ステップＳＴ１１において、抽出候補の部分グラフを選択する。
ステップＳＴ１２において、選択された部分グラフが、回路構成装置２４で、実行不可能な演算や命令が含まれているか否かが判別される。具体的には、例えば分岐処理命令等の回路構成装置２で実行不可能な演算や命令等が含まれているか否かが判別される。実行不可能な演算や命令が含まれていないと判別された場合には、ステップＳＴ１３の処理に進む。
一方、ステップＳＴ１２の判別において、実行不可能な演算や命令が含まれていると判別された場合には、ステップＳＴ１６の処理に進む。
【００５７】
ステップＳＴ１３において、回路構成装置２の仕様情報に基いて、部分グラフがアドレッシング装置２４１で実行可能か否かが判別される。具体的には、例えば部分グラフがアドレッシング装置２４１のアドレスの範囲内であるか否かが判別される。アドレッシング装置２４１で実行可能であると判別された場合には、ステップＳＴ１４の処理に進む。
一方、ステップＳＴ１３の判別において、アドレッシング装置２４１で実行可能でないと判別された場合には、ステップＳＴ１６の処理に進む。
【００５８】
ステップＳＴ１４において、仕様情報に基いて部分グラフがデータパス装置２４２で実行可能か否かが判別される。
具体的には、部分グラフがデータパス装置２４２で、部分グラフ上の各演算および命令の個数、依存関係が、入力仕様のデータパス装置２４２で実行可能なものであるかどうかが比較される。データパス装置２４２において実行可能であると判別された場合には、その抽出した部分グラフを回路構成装置２４で実行可能である（ＳＴ１５）として、ステップＳＴ１７の処理に進む。
一方、ステップＳＴ１４の判別において、データパス装置２４２で実行可能でないと判別された場合には、ステップＳＴ１６の処理に進む。
【００５９】
ステップＳＴ１６において、実行可能処理抽出部１２では、抽出された部分グラフが、回路構成装置２４で実行不可能であるとして、ステップＳＴ１７の処理に進む。この回路構成装置２４で実行不可能な部分グラフの処理は、例えば演算装置２のＣＰＵ２３により演算される演算情報とされる。
【００６０】
ステップＳＴ１７において、実行可能処理抽出部１２では、ＣＤＦＧの全範囲のグラフで上述の判別を行ったか否かが判別され、全ての範囲のグラフについて、判定が行われていない場合には、全ての範囲のグラフについて処理を行うまで、ステップＳＴ１２の処理に戻る。
一方、ステップＳＴ１７の処理において、全ての範囲のグラフについて処理が行われたと判別された場合には、実行可能処理抽出部１２は、一連の抽出処理を終了する。
【００６１】
実行処理割当部
実行処理割当部１３は、実行可能処理抽出部１２から出力された実行可能な部分グラフ、および回路構成装置２４の仕様情報に基いて、回路構成装置２４のアドレッシング装置２４１およびデータパス装置２４２の処理実行時の動作や演算方法等を決定する。
【００６２】
実行処理割当部１３は、例えば具体的には、アドレッシング装置２４１の動作として、アドレッシング装置２４１を構成する各カウンタの上限値、ステップ値、ループ回数、およびアドレスを算出するための各カウンタの出力値に対する演算方法等を割当てる。
【００６３】
図１４は、図１に示した情報処理装置の実行処理割当部が動作の一具体例、実行割当を説明するための図である。図１５は、図９に示した部分グラフを割当てる演算器を模式的に示す図である。
【００６４】
実行処理割当部１３は、例えば、図９で示したようなＤＦＧを部分グラフとする場合には、図１４に示したように、回路構成装置２４に実行割当を行う。このれらの処理は情報処理装置１内で行われる。
【００６５】
実行処理割当部１３は、仕様情報およびＤＦＧに基いて、アドレッシング装置２４１のアドレス算出方法を決定する。
具体的には、実行処理割当部１３は、例えばＤＦＧ上の各変数それぞれについて、アドレッシング装置２４１のカウンタ２４１１を割当てる。
このとき、複数の変数に対して同一のカウンタ２４１１を割り当ててもい。
各変数のアクセスパターンからカウンタの上限値、ステップ値といったパラメータを決定する。
【００６６】
実行処理割当部１３は、例えば、図９に示したＤＦＧの場合には、アドレス変数ｉの取る値は０から（ｓｉｚｅ−１）まで１ずつインクリメントするので、例えば変数ａ［ｉ］のカウンタの上限値は（ｓｉｚｅ−１）、ステップ１、ループ回数１となり、メモリ上での配列ａ［ｉ］の先頭アドレスにカウンタ値を加算することによってａ［ｉ］の読み出し先アドレスを算出する。
【００６７】
具体的には、実行処理割当部１３は、図１４に示すように、カウンタ２４１１−０にａ［ｉ］アドレス算出を割当て、カウンタ２４１１−１にｂ［ｉ］アドレス算出を割当て、カウンタ２４１１−２にアドレス算出を割当てる。
【００６８】
実行処理割当部１３は、データパス装置２４２の動作を、例えばデータパス装置２４２を構成する各演算器２４２１の実行演算の種類、および入出力先のメモリバンク、レジスタ、演算器などを求めて決定する。
実行処理割当部１３は、例えば、図９に示したＤＦＧの場合には、図１４に示すように、ＤＦＧ上の演算が乗算と加算であるので、データパス装置２４２を構成する演算器２４２１−０を乗算実行に、演算器２４２１−１を加算実行に設定し、図１５に示すように演算器２４２１−０（乗算器）の出力が演算器２４２１−１（加算器）の入力となるよう設定する。
【００６９】
実行処理割当部１３の処理は、上述した形態に限られるものではない。例えば、演算器２４２１が乗算、加算いずれも実行可能な演算器２４２１があれば、１つの演算器２４２１で異なるレイテンシで両演算を実行してもよい。
また、乗算の出力を加算の入力として両演算を連続実行できる演算器２４２１があれば、１つの演算器２４２１で同一レイテンシで両演算を実行することができる。
【００７０】
また、実行処理割当部１３は、各演算を実行するレイテンシを生成する場合には、例えば高位合成のスケジューリングと呼ばれる手法を用いて生成する。
ここでスケジューリングとは、ＤＦＧ上の各演算が、どのレイテンシで実行されるかを決定する手段である。
【００７１】
また、実行処理割当部１３は、各演算を割当可能な演算器２４２１が複数存在し、各演算器２４２１をどの演算器２４２１に割当てるかによって実行速度や消費電力などのコストが異なる場合、例えば高位合成のリソースアロケーション、またはリソースバインディングと呼ばれる手法でコストの少ない割当処理を行ってもよい。
ここでリソースアロケーションおよびリソースバインディングは、ＤＦＧ上の各演算が、どの演算器で実行されるかを決定する手段である。
【００７２】
構成情報生成部
構成情報生成部１４は、実行処理割当部１３で生成された割当結果、および回路構成装置２４の仕様情報に基いて構成情報を生成する。
【００７３】
例えば、構成情報生成部１４は、実行処理割当部１３で生成された割当結果、および回路構成装置２４の仕様情報に基いて、アドレッシング装置２４１に関する、各カウンタの上限値、ステップ値、ループ回数、およびアドレスを算出するための各カウンタの出力値に対する演算方法といったパラメータを生成する。
また、構成情報生成部１４は、データパス装置２４２に関する、各演算器２４２１の実行演算の種類および入出力先のユニットといったパラメータを生成する。
構成情報生成部１４は、上述した情報を全て表すビット列を、例えば回路構成装置２４の所定の形式の構成情報を生成する。
【００７４】
図１６は、図１に示した情報処理装置の構成情報生成部が図１５に示した割当結果に基いてニーモニック変換処理を行った結果の一具体例を模式的に示す図である。図１７は、構成情報生成部が図１６に示したニーモニックに基いてバイナリ変換処理を行った結果の一具体例を模式的に示す図である。
【００７５】
具体的には、構成情報生成部１４は、仕様情報、実行処理割当部１３により割当てられた演算器の割当情報等に基いてニーモニック変換処理を行い、例えば図１６に示すようにニーモニックを生成する。
構成情報生成部１４は、仕様情報、および、生成したニーモニックに基いてバイナリ変換処理を行い、例えば図１７に示すように、上述の構成情報を示すバイナリを生成する。このバイナリは回路構成装置２４に出力する構成情報である。
【００７６】
動作
図１８は、図１に示した情報処理装置の動作の一具体例の動作を説明するフローチャートである。上述した構成の情報処理装置１の動作を図１８を参照しながら簡単に説明する。
【００７７】
ステップＳＴ１０１において、ＣＤＦＧ生成部１１では、動作記述情報、および回路構成装置２４の仕様情報に基いて、コントロールデータフローグラフ（ＣＤＦＧ）が生成される。
【００７８】
例えば、具体的には、ＣＤＦＧ生成部１１では、動作記述情報に基いて解析木が生成され、解析木に基いて構文木が生成される。
ＣＤＦＧ生成部１１では、生成された解析木および構文木に基いて、ＣＤＦと、ＤＦＧで構成されるＣＤＦＧが生成される。
【００７９】
ステップＳＴ１０２において、実行可能処理抽出部１２では、ＣＤＦＧ生成部１１により生成されたＣＤＦＧ、および回路構成装置の仕様情報に基いて、ＣＤＦＧの内の回路構成装置で実行可能な処理が抽出される。
【００８０】
例えば、具体的には、実行可能処理抽出部１２では、図１２に示したように、ＣＤＦＧから部分グラフを選択し、選択した部分グラフに含まれる演算や命令等が回路構成装置２４において実行可能か否かが、仕様情報に基いて判別される。
【００８１】
実行可能処理抽出部１２では、その部分グラフに含まれる演算や命令が、実行可能であると判別されると、その部分グラフがアドレッシング装置２４１により実行可能であるか否かが判別される。
【００８２】
実行可能処理抽出部１２では、その部分グラフが、アドレッシング装置２４１で実行可能であると判別されると、その部分グラフがデータパス装置２４２で実行可能であるか否かが判別される。
【００８３】
実行可能処理抽出部１２では、その部分グラフが、データパス装置２４２で実行可能であると判別すると、その部分グラフを、回路構成装置２４において、実行可能であると判別し、ＣＤＦＧの残りのグラフについても、同様の抽出処理が行われ、実行可能なグラフが抽出される。
また回路構成装置２４において実行可能でないと判別されたグラフに関しては、例えば演算処理装置２のＣＰＵ２３に、演算処理を行わせる。
【００８４】
ステップＳＴ１０３において、実行処理割当部１３では、実行可能処理抽出部１２から出力された部分グラフ、および仕様情報に基いて、アドレッシング装置２４１およびデータパス装置２４２の処理実行時の動作が決定される。
【００８５】
ステップＳＴ１０４において、構成情報生成部１４では、実行処理割当部１３で生成された割当結果、および仕様情報に基いて構成情報が生成される。
構成情報生成部１４では、例えば、実行処理割当部１３により割当てられた演算器２４２１の割当情報等が、ニーモニックに変換され、生成されたニーモニックに基いてバイナリに変換されて、構成情報が生成される。
【００８６】
ＣＰＵ１０６では、例えば、ＩＦ１０２に、データ伝送線Ｌを介して演算装置２に、構成情報を送信させる。
また、ＣＰＵ１０６では、動作記述情報の内、回路構成装置２４により実行可能でないと判別された部分に基いて、所定のコンパイル処理が行われ、演算装置２のＣＰＵ２３により実行させるための演算情報が生成される。例えば、この演算情報は構成情報と共に演算装置２に出力されてもよい。
【００８７】
演算装置２において、ＣＰＵ２３では、ＩＦ２１で構成情報が受信されると、例えば構成情報をシステムメモリ２２に記憶させる。
ＣＰＵ２３では、演算情報がＩＦ２１で受信されると、例えば演算情報をシステムメモリ２２に記憶させる。
【００８８】
所定の演算処理を行う場合には、ＣＰＵ２３では、所定の制御命令を構成情報ローダ２４３に出力すると、構成情報ローダ２４３では、メモリ２４から構成情報を読出し、アドレッシング装置２４１およびデータパス装置２４２に出力される。
【００８９】
アドレッシング装置２４１では、構成情報に基いてカウンタ２４１１の動作とアドレス算出方法が設定される。データパス装置２４２では構成情報に基いて各演算器２４１１の動作や配列や、演算実行時の係数パラメータ等を再構成して設定する。
【００９０】
データパス装置２４２では、アドレッシング装置２４１が算出したメモリ２２のメモリアドレス上のデータに基いて、構成情報に基いて設定された演算を実行し、アドレッシング装置２４１が算出したメモリ２２のメモリアドレス上に演算結果を出力する。この処理をアドレス装置が算出した全てのアドレスのデータに対して実行する。
【００９１】
そして、例えばＣＰＵ２３では、演算情報と、回路構成装置２４により演算処理された結果に基いて、所定の演算処理が行われる。
【００９２】
上述したように、動作記述情報に基いて、コントロールデータフローグラフ（ＣＤＦＧ）を生成するＣＤＦＧ生成部１１と、ＣＤＦＧ生成部１１により生成されたＣＤＦＧ、および回路構成装置２４の仕様情報に基いて、ＣＤＦＧの内の回路構成装置２４で実行可能な処理を抽出する実行可能処理抽出部１２と、実行可能処理抽出部１２から出力された実行可能な部分グラフ、および回路構成装置２４の仕様情報に基いて、回路構成装置２４のアドレッシング装置２４１およびデータパス装置２４２の処理実行時の動作を決定する実行処理割当部１３と、実行処理割当部１３で生成された割当結果、および回路構成装置２４の仕様情報に基いて構成情報を生成する構成情報生成部１４とを設けたので、再構成可能な回路構成装置の仕様が異なった場合であっても、その回路構成装置の仕様情報に合った構成情報を生成することができる。
【００９３】
また、再構成可能な回路構成装置の実行部分と、他の回路構成装置の実行部分とに分け、その回路構成装置の仕様情報に合った構成情報を生成することができる。
【００９４】
また、メモリ上の構成情報から回路動作を決定する回路構成装置の開発、およびメモリ上の構成情報から回路動作を決定する回路構成装置を含んだシステム上で動作するソフトウェア開発が容易になる。
【００９５】
なお、本発明は本実施の形態に限られるものではなく、任意好適な種々の改変が可能である。
例えば、回路構成装置の構成は、上述した実施の形態に限られるものではない。
【００９６】
【発明の効果】
本発明によれば、再構成可能な回路構成装置の仕様が異なった場合であっても、その回路構成装置の仕様に合った構成情報を生成可能な情報処理装置および情報処理方法を提供することができる。
また、再構成可能な回路構成装置の実行部分と、他の回路構成装置の実行部分とに分けることが可能な情報処理装置および情報処理装置を提供することができる。
【図面の簡単な説明】
【図１】本実施の形態に係る情報処理装置と演算装置の一実施の形態を示す図である。
【図２】図１に示した情報処理装置が生成する構成情報に基いた動作を行う回路構成装置を含む演算装置の機能ブロック図である。
【図３】図２に示した演算装置の回路構成装置の一実施の形態を示すブロック図である。
【図４】図４は、図１に示した本発明に係る情報処理装置のハードウェアの一実施の形態を示す図である。
【図５】図１に示した情報処理装置に入力される動作記述情報の一具体例を示す図である。
【図６】解析木の一具体例を示す図である。
【図７】構文木の一具体例を示す図である。
【図８】ＣＦＧの一具体例を示す図である。
【図９】ＤＦＧの一具体例を示す図である。
【図１０】図１に示した情報処理装置のＣＤＦＧ生成部の動作の一実施の形態のフローチャートである。
【図１１】図１に示した情報処理装置の実行可能処理抽出部を説明するための図である。（ａ）はＣＤＦＧの一具体例を示す図、（ｂ）はＣＤＦＧから実行可能処理抽出部により選択された部分グラフを示す図、（ｃ）は選択された部分グラフの一具体例を示す図である。
【図１２】（ａ）は、図１１（ｂ）に示した部分グラフに係る特性情報の一具体例を示す図である。（ｂ）は回路構成装置の仕様情報の一具体例を示す図である。
【図１３】図１に示した情報処理装置の実行可能処理抽出部の動作の一具体例を示すフローチャートである。
【図１４】図１に示した情報処理装置の実行処理割当部が動作の一具体例、実行割当を説明するための図である。
【図１５】図９に示した部分グラフを割当てる演算器を模式的に示す図である。
【図１６】図１に示した情報処理装置の構成情報生成部が図１５に示した割当結果に基いてニーモニック変換処理を行った結果の一具体例を模式的に示す図である。
【図１７】構成情報生成部が図１６に示したニーモニックに基いてバイナリ変換処理を行った結果の一具体例を模式的に示す図である。
【図１８】図１に示した情報処理装置の動作の一具体例の動作を説明するフローチャートである。
【符号の説明】
１…情報処理装置、２…演算装置、１１…生成部、１２…実行可能処理抽出部、１３…実行処理割当部、１４…構成情報生成部、２１…ＩＦ、２２…システムメモリ、２３…ＣＰＵ、２４…回路構成装置、１０１…ＩＦ、１０２…入出力部、１０３…ＲＡＭ、１０４…ＲＯＭ、１０５…記憶部、１０６…ＣＰＵ、２４１…アドレッシング装置、２４２…データパス装置、２４３…構成情報ローダ、２４４…メモリ、２４１１…カウンタ、２４２１…演算器。
【図１】
2004086656.tif 000003
【図２】
2004086656.tif 000004
【図３】
2004086656.tif 000005
【図４】
2004086656.tif 000006
【図５】
2004086656.tif 000007
【図６】
2004086656.tif 000008
【図７】
2004086656.tif 000009
【図８】
2004086656.tif 000010
【図９】
2004086656.tif 000011
【図１０】
2004086656.tif 000012
【図１１】
2004086656.tif 000013
【図１２】
2004086656.tif 000014
【図１３】
2004086656.tif 000015
【図１４】
2004086656.tif 000016
【図１５】
2004086656.tif 000017
【図１６】
2004086656.tif 000018
【図１７】
2004086656.tif 000019
【図１８】
2004086656.tif 000020