JP7306945B2 - メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム - Google Patents

メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム Download PDF

Info

Publication number
JP7306945B2
JP7306945B2 JP2019182808A JP2019182808A JP7306945B2 JP 7306945 B2 JP7306945 B2 JP 7306945B2 JP 2019182808 A JP2019182808 A JP 2019182808A JP 2019182808 A JP2019182808 A JP 2019182808A JP 7306945 B2 JP7306945 B2 JP 7306945B2
Authority
JP
Japan
Prior art keywords
error
memory
layers
occurred
bit
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.)
Active
Application number
JP2019182808A
Other languages
English (en)
Other versions
JP2021061077A (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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2019182808A priority Critical patent/JP7306945B2/ja
Priority to US17/023,371 priority patent/US11321166B2/en
Priority to DE102020005865.5A priority patent/DE102020005865A1/de
Priority to CN202011034079.1A priority patent/CN112612655A/zh
Publication of JP2021061077A publication Critical patent/JP2021061077A/ja
Application granted granted Critical
Publication of JP7306945B2 publication Critical patent/JP7306945B2/ja
Active 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/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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • 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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/31816Soft error testing; Soft error rate evaluation; Single event testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明は、例えば、3次元状に積層されたメモリに生じたエラーの原因を判別するメモリエラー判別装置及びメモリエラー判別用コンピュータプログラムに関する。
3次元状に積層されたメモリに放射線が入射し、そのメモリ内のシリコン原子に衝突することにより2次イオンが生成され、その2次イオンの飛翔経路にあるシリコン原子から叩き出された電子がメモリセル内の電荷を反転させることで、メモリにおいてソフトエラーを引き起こすことが知られている。そこで、そのような放射線に起因するソフトエラーに対する耐性を向上する技術が提案されている(例えば、特許文献1を参照)。この技術では、同一の構造を有するN個のメモリ回路がそれぞれ搭載され、かつ垂直方向に積層されたN個のコアダイを有するメモリシステムにN個のデータを書き込む際、メモリ回路ごとに異なる書き込みアドレスにデータが格納される。
また、FPGAにおいて、検出されたソフトエラーの位置が機能ユニットの未使用部である場合、制御装置の運転を継続し、一方、ソフトエラーの位置が機能ユニットの仕様部である場合、予め定められた処理を実行するようにして、不要な停止を防止する技術が提案されている(例えば、特許文献2を参照)。さらに、ECCを保持したメモリにおいて、メモリが1ビットエラーを発生した時、ハードエラーかソフトエラーかを判断し、ハードエラーが発生したらCPUに割込みにより報告を行う技術が提案されている(例えば、特許文献3を参照)。
特開2019-67469号公報 特開2018-128820号公報 特開平5-225077号公報
メモリに何らかのエラーが生じた際、そのエラーの原因が正確に判別できることが好ましい。エラーの原因が正確に判別できれば、エラーが生じたメモリに対して適切な措置を講じることが可能となるためである。特に、放射線に起因するソフトエラーは、メモリ自体が故障していなくても生じるものであるため、生じたエラーが放射線に起因するソフトエラーであるか否かを判別することは有用である。しかし、特許文献1に記載の技術及び特許文献2に記載の技術は、メモリに何らかのエラーが生じても、その原因を判別するものではない。また、特許文献3に記載の技術では、メモリに生じた1ビットエラーがハードエラーによるものかソフトエラーによるものかは判断されるものの、そのエラーの原因は判別されない。
一つの側面では、3次元状に積層されたメモリにおいて生じたエラーがそのメモリに入射した放射線に起因するソフトエラーか否かを判別可能なメモリエラー判別装置を提供することを目的とする。
一つの実施形態によれば、メモリエラー判別装置が提供される。このメモリエラー判別装置は、3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知するエラー検知部と、複数の層のそれぞれにおいてエラーが生じたメモリ素子の位置を特定するエラー位置特定部と、エラーが生じたメモリ素子の位置が複数の層のうちの2以上の所定数以上の層にわたって直線状に並ぶ場合に、メモリに生じたエラーがそのメモリに入射した放射線に起因するソフトエラーであると判定する判定部と、を有する。
他の形態によれば、メモリエラー判別用コンピュータプログラムが提供される。このメモリエラー判別用コンピュータプログラムは、3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知し、複数の層のそれぞれにおいてエラーが生じたメモリ素子の位置を特定し、エラーが生じたメモリ素子の位置が複数の層のうちの2以上の所定数以上の層にわたって直線状に並ぶ場合に、メモリに生じたエラーがそのメモリに入射した放射線に起因するソフトエラーであると判定する、ことをコンピュータに実行させるための命令を含む。
一つの側面によれば、3次元状に積層されたメモリにおいて生じたエラーがそのメモリに入射した放射線に起因するソフトエラーか否かを判別することができる。
メモリエラー判別装置の概略構成図である。 メモリエラー判別処理に関連するプロセッサの機能ブロック図である。 (a)は、放射線に起因してメモリにソフトエラーが生じる場合のエラーとなるメモリ素子の分布の一例を示す模式図である。(b)は、他の理由によりメモリにエラーが生じる場合のエラーとなるメモリ素子の分布の一例を示す模式図である。 メモリエラー判別処理の動作フローチャートである。 変形例による、メモリエラー判別処理の概要を説明するための模式図である。
以下、図を参照しつつ、メモリエラー判別装置、及び、メモリエラー判別装置にて動作するメモリエラー判別用コンピュータプログラムについて説明する。このメモリエラー判別装置は、3次元状に積層されたメモリ、すなわち、2次元状にメモリ素子が配列された層を複数有するメモリに生じたエラーが、そのメモリに入射した放射線(例えば、α線、β線、γ線、中性子線、X線)に起因するものか否か判別する。本願の発明者は、放射線がメモリに入射した場合、その放射線の飛翔経路に沿ったメモリ素子にエラーが生じ得ることに着目した。そこで、このメモリエラー判別装置は、3次元状に積層されたメモリの各層にデータを書き込む際、誤り訂正符号または誤り検出符号にてそのデータを符号化する。このメモリエラー判別装置は、メモリの複数の層にわたって、誤り訂正符号または誤り検出符号によりエラーが生じたことが検出されると、そのエラーが生じたメモリ素子が直線状に並んでいるか否かを判別する。そしてこのメモリエラー判別装置は、エラーが生じたメモリ素子が直線状に並んでいる場合、そのエラーが、メモリに入射した放射線に起因するソフトエラーであると判定する。
図1は、メモリエラー判別装置の概略構成図である。メモリエラー判別装置1は、例えば、コンピュータ数値制御される工作機械、ロボットといった機械装置あるいはコンピュータに実装される。そしてメモリエラー判別装置1は、エラーの原因の判別対象となる、3次元状に積層されたメモリ2を制御するためのメモリコントローラ11と、汎用メモリコントローラ12と、内蔵メモリ13と、割込みコントローラ14と、通信インターフェース15と、プロセッサ16とを有する。メモリエラー判別装置1が有するこれらの各部は、例えば、一つの集積回路における、それらの各部の処理を実行するための専用の回路として実装される。すなわち、メモリエラー判別装置1自体が一つのプロセッサユニットとして構成される。あるいは、メモリエラー判別装置1が有するこれらの各部は、別個の回路として構成されてもよい。さらに、メモリエラー判別装置1が有するこれらの各部は、例えば、バスといった信号線を介して互いに通信可能に接続される。
本実施形態では、エラーの原因の判別対象となる、3次元状に積層されたメモリ2は、2次元状に配列されたメモリ素子の層を複数有する、3次元ダイナミック・ランダム・アクセス・メモリ(3D Dynamic Random Access Memory, 3D-DRAM)であり、例えば、メモリエラー判別装置1が組み込まれる装置において実行されるアプリケーションにて使用される各種のデータを記憶する。なお、メモリ2は、3D-DRAMに限られず、3次元状に積層されたメモリであればよく、例えば、3次元に積層されたNAND型のフラッシュメモリ(登録商標)であってもよい。
メモリコントローラ11は、メモリ2と接続され、プロセッサ16からの指示に従ってメモリ2を制御する。すなわち、メモリコントローラ11は、プロセッサ16から受け取った、誤り検出符号または誤り訂正符号により符号化されたデータをメモリ2に書き込む。あるいは、メモリコントローラ11は、メモリ2から符号化されたデータを読み込み、読み込んだデータをプロセッサ16へわたす。さらに、メモリコントローラ11は、メモリ2のリフレッシュ処理を実行する。なお本実施形態では、プロセッサ16がメモリ2に記憶するデータの符号化を実行するが、メモリコントローラ11がメモリ2に記憶するデータを符号化してもよい。
汎用メモリコントローラ12は、不揮発性メモリ3と接続され、プロセッサ16からの指示に従って不揮発性メモリ3を制御する。なお、不揮発性メモリ3は、記憶部の一例であり、例えば、メモリエラー判別処理用のコンピュータプログラム及びその処理で使用される各種の情報を記憶する。なお、メモリエラー判別処理で使用される情報には、例えば、メモリ2の各メモリ素子について、そのメモリ素子のビットアドレスと3次元空間におけるそのメモリ素子の位置座標との対応関係を表す位置テーブルが含まれる。さらに、不揮発性メモリ3は、ブート用のコンピュータプログラム及びブート用のコンピュータプログラムが参照する情報を記憶してもよい。すなわち、汎用メモリコントローラ12は、プロセッサ16または割込みコントローラ14からの指示に従って、不揮発性メモリ3からブート用のコンピュータプログラムなどを読み込み、読み込んだプログラムなどをプロセッサ16へわたす。
内蔵メモリ13は、記憶部の他の一例であり、例えば、スタティック・ランダム・アクセス・メモリ(Static Random Access Memory, SRAM)であり、プロセッサ16により実行されるアプリケーションが使用するデータ、あるいは、メモリエラー判別処理の途中で生成されるデータまたは不揮発性メモリ3から読み込んだ情報などを一時的に記憶する。
割込みコントローラ14は、割込み処理を実行する。本実施形態では、割込みコントローラ14は、例えば、プロセッサ16上で動作するアプリケーションをプロセッサ16が実行しているときに、メモリ2に生じた、自動的に訂正できないエラー(以下、誤り訂正不能なエラーと呼ぶ)を検知した場合に割込み処理を実行する。その際、割込みコントローラ14は、プロセッサ16にメモリエラー判別処理の実行を指示する。なお、割込みコントローラ14自身が、後述するメモリエラー判別処理を実行してもよい。
通信インターフェース15は、メモリエラー判別装置1を、報知部の一例である、液晶ディスプレイといった表示装置4、キーボードといった入力装置(図示せず)、及び、ハードディスク装置といった外部記憶装置(図示せず)と接続するためのインターフェースである。通信インターフェース15は、例えば、プロセッサ16から受け取った、メモリ2に生じたエラーの原因の判定結果を表す情報(例えば、その判定結果を表すメッセージ)などを、表示装置4あるいは外部記憶装置へ出力する。また、通信インターフェース15は、入力装置から受け取った操作信号などを割込みコントローラ14またはプロセッサ16へわたす。
なお、外部記憶装置が位置テーブルを記憶してもよい。この場合には、外部記憶装置は、記憶部の他の一例であり、通信インターフェース15は、プロセッサ16からの指示に従って、外部記憶装置から位置テーブルを読み込み、読み込んだ位置テーブルをプロセッサ16へわたす。
プロセッサ16は、例えば、一つまたは複数のマイクロプロセッサユニット(microprocessor unit, MPU)を有し、メモリエラー判別装置1が実装された装置に関する各種アプリケーションを実行する。さらに、プロセッサ16は、メモリ2に対するメモリエラー判別処理を実行する。さらに、プロセッサ16は、各種の処理を実行する際に、必要に応じてメモリ2または内蔵メモリ13にその処理で使用されるデータなどを書き込み、あるいは、メモリ2、不揮発性メモリ3または内蔵メモリ13からその処理で使用されるデータなどを読み込む。なお、メモリコントローラ11が、後述するメモリエラー判別処理を実行してもよい。
図2は、メモリエラー判別処理に関連するプロセッサ16の機能ブロック図である。プロセッサ16は、符号化部21と、エラー検知部22と、エラー位置特定部23と、判定部24とを有する。プロセッサ16が有するこれらの各部は、例えば、プロセッサ16上で実行されるコンピュータプログラムにより実現されるソフトウェアモジュールである。あるいは、プロセッサ16が有するこれらの各部は、プロセッサ16に設けられる専用の演算回路であってもよい。また、プロセッサ16が有するこれらの各部のうち、エラー検知部22、エラー位置特定部23及び判定部24が、メモリエラー判別処理を実行する。
符号化部21は、プロセッサ16上で動作するアプリケーションに従ってデータをメモリ2に書き込む場合、そのデータを、所定のビット長を持つビット列ごとに分割し、そのビット列ごとに誤り訂正符号(Error Correction Code, ECC)または誤り検出符号(Error Detection Code, EDC)を用いて符号化することで符号語を生成する。本実施形態では、符号化部21は、拡張ハミング符号といった、2ビットの誤り検出能力と1ビットの誤り訂正能力を持つSingle-bit Error Correction Double-bit Error Detection(SECDED)符号を、ビット列の符号化に用いる。そして符号化部21は、符号語ごとに、メモリコントローラ11を介してメモリ2に書き込む。
エラー検知部22は、割込みコントローラ14からメモリエラー判別処理の実行を指示されると、メモリ2においてエラーが生じているか否か判定する。そのために、エラー検知部22は、メモリ2の各層に書き込まれた各符号語を、メモリコントローラ11を介して読み込み、符号語ごとに誤りの有無を判定する。プロセッサ16はアクセスを行っているメモリのアドレスを把握できるため、エラー検知部22は、エラーの発生している符号語の格納されているアドレスを把握することができる。本実施形態では、SECDED符号が符号語の生成に用いられているので、エラー検知部22は、着目する符号語と検査行列の積を演算して得られるビット列により、その着目する符号語における、1ビットの訂正可能な誤り、または、2ビットの誤りを検知できる。エラー検知部22は、各符号語のうち、1ビットの訂正可能な誤りが検知された符号語における、その検知されたビットが記憶されたメモリ素子(以下、エラーが生じたメモリ素子あるいはエラーが検知されたメモリ素子と呼ぶことがある)のビットアドレス、及び、2ビットの誤りが検知された符号語が記憶されたメモリ領域のアドレスを特定する。
エラー検知部22は、メモリ2の各層について、エラーが生じたメモリ素子のビットアドレスをエラー位置特定部23へ通知する。さらに、エラー検知部22は、2ビットの誤りが検知された符号語が記憶されたメモリ領域のアドレスを、エラー位置特定部23へ通知してもよい。
エラー位置特定部23は、メモリ2の各層について、エラーが生じたメモリ素子の3次元空間での座標、すなわち、エラー位置を特定する。本実施形態では、エラー位置特定部23は、汎用メモリコントローラ12を介して不揮発性メモリ3から位置テーブルを読み込み、その位置テーブルを参照することで、エラーが生じたメモリ素子のビットアドレスに対応する3次元空間の位置座標を特定し、その特定した位置座標をエラー位置とする。そしてエラー位置特定部23は、エラーが生じたメモリ素子のそれぞれのエラー位置を判定部24へ通知する。同様に、エラー位置特定部23は、2ビットの誤りが検知された符号語が記憶されたメモリ領域に含まれる各メモリ素子のエラー位置を特定してもよい。そしてエラー位置特定部23は、2ビットの誤りが検知された符号語が記憶されたメモリ領域に含まれる各メモリ素子のエラー位置も、判定部24へ通知してもよい。
判定部24は、エラーが生じたメモリ素子のそれぞれのエラー位置に基づいて、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーか否か判定する。
図3(a)は、放射線に起因してメモリ2にソフトエラーが生じる場合のエラーとなるメモリ素子の分布の一例を示す模式図である。図3(b)は、他の理由によりメモリ2にエラーが生じる場合のエラーとなるメモリ素子の分布の一例を示す模式図である。
図3(a)に示されるように、放射線がメモリ2に入射する場合、一般に、放射線の入射経路301は直線となる。したがって、メモリ2に入射した放射線に起因してメモリ2にソフトエラーが生じる場合、エラーが生じたメモリ素子302は、放射線の入射経路301に沿って直線状に並ぶことになる。
一方、図3(b)に示されるように、他の理由によりメモリ2にエラーが生じる場合には、エラーが生じたメモリ素子302は直線状に並ぶとは限らない。
そこで、判定部24は、エラーが生じた個々のメモリ素子の位置、すなわち、個々のエラー位置が、メモリ2の複数の層にわたって直線状に並んでいるか否か判定し、直線状に並んでいる場合、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定する。本実施形態では、メモリ2の少なくとも一つの層に記憶された何れかの符号語について2ビットの誤りが検知され、かつ、メモリ2の複数の層の他の層のうちの3層(以下、説明の便宜上、単ビットエラー層と呼ぶ)以上について、何れかの符号語に1ビットの誤りが検知されている場合、判定部24は、単ビットエラー層のうちの二つの層のエラー位置を結ぶ直線を算出する。そして判定部24は、各単ビットエラー層のエラー位置のうち、その直線上のエラー位置が所定数以上存在する場合、エラーが生じた個々のメモリ素子が、メモリ2の複数の層にわたって直線状に並んでいると判定する。すなわち、判定部24は、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定する。なお、所定数は、例えば、単ビットエラー層の総数あるいは単ビットエラー層の総数に1未満の所定数(例えば、0.5~0.9)を乗じて得られる数とすることができる。また、判定部24は、エラー位置と直線間の距離が所定距離(例えば、メモリ素子間のピッチに相当する距離)以下である場合、エラー位置はその直線上であると判定してもよい。例えば、図3(a)に示される例では、メモリ2の層311~314のうち、層311、313及び314においてエラーが生じたメモリ素子302が一つだけ検知されている。なお、層312では複数のメモリ素子においてエラーが生じているため、それらのメモリ素子に記憶されている符号語に関しては、エラーとなるビットが特定されない(すなわち、層312に記憶されている符号語に関して誤り訂正不能なエラーが検知されることになる)。したがって、判定部24は、層311、313及び314のそれぞれのメモリ素子302のエラー位置が直線状に並ぶことから、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定することができる。
変形例によれば、判定部24は、各単ビットエラー層のエラー位置の集合に対してハフ変換を実行することで、直線上にあるエラー位置の数が最も多い直線を求め、その直線上のエラー位置の数が所定数以上となる場合に、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定してもよい。
また、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するものである場合、誤り訂正不能なエラーの原因となった符号語、すなわち、2ビットの誤りが検出された符号語が記憶されたメモリ領域も、エラー位置が並ぶ直線上に位置している可能性が高い。そこで、判定部24は、エラー位置が並ぶ直線が、誤り訂正不能なエラーの原因となった符号語が記憶されたメモリ領域を通っている場合に限り、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定してもよい。なお、この場合、判定部24は、エラー位置特定部23から通知された、誤り訂正不能なエラーの原因となった符号語が記憶されたメモリ領域の3次元空間における位置に基づいて、エラー位置が並ぶ直線がそのメモリ領域を通っているか否かを判定すればよい。
判定部24は、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定した場合、通信インターフェース15を介して、表示装置4に、その判定結果を表すメッセージを表示させる。これにより、その判定結果がユーザに報知される。さらに、判定部24は、表示装置4に、ハードウェアの交換が不要であることを示すメッセージを表示させてもよい。
図4は、メモリエラー判別処理の動作フローチャートである。プロセッサ16は、割込みコントローラ14からメモリエラー判別処理の実行を指示されると、下記の動作フローチャートに従って、メモリエラー判別処理を実行する。
プロセッサ16のエラー検知部22は、メモリ2の各層に記憶されている符号語のうち、誤り訂正可能な1ビットのエラーが生じた符号語を検知し、検知した符号語のそれぞれについて、エラーが生じたメモリ素子のビットアドレスを特定する(ステップS101)。
プロセッサ16のエラー位置特定部23は、エラーが生じたメモリ素子のそれぞれについて、そのビットアドレスに基づいて3次元空間のエラー位置を特定する(ステップS102)。
プロセッサ16の判定部24は、特定されたエラー位置がメモリ2の複数の層にわたって直線状に並んでいるか否か判定する(ステップS103)。特定されたエラー位置がメモリ2の複数の層にわたって直線状に並んでいる場合(ステップS103-Yes)、判定部24は、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定する。そして判定部24は、その判定結果を表すメッセージを、通信インターフェース15を介して表示装置4に表示させる(ステップS104)。
ステップS104の後、あるいは、ステップS103にて特定されたエラー位置がメモリ2の複数の層にわたって直線状に並んでいない場合(ステップS103-No)、プロセッサ16は、メモリエラー判別処理を終了する。
以上に説明してきたように、このメモリエラー判別装置は、3次元状に積層されたメモリの各層に記憶されている、誤り検出符号または誤り訂正符号により符号化されたデータに基づいて、エラーが生じたメモリ素子の位置を特定する。このメモリエラー判別装置は、エラーが生じたメモリ素子のそれぞれの位置に基づいて、エラーが生じたメモリ素子が複数の層にわたって直線状に並んでいるか否か判定する。そしてこのメモリエラー判別装置は、エラーが生じたメモリ素子が複数の層にわたって直線状に並んでいる場合、メモリに生じたエラーが、放射線がメモリに入射したことに起因するソフトエラーであると判定する。そのため、このメモリエラー判別装置は、3次元状に積層されたメモリにおいて生じたエラーが放射線に起因するものか否かを判別できる。その結果として、メモリに誤り訂正不能なエラーが生じたときに、ユーザが、メモリの交換が必要か不要かを判断することが容易となる。
変形例によれば、判定部24は、メモリ2の各層について、所定数(例えば、3×3個、あるいは、5×5個)のメモリ素子ごとに一つのブロックを設定してもよい。そして判定部24は、ブロック内の何れか一つのメモリ素子にエラーが生じた場合、エラーが生じたメモリ素子が属するブロック内の全てのメモリ素子にエラーが生じたとして、複数の層にわたってエラー位置が直線状に並んでいるか否かを判定してもよい。
図5は、この変形例による、メモリエラー判別処理の概要を説明するための模式図である。この例では、メモリ2の層511~514について3個のメモリ素子ごとに一つのブロックが設定される。そしてこの例では、メモリ素子501~504のそれぞれにおいてエラーが生じている。そのため、層511において、メモリ素子501を含むブロック521内の各メモリ素子についてエラーが生じているとみなされる。同様に、層512におけるメモリ素子502を含むブロック522、層513におけるメモリ素子503を含むブロック523、及び、層514におけるメモリ素子504を含むブロック524のそれぞれについて、そのブロックに含まれる各メモリ素子にエラーが生じているとみなされる。そしてこの場合、矢印321に示すように、ブロック521~524内のメモリ素子が直線状に並んでいるので、判定部24は、メモリ2に生じたエラーが、放射線がメモリに入射したことに起因するソフトエラーであると判定する。この変形例によれば、メモリ2に入射した放射線と衝突したシリコン原子の位置の関係で、エラーが生じた個々のメモリ素子の位置が放射線の飛翔経路に対して若干ばらついて分布する場合でも、判定部24は、メモリに生じたエラーが、放射線がメモリに入射したことに起因するものであるか否かを精度良く判定できる。
なお、上記の変形例において、判定部24は、個々のブロックを一つの符号語が書きこまれるメモリ領域としてもよい。さらにこの場合、符号化部21は、個々のビット列に対して、SECDED符号の代わりに、parity符号または巡回冗長検査(Cyclic Redundancy Check, CRC)符号といった誤り検出符号を適用してもよい。個々のブロックが、一つの符号語が書きこまれるメモリ領域に設定される場合には、判定部24は、誤り訂正不能なエラーが生じた符号語が記憶されたメモリ領域を含む層も、複数の層にわたってエラー位置が直線状に並んでいるか否かの判定に利用できる。そのため、判定部24は、エラーが生じたメモリ素子を含む層の数が3層である場合でも、メモリ2に生じたエラーが、放射線がメモリに入射したことに起因するソフトエラーであるか否かを判定できる。
なお、メモリ2に同時に複数の放射線が入射することは稀である。そのため、上記の実施形態または変形例において、所定数(例えば、2~3)以上の層のそれぞれにおいて、互いに異なる複数の箇所でエラーが生じている場合、すなわち、互いに異なる複数のメモリ素子でエラーが生じている場合、判定部24は、メモリ2に生じたエラーは、放射線に起因するものではないと判定してもよい。ただし、放射線によって同じ層内の互いに近接する複数のメモリ素子にエラーが生じることもあるので、同じブロック内、あるいは、隣接する二つのブロック内で複数のメモリ素子にエラーが生じている場合には、それら複数のメモリ素子に生じたエラーは、一つの箇所で生じたものとしてもよい。そして判定部24は、通信インターフェース15を介して、表示装置4に、メモリ2に生じたエラーは、放射線に起因するものではないことを表すメッセージを表示させてもよい。この変形例によれば、判定部24は、放射線以外の原因によりメモリに生じたエラーを、放射線に起因するものと誤判定することを抑制できる。
また他の変形例によれば、メモリ2に対して放射線が入射する方向の範囲が想定される場合には、その範囲(以下、入射方向範囲と呼ぶ)を表す情報が不揮発性メモリ3または外部記憶装置に予め記憶されてもよい。そして判定部24は、その入射方向範囲に含まれる方向の直線についてのみ、複数の層にわたってエラー位置が直線状に並んでいるか否かを判定してもよい。またこの場合、エラーが生じたメモリ素子を含む層の数が2層しかない場合でも、判定部24は、その2層のそれぞれのエラー位置を結ぶ直線の方向が入射方向範囲に含まれる場合に限り、複数の層にわたってエラー位置が直線状に並んでいる、すなわち、メモリ2に生じたエラーが、放射線がメモリに入射したことに起因するソフトエラーであると判定してもよい。
また、放射線の一種であるα線がメモリ2に入射して、何れかの層においてシリコン原子に衝突すると、その衝突位置から2次イオンが生じるので、その衝突箇所の周囲の複数のメモリ素子においてエラーが生じることがある。このような場合、エラーが生じたメモリ素子が複数含まれる層は、α線の飛翔経路の終端に位置する可能性が高い。そこで、他の変形例によれば、判定部24は、複数の層のエラー位置が並ぶ直線の何れか一端の層において、エラーが生じたメモリ素子が複数検知されている場合、メモリ2に生じたエラーが、α線がメモリ2に入射したことに起因するソフトエラーであると判定してもよい。そして判定部24は、その判定結果を表すメッセージを、通信インターフェース15を介して表示装置4に表示させてもよい。
さらに他の変形例によれば、判定部24は、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定した場合、その判定結果及び判定日時を、エラー履歴情報として外部記憶装置に記憶させてもよい。これにより、ユーザは、エラー履歴情報を参照することで、放射線に起因するソフトエラーの発生頻度を調べることができる。
さらに他の変形例によれば、判定部24は、メモリ2に生じたエラーが、放射線がメモリ2に入射したことに起因するソフトエラーであると判定した場合において、誤り訂正不能なエラーが生じた符号語が記憶されるメモリ領域について、そのメモリ領域に書き込まれた符号語に対応するビット列が内蔵メモリ13に残っているか否か判定する。そしてそのビット列が内蔵メモリ13に残っている場合、判定部24は、再度そのビット列を符号化してメモリ2のメモリ領域に書き込んでもよい。
さらに他の変形例によれば、プロセッサ16は、所定の周期ごと、あるいは、所定のタイミングにおいて、メモリ2に対してメモリエラー判別処理を実行してもよい。この場合には、プロセッサ16は、メモリ2に誤り訂正不能なエラーが生じていなくても、放射線がメモリ2に入射したことに起因するソフトエラーを検知することができる。
また、上記の実施形態または変形例による、メモリエラー判別装置1のプロセッサ16の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
1 メモリエラー判別装置
2 メモリ
3 不揮発性メモリ
4 表示装置
11 メモリコントローラ
12 汎用メモリコントローラ
13 内蔵メモリ
14 割込みコントローラ
15 通信インターフェース
16 プロセッサ
21 符号化部
22 エラー検知部
23 エラー位置特定部
24 判定部

Claims (7)

  1. 3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知するエラー検知部と、
    前記複数の層のそれぞれにおいて前記エラーが生じたメモリ素子の位置を特定するエラー位置特定部と、
    前記エラーが生じたメモリ素子の位置が前記複数の層のうちの以上の所定数以上の層にわたって直線状に並ぶ場合に、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定する判定部と、
    を有し、
    前記メモリに記憶されるデータは所定のビット長を持つビット列ごとに分割され、前記ビット列ごとに、当該ビット列を1ビットの誤り訂正能力と2ビットの誤り検出能力を持つ符号を用いて符号化することで得られた符号語として前記メモリに記憶され、
    前記エラー検知部は、前記複数の層の何れかの層に記憶された符号語において2ビットの誤りが検知されると、前記複数の層の他の層のそれぞれについて、前記符号に従って1ビットのエラーが検知された符号語を特定し、当該エラーとなるビットが記憶されたメモリ素子を前記エラーが生じたメモリ素子として特定する、
    メモリエラー判別装置。
  2. 前記判定部は、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定すると、当該判定の結果を、報知部を介して報知する、請求項1に記載のメモリエラー判別装置。
  3. 3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知するエラー検知部と、
    前記複数の層のそれぞれにおいて前記エラーが生じたメモリ素子の位置を特定するエラー位置特定部と、
    前記エラーが生じたメモリ素子の位置が前記複数の層のうちの3以上の所定数以上の層にわたって直線状に並ぶ場合に、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定する判定部と、
    を有し、
    前記判定部は、前記複数の層のそれぞれについて、所定数のメモリ素子ごとにブロックを設定し、前記エラーが生じたメモリ素子が属するブロックに含まれる各メモリを前記エラーが生じたメモリ素子とみなして、前記エラーが生じたメモリ素子の位置が前記所定数以上の層にわたって直線状に並ぶか否か判定する、メモリエラー判別装置。
  4. 3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知するエラー検知部と、
    前記複数の層のそれぞれにおいて前記エラーが生じたメモリ素子の位置を特定するエラー位置特定部と、
    前記エラーが生じたメモリ素子の位置が前記複数の層のうちの3以上の所定数以上の層にわたって直線状に並ぶ場合に、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定する判定部と、
    を有し、
    前記判定部は、前記複数の層のうち、前記エラーが生じたメモリ素子の位置が並ぶ直線の一端に位置する層において前記エラーが生じたメモリ素子が複数存在する場合、前記メモリに生じたエラーが前記メモリに入射したα線に起因するソフトエラーであると判定する、メモリエラー判別装置。
  5. 3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知し、
    前記複数の層のそれぞれにおいて前記エラーが生じたメモリ素子の位置を特定し、
    前記エラーが生じたメモリ素子の位置が前記複数の層のうちの以上の所定数以上の層にわたって直線状に並ぶ場合に、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定する、
    ことをコンピュータに実行させ、
    前記メモリに記憶されるデータは所定のビット長を持つビット列ごとに分割され、前記ビット列ごとに、当該ビット列を1ビットの誤り訂正能力と2ビットの誤り検出能力を持つ符号を用いて符号化することで得られた符号語として前記メモリに記憶され、
    前記エラーが生じたメモリ素子の位置の特定は、前記複数の層の何れかの層に記憶された符号語において2ビットの誤りが検知されると、前記複数の層の他の層のそれぞれについて、前記符号に従って1ビットのエラーが検知された符号語を特定し、当該エラーとなるビットが記憶されたメモリ素子を前記エラーが生じたメモリ素子として特定することを含む、メモリエラー判別用コンピュータプログラム。
  6. 3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知し、
    前記複数の層のそれぞれにおいて前記エラーが生じたメモリ素子の位置を特定し、
    前記エラーが生じたメモリ素子の位置が前記複数の層のうちの3以上の所定数以上の層にわたって直線状に並ぶ場合に、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定する、
    ことをコンピュータに実行させ、
    前記ソフトエラーの判定は、前記複数の層のそれぞれについて、所定数のメモリ素子ごとにブロックを設定し、前記エラーが生じたメモリ素子が属するブロックに含まれる各メモリを前記エラーが生じたメモリ素子とみなして、前記エラーが生じたメモリ素子の位置が前記所定数以上の層にわたって直線状に並ぶか否か判定することを含む、メモリエラー判別用コンピュータプログラム。
  7. 3次元状に積層されたメモリに含まれる複数の層のそれぞれにおいてエラーが生じたメモリ素子を検知し、
    前記複数の層のそれぞれにおいて前記エラーが生じたメモリ素子の位置を特定し、
    前記エラーが生じたメモリ素子の位置が前記複数の層のうちの3以上の所定数以上の層にわたって直線状に並ぶ場合に、前記メモリに生じたエラーが前記メモリに入射した放射線に起因するソフトエラーであると判定する、
    ことをコンピュータに実行させ、
    前記ソフトエラーの判定は、前記複数の層のうち、前記エラーが生じたメモリ素子の位置が並ぶ直線の一端に位置する層において前記エラーが生じたメモリ素子が複数存在する場合、前記メモリに生じたエラーが前記メモリに入射したα線に起因するソフトエラーであると判定することを含む、メモリエラー判別用コンピュータプログラム。
JP2019182808A 2019-10-03 2019-10-03 メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム Active JP7306945B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019182808A JP7306945B2 (ja) 2019-10-03 2019-10-03 メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム
US17/023,371 US11321166B2 (en) 2019-10-03 2020-09-17 Device for determining soft error occurred in a memory having stacked layers, and computer readable medium storing program thereon for determining the soft error
DE102020005865.5A DE102020005865A1 (de) 2019-10-03 2020-09-24 Speicherfehlerbestimmungsvorrichtung und Speicherfehlerbestimmungscomputerprogramm
CN202011034079.1A CN112612655A (zh) 2019-10-03 2020-09-27 存储器错误判别装置以及存储器错误判别用计算机程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019182808A JP7306945B2 (ja) 2019-10-03 2019-10-03 メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2021061077A JP2021061077A (ja) 2021-04-15
JP7306945B2 true JP7306945B2 (ja) 2023-07-11

Family

ID=74875666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019182808A Active JP7306945B2 (ja) 2019-10-03 2019-10-03 メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム

Country Status (4)

Country Link
US (1) US11321166B2 (ja)
JP (1) JP7306945B2 (ja)
CN (1) CN112612655A (ja)
DE (1) DE102020005865A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3995863A4 (en) * 2019-07-04 2023-07-05 Nippon Telegraph And Telephone Corporation DEVICE, METHOD AND PROGRAM FOR NUCLEAR REACTION DETECTION

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040227094A1 (en) 2003-02-09 2004-11-18 Tompa Gary S. Microelectronic radiation detector
US20110275356A1 (en) 2009-01-16 2011-11-10 Rambus Inc. Methods and Circuits for Detecting and Reporting High-Energy Particles Using Mobile Phones and Other Portable Computing Devices
JP2017151620A (ja) 2016-02-23 2017-08-31 富士通株式会社 情報処理装置、半導体装置、及びメモリ検査方法
JP2018179580A (ja) 2017-04-05 2018-11-15 株式会社日立製作所 中性子強度モニタリングシステムおよび方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225077A (ja) 1992-02-17 1993-09-03 Shikoku Nippon Denki Software Kk Eccを保持したメモリ制御回路のハードエラー検出方式
US7389465B2 (en) * 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US20080165521A1 (en) * 2007-01-09 2008-07-10 Kerry Bernstein Three-dimensional architecture for self-checking and self-repairing integrated circuits
JP4617405B2 (ja) * 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
US8127185B2 (en) * 2009-01-23 2012-02-28 Micron Technology, Inc. Memory devices and methods for managing error regions
US8365036B2 (en) * 2009-09-16 2013-01-29 Freescale Semiconductor, Inc. Soft error correction in a memory array and method thereof
KR102024033B1 (ko) * 2013-03-04 2019-09-24 삼성전자주식회사 이동 통신 시스템에서 메모리 제어 방법 및 장치
WO2015111176A1 (ja) * 2014-01-24 2015-07-30 株式会社日立製作所 プログラマブルデバイス、エラー保持システム、及び電子システム装置
US9984769B2 (en) * 2014-10-30 2018-05-29 Research & Business Foundation Sungkyunkwan University 3D memory with error checking and correction function
US9691505B2 (en) * 2015-03-27 2017-06-27 Intel Corporation Dynamic application of error correction code (ECC) based on error type
US10599518B2 (en) * 2015-12-31 2020-03-24 Texas Instruments Incorporated Protecting data memory in a signal processing system
US10013192B2 (en) * 2016-08-17 2018-07-03 Nxp Usa, Inc. Soft error detection in a memory system
JP6880795B2 (ja) 2017-02-08 2021-06-02 オムロン株式会社 制御装置およびその制御方法
JP2019067469A (ja) * 2017-09-29 2019-04-25 富士通株式会社 メモリシステム及び三次元積層型メモリの制御方法
US10990471B2 (en) * 2019-05-29 2021-04-27 Bae Systems Information And Electronic Systems Integration Inc. Apparatus and method for reducing radiation induced multiple-bit memory soft errors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040227094A1 (en) 2003-02-09 2004-11-18 Tompa Gary S. Microelectronic radiation detector
US20110275356A1 (en) 2009-01-16 2011-11-10 Rambus Inc. Methods and Circuits for Detecting and Reporting High-Energy Particles Using Mobile Phones and Other Portable Computing Devices
JP2017151620A (ja) 2016-02-23 2017-08-31 富士通株式会社 情報処理装置、半導体装置、及びメモリ検査方法
JP2018179580A (ja) 2017-04-05 2018-11-15 株式会社日立製作所 中性子強度モニタリングシステムおよび方法

Also Published As

Publication number Publication date
US20210103492A1 (en) 2021-04-08
US11321166B2 (en) 2022-05-03
CN112612655A (zh) 2021-04-06
JP2021061077A (ja) 2021-04-15
DE102020005865A1 (de) 2021-04-08

Similar Documents

Publication Publication Date Title
US9021339B2 (en) Data reliability schemes for data storage systems
KR101536853B1 (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
TWI465904B (zh) 半導體記憶裝置
US9043674B2 (en) Error detection and correction apparatus and method
JP5792380B2 (ja) データ完全性を与えるための装置および方法
TW201928684A (zh) 具有機器學習機制的儲存系統及其操作方法
EP2529305B1 (en) System and method to correct data errors using a stored count of bit values
CN105788648B (zh) 基于异构混合内存的nvm坏块识别处理及纠错方法和系统
KR102385138B1 (ko) 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
TWI528174B (zh) 基於可用記憶體空間選擇冗餘儲存組態
US11630720B2 (en) Error recovery handling
CN109669800B (zh) 用于写入路径错误的高效数据恢复
JP2010500699A (ja) メモリデバイス内のセクタごとに許容できるビットエラー
US11714558B2 (en) Predictive memory management
JP7306945B2 (ja) メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム
US8429485B2 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
US20180203625A1 (en) Storage system with multi-dimensional data protection mechanism and method of operation thereof
KR102004928B1 (ko) 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법
CN105575439B (zh) 一种存储单元失效纠错的方法及存储器
WO2015134262A1 (en) Computing system with data protection mechanism and method of operation thereof
CN113157484B (zh) 通过错误分析应对错误的存储器系统和数据处理系统
JP2019028952A (ja) 記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230501

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: 20230530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230629

R150 Certificate of patent or registration of utility model

Ref document number: 7306945

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150