JP5162763B2 - メモリアクセスシステム - Google Patents

メモリアクセスシステム Download PDF

Info

Publication number
JP5162763B2
JP5162763B2 JP2007205651A JP2007205651A JP5162763B2 JP 5162763 B2 JP5162763 B2 JP 5162763B2 JP 2007205651 A JP2007205651 A JP 2007205651A JP 2007205651 A JP2007205651 A JP 2007205651A JP 5162763 B2 JP5162763 B2 JP 5162763B2
Authority
JP
Japan
Prior art keywords
memory
data
error
syndrome
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
JP2007205651A
Other languages
English (en)
Other versions
JP2009042911A (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 JP2007205651A priority Critical patent/JP5162763B2/ja
Priority to US12/170,102 priority patent/US8214725B2/en
Publication of JP2009042911A publication Critical patent/JP2009042911A/ja
Application granted granted Critical
Publication of JP5162763B2 publication Critical patent/JP5162763B2/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/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • 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/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術に関する。
不揮発性メモリの中でも、NANDフラッシュメモリは、単純な回路構成による高集積化および製造コスト減、ユーザによる書き込みの容易化を図ることができるため、SDメモリカードなどに大量に採用されている。
最近では、NANDフラッシュメモリは、ゲーム機などにも採用されている。NANDフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず連続的な読み出しが発生する。すなわち、NANDフラッシュメモリがROMのように採用されることが多くなりつつある。
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Read Disturb”現象と呼ばれており、本現象が発生するメカニズムについて以下に簡単に説明する。
図12は、NANDフラッシュメモリの模式図である。NANDフラッシュメモリは、格子状に配線されたビット線41とワード線42、43、44、メモリセル52、53、選択トランジスタ54などから構成されている。
メモリセル52が格納する2値データ(“0”または“1”)を読み出す場合を考える。この場合、メモリセル52は選択セル52、メモリセル53は非選択セル53と呼ばれている。まず、選択トランジスタ54により、選択セル52が属するビット線41が指定される。次に、選択セル52が属するワード線42に対して、低ゲート電圧V(Low)=0Vが印加される。そして、非選択セル53が属するワード線43に対して、高ゲート電圧V(High)〜5Vが印加される。
このとき、非選択セル53は微弱な書き込み状態にあるため、非選択セル53のフローティングゲートに電子がトラップされ蓄積される。すなわち、選択セル52が格納する2値データが繰り返し読み出されることにより、非選択セル53の閾値電圧がシフトして、非選択セル53が格納する2値データが“1”から“0”に意図せず書き換えられる可能性がある。
もっとも、非選択セル53が格納する2値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル53の機能を回復させることができる。しかし、書き込みは発生せず連続的な読み出しが発生する場合には、非選択セル53の機能を回復させることができない。
米国特許出願公開第2005/0210184号明細書
特許文献1は、メモリセル内部の制御方法により、“Read Disturb”現象を回避する手段を提供する。しかし、ここで開示されている方法は、特定のセル構造を有するメモリに対して適用可能な方法であり、他のセル構造に適用可能な方法ではない。つまり、メモリのセル構造に依存することなく、“Read Disturb”現象を回避できる方策ではない。
そこで、本発明は前記問題点に鑑み、不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術を提供することを目的とする。
上記課題を解決するため、請求項1記載の発明は、メモリに対してアクセスを制御するメモリコントローラと、前記メモリコントローラに対してコマンドを出力するホストと、を備えるメモリアクセスシステムであって、前記メモリコントローラは、前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが検出されるための第2シンドロームを生成する手段と、前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する誤り検出手段と、前記第3データのうち前記第2誤りが検出されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する誤り訂正手段と、前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、を備えることを特徴とする。
請求項2記載の発明は、メモリに対してアクセスを制御するメモリコントローラと、前記メモリコントローラに対してコマンドを出力するホストと、を備えるメモリアクセスシステムであって、前記ホストは、前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが検出されるための第2シンドロームを生成する手段と、を備え、前記メモリコントローラは、前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する誤り検出手段と、前記第3データのうち前記第2誤りが検出されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する誤り訂正手段と、前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、を備えることを特徴とする。
請求項3記載の発明は、請求項1または請求項2に記載のメモリアクセスシステムにおいて、前記メモリコントローラは、さらに、前記ホストが処理するために前記メモリから読み出されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段、を備えることを特徴とする。
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のメモリアクセスシステムにおいて、前記誤り検出手段および前記誤り訂正手段は、別個の回路により実現されることを特徴とする。
請求項5記載の発明は、請求項1ないし請求項3のいずれかに記載のメモリアクセスシステムにおいて、前記誤り検出手段および前記誤り訂正手段は、単一の回路により実現されることを特徴とする。
請求項6記載の発明は、メモリに対してアクセスを制御するメモリコントローラと、前記メモリコントローラに対してコマンドを出力するホストと、を備えるメモリアクセスシステムであって、前記メモリコントローラは、前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが訂正されるための第2シンドロームを生成する手段と、前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する手段と、前記第3データのうち前記第2誤りが検出されたデータについて、前記第2シンドロームを用いて前記第2誤りを訂正する手段と、前記第2誤りが訂正されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段と、前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、を備えることを特徴とする。
請求項7記載の発明は、メモリに対してアクセスを制御するメモリコントローラと、前記メモリコントローラに対してコマンドを出力するホストと、を備えるメモリアクセスシステムであって、前記ホストは、前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが訂正されるための第2シンドロームを生成する手段と、を備え、前記メモリコントローラは、前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する手段と、前記第3データのうち前記第2誤りが検出されたデータについて、前記第2シンドロームを用いて前記第2誤りを訂正する手段と、前記第2誤りが訂正されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段と、前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、を備えることを特徴とする。
請求項8記載の発明は、請求項6または請求項7に記載のメモリアクセスシステムにおいて、前記メモリコントローラは、さらに、前記ホストが処理するために前記メモリから読み出されたデータについて、前記第2シンドロームを用いて前記第2誤りを訂正する手段と、前記ホストが処理するために前記メモリから読み出されたデータのうち、前記第2誤りが訂正されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段と、を備えることを特徴とする。
請求項9記載の発明は、請求項1ないし請求項8のいずれかに記載のメモリアクセスシステムにおいて、前記第3データは、前記メモリにアクセスが行なわれていないときに、所定アルゴリズムを用いて選択されたアドレスから読み出されたデータ、を含むことを特徴とする。
請求項10記載の発明は、請求項1ないし請求項8のいずれかに記載のメモリアクセスシステムにおいて、前記第3データは、前記ホストが処理するために前記メモリから読み出されたデータ、を含むことを特徴とする。
請求項11記載の発明は、請求項1ないし請求項10のいずれかに記載のメモリアクセスシステムにおいて、前記第2データは、前記第1シンドローム、を含むことを特徴とする。
本発明に係るメモリアクセスシステムは、メモリに書き込む前のデータについて第1シンドロームを生成して、メモリに書き込んだ後のデータについて第2シンドロームを生成する。メモリアクセスシステムは、メモリにおいてスキャンしたデータについて、第2シンドロームを用いて、第2シンドロームが生成された後に発生した誤りを検出する。メモリアクセスシステムは、メモリにおいてスキャンしたデータのうち、第2シンドロームが生成された後に発生した誤りを検出したデータについて、第1シンドロームを用いて、第1シンドロームが生成された後に発生した誤りを訂正する。
本発明においては、メモリがROMのように使用されることを想定している。第2シンドロームが生成された後に発生した誤りは、“Read Disturb”現象による誤りである。第1シンドロームが生成された後に発生した誤りは、“Program Disturb”現象および“Read Disturb”現象による誤りである。
メモリアクセスシステムは、読み出しアドレスにおいて格納されるデータのみならず、スキャンアドレスにおいて格納されるデータについても、“Read Disturb”現象のみによる誤りを検出する。そのため、メモリアクセスシステムは、“Read Disturb”現象による誤りが過度に蓄積する前に、“Read Disturb”現象のみによる誤りを検出できる。そして、メモリアクセスシステムは、“Read Disturb”現象のみによる誤りを検出したデータについて、“Program Disturb”現象および“Read Disturb”現象による誤りを訂正できる。
これにより、メモリアクセスシステムは、“Program Disturb”現象および“Read Disturb”現象に対処するときに、過剰な誤り訂正能力を持つ必要がなくなる。そのため、メモリアクセスシステムは、回路規模を大きくすることなく、また、誤り検出および誤り訂正に時間を要することなく、“Read Disturb”現象を回避または低減できる。
{第1の実施の形態}
以下、図面を参照しつつ、第1の実施の形態について説明する。まず、メモリアクセスシステムおよびメモリの構成要素について説明する。次に、メモリアクセスシステムの処理の流れについて、以下に示す順序で説明する:(1)書き込み処理の流れ、(2)書き込み後における確認読み出し処理の流れ、(3)通常読み出し処理の流れ、(4)誤り検出後におけるリフレッシュ処理の流れ。
<メモリアクセスシステムおよびメモリの構成要素>
図1、図3、図5は、メモリアクセスシステムおよびメモリの構成要素を示すブロック図である。図1は、書き込み処理の流れにおける情報のやり取りをも示している。図3は、確認読み出し処理の流れにおける情報のやり取りをも示している。図5は、通常読み出し処理の流れにおける情報のやり取りをも示している。
メモリアクセスシステムは、メモリ3にアクセスするシステムであり、ホスト1、メモリコントローラ2などから構成される。ホスト1は、メモリ3にデータを書き込むように、また、メモリ3からデータを読み出すように、メモリコントローラ2に要求する。また、ホスト1は、ホスト1に誤り検出結果を通知するように、また、メモリ3に誤り訂正を行なったデータを書き込むように、メモリコントローラ2に要求する。
メモリコントローラ2は、ホスト1から要求を受けることにより、メモリ3にデータを書き込み、また、メモリ3からデータを読み出す。また、メモリコントローラ2は、メモリ3をスキャンして誤り検出を行なう。そして、メモリコントローラ2は、ホスト1から要求を受けることにより、ホスト1に誤り検出結果を通知して、また、メモリ3に誤り訂正を行なったデータを書き込む。
メモリ3は、メモリコントローラ2から要求を受けることにより、メモリコントローラ2からデータを入力して、また、メモリコントローラ2にデータを出力する。また、メモリ3は、ホスト1が書き込みおよび読み出しを行なうデータのみならず、メモリコントローラ2が誤り検出および誤り訂正を行なうためのシンドロームをも格納する。
本実施の形態におけるメモリ3として、SLC(Single−Level Cell)方式、または、MLC(Multi−Level Cell)方式のNANDフラッシュメモリを使用することが可能である。より一般的には、読み出しアドレスにおいて格納されるデータが繰り返し読み出されるときに、非読み出しアドレスにおいて格納されるデータが意図せず書き換えられる可能性がある不揮発性メモリにおいて、本実施の形態を実施することが可能である。
メモリコントローラ2は、ホストインターフェース21、制御部22、メモリインターフェース23、セレクタ24、25、ECC(Error Correction Code)回路26、EDC(Error Detection Code)回路27などから構成される。
ホストインターフェース21は、ホスト1およびメモリコントローラ2が、データ、コマンド、RDY/BSY信号、誤り検出結果などをやり取りするためのインターフェースである。
制御部22は、メモリコントローラ2を制御するための機能部である。制御部22は、ホスト1から書き込みコマンドおよび書き込みデータを入力したときには、メモリ3に書き込みコマンドおよび書き込みデータを出力する。制御部22は、ホスト1から読み出しコマンドを入力したときには、メモリ3に読み出しコマンドを出力して、ホスト1に読み出しデータを出力する。
制御部22は、ホスト1に読み出しデータを出力するときには、読み出しアドレスに限定せずに選択したスキャンアドレスにおいてメモリ3をスキャンして、誤り検出結果を格納する。制御部22は、ホスト1からStatusコマンドを入力したときには、ホスト1に誤り検出結果を通知する。制御部22は、ホスト1からRefreshコマンドを入力したときには、メモリ3に誤り訂正が行なわれたデータを書き込む。
メモリインターフェース23は、メモリコントローラ2およびメモリ3が、データ、コマンド、制御信号、RDY/BSY信号などをやり取りするためのインターフェースである。
セレクタ24は、制御部22から2値信号“0”を入力するときには、入力した書き込みデータを出力する。セレクタ24は、制御部22から2値信号“1”を入力するときには、入力した後述の第1シンドロームを出力する。
セレクタ25は、制御部22から2値信号“0”を入力するときには、入力した書き込みデータまたは第1シンドロームを出力する。セレクタ25は、制御部22から2値信号“1”を入力するときには、入力した後述の第2シンドロームを出力する。
ECC回路26は、誤り検出および誤り訂正を行なう回路である。ECC回路26は、メモリ3に書き込まれる前のデータについて、第1シンドロームを生成する。そして、ECC回路26は、読み出しアドレスにおいて格納されるデータについて、第1シンドロームを用いて、誤り検出および誤り訂正を行なう。
EDC回路27は、誤り検出を行なう回路である。EDC回路27は、メモリ3に書き込まれた後のデータについて、第2シンドロームを生成する。そして、EDC回路27は、スキャンアドレスにおいて格納されるデータについて、第2シンドロームを用いて、誤り検出を行なう。
本実施の形態においては、メモリ3がROMのように使用されることを想定している。メモリ3に書き込まれる前のデータには、誤りが含まれていない。メモリ3に書き込まれた後のデータには、“Program Disturb”現象による誤りが含まれている可能性がある。読み出しアドレスおよびスキャンアドレスにおいて格納されるデータには、“Program Disturb”現象による誤りのみならず、“Read Disturb”現象による誤りが含まれている可能性がある。
ECC回路26が生成する第1シンドロームは、メモリ3に書き込まれる前のデータを基準として書き込み時に発生する、“Program Disturb”現象および“Read Disturb”現象による誤りに対処する。EDC回路27が生成する第2シンドロームは、メモリ3に書き込まれた後のデータを基準として書き込み後に発生する、“Read Disturb”現象のみによる誤りに対処する。
ECC回路26およびEDC回路27は、それぞれ、第1シンドロームおよび第2シンドロームをそれぞれ生成する。メモリコントローラ2は、第2シンドロームを用いて、“Read Disturb”現象のみによる誤りを検出できる。また、メモリコントローラ2は、第1シンドロームを用いて、“Read Disturb”現象のみによる誤りを検出したデータについて、“Program Disturb”現象および“Read Disturb”現象による誤りを検出および訂正できる。
<書き込み処理の流れ>
次に、図1および図2を用いて、書き込み処理の流れについて説明する。図2は、メモリコントローラ2における書き込み処理の流れを示すフローチャートである。書き込み処理の流れにおいては、ホスト1はメモリ3にデータを書き込む。また、制御部22はメモリ3にECC回路26により生成された第1シンドロームを書き込むための制御を行なう。ここで、メモリアクセスシステムおよびメモリ3の製造段階において、大量生産に対応するデータ書き込み装置が、メモリ3にデータを書き込んでもよい。
制御部22は、ホストインターフェース21を介してホスト1から、書き込みコマンドおよび書き込みデータを入力する(ステップS11)。制御部22は、書き込みコマンドを入力したことを認識する。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のBUSY状態を示すRDY/BSY信号“0”を出力する。
制御部22は、メモリインターフェース23を介してメモリ3に、書き込みコマンドおよび書き込み制御信号を出力する(ステップS12)。制御部22は、セレクタ24に2値信号“0”を、セレクタ25に2値信号“0”を出力する。制御部22は、セレクタ24、25、メモリインターフェース23を介してメモリ3に、書き込みデータを出力する(ステップS12)。
ECC回路26は、制御部22がメモリ3に書き込みデータを出力しているときに、書き込みデータについて第1シンドロームを生成する(ステップS13)。制御部22は、メモリ3に書き込みデータを出力し終わったときに、セレクタ24に2値信号“1”を、セレクタ25に2値信号“0”を出力する。制御部22は、セレクタ24、25、メモリインターフェース23を介してメモリ3に、ECC回路26により生成された第1シンドロームを書き込むための制御を行なう(ステップS14)。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のREADY状態を示すRDY/BSY信号“1”を出力する。
ホスト1は、書き込み処理を完了していないならば、ホストインターフェース21を介してメモリコントローラ2に、新たに書き込みコマンドおよび書き込みデータを出力する。そして、ステップS11からステップS14までの処理の流れが実行される。ホスト1は、書き込み処理を完了しているならば、図3および図4を用いて説明する確認読み出し処理を開始する。
書き込み処理が完了した段階では、データ311、312、313・・・、第1シンドローム321、322、323・・・が、メモリ3に書き込まれている。第1シンドローム321、322、323・・・は、それぞれ、メモリ3に書き込まれる前のデータ311、312、313・・・について、ECC回路26により生成されたシンドロームである。すなわち、第1シンドローム321、322、323・・・は、それぞれ、メモリ3に書き込まれる前のデータ311、312、313・・・を基準とした誤りに対処するシンドロームである。
<書き込み後における確認読み出し処理の流れ>
次に、図3および図4を用いて、書き込み後における確認読み出し処理の流れについて説明する。図4は、メモリコントローラ2における確認読み出し処理の流れを示すフローチャートである。確認読み出し処理の流れにおいては、ホスト1はメモリ3からデータを読み出す。そして、ホスト1はメモリ3に書き込んだデータとメモリ3から読み出したデータが一致するかどうかを確認する。また、制御部22はメモリ3にEDC回路27により生成された第2シンドロームを書き込むための制御を行なう。ここで、大量生産に対応するデータ書き込み装置が、メモリ3からデータを読み出してもよい。
制御部22は、ホストインターフェース21を介してホスト1から、読み出しコマンドを入力する(ステップS21)。制御部22は、読み出しコマンドを入力したことを認識する。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のBUSY状態を示すRDY/BSY信号“0”を出力する。
制御部22は、メモリインターフェース23を介してメモリ3に、読み出しコマンドおよび読み出し制御信号を出力する(ステップS22)。ここで、制御部22がメモリ3に出力する読み出しコマンドは、メモリ3からデータおよびそのデータについての第1シンドロームを読み出すためのコマンドである。
EDC回路27は、メモリインターフェース23を介してメモリ3から、読み出しデータを入力する。EDC回路27は、読み出しデータについて第2シンドロームを生成する(ステップS23)。ECC回路26は、メモリインターフェース23を介してメモリ3から、読み出しデータおよびその読み出しデータについての第1シンドロームを入力する。ECC回路26は、第1シンドロームを用いて読み出しデータについて、誤り検出および誤り訂正を行なう(ステップS24)。制御部22は、セレクタ25に2値信号“1”を出力する。制御部22は、セレクタ25、メモリインターフェース23を介してメモリ3に、EDC回路27により生成された第2シンドロームを書き込むための制御を行なう(ステップS25)。
制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のREADY状態を示すRDY/BSY信号“1”を出力する。ECC回路26は、ホストインターフェース21を介してホスト1に、誤り訂正を行なった読み出しデータを出力する(ステップS26)。ホスト1は、ステップS11においてメモリ3に書き込んだデータ、および、ステップS26においてメモリ3から読み出したデータを比較する。ホスト1が両データは一致すると確認したときには、メモリ3に書き込まれた後のデータが“Program Disturb”現象による誤りを含むとしても、ホスト1が読み出しデータを処理するときに問題は生じない。
ホスト1は、確認読み出し処理を完了していないならば、ホストインターフェース21を介してメモリコントローラ2に、新たに読み出しコマンドを出力する。そして、ステップS21からステップS26までの処理の流れが実行される。ホスト1は、確認読み出し処理を完了しているならば、図5および図6を用いて説明する通常読み出し処理を開始できる。
確認読み出し処理が完了した段階では、第2シンドローム331、332、333・・・が、さらにメモリ3に書き込まれている。第2シンドローム331、332、333・・・は、それぞれ、メモリ3に書き込まれた後のデータ311、312、313・・・について、EDC回路27により生成されたシンドロームである。すなわち、第2シンドローム331、332、333・・・は、それぞれ、メモリ3に書き込まれた後のデータ311、312、313・・・を基準とした誤りに対処するシンドロームである。
ここで、第2シンドローム331、332、333・・・は、それぞれ、メモリ3に書き込まれた後のデータ311、312、313・・・についてのみならず、メモリ3に書き込まれた後の第1シンドローム321、322、323・・・について、EDC回路27により生成されるシンドロームであってもよい。この場合には、第2シンドローム331、332、333・・・は、それぞれ、メモリ3に書き込まれた後のデータ311、312、313・・・を基準とした誤りのみならず、メモリ3に書き込まれた後の第1シンドローム321、322、323・・・を基準とした誤りにも対処できる。
<通常読み出し処理の流れ>
次に、図5および図6を用いて、通常読み出し処理の流れについて説明する。図6は、メモリコントローラ2における通常読み出し処理の流れを示すフローチャートである。通常読み出し処理の流れにおいては、ホスト1はメモリ3からデータを読み出す。また、制御部22はメモリ3をスキャンする。そして、EDC回路27はスキャンデータについて誤り検出を行なう。
制御部22は、ホストインターフェース21を介してホスト1から、読み出しコマンドを入力する(ステップS31)。制御部22は、読み出しコマンドを入力したことを認識する。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のBUSY状態を示すRDY/BSY信号“0”を出力する。
制御部22は、メモリインターフェース23を介してメモリ3に、読み出しコマンドおよび読み出し制御信号を出力する(ステップS32)。ここで、制御部22がメモリ3に出力する読み出しコマンドは、メモリ3からデータおよびそのデータについての第1シンドロームを読み出すためのコマンドである。
ECC回路26は、メモリインターフェース23を介してメモリ3から、読み出しデータおよびその読み出しデータについての第1シンドロームを入力する。ECC回路26は、第1シンドロームを用いて読み出しデータについて、誤り検出および誤り訂正を行なう(ステップS33)。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のREADY状態を示すRDY/BSY信号“1”を出力する。ECC回路26は、ホストインターフェース21を介してホスト1に、誤り訂正を行なった読み出しデータを出力する(ステップS34)。
制御部22は、ECC回路26がホスト1に誤り訂正を行なった読み出しデータを出力しているときに、メモリ3をスキャンする(ステップS34)。ここで、制御部22がメモリ3に出力するスキャンアドレスは、スキャンデータが格納されるアドレスである。さらに、制御部22は、そのスキャンデータについての第2シンドロームが格納されるアドレスを、メモリ3に出力する。また、メモリ3にアクセスが行なわれていないときに、制御部22がメモリ3をスキャンしてもよい。たとえば、ホスト1の電源がオンまたはオフにされるときに、制御部22がメモリ3をスキャンしてもよい。
制御部22がメモリ3をスキャンする方法として、様々な方法が考えられる。たとえば、制御部22は、乱数発生によりスキャン開始アドレスを選択する。また、制御部22は、スキャン開始アドレスからアドレスインクリメントを行なうことにより、更なるスキャンアドレスを選択する。そして、制御部22は、スキャン開始アドレスおよび更なるスキャンアドレスについて、メモリ3をスキャンしてもよい。この場合には、制御部22は、読み出しアドレスに限定されない広範囲のスキャンアドレスについて、簡易にメモリ3をスキャンできる。
また、制御部22は、重要データが格納されるアドレスを選択する。重要データとして、誤りを含むならばホスト1の処理に障害を発生させるデータなどがあげられる。ただし、制御部22は、重要データが格納されるアドレスからアドレスインクリメントを行なわない。そして、制御部22は、重要データが格納されるアドレスのみについて、メモリ3をスキャンしてもよい。この場合には、制御部22は、重要データが格納されるアドレスのみについて、集中的にメモリ3をスキャンできる。
EDC回路27は、メモリインターフェース23を介してメモリ3から、スキャンデータおよびそのスキャンデータについての第2シンドロームを入力する。EDC回路27は、第2シンドロームを用いてスキャンデータについて誤り検出を行なう(ステップS35)。EDC回路27は、制御部22に誤り検出結果を出力する。制御部22は、誤り検出結果を格納する(ステップS36)。
ホスト1は、通常読み出し処理を完了していないならば、ホストインターフェース21を介してメモリコントローラ2に、新たに読み出しコマンドを出力する。そして、ステップS31からステップS36までの処理の流れが実行される。ホスト1は、通常読み出し処理を完了しているならば、図7を用いて説明するリフレッシュ処理を開始できる。
<誤り検出後におけるリフレッシュ処理の流れ>
次に、図7を用いて、誤り検出後におけるリフレッシュ処理の流れについて説明する。図7は、メモリコントローラ2におけるリフレッシュ処理の流れを示すフローチャートである。リフレッシュ処理の流れにおいては、ホスト1は、誤り検出結果を通知するように、メモリコントローラ2に要求する。そして、ホスト1は、誤り検出が行なわれたデータについて誤り訂正を行なうように、メモリコントローラ2に要求する。そして、ECC回路26は、誤り検出が行なわれたデータについて誤り訂正を行なう。
制御部22は、ホストインターフェース21を介してホスト1から、Statusコマンドを入力する(ステップS41)。ホスト1がメモリコントローラ2にStatusコマンドを出力するタイミングとして、たとえば、ホスト1の電源がオンまたはオフにされるときがあげられる。また、ホスト1がメモリコントローラ2に読み出しコマンドを出力した回数が所定回数を超えたときがあげられる。制御部22は、Statusコマンドを入力したことを認識する。制御部22は、ホストインターフェース21を介してホスト1に、誤り検出結果を出力する(ステップS42)。
制御部22は、ホストインターフェース21を介してホスト1から、Refreshコマンドを入力する(ステップS43)。制御部22は、Refreshコマンドを入力したことを認識する。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のBUSY状態を示すRDY/BSY信号“0”を出力する。制御部22は、メモリ3をリフレッシュする。ここで、制御部22がメモリ3に出力するリフレッシュ対象アドレスは、リフレッシュ対象データが格納されるアドレスである。さらに、制御部22は、そのリフレッシュ対象データについての第1シンドロームが格納されるアドレスを、メモリ3に出力する。
ECC回路26は、メモリインターフェース23を介してメモリ3から、リフレッシュ対象データおよびそのリフレッシュ対象データについての第1シンドロームを入力する。ECC回路26は、第1シンドロームを用いてリフレッシュ対象データについて、誤り検出および誤り訂正を行なう(ステップS44)。ECC回路26は、制御部22に誤り訂正を行なったリフレッシュ対象データを出力する。制御部22は、メモリインターフェース23を介してメモリ3に、誤り訂正が行なわれたリフレッシュ対象データを出力する(ステップS45)。制御部22は、ホストインターフェース21を介してホスト1に、メモリ3のREADY状態を示すRDY/BSY信号“1”を出力する。
ホスト1は、リフレッシュ処理を完了していないならば、ホストインターフェース21を介してメモリコントローラ2に、新たにRefreshコマンドを出力する。そして、ステップS43からステップS45までの処理の流れが実行される。ホスト1は、リフレッシュ処理を完了しているならば、図5および図6を用いて説明した通常読み出し処理を開始できる。また、ホスト1およびメモリコントローラ2は、図1から図4までを用いて説明したように、新たに第1シンドロームおよび第2シンドロームを生成できる。
<第1の実施の形態についてのまとめ>
次に、図8および図9を用いて、第1の実施の形態についてまとめる。図8は、シンドローム生成処理の流れを示す図である。「書き込みデータ」は、メモリ3に書き込まれる前のデータである。「確認読み出しデータ」は、メモリ3に書き込まれた後のデータである。「通常読み出しデータ」は、読み出しアドレスにおいて格納されるデータである。
書き込みデータを模式的に「101010」とする。ECC回路26は、書き込みデータについて、第1シンドロームを生成する(ステップS13)。第1シンドロームは、その第1シンドロームが生成された後に、書き込みデータに蓄積された誤りに対処する。この誤りには、“Program Disturb”現象および“Read Disturb”現象による誤りが含まれる。
確認読み出しデータを模式的に「111011」とする。確認読み出しデータおよび書き込みデータを比較すれば、一重線部分において“0”が“1”に意図せず書き換えられる“Program Disturb”現象が発生している。EDC回路27は、確認読み出しデータについて、第2シンドロームを生成する(ステップS23)。第2シンドロームは、その第2シンドロームが生成された後に、確認読み出しデータに蓄積された誤りに対処する。この誤りには、“Read Disturb”現象のみによる誤りが含まれる。
通常読み出しデータを模式的に「110011」とする。通常読み出しデータおよび確認読み出しデータを比較すれば、二重線部分において“1”が“0”に意図せず書き換えられる“Read Disturb”現象が発生している。
図9は、誤り検出処理および誤り訂正処理の流れを示す図である。本実施の形態においては、メモリ3がROMのように使用されることを想定している。すなわち、メモリ3への書き込みは基本的には1回のみ行なわれるが、メモリ3からの読み出しは繰り返し行なわれる。そのため、“Program Disturb”現象が発生する頻度は容易に保証できるが、“Read Disturb”現象が発生する頻度は容易に保証できない。
図9においては、“Program Disturb”現象が発生する頻度を、512Byteのうち4bitと保証する。EDC回路27は、512Byteのうち2bitの誤りを検出できる。ECC回路26は、512Byteのうち5bitの誤りを訂正できる。
制御部22は、読み出しアドレスに限定されないスキャンアドレスについて、メモリ3をスキャンする(ステップS34)。EDC回路27は、第2シンドロームを用いて、スキャンデータ「110011」について、“Read Disturb”現象のみによる誤りを検出する(ステップS35)。EDC回路27は、制御部22に誤り検出結果を出力する(ステップS36)。
スキャンデータ「110011」に、“Read Disturb”現象による誤りが含まれているとしても、EDC回路27は“Read Disturb”現象のみによる誤りを早期に検出できる。また、EDC回路27は“Read Disturb”現象のみによる誤りを検出するだけである。そのため、EDC回路27は“Read Disturb”現象のみによる誤りを高速に検出できる。
ECC回路26は、第1シンドロームを用いて、通常読み出しデータ(あるいはリフレッシュ対象データ)「110011」について、“Program Disturb”現象および“Read Disturb”現象による誤りを検出して訂正する(ステップS33、ステップS44)。ECC回路26は、制御部22に誤り訂正を行なった通常読み出しデータ(あるいはリフレッシュ対象データ)「101010」を出力する。
通常読み出しデータ(あるいはリフレッシュ対象データ)「110011」に、“Read Disturb”現象による誤りが含まれているとしても、多くは含まれていない。たとえば、“Read Disturb”現象が発生する頻度を、512Byteのうち1bitと保証できる。そのため、ECC回路26は“Program Disturb”現象および“Read Disturb”現象による誤りを検出して訂正するために、過剰な誤り訂正能力を持つ必要がなくなる。
すなわち、“Program Disturb”現象が発生する頻度(512Byteのうち4bit)、および、“Read Disturb”現象が発生する頻度(512Byteのうち1bit)を考慮して、ECC回路26の誤り訂正能力を512Byteのうち5bitに低く設定できる。また、メモリコントローラ2は、回路規模を大きくすることなく、誤り検出および誤り訂正に要する時間を短縮できる。
ECC回路26は、“Read Disturb”現象のみによる誤りを検出されたスキャンデータについて、誤り検出および誤り訂正を行なう。ECC回路26は、“Program Disturb”現象による誤りをも検出されたデータについて、誤り検出および誤り訂正を行なうわけではない。そのため、メモリコントローラ2は、誤り検出および誤り訂正に要する時間を短縮できる。また、メモリコントローラ2は、過剰なリフレッシュ処理によるメモリセルの劣化を防止できる。
{第2の実施の形態}
次に、図10を用いて、第2の実施の形態について説明する。図10は、第2の実施の形態に係る誤り検出処理および誤り訂正処理の流れを示す図である。第1および第2の実施の形態に係るメモリコントローラ2の相違点として、第2の実施の形態に係るメモリコントローラ2は、ECC回路26に代えてECC回路28を、EDC回路27に代えてECC回路29を備える。
第2の実施の形態においても、第1の実施の形態と同様に、“Program Disturb”現象が発生する頻度を、512Byteのうち4bitと保証する。ECC回路29は、512Byteのうち1bitの誤りを訂正できる。そのため、ECC回路29は、512Byteのうち少なくとも2bitの誤りを検出できる。ECC回路28は、512Byteのうち4bitの誤りを訂正できる。
第1および第2の実施の形態における処理の流れの相違点として、誤り訂正処理の流れが異なる(ステップS24、ステップS33、ステップS44に相当)。まず、シンドローム生成処理の流れについて説明する。ECC回路28は、書き込みデータ「101010」について、第1シンドロームを生成する(ステップS13に相当)。ECC回路29は、確認読み出しデータ「111011」について、第2シンドロームを生成する(ステップS23に相当)。
次に、誤り検出処理の流れについて説明する。ECC回路29は、第2シンドロームを用いて、スキャンデータ「110011」について、“Read Disturb”現象のみによる誤りを検出する(ステップS35に相当)。ECC回路29は、制御部22に誤り検出結果を出力する(ステップS36に相当)。
次に、誤り訂正処理の流れについて説明する。ECC回路29は、第2シンドロームを用いて、通常読み出しデータ(あるいはリフレッシュ対象データ)「110011」について、“Read Disturb”現象のみによる誤りを検出して訂正する。ECC回路29は、ECC回路28に、“Read Disturb”現象のみによる誤りを訂正した通常読み出しデータ(あるいはリフレッシュ対象データ)「111011」を出力する。
ECC回路28は、第1シンドロームを用いて、“Read Disturb”現象のみによる誤りを訂正された通常読み出しデータ(あるいはリフレッシュ対象データ)「111011」について、“Program Disturb”現象のみによる誤りを検出して訂正する。ECC回路28は、制御部22に、“Program Disturb”現象および“Read Disturb”現象による誤りを訂正された通常読み出しデータ(あるいはリフレッシュ対象データ)「101010」を出力する。
第1の実施の形態においては、図9を用いて説明したように、ECC回路26は誤り訂正能力を備えるが、EDC回路27は誤り訂正能力を備えていない。しかし、第2の実施の形態においては、図10を用いて説明したように、ECC回路28およびECC回路29はともに誤り訂正能力を備える。そのため、第2の実施の形態に係るメモリコントローラ2は、第1の実施の形態に係るメモリコントローラ2より、誤り検出および誤り訂正に時間を要するとしても、ECC回路28はECC回路26より誤り訂正能力を低くすることができる。
{第3の実施の形態}
次に、図11を用いて、第3の実施の形態について説明する。図11は、第3の実施の形態に係る誤り検出処理および誤り訂正処理の流れを示す図である。第1および第3の実施の形態に係るメモリコントローラ2の相違点として、第3の実施の形態に係るメモリコントローラ2は、ECC回路26およびEDC回路27に代えてECC回路30を備える。
すなわち、第1の実施の形態においては、ECC回路26およびEDC回路27は別個の回路ブロックで構成されて、第2の実施の形態においては、ECC回路28およびECC回路29は別個の回路ブロックで構成される。しかし、第3の実施の形態においては、ECC回路30は単一の回路ブロックで構成される。
第3の実施の形態においても、第1の実施の形態と同様に、“Program Disturb”現象が発生する頻度を、512Byteのうち4bitと保証する。ECC回路30は、512Byteのうち5bitの誤りを訂正できる。
第1および第3の実施の形態における処理の流れの相違点として、誤り訂正処理の流れが異なる(ステップS24、ステップS33、ステップS44に相当)。まず、シンドローム生成処理の流れについて説明する。ECC回路30は、書き込みデータ「101010」について、第1シンドロームを生成する(ステップS13に相当)。ECC回路30は、確認読み出しデータ「111001」について、第2シンドロームを生成する(ステップS23に相当)。
次に、誤り検出処理の流れについて説明する。ECC回路30は、第2シンドロームを用いて、スキャンデータ「110011」について、“Read Disturb”現象のみによる誤りを検出する(ステップS35に相当)。ECC回路30は、制御部22に誤り検出結果を出力する(ステップS36に相当)。
次に、誤り訂正処理の流れについて説明する。ECC回路30は、第1シンドロームを用いて、通常読み出しデータ(あるいはリフレッシュ対象データ)「110011」について、“Program Disturb”現象および“Read Disturb”現象による誤りを検出して訂正する(ステップS33、ステップS44に相当)。ECC回路30は、制御部22に、“Program Disturb”現象および“Read Disturb”現象による誤りを訂正した通常読み出しデータ(あるいはリフレッシュ対象データ)「101010」を出力する。
第1の実施の形態においては、図9を用いて説明したように、メモリコントローラ2は、誤り検出および誤り訂正を行なう回路を2個に分割している。しかし、第3の実施の形態においては、図11を用いて説明したように、メモリコントローラ2は、誤り検出および誤り訂正を行なう回路を1個にまとめている。そのため、第3の実施の形態に係るメモリコントローラ2は、第1の実施の形態に係るメモリコントローラ2より、誤り検出および誤り訂正に時間を要するとしても、回路規模をより小さくできる。
{変形例}
<通常読み出しデータについての誤り検出>
第1の実施の形態においては、EDC回路27は、第2シンドロームを用いて、スキャンデータについて、“Read Disturb”現象のみによる誤りを検出する。ここで、EDC回路27は、第2シンドロームを用いて、通常読み出しデータについて、“Read Disturb”現象のみによる誤りを検出してもよい。
制御部22は、メモリインターフェース23を介してメモリ3に、読み出しコマンドおよび読み出し制御信号を出力する。ここで、制御部22がメモリ3に出力する読み出しコマンドは、メモリ3からデータおよびそのデータについての第1シンドロームおよび第2シンドロームを読み出すためのコマンドである。
ECC回路26は、メモリインターフェース23を介してメモリ3から、読み出しデータおよびその読み出しデータについての第1シンドロームを入力する。EDC回路27は、メモリインターフェース23を介してメモリ3から、読み出しデータおよびその読み出しデータについての第2シンドロームを入力する。
ECC回路26は、第1シンドロームを用いて読み出しデータについて誤り検出および誤り訂正を行なう。ECC回路26は、ホストインターフェース21を介してホスト1に、誤り訂正を行なった読み出しデータを出力する。EDC回路27は、第2シンドロームを用いて読み出しデータについて誤り検出を行なう。EDC回路27は、制御部22に読み出しデータについての誤り検出結果を通知する。
本変形例においても、第1の実施の形態と同様に、制御部22は、ECC回路26がホスト1に誤り訂正を行なった読み出しデータを出力しているときに、メモリ3をスキャンしてもよい。この場合には、EDC回路27は、制御部22に読み出しデータについての誤り検出結果のみならず、スキャンデータについての誤り検出結果をも通知できる。
第2の実施の形態においても、ECC回路29は、第2シンドロームを用いて、通常読み出しデータについて、“Read Disturb”現象のみによる誤りを検出してもよい。第3の実施の形態においても、ECC回路30は、第2シンドロームを用いて、通常読み出しデータについて、“Read Disturb”現象のみによる誤りを検出してもよい。
<ホストによるシンドローム生成>
第1から第3までの実施の形態においては、メモリコントローラ2が第1シンドロームおよび第2シンドロームを生成する。ここで、ホスト1が第1シンドロームおよび第2シンドロームを生成してもよい。
まず、ホスト1は、メモリ3に書き込む前のデータについて、第1シンドロームを生成する。そして、ホスト1は、書き込みデータおよび第1シンドロームをメモリ3に書き込めばよい。
次に、ホスト1は、メモリ3に書き込んだ後のデータを、ECC回路26、28、30を介さずにメモリ3から読み出す。そして、ホスト1は、メモリ3に書き込んだ後のデータについて、第2シンドロームを生成する。さらに、ホスト1は、第2シンドロームをメモリ3に書き込めばよい。
メモリアクセスシステムおよびメモリの構成要素を示すブロック図である。 書き込み処理の流れを示すフローチャートである。 メモリアクセスシステムおよびメモリの構成要素を示すブロック図である。 確認読み出し処理の流れを示すフローチャートである。 メモリアクセスシステムおよびメモリの構成要素を示すブロック図である。 通常読み出し処理の流れを示すフローチャートである。 リフレッシュ処理の流れを示すフローチャートである。 シンドローム生成処理の流れを示す図である。 誤り検出処理および誤り訂正処理の流れを示す図である。 誤り検出処理および誤り訂正処理の流れを示す図である。 誤り検出処理および誤り訂正処理の流れを示す図である。 NANDフラッシュメモリの模式図である。
符号の説明
1 ホスト
2 メモリコントローラ
3 メモリ
21 ホストインターフェース
22 制御部
23 メモリインターフェース
24、25 セレクタ
26 ECC回路
27 EDC回路

Claims (11)

  1. メモリに対してアクセスを制御するメモリコントローラと、
    前記メモリコントローラに対してコマンドを出力するホストと、
    を備えるメモリアクセスシステムであって、
    前記メモリコントローラは、
    前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、
    前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが検出されるための第2シンドロームを生成する手段と、
    前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する誤り検出手段と、
    前記第3データのうち前記第2誤りが検出されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する誤り訂正手段と、
    前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、
    を備えることを特徴とするメモリアクセスシステム。
  2. メモリに対してアクセスを制御するメモリコントローラと、
    前記メモリコントローラに対してコマンドを出力するホストと、
    を備えるメモリアクセスシステムであって、
    前記ホストは、
    前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、
    前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが検出されるための第2シンドロームを生成する手段と、
    を備え、
    前記メモリコントローラは、
    前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する誤り検出手段と、
    前記第3データのうち前記第2誤りが検出されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する誤り訂正手段と、
    前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、
    を備えることを特徴とするメモリアクセスシステム。
  3. 請求項1または請求項2に記載のメモリアクセスシステムにおいて、
    前記メモリコントローラは、さらに、
    前記ホストが処理するために前記メモリから読み出されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段、
    を備えることを特徴とするメモリアクセスシステム。
  4. 請求項1ないし請求項3のいずれかに記載のメモリアクセスシステムにおいて、
    前記誤り検出手段および前記誤り訂正手段は、別個の回路により実現されることを特徴とするメモリアクセスシステム。
  5. 請求項1ないし請求項3のいずれかに記載のメモリアクセスシステムにおいて、
    前記誤り検出手段および前記誤り訂正手段は、単一の回路により実現されることを特徴とするメモリアクセスシステム。
  6. メモリに対してアクセスを制御するメモリコントローラと、
    前記メモリコントローラに対してコマンドを出力するホストと、
    を備えるメモリアクセスシステムであって、
    前記メモリコントローラは、
    前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、
    前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが訂正されるための第2シンドロームを生成する手段と、
    前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する手段と、
    前記第3データのうち前記第2誤りが検出されたデータについて、前記第2シンドロームを用いて前記第2誤りを訂正する手段と、
    前記第2誤りが訂正されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段と、
    前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、
    を備えることを特徴とするメモリアクセスシステム。
  7. メモリに対してアクセスを制御するメモリコントローラと、
    前記メモリコントローラに対してコマンドを出力するホストと、
    を備えるメモリアクセスシステムであって、
    前記ホストは、
    前記メモリに書き込まれる前の第1データについて、前記第1データに発生する第1誤りが訂正されるための第1シンドロームを生成する手段と、
    前記メモリに書き込まれた後の第2データについて、前記第2データに発生する第2誤りが訂正されるための第2シンドロームを生成する手段と、
    を備え、
    前記メモリコントローラは、
    前記メモリから読み出された第3データについて、前記第2シンドロームを用いて前記第2誤りを検出する手段と、
    前記第3データのうち前記第2誤りが検出されたデータについて、前記第2シンドロームを用いて前記第2誤りを訂正する手段と、
    前記第2誤りが訂正されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段と、
    前記第1誤りが訂正されたデータを前記メモリに書き込む手段と、
    を備えることを特徴とするメモリアクセスシステム。
  8. 請求項6または請求項7に記載のメモリアクセスシステムにおいて、
    前記メモリコントローラは、さらに、
    前記ホストが処理するために前記メモリから読み出されたデータについて、前記第2シンドロームを用いて前記第2誤りを訂正する手段と、
    前記ホストが処理するために前記メモリから読み出されたデータのうち、前記第2誤りが訂正されたデータについて、前記第1シンドロームを用いて前記第1誤りを訂正する手段と、
    を備えることを特徴とするメモリアクセスシステム。
  9. 請求項1ないし請求項8のいずれかに記載のメモリアクセスシステムにおいて、
    前記第3データは、
    前記メモリにアクセスが行なわれていないときに、所定アルゴリズムを用いて選択されたアドレスから読み出されたデータ、
    を含むことを特徴とするメモリアクセスシステム。
  10. 請求項1ないし請求項8のいずれかに記載のメモリアクセスシステムにおいて、
    前記第3データは、
    前記ホストが処理するために前記メモリから読み出されたデータ、
    を含むことを特徴とするメモリアクセスシステム。
  11. 請求項1ないし請求項10のいずれかに記載のメモリアクセスシステムにおいて、
    前記第2データは、
    前記第1シンドローム、
    を含むことを特徴とするメモリアクセスシステム。
JP2007205651A 2007-08-07 2007-08-07 メモリアクセスシステム Expired - Fee Related JP5162763B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007205651A JP5162763B2 (ja) 2007-08-07 2007-08-07 メモリアクセスシステム
US12/170,102 US8214725B2 (en) 2007-08-07 2008-07-09 Memory access system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007205651A JP5162763B2 (ja) 2007-08-07 2007-08-07 メモリアクセスシステム

Publications (2)

Publication Number Publication Date
JP2009042911A JP2009042911A (ja) 2009-02-26
JP5162763B2 true JP5162763B2 (ja) 2013-03-13

Family

ID=40347611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007205651A Expired - Fee Related JP5162763B2 (ja) 2007-08-07 2007-08-07 メモリアクセスシステム

Country Status (2)

Country Link
US (1) US8214725B2 (ja)
JP (1) JP5162763B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
JP4905510B2 (ja) * 2009-06-29 2012-03-28 富士通株式会社 ストレージ制御装置及びストレージ装置のデータ回復方法
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
CN101958151A (zh) * 2010-08-26 2011-01-26 南京通用电器有限公司 一种电可擦可编程只读存储器的读写方法
JP5764392B2 (ja) 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
EP2608036A1 (en) * 2011-12-22 2013-06-26 Thomson Licensing Method and system for managing error detection and correction
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
JP6438763B2 (ja) * 2014-12-25 2018-12-19 株式会社メガチップス エラー訂正装置
US9800271B2 (en) 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding
JP6860830B2 (ja) 2016-06-28 2021-04-21 日本精機株式会社 車両用表示装置
KR20180051881A (ko) * 2016-11-09 2018-05-17 에스케이하이닉스 주식회사 메모리 시스템
US11675660B2 (en) * 2019-05-24 2023-06-13 Texas Instruments Incorporated Parallelized scrubbing transactions
KR20210149445A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 모듈 및 메모리 모듈의 동작 방법
CN116825167B (zh) * 2023-08-25 2023-12-19 深圳大普微电子科技有限公司 获取最佳阈值电压的方法、装置及非易失性存储设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3637054B2 (ja) * 1989-09-11 2005-04-06 エルジー・エレクトロニクス・インコーポレーテッド キャッシュ/メインメモリのコンシステンシを維持するための装置及び方法
JP3160448B2 (ja) * 1993-11-30 2001-04-25 富士通株式会社 データ訂正装置
JPH0816488A (ja) * 1994-06-29 1996-01-19 Nec Corp 電子ディスク装置
JP2004152194A (ja) * 2002-10-31 2004-05-27 Ricoh Co Ltd メモリデータ保護方法
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
US7177977B2 (en) * 2004-03-19 2007-02-13 Sandisk Corporation Operating non-volatile memory without read disturb limitations
JP4925301B2 (ja) * 2007-02-07 2012-04-25 株式会社メガチップス 半導体メモリシステム

Also Published As

Publication number Publication date
US20090044076A1 (en) 2009-02-12
US8214725B2 (en) 2012-07-03
JP2009042911A (ja) 2009-02-26

Similar Documents

Publication Publication Date Title
JP5162763B2 (ja) メモリアクセスシステム
US9627085B2 (en) Refresh method for flash memory and related memory controller thereof
KR100850515B1 (ko) 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
JP5138319B2 (ja) メモリーシステム及び該動作方法。
US7813187B2 (en) Multi-bit flash memory device and program method thereof
US7881133B2 (en) Method of managing a flash memory and the flash memory
US7477547B2 (en) Flash memory refresh techniques triggered by controlled scrub data reads
US8595593B2 (en) Nonvolatile memory device having a copy back operation and method of operating the same
US7573773B2 (en) Flash memory with data refresh triggered by controlled scrub data reads
TWI515742B (zh) 偵測不穩定記憶胞之分佈的記憶體系統與方法
US7672162B2 (en) Non-volatile memory device, memory system, and LSB read method
US8607120B2 (en) Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same
US8238169B2 (en) Method and apparatus for restoring data in a non-volatile memory
TWI389122B (zh) 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器
KR20100115970A (ko) 배드 셀 관리 방법과 그 장치
US20170162267A1 (en) Data Storage Device and Data Maintenance Method
EP2135251B1 (en) Flash memory refresh techniques triggered by controlled scrub data reads
CN110389716B (zh) 数据存储装置及应用其的预防数据错误方法
US11487614B2 (en) Semiconductor storing apparatus and readout method
KR101495795B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
US20120159280A1 (en) Method for controlling nonvolatile memory apparatus
KR101001446B1 (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
JP2003100095A (ja) 半導体集積回路装置
US10019186B2 (en) Data maintenance method for error control and data storage device using the same
KR101044533B1 (ko) 불휘발성 메모리 장치 및 이것의 카피백 프로그램 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121126

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5162763

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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