(57)【要約】      （修正有）【課題】多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置、及びその制御方法を提供する。【解決手段】演算処理を実行する一以上の演算処理手段３０を備える情報処理装置であって、前記演算処理手段３０の少なくとも一つは、演算器として機能する動的再構成デバイス３５を有しており、演算処理手段３０が実行する演算処理内容の解析結果に基づいて、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように動的再構成デバイス３５の内容を決定する第２の演算手法とのいずれかによって演算処理を行うように演算処理手段３０を制御する。【選択図】図１
2011221913.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を実行する一以上の演算処理手段を備える情報処理装置であって、
前記演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有しており、
前記動的再構成デバイスを備える演算処理手段が実行する演算処理の内容を解析し、該解析結果に基づいて、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法と、のいずれかによって演算処理を行うように、前記動的再構成デバイスを備える演算処理手段を制御する制御手段を備えることを特徴とする、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記動的再構成デバイスを備える演算処理手段は、自己が有する動的再構成デバイスの構成を規定するためのレジスタを備え、
前記制御手段は、前記レジスタに前記動的再構成デバイスの構成を指定するパラメータを書き込むことにより、前記動的再構成デバイスの構成を決定することを特徴とする、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記制御手段は、前記動的再構成デバイスを備える演算処理手段が実行する複数の演算処理であって、判定対象となる複数の演算処理に含まれる分岐命令及びジャンプ命令の数が所定値以上である場合に、前記第１の演算手法が適していると判定することを特徴とする、
情報処理装置。
【請求項４】
請求項１又は２に記載の情報処理装置であって、
前記制御手段は、前記動的再構成デバイスを備える演算処理手段が実行する複数の演算処理であって、判定対象となる複数の演算処理に含まれる四則演算命令数の数が所定値以上である場合に、前記第２の演算手法が適していると判定することを特徴とする、
情報処理装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の情報処理装置であって、
前記制御手段は、前記第２の演算手法を採用した場合の前記動的再構成デバイスの面積が所定値を超える場合には、他の基準による解析結果に拘わらず前記第１の演算手法を選択することを特徴とする、
情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の情報処理装置であって、
前記制御手段は、優先度が設定された複数の判定条件に基づいて、前記第１の演算手法と前記第２の演算手法のいずれかを選択することを特徴とする、
情報処理装置。
【請求項７】
演算処理を実行する二以上の演算処理手段を備える情報処理装置であって、
前記演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有しており、
前記演算処理手段が実行する一群の命令について、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法でそれぞれ前記二以上の演算処理手段に並行処理を行わせていずれが早く終了するかを学習し、以降、同じ一群の命令を実行させる場合には、前記第１の演算手法と前記第２の演算手法のうち早く終了した方の演算手法によって、一の演算処理手段に処理を行わせるように前記二以上の演算処理手段を制御する制御手段を備えることを特徴とする、
情報処理装置。
【請求項８】
一演算毎に命令を実行する演算器を備える第１の演算処理手段と、
複数演算を一括して行うことが可能な演算器を備える第２の演算処理手段と、
前記演算処理手段が実行する演算処理の内容を解析し、該解析結果に基づいて、前記第１の演算処理手段と前記第２の演算処理手段のいずれに演算処理を行うかを決定する制御手段と、
を備えることを特徴とする、情報処理装置。
【請求項９】
請求項１ないし８のいずれか１項に記載の情報処理装置であって、
前記制御手段は、前記演算処理手段とは異なるハードウエア構成によって実現される、
情報処理装置。
【請求項１０】
演算処理を実行する一以上の演算処理手段を備え、該演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有する情報処理装置の制御方法であって、
前記動的再構成デバイスを備える演算処理手段が実行する演算処理の内容を解析する解析ステップと、
前記解析ステップの解析結果に基づいて、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法と、のいずれかによって演算処理を行うように前記動的再構成デバイスを備える演算処理手段を制御する制御ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
演算処理を実行する二以上の演算処理手段を備え、該演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有する情報処理装置の制御方法であって、
一群の命令について、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法でそれぞれ前記二以上の演算処理手段に並行処理を行わせていずれが早く終了するかを学習する学習ステップと、
以降、同じ一群の命令を実行させる場合には、前記第１の演算手法と前記第２の演算手法のうち早く終了した方の演算手法によって、一の演算処理手段に処理を行わせる制御ステップと、
を有することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコア・プロセッサやマルチプロセッサ装置のように、ＣＰＵ等の物理的な演算処理手段を複数個備える情報処理装置、及びその制御方法に関する。
【背景技術】
【０００２】
従来、一個のパッケージ内に複数のプロセッサコア（ＣＰＵコア）を備えるマルチコア・プロセッサ、ＣＰＵ等のプロセッサを複数個備えるマルチプロセッサ装置、更には仮想的な演算処理手段としてのスレッドを複数個備えるマルチスレッド処理装置が知られている。これらの情報処理装置は、複数の処理手段が並行・独立して演算処理等を実行可能となっている。
【０００３】
この種の情報処理装置は、例えば車両に搭載される車載制御装置の分野等で好適に用いられる。車載制御装置の分野では、情報処理装置の高性能化に伴い、複数の複数の制御機能を一の制御装置に統合する動きが見られるからである。
【０００４】
また、近年、ＦＰＧＡ（Field  Programmable  Gate  Array）やＰＬＤ（Programmable  Logic  Device）等、複数の演算処理を実行可能であると共に、その演算処理機能の内容を任意に変更可能な動的再構成デバイスが用いられている。
【０００５】
特許文献１には、演算回路として複数の演算セルを有する動的再構成論理回路を備えたマルチスレッドプロセッサについて記載されている。このプロセッサでは、スレッドを実行する毎に、動的再構成論理回路をスレッド用の構成に再構成している。また、スレッド切り替えの際に、全ての演算セルを同時に再構成するのではなく、演算の終了した演算セルを順次再構成して演算を実行させている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００７／３２３１７７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来のマルチスレッドプロセッサでは、順序性の高い一連の処理を実行する場合に、却って処理効率が低下する場合がある。例えば、演算処理Ａの結果に基づいて分岐処理Ｂを行うような処理の流れが多く存在する場合、従来のプロセッサのように一命令ずつ処理を行う方が、処理効率が高くなる場合があるからである。
【０００８】
本発明はこのような課題を解決するためのものであり、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置、及びその制御方法を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の第１の態様は、
演算処理を実行する一以上の演算処理手段を備える情報処理装置であって、
前記演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有しており、
前記動的再構成デバイスを備える演算処理手段が実行する演算処理の内容を解析し、該解析結果に基づいて、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法と、のいずれかによって演算処理を行うように、前記動的再構成デバイスを備える演算処理手段を制御する制御手段を備えることを特徴とする、
情報処理装置である。
【００１０】
この本発明の第１の態様によれば、動的再構成デバイスを備える演算処理手段が実行する演算処理の内容を解析し、この解析結果に基づいて、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように動的再構成デバイスの内容を決定する第２の演算手法と、のいずれかによって演算処理を行うように動的再構成デバイスを備える演算処理手段が制御されるため、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置を提供することができる。
【００１１】
本発明の第１の態様において、
前記動的再構成デバイスを備える演算処理手段は、自己が有する動的再構成デバイスの構成を規定するためのレジスタを備え、
前記制御手段は、前記レジスタに前記動的再構成デバイスの構成を指定するパラメータを書き込むことにより、前記動的再構成デバイスの構成を決定することを特徴とするものとしてもよい。
【００１２】
また、本発明の第１の態様において、
前記制御手段は、前記動的再構成デバイスを備える演算処理手段が実行する複数の演算処理であって、判定対象となる複数の演算処理に含まれる分岐命令及びジャンプ命令の数が所定値以上である場合に、前記第１の演算手法が適していると判定することを特徴とするものとしてもよい。
【００１３】
また、本発明の第１の態様において、
前記制御手段は、前記動的再構成デバイスを備える演算処理手段が実行する複数の演算処理であって、判定対象となる複数の演算処理に含まれる四則演算命令数の数が所定値以上である場合に、前記第２の演算手法が適していると判定することを特徴とするものとしてもよい。
【００１４】
また、本発明の第１の態様において、
前記制御手段は、前記第２の演算手法を採用した場合の前記動的再構成デバイスの面積が所定値を超える場合には、他の基準による解析結果に拘わらず前記第１の演算手法を選択することを特徴とするものとしてもよい。
【００１５】
また、本発明の第１の態様において、
前記制御手段は、優先度が設定された複数の判定条件に基づいて、前記第１の演算手法と前記第２の演算手法のいずれかを選択することを特徴とするものとしてもよい。
【００１６】
本発明の第２の態様は、
演算処理を実行する二以上の演算処理手段を備える情報処理装置であって、
前記演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有しており、
前記演算処理手段が実行する一群の命令について、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法でそれぞれ前記二以上の演算処理手段に並行処理を行わせていずれが早く終了するかを学習し、以降、同じ一群の命令を実行させる場合には、前記第１の演算手法と前記第２の演算手法のうち早く終了した演算手法によって、一の演算処理手段に処理を行わせるように前記二以上の演算処理手段を制御する制御手段を備えることを特徴とする、
情報処理装置である。
【００１７】
この本発明の第２の態様によれば、一群の命令について、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように動的再構成デバイスの内容を決定する第２の演算手法でそれぞれ二以上の演算処理手段に並行処理を行わせていずれが早く終了するかを学習し、以降、同じ一群の命令を実行させる場合には、第１の演算手法と第２の演算手法のうち早く終了した方の演算手法によって、一の演算処理手段に処理を行わせるため、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置を提供することができる。
【００１８】
本発明の第３の態様は、
一演算毎に命令を実行する演算器を備える第１の演算処理手段と、
複数演算を一括して行うことが可能な演算器を備える第２の演算処理手段と、
前記演算処理手段が実行する演算処理の内容を解析し、該解析結果に基づいて、前記第１の演算処理手段と前記第２の演算処理手段のいずれに演算処理を行うかを決定する制御手段と、
を備えることを特徴とする、情報処理装置である。
【００１９】
また、本発明の第１ないし第３の態様において、
前記制御手段は、前記演算処理手段とは異なるハードウエア構成によって実現されるものとすると、好適である。
【００２０】
こうすれば、適切な役割分担によって効率的な処理を実現することができる。
【００２１】
本発明の第４の態様は、
演算処理を実行する一以上の演算処理手段を備え、該演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有する情報処理装置の制御方法であって、
前記動的再構成デバイスを備える演算処理手段が実行する演算処理の内容を解析する解析ステップと、
前記解析ステップの解析結果に基づいて、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法と、のいずれかによって演算処理を行うように前記動的再構成デバイスを備える演算処理手段を制御する制御ステップと、
を有することを特徴とする情報処理装置の制御方法である。
【００２２】
この本発明の第４の態様によれば、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置の制御方法を提供することができる。
【００２３】
本発明の第５の態様は、
演算処理を実行する二以上の演算処理手段を備え、該演算処理手段の少なくとも一つは、演算器として機能する動的再構成デバイスを有する情報処理装置の制御方法であって、
一群の命令について、一演算毎に命令を実行する第１の演算手法と、複数演算を一括して行うように前記動的再構成デバイスの内容を決定する第２の演算手法でそれぞれ前記二以上の演算処理手段に並行処理を行わせていずれが早く終了するかを学習する学習ステップと、
以降、同じ一群の命令を実行させる場合には、前記第１の演算手法と前記第２の演算手法のうち早く終了した方の演算手法によって、一の演算処理手段に処理を行わせる制御ステップと、
を有することを特徴とする情報処理装置の制御方法である。
【００２４】
この本発明の第５の態様によれば、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置の制御方法を提供することができる。
【発明の効果】
【００２５】
本発明によれば、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることが可能な情報処理装置、及びその制御方法を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１実施例に係る情報処理装置１のシステム構成例である。
【図２】ホストＣＰＵ２０に搭載されたＯＳ２２によってサブＣＰＵの演算手法が選択される様子を示す概念図である。
【図３】ホストＣＰＵ２０とサブＣＰＵ３０によって実行されるタスク処理の流れを示すフローチャートである。
【図４】ホストＣＰＵ２０が、タスクに含まれる命令の解析処理を行う際の処理の流れを示すフローチャートである。
【図５】ホストＣＰＵ２０が、タスクに含まれる命令の解析処理を行う際の処理の流れを示すフローチャートの他の例である。
【図６】ホストＣＰＵ２０が、タスクに含まれる命令の解析処理を行う際の処理の流れを示すフローチャートの他の例である。
【図７】複数のサブＣＰＵが動的再構成デバイスで構成されたＣＰＵ演算器３５を備える場合の処理の流れを概念的に示す図である。
【図８】第２実施例に係るホストＣＰＵ２０に搭載されたＯＳ２２によって、サブＣＰＵにタスク処理が指示される様子を示す概念図である。
【図９】第２実施例に係るホストＣＰＵ２０により実行される処理の流れを示すフローチャートである。
【図１０】本発明の他の実施例に係る情報処理装置のシステム構成例である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２８】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係る情報処理装置、及び情報処理方法について説明する。本実施例の情報処理装置は、マルチコア・プロセッサやマルチプロセッサ装置等、ＣＰＵ等の物理的な処理手段を複数個備える装置として構成される。以下の説明では、情報処理装置はマルチコア・プロセッサとして構成されるものとする。
【００２９】
また、本実施例の情報処理装置、及び情報処理方法は、車両に搭載され、車載機器制御のための種々の演算処理を行う車載制御装置に好適に適用される。特に、複数の機能が統合された車載制御装置のように、複数のタスクを同時実行する装置に好適に適用される。
【００３０】
［構成］
図１は、本発明の第１実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、主要な構成として、フラッシュＲＯＭ（Read  Only  Memory）１０と、ホストＣＰＵ（Central  Processing  Unit）２０と、複数のサブＣＰＵ３０＃１、３０＃２…と、メモリバス４０と、を備える。メモリバス４０には、各サブＣＰＵに対応したＩＮＴＣ（割り込みコントローラ）５０、ワーク領域として機能するＲＡＭ（Random  Access  Memory）５２、ＤＭＡＣ（Direct  Memory  Access  Controller）５４、タイマ５６等が接続されている。
【００３１】
フラッシュＲＯＭ１０には、各サブＣＰＵが実行する複数の命令（以下、制御プログラムと総称する）が格納されている。以下、制御プログラムのうち、ある程度の機能的なまとまりを有する命令群を、タスクと称する。
【００３２】
ホストＣＰＵ２０には、ＯＳ（Operating  System）２２が搭載される。このＯＳ２２は、一般的なオペレーティング・システムとして機能する他、後述するように、サブＣＰＵ２０が有する動的再構成デバイスの制御を行う。
【００３３】
サブＣＰＵ３０＃１は、プログラムカウンタ３１と、命令キュー３２と、セレクタ３３と、複数のレジスタセット３４Ａ、３４Ｂと、ＦＰＧＡ（Field  Programmable  Gate  Array）等の動的再構成デバイスで構成されたＣＰＵ演算器３５と、構成パラメータ格納用レジスタ３６と、を有する。その他、図示しないキャッシュメモリ等を有してもよい。
【００３４】
サブＣＰＵ３０＃２以下については、サブＣＰＵ３０＃１と同様の構成であってもよいし、動的再構成デバイスではなく従来の演算器が集合した演算ユニット（ＡＬＵ；Arithmetic  Logic  Unit）を備える構成であってもよい。すなわち、本発明の適用上、動的再構成デバイスで構成されたＣＰＵ演算器を備えるサブＣＰＵが少なくとも一つあればよく、それ以上のサブＣＰＵについては、個数（０個を含む）及び構成については任意である。以下、動的再構成デバイスで構成されたＣＰＵ演算器を備えるサブＣＰＵを区別しないときは、単にサブＣＰＵ３０と称することとする。
【００３５】
プログラムカウンタ３１は、ＯＳ２２及びＣＰＵ演算器３５からの指示によって決定される、次にフラッシュＲＯＭ１０からフェッチする命令のアドレスを保持している。そして、サブＣＰＵ３０の基準クロック（情報処理装置１の基準クロックと同じでもよい）の立ち上がり等のタイミングで、保持しているアドレスをフラッシュＲＯＭ１０に出力する。フラッシュＲＯＭ１０は、入力されたアドレスに格納されている命令を、サブＣＰＵ３０に出力する。
【００３６】
フラッシュＲＯＭ１０から入力された命令は、図示しない命令デコーダによってデコード（復号）され、命令キュー３２に格納される。命令キュー３２は、例えばＦＩＦＯ（First  In,  First  Out）に従って、格納された命令をＣＰＵ演算器３５に出力する。
【００３７】
ＣＰＵ演算器３５による演算結果等は、セレクタ３３によって選択されたレジスタセットに格納される。
【００３８】
ＣＰＵ演算器３５は、パラメータを変更することによって回路構成を動的に変更可能な演算器（動的再構成デバイス）である。このパラメータは、構成パラメータ格納用レジスタ３６に格納される。
【００３９】
ＣＰＵ演算器３５は、構成パラメータ格納用レジスタ３６に格納されたパラメータに応じて複数の演算処理を一括して行うように構成することもできるし、従来の演算器のように一の演算のみを行うように構成することもできる。
【００４０】
以下、複数の演算処理を一括して行うようにＣＰＵ演算器３５を構成して行う一括処理をＨＷ処理（ハードウエア処理）と称し、命令毎にＣＰＵ演算器３５を再構成することにより、一演算毎に命令を実行する逐次処理をＳＷ処理（ソフトウエア処理）と称する。
【００４１】
ここで、本実施例及び後述する第２実施例の構成では、動的再構成デバイスで構成されたＣＰＵ演算器３５を有するサブＣＰＵは、演算手段としてＣＰＵ演算器３５のみ有するものとして表現したが、動的再構成デバイスで構成されたＣＰＵ演算器３５を有するサブＣＰＵがＣＰＵ演算器３５に加えて従来のＡＬＵを有するものとしてよい。この場合、ＨＷ処理は、上記の通りＣＰＵ演算器３５によって実行される処理であるが、ＳＷ処理は従来のＡＬＵを用いて一演算毎に命令が実行される処理であると定義してもよい。更に、ＳＷ処理は、ＣＰＵ演算器３５と従来のＡＬＵの双方を用いて実行される処理であると定義してもよい。
【００４２】
［解析処理］
以下、ホストＣＰＵ２０に搭載されたＯＳ２２によって行われるＨＷ処理とＳＷ処理の選択処理について説明する。
【００４３】
図２は、ホストＣＰＵ２０に搭載されたＯＳ２２によってサブＣＰＵの演算手法が選択される様子を示す概念図である。ホストＣＰＵ２０に搭載されたＯＳ２２は、フラッシュＲＯＭ１０に格納された制御プログラムをタスク毎に解析し、演算手法を選択する。原則的には、ＨＷ処理を行った方が処理速度は早いのであるが、順序性の高いタスクの場合等では、ＳＷ処理を行った方が早い可能性があるからである。
【００４４】
これによって、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定することができる。また、順序性の高いタスクを処理する場合に、一律にＨＷ処理を行うものに比して処理効率を向上させることができる。更に、解析処理を行うＣＰＵと演算処理を行うＣＰＵを分離しているため、演算処理における処理効率を解析処理によって低下させるという不都合を抑制することができる。
【００４５】
図３は、ホストＣＰＵ２０とサブＣＰＵ３０によって実行されるタスク処理の流れを示すフローチャートである。
【００４６】
まず、ホストＣＰＵ２０は、次に実行されるタスクに含まれる命令の解析処理を行って、当該タスクをＨＷ処理とＳＷ処理のいずれによって行うか選択する（Ｓ１００）。
【００４７】
ＨＷ処理を選択した場合は（Ｓ１０２のＹｅｓ）、ホストＣＰＵはタスクの先頭アドレスをサブＣＰＵ３０のプログラムカウンタ３１に通知すると共に（Ｓ１０４）、一括処理に係るＣＰＵ演算器３５のパラメータを、構成パラメータ格納用レジスタ３６に書き込む（Ｓ１０６）。
【００４８】
サブＣＰＵ３０のＣＰＵ演算器３５は、プログラムカウンタ３１に従ってフェッチされたタスクに含まれる命令を、構成パラメータ格納用レジスタ３６に書き込まれた構成によるＨＷ処理によって一括して処理し（Ｓ１０８）、Ｓ１００に戻る。
【００４９】
一方、ＳＷ処理を選択した場合は（Ｓ１０２のＮｏ）、ホストＣＰＵはタスクの先頭アドレスをサブＣＰＵ３０のプログラムカウンタ３１に通知すると共に（Ｓ１１０）、逐次処理に係る最初の命令に係るパラメータを、構成パラメータ格納用レジスタ３６に出力する（Ｓ１１２）。
【００５０】
サブＣＰＵ３０のＣＰＵ演算器３５は、プログラムカウンタ３１に従ってフェッチされたタスクに含まれる命令を、ＳＷ処理によって逐次処理する（Ｓ１１４）。
【００５１】
そして、タスクの最終命令を終了したか否かを判定する（Ｓ１１６）。タスクの最終命令を終了していない場合は、プログラムカウンタ３１のカウンタ値を所定量インクリメントさせ（Ｓ１１８）、Ｓ１１４に戻る。なお、ＳＷ処理に係るＣＰＵ演算器３５のパラメータは、ホストＣＰＵ２０とサブＣＰＵのいずれによって設定されても構わない。タスクの最終命令を終了すると、Ｓ１００に戻る。
【００５２】
図４は、ホストＣＰＵ２０が、タスクに含まれる命令の解析処理を行う際の処理の流れを示すフローチャートである。
【００５３】
まず、ホストＣＰＵ２０は、当該タスクに含まれる分岐命令及びジャンプ命令の数が、所定値以上であるか否かを判定する（Ｓ２００）。
【００５４】
分岐命令及びジャンプ命令の数が所定値以上である場合は、ＳＷ処理を選択する（Ｓ２０２）。
【００５５】
分岐命令及びジャンプ命令の数が所定値未満である場合は、原則としてＨＷ処理の方が処理効率が高いと考えられる。しかしながら、ＣＰＵ演算器３５の限界を超えないことを確認するために、以下の判定を行う。
【００５６】
分岐命令及びジャンプ命令の数が所定値未満である場合は、ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が、所定値を超えるか否かを判定する（Ｓ２０４）。
【００５７】
ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が所定値以下である場合は、ＨＷ処理を選択する（Ｓ２０６）。
【００５８】
一方、ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が所定値を超える場合は、所望の構成をＣＰＵ演算器３５で実現することができないため、Ｓ２００の判定に拘わらず、ＳＷ処理を選択する（Ｓ２０２）。この場合、実装可能な段階までＨＷ処理を行うようにＣＰＵ演算器３５を構成し、それ以降の処理をＳＷ処理で行うようにしてもよい。なお、図４〜６では、「回路実装面積が所定値を超える場合にはＳＷ処理のみ行う」流れについてのみ記載した。
【００５９】
また、ホストＣＰＵによる解析処理は、以下のように行ってもよい。図５は、ホストＣＰＵ２０が、タスクに含まれる命令の解析処理を行う際の処理の流れを示すフローチャートの他の例である。
【００６０】
まず、ホストＣＰＵ２０は、当該タスクに含まれる四則演算処理の数が、所定値以上であるか否かを判定する（Ｓ３００）。
【００６１】
四則演算処理の数が所定値未満である場合は、ＳＷ処理を選択する（Ｓ３０２）。
【００６２】
四則演算処理の数が所定値以上である場合は、原則としてＨＷ処理の方が処理効率が高いと考えられる。しかしながら、ＣＰＵ演算器３５の限界を超えないことを確認するために、以下の判定を行う。
【００６３】
四則演算処理の数が所定値以上である場合は、ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が、所定値を超えるか否かを判定する（Ｓ３０４）。
【００６４】
ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が所定値以下である場合は、ＨＷ処理を選択する（Ｓ３０６）。
【００６５】
一方、ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が所定値を超える場合は、所望の構成をＣＰＵ演算器３５で実現することができないため、Ｓ３００の判定に拘わらず、ＳＷ処理を選択する（Ｓ３０２）。この場合、実装可能な段階までＨＷ処理を行うようにＣＰＵ演算器３５を構成し、それ以降の処理をＳＷ処理で行うようにしてもよい。
【００６６】
なお、図４及び図５のフローにおいて、ＣＰＵ演算器３５の大きさが十分なものである場合は、ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積についての判定を省略してもよい。
【００６７】
更に、ホストＣＰＵによる解析処理は、以下のように行ってもよい。図６は、ホストＣＰＵ２０が、タスクに含まれる命令の解析処理を行う際の処理の流れを示すフローチャートの他の例である。本フローでは、判定条件の優先度を、例えば（１）回路実装面積、（２）分岐命令及びジャンプ命令の数、（３）四則演算の数の順に設定し、総合的にＨＷ処理とＳＷ処理のいずれを選択するかを判断している。なお、（２）と（３）は逆であってもよい。
【００６８】
まず、ホストＣＰＵ２０は、ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が、所定値を超えるか否かを判定する（Ｓ４００）。
【００６９】
ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が所定値を超える場合は、所望の構成をＣＰＵ演算器３５で実現することができないため、ＳＷ処理を選択する（Ｓ４０２）。この場合、実装可能な段階までＨＷ処理を行うようにＣＰＵ演算器３５を構成し、それ以降の処理をＳＷ処理で行うようにしてもよい。
【００７０】
ＨＷ処理を行う場合のＣＰＵ演算器３５の回路実装面積が所定値以下である場合は、当該タスクに含まれる分岐命令及びジャンプ命令の数が、第１の所定値以上であるか否かを判定する（Ｓ４０４）。
【００７１】
分岐命令及びジャンプ命令の数が第１の所定値以上である場合は、ＳＷ処理を選択する（Ｓ４０２）。
【００７２】
分岐命令及びジャンプ命令の数が第１の所定値未満である場合は、当該タスクに含まれる分岐命令及びジャンプ命令の数が、第２の所定値以上であるか否かを判定する（Ｓ４０６）。ここで、第１の所定値＞第２の所定値である。
【００７３】
分岐命令及びジャンプ命令の数が第１の所定値未満、且つ第２の所定値以上である場合は、当該タスクに含まれる四則演算処理の数が、所定値以上であるか否かを判定する（Ｓ４０８）。
【００７４】
四則演算処理の数が所定値未満である場合は、ＳＷ処理を選択する（Ｓ４０２）。
【００７５】
分岐命令及びジャンプ命令の数が第２の所定値未満である場合（Ｓ４００、Ｓ４０４、Ｓ４０６でＮｏ）、及び分岐命令及びジャンプ命令の数が第１の所定値未満、且つ第２の所定値以上であり、更に四則演算処理の数が所定値以上である場合は（Ｓ４００のＮｏ、Ｓ４０４のＮｏ、Ｓ４０６のＹｅｓ、Ｓ４０８のＹｅｓ）、ＨＷ処理を選択する（Ｓ４１０）。
【００７６】
以上説明した本実施例の情報処理装置１によれば、ホストＣＰＵ２０に搭載されたＯＳ２２によって解析処理が行われ、これによってサブＣＰＵの演算手法が選択されるため、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定することができる。また、順序性の高いタスクを処理する場合に、一律にＨＷ処理を行うものに比して処理効率を向上させることができる。更に、解析処理を行うＣＰＵと演算処理を行うＣＰＵを分離しているため、演算処理における処理効率を解析処理によって低下させるという不都合を抑制することができる。
【００７７】
従って、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることができる。
【００７８】
なお、複数のサブＣＰＵが動的再構成デバイスで構成されたＣＰＵ演算器３５を備える場合、処理効率を更に向上させることができる。図７は、複数のサブＣＰＵが動的再構成デバイスで構成されたＣＰＵ演算器３５を備える場合の処理の流れを概念的に示す図である。本図において、サブＣＰＵ３０＃１、３０＃２は、互いに処理結果を利用し合っている。
【００７９】
図示するように、ホストＣＰＵ２０は、サブＣＰＵ３０＃１がタスク処理を行っている間に、サブＣＰＵ３０＃２の解析処理及びＣＰＵ演算器３５のパラメータ決定処理を行うことができる。次いで、サブＣＰＵ３０＃２がタスク処理を行っている間には、サブＣＰＵ３０＃１の解析処理及びＣＰＵ演算器３５のパラメータ決定処理を行うことができる。このように、複数のサブＣＰＵが動的再構成デバイスで構成されたＣＰＵ演算器３５を備える場合、ＣＰＵ演算器３５のパラメータ決定処理等に要する時間をある程度リカバーし、処理効率を向上させることが可能となる。
【００８０】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る情報処理装置、及び情報処理方法について説明する。本実施例の情報処理装置は、マルチコア・プロセッサやマルチプロセッサ装置等、ＣＰＵ等の物理的な処理手段を複数個備える装置として構成される。以下の説明では、情報処理装置はマルチコア・プロセッサとして構成されるものとする。
【００８１】
また、本実施例の情報処理装置、及び情報処理方法は、車両に搭載され、車載機器制御のための種々の演算処理を行う車載制御装置に好適に適用される。特に、複数の機能が統合された車載制御装置のように、複数のタスクを同時実行する装置に好適に適用される。
【００８２】
構成、及び各構成要素の基本的機能については、第１実施例と同様であるため、図１を参照することとして、共通部分に関する説明を省略する。
【００８３】
図８は、第２実施例に係るホストＣＰＵ２０に搭載されたＯＳ２２によって、サブＣＰＵにタスク処理が指示される様子を示す概念図である。本実施例に係るホストＣＰＵ２０は、次に実行されるタスクが、以前に処理されたものではない場合は、二個のサブＣＰＵ３０に、それぞれＨＷ処理とＳＷ処理によって当該同一のタスクを処理させる。
【００８４】
タスク処理が終了すると、サブＣＰＵ３０はタスク終了割り込みによってホストＣＰＵ２０に通知する。タスク終了割り込みが通知されると、ホストＣＰＵ２０は、まだタスク処理を実行中のサブＣＰＵ３０に処理を中止させる。そして、次のタスクについて二個のサブＣＰＵ３０に、それぞれＨＷ処理とＳＷ処理によって並行処理させる。なお、このうち、ＳＷ処理を行うサブＣＰＵ３０は、動的再構成デバイスを用いてＳＷ処理を行ってもよいし、従来のＡＬＵを用いてＳＷ処理を行ってもよい。
【００８５】
ホストＣＰＵ２０は、係る処理を通じて、あるタスクについてＨＷ処理とＳＷ処理のいずれが早く終了したかを学習する。そして、次に実行するタスクが以前に処理されたものである場合は、学習を通じて早く終了したと判明している処理（ＨＷ処理又はＳＷ処理）によって一のサブＣＰＵ３０に処理させる。なお、係る学習結果は、例えばフラッシュＲＯＭ１０に格納されたタスクに、ラベル情報を付与することによって記憶される。
【００８６】
これによって、タスクの種類に適した演算手法で処理が実行されることになる。従って、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることができる。
【００８７】
図９は、第２実施例に係るホストＣＰＵ２０により実行される処理の流れを示すフローチャートである。
【００８８】
まず、ホストＣＰＵ２０は、次にサブＣＰＵ３０に実行させるタスクが、以前に処理されたものであるか否かを判定する（Ｓ５００）。係る判定は、例えば前述のラベル情報の有無によって行うことができる。
【００８９】
次にサブＣＰＵ３０に実行させるタスクが、以前に処理されたものである場合は、当該タスに付与されているラベル情報に応じた手法で（ラベル情報が示すＨＷ処理又はＳＷ処理で）、一のサブＣＰＵ３０に当該タスクを処理させ（Ｓ５０２）、本フローの１ルーチンを終了する。
【００９０】
一方、次にサブＣＰＵ３０に実行させるタスクが、以前に処理されたものでない場合は、二個のサブＣＰＵ３０に、それぞれＨＷ処理とＳＷ処理によってタスクを並行処理させる（Ｓ５０４）。
【００９１】
ホストＣＰＵ２０は、いずれかのサブＣＰＵ３０からタスク終了割り込みが通知されるまで待機し（Ｓ５０６）、タスク終了割り込みが通知されると、通知を行った方でないサブＣＰＵ３０にタスク処理を中止させ（Ｓ５０８）、通知を行った方のサブＣＰＵ３０が実行していた演算手法（学習結果）を、タスクに対応したラベル情報としてフラッシュＲＯＭ１０に格納し（Ｓ５１０）、本フローの１ルーチンを終了する。
【００９２】
以上説明した本実施例の情報処理装置２によれば、多様な処理の内容に応じて柔軟に動的再構成デバイスの内容を決定すると共に、処理効率を向上させることができる。
【００９３】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００９４】
例えば、第１実施例において、ホストＣＰＵ２０に搭載されたＯＳ２２が、サブＣＰＵ３０の実行する制御プログラムを解析してＣＰＵ演算器３５（動的再構成デバイス）の制御を行うものとしたが、係る制御主体は、ホストＣＰＵ２０やＯＳ２２に限定されない。例えば、サブＣＰＵ３０のいずれかが、係る解析・制御機能を有する機能ブロックを有するような構成であってもよいし、動的再構成デバイスの解析・制御用の専用ハードウエアを備えるような構成であってもよい。なお、これらの制御主体は、特許請求の範囲における「制御手段」の具体例であり、サブＣＰＵ３０が、特許請求の範囲における「演算処理手段」の具体例である。制御主体としてのホストＣＰＵ２０を備えない場合、「サブ」ＣＰＵという呼称は、あくまで便宜的なものである。
【００９５】
第２実施例においても、同様に、ホストＣＰＵ２０に搭載されたＯＳ２２が、二個のサブＣＰＵ３０に、それぞれＨＷ処理とＳＷ処理によって同一のタスクを並行処理させ、あるタスクについてＨＷ処理とＳＷ処理のいずれが早く終了したかを学習し、その後の制御を行うものとしたが、係る制御主体は、ホストＣＰＵ２０やＯＳ２２に限定されない。上記と同様に、サブＣＰＵ３０のいずれかが、係る学習・制御機能を有する機能ブロックを有するような構成であってもよいし、学習・制御用の専用ハードウエアを備えるような構成であってもよい。
【００９６】
また、第１実施例において、動的再構成デバイスで構成されたＣＰＵ演算器３５を有するサブＣＰＵ３０についてＨＷ処理とＳＷ処理のいずれを行うかを選択するものとしたが、動的再構成デバイスで構成されたＣＰＵ演算器３５を有するサブＣＰＵ３０と従来のＡＬＵを有するサブＣＰＵ３０をそれぞれ備え、ある演算処理について、（Ａ）動的再構成デバイスで構成されたＣＰＵ演算器３５を有するサブＣＰＵ３０にＨＷ処理を実行させるか、（Ｂ）従来のＡＬＵを有するサブＣＰＵ３０にＳＷ処理を実行させるかを選択するものとしてもよい。図１０は、係る場合のシステム構成例である。本図においては、サブＣＰＵ３０＃１が動的再構成デバイスで構成されたＣＰＵ演算器３５を有し、サブＣＰＵ３０＃２が従来のＡＬＵを有するものとした。この場合、（Ａ）、（Ｂ）の選択手法については、第１実施例で説明したＨＷ処理とＳＷ処理の選択手法を援用することができる。
【符号の説明】
【００９７】
１、２  情報処理装置
１０    フラッシュＲＯＭ
２０    ホストＣＰＵ
２２    ＯＳ
３０    サブＣＰＵ
３１    プログラムカウンタ
３２    命令キュー
３３    セレクタ
３４Ａ、３４Ｂ  レジスタセット
３５    ＣＰＵ演算器
３６    構成パラメータ格納用レジスタ
４０    メモリバス
５０    ＩＮＴＣ
５２    ＲＡＭ
５４    ＤＭＡＣ
５６    タイマ
【図１】
2011221913.tif 000003
【図２】
2011221913.tif 000004
【図３】
2011221913.tif 000005
【図４】
2011221913.tif 000006
【図５】
2011221913.tif 000007
【図６】
2011221913.tif 000008
【図７】
2011221913.tif 000009
【図８】
2011221913.tif 000010
【図９】
2011221913.tif 000011
【図１０】
2011221913.tif 000012