JP2020057257A - 情報処理装置及び修復管理プログラム - Google Patents

情報処理装置及び修復管理プログラム Download PDF

Info

Publication number
JP2020057257A
JP2020057257A JP2018188260A JP2018188260A JP2020057257A JP 2020057257 A JP2020057257 A JP 2020057257A JP 2018188260 A JP2018188260 A JP 2018188260A JP 2018188260 A JP2018188260 A JP 2018188260A JP 2020057257 A JP2020057257 A JP 2020057257A
Authority
JP
Japan
Prior art keywords
position information
effect
sppr
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018188260A
Other languages
English (en)
Inventor
山口 博史
Hiroshi Yamaguchi
博史 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018188260A priority Critical patent/JP2020057257A/ja
Priority to US16/562,485 priority patent/US20200111539A1/en
Publication of JP2020057257A publication Critical patent/JP2020057257A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Abstract

【課題】DIMMの適切な行にhPPRを適用すること。【解決手段】CE閾値超過が発生すると、行位置判定部422が、最後に発生したCEの行位置を取得してPPR位置情報を作成し、BMC600に通知する。そして、CE情報集計部610が、複数のPPR位置情報を集計して最も頻度が高いPPR位置情報を特定し、sPPR効果管理部620に通知する。sPPR効果管理部620は、通知されたPPR位置情報をsPPR位置情報621として記憶する。そして、PPR切り替え部411が、sPPR効果管理部620からsPPR位置情報621を取得してsPPRを適用する。そして、sPPR効果管理部620は、sPPRの効果を判定し、効果があると判定すると、sPPR位置情報621をhPPRデータ管理部630に通知する。そして、hPPRデータ管理部630は、通知されたsPPR位置情報621をhPPR位置情報631として記憶する。【選択図】図1

Description

