JP2008158710A - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- JP2008158710A JP2008158710A JP2006345181A JP2006345181A JP2008158710A JP 2008158710 A JP2008158710 A JP 2008158710A JP 2006345181 A JP2006345181 A JP 2006345181A JP 2006345181 A JP2006345181 A JP 2006345181A JP 2008158710 A JP2008158710 A JP 2008158710A
- Authority
- JP
- Japan
- Prior art keywords
- space
- lpar
- computer system
- memory space
- pci card
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
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
【課題】業界標準規格のバスを搭載するオープン系サーバにおいて、制御レジスタをメモリ空間及びIO空間にマッピングし、且つ該デバイスを制御するための制御レジスタを一つしか保持していないデバイスをLPAR制御プログラムの制御下で動作する複数のOSからの同時アクセスを可能とする技術を提供する。
【解決手段】計算機システムにおいて、LPAR制御プログラム100は、1つの物理的なデバイスのメモリ空間及びIO空間を各OSに対して仮想的にマッピングする機能を有する。さらに、前記LPAR制御プログラムは、1台の計算機システムを論理的な複数のパーティション(LPAR)に分割し、各LPARに対してLPARを特定するためのLPAR識別子を割当てる機能を有する。
【選択図】図1
【解決手段】計算機システムにおいて、LPAR制御プログラム100は、1つの物理的なデバイスのメモリ空間及びIO空間を各OSに対して仮想的にマッピングする機能を有する。さらに、前記LPAR制御プログラムは、1台の計算機システムを論理的な複数のパーティション(LPAR)に分割し、各LPARに対してLPARを特定するためのLPAR識別子を割当てる機能を有する。
【選択図】図1
Description
本発明は、1台の計算機システム上で複数のOS(オペレーティングシステム)が同時に動作する事が可能な計算機システムにおいて、制御レジスタがメモリ空間及びIO空間にマッピングされる1つの物理的なデバイスに対する複数のOSからの処理を同時に実行する計算機システムに関するものである。
これまで、メインフレームでは1つのシステム上においてLPAR制御プログラムの下で複数のOSを動作させるLPAR(Logical Partition:論理的パーティション)機能をサポートしてきた。
近年、前記LPAR機能をメインフレームだけでなく、オープン系サーバもサポートするようになってきている。オープン系サーバにて前記LPAR機能をサポートするにあたり、搭載デバイス数に制限があり1つのデバイスを複数のOSから共有する事が求められている。しかし、入出力資源の共有を実現しているメインフレームの場合、サポートしている入出力資源がメインフレームベンダの固有仕様によるものが多く、業界標準規格のデバイスをサポートしているオープン系サーバでは実現が困難である。
オープン系サーバでは、デバイスはオープン系サーバのスロットに挿入され、ホスト・プロセッサと接続する業界標準規格の手段としてはPCI−SIGにて策定されたPCI(Peripheral Component Interchange)バスを用いる構成が広く用いられている。PCIバスの場合、各デバイスに対して標準的に所持しているPCIコンフィギュレーションレジスタを含み、該デバイスを制御するための制御レジスタを一つしか保持しておらず、該理由からも複数のOSによって共用することは困難であった。
メインフレームで入出力資源を共有した例として、例えば特許文献1がある。1台の計算機システム上で異なる資源区画(LPAR)で動作する各OSの全てが共通的にアクセス可能であり、且つデバイスからもアクセス可能な空間(HSA)が存在し、HSA上に各OS個別の制御情報を作成することにより、入出力資源を共有する例である。また、特許文献2には、区画識別子を定め、区画識別子を起動情報に設定し、IO割込み時、区画識別子により割込みを行う区画(ゲスト)を特定する技術が記載されている。
特開平6−35725号公報
特開昭64−37636号公報
前述のように、メインフレームで入出力資源を共有した例として、特許文献1,2がある。しかし、業界標準規格バスを搭載するオープン系サーバでは、OSのメモリ空間及びIO空間にマッピングされたデバイスの制御レジスタをアクセスする事によりデバイスの制御を行う。マッピングされた空間へのOSからのアクセスは、そのアクセスが直接デバイスの制御レジスタアクセスとなりデバイスを制御する。従って、共有するOS数分の制御レジスタを物理デバイスが所持しなければ、各OSからの制御レジスタに対するアクセスは競合し、各OSからは期待通りの結果を得ることはできず、共有を実現する事はできない。
また、オープン系サーバではHSAのように1台の計算機システム上で異なる資源区画(LPAR)で動作する各OSの全てが共通的にアクセス可能な空間はなく実現は困難である。
そこで、本発明は、特許文献1,2のような従来例では実現が困難である業界標準規格のバスを搭載するオープン系サーバにおいて、制御レジスタをメモリ空間及びIO空間にマッピングし、且つ該デバイスを制御するための制御レジスタを一つしか保持していないデバイスをLPAR制御プログラムの制御下で動作する複数のOSからの同時アクセスを可能とする技術を提供する事を目的とするものである。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。すなわち、本発明の計算機システムは、以下のような特徴を有するものである。
(1)LPAR制御プログラムが、1台の計算機システムを論理的な複数のパーティション(LPAR)に分割し、各LPARにLPARを特定するためのLPAR識別子(ID)を割当てる手段を備える。
(2)LPAR制御プログラムが、LPAR制御プログラムの制御下で動作する複数のOSのメモリ空間及びIO空間に物理(共有)デバイスのメモリ空間及びIO空間を各OS毎に独立した仮想的なメモリ空間及びIO空間としてマッピングする手段を備える。
(3)LPAR制御プログラムは、各OSからの前記仮想的なメモリ空間及びIO空間へのアクセスをトラップし、前記IDを付加して物理(共有)デバイスの物理的なメモリ空間及びIO空間をアクセスする事により物理(共有)デバイス内のハードウェアレジスタに書込みを行う。LPAR制御プログラムは、物理(共有)デバイスがハードウェアレジスタに書込みを行ったアクセス結果と前記IDを物理的なメモリ空間及びIO空間からリードし、前記IDよりLPARを特定し、特定したLAPR上で動作するOSの前記仮想的なメモリ空間及びIO空間にアクセス結果を報告する手段を備える。
(4)物理(共有)デバイスで発生する非同期な事象のOSへの報告についても、物理(共有)デバイスは前記IDを付加して報告する事により、LPAR制御プログラムは前記IDで示されるLPARで動作中のOSの仮想的なメモリ空間及びIO空間に反映する手段を備える。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。すなわち、本発明の計算機システムによれば、以下のような効果を得ることができる。
(1)業界標準規格のバスを搭載するオープン系サーバにおいて、制御レジスタをメモリ空間及びIO空間にマッピングするデバイスをLPAR制御プログラムの制御下で動作する複数のOSから共有するシステムを提供できる。
(2)OS上で動作するデバイス制御プログラムは共有を意識する必要がなく修正が不要である。
(3)LPAR制御プログラムの制御下で動作する複数のOSから共有を可能とするために、デバイスはLPAR制御プログラムの制御下で動作するOS数分の制御レジスタを持つ必要がない。
(4)デバイスはLPAR制御プログラムが物理的なメモリ空間及びIO空間にアクセスする時に、LPARを特定するLPAR識別子(ID)をアクセス結果と共に報告するだけという簡単な実装で、LPAR制御プログラムの制御下で動作する複数のOSからの共有が可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図2は、本発明を適用する計算機システムの構成例(ハードウェア)を示す。計算機システム200は、CPU201,202、ノースブリッジ204、主記憶(MS)206、サウスブリッジ208、PCIスロット210,211、ホストバスアダプタ(HBA)212、ネットワークインタフェースカード(NIC)213、各種バス等から構成され、外部ストレージ214、LAN215に接続されている。
この計算機システム200は、複数のCPU201,202を有し、フロントサイドバス(FSB)203によりノースブリッジ204に接続される。ノースブリッジ204は、メモリバス205により主記憶(MS)206と接続され、バス207によりサウスブリッジ208と接続される。サウスブリッジ208は、PCIバス209によりPCIスロット210,211に接続される。
PCIスロット210,211に搭載されるPCIカードの例としては、外部ストレージ214に接続されるホストバスアダプタ(HBA)212やLAN215に接続されるネットワークインタフェースカード(NIC)213等がある。本実施の形態では、共有するデバイスとして、PCIカード(以下においては、ホストバスアダプタ(HBA)212をPCIカード212、ネットワークインタフェースカード(NIC)213をPCIカード213と記す)の例を示す。
図2で示した計算機システム200上でPCIカード212,213を制御する方法について記述する。
図2で示した計算機システム200は、図3で示すようにOS上で動作するプログラムやそのプログラムが扱うデータ等を格納する領域であるメモリ空間(MEM)300とPCIカード212,213等のデバイスとの通信を行うための領域であるIO空間(IO)301を持つ。PCIカード212,213の中にはOS上で動作するプログラムと通信を行う為の領域をメモリ空間(MEM)300上に持つ物もある。該計算機システム200は該メモリ空間(MEM)300と該IO空間(IO)301に対してリード、ライトを実施する事によりOS上で動作するプログラムからの要求を実行する。PCIカードメモリ空間(MMIO)302とPCIカードIO空間(IOMIO)303については後述する。
PCIに関する仕様検討を行うグループであるPCI−SIGで規定された仕様により、PCIカード400(図2のPCIカード212,213に対応)は、図4に示す通りPCIコンフィギュレーションレジスタ401、PCIカードメモリ空間レジスタ402、PCIカードIO空間レジスタ403を含む。OS上からPCIカード400の制御を可能とするためにPCIコンフィギュレーションレジスタ401中のメモリ空間ベースアドレスレジスタ404及びIO空間ベースアドレスレジスタ405に各空間のマッピングを行う開始アドレスを設定する。該設定によりメモリ空間(MEM)300のメモリ空間ベースアドレスレジスタ404に設定したアドレスから始まる領域にPCIカードメモリ空間(MMIO)302がマッピングされ、IO空間(IO)301のIO空間ベースアドレスレジスタ405に設定したアドレスから始まる領域にPCIカードIO空間(IOMIO)303がマッピングされる。
OS上からマッピングを行った該PCIカードメモリ空間(MMIO)302及びPCIカードIO空間(IOMIO)303に対してリード、ライトを実行する事によりPCIカード400の制御を行う。
図5を用いて、LPAR制御プログラムが動作していない構成(1つの計算機システム上で1つのOSのみが動作している構成)にて、OS上からPCIカードメモリ空間(MMIO)302を使用してPCIカード212,213を制御する流れについて説明する。
図5は、ユーザOS(User OS)500のみが動作しており、該OS上でPCIカード510を制御するプログラムであるPCIカードドライバ520が動作している。また、該OSはメモリ空間(MEM)501を含み、該MEM501にはPCIカードメモリ空間(MMIO)502がマッピングされている。該MMIO502は、PCIカードドライバ520からPCIカード510に動作指示を行う為のPCIカード510内の制御レジスタ(CMD−REG)512にアクセスを行う為のフィールド(CMD)503及びPCIカード510が前記動作指示に対する実行結果コードを設定する制御レジスタ(ST−REG)513にアクセスを行う為のフィールド(ST)504を含む。
CMD−REG512とCMD503のフォーマットは共通であり、その例を図7に示す。Command(コマンドフィールド)700はPCIカード510に行わせる動作を示し、Parameter(パラメータフィールド)701はCommand700で示された動作を行うために必要となるパラメータを示し、Reserve(リザーブフィールド)702は現在未使用の領域である事を示す。また、ST−REG513とST504のフォーマットは共通であり、その例を図8に示す。Factor Code(要因フィールド)800はPCIカードが報告しようとしている要因を示し、Status(ステータスフィールド)801はFactor Code800で報告する要因の状態を示し、Reserve(リザーブフィールド)802は現在未使用の領域である事を示す。
PCIカードドライバ520はCMD503をリードし、クリアされた状態であるなら、CMD503に動作指示コードをライトする。該ライトにより計算機システム200上では、CPU201,202からメモリへのライト動作指示が発行される。該ライト動作指示はフロントサイドバス203を経由してノースブリッジ204に到達する。ノースブリッジ204は該ライト動作指示が主記憶(MS)206へのライトではなく、PCIカード212,213へのライトであると判断し、バス207を経由してサウスブリッジ208に到達する。サウスブリッジ208はPCIカード212,213に対してOS上でライトされた動作指示コードをライトデータとするライトトランザクションを実行する。該ライトトランザクション実行により、該動作指示コードはPCIカード510内のCMD−REG512に書込みが行われる。該書込みを契機としてPCIカード510の制御を行うPCIカードファームウェア511に動作指示コードが報告される。
PCIカードファームウェア511は受取った動作指示コードの管理テーブル(TASK−LIST)515に動作指示コードをキューイングし、CMD−REG512をクリアする。該クリアによりCMD503をリードするとクリアされた値がリードされ、これによりPCIカードドライバ520は次の動作指示コードをCMD503にライトできると判断する。PCIカードファームウェア511はTASK−LIST515内の複数の動作指示コードを平行して処理する。処理が完了した動作指示コードからTASK−LIST515からデキューし、実行結果コードをST−REG513に書込みを行う。該書込みにより、OS上に割込みが発生する。割込みを契機にしてPCIカードドライバ520からST504をリードすると、前記CMD503へのライト動作と同様に、CPU201,202からのリード動作指示はフロントサイドバス203、ノースブリッジ204、バス207を経由して、サウスブリッジ208に到達し、サウスブリッジ208はPCIバス209上にST−REG513をリードするトランザクションを実行し、ST−REG513の値をリードする。該リードした値は、サウスブリッジ208、バス207、ノースブリッジ204、フロントサイドバス203を経由してCPU201,202に動作指示の実行結果コードが報告される。
即ち、LPAR制御プログラムが動作していない構成(1つの計算機システム上で1つのOSのみが動作している構成)では、OS上からはPCIカードメモリ空間であるMMIO502をリード、ライトする事により、PCIカード510のハードウェアが持つ制御レジスタ群514がリード、ライトされ、これによりPCIカードドライバ520からPCIカード510の制御が行われる。
図1は、図5のLPAR制御プログラムが動作していない構成(1つの計算機システム上で1つのOSのみが動作している構成)に対して、本発明の特徴を示した一実施の形態の構成例(ソフトウェア)である。LPAR機能をサポートしている該計算機システム200上で、LPAR制御プログラム100の制御の下で、User LPAR#1からUser LPAR#nのn個のユーザLPAR104,105,106が立ち上がり、それぞれのUser LPAR104,105,106上で、User OS#1からUser OS#nのn個のユーザOS101,102,103が稼動する事を示す。n個のUser OS101,102,103が各々独立して図3で示すメモリ空間(MEM)300とIO空間(IO)301を含む。
LPAR制御プログラム100の制御の下で動作するn個のUser OS101,102,103から共有する物理(共有)デバイス111として、PCIカード212,213を例にして説明する。
LPAR制御プログラム100は、PCIコンフィギュレーションレジスタ401中のメモリ空間ベースアドレスレジスタ404にメモリ空間(MEM)300にマッピングを行う開始アドレスをライトする事によりPCIカード400をメモリ空間(MEM)300へマッピングする。該物理的にマッピングされたPCIカードメモリ空間(MMIO)302であるP−MMIO110へのアクセスによりPCIカード510のハードウェアが持つレジスタ群514にアクセスが行われる事になる。
一方、PCIカード400をメモリ空間(MEM)300へマッピングする為に、該n個のUser OS101,102,103は各々独立してPCIコンフィギュレーションレジスタ401中のメモリ空間ベースアドレスレジスタ404にメモリ空間(MEM)300にマッピングを行う開始アドレスのライト動作指示を行う。LPAR制御プログラム100は該ライト動作指示をトラップし、メモリ空間ベースアドレスレジスタ404には実際には書込みを行わず、更に各User OS101,102,103に対してはメモリ空間ベースアドレスレジスタ404へのライト動作を正常終了させる。これにより、各User OS101,102,103に対して仮想的なPCIカードメモリ空間(MMIO)であるV−MMIO107,108,109をマッピングする。OS上から仮想的にマッピングされたPCIカードメモリ空間(MMIO)であるV−MMIO107,108,109に対してライト動作指示が行われると、LPAR制御プログラム100がトラップした後、LPAR制御プログラム100が物理的にマッピングされたPCIカードメモリ空間(MMIO)であるP−MMIO110にライトを行い、PCIカード510のハードウェアが持つレジスタ群514に書込みを行う。OS上から仮想的にマッピングされたPCIカードメモリ空間であるV−MMIO107,108,109に対してリード動作指示が行われると、LPAR制御プログラム100がトラップし、PCIカード510のハードウェアが持つレジスタ群514から読込みを行うのではなく、LPAR制御プログラム110がUser OS101,102,103毎に管理している仮想的にマッピングされたPCIカードメモリ空間(MMIO)であるV−MMIO107,108,109の値を見せかける。
仮想的なPCIカードメモリ空間(MMIO)であるV−MMIO107,108,109のマッピングと同様にLPAR制御プログラムがIO空間ベースアドレスレジスタ405へのライト動作をトラップする事により仮想的なPCIカードIO空間(IOMIO)を各OSにマッピングする事も可能である。図1は、仮想的なPCIカードメモリ空間(MMIO)であるV−MMIO107,108,109の例のみを示す。
図6は、LPAR制御プログラム620(図1のLPAR制御プログラム100に対応)の制御下で2つのUser OS600(図1のUser OS101に対応),610(図1のUser OS102に対応)が動作しており、それぞれのUser OS上でPCIカードドライバ605,615が独立して動作している。また、User OS600,610はそれぞれ独立したメモリ空間であるMEM601,611を含み、それぞれのMEM601,611は仮想的にマッピングされたPCIカードメモリ空間であるV−MMIO602,612を含む。仮想的にマッピングされたPCIカードメモリ空間であるV−MMIO602,612には、LPAR制御プログラムが動作していない構成の場合と同様に、PCIカード630(図2のPCIカード212,213に対応)内のCMD−REG632をアクセスする為のフィールドであるV−CMD603,613と、ST−REG634をアクセスする為のフィールドであるV−ST604,614を含む。
ここで、CMD503とV−CMD603,613、ST504とV−ST604,614は共通フォーマットであるが、CMD−REG632のフォーマットはCMD−REG512とは異なり、ST−REG634のフォーマットはST−REG513とは異なる。CMD−REG632のフォーマットを図9に示し、ST−REG634のフォーマットを図10に示す。図9は、CMD−REG512では未使用の領域であったReserve702の一部を、CMD−REG632ではID−CMD(LPAR識別番号フィールド)902に割当てている事を示す(900はコマンドフィールド、901はパラメータフィールド、903はリザーブフィールド)。同様に、図10は、ST−REG513では未使用の領域であったReserve802の一部を、ST−REG634ではID−ST(LPAR識別番号フィールド)1002に割当てている事を示す(1000は要因フィールド、1001はステータスフィールド、1003はリザーブフィールド)。ID−CMD902、ID−ST1002については後述する。
図11及び図12は、図6で示す構成においてPCIカードドライバ605,615がPCIカード630に動作指示を送り、その終了報告を得るまでの本発明を適用した一実施の形態を示すフローチャートである。
図11及び図12を用いて、LPAR制御プログラムが動作している構成(1つの計算機システム上で複数のOSが動作している構成)でのPCIカードメモリ空間(MMIO)302を経由したPCIカード制御の流れについて説明する。
図11において、S1100では、User OS#1上で動作するPCIカードドライバ605はV−CMD603に動作指示コードのライト可否を判定する為にV−CMD603をリードする。V−CMD603がクリアされていれば(Yes)、S1101へ進む。
S1101では、PCIカードドライバ605はV−CMD603に動作指示コードをライトする。次の新たな動作指示コードをライトする為には再びS1100へ進み、V−CMD603がクリアされている事を確認する。次の動作指示がなければPCIカードからの終了報告を待つ。
S1102では、LPAR制御プログラム620がV−CMD603へのライトをトラップし、S1103へ進む。
S1103では、LPAR制御プログラム620はトラップした動作指示コードを動作指示コード管理テーブル621にキューイングする。
図13は、動作指示コード管理テーブル621のフォーマットを示す。該テーブルの各エントリは図9で示すCMD−REG(LPAR制御プログラムが動作している構成)と同じフォーマットを持つFIFO構造のテーブルである(1200はコマンドフィールド、1201はパラメータフィールド、1202はLPAR識別番号フィールド、1203はリザーブフィールド)。
すなわち、前記S1103では、LPAR制御プログラム620はトラップした動作指示コードにどのOSからの動作指示コードであるかを示すLPAR番号識別子(ID)を付加して、該テーブルの最後尾にキューイングする。更なるV−CMD603,613へのライトがあれば、S1102からの処理を繰り返し実行する。
S1104では、LPAR制御プログラム620が動作指示コード管理テーブル621中にS1105からS1107の処理を実施していないエントリが存在すると判断し、動作指示コード管理テーブル621の先頭からデキューし、S1105へ進む。
S1105では、LAPR制御プログラム620はCMD−REG632への動作指示コードのライト可否を判定する為にCMD−REG632をリードする。CMD−REG632がクリアされていれば(Yes)、S1106へ進む。
S1106では、新たな動作指示コードをV−CMD603にライト可能である事をPCIカードドライバ605に示す為にV−CMD603をクリアし、S1107へ進む。
S1107では、LPAR制御プログラム620は、S1104にて動作指示コード管理テーブル621からデキューしたエントリのデータをPCIカード630内の制御レジスタであるCMD−REG632にライトする。更に動作指示コード管理テーブル621内に未処理のエントリがあれば、S1104からの処理を繰り返し実行する。
S1108では、LPAR制御プログラム620によるCMD−REG632へのライトを契機としてPCIカード630の制御を行うPCIカードファームウェア640に動作指示コードと前記IDが報告され、図12のS1109へ進む。
図12において、S1109では、PCIカードファームウェア640はTASK−LIST641に動作指示コードと前記IDをキューイングし、S1110へ進む。
S1110では、LPAR制御プログラム620に次の動作指示をCMD−REG632にライト可能である事を示す為にCMD−REG632をクリアし、S1111へ進む。
S1111では、PCIカードファームウェア640はTASK−LIST641内の動作指示コードに従った処理の実行を開始する。LPAR制御プログラム620から新たなCMD−REG632へライトが実行されると、S1108からS1111の処理が実行される。PCIカードファームウェア640はTASK−LIST641内の複数の動作指示コードを平行して実行する事が可能である。完了する順番は動作指示コードを受付けた順番とは異なる可能性もある。動作指示に従った処理が完了した動作指示コードからS1112へ進む。
S1112では、動作指示に従う処理が完了し、S1113へ進む。
S1113では、完了した動作指示コードから順番にTASK−LIST641からデキューし、実行結果コードと動作指示コードと共に受取った前記IDをPCIカード630内の制御レジスタであるST−REG634に書込む。該書込みにより、PCIバス上に割込みが発生する。
S1114では、LPAR制御プログラム620は該割込みをトラップし、S1115へ進む。
S1115では、PCIカード630内の制御レジスタであるST−REG634をリードする。ST−REG634中のID−ST1002からリードした前記IDからUser OS#1を特定し、User OS#1の仮想的にマッピングされたPCIカードメモリ空間であるV−MMIO602中のV−ST604にPCIカード内の制御レジスタであるST−REG634からリードした値からID−ST1002をクリアし、実行結果コードを設定すると共にUser OS#1に割込みを発生させる。
S1116では、User OF#1において割込みが発生し、S1117へ進む。
S1117では、該割込みを契機にして、PCIカードドライバ605はV−ST604をリードし、PCIカード内の制御レジスタであるST−REG634からリードした実行結果コードをリードし、動作指示は完了する。
該User OS#1(600)が実行するPCIカード630の前記制御動作によって、User OS#2(610)の仮想的なPCIカードメモリ空間であるV−MMIO612に変化はない。
以上により、OS上で動作するPCIカードドライバの修正を行う事なく、PCIカードファームウェアに少ない修正を加えるだけで、複数OSから同時にPCIカードを共有可能である。
更に、PCIカード630の中にはキュー構造のCMD−REG632を持つPCIカードもある。該PCIカードの制御ではCMD−REG632のライト可否判定を行う必要がないため、PCIカードファームウェア640への動作指示は簡単なフローとなる。
図14は、図11のS1100からS1107のフローを、キュー構造のCMD−REG632を持つPCIカードの場合に置き換えた例を示すフローチャートであり、S1108以降のフローは図11及び図12と同様である。
S1300にて、PCIカードドライバ605,615はV−CMD603,613のライト可否を確認する事なく、V−CMD603,613に動作指示コードをライトする。
S1301にて、LPAR制御プログラム620はPCIカードドライバ605,615が実行したV−CMD603,613へのライトをトラップする。
S1302にて、LPAR番号識別子を付加してCMD−REG632にライトする。
それ以降のフローは図11のS1108と同様である。
以上により、キュー構造のCMD−REG632を持つPCIカード630に対してはより簡単な実装で複数のOSから同時にPCIカードを共有可能である。
また、PCIカード630が検出した非同期事象についても、PCIカードファームウェア640がST−REG634に非同期事象コードとLPAR識別子(ID)を設定する事により、実行結果コードを報告する場合と同様の流れにより、ID−ST1002で指定したLPAR上で動作するUser OSにST−REG634に設定した非同期事象を報告する事が可能である。
以上のように、本実施の形態によれば、複数のOSから同時にデバイスの共有が可能であるため、物理的に搭載できるデバイス数に制限のある計算機システムにおいて、デバイスを共有する事により、各OSに論理的に多くのデバイスを接続可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、業界標準規格のバスを搭載するオープン系サーバにおいて、制御レジスタがメモリ空間及びIO空間にマッピングされる1つの物理的なデバイスに対する複数のOSからの処理を同時に実行する計算機システムに利用可能である。
100…LPAR制御プログラム、101,102,103…ユーザOS(User OS)、104,105,106…ユーザLPAR(User LPAR)、107,108,109…各ユーザOSのメモリ空間に仮想的にマッピングされたPCIカードメモリ空間(V−MMIO)、110…メモリ空間に物理的にマッピングされたPCIカードメモリ空間(P−MMIO)、111…物理(共有)デバイス、
200…計算機システム、201,202…CPU、203…フロントサイドバス、204…ノースブリッジ、205…メモリバス、206…主記憶(MS)、207…ノースブリッジとサウスブリッジを接続するバス、208…サウスブリッジ、209…PCIバス、210,211…PCIスロット、212…ホストバスアダプタ(HBA)、213…ネットワークインタフェースカード(NIC)、214…外部ストレージ、215…LAN、
300…メモリ空間(MEM)、301…IO空間(IO)、302…PCIカードメモリ空間(MMIO)、303…PCIカードIO空間(IOMIO)、
400…PCIカード、401…PCIコンフィギュレーションレジスタ、402…PCIカードメモリ空間レジスタ、403…PCIカードIO空間レジスタ、404…メモリ空間ベースアドレスレジスタ、405…IO空間ベースアドレスレジスタ、
500…ユーザOS(User OS)、501…メモリ空間(MEM)、502…PCIカードメモリ空間(MMIO)、503…CMD−REGが物理的にメモリ空間にマップされたフィールド(CMD)、504…ST−REGが物理的にメモリ空間にマップされたフィールド(ST)、510…PCIカード、511…PCIカードファームウェア、512…コマンドコードが設定されるPCIカード内の制御レジスタ(CMD−REG)、513…実行結果コードが設定されるPCIカード内の制御レジスタ(ST−REG)、514…PCIカード内の制御レジスタ群、515…PCIカード制御部がOS上の制御プログラムから受取った動作指示コードの管理テーブル(TASK−LIST)、520…PCIカードドライバ、
600,610…LPAR制御プログラムの制御下で動作するユーザOS(User OS)、601,611…ユーザOS管理のメモリ空間(MEM)、602,612…メモリ空間に仮想的にマッピングされたPCIカードメモリ空間(V−MMIO)、603,613…CMD−REGが仮想的にメモリ空間にマップされたフィールド(V−CMD)、604,614…ST−REGが仮想的にメモリ空間にマップされたフィールド(V−ST)、605,615…PCIカードドライバ、620…LPAR制御プログラム、621…動作指示コード管理テーブル、630…PCIカード、632…コマンドコードが設定されるPCIカード内の制御レジスタ(CMD−REG)、634…実行結果コードが設定されるPCIカード内の制御レジスタ(ST−REG)、640…PCIカードファームウェア、641…PCIカード制御部がOS上の制御プログラムから受取った動作指示コードの管理テーブル(TASK−LIST)、
700…コマンドフィールド(Command)、701…パラメータフィールド(Parameter)、702…リザーブフィールド(Reserve)、
800…要因フィールド(Factor Code)、801…ステータスフィールド(Status)、802…リザーブフィールド(Reserve)、
900…コマンドフィールド(Command)、901…パラメータフィールド(Parameter)、902…LPAR識別番号フィールド(ID−CMD)、903…リザーブフィールド(Reserve)、
1000…要因フィールド(Factor Code)、1001…ステータスフィールド(Status)、1002…LPAR識別番号フィールド(ID−ST)、1003…リザーブフィールド(Reserve)、
1200…コマンドフィールド(Command)、1201…パラメータフィールド(Parameter)、1202…LPAR識別番号フィールド(ID−CMD)、1203…リザーブフィールド(Reserve)。
200…計算機システム、201,202…CPU、203…フロントサイドバス、204…ノースブリッジ、205…メモリバス、206…主記憶(MS)、207…ノースブリッジとサウスブリッジを接続するバス、208…サウスブリッジ、209…PCIバス、210,211…PCIスロット、212…ホストバスアダプタ(HBA)、213…ネットワークインタフェースカード(NIC)、214…外部ストレージ、215…LAN、
300…メモリ空間(MEM)、301…IO空間(IO)、302…PCIカードメモリ空間(MMIO)、303…PCIカードIO空間(IOMIO)、
400…PCIカード、401…PCIコンフィギュレーションレジスタ、402…PCIカードメモリ空間レジスタ、403…PCIカードIO空間レジスタ、404…メモリ空間ベースアドレスレジスタ、405…IO空間ベースアドレスレジスタ、
500…ユーザOS(User OS)、501…メモリ空間(MEM)、502…PCIカードメモリ空間(MMIO)、503…CMD−REGが物理的にメモリ空間にマップされたフィールド(CMD)、504…ST−REGが物理的にメモリ空間にマップされたフィールド(ST)、510…PCIカード、511…PCIカードファームウェア、512…コマンドコードが設定されるPCIカード内の制御レジスタ(CMD−REG)、513…実行結果コードが設定されるPCIカード内の制御レジスタ(ST−REG)、514…PCIカード内の制御レジスタ群、515…PCIカード制御部がOS上の制御プログラムから受取った動作指示コードの管理テーブル(TASK−LIST)、520…PCIカードドライバ、
600,610…LPAR制御プログラムの制御下で動作するユーザOS(User OS)、601,611…ユーザOS管理のメモリ空間(MEM)、602,612…メモリ空間に仮想的にマッピングされたPCIカードメモリ空間(V−MMIO)、603,613…CMD−REGが仮想的にメモリ空間にマップされたフィールド(V−CMD)、604,614…ST−REGが仮想的にメモリ空間にマップされたフィールド(V−ST)、605,615…PCIカードドライバ、620…LPAR制御プログラム、621…動作指示コード管理テーブル、630…PCIカード、632…コマンドコードが設定されるPCIカード内の制御レジスタ(CMD−REG)、634…実行結果コードが設定されるPCIカード内の制御レジスタ(ST−REG)、640…PCIカードファームウェア、641…PCIカード制御部がOS上の制御プログラムから受取った動作指示コードの管理テーブル(TASK−LIST)、
700…コマンドフィールド(Command)、701…パラメータフィールド(Parameter)、702…リザーブフィールド(Reserve)、
800…要因フィールド(Factor Code)、801…ステータスフィールド(Status)、802…リザーブフィールド(Reserve)、
900…コマンドフィールド(Command)、901…パラメータフィールド(Parameter)、902…LPAR識別番号フィールド(ID−CMD)、903…リザーブフィールド(Reserve)、
1000…要因フィールド(Factor Code)、1001…ステータスフィールド(Status)、1002…LPAR識別番号フィールド(ID−ST)、1003…リザーブフィールド(Reserve)、
1200…コマンドフィールド(Command)、1201…パラメータフィールド(Parameter)、1202…LPAR識別番号フィールド(ID−CMD)、1203…リザーブフィールド(Reserve)。
Claims (7)
- デバイスの制御レジスタがメモリ空間及びIO空間にマッピングされ、オペレーティングシステムからはマッピングされたメモリ空間及びIO空間へのアクセスによりデバイスを制御する事が可能であり、LPAR制御プログラムが1台の計算機システムを複数の論理的パーティションに分割し、各論理的パーティション上でオペレーティングシステムが動作し、1台の計算機システム上で複数のオペレーティングシステムが同時に動作する事が可能な計算機システムであって、
前記LPAR制御プログラムは、1つの物理的なデバイスのメモリ空間及びIO空間を各オペレーティングシステムに対して仮想的にマッピングする機能を有する事を特徴とする計算機システム。 - 請求項1記載の計算機システムにおいて、
前記LPAR制御プログラムは、前記各論理的パーティションに対して論理的パーティションを特定するためのLPAR識別子を割当てる機能を有する事を特徴とする計算機システム。 - 請求項2記載の計算機システムにおいて、
前記各オペレーティングシステムにマッピングした仮想的なメモリ空間及びIO空間は、前記各オペレーティングシステムからのアクセスやデバイスの動作により独立した情報を持つ事を特徴とする計算機システム。 - 請求項3記載の計算機システムにおいて、
前記LPAR制御プログラムは、前記各オペレーティングシステムにマッピングした仮想的なメモリ空間及びIO空間に対する各オペレーティングシステムからのアクセスをトラップし、前記LPAR識別子を付加して物理的なメモリ空間及びIO空間をアクセスし、前記仮想的なメモリ空間及びIO空間へのアクセス結果を前記仮想的なメモリ空間及びIO空間に各オペレーティングシステム個別で反映させる機能を有する事を特徴とする計算機システム。 - 請求項4記載の計算機システムにおいて、
前記デバイスは、前記物理的なメモリ空間及びIO空間へのアクセスによる動作指示を受付け、前記LPAR識別子と前記動作指示の内容を受取り、前記動作指示の内容を処理後、前記LPAR識別子を付加して前記物理的なメモリ空間及びIO空間に動作指示に対する終了報告を行う機能を有する事を特徴とする計算機システム。 - 請求項5記載の計算機システムにおいて、
前記LPAR制御プログラムは、前記物理的なメモリ空間及びIO空間に報告された前記LPAR識別子と前記終了報告を受付け、前記LPAR識別子に基づいて論理的パーティションを特定し、この特定した論理的パーティション上で動作するオペレーティングシステムの前記仮想的なメモリ空間及びIO空間に終了報告を反映させる機能を有する事を特徴とする計算機システム。 - 請求項3記載の計算機システムにおいて、
前記デバイスは、前記LPAR識別子と非同期事象情報を前記物理的なメモリ空間及びIO空間に設定する機能を有し、
前記LPAR制御プログラムは、前記LPAR識別子に基づいて論理的パーティションを特定し、この特定した論理的パーティション上で動作するオペレーティングシステムの前記仮想的なメモリ空間及びIO空間に前記非同期事象情報を反映させる機能を有する事を特徴とする計算機システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006345181A JP2008158710A (ja) | 2006-12-22 | 2006-12-22 | 計算機システム |
US11/958,803 US20080155222A1 (en) | 2006-12-22 | 2007-12-18 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006345181A JP2008158710A (ja) | 2006-12-22 | 2006-12-22 | 計算機システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008158710A true JP2008158710A (ja) | 2008-07-10 |
Family
ID=39544608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006345181A Pending JP2008158710A (ja) | 2006-12-22 | 2006-12-22 | 計算機システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080155222A1 (ja) |
JP (1) | JP2008158710A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013080848A1 (ja) * | 2011-11-28 | 2013-06-06 | Suginaka Junko | ファイル通信処理方法及び外部デバイス |
WO2013125012A1 (ja) * | 2012-02-23 | 2013-08-29 | 三菱電機株式会社 | 計算機、アクセス管理方法およびアクセス管理プログラム |
JP2016040651A (ja) * | 2014-08-12 | 2016-03-24 | 富士通株式会社 | 情報処理装置、試験方法および試験制御プログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4429331B2 (ja) * | 2007-03-08 | 2010-03-10 | エヌイーシーコンピュータテクノ株式会社 | Pciデバイスのホットプラグにおけるモード設定方法及びpciバスを有するシステム |
JP5847013B2 (ja) * | 2012-05-10 | 2016-01-20 | 株式会社日立製作所 | 計算機及び計算機における入出力制御方法 |
US10963314B2 (en) * | 2019-07-31 | 2021-03-30 | Servicenow, Inc. | Discovery and mapping of a platform-as-a-service environment |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
US6996828B1 (en) * | 1997-09-12 | 2006-02-07 | Hitachi, Ltd. | Multi-OS configuration method |
JP2005122640A (ja) * | 2003-10-20 | 2005-05-12 | Hitachi Ltd | サーバシステム及びi/oスロット共有方法。 |
JP2005309553A (ja) * | 2004-04-19 | 2005-11-04 | Hitachi Ltd | 計算機 |
JP4788124B2 (ja) * | 2004-09-16 | 2011-10-05 | 株式会社日立製作所 | データ処理システム |
US7398337B2 (en) * | 2005-02-25 | 2008-07-08 | International Business Machines Corporation | Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization |
US7543084B2 (en) * | 2005-02-25 | 2009-06-02 | International Business Machines Corporation | Method for destroying virtual resources in a logically partitioned data processing system |
-
2006
- 2006-12-22 JP JP2006345181A patent/JP2008158710A/ja active Pending
-
2007
- 2007-12-18 US US11/958,803 patent/US20080155222A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013080848A1 (ja) * | 2011-11-28 | 2013-06-06 | Suginaka Junko | ファイル通信処理方法及び外部デバイス |
WO2013125012A1 (ja) * | 2012-02-23 | 2013-08-29 | 三菱電機株式会社 | 計算機、アクセス管理方法およびアクセス管理プログラム |
JPWO2013125012A1 (ja) * | 2012-02-23 | 2015-05-21 | 三菱電機株式会社 | 計算機、アクセス管理方法およびアクセス管理プログラム |
US9558364B2 (en) | 2012-02-23 | 2017-01-31 | Mitsubishi Electric Corporation | Computing machine, access management method, and access management program |
JP2016040651A (ja) * | 2014-08-12 | 2016-03-24 | 富士通株式会社 | 情報処理装置、試験方法および試験制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20080155222A1 (en) | 2008-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3798835B1 (en) | Method, device, and system for implementing hardware acceleration processing | |
US7036122B2 (en) | Device virtualization and assignment of interconnect devices | |
CN106796529B (zh) | 通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法 | |
US20030188122A1 (en) | Mapping of interconnect configuration space | |
CN112765059A (zh) | 一种基于fpga的dma设备及dma数据搬移方法 | |
EP3992790B1 (en) | Information processing method, physical machine and pcie device | |
KR20180010953A (ko) | 비휘발성 메모리 익스프레스(NVMe) 장치의 커맨드의 실행 조정을 위한 시스템 및 방법 | |
EP2711845B1 (en) | PCI express switch with logical device capability | |
KR102568906B1 (ko) | PCIe 디바이스 및 그 동작 방법 | |
EP2423826A2 (en) | Computer system, i/o device control method, and i/o drawer | |
KR102570943B1 (ko) | PCIe 디바이스 및 그 동작 방법 | |
JP2008158710A (ja) | 計算機システム | |
US11314673B2 (en) | Configurable multi-function PCIe endpoint controller in an SoC | |
CN115185880B (zh) | 一种数据存储方法及装置 | |
CN101751352A (zh) | 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持 | |
TW202240414A (zh) | PCIe功能及其操作方法 | |
CN108958903B (zh) | 嵌入式多核中央处理器任务调度方法与装置 | |
US8527745B2 (en) | Input/output device including a host interface for processing function level reset requests and updating a timer value corresponding to a time until application hardware registers associated with the function level reset requests are available | |
WO2007039933A1 (ja) | 演算処理装置 | |
CN108958904B (zh) | 嵌入式多核中央处理器的轻量级操作***的驱动程序框架 | |
CN108958905B (zh) | 嵌入式多核中央处理器的轻量级操作*** | |
JP2011138401A (ja) | プロセッサシステム、プロセッサシステムの制御方法、及び制御回路 | |
JP3661478B2 (ja) | 割り込み処理装置および割り込み通知方法 | |
JP7413183B2 (ja) | コントロールシステム | |
CN114281726B (zh) | 用于soc芯片的***架构及外设通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080604 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081224 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090507 |