(57)【要約】【課題】  オペレーティングシステムを利用する情報処理装置において、カーネルに依存しない自律型のデバイスドライバを提供する。【解決手段】  オペレーティングシステムとは独立に動作し、ハードウェアの仕様に依存しないアプリケーションプログラムインターフェース（２０１）を有するミドルウェアサポートライブラリ（２０４）を利用する情報処理器１１０を提供する。ミドルウェアサポートライブラリ（２０４）は、ハードウェアで未実装の機能をソフトウェアで補填する。【選択図】  図１
2005122470.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション、ミドルウェア、およびオペレーティングシステムを含むソフトウェアと、複数個の周辺モジュールを含むＣＰＵを有するハードウェアとによって機能が実現される情報処理装置において、当該カーネルに依存しない自律型周辺モジュールの機能を前記ミドルウェアに提供する自律型デバイスドライバであって、
前記自律型周辺モジュールの機能を収集する機能収集論理手段と、
収集した論理を前記自律型周辺モジュールの仕様に依存しない形に再構築する機能再構築論理手段と、
再構築した論理を前記ミドルウェアに提供するアプリケーションプログラムインターフェース手段とを備える自律型デバイスドライバ。
【請求項２】
前記機能再構築論理手段は前記アプリケーションプログラムインターフェース手段が前記自律型周辺モジュールにアクセスするための周辺モジュールアクセス手段を含む請求項１に記載の自律型デバイスドライバ。
【請求項３】
前記情報処理装置で実行される論理を含むソフトウェアを記憶するメモリをさらに備え、
前記ミドルウェアは前記アプリケーションを支援する論理を含む請求項２に記載の自律型デバイスドライバ。
【請求項４】
前記周辺モジュールで実装している機能と、当該周辺モジュールで実装していない機能とを前記ＣＰＵによるソフトウェア処理で実現する機能補填手段をさらに備える請求項１に記載の情報処理装置。
【請求項５】
前記周辺モジュールで実装している機能の種類と、当該周辺モジュールの使用状態とを表す情報とを前記メモリに記憶するリソース管理手段をさらに備える請求項４に記載の自律型デバイスドライバ。
【請求項６】
前記リソース管理手段は前記周辺モジュールの機能が使用中である場合には前記使用状態を表す情報を使用不可能状態に更新し、前記周辺モジュールの機能が使用中でない場合は前記使用状態を表す情報を使用可能状態に更新することを特徴とする請求項５に記載の自律型デバイスドライバ。
【請求項７】
前記アプリケーションプログラムインターフェースは、前記リソース管理手段によって前記メモリに記憶された情報に基づいて、前記周辺モジュールアクセス手段と前記機能補填手段の何れを使用するか決定する機能選択手段をさらに備える請求項５に記載の自律型デバイスドライバ。
【請求項８】
前記ミドルウェアは、当該自律型デバイスドライバに要求する処理の優先度を管理する処理優先度管理手段をさらに備え、
前記機能選択手段は前記リソース管理手段によって前記メモリに記憶された情報と、前記処理優先度管理手段で管理される優先度に基づいて、前記周辺モジュールアクセス手段と前記機能補填手段の何れを使用するか決定することを特徴とする請求項５に記載の自律型デバイスドライバ。
【請求項９】
前記ミドルウェアは、前記情報処理装置の消費電力を管理する消費電力管理手段をさらに備え、
前記機能選択手段は前記リソース管理手段によって前記メモリに記憶された情報と、前記消費電力管理手段から供給され消費電力情報に基づいて、前記周辺モジュールアクセス手段と前記機能補填手段の何れを使用するかを決定することを特徴とする請求項５に記載の自律型デバイスドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハードウェア、デバイスドライバ、アプリケーションプログラムを含む情報処理装置において、同装置のシステムのカーネルに依存せずに動作する自律型デバイスドライバに関し、さらに当該自律型デバイスドライブを組み込んだ情報処理装置に関する。
【背景技術】
【０００２】
ハードウェア、デバイスドライバ、アプリケーションプログラムを含む情報処理装置の開発期間短縮のため、様々な設計方法が提案されている。そのような設計方法においては、アプリケーション層、ライブラリ層、オペレーティングシステム層、およびハードウェア層を含む情報処理装置のアーキテクチャが提案されている。同アーキテクチャでは、アプリケーション層のソフトウェアはライブラリ層のソフトウェア上で動作し、ライブラリ層のソフトウェアはオペレーティングシステム層のソフトウェア上で動作する。
【０００３】
オペレーティングシステム層のソフトウェアはハードウェア上で動作し、カーネルと、カーネル上で動作しハードウェアとのインターフェースを行うデバイスドライバから構成されている。ライブラリ層とアプリケーション層のソフトウェアとを、異なるハードウェアおよび異なるオペレーティングシステムを有する情報処理装置に移植する場合には、ライブラリ層のソフトウェアにサービスを提供しているオペレーティングシステム層のモジュールを変更するだけで良い。以上の仕組みによってソフトウェアの移植性を高めることができ、情報処理装置の開発期間短縮を図ることができる。
【０００４】
図１０を参照して、上述の情報処理装置のハードウェアとソフトウェアの階層構造の一例（特許文献１）について簡単に説明する。情報処理装置ＰＩ＿Ｃは、アプリケーション１０１、ミドルウェア１０２、デバイスドライバ群１０３＿Ｃ、カーネル１０４、オペレーティングシステム１０５＿Ｃ、周辺モジュール群１０６＿Ｃ、ＣＰＵコア１０７、ＣＰＵ１０８＿Ｃ、メモリ１０９、および情報処理器１１０＿Ｃを含む。アプリケーション１０１はミドルウェア１０２の支援論理を使用して動作する。ミドルウェア１０２はオペレーティングシステム１０５＿Ｃの支援論理を使用して動作する。
【０００５】
オペレーティングシステム１０５＿Ｃは、デバイスドライバ群１０３＿Ｃとカーネル１０４を含む。デバイスドライバ群１０３＿Ｃはカーネル１０４の支援論理を使用して動作し、周辺モジュール群１０６＿Ｃの機能をミドルウェア１０２に提供する論理を含む。カーネル１０４はＣＰＵコア１０７とメモリ１０９の機能を使用して動作し、デバイスドライバ群１０３＿Ｃとミドルウェア１０２を支援する論理を含む。情報処理器１１０＿Ｃは、ＣＰＵ１０８＿Ｃとメモリ１０９を含む。
【０００６】
また、ＣＰＵ１０８＿Ｃは周辺モジュール群１０６＿ＣとＣＰＵコア１０７を含む。デバイスドライバ群１０３＿Ｃおよび周辺モジュール群１０６＿Ｃ、それぞれ、ｎ個（ｎは任意の自然数）のデバイスドライバＤＤ１〜ＤＤｎおよびモジュールＭＬ１〜ＭＬｎを含む。そして、デバイスドライバＤＤ１〜ＤＤｎとモジュールＭＬ１〜ＭＬｎはそれぞれ一対一で対応している。なお、基本的に、情報処理器１１０＿Ｃはハードウェアで構成され、その他の要素はソフトウェアで構成される。
【特許文献１】特表２００１−５０３８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ソフトウェアを開発する際、ソフトウェアの移植性を考慮する。通常、ソフトウェアの移植性を向上させるためには、ソフトウェアを複数の層に切り分け、各層で標準的なアプリケーションプログラムインターフェースを定義する方法が採用される。この方法により、ソフトウェア変更の影響を標準的なアプリケーションプログラムインターフェースでせき止め、他層への影響を防ぐことができる。図１０に例示した情報処理装置ＰＩ＿Ｃにおいても、ソフトウェア階層を複数の層に切り分けてソフトウェアの移植性の向上を図っている。
【０００８】
しかし、デバイスドライバはオペレーティングシステムのカーネル上で動作、つまりカーネルに依存して動作するように設計されている。そのために、情報処理装置のオペレーティングシステムを変更する場合には、デバイスドライバ群およびそれに属する個々のデバイスドライバの修正が必要であり、ソフトウェア移植性の点で問題となる。つまり、情報処理装置を迅速に開発するためには、各要素（たとえば、デバイスドライバ）の設計、作成、検査、および修正などの一連の作業を、要素別あるいは作業別に、複数の技術者で分担して同時にカーネルの開発と並行して進めることが非常に望ましい。しかしながら、上述のようにオペレーティングシステム（カーネル）の仕様変更時には、デバイスドライバ群の修正が必要なために、複数の技術者による同時並行作業を困難にしている。
【０００９】
また、新規機能の追加、機能変更、あるいはデバッグなどの所謂メンテナンスにおいても、本来ならば、対象とされる機能を実現するデバイスドライバだけを追加、変更、あるいはデバッグ処理できれば効率が良いが、実際はデバイスドライバ群とモジュール群との全体に対してメンテナンス処理を施す必要がある。また、デバイスドライバ群はカーネルのサービスルーチンを使用するために、ソフトウェアのデバッグが困難である。また、デバイスドライバの開発者にとって、カーネルはブラックボックスであるので、カーネルに依存するデバイスドライバのデバックは、よりいっそう困難である。
【００１０】
このように、カーネル上で動作する依存型デバイスドライバは、情報処理装置の開発を複数の技術者による同時並行作業を困難にする。さらに、変更される機能以外のデバイスドライバに対してもメンテナンス処理を施さねばならず、低コストで、タイムリー且つ迅速なメンテナンスを困難にしている。
【００１１】
よって、本発明においては、オペレーティングシステムの変更などを伴う開発時においても要素毎或いは作業後との同時並行作業が可能で、機能単位でのメンテナンスが可能とするカーネルに依存しない自律型デバイスドライバおよび同自律型デバイスドライバを用いた情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
アプリケーション、ミドルウェア、およびオペレーティングシステムを含むソフトウェアと、複数個の周辺モジュールを含むＣＰＵを有するハードウェアとによって機能が実現される情報処理装置において、当該カーネルに依存しない自律型周辺モジュールの機能を前記ミドルウェアに提供する自律型デバイスドライバであって、前記自律型周辺モジュールの機能を収集する機能収集論理手段と、収集した論理を前記自律型周辺モジュールの仕様に依存しない形に再構築する機能再構築論理手段と、再構築した論理を前記ミドルウェアに提供するアプリケーションプログラムインターフェース手段とを備える。
【発明の効果】
【００１３】
以上説明したように、本発明にかかる自律型デバイスドライバはカーネルに依存しないので、カーネルと自律型デバイスドライバの平行開発が可能である。また、カーネルの仕様を変更する場合には、自律型デバイスドライバの修正が不要である。さらに、システムをカーネルを使用しない安価なものにする場合にも、自律型デバイスドライバには修正が不要である。なおさらに、自律型デバイスドライバはカーネルのサービスルーチンを使用  しないので、ソフトウェアのデバッグが容易である。また、自律型デバイスドライバはメンテナンスもカーネルとは関係なく実施できる。
【発明を実施するための最良の形態】
【００１４】
先ず、図１を参照して、本発明の基本的な概念について説明する。その後に、図２と図３、図４と図５、図６と図７、および図８と図９を参照して、それぞれ、本発明の第１の実施形態、第２の実施形態、第３の実施形態、および第４の実施形態について、詳述する。図１は、図１０におけるのと同様に、本発明にかかる情報処理装置のハードウェアとソフトウェアの階層構造を示している。
【００１５】
情報処理装置ＰＩは、アプリケーション１０１、ミドルウェア１０２、オペレーティングシステム１０５、情報処理器１１０、およびミドルウェアサポートライブラリ２０４を含む。つまり、情報処理装置ＰＩは、図１０に示した情報処理装置ＰＩ＿Ｃにおいて、オペレーティングシステム１０５＿Ｃおよび情報処理器１１０＿Ｃがそれぞれ、オペレーティングシステム１０５および情報処理器１１０に交換されると共に、ミドルウェアサポートライブラリ２０４が新たなに追加されている。なお、ミドルウェアサポートライブラリ２０４は、ミドルウェア１０２と情報処理器１１０の間に、オペレーティングシステム１０５と平行に配されている。
【００１６】
ミドルウェアサポートライブラリ２０４は、アプリケーションプログラムインターフェース２０１、機能再構築論理器２０２、および機能収集論理器２０３を含む。なお、ミドルウェアサポートライブラリ２０４は、カーネルに依存しない自律型デバイスドライバとして機能する。
【００１７】
情報処理器１１０はＣＰＵ１０８とメモリ１０９を含む。つまり、情報処理器１１０は、情報処理器１１０＿ＣにおけるＣＰＵ１０８＿ＣがＣＰＵ１０８に交換されている。さらに、ＣＰＵ１０８は、システムのカーネルに依存しない自律型周辺モジュール群２０５と、カーネルに依存する依存型周辺モジュール群２０６とを含む。ＣＰＵ１０８においては、ＣＰＵ１０８＿Ｃにおけるｎ個のモジュールＭＬ１〜ＭＬｎが、ｍ個（ｍ＝ｎ−Ｙ、Ｙはｎより小さな自然数）の自律型モジュールＭＬ１〜ＭＬｍからなる自律型周辺モジュール群２０５と、Ｙ個（Ｙ＝ｎ−ｍ）の依存型モジュールＭＬｍ＋１〜ＭＬｎからなる依存型周辺モジュール群２０６とに置き換えられている。なお、自律型周辺モジュール群２０５とは、対応するデバイスドライバがシステムのカーネルに依存しないものを言う。そして、依存型周辺モジュール群２０６とは対応するデバイスドライバがシステムのカーネルに依存するものを言う。
【００１８】
なお、ＣＰＵ１０８およびＣＰＵ１０８＿Ｃにおける各モジュールの符号は、ＣＰＵ１０８およびＣＰＵ１０８＿Ｃのそれぞれにおいて、個々のモジュールを識別するために附されている。よって、ＣＰＵ１０８およびＣＰＵ１０８＿Ｃにおいて、同一の符号を有するモジュールは必ずしも同一である必要はない。
【００１９】
オペレーティングシステム１０５は、カーネル１０４とＹ個の依存型デバイスドライバＤＤ１〜ＤＤＹからなる依存型デバイスドライバ群１０３を含む。依存型デバイスドライバ群１０３はカーネル１０４の支援論理を使用して動作し、依存型周辺モジュール２０６の機能をミドルウェア１０２に提供する論理を含む。カーネル１０４はＣＰＵコア１０７とメモリ１０９の機能を使用して動作し、依存型デバイスドライバ群１０３とミドルウェア１０２を支援する論理を含む。つまり、オペレーティングシステム１０５においては、オペレーティングシステム１０５＿Ｃにおけるｎ個のデバイスドライバＤＤ１〜ＤＤｎの内のＹ個の依存型デバイスドライバＤＤｍ＋１〜ＤＤＹのみを有する。なお、依存型デバイスドライバ群１０３の個々のデバイスドライバＤＤは、ＣＰＵ１０８における依存型周辺モジュール群２０６に対応する。
【００２０】
そして、カーネルに依存しない（ｎ−Ｙ）個の自律型デバイスドライバＤＤＹ＋１〜ＤＤｎは、ミドルウェアサポートライブラリ２０４と実現されている。この意味において、必要に応じて、ミドルウェアサポートライブラリ２０４を自律型デバイスドライバ２０４とも呼称する。
【００２１】
具体的には、ミドルウェアサポートライブラリ（自律型デバイスドライバ）２０４は、アプリケーションプログラムインターフェース２０１、機能再構築論理器２０２、および機能収集論理器２０３を含む。機能収集論理器２０３は、自律型周辺モジュール群２０５の機能を収集する。機能再構築論理器２０２は、機能収集論理器２０３が収集した機能を自律型周辺モジュール群２０５の仕様に依存しない形で再構築する。アプリケーションプログラムインターフェース２０１は機能再構築論理器２０２で再構築した機能をミドルウェア１０２に提供する。
【００２２】
このように、本発明においては、周辺モジュールをシステムのカーネル仕様に依存しない自律型周辺モジュール群２０５と、カーネル仕様に依存する依存型周辺モジュール群２０６に分けて管理する。そして、依存型周辺モジュール群２０６に対しては、従来の情報処理装置におけるのと同様に依存型デバイスドライバ群１０３で対応する。一方、自律型周辺モジュール群２０５に対しては、ミドルウェアサポートライブラリ（自律型デバイスドライバ）２０４によって、カーネル仕様に依存しない形で構築された機能が実現される。ミドルウェアサポートライブラリ２０４を中心とする、ミドルウェア１０２および情報処理器１１０に主な特徴がある。以下に、各実施形態におけるミドルウェアサポートライブラリ２０４、アプリケーション１０１、および情報処理器１１０について、詳細に説明する。
【００２３】
（第１の実施形態）
図２に、本発明の第１の実施形態にかかる情報処理装置ＰＩａ（図示せず）におけるミドルウェア１０２ａ、情報処理器１１０、およびミドルウェアサポートライブラリ２０４ａを示す。ミドルウェア１０２ａは、図１０に示した情報処理装置ＰＩ＿Ｃにおけるものと同一であるが、以降の説明の便宜上、符号１０２ａを附して区別する。ミドルウェアサポートライブラリ２０４ａは、アプリケーションプログラムインターフェース２０１、機能再構築論理器２０２、機能収集論理器２０３、リソース管理器３１８、および機能補填器３１９を含む。
【００２４】
アプリケーションプログラムインターフェース２０１は、データ転送用アプリケーションプログラムインターフェース３０４および機能選択器３１７ａを含む。機能再構築論理器２０２は、周辺モジュールアクセス器３０５を含む。
【００２５】
情報処理器１１０は、メモリ１０９、ＣＰＵコア１０７、およびＣＰＵ１０８を含む。ＣＰＵ１０８は、自律型周辺モジュール群２０５と依存型周辺モジュール群２０６を含む。なお、自律型周辺モジュール群２０５とミドルウェアサポートライブラリ２０４との関係が、本発明の特徴であるので、依存型周辺モジュール群２０６は紙面の都合上、図２には表示していない。自律型周辺モジュール群２０５は、ＤＭＡ３１５および矩形転送用ＤＭＡ３１６を含む。メモリ１０９は、Ａ番地３１０およびＢ番地３１１を含む。ＤＭＡ３１５はメモリ１０９のＡ番地３１０に格納されているデータをメモリ１０９のＢ番地３１１へ転送する機能を有する。矩形転送用ＤＭＡ３１６はメモリ１０９のＡ番地３１０に格納されている矩形データをメモリ１０９のＢ番地３１１へ転送する機能を有する。
【００２６】
ミドルウェアサポートライブラリ２０４ａにおける機能補填器３１９はＣＰＵ１０８のソフトウェア処理によって、メモリ１０９のＡ番地３１０に格納されている矩形データをメモリ１０９のＢ番地３１１へ転送する機能を有する。機能収集論理部２０３はＤＭＡ３１５および矩形転送用ＤＭＡ３１６の機能を収集する。
【００２７】
機能再構築論理部２０２は、機能収集論理部２０３が収集した自律型周辺モジュール群２０５の機能をデータ転送処理関連の周辺モジュールアクセス器３０５として再構築する。周辺モジュールアクセス器３０５はメモリ１０９のＡ番地３１０に格納されているデータ、および矩形データをメモリ１０９のＢ番地３１１に転送する機能を有する。
【００２８】
アプリケーションプログラムインターフェース２０１において、データ転送用アプリケーションプログラムインターフェース３０４はメモリ１０９のＡ番地３１０に格納されているデータおよび矩形データをメモリ１０９のＢ番地３１１へ転送する機能をミドルウェア１０２ａに対して提供するインターフェースを有する。
【００２９】
機能補填器３１９はＣＰＵ１０８によるソフトウェア処理でメモリ１０９のＡ番地３１０に格納されている矩形データをメモリのＢ番地３１１へ転送する論理を含む。リソース管理器３１８は、自律型周辺モジュール群２０５で実装している機能の種類と、自律型周辺モジュール群２０５の機能の使用状態を管理する。
【００３０】
機能選択器３１７ａは、リソース管理器３１８が管理している自律型周辺モジュール群２０５に関する情報に基づいて、周辺モジュールアクセス器３０５の機能と機能補填器３１９の機能の何れを使用するかを決定（選択）して、データ転送用アプリケーションプログラムインターフェース３０４に通知する。
【００３１】
次に、図３に示すフローチャートを参照して、ミドルウェアサポートライブラリ２０４ａの動作について具体的に説明する。同フローチャートは、ミドルウェア１０２ａがミドルウェアサポートライブラリ２０４ａにデータの矩形転送を要求した時の動作を表している。
【００３２】
つまり、ステップＳ４０１において、データ転送用アプリケーションプログラムインターフェース３０４に対して、ミドルウェア１０２ａからデータ矩形転送要求が出力される。そして、制御は次のステップＳ４０２に進む。
【００３３】
ステップＳ４０２において、データ転送用アプリケーションプログラムインターフェース３０４は、機能選択器３１７ａに対して、矩形転送を実行するために周辺モジュールアクセス器３０５の機能と機能補填器３１９の機能の何れを使用するかを問い合わせる。そして、制御は次のステップＳ４０３に進む。
【００３４】
ステップＳ４０３において、機能選択器３１７ａからリソース管理器３１８に対して、矩形転送用ＤＭＡ３１６のリソース状況が問い合わされる。そして、制御は次のステップＳ４０４に進む。
【００３５】
ステップＳ４０４において、リソース管理器３１８は、矩形転送用ＤＭＡ３１６のリソース状態をチェックする。そして、制御は次のステップＳ４０５に進む。
【００３６】
ステップＳ４０５において、矩形転送用ＤＭＡ３１６が使用可能であるか否かが判断される。使用可能である場合にはＹｅｓと判断されて、制御はステップＳ４０６に進む。一方、使用不可能である場合にはＮｏと判断されて、制御はステップＳ４０８に進む。
【００３７】
Ｓ４０６において、リソース管理器３１８によって、管理情報が更新される。つまり、矩形転送用ＤＭＡ３１６が使用可能状態であるため、リソース管理器３１８は矩形転送用ＤＭＡ３１６の使用状態の情報を矩形転送処理が完了するまで使用不可能状態に変更する。なお、矩形転送処理の完了後に、矩形転送用ＤＭＡ３１６の使用状態を表す情報を使用可能状態に更新する。そして、制御は次のステップＳ４０７に進む。
【００３８】
ステップＳ４０７において、リソース管理器３１８から機能選択器３１７ａに対して、矩形転送用ＤＭＡ３１６が使用可能であることが通知される。そして、制御は次のステップＳ４０９に進む。
【００３９】
ステップＳ４０８において、リソース管理器３１８から機能選択器３１７ａに対して、矩形転送用ＤＭＡ３１６が使用不可能であることが通知される。そして、制御は次のステップＳ４１０に進む。
【００４０】
ステップＳ４１０において、それぞれステップＳ４０７およびＳ４０８の何れかでなされた通知に基づいて、矩形転送用ＤＭＡ３１６が使用可能であるか否かが判断される。使用可能である場合にはＹｅｓと判断されて、制御はステップＳ４１１に進む。一方、使用不可能である場合にはＮｏと判断されて、制御はステップＳ４１２に進む。
【００４１】
ステップＳ４１１において、機能選択器３１７ａは、矩形転送用ＤＭＡ３１６を使用することを決定すると共に、周辺モジュールアクセス器３０５（矩形転送用ＤＭＡ３１６）を選択したことをデータ転送用アプリケーションプログラムインターフェース３０４に対して通知する。そして、制御は次のステップＳ４１４に進む。
【００４２】
ステップＳ４１２において、機能選択器３１７ａは、機能補填器３１９を使用することを決定すると共に、機能補填器３１９を選択したことをデータ転送用アプリケーションプログラムインターフェース３０４に対して通知する。そして、制御は次のステップＳ４１４に進む。
【００４３】
ステップＳ４１４において、上述のステップＳ４１１およびステップＳ４１２の何れかでなされた通知に基づいて、矩形転送用ＤＭＡ３１６と機能補填器３１９の何れが使用可能であるかが判断される。本例においては、矩形転送用ＤＭＡ３１６が使用可能か否かが判断される。そして、Ｙｅｓと判断される場合には制御はステップＳ４１５に進み、Ｎｏと判断される場合にのみ制御はステップＳ４１７に進む。
【００４４】
ステップＳ４１５において、データ転送用アプリケーションプログラムインターフェース３０４は周辺モジュールアクセス器３０５に対して、起動を要求する。そして、制御は次のステップＳ４１６に進む。
【００４５】
ステップＳ４１６において、周辺モジュールアクセス器３０５から矩形転送用ＤＭＡ３１６に対して、データ矩形転送が実行される。つまり、矩形転送用ＤＭＡ３１６によって、メモリ１０９のＡ番地３１０の矩形データをメモリ１０９のＢ番地３１１へ転送される。そして、制御は終了する。
【００４６】
ステップＳ４１７において、データ転送用アプリケーションプログラムインターフェース３０４は機能補填器３１９に対して、起動を要求する。そして、制御は次のステップＳ４１８に進む。
ステップＳ４１８において、機能補填器３１９はＣＰＵ１０８に対してデータ矩形転送を実行する。つまり、機能補填器３１９によって、メモリ１０９のＡ番地３１０の矩形データをメモリ１０９のＢ番地３１１へ転送される。そして、制御は終了する。
【００４７】
上述のように、本実施形態においては、周辺モジュールの機能が使用できない場合においても、ミドルウェアに対して常に同一のアプリケーションプログラムインターフェースを提供することができる。
【００４８】
（第２の実施形態）
図４に、本発明の第２の実施形態にかかる情報処理装置ＰＩｂ（図示せず）におけるミドルウェア１０２ｂ、情報処理器１１０、およびミドルウェアサポートライブラリ２０４ｂを示す。つまり、本実施形態においては、図２に示した、第１の実施形態にかかるミドルウェア１０２ａおよびミドルウェアサポートライブラリ２０４ａがそれぞれミドルウェア１０２ｂおよびミドルウェアサポートライブラリ２０４ｂと交換されている。具体的には、ミドルウェア１０２ｂは、ミドルウェア１０２ａに、処理優先度管理器５０１が追加されている。さらに、ミドルウェアサポートライブラリ２０４ｂは、ミドルウェアサポートライブラリ２０４ａにおいて、機能選択器３１７ａが機能選択器３１７ｂと交換されている。
【００４９】
結果、上述のごとく、第１の実施形態においては、周辺モジュールの使用状態に基づいて周辺モジュールアクセス器３０５および機能補填器３１９の何れを使用するか選択しているが、本実施形態においては、ミドルウェア１０２ｂがミドルウェアサポートライブラリ２０４ｂに要求する処理の優先度に基づき実行手段の選択が行われる。つまり、機能選択器３１７ｂは、リソース管理器３１８で管理されている情報と処理優先度管理器５０１から供給される情報により、周辺モジュールアクセス器３０５および機能補填器３１９の何れの機能を使用するか決定（選択）し、データ転送用アプリケーションプログラムインターフェース３０４に通達する。
【００５０】
以下に、図５に示すフローチャートを参照して、本実施形態における動作について具体的に説明する。同図に示すフローチャートは、図３に示したフローチャートにおいて、ステップＳ４０２とステップＳ４０３の間に、ステップＳ６０１、Ｓ６０２、Ｓ６０３、およびステップＳ６０４が追加されている。なお、ステップＳ６０４は条件判断項であって、Ｙｅｓと判断される場合に制御は上述のステップＳ４０３に進み、Ｎｏと判断される場合に制御は上述のステップＳ４１２に進む。よって、本実施形態において追加されたステップに重点を置いて、説明する。
【００５１】
つまり、ステップＳ４０１において、データ転送用アプリケーションプログラムインターフェース３０４に対して、ミドルウェア１０２ｂからデータ矩形転送要求が出力される。そして、ステップＳ４０２において、データ転送用アプリケーションプログラムインターフェース３０４は、機能選択器３１７ｂに対して、矩形転送を実行するために周辺モジュールアクセス器３０５の機能と機能補填器３１９の機能の何れを使用するかを問い合わせる。そして、制御は次のステップＳ６０１に進む。
【００５２】
ステップＳ６０１において、機能選択器３１７ｂから処理優先度管理器５０１に対して、実行すべきタスクの優先度を問い合わされる。そして、制御は次のステップＳ６０２に進む。
【００５３】
ステップＳ６０２において、処理優先度管理器５０１から機能選択器３１７ｂに対して、問い合わされたタスクの優先度が通知される。そして、制御は次のステップＳ６０３に進む。
【００５４】
ステップＳ６０３において、機能選択器３１７ｂは通知されたタスクの優先度をチェックする。そして、制御は次のステップＳ６０４に進む。
【００５５】
ステップＳ６０４において、通知されたタスクの優先度が所定の値、例えば４以上であるか否かが判断される。４以上の場合、Ｙｅｓと判断されて制御は上述のステップＳ４０３に進む。そして、上述の如く、ステップＳ４０３〜Ｓ４１８の処理を経て制御を終了する。また、タスクの優先度が４より小さい、つまり３以下の場合には、ステップＳ６０４においてＮｏと判断されて、制御はステップＳ４１２に進む。そして、上述の如くステップＳ４１２〜Ｓ４１８における処理を経て、制御を終了する。ただし、機能選択器３１７ａが機能選択器３１７ｂと置き換えられていることは上述の通りである。
【００５６】
上述のように、本実施形態においては、処理優先度管理器５０１は実行すべきタスクの処理優先度の情報を機能選択器３１７ｂに通達する。機能選択器３１７ｂは処理優先度が３以下の場合には機能補填器３１９を選択する。処理の優先度が４以上の場合には、第１の実施形態におけるのと同様に、矩形転送用ＤＭＡ３１６の状態に基づいて、矩形転送用ＤＭＡ３１６および機能補填器３１９の何れかが選択される。このように、ミドルウェア１０２ｂからの処理優先度の要求に応じて、周辺モジュールアクセス器３０５と機能補填器３１９を使い分ける柔軟な対応ができる。
【００５７】
（第３の実施形態）
図６に、本発明の第３の実施形態にかかる情報処理装置ＰＩｃ図示せず）におけるミドルウェア１０２ｃ、情報処理器１１０、およびミドルウェアサポートライブラリ２０４ｃを示す。つまり、本実施形態においては、図４に示した、第２の実施形態にかかるミドルウェア１０２ｂおよびミドルウェアサポートライブラリ２０４ｂがそれぞれミドルウェア１０２ｃおよびミドルウェアサポートライブラリ２０４ｃと交換されている。具体的には、ミドルウェア１０２ｃは、ミドルウェア１０２ｂにおいて、処理優先度管理器５０１が消費電力管理器７０１と交換されている。さらに、ミドルウェアサポートライブラリ２０４ｃは、ミドルウェアサポートライブラリ２０４ｂにおいて、機能選択器３１７ｂが機能選択器３１７ｃと交換されている。
【００５８】
上述のように、第１の実施形態においては、周辺モジュールの使用状態に基づいて周辺モジュールアクセス器３９５および機能補填器３１９の何れを使用するかが選択される。さらに、第２の実施形態においては、処理の優先度に基づいて、周辺モジュールアクセス器３９５および機能補填器３１９の何れを使用するかが選択される。本実施形態においては、ミドルウェア１０２ｃがミドルウェアサポートライブラリ２０４ｃに要求するタスクの実行に要する消費電力に基づき、周辺モジュールアクセス器３９５および機能補填器３１９の何れを使用するかが選択される。
【００５９】
つまり、機能選択器３１７ｃはリソース管理器３１８で管理されている情報と消費電力管理器７０１から供給される情報（消費電力要求）により、周辺モジュールアクセス器３０５の機能を使用するか、あるいは機能補填器３１９の機能を使用するかを決定（選択）し、データ転送用アプリケーションプログラムインターフェース３０４に通達する。本例においては、矩形転送用ＤＭＡ３１６を実行する場合の情報処理器１１０の消費電力は２［ｍＷ］、そして、機能補填器３１９を実行する場合の情報処理器１１０の消費電力は１［ｍＷ］とする。
【００６０】
次に、図７に示すフローチャートを参照して、ミドルウェアサポートライブラリ２０４ｃの具体的な動作について説明する。同図に示すフローチャートは、図５に示した第２の実施形態にかかるフローチャートにおいて、ステップＳ６０１、Ｓ６０２、Ｓ６０３、およびステップＳ６０４がそれぞれ、ステップＳ８０１、Ｓ８０２、Ｓ８０３、およびステップＳ８０４と交換されている。よって、これらの交換されたステップに重点をおいて説明する。
【００６１】
つまり、ステップＳ４０１において、データ転送用アプリケーションプログラムインターフェース３０４に対して、ミドルウェア１０２ｃからデータ矩形転送要求が出力される。そして、ステップＳ４０２において、データ転送用アプリケーションプログラムインターフェース３０４は、機能選択器３１７ｃに対して、矩形転送を実行するために周辺モジュールアクセス器３０５の機能と機能補填器３１９の機能の何れを使用するかを問い合わせる。そして、制御は次のステップＳ８０１に進む。
【００６２】
ステップＳ８０１において、機能選択器３１７ｃから消費電力管理器７０１に対して、情報処理器１１０が要求されたタスクの実行に要する消費電力要求が問い合わされる。そして、制御は次のステップＳ８０２に進む。
【００６３】
ステップＳ８０２において、消費電力管理器７０１から機能選択器３１７ｃに対して、問い合わされたタスクの消費電力要求が通知される。そして、制御は次のステップＳ８０３に進む。
【００６４】
ステップＳ８０３において、機能選択器３１７ｃは通知された消費電力要求をチェックする。そして、制御は次のステップＳ８０４に進む。
【００６５】
ステップＳ８０４において、通知された消費電力要求が所定の値、例えば１．５［ｍＷ］以上でも問題がないかが判断される。問題がない場合は、Ｙｅｓと判断されて制御は上述のステップＳ４０３に進む。そして、上述の如く、ステップＳ４０３〜Ｓ４１８の処理を経て制御を終了する。また、問題がある場合には、ステップＳ８０４においてＮｏと判断されて、制御はステップＳ４１２に進む。そして、上述の如くステップＳ４１２〜Ｓ４１８における処理を経て、制御を終了する。ただし、機能選択器３１７ｂが機能選択器３１７ｃと置き換えられていることは上述の通りである。
【００６６】
機能選択器３１７ｃは情報処理器１１０の消費電力が１．５［ｍＷ］以上で問題がある場合には機能補填器３１９を選択し、情報処理器１１０の消費電力が１．５［ｍＷ］以上でも問題がない場合にはステップ４０３へ制御を移行する。これは機能補填器３１９の処理に必要な消費電力が矩形転送用ＤＭＡ３１６の処理に必要な消費電力より小さい場合の例である。機能補填器３１９の処理に必要な消費電力が矩形転送用ＤＭＡ３１６の処理に必要な消費電力より大きい場合には、ステップ８０２の処理内容を変更すれば良い。
上述のように、本実施形態においては、ミドルウェア１０２ｃがミドルウェアサポートライブラリ２０４ｃに要求する消費電力に応じて、周辺モジュールアクセス器３０５と機能補填器３１９とを使い分ける柔軟な対応ができる。
【００６７】
（第４の実施形態）
図８に、本発明の第４の実施形態にかかる情報処理装置ＰＩｄ図示せず）におけるミドルウェア１０２ａ、情報処理器１１０ｄ、およびミドルウェアサポートライブラリ２０４ｄを示す。つまり、本実施形態においては、図１に示した、第１の実施形態にかかるミドルウェアサポートライブラリ２０４ａおよび情報処理器１１０がそれぞれミドルウェアサポートライブラリ２０４ｄおよび情報処理器１１０ｄと交換されている。具体的には、ミドルウェアサポートライブラリ２０４ｄは、ミドルウェアサポートライブラリ２０４ａにおいて、機能再構築論理器２０２が機能再構築論理器２０２ｄと交換されている。
【００６８】
さらに、情報処理器１１０ｄは、情報処理器１１０において、ＣＰＵ１０８がＣＰＵ１０８ｄに置き換えられている。ＣＰＵ１０８ｄは、ＣＰＵ１０８において、自律型周辺モジュール群２０５が自律型周辺モジュール群２０５ｄに置き換えられている。自律型周辺モジュール群２０５ｄは、自律型周辺モジュール群２０５から矩形転送用ＤＭＡ３１６が取り除かれている。
【００６９】
次に、図９に示すフローチャートを参照して、ミドルウェアサポートライブラリ２０４ｄの動作について具体的に説明する。同図に示すフローチャートは、図３に示した第１の実施形態にかかるフローチャートにおいて、ステップＳ４０４、Ｓ４０５、Ｓ４０６、Ｓ４０７、Ｓ４１０、Ｓ４１１、Ｓ４１４、Ｓ４１５、およびＳ４１６が取り除かれている。以降、本実施形態に固有の特徴に重点をおいて説明する。
【００７０】
つまり、ステップＳ４０１において、データ転送用アプリケーションプログラムインターフェース３０４に対して、ミドルウェア１０２ａからデータ矩形転送要求が出力される。そして、ステップＳ４０２において、データ転送用アプリケーションプログラムインターフェース３０４は、機能選択器３１７ａに対して、矩形転送を実行するために周辺モジュールアクセス器３０５の機能と機能補填器３１９の機能の何れを使用するかを問い合わせる。
【００７１】
ステップＳ４０２において、データ転送用アプリケーションプログラムインターフェース３０４は、機能選択器３１７ｄに対して、矩形転送を実行するために周辺モジュールアクセス器３０５の機能と機能補填器３１９の機能の何れを使用するかを問い合わせる。ステップＳ４０３において、機能選択器３１７ａからリソース管理器３１８に対して、矩形転送用ＤＭＡ３１６のリソース状況が問い合わされる。
【００７２】
ステップＳ４０８において、リソース管理器３１８から機能選択器３１７ａに対して、矩形転送用ＤＭＡ３１６が使用不可能であることが通知される。これは、自律型周辺モジュール群２０５ｄには矩形転送用ＤＭＡが実装されていないからである。ステップＳ４１２において、機能選択器３１７ａは、機能補填器３１９を使用することを決定すると共に、機能補填器３１９を選択したことをデータ転送用アプリケーションプログラムインターフェース３０４に対して通知する。
【００７３】
ステップＳ４１７において、データ転送用アプリケーションプログラムインターフェース３０４は機能補填器３１９に対して、起動を要求する。そして、ステップＳ４１８において、機能補填器３１９はＣＰＵ１０８ｄに対してデータ矩形転送を実行する。つまり、機能補填器３１９によって、メモリ１０９のＡ番地３１０の矩形データをメモリ１０９のＢ番地３１１へ転送される。そして、制御は終了する。
【００７４】
上述のように、本実施形態においては、周辺モジュールに特定の機能が実装されていなくても、ミドルウェアに対して常に同一のアプリケーションプログラムインターフェースを提供することができる。
【産業上の利用可能性】
【００７５】
本発明にかかる自律型デバイスドライバは、ハードウェア、デバイスドライバ、アプリケーションプログラムを含む情報処理装置等や、デジタルテレビや携帯電話のデジタル家電等にも利用できる。
【図面の簡単な説明】
【００７６】
【図１】本発明にかかる情報処理装置の構成を表すブロック図
【図２】本発明の第１の実施形態にかかるミドルウェアサポートライブラリの構成を表すブロック図
【図３】図２に示す機能選択器の動作を表すフローチャート
【図４】本発明の第２の実施形態にかかるミドルウェアサポートライブラリの構成を表すブロック図
【図５】図４に示す機能選択器の動作を表すフローチャート
【図６】本発明の第３の実施形態にかかるミドルウェアサポートライブラリの構成を表すブロック図
【図７】図６に示す機能選択器の動作を表すフローチャート
【図８】本発明の第４の実施形態にかかるミドルウェアサポートライブラリの構成を表すブロック図
【図９】図８に示す機能選択器の動作を表すフローチャート
【図１０】従来の情報処理装置の構成を表すブロック図
【符号の説明】
【００７７】
１０１  アプリケーション
１０２  ミドルウェア
１０３  依存型デバイスドライバ群
１０４  カーネル
１０５、１０５＿Ｃ  オペレーティングシステム
１０６＿Ｃ  周辺モジュール
１０７  ＣＰＵコア
１０８、１０８ｄ  ＣＰＵ
１０９  メモリ
１１０、１１０ｄ  情報処理装置
２０１  アプリケーションプログラムインターフェース
２０２  機能再構築論理器
２０３  機能収集論理器
２０４、２０４ａ、２０４ｂ、２０４ｃ、２０４ｄ  ミドルウェアサポートライブラリ
２０５  自立型周辺モジュール群
２０６  依存型周辺モジュール群
３０４  データ転送用アプリケーションプログラムインターフェース
３０５  周辺モジュールアクセス器
３１５  ＤＭＡ
３１６  矩形転送用ＤＭＡ
３１７ａ、３１７ｂ、３１７ｃ  機能選択器
３１８  リソース管理器
３１９  機能補填器
５０１  処理優先度管理器
７０１  消費電力管理器
【図１】
2005122470.tif 000003
【図２】
2005122470.tif 000004
【図３】
2005122470.tif 000005
【図４】
2005122470.tif 000006
【図５】
2005122470.tif 000007
【図６】
2005122470.tif 000008
【図７】
2005122470.tif 000009
【図８】
2005122470.tif 000010
【図９】
2005122470.tif 000011
【図１０】
2005122470.tif 000012