JP4925301B2 - 半導体メモリシステム - Google Patents

半導体メモリシステム Download PDF

Info

Publication number
JP4925301B2
JP4925301B2 JP2007028170A JP2007028170A JP4925301B2 JP 4925301 B2 JP4925301 B2 JP 4925301B2 JP 2007028170 A JP2007028170 A JP 2007028170A JP 2007028170 A JP2007028170 A JP 2007028170A JP 4925301 B2 JP4925301 B2 JP 4925301B2
Authority
JP
Japan
Prior art keywords
error correction
correction code
semiconductor memory
data
read
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.)
Expired - Fee Related
Application number
JP2007028170A
Other languages
English (en)
Other versions
JP2008192054A (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.)
MegaChips Corp
Original Assignee
MegaChips 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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2007028170A priority Critical patent/JP4925301B2/ja
Publication of JP2008192054A publication Critical patent/JP2008192054A/ja
Application granted granted Critical
Publication of JP4925301B2 publication Critical patent/JP4925301B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、フラッシュメモリなどの再書き込み可能な不揮発性半導体メモリから正しいデータを取得するための技術に関する。詳しくは、フラッシュメモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる現象に対しても、正しくデータを供給する技術に関する。
不揮発性メモリの中でも、NANDフラッシュメモリは、単純な回路構成による高集積化や製造コスト減、ユーザによる書き込みの容易化を図ることを可能とするため、SDメモリカードなどに大量に採用されている。
最近では、NANDフラッシュメモリは、ゲーム機などにも採用されている。NANDフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず、連続的な読み出しが発生する。すなわち、NANDフラッシュメモリがROMとして採用されることが多くなりつつある。
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Read Disturb”現象と呼ばれており、本現象が発生するメカニズムについて、以下に簡単に説明する。
図11は、NANDフラッシュメモリの模式図である。NANDフラッシュメモリは、格子状に配線されたビット線41とワード線42、43、44、メモリセル52、53、選択トランジスタ54などから構成されている。
メモリセル52が格納する二値データ(“0”または“1”)を読み出す場合を考える。この場合、メモリセル52は選択セル52、メモリセル53は非選択セル53と呼ばれている。まず、選択トランジスタ54により、選択セル52が属するビット線41が指定される。次に、選択セル52が属するワード線42に対して、低ゲート電圧V(Low)=0Vが印加される。そして、非選択セル53が属するワード線43に対して、高ゲート電圧V(High)〜5Vが印加される。このとき、非選択セル53は微弱な書き込み状態にあるため、非選択セル53のフローティングゲートに電子がトラップされ、蓄積される。すなわち、選択セル52が格納する二値データが繰り返し読み出されると、非選択セル53の閾値電圧がシフトして、非選択セル53が格納している二値データが、“1”から“0”に意図せず書き換えられる可能性がある。
もっとも、非選択セル53が格納している二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル53の機能を回復させることができる。しかし、書き込みは発生せず、連続的な読み出しが発生する場合には、非選択セル53の機能を回復させることができなくなる。
以上に説明した“Read Disturb”現象を回避する手段を提供する文献として、以下の特許文献が挙げられる。
米国特許出願公開第2005/0210184号明細書
上述の特許文献は、メモリセル内部の制御方法により、“Read Disturb”現象を回避する手段を提供するものである。しかし、ここで開示されている方法は、特定のセル構造を有するメモリに対して適用可能な方法であり、他のセル構造に適用可能なものではない。つまり、メモリのセル構造に依存することなく、“Read Disturb”現象を回避できる方策ではない。
そこで、本発明は前記問題点に鑑み、メモリのセル構造に制約を受けることなく、様々なタイプの不揮発性メモリにおいても、“Read Disturb”現象の発生する可能性のあるメモリから正しいデータを読み出すための技術を提供することを目的とする。
上記課題を解決するため、請求項1記載の発明は、第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納され、再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、データに対して第1のエラー訂正コードを利用して誤り訂正を行った後、読み出しデータに係る第2のエラー訂正コードを生成し、前記不揮発性半導体メモリに、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、を含むことを特徴とする。
また、請求項5記載の発明は、第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納される再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、前記不揮発性半導体メモリからからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、読み出しデータに係る第2のエラー訂正コードを生成し、前記不揮発性半導体メモリに、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、を含むことを特徴とする。
請求項2記載の発明は、データが格納される再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、データに対して第1のエラー訂正コードを利用して誤り訂正を行った後、読み出しデータに係る第2のエラー訂正コードを生成し、前記訂正コード記憶手段に、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、を含むことを特徴とする。
また、請求項6記載の発明は、データが格納される再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、前記不揮発性半導体メモリからからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、読み出しデータに係る第2のエラー訂正コードを生成し、前記訂正コード記憶手段に、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、を含むことを特徴とする。
請求項記載の発明は、請求項または請求項に記載の半導体メモリシステムにおいて、前記エラー訂正コード格納手段は、読み出しデータに関してエラーが発生したとき、エラービットの数が所定の閾値を超えている場合に、第2のエラー訂正コードを格納することを特徴とする。
請求項記載の発明は、請求項または請求項に記載の半導体メモリシステムにおいて、前記エラー訂正コード格納手段は、読み出しデータに関してエラーが発生したとき、エラービットの数に関わらず、第2のエラー訂正コードを格納することを特徴とする。
請求項記載の発明は、請求項1、2、5または請求項に記載の半導体メモリシステムにおいて、前記エラー訂正コード格納手段は、第2のエラー訂正コードを格納した後、前記指定情報についても、第2のエラー訂正コードを指定する情報に書き換えることを特徴とする。
請求項記載の発明は、第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納される再書き込み可能な前記不揮発性半導体メモリと、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、読み出しデータに対して第1のエラー訂正コードを利用して誤り訂正を行った後、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段、を含むことを特徴とする。
また、請求項12記載の発明は、第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納される再書き込み可能な前記不揮発性半導体メモリと、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、前記不揮発性半導体メモリからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段と、を含むことを特徴とする。
請求項記載の発明は、データが格納される再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、読み出しデータに対して第1のエラー訂正コードを利用して誤り訂正を行った後、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段と、を含むことを特徴とする。
また、請求項13記載の発明は、データが格納される再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、を備え、前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、前記メモリコントローラは、前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、前記不揮発性半導体メモリからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段と、を含むことを特徴とする。
請求項10記載の発明は、請求項または請求項に記載の半導体メモリシステムにおいて、前記指定情報変更手段は、読み出しデータに関してエラーが発生した場合であって、エラービットの数が所定の閾値を超えている場合に、前記指定情報を書き換えることを特徴とする。
請求項11記載の発明は、請求項または請求項に記載の半導体メモリシステムにおいて、前記指定情報変更手段は、読み出しデータに関してエラーが発生した場合、エラービットの数に関わらず、前記指定情報を書き換えることを特徴とする。
請求項14記載の発明は、請求項1、請求項2、請求項5、請求項6、請求項8、請求項9、請求項12および請求項13のいずれかに記載の半導体メモリシステムにおいて、前記不揮発性半導体メモリに記憶されるデータの中で、読み出しアクセスが多数発生すると想定されたデータに関しては、第2のエラー訂正コードが使用されることを特徴とする。
請求項15記載の発明は、請求項1、請求項2、請求項5、請求項6、請求項8、請求項9、請求項12および請求項13のいずれかに記載の半導体メモリシステムにおいて、前記不揮発性半導体メモリの記憶領域の中で、読み出しエラーが発生すると想定された記憶領域に格納されるデータに関しては、第2のエラー訂正コードが使用されることを特徴とする。
請求項16記載の発明は、請求項1、請求項2、請求項5、請求項6、請求項8、請求項9、請求項12および請求項13のいずれかに記載の半導体メモリシステムにおいて、前記不揮発性半導体メモリに記憶されるデータの中で、重要度の高いデータに関しては、第2のエラー訂正コードが使用されることを特徴とする。
本発明のメモリシステムは、再書き込み可能な不揮発性半導体メモリを備える。そして、不揮発性半導体メモリに記憶されるデータには、第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されている。これにより、条件に応じて、処理能力が低いが処理負荷の低いエラー訂正と、訂正能力が高いが処理負荷が大きいエラー訂正を使い分けることが可能である。
また、本発明によれば、第1のエラー訂正コードによりエラー訂正を行った後、第2のエラー訂正コードを格納する。これにより、初期段階では処理負荷の小さいエラー訂正を行って高速な読み出しを行い、“Read Disturb”現象が発生した場合には、より訂正能力の高い第2のエラー訂正コードにより、正しいデータに訂正して出力可能である。
また、不揮発性半導体メモリに記憶されるデータには、第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されている。これにより、条件に応じて、処理負荷の低いエラー訂正と、訂正能力の高いエラー訂正を使い分けることが可能である。
{第1の実施の形態}
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本実施の形態に係る情報処理システムの機能ブロック図である。この情報処理システムは、ホストシステム1とメモリモジュール(メモリシステム)2とを備えて構成される。メモリモジュール2は、メモリコントローラ3とメモリ4とを備えている。
本実施の形態において、メモリ4は、再書き込み可能な不揮発性半導体メモリであるNANDフラッシュメモリを採用している。メモリコントローラ3は、メモリ4に対するデータの読み出しや書き込みを制御する。例えば、この情報処理システムは、ゲーム装置として機能する。この場合、ホストシステム1は、ゲーム装置本体を構成し、メモリモジュール2がゲームカートリッジを構成する。メモリモジュール2は、ホストシステム1に対して着脱自在なタイプであってもよいし、ホストシステム1を構成する装置に内蔵されるタイプであってもよい。
図に示すように、メモリコントローラ3は、インタフェース31、アドレスデコーダ部32、エラー訂正部33を備えている。インタフェース31は、ホストシステム1から出力された読み出しや書き込みのコマンドを入力する入力インタフェースとして、また、メモリ4から出力された読み出しデータをホストシステム1に対して出力する出力インタフェースとして機能する。あるいは、インタフェース31は、ホストシステム1から出力された書き込みデータを入力する入力インタフェースとして機能する。
アドレスデコーダ部32は、インタフェース31を介して入力した読み出しコマンドや書き込みコマンドから、読み出しアドレスや書き込みアドレスを取得する。メモリ4に対して読み出しアドレスが出力されると、メモリ4からは、その読み出しアドレスに対応する記憶データが読み出されるのである。また、メモリ4に対して書き込みアドレスとデータが与えられると、メモリ4に対するデータの書き込み処理が実行される。
ここで、本実施の形態におけるメモリモジュール2は、書き込み可能なNANDフラッシュメモリを採用しているが、上述したように、ゲームカートリッジなど、読み出しを主な目的とするメモリとして利用される。つまり、ホストシステム1から次々に出力される読み出しコマンドに応答して、指定された読み出しアドレスのデータを読み出す処理が繰り返し実行されるのである。ホストシステム1は、メモリ4から読み出されたデータを入力し、様々な処理を実行する。
このように、本実施の形態においては、メモリ4に記憶されたデータの読み出し処理が繰り返し多数行われる可能性がある。そして、このようなケースにおいて、上述したように、意図せずして記憶データが書き換わる現象、つまり、“Read Disturb”現象が発生する可能性がある。そして、本実施の形態のメモリモジュール2は、この“Read Disturb”現象が発生した場合でも、エラー訂正によって、正しいデータをホストシステム1に供給可能とするための機能を備えている。
図2は、メモリ4の記憶領域を示す図である。メモリ4は、図に示すように、複数のページによって管理されている。本実施の形態において、メモリ4の各ページは、NANDフラッシュメモリにおける読み出しおよび書き込み単位に対応している。つまり、メモリ4は、ページ単位でデータの読み出しおよび書き込みを可能としている。これに対して、メモリ4に対しては、複数のページからなるブロック単位で消去が可能となっている。
そして、図に示すように、メモリ4の各ページは、実体的なデータが格納されるデータ領域41と、実体的なデータに付随した情報が格納される冗長領域42とを備えて構成されている。データ領域41には、たとえば、ゲームプログラムが格納される。
図3および図4は、冗長領域42に格納されている情報の一部を示す図である。冗長領域42には、エラー訂正コード(ECC:Error Correcting Code)に関する情報が記録されている。本実施の形態において、各ページに記憶されるデータには、第1ECC51あるいは第2ECC52のいずれかのエラー訂正コードが付加されるのである。メモリモジュール2が供給される初期段階においては、各ページに記憶されるデータには、第1ECC51が付加されている。そして、後で説明する条件、処理によって、第1ECC51が第2ECC52に書き換えられるのである。
第2ECC52は、第1ECC51よりも誤り訂正能力の高い符号である。言い換えると、第2ECC52を利用するエラー訂正アルゴリズム(第2エラー訂正アルゴリズムとする。)は、第1ECC51を利用するエラー訂正アルゴリズム(第1エラー訂正アルゴリズムとする。)よりも誤り訂正能力の高いアルゴリズムである。たとえば、第1ECC51を利用するエラー訂正アルゴリズムは、4ビットまでのエラーを検出可能であり、且つ、2ビットまでのエラーを訂正可能なエラー訂正アルゴリズムである。これに対して、第2ECC52を利用するエラー訂正アルゴリズムは、たとえば、8ビットまでのエラーを検出可能であり、且つ、6ビットまでのエラーを訂正可能なアルゴリズムである。このため、一般には、第2ECC52のビット長は、第1ECC51のビット長より大きい。また、第1エラー訂正アルゴリズムは、第2エラー訂正アルゴリズムと比べて処理負荷の小さいアルゴリズムである。
ECC指定情報50は、冗長領域42に格納されているエラー訂正コードの種別を指定する情報である。つまり、冗長領域42に、第1ECC51が格納されているのか、あるいは、第2ECC52が格納されているのかを指定する情報である。図3は、データ領域41に格納されたデータに対して第1ECC51が付加されている場合の冗長領域42を示している。この場合、ECC指定情報50には、冗長領域42に第1ECC51が格納されていることを示す情報が記録されている。図4は、データ領域41に格納されたデータに対して第2ECC52が付加されている場合の冗長領域42を示している。この場合、ECC指定情報50には、冗長領域42に第2ECC52が格納されていることを示す情報が記録されている。
なお、本実施の形態においては、エラー訂正コードおよびECC指定情報50が、冗長領域42に格納されているが、これらのデータが、データ領域41内に格納されていてもよい。あるいは、エラー訂正コードおよびECC指定情報50が、メモリ4以外の記憶手段に格納されていてもよい。
エラー訂正部33は、各ページに格納されているデータを読み出し、誤り検出を行う。そして、データエラーを検出した場合には、誤り訂正を行う。具体的には、エラー訂正部33は、ECC指定情報50において、第1ECC51が指定されている場合には、冗長領域42から第1ECC51を読み出し、第1エラー訂正アルゴリズムを利用して、データの誤り検出を行う。そして、データエラーを検出した場合には、第1エラー訂正アルゴリズムを利用して、データの誤り訂正を行うのである。また、エラー訂正部33は、ECC指定情報50において、第2ECC52が指定されている場合には、冗長領域42から第2ECC52を読み出し、第2エラー訂正アルゴリズムを利用して、データの誤り検出を行う。そして、データエラーを検出した場合には、第2エラー訂正アルゴリズムを利用して、データの誤り訂正を行うのである。そして、第1あるいは第2のエラー訂正アルゴリズムによって訂正されたデータは、インタフェース31を介してホストシステム1に出力されるのである。
以上の構成に基づいて実行される本実施の形態における誤り訂正処理の内容について、図5のフローチャートを参照しながら説明する。
まず、メモリコントローラ3が、メモリ4の指定したページのデータを読み出す(ステップS11)。このとき、データ領域41に格納されたデータと合わせて、冗長領域42に格納されているECC指定情報50やエラー訂正コード(第1ECC51あるいは第2ECC52)も読み出される。
誤り訂正部33は、ECC指定情報50を参照する(ステップS12)。そして、ECC指定情報50において、第1ECC51が指定されている場合には、第1エラー訂正アルゴリズムに従い、読み出した第1ECC51を用いて、読み出しデータのエラーを検出し、エラーを検出した場合には、エラー訂正を行う(ステップS13)。そして、エラー訂正後のデータをホストシステム1に出力する。なお、第1エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
次に、エラー訂正部33は、エラービット数が閾値を超えているかどうかを判定する(ステップS14)。エラー訂正部33は、図示せぬ記憶部に、エラービット数の閾値データを格納している。たとえば、第1エラー訂正アルゴリズムが、2ビットまでのエラーを訂正可能である場合、閾値を1ビット等と設定する例が考えられる。
そして、検出したエラービット数が閾値を超えている場合(たとえば、閾値を1ビットと設定している場合であって、エラービット数が2ビットである場合など)には、エラー訂正部33は、第2エラー訂正アルゴリズムを用いて、訂正したデータに対する第2ECC52を生成する(ステップS15)。次に、生成した第2ECC52を、読み出したデータの冗長領域42に記録する(ステップS16)。このとき、既に格納されていた第1ECC51は消去されて、新たに生成した第2ECC52が格納される。さらに、エラー訂正部33は、ECC指定情報50の書き換えを行う(ステップS17)。つまり、ECC指定情報50で指定されるECC種別が第2ECC52となるように、当該情報を更新するのである。このようにして、図3で示す状態の冗長領域42が、図4で示す状態の冗長領域42に書き換えられるのである。
なお、本実施の形態においては、第1ECC51を第2ECC52に置き換える場合を説明したが、第1ECC51は、そのまま格納しておき、第2ECC52を冗長領域42内の別の領域(エラー訂正コードがデータ領域41や別の記憶手段に格納されている場合にあっては、それら記憶手段内の別の領域)に格納するようにしてもよい。そして、この場合であって、第2ECC52が指定されるようECC指定情報50の書き換えを行うことにより、どちらのエラー訂正コードが適用されるかが特定されるのである。
また、ステップS14において、エラービット数が閾値を超えていないと判定された場合には、そのまま処理を終了する。つまり、読み出しデータに対するエラー訂正アルゴリズムは、そのまま第1エラー訂正アルゴリズムが利用されるのである。
一方、ステップS12において、第2ECC52が指定されていると判定された場合、第2エラー訂正アルゴリズムに従い、読み出した第2ECC52を用いて、読み出しデータのエラーを検出し、エラーを検出した場合には、エラー訂正を行う(ステップS18)。そして、エラー訂正後のデータをホストシステム1に出力する。なお、第2エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
このように、本実施の形態によれば、メモリ4の冗長領域42には、第1ECC51と第2ECC52のいずれかが格納されている。そして、初期段階においては、各ページのデータに対して第1ECC51が格納されている。そして、検出したエラービット数が所定の閾値を超えていた場合には、第1ECC51よりもエラー訂正能力の高い第2ECCを生成し、第1ECC51に代えて第2ECC52を冗長領域42に格納するのである。
これにより、初期段階は、処理負荷の小さい第1エラー訂正アルゴリズムを利用し、エラーが所定の閾値を超えた時点から、エラー訂正能力の高い第2エラー訂正アルゴリズムを利用することが可能である。したがって、初期段階においては、処理負荷の小さいエラー訂正により高速な読み出しを行い、“Read Disturb”現象が発生し、読み出しデータにエラーが発生した場合にも、よりエラー訂正能力の高いエラー訂正アルゴリズムを利用し、正しく訂正されたデータをホストシステムに供給可能である。
なお、本実施の形態においては、2種類の訂正能力の異なるエラー訂正アルゴリズムを利用することとしたが、3種類以上の訂正能力の異なるエラー訂正アルゴリズムを利用するようにしてもよい。そして、エラービット数と閾値とを比較し、閾値を超えた時点で、次々に、より高い訂正能力のエラー訂正アルゴリズムに切り替えていくようにすることが可能である。
{第2の実施の形態}
次に、本発明の第2の実施の形態について説明する。図6は、第2の実施の形態に係るエラー訂正処理のフローチャートである。なお、第2の実施の形態における情報処理システムの構成は、図1で示したものと同様である。また、冗長領域42に格納される情報も、図3および図4で示したものと同様である。
ステップS21〜ステップS23は、第1の実施の形態におけるステップS11〜ステップS13と同様である。つまり、読み出したデータについて、エラーが検出された場合には、第1エラー訂正アルゴリズムを用いてエラー訂正処理を行う。第1エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
第1の実施の形態においては、ステップS14において、エラービット数と閾値との比較を行った。これに対して、第2の実施の形態においては、閾値との比較を行うことなく、第2エラー訂正アルゴリズムへの移行処理を行う。つまり、第1エラー訂正アルゴリズムが設定されている状態で、1ビットでもエラーが発生した場合には、第2エラー訂正アルゴリズムへの移行を行うのである。
ステップS24〜ステップS26は、第1の実施の形態におけるステップS15〜ステップS17と同様である。第2エラー訂正アルゴリズムに基づいて第2ECC52を生成し、冗長領域42内に、第1ECC51に代えて第2ECC52を格納するのである。また、ECC指定情報50によって第2ECC52が指定されるように、当該情報を書き換えるのである。
第1の実施の形態と同様、第1ECC51は、そのまま格納しておき、第2ECC52を冗長領域42内の別の領域(エラー訂正コードがデータ領域41や別の記憶手段に格納されている場合にあっては、それら記憶手段内の別の領域)に格納するようにしてもよい。そして、この場合であって、第2ECC52が指定されるようECC指定情報50の書き換えを行うことにより、どちらのエラー訂正コードが適用されるかが特定されるのである。
第2エラー訂正アルゴリズムに移行した後のステップS27も、第1の実施の形態におけるステップS18と同様である。つまり、エラーが発生した場合には、エラー訂正能力の高い第2エラー訂正アルゴリズムを利用してエラー訂正が行われる。第2エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
これにより、“Read Disturb”現象が発生し、読み出しデータにエラーが発生した場合にも、よりエラー訂正能力の高いエラー訂正アルゴリズムを利用し、正しく訂正されたデータをホストシステムに供給可能である。
なお、この実施の形態においても、エラー訂正コードおよびECC指定情報50が、データ領域41内に格納されていてもよい。あるいは、エラー訂正コードおよびECC指定情報50が、メモリ4以外の記憶手段に格納されていてもよい。
{第3の実施の形態}
次に、本発明の第3の実施の形態について説明する。図7は、第3の実施の形態に係るメモリ4における冗長領域42を示す図である。図8は、第3の実施の形態に係るエラー訂正処理のフローチャートである。なお、情報処理システムの構成は、図1で示したものと同様である。
図7に示すように、冗長領域42には、第1ECC51と第2ECC52の両方が格納されている。つまり、初期段階から、各ページのデータには、第1ECC51と第2ECC52とが用意され、いずれのECCについても、冗長領域42に格納するようにしているのである。ただし、ECC指定情報50において、初期段階では、第1ECC51が指定されている。そして、後で説明する条件、処理によって、ECC指定情報50が書き換えられ、ECC指定情報50により第2ECC52が指定されることになる。
したがって、エラー訂正部33は、ECC指定情報50を参照し、第1ECC51が指定されている場合には、冗長領域42から読み出した第1ECC51を利用してエラー訂正を行い、ECC指定情報50により第2ECC52が指定されている場合には、冗長領域42から読み出した第2ECC52を利用してエラー訂正を行うのである。
なお、この実施の形態においても、エラー訂正コードおよびECC指定情報50が、冗長領域42に格納されているが、これらのデータが、データ領域41内に格納されていてもよい。あるいは、エラー訂正コードおよびECC指定情報50が、メモリ4以外の記憶手段に格納されていてもよい。
図8を参照する。まず、メモリコントローラ3が、メモリ4の指定したページのデータを読み出す(ステップS31)。このとき、データ領域41に格納されたデータと合わせて、冗長領域42に格納されているECC指定情報50やエラー訂正コード(第1ECC51および第2ECC52)も読み出される。なお、ECC指定情報50に指定された情報に基づいて、第1ECC51および第2ECC52のうち、必要な情報のみを読み出すようにしてもよい。
次に、エラー訂正部33は、ECC指定情報50を参照する(ステップS32)。そして、ECC指定情報50において、第1ECC51が指定されている場合には、第1エラー訂正アルゴリズムに従い、読み出した第1ECC51を用いて、読み出しデータのエラーを検出し、エラーを検出した場合には、エラー訂正を行う(ステップS33)。そして、エラー訂正後のデータをホストシステム1に出力する。なお、第1エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
次に、エラー訂正部33は、エラービット数が閾値を超えているかどうかを判定する(ステップS34)。エラー訂正部33は、図示せぬ記憶部に、エラービット数の閾値データを格納している。第1の実施の形態で例示した場合と同様、たとえば、第1エラー訂正アルゴリズムが、2ビットまでのエラーを訂正可能である場合、閾値を1ビットと設定する例が考えられる。
そして、検出したエラービット数が閾値を超えている場合には、エラー訂正部33は、ECC指定情報50の書き換えを行う(ステップS35)。つまり、ECC指定情報50によって第2ECC52が指定されるように、当該情報を更新するのである。
また、ステップS34において、エラービット数が閾値を超えていないと判定された場合には、そのまま処理を終了する。つまり、読み出しデータに対するエラー訂正アルゴリズムは、そのまま第1エラー訂正アルゴリズムが利用されるのである。
一方、ステップS32において、第2ECC52が指定されていると判定された場合、第2エラー訂正アルゴリズムに従い、読み出した第2ECC52を用いて、読み出しデータのエラーを検出し、エラーを検出した場合には、エラー訂正を行う(ステップS36)。そして、エラー訂正後のデータをホストシステム1に出力する。なお、第2エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
このように、本実施の形態によれば、メモリ4の冗長領域42には、第1ECC51および第2ECC52の両方の情報が格納されている。そして、初期段階においては、各ページのデータに対して第1ECC51が利用されるように、ECC指定情報50が設定されている。そして、検出したエラービット数が所定の閾値を超えていた場合には、第1ECC51よりもエラー訂正能力の高い第2ECC52を利用するように、ECC指定情報50を書き換えるのである。
これにより、初期段階は、処理負荷の小さい第1エラー訂正アルゴリズムを利用し、エラーが所定の閾値を超えた時点から、エラー訂正能力の高い第2エラー訂正アルゴリズムを利用することが可能である。したがって、初期段階においては、処理負荷の小さいエラー訂正により高速な読み出しを行い、“Read Disturb”現象が発生し、読み出しデータにエラーが発生した場合にも、よりエラー訂正能力の高いエラー訂正アルゴリズムを利用し、正しく訂正されたデータをホストシステム1に供給可能である。また、この実施の形態においては、あらかじめ、第1ECC51と第2ECC52が生成されてメモリ4内に格納されているので、第2エラー訂正アルゴリズムに移行する場合にも、第2ECC52を生成する処理を行う必要がない。
なお、本実施の形態においては、2種類の訂正能力の異なるエラー訂正アルゴリズムを利用することとしたが、3種類以上の訂正能力の異なるエラー訂正アルゴリズムを利用するようにしてもよい。そして、エラービット数と閾値とを比較し、閾値を超えた時点で、次々に、より高い訂正能力のエラー訂正アルゴリズムに切り替えていくようにすることができる。
{第4の実施の形態}
次に、本発明の第4の実施の形態について説明する。図9は、第4の実施の形態に係るエラー訂正処理のフローチャートである。なお、第4の実施の形態における情報処理システムの構成は、図1で示したものと同様である。また、冗長領域42に格納される情報については、第3の実施の形態における図7で示したものと同様である。
ステップS41〜ステップS43は、第3の実施の形態におけるステップS31〜ステップS33と同様である。つまり、読み出したデータについて、エラーが検出された場合には、第1エラー訂正アルゴリズムを用いてエラー訂正処理を行う。第1エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
第3の実施の形態においては、ステップS34において、エラービット数と閾値との比較を行った。これに対して、第4の実施の形態においては、閾値との比較を行うことなく、第2エラー訂正アルゴリズムへの移行処理を行う。つまり、第1エラー訂正アルゴリズムが設定されている状態で、1ビットでもエラーが発生した場合には、第2エラー訂正アルゴリズムへの移行を行うのである。
ステップS44は、第3の実施の形態におけるステップS35と同様である。エラー訂正部33は、ECC指定情報50が第2ECC52を指定するよう情報を書き換えるのである。
第2エラー訂正アルゴリズムに移行した後のステップS45も、第3の実施の形態におけるステップS36と同様である。つまり、エラーが発生した場合には、エラー訂正能力の高い第2エラー訂正アルゴリズムを利用してエラー訂正が行われる。第2エラー訂正アルゴリズムによって、エラーを検出しなかった場合には、そのまま読み出しデータをホストシステム1に出力するが、その処理についてはフローチャートにおいて省略している。
これにより、“Read Disturb”現象が発生し、読み出しデータにエラーが発生した場合にも、よりエラー訂正能力の高いエラー訂正アルゴリズムを利用し、正しく訂正されたデータをホストシステム1に供給可能である。
なお、この実施の形態においても、エラー訂正コードおよびECC指定情報50が、データ領域41内に格納されていてもよい。あるいは、エラー訂正コードおよびECC指定情報50が、メモリ4以外の記憶手段に格納されていてもよい。
{第5の実施の形態}
第1〜第4の実施の形態においては、初期段階においては、第1エラー訂正アルゴリズムを利用し、エラーが発生した後に、より訂正能力の高い第2エラー訂正アルゴリズムを利用しようというものであった。
これに対して、第5の実施の形態においては、固定的に、特定のデータあるいは特定の領域について、訂正能力の高い第2エラー訂正アルゴリズムを利用するものである。
図10は、第5の実施の形態に係るメモリ4を示す図である。冗長領域42は、第1の実施の形態における図3および図4と同様、第1ECC51あるいは第2ECC52が格納されることになる。図10においては、冗長領域42にいずれのECCが格納されているかを示している。
この図の例では、ページ0、ページ1、ページ2などの領域については、冗長領域42に第1ECC51が格納されている。そして、ページ50およびページ51については、冗長領域42に、第2ECC52が格納されている。そして、ページ0、ページ1、ページ2などについては、初期段階から固定的に、第1エラー訂正アルゴリズムが利用され、ページ50、ページ51については、初期段階から固定的に、第2エラー訂正アルゴリズムが利用されるのである。
たとえば、プログラムやデータの特性上、予め繰り返し読み出される可能性が高いと想定されるデータに関しては、第2ECC52を付加するようにすれば、効果的である。あるいは、メモリ4の物理的構造上、“Read Disturb”現象が発生し易いと想定されるページ領域については、第2ECC52を冗長領域42に格納すれば効果的である。
また、重要度の高いデータに関しては、第2ECCを付加するようにすれば、効果的である。重要度の高いデータとは、エラーが発生した場合に、アプリケーションなどの実行を妨げるデータである。あるいは、重要度の高いデータとは、エラーが発生した場合に、アプリケーションの実行に大きな影響を及ぼすデータである。たとえば、プログラム本体などが該当する。たとえば、アプリケーションプログラムによっては、画像データや音声データにエラーが発生しても、アプリケーションの実行には大きな影響を与えないが、プログラム本体にエラーが発生すると、実行が不可能になる。このような場合に、プログラム本体を重要度の高いデータとして扱うのである。
このように、“Read Disturb”現象が発生しやすい領域、あるいは重要度の高いデータが格納される領域を特定し、当該領域のみについて、エラー訂正能力の高いECCを利用することで、冗長符号の無駄をなくすことができる。また、その他の領域については、処理負荷の小さいエラー訂正アルゴリズムを固定的に利用するので、高速な読み出しを行うことが可能である。
あるいは、冗長領域42に、第1ECC51と第2ECC52の両方が格納されていてもよい。この場合にも、たとえば、プログラムやデータの特性上、予め繰り返し読み出される可能性が高いと想定されるデータに関しては、ECC指定情報50により、第2ECC52が指定されるように設定するのである。あるいは、メモリ4の物理的構造上、“Read Disturb”現象が発生し易いと想定されるページ領域については、ECC指定情報50により、第2ECC52が指定されるように設定するのである。同様に、重要度の高いデータに関しては、ECC指定情報50により、第2ECC52が指定されるように設定するのである。
この実施の形態においても、エラー訂正コードおよびECC指定情報50が、冗長領域42に格納されているが、これらのデータが、データ領域41内に格納されていてもよい。あるいは、エラー訂正コードおよびECC指定情報50が、メモリ4以外の記憶手段に格納されていてもよい。
また、上記の各実施の形態で説明したエラー訂正方法を複合的に利用するようにしてもよい。たとえば、第1の実施の形態と第5の実施の形態を複合的に利用する方法が考えられる。具体的には、特定の領域については、初期段階から第2ECC52を格納する第5の実施の形態を適用させ、その他の領域については、エラーの発生に応じて第1ECC51から第2ECC52への書き換えを行う第1の実施の形態を適用させるのである。
{第6の実施の形態}
第1の実施の形態および第2の実施の形態においては、エラービット数が所定の閾値を超えたとき、あるいはエラーが発生したときに、第2ECC52を生成して、冗長領域42等に格納するようにした。この他の実施の形態として、読み出し回数に応じて第2ECC52を生成するようにしてもよい。
つまり、メモリコントローラ3は、メモリ4の各記憶領域(例えばページ単位)の読み出し回数をカウントするのである。そして、読み出し回数が所定の閾値を超えた領域に格納されているデータについては、第2ECC52を生成して、冗長領域42等に格納するのである。そして、ECC指定情報50を書き換えて、第2ECC52が適用されるようにするのである。
{第7の実施の形態}
第3の実施の形態および第4の実施の形態においては、エラービット数が所定の閾値を超えたとき、あるいはエラーが発生したときに、第2ECC52を指定するよう、ECC指定情報50を書き換えるようにした。この他の実施の形態として、読み出し回数に応じてECC指定情報50を書き換えるようにしてもよい。
つまり、メモリコントローラ3は、メモリ4の各記憶領域(例えばページ単位)の読み出し回数をカウントするのである。そして、読み出し回数が所定の閾値を超えた領域に格納されているデータについては、第2ECC52を指定するようECC指定情報50を書き換えるのである。
{変形例}
上記第1、第2、第6の実施の形態においては、第2ECC52を生成して格納したときに、ECC指定情報50を書き換えるようにした。しかし、第2ECC52を生成した直後に、ECC指定情報50を書き換える以外に、別のタイミングで書き換えるようにしてもよい。
たとえば、アプリケーションの実行中にはECC指定情報50を書き換えることは行わず、電源OFF時のアプリケーションに関するバックアップ中に書き換えを行う。あるいは、一定周期、アイドル中(アプリケーションによるメモリアクセスがないタイミング)、スリープ中、充電中、電源ON時などに書き換えを行うようにしてもよい。
ただし、電源ON時や、充電中にECC指定情報50を書き換える場合は、一度電源がOFFされるので、書き換えるECC指定情報50に関する情報を、一旦、別の不揮発性メモリに記憶しておくようにすればよい。
また、上記第3、第4、第7の実施の形態においては、エラービット数が閾値を超えているとき、エラーが発生したとき、または、読み出し回数が所定の閾値を超えているときに、ECC指定情報50を書き換えるようにした。しかし、これら条件に適合すると判定された直後ではなく、別のタイミングでECC指定情報50を書き換えるようにしてもよい。
たとえば、電源OFF時のアプリケーションに関するバックアップ中、一定周期、アイドル中、スリープ中、充電中、電源ON時などに書き換えを行うようにしてもよい。
ただし、電源ON時や、充電中にECC指定情報50を書き換える場合は、一度電源がOFFされるので、書き換えるECC指定情報50に関する情報を、一旦、別の不揮発性メモリに記憶しておくようにすればよい。
実施の形態に係る情報処理システムのブロック図である。 メモリの記憶領域を示す図である。 冗長領域を示す図である。 冗長領域を示す図である。 第1の実施の形態に係るエラー訂正処理のフローチャートである。 第2の実施の形態に係るエラー訂正処理のフローチャートである。 冗長領域を示す図である。 第3の実施の形態に係るエラー訂正処理のフローチャートである。 第4の実施の形態に係るエラー訂正処理のフローチャートである。 第5の実施の形態に係るメモリに格納されたECCを示す図である。 “Read Disturb”現象の発生動作を示す図である。
符号の説明
1 ホストシステム
2 メモリモジュール
3 メモリコントローラ
4 メモリ
41 データ領域
42 冗長領域
50 ECC指定情報
51 第1ECC
52 第2ECC

