(57)【要約】  情報処理装置に、第一のメモリ制御装置からメモリモジュールにアクセスする経路と、第二のメモリ制御装置からメモリモジュールにアクセスする経路とを設ける。例えば、第一のメモリ制御装置が、処理装置に設けた、メモリモジュールに対して高速にアクセス可能なものであり、第二のメモリ制御装置が、当該処理装置に接続された、メモリモジュールが増設可能なものである場合、高速アクセスが要求されるメモリモジュールに対しては第一のメモリ制御装置からアクセス可能であり、メモリ容量の増大が求められるメモリモジュールに対しては第二のメモリ制御装置からアクセス可能である。そのため、メモリモジュールへのアクセス時間の短縮と、メモリ容量の増大を実現することができる。
2009034652.tif 000002
【特許請求の範囲】
【請求項１】
データが格納される第一のメモリと、
データが格納される第二のメモリと、
該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、
該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、
該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせる選択手段と、
を有することを特徴とする情報処理装置。
【請求項２】
該選択手段が該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
該選択手段が該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項１記載の情報処理装置。
【請求項４】
該情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、
該選択手段が該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項１記載の情報処理装置。
【請求項５】
該情報処理装置は、さらに、データを処理する処理装置を有し、
該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする請求項１記載の情報処理装置。
【請求項６】
該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする請求項５記載の情報処理装置。
【請求項７】
データが格納される第一のメモリと、データが格納される第二のメモリと、該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して該第一のメモリに対してデータの書き込み又は読み出しを行わせる第一の選択手段とを有する第一のシステムボードと、
データが格納される第三のメモリと、データが格納される第四のメモリと、該第三のメモリに対するデータの書き込み又は読み出しを制御する第三のメモリ制御装置と、該第三のメモリ及び該第四のメモリに対するデータの書き込み又は読み出しを制御する第四のメモリ制御装置と、該第三のメモリ制御装置又は該第四のメモリ制御装置のいずれか一つを選択して該第三のメモリに対してデータの書き込み又は読み出しを行わせる第二の選択手段とを有する第二のシステムボードと、
を有することを特徴とする情報処理装置。
【請求項８】
該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、
該第二の選択手段は該第四のメモリ制御装置を選択し、該第四のメモリ制御装置は、該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項７記載の情報処理装置。
【請求項９】
該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、
該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、
該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項７記載の情報処理装置。
【請求項１０】
該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、
該第一の選択手段は該第二のメモリ制御装置を選択し、該第二のメモリ制御装置は、該第一のメモリまたは該第二のメモリに対してデータの書き込み又は読み出しを行い、
該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項７記載の情報処理装置。
【請求項１１】
該第一のシステムボードは、さらに、データを処理する第一の処理装置を有し、
該第二のシステムボードは、さらに、データを処理する第二の処理装置を有し、
該第一のメモリ制御装置は、該第一の処理装置に設けられ、
該第三のメモリ制御装置は、該第二の処理装置に設けられていることを特徴とする請求項７記載の情報処理装置。
【請求項１２】
該第二のメモリ制御装置は、該第一の処理装置に接続され、
該第四のメモリ制御装置は、該第二の処理装置に接続されていることを特徴とする請求項１１記載の情報処理装置。
【請求項１３】
情報処理装置の制御方法において、
該情報処理装置が、データが格納される第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及びデータが格納される第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせることを特徴とする制御方法。
【請求項１４】
該情報処理装置が該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項１３記載の制御方法。
【請求項１５】
該情報処理装置が該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項１３記載の制御方法。
【請求項１６】
該情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、
該情報処理装置が該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項１３記載の制御方法。
【請求項１７】
該情報処理装置は、さらに、データを処理する処理装置を有し、
該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする請求項１３記載の制御方法。
【請求項１８】
該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする請求項１７記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
情報処理装置には、プロセッサ、システムコントローラ、メモリコントローラ及びメモリモジュール等の複数のデバイスから構成されるものがある。このような情報処理装置では、例えば、プロセッサがシステムコントローラを介してメモリコントローラにアクセスすることで、メモリモジュールに対してデータの書き込み又は読み出しを行う。【０００３】
半面、上述した情報処理装置では、メモリモジュールに対するデータの書き込み又は読み出し時には、必ずシステムコントローラを経由しなければならない。そのため、メモリモジュールに対してデータの書き込み又は読み出しを行うまでに時間がかかってしまう。【０００４】
そこで、例えば、プロセッサに搭載されたメモリコントローラが直接、管理しているメモリモジュールに対してメモリモジュールに対してデータの書き込み又は読み出しを行う情報処理装置がある。このような情報処理装置では、システムコントローラを経由せず、メモリコントローラが直接メモリモジュールに対してデータの書き込み又は読み出しを行える。そのため、メモリモジュールに対してデータの書き込み又は読み出しを行うまでにかかる時間を短縮することができる。【０００５】
しかし、通常１つのメモリインターフェースに実装できるメモリモジュールの枚数は決まっており、このような情報処理装置では、メモリインターフェースのピンの制限からメモリモジュールを増設することが困難となってしまう。その結果、情報処理装置のメモリ容量を大きくすることができなくなってしまう。【０００６】
先行技術文献としては下記のものがある。
【特許文献１】特開平０５−２１０６４５号公報
【特許文献２】特開平０５−２１６７５７号公報
【特許文献３】特開平１０−２４０６９６号公報
【特許文献４】特開２００３−００６１７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、メモリモジュールへのアクセス時間を短縮でき、かつ、メモリ容量を増大することができる情報処理装置を実現することである。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、データが格納される第一のメモリと、データが格納される第二のメモリと、該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせる選択手段とを有することを特徴とする。【０００９】
本発明の情報処理装置は、該選択手段が該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。【００１０】
本発明の情報処理装置は、該選択手段が該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。【００１１】
本発明の情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、該選択手段が該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。【００１２】
本発明の情報処理装置は、さらに、データを処理する処理装置を有し、該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする。【００１３】
本発明の情報処理装置は、該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする。【００１４】
本発明の情報処理装置は、データが格納される第一のメモリと、データが格納される第二のメモリと、該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して該第一のメモリに対してデータの書き込み又は読み出しを行わせる第一の選択手段とを有する第一のシステムボードと、データが格納される第三のメモリと、データが格納される第四のメモリと、該第三のメモリに対するデータの書き込み又は読み出しを制御する第三のメモリ制御装置と、該第三のメモリ及び該第四のメモリに対するデータの書き込み又は読み出しを制御する第四のメモリ制御装置と、該第三のメモリ制御装置又は該第四のメモリ制御装置のいずれか一つを選択して該第三のメモリに対してデータの書き込み又は読み出しを行わせる第二の選択手段とを有する第二のシステムボードとを有することを特徴とする。【００１５】
本発明の情報処理装置は、該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、該第二の選択手段は該第四のメモリ制御装置を選択し、該第四のメモリ制御装置は、該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。【００１６】
本発明の情報処理装置は、該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。【００１７】
本発明の情報処理装置は、該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、該第一の選択手段は該第二のメモリ制御装置を選択し、該第二のメモリ制御装置は、該第一のメモリまたは該第二のメモリに対してデータの書き込み又は読み出しを行い、該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。【００１８】
本発明の情報処理装置は、該第一のシステムボードは、さらに、データを処理する第一の処理装置を有し、該第二のシステムボードは、さらに、データを処理する第二の処理装置を有し、該第一のメモリ制御装置は、該第一の処理装置に設けられ、該第三のメモリ制御装置は、該第二の処理装置に設けられていることを特徴とする。【００１９】
本発明の情報処理装置は、該第二のメモリ制御装置は、該第一の処理装置に接続され、該第四のメモリ制御装置は、該第二の処理装置に接続されていることを特徴とする。【００２０】
本発明の情報処理装置の制御方法は、データが格納される第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及びデータが格納される第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせることを特徴とする。【００２１】
本発明の情報処理装置の制御方法は、該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。【００２２】
本発明の情報処理装置の制御方法は、該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。【００２３】
本発明の情報処理装置の制御方法は、該情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。【００２４】
本発明の情報処理装置の制御方法は、該情報処理装置は、さらに、データを処理する処理装置を有し、該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする請求項１３記載の制御方法。【００２５】
本発明の情報処理装置の制御方法は、該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、情報処理装置に、第一のメモリ制御装置からメモリモジュールにアクセスする経路と、第二のメモリ制御装置からメモリモジュールにアクセスする経路とを設けることができる。例えば、第一のメモリ制御装置が、処理装置に設けた、メモリモジュールに対して高速にアクセス可能なものであり、第二のメモリ制御装置が、当該処理装置に接続された、メモリモジュールが増設可能なものである場合、高速アクセスが要求されるメモリモジュールに対しては第一のメモリ制御装置からアクセス可能であり、メモリ容量の増大が求められるメモリモジュールに対しては第二のメモリ制御装置からアクセス可能である。そのため、メモリモジュールへのアクセス時間の短縮と、メモリ容量の増大を実現することができる。
【図面の簡単な説明】
【００２７】
【図１】情報処理装置のハードウェア構成を表した図（その１）である。
【図２】システムボードを表した図（その１）である。
【図３】システムコントローラを表した図である。
【図４】拡張サブメモリコントローラを表した図である。
【図５】レジスタとシステムマネージメントボードとの関係を表した図である。
【図６】本実施形態におけるメモリの割り当ての例を表した図である。
【図７】本実施形態におけるローカルアドレステーブルのデコードの例を表した図である。
【図８】複数のモードの混在例を表す図である。
【図９】モード１によって実現可能なシステムを表す図である。
【図１０】モード１におけるメモリモジュールへのアクセスを表す図（その１）である。
【図１１】モード１におけるメモリモジュールへのアクセスを表す図（その２）である。
【図１２】モード１におけるメモリモジュールへのアクセスを表す図（その３）である。
【図１３】モード２によって実現可能なシステムを表す図である。
【図１４】モード２におけるメモリモジュールへのアクセスを表す図（その１）である。
【図１５】モード２におけるメモリモジュールへのアクセスを表す図（その２）である。
【図１６】モード２におけるメモリモジュールへのアクセスを表す図（その３）である。
【図１７】モード３によって実現可能なシステムを表す図である。
【図１８】モード３におけるメモリモジュールへのアクセスを表す図（その１）である。
【図１９】モード３におけるメモリモジュールへのアクセスを表す図（その２）である。
【図２０】モード３におけるメモリモジュールへのアクセスを表す図（その３）である。
【図２１】モード１、３を混在させることによって実現可能なシステムを表す図である。
【図２２】モード１、３混在におけるメモリモジュールへのアクセスを表す図である。
【図２３】システムボードを表した図（その２）である。
【図２４】システムボードを表した図（その３）である。
【図２５】プロセッサによるメモリコントローラの無効機能を表した図である。
【図２６】情報処理装置のハードウェア構成を表した図（その２）である。
【符号の説明】
【００２８】
０  情報処理装置
１、２、３、４  プロセッサ
１１、２１、３１、４１  メモリコントローラ
１０、１２、１３、１４、１５、２０、２２、２３、２４、２５、３０、３２、３３、３４、３５、４０、４２、４３、４４、４５  システムバス
１６、１７、１８、２６、２７、２８、３６、３７、３８、４６、４７、４８  メモリモジュール
１９、３９  コア
５、６、７、８、１０６４  マルチプレクサ
５１、６１、７１、８１  拡張サブメモリコントローラ
１００  システムボード
１０１、１０２  システムコントローラ
１０４  システムバスコントローラ
１０５  メモリコントローラ
１０６  拡張メモリコントローラ
１１０、４１０、５１０、８１０、１０２２、１０４４  設定レジスタ
２００  Ｉ／Ｏボード
２０２、２０４  バス
３００  クロスバ
４００  システムマネージメントボード
４０１、４０２、４０３、４０４  システムマネージメントバス
５１２、５１３、５１４、５１５、５１６、５１８  バス
５２０、１０６９  データバッファ
５２２  論理積回路
５２４、１０６２  リクエストバッファ
５２６、５３２、５３４、１０４４  設定レジスタ
５２８、５３６、５３８  セレクタ
５３０  ローカルアドレステーブル
６００  メモリ空間
７０４  システムアドレス
７０６  メモリ番号
７０８  メモリローカルアドレス
１０４２  アドレスチェック手段
１０６６  アービタ
１０６８  アドレステーブル
【発明を実施するための最良の形態】
【００２９】
以下に図面を用いて本実施形態について説明する。【００３０】
（情報処理装置）
図１は、本実施形態における情報処理装置０を表す。情報処理装置０は、例えば、４つのシステムボード１００及び４つの入出力（Ｉ／Ｏ：Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）ボード２００から構成される。なお、システムボード１００及びＩ／Ｏボードの数は任意に設定することができる。【００３１】
システムボード１００は、プロセッサ、システムコントローラ、メモリコントローラ及びメモリモジュールを有する。システムコントローラは、プロセッサから送信されてくる命令を統括して制御する。システムコントローラは、プロセッサからの命令に基づき、メモリコントローラを制御する。また、システムコントローラは、メモリモジュールに書き込むデータをメモリコントローラに送信する。メモリコントローラは、メモリモジュールへのメモリアクセスを行い、データの書き込み又は読み出しを行う。また、メモリコントローラは、メモリモジュールから読み出したデータをシステムコントローラに送信する。メモリモジュールとは、例えば、複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が搭載されたデュアルインラインメモリモジュール（ＤＩＭＭ：Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）である。【００３２】
Ｉ／Ｏボード２００は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイス等を有している。Ｉ／Ｏボード２００は、磁気ディスク装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や構内通信網（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のＩ／Ｏと接続するためのものである。【００３３】
システムボード１００及びＩ／Ｏボード２００は、任意のシステムボード１００及びＩ／Ｏボード間のデータ転送を行うためにクロスバ３００と接続されている。クロスバ３００は、アドレスの送受信を行うアドレスクロスバ及びデータの送受信を行うデータクロスバから構成される。図１において、クロスバ３００は概念的にアドレスクロスバとデータクロスバとを合わせて示しているものとする。【００３４】
情報処理装置０は、さらに、システムボード１００、Ｉ／Ｏボード２００及びクロスバ３００を管理するシステムマネージメントボード４００を有している。システムマネージメントバス４００はシステムマネージメントバス４０１を介してシステムボード１００と接続されている。また、システムマネージメントバス４００はシステムマネージメントバス４０２を介してクロスバ３００と接続されている。システムマネージメントバス４００はシステムマネージメントバス４０３を介してＩ／Ｏボード２００と接続されている。【００３５】
（システムボード）
図２に、本実施形態におけるシステムボード１００を表す。システムボード１００は、クロスバ（図示せず）に接続される。当該クロスバには、他のシステムボードも接続される。システムボード１００には、クロスバを介して他のシステムボードからリクエストが送信される。システムボード１００は、例えば、プロセッサ１、２、３、４、各プロセッサに搭載されたメモリコントローラ１１、２１、３１、４１、各メモリコントローラに接続されたシステムコントローラ１０２及びシステムコントローラ１０２に接続された複数のメモリモジュールを有する。ここで、一般に、プロセッサ内のメモリコントローラは、自身の管理下にあるメモリモジュールにアクセスする際には、高速アクセスが可能である。しかし、メモリインターフェースのピンの制限から自身の管理下にあるメモリモジュールを増設することは困難である。【００３６】
プロセッサ１、２、３、４はそれぞれ互いに直結している。あるプロセッサが他のプロセッサが管理しているメモリモジュールに対してアクセスを行う場合は、当該他のプロセッサに対して直接アクセスを行う。【００３７】
システムコントローラ１０２は、システムバスコントローラ１０４を有している。システムバスコントローラ１０４は、プロセッサ及びクロスバ（図示せず）とデータやリクエストの送受信を行う。システムバスコントローラ１０４は拡張メモリコントローラ１０６と接続されている。拡張メモリコントローラ１０６は、拡張サブメモリコントローラ５１、６１、７１、８１を有している。拡張サブメモリコントローラ５１は、プロセッサ１、マルチプレクサ５及びメモリモジュール１７、１８と接続されている。なお、拡張サブメモリコントローラには、メモリモジュールが増設可能である。これによって、メモリ容量を増大させることができる。マルチプレクサ５はさらにメモリモジュール１６と接続されている。他の拡張サブメモリコントローラ６１、７１及び８１も同様に、プロセッサ、マルチプレクサ及びメモリモジュールと接続されている。例えば、マルチプレクサ５は、プロセッサ１から送信されるリクエストと、拡張サブメモリコントローラ５１から送信されるリクエストのいずれか一つを選択して、メモリモジュール１６に送信する。他のマルチプレクサ６、７及び８も同様である。なお、システムコントローラ１０２、拡張メモリコントローラ１０６及び拡張サブメモリコントローラ５１等については後述する。【００３８】
（システムコントローラ）
図３は、システムコントローラ１０２を表す。システムコントローラ１０２は、システムバスコントローラ１０４及び拡張メモリコントローラ１０６を有している。【００３９】
システムバスコントローラ１０４は、アドレスチェック手段１０４２及び設定レジスタ１０４４を有している。システムバスコントローラ１０４は、クロスバを介して他のシステムボード（図示せず）からメモリアクセスのリクエストが送信されてきたか否かを検出する。また、システムバスコントローラ１０４は、ローカルに接続されているプロセッサ１〜４のシステムバスからメモリアクセスのリクエストが送信されてきたか否かも検出する。当該リクエストは、他のシステムボードからクロスバを介し、さらに、バス２０２を通じてシステムバスコントローラ１０４に送信される。また、当該リクエストは、プロセッサ１〜４からバス２０４を通じてシステムバスコントローラ１０４に送信される。システムバスコントローラ１０４がメモリアクセスのリクエストが送信されてきたことを検出すると、アドレスチェック手段１０４２は、当該リクエストが有しているアドレスに基づいて、当該リクエストがシステムコントローラ１０２が管理しているメモリモジュールへのリクエストであるか否かを判定する。【００４０】
システムバスコントローラ１０４に送信されてきたリクエストが、システムコントローラ１０２が管理しているメモリモジュールへのリクエストである場合、アドレスチェック手段１０４２は、当該リクエストを、拡張メモリコントローラ１０６へ送信する。一方、システムバスコントローラ１０４に送信されてきたリクエストが、システムコントローラ１０２が管理しているメモリモジュールへのリクエストでない場合、アドレスチェック手段１０４２は、クロスバを介して当該リクエストを送信すべき他システムボード上のシステムコントローラに送信する。【００４１】
また、クロスバ及びプロセッサ１〜４からデータの書き込み要求（リクエスト）があった場合、システムバスコントローラ１０４は、当該リクエストと共にクロスバあるいはプロセッサ１〜４から受け取ったライトデータも拡張メモリコントローラ１０６へ送信する。【００４２】
なお、アドレスチェック手段１０４２は、設定レジスタ１０４４によって有効、無効が切り替えられる。さらに、設定レジスタ１０４４は、システムマネージメントボードによって設定される。システムマネージメントボードは、システムバスコントローラ１０４に接続される。システムマネージメントボードについては後述する。【００４３】
（拡張メモリコントローラ）
拡張メモリコントローラ１０６は、リクエストバッファ１０６２、マルチプレクサ１０６４、アービタ１０６６、アドレステーブル１０６８、拡張サブメモリコントローラ５１、６１、７１、８１及びデータバッファ１０６９を有している。拡張サブメモリコントローラ５１、６１、７１及び８１には、バス２０４を通じてプロセッサ１〜４からリクエストが送信される。【００４４】
リクエストバッファ１０６２には、システムバスコントローラ１０４からリクエストが送信される。リクエストバッファ１０６２は当該リクエストを格納する。アービタ１０６６は、例えば、リクエストのＩＤに基づいて、アービトレーションを行う。そして、アービタ１０６６は、実行すべきリクエストをマルチプレクサ１０６４に通知する。マルチプレクサ１０６４は、アービタ１０６６からの通知に基づいて、実行すべきリクエストを選択する。マルチプレクサ１０６４は、リクエストバッファ１０６２から選択したリクエストと、アドレステーブル１０６８とに基づいて、当該リクエストを送信するメモリモジュールを決定する。そして、マルチプレクサ１０６４は、選択したリクエストを決定したメモリモジュールを管理している拡張サブメモリコントローラに送信する。ここで、例えば、リクエストを送信すべきメモリモジュールがメモリモジュール３８である場合、メモリモジュール３８を管理している拡張サービスメモリコントローラ７１に選択したリクエストを送信する。拡張サブメモリコントローラ７１は、受信したリクエストをメモリモジュール３８に送信する。なお、図３においては、メモリモジュール１８、２８、３８及び４８のみを図示している。【００４５】
また、データバッファ１０６９には、システムバスコントローラ１０４からライトデータが送信される。データバッファ１０６９は当該ライトデータを格納する。そして、拡張メモリコントローラ１０６は、アービタ１０６６が選択したリクエストに基づいて、当該ライトデータを送信すべきメモリモジュールに送信する。ここで、例えばライトデータを送信すべきメモリモジュールがメモリモジュール４６である場合、メモリモジュール４６を管理する拡張メモリコントローラ８１にデータバッファ１０６９内に格納されたライトデータを送信する。拡張メモリコントローラ８１は、受信したライトデータをメモリモジュール４６（図２において表したメモリモジュール４６）に送信する。【００４６】
本実施形態では、情報処理装置０はモード１、２、３に応じた動作を行う。モード１では、プロセッサに搭載されたメモリコントローラがメモリモジュールに直接アクセスする。モード２では、プロセッサに搭載されたメモリコントローラの動作を無効にする。そして、プロセッサはシステムコントローラに搭載された拡張メモリコントローラを介してメモリモジュールにアクセスする。モード３では、システムコントローラに搭載された拡張メモリコントローラとプロセッサとの関係を無効にする。そして、プロセッサやクロスバからシステムバスコントローラ１０４を介して拡張メモリコントローラにアクセスする。さらに、モード３では拡張メモリコントローラがメモリモジュールにアクセスする。【００４７】
即ち、拡張メモリコントローラ１０６は、上述したモード１、２、３に応じた動作をする。モード１、２の場合、システムバスコントローラ１０４は、メモリアクセスのリクエストをリクエストバッファ１０６２に送信しない。設定レジスタ１０４４がアドレスチェック手段１０４２を無効にしているからである。モード３の場合、システムバスコントローラ１０４は、メモリアクセスのリクエストをリクエストバッファ１０６２に格納する。設定レジスタ１０４４がアドレスチェック手段１０４２を有効にしているからである。【００４８】
ここで、システムマネージメントボード４００について説明する。図５にシステムマネージメントボード４００とシステムボード１００との関係を表す。システムマネージメントボード４００は、システムバスコントローラ１０４が有する設定レジスタ１０４４、拡張メモリコントローラ１０６が有する設定レジスタ１０２２、拡張サブメモリコントローラ５１が有する設定レジスタ５１０及び、プロセッサ１に搭載されたメモリコントローラ１１が有する設定レジスタ１１０にシステムマネージメントバス４０４を介して接続されている。システムマネージメントボード４００が設定レジスタを管理することで、拡張サブメモリコントローラ５１やメモリコントローラ１１等を有効にするか無効にするかを設定することができる。これによって、情報処理装置０において様々なモードを実現することができる。なお、拡張サブメモリコントローラ５１以外の拡張サブメモリコントローラも同様に設定レジスタを有しており、システムマネージメントボード４００に接続されている。例えば、拡張サブメモリコントローラ８１は設定レジスタ８１０を有している。また、プロセッサ１以外のプロセッサに搭載されたメモリコントローラも設定レジスタを有しており、システムマネージメントボード４００に接続されている。例えば、プロセッサ４に搭載されたメモリコントローラ４１は設定レジスタ４１０を有する。【００４９】
（拡張サブメモリコントローラ）
図４に拡張サブメモリコントローラ５１を表す。拡張サブメモリコントローラ５１は、設定レジスタ５２６、設定レジスタ５３２、設定レジスタ５３４、論理積回路５２２、データバッファ５２０、リクエストバッファ５２４、セレクタ５２８、ローカルアドレステーブル５３０、セレクタ５３６、セレクタ５３８から構成される。なお、図４では、拡張サブメモリコントローラ５１のみを図示し、他の拡張サブメモリコントローラ６１、７１及び８１については図示していないが、他の拡張サブメモリコントローラの構成も拡張サブメモリコントローラ５１と同様である。【００５０】
（モード１）
まずは、モード１の場合について説明する。ここでは、プロセッサ１がメモリモジュール１６をアクセスする状況を想定する。【００５１】
モード１では、プロセッサがその内部に有するメモリコントローラにより、バス５１２を通じてメモリモジュール１６に対して直接メモリアクセスを行う。システムマネージメントボード４００は、例えば、プロセッサ１に搭載されたメモリコントローラ１１が有効となるように、プロセッサ１の設定レジスタ１１０を設定する。また、システムマネージメントボード４００は、例えば、拡張サブメモリコントローラ５１が無効となるように、設定レジスタ５１０を設定する。設定レジスタ５３４は、セレクタ５３８がバス５１２を選択するように、システムマネージメントボード４００によって設定される。【００５２】
モード１の場合、プロセッサ１からバス５１２を通じてメモリモジュール１６に送信されるリクエストは、プロセッサ１に搭載されたメモリコントローラ１１によって、システムアドレスからローカルアドレスに既に変換されている。具体的には、メモリコントローラ１１が有しているアドレステーブルに基づいて、当該リクエストはシステムアドレスからローカルアドレスに変換される。そのため、拡張サブメモリコントローラ５１がリクエストのアドレス変換を行う必要がない。ゆえに、リクエストを不必要にバッファやアドレステーブルを経由させることなく、メモリモジュール１６へ送信することができる。本実施形態においては、リクエストをセレクタ５３８のみを通過させることで、プロセッサ１はメモリモジュール１６にアクセスすることが可能になる。【００５３】
また、本実施形態においては、設定レジスタ５３４によって、セレクタ５３８の選択パスはバス５１２側に固定されている。そのため、セレクタ５３８が動的に動くことによって生じるリクエストの送信の遅延がない。【００５４】
なお、書き込み要求があった場合は、プロセッサ１はライトデータをバス５１２を介してセレクタ５３８に出力する。セレクタ５３８は、当該ライトデータをメモリモジュール１６に出力する。【００５５】
ここで、図９にモード１によって実現することができるシステムの一例を表す。図９はシステムを模式的に表している。プロセッサ１、２、３、４はそれぞれ互いに直結されている。各プロセッサ１〜４がメモリコントローラ１１〜４１を搭載しているため、各々のメモリコントローラが管理しているメモリモジュールへのアクセスが速くなる。例えば、プロセッサ１は、メモリコントローラ１１からメモリモジュール１６に対してリクエストを送信することができる。また、例えば、プロセッサ１は、プロセッサ３のメモリコントローラ３１からメモリモジュール３６に対してリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２を介して、プロセッサ３のメモリコントローラ３１からメモリモジュール３６に対してリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２及びクロスバ３００を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ２、３及び４も同様なので、その説明を省略する。【００５６】
また、ここで、図１０、図１１及び図１２に、モード１におけるシステムの動作を表す。まず、図１０を用いて各部について説明する。プロセッサ１は、メモリコントローラ１１、システムバス１２、１３、１４及び１５を有する。メモリコントローラ１１は、リクエストをマルチプレクサ５又は拡張サブメモリコントローラ５１に送信する。システムバス１２〜１５は他の部との間でリクエストの送受信を行う。例えば、システムバス１２は、プロセッサ２のシステムバス２４との間でリクエストの送受信を行う。また、例えば、システムバス１３は、プロセッサ３のシステムバス３３との間でリクエストの送受信を行う。また、例えば、システムバス１４は、プロセッサ４のシステムバス４２との間でリクエストの送受信を行う。また、例えば、システムバス１５は、システムバスコントローラ１０４との間でリクエストの送受信を行う。プロセッサ２も同様にメモリコントローラ２１、システムバス２２、２３、２４及び２５を有する。プロセッサ３も同様にメモリコントローラ３１、システムバス３２、３３、３４及び３５を有する。プロセッサ４も同様にメモリコントローラ４１、システムバス４２、４３、４４及び４５を有する。【００５７】
図１０に、プロセッサ１が管理しているメモリモジュール１６へアクセスする場合のシステムの動作を表す。プロセッサ１が有するコア１９が、メモリコントローラ１１を介してメモリモジュール１６にリクエストを送信する。この場合、拡張サブメモリコントローラ５１等は無効となっている。また、プロセッサ１はメモリコントローラ１１を介してメモリモジュール１６へアクセスするため、プロセッサ１はメモリモジュール１７、１８にアクセスしない。【００５８】
図１１に、あるプロセッサが他のプロセッサが管理しているメモリモジュールへアクセスする場合のシステムの動作を表す。ここでは、プロセッサ１とプロセッサ３との対応について説明する。まず、プロセッサ３が有するコア３９が、システムバス３３を介してプロセッサ１のシステムバス１３にリクエストを送信する。システムバス１３は、プロセッサ３から受信したリクエストを、メモリコントローラ１１を介してメモリモジュール１６に送信する。【００５９】
図１２に、クロスバを介して互いに接続されるシステムボード間でのメモリモジュールアクセスについて説明する。図１２は、あるシステムボードに搭載されたプロセッサ（図示せず）が、他のシステムボードに搭載されたプロセッサが管理しているメモリモジュールへアクセスする場合のシステムの動作を表す。まず、あるシステムボードに搭載されたプロセッサが、クロスバ３００を介してリクエストをプロセッサ１のシステムバス１５に送信する。システムバス１５は、受信したリクエストをメモリコントローラ１１を介してメモリモジュール１６に送信する。【００６０】
以上、説明したようにモード１では、リクエストを不必要にバッファやアドレステーブルを経由させることなく、メモリモジュール１６へ送信することができる。ゆえに、プロセッサとメモリモジュールが直結しているシステムにおいて、プロセッサは直結しているメモリモジュールに対して最小限のメモリアクセスレイテンシ低下でメモリアクセスが可能である。【００６１】
（モード２）
次に、モード２の場合について説明する。モード２では、プロセッサが、拡張サブメモリコントローラを介してメモリモジュールにメモリアクセスを行う。ここでは、プロセッサ１がいずれかのメモリモジュール１６〜１８をアクセスする状況を想定する。システムマネージメントボード４００は、例えば、プロセッサ１に搭載されたメモリコントローラ１１が無効となるように、設定レジスタ１１０を設定する。また、システムマネージメントボード４００は、例えば、拡張サブメモリコントローラ５１が有効となるように、設定レジスタ５１０を設定する。プロセッサ１は、バス５１２を通じてリクエストバッファ５２４にリクエストを送信する。リクエストバッファ５２４は受信したリクエストを格納する。【００６２】
このように、モード２では、プロセッサ１に搭載されたメモリコントローラ１１を介さずに、リクエストをプロセッサ１からリクエストバッファ５２４に送信する。そのため、リクエストが上位の拡張メモリコントローラ１０６の入力と同じシステムバスのフォーマットで入力される。ゆえに、リクエストが有するシステムアドレスをローカルアドレステーブル５３０に基づいて、メモリモジュール用のローカルアドレスに変換してメモリアクセスを実行する必要がある。【００６３】
設定レジスタ５２６は、セレクタ５２８がリクエストバッファ５２４の出力を選択するように、設定レジスタ５３２は、セレクタ５３６がバス５１３を選択するように、そして、設定レジスタ５３４は、セレクタ５３８がバス５１５を選択するように、それぞれシステムマネージメントボード４００によって設定される。リクエストバッファ５２４は、格納しているリクエストをセレクタ５２８に出力する。セレクタ５２８は、当該リクエストをローカルアドレステーブル５３０に出力する。【００６４】
拡張サブメモリコントローラ５１は、ローカルアドレステーブル５３０に基づいて、当該リクエストが有するシステムアドレスをローカルアドレスに変換する。拡張サブメモリコントローラ５１は、当該リクエストをメモリモジュール１７、１８に送信すべきと判断した場合は、当該リクエストをバス５１３を介してセレクタ５３６に出力する。セレクタ５３６は、当該リクエストをメモリモジュール１７または１８に出力する。一方、拡張サブメモリコントローラ５１は、当該リクエストをメモリモジュール１６に送信すべきと判断した場合は、当該リクエストをバス５１５を介してセレクタ５３８に出力する。セレクタ５３８は、当該リクエストをメモリモジュール１６に出力する。【００６５】
なお、書き込み要求があった場合は、プロセッサ１は、バス５１２を介してライトデータをデータバッファ５２０に格納する。拡張サブメモリコントローラ５１は、上述したローカルアドレスに基づいて、当該ライトデータを送信すべきメモリモジュールを決定する。拡張サブメモリコントローラ５１は、当該ライトデータをメモリモジュール１７、１８に送信すべきと判断した場合は、当該ライトデータをバス５１３を介してセレクタ５３６に出力する。セレクタ５３６は、当該ライトデータをメモリモジュール１７または１８に出力する。一方、拡張サブメモリコントローラ５１は、当該ライトデータをメモリモジュール１６に送信すべきと判断した場合は、当該ライトデータをバス５１５を介してセレクタ５３８に出力する。セレクタ５３８は、当該ライトデータをメモリモジュール１６に出力する。【００６６】
ここで、図１３にモード２によって実現することができるシステムの一例を表す。図１３はシステムを模式的に表している。各プロセッサ１〜４は、それぞれ拡張サブメモリコントローラ５１〜８１を介してメモリモジュールへのアクセスを行うため、メモリモジュールを増設することができる。例えば、プロセッサ１は、システムバス１０から拡張サブメモリコントローラ５１を介して、メモリモジュール１６、１７及び１８に対してリクエストを送信することができる。また、例えば、プロセッサ１は、プロセッサ３のシステムバス３０から拡張サブメモリコントローラ７１を介して、メモリモジュール３６、３７及び３８に対してリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２を介して、プロセッサ３のシステムバス３０から拡張サブメモリコントローラ７１を介して、メモリモジュール３６、３７及び３８に対してリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２及びクロスバ３００を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ２、３及び４も同様なので、その説明を省略する。【００６７】
また、ここで、図１４、図１５及び図１６にモード２におけるシステムの動作を表す。まず、図１４を用いて各部について説明する。プロセッサ１は、システムバス１０を有する。システムバス１０は、拡張サブメモリコントローラ５１にリクエストを送信する。プロセッサ２も同様にシステムバス２０を有する。プロセッサ３も同様にシステムバス３０を有する。プロセッサ４も同様にシステムバス４０を有する。また、図１０を用いて説明したものについてはその説明を省略する。【００６８】
図１４に、プロセッサ１が管理している拡張サブメモリコントローラ５１からメモリモジュールへアクセスする場合のシステムの動作を表す。プロセッサ１が有するコア１９が、システムバス１０を介して拡張サブメモリコントローラ５１にリクエストを送信する。さらに、拡張サブメモリコントローラ５１は、当該リクエストをローカルアドレステーブル５３０に基づいて、メモリモジュール１６、１７及び１８のいずれかに送信する。この場合、プロセッサ１内のメモリコントローラ１１等（図示せず）は無効となっている。【００６９】
図１５に、あるプロセッサが他のプロセッサが管理している拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。ここでは、プロセッサ１とプロセッサ３との対応について説明する。まず、プロセッサ３が有するコア３９が、システムバス３３を介してプロセッサ１のシステムバス１３にリクエストを送信する。システムバス１３は、プロセッサ３から受信したリクエストをシステムバス１０を介して拡張サブメモリコントローラ５１に送信する。さらに、拡張サブメモリコントローラ５１は、当該リクエストのローカルアドレスに基づいて、当該リクエストをメモリモジュール１６、１７及び１８のいずれかに送信する。【００７０】
図１６に、あるシステムボードに搭載されたプロセッサ（図示せず）が、他のシステムボードに搭載されたプロセッサが管理している拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。この場合、システムマネージメントボード４００によって、システムバスコントローラ１０４は有効になっている。まず、あるシステムボードに搭載されたプロセッサが、クロスバ３００を介してリクエストをプロセッサ１のシステムバス１５に送信する。システムバス１５は、受信したリクエストをシステムバス１０を介して拡張サブメモリコントローラ５１に送信する。さらに、拡張サブメモリコントローラ５１は、ローカルアドレステーブル５３０に基づいて、当該リクエストをメモリモジュール１６、１７及び１８のいずれかに送信する。【００７１】
以上、説明したようにモード２では、プロセッサが拡張メモリコントローラを介してメモリモジュールにアクセスする。そのため、拡張メモリコントローラに接続するメモリモジュールを増設することができ、システムのメモリ容量を増大させることができる。【００７２】
（モード３）
続いて、モード３の場合について説明する。モード３では、プロセッサが、システムバスコントローラ１０４及び拡張サブメモリコントローラを介してメモリモジュールにメモリアクセスを行う。【００７３】
システムマネージメントボード４００は、システムバスコントローラ１０４が有効となるように、設定レジスタ１０４４を設定する。また、システムマネージメントボード４００は、例えば、拡張サブメモリコントローラ５１が有効となるように、設定レジスタ５１０を設定する。また、システムマネージメントボード４００は、例えば、メモリコントローラ１１が無効となるように、設定レジスタ１１０を設定する。【００７４】
設定レジスタ５２６は、セレクタ５２８が論理積回路５２２の出力を選択するように、設定レジスタ５３２は、セレクタ５３６がバス５１８を選択するように、そして、設定レジスタ５３４は、セレクタ５３８がバス５１５を選択するように、それぞれシステムマネージメントボード４００によって設定される。【００７５】
論理積回路５２２には、上述したアービタ１０６６によって、バス５１６から拡張サブコントローラリクエストが入力される。拡張サブコントローラリクエストは、ある拡張サブメモリコントローラへのアクセスが有効であることを示す。また、論理積回路５２２には、システムバスコントローラ１０４によってシステムアドレスが論理積回路５２２に入力される。論理積回路５２２は、当該リクエスト及び当該システムアドレスをバス５１４を通じてローカルアドレステーブル５３０に出力する。【００７６】
拡張サブメモリコントローラ５１は、ローカルアドレステーブル５３０に基づいて、システムアドレスをローカルアドレスに変換する。拡張サブメモリコントローラ５１は、当該リクエストをメモリモジュール１７、１８に送信すべきと判断した場合は、当該リクエストをセレクタ５３６に出力する。セレクタ５３６は、当該リクエストをメモリモジュール１７または１８に出力する。一方、拡張サブメモリコントローラ５１は、当該リクエストをメモリモジュール１６に送信すべきと判断した場合は、当該リクエストをセレクタ５３８に出力する。セレクタ５３８は、当該リクエストをメモリモジュール１６に出力する。【００７７】
なお、書き込み要求があった場合は、ライトデータが上述したデータバッファ１０６９からバス５１８を介してセレクタ５３６またはセレクタ５３８に入力される。拡張サブメモリコントローラ５１は、上述したローカルアドレスに基づいて、当該ライトデータを送信すべきメモリモジュールを決定する。拡張サブメモリコントローラ５１は、当該ライトデータをメモリモジュール１７、１８に送信すべきと判断した場合は、当該ライトデータをセレクタ５３６に出力する。セレクタ５３６は、当該ライトデータをメモリモジュール１７または１８に出力する。一方、拡張サブメモリコントローラ５１は、当該ライトデータをメモリモジュール１６に送信すべきと判断した場合は、当該ライトデータをセレクタ５３８に出力する。セレクタ５３８は、当該ライトデータをメモリモジュール１６に出力する。【００７８】
ここで、図１７にモード３によって実現することができるシステムの一例を表す。図１７はシステムを模式的に表している。各プロセッサはシステムコントローラ１０２及び拡張サブメモリコントローラを介してメモリモジュールへのアクセスを行う。例えば、プロセッサ１は、システムコントローラ１０２から拡張サブメモリコントローラ５１を介して、メモリモジュール１６、１７及び１８に対してリクエストを送信することができる。また、例えば、プロセッサ３は、システムコントローラ１０２から拡張サブメモリコントローラ７１を介して、メモリモジュール３６、３７及び３８に対してリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２及びクロスバ３００を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ２、３及び４も同様なので、その説明を省略する。【００７９】
また、ここで、図１８、図１９及び図２０にモード３におけるシステムの動作を表す。図１８に、システムバスコントローラ１０４及びモード２においてプロセッサが管理していた拡張サブメモリコントローラを介してメモリモジュールへアクセスする場合のシステムの動作を表す。プロセッサ１が有するコア１９が、システムバス１５を介してシステムバスコントローラ１０４にリクエストを送信する。システムバスコントローラ１０４は当該リクエストを拡張サブメモリコントローラ５１に送信する。また、システムバスコントローラ１０４はシステムアドレスを拡張サブメモリコントローラ５１に送信する。拡張サブメモリコントローラ５１は、ローカルアドレステーブル５３０に基づいて、当該リクエストをメモリモジュール１６、１７及び１８のいずれかに送信する。この場合、メモリコントローラ１１等は無効となっている。【００８０】
図１９に、システムバスコントローラ１０４及びモード２において他のプロセッサが管理していた拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。まず、プロセッサ３が有するコア３９がシステムバス３４を介してシステムバスコントローラ１０４にリクエストを送信する。システムバスコントローラ１０４は当該リクエストを拡張サブメモリコントローラ５１に送信する。また、システムバスコントローラ１０４はシステムアドレスを拡張サブメモリコントローラ５１に送信する。拡張サブメモリコントローラ５１は、ローカルアドレステーブル５３０に基づいて、当該リクエストをメモリモジュール１６、１７及び１８のいずれかに送信する。【００８１】
図２０に、あるシステムボードに搭載されたプロセッサ（図示せず）が、システムバスコントローラ１０４を介して他のシステムボードに搭載されたプロセッサが管理している拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。まず、あるシステムボードに搭載されたプロセッサが、クロスバ３００を介してリクエストをシステムバスコントローラ１０４に送信する。システムバスコントローラ１０４は当該リクエストを拡張サブメモリコントローラ５１に送信する。また、システムバスコントローラ１０４はシステムアドレスを拡張サブメモリコントローラ５１に送信する。拡張サブメモリコントローラ５１は、ローカルアドレステーブル５３０に基づいて、当該リクエストをメモリモジュール１６、１７及び１８のいずれかに送信する。【００８２】
以上、説明したようにモード３では、プロセッサがシステムバスコントローラ及び拡張メモリコントローラを介してメモリモジュールにアクセスする。そのため、拡張メモリコントローラに接続するメモリモジュールを増設することができ、システムのメモリ容量を増大させることができる。さらに、複数のプロセッサが同等にメモリモジュールへアクセスすることのできる、対象型マルチプロセッサ（ＳＭＰ：Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｌｅ  Ｐｒｏｃｅｓｓｏｒ）を実現することができる。【００８３】
（モード１、３）
最後に、モード１及びモード３を混在させるモードについて説明する。システムマネージメントボード４００は、メモリコントローラ１１が有効となるように、設定レジスタ１１０を設定する。また、システムマネージメントボード４００は、システムバスコントローラ１０４が有効となるように、設定レジスタ１０４４を設定する。また、システムマネージメントボード４００は、拡張サブメモリコントローラ５１が有効となるように、設定レジスタ５１０を設定する。【００８４】
図６に、このモードにおけるメモリ空間６００の割り当ての一例を表す。図６に表すように、システムコントローラに対しては、拡張サブメモリコントローラ５１、６１、７１及び８１を割り当てる。拡張サブメモリコントローラ５１に対しては、メモリモジュール１７、１８を、拡張サブメモリコントローラ６１に対しては、メモリモジュール２７、２８を、拡張サブメモリコントローラ７１に対しては、メモリモジュール３７、３８を、拡張サブメモリコントローラ８１に対しては、メモリモジュール４７、４８をそれぞれ割り当てる。また、プロセッサ１に対しては、メモリモジュール１６を、プロセッサ２に対しては、メモリモジュール２６を、プロセッサ３に対しては、メモリモジュール３６を、プロセッサ４に対しては、メモリモジュール４６をそれぞれ割り当てる。このように、メモリ空間において、拡張サブメモリコントローラからアクセス可能なメモリモジュールと、プロセッサからアクセス可能なメモリモジュールとを分けて割り当てることで、モード１とモード３の混在を実現している。【００８５】
図７に、ローカルアドレステーブル５３０のデコードの実施例を表す。ローカルアドレステーブル５３０は複数のエントリ情報を有する。さらに、ローカルアドレステーブル５３０は、システムアドレス７０４と、当該システムアドレス７０４に対応するメモリ番号７０６及びメモリローカルアドレス７０８との組み合わせであるローカルアドレスとが対になる情報を有している。ここで、メモリローカルアドレスとは、例えば、ダブルデータレイト−デュアルインラインメモリモジュール（ＤＲＲ−ＤＩＭＭ：Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ−Ｄｕａｌｅ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）であればＤＩＭＭスロット（Ｓｌｏｔ）番号、ロウアドレスストローブ（ＲＡＳ：Ｒｏｗ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）／カラムアドレスストローブ（ＣＡＳ：Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）ＤＲＡＭ（ディーラム）アドレス等である。これらの情報は、マネージメントパスによって、システム及びパーティションの初期化時に任意に設定することができる。このようにローカルアドレステーブル５３０を設定しておくことで、モード３のアクセスパスで、図４のメモリモジュール１６にアクセスするのを防ぐことができる。具体的には、ローカルアドレステーブル５３０に、メモリモジュール１６に対応するメモリローカルアドレスを定義しないことで、リクエストの送信先がメモリモジュール１６になることを防ぐことができる。ゆえに、図４において、リクエストがバス５１５を介してセレクタ５３８からメモリモジュール１６に送信されることはない。【００８６】
さらに、設定レジスタ５３４は、セレクタ５３８がバス５１２の出力を選択するように、設定レジスタ５２６は、セレクタ５２８が論理積回路５２２の出力を選択するように、そして、設定レジスタ５３２は、セレクタ５３６がバス５１８の出力を選択するように、システムマネージメントボード４００によって設定される。これによって、バス５１２の出力がメモリモジュール１７、１８に入力されることがなく、メモリモジュール１６のみに入力される。【００８７】
ここで、図２１にモード１、３混在によって実現することができるシステムの一例を表す。図２１はシステムを模式的に表している。例えば、プロセッサ１は、メモリコントローラ１１からメモリモジュール１６に対してリクエストを送信することができる。また、例えば、プロセッサ１は、プロセッサ３のメモリコントローラ３１からメモリモジュール３６に対してリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２を介して、プロセッサ３のメモリコントローラ３１からメモリモジュール３６に対してリクエストを送信することができる。また、例えば、プロセッサ１からシステムコントローラ１０２を介して拡張サブメモリコントローラ５１からメモリモジュール１７及び１８にリクエストを送信することができる。また、例えば、プロセッサ１は、システムコントローラ１０２及びクロスバ３００を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ２、３及び４も同様なので、その説明を省略する。【００８８】
また、ここで、図２２にモード１、３混在におけるシステムの動作を表す。プロセッサ１は、システムバスコントローラ１０４及び拡張サブメモリコントローラ５１を介してメモリモジュール１７、１８にアクセスする。また、プロセッサ３は、メモリコントローラ１１を介してメモリモジュール１６にアクセスする。【００８９】
以上、説明したようにモード１、３混在では、メモリアクセスの高速化が要求されるメモリモジュール１６に対しては、プロセッサ１に搭載されたメモリコントローラ１１がアクセスする。また、メモリ容量の増大の要求を、拡張サブメモリコントローラ５１からメモリモジュール１７、１８にアクセスすることで満たす。これによって、メモリアクセスの高速化とメモリ容量の増大を実現することができる。【００９０】
以上、説明したように本実施形態では、三種類のメモリアクセス方法がある。各アクセス方法は、上述したようにシステムマネージメントボード４００がシステムマネージメントパスを介して各コントローラのレジスタを設定することによって決定される。【００９１】
ここで、情報処理装置では、筐体内を複数のパーティションに分割し、パーティション毎に独立したシステムとして稼動させることができる。すなわち、パーティション毎に異なるオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を動作させることができ、同一筐体内に複数の業務を構築して、柔軟にシステムを構成することができる。パーティションの最小構成は、１つのシステムボードと１つの入出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ボードである。しかし、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）資源やメモリ資源を多く必要とするパーティションにはシステムボードを多く割り当て、Ｉ／Ｏ資源を多く必要とするパーティションには、Ｉ／Ｏボードを多く割り当てるなど、システム形態に合わせて柔軟な組み合わせが可能である。各パーティションは、他のパーティションからの影響を受けないように保護されている。そのため、あるパーティションで障該が発生しても他のパーティションに影響を与えることはない。本実施例によれば、システムマネージメントボード４００が各パーティションにおいて各コントローラのレジスタを設定することによって、各パーティションにおいて異なるメモリアクセス方法を設定することができる。【００９２】
システムマネージメントボード４００が各コントローラのレジスタを設定するタイミングは、例えば、システム全体の初期化、パーティション毎の初期化、またはパーティションの再構成時等である。【００９３】
ここで、メモリアクセスのモードの組み合わせについて説明する。各アクセス方法は、例えば、システムの初期化時に設定される。そのため、システムの初期化終了後にエラーが発生しなければ、各コントローラの有効／無効の設定やマルチプレクサのセレクトが動的に変化することはない。また、拡張サブメモリコントローラの設定は個別に行うことができる。そのため、各拡張サブメモリコントローラに対して異なるアクセス方法を設定することが可能である。【００９４】
図８に、拡張サブメモリコントローラ等に対して異なるアクセス方法を設定した場合のシステムの一例を表す。拡張サブメモリコントローラ５１はモード３を実行している。拡張サブメモリコントローラ６１はモード１、３混在を実行している。拡張サブメモリコントローラ７１はモード２を実行している。拡張サブメモリコントローラ８１はモード１を実行している。図８で表したシステムを実現するためには、拡張メモリコントローラのアドレステーブルの設定を変更すれば良い。具体的には、アドレステーブルにおいて、システムアドレスと拡張サブメモリコントローラとの対応情報のエントリを複数用意すれば良い。これにより、複数のシステムボードを有するシステムにおいて、システムボードの区切りに関わらず、同じシステム構成でのパーティション分割が可能となる。システム構成としては、例えば、ＳＭＰやノンユニフォームメモリアクセス（ＮＵＭＡ：Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）がある。【００９５】
（本実施例の有効性）
最後に本実施例の有効性について説明する。【００９６】
例えば、図２３に表すようなシステムボード１００がある。このようなシステムボード１００では、プロセッサ１〜４はシステムコントローラ１０１を介してメモリコントローラ１０５にアクセスする。そして、メモリコントローラ１０５は、メモリモジュール１６、２６、３６、４６に対してデータの書き込み又は読み出しを行う。また、例えば、図２４に表すようなシステムボード１００がある。プロセッサ１〜４はそれぞれ、メモリコントローラ１１、２１、３１、４１を搭載している。プロセッサ１〜４は直結しており、あるプロセッサが要求するメモリモジュールが搭載しているメモリコントローラで管理されていた場合、メモリアクセスはシステム上には表れない。また、他のプロセッサが有しているメモリに対しても、直接そのプロセッサに対してアクセスを要求する。図２４に表したシステムコントローラ１０１は、例えば図２６に表したようなシステムにおいて必要となる。図２６に表したシステムでは、複数のシステムボード１００がクロスバ３００に接続されている。【００９７】
しかし、図２４に表したプロセッサがメモリコントローラを搭載しているシステムでは、プロセッサが管理可能なメモリ容量が図２３に表したシステムよりも小さい。そこで、図２５に表したように、プロセッサ１は搭載しているメモリコントローラ１１を無効にする機能を有している。プロセッサ１はさらに、メモリインターフェースをシステムバスと同じ仕様のインターフェースにする機能を有している。これにより、プロセッサ１に拡張メモリコンントローラ１０６を接続することが可能になる。これにより、拡張メモリコントローラ１０６にメモリモジュール１６、２６、３６、４６等を接続することが可能になり、メモリ容量の制限を解除することができる。しかし、メモリコントローラがプロセッサの外にあるため、メモリアクセスのレイテンシが増大してしまう。【００９８】
これに対して、本実施例では、図２２に表したように、システムにモード１、３を混在させる。これによって、メモリアクセスの高速化が要求されるメモリモジュール１６に対しては、プロセッサ１に搭載されたメモリコントローラ１１からアクセスする。また、メモリ容量の増大の要求を、拡張サブメモリコントローラ５１からメモリモジュール１７、１８にアクセスすることで満たす。また、本実施例によれば、メモリモジュールに対してアクセスするメモリ制御装置を設定レジスタによって切り替えることで、情報処理装置内に、様々なシステムを共存させることができる。即ち、図１に表した情報処理装置０において、あるシステムボード１００では、ＳＭＰを実現し、また、あるシステムボード１００ではＮＵＭＡを実現し、また、あるシステムボード１００では、図２４に表したようなシステムを実現することができる。
【図１】
2009034652.tif 000003
【図２】
2009034652.tif 000004
【図３】
2009034652.tif 000005
【図４】
2009034652.tif 000006
【図５】
2009034652.tif 000007
【図６】
2009034652.tif 000008
【図７】
2009034652.tif 000009
【図８】
2009034652.tif 000010
【図９】
2009034652.tif 000011
【図１０】
2009034652.tif 000012
【図１１】
2009034652.tif 000013
【図１２】
2009034652.tif 000014
【図１３】
2009034652.tif 000015
【図１４】
2009034652.tif 000016
【図１５】
2009034652.tif 000017
【図１６】
2009034652.tif 000018
【図１７】
2009034652.tif 000019
【図１８】
2009034652.tif 000020
【図１９】
2009034652.tif 000021
【図２０】
2009034652.tif 000022
【図２１】
2009034652.tif 000023
【図２２】
2009034652.tif 000024
【図２３】
2009034652.tif 000025
【図２４】
2009034652.tif 000026
【図２５】
2009034652.tif 000027
【図２６】
2009034652.tif 000028
【国際調査報告】
2009034652.tif 000029
2009034652.tif 000030
2009034652.tif 000031
2009034652.tif 000032