(57)【要約】  状態に応じた演算処理を実行するデータ処理装置に、状態遷移を制御する第１の状態管理部を備えた制御部と、第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、第２の状態管理部を使用した状態遷移の制御、または第２の状態管理部を使用しない、第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部とを有する。
2010055706.tif 000002
【特許請求の範囲】
【請求項１】
状態に応じた演算処理を実行するデータ処理装置であって、
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置。
【請求項２】
前記補助制御部は、
前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択するための情報を、データ処理装置に所望の処理を実行させるためのオブジェクトコードと共に読み込む請求項１記載のデータ処理装置。
【請求項３】
前記補助制御部は、
前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択するための情報を、前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に保持し、該構成情報の切り換わりと共に前記第２の状態管理部を使用するか否かを選択する請求項２記載のデータ処理装置。
【請求項４】
前記制御部は、
前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択するための情報を、動作周波数の選択または変更に用いる請求項１から３のいずれか１項記載のデータ処理装置。
【請求項５】
前記制御部は、
前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択するための情報と共に、動作周波数を選択または変更するための情報を備える請求項１から３のいずれか１項記載のデータ処理装置。
【請求項６】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に所望の処理を実行させるためのオブジェクトコードを生成するオブジェクトコード生成装置であって、
前記オブジェクトコードを生成する合成ツールと、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、該制御構成選択情報を前記合成ツールで生成したオブジェクトコードに付加する性能見積もりツールと、
を有するオブジェクトコード生成装置。
【請求項７】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に所望の処理を実行させるためのオブジェクトコードを生成するオブジェクトコード生成装置であって、
前記オブジェクトコードを生成する合成ツールと、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、該制御構成選択情報を前記合成ツールで生成した前記オブジェクトコードに含まれる前記構成情報毎に付加する性能見積もりツールと、
を有するオブジェクトコード生成装置。
【請求項８】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に所望の処理を実行させるためのオブジェクトコードを生成するオブジェクトコード生成装置であって、
前記オブジェクトコードを生成する合成ツールと、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ状態毎に算出し、前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報及び動作周波数を選択または変更するための動作周波数情報を生成し、該制御構成選択情報及び動作周波数情報を前記合成ツールで生成した前記オブジェクトコードに含まれる前記構成情報毎に付加する性能見積もりツールと、
を有するオブジェクトコード生成装置。
【請求項９】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択できる補助制御部と、
を有するデータ処理装置に実行させるオブジェクトコードを生成するためのデータ処理方法であって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、
前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、
該制御構成選択情報を、生成したオブジェクトコードに付加するデータ処理方法。
【請求項１０】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択できる補助制御部と、
を有するデータ処理装置に実行させるオブジェクトコードを生成するためのデータ処理方法であって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、
前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、
該制御構成選択情報を、生成した前記オブジェクトコードに含まれる前記構成情報毎に付加するデータ処理方法。
【請求項１１】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択できる補助制御部と、
を有するデータ処理装置に実行させるオブジェクトコードを生成するためのデータ処理方法であって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ状態毎に算出し、
前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報及び動作周波数を選択または変更するための動作周波数情報を生成し、
該制御構成選択情報及び動作周波数情報を、生成した前記オブジェクトコードに含まれる前記構成情報毎に付加するデータ処理方法。
【請求項１２】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に、所望の処理を実行させるオブジェクトコードをコンピュータに生成させるためのプログラムであって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、
前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、
該制御構成選択情報を、生成したオブジェクトコードに付加する処理をコンピュータに実行させるためのプログラム。
【請求項１３】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に、所望の処理を実行させるオブジェクトコードをコンピュータに生成させるためのプログラムであって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、
前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、
該制御構成選択情報を、生成した前記オブジェクトコードに含まれる前記構成情報毎に付加する処理をコンピュータに実行させるためのプログラム。
【請求項１４】
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に所望の処理を実行させるオブジェクトコードをコンピュータに生成させるためのプログラムであって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ状態毎に算出し、
前記データ処理装置内に仮想的に回路を構成するのに必要な情報である構成情報毎に、前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報及び動作周波数を選択または変更するための動作周波数情報を生成し、
該制御構成選択情報及び動作周波数情報を、生成した前記オブジェクトコードに含まれる前記構成情報毎に付加する処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は状態に応じた演算処理を実行するデータ処理装置に関する。
【背景技術】
【０００２】
情報処理装置は、その利用範囲が広がり、より高度な演算処理あるいは画像や動画のように大量のデータを高速に処理する能力が要求されている。このような要求を満たすための手法として、ホストプロセッサとは別に特定の演算や処理を専用に実行するＤＳＰ（Digital  Signal  Processor）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等を備え、ＣＰＵ等のホストプロセッサの処理負荷を軽減することで情報処理装置としての処理能力を向上させた構成が知られている。【０００３】
しかしながら、近年の情報処理装置では、これら画像、動画、音声、音楽等のマルチメディアデータに対して様々な規格の圧縮／伸長処理や演算処理等が必要であり、またインターネット等のネットワークを介して各種データを送受信するための通信処理にも様々なプロトコルを用いる必要がある。さらに、ネットワーク上で送受信される情報の安全性が問題となっているため、情報処理装置では、情報セキュリティのための暗号化処理やそれを解読するための復号処理等も必要となる。そのため、これらの処理に合わせて多数のＤＳＰやＡＳＩＣ等を設けていたのでは、情報処理装置の回路規模やコストが膨大なものとなってしまう。【０００４】
そこで、情報処理装置にＦＰＧＡ（Field  Programmable  Gate  Array）やＣＰＬＤ（Complex  Programmable  Logic  Device）あるいはＤＲＰ（Dynamically  Reconfigurable  Processor）等の再構成デバイスから成るデータ処理装置を備え、必要に応じてデータ処理装置のプログラムを書き換えて処理を実行させることにより、情報処理装置のスループットを向上させると共に、コストを低減しつつ様々な処理要求への対応を可能にした構成がある。【０００５】
再構成デバイスは、内部にプログラム（オブジェクトコード）を格納するための内部メモリを備え、ＣＰＵ等の制御により外部メモリに格納されたオブジェクトコードを内部メモリへロードし、ロードしたオブジェクトコードにしたがって内部に回路を構成し、入力されたデータに対して該回路により処理を実行する。【０００６】
なお、ＤＲＰについては、例えば特許文献１〜６や非特許文献１にその詳細が記載されている。ＤＲＰは、演算処理を実行する演算部と、演算部の動作を制御する制御部とを有する構成である。演算部は、小規模の複数の演算器とそれらの接続を切り替える相互接続部とを備え、各演算器及び相互接続部に対する命令コードを切り換えることで各種の処理を実現する。【０００７】
ところで、ＤＲＰで実行する処理には様々な種類があり、例えば処理の途中でメモリから他のデータを読み出し、それらのデータを用いて処理を続行する場合もある。ＤＲＰは、内部メモリを備えているが、その記憶容量は限定されていることが多い。したがって、ＤＲＰによる処理では、処理途中で大きな記憶容量を必要とするテーブルやデータを参照する際に、それらが格納されたメモリへアクセスする必要がある。そのための処理方法については、例えば特許文献７や特許文献８に記載されている。【０００８】
上述した再構成デバイス等から成るデータ処理装置では、処理対象となるデータに応じて生成された１つ以上の構成情報から成るオブジェクトコードに基づいて処理を実行する。この場合、データ処理装置では、構成情報が格納された位置を直接指定しつつ、処理を実行する手法が採られる。【０００９】
ここで、構成情報とは、ある時点における演算器に対する演算命令、相互接続部による各演算器の接続関係を示す情報、イベント信号とそれに対応して次に選択すべき構成情報の関係を示す情報等を備えた、データ処理装置内に仮想的に回路を構成するのに必要な情報である。オブジェクトコードは、所望の処理を実行するために必要な構成情報の集まりを指す。【００１０】
このような方法では、データ処理装置に複数のオブジェクトコードを搭載する場合、各オブジェクトコードが備える構成情報の格納位置が重なると、それらが重ならないようにオブジェクトコードを合成し直す必要がある。【００１１】
また、データ処理装置に複数のオブジェクトコード、あるいは大規模なオブジェクトコードを搭載した結果、データ処理装置で保持可能な構成情報数を超える場合、データ処理装置では、動作の停止、保持しているオブジェクトコードの入れ替え、再始動等の一連の処理を実行する必要がある。この動作のために外部にＭＰＵ等の処理装置が必要となる。その場合、従来のデータ処理装置では、オブジェクトコードの合成時に決定した場所にしか構成情報を搭載できないため、同じ機能のコードから成る構成情報であっても、違う場所に搭載する場合は同じ機能のコードから成る構成情報を複数用意する必要がある。また、構成情報を共有化できないため、データ処置装置では、同じ構成情報を複数保持したり、同じ構成情報を再度書き換える等の無駄な処理が発生することで、処理が遅くなる問題がある。【００１２】
このような問題を解決するため、本出願人は、構成情報の格納先の制限を無くすと共に構成情報の共有化を可能にしたデータ処理装置を既に提案している（特願２００６−１０３９８７号：以下、先願発明と称す）。【００１３】
この先願発明では、上記制御部に加えて、該制御部が制御する状態遷移よりも規模が小さい所定のグループ内の状態遷移を制御する補助制御部を設け、制御部では該グループ間の状態遷移を制御し、補助制御部では各グループ内の状態遷移を制御する構成を示している。そして、このような制御構造が階層化された構成では、補助制御部が制御部よりも高速に状態の遷移を制御できるため、結果として従来のデータ処理装置よりも高速な処理が可能であるとしている。【００１４】
しかしながら、実際に、アプリケーションからオブジェクトコードを作成し、該オブジェクトコードによるデータ処理装置の動作を検証すると、制御部によって状態の遷移を制御することが多いアプリケーションも存在する。【００１５】
その場合、状態遷移の制御元が補助制御部から制御部へ切り替わる機会が増大し、その切り替えに要する時間も増大するため、補助制御部を持たない構成よりもデータ処理装置全体の処理時間が長くなってしまうことがある。すなわち、制御構造が階層化されたデータ処理装置では、処理対象のアプリケーションによっては、制御構造が階層化されていないデータ処理装置よりも処理時間が長くなることがある。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０００−１３８５７９号公報
【特許文献２】特開２０００−２２４０２５号公報
【特許文献３】特開２０００−２３２３５４号公報
【特許文献４】特開２０００−２３２１６２号公報
【特許文献５】特開２００３−０７６６６８号公報
【特許文献６】特開２００３−０９９４０９号公報
【特許文献７】特開２００５−２２２１４１号公報
【特許文献８】特開２００５−２２２１４２号公報
【非特許文献】
【００１７】
【非特許文献１】Hideharu  Amano,  Akiya  Jouraku,  Kenichiro  Anjo,  "A  Dynamically  Adaptive  Hardware  on  Dynamically  Reconfigurable  Processor",  IEICE  Transactions,  Vol.  E86-B,  No.12,  pp.  3385-3391,  2003.
【発明の概要】
【００１８】
そこで本発明は、処理に要する時間を低減できるデータ処理装置を提供することを目的とする。
【００１９】
上記目的を達成するため本発明のデータ処理装置は、状態に応じた演算処理を実行するデータ処理装置であって、
状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有する。
【００２０】
一方、本発明のデータ処理方法は、状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択できる補助制御部と、
を有するデータ処理装置に実行させるオブジェクトコードを生成するためのデータ処理方法であって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、
前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、
該制御構成選択情報を、生成したオブジェクトコードに付加する方法である。
【００２１】
また、本発明のプログラムは、状態遷移を制御する第１の状態管理部を備えた制御部と、
前記第１の状態管理部が制御する状態遷移よりも規模が小さい状態遷移を制御する第２の状態管理部を備え、前記第２の状態管理部を使用した状態遷移の制御、または前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用した状態遷移の制御を選択する補助制御部と、
を有するデータ処理装置に、所望の処理を実行させるオブジェクトコードをコンピュータに生成させるためのプログラムであって、
前記第２の状態管理部を使用して状態遷移を制御した場合と、前記第２の状態管理部を使用しない、前記第１の状態管理部のみを使用して状態遷移を制御した場合の前記データ処理装置の処理性能をそれぞれ算出し、
前記処理性能がより良好となる前記第２の状態管理部を使用するか否かを指定する制御構成選択情報を生成し、
該制御構成選択情報を、生成したオブジェクトコードに付加する処理をコンピュータに実行させるためのものである。
【図面の簡単な説明】
【００２２】
【図１】図１は、第１の実施の形態のデータ処理装置の構成を示すブロック図である。
【図２】図２は、図１に示したデータ処理装置で用いるオブジェクトコードを生成するためのオブジェクトコード生成装置の一構成例を示すブロック図である。
【図３】図３は、図２に示したオブジェクトコード生成装置の他の構成例を示すブロック図である。
【図４】図４は、第２の実施の形態のデータ処理装置の構成を示すブロック図である。
【図５】図５は、図４に示したデータ処理装置で用いるオブジェクトコードを生成するためのオブジェクトコード生成装置の一構成例を示すブロック図である。
【図６】図６は、第３の実施の形態のデータ処理装置の構成を示すブロック図である。
【図７】図７は、図６に示したデータ処理装置で用いるオブジェクトコードを生成するためのオブジェクトコード生成装置の一構成例を示すブロック図である。
【図８】図８は、第１実施例のデータ処理装置の構成を示すブロック図である。
【図９】図９は、図４に示したデータ処理装置で用いる状態遷移表の一例を示す模式図である。
【図１０Ａ】図１０Ａは、図８に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１０Ｂ】図１０Ｂは、図８に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１０Ｃ】図１０Ｃは、図８に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１１】図１１は、第１実施例のデータ処理装置の効果を例示するグラフである。
【図１２】図１２は、第２実施例のデータ処理装置の構成を示すブロック図である。
【図１３Ａ】図１３Ａは、図１２に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１３Ｂ】図１３Ｂは、図１２に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１３Ｃ】図１３Ｃは、図１２に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１４】図１４は、第３実施例のデータ処理装置の構成を示すブロック図である。
【図１５Ａ】図１５Ａは、図１４に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１５Ｂ】図１５Ｂは、図１４に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【図１５Ｃ】図１５Ｃは、図１４に示したデータ処理装置の処理性能の算出に用いる処理経路の一例を示す模式図である。
【発明を実施するための最良の形態】
【００２３】
次に本発明について図面を参照して説明する。【００２４】
(第１の実施の形態)
図１は第１の実施の形態のデータ処理装置の構成を示すブロック図である。【００２５】
図１に示すように、本実施形態のデータ処理装置は、制御部１及び演算部２を有する構成である。【００２６】
制御部１は、状態管理部１１、構成番号変換部１２、構成情報記憶部１３及び構成書換部１５を備えている。演算部２は、補助制御部２３、複数の演算器２１及び該複数の演算器２１を接続するための相互接続部２２を備えている。【００２７】
状態管理部１１は、構成情報に含まれる現在の動作状態及び次に遷移する状態の候補群（遷移先候補群）、並びに演算部２から送出されるイベント信号に基づき、予め備える状態遷移表を用いて次の動作状態で使用する構成情報の論理番号を決定し、該論理番号を構成番号変換部１２へ通知する。【００２８】
論理番号はオブジェクトコードに含まれる各構成情報の相互関係を示す情報である。構成情報記憶部１３に保存されている構成情報の実際の位置は実番号によって特定される。【００２９】
構成番号変換部１２は、予め備える変換表を用いて状態管理部１１から通知された構成情報の論理番号を実番号に変換し、該実番号を状態管理部１１及び演算部２の補助制御部２３へそれぞれ通知する。【００３０】
構成書換部１５は、データ処理装置の初動時に、構成情報記憶部１３に構成情報を書き込み、状態管理部１１に状態遷移表を書き込み、構成番号変換部１２に変換表を書き込む。なお、構成書換部１５は、データ処理装置の初動時、後述する補助制御部２３が備える状態管理部２３１にも状態遷移表を書き込む。【００３１】
構成情報記憶部１３は、構成番号変換部１２から構成情報の書き換え要求が発行されると、保存した構成情報のうち、現時点で不要な構成情報を、書き換え要求時に指定された構成情報へ書き換える。このとき、不要な構成情報の選択には、例えばLeast  Recently  Used（ＬＲＵ）法等の周知の方法を用いればよい。構成書換部１５は、構成情報記憶部１３に保存された構成情報を書き換えると、構成番号変換部１２が備える、論理番号から実番号への変換処理に用いる変換情報から成る上記変換表を更新する。【００３２】
構成書換部１５は、構成番号変換部１２からの書き換え要求に対して、基本的に要求された構成情報を１つだけ書き換えるが、該構成情報と共にそれ以降で使用する構成情報を併せて書き換えてもよい。【００３３】
演算器２１は、順次遷移する複数の動作状態毎に構成情報記憶部１３から読み出される、指定された構成情報にしたがって演算処理を実行する。【００３４】
相互接続部２２は、構成情報記憶部１３から読み出された構成情報に基づいて複数の演算器２１の接続関係を切り換える。【００３５】
補助制御部２３は、制御部１の状態管理部１１が管理する状態遷移よりも規模が小さい所定のグループ内の状態遷移を制御する状態管理部２３１を備えている。補助制御部２３は、状態管理部２３１で制御可能な範囲を越える状態遷移を示すイベント信号が演算器２１から通知されると、該イベント信号を制御部１の状態管理部１１に通知する。【００３６】
制御部１および演算部２には、不図示のクロック生成器で生成された所定の周波数のクロックが供給され、制御部１および演算部２は、該クロックを用いて動作する。【００３７】
なお、図１に示すデータ処理装置の各構成要素は、それぞれ図１に示した機能単位で独立して備える必要はなく、任意の構成要素が他の構成要素に含まれていてもよく、任意の構成要素が複数の部品で構成されていてもよい。例えば、構成情報記憶部１３は、演算器２１や相互接続部２２がそれぞれ備える不図示のメモリによって構成されてもよい。また、図１に示すデータ処理装置の各構成要素は、その全てを１つの装置内に備える必要はない。例えば、構成書換部１５は、外部に備える他の装置やＭＰＵ等で実現してもよい。【００３８】
構成情報は、上述したように、ある時点における演算器に対する演算命令、相互接続部による各演算器の接続関係を示す情報、イベント信号とそれに対応して次に選択すべき構成情報の関係を示す情報等を備えた、データ処理装置内に仮想的に回路を構成するのに必要な情報である。オブジェクトコードは、所望の処理を実行するために必要な構成情報の集まりを指す。【００３９】
演算器２１は、いわゆる算術演算器（ＡＬＵ）を備えた構成、あるいは複数種類の演算器とレジスタ等の記憶素子とを組み合わせた構成が考えられる。【００４０】
なお、状態管理部１１は、現在の状態とイベント信号とに基づいて次に遷移すべき状態を決定できればどのような構成でもよい。例えば、状態管理部１１には、各状態間の遷移関係を示す対応表を備える構成が考えられる。【００４１】
また、構成番号変換部１２は、状態管理部１１によって指定された構成情報の論理番号を実番号に変換できればどのような構成でもよい。構成番号変換部１２には、例えば論理番号と実番号の対応関係を示す対応表を備えた構成、あるいは論理番号と実番号の相対値を基準に論理番号から実番号へ変換するための機能を備えた構成等が考えられる。ここでは、構成番号変換部１２が実行する論理番号から実番号へ変換するための処理で必要な上記対応表や相対値等を「変換情報」と総称する。【００４２】
本実施形態の補助制御部２３は、状態管理部２３１を使用した状態遷移の制御、または状態管理部２３１を使用しない、制御部１の状態管理部１１のみを使用した状態遷移の制御のいずれか一方を選択する。このような補助制御部２３による選択処理は、例えばオブジェクトコードの合成時に、これらの制御のいずれか一方を指定する制御構成選択情報をオブジェクトコードに付加しておき、データ処理装置による動作時、補助制御部２３が該制御構成選択情報にしたがって状態管理部２３１を使用するか否かを選択すればよい。【００４３】
図２は、図１に示したデータ処理装置で用いるオブジェクトコードを生成するためのオブジェクトコード生成装置の一構成例を示すブロック図である。【００４４】
図２に示すように、オブジェクトコード生成装置は、オブジェクトコードを生成する合成ツール５０と、合成ツール５０で生成されたオブジェクトコードに上記制御構成選択情報を付加すると共に、該オブジェクトコードによるデータ処理装置の処理性能を見積もる性能見積もりツール６０とを有する構成である。【００４５】
オブジェクトコード生成装置は、論理回路等からなるＬＳＩやＤＳＰ、あるいは所定のプログラムにしたがって合成ツール５０及び性能見積もりツール６０として動作する情報処理装置（コンピュータ）によって実現できる。【００４６】
情報処理装置は、例えば図３に示すように、プログラムにしたがって所定の処理を実行する処理装置７０と、処理装置７０に対してコマンドや情報等を入力するための入力装置８０と、処理装置７０の処理結果をモニタするための出力装置９０とを備えた構成である。【００４７】
処理装置７０は、ＣＰＵ７１と、ＣＰＵ７１の処理に必要な情報を一時的に記憶する主記憶装置７２と、ＣＰＵ７１に合成ツール５０及び性能見積もりツール６０としての処理を実行させるためのプログラムが記録された記録媒体７３と、オブジェクトコードの作成対象であるアプリケーションの動作記述や後述する制約情報、あるいは合成後のオブジェクトコードが格納されるデータ蓄積装置７４と、主記憶装置７２、記録媒体７３及びデータ蓄積装置７４とのデータ転送を制御するメモリ制御インタフェース部７５と、入力装置８０及び出力装置９０とのインタフェース装置であるＩ／Ｏインタフェース部７６とを有し、それらがバス７８を介して接続された構成である。なお、データ蓄積装置７４は、処理装置７０内にある必要はなく、処理装置７０から独立して備えていてもよい。【００４８】
処理装置７０は、記録媒体７３に記録されたプログラムにしたがって後述する合成ツール５０の機能及び性能見積もりツール６０の機能を実現する。記録媒体７３は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。【００４９】
合成ツール５０は、アプリケーションの動作記述及び制約情報が入力されると、該動作記述及び制約情報に基づいて少なくとも１つの構成情報から成るオブジェクトコードを生成する。制約情報は、使用するリソースの制限や優先する動作性能等、オブジェクトコードによるデータ処理装置の動作時の制約条件を指定する情報である。【００５０】
性能見積もりツール６０は、合成ツール５０で作成されたオブジェクトコード、アプリケーション動作付加情報及びハードウェア情報を用いて、周知の動作シミュレーション法あるいは分岐確率計算法によりデータ処理装置の動作時の性能を見積もる。そして、該見積もり結果に基づき補助制御部２３の状態管理部２３１を使用するか否かを決定し、該決定結果を示す制御構成選択情報をオブジェクトコードに付加する。【００５１】
なお、アプリケーション動作付加情報とは、性能見積もりツール６０による見積もり精度を向上させるための情報である。動作シミュレーション法によってデータ処理装置の処理性能を見積もる場合、アプリケーション動作付加情報には、例えばアプリケーションを実際に動作させる際の入力データを用いればよい。また、分岐確率計算法によってデータ処理装置の処理性能を見積もる場合、アプリケーション動作付加情報には、例えば状態管理部１１の制御を必要とする状態遷移の発生確率を示す値を用いればよい。【００５２】
これら合成ツール５０及び性能見積もりツール６０を実現するためのプログラムは、それぞれ複数のプログラムで構成されていてもよく、ひとつのプログラムで合成ツール５０及び性能見積もりツール６０を実現する構成であってもよい。【００５３】
本実施形態のデータ処理装置によれば、オブジェクトコードに制御構成選択情報を付加しておき、動作時に該制御構成選択情報にしたがって補助制御部２３の状態管理部２３１を使用するか否かを選択することで、より良好な処理性能が得られる制御構造でオブジェクトコードにしたがった処理を実行できる。したがって、データ処理装置の処理に要する時間を低減できる。【００５４】
(第２の実施の形態)
図４は第２の実施の形態のデータ処理装置の構成を示すブロック図である。【００５５】
第２の実施の形態のデータ処理装置では、構成情報記憶部１３で保存される構成情報毎に、補助制御部２３の状態管理部２３１を使用するか否かを指定する制御構成選択情報が付加される。また、第２の実施の形態のデータ処理装置は、２つのクロック生成器５１，５２を備え、オブジェクトコードに付加される制御構成選択情報に基づいて制御部１および演算部２に供給するクロックを選択する。【００５６】
図４に示すように、第２の実施の形態のデータ処理装置は、第１の実施の形態と同様に、制御部１及び演算部２を有する構成である。【００５７】
制御部１は、状態管理部１１、構成番号変換部１２、構成情報記憶部１３及び構成書換部１５を備えている。演算部２は、補助制御部２３、複数の演算器２１及び該複数の演算器２１を接続するための相互接続部２２を備えている。【００５８】
補助制御部２３は、制御部１の状態管理部１１が管理する状態遷移よりも規模が小さい所定のグループ内の状態遷移を制御する状態管理部２３１を備えている。補助制御部２３は、状態管理部２３１で制御可能な範囲を越える状態遷移を示すイベント信号が演算器２１から通知されると、該イベント信号を制御部１の状態管理部１１に通知する。【００５９】
本実施形態の補助制御部２３は、第１の実施の形態と同様に、状態管理部２３１を使用した状態遷移の制御、または状態管理部２３１を使用しない、制御部１の状態管理部１１のみを使用した状態遷移の制御のいずれか一方を選択する。但し、本実施形態では、オブジェクトコードの合成時に、これらの制御のいずれか一方を指定する制御構成選択情報を構成情報毎に付加しておき、データ処理装置による動作時、補助制御部２３は、構成情報毎に制御構成選択情報にしたがって状態管理部２３１を使用するか否かを選択する。【００６０】
クロック生成器５１、５２は、制御部１及び演算部２にそれぞれ所要の周波数のクロックを供給する。クロック生成器５１で生成されたクロックは、補助制御部２３の状態管理部２３１を使用しない、制御部１の状態管理部１１のみを使用した状態遷移の制御時に使用される。一方、クロック生成器５２で生成されたクロックは、補助制御部２３の状態管理部２３１を使用した状態遷移の制御時に使用される。【００６１】
制御部１は、構成情報毎に付加された制御構成選択情報に基づいてクロック生成器５１、５２で生成された２つのクロックのうちのいずれか一方を選択する。選択されたクロックは、次に遷移する構成情報に付加された制御構成選択情報に基づいてクロックが選択されるまで、制御部１及び演算部２に供給される。【００６２】
なお、本実施形態では、制御構成選択情報に基づいて２つのクロックのうちのいずれか一方を選択する例を示しているが、構成情報毎に、制御構成選択情報と共に２つのクロックのうちのいずれか一方を指定する動作周波数情報を付加しておき、制御部１は、該動作周波数情報に基づいて２つのクロックのうちのいずれか一方を選択してもよい。【００６３】
一般に、補助制御部２３の状態管理部２３１は、制御部１の状態管理部１１よりも高い周波数のクロックで動作（状態遷移の制御）が可能である。第１の実施の形態では、補助制御部２３の状態管理部２３１による状態遷移に対応した固定周波数のクロックがデータ処理装置に供給され、制御部１の状態管理部１１は、該クロックの２サイクルまたは３サイクルを要して状態の遷移を制御する。そのため、第１の実施の形態のデータ処理装置では、制御部１の状態管理部１１の制御による状態遷移の遅延が比較的大きくなってしまう。【００６４】
そこで、第２の実施の形態では、クロック生成器５１でクロック生成器５２よりも周波数が低いクロックを生成し、クロック生成器５１で生成したクロックを制御部１の状態管理部１１のみを使用した状態遷移の制御時に使用する。【００６５】
このとき、制御部１の状態管理部１１がクロックの１サイクルで状態遷移を制御できるように、クロック生成器５１で生成するクロックの周波数を設定すれば、制御部１の状態管理部１１の制御による状態遷移の遅延を低減できる。【００６６】
データ処理装置のその他の構成及び動作は第１の実施の形態で示したデータ処理装置と同様であるため、その説明は省略する。【００６７】
図５は、図４に示したデータ処理装置で用いるオブジェクトコードを生成するためのオブジェクトコード生成装置の一構成例を示すブロック図である。【００６８】
図５に示すように、第２の実施の形態のオブジェクトコード生成装置は、オブジェクトコードを生成する合成ツール５０と、合成ツール５０で生成されたオブジェクトコードの各構成情報に上記制御構成選択情報を付加すると共に、該オブジェクトコードによるデータ処理装置の処理性能を見積もる性能見積もりツール６０とを有する構成である。【００６９】
合成ツール５０は、アプリケーションの動作記述及び制約情報が入力されると、該動作記述及び制約情報に基づいて少なくとも１つの構成情報から成るオブジェクトコードを生成する。【００７０】
本実施形態の性能見積もりツール６０は、合成ツール５０で作成されたオブジェクトコード、アプリケーション動作付加情報及びハードウェア情報を用いて、周知の動作シミュレーション法あるいは分岐確率計算法によりデータ処理装置の動作時の性能を見積もる。そして、該見積もり結果に基づき補助制御部２３の状態管理部２３１を使用するか否かを決定し、該決定結果を示す制御構成選択情報（および制御構造に対応した動作周波数情報）を構成情報毎に付加する。【００７１】
オブジェクトコード生成装置のその他の構成及び動作は第１の実施の形態で示したオブジェクトコード生成装置及び情報処理装置と同様であるため、その説明は省略する。【００７２】
本実施形態のデータ処理装置によれば、構成情報毎に制御構成選択情報を付加しておき、オブジェクトコードによるデータ処理装置の動作時に該制御構成選択情報にしたがって補助制御部２３の状態管理部２３１を使用するか否かを選択すると共に、制御構造に応じた周波数のクロックを選択することで、第１の実施の形態のデータ処理装置よりも最適な動作周波数で処理を実行できる。したがって、データ処理装置の処理に要する時間を低減できる。【００７３】
(第３の実施の形態)
図６は第３の実施の形態のデータ処理装置の構成を示すブロック図である。【００７４】
第３の実施の形態のデータ処理装置では、第２の実施の形態のデータ処理装置と同様に、構成情報記憶部１３で保存される構成情報毎に、補助制御部２３の状態管理部２３１を使用するか否かを指定する制御構成選択情報が付加される。また、第３の実施の形態のデータ処理装置は、外部からの指示にしたがって生成するクロックの周波数が変更可能な可変クロック生成器７を備え、構成情報毎に付加される、データ処理装置の動作周波数を指定する動作周波数情報にしたがって制御部１および演算部２に供給するクロックの周波数を変更する。【００７５】
図６に示すように、第３の実施の形態のデータ処理装置は、第１および第２の実施の形態と同様に、制御部１及び演算部２を有する構成である。【００７６】
制御部１は、状態管理部１１、構成番号変換部１２、構成情報記憶部１３及び構成書換部１５を備えている。演算部２は、補助制御部２３、複数の演算器２１及び該複数の演算器２１を接続するための相互接続部２２を備えている。【００７７】
補助制御部２３は、制御部１の状態管理部１１が管理する状態遷移よりも規模が小さい所定のグループ内の状態遷移を制御する状態管理部２３１を備えている。補助制御部２３は、状態管理部２３１で制御可能な範囲を越える状態遷移を示すイベント信号が演算器２１から通知されると、該イベント信号を制御部１の状態管理部１１に通知する。【００７８】
本実施形態の補助制御部２３は、第１および第２の実施の形態と同様に、状態管理部２３１を使用した状態遷移の制御、または状態管理部２３１を使用しない、制御部１の状態管理部１１のみを使用した状態遷移の制御のいずれか一方を選択する。第３の実施の形態では、第２の実施の形態と同様に、オブジェクトコードの合成時に、これらの制御のいずれか一方を指定する制御構成選択情報を構成情報毎に付加しておき、データ処理装置による動作時、補助制御部２３は、構成情報毎に制御構成選択情報にしたがって状態管理部２３１を使用するか否かを選択する。【００７９】
可変クロック生成器７は、制御部１及び演算部２にそれぞれ供給する、所要の周波数のクロックを生成する。第３の実施の形態では、構成情報毎に付加された動作周波数情報にしたがって、可変クロック生成器７で生成するクロックの周波数を変更する。一般に、構成情報にしたがって演算部２内に構築される仮想的な回路の経路長（演算パス）は構成情報毎に異なるため、その遅延量は均一になるとは限らない。そのため、制御構成選択情報が同一の構成情報であっても動作周波数が異なることがある。【００８０】
本実施形態のデータ処理装置では、状態管理部２３１を使用した状態遷移の制御、または状態管理部２３１を使用しない、制御部１の状態管理部１１のみを使用した状態遷移の制御に応じた最適な動作周波数を選択できると共に、構成情報にしたがって演算部２内に構築される仮想的な回路の経路長やその遅延量等に応じて動作周波数を最適に設定できるため、データ処理装置の処理に要する時間を低減できる。【００８１】
データ処理装置のその他の構成及び動作は第１の実施の形態で示したデータ処理装置と同様であるため、その説明は省略する。【００８２】
図７は、図６に示したデータ処理装置で用いるオブジェクトコードを生成するためのオブジェクトコード生成装置の一構成例を示すブロック図である。【００８３】
図７に示すように、第３の実施の形態のオブジェクトコード生成装置は、オブジェクトコードを生成する合成ツール５０と、合成ツール５０で生成されたオブジェクトコードの各構成情報に上記制御構成選択情報を付加すると共に、該オブジェクトコードによるデータ処理装置の処理性能を見積もる性能見積もりツール６０とを有する構成である。【００８４】
合成ツール５０は、アプリケーションの動作記述及び制約情報が入力されると、該動作記述及び制約情報に基づいて少なくとも１つの構成情報から成るオブジェクトコードを生成する。【００８５】
本実施形態の性能見積もりツール６０は、合成ツール５０で作成されたオブジェクトコード、アプリケーション動作付加情報及びハードウェア情報を用いて、周知の動作シミュレーション法あるいは分岐確率計算法によりデータ処理装置の動作時の性能を見積もる。そして、該見積もり結果に基づき補助制御部２３の状態管理部２３１を使用するか否かを決定し、該決定結果を示す制御構成選択情報を構成情報毎に付加する。【００８６】
また、本実施形態の制御構成選択情報には、補助制御部２３の状態管理部２３１を使用するか否かに応じてデータ処理装置の動作周波数を変えると共に、構成情報にしたがって演算部２内に構築される仮想的な回路の経路長やその遅延量等に応じた最適な動作周波数を決定し、データ処理装置で使用するクロックの周波数を示す動作周波数情報を付加する。【００８７】
オブジェクトコード生成装置のその他の構成及び動作は第１の実施の形態および第２の実施の形態で示したオブジェクトコード生成装置及び情報処理装置と同様であるため、その説明は省略する。【００８８】
本実施形態のデータ処理装置によれば、構成情報毎に制御構成選択情報を付加しておき、オブジェクトコードによるデータ処理装置の動作時に該制御構成選択情報にしたがって補助制御部２３の状態管理部２３１を使用するか否かを選択すると共に、動作周波数情報にしたがって使用するクロックの周波数を最適に変更することで、第２の実施の形態のデータ処理装置よりも、より最適な動作周波数で処理を実行できる。したがって、データ処理装置の処理に要する時間を低減できる。
【実施例】
【００８９】
次に本発明のデータ処理装置の実施例について図面を用いて説明する。【００９０】
（第１実施例）
第１実施例は、上記背景技術で示した先願発明（特願２００６−１０３９８７号）のデータ処理装置に上述した第１の実施の形態を適用する例である。【００９１】
図８は本発明のデータ処理装置の実施例の構成を示すブロック図である。【００９２】
本実施例のデータ処理装置は、図１に示したデータ処理装置を上述したＤＲＰ（Dynamically  Reconfigurable  Processor）で実現する例である。【００９３】
図８に示すように、本実施例のデータ処理装置（ＤＲＰ）は、図１に示した制御部１となる状態遷移管理部（ＳＴＣ）３と、図１に示した演算部２となる補助制御部（ＭＳＴＣ）４３及び複数のプロセッサエレメント（ＰＥ）４１を備えた演算部４と、外部メモリ６とを有する構成である。状態遷移管理部（ＳＴＣ）３、演算部４及び外部メモリ６には不図示のクロック生成器で生成された所定の周波数のクロックが供給される。【００９４】
状態遷移管理部（ＳＴＣ）３は、状態管理部３１、構成番号変換部３２、構成書換部３３及び構成指定レジスタ３４を備えている。【００９５】
状態管理部３１は図１に示した状態管理部１１に相当し、構成番号変換部３２は図１に示した構成番号変換部１２に相当し、構成書換部３３は図１に示した構成書換部１５に相当する。構成指定レジスタ３４は、補助制御部（ＭＳＴＣ）４３が備える、図１に示した状態管理部２３１に相当する状態管理部４３１を使用するか否かを指定する情報である制御構成選択情報を保持する。【００９６】
プロセッサエレメント（ＰＥ）４１は、レジスタファイル（ＲＦＵ）、ＡＬＵ、データ処理演算器（ＤＭＵ）、スイッチ（ＳＷ）及び構成情報メモリを備え、スイッチ（ＳＷ）及び該スイッチに接続された配線を介して相互に接続される。【００９７】
図８に示すデータ処理装置では、演算部４が備える複数のプロセッサエレメント４１が図１に示した演算器２１となる。なお、演算器は、プロセッサエレメント４１に限らず、例えばロジックアレイで実現してもよい。【００９８】
補助制御部（ＭＳＴＣ）４３は、図１に示した状態管理部２３１に相当する状態管理部４３１を備え、状態管理部４３１は、複数の内部状態の遷移を含む論理番号（上記グループ）内の状態遷移を管理する。【００９９】
また、補助制御部（ＭＳＴＣ）４３は、現在の構成情報の実番号を保持する実番号レジスタ４３２と、内部状態番号を保持する内部状態番号レジスタ４３３と、状態管理部４３１を使用するか否かを指定する情報である制御構成選択情報を保持する構成指定レジスタ４３４と、状態管理部４３１で制御できない大規模な状態遷移を指定するイベント信号を保持するイベント信号レジスタ４３５とを備えている。イベント信号レジスタ４３５には、状態管理部４３１で制御できない大規模な状態遷移を指定するイベント信号が、状態管理部３１に送出される前に一時的に保持される。【０１００】
補助制御部４３は、構成指定レジスタ４３４に格納された値にしたがって、状態管理部４３１を使用するか否かの選択時に用いる各種セレクタの動作を決定する。【０１０１】
同様に、状態遷移管理部（ＳＴＣ）３は、構成指定レジスタ３４に格納された値にしたがって、状態管理部４３１を使用するか否かの選択に用いる各種セレクタの動作を決定する。【０１０２】
状態遷移管理部（ＳＴＣ）３は、構成指定レジスタ３４に格納された値にしたがって、構成番号変換部３２にプロセッサエレメント４１群の停止信号を送出させるか否か、状態管理部３１から送出された内部状態番号を内部状態番号レジスタ４３３に常に書き込む、あるいは内部状態番号レジスタ４３３に対する内部状態番号の書き込みを構成番号変換部３２から実番号レジスタ４３２へ実番号を書き込むときに同期して実行させるかを選択する。【０１０３】
本実施例では、各プロセッサエレメント４１及び状態遷移管理部（ＳＴＣ）３が備えるメモリ（以下、構成情報メモリと称す）が構成情報記憶部１３となる。すなわち、本実施例の構成情報記憶部は、各プロセッサエレメント４１及び状態遷移管理部（ＳＴＣ）３が備えるメモリに分割して配置された構成である。【０１０４】
次に本実施例のデータ処理装置の動作について説明する。【０１０５】
以下の説明では、データ処理装置（ＤＲＰ）が備える命令メモリで論理番号「０」と「１」の構成情報が保持されているものとする。このとき、状態管理部３１が備える状態遷移表の一例を図９に示す。ここで、論理番号「０」の構成情報が実番号「０」の構成情報メモリに書き込まれ、論理番号「１」の構成情報が実番号「１」の構成情報メモリに書き込まれているものとする。【０１０６】
まず、補助制御部４３の状態管理部４３１を使用する場合のデータ処理装置の動作について説明する。ここでは、図９に示す状態遷移表にしたがって状態を遷移させるものとし、論理番号「０」の構成情報に含まれる内部状態番号「１」（状態０−１）から処理を開始する例で考える。【０１０７】
データ処理装置は、１サイクル目の処理において、まず補助制御部４３により、実番号レジスタ４３２から論理番号「０」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「１」を読み出す。【０１０８】
補助制御部４３は、実番号レジスタ４３２から読み出した実番号および内部状態番号「１」を用いて構成情報メモリから構成情報を読み出し、演算部４の各プロセッサエレメント４１に通知する。各プロセッサエレメント４１は補助制御部４３から通知された構成情報にしたがって、その動作及びスイッチの接続関係を決定する。その結果、各プロセッサエレメント４１で所要の演算が実行される。【０１０９】
状態管理部４３１は、プロセッサエレメント４１から演算結果がイベント信号として通知されると、状態遷移表に基づいて、該イベント信号に対応する次の状態遷移の制御に移行する。ここでは、次の状態への遷移が状態管理部４３１で制御可能であるため、状態管理部４３１は次の内部状態番号「２」を内部状態番号レジスタ４３３へ書き込む。この段階で１サイクル目の処理が終了する。【０１１０】
図１０Ａは、以上に示したデータ処理装置による１サイクルの処理経路を示す図である。図１０Ａでは、状態管理部４３１で状態遷移を制御する場合の処理経路を太い矢印で示している。すなわち、図１０Ａの太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部４３１が次の内部状態を決定し、該内部状態を示す内部状態番号が内部状態番号レジスタ４３３に書き込まれるまでの処理経路を示している。【０１１１】
データ処理装置は、２サイクル目の処理において、補助制御部４３により、実番号レジスタ４３２から論理番号「０」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「２」を読み出す。【０１１２】
補助制御部４３は、実番号レジスタ４３２から読み出した実番号および内部状態番号「２」を用いて構成情報メモリから構成情報を読み出し、演算部４の各プロセッサエレメント４１に通知する。各プロセッサエレメント４１は補助制御部４３から通知された構成情報にしたがって、その動作及びスイッチの接続関係を決定する。その結果、各プロセッサエレメント４１で所要の演算が実行される。【０１１３】
状態管理部４３１は、プロセッサエレメント４１から演算結果がイベント信号として通知されると、状態遷移表に基づいて、該イベント信号に対応する次の状態遷移の制御に移行する。ここでは、次の状態への遷移が、論理番号が変わるために状態管理部４３１で制御できない。そのため、状態管理部４３１は、プロセッサエレメント４１群に動作を停止させるためのＷＥキャンセル信号を発行する。プロセッサエレメント４１は、ＷＥキャンセル信号を受信すると、レジスタの内容更新を受け付けなくなる。また、プロセッサエレメント４１は、ＷＥキャンセル信号を受信すると、外部ポートからのデータ入力動作も停止する。【０１１４】
補助制御部４３は、ＷＥキャンセル信号を発行すると同時にイベント信号をイベント信号レジスタ４３５に格納する。この段階で２サイクル目の処理が終了する。【０１１５】
データ処理装置は、３サイクル目の処理において、状態管理部３１によりイベント信号レジスタ４３５に格納されたイベント信号を読み出し、該イベント信号及び構成番号変換部３２から通知された実番号「０」に基づき、状態遷移表にしたがって次に遷移する状態の論理番号「１」を決定し、該論理番号「１」を構成番号変換部３２へ通知する。また、状態管理部３１は、構成番号変換部３２から通知された実番号「０」及び受信したイベント信号に基づき、次に遷移する状態で開始する内部状態番号（以下、開始内部状態番号と称す）「１」を決定する。【０１１６】
構成番号変換部３２は、状態管理部３１から論理番号「１」が通知されると、変換表を用いて該論理番号「１」を実番号に変換する。ここでは、論理番号「１」の構成情報が構成情報メモリで保持されているため、構成番号変換部３２は論理番号から実番号への変換に成功する。構成番号変換部３２は、得られた実番号「１」を実番号レジスタ４３２及び状態管理部３１へ格納する。また、このとき、構成番号変換部３２は、開始内部状態番号を内部状態番号レジスタ４３３に送信する。【０１１７】
図１０Ｂは、以上示したデータ処理装置による２つのサイクルの処理経路を示す図である。図１０Ｂでは、状態管理部４３１が２サイクル目で状態遷移を制御するときの処理経路と、状態管理部３１が３サイクル目で状態遷移を制御するときの処理経路とを太い矢印で示している。すなわち、図１０Ｂに示す太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部４３１が次の内部状態の決定を試み、次の内部状態を決定できない状態管理部４３１が受信したイベント信号をイベント信号レジスタ４３５に格納する第１の処理経路と、イベント信号レジスタ４３５を介して状態管理部３１にイベント信号が発行されると、状態管理部３１が次の状態の論理番号及び内部状態番号を決定し、該論理番号が構成番号変換部３２で実番号に変換され、その変換結果が実番号レジスタ４３２および内部状態番号レジスタ４３３に通知されるまでの第２の処理経路とを示している。【０１１８】
データ処理装置は、４サイクル目の処理において、状態管理部３１により、実番号レジスタ４３２から論理番号「１」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「１」を読み出す。そして、状態管理部４３１で発行されたＷＥキャンセル信号を停止し、プロセッサエレメント４１群に動作を再開させる。【０１１９】
なお、上記３サイクル目の処理において、次の論理番号「１」の構成情報が構成情報メモリで保持されていない場合、構成番号変換部３２は、論理番号から実番号への変換を失敗する。この場合、構成番号変換部３２は、論理番号「１」の構成情報を構成情報メモリに書き込むよう構成書換部３３に要求する。【０１２０】
構成書換部３３は、構成情報記憶部１３に保存された構成情報のうち、現時点で不要な構成情報を、論理番号「１」の構成情報で書き換える。構成情報の書き換えには長い時間を要するため、構成番号変換部３２は構成書換部３３から書き換え完了を示す終了通知を待ち受ける。【０１２１】
構成書換部３３は、構成情報メモリの書き換えが完了し、それに伴う構成番号変換部３２が備える変換表の更新が終了すると、構成番号変換部３２に終了通知を送信する。構成番号変換部３２は更新された変換表を用いて論理番号「１」を実番号に変換し、実番号レジスタ４３２に格納する。【０１２２】
次に、補助制御部４３の状態管理部４３１を使用しない場合のデータ処理装置の動作について説明する。【０１２３】
補助制御部４３を使用しない場合、プロセッサエレメント４１の演算結果を示すイベント信号は、状態管理部４３１およびイベント信号レジスタ４３５を経由せずに状態管理部３１へ直接通知される。【０１２４】
状態管理部３１は、プロセッサエレメント４１からイベント信号を受信すると、状態遷移表にしたがって現在の実番号と受信したイベント信号とに基づき次に遷移する状態の論理番号を決定し、構成番号変換部３２から得られた該論理番号に対応する実番号「１」を実番号レジスタ４３２及び状態管理部３１へ送信し、開始内部態番号を内部状態番号レジスタ４３３に格納する。状態管理部３１はここまでの処理を１サイクルで実行する。【０１２５】
すなわち、図９に示す状態遷移表にしたがって状態が遷移させる場合、状態０−１から状態０−２への遷移及び状態０−２から状態１−１への遷移を、それぞれ状態遷移管理部（ＳＴＣ）３で制御する。【０１２６】
図１０Ｃは、以上示したデータ処理装置による１サイクルの処理経路を示す図である。図１０Ｃでは、補助制御部４３を使用せずに状態管理部３１で状態遷移を制御する場合の処理経路を太い矢印で示している。すなわち、図１０Ｃの太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部３１が次の内部状態を決定し、構成番号変換部３２が状態管理部３１から通知された論理番号を実番号に変換し、その結果が実番号レジスタ４３２および内部状態番号レジスタ４３３に通知するまでの処理経路を示している。【０１２７】
ここで、次の論理番号「１」の構成情報が構成情報メモリで保存されていない場合、構成番号変換部３２は論理番号から実番号への変換に失敗する。【０１２８】
この場合、構成番号変換部３２は、構成情報メモリに対する論理番号「１」の構成情報の書き込みを構成書換部３３へ要求すると共に、書き換えが終了するまでプロセッサエレメント４１群に動作を停止させるためのＷＥキャンセル信号を発行する。構成情報の書き換え動作は、上述した補助制御部４３を使用する場合と同様であるため、ここではその説明を省略する。【０１２９】
構成番号変換部３２は、構成書換部３３から構成情報の書き換え完了を示す終了通知を受信すると、状態管理部３１から通知された論理番号を実番号に変換し、その結果を実番号レジスタ４３２および内部状態番号レジスタ４３３に通知すると共にＷＥキャンセル信号の発行を停止する。【０１３０】
次に、図２に示したオブジェクトコード合成装置による、データ処理装置の処理性能の見積もり方法について図面を用いて説明する。【０１３１】
上述したように、オブジェクトコード合成装置は、合成ツール５０によりデータ処理装置上で動作させるアプリケーションのオブジェクトコードを生成する。また、オブジェクトコード合成装置は、性能見積もりツール６０により補助制御部４３を使用する場合と使用しない場合のデータ処理装置の処理性能をそれぞれ見積もり、該見積もり結果に基づき補助制御部４３を使用する場合と使用しない場合の処理性能の優劣を判定し、その判定結果に応じて補助制御部４３を使用するか否かを示す制御構成選択情報を合成ツール５０で生成したオブジェクトコードに付加する。【０１３２】
ここで、補助制御部４３を使用する場合と使用しない場合の処理性能の優劣の判定には、データ処理装置の１サイクルあたりの動作時間と、補助制御部４３を使用する場合と使用しない場合に必要なサイクル数とを用いる。【０１３３】
まず、１サイクルあたりの動作時間の算出方法について説明する。【０１３４】
補助制御部４３を使用する場合、基準となる１サイクルの処理時間を、図１０Ａの太い矢印で示した経路の処理に要する時間とする。この値を用いて状態遷移管理部３で制御する場合に要するサイクル数を決定する。【０１３５】
具体的には、図１０Ｂに示した、状態遷移管理部３で制御する場合に要する処理時間を、図１０Ａで示した経路の処理に要する時間で除算し、整数となるように繰り上げた値を算出する。次に、この値から「１」を減算することで、状態遷移管理部３で制御する場合に要するサイクル数であるオーバヘッドサイクル数を算出する。【０１３６】
一方、補助制御部４３を使用しない場合は、基準となる１サイクルの時間を図１０Ｃの太い矢印で示した経路の処理に要する時間とする。【０１３７】
次に、図２に示した性能見積もりツール６０による性能見積もり方法について説明する。【０１３８】
上述した動作シミュレーション法によって所要のサイクル数を算出する場合、補助制御部４３を使用しない場合のサイクル数は動作シミュレーションのサイクル数そのものの値となる。【０１３９】
また、補助制御部４３を使用する場合のサイクル数は、状態遷移管理部３の制御で発生した状態遷移の回数と状態遷移管理部３の制御で状態が遷移する場合のオーバヘッドとの積に、動作シミュレーションのサイクル数を加算することで算出する。【０１４０】
一方、分岐確率計算法によってデータ処理装置の性能を見積もる場合、所要のサイクル数は比で表記する。例えば、補助制御部４３を使用しない場合のサイクル数を「１」とすると、補助制御部４３を使用する場合のサイクル数は、状態遷移管理部３の制御を必要とする状態遷移の発生確率と状態遷移管理部３により状態遷移を制御する場合のオーバヘッドの値との積に、「１」を加算することで算出する。【０１４１】
最後に、１サイクルあたりの動作時間と所要のサイクル数とを乗算し、アプリケーションに対応したデータ処理装置の処理に要する時間（以下、動作所要時間と称す）を求める。【０１４２】
性能見積もりツール６０は、補助制御部４３を使用する場合と使用しない場合の動作所要時間をそれぞれ算出し、動作所要時間がより短くなる制御構造（補助制御部４３を使用するか否か）を決定し、該決定結果を基に補助制御部４３を使用するか否かを示す制御構成選択情報をオブジェクトコードに付加する。【０１４３】
なお、より精細に処理性能を見積もる場合、性能見積もりツール６０は、動作中の構成情報の書き換えに要する時間も考慮することが望ましい。その場合、書き換えサイクル数は変わらないため、動作周波数がより高い補助制御部４３を使用する制御構造を選択する機会が増大する。【０１４４】
次に、図２に示したオブジェクトコード合成装置による、データ処理装置の処理性能の見積もり方法の具体例について説明する。【０１４５】
ここでは、図１０Ａに示した処理経路による動作所要時間が１０ｎｓ、図１０Ｂに示した処理経路による動作所要時間が１６ｎｓ、図１０Ｃに示した処理経路による動作所要時間が１３ｎｓであり、状態遷移管理部３の制御を必要とする状態遷移の発生確率が０．２であるとする。【０１４６】
上述したように、補助制御部４３の制御による状態遷移から状態遷移管理部３の制御による状態遷移へ変わるとき、状態遷移の制御には２サイクルを要するため、オーバヘッドのサイクル数は「１」となる。【０１４７】
ここで、補助制御部４３を使用しない場合のサイクル数を「１」とすると、補助制御部４３を使用する場合のサイクル数は（１＋０．２×１）＝１．２となる。【０１４８】
また、データ処理装置の動作所要時間は、補助制御部４３を使用しない場合は１３×１＝１３ｎｓであり、補助制御部４３を使用する場合は１０×１．２＝１２ｎｓとなる。すなわち、動作所要時間は補助制御部４３を使用する方が短くなる。この場合、性能見積もりツール６０は、補助制御部４３の使用を指定する制御構成選択情報をオブジェクトコードに付与する。【０１４９】
一方、状態遷移管理部３の制御を必要とする状態遷移の発生確率が０．４である場合、補助制御部４３を使用する場合の動作所要時間は１０×１．４＝１４ｎｓとなる。この場合、動作所要時間は補助制御部４３を使用しない方が短くなる。したがって、性能見積もりツール６０は、補助制御部４３の不使用を指定する制御構成選択情報をオブジェクトコードに付与する。【０１５０】
図１１は、横軸に状態遷移管理部３の制御を必要とする状態遷移の発生確率を示し、縦軸に動作所要時間をプロットしたグラフである。【０１５１】
図１１は、状態遷移管理部３の制御を必要とする状態遷移の発生確率に対する、補助制御部４３を使用する場合の動作所要時間と、補助制御部４３を使用しない場合の動作所要時間と、補助制御部４３を使用するか否かを最適に選択する場合（本願発明）の動作所要時間との関係をそれぞれ示している。【０１５２】
上述した先願発明では、補助制御部４３を使用する場合または使用しない場合のいずれか一方のみで処理を実行するため、オブジェクトコードによっては動作所要時間が長くなることがある。一方、本実施例では、性能見積もりツール６０により補助制御部４３を使用する場合と使用しない場合の処理性能を事前に見積もり、最適な制御構造を決定し、該決定結果を示す制御構成選択情報をオブジェクトコードに付与するため、データ処理装置は、より動作所要時間が短い制御構造で処理を実行できる。したがって、データ処理装置の処理に要する時間を低減できる。【０１５３】
（第２実施例）
第２実施例は上記背景技術で示した先願発明（特願２００６−１０３９８７号）のデータ処理装置に上述した第２の実施の形態を適用する例である。【０１５４】
図１２は第２実施例のデータ処理装置の構成を示すブロック図である。【０１５５】
第２実施例のデータ処理装置は、第１実施例で示した構成指定レジスタ３４に代えて構成指定表３６を備えた構成である。また、第２実施例のデータ処理装置は、２つのクロック生成器５１と５２を備えている。【０１５６】
図１２に示すように、本実施例のデータ処理装置（ＤＲＰ）は、図４に示した制御部１となる状態遷移管理部（ＳＴＣ）３と、図４に示した演算部２となる補助制御部（ＭＳＴＣ）４３及び複数のプロセッサエレメント（ＰＥ）４１を備えた演算部４と、２つのクロック生成器５１，５２と、外部メモリ６とを有する構成である。状態遷移管理部（ＳＴＣ）３、演算部４及び外部メモリ６には、２つのクロック生成器５１と５２で生成されたクロックのうち、構成指定表３６に格納された制御構成選択情報に基づいて状態遷移管理部（ＳＴＣ）３によって選択されたいずれか一方のクロックが供給される。【０１５７】
状態遷移管理部（ＳＴＣ）３は、状態管理部３１、構成番号変換部３２、構成書換部３３及び構成指定表３６を備えている。【０１５８】
状態管理部３１は図４に示した状態管理部１１に相当し、構成番号変換部３２は図４に示した構成番号変換部１２に相当し、構成書換部３３は図４に示した構成書換部１５に相当する。【０１５９】
構成指定表３６は、補助制御部（ＭＳＴＣ）４３が備える、図４に示した状態管理部２３１に相当する状態管理部４３１を使用するか否かを指定する制御構成選択情報を構成情報毎に保持する。【０１６０】
プロセッサエレメント（ＰＥ）４１は、レジスタファイル（ＲＦＵ）、ＡＬＵ、データ処理演算器（ＤＭＵ）、スイッチ（ＳＷ）及び構成情報メモリを備え、スイッチ（ＳＷ）及び該スイッチに接続された配線を介して相互に接続される。【０１６１】
図１２に示すデータ処理装置では、演算部４が備える複数のプロセッサエレメント４１が図４に示した演算器２１となる。なお、演算器２１は、プロセッサエレメント４１に限らず、例えばロジックアレイで実現してもよい。【０１６２】
補助制御部（ＭＳＴＣ）４３は、図４に示した状態管理部２３１に相当する状態管理部４３１を備え、状態管理部４３１は、複数の内部状態の遷移を含む論理番号（上記グループ）内の状態遷移を管理する。【０１６３】
また、補助制御部（ＭＳＴＣ）４３は、現在の構成情報の実番号を保持する実番号レジスタ４３２と、内部状態番号を保持する内部状態番号レジスタ４３３と、状態管理部４３１を使用するか否かを指定する情報である制御構成選択情報を保持する構成指定レジスタ４３４と、状態管理部４３１で制御できない大規模な状態遷移を指定するイベント信号を保持するイベント信号レジスタ４３５とを備えている。イベント信号レジスタ４３５には、状態管理部４３１で制御できない大規模な状態遷移を指定するイベント信号が、状態管理部３１に送出する前に一時的に保持される。【０１６４】
補助制御部４３は、構成指定レジスタ４３４に格納された値にしたがって、状態管理部４３１を使用するか否かの選択時に用いる各種セレクタの動作を決定する。【０１６５】
状態遷移管理部（ＳＴＣ）３は、使用する構成情報の実番号に対応する構成指定表３６のメモリ領域に格納された値（制御構成選択情報）を読み出し、該読み出した値に基づいて、状態管理部４３１を使用するか否かの選択に用いる各種セレクタの動作を決定する。このとき状態遷移管理部（ＳＴＣ）３は、構成指定表３６から読み出した値を構成指定レジスタ４３４に格納する。【０１６６】
クロック生成器５１は、状態管理部４３１を使用しない制御構造のときにデータ処理装置で用いるクロックを生成する。一方、クロック生成器５２は、状態管理部４３１を使用する制御構造のときにデータ処理装置で用いるクロックを生成する。【０１６７】
状態遷移管理部（ＳＴＣ）３は、構成指定表３６に格納された値にしたがってクロック生成器５１またはクロック生成器５２で生成されたクロックを選択する。【０１６８】
また、状態遷移管理部（ＳＴＣ）３は、構成指定表３６に格納された値にしたがって構成番号変換部３２にプロセッサエレメント４１群の停止信号を送出させるか否か、状態管理部３１から送出された内部状態番号を内部状態番号レジスタ４３３に常に書き込む、あるいは内部状態番号レジスタ４３３に対する内部状態番号の書き込みを構成番号変換部３２から実番号レジスタ４３２へ実番号を書き込むときに同期して実行させるかを選択する。【０１６９】
次に本実施例のデータ処理装置の動作について説明する。【０１７０】
なお、論理番号「０」の構成情報は実番号「０」の構成情報メモリに書き込まれ、論理番号「１」の構成情報は実番号「１」の構成情報メモリに書き込まれているものとする。また、論理番号０の構成情報には状態管理部４３１の使用を指示する制御構成選択情報が付加され、論理番号１の構成情報には状態管理部４３１の不使用を指示する制御構成選択情報が付加されているものとする。【０１７１】
まず、補助制御部４３の状態管理部４３１を使用する場合のデータ処理装置の動作について説明する。ここでは、第１実施例と同様に、図９に示す状態遷移表にしたがって状態を遷移させるものとし、論理番号「０」の構成情報に含まれる内部状態番号「１」（状態０−１）から処理を開始する例を示す。【０１７２】
状態遷移管理部（ＳＴＣ）３は、最初に論理番号「０」の構成情報に付加された制御構成選択情報を構成指定表３６から読み出し、該制御構成選択情報に基づいてクロック生成器５２のクロックを選択する。以降、本実施例の状態遷移管理部（ＳＴＣ）３及び演算部４は、次にクロックが選択されるまでクロック生成器５２で生成されたクロックを用いて動作する。なお、状態遷移管理部（ＳＴＣ）３が制御構成選択情報に基づいてクロックを選択するまで、状態遷移管理部（ＳＴＣ）３及び演算部４は、状態遷移管理部（ＳＴＣ）３の処理能力に応じた、予め設定された周波数のクロック（この場合はクロック生成器５１で生成されたクロック）で動作しているものとする。【０１７３】
データ処理装置は、１サイクル目の処理において、まず補助制御部４３により、実番号レジスタ４３２から論理番号「０」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「１」を読み出す。【０１７４】
補助制御部４３は、実番号レジスタ４３２から読み出した実番号および内部状態番号「１」を用いて構成情報メモリから構成情報を読み出し、演算部４の各プロセッサエレメント４１に通知する。各プロセッサエレメント４１は補助制御部４３から通知された構成情報にしたがって、その動作及びスイッチの接続関係を決定する。その結果、各プロセッサエレメント４１で所要の演算が実行される。【０１７５】
状態管理部４３１は、プロセッサエレメント４１から演算結果がイベント信号として通知されると、状態遷移表に基づいて、該イベント信号に対応する次の状態遷移の制御に移行する。ここでは、次の状態への遷移が状態管理部４３１で制御可能であるため、状態管理部４３１は次の内部状態番号「２」を内部状態番号レジスタ４３３へ書き込む。この段階で１サイクル目の処理が終了する。【０１７６】
図１３Ａは、以上に示したデータ処理装置による１サイクルの処理経路を示す図である。図１３Ａでは、状態管理部４３１で状態遷移を制御する場合の処理経路を太い矢印で示している。すなわち、図１３Ａの太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部４３１が次の内部状態を決定し、該内部状態を示す内部状態番号が内部状態番号レジスタ４３３に書き込まれるまでの処理経路を示している。【０１７７】
データ処理装置は、２サイクル目の処理において、補助制御部４３により、実番号レジスタ４３２から論理番号「０」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「２」を読み出す。【０１７８】
補助制御部４３は、実番号レジスタ４３２から読み出した実番号および内部状態番号「２」を用いて構成情報メモリから構成情報を読み出し、演算部４の各プロセッサエレメント４１に通知する。各プロセッサエレメント４１は補助制御部４３から通知された構成情報にしたがって、その動作及びスイッチの接続関係を決定する。その結果、各プロセッサエレメント４１で所要の演算が実行される。【０１７９】
状態管理部４３１は、プロセッサエレメント４１から演算結果がイベント信号として通知されると、状態遷移表に基づいて該イベント信号に対応する次の状態遷移の制御に移行する。ここでは、次の状態への遷移が、論理番号が変わるために状態管理部４３１で制御できないため、状態管理部４３１は、プロセッサエレメント４１群に動作を停止させるためのＷＥキャンセル信号を発行する。プロセッサエレメント４１は、ＷＥキャンセル信号を受信すると、レジスタの内容更新を受け付けなくなる。また、プロセッサエレメント４１は、ＷＥキャンセル信号を受信すると、外部ポートからのデータ入力動作も停止する。【０１８０】
補助制御部４３は、ＷＥキャンセル信号を発行すると同時にイベント信号レジスタ４３５にイベント信号を格納する。この段階で２サイクル目の処理が終了する。【０１８１】
データ処理装置は、３サイクル目の処理において、状態管理部３１によりイベント信号レジスタ４３５に格納されたイベント信号を読み出し、構成番号変換部３２から通知された実番号「０」及びイベント信号に基づき、状態遷移表にしたがって次に遷移する状態の論理番号「１」を決定し、該論理番号「１」を構成番号変換部３２へ通知する。また、状態管理部３１は、構成番号変換部３２から通知された実番号「０」及び受信したイベント信号に基づき、次に遷移する状態で開始する内部状態番号（開始内部状態番号）「１」を決定する。【０１８２】
構成番号変換部３２は、状態管理部３１から論理番号「１」が通知されると、変換表を用いて該論理番号「１」を実番号に変換する。ここでは、論理番号「１」の構成情報が構成情報メモリで保持されているため、構成番号変換部３２は論理番号から実番号への変換に成功する。構成番号変換部３２は、得られた実番号「１」を実番号レジスタ４３２及び状態管理部３１へ格納する。また、このとき、構成番号変換部３２は、開始内部状態番号を内部状態番号レジスタ４３３に送信する。【０１８３】
状態遷移管理部（ＳＴＣ）３は、実番号「１」に対応する構成情報に付加された制御構成選択情報を構成指定表３６から読み出し、論理番号「１」の構成情報では状態管理部４３１を使用しない制御構造を用いることを検知し、読み出した制御構成選択情報に基づいてクロック生成器５１のクロックを選択する。この場合、状態遷移管理部（ＳＴＣ）３及び演算部４は、次のサイクルからクロック生成器５１で生成されたクロックを用いて動作する。また、状態管理部３１は、状態管理部４３１を使用しない制御構造を指示する情報を構成指定レジスタ４３４に書き込む。【０１８４】
図１３Ｂは、以上に示したデータ処理装置による２つのサイクルの処理経路を示す図である。図１３Ｂでは、状態管理部４３１が２サイクル目で状態遷移を制御するときの処理経路と、状態管理部３１が３サイクル目で状態遷移を制御するときの処理経路とを太い矢印で示している。すなわち、図１３Ｂに示す太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部４３１が次の内部状態の決定を試み、次の内部状態を決定できない状態管理部４３１が受信したイベント信号をイベント信号レジスタ４３５に格納する第１の処理経路と、イベント信号レジスタ４３５を介して状態管理部３１にイベント信号が発行されると、状態管理部３１が次の状態の論理番号及び内部状態番号を決定し、該論理番号が構成番号変換部３２で実番号に変換され、その変換結果が実番号レジスタ４３２および内部状態番号レジスタ４３３に通知されるまでの第２の処理経路とを示している。【０１８５】
データ処理装置は、４サイクル目の処理において、状態管理部３１により、実番号レジスタ４３２から論理番号「１」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「１」を読み出す。そして、状態管理部４３１で発行されたＷＥキャンセル信号を停止し、プロセッサエレメント４１群に動作を再開させる。【０１８６】
ここでは、状態管理部４３１を使用しない制御構造を用いるため、プロセッサエレメント４１の演算結果を示すイベント信号は、状態管理部４３１およびイベント信号レジスタ４３５を経由せずに状態管理部３１へ直接通知される。【０１８７】
状態管理部３１は、プロセッサエレメント４１からイベント信号を受信すると、状態遷移表にしたがって現在の実番号と受信したイベント信号とに基づき次に遷移する状態の論理番号を決定し、構成番号変換部３２から得られた該論理番号に対応する実番号「１」を実番号レジスタ４３２及び状態管理部３１へ送信し、開始内部態番号を内部状態番号レジスタ４３３に格納する。状態管理部３１はここまでの処理を１サイクルで実行する。【０１８８】
図１３Ｃは、以上に示したデータ処理装置による１サイクルの処理経路を示す図である。図１３Ｃでは、補助制御部４３の状態管理部４３１を使用せずに状態管理部３１で状態遷移を制御する場合の処理経路を太い矢印で示している。すなわち、図１３Ｃの太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部３１が次の内部状態を決定し、構成番号変換部３２が状態管理部３１から通知された論理番号を実番号に変換し、その結果が実番号レジスタ４３２および内部状態番号レジスタ４３３に通知するまでの処理経路を示している。【０１８９】
次に、図５に示したオブジェクトコード合成装置による、データ処理装置の処理性能の見積もり方法について図面を用いて説明する。【０１９０】
上述したように、オブジェクトコード合成装置は、合成ツール５０によりデータ処理装置上で動作させるアプリケーションのオブジェクトコードを生成する。また、オブジェクトコード合成装置は、性能見積もりツール６０により補助制御部４３の状態管理部４３１を使用する場合と使用しない場合のデータ処理装置の処理性能をそれぞれ見積もり、該見積もり結果に基づき補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の処理性能の優劣を判定し、その判定結果に応じて補助制御部４３の状態管理部４３１を使用するか否かを示す制御構成選択情報を合成ツール５０で生成したオブジェクトコードに付加する。【０１９１】
ここで、補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の処理性能の優劣の判定には、データ処理装置の１サイクルあたりの動作時間と、補助制御部４３の状態管理部４３１を使用する場合と使用しない場合に必要なサイクル数とを用いる。【０１９２】
まず、１サイクルあたりの動作時間の算出方法について説明する。【０１９３】
補助制御部４３の状態管理部４３１を使用する場合、基準となる１サイクルの処理時間を、図１３Ａの太い矢印で示した経路の処理に要する時間とする。この値を用いて状態遷移管理部３で制御する場合に要するサイクル数を決定する。【０１９４】
具体的には、図１３Ｂに示した、状態遷移管理部３で制御する場合に要する処理時間を、図１３Ａで示した経路の処理に要する時間で除算し、整数となるように繰り上げた値を算出する。次に、この値から「１」を減算することで、状態遷移管理部３で制御する場合に要するサイクル数であるオーバヘッドサイクル数を算出する。【０１９５】
一方、補助制御部４３の状態管理部４３１を使用しない場合は、基準となる１サイクルの時間を図１３Ｃの太い矢印で示した経路の処理に要する時間とする。【０１９６】
次に、図５に示した性能見積もりツール６０による性能見積もり方法について説明する。【０１９７】
上述した動作シミュレーション法によって所要のサイクル数を算出する場合、補助制御部４３の状態管理部４３１を使用しない場合のサイクル数は動作シミュレーションのサイクル数そのものの値となる。【０１９８】
また、補助制御部４３の状態管理部４３１を使用する場合のサイクル数は、状態遷移管理部３の制御で発生した状態遷移の回数と状態遷移管理部３の制御で状態が遷移する場合のオーバヘッドとの積に、動作シミュレーションのサイクル数を加算することで算出する。【０１９９】
一方、分岐確率計算法によってデータ処理装置の性能を見積もる場合、所要のサイクル数は比で表記する。例えば、補助制御部４３の状態管理部４３１を使用しない場合のサイクル数を「１」とすると、補助制御部４３の状態管理部４３１を使用する場合のサイクル数は、状態遷移管理部３の制御を必要とする状態遷移の発生確率と状態遷移管理部３により状態遷移を制御する場合のオーバヘッドの値との積に、「１」を加算することで算出する。【０２００】
最後に、１サイクルあたりの動作時間と所要のサイクル数とを乗算し、アプリケーションに対応したデータ処理装置の処理に要する時間（以下、動作所要時間と称す）を求める。【０２０１】
性能見積もりツール６０は、補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の動作所要時間をそれぞれ算出し、動作所要時間がより短くなる制御構造（補助制御部４３の状態管理部４３１を使用するか否か）を決定し、該決定結果を基本制御構造とする制御構成選択情報を生成する。【０２０２】
ここで、構成情報単位で動作所要時間を検討すると、基本制御構造として採用していない制御構造の方がデータ処理装置の性能を向上させられる場合がある。例えば、基本制御構造として補助制御部４３の状態管理部４３１を使用しない制御構造を採用している場合は、ループ処理のように処理が長時間滞留する構成情報がある。また、基本制御構造として補助制御部４３の状態管理部４３１を使用する制御構造を採用している場合は、分岐条件にしたがって分岐処理を繰り返す、複数の状態を次々と遷移する構成情報がある。オブジェクトコードにこのような構成情報が存在する場合、合成ツール５０は対応する構成情報の制御構成選択情報を書き換える。【０２０３】
次に、図５に示したオブジェクトコード合成装置による、データ処理装置の処理性能の見積もり方法の具体例について説明する。【０２０４】
ここでは、図１３Ａに示した処理経路による動作所要時間が１０ｎｓ、図１３Ｂに示した処理経路による動作所要時間が１６ｎｓ、図１３Ｃに示した処理経路による動作所要時間が１３ｎｓであり、状態遷移管理部３の制御を必要とする状態遷移の発生確率が０．４であるとする。【０２０５】
上述したように、補助制御部４３の制御による状態遷移から状態遷移管理部３の制御による状態遷移へ変わるとき、状態遷移の制御には２サイクルを要するため、オーバヘッドのサイクル数は「１」となる。【０２０６】
ここで、補助制御部４３を使用しない場合のサイクル数を「１」とすると、補助制御部４３を使用する場合のサイクル数は（１＋０．４×１）＝１．４となる。【０２０７】
また、データ処理装置の動作所要時間は、補助制御部４３の状態管理部４３１を使用しない場合は１３×１＝１３ｎｓであり、補助制御部４３を使用する場合は１０×１．４＝１４ｎｓとなる。すなわち、動作所要時間は補助制御部４３の状態管理部４３１を使用しない方が短くなる。したがって、性能見積もりツール６０は、補助制御部４３の状態管理部４３１の不使用を基本制御構造として採用する。【０２０８】
次に、性能見積もりツール６０は、各構成情報に属する状態群（例えば図９に示した論理番号０のように複数の状態を備える構成情報）を単位に、状態遷移管理部３の制御を必要とする状態遷移の発生確率を計算する。この発生確率が０．３より小さくなる構成情報については、補助制御部４３の状態管理部４３１を使用する制御構造を採用する。【０２０９】
本実施例によれば、性能見積もりツール６０により補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の処理性能を見積もり、構成情報毎に最適な制御構造を決定し、該決定結果を示す制御構成選択情報を構成情報毎に付加すると共に、補助制御部４３の状態管理部４３１を使用する制御構造と使用しない制御構造における動作周波数を指定する動作周波数情報をオブジェクトコードに付加する。そのため、本実施例のデータ処理装置は、クロックを制御構造に応じて選択できる。したがって、データ処理装置の処理に要する時間を低減できる。【０２１０】
（第３実施例）
第３実施例は上記背景技術で示した先願発明（特願２００６−１０３９８７号）のデータ処理装置に上述した第３の実施の形態を適用する例である。【０２１１】
図１４は第３実施例のデータ処理装置の構成を示すブロック図である。【０２１２】
第３実施例のデータ処理装置は、図１２に示した２つのクロック生成器５１及び５２に代えて可変クロック生成器７を備える点で第２実施例と異なっている。【０２１３】
図１４に示すように、第３実施例のデータ処理装置（ＤＲＰ）は、図６に示した制御部１となる状態遷移管理部（ＳＴＣ）３と、図６に示した演算部２となる、補助制御部（ＭＳＴＣ）４３及び複数のプロセッサエレメント（ＰＥ）４１を備えた演算部４と、可変クロック生成器７と、外部メモリ６とを有する構成である。状態遷移管理部（ＳＴＣ）３、演算部４及び外部メモリ６には、可変クロック生成器７で生成されたクロックが供給される。【０２１４】
状態遷移管理部（ＳＴＣ）３は、状態管理部３１、構成番号変換部３２、構成書換部３３及び構成指定表３６を備えている。【０２１５】
状態管理部３１は図６に示した状態管理部１１に相当し、構成番号変換部３２は図６に示した構成番号変換部１２に相当し、構成書換部３３は図６に示した構成書換部１５に相当する。構成指定表３６は、補助制御部（ＭＳＴＣ）４３が備える、図６に示した状態管理部２３１に相当する状態管理部４３１を使用するか否かを指定する情報である制御構成選択情報を保持する。【０２１６】
プロセッサエレメント（ＰＥ）４１は、レジスタファイル（ＲＦＵ）、ＡＬＵ、データ処理演算器（ＤＭＵ）、スイッチ（ＳＷ）及び構成情報メモリを備え、スイッチ（ＳＷ）及び該スイッチに接続された配線を介して相互に接続される。【０２１７】
図１４に示すデータ処理装置では、演算部４が備える複数のプロセッサエレメント４１が図６に示した演算器２１となる。なお、演算器は、プロセッサエレメント４１に限らず、例えばロジックアレイで実現してもよい。【０２１８】
補助制御部（ＭＳＴＣ）４３は、図６に示した状態管理部２３１に相当する状態管理部４３１を備え、状態管理部４３１は、複数の内部状態の遷移を含む論理番号（上記グループ）内の状態遷移を管理する。【０２１９】
また、補助制御部（ＭＳＴＣ）４３は、現在の構成情報の実番号を保持する実番号レジスタ４３２と、内部状態番号を保持する内部状態番号レジスタ４３３と、状態管理部４３１を使用するか否かを指定する情報である制御構成選択情報を保持する構成指定レジスタ４３４と、状態管理部４３１で制御できない大規模な状態遷移を指定するイベント信号を保持するイベント信号レジスタ４３５とを備えている。【０２２０】
イベント信号レジスタ４３５には、状態管理部４３１で制御できない大規模な状態遷移を指定するイベント信号が、状態管理部３１に送出する前に一時的に保持される。【０２２１】
補助制御部４３は、構成指定レジスタ４３４に格納された値にしたがって、状態管理部４３１を使用するか否かの選択時に用いる各種セレクタの動作を決定する。【０２２２】
状態遷移管理部（ＳＴＣ）３は、使用する構成情報の実番号に対応する構成指定表３６のメモリ領域に格納された値を読み出し、該読み出した値に基づいて、状態管理部４３１を使用するか否かの選択に用いる各種セレクタの動作を決定する。このとき状態遷移管理部（ＳＴＣ）３は、構成指定表３６から読み出した値を構成指定レジスタ４３４に格納する。【０２２３】
可変クロック生成器７は、所要の周波数のクロックを生成し、状態遷移管理部（ＳＴＣ）３および演算部４に供給する。また、可変クロック生成器７は、生成するクロックの周波数を構成指定表３６から読み出された値（動作周波数情報）にしたがって変更可能である。【０２２４】
状態遷移管理部（ＳＴＣ）３は、構成指定表３６に格納された値にしたがって構成番号変換部３２にプロセッサエレメント４１群の停止信号を送出させるか否か、状態管理部３１から送出された内部状態番号を内部状態番号レジスタ４３３に常に書き込む、あるいは内部状態番号レジスタ４３３に対する内部状態番号の書き込みを、構成番号変換部３２から実番号レジスタ４３２へ実番号を書き込むときに同期して実行させるかを選択する。【０２２５】
次に本実施例のデータ処理装置の動作について説明する。【０２２６】
なお、論理番号「０」の構成情報は実番号「０」の構成情報メモリに書き込まれ、論理番号「１」の構成情報は実番号「１」の構成情報メモリに書き込まれているものとする。また、論理番号０の構成情報には状態管理部４３１の使用を指示する制御構成選択情報が付加され、論理番号１の構成情報には状態管理部４３１の不使用を指示する制御構成選択情報が付加されているものとする。【０２２７】
まず、補助制御部４３の状態管理部４３１を使用する場合のデータ処理装置の動作について説明する。ここでは、第１実施例と同様に、図９に示す状態遷移表にしたがって状態を遷移させるものとし、論理番号「０」の構成情報に含まれる内部状態番号「１」（状態０−１）から処理を開始する例を示す。【０２２８】
状態遷移管理部（ＳＴＣ）３は、最初に論理番号「０」の構成情報に付加された動作周波数情報を構成指定表３６から読み出し、該動作周波数情報にしたがって可変クロック生成器７で生成するクロックの周波数を設定する。【０２２９】
データ処理装置は、１サイクル目の処理において、まず補助制御部４３により、実番号レジスタ４３２から論理番号「０」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「１」を読み出す。【０２３０】
補助制御部４３は、実番号レジスタ４３２から読み出した実番号および内部状態番号「１」を用いて構成情報メモリから構成情報を読み出し、演算部４の各プロセッサエレメント４１に通知する。各プロセッサエレメント４１は補助制御部４３から通知された構成情報にしたがって、その動作及びスイッチの接続関係を決定する。その結果、各プロセッサエレメント４１で所要の演算が実行される。【０２３１】
状態管理部４３１は、プロセッサエレメント４１から演算結果がイベント信号として通知されると、状態遷移表に基づいて、該イベント信号に対応する次の状態遷移の制御に移行する。ここでは、次の状態への遷移が状態管理部４３１で制御可能であるため、状態管理部４３１は次の内部状態番号「２」を内部状態番号レジスタ４３３へ書き込む。この段階で１サイクル目の処理が終了する。【０２３２】
図１５Ａは、以上に示したデータ処理装置による１サイクルの処理経路を示す図である。図１５Ａでは、状態管理部４３１で状態遷移を制御する場合の処理経路を太い矢印で示している。すなわち、図１５Ａの太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部４３１が次の内部状態を決定し、該内部状態を示す内部状態番号が内部状態番号レジスタ４３３に書き込まれるまでの処理経路を示している。【０２３３】
データ処理装置は、２サイクル目の処理において、補助制御部４３により、実番号レジスタ４３２から論理番号「０」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「２」を読み出す。【０２３４】
補助制御部４３は、実番号レジスタ４３２から読み出した実番号および内部状態番号「２」を用いて構成情報メモリから構成情報を読み出し、演算部４の各プロセッサエレメント４１に通知する。各プロセッサエレメント４１は補助制御部４３から通知された構成情報にしたがって、その動作及びスイッチの接続関係を決定する。その結果、各プロセッサエレメント４１で所要の演算が実行される。【０２３５】
状態管理部４３１は、プロセッサエレメント４１から演算結果がイベント信号として通知されると、状態遷移表に基づいて、該イベント信号に対応する次の状態遷移の制御に移行する。ここでは、次の状態への遷移が、論理番号が変わるために状態管理部４３１で制御できない。そのため、状態管理部４３１は、プロセッサエレメント４１群に動作を停止させるためのＷＥキャンセル信号を発行する。プロセッサエレメント４１は、ＷＥキャンセル信号を受信すると、レジスタの内容更新を受け付けなくなる。また、プロセッサエレメント４１は、ＷＥキャンセル信号を受信すると、外部ポートからのデータ入力動作も停止する。【０２３６】
補助制御部４３は、ＷＥキャンセル信号を発行すると同時にイベント信号レジスタ４３５にイベント信号を格納する。この段階で２サイクル目の処理が終了する。【０２３７】
データ処理装置は、３サイクル目の処理において、状態管理部３１によりイベント信号レジスタ４３５に格納されたイベント信号を読み出し、構成番号変換部３２から通知された実番号「０」及びイベント信号に基づき、状態遷移表にしたがって次に遷移する状態の論理番号「１」を決定し、該論理番号「１」を構成番号変換部３２へ通知する。また、状態管理部３１は、構成番号変換部３２から通知された実番号「０」及び受信したイベント信号に基づき、次に遷移する状態で開始する内部状態番号（開始内部状態番号）「１」を決定する。【０２３８】
構成番号変換部３２は、状態管理部３１から論理番号「１」が通知されると、変換表を用いて該論理番号「１」を実番号に変換する。ここでは、論理番号「１」の構成情報が構成情報メモリで保持されているため、構成番号変換部３２は論理番号から実番号への変換に成功する。構成番号変換部３２は、得られた実番号「１」を実番号レジスタ４３２及び状態管理部３１へ格納する。また、このとき、構成番号変換部３２は、開始内部状態番号を内部状態番号レジスタ４３３に送信する。【０２３９】
状態遷移管理部（ＳＴＣ）３は、実番号「１」に対応する構成情報に付加された動作周波数情報を構成指定表３６から読み出し、論理番号「１」の構成情報では状態管理部４３１を使用しない制御構造を用いることを検知し、読み出した動作周波数情報にしたがって可変クロック生成器７で生成するクロックの周波数を変更する。この場合、状態遷移管理部（ＳＴＣ）３及び演算部４は、次のサイクルから変更後のクロックを用いて動作する。また、状態管理部３１は、状態管理部４３１を使用しない制御構造を指示する情報を構成指定レジスタ４３４に書き込む。なお、状態遷移管理部（ＳＴＣ）３が制御構成選択情報に基づいてクロックを選択するまで、状態遷移管理部（ＳＴＣ）３及び演算部４は、状態遷移管理部（ＳＴＣ）３の処理能力に応じた、予め設定された周波数のクロックで動作しているものとする。【０２４０】
図１５Ｂは、以上に示したデータ処理装置による２つのサイクルの処理経路を示している。図１５Ｂでは、状態管理部４３１が２サイクル目で状態遷移を制御するときの処理経路と、状態管理部３１が３サイクル目で状態遷移を制御するときの処理経路とを太い矢印で示している。すなわち、図１５Ｂに示す太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部４３１が次の内部状態の決定を試み、次の内部状態を決定できない状態管理部４３１が受信したイベント信号をイベント信号レジスタ４３５に格納する第１の処理経路と、イベント信号レジスタ４３５を介して状態管理部３１にイベント信号が発行されると、状態管理部３１が次の状態の論理番号及び内部状態番号を決定し、該論理番号が構成番号変換部３２で実番号に変換され、その変換結果が実番号レジスタ４３２および内部状態番号レジスタ４３３に通知されるまでの第２の処理経路とを示している。【０２４１】
データ処理装置は、４サイクル目の処理において、状態管理部３１により、実番号レジスタ４３２から論理番号「１」の構成情報に対応する実番号を読み出し、内部状態番号レジスタ４３３から内部状態番号「１」を読み出す。そして、状態管理部４３１で発行されたＷＥキャンセル信号を停止し、プロセッサエレメント４１群に動作を再開させる。【０２４２】
ここでは、状態管理部４３１を使用しないため、プロセッサエレメント４１の演算結果を示すイベント信号は、状態管理部４３１およびイベント信号レジスタ４３５を経由せずに状態管理部３１へ直接通知される。【０２４３】
状態管理部３１は、プロセッサエレメント４１からイベント信号を受信すると、状態遷移表にしたがって現在の実番号と受信したイベント信号とに基づき次に遷移する状態の論理番号を決定し、構成番号変換部３２から得られた該論理番号に対応する実番号「１」を実番号レジスタ４３２及び状態管理部３１へ送信し、開始内部態番号を内部状態番号レジスタ４３３に格納する。状態管理部３１はここまでの処理を１サイクルで実行する。【０２４４】
図１５Ｃは、以上に示したデータ処理装置による１サイクルの処理経路を示す図である。図１５Ｃでは、補助制御部４３の状態管理部４３１を使用せずに状態管理部３１で状態遷移を制御する場合の処理経路を太い矢印で示している。すなわち、図１５Ｃの太い矢印は、内部状態番号レジスタ４３３を処理の起点とし、現在の構成情報に基づいて各プロセッサエレメント４１で構築された回路による演算結果がイベント信号として発行されると、該イベント信号を受信した状態管理部３１が次の内部状態を決定し、構成番号変換部３２が状態管理部３１から通知された論理番号を実番号に変換し、その結果が実番号レジスタ４３２および内部状態番号レジスタ４３３に通知されるまでの処理経路を示している。【０２４５】
次に、図７に示したオブジェクトコード合成装置による、データ処理装置の処理性能の見積もり方法について図面を用いて説明する。【０２４６】
上述したように、オブジェクトコード合成装置は、合成ツール５０によりデータ処理装置上で動作させるアプリケーションのオブジェクトコードを生成する。また、オブジェクトコード合成装置は、性能見積もりツール６０により補助制御部４３の状態管理部４３１を使用する場合と使用しない場合のデータ処理装置の処理性能をそれぞれ見積もり、該見積もり結果に基づき補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の処理性能の優劣を判定する。そして、その判定結果に応じて補助制御部４３の状態管理部４３１を使用するか否かを示す制御構成選択情報を合成ツール５０で生成した構成情報に付加する。【０２４７】
ここで、補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の処理性能の優劣の判定には、データ処理装置の１サイクルあたりの動作時間と、補助制御部４３の状態管理部４３１を使用する場合と使用しない場合に必要なサイクル数とを用いる。【０２４８】
まず、１サイクルあたりの動作時間の算出方法について説明する。【０２４９】
補助制御部４３の状態管理部４３１を使用する場合、基準となる１サイクルの処理時間を、図１５Ａの太い矢印で示した経路の処理に要する時間とする。この値を用いて状態遷移管理部３で制御する場合に要するサイクル数を決定する。【０２５０】
具体的には、図１５Ｂに示した、状態遷移管理部３で制御する場合に要する処理時間を、図１５Ａで示した経路の処理に要する時間で除算し、整数となるように繰り上げた値を算出する。次に、この値から「１」を減算することで、状態遷移管理部３で制御する場合に要するサイクル数であるオーバヘッドサイクル数を算出する。【０２５１】
一方、補助制御部４３の状態管理部４３１を使用しない場合は、基準となる１サイクルの時間を図１５Ｃの太い矢印で示した経路の処理に要する時間とする。【０２５２】
次に、図７に示した性能見積もりツール６０による性能見積もり方法について説明する。【０２５３】
上述した動作シミュレーション法によって所要のサイクル数を算出する場合、補助制御部４３の状態管理部４３１を使用しない場合のサイクル数は動作シミュレーションのサイクル数そのものの値となる。【０２５４】
また、補助制御部４３の状態管理部４３１を使用する場合のサイクル数は、状態遷移管理部３の制御で発生した状態遷移の回数と状態遷移管理部３の制御で状態が遷移する場合のオーバヘッドとの積に、動作シミュレーションのサイクル数を加算することで算出する。【０２５５】
一方、分岐確率計算法によってデータ処理装置の性能を見積もる場合、所要のサイクル数は比で表記する。例えば、補助制御部４３の状態管理部４３１を使用しない場合のサイクル数を「１」とすると、補助制御部４３の状態管理部４３１を使用する場合のサイクル数は、状態遷移管理部３の制御を必要とする状態遷移の発生確率と状態遷移管理部３により状態遷移を制御する場合のオーバヘッドの値との積に、「１」を加算することで算出する。【０２５６】
最後に、１サイクルあたりの動作時間と所要のサイクル数とを乗算し、アプリケーションに対応したデータ処理装置の処理に要する時間（以下、動作所要時間と称す）を求める。【０２５７】
性能見積もりツール６０は、補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の動作所要時間をそれぞれ算出し、動作所要時間がより短くなる制御構造（補助制御部４３の状態管理部４３１を使用するか否か）を決定し、該決定結果を基本制御構造とする制御構成選択情報を生成する。【０２５８】
ここで、構成情報単位で動作所要時間を検討すると、基本制御構造として採用していない制御構造の方がデータ処理装置の性能を向上させられる場合がある。例えば、基本制御構造として補助制御部４３の状態管理部４３１を使用しない制御構造を採用している場合は、ループ処理のように処理が長時間滞留する構成情報がある。また、基本制御構造として補助制御部４３の状態管理部４３１を使用する制御構造を採用している場合は、分岐条件にしたがって分岐処理を繰り返す、複数の状態を次々と遷移する構成情報がある。オブジェクトコードにこのような構成情報が存在する場合、合成ツール５０は対応する構成情報の制御構成選択情報を書き換える。【０２５９】
次に、図７に示したオブジェクトコード合成装置による、データ処理装置の処理性能の見積もり方法の具体例について説明する。【０２６０】
ここでは、図１５Ａに示した処理経路による動作所要時間が１０ｎｓ、図１５Ｂに示した処理経路による動作所要時間が１６ｎｓ、図１５Ｃに示した処理経路による動作所要時間が１３ｎｓであり、状態遷移管理部３の制御を必要とする状態遷移の発生確率が０．４であるとする。【０２６１】
上述したように、補助制御部４３の制御による状態遷移から状態遷移管理部３の制御による状態遷移へ変わるとき、状態遷移の制御には２サイクルを要するため、オーバヘッドのサイクル数は「１」となる。【０２６２】
ここで、補助制御部４３を使用しない場合のサイクル数を「１」とすると、補助制御部４３を使用する場合のサイクル数は（１＋０．４×１）＝１．４となる。【０２６３】
また、データ処理装置の動作所要時間は、補助制御部４３の状態管理部４３１を使用しない場合は１３×１＝１３ｎｓであり、補助制御部４３を使用する場合は１０×１．４＝１４ｎｓとなる。すなわち、動作所要時間は補助制御部４３の状態管理部４３１を使用しない方が短くなる。したがって、性能見積もりツール６０は、補助制御部４３の状態管理部４３１の不使用を基本制御構造とする。【０２６４】
次に、性能見積もりツール６０は、各構成情報に属する状態群（例えば図９に示した論理番号０のように複数の状態を備える構成情報）を単位に、状態遷移管理部３の制御を必要とする状態遷移の発生確率を計算する。この発生確率が０．３より小さくなる構成情報については、補助制御部４３の状態管理部４３１を使用する制御構造を採用する。【０２６５】
さらに、性能見積もりツール６０は、構成情報毎に動作周波数情報を付加する。上述したように、構成情報にしたがって演算部２内に構築される仮想的な回路の経路長（演算パス）は構成情報毎に異なるため、その遅延量は均一になるとは限らない。そのため、制御構成選択情報が同一の構成情報であっても動作周波数が異なることがある。【０２６６】
本実施例によれば、性能見積もりツール６０により補助制御部４３の状態管理部４３１を使用する場合と使用しない場合の処理性能を事前に見積もり、構成情報毎に最適な制御構造を示す制御構成選択情報を付加すると共に、その遅延量に応じた動作周波数を示す動作周波数情報を付加し、データ処理装置は、それらの情報にしたがって、制御情報毎に制御構造および動作周波数を選択して動作できる。したがって、第２実施例のデータ処理装置と比べて、より最適な動作周波数で演算処理を実行できるため、データ処理装置の処理に要する時間をより低減できる。【０２６７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細は本願発明のスコープ内で当業者が理解し得る様々な変更が可能である。【０２６８】
この出願は、２００８年１１月１４日に出願された特願２００８−２９２１２０号及び２００９年２月１８日に出願された特願２００９−０３５５４３号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2010055706.tif 000003
【図２】
2010055706.tif 000004
【図３】
2010055706.tif 000005
【図４】
2010055706.tif 000006
【図５】
2010055706.tif 000007
【図６】
2010055706.tif 000008
【図７】
2010055706.tif 000009
【図８】
2010055706.tif 000010
【図９】
2010055706.tif 000011
【図１０Ａ】
2010055706.tif 000012
【図１０Ｂ】
2010055706.tif 000013
【図１０Ｃ】
2010055706.tif 000014
【図１１】
2010055706.tif 000015
【図１２】
2010055706.tif 000016
【図１３Ａ】
2010055706.tif 000017
【図１３Ｂ】
2010055706.tif 000018
【図１３Ｃ】
2010055706.tif 000019
【図１４】
2010055706.tif 000020
【図１５Ａ】
2010055706.tif 000021
【図１５Ｂ】
2010055706.tif 000022
【図１５Ｃ】
2010055706.tif 000023
【国際調査報告】
2010055706.tif 000024
2010055706.tif 000025
2010055706.tif 000026
2010055706.tif 000027