Claims (16)

  1. 第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納され、再書き込み可能な不揮発性半導体メモリと、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    データに対して第1のエラー訂正コードを利用して誤り訂正を行った後、読み出しデータに係る第2のエラー訂正コードを生成し、前記不揮発性半導体メモリに、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、
    を含むことを特徴とする半導体メモリシステム。
  2. データが格納される再書き込み可能な不揮発性半導体メモリと、
    前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    データに対して第1のエラー訂正コードを利用して誤り訂正を行った後、読み出しデータに係る第2のエラー訂正コードを生成し、前記訂正コード記憶手段に、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、
    を含むことを特徴とする半導体メモリシステム。
  3. 請求項または請求項に記載の半導体メモリシステムにおいて、
    前記エラー訂正コード格納手段は、読み出しデータに関してエラーが発生したとき、エラービットの数が所定の閾値を超えている場合に、第2のエラー訂正コードを格納することを特徴とする半導体メモリシステム。
  4. 請求項または請求項に記載の半導体メモリシステムにおいて、
    前記エラー訂正コード格納手段は、読み出しデータに関してエラーが発生したとき、エラービットの数に関わらず、第2のエラー訂正コードを格納することを特徴とする半導体メモリシステム。
  5. 第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納される再書き込み可能な不揮発性半導体メモリと、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    前記不揮発性半導体メモリからからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、読み出しデータに係る第2のエラー訂正コードを生成し、前記不揮発性半導体メモリに、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、
    を含むことを特徴とする半導体メモリシステム。
  6. データが格納される再書き込み可能な不揮発性半導体メモリと、
    前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードあるいは第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    前記不揮発性半導体メモリからからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、読み出しデータに係る第2のエラー訂正コードを生成し、前記訂正コード記憶手段に、生成した第2のエラー訂正コードを格納するエラー訂正コード格納手段と、
    を含むことを特徴とする半導体メモリシステム。
  7. 請求項1、2、5または請求項に記載の半導体メモリシステムにおいて、
    前記エラー訂正コード格納手段は、第2のエラー訂正コードを格納した後、前記指定情報についても、第2のエラー訂正コードを指定する情報に書き換えることを特徴とする半導体メモリシステム。
  8. 第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納される再書き込み可能な前記不揮発性半導体メモリと、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    読み出しデータに対して第1のエラー訂正コードを利用して誤り訂正を行った後、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段、
    を含むことを特徴とする半導体メモリシステム。
  9. データが格納される再書き込み可能な不揮発性半導体メモリと、
    前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    読み出しデータに対して第1のエラー訂正コードを利用して誤り訂正を行った後、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段と、
    を含むことを特徴とする半導体メモリシステム。
  10. 請求項または請求項に記載の半導体メモリシステムにおいて、
    前記指定情報変更手段は、読み出しデータに関してエラーが発生した場合であって、エラービットの数が所定の閾値を超えている場合に、前記指定情報を書き換えることを特徴とする半導体メモリシステム。
  11. 請求項または請求項に記載の半導体メモリシステムにおいて、
    前記指定情報変更手段は、読み出しデータに関してエラーが発生した場合、エラービットの数に関わらず、前記指定情報を書き換えることを特徴とする半導体メモリシステム。
  12. 第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが付加されたデータが格納される再書き込み可能な前記不揮発性半導体メモリと、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記不揮発性半導体メモリには、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    前記不揮発性半導体メモリからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段と、
    を含むことを特徴とする半導体メモリシステム。
  13. データが格納される再書き込み可能な不揮発性半導体メモリと、
    前記不揮発性半導体メモリに格納されたデータを訂正するための第1のエラー訂正コードおよび第1のエラー訂正コードより訂正能力の高い第2のエラー訂正コードが格納される訂正コード記憶手段と、
    前記不揮発性半導体メモリに対するアクセスを制御するメモリコントローラと、
    を備え、
    前記訂正コード記憶手段には、ページ単位で第1のエラー訂正コードが適用されているのか、第2のエラー訂正コードが適用されているのかを指定する指定情報が記憶されており、
    前記メモリコントローラは、第1のエラー訂正コードおよび第2のエラー訂正コードを利用した誤り訂正処理を実行することが可能であり、
    前記メモリコントローラは、
    前記不揮発性半導体メモリから読み出したデータに対して、前記指定情報で指定されている第1のエラー訂正コードあるいは第2のエラー訂正コードを利用して誤り訂正処理を実行する手段と、
    前記不揮発性半導体メモリからデータを読み出したとき、その領域の読み出し回数が、所定の回数を超えていた場合は、当該読み出しデータに関して第2のエラー訂正コードが適用されるよう前記指定情報を書き換える指定情報変更手段と、
    を含むことを特徴とする半導体メモリシステム。
  14. 請求項1、請求項2、請求項5、請求項6、請求項8、請求項9、請求項12および請求項13のいずれかに記載の半導体メモリシステムにおいて、
    前記不揮発性半導体メモリに記憶されるデータの中で、読み出しアクセスが多数発生すると想定されたデータに関しては、第2のエラー訂正コードが使用されることを特徴とする半導体メモリシステム。
  15. 請求項1、請求項2、請求項5、請求項6、請求項8、請求項9、請求項12および請求項13のいずれかに記載の半導体メモリシステムにおいて、
    前記不揮発性半導体メモリの記憶領域の中で、読み出しエラーが発生すると想定された記憶領域に格納されるデータに関しては、第2のエラー訂正コードが使用されることを特徴とする半導体メモリシステム。
  16. 請求項1、請求項2、請求項5、請求項6、請求項8、請求項9、請求項12および請求項13のいずれかに記載の半導体メモリシステムにおいて、
    前記不揮発性半導体メモリに記憶されるデータの中で、重要度の高いデータに関しては、第2のエラー訂正コードが使用されることを特徴とする半導体メモリシステム。
