(57)【要約】【課題】メインメモリのエラーを予め防止することを課題とする。【解決手段】情報処理装置は、メモリのエラーが検出された場合に、プロセッサの温度を取得する。そして、情報処理装置は、取得されたプロセッサの温度が、プロセッサの動作周波数の制限が開始される上限温度以下か否かを判定する。その後、情報処理装置は、プロセッサの温度が上限温度以下である場合、取得されたプロセッサの温度より低い温度を上限温度に設定する。【選択図】図１
2018132947.tif 000002
【特許請求の範囲】
【請求項１】
メモリのエラーが検出された場合に、プロセッサの温度を取得する取得部と、
取得された前記プロセッサの温度が、前記プロセッサの動作周波数の制限が開始される上限温度以下か否かを判定する判定部と、
前記プロセッサの温度が前記上限温度以下である場合、前記プロセッサの温度より低い温度を前記上限温度に設定する設定部と
を有することを特徴とする情報処理装置。
【請求項２】
前記プロセッサの温度と前記メモリの温度との対応関係を記憶する記憶部と、
前記対応関係を参照して、取得された前記プロセッサの温度から前記エラーが検出されたときの前記メモリの温度を推定する推定部とをさらに有し、
前記判定部は、推定された前記メモリの温度が、前記エラーの発生頻度に基づく目標温度より高いか否かを判定し、
前記設定部は、前記メモリの温度が前記目標温度よりも高い場合、前記目標温度に対応付けられる前記プロセッサの温度を前記対応関係から特定し、特定した前記プロセッサの温度を前記上限温度に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶部は、前記プロセッサの温度と前記プロセッサおよび前記メモリの周辺に設置される周辺機器の温度とから推定される前記メモリの温度を記憶し、
前記取得部は、前記メモリのエラーが検出された場合に、前記プロセッサの温度および前記周辺機器の温度を取得し、
前記推定部は、前記記憶部を参照して、取得された前記プロセッサの温度および前記周辺機器の温度から前記エラーが検出されたときの前記メモリの温度を推定し、
前記判定部は、推定された前記メモリの温度が、前記目標温度より高いか否かを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
コンピュータに、
メモリのエラーが検出された場合に、プロセッサの温度を取得し、
取得された前記プロセッサの温度が、前記プロセッサの動作周波数の制限が開始される上限温度以下か否かを判定し、
前記プロセッサの温度が前記上限温度以下である場合、前記プロセッサの温度より低い温度を前記上限温度に設定する
処理を実行させることを特徴とする温度設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および温度設定プログラムに関する。
【背景技術】
【０００２】
従来から、パーソナルコンピュータやサーバなどのコンピュータ業界では、メインメモリの容量増加、メインメモリの帯域幅増加、メインメモリの稼動電圧の低下についての技術開発が盛んに行われている。一方で、メインメモリのエラー率増加が懸念されていることから、高性能なサーバでは、各種フォールトトレランス機能を実装し、システム全体を正常稼働させている。近年では、ＥＣＣ（誤り検出訂正：Error  Check  and  Correction）機能付きのメインメモリが知られており、メインメモリでエラーが発生すると、ＣＰＵ（Central  Processing  Unit）とメインメモリとの伝送用のクロック周波数を下げる技術も知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１３４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、メインメモリのエラーを予め防止することが難しい。例えば、クロック周波数を下げる技術は、エラーの発生を契機に伝送路故障のリカバリを行うものであり、メインメモリのエラーを予め防止できない。また、安価な性能が高くないサーバでは、コスト面からフォールトトレランス機能を実装することができないので、メインメモリのエラーが発生すると、システム全体に与える影響が大きい。
【０００５】
一つの側面では、メインメモリのエラーを予防することができる情報処理装置および温度設定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、情報処理装置は、メモリのエラーが検出された場合に、プロセッサの温度を取得する取得部と、取得された前記プロセッサの温度が、前記プロセッサの動作周波数の制限が開始される上限温度以下か否かを判定する判定部とを有する。情報処理装置は、前記プロセッサの温度が前記上限温度以下である場合、前記プロセッサの温度より低い温度を前記上限温度に設定する設定部を有する。
【発明の効果】
【０００７】
一実施形態によれば、メインメモリのエラーを予防することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１にかかる情報処理装置の機能構成を示す機能ブロック図である。
【図２】図２は、周辺機器の配置例を示す図である。
【図３】図３は、温度の測定範囲の例を示す図である。
【図４】図４は、相関ＤＢに記憶される相関テーブルの例を示す図である。
【図５】図５は、処理の流れを示すフローチャートである。
【図６】図６は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する情報処理装置および温度設定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１０】
［情報処理装置の説明］
実施例１にかかる情報処理装置は、一例として、フォールトトレランス機能が実装されておらず、メインメモリモジュール（以下では、単にメモリと記載する場合がある）においても温度センサを搭載していない、安価で低性能なコンピュータ装置である。なお、メインメモリモジュールには、一般的なモジュールを採用することもでき、メモリに誤った値が記録されていることを検出して正しい値に訂正することができるＥＣＣメモリを採用することもできる。
【００１１】
また、情報処理装置は、ＣＰＵなどのプロセッサの温度を検出する温度センサと、プロセッサとメモリの周辺の温度を検出する温度センサとを有する。なお、プロセッサは温度センサが内蔵されたものでもよく、プロセッサ付近に温度センサが別途備え付けられていてもよい。
【００１２】
このような情報処理装置は、メモリのエラーが検出された場合に、プロセッサの温度を取得し、取得されたプロセッサの温度が、プロセッサの動作周波数の制限が開始される上限温度以下か否かを判定する。そして、情報処理装置は、プロセッサの温度が上限温度以下である場合、プロセッサの温度より低い温度を上限温度に設定する。
【００１３】
つまり、実施例１にかかる情報処理装置は、メモリのＥＣＣエラーが検出されると、プロセッサの動作周波数であるコア周波数を意図的に下げ、この結果としてメインメモリの周辺温度を下げる。そして、情報処理装置は、メインメモリモジュールの交換等の修理が実施されるまで、可能な限り、メモリの動作環境のマージンを確保する。したがって、情報処理装置は、メモリのエラーを予防することができる。
【００１４】
［情報処理装置の機能構成］
図１は、実施例１にかかる情報処理装置１０の機能構成を示す機能ブロック図である。図１に示すように、情報処理装置１０は、イベントログＤＢ１１、上限値ＤＢ１２、相関ＤＢ１３、エラー検出部１４、ＣＰＵ温度測定部１５、周辺温度測定部１６、上限値変更部１７を有する。本実施例は、プロセッサの一例としてＣＰＵを用いて説明する。
【００１５】
イベントログＤＢ１１、上限値ＤＢ１２、相関ＤＢ１３は、メモリやハードディスクなどの記憶装置に記憶されるデータベースである。エラー検出部１４は、メモリコントローラやＣＰＵなどが有する電子回路の一例、メモリコントローラやＣＰＵなどが実行するプロセスの一例である。ＣＰＵ温度測定部１５、周辺温度測定部１６、上限値変更部１７は、ＣＰＵなどが有する電子回路の一例、ＢＩＯＳ（Basic  Input  Output  System）やＣＰＵなどが実行するプロセスの一例である。
【００１６】
イベントログＤＢ１１は、情報処理装置１０内で発生したエラーなどのイベントログを記憶するデータベースである。例えば、イベントログＤＢ１１は、ＥＣＣのエラー情報を記憶する。なお、エラー情報には、ＥＣＣエラーの発生メモリアドレス、発生時刻などが含まれる。また、イベントログＤＢ１１は、測定されたＣＰＵ温度や周辺温度の温度情報を記憶する。なお、温度情報には、対象部品、温度、測定時刻などが含まれる。
【００１７】
上限値ＤＢ１２は、ＣＰＵの動作周波数の制限が開始される温度の上限値を記憶するデータベースである。すなわち、上限値ＤＢ１２は、温度の閾値を記憶する。例えば、上限値ＤＢ１２は、５０度などを記憶する。ＣＰＵは、内蔵する温度センサを用いて温度を測定し、測定した温度がここで記憶される上限値に到達すると、プロセスの停止などを行って、処理量を制限する。
【００１８】
相関ＤＢ１３は、ＣＰＵ温度、周辺温度、メモリ温度の相関関係を記憶するデータベースである。具体的には、メモリそのものには、温度センサがつけられないので、ＣＰＵ温度と周辺温度とから予測されるメモリ温度を記憶する。
【００１９】
ここで、各温度の測定領域について説明する。図２は、周辺機器の配置例を示す図である。図２に示すように、一般的なコンピュータでは、ＣＰＵ１０ａとメモリ１０ｂとは近接しており、メモリ１０ｂの温度はＣＰＵ１０ａの温度の影響を受ける。また、メモリ１０ｂの周辺には、ＣＰＵ１０ａ以外にも、通信モジュールやＨＤＤ（Hard  Disk  Drive）などのハードウェアが設置される。このため、メモリ１０ｂの温度は、ＣＰＵ１０ａ以外の周辺機器の温度の影響も受ける。
【００２０】
そこで、実施例１では、メモリ１０ｂの温度を、ＣＰＵ１０ａの温度と周辺機器の温度とから推測する。図３は、温度の測定範囲の例を示す図である。図３に示すように、ＣＰＵ１０ａは、メモリコントローラと温度センサを内蔵し、内蔵の温度センサを用いてＣＰＵ１０ａの温度を測定する。また、温度センサ１０ｃは、予め指定された位置に設置されて、周辺機器すなわちメモリ１０ｂ周辺のハードウェアの温度を測定する。なお、温度センサ１０ｃは、一般的なコンピュータが有する温度センサを用いることもできる。そして、図３に示すように、ＣＰＵ１０ａの温度と温度センサ１０ｃによる測定温度とから、メモリ１０ｂの周辺温度が推定される。
【００２１】
次に、メモリ１０ｂの推定温度について説明する。図４は、相関ＤＢ１３に記憶される相関テーブルの例を示す図である。図４に示すように、相関テーブルは、ＣＰＵの温度（℃）とその他の温度センサ１０ｃの温度（℃）とからメモリ１０ｂの周辺温度が推定できるテーブル構成である。図４の一例では、ＣＰＵの温度が６０℃かつ温度センサ１０ｃの温度が２０℃のとき、メモリ１０ｂの周辺温度が４５℃と推定されることを示す。
【００２２】
なお、図４において、メモリの周辺温度と記載するのは、メモリ１０ｂそのものの温度は測定できず、ＣＰＵ１０ａなどの周辺機器の温度等から推定される温度であり、この推定される温度にはメモリの周辺温度が含まれると予想されるためである。なお、本実施例では、単にメモリの温度やメモリ温度と記載する場合がある。また、テーブル構成は、ＣＰＵ１０ａの温度だけでメモリ１０ｂの温度を推定する構成であってもよい。
【００２３】
図１に戻り、エラー検出部１４は、メモリ１０ｂのエラーを検出する処理部である。具体的には、エラー検出部１４は、メモリ１０ｂのＥＣＣシングルビットエラーやＥＣＣのマルチビットエラーなどを検出して、ＣＰＵ温度測定部１５および周辺温度測定部１６に通知する。なお、エラー検出部１４は、ＥＣＣエラーを検出すると、エラー情報をイベントログＤＢ１１に書き込む。
【００２４】
ＣＰＵ温度測定部１５は、ＣＰＵに内蔵される温度センサが測定したＣＰＵの温度を取得する処理部である。具体的には、ＣＰＵ温度測定部１５は、エラー検出部１４からエラー発生を通知されると、温度センサから当該温度センサが計測した温度を取得する。そして、ＣＰＵ温度測定部１５は、取得した時刻とＣＰＵ温度とを対応付けてイベントログＤＢ１１に格納し、取得した温度を上限値変更部１７に出力する。つまり、ＣＰＵ温度測定部１５は、メモリのＥＣＣエラーが発生したときの温度を特定する。
【００２５】
周辺温度測定部１６は、温度センサ１０ｃが測定した周辺温度を取得する処理部である。具体的には、周辺温度測定部１６は、エラー検出部１４からエラー発生を通知されると、温度センサ１０ｃから当該温度センサが計測した周辺温度を取得する。そして、周辺温度測定部１６は、取得した時刻と周辺温度とを対応付けてイベントログＤＢ１１に格納し、取得した周辺温度を上限値変更部１７に出力する。つまり、周辺温度測定部１６は、メモリのＥＣＣエラーが発生したときのメモリ１０ｂやＣＰＵ１０ａの周辺温度を特定する。
【００２６】
上限値変更部１７は、相関ＤＢ１３に記憶される相関テーブルにしたがって、上限値ＤＢ１２に記憶される上限値を更新する処理部である。具体的には、上限値変更部１７は、相関テーブルを参照して、ＣＰＵ温度と周辺温度とからメモリ周辺温度を特定する。そして、上限値変更部１７は、特定したメモリ周辺温度が目標温度よりも高いか否かを判定する。ここで、上限値変更部１７は、メモリ周辺温度が目標温度よりも低い場合は、上限値を変更せずに維持する。一方で、上限値変更部１７は、メモリ周辺温度が目標温度よりも高い場合は、周辺温度と目標温度に対応するＣＰＵ温度を特定し、特定したＣＰＵ温度を上限値として上限値ＤＢ１２に格納する。なお、上限値変更部１７は、特定されたメモリ周辺温度と目標温度との比較を行うことなく、上限値を変更することもできる。
【００２７】
例えば、上限値変更部１７は、ＥＣＣエラー発生時のＣＰＵ温度が８０℃で周辺温度が４０度のとき、図４の相関テーブルにしたがって、メモリ１０ｂの温度を７５℃と類推する。そして、上限値変更部１７は、例として目標温度がマイナス１０℃の６５℃であるとき、周辺温度は変更できないことから、図４の相関テーブルにしたがってＣＰＵ温度７０℃以下にする必要があると判定する。この結果、上限値変更部１７は、上限値ＤＢ１２の上限値を７０℃に設定する。
【００２８】
ここで、目標温度とは、エラーの発生頻度に基づく温度の一例である。例えば、エラーが発生したときの温度を蓄積し、蓄積した結果からエラーの発生数が所定値以下となる温度を目標温度と事前に決めておくことができる。また、類推されたメモリ１０ｂの温度からマイナス１０℃を目標温度として毎回決定することもできる。なお、マイナス１０℃は一例であり、任意に変更できる。
【００２９】
上限値変更の別例としては、ＣＰＵの温度だけで判定することもできる。例えば、上限値変更部１７は、ＥＣＣエラーが発生したときのＣＰＵ温度と、上限値ＤＢ１２に記憶される上限値とを比較し、測定したＣＰＵ温度が上限値以上であれば、上限値の変更を抑制する。一方で、上限値変更部１７は、測定したＣＰＵ温度が上限値より低ければ、より低い温度を上限値に設定する。具体的には、上限値変更部１７は、測定したＣＰＵ温度よりもマイナス１０℃低い温度を上限値に設定する。
【００３０】
更なる別例としては、上限値変更部１７は、ＥＣＣエラーが発生したときのＣＰＵ温度だけを用いて、図４の相関テーブルからメモリ周辺温度を特定する。その後は上述した処理と同様、上限値変更部１７は、特定したメモリ周辺温度が目標値となるように、ＣＰＵ温度の上限値を変更する。
【００３１】
［処理の流れ］
図５は、処理の流れを示すフローチャートである。ここでは、ＥＣＣシングルビットエラーを一例にして説明する。図５に示すように、エラー検出部１４は、メモリエラーを検出すると（Ｓ１０１：Ｙｅｓ）、ＥＣＣシングルビットエラー発生のステータスビットを設定し、ＥＣＣエラーを検知したことを表す割り込み処理を発生させる（Ｓ１０２）。
【００３２】
続いて、エラー検出部１４は、割り込み処理内で、ＥＣＣのエラー情報をイベントログＤＢ１１に追記する（Ｓ１０３）。
【００３３】
その後、割り込み処理内で、ＣＰＵ温度測定部１５は、ＣＰＵの温度を測定してイベントログＤＢ１１に追記し、周辺温度測定部１６は、周辺温度を測定してイベントログＤＢ１１に追記する（Ｓ１０４）。
【００３４】
そして、割り込み処理内で、上限値変更部１７は、相関テーブルを参照して、測定されたＣＰＵ温度と周辺温度とから、メモリ１０ｂの温度を類推する（Ｓ１０５）。続いて、割り込み処理内で、上限値変更部１７は、メモリ１０ｂの温度を目標温度まで下げるためのＣＰＵ温度を、相関テーブルから特定し、特定したＣＰＵ温度を上限値に設定する（Ｓ１０６）。
【００３５】
その後、割り込み処理内で、上限値変更部１７は、ＥＣＣシングルビットエラー発生のステータスビットをクリアする（Ｓ１０７）。
【００３６】
そして、ユーザによる再起動が行われると（Ｓ１０８：Ｙｅｓ）、上限値変更部１７は、変更後の上限値を維持する（Ｓ１０９）。
【００３７】
その後、一定時間ＥＣＣエラーが再発しなかった場合（Ｓ１１０：Ｙｅｓ）、上限値変更部１７は、元々設定されていた規定値を上限値に再変更する（Ｓ１１１）。一方、一定時間内にＥＣＣエラーが再発した場合（Ｓ１１０：Ｎｏ）、上限値変更部１７は、Ｓ１０２以降を繰り返す。
【００３８】
［効果］
上述したように、情報処理装置１０は、ＥＣＣエラーが発生したときに、再発防止のために、ＣＰＵ温度を下げるように制御できるので、メインメモリのエラーを予め防止することができる。したがって、情報処理装置１０は、安価なコンピュータであっても、メモリ１０ｂのＥＣＣエラーが複数回以上発生時した以降で、ユーザ使用環境下でのメモリ周辺温度をコントロールすることで、ＥＣＣエラー再発を低減することができる。
【００３９】
また、情報処理装置１０は、安価なコンピュータであって、メインメモリモジュール交換等の修理を実施するまで、可能な限り、メインメモリ動作環境のマージンを確保できる。さらに、情報処理装置１０は、偶発的にメモリ１０ｂのＥＣＣエラーが発生したのかどうかの状況監視をするため、ＣＰＵのコア周波数を意図的に下げ、即ちメインメモリ周辺温度を下げ、追加コストを掛けることなく、メモリ動作環境のマージンを確保することができる。
【実施例２】
【００４０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００４１】
［ＥＣＣエラー］
上記例では、ＥＣＣシングルビットエラーを例にして説明したが、これに限定されるものではなく、ＥＣＣマルチビットエラーであっても同様に処理することができる。具体的には、ＥＣＣシングルビットエラーの場合はＥＣＣにてエラー訂正可能であるが、ＥＣＣマルチビットエラーの場合はＥＣＣにてエラー訂正ができないので、情報処理装置１０が稼働しているか否か、すなわちＢＩＯＳが処理を継続できるか否かによって実行される処理がことなる。例えば、ＢＩＯＳが処理を継続できる場合は、実施例１と同様の処理が実行される。一方で、ＢＩＯＳが処理を継続できない場合は、情報処理装置１０の初期化処理内で、上記処理が実行される。
【００４２】
［システム］
記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００４３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００４４】
［ハードウェア構成］
図６は、情報処理装置１０のハードウェア構成例を示す図である。図６に示すように、情報処理装置１０は、ＣＰＵ１０ａ、メモリ１０ｂ、温度センサ１０ｃ、通信インタフェース１０ｄ、ＨＤＤ１０ｅを有する。
【００４５】
通信インタフェース１０ｄは、他の装置の通信を制御するネットワークインタフェースカードなどである。ＨＤＤ１０ｅは、プログラムやデータなどを記憶する記憶装置の一例である。温度センサ１０ｃは、周辺温度を測定する温度センサである。
【００４６】
メモリ１０ｂの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。ＣＰＵ１０ａ以外のプロセッサの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【００４７】
また、情報処理装置１０は、プログラムを読み出して実行することで温度変更方法を実行する情報処理装置として動作する。つまり、情報処理装置１０は、エラー検出部１４、ＣＰＵ温度測定部１５、周辺温度測定部１６、上限値変更部１７と同様の機能を実行するプログラムを実行する。この結果、情報処理装置１０は、エラー検出部１４、ＣＰＵ温度測定部１５、周辺温度測定部１６、上限値変更部１７と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、情報処理装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００４８】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００４９】
１０  情報処理装置
１１  イベントログＤＢ
１２  上限値ＤＢ
１３  相関ＤＢ
１４  エラー検出部
１５  ＣＰＵ温度測定部
１６  周辺温度測定部
１７  上限値変更部
【図１】
2018132947.tif 000003
【図２】
2018132947.tif 000004
【図３】
2018132947.tif 000005
【図４】
2018132947.tif 000006
【図５】
2018132947.tif 000007
【図６】
2018132947.tif 000008