(57)【要約】【課題】複数のメモリモジュールに対して最適な制御を行うことができる情報処理装置およびメモリ制御方法を提供する。【解決手段】コンピュータが起動した後の状態であり、かつコンピュータが備えるオペレーティングシステムの起動前の状態において、メインメモリ１１２である複数のメモリモジュールの夫々に同等の負荷を掛けて初期化を行い、初期化時における複数のメモリモジュールの夫々の温度の値を測定すると共に、オペレーティングシステムの稼働時における複数のメモリモジュールの夫々の温度の最大値を測定する。測定された温度の値に基づいて、ｃｈＢ内において、初期化時とオペレーティングシステムの稼働時との温度の値の差が一番小さいメモリモジュールDIMM3、および初期化時の値が一番小さいメモリモジュールDIMM4を判別し、メモリモジュールDIMM3に割り当てられていたメモリアドレス空間をメモリモジュールDIMM4にマッピングする。【選択図】図１０
2011095974.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを備えた情報処理装置であって、
複数のメモリモジュールと、
前記情報処理装置が起動した後の状態であり、かつ前記オペレーティングシステムの起動前の状態において、前記複数のメモリモジュールの夫々に同等の負荷を掛けて初期化を行い、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時における前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部と、
前記測定部に測定された温度の値に基づいて、前記複数のメモリモジュールのうち、前記初期化時と前記オペレーティングシステムの稼働時との温度の値の差が一番小さい第１のメモリモジュール、および前記初期化時の値が一番小さい第２のメモリモジュールを判別する判別部と、
前記判別部により判別された前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられていたメモリアドレス空間をマッピングする制御部とを備えることを特徴とする情報処理装置。
【請求項２】
前記複数のメモリモジュールは夫々が複数のチャネルのいずれかに属しており、前記判別部は、前記第１のメモリモジュールが属する第１のチャネルおよび前記第２のメモリモジュールが属する第２のチャネルを判別し、前記第１のメモリモジュールと前記第２のメモリモジュールとが異なるメモリモジュールであると判別した場合は、前記第１のメモリモジュールを前記第２のチャネルに属させると共に、前記第２のメモリモジュールを前記第１のチャネルに属させるように、メモリチャネルの入れ替えを行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判別部は、前記複数のメモリモジュールのすべてに対して判別を行うまで処理を続けることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記複数のメモリモジュールの夫々に送出する信号の変換を行うメモリモジュール個別変換部をさらに備え、
前記制御部は、前記メモリモジュール個別変換部に指示信号を送出して、前記指示信号を受けたメモリモジュール個別変換部によってマッピングされることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記複数のチャネルに属するメモリモジュールの夫々に、前記チャネル毎の信号を送出するチャネル共通変換部をさらに備え、
前記制御部は、前記チャネル共通変換部に指示信号を送出して、前記指示信号を受けたチャネル共通変換部によって前記チャネルの入れ替えをすることを特徴とする請求項２記載の情報処理装置。
【請求項６】
情報処理装置で用いられるメモリ制御方法であって、
前記情報処理装置は、
複数のメモリモジュールと、
前記情報処理装置が起動した後の状態であり、かつ前記オペレーティングシステムの起動前の状態において、前記複数のメモリモジュールの夫々に同等の負荷を掛けて初期化を行い、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時における前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部とを備え、
前記測定部に測定された温度の値に基づいて、前記複数のメモリモジュールのうち、前記初期化時と前記オペレーティングシステムの稼働時との温度の値の差が一番小さい第１のメモリモジュール、および前記初期化時の値が一番小さい第２のメモリモジュールを判別し、
前記判別により判別された前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられていたメモリアドレス空間をマッピングすることを特徴とするメモリ制御方法。
【請求項７】
前記複数のメモリモジュールは夫々が複数のチャネルのいずれかに属しており、前記第１のメモリモジュールが属する第１のチャネルおよび前記第２のメモリモジュールが属する第２のチャネルを判別し、前記第１のメモリモジュールと前記第２のメモリモジュールとが異なるメモリモジュールであると判別した場合は、前記第１のメモリモジュールを前記第２のチャネルに属させると共に、前記第２のメモリモジュールを前記第１のチャネルに属させるように、メモリチャネルの入れ替えを行うことを特徴とする請求項５記載のメモリ制御方法。
【請求項８】
前記複数のメモリモジュールのすべてに対して判別を行うまで処理を続けることを特徴とする請求項６記載のメモリ制御方法。
【請求項９】
前記情報処理装置は、前記複数のメモリモジュールの夫々に送出する信号の変換を行うメモリモジュール個別変換部をさらに備え、
前記メモリモジュール個別変換部に指示信号を送出して、前記指示信号を受けたメモリモジュール個別変換部によってマッピングされることを特徴とする請求項５記載のメモリ制御方法。
【請求項１０】
前記情報処理装置は、前記複数のチャネルに属するメモリモジュールの夫々に、前記チャネル毎の信号を送出するチャネル共通変換部をさらに備え、
前記チャネル共通変換部に指示信号を送出して、前記指示信号を受けたチャネル共通変換部によって前記チャネルの入れ替えをすることを特徴とする請求項６記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリモジュールに対して最適な制御を行うことができる情報処理装置および同機器に適用されるメモリ制御方法に関する。
【背景技術】
【０００２】
一般的に、パーソナルコンピュータ等の情報処理装置は、ＯＳ（Operating System）や各種アプリケーションを一時的に読み込んで実行するためのメモリモジュールを備えている。このメモリモジュールは、読み込むデータの転送レートに応じて負荷が係り、メモリモジュール自体の温度が上昇する。メモリモジュールの温度が高温となった場合、コンピュータ自体の動作に影響を及ぼすことがある。このため、例えば、特許文献１には、メモリモジュールの温度が予め設定された閾値に達した場合、当該メモリモジュールに読み込むデータの転送レートを下げることによって、メモリモジュールの温度が予め設定された閾値に達しないように制御を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１８３２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の技術は、メモリモジュールに読み込むデータの転送レートを下げることによって、メモリモジュールの温度が予め設定された閾値に達しないように制御を行うため、データの転送レートが下がり、コンピュータのパフォーマンスを下げることになる。
【０００５】
本発明は上述の事情を考慮してなされたものであり、複数のメモリモジュールに対して最適な制御を行うことができる情報処理装置およびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するために、本発明の一態様によれば、オペレーティングシステムを備えた情報処理装置であって、複数のメモリモジュールと、前記情報処理装置が起動した後の状態であり、かつ前記オペレーティングシステムの起動前の状態において、前記複数のメモリモジュールの夫々に同等の負荷を掛けて初期化を行い、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時における前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部と、前記測定部に測定された温度の値に基づいて、前記複数のメモリモジュールのうち、前記初期化時と前記オペレーティングシステムの稼働時との温度の値の差が一番小さい第１のメモリモジュール、および前記初期化時の値が一番小さい第２のメモリモジュールを判別する判別部と、前記判別部により判別された前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられていたメモリアドレス空間をマッピングする制御部とを備えることを特徴とする情報処理装置が提供される。
【０００７】
また、本発明の一態様によれば、情報処理装置で用いられるメモリ制御方法であって、前記情報処理装置は、複数のメモリモジュールと、前記情報処理装置が起動した後の状態であり、かつ前記オペレーティングシステムの起動前の状態において、前記複数のメモリモジュールの夫々に同等の負荷を掛けて初期化を行い、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時における前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部とを備え、前記測定部に測定された温度の値に基づいて、前記複数のメモリモジュールのうち、前記初期化時と前記オペレーティングシステムの稼働時との温度の値の差が一番小さい第１のメモリモジュール、および前記初期化時の値が一番小さい第２のメモリモジュールを判別し、前記判別された前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられていたメモリアドレス空間をマッピングすることを特徴とするメモリ制御方法が提供される。
【発明の効果】
【０００８】
本発明によれば、複数のメモリモジュールに対して最適な制御を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図。
【図２】同実施形態の情報処理装置が備えるメインボードの構成およびメインボードの各デバイスの冷却状態の概念を示す図。
【図３】同実施形態の情報処理装置が備える各物理メモリモジュールおよびメモリコントローラを含む構成を示すブロック図。
【図４】同実施形態の情報処理装置によって実行されるメモリ制御方法の動作を示すフローチャート。
【図５】同実施形態の情報処理装置によって用いられる各物理メモリモジュールの測定された温度の値の概念を示す図。
【図６】同実施形態の情報処理装置によって実行されるメモリ制御方法の動作を示すフローチャート。
【図７】本発明の第２実施形態に係る情報処理装置が備える各物理メモリモジュールおよびメモリコントローラを含む構成を示すブロック図。
【図８】同実施形態の情報処理装置によって実行されるメモリ制御方法の動作を示すフローチャート。
【図９】同実施形態の情報処理装置によって実行されるメモリ制御方法の動作を示すフローチャート。
【図１０】同実施形態の情報処理装置によって用いられる各物理メモリモジュールの測定された温度の値の概念を示す図。
【発明を実施するための形態】
【００１０】
（第１実施形態）
以下、本発明の一実施形態について図面を参照しながら説明する。
【００１１】
まず、図１を参照して、本発明の第１実施形態に係る情報処理装置の構成を説明する。本実施形態の情報処理装置は、例えば、サーバ型のコンピュータ１０として実現されている。なお、本実施形態では、コンピュータ１０として説明しているが、これに限定されるものではない。例えば、ノート型のパーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）等、複数の物理メモリモジュールを備えた機器であればよい。
【００１２】
本コンピュータ１０は、図１に示されているように、２つのＣＰＵ１１１、ノースブリッジ１１３、メインメモリ（例えば、ＤＲＡＭ：Dynamic Random Access Memory）１１２、サウスブリッジ１１６、ハードディスクドライブ（ＨＤＤ）１１７、光ディスクドライブ（ＯＤＤ）１１８、ＢＩＯＳ−ＲＯＭ１１９、ＨＷ（ハードウェア）監視回路２００、冷却ファン２０１、マウス１２４、キーボード１２５、グラフィクスコントローラ１１４、ＣＲＴ（Cathode Ray Tube）１２１等を備えている。
【００１３】
ＣＰＵ１１１は本コンピュータ１０の動作を制御するプロセッサであり、ハードディスクドライブ（ＨＤＤ）１１７からメインメモリ１１２にロードされる、オペレーティングシステム（ＯＳ）２０２、各種アプリケーションプログラムを実行する。
【００１４】
メインメモリ１１２は、複数のメモリモジュール（後述）から構成されている。これらの複数のメモリモジュールには、複数のメモリモジュールの夫々の温度を測定するための測定部（後述）が備えられている。
【００１５】
ノースブリッジ１１３はＣＰＵ１１１のローカルバスとサウスブリッジ１１６との間を接続するブリッジデバイスである。ノースブリッジ１１３には、メインメモリ１１２をアクセス制御するメモリコントローラ３００も内蔵されている。また、ノースブリッジ１１３は、グラフィックスコントローラ１１４との通信を実行する機能も有している。
【００１６】
グラフィックスコントローラ１１４は、本コンピュータ１０のディスプレイモニタとして使用されるＣＲＴ（ディスプレイ）１２１を制御する表示コントローラである。このグラフィックスコントローラ１１４によって生成される表示信号はディスプレイユニット１２のＣＲＴ１２１に送られる。
【００１７】
サウスブリッジ１１６は、ＬＰＣ（Low Pin Count）バス上の各デバイス等を制御する。また、サウスブリッジ１１６は、ハードディスクドライブ（ＨＤＤ）１１７およびＯＤＤ１１８を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１１６は、サウンドコントローラとの通信を実行する機能も有している。また、サウスブリッジ１１６は、各種ＩＯデバイスを制御するためのＩＯコントローラ３１０、およびマウス等のレガシーＩＯデバイスを制御するためのレガシーＩＯコントローラ３１１を備えている。
【００１８】
ＨＷ（ハードウェア）監視回路２００は、冷却ファン２０１等のハードウェアの動作を監視する回路デバイスである。
【００１９】
冷却ファン２０１は、コンピュータ１０が備える各種デバイスに風を当てることにより冷却させるためのファンである。
【００２０】
次に、図２は、コンピュータ１０が備えるメインボード６００上に配置された各種デバイスを冷却ファン２０１からの風によって冷却している概念を示す図である。
【００２１】
コンピュータ１０が備えるメインボード６００上には、例えば、２つのＣＰＵ１１１、メインメモリ（メモリモジュール１〜４）１１２、拡張カードエリア５００等が配置されている。例えば、メインボード６００の２つのＣＰＵ１１１が配置されている側から冷却ファン２０１の風が流れてくる場合、例えば、２つのＣＰＵ１１１等の配置（拡張カードの有無等）によって、各メモリモジュール１〜４の冷却条件（各メモリモジュール１〜４の温度の値）が異なってくる。
【００２２】
このように、各メモリモジュール１〜４の温度の値が異なる場合、複数のメモリモジュールに対して最適な制御を行うために以下の様な制御を行う。即ち、測定された各物理メモリモジュールの温度の値に基づいて、メモリマッピングの切り替えの制御を行う。
【００２３】
次に、図３は、メモリコントローラ３００による物理メモリモジュール（DIMM1〜DIMM4）の制御を行う概念について示した図である。
【００２４】
ノースブリッジ１１３は、メモリコントローラ３００、スロット個別信号変換回路５１０、メモリマッピング切り替え制御回路５１１を備えている。なお、スロット個別信号変換回路５１０およびメモリマッピング切り替え制御回路５１１は、ノースブリッジ１１３外に設けるようにしてもよい。
【００２５】
スロット個別信号変換回路５１０は、メモリコントローラ３００と、物理メモリモジュール（DIMM1〜DIMM4）の間に位置し、個別の信号(チップセレクト(CS#)、ODT#、CKE)を、メモリスロット毎に切り替える変換回路である。メモリマッピング切り替え制御回路５１１は、各物理メモリモジュール（DIMM1〜DIMM4）の動作温度の値を読み出し、各メモリスロットの冷却条件を比較する（後述）。
【００２６】
メモリモジュール（DIMM1〜DIMM4）には、それぞれ温度センサ７００が設けられている。これらの温度センサ７００は、メモリモジュール（DIMM1〜DIMM4）の夫々の温度を測定して、メモリマッピング切り替え制御回路５１１の要求に応じて温度の値を送出する。なお、物理メモリモジュール（DIMM1〜DIMM4）は、各メモリモジュール上に温度センサ７００を実装している。この温度センサ７００は、上述したように、メモリマッピング切り替え制御回路５１１と接続されている(接続は例えばSMBus等が考えられるが、それに限定する必要はない)。また、温度センサ７００もメモリモジュール（DIMM1〜DIMM4）に実装されている必要はなく、サーミスタ等を外部から配置する構成にしてもよい。
【００２７】
メモリコントローラ３００は、スロット個別信号変換回路５１０に、データ、アドレス、バンク選択、RAS（Row Address Strobe）、CAS（Column Address Strobe）、WE（Write Enable）、チップセレクト、ODT（On Die Termination）、CKE（ClocK Enable）等の情報を送出する。
【００２８】
メモリマッピング切り替え制御回路５１１は、受信したメモリモジュール（DIMM1〜DIMM4）の夫々の温度に基づいて、メモリマッピングの切り替え制御を行う。また、メモリマッピング切り替え制御回路５１１は、最適なメモリマッピングを判別し、メモリマッピングの最適化を行うために、スロット個別信号変換回路５１０へ指示信号を送出する。
【００２９】
次に図４は、本発明の第１実施形態に係る情報処理装置を適用したメモリ制御方法の動作を示すフローチャートである。
【００３０】
まず、電源が投入されコンピュータ１０が起動される（ステップＳ１０１）。コンピュータ１０が起動された後に、ＣＰＵ１１１は、メモリの初期化を行う（ステップＳ１０２）。ＣＰＵ１１１によって、メモリの初期化を行う場合、各物理メモリモジュール（DIMM1〜DIMM4）に対して、同じ負荷（メモリチェックプログラム等）となるように負荷を掛ける。このメモリの初期化では、各物理メモリモジュール（DIMM1〜DIMM4）に対して、メモリチェックプログラム等のプログラムを実行することにより、最高の負荷を掛けた状態となる。
【００３１】
その後に、メモリマッピング切り替え制御回路５１１は、温度センサ７００から各物理メモリモジュール（DIMM1〜DIMM4）の温度の値を取得する。このときの各物理メモリモジュール（DIMM1〜DIMM4）の温度の値は、各物理メモリモジュール（DIMM1〜DIMM4）の初期化時のものである。初期化時とは、コンピュータ１０が起動した状態であり、かつオペレーティングシステム２０２が起動する前の状態である。取得した各物理メモリモジュール（DIMM1〜DIMM4）の温度の値は、例えば、図５に示されるように、ＨＤＤ１１７に記憶される（ステップＳ１０３）。例えば、物理メモリモジュールDIMM1は７０℃、物理メモリモジュールDIMM2は８５℃、物理メモリモジュールDIMM3は８０℃、物理メモリモジュールDIMM4は７５℃である。
【００３２】
続いて、コンピュータ１０は、オペレーティングシステム２０２を起動する。オペレーティングシステム２０２が稼働している間、メモリマッピング切り替え制御回路５１１は、常に温度センサ７００から各物理メモリモジュール（DIMM1〜DIMM4）の温度の値を取得している。各物理メモリモジュール（DIMM1〜DIMM4）の温度の最大値を取得した場合は、例えば、図５に示されるように、ＨＤＤ１１７に記憶される（ステップＳ１０４）。例えば、ある時点での各物理メモリモジュール（DIMM1〜DIMM4）の温度の最大値は、以下のように記憶されている。物理メモリモジュールDIMM1は７０℃、物理メモリモジュールDIMM2は７５℃、物理メモリモジュールDIMM3は７５℃、物理メモリモジュールDIMM4は６０℃である。
【００３３】
メモリマッピング切り替え制御回路５１１は、次回のコンピュータ１０の起動時に、メモリマッピング切り替えを最適化する制御を行う（この最適化する制御は、ＣＰＵ１１１から要求があった場合に行うようにしてもよい）（ステップＳ１０５）。
【００３４】
図６は、メモリマッピング切り替え制御回路５１１によって行われるメモリマッピング切り替えを最適化する制御を示すフローチャートである。
【００３５】
メモリマッピング切り替え制御回路５１１は、ＨＤＤ１１７等に記憶されている、各物理メモリモジュール（DIMM1〜DIMM4）の初期化時の温度の値と、各物理メモリモジュール（DIMM1〜DIMM4）の温度の最大値とを比較する。これらの値の差は、例えば、図５に示されるように、物理メモリモジュールDIMM1は０℃、物理メモリモジュールDIMM2は−１０℃、物理メモリモジュールDIMM3は−５℃、物理メモリモジュールDIMM4は−１５℃となる。メモリマッピング切り替え制御回路５１１は、初期化時とＯＳ稼働時との温度の値の差が最も小さい(実動作時の負荷が最も重い)物理メモリモジュール（Ａ）を判別する（ステップＳ２０１）。図５に示されるように、物理メモリモジュール（Ａ）は、温度の値の差が最も小さい物理メモリモジュールDIMM1と判別される。続いて、メモリマッピング切り替え制御回路５１１は、初期化時の温度の値が最も低い物理メモリモジュール（Ｂ）を判別する。物理メモリモジュール（Ｂ）は、初期化時の温度の値が最も低い物理メモリモジュールDIMM1と判別される。メモリマッピング切り替え制御回路５１１は、物理メモリモジュール（Ａ）に割り当てられていたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングする（ステップＳ２０２）。この場合は、物理メモリモジュール（Ａ）および物理メモリモジュール（Ｂ）の双方が、物理メモリモジュールDIMM1であるので、最適化の状態であると判別して、何も処理を行わない。
【００３６】
例えば、メモリマッピング切り替え制御回路５１１によって、物理メモリモジュール（Ａ）および物理メモリモジュール（Ｂ）の双方が異なる物理メモリモジュールであると判別された場合は、メモリマッピング切り替え制御回路５１１は、物理メモリモジュール（Ａ）に割り当てられていたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングする。実動作時の負荷が最も重い物理メモリモジュール（Ａ）に割り当てられたメモリアドレス空間を、ＯＳ稼働時に一番負荷の少ない物理メモリモジュール（Ｂ）にマッピングすることができる。この場合は、メモリマッピング切り替え制御回路５１１は、メモリマッピングの切り替えの制御を行う。即ち、物理メモリモジュール（Ａ）に割り当てられたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングすると共に、物理メモリモジュール（Ｂ）に割り当てられたメモリアドレス空間を物理メモリモジュール（Ａ）にマッピングする。
【００３７】
また、メモリマッピング切り替え制御回路５１１は、メモリマッピングの最適化を行うために、スロット個別信号変換回路５１０へ指示信号を送出する。この指示信号を受信したスロット個別信号変換回路５１０は、メモリマッピング切り替え制御回路５１１によって判別されたマッピング処理の指示である指示信号に基づいて、各物理メモリモジュール（DIMM1〜DIMM4）に割り当てられているメモリアドレス空間をマッピングする。
【００３８】
なお、論理メモリアドレス空間から物理メモリアドレス空間へのマッピングは、仮想記憶実現のための方法として、一般的にオペレーティングシステムの機能により実装されている。また、物理メモリアドレス空間を、各物理メモリモジュール（DIMM1〜DIMM4）に、どのようにマッピングするかはメモリコントローラ３００の機能として実装されている。また、メモリコントローラ３００は、コンピュータ１０に実装されている各物理メモリモジュール（DIMM1〜DIMM4）の仕様、ＢＩＯＳ−ＲＯＭ１１９による設定等から、性能的に最適な物理メモリアドレス空間のマッピング方式を決定する。これにより、コンピュータ１０の起動時に、論理メモリアドレス空間から物理メモリアドレス空間へのマッピングを行う。
【００３９】
以上で、本発明の第１実施形態に係る情報処理装置を適用したメモリ制御方法の動作を示すフローチャートの説明を終了する。
【００４０】
上述したように、本実施形態を用いることにより、実動作時の負荷が最も重い物理メモリモジュール（Ａ）に割り当てられたメモリアドレス空間を、ＯＳ稼働時に一番負荷の少ない物理メモリモジュール（Ｂ）にマッピングすることができる。このため、各物理メモリモジュールの温度上昇を最低限に抑えることができ、最適なメモリモジュールの制御を行うことができる。また、コンピュータ１０のメインボード上における複数の物理メモリモジュールのレイアウトによって、冷却条件が夫々の物理メモリモジュールで異なる場合でも、最適なメモリモジュールの制御を行うことができる。
【００４１】
（第２実施形態）
本発明の第２実施形態に係る情報処理装置の構成を図７を参照して説明する。本実施形態では、上述した各物理メモリモジュール（DIMM1〜DIMM4）が２つのチャネルのいずれかに割り当てられている例を説明する。また、新たに、ノースブリッジ１１３内にチャネル共通信号変換回路５１２を設ける。
【００４２】
ノースブリッジ１１３は、メモリコントローラ３００、スロット個別信号変換回路５１０、メモリマッピング切り替え制御回路５１１、チャネル共通信号変換回路５１２を備えている。なお、スロット個別信号変換回路５１０、メモリマッピング切り替え制御回路５１１およびチャネル共通信号変換回路５１２は、ノースブリッジ１１３外に設けるようにしてもよい。
【００４３】
チャネル共通信号変換回路５１２は、メモリコントローラ３００と物理メモリモジュール（DIMM1〜DIMM4）との間に位置し、各チャネル内で共通の信号(データ、アドレス、バンク選択信号、RAS/CAS/WE等の制御信号)を、チャネルごと切り替える変換回路である。
【００４４】
メモリコントローラ３００は、チャネル制御を行うｃｈＡ（チャネルＡ）モジュールおよびｃｈＢ（チャネルＢ）モジュールを備えている。例えば、各物理メモリモジュール（DIMM1〜DIMM4）を２つのチャネルに割り当てるように構成する。ｃｈＡ（チャネルＡ）には、物理メモリモジュール（DIMM1、DIMM2）、ｃｈＢ（チャネルＢ）には、物理メモリモジュール（DIMM3、DIMM4）を割り当てる。
【００４５】
次に、本発明の第２の実施形態に係る情報処理装置を適用したメモリ制御方法の動作について説明する。上述した第１実施形態と、ステップＳ１０１〜ステップＳ１０５までは、同様のフローチャートとなる。
【００４６】
図８は、本発明の第２の実施形態に係るメモリマッピング切り替えを最適化する制御を示すフローチャートである。
【００４７】
メモリマッピング切り替え制御回路５１１は、ＨＤＤ１１７等に記憶されている、各物理メモリモジュール（DIMM1〜DIMM4）の初期化時の温度の値と、各物理メモリモジュール（DIMM1〜DIMM4）の温度の最大値とを比較する（図１０参照）。メモリマッピング切り替え制御回路５１１は、初期化時とＯＳ稼働時との温度の値の差が最も小さい(実動作時の負荷が最も重い)物理メモリモジュール（Ａ）を判別する。同時に、物理メモリモジュール（Ａ）が属するメモリチャネルを判別する（ステップＳ３０１）。初期化時とＯＳ稼働時との温度の値の差が最も小さい物理メモリモジュール（Ａ）は、例えば図１０に示されるように、メモリマッピング切り替え制御回路５１１によって物理メモリモジュールDIMM1と判別される。そして、物理メモリモジュールDIMM1が属するメモリチャネルは、メモリマッピング切り替え制御回路５１１によって「ｃｈＡ（チャネルＡ）」と判別される。
【００４８】
次に、メモリマッピング切り替え制御回路５１１によって、「初期化時」の温度が最も低いメモリスロット(冷却条件が良いスロット＝冷却条件が良いメモリモジュール)である物理メモリモジュール（Ｂ）を判別する。「初期化時」の温度が最も低いメモリモジュールである物理メモリモジュール（Ｂ）は、メモリマッピング切り替え制御回路５１１によって、例えば図１０に示されるように、物理メモリモジュールDIMM1と判別される。物理メモリモジュール（Ａ）と異なる場合には、メモリチャネルの入れ替え（切り替え）を行う（ステップＳ３０２）。即ち、実動作時の負荷が最も重い物理メモリモジュールが属するメモリチャネルを、冷却条件が良いメモリモジュールと入れ替えることにより、実動作時の負荷が最も重い物理メモリモジュールが属するメモリチャネルの冷却を改善させることができる。上述した場合は、物理メモリモジュール（Ａ）および物理メモリモジュール（Ｂ）が双方とも物理メモリモジュールDIMM1と判別され、最適化されている状態であると判別される。このため、メモリチャネルの入れ替えは行わない。なお、メモリチャネルの入れ替えは、メモリマッピング切り替え制御回路５１１からチャネル共通信号変換回路５１２に送出された指示信号に基づいて、チャネル共通信号変換回路５１２によって行われる。
【００４９】
続いて、各メモリチャネル内で以下の判別を行う。例えば、ｃｈＡ内においては、物理メモリモジュール（Ａ）は、メモリマッピング切り替え制御回路５１１によって、例えば図１０に示されるように、温度の値の差が最も小さい物理メモリモジュールDIMM1と判別される（ステップＳ３０３）。続いて、メモリマッピング切り替え制御回路５１１は、初期化時の温度の値が最も低い物理メモリモジュール（Ｂ）を判別する。物理メモリモジュール（Ｂ）は、初期化時の温度の値が最も低い物理メモリモジュールDIMM1と判別される。メモリマッピング切り替え制御回路５１１は、物理メモリモジュール（Ａ）に割り当てられていたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングする（ステップＳ３０４）。この場合は、物理メモリモジュール（Ａ）および物理メモリモジュール（Ｂ）の双方が、物理メモリモジュールDIMM1であるので、最適化の状態であると判別して、何も処理を行わない。
【００５０】
また、例えば、ｃｈＢ内においては、物理メモリモジュール（Ａ）は、メモリマッピング切り替え制御回路５１１によって、温度の値の差が最も小さい物理メモリモジュールDIMM3と判別される（ステップＳ３０３）。続いて、メモリマッピング切り替え制御回路５１１は、初期化時の温度の値が最も低い物理メモリモジュール（Ｂ）を判別する。物理メモリモジュール（Ｂ）は、初期化時の温度の値が最も低い物理メモリモジュールDIMM4と判別される。メモリマッピング切り替え制御回路５１１は、物理メモリモジュール（Ａ）に割り当てられていたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングする（ステップＳ３０４）。この場合は、物理メモリモジュールDIMM3に割り当てられていたメモリアドレス空間を物理メモリモジュールDIMM4にマッピングする。このため、実動作時の負荷が最も重い物理メモリモジュールが属するメモリチャネルを、冷却条件が良いメモリモジュールと入れ替えることにより、実動作時の負荷が最も重い物理メモリモジュールの冷却を改善させることができる。この場合は、メモリマッピング切り替え制御回路５１１は、メモリマッピングの最適化を行うために、スロット個別信号変換回路５１０へ指示信号を送出する。この指示信号を受信したスロット個別信号変換回路５１０は、メモリマッピング切り替え制御回路５１１によって判別されたマッピング処理の指示である指示信号に基づいて、各物理メモリモジュール（DIMM1〜DIMM4）に割り当てられているメモリアドレス空間をマッピングする。
【００５１】
続いて、メモリマッピング切り替え制御回路５１１は、すべてのメモリスロットに対して処理を行ったか否かを判別する（ステップＳ３０５）。ステップＳ２０３で、メモリマッピング切り替え制御回路５１１によって、すべてのメモリスロットに対して処理を行ったと判別された場合は（ステップＳ３０５のＹＥＳ）、フローを終了する。即ち、判別部であるメモリマッピング切り替え制御回路５１１は、物理メモリモジュール（DIMM1〜DIMM4）のすべてに対して判別を行うまで処理を続ける。一方、ステップＳ２０３で、メモリマッピング切り替え制御回路５１１によって、すべてのメモリスロットに対して処理を行っていないと判別された場合は（ステップＳ３０５のＮＯ）、ステップＳ３０３に遷移する。
【００５２】
以上で、本発明の第２実施形態に係る情報処理装置を適用したメモリ制御方法の動作を示すフローチャートの説明を終了する。
【００５３】
上述したように、本実施形態を用いることにより、複数のチャネルを用いて複数のメモリモジュールを構成した場合でも、各物理メモリモジュールの温度上昇を最低限に抑えることができ、最適なメモリモジュールの制御を行うことができる。
【００５４】
また、上述した実施形態では、メモリマッピング切り替えを最適化する制御を、メモリマッピング切り替え制御回路５１１等のハードウェアを用いて行っているが、メモリ制御アプリケーションのようなアプリケーションプログラムを用いて行うようにしてもよい。
【００５５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００５６】
１０…コンピュータ、１１３…ノースブリッジ、１１１…ＣＰＵ、１１２…メインメモリ、１１７…ＨＤＤ、１２１…ＣＲＴ、２００…ＨＷ監視回路、２０１…冷却ファン、２０２…ＯＳ、３００…メモリコントローラ、５１０…スロット個別信号変換回路、５１１…メモリマッピング切り替え制御回路、５１２…チャネル共通信号変換回路、６００…メインボード、７００…温度センサ
【図１】
2011095974.tif 000003
【図２】
2011095974.tif 000004
【図３】
2011095974.tif 000005
【図４】
2011095974.tif 000006
【図５】
2011095974.tif 000007
【図６】
2011095974.tif 000008
【図７】
2011095974.tif 000009
【図８】
2011095974.tif 000010
【図９】
2011095974.tif 000011
【図１０】
2011095974.tif 000012
【手続補正書】
【提出日】平成22年9月28日(2010.9.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報処理装置であって、
複数のメモリモジュールと、
前記情報処理装置が起動され、かつオペレーティングシステムが起動されていないとき、前記複数のメモリモジュールの夫々に同等の負荷を掛けて前記複数のメモリモジュールを初期化し、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時に前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部と、
前記測定部によって測定された温度に基づいて、前記複数のメモリモジュールのうち、前記初期化時の温度と前記オペレーティングシステムの稼働時の温度の最大値との差が一番小さい第１のメモリモジュール、および前記初期化時の温度が一番小さい第２のメモリモジュールを判別する判別部と、
前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられたメモリアドレスをマッピングする制御部とを備えることを特徴とする情報処理装置。
【請求項２】
前記複数のメモリモジュールは夫々が複数のチャネルのいずれかに属しており、
前記判別部は、前記第１のメモリモジュールが属する第１のチャネルおよび前記第２のメモリモジュールが属する第２のチャネルを判別し、
前記制御部は、前記第１のチャネルと前記第２のチャネルとが異なるチャネルであると判別された場合、前記第１のチャネルと前記第２のチャネルとを入れ替えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判別部は、各チャネル内で、前記第１のメモリモジュールと前記第２のメモリモジュールとを決定し、
前記制御部は、前記第１のメモリモジュールに割り当てられたメモリアドレスを前記第２のメモリモジュールにマッピングすることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記複数のメモリモジュールの夫々に送出される信号の変換を行うメモリモジュール個別変換部をさらに備え、
前記制御部は、前記メモリモジュール個別変換部に指示信号を送出し、
前記メモリモジュール個別変換部は、前記指示信号を受信したことに応じて前記メモリアドレスをマッピングすることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記複数のチャネルに属するメモリモジュールの夫々に、前記チャネル毎の信号を送出するチャネル共通変換部をさらに備え、
前記制御部は、前記チャネル共通変換部に指示信号を送出し、
前記チャネル共通変換部は、前記指示信号を受信したことに応じて前記チャネルを入れ替えることを特徴とする請求項２記載の情報処理装置。
【請求項６】
情報処理装置で用いられるメモリ制御方法であって、
前記情報処理装置は、
複数のメモリモジュールと、
前記情報処理装置が起動され、かつオペレーティングシステムが起動されていないとき、前記複数のメモリモジュールの夫々に同等の負荷を掛けて前記複数のメモリモジュールを初期化し、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時に前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部とを備え、
前記測定部によって測定された温度に基づいて、前記複数のメモリモジュールのうち、前記初期化時の温度と前記オペレーティングシステムの稼働時の温度の最大値との差が一番小さい第１のメモリモジュール、および前記初期化時の温度が一番小さい第２のメモリモジュールを判別し、
前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられたメモリアドレスをマッピングすることを特徴とするメモリ制御方法。
【請求項７】
前記複数のメモリモジュールは夫々が複数のチャネルのいずれかに属しており、
前記判別することは、前記第１のメモリモジュールが属する第１のチャネルおよび前記第２のメモリモジュールが属する第２のチャネルを判別し、
前記マッピングすることは、前記第１のチャネルと前記第２のチャネルとが異なるチャネルであると判別された場合、前記第１のチャネルと前記第２のチャネルとを入れ替えることを特徴とする請求項６記載のメモリ制御方法。
【請求項８】
前記判別することは、各チャネル内で、前記第１のメモリモジュールと前記第２のメモリモジュールとを決定し、
前記マッピングすることは、前記第１のメモリモジュールに割り当てられたメモリアドレスを前記第２のメモリモジュールにマッピングすることを特徴とする請求項７記載のメモリ制御方法。
【請求項９】
前記情報処理装置は、前記複数のメモリモジュールの夫々に送出される信号の変換を行うメモリモジュール個別変換部をさらに備え、
前記マッピングすることは、前記メモリモジュール個別変換部に、受信したことに応じて前記メモリアドレスをマッピングさせる指示信号を送出することを特徴とする請求項６記載のメモリ制御方法。
【請求項１０】
前記情報処理装置は、前記複数のチャネルに属するメモリモジュールの夫々に、前記チャネル毎の信号を送出するチャネル共通変換部をさらに備え、
前記マッピングすることは、前記チャネル共通変換部に、受信したことに応じて前記チャネルを入れ替えさせる指示信号を送出することを特徴とする請求項７記載のメモリ制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上述の課題を解決するために、本発明の一態様によれば、情報処理装置であって、複数のメモリモジュールと、前記情報処理装置が起動され、かつオペレーティングシステムが起動されていないとき、前記複数のメモリモジュールの夫々に同等の負荷を掛けて前記複数のメモリモジュールを初期化し、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時に前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部と、前記測定部によって測定された温度に基づいて、前記複数のメモリモジュールのうち、前記初期化時の温度と前記オペレーティングシステムの稼働時の温度の最大値との差が一番小さい第１のメモリモジュール、および前記初期化時の温度が一番小さい第２のメモリモジュールを判別する判別部と、前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられたメモリアドレスをマッピングする制御部とを備えることを特徴とする情報処理装置が提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、本発明の一態様によれば、情報処理装置で用いられるメモリ制御方法であって、前記情報処理装置は、複数のメモリモジュールと、前記情報処理装置が起動され、かつオペレーティングシステムが起動されていないとき、前記複数のメモリモジュールの夫々に同等の負荷を掛けて前記複数のメモリモジュールを初期化し、前記初期化時における前記複数のメモリモジュールの夫々の温度の値を測定すると共に、前記オペレーティングシステムの稼働時に前記複数のメモリモジュールの夫々の温度の最大値を測定する測定部とを備え、前記測定部によって測定された温度に基づいて、前記複数のメモリモジュールのうち、前記初期化時の温度と前記オペレーティングシステムの稼働時の温度の最大値との差が一番小さい第１のメモリモジュール、および前記初期化時の温度が一番小さい第２のメモリモジュールを判別し、前記第２のメモリモジュールに、前記第１のメモリモジュールに割り当てられたメモリアドレスをマッピングすることを特徴とするメモリ制御方法が提供される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
例えば、メモリマッピング切り替え制御回路５１１によって、物理メモリモジュール（Ａ）および物理メモリモジュール（Ｂ）の双方が異なる物理メモリモジュールであると判別された場合は、メモリマッピング切り替え制御回路５１１は、物理メモリモジュール（Ａ）に割り当てられていたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングする。実動作時の負荷が最も重い物理メモリモジュール（Ａ）に割り当てられたメモリアドレス空間を、初期化時の温度が最も低い物理メモリモジュール（Ｂ）にマッピングすることができる。この場合は、メモリマッピング切り替え制御回路５１１は、メモリマッピングの切り替えの制御を行う。即ち、物理メモリモジュール（Ａ）に割り当てられたメモリアドレス空間を物理メモリモジュール（Ｂ）にマッピングすると共に、物理メモリモジュール（Ｂ）に割り当てられたメモリアドレス空間を物理メモリモジュール（Ａ）にマッピングする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
上述したように、本実施形態を用いることにより、実動作時の負荷が最も重い物理メモリモジュール（Ａ）に割り当てられたメモリアドレス空間を、初期化時の温度が最も低い物理メモリモジュール（Ｂ）にマッピングすることができる。このため、各物理メモリモジュールの温度上昇を最低限に抑えることができ、最適なメモリモジュールの制御を行うことができる。また、コンピュータ１０のメインボード上における複数の物理メモリモジュールのレイアウトによって、冷却条件が夫々の物理メモリモジュールで異なる場合でも、最適なメモリモジュールの制御を行うことができる。