本発明は、情報処理装置及び修復管理プログラムに関する。
情報処理装置のメインメモリ等に用いられるDIMM(Dual Inline Memory Module)は複数のランク(Rank)を有し、各ランクは複数のバンク(Bank)を有する。図15は、DIMMの構成を示す図である。図15に示すように、DIMM100は、複数のランク110を有する。ランク110は、複数のバンク111を有する。
図16は、バンク111の構成を示す図である。図16に示すように、バンク111は、複数の行(row)と複数の列(column)を有し、DRAM(Dynamic Random Access Memory)メモリマトリックスを構成する。行の位置と列の位置で特定される領域が1ビットの情報を示すメモリセルである。エラーが発生したメモリセルは故障セル(faulty cell)と呼ばれ、故障セルを含む行は故障行(faulty row)と呼ばれる。
また、バンク111はスペア行を有し、故障行はスペア行に切り替えられる。1つのバンク111には、複数のスペア行がある。故障行をスペア行に切り替えることで障害を修復することはPPR(Post Package Repair)と呼ばれる。
PPRには、hPPRとsPPRがある。hPPRでは、ヒューズにより故障行がスペア行に切り替えられる。したがって、hPPRによる修復を元に戻すことはできない。sPPRでは、ソフトウェアにより故障行がスペア行に切り替えられる。したがって、sPPRによる修復はリセットにより失われる。
DIMMからのデータの読み出しやDIMMヘのデータの書き込みを制御するメモリコントローラは、DIMMに発生した修正可能エラー(例えば、ECC(Error Correcting Code)修正可能エラー)の数をランク単位で計数する。その理由は、例えばDDR4(Double-Data-Rate4)のDRAMのECCの場合、ECCはランクのデータバス(64ビット)に対して付加されるためである。また、行は多数(例えば、4096以上)あるため、メモリコントローラ内に行毎に計数カウンタを設けることは現実的ではないためでもある。
メモリコントローラは、計数した修正可能エラー数が予め設定された閾値に到達すると、SMI(System Management Interrupt)をCPU(Central Processing Unit)に発生するとともに、最後に発生した修正可能エラーの行位置情報をランク単位で記憶する。
BIOSのSMIハンドラは、最後に発生した修正可能エラーの行位置情報をメモリコントローラから読み出し、読み出した行位置情報をBMC(Baseboard Management Controller)に送信する。BMCは、情報処理装置に内蔵され、情報処理装置を管理する装置である。BMCは、行位置情報を受信してランク単位で記憶する。BIOS(Basic Input/Output System)は、起動時にBMCから行位置情報をランク単位で取得し、行位置情報が示す行をhPPR又はsPPRによりスペア行に切り替える。
なお、メモリセルで一度発生したエラーをソフトエラーとみなし、再度エラーが発生すると潜在エラーとみなしてオンチップ冗長を用いて修復する技術がある。
また、被試験メモリの不良救済解析を簡易かつ的確に行うことができるメモリ不良救済解析装置がある。この装置は、任意のカラムライン内の不良セル数が基準数を越えた場合には、そのライン内の全メモリセルを不良セルとみなして、各ロウラインの不良セル数と、ロウライン内の不良セル数が予め定めた基準数を越えたか否かを示すラインフェイル情報とを検出する。この装置は、任意のロウライン内の不良セル数が基準数を超えた場合には、そのライン内の全メモリセルを不良セルとみなして、各カラムラインの不良セル数と、カラムライン内の不良セル数が予め定めた基準数を越えたか否かを示すラインフェイル情報とを検出する。したがって、この装置は、ラインフェイルと判断されたライン内のメモリセルを除いて、不良セルの検出を行うようにしたため、ラインフェイルか否かの判断を簡易かつ的確に行うことができる。
特開2011−54263号公報 特開平11−102598号公報
BIOSは、起動時にBMCから、ランク単位で最後に発生した修正可能エラーの行位置情報しか取得することができないため、不適切な行をPPR対象とする可能性があるという問題がある。例えば、最後に発生した修正可能エラーの行以外に、より多くの修正可能エラーが発生した行が同じランク内にある可能性がある。
図17は、最後に発生した修正可能エラーの行以外に、より多くの修正可能エラーが発生した行が同じランク内にある例を説明するための図である。図17において、バンクaとバンクbが同一ランク内にあるとし、バンクaの故障行#1では、定常的に修正可能エラーが発生しており、バンクbの故障行#2では、故障行#1と比較して極めて低頻度で修正可能エラーが発生しているとする。メモリコントローラが検出する修正可能エラーはランク毎のため、最後に発生した修正可能エラーの行が故障行#2であった場合、メモリコントローラが記憶する位置情報は故障行#2の位置情報となり、BIOSは故障行#2にPPRを適用する。しかしながら、このケースでは、BIOSは修正可能エラーの発生頻度がより高い故障行#1に優先的にPPRを適用するべきである。
本発明は、1つの側面では、メモリモジュールにおいて修正可能エラーが発生する行を適切に修復することを目的とする。
1つの態様では、情報処理装置は、障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有し、取得部と特定部とソフト修復部と効果確認部とを有する。前記取得部は、訂正可能エラーを閾値回数を超えて検出すると、訂正可能エラーが発生したいずれかの領域の位置情報を取得する。前記特定部は、前記取得部が取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定する。前記ソフト修復部は、前記特定部により特定されたソフト修復位置情報が示す領域のソフト修復を行う。前記効果確認部は、前記ソフト修復部によるソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する。
1つの側面では、本発明は、メモリモジュールにおいて修正可能エラーが発生する行を適切に修復することができる。
図1は、実施例に係る情報処理装置の構成を示す図である。 図2は、CEカウンタの一例を示す図である。 図3は、CE閾値レジスタの一例を示す図である。 図4は、最終CE位置レジスタの一例を示す図である。 図5は、DIMMの消費エネルギーを記憶するレジスタの一例を示す図である。 図6は、DIMMの温度を記憶するレジスタの一例を示す図である。 図7Aは、アクセス状況を監視する位置を指定するレジスタの一例を示す図である。 図7Bは、アクセス数を積算するカウンタレジスタの一例を示す図である。 図8は、sPPR位置情報の一例を示す図である。 図9は、sPPR位置履歴のエントリの一例を示す図である。 図10は、hPPR位置情報の一例を示す図である。 図11Aは、情報処理装置によるPPR処理のフローを示す第1のフローチャートである。 図11Bは、情報処理装置によるPPR処理のフローを示す第2のフローチャートである。 図11Cは、情報処理装置によるPPR処理のフローを示す第3のフローチャートである。 図12Aは、情報収集フェーズ処理のフローを示す第1のフローチャートである。 図12Bは、情報収集フェーズ処理のフローを示す第2のフローチャートである。 図13Aは、効果確認フェーズ処理のフローを示す第1のフローチャートである。 図13Bは、効果確認フェーズ処理のフローを示す第2のフローチャートである。 図14は、BMCのハードウェア構成の一例を示す図である。 図15は、DIMMの構成を示す図である。 図16は、バンクの構成を示す図である。 図17は、最後に発生した修正可能エラーの行以外に、より多くの修正可能エラーが発生した行が同じランク内にある例を説明するための図である。
以下に、本願の開示する情報処理装置及び修復管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理装置の構成について説明する。図1は、実施例に係る情報処理装置の構成を示す図である。図1に示すように、実施例に係る情報処理装置1は、DIMM100と、CPU200と、チップセット300と、BIOS400と、OS(Operating System)500と、BMC600とを有する。
DIMM100は、情報処理装置1のメインメモリである。DIMM100は、情報処理装置1が実行するプログラムやプログラムの実行途中結果などを記憶する。DIMM100は、複数の行112と、複数のスペア行113を有する。行112は故障するとスペア行113にPPRにより切り替えられる。
CPU200は、DIMM100からプログラムを読み出して実行する中央処理装置である。なお、図1では1つのCPU200のみを示すが、CPU200は複数あってもよい。CPU200は、DIMM100へのアクセスを制御するメモリコントローラ210を有する。
メモリコントローラ210は、複数のメモリチャネルを有する。それぞれのメモリチャネルに複数のDIMM100が接続するが、ここでは、1つのメモリチャネルに1つのDIMM100が接続するとする。メモリコントローラ210とDIMM100はSMbusで接続しており、メモリコントローラ210は、DIMM100のSPD(Serial Presence Detect)やTSOD(Thermal Sensor on DIMM)の情報を取得することができる。
メモリコントローラ210は、CEカウンタ211と、CE閾値レジスタ212と、最終CE位置レジスタ213と、電力監視部214と、温度監視部215と、行アクセス監視部216とを有する。
CEカウンタ211は、メモリコントローラ210に接続するDIMM100のCE(Correctable Error:修正可能エラー)の数を計数する。計数する単位は、例えばランク110である。図2は、CEカウンタ211の一例を示す図である。図2に示すように、CEカウンタ211は、CEカウンタ#0〜CEカウンタ#7で表される8個のレジスタを有する。CEカウンタ#0はランク#0で検出したCEの数を計数し、CEカウンタ#1はランク#1で検出したCEの数を計数し、・・・、CEカウンタ#7はランク#7で検出したCEの数を計数する。各レジスタのビット長は32である。ビット[31]はenableビットであり、ビット[31]=1のときCEを計数する。ビット[30:0]は計数したCEの数である。
CE閾値レジスタ212は、CEカウンタ211が計数するCEの閾値(CE閾値)を記憶する。CEカウンタ211の値が閾値を超えると、メモリコントローラ210は、CPU200にSMIを発生する。図3は、CE閾値レジスタ212の一例を示す図である。図3に示すように、CE閾値レジスタ212は、CE閾値#0〜CE閾値#7で表される8個のレジスタを有する。CE閾値#0はランク#0のCEの閾値を記憶するレジスタであり、CE閾値#1はランク#1のCEの閾値を記憶するレジスタであり、・・・、CE閾値#7はランク#7のCEの閾値を記憶するレジスタである。
各レジスタのビット長は32である。ビット[31]はoverビットであり、ビット[31]=1はCEの数が閾値を超過したことを示す。BIOS400は、over=1となっているランク110で閾値超過が発生したことを知ることができる。overビットは、BIOS400が1を書き込むことでクリアされる。BIOS400が1を書き込んでクリアするまでは、次に閾値超過が発生してもSMIは発生しない。ビット[30:0]は対象ランク110の閾値であり、0のときは閾値超過は監視されない。
最終CE位置レジスタ213は、最後に発生したCEの位置情報(行アドレス)を記憶する。図4は、最終CE位置レジスタ213の一例を示す図である。図4に示すように、最終CE位置レジスタ213は、CE位置#0〜CE位置#7で表される8個のレジスタを有する。CE位置#0はランク#0の位置情報を示し、CE位置#1はランク#1の位置情報を示し、・・・、CE位置#7はランク#7の位置情報を示す。各レジスタのビット長は38である。
ビット[37:35]は、ランク110にサブランクがある場合にサブランクを示す。ビット[34:31]は、最後にCEが発生したバンク111を示す。ビット[30:21]は、最後にCEが発生したバンク111において最後に発生したCEの列アドレスを示す。ビット[20:0]は、最後にCEが発生したバンク111において最後に発生したCEの行ドレスを示す。
電力監視部214は、メモリコントローラ210に接続するDIMM100の消費エネルギーを監視し、レジスタに記憶する。例えば、電力監視部214は、DIMM100の消費エネルギーを10マイクロジュール単位で積算するカウンタレジスタを備える。BIOS400は、計測開始時と計測終了時にレジスタの値を読み出してDIMM100の時間あたりの消費エネルギーを算出する。
図5は、DIMM100の消費エネルギーを記憶するレジスタの一例を示す図である。図5に示すように、DIMM100の消費エネルギーを記憶するレジスタは、32ビットのレジスタであり、消費エネルギーの積算値を10マイクロジュール単位で記憶する。メモリコントローラ210に接続するDIMM100が複数ある場合には、レジスタも複数ある。
温度監視部215は、メモリコントローラ210に接続するDIMM100の温度を監視し、レジスタに記憶する。例えば、温度監視部215は、DIMM100の温度を°Cで示すレジスタを備える。BIOS400は、レジスタを読み出すことでDIMM100の温度を取得する。BIOS400は、例えば、温度計測開始時から30秒毎に10回レジスタを読み出して平均をとることで計測区間内の平均温度を算出することができる。
図6は、DIMM100の温度を記憶するレジスタの一例を示す図である。図6に示すように、DIMM100の温度を記憶するレジスタは、32ビットのレジスタであり、下位8ビットを用いて温度を°Cで記憶する。reservedは将来の拡張用である。
行アクセス監視部216は、メモリコントローラ210に接続するDIMM100のランク内の特定のバンク111の特定の行112へのアクセスを監視し、アクセス数をレジスタに記憶する。BIOS400は、監視する行112を指定する。例えば、行アクセス監視部216は、BIOS400がDIMM100、ランク110、バンク111及び行112の位置を指定するためのレジスタと、指定された行112へのアクセス数を積算するカウンタレジスタを備える。BIOS400は、計測開始時と計測終了時にカウンタレジスタの値を読み出してアクセス数を算出する。行数が多いため全行を監視することは困難であるので、行アクセス監視部216は、ランク110あたり1つの行112を監視する。
図7Aは、アクセス状況を監視する位置を指定するレジスタの一例を示す図であり、図7Bは、アクセス数を積算するカウンタレジスタの一例を示す図である。図7Aに示すように、監視位置を指定するレジスタは、モニタ行#0〜モニタ行#7で表される8個のレジスタを有する。モニタ行#0はランク#0の監視位置を指定するレジスタであり、モニタ行#1はランク#1の監視位置を指定するレジスタであり、・・・、モニタ行#7はランク#7の監視位置を指定するレジスタである。各レジスタのビット長は64である。
ビット[37:35]は、ランク110にサブランクがある場合に、監視するサブランクを指定する。ビット[34:31]は、監視するバンク111を指定する。ビット[30:21]は、監視対象バンク111において監視する列アドレスを指定する。ビット[20:0]は、監視対象バンク111において監視する行ドレスを指定する。
図7Bに示すように、アクセス数を積算するカウンタレジスタは、行アクセスカウンタ#0〜行アクセスカウンタ#7で表される8個のレジスタを有する。行アクセスカウンタ#0はモニタ行#0で指定された行112のアクセス数をカウントするレジスタであり、行アクセスカウンタ#1はモニタ行#1で指定された行112のアクセス数をカウントするレジスタである。同様に、行アクセスカウンタ#7はモニタ行#7で指定された行112のアクセス数をカウントするレジスタである。各レジスタのビット長は32である。ビット[31]はenableビットであり、ビット[31]=1のとき行112へのアクセスを計数する。ビット[30:0]は計数したアクセス数である。アクセス数はread数とwrite数の合計である。
行アクセス監視部216は、後述する効果確認フェーズにおいてsPPRが行われた行112の使用状況を確認するために用いられる。電力監視部214及び温度監視部215は、sPPRが行われたDIMM100の使用状況を確認するために用いられる。行アクセス監視部216、電力監視部214及び温度監視部215は組み合わせて用いられてもよい。
図1に戻って、チップセット300は、IO(Input Output)装置を1チップにまとめたものである。チップセット300は、CPU200に内臓されてもよい。チップセット300は、CPU200及びBMC600と接続される。チップセット300は、GPIO(General Purpose Input/Output)310とSMI指示部320とを有する。
GPIO310は、BMC600がSMIを発生させる場合に用いられる。SMI指示部320は、CPU200にSMIを発生させる。
BIOS400は、CPU200の起動時に実行され、CPU200やDIMM100等の情報処理装置1を構成するものを動作可能な状態にする処理等を行うファームウェアである。BIOS400は、PPR設定部410と、SMIハンドラ420とを有する。
PPR設定部410は、BIOS起動時に実行され、sPPR及びhPPRの適用を行う。PPR設定部410は、PPR切り替え部411を有する。PPR切り替え部411は、BMC600からsPPR位置情報621を取得してsPPRを設定し、BMC600からhPPR位置情報631を取得してhPPRを設定する。PPR切り替え部411は、sPPRを適用すると、sPPRの適用をBMC600に通知し、hPPRを適用すると、hPPRの適用をBMC600に通知する。BIOS400は、例えばIPMI(Intelligent Platform Management Interface)を用いてBMC600と通信する。
SMIハンドラ420は、CPU200からのSMIを受けて動作するハンドラである。SMIハンドラ420は、CE閾値超過処理部421と、行位置判定部422と、CE情報収集部423と、sPPR効果情報収集部424と、IPMI通信部425とを有する。
CE閾値超過処理部421は、SMIの要因がCEの閾値超過であることを判別し、行位置判定部422を呼び出してPPR位置情報をBMC600に通知させた後、CE情報収集部423を呼び出して情報収集フェーズの実行を開始させる。情報収集フェーズは、sPPRを適用する行112を特定するための情報を収集する処理である。
行位置判定部422は、メモリコントローラ210の最終CE位置レジスタ213を読み出して、最後に発生したCEの行位置情報を取得し、取得した行位置情報に基づいてPPR位置情報を作成してBMC600に通知する。
CE情報収集部423は、情報収集フェーズにおいて、CEの回数が閾値を超過する毎に行位置判定部422を呼び出して最後に発生したCEの行位置情報を取得させ、取得させた行位置情報に基づいてPPR位置情報を作成させてBMC600に通知させる。BMC600は、PPR位置情報を集計し、sPPRを適用する行位置を特定する。
CE情報収集部423は、情報収集フェーズの実行開始時に、メモリコントローラ210のCE閾値を通常の値より小さい情報収集用の値(例えば1/10の値)に変更する。また、CE情報収集部423は、CE閾値を変更した時間を記憶し、次にCEの回数が閾値を超過すると、CE閾値を変更してから次にCE閾値を超過するまでの時間を算出する。そして、CE情報収集部423は、CE閾値を変更してから次にCE閾値を超過するまでの時間が所定の時間より短い場合には、CE閾値を増加させる(例えば2倍する)。その理由は、OSハングとみなされないようにするためである。
sPPR効果情報収集部424は、効果確認フェーズにおいて、DIMM100の使用状況を示す情報であるDIMM使用情報をBMC600に通知する。効果確認フェーズは、適用したsPPRの効果を確認する処理であり、DIMM100の使用状況に基づいて効果の確認が行われる。DIMM使用情報は、電力監視部214、温度監視部215及び行アクセス監視部216により収集される。IPMI通信部425は、IPMIを用いてBMC600と通信する。
OS500は、DIMM100、CPU200等のリソースを管理し、情報処理装置1を制御する。OS500は、ハング監視部510を有する。
ハング監視部510は、定期的にCPU200に割り込みを発生させる機能を利用してOS500のハングを監視する。SMIハンドラ420が動作中はこの機能が動作できないため、長時間のSMIハンドラ420による処理から復帰するとこの機能によりOSハングが検知される。同様に、短時間でもSMIハンドラ420の処理が短期間に連続して発生するような場合には、SMIハンドラ420のCPU使用時間の積算が長くなるとOSハングとみなされる。
なお、BIOS400及びOS500は、DIMM100に記憶され、DIMM100から読み出されてCPU200により実行されるプログラムである。
BMC600は、情報処理装置1に内蔵され、情報処理装置1を管理する装置である。BMC600は、CE情報集計部610と、sPPR効果管理部620と、hPPRデータ管理部630と、IPMI通信部640と、GPIO650とを有する。
CE情報集計部610は、情報収集フェーズにおいて、CE情報収集部423から通知されたPPR位置情報を集計する。そして、CE情報集計部610は、情報収集フェーズの最後に、最も頻度が高いPPR位置情報を特定し、特定したPPR位置情報をsPPR効果管理部620に通知する。
sPPR効果管理部620は、CE情報集計部610から通知されたPPR位置情報をsPPR位置情報621として記憶する。sPPR位置情報621は、ランク毎に記憶される。図8は、sPPR位置情報621の一例を示す図である。図8に示すように、sPPR位置情報621には、4バイトのSerialと、20バイトのPartNoと、8バイトのPPRpositionとが含まれる。
Serialは、SPDのシリアル番号である。PartNoは、SPDのパーツ番号である。シリアル番号とパーツ番号によりDIMM100が識別される。PPRpositionは、PPRを適用する行位置を特定するための情報である。PPRpositionのビット[20:0]は行112を示す。PPRpositionのビット[30:21]は列を示す。PPRpositionのビット[34:31]はバンク111を示す。PPRpositionのビット[37:35]はサブランクがある場合にサブランクを示す。PPRpositionのビット[41:38]はランク110を示す。
sPPR効果管理部620は、PPR切り替え部411からの要求に基づいてsPPR位置情報621を応答する。PPR切り替え部411は、sPPR位置情報621を用いてsPPRを適用する。sPPR効果管理部620は、適用されたsPPRの効果確認に用いられる情報を管理し、sPPRの効果を確認すると、sPPR位置情報621をhPPRデータ管理部630に通知する。
sPPR効果管理部620は、CE情報集計部610からPPR位置情報を通知されると、sPPR位置履歴622に通知されたPPR位置情報があるか否かを判定し、ない場合には、通知されたPPR位置情報をsPPR位置履歴622に加える。sPPR位置履歴622は、sPPR位置情報621の履歴を示す情報である。sPPR位置履歴622は、ランク毎に記憶される。
図9は、sPPR位置履歴622のエントリの一例を示す図である。図9に示すように、sPPR位置履歴622のエントリには、4バイトのSerialと、20バイトのPartNoと、8バイトのPPRpositionと、1バイトのCancelcountと、3バイトのSequencenumberが含まれる。
Serial、PartNo及びPPRpositionは、sPPR位置情報621に含まれる情報と同じである。Cancelcountは、効果確認フェーズがキャンセルされた回数を示す。Sequencenumberは、エントリの作成順を示す番号である。
エントリの数は、例えば10である。保持するエントリ数を超えてsPPR位置履歴622を格納する必要に迫られた場合は、sPPR効果管理部620は、Cancelcountが最も少ないものを削除してから格納する。このとき、Cancelcountが最も少ないものが複数ある場合は、sPPR効果管理部620は、シーケンス番号が一番小さいもの(古いもの)を削除する。シーケンス番号はエントリの作成順を記録するためのものであり、番号がオーバーフローするときには、sPPR効果管理部620は、全てのエントリの番号を1から振り直すことでオーバーフローを防ぐ。
sPPR効果管理部620は、CE情報集計部610から通知されたPPR位置情報がsPPR位置履歴622にあるか否かを判定し、ある場合には、Cancelcountに1を加える。CE情報集計部610から通知されたPPR位置情報がsPPR位置履歴622にある場合とは、当該PPR位置情報について過去に効果確認フェーズが行われ、途中でキャンセルされた場合である。
sPPR効果管理部620は、Cancelcountが所定の閾値を超えると、当該sPPR位置情報621をhPPRデータ管理部630に通知するとともに、sPPR位置情報621とsPPR位置履歴622の同じ情報を削除する。その理由は、過去にsPPRを適用した実績のあるPPR位置情報が所定の閾値を超えた回数だけCE情報集計部610から通知されたということは、当該位置はhPPR対象位置としての確度が高いとみなせるためである。
このように、sPPR効果管理部620は、Cancelcountが所定の閾値を超えると、当該sPPR位置情報をhPPRデータ管理部630に通知することによって、ピンポン問題(ping-pong problem)を避けることができる。
ここで、ピンポン問題とは、以下のような問題である。あるバンク内に、2つの故障行112があり、それぞれ行A、行Bとする。それぞれ同程度の頻度でCEが発生するとすると、sPPR位置履歴622を用いない場合には、行Aの効果確認フェーズ中に行BによるCE閾値超えが検出され、行Aの効果確認フェーズがキャンセルされる可能性がある。同様に、その後、行Bの効果確認フェーズが実施されるが、その途中で行AによるCE閾値超えが検出され、行Bの効果確認フェーズがキャンセルされる可能性がある。このように、行Aと行Bの効果確認フェーズのキャンセルが交互に繰り返されると、いつまでもhPPRが適用されずに安定しないという問題が発生する可能性がある。この問題がピンポン問題である。
sPPR効果管理部620は、sPPR位置履歴622を用いることにより、Cancelcountが所定の閾値を超えているsPPR位置に再び効果確認フェーズを適用しようとした場合、効果確認フェーズを経ずに効果確認済みとみなしてhPPRを適用する。したがって、sPPR効果管理部620は、ピンポン問題を避けることができる。
なお、CE情報集計部610は、効果確認フェーズにおいて、行位置判定部422からPPR位置情報が送付されてきたとき、PPR位置情報のチェックをsPPR効果管理部620に依頼する。そして、sPPR効果管理部620は、送付されたPPR位置情報のDIMM100及びランク110がsPPR位置情報621のDIMM100及びランク110と同じであるか否かをチェックする。
そして、同じである場合には、sPPR効果管理部620は、当該ランク110に関する効果確認フェーズをキャンセルし、sPPR位置履歴622にPPR位置情報を保存する。その理由は、sPPRを適用しているにもかかわらず、同じランク110の別の行112でCEが多発したので、sPPR効果管理部620は、sPPRの効果がなかったと判断したためである。sPPR位置履歴622に既に同じPPR位置情報が存在していた場合には、sPPR効果管理部620は、当該PPR位置情報のCancelcountを1増加する。
sPPR効果管理部620は、効果測定時間管理部623と効果情報集計部624とを有する。効果測定時間管理部623は、効果確認の時間を計測し、sPPRの効果の判定に適切な時間が経過したか否かを判断する。効果測定時間管理部623は、ランク毎に、例えば64ビットで開始時刻と終了予定時刻を保持する。
効果測定時間管理部623は、効果確認フェーズの期間内に定期的にGPIO650を用いてCPU200にSMIを発生させ、sPPR効果情報収集部424にDIMM使用情報を収集させる。効果測定時間管理部623は、効果測定に使用するDIMM使用情報として、電力監視部214又は行アクセス監視部216の情報を使う場合は、測定の最初と最後にSMIを1回ずつ発生させる。DIMM使用情報として温度監視部215の情報を使う場合は、効果測定時間管理部623は、測定の最初に1回SMIを発生させ、その後定期的に(例えば30秒毎に)SMIを発生させる。複数のランク110が測定対象の場合、測定期間が同じならば、効果測定時間管理部623は、複数のランク110をまとめてSMIを発生してもよい。効果測定時間は、例えば60分である。
効果情報集計部624は、sPPR効果情報収集部424からDIMM使用情報を受信して集計する。DIMM使用情報として、電力監視部214又は行アクセス監視部216の情報を使う場合、効果情報集計部624は、sPPR効果情報収集部424から通知された最初のDIMM使用情報と最後のDIMM使用情報を測定対象ランク毎に保持する。
DIMM使用情報として、温度監視部215の情報を使う場合、効果情報集計部624は、sPPR効果情報収集部424から通知された測定情報の最新の10個をランク毎に保持する。そして、効果情報集計部624は、10個揃った段階で平均温度を算出し、最大平均温度として保持する。11個目以降の情報が通知されるたびに、効果情報集計部624は、古いデータを1つ削除し、最新の10個で平均温度を算出する。算出した平均温度が最大平均温度を超えていたら、効果情報集計部624は、その値を最大平均温度として保持する。
sPPRの効果の判定に適切な時間が経過したと効果測定時間管理部623が判断した場合、sPPR効果管理部620は、DIMM使用情報の集計結果に基づいて、sPPRを適用されたDIMM100が十分に利用されたか否かを判断する。そして、sPPR効果管理部620は、sPPRを適用されたDIMM100が十分に利用されたと判断した場合、sPPRの効果があったと判断し、sPPR位置情報621をhPPRデータ管理部630に通知するとともに、sPPR位置情報621を消去する。
効果測定時間管理部623が適切な時間が経過したと判断する前に情報処理装置1がリセットされた場合、又は電源オフされた場合は、効果測定時間管理部623は、次の電源オン時も継続して効果確認時間を計測する。
DIMM100が十分に利用されたか否かを判断する理由は、効果確認対象行112にアクセスがないとCEが発生せず、長時間経過しても行112にアクセスがなければsPPRの効果が判断できないためである。sPPR効果管理部620は、効果確認対象行112について、行アクセス監視部216により監視されるアクセス数に基づいて、十分にアクセスがあったか否かを判断する。
また、sPPR効果管理部620は、効果確認対象行112にアクセスがあったか否かを間接的に判断するためにDIMM100の消費電力や温度情報を利用する。その理由は、十分長い期間DIMM100へのアクセスが発生していれば、効果確認対象行112にもアクセスがあったと期待できるためである。例えば、sPPR効果管理部620は、行アクセス監視部216が監視可能な行112の数を超えて判断する必要がある場合に、間接的な判断を併用する。
行アクセス監視部216により計測されるアクセス数を用いる場合、sPPR効果管理部620は、例えば、効果確認対象行112への時間あたりのアクセス数が所定の閾値アクセス数を超えると、十分にアクセスがあったと判断する。
電力監視部214により計測される消費エネルギーを用いる場合、sPPR効果管理部620は、例えば、効果確認対象DIMM100が消費した時間あたりの消費エネルギーが所定の閾値エネルギー量を超えた場合、十分にアクセスがあったと判断する。
温度監視部215により計測される温度を用いる場合、sPPR効果管理部620は、例えば、効果測定期間終了後に効果確認対象DIMM100の最大平均温度が所定の閾値温度を超えていた場合、十分にアクセスがあったと判断する。閾値はDIMM100の種類等で異なるので、事前に試験により決定される。
hPPRデータ管理部630は、hPPRを適用するためのPPR位置情報であるhPPR位置情報631をランク毎に管理する。hPPRデータ管理部630は、sPPR効果管理部620から通知されたPPR位置情報をhPPR位置情報631として記憶する。hPPRデータ管理部630は、PPR切り替え部411からの要求に基づいてhPPR位置情報631を応答する。hPPRデータ管理部630は、PPR切り替え部411よりhPPR適用を通知されると、hPPR位置情報631を削除する。
図10は、hPPR位置情報631の一例を示す図である。図10に示すように、hPPR位置情報631には、4バイトのSerialと、20バイトのPartNoと、8バイトのPPRpositionとが含まれる。Serial、PartNo及びPPRpositionは、sPPR位置情報621に含まれる情報と同じである。
hPPRデータ管理部630は、hPPR位置情報631の中に情報処理装置1に存在しないDIMM100に関する情報があった場合、そのhPPR位置情報631を削除する。その理由は、そのhPPR位置情報631に対応するDIMM100が交換されたと想定されるためである。
IPMI通信部640は、IPMIを用いてIPMI通信部425と通信する。特にBIOS400やOS500と通信するときは、KCS(Keyboard Controller Style)インターフェース等を利用する。
GPIO650は、チップセット300のGPIO310と接続する。BMC600は、GPIO650を操作することで、チップセット300のSMI指示部320にSMIを発生させることができる。
次に、情報処理装置1によるPPR処理のフローについて説明する。図11A〜図11Cは、情報処理装置1によるPPR処理のフローを示すフローチャートである。図11Aに示すように、情報処理装置1は、電源オンを受け付ける(ステップS1)。そして、BIOS400は、CPU200やDIMM100の初期設定をする(ステップS2)。最初は、sPPR位置情報621もhPPR位置情報631もないものとする。
そして、BIOS400は、OS500を起動する(ステップS3)。そして、メモリコントローラ210は、OS500の運用中にDIMM100のCE閾値超過を検出すると、SMIを発生させてBIOS400のSMIハンドラ420を実行させる(ステップS4)。そして、情報処理装置1は、情報収集フェーズ処理を実行する(ステップS5)。
そして、情報処理装置1は、OS500の運用終了を受け付けたか否かを判定し(ステップS6)、受け付けていない場合には、ステップS4に戻り、受け付けた場合には、電源オフ又はリセットを実行する(ステップS7)。
その後、電源オフを受け付けた場合には、図11Bに示すように、情報処理装置1は、電源オンを受け付ける(ステップS8)。そして、BIOS400は、CPU200やDIMM100の初期設定をする(ステップS9)。このとき、BIOS400は、BMC600のsPPR効果管理部620からsPPR位置情報621を取得してsPPRを適用し、sPPR効果管理部620にsPPRを適用したことを通知する(ステップS10)。そして、BIOS400は、メモリコントローラ210の行アクセス監視部216にsPPRを適用した行112の監視設定をする(ステップS11)。
そして、BIOS400は、BMC600の効果測定時間管理部623に効果測定開始を指示し(ステップS12)、OS500を起動する(ステップS13)。そして、効果測定時間管理部623は、効果測定の時間測定を開始する(ステップS14)。ここで、効果確認フェーズが開始される。ただし、効果測定中に情報処理装置1の電源がオフされてONされる場合もあるので、既に時間測定が開始され、中断されていたら、効果測定時間管理部623は、時間測定を再開する。そして、情報処理装置1は、効果確認フェーズ処理を実行する(ステップS15)。
そして、図11Cに示すように、メモリコントローラ210は、OS500の運用中にDIMM100のCE閾値超過を検出すると、SMIを発生させてBIOS400のSMIハンドラ420を実行させる(ステップS16)。そして、情報処理装置1は、情報収集フェーズ処理を実行する(ステップS17)。
ステップS16及びステップS17の処理は、効果確認対象となっているランク110とは別のランク110でCE閾値超過を検出した場合の処理である。効果確認フェーズの対象となっているランク110が存在していても、効果確認フェーズ対象外のランク110でCE閾値超過が発生した場合は、情報処理装置1は、そのランク110に対して情報収集フェーズを実行する。
そして、情報処理装置1は、OS500の運用終了を受け付けたか否かを判定し(ステップS18)、受け付けていない場合には、ステップS16に戻り、受け付けた場合には、電源オフ又はリセットを実行する(ステップS19)。
その後、電源オフを受け付けた場合には、情報処理装置1は、電源オンを受け付ける(ステップS20)。そして、BIOS400は、CPU200やDIMM100の初期設定をする(ステップS21)。このとき、BIOS400は、BMC600のhPPRデータ管理部630にhPPR位置情報631があるかを問い合わせる(ステップS22)。効果確認フェーズにおいて、sPPRの効果が確認されていれば、hPPR位置情報631は存在する。
hPPR位置情報631が存在する場合、BIOS400は、hPPRデータ管理部630からhPPR位置情報631を取得し、hPPRを適用する(ステップS23)。そして、BIOS400は、hPPRデータ管理部630にhPPRを適用したことを通知する(ステップS24)。通知を受けたhPPRデータ管理部630は、hPPR位置情報631を削除する(ステップS25)。また、BIOS400は、必要ならば、ステップS10〜ステップS11のsPPR適用処理を実行する。
そして、BIOS400は、hPPR位置情報631もsPPR位置情報621も存在しないか否かを判定し(ステップS26)、いずれも存在しない場合には、ステップS3に戻り、少なくとも一方が存在する場合には、ステップS12に戻る。
このように、情報処理装置1は、情報収集フェーズでsPPRを適用する行112を特定し、特定した行112にsPPRを適用し、効果確認フェーズでsPPRの効果を確認し、sPPRの効果を確認するとhPPRを適用する。したがって、情報処理装置1は、CEが発生する行112を適切に特定して修復することができる。
図12A〜図12Bは、情報収集フェーズ処理のフローを示すフローチャートである。図12Aに示すように、SMIハンドラ420のCE閾値超過処理部421は、CEの閾値超過を検出し、CE情報収集部423を呼び出す(ステップS31)。
CE情報収集部423は、行位置判定部422に指示をして、PPR位置情報を作成させ、BMC600のCE情報集計部610に通知させる(ステップS32)。そして、CE情報収集部423は、メモリコントローラ210のCE閾値の値をCE情報収集用の値(通常より低い値)に変更し、CEカウンタ211をクリアする(ステップS33)。CE情報収集部423は、CE閾値の値をより低い値に変更することで、CE閾値超過を早めることができ、CE情報集計部610によるsPPR位置情報621の特定を早めることができる。そして、CE情報収集部423は、CE閾値を変更した時間を記憶する(ステップS34)。
そして、メモリコントローラ210は、DIMM100のCE閾値超過を検出すると、SMIを発生させてBIOS400のSMIハンドラ420のCE閾値超過処理部421を実行させる(ステップS35)。
そして、CE閾値超過処理部421は、CE情報収集部423を呼び出す(ステップS36)。そして、CE情報収集部423は、行位置判定部422に指示をして、PPR位置情報を作成させ、BMC600のCE情報集計部610に通知させる(ステップS37)。そして、CE情報収集部423は、CE閾値を変更してからCE閾値超過までの時間を算出し、CE閾値超過までの時間が短すぎた場合、OS500のハング監視部510にハングとみなされないように、CE閾値を増やす(ステップS38)。
そして、CE情報収集部423は、必要な数のPPR位置情報をBMC600に通知したか否かを判定し(ステップS39)、通知していない場合には、ステップS35に戻る。一方、必要な数のPPR位置情報をBMC600に通知した場合には、CE情報集計部610は、ランク毎に収集したPPR位置情報の中から対象ランク内で最も頻度が高いPPR位置情報を選択し、sPPR効果管理部620に通知する(ステップS40)。
そして、図12Bに示すように、sPPR効果管理部620は、CE情報集計部610から受け取ったPPR位置情報をsPPR位置情報621として保存する(ステップS41)。そして、sPPR効果管理部620は、sPPR位置履歴622にsPPR位置情報621と同じ情報が存在し、Cancelcountが閾値を超えているか否かを判定する(ステップS42)。そして、sPPR位置履歴622にsPPR位置情報621と同じ情報が存在しないか、又は、Cancelcountが閾値を超えていない場合には、sPPR効果管理部620は、ステップS46に進む。
一方、ステップS42の判定結果がYesの場合には、sPPR効果管理部620は、sPPR位置情報621をhPPRデータ管理部630に通知し、sPPR位置情報621とsPPR位置履歴622の同じ情報を削除する(ステップS43)。そして、hPPRデータ管理部630は、sPPR効果管理部620から通知されたsPPR位置情報621をhPPR位置情報631として保存する(ステップS44)。
情報収集フェーズにおいて、ステップS42の判定結果がYesの場合には、情報処理装置1は、sPPR位置情報621をhPPR位置情報631にすることで、ピンポン問題を緩和することができる。その理由は、ステップS42の判定結果がYesということは、過去にもCE閾値超過が高頻度で発生したということを示し、sPPR位置情報621の信頼度が高いためである。
そして、CE情報集計部610は、集計に利用したPPR位置情報をクリアする(ステップS45)。そして、CE情報収集部423は、メモリコントローラ210に指示を出して(例えばCE閾値を0にして)、sPPR位置情報621が確定したランク110のCE監視をやめる(ステップS46)。
このように、CE情報集計部610は、ランク毎に収集したPPR位置情報の中から対象ランク内で最も頻度が高いPPR位置情報を選択し、sPPR効果管理部620に通知するので、sPPR位置情報621の精度を高めることができる。
図13A〜図13Bは、効果確認フェーズ処理のフローを示すフローチャートである。図13Aに示すように、BMC600の効果測定時間管理部623は、OS500の運用中に定期的にCPU200にSMIを発生させる(ステップS51)。効果確認フェーズにおいて、一定期間での効果確認のため、効果測定時間管理部623は、効果確認期間内に一定の時間間隔でSMIを発生させる。SMIを発生させる理由は、効果測定のためのDIMM使用情報はBIOS400が収集するが、OS運用中にBIOS400を動作させる方法として、SMIがあるためである。
また、一定の間隔でSMIを発生させる理由は以下のとおりである。DIMM使用情報として温度監視部215の温度情報を利用する場合、sPPR効果管理部620は、一定時間内の平均温度を採用する。一回のSMIでBIOS400が採取できる温度はその時点の温度なので、平均をとるためには複数回の温度情報が必要となる。このため、効果測定時間管理部623は、一定の間隔でSMIを発生させて情報を収集する。なお、DIMM使用情報として電力監視部214の積算電力量情報や、行アクセス監視部216の積算アクセス回数を利用する場合は、SMI発生は効果確認フェーズの最初と最後のみでよい。
そして、CPU200でSMIが発生すると、sPPR効果情報収集部424は、メモリコントローラ210の電力監視部214、温度監視部215、行アクセス監視部216のいずれか、もしくは複数からDIMM使用情報を収集する(ステップS52)。そして、sPPR効果情報収集部424は、収集した情報をBMC600のsPPR効果管理部620の効果情報集計部624に通知する(ステップS53)。
そして、効果情報集計部624は、BIOS400から受け取ったDIMM使用情報を記憶する(ステップS54)。そして、sPPR効果管理部620は、効果確認中のランク110でCE閾値超過が発生したか否かを判定し(ステップS55)、発生した場合には、ステップS61に進む。
一方、効果確認中のランク110でCE閾値超過が発生していない場合には、効果測定時間管理部623は、効果確認に必要な時間は経過したか否かを判定し(ステップS56)、経過していない場合には、ステップS51へ戻る。一方、効果確認に必要な時間が経過した場合には、BMC600のsPPR効果管理部620は、効果情報集計部624の集計したDIMM使用情報からsPPRの効果を判定する(ステップS57)。
この時点では、効果確認対象のランク110でCE閾値超過の発生がないため、効果確認期間にsPPR対象行112にメモリコントローラ210から十分にアクセスが発生していれば、sPPR効果管理部620は、sPPR効果があったと判定することができる。
そして、sPPR効果管理部620は、効果が確認できたか否かを判定し(ステップS58)、効果が確認できなかった場合には、ステップS51へ戻る。効果が確認できなかった場合とは、効果確認対象行112又は効果確認対象行112を含むDIMM100へのアクセスが十分に発生していたと判断できなかった場合である。この場合は、効果確認対象行112又は効果確認対象行112を含むDIMM100へのアクセスがなかったためにCE閾値超過が発生しなかった可能性が高いので、sPPRを適用した効果でCE発生を抑制できたと判断することができない。したがって、sPPR効果管理部620は、効果確認対象行112へのアクセスが十分に発生するまで判断を保留する。そこで、sPPR効果管理部620は、効果確認期間を延長して、ステップS51からの効果確認フェーズをやりなおす。
一方、効果が確認できた場合には、sPPR効果管理部620は、sPPR位置情報621をhPPRデータ管理部630に通知し、sPPR位置情報621をクリアする(ステップS59)。そして、hPPRデータ管理部630は、通知されたsPPR位置情報621をhPPR位置情報631として記憶し(ステップS60)、処理を終了する。
また、ステップS55において効果確認中のランク110でCE閾値超過が発生した場合には、sPPR効果管理部620は、対象ランク110の効果確認フェーズをキャンセルし、sPPR位置情報621をsPPR位置履歴622に保存する(ステップS61)。効果確認フェーズをキャンセルする理由は、sPPRを適用したにもかかわらずCE閾値超過が発生したので、sPPRの効果がなかったと考えられるためである。ただし、ピンポン問題を緩和するために、sPPR効果管理部620は、効果確認対象のsPPR位置情報621をsPPR位置履歴622に保存する。sPPR位置履歴622に保存される情報は、一旦はCEの発生頻度が高いとみなされた行112に関する情報となる。
なお、既にsPPR位置履歴622にsPPR位置情報621と同じ位置情報が保存されていたら、sPPR効果管理部620は、その位置情報のCancelcountだけをインクリメントする。一方、保存されていなければ、sPPR効果管理部620は、Cancelcount=1として位置情報を保存する。
このように、sPPR効果管理部620がsPPRの効果を確認するsPPR位置情報621をhPPRデータ管理部630に通知することで、情報処理装置1は、次回の起動時に、sPPRの効果のあった行112にhPPRを適用することができる。
次に、BMC600のハードウェア構成の一例について説明する。図14は、BMC600のハードウェア構成の一例を示す図である。図14に示すように、BMC600は、CPU601と、RAM602と、フラッシュメモリ603とを有する。
CPU601は、RAM602からプログラムを読み出して実行する中央処理装置である。RAM602は、プログラムやプログラムの実行途中結果などを記憶するメモリである。フラッシュメモリ603は、プログラムやデータを格納するメモリである。
そして、BMC600において実行される修復管理プログラムは、例えば、BMC600により読み出し可能な記録媒体の一例であるCD−Rに記憶され、CD−Rから読み出されてBMC600にインストールされる。あるいは、修復管理プログラムは、LAN(Local Area Network)を介して接続されたコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてBMC600にインストールされる。そして、インストールされた修復管理プログラムは、フラッシュメモリ603に記憶され、RAM602に読み出されてCPU601によって実行される。
上述してきたように、実施例では、CE閾値超過が発生すると、BIOS400の行位置判定部422が、最後に発生したCEの行位置情報を取得してPPR位置情報を作成し、BMC600に通知する。そして、BMC600のCE情報集計部610が、行位置判定部422により通知された複数のPPR位置情報を集計して最も頻度が高いPPR位置情報を特定し、sPPR効果管理部620に通知する。そして、sPPR効果管理部620は、通知されたPPR位置情報をsPPR位置情報621として記憶する。そして、BIOS400のPPR切り替え部411が、sPPR効果管理部620からsPPR位置情報621を取得してsPPRを適用する。そして、sPPR効果管理部620は、sPPRの効果を判定し、効果があると判定すると、sPPR位置情報621をhPPRデータ管理部630に通知する。そして、hPPRデータ管理部630は、通知されたsPPR位置情報621をhPPR位置情報631として記憶する。したがって、情報処理装置1は、適切な行112にhPPRを適用することができる。
また、実施例では、情報処理装置1は、元に戻すことができないヒューズの切断を含むhPPRの適用をsPPRの効果を確認後に行う。したがって、不適切な行112に対してhPPRを適用することによるスペア行113の無駄な使用を抑えることができる。
また、実施例では、CE情報集計部610は、sPPR効果管理部620にPPR位置情報を通知すると、集計に用いたPPR位置情報を削除する。また、sPPR効果管理部620は、hPPRデータ管理部630にsPPR位置情報621を通知すると当該sPPR位置情報621を削除する。したがって、情報処理装置1は、PPR位置情報を記憶するために必要な領域を少なくすることができる。
また、実施例では、行位置判定部422が最後に発生したCEの行位置情報を最初に取得した際に、CE情報収集部423が、CE閾値をより小さい値に変更するので、情報収集フェーズの時間を短縮することができる。
また、実施例では、行位置判定部422が最後に発生したCEの行位置情報を2回目に取得した際に、CE情報収集部423が、CE閾値をより小さい値に変更してからの経過時間が所定の閾値より小さいか否かを判定する。そして、所定の閾値より小さい場合には、CE情報収集部423は、CE閾値をより大きい値に変更する。したがって、OS500のハング監視部510がPPRのための情報収集処理をOS500のハングと誤認識することを防ぐことができる。
また、実施例では、sPPR効果管理部620は、効果測定時間が経過し、DIMM使用情報が所定の閾値より大きい場合に、sPPRの効果があると判定するので、sPPRの効果の有無を正確に判定することができる。
また、実施例では、sPPR効果管理部620は、sPPRが適用された行112へのアクセス回数が所定の閾値アクセス回数より大きい場合に、sPPRの効果があると判定するので、sPPRの効果の有無を正確に判定することができる。
また、実施例では、sPPR効果管理部620は、DIMM100の消費電力量が閾値電力量より大きいか、又は、DIMM100の平均温度が閾値温度より大きい場合に、sPPRの効果があると判定する。したがって、sPPR効果管理部620は、sPPRの効果の有無を間接的に判定することができる。
また、実施例では、sPPR効果管理部620は、sPPRの効果を確認中に同じランク110でCE閾値超過が発生すると、対応するsPPR位置情報621がsPPR位置履歴622にあり、かつCancelcountが閾値より大きい、か否かを判定する。そして、対応するsPPR位置情報621がsPPR位置履歴622にあり、かつCancelcountが閾値より大きい場合には、sPPR効果管理部620は、sPPR位置情報621をhPPRデータ管理部630に通知する。したがって、sPPR効果管理部620は、ピンポン問題の発生を防ぐことができる。
また、実施例では、メインメモリがDIMM100の場合について説明したが、メインメモリはスペア領域を有する他の半導体記憶装置でもよい。また、実施例では、行112にPPRを適用する場合について説明したが、情報処理装置1は、半導体記憶装置の他の領域にPPRを適用してもよい。
また、実施例では、最後に発生したCEの位置情報を用いる場合について説明したが、情報処理装置1は、最後以外に発生したCEの位置情報を用いてもよい。また、実施例では、最も頻度が高いPPR位置情報をsPPR位置情報621とする場合について説明したが、情報処理装置1は、例えば、2番目に頻度が高いPPR位置情報等、他のPPR位置情報をsPPR位置情報621としてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置において、
訂正可能エラーを閾値回数を超えて検出すると、訂正可能エラーが発生したいずれかの領域の位置情報を取得する取得部と、
前記取得部が取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定する特定部と、
前記特定部により特定されたソフト修復位置情報が示す領域のソフト修復を行うソフト修復部と、
前記ソフト修復部によるソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する効果確認部と
を有することを特徴とする情報処理装置。
(付記2)前記取得部が前記位置情報を最初に取得した際に、前記閾値回数をより小さい値に変更する変更部をさらに有することを特徴とする付記1に記載の情報処理装置。
(付記3)前記変更部は、前記取得部が前記位置情報を2回目に取得した際に、前記閾値回数をより小さい値に変更した時間からの経過時間が閾値時間よりも小さい場合には、前記閾値回数を増加することを特徴とする付記2に記載の情報処理装置。
(付記4)前記効果確認部は、前記ソフト修復が行われた領域について一定期間中に、訂正可能エラーを前記閾値回数検出することなく、前記ソフト修復が行われた領域の使用を示す量が閾値使用量より大きい場合に、前記ソフト修復の効果があると判定することを特徴とする付記1、2又は3に記載の情報処理装置。
(付記5)前記使用を示す量と閾値使用量は、前記ソフト修復が行われた領域へのアクセス回数と閾値アクセス回数であることを特徴とする付記4に記載の情報処理装置。
(付記6)前記使用を示す量と閾値使用量は、前記半導体記憶装置の使用電力量と閾値電力量、又は、前記半導体記憶装置の前記一定期間中の温度と閾値温度であることを特徴とする付記4に記載の情報処理装置。
(付記7)前記効果確認部は、前記一定期間中に割り込みを発生させて前記使用を示す量をBIOSに収集させることを特徴とする付記4、5又は6に記載の情報処理装置。
(付記8)前記効果確認部は、前記ソフト修復の効果を確認中に他の領域で訂正可能エラーが前記閾値回数検出された場合、前記ソフト修復の効果の確認をキャンセルするとともに、前記ソフト修復位置情報に対応付けられたカウンタの値を増加し、前記カウンタの値が所定の値を超えると、前記ソフト修復位置情報をハード修復位置情報として設定することを特徴とする付記1〜7のいずれか1つに記載の情報処理装置。
(付記9)前記半導体記憶装置は、DIMMであり、前記領域はDIMMの行であり、前記スペア領域は、DIMMのスペア行であり、前記取得部と前記変更部と前記ソフト修復部はBIOSに含まれ、前記特定部と前記効果確認部は管理モジュールに含まれることを特徴とする付記1〜8のいずれか1つに記載の情報処理装置。
(付記10)障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置に内蔵され、該情報処理装置を管理するコンピュータで実行される修復管理プログラムにおいて、
訂正可能エラーが閾値回数を超えて検出された際に、訂正可能エラーが発生したいずれかの領域の位置情報を受信し、
受信を繰り返すことで取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定し、
特定したソフト修復位置情報が示す領域のソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する
処理を前記コンピュータに実行させることを特徴とする修復管理プログラム。
(付記11)前記効果の有無を判定する処理は、前記ソフト修復が行われた領域について一定期間中に、訂正可能エラーを前記閾値回数検出することなく、前記ソフト修復が行われた領域の使用を示す量が閾値使用量より大きい場合に、前記効果があると判定することを特徴とする付記10に記載の修復管理プログラム。
(付記12)前記効果の有無を判定する処理は、前記ソフト修復の効果を確認中に他の領域で訂正可能エラーが前記閾値回数検出された場合、前記ソフト修復の効果の確認をキャンセルするとともに、前記ソフト修復位置情報に対応付けられたカウンタを増加し、前記カウンタの値が所定の値を超えると、前記ソフト修復位置情報をハード修復位置情報として設定することを特徴とする付記10又は11に記載の修復管理プログラム。
1 情報処理装置
100 DIMM
110 ランク
111 バンク
112 行
113 スペア行
200 CPU
210 メモリコントローラ
211 CEカウンタ
212 CE閾値レジスタ
213 最終CE位置レジスタ
214 電力監視部
215 温度監視部
216 行アクセス監視部
300 チップセット
310 GPIO
320 SMI指示部
400 BIOS
410 PPR設定部
411 PPR切り替え部
420 SMIハンドラ
421 CE閾値超過処理部
422 行位置判定部
423 CE情報収集部
424 sPPR効果情報収集部
425 IPMI通信部
500 OS
510 ハング監視部
600 BMC
601 CPU
602 RAM
603 フラッシュメモリ
610 CE情報集計部
620 sPPR効果管理部
621 sPPR位置情報
622 sPPR位置履歴
623 効果測定時間管理部
624 効果情報集計部
630 hPPRデータ管理部
631 hPPR位置情報
640 IPMI通信部
650 GPIO

