"情報処理装置であって、それぞれ複数のメモリと、前記複数のメモリを管理するメモリコントローラとを備える複数の処理部と、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックする正常性チェック部と、前記正常性チェック部によるチェック結果に基づいて、前記複数の処理部のうち故障している処理部を検出する故障検出部と、前記故障している処理部を縮退させる縮退部と、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定する冗長化判定部と、前記冗長化判定部によって前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定する冗長化解除判定部と、冗長化解除判定部によって前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する冗長化解除部と、を有することを特徴とする情報処理装置。前記冗長化解除判定部は、前記複数のメモリの前記冗長構成を解除するか否かを指定する冗長化解除情報に基づいて前記判定を行なうことを特徴とする請求項1に記載の情報処理装置。メモリ容量の調整を行なうか否かを判定する容量調整判定部と、前記容量調整判定部によって前記メモリ容量の調整を行なうと判定された場合に、前記処理部の縮退前の前記冗長構成において利用可能な実効メモリ容量と、前記処理部の縮退後に利用可能なメモリ容量とを算出するメモリ容量算出部と、前記処理部の縮退前の前記冗長構成において利用可能な前記実効メモリ容量に近くなるように、前記処理部の縮退後に利用可能な前記メモリ容量を調整する調整部と、を更に有することを特徴とする請求項1または2に記載の情報処理装置。前記容量調整判定部は、前記メモリ容量の調整を行なうか否かを指定する容量調整情報に基づいて前記判定を行なうことを特徴とする請求項3に記載の情報処理装置。前記調整部は、前記複数のメモリの一部を使用不可に設定することにより利用可能なメモリ容量を削減することを特徴とする請求項3または4のいずれか1項に記載の情報処理装置。それぞれ複数のメモリと、前記複数のメモリを管理するメモリコントローラとを備える複数の処理部を有する情報処理装置における情報処理方法であって、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックし、前記チェックに基づいて、前記複数の処理部のうち故障している処理部を検出し、前記故障している処理部を縮退させ、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定し、前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定し、前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除することを特徴とする情報処理方法。前記複数のメモリの前記冗長構成を解除するか否かの判定は、前記複数のメモリの前記冗長構成を解除するか否かを指定する冗長化解除情報に基づいて行なうことを特徴とする請求項6に記載の情報処理方法。メモリ容量の調整を行なうか否かを判定し、前記メモリ容量の調整を行なうと判定された場合に、前記処理部の縮退前の前記冗長構成において利用可能な実効メモリ容量と、前記処理部の縮退後に利用可能なメモリ容量とを算出し、前記処理部の縮退前の前記冗長構成において利用可能な前記実効メモリ容量に近くなるように、前記処理部の縮退後に利用可能な前記メモリ容量を調整することを特徴とする請求項6または7に記載の情報処理方法。前記容量調整を行なうか否かの判定は、前記メモリ容量の調整を行なうか否かを指定する容量調整情報に基づいて行なうことを特徴とする請求項8に記載の情報処理方法。前記メモリ容量の調整は、前記複数のメモリの一部を使用不可に設定することにより利用可能なメモリ容量を削減することを特徴とする請求項8または9のいずれか1項に記載の情報処理方法。それぞれ複数のメモリと、前記複数のメモリを管理するメモリコントローラとを備える複数の処理部を有する情報処理装置において実行されたときに、前記情報処理装置を、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックする正常性チェック部と、前記正常性チェック部によるチェック結果に基づいて、前記複数の処理部のうち故障している処理部を検出する故障検出部と、前記故障している処理部を縮退させる縮退部と、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定する冗長化判定部と、前記冗長化判定部によって前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定する冗長化解除判定部と、冗長化解除判定部によって前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する冗長化解除部と、して機能させることを特徴とする情報処理プログラム。前記冗長化解除判定部は、前記複数のメモリの前記冗長構成を解除するか否かを指定する冗長化解除情報に基づいて前記判定を行なうことを特徴とする請求項11に記載の情報処理プログラム。前記情報処理装置において実行されたときに、前記情報処理装置を、メモリ容量の調整を行なうか否かを判定する容量調整判定部と、前記容量調整判定部によって前記メモリ容量の調整を行なうと判定された場合に、前記処理部の縮退前の前記冗長構成において利用可能な実効メモリ容量と、前記処理部の縮退後に利用可能なメモリ容量とを算出するメモリ容量算出部と、前記処理部の縮退前の前記冗長構成において利用可能な前記実効メモリ容量に近くなるように、前記処理部の縮退後に利用可能な前記メモリ容量を調整する調整部と、して更に機能させることを特徴とする請求項11または12に記載の情報処理プログラム。前記容量調整判定部は、前記メモリ容量の調整を行なうか否かを指定する容量調整情報に基づいて前記判定を行なうことを特徴とする請求項13に記載の情報処理プログラム。前記調整部は、前記複数のメモリの一部を使用不可に設定することにより利用可能なメモリ容量を削減することを特徴とする請求項13または14のいずれか1項に記載の情報処理プログラム。それぞれ複数のメモリと、前記複数のメモリを管理するメモリコントローラとを備える複数の処理部を有する情報処理装置において、前記情報処理装置を、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックする正常性チェック部と、前記正常性チェック部によるチェック結果に基づいて、前記複数の処理部のうち故障している処理部を検出する故障検出部と、前記故障している処理部を縮退させる縮退部と、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定する冗長化判定部と、前記冗長化判定部によって前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定する冗長化解除判定部と、冗長化解除判定部によって前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する冗長化解除部と、して機能させる情報処理プログラムを記録したことを特徴とするコンピュータ読取可能な記録媒体。前記冗長化解除判定部は、前記複数のメモリの前記冗長構成を解除するか否かを指定する冗長化解除情報に基づいて前記判定を行なうことを特徴とする請求項16に記載のコンピュータ読取可能な記録媒体。前記情報処理プログラムは、前記情報処理装置を、メモリ容量の調整を行なうか否かを判定する容量調整判定部と、前記容量調整判定部によって前記メモリ容量の調整を行なうと判定された場合に、前記処理部の縮退前の前記冗長構成において利用可能な実効メモリ容量と、前記処理部の縮退後に利用可能なメモリ容量とを算出するメモリ容量算出部と、前記処理部の縮退前の前記冗長構成において利用可能な前記実効メモリ容量に近くなるように、前記処理部の縮退後に利用可能な前記メモリ容量を調整する調整部と、して更に機能させることを特徴とする請求項16または17に記載のコンピュータ読取可能な記録媒体。前記容量調整判定部は、前記メモリ容量の調整を行なうか否かを指定する容量調整情報に基づいて前記判定を行なうことを特徴とする請求項18に記載のコンピュータ読取可能な記録媒体。前記調整部は、前記複数のメモリの一部を使用不可に設定することにより利用可能なメモリ容量を削減することを特徴とする請求項18または19のいずれか1項に記載のコンピュータ読取可能な記録媒体。メモリコントローラ内蔵マルチCPUシステムにおいては、CPUに接続されたメモリは、当該CPUを経由しないと読み書きすることができない。このため、このCPUが縮退すると、当該CPU配下のメモリも他のCPUからアクセスできなくなるため、配下のメモリも同時に縮退してしまうことになる。なお、一般に、データベース等のアプリケーションは、処理の高速化のためにメモリにデータの一部を展開したり、索引を配置するので、メモリの縮退で一定量のメモリを確保できなくなると、性能が大幅に低下する。最悪の場合には、アプリケーションの起動に失敗してしまう。また、近年、普及の進んでいる仮想化技術においても、仮想化されたゲストOSoperatingsystem単位で一定量のメモリが必要であり、メモリが縮退すると、稼働可能なゲストOS数が減ってしまう。例えば、Web/アプリケーションAP/データベースDBの3階層からなるシステムを複数ゲストOSで構成する場合には、メモリが縮退すると、必要なゲストOSが起動できず、システムを稼働できなくなる。同様に、クライアント仮想化による仮想PCでは、必要な数のPCを稼働できず、業務に支障をきたす可能性がある。例えば、上述したメモリ二重化手法では、CPUの故障によりメモリを二重化すべきか否かを判断できないため、メモリの減少を補填することはできない。一般的な計算機システムは、システムの信頼性を向上させるために、メモリの冗長化機能、ならびに、CPU単位の切り離しと自動再起動機能を備えている。しかし、単純にCPUを切り離してしまうと、そのCPU配下のメモリも同時に切り離されるため、利用可能なメモリ量が減少してしまう。また、CPUの故障時のメモリの縮退を補填するために、単純にメモリの冗長化を解除すると、使用可能なメモリが大幅に増加してしまうこともある。このように利用可能なメモリが大幅に増加すると、メモリ管理テーブル等が肥大化してしまう。OSやアプリケーションによっては、システムが復旧した後も、この肥大化した設定が残ってしまうため、利用可能なメモリ領域が減少し、アプリケーションが起動できなくなることがある。最悪の場合、OSやアプリケーションの再インストールが必要となってしまう。例えば上述した手法は、メモリの故障時にメモリ容量の減少量を削減させるが、二重化の解除時のようにメモリ容量が増加する場合の解決策は何ら存在しない。1つの側面では、本発明は、CPUの縮退によりメモリも縮退されてしまった場合にも、OSやデータベース等のアプリケーションが利用可能なメモリ容量を、CPU縮退前の二重化された実効メモリ容量に近づけることを目的とする。このため、本開示の情報処理装置は、それぞれ複数のメモリと、前記複数のメモリを管理するメモリコントローラとを備える複数の処理部と、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックする正常性チェック部と、前記正常性チェック部によるチェック結果に基づいて、前記複数の処理部のうち故障している処理部を検出する故障検出部と、前記故障している処理部を縮退させる縮退部と、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定する冗長化判定部と、前記冗長化判定部によって前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定する冗長化解除判定部と、冗長化解除判定部によって前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する冗長化解除部と、を有する。また、本開示の情報処理方法は、それぞれ複数のメモリと、前記メモリを管理するメモリコントローラとを有し、前記メモリを冗長化する冗長化機能を備える複数の処理部を有する情報処理装置における情報処理方法であって、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックし、前記チェックに基づいて、前記複数の処理部のうち故障している処理部を検出し、前記故障している処理部を縮退させ、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定し、前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定し、前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する。また、本開示の情報処理プログラムは、それぞれ複数のメモリと、前記メモリを管理するメモリコントローラとを有し、前記メモリを冗長化する冗長化機能を備える複数の処理部を有する情報処理装置において実行されたときに、前記情報処理装置を、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックする正常性チェック部と、前記正常性チェック部によるチェック結果に基づいて、前記複数の処理部のうち故障している処理部を検出する故障検出部と、前記故障している処理部を縮退させる縮退部と、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定する冗長化判定部と、前記冗長化判定部によって前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定する冗長化解除判定部と、冗長化解除判定部によって前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する冗長化解除部と、して機能させる。また、本開示のコンピュータ読取可能な記録媒体は、それぞれ複数のメモリと、前記メモリを管理するメモリコントローラとを有し、前記メモリを冗長化する冗長化機能を備える複数の処理部を有する情報処理装置において、前記情報処理装置を、前記情報処理装置の起動の際に、前記複数の処理部の正常性をチェックする正常性チェック部と、前記正常性チェック部によるチェック結果に基づいて、前記複数の処理部のうち故障している処理部を検出する故障検出部と、前記故障している処理部を縮退させる縮退部と、前記複数のメモリが、該複数のメモリを組み合わせた冗長構成で使用されているか否かを判定する冗長化判定部と、前記冗長化判定部によって前記複数のメモリが前記冗長構成で使用されていると判定された場合に、前記複数のメモリの前記冗長構成を解除するか否かを判定する冗長化解除判定部と、冗長化解除判定部によって前記複数のメモリの前記冗長構成を解除すると判定された場合に、前記複数の処理部のうちの正常な処理部の前記複数のメモリの前記冗長構成を解除する冗長化解除部と、して機能させる情報処理プログラムを記録している。1実施態様によれば、処理部の縮退によりメモリも縮退されてしまった場合にも、メモリの冗長化を解除して、利用可能なメモリ容量を増やすことができる。以下、図面を参照して本発明の実施の形態を説明する。[A.システム構成]図1は、実施形態の一例としてのマルチプロセッサ情報処理システム情報処理装置1のハードウェア構成を示す模式図である。このマルチプロセッサ情報処理システム1は、複数のCPU処理部3を有するマルチプロセッサ情報処理システムである。このマルチプロセッサ情報処理システム1は、冗長化機能として、メモリを二重化して使用するメモリの二重化メモリの冗長化、ミラー化機能を備えると共に、CPU3の故障時にそのCPU3を個別に切り離す縮退させることが可能である。このマルチプロセッサ情報処理システム1は、さまざまな構成を取ることができ、例えば、図1中、点線で囲んだ部分は4CPU構成、破線で囲んだ部分は2CPU構成であり、2CPU構成、4CPU構成のいずれも取ることができる。本マルチプロセッサ情報処理システム1は、CPU3-0~3-3、DIMMDualInlineMemoryModuleメモリ5-000~5-312、入出力ハブInputoutputhub:IOH7-0,7-1、ICHIOControllerHub9-0,9-1を備える。また、本マルチプロセッサ情報処理システム1は、BIOSBasicInputOutputSystemフラッシュ11、およびBMCBaseboardManagementController13も備え、これらは、CPUの個数にかかわらず1つずつ設けられている。なお、以下、CPUを示す符号としては、複数のCPUのうち1つを特定する必要があるときには符号3-0~3-3を用いるが、任意のCPUを指すときには符号3を用いる。また、以下、DIMMを示す符号としては、複数のDIMMのうち1つを特定する必要があるときには符号5-000~5-312を用いるが、任意のDIMMを指すときには符号5を用いる。また、以下、IOHを示す符号としては、複数のIOHのうち1つを特定する必要があるときには符号7-0,7-1を用いるが、任意のIOHを指すときには符号7を用いる。また、以下、ICHを示す符号としては、複数のICHのうち1つを特定する必要があるときには符号9-0,9-1を用いるが、任意のICHを指すときには符号9を用いる。CPU3は、プログラムを実行することにより各種処理を実現する装置であり、DIMM5を管理する後述のメモリコントローラ15図3参照を内蔵している。このメモリコントーラ15は、DIMM5の二重化に対応している。DIMM5は、複数のDRAMチップをプリント基板上に搭載したメモリモジュールである。これらDIMM5へのアクセス等は、CPU3に内蔵されている後述のメモリコントローラ15によって制御される。なお、DIMM5のうち、破線で図示されているDIMM5-003,5-013,5-103,5-113,5-203,5-213,5-303,5-313は、スロットが存在するがスロットにDIMMが実装されていないものを示す。IOH7は、後述するICH9とCPU3との間のデータの交換を行なうチップセットである。IOH7には公知のIOHを用いることができる。ICH9は、入出力を制御するチップセットであり、公知のICHを用いることができる。BIOSフラッシュ11は、マルチプロセッサ情報処理システム1の起動または再起動時に読み込まれるBIOSプログラムやデータを記憶するメモリである。BIOSフラッシュ11は、起動または再起動時に後述するBMC13によって読み込まれるメモリミラー指定テーブル17やCPU/メモリ構成テーブル19を記憶している。これらメモリミラー指定テーブル17やCPU/メモリ構成テーブル19については後述する。BMC13は、マルチプロセッサ情報処理システム1のシステムボードを管理するコントローラである。通常、CPU3、DIMM5等のハードウェアの監視、リモートコントロール、ハードウェアイベントの記録などを行なう。BMC13は、IPMIIntelligentPlatformManagementInterfaceによって標準仕様が規定されている。このマルチプロセッサ情報処理システム1では、複数のメモリを組み合わせた冗長構成を設定することができ、例えば、メモリの二重化メモリミラーを設定することができる。例えば、メモリの二重化を設定する場合、同一のCPU3に接続された2つのDIMM5の対が形成され、二重化が行なわれる。例えば、DIMM5-000とDIMM5-010とが、DIMM5-001とDIMM5-011とが、DIMM5-002とDIMM5-012とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-100とDIMM5-110とが、DIMM5-101とDIMM5-111とが、DIMM5-102とDIMM5-112とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-200とDIMM5-210とが、DIMM5-201とDIMM5-211とが、DIMM5-202とDIMM5-212とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-300とDIMM5-310とが、DIMM5-301とDIMM5-311とが、DIMM5-302とDIMM5-312とが、それぞれ二重化され、1つのDIMMとして機能する。このような二重化機能を備えたマルチプロセッサ情報処理システム1では、メモリ二重化指定テーブル17とCPU/メモリ構成テーブル19とが、起動または再起動時に読み込まれ、変更があればPOSTの実行後にBIOSフラッシュ11に格納される。これと同時に、メモリ二重化指定テーブル17とCPU/メモリ構成テーブル19とのコピーが、各CPU3のメモリコントローラ15にも格納される。各CPU3のメモリコントローラ15は、CPU3の後述する処理コア21やキャッシュメモリ23図3参照、あるいは他のCPU3やIOH7の要求に従って、メモリアクセスを実施する。メモリ二重化が設定されていない場合には、後述するCPU/メモリ構成テーブル19内の存在フラグ43、正常フラグ45および使用フラグ49に、例えば1が設定されているDIMM5が使用され、読み出しまたは書き込みが行なわれる。例えば、DIMM5-000、DIMM5-001...、DIMM5-010、DIMM5-011...の順で、読み出しまたは書き込みが行なわれる。メモリ二重化が指定されている場合は、書き込みが、DIMM5-000、DIMM5-001...に行なわれるのと同時に、DIMM5-010、DIMM5-011...にも行なわれ、二重化されているDIMM5の各々に同時に行なわれる。読み出しも同様に、二重化されているDIMM5の各々に同時に行なわれる。DIMM5に実際に書き込まれるデータにはECCチェックコードが付加されており、二重化されているDIMM5の各々から読み出したデータのうち、ECCチェックで正常な方のデータが使用される。図2は、実施形態の一例としての実施形態の一例としてのマルチプロセッサ情報処理システム1の機能構成を示す模式図である。マルチプロセッサ情報処理システム1は、正常性チェック実行部正常性チェック部131、故障検出部故障検出部133、CPU縮退部縮退部135、二重化判定部冗長化判定部137、二重化解除判定部冗長化解除判定部139、二重化解除部冗長化解除部141、メモリ容量調整判定部容量調整判定部143、メモリ容量算出部容量算出部145、および使用メモリ削減部調整部147を有する。正常性チェック実行部131は、CPU3およびDIMM5に対して、CPU3およびDIMM5のパワーオンセルフテストpoweronselftest:POSTを実行させる。そして、CPU3およびDIMM5からPOSTの実行結果を受け取る。故障検出部133は、正常性チェック実行部131による結果に基づいて、CPU3およびDIMM5が正常に動作しているかどうかを判定する。すなわち、CPU3およびDIMM5からPOSTの正常終了が報告された場合、故障検出部133は、CPU3およびDIMM5が正常に動作していると判断する。CPU3およびDIMM5から応答がないか、POSTの異常終了が報告された場合、故障検出部133は、CPU3およびDIMM5が故障していると判断する。CPU縮退部135は、故障検出部133によって故障が検出されたCPU3を切り離す縮退させる。また、CPU縮退部135は、故障が検出されたDIMM5も切り離すと共に、縮退させたCPU3の配下のDIMM5も縮退させる。なお、縮退は、CPU3またはDIMM5への電源供給を遮断する、CPU3またはDIMM5へのバスを切断するなど、公知の縮退手法を使用して行なうことができる。二重化判定部137は、DIMM5が二重化されているかどうかを判定する。二重化判定部137は、例えば、後述するメモリミラー指定テーブル17のメモリ二重化フラグ31に値1が設定されている場合、DIMM5が二重化されていると判定する。二重化解除判定部139は、DIMM5が二重化されている場合に、DIMM5の二重化を解除するかどうかを判定する。二重化解除判定部139は、例えば、後述するメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33に値1が設定されている場合、DIMM5が二重化されていると判定する。二重化解除部141は、DIMM5の二重化を解除する。二重化解除部141は、例えば、後述するメモリミラー指定テーブル17のメモリ二重化フラグ31に値0を設定すると共に、CPU/メモリ構成テーブル19のメモリ二重化フラグ47にも値0を設定することで、メモリの二重化を解除する。メモリ容量調整判定部143は、故障したCPU3の縮退によりDIMM5の二重化を解除する際に、CPU3の縮退前と縮退後で、利用可能なメモリ容量との値が近くなるように調整メモリ容量の調整を行なうかどうかを判定する。メモリ容量調整判定部143は、例えば、後述するメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33に値1が設定されている場合、メモリ容量の調整を行なうと判定する。メモリ容量算出部145は、CPU3を縮退させる前の二重化された状態で利用可能なメモリ容量実効メモリ容量と、CPU3を縮退させ、DIMM5の二重化を解除した後のメモリ容量とを算出する。メモリ容量算出部145は、後述するCPU/メモリ構成テーブル19の存在フラグ43の値が1であるDIMM5の容量の合計Maと、CPU/メモリ構成テーブル19の正常フラグ45の値が1であるDIMM5の容量の合計Mnとを計算する。使用メモリ削減部147は、CPU3を縮退させ、DIMM5の二重化を解除した後の利用可能なメモリ容量が、CPU3を縮退させる前の二重化された状態で利用可能なメモリ容量に近くなるように、DIMM5の一部を縮退させる。使用メモリ削減部147は、メモリ容量算出部145が算出した、MaとMnとの間にMa/2≧Mnが成立するまで、正常なCPU3に接続している正常なDIMM5の使用フラグ49の値を、1つづつ0に設定することで、メモリ容量の調整を行なう。なお、Maを2で割るのは、メモリ二重化時には、利用可能な実効メモリ容量が搭載メモリ総容量の1/2となるためである。図3は、実施形態の一例としてのCPU3のハードウェア構成を示す模式図である。CPU3は、メモリコントローラ15、処理コア21、キャッシュメモリ23を有する。メモリコントローラ15は、DIMM5へのアクセス、DIMM5の二重化等を制御するコントローラである。処理コア21は、CPU3における各種の処理を行なう回路である。図3には処理コア21が1つしか図示されていないが、処理コア21は複数存在していてもよい。キャッシュメモリ23は、処理コア21とDIMM5との間でやり取りされるデータを一時的に記憶しておくための記憶領域であり、L1キャッシュ、L2キャッシュなどである。メモリコントローラ15は、DIMM5の構成ならびに二重化を管理するために、メモリコントローラ15内部に、メモリミラー指定テーブル17と、CPU/メモリ構成テーブル19とを有する。これらのメモリミラー指定テーブル17と、CPU/メモリ構成テーブル19とは、BIOSフラッシュ11に記憶されており、システム1の起動/再起動時にBIOSフラッシュ11から読み出されてCPU3のメモリコントローラ15にコピーが格納される。図4は、実施形態の一例としてのメモリミラー指定テーブル17の構造を示す図である。メモリミラー指定テーブル17は、各CPU3について、メモリの二重化に関する設定を記憶するテーブルである。メモリミラー指定テーブル17は、メモリ二重化フラグ31と、CPU縮退時メモリ二重化解除フラグ冗長化解除情報33と、メモリ二重化解除時の容量調整フラグ容量調整情報35とを有する。メモリ二重化フラグ31は、各CPU3について、配下のメモリの二重化を行なうかどうかを指定するフラグである。例えば、メモリ二重化フラグ31に値1がセットされている場合、当該CPU3の配下のDIMM5のメモリの二重化が行なわれる。値0がセットされている場合には、配下のDIMM5のメモリの二重化が行なわれない。このフラグは、二重化判定部137によって、メモリ二重化の有無を判定するために使用される。CPU縮退時メモリ二重化解除フラグ33は、各CPU3について、メモリ二重化が設定されている場合に、CPU3の縮退時に、二重化解除部141によってメモリ二重化を解除するかどうかを指定するフラグである。例えば、CPU縮退時メモリ二重化解除フラグ33に値1がセットされている場合、二重化解除部141は、CPU3の縮退時にメモリ二重化を解除する。値0がセットされている場合には、二重化解除部141は、メモリ二重化を解除しない。メモリ二重化解除時の容量調整フラグ35は、各DIMM5について、メモリ二重化を解除する際に、使用メモリ削減部147によってメモリ容量の調整を行なうかどうかを指定するフラグである。メモリ二重化解除時の容量調整フラグ35に値1がセットされている場合、使用メモリ削減部147は、DIMM5の一部を縮退させることによって、メモリ容量を調整する。メモリ二重化解除時の容量調整フラグ35に値0がセットされている場合、使用メモリ削減部147はメモリ容量の調整を行なわない。なお、メモリ二重化フラグ31、CPU縮退時メモリ二重化解除フラグ33、およびメモリ二重化解除時の容量調整フラグ35の値は、工場出荷時に設定されユーザが後から変更しても、システム1によって自動的に設定されてもよい。図5は、実施形態の一例としてのCPU/メモリ構成テーブル19の構造を示す図である。CPU/メモリ構成テーブル19は、CPU3、各DIMM5について、ハードウェア構成を記憶するテーブルである。CPU/メモリ構成テーブル19は、部品フィールド41、存在フラグ43、正常フラグ45、メモリ二重化フラグ47、および使用フラグ49を有する。部品フィールド41は、CPU3またはDIMM5のスロットを示す識別子であり、例えば、CPU3またはDIMM5のスロットを示す英数字の識別子が記憶される。存在フラグ43は、部品フィールド41に記載したCPU3またはDIMM5のスロットに、部品CPU3またはDIMM5が実装されているかどうかを示すフラグである。例えば、存在フラグ43に値1がセットされている場合、当該スロットに部品CPU3またはDIMM5が実装されている。存在フラグ43に値0がセットされている場合、当該スロットに部品CPU3またはDIMM5が実装されていない。正常フラグ45は、スロットに実装されている部品について、その部品CPU3またはDIMM5のPOSTが正常終了したかどうかを示す。例えば、正常フラグ45に値1がセットされている場合、当該部品のPOSTが正常終了したことを示す。値0がセットされている場合、POSTが異常終了し、マルチプロセッサ処理システム1の起動時に、当該部品に何らかの異常があったことを示す。なお、POSTは、マルチプロセッサ処理システム1の起動時に、前述のBMC13によって実行される。メモリ二重化フラグ47は、部品がCPU3の場合に使用されるフラグであり、当該CPU3について、配下のDIMM5のメモリ二重化を行なうかどうかを示す。なお、このフラグには、前述のメモリミラー指定テーブル17のメモリ二重化フラグ31の値がコピーされる。前述のように、例えば、メモリ二重化フラグ47に値1がセットされている場合、当該CPU3の配下のDIMM5のメモリの二重化が行なわれる。値0がセットされている場合には、配下のDIMM5のメモリの二重化が行なわれない。使用フラグ49は、部品がDIMM5の場合に使用されるフラグであり、当該DIMM5を使用するかどうかを示すフラグである。異常が検出されたCPU3の縮退時に、二重化解除部141がDIMM5の二重化を解除すると、CPU3の縮退前よりも利用可能なメモリ容量が増大してしまう場合がある。このような場合に、CPU3の縮退前後で利用可能なメモリ容量をできるだけ近づけるために、使用メモリ削減部147は、一部のDIMM5を縮退させる。その際、使用メモリ削減部147は、縮退させるDIMM5の使用フラグ49に、例えば値0を設定する。使用メモリ削減部147は、使用するDIMM5については、対応する使用フラグ49の値を変更せず、例えば値1が設定されたままとする。なお、図5には、テーブルの各フラグに値が実際に設定されている例が図示されている。なお、部品フィールド41、存在フラグ43、正常フラグ45、メモリ二重化フラグ47、および使用フラグ49の値は、工場出荷時に設定されユーザが後から変更しても、システム1によって自動的に設定されてもよい。[B.システム動作]以下、図面を参照して、マルチプロセッサ情報処理システム1の動作を説明する。図6は、実施形態の一例としての、メモリ容量の調整のない場合の再起動時の動作の概要を示すフローチャートである。ステップA11において、マルチプロセッサ情報処理システム1が再起動される。この図ではシステム1が、例えば、自動再起動AutomaticServerResetandRestart:ASRR機能により再起動される。ステップA13において、正常性チェック実行部131は、マルチプロセッサ情報処理システム1のPOSTを実行する。ステップA15において、故障検出部133は、マルチプロセッサ情報処理システム1の全CPU3に対して、CPU3の故障の有無をチェックさせる正常性チェック。ステップA17において、故障検出部133は、CPU3のうち、故障しているものが存在するかどうかを判定する。全てのCPU3が正常な場合ステップA17のNoルート参照、後述するステップA33に移動する。一方、CPU3のうち、故障しているものが存在する場合ステップA17のYesルート参照、ステップA19において、CPU縮退部135は、故障しているCPU3を縮退させて、マルチプロセッサ情報処理システム1から切り離す。この結果、縮退させたCPU3の配下のDIMM5も切り離される縮退される。次に、ステップA21において、二重化判定部137は、DIMM5の二重化が設定されているかどうかを判定する。この判定は、二重化判定部137が、前述のメモリミラー指定テーブル17のメモリ二重化フラグ31の値を読み出すことによって行なう。つまり、前述のメモリミラー指定テーブル17のメモリ二重化フラグ31に値1が設定されている場合、二重化判定部137は、メモリの二重化の設定が行なわれていると判定する。ステップA21において、DIMM5の二重化が設定されていないと判定された場合ステップA21のNoルート参照、後述するステップA33に移動する。一方、ステップA21でメモリの二重化が設定されていると判定された場合ステップA21のYesルート、ステップA23において、二重化解除判定部139は、CPU3の縮退時にメモリの二重化の解除が設定されているかどうかを判定する。この判定は、前述のメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33の値を読み出すことによって行なう。つまり、前述のメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33に値1が設定されている場合、二重化解除判定部139は、メモリの二重化の設定が行なわれていると判定する。ステップA23において、CPU3の縮退時にメモリの二重化の解除が設定されていないと判定された場合ステップA23のNoルート参照、後述するステップA33に移動する。一方、ステップA23でCPU3の縮退時にメモリの二重化の解除が設定されていると判定された場合ステップA23のYesルート参照、ステップA25において、二重化解除部141は、メモリの二重化を解除する。最後に、BMC13は、ステップA33においてOSを起動させる。次に、図7を参照して、メモリ容量の調整のない場合の図1のマルチプロセッサ情報処理システム1における情報処理方法を示す。図7は、実施形態の一例としての、メモリ容量の調整を行なう場合の再起動時の動作の概要を示すフローチャートである。ステップA11において、マルチプロセッサ情報処理システム1が再起動される。この図ではシステム1が、例えば、自動再起動ASRR機能により再起動される。ステップA13において、正常性チェック実行部131は、マルチプロセッサ情報処理システム1のPOSTを実行する。ステップA15において、故障検出部133は、マルチプロセッサ情報処理システム1の全CPUに対して、CPU3の故障の有無をチェックさせる正常性チェック。ステップA17において、故障検出部133は、CPU3のうち、故障しているものが存在するかどうかを判定する。全てのCPU3が正常な場合ステップA17のNoルート参照、後述するステップA33に移動する。一方、CPU3のうち、故障しているものが存在する場合ステップA17のYesルート参照、ステップA19において、CPU縮退部135は、故障しているCPU3を縮退させて、マルチプロセッサ情報処理システム1から切り離す。この結果、縮退させたCPU3の配下のDIMM5も切り離される縮退される。次に、ステップA21において、二重化判定部137は、DIMM5の二重化が設定されているかどうかを判定する。この判定は、二重化判定部137が、前述のメモリミラー指定テーブル17のメモリ二重化フラグ31の値を読み出すことによって行なう。つまり、前述のメモリミラー指定テーブル17のメモリ二重化フラグ31に値1が設定されている場合、二重化判定部137は、メモリの二重化の設定が行なわれていると判定する。ステップA21において、DIMM5の二重化が設定されていないと判定された場合ステップA21のNoルート参照、後述するステップA33に移動する。一方、ステップA21でメモリの二重化が設定されていると判定された場合ステップA21のYesルート、ステップA23において、二重化解除判定部139は、CPU3の縮退時にメモリの二重化の解除が設定されているかどうかを判定する。この判定は、前述のメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33の値を読み出すことによって行なう。つまり、前述のメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33に値1が設定されている場合、二重化解除判定部139は、メモリの二重化の設定が行なわれていると判定する。ステップA23において、CPU3の縮退時にメモリの二重化の解除が設定されていないと判定された場合ステップA23のNoルート参照、後述するステップA33に移動する。一方、ステップA23でCPU3の縮退時にメモリの二重化の解除が設定されていると判定された場合ステップA23のYesルート参照、ステップA25において、二重化解除部141は、メモリの二重化を解除する。次に、ステップA27において、メモリ容量調整判定部143は、メモリ容量の調整を行なうかどうかを判定する。この判定は、前述のメモリミラー指定テーブル17のメモリ二重化解除時の容量調整フラグ35の値を読み出すことによって行なう。つまり、前述のメモリミラー指定テーブル17のメモリ二重化解除時の容量調整フラグ35に値1が設定されている場合、二重化解除判定部139は、メモリの二重化の設定が行なわれていると判定する。ステップA27でメモリ容量の調整を行なわないと判定された場合ステップA27のNoルート参照、後述するステップA33に移動する。一方、ステップA27でメモリ容量の調整を行なうと判定された場合ステップA27のYesルート参照、ステップA29において、メモリ容量算出部145は、縮退前の二重化された実効メモリ容量と縮退後の二重化を解除したメモリ容量とを算出して比較する。縮退後の二重化を解除したメモリ容量が、縮退前の二重化された実効メモリ容量以下の場合ステップA29のNoルート参照、後述するステップA33に移動する。一方、縮退前の二重化された実効メモリ容量よりも縮退後の二重化を解除したメモリ容量のほうが大きい場合ステップA29のYesルート参照、ステップA31において、使用メモリ削減部147は、一部のDIMM5を縮退させて、縮退前の二重化された実効メモリ容量と縮退後の二重化を解除したメモリ容量とが等しくなるように調整する。その際、使用メモリ削減部147は、不使用に設定するDIMM5の使用フラグ49に、例えば値0を設定する。最後に、BMC13は、ステップA33においてOSを起動させる。以下、図8~11を参照して、図6,7に示した処理の詳細を説明する。図8は、実施形態の一例としてのマルチプロセッサ情報処理システム1の再起動または起動時のBMC13および各CPU3のそれぞれの動作を示すタイムチャートである。図8の左端の列はBMC13の処理を示す。その右隣の列はCPU0本例ではCPU3-0の処理を、右端の列はCPUnnは1以上の整数、2CPUシステムではn=1、4CPUシステムではn=3の処理をそれぞれ示す。マルチプロセッサ情報処理システム1の電源投入が行なわれると、まず、ステップB13において、BMC13が、BIOSフラッシュ11に格納されている構成情報を読み込む。この構成情報には、CPU3およびDIMM5に関する情報のほか、I/Oを含むハードウェアに関する情報が格納されている。ステップB15-1において、BMC13は、実装されているCPU3のうち最若番のCPU3本例ではCPU3-0に対して、POSTの実行を指示する。この指示に対し、ステップC11-1において、CPU3-0は、CPU3-0内の各ブロック例えば、図2の処理コア5や処理コア21の機能をテストし、CPU3-0が正常であるかどうかを確認する。また、BMC13は、実装されている次のCPUに対して、順次POSTの実行を指示し、同様にして、全てのCPUCPU0~CPUnにPOSTの実行を指示するステップB15-n。CPU0例えば、CPU3-0のPOSTで異常が検出された場合、CPU0は、異常である旨をBMC13に応答する。故障検出部133は、CPU0から異常応答が返された場合やCPU0から応答のない場合、CPU0が異常であると判断する。故障検出部133は、CPU/メモリ構成テーブル19のCPU0の正常フラグを0に変更すると共に、そのCPU0に属するDIMM5例えば、DIMM5-000~5-012の正常フラグも0に変更する。CPU0が正常であった場合は、CPU0は、CPU0の配下の各DIMM5について、書き込みデータと読み出しデータの比較、ECC等のエラー情報の有無のチェックなどのテストを行なう。DIMM5のいずれかで異常が検出された場合、当該DIMM5の正常フラグを0に修正する。ここでは、他のCPU3の正常性がまだ確認されていないので、DIMM5のテストは、テスト対象のCPU0に接続された配下のDIMM5のみに対して行なう。また、POSTが正常終了した次のCPUも、配下のDIMM5に対して、順次POSTを実行する。同様にして全CPUCPU0~CPUnについて、その配下のDIMM5のPOSTを実行するステップC11-n。すべてのCPUのPOSTが終了すると、ステップB25-1において、BMC13はCPU/メモリ構成テーブル19を再度参照して、正常な最若番のCPU0に対してメモリ設定の開始を指示する。この指示に対し、ステップD11-1において、CPU0は、メモリ二重化指定テーブルと全CPU分のCPU/メモリ構成テーブル19とを再度読み込んで、メモリの設定を開始する。メモリ二重化フラグ31の値が0の場合、またはCPU縮退時メモリ二重化解除フラグ33の値が0の場合には、メモリ容量の調整は不要であるため、CPU/メモリ構成テーブル19をCPU内部のメモリコントローラ15にコピーして終了する。このとき、メモリ二重化フラグ31の値が1であれば、メモリの二重化設定も行なう。メモリ二重化フラグ31の値が1で、かつCPU縮退時メモリ二重化解除フラグ33の値が1の場合、メモリ容量算出部145は、CPU/メモリ構成テーブル19の存在フラグ43の値が1であるDIMM5の容量の合計Maと、正常フラグ45の値が1であるDIMM5の容量の合計Mnとを計算し、両者を比較する。Ma/2=Mnであれば、BMC13は、メモリ二重化フラグ31を0に修正する。そして、BMC13は、メモリ二重化指定テーブル17とCPU/メモリ構成テーブル19とをCPU内部のメモリコントローラ15にコピーすると共に、BIOSフラッシュ11にも書き込む。Ma/2<Mnの場合、使用メモリ削減部147は、正常なCPU3に接続している正常なDIMM5の使用フラグ49の値を、1つづつ0に設定し、Ma/2≧Mnとなるまで使用するDIMM5を減らすように、CPU/メモリ構成テーブル19を変更する。次に、BMC13は、次のCPUに対して、順次メモリ設定の開始を指示し、同様にして、全てのCPUCPU0~CPUnにメモリ設定の開始を指示するステップB25-n。しかし、全CPUのメモリの設定およびCPU/メモリ構成テーブル19の修正は、ステップD11-1において、CPU0によって既に行なわれているので、実際にはCPU/メモリ構成テーブル19の修正は行なわれない。最後に、ステップB27において、BMC13はOSの起動を指示する。次に、フローチャートを参照して、マルチプロセッサ情報処理システム1の各構成要素の動作を詳細に説明する。図9は、実施形態の一例としてのマルチプロセッサ情報処理システム1のBMC13の動作を示すフローチャートである。まず、ステップB11において、マルチプロセッサ情報処理システム1が起動または再起動される。次に、ステップB13前述の図8のステップB13に対応において、BMC13は、BIOSフラッシュ11から、メモリミラー指定テーブル17およびCPU/メモリ構成テーブル19を読み出す。これにより、BMC13は、マルチプロセッサ情報処理システム1に搭載されているCPU3、DIMM5の個数を認識する。次に、ステップB15前述の図8のステップB15-1、B15-nに対応において、正常性チェック実行部131は、最若番CPU3本例ではCPU3-0から順次、CPUの正常性チェック処理の実行を指示する。この処理の詳細については、図10を参照して後述する。次に、ステップB17において、故障検出部133は、CPUの正常性チェック処理の実行を指示したCPU3から応答があったかどうかを判定する。ステップB17においてCPU3から応答があった場合ステップB17のYesルート参照、ステップB19において、故障検出部133は、CPU3から受信した応答に基づいて、POSTが正常終了したかどうかを判定する。ステップB17においてCPU3から応答のない場合ステップB17のNoルート参照、またはステップB19においてCPU3のPOSTが異常終了した場合ステップB19のNoルート参照、ステップB21において、CPU縮退部135は、応答を返さなかったか異常応答を返したCPU3を縮退させる切り離す。CPU縮退部135は、CPU/メモリ構成テーブル19の当該CPU3とDIMM5の正常フラグ45に0異常を書き込む。ステップB19において、CPUのPOSTが正常終了した場合ステップB19のYesルート参照、ステップB23において、正常性チェック実行部131は、全CPU3について正常性チェックを終了したかどうかを判定する。まだ正常性チェックが終了していないCPU3が存在する場合ステップB23のNoルート参照、BMC13は、ステップB15に戻る。全てのCPU3の正常性チェックが終了した場合ステップB23のYesルート参照、ステップB25前述の図8のステップB25-1、B25-nに対応において、正常性チェック実行部131は、正常な最若番CPU3から、メモリ設定処理の実行を指示する。この処理の詳細については、図11を参照して後述する。最後に、ステップB27前述の図8のステップB27に対応において、BMC13はOSの起動を指示する。図10は、実施形態の一例としてのマルチプロセッサ情報処理システム1の各CPU3の正常性チェックにおける動作を示すフローチャートである。この処理は、前述の図8のステップB15-1、B15-nおよび図9のステップB15において実行される処理である。まず、ステップC13において、CPU3は、BIOSフラッシュ11から、メモリミラー指定テーブル17およびCPU/メモリ構成テーブル19を読み出す。次に、ステップC15において、CPU3は、自CPU3内の正常性チェックを実行する。次に、ステップC17において、CPU3は、ステップC15において異常が検出されたかどうかを判定する。CPU3の異常が検出された場合ステップC17のYesルート参照、ステップC21において、CPU3は、CPU3の異常をBMC13に報告する。CPU3の異常が検出されない場合ステップC17のNoルート参照、ステップC19において、CPU3は、配下のDIMM5の正常性をチェックして、CPU/メモリ構成テーブル19を修正する。詳細には、DIMM5が正常である場合、メモリ構成テーブル19の当該DIMM5の正常フラグ45の値を1に設定する。DIMM5の以上が検出された場合、メモリ構成テーブル19の当該DIMM5の正常フラグ45の値を0に設定する。次にステップC23において、CPU3は、CPU3が正常であることをBMC13に報告する。図11は、実施形態の一例としてのマルチプロセッサ情報処理システム1の各メモリ構成時の変更時の動作を示すフローチャートである。この処理は、前述の図8のステップB25-1、B25-nおよび図9のステップB25において実行される処理である。まず、ステップD13において、CPU3は、BIOSフラッシュ11から、メモリミラー指定テーブル17およびCPU/メモリ構成テーブル19を読み出す。次に、ステップD15において、当該CPU3は、自CPU3が縮退しているかどうかを判定する。この判定は、例えば、図10を参照して前述したCPU3の正常性チェックの結果等から判定することができる。CPU3が縮退していない場合ステップD15のNoルート参照、ステップD31に移動する。一方、CPU3が縮退している場合ステップD15のYesルート参照、ステップD17において、二重化判定部137は、DIMM5が二重化ミラー化されているかどうかを判定する。この判定は、例えば、前述のメモリミラー指定テーブル17のメモリ二重化フラグ31の値が1に設定されているかどうかを確認することによって行なう。DIMM5がミラー化されていない場合ステップD17のNoルート参照、ステップD31に移動する。一方、DIMM5がミラー化されている場合ステップD17のYesルート参照、ステップD19において、二重化解除判定部139は、CPU縮退時にメモリ二重化を解除するように指定されているかどうかを判定する。この判定は、例えば、前述のメモリミラー指定テーブル17のCPU縮退時メモリ二重化解除フラグ33の値が1に設定されているかどうかを確認することによって行なう。CPU縮退時にメモリ二重化を解除するように指定されていない場合ステップD19のNoルート参照、ステップD31に移動する。一方、CPU縮退時にメモリ二重化を解除するように指定されている場合ステップD19のYesルート参照、ステップD21において、二重化解除部141は、ステップD19においてミラーを解除する。詳細には、CPU/メモリ構成テーブル19のメモリ二重化フラグ31を0に設定する。次に、ステップD23において、メモリ容量調整判定部143は、メモリミラーの解除時にメモリの容量調整を行なうかどうかを判定する。この判定は、例えば、前述のメモリミラー指定テーブル17のメモリ二重化解除時の容量調整フラグ35の値が1に設定されているかどうかを確認することによって行なう。メモリミラーの解除時にメモリの容量調整を行なわない場合ステップD23のNoルート参照、ステップD31に移動する。一方、メモリミラーの解除時にメモリの容量調整を行なう場合ステップD23のYesルート参照、ステップD25において、メモリ容量算出部145は、CPU/メモリ構成テーブル19の存在フラグ43の値が1であるDIMM5の合計容量Maと、メモリ構成テーブル19の正常フラグ45の値が1であるDIMM5の合計容量Mnとを計算する。次に、ステップD27において、使用メモリ削減部147は、ステップD25で求めたMaを2で割った値Ma/2と、Mnとを比較する。なお、Maを2で割る理由は、前述のように、メモリ二重化時には、利用可能な実効メモリ容量が搭載メモリ総容量の1/2となるためである。ステップD27においてMa/2≧Mnの場合ステップD27のYesルート参照、使用メモリ削減部147は、ステップD31に移動する。ステップD27においてMa/2≧Mnではない場合ステップD27のNoルート参照、ステップD29において、BMC13は、正常なCPU3に接続している正常なDIMM5の使用フラグを1つづつ0に設定してMa/2≧Mnとなるまで使用するDIMM5を減らすように、CPU/メモリ構成テーブル19を修正する。詳細には、使用しないDIMM5に対して、そのDIMM5のCPU/メモリ構成テーブル19の使用フラグ49に値1をセットする。最後に、ステップD31において、CPU3はBMC13に応答する。なお、その際に、メモリ二重化指定テーブル17とCPU/メモリ構成テーブル19とがCPU3内部のメモリコントローラ15にコピーされると共に、BIOSフラッシュ11にも書き込まれてもよい。また、メモリコントローラ15および/またはBIOSフラッシュ11へのメモリ二重化指定テーブル17とCPU/メモリ構成テーブル19の更新が、各ステップまたは他の適したタイミングで行なわれてもよい。以下、図12~図23を参照して、実施形態の一例としてのマルチプロセッサ情報処理システム1の例を詳細に説明する。まず、最小の構成である2CPU構成のマルチプロセッサ情報処理システム1について図12~図17を参照して説明する。図12は、2CPU構成のマルチプロセッサ情報処理システム1の正常動作時の模式構成図である。図13は、図12の状態でのメモリ二重化指定テーブル17の例を、図14は、CPU/メモリ構成テーブル19の例を示す。なお、以下、既述の符号と同一の符号は、同一もしくは略同一の部分を示しているので、その説明は省略する。このマルチプロセッサ情報処理システム1においては、BIOSフラッシュ11に記憶されている図13のメモリ二重化指定テーブル17のメモリ二重化フラグ31に値1が設定されている。このため、図14のCPU/メモリ構成テーブル19に登録されているDIMM5の間で、図12に示すようにメモリの二重化が設定されている。このとき、同一のCPU3に接続された2つのDIMM5の対が形成され、二重化が行なわれる。例えば、正常時には、例えば、DIMM5-000とDIMM5-010とが、DIMM5-001とDIMM5-011とが、DIMM5-002とDIMM5-012とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-100とDIMM5-110とが、DIMM5-101とDIMM5-111とが、DIMM5-102とDIMM5-112とが、それぞれ二重化され、1つのDIMMとして機能する。このマルチプロセッサ情報処理システム1における実効メモリ容量は、搭載総メモリ容量の1/2すなわち、DIMM6枚分である。メモリ二重化指定テーブル17とCPU/メモリ構成テーブル19とは、セルフテストPOSTの実行後にBIOSフラッシュ11に格納されると共に、各CPU3のメモリコントローラ15にもコピーが格納される。ここで、図12に示す例においてCPU3-1が故障する場合を考える。CPU3-1の故障時にOSが停止するので、自動再起動ASRR機能により、一定時間後に情報処理システム1が自動的に再起動される。CPU3-1の固定故障固定配線の故障などの場合には、情報処理システム1の再起動後に実行されるPOSTにおいても、CPU3-1の同じ故障が検出され、図15に示すように、CPU縮退部135はCPU3-1を切り離す縮退させる。その際、二重化判定部137は、情報処理システム1の起動中にメモリ二重化指定テーブル17を参照して、CPU縮退時のメモリ二重化解除フラグ33に値1が設定されているかを判定する。このフラグに値1が設定されている場合、メモリの二重化を解除するために、二重化解除部141は、CPU/メモリ構成テーブル19のメモリ二重化フラグ47の値を、図16に示すように修正する。詳細には、CPU0のメモリ二重化フラグ47の値を1から0に変更する。そして、マルチプロセッサ情報処理システム1が、図17に示す状態で起動される。詳細には、DIMM5-000~012のメモリの二重化メモリミラーが解除され、メモリの実効容量がDIMM6枚分となり、CPU縮退前の実効容量DIMM6枚と等しくなる。次に、図18~図23を参照して、4CPU構成の場合について説明する。図18は、4CPU構成のマルチプロセッサ情報処理システム1の正常動作時の模式構成図である。図19は、図18の状態でのメモリ二重化指定テーブル17の例を、図20は、CPU/メモリ構成テーブル19の例を示す。このマルチプロセッサ情報処理システム1においては、BIOSフラッシュ11に記憶されている図19のメモリ二重化指定テーブル17のメモリ二重化フラグ31に値1が設定されている。このため、図20のCPU/メモリ構成テーブル19に登録されているDIMM5の間で、図18に示すようにメモリの二重化が設定されている。そして、正常時には、例えば、DIMM5-000とDIMM5-010とが、DIMM5-001とDIMM5-011とが、DIMM5-002とDIMM5-012とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-100とDIMM5-110とが、DIMM5-101とDIMM5-111とが、DIMM5-102とDIMM5-112とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-200とDIMM5-210とが、DIMM5-201とDIMM5-211とが、DIMM5-202とDIMM5-212とが、それぞれ二重化され、1つのDIMMとして機能する。また、DIMM5-300とDIMM5-310とが、DIMM5-301とDIMM5-311とが、DIMM5-302とDIMM5-312とが、それぞれ二重化され、1つのDIMMとして機能する。このマルチプロセッサ情報処理システム1における実効メモリ容量は、搭載総メモリ容量の1/2すなわち、DIMM12枚分である。メモリ二重化指定テーブル17とCPU/メモリ構成テーブル19とは、セルフテストPOSTの実行後にBIOSフラッシュ11に格納されると共に、各CPU3のメモリコントローラ15にもコピーが格納される。ここで、図18に示す例においてCPU3-3が故障する場合を考える。CPU3-3の故障時にOSが停止するので、ASRR機能により、一定時間後に情報処理システム1が自動的に再起動される。CPU3-3の固定故障固定配線の故障などの場合には、情報処理システム1の再起動後に実行されるPOSTにおいても、CPU3-3の同じ故障が検出され、図21に示すように、CPU縮退部135はCPU3-3を切り離す縮退させる。その際、二重化判定部137は、情報処理システム1の起動中にメモリ二重化指定テーブル17を参照して、CPU縮退時のメモリ二重化解除フラグ33に値1が設定されているかを判定する。このフラグに値1が設定されている場合、メモリの二重化を解除するために、二重化解除部141は、CPU/メモリ構成テーブル19のメモリ二重化フラグ47の値のメモリ二重化フラグ47の値を、図22に示すように修正する。詳細には、CPU0、CPU1、CPU2のメモリ二重化フラグ47の値を1から0に変更する。しかし、縮退前の構成と比較すると、メモリの二重化が解除されたため、CPU3-0~3-2に接続されたDIMM518枚の容量となり、CPU3-3の縮退前のDIMM12枚よりも実効メモリ容量が増加してしまう。そこで、メモリ容量調整判定部143は、メモリ二重化指定テーブル17のメモリ二重化解除後の容量調整フラグ35に値1が設定されているかを判定する。このフラグに値1が設定されている場合、使用メモリ削減部147は、縮退前の二重化された実効メモリ容量と縮退後の二重化を解除したメモリ容量とが近づくように、DIMM5の一部を縮退させる。例えば、使用メモリ削減部147は、最若番のCPU3から順に、番号が最大のDIMM5、次にこれとミラーを形成していたDIMM5、番号が次に大きなDIMM5...の順で、DIMM5を縮退させる。例えば、使用メモリ削減部147は、CPU3-0の5-012、CPU3-1のDIMM5-112、CPU3-2のDIMM5-212を選択する。次に、これらとミラーを形成していたCPU3-0のDIMM5-002、CPU3-1の5-DIMM102、CPU3-2のDIMM5-202を選択する。そして、使用メモリ削減部147は、図22に示すように、DIMM5-012、5-102、5-112、5-202、5-212の対応する使用フラグ49の値を1から0に変更する。この例では、マルチプロセッサ情報処理システム1が、図23に示す状態で起動される。詳細には、DIMM5-000~312のメモリの二重化メモリミラーが解除されると共に、DIMM5-002、5-012、5-102、5-112、5-202、5-212が縮退される。つまり、CPU0~2に接続されたDIMM5のうち、各2枚づつ、計6枚の使用を無効に設定する。このように使用を制限することで、メモリの実効容量がDIMM12枚分となり、CPU縮退前の実効容量DIMM12枚と等しくなる。このように搭載されている個々のDIMM5の有効/無効を指定することによって、メモリの実効容量を縮退前の容量と一致させることができる。このように、上述の実施形態の一例においては、CPU3の縮退によりDIMM5も縮退されてしまった場合にも、メモリの二重化を解除して、利用可能なメモリ容量を増やすことができる。また、メモリの二重化を解除することにより、メモリの実効容量を、CPU故障前のメモリ容量に近づけることができる。また、情報処理システム1において利用可能なメモリ容量をCPU3の縮退の前後、あるいはCPU3の縮退からの復旧の前後で大幅に変化しないようにできるため、アプリケーションの動作を継続させ、性能を維持することが可能となる。[C.その他]上記の実施形態の例においては、情報処理システム1のBMC13またはCPU3が、情報処理プログラムを実行することにより、これらの正常性チェック実行部131、故障検出部133、CPU縮退部135、二重化判定部137、二重化解除判定部139、二重化解除部141、メモリ容量調整判定部143、メモリ容量算出部145、および使用メモリ削減部147として機能するようになっている。なお、これらの正常性チェック実行部131、故障検出部133、CPU縮退部135、二重化判定部137、二重化解除判定部139、二重化解除部141、メモリ容量調整判定部143、メモリ容量算出部145、および使用メモリ削減部147としての機能を実現するためのプログラム情報処理プログラムは、例えばフレキシブルディスク,CDCD-ROM,CD-R,CD-RW等,DVDDVD-ROM,DVD-RAM,DVD-R,DVDR,DVD-RW,DVDRW,HDDVD等,ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置記録媒体に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。正常性チェック実行部131、故障検出部133、CPU縮退部135、二重化判定部137、二重化解除判定部139、二重化解除部141、メモリ容量調整判定部143、メモリ容量算出部145、および使用メモリ削減部147としての機能を実現する際には、内部記憶装置BIOSフラッシュ11やROMに格納されたプログラムがコンピュータのプロセッサ本実施形態では情報処理システム1のBMC13やCPU3によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理システム1がコンピュータとしての機能を有しているのである。本開示の一実施形態について説明したが、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、上記の実施形態の例においては、上記の実施形態を、2CPU構成または4CPU構成の情報処理システムを例に採り上げて説明したが、CPUの個数は、2以上であれば任意の数でもよい。しかし、CPUの個数は一般的には2の倍数すなわち、2のべき乗であることが一般的であるが、どのような数でもよい。また、上記の実施形態の例においては、メモリがDIMMである場合を例に採り上げて説明したが、メモリは、二重化が可能なものであれば、DIMM以外のどのようなメモリであってもよい。また、上記の実施形態の例においては、DIMMの容量が全て等しい場合について説明したが、上記の実施形態は、DIMMの容量が異なるシステムにも適用することができる。また、上記の実施形態の例においては、使用メモリ削減部147が、最若番のCPUから順に、番号が最大のDIMMとこれとミラーを形成していたDIMM...順で、DIMMを縮退させたが、別の選択アルゴリズムを使用して、縮退するDIMMを選択してもよい。また、上記の実施形態の例においては、CPUの構成とメモリの構成とを1つのCPU/メモリ構成テーブル19にて管理しているが、CPU構成テーブルとメモリ構成テーブルとを別個に備えてもよい。更に、上記の実施形態の例においては、冗長化の一例として、メモリの二重化メモリミラーを例に採り上げて説明したが、上記の手法は、他のどのような冗長化方式にも適用することができる。"