(57)【要約】【課題】  プログラマブル論理回路に要求される処理能力に応じてクロック周波数及び動作電圧を自動的に変化させて、消費電力を減少させる。【解決手段】  複数の回路機能を実現可能であって、実現する回路機能を動作中に変更することが可能なプログラマブル論理回路と、前記プログラマブル論理回路に電圧を供給する電圧供給部と、前記プログラマブル論理回路にクロック信号を供給するクロック信号供給部と、前記プログラマブル論理回路で実現される回路機能を前記複数の回路機能のいずれかに変更する変更制御部と、前記プログラマブル論理回路で前記各回路機能に対応する処理が行われた時間である稼動時間を、前記各回路機能毎に計測する稼動時間計測部と、前記稼動時間を用いて、前記クロック信号の周波数及び前記電圧を決定するクロック・電圧決定部とを備える。【選択図】  図１
2005136956.tif 000002
【特許請求の範囲】
【請求項１】
動作中に回路構成を変更可能なプログラマブル論理回路と、
前記プログラマブル論理回路に複数の単位回路の回路構成情報を供給する回路構成情報供給部と、
前記プログラマブル論理回路の回路構成を、前記複数の単位回路のいずれかに変更させる変更制御部と、
前記各単位回路の、前記プログラマブル論理回路上での稼働時間を測定する稼働時間計測部と、
前記プログラマブル論理回路に、前記稼働時間を用いて求めた周波数のクロック信号、および、前記稼働時間を用いて求めた値の電圧を供給する、クロック・電圧供給部と、
を備える論理回路装置。
【請求項２】
前記クロック・電圧供給部は、
前記稼働時間を用いて、ある期間内に前記プログラマブル論理回路が実行した全処理の量を求める処理量算出部と、
前記プログラマブル論理回路が前記量の処理を行うために必要なクロック信号の周波数を算出する周波数算出部と、
前記プログラマブル論理回路を、この周波数のクロック信号で動作させるために必要な電圧を算出する電圧算出部と、
を備える請求項１に記載の論理回路装置。
【請求項３】
前記周波数算出部は、
前記プログラマブル論理回路で前記量より多い処理を行うために必要なクロック信号の周波数を算出する、
請求項２に記載の論理回路装置。
【請求項４】
前記プログラマブル論理回路を複数備える請求項１に記載の論理回路であって、
さらに、
前記各プログラマブル論理回路が構成する前記単位回路の割り当てを記憶する割り当てテーブルと、
前記稼動時間を用いて、前記割り当てテーブルに記憶された前記割り当てを変更する割り当て変更部と、
を備え、
前記変更制御部は、前記割り当てに従って、前記各プログラマブル論理回路の回路構成の変更制御を行い、
前記クロック・電圧供給部は、前記割り当ておよび前記稼働時間を用いて、前記クロック信号の周波数および前記電圧を求める、
請求項１に記載の論理回路装置。
【請求項５】
前記割り当て変更部は、
前記プログラマブル論理回路の各々に関する前記稼働時間の合計を算出し、
前記合計が最大の前記プログラム論理回路に割り当てられている前記単位回路の少なくとも一つを、前記合計が最小の前記プログラム論理回路へ割り当てる、
請求項４に記載の論理回路装置。
【請求項６】
前記割り当て変更部は、
前記合計の最大値と最小値との相違がある閾値より大きい場合に、割り当てを変更する、
請求項５に記載の論理回路装置。
【請求項７】
前記割り当て変更部は、
前記各単位回路の、前記稼働時間の想定値を記憶する想定稼動時間記憶部を備え、
前記稼働時間と前記想定値との誤差がある閾値より大きい場合に、前記割り当てを変更する、
請求項４に記載の論理回路装置。
【請求項８】
前記割り当て変更部は、
前記各プログラマブル論理回路の前記稼働時間の合計の基準値を求め、
前記稼働時間の合計と前記基準値との誤差がある閾値より大きい場合に、前記割り当てを変更する、
請求項４に記載の論理回路装置。
【請求項９】
前記基準値は、前記各プログラマブル論理回路回路の前記稼働時間の合計の平均値である、請求項８に記載の論理回路装置。
【請求項１０】
前記割り当て変更部は、
変更後の割り当てに基づいて、前記各プログラマブル論理回路の前記稼働時間の合計を求め、
この合計と前記基準値との誤差がある閾値より大きい場合には、前記割り当てを再度変更する、
請求項８に記載の論理回路装置。
【請求項１１】
前記クロック・電圧供給部は、
前記割り当ておよび前記稼動時間を用いて、前記プログラマブル論理回路の各々に関する前記稼働時間の合計を算出する合計算出部と、
前記合計の最大値から、すべての前記プログラマブル論理回路が行った処理の量を見積もる処理量算出部と、
前記プログラマブル論理回路が前記量の処理を実行するために必要なクロック信号の周波数を算出する周波数算出部と、
前記プログラマブル論理回路を、この周波数のクロック信号で動作させるために必要な電圧を算出する電圧算出部と、
を備える請求項４記載の論理回路装置。
【請求項１２】
さらに、特定の処理を行う専用回路を備え、
前記クロック電圧供給部は前記専用回路にもクロック信号および電圧を供給し、
前記稼動時間計測部は前記専用回路の稼動時間も計測し、
前記合計算出部は前記専用回路の稼動時間も算出し、
前記処理量算出部は前記専用回路が実行した処理の量も算出し、
前記周波数算出部は、前記専用回路がこの量の処理を実行するために必要なクロック信号の周波数も算出して、前記プログラマブル論理回路について求めた周波数と比較して高い方を採用し、
前記電圧算出部は、前記周波数算出部で採用された周波数で前記専用回路及び前記プログラマブル論理回路の両方を動作させるために必要な電圧を算出する、
請求項１１に記載の論理回路装置。
【請求項１３】
動作中に回路構成を変更可能なプログラマブル論理回路を用いて複数の単位回路を時分割的に動作させる際に、前記プログラマブル論理回路の動作電圧を変更する方法であって、
前記各単位回路の稼動時間を計測し、
前記稼動時間を用いて、前記プログラマブル論理回路に供給するクロック信号の周波数を算出し、
前記プログラマブル論理回路を前記周波数で動作させるのに必要な動作電圧を求め、
前記プログラマブル論理回路に供給する電圧およびクロック信号を、前記動作電圧および前記周波数に変更する、
動作電圧変更方法。
【請求項１４】
前記稼働時間を用いて、ある期間内に前記プログラマブル論理回路が行った処理の量を求め、
前記クロック信号の周波数の算出では、前記プログラマブル論理回路が前記量の処理を実行するために必要なクロック信号の周波数を算出する、
請求項１３に記載の動作電圧変更方法。
【請求項１５】
動作中に回路構成を変更可能な複数のプログラマブル論理回路を用いて複数の単位回路を時分割的に動作させる際に、前記プログラマブル論理回路の動作電圧を変更する方法であって、
前記各プログラマブル論理回路に、それぞれを用いて動作させる前記単位回路を割り当て、
前記各単位回路の稼動時間を計測し、
前記各プログラマブル論理回路の前記稼動時間の合計である第１の合計稼動時間を求め、
前記第１の合計稼動時間を用いて、前記単位回路の割り当てを変更し
前記変更後の割り当てに従って、前記各プログラマブル論理回路の稼動時間の合計である第２の合計稼動時間を求め、
前記第２の合計稼動時間の最大値を用いて、前記プログラマブル論理回路に供給するクロック信号の周波数を求め、
前記クロック周波数を用いて、前記プログラマブル論理回路の動作電圧を求め、
前記プログラマブル論理回路の動作電圧及びクロック信号の周波数を求めた動作電圧及び求めた周波数に変更する、
動作電圧変更方法。
【請求項１６】
前記割り当ての変更では、前記第１の合計稼動時間が最大となる前記プログラマブル論理回路に割り当てられた前記単位回路の一部を、前記合計が最小となる前記プログラマブル論理回路に割り当てるように変更する、請求項１５に記載の動作電圧変更方法。
【請求項１７】
前記各単位回路の、稼動時間の想定値を記憶しておき、
前記割り当ての変更では、前記各単位回路の前記稼働時間と前記想定値との誤差がある閾値より大きい場合に前記割り当てを変更する、
請求項１５に記載の動作電圧変更方法。
【請求項１８】
前記割り当ての変更では、前記第１合計稼働時間の基準値を求め、前記第１合計稼働時間のいずれかと前記基準値との誤差がある閾値より大きい場合に前記割り当てを変更する、
請求項１５に記載の動作電圧変更方法。
【請求項１９】
前記基準値は前記合計稼働時間の平均値である、請求項１８に記載の動作電圧変更方法。
【請求項２０】
前記第２の合計稼働時間のいずれかと前記基準値との誤差がある閾値より大きい場合には再度割り当てを変更する、
請求項１８に記載の動作電圧変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実現する回路機能を動作中に変更可能なプログラマブル論理回路を利用した論理回路装置に関する。
【背景技術】
【０００２】
複数の工程からなる処理を行う回路を一つの集積回路で構成すると、集積回路全体として処理能力が余剰し、その分余計に電力を消費する。なぜならば、高い処理能力が要求される工程と低い処理能力で十分な工程とがあるにもかかわらず、集積回路全体の動作速度は最も高い処理能力が要求される工程の処理を行えるように設定されるからである。
【０００３】
集積回路の消費電力を減らすには、動作電圧とクロック信号の周波数（クロック周波数）とを低くすることが有効な手法である。しかし、動作電圧を低くすると動作可能なクロック周波数の上限も低くなる。また、クロック周波数を低くすると処理能力も低くなる。
【０００４】
近年、実現する回路機能を動作中に変更可能なプログラマブル論理回路が提案されている。このプログラマブル論理回路は、回路の動作中に回路の全体若しくは一部分の論理構成を変更することが可能な回路である。プログラマブル論理回路には、例えば、論理構成を高速に変更可能なＦＰＧＡ（Field Programmable Gate Array）や、ＤＰＧＡ（Dynamically Programmable Gate Array）がある。以下、これらを単に「プログラマブル論理回路」と表記する。
【０００５】
従来、複数の工程の各々に対応する処理を実行する単位回路を、時分割的にプログラマブル論理回路上に構成してすべての工程の処理を行う手法が提案されている。
【特許文献１】特開２００１−２０２２３６公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のプログラマブル論理回路を時分割的に動作させる手法ならば、高い処理能力が必要な工程に対応する単位回路を長い時間動作させ、低い処理能力で十分な工程に対応する単位回路は短い時間動作させることで、処理能力の余剰を減らすことができる。
【０００７】
しかし、この手法では各単位回路の動作時間の配分を予め適切に設定しておく必要がある。すなわち、各単位回路に要求される処理能力が動的に変化する場合に対応することは想定されていない。
【０００８】
本発明の目的は、プログラマブル論理回路に要求される処理能力に応じてクロック周波数及び動作電圧を自動的に変化させて、消費電力を減少させることができる論理回路装置を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決する為に本発明の一側面の論理回路装置は、複数の回路機能を実現可能であって、実現する回路機能を動作中に変更することが可能なプログラマブル論理回路と、前記プログラマブル論理回路に電圧を供給する電圧供給部と、前記プログラマブル論理回路にクロック信号を供給するクロック信号供給部と、前記プログラマブル論理回路で実現される回路機能を前記複数の回路機能のいずれかに変更する変更制御部と、前記プログラマブル論理回路で前記各回路機能に対応する処理が行われた時間を示す稼動時間を、前記各回路機能毎に計測する稼動時間計測部と、前記稼動時間を用いて、前記クロック信号の周波数及び前記電圧を変更するクロック・電圧変更部とを備える。
【００１０】
本発明の一側面の動作電圧変更方法は、動作中に回路構成を変更可能なプログラマブル論理回路を用いて複数の単位回路を時分割的に動作させる際に、前記プログラマブル論理回路の動作電圧を変更する方法である。より具体的には、前記各単位回路の稼動時間を計測し、前記稼動時間を用いて、前記プログラマブル論理回路に供給するクロック信号の周波数を算出し、前記プログラマブル論理回路を前記周波数で動作させるのに必要な動作電圧を求め、前記プログラマブル論理回路に供給する電圧およびクロック信号を、前記動作電圧および前記周波数に変更する。
【発明の効果】
【００１１】
本発明によれば、プログラマブル論理回路に要求される処理能力に応じてクロック周波数及び動作電圧を自動的に変化させて、消費電力を減少させることができる。
【発明を実施するための最良の形態】
【００１２】
本発明の各実施形態では、実現する回路機能を動作中に変更可能なプログラマブル論理回路が用いられる。このようなプログラマブル論理回路は、回路の動作中に回路全体若しくは一部分の回路構成を再構成することにより実現する回路機能を変更することが可能な回路である。このようなプログラマブル論理回路は、例えば、回路構成の再構成を高速に実行可能なように構成したFPGA(Field Programmable Gate Array)やDPGA(Dynamically Programmable Gate Array)である。尚、以下では単に「プログラマブル論理回路」と表記する。
【００１３】
図２はプログラマブル論理回路の構造の一部のブロック図である。プログラマブル論理回路は、入力された情報を用いた論理演算の結果を出力する複数の単位ブロック２００と、単位ブロック２００間の情報の流れを制御する単位ブロック間接続部２１０とを有する。
【００１４】
プログラマブル論理回路の単位ブロック２００は、予め与えられた回路の構成情報（回路情報）に基づいて、入力されたデータに対する論理演算を行うＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）２０１と、ＬＵＴ２０１による演算結果を単位ブロック間接続部２１０を介して次段の単位ブロック２００に出力する際に出力の同期をとるためのＤ−ＦｌｉｐＦｌｏｐ２０２とを備える。単位ブロック２００は、複数の回路情報を記憶しておくＲＡＭ２０３と、ＬＵＴ２０１に与える回路情報を切り替える切替部２０４とを備える。単位ブロック２００は、ＬＵＴ２０１に与える回路情報を切り替える際にＤ−ＦｌｉｐＦｌｏｐ２０２の状態情報を退避・復元するためのＲＡＭ２０５と、退避・復元する状態情報を切り替える切替部２０６とを備える。
【００１５】
単位ブロック間接続部２１０は、予め与えられた回路情報に基づいて単位ブロック２００間の情報の流れを制御する接続部２１１と、複数の回路情報を記憶しておくＲＡＭ２１２と、接続部２１１に与える回路情報を切り替える切替部２１３とを備える。
【００１６】
一つの単位ブロック２００のＬＵＴ２０１には、複数の単位ブロック２００からの出力が入力される。ＬＵＴ２０１は入力されたデータを用いて論理演算を行う。ＬＵＴ２０１は論理演算の結果を、Ｄ−ＦｌｉｐＦｌｏｐ２０２を介して接続部２１１に出力する。接続部２１１は、論理演算の結果を、回路情報で指定された１ないし複数の単位ブロック２００へ出力する。
【００１７】
プログラマブル論理回路は、外部から与えられた回路情報に基づいて各単位ブロック２００で行う論理演算の内容を定義する。そして、プログラマブル論理回路は各単位ブロック２００を組み合わせることにより複雑な回路を実現する。以下、回路情報に基づいてプログラマブル論理回路が実現する回路は「単位回路」と記述される。プログラマブル論理回路は外部から供給された回路情報に基づいて単位回路を実現する。そして、別の回路情報が供給されると、プログラマブル論理回路はその回路情報に基づいた別の単位回路を実現する。
【００１８】
以下に、プログラマブル論理回路の動作中に回路構成を再構成する手順を説明する。尚、再構成は図示しない制御部によって制御されるものとする。また、切替後に動作させる回路に関する情報は、回路情報２０３−２、状態情報２０５−２および回路情報２１２−２であるものとする。
【００１９】
（Ａ）制御部は、次に動作させる回路に関する情報を外部からＲＡＭ２０３、２０５および２１２に供給する。制御部は回路情報２０３−２をＲＡＭ２０３に供給する。制御部は状態情報２０５−２をＲＡＭ２０５に供給する。制御部は回路情報２１２−２をＲＡＭ２１２に供給する。
【００２０】
（Ｂ）制御部は、プログラマブル論理回路での処理を停止させるために、プログラマブル論理回路へのクロック信号の供給を停止する。
【００２１】
（Ｃ−１）制御部は、Ｄ−ＦｌｉｐＦｌｏｐ２０２が保持する状態情報２０５−１をＲＡＭ２０５に退避させるために、切替部２０６に制御信号を送る。
【００２２】
（Ｃ−２）制御部は、ＲＡＭ２０３が記憶する回路情報２０３−２をＬＵＴ２０１にコピーするために、切替部２０４に制御信号を送る。
【００２３】
（Ｃ−３）制御部はＲＡＭ２１２が記憶する回路情報２１２−２を接続部２１１に供給するために、切替部２１３に制御信号を送る。
【００２４】
（Ｄ）制御部は、ＲＡＭ２０５が記憶する状態情報２０５−２をＤ−ＦｌｉｐＦｌｏｐ２０２上に復元するために、切替部２０６に制御信号を送る。
【００２５】
（Ｅ）制御部は、クロック信号の供給を再開する。
【００２６】
プログラマブル論理回路の回路構成の再構成は、以上の手順により行われる。尚、上記（Ａ）の処理は、既にＲＡＭ２０３、２０５および２１２が、回路情報２０３−２、状態情報２０５−２および回路情報２１２−２を保持している場合は省略可能である。
【００２７】
ＲＡＭ２０３及びＲＡＭ２０５の効果により、プログラマブル論理回路は回路構成の再構成を高速に行うことができる。尚、各実施形態ではＲＡＭ２０３、２０５を設けた構成になっているが、これらのＲＡＭ２０３は必須ではない。プログラマブル論理回路の外部から回路情報および状態情報を高速に送受信できるようにしても実現可能である。
【００２８】
また、図２ではＲＡＭ２０３及びＲＡＭ２０５に記憶されている回路情報及び状態情報は２つであるが、多数備えていても良い。ＲＡＭ２０３及びＲＡＭ２０５に記憶可能な情報の数は、外部との状態情報及び状態情報の送受信速度に応じて決めればよい。
【００２９】
（概要）図３は、本発明の各実施形態の論理回路装置の概要を機能的に示す。図３は、ある入力に対してステップＡ、Ｂ、ＣおよびＤの４段階の処理を経て最終出力を得る回路を例に示している。
【００３０】
もし、このような回路を専用回路の組み合わせにより実現するならば、例えば次のようなものが考えられる。ステップＡの処理を行う専用回路Ａと、ステップＢの処理を行う専用回路Ｂと、ステップＣの処理を行う専用回路Ｃと、ステップＤの処理を行う専用回路Ｄとが用いられる。各専用回路間の処理性能の差及び出入力データレートの差を吸収するために、各専用回路の出力と入力との間をＦＩＦＯ３２１、３２２および３２３を介して接続する。専用回路Ａの入力側にもＦＩＦＯ３２０を設ける。そして、専用回路Ｄの出力側にもＦＩＦＯ３２４を設ける。
【００３１】
この回路のＦＩＦＯ３２０側から入力データを供給する。入力データは、専用回路Ａ、Ｂ、ＣおよびＤによって処理され、最終出力はＦＩＦＯ３２４を介して得られる。
【００３２】
本発明の各実施形態の論理回路装置は、４個の専用回路を用意する代わりにプログラマブル論理回路を用いる。４個の専用回路の各々は単位回路として扱われる。そして、各単位回路をプログラマブル論理回路で実現するための回路情報を用いる。この論理回路装置は、プログラマブル論理回路に各単位回路の回路情報を供給して動作中に回路構成を再構成する。プログラマブル論理回路は、各単位回路が持つ機能（回路機能）を動的に切り替えながら動作する。すなわち、４個の単位回路でプログラマブル論理回路を時分割に共有する。これにより４個の専用回路を物理的に用意したのと同等な効果が得られる。各単位回路の出力と入力との間はＦＩＦＯ３２０、３２１、３２２、３２３および３２４を介して接続される。
【００３３】
尚、「プログラマブル論理回路３０１で実現される単位回路Ａ」とは、「回路情報Ａを与えられて単位回路Ａとして機能している状態のプログラマブル論理回路」を指す。また、「プログラマブル論理回路で単位回路Ａを実現する」とは、「プログラマブル論理回路に回路情報Ａを与えて単位回路Ａの回路機能を実現する」ことを指す。
【００３４】
ここでは４個の専用回路の各々を単位回路として扱う。これに限らず、専用回路を分割したり組み合わせたものを一つの単位回路として扱うこともできる。単位回路の内容は、専用回路の回路規模、プログラマブル論理回路の回路規模、各工程の処理の性質、あるいは、処理全体の流れに応じて決定されればよい。
【００３５】
制御部３０２は、回路機能の切り替えを制御する。また、制御部３０２は、プログラマブル論理回路３０１で実現する回路に応じた適切なＦＩＦＯをＦＩＦＯ選択部３０５に選択させる。
【００３６】
図１１、図１２、図１３および図１４は、プログラマブル論理回路３０１が時々刻々と回路機能を切替ながら動作する様子を機能的に示している。
【００３７】
図１１はプログラマブル論理回路３０１に回路情報Ａが与えられた場合の動作を機能的に示す。図１１ではプログラマブル論理回路３０１に回路情報Ａが与えられているので、プログラマブル論理回路３０１はステップＡの処理を行う回路Ａとして機能する。また、ＦＩＦＯ選択部３０５は、プログラマブル論理回路３０１の入力側にＦＩＦＯ３２０を接続するとともに、出力側にＦＩＦＯ３２１を接続する。
【００３８】
図１２はプログラマブル論理回路３０１に回路情報Ｂが与えられた場合の動作を機能的に示す。図１２ではプログラマブル論理回路３０１に回路情報Ｂが与えられているので、プログラマブル論理回路３０１はステップＢの処理を行う回路Ｂとして機能する。また、ＦＩＦＯ選択部３０５は、プログラマブル論理回路３０１の入力側にＦＩＦＯ３２１を接続するとともに、出力側にＦＩＦＯ３２２を接続する。
【００３９】
図１３はプログラマブル論理回路３０１に回路情報Ｃが与えられた場合の動作を機能的に示す。図１３ではプログラマブル論理回路３０１に回路情報Ｃが与えられているので、プログラマブル論理回路３０１はステップＣの処理を行う回路Ｃとして機能する。また、ＦＩＦＯ選択部３０５は、プログラマブル論理回路３０１の入力側にＦＩＦＯ３２２を接続するとともに、出力側にＦＩＦＯ３２３を接続する。
【００４０】
図１４はプログラマブル論理回路３０１に回路情報Ｃが与えられた場合の動作を機能的に示す。図１４ではプログラマブル論理回路３０１に回路情報Ｄが与えられているので、プログラマブル論理回路３０１はステップＤの処理を行う回路Ｄとして機能する。また、ＦＩＦＯ選択部３０５は、プログラマブル論理回路３０１の入力側にＦＩＦＯ３２３を接続するとともに、出力側にＦＩＦＯ３２４を接続する。
【００４１】
本発明の各実施形態の論理回路装置は、単位回路の稼動時間を計測する稼動時間計測部３１０を有する。稼動時間計測部３１０はｎ個の単位回路の各々が実際に稼動した時間を測定する。尚、以下の説明では、単位回路が実際に動作した時間とは、プログラマブル論理回路の各ＬＵＴにその単位回路の回路情報が供給された時から、他の単位回路を実現するためにクロック信号の供給が停止されるまでの時間とする。
【００４２】
制御部３０２は、プログラマブル論理回路に再構成を行わせるタイミングを決定する。制御部３０２はｎ＋１個のＦＩＦＯの各々が蓄えているデータ量を監視する。そして、制御部３０２はデータ量に基づいてプログラマブル論理回路が再構成を行うタイミングを決定する。すなわち、制御部３０２は各単位回路の動作のスケジューリングを行う。
【００４３】
また、制御部３０２は各単位回路の稼動時間を用いて、プログラマブル論理回路で要求される処理能力を見積もる。制御部３０２は、見積もられた処理能力を実現するのに必要なクロック信号の周波数並びに動作電圧を求める。そして、制御部３０２は、クロック・電圧供給部３０４を制御してプログラマブル論理回路に供給するクロック信号の周波数及び動作電圧を変更する。
【００４４】
制御部３０２は、例えば、稼動時間の合計、稼動時間の比率、稼動時間の分布を用いて処理能力を見積もる。プログラマブル論理回路が複数ある場合、制御部３０２は、例えば、稼動時間のプログラマブル論理回路毎の合計、比率、分布も用いて処理能力を見積もる。
【００４５】
（第１の実施形態）図１は本発明の第１の実施形態の、プログラマブル論理回路を用いた論理回路装置である。本実施形態の論理回路装置は、図２の単位ブロック２００が複数集まったプログラマブル論理回路１０１と、プログラマブル論理回路１０１に外部から回路情報を供給する回路情報供給部１０２と、回路情報を記憶しておく回路情報記憶部１０３とを備える。
【００４６】
本実施形態の論理回路装置は、プログラマブル論理回路１０１で実現される各単位回路間を接続するＦＩＦＯ１０６と、ＦＩＦＯ１０６からプログラマブル論理回路１０１で実現される各単位回路の入力側に接続するものを選択する入力ＦＩＦＯ選択部１０４と、ＦＩＦＯ１０６からプログラマブル論理回路１０１で実現される各単位回路の出力側に接続するものを選択する出力ＦＩＦＯ選択部１０５とを備える。
【００４７】
本実施形態の論理回路装置はプログラマブル論理回路１０１の状態情報を管理する状態情報管理部１０８と、状態情報を記憶しておく状態情報記憶部１０９と、各単位回路の稼動時間を計測する稼動時間計測部１１０と、プログラマブル論理回路にクロック信号及び動作に必要な電圧を供給するクロック・電圧供給部１１１とを備える。
【００４８】
プログラマブル論理回路１０１は、Ｎ個の単位回路それぞれの機能を時々刻々と切り替えながらデータ処理を行う。プログラマブル論理回路１０１によって実現される各単位回路は、処理に必要なデータを入力ＦＩＦＯ選択部１０４を介してＦＩＦＯ１０６から読み出す。また、各単位回路は、処理結果のデータを出力ＦＩＦＯ選択部１０５を介してＦＩＦＯ１０６に書き込む。プログラマブル論理回路１０１は、制御部１０７からの制御信号を受けて回路構成を変更する。尚、説明を簡単にするために以下の前提条件を設ける。
【００４９】
（Ａ１）本実施形態の全ての単位回路は直列に接続されている。
【００５０】
（Ａ２）本実施形態の各単位回路は１入力１出力である。
【００５１】
（Ａ３）本実施形態の論理回路装置全体としては、１入力１出力である。
【００５２】
回路情報供給部１０２は、制御部１０７によって指定された単位回路の回路情報を回路情報記憶部１０３から読み出す。そして、回路情報供給部１０２は、読み出された回路情報をプログラマブル論理回路１０１に供給する。
【００５３】
回路情報記憶部１０３は、Ｎ個の単位回路に相当する回路情報１０３−１、１０３−２、・・・、１０３−Ｎを記憶する。以下、回路情報１０３−ｋを用いてプログラマブル論理回路１０１が実現する単位回路を、単位回路１０３−ｋと記述する。また、説明を簡単にする為に、さらに次の前提条件を設ける。
【００５４】
（Ａ４）本実施形態では、単位回路１０３−ｋが、本実施形態の論理回路装置が実行するデータ処理のｋ番目（ｋ＝１、２、・・・、Ｎ）の工程の処理を行う。従って、論理回路装置全体の出力側に最も近い単位回路は、単位回路１０３−Ｎである。
【００５５】
ＦＩＦＯ１０６は、Ｎ個の単位回路間を接続するＮ−１個のＦＩＦＯ（ＦＩＦＯ１０６−１、１０６−２、・・・、１０６−（Ｎ−１））と、回路全体の入力側ＦＩＦＯであるＦＩＦＯ１０６−ａと、回路全体の出力側ＦＩＦＯであるＦＩＦＯ１０６−ｂとを有する。尚、説明を簡単にする為に、さらに次の前提条件を設ける。
【００５６】
（Ａ５）単位回路１０３−ｋの出力側に接続されるＦＩＦＯは、ＦＩＦＯ１０６−ｋである。
【００５７】
（Ａ６）単位回路１０３−（ｋ＋１）の入力側に接続されるＦＩＦＯは、ＦＩＦＯ１０６−ｋである。
【００５８】
（Ａ７）各ＦＩＦＯの容量は同一である。
【００５９】
尚、ＦＩＦＯ１０６は先入れ先出し型の専用メモリに限らず、先入れ先出しが可能なように構成（もしくは制御）されたＤＲＡＭなどのメモリでも構わない。
【００６０】
入力ＦＩＦＯ選択部１０４は、制御部１０７によって指定された単位回路に接続されるべき入力ＦＩＦＯをＦＩＦＯ１０６から選択する。そして、選択した入力ＦＩＦＯからプログラマブル論理回路１０１へデータを供給する。
【００６１】
出力ＦＩＦＯ選択部１０５は、制御部１０７によって指定された単位回路に接続されるべき出力ＦＩＦＯをＦＩＦＯ１０６から選択する。そして、プログラマブル論理回路１０１から出力されるデータを選択した出力ＦＩＦＯに蓄積する。
【００６２】
状態情報管理部１０８は、制御部１０７によって指定された単位回路の状態情報を状態情報記憶部１０９から読み出して、プログラマブル論理回路１０１に供給する。また、状態情報管理部１０８は、制御部１０７によって指定された単位回路の状態情報をプログラマブル論理回路１０１から読み出して、状態情報記憶部１０９に記憶させる。
【００６３】
状態情報記憶部１０９は、Ｎ個の単位回路のそれぞれに対応する状態情報１０９−１、１０９−２、・・・、１０９−Ｎを記憶する。以下、回路情報１０３−ｋに対応する状態情報を、状態情報１０９−ｋと呼ぶこととする。
【００６４】
稼動時間計測部１１０は各単位回路の稼動時間を計測する。稼動時間計測部１１０は計測した時間を記憶する。計測した時間は制御部１０７から参照可能である。
【００６５】
クロック・電圧供給部１１１は、プログラマブル論理回路１０１にクロック信号と電圧とを供給する。
【００６６】
制御部１０７は、各ＦＩＦＯ（ＦＩＦＯ１０６−１、１０６−２、・・・、１０６−（Ｎ−１）、１０６−ａ、１０６−ｂ）が保持しているデータの量を監視する。制御部１０７は、プログラマブル論理回路１０１で実現する単位回路を選択する。制御部１０７は、プログラマブル論理回路１０１で実現する単位回路を切り替える際の制御を行う。また、制御部１０７は、プログラマブル論理回路１０１で動作中の単位回路の識別子を記憶している。
【００６７】
制御部１０７は稼動時間計測部１１０を用いて各単位回路の稼動時間を調べる。そして、制御部１０７は、各単位回路の稼動時間を用いてプログラマブル論理回路１０１に供給する電圧（動作電圧）及び供給するクロック信号の周波数（クロック周波数）を見積もる。制御部１０７は、見積もられた動作電圧及びクロック周波数をクロック・電圧供給部１１１に通知する。クロック・電圧供給部１１１は通知に従って、動作電圧及びクロック周波数を変更する。
【００６８】
プログラマブル論理回路１０１で実現する単位回路の切り替え制御により新たな単位回路が動作を開始した時点で、制御部１０７は稼動時間計測部１１０に新たに動作を開始した単位回路の識別子を通知する。稼動時間計測部１１０は通知を受けて、その単位回路の稼動時間を計測する。
【００６９】
また、プログラマブル論理回路１０１で実現する単位回路の切り替え制御により動作中の単位回路が停止した時点で、制御部１０７は稼動時間計測部１１０に動作が停止したことを通知する。稼動時間計測部１１０は通知を受けて、その単位回路の稼動時間の計測を停止する。
【００７０】
図４は、制御部１０７が各単位回路の稼動時間を用いてクロック周波数及び動作電圧を求める処理を示したフローチャートである。以下、図４を参照して制御部１０７によるクロック周波数及び動作電圧を求める処理を説明する。
【００７１】
（Ｓ４０１）制御部１０７は、ある一定時間毎に稼動時間計測部１１０が保持している各単位回路毎の稼動時間を監視する。本実施形態では、制御部１０７は一定時間毎に監視するが、時間間隔は可変でも良い。また、プログラマブル論理回路１０１で実現する単位回路を切り替える時など、何らかのイベントが発生したタイミングで監視しても良い。
【００７２】
（Ｓ４０２）制御部１０７は、各単位回路の処理量を見積もる。本実施形態では、処理量は稼動時間とクロック周波数との積とする。尚、処理量は稼動時間とクロック周波数との積に限らず、各単位回路の特性を反映した関数や変換表を用いて求めても良い。あるいは出入力のデータ量から求めても構わない。
【００７３】
（Ｓ４０３）制御部１０７は、見積もられた処理量を用いて、プログラマブル論理回路１０１のクロック周波数を求める。本実施形態では、制御部１０７は、見積もられた処理量の合計よりも少し多い処理を、稼動時間を監視する時間間隔と同じ時間の間に行うために必要なクロック周波数を求める。本実施形態では、制御部１０７は、見積もられた処理量の合計より５％多い処理を行えるクロック周波数を求める。
【００７４】
制御部１０７は、まず、全ての単位回路の処理量の合計を求める。そして、制御部１０７は、処理量の合計に１０５％を乗じた割増処理量を求める。本実施形態では、処理量はクロック周波数と稼動時間の積であるから、制御部１０７は、割増処理量を、監視する時間間隔で除算して新たなクロック周波数を求める。
【００７５】
尚、本実施形態では割増処理量を５％としたがこの値は適宜変えてよい。また、固定割合に限らず処理量の増減に応じて割増の幅を動的に変えるようにしても良い。また、割合で決めずに固定した処理量を加算しても良い。
【００７６】
或いは、ＦＩＦＯに蓄積されているデータ量などの他の指標を用いて処理量の合計を増減し、この処理量を、監視する時間間隔で除算して新たなクロック周波数を求めても良い。
【００７７】
（Ｓ４０４）制御部１０７は、求められたクロック周波数から、プログラマブル論理回路１０１に供給する動作電圧を求める。一般に、クロック周波数と動作電圧との関係はプログラマブル論理回路１０１の種類・銘柄に依存する。従って、制御部１０７は、データシート等を参照して予め作成しておいた関数や変換表を用いて求めれば良い。
【００７８】
（Ｓ４０５）制御部１０７は、求めた動作電圧及びクロック周波数を、クロック・電圧供給部１１１に通知する。クロック・電圧供給部１１１はクロック周波数及び動作電圧を変更する。
【００７９】
以上、本実施形態の論理回路装置ならば、プログラマブル論理回路に要求される処理能力に応じて、クロック周波数及び動作電圧を自動的に変化させられるので、消費電力を減らすことができる。
【００８０】
（第２の実施形態）本発明の第２の実施形態の論理回路装置について説明する。本実施形態が第１の実施形態と異なるのは、プログラマブル論理回路の個数である。本実施形態ではプログラマブル論理回路が複数個ある。また、プログラマブル論理回路の数が複数になったことに伴い制御部５０７の構成も第１の実施形態の制御部１０７とは異なる。図５は本実施形態の論理回路装置の構成を示す。
【００８１】
本実施形態の論理回路装置は、同時に複数の単位回路を動作させることができる。制御部５０７は、プログラマブル論理回路１０１−１、１０１−２、・・・、１０１−ｍの各々に対する単位回路の割り当てを決定する。ただし、初期値は人間が指定しても良い。
【００８２】
プログラマブル論理回路が複数ある場合は、第１の実施形態で説明したクロック周波数・動作電圧の制御を、各プログラマブル論理回路毎に行っても良い。しかし、全てのプログラマブル論理回路の動作電圧を一律に低くできる方がクロック周波数や電圧を調整するのに必要な部品を少なくできるという利点がある。本実施形態では全てのプログラマブル論理回路は同じ周波数のクロック信号及び同じ動作電圧で動作させるものとし、この場合に、クロック周波数及び動作電圧を調整する手法を提案する。
【００８３】
図７は本実施形態の制御部５０７の構成を示している。制御部５０７は各プログラマブル論理回路で動作させる単位回路の切り替え制御を行う切り替え制御部７０１と、各プログラマブル論理回路とそこで動作させる単位回路との関係を記憶する回路割り当てテーブル７０２と、各プログラマブル論理回路への単位回路の割り当てと全てのプログラマブル論理回路の動作電圧及びクロック周波数を変更する割り当て制御部７０３とを備える。
【００８４】
図６は割り当て制御部７０３が行う処理の概要を示す。簡単に説明するため、図６はプログラマブル論理回路が４個の場合を示している。割り当て制御部７０３は、複数のプログラマブル論理回路のそれぞれへの単位回路の割り当てを調整することにより、処理能力の余剰を減少させ、クロック周波数並びに動作電圧を低減させ、消費電力を減少させる。
【００８５】
グラフ６００Ａは、単位回路の割り当て調整前の各プログラマブル論理回路に要求される処理能力を表している。グラフ６００Ｂは、単位回路の割り当て調整後の各プログラマブル論理回路に要求される処理能力を表している。
【００８６】
グラフ６００Ａでは、プログラマブル論理回路Ａに負荷が集中している。そのためプログラマブル論理回路Ａは高い処理能力が要求される。動作電圧及びクロック周波数は、プログラマブル論理回路Ａが「要求される処理能力６０１Ａ」を持つことができるように設定される必要がある。また、動作電圧及びクロック周波数は全てのプログラマブル論理回路で共通であるので、結果としてプログラマブル論理回路Ｂ、Ｃ、Ｄも高い処理能力を持つことになる。
【００８７】
しかし、プログラマブル論理回路Ｂ、Ｃ、Ｄはプログラマブル論理回路Ａほど高い処理能力は要求されていない。特にプログラマブル論理回路Ｄは処理能力の半分以下しか使わない。そのため、グラフ６００Ａでは処理能力の余剰６０２Ａが大量に発生している。
【００８８】
そこで、割り当て制御部７０３は、最も高い処理能力を要求されているプログラマブル論理回路Ａに割り当てられている処理２を、最も低い処理能力しか要求されていないプログラマブル論理回路Ｄへ割り当てる。調整後のグラフがグラフ６００Ｂである。
【００８９】
グラフ６００Ｂでは、各プログラマブル論理回路に要求される処理能力が平準化されている。動作電圧及びクロック周波数は、プログラマブル論理回路Ｄが「要求される処理能力６０１Ｂ」を持つことができるように設定されればよい。要求される処理能力６０１Ｂは、要求される処理能力６０１Ａより低いので、動作電圧及びクロック周波数は調整前よりも低くすることができる。処理能力の余剰６０２Ｂも処理能力の余剰６０２Ａより少なくなっており、調整前より全体として効率よく動作できる。
【００９０】
割り当て制御部７０３は、調整後の単位回路の割り当てを回路割り当てテーブル７０２に記憶させる。割り当て制御部７０３は、見積もった動作電圧及びクロック周波数を、クロック・電圧供給部１１１に通知する。
【００９１】
切り替え制御部７０１は回路割り当てテーブル７０２に記憶された、各プログラマブル論理回路と単位回路との関係の範囲内で、各プログラマブル論理回路で動作させる単位回路の切り替え制御を行う。
【００９２】
図８は割り当て制御部７０３による単位回路の割り当て調整処理のフローチャートである。以下、図面に沿って説明する。
【００９３】
（Ｓ８０１）割り当て制御部７０３は、各プログラマブル論理回路の合計稼動時間を求める。割り当て制御部７０３は、稼動時間計測部１１０を用いて、各単位回路の稼動時間を調べる。そして、割り当て制御部７０３は、各単位回路の稼動時間をプログラマブル論理回路毎に合計して、各プログラマブル論理回路の合計稼働時間を求める。
【００９４】
（Ｓ８０２）割り当て制御部７０３は、合計稼動時間の最大値と最小値とを求めて、その差を計算する。
【００９５】
（Ｓ８０３）割り当て制御部７０３は、合計稼動時間の差と閾値とを比較する。割り当て制御部７０３は、閾値以下の場合はＳ８０５の処理を行う。閾値を超える場合はＳ８０４の処理を行う。
【００９６】
（Ｓ８０４）割り当て制御部７０３は、単位回路の割り当てを変更する。割り当て制御部７０３は、合計稼動時間が最大のプログラマブル論理回路の単位回路を一つを、合計稼動時間が最小のプログラマブル論理回路へ割り当てる。
【００９７】
割り当て制御部７０３は、合計稼動時間の差の半分に最も近い稼動時間の単位回路を選ぶ。尚、単位回路の選び方はこれだけに限られない。ランダムに選んでも良いし、稼動時間が最も長い（若しくは短い）単位回路を選んでも良い。また、複数の単位回路を選んでも良い。
【００９８】
（Ｓ８０５）割り当て制御部７０３は、プログラマブル論理回路１０１の動作電圧並びにクロック周波数を変更する。割り当てが変更された場合、割り当て制御部７０３は割り当て変更後の各プログラマブル論理回路の合計稼動時間のうち最大値を用いて、クロック周波数及び動作電圧を求める。クロック周波数および動作電圧は、第１の実施形態と同様にして求める。
【００９９】
割り当てが変更されていない場合は現在の各プログラマブル論理回路の合計稼動時間のうちの最大値を用いてクロック周波数及び動作電圧を求める。
【０１００】
以上、本実施形態の論理回路装置ならば、プログラマブル論理回路が複数ある場合に、各プログラマブル論理回路に処理を分散させて、要求される処理能力の最高値を抑制することができる。
【０１０１】
これにより、全体で要求される処理能力に応じてクロック周波数及び動作電圧を自動的に変化させることができるので、消費電力を減らすことができる。
【０１０２】
（第３の実施形態）図面を参照して本発明の第３の実施形態の論理回路装置について説明する。本実施形態の論理回路装置の構成は第２の実施形態と同様である。割り当て制御部７０３の動作が異なる。
【０１０３】
図９は本実施形態の割り当て制御部７０３による単位回路の割り当て調整処理のフローチャートである。
【０１０４】
（Ｓ９０１）割り当て制御部７０３は、各プログラマブル論理回路の合計稼動時間を求める。各プログラマブル論理回路の合計稼動時間は、各単位回路の稼動時間をプログラマブル論理回路毎に合計することで求められる。
【０１０５】
（Ｓ９０２）割り当て制御部７０３は、全てのプログラマブル論理回路の平均合計稼動時間を求める。
【０１０６】
（Ｓ９０３）割り当て制御部７０３は、各プログラマブル論理回路の合計稼動時間と平均合計稼動時間との差を求める。割り当て制御部７０３は合計稼動時間から平均合計稼動時間を減算する。従って、合計稼動時間が平均合計稼動時間を上回る場合に正の値となる。
【０１０７】
（Ｓ９０４）割り当て制御部７０３は、合計稼働時間と平均合計稼働時間との差の絶対値が閾値を越えるようなプログラマブル論理回路があるか調べる。割り当て制御部７０３は、そのようなプログラマブル論理回路が無ければＳ９０５の処理を行い、有る場合はＳ９０６の処理を行う。
【０１０８】
（Ｓ９０５）割り当て制御部７０３は、第２の実施形態のＳ８０５と同様にしてクロック周波数及び動作電圧を求める。そして、割り当て制御部７０３は、求められたクロック周波数および動作電圧をクロック・電圧供給部１１１に通知する。
【０１０９】
（Ｓ９０６）閾値を超えるプログラマブル論理回路がある場合、割り当て制御部７０３は単位回路の割り当てを変更する。割り当て制御部７０３は、第２の実施形態と同様にして、稼動時間が最大のプログラマブル論理回路の単位回路を少なくとも一つ、稼動時間が最小のプログラマブル論理回路に割り当てる。
【０１１０】
（Ｓ９０７）割り当て制御部７０３は、割り当て変更後の各プログラマブル論理回路の合計稼動時間を見積もる。
【０１１１】
（Ｓ９０８）割り当て制御部７０３は、割り当て変更後について、Ｓ９０３と同様にして各プログラマブル論理回路の合計稼動時間と合計平均稼動時間との差を求める。そして、Ｓ９０４の処理を再び行う。
【０１１２】
尚、上記説明ではＳ９０４、Ｓ９０６、Ｓ９０７及びＳ９０８のループに回数制限を設けていないが、実装するにあたっては、例えば回数制限を設けたり、ループ回数に応じてＳ９０４で用いる閾値を高くするなどの手法により無限ループを防ぐと良い。
【０１１３】
また、Ｓ９０６では、割り当て制御部７０３は、合計稼動時間が平均合計稼働時間を上回るプログラマブル論理回路の単位回路を、合計稼働時間が平均合計稼働時間を下回るプログラマブル論理回路へ割り当てるようにしても良い。尚、平均合計稼働時間を上回る（下回る）プログラマブル論理回路は、ランダムに選んでも良い。または、最も上回る（下回る）ものを選んでも良い。または、上位の何個かを選んでも良い。または、何らかの基準値を上回る（下回る）ものを選んでも良い。
【０１１４】
以上、本実施形態の論理回路装置ならば、プログラマブル論理回路が複数ある場合に、各プログラマブル論理回路に処理を分散させて、要求される処理能力の最高値を抑制することができる。
【０１１５】
これにより、全体で要求される処理能力に応じてクロック周波数及び動作電圧を自動的に変化させることができるので、消費電力を減らすことができる。
【０１１６】
（第４の実施形態）図面を参照して本発明の第４の実施形態の論理回路装置について説明する。本実施形態では、理想的な状態であれば各単位回路の稼動時間は予め想定された値に近いはずであるという仮定をし、各単位回路の稼動時間のバランスが悪い場合に、各プログラマブル論理回路への単位回路の割り当てを変更する。
【０１１７】
本実施形態の論理回路装置の構成は第２の実施形態とほぼ同様である。割り当て制御部７０３が予め与えられた各単位回路の稼動時間の想定値を保持している点と、割り当て制御部７０３の動作が第２の実施形態とは異なる。
【０１１８】
図１０は本実施形態の割り当て制御部７０３による単位回路の割り当て調整処理のフローチャートである。
【０１１９】
（Ｓ１００１）割り当て制御部７０３は、各単位回路の稼働時間と各プログラマブル論理回路の合計稼動時間とを求める。
【０１２０】
（Ｓ１００２）割り当て制御部７０３は、各単位回路の稼動時間と想定値との絶対値差分和を求める。絶対値差分和は各単位回路の稼動時間のバランスの良さを反映する。絶対値差分和は、バランスがよければ０に近くなり、バランスが悪いほど大きな値になる。
【０１２１】
（Ｓ１００３）割り当て制御部７０３は、絶対値差分和と閾値とを比較する。絶対値差分和の方が大きい場合は、割り当て制御部７０３はＳ１００４の処理を行う。絶対値差分和の方が小さい場合は、割り当て制御部７０３はＳ１００６の処理を行う。
【０１２２】
（Ｓ１００４）割り当て制御部７０３は、各プログラマブル論理回路への単位回路の割り当てを変更する。割り当て制御部７０３は、実際の稼動時間と想定値との差が最も大きい単位回路の割り当て先を変更する。割り当て制御部７０３は、この単位回路を、最も合計稼働時間が短いプログラマブル論理回路に変更する。
【０１２３】
尚、割り当てが変更される単位回路は一つに限らず複数でも良い。また、割り当て制御部７０３は、単位回路の割り当て先をランダムに選んで良い。
【０１２４】
（Ｓ１００５）割り当て制御部７０３は、各単位回路の稼動時間の想定値を用いて、割り当て変更後の各プログラマブル論理回路の稼動時間を見積もる。
【０１２５】
（Ｓ１００６）割り当て制御部７０３は、第２の実施形態のＳ８０５と同様にしてクロック周波数及び動作電圧を求めて、クロック・電圧供給部１１１に通知する。
【０１２６】
尚、各単位回路の稼動時間のバランスを表す指標として絶対値差分和を用いていたが、例えば二乗差分和でも良い。
【０１２７】
以上、本実施形態の論理回路装置ならば、各単位回路間の稼動時間を理想的に保ちつつ、全体で要求される処理能力に応じて、クロック周波数及び動作電圧を自動的に変化させることができる。よって、処理能力に応じた適切な電圧で動作させることができるので、消費電力を減らすことができる。
【０１２８】
以上、本実施形態の論理回路装置は、プログラマブル論理回路が複数ある場合に、各プログラマブル論理回路に処理を分散させて、要求される処理能力の最高値を抑制することができる。
【０１２９】
これにより、全体で要求される処理能力に応じてクロック周波数及び動作電圧を自動的に変化させることができるので、消費電力を減らすことができる。
【０１３０】
また、各単位回路間の実際の稼動時間と想定値との差を考慮しているので、各単位回路の稼動時間のバランスを保ちつつ、上記の効果（消費電力低減等）を得ることができる。
【０１３１】
（変形例）これまでに説明した各実施形態の論理回路装置はプログラマブル論理回路１０１だけで処理を行っていた。各実施形態の変形例の論理回路装置は専用回路を併用しても良い。この場合、この論理回路装置は専用回路も１個の単位回路として扱う。そして、この論理回路装置は、これまでと同様にしてクロック周波数及び動作電圧が変更される。
【０１３２】
また、これまでに説明した各実施形態の論理回路装置の稼動時間計測部１１０は、各単位回路の稼動時間を計測して記憶している。各実施形態の変形例の稼働時間計測部１１０は、稼動時間そのものの代わりに、ある単位時間あたりの稼動時間、例えば過去３秒間の稼動時間、を計測しても良い。あるいは、この稼働時間計測部１１０は、ある単位時間あたりに占める稼動時間の割合を計測していても良い。
【０１３３】
第４の実施形態の論理回路装置は各単位回路の稼動時間のバランスを考慮した。第４の実施形態の変形例の論理回路装置は、切り替え回数をバランスを表す指標として用いることもできる。この場合、変形例の論理回路装置は、例えば切り替え回数がある回数を超えた場合に当該単位回路を他のプログラマブル論理回路に割り当てるようにすると良い。
【０１３４】
第２から第４の実施形態の論理回路装置は複数のプログラマブル論理回路を有した。これらの実施形態の変形例の論理回路装置は、一つのプログラマブル論理回路を複数のブロックに区切って利用する場合にも適用可能である。
【０１３５】
また、これまでに説明した各実施形態は、各単位ブロックが論理演算を行う形式のプログラマブル論理回路を有していた。各実施形態の変形例の論理回路装置は、この形式以外のプログラマブル論理回路を有していてもよい。例えば、各単位ブロックで算術演算が可能なプログラマブル論理回路や、各単位ブロックで簡単なソフトウエア処理が可能なプログラマブル論理回路であっても構わない。
【図面の簡単な説明】
【０１３６】
【図１】第１の実施形態の論理回路装置のブロック図。
【図２】第１の実施形態で用いるプログラマブル論理回路の一例のブロック図。
【図３】第１の実施形態の論理回路装置で実現しようとしている概念を説明する図。
【図４】第１の実施形態のクロック周波数及び動作電圧を求める処理のフローチャート。
【図５】第２の実施形態の論理回路装置のブロック図。
【図６】単位回路の割り当て調整の概要を示す図。
【図７】第２の実施形態の制御部のブロック図。
【図８】第２の実施形態のクロック周波数及び動作電圧を求める処理のフローチャート。
【図９】第３の実施形態のクロック周波数及び動作電圧を求める処理のフローチャート。
【図１０】第４の実施形態のクロック周波数及び動作電圧を求める処理のフローチャート。
【図１１】回路切替の様子を機能的に示す図。
【図１２】回路切替の様子を機能的に示す図。
【図１３】回路切替の様子を機能的に示す図。
【図１４】回路切替の様子を機能的に示す図。
【符号の説明】
【０１３７】
１０１、３０１  プログラマブル論理回路
１０２  回路情報供給部
１０３  回路情報記憶部
１０４  入力ＦＩＦＯ選択部
１０５  出力ＦＩＦＯ選択部
１０６、３２０、３２１、３２２、３２３、３２４  ＦＩＦＯ
１０７、３０２、５０７  制御部
１０８  状態情報管理部
１０９  状態情報記憶部
１１０、３０３  稼動時間計測部
１１１、３０４  クロック・電圧供給部
２０１  ＬＵＴ
２０２  Ｄ−ＦｌｉｐＦｌｏｐ
２０３、２０５  ＲＡＭ
２０４、２０６  切替部
【図１】
2005136956.tif 000003
【図２】
2005136956.tif 000004
【図３】
2005136956.tif 000005
【図４】
2005136956.tif 000006
【図５】
2005136956.tif 000007
【図６】
2005136956.tif 000008
【図７】
2005136956.tif 000009
【図８】
2005136956.tif 000010
【図９】
2005136956.tif 000011
【図１０】
2005136956.tif 000012
【図１１】
2005136956.tif 000013
【図１２】
2005136956.tif 000014
【図１３】
2005136956.tif 000015
【図１４】
2005136956.tif 000016