(57)【特許請求の範囲】
【請求項１】
各々に割り当てられたデータ処理を実行するデバイスごとに、当該デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶するコンフィグデータ記憶手段と、
処理性能の高低に応じてコンフィグデータを割り当てるデバイスの優先順位を記憶する優先順位テーブルと、
前記コンフィグデータ記憶手段から、各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各デバイスにそれぞれ入力して、各デバイスに論理回路を設計する論理回路設計手段と、
前記論理回路設計手段によって論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する総消費電力測定手段と、
前記論理回路設計手段によって設計された論理回路の組合せのうち、前記総消費電力測定手段によって測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、前記優先順位テーブルにおいて優先順位の高いデバイスに処理性能の高いコンフィグデータを割り当てて最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する論理回路決定手段と、
を備えたことを特徴とするデータ処理装置。 
【請求項２】
前記優先順位テーブルは、各デバイスにそれぞれ入力されるコンフィグデータの組合せを特定するための組合せ情報にそれぞれ対応付けて、ユーザによって予め設定された処理性能が良い順番を示す優先順位をさらに記憶し、
前記論理回路設計手段は、前記優先順位テーブルに記憶されている組合せ情報を処理性能が良い順番に参照し、各デバイスにそれぞれ入力される各コンフィグデータを前記コンフィグデータ記憶手段から読み込んで、各デバイスに論理回路を設計し、
前記総消費電力測定手段は、前記論理回路設計手段によって各デバイスに論理回路が設計されるごとに総消費電力を測定し、
論理回路決定手段は、前記総消費電力測定手段によって総消費電力が測定されるごとに、総消費電力の実測値が総消費電力の目標値内であるか否かを判定し、総消費電力の実測値が総消費電力の目標値内である旨の判定結果を得た場合には、前記論理回路設計手段によって設計された論理回路の組合せをデータ処理を実際に実行するときに各デバイス上に設計される論理回路として決定し、総消費電力の実測値が総消費電力の目標値内でない旨の判定結果を得た場合には、前記論理回路設計手段によって参照される組合せ情報を前記優先順位テーブルにおいて処理性能が良い順番を示す優先順位が一位低い組合せ情報に変更することを特徴とする請求項１に記載のデータ処理装置。 
【請求項３】
各々に割り当てられたデータ処理を実行するデバイスごとに、当該デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶部に記憶するコンフィグデータ記憶ステップと、
前記コンフィグデータ記憶ステップによって記憶部に記憶された情報から、各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各デバイスにそれぞれ入力して、各デバイスに論理回路を設計する論理回路設計ステップと、
前記論理回路設計ステップによって論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する総消費電力測定ステップと、
前記論理回路設計ステップによって設計された論理回路の組合せのうち、前記総消費電力測定ステップによって測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、処理性能の高低に応じてコンフィグデータを割り当てるデバイスの優先順位を記憶する優先順位テーブルにおいて優先順位の高いデバイスに処理性能の高いコンフィグデータを割り当てて最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する論理回路決定ステップと、
をコンピュータが実行することを特徴とするデータ処理方法。
【請求項４】
各々に割り当てられたデータ処理を実行するデバイスごとに、当該デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶部に記憶するコンフィグデータ記憶手順と、
前記コンフィグデータ記憶手順によって記憶部に記憶された情報から、各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各デバイスにそれぞれ入力して、各デバイスに論理回路を設計する論理回路設計手順と、
前記論理回路設計手順によって論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する総消費電力測定手順と、
前記論理回路設計手順によって設計された論理回路の組合せのうち、前記総消費電力測定手順によって測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、処理性能の高低に応じてコンフィグデータを割り当てるデバイスの優先順位を記憶する優先順位テーブルにおいて優先順位の高いデバイスに処理性能の高いコンフィグデータを割り当てて最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する論理回路決定手順と、
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理装置、データ処理方法およびデータ処理プログラムに関する。
【背景技術】
【０００２】
従来より、データ処理を実行する複数のデバイスを集積化したパッケージ（ＰＫＧ）には、デバイスにＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を適用することで、各デバイスに設計される論理回路の再設計（再コンフィグ）を可能にしたものがある。
【０００３】
このパッケージは、パッケージが利用可能な総電力の内で、最良のデータ処理性能が発揮できるように、総電力をデバイスごとに割り当てる、言い換えると、デバイスごとに消費する消費電力を最適化する必要がある。そのため、従来のパッケージは、パッケージの開発者によって、以下に説明するような開発フローに基づいて開発および製造される。
【０００４】
まず、開発者は、デバイスごとに、デバイスに設計される論理回路を示したコンフィグデータを作成し、各論理回路が設計されたデバイスが動作したときに消費される消費電力を予め計測しておく。そして、開発者は、各デバイスによって消費される消費電力の合計（総消費電力）が、パッケージが利用可能な総電力の大きさとして予め設定されている目標電力値内で、目標電力値に近似することを確認する。
【０００５】
その後、開発者は、各デバイスに論理回路が設計されたテスト機（評価用パッケージ）を製造し、このテスト機によるデータ処理によって消費される総消費電力を実際に測定し、測定して得られた総消費電力の実測値が目標電力値内で、目標電力値に近似するか否かをテストする。
【０００６】
ここで、開発者は、「総消費電力の実測値が、目標電力値よりも大幅に少ない」旨のテスト結果を得た場合には、総消費電力の実測値が目標電力値に近づくように、テスト機の所定のデバイスに設計される論理回路をデータ処理性能が良い論理回路に変更する。そして、開発者は、論理回路が変更されたテスト機を製造して再びテストする。
【０００７】
一方では、開発者は、「総消費電力の実測値が、目標電力値よりも多い」旨のテスト結果を得た場合には、総消費電力の実測値が目標電力値内に収まるように、テスト機の所定のデバイスに設計される論理回路をデータ処理性能が悪い論理回路に変更する。そして、開発者は、論理回路が変更されたテスト機を製造して再びテストする。
【０００８】
このような試行錯誤を経て、開発者は、「総消費電力の実測値が目標電力値内で、目標電力値に近似する」旨のテスト結果を得た場合に、このテスト機を実機として製造する。
【０００９】
なお、パッケージやデバイスに発生する温度に基づいて、パッケージが実際にデータ処理を実行している最中に、デバイスに設計される論理回路を変更する発明もある（特許文献１および２参照）。しかしながら、この発明は、そもそも、総消費電力を実際に測定していないので、最大のデータ処理性能が得られるように、デバイスごとに消費する消費電力を最適化することができていなかった。
【００１０】
【特許文献１】特開２００６−２４４４２９号公報
【特許文献２】特開２００４−０２２７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、従来のパッケージには、パッケージの開発に手間および作業コストがかかるという課題があった。すなわち、従来のパッケージは、設計を変更するデバイスを選択し、設計を変更した別のテスト機を製造して再びテストするという試行錯誤をパッケージの開発者が行わなければならないので、パッケージの開発に手間がかかるという問題点があった。そして、従来のパッケージは、パッケージの開発に手間がかかるため、パッケージの開発に作業コストがかかるという問題点もあった。
【００１２】
そこで、このデータ処理装置、データ処理方法およびデータ処理プログラムは、上述した従来技術の課題を解決するためになされたものであり、パッケージの開発にかかる手間および作業コストを省くことが可能なデータ処理装置、データ処理方法およびデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、開示のデータ処理装置は、各々に割り当てられたデータ処理を実行するデバイスごとに、当該デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶するコンフィグデータ記憶手段と、前記コンフィグデータ記憶手段から、各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各デバイスにそれぞれ入力して、各デバイスに論理回路を設計する論理回路設計手段と、前記論理回路設計手段によって論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する総消費電力測定手段と、前記論理回路設計手段によって設計された論理回路の組合せのうち、前記総消費電力測定手段によって測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する論理回路決定手段とを備えることを要する。
【００１４】
また、開示のデータ処理方法は、各々に割り当てられたデータ処理を実行するデバイスごとに、当該デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶部に記憶するコンフィグデータ記憶ステップと、前記コンフィグデータ記憶ステップによって記憶部に記憶された情報から、各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各デバイスにそれぞれ入力して、各デバイスに論理回路を設計する論理回路設計ステップと、前記論理回路設計ステップによって論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する総消費電力測定ステップと、前記論理回路設計ステップによって設計された論理回路の組合せのうち、前記総消費電力測定ステップによって測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する論理回路決定ステップとを含むことを要する。
【００１５】
また、開示のデータ処理プログラムは、各々に割り当てられたデータ処理を実行するデバイスごとに、当該デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶部に記憶するコンフィグデータ記憶手順と、前記コンフィグデータ記憶手順によって記憶部に記憶された情報から、各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各デバイスにそれぞれ入力して、各デバイスに論理回路を設計する論理回路設計手順と、前記論理回路設計手順によって論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する総消費電力測定手順と、前記論理回路設計手順によって設計された論理回路の組合せのうち、前記総消費電力測定手順によって測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する論理回路決定手順とをコンピュータに実行させることを要する。
【発明の効果】
【００１６】
開示のデータ処理装置、データ処理方法およびデータ処理プログラムによれば、パッケージの開発にかかる手間および作業コストを省くことが可能である。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明に係るデータ処理装置、データ処理方法およびデータ処理プログラムの実施例を詳細に説明する。なお、以下では、例えば、ＧＰＯＮ装置（Ｇｉｇａｂｉｔ ｃａｐａｂｌｅ ｐａｓｓｉｖｅ ｏｐｔｉｃａｌ ｎｅｔｗｏｒｋｓ）に搭載されるパッケージ（データ処理装置）を実施例として説明する。
【実施例１】
【００１８】
以下の実施例１では、実施例１に係るパッケージの概要、パッケージの構成、パッケージの処理の流れを順に説明し、最後に実施例１の効果を説明する。
【００１９】
［実施例１に係るパッケージの概要］
まず最初に、図１を用いて実施例１に係るパッケージの概要を説明する。図１は、実施例１に係るパッケージの概要を説明するための図である。
【００２０】
実施例１に係るパッケージは、データをデータ処理することを概要とし、パッケージの開発に手間および作業コストを省く。
【００２１】
すなわち、実施例１に係るパッケージは、各々に割り当てられたデータ処理を実行するデバイスを有するブロックごとに、デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶する。
【００２２】
このような前提の下、実施例１に係るパッケージは、処理性能が異なる各コンフィグデータ内、一のコンフィグデータをブロックごとに読み込み、読み込んだ各コンフィグデータを各ブロックにそれぞれ入力して、各ブロックが有するデバイスに論理回路を設計する。
【００２３】
続いて、実施例１に係るパッケージは、論理回路が設計された各デバイスがデータ処理を実行した際に要する総消費電力を測定する。
【００２４】
そして、実施例１に係るパッケージは、設計された論理回路の組合せのうち、測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する。
【００２５】
図１を用いて、具体的に説明すると、実施例１に係るパッケージは、ブロック１に入力されるコンフィグデータ「Ａ」および「Ｂ」、ブロック２に入力されるコンフィグデータ「Ｃ」および「Ｄ」を記憶している。なお、コンフィグデータ「Ａ」には、コンフィグデータ「Ｂ」よりもデータ処理性能が良い論理回路が示されており、コンフィグデータ「Ｃ」には、コンフィグデータ「Ｄ」よりもデータ処理性能が良い論理回路が示されている。
【００２６】
このような前提の下、実施例１に係るパッケージは、例えば、コンフィグデータ「Ａ」をブロック１に入力するとともに、コンフィグデータ「Ｃ」をブロック２に入力して各ブロックのデバイスに論理回路を設計させて総消費電力を測定して、総消費電力が目標値内に収まっているか否かを判定する。
【００２７】
また、実施例１に係るパッケージは、例えば、コンフィグデータ「Ｂ」をブロック１に入力するとともに、コンフィグデータ「Ｄ」をブロック２に入力して各ブロックのデバイスに論理回路を設計させて総消費電力を測定して、総消費電力が目標値内に収まっているか否かを判定する。
【００２８】
そして、実施例１に係るパッケージは、コンフィグデータ「Ａ」および「Ｃ」が入力されて論理回路が設計された各デバイスによる総消費電力が目標値内に収まっている旨の判定結果を得たものとする。この場合には、実施例１に係るパッケージは、コンフィグデータ「Ａ」および「Ｃ」を入力して各デバイスに設計される論理回路を、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する。
【００２９】
また、実施例１に係るパッケージは、コンフィグデータ「Ａ」および「Ｃ」が入力されて設計された各デバイスによる総消費電力が目標値内に収まっておらず、コンフィグデータ「Ｂ」および「Ｄ」が入力されて設計された各デバイスによる総消費電力が目標値内に収まっている旨の判定結果を得たものとする。この場合には、実施例１に係るパッケージは、コンフィグデータ「Ｂ」および「Ｄ」を入力して各デバイスに設計される論理回路を、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する。
【００３０】
このようなことから、実施例１に係るパッケージは、パッケージの開発に手間および作業コストを省くことが可能である。例えば、実施例１に係るパッケージは、目標とする消費電力内で最大の性能を発揮する組合せを自動設定することができるため、パッケージの開発に手間および作業コストを省くことが可能である。
【００３１】
［パッケージの構成］
次に、図２〜図６を用いて、図１に示したパッケージの構成を説明する。図２は、パッケージの構成を示すブロック図である。図３は、ＲＯＭに記憶される情報の一例を示した図である。図４は、優先順位テーブルに記憶される情報の一例を示した図である。図５は、電流測定部が有する回路の構成の一例を示した図である。図６は、全体制御部による制御を説明するための図である。
【００３２】
図２に示すように、このパッケージ１０は、ブロック１〜８と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０と、優先順位テーブル３０と、電流測定部４０と、全体制御部５０とを有する。
【００３３】
このうち、ブロック１〜８は、論理回路の再構成が可能なデバイス（例えば、ＦＰＧＡ）をそれぞれ有し、各々に割り当てられたデータ処理をデバイスに設計された論理回路によって実行する。
【００３４】
ＲＯＭ２０は、データおよびプログラムを記憶する記憶媒体に相当し、特に、デバイスごとに、デバイス上に設計されたときに発揮する処理性能が異なる論理回路がそれぞれ示されたコンフィグデータを記憶する。
【００３５】
具体的に一例をあげて説明すると、ＲＯＭ２０は、図３に示すように、ブロック１〜８ごとに、処理性能が良いコンフィグデータ（例えば、「Ａ」）と、処理性能が悪いコンフィグデータ（例えば、「Ｂ」）とを記憶する。
【００３６】
優先順位テーブル３０は、各デバイスにそれぞれ入力されるコンフィグデータの組合せを特定するための組合せ情報にそれぞれ対応付けて、ユーザによって予め設定された処理性能が良い順番を示す優先順位を記憶する。具体的に一例をあげて説明すると、優先順位テーブル３０は、図４に示すように、優先順位（大、中、もしくは、小）ごとに、各優先順位に属するブロック１〜８を記憶する。
【００３７】
そして、優先順位テーブル３０は、処理性能が良い順番を示す優先順位テーブル番号に対応付けて、組合せ情報を記憶する。
【００３８】
ここで、組合せ情報について説明すると、例えば、優先順位テーブル番号「Ｎｏ．３」に対応する組合せ情報は、ブロック１〜５に対して「性能：大」に対応するコンフィグデータがそれぞれ入力され、ブロック６〜８に対して「性能：小」に対応するコンフィグデータがそれぞれ入力されることを意味する。
【００３９】
なお、「優先順位：大（中もしくは小）」とは、各ブロック１〜８をグループ分けするためにユーザによって使用される情報であり、「優先順位：大」に属する各ブロック１〜３には、「優先順位：中」および「優先順位：小」に属する各ブロック４〜８に比べて、「性能：大」に対応するコンフィグデータを優先的に割り当てられることを意味する。
【００４０】
電流測定部４０は、論理回路が設計されたデバイスを有する各ブロック１〜８に対して電流を送出し、各デバイスがデータ処理を実行した際に要する総消費電力を測定する。
【００４１】
例えば、電流測定部４０は、図５に示すような回路を有する。ここで、電流測定部４０は、電源から入力され、各ブロック１〜８に対して送出される電力について、電源から出力されたときの電圧と、抵抗Ｒを経由した後の電圧との電圧差を測定する。そして、電流測定部４０は、測定された電圧差に基づいて、各ブロック１〜８のデバイスがデータ処理するために要する消費電力の合計（総消費電力）を算出する。
【００４２】
全体制御部５０は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。
【００４３】
特に、全体制御部５０は、ＲＯＭ２０から、処理性能が異なる各コンフィグデータ内、一のコンフィグデータをデバイスごとに読み込み、読み込んだ各コンフィグデータを各ブロック１〜８にそれぞれ入力して、各デバイスに論理回路を設計する。
【００４４】
そして、全体制御部５０は、電流測定部４０に総消費電力を測定させ、設計された論理回路の組合せのうち、測定された総消費電力の実測値が予め設定されている総消費電力の目標値内で、最良の処理性能を発揮する組合せを、データ処理を実際に実行するときに各デバイス上に設計される論理回路として決定する。
【００４５】
図６を用いて、具体的に一例をあげて説明すると、全体制御部５０は、データ処理の開始指令を受け付けると、記憶部（例えば、全体制御部５０が有するレジスタ）から予め設定されている総消費電力の目標値を読み込む。
【００４６】
続いて、全体制御部５０は、優先順位テーブル３０に記憶されている各組合せ情報の中で、優先順位が最も高い優先順位テーブル番号「Ｎｏ．４（Ｎ＝Ｍａｘ）」に対応する組合せ情報を参照して、各ブロック１〜８にそれぞれに入力される各コンフィグデータ（「Ａ」、「Ｃ」、「Ｅ」、「Ｇ」、「Ｉ」、「Ｋ」、「Ｍ」、「Ｏ」）をＲＯＭ２０から読み込む（図６の（Ａ）参照）。
【００４７】
より詳細には、全体制御部５０は、優先順位テーブル３０の優先順位テーブル番号「Ｎｏ．４」に対応する組合せ情報を参照し、「優先順位：大に対応する性能：大」、「優先順位：中に対応する性能：大」、および、「優先順位：小に対応する性能：大」を取得する。
【００４８】
続いて、全体制御部５０は、優先順位：大に属するブロック１に入力されるコンフィグデータ「Ａ」およびコンフィグデータ「Ｂ」の内、性能：大に相当するコンフィグデータ「Ａ」をＲＯＭ２０から読み込む。
【００４９】
また、全体制御部５０は、優先順位：大に属するブロック２に入力されるコンフィグデータ「Ｃ」およびコンフィグデータ「Ｄ」の内、性能：大に相当するコンフィグデータ「Ｃ」をＲＯＭ２０から読み込む。
【００５０】
また、全体制御部５０は、優先順位：大に属するブロック３に入力されるコンフィグデータ「Ｅ」およびコンフィグデータ「Ｆ」の内、性能：大に相当するコンフィグデータ「Ｅ」をＲＯＭ２０から読み込む。
【００５１】
また、全体制御部５０は、優先順位：中に属するブロック４に入力されるコンフィグデータ「Ｇ」およびコンフィグデータ「Ｈ」の内、性能：大に相当するコンフィグデータ「Ｇ」をＲＯＭ２０から読み込む。
【００５２】
また、全体制御部５０は、優先順位：中に属するブロック５に入力されるコンフィグデータ「Ｉ」およびコンフィグデータ「Ｊ」の内、性能：大に相当するコンフィグデータ「Ｉ」をＲＯＭ２０から読み込む。
【００５３】
また、全体制御部５０は、優先順位：小に属するブロック６に入力されるコンフィグデータ「Ｋ」およびコンフィグデータ「Ｌ」の内、性能：大に相当するコンフィグデータ「Ｋ」をＲＯＭ２０から読み込む。
【００５４】
また、全体制御部５０は、優先順位：小に属するブロック７に入力されるコンフィグデータ「Ｍ」およびコンフィグデータ「Ｎ」の内、性能：大に相当するコンフィグデータ「Ｍ」をＲＯＭ２０から読み込む。
【００５５】
また、全体制御部５０は、優先順位：小に属するブロック８に入力されるコンフィグデータ「Ｏ」およびコンフィグデータ「Ｐ」の内、性能：大に相当するコンフィグデータ「Ｏ」をＲＯＭ２０から読み込む。
【００５６】
各コンフィグデータをＲＯＭ２０から読み込んだ後、全体制御部５０は、コンフィグデータを各ブロック１〜８にそれぞれ入力して論理回路を設計する。
【００５７】
続いて、全体制御部５０は、各ブロック１〜８が有する各デバイス上に論理回路が設計されるまで処理を待機し、論理回路の設計が完了すると、電流測定部４０に対して総消費電力を測定するように制御する。
【００５８】
そして、全体制御部５０は、電流測定部４０によって測定された総消費電力の実測値が、総消費電力の目標値によって算出される指定偏差内であるか否かを判定する。
【００５９】
ここで、全体制御部５０は、総消費電力の実測値が指定偏差内であると判定された場合に、論理回路が設計されたデバイスを有する各ブロック１〜８を使用してデータ処理を開始する。
【００６０】
一方では、全体制御部５０は、総消費電力の実測値が指定偏差内でないと判定された場合に、各デバイスにそれぞれ入力される各コンフィグデータを、優先順位が一位低いコンフィグデータの組合せに変更する。
【００６１】
具体的には、全体制御部５０は、参照する優先順位テーブル番号を、「１」少ない優先順位テーブル番号「Ｎｏ．３」に変更する（Ｎ＝Ｎ−１）。
【００６２】
続いて、全体制御部５０は、優先順位テーブル３０に記憶されている各組合せ情報の中で、優先順位テーブル番号「Ｎｏ．３」に対応する組合せ情報を参照して、各ブロック１〜８にそれぞれに入力される各コンフィグデータ（「Ａ」、「Ｃ」、「Ｅ」、「Ｇ」、「Ｉ」、「Ｌ」、「Ｎ」、「Ｐ」）をＲＯＭ２０から読み込む（図６の（Ｂ）参照）。
【００６３】
続いて、全体制御部５０は、コンフィグデータを各ブロック１〜８にそれぞれ入力して論理回路を設計する。
【００６４】
続いて、全体制御部５０は、各ブロック１〜８が有する各デバイス上に論理回路が設計されるまで処理を待機し、論理回路の設計が完了すると、電流測定部４０に対して総消費電力を測定するように制御する。
【００６５】
そして、全体制御部５０は、電流測定部４０によって測定された総消費電力の実測値が、指定偏差内であるか否かを再び判定し、総消費電力の実測値が指定偏差内であると判定された場合には、論理回路が設計されたデバイスを有する各ブロック１〜８を使用してデータ処理を開始する。
【００６６】
一方では、全体制御部５０は、総消費電力の実測値が指定偏差内でないと判定された場合には、各デバイスにそれぞれ入力される各コンフィグデータを、優先順位が一位低いコンフィグデータの組合せに変更する。
【００６７】
具体的には、全体制御部５０は、参照する優先順位テーブル番号を、「１」少ない優先順位テーブル番号「Ｎｏ．２」に変更する（Ｎ＝Ｎ−１）。
【００６８】
続いて、全体制御部５０は、優先順位テーブル３０に記憶されている各組合せ情報の中で、優先順位テーブル番号「Ｎｏ．２」に対応する組合せ情報を参照して、各ブロック１〜８にそれぞれに入力される各コンフィグデータ（「Ａ」、「Ｃ」、「Ｅ」、「Ｈ」、「Ｊ」、「Ｌ」、「Ｎ」、「Ｐ」）をＲＯＭ２０から読み込む（図６の（Ｃ）参照）。
【００６９】
続いて、全体制御部５０は、コンフィグデータを各ブロック１〜８にそれぞれ入力して論理回路を設計する。
【００７０】
続いて、全体制御部５０は、各ブロック１〜８が有する各デバイス上に論理回路が設計されるまで処理を待機し、論理回路の設計が完了すると、電流測定部４０に対して総消費電力を測定するように制御する。
【００７１】
そして、全体制御部５０は、電流測定部４０によって測定された総消費電力の実測値が、指定偏差内であるか否かを再び判定し、総消費電力の実測値が指定偏差内であると判定された場合には、論理回路が設計されたデバイスを有する各ブロック１〜８を使用してデータ処理を開始する。
【００７２】
一方では、全体制御部５０は、総消費電力の実測値が指定偏差内でないと判定された場合には、各デバイスにそれぞれ入力される各コンフィグデータを、優先順位が一位低いコンフィグデータの組合せに変更する。
【００７３】
具体的には、全体制御部５０は、参照する優先順位テーブル番号を、「１」少ない優先順位テーブル番号「Ｎｏ．１」に変更する（Ｎ＝Ｎ−１）。
【００７４】
続いて、全体制御部５０は、優先順位テーブル３０に記憶されている各組合せ情報の中で、優先順位テーブル番号「Ｎｏ．１」に対応する組合せ情報を参照して、各ブロック１〜８にそれぞれに入力される各コンフィグデータ（「Ｂ」、「Ｄ」、「Ｆ」、「Ｈ」、「Ｊ」、「Ｌ」、「Ｎ」、「Ｐ」）をＲＯＭ２０から読み込む（図６の（Ｄ）参照）。
【００７５】
続いて、全体制御部５０は、コンフィグデータを各ブロック１〜８にそれぞれ入力して論理回路を設計する。
【００７６】
続いて、全体制御部５０は、各ブロック１〜８が有する各デバイス上に論理回路が設計されるまで処理を待機し、論理回路の設計が完了すると、電流測定部４０に対して総消費電力を測定するように制御する。
【００７７】
そして、全体制御部５０は、電流測定部４０によって測定された総消費電力の実測値が、指定偏差内であるか否かを再び判定し、総消費電力の実測値が指定偏差内であると判定された場合には、論理回路が設計されたデバイスを有する各ブロック１〜８を使用してデータ処理を開始する。
【００７８】
一方では、全体制御部５０は、総消費電力の実測値が指定偏差内でないと判定された場合には、各デバイスにそれぞれ入力される各コンフィグデータを、優先順位が一位低いコンフィグデータの組合せに変更する。
【００７９】
このとき、全体制御部５０は、優先順位テーブル番号「Ｎｏ．１」よりも優先順位が低い優先順位テーブル番号がないので（Ｎ＝０）、アラームを鳴動させて、各ブロック１〜８ごとに消費する消費電力の最適化ができなかった旨をユーザに対して通知する。
【００８０】
［パッケージによる処理］
次に、図７を用いて、パッケージ１０による処理の流れを説明する。図７は、パッケージによる処理の流れを示すフローチャート図である。
【００８１】
図７に示すように、パッケージ１０は、データ処理の開始指令を受け付けると（ステップＳ１００１肯定）、記憶部から予め設定されている総消費電力の目標値を読み込む（ステップＳ１００２）。
【００８２】
続いて、パッケージ１０は、優先順位が最も高い優先順位テーブル番号（Ｎ＝Ｍａｘ）を参照して（ステップＳ１００３）、ＲＯＭ２０から各ブロック１〜８それぞれに入力されるコンフィグデータを読み込む（ステップＳ１００４）。
【００８３】
続いて、パッケージ１０は、コンフィグデータを各ブロック１〜８にそれぞれ入力して論理回路を設計する（ステップＳ１００５）。
【００８４】
ここで、パッケージ１０は、論理回路の設計が完了するまで処理を待機し（ステップＳ１００６）、論理回路の設計が完了すると、総消費電力を測定し（ステップＳ１００７）、総消費電力の実測値が、指定偏差内であるか否かを判定する（ステップＳ１００８）。
【００８５】
ここで、総消費電力の実測値が指定偏差内であると判定された場合には（ステップＳ１００８肯定）、パッケージ１０は、論理回路が設計されたデバイスを有する各ブロック１〜８を使用してデータ処理を開始し（ステップＳ１００９）、データ処理の終了とともに処理を終了する。
【００８６】
一方では、総消費電力の実測値が指定偏差内でないと判定された場合には（ステップＳ１００８否定）、パッケージ１０は、参照する優先順位テーブル番号を、「１」少ない優先順位テーブル番号に変更する（Ｎ＝Ｎ−１）（ステップＳ１０１０）。
【００８７】
ここで、参照すべき優先順位テーブル番号がない（Ｎ＝０）場合には（ステップＳ１０１１肯定）、パッケージ１０は、各ブロック１〜８ごとに消費する消費電力の最適化ができなかった旨をユーザに対して通知して（ステップＳ１０１２）、処理を終了する。
【００８８】
一方は、参照すべき優先順位テーブル番号がある場合には（ステップＳ１０１１否定）、パッケージ１０は、再び優先順位テーブル３０から各ブロック１〜８それぞれに入力されるコンフィグデータの性能情報を読み込み（ステップＳ１００４）、上記した処理（ステップＳ１００４〜ステップＳ１０１１）を繰り返し実行する。
【００８９】
［実施例１の効果］
上記したように、実施例１によれば、パッケージの開発に手間および作業コストを省くことが可能である。例えば、実施例１によれば、製造されたパッケージによって自動的に消費電力を最適化することができるため、パッケージの開発にかかる手間および作業コストを省くことが可能である。
【００９０】
また、実施例１によれば、短時間で消費電力を最適化することが可能である。例えば、実施例１では、パッケージの開発者によって設定されたコンフィグデータの組合せの順番で、総消費電力を測定するため、短時間で消費電力を最適化することが可能である。
【００９１】
また、実施例１によれば、パッケージを製造するときに発生する製造ミスをカバーすることが可能である。例えば、実施例１によれば、各ブロック１〜８が動作したときに消費される消費電力に誤差が生じた場合であっても、製造されたパッケージごとに消費電力を最適化することができるため、パッケージを製造するときに発生する製造ミスをカバーすることが可能である。
【実施例２】
【００９２】
さて、これまで実施例１について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例２として、他の実施例を説明する。
【００９３】
例えば、実施例１では、総消費電力の実測値が目標値に近似するという判定結果を得たときの論理回路を、データ処理を実際に実行するときに各デバイス上に設計される論理回路に決定する場合を説明した。
【００９４】
しかしながら、例えば、各デバイスに論理回路が設計されるごとに総消費電力を測定し、各デバイスの総消費電力の実測値が目標値に近似するという判定結果を得た論理回路の組合せの中から、最大のデータ処理性能が得られる論理回路をデータ処理を実際に実行するときに各デバイス上に設計される論理回路に決定するようにしてもよい。
【００９５】
また、実施例１では、ブロック１〜８ごとに、処理性能が良いコンフィグデータと、処理性能が悪いコンフィグデータとを記憶する場合を説明したが、処理性能が異なる３種類以上のコンフィグデータを記憶する場合であっても本発明に適用可能である。
【００９６】
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図３、４に示した記憶情報、図４に示した優先順位や優先順位テーブル番号など）については、特記する場合を除いて任意に変更することができる。
【００９７】
例えば、図８に示すように、優先順位（大、中、もしくは、小）とは無関係に、ユーザが任意に優先順位テーブル番号を設定した場合であっても本発明に適用可能である。なお、図８は、実施例２に係る優先順位テーブルに記憶される情報の一例を示した図である。
【００９８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示したＲＯＭ２０と、優先順位テーブル３０とを統合して構成することができる。
【００９９】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ハードウェアとして実現され得る。
【０１００】
ところで、本発明はあらかじめ用意されたプログラムを、パッケージ１０を有したデータ処理装置としてのコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図９を用いて、上記の実施例に示したパッケージ１０と同様の機能を有するデータ処理プログラムを実行するコンピュータを一例として説明する。図９は、データ処理プログラムを実行するコンピュータを示す図である。
【０１０１】
同図に示すように、パッケージ１０を有したデータ処理装置としてのコンピュータ１１０は、入力部１１１、出力部１１２、ＦＰＧＡ１２１〜１２８、電流測定部１３０、ＲＯＭ１４０、ＣＰＵ１５０、ＲＡＭ１６０、ＨＤＤ１７０をバス１８０などで接続して構成される。なお、ＦＰＧＡ１２１〜１２８は、図２に示したブロック１〜８にそれぞれ対応し、電流測定部１３０は、図２に示した電流測定部４０に対応する。
【０１０２】
ＲＯＭ１４０には、コンフィグデータ１４１と、優先順位データ１４２と、上記の実施例１に示した全体制御部５０と同様の機能を発揮する全体制御プログラム１４３とがあらかじめ記憶されている。なお、コンフィグデータ１４１と、優先順位データ１４２と、全体制御プログラム１４３とについては、図２に示したパッケージ１０の各構成要素と同様、適宜統合または、分散してもよい。また、コンフィグデータ１４１は、図２に示した、ＲＯＭ２０に対応する。
【０１０３】
そして、ＣＰＵ１５０が全体制御プログラム１４３をＲＯＭ１４０から読み出して実行することで、図９に示すように、全体制御プログラム１４３は、全体制御プロセス１５１として機能するようになる。なお、全体制御プロセス１５１は、図２に示した、全体制御部５０に対応する。
【０１０４】
そして、ＣＰＵ１５０は、ＲＯＭ１４０から優先順位データ１４２を読み出してＲＡＭ１６０に格納し、ＲＡＭ１６０に格納された優先順位テーブルデータ１６１に基づいて処理を実行する。なお、優先順位テーブルデータ１６１は、図２に示した優先順位テーブル３０に対応する。
【０１０５】
なお、上記したコンフィグデータ１４１、優先順位データ１４２および全体制御プログラム１４３については、必ずしも最初からＲＯＭ１４０に記憶させておく必要はない。例えば、コンピュータ１１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、またはコンピュータ１１０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１１０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ１１０がこれから各プログラムを読み出して実行するようにしてもよい。
【０１０６】
なお、本実施例で説明したデータ処理方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【図面の簡単な説明】
【０１０７】
【図１】実施例１に係るパッケージの概要を説明するための図である。
【図２】パッケージの構成を示すブロック図である。
【図３】ＲＯＭに記憶される情報の一例を示した図である。
【図４】優先順位テーブルに記憶される情報の一例を示した図である。
【図５】電流測定部が有する回路の構成の一例を示した図である。
【図６】全体制御部による制御を説明するための図である。
【図７】パッケージによる処理の流れを示すフローチャート図である。
【図８】実施例２に係る優先順位テーブルに記憶される情報の一例を示した図である。
【図９】データ処理プログラムを実行するコンピュータを示す図である。
【符号の説明】
【０１０８】
１〜８  ブロック
１０  パッケージ
２０  ＲＯＭ（Read Only Memory）
３０  優先順位テーブル
４０  電流測定部
５０  全体制御部
１１０  コンピュータ
１１１  入力部
１１２  出力部
１２１〜１２８  ＦＰＧＡ(Field Programmable Gate Array）
１３０  電流測定部
１４０  ＲＯＭ（Read Only Memory）
１４１  コンフィグデータ
１４２  優先順位データ
１４３  全体制御プログラム
１５０  ＣＰＵ（Central Processing Unit）
１５１  全体制御プロセス
１６０  ＲＡＭ（Random Access Memory）
１６１  優先順位テーブルデータ
１７０  ＨＤＤ（Hard Disk Drive）
１８０  バス
【図１】
0005056570.tif 000002
【図２】
0005056570.tif 000003
【図３】
0005056570.tif 000004
【図４】
0005056570.tif 000005
【図５】
0005056570.tif 000006
【図６】
0005056570.tif 000007
【図７】
0005056570.tif 000008
【図８】
0005056570.tif 000009
【図９】
0005056570.tif 000010