(57)【要約】【課題】  処理ｂｉｔ数の少なさに起因するアクセス空間の制約を回避することによって、大規模な入出力データを処理するアドレス空間変換装置等を提供する。【解決手段】  アドレス空間変換装置は、制御部と、その制御部によって制御されるアドレス空間変換部とを備える。このアドレス空間変換装置において、前記制御部は、前記アドレス空間変換部に接続された周辺デバイスに、前記アドレス空間変換部を制御することによってアクセスするのに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、そのアドレス空間の区画を、前記アドレス空間変換部に割り当てた後に、その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定する。【選択図】      図１
2013114650.tif 000002
【特許請求の範囲】
【請求項１】
制御部と、
前記制御部によって制御されるアドレス空間変換部とを備え、
前記制御部は、前記アドレス空間変換部に接続された周辺デバイスに、前記アドレス空間変換部を制御することによってアクセスするに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、そのアドレス空間の区画を、前記アドレス空間変換部に割り当てた後に、その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定することを特徴とするアドレス空間変換装置。
【請求項２】
前記制御部は、前記アドレス空間変換部を制御することによって、前記周辺デバイスにアクセスする際に、前記アドレス空間の区画である論理的な上位アドレスに、前記周辺デバイスの物理的なアドレスを下位に加えて成る、論理的なアドレスを元にテーブルを参照することにより、複数の前記周辺デバイスのうち、アクセス対象である周辺デバイスを特定することを特徴とする請求項１に記載のアドレス空間変換装置。
【請求項３】
前記テーブルは、前記論理的な上位アドレスに、前記周辺デバイスの前記物理的なアドレスを下位に加えて成る、論理的なアドレスと、前記周辺デバイスの前記物理的な下位アドレスとの間でアドレスを変換する、アドレス変換テーブルであることを特徴とする請求項２に記載のアドレス空間変換装置。
【請求項４】
前記制御部は、前記周辺デバイスにアクセスする際に、前記アドレス空間変換部に、前記アドレス空間の区画である論理的な上位アドレスの範囲を、セグメントとして割り当てることを特徴とする請求項３に記載のアドレス空間変換装置。
【請求項５】
前記アドレス空間変換テーブルは、前記セグメントに番号を付与したセグメント番号および、該セグメント番号に対応する前記論理的な上位アドレスに、前記周辺デバイスの前記物理的なアドレスを下位に加えて成る、論理的なアドレスとを紐付けるデータ構造を有することを特徴とする請求項３もしくは４に記載のアドレス空間変換装置。
【請求項６】
前記アドレス空間変換部が有する、アドレス空間変換テーブルは、書き換え可能なハードウェアもしくはソフトウェアにより構成されることを特徴とする請求項２、３もしくは５のいずれか１項に記載のアドレス空間変換装置。
【請求項７】
前記制御部は、自装置が稼動中に、自装置の拡張スロットから、いずれかの前記ＰＣＩデバイスを抜去されるか、新たなＰＣＩデバイスを挿入されるか、もしくはいずれかの前記ＰＣＩデバイスを抜去されてから新たなＰＣＩデバイスを挿入されるのに応じて、前記アドレス空間変換部が有するアドレス空間変換テーブルの内容を更新することを特徴とする請求項２、３、５、６のいずれか１項に記載のアドレス空間変換装置。
【請求項８】
前記制御部と、前記アドレス空間変換部と、前記周辺デバイスとを、それぞれ多重化したアドレス空間変換装置の、前記アドレス空間変換部同士を相互に接続することで、前記アドレス空間変換テーブルおよび、故障代替管理テーブルを相互に参照することにより、故障したいずれかの系統のいずれかのＰＣＩデバイスを、当該系統の前記アドレス空間変換テーブルから削除するとともに、当該系統の前記故障代替管理テーブルを用いて、他の系統から代替のＰＣＩデバイスを提供させることを特徴とする請求項２、３、５、６のいずれか１項に記載のアドレス空間変換装置。
【請求項９】
制御部と、その制御部によって制御されるアドレス空間変換部とを備えたアドレス空間変換装置において、前記アドレス空間変換部に接続された周辺デバイスにアクセスするに先立って、
所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、
そのアドレス空間の区画を、前記アドレス空間変換部に割り当て、
その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定することを特徴とするアドレス空間変換の制御方法。
【請求項１０】
制御機能と、その制御機能によって制御されるアドレス空間変換機能とを備えたアドレス空間変換装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
前記制御機能は、前記アドレス空間変換機能によってアクセス可能に接続された周辺デバイスにアクセスするのに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、
そのアドレス空間の区画を、前記アドレス空間変換機能に割り当て、
その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定する制御を、
コンピュータに実現させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、情報処理装置のアドレス空間を変換する技術分野に関する。
【背景技術】
【０００２】
近年、企業などで、取り扱う業務データなどの情報量が急速に増大しており、これらのデータを処理する情報処理装置は、多くの記憶装置などの周辺機器や、他の情報処理装置との間を、高速で大容量の通信ネットワーク（以下、「ＮＷ」と略称する）機能で接続することにより、大量のデータを処理することが期待されている。
【０００３】
最近のＮＷ機能として、例えば、サーバ等の情報処理装置ではＧ（ギガ）ｂｐｓ級の物理速度を有する、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（以下、「ＮＩＣ」と称する）や、Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ（以下、「ＦＣ」と略称する）カードなどが使われている（以下、ＮＩＣやＦＣカードを総称して、「ＮＷカード」と称する）。
【０００４】
また、係るＮＷカードには、集積度を上げるために、１枚のカードに複数の通信ポートを搭載しているものがある。さらに、大規模な情報処理装置では、これらのＮＷカードを複数枚、搭載可能となっている。
【０００５】
これらのＮＷカードを搭載する、サーバ等の情報処理装置では、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  −  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ（以下、「ＰＣＩ−ＳＩＧ」と称する）が、汎用バスインタフェースを規定している。
【０００６】
それは、一般に普及している、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（以下、「ＰＣＩ」と称する）バス規格であり、この規格に対応した、拡張スロットを搭載することによって、上述のＮＷカードを複数枚、収容できるようにしている。
【０００７】
しかしながら、これらのＰＣＩバスに対応したＮＷカードは、情報処理装置のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；以下、「ＯＳ」と称する）や、制御ソフトウェアであるドライバと共に動作するために必要な、ＮＷカード内のＰＣＩバス制御チップが有するレジスタや、データ転送用のバッファなどのために、情報処理装置が有するメモリ容量の一部を占有する。
【０００８】
情報処理装置のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ；以下、「ＣＰＵ」と称する）は、ＮＷカードが有するレジスタや、バッファなどの動作に必要な情報を、メモリにマッピングすることにより、そのメモリに直接アクセスすることによって、ＮＷカードからの入出力データを高速にやりとりすることができる。
【０００９】
最近のＮＷなどの多くのカードは、動作速度が速くなってきていることと、レジスタや、バッファのサイズが大きくなってきていることから、ＣＰＵのメモリと連続的に同じ空間を用いるメモリマップドＩＯ（Ｍｅｍｏｒｙ  Ｍａｐｐｅｄ  ＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）；以下、「ＭＭＩＯ」と称する）と呼ばれるメモリのマッピング方法を採用しているカードが増えている。これとは別に、メモリ空間とは不連続なＩＯ空間にマッピングするＩＯマップドＩＯがあるが、本アドレス空間変換装置ではＭＭＩＯを対象としている。
【００１０】
係るＮＷカードは、伝送速度の高速化、通信ポートの集積化の他に、情報処理装置への搭載枚数の増加に伴って、情報処理装置のメモリを占有するＭＭＩＯ空間が増大する。そのため、他にメモリを使用するＯＳやドライバの動作を圧迫する可能性がある。
【００１１】
すなわち、限られたメモリ空間で、ＯＳやドライバの動作を圧迫しないようにするためには、ＮＷなどのカードの枚数を制限する必要がある。しかし、これにより大規模な入出力機能を必要とする大量のデータ処理は困難となっている。
【００１２】
そこで、係るメモリ空間不足の対策の一つとして、最近のサーバなどの情報処理装置は、その装置に搭載する、ＯＳや、ＣＰＵおよびチップセットを、６４ｂｉｔ（いわゆる、ｘ６４アーキテクチャ）に対応している。
【００１３】
また、ＮＷなどのカードも、メモリにおける、ＭＭＩＯM空間の不足を解消するために、６４ｂｉｔのＭＭＩＯに対応したＰＣＩデバイスが出現してきている。
【００１４】
しかしながら、情報処理装置は、３２ｂｉｔ（いわゆるｘ８６アーキテクチャ）対応から、上述した６４ｂｉｔ対応への過渡期にあるため、一部の情報処理装置では、ＣＰＵやチップセット以外の、ＰＣＩバスを拡張するためのＰＣＩブリッジや、ＰＣＩデバイスは、依然として、３２ｂｉｔの対応のままである場合がある。
【００１５】
なお、ＰＣＩバス制御チップを有するＮＷなどのカードは、アーキテクチャを説明する場合は、ＰＣＩデバイスと称する。また、情報処理装置が有するＰＣＩブリッジと、ＰＣＩデバイスを総称して便宜的に周辺デバイスと呼ぶ場合がある。
【００１６】
さらに、情報処理装置および、ＰＣＩデバイスの外部に接続する機器を周辺機器と称する。
【００１７】
つまり、情報処理装置の経路にある、ＰＣＩブリッジや、ＰＣＩデバイスが、６４ｂｉｔに対応していないことによって、それが制約となって、ＮＷカードなどのＰＣＩデバイスに割り当て可能な、メモリにおけるＭＭＩＯ空間が、例えば、３２ｂｉｔの空間の上限である約４ギガバイト（Ｇｉｇａ  Ｂｙｔｅ；以下「ＧＢ」と称する）になってしまう。
【００１８】
実際には、上述したＯＳや、ドライバとメモリを分け合うので、ＮＷカードなどのＰＣＩデバイスに割り当て可能なＭＭＩＯ空間はさらに狭くなる。
【００１９】
例えば、最近のサーバが搭載する１０ＧｂｐｓのＬＡＮを１ポート内蔵するＮＩＣは、そのＭＭＩＯ空間として１２８ＭＢを使用する。
【００２０】
そのため、この様なＮＩＣを、例えば８枚搭載しただけで、上述の約４ＧＢの空間のうちの約１ＧＢを消費してしまう。このため、このようなＮＷカードを数十枚必要とする、大規模な入出力機能を有する情報処理装置の構築は困難である。
【００２１】
ここで、特許文献１は、情報処理装置の動作プログラムのためのメモリ空間と、周辺機器の入出力動作に必要な情報をメモリ空間に効果的に配置するメモリ空間の割り当て方法を開示する。
【００２２】
特許文献１で参照されている関連する技術は、例えば、３２ｂｉｔのＣＰＵがアクセス可能なメモリ空間のサイズが、約４ＧＢに制限される中で、入出力動作のためのＰＣＩデバイスの制御プログラムのアドレス空間を制限すると、ＰＣＩデバイスが正常に動作しなくなる課題があるので、これを解決することを意図したものである。
【００２３】
しかしながら、上記特許文献１に記載された、メモリアドレス空間の割り当て方法では、結局、約４ＧＢの領域の中で、入出力動作に必要な情報のためのメモリ空間を確保しつつ、装置の動作プログラム空間の割り当てを最適にすることに留まるため、一定以上の規模のシステムは、依然として構築できないという課題が残る。
【００２４】
また、特許文献２は、情報処理装置の入出力動作を制御するプログラムを実行する際に、ＣＰＵの実行アドレスを外部回路でモニタすることによって、その外部回路でデコードした情報を基に、所定のバンク単位で入出力動作を制御するプログラム領域を切替えることにより、ＣＰＵの物理アドレスの制約を受けずに、入出力領域を拡張する、入出力領域拡張用メモリ装置およびそのメモリ装置を用いた情報処理システムを開示する。
【００２５】
特許文献２で参照されている関連する技術は、ＣＰＵがアクセス可能なメモリ空間を、プログラムの動作に必要な領域と、入出力の制御に必要な領域に効率よく分割するだけであって、結局、ＣＰＵやＯＳが扱う物理アドレスのｂｉｔ数(処理ｂｉｔ数)で決まるアクセス可能なメモリエリアの上限を超えることができないという課題があるので、これを解決することを意図したものである。
【００２６】
しかしながら、上記特許文献２に記載された、入出力領域拡張用メモリ装置では、ＣＰＵが、入出力動作を制御するプログラムの実行アドレスを外部のハードウェア（以下、「ＨＷ」と称する）回路を用いてモニタするとともに、そのモニタ結果を基にバンクを選択する必要がある。
【００２７】
また、上述のプログラムは、入出力領域のバンクを切替るトリガにはなるが、切替えた先の当該領域を外部からアドレス指定するソフトウェア（以下、「ＳＷ」と称する）の介在が必要である。さらに、プログラムの実行を、外部ＨＷにより、一旦デコードした後、バンクを選択してから、再び、上述のＳＷによる仮想的な入出力領域の制御を行うため、入出力応答性能が低下するという課題がある。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開２００７−２３３５３４号公報
【特許文献２】特開平    ９−２２３１００号公報
【発明の概要】
【発明が解決しようとする課題】
【００２９】
上述した関連する技術では、情報処理装置の処理ｂｉｔ数が少ないことにより、入出力機能のために使用することができるメモリ空間は制限を受ける。その結果、入出力機能の拡張に制約が生じ、所望の大規模な情報処理装置を構築できない。あるいは、プログラムの実行をモニタする外部回路の追加や、ＳＷの介在、およびこれらによる入出力応答性能の低下が発生するという課題がある。
【００３０】
本発明の主たる目的は、上述した課題を解決するために、処理ｂｉｔ数の少なさに起因するアクセス空間の制約を回避することによって、大規模な入出力データを処理する情報処理装置を提供することにある。
【課題を解決するための手段】
【００３１】
本発明は、上述した課題の解消を目的としてなされた。即ち、本発明に係るアドレス空間変換装置は、制御部と、前記制御部によって制御されるアドレス空間変換部とを備え、この制御部は、前記アドレス空間変換部に接続された周辺デバイスに、前記アドレス空間変換部を制御することによってアクセスするに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、そのアドレス空間の区画を、前記アドレス空間変換部に割り当てた後に、その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定することを特徴とする。
【００３２】
また、同目的を達成する本発明の他の見地として、本発明に係るアドレス空間変換の制御方法は、制御部と、その制御部によって制御されるアドレス空間変換部とを備えたアドレス空間変換装置において、前記アドレス空間変換部に接続された周辺デバイスにアクセスするに先立って、
所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、
そのアドレス空間の区画を、前記アドレス空間変換部に割り当て、
その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定することを特徴とする。
【００３３】
そして、同目的を解決する本発明の更なる他の見地として、本発明に係るコンピュータ・プログラムは、制御機能と、その制御機能によって制御されるアドレス空間変換機能とを備えたアドレス空間変換装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
前記制御機能は、前記アドレス空間変換機能によってアクセス可能に接続された周辺デバイスにアクセスするのに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、
そのアドレス空間の区画を、前記アドレス空間変換機能に割り当て、
その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定する制御を、
コンピュータに実現させることを特徴とする。
【発明の効果】
【００３４】
本発明によれば、処理ｂｉｔ数の少なさに起因するアクセス空間の制約を回避することにより、大規模な入出力データを処理する情報処理装置を構築することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１の実施形態に係るアドレス空間変換装置の概要を示すブロック図である。
【図２】本発明の第２の実施形態に係るアドレス空間変換装置の詳細を示すブロック図である。
【図３】本発明の第２の実施形態に係るアドレス空間変換を模式的に表す図である。
【図４】本発明の第２の実施形態に係るアドレス空間変換テーブルの内容を例示する図である。
【図５】本発明の第２の実施形態に係るアドレス空間変換装置のメモリマップの一例を示す図である。
【図６】本発明の第２の実施形態におけるアドレス空間変換装置の起動からの動作シーケンス例を示すフローチャートである。
【図７】本発明の第２の実施形態におけるアドレス空間変換装置のホットプラグからの動作シーケンス例を示すフローチャートである。
【図８】本発明の第３の実施形態に係るアドレス空間変換装置の概要を示すブロック図である。
【図９】本発明の第４の実施形態に係るアドレス空間を変換するコンピュータ・プログラムの概要を示すソフトウェアスタック図である。
【発明を実施するための形態】
【００３６】
以下、本発明を実施する形態について図面を参照して詳細に説明する。
【００３７】
＜第１の実施形態＞
まず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係るアドレス空間変換装置の概要を示すブロック図である。
【００３８】
本アドレス空間変換装置は、本装置を制御する制御部１、アドレス空間変換部２、周辺デバイス３を有する。
【００３９】
ここで、制御部１は、本アドレス空間変換装置の全体を制御する制御部である。
【００４０】
アドレス空間変換部２は、制御部１と、周辺デバイス３の間にあって、周辺デバイス３のアドレス空間を拡大するようにアドレス空間を変換するアドレス空間変換部である。
【００４１】
周辺デバイス３は、制御部1がアクセスする対象とする周辺デバイスである。
【００４２】
また、制御部１は、アドレス空間変換部２を制御することにより、周辺デバイス３にアクセスする際に、アドレス空間変換部２の図示していない、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス空間変換テーブルに基いてアドレス空間を変換する。
【００４３】
ここで、図示していないＧｌｏｂａｌアドレスは、制御部１から、アドレス空間変換部２に与える論理的にアドレス空間を拡大したアドレスと定義する。
【００４４】
また、同じく図示していないＬｏｃａｌアドレスは、アドレス空間変換部２から、周辺デバイス３に与える物理アドレスと定義する。
【００４５】
次に、本実施形態の動作について説明する。
【００４６】
まず、制御部１は、所定の上位アドレスの範囲による論理的な区画であるセグメントを、アドレス空間変換部２に割り当てておく。
【００４７】
次に、制御部１は、周辺デバイス３にアクセスするための、アドレス空間変換部２に出力するアドレスを、そのセグメントの範囲において、周辺デバイス３の下位アドレスを特定して成るＧｌｏｂａｌアドレスを指定する。
【００４８】
次に、前記アドレス空間変換部２は、上述の制御部１が指定したＧｌｏｂａｌアドレスを基に、自身が備えるＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを参照することにより、制御部１が指定する、Ｇｌｏｂａｌアドレスの上位アドレス空間であるセグメントを特定するとともに、そのセグメントの配下にある、アクセス目的とする周辺デバイス３の下位アドレスを特定する変換を行う。
【００４９】
すなわち、本実施形態に係るアドレス空間変換装置によれば、前記アドレス空間変換部２において、周辺デバイス３の物理アドレス空間ごと、セグメント毎に区画した上位の論理アドレス空間に変換することによって、接続可能な周辺デバイスの数を増やすことができる。
【００５０】
つまり、制御部１は、周辺デバイス３の物理アドレス空間を論理的に拡張することで、大規模な入出力機能を有するアドレス空間変換装置を構築することができるという効果を奏することができる。
【００５１】
また、制御部１の処理ｂｉｔ数に比べて、周辺デバイス３の処理ビット数が小さい装置であっても、これに制限されることなく、制御部１からは、あたかも制御主体である制御部１と、制御対象である周辺デバイス３の処理ｂｉｔ数が同じに見えるように扱うことができる。
【００５２】
さらに、アドレス空間変換部２に、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを追加するだけで、大規模な入出力機能を有するアドレス空間変換装置を容易に実現することができるという効果を奏することが出来る。
【００５３】
＜第２の実施形態＞
次に、第１の実施形態を基本とする本発明の第２の実施形態について図を参照して、詳細に説明する。図２は、本実施形態に係るアドレス空間変換装置の詳細を示すブロック図である。
【００５４】
まず、図２に示すブロック図を参照して、その構成について説明する。
【００５５】
本アドレス空間変換装置１０は、ＣＰＵ１１、メモリ１２、チップセット１３、ＰＣＩブリッジ１７、ＰＣＩデバイス１９から構成される。
【００５６】
本アドレス空間変換装置１０が有する、ＣＰＵ１１、メモリ１２、チップセット１３は、いわゆるｘ６４アーキテクチャに代表される、６４ｂｉｔの処理ｂｉｔ数を有する機能ブロックである。
【００５７】
一方で、技術進歩に伴うアーキテクチャの過渡期にあって、本アドレス空間変換装置１０が有する周辺デバイスであるＰＣＩブリッジ１７および、ＰＣＩデバイス１９は、３２ｂｉｔの処理ｂｉｔ数を有しており、メモリのＭＭＩＯ空間を使用する。
【００５８】
また、本装置に搭載しているチップセット１３は、ＭＭＩＯアクセスレジスタ１４、ＭＭＩＯアドレスレジスタ１５、およびＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６を有する。
【００５９】
また、本装置に搭載しているＰＣＩブリッジ１７は、配下に接続する、ＰＣＩデバイス１９のＭＭＩＯ空間を割り当てる、ＭＭＩＯアドレスレジスタ１８を有する。
【００６０】
また、本装置に搭載しているＰＣＩデバイス１９は、ＭＭＩＯアドレスレジスタ２０および、ＭＭＩＯ空間にマッピングするＭＭＩＯレジスタ２１を有する。
【００６１】
なお、ＰＣＩデバイス１９は、例えば、ＮＷカードであるＮＩＣや、ＦＣカードなど通信カードの他、インタフェースが、例えば、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）；以下、「ＳＡＳ」と称する）や、シリアルＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ；以下、「ＳＡＴＡ」と称する）などの記憶装置を接続する規格に対応するＰＣＩバスカード、もしくは周辺機器などである。
【００６２】
ここで、図１に示す第１の実施形態のブロック図と対比すると、ＣＰＵ１１およびメモリ１２は、第１の実施形態の制御部１に相当する。また、チップセット１３は、第１の実施形態のアドレス空間変換部２に相当する。さらに、ＰＣＩブリッジ１７およびＰＣＩデバイス１９は、第１の実施形態の周辺デバイス３に相当する。
【００６３】
次に、図３について説明する。図３は、本実施形態に係るアドレス空間変換を模式的に表す図である。図３の左側は、Ｇｌｏｂｌ  ＭＭＩＯアドレス３１、図３の右側は、Ｌｏｃａｌ  ＭＭＩＯアドレス３２である。また、Ｇｌｏｂａｌ  ＭＭＩＯアドレス３１は、チップセットセグメント３３を有する。さらに、Ｌｏｃａｌ  ＭＭＩＯアドレス３２は、ブリッジセグメント３４、ＰＣＩデバイス３５を有する。
【００６４】
次に、図４について、説明する。図４は、本実施形態に係るアドレス空間変換テーブルの内容を例示する図である。図４は、図３のアドレス空間変換を模式的に表す図に対応した、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルである。
【００６５】
チップセット１３は、本Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６を有している。本アドレス変換テーブルのデータ構造は、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１と、セグメント番号４２からなり、両者を対応付ける構造となっている。
【００６６】
なお、図４に示すＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６は、本実施形態では、一例として、ＨＷによる再構成可能（書き換え可能、もしくはリコンフィギュアラブル）なＨＷルックアップ（参照）テーブルとして説明しているが、ＳＷによって変更することが可能な、ＳＷテーブルで実現してもよい。
【００６７】
次に図５について説明する。図５は、本実施形態に係るアドレス空間変換装置のメモリマップの一例を示す図である。これは、ＣＰＵ１１のメモリアドレス空間５０であり、ＣＰＵ１１から見た、６４ｂｉｔメモリアドレス空間５１は、Ｇｌｏｂａｌ  ＭＭＩＯアドレスを示す。
【００６８】
そしてＣＰＵ１１において動作するプログラムの用途毎に区分けされた動作空間に対応するメモリマップとなっている。
【００６９】
続いて、第１の実施形態を基本とする本発明の第２の実施形態について図２乃至図５を参照して、その動作の概要について説明する。
【００７０】
まず、図２に示す本アドレス空間変換装置のＣＰＵ１１において動作するＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）２２は、本装置が起動する際、および、ＰＣＩデバイス１９を、図示していない拡張スロットから抜去したり、拡張スロットに挿入したり、拡張スロットから抜去してから、挿入したりする際に、各デバイスの認識や。情報の更新を行う。
【００７１】
つまり、ＢＩＯＳ２２は本アドレス空間変換装置が搭載している、チップセット１３、ＰＣＩブリッジ１７を含む全てのＰＣＩデバイス１９を認識した後に、ＰＣＩデバイスに変更があれば、そのＰＣＩデバイス１９が有するレジスタから必要な情報を収集する。
【００７２】
その後、ＢＩＯＳ２２は、ＰＣＩバス規格に規定されている、チップセット１３が有する特別なモードである、ＰＣＩコンフィグレーション動作を使用することにより、ＰＣＩデバイス１９が動作に必要とするレジスタやバッファなどの情報をメモリ１２に割り当てる。
【００７３】
つまり、ＢＩＯＳ２２は、ＰＣＩブリッジ１７および、ＰＣＩデバイス１９の各々のＭＭＩＯアドレスレジスタ１８および、２０から、動作に必要なメモリのサイズを読出す。
【００７４】
そして、ＢＩＯＳ２２は、それを基にして、必要なメモリのサイズのデータを、ＭＭＩＯアドレスレジスタ１８および、２０に改めて、書込むことにより、図５に示す、メモリ空間の範囲の中で、例えば、セグメント１  ＭＭＩＯ５３という４ＧＢ以上のメモリ領域に新たなＭＭＩＯ空間を割り当てることができる。
【００７５】
これにより、以降、ＣＰＵ１１および図示していない協働するＯＳは、ＰＣＩデバイス１９にアクセスする際に、上述のメモリ１２の新たなＭＭＩＯ空間に対してＣＰＵのリード／ライトサイクルを使用してＭＭＩＯアクセスすることができる。
【００７６】
なお、図５に示す例では、新たなＭＭＩＯ空間の開始アドレスを００００＿２００１＿００００＿００００（ｈｅｘ表示。以下、同様）としている。
【００７７】
より具体的には、ＣＰＵ１１は、ＰＣＩデバイス１９にデータを書込む際に、図示していないＯＳと協働して、目的のＰＣＩデバイスを特定する６４ｂｉｔのＧｌｏｂａｌ  ＭＭＩＯアドレスをチップセット１３のＭＭＩＯアクセスレジスタ１４に設定する。
【００７８】
その後、チップセット１３は、図４に記載のＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６を参照する。そして、チップセット１３は、同テーブルに従い、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１から、データを書込みたいＰＣＩデバイス１９が属するセグメント番号４２と、図４に図示していない、そのＰＣＩデバイス１９のＬｏｃａｌ  ＭＭＩＯアドレスに変換する。
【００７９】
これによって、ＣＰＵ１１は、図示していないＯＳと協働して、目的とする、セグメント番号に属するＰＣＩデバイス１９のＭＭＩＯレジスタ２１を使用して、ＭＭＩＯアクセスによる書込みを行う。
【００８０】
次に、ＣＰＵ１１は、ＰＣＩデバイス１９からデータを読出す際に、書込みの際と同様に、図示していないＯＳと協働して、目的のＰＣＩデバイスを特定する６４ｂｉｔのＧｌｏｂａｌ  ＭＭＩＯアドレスをチップセット１３のＭＭＩＯアクセスレジスタ１４に設定する。
【００８１】
その後、チップセット１３は、図４に記載したＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６を参照する。
【００８２】
そして、チップセット１３は、同テーブルに従い、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１から、データを読出したいＰＣＩデバイス１９が属するセグメント番号４２と、図４に図示していない、そのＰＣＩデバイス１９のＬｏｃａｌ  ＭＭＩＯアドレスに変換する。
【００８３】
これによって、ＣＰＵ１１は、図示していないＯＳと協働して、目的とする、セグメント番号に属するＰＣＩデバイス１９のＭＭＩＯレジスタ２１を使用して、ＭＭＩＯアクセスによる読出しを行う。
【００８４】
次に、図３に示す、本実施形態に係るＭＭＩＯのアドレス空間変換を模式的に表す図を用いて、さらに詳しく説明する。
【００８５】
図３の左に記載したＧｌｏｂａｌ  ＭＭＩＯアドレス３１は、ＣＰＵ１１が、指定する６４ｂｉｔで構成する論理アドレスである。
【００８６】
一方で、図３の右に示すＬｏｃａｌ  ＭＭＩＯアドレス３２は、周辺デバイスであるＰＣＩブリッジ１７および、ＰＣＩデバイス１９の３２ｂｉｔの物理的な下位アドレス範囲である。
【００８７】
上述の６４ｂｉｔの論理的なＧｌｏｂａｌ  ＭＭＩＯアドレス３１は、上述の下位の物理的なＬｏｃａｌ  ＭＭＩＯアドレス３２を含むように、上位に３２ｂｉｔの論理的な上位アドレス範囲を配しており、合わせて６４ｂｉｔの論理アドレスを成している。
【００８８】
なお、３２ｂｉｔの上位アドレス範囲のうちの、所定のｂｉｔで表すアドレス範囲を区画とする論理的なセグメント番号を付与することによって、そのセグメント番号の単位で、物理的な下位アドレス範囲を増やすことができる。
【００８９】
さらに、３２ｂｉｔの下位アドレス範囲とは、例えば、図３の左下側に示す、Ｇｌｏｂａｌ  ＭＭＩＯアドレスである、００００＿２００１＿００００＿００００の下位から８桁の部分である。一方で、３２ｂｉｔの上位アドレス範囲とは、例えば、上記の例では、上位から８桁の部分である。
【００９０】
ここで、図３に記載しているＧｌｏｂａｌ  ＭＭＩＯアドレス３１が表す６４ｂｉｔのアドレス空間と、Ｌｏｃａｌ  ＭＭＩＯアドレス３２が表す３２ｂｉｔのアドレス空間のアドレス範囲と、両空間の関係について説明する。
【００９１】
まず、下位アドレス範囲である００００＿００００〜ｆｆｆｆ＿ｆｆｆｆは、３２ｂｉｔで表される約４ＧＢ毎のアドレス範囲であり、ＰＣＩブリッジ１７および、ＰＣＩデバイス１９が使えるＬｏｃａｌ  ＭＭＩＯアドレス３２である。
【００９２】
次に、上位アドレス範囲である、００００＿２００１〜００００〜２００ｆは、上述した、下位アドレス範囲の上位に位置する３２ｂｉｔで表されるアドレス範囲であり、論理的に区画（すなわち拡張）するためのアドレス範囲であるセグメントである。
【００９３】
上述した、下位アドレス範囲の上位に上位アドレス範囲を位置したものが、Ｇｌｏｂａｌ  ＭＭＩＯアドレス３１であり、６４ｂｉｔで表される。
【００９４】
ここで、図３の左側に記載している、上位アドレス範囲である００００＿２００１〜００００＿２００ｆの下位から１桁目の１〜ｆは、セグメントの番号もしくは個数を表している。つまり、本実施形態の例では、最大１５個のセグメント番号を付与した、ＰＣＩブリッジ１７を配置することができる。
【００９５】
また、同じく下から４桁目の２は、図５に示す、４ＧＢ以上での新たなＭＭＩＯ空間である、例えば、セグメント１  ＭＭＩＯ（４ＧＢ以上での新ＭＭＩＯ空間）５３以上の空間である。
【００９６】
ここで、図５に示すように、関連する情報処理装置では、ＭＭＩＯ（４ＧＢ以下での旧ＭＭＩＯ空間）５２の範囲しか使えなかったが、本アドレス空間変換装置では、セグメント１  ＭＭＩＯ（４ＧＢ以上での新ＭＭＩＯ空間）５３のような、広大なアドレス範囲を、複数のセグメント毎に割り当てて使うことができる。
【００９７】
なお、ＰＣＩブリッジ１７は、多段（いわゆる、カスケード）接続にすることが可能であるので、一段目のＰＣＩブリッジに、２段目のＰＣＩブリッジを複数個、接続する構成にしてもよい。
【００９８】
また、ＰＣＩデバイス１９は、その各々のＰＣＩブリッジ１７の配下に、少なくとも１個以上、ＰＣＩブリッジ１７のアドレス範囲を超えない範囲で、接続することができる。
【００９９】
さらに、図３の右に接続している、ＰＣＩデバイス１９であるＰＣＩ１０〜ＰＣＩ１ｎや、ＰＣＩｆ０〜ＰＣＩｆｎ３５は、各セグメントの範囲の中で、シーケンシャルにＭＭＩＯアドレスを割り当てるようにすればよい。
【０１００】
以上の本実施形態の動作について、図６、図７のフローチャートを参照して、さらに詳細に説明する。
【０１０１】
図６は、本発明の第２の実施形態におけるアドレス空間変換装置の起動からの動作シーケンス例を示すフローチャートである。ここでは、一例として書込み動作も含めたフローチャートを説明する。
【０１０２】
まず、本メモリアドレス空間変換装置の操作者は、本装置の電源を投入する（ステップＳ６１）。
【０１０３】
次に、ＢＩＯＳ２２は、本装置に接続するチップセットを含む、ＰＣＩブリッジ１７および、ＰＣＩデバイス１９を検出するとともに、これらのレジスタから必要なデバイス情報を取得する（ステップＳ６２）。
【０１０４】
ここで、デバイス情報とは、ＰＣＩバス規格で定められたＰＣＩデバイスの属性情報および、ＰＣＩデバイス固有のデータの所在を示すＭＭＩＯレジスタ２１などである。
【０１０５】
次に、ＢＩＯＳ２２は、特別なＰＣＩコンフィギュレーション動作を使うことによって、ＰＣＩブリッジ１７、ＰＣＩデバイス１９が動作するために必要なメモリのサイズを読出す（ステップＳ６３）。
【０１０６】
次に、ＢＩＯＳ２２は、取得したメモリ空間アクセス用のアドレスのサイズを基に、チップセット１３に、Ｌｏｃａｌ  ＭＭＩＯアドレスレンジを割当てる（ステップＳ６４）。
【０１０７】
次に、ＢＩＯＳ２２は、チップセット１３に、ＰＣＩブリッジおよび、ＰＣＩデバイスを区画するセグメント番号を割当てる。なお、チップセット１３へのセグメント番号の割当ては初回、起動の際に決定済みである（ステップＳ６５）。
【０１０８】
その結果、ＢＩＯＳ２２は、Ｌｏｃａｌ  ＭＭＩＯアドレスレンジと、セグメント番号を基に、チップセットに有するＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを作成する（ステップＳ６６）。ＢＩＯＳ２２は、本装置が起動する度に、以上の初期設定を行う。
【０１０９】
なお、ステップＳ６６では、万が一、ＰＣＩデバイス１９のうちのどれかが、故障することで、ＢＩＯＳ２２に対してＰＣＩデバイスから応答がない場合は、本装置が起動する際に、当該故障のＰＣＩデバイスを除いて、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを作成する。
【０１１０】
ＢＩＯＳ２２は、一連のＢＩＯＳの処理を行った後に、ＯＳを起動する（不図示）。
【０１１１】
つづいて、ＯＳは、接続するＰＣＩデバイスを含むデバイスリストを作成する（ステップＳ６７）。
【０１１２】
その後、ＯＳは、ＰＣＩデバイスが格納している情報を取得する（ステップＳ６８）。
【０１１３】
その後、ＯＳは、ＰＣＩデバイスに合致するドライバを割当てる（ステップＳ６９）。
【０１１４】
ＯＳは、ＯＳがブートする度に以上の初期設定を行う。
【０１１５】
なお、ステップＳ６７では、万が一、ＰＣＩデバイス１９のうちのどれかが、故障することで、ＯＳに対してＰＣＩデバイスから応答がない場合は、本装置が起動する際に、当該故障のＰＣＩデバイスを除いて、デバイスリストを作成する。
【０１１６】
次に、ＯＳは、ＰＣＩデバイスにデータを書込むために、Ｇｌｏｂａｌ  ＭＭＩＯアドレスを、ＭＭＩＯアクセスレジスタ１４に設定する（ステップＳ７０）。
【０１１７】
その後、チップセット１３は、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１をキーにして、Ｇｌｏｂａｌ−Ｌｏｃａｌ  ＭＭＩＯアドレス変換テーブル１６を参照して、対応するＰＣＩブリッジ１９配下のセグメントを特定する（ステップＳ７１）。
【０１１８】
さらに、チップセット１３は、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１をキーにして、Ｇｌｏｂａｌ−Ｌｏｃａｌ  ＭＭＩＯアドレス変換テーブル１６を参照して、対応するＰＣＩデバイスのＬｏｃａｌ  ＭＭＩＯアドレスを特定する（ステップＳ７２）。
【０１１９】
なお、ステップＳ７１と、ステップＳ７２では、ＭＭＩＯアクセスレジスタ１４に、ＭＭＩＯアドレスレジスタ１５からのセグメント番号とＬｏｃａｌ  ＭＭＩＯアドレスとを、一旦、保有している。
【０１２０】
そして、チップセット１３は、Ｌｏｃａｌ  ＭＭＩＯアドレスに対応するＰＣＩデバイスのＭＭＩＯレジスタ２１にデータを書込む(ステップＳ７３)。
【０１２１】
以上により、ＣＰＵ１１は、ＯＳと協働して、ＰＣＩデバイス１９に対して必要なデータを書込むことができる。
【０１２２】
次に、ホットプラグの場合の動作について、図７を用いて説明する。
【０１２３】
図７は、本発明の第２の実施形態におけるアドレス空間変換装置のホットプラグからの動作シーケンス例を示すフローチャートである。ここでは、一例として読出し動作も含めたフローチャートを説明する。
【０１２４】
ここで、ホットプラグとは、操作者が、情報処理装置の稼動中に、その拡張スロットに搭載するＰＣＩデバイスを抜いたり、追加したり、もしくはＰＣＩデバイスを拡張スロットから抜いたあと、拡張スロットに追加したりすることである。
【０１２５】
なお、図６の起動からの動作フローチャートと同じ箇所は、説明を省略する。
【０１２６】
まず、本アドレス空間変換装置の操作者は、本装置の稼動中に、本装置の拡張スロットから、ＰＣＩデバイスをホットプラグする操作を行うことを、本装置に予め通知するために、組込み釦を押下する（ステップＳ８１）。
【０１２７】
また、ＢＩＯＳ２２は、操作者により、本装置が、稼動中にホットプラグの操作を行うことによって、ＰＣＩデバイスの構成が変化するので、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６の内容を更新する（ステップＳ８５）。
【０１２８】
ＢＩＯＳ２２は、本装置の操作者が、ホットプラグの操作を行う度に、上述のステップＳ８５を含む、それまでの初期設定を行う。
【０１２９】
なお、ステップＳ８５では、万が一、ＰＣＩデバイス１９のうちのどれかが、故障することで、ＢＩＯＳ２２に対してＰＣＩデバイスから応答がない場合で、組込み釦押下の際に、ステップＳ８５において、当該故障のＰＣＩデバイスを除いて、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを更新する。
【０１３０】
一連のＢＩＯＳの処理を行った後に、ＢＩＯＳ２２は、ＯＳを起動（不図示）したのち、ＯＳに対して、ＰＣＩデバイスの組込みを要求する(ステップＳ８６)。
【０１３１】
次に、データ読出しでは、ＯＳは、ＰＣＩデバイス１９からデータを読出すために、対象ＰＣＩデバイス１９のＧｌｏｂａｌ  ＭＭＩＯアドレス４１をチップセット１３が有するＭＭＩＯアクセスレジスタ１４に設定する（ステップＳ９０)。
【０１３２】
次に、チップセット１３は、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１をキーにして、Ｇｌｏｂａｌ−Ｌｏｃａｌ  ＭＭＩＯアドレス１６を参照して、対応するＰＣＩブリッジ１７配下のセグメント番号４２を特定する(ステップＳ９１)。
【０１３３】
その後、チップセット１３は、Ｇｌｏｂａｌ  ＭＭＩＯアドレス４１をキーにして、Ｇｌｏｂａｌ−Ｌｏｃａｌ  ＭＭＩＯアドレス１６を参照して、対応するＰＣＩデバイス１９の図示していないＬｏｃａｌ  ＭＭＩＯアドレスを特定する（ステップＳ９２）。
【０１３４】
そして、チップセット１３は、Ｌｏｃａｌ  ＭＭＩＯアドレスに対応する
ＰＣＩデバイス１９のＭＭＩＯレジスタ２１からデータを読出す(ステップＳ９３)。
【０１３５】
以上により、ＣＰＵ１１は、ＯＳと協働して、ＰＣＩデバイス１９に対して必要なデータを読込むことができる。
【０１３６】
これにより、本実施形態に係るアドレス空間変換装置によれば、処理ｂｉｔ数の大きなチップセット１３に設けたＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６を用いることにより、チップセット１３より処理ｂｉｔ数の小さい周辺デバイスである複数のＰＣＩブリッジ１７およびＰＣＩデバイス１９の物理アドレス空間を、ＰＣＩブリッジ１７およびその配下のＰＣＩデバイス１９を単位とする、セグメント毎に区画した上位の論理アドレス空間に変換することによって、接続可能なＰＣＩデバイス１９の数を増やすことができる。
【０１３７】
また、ＣＰＵ１１と協働して動作するＯＳからは、あたかもＣＰＵ１１や、チップセット1３と、ＰＣＩブリッジ１７や、ＰＣＩデバイス１９の処理ｂｉｔ数が同じに見えるように扱うことができる。
【０１３８】
また、チップセット1３に、アドレス空間変換を行う、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６を追加するだけで、ＯＳを改変することなく、大規模な入出力機能を有するアドレス空間変換装置を容易に構築できるという効果を奏することが出来る。
【０１３９】
さらに、ＣＰＵ、チップセットおよび、ＯＳ、アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ；以降、ＡＰと称する）ＳＷなど情報処理装置が有する主要な構成要素は、６４ｂｉｔ化されつつある過渡期にある中で、周辺デバイスであるＰＣＩブリッジやＰＣＩデバイスに、依然として３２ｂｉｔの部品が残留する装置でも、簡単なアドレス空間変換テーブルを埋め込んだチップセットに置き換えるだけで、上述した効果を奏することができる。
【０１４０】
即ち、本実施形態によれば、処理ｂｉｔ数の少なさに起因するアクセス空間の制約を、ＯＳを改変することなく回避することによって、大規模な入出力データを処理する情報処理装置を構築できるという効果を奏することができる。
【０１４１】
以上、本実施形態について、一例として、構成および動作を説明したが、必ずしも係る構成や動作に限定されない。
【０１４２】
＜第３の実施形態＞
次に、第２の実施形態を基本とする第３の実施形態について説明する。図８は、第３の実施形態に係るアドレス空間変換装置の概要を示すブロック図である。
【０１４３】
本実施形態は、第２の実施形態で説明した、図２に示すアドレス空間変換装置を、系統Ａと系統Ｂとによって二重化しており、ＣＰＵ−Ａ１０１と、ＣＰＵ−Ｂ１０２の配下にそれぞれに接続する、チップセット−Ａ１０３と、チップセット−Ｂ１０４は、それぞれが有するＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルによって、それぞれが拡張した、少なくとも１つ以上の、下位に接続するＰＣＩデバイスを有する。
【０１４４】
また、ＣＰＵ−Ａ１０１と、ＣＰＵ−Ｂ１０２は、チップセット−Ａ１０３と、チップセット−Ｂ１０４が、高速ホストバス１０５によって直接接続されることにより、双方のチップセットに有する、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを相互に参照することができる点が異なる。
【０１４５】
このため、以下の説明においては、本実施形態に係る特徴的な部分を中心にさらに詳しく説明すると共に、上述した第２の実施形態と同様な構成についての重複する説明は省略する。
【０１４６】
本実施形態に示す、二重化アドレス空間変換装置１００は、ＣＰＵ−Ａ１０１の配下に接続したチップセット−Ａ１０３と、配下にＰＣＩデバイスＡ、ＢならびにＰＣＩデバイスＣ、Ｄをそれぞれ接続するＰＣＩブリッジＡ、Ｂとを接続する系統Ａを有する。
【０１４７】
また、同様に、本二重化アドレス空間変換装置１００は、ＣＰＵ−Ｂ１０２の配下に接続したチップセット−Ｂ１０４と、配下にＰＣＩデバイスＥ、ＦならびにＰＣＩデバイスＧ、Ｈをそれぞれ接続するＰＣＩブリッジＣ、Ｄとを接続する系統Ｂを有する。
【０１４８】
ここで、ＣＰＵ−Ａ、ＣＰＵ−Ｂがそれぞれ有するＢＩＯＳは、チップセット−Ａ１０３とチップセット−Ｂ１０４とが高速ホストバス１０５によって接続されることにより、チップセット−Ａ１０３とチップセット−Ｂ１０４それぞれが有する、それぞれ図示していないＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを相互に参照したり、内容を書替えたりすることができる。
【０１４９】
また、チップセット−Ａ１０３、チップセット−Ｂ１０４は、それぞれのＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを相互に管理する、図８に図示していない故障代替管理テーブルをさらに、上位にそれぞれで有している。
【０１５０】
この故障代替管理テーブルは、高速ホストバス１０５によって、接続することにより、それぞれの系統の下位にあるＰＣＩデバイスの故障状況の監視と、故障した場合に、相互に代替するＰＣＩデバイスを提供することができる。
【０１５１】
ここで、例えば、系統Ａ側のＰＣＩデバイスＤ１０７が故障することにより、系統Ａ側のＢＩＯＳからのアクセスに応答できなくなった際に、系統Ａ側のＢＩＯＳは、自身の故障代替管理テーブルによって、ＰＣＩデバイスＤ１０７が故障したことを認識したのち、高速ホストバス１０５を使って、系統Ｂの故障代替管理テーブルおよび、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを参照する。
【０１５２】
そして、系統Ａ側のＢＩＯＳは、使われていないか、もしくは使用頻度の低い系統Ｂ側の、例えばＰＣＩデバイスＨ１０８に対して、系統Ｂ側のＰＣＩブリッジＤ１０６のセグメント、チップセット−Ｂ１０４および、高速ホストバス１０５を通して、チップセット−Ａ１０３に接続できるように、上述の双方の故障代替管理テーブルおよび、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルの内容を書き換える。
【０１５３】
なお、ＢＩＯＳは、ＰＣＩデバイスの故障の反映や、代替えにともなう、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルの書き換えの他に、ＢＩＯＳが作成するＰＣＩデバイスが要求するメモリ領域を記載する、図８に図示していない、メモリマップを書き換える。
【０１５４】
また、図示していないＯＳは、ＯＳが作成する、本装置に搭載しているＰＣＩデバイスの一覧である、図８に図示していないＰＣＩデバイスリストも書き換えることとする。
【０１５５】
また、操作者は、何れかのＰＣＩデバイス１９が故障して、ＢＩＯＳに対して応答できない場合は、随時、起動の際、もしくはホットプラグのために、組込み釦を押下した際のいずれかの際に、上述したＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル、メモリマップ、ＰＣＩデバイスリストに、当該故障ＰＣＩデバイス１９は、削除されることによって反映されなくなり、その結果、使用できないことを認識する。
【０１５６】
このために、操作者は、本アドレス空間変換装置が備える、上述のＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル、メモリマップ、ＰＣＩデバイスリストを表示するツールを使用する。
【０１５７】
ここで、代替する可能性のあるＰＣＩデバイスとしては、例えば、電気的もしくは、物理的な回線障害が生じたＮＩＣや、あるいは、周辺機器としては、例えば、機械的な動作箇所である、モータや、磁気ヘッドを有するハードディスクドライブ（以下、ＨＤＤと称する）などである。
【０１５８】
以上、本実施形態では、二重化したアドレス空間変換装置が有するいずれかのＰＣＩデバイスが故障した際に、その代替を行うことにより、信頼性が向上するという新たな効果を得る。
【０１５９】
なお、ＰＣＩデバイスが故障した場合だけでなく、系統Ａおよび系統Ｂのいずれかに接続している、例えば、希少なＰＣＩデバイスや、周辺機器に対して、他方の系統のアドレス変換テーブル、メモリマップ、ＰＣＩデバイスリストの内容を書き換えることにより、相手方に乗り入れて、共有するような使い方にも応用することができる。
【０１６０】
本実施形態に係る二重化アドレス空間変換装置によれば、処理ｂｉｔ数の大きなチップセットに設けたＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルを用いることにより、チップセットより処理ｂｉｔ数の小さい周辺デバイスであるＰＣＩブリッジおよびＰＣＩデバイスの物理アドレス空間を、ＰＣＩブリッジおよびその配下のＰＣＩデバイスを単位とする、セグメント毎に区画した上位の論理アドレス空間に変換することによって、接続可能なＰＣＩデバイスの数を増やすことができる。
【０１６１】
また、本実施形態に係る二重化アドレス空間変換装置によれば、双方のＧｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブルに加えて、高速ホストバス１０５および、双方に、故障代替管理テーブルを追加するだけで、ＯＳを改変することなく、大規模で、信頼性の高い、入出力機能を有するアドレス空間変換装置を容易に構築できるという効果を奏することができる。
【０１６２】
また、本実施形態に係る二重化アドレス空間変換装置によれば、このＰＣＩデバイスの数を増やしたアドレス空間変換装置は、さらに多重化することにより、さらに大規模で、信頼性の高い情報処理装置を実現できるという顕著な効果がある。
【０１６３】
即ち、本実施形態によれば、処理ｂｉｔ数の少なさに起因するアクセス空間の制約を回避することによって、大規模な入出力データを処理する情報処理装置を構築できるという効果を奏することができる。
【０１６４】
さらに特有の効果として、アドレス空間変換装置間を多重化することにより、故障したＰＣＩデバイスを制御対象から除外して、それを代替する正常なＰＣＩデバイスを提供することにより、信頼性が向上するという効果もある。
【０１６５】
以上、本実施形態について、一例として、構成および動作を説明したが、必ずしも係る構成や動作に限定されない。
【０１６６】
＜第４の実施形態＞
次に、第２の実施形態を基にした、第４の実施形態を説明する。図２に示す第２の実施形態では、チップセット１３内にＨＷのアドレス変換テーブルを用いたが、これをＳＷによるアドレス変換テーブルとし、かつ、図示していないＯＳとＢＩＯＳの連携を、Ｆｉｒｍ  Ｗｅａｒ（以下、「ＦＷ」と称する）でとることにより、ＣＰＵとＯＳ、ＢＩＯＳ、が協働することで、ＨＷであるチップセット１３を変更することなく、アドレス空間変換装置を実現する点が異なる。
【０１６７】
本実施形態について図を用いて説明する。図９は第４の実施形態に係るアドレス空間を変換するコンピュータ・プログラムの概要を示すソフトウェア（ＳＷ、ＦＷ）スタック図である。
【０１６８】
このため、以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２および第３の実施形態と同様な構成についての重複する説明は省略する。
【０１６９】
上述した第２や、第３の実施形態では、ＰＣＩデバイス１９が動作のために必要とするレジスタやバッファなどの情報をメモリ１２へ割り当てる際には、チップセット１３が有する特別なＰＣＩコンフィグレーション動作をＢＩＯＳ２２で制御することにより実現したが、本実施形態では、ＯＳ２０１と、ＦＷである、Ｓｙｓｔｅｍ  Ａｂｓｔｒｕｃｔｉｏｎ  Ｌａｙｅｒ（以下、「ＳＡＬ」と称する）というＳＷインタフェース、すなわち、ＦＷによるアドレス空間変換部２０３を使用することによりメモリ１２への割り当てを行う。
【０１７０】
これにより、ＳＷのサポートのみで、本ＳＷによるアドレス空間変換装置２００を実現することが出来る。
【０１７１】
本ＳＷによるアドレス空間変換装置２００のＢＩＯＳ２２は、本装置が起動する際、および、ＰＣＩデバイス１９を、拡張スロットから抜去したり、拡張スロットにＰＣＩデバイス１９を挿入したり、拡張スロットから抜去してから、ＰＣＩデバイス１９を拡張スロットに挿入したりする際に、搭載している、チップセット１３、ＰＣＩブリッジ１７を含む全てのＰＣＩデバイス１９を認識する。
【０１７２】
その際に、ＰＣＩデバイス１９に変更があれば、その動作に必要とするレジスタやバッファなどの情報をメモリ１２に割り当てる更新を行う。
【０１７３】
また、その際に、ＦＷ層にある、ＦＷによるアドレス空間変換部２０３を制御することによって、ＰＣＩバス規格に規定されている、チップセット１３が有する特別なモードである、ＰＣＩコンフィグレーション動作を間接的に実行することにより、ＰＣＩデバイス１９が動作に必要なメモリ空間をメモリ１２に割り当てることができる。
【０１７４】
すなわち、ＳＷの一種であるＦＷによるアドレス空間変換部２０３が、ＨＷであるチップセット１３の代わりを行う。
【０１７５】
ここで、上述の第２の実施形態で説明した、チップセット１３を用いたＨＷによるアドレス空間変換部の構成要素と、本実施形態が有するＦＷによるアドレス空間変換部２０３の構成要素を対比すると、ＭＭＩＯアクセスレジスタ１４は、ＭＭＩＯアクセスインタフェース２０４に、ＭＭＩＯアドレスレジスタ１５は、ＭＭＩＯアドレスインタフェース２０５に、Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル１６は、Ｇｌｏｂａｌ−ＬｏｃａｌアドレスＳＷ変換テーブル２０６にそれぞれ対応する。
【０１７６】
以降、ＯＳ２０１は、ＰＣＩデバイス１９へのデータの読書きを行う際には、第２の実施形態で説明したように、ＣＰＵ１１、メモリ１２、チップセット１３を使ってアクセスする。また、この際に、ドライバ２０２を用いてＰＣＩデバイス１９を制御する。
【０１７７】
これにより、処理ｂｉｔ数の少なさに起因するアクセス空間の制約を、ＨＷを改変することなく回避することによって、大規模な入出力データを処理する情報処理装置を構築できるという効果を奏することができる。
【０１７８】
さらに特有の効果として、ＨＷの改変を伴わないで、ＳＷの一部である、ＯＳおよびＦＷに、対応するソフトウェアプログラムを読込むことによってアドレス変換を行うために、より安価に実現できるという顕著な効果も有する。
【０１７９】
なお、上述した各実施形態を例に説明した本発明は、第２の実施形態のアドレス変換装置のＣＰＵ１１および協働する図示していないＯＳ、ならびにチップセット１３の動作説明において参照したフローチャート（図６および図７）の機能を実現可能なコンピュータ・プログラムとして供給した後、そのコンピュータ・プログラムをＣＰＵ１１および協働する図示していないＯＳおよびＦＷに読出して実行することによって達成される。
【０１８０】
また、前記の場合において、当該装置内へのコンピュータ・プログラムの供給方法は、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭ等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。
【０１８１】
そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【０１８２】
なお、上述した実施形態及びその変形例の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した実施形態及びその変形例により例示的に説明した本発明は、以下には限らない。即ち、
（付記１）
制御部と、
前記制御部によって制御されるアドレス空間変換部とを備え、
前記制御部は、前記アドレス空間変換部に接続された周辺デバイスに、前記アドレス空間変換部を制御することによってアクセスするに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、そのアドレス空間の区画を、前記アドレス空間変換部に割り当てた後に、その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定することを特徴とするアドレス空間変換装置。
（付記２）
前記制御部は、前記アドレス空間変換部を制御することによって、前記周辺デバイスにアクセスする際に、前記アドレス空間の区画である論理的な上位アドレスに、前記周辺デバイスの物理的なアドレスを下位に加えて成る、論理的なアドレスを元にテーブルを参照することにより、複数の前記周辺デバイスのうち、アクセス対象である周辺デバイスを特定することを特徴とする付記１に記載のアドレス空間変換装置。
（付記３）
前記テーブルは、前記論理的な上位アドレスに、前記周辺デバイスの前記物理的なアドレスを下位に加えて成る、論理的なアドレスと、前記周辺デバイスの前記物理的な下位アドレスとの間でアドレスを変換する、アドレス変換テーブルであることを特徴とする付記２に記載のアドレス空間変換装置。
（付記４）
前記制御部は、前記周辺デバイスにアクセスする際に、前記アドレス空間変換部に、前記アドレス空間の区画である論理的な上位アドレスの範囲を、セグメントとして割り当てることを特徴とする付記３に記載のアドレス空間変換装置。
（付記５）
前記制御部は、前記周辺デバイスにアクセスするために、前記アドレス空間変換部において特定するアドレスは、前記論理的な上位アドレスに、前記周辺デバイスの物理的なアドレスを下位に加えて成る、論理的なアドレスであることを特徴とする付記３もしくは４に記載のアドレス空間変換装置。
（付記６）
前記アドレス空間変換部が、前記周辺デバイスにアクセスするために特定するアドレスは、前記論理的なアドレスから変換した、前記周辺デバイスの物理的な下位アドレスであることを特徴とする付記３もしくは４に記載のアドレス空間変換装置。
（付記７）
前記アドレス空間変換テーブルは、前記セグメントに番号を付与したセグメント番号および、該セグメント番号に対応する前記論理的な上位アドレスに、前記周辺デバイスの前記物理的なアドレスを下位に加えて成る、論理的なアドレスとを紐付けるデータ構造を有することを特徴とする付記３もしくは４に記載のアドレス空間変換装置。
（付記８）
前記制御部は、前記アドレス空間変換部を制御して、前記制御部が備えるメモリのアドレス空間に、前記周辺デバイスが動作するために必要な領域をマッピングし、そのマッピングには、ＩＯマップドＩＯおよびメモリマップドＩＯのうち、少なくともメモリマップドＩＯを用いることを特徴とする付記１乃至６のいずれか１項に記載のアドレス空間変換装置。
（付記９）
前記アドレス空間変換部が有する、アドレス空間変換テーブルは、書き換え可能なハードウェアもしくはソフトウェアにより構成されることを特徴とする付記２、３もしくは７のいずれか１項に記載のアドレス空間変換装置。
（付記１０）
前記周辺デバイスは、ＰＣＩバスを拡張する３２ｂｉｔバス対応のＰＣＩブリッジおよび、該ＰＣＩブリッジに接続する３２ｂｉｔバス対応のＰＣＩバス制御チップを内蔵するＰＣＩデバイスから成ることを特徴とする付記２に記載のアドレス空間変換装置。
（付記１１）
前記制御部は、自装置が稼動中に、自装置の拡張スロットから、いずれかの前記ＰＣＩデバイスを抜去されるか、新たなＰＣＩデバイスを挿入されるか、もしくはいずれかの前記ＰＣＩデバイスを抜去されてから新たなＰＣＩデバイスを挿入されるのに応じて、前記アドレス空間変換部が有するアドレス空間変換テーブルの内容を更新することを特徴とする付記２、３、７、９のいずれか１項に記載のアドレス空間変換装置。
（付記１２）
前記制御部と、前記アドレス空間変換部と、前記周辺デバイスとを、それぞれ多重化したアドレス空間変換装置の、前記アドレス空間変換部同士を相互に接続することで、前記アドレス空間変換テーブルおよび、故障代替管理テーブルを相互に参照することにより、故障したいずれかの系統のいずれかのＰＣＩデバイスを、当該系統の前記アドレス空間変換テーブルから削除するとともに、当該系統の前記故障代替管理テーブルを用いて、他の系統から代替のＰＣＩデバイスを提供させることを特徴とする付記２、３、７、９、１０のいずれか１項に記載のアドレス空間変換装置。
（付記１３）
制御部と、その制御部によって制御されるアドレス空間変換部とを備えたアドレス空間変換装置において、前記アドレス空間変換部に接続された周辺デバイスにアクセスするに先立って、
所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、
そのアドレス空間の区画を、前記アドレス空間変換部に割り当て、
その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定することを特徴とするアドレス空間変換の制御方法。
（付記１４）
制御機能と、その制御機能によって制御されるアドレス空間変換機能とを備えたアドレス空間変換装置を制御するコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
前記制御機能は、前記アドレス空間変換機能によってアクセス可能に接続された周辺デバイスにアクセスするのに先立って、所定の上位アドレスの範囲を、記憶領域単位を成すアドレス空間に論理的に区画し、
そのアドレス空間の区画を、前記アドレス空間変換機能に割り当て、
その割り当てたアドレス空間の範囲において前記周辺デバイスの下位アドレスを特定する制御を実現させる
ことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【産業上の利用可能性】
【０１８３】
本発明は、上述した各実施形態には限定されず、例えばサーバの他、ワークステーション、パーソナルコンピュータ、ファクトリオートメーション等のＰＣＩデバイスを搭載する各種の情報処理装置に適用可能である。
【符号の説明】
【０１８４】
１    制御部
２    アドレス空間変換部
３    周辺デバイス
１０    アドレス空間変換装置
１１    ＣＰＵ
１２    メモリ
１３    チップセット
１４    ＭＭＩＯアクセスレジスタ
１５    ＭＭＩＯアドレスレジスタ
１６    Ｇｌｏｂａｌ−Ｌｏｃａｌアドレス変換テーブル
１７    ＰＣＩブリッジ
１８    ＭＭＩＯアドレスレジスタ
１９    ＰＣＩデバイス
２０    ＭＭＩＯアドレスレジスタ
２１    ＭＭＩＯレジスタ
３１    Ｇｌｏｂａｌ  ＭＭＩＯアドレス
３２    Ｌｏｃａｌ  ＭＭＩＯアドレス
３３    チップセットセグメント
３４    ブリッジセグメント
３５    ＰＣＩデバイス
４１    Ｇｌｏｂａｌ  ＭＭＩＯアドレス
４２    セグメント番号
５０    ＣＰＵ１１のメモリアドレス空間
５１    ＣＰＵ１１から見た、６４ｂｉｔメモリアドレス空間
５２    ＭＭＩＯ（４ＧＢ以下での旧ＭＭＩＯ空間）
５３    セグメント１  ＭＭＩＯ（４ＧＢ以上での新ＭＭＩＯ空間）
１００    二重化アドレス空間変換装置
１０１    ＣＰＵ−Ａ
１０２    ＣＰＵ−Ｂ
１０３    チップセット−Ａ
１０４    チップセット−Ｂ
１０５    高速ホストバス
１０６    ＰＣＩブリッジＤ
１０７    ＰＣＩデバイスＤ
１０８    ＰＣＩデバイスＨ
２００    ＳＷによるアドレス空間変換装置
２０１    ＯＳ
２０２    ドライバ
２０３    ＦＷによるアドレス空間変換部
２０４    ＭＭＩＯアクセスインタフェース
２０５    ＭＭＩＯアドレスインタフェース
２０６    Ｇｌｏｂａｌ−ＬｏｃａｌアドレスＳＷ変換テーブル
【図１】
2013114650.tif 000003
【図２】
2013114650.tif 000004
【図３】
2013114650.tif 000005
【図４】
2013114650.tif 000006
【図５】
2013114650.tif 000007
【図６】
2013114650.tif 000008
【図７】
2013114650.tif 000009
【図８】
2013114650.tif 000010
【図９】
2013114650.tif 000011