JP2011204077A - 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム - Google Patents
情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム Download PDFInfo
- Publication number
- JP2011204077A JP2011204077A JP2010071638A JP2010071638A JP2011204077A JP 2011204077 A JP2011204077 A JP 2011204077A JP 2010071638 A JP2010071638 A JP 2010071638A JP 2010071638 A JP2010071638 A JP 2010071638A JP 2011204077 A JP2011204077 A JP 2011204077A
- Authority
- JP
- Japan
- Prior art keywords
- pci
- devices
- address
- bus
- unit
- 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
Abstract
【課題】リソース消費を抑制しながらデバイスの冗長構成を実現する。
【解決手段】情報処理装置201は、自己に設定されたアドレスを宛先とするデータを第1のバスB1経由でPCIデバイスd11〜d1nへ出力するためのPCI−PCIブリッジ2と、自己に設定されたアドレスを宛先とするデータを第2のバスB2経由でPCIデバイスd21〜d2nへ出力するためのPCI−PCIブリッジ3と、演算処理部101がアクセス可能なアドレス空間における一部または全部のアドレスをPCIデバイスd11〜d1nに割り当て、かつ割り当てたアドレスと同じアドレスをPCIデバイスd21〜d2nに割り当てるためのリソース割り当て部6とを備え、リソース割り当て部6は、割り当てたアドレスをPCI−PCIブリッジ2に設定し、割り当てたアドレスをPCI−PCIブリッジ3には設定しない。
【選択図】図2
【解決手段】情報処理装置201は、自己に設定されたアドレスを宛先とするデータを第1のバスB1経由でPCIデバイスd11〜d1nへ出力するためのPCI−PCIブリッジ2と、自己に設定されたアドレスを宛先とするデータを第2のバスB2経由でPCIデバイスd21〜d2nへ出力するためのPCI−PCIブリッジ3と、演算処理部101がアクセス可能なアドレス空間における一部または全部のアドレスをPCIデバイスd11〜d1nに割り当て、かつ割り当てたアドレスと同じアドレスをPCIデバイスd21〜d2nに割り当てるためのリソース割り当て部6とを備え、リソース割り当て部6は、割り当てたアドレスをPCI−PCIブリッジ2に設定し、割り当てたアドレスをPCI−PCIブリッジ3には設定しない。
【選択図】図2
Description
本発明は、情報処理装置、リソース割り当て方法、およびリソース割り当てプログラムに関し、特に、冗長化されたデバイスが実装される情報処理装置、ならびにこの情報処理装置におけるリソース割り当て方法およびリソース割り当てプログラムに関する。
PCI(Peripheral Component Interconnect)バスを備えたコンピュータシステムにおけるリソース割り当て方法の一例として、たとえば、特許文献1(特開2002−288104号公報)には、以下のような技術が開示されている。すなわち、リソースを周辺デバイスに割り当てて動作するコンピュータシステムであって、現在搭載している上記周辺デバイスから、それらの動作に必要なリソースの容量を取得する処理と、将来搭載するであろう周辺デバイスの動作に必要なリソースの容量を、ユーザの入力により取得する処理と、現在搭載している上記周辺デバイスの動作に必要なリソースの上記容量と、将来搭載するであろう上記周辺デバイスの動作に必要なリソースの上記容量とを含めて、周辺デバイス用のリソースを割り当てる処理とを有するファームウェアを記憶したメモリと、システム運転中に、新たな周辺デバイスが追加されると、将来搭載するであろう上記周辺デバイスのために割り当てておいたリソースを、新たに追加された上記周辺デバイスに割り当てる処理を有するソフトウェアを記憶した記憶装置と、起動時に上記メモリから上記ファームウェアを取り出して実行し、運用中に新たな周辺デバイスが追加されると、上記ソフトウェアを実行するCPUとを備える。
また、特許文献2(特開2008−071042号公報)には、以下のような技術が開示されている。すなわち、周辺デバイスを接続することのできるコンピュータシステムであって、周辺デバイス毎にデバイスドライバがI/O空間リソースを必要とするか否かを記述したI/Oリソースファイルを格納した不揮発性メモリと、起動時に該不揮発性メモリから該I/Oリソースファイルを読み出してメインメモリに展開するシステム管理コントローラと、上記システム管理コントローラによって上記メインメモリに展開された上記I/Oリソースファイルを参照することによって上記周辺デバイスのデバイスドライバがI/O空間リソースを必要とするか否かを調べ、I/O空間リソースが必要な周辺デバイスに対してだけI/O空間リソースを割り当てるプロセッサとを備える。
また、特許文献3(特開平10−161965号公報)には、以下のような技術が開示されている。すなわち、PCIデバイスが動作するために必要とするアドレス容量を検出し、このアドレス容量に基づいてベースアドレス・マスク方式により上記PCIデバイスのアドレスをI/Oアドレス空間に割り当てるコンピュータのアドレス割り当て装置であって、PCIブリッジ回路毎にPCIバスを介して接続されているPCIデバイスのアドレス容量を検出するデバイス検出手段と、このデバイス検出手段により検出したPCIデバイスのアドレス容量をPCIブリッジ回路毎に合計するアドレス容量算出手段と、このアドレス容量算出手段により算出した上記PCIデバイスのアドレス容量情報に基づき上記PCIデバイスのアドレスを上記I/Oアドレス空間に割り当てるデバイス割り当て手段とを備える。
コンピュータシステムにおける個々のPCIデバイスには、当該PCIデバイスにアクセスするための一意的なI/Oリソースが、オペレーティングシステムまたはBIOS(Basic Input Output System)により割り振られている。また、信頼性が重視されるコンピュータシステムにおいては、交換可能な、冗長化されたPCIデバイスが実装されている場合がある。
従来、この冗長化されたPCIデバイスに対して、BIOSが一意的なI/Oリソースを割り当てていた。一方、I/Oリソースは有限である。特に、x86アーキテクチャには64KB(キロバイト)しかI/O空間が無い。このため、I/Oリソースを大量に消費する大規模構成のPCIデバイスを備えたシステムでは、PCIデバイスの冗長構成を採用することは困難であった。
しかしながら、特許文献1〜特許文献3には、このような問題点を解決するための構成は開示されていない。
この発明は、上述の課題を解決するためになされたもので、その目的は、リソース消費を抑制しながらデバイスの冗長構成を実現することが可能な情報処理装置、リソース割り当て方法、およびリソース割り当てプログラムを提供することである。
上記課題を解決するために、この発明のある局面に係わる情報処理装置は、演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、上記演算処理部に接続された第3のバスと、上記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第1のバス経由で上記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、上記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第2のバス経由で上記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備え、上記演算処理部は、上記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを上記1または複数の第1のデバイスに割り当て、かつ上記割り当てたアドレスと同じアドレスを上記1または複数の第2のデバイスに割り当てるためのリソース割り当て部を含み、上記リソース割り当て部は、上記割り当てたアドレスを上記第1のブリッジ部に設定し、上記割り当てたアドレスを上記第2のブリッジ部には設定しない。
上記課題を解決するために、この発明のある局面に係わるリソース割り当て方法は、演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、上記演算処理部に接続された第3のバスと、上記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第1のバス経由で上記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、上記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第2のバス経由で上記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、上記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを上記1または複数の第1のデバイスに割り当てるステップと、上記割り当てたアドレスと同じアドレスを上記1または複数の第2のデバイスに割り当てるステップと、上記割り当てたアドレスを上記第1のブリッジ部に設定し、上記割り当てたアドレスを上記第2のブリッジ部には設定しないステップとを含む。
上記課題を解決するために、この発明のある局面に係わるリソース割り当てプログラムは、演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、上記演算処理部に接続された第3のバスと、上記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第1のバス経由で上記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、上記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第2のバス経由で上記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、上記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを上記1または複数の第1のデバイスに割り当てるステップと、上記割り当てたアドレスと同じアドレスを上記1または複数の第2のデバイスに割り当てるステップと、上記割り当てたアドレスを上記第1のブリッジ部に設定し、上記割り当てたアドレスを上記第2のブリッジ部には設定しないステップとを実行させる。
本発明によれば、リソース消費を抑制しながらデバイスの冗長構成を実現することができる。
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
[概要]
従来のコンピュータシステムでは、冗長化されたPCIデバイスのI/OリソースをBIOSのみの判断で割り当てていた。これは、オペレーティングシステムに依存せずにI/Oリソース配分を行なう点で意味があったが、上述の課題が存在する。
従来のコンピュータシステムでは、冗長化されたPCIデバイスのI/OリソースをBIOSのみの判断で割り当てていた。これは、オペレーティングシステムに依存せずにI/Oリソース配分を行なう点で意味があったが、上述の課題が存在する。
そこで、本発明の実施の形態に係る情報処理装置(コンピュータシステム)では、たとえばBIOSおよびオペレーティングシステムが連携してI/Oリソースを確保し、PCIデバイスの冗長性を保ちつつ、確保する必要のあるリソースの量を削減する。
PCIデバイスは電気的にツリー状の構成をとることができ、分岐点にはPCI−PCIブリッジというデバイスが存在する。また、個々のPCIデバイスにはそれぞれI/Oリソースを割り当てることができる。PCI−PCIブリッジは、配下の処理すべきPCIデバイスに対応するI/Oリソースの範囲を保持している。
ここで、コンピュータシステムにおいて並列する2つ以上のPCI−PCIブリッジの配下を通常系と冗長系に分ける。PCI−PCIブリッジの各々の配下には、同様の、すなわち物理的には異なるが同じ種類のPCIデバイスを実装する。
まず、本発明の実施の形態に係る情報処理装置におけるI/Oリソース配分方法を説明する。
システム起動時、BIOSは、通常系のPCI−PCIブリッジ配下のPCIデバイスおよび冗長系のPCI−PCIブリッジ配下のPCIデバイスに対してそれぞれ同一のI/Oリソースを割り当てる。そして、BIOSは、冗長系PCI−PCIブリッジにはその配下に制御すべきリソースが存在しない状態にする。
通常のコンピュータシステムでは、異なるデバイスに対して同一のI/Oリソースを割り当てることはできない。しかしながら、冗長系PCI−PCIブリッジにはその配下に制御すべきリソースが存在しない状態にすることで、重複して割り当てられたI/Oリソースを矛盾無く隠蔽することができる。
この状態で、BIOSによる処理からオペレーティングシステムによる処理に移行すると、オペレーティングシステムは、通常系PCI−PCIブリッジ配下のPCIデバイスのみに正常にI/Oリソースが割り振られていると判断することができる。そうすると、オペレーティングシステムは、通常系PCI−PCIブリッジ配下のPCIデバイスのみについて初期化を実施し、冗長系PCI−PCIブリッジ配下のPCIデバイスの初期化は実施しない。
次に、本発明の実施の形態に係る情報処理装置において、システム運用中にオペレーティングシステムが通常系PCI−PCIブリッジ配下のPCIデバイスに関する異常を検出し、通常系PCIデバイスから冗長系PCIデバイスへの切り替えを行なう際の処理を説明する。
オペレーティングシステムは、異常が検出されたPCIデバイスを閉塞し、さらに、その上位にある通常系PCI−PCIブリッジを閉塞する。ここで、オペレーティングシステムは、通常系PCI−PCIブリッジが処理すべきI/Oリソースの範囲を取得して保持する。
次に、オペレーティングシステムは、複数の冗長系PCI−PCIブリッジのうちの一つを選択し、保持したI/Oリソース範囲を、選択した冗長系PCI−PCIブリッジに設定する。そして、オペレーティングシステムは、PCIホットプラグ機能により、システム運用中において、選択した冗長系PCI−PCIブリッジ配下のPCIデバイスを初期化する。
ここで、選択した冗長系PCI−PCIブリッジ配下のPCIデバイスには、前述のシステム起動時におけるI/Oリソース配分方法により、通常系PCI−PCIブリッジ配下のPCIデバイスと同様のI/Oリソースがすでに割り当てられている。このため、オペレーティングシステムは、選択した冗長系PCI−PCIブリッジ配下のPCIデバイスを矛盾無く初期化することができ、これらのPCIデバイスが動作可能となる。
[構成および基本動作]
本発明の実施の形態に係る情報処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク(Flexible Disk)およびCD−ROM(Compact Disk Read Only Memory)などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
本発明の実施の形態に係る情報処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク(Flexible Disk)およびCD−ROM(Compact Disk Read Only Memory)などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
本発明の実施の形態に係るプログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
なお、代替的に、プログラムの実行により提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
図1は、本発明の実施の形態に係る情報処理装置の概略構成図である。図1を参照して、情報処理装置201は、演算処理部であるCPU(Central Processing Unit)101と、メインメモリ102と、ハードディスク103と、入力インターフェイス104と、表示コントローラ105と、データリーダ/ライタ106と、通信インターフェイス107とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。バス121は、後述するホストバスおよび/またはPCIバスに対応する。
CPU101は、ハードディスク103に格納されたプログラム(コード)をメインメモリ102に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ102は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク103から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク103は不揮発性の磁気記憶装置であり、CPU101で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク103にインストールされるプログラムは、後述するように、記録媒体111に格納された状態で流通する。なお、ハードディスク103に加えて、あるいはハードディスク103に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
入力インターフェイス104は、CPU101とキーボード108、マウス109および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス104は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受付ける。
表示コントローラ105は、表示部の典型例であるディスプレイ110と接続され、ディスプレイ110での表示を制御する。すなわち、表示コントローラ105は、CPU101による画像処理の結果などをユーザに対して表示する。ディスプレイ110は、たとえばLCD(Liquid Crystal Display)またはCRT(Cathode Ray Tube)である。
データリーダ/ライタ106は、CPU101と記録媒体111の間のデータ伝送を仲介する。すなわち、記録媒体111は、情報処理装置201で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ106は、この記録媒体111からプログラムを読み出す。また、データリーダ/ライタ106は、CPU101の内部指令に応答して、情報処理装置201における処理結果などを記録媒体111へ書き込む。なお、記録媒体111は、たとえば、CF(Compact Flash)およびSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体である。
通信インターフェイス107は、CPU101と他のパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インターフェイス107は、典型的には、イーサネット(登録商標)またはUSB(Universal Serial Bus)の通信機能を有する。なお、記録媒体111に格納されたプログラムを情報処理装置201にインストールする形態に代えて、通信インターフェイス107を介して配信サーバなどからダウンロードしたプログラムを情報処理装置201にインストールしてもよい。
また、情報処理装置201には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
[制御構造]
次に、情報処理装置201におけるリソース割り当て機能を提供するための制御構造について説明する。
次に、情報処理装置201におけるリソース割り当て機能を提供するための制御構造について説明する。
図2は、本発明の実施の形態に係る情報処理装置におけるバス構成および情報処理装置が提供する制御構造を示すブロック図である。
図2は、図1に示すバス121およびその周辺構成を詳細に示している。また、図2に示すCPU101における各ブロックは、ハードディスク103に格納されたプログラム(コード)などをメインメモリ102に展開して、CPU101に実行させることで提供される。なお、図2に示す情報処理装置201の制御構造の一部または全部を専用ハードウェアおよび/または配線回路によって実現してもよい。
図2を参照して、情報処理装置(コンピュータシステム)201は、CPU(演算処理部)101と、PCI−PCIブリッジ(ブリッジ部)2,3と、PCIデバイス群4,5と、ホスト−PCIブリッジ8と、PCIバスB1,B2,B3と、ホストバスBHとを備える。CPU101は、その制御構造として、リソース割り当て部6と、リソース管理制御部7とを含む。リソース割り当て部6は、たとえばCPU101がシステムBIOSのプログラムを実行することにより構成される。リソース管理制御部7は、たとえばCPU101がオペレーティングシステムのプログラムを実行することにより構成される。
CPU101は、図2に示す各部の他に、多くのユニットによって構成されるのが一般的であるが、説明を簡単にするために、本発明に関係しないユニットについては図示していない。
PCIデバイス群4およびPCIデバイス群5として、互いに同じ種類のデバイスが情報処理装置201に実装されている。すなわち、PCIデバイス群4は、PCIデバイスd11〜d1nを含む。PCIデバイス群5は、PCIデバイス群4におけるPCIデバイスd11〜d1nとそれぞれ同じ種類のPCIデバイスd21〜d2nを含む。ここで、nは1以上の整数である。
PCIバスB1は、PCI−PCIブリッジ2とPCIデバイスd11〜d1nとの間に接続される。PCIバスB2は、PCI−PCIブリッジ3とPCIデバイスd21〜d2nとの間に接続される。ホストバスBHは、CPU101とホスト−PCIブリッジ8との間に接続される。
PCIバスB3は、ホスト−PCIブリッジ8と、PCI−PCIブリッジ2およびPCI−PCIブリッジ3との間に接続される。
ホスト−PCIブリッジ8は、CPU101からホストバスBH経由で受けたデータのうち、自己に設定されたアドレスを宛先とするデータをPCIバスB3経由でPCI−PCIブリッジ2およびPCI−PCIブリッジ3へ出力する。
PCI−PCIブリッジ2は、その配下のPCIデバイス群4を制御する。すなわち、PCI−PCIブリッジ2は、ホスト−PCIブリッジ8からPCIバスB3経由で受けたデータのうち、自己に設定されたアドレスを宛先とするデータをPCIバスB1経由でPCIデバイスd11〜d1nへ出力する。
PCI−PCIブリッジ3は、その配下のPCIデバイス群5を制御する。すなわち、PCI−PCIブリッジ3は、ホスト−PCIブリッジ8からPCIバスB3経由で受けたデータのうち、自己に設定されたアドレスを宛先とするデータをPCIバスB2経由でPCIデバイスd21〜d2nへ出力する。
CPU101は、ホストバスBH、ホスト−PCIブリッジ8、PCIバスB3、PCI−PCIブリッジ2およびPCIバスB1を介してPCIデバイス群4におけるPCIデバイスd11〜d1nとデータの送受信を行なう。また、CPU101は、ホストバスBH、ホスト−PCIブリッジ8、PCIバスB3、PCI−PCIブリッジ3およびPCIバスB2を介してPCIデバイス群5におけるPCIデバイスd21〜d2nとデータの送受信を行なう。
PCI−PCIブリッジ2は、処理すべきアドレスを示すI/Oリソース範囲レジスタr1を含む。PCI−PCIブリッジ3は、処理すべきアドレスを示すI/Oリソース範囲レジスタr2を含む。
より詳細には、PCI−PCIブリッジ2および3の各々は、PCIコンフィギュレーション空間を有する。そして、PCI−PCIブリッジ2および3は、このPCIコンフィギュレーション空間の中で、自身が制御すべきI/Oリソース、すなわちMMIO(Memory Mapped Input Output)空間およびI/O空間の範囲を保持するためのI/Oリソース範囲レジスタr1およびr2をそれぞれ含む。
PCI−PCIブリッジ2は、PCIバスB3から受けたデータのうち、I/Oリソース範囲レジスタr1に保存されたアドレスを宛先とするデータをPCIデバイスd11〜d1nへ出力する。
PCI−PCIブリッジ3は、PCIバスB3から受けたデータのうち、I/Oリソース範囲レジスタr2に保存されたアドレスを宛先とするデータをPCIデバイスd21〜d2nへ出力する。
PCIデバイスd11〜d1nは、自己のアドレスを保存するためのI/Oリソース範囲レジスタr11〜r1nをそれぞれ含む。PCIデバイスd21〜d2nは、自己のアドレスを保存するためのI/Oリソース範囲レジスタr21〜r2nをそれぞれ含む。すなわち、PCIデバイスd11〜d1nおよびd21〜d2nもそれぞれがPCIコンフィギュレーション空間を有する。PCIデバイスd11〜d1nおよびd21〜d2nは、このPCIコンフィギュレーション空間の中で自己に割り当てられているI/Oリソースの範囲を保持するためのI/Oリソース範囲レジスタr11〜r1nおよびr21〜r2nをそれぞれ含む。
PCIデバイスd11〜d1nは、PCI−PCIブリッジ2から送信されるデータのうち、I/Oリソース範囲レジスタr11〜r1nにそれぞれ保存された自己のアドレスを宛先とするデータを選択して受け取る。
PCIデバイスd21〜d2nは、PCI−PCIブリッジ3から送信されるデータのうち、I/Oリソース範囲レジスタr21〜r2nにそれぞれ保存された自己のアドレスを宛先とするデータを選択して受け取る。
[動作]
次に、本発明の実施の形態に係る情報処理装置の動作について図面を用いて説明する。本発明の実施の形態では、情報処理装置201を動作させることによって、本発明の実施の形態に係るリソース割り当て方法が実施される。よって、本発明の実施の形態に係るリソース割り当て方法の説明は、以下の情報処理装置201の動作説明に代える。なお、以下の説明においては、適宜図2を参照する。
次に、本発明の実施の形態に係る情報処理装置の動作について図面を用いて説明する。本発明の実施の形態では、情報処理装置201を動作させることによって、本発明の実施の形態に係るリソース割り当て方法が実施される。よって、本発明の実施の形態に係るリソース割り当て方法の説明は、以下の情報処理装置201の動作説明に代える。なお、以下の説明においては、適宜図2を参照する。
図3は、本発明の実施の形態に係る情報処理装置がリソース割り当て処理を行なう際の動作手順を示すフローチャートである。
まず、CPU101によってシステムBIOSが起動される(ステップS2)。
次に、リソース割り当て部6は、通常系のPCIデバイスにI/Oリソースを割り当てる。すなわち、リソース割り当て部6は、CPU101がアクセス可能なアドレス空間における一部または全部のアドレスをPCIデバイスd11〜d1nに割り当てる。より詳細には、リソース割り当て部6は、PCIデバイスd11〜d1nにそれぞれ割り当てたアドレスをI/Oリソース範囲レジスタr11〜r1nにそれぞれ書き込む(ステップS4)。
次に、リソース割り当て部6は、通常系のPCIデバイスにI/Oリソースを割り当てる。すなわち、リソース割り当て部6は、CPU101がアクセス可能なアドレス空間における一部または全部のアドレスをPCIデバイスd11〜d1nに割り当てる。より詳細には、リソース割り当て部6は、PCIデバイスd11〜d1nにそれぞれ割り当てたアドレスをI/Oリソース範囲レジスタr11〜r1nにそれぞれ書き込む(ステップS4)。
次に、リソース割り当て部6は、冗長系のPCIデバイスに通常系と同じI/Oリソースを割り当てる。すなわち、リソース割り当て部6は、PCIデバイスd11〜d1nに割り当てたアドレスと同じアドレスをPCIデバイスd21〜d2nにそれぞれ割り当てる。より詳細には、リソース割り当て部6は、PCIデバイスd21〜d2nにそれぞれ割り当てたアドレスをI/Oリソース範囲レジスタr21〜r2nにそれぞれ書き込む(ステップS6)。
次に、リソース割り当て部6は、通常系のPCIブリッジに処理すべきI/Oリソース範囲を設定する。すなわち、リソース割り当て部6は、PCIデバイスd11〜d1nに割り当てたアドレスをPCI−PCIブリッジ2に設定する。より詳細には、リソース割り当て部6は、割り当てたアドレスをPCI−PCIブリッジ2におけるI/Oリソース範囲レジスタr1に書き込む(ステップS8)。
次に、リソース割り当て部6は、冗長系のPCIデバイスに無効なI/Oリソース範囲を設定する。すなわち、リソース割り当て部6は、PCIデバイスd21〜d2nに割り当てたアドレスをPCI−PCIブリッジ3には設定しない。より詳細には、リソース割り当て部6は、PCI−PCIブリッジ3におけるI/Oリソース範囲レジスタr2に無効なアドレスを書き込む(ステップS10)。
次に、オペレーティングシステムが起動され、システムBIOSからオペレーティングシステムへ処理が移行される(ステップS12)。
次に、リソース管理制御部7は、通常系のPCIデバイスの異常監視を行なう。すなわち、リソース管理制御部7は、PCIデバイスd11〜d1nとCPU101との間のデータ通信を監視し(ステップS14)、異常が発生するまで待機する(ステップS16でNO)。
リソース管理制御部7は、通常系のPCIデバイスに異常が発生すると(ステップS16でYES)、通常系のPCIブリッジに無効なI/Oリソース範囲を設定する。すなわち、リソース管理制御部7は、PCIデバイスd11〜d1nとCPU101との間のデータ通信に異常が発生した場合には、PCIデバイスd11〜d1nおよびPCIデバイスd21〜d2nに割り当てたアドレスのPCI−PCIブリッジ2への設定を取り消す。より詳細には、リソース管理制御部7は、PCI−PCIブリッジ2におけるI/Oリソース範囲レジスタr1に無効なアドレスを書き込む(ステップS18)。
次に、リソース管理制御部7は、冗長系のPCIブリッジに処理すべきI/Oリソース範囲を設定する。すなわち、リソース管理制御部7は、PCIデバイスd21〜d2nに割り当てたアドレスをPCI−PCIブリッジ3に設定する(ステップS20)。
次に、リソース管理制御部7は、冗長系のPCIデバイスを初期化する(ステップS22)。
次に、本発明の実施の形態に係る情報処理装置がリソース割り当て処理を行なう際の動作の具体例を説明する。
図4は、本発明の実施の形態に係る情報処理装置の正常時におけるリソース割り当て状態を示す図である。
図4を参照して、システムBIOS6は、コンピュータシステム201の起動時に、PCI−PCIブリッジ2および3、ならびにこれらが制御するデバイス群4および5に対してI/Oリソースを割り当てる。
まず、システムBIOS6は、通常系PCI−PCIブリッジ2、およびその配下の通常系PCIデバイス群4に対して通常のI/Oリソース割り当てを行なう。ここで、割り当て開始アドレスをXとすると、先頭のPCIデバイスd11のI/Oリソース範囲レジスタr11にはXからX+aの範囲(X<X+a)が、次のPCIデバイスd12のI/Oリソース範囲レジスタr12にはX+aからX+bの範囲(X+a<X+b)が書き込まれる。以下続けて、PCIデバイスd1nのI/Oリソース範囲レジスタr1nにはX+yからX+zの範囲(X+y<X+z)が書き込まれる。
そして、システムBIOS6は、PCIデバイス群4を制御するPCI−PCIブリッジ2にI/Oリソース範囲XからX+zまでを割り当てる、すなわち、PCI−PCIブリッジ2のI/Oリソース範囲レジスタr1に、XからX+zの範囲(X<X+z)を書き込む。
次に、システムBIOS6は、冗長系PCI−PCIブリッジ3、およびその配下の冗長系PCIデバイス群5に対してI/Oリソースを割り当てる。より詳細には、システムBIOS6は、冗長系PCIデバイスd21、d22、…、d2nに対して、それぞれ通常系PCIデバイスd11、d12、…d1nと同様のI/Oリソース範囲を割り当てる。すなわち、割り当て開始アドレスをXとすると、先頭のPCIデバイスd21のI/Oリソース範囲レジスタr21にはXからX+aの範囲(X<X+a)が、次のPCIデバイスd22のI/Oリソース範囲レジスタr22にはX+aからX+bの範囲(X+a<X+b)が書き込まれる。以下続けて、PCIデバイスd2nのI/Oリソース範囲レジスタr2nにはX+yからX+zの範囲(X+y<X+z)が書き込まれる。
また、システムBIOS6は、PCIデバイス群5を制御するPCI−PCIブリッジ3にはI/Oリソース範囲X+zからX+zまでを割り当てる、すなわち、PCI−PCIブリッジ3のI/Oリソース範囲レジスタr2に、X+zからX+zの範囲を書き込む。
この設定は、冗長系PCI−PCIブリッジ3の配下には制御すべきI/Oリソースが存在しないことを意味する。通常のコンピュータシステムでは、異なるデバイスに対して同一のI/Oリソースを割り当てることはできない。しかしながら、冗長系PCI−PCIブリッジ3にこのようなリソース範囲を割り当てることにより、I/Oトランザクションは冗長系PCI−PCIブリッジ3の配下のPCIデバイスには流れない。このため、PCIデバイスd21〜d2nのI/Oリソース割り当てが他のPCIデバイスと重複してもシステム上矛盾が生じることは無い。
システムBIOS6は、以上の様にI/Oリソースを割り当て、オペレーティングシステム7の起動に移行する。
オペレーティングシステム7は、PCIバスの初期化中に冗長系PCI−PCIブリッジ3を検出する。しかしながら、上記のようにリソースを割り当てることにより、冗長系PCI−PCIブリッジ3の制御すべきI/Oリソースは存在しないことになっている。オペレーティングシステム7は、このようなリソース範囲レジスタr2の設定を検出した場合、PCI−PCIブリッジ3の配下のPCIデバイスは冗長系であることを認識して、PCI−PCIブリッジ3の配下のPCIデバイスd21〜d2nの初期化を行なわない。
これにより、オペレーティングシステム7は、冗長系PCIデバイス群5が存在しないものとして起動する。
次に、本発明の実施の形態に係る情報処理装置において、オペレーティングシステム7が、システム運用中に通常系PCI−PCIブリッジ2の配下のPCIデバイスに関する異常を検出し、冗長系PCIデバイスへ切り替える場合の処理を説明する。
図5は、本発明の実施の形態に係る情報処理装置の異常時におけるリソース割り当て状態を示す図である。
図5を参照して、オペレーティングシステム7は、通常系PCIデバイス群4におけるいずれかのPCIデバイスに関する異常を検出した場合には、ホットプラグ機能を用いて通常系PCIデバイス群4の各PCIデバイスを閉塞する。
次に、オペレーティングシステム7は、通常系PCI−PCIブリッジ2に割り当てられているI/Oリソース範囲(XからX+zまで)を記録したのち、I/Oリソース範囲レジスタr1を閉塞状態の範囲(XからXまで)に書き換える。これにより、PCI−PCIブリッジ2の配下にI/Oトランザクションが流れなくなる。
次に、オペレーティングシステム7は、記録したI/Oリソース範囲を冗長系PCI−PCIブリッジ3のI/Oリソース範囲レジスタr2に書き込む。
これにより、冗長系PCI−PCIブリッジ3の配下にI/Oトランザクションが流れるようになる。さらに、オペレーティングシステム7は、冗長系PCIデバイス群5における各PCIデバイスに対してホットプラグ機能を用いることにより、当該各PCIデバイスをオペレーティングシステム7に組み込む。このとき、冗長系PCIデバイス群5には通常系PCIデバイス群4と同様のI/OリソースがBIOSによってすでに割り当てられているため、矛盾無くシステムに組み込むことができる。
以上のような手順により、冗長系PCIデバイス群5をオペレーティングシステム7に組み込むことができる。
ところで、従来、冗長化されたPCIデバイスに対して、BIOSが一意的なI/Oリソースを割り当てていた。このため、I/Oリソースを大量に消費する大規模構成のPCIデバイスを備えたシステムでは、PCIデバイスの冗長構成を採用することは困難であった。
これに対して、本発明の実施の形態に係る情報処理装置では、リソース割り当て部6は、CPU101がアクセス可能なアドレス空間における一部または全部のアドレスをPCIデバイスd11〜d1nに割り当て、かつ割り当てたアドレスと同じアドレスをPCIデバイスd21〜d2nに割り当てる。そして、リソース割り当て部6は、PCIデバイスd11〜d1nに割り当てたアドレスをPCI−PCIブリッジ2に設定し、PCIデバイスd21〜d2nに割り当てたアドレスをPCI−PCIブリッジ3には設定しない。
このような構成により、コンピュータシステムにおける冗長系PCIデバイスに割り当てるべきI/Oリソースを削減できることから、一つのコンピュータシステムにおいて、より多くの冗長系PCIデバイスを実装することができる。
すなわち、本発明の第1の実施の形態に係る情報処理装置における各構成要素のうち、CPU101、PCI−PCIブリッジ2,3からなる最小構成により、リソース消費を抑制しながらデバイスの冗長構成を実現するという本発明の目的を達成することが可能となる。
また、本発明の実施の形態に係る情報処理装置では、リソース管理制御部7は、PCIデバイスd11〜d1nとの間のデータ通信に異常が発生した場合には、PCIデバイスd11〜d1nおよびPCIデバイスd21〜d2nに割り当てたアドレスのPCI−PCIブリッジ2への設定を取り消し、上記割り当てたアドレスをPCI−PCIブリッジ3に設定する。このような構成により、通常系PCIデバイスの異常発生時に適切に冗長系PCIデバイスへの切り替えを行なうことができる。
なお、本発明の実施の形態に係る情報処理装置は、PCI−PCIブリッジ2,3と、PCIデバイス群4,5と、ホスト−PCIブリッジ8と、PCIバスB1,B2,B3とを備える構成であるとしたが、これに限定するものではない。PCIバスに限らず、情報処理装置201が、他の規格に従ったバスおよびその周辺回路を備える構成であってもよい。
また、本発明の実施の形態に係る情報処理装置は、PCIバスB3に接続された2つのPCI−PCIブリッジを備える構成であるとしたが、これに限定するものではない。情報処理装置201が、PCIバスB3に接続された3つ以上のPCI−PCIブリッジを備える構成であってもよい。
また、本発明の実施の形態に係る情報処理装置は、ホスト−PCIブリッジ8を備える構成であるとしたが、これに限定するものではない。情報処理装置201がホスト−PCIブリッジ8を備えず、CPU101が1つのバスを介してPCI−PCIブリッジ2,3と接続される構成であってもよい。
また、本発明の実施の形態に係る情報処理装置では、リソース割り当て部6は、CPU101がシステムBIOSのプログラムを実行することにより構成され、また、リソース管理制御部7は、CPU101がオペレーティングシステムのプログラムを実行することにより構成されるとしたが、これに限定するものではない。CPU101がシステムBIOSおよびオペレーティングシステム以外の他のプログラムを実行することによりリソース割り当て部6およびリソース管理制御部7が実現されてもよい。
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
上記実施の形態の一部または全部は以下の付記のようにも記載されうるが、本発明の範囲は、以下の付記に限定されるものではない。
[付記1]
演算処理部と、
1または複数の第1のデバイスが接続される第1のバスと、
1または複数の第2のデバイスが接続される第2のバスと、
前記演算処理部に接続された第3のバスと、
前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、
前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備え、
前記演算処理部は、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当て、かつ前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるためのリソース割り当て部を含み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しない、情報処理装置。
演算処理部と、
1または複数の第1のデバイスが接続される第1のバスと、
1または複数の第2のデバイスが接続される第2のバスと、
前記演算処理部に接続された第3のバスと、
前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、
前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備え、
前記演算処理部は、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当て、かつ前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるためのリソース割り当て部を含み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しない、情報処理装置。
[付記2]
前記演算処理部は、さらに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するためのリソース管理制御部を含み、
前記リソース管理制御部は、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定する、付記1に記載の情報処理装置。
前記演算処理部は、さらに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するためのリソース管理制御部を含み、
前記リソース管理制御部は、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定する、付記1に記載の情報処理装置。
[付記3]
前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
前記リソース割り当て部は、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記1または2に記載の情報処理装置。
前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
前記リソース割り当て部は、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記1または2に記載の情報処理装置。
[付記4]
前記リソース管理制御部は、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、付記3に記載の情報処理装置。
前記リソース管理制御部は、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、付記3に記載の情報処理装置。
[付記5]
前記リソース割り当て部は、前記演算処理部がBIOS(Basic Input Output System)プログラムを実行することにより構成され、
前記リソース管理制御部は、前記演算処理部がOS(Operating System)プログラムを実行することにより構成される、付記1から4のいずれかに記載の情報処理装置。
前記リソース割り当て部は、前記演算処理部がBIOS(Basic Input Output System)プログラムを実行することにより構成され、
前記リソース管理制御部は、前記演算処理部がOS(Operating System)プログラムを実行することにより構成される、付記1から4のいずれかに記載の情報処理装置。
[付記6]
演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、前記演算処理部に接続された第3のバスと、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しないステップとを含む、リソース割り当て方法。
演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、前記演算処理部に接続された第3のバスと、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しないステップとを含む、リソース割り当て方法。
[付記7]
前記リソース割り当て方法は、さらに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視し、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定するステップを含む、付記6に記載のリソース割り当て方法。
前記リソース割り当て方法は、さらに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視し、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定するステップを含む、付記6に記載のリソース割り当て方法。
[付記8]
前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
アドレスを前記1または複数の第1のデバイスに割り当てるステップにおいては、前記1または複数の第1のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記1または複数の第2のデバイスに割り当てるステップにおいては、前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記第1のブリッジ部に設定するステップにおいては、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記6または7に記載のリソース割り当て方法。
前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
アドレスを前記1または複数の第1のデバイスに割り当てるステップにおいては、前記1または複数の第1のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記1または複数の第2のデバイスに割り当てるステップにおいては、前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記第1のブリッジ部に設定するステップにおいては、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記6または7に記載のリソース割り当て方法。
[付記9]
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するステップにおいては、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、付記8に記載のリソース割り当て方法。
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するステップにおいては、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、付記8に記載のリソース割り当て方法。
[付記10]
演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、前記演算処理部に接続された第3のバスと、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しないステップとを実行させる、リソース割り当てプログラム。
演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、前記演算処理部に接続された第3のバスと、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しないステップとを実行させる、リソース割り当てプログラム。
[付記11]
前記リソース割り当てプログラムは、さらに、コンピュータに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視し、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定するステップを実行させる、付記10に記載のリソース割り当てプログラム。
前記リソース割り当てプログラムは、さらに、コンピュータに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視し、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定するステップを実行させる、付記10に記載のリソース割り当てプログラム。
[付記12]
前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
アドレスを前記1または複数の第1のデバイスに割り当てるステップにおいては、前記1または複数の第1のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記1または複数の第2のデバイスに割り当てるステップにおいては、前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記第1のブリッジ部に設定するステップにおいては、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記10または11に記載のリソース割り当てプログラム。
前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
アドレスを前記1または複数の第1のデバイスに割り当てるステップにおいては、前記1または複数の第1のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記1または複数の第2のデバイスに割り当てるステップにおいては、前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記第1のブリッジ部に設定するステップにおいては、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記10または11に記載のリソース割り当てプログラム。
[付記13]
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するステップにおいては、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、付記12に記載のリソース割り当てプログラム。
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するステップにおいては、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、付記12に記載のリソース割り当てプログラム。
本発明によれば、リソース消費を抑制しながらデバイスの冗長構成を実現することができる。したがって、本発明は、産業上の利用可能性を有している。
2,3 PCI−PCIブリッジ(ブリッジ部)
4,5 PCIデバイス群
6 リソース割り当て部
7 リソース管理制御部
8 ホスト−PCIブリッジ
101 CPU(演算処理部)
102 メインメモリ
103 ハードディスク
104 入力インターフェイス
105 表示コントローラ
106 データリーダ/ライタ
107 通信インターフェイス
108 キーボード
109 マウス
110 ディスプレイ
111 記録媒体
121 バス
201 情報処理装置
B1,B2,B3 PCIバス
BH ホストバス
d11〜d1n,d21〜d2n PCIデバイス
4,5 PCIデバイス群
6 リソース割り当て部
7 リソース管理制御部
8 ホスト−PCIブリッジ
101 CPU(演算処理部)
102 メインメモリ
103 ハードディスク
104 入力インターフェイス
105 表示コントローラ
106 データリーダ/ライタ
107 通信インターフェイス
108 キーボード
109 マウス
110 ディスプレイ
111 記録媒体
121 バス
201 情報処理装置
B1,B2,B3 PCIバス
BH ホストバス
d11〜d1n,d21〜d2n PCIデバイス
Claims (7)
- 演算処理部と、
1または複数の第1のデバイスが接続される第1のバスと、
1または複数の第2のデバイスが接続される第2のバスと、
前記演算処理部に接続された第3のバスと、
前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、
前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備え、
前記演算処理部は、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当て、かつ前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるためのリソース割り当て部を含み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しない、情報処理装置。 - 前記演算処理部は、さらに、
前記1または複数の第1のデバイスと前記演算処理部との間のデータ通信を監視するためのリソース管理制御部を含み、
前記リソース管理制御部は、前記第1のデバイスとの間のデータ通信に異常が発生した場合には、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスの前記第1のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第2のブリッジ部に設定する、請求項1に記載の情報処理装置。 - 前記1または複数の第1のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第1のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記1または複数の第2のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第2のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第1のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第1のデバイスへ出力し、
前記第2のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第3のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記1または複数の第2のデバイスへ出力し、
前記リソース割り当て部は、前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスに割り当てたアドレスを前記1または複数の第1のデバイスおよび前記1または複数の第2のデバイスのレジスタにそれぞれ書き込み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第1のブリッジ部におけるレジスタに書き込み、前記第2のブリッジ部におけるレジスタに無効なアドレスを書き込む、請求項1または2に記載の情報処理装置。 - 前記リソース管理制御部は、前記1または複数の第1のデバイスとの間のデータ通信に異常が発生した場合には、前記第1のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第2のブリッジ部におけるレジスタに書き込む、請求項3に記載の情報処理装置。
- 前記リソース割り当て部は、前記演算処理部がBIOS(Basic Input Output System)プログラムを実行することにより構成され、
前記リソース管理制御部は、前記演算処理部がOS(Operating System)プログラムを実行することにより構成される、請求項1から4のいずれかに記載の情報処理装置。 - 演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、前記演算処理部に接続された第3のバスと、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しないステップとを含む、リソース割り当て方法。 - 演算処理部と、1または複数の第1のデバイスが接続される第1のバスと、1または複数の第2のデバイスが接続される第2のバスと、前記演算処理部に接続された第3のバスと、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第1のバス経由で前記1または複数の第1のデバイスへ出力するための第1のブリッジ部と、前記第3のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第2のバス経由で前記1または複数の第2のデバイスへ出力するための第2のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記1または複数の第1のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記1または複数の第2のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第1のブリッジ部に設定し、前記割り当てたアドレスを前記第2のブリッジ部には設定しないステップとを実行させる、リソース割り当てプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010071638A JP2011204077A (ja) | 2010-03-26 | 2010-03-26 | 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010071638A JP2011204077A (ja) | 2010-03-26 | 2010-03-26 | 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011204077A true JP2011204077A (ja) | 2011-10-13 |
Family
ID=44880644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010071638A Pending JP2011204077A (ja) | 2010-03-26 | 2010-03-26 | 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011204077A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013175570A1 (ja) * | 2012-05-22 | 2013-11-28 | 富士通株式会社 | 情報処理装置、制御方法、及び制御プログラム |
WO2014020716A1 (ja) * | 2012-08-01 | 2014-02-06 | 富士通株式会社 | 情報処理装置、制御方法、制御プログラム、及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
KR20210025118A (ko) * | 2018-07-16 | 2021-03-08 | 아마존 테크놀로지스, 인크. | 어드레스 마이그레이션 서비스 |
-
2010
- 2010-03-26 JP JP2010071638A patent/JP2011204077A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013175570A1 (ja) * | 2012-05-22 | 2013-11-28 | 富士通株式会社 | 情報処理装置、制御方法、及び制御プログラム |
JPWO2013175570A1 (ja) * | 2012-05-22 | 2016-01-12 | 富士通株式会社 | 情報処理装置、制御方法、及び制御プログラム |
US9703590B2 (en) | 2012-05-22 | 2017-07-11 | Fujitsu Limited | Information processing apparatus including bridges that connect virtual machines and physical devices, and control method thereof |
WO2014020716A1 (ja) * | 2012-08-01 | 2014-02-06 | 富士通株式会社 | 情報処理装置、制御方法、制御プログラム、及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US20150127868A1 (en) * | 2012-08-01 | 2015-05-07 | Fujitsu Limited | Information processing device, control method, and non-transitory computer-readable recording medium having control program recorded thereon |
JPWO2014020716A1 (ja) * | 2012-08-01 | 2016-07-11 | 富士通株式会社 | 情報処理装置、制御方法、及び制御プログラム |
KR20210025118A (ko) * | 2018-07-16 | 2021-03-08 | 아마존 테크놀로지스, 인크. | 어드레스 마이그레이션 서비스 |
JP2021530916A (ja) * | 2018-07-16 | 2021-11-11 | アマゾン テクノロジーズ インコーポレイテッド | アドレス移行サービス |
JP7135260B2 (ja) | 2018-07-16 | 2022-09-13 | アマゾン テクノロジーズ インコーポレイテッド | コンピュータ実施方法及びシステム |
KR102540776B1 (ko) * | 2018-07-16 | 2023-06-13 | 아마존 테크놀로지스, 인크. | 어드레스 마이그레이션 서비스 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103198450B (zh) | 图像形成装置 | |
TWI287717B (en) | Information processing device, process control method, and recording medium recorded with computer readable program | |
JP6329318B2 (ja) | 情報処理装置 | |
JP5085180B2 (ja) | 情報処理装置およびアクセス制御方法 | |
US20050015430A1 (en) | OS agnostic resource sharing across multiple computing platforms | |
US20060224931A1 (en) | Data processing system for keeping isolation between logical partitions | |
US20060245264A1 (en) | Computing with both lock-step and free-step processor modes | |
JP5365847B2 (ja) | 仮想化装置における物理デバイスのコンフィグレーション処理方法及びコンピュータシステム | |
US10572434B2 (en) | Intelligent certificate discovery in physical and virtualized networks | |
JP5063152B2 (ja) | 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム | |
JP6194764B2 (ja) | 情報処理装置、制御方法、および制御プログラム | |
JP2011170477A (ja) | ハイパーバイザ及びサーバ装置 | |
CN100594481C (zh) | 允许运行在逻辑分区上的程序访问资源的方法与系统 | |
JP2004127291A (ja) | 連続したメモリ・アドレスを提供する方法、システムおよびコンピュータ・ソフトウェア | |
US8713230B2 (en) | Method for adjusting link speed and computer system using the same | |
JP4692912B2 (ja) | リソース割り当てシステム、及びリソース割り当て方法 | |
US10331557B1 (en) | Distribution of memory address resources to bus devices in a multi-processor computing system | |
JP2011204077A (ja) | 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム | |
JP6745405B2 (ja) | ストレージシステム及びマッピング方法 | |
JP5417303B2 (ja) | 仮想計算機システム及びそのインストール方法 | |
JP2014109938A (ja) | プログラム起動装置、プログラム起動方法、及びプログラム起動プログラム | |
JP6948039B2 (ja) | コンピュータシステム | |
JP2019139417A (ja) | 情報処理装置、制御方法及び制御プログラム | |
JP2018113075A (ja) | 情報処理装置 | |
JP2016057797A (ja) | 診断プログラム実行装置、診断プログラム実行システム、診断プログラム実行方法、及び、診断プログラム実行プログラム |