JP2007028170A 2007-02-07 2007-02-07 半導体メモリシステム Expired - Fee Related JP4925301B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007028170A JP4925301B2 (ja) 2007-02-07 2007-02-07 半導体メモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007028170A JP4925301B2 (ja) 2007-02-07 2007-02-07 半導体メモリシステム

Publications (2)

Publication Number Publication Date
JP2008192054A JP2008192054A (ja) 2008-08-21
JP4925301B2 true JP4925301B2 (ja) 2012-04-25

Family

ID=39752077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007028170A Expired - Fee Related JP4925301B2 (ja) 2007-02-07 2007-02-07 半導体メモリシステム

Country Status (1)

Country Link
JP (1) JP4925301B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5162763B2 (ja) * 2007-08-07 2013-03-13 株式会社メガチップス メモリアクセスシステム
JP2010237822A (ja) * 2009-03-30 2010-10-21 Toshiba Corp メモリコントローラおよび半導体記憶装置
KR101599834B1 (ko) 2009-05-28 2016-03-04 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
JP5540969B2 (ja) 2009-09-11 2014-07-02 ソニー株式会社 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
JP5467270B2 (ja) * 2010-04-28 2014-04-09 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
WO2012042444A1 (en) * 2010-09-29 2012-04-05 International Business Machines Corporation Decoding in solid state memory devices
JP2012094132A (ja) * 2010-10-01 2012-05-17 Siglead Inc 不揮発性半導体メモリ装置とデータ誤り訂正方法
US8756474B2 (en) * 2011-03-21 2014-06-17 Denso International America, Inc. Method for initiating a refresh operation in a solid-state nonvolatile memory device
JP5764392B2 (ja) 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
JP6177748B2 (ja) * 2014-09-25 2017-08-09 日立オートモティブシステムズ株式会社 組み込み制御装置
JP6657634B2 (ja) * 2015-07-24 2020-03-04 ソニー株式会社 符号化装置、メモリシステム、通信システムおよび符号化方法
US9921754B2 (en) * 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
US10552256B2 (en) * 2017-05-08 2020-02-04 Samsung Electronics Co., Ltd. Morphable ECC encoder/decoder for NVDIMM over DDR channel
JP6818666B2 (ja) * 2017-09-20 2021-01-20 キオクシア株式会社 メモリシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187248A (ja) * 1992-12-16 1994-07-08 Nec Corp データエラー検出訂正制御回路
JPH0816488A (ja) * 1994-06-29 1996-01-19 Nec Corp 電子ディスク装置
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding

Also Published As

Publication number Publication date
JP2008192054A (ja) 2008-08-21

Similar Documents

Publication Publication Date Title
JP4925301B2 (ja) 半導体メモリシステム
JP5137002B2 (ja) メモリコントローラ
JP5661227B2 (ja) メモリコントローラ
US10096357B2 (en) Data storage device and data writing method thereof
JP5028577B2 (ja) メモリ制御方法およびメモリシステム
US8452913B2 (en) Semiconductor memory device and method of processing data for erase operation of semiconductor memory device
JP5283845B2 (ja) ビットエラーの予防方法、情報処理装置
JP5162763B2 (ja) メモリアクセスシステム
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP6744950B1 (ja) 半導体装置および連続読出し方法
JPWO2009004674A1 (ja) 記憶装置、ディスク装置、書込み判定方法、制御装置
JP5602984B2 (ja) メモリコントローラ
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP2020086739A (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR100967026B1 (ko) 불휘발성 메모리 장치 및 그 캐쉬리드 방법
JP4501881B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661369B2 (ja) メモリコントローラ
JP4544167B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP2006221743A (ja) 記憶システムと半導体記憶装置の書き込み方法
JP4818453B1 (ja) 電子機器およびデータ読み出し方法
JP5207434B2 (ja) メモリシステム
US20110228605A1 (en) Nonvolatile memory
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2008084459A (ja) 不揮発性半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090323

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

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

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

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

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4925301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees