(57)【要約】【課題】従来の集積回路では、処理要求のみを受け取るだけで当該処理の要求に対応する動作を行うことができなかった。【解決手段】所定の処理を要求することを示す処理要求情報に応じて動作を行うプログラマブル回路であって、要求された所定の処理に関する条件である処理要求条件と、所定の処理を行うための一連の動作を示す動作情報とを有する１以上の動作管理情報が格納される格納部と、処理要求情報を受け付ける受付部と、受付部が受け付けた処理要求情報が、格納部に格納されている１以上の処理要求条件のいずれに合致するか否かを判断し、合致する処理要求条件に対応する動作情報を格納部から取得する取得部と、取得部が取得した動作情報に従い動作を行う動作部とを具備するプログラマブル回路により、受け取った処理要求に対応する動作指示をリアルタイムに選択し、選択した動作指示に従い動作を行うことができる。【選択図】図１
2014134851.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を要求することを示す処理要求情報に応じて動作を行うプログラマブル回路であって、
要求された所定の処理に関する条件である処理要求条件と、所定の処理を行うための一連の動作を示す動作情報とを有する１以上の動作管理情報が格納される格納部と、
前記処理要求情報を受け付ける受付部と、
前記受付部が受け付けた処理要求情報が、前記格納部に格納されている１以上の処理要求条件のいずれに合致するか否かを判断し、合致する処理要求条件に対応する動作情報を前記格納部から取得する取得部と、
前記取得部が取得した動作情報に従い動作を行う動作部とを具備するプログラマブル回路。
【請求項２】
前記取得部は、
２以上の動作情報から１以上の動作情報を取得するための条件である選択条件が格納される格納手段と、
前記受付部が受け付けた処理要求情報が、前記格納部に格納されている２以上の処理要求条件のいずれに合致するか否かを判断し、合致する２以上の処理要求条件の各々に対応する２以上の動作情報を前記格納部から取得する取得手段と、
前記取得手段が取得した２以上の動作情報の各々が、前記選択条件に合致するか否かを判断し、合致する１以上の動作情報を取得する選択手段とを具備し、
前記動作部は、
前記選択手段が取得した１以上の動作情報の各々に従い動作を行う請求項１記載のプログラマブル回路。
【請求項３】
前記取得部は、
前記受付部が受け付けた処理要求情報が、前記格納部に格納されている２以上の処理要求条件のいずれに合致するか否かを判断し、合致する２以上の処理要求条件の各々に対応する２以上の動作情報を前記格納部から取得する取得手段を具備し、
前記動作部は、
前記取得手段が取得した２以上の動作情報の各々に従い動作を行い、当該行った各々の動作の結果を示す２以上の動作結果情報を取得し、
前記取得部は、
２以上の動作情報から１以上の動作情報を取得するための条件である選択条件が格納される格納手段と、
前記動作部が取得した２以上の動作結果情報の各々が、前記選択条件に合致するか否かを判断し、合致する１以上の動作結果情報の各々に対応する１以上の動作情報を、前記取得手段が取得した２以上の動作情報から取得する選択手段をさらに具備し、
前記動作部は、
前記選択手段が取得した１以上の動作情報の各々に従い動作を行う請求項１記載のプログラマブル回路。
【請求項４】
前記取得部は、
前記受付部が受け付けた処理要求情報が、前記格納部に格納されている２以上の処理要求条件のいずれに合致するか否かを判断し、合致する２以上の処理要求条件の各々に対応する２以上の動作情報を前記格納部から取得する取得手段と、
前記取得手段が取得した２以上の動作情報を結合し、１つの動作情報を取得する結合手段とを具備し、
前記動作部は、
前記結合手段が取得した１つの動作情報に従い動作を行う請求項１記載のプログラマブル回路。
【請求項５】
前記動作部は、
前記取得部が取得した動作情報に従い動作を行い、当該行った動作の結果を示す動作結果情報を取得し、
前記取得手段は、
前記受付部が受け付けた処理要求情報、および前記動作部が取得した動作結果情報が、前記格納部に格納されている１以上の処理要求条件のいずれに合致するか否かを判断し、合致する処理要求条件に対応する動作情報を前記格納部から取得する請求項２から請求項４いずれか記載のプログラマブル回路。
【請求項６】
前記取得部は、
前記取得手段が取得した動作情報を、前記受付部が受け付けた処理要求情報に応じて変更し、当該変更後の動作情報を取得する変更手段をさらに具備し、
前記動作部は、
前記変更手段が取得した動作情報に従い動作を行う請求項２から請求項５いずれか記載のプログラマブル回路。
【請求項７】
前記処理要求情報は、要求する処理において使用するパラメータを有し、
前記変更手段は、
前記取得手段が取得した動作情報の一部を、前記受付部が受け付けた処理要求情報が有するパラメータで置換し、当該置換後の動作情報を取得する請求項６記載のプログラマブル回路。
【請求項８】
前記処理要求情報は、要求する処理が完了する時間の条件である時間条件を有し、
前記変更手段は、
前記取得手段が取得した動作情報の一部を、前記受付部が受け付けた処理要求情報が有する時間条件を満たすように削除し、当該削除後の動作情報を取得する請求項６記載のプログラマブル回路。
【請求項９】
前記処理要求情報は、要求する処理の順序の条件である順序条件を有し、
前記変更手段は、
前記取得手段が取得した動作情報の順序を、前記受付部が受け付けた処理要求情報が有する順序条件を満たすように入れ替え、当該入れ替え後の動作情報を取得する請求項６記載のプログラマブル回路。
【請求項１０】
所定の処理を要求することを示す処理要求情報に応じて動作を行うための演算処理方法であり、
記録媒体に、
要求された所定の処理に関する条件である処理要求条件と、所定の処理を行うための一連の動作を示す動作情報とを有する１以上の動作管理情報が格納されており、
受付部と、取得部と、動作部とを用いて行われる演算処理方法であって、
前記受付部が、
前記処理要求情報を受け付ける受付ステップと、
前記取得部が、
前記受付部が受け付けた処理要求情報が、前記記録媒体に格納されている１以上の処理要求条件のいずれに合致するか否かを判断し、合致する処理要求条件に対応する動作情報を前記記録媒体から取得する取得ステップと、
前記動作部が、
前記取得部が取得した動作情報に従い動作を行う動作ステップとを具備する演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の指示に従い動作を行うプログラマブル回路等に関するものである。
【背景技術】
【０００２】
従来、アプリケーションプログラムに基づいて命令、および当該命令の実行に必要なデータを生成するプログラマブル回路（特許文献１参照）や、ＣＰＵやＡＳＩＣなど、所定の動作指示（命令）に応じた動作を行うプログラマブル回路（非特許文献１、非特許文献２参照）などが開発されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１２３５２０
【非特許文献】
【０００４】
【非特許文献１】“ＣＰＵとは”、［online］、IT用語辞典 e-Words、［２０１２年５月８日検索］、インターネット［URL；http://e-words.jp/w/CPU.html］
【非特許文献２】“ＡＳＩＣとは”、［online］、IT用語辞典 e-Words、［２０１２年５月８日検索］、インターネット［URL；http://e-words.jp/w/ASIC.html］
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のプログラマブル回路に与える動作指示（命令）は、通常、いわゆるソースコードをコンパイルして得られるオブジェクトコード（機械語）である。従来のプログラマブル回路は、通常、当該動作指示を、外部の回路（例えば、ＲＯＭやＲＡＭなど）から受け取り、受け取った動作指示に従い動作を行う。つまり、従来のプログラマブル回路を動作させるためには、動作指示を事前に作成しておく必要があった。言い換えると、動作指示を事前に作成しておくことができなければ、従来のプログラマブル回路を動作させることができなかった。また、動作指示は、通常、ユーザが作成するが、例えば、動作指示にバグが含まれていれば、これにより動作エラーが発生する。また、動作指示の作成に不慣れなユーザは、所望の処理を行うための動作指示の作成が困難な場合もある。また、例えば、動作指示に含まれているバグを修正したり、他のプログラマブル回路用に動作指示を作り直したりなど、動作指示を変更する場合は、ソースコードを変更し、コンパイルし直す必要があるため、動作指示をリアルタイムに変更することができない。
【０００６】
以上の様な課題を解決するために、例えば、プログラマブル回路に、所定の処理を行うための一連の動作を示す動作指示を２以上保持させ、外部からは処理要求のみを受け取り、当該処理要求に対応する動作指示に従い動作を行わせることが考えられる。しかしながら、従来のプログラマブル回路では、処理要求のみを受け取るだけで当該処理の要求に対応する動作を行うことができなかった。
【課題を解決するための手段】
【０００７】
本第一の発明のプログラマブル回路は、所定の処理を要求することを示す処理要求情報に応じて動作を行うプログラマブル回路であって、要求された所定の処理に関する条件である処理要求条件と、所定の処理を行うための一連の動作を示す動作情報とを有する１以上の動作管理情報が格納される格納部と、処理要求情報を受け付ける受付部と、受付部が受け付けた処理要求情報が、格納部に格納されている１以上の処理要求条件のいずれに合致するか否かを判断し、合致する処理要求条件に対応する動作情報を格納部から取得する取得部と、取得部が取得した動作情報に従い動作を行う動作部とを具備するプログラマブル回路である。
【０００８】
このような構成により、受け取った処理要求に対応する動作指示をリアルタイムに選択し、選択した動作指示に従い動作を行うことができる。
【０００９】
また、本第二の発明のプログラマブル回路は、第一の発明に対して、取得部は、２以上の動作情報から１以上の動作情報を取得するための条件である選択条件が格納される格納手段と、受付部が受け付けた処理要求情報が、格納部に格納されている２以上の処理要求条件のいずれに合致するか否かを判断し、合致する２以上の処理要求条件の各々に対応する２以上の動作情報を格納部から取得する取得手段と、取得手段が取得した２以上の動作情報の各々が、選択条件に合致するか否かを判断し、合致する１以上の動作情報を取得する選択手段とを具備し、動作部は、選択手段が取得した１以上の動作情報の各々に従い動作を行うプログラマブル回路である。
【００１０】
このような構成により、処理要求に対応する２以上の動作指示のうち、所定の条件を満たす動作指示を選択することができる。
【００１１】
また、本第三の発明のプログラマブル回路は、第一の発明に対して、取得部は、受付部が受け付けた処理要求情報が、格納部に格納されている２以上の処理要求条件のいずれに合致するか否かを判断し、合致する２以上の処理要求条件の各々に対応する２以上の動作情報を格納部から取得する取得手段を具備し、動作部は、取得手段が取得した２以上の動作情報の各々に従い動作を行い、行った各々の動作の結果を示す２以上の動作結果情報を取得し、取得部は、２以上の動作情報から１以上の動作情報を取得するための条件である選択条件が格納される格納手段と、動作部が取得した２以上の動作結果情報の各々が、選択条件に合致するか否かを判断し、合致する１以上の動作結果情報の各々に対応する１以上の動作情報を、取得手段が取得した２以上の動作情報から取得する選択手段をさらに具備し、動作部は、選択手段が取得した１以上の動作情報の各々に従い動作を行うプログラマブル回路である。
【００１２】
このような構成により、処理要求に対応する２以上の動作指示のうち、動作の結果が所定の条件を満たす動作指示を選択することができる。
【００１３】
また、本第四の発明のプログラマブル回路は、第一の発明に対して、取得部は、受付部が受け付けた処理要求情報が、格納部に格納されている２以上の処理要求条件のいずれに合致するか否かを判断し、合致する２以上の処理要求条件の各々に対応する２以上の動作情報を格納部から取得する取得手段と、取得手段が取得した２以上の動作情報を結合し、１つの動作情報を取得する結合手段とを具備し、動作部は、結合手段が取得した１つの動作情報に従い動作を行うプログラマブル回路である。
【００１４】
このような構成により、処理要求に対応する２以上の動作指示を結合することができる。
【００１５】
また、本第五の発明のプログラマブル回路は、第二から第四いずれかの発明に対して、動作部は、取得部が取得した動作情報に従い動作を行い、行った動作の結果を示す動作結果情報を取得し、取得手段は、受付部が受け付けた処理要求情報、および動作部が取得した動作結果情報が、格納部に格納されている１以上の処理要求条件のいずれに合致するか否かを判断し、合致する処理要求条件に対応する動作情報を格納部から取得するプログラマブル回路である。
【００１６】
このような構成により、過去の動作結果に対応する動作指示を取得することができる。
【００１７】
また、本第六の発明のプログラマブル回路は、第二から第五いずれかの発明に対して、取得部は、取得手段が取得した動作情報を、受付部が受け付けた処理要求情報に応じて変更し、変更後の動作情報を取得する変更手段をさらに具備し、動作部は、変更手段が取得した動作情報に従い動作を行うプログラマブル回路である。
【００１８】
このような構成により、処理要求に対応する動作指示を、当該処理要求に応じて変更することができる。
【００１９】
また、本第七の発明のプログラマブル回路は、第六の発明に対して、処理要求情報は、要求する処理において使用するパラメータを有し、変更手段は、取得手段が取得した動作情報の一部を、受付部が受け付けた処理要求情報が有するパラメータで置換し、置換後の動作情報を取得するプログラマブル回路である。
【００２０】
このような構成により、処理要求がパラメータを有する場合に、当該処理要求に対応する動作指示の一部を、当該パラメータにて置換することができる。
【００２１】
また、本第八の発明のプログラマブル回路は、第六の発明に対して、処理要求情報は、要求する処理が完了する時間の条件である時間条件を有し、変更手段は、取得手段が取得した動作情報の一部を、受付部が受け付けた処理要求情報が有する時間条件を満たすように削除し、削除後の動作情報を取得するプログラマブル回路である。
【００２２】
このような構成により、処理要求が処理時間の条件を有する場合に、当該処理要求に対応する動作指示の一部を、当該処理時間の条件を満たすように削除することができる。
【００２３】
また、本第九の発明のプログラマブル回路は、第六の発明に対して、処理要求情報は、要求する処理の順序の条件である順序条件を有し、変更手段は、取得手段が取得した動作情報の順序を、受付部が受け付けた処理要求情報が有する順序条件を満たすように入れ替え、入れ替え後の動作情報を取得するプログラマブル回路である。
【００２４】
このような構成により、処理要求が処理順序の条件を有する場合に、当該処理要求に対応する動作指示の一部を、当該処理順序の条件を満たすように入れ替えることができる。
【発明の効果】
【００２５】
本発明によるプログラマブル回路等によれば、受け取った処理要求に対応する動作指示をリアルタイムに選択し、選択した動作指示に従い動作を行うことができる。これにより、例えば、ユーザは、動作指示であるオブジェクトコードなどを事前に作成することなく、処理要求のみを与えるだけで、プログラマブル回路に所望の動作を行わせることができる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態１のプログラマブル回路１のブロック図
【図２】同プログラマブル回路１の全体動作について説明するフローチャート
【図３】同処理要求情報に応じた変更処理について説明するフローチャート
【図４】同動作管理情報の例を示す図
【図５】同動作情報の例を示す図
【図６】同動作情報の例を示す図
【図７】同回路構成例を示す図
【図８】同回路構成例を示す図
【発明を実施するための形態】
【００２７】
以下、本発明によるプログラマブル回路等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。また、所定の情報が格納され得る格納部等において、当該格納部に情報が記憶される過程は問わないものとする。例えば、記録媒体を介して情報が格納部等で記憶されるようになってもよい。また、通信回線などを介して送信された情報が格納部等で記憶されるようになってもよい。さらに、入力デバイスを介して入力された情報が格納部等で記憶されるようになってもよい。また、本実施の形態において説明する各情報の形式、内容などは、あくまで例示であり、各情報の持つ意味を示すことができれば、形式、内容などは問わない。
【００２８】
（実施の形態１）
本実施の形態において、処理要求に応じて動作するプログラマブル回路１であって、処理要求に対応する動作情報を選択し、当該動作情報に従い動作するプログラマブル回路１について説明する。
【００２９】
図１は、本実施の形態におけるプログラマブル回路１のブロック図である。プログラマブル回路１は、格納部１１、受付部１２、取得部１３、動作部１４を備える。また、取得部１３は、格納手段１３１、取得手段１３２、選択手段１３３、結合手段１３４、変更手段１３５を備える。なお、図１において、格納部１１、受付部１２、取得部１３、動作部１４は、通常、一体であるが、そうでなくてもよい。「一体である」とは、例えば、物理的に分離不可であることや、物理的に閉じられた１つの空間内にあること、１つの電子回路基板上に構成されていることなどを意味する。
【００３０】
また、格納部１１、受付部１２、取得部１３、動作部１４が一体である場合、本実施の形態におけるプログラマブル回路１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのいわゆるプロセッサと呼ばれる集積回路や、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）や、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのいわゆるＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）と呼ばれる集積回路などである。また、一体でない場合、本実施の形態におけるプログラマブル回路１は、例えば、ＣＰＵや記憶回路などの２以上の集積回路を備える回路や装置などである。
【００３１】
格納部１１には、後述の動作部１４が動作を行う際に用いる動作情報を管理する情報である１以上の動作管理情報が格納される。動作管理情報は、要求された処理に関する条件である処理要求条件と、所定の処理を行うための一連の動作を示す動作情報とを有する。処理要求条件は、通常、所定の処理を要求することを示す情報である処理要求情報に関する条件である。つまり、処理要求条件は、後述の受付部１２が受け付けた処理要求情報に対応する動作情報を取得するための条件である。また、処理要求条件は、後述の動作部１４が動作情報に従い行った動作の結果を示す動作結果情報に関する条件であってもよい。つまり、処理要求条件は、後述の動作部１４が動作情報に従い行った動作の結果に対応する動作情報を取得するための条件であってもよい。
【００３２】
処理要求情報は、例えば、処理の内容を示す処理内容情報や、当該処理の程度を示す処理程度情報、当該処理に用いるパラメータ、当該処理に要する時間を示す処理時間情報、処理により得られる結果の品質を示す処理結果品質情報などである。処理内容情報は、例えば、「高解像度化」や、「ノイズ除去」などである。処理程度情報は、例えば、「強」、「弱」、「大」、「小」などである。また、パラメータは、例えば、「８０％」や、「０．１」などである。また、処理時間情報は、例えば、「１μｓｅｃ」や、「０．５μｓｅｃ」などである。また、処理結果品質情報は、例えば、「高」や、「低」、「８０／１００」、「５０％」などである。
【００３３】
また、動作結果情報は、例えば、動作部１４が動作を行うことにより行った処理の内容を示す処理内容情報や、当該動作に要した時間を示す動作時間情報、当該動作により得られた結果の品質を示す動作結果品質情報などである。また、動作結果情報は、例えば、処理内容情報や、動作時間情報、動作結果品質情報などの統計量であってもよい。統計量とは、例えば、平均や分散などである。また、当該平均は、例えば、過去１０回の平均などである。なお、動作時間情報は、処理時間情報と同様である。また、動作結果品質情報は、処理結果品質情報と同様である。
【００３４】
つまり、処理要求条件は、例えば、処理内容情報に関する条件である処理内容条件や、処理程度情報に関する条件である処理程度条件、パラメータに関する条件であるパラメータ条件、処理時間情報に関する条件である処理時間条件、処理結果品質情報に関する条件である処理結果品質条件、動作時間情報に関する条件である動作時間条件、動作結果品質情報に関する条件である動作結果品質条件などである。処理内容条件は、例えば、「処理内容＝高解像度化」や、「処理内容＝高解像度化＆ノイズ除去」などである。また、処理程度条件は、例えば、「程度＝強」や、「程度＝弱＆強」などである。また、パラメータ条件は、例えば、「パラメータ＝１００」や、「ｐａｒａｍ＝０．８」などである。また、処理時間条件および動作時間条件は、例えば、「時間＜０．５μｓｅｃ」や、「０．１≦時間＜０．５μｓｅｃ」などである。また、処理結果品質条件および動作結果品質条件は、例えば、「品質≧８０」や、「６０≦品質＜８０」などである。
【００３５】
また、処理要求条件は、例えば、「処理要求情報または動作結果情報が、所定の情報を有すること」であってもよい。「所定の情報」とは、通常、上記の各種情報である。つまり、この場合の処理要求条件は、例えば、「処理要求情報が、処理内容情報を有すること」や、「処理要求情報が、処理内容情報「高解像度化」を有すること」などである。
【００３６】
また、動作情報は、通常、後述の動作部１４が行う動作を指示するための情報である。動作情報は、例えば、プログラムや、回路情報などである。プログラムは、通常、いわゆるオブジェクトコード（いわゆるバイナリ）であるが、例えば、アセンブリ言語で記述されたものなどであってもよい。つまり、プログラムは、ＣＰＵやＭＰＵなどのプロセッサが解釈し、解釈どおりに動作を行う（所定の処理を行う）ことができるものであれば、書式や形式などは問わない。また、回路情報とは、通常、いわゆるネットリストや、回路デザイン、コンフィギュレーション情報と呼ばれるものである。つまり、回路情報は、ＡＳＩＣやＦＰＧＡなどの集積回路が解釈し、解釈どおりに動作を行う（内部の回路構成を定義・変更する）ことができるものであれば、書式や形式などは問わない。
【００３７】
また、動作情報は、通常、２以上の命令の集合であるが、１つの命令であってもよい。また、当該命令は、指示であってもよい。また、動作情報は、２以上の動作情報の集合であってもよい。また、動作情報は、例えば、変数や、置換することを示す記号などを有していてもよい。また、動作情報は、動作情報を識別する識別子であってもよい。また、動作情報は、通常、機械語である。
【００３８】
また、動作管理情報は、動作情報の属性を示す動作属性情報を有していてもよい。動作属性情報は、例えば、動作情報に従った動作により行われる処理の内容を示す処理内容情報や、動作情報の優先順位を示す優先順位情報、動作情報に従った動作に要する時間を示す動作時間情報、動作情報に従い動作を行うことにより構成される回路の規模を示す回路規模情報、動作情報のサイズ（容量）を示すサイズ情報、当該動作により得られた結果の品質を示す動作結果品質情報、動作情報を解釈することができる回路を識別する回路識別子などである。
【００３９】
優先順位情報は、例えば、相対的な優先順位を示すものであってもよいし、絶対的な優先順位を示すものであってもよい。優先順位情報は、例えば、「高」や、「低」、「１位」、「１００」などである。また、回路規模情報は、例えば、回路数を示すものであってもよいし、回路の大きさを示すものであってもよい。回路規模情報は、例えば、「１０Ｍゲート」や、「大」、「小」などである。また、回路識別子は、例えば、「ＣＰＵ＿Ａ」や、「ＭＰＵ＿Ｘ」などである。なお、動作管理情報が有する動作情報などの各種情報の書式や形式などは、問わない。
【００４０】
受付部１２は、処理要求情報を受け付ける。受け付けとは、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体からの情報の取得や読み出しなどを含む概念である。また、受付部１２が受け付ける処理要求情報は、通常、処理内容情報や、処理程度情報などを、１以上有する。また、受付部１２は、処理要求情報が所定の条件（以下、処理要求判断条件）を満たすか否かを判断し、満たすと判断した処理要求情報のみを受け付けてもよい。当該処理要求判断条件は、通常、処理要求条件と同様である。また、この場合、処理要求判断条件は、通常、受付部１２が保持しているが、所定の記憶領域や任意の記憶領域などに格納されていてもよい。また、受付部１２は、処理要求条件を受け付けてもよい。この場合、受付部１２は、当該処理要求条件を、処理要求情報として受け付けてもよい。
【００４１】
取得部１３は、受付部１２が受け付けた処理要求情報が合致する処理要求条件に対応する１以上の動作情報を、格納部１１から取得する。「処理要求情報が合致する」とは、当該処理要求情報が処理要求条件を満たすことである。また、取得部１３は、通常、後述の各手段により、１以上の動作情報を取得する。従って、後述の各手段が取得した１以上の動作情報が、取得部１３が取得した動作情報となる。
【００４２】
また、例えば、受付部１２が処理要求条件を受け付けた場合、取得部１３は、当該処理要求条件に合致する動作属性情報に対応する１以上の動作情報を、格納部１１から取得してもよい。「処理要求条件に合致する」とは、動作属性情報が処理要求条件を満たすことである。つまり、取得部１３は、受付部１２が受け付けた処理要求情報または処理要求条件に対応する動作情報を、格納部１１から取得できればよく、その取得の方法や手順などは、問わない。
【００４３】
格納手段１３１には、選択条件が格納される。選択条件とは、２以上の動作情報から１以上の動作情報を取得するための条件である。また、選択条件は、通常、動作情報に関する条件であるが、具体的には、動作情報に対応付いている動作属性情報に関する条件である。選択条件は、例えば、優先順位に関する優先順位条件や、動作時間に関する条件である動作時間条件、回路規模に関する条件である回路規模条件などである。また、格納手段１３１には、通常、１または２以上の選択条件が格納される。
【００４４】
取得手段１３２は、受付部１２が受け付けた処理要求情報が合致する処理要求条件に対応する１または２以上の動作情報を取得する。この場合、取得手段１３２は、例えば、受付部１２が受け付けた処理要求情報を取得し、当該処理要求情報が、格納部１１に格納されている１以上の動作管理情報が有する処理要求条件のいずれに合致するか否かを判断する。そして、取得手段１３２は、合致すると判断した１または２以上の処理要求条件の各々に対応する動作情報を取得する。
【００４５】
また、取得手段１３２は、動作情報の取得の際に、動作結果情報を用いてもよい。この場合、取得手段１３２は、通常、受付部１２が受け付けた処理要求情報、または後述の動作部１４が取得した動作結果情報が、格納部１１に格納されている１以上の動作管理情報が有する処理要求条件のいずれに合致するか否かを判断する。そして、取得手段１３２は、合致すると判断した１または２以上の処理要求条件の各々に対応する動作情報を取得する。
【００４６】
例えば、処理要求情報が「高解像度化」であり、処理要求条件が「処理要求情報⊃処理内容情報」であるとする。当該処理要求情報は、高解像度化の処理を行うことを要求することを意味する。また、当該処理要求条件は、処理要求情報が処理内容情報を有することを意味する。この様な場合、取得手段１３２は、当該処理要求情報が当該処理要求条件に合致すると判断し、当該処理要求条件に対応する動作情報を、格納部１１から取得する。
【００４７】
また、例えば、処理要求情報が「高解像度化」であり、処理要求条件が「処理要求情報⊃処理時間情報」であるとする。当該処理要求条件は、処理要求情報が処理時間情報を有することを意味する。この様な場合、取得手段１３２は、当該処理要求情報が当該処理要求条件に合致しないと判断する。
【００４８】
また、例えば、処理要求情報が「ノイズ除去，弱」であり、処理要求条件が「処理内容＝ノイズ除去＆程度＝弱」であるとする。当該処理要求情報は、程度が「弱」であるノイズ除去の処理を行うことを要求することを意味する。また、当該処理要求条件は、処理要求情報が有する処理内容情報が「ノイズ除去」であり、かつ、「ノイズ除去」の程度が「弱」であることを意味する。この様な場合、取得手段１３２は、当該処理要求情報が当該処理要求条件に合致すると判断し、当該処理要求条件に対応する動作情報を、格納部１１から取得する。
【００４９】
また、例えば、処理要求情報が「高音質化，８０％」であり、動作結果情報が「０．５μｓｅｃ」であり、処理要求条件が「処理内容＝高音質化＆向上率≧８０％＆処理時間≦０．５μｓｅｃ」であるとする。当該処理要求情報は、向上率「８０％」で高音質化の処理を行うことを要求することを意味する。また、当該動作結果情報は、動作情報に従い動作した結果、動作に要した時間が「０．５μｓｅｃ」であったことを意味する。また、当該処理要求条件は、処理要求情報が有する処理内容情報が「高音質化」であり、かつ、処理要求情報が有する向上率（パラメータ）が「８０％」以上であり、処理時間（動作時間）が「０．５μｓｅｃ」以下であることを意味する。この様な場合、取得手段１３２は、当該処理要求情報および動作結果情報が当該処理要求条件に合致すると判断し、当該処理要求条件に対応する動作情報を、格納部１１から取得する。
【００５０】
また、受付部１２が処理要求条件を受け付けた場合、取得手段１３２は、通常、当該処理要求条件に合致する動作属性情報に対応する１または２以上の動作情報を取得する。この場合、取得手段１３２は、例えば、受付部１２が受け付けた処理要求条件を取得し、当該処理要求条件に、格納部１１に格納されている１以上の動作管理情報が有する動作属性情報のいずれが合致するか否かを判断する。そして、取得手段１３２は、合致すると判断した１または２以上の動作属性情報の各々に対応する動作情報を取得する。
【００５１】
例えば、処理要求条件が「処理内容＝高解像度化」であり、動作管理情報が有する動作属性情報が「処理内容：高画質化」であるとする。当該処理要求条件は、処理内容が「高画質化」であることを意味する。当該動作属性情報の意味も同様である。この様な場合、取得手段１３２は、当該処理要求条件に当該動作属性情報が合致すると判断し、当該動作属性情報に対応する動作情報を、格納部１１から取得する。
【００５２】
また、例えば、処理要求条件が「（処理時間≦０．１μｓｅｃ）＆（品質＝高）」であり、動作管理情報が有する動作属性情報が「処理時間：０．０５μｓｅｃ」と「品質：高」であるとする。当該処理要求条件は、処理時間が「０．１μｓｅｃ以下」であり、かつ、品質が「高」であることを意味する。また、当該動作属性情報は、処理時間が「０．０５μｓｅｃ」であり、かつ、品質が「高」であることを意味する。この様な場合、取得手段１３２は、当該処理要求条件に当該動作属性情報が合致すると判断し、当該動作属性情報に対応する動作情報を、格納部１１から取得する。
【００５３】
選択手段１３３は、取得手段１３２が２以上の動作情報を取得した場合に、当該２以上の動作情報のうちのいずれか１以上を選択し、取得する。この場合、選択手段１３３は、通常、取得手段１３２が取得した２以上の動作情報が、格納手段１３１に格納されている選択条件に合致するか否かを判断する。そして、選択手段１３３は、合致すると判断した１以上の動作情報を、当該２以上の動作情報から取得する。
【００５４】
選択条件は、例えば、優先順位に関する優先順位条件や、動作時間に関する条件である動作時間条件、回路規模に関する条件である回路規模条件などである。つまり、選択手段１３３は、取得手段１３２が取得した２以上の動作情報に対応付いている優先順位情報などの動作属性情報が、選択条件に合致するか否かを判断する。
【００５５】
また、選択手段１３３は、動作情報の取得の際に、動作結果情報を用いてもよい。当該動作結果情報は、通常、取得手段１３２が取得した２以上の動作情報の各々に対応する動作結果情報である。「動作情報に対応する動作結果情報」とは、後述の動作部１４が、当該動作情報に従い動作した結果を示す動作結果情報である。つまり、この場合、選択手段１３３は、通常、取得手段１３２が取得した２以上の動作情報の各々対応する動作結果情報を、後述の動作部１４から取得する。そして、選択手段１３３は、当該２以上の動作結果情報のいずれが選択条件に合致するか否かを判断する。そして、選択手段１３３は、合致すると判断した動作結果情報に対応する１以上の動作情報を、取得手段１３２が取得した２以上の動作情報から取得する。
【００５６】
なお、選択手段１３３は、通常、取得手段１３２が取得した２以上の動作情報から、１つの動作情報を取得することが好適である。また、動作情報に対応付いている動作属性情報や、動作結果情報が、選択条件に合致するか否かの判断の方法や手順などは、取得手段１３２による処理要求情報が処理要求条件に合致するか否かの判断の方法や手順などと同様であるので、説明を省略する。
【００５７】
結合手段１３４は、取得手段１３２が２以上の動作情報を取得した場合に、当該２以上の動作情報を結合し、１つの動作情報を生成する。「結合する」とは、通常、連結することであり、一の動作情報の後ろに、他の動作情報を繋げることである。また、「生成する」とは、生成した動作情報を取得することである。
【００５８】
また、２以上の動作情報の結合の順序は問わない。例えば、結合手段１３４は、取得手段１３２が当該２以上の動作情報を取得した順序や、当該２以上の各動作情報に対応する動作属性情報が示す順序に応じて、２以上の動作情報を結合してもよい。「動作属性情報が示す順序」とは、例えば、優先順位情報が示す優先順位の昇順や降順、動作時間情報が示す動作時間の昇順や降順、品質情報が示す品質の昇順や降順などである。
【００５９】
また、結合手段１３４は、選択手段１３３が２以上の動作情報を取得した場合に、当該２以上の動作情報を結合し、１つの動作情報を生成してもよい。
【００６０】
変更手段１３５は、取得手段１３２が取得した動作情報を、受付部１２が受け付けた処理要求情報に応じて変更し、変更後の動作情報を取得する。「処理要求情報に応じて」とは、通常、処理要求情報が有する各種情報に従うことである。また、「変更」とは、例えば、置換や、削除、順序の入れ替えなどである。
【００６１】
例えば、処理要求情報がパラメータを有する場合、変更手段１３５は、例えば、動作情報が有する所定の情報と、当該パラメータとを置換する。当該「所定の情報」とは、例えば、変数であるが、置換することを示す記号などであってもよい。
【００６２】
例えば、処理要求情報がパラメータ「ｒａｔｅ＝８０％」を有しており、動作情報が変数「＄ｒａｔｅ」を有しているとする。この様な場合、変更手段１３５は、当該変数「＄ｒａｔｅ」を、当該パラメータ「８０％」で置換する。
【００６３】
また、例えば、処理要求情報が処理時間情報を有する場合、変更手段１３５は、例えば、動作情報に従い動作を行った際の動作時間が、当該処理時間情報が示す処理時間以下になるように、動作情報が有する所定の情報を削除する。また、例えば、処理要求情報が処理時間条件を有する場合、変更手段１３５は、例えば、動作情報に従い動作を行った際の動作時間が、当該処理時間条件を満たすように、動作情報が有する所定の情報を削除する。これらの場合、変更手段１３５は、例えば、動作情報に対応する動作時間情報の合計が、当該処理時間情報以下になる、または当該処理時間条件を満たすまで、対応する動作時間情報が小さい順に、動作情報を削除する。また、この場合、変更手段１３５は、例えば、動作情報に対応する動作情報の合計が、当該処理時間情報以下になる、または当該処理時間条件を満たすまで、対応する優先順位情報が示す優先順位が低い順に、動作情報を削除してもよい。また、例えば、動作情報が有する１以上の各命令に優先順位情報が対応付いている場合、変更手段１３５は、優先順位情報が示す優先順位が低い順に、動作情報が有する命令を削除してもよい。
【００６４】
例えば、処理要求情報が処理時間情報「１．０μｓｅｃ」、または処理時間条件「時間≦１．０μｓｅｃ」を有しているとする。また、取得手段１３２が４つの動作情報（以下、動作情報Ａ、動作情報Ｂ、動作情報Ｃ、動作情報Ｄとする）を取得し、当該動作情報の各々に動作時間情報「０．５μｓｅｃ」、「０．２μｓｅｃ」、「０．１μｓｅｃ」、「０．３μｓｅｃ」が対応付いているとする。この様な場合、変更手段１３５は、まず、これら４つの動作時間情報の合計「１．１μｓｅｃ」を算出する。そして、変更手段１３５は、算出した動作時間情報の合計が、動作時間情報以下でないと判断し、まず、動作時間情報が最小である動作情報Ｃを削除する。そして、この結果、残った３つの動作時間情報の合計が「１．０μｓｅｃ」となり、処理時間情報以下となるため、変更手段１３５は、削除を終了する。
【００６５】
また、例えば、処理要求情報が処理の順序を示す処理順序情報を有する場合、変更手段１３５は、例えば、当該処理順序情報が示す順序で処理が行われるように、動作情報の順序を入れ替える。また、例えば、処理要求情報が処理の順序に関する条件である処理順序条件を有する場合、変更手段１３５は、例えば、当該処理順序条件を満たすように、動作情報の順序を入れ替える。
【００６６】
例えば、処理要求情報が、処理順序情報「高→低」、または処理順序条件「順序＝高→低」を有しているとする。当該処理順序情報、および当該処理順序条件は、優先順位情報が示す優先順位が高いものから順に、動作情報に従った動作を行うことを意味する。また、取得手段１３２が３つの動作情報（以下、動作情報Ａ、動作情報Ｂ、動作情報Ｃとする）を順に取得し、当該動作情報の各々に優先順位情報「１」、「３」、「２」が対応付いているとする。この様な場合、変更手段１３５は、当該優先順位情報が示す優先順位の順になるように、動作情報Ａ、動作情報Ｃ、動作情報Ｂの順に順序を入れ替える。
【００６７】
また、例えば、処理要求情報が、処理順序情報「動作情報Ｃ、動作情報Ｂ、動作情報Ａ」を有しているとする。当該処理順序情報は、「動作情報Ｃ」、「動作情報Ｂ」、「動作情報Ａ」の順に、動作情報に従った動作を行うことを意味する。また、取得手段１３２が３つの動作情報（以下、動作情報Ａ、動作情報Ｂ、動作情報Ｃとする）を順に取得したとする。この様な場合、変更手段１３５は、当該優先順位情報が示す順序になるように、動作情報Ｃ、動作情報Ｂ、動作情報Ａの順に順序を入れ替える。
【００６８】
また、変更手段１３５は、選択手段１３３が取得した動作情報、または結合手段１３４が取得した動作情報を変更してもよい。
【００６９】
なお、取得部１３は、上記の各手段を用いて、１または２以上の動作情報が取得できればよく、例えば、取得した２以上の動作情報からの１以上の動作情報の選択や、２以上の動作情報の結合、動作情報の変更などの処理の手順や、当該処理の有無などは、問わない。
【００７０】
動作部１４は、取得部１３が取得した動作情報に従い動作を行う。例えば、動作情報がプログラムである場合、動作部１４は、当該プログラムが有する命令を解釈し、当該命令に従った処理を行う。また、動作情報が回路情報である場合、動作部１４は、当該回路情報が有する命令を解釈し、当該命令に従い内部の回路構成の定義や、内部の回路構成の変更などを行う。また、動作部１４は、通常、取得部１３が取得した動作情報に従い動作を行った後、当該行った動作の結果を示す動作結果情報を取得する。なお、動作部１４が動作情報に従い動作を行う方法や手順などは、公知であるので、詳細な説明を省略する。
【００７１】
また、プログラマブル回路１が備える各部は、通常、ＡＳＩＣやＭＰＵなどの集積回路で実現され得る。また、プログラマブル回路１が備える各部がＭＰＵなどで実現され得る場合、処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。
【００７２】
また、格納部１１、格納手段１３１は、不揮発性の記録媒体で実現されることが好適であるが、揮発性の記録媒体で実現されてもよい。
【００７３】
また、受付部１２は、例えば、無線または有線の通信手段や、放送を受信する手段などで実現されてもよい。
【００７４】
次に、プログラマブル回路１の全体動作について、図２のフローチャートを用いて説明する。なお、所定の情報におけるｉ番目の情報は、「情報［ｉ］」と記載するものとする。また、図２のフローチャートにおいて、格納部１１には、ｍ個の動作管理情報が格納されているものとする。
【００７５】
（ステップＳ２０１）取得手段１３２は、受付部１２が処理要求情報を受け付けたか否かを判断する。受け付けた場合は、ステップＳ２０２に進み、そうでない場合は、ステップＳ２０１に戻る。
【００７６】
（ステップＳ２０２）取得手段１３２は、カウンタｉに１をセットする。
【００７７】
（ステップＳ２０３）取得手段１３２は、動作部１４が動作結果情報を取得済みであるか否かを判断する。取得済みである場合は、ステップＳ２０４に進み、そうでない場合は、ステップＳ２０５に進む。
【００７８】
（ステップＳ２０４）取得手段１３２は、ステップＳ２０１で受け付けた処理要求情報、および所定の記憶領域に格納されている動作結果情報が、格納部１１に格納されている動作管理情報［ｉ］が有する処理要求条件［ｉ］に合致するか否かを判断する。合致する場合は、ステップＳ２０６に進み、そうでない場合は、ステップＳ２０７に進む。
【００７９】
（ステップＳ２０５）取得手段１３２は、ステップＳ２０１で受け付けた処理要求情報が、格納部１１に格納されている動作管理情報［ｉ］が有する処理要求条件［ｉ］に合致するか否かを判断する。合致する場合は、ステップＳ２０６に進み、そうでない場合は、ステップＳ２０７に進む。
【００８０】
（ステップＳ２０６）取得手段１３２は、ステップＳ２０４またはステップＳ２０５で合致すると判断した処理要求条件［ｉ］に対応する動作情報［ｉ］を、格納部１１から取得する。
【００８１】
（ステップＳ２０７）取得手段１３２は、ｉがｍであるか否かを判断する。ｍである場合は、ステップＳ２０９に進み、そうでない場合は、ステップＳ２０８に進む。
【００８２】
（ステップＳ２０８）取得手段１３２は、ｉを１インクリメントし、ステップＳ２０３に戻る。
【００８３】
（ステップＳ２０９）選択手段１３３は、ステップＳ２０６で取得した動作情報が２以上であるか否かを判断する。ここで、ステップＳ２０６で取得した動作情報は、ｎ個であるものとする。そして、２以上である場合は、ステップＳ２１０に進み、そうでない場合は、ステップＳ２１７に進む。
【００８４】
（ステップＳ２１０）選択手段１３３は、カウンタｉに１をセットする。
【００８５】
（ステップＳ２１１）選択手段１３３は、ステップＳ２０６で取得した動作情報［ｉ］が、格納手段１３１に格納されている選択条件に合致するか否かを判断する。合致する場合は、ステップＳ２１２に進み、そうでない場合は、ステップＳ２１３に進む。
【００８６】
（ステップＳ２１２）選択手段１３３は、動作情報［ｉ］を取得する。
【００８７】
（ステップＳ２１３）選択手段１３３は、ｉがｎであるか否かを判断する。ｎである場合は、ステップＳ２１５に進み、そうでない場合は、ステップＳ２１４に進む。
【００８８】
（ステップＳ２１４）選択手段１３３は、ｉを１インクリメントし、ステップＳ２１１に戻る。
【００８９】
（ステップＳ２１５）結合手段１３４は、ステップＳ２１２で取得した動作情報が２以上であるか否かを判断する。２以上である場合は、ステップＳ２１６に進み、そうでない場合は、ステップＳ２１７に進む。
【００９０】
（ステップＳ２１６）結合手段１３４は、ステップＳ２１２で取得した動作情報を結合し、１つの動作情報を取得する。
【００９１】
（ステップＳ２１７）変更手段１３５は、ステップＳ２０６、またはステップＳ２１２、ステップＳ２１６で取得した動作情報を、ステップＳ２０１で受け付けた処理要求情報に応じて変更する。この処理の詳細は、図３のフローチャートを用いて説明する。
【００９２】
（ステップＳ２１８）動作部１４は、ステップＳ２１７で取得した動作情報に従い動作を行う。
【００９３】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理を終了してもよい。
【００９４】
図３は、図２のフローチャートのステップＳ２１７の処理要求情報に応じた変更処理を示すフローチャートである。
【００９５】
（ステップＳ３０１）変更手段１３５は、ステップＳ２０１で受け付けた処理要求情報が、パラメータを有するか否かを判断する。有する場合は、ステップＳ３０２に進み、そうでない場合は、ステップＳ３０３に進む。
【００９６】
（ステップＳ３０２）変更手段１３５は、変更の対象となる動作情報が有する記号を、処理要求情報が有するパラメータで置換する。当該記号とは、パラメータと置換することを示す記号（例えば、変数など）である。
【００９７】
（ステップＳ３０３）変更手段１３５は、ステップＳ２０１で受け付けた処理要求情報が、処理時間情報を有するか否かを判断する。有する場合は、ステップＳ３０４に進み、そうでない場合は、ステップＳ３０５に進む。
【００９８】
（ステップＳ３０４）変更手段１３５は、変更の対象となる動作情報に対応する動作時間情報の合計が、処理要求情報が有する処理時間情報以下になるように、動作情報を削除する。
【００９９】
（ステップＳ３０５）変更手段１３５は、ステップＳ２０１で受け付けた処理要求情報が、処理順序情報を有するか否かを判断する。有する場合は、ステップＳ３０６に進み、そうでない場合は、上位処理にリターンする。
【０１００】
（ステップＳ３０６）変更手段１３５は、変更の対象となる動作情報の順序が、処理要求情報が有する処理順序情報が示す順序に合うように、動作情報の順序を入れ替える。そして、上位処理にリターンする。
【０１０１】
なお、図３のフローチャートにおいて、ステップＳ３０１、ステップＳ３０３、ステップＳ３０５の判断の順序は、問わない。
【０１０２】
（具体例）
次に、プログラマブル回路１の動作の具体例について説明する。なお、本具体例において、格納部１１には、図４に示す動作管理情報が格納されているものとする。当該動作管理情報は、レコードを一意に特定するためのＩＤ（項目名：ＩＤ）と、処理要求条件（項目名：条件）と、動作情報（項目名：動作情報）と、優先順位情報（項目名：優先順位）と、動作時間情報（項目名：時間）と、回路規模情報（項目名：規模）と、品質情報（項目名：品質）と、回路識別子（項目名：識別子）とを有する。また、図４において、「［μｓｅｃ］」や、「［ｇａｔｅ］」は、それぞれ、時間情報、回路規模情報の単位である。また、図４において、動作情報は、動作情報を識別する識別子である。これらの識別子により識別される動作情報は、例えば、図５や、図６などであり、通常、格納部１１に格納されている。図５は、プログラムであり、図６は、回路情報である。また、図４において、「ＩＤ＝０１１」から「ＩＤ＝０１５」までの動作情報は、図５の様なプログラムであり、「ＩＤ＝０３１」から「ＩＤ＝０３５」までの動作情報は、図６の様な回路情報であるものとする。
【０１０３】
（例１）
本例において、動作部１４はＣＰＵであり、当該ＣＰＵを識別する回路識別子「ＣＰＵ＿Ａ」を保持しているものとする。
【０１０４】
まず、例えば、受付部１２が、処理要求情報「処理内容＝（高解像度化，ノイズ除去）」を受け付けたとする。当該処理要求情報は、高解像度化の処理と、ノイズ除去の処理とを行うための動作を要求することを意味する。すると、取得手段１３２は、当該処理要求情報が、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの処理要求条件に合致すると判断する。そして、取得手段１３２は、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの動作情報を取得する。このとき、取得手段１３２は、通常、当該動作情報に対応付いている優先順位情報などと共に取得する。
【０１０５】
次に、選択手段１３３は、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの４つの動作情報から、選択条件に合致する動作情報を取得する。ここで、選択条件が「処理時間≦０．３μｓｅｃ」であるとする。すると、選択手段１３３は、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの動作情報に対応付いている動作時間情報を用いて、選択条件に合致するか否かを判断し、図４の「ＩＤ＝０１１」は、選択条件に合致しないと判断し、「ＩＤ＝０１２」から「ＩＤ＝０１４」までは、選択条件に合致すると判断する。ここで、「ＩＤ＝０１３」と「ＩＤ＝０１４」の動作情報は、処理要求条件より、同一の処理を行うための動作情報であることがわかる。しかしながら、動作時間情報は、「ＩＤ＝０１４」の方が小さい。従って、選択手段１３３は、図４の「ＩＤ＝０１２」と「ＩＤ＝０１４」の動作情報を取得する。
【０１０６】
次に、結合手段１３４は、図４の「ＩＤ＝０１２」と「ＩＤ＝０１４」の動作情報を結合し、１つの動作情報を生成する。当該動作情報は、例えば、図５の様なプログラムである。そして、動作部１４は、結合手段１３４が作成した図５の様なプログラム中の命令を解釈し、当該命令どおりの動作を行う。
【０１０７】
また、例えば、受付部１２が、処理要求情報「処理内容＝（高解像度化，ノイズ除去）＆処理時間≦０．８μｓｅｃ」を受け付けたとする。当該処理要求情報は、高解像度化の処理と、ノイズ除去の処理とを、０．８μｓｅｃ以下で行うための動作を行うことを要求することを意味する。すると、取得手段１３２は、当該処理要求情報が、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの処理要求条件に合致すると判断する。そして、取得手段１３２は、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの動作情報を取得する。
【０１０８】
次に、変更手段１３５は、受付部１２が受け付けた処理要求情報が処理時間情報（以下、適宜、処理時間条件）を有しているので、取得手段１３２が取得した動作情報に対応する動作時間情報の合計が、当該処理時間条件に合致するように、動作情報を削除する。
【０１０９】
まず、図４の「ＩＤ＝０１１」から「ＩＤ＝０１４」までの動作時間情報の合計は、「１．１」である。従って、変更手段１３５は、当該４つの動作情報のうちの１つを削除すると判断する。ここで、当該４つの動作情報のうち、優先順位が一番低いのは、「ＩＤ＝０１４」の動作情報である。従って、変更手段１３５は、取得手段１３２が取得した動作情報から、「ＩＤ＝０１４」の動作情報を削除する。この結果、残った３つの動作情報に対応する動作時間情報の合計は、「１．０」となる。
【０１１０】
次に、変更手段１３５は、動作情報の合計が処理時間条件に合致しないと判断し、当該３つの動作情報のうちの１つを削除すると判断する。ここで、当該３つの動作情報のうち、優先順位が一番低いのは、「ＩＤ＝０１２」の動作情報である。従って、変更手段１３５は、残った３つの動作情報から、「ＩＤ＝０１２」の動作情報を削除する。この結果、残った２つの動作情報に対応する動作時間情報の合計は、「０．７」となる。従って、変更手段１３５は、動作情報の削除を終了する。
【０１１１】
次に、結合手段１３４は、図４の「ＩＤ＝０１１」と「ＩＤ＝０１３」の動作情報を結合し、１つの動作情報を生成する。当該動作情報は、例えば、図５の様なプログラムである。そして、動作部１４は、結合手段１３４が作成した図５の様なプログラム中の命令を解釈し、当該命令どおりの動作を行う。
【０１１２】
また、例えば、受付部１２が、処理要求情報「（高解像度化，強，９０％）＆（ノイズ除去，強，８０％）」を受け付けたとする。当該処理要求情報は、程度が「強」であり、パラメータ「９０％」を用いる高解像度化の処理と、程度が「強」であり、パラメータ「８０％」を用いるノイズ除去の処理とを行うための動作を要求することを意味する。すると、取得手段１３２は、当該処理要求情報の各々が、図４の「ＩＤ＝０１１」の処理要求条件と、図４の「ＩＤ＝０１３」の処理要求条件に合致すると判断する。そして、取得手段１３２は、図４の「ＩＤ＝０１１」と「ＩＤ＝０１３」の動作情報を取得する。
【０１１３】
次に、変更手段１３５は、図４の「ＩＤ＝０１１」の動作情報に含まれる変数を、当該動作情報を取得する際に用いた処理要求情報が有するパラメータ「９０％」で置換する。このとき、変更手段１３５は、例えば、変数「＄ｒａｔｅ」と、パラメータ「９０％」とを置換する。また、変更手段１３５は、上記と同様に、図４の「ＩＤ＝０１３」の動作情報に含まれる変数を、当該動作情報を取得する際に用いた処理要求情報が有するパラメータ「８０％」で置換する。
【０１１４】
次に、結合手段１３４は、パラメータでの置換後の、図４の「ＩＤ＝０１１」と「ＩＤ＝０１３」の動作情報を結合し、１つの動作情報を生成する。当該動作情報は、例えば、図５の様なプログラムである。そして、動作部１４は、結合手段１３４が作成した図５の様なプログラム中の命令を解釈し、当該命令どおりの動作を行う。
【０１１５】
また、例えば、受付部１２が、処理要求情報「高解像度化」を受け付けたとする。当該処理要求情報は、高解像度化の処理を行うための動作を要求することを意味する。すると、取得手段１３２は、当該処理要求情報が、図４の「ＩＤ＝０１１」と「ＩＤ＝０１２」の処理要求条件に合致すると判断する。そして、取得手段１３２は、図４の「ＩＤ＝０１１」と「ＩＤ＝０１２」の動作情報を取得する。
【０１１６】
次に、動作部１４は、取得手段１３２が取得した図４の「ＩＤ＝０１１」と「ＩＤ＝０１２」の動作情報の各々に従い動作を行う。そして、動作部１４は、当該動作の結果を示す動作結果情報を、所定の記憶領域に蓄積する。ここで、当該動作結果情報が、高解像度化の処理を行った画像の品質を示す画像品質情報であるとする。そして、図４の「ＩＤ＝０１１」に従い行った動作の結果を示す画像品質情報が、最高を「１００」としたときの「９５」であり、図４の「ＩＤ＝０１２」に従い行った動作の結果を示す画像品質情報が、最高を「１００」としたときの「８５」であるとする。
【０１１７】
次に、選択手段１３３は、図４の「ＩＤ＝０１１」と「ＩＤ＝０１２」の動作情報の各々に対応する画像品質情報「９５」と「８５」を比較し、「ＩＤ＝０１１」に対応する画像品質情報の方が高いと判断する。そして、選択手段１３３は、取得手段１３２が取得した図４の「ＩＤ＝０１１」と「ＩＤ＝０１２」の動作情報から、「ＩＤ＝０１１」の動作情報を取得する。
【０１１８】
次に、動作部１４は、選択手段１３３が取得した図４の「ＩＤ＝０１１」の動作情報に従い動作を行う。ここで、動作部１４は、既に、図４の「ＩＤ＝０１１」の動作情報に従い動作を行っている。従って、動作部１４は、図４の「ＩＤ＝０１１」の動作情報に従い既に行った動作を、自身が行った動作として採用する。
【０１１９】
（例２）
本例において、動作部１４はＦＰＧＡであり、当該ＦＰＧＡを識別する回路識別子「ＦＰＧＡ＿Ｘ」を保持しているものとする。
【０１２０】
まず、例えば、受付部１２が、処理要求情報「高解像度化」を受け付けたとする。すると、取得手段１３２は、当該処理要求情報が、図４の「ＩＤ＝０３１」と「ＩＤ＝０３４」の処理要求条件に合致すると判断する。また、取得手段１３２は、当該２つの動作管理情報のうち、動作部１４が保持する回路識別子「ＦＰＧＡ＿Ｘ」が、「ＩＤ＝０３１」の回路識別子に合致すると判断する。そして、取得手段１３２は、図４の「ＩＤ＝０３１」の動作情報を取得する。
【０１２１】
次に、動作部１４は、取得手段１３２が取得した動作情報に従い動作を行う。当該動作情報は、図６の様な回路情報である。従って、動作部１４は、図６の様な回路情報中の命令を解釈し、当該命令どおりに自身の内部回路の構成を定義する。
【０１２２】
なお、本例において、取得手段１３２が２以上の動作情報を取得する例や、当該２以上の動作情報を結合する例などは、例１と同様であるので、説明を省略する。
【０１２３】
（例３）
図７は、プログラマブル回路１の回路構成例を示す図である。図７において、プログラマブル回路１は、プログラムジェネレート回路２２、ＭＰＵ＿Ａ２６、ＭＰＵ＿Ｂ２７、専用論理回路＿Ｃ２８を備える。当該２つのＭＰＵは、命令セットを含めたプログラムコードの形式が異なっていてもよい。また、図７において、２１は、処理要求情報の例（以下、処理要求情報２１）である。当該処理要求情報２１は、程度が「高」である高解像度化の処理と、程度が「弱」であるノイズ除去の処理を行うための動作を要求することを意味する。また、プログラムコードＡ２３、プログラムコードＢ２４、プログラムコードＣ２５は、動作情報である。また、２９は、プログラムコードＡの例である。また、プログラムジェネレート回路２２は、受付部１２と、取得部１３に相当する。また、ＭＰＵ＿Ａ２６、ＭＰＵ＿Ｂ２７、専用論理回路＿Ｃ２８の各々は、動作部１４に相当する。また、プログラムジェネレート回路２２は、通常、格納部１１に相当するメモリ（図示せず）を備える。
【０１２４】
プログラムジェネレート回路２２には、処理要求情報２１の様な処理要求情報が入力される。そして、プログラムジェネレート回路２２は、入力された処理要求情報が合致する処理要求条件に対応する動作情報を、自身が備えるメモリから取得する。図７において、プログラムジェネレート回路２２は、処理要求情報２１が合致する処理要求条件に対応する動作情報であり、ＭＰＵ＿Ａ２６、ＭＰＵ＿Ｂ２７、専用論理回路＿Ｃ２８の各々の回路（当該回路を識別する回路識別子）に対応する合計３つの動作情報を取得する。そして、プログラムジェネレート回路２２は、ＭＰＵ＿Ａ２６に対応する動作情報として、プログラムコードＡ２３を取得し、ＭＰＵ＿Ｂ２７に対応する動作情報として、プログラムコードＢ２４を取得し、専用論理回路＿Ｃ２８に対応する動作情報として、プログラムコードＣ２５を取得する。そして、プログラムジェネレート回路２２は、取得した３つの動作情報について、プログラムコードＡ２３はＭＰＵ＿Ａ２６に送信し、プログラムコードＢ２４はＭＰＵ＿Ｂ２７に送信し、プログラムコードＣ２５は専用論理回路＿Ｃ２８に送信する。
【０１２５】
ＭＰＵ＿Ａ２６、ＭＰＵ＿Ｂ２７、専用論理回路＿Ｃ２８の各々は、プログラムジェネレート回路２２から動作情報を受信すると、受信した動作情報に従い動作を行う。図７において、ＭＰＵ＿Ａ２６、およびＭＰＵ＿Ｂ２７は、程度が「高」である高解像度化の処理と、程度が「弱」であるノイズ除去の処理を行う。また、専用論理回路＿Ｃ２８は、程度が「高」である高解像度化の処理と、程度が「弱」であるノイズ除去の処理を行うための内部回路の構成を定義する。
【０１２６】
（例４）
図８は、格納部１１、受付部１２、取得部１３の回路構成例であるプログラムジェネレート回路３を示す図である。プログラムジェネレート回路３は、テンプレートテーブル３４、２つのテンプレート選択回路３５、２つのテンプレート置換回路３６、２つのテンプレート削除回路３７、テンプレート結合回路３８を備える。また、図７において、処理方式３１、処理パラメータ３２、処理時間３３は、動作情報である。また、テンプレートテーブル３４は、格納部１１に相当する。また、テンプレート選択回路３５は、受付部１２、格納手段１３１、取得手段１３２、選択手段１３３に相当する。また、テンプレート置換回路３６、テンプレート削除回路３７は、受付部１２、変更手段１３５に相当する。また、テンプレート結合回路３８は、結合手段１３４に相当する。
【０１２７】
テンプレート選択回路３５には、処理方式３１が入力される。当該処理方式は、処理内容情報に相当する。そして、テンプレート選択回路３５は、テンプレートテーブル３４に格納されている１以上の動作情報から、入力された処理方式３１に対応する動作情報を取得する。このとき、図８において、テンプレート選択回路３５の各々は、通常、１つの動作情報を取得する。そして、テンプレート選択回路３５は、取得した動作情報を、テンプレート置換回路３６に送信する。
【０１２８】
テンプレート置換回路３６には、処理パラメータ３２と、テンプレート選択回路３５が取得した動作情報とが入力される。そして、テンプレート置換回路３６は、入力された動作情報中の処理パラメータに相当する箇所を、入力された処理パラメータ３２で置換する。そして、テンプレート置換回路３６は、処理パラメータ３２での置換後の動作情報を、テンプレート削除回路３７に送信する。
【０１２９】
テンプレート削除回路３７には、処理時間３３と、テンプレート置換回路３６が取得した動作情報とが入力される。そして、テンプレート削除回路３７は、入力された処理時間３３が示す時間内に処理が完了するように、入力された動作情報から、優先順位の低い命令を、順に削除していく。このとき、入力された動作情報が有する各命令には、通常、優先順位情報と、処理時間情報とが対応付いている。また、当該処理時間情報は、実際の処理時間ではなく、削除するか否かを判断するための目安となる処理時間であってもよい。そして、テンプレート削除回路３７は、命令を削除するたびに、処理時間情報の合計を算出し、当該合計が、入力された処理時間３３以下であるか否かを判断する。そして、テンプレート削除回路３７は、処理時間情報の合計が、入力された処理時間３３以下になれば、削除を終了する。そして、テンプレート削除回路３７は、命令を削除後の動作情報を、テンプレート結合回路３８に送信する。
【０１３０】
テンプレート結合回路３８には、テンプレート削除回路３７の各々が取得した２つの動作情報が入力される。そして、テンプレート結合回路３８は、入力された２つの動作情報を結合し、当該動作情報を、例えば、動作部１４に相当する回路に送信する。
【０１３１】
以上、本実施の形態によるプログラマブル回路１によれば、受け取った処理要求に対応する動作指示をリアルタイムに選択し、選択した動作指示に従い動作を行うことができる。これにより、例えば、ユーザは、動作指示であるオブジェクトコードなどを事前に作成することなく、処理要求のみを与えるだけで、プログラマブル回路に所望の動作を行わせることができる。
【０１３２】
なお、本実施の形態において、プログラマブル回路１は、２以上の動作部１４を備えていてもよい。この場合、２以上の各動作部１４は、通常、回路識別子を保持している。また、この場合、取得部１３は、通常、当該回路識別子の各々に対応する２以上の動作情報を取得する。例えば、プログラマブル回路１が２つの動作部１４を備えており、当該動作部１４の各々が、回路識別子「回路Ａ」、「回路Ｂ」を保持しているとする。この様な場合、取得部１３は、通常、受付部１２が受け付けた処理要求情報が合致する処理要求条件に対応する動作情報であり、回路識別子「回路Ａ」、「回路Ｂ」の各々が対応付いた２以上の動作情報を取得する。
【０１３３】
また、本実施の形態において、格納部１１に格納されている動作管理情報は、通常、変更が可能である。これにより、動作管理情報の追加や、動作管理情報の削除、動作管理情報の修正（更新）などを行うことができる。
【０１３４】
また、本実施の形態において、取得部１３は、受付部１２が一の処理要求情報を受け付けるたびに、当該一の処理要求情報に対応する動作情報を、格納部１１から取得する。このとき、取得部１３は、通常、当該一の処理要求情報に対応する１または２以上の動作情報を取得する。
【０１３５】
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよいし、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【０１３６】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよいし、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
【０１３７】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１３８】
以上のように、本発明にかかるプログラマブル回路は、受け取った処理要求に対応する動作指示をリアルタイムに選択し、選択した動作指示に従い動作を行うことができる。これにより、例えば、ユーザは、動作指示であるオブジェクトコードなどを事前に作成することなく、処理要求のみを与えるだけで、プログラマブル回路に所望の動作を行わせることができるという効果を有し、ＣＰＵやＭＰＵなどのプロセッサ等として有用である。
【符号の説明】
【０１３９】
１  プログラマブル回路
１１  格納部
１２  受付部
１３  取得部
１４  動作部
１３１  格納手段
１３２  取得手段
１３３  選択手段
１３４  結合手段
１３５  変更手段
【図１】
2014134851.tif 000003
【図２】
2014134851.tif 000004
【図３】
2014134851.tif 000005
【図４】
2014134851.tif 000006
【図５】
2014134851.tif 000007
【図６】
2014134851.tif 000008
【図７】
2014134851.tif 000009
【図８】
2014134851.tif 000010