(57)【要約】      （修正有）【課題】論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置を提供すること。【解決手段】オペレーティング・システム・カーネルは、デバイス・ドライバ・レイヤ、拡張Ｉ／Ｏアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含む。物理ハードウェア実装詳細レイヤは、物理ハードウェア実装についてのハードウェア詳細をカプセル化する。拡張Ｉ／Ｏアブストラクション・レイヤは、デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、物理ハードウェア実装内の各組込み機能毎に機能固有の論理Ｉ／Ｏデバイス構造を生成する。拡張Ｉ／Ｏアブストラクション・レイヤを使用することで、デバイス・ドライバは、物理ハードウェア実装に対してその独立性を維持する。【選択図】図３
2004326747.tif 000002
【特許請求の範囲】
【請求項１】
論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置であって、
デバイス・ドライバ・レイヤ、拡張Ｉ／Ｏアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを含み、
前記物理ハードウェア実装詳細レイヤが、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化し、
前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、
前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理Ｉ／Ｏデバイス構造を生成する装置。
【請求項２】
前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤをさらに含む、請求項１に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項３】
前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化する、請求項１に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項４】
前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記物理ハードウェア実装詳細レイヤにアクセスすることで、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、前記デバイス・ドライバ・レイヤが、前記物理ハードウェア実装から独立している、請求項３に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項５】
前記物理ハードウェア実装詳細レイヤが、異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化する、請求項１に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項６】
前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを、複数の異なる物理ハードウェア実装に対して使用できるようにする、請求項５に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項７】
複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを選択された組込み機能に対して使用できるようにし、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、請求項１に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項８】
前記拡張Ｉ／Ｏアブストラクション・レイヤが、拡張ＰＣＩサポート・レイヤである、請求項１に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
【請求項９】
論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法であって、
デバイス・ドライバ・レイヤ、拡張Ｉ／Ｏアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを提供するステップと、
前記物理ハードウェア実装詳細レイヤを使用して、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップと、
前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップと、
前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理Ｉ／Ｏデバイス構造を生成するステップを含む方法。
【請求項１０】
前記オペレーティング・システム・カーネルに前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤを提供するステップを含む、請求項９に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【請求項１１】
前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、請求項９に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【請求項１２】
前記物理ハードウェア実装詳細レイヤを使用して前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップが、各異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化するステップを含む、請求項９に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【請求項１３】
前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して複数の異なる物理ハードウェア実装に対して使用できるようにするステップをさらに含む、請求項１２に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【請求項１４】
複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して、選択された組込み機能に対して使用できるようにするステップをさらに含み、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、請求項９に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【請求項１５】
前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップが、前記ベース・チップおよび前記拡張チップ上の前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、請求項９に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【請求項１６】
前記拡張Ｉ／Ｏアブストラクション・レイヤが、拡張ＰＣＩサポート・レイヤである、請求項９に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、データ処理の分野に関し、より詳細には、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置に関する。
【背景技術】
【０００２】
基本的な問題は、現在のチップ設計では、ハードウェア・コストを改善するために、１つの物理チップ上に数多くの機能を統合していることである。歴史的には、これらのデバイスはすべて独立した外部エンティティであったもので、ソフトウェアはこれらをそのようなものとして取り扱おうとする。
【０００３】
複数の機能が単一のチップに統合される場合、ハードウェア・レイヤが取り除かれ、機能同士が直接接続される。チップ間のＰＣＩバスなどのハードウェア・レイヤが取り除かれると、抽象化を提供するソフトウェア・レイヤも除去される。歴史的には独立した外部エンティティとして提供されてきたそのような機能のデバイス・ドライバは、ハードウェア・アドレスをハードコードし、または機能のレジスタおよび割り込みのハードウェア・アドレスを提供するよう顧客アプリケーションに要求する。
【０００４】
１つの物理チップ上に数多くの機能が統合された結果、デバイス・ドライバの実行形式が特定のチップ実装に限定されるという重大な不都合が生じる。新しいチップを作成しても、機能アドレスを動かしたり、割り込み要求線を変更したりしなければ、デバイス・ドライバを新しいチップで動作させることができない。デバイス・ドライバは別々にコンパイルしなければならず、または追加の外部手動設定が提供されなければならない。
【０００５】
この問題に対する唯一の周知の代替策は、多機能ＰＣＩデバイスである。この手法の限界は、１つのチップ内にはデバイスを８個しかもつことができず、多機能ＰＣＩデバイスは、デバイスとプロセッサが同一チップ上に存在するシステム・オン・チップでは機能せず、すなわち、同一チップ上のデバイス間にはＰＣＩバスが存在しないことである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
システム・オン・チップを始めとする様々なハードウェア実装向けにデバイス・ドライバを実装するための改良された機構が必要とされている。
【課題を解決するための手段】
【０００７】
本発明の主要な目的は、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置を提供することである。本発明の他の重要な目的は、実質的に弊害を生じさせずに、従来技術の構成がもつ不都合のいくつかを克服する、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置を提供することである。
【０００８】
要するに、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置が提供される。オペレーティング・システム・カーネルは、デバイス・ドライバ・レイヤ、拡張入出力（Ｉ／Ｏ）アブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含む。物理ハードウェア実装詳細レイヤは、物理ハードウェア実装についてのハードウェア詳細をカプセル化する。拡張Ｉ／Ｏアブストラクション・レイヤは、デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化する。拡張Ｉ／Ｏアブストラクション・レイヤは、物理ハードウェア実装内の各組込み機能毎に機能固有の論理Ｉ／Ｏデバイス構造を生成する。
【０００９】
本発明の特徴によれば、拡張Ｉ／Ｏアブストラクション・レイヤを使用することで、デバイス・ドライバは、物理ハードウェア実装に対してその独立性を維持する。拡張Ｉ／Ｏアブストラクション・レイヤを使用することで、バイナリ・イメージを１つもつ単一ドライバで、複数のチップ実装に分散する組込み機能をサポートできるようにもなり、また１つまたは複数のチップ上のある組込み機能の複数のインスタンスをサポートできるようにもなる。
【００１０】
本発明ならびに上記およびその他の目的および利点は、図面に示す本発明の好ましい実施形態についての以下の詳細な説明から最もよく理解することができるであろう。
【発明を実施するための最良の形態】
【００１１】
本発明の好ましい実施形態の特徴によれば、デバイス・ドライバ・ソフトウェアに対して物理ハードウェア実装を抽象化するソフトウェア・レイヤが提供される。この手法は、デバイスの数がいくつでも使用することができ、システム・オン・チップ実装を始めとするどのようなハードウェア構成に対しても使用することができる。
【００１２】
ここで図面を参照すると、図１および図２には、本発明の好ましい実施形態のソフトウェア抽象化方法を実施するための、全体として参照文字１００で指定されるプロセッサ・システムが示されている。プロセッサ・システム１００は、ベース・プロセッサ・チップ１０２および拡張チップ１３０を含む。ベース・プロセッサ・チップ１０２は、複数の機能を含むシステム・オン・チップを提供し、拡張チップ１３０は、追加機能を提供する単一機能のＰＣＩデバイスである。ベース・プロセッサ・チップ１０２は、１次ＰＣＩバスを２次ＰＣＩバスに接続するＰＣＩ−Ｘ（周辺コンポーネント相互接続拡張）対ＰＣＩブリッジ１０３を含む。２次ＰＣＩバスはベース・チップ１０２内に含まれ、拡張チップ１３０に接続する。
【００１３】
ベース・プロセッサ・チップ１０２は、ローカル・システム・バスに結合された、サービス・プロセッサ機能１０４、メイン・プロセッサ１０６、およびＤＲＡＭ（動的ランダム・アクセス・メモリ）／ＮＶＲＡＭ（不揮発性ランダム・アクセス・メモリ）１０８を含む。システム・バスは、ベース・プロセッサ・チップ１０２上に含まれる複数のデバイス機能を、サービス・プロセッサ機能１０４およびメイン・プロセッサ１０６に結合する。これらのデバイス機能には、内部集積回路（Ｉ２Ｃ）機能１１０、ジョイント・テスト・アクセス・グループ（ＪＴＡＧ）機能１１２、汎用入出力（ＧＰＩＯ）機能１１４、および直接メモリ・アクセス（ＤＭＡ）機能１１６が含まれる。ベース・プロセッサ・チップ１０２は、ＵＳＢ（汎用シリアル・バス）機能１１８、イーサネット（登録商標）機能１２０、およびＵＡＲＴ（汎用非同期レシーバ／トランスミッタ）機能１２２を始めとする、２次ＰＣＩバスに結合された複数の機能を含む。内部ブリッジ１２４は、ＵＳＢ機能１１８、イーサネット（登録商標）機能１２０、およびＵＡＲＴ機能１２２を、メイン・プロセッサ１０６との通信のために、２次ＰＣＩバス側からシステム・バスに結合する。メモリ１０８は、ＤＲＡＭ（動的ランダム・アクセス・メモリ）１２６、ＮＶＲＡＭ（不揮発性ランダム・アクセス・メモリ）１２８、およびフラッシュ・メモリ１２９を始めとする外部メモリに接続される。
【００１４】
拡張チップ１３０は、２次ＰＣＩバスに結合された内部ブリッジ１３１と、ＵＡＲＴ機能１３２、Ｉ２Ｃ機能１３４、タイマ機能１３６、ＪＴＡＧ機能１３８、システム・サポート・インタフェース（ＳＳＩ）機能１４０、およびＧＰＩＯ機能１４２を始めとする複数の追加機能に結合されたローカル・バスとを含む。
【００１５】
本発明の特徴によれば、サポート・プロセッサ・システム１００のオペレーティング・システム・カーネル内に、拡張ＰＣＩサポート・レイヤなどの拡張Ｉ／Ｏアブストラクション・レイヤが提供される。従来のＰＣＩサポートを用いた場合、システム・ハードウェア・リソースは動的に構成可能であり、デバイス・ドライバはその機能に対するリソース割当てをＰＣＩサポートから取得する。本発明の好ましい実施形態の拡張Ｉ／Ｏアブストラクション・レイヤは、ベース・チップ１０２および拡張チップ１３０内の統合機能の各機能毎に別個の論理Ｉ／Ｏデバイス構造を生成する。このようにすることで、デバイス・ドライバは標準インタフェースを使用して、そのハードウェアにとって適切なリソースを別個の論理Ｉ／Ｏデバイス構造から取得することができる。デバイス・ドライバ・ソフトウェアは、もはや物理ハードウェア実装との直接的関係を一切もたない。
【００１６】
本発明の特徴によれば、物理ハードウェア詳細は、プロセッサ・システム１００のオペレーティング・システム・カーネルの最下位レイヤ内にカプセル化される。拡張Ｉ／Ｏアブストラクション・レイヤは、組込み機能に固有な論理Ｉ／Ｏデバイス構造を生成する。
【００１７】
本発明の特徴によれば、拡張Ｉ／Ｏアブストラクション・レイヤは、デバイス・ドライバが物理ハードウェア実装に対してその独立性を維持できるようにする。拡張Ｉ／Ｏアブストラクション・レイヤを使用することで、デバイス・ドライバをより容易に再利用できるようになり、複数のチップ実装に分散する機能を単一ドライバでサポートすることができる。
【００１８】
本発明が、例示のプロセッサ・システム１００、または例示のベース・プロセッサ・チップ１０２および拡張チップ１３０との使用にのみ限定されるものではないことを理解されたい。例示のプロセッサ・システム１００は、どのような構造的または機能的限定も意味するものではない。本発明は、様々なハードウェア実装およびシステム、および様々な他の内部ハードウェア・デバイス、例えば、複数のメイン・プロセッサや、例示のＰＣＩバス以外の他のＩ／Ｏバス構造などと共に使用することができる。
【００１９】
次に図３を参照すると、本発明の好ましい実施形態による、プロセッサ・システム１００で使用することができる例示的なオペレーティング・システム・カーネル２００が示されている。オペレーティング・システム・カーネル２００は、アプリケーション・プログラム・インタフェース・レイヤ２０２およびデバイス・ドライバ・レイヤ２０４を含む。
【００２０】
オペレーティング・システム・カーネル２００は、デバイス・ドライバ・レイヤ２０４をサポートする、好ましい実施形態の拡張Ｉ／Ｏアブストラクション・レイヤ２０６を含む。好ましい実施形態の拡張Ｉ／Ｏアブストラクション・レイヤ２０６は、ベース・チップ１０２および拡張チップ１３０のすべての機能など、特定のハードウェア実装のすべての機能に機能固有の論理Ｉ／Ｏデバイス構造を提供する。拡張Ｉ／Ｏアブストラクション・レイヤ２０６は、例えば、特定のハードウェア実装の組込み機能に機能固有の論理Ｉ／Ｏデバイス構造２０８を提供する拡張ＰＣＩサポート・レイヤによって実装することができる。デバイス・ドライバから見た場合、これらの論理Ｉ／Ｏデバイス構造は、実際のＰＣＩデバイスと同じルック・アンド・フィールをもっている。
【００２１】
オペレーティング・システム・カーネル２００は、特定のハードウェア実装の物理ハードウェア詳細をカプセル化する、物理ハードウェア実装詳細レイヤ２１０を含む。このレイヤ２１０またはオペレーティング・システム・カーネル２００の一部分はハードウェア実装毎に固有であり、そのため、ベース・チップ１０２および拡張チップ１３０内のどの統合または組込み機能に細部追加を行っても、追加のハードウェア依存性が加わることはない。レイヤ２１０によってカプセル化される、ベース・チップ１０２および拡張チップ１３０内の統合または組込み機能の詳細を含む物理ハードウェア詳細は、ハードコードされるか、あるいはオペレーティング・システム・カーネルによって利用可能な他の構成データに基づくことができる。
【００２２】
ソフトウェアで実装されるデバイス・ドライバ２０４はすべて、拡張Ｉ／Ｏアブストラクション・レイヤ２０６を使用して、その機能ハードウェアにアクセスする。従来のＰＣＩサポートはベース・プロセッサ・チップ１０２にはどのような論理デバイスも提供せず、拡張チップ１３０には論理ＰＣＩデバイスを１つだけ提供するが、論理ＰＣＩデバイス構造２０８は、拡張Ｉ／Ｏアブストラクション・レイヤ２０６によって、ベース・プロセッサ・チップ１０２上のＩ２Ｃ機能１１０、ＪＴＡＧ機能１１２、ＧＰＩＯ機能１１４、ＤＭＡ機能１１６、ＵＳＢ機能１１８、イーサネット（登録商標）機能１２０、およびＵＡＲＴ機能１２２および拡張チップ１３０上のＵＡＲＴ機能１３２、Ｉ２Ｃ機能１３４、タイマ機能１３６、ＪＴＡＧ機能１３８、ＳＳＩ機能１４０、およびＧＰＩＯ機能１４２に提供される。
【００２３】
初期化の際、各デバイス・ドライバ２０４は、組込み機能がベース・チップ１０２上にあるか、それとも拡張チップ１３０上にあるかには無関係に、拡張Ｉ／Ｏアブストラクション・レイヤ２０６によって提供される同じＩ／Ｏインタフェースを使用して、そのデバイス用のハードウェア・リソースを取得する。このようにすることで、デバイス・ドライバ２０４は、単一バイナリ・イメージによって異なるハードウェア構成を容易にサポートすることができる。拡張Ｉ／Ｏアブストラクション・レイヤ２０６を使用することで、ベース・チップ１０２や拡張チップ１３０など複数のチップに分散する機能を、単一ドライバ２０４でサポートできるようになる。
【００２４】
拡張Ｉ／Ｏアブストラクション・レイヤ２０６を使用することで、複数のチップ実装に分散する機能を、単一バイナリ・イメージをもつ単一ドライバ２０４でサポートできるようになる。デバイス・ドライバ２０４の単一バイナリ・イメージは、類似デバイスに対しても使用することができ、これらの類似デバイスはベース・チップ１０２に組み込まれていても、拡張チップ１３０などの別のチップに組み込まれていてもよい。デバイス・ドライバ２０４の単一バイナリ・イメージは、ベース・チップ１０２など１つのチップ上の、あるいは複数のチップ１０２、１３０上のあるデバイスの複数のインスタンスに対して使用することができる。
【００２５】
例えば、ベース・チップ１０２および拡張チップ１３０の両チップ上に機能を有する３つのドライバ（Ｉ２Ｃ、ＪＴＡＧ、ＧＰＩＯ）は、ただ１つのデバイス・ドライバ２０４をもつように実装される。タイマやＵＡＲＴ機能などの他のデバイス機能は、まったく異なるハードウェア実装で互換性をもつデバイス・ドライバ実装をもつ。Ｉ２ＣおよびＪＴＡＧもまた、まったく異なるハードウェア実装で互換性をもつデバイス・ドライバ実装をもつ。Ｉ２ＣおよびＪＴＡＧドライバ２０４は、複数の異なるチップ・ハードウェア実装に対して１つのバイナリ・イメージをもつ。
【００２６】
次に図４を参照すると、本発明の製造物品またはコンピュータ・プログラム製品３００が示されている。コンピュータ・プログラム製品３００は、フロッピ・ディスクや、光読出しコンパクト・ディスク、ＣＤ−ＲＯＭ、またはテープの形態の大容量読出し専用メモリなどの記録媒体３０２、デジタルまたはアナログ通信リンクなどの伝送型媒体、または類似のコンピュータ・プログラム製品を含む。記録媒体３０２は、図１および図２のシステム１００内の本発明の好ましい実施形態の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法を実施するプログラム手段３０４、３０６、３０８、３１０を、媒体３０２上に格納する。
【００２７】
記録されたプログラム手段３０４、３０６、３０８、３１０によって定義される、１連のプログラム命令または１つまたは複数の相互関連モジュールの論理的集まりが、本発明の好ましい実施形態の拡張Ｉ／Ｏアブストラクション・レイヤ２０６を含むオペレーティング・システム・カーネル２００を提供する。
【００２８】
図面に示された本発明の実施形態の詳細を参照しながら本発明を説明してきたが、これらの詳細は、添付の特許請求の範囲で主張される本発明の範囲を限定しようとするものではない。
【００２９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３０】
（１）論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置であって、
デバイス・ドライバ・レイヤ、拡張Ｉ／Ｏアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを含み、
前記物理ハードウェア実装詳細レイヤが、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化し、
前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、
前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理Ｉ／Ｏデバイス構造を生成する装置。
（２）前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤをさらに含む、上記（１）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（３）前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化する、上記（１）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（４）前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記物理ハードウェア実装詳細レイヤにアクセスすることで、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、前記デバイス・ドライバ・レイヤが、前記物理ハードウェア実装から独立している、上記（３）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（５）前記物理ハードウェア実装詳細レイヤが、異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化する、上記（１）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（６）前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを、複数の異なる物理ハードウェア実装に対して使用できるようにする、上記（５）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（７）複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記拡張Ｉ／Ｏアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを選択された組込み機能に対して使用できるようにし、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、上記（１）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（８）前記拡張Ｉ／Ｏアブストラクション・レイヤが、拡張ＰＣＩサポート・レイヤである、上記（１）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
（９）論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法であって、
デバイス・ドライバ・レイヤ、拡張Ｉ／Ｏアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを提供するステップと、
前記物理ハードウェア実装詳細レイヤを使用して、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップと、
前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップと、
前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理Ｉ／Ｏデバイス構造を生成するステップを含む方法。
（１０）前記オペレーティング・システム・カーネルに前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤを提供するステップを含む、上記（９）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
（１１）前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、上記（９）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
（１２）前記物理ハードウェア実装詳細レイヤを使用して前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップが、各異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化するステップを含む、上記（９）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
（１３）前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して複数の異なる物理ハードウェア実装に対して使用できるようにするステップをさらに含む、上記（１２）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
（１４）複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して、選択された組込み機能に対して使用できるようにするステップをさらに含み、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、上記（９）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
（１５）前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張Ｉ／Ｏアブストラクション・レイヤを使用して前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップが、前記ベース・チップおよび前記拡張チップ上の前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、上記（９）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
（１６）前記拡張Ｉ／Ｏアブストラクション・レイヤが、拡張ＰＣＩサポート・レイヤである、上記（９）に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
【図面の簡単な説明】
【００３１】
【図１】本発明の好ましい実施形態によるソフトウェア抽象化方法を実施するためのプロセッサ・システムを図２と併せて示すブロック図である。
【図２】本発明の好ましい実施形態によるソフトウェア抽象化方法を実施するためのプロセッサ・システムを図１と併せて示すブロック図である。
【図３】本発明の好ましい実施形態による図１および図２のプロセッサ・システムで使用できる例示的なオペレーティング・システム・カーネルを示すブロック図である。
【図４】本発明の好ましい実施形態によるコンピュータ・プログラム製品を示すブロック図である。
【符号の説明】
【００３２】
１０３  ＰＣＩ−Ｘ対ＰＣＩブリッジ
１０４  サービス・プロセッサ機能
１０６  メイン・プロセッサ
１０８  ＤＲＡＭ／ＮＶＲＡＭ
１１０  Ｉ２Ｃ機能
１１２  ＪＴＡＧ機能
１１４  ＧＰＩＯ機能
１１６  ＤＭＡ機能
１１８  ＵＳＢ機能
１２０  イーサネット機能
１２２  ＵＡＲＴ機能
１２４  内部ブリッジ
１２６  ＤＲＡＭ
１２８  ＮＶＲＡＭ
１２９  フラッシュ・メモリ
１３１  内部ブリッジ
１３２  ＵＡＲＴ機能
１３４  Ｉ２Ｃ機能
１３６  タイマ機能
１３８  ＪＴＡＧ機能
１４０  ＳＳＩ機能
１４２  ＧＰＩＯ機能
２００  オペレーティング・システム・カーネル
２０２  アプリケーション・プログラム・インタフェース
２０４  デバイス・ドライバ
２１０  物理ハードウェア実装詳細
３００  コンピュータ・プログラム製品
３０２  記録媒体
３０４  プログラム手段
３０６  プログラム手段
３０８  プログラム手段
３１０  プログラム手段
【図１】
2004326747.tif 000003
【図２】
2004326747.tif 000004
【図３】
2004326747.tif 000005
【図４】
2004326747.tif 000006