Claims (10)

  1. 障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置において、
    訂正可能エラーを閾値回数を超えて検出すると、訂正可能エラーが発生したいずれかの領域の位置情報を取得する取得部と、
    前記取得部が取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定する特定部と、
    前記特定部により特定されたソフト修復位置情報が示す領域のソフト修復を行うソフト修復部と、
    前記ソフト修復部によるソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する効果確認部と
    を有することを特徴とする情報処理装置。
  2. 前記取得部が前記位置情報を最初に取得した際に、前記閾値回数をより小さい値に変更する変更部をさらに有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記変更部は、前記取得部が前記位置情報を2回目に取得した際に、前記閾値回数をより小さい値に変更した時間からの経過時間が閾値時間よりも小さい場合には、前記閾値回数を増加することを特徴とする請求項2に記載の情報処理装置。
  4. 前記効果確認部は、前記ソフト修復が行われた領域について一定期間中に、訂正可能エラーを前記閾値回数検出することなく前記ソフト修復が行われた領域の使用を示す量が閾値使用量より大きい場合に、前記ソフト修復の効果があると判定することを特徴とする請求項1、2又は3に記載の情報処理装置。
  5. 前記使用を示す量と閾値使用量は、前記ソフト修復が行われた領域へのアクセス回数と閾値アクセス回数であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記使用を示す量と閾値使用量は、前記半導体記憶装置の使用電力量と閾値電力量、又は、前記半導体記憶装置の前記一定期間中の温度と閾値温度であることを特徴とする請求項4に記載の情報処理装置。
  7. 前記効果確認部は、前記一定期間中に割り込みを発生させて前記使用を示す量をBIOSに収集させることを特徴とする請求項4、5又は6に記載の情報処理装置。
  8. 前記効果確認部は、前記ソフト修復の効果を確認中に他の領域で訂正可能エラーが前記閾値回数検出された場合、前記ソフト修復の効果の確認をキャンセルするとともに、前記ソフト修復位置情報に対応付けられたカウンタの値を増加し、前記カウンタの値が所定の値を超えると、前記ソフト修復位置情報をハード修復位置情報として設定することを特徴とする請求項1〜7のいずれか1つに記載の情報処理装置。
  9. 前記半導体記憶装置は、DIMMであり、前記領域はDIMMの行であり、前記スペア領域は、DIMMのスペア行であり、前記取得部と前記変更部と前記ソフト修復部はBIOSに含まれ、前記特定部と前記効果確認部は管理モジュールに含まれることを特徴とする請求項1〜8のいずれか1つに記載の情報処理装置。
  10. 障害のあるメモリセルを含む領域をスペア領域に置き換え可能な半導体記憶装置を有する情報処理装置に内蔵され、該情報処理装置を管理するコンピュータで実行される修復管理プログラムにおいて、
    訂正可能エラーが閾値回数を超えて検出された際に、訂正可能エラーが発生したいずれかの領域の位置情報を受信し、
    受信を繰り返すことで取得した複数の位置情報から、他の位置情報よりも頻度が高い位置情報をソフト修復位置情報として特定し、
    特定したソフト修復位置情報が示す領域のソフト修復の効果の有無を判定し、該効果があると判定した場合に、前記ソフト修復位置情報をハード修復位置情報として設定する
    処理を前記コンピュータに実行させることを特徴とする修復管理プログラム。
JP2018188260A 2018-10-03 2018-10-03 情報処理装置及び修復管理プログラム Pending JP2020057257A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018188260A JP2020057257A (ja) 2018-10-03 2018-10-03 情報処理装置及び修復管理プログラム
US16/562,485 US20200111539A1 (en) 2018-10-03 2019-09-06 Information processing apparatus for repair management of storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018188260A JP2020057257A (ja) 2018-10-03 2018-10-03 情報処理装置及び修復管理プログラム

Publications (1)

Publication Number Publication Date
JP2020057257A true JP2020057257A (ja) 2020-04-09

Family

ID=70052329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018188260A Pending JP2020057257A (ja) 2018-10-03 2018-10-03 情報処理装置及び修復管理プログラム

Country Status (2)

Country Link
US (1) US20200111539A1 (ja)
JP (1) JP2020057257A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7430220B2 (ja) 2021-12-29 2024-02-09 廣達電腦股▲ふん▼有限公司 システム管理割り込みデータの収集に用いる方法及びシステム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829635B2 (en) * 2021-10-21 2023-11-28 Dell Products L.P. Memory repair at an information handling system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748543A (en) * 1995-06-21 1998-05-05 Samsung Electronics Co., Ltd. Self repairing integrated circuit memory devices and methods
US20040123213A1 (en) * 2002-12-23 2004-06-24 Welbon Edward Hugh System and method for correcting data errors
JP2009507324A (ja) * 2005-09-02 2009-02-19 メタラム インコーポレイテッド Dramをスタックする方法及び装置
JP2012198727A (ja) * 2011-03-20 2012-10-18 Fujitsu Ltd メモリコントローラ及び情報処理装置
WO2017131700A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Row repair of corrected memory address
JP2017199367A (ja) * 2016-04-26 2017-11-02 廣達電腦股▲ふん▼有限公司 ポストパッケージリペアにおける記録及び使用を分析するための方法及びシステム
US20180174665A1 (en) * 2016-12-20 2018-06-21 Ampere Computing Llc Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic
US20190333601A1 (en) * 2018-04-09 2019-10-31 Micron Technology, Inc. Post-packaging repair of redundant rows
US20190347150A1 (en) * 2018-05-14 2019-11-14 Micron Technology, Inc. Channel-scope proximity disturb and defect remapping scheme for non-volatile memory

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748543A (en) * 1995-06-21 1998-05-05 Samsung Electronics Co., Ltd. Self repairing integrated circuit memory devices and methods
US20040123213A1 (en) * 2002-12-23 2004-06-24 Welbon Edward Hugh System and method for correcting data errors
JP2009507324A (ja) * 2005-09-02 2009-02-19 メタラム インコーポレイテッド Dramをスタックする方法及び装置
JP2012198727A (ja) * 2011-03-20 2012-10-18 Fujitsu Ltd メモリコントローラ及び情報処理装置
WO2017131700A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Row repair of corrected memory address
US20190019569A1 (en) * 2016-01-28 2019-01-17 Hewlett Packard Enterprise Development Lp Row repair of corrected memory address
JP2017199367A (ja) * 2016-04-26 2017-11-02 廣達電腦股▲ふん▼有限公司 ポストパッケージリペアにおける記録及び使用を分析するための方法及びシステム
US20180174665A1 (en) * 2016-12-20 2018-06-21 Ampere Computing Llc Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic
US20190333601A1 (en) * 2018-04-09 2019-10-31 Micron Technology, Inc. Post-packaging repair of redundant rows
US20190347150A1 (en) * 2018-05-14 2019-11-14 Micron Technology, Inc. Channel-scope proximity disturb and defect remapping scheme for non-volatile memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7430220B2 (ja) 2021-12-29 2024-02-09 廣達電腦股▲ふん▼有限公司 システム管理割り込みデータの収集に用いる方法及びシステム
US11900150B2 (en) 2021-12-29 2024-02-13 Quanta Computer Inc. Methods and systems for collection of system management interrupt data

Also Published As

Publication number Publication date
US20200111539A1 (en) 2020-04-09

Similar Documents

Publication Publication Date Title
US10761926B2 (en) Server hardware fault analysis and recovery
CN109783262B (zh) 故障数据处理方法、装置、服务器及计算机可读存储介质
US9535774B2 (en) Methods, apparatus and system for notification of predictable memory failure
Tang et al. Assessment of the effect of memory page retirement on system RAS against hardware faults
US9495233B2 (en) Error framework for a microprocesor and system
US7348836B1 (en) Integrated circuit core power supply event monitor
US9606889B1 (en) Systems and methods for detecting memory faults in real-time via SMI tests
US8020053B2 (en) On-line memory testing
US20060010352A1 (en) System and method to detect errors and predict potential failures
JP5583052B2 (ja) 故障予測・対策方法及びクライアントサーバシステム
US20160321127A1 (en) Determine when an error log was created
Du et al. Predicting uncorrectable memory errors for proactive replacement: An empirical study on large-scale field data
WO2017131700A1 (en) Row repair of corrected memory address
US7269764B2 (en) Monitoring VRM-induced memory errors
JP2020057257A (ja) 情報処理装置及び修復管理プログラム
US20060236035A1 (en) Systems and methods for CPU repair
CN113918375B (zh) 一种故障处理方法、装置及电子设备和存储介质
CN112650612A (zh) 一种内存故障定位方法及装置
Li et al. From correctable memory errors to uncorrectable memory errors: What error bits tell
WO2023193396A1 (zh) 一种内存故障处理方法、装置及计算机可读存储介质
Yu et al. Himfp: Hierarchical intelligent memory failure prediction for cloud service reliability
US10268598B2 (en) Primary memory module with record of usage history
US7603582B2 (en) Systems and methods for CPU repair
CN115480947A (zh) 一种内存条故障检测装置及检测方法
CN111221775A (zh) 处理器、缓存处理方法及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221115