(57)【要約】【課題】ＤＩＭＭの適切な行にｈＰＰＲを適用すること。【解決手段】ＣＥ閾値超過が発生すると、行位置判定部４２２が、最後に発生したＣＥの行位置を取得してＰＰＲ位置情報を作成し、ＢＭＣ６００に通知する。そして、ＣＥ情報集計部６１０が、複数のＰＰＲ位置情報を集計して最も頻度が高いＰＰＲ位置情報を特定し、ｓＰＰＲ効果管理部６２０に通知する。ｓＰＰＲ効果管理部６２０は、通知されたＰＰＲ位置情報をｓＰＰＲ位置情報６２１として記憶する。そして、ＰＰＲ切り替え部４１１が、ｓＰＰＲ効果管理部６２０からｓＰＰＲ位置情報６２１を取得してｓＰＰＲを適用する。そして、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲの効果を判定し、効果があると判定すると、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知する。そして、ｈＰＰＲデータ管理部６３０は、通知されたｓＰＰＲ位置情報６２１をｈＰＰＲ位置情報６３１として記憶する。【選択図】図１
2020057257.tif 000002
【特許請求の範囲】
【請求項１】
障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置において、
訂正可能エラーを閾値回数を超えて検出すると、訂正可能エラーが発生したいずれかの領域の位置情報を取得する取得部と、
前記取得部が取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定する特定部と、
前記特定部により特定されたソフト修復位置情報が示す領域のソフト修復を行うソフト修復部と、
前記ソフト修復部によるソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する効果確認部と
を有することを特徴とする情報処理装置。
【請求項２】
前記取得部が前記位置情報を最初に取得した際に、前記閾値回数をより小さい値に変更する変更部をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変更部は、前記取得部が前記位置情報を２回目に取得した際に、前記閾値回数をより小さい値に変更した時間からの経過時間が閾値時間よりも小さい場合には、前記閾値回数を増加することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記効果確認部は、前記ソフト修復が行われた領域について一定期間中に、訂正可能エラーを前記閾値回数検出することなく前記ソフト修復が行われた領域の使用を示す量が閾値使用量より大きい場合に、前記ソフト修復の効果があると判定することを特徴とする請求項１、２又は３に記載の情報処理装置。
【請求項５】
前記使用を示す量と閾値使用量は、前記ソフト修復が行われた領域へのアクセス回数と閾値アクセス回数であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記使用を示す量と閾値使用量は、前記半導体記憶装置の使用電力量と閾値電力量、又は、前記半導体記憶装置の前記一定期間中の温度と閾値温度であることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記効果確認部は、前記一定期間中に割り込みを発生させて前記使用を示す量をＢＩＯＳに収集させることを特徴とする請求項４、５又は６に記載の情報処理装置。
【請求項８】
前記効果確認部は、前記ソフト修復の効果を確認中に他の領域で訂正可能エラーが前記閾値回数検出された場合、前記ソフト修復の効果の確認をキャンセルするとともに、前記ソフト修復位置情報に対応付けられたカウンタの値を増加し、前記カウンタの値が所定の値を超えると、前記ソフト修復位置情報をハード修復位置情報として設定することを特徴とする請求項１〜７のいずれか１つに記載の情報処理装置。
【請求項９】
前記半導体記憶装置は、ＤＩＭＭであり、前記領域はＤＩＭＭの行であり、前記スペア領域は、ＤＩＭＭのスペア行であり、前記取得部と前記変更部と前記ソフト修復部はＢＩＯＳに含まれ、前記特定部と前記効果確認部は管理モジュールに含まれることを特徴とする請求項１〜８のいずれか１つに記載の情報処理装置。
【請求項１０】
障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置に内蔵され、該情報処理装置を管理するコンピュータで実行される修復管理プログラムにおいて、
訂正可能エラーが閾値回数を超えて検出された際に、訂正可能エラーが発生したいずれかの領域の位置情報を受信し、
受信を繰り返すことで取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定し、
特定したソフト修復位置情報が示す領域のソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する
処理を前記コンピュータに実行させることを特徴とする修復管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び修復管理プログラムに関する。
【背景技術】
【０００２】
情報処理装置のメインメモリ等に用いられるＤＩＭＭ（Dual  Inline  Memory  Module）は複数のランク（Rank）を有し、各ランクは複数のバンク（Bank）を有する。図１５は、ＤＩＭＭの構成を示す図である。図１５に示すように、ＤＩＭＭ１００は、複数のランク１１０を有する。ランク１１０は、複数のバンク１１１を有する。
【０００３】
図１６は、バンク１１１の構成を示す図である。図１６に示すように、バンク１１１は、複数の行（row）と複数の列（column）を有し、ＤＲＡＭ（Dynamic  Random  Access  Memory）メモリマトリックスを構成する。行の位置と列の位置で特定される領域が１ビットの情報を示すメモリセルである。エラーが発生したメモリセルは故障セル（faulty  cell）と呼ばれ、故障セルを含む行は故障行（faulty  row）と呼ばれる。
【０００４】
また、バンク１１１はスペア行を有し、故障行はスペア行に切り替えられる。１つのバンク１１１には、複数のスペア行がある。故障行をスペア行に切り替えることで障害を修復することはＰＰＲ（Post  Package  Repair）と呼ばれる。
【０００５】
ＰＰＲには、ｈＰＰＲとｓＰＰＲがある。ｈＰＰＲでは、ヒューズにより故障行がスペア行に切り替えられる。したがって、ｈＰＰＲによる修復を元に戻すことはできない。ｓＰＰＲでは、ソフトウェアにより故障行がスペア行に切り替えられる。したがって、ｓＰＰＲによる修復はリセットにより失われる。
【０００６】
ＤＩＭＭからのデータの読み出しやＤＩＭＭヘのデータの書き込みを制御するメモリコントローラは、ＤＩＭＭに発生した修正可能エラー(例えば、ＥＣＣ（Error  Correcting  Code）修正可能エラー)の数をランク単位で計数する。その理由は、例えばＤＤＲ４（Double-Data-Rate4）のＤＲＡＭのＥＣＣの場合、ＥＣＣはランクのデータバス（６４ビット）に対して付加されるためである。また、行は多数（例えば、４０９６以上）あるため、メモリコントローラ内に行毎に計数カウンタを設けることは現実的ではないためでもある。
【０００７】
メモリコントローラは、計数した修正可能エラー数が予め設定された閾値に到達すると、ＳＭＩ（System  Management  Interrupt）をＣＰＵ（Central  Processing  Unit）に発生するとともに、最後に発生した修正可能エラーの行位置情報をランク単位で記憶する。
【０００８】
ＢＩＯＳのＳＭＩハンドラは、最後に発生した修正可能エラーの行位置情報をメモリコントローラから読み出し、読み出した行位置情報をＢＭＣ（Baseboard  Management  Controller）に送信する。ＢＭＣは、情報処理装置に内蔵され、情報処理装置を管理する装置である。ＢＭＣは、行位置情報を受信してランク単位で記憶する。ＢＩＯＳ（Basic  Input/Output  System）は、起動時にＢＭＣから行位置情報をランク単位で取得し、行位置情報が示す行をｈＰＰＲ又はｓＰＰＲによりスペア行に切り替える。
【０００９】
なお、メモリセルで一度発生したエラーをソフトエラーとみなし、再度エラーが発生すると潜在エラーとみなしてオンチップ冗長を用いて修復する技術がある。
【００１０】
また、被試験メモリの不良救済解析を簡易かつ的確に行うことができるメモリ不良救済解析装置がある。この装置は、任意のカラムライン内の不良セル数が基準数を越えた場合には、そのライン内の全メモリセルを不良セルとみなして、各ロウラインの不良セル数と、ロウライン内の不良セル数が予め定めた基準数を越えたか否かを示すラインフェイル情報とを検出する。この装置は、任意のロウライン内の不良セル数が基準数を超えた場合には、そのライン内の全メモリセルを不良セルとみなして、各カラムラインの不良セル数と、カラムライン内の不良セル数が予め定めた基準数を越えたか否かを示すラインフェイル情報とを検出する。したがって、この装置は、ラインフェイルと判断されたライン内のメモリセルを除いて、不良セルの検出を行うようにしたため、ラインフェイルか否かの判断を簡易かつ的確に行うことができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−５４２６３号公報
【特許文献２】特開平１１−１０２５９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＢＩＯＳは、起動時にＢＭＣから、ランク単位で最後に発生した修正可能エラーの行位置情報しか取得することができないため、不適切な行をＰＰＲ対象とする可能性があるという問題がある。例えば、最後に発生した修正可能エラーの行以外に、より多くの修正可能エラーが発生した行が同じランク内にある可能性がある。
【００１３】
図１７は、最後に発生した修正可能エラーの行以外に、より多くの修正可能エラーが発生した行が同じランク内にある例を説明するための図である。図１７において、バンクａとバンクｂが同一ランク内にあるとし、バンクａの故障行＃１では、定常的に修正可能エラーが発生しており、バンクｂの故障行＃２では、故障行＃１と比較して極めて低頻度で修正可能エラーが発生しているとする。メモリコントローラが検出する修正可能エラーはランク毎のため、最後に発生した修正可能エラーの行が故障行＃２であった場合、メモリコントローラが記憶する位置情報は故障行＃２の位置情報となり、ＢＩＯＳは故障行＃２にＰＰＲを適用する。しかしながら、このケースでは、ＢＩＯＳは修正可能エラーの発生頻度がより高い故障行＃１に優先的にＰＰＲを適用するべきである。
【００１４】
本発明は、１つの側面では、メモリモジュールにおいて修正可能エラーが発生する行を適切に修復することを目的とする。
【課題を解決するための手段】
【００１５】
１つの態様では、情報処理装置は、障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有し、取得部と特定部とソフト修復部と効果確認部とを有する。前記取得部は、訂正可能エラーを閾値回数を超えて検出すると、訂正可能エラーが発生したいずれかの領域の位置情報を取得する。前記特定部は、前記取得部が取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定する。前記ソフト修復部は、前記特定部により特定されたソフト修復位置情報が示す領域のソフト修復を行う。前記効果確認部は、前記ソフト修復部によるソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する。
【発明の効果】
【００１６】
１つの側面では、本発明は、メモリモジュールにおいて修正可能エラーが発生する行を適切に修復することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例に係る情報処理装置の構成を示す図である。
【図２】図２は、ＣＥカウンタの一例を示す図である。
【図３】図３は、ＣＥ閾値レジスタの一例を示す図である。
【図４】図４は、最終ＣＥ位置レジスタの一例を示す図である。
【図５】図５は、ＤＩＭＭの消費エネルギーを記憶するレジスタの一例を示す図である。
【図６】図６は、ＤＩＭＭの温度を記憶するレジスタの一例を示す図である。
【図７Ａ】図７Ａは、アクセス状況を監視する位置を指定するレジスタの一例を示す図である。
【図７Ｂ】図７Ｂは、アクセス数を積算するカウンタレジスタの一例を示す図である。
【図８】図８は、ｓＰＰＲ位置情報の一例を示す図である。
【図９】図９は、ｓＰＰＲ位置履歴のエントリの一例を示す図である。
【図１０】図１０は、ｈＰＰＲ位置情報の一例を示す図である。
【図１１Ａ】図１１Ａは、情報処理装置によるＰＰＲ処理のフローを示す第１のフローチャートである。
【図１１Ｂ】図１１Ｂは、情報処理装置によるＰＰＲ処理のフローを示す第２のフローチャートである。
【図１１Ｃ】図１１Ｃは、情報処理装置によるＰＰＲ処理のフローを示す第３のフローチャートである。
【図１２Ａ】図１２Ａは、情報収集フェーズ処理のフローを示す第１のフローチャートである。
【図１２Ｂ】図１２Ｂは、情報収集フェーズ処理のフローを示す第２のフローチャートである。
【図１３Ａ】図１３Ａは、効果確認フェーズ処理のフローを示す第１のフローチャートである。
【図１３Ｂ】図１３Ｂは、効果確認フェーズ処理のフローを示す第２のフローチャートである。
【図１４】図１４は、ＢＭＣのハードウェア構成の一例を示す図である。
【図１５】図１５は、ＤＩＭＭの構成を示す図である。
【図１６】図１６は、バンクの構成を示す図である。
【図１７】図１７は、最後に発生した修正可能エラーの行以外に、より多くの修正可能エラーが発生した行が同じランク内にある例を説明するための図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する情報処理装置及び修復管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１９】
まず、実施例に係る情報処理装置の構成について説明する。図１は、実施例に係る情報処理装置の構成を示す図である。図１に示すように、実施例に係る情報処理装置１は、ＤＩＭＭ１００と、ＣＰＵ２００と、チップセット３００と、ＢＩＯＳ４００と、ＯＳ（Operating  System）５００と、ＢＭＣ６００とを有する。
【００２０】
ＤＩＭＭ１００は、情報処理装置１のメインメモリである。ＤＩＭＭ１００は、情報処理装置１が実行するプログラムやプログラムの実行途中結果などを記憶する。ＤＩＭＭ１００は、複数の行１１２と、複数のスペア行１１３を有する。行１１２は故障するとスペア行１１３にＰＰＲにより切り替えられる。
【００２１】
ＣＰＵ２００は、ＤＩＭＭ１００からプログラムを読み出して実行する中央処理装置である。なお、図１では１つのＣＰＵ２００のみを示すが、ＣＰＵ２００は複数あってもよい。ＣＰＵ２００は、ＤＩＭＭ１００へのアクセスを制御するメモリコントローラ２１０を有する。
【００２２】
メモリコントローラ２１０は、複数のメモリチャネルを有する。それぞれのメモリチャネルに複数のＤＩＭＭ１００が接続するが、ここでは、１つのメモリチャネルに１つのＤＩＭＭ１００が接続するとする。メモリコントローラ２１０とＤＩＭＭ１００はＳＭｂｕｓで接続しており、メモリコントローラ２１０は、ＤＩＭＭ１００のＳＰＤ（Serial  Presence  Detect）やＴＳＯＤ（Thermal  Sensor  on  DIMM）の情報を取得することができる。
【００２３】
メモリコントローラ２１０は、ＣＥカウンタ２１１と、ＣＥ閾値レジスタ２１２と、最終ＣＥ位置レジスタ２１３と、電力監視部２１４と、温度監視部２１５と、行アクセス監視部２１６とを有する。
【００２４】
ＣＥカウンタ２１１は、メモリコントローラ２１０に接続するＤＩＭＭ１００のＣＥ（Correctable  Error：修正可能エラー）の数を計数する。計数する単位は、例えばランク１１０である。図２は、ＣＥカウンタ２１１の一例を示す図である。図２に示すように、ＣＥカウンタ２１１は、ＣＥカウンタ＃０〜ＣＥカウンタ＃７で表される８個のレジスタを有する。ＣＥカウンタ＃０はランク＃０で検出したＣＥの数を計数し、ＣＥカウンタ＃１はランク＃１で検出したＣＥの数を計数し、・・・、ＣＥカウンタ＃７はランク＃７で検出したＣＥの数を計数する。各レジスタのビット長は３２である。ビット［３１］はｅｎａｂｌｅビットであり、ビット［３１］＝１のときＣＥを計数する。ビット［３０：０］は計数したＣＥの数である。
【００２５】
ＣＥ閾値レジスタ２１２は、ＣＥカウンタ２１１が計数するＣＥの閾値（ＣＥ閾値）を記憶する。ＣＥカウンタ２１１の値が閾値を超えると、メモリコントローラ２１０は、ＣＰＵ２００にＳＭＩを発生する。図３は、ＣＥ閾値レジスタ２１２の一例を示す図である。図３に示すように、ＣＥ閾値レジスタ２１２は、ＣＥ閾値＃０〜ＣＥ閾値＃７で表される８個のレジスタを有する。ＣＥ閾値＃０はランク＃０のＣＥの閾値を記憶するレジスタであり、ＣＥ閾値＃１はランク＃１のＣＥの閾値を記憶するレジスタであり、・・・、ＣＥ閾値＃７はランク＃７のＣＥの閾値を記憶するレジスタである。
【００２６】
各レジスタのビット長は３２である。ビット［３１］はｏｖｅｒビットであり、ビット［３１］＝１はＣＥの数が閾値を超過したことを示す。ＢＩＯＳ４００は、ｏｖｅｒ＝１となっているランク１１０で閾値超過が発生したことを知ることができる。ｏｖｅｒビットは、ＢＩＯＳ４００が１を書き込むことでクリアされる。ＢＩＯＳ４００が１を書き込んでクリアするまでは、次に閾値超過が発生してもＳＭＩは発生しない。ビット［３０：０］は対象ランク１１０の閾値であり、０のときは閾値超過は監視されない。
【００２７】
最終ＣＥ位置レジスタ２１３は、最後に発生したＣＥの位置情報（行アドレス）を記憶する。図４は、最終ＣＥ位置レジスタ２１３の一例を示す図である。図４に示すように、最終ＣＥ位置レジスタ２１３は、ＣＥ位置＃０〜ＣＥ位置＃７で表される８個のレジスタを有する。ＣＥ位置＃０はランク＃０の位置情報を示し、ＣＥ位置＃１はランク＃１の位置情報を示し、・・・、ＣＥ位置＃７はランク＃７の位置情報を示す。各レジスタのビット長は３８である。
【００２８】
ビット［３７：３５］は、ランク１１０にサブランクがある場合にサブランクを示す。ビット［３４：３１］は、最後にＣＥが発生したバンク１１１を示す。ビット［３０：２１］は、最後にＣＥが発生したバンク１１１において最後に発生したＣＥの列アドレスを示す。ビット［２０：０］は、最後にＣＥが発生したバンク１１１において最後に発生したＣＥの行ドレスを示す。
【００２９】
電力監視部２１４は、メモリコントローラ２１０に接続するＤＩＭＭ１００の消費エネルギーを監視し、レジスタに記憶する。例えば、電力監視部２１４は、ＤＩＭＭ１００の消費エネルギーを１０マイクロジュール単位で積算するカウンタレジスタを備える。ＢＩＯＳ４００は、計測開始時と計測終了時にレジスタの値を読み出してＤＩＭＭ１００の時間あたりの消費エネルギーを算出する。
【００３０】
図５は、ＤＩＭＭ１００の消費エネルギーを記憶するレジスタの一例を示す図である。図５に示すように、ＤＩＭＭ１００の消費エネルギーを記憶するレジスタは、３２ビットのレジスタであり、消費エネルギーの積算値を１０マイクロジュール単位で記憶する。メモリコントローラ２１０に接続するＤＩＭＭ１００が複数ある場合には、レジスタも複数ある。
【００３１】
温度監視部２１５は、メモリコントローラ２１０に接続するＤＩＭＭ１００の温度を監視し、レジスタに記憶する。例えば、温度監視部２１５は、ＤＩＭＭ１００の温度を°Ｃで示すレジスタを備える。ＢＩＯＳ４００は、レジスタを読み出すことでＤＩＭＭ１００の温度を取得する。ＢＩＯＳ４００は、例えば、温度計測開始時から３０秒毎に１０回レジスタを読み出して平均をとることで計測区間内の平均温度を算出することができる。
【００３２】
図６は、ＤＩＭＭ１００の温度を記憶するレジスタの一例を示す図である。図６に示すように、ＤＩＭＭ１００の温度を記憶するレジスタは、３２ビットのレジスタであり、下位８ビットを用いて温度を°Ｃで記憶する。ｒｅｓｅｒｖｅｄは将来の拡張用である。
【００３３】
行アクセス監視部２１６は、メモリコントローラ２１０に接続するＤＩＭＭ１００のランク内の特定のバンク１１１の特定の行１１２へのアクセスを監視し、アクセス数をレジスタに記憶する。ＢＩＯＳ４００は、監視する行１１２を指定する。例えば、行アクセス監視部２１６は、ＢＩＯＳ４００がＤＩＭＭ１００、ランク１１０、バンク１１１及び行１１２の位置を指定するためのレジスタと、指定された行１１２へのアクセス数を積算するカウンタレジスタを備える。ＢＩＯＳ４００は、計測開始時と計測終了時にカウンタレジスタの値を読み出してアクセス数を算出する。行数が多いため全行を監視することは困難であるので、行アクセス監視部２１６は、ランク１１０あたり１つの行１１２を監視する。
【００３４】
図７Ａは、アクセス状況を監視する位置を指定するレジスタの一例を示す図であり、図７Ｂは、アクセス数を積算するカウンタレジスタの一例を示す図である。図７Ａに示すように、監視位置を指定するレジスタは、モニタ行＃０〜モニタ行＃７で表される８個のレジスタを有する。モニタ行＃０はランク＃０の監視位置を指定するレジスタであり、モニタ行＃１はランク＃１の監視位置を指定するレジスタであり、・・・、モニタ行＃７はランク＃７の監視位置を指定するレジスタである。各レジスタのビット長は６４である。
【００３５】
ビット［３７：３５］は、ランク１１０にサブランクがある場合に、監視するサブランクを指定する。ビット［３４：３１］は、監視するバンク１１１を指定する。ビット［３０：２１］は、監視対象バンク１１１において監視する列アドレスを指定する。ビット［２０：０］は、監視対象バンク１１１において監視する行ドレスを指定する。
【００３６】
図７Ｂに示すように、アクセス数を積算するカウンタレジスタは、行アクセスカウンタ＃０〜行アクセスカウンタ＃７で表される８個のレジスタを有する。行アクセスカウンタ＃０はモニタ行＃０で指定された行１１２のアクセス数をカウントするレジスタであり、行アクセスカウンタ＃１はモニタ行＃１で指定された行１１２のアクセス数をカウントするレジスタである。同様に、行アクセスカウンタ＃７はモニタ行＃７で指定された行１１２のアクセス数をカウントするレジスタである。各レジスタのビット長は３２である。ビット［３１］はｅｎａｂｌｅビットであり、ビット［３１］＝１のとき行１１２へのアクセスを計数する。ビット［３０：０］は計数したアクセス数である。アクセス数はｒｅａｄ数とｗｒｉｔｅ数の合計である。
【００３７】
行アクセス監視部２１６は、後述する効果確認フェーズにおいてｓＰＰＲが行われた行１１２の使用状況を確認するために用いられる。電力監視部２１４及び温度監視部２１５は、ｓＰＰＲが行われたＤＩＭＭ１００の使用状況を確認するために用いられる。行アクセス監視部２１６、電力監視部２１４及び温度監視部２１５は組み合わせて用いられてもよい。
【００３８】
図１に戻って、チップセット３００は、ＩＯ（Input  Output）装置を１チップにまとめたものである。チップセット３００は、ＣＰＵ２００に内臓されてもよい。チップセット３００は、ＣＰＵ２００及びＢＭＣ６００と接続される。チップセット３００は、ＧＰＩＯ（General  Purpose  Input/Output）３１０とＳＭＩ指示部３２０とを有する。
【００３９】
ＧＰＩＯ３１０は、ＢＭＣ６００がＳＭＩを発生させる場合に用いられる。ＳＭＩ指示部３２０は、ＣＰＵ２００にＳＭＩを発生させる。
【００４０】
ＢＩＯＳ４００は、ＣＰＵ２００の起動時に実行され、ＣＰＵ２００やＤＩＭＭ１００等の情報処理装置１を構成するものを動作可能な状態にする処理等を行うファームウェアである。ＢＩＯＳ４００は、ＰＰＲ設定部４１０と、ＳＭＩハンドラ４２０とを有する。
【００４１】
ＰＰＲ設定部４１０は、ＢＩＯＳ起動時に実行され、ｓＰＰＲ及びｈＰＰＲの適用を行う。ＰＰＲ設定部４１０は、ＰＰＲ切り替え部４１１を有する。ＰＰＲ切り替え部４１１は、ＢＭＣ６００からｓＰＰＲ位置情報６２１を取得してｓＰＰＲを設定し、ＢＭＣ６００からｈＰＰＲ位置情報６３１を取得してｈＰＰＲを設定する。ＰＰＲ切り替え部４１１は、ｓＰＰＲを適用すると、ｓＰＰＲの適用をＢＭＣ６００に通知し、ｈＰＰＲを適用すると、ｈＰＰＲの適用をＢＭＣ６００に通知する。ＢＩＯＳ４００は、例えばＩＰＭＩ（Intelligent  Platform  Management  Interface）を用いてＢＭＣ６００と通信する。
【００４２】
ＳＭＩハンドラ４２０は、ＣＰＵ２００からのＳＭＩを受けて動作するハンドラである。ＳＭＩハンドラ４２０は、ＣＥ閾値超過処理部４２１と、行位置判定部４２２と、ＣＥ情報収集部４２３と、ｓＰＰＲ効果情報収集部４２４と、ＩＰＭＩ通信部４２５とを有する。
【００４３】
ＣＥ閾値超過処理部４２１は、ＳＭＩの要因がＣＥの閾値超過であることを判別し、行位置判定部４２２を呼び出してＰＰＲ位置情報をＢＭＣ６００に通知させた後、ＣＥ情報収集部４２３を呼び出して情報収集フェーズの実行を開始させる。情報収集フェーズは、ｓＰＰＲを適用する行１１２を特定するための情報を収集する処理である。
【００４４】
行位置判定部４２２は、メモリコントローラ２１０の最終ＣＥ位置レジスタ２１３を読み出して、最後に発生したＣＥの行位置情報を取得し、取得した行位置情報に基づいてＰＰＲ位置情報を作成してＢＭＣ６００に通知する。
【００４５】
ＣＥ情報収集部４２３は、情報収集フェーズにおいて、ＣＥの回数が閾値を超過する毎に行位置判定部４２２を呼び出して最後に発生したＣＥの行位置情報を取得させ、取得させた行位置情報に基づいてＰＰＲ位置情報を作成させてＢＭＣ６００に通知させる。ＢＭＣ６００は、ＰＰＲ位置情報を集計し、ｓＰＰＲを適用する行位置を特定する。
【００４６】
ＣＥ情報収集部４２３は、情報収集フェーズの実行開始時に、メモリコントローラ２１０のＣＥ閾値を通常の値より小さい情報収集用の値（例えば１／１０の値）に変更する。また、ＣＥ情報収集部４２３は、ＣＥ閾値を変更した時間を記憶し、次にＣＥの回数が閾値を超過すると、ＣＥ閾値を変更してから次にＣＥ閾値を超過するまでの時間を算出する。そして、ＣＥ情報収集部４２３は、ＣＥ閾値を変更してから次にＣＥ閾値を超過するまでの時間が所定の時間より短い場合には、ＣＥ閾値を増加させる（例えば２倍する）。その理由は、ＯＳハングとみなされないようにするためである。
【００４７】
ｓＰＰＲ効果情報収集部４２４は、効果確認フェーズにおいて、ＤＩＭＭ１００の使用状況を示す情報であるＤＩＭＭ使用情報をＢＭＣ６００に通知する。効果確認フェーズは、適用したｓＰＰＲの効果を確認する処理であり、ＤＩＭＭ１００の使用状況に基づいて効果の確認が行われる。ＤＩＭＭ使用情報は、電力監視部２１４、温度監視部２１５及び行アクセス監視部２１６により収集される。ＩＰＭＩ通信部４２５は、ＩＰＭＩを用いてＢＭＣ６００と通信する。
【００４８】
ＯＳ５００は、ＤＩＭＭ１００、ＣＰＵ２００等のリソースを管理し、情報処理装置１を制御する。ＯＳ５００は、ハング監視部５１０を有する。
【００４９】
ハング監視部５１０は、定期的にＣＰＵ２００に割り込みを発生させる機能を利用してＯＳ５００のハングを監視する。ＳＭＩハンドラ４２０が動作中はこの機能が動作できないため、長時間のＳＭＩハンドラ４２０による処理から復帰するとこの機能によりＯＳハングが検知される。同様に、短時間でもＳＭＩハンドラ４２０の処理が短期間に連続して発生するような場合には、ＳＭＩハンドラ４２０のＣＰＵ使用時間の積算が長くなるとＯＳハングとみなされる。
【００５０】
なお、ＢＩＯＳ４００及びＯＳ５００は、ＤＩＭＭ１００に記憶され、ＤＩＭＭ１００から読み出されてＣＰＵ２００により実行されるプログラムである。
【００５１】
ＢＭＣ６００は、情報処理装置１に内蔵され、情報処理装置１を管理する装置である。ＢＭＣ６００は、ＣＥ情報集計部６１０と、ｓＰＰＲ効果管理部６２０と、ｈＰＰＲデータ管理部６３０と、ＩＰＭＩ通信部６４０と、ＧＰＩＯ６５０とを有する。
【００５２】
ＣＥ情報集計部６１０は、情報収集フェーズにおいて、ＣＥ情報収集部４２３から通知されたＰＰＲ位置情報を集計する。そして、ＣＥ情報集計部６１０は、情報収集フェーズの最後に、最も頻度が高いＰＰＲ位置情報を特定し、特定したＰＰＲ位置情報をｓＰＰＲ効果管理部６２０に通知する。
【００５３】
ｓＰＰＲ効果管理部６２０は、ＣＥ情報集計部６１０から通知されたＰＰＲ位置情報をｓＰＰＲ位置情報６２１として記憶する。ｓＰＰＲ位置情報６２１は、ランク毎に記憶される。図８は、ｓＰＰＲ位置情報６２１の一例を示す図である。図８に示すように、ｓＰＰＲ位置情報６２１には、４バイトのＳｅｒｉａｌと、２０バイトのＰａｒｔＮｏと、８バイトのＰＰＲｐｏｓｉｔｉｏｎとが含まれる。
【００５４】
Ｓｅｒｉａｌは、ＳＰＤのシリアル番号である。ＰａｒｔＮｏは、ＳＰＤのパーツ番号である。シリアル番号とパーツ番号によりＤＩＭＭ１００が識別される。ＰＰＲｐｏｓｉｔｉｏｎは、ＰＰＲを適用する行位置を特定するための情報である。ＰＰＲｐｏｓｉｔｉｏｎのビット［２０：０］は行１１２を示す。ＰＰＲｐｏｓｉｔｉｏｎのビット［３０：２１］は列を示す。ＰＰＲｐｏｓｉｔｉｏｎのビット［３４：３１］はバンク１１１を示す。ＰＰＲｐｏｓｉｔｉｏｎのビット［３７：３５］はサブランクがある場合にサブランクを示す。ＰＰＲｐｏｓｉｔｉｏｎのビット［４１：３８］はランク１１０を示す。
【００５５】
ｓＰＰＲ効果管理部６２０は、ＰＰＲ切り替え部４１１からの要求に基づいてｓＰＰＲ位置情報６２１を応答する。ＰＰＲ切り替え部４１１は、ｓＰＰＲ位置情報６２１を用いてｓＰＰＲを適用する。ｓＰＰＲ効果管理部６２０は、適用されたｓＰＰＲの効果確認に用いられる情報を管理し、ｓＰＰＲの効果を確認すると、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知する。
【００５６】
ｓＰＰＲ効果管理部６２０は、ＣＥ情報集計部６１０からＰＰＲ位置情報を通知されると、ｓＰＰＲ位置履歴６２２に通知されたＰＰＲ位置情報があるか否かを判定し、ない場合には、通知されたＰＰＲ位置情報をｓＰＰＲ位置履歴６２２に加える。ｓＰＰＲ位置履歴６２２は、ｓＰＰＲ位置情報６２１の履歴を示す情報である。ｓＰＰＲ位置履歴６２２は、ランク毎に記憶される。
【００５７】
図９は、ｓＰＰＲ位置履歴６２２のエントリの一例を示す図である。図９に示すように、ｓＰＰＲ位置履歴６２２のエントリには、４バイトのＳｅｒｉａｌと、２０バイトのＰａｒｔＮｏと、８バイトのＰＰＲｐｏｓｉｔｉｏｎと、１バイトのＣａｎｃｅｌｃｏｕｎｔと、３バイトのＳｅｑｕｅｎｃｅｎｕｍｂｅｒが含まれる。
【００５８】
Ｓｅｒｉａｌ、ＰａｒｔＮｏ及びＰＰＲｐｏｓｉｔｉｏｎは、ｓＰＰＲ位置情報６２１に含まれる情報と同じである。Ｃａｎｃｅｌｃｏｕｎｔは、効果確認フェーズがキャンセルされた回数を示す。Ｓｅｑｕｅｎｃｅｎｕｍｂｅｒは、エントリの作成順を示す番号である。
【００５９】
エントリの数は、例えば１０である。保持するエントリ数を超えてｓＰＰＲ位置履歴６２２を格納する必要に迫られた場合は、ｓＰＰＲ効果管理部６２０は、Ｃａｎｃｅｌｃｏｕｎｔが最も少ないものを削除してから格納する。このとき、Ｃａｎｃｅｌｃｏｕｎｔが最も少ないものが複数ある場合は、ｓＰＰＲ効果管理部６２０は、シーケンス番号が一番小さいもの（古いもの）を削除する。シーケンス番号はエントリの作成順を記録するためのものであり、番号がオーバーフローするときには、ｓＰＰＲ効果管理部６２０は、全てのエントリの番号を１から振り直すことでオーバーフローを防ぐ。
【００６０】
ｓＰＰＲ効果管理部６２０は、ＣＥ情報集計部６１０から通知されたＰＰＲ位置情報がｓＰＰＲ位置履歴６２２にあるか否かを判定し、ある場合には、Ｃａｎｃｅｌｃｏｕｎｔに１を加える。ＣＥ情報集計部６１０から通知されたＰＰＲ位置情報がｓＰＰＲ位置履歴６２２にある場合とは、当該ＰＰＲ位置情報について過去に効果確認フェーズが行われ、途中でキャンセルされた場合である。
【００６１】
ｓＰＰＲ効果管理部６２０は、Ｃａｎｃｅｌｃｏｕｎｔが所定の閾値を超えると、当該ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知するとともに、ｓＰＰＲ位置情報６２１とｓＰＰＲ位置履歴６２２の同じ情報を削除する。その理由は、過去にｓＰＰＲを適用した実績のあるＰＰＲ位置情報が所定の閾値を超えた回数だけＣＥ情報集計部６１０から通知されたということは、当該位置はｈＰＰＲ対象位置としての確度が高いとみなせるためである。
【００６２】
このように、ｓＰＰＲ効果管理部６２０は、Ｃａｎｃｅｌｃｏｕｎｔが所定の閾値を超えると、当該ｓＰＰＲ位置情報をｈＰＰＲデータ管理部６３０に通知することによって、ピンポン問題（ping-pong  problem）を避けることができる。
【００６３】
ここで、ピンポン問題とは、以下のような問題である。あるバンク内に、２つの故障行１１２があり、それぞれ行Ａ、行Ｂとする。それぞれ同程度の頻度でＣＥが発生するとすると、ｓＰＰＲ位置履歴６２２を用いない場合には、行Ａの効果確認フェーズ中に行ＢによるＣＥ閾値超えが検出され、行Ａの効果確認フェーズがキャンセルされる可能性がある。同様に、その後、行Ｂの効果確認フェーズが実施されるが、その途中で行ＡによるＣＥ閾値超えが検出され、行Ｂの効果確認フェーズがキャンセルされる可能性がある。このように、行Ａと行Ｂの効果確認フェーズのキャンセルが交互に繰り返されると、いつまでもｈＰＰＲが適用されずに安定しないという問題が発生する可能性がある。この問題がピンポン問題である。
【００６４】
ｓＰＰＲ効果管理部６２０は、ｓＰＰＲ位置履歴６２２を用いることにより、Ｃａｎｃｅｌｃｏｕｎｔが所定の閾値を超えているｓＰＰＲ位置に再び効果確認フェーズを適用しようとした場合、効果確認フェーズを経ずに効果確認済みとみなしてｈＰＰＲを適用する。したがって、ｓＰＰＲ効果管理部６２０は、ピンポン問題を避けることができる。
【００６５】
なお、ＣＥ情報集計部６１０は、効果確認フェーズにおいて、行位置判定部４２２からＰＰＲ位置情報が送付されてきたとき、ＰＰＲ位置情報のチェックをｓＰＰＲ効果管理部６２０に依頼する。そして、ｓＰＰＲ効果管理部６２０は、送付されたＰＰＲ位置情報のＤＩＭＭ１００及びランク１１０がｓＰＰＲ位置情報６２１のＤＩＭＭ１００及びランク１１０と同じであるか否かをチェックする。
【００６６】
そして、同じである場合には、ｓＰＰＲ効果管理部６２０は、当該ランク１１０に関する効果確認フェーズをキャンセルし、ｓＰＰＲ位置履歴６２２にＰＰＲ位置情報を保存する。その理由は、ｓＰＰＲを適用しているにもかかわらず、同じランク１１０の別の行１１２でＣＥが多発したので、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲの効果がなかったと判断したためである。ｓＰＰＲ位置履歴６２２に既に同じＰＰＲ位置情報が存在していた場合には、ｓＰＰＲ効果管理部６２０は、当該ＰＰＲ位置情報のＣａｎｃｅｌｃｏｕｎｔを１増加する。
【００６７】
ｓＰＰＲ効果管理部６２０は、効果測定時間管理部６２３と効果情報集計部６２４とを有する。効果測定時間管理部６２３は、効果確認の時間を計測し、ｓＰＰＲの効果の判定に適切な時間が経過したか否かを判断する。効果測定時間管理部６２３は、ランク毎に、例えば６４ビットで開始時刻と終了予定時刻を保持する。
【００６８】
効果測定時間管理部６２３は、効果確認フェーズの期間内に定期的にＧＰＩＯ６５０を用いてＣＰＵ２００にＳＭＩを発生させ、ｓＰＰＲ効果情報収集部４２４にＤＩＭＭ使用情報を収集させる。効果測定時間管理部６２３は、効果測定に使用するＤＩＭＭ使用情報として、電力監視部２１４又は行アクセス監視部２１６の情報を使う場合は、測定の最初と最後にＳＭＩを１回ずつ発生させる。ＤＩＭＭ使用情報として温度監視部２１５の情報を使う場合は、効果測定時間管理部６２３は、測定の最初に１回ＳＭＩを発生させ、その後定期的に（例えば３０秒毎に）ＳＭＩを発生させる。複数のランク１１０が測定対象の場合、測定期間が同じならば、効果測定時間管理部６２３は、複数のランク１１０をまとめてＳＭＩを発生してもよい。効果測定時間は、例えば６０分である。
【００６９】
効果情報集計部６２４は、ｓＰＰＲ効果情報収集部４２４からＤＩＭＭ使用情報を受信して集計する。ＤＩＭＭ使用情報として、電力監視部２１４又は行アクセス監視部２１６の情報を使う場合、効果情報集計部６２４は、ｓＰＰＲ効果情報収集部４２４から通知された最初のＤＩＭＭ使用情報と最後のＤＩＭＭ使用情報を測定対象ランク毎に保持する。
【００７０】
ＤＩＭＭ使用情報として、温度監視部２１５の情報を使う場合、効果情報集計部６２４は、ｓＰＰＲ効果情報収集部４２４から通知された測定情報の最新の１０個をランク毎に保持する。そして、効果情報集計部６２４は、１０個揃った段階で平均温度を算出し、最大平均温度として保持する。１１個目以降の情報が通知されるたびに、効果情報集計部６２４は、古いデータを１つ削除し、最新の１０個で平均温度を算出する。算出した平均温度が最大平均温度を超えていたら、効果情報集計部６２４は、その値を最大平均温度として保持する。
【００７１】
ｓＰＰＲの効果の判定に適切な時間が経過したと効果測定時間管理部６２３が判断した場合、ｓＰＰＲ効果管理部６２０は、ＤＩＭＭ使用情報の集計結果に基づいて、ｓＰＰＲを適用されたＤＩＭＭ１００が十分に利用されたか否かを判断する。そして、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲを適用されたＤＩＭＭ１００が十分に利用されたと判断した場合、ｓＰＰＲの効果があったと判断し、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知するとともに、ｓＰＰＲ位置情報６２１を消去する。
【００７２】
効果測定時間管理部６２３が適切な時間が経過したと判断する前に情報処理装置１がリセットされた場合、又は電源オフされた場合は、効果測定時間管理部６２３は、次の電源オン時も継続して効果確認時間を計測する。
【００７３】
ＤＩＭＭ１００が十分に利用されたか否かを判断する理由は、効果確認対象行１１２にアクセスがないとＣＥが発生せず、長時間経過しても行１１２にアクセスがなければｓＰＰＲの効果が判断できないためである。ｓＰＰＲ効果管理部６２０は、効果確認対象行１１２について、行アクセス監視部２１６により監視されるアクセス数に基づいて、十分にアクセスがあったか否かを判断する。
【００７４】
また、ｓＰＰＲ効果管理部６２０は、効果確認対象行１１２にアクセスがあったか否かを間接的に判断するためにＤＩＭＭ１００の消費電力や温度情報を利用する。その理由は、十分長い期間ＤＩＭＭ１００へのアクセスが発生していれば、効果確認対象行１１２にもアクセスがあったと期待できるためである。例えば、ｓＰＰＲ効果管理部６２０は、行アクセス監視部２１６が監視可能な行１１２の数を超えて判断する必要がある場合に、間接的な判断を併用する。
【００７５】
行アクセス監視部２１６により計測されるアクセス数を用いる場合、ｓＰＰＲ効果管理部６２０は、例えば、効果確認対象行１１２への時間あたりのアクセス数が所定の閾値アクセス数を超えると、十分にアクセスがあったと判断する。
【００７６】
電力監視部２１４により計測される消費エネルギーを用いる場合、ｓＰＰＲ効果管理部６２０は、例えば、効果確認対象ＤＩＭＭ１００が消費した時間あたりの消費エネルギーが所定の閾値エネルギー量を超えた場合、十分にアクセスがあったと判断する。
【００７７】
温度監視部２１５により計測される温度を用いる場合、ｓＰＰＲ効果管理部６２０は、例えば、効果測定期間終了後に効果確認対象ＤＩＭＭ１００の最大平均温度が所定の閾値温度を超えていた場合、十分にアクセスがあったと判断する。閾値はＤＩＭＭ１００の種類等で異なるので、事前に試験により決定される。
【００７８】
ｈＰＰＲデータ管理部６３０は、ｈＰＰＲを適用するためのＰＰＲ位置情報であるｈＰＰＲ位置情報６３１をランク毎に管理する。ｈＰＰＲデータ管理部６３０は、ｓＰＰＲ効果管理部６２０から通知されたＰＰＲ位置情報をｈＰＰＲ位置情報６３１として記憶する。ｈＰＰＲデータ管理部６３０は、ＰＰＲ切り替え部４１１からの要求に基づいてｈＰＰＲ位置情報６３１を応答する。ｈＰＰＲデータ管理部６３０は、ＰＰＲ切り替え部４１１よりｈＰＰＲ適用を通知されると、ｈＰＰＲ位置情報６３１を削除する。
【００７９】
図１０は、ｈＰＰＲ位置情報６３１の一例を示す図である。図１０に示すように、ｈＰＰＲ位置情報６３１には、４バイトのＳｅｒｉａｌと、２０バイトのＰａｒｔＮｏと、８バイトのＰＰＲｐｏｓｉｔｉｏｎとが含まれる。Ｓｅｒｉａｌ、ＰａｒｔＮｏ及びＰＰＲｐｏｓｉｔｉｏｎは、ｓＰＰＲ位置情報６２１に含まれる情報と同じである。
【００８０】
ｈＰＰＲデータ管理部６３０は、ｈＰＰＲ位置情報６３１の中に情報処理装置１に存在しないＤＩＭＭ１００に関する情報があった場合、そのｈＰＰＲ位置情報６３１を削除する。その理由は、そのｈＰＰＲ位置情報６３１に対応するＤＩＭＭ１００が交換されたと想定されるためである。
【００８１】
ＩＰＭＩ通信部６４０は、ＩＰＭＩを用いてＩＰＭＩ通信部４２５と通信する。特にＢＩＯＳ４００やＯＳ５００と通信するときは、ＫＣＳ（Keyboard  Controller  Style）インターフェース等を利用する。
【００８２】
ＧＰＩＯ６５０は、チップセット３００のＧＰＩＯ３１０と接続する。ＢＭＣ６００は、ＧＰＩＯ６５０を操作することで、チップセット３００のＳＭＩ指示部３２０にＳＭＩを発生させることができる。
【００８３】
次に、情報処理装置１によるＰＰＲ処理のフローについて説明する。図１１Ａ〜図１１Ｃは、情報処理装置１によるＰＰＲ処理のフローを示すフローチャートである。図１１Ａに示すように、情報処理装置１は、電源オンを受け付ける（ステップＳ１）。そして、ＢＩＯＳ４００は、ＣＰＵ２００やＤＩＭＭ１００の初期設定をする（ステップＳ２）。最初は、ｓＰＰＲ位置情報６２１もｈＰＰＲ位置情報６３１もないものとする。
【００８４】
そして、ＢＩＯＳ４００は、ＯＳ５００を起動する（ステップＳ３）。そして、メモリコントローラ２１０は、ＯＳ５００の運用中にＤＩＭＭ１００のＣＥ閾値超過を検出すると、ＳＭＩを発生させてＢＩＯＳ４００のＳＭＩハンドラ４２０を実行させる（ステップＳ４）。そして、情報処理装置１は、情報収集フェーズ処理を実行する（ステップＳ５）。
【００８５】
そして、情報処理装置１は、ＯＳ５００の運用終了を受け付けたか否かを判定し（ステップＳ６）、受け付けていない場合には、ステップＳ４に戻り、受け付けた場合には、電源オフ又はリセットを実行する（ステップＳ７）。
【００８６】
その後、電源オフを受け付けた場合には、図１１Ｂに示すように、情報処理装置１は、電源オンを受け付ける（ステップＳ８）。そして、ＢＩＯＳ４００は、ＣＰＵ２００やＤＩＭＭ１００の初期設定をする（ステップＳ９）。このとき、ＢＩＯＳ４００は、ＢＭＣ６００のｓＰＰＲ効果管理部６２０からｓＰＰＲ位置情報６２１を取得してｓＰＰＲを適用し、ｓＰＰＲ効果管理部６２０にｓＰＰＲを適用したことを通知する（ステップＳ１０）。そして、ＢＩＯＳ４００は、メモリコントローラ２１０の行アクセス監視部２１６にｓＰＰＲを適用した行１１２の監視設定をする（ステップＳ１１）。
【００８７】
そして、ＢＩＯＳ４００は、ＢＭＣ６００の効果測定時間管理部６２３に効果測定開始を指示し（ステップＳ１２）、ＯＳ５００を起動する（ステップＳ１３）。そして、効果測定時間管理部６２３は、効果測定の時間測定を開始する（ステップＳ１４）。ここで、効果確認フェーズが開始される。ただし、効果測定中に情報処理装置１の電源がオフされてＯＮされる場合もあるので、既に時間測定が開始され、中断されていたら、効果測定時間管理部６２３は、時間測定を再開する。そして、情報処理装置１は、効果確認フェーズ処理を実行する（ステップＳ１５）。
【００８８】
そして、図１１Ｃに示すように、メモリコントローラ２１０は、ＯＳ５００の運用中にＤＩＭＭ１００のＣＥ閾値超過を検出すると、ＳＭＩを発生させてＢＩＯＳ４００のＳＭＩハンドラ４２０を実行させる（ステップＳ１６）。そして、情報処理装置１は、情報収集フェーズ処理を実行する（ステップＳ１７）。
【００８９】
ステップＳ１６及びステップＳ１７の処理は、効果確認対象となっているランク１１０とは別のランク１１０でＣＥ閾値超過を検出した場合の処理である。効果確認フェーズの対象となっているランク１１０が存在していても、効果確認フェーズ対象外のランク１１０でＣＥ閾値超過が発生した場合は、情報処理装置１は、そのランク１１０に対して情報収集フェーズを実行する。
【００９０】
そして、情報処理装置１は、ＯＳ５００の運用終了を受け付けたか否かを判定し（ステップＳ１８）、受け付けていない場合には、ステップＳ１６に戻り、受け付けた場合には、電源オフ又はリセットを実行する（ステップＳ１９）。
【００９１】
その後、電源オフを受け付けた場合には、情報処理装置１は、電源オンを受け付ける（ステップＳ２０）。そして、ＢＩＯＳ４００は、ＣＰＵ２００やＤＩＭＭ１００の初期設定をする（ステップＳ２１）。このとき、ＢＩＯＳ４００は、ＢＭＣ６００のｈＰＰＲデータ管理部６３０にｈＰＰＲ位置情報６３１があるかを問い合わせる（ステップＳ２２）。効果確認フェーズにおいて、ｓＰＰＲの効果が確認されていれば、ｈＰＰＲ位置情報６３１は存在する。
【００９２】
ｈＰＰＲ位置情報６３１が存在する場合、ＢＩＯＳ４００は、ｈＰＰＲデータ管理部６３０からｈＰＰＲ位置情報６３１を取得し、ｈＰＰＲを適用する（ステップＳ２３）。そして、ＢＩＯＳ４００は、ｈＰＰＲデータ管理部６３０にｈＰＰＲを適用したことを通知する（ステップＳ２４）。通知を受けたｈＰＰＲデータ管理部６３０は、ｈＰＰＲ位置情報６３１を削除する（ステップＳ２５）。また、ＢＩＯＳ４００は、必要ならば、ステップＳ１０〜ステップＳ１１のｓＰＰＲ適用処理を実行する。
【００９３】
そして、ＢＩＯＳ４００は、ｈＰＰＲ位置情報６３１もｓＰＰＲ位置情報６２１も存在しないか否かを判定し（ステップＳ２６）、いずれも存在しない場合には、ステップＳ３に戻り、少なくとも一方が存在する場合には、ステップＳ１２に戻る。
【００９４】
このように、情報処理装置１は、情報収集フェーズでｓＰＰＲを適用する行１１２を特定し、特定した行１１２にｓＰＰＲを適用し、効果確認フェーズでｓＰＰＲの効果を確認し、ｓＰＰＲの効果を確認するとｈＰＰＲを適用する。したがって、情報処理装置１は、ＣＥが発生する行１１２を適切に特定して修復することができる。
【００９５】
図１２Ａ〜図１２Ｂは、情報収集フェーズ処理のフローを示すフローチャートである。図１２Ａに示すように、ＳＭＩハンドラ４２０のＣＥ閾値超過処理部４２１は、ＣＥの閾値超過を検出し、ＣＥ情報収集部４２３を呼び出す（ステップＳ３１）。
【００９６】
ＣＥ情報収集部４２３は、行位置判定部４２２に指示をして、ＰＰＲ位置情報を作成させ、ＢＭＣ６００のＣＥ情報集計部６１０に通知させる（ステップＳ３２）。そして、ＣＥ情報収集部４２３は、メモリコントローラ２１０のＣＥ閾値の値をＣＥ情報収集用の値（通常より低い値）に変更し、ＣＥカウンタ２１１をクリアする（ステップＳ３３）。ＣＥ情報収集部４２３は、ＣＥ閾値の値をより低い値に変更することで、ＣＥ閾値超過を早めることができ、ＣＥ情報集計部６１０によるｓＰＰＲ位置情報６２１の特定を早めることができる。そして、ＣＥ情報収集部４２３は、ＣＥ閾値を変更した時間を記憶する（ステップＳ３４）。
【００９７】
そして、メモリコントローラ２１０は、ＤＩＭＭ１００のＣＥ閾値超過を検出すると、ＳＭＩを発生させてＢＩＯＳ４００のＳＭＩハンドラ４２０のＣＥ閾値超過処理部４２１を実行させる（ステップＳ３５）。
【００９８】
そして、ＣＥ閾値超過処理部４２１は、ＣＥ情報収集部４２３を呼び出す（ステップＳ３６）。そして、ＣＥ情報収集部４２３は、行位置判定部４２２に指示をして、ＰＰＲ位置情報を作成させ、ＢＭＣ６００のＣＥ情報集計部６１０に通知させる（ステップＳ３７）。そして、ＣＥ情報収集部４２３は、ＣＥ閾値を変更してからＣＥ閾値超過までの時間を算出し、ＣＥ閾値超過までの時間が短すぎた場合、ＯＳ５００のハング監視部５１０にハングとみなされないように、ＣＥ閾値を増やす（ステップＳ３８）。
【００９９】
そして、ＣＥ情報収集部４２３は、必要な数のＰＰＲ位置情報をＢＭＣ６００に通知したか否かを判定し（ステップＳ３９）、通知していない場合には、ステップＳ３５に戻る。一方、必要な数のＰＰＲ位置情報をＢＭＣ６００に通知した場合には、ＣＥ情報集計部６１０は、ランク毎に収集したＰＰＲ位置情報の中から対象ランク内で最も頻度が高いＰＰＲ位置情報を選択し、ｓＰＰＲ効果管理部６２０に通知する（ステップＳ４０）。
【０１００】
そして、図１２Ｂに示すように、ｓＰＰＲ効果管理部６２０は、ＣＥ情報集計部６１０から受け取ったＰＰＲ位置情報をｓＰＰＲ位置情報６２１として保存する（ステップＳ４１）。そして、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲ位置履歴６２２にｓＰＰＲ位置情報６２１と同じ情報が存在し、Ｃａｎｃｅｌｃｏｕｎｔが閾値を超えているか否かを判定する（ステップＳ４２）。そして、ｓＰＰＲ位置履歴６２２にｓＰＰＲ位置情報６２１と同じ情報が存在しないか、又は、Ｃａｎｃｅｌｃｏｕｎｔが閾値を超えていない場合には、ｓＰＰＲ効果管理部６２０は、ステップＳ４６に進む。
【０１０１】
一方、ステップＳ４２の判定結果がＹｅｓの場合には、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知し、ｓＰＰＲ位置情報６２１とｓＰＰＲ位置履歴６２２の同じ情報を削除する（ステップＳ４３）。そして、ｈＰＰＲデータ管理部６３０は、ｓＰＰＲ効果管理部６２０から通知されたｓＰＰＲ位置情報６２１をｈＰＰＲ位置情報６３１として保存する（ステップＳ４４）。
【０１０２】
情報収集フェーズにおいて、ステップＳ４２の判定結果がＹｅｓの場合には、情報処理装置１は、ｓＰＰＲ位置情報６２１をｈＰＰＲ位置情報６３１にすることで、ピンポン問題を緩和することができる。その理由は、ステップＳ４２の判定結果がＹｅｓということは、過去にもＣＥ閾値超過が高頻度で発生したということを示し、ｓＰＰＲ位置情報６２１の信頼度が高いためである。
【０１０３】
そして、ＣＥ情報集計部６１０は、集計に利用したＰＰＲ位置情報をクリアする（ステップＳ４５）。そして、ＣＥ情報収集部４２３は、メモリコントローラ２１０に指示を出して（例えばＣＥ閾値を０にして）、ｓＰＰＲ位置情報６２１が確定したランク１１０のＣＥ監視をやめる（ステップＳ４６）。
【０１０４】
このように、ＣＥ情報集計部６１０は、ランク毎に収集したＰＰＲ位置情報の中から対象ランク内で最も頻度が高いＰＰＲ位置情報を選択し、ｓＰＰＲ効果管理部６２０に通知するので、ｓＰＰＲ位置情報６２１の精度を高めることができる。
【０１０５】
図１３Ａ〜図１３Ｂは、効果確認フェーズ処理のフローを示すフローチャートである。図１３Ａに示すように、ＢＭＣ６００の効果測定時間管理部６２３は、ＯＳ５００の運用中に定期的にＣＰＵ２００にＳＭＩを発生させる（ステップＳ５１）。効果確認フェーズにおいて、一定期間での効果確認のため、効果測定時間管理部６２３は、効果確認期間内に一定の時間間隔でＳＭＩを発生させる。ＳＭＩを発生させる理由は、効果測定のためのＤＩＭＭ使用情報はＢＩＯＳ４００が収集するが、ＯＳ運用中にＢＩＯＳ４００を動作させる方法として、ＳＭＩがあるためである。
【０１０６】
また、一定の間隔でＳＭＩを発生させる理由は以下のとおりである。ＤＩＭＭ使用情報として温度監視部２１５の温度情報を利用する場合、ｓＰＰＲ効果管理部６２０は、一定時間内の平均温度を採用する。一回のＳＭＩでＢＩＯＳ４００が採取できる温度はその時点の温度なので、平均をとるためには複数回の温度情報が必要となる。このため、効果測定時間管理部６２３は、一定の間隔でＳＭＩを発生させて情報を収集する。なお、ＤＩＭＭ使用情報として電力監視部２１４の積算電力量情報や、行アクセス監視部２１６の積算アクセス回数を利用する場合は、ＳＭＩ発生は効果確認フェーズの最初と最後のみでよい。
【０１０７】
そして、ＣＰＵ２００でＳＭＩが発生すると、ｓＰＰＲ効果情報収集部４２４は、メモリコントローラ２１０の電力監視部２１４、温度監視部２１５、行アクセス監視部２１６のいずれか、もしくは複数からＤＩＭＭ使用情報を収集する（ステップＳ５２）。そして、ｓＰＰＲ効果情報収集部４２４は、収集した情報をＢＭＣ６００のｓＰＰＲ効果管理部６２０の効果情報集計部６２４に通知する（ステップＳ５３）。
【０１０８】
そして、効果情報集計部６２４は、ＢＩＯＳ４００から受け取ったＤＩＭＭ使用情報を記憶する（ステップＳ５４）。そして、ｓＰＰＲ効果管理部６２０は、効果確認中のランク１１０でＣＥ閾値超過が発生したか否かを判定し（ステップＳ５５）、発生した場合には、ステップＳ６１に進む。
【０１０９】
一方、効果確認中のランク１１０でＣＥ閾値超過が発生していない場合には、効果測定時間管理部６２３は、効果確認に必要な時間は経過したか否かを判定し（ステップＳ５６）、経過していない場合には、ステップＳ５１へ戻る。一方、効果確認に必要な時間が経過した場合には、ＢＭＣ６００のｓＰＰＲ効果管理部６２０は、効果情報集計部６２４の集計したＤＩＭＭ使用情報からｓＰＰＲの効果を判定する（ステップＳ５７）。
【０１１０】
この時点では、効果確認対象のランク１１０でＣＥ閾値超過の発生がないため、効果確認期間にｓＰＰＲ対象行１１２にメモリコントローラ２１０から十分にアクセスが発生していれば、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲ効果があったと判定することができる。
【０１１１】
そして、ｓＰＰＲ効果管理部６２０は、効果が確認できたか否かを判定し（ステップＳ５８）、効果が確認できなかった場合には、ステップＳ５１へ戻る。効果が確認できなかった場合とは、効果確認対象行１１２又は効果確認対象行１１２を含むＤＩＭＭ１００へのアクセスが十分に発生していたと判断できなかった場合である。この場合は、効果確認対象行１１２又は効果確認対象行１１２を含むＤＩＭＭ１００へのアクセスがなかったためにＣＥ閾値超過が発生しなかった可能性が高いので、ｓＰＰＲを適用した効果でＣＥ発生を抑制できたと判断することができない。したがって、ｓＰＰＲ効果管理部６２０は、効果確認対象行１１２へのアクセスが十分に発生するまで判断を保留する。そこで、ｓＰＰＲ効果管理部６２０は、効果確認期間を延長して、ステップＳ５１からの効果確認フェーズをやりなおす。
【０１１２】
一方、効果が確認できた場合には、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知し、ｓＰＰＲ位置情報６２１をクリアする（ステップＳ５９）。そして、ｈＰＰＲデータ管理部６３０は、通知されたｓＰＰＲ位置情報６２１をｈＰＰＲ位置情報６３１として記憶し（ステップＳ６０）、処理を終了する。
【０１１３】
また、ステップＳ５５において効果確認中のランク１１０でＣＥ閾値超過が発生した場合には、ｓＰＰＲ効果管理部６２０は、対象ランク１１０の効果確認フェーズをキャンセルし、ｓＰＰＲ位置情報６２１をｓＰＰＲ位置履歴６２２に保存する（ステップＳ６１）。効果確認フェーズをキャンセルする理由は、ｓＰＰＲを適用したにもかかわらずＣＥ閾値超過が発生したので、ｓＰＰＲの効果がなかったと考えられるためである。ただし、ピンポン問題を緩和するために、ｓＰＰＲ効果管理部６２０は、効果確認対象のｓＰＰＲ位置情報６２１をｓＰＰＲ位置履歴６２２に保存する。ｓＰＰＲ位置履歴６２２に保存される情報は、一旦はＣＥの発生頻度が高いとみなされた行１１２に関する情報となる。
【０１１４】
なお、既にｓＰＰＲ位置履歴６２２にｓＰＰＲ位置情報６２１と同じ位置情報が保存されていたら、ｓＰＰＲ効果管理部６２０は、その位置情報のＣａｎｃｅｌｃｏｕｎｔだけをインクリメントする。一方、保存されていなければ、ｓＰＰＲ効果管理部６２０は、Ｃａｎｃｅｌｃｏｕｎｔ＝１として位置情報を保存する。
【０１１５】
このように、ｓＰＰＲ効果管理部６２０がｓＰＰＲの効果を確認するｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知することで、情報処理装置１は、次回の起動時に、ｓＰＰＲの効果のあった行１１２にｈＰＰＲを適用することができる。
【０１１６】
次に、ＢＭＣ６００のハードウェア構成の一例について説明する。図１４は、ＢＭＣ６００のハードウェア構成の一例を示す図である。図１４に示すように、ＢＭＣ６００は、ＣＰＵ６０１と、ＲＡＭ６０２と、フラッシュメモリ６０３とを有する。
【０１１７】
ＣＰＵ６０１は、ＲＡＭ６０２からプログラムを読み出して実行する中央処理装置である。ＲＡＭ６０２は、プログラムやプログラムの実行途中結果などを記憶するメモリである。フラッシュメモリ６０３は、プログラムやデータを格納するメモリである。
【０１１８】
そして、ＢＭＣ６００において実行される修復管理プログラムは、例えば、ＢＭＣ６００により読み出し可能な記録媒体の一例であるＣＤ−Ｒに記憶され、ＣＤ−Ｒから読み出されてＢＭＣ６００にインストールされる。あるいは、修復管理プログラムは、ＬＡＮ（Local  Area  Network）を介して接続されたコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてＢＭＣ６００にインストールされる。そして、インストールされた修復管理プログラムは、フラッシュメモリ６０３に記憶され、ＲＡＭ６０２に読み出されてＣＰＵ６０１によって実行される。
【０１１９】
上述してきたように、実施例では、ＣＥ閾値超過が発生すると、ＢＩＯＳ４００の行位置判定部４２２が、最後に発生したＣＥの行位置情報を取得してＰＰＲ位置情報を作成し、ＢＭＣ６００に通知する。そして、ＢＭＣ６００のＣＥ情報集計部６１０が、行位置判定部４２２により通知された複数のＰＰＲ位置情報を集計して最も頻度が高いＰＰＲ位置情報を特定し、ｓＰＰＲ効果管理部６２０に通知する。そして、ｓＰＰＲ効果管理部６２０は、通知されたＰＰＲ位置情報をｓＰＰＲ位置情報６２１として記憶する。そして、ＢＩＯＳ４００のＰＰＲ切り替え部４１１が、ｓＰＰＲ効果管理部６２０からｓＰＰＲ位置情報６２１を取得してｓＰＰＲを適用する。そして、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲの効果を判定し、効果があると判定すると、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知する。そして、ｈＰＰＲデータ管理部６３０は、通知されたｓＰＰＲ位置情報６２１をｈＰＰＲ位置情報６３１として記憶する。したがって、情報処理装置１は、適切な行１１２にｈＰＰＲを適用することができる。
【０１２０】
また、実施例では、情報処理装置１は、元に戻すことができないヒューズの切断を含むｈＰＰＲの適用をｓＰＰＲの効果を確認後に行う。したがって、不適切な行１１２に対してｈＰＰＲを適用することによるスペア行１１３の無駄な使用を抑えることができる。
【０１２１】
また、実施例では、ＣＥ情報集計部６１０は、ｓＰＰＲ効果管理部６２０にＰＰＲ位置情報を通知すると、集計に用いたＰＰＲ位置情報を削除する。また、ｓＰＰＲ効果管理部６２０は、ｈＰＰＲデータ管理部６３０にｓＰＰＲ位置情報６２１を通知すると当該ｓＰＰＲ位置情報６２１を削除する。したがって、情報処理装置１は、ＰＰＲ位置情報を記憶するために必要な領域を少なくすることができる。
【０１２２】
また、実施例では、行位置判定部４２２が最後に発生したＣＥの行位置情報を最初に取得した際に、ＣＥ情報収集部４２３が、ＣＥ閾値をより小さい値に変更するので、情報収集フェーズの時間を短縮することができる。
【０１２３】
また、実施例では、行位置判定部４２２が最後に発生したＣＥの行位置情報を２回目に取得した際に、ＣＥ情報収集部４２３が、ＣＥ閾値をより小さい値に変更してからの経過時間が所定の閾値より小さいか否かを判定する。そして、所定の閾値より小さい場合には、ＣＥ情報収集部４２３は、ＣＥ閾値をより大きい値に変更する。したがって、ＯＳ５００のハング監視部５１０がＰＰＲのための情報収集処理をＯＳ５００のハングと誤認識することを防ぐことができる。
【０１２４】
また、実施例では、ｓＰＰＲ効果管理部６２０は、効果測定時間が経過し、ＤＩＭＭ使用情報が所定の閾値より大きい場合に、ｓＰＰＲの効果があると判定するので、ｓＰＰＲの効果の有無を正確に判定することができる。
【０１２５】
また、実施例では、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲが適用された行１１２へのアクセス回数が所定の閾値アクセス回数より大きい場合に、ｓＰＰＲの効果があると判定するので、ｓＰＰＲの効果の有無を正確に判定することができる。
【０１２６】
また、実施例では、ｓＰＰＲ効果管理部６２０は、ＤＩＭＭ１００の消費電力量が閾値電力量より大きいか、又は、ＤＩＭＭ１００の平均温度が閾値温度より大きい場合に、ｓＰＰＲの効果があると判定する。したがって、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲの効果の有無を間接的に判定することができる。
【０１２７】
また、実施例では、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲの効果を確認中に同じランク１１０でＣＥ閾値超過が発生すると、対応するｓＰＰＲ位置情報６２１がｓＰＰＲ位置履歴６２２にあり、かつＣａｎｃｅｌｃｏｕｎｔが閾値より大きい、か否かを判定する。そして、対応するｓＰＰＲ位置情報６２１がｓＰＰＲ位置履歴６２２にあり、かつＣａｎｃｅｌｃｏｕｎｔが閾値より大きい場合には、ｓＰＰＲ効果管理部６２０は、ｓＰＰＲ位置情報６２１をｈＰＰＲデータ管理部６３０に通知する。したがって、ｓＰＰＲ効果管理部６２０は、ピンポン問題の発生を防ぐことができる。
【０１２８】
また、実施例では、メインメモリがＤＩＭＭ１００の場合について説明したが、メインメモリはスペア領域を有する他の半導体記憶装置でもよい。また、実施例では、行１１２にＰＰＲを適用する場合について説明したが、情報処理装置１は、半導体記憶装置の他の領域にＰＰＲを適用してもよい。
【０１２９】
また、実施例では、最後に発生したＣＥの位置情報を用いる場合について説明したが、情報処理装置１は、最後以外に発生したＣＥの位置情報を用いてもよい。また、実施例では、最も頻度が高いＰＰＲ位置情報をｓＰＰＲ位置情報６２１とする場合について説明したが、情報処理装置１は、例えば、２番目に頻度が高いＰＰＲ位置情報等、他のＰＰＲ位置情報をｓＰＰＲ位置情報６２１としてもよい。
【０１３０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置において、
訂正可能エラーを閾値回数を超えて検出すると、訂正可能エラーが発生したいずれかの領域の位置情報を取得する取得部と、
前記取得部が取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定する特定部と、
前記特定部により特定されたソフト修復位置情報が示す領域のソフト修復を行うソフト修復部と、
前記ソフト修復部によるソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する効果確認部と
を有することを特徴とする情報処理装置。
【０１３２】
（付記２）前記取得部が前記位置情報を最初に取得した際に、前記閾値回数をより小さい値に変更する変更部をさらに有することを特徴とする付記１に記載の情報処理装置。
【０１３３】
（付記３）前記変更部は、前記取得部が前記位置情報を２回目に取得した際に、前記閾値回数をより小さい値に変更した時間からの経過時間が閾値時間よりも小さい場合には、前記閾値回数を増加することを特徴とする付記２に記載の情報処理装置。
【０１３４】
（付記４）前記効果確認部は、前記ソフト修復が行われた領域について一定期間中に、訂正可能エラーを前記閾値回数検出することなく、前記ソフト修復が行われた領域の使用を示す量が閾値使用量より大きい場合に、前記ソフト修復の効果があると判定することを特徴とする付記１、２又は３に記載の情報処理装置。
【０１３５】
（付記５）前記使用を示す量と閾値使用量は、前記ソフト修復が行われた領域へのアクセス回数と閾値アクセス回数であることを特徴とする付記４に記載の情報処理装置。
【０１３６】
（付記６）前記使用を示す量と閾値使用量は、前記半導体記憶装置の使用電力量と閾値電力量、又は、前記半導体記憶装置の前記一定期間中の温度と閾値温度であることを特徴とする付記４に記載の情報処理装置。
【０１３７】
（付記７）前記効果確認部は、前記一定期間中に割り込みを発生させて前記使用を示す量をＢＩＯＳに収集させることを特徴とする付記４、５又は６に記載の情報処理装置。
【０１３８】
（付記８）前記効果確認部は、前記ソフト修復の効果を確認中に他の領域で訂正可能エラーが前記閾値回数検出された場合、前記ソフト修復の効果の確認をキャンセルするとともに、前記ソフト修復位置情報に対応付けられたカウンタの値を増加し、前記カウンタの値が所定の値を超えると、前記ソフト修復位置情報をハード修復位置情報として設定することを特徴とする付記１〜７のいずれか１つに記載の情報処理装置。
【０１３９】
（付記９）前記半導体記憶装置は、ＤＩＭＭであり、前記領域はＤＩＭＭの行であり、前記スペア領域は、ＤＩＭＭのスペア行であり、前記取得部と前記変更部と前記ソフト修復部はＢＩＯＳに含まれ、前記特定部と前記効果確認部は管理モジュールに含まれることを特徴とする付記１〜８のいずれか１つに記載の情報処理装置。
【０１４０】
（付記１０）障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置に内蔵され、該情報処理装置を管理するコンピュータで実行される修復管理プログラムにおいて、
訂正可能エラーが閾値回数を超えて検出された際に、訂正可能エラーが発生したいずれかの領域の位置情報を受信し、
受信を繰り返すことで取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定し、
特定したソフト修復位置情報が示す領域のソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する
処理を前記コンピュータに実行させることを特徴とする修復管理プログラム。
【０１４１】
（付記１１）前記効果の有無を判定する処理は、前記ソフト修復が行われた領域について一定期間中に、訂正可能エラーを前記閾値回数検出することなく、前記ソフト修復が行われた領域の使用を示す量が閾値使用量より大きい場合に、前記効果があると判定することを特徴とする付記１０に記載の修復管理プログラム。
【０１４２】
（付記１２）前記効果の有無を判定する処理は、前記ソフト修復の効果を確認中に他の領域で訂正可能エラーが前記閾値回数検出された場合、前記ソフト修復の効果の確認をキャンセルするとともに、前記ソフト修復位置情報に対応付けられたカウンタを増加し、前記カウンタの値が所定の値を超えると、前記ソフト修復位置情報をハード修復位置情報として設定することを特徴とする付記１０又は１１に記載の修復管理プログラム。
【符号の説明】
【０１４３】
１    情報処理装置
１００    ＤＩＭＭ
１１０    ランク
１１１    バンク
１１２    行
１１３    スペア行
２００    ＣＰＵ
２１０    メモリコントローラ
２１１    ＣＥカウンタ
２１２    ＣＥ閾値レジスタ
２１３    最終ＣＥ位置レジスタ
２１４    電力監視部
２１５    温度監視部
２１６    行アクセス監視部
３００    チップセット
３１０    ＧＰＩＯ
３２０    ＳＭＩ指示部
４００    ＢＩＯＳ
４１０    ＰＰＲ設定部
４１１    ＰＰＲ切り替え部
４２０    ＳＭＩハンドラ
４２１    ＣＥ閾値超過処理部
４２２    行位置判定部
４２３    ＣＥ情報収集部
４２４    ｓＰＰＲ効果情報収集部
４２５    ＩＰＭＩ通信部
５００    ＯＳ
５１０    ハング監視部
６００    ＢＭＣ
６０１    ＣＰＵ
６０２    ＲＡＭ
６０３    フラッシュメモリ
６１０    ＣＥ情報集計部
６２０    ｓＰＰＲ効果管理部
６２１    ｓＰＰＲ位置情報
６２２    ｓＰＰＲ位置履歴
６２３    効果測定時間管理部
６２４    効果情報集計部
６３０    ｈＰＰＲデータ管理部
６３１    ｈＰＰＲ位置情報
６４０    ＩＰＭＩ通信部
６５０    ＧＰＩＯ
【図１】
2020057257.tif 000003
【図２】
2020057257.tif 000004
【図３】
2020057257.tif 000005
【図４】
2020057257.tif 000006
【図５】
2020057257.tif 000007
【図６】
2020057257.tif 000008
【図７Ａ】
2020057257.tif 000009
【図７Ｂ】
2020057257.tif 000010
【図８】
2020057257.tif 000011
【図９】
2020057257.tif 000012
【図１０】
2020057257.tif 000013
【図１１Ａ】
2020057257.tif 000014
【図１１Ｂ】
2020057257.tif 000015
【図１１Ｃ】
2020057257.tif 000016
【図１２Ａ】
2020057257.tif 000017
【図１２Ｂ】
2020057257.tif 000018
【図１３Ａ】
2020057257.tif 000019
【図１３Ｂ】
2020057257.tif 000020
【図１４】
2020057257.tif 000021
【図１５】
2020057257.tif 000022
【図１６】
2020057257.tif 000023
【図１７】
2020057257.tif 000024