(57)【要約】【課題】再構成デバイスの利用時に、回路面積の小型化、スループットの向上あるいは低消費電力化等の各種の要求項目を実現することが可能な情報処理装置及び再構成デバイスの利用方法を提供する。【解決手段】再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードを生成してメモリへ格納しておく。再構成デバイスの動作時、異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて再構成デバイスに実行させる適切な回路を選択し、該選択した回路に対応するコンフィグレーションコードをメモリから再構成デバイスへロードする。再構成デバイスは、コンフィグレーションコードのロードが完了した段階で、選択された回路による入力データへの処理を開始する。【選択図】図１
2007179358.tif 000002
【特許請求の範囲】
【請求項１】
コンフィグレーションコードにしたがって所望のタスクを実行するための回路を変更可能に実現する再構成デバイスと、
前記再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードが格納されるコンフィグレーションコードメモリと、
前記異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて前記再構成デバイスに実行させる適切な回路を選択する、前記再構成デバイスに対する前記コンフィグレーションコードのロードを制御する再構成デバイスコントローラと、
を有する情報処理装置。
【請求項２】
前記特徴は、
小さい回路面積である請求項１記載の情報処理装置。
【請求項３】
前記特徴は、
高いスループットである請求項１または２記載の情報処理装置。
【請求項４】
前記特徴は、
低消費電力である請求項１から３のいずれか１項記載の情報処理装置。
【請求項５】
前記再構成デバイスコントローラは、
前記タスク毎の特徴や前記タスク毎に要求された固有情報から決まるタスクの優先度に応じて、前記再構成デバイスに実行させる回路として、小さい回路面積を特徴とする回路を選択する請求項２記載の情報処理装置。
【請求項６】
再構成デバイスで処理された処理後のデータである出力データを一次的に保持する出力バッファを備え、
前記再構成デバイスコントローラは、
前記出力バッファで保持しているデータ量が所定のしきい値を越えたとき、前記再構成デバイスに実行させる回路として、小さい回路面積を特徴とする回路を選択する請求項２記載の情報処理装置。
【請求項７】
前記再構成デバイスコントローラは、
同一のタスクに対応して生成された小面積を特徴とする回路を実現するためのコンフィグレーションコードを前記再構成デバイスが備える複数の回路形成領域にそれぞれロードし、前記再構成デバイスに複数の同一のタスクを並列に実行させる請求項２記載の情報処理装置。
【請求項８】
前記再構成デバイスコントローラは、
前記タスク毎の特徴や前記タスク毎に要求された固有情報から決まるタスクの優先度に応じて、前記再構成デバイスに実行させる回路として、高いスループットを特徴とする回路を選択する請求項３記載の情報処理装置。
【請求項９】
再構成デバイスへ供給する処理対象のデータである入力データを一次的に保持する入力バッファを備え、
前記再構成デバイスコントローラは、
前記入力バッファで保持しているデータ量が所定のしきい値を越えたとき、前記再構成デバイスに実行させる回路として、高いスループットを特徴とする回路を選択する請求項３記載の情報処理装置。
【請求項１０】
周囲温度を検知するための温度センサを有し、
前記再構成デバイスコントローラは、
前記温度センサで検知された温度が所定のしきい値を越えたとき、前記再構成デバイスに実行させる回路として、低消費電力を特徴とする回路を選択する請求項４記載の情報処理装置。
【請求項１１】
電池の残量を検知するための残量センサを有し、
前記再構成デバイスコントローラは、
前記残量センサで検知された電池の残量が所定のしきい値より少なくなったとき、前記再構成デバイスに実行させる回路として、低消費電力を特徴とする回路を選択する請求項４記載の情報処理装置。
【請求項１２】
情報処理装置全体の処理や制御を行う、ＣＰＵを備えたシステムコントローラを有し、
前記システムコントローラは、
前記再構成デバイスコントローラにより、前記再構成デバイスに実行させる回路として、低消費電力を特徴とする回路が選択されたとき、前記ＣＰＵの動作周波数を低下させる請求項４記載の情報処理装置。
【請求項１３】
コンフィグレーションコードにしたがって所望のタスクを実行するための回路を変更可能に実現する再構成デバイスの利用方法であって、
予め、前記再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードを生成してメモリへ格納しておき、
前記異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて前記再構成デバイスに実行させる適切な回路を選択し、該選択した回路に対応するコンフィグレーションコードを前記メモリから前記再構成デバイスへロードし、
前記コンフィグレーションコードのロードが完了した段階で、前記再構成デバイスに、選択した回路による入力データへの処理を開始させる再構成デバイスの利用方法。
【請求項１４】
前記特徴は、
小さい回路面積である請求項１３記載の再構成デバイスの利用方法。
【請求項１５】
前記特徴は、
高いスループットである請求項１３または１４記載の再構成デバイスの利用方法。
【請求項１６】
前記特徴は、
低消費電力である請求項１３から１５のいずれか１項記載の再構成デバイスの利用方法。
【請求項１７】
前記タスク毎の特徴や前記タスク毎に要求された固有情報から決まるタスクの優先度に応じて、前記再構成デバイスに実行させる回路として、小さい回路面積を特徴とする回路を選択する請求項１４記載の再構成デバイスの利用方法。
【請求項１８】
前記再構成デバイスで処理された処理後のデータである出力データを一次的に保持する出力バッファで保持しているデータ量が所定のしきい値を越えたとき、前記再構成デバイスに実行させる回路として、小さい回路面積を特徴とする回路を選択する請求項１４記載の再構成デバイスの利用方法。
【請求項１９】
同一のタスクに対応して生成された小面積を特徴とする回路を実現するためのコンフィグレーションコードを前記再構成デバイスが備える複数の回路形成領域にそれぞれロードし、前記再構成デバイスに複数の同一のタスクを並列に実行させる請求項１４記載の再構成デバイスの利用方法。
【請求項２０】
前記タスク毎の特徴や前記タスク毎に要求された固有情報から決まるタスクの優先度に応じて、前記再構成デバイスに実行させる回路として、高いスループットを特徴とする回路を選択する請求項１５記載の再構成デバイスの利用方法。
【請求項２１】
再構成デバイスへ供給する処理対象のデータである入力データを一次的に保持する入力バッファで保持しているデータ量が所定のしきい値を越えたとき、前記再構成デバイスに実行させる回路として、高いスループットを特徴とする回路を選択する請求項１５記載の再構成デバイスの利用方法。
【請求項２２】
周囲温度を検知するための温度センサで検知された温度が所定のしきい値を越えたとき、前記再構成デバイスに実行させる回路として、低消費電力を特徴とする回路を選択する請求項１６記載の再構成デバイスの利用方法。
【請求項２３】
電池の残量を検知するための残量センサで検知された電池の残量が所定のしきい値より少なくなったとき、前記再構成デバイスに実行させる回路として、低消費電力を特徴とする回路を選択する請求項１６記載の再構成デバイスの利用方法。
【請求項２４】
情報処理装置全体の処理や制御を行う、ＣＰＵを備えたシステムコントローラを有し、
前記システムコントローラは、
前記再構成デバイスコントローラにより、前記再構成デバイスに実行させる回路として、低消費電力を特徴とする回路が選択されたとき、前記ＣＰＵの動作周波数を低下させる請求項１６記載の再構成デバイスの利用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の処理を実行する回路の変更が可能な再構成デバイスを備えた情報処理装置及び再構成デバイスの利用方法に関する。
【背景技術】
【０００２】
情報処理装置は、その利用範囲が広がり、より高度な演算処理あるいは画像や動画のように大量のデータを高速に処理する能力が要求されている。このような要求を満たすための手法として、従来、ＣＰＵとは別に特定の演算や処理を実行するＤＳＰ（Digital Signal Processor）やＡＳＩＣ（Application Specific Integrated Circuit）等を備え、ＣＰＵの処理負荷を軽減することで情報処理装置の処理能力を向上させた構成が知られている。
【０００３】
しかしながら、近年の情報処理装置は、これら画像、動画、音声、音楽等のマルチメディアデータに対して様々な規格の圧縮／伸長処理や演算処理等が必要になり、またインターネット等のネットワークを介して各種データを送受信するための通信処理にも様々なプロトコルが用いられるようになってきている。さらに、ネットワーク上で送受信される情報の安全性が問題となっているため、情報セキュリティのための暗号化処理やそれを解読するための処理も必要となる。そのため、これらの処理に応じて多数のＤＳＰやＡＳＩＣ等を設けていたのでは、情報処理装置の回路規模やコストが膨大なものとなってしまう。
【０００４】
そこで、情報処理装置にＦＰＧＡ（Field Programmable Gate Array）やＤＲＰ（Dynamically Reconfigurable Processor）等の再構成デバイスを備え、必要に応じて再構成デバイス内のプログラムを書き換えて特定の処理を実行させることにより、情報処理装置のスループットを向上させると共に、コストを低減しつつ様々な処理要求への対応を可能にした構成が知られている。
【０００５】
再構成デバイスは、内部にプログラム（コンフィグレーションコード）を格納するための内部メモリを備え、ＣＰＵ等の制御により外部メモリに格納されたコンフィグレーションコードを内部メモリへロードし、ロードしたコンフィグレーションコードにしたがって内部に仮想的な回路を構成し、該回路により、入力されたデータに対して特定の処理（以下、タスクと称す）を実行する。
【０００６】
この内部メモリの容量には限りがあるため、コンフィギュレーションコードによって実現できる回路規模には限界があり、再構成デバイスにその内部メモリ容量以上の複数の回路を実行させる場合、再構成デバイスは、それらの回路を一度に実現できないため、コンフィグレーションコードを入れ替えながら実行する必要がある。
【０００７】
通常、コンフィグレーションコードのサイズは大きいため、内部メモリへロードするには時間がかかる。そのため、ＦＰＧＡでは、回路の一部が動作中であっても動作していない他の回路形成領域の変更が可能な構成が提案され、例えば米国Xilinx社のVirtex2（非特許文献１参照）やVirtex4（非特許文献２参照）が知られている。
【０００８】
また、ＤＲＰでは、回路の一部が動作中であっても使用していないコンテキストのコンフィギュレーションコードを外部から書き換えることが可能であり、例えば特許文献１や特許文献２にその手法が記載されている。
【０００９】
また、各処理工程に要求される能力に応じて再構成デバイスの処理時間を自動的に調整するために、再構成デバイスの入力データ及び出力データの蓄積量をそれぞれ監視し、回路の処理能力に応じてコンフィギュレーションコードを読み込むことが特許文献３に記載されている。
【００１０】
なお、ＣＰＵは、通常、命令（インストラクション）とデータを同時に入力して処理しているため、ＣＰＵを再構成デバイスとして考えることも可能である。ＣＰＵに実行させる処理（回路構成）を動的に書き換えることについては、例えば特許文献４や特許文献５で提案されている。また、使用コスト値に応じて回路（プログラム）を動的に書き換えることが特許文献６に記載されている。
【非特許文献１】P. Butel, G. Habay, A. Rachet, "Managing Partial Dynamic Reconfiguration in Virtex-II Pro FPGAs", Xilinx, Inc.,［平成１７年８月１５日検索］、インターネット<URL: HYPERLINK "http://www.xilinx.com/publications/xcellonline/xcell_50/xc_pdf/xc_mbda50.pdf" http://www.xilinx.com/publications/xcellonline/xcell_50/xc_pdf/xc_mbda50.pdf>
【非特許文献２】R. Krueger, "Dynamic Reconfiguration of Functional Blocks" Xilinx, Inc.,［平成１７年８月１５日検索］、インターネット<URL: HYPERLINK "http://www.xilinx.com/publications/xcellonline/xcell_52/xc_pdf/xc_v4config52.pdf" http://www.xilinx.com/publications/xcellonline/xcell_52/xc_pdf/xc_v4config52.pdf>
【特許文献１】特開２００４−１３３７８０号公報
【特許文献２】特開２００４−１３３７８１号公報
【特許文献３】特開２００５−１２４１３０号公報
【特許文献４】特開２０００−０４０７４５号公報
【特許文献５】特開２０００−５１６４１８号公報
【特許文献６】国際公開第２００１／０９０８８７号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【００１１】
情報処理装置では、上記再構成デバイスのように、その物理的な回路面積以上の回路を実現するだけではシステムに要求される課題を解決できない場合がある。例えば、回路は、単に回路面積が小さければよいというものではなく、データ処理に対して高いスループットが要求される場合や低消費電力が要求される場合がある。
【００１２】
また、これらの要求項目は一定ではなく、システムの動作状態に応じて変更が必要となる場合がある。例えば、システムに電力を供給する電池の残量が少なくなったときや装置の周囲温度が上昇したときは、回路の消費電力を抑制する必要がある。
【００１３】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、再構成デバイスの利用時に、回路面積の小型化、スループットの向上あるいは低消費電力化等の各種の要求項目を実現することが可能な情報処理装置及び再構成デバイスの利用方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため本発明の情報処理装置は、コンフィグレーションコードにしたがって所望のタスクを実行するための回路を変更可能に実現する再構成デバイスと、
前記再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードが格納されるコンフィグレーションコードメモリと、
前記異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて前記再構成デバイスに実行させる適切な回路を選択する、前記再構成デバイスに対する前記コンフィグレーションコードのロードを制御する再構成デバイスコントローラと、
を有する構成である。
【００１５】
一方、本発明の再構成デバイスの利用方法は、コンフィグレーションコードにしたがって所望のタスクを実行するための回路を変更可能に実現する再構成デバイスの利用方法であって、
予め、前記再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードを生成してメモリへ格納しておき、
前記異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて前記再構成デバイスに実行させる適切な回路を選択し、該選択した回路に対応するコンフィグレーションコードを前記メモリから前記再構成デバイスへロードし、
前記コンフィグレーションコードのロードが完了した段階で、前記再構成デバイスに、選択した回路による入力データへの処理を開始させる方法である。
【００１６】
上記のような情報処理装置及び再構成デバイスの利用方法では、再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードを予め生成しておき、異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて再構成デバイスに実行させる適切な回路を選択し、該選択した回路に対応するコンフィグレーションコードをメモリから再構成デバイスへロードするため、再構成デバイス内に構成する回路をシステムの動作状態に応じて適宜切り換えることができる。
【発明の効果】
【００１７】
本発明によれば、再構成デバイスで実現する回路をシステムの動作状態に応じて適宜切り換えることができるため、回路面積の小型化、スループットの向上あるいは低消費電力化等の、再構成デバイス内に構成する回路に対する各種の要求項目を実現することが可能になる。
【発明を実施するための最良の形態】
【００１８】
次に本発明について図面を参照して説明する。
【００１９】
図１は本発明の情報処理装置の一構成例を示すブロック図である。
【００２０】
図１に示すように、本発明の情報処理装置は、ＦＰＧＡやＤＲＰ等のようにコンフィグレーションコードにしたがって所望の処理（タスク）を実行するための回路を実現する再構成デバイス１と、再構成デバイス１で用いるコンフィグレーションコードが格納されるコンフィグレーションコードメモリ２と、再構成デバイス１の動作、及び再構成デバイス１に対するコンフィグレーションコードのロードを制御する再構成デバイスコントローラ３と、再構成デバイス１へ供給する処理対象のデータ（入力データ）を一時的に保持する入力バッファ４（図１では入力バッファ４1、４2）と、再構成デバイス１から出力される処理後のデータ（出力データ）を一時的に保持する出力バッファ５と、入力バッファ４及び出力バッファ５の動作を制御するバッファコントローラ６と、再構成デバイス１へ供給する入力データあるいは再構成デバイス１で処理された出力データに対して所望の処理を実行する複数の処理回路７（図１では処理回路７1〜７3）と、処理回路７の動作を制御する処理回路コントローラ８と、情報処理装置全体の処理や制御を行うシステムコントローラ９と、情報処理装置内の温度や電池の残量等を検出するセンサ１０とを有する構成である。
【００２１】
バッファコントローラ６、処理回路７、処理回路コントローラ８は、例えば論理回路やメモリ等を用いてそれぞれ構成してもよく、ＣＰＵ（またはＤＳＰ）と内部メモリとを備え、該内部メモリに格納されたプログラムにしたがってＣＰＵ（またはＤＳＰ）により各種の処理を実現する構成であってもよい。
【００２２】
システムコントローラ９は、情報処理装置全体の処理や制御を可能にするために、例えば、ＣＰＵ、ＤＳＰ、あるいはその他の処理装置を用いて構成される。
【００２３】
なお、再構成デバイスコントローラ３、バッファコントローラ６及び処理回路コントローラ８は、必ずしも備えている必要はなく、例えばシステムコントローラ９をプログラムにしたがって動作するＣＰＵで実現する場合、これらの装置の機能をシステムコントローラ９で実現することも可能である。その場合、再構成デバイスコントローラ３、バッファコントローラ６、処理回路コントローラ８及びシステムコントローラ９の各機能は、１つのＣＰＵによって実現してもよく、複数のＣＰＵによって実現してもよい。
【００２４】
また、図１では、再構成デバイス１へ供給する入力データ及び再構成デバイス１で処理された出力データに対してそれぞれ処理回路７で所望の処理を実行する構成を示しているが、これらの処理は、例えばシステムコントローラ９で実行してもよい。その場合、処理回路７は不要になる。
【００２５】
また、図１では、２つの入力バッファ４1、４2、１つの出力バッファ５、及び３つの処理回路７1、７2、７3を有する構成を示しているが、これらの装置の数は、再構成デバイス１の内部メモリの容量や処理能力、あるいは構成によって決まるものであり、それぞれ幾つ備えていてもよい。
【００２６】
センサ１０は、後述するように装置内の温度上昇や電池の残量が少なくなった状態を検知し、再構成デバイス１内に構成する回路を、低消費電力化を実現する回路へ切り換えるためのものである。このようなコンフィグレーションコードの切り換え処理が不要な場合、センサ１０を備える必要はない。
【００２７】
さらに、図１では、再構成デバイス１、コンフィグレーションコードメモリ２、再構成デバイスコントローラ３、入力バッファ４、出力バッファ５、バッファコントローラ６、処理回路７、処理回路コントローラ８及びシステムコントローラ９を、それぞれ独立して備える構成を示しているが、これらの装置は、その全てが１つのチップ上に形成されていてもよく、任意の複数の装置が１つのチップ上に形成された構成であってもよい。
【００２８】
図１に示す情報処理装置では、再構成デバイス１で実行するタスクとして、タスクＡ、Ｂ、Ｃが設定され、タスク毎に所望の要求項目を実現する複数の回路のコンフィギュレーションコードがそれぞれ生成される。ここで、「要求項目」（以下、特徴と称す）とは、小さい回路面積、高いスループット、低消費電力等が考えられる。
【００２９】
コンフィグレーションコードは、予め周知の合成ツールを用いて生成し、コンフィグレーションコードメモリ２へ格納しておく。合成ツールは、図２に示すように、例えば動作合成ツール、マッピングツール、配置配線ツール及びコード生成ツールを備えた構成である。動作合成ツールは、設計者が作成した動作記述で示される一連の処理を制御回路とデータパス回路に分離し、それぞれの回路の中間コードを生成する。マッピングツール及び配置配線ツールは、動作合成ツールから出力された中間コードで示される回路要素及びそれらを接続するための配線を再構成デバイス内に実装するための処理を実行する。コード生成ツールは、マッピングツール及び配置配線ツールで生成された回路（プログラム）をコンフィグレーションコードに変換する。このような合成ツールについては、戸井、粟島、若林、本村、「動的再構成プロセサをＣ言語だけで設計可能に」、日経エレクトロニクス、２００４年６月２１日号、ｐｐ．１３１−１３８等で詳細に記載されている。
【００３０】
近年の合成ツールは、Ｃ、Ｃ＋＋、Ｊａｖａ等の高位の言語やVerilog、ＶＨＤＬ等のハードウエア記述言語を用いて再構成デバイス内に構築可能な大規模な回路の設計が可能になってきている（図２はＣ言語を用いる例）。また、タスク毎に生成する複数のコンフィグレーションコードは、動作合成ツールに対して、スループット、回路面積、あるいは消費電力等に対する制約条件（合成制約）を設定することで生成できる。その場合、異なる特徴を持ちながら同じタスクを実行する様々な回路（例えば、単位面積当たりのスループットが異なる回路）を容易に生成できる（例えば、特開２００３−９９４０９号公報参照）。なお、タスク毎に生成する複数のコンフィグレーションコードは、同一のソースコードを用いて生成してもよく、異なるソースコードを用い、かつ異なるアルゴリズムを用いて生成してもよい。
【００３１】
このような構成において、本発明では、再構成デバイス１によるタスクの実行時、再構成デバイスコントローラ３によりシステムの動作状態に応じて適切な回路を選択し、選択した回路に対応するコンフィグレーションコードをコンフィグレーションコードメモリ２から再構成デバイス１の内部メモリへロードして回路を適宜切り換える。再構成デバイス１は、コンフィグレーションコードのロードが完了した時点で、対応する回路にて入力データに対する処理を開始する。コンフィグレーションコードは、そのサイズ（回路面積に相当）に応じて内部メモリの内容を全て書き換える場合、あるいは内部メモリの現在使用していない回路形成領域（コンテキストを含む）へロードする場合がある。
【００３２】
再構成デバイスコントローラ３による回路の選択方法としては、システムコントローラ９から得られる、タスク毎の特徴やタスク毎に要求された固有情報等から決まるタスクの優先度に応じて回路を選択する方法がある。ここで、固有情報とは、タスクに対して高いスループットが要求されている否か、優先的な処理が要求されているか否か、タスクの処理順が指定されているか否か等の情報である。
【００３３】
例えば、現在実行しているタスクよりも優先的に処理すべきタスクが要求された場合、その優先度の高いタスクのコンフィグレーションコード（高スループットを特徴とする回路）のロードが完了した段階で、実行中のタスクを中断して優先度の高いタスクを実行する。但し、優先度の高いタスクに対して高いスループットが要求されていない場合は、優先度の高いタスクとして小面積を特徴とする回路を選択し、現在実行しているタスクと高い優先度のタスクを並列に実行する方法もある。なお、再構成デバイスの出力データをさらに再構成デバイスで処理する等、入力データと出力データ間に依存性があるタスクが要求された場合は、該タスクを複数の回路で並列に実行することなく、高いスループットの回路を選択して実行する。
【００３４】
また、再構成デバイスコントローラ３による回路の他の選択方法として、バッファコントローラ６で管理する、入力バッファ４及び出力バッファ５が保持しているデータ量の情報を用い、再構成デバイス１の処理能力に応じて高スループットを特徴とする回路を選択する方法がある。
【００３５】
例えば、入力バッファ４で保持しているデータ量が、そのバッファ容量を越えるおそれがある（データ量が所定のしきい値を越える）場合は高スループットを特徴とする回路を選択し、出力バッファ５で保持しているデータ量が、そのバッファ容量を越えるおそれがある（データ量が所定のしきい値を越える）場合は、小面積を特徴とする回路（一般に、小面積の回路は遅延量が大きい）を選択する。
【００３６】
さらに、再構成デバイスコントローラ３による回路の他の選択方法として、センサ１０で検知された情報に基づいてシステムコントローラ９から発行される指示により低消費電力を特徴とする回路を選択する方法がある。
【００３７】
例えば、センサ１０が温度を検知する温度センサの場合は、装置内の温度がその許容範囲の上限に近づいたときに（所定のしきい値を越えたときに）低消費電力を特徴とする回路を選択する。また、センサ１０が電池の残量を検知する残量センサの場合は、電池の残量が所定のしきい値より少なくなったときに低消費電力を特徴とする回路を選択する。
【００３８】
なお、再構成デバイスコントローラ３による回路の選択方法は、上述したタスク毎に予め設定された優先度、タスク毎の特徴、タスク毎に固有の情報等に応じて回路を選択する方法、再構成デバイス１の処理能力に応じて高スループットを特徴とする回路を選択する方法、及びセンサ１０で検知された情報に基づいて低消費電力を特徴とする回路を選択する方法を適宜組み合わせてもよい。
【００３９】
本発明によれは、再構成デバイス１で実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードを予め生成してコンフィグレーションコードメモリ２へ格納しておき、異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて再構成デバイス１に実行させる適切な回路を選択し、該選択した回路に対応するコンフィグレーションコードをコンフィグレーションコードメモリ２から再構成デバイス１へロードするため、再構成デバイスで実現する回路をシステムの動作状態に応じて適宜切り換えることが可能になり、回路面積の小型化、スループットの向上あるいは低消費電力化等の、再構成デバイス１内に構成する回路に対する各種の要求項目を実現することができる。
【００４０】
次に、本発明の再構成デバイスの利用方法について図面を用いて説明する。
【００４１】
図３〜５は、図１に示した再構成デバイスの利用方法を示す図であり、再構成デバイスで処理するタスクの時間的な推移を示すタイミングチャートである。
【００４２】
図３は、最初に高スループットを特徴とするタスクＡのコンフィグレーションコードを再構成デバイス１にロードして時刻Ｔ０からタスクＡを実行し、次に小面積を特徴とするタスクＡのコンフィグレーションコード及び小面積を特徴とするタスクＢのコンフィグレーションコードをそれぞれ再構成デバイス１にロードして時刻Ｔ１から小面積を特徴とする２つの回路で該タスクＡ及びタスクＢを並列に実行し、最後に高スループットを特徴とするタスクＡのコンフィグレーションコードを再構成デバイス１にロードして時刻Ｔ２から高スループットを特徴とする回路でタスクＡを実行する例である。
【００４３】
図４は、最初に高スループットを特徴とするタスクＡのコンフィグレーションコードを再構成デバイス１にロードして時刻Ｔ０からタスクＡを実行し、次に小面積を特徴とするタスクＡのコンフィグレーションコード及び小面積を特徴とするタスクＢのコンフィグレーションコードをそれぞれ再構成デバイス１にロードして時刻Ｔ１から該タスクＡ及びタスクＢを並列に実行し、最後に小面積を特徴とするタスクＡのコンフィグレーションコードを再構成デバイス１の他のコンテキストにロードし、時刻Ｔ２から小面積を特徴とする２つの回路でタスクＡをそれぞれ並列に実行する例である。
【００４４】
また、図５は、最初に高スループットを特徴とするタスクＡのコンフィグレーションコードを再構成デバイス１にロードして時刻Ｔ０から高スループットを特徴とする回路でタスクＡを実行し、次に低消費電力を特徴とするタスクＡのコンフィグレーションコードを再構成デバイス１にロードして時刻Ｔ１から低消費電力を特徴とする回路でタスクＡ実行する例である。
【００４５】
図３は、処理回路コントローラ８またはバッファコントローラ６からの要求によってタスクＡよりもタスクＢを優先して実行しなければならない場合の、再構成デバイス１の利用例を示している。ここでは、タスクＢの処理に高いスループットが要求されていないため、時刻Ｔ１から小面積を特徴とする回路でタスクＢを実行している。この場合、再構成デバイス１で構成可能な回路面積に余裕があるため、時刻Ｔ１からタスクＢを実行しつつ小面積を特徴とする回路でタスクＡを並列に実行している。
【００４６】
なお、図３ではタスクＢが完了した時点で高スループットを特徴とする回路でタスクＡを再び実行している。このような処理手順は、タスクＡの入力データと出力データ間に依存性があるためにタスクＡを複数の回路で並列に実行できない場合に有効な方法である。
【００４７】
一方、図４では、タスクＢが終了すると、小面積を特徴とする２つの回路でタスクＡを並列に実行している。この場合、図３に示した利用方法と異なり高スループットを特徴とするタスクＡ用のコンフィギュレーションコードを再びロードする必要がない。したがって、高スループットを特徴とするタスクＡ用のコンフィギュレーションコードのロードに要する時間だけ情報処理装置のスループットが向上する。また、タスクＢの再実行が予想される場合に、小面積を特徴とするタスクＡ用の２つの回路の一方をタスクＢを実行するための回路に書き換えればよいため、コンフィギュレーションコードのロードに要する時間を最小限に抑制できる。
【００４８】
図５は、システムコントローラ９から再構成デバイス１の消費電力を低減するように要求された場合の再構成デバイスの利用例を示している。
【００４９】
例えば、情報処理装置が備えるセンサ１０によって、装置内の温度が許容温度範囲の上限に近づいたことを検知した場合、あるいは図１に示したシステムを携帯機器に適用した構成では電池の残量が少ない状態を検知した場合に、このような要求が発せられると想定される。その場合、高スループットを特徴とする回路から低消費電力を特徴とする回路へ切り換えてタスクＡを続行すれば、低消費電力の考慮が不要となるまでタスクＡの処理を停止する等の処置を行うことなく、消費電力を下げることができる。
【００５０】
なお、システムコントローラ９をＣＰＵで実現している場合、通常、ＣＰＵの消費電力は動作周波数と比例する関係にある。すなわち、ＣＰＵの消費電力を抑制するには動作周波数を下げればよい。一方、再構成デバイス１では、スループットをあまり低下させなくても消費電力を低減できる単位スループット当たりの消費電力が少ない回路や単位面積当たりの消費電力が少ない回路を合成できる。したがって、再構築デバイス１を、低消費電力を特徴とする回路へ切り換えると共に、この手法を併用すれば、情報処理装置全体の消費電力をより抑制できる。
【００５１】
ところで、複数のＣＰＵを備えたマルチＣＰＵシステムでは、各ＣＰＵが理想的に動作していれば装置全体のスループットとＣＰＵの個数（面積）は正比例の関係にある。つまり、タスクの処理に割り当てるＣＰＵの数を増やすと、それに比例してシステムのスループットが向上する。しかしながら、ＣＰＵの個数が増えると、共有するメモリに対するアクセスの競合やバスで伝送可能な伝送帯域の飽和、その他の共有資源に対するアクセスの競合によってスループットが飽和してくる。
【００５２】
それに対して、再構成デバイス１中に構成される回路は、ＣＰＵよりも細かな処理単位で実現可能であり、また同じ機能を持つ回路を大きな面積で実現することも可能である。その場合、複数の処理を並行して実行する回路を実現できること等からスループットと回路面積は基本的に正比例するが、採用するアルゴリズムによっては回路面積を増大した以上のスループットが得られる場合がある。例えば、２次元のＦＩＲフィルタを実現する場合、ｘ方向のループを展開する場合と、ｘ、ｙ方向のループを展開してパイプライン処理する場合とではアルゴリズムが異なるため、スループットと回路面積は正比例せず、ｘ、ｙ方向へ展開して処理する方が単位面積当たりのスループットが向上する。
【図面の簡単な説明】
【００５３】
【図１】本発明の情報処理装置の一構成例を示すブロック図である。
【図２】コンフィグレーションコードの生成に用いる合成ツールの一構成例を含む、コンフィグレーションコードのコンパイル手順を示すフローチャートである。
【図３】図１に示した再構成デバイスの利用方法を示す図であり、再構成デバイスで処理するタスクの時間的な推移を示すタイミングチャートである。
【図４】図１に示した再構成デバイスの利用方法を示す図であり、再構成デバイスで処理するタスクの時間的な推移を示すタイミングチャートである。
【図５】図１に示した再構成デバイスの利用方法を示す図であり、再構成デバイスで処理するタスクの時間的な推移を示すタイミングチャートである。
【符号の説明】
【００５４】
１    再構成デバイス
２    コンフィグレーションコードメモリ
３    再構成デバイスコントローラ
４、４1、４2    入力バッファ
５    出力バッファ
６    バッファコントローラ
７、７1、７2、７3    処理回路
８    処理回路コントローラ
９    システムコントローラ
１０    センサ
【図１】
2007179358.tif 000003
【図２】
2007179358.tif 000004
【図３】
2007179358.tif 000005
【図４】
2007179358.tif 000006
【図５】
2007179358.tif 000007