JP2004326747A - 論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置 - Google Patents

論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置 Download PDF

Info

Publication number
JP2004326747A
JP2004326747A JP2004105054A JP2004105054A JP2004326747A JP 2004326747 A JP2004326747 A JP 2004326747A JP 2004105054 A JP2004105054 A JP 2004105054A JP 2004105054 A JP2004105054 A JP 2004105054A JP 2004326747 A JP2004326747 A JP 2004326747A
Authority
JP
Japan
Prior art keywords
layer
physical hardware
hardware implementation
chip
abstracting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004105054A
Other languages
English (en)
Other versions
JP3927553B2 (ja
Inventor
Paul E Movall
ポール・イー・モバール
Shaun A Wetztein
シャウン・エー・ウェツステイン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004326747A publication Critical patent/JP2004326747A/ja
Application granted granted Critical
Publication of JP3927553B2 publication Critical patent/JP3927553B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置を提供すること。
【解決手段】オペレーティング・システム・カーネルは、デバイス・ドライバ・レイヤ、拡張I/Oアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含む。物理ハードウェア実装詳細レイヤは、物理ハードウェア実装についてのハードウェア詳細をカプセル化する。拡張I/Oアブストラクション・レイヤは、デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、物理ハードウェア実装内の各組込み機能毎に機能固有の論理I/Oデバイス構造を生成する。拡張I/Oアブストラクション・レイヤを使用することで、デバイス・ドライバは、物理ハードウェア実装に対してその独立性を維持する。
【選択図】図3

Description

本発明は一般に、データ処理の分野に関し、より詳細には、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置に関する。
基本的な問題は、現在のチップ設計では、ハードウェア・コストを改善するために、1つの物理チップ上に数多くの機能を統合していることである。歴史的には、これらのデバイスはすべて独立した外部エンティティであったもので、ソフトウェアはこれらをそのようなものとして取り扱おうとする。
複数の機能が単一のチップに統合される場合、ハードウェア・レイヤが取り除かれ、機能同士が直接接続される。チップ間のPCIバスなどのハードウェア・レイヤが取り除かれると、抽象化を提供するソフトウェア・レイヤも除去される。歴史的には独立した外部エンティティとして提供されてきたそのような機能のデバイス・ドライバは、ハードウェア・アドレスをハードコードし、または機能のレジスタおよび割り込みのハードウェア・アドレスを提供するよう顧客アプリケーションに要求する。
1つの物理チップ上に数多くの機能が統合された結果、デバイス・ドライバの実行形式が特定のチップ実装に限定されるという重大な不都合が生じる。新しいチップを作成しても、機能アドレスを動かしたり、割り込み要求線を変更したりしなければ、デバイス・ドライバを新しいチップで動作させることができない。デバイス・ドライバは別々にコンパイルしなければならず、または追加の外部手動設定が提供されなければならない。
この問題に対する唯一の周知の代替策は、多機能PCIデバイスである。この手法の限界は、1つのチップ内にはデバイスを8個しかもつことができず、多機能PCIデバイスは、デバイスとプロセッサが同一チップ上に存在するシステム・オン・チップでは機能せず、すなわち、同一チップ上のデバイス間にはPCIバスが存在しないことである。
システム・オン・チップを始めとする様々なハードウェア実装向けにデバイス・ドライバを実装するための改良された機構が必要とされている。
本発明の主要な目的は、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置を提供することである。本発明の他の重要な目的は、実質的に弊害を生じさせずに、従来技術の構成がもつ不都合のいくつかを克服する、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置を提供することである。
要するに、論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置が提供される。オペレーティング・システム・カーネルは、デバイス・ドライバ・レイヤ、拡張入出力(I/O)アブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含む。物理ハードウェア実装詳細レイヤは、物理ハードウェア実装についてのハードウェア詳細をカプセル化する。拡張I/Oアブストラクション・レイヤは、デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化する。拡張I/Oアブストラクション・レイヤは、物理ハードウェア実装内の各組込み機能毎に機能固有の論理I/Oデバイス構造を生成する。
本発明の特徴によれば、拡張I/Oアブストラクション・レイヤを使用することで、デバイス・ドライバは、物理ハードウェア実装に対してその独立性を維持する。拡張I/Oアブストラクション・レイヤを使用することで、バイナリ・イメージを1つもつ単一ドライバで、複数のチップ実装に分散する組込み機能をサポートできるようにもなり、また1つまたは複数のチップ上のある組込み機能の複数のインスタンスをサポートできるようにもなる。
本発明ならびに上記およびその他の目的および利点は、図面に示す本発明の好ましい実施形態についての以下の詳細な説明から最もよく理解することができるであろう。
本発明の好ましい実施形態の特徴によれば、デバイス・ドライバ・ソフトウェアに対して物理ハードウェア実装を抽象化するソフトウェア・レイヤが提供される。この手法は、デバイスの数がいくつでも使用することができ、システム・オン・チップ実装を始めとするどのようなハードウェア構成に対しても使用することができる。
ここで図面を参照すると、図1および図2には、本発明の好ましい実施形態のソフトウェア抽象化方法を実施するための、全体として参照文字100で指定されるプロセッサ・システムが示されている。プロセッサ・システム100は、ベース・プロセッサ・チップ102および拡張チップ130を含む。ベース・プロセッサ・チップ102は、複数の機能を含むシステム・オン・チップを提供し、拡張チップ130は、追加機能を提供する単一機能のPCIデバイスである。ベース・プロセッサ・チップ102は、1次PCIバスを2次PCIバスに接続するPCI−X(周辺コンポーネント相互接続拡張)対PCIブリッジ103を含む。2次PCIバスはベース・チップ102内に含まれ、拡張チップ130に接続する。
ベース・プロセッサ・チップ102は、ローカル・システム・バスに結合された、サービス・プロセッサ機能104、メイン・プロセッサ106、およびDRAM(動的ランダム・アクセス・メモリ)/NVRAM(不揮発性ランダム・アクセス・メモリ)108を含む。システム・バスは、ベース・プロセッサ・チップ102上に含まれる複数のデバイス機能を、サービス・プロセッサ機能104およびメイン・プロセッサ106に結合する。これらのデバイス機能には、内部集積回路(I2C)機能110、ジョイント・テスト・アクセス・グループ(JTAG)機能112、汎用入出力(GPIO)機能114、および直接メモリ・アクセス(DMA)機能116が含まれる。ベース・プロセッサ・チップ102は、USB(汎用シリアル・バス)機能118、イーサネット(登録商標)機能120、およびUART(汎用非同期レシーバ/トランスミッタ)機能122を始めとする、2次PCIバスに結合された複数の機能を含む。内部ブリッジ124は、USB機能118、イーサネット(登録商標)機能120、およびUART機能122を、メイン・プロセッサ106との通信のために、2次PCIバス側からシステム・バスに結合する。メモリ108は、DRAM(動的ランダム・アクセス・メモリ)126、NVRAM(不揮発性ランダム・アクセス・メモリ)128、およびフラッシュ・メモリ129を始めとする外部メモリに接続される。
拡張チップ130は、2次PCIバスに結合された内部ブリッジ131と、UART機能132、I2C機能134、タイマ機能136、JTAG機能138、システム・サポート・インタフェース(SSI)機能140、およびGPIO機能142を始めとする複数の追加機能に結合されたローカル・バスとを含む。
本発明の特徴によれば、サポート・プロセッサ・システム100のオペレーティング・システム・カーネル内に、拡張PCIサポート・レイヤなどの拡張I/Oアブストラクション・レイヤが提供される。従来のPCIサポートを用いた場合、システム・ハードウェア・リソースは動的に構成可能であり、デバイス・ドライバはその機能に対するリソース割当てをPCIサポートから取得する。本発明の好ましい実施形態の拡張I/Oアブストラクション・レイヤは、ベース・チップ102および拡張チップ130内の統合機能の各機能毎に別個の論理I/Oデバイス構造を生成する。このようにすることで、デバイス・ドライバは標準インタフェースを使用して、そのハードウェアにとって適切なリソースを別個の論理I/Oデバイス構造から取得することができる。デバイス・ドライバ・ソフトウェアは、もはや物理ハードウェア実装との直接的関係を一切もたない。
本発明の特徴によれば、物理ハードウェア詳細は、プロセッサ・システム100のオペレーティング・システム・カーネルの最下位レイヤ内にカプセル化される。拡張I/Oアブストラクション・レイヤは、組込み機能に固有な論理I/Oデバイス構造を生成する。
本発明の特徴によれば、拡張I/Oアブストラクション・レイヤは、デバイス・ドライバが物理ハードウェア実装に対してその独立性を維持できるようにする。拡張I/Oアブストラクション・レイヤを使用することで、デバイス・ドライバをより容易に再利用できるようになり、複数のチップ実装に分散する機能を単一ドライバでサポートすることができる。
本発明が、例示のプロセッサ・システム100、または例示のベース・プロセッサ・チップ102および拡張チップ130との使用にのみ限定されるものではないことを理解されたい。例示のプロセッサ・システム100は、どのような構造的または機能的限定も意味するものではない。本発明は、様々なハードウェア実装およびシステム、および様々な他の内部ハードウェア・デバイス、例えば、複数のメイン・プロセッサや、例示のPCIバス以外の他のI/Oバス構造などと共に使用することができる。
次に図3を参照すると、本発明の好ましい実施形態による、プロセッサ・システム100で使用することができる例示的なオペレーティング・システム・カーネル200が示されている。オペレーティング・システム・カーネル200は、アプリケーション・プログラム・インタフェース・レイヤ202およびデバイス・ドライバ・レイヤ204を含む。
オペレーティング・システム・カーネル200は、デバイス・ドライバ・レイヤ204をサポートする、好ましい実施形態の拡張I/Oアブストラクション・レイヤ206を含む。好ましい実施形態の拡張I/Oアブストラクション・レイヤ206は、ベース・チップ102および拡張チップ130のすべての機能など、特定のハードウェア実装のすべての機能に機能固有の論理I/Oデバイス構造を提供する。拡張I/Oアブストラクション・レイヤ206は、例えば、特定のハードウェア実装の組込み機能に機能固有の論理I/Oデバイス構造208を提供する拡張PCIサポート・レイヤによって実装することができる。デバイス・ドライバから見た場合、これらの論理I/Oデバイス構造は、実際のPCIデバイスと同じルック・アンド・フィールをもっている。
オペレーティング・システム・カーネル200は、特定のハードウェア実装の物理ハードウェア詳細をカプセル化する、物理ハードウェア実装詳細レイヤ210を含む。このレイヤ210またはオペレーティング・システム・カーネル200の一部分はハードウェア実装毎に固有であり、そのため、ベース・チップ102および拡張チップ130内のどの統合または組込み機能に細部追加を行っても、追加のハードウェア依存性が加わることはない。レイヤ210によってカプセル化される、ベース・チップ102および拡張チップ130内の統合または組込み機能の詳細を含む物理ハードウェア詳細は、ハードコードされるか、あるいはオペレーティング・システム・カーネルによって利用可能な他の構成データに基づくことができる。
ソフトウェアで実装されるデバイス・ドライバ204はすべて、拡張I/Oアブストラクション・レイヤ206を使用して、その機能ハードウェアにアクセスする。従来のPCIサポートはベース・プロセッサ・チップ102にはどのような論理デバイスも提供せず、拡張チップ130には論理PCIデバイスを1つだけ提供するが、論理PCIデバイス構造208は、拡張I/Oアブストラクション・レイヤ206によって、ベース・プロセッサ・チップ102上のI2C機能110、JTAG機能112、GPIO機能114、DMA機能116、USB機能118、イーサネット(登録商標)機能120、およびUART機能122および拡張チップ130上のUART機能132、I2C機能134、タイマ機能136、JTAG機能138、SSI機能140、およびGPIO機能142に提供される。
初期化の際、各デバイス・ドライバ204は、組込み機能がベース・チップ102上にあるか、それとも拡張チップ130上にあるかには無関係に、拡張I/Oアブストラクション・レイヤ206によって提供される同じI/Oインタフェースを使用して、そのデバイス用のハードウェア・リソースを取得する。このようにすることで、デバイス・ドライバ204は、単一バイナリ・イメージによって異なるハードウェア構成を容易にサポートすることができる。拡張I/Oアブストラクション・レイヤ206を使用することで、ベース・チップ102や拡張チップ130など複数のチップに分散する機能を、単一ドライバ204でサポートできるようになる。
拡張I/Oアブストラクション・レイヤ206を使用することで、複数のチップ実装に分散する機能を、単一バイナリ・イメージをもつ単一ドライバ204でサポートできるようになる。デバイス・ドライバ204の単一バイナリ・イメージは、類似デバイスに対しても使用することができ、これらの類似デバイスはベース・チップ102に組み込まれていても、拡張チップ130などの別のチップに組み込まれていてもよい。デバイス・ドライバ204の単一バイナリ・イメージは、ベース・チップ102など1つのチップ上の、あるいは複数のチップ102、130上のあるデバイスの複数のインスタンスに対して使用することができる。
例えば、ベース・チップ102および拡張チップ130の両チップ上に機能を有する3つのドライバ(I2C、JTAG、GPIO)は、ただ1つのデバイス・ドライバ204をもつように実装される。タイマやUART機能などの他のデバイス機能は、まったく異なるハードウェア実装で互換性をもつデバイス・ドライバ実装をもつ。I2CおよびJTAGもまた、まったく異なるハードウェア実装で互換性をもつデバイス・ドライバ実装をもつ。I2CおよびJTAGドライバ204は、複数の異なるチップ・ハードウェア実装に対して1つのバイナリ・イメージをもつ。
次に図4を参照すると、本発明の製造物品またはコンピュータ・プログラム製品300が示されている。コンピュータ・プログラム製品300は、フロッピ・ディスクや、光読出しコンパクト・ディスク、CD−ROM、またはテープの形態の大容量読出し専用メモリなどの記録媒体302、デジタルまたはアナログ通信リンクなどの伝送型媒体、または類似のコンピュータ・プログラム製品を含む。記録媒体302は、図1および図2のシステム100内の本発明の好ましい実施形態の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法を実施するプログラム手段304、306、308、310を、媒体302上に格納する。
記録されたプログラム手段304、306、308、310によって定義される、1連のプログラム命令または1つまたは複数の相互関連モジュールの論理的集まりが、本発明の好ましい実施形態の拡張I/Oアブストラクション・レイヤ206を含むオペレーティング・システム・カーネル200を提供する。
図面に示された本発明の実施形態の詳細を参照しながら本発明を説明してきたが、これらの詳細は、添付の特許請求の範囲で主張される本発明の範囲を限定しようとするものではない。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置であって、
デバイス・ドライバ・レイヤ、拡張I/Oアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを含み、
前記物理ハードウェア実装詳細レイヤが、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化し、
前記拡張I/Oアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、
前記拡張I/Oアブストラクション・レイヤが、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理I/Oデバイス構造を生成する装置。
(2)前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤをさらに含む、上記(1)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(3)前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張I/Oアブストラクション・レイヤが、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化する、上記(1)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(4)前記拡張I/Oアブストラクション・レイヤが、前記物理ハードウェア実装詳細レイヤにアクセスすることで、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、前記デバイス・ドライバ・レイヤが、前記物理ハードウェア実装から独立している、上記(3)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(5)前記物理ハードウェア実装詳細レイヤが、異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化する、上記(1)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(6)前記拡張I/Oアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを、複数の異なる物理ハードウェア実装に対して使用できるようにする、上記(5)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(7)複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記拡張I/Oアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを選択された組込み機能に対して使用できるようにし、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、上記(1)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(8)前記拡張I/Oアブストラクション・レイヤが、拡張PCIサポート・レイヤである、上記(1)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
(9)論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法であって、
デバイス・ドライバ・レイヤ、拡張I/Oアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを提供するステップと、
前記物理ハードウェア実装詳細レイヤを使用して、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップと、
前記拡張I/Oアブストラクション・レイヤを使用して、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップと、
前記拡張I/Oアブストラクション・レイヤを使用して、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理I/Oデバイス構造を生成するステップを含む方法。
(10)前記オペレーティング・システム・カーネルに前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤを提供するステップを含む、上記(9)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
(11)前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張I/Oアブストラクション・レイヤを使用して、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、上記(9)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
(12)前記物理ハードウェア実装詳細レイヤを使用して前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップが、各異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化するステップを含む、上記(9)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
(13)前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して複数の異なる物理ハードウェア実装に対して使用できるようにするステップをさらに含む、上記(12)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
(14)複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して、選択された組込み機能に対して使用できるようにするステップをさらに含み、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、上記(9)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
(15)前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張I/Oアブストラクション・レイヤを使用して前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップが、前記ベース・チップおよび前記拡張チップ上の前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、上記(9)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
(16)前記拡張I/Oアブストラクション・レイヤが、拡張PCIサポート・レイヤである、上記(9)に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
本発明の好ましい実施形態によるソフトウェア抽象化方法を実施するためのプロセッサ・システムを図2と併せて示すブロック図である。 本発明の好ましい実施形態によるソフトウェア抽象化方法を実施するためのプロセッサ・システムを図1と併せて示すブロック図である。 本発明の好ましい実施形態による図1および図2のプロセッサ・システムで使用できる例示的なオペレーティング・システム・カーネルを示すブロック図である。 本発明の好ましい実施形態によるコンピュータ・プログラム製品を示すブロック図である。
符号の説明
103 PCI−X対PCIブリッジ
104 サービス・プロセッサ機能
106 メイン・プロセッサ
108 DRAM/NVRAM
110 I2C機能
112 JTAG機能
114 GPIO機能
116 DMA機能
118 USB機能
120 イーサネット機能
122 UART機能
124 内部ブリッジ
126 DRAM
128 NVRAM
129 フラッシュ・メモリ
131 内部ブリッジ
132 UART機能
134 I2C機能
136 タイマ機能
138 JTAG機能
140 SSI機能
142 GPIO機能
200 オペレーティング・システム・カーネル
202 アプリケーション・プログラム・インタフェース
204 デバイス・ドライバ
210 物理ハードウェア実装詳細
300 コンピュータ・プログラム製品
302 記録媒体
304 プログラム手段
306 プログラム手段
308 プログラム手段
310 プログラム手段

Claims (16)

  1. 論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置であって、
    デバイス・ドライバ・レイヤ、拡張I/Oアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを含み、
    前記物理ハードウェア実装詳細レイヤが、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化し、
    前記拡張I/Oアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、
    前記拡張I/Oアブストラクション・レイヤが、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理I/Oデバイス構造を生成する装置。
  2. 前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤをさらに含む、請求項1に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  3. 前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張I/Oアブストラクション・レイヤが、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化する、請求項1に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  4. 前記拡張I/Oアブストラクション・レイヤが、前記物理ハードウェア実装詳細レイヤにアクセスすることで、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化し、前記デバイス・ドライバ・レイヤが、前記物理ハードウェア実装から独立している、請求項3に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  5. 前記物理ハードウェア実装詳細レイヤが、異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化する、請求項1に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  6. 前記拡張I/Oアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを、複数の異なる物理ハードウェア実装に対して使用できるようにする、請求項5に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  7. 複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記拡張I/Oアブストラクション・レイヤが、前記デバイス・ドライバ・レイヤのあるデバイス・ドライバの単一バイナリ・イメージを選択された組込み機能に対して使用できるようにし、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、請求項1に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  8. 前記拡張I/Oアブストラクション・レイヤが、拡張PCIサポート・レイヤである、請求項1に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための装置。
  9. 論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法であって、
    デバイス・ドライバ・レイヤ、拡張I/Oアブストラクション・レイヤ、および物理ハードウェア実装詳細レイヤを含むオペレーティング・システム・カーネルを提供するステップと、
    前記物理ハードウェア実装詳細レイヤを使用して、前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップと、
    前記拡張I/Oアブストラクション・レイヤを使用して、前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップと、
    前記拡張I/Oアブストラクション・レイヤを使用して、前記物理ハードウェア実装内の各組込み機能毎に機能固有の論理I/Oデバイス構造を生成するステップを含む方法。
  10. 前記オペレーティング・システム・カーネルに前記デバイス・ドライバ・レイヤによってサポートされるアプリケーション・プログラム・インタフェース・レイヤを提供するステップを含む、請求項9に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
  11. 前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張I/Oアブストラクション・レイヤを使用して、前記ベース・チップおよび前記拡張チップの前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、請求項9に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
  12. 前記物理ハードウェア実装詳細レイヤを使用して前記物理ハードウェア実装についてのハードウェア詳細をカプセル化するステップが、各異なる物理ハードウェア実装毎に固有のハードウェア詳細をカプセル化するステップを含む、請求項9に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
  13. 前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して複数の異なる物理ハードウェア実装に対して使用できるようにするステップをさらに含む、請求項12に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
  14. 複数の組込み機能が、前記物理ハードウェア実装のベース・チップおよび拡張チップ内に含まれ、前記デバイス・ドライバ・レイヤのデバイス・ドライバに単一バイナリ・イメージを提供して、選択された組込み機能に対して使用できるようにするステップをさらに含み、前記選択された組込み機能が前記ベース・チップまたは前記拡張チップ上に含まれる、請求項9に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
  15. 前記物理ハードウェア実装がベース・チップおよび拡張チップを含み、各チップが複数の組込み機能を含み、前記拡張I/Oアブストラクション・レイヤを使用して前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップが、前記ベース・チップおよび前記拡張チップ上の前記組込み機能用の前記デバイス・ドライバ・レイヤに対してハードウェア詳細を抽象化するステップを含む、請求項9に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
  16. 前記拡張I/Oアブストラクション・レイヤが、拡張PCIサポート・レイヤである、請求項9に記載の論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法。
JP2004105054A 2003-04-24 2004-03-31 論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置 Expired - Fee Related JP3927553B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/422,687 US7069206B2 (en) 2003-04-24 2003-04-24 Method and apparatus for abstraction of physical hardware implementation to logical software drivers

Publications (2)

Publication Number Publication Date
JP2004326747A true JP2004326747A (ja) 2004-11-18
JP3927553B2 JP3927553B2 (ja) 2007-06-13

Family

ID=33298960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004105054A Expired - Fee Related JP3927553B2 (ja) 2003-04-24 2004-03-31 論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置

Country Status (2)

Country Link
US (1) US7069206B2 (ja)
JP (1) JP3927553B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069206B2 (en) * 2003-04-24 2006-06-27 International Business Machines Corporation Method and apparatus for abstraction of physical hardware implementation to logical software drivers

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584029B2 (en) * 2003-12-31 2009-09-01 Teradyne, Inc. Telematics-based vehicle data acquisition architecture
US20060271255A1 (en) * 2004-12-30 2006-11-30 Teradyne, Inc. System and method for vehicle diagnostics and prognostics
US8042122B2 (en) * 2007-06-27 2011-10-18 Microsoft Corporation Hybrid resource manager
US8015516B2 (en) * 2008-01-18 2011-09-06 International Business Machines Corporation System and method for creating a logical representation of a functional logic system from a physical representation
GB2459643A (en) * 2008-04-24 2009-11-04 Symbian Software Ltd Interface to allow user applications to communication with hardware devices
US8307340B2 (en) * 2008-09-26 2012-11-06 Microsoft Corporation Hardware abstraction in embedded systems
US8248373B2 (en) 2010-06-18 2012-08-21 Microsoft Corporation Contextual control of dynamic input device
US8983911B2 (en) 2011-06-20 2015-03-17 Microsoft Technology Licensing, Llc Storage media abstraction for uniform data storage
US10909048B1 (en) 2019-07-30 2021-02-02 Microsoft Technology Licensing, Llc Declarative transactional communications with a peripheral device via a low-power bus
CN110958590B (zh) * 2019-11-29 2023-09-22 上海上实龙创智慧能源科技股份有限公司 一种基于多协议边缘计算网关的异构设备集成系统
CN115495201B (zh) * 2022-11-08 2024-02-20 南京朝鹿鸣科技有限公司 用于边缘计算的嵌入式抽象虚拟机系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233649A (ja) 1990-12-28 1992-08-21 Nec Eng Ltd 周辺装置の管理システム
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
US5727212A (en) * 1995-04-12 1998-03-10 International Business Machines Corporation Object oriented device driver system for procedural device drivers
US5887169A (en) * 1996-03-15 1999-03-23 Compaq Computer Corporation Method and apparatus for providing dynamic entry points into a software layer
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US6023736A (en) * 1997-12-19 2000-02-08 International Business Machines Corporation System for dynamically configuring I/O device adapters where a function configuration register contains ready/not ready flags corresponding to each I/O device adapter
CA2236525C (en) * 1998-05-01 2003-07-15 Mitel Corporation Method and apparatus for migrating embedded pbx system to personal computer
US6275893B1 (en) * 1998-09-14 2001-08-14 Compaq Computer Corporation Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US6618767B1 (en) * 1998-11-17 2003-09-09 Sun Microsystems, Inc. Mechanism by which devices on unforeseen platform variants may be supported without re-release of core platform kernel software
US6633929B1 (en) * 1999-04-30 2003-10-14 Microsoft Corporation Method and system for abstracting network device drivers
US7069206B2 (en) * 2003-04-24 2006-06-27 International Business Machines Corporation Method and apparatus for abstraction of physical hardware implementation to logical software drivers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069206B2 (en) * 2003-04-24 2006-06-27 International Business Machines Corporation Method and apparatus for abstraction of physical hardware implementation to logical software drivers

Also Published As

Publication number Publication date
JP3927553B2 (ja) 2007-06-13
US20040215439A1 (en) 2004-10-28
US7069206B2 (en) 2006-06-27

Similar Documents

Publication Publication Date Title
JP4327363B2 (ja) 周辺リソース構成のためのacpiソース言語の自動生成
KR100306636B1 (ko) Pci-isa인터럽트프로토콜컨버터및선택메카니즘
KR102610567B1 (ko) 이종 시스템 온 칩에 대한 소프트웨어 정의 다중 도메인 생성 및 분리
US5761462A (en) Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data-processing system
US6643724B2 (en) Method and apparatus for interrupt routing of PCI adapters via device address mapping
US20130297846A1 (en) Providing A Peripheral Component Interconnect (PCI)-Compatible Transaction Level Protocol For A System On A Chip (SoC)
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
JP2003099326A (ja) システム保護マップ
JP3927553B2 (ja) 論理ソフトウェア・ドライバに対して物理ハードウェア実装を抽象化するための方法および装置
JP2005317021A (ja) 設定可能なpciエクスプレススイッチ
US8706942B2 (en) Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
CN101751352B (zh) 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持
Sharma et al. Wishbone bus architecture-a survey and comparison
US20040117743A1 (en) Heterogeneous multi-processor reference design
US9665522B2 (en) Protocol neutral fabric
TW202240413A (zh) PCIe裝置及其操作方法
JP2002539524A (ja) 周辺デバイス割込みを処理するための装置および方法
JP2006343942A (ja) バスシステム設計方法と装置
KR970012168A (ko) 외부 장치를 액세스시키는 데이타 처리 시스템 및 외부 장치를 액세스시키는 방법
Kohn Partial reconfiguration of a hardware accelerator with vivado design suite for zynq-7000 ap soc processor
Lewis et al. Delivering PCI in HP B-class and C-class workstations: a case study in the challenges of interfacing with industry standards
US5761461A (en) Method and system for preventing peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data processing system
JPH11288400A (ja) Pciブリッジデバイス
JP2002099464A (ja) チップ搭載システムのための再構成可能なメモリ・マップ
JP5630886B2 (ja) 半導体装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051228

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20051228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060801

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070220

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070302

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees