(57)【要約】【課題】  システムボードに搭載された複数のメモリモジュールのＳＰＤの設定情報を一致させる。【解決手段】  メモリの設定情報を格納するＳＰＤ１２を備える複数のメモリモジュール１０Ａ，１０Ｂを備えるコンピュータ１において，メモリ・コントローラ２のＳＰＤコントローラ２０の設定情報取得部２１は，メモリモジュール１０Ａ，１０ＢのＳＰＤ１２Ａ，１２Ｂから設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂを取得し，設定情報保持部２４に保持する。設定情報比較部２２は，設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂを比較し，設定情報の内容が異なる場合に，設定情報書き換え部２３は，これらの設定情報のうちいずれか一の内容（ＳＰＤ＿Ａ）を用いて，メモリモジュール１０ＢのＳＰＤ１Ｂの設定情報（ＳＰＤ＿Ｂ）を上書きする。【選択図】  図１
2009230293.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶回路と，前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，
第２の記憶回路と，前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールと，
前記第１及び第２の記憶モジュールに接続され，前記第１及び第２の設定情報を取得し，前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きする記憶制御装置を有することを特徴とする情報処理装置。
【請求項２】
前記記憶制御装置は，
前記第１及び第２の設定情報が異なる場合には，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記設定情報は，記憶モジュールの動作周波数情報を含み，
前記記憶制御装置は，前記第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，前記第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
第１の記憶回路と前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，第２の記憶回路と前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールに接続される記憶制御装置において，
前記第１及び第２の設定情報を取得し，前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きすることを特徴とする記憶制御装置。
【請求項５】
前記記憶制御装置は，
前記第１及び第２の設定情報が異なる場合には，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きすることを特徴とする請求項４記載の記憶制御装置。
【請求項６】
前記設定情報は，記憶モジュールの動作周波数情報を含み，
前記記憶制御装置は，前記第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，前記第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることを特徴とする請求項４又は５記載の記憶制御装置。
【請求項７】
第１の記憶回路と前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，第２の記憶回路と前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールと，前記第１及び第２の記憶モジュールに接続される記憶制御装置を有する制御方法において，
前記記憶制御装置が，前記第１及び第２の記憶モジュールから，前記第１及び第２の設定情報を取得するステップと，
前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きするステップを有することを特徴とする制御方法。
【請求項８】
前記他の設定情報を上書きするステップは，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きするステップであることを特徴とする請求項７記載の制御方法。
【請求項９】
前記設定情報は，記憶モジュールの動作周波数情報を含み，
前記記憶制御装置は，前記第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，前記第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることを特徴とする請求項７又は８記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，記憶回路と，記憶回路に対する設定情報を保持する設定情報保持回路とを有する記憶モジュールが複数構成されている場合における記憶制御を行う情報処理装置に関する。
【０００２】
さらに，本発明は，前記設定情報を用いて記憶モジュールの制御を行う記憶制御装置及び制御方法に関する。
【背景技術】
【０００３】
一般的に，情報処理装置（以下「コンピュータ」という）が備える記憶モジュール（以下「メモリモジュール」という）には，ＳＰＤ（Serial Presence Detect）と呼ばれる設定情報の保持回路が搭載されている。ＳＰＤには，ＲＡＭチップなどの記憶回路（以下「メモリ」という）のサイズや最大動作周波数，信号タイミングなどの記憶モジュールの仕様に関する情報であって，記憶制御装置（以下「メモリ・コントローラ」という）の処理動作の内容決定に用いられる設定情報が格納されている。
【０００４】
コンピュータは，搭載されたメモリモジュールのＳＰＤに格納された設定情報を取得してメモリ制御の内容を決定している。
【０００５】
図８及び図９を用いて，複数のメモリモジュールを備えるコンピュータのシステムボードにおける従来のメモリ制御例を説明する。
【０００６】
図８に示すように，コンピュータ９のシステムボード内には， ＣＰＵ９０とともに，複数のメモリモジュール９１（９１Ａ，９１Ｂ），メモリ・コントローラ９５が搭載されている。
【０００７】
さらに，メモリモジュール９１（９１Ａ，９１Ｂ）上には，メモリ９２（９２Ａ，９２Ｂ）とＳＰＤ９３（９３Ａ，９３Ｂ）とが搭載されている。
【０００８】
ＳＰＤ９３（９３Ａ，９３Ｂ）には，ＣＰＵ９０がメモリを正常にアクセスできるように，メモリモジュール９１（９１Ａ，９１Ｂ）の仕様に関する情報，例えば，メモリサイズ，最大動作周波数，信号タイミングなどの設定情報が格納されている。図８に示す構成例では，メモリモジュール９１ＡのＳＰＤ９３Ａに設定情報ＳＰＤ＿Ａが，メモリモジュール９１ＢのＳＰＤ９３Ｂに設定情報ＳＰＤ＿Ｂが，それぞれ格納されている。
【０００９】
メモリ・コントローラ９５には，メモリモジュール９１Ａ，９１Ｂ各々のＳＰＤ９３Ａ，９３Ｂから設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂを読み出し／書き込みを行うＳＰＤ制御部９６が搭載されている。
【００１０】
メモリ・コントローラ９５は，一又は複数のＣＰＵ９０に接続し，ＳＰＤ制御部９６が読み出した設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂにもとづいてメモリモジュールの制御を行う。
【００１１】
特許文献１には，メモリモジュール９１（９１Ａ，９１Ｂ）の機能や仕様をコンピュータに通知する方法として，以下のような従来方法が開示されている。
【００１２】
第１の従来方法では，ＳＰＤ９３（９３Ａ，９３Ｂ）に格納された設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂをそのまま利用する。コンピュータ９では，ブート時に，ＳＰＤ制御部９６が，メモリモジュール９１（９１Ａ，９１Ｂ）のＳＰＤ９３（９３Ａ，９３Ｂ）から，設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂをそれぞれ読み出す。読み出された設定情報（メモリサイズ，最大動作周波数，信号タイミング等）をもとに，メモリ・コントローラ９５が，アクセスの信頼性が保証されるようにメモリ制御の内容を設定している（図９：ステップＳ９０）。
【００１３】
第２の従来方法では，ＳＰＤ９３（９３Ａ，９３Ｂ）から読み出した設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂをもとに，ＣＰＵ９０のＦＳＢ（Front Side Bus）の動作周波数に対して，メモリモジュール９１（９１Ａ，９１Ｂ）をさらに高い動作周波数，もしくは，さらに低い動作周波数で動作させるように調整を行い，具体的な調整値をコンピュータシステムに通知している（図９：ステップＳ９１）。
【特許文献１】特開２００４−７８９３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし，従来方法では，コンピュータ内に複数メモリモジュールが搭載されて，各メモリモジュールのＳＰＤの設定情報が異なる場合に，各メモリモジュールのＳＰＤの設定情報を一致させる必要があった。
【００１５】
したがって，システムボード上に搭載されている複数のメモリモジュールのＳＰＤのメモリ動作周波数がそれぞれ異なる場合に，メモリモジュールごとに，メモリ動作周波数の値が同じにするための比率を設定する調整回路等を設けなければならなかった。
【００１６】
さらに，ＣＰＵのＦＳＢ動作周波数に比べてメモリ動作周波数が速いメモリモジュールは，ＣＰＵが使用できないという問題があった。
【００１７】
本発明は，搭載されているメモリモジュールごとにメモリ動作周波数の比率を設定するための調整回路を設けることなく，ＳＰＤの設定情報が異なる複数のメモリモジュールについて，かかる設定情報を一致させることができる情報処理装置，記憶制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明にかかる情報処理装置は，第１の記憶回路と，第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，第２の記憶回路と，第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールと，前記第１及び第２の記憶モジュールに接続され，前記第１及び第２の設定情報を取得し，前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きする記憶制御装置を有する。
【００１９】
この情報処理装置（コンピュータ）が備える記憶制御装置（メモリ・コントローラ）は，複数の記憶モジュール（メモリモジュール）を備える場合に，各メモリモジュールの設定情報保持回路（ＳＰＤ）から設定情報を取得し，これらの設定情報の内容が異なる場合に，取得した設定情報の一の内容を用いて，残りのメモリモジュールのＳＰＤの設定情報を上書きし，コンピュータに搭載されている複数のメモリモジュールの設定情報を統一することができる。
【００２０】
また，この記憶制御装置（メモリ・コントローラ）は，第１及び第２の記憶モジュールの設定情報が異なる場合には，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きして，コンピュータに搭載されている複数のメモリモジュールの設定情報を統一することができる。
【００２１】
さらに，この設定情報は，記憶モジュールの動作周波数情報を含み，記憶制御装置（メモリ・コントローラ）は，第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることができる。
【００２２】
また，本発明にかかる制御方法は，第１の記憶回路と前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，第２の記憶回路と前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールと，第１及び第２の記憶モジュールに接続される記憶制御装置を有する制御方法において，記憶制御装置が，第１及び第２の記憶モジュールから，第１及び第２の設定情報を取得するステップと，第１及び第２の設定情報が異なる場合には，第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きするステップとを有する。
【発明の効果】
【００２３】
コンピュータのシステムボードに複数のメモリモジュールが搭載され，メモリモジュール内のＳＰＤに格納された設定情報がそれぞれ異なっている場合に，各メモリモジュールから読み出した設定情報の中の一の設定情報の内容を用いて，他のメモリモジュールのＳＰＤの設定情報を上書きすることによって，複数のメモリモジュールの設定情報を一致させることができる。
【００２４】
このため，メモリモジュールごとに，メモリ動作周波数を一定にするための比率を設定する調整回路を設ける必要がなくなる。
【００２５】
特に，設定情報のメモリ動作周波数が異なる複数のメモリモジュールに対して，より低いメモリ動作周波数に，他のメモリモジュールのメモリ動作周波数を一致させることができる。
【００２６】
さらに，設定情報のメモリ動作周波数がＣＰＵのＦＳＢ動作周波数より高いメモリモジュールがある場合に，ＣＰＵのＦＳＢ動作周波数に合わせた，より低いメモリ動作周波数の値を，このメモリモジュールの設定情報に上書きすることができ，従来であればＣＰＵが使用できないメモリモジュールを使用可能にできるため，ＣＰＵのデータ保管領域を拡大することができる。
【発明を実施するための最良の形態】
【００２７】
以下，本発明の実施の最良の形態を説明する。
【００２８】
図１は，本発明の一の実施例における情報処理装置（コンピュータ）１のシステムボード内の構成例を示す図である。
【００２９】
コンピュータ１のシステムボード上には，複数のメモリモジュール１０（１０Ａ，１０Ｂ），記憶制御装置（メモリ・コントローラ）２，一又は複数のＣＰＵ３が搭載されている。複数のＣＰＵ３は，メモリ・コントローラ２に接続している。
【００３０】
メモリモジュール１０（１０Ａ，１０Ｂ）には，それぞれ，ＲＡＭチップ等で構成される一又は複数の記憶回路（メモリ）１１（１１Ａ，１１Ｂ），設定情報保持回路（ＳＰＤ）１２（１２Ａ，１２Ｂ）が搭載されている。
【００３１】
ＳＰＤ１２は，シリアル方式でデータの読み書きを行う電気的消去可能なＲＯＭ（シリアルＥＥＰＲＯＭ）で実施される。ＳＰＤ自体は，ＪＥＤＥＣ（Joint Electron Device Engineering Council）によって策定された「JESD21:Configuration for Solid State Memories」の規格である。この規格に則って，ＳＰＤ１２には，メモリのサイズ，最大クロック周波数，信号タイミング等といったメモリモジュールのスペックに関する情報（設定情報）が格納される。
【００３２】
ＳＰＤ１２Ａには，メモリモジュール１０Ａに搭載されるメモリ１１Ａのスペックを示す設定情報ＳＰＤ＿Ａが格納され，同様に，ＳＰＤ１２Ｂには，メモリモジュール１０Ｂの設定情報ＳＰＤ＿Ｂが格納される。
【００３３】
メモリ・コントローラ２は，設定情報管理部（ＳＰＤコントローラ）２０を備える。
【００３４】
ＳＰＤコントローラ２０は，コンピュータ１のブート時／リブート時の初期化処理において，メモリモジュール１０（１０Ａ，１０Ｂ）のＳＰＤ１２（１２Ａ，１２Ｂ）に格納された設定情報（ＳＰＤ＿Ａ，ＳＰＤ＿Ｂ）を読み出し，読み出した設定情報の内容を用いてＳＰＤ１２（１２Ａ，１２Ｂ）に所定の情報を書き込む処理を行う。
【００３５】
ＳＰＤコントローラ２０は，設定情報取得部２１，設定情報比較部２２，設定情報書き換え部２３，及び設定情報保持部２４を備える。
【００３６】
設定情報取得部２１は，システムボード上に搭載されている全てのメモリモジュール１０（１０Ａ，１０Ｂ）のＳＰＤ１２（１２Ａ，１２Ｂ）それぞれから，設定情報（ＳＰＤ＿Ａ，ＳＰＤ＿Ｂ）を読み出し，設定情報保持部２４へ格納する。
【００３７】
設定情報比較部２２は，設定情報保持部２４で記憶されている設定情報を比較し，メモリモジュール１０（１０Ａ，１０Ｂ）の設定情報が異なっていれば，その設定情報の中から一つの設定情報を選択する。
【００３８】
設定情報書き換え部２３は，設定情報比較部２２によって，選択された一の設定情報の内容を用いて，メモリモジュール１０（１０Ａ，１０Ｂ）のＳＰＤ１２（１２Ａ，１２Ｂ）の設定情報を書き換える。
【００３９】
設定情報保持部２４は，設定情報取得部２１が読み出したＳＰＤ１２（１２Ａ，１２Ｂ）の設定情報（ＳＰＤ＿Ａ，ＳＰＤ＿Ｂ）の全部又は一部の情報を記憶する。
【００４０】
図２を用いて，メモリ・コントローラ２のブート時の処理を説明する。
【００４１】
図２に示すコンピュータ１のメモリ・コントローラ２は，ブート時の初期化処理内で，システムボード上に搭載された複数のメモリモジュール１０Ａ，１０ＢのＳＰＤ１２Ａ，１２Ｂに格納された設定情報のメモリ動作周波数を，より低い値に一致させる処理を行うものとする。
【００４２】
ステップＳＴ１：読み出し
ＳＰＤコントローラ２０の設定情報取得部２１は，メモリモジュール１０ＡのＳＰＤ１２Ａに格納された設定情報ＳＰＤ＿Ａと，メモリモジュール１０ＢのＳＰＤ１２Ｂに格納された設定情報ＳＰＤ＿Ｂとをそれぞれ読み出し，設定情報保持部２４に格納する。
【００４３】
ここで，設定情報ＳＰＤ＿Ａと設定情報ＳＰＤ＿Ｂのメモリ動作周波数の値が異なり，設定情報ＳＰＤ＿Ａのメモリ動作周波数Ｆ＿Ａが，設定情報ＳＰＤ＿Ｂのメモリ動作周波数Ｆ＿Ｂより低い（遅い）値であるとする。
【００４４】
ステップＳＴ２：比較
ＳＰＤコントローラ２０の設定情報比較部２２は，設定情報保持部２４に記憶されている設定情報ＳＰＤ＿Ａと設定情報ＳＰＤ＿Ｂとを比較する。設定情報比較部２２は，設定情報ＳＰＤ＿Ａと設定情報ＳＰＤ＿Ｂとのメモリ動作周波数が異なっていることを検出する。そして，全てのメモリモジュール１０のメモリ動作周波数を，より遅い設定情報ＳＰＤ＿Ａのものに合わせるために，設定情報ＳＰＤ＿Ａのメモリ動作周波数Ｆ＿Ａを書き換え処理の値として特定する。
【００４５】
ステップＳＴ３：書き込み
ＳＰＤコントローラ２０の設定情報書き換え部２３は，特定されたメモリ動作周波数Ｆ＿Ａの値を用いて，メモリモジュール１０ＢのＳＰＤ１２Ｂの設定情報ＳＰＤ＿Ｂのメモリ動作周波数Ｆ＿Ｂ（値）を上書きする。
【００４６】
ステップＳＴ１〜ＳＴ３の処理後，設定情報取得部２１は，ＳＰＤ１２Ａ，１２Ｂから設定情報ＳＰＤ＿Ａと設定情報ＳＰＤ＿Ｂとをそれぞれ読み出し（ステップＳＴ１），設定情報比較部２２は，設定情報ＳＰＤ＿Ａと設定情報ＳＰＤ＿Ｂとを比較する（ステップＳＴ２）。設定情報ＳＰＤ＿Ａと設定情報ＳＰＤ＿Ｂとのメモリ動作周波数が同じとなり，システムボード上に搭載された全メモリモジュール１０（１０Ａ，１０Ｂ）が同じ設定情報を保持していることを確認する。
【００４７】
このようにして，システムボードに搭載されている全てのメモリモジュール１０（１０Ａ，１０Ｂ）の設定情報を，メモリ動作周波数が低い（遅い）メモリモジュール１０Ａに合わせることができるため，ＣＰＵ３は，これらのメモリモジュール１０Ａ，１０Ｂを使用できるようになる。
【００４８】
次に，図３を用いて，メモリ・コントローラ２のリブート時の処理を説明する。
【００４９】
図３に示すコンピュータ１のシステムボード上は，複数のメモリモジュール１０（１０Ａ，１０Ｂ，１０Ｃ），メモリ・コントローラ２，ＣＰＵ３が搭載されている。
【００５０】
各メモリモジュール１０Ａ，１０Ｂ，１０ＣのＳＰＤ１２Ａ，１２Ｂ，１２Ｃに格納された設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂ，ＳＰＤ＿Ｃの内容が異なり，各メモリ動作周波数Ｆ＿Ａ，Ｆ＿Ｂ，Ｆ＿Ｃの値が“Ｆ＿Ａ＜Ｆ＿Ｂ＜Ｆ＿Ｃ”であるとする。
【００５１】
また，動作中に何らかの原因によって，動作周波数が低い（遅い）メモリモジュール１０Ａが故障し，縮退すると仮定する。
【００５２】
まず，コンピュータ１のブート時の初期化処理において，メモリ・コントローラ２は，メモリモジュール１０のＳＰＤ１２に格納された設定情報を，いずれか一の設定情報を用いて書き換えるために，以下のステップＳＴ１〜ＳＴ４の処理を行う。
【００５３】
ステップＳＴ１：読み出し
ＳＰＤコントローラ２０の設定情報取得部２１は，メモリモジュール１０ＡのＳＰＤ１２Ａに格納された設定情報ＳＰＤ＿Ａ，メモリモジュール１０ＢのＳＰＤ１２Ｂに格納された設定情報ＳＰＤ＿Ｂ，メモリモジュール１０ＣのＳＰＤ１２Ｃに格納された設定情報ＳＰＤ＿Ｃをそれぞれ読み出し，設定情報保持部２４に格納する。
【００５４】
ステップＳＴ２：比較
ＳＰＤコントローラ２０の設定情報比較部２２は，設定情報保持部２４に記憶されている設定情報ＳＰＤ＿Ａ，ＳＰＤ＿Ｂ，ＳＰＤ＿Ｃをそれぞれ比較する。設定情報比較部２２は，各設定情報のメモリ動作周波数の値が異なっていることを検出する。
【００５５】
そこで，全てのメモリモジュール１０のメモリ動作周波数のうち，より遅い設定情報ＳＰＤ＿Ａのメモリ動作周波数Ｆ＿Ａを，書き換え処理の情報（値）として特定する。
【００５６】
ステップＳＴ３：書き込み
ＳＰＤコントローラ２０の設定情報書き換え部２３は，特定された設定情報ＳＰＤ＿Ａのメモリ動作周波数Ｆ＿Ａの値を用いて，メモリモジュール１０ＢのＳＰＤ１２Ｂの設定情報ＳＰＤ＿Ｂのメモリ動作周波数Ｆ＿Ｂ（値）を上書きする。同様に，メモリモジュール１０ＣのＳＰＤ１２Ｃの設定情報ＳＰＤ＿Ｃのメモリ動作周波数Ｆ＿Ｃ（値）をメモリ動作周波数Ｆ＿Ａ（値）で上書きする。
【００５７】
ステップＳＴ１〜ＳＴ３の処理によって，すべてのメモリモジュール１０（１０Ａ，１０Ｂ，１０Ｃ）のＳＰＤ１２（１２Ａ，１２Ｂ，１２Ｃ）に，メモリ動作周波数Ｆ＿Ａが書き込まれる。
【００５８】
その後に，メモリモジュール１０Ａが縮退すると，メモリ・コントローラ２は，リブート時の初期化処理において，以下のステップＳＴ４，ＳＴ５の処理を行う。
【００５９】
ステップＳＴ４：比較
設定情報比較部２２は，設定情報保持部２４に記憶されている設定情報をもとに，縮退したメモリモジュール１０Ａの設定情報ＳＰＤ＿Ａのメモリ動作周波数Ｆ＿Ａの値と，それ以外のメモリモジュール１０Ｂ，１０Ｃの設定情報ＳＰＤ＿Ｂ，ＳＰＤ＿Ｃのメモリ動作周波数Ｆ＿Ｂ，Ｆ＿Ｃの値とを比較する。動作周波数Ｆ＿Ａの値が，メモリ動作周波数Ｆ＿Ｂ，Ｆ＿Ｃの値より低いと判定する。
【００６０】
次に，メモリ動作周波数Ｆ＿ＢとＦ＿Ｃとの値を比較し，より低いメモリ動作周波数Ｆ＿Ｂを，書き換え処理の情報（値）として特定する。
【００６１】
ステップＳＴ５：書き込み
ＳＰＤコントローラ２０の設定情報書き換え部２３は，特定されたメモリ動作周波数Ｆ＿Ｂの値を用いて，メモリモジュール１０ＣのＳＰＤ１２Ｃに格納された設定情報ＳＰＤ＿ＣのＦ＿Ｃ（値）を上書きする。
【００６２】
これにより，メモリモジュール１０Ａの縮退後，システムボード上の使用可能なメモリモジュール１０Ｂ，１０Ｃのメモリ動作周波数を，設定情報ＳＰＤ＿Ａのメモリ動作周波数Ｆ＿Ａより速いメモリ動作周波数Ｆ＿Ｂに変更することができる。したがって，ＣＰＵ３は，使用可能なメモリモジュールを，より速い動作速度で使用できるようになる。
【００６３】
図４に，ＳＰＤ１２に格納される設定情報の一部のデータ構成例を示す。
【００６４】
図４に示すの設定情報のデータ構成例は，「JESD21:Configuration for Solid State Memories」の規格にもとづいた設定情報のうち，メモリ動作周波数に関連する項目の例である。
【００６５】
図２に示す構成のコンピュータ１において，メモリモジュール１０Ｂの設定情報のメモリ動作周波数Ｆ＿Ｂが５３３Ｍ（クロック数），メモリモジュール１０Ａの設定情報のメモリ動作周波数Ｆ＿Ａが４００Ｍ（クロック数）であるとする。
【００６６】
ＳＰＤコントローラ２０の設定情報書き換え部２３によって，メモリモジュール１０Ｂの設定情報のメモリ動作周波数が５３３Ｍから４００Ｍへ書き換えられる場合に，図４に示す設定情報で，メモリ動作周波数に関連する項目９（SDRAM Cycle time at Maximum Supported CAS Latency），項目２３（Minimum Clock Cycle），項目３７（Internal write to read command delay(tWTR)）の値（ＨＥＸ）が，それぞれ，“３Ｄ→５０”，“３Ｄ→５０”，“１Ｅ→２８”へ書き換えられる。
【００６７】
図５〜図７に，メモリ・コントローラ２の処理フローを示す。
【００６８】
図５は，ブート時のメモリ・コントローラ２の処理フロー図である。
【００６９】
メモリ・コントローラ２のＳＰＤコントローラ２０において，設定情報取得部２１が，システムボードに搭載された全てのメモリモジュール１０のＳＰＤ１２から設定情報を読み取り，設定情報保持部２４へ格納する（ステップＳ１０）。
【００７０】
そして，設定情報比較部２２は，全てのメモリモジュール１０の設定情報が同じかどうか比較する（ステップＳ１１）。比較の結果，収集した設定情報のメモリ動作周波数の値が異なっていれば（ステップＳ１１の不一致），ステップＳ１２の処理へ進み，設定情報のメモリ動作周波数の値が同じであれば（ステップＳ１１の一致），ステップＳ１４の処理へ進む。
【００７１】
ステップＳ１２の処理では，設定情報保持部２４の設定情報の中から，メモリ動作周波数が低い（遅い）設定情報を特定する。そして，設定情報書き換え部２３は，全メモリモジュール１０について，各ＳＰＤ１２の設定情報のメモリ動作周波数を，ステップＳ１２の処理で特定した設定情報のメモリ動作周波数の値で上書きする（ステップＳ１３）。
【００７２】
ステップＳ１４の処理では，設定情報比較部２２は，全メモリモジュール１０のＳＰＤ１２に格納されている設定情報のメモリ動作周波数が一致しているかを確認する。
【００７３】
図６及び図７は，メモリモジュールの縮退が発生した場合のメモリ・コントローラ２の処理フロー図である。
【００７４】
図６に示す処理フローのステップＳ２０〜Ｓ２４の処理は，図５の処理フローのステップＳ１０〜Ｓ１４と同様の内容であるので，説明を省略する。
【００７５】
システムボートのメモリモジュール１０Ａが縮退すると（ステップＳ２５），設定情報比較部２２は，設定情報保持部２４に記憶されている，縮退したメモリモジュール１０Ａの設定情報のメモリ動作周波数Ｆ＿Ａと，他のメモリモジュール１０Ｂ，１０Ｃの設定情報のメモリ動作周波数Ｆ＿Ｂ，Ｆ＿Ｃとを比較する（ステップＳ２６）。
【００７６】
メモリ動作周波数Ｆ＿Ａが，メモリ動作周波数Ｆ＿Ｂ，Ｆ＿Ｃより低い（遅い）値の場合には（ステップＳ２７のＹＥＳ），設定情報保持部２４に記憶しているメモリ動作周波数の中から，より高い（速い）メモリ動作周波数Ｆ＿Ｂを選択する（ステップＳ２８）。そして，設定情報書き換え部２３は，メモリモジュール１０Ｃのメモリ動作周波数Ｆ＿Ｃがメモリ動作周波数Ｆ＿Ｂより高いので，メモリモジュール１０ＣのＳＰＤ１２Ｃのメモリ動作周波数Ｆ＿Ｃをメモリ動作周波数Ｆ＿Ｂで上書きする（ステップＳ２９）。
【００７７】
その後，設定情報比較部２２は，全メモリモジュール１０のＳＰＤ１２に格納されている設定情報のメモリ動作周波数が一致しているかを確認する（ステップＳ２１０）。
【００７８】
以上説明したように，コンピュータ１のメモリ・コントローラ２は，システムボード上に搭載されたメモリモジュールのＳＰＤに格納されている設定情報を直接上書きすることによって変更できるため，複数のメモリモジュールがシステムボードに実装されていても，ＳＰＤの設定情報を統一することができる。
【００７９】
特に，各メモリモジュールのＳＰＤの設定情報のうちメモリ動作周波数が異なる場合に，全てのメモリモジュールのメモリ動作周波数を，より低い（遅い）値で動作するメモリモジュールのものに合わせることができる。
【００８０】
さらに，ユーザは，全メモリモジュールのＳＰＤの設定情報のメモリ動作周波数を，自ら設定した値，例えば，ＣＰＵのＦＳＢの動作周波数の値を用いて一致させることも可能である。
【００８１】
以上，本発明をその実施の形態により説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【００８２】
例えば，コンピュータ１のシステムボード上に搭載されたメモリモジュールの一つが，動作途中で故障して縮退した場合に，縮退したメモリモジュールのＳＰＤの設定情報のメモリ動作周波数が，残りのメモリモジュールのメモリ動作周波数より低い（遅い）ときは，メモリ・コントローラ２の設定情報書き換え部２３は，設定情報保持部２４に記憶されている設定情報を用いて，ブート時の設定情報の上書き処理によって変更された情報を，そのメモリモジュールのＳＰＤの元の設定情報の値（例えば，速いメモリ動作周波数の値）に書き戻すようにしてもよい。
【００８３】
本発明の形態及び実施例の特徴を列記すると以下のとおりである。
【００８４】
（付記１）  第１の記憶回路と，前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，
第２の記憶回路と，前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールと，
前記第１及び第２の記憶モジュールに接続され，前記第１及び第２の設定情報を取得し，前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きする記憶制御装置を有することを特徴とする情報処理装置。
【００８５】
（付記２）  前記記憶制御装置は，
前記第１及び第２の設定情報が異なる場合には，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きすることを特徴とする前記付記１記載の情報処理装置。
【００８６】
（付記３）  前記設定情報は，記憶モジュールの動作周波数情報を含み，
前記記憶制御装置は，前記第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，前記第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることを特徴とする前記付記１又は２記載の情報処理装置。
【００８７】
（付記４）  前記記憶制御装置はさらに，
前記上書き前の前記第１及び第２の動作周波数情報を保持する動作周波数情報保持部を有するとともに，
前記第１及び第２の記憶回路の故障を検出し，前記第１又は第２の記憶回路の故障を検出した場合には，前記故障が検出された記憶回路を縮退し，さらに，
前記動作周波数情報保持部に保持された動作周波数情報のうち，より低い方の動作周波数で動作する記憶回路が縮退した場合には，前記動作周波数情報保持部に保持された動作周波数情報のうち，より高い方の動作周波数情報を用いて，より高い方の動作周波数で動作する記憶回路の設定情報に含まれる動作周波数情報を上書きすることを特徴とする前記付記３記載の情報処理装置。
【００８８】
（付記５）  第１の記憶回路と前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，第２の記憶回路と前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールに接続される記憶制御装置において，
前記第１及び第２の設定情報を取得し，前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きすることを特徴とする記憶制御装置。
【００８９】
（付記６）  前記記憶制御装置は，
前記第１及び第２の設定情報が異なる場合には，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きすることを特徴とする前記付記５記載の記憶制御装置。
【００９０】
（付記７）  前記設定情報は，記憶モジュールの動作周波数情報を含み，
前記記憶制御装置は，前記第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，前記第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることを特徴とする前記付記５又は６記載の記憶制御装置。
【００９１】
（付記８）  前記記憶制御装置はさらに，
前記上書き前の前記第１及び第２の動作周波数情報を保持する動作周波数情報保持部を有するとともに，
前記第１及び第２の記憶回路の故障を検出し，前記第１又は第２の記憶回路の故障を検出した場合には，前記故障が検出された記憶回路を縮退し，さらに，
前記動作周波数情報保持部に保持された動作周波数情報のうち，より低い方の動作周波数で動作する記憶回路が縮退した場合には，前記動作周波数情報保持部に保持された動作周波数情報のうち，より高い方の動作周波数情報を用いて，より高い方の動作周波数で動作する記憶回路の設定情報に含まれる動作周波数情報を上書きすることを特徴とする前記付記７記載の記憶制御装置。
【００９２】
（付記９）  第１の記憶回路と前記第１の記憶回路に対する第１の設定情報を保持する第１の設定情報保持回路を有する第１の記憶モジュールと，第２の記憶回路と前記第２の記憶回路に対する第２の設定情報を保持する第２の設定情報保持回路を有する第２の記憶モジュールと，前記第１及び第２の記憶モジュールに接続される記憶制御装置を有する制御方法において，
前記記憶制御装置が，前記第１及び第２の記憶モジュールから，前記第１及び第２の設定情報を取得するステップと，
前記第１及び第２の設定情報が異なる場合には，前記第１及び第２の設定情報のうちいずれか一の内容を用いて，他の設定情報を上書きするステップを有することを特徴とする制御方法。
【００９３】
（付記１０）  前記他の設定情報を上書きするステップは，前記保持した一の設定情報の内容を用いて，他の設定情報を上書きするステップであることを特徴とする前記付記９記載の制御方法。
【００９４】
（付記１１）  前記設定情報は，記憶モジュールの動作周波数情報を含み，
前記記憶制御装置は，前記第１及び第２の設定情報に含まれる第１及び第２の動作周波数情報が異なる場合には，前記第１及び第２の動作周波数情報のうち，より低い方の動作周波数情報を用いて，他の設定情報に含まれる動作周波数情報を上書きすることを特徴とする前記付記９又は１０記載の制御方法。
【００９５】
（付記１２）  前記制御方法はさらに，
動作周波数情報保持部が，前記上書き前の前記第１及び第２の動作周波数情報を保持するステップと，
前記記憶制御装置が，前記第１及び第２の記憶回路の故障を検出するステップと，
前記第１又は第２の記憶回路の故障を検出した場合には，前記記憶制御装置が，前記故障が検出された記憶回路を縮退するステップと，
前記動作周波数情報保持部に保持された動作周波数情報のうち，より低い方の動作周波数で動作する記憶回路が縮退した場合には，前記記憶制御装置が，前記動作周波数情報保持部に保持された動作周波数情報のうち，より高い方の動作周波数情報を用いて，より高い方の動作周波数で動作する記憶回路の設定情報に含まれる動作周波数情報を上書きするステップを有することを特徴とする前記付記１１記載の制御方法。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施例における情報処理装置（コンピュータ）のシステムボード内の構成例を示す図である。
【図２】記憶制御装置（メモリ・コントローラ）のブート時の処理を説明するための図である。
【図３】記憶制御装置（メモリ・コントローラ）のリブート時の処理を説明するための図である。
【図４】設定情報保持回路（ＳＰＤ）に格納される設定情報の値の変更例を示す図である。
【図５】ブート時の記憶制御装置（メモリ・コントローラ）の処理フロー図である。
【図６】メモリモジュールの縮退が発生した場合の記憶制御装置（メモリ・コントローラ）の処理フロー図である。
【図７】メモリモジュールの縮退が発生した場合の記憶制御装置（メモリ・コントローラ）の処理フロー図である。
【図８】複数のメモリモジュールを備える情報処理装置（コンピュータ）のシステムボードにおける従来のメモリ制御の一例を説明するための図である。
【図９】従来のメモリ制御の処理フロー図である。
【符号の説明】
【００９７】
１  情報処理装置（コンピュータ）
２  記憶制御装置（メモリ・コントローラ）
３  ＣＰＵ
１０（１０Ａ，１０Ｂ，１０Ｃ）  記憶モジュール
１１（１１Ａ，１１Ｂ）  記憶回路（メモリ）
１２（１２Ａ，１２Ｂ，１２Ｃ）  設定情報保持回路（ＳＰＤ）
２０  設定情報管理部（ＳＰＤコントローラ）
２１  設定情報取得部
２２  設定情報比較部
２３  設定情報書き換え部
２４  設定情報保持部
【図１】
2009230293.tif 000003
【図２】
2009230293.tif 000004
【図３】
2009230293.tif 000005
【図４】
2009230293.tif 000006
【図５】
2009230293.tif 000007
【図６】
2009230293.tif 000008
【図７】
2009230293.tif 000009
【図８】
2009230293.tif 000010
【図９】
2009230293.tif 000011