JPWO2006100776A1 - ファームウェアによるメモリエラーアドレス管理 - Google Patents

ファームウェアによるメモリエラーアドレス管理 Download PDF

Info

Publication number
JPWO2006100776A1
JPWO2006100776A1 JP2007509129A JP2007509129A JPWO2006100776A1 JP WO2006100776 A1 JPWO2006100776 A1 JP WO2006100776A1 JP 2007509129 A JP2007509129 A JP 2007509129A JP 2007509129 A JP2007509129 A JP 2007509129A JP WO2006100776 A1 JPWO2006100776 A1 JP WO2006100776A1
Authority
JP
Japan
Prior art keywords
memory
error
area
firmware
memory controller
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.)
Granted
Application number
JP2007509129A
Other languages
English (en)
Other versions
JP4523639B2 (ja
Inventor
遠藤 新
新 遠藤
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
Publication of JPWO2006100776A1 publication Critical patent/JPWO2006100776A1/ja
Application granted granted Critical
Publication of JP4523639B2 publication Critical patent/JP4523639B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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

Abstract

本発明は、OSとファームウェアを実行するCPUと、CPUに接続され、複数のメモリへの書き込みと読み出しの制御と、エラーの監視を行う複数のメモリコントローラと、複数のメモリコントローラの各々に接続される複数のメモリとを有する情報処理装置を提供する。メモリコントローラは、当該メモリコントローラに接続される複数のメモリのメモリ領域を順次読み込み、エラー領域の監視を行い、ファームウェアは、エラー領域に対応するメモリコントローラが把握するアドレスをOSが把握する論理アドレスに変換して、OSに供給することを特徴とする。【選択図】図7

Description

本発明は、メモリコントローラを用いた情報処理装置に関するものであり、特に、メモリの実装容量に関わらずメモリの異常監視を行う情報処理装置に関する。
近年、システムの大規模化に伴い、実装されるメモリの量は増加し、高い信頼性が求められている。メモリの故障箇所を迅速に検出することは、大容量メモリで高い信頼性を維持するためには必須となっている。そのために、メモリの診断や監視は不可欠である。
図1は、従来のメモリ監視を説明する図である。CPU3ではオペレーティングシステム(以下OS)が動作している。また、CPU3にはメモリ2i〜2lが接続されている。
従来のメモリの異常監視では、OSからの指示により、CPUがメモリ2i〜2l内の全メモリ領域を監視していた。この場合、OSは実装しているメモリ2i〜2l内の全領域に対して、CPU3を通じて読み出し処理を行う。読み出しが不可能であった領域はエラー領域と診断され、使用可能領域から除外する縮退処理が行われる。
OSは、OS自身が縮退した領域の情報を保持し、論理アドレスの連続性を自身で確保する。また、OSはメモリの実装量やハードウェア構成を予め把握している。
このような、OSからの指示によってCPUが全メモリ領域を監視する手法では、メモリ容量の膨大な大規模システムにおいては運用時の負荷が大きすぎる。また、監視処理に時間がかかりすぎるという問題点も抱えていた。CPUの負荷を軽減するために、メモリ領域の読み出しをCPU以外のハードウェアが行うメモリ監視が考えられる。メモリ領域の読み出しと、読み出されたデータにおけるエラーの有無の確認をCPU以外のハードウェアが行うことにより、CPUの負荷を軽減することができる。
図2は、メモリ領域へのアクセスをCPU以外のハードウェアが行うメモリ監視の例である。CPU3ではOSが動作している。そして、CPU3にはメモリの制御および監視を行うハードウェアであるコントローラC1〜C3が接続されている。また、コントローラC1にはメモリ2mと2n、コントローラC2にはメモリ2oと2p、コントローラC3にはメモリ2qと2rがそれぞれ接続されている。
コントローラC1〜C3は、通常アクセス時には、OSからの要求にしたがって接続されているメモリに対するアクセスを制御しているが、メモリ監視時には、メモリからのデータの読み込みを行い、エラーを検知した場合には保有するレジスタの特定のビットを変化させOSに知らせる。
この場合も、OSは、メモリの実装量やハードウェア構成を予め把握している。また、OS自身が以前に縮退した領域の情報を保持し、論理アドレスの連続性を自身で確保する。
ここで、CPUの負担を軽減するハードウェア監視システムとしては、特許文献1に記載の技術がある。この技術は、エラーの処理をファームウェアに行わせることによって、エラーによるアプリケーションの頻繁な中断を抑制しCPUの負担を減らすものである。しかし、特許文献1に記載の技術は、ハードウェア全般に関わるものであり、メモリの監視を行うものではない。
特開2000−57016号公報
図2に示したように、CPU以外のハードウェアによってメモリの異常監視を行う場合においても、メモリの拡張によってメモリのアドレスが従来のアーキテクチャによるアドレスから変更される可能性がある。メモリの拡張に対応するためには、アーキテクチャごとに対応する論理アドレスへの変換が行われなければならないが、それをOSに行わせると共通のOSで全てのアーキテクチャに対応することができなくなる。また、ハードウェアによってアーキテクチャの変更に対応すると、アーキテクチャごとに追加のハードウェアを実装する必要が生じてしまい、コスト増や開発工数増を招いてしまう。
そこで、本発明の目的は、CPUが直接的にメモリの監視を行わず、異なるアーキテクチャへの対応をOSやハードウェア以外の手段で行うメモリ監視の可能な情報処理装置を提供することにある。
上記課題を解決するため、本発明の第一の側面によれば、OSとファームウェアを実行するCPUと、前記CPUに接続され、複数のメモリへの書き込みと読み出しの制御と、エラーの監視を行う複数のメモリコントローラと、前記複数のメモリコントローラの各々に接続される前記複数のメモリとを有する情報処理装置であって、前記メモリコントローラは、当該メモリコントローラに接続される前記複数のメモリのメモリ領域を順次読み込み、エラー領域の監視を行い、前記ファームウェアは、前記エラー領域に対応する前記メモリコントローラが把握するアドレスを前記OSが把握する論理アドレスに変換して、前記OSに供給することを特徴とする。
上記発明の第一の側面において、好ましい実施例では、前記ファームウェアは、前記メモリコントローラによって検知された前記エラー領域が、以前の読み込みによってエラー領域であると検知され使用可能領域から除外された領域かどうかを判断し、以前に除外されていればメモリ領域の読み込みを再開することを特徴とする。
上記発明の第一の側面において、さらに好ましい実施例では、前記ファームウェアは、前記エラー領域のデータが修復可能かどうかの判断を行い、前記エラー領域のデータが修復可能であれば、前記エラー領域を検知した前記メモリコントローラは、前記エラー領域に再書き込みを行うことを特徴とする。
上記発明の第一の側面において、さらに好ましい実施例では、前記複数のメモリコントローラは、それぞれ独立に前記メモリのエラーの監視を行うことを特徴とする。
また、上記発明の第二の側面において、好ましい実施例では、OSとファームウェアを実行するCPUと、前記CPUに接続され、複数のメモリへの書き込みと読み出しの制御と、エラーの監視を行う複数のメモリコントローラと、前記複数のメモリコントローラの各々に接続される前記複数のメモリとを有する情報処理装置におけるメモリ異常監視方法であって、前記メモリコントローラによって、当該メモリコントローラに接続される前記複数のメモリのメモリ領域を順次読み込み、エラー領域の監視を行う読込工程と、前記ファームウェアによって、前記エラー領域に対応する前記メモリコントローラが把握するアドレスを前記OSが把握する論理アドレスに変換して、前記OSに供給する変換工程とを有することを特徴とする。
上記発明の第二の側面において、好ましい実施例では、前記ファームウェアによって、前記メモリコントローラによって検知された前記エラー領域が、以前の読み込みによってエラー領域であると検知され使用可能領域から除外された領域かどうかを判断し、以前に除外されていればメモリ領域の読み込みを再開する縮退判断工程を有することを特徴とする。
上記発明の第二の側面において、好ましい実施例では、前記ファームウェアによって、前記エラー領域のデータが修復可能かどうかの判断を行い、前記エラー領域のデータが修復可能であれば、前記エラー領域を検知した前記メモリコントローラは、前記エラー領域に再書き込みを行う修復判断工程を有することを特徴とする。
本発明の情報処理装置は、アーキテクチャの変更に伴う論理アドレスの変更をファームウェアによって行うことにより、追加のハードウェアを導入してコスト増や開発工数増を招くことなく、共通のOSを全てのアーキテクチャに適用することが可能となる。
従来のメモリ監視を説明する図である。 メモリ領域へのアクセスをCPU以外のハードウェアが行うメモリ監視の例で ある。 本発明の実施形態における情報処理装置の構成図である。 メモリコントローラの構成と通常アクセス時の動作を示す図である。 メモリコントローラの構成とメモリ監視時の動作を示す図である。 本発明の実施形態におけるメモリ監視の簡単な動作フローである。 本発明の実施形態におけるメモリ監視の詳細な動作フローである。 本発明の実施形態におけるメモリ監視停止の動作フローである。 本発明の実施形態におけるメモリ監視におけるOSのエラー監視の動作フローである。
以下、図面に従って本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
図3は、本発明の実施形態における情報処理装置の構成図である。本実施形態の情報処理装置は、CPU3を有し、OS及びファームウェア(図中ではFirm)の命令を実行している。CPU3は、システムコントローラ4を介して、複数のメモリコントローラ(図中ではMAC)1a〜1dに接続されている。システムコントローラ4は、通常のメモリアクセス時において、CPU3から受け取った論理アドレスをそれぞれのメモリコントローラ1a〜1d内で使用されるメモリコントローラアドレスに変換する。メモリコントローラ1a〜1dは、メモリ2a〜2hに対する書き込みや読み出しの管理、及び、メモリ監視を行うハードウェアである。
図4は、メモリコントローラの構成と通常アクセス時の動作を示す図である。メモリコントローラ1は、主に、メモリ監視制御部11、レジスタ12、エラー診断部13、エラー訂正部14、メモリ管理部15から構成されている。通常アクセス時において、OSがCPU3を介してメモリ2に対してアクセスを行う場合、まず、CPU3からシステムコントローラ4に対してアクセスする領域の論理アドレスが供給される。システムコントローラ4は、論理アドレスを受けて、対応するメモリコントローラ1上のメモリコントローラアドレス(図中ではMACアドレス)に変換する。メモリコントローラアドレスの供給を受けたメモリコントローラ1内のメモリ管理部15は、メモリ2上の対応する領域のデータにアクセスする。メモリ2は、対応する領域のデータをメモリコントローラ1内のエラー診断部13とエラー訂正部14に供給する。
メモリ2から供給されたデータにエラーが存在しない場合、そのデータはメモリコントローラ1から出力され、CPU3を介してOSが受信する。
メモリ2から供給されたデータにエラーが存在する場合、エラー診断部13はエラーを検出し、そのエラーが訂正可能であるかどうかを判断する。検出されたエラーが訂正不能である場合、エラー訂正部14は訂正不能のエラーを含むデータであるという情報を付加して、データをOSに送信する。その際、エラー診断部13は、エラーの修正の可否、エラー領域のアドレス情報、通常アクセス時のエラーであるかメモリ診断時のエラーであるか、などの情報をレジスタ12に記録する。
エラー訂正部14は、供給されたデータのエラーが訂正可能であれば、訂正したデータをメモリコントローラ1から出力し、CPU3を通じてOSに供給する。その際、エラー診断部13は、エラーの修正の可否、エラー領域のアドレス情報、通常アクセス時のエラーであるかメモリ監視時のエラーであるか、などの情報をレジスタ12に記録する。
なお、通常時の動作においてメモリ監視制御部11は使用されない。
図5は、メモリコントローラの構成とメモリ監視時の動作を示す図である。OSはCPU3を介して、ファームウェアに対してメモリ監視の開始を指示する。ファームウェアはCPU3を介して、メモリコントローラ1内のレジスタ12に書き込みを行い、メモリ監視を開始させる。ファームウェアからのレジスタ12に対する書き込みを確認したメモリ監視制御部11はメモリ2に対するデータの読み出しを順次行う。メモリ2は、メモリ監視制御部11から供給されるメモリコントローラアドレスに対応するデータを、メモリコントローラ1内のエラー診断部13とエラー訂正部14に対して供給する。
エラー診断部13に対して供給されたデータにエラーが存在しない場合、エラー診断部13はメモリ監視制御部11に対してエラーが存在しないことを通知する。これを受けて、メモリ監視制御部11は次の領域を読み出すためにメモリ2に対してアクセスを行う。
エラー診断部13に対して供給されたデータにエラーが存在した場合、エラー診断部13はそのエラーが修正可能であるかを判断する。そして、エラー診断部13はエラーが存在したこと、及び、エラーの修正の可否、エラー領域のアドレス情報、通常アクセス時のエラーであるかメモリ監視時のエラーであるか、などの情報をメモリ監視制御部11に通知する。それを受けて、メモリ監視制御部11は、メモリ監視を一時中断する。そして、メモリ監視制御部11は、エラー診断部13から得た情報をレジスタ12に書き込む。
メモリコントローラ1は、ファームウェアやOSとの情報の交換のためにレジスタ12を有している。監視のスタートやストップなどの制御を行うコントロールレジスタには、監視制御レジスタRG1、リスタートアドレスレジスタRG2、リライトアドレスレジスタRG3の3種類が存在する。
制御監視レジスタRG1には、監視開始ビットB1、リスタートアドレスビットB2、監視停止ビットB3、監視状態ビットB4、リライトビットB5、リライトリセットビットB6、修正可能エラービットB7、修正不能エラービットB8、比較エラービットB9などの各ビットが存在する。
また、メモリコントローラ1内のレジスタ12には、エラー情報などを保持するログレジスタが存在する。ログレジスタは主に、エラーアドレスレジスタRG4、エラーログレジスタRG5、固定障害アドレスレジスタRG6、固定障害ログレジスタRG7の4種類である。
図6は、本発明の実施形態におけるメモリ監視の簡単な動作フローである。この図では、上から下へ時系列にステップが説明されており、破線で区切られたコラムは、同一のハードウェア、もしくは、ソフトウェアで行われるステップを表している。OSからの指示を受けて、ファームウェアは全てのメモリコントローラ1a〜1dのレジスタ12に書き込みを行い、メモリ監視の開始を指示する(ステップW1)。メモリ監視の開始指示を受けたメモリコントローラ1a〜1dは、自身に接続されているメモリ2の領域の読み込みを開始する(ステップW2a〜W2d)。メモリコントローラ1bにおいてエラーが検知されると(ステップW3b)、エラーの修正の可否、エラー領域のアドレス情報、通常アクセス時のエラーであるかメモリ監視時のエラーであるか、などの情報がメモリコントローラ1b内のレジスタ12にメモリ監視制御部11によって書き込まれる(ステップW4b)。レジスタ12に書き込まれた情報は、ファームウェアがアクセスし、縮退情報のチェック、再書き込みの指示などのエラー処理(ステップW5b)がなされた後、メモリ監視が再開される(ステップW6b)。
別のメモリコントローラにエラーが検出された(ステップW3c)場合にも、同様に、エラーの修正の可否、エラー領域のアドレス情報、通常アクセス時のエラーであるかメモリ監視時のエラーであるか、などの情報がメモリコントローラ1c内のレジスタ12にメモリ監視制御部11によって書き込まれる(ステップW4c)。レジスタ12に書き込まれた情報は、ファームウェアがアクセスし、縮退情報のチェック、再書き込みの指示などのエラー処理(ステップW5c)がなされた後、メモリ監視が再開される(ステップW6c)。
OSは一定時間間隔で、全てのメモリコントローラ1a〜1dのレジスタ12に対してアクセスし、エラーが発生していないかどうかを確認する(ステップW7)。メモリコントローラ1bと1cにおいてエラーの発生を確認すると、それらのエラーに関する情報をファームウェアに対して要求する(ステップW8)。エラーに関する情報を要求されたファームウェアは、エラーの発生したメモリコントローラ1bと1cにアクセスし、エラーに関する情報をOSに対して提供する(ステップW9)。OSは、この情報を受けて、縮退させるなどの処理を行う(ステップW10)。
ここで、稀なケースではあるが、同一のメモリコントローラにおいて2つのエラーが検出された場合について説明する。ステップW7においてOSがエラー情報にアクセスする前に、もう1つのエラーがメモリコントローラ1bによって検知された場合、ステップW4bでレジスタ11に書き込まれた情報は上書きされ、OSは後に発生したエラーの情報のみを得る。
図7は、本発明の実施形態におけるメモリ監視の詳細な動作フローである。最初に、OSがメモリ監視の開始を決定する(ステップS1)。この時、OSはCPUを通じて、ファームウェアに対してメモリ監視開始指示I1を送る。メモリ監視開始指示I1を受け取ったファームウェアは、メモリコントローラ1内の監視制御レジスタRG1の監視スタートビットB1を1にする(ステップS2)。
OSはメモリ監視の開始の決定後、エラー状態の確認の開始(ステップU1)、メモリ監視の終了(ステップT1)を行うが、これらの処理に関しては後に図8、図9を用いて説明する。
メモリコントローラ1は、監視制御レジスタRG1の監視スタートビットB1が1になったことを受けて、メモリ監視を開始する(ステップS3)。開始されたメモリ監視は、OSがメモリ監視停止指示I2をファームウェアに送るまで続けられ、その間、メモリコントローラ1はメモリの領域を読み込み(ステップS4)、全領域が終了すれば一定時間の間隔をおいて再び読み込みを開始する(ステップS3)。
その際に、メモリコントローラ1内のエラー診断部13はメモリ2内においてエラーが発生していないかをチェックし(ステップS5)、エラーが発生した時点でメモリ監視制御部11はメモリ監視を停止する(ステップS6)。その後、メモリ監視制御部11はエラーの種類に応じて、監視制御レジスタRG1の修正可能エラービットB7、もしくは、修正不能エラービットB8を1にする(ステップS7)。また、エラー位置の情報は、エラーアドレスレジスタRG4やエラーログレジスタRG5などに記録される。
次に、ファームウェアは、監視制御レジスタの修正可能エラービットB7、もしくは、修正不能エラービットB8が1になったことを受けて、縮退の確認を行う。縮退とは、メモリ2内のエラー領域を使用可能領域から除外することである。ファームウェアは、メモリコントローラ1の監視制御レジスタRG1に記録された情報などから、すでに縮退された領域かどうかを判断する(ステップS8)。
エラー領域が縮退された領域である場合、ファームウェアはその領域を回避してメモリ監視を再開する(ステップS9)。その際、メモリコントローラ1のリスタートアドレスレジスタRG2には、再開する領域のアドレス情報が設定され、監視制御レジスタRG1のリスタートアドレスビットB2に1が設定される。これらのレジスタの情報を受けて、メモリ監視制御部11はメモリ監視を再開する。
エラー領域が縮退されていない領域である場合、そのエラーが修復可能であるかどうかの確認がレジスタ11を通じて行われる(ステップS10)。ここで修復可能なエラーとはどのようなエラーかを説明する。本実施の形態では、エラー検出を実現するためにECC(Error
Check and Correct memory)メモリを用いる。修復可能なエラーとは、メモリに格納されたデータが変化することにより、不定期に発生するソフトエラーのことである。ソフトエラーとは、回路の問題で発生するものではなく、エラーの修復機能によりデータを修正すると再発しないデータエラーのことである。エラーの修復機能では、検出した修正可能なエラーに対して訂正コードに基づいてエラーの修正が行なわれる。訂正コードは、MACとメモリとの間でデータを処理する際にMAC内部で生成されるコードのことである。
修復可能なエラーであれば、本来書き込まれているべきデータを特定することが可能となるため、そのデータをもう一度書き込むようにファームウェアがメモリコントローラ1に対して指示を出す(ステップS11)。このとき、リライトアドレスレジスタRG3には、リライトすべき領域のアドレスが設定され、監視制御レジスタRG1のリライトビットには1が設定される。これらのレジスタ11への書き込みは、メモリコントローラ1内のメモリ監視制御部11によって処理され、メモリ監視制御部11は、本来書き込まれているべきデータのリライトを開始する。その時、再びエラーが発生するかどうかを監視し(ステップS13)、エラーが発生すればハードウェアに起因する固定障害であると判断され(ステップS14)、その情報は固定故障アドレスレジスタRG6や、固定故障ログレジスタRG7に記録される(ステップS15)。また、ステップS13においてエラーが発生していない場合は、ソフトエラーと判断される。この情報は、エラーアドレスレジスタRG4や、エラーログレジスタRG5に記録される(ステップS15)。ステップS15においてレジスタ11に記録された後、ファームウェアはメモリコントローラ1に対してメモリ監視の再開を指示する(ステップS16)。
また、ステップS10において修復不能なエラーであると判断された場合には、エラー領域にリライトは行われず、ファームウェアはメモリコントローラ1に対してメモリ監視の再開を指示する(ステップS16)。
メモリコントローラ1はメモリ監視を再開し(ステップS17)、エラーの発生の検出(ステップS5)に戻る。このメモリ監視の動作フローは、メモリ監視の停止処理が行われるまで繰り返される。
図8は、本発明の実施形態におけるメモリ監視停止の動作フローである。最初に、OSがメモリ監視の停止を決定する(ステップT1)。この時、OSはCPUを通じて、ファームウェアに対してメモリ監視停止指示I2を送る。メモリ監視開始指示I2を受け取ったファームウェアは、メモリコントローラ1内の監視制御レジスタRG1の監視停止ビットB3を1にする(ステップT2)。メモリコントローラ1内のメモリ監視部11は、監視制御レジスタRG1の監視停止ビットB3が1になったことを受けて、メモリ監視を停止する(ステップT3)。
図9は、本発明の実施形態におけるメモリ監視におけるOSのエラー監視の動作フローである。OSは、メモリ監視の開始後、エラーの検出状態の監視を開始する(ステップU1)。この時、OSはCPUを通じて、ファームウェアに対してメモリ監視確認指示I3を送る。メモリ監視確認指示I3を受け取ったファームウェアは、メモリコントローラ1内の監視制御レジスタRG1の各ビットを監視する(ステップU2)。このとき、エラーが検出されていなければステップU1に戻り、一定時間をおいて再びエラーの検出状態の確認が開始される。
メモリコントローラ1においてエラーが検出されていれば、OSはファームウェアに対してエラー情報を要求する(ステップU3)。これを受けて、ファームウェアはメモリコントローラ1のレジスタ12に格納された情報からOSに通知すべきエラー情報を作成し通知する(ステップU4)。ここでのエラー情報とは、OSが把握できる論理アドレスや、固定障害であるか、ソフトエラーであるかなどの情報である。ファームウェアからOSにエラー情報が通知され、OSはこれをもとに論理アドレスの処理などを行う(ステップU5)。ステップU5の後、ステップU1に戻り、一定時間をおいて再びエラーの検出状態の確認が開始される。
ファームウェアは、全てのメモリコントローラ1からの情報を統合し、論理アドレスに変換してOSにエラー情報を渡すため、OSは論理アドレスへの変換を行う必要がない。また、ファームウェアは、アーキテクチャに応じてメモリコントローラ1が検出したエラー位置のアドレス変換を行い、処理後の論理アドレスをOSに提供する。OSは、ファームウェアから受け取った論理アドレスに基づいてエラー処理を実行する。
このようにして、アーキテクチャの変更に伴う論理アドレスの変更をファームウェアによって行うことにより、追加のハードウェアを導入してコスト増や開発工数増を招くことなく、共通のOSを全てのアーキテクチャに適用することが可能となる。
大規模システムでは、メモリ実装量が多い上に高い信頼性が求められる。メモリの故障箇所を迅速に検出することは、大容量メモリで高い信頼性を維持するためには必須であり、メモリの診断や監視はそのために不可欠である。本発明は、ハードウェアの構成の違いに関わらず、共通のOSを用いてメモリの監視を行うことを可能にする。

Claims (7)

  1. OSとファームウェアを実行するCPUと、
    前記CPUに接続され、それぞれ複数のメモリへの書き込みと読み出しの制御と、エラーの監視を行う複数のメモリコントローラと、
    前記複数のメモリコントローラの各々に接続される前記複数のメモリとを有し、
    前記メモリコントローラは、当該メモリコントローラに接続される前記複数のメモリのメモリ領域を順次読み込み、エラー領域の監視を行い、
    前記ファームウェアは、前記エラー領域に対応する前記メモリコントローラが把握するアドレスを前記OSが把握する論理アドレスに変換して、前記OSに供給することを特徴とする情報処理装置。
  2. 請求項1において、
    前記ファームウェアは、前記メモリコントローラによって検知された前記エラー領域が、以前の読み込みによってエラー領域であると検知され使用可能領域から除外された領域かどうかを判断し、以前に除外されていればメモリ領域の読み込みを再開することを特徴とする情報処理装置。
  3. 請求項1において、
    前記ファームウェアは、前記エラー領域のデータが修復可能かどうかの判断を行い、前記エラー領域のデータが修復可能であれば、前記エラー領域を検知した前記メモリコントローラは、前記エラー領域に再書き込みを行うことを特徴とする情報処理装置。
  4. 請求項1において、
    前記複数のメモリコントローラは、それぞれ独立に前記メモリのエラーの監視を行うことを特徴とする情報処理装置。
  5. OSとファームウェアを実行するCPUと、
    前記CPUに接続され、複数のメモリへの書き込みと読み出しの制御と、エラーの監視を行う複数のメモリコントローラと、
    前記複数のメモリコントローラの各々に接続される前記複数のメモリとを有する情報処理装置において、
    前記メモリコントローラによって、当該メモリコントローラに接続される前記複数のメモリのメモリ領域を順次読み込み、エラー領域の監視を行う読込工程と、
    前記ファームウェアによって、前記エラー領域に対応する前記メモリコントローラが把握するアドレスを前記OSが把握する論理アドレスに変換して、前記OSに供給する変換工程とを有することを特徴とするメモリ異常監視方法。
  6. 請求項5において、
    前記ファームウェアによって、前記メモリコントローラによって検知された前記エラー領域が、以前の読み込みによってエラー領域であると検知され使用可能領域から除外された領域かどうかを判断し、以前に除外されていればメモリ領域の読み込みを再開する縮退判断工程を有することを特徴とするメモリ異常監視方法。
  7. 請求項5において、
    前記ファームウェアによって、前記エラー領域のデータが修復可能かどうかの判断を行い、前記エラー領域のデータが修復可能であれば、前記エラー領域を検知した前記メモリコントローラは、前記エラー領域に再書き込みを行う修復判断工程を有することを特徴とするメモリ異常監視方法。
JP2007509129A 2005-03-24 2005-03-24 ファームウェアによるメモリエラーアドレス管理 Expired - Fee Related JP4523639B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/005352 WO2006100776A1 (ja) 2005-03-24 2005-03-24 ファームウェアによるメモリエラーアドレス管理

Publications (2)

Publication Number Publication Date
JPWO2006100776A1 true JPWO2006100776A1 (ja) 2008-08-28
JP4523639B2 JP4523639B2 (ja) 2010-08-11

Family

ID=37023473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007509129A Expired - Fee Related JP4523639B2 (ja) 2005-03-24 2005-03-24 ファームウェアによるメモリエラーアドレス管理

Country Status (5)

Country Link
US (1) US8527806B2 (ja)
EP (1) EP1862909A4 (ja)
JP (1) JP4523639B2 (ja)
CN (1) CN100549986C (ja)
WO (1) WO2006100776A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195981B2 (en) * 2008-06-03 2012-06-05 International Business Machines Corporation Memory metadata used to handle memory errors without process termination
US7953914B2 (en) * 2008-06-03 2011-05-31 International Business Machines Corporation Clearing interrupts raised while performing operating system critical tasks
US9117123B2 (en) * 2010-07-05 2015-08-25 Magna Electronics Inc. Vehicular rear view camera display system with lifecheck function
JP5473841B2 (ja) * 2010-09-08 2014-04-16 三菱重工業株式会社 中央処理演算装置、及び異常検査方法
KR20120134919A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 메모리 장치
US8756363B2 (en) * 2011-07-07 2014-06-17 Oracle International Corporation Efficient storage of memory version data
US9063855B2 (en) * 2013-03-14 2015-06-23 Intel Corporation Fault handling at a transaction level by employing a token and a source-to-destination paradigm in a processor-based system
WO2014158161A1 (en) * 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain
JP6255282B2 (ja) * 2014-02-28 2017-12-27 ルネサスエレクトロニクス株式会社 半導体装置
US9672298B2 (en) 2014-05-01 2017-06-06 Oracle International Corporation Precise excecution of versioned store instructions
US9195593B1 (en) 2014-09-27 2015-11-24 Oracle International Corporation Hardware assisted object memory migration
WO2016133518A1 (en) * 2015-02-19 2016-08-25 Hewlett Packard Enterprise Development Lp Enabling advanced error correction control on subset of memory controllers
CN110870286B (zh) 2018-06-28 2021-07-09 华为技术有限公司 容错处理的方法、装置和服务器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5462735A (en) * 1977-10-28 1979-05-21 Toshiba Corp Memory control system
JPH01106149A (ja) * 1987-10-20 1989-04-24 Fujitsu Ltd 情報処理装置
JPH0883218A (ja) * 1994-09-14 1996-03-26 Toshiba Corp 計算機システム
JPH08101802A (ja) * 1994-09-30 1996-04-16 Toshiba Corp コンピュータシステム
JP2000057016A (ja) * 1998-08-13 2000-02-25 Nec Corp 軽障害処理システム
JP2001282618A (ja) * 2000-03-30 2001-10-12 Nec Corp 処理装置
JP2002140283A (ja) * 2000-08-24 2002-05-17 Internatl Business Mach Corp <Ibm> データ処理システムの複数の拡張スロットにメモリを割り振る方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3478324A (en) * 1966-08-02 1969-11-11 Gen Electric Data processing system including means for detecting illegal actions and generating codes in response thereto
US5289293A (en) * 1989-03-14 1994-02-22 Canon Kabushiki Kaisha Pixel density conversion and processing
US5278961A (en) * 1990-02-22 1994-01-11 Hewlett-Packard Company Physical address to logical address translator for memory management units
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US5706407A (en) 1993-12-28 1998-01-06 Kabushiki Kaisha Toshiba System for reallocation of memory banks in memory sized order
JPH07210395A (ja) * 1994-01-10 1995-08-11 Fujitsu Ltd ファームウェアメンテナンス方式
US5978952A (en) * 1996-12-31 1999-11-02 Intel Corporation Time-distributed ECC scrubbing to correct memory errors
US6158025A (en) 1997-07-28 2000-12-05 Intergraph Corporation Apparatus and method for memory error detection
JP3214444B2 (ja) * 1998-05-19 2001-10-02 日本電気株式会社 磁気ディスク装置の制御方法と制御装置
JP3839215B2 (ja) * 2000-03-14 2006-11-01 株式会社日立製作所 誤り検出・訂正方法、計算機システムの主記憶制御装置、及び計算機システム
US6785892B1 (en) * 2000-06-23 2004-08-31 Unisys Communications between partitioned host processors and management processor
US7076706B2 (en) * 2001-04-24 2006-07-11 International Business Machines Corporation Method and apparatus for ABIST diagnostics
US6775796B2 (en) * 2001-08-31 2004-08-10 International Business Machines Corporation Creation of memory array bitmaps using logical to physical server
US6948094B2 (en) * 2001-09-28 2005-09-20 Intel Corporation Method of correcting a machine check error
JP3579389B2 (ja) * 2001-11-30 2004-10-20 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ復旧方法
JP4123942B2 (ja) * 2003-01-14 2008-07-23 株式会社日立製作所 情報処理装置
US7058782B2 (en) 2003-07-31 2006-06-06 International Business Machines Corporation Method and apparatus for coordinating dynamic memory deallocation with a redundant bit line steering mechanism
US7328380B2 (en) * 2003-09-11 2008-02-05 Hewlett-Packard Development Company, L.P. Memory scrubbing logic
US7321990B2 (en) * 2003-12-30 2008-01-22 Intel Corporation System software to self-migrate from a faulty memory location to a safe memory location
US8122319B2 (en) * 2007-01-24 2012-02-21 Charles I. Peddle Page-based failure management for flash memory
US7900084B2 (en) * 2007-12-21 2011-03-01 Intel Corporation Reliable memory for memory controller with multiple channels

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5462735A (en) * 1977-10-28 1979-05-21 Toshiba Corp Memory control system
JPH01106149A (ja) * 1987-10-20 1989-04-24 Fujitsu Ltd 情報処理装置
JPH0883218A (ja) * 1994-09-14 1996-03-26 Toshiba Corp 計算機システム
JPH08101802A (ja) * 1994-09-30 1996-04-16 Toshiba Corp コンピュータシステム
JP2000057016A (ja) * 1998-08-13 2000-02-25 Nec Corp 軽障害処理システム
JP2001282618A (ja) * 2000-03-30 2001-10-12 Nec Corp 処理装置
JP2002140283A (ja) * 2000-08-24 2002-05-17 Internatl Business Mach Corp <Ibm> データ処理システムの複数の拡張スロットにメモリを割り振る方法

Also Published As

Publication number Publication date
WO2006100776A1 (ja) 2006-09-28
CN100549986C (zh) 2009-10-14
US20080022154A1 (en) 2008-01-24
CN101147135A (zh) 2008-03-19
JP4523639B2 (ja) 2010-08-11
EP1862909A4 (en) 2009-09-09
EP1862909A1 (en) 2007-12-05
US8527806B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
JP4523639B2 (ja) ファームウェアによるメモリエラーアドレス管理
JP2548480B2 (ja) アレイディスク装置のディスク装置診断方法
JPH11272427A (ja) データ退避方法および外部記憶装置
JPH07117903B2 (ja) 障害回復方法
JPH0950424A (ja) ダンプ採取装置およびダンプ採取方法
JP4535371B2 (ja) ディスクアレイ制御プログラム、方法及び装置
JP5440073B2 (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
KR100922409B1 (ko) 정보 처리 장치 및 메모리 이상 감시 방법
JP4664191B2 (ja) ディスクコントローラ
JP2005092695A (ja) 二重化コントローラ、その等値化モード決定方法
JP2010061258A (ja) デュプレックスプロセッサシステム及びプロセッサ二重化方法
JPH11154058A (ja) ディスクアレイ装置及びデータ保守方法
JP4853083B2 (ja) コンピュータシステム、データ正常性確認方法、及び、プログラム
JP2017151511A (ja) 情報処理装置、動作ログ取得方法および動作ログ取得プログラム
JP3191282B2 (ja) 障害情報データ収集方式
JP2000235458A (ja) 補助記憶装置およびこの補助記憶装置を搭載した情報処理装置
JPH10187202A (ja) マイクロプロセッサ制御装置
JP4494263B2 (ja) サービスシステムの冗長化方式
JP2000207289A (ja) デ―タ誤り検出方式及びその方法
JP3340284B2 (ja) 冗長システム
JPS60110047A (ja) エラ−訂正方式
JPH07244536A (ja) レジューム支援機構
JPH07244613A (ja) 二重化メモリ制御方法
JPS6356751A (ja) メモリパトロ−ル制御方式
JP2001273197A (ja) フラッシュメモリの書き換え方法。

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100527

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees