(57)【要約】【課題】ソフトウェアモジュールであるバンドルが複数動作する装置において、特定の処理を実行するハードウェア機能の処理能力の低下を抑制する。【解決手段】バンドル管理テーブル１３にＨＷ機能１７の利用の有無を登録しておき、バンドル管理手段１２が新たなバンドルをバンドル管理テーブルに登録する際に、ＨＷ機能を利用するバンドルの総数とＨＷ機能を利用可能なバンドルの最大数とを比較し、ＨＷ機能を利用するバンドルの総数がＨＷ機能を利用可能なバンドルの最大数に達していない場合は、そのバンドルをＨＷ機能利用可として登録し、達している場合は、そのバンドルをＨＷ機能利用不可として登録する。これにより、多数のバンドルがＨＷ機能１７の利用を所望しても、ＨＷ機能１７を利用できるバンドルの数を抑制し、ＨＷ機能１７の利用の切り替えや競合によるオーバヘッドの増加を防ぐことが可能となる。【選択図】図１
2014115758.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアプラットフォーム上で動作する複数のソフトウェアモジュールそれぞれについてハードウェア機能の利用可否を決定する情報処理装置であって、
特定の機能に特化した処理を行うハードウェア機能手段と、
前記ハードウェア機能手段による特定の機能をソフトウェアで処理するソフトウェア機能手段と、
前記ハードウェア機能手段および前記ソフトウェア機能手段を利用するためのインタフェースを前記ソフトウェアモジュールに対して提供する共通インタフェースと、
前記ハードウェア機能手段の利用が競合する場合あるいは競合が予想される場合に、所与の条件に合致した前記ソフトウェアモジュールには前記ソフトウェア機能手段を利用させる選択手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記複数のソフトウェアモジュール毎に、前記ハードウェア機能手段の利用の有無を登録したソフトウェアモジュール管理テーブルと、
新たなソフトウェアモジュールを前記ソフトウェアプラットフォームに登録する際に、前記ソフトウェアモジュール管理テーブルに登録された前記ハードウェア機能手段を利用する前記ソフトウェアモジュールの総数と予め定めた最大数とを比較し、前記総数が前記最大数に達していない場合は、当該ソフトウェアモジュールを前記ハードウェア機能手段を利用するソフトウェアモジュールとして前記ソフトウェアモジュール管理テーブルに登録し、前記総数が前記最大数に達している場合は、当該ソフトウェアモジュールを前記ハードウェア機能手段を利用しないソフトウェアモジュールとして前記ソフトウェアモジュール管理テーブルに登録するソフトウェアモジュール管理手段と、をさらに有し、
前記選択手段は、前記ソフトウェアモジュール管理テーブルに登録された情報に基づいて前記ソフトウェア機能手段を利用させるか否かを決定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記複数のソフトウェアモジュール毎に、優先度と前記ハードウェア機能手段の実行状態を登録した優先度管理テーブルをさらに有し、
前記選択手段は、優先度の低いソフトウェアモジュールが前記特定の機能を実行する場合は、前記特定の機能について１単位の実行毎により優先度の高いソフトウェアモジュールの実行状態を調べて、より優先度の高いソフトウェアモジュールが実行されている場合は、前記優先度の低いソフトウェアモジュールに前記ソフトウェア機能手段を利用させることを特徴とする請求項１記載の情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載の情報処理装置の前記ハードウェア機能手段以外の各部としてコンピュータを動作させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアプラットフォーム上で動作するソフトウェアモジュールのハードウェア機能の利用を制御する技術に関する。
【背景技術】
【０００２】
ユーザ宅内のローカルネットワークを外部のネットワークに接続するＧＷ（ゲートウェイ）装置は、バンドルと呼ばれるソフトウェアモジュールをダウンロードしてインストールすることにより、容易に機能拡張を図ることができる（非特許文献１参照）。
【０００３】
ＪａｖａＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）上にＯＳＧｉフレームワークを構成し、ＯＳＧｉ用にバンドルを作成することで、ＧＷ装置のハードウェアやＯＳの違いを吸収し、共通のバンドルを異なるＧＷ装置において使用することができる（非特許文献２参照）。
【０００４】
一方、ＧＷ装置に採用されているハードウェアには、特定の機能をハードウェア処理することが可能なアプリケーションプロセッサも出始めている（非特許文献３参照）。このようなハードウェア機能を使用することで、特定の処理について、ＣＰＵでソフトウェア処理を行う場合よりも高速化を図ることが可能となる。
【０００５】
しかしながら、ＪａｖａＶＭやＯＳＧｉには特定の機能を実行する専用のハードウェア機能を用いるための共通的なＩＦが提供されていないため、どのＧＷ装置でも動作するようにソフトウェア処理を用いる共通のバンドルでは、ハードウェア機能を利用できず、当該機能の処理性能を上げることができない（図７（ａ））。また、ハードウェア機能を利用する場合には、Ｎａｔｉｖｅコードに対応したバンドルを別途作成する必要があり、バンドルの流通性が悪くなってしまう（図７（ｂ））。
【０００６】
そのため、ＧＷ装置内のＪａｖａＶＭ等のソフトウェアプラットフォームに対して、ハードウェア機能とソフトウェア機能に関する共通ＩＦ（インタフェース）を提供することにより、同一のバンドルを用いて、ＧＷ装置のハード構成（ハードウェア機能の有無）に応じて、当該機能に関して、ハードウェア機能とソフトウェア機能を適切に実行させる方式が検討され始めている。例えば、図８に示すように、ハードウェア機能が無い場合にはソフトウェア機能が用いられ、ハードウェア機能が有る場合にはハードウェア機能が用いられるような共通ＩＦを提供する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】大村弘之編著、「やさしいホームＩＣＴ」、社団法人電気通信協会、平成２３年１１月、pp.83-85
【非特許文献２】大村弘之編著、「やさしいホームＩＣＴ」、社団法人電気通信協会、平成２３年１１月、pp.90-93
【非特許文献３】西田享邦、小池恵一、「サービス品質を確かな通信で支える端末向けネットワーク処理技術」、ＮＴＴ技術ジャーナル、平成２２年１２月、第２２巻、第１２号、pp.28-31
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＧＷ装置は、宅内に設置する装置であり、さほど高性能な部品により構成されていない。またハードウェア機能の部品も同じ機能に関して１個しか実装されていないケースが多い。そのため、ＧＷ装置にインストールされるバンドルの数が増え、複数のバンドルが同時に同じハードウェア機能を利用しようとした場合には、複数のバンドルの処理を並行して行うため、ハードウェア機能は一定時間毎に処理をバンドル単位で切り替える必要がある。バンドル毎の処理の切り替えにより発生する割り込み処理等がオーバーヘッドとなり、ハードウェア機能の処理性能が全体的に低下してしまうことが懸念される。
【０００９】
本発明は、上記に鑑みてなされたものであり、ソフトウェアモジュールであるバンドルが複数動作する装置において、特定の処理を実行するハードウェア機能の処理能力の低下を抑制することを目的とする。
【課題を解決するための手段】
【００１０】
第１の本発明に係る情報処理装置は、ソフトウェアプラットフォーム上で動作する複数のソフトウェアモジュールそれぞれについてハードウェア機能の利用可否を決定する情報処理装置であって、特定の機能に特化した処理を行うハードウェア機能手段と、前記ハードウェア機能手段による特定の機能をソフトウェアで処理するソフトウェア機能手段と、前記ハードウェア機能手段および前記ソフトウェア機能手段を利用するためのインタフェースを前記ソフトウェアモジュールに対して提供する共通インタフェースと、前記ハードウェア機能手段の利用が競合する場合あるいは競合が予想される場合に、所与の条件に合致した前記ソフトウェアモジュールには前記ソフトウェア機能手段を利用させる選択手段と、を有することを特徴とする。
【００１１】
上記情報処理装置において、前記複数のソフトウェアモジュール毎に、前記ハードウェア機能手段の利用の有無を登録したソフトウェアモジュール管理テーブルと、新たなソフトウェアモジュールを前記ソフトウェアプラットフォームに登録する際に、前記ソフトウェアモジュール管理テーブルに登録された前記ハードウェア機能手段を利用する前記ソフトウェアモジュールの総数と予め定めた最大数とを比較し、前記総数が前記最大数に達していない場合は、当該ソフトウェアモジュールを前記ハードウェア機能手段を利用するソフトウェアモジュールとして前記ソフトウェアモジュール管理テーブルに登録し、前記総数が前記最大数に達している場合は、当該ソフトウェアモジュールを前記ハードウェア機能手段を利用しないソフトウェアモジュールとして前記ソフトウェアモジュール管理テーブルに登録するソフトウェアモジュール管理手段と、をさらに有し、前記選択手段は、前記ソフトウェアモジュール管理テーブルに登録された情報に基づいて前記ソフトウェア機能手段を利用させるか否かを決定することを特徴とする。
【００１２】
上記情報処理装置において、前記複数のソフトウェアモジュール毎に、優先度と前記ハードウェア機能手段の実行状態を登録した優先度管理テーブルをさらに有し、前記選択手段は、優先度の低いソフトウェアモジュールが前記特定の機能を実行する場合は、前記特定の機能について１単位の実行毎により優先度の高いソフトウェアモジュールの実行状態を調べて、より優先度の高いソフトウェアモジュールが実行されている場合は、前記優先度の低いソフトウェアモジュールに前記ソフトウェア機能手段を利用させることを特徴とする。
【００１３】
第２の本発明に係る情報処理プログラムは、上記情報処理装置の前記ハードウェア機能手段以外の各部としてコンピュータを動作させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ソフトウェアモジュールであるバンドルが複数動作する装置において、特定の処理を実行するハードウェア機能の処理能力の低下を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態における情報処理装置の構成を示す機能ブロック図である。
【図２】バンドル管理テーブルの例を示す図である。
【図３】バンドルをバンドル管理テーブルに登録する処理の流れを示すフローチャートである。
【図４】優先度管理テーブルの例を示す図である。
【図５】バンドル間でＨＷ機能の利用を切り替える処理の流れを示すシーケンス図である。
【図６】バンドル間でＨＷ機能の利用を切り替えるときに処理されるデータを説明する図である。
【図７】従来の共通ＩＦが無いＧＷ装置の構成を示す図である。
【図８】従来の共通ＩＦを備えたＧＷ装置の構成を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を用いて説明する。
【００１７】
［第１の実施の形態］
図１は、第１の実施の形態における情報処理装置の構成を示す機能ブロック図である。図１に示す情報処理装置１は、ソフトウェアプラットフォーム１１、バンドル管理部１２、バンドル管理テーブル１３、共通ＩＦ（インタフェース）１４、ＨＷ（ハードウェア）機能チェック部１５、ＣＰＵ１６、およびＨＷ機能１７を備える。情報処理装置１は、例えば、宅内に設置されるゲートウェイ装置であり、宅内のローカルネットワークを外部のネットワークに接続する。情報処理装置１は、バンドルと呼ばれるソフトウェアモジュールをダウンロードしてインストールすることで機能を拡張する。なお、情報処理装置１を演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは情報処理装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１８】
ソフトウェアプラットフォーム１１は、ＪａｖａＶＭとＪａｖａＶＭ上で動作するバンドルの実行環境であるＯＳＧｉで構成され、バンドル２Ａ，２Ｂ，２Ｃを動作させる。
【００１９】
バンドル管理部１２は、インストールされたバンドル２Ａ，２Ｂ，２Ｃの名称及びＨＷ機能利用の有無をバンドル管理テーブル１３に登録し、インストールされたバンドルの数、ＨＷ機能を利用するバンドルの総数、およびＨＷ機能を利用可能なバンドルの最大数を管理する。情報処理装置１が複数のＨＷ機能を備える場合は、各ＨＷ機能について、ＨＷ機能を利用するバンドルの総数、ＨＷ機能を利用可能なバンドルの最大数を管理する。
【００２０】
バンドル管理テーブル１３は、バンドルの名称とＨＷ機能利用の有無（可否）を関連付けて格納する。図２に、バンドル管理テーブル１３で管理するテーブルの例を示す。同図に示す例では、情報処理装置１は２つのＨＷ機能を備え、２つのバンドルがインストールされている。いずれのバンドルもＨＷ（１）の機能を利用し、ＨＷ（２）の機能は利用しない。ＨＷ（１）の機能を利用するバンドルの数は２、ＨＷ（２）の機能を利用するバンドルの数は０である。なお、バンドルの名称の代わりにバンドルを一意に識別する識別子を用いてもよい。
【００２１】
共通ＩＦ１４は、ＨＷ機能１７を利用するためのインタフェースを提供する。バンドル２Ａ，２Ｂ，２Ｃは、情報処理装置１専用に作成されたソフトウェアモジュールではなく、共通ＩＦを備えた他の装置上でも動作するように作成されている。例えば、他の装置がＨＷ機能１７を備えていない場合は、共通ＩＦがＨＷ機能１７の機能をソフトウェアにより処理することで、同じバンドル２Ａ，２Ｂ，２Ｃを実行可能とする。
【００２２】
本実施の形態における共通ＩＦ１４は、ＨＷ機能実行部１４１、ＳＷ機能実行部１４２、およびＳＷ／ＨＷ機能切替部１４３を備える。ＨＷ機能実行部１４１は、ＨＷ機能１７を利用して処理を行う。ＳＷ機能実行部１４２は、ＣＰＵ１６を利用してソフトウェアによりＨＷ機能１７と同等の機能を実行する。所定の処理をＨＷ機能１７で処理するか、ＣＰＵ１６で処理するかの選択は、ＨＷ機能１７の利用が競合する場合あるいは競合が予想される場合に、バンドル２Ａ，２Ｂ，２Ｃが共通ＩＦ１４の提供する関数を呼び出すときにパラメータで指定する。本実施の形態では、ＨＷ機能実行部１４１とＳＷ機能実行部１４２の関係性として、ＳＷ機能実行部１４２の提供する関数セットをＨＷ機能実行部１４１の提供する関数セットのサブセットとする。
【００２３】
ＳＷ／ＨＷ機能切替部１４３は、ＨＷ機能チェック部１５がＨＷ機能１７の異常を検知した場合、あるいはＨＷ機能実行部１４１によりＨＷ機能１７を利用した際の返値にエラー値が返ってきた場合、ＳＷ機能実行部１４２に切り替えて処理を継続する。
【００２４】
ＨＷ機能チェック部１５は、ＨＷ機能１７の異常を検知する。
【００２５】
ＣＰＵ１６は、中央演算装置であり、ソフトウェアに従って処理を行う。
【００２６】
ＨＷ機能１７は、特定の機能に特化したハードウェアであり、ＨＷ機能１７を利用するためのドライバを介して共通ＩＦ１４から命令を受け付けて処理を行って結果を返す。ＨＷ機能１７による特定の機能としては、例えば、暗号化機能などがある。
【００２７】
次に、バンドルをバンドル管理テーブルに登録する処理の流れについて説明する。
【００２８】
図３は、バンドル管理部１２がバンドルをバンドル管理テーブルに登録する処理の流れを示すフローチャートである。
【００２９】
バンドル管理部１２は、ネットワーク等を介してバンドルを取得してインストールした後（ステップＳ１０１）、バンドル管理テーブル１３を参照してＨＷ機能を利用するバンドルの総数を取得する（ステップＳ１０２）。図２に示したバンドル管理テーブルの例では、ＨＷ（１）を利用するバンドルの総数は２であり、ＨＷ（２）を利用するバンドルの総数は０である。
【００３０】
そして、ＨＷ機能を利用するバンドルの総数と予め設定されたＨＷ機能を利用可能なバンドルの最大数とを比較する（ステップＳ１０３）。複数のＨＷ機能を有する場合は、ＨＷ機能それぞれについてＨＷ機能を利用するバンドルの総数とＨＷ機能を利用可能なバンドルの最大数を比較する。
【００３１】
ＨＷ機能を利用するバンドルの総数が予め設定されたバンドルの最大数に達している場合（ステップＳ１０３のＹｅｓ）、インストールされたバンドルをＨＷ機能を利用しないバンドルとし（ステップＳ１０４）、ＨＷ機能を利用するバンドルの総数が予め設定されたバンドルの最大数に達していない場合（ステップＳ１０３のＮｏ）、インストールされたバンドルをＨＷ機能を利用するバンドルとする（ステップＳ１０５）。
【００３２】
バンドル管理部１２は、インストールされたバンドルの名称とＨＷ機能の利用可否をバンドル管理テーブル１３に登録する（ステップＳ１０６）。本実施の形態では、ＨＷ機能利用不可の場合は「０」、ＨＷ機能利用可の場合は「１」を登録し、ＨＷ機能を利用するバンドルの総数を更新する。
【００３３】
そして、バンドル管理部１２は、インストールされたバンドルを起動し、起動したバンドルの内部変数にＨＷ機能の利用可否を登録する（ステップＳ１０７）。
【００３４】
以上の処理により起動したバンドルは、ＨＷ機能１７の機能を使用するとき、ＨＷ機能の利用可否が登録された内部変数をパラメータに設定して共通ＩＦ１４の提供する関数を呼び出す。具体的には、ＨＷ機能１７を利用する場合、つまり内部変数にＨＷ機能利用可が登録されている場合は、関数の引数として指定する＜ｂｙｐａｓｓ＞パラメータ値を「０」とし、ＣＰＵ１６によるソフトウェアで処理する場合、つまり内部変数にＨＷ機能利用不可が登録されている場合は、＜ｂｙｐａｓｓ＞パラメータ値を「１」とする。
【００３５】
なお、ＨＷ機能を利用可能なバンドルの最大数は、管理者が情報処理装置１の設定画面から手動で設定する方法や、情報処理装置１の出荷時に予め設定しておく方法がある。
【００３６】
バンドルをアンインストールする際には、バンドル管理テーブル１３から該当する欄を削除し、ＨＷ機能を利用するバンドルの総数を更新する。このとき、削除したバンドルがＨＷ機能を利用するものであり、他の動作中のバンドルにＨＷ機能が利用不可が設定されたものがある場合、そのバンドルが再起動されると、図３のステップＳ１０２からの処理が行われ、ＨＷ機能を利用するバンドルの総数がＨＷ機能を利用可能なバンドルの最大数に達していないときは、そのバンドルについてＨＷ機能が利用可能として登録される。
【００３７】
以上説明したように、本実施の形態によれば、バンドル管理テーブル１３にバンドル２Ａ，２Ｂ，２ＣそれぞれについてＨＷ機能１７の利用の有無を登録しておき、バンドル管理部１２が新たなバンドルをバンドル管理テーブルに登録する際に、ＨＷ機能を利用するバンドルの総数とＨＷ機能を利用可能なバンドルの最大数とを比較し、ＨＷ機能を利用するバンドルの総数がＨＷ機能を利用可能なバンドルの最大数に達していない場合は、そのバンドルをＨＷ機能利用可として登録し、達している場合は、そのバンドルをＨＷ機能利用不可として登録することにより、多数のバンドルがＨＷ機能１７の利用を所望しても、ＨＷ機能１７を利用できるバンドルの数を抑制し、ＨＷ機能１７の利用の切り替えや競合によるオーバヘッドの増加を防ぐことが可能となる。
【００３８】
［第２の実施の形態］
第２の実施の形態では、バンドル２Ａ，２Ｂ，２Ｃ毎に予め設定された優先度に基づいてＨＷ機能１７の利用を切り替える。第２の実施の形態における情報処理装置の構成は、バンドル管理部１２、バンドル管理テーブル１３の代わりに優先度管理部、優先度管理テーブルを備える点で相違する以外は、第１の実施の形態とほぼ同様である。
【００３９】
図４に、優先度管理テーブルで管理するテーブルの例を示す。優先度管理テーブルは、各バンドルについて優先度（priority）と実行状態（execute）を格納している。本実施の形態では、普通の優先度を「０」、高い優先度を「１」とし、実行中を「１」、停止中を「０」とする。優先度はバンドルがインストールされたときに優先度管理テーブルに登録される。また、インストール後に、管理者が手動で優先度管理テーブルの優先度を設定してもよい。バンドルがアンインストールされた場合には、優先度管理テーブルから該当する欄を削除して更新する。なお、本実施の形態では優先度を「普通」、「高い」の２値としたが、３つ以上の優先度を用いてもよい。
【００４０】
実行状態は、バンドルの実行時に優先度管理部に対して実行を登録するとき、およびバンドルの停止時に優先度管理部に対して停止を登録するときに更新される。
【００４１】
次に、ＨＷ機能１７の利用を切り替える処理の流れについて説明する。
【００４２】
図５は、バンドル間でＨＷ機能１７の利用を切り替える処理の流れを示すシーケンス図である。図５では、ＨＷ機能１７を利用する優先度が普通のバンドルＡが実行中に、優先度の高いバンドルＢが実行を開始したときの処理の流れを示している。
【００４３】
優先度の高いＨＷ機能１７を利用するバンドルＢが実行を開始すると（ステップＳ２０１）、優先度管理部に実行開始を登録する（ステップＳ２０２）。
【００４４】
優先度管理部は、バンドルＢから実行開始の登録を受け付けると、優先度管理テーブルのバンドルＢの実行状態を実行中に設定する（ステップＳ２０３）。
【００４５】
バンドルＡがＨＷ機能１７を利用する関数を呼び出すとき（ステップＳ２０４）、優先度管理部にＨＷ機能１７が利用できるか否かを問い合わせる（ステップＳ２０５）。このとき、優先度の高いバンドルＢが実行中であるので、優先度管理部は、その旨をバンドルＡに通知する（ステップＳ２０６）。
【００４６】
バンドルＡは、優先度管理部から優先度の高いバンドルＢが実行中であることの通知を受けると、ＨＷ機能１７を使わずに、ＣＰＵ１６によるＳＷ処理を１単位分のデータについて行う（ステップＳ２０７）。具体的には、バンドルＡは、＜ｂｙｐａｓｓ＞パラメータ値に「１」を設定して共通ＩＦ１４の提供する関数を呼び出す。このとき、１単位分のデータについてＳＷ処理を行うように関数を呼び出す。例えば暗号化処理を行う場合は１データブロック長を処理するようにパラメータを指定して関数を呼び出す。
【００４７】
バンドルＢは実行が終了すると（ステップＳ２０８）、優先度管理部に実行終了を登録する（ステップＳ２０９）。
【００４８】
優先度管理部は、バンドルＢから実行終了の登録を受け付けると、優先度管理テーブルのバンドルＢの実行状態を停止中に設定する（ステップＳ２１０）。
【００４９】
そして、バンドルＡは１単位分の処理が終わると、続く１単位分の処理を行う前に、優先度管理部にＨＷ機能１７が利用できるか否かを問い合わせる（ステップＳ２１１）。このとき、優先度の高いバンドルは停止中であるので、優先度管理部は、その旨をバンドルＡに通知する（ステップＳ２１２）。
【００５０】
バンドルＡは、優先度管理部から優先度の高いバンドルは停止中であることの通知を受けると、ＨＷ機能１７を利用したＨＷ処理を１単位分のデータについて行う（ステップＳ２０７）。具体的には、バンドルＡは、＜ｂｙｐａｓｓ＞パラメータ値に「０」を設定して共通ＩＦ１４の提供する関数を呼び出す。
【００５１】
このように、バンドルＡは、ＨＷ機能１７で処理できる最小単位分のデータを処理する毎に、優先度管理部にバンドルＡより優先度の高いバンドルが実行中であるか否かを問い合わせ、優先度の高いバンドルが実行中である場合は、ＣＰＵ１６を用いたＳＷ処理を行い、優先度の高いバンドルが停止中である場合は、ＨＷ機能１７を用いたＨＷ処理を行う。
【００５２】
図６に、バンドルＡ，Ｂによるデータ処理の様子を示す。図６に示す例では、バンドルＢの優先度はバンドルＡの優先度よりも高く、バンドルＡの実行中にバンドルＢが実行を開始、終了するときに、ＣＰＵ１６とＨＷ機能１７のどちらを用いて１単位毎のデータが処理されるのかを示している。図６中の四角の一つ一つがデータ１単位毎の処理を示しており、四角の中に斜線のある処理はＨＷ機能１７が実行し、白抜きの四角の処理はＣＰＵ１６が実行する。
【００５３】
バンドルＡのみが実行中は、ＨＷ機能１７で処理され、バンドルＢが実行を開始したときに、バンドルＢのデータはＨＷ機能１７で処理され、バンドルＡのデータはＣＰＵ１６で処理される。その後、バンドルＢが停止したときに、バンドルＡのデータは再びＨＷ機能１７で処理される。
【００５４】
以上説明したように、本実施の形態によれば、バンドル２Ａ，２Ｂ，２Ｃ毎に予め設定された優先度を優先度管理テーブルで管理し、優先度が普通のバンドルがＨＷ機能１７を利用する場合は、１単位の実行毎により優先度の高いバンドルの実行状態を調べて、より優先度の高いバンドルが実行されている場合は、ソフトウェアによりＨＷ機能１７の特定の機能を処理することにより、ＨＷ機能１７を利用するバンドルの競合を無くして、優先度が普通のバンドルがＨＷ機能１７を占有することによる装置全体の性能低下を防ぐことができる。
【符号の説明】
【００５５】
１…情報処理装置
１１…ソフトウェアプラットフォーム
１２…バンドル管理部
１３…バンドル管理テーブル
１４…共通ＩＦ
１４１…ＨＷ機能実行部
１４２…ＳＷ機能実行部
１４３…ＳＷ／ＨＷ機能切替部
１５…ＨＷ機能チェック部
１６…ＣＰＵ
１７…ＨＷ機能
２Ａ，２Ｂ，２Ｃ…バンドル
【図１】
2014115758.tif 000003
【図２】
2014115758.tif 000004
【図３】
2014115758.tif 000005
【図４】
2014115758.tif 000006
【図５】
2014115758.tif 000007
【図６】
2014115758.tif 000008
【図７】
2014115758.tif 000009
【図８】
2014115758.tif 000010