JP2005071345A - デバイスのバス機能へのコンフィギュレーション可能マッピング - Google Patents

デバイスのバス機能へのコンフィギュレーション可能マッピング Download PDF

Info

Publication number
JP2005071345A
JP2005071345A JP2004230382A JP2004230382A JP2005071345A JP 2005071345 A JP2005071345 A JP 2005071345A JP 2004230382 A JP2004230382 A JP 2004230382A JP 2004230382 A JP2004230382 A JP 2004230382A JP 2005071345 A JP2005071345 A JP 2005071345A
Authority
JP
Japan
Prior art keywords
devices
logical devices
mapping
functions
pci
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.)
Pending
Application number
JP2004230382A
Other languages
English (en)
Inventor
Daniel V Zilavy
ダニエル・ヴイ・ジラヴィ
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005071345A publication Critical patent/JP2005071345A/ja
Pending 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】マルチオペレーティングシステムのコンピュータシステムにおいて、複数のデバイスを効率よくPCI機能にマッピングできる方法を提供する。
【解決手段】バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の論理デバイスを備えるコンピュータシステムで使用されるコンピュータ実施される方法であって、複数の論理デバイスそれぞれが複数の機能の別個いずれかにマッピングされるべきであることを互換性フラグが示しているかどうかを判断するステップと、(B)ステップ(A)において、複数の論理デバイスがそのようにマッピングされるべきであると判断された場合には、複数の論理デバイスそれぞれを複数の機能の別個いずれかにマッピングするステップと、(C)そうでない場合には、複数の論理デバイスの少なくとも2つを複数の機能の単一の機能にマッピングするステップと、を含む。
【選択図】図6

Description

本発明は、コンピュータシステムに使用される通信バスに関し、特に、通信バスに接続された複数のデバイスを効率的にコンフィギュレーションする技法に関する。
従来のコンピュータシステムは、通常、中央処理装置(CPU)と、メインメモリと、データバスを介して相互に通信すると共にCPUと通信する複数のデバイスとを含む。
このデータバスは、入出力(I/O)バスとも呼ばれる。
CPUは、例えば、データバスを介してこれらのデバイス(ハードディスクドライブ、プリンタ、ディスプレイなど)にコマンドおよびデータを送信し、その逆の送信もまた同様に行われる。
小型コンピュータ用周辺機器インタフェース(SCSI)バス、業界標準アーキテクチャ(ISA)バス、周辺機器コンポーネントインタフェース(PCI)バス、IC間(IC)バスなど、さまざまな従来のデータバスが存在する。
また、従来のコンピュータシステムは、通常、プロセッサとメインメモリとの間でデータを搬送するシステムバスも含む。
図1を参照して、従来技術のコンピュータシステム100のブロック図を示す。
このコンピュータシステムは、中央処理装置(CPU)102およびメインメモリ104(例えばRAM)を含み、これらは、システムバス106に接続されている。
また、システム100はPCIバス110も含む。このPCIバス110は、システム−PCI間ブリッジ108によってシステムバス106に接続されている。
3つのカード114a〜114c(本明細書では「物理PCIデバイス」とも呼ぶ)が、PCIバス110に接続されている。
後に詳述するように、これらのカード114a〜114cそれぞれは、1つまたは複数の「論理」PCIデバイスを実施することができる。
図1に示す例では、カード114aは、2つの論理デバイス112a〜112bを実施し、カード114bは、1つの論理デバイス112cを実施し、カード114cは、1つの論理デバイス112dを実施する。
論理デバイス112aおよび112bは、例えば、UART(ユニバーサル非同期レシーバ/トランスミッタ)とすることができる。
UARTは、非同期シリアル通信をハンドリングするコンピュータコンポーネントである。
すべてのコンピュータが、そのコンピュータのシリアルポートを管理する少なくとも1つのUARTを含み、いくつかの内部モデムが自身のUARTを有する。
特に、デバイス112a〜112bは共に、2つのUARTとして機能する能力を有するカード114a上の単一のプロセッサを使用して実施することもできるし、カード114a上の2つの別々の組のコンポーネントを使用して実施することもできる。
CPU102およびメインメモリ104は、システムバス106を介して相互に通信することができる。
デバイス112a〜112dは、PCIバス110を介して相互に通信することができる。
CPU102およびメインメモリ104は、システム−PCI間ブリッジを介し、システムバス106およびPCIバス110を通じてデバイス112a〜112dと通信することができる。
PCIバス110は、PCIローカルバス仕様改訂版2.3によって現在規定されている「コンフィギュレーション空間」を提供する。
このコンフィギュレーション空間は、バス110に接続されたデバイス(例えば、図1に図示した例ではデバイス112a〜112d)用のコンフィギュレーション情報を記憶するために使用されるものである。
各PCIデバイス用のコンフィギュレーション空間は、デバイス識別子、供給業者識別子、改訂識別子などのコンフィギュレーション情報を含む。
特定のPCIデバイス用のコンフィギュレーション情報は、通常、PCIカード上のEEPROMに記憶され、その後、レジスタにロードされる。
このレジスタから(例えば、初期化ソフトウェアおよびエラーハンドリングソフトウェアによって)このコンフィギュレーション情報にアクセスすることにより、そのデバイスに関する情報を得ることができ、そのデバイスを特定のシステムで適切に機能するようにコンフィギュレーションすることができる。
より具体的に、図2を参照して、一例のPCIコンフィギュレーション空間200の図を示す。このPCIコンフィギュレーション空間200は、単一の連続したコンフィギュレーションレジスタセットとして図示されている。
このレジスタセットは、次に詳述するように、PCIバスとこのようなバス上のデバイスとに割り当てられる。
コンピュータシステム内の各PCIバスには、コンフィギュレーション空間200の一部が割り当てられる。
図2に示す例では、コンフィギュレーション空間200は、3つの部分空間202a〜202cに分割されている。
これらの部分空間それぞれは、1つのPCIバスに割り当てられる。
バスコンフィギュレーション空間202a〜202cそれぞれは、64Kのメモリを含む。
図1に示すシステム100は、1つのPCIバス110のみを含む。
したがって、このPCIバス110には、コンフィギュレーション空間200の第1の部分202aに割り当てられることになる。
したがって、この部分202aを、本明細書では、「バスコンフィギュレーション空間」と呼ぶ。
図2にさらに示すように、バスコンフィギュレーション空間202a〜202cそれぞれは、32個の部分空間にさらに分割される。
これらの部分空間それぞれは、2Kの長さであり、対応するPCIバス上の別々の物理デバイス(例えばカード)に割り当てることができる。
したがって、これらの2Kの部分空間それぞれを、本明細書では、「物理デバイスコンフィギュレーション空間」と呼ぶ。
図1を再び参照して、コンピュータシステム100は、3つの物理PCIデバイス114a〜114cを含む。
PCIデバイス114aには、例えば、物理デバイスコンフィギュレーション空間204aを割り当てることができ、PCIデバイス114bには、物理デバイスコンフィギュレーション空間204bを割り当てることができ、PCIデバイス114cには、物理デバイスコンフィギュレーション空間204cを割り当てることができる。
PCIバスアーキテクチャによって、2つ以上の機能を実行するデバイスをPCIバスに接続することが可能になる。
2つ以上の機能を実行するデバイスの一例は、単一チップ上に2つのSCSIポートを有するデバイスなどのマルチポートデバイスである。
別の例は、デバイス114aである。
デバイス114aは、論理デバイス112aおよび112bにそれぞれある2つのUARTの機能を実施する。
別々のコンフィギュレーション空間は、多機能デバイスの各機能(例えば、ポートまたはUART)に割り当てられる。
より具体的には、各物理デバイスコンフィギュレーション空間は、8個の「機能コンフィギュレーション空間」に分割される。
これらの機能コンフィギュレーション空間それぞれは、特定の機能用のコンフィギュレーションレジスタを含む。
例えば、図3を参照して、物理デバイスコンフィギュレーション空間204aの図を示す。
この物理デバイスコンフィギュレーション空間204aは、この例では、物理デバイス114aに割り当てられる。
物理デバイスコンフィギュレーション空間204aは、8個の256バイトの「機能コンフィギュレーション空間」300a〜300hに分割される。
機能コンフィギュレーション空間300a〜300hそれぞれは、対応する物理デバイス114aの別個の機能(例えば、ポートまたはUART)用のコンフィギュレーション情報を記憶する。
物理PCIデバイスは、単一の機能を実施するためにのみ必要とされる。
単一機能デバイスは、例えば、その単一機能用のコンフィギュレーション情報を、その機能コンフィギュレーション空間の最初の部分に提供することができ、このデバイスに割り当てられた残りの機能コンフィギュレーション空間を空の状態のままにしておくことができる。
多機能デバイスは、最大8個の機能まで、その機能コンフィギュレーション空間の2つまたは3つ以上のものにコンフィギュレーション情報を記憶することができる。
図4を参照して、機能コンフィギュレーション空間300a(この例では、PCIデバイス114aの機能0に対応する)をより詳細に示す。
この機能コンフィギュレーション空間300aは、64バイトのヘッダ部402および192バイトのコンフィギュレーションレジスタ部404の双方を含む。
図5を参照して、機能コンフィギュレーション空間300aのヘッダ部402をより詳細に図示した図を示す。
ヘッダ部402は、図5では、32ビット(4バイト)幅で16バイト長の2次元配列として図示されている。
PCI仕様によって規定されるように、ヘッダ部402は次のフィールドを含む。
すなわち、デバイス識別子(ID)502a、供給業者ID502b、ステータス502c、コマンド502d、クラスコード502e、改訂ID502f、BIST(ビルトインセルフテスト)502g、ヘッダタイプ502h、待ち時間タイマ502i、キャッシュラインサイズ502j、ベースアドレスレジスタ502k、CardBus(カードバス)CISポインタ502l、サブシステムID502m、サブシステム供給業者ID502n、拡張ROMベースアドレス502o、リザーブ502p、機能ポインタ502q、リザーブ502r、Max_Lat502s、Min_Gnt502t、割り込みピン502u、および割り込みライン502vを含む。
本明細書で詳細に説明しないフィールドは、当業者に既知であり、PCI仕様により詳細に説明されている。
HP−UXバージョン11iやそれよりも高位のものなど、いくつかのオペレーティングシステムは、単一のPCIカード上の複数の論理デバイスを単一のPCI機能に割り当てる(マッピングする)ことを可能にしている。
例えば、上述したように、システム100の論理デバイス112aおよび112b(図1)は、単一のPCIカード114a上で実施することができる。
したがって、システム100が、HP−UXオペレーティングシステムなど、複数のデバイスを単一のPCI機能にマッピングすることを可能にするオペレーティングシステムを使用して動作する場合に、論理デバイス112aおよび112bは、単一の機能330a(図3)にマッピングすることができる。
複数のデバイス(UARTなど)を単一の機能にマッピングできることにより、2つのデバイス用のコンフィギュレーション情報を提供するためにコンフィギュレーションおよび維持を行う必要があるレジスタは、1つの機能のみのレジスタとなるので、機能の使用がより効率的になる。
複数のデバイスを単一のPCI機能にマッピングする1つの方法は、次のとおりである。
オペレーティングシステム(例えばHP−UX)は、「複数のデバイスがこの機能にマッピングされる」ことを意味する特別なサブシステムID値を指定することができる。
この特別なデバイスID値を、本明細書では、ラベルMULT_DEVICES(マルチデバイス)によって参照することにする。
単一のPCIカード上で実施される2つまたは3つ以上のデバイス(デバイス112aや112bなど)を、そのカードの物理デバイスコンフィギュレーション空間の単一のPCI機能にマッピングするために、値MULTI_DEVICESを、その機能のサブシステムIDフィールド502m(図5)に記憶することができる。
次いで、これらの2つのデバイスは、それら2つのデバイスに割り当てられたレジスタが、コンフィギュレーションレジスタ404内で連続した状態で、コンフィギュレーションレジスタ404を共有する。
デバイス112aおよび112bが共に、単一の機能300aにマッピングされたものと仮定し、したがって、デバイス112aおよび112bが共に、単一のコンフィギュレーション空間のヘッダ402を共有すると仮定する。
PCIバス上の論理デバイスは、バス番号、デバイス番号(ID)、および機能番号の組み合わせによってアドレス指定される。
デバイス112cなどのシステム100のコンポーネントが、バス0、デバイス番号MULT_DEVICES、および機能0で機能402をアドレス指定することによって機能402にアクセスしようとすると、オペレーティングシステムは、アドレス指定されている機能には2つのデバイスがマッピングされていることを示す特別の値として、MULT_DEVICESのデバイス番号を解釈することになる。
オペレーティングシステムは、この特別なアドレスに応じてデバイス112a〜112b用のコンフィギュレーションレジスタ404に適当にアクセスするようにコンフィギュレーションされる。
しかしながら、Microsoft(登録商標)の.NETなどの他のオペレーティングシステムは、複数のデバイスを単一のPCI機能にマッピングする能力を提供しないことがあり、MULT_DEVICESの特別なサブシステムID値の意味を正確に解釈できないことがある。
したがって、このようなオペレーティングシステムがシステム100にロードされると、そのオペレーティングシステムは、マッピングされた第2のデバイス(例えば、デバイス112b)を認識しないおそれがあり、したがって、第2のデバイスにアクセスできないおそれがある。
この問題の解決を試みる1つの方法は、デバイス112a〜112dそれぞれを別々のPCI機能に再マッピングすることである。
Micosoft(登録商標)の.NETなどのオペレーティングシステムは、この再マッピングを行った後、デバイス112a〜112dのすべてに正確にアクセスすることができるようになる。
しかしながら、このような再マッピングを行うと、HP−UXなどの他のオペレーティングシステムは、デバイス112a〜112dのすべてに正確にアクセスできなくなるおそれがある。
オペレーティングシステムの1つまたは複数のものをそれ自体変更することによってこの問題を解決する試みは、高価であり、かつ、多くの時間を要し、また、顧客が自身のオペレーティングシステムをアップグレードすることを必要とする。
したがって、マルチオペレーティングシステムのコンピュータシステムにおいて、複数のデバイスを単一のPCI機能にマッピングする改良された技法が必要とされている。
単一のコンピュータシステムが、複数のデバイスを単一のPCI機能にマッピングすることを許容しているオペレーティングシステムと、このようなマッピングを許容していないオペレーティングシステムとの双方を実行できるようにする技法について開示する。
オペレーティングシステムをロードしかつ実行する前(例えば、システムリセット中)に、コンピュータシステムは、オペレーティングシステムが、複数のデバイスの単一の機能へのマッピングをサポートしているかどうかを判断する。
このようなマッピングがサポートされている場合には、コンピュータシステムは、単一のPCIカード上の複数のデバイスを、そのカード用のPCIコンフィギュレーション空間の単一の機能にマッピングする。
このようなマッピングがサポートされていない場合には、コンピュータシステムは、各デバイスを別々のPCI機能にマッピングする。
次いで、コンピュータシステムは、オペレーティングシステムをロードして実行する。
これによって、オペレーティングシステムは、当該オペレーティングシステムがサポートする特定のデバイス−機能マッピング方式に従って、バス上のすべてのデバイスにアクセスすることが可能にされる。
例えば、本発明の一態様において、バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の論理デバイスを備えるコンピュータシステムで使用されるコンピュータ実施される方法が提供される。
本方法は、複数の論理デバイスそれぞれが複数の機能の別個いずれかにマッピングされるべきであることを互換性フラグが示しているかどうかを判断するステップと、(B)ステップ(A)において、複数の論理デバイスがそのようにマッピングされるべきであると判断された場合には、複数の論理デバイスそれぞれを複数の機能の別個いずれかにマッピングするステップと、(C)そうでない場合には、複数の論理デバイスの少なくとも2つを複数の機能の単一の機能にマッピングするステップと、を含む。
本発明の別の態様において、周辺機器コンポーネント接続(PCI)バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の物理デバイスを含むコンピュータシステムで使用されるコンピュータ実施される方法が提供される。
複数の物理デバイスそれぞれが、PCIバスに接続された複数の論理デバイスの少なくとも1つを実施する。
本方法は、(A)複数の論理デバイスそれぞれが、複数の機能の別個いずれかにマッピングされるべきであることを互換性フラグが示しているかどうかを判断するステップと、(B)ステップ(A)において、複数の論理デバイスそれぞれが、複数の機能の別個いずれかにマッピングされるべきであると判断された場合には、複数の物理デバイスの各物理デバイスDに対して、(1)前記物理デバイスDによって実施される論理デバイスの組Sを特定するステップと、(2)組Sの論理デバイスそれぞれを、物理デバイスDに関連付けられた別個の機能にマッピングするステップと、を実行するステップと、(C)そうでない場合には、複数の物理デバイスの各物理デバイスDに対して、(1)前記物理デバイスDによって実施される論理デバイスの組Sを特定するステップと、(2)コンフィギュレーション空間のPCIヘッダ部のサブシステムIDフィールドに、複数の論理デバイスが単一の機能にマッピングされていることを示す値を記憶することによって、組Sの論理デバイスのすべてを、前記物理デバイスDに関連付けられたコンフィギュレーション空間の一部の単一の機能にマッピングするステップと、を実行するステップと、を含む。
本発明のさらに別の態様において、バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の論理デバイスを含むコンピュータシステムで使用されるデバイスが提供される。
そのデバイスは、複数の論理デバイスそれぞれが、複数の機能の別個いずれかにマッピングされるべきであることを互換性フラグが示しているかどうかを判断する判断手段と、複数の論理デバイスがそのようにマッピングされるべきであると判断手段が判断した場合には、複数の論理デバイスそれぞれを、複数の機能の別個いずれかにマッピングする第1のマッピング手段と、複数の論理デバイスそれぞれが、複数の機能の別個いずれかにマッピングされるべきであると判断手段が判断しない場合には、複数の論理デバイスの少なくとも2つを、複数の機能の単一の機能にマッピングする第2のマッピング手段と、を含む。
本発明のさらなる態様において、バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の論理デバイスを備えるコンピュータシステムで使用されるコンピュータ実施される方法が提供される。
本方法は、(A)コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしているかどうかを判断するステップと、(B)ステップ(A)において、コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていないと判断された場合には、複数の論理デバイスそれぞれを複数の機能の別個いずれかにマッピングするステップと、(C)そうでない場合には、複数の論理デバイスの少なくとも2つを複数の機能の単一の機能にマッピングするステップと、を含む。
本発明の別の態様において、周辺機器コンポーネント接続(PCI)バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の物理デバイスを含むコンピュータシステムで実施される方法が提供される。前記複数の物理デバイスそれぞれが、前記バスに接続された複数の論理デバイスの少なくとも1つを実施する。
本方法は、(A)コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしているかどうかを判断するステップと、(B)ステップ(A)において、コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていないと判断された場合には、複数の物理デバイスの各物理デバイスDに対して、(1)前記物理デバイスDによって実施される論理デバイスの第1の組Sを特定するステップと、(2)第1の組Sの論理デバイスそれぞれを、物理デバイスDに関連付けられた別個の機能にマッピングするステップと、を実行するステップと、(C)そうでない場合には、複数の物理デバイスの各物理デバイスDに対して、(1)前記物理デバイスDによって実施される論理デバイスの第2の組Sを特定するステップと、(2)第2の組Sの論理デバイスのすべてを、前記物理デバイスDに関連付けられた単一の機能にマッピングするステップと、を実行するステップと、を含む。
本発明のさらなる態様において、バスに接続され、複数の機能を含むコンフィギュレーション空間に関連付けられた複数の論理デバイスを含むコンピュータシステムで使用されるデバイスが提供される。
そのデバイスは、コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしているかどうかを判断する判断手段と、コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていないと判断手段が判断した場合には、複数の論理デバイスそれぞれを複数の機能の別個いずれかにマッピングする第1のマッピング手段と、コンピュータシステムで実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていると判断手段が判断した場合には、複数の論理デバイスの少なくとも2つを複数の機能の単一の機能にマッピングする第2のマッピング手段と、を含む。
本発明のさまざまな態様および実施の形態の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになる。
単一のコンピュータシステムが、複数のデバイスを単一のPCI機能にマッピングすることを許容しているオペレーティングシステムと、このようなマッピングを許容していないオペレーティングシステムとの双方を実行できるようにする技法について開示する。
オペレーティングシステムをロードしかつ実行する前(例えば、システムリセット中)に、コンピュータシステムは、オペレーティングシステムが、複数のデバイスの単一の機能へのマッピングをサポートしているかどうかを判断する。
このようなマッピングがサポートされている場合には、コンピュータシステムは、単一のPCIカード上の複数のデバイスを、そのカード用のPCIコンフィギュレーション空間の単一の機能にマッピングする。
このようなマッピングがサポートされていない場合には、コンピュータシステムは、各デバイスを別々のPCI機能にマッピングする。
次いで、コンピュータシステムは、オペレーティングシステムをロードして実行する。
これによって、オペレーティングシステムは、当該オペレーティングシステムがサポートする特定のデバイス−機能マッピング方式に従って、バス上のすべてのデバイスにアクセスすることが可能にされる。
図6を参照して、本発明の一実施の形態において実行される方法600であって、コンピュータシステムで実行されるようにコンフィギュレーションされた特定のオペレーティングシステムと互換性のあるようにデバイスをPCI機能にマッピングする方法600、のフローチャートを示す。
図7を参照して、コンピュータシステム702において、方法600によって実行される動作を図示したデータフロー図を示す。
方法600は、例えば、コンピュータシステム702の管理プロセッサ704によって実行することができる。
管理プロセッサは、サーバで一般に使用されるプロセッサであり、適当なオペレーティングシステムによるサーバのブートアップやPCIコンフィギュレーション空間200のコンフィギュレーションなどのシステム管理機能を実行するプロセッサである。
コンピュータシステム702は、CPU、メモリ、データバス(PCIバスなど)、およびコンピュータシステムに一般に見られる他のコンポーネントを含むが、図7では、図示および説明を簡略化するために、本説明に関係のあるコンポーネントのみを図示している。
方法600は、コンピュータシステム702をブートする命令706を受け取る(ステップ602)。
このブート命令706は、システム702のユーザ708が提供することもできるし、別のコンピュータなどの別の命令源が提供することもできる。
ブート命令706は、例えば、コールドブートを実行する命令であってもよいし、ウォームブートを実行する命令であってもよいし、あるいはコンピュータシステム702の他の種類のリセットを実行する命令であってもよい。
また、方法600は、例えば、コンピュータシステム702上で現在実行されているオペレーティングシステムをアンロードした後に実行することもできる。
コンピュータシステム702は、2つのオペレーティングシステム712aおよび712bを含む。
例として、以下の説明では、オペレーティングシステム712aが、複数のデバイスを単一のPCI機能にマッピングすることをサポートしているオペレーティングシステム(HP−UXなど)であり、オペレーティングシステム712bが、複数のデバイスを単一のPCI機能にマッピングすることをサポートしていないオペレーティングシステム(Microsoft(登録商標)の.NETなど)であると仮定する。
コンピュータシステム702は、オペレーティングシステム712a〜712bのいずれをコンピュータシステム702上で実行するかを示すオペレーティングシステムセレクタ714を含む。
コンピュータシステム702は、複数のデバイスをシステム702の単一のPCI機能にマッピングできるかどうかを示す互換性フラグ710を含む。
この互換性フラグ710は、例えば、オペレーティングシステムセレクタ714によって選択されたオペレーティングシステムが、複数のデバイスを単一のPCI機能にマッピングすることが可能であるかどうかを示す値に設定することができる。
互換性フラグ710は、例えば、単一のビットによって表すことができ、その値は、複数のデバイスを単一のPCI機能にマッピングできるかどうかを示す。
管理プロセッサ704は、例えば、オペレーティングシステムセレクタ714の値、互換性フラグ710、および他のコンフィギュレーション情報(図示せず)を変更することをユーザに可能にすることができる。
コンピュータシステム702に電源を投入すると、管理プロセッサ704は、例えば、ユーザ708にコンフィギュレーションユーザインタフェース(UI)716を提示することができる。
このコンフィギュレーションUI716は、オペレーティングシステムセレクタ714や互換性フラグ710など、コンフィギュレーション情報718の現在の値を表示する。
ユーザ708は、コンフィギュレーションUI716を通じてコンフィギュレーション変更コマンド720を管理プロセッサ704に提供することができる。
それによって、ユーザ708は、コンフィギュレーション情報718の値を変更するように管理プロセッサ704に命令する。
ユーザ708が、オペレーティングシステム712a〜712bの特定の一方を選択すると、管理プロセッサ704は、オペレーティングシステムセレクタ714を、選択されたオペレーティングシステムを表す値に設定することができ、互換性フラグ710を、選択されたオペレーティングシステムが複数のデバイスを単一のPCI機能にマッピングすることを許容しているかどうかを示す値に設定することができる。
コンピュータシステム702は、オペレーティングシステムセレクタ714の値を互換性フラグ710の値にマッピングするテーブル(図示せず)を含むことができる。
管理プロセッサ704は、このようなテーブルを使用して、オペレーティングシステムセレクタ714の値に基づき互換性フラグ710の値を設定することができる。
あるいは、ユーザ708が、ユーザインタフェース716を通じて、互換性フラグ710の値を手動で設定することもできる。
オペレーティングシステムセレクタ714、互換性フラグ710、および他のコンフィギュレーション情報は、フラッシュRAMなど、どの種類の不揮発性メモリにも記憶することができる。
図6に戻って、方法600は、オペレーティングシステムセレクタによって選択されたオペレーティングシステムが、複数のデバイスの単一のPCI機能へのマッピングをサポートしているかどうかを判断する(ステップ604)。
方法600は、例えば、互換性フラグ710の値を検査して、オペレーティングシステムセレクタ714によって選択されたオペレーティングシステムが、複数のデバイスを単一のPCI機能にマッピングすることをサポートしていることをこの互換性フラグ710が示しているかどうかを判断することによって、このステップ604を実行することができる。
現在選択されているオペレーティングシステムが、複数のデバイスを単一のPCI機能にマッピングすることをサポートしている場合には、方法600は、PCIバス110上の各論理デバイス(例えば、論理デバイス112a〜112d)を別々の機能にマッピングする(ステップ606)。
互換性フラグ710が、複数のデバイスを単一のPCI機能にマッピングできることを示している場合には、各PCIカードに対して、方法600は、そのカードによって実施されるすべての論理デバイスを、そのカードのコンフィギュレーション空間の単一のPCI機能にマッピングする(ステップ608)。
ステップ606および608で実行されるオペレーションを、管理プロセッサ704がコンフィギュレーション空間200に発行した再マッピングコマンド722によって、図7に図的に示す。
管理プロセッサ704が、再マッピングコマンド722を実施するコンフィギュレーション空間200に対して行うことができる変更は、図8Aおよび図8Bに関して後により詳細に説明する。
ステップ606および608のオペレーションおよび効果を理解するために、以下の例を検討する。
第1の例では、第1のオペレーティングシステム712aが、オペレーティングシステムセレクタ714によって選択される。
例として、第1のオペレーティングシステム712aが、複数のデバイスを単一のPCI機能にマッピングすることをサポートしていることを想起されたい。
したがって、この第1の例では、互換性フラグ710は、複数のデバイスを単一の機能にマッピングできることを示している。
この第1の例では、方法600は、ステップ608を実行し、それによって、各PCIカード内のすべての論理デバイスを、そのカードのコンフィギュレーション空間の単一のPCI機能にマッピングする。
図1に示す例では、デバイス112aおよび112bは、単一のPCIカード114aで実施され、デバイス112cは、第2のPCIカード114bで実施され、デバイス112dは、第3のPCIカード114cで実施される。
図8Aを参照して、この第1の例において、ステップ608の実行結果として生じ得るマッピング800を図示した図を示す。
このマッピング800によれば、デバイス112aおよび112bは共に、PCIカード114a用の物理デバイスコンフィギュレーション空間204aの単一のPCI機能300aにマッピングされる。
上述したように、デバイス112aおよび112bは、物理デバイスコンフィギュレーション空間204a用の機能コンフィギュレーション空間ヘッダ402のサブシステムIDフィールド502mに特別なサブシステムID値(MULT_DEVICESなど)を記憶することによって、同じ機能300aにマッピングすることができる。
一方、デバイス112cおよび112dは、別個のPCI機能802および804にそれぞれマッピングされる。
PCI機能802および804は、例えば、カード114b用の物理デバイスコンフィギュレーション空間204bおよびカード114c用の物理デバイスコンフィギュレーション空間204cにそれぞれ存在することができる。
上述したように、オペレーティングシステム712aは、単一のPCI機能にマッピングされる複数のデバイスを認識する。
ステップ608を実行し、それによって、図8Aに示すように機能300a、802、および804にデバイス112a〜112dをマッピングすることにより、オペレーティングシステム712aは、PCIバス110上のデバイス112a〜112dのすべてにアクセスすることが可能になる。
第2の例では、第2のオペレーティングシステム712bが、オペレーティングシステムセレクタ714によって選択される。
例として、第2のオペレーティングシステム712bが、複数のデバイスを単一のPCI機能にマッピングすることをサポートしていないことを想起されたい。
したがって、この第2の例では、互換性フラグ710は、複数のデバイスを単一の機能にマッピングできないことを示している。
この第2の例では、方法600は、ステップ606を実行し、それによって、PCIバス110上の各論理デバイスを別々のPCI機能にマッピングする。
図8Bを参照して、この第2の例において、ステップ606の実行結果として生じ得るマッピング810を図示した図を示す。
このマッピング810によれば、デバイス112aおよび112bは、カード114a用の物理デバイスコンフィギュレーション空間204a(図3)の別々のPCI機能300aおよび300bにそれぞれマッピングされる。
一方、デバイス112cおよび112dは、カード114b〜114c用の別個の物理デバイスコンフィギュレーション空間204b〜204cの別個のPCI機能812および814にそれぞれマッピングされる。
その結果、デバイス112a〜112dそれぞれは、それ自体の機能コンフィギュレーション空間にマッピングされる。
上述したように、オペレーティングシステム712bは、単一のPCI機能にマッピングされる複数のデバイスを認識しない。
ステップ606を実行し、それによって、デバイス112a〜112dそれぞれを別個のPCI機能にマッピングすることにより、オペレーティングシステム712bは、PCIバス110上のデバイス112a〜112dのすべてにアクセスすることが可能になる。
ステップ606または608のいずれかを実行した後、方法600は、オペレーティングシステムセレクタ714によって選択されたオペレーティングシステムをコンピュータシステム702にロードし(ステップ610)、ロードしたオペレーティングシステムでコンピュータシステム702をブートする(ステップ612)。
ステップ610および612を実行する技法は、当業者に既知である。
図7では、管理プロセッサ704が、選択されたオペレーティングシステムをロードするように示されているが、方法600によって実行されるこの機能および他の機能は、システムプロセッサ(図示せず)上で実行されるファームウェア(例えばBIOS)などの他のコンポーネントによって実行することもできる。
ブートプロセスが完了すると、PCIバス110上のデバイス112a〜112dは、コンピュータシステム702で実行されているオペレーティングシステムを使用して、相互にアクセスすることができ、また、コンピュータシステム702の他のコンポーネントによってアクセスすることができる。
本発明の利点の中には、以下の1つまたは複数のものが含まれる。
本明細書で開示した技法の1つの利点は、当該技法を使用すると、コンピュータシステム上で現在実行されているオペレーティングシステムと互換性のあるように、PCIデバイスをPCI機能にマッピングすることを可能にすることができるということである。
より具体的には、本明細書で開示した技法を使用すると、現オペレーティングシステムが、複数のPCIデバイスを単一のPCI機能にマッピングすることをサポートしている場合には、このようなマッピング行うことができ、現オペレーティングシステムが、各PCIデバイスを別個のPCI機能にマッピングすることを必要とする場合には、このようなマッピングを行うことができる。このように、両種類のオペレーティングシステムは、PCIバスに接続されたデバイスのすべてを突き止めて使用できることになる。
本明細書で開示した技法の関連した利点は、HP−UXのさまざまなバージョンやMicrosoft(登録商標)の.NETなどの既存のオペレーティングシステムを変更する必要なしに、当該技法を実施できるということである。
オペレーティングシステムの変更が、オペレーティングシステム開発者にとって多くの時間を要し、費用のかかるプロセスであること、および、オペレーティングシステムのアップグレードが、顧客にとって多くの時間を要し、費用のかかるプロセスであることから、このことは好都合である。したがって、オペレーティングシステムの変更を必要とする解決策を回避することが望ましく、本明細書で開示した技法は、オペレーティングシステムの変更を必要としない解決策を提供する。
さらに、本明細書で開示した技法により、コンピュータシステム上で実行される特定のオペレーティングシステムの、ユーザによる柔軟な選択が可能になる。
多くの環境では、複数のオペレーティングシステムをコンピュータ上にロードし、さまざまな理由から、ユーザがオペレーティングシステム間を切り換えることができるようにすることが望ましい。
本明細書で開示した技法により、互いに異なるオペレーティングシステム間で、それらのオペレーティングシステムがPCI機能へのデバイスのマッピングをハンドリングするように、このような切り換えを行うことが可能になる。
それによって、マルチOSコンピュータシステムが提供する一般的な柔軟性が維持される。
上記では、特定の実施の形態の観点から本発明を説明したが、上記実施の形態は、例示として提供したものにすぎず、本発明の範囲を限定するものでもなく、また画定するものでもないことが理解されるべきである。
他のさまざまな実施の形態も、特許請求の範囲内に含まれる。
これらの他のさまざまな実施の形態には、以下のものが含まれるが、これらに限定されるものではない。
本明細書で説明した要素およびコンポーネントは、さらに別のコンポーネントに分割することもできるし、互いに結合して、同じ機能を実行するより個数の少ないコンポーネントを形成することもできる。
例えば、管理プロセッサ704によって実行される機能は、別法では、2つまたは3つ以上のプロセッサによって実行することもできるし、コンピュータシステム702の他のコンポーネントによって実行することもできる。
上記では、PCIバスアーキテクチャと共に、本発明のさまざまな実施の形態を説明したが、本発明は、PCIバスアーキテクチャと共に使用することに限定されるものではない。
それとは逆に、本明細書で開示した技法は、他のバスアーキテクチャと共に使用することもできる。
さらに、上記では、バスに接続できるデバイスの例としてUARTを説明したが、本発明は、UARTと共に使用することに限定されるものではない。
それとは逆に、本明細書で開示した技法は、バス接続されるあらゆるデバイスと共に使用することができる。
上記では、本発明のさまざまな実施の形態と共に使用できるオペレーティングシステムの例として、HP−UXおよび.NETを提供しているが、本発明は、これらのオペレーティングシステムと共に使用することに限定されるものではない。
さらに、図7には、2つのオペレーティングシステム712aおよび712bを示しているが、本明細書で開示した技法は、2つよりも少ないまたは多いオペレーティングシステムを有するコンピュータシステムにおいて使用することもできる。
上記例では、特定の機能を複数のデバイスにマッピングすることを示すのに、サブシステムIDフィールド502mを使用しているが、これは、一例にすぎない。ヘッダ402の他のフィールドまたは他のデータ構造体を使用して、同じ機能を実行することもできる。
特定のPCIカード上のすべてのデバイスを単一のPCI機能にマッピングすることが必要とされるとは限らない。
PCIカードのデバイスは、例えば、2つずつ組でまたは他の任意の方法で、PCI機能にマッピングすることもできる。
本明細書では、単一の「物理デバイス」が、1つまたは複数の「論理デバイス」を実施することができる。
単一の論理デバイスは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実施することができる。
単一のカード上の複数の論理デバイスは、単一のハードウェアセットを使用して実施することができるが、別々のハードウェアを使用して実施することもできる。
論理デバイスの一例は、PCI機能にマッピングできるあらゆる実体である。
論理デバイスは、その論理デバイスを実施する物理デバイスがバスに接続された時に、バス「に接続される」。
上述した技法は、例えば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実施することができる。
上述した技法は、1つまたは複数のコンピュータプログラムで実施することができる。
これらのコンピュータプログラムは、プログラム可能なコンピュータ上で実行され、このプログラム可能なコンピュータは、プロセッサ(管理プロセッサ704など)と、プロセッサによって可読な記憶媒体(例えば、揮発性メモリおよび不揮発性メモリ、ならびに/または記憶素子が含まれる)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。
プログラムコードは、入力デバイスを使用して入力された入力に適用されて、上述した機能を実行し、出力を生成することができる。
この出力は、1つまたは複数の出力デバイスに提供することができる。
特許請求の範囲内に含まれる各コンピュータプログラムは、アセンブリ言語、マシン言語、高級手続型プログラミング言語、またはオブジェクト指向型プログラミング言語など、いずれのプログラミング言語でも実施することができる。
プログラミング言語は、例えば、コンパイラ型プログラミング言語であってもよいし、インタープリタ型プログラミング言語であってもよい。
このような各コンピュータプログラムは、マシン可読記憶デバイスに有体物として具体化されてコンピュータプロセッサによって実行されるコンピュータプログラム製品で実施することができる。
本発明の方法のステップは、コンピュータ可読媒体上に有体物として具体化されたプログラムを実行するコンピュータプロセッサによって実行され、入力に対する操作および出力の生成を行うことにより、本発明の機能を実行することができる。
適切なプロセッサには、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの双方が含まれる。
一般に、プロセッサは、読み出し専用メモリおよび/またはランダムアクセスメモリから命令およびデータを受け取る。
コンピュータプログラム命令を有体物として具体化するのに適した記憶デバイスには、例えば、半導体メモリデバイスなどの不揮発性メモリ、内部ハードディスクや着脱可能ディスクなどの磁気ディスク、光磁気ディスク、およびCD−ROMのあらゆる形態が含まれる。
半導体メモリデバイスには、EPROM、EEPROM、およびフラッシュメモリデバイスが含まれる。
上記のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完することもできるし、このASICに実装することもできる。
また、コンピュータは、一般に、内部ハードディスク(図示せず)や着脱可能ディスクなどの記憶媒体からもプログラムおよびデータを受け取ることができる。
これらの要素は、従来のデスクトップコンピュータまたはワークステーションコンピュータ、および本明細書で説明した方法を実施するコンピュータプログラムを実行するのに適した他のコンピュータにおいても見られる。
これらの要素は、あらゆるデジタル印刷エンジンもしくはマーキングエンジン、表示モニタ、または、紙、フィルム、表示スクリーン、もしくは他の出力媒体上にカラーピクセルまたはグレースケールピクセルを生成することができる他のラスタ出力デバイスと共に使用することができる。
PCIバスを備える従来技術のコンピュータシステムの図である。 従来技術のPCIコンフィギュレーション空間の図である。 従来技術のPCI物理デバイスコンフィギュレーション空間の図である。 従来技術のPCI機能コンフィギュレーション空間の図である。 従来技術のPCI機能コンフィギュレーション空間のヘッダの図である。 本発明の一実施の形態において実行される方法であって、コンピュータシステムで実行されるようにコンフィギュレーションされたオペレーティングシステムと互換性のあるようにデバイスをPCI機能にマッピングする方法のフローチャートである。 本発明の一実施の形態による、図6の方法によって実行される動作を図示したデータフロー図である。 本発明の一実施の形態による、図6の方法の実行結果として生じ得るデバイスとPCI機能との間の第1のマッピングを示す図である。 本発明の一実施の形態による、図6の方法の実行結果として生じ得るデバイスとPCI機能との間の第2のマッピングを示す図である。
符号の説明
104・・・メインメモリ
106・・・システムバス
108・・・システム−PCI間ブリッジ
110・・・PCIバス
112a、112b、112c、112d・・・PCIデバイス
200・・・コンフィギュレーション空間
300a、300b・・・PCI機能
502a・・・デバイスID
502b・・・供給業者ID
502c・・・ステータス
502d・・・コマンド
502e・・・クラスコード
502f・・・改訂ID
502h・・・ヘッダタイプ
502i・・・待ち時間タイマ
502j・・・キャッシュラインサイズ
502k・・・ベースアドレスレジスタ
502l・・・CardBus CISポインタ
502m・・・サブシステムID
502n・・・サブシステム供給業者ID
502o・・・拡張ベースアドレス
502p、502r・・・リザーブ
502q・・・機能ポインタ
502u・・・割り込みピン
502v・・・割り込みライン
714・・・OSセレクタ
710・・・互換性フラグ
722・・・再マッピングコマンド
704・・・管理プロセッサ
718・・・コンフィギュレーション情報
720・・・コンフィギュレーション変更コマンド
716・・・コンフィギュレーションユーザインタフェース
706・・・ブート命令
802、804、812、814・・・PCI機能

Claims (8)

  1. バス(106)に接続され、複数の機能を含むコンフィギュレーション空間(200)に関連付けられた複数の論理デバイス(112a〜112d)を備えるコンピュータシステム(702)で使用されるコンピュータ実施される方法(600)であって、
    (A)前記複数の論理デバイス(112a〜112d)それぞれが、前記複数の機能の別個いずれかにマッピングされるべきであることを、互換性フラグ(710)が示しているかどうかを判断するステップ(604)と、
    (B)前記ステップ(A)において、前記複数の論理デバイス(112a〜112d)が、そのようにマッピングされるべきであると判断された場合には、前記複数の論理デバイス(112a〜112d)それぞれを、前記複数の機能の別個いずれかにマッピングするステップ(606)と、
    (C)そうでない場合には、前記複数の論理デバイス(112a〜112d)の少なくとも2つを前記複数の機能の単一の機能にマッピングするステップ(608)と
    を含むコンピュータ実施される方法。
  2. 前記バス(106)は、周辺機器コンポーネント接続(PCI)バスを備える
    請求項1に記載のコンピュータ実施される方法。
  3. 前記コンピュータシステム(702)は、前記バス(106)に接続された複数の物理デバイス(114a〜114c)をさらに備え、
    前記複数の物理デバイス(114a〜114c)それぞれは、前記複数の論理デバイス(112a〜112d)の少なくとも1つを実施し、
    前記ステップ(C)は、
    (C)(1)前記複数の物理デバイス(114a〜114c)における各物理デバイスDに対して、
    (a)前記物理デバイスDによって実施される論理デバイスの組Sを特定するステップと、
    (b)前記組Sの前記論理デバイスのすべてを、前記物理デバイスDに関連付けられた単一の機能にマッピングするステップと、
    を含む
    請求項1に記載のコンピュータ実施される方法。
  4. 周辺機器コンポーネント接続(PCI)バス(106)に接続され、複数の機能を含むコンフィギュレーション空間(200)に関連付けられた複数の物理デバイス(114a〜114c)であって、
    前記複数の物理デバイス(114a〜114c)それぞれが、前記PCIバスに接続された複数の論理デバイス(112a〜112d)の少なくとも1つを実施する、複数の物理デバイスを含むコンピュータシステム(702)で使用されるコンピュータ実施される方法(600)であって、
    (A)前記複数の論理デバイス(112a〜112d)それぞれが、前記複数の機能の別個いずれかにマッピングされるべきであることを互換性フラグ(710)が示しているかどうかを判断するステップ(604)と、
    (B)前記ステップ(A)において、前記複数の論理デバイス(112a〜112d)それぞれが、前記複数の機能の別個いずれかにマッピングされるべきであると判断された場合には、前記複数の物理デバイス(114a〜114c)の各物理デバイスDに対して、
    (1)前記物理デバイスDによって実施される論理デバイスの組Sを特定するステップと、
    (2)前記組Sの前記論理デバイスそれぞれを、前記物理デバイスDに関連付けられた別個の機能にマッピングするステップと、
    を実行するステップ(606)と、
    (C)そうでない場合には、前記複数の物理デバイス(114a〜114c)の各物理デバイスDに対して、
    (1)前記物理デバイスDによって実施される論理デバイスの組Sを特定するステップと、
    (2)前記コンフィギュレーション空間(200)のPCIヘッダ(402)部のサブシステムIDフィールド(502m)に、複数の論理デバイスが単一の機能にマッピングされていることを示す値を記憶することによって、前記組Sの前記論理デバイスのすべてを、前記物理デバイスDに関連付けられたコンフィギュレーション空間の一部の単一の機能にマッピングするステップと、
    を実行するステップ(608)と
    を含むコンピュータ実施される方法。
  5. バス(106)に接続され、複数の機能を含むコンフィギュレーション空間(200)に関連付けられた複数の論理デバイス(112a〜112d)を含むコンピュータシステム(702)で使用されるデバイス(704)であって、
    前記複数の論理デバイス(112a〜112d)それぞれが、前記複数の機能の別個いずれかにマッピングされるべきであることを、互換性フラグ(710)が示しているかどうかを判断する判断手段(604)と、
    前記複数の論理デバイス(112a〜112d)が、そのようにマッピングされるべきであると前記判断手段(604)が判断した場合には、前記複数の論理デバイス(112a〜112d)それぞれを、前記複数の機能の別個いずれかにマッピングする第1のマッピング手段(606)と、
    前記複数の論理デバイス(112a〜112d)それぞれが、前記複数の機能の別個いずれかにマッピングされるべきであると前記判断手段(604)が判断しない場合には、前記複数の論理デバイス(112a〜112d)の少なくとも2つを、前記複数の機能の単一の機能にマッピングする第2のマッピング手段(608)と
    を含むコンピュータシステムで使用されるデバイス。
  6. バス(106)に接続され、複数の機能を含むコンフィギュレーション空間(200)に関連付けられた複数の論理デバイス(112a〜112d)を備えるコンピュータシステム(702)で使用されるコンピュータ実施される方法(600)であって、
    (A)前記コンピュータシステム(702)で実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしているかどうかを判断するステップ(604)と、
    (B)前記ステップ(A)において、前記コンピュータシステム(702)で実行されるように選択された前記オペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていないと判断された場合には、前記複数の論理デバイス(112a〜112d)それぞれを前記複数の機能の別個いずれかにマッピングするステップ(606)と、
    (C)そうでない場合には、前記複数の論理デバイス(112a〜112d)の少なくとも2つを前記複数の機能の単一の機能にマッピングするステップ(608)と
    を含むコンピュータ実施される方法。
  7. 周辺機器コンポーネント接続(PCI)バス(106)に接続され、複数の機能を含むコンフィギュレーション空間(200)に関連付けられた複数の物理デバイス(114a〜114c)であって、
    前記複数の物理デバイス(114a〜114c)それぞれが、前記バス(106)に接続された複数の論理デバイス(112a〜112d)の少なくとも1つを実施する、複数の物理デバイスを含むコンピュータシステム(702)で使用されるコンピュータ実施される方法(600)であって、
    (A)前記コンピュータシステム(702)で実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしているかどうかを判断するステップ(604)と、
    (B)前記ステップ(A)において、前記コンピュータシステム(702)で実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていないと判断された場合には、前記複数の物理デバイスの各物理デバイスDに対して、
    (1)前記物理デバイスDによって実施される論理デバイスの第1の組Sを特定するステップと、
    (2)前記第1の組Sの前記論理デバイスそれぞれを、前記物理デバイスDに関連付けられた別々の機能にマッピングするステップと、
    を実行するステップ(606)と、
    (C)そうでない場合には、前記複数の物理デバイスの各物理デバイスDに対して、
    (1)前記物理デバイスDによって実施される論理デバイスの第2の組Sを特定するステップと、
    (2)前記第2の組Sの前記論理デバイスのすべてを、前記物理デバイスDに関連付けられた単一の機能にマッピングするステップと、
    を実行するステップ(608)と
    を含むコンピュータ実施される方法。
  8. バス(106)に接続され、複数の機能を含むコンフィギュレーション空間(200)に関連付けられた複数の論理デバイス(112a〜112d)を含むコンピュータシステム(702)で使用されるデバイス(704)であって、
    前記コンピュータシステム(702)で実行されるように選択されたオペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしているかどうかを判断する判断手段(604)と、
    前記コンピュータシステム(702)で実行されるように選択された前記オペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていないと前記判断手段(604)が判断した場合には、前記複数の論理デバイス(112a〜112d)それぞれを前記複数の機能の別個いずれかにマッピングする第1のマッピング手段(606)と、
    前記コンピュータシステム(702)で実行されるように選択された前記オペレーティングシステムが、複数の論理デバイスを単一の機能にマッピングすることをサポートしていると前記判断手段(604)が判断した場合には、前記複数の論理デバイス(112a〜112d)の少なくとも2つを前記複数の機能の単一の機能にマッピングする第2のマッピング手段(608)と
    を含むコンピュータシステムで使用されるデバイス。
JP2004230382A 2003-08-20 2004-08-06 デバイスのバス機能へのコンフィギュレーション可能マッピング Pending JP2005071345A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/644,291 US7003591B2 (en) 2003-08-20 2003-08-20 Configurable mapping of devices to bus functions

Publications (1)

Publication Number Publication Date
JP2005071345A true JP2005071345A (ja) 2005-03-17

Family

ID=34194050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004230382A Pending JP2005071345A (ja) 2003-08-20 2004-08-06 デバイスのバス機能へのコンフィギュレーション可能マッピング

Country Status (2)

Country Link
US (2) US7003591B2 (ja)
JP (1) JP2005071345A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287156A (ja) * 2006-04-19 2007-11-01 Internatl Business Mach Corp <Ibm> 周辺構成要素相互接続装置拡張読取り専用メモリ・データをキャッシュする方法、システムおよびプログラム
JP2008181389A (ja) * 2007-01-25 2008-08-07 Nec Computertechno Ltd ノード制御装置および情報処理装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7644219B2 (en) * 2005-06-30 2010-01-05 Dell Products L.P. System and method for managing the sharing of PCI devices across multiple host operating systems
US8792490B2 (en) * 2009-03-16 2014-07-29 Cisco Technology, Inc. Logically partitioned networking devices

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US133651A (en) * 1872-12-03 Improvement in carriage-springs
JPH0322160A (ja) 1989-06-20 1991-01-30 Fuji Electric Co Ltd 計算機システムにおけるアダプタ制御プログラムの組込方式
JPH08161250A (ja) 1994-12-06 1996-06-21 Canon Inc 情報処理装置
US5787305A (en) * 1995-04-25 1998-07-28 Pc-Tel, Inc. Host signal processing modem using a software simulation of a UART
JP3503948B2 (ja) 1995-09-13 2004-03-08 株式会社 日立製作所 電子計算機システム
US5812820A (en) * 1995-09-29 1998-09-22 Pacific Commware, Inc. Virtual UART
JPH09237246A (ja) 1995-12-25 1997-09-09 Hitachi Ltd Pciエージェント制御カードおよびpciエージェント制御方法
US5832238A (en) * 1996-10-18 1998-11-03 Advanced Micro Devices, Inc. Enabling PCI configuration space for multiple functions
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
US6108733A (en) * 1998-01-20 2000-08-22 Micron Technology, Inc. Method for extending the available number of configuration registers
US6243775B1 (en) * 1998-01-20 2001-06-05 Micron Technology, Inc. System for extending the available number of configuration registers
US6272576B1 (en) * 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
GB2337186B (en) 1998-05-08 2003-01-15 Nec Technologies Multi-function uart
US6446255B1 (en) * 1999-03-29 2002-09-03 International Business Machines Corporation Global registry object for mapping registry functions and registry equivalent functions across multiple operating systems in a cross-platform program
US6647434B1 (en) * 1999-12-28 2003-11-11 Dell Usa, L.P. Multifunction device with register space for individually enabling or disabling a function of plurality of functions in response to function configuration
TW499795B (en) 2001-03-19 2002-08-21 Realtek Semiconductor Corp PCI extended function interface and the PCI device using the same
US6880033B1 (en) * 2001-05-25 2005-04-12 Adaptec, Inc. Methods for configuring separate accessibility of each channel of a dual channel SCSI chip
US7463585B2 (en) * 2002-05-16 2008-12-09 Broadcom Corporation System, method, and apparatus for load-balancing to a plurality of ports
US7107382B2 (en) * 2003-04-03 2006-09-12 Emulex Design & Manufacturing Corporation Virtual peripheral component interconnect multiple-function device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287156A (ja) * 2006-04-19 2007-11-01 Internatl Business Mach Corp <Ibm> 周辺構成要素相互接続装置拡張読取り専用メモリ・データをキャッシュする方法、システムおよびプログラム
JP2008181389A (ja) * 2007-01-25 2008-08-07 Nec Computertechno Ltd ノード制御装置および情報処理装置

Also Published As

Publication number Publication date
US20050044277A1 (en) 2005-02-24
US7003591B2 (en) 2006-02-21
US20060161692A1 (en) 2006-07-20
US7757012B2 (en) 2010-07-13

Similar Documents

Publication Publication Date Title
US11513808B2 (en) Automatic switching and deployment of software or firmware based USB4 connection managers
US5999989A (en) Plug-and-play
US6457069B1 (en) Method and apparatus for providing support for dynamic resource assignment and configuration of peripheral devices when enabling or disabling plug-and-play aware operating systems
US6732264B1 (en) Multi-tasking boot firmware
US20200394076A1 (en) Information Handling System And Method To Allocate Peripheral Component Interconnect Express (PCIE) Bus Resources
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
US20030074491A1 (en) Method for expansion and integration of option ROM support utilities for run-time/boot-time usage
US6567911B1 (en) Method of conserving memory resources during execution of system BIOS
JPH11242646A (ja) アクセサリ内資源オフセット機構
US9910690B2 (en) PCI slot hot-addition deferral for multi-function devices
WO2014120113A1 (en) Assigning processors to memory mapped configuration
US7757012B2 (en) Configurable mapping of devices to bus functions
CN112306581B (zh) 一种基板管理控制器管理bios配置的方法及介质
US11436020B2 (en) Systems and methods to bifurcate at least one peripheral component interconnect express (PCIE) port in accordance with a user-selectable PCIE bifurcation setting
US10838861B1 (en) Distribution of memory address resources to bus devices in a multi-processor computing system
CN113204384B (zh) 设备启动方法、装置及计算机可读存储介质
US6598157B1 (en) Dynamic boot block control by boot configuration determination and subsequent address modification
US7464228B2 (en) System and method to conserve conventional memory required to implement serial ATA advanced host controller interface
US7827333B1 (en) System and method for determining a bus address on an add-in card
US7234047B1 (en) Method for managing memory space during system initialization
US9619245B1 (en) Method and apparatus for configuring and booting with more than one protocol using single option ROMBIOS code on multi function converged network adapter
US11372792B1 (en) Automatic bus resource adjustment in a multiple root bridge computing system
US11816058B2 (en) Method for dynamically modifying PCH PCIE root port where onboard VGA is located
CN113791905A (zh) 计算资源分配方法、装置及电子设备和存储介质
US6601163B1 (en) Method and system for executing adapter configuration routines utilizing different operating modes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070530