(57)【要約】【課題】情報処理装置の起動時間を短縮しつつ、情報処理装置に備えられたメインメモリを安定して動作させること。【解決手段】演算処理を行うための作業領域として用いられるメモリモジュールを搭載する情報処理装置の起動を制御する起動制御装置であって、メモリモジュールの動作を制御するための制御情報を生成する制御情報生成部と、生成された制御情報を記憶媒体に記憶させる記憶処理部と、制御情報に従ってメモリモジュールの動作を制御する制御部と、メモリモジュールの挿抜の有無を判定する挿抜判定部とを含み、制御部は、判定結果に応じて、情報処理装置の起動前から記憶媒体に記憶されている制御情報に従ってメモリモジュールの動作を制御することを特徴とする。【選択図】図３
2016099788.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行うための作業領域として用いられるメモリモジュールを搭載する情報処理装置の起動を制御する起動制御装置であって、
前記メモリモジュールの動作を制御するための制御情報を生成する制御情報生成部と、
生成された前記制御情報を記憶媒体に記憶させる記憶処理部と、
前記制御情報に従って前記メモリモジュールの動作を制御する制御部と、
前記メモリモジュールの挿抜の有無を判定する挿抜判定部と
を含み、
前記制御部は、前記判定結果に応じて、前記情報処理装置の起動前から前記記憶媒体に記憶されている前記制御情報に従って前記メモリモジュールの動作を制御する
ことを特徴とする起動制御装置。
【請求項２】
前記制御情報生成部は、前記メモリモジュールが挿抜されたと判定された場合に、前記制御情報を生成し、
前記制御部は、前記メモリモジュールが挿抜されたと判定された場合に、生成された前記制御情報に従って前記メモリモジュールの動作を制御する
ことを特徴とする請求項１に記載の起動制御装置。
【請求項３】
前記制御部は、前記メモリモジュールが挿抜されていないと判定された場合に、前記情報処理装置の起動前から前記記憶媒体に記憶されている前記制御情報に従って前記メモリモジュールの動作を制御する
ことを特徴とする請求項１に記載の起動制御装置。
【請求項４】
前記挿抜判定部は、前記メモリモジュールに格納されている所定の情報に基づいて、前記メモリモジュールの挿抜の有無を判定する
ことを特徴とする請求項１〜３のいずれか１項に記載の起動制御装置。
【請求項５】
前記制御情報生成部は、前記制御情報を生成した場合に、前記メモリモジュールに前記制御情報を生成したことを示す生成済情報を前記所定の情報として記憶させ、
前記挿抜判定部は、前記メモリモジュールに前記生成済情報が格納されている場合、前記メモリモジュールが挿抜されていないと判定する
ことを特徴とする請求項４に記載の起動制御装置。
【請求項６】
前記制御情報生成部は、前記制御情報を生成した場合に、前記メモリモジュール及び前記記憶媒体それぞれに対となる識別情報を前記所定の情報として記憶させ、
前記挿抜判定部は、前記メモリモジュール及び前記記憶媒体に対となる前記識別情報が格納されている場合、前記メモリモジュールが挿抜されていないと判定する
ことを特徴とする請求項４に記載の起動制御装置。
【請求項７】
前記起動制御装置に搭載された電池により入力される信号の電圧レベルに基づいて、前記メモリモジュールの挿抜を検知して挿抜検知信号を出力する挿抜検知部
を含み、
前記挿抜判定部は、前記挿抜検知信号が入力された場合に、前記メモリモジュールが挿抜されたと判定する
ことを特徴とする請求項１〜６のいずれか１項に記載の起動制御装置。
【請求項８】
請求項１〜７のいずれか１項に記載の起動制御装置を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動制御装置及び情報処理装置に関する。
【背景技術】
【０００２】
ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ及び画像形成装置等の情報処理装置においては、メインメモリとして例えばＤＤＲ３−ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ３  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられている。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、情報処理装置の起動時にメインメモリの動作を制御するための制御情報を生成する。
【０００３】
制御情報は、例えば、メインメモリの内部に格納されているメモリ情報（動作周波数、メモリ容量等）及びメモリトレーニングの実行結果に基づいて生成される。メモリトレーニングは、メインメモリの基板上の配線遅延や各チップ内部の遅延のバラつき等を調整する機能である。近年のメインメモリは、非常に高速（例えば８００Ｍｂｐｓ〜２０００Ｍｂｐｓ）に動作するので、安定した高速動作を実現するために、情報処理装置の起動時にこのようなメモリトレーニングが実行される。
【０００４】
情報処理装置の起動時に、制御情報を生成するために上述したメモリ情報の読み込みやメモリトレーニングの処理が行われると、これらの処理に時間がかかり情報処理装置の起動時間が長くなる場合がある。このような問題を解決するために、ＣＰＵが初回起動時にメモリトレーニングの実行結果やメモリ情報に基づいて生成した制御情報を不揮発性メモリに記憶させて、２回目以降の起動時には、不揮発性メモリから制御情報を取得することが知られている。
【０００５】
しかしながら、不揮発性メモリに制御情報が格納された後に、異なるメインメモリに差し替えられたり、新たなメインメモリが追加されたりした場合、不揮発性メモリに格納された制御情報が新たなメインメモリに適さず、動作が不安定になる場合がある。そこで、２回目以降の起動時に、不揮発性メモリに格納されている設定情報に従ってメインメモリの動作確認を行い、確認結果に応じて不揮発性メモリに格納されている設定情報が正しいことを確認することが提案されている（例えば、特許文献１を参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された技術を用いた場合、情報処理装置の毎回起動時に、不揮発性メモリに格納されている制御情報に従ってメインメモリの動作確認を行うための時間を要するので、その分情報処理装置の起動時間が長くなる。
【０００７】
本発明は、このような課題を解決するためになされたものであり、情報処理装置の起動時間を短縮しつつ、情報処理装置に備えられたメインメモリを安定して動作させることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様は、演算処理を行うための作業領域として用いられるメモリモジュールを搭載する情報処理装置の起動を制御する起動制御装置であって、前記メモリモジュールの動作を制御するための制御情報を生成する制御情報生成部と、生成された前記制御情報を記憶媒体に記憶させる記憶処理部と、前記制御情報に従って前記メモリモジュールの動作を制御する制御部と、前記メモリモジュールの挿抜の有無を判定する挿抜判定部とを含み、前記制御部は、前記判定結果に応じて、前記情報処理装置の起動前から前記記憶媒体に記憶されている前記制御情報に従って前記メモリモジュールの動作を制御することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、情報処理装置の起動時間を短縮しつつ、情報処理装置に備えられたメインメモリを安定して動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る情報処理装置の構成を例示するブロック図である。
【図２】本発明の実施形態に係るＳＰＤデータに含まれる情報を定義するテーブルを例示する図である。
【図３】本発明の実施形態に係るメモリコントローラの処理を例示するフローチャートである。
【図４】本発明の実施形態に係るメモリコントローラの処理を例示するフローチャートである。
【図５】本発明の実施形態に係る起動制御モジュールの回路構成を例示する図である。
【図６】本発明の実施形態に係る挿抜検知部に入力される信号の電圧レベルのパターンを例示する図である。
【図７】本発明の実施形態に係るメモリコントローラの処理を例示するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、各種の処理を行うＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ及び画像形成装置等の情報処理装置を例として説明し、主に、情報処理装置の起動時の処理を説明する。
【００１２】
図１は、本実施形態に係る情報処理装置１の構成を例示するブロック図である。なお、図１は、本実施形態に係る情報処理装置１の構成のうち情報処理装置１の起動制御に関する構成を示す。図１に示すように、情報処理装置１は、主電源スイッチ１０、起動制御モジュール１００を含む。また、起動制御モジュール１００は、制御用記憶部１０１、システム制御部１１０及びＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）モジュール１２０を含む。起動制御モジュール１００は、情報処理装置１の起動を制御する起動制御装置として機能し、本実施形態の要旨となる構成である。
【００１３】
また、システム制御部１１０は、メモリコントローラ１１１、ＣＰＵ１１２及びＩ／Ｆ１１３を含む。また、ＤＩＭＭモジュール１２０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２１及びＤＩＭＭ用記憶部１２２を含む。なお、本実施形態においては、ＤＩＭＭモジュール１２０が起動制御モジュール１００に含まれる場合を例として説明しているが、情報処理装置１に搭載されている態様であれば、起動制御モジュール１００に含まれることは必須ではない。
【００１４】
主電源スイッチ１０は、情報処理装置１全体の主電源のスイッチであり、主電源スイッチ１０がオンされることにより、システム制御部１１０に対して起動信号が出力される。制御用記憶部１０１は、ＮＯＲ型やＮＡＮＤ型のフラッシュメモリ等、情報の読み書きが可能な不揮発性の記憶媒体であり、情報処理装置１の起動に必要な起動用プログラムやファームウェア等のプログラムを格納する。また、制御用記憶部１０１には、後述するＤＩＭＭモジュール１２０の動作を制御するための制御情報が格納される。
【００１５】
なお、本実施形態においては、制御用記憶部１０１にファームウェア等のプログラム及び制御情報がともに格納されている場合を例として説明しているが、これらのデータは別の記憶媒体に記憶されてもよい。その場合、起動用プログラムやファームウェア等のプログラムは、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の読み出し専用の不揮発性の記録媒体に格納されてもよい。
【００１６】
ＤＩＭＭモジュール１２０は、ＣＰＵ１１２が演算処理を行うための作業領域として用いられるメモリモジュールであり、情報処理装置１のメインメモリとして用いられる。また、ＤＩＭＭモジュール１２０は、挿抜可能であり、メモリ変更や拡張等のために同一規格の別のＤＩＭＭモジュール１２０に差し替えられたり、新たなＤＩＭＭモジュール１２０が追加されたりすることがある。
【００１７】
また、ＤＩＭＭモジュール１２０には、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）規格に従って、複数のＲＡＭ１２１が搭載されている。ＲＡＭ１２１は、ＤＤＲ３−ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ３  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の情報の高速な読み書きが可能な揮発性の記憶媒体である。
【００１８】
ＤＩＭＭ用記憶部１２２は、ＤＩＭＭモジュール１２０に搭載されているＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の情報の読み書きが可能な不揮発性の記憶媒体である。ＤＩＭＭ用記憶部１２２には、ＤＩＭＭモジュール１２０のメモリ速度やメモリ容量等の仕様情報であるＳＰＤ（Ｓｅｒｉａｌ  Ｐｒｅｓｅｎｃｅ  Ｄｅｔｅｃｔ）データが格納されている。
【００１９】
図２は、ＳＰＤデータに含まれる情報を定義するテーブルを例示する図である。ＳＰＤデータは、ＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）規格に従って定められている。図２に示したテーブルに従って、ＤＩＭＭ用記憶部１２２の各アドレスの記憶領域にＤＩＭＭモジュール１２０に関する様々な情報がＳＰＤデータとして格納されている。
【００２０】
例えば、図２に示すように、“Ｂｙｔｅ  Ｎｕｍｂｅｒ”が“３”のアドレスの記憶領域には、情報の種類“Ｆｕｎｃｔｉｏｎ  Ｄｅｓｃｒｉｂｅｄ”に記載されている“Ｍｏｄｕｌｅ  Ｔｙｐｅ”であるＤＩＭＭの種類情報が格納されている。また、“Ｂｙｔｅ  Ｎｕｍｂｅｒ”が“１３”や“３９−５９”のアドレスの記憶領域は、様々なデータが格納される予約領域（“Ｒｅｓｅｒｖｅｄ”）である。後述するメモリコントローラ１１１は、図２に示したＳＰＤデータの規格に従って、ＤＩＭＭ用記憶部１２２からＳＰＤデータに含まれる所望のデータを取得する。
【００２１】
システム制御部１１０は、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）やＡＳＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｓｔａｎｄａｒｄ  Ｐｒｏｄｕｃｅ）等であり、情報処理装置１の起動処理や情報処理装置１の動作全体を制御する。具体的には、例例えば、システム制御部１１０は、主電源スイッチ１０からの起動信号を受けて、制御用記憶部１０１に記憶されている起動用のプログラム（ブートローダ）を取得し、取得したプログラムに従って情報処理装置１の起動処理を実行する。なお、本実施形態においては、主電源スイッチ１０からの起動信号により起動処理が開始する場合を例として説明するが、主電源スイッチ１０に限らず何らかの起動信号により起動処理が開始すればよい。
【００２２】
ＣＰＵ１１２は、演算手段であり、制御用記憶部１０１に記憶されているプログラム等に従って演算を行う。Ｉ／Ｆ１１３は、各種のハードウェアから情報をやりとりするために、各ハードウェアに対応して設けられている。例えば、ＤＩＭＭ用記憶部１２２がＥＥＰＲＯＭである場合、ＤＩＭＭ用記憶部１２２と情報をやりとりするＩ／Ｆ１１３は、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＳＭＢｕｓである。
【００２３】
メモリコントローラ１１１は、ＤＩＭＭモジュール１２０を制御する。具体的には、メモリコントローラ１１１は、ＤＩＭＭモジュール１２０の動作を制御するための制御情報を生成する制御情報生成部として機能する。ＤＩＭＭモジュール１２０を構成するＤＤＲ３−ＳＤＲＡＭは高速動作するので、安定した動作を実現するために、ＤＩＭＭモジュール１２０の種類等に応じて、各信号の遅延値やドライブの強さ等の制御情報が適切に生成される必要がある。メモリコントローラ１１１は、このようなＤＩＭＭモジュール１２０が安定して動作するための制御情報を生成する。
【００２４】
具体的には、例えば、メモリコントローラ１１１は、Ｉ／Ｆ１１３を介してＤＩＭＭ用記憶部１２２に記憶されているＳＰＤデータからＤＩＭＭモジュール１２０の種類、メモリ速度、メモリ容量等を取得して、制御情報を生成する。さらに、メモリコントローラ１１１は、ＤＩＭＭモジュール１２０に対してメモリトレーニングを実行し、実行結果に応じて制御情報を生成する。
【００２５】
メモリトレーニングは、ＤＩＭＭモジュール１２０の基板上の配線遅延や各チップ内部の遅延のバラつき等を調整する機能である。具体的には、例えば、メモリトレーニングとして、ＤＤＲ３−ＳＤＲＡＭからの簡易なフィードバックによってクロックとＤＱＳ（データ・ストローブ信号）との位相補正を行うライトレベリング（Ｗｒｉｔｅ  Ｌｅｖｅｌｉｎｇ）が実行される。また、例えば、メモリトレーニングとして、各ＤＤＲ３−ＳＤＲＡＭの遅延時間を推測するリードレベリング（Ｒｅａｄ  Ｌｅｖｅｌｉｎｇ）が実行される。また、メモリコントローラ１１１は、生成した制御情報を、Ｉ／Ｆ１１３を介して制御用記憶部１０１に記憶させる記憶処理部として機能する。
【００２６】
また、メモリコントローラ１１１は、生成した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する制御部として機能する。また、本実施形態に係るメモリコントローラ１１１は、ＤＩＭＭモジュール１２０が挿抜されたか否かを判定する挿抜判定部として機能する。メモリコントローラ１１１は、挿抜判定結果に応じて、制御情報を生成することなく、情報処理装置１の起動前から制御用記憶部１０１に格納されている制御情報を取得して、取得した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する。
【００２７】
このように、メモリコントローラ１１１がＤＩＭＭモジュール１２０の挿抜の有無を判定し、判定結果に応じて、ＤＩＭＭモジュール１２０の動作を制御する制御情報の取得方法を決定することが本実施形態の要旨の１つである。以下、このようなメモリコントローラ１１１の処理の詳細を説明する。
【００２８】
図３は、メモリコントローラ１１１の処理を例示するフローチャートである。図３に示すフローチャートは、上述した起動処理によりメモリコントローラ１１１が制御情報を生成するために必要なＤＩＭＭ用記憶部１２２のＩ／Ｆ１１３の初期設定等の最低限の設定が行われた後に開始されるものとする。また、図３に示すフローチャートは、制御用記憶部１０１に制御情報が格納されている場合に開始されるものとする。図３に示すように、メモリコントローラ１１１は、ＤＩＭＭ用記憶部１２２に格納されているＳＰＤデータからフラグ情報を取得する（Ｓ３０１）。
【００２９】
フラグ情報は、情報処理装置１を以前に起動した際に、このフラグ情報を格納するＤＩＭＭ用記憶部１２２を搭載するＤＩＭＭモジュール１２０に適した制御情報が、メモリトレーニングの実行結果等に基づいて生成されたか否かを示す。本実施形態においては、情報処理装置１を以前に起動した際に制御情報が生成されている場合、フラグ情報が「ＯＮ」であるとし、それ以外の場合、フラグ情報が「ＯＦＦ」であるとする。すなわち、「ＯＮ」を示すフラグ情報は、制御情報が生成されていることを示す生成済情報である。
【００３０】
すなわち、フラグ情報が「ＯＮ」である場合、今回の情報処理装置１の起動時に搭載されているＤＩＭＭモジュール１２０が前回の起動時に搭載されていたＤＩＭＭモジュール１２０と同一であることを意味する。一方、フラグ情報が「ＯＦＦ」である場合、今回の情報処理装置１の起動時に搭載されているＤＩＭＭモジュール１２０が前回の起動時に搭載されていたＤＩＭＭモジュール１２０と異なることを意味する。
【００３１】
すなわち、フラグ情報が「ＯＦＦ」である場合、前回の情報処理装置１の起動時に搭載されていたＤＩＭＭモジュール１２０が今回の情報処理装置１の起動時に異なるＤＩＭＭモジュール１２０に差し替えられたことを意味する。このように、フラグ情報は、ＤＩＭＭモジュール１２０の挿抜判定のための情報として用いられる。また、フラグ情報は、例えば、図２を示して上述したＳＰＤデータの予約領域（“Ｒｅｓｅｒｖｅｄ”）に格納されるものとする。
【００３２】
フラグ情報を取得したメモリコントローラ１１１は、取得したフラグ情報が「ＯＮ」であるか否かを判定する（Ｓ３０２）。取得したフラグ情報が「ＯＦＦ」すなわちＤＩＭＭモジュール１２０が挿抜されたと判定した場合（Ｓ３０２／ＮＯ）、メモリコントローラ１１１は、ＤＩＭＭ用記憶部１２２から制御情報を生成するために必要なＳＰＤデータを読み込む（Ｓ３０３）。
【００３３】
さらに、メモリコントローラ１１１は、ＤＩＭＭモジュール１２０に対するメモリトレーニングを実行する（Ｓ３０４）。なお、Ｓ３０３の処理とＳ３０４の処理とは前後関係に制約はないため、逆の順序で実行されてもよいし並列して実行されてもよい。ＳＰＤデータの読み込み及びメモリトレーニングを実行したメモリコントローラ１１１は、読み込んだＳＰＤデータから取得したＤＩＭＭモジュール１２０のメモリ速度等の情報及びメモリトレーニングの実行結果に基づいて制御情報を生成する（Ｓ３０５）。
【００３４】
制御情報を生成したメモリコントローラ１１１は、生成した制御情報を制御用記憶部１０１に記憶させる（Ｓ３０６）。制御情報を生成したメモリコントローラ１１１は、ＤＩＭＭ用記憶部１２２に記憶されているフラグ情報を「ＯＮ」に更新する（Ｓ３０７）。すなわち、メモリコントローラ１１１は、ＳＰＤデータの予約領域（“Ｒｅｓｅｒｖｅｄ”）に「ＯＮ」のフラグ情報を格納する。なお、Ｓ３０６の処理とＳ３０７の処理とは前後関係に制約はないため、逆の順序で実行されてもよいし並列して実行されてもよい。
【００３５】
制御情報を生成したメモリコントローラ１１１は、生成した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する（Ｓ３０８）。
【００３６】
一方、メモリコントローラ１１１は、取得したフラグ情報が「ＯＮ」すなわちＤＩＭＭモジュール１２０が挿抜されていないと判定した場合（Ｓ３０２／ＹＥＳ）、制御用記憶部１０１に記憶されている制御情報を取得する（Ｓ３０９）。制御用記憶部１０１から制御情報を取得したメモリコントローラ１１１は、取得した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する（Ｓ３０８）。
【００３７】
図３に示したフローチャートの処理が終了すると、システム制御部１１０は、制御用記憶部１０１に記憶されているファームウェア等のプログラムをＲＡＭ１２１へ展開する。システム制御部１１０は、ＲＡＭ１２１へ展開されたプログラムに従って情報処理装置１の各構成部の初期設定等を実行して、情報処理装置１を起動させる。
【００３８】
以上説明したように、本実施形態に係る情報処理装置１に含まれる起動制御モジュール１００は、情報処理装置１の起動の際に、ＤＩＭＭモジュール１２０の挿抜の有無を判定し、挿抜判定結果に応じて制御用記憶部１０１に格納されている制御情報を取得する。これにより、起動制御モジュール１００は、ＤＩＭＭモジュール１２０が挿抜されていないと判定した場合、制御用記憶部１０１から制御情報を取得することができるので、メモリトレーニング等を実行する時間が不要となる。また、挿抜判定は、ＤＩＭＭ用記憶部１２２の１つのアドレスの領域に格納されている情報を用いるだけなので、挿抜判定に要する時間はメモリトレーニング等に比べて短縮される。そのため、情報処理装置１の起動時間を短縮することができる。
【００３９】
また、起動制御モジュール１００は、ＤＩＭＭモジュール１２０が挿抜されたと判定した場合、メモリトレーニング等を実行して、新たなＤＩＭＭモジュール１２０に適した制御情報を生成する。そのため、新たなＤＩＭＭモジュール１２０を安定して動作させることが可能になる。すなわち、本実施形態によれば、情報処理装置１の起動時間を短縮しつつ、メインメモリを安定して動作させることが可能になる。
【００４０】
また、上記実施形態においては、メモリコントローラ１１１が、制御情報生成部、記憶処理部、制御部及び挿抜判定部として機能する場合を例として説明した。しかしながら、これは一例であり、これらの構成部のうちの一部がメモリコントローラ１１１とは異なる構成部であってもよいし、それぞれの構成部が別個の構成部であってもよい。
【００４１】
なお、上記実施形態においては、ＤＩＭＭモジュール１２０が異なるＤＩＭＭモジュール１２０に差し替えられる場合を例として説明したが、新たなＤＩＭＭモジュール１２０が追加された場合であっても本実施形態を同様に適用可能である。
【００４２】
また、上記実施形態においては、ＳＰＤデータ及びメモリトレーニングの実行結果に基づいて生成された制御情報が制御用記憶部１０１に格納される場合を例として説明した。その他、ＳＰＤデータ及びメモリトレーニングの実行結果が制御情報として制御用記憶部１０１に格納されてもよい。この場合、メモリコントローラ１１１は、制御用記憶部１０１に格納されているＳＰＤデータ及びメモリトレーニングの実行結果に基づいて、ＤＩＭＭモジュール１２０を制御するための情報を生成する。
【００４３】
なお、上記実施形態においては、ＤＩＭＭモジュール１２０に格納されている所定の情報に基づいてＤＩＭＭモジュール１２０の挿抜の有無が判定される場合を例として説明した。また、所定の情報としてＤＩＭＭ用記憶部１２２に格納されているＳＰＤデータのフラグ情報に基づいてＤＩＭＭモジュール１２０の挿抜の有無を判定する場合を例として説明した。その他、ＤＩＭＭモジュール１２０の挿抜判定のための所定の情報として、情報処理装置１において最初に制御情報が生成された日時（以降、「時間情報」）が用いられてもよい。
【００４４】
図４は、時間情報を用いた場合におけるメモリコントローラ１１１の処理を例示するフローチャートである。図４に示すフローチャートは、図３に示すフローチャートと同様に、上述した起動処理により最低限の設定が行われた後に開始されるものとする。また、図４に示すフローチャートは、制御用記憶部１０１に制御情報が格納されている場合に開始されるものとする。図４に示すように、メモリコントローラ１１１は、ＤＩＭＭ用記憶部１２２に格納されているＳＰＤデータから時間情報を取得する（Ｓ４０１）。
【００４５】
また、メモリコントローラ１１１は、制御用記憶部１０１から時間情報を取得する（Ｓ４０２）。制御用記憶部１０１に格納されている時間情報は、制御用記憶部１０１に格納されている制御情報が生成された時間情報であり、制御用記憶部１０１に制御情報が格納されていない場合、時間情報も格納されていない。なお、Ｓ４０１の処理とＳ４０２の処理とは前後関係に制約はないため、逆の順序で実行されてもよいし並列して実行されてもよい。
【００４６】
ＳＰＤデータ及び制御用記憶部１０１から時間情報を取得したメモリコントローラ１１１は、それぞれから取得した時間情報が一致するか否かを判定する（Ｓ４０３）。時間情報が一致する場合、制御用記憶部１０１に記憶されている制御情報が現在情報処理装置１に搭載されているＤＩＭＭモジュール１２０のために生成されたことを意味する。一方、それぞれから取得した時間情報が一致しない場合、制御用記憶部１０１に記憶されている制御情報が現在情報処理装置１に搭載されているＤＩＭＭモジュール１２０とは異なるＤＩＭＭモジュール１２０のために生成されたことを意味する。
【００４７】
すなわち、それぞれから取得した時間情報が一致しない場合、前回の情報処理装置１の起動時に搭載されていたＤＩＭＭモジュール１２０が今回の情報処理装置１の起動時に異なるＤＩＭＭモジュール１２０に差し替えられたことを意味する。このように、時間情報は、ＤＩＭＭモジュール１２０の挿抜判定のための情報として用いられる。また、時間情報は、例えば、図２を示して上述したＳＰＤデータの予約領域（“Ｒｅｓｅｒｖｅｄ”）に格納されるものとする。
【００４８】
メモリコントローラ１１１は、それぞれから取得した時間情報が一致しないと判定した場合（Ｓ４０３／ＮＯ）、図３に示したＳ３０３〜Ｓ３０６の処理と同様な処理を行う（Ｓ４０４〜Ｓ４０７）。制御情報を生成したメモリコントローラ１１１は、ＤＩＭＭ用記憶部１２２に格納されているＳＰＤデータの予約領域（“Ｒｅｓｅｒｖｅｄ”）及び制御用記憶部１０１に制御情報を生成した時間情報を記憶させる（Ｓ４０８）。制御情報を生成したメモリコントローラ１１１は、生成した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する（Ｓ４０９）。
【００４９】
一方、メモリコントローラ１１１は、それぞれから取得した時間情報が一致すると判定した場合（Ｓ４０３／ＹＥＳ）、制御用記憶部１０１に記憶されている制御情報を取得する（Ｓ４１０）。制御用記憶部１０１から制御情報を取得したメモリコントローラ１１１は、取得した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する（Ｓ４０９）。
【００５０】
図４に示したフローチャートの処理が終了すると、システム制御部１１０は、図３を示して上述したように、制御用記憶部１０１に記憶されているファームウェア等のプログラムをＲＡＭ１２１へ展開する。システム制御部１１０は、ＲＡＭ１２１へ展開されたプログラムに従って情報処理装置１の各構成部の初期設定等を実行して、情報処理装置１を起動させる。
【００５１】
図３を示して上述したフラグ情報が用いられる場合、他の情報処理装置においてフラグ情報が「ＯＮ」に更新されたＤＩＭＭモジュール１２０が情報処理装置１のＤＩＭＭモジュール１２０として差し替えられると、動作が不安定になる可能性がある。他の情報処理装置においてフラグ情報が「ＯＮ」に更新されていると、メモリコントローラ１１１は、ＤＩＭＭモジュール１２０が差し替えられているにも関わらず、差し替えられていないと判定し、メモリトレーニング等を実行せずに制御情報を取得するからである。また、情報処理装置１においてフラグ情報が「ＯＮ」に更新された後、別のＤＩＭＭモジュール１２０に差し替えられ、再度元のＤＩＭＭモジュール１２０に差し替えられた場合であっても同様である。
【００５２】
図４を示して説明した構成により、現在搭載されているＤＩＭＭモジュール１２０に適した制御情報が、情報処理装置１において以前の起動時に生成されて制御用記憶部１０１に記憶されていることをより正確に判定することができる。なお、上記実施形態においては、ＤＩＭＭモジュール１２０が異なるＤＩＭＭモジュール１２０に差し替えられる場合を例として説明した。その他、新たなＤＩＭＭモジュール１２０が追加されたり複数のＤＩＭＭモジュール１２０からいくつかのＤＩＭＭモジュール１２０が抜かれたりした場合であっても、本実施形態を同様に適用可能である。
【００５３】
なお、上記実施形態においては、制御情報を生成した日時の情報に基づいて、ＤＩＭＭモジュール１２０の挿抜の有無を判定する場合を例として説明した。しかしながら、これは一例であり、メモリトレーニングを実行した日時や生成された制御情報を一意に識別する制御情報ＩＤ等、ＳＰＤデータに格納される情報と制御用記憶部１０１に記憶される情報とが一致するか否かを比較するための何らかの識別情報であればよい。
【００５４】
また、制御用記憶部１０１にこれまでに生成した制御情報と生成日時とを関連付けて履歴情報が格納されるようにしてもよい。この場合、他のＤＩＭＭモジュール１２０に差し替えられた後、再度同じＤＩＭＭモジュール１２０が搭載されたときに、メモリコントローラ１１１は、制御用記憶部１０１に格納されている履歴情報から制御情報を取得することができる。なお、履歴情報において制御情報と関連付けられる情報は、制御情報の生成日時ではなく、トレーニングを実行した日時や生成された制御情報一意に識別する制御情報ＩＤ等、何らかの識別情報であればよい。
【００５５】
また、上述したＳＰＤデータに格納される識別情報と制御用記憶部１０１に格納される識別情報とは同一である必要はなく、それぞれの識別情報が対であることが認識できる態様であればよい。
【００５６】
その他、ＤＩＭＭモジュール１２０の挿抜判定のための情報として、起動制御モジュール１００における信号の電圧レベルが用いられてもよい。図５は、起動制御モジュール１００の回路構成を例示する図である。図５に示すように、起動制御モジュール１００においては、システム制御部１１０とＤＩＭＭモジュール１２０の接続コネクタであるＤＩＭＭコネクタ１２３との間に挿抜検知部１０２が設けられている。
【００５７】
挿抜検知部１０２は、例えば、電池の電源で動作可能なマイコンやフリップフロップである。なお、例えば、挿抜検知部１０２がマイコンである場合、フリップフロップの場合よりも電力消費が大きいが、挿抜検知以外の機能も実現できる可能性がある。また、例えば、挿抜検知部１０２がフリップフロップである場合、挿抜検知の機能に特化した構成となるが、マイコンの場合よりも電力消費が小さくなる。
【００５８】
また、ＤＩＭＭコネクタ１２３と挿抜検知部１０２との間に電池の電源であるＢＡＴ電源が設けられており、ＤＩＭＭモジュール１２０のＧＮＤ端子に対してプルアップが行われる。図６は、挿抜検知部１０２に入力される信号の電圧レベルのパターンを例示する図である。ＤＩＭＭモジュール１２０のＧＮＤ端子に対してプルアップが行われることにより、図６に示すように、ＤＩＭＭモジュール１２０の接続時には電圧レベルは“Ｌｏｗ”になり、非接続時には電圧レベルは“Ｈｉｇｈ”になる。
【００５９】
すなわち、電圧レベルが“Ｈｉｇｈ”となったタイミングで、ＤＩＭＭモジュール１２０が抜かれ、その後電圧レベルが“Ｌｏｗ”となったタイミングで、ＤＩＭＭモジュール１２０が新たに差されたことになる。また、ＤＩＭＭモジュール１２０が抜かれた後、情報処理装置１を動作させるために新たなＤＩＭＭモジュール１２０が差されることから、挿抜検知部１０２は、電圧レベル“Ｈｉｇｈ”となったタイミングで、ＤＩＭＭモジュール１２０の挿抜を検知してもよい。本実施形態においては、電圧レベルが“Ｈｉｇｈ”である信号を「挿抜検知信号」とする。
【００６０】
挿抜検知部１０２は、挿抜検知信号を検知した場合に挿抜検知信号を保持しておき、情報処理装置１の電源がＯＮにされると、挿抜検知信号をシステム制御部１１０に対して出力する。システム制御部１１０のメモリコントローラ１１１は、挿抜検知部１０２からの信号に基づいて以下の処理を行う。図７は、挿抜検知信号を用いた場合におけるメモリコントローラ１１１の処理を例示するフローチャートである。図７に示すフローチャートは、図３及び図４に示すフローチャートと同様に、上述した起動処理により最低限の設定が行われた後に開始されるものとする。また、図７に示すフローチャートは、制御用記憶部１０１に制御情報が格納されている場合に開始されるものとする。
【００６１】
図７に示すように、メモリコントローラ１１１は、挿抜検知部１０２から挿抜検知信号が入力されたか否かを判定する（Ｓ７０１）。挿抜検知信号が入力された場合（Ｓ７０１／ＹＥＳ）、メモリコントローラ１１１は、図３に示したＳ３０３〜Ｓ３０６の処理と同様な処理を行う（Ｓ７０２〜Ｓ７０５）。制御情報を生成したメモリコントローラ１１１は、生成した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する（Ｓ７０６）。
【００６２】
一方、挿抜検知信号が入力されなかった場合（Ｓ７０１／ＮＯ）、メモリコントローラ１１１は、制御用記憶部１０１に記憶されている制御情報を取得する（Ｓ７０７）。制御用記憶部１０１から制御情報を取得したメモリコントローラ１１１は、取得した制御情報に従ってＤＩＭＭモジュール１２０の動作を制御する（Ｓ７０６）。
【００６３】
このような構成により、電池の電源を用いてＤＩＭＭモジュール１２０の挿抜判定ができるので、情報処理装置１の電源がオフ状態のときにＤＩＭＭモジュール１２０が挿抜された場合であっても、挿抜を判定することが可能になる。なお、上記実施形態においては、ＤＩＭＭモジュール１２０が異なるＤＩＭＭモジュール１２０に差し替えられる場合を例として説明した。その他、新たなＤＩＭＭモジュール１２０が追加されたり複数のＤＩＭＭモジュール１２０からいくつかのＤＩＭＭモジュール１２０が抜かれたりした場合であっても、本実施形態を同様に適用可能である。
【００６４】
なお、図３及び図４を示して説明した挿抜判定と図７を示して説明した挿抜判定とを組み合わせて挿抜判定が行われてもよい。図７を示して説明した挿抜判定の場合、ＤＩＭＭモジュール１２０が一旦抜かれ、再度同じＤＩＭＭモジュール１２０が差された場合であっても、挿抜検知信号が出力されてメモリトレーニング等が実行される。図３及び図４を示して説明した挿抜判定と組み合わせることにより、ＤＩＭＭモジュール１２０が物理的に挿抜されたことを確実に検知するとともに、異なるＤＩＭＭモジュール１２０に差し替えられたことも確実に検知することが可能になる。そのため、挿抜判定を組み合わせることにより、より正確にＤＩＭＭモジュール１２０の挿抜の有無を判定することが可能になる。
【符号の説明】
【００６５】
１  情報処理装置
１０  主電源スイッチ
１００  起動制御モジュール
１０１  制御用記憶部
１０２  挿抜検知部
１１０  システム制御部
１１１  メモリコントローラ
１１２  ＣＰＵ
１１３  Ｉ／Ｆ
１２０  ＤＩＭＭモジュール
１２１  ＲＡＭ
１２２  ＤＩＭＭ用記憶部
１２３  ＤＩＭＭコネクタ
【先行技術文献】
【特許文献】
【００６６】
【特許文献１】特許第５５４０１５５号明細書
【図１】
2016099788.tif 000003
【図２】
2016099788.tif 000004
【図３】
2016099788.tif 000005
【図４】
2016099788.tif 000006
【図５】
2016099788.tif 000007
【図６】
2016099788.tif 000008
【図７】
2016099788.tif 000009