JP5467270B2 - データ入出力制御装置および半導体記憶装置システム - Google Patents

データ入出力制御装置および半導体記憶装置システム Download PDF

Info

Publication number
JP5467270B2
JP5467270B2 JP2010104007A JP2010104007A JP5467270B2 JP 5467270 B2 JP5467270 B2 JP 5467270B2 JP 2010104007 A JP2010104007 A JP 2010104007A JP 2010104007 A JP2010104007 A JP 2010104007A JP 5467270 B2 JP5467270 B2 JP 5467270B2
Authority
JP
Japan
Prior art keywords
data
input
length
output
execution
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
JP2010104007A
Other languages
English (en)
Other versions
JP2011233207A (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.)
University of Tokyo NUC
Original Assignee
University of Tokyo NUC
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 University of Tokyo NUC filed Critical University of Tokyo NUC
Priority to JP2010104007A priority Critical patent/JP5467270B2/ja
Priority to US13/087,035 priority patent/US8677217B2/en
Priority to TW100113205A priority patent/TW201205587A/zh
Priority to CN201110108511.1A priority patent/CN102289394B/zh
Publication of JP2011233207A publication Critical patent/JP2011233207A/ja
Application granted granted Critical
Publication of JP5467270B2 publication Critical patent/JP5467270B2/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/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

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

本発明は、データ入出力制御装置および半導体記憶装置システムに関し、特に、ホスト装置から入力されたデータを所定のエラー訂正符号に符号化して不揮発性の半導体記憶装置に記憶させると共に半導体記憶装置に記憶されているデータを入力して入力したデータに対して所定のエラー訂正符号を用いてエラー訂正すると共に復号してホスト装置に出力するデータ入出力制御装置およびこうしたデータ入出力制御装置を備える半導体記憶装置システムに関する。
従来、この種のデータ入出力制御装置としては、CPUからの要求に応じてフラッシュメモリを制御するものにおいて、入力されたデータをフラッシュメモリに書き込む際には入力されたデータを512バイトずつ順次読み込んで522バイトのエラー訂正符号に符号化してフラッシュメモリに書き込み、フラッシュメモリからデータを読み出す際にはフラッシュメモリから読み出しデータにエラーが生じているときにはエラー訂正符号を用いてエラーを訂正すると共に読み出しデータを復号して出力するエラー訂正回路が搭載されたものが提案されている(例えば、非特許文献1参照)。この装置では、こうしたエラー訂正回路を搭載することにより、フラッシュメモリに記憶されているデータが何らかの要因で反転するエラーが生じたときには、生じたエラーを訂正できるとしている。
Toru Tanzawa, Tomoharu Tanaka, Ken Takeuchi, Riichiro Shirota, Seiichi Aritomo, Hiroshi Watanabe, Gertjan Hemink, Kazuhiro Shimizu, Shinji Sato, Yuji Takeuchi, and Kazunori Ohuchi, 「A Compact On-Chip ECC for Low Cost Flash Memories」, IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL.32, NO.5, MAY 1997
しかしながら、上述のデータ入出力制御装置では、エラー訂正符号の符号長を所定の長さとして、こうした所定の長さのエラー訂正符号を用いてデータのエラー訂正を行うため、訂正可能なビット数に上限があり、フラッシュメモリに記憶されているデータに訂正可能なビット数の上限を超えたエラーが生じると、こうしたエラーを訂正できなくなる。より多くのエラーを訂正する手法としては、より長い符号長のエラー訂正符号を用いる手法も考えられるが、この場合、エラー訂正回路においてデータを符号化したり復号したりするために要する処理時間が増大したり、エラー訂正回路の消費電力が増大してしまう。
本発明のデータ入出力制御装置および半導体記憶装置システムは、半導体記憶装置に記憶されているデータにエラーが生じたときにはより多くのエラーを訂正することを主目的とする。
本発明のデータ入出力制御装置および半導体記憶装置システムは、上述の主目的を達成するために以下の手段を採った。
本発明の第1のデータ入出力制御装置は、
ホスト装置から入力されたデータを所定のエラー訂正符号に符号化して不揮発性の半導体記憶装置に記憶させると共に前記半導体記憶装置に記憶されているデータを入力して該入力したデータに対して前記所定のエラー訂正符号を用いてエラー訂正すると共に復号して前記ホスト装置に出力するデータ入出力制御装置であって、
前記所定のエラー訂正符号に符号化するデータの長さである実行用データ長および前記所定のエラー訂正符号の長さである実行用符号長を記憶するエラー訂正情報記憶部と、入力されたデータを前記記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを前記実行用符号長の前記所定のエラー訂正符号に符号化して前記半導体記憶装置に出力する符号化部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して前記所定のエラー訂正符号によりエラー訂正すると共に復号して前記ホスト装置に出力する復号部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだn個(nは、値1以上の整数)のデータに対して前記所定のエラー訂正符号により前記読み込んだデータのうちエラーが生じているデータ数であるエラーデータ数を検出するエラー検出部と、前記検出されたエラーデータ数が予め定められた上限エラー数を超えているときには1個の前記実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さが前記エラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび前記所定のエラー訂正符号の符号長をそれぞれ前記実行用データ長および前記実行用符号長として前記エラー訂正情報記憶部に記憶させる記憶処理部と、を有するデータ訂正入出力回路と、
前記ホスト装置から前記半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の符号化部に入力されて前記データ訂正入出力回路の符号化部から出力されたデータが前記半導体記憶装置に出力されると共に該出力されたデータが前記半導体記憶装置に記憶されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが読み出されて該読み出されたデータが前記データ訂正入出力回路の復号部に入力され該データ訂正入出力回路の復号部から出力されたデータが前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの消去を要求する消去要求信号が入力されたときには前記半導体記憶装置に記憶されているデータを読み出して該読み出したデータが前記データ訂正入出力回路のエラー検出部に入力された後に前記半導体記憶装置に記憶されているデータが消去されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御する制御回路と、
を備えることを要旨とする。
この本発明の第1の半導体記憶装置の制御装置では、ホスト装置から半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、ホスト装置から入力されたデータがデータ訂正入出力回路の符号化部に入力されてデータ訂正入出力回路の符号化部から出力されたデータが半導体記憶装置に出力されると共に該出力されたデータが半導体記憶装置に記憶されるようデータ訂正入出力回路と半導体記憶装置とを制御する。データ訂正入出力回路の符号化部は、入力されたデータを記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを実行用符号長の所定のエラー訂正符号に符号化して半導体記憶装置に出力する。これにより、実行用符号長の所定のエラー訂正符号に符号化されたデータを半導体記憶装置に記憶させることができる。また、ホスト装置から半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには半導体記憶装置に記憶されているデータが読み出されて読み出されたデータがデータ訂正入出力回路の復号エラー検出部に入力されデータ訂正入出力回路の復号部から出力されたデータがホスト装置に出力されるようデータ訂正入出力回路と半導体記憶装置とを制御する。データが入力されたデータ訂正入出力回路の復号部は、入力されたデータを記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して所定のエラー訂正符号によりエラー訂正すると共に復号してホスト装置に出力するから、ホスト装置にエラー訂正されたデータを出力することができる。そして、ホスト装置から半導体記憶装置に記憶されているデータの消去を要求する消去要求信号が入力されたときには半導体記憶装置に記憶されているデータを読み出して読み出したデータがデータ訂正入出力回路のエラー検出部に入力された後に半導体記憶装置に記憶されているデータが消去されるようデータ訂正入出力回路と半導体記憶装置とを制御する。データを入力されたデータ訂正入出力回路のエラー検出部は、入力されたデータを記憶されている実行用符号長ずつ順次読み込んで読み込んだn個(nは、値1以上の整数)のデータに対して所定のエラー訂正符号により読み込んだデータのうちエラーが生じているデータ数であるエラーデータ数を検出し、データ訂正入出力回路の記憶処理部は、検出されたエラーデータ数が予め定められた上限エラー数を超えているときには1個の実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さがエラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび所定のエラー訂正符号の符号長をそれぞれ実行用データ長および実行用符号長としてエラー訂正情報記憶部に記憶させる。検出されたエラーデータ数が上限エラー数を超えているときには、次に書き込み要求信号が入力されると、データ訂正入出力回路の符号化部は、入力されたデータをより長い実行用データ長ずつ順次読み込んで該読み込んだデータをより長い実行用符号長の所定のエラー訂正符号に符号化して半導体記憶装置に出力し、次に読み出し要求信号が入力されたときには、データ訂正入出力回路の復号部は、より長い実行用符号長の所定のエラー訂正符号でデータをエラー訂正することができる。これにより、より多くのエラーを訂正することができる。なお、「上限エラー数」としては、n個の実行用符号長の所定のエラー訂正符号で訂正可能なエラー数の上限値やこの上限値より若干小さい値を含むものとする。
こうした本発明の第1のデータ入出力制御装置において、前記データ訂正入出力回路の記憶処理部は、前記検出されたエラー数が前記上限エラー数を超えているときには前記記憶されている実行用データ長のm倍(mは2以上の整数)のデータ長を前記実行用データ長として前記エラー訂正情報記憶部に記憶させる処理部であるものとすることもできる。
本発明の第2のデータ入出力制御装置は、
ホスト装置から入力されたデータを所定のエラー訂正符号に符号化して不揮発性の半導体記憶装置に記憶させると共に前記半導体記憶装置に記憶されているデータを入力して該入力したデータに対して前記所定のエラー訂正符号を用いてエラー訂正すると共に復号して前記ホスト装置に出力するデータ入出力制御装置であって、
前記半導体記憶装置にデータが書き込まれた回数と前記半導体記憶装置に記憶されているデータが消去された回数との和の回数である書き込み消去回数を計数する書き込み回数計数回路と、
前記所定のエラー訂正符号に符号化するデータの長さである実行用データ長および前記所定のエラー訂正符号の長さである実行用符号長を記憶するエラー訂正情報記憶部と、入力されたデータを前記記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを前記実行用符号長の前記所定のエラー訂正符号に符号化して前記半導体記憶装置に出力する符号化部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して前記所定のエラー訂正符号によりエラー訂正すると共に復号して前記ホスト装置に出力する復号部と、n個(nは、値1以上の整数)の実行用符号長のデータに予め定められた上限エラー数より多いエラーが生じると推定される書き込み消去回数である判定用閾値を前記計数された書き込み消去回数が超えているときには1個の前記実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さが前記エラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび前記所定のエラー訂正符号の符号長をそれぞれ前記実行用データ長および前記実行用符号長として前記エラー訂正情報記憶部に記憶させる記憶処理部と、を有するデータ訂正入出力回路と、
前記ホスト装置から前記半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の符号化部に入力されて前記データ訂正入出力回路の符号化部から出力されたデータが前記半導体記憶装置に出力されると共に該出力されたデータが前記半導体記憶装置に記憶されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが読み出されて該読み出されたデータが前記データ訂正入出力回路の復号部に入力され該データ訂正入出力回路の復号部から出力されたデータが前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの消去を要求する消去要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが消去されるよう前記半導体記憶装置を制御する制御回路と、
を備えることを要旨とする。
この本発明の第2のデータ入出力制御装置では、ホスト装置から半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、ホスト装置から入力されたデータがデータ訂正入出力回路の符号化部に入力されてデータ訂正入出力回路の符号化部から出力されたデータが半導体記憶装置に出力されると共に該出力されたデータが半導体記憶装置に記憶されるようデータ訂正入出力回路と半導体記憶装置とを制御する。データ訂正入出力回路の符号化部は、入力されたデータを記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを実行用符号長の所定のエラー訂正符号に符号化して半導体記憶装置に出力する。これにより、実行用符号長の所定のエラー訂正符号に符号化されたデータを半導体記憶装置に記憶させることができる。また、ホスト装置から半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには半導体記憶装置に記憶されているデータが読み出されて読み出されたデータがデータ訂正入出力回路の復号部に入力されデータ訂正入出力回路の復号部から出力されたデータがホスト装置に出力されるようデータ訂正入出力回路と半導体記憶装置とを制御する。データが入力されたデータ訂正入出力回路の復号部は、入力されたデータを記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して所定のエラー訂正符号によりエラー訂正すると共に復号してホスト装置に出力するから、ホスト装置にエラー訂正されたデータを出力することができる。そして、データ訂正入出力回路の記憶処理部は、n個(nは、値1以上の整数)の実行用符号長のデータに予め定められた上限エラー数より多いエラーが生じると推定される書き込み消去回数である判定用閾値を計数された書き込み消去回数が超えているときには1個の実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さがエラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび所定のエラー訂正符号の符号長をそれぞれ実行用データ長および実行用符号長としてエラー訂正情報記憶部に記憶させる。これにより、判定用閾値を計数された書き込み消去回数が超えているとき、次に書き込み要求信号が入力されたときには、データ訂正入出力回路の符号化部は、入力されたデータをより長い実行用データ長ずつ順次読み込んで読み込んだデータをより長い実行用符号長の所定のエラー訂正符号に符号化して半導体記憶装置に出力し、次に書き込み要求信号が入力されたときには、データ訂正入出力回路の復号部は、より長い実行用符号長の所定のエラー訂正符号でデータをエラー訂正することができる。これにより、より多くのエラーを訂正することができる。なお、「上限エラー数」としては、n個の実行用符号長の所定のエラー訂正符号で訂正可能なエラー数の上限値やこの上限値より若干小さい値を含むものとする。
こうした本発明の第2のデータ入出力制御装置において、前記データ訂正入出力回路の記憶処理部は、前記計数された書き込み消去回数が前記判定用閾値を超えているときには前記記憶されている実行用データ長のm倍(mは2以上の整数)のデータ長を前記実行用データ長として前記エラー訂正情報記憶部に記憶させる処理であるものとすることもできる。
こうした本発明の第1または第2のデータ入出力制御装置において、前記データ訂正入出力回路の記憶処理部は、前記データ訂正入出力回路で消費する電力が該データ訂正入出力回路での消費が許容される許容電力以下となる前記実行用符号長の上限として予め定められた上限電力許容符号長より前記エラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した前記実行用データ長および前記実行用符号長を前記エラー訂正情報記憶部に記憶させる処理部であるものとすることもできる。エラー訂正情報記憶部に記憶している実行用符号長が長いほどデータ訂正入出力回路で消費する電力が長くなる傾向にあるから、上限電力許容符号長よりエラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した実行用データ長および実行用符号長をエラー訂正情報記憶部に記憶させることにより、データ訂正入出力回路で消費する電力を許容電力以下に抑えた状態でエラー訂正することができる。
また、本発明の第1または第2のデータ入出力制御装置において、前記データ訂正入出力回路の記憶処理部は、前記データ訂正入出力回路が単位時間あたりに前記半導体記憶装置から読み出し可能なデータ量である読み出し速度が前記データ訂正入出力回路で許容される許容読み出し速度以下となる前記実行用符号長の上限として予め定められた上限速度許容符号長より前記エラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した前記実行用データ長および前記実行用符号長を前記エラー訂正情報記憶部に記憶させる処理部であるものとすることもできる。エラー訂正情報記憶部に記憶している実行用符号長が長いほど読み出し速度が遅くなる傾向にあるから、上限速度許容符号長よりエラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した実行用データ長および実行用符号長をエラー訂正情報記憶部に記憶させることにより、データ訂正入出力回路の読み出し速度が許容読み出し速度より遅くなるのを抑えた状態でエラー訂正することができる。
さらに、本発明の第1または第2のデータ入出力制御装置において、前記データ訂正入出力回路の記憶処理部は、前記データ訂正入出力回路の面積が該データ訂正入出力回路に許容される許容面積以下となる前記実行用符号長の上限として予め定められた上限面積許容符号長より前記エラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した前記実行用データ長および前記実行用符号長を前記前記エラー訂正情報記憶部に記憶させる処理部であるものとすることもできる。エラー訂正情報記憶部に記憶している実行用符号長が長いほどデータ訂正入出力回路の面積が大きくなる傾向にあるから、上限面積許容符号長よりエラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した実行用データ長および実行用符号長をエラー訂正情報記憶部に記憶させることにより、データ訂正入出力回路の面積を許容面積以下にすることができる。
そして、本発明の第1または第2のデータ入出力制御装置において、前記半導体記憶装置は、フローティングゲートへの電子の注入量に応じて複数の電子注入状態を多値記憶として記憶すると共に前記フローティングゲートへの電子の注入量が多いほど劣化が促進される傾向の半導体記憶素子を複数有する装置であり、前記データ訂正入出力回路は、前記入力されたデータを第1の長さずつ順次読み込んで該読み込んだ第1の長さのデータのうち前記半導体記憶素子を予め定められた所定の電子注入状態より前記フローティングゲートへの電子の注入量が多い状態にする高電子注入データの数が前記半導体記憶素子を前記所定の高電子注入状態より前記フローティングゲートへの電子の注入量が少ない状態にする低電子注入データの数以下であるときには第2の長さの第1のフラグを付加して前記符号化部に出力し、前記読み込んだ第1の長さのデータのうち前記高電子注入データの数が前記低電子注入データの数を超えているときには前記高電子注入データを前記低電子注入データに変換すると共に前記低電子注入データを前記高電子注入データに変換するデータ変換を施して該データ変換後のデータに前記第2の長さの第2のフラグを付加して前記符号化部に出力し、前記復号部から出力されたデータを前記第1の長さに前記第2の長さを加えた第3の長さずつ順次読み込んで該読み込んだ第3の長さのデータが前記第1のフラグを含んでいるときには前記データから前記第1のフラグを削除したデータを出力すると共に前記読み込んだ第3の長さのデータが前記第2のフラグを含んでいるときには前記第2のフラグを削除した前記第1の長さのデータに対して前記データ変換を施して出力するデータ変換部、を有する回路であり、前記制御回路は、前記ホスト装置から前記書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の前記データ変換部を介して前記符号化部に入力され、前記ホスト装置から前記読み出し要求信号が入力されたときには前記データ訂正入出力回路の復号部から出力されたデータが前記データ変換部を介して前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御する回路であるものとすることもできる。こうすれば、半導体記憶装置に記憶させるデータのうち低電子注入データの割合を高電子注入データより高くすることができるから、半導体記憶装置に記憶されているデータにエラーが生じる確率をより低くすることができる。この場合において、前記半導体記憶素子は、前記フローティングゲートに電子が注入された高電子注入状態と該高電子注入状態より前記フローティングゲートに注入されている電子が少ない低電子注入状態とを二値記憶として記憶する素子であり、前記高電子注入データは前記半導体記憶素子を前記高電子注入状態にするデータであり、前記低電子注入データは前記半導体記憶素子を前記低電子注入状態にするデータであるものとすることもできる。こうすれば、半導体素子が高電子注入状態と低電子注入状態とを二値記憶として記憶する素子である場合に、半導体記憶装置に記憶されているデータにエラーが生じる確率をより低くすることができる。
さらに、本発明の第1または第2のデータ入出力制御装置において、前記所定のエラー訂正符号は、ブロック符号または畳込み符号であるものとすることもできる。ここで、「ブロック符号」にはBCH符号やリード・ソロモン符号などが含まれ、「畳込み符号」にはLDPC符号などが含まれる。
また、本発明の第1または第2のデータ入出力制御装置において、前記半導体記憶装置は、前記半導体記憶装置にデータが書き込まれた回数と前記半導体記憶装置に記憶されているデータが消去された回数との和の回数である書き込み消去回数が多くなるほど記憶しているデータにエラーが生じる確率が高くなる傾向の装置であるものとすることもできる。この場合において、前記半導体記憶装置は、NAND型フラッシュメモリおよびNOR型フラッシュメモリおよび相変化メモリおよび磁気抵抗メモリおよび強誘電体メモリおよび抵抗変化型メモリのいずれか又はこれらを複数組み合わせた装置であるものとすることもできる。
さらに、本発明の第1または第2のデータ入出力制御装置において、前記半導体記憶装置は、前記データ入出力制御装置が形成された半導体チップと異なる半導体チップに形成された装置であるものとすることもできる。こうすれば、半導体記憶装置がデータ入出力制御装置が形成された半導体チップと異なる半導体チップに形成されていても、より多くのエラーを訂正することができる。
本発明の半導体記憶装置システムは、
不揮発性の半導体記憶装置と、
上述した本発明のいずれかの態様の第1または第2のデータ入出力制御装置、すなわち、基本的には、ホスト装置から入力されたデータを所定のエラー訂正符号に符号化して不揮発性の半導体記憶装置に記憶させると共に前記半導体記憶装置に記憶されているデータを入力して該入力したデータに対して前記所定のエラー訂正符号を用いてエラー訂正すると共に復号して前記ホスト装置に出力するデータ入出力制御装置であって、前記所定のエラー訂正符号に符号化するデータの長さである実行用データ長および前記所定のエラー訂正符号の長さである実行用符号長を記憶するエラー訂正情報記憶部と、入力されたデータを前記記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを前記実行用符号長の前記所定のエラー訂正符号に符号化して前記半導体記憶装置に出力する符号化部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して前記所定のエラー訂正符号によりエラー訂正すると共に復号して前記ホスト装置に出力する復号部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだn個(nは、値1以上の整数)のデータに対して前記所定のエラー訂正符号により前記読み込んだデータのうちエラーが生じているデータ数であるエラーデータ数を検出するエラー検出部と、前記検出されたエラーデータ数が予め定められた上限エラー数を超えているときには1個の前記実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さが前記エラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび前記所定のエラー訂正符号の符号長をそれぞれ前記実行用データ長および前記実行用符号長として前記エラー訂正情報記憶部に記憶させる記憶処理部と、を有するデータ訂正入出力回路と、前記ホスト装置から前記半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の符号化部に入力されて前記データ訂正入出力回路の符号化部から出力されたデータが前記半導体記憶装置に出力されると共に該出力されたデータが前記半導体記憶装置に記憶されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが読み出されて該読み出されたデータが前記データ訂正入出力回路の復号部に入力され該データ訂正入出力回路の復号部から出力されたデータが前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの消去を要求する消去要求信号が入力されたときには前記半導体記憶装置に記憶されているデータを読み出して該読み出したデータが前記データ訂正入出力回路のエラー検出部に入力された後に前記半導体記憶装置に記憶されているデータが消去されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御する制御回路と、を備える本発明の第1のデータ入出力制御装置、または、ホスト装置から入力されたデータを所定のエラー訂正符号に符号化して不揮発性の半導体記憶装置に記憶させると共に前記半導体記憶装置に記憶されているデータを入力して該入力したデータに対して前記所定のエラー訂正符号を用いてエラー訂正すると共に復号して前記ホスト装置に出力するデータ入出力制御装置であって、前記半導体記憶装置にデータが書き込まれた回数と前記半導体記憶装置に記憶されているデータが消去された回数との和の回数である書き込み消去回数を計数する書き込み回数計数回路と、前記所定のエラー訂正符号に符号化するデータの長さである実行用データ長および前記所定のエラー訂正符号の長さである実行用符号長を記憶するエラー訂正情報記憶部と、入力されたデータを前記記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを前記実行用符号長の前記所定のエラー訂正符号に符号化して前記半導体記憶装置に出力する符号化部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して前記所定のエラー訂正符号によりエラー訂正すると共に復号して前記ホスト装置に出力する復号部と、n個(nは、値1以上の整数)の実行用符号長のデータに予め定められた上限エラー数より多いエラーが生じると推定される書き込み消去回数である判定用閾値を前記計数された書き込み消去回数が超えているときには1個の前記実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さが前記エラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび前記所定のエラー訂正符号の符号長をそれぞれ前記実行用データ長および前記実行用符号長として前記エラー訂正情報記憶部に記憶させる記憶処理部と、を有するデータ訂正入出力回路と、前記ホスト装置から前記半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の符号化部に入力されて前記データ訂正入出力回路の符号化部から出力されたデータが前記半導体記憶装置に出力されると共に該出力されたデータが前記半導体記憶装置に記憶されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが読み出されて該読み出されたデータが前記データ訂正入出力回路の復号部に入力され該データ訂正入出力回路の復号部から出力されたデータが前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの消去を要求する消去要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが消去されるよう前記半導体記憶装置を制御する制御回路と、を備える本発明の第2のデータ入出力制御装置と、を備えることを要旨とする。
この本発明の半導体記憶装置システムでは、上述したいずれかの態様の本発明のデータ入出力制御装置を備えているから、本発明のデータ入出力制御装置が奏する効果、例えば、より多くのエラーを訂正することができる効果などと同様の効果を奏する。
こうした本発明の半導体記憶装置システムにおいて、前記半導体記憶装置は、前記半導体記憶装置にデータが書き込まれた回数と前記半導体記憶装置に記憶されているデータが消去された回数との和の回数である書き込み消去回数が多くなるほど記憶しているデータにエラーが生じる確率が高くなる傾向の装置であるものとすることもできる。この場合において、前記半導体記憶装置は、NAND型フラッシュメモリおよびNOR型フラッシュメモリおよび相変化メモリおよび磁気抵抗メモリおよび強誘電体メモリおよび抵抗変化型メモリのいずれか又はこれらを複数組み合わせた装置であるものとすることもできる。
また、本発明の半導体記憶装置システムにおいて、前記半導体記憶装置と前記データ入出力制御装置とは異なる半導体チップに形成されてなるものとすることもできる。こうすれば、半導体記憶装置とデータ入出力制御装置とが異なる半導体チップに形成されてなるものにおいて、より多くのエラーを訂正することができる。
本発明の第1実施例としてのデータ入出力制御装置が搭載されたフラッシュメモリシステム10の構成の概略を示す構成図である。 データ反転回路28から入力されたデータに対してデータ反転回路28から出力されたデータの一例を示す説明図である。 エラー訂正回路30の構成の概略を示す構成図である。 実行用データ長Sdataが512バイト、実行用符号長Scodeが(51Kバイト+104ビット)であるときに符号化部34から出力されるデータの構造を示す説明図である。 記憶処理部38の動作の一例を示すフローチャートである。 フラッシュメモリ12に記憶されているデータにビットエラーが生じている様子の一例を示す説明図である。 本発明の第2実施例としてのデータ入出力制御装置が搭載されたフラッシュメモリシステム110の構成の概略を示す構成図である。 データ反転回路128から入力されたデータに対してデータ反転回路128から出力されたデータの一例を示す説明図である。 エラー訂正回路130の構成の概略を示す構成図である。 実行用データ長Sdataが512バイト、実行用符号長Scodeが(51Kバイト+104ビット)であるときに符号化部134から出力されるデータの構造を示す説明図である。 記憶処理部138の動作の一例を示すフローチャートである。 エラー数Nerrorと書き込み消去回数Nwrとの関係を示す説明図である。 フラッシュメモリ112に記憶されているデータにビットエラーが生じている様子の一例を示す説明図である。
次に、本発明を実施するための形態を実施例を用いて説明する。
図1は、本発明の第1実施例としてのデータ入出力制御装置が搭載されたフラッシュメモリシステム10の構成の概略を示す構成図である。フラッシュメモリシステム10は、NAND型フラッシュメモリが形成されたシリコンチップが複数積層されてなるフラッシュメモリ12と、フラッシュメモリ12を制御するメモリコントローラ20と、から構成され、ホスト装置60(例えば、パーソナルコンピュータなど)と通信可能に接続されており、ホスト装置60から入力される各種制御信号に応じてホスト装置60から入力されたデータをフラッシュメモリ12に記憶したり、フラッシュメモリ12に記憶しているデータをホスト装置60に出力したりする。なお、こうしたフラッシュメモリ12とメモリコントローラ20とは、互いに異なる半導体チップ上に形成されているものとする。
フラッシュメモリ12は、フローティングゲートへの電子注入やフローティングゲートからの電子の引き抜きにより閾値電圧が変化するフラッシュメモリセルを複数有するフラッシュメモリセルアレイ(図示せず)を備えるNAND型フラッシュメモリとして構成されており、フラッシュメモリセルアレイの他にロウデコーダ,カラムデコーダ,センスアンプなど(いずれも図示せず)を備える。フラッシュメモリ12では、ページ単位(実施例では、(512バイト+104ビット))でデータを書き込んだりデータを読み出し、複数ページからなるブロック単位(実施例では、64ページ)で記憶しているデータを消去する。フラッシュメモリセルに記憶されるデータは、実施例では、フローティングゲートに電子が注入された状態が”0”であるものとし、フローティングゲートから電子が引き抜かれて”0”の状態よりフローティングゲートの電子が少なくなっている状態が”1”であるものとする。
メモリコントローラ20は、トランジスタ等の複数の論理素子からなる論理回路として構成されており、ホスト装置60からの各種制御信号を出力したりホスト装置60にデータを入出力するホストインターフェース回路22と、フラッシュメモリ12に各種制御信号を出力したりフラッシュメモリ12にデータを入出力するメモリインターフェース回路24と、ホストインターフェース回路22に入力されたデータを一時的に記憶するバッファ回路26と、バッファ回路26からデータを読み出して記憶されているデータに含まれる”1”のデータの数に応じてデータを反転または非反転させて非反転フラグまたは変換フラグを付加して出力するデータ反転回路28と、データ反転回路28からのデータをBCH(Bose-Chaudfuri-Hocquenghem)符号により符号化してメモリインターフェース回路24に出力したりメモリインターフェース回路24からのデータを復号してデータ反転回路28に出力するエラー訂正回路30と、メモリコントローラ20の全体の動作を制御する制御回路40と、を備える。
データ反転回路28は、バッファ回路26からデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数より多いときには”1”のデータを”0”に反転させると共に”0”のデータを”1”に反転させるビット反転を実行すると共にビット反転後のデータにビット反転が行われたことを示す”1”の反転フラグを付加してエラー訂正回路30に出力し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数以下であるときにはビット反転を実行せずにビット反転が実行されなかったことを示す”0”の非反転フラグを付加してエラー訂正回路30に出力する。図2は、データ反転回路28から入力されたデータに対してデータ反転回路28からエラー訂正回路30に出力されたデータの一例を示す説明図である。また、エラー訂正回路30からのデータに対しては、5ビットずつ読み出して、読み出したデータが反転フラグを含んでいるときには反転フラグを削除すると共に残りの4ビットのデータに対してビット反転を実行してバッファ回路26に出力し、読み出したデータが非反転フラグを含んでいるときには非反転フラグを削除した4ビットのデータをバッファ回路26に出力する。こうした動作により、データ反転回路28からエラー訂正回路30に出力されるデータにおける”1”のデータの割合をより多くすることができる。こうした動作を行う理由は、以下の通りである。フラッシュメモリセルは、フローティングゲートに電子が注入されると、電子がフラッシュメモリセルのゲート絶縁膜を通過する際のストレスによりゲート絶縁膜が劣化する。したがって、”0”のデータが多くなるほど、フラッシュメモリセルに記憶しているデータにエラーが生じる確率が高くなると考えられる。また、データ保持時においては、フローティングゲートに注入されている電子が流出してエラーが生じることがあるため、”0”のデータが多いほどデータにエラーが生じる確率が高くなると考えられる。したがって、フラッシュメモリセルでは、”1”のデータを記憶させたほうが”0”のデータを記憶させることによりエラーが生じる確率が低くなると考えられるため、データ反転回路28から出力されるデータにおける”1”のデータの割合をより多くしたのである。こうしたデータ反転回路28により、フラッシュメモリ12に記憶しているデータにエラーが生じる確率をより低くすることができる。
図3は、エラー訂正回路30の構成の概略を示す構成図である。エラー訂正回路30は、トランジスタ等の複数の論理素子からなる論理回路として構成されており、データの符号化および復号に用いるBCH符号のサイズである実行用符号長Scodeと実行用符号長ScodeのBCH符号に符号化するデータのサイズである実行用データ長Sdataとを記憶する訂正情報記憶部32と、データ反転回路28から入力されたデータを訂正情報記憶部32に記憶されている実行用符号長ScodeのBCH符号に符号化して出力する符号化部34と、フラッシュメモリ12から入力されたデータをBCH符号により復号してデータ反転回路28に出力すると共にフラッシュメモリ12から入力されたデータのうちエラーが生じているデータの数を検出する復号エラー数検出部36と、訂正情報記憶部32に記憶されている実行用符号長Scodeと実行用データ長Sdataとを変更する記憶処理部38と、から構成されている。
符号化部34は、データ反転回路28から入力されたデータを訂正情報記憶部32に記憶されている実行用データ長Sdataずつ読み込んで、読み込んだ実行用データ長SdataのデータをBCH符号の生成多項式を用いた演算処理により実行用符号長ScodeのBCH符号に符号化するために付加すべきパリティビットを生成し、読み込んだ実行用データ長Sdataのデータに生成したパリティビットを付加したデータをメモリインターフェース回路24に出力する。図4は、実行用データ長Sdataが512バイト、実行用符号長Scodeが(512バイト+104ビット)であるときに符号化部34から出力されるデータの構造を示す説明図である。なお、BCH符号の生成多項式を用いてデータの符号化する際の演算処理については、周知であるため、詳細な説明を省略する。
復号エラー数検出部36は、フラッシュメモリ12からメモリインターフェース回路24を介して入力されたデータを訂正情報記憶部32に記憶されている実行用符号長Scodeずつ読み込み、読み込んだ実行用符号長Scodeのデータに対してBCH符号の生成多項式を用いたシンドローム計算処理により、読み込んだデータが符号化したときのデータと異なっているエラー(以下、「ビットエラー」という)が生じているビット位置を検出してエラー訂正を実行し、エラー訂正を実行したデータからパリティビットを削除してデータを復号してデータ反転回路28に出力する。こうした動作により、フラッシュメモリ12から入力されたデータに対してエラー訂正を行って復号して出力することができる。また、復号エラー数検出部36は、読み込んだ実行用符号長Scodeのデータに対してBCH符号の生成多項式を用いてビットエラーが生じているビット位置を検出する際に、n個(nは、1以上の整数)の実行用符号長Scodeのデータのうちビットエラーが生じているデータのビット数をエラーデータ数Nerrorとして検出する。ここで、エラーデータ数Nerrorを検出する際の実行用符号長Scodeの数である値nは、実験や解析などにより適宜設定されるものとした。なお、BCH符号の生成多項式を用いたシンドローム計算処理によりエラー訂正する際の演算処理については、周知であるため、詳細な説明を省略する。
図5は、記憶処理部38の動作の一例を示すフローチャートである。記憶処理部38は、復号エラー数検出部36により検出されたエラーデータ数Nerrorと訂正情報記憶部32に記憶されているn個の実行用符号長ScodeのBCH符号で検出可能なデータのエラー数の上限である上限エラー数Nmaxとを比較する(ステップS100)。ここで、上限エラー数Nmaxは、データ長が実行用データSdataであり符号長が実行用符号長Scodeであるn個のBCH符号で検出可能なエラー数の上限であるものとし、例えば、512バイトのデータに104ビットのパリティビットを付加した符号長が(512バイト+104ビット)のn個のBCH符号では1個のBCH符号で検出可能なエラー数の上限が8ビットであるため上限エラー数Nmaxがn×8ビット、1Kバイトのデータに210ビットのパリティビットを付加した符号長が(1Kバイト+210ビット)のn個のBCH符号では1個のBCH符号で検出可能なエラー数の上限が15ビットであるため上限エラー数Nmaxがn×15ビットであるものとした。
エラーデータ数Nerrorが上限エラー数Nmaxを超えているときには(ステップS100)、訂正情報記憶部32に記憶されている実行用データ長Sdataの2倍のデータ長を実行用データ長Sdataとして記憶させ、実行用データ長Sdataより長く上限エラー数Nmaxより多くのエラーを検出可能な符号長Screfを実行用符号長Scodeとして訂正情報記憶部32に記憶させ(ステップS110)、エラーデータ数Nerrorが上限エラー数Nmax以下であるときには(ステップS100)、訂正情報記憶部32に記憶されている実行用符号長Scodeと実行用データ長Sdataを変更せずに、処理を終了する。これにより、エラーデータ数Nerrorが上限エラー数Nmaxを超えているときには、訂正情報記憶部32により長い実行用データ長Sdataおよび実行用符号長Scodeが記憶されることになる。例えば、ステップS110の処理が実行される前に訂正情報記憶部32に実行用データ長Sdataとして512バイト,実行用符号長Scodeとして(512バイト+104ビット)が記憶されている場合には、ステップS110の処理を実行した後に、訂正情報記憶部32には実行用データ長Sdataとして1Kバイト,実行用符号長Scodeとして(1Kバイト+210ビット)が記憶されることになる。
制御回路40には、ホストインターフェース回路22を介してホスト装置から各種制御信号が入力されると共にフラッシュメモリ12からメモリインターフェース回路24を介してフラッシュメモリ12の状態を示す各種信号が入力され、制御回路40からはバッファ回路26やデータ反転回路28、エラー訂正回路30,フラッシュメモリ12を制御するための制御信号が出力されている。
こうして構成された実施例のフラッシュメモリシステム10では、ホスト装置60からフラッシュメモリ12へのデータの書き込みを要求する書き込み要求信号とフラッシュメモリ12にデータを書き込むアドレスを示すアドレス信号とがホストインターフェース回路22を介して制御回路40に入力されると、制御回路40は、ホスト装置60からのデータがホストインターフェース回路22,バッファ回路26,データ反転回路28,エラー訂正回路30を介してメモリインターフェース回路24からフラッシュメモリ12に出力されるようホストインターフェース回路22やバッファ回路26,データ反転回路28,エラー訂正回路30,メモリインターフェース回路24を制御する。バッファ回路26からデータが入力されたデータ反転回路28は、バッファ回路26からのデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”1”のデータの数が”0”のデータの数に基づいて反転フラグまたは非反転フラグを付加し、5ビットのデータをエラー訂正回路30の符号化部34に入力する。データが入力されたエラー訂正回路30の符号化部34は、入力されたデータを実行用データ長Sdataずつ順次読み込んで実行用符号長ScodeのBCH符号に符号化してメモリインターフェース回路24に出力する。制御回路40は、このようにエラー訂正回路30を介してメモリインターフェース回路24から実行用符号長ScodeのBCH符号に符号化されたデータがページ単位でフラッシュメモリ12に記憶されるようフラッシュメモリ12を制御する。これにより、書き込み要求信号が入力されたときには、実行用符号長ScodeのBCH符号に符号化されたデータをフラッシュメモリ12に記憶させることができる。
また、ホスト装置60からフラッシュメモリ12に記憶されているデータの読み出しを要求する読み出し要求信号とフラッシュメモリ12の読み出し先のアドレスを示すアドレス信号とがホストインターフェース回路22を介して制御回路40に入力されると、制御回路40は、フラッシュメモリ12からページ単位でデータが読み出されるようフラッシュメモリ12を制御する。そして、制御回路40は、フラッシュメモリ12から読み出したデータがメモリインターフェース回路24,エラー訂正回路30,データ反転回路28,バッファ回路26を介してホストインターフェース回路22からホスト装置60に出力されるようホストインターフェース回路22,バッファ回路26,データ反転回路28,エラー訂正回路30,メモリインターフェース回路24を制御する。データが入力されたエラー訂正回路30の復号エラー数検出部36は、入力されたデータを実行用符号長Scodeずつ読み込んでBCH符号を用いて読み込んだデータのうちビットエラーが生じているデータがあればエラー訂正を実行した後に復号した実行用データ長Sdataのデータをデータ反転回路28に入力し、読み込んだデータにビットエラーが生じていなければ読み込んだデータを復号した実行用データ長Sdataのデータをデータ反転回路28に入力する。データが入力されたデータ反転回路28は、データを5ビットずつ読み込んで、読み込んだデータが反転ビットを含んでいるときにはビット反転を実行して反転ビットを削除した4ビットのデータをバッファ回路26に出力し、読み込んだデータが非反転ビットを含んでいるときには非反転ビットを削除した4ビットのデータをバッファ回路26に出力する。これにより、読み出し要求信号が入力されたとき、フラッシュメモリ12に記憶されていたデータにビットエラーが生じているときには、エラーを訂正した上でホスト装置60に出力することができ、フラッシュメモリ12から読み出したデータにビットエラーが発生する確率を低くすることができ、フラッシュメモリシステム10の信頼性の向上を図ることができる。
ホスト装置60からフラッシュメモリ12に記憶されているデータの消去を要求する消去要求信号と消去すべきブロックの情報を示すブロック情報信号とがホストインターフェース回路22を介して制御回路40に入力されたときには、制御回路40は、まずは、消去すべきブロックに対応するフラッシュメモリ12の領域からデータが読み出されるようフラッシュメモリ12を制御する。そして、フラッシュメモリ12から読み出したデータがメモリインターフェース回路24を介してエラー訂正回路30の復号エラー数検出部36に入力されるようエラー訂正回路30,メモリインターフェース回路24を制御し、その後、フラッシュメモリ12の消去すべきブロックに記憶されているデータが消去されるようフラッシュメモリ12を制御する。データが入力されたエラー訂正回路30の復号エラー数検出部36は、入力されたデータを実行用符号長Scodeずつ読み込んで読み込んだn個の実行用符号長Scodeのデータに対してBCH符号の生成多項式を用いて実行用符号長Scodeのデータのうちエラーが生じているデータのビット数であるエラーデータ数Nerrorを検出して記憶処理部38に出力する。記憶処理部38では、エラーデータ数Nerrorと上限エラー数Nmaxとを比較し、エラーデータ数Nerrorが上限エラー数Nmaxを超えているときには、訂正情報記憶部32に記憶されている実行用データ長Sdataの2倍のデータ長を実行用データ長Sdataとして記憶させ、実行用データ長Sdataで検出可能なエラー数の上限近傍の値より多くのエラーを検出可能な符号長を実行用符号長Scodeとして訂正情報記憶部32に記憶させる。次に、こうした処理を行う理由について説明する。
図6は、フラッシュメモリ12に記憶されているデータにビットエラーが生じている様子の一例を示す説明図である。ここでは、説明のため、1個の実行用符号長Scodeのデータに対してエラーデータ数Nerrorを検出するものとする。図中、「×」印がビットエラーが生じているデータの位置を示している。ここでは、説明のため、最初にエラー訂正回路30の訂正情報記憶部32に実行用データ長Sdataとして512バイト,実行用符号長Scodeとして(512バイト+104ビット)が記憶されており、最初にフラッシュメモリ12から読み出した実行用符号長Scode(512バイト+104ビット)のデータに9ビットのビットエラーが生じて、次にフラッシュメモリ12から読み出した実行用符号長Scode(512バイト+104ビット)のデータに2ビットのビットエラーが生じているものとする。消去要求信号が入力されると、エラー訂正回路30の復号エラー数検出部36に実行用符号長Scode(512バイト+104ビット)のデータが入力される。このBCH符号では、8ビットのビットエラーまで訂正可能(上限エラー数Nmaxが値8)であるが、最初に読み出したデータには9ビットのビットエラーが生じているため、符号長が(512バイト+104ビット)のBCH符号では、エラー訂正回路30でエラー訂正することができない。実施例のエラー訂正回路30では、検出されたエラーデータ数Nerrorが上限エラー数Nmaxを超えているときには、訂正情報記憶部32に実行用データ長Sdataとして1Kバイト,実行用符号長Scodeとして(1Kバイト+210ビット)を記憶させるから、次に書き込み要求信号が入力されたときには、データのサイズが1Kバイト、パリティビットが210ビットの(1Kバイト+210ビット)の符号長のBCH符号がフラッシュメモリ12に記憶され、フラッシュメモリ12からデータを読み出す際には符号長が(1Kバイト+210ビット)のBCH符号としてデータが読み出される。このとき、図示するように、読み出したデータには11ビットのビットエラーが生じているが、符号長が(1Kバイト+210ビット)のBCH符号では15ビットまでのビットエラーを訂正することができるため、こうしたエラーを訂正することができるようになる。このように、検出されたエラーデータ数Nerrorが上限エラー数Nmaxを超えているときには、訂正情報記憶部32に記憶されている実行用データ長Sdataと実行用符号長Scodeとをより長くすることにより、より多くのエラーを訂正することができる。
以上説明した第1実施例のフラッシュメモリシステム10によれば、ホスト装置60から消去要求信号が入力されたときには、フラッシュメモリ12に記憶されているデータを読み出して読み出したデータがエラー訂正回路30の復号エラー数検出部36に入力された後にフラッシュメモリ12に記憶されているデータが消去されるようメモリインターフェース回路24とエラー訂正回路30とフラッシュメモリ12とを制御する。データを入力されたエラー訂正回路30の復号エラー数検出部36は、エラーデータ数Nerrorを検出し、エラー訂正回路30の記憶処理部38は、検出されたエラーデータ数Nerrorが上限エラー数Nmaxを超えているときには上限エラー数Nmaxより多いエラーを検出可能でデータの長さが訂正情報記憶部32に記憶されている実行用データ長Sdataより長くなるデータの長さおよびBCH符号の符号長をそれぞれ実行用データ長Sdataおよび実行用符号長Scodeとして訂正情報記憶部32に記憶させるから、次に書き込み要求信号が入力されたときには、エラー訂正回路30の符号化部34は、入力されたデータをより長い実行用データ長Sdataずつ順次読み込んで該読み込んだデータをより長い実行用符号長ScodeのBCH符号に符号化して出力し、次に読み出し要求信号が入力されたときには、エラー訂正回路30の復号エラー数検出部36は、より長い実行用符号長ScodのBCH符号でデータをエラー訂正することができる。これにより、より多くのエラーを訂正することができる。また、データ反転回路28は、バッファ回路26からデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数より多いときには”1”のデータを”0”に反転させると共に”0”のデータを”1”に反転させるビット反転を実行すると共に”1”の反転フラグを付加してエラー訂正回路30に出力し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数以下であるときにはビット反転を実行せずにビット反転が実行されなかったことを示す”0”の非反転フラグを付加してエラー訂正回路30に出力する。これにより、フラッシュメモリ12に記憶しているデータにエラーが生じる確率をより低くすることができる。
第1実施例のフラッシュメモリシステム10では、メモリコントローラ20は、フラッシュメモリセルを複数有するフラッシュメモリセルアレイを備えるNAND型フラッシュメモリを制御するものとしたが、メモリコントローラ20で制御するメモリとしては、NAND型フラッシュメモリに限定されるものではなく、NOR型のフラッシュメモリを制御するものとしてもよい。また、メモリコントローラ20で制御するメモリとしては、こうしたフラッシュメモリに限定されるものではなく、不揮発性メモリであれば如何なるものでもよく、例えば、材料の結晶構造を変化させることでデータを記憶する相変化メモリや電子のスピンをメモリ素子として利用してデータを記憶する磁気抵抗メモリ、強誘電体のヒステリシス(履歴現象)を利用して正負の自発分極を1と0に対応させてデータを記憶する強誘電体メモリ、電圧の印加による電気抵抗の変化を利用してデータを記憶する抵抗変化型メモリなどの書き込み消去回数により記憶しているデータにエラーが生じる確率が高くなる傾向の不揮発性メモリであるものとしてもよい。
図7は、本発明の第2実施例としてのデータ入出力制御装置が搭載されたフラッシュメモリシステム110の構成の概略を示す構成図である。フラッシュメモリシステム110は、NAND型フラッシュメモリが形成されたシリコンチップが複数積層されてなるフラッシュメモリ112と、フラッシュメモリ112を制御するメモリコントローラ120と、から構成され、ホスト装置160(例えば、CPU(Centoral Processing Unit)など)から入力される各種制御信号に応じてホスト装置160から入力されたデータをフラッシュメモリ112に記憶したり、フラッシュメモリ112に記憶しているデータをホスト装置160に出力したりする。なお、こうしたフラッシュメモリ112とメモリコントローラ120とは、個別の半導体チップ上に形成されているものとする。
フラッシュメモリ112は、フローティングゲートへの電子注入やフローティングゲートからの電子引き抜きにより閾値電圧が変化するフラッシュメモリセルを複数有するフラッシュメモリセルアレイ(図示せず)を備えるNAND型フラッシュメモリとして構成されており、フラッシュメモリセルアレイの他にロウデコーダ,カラムデコーダ,センスアンプなど(いずれも図示せず)を備える。フラッシュメモリ112では、ページ単位(実施例では、(512バイト+104ビット))でデータを書き込んだりデータを読み出し、複数ページからなるブロック単位(実施例では、64ページ)で記憶しているデータを消去する。フラッシュメモリセルに記憶されるデータは、実施例では、フローティングゲートに電子が注入された状態が”0”であるものとし、フローティングゲートから電子が引き抜かれた状態が”1”であるものとする。
メモリコントローラ120は、トランジスタ等の複数の論理素子からなる論理回路として構成されており、ホスト装置160からの各種制御信号を出力したりホスト装置160にデータを入出力するホストインターフェース回路122と、フラッシュメモリ112に各種制御信号を出力したりフラッシュメモリ112にデータを入出力するメモリインターフェース回路124と、ホストインターフェース回路122に入力されたデータを一時的に記憶するバッファ回路126と、バッファ回路126からデータを読み出して記憶されているデータに含まれる”1”のデータの数に応じてデータを反転または非反転させて非反転フラグまたは変換フラグを付加して出力するデータ反転回路128と、フラッシュメモリ112にデータを書き込んだ回数を計数する書き込み消去回数計数回路129と、データ反転回路128からのデータをBCH(Bose-Chaudfuri-Hocquenghem)符号により符号化してメモリインターフェース回路124に出力したりメモリインターフェース回路124からのデータを復号してデータ反転回路128に出力するエラー訂正回路130と、メモリコントローラ120の全体の動作を制御する制御回路140と、を備える。
データ反転回路128は、バッファ回路126からデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数より多いときには”1”のデータを”0”に反転させると共に”0”のデータを”1”に反転させるビット反転を実行すると共にビット反転後のデータにビット反転が行われたことを示す”1”の反転フラグを付加してエラー訂正回路130に出力し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数以下であるときにはビット反転を実行せずにビット反転が実行されなかったことを示す”0”の非反転フラグを付加してエラー訂正回路130に出力する。図8は、データ反転回路128から入力されたデータに対してデータ反転回路128からエラー訂正回路130に出力されたデータの一例を示す説明図である。また、エラー訂正回路130からのデータに対しては、5ビットずつ読み出して、読み出したデータが反転フラグを含んでいるときには反転フラグを削除すると共に残りの4ビットのデータに対してビット反転を実行してバッファ回路126に出力し、読み出したデータが非反転フラグを含んでいるときには非反転フラグを削除した4ビットのデータをバッファ回路126に出力する。こうした動作により、データ反転回路128からエラー訂正回路130に出力されるデータにおける”1”のデータの割合をより多くすることができる。こうした動作を行う理由は、以下の通りである。フラッシュメモリセルは、フローティングゲートに電子が注入されると、電子がフラッシュメモリセルのゲート絶縁膜を通過する際のストレスによりゲート絶縁膜が劣化する。したがって、”0”のデータが多くなるほど、フラッシュメモリセルに記憶しているデータにエラーが生じる確率が高くなると考えられる。また、データ保持時においては、フローティングゲートに注入されている電子が流出してエラーが生じることがあるため、”0”のデータが多いほどデータにエラーが生じる確率が高くなると考えられる。したがって、フラッシュメモリセルでは、”1”のデータを記憶させたほうが”0”のデータを記憶させることによりエラーが生じる確率が低くなると考えられるため、データ反転回路128から出力されるデータにおける”1”のデータの割合をより多くしたのである。こうしたデータ反転回路128により、フラッシュメモリ112に記憶しているデータにエラーが生じる確率をより低くすることができる。
書き込み消去回数計数回路129は、フラッシュメモリ112にページ毎にデータが書き込まれる回数とデータが消去された回数との和の回数である書き込み消去回数Nwrを計数してエラー訂正回路130に出力する。ここで、フラッシュメモリ12のデータが書き込まれたページの情報やデータが消去されたブロックの情報は、制御回路40から入力されるものとした。
図9は、エラー訂正回路130の構成の概略を示す構成図である。エラー訂正回路130は、トランジスタ等の複数の論理素子からなる論理回路として構成されており、データの符号化および復号に用いるBCH符号のサイズである実行用符号長Scodeと実行用符号長ScodeのBCH符号に符号化するデータのサイズである実行用データ長Sdataとを記憶する訂正情報記憶部132と、データ反転回路128から入力されたデータを訂正情報記憶部132に記憶されている実行用符号長ScodeのBCH符号に符号化して出力する符号化部134と、フラッシュメモリ112から入力されたデータをBCH符号により復号してデータ反転回路128に出力する復号部136と、エラー訂正回路130から入力された書き込み回数Nwrに基づいて訂正情報記憶部132に記憶されている実行用符号長Scodeと実行用データ長Sdataとを変更する記憶処理部138と、から構成されている。
符号化部134は、データ反転回路128から入力されたデータを訂正情報記憶部132に記憶されている実行用データ長Sdataずつ読み込んで、読み込んだ実行用データ長SdataのデータをBCH符号の生成多項式を用いた演算処理により実行用符号長ScodeのBCH符号に符号化するために付加すべきパリティビットを生成し、読み込んだ実行用データ長Sdataのデータに生成したパリティビットを付加したデータをメモリインターフェース回路124に出力する。図10は、実行用データ長Sdataが512バイト、実行用符号長Scodeが(512バイト+104ビット)であるときに符号化部134から出力されるデータの構造を示す説明図である。なお、BCH符号の生成多項式を用いてデータの符号化する際の演算処理については、周知であるため、詳細な説明を省略する。
復号部136は、フラッシュメモリ112からメモリインターフェース回路124を介して入力されたデータを訂正情報記憶部132に記憶されている実行用符号長Scodeずつ読み込み、読み込んだ実行用符号長Scodeのデータに対してBCH符号の生成多項式によるシンドローム計算処理により、読み込んだデータが符号化したときのデータと異なっているエラー(以下、「ビットエラー」という)が生じているビット位置を検出してエラー訂正を実行し、エラー訂正を実行したデータからパリティビットを削除してデータを復号してデータ反転回路128に出力する。こうした動作により、フラッシュメモリ112から入力されたデータに対してエラー訂正を行って復号して出力することができる。なお、BCH符号の生成多項式を用いたシンドローム計算処理によりエラー訂正する際の演算処理については、周知であるため、詳細な説明を省略する。
図11は、記憶処理部138の動作の一例を示すフローチャートである。記憶処理部138は、書き込み消去回数計数回路129から入力された書き込み消去回数Nwrと判定用閾値Nrefとを比較する(ステップS200)。判定用閾値Nrefは、フラッシュメモリ12に記憶されているn個(nは、1以上の整数)の実行用符号長ScodeのBCH符号のデータに生じるビットエラーの数であるエラー数Nerrorと書き込み消去回数Nwrとの関係を予め実験や解析等などによりマップとして求めておき、訂正情報記憶部132に記憶されているn個の実行用符号長ScodeのBCH符号で検出可能なデータのエラー数の上限である上限エラー数Nmaxをエラー数Nerrorとし、このエラー数Nerrorに対応する書き込み消去回数Nwrとして設定されるものとした。図12は、エラー数Nerrorと書き込み消去回数Nwrとの関係を示す説明図である。エラー数Nerrorと書き込み消去回数Nwrとが図示するような関係となるのは、フラッシュメモリ12では、一般に、フラッシュメモリセルへの書き込み消去回数Nwrが多いほどフラッシュメモリセルのゲート絶縁膜が劣化するため、フラッシュメモリセルへの書き込み消去回数Nwrが多いほどエラー数Nerrorが多くなるためである。なお、上限エラー数Nmaxは、実行用符号長Scodeに基づいて定められ、512バイトのデータに104ビットのパリティビットを付加した符号長が(512バイト+104ビット)のn個のBCH符号では1個のBCH符号で検出可能なエラー数の上限が8ビットであるため上限エラー数Nmaxがn×8ビット、1Kバイトのデータに210ビットのパリティビットを付加した符号長が(1Kバイト+210ビット)のn個のBCH符号では1個のBCH符号で検出可能なエラー数の上限が15ビットであるため上限エラー数Nmaxがn×15ビットであるものとした。
書き込み消去回数Nwrが判定用閾値Nrefを超えているときには(ステップS200)、訂正情報記憶部132に記憶されている実行用データ長Sdataの2倍のデータ長を実行用データ長Sdataとして記憶させ、実行用データ長Sdataより長く上限エラー数Nmaxより多くのエラーを検出可能な符号長Screfを実行用符号長Scodeとして訂正情報記憶部132に記憶させ(ステップS210)、書き込み消去回数Nwrが判定用閾値Nref以下であるときには(ステップS200)、訂正情報記憶部132に記憶されている実行用符号長Scodeと実行用データ長Sdataを変更せずに、処理を終了する。これにより、エラーデータ数Nerrorが上限エラー数Nmaxを超えているときには、訂正情報記憶部132により長い実行用データ長Sdataおよび実行用符号長Scodeが記憶されることになる。例えば、ステップS210の処理が実行される前に訂正情報記憶部132に実行用データ長Sdataとして512バイト,実行用符号長Scodeとして(512バイト+104ビット)が記憶されている場合には、ステップS210の処理を実行した後に、訂正情報記憶部132には実行用データ長Sdataとして1Kバイト,実行用符号長Scodeとして(1Kバイト+210ビット)が記憶されることになる。
制御回路140には、ホストインターフェース回路122を介してホスト装置から各種制御信号が入力されると共にフラッシュメモリ112からメモリインターフェース回路124を介してフラッシュメモリ112の状態を示す各種信号が入力され、制御回路140からはフラッシュメモリ12のデータが書き込まれたページの情報やデータが消去されたブロックの情報やバッファ回路126やデータ反転回路128、エラー訂正回路130,フラッシュメモリ112を制御するための制御信号が出力されている。
こうして構成された実施例のフラッシュメモリシステム110では、ホスト装置160からフラッシュメモリ112へのデータの書き込みを要求する書き込み要求信号とフラッシュメモリ112にデータを書き込むアドレスを示すアドレス信号とがホストインターフェース回路122を介して制御回路140に入力されると、制御回路140は、ホスト装置160からのデータがホストインターフェース回路122,バッファ回路126,データ反転回路128,エラー訂正回路130を介してメモリインターフェース回路124からフラッシュメモリ112に出力されるようホストインターフェース回路122やバッファ回路126,データ反転回路128,エラー訂正回路130,メモリインターフェース回路124を制御する。バッファ回路126からデータが入力されたデータ反転回路128は、バッファ回路126からのデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”1”のデータの数が”0”のデータの数に基づいて反転フラグまたは非反転フラグを付加し、5ビットのデータをエラー訂正回路130の符号化部134に入力する。データが入力されたエラー訂正回路130の符号化部134は、入力されたデータを実行用データ長Sdataずつ順次読み込んで実行用符号長ScodeのBCH符号に符号化してメモリインターフェース回路124に出力する。制御回路140は、このようにエラー訂正回路130を介してメモリインターフェース回路124から実行用符号長ScodeのBCH符号に符号化されたデータがページ単位でフラッシュメモリ112に記憶されるようフラッシュメモリ112を制御する。これにより、書き込み要求信号が入力されたときには、実行用符号長ScodeのBCH符号に符号化されたデータをフラッシュメモリ112に記憶させることができる。
また、ホスト装置160からフラッシュメモリ112に記憶されているデータの読み出しを要求する読み出し要求信号とフラッシュメモリ112の読み出し先のアドレスを示すアドレス信号とがホストインターフェース回路122を介して制御回路140に入力されると、制御回路140は、フラッシュメモリ112からページ単位でデータが読み出されるようフラッシュメモリ112を制御する。そして、制御回路140は、フラッシュメモリ112から読み出したデータがメモリインターフェース回路124,エラー訂正回路130,データ反転回路128,バッファ回路126を介してホストインターフェース回路122からホスト装置160に出力されるようホストインターフェース回路122,バッファ回路126,データ反転回路128,エラー訂正回路130,メモリインターフェース回路124を制御する。データが入力されたエラー訂正回路130の復号部136は、入力されたデータを実行用符号長Scodeずつ読み込んでBCH符号を用いて読み込んだデータのうちビットエラーが生じているデータがあればエラー訂正を実行した後に復号した実行用データ長Sdataのデータをデータ反転回路128に入力し、読み込んだデータにビットエラーが生じていなければ読み込んだデータを復号した実行用データ長Sdataのデータをデータ反転回路128に入力する。データが入力されたデータ反転回路128は、データを5ビットずつ読み込んで、読み込んだデータが反転ビットを含んでいるときにはビット反転を実行して反転ビットを削除した4ビットのデータをバッファ回路126に出力し、読み込んだデータが非反転ビットを含んでいるときには非反転ビットを削除した4ビットのデータをバッファ回路126に出力する。これにより、読み出し要求信号が入力されたとき、フラッシュメモリ112に記憶されていたデータにビットエラーが生じているときには、エラーを訂正した上でホスト装置160に出力することができ、フラッシュメモリ112から読み出したデータにビットエラーが発生する確率を低くすることができ、フラッシュメモリシステム110の信頼性の向上を図ることができる。
さらに、ホスト装置160からフラッシュメモリ112に記憶されているデータの消去を要求する消去要求信号と消去すべきブロックの情報を示すブロック情報信号とがホストインターフェース回路122を介して制御回路140に入力されたときには、制御回路140は、消去すべきブロックに対応するフラッシュメモリ112の領域からデータが読み出されるようフラッシュメモリ112を制御する。
こうして構成されたフラッシュメモリシステム110において、書き込み消去回数計数回路129で計数された書き込み消去回数Nwrが判定用閾値Nrefを超えると、エラー訂正回路130の記憶処理部138は、訂正情報記憶部132に記憶されている実行用データ長Sdataの2倍のデータ長を実行用データ長Sdataとして記憶させ、先に記憶されている実行用データ長Sdataより長く先に記憶されている実行用符号長ScodeのBCH符号で検出可能なエラー数の上限近傍の値より多くのエラーを検出可能な符号長を実行用符号長Scodeとして訂正情報記憶部132に記憶させる。図13は、フラッシュメモリ112に記憶されているデータにビットエラーが生じている様子の一例を示す説明図である。ここでは、説明のため、1個の実行用符号長Scodeのデータに対してエラーデータ数Nerrorを検出するものとする。図中、「×」印がビットエラーが生じているデータの位置を示している。ここでは、説明のため、最初にエラー訂正回路130の訂正情報記憶部132に実行用データ長Sdataとして512バイト,実行用符号長Scodeとして(512バイト+104ビット)が記憶されており、最初にフラッシュメモリ112から読み出した実行用符号長Scode(512バイト+104ビット)のデータに9ビットのビットエラーが生じて、次にフラッシュメモリ112から読み出した実行用符号長Scode(512バイト+104ビット)のデータに2ビットのビットエラーが生じているものとする。読み出し要求信号が入力されたときには、最初に、エラー訂正回路130の復号部136に実行用符号長Scode(512バイト+104ビット)のデータが入力される。このBCH符号では、8ビットのビットエラーまで訂正可能(上限エラー数Nmaxが値8)であるが、最初に読み出したデータには9ビットのビットエラーが生じているため、符号長が(512バイト+104ビット)のBCH符号では、エラー訂正回路130でエラー訂正することができない。実施例のエラー訂正回路130では、書き込み消去回数計数回路129で計数された書き込み消去回数Nwrが判定用閾値Nrefを超えると、訂正情報記憶部132に実行用データ長Sdataとして1Kバイト,実行用符号長Scodeとして(1Kバイト+210ビット)を記憶させるから、次に書き込み要求信号が入力されたときには、データのサイズが1Kバイト、パリティビットが210ビットの(1Kバイト+210ビット)の符号長のBCH符号がフラッシュメモリ112に記憶され、フラッシュメモリ112からデータを読み出す際には符号長が(1Kバイト+210ビット)のBCH符号としてデータが読み出される。このとき、図示するように、読み出したデータには11ビットのビットエラーが生じているが、符号長が(1Kバイト+210ビット)のBCH符号では15ビットまでのビットエラーを訂正することができるため、こうしたエラーを訂正することができるようになる。このように、書き込み消去回数計数回路129で計数された書き込み消去回数Nwrが判定用閾値Nrefを超えたときには、訂正情報記憶部132に記憶されている実行用データ長Sdataと実行用符号長Scodeとをより長くすることにより、より多くのエラーを訂正することができる。
以上説明した第2実施例のフラッシュメモリシステム110によれば、書き込み消去回数計数回路129で計数された書き込み消去回数Nwrが判定用閾値Nrefを超えたときには、エラー訂正回路130の記憶処理部138は、上限エラー数Nmaxより多いエラーを検出可能でデータの長さが訂正情報記憶部132に記憶されている実行用データ長Sdataより長くなるデータの長さおよびBCH符号の符号長をそれぞれ実行用データ長Sdataおよび実行用符号長Scodeとして訂正情報記憶部132に記憶させるから、次に書き込み要求信号が入力されたときには、エラー訂正回路130の符号化部134は、入力されたデータをより長い実行用データ長Sdataずつ順次読み込んで該読み込んだデータをより長い実行用符号長ScodeのBCH符号に符号化して出力し、次に読み出し要求信号が入力されたときには、エラー訂正回路130の復号部136は、より長い実行用符号長ScodのBCH符号でデータをエラー訂正することができる。これにより、より多くのエラーを訂正することができる。また、データ反転回路128は、バッファ回路126からデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数より多いときには”1”のデータを”0”に反転させると共に”0”のデータを”1”に反転させるビット反転を実行すると共に”1”の反転フラグを付加してエラー訂正回路130に出力し、読み出した4ビットのデータに含まれる”0”のデータの数が”1”のデータの数以下であるときにはビット反転を実行せずにビット反転が実行されなかったことを示す”0”の非反転フラグを付加してエラー訂正回路130に出力する。これにより、フラッシュメモリ112に記憶しているデータにエラーが生じる確率をより低くすることができる。
第2実施例のフラッシュメモリシステム110では、メモリコントローラ20は、フラッシュメモリセルを複数有するフラッシュメモリセルアレイを備えるNAND型フラッシュメモリを制御するものとしたが、メモリコントローラ20で制御するメモリとしては、NAND型フラッシュメモリに限定されるものではなく、NOR型のフラッシュメモリを制御するものとしてもよい。また、メモリコントローラ20で制御するメモリとしては、こうしたフラッシュメモリに限定されるものではなく、書き込み消去回数により記憶しているデータにエラーが生じる確率が高くなる傾向の不揮発性メモリであれば如何なるものでもよく、例えば、材料の結晶構造を変化させることでデータを記憶する相変化メモリや電子のスピンをメモリ素子として利用してデータを記憶する磁気抵抗メモリ、強誘電体のヒステリシス(履歴現象)を利用して正負の自発分極を1と0に対応させてデータを記憶する強誘電体メモリ、電圧の印加による電気抵抗の変化を利用してデータを記憶する抵抗変化型メモリであるものとしてもよい。
第1,第2実施例のフラッシュメモリシステム10,110では、上限エラー数Nmaxを、データ長が実行用データSdataであり符号長が実行用符号長Scodeであるn個のBCH符号で検出可能なエラー数の上限であるものとしたが、こうしたエラー数の上限より若干小さい値であるものとしてもよい。例えば、512バイトのデータに104ビットのパリティビットを付加した符号長が(512バイト+104ビット)のn個のBCH符号では、1個のBCH符号で検出可能なエラー数の上限が8ビットであるため、上限エラー数Nmaxをn×8ビットより数ビットから10数ビット小さいものとするのが望ましく、1Kバイトのデータに210ビットのパリティビットを付加した符号長が(1Kバイト+210ビット)のn個のBCH符号では、1個のBCH符号で検出可能なエラー数の上限が15ビットであるため、上限エラー数Nmaxをn×15ビットより数ビットから10数ビット小さいものとするのが望ましい。
第1,第2実施例のフラッシュメモリシステム10,110では、記憶処理部38,138において訂正情報記憶部32,132に記憶されている実行用データ長Sdataより長くなるデータの長さおよびBCH符号の符号長をそれぞれ実行用データ長Sdataおよび実行用符号長Scodeとして訂正情報記憶部32,132に記憶させる際に、実行用符号長Scodeの上限である上限実行用符号長Scmax未満となるよう実行用データ長Sdataや実行用符号長Scodeを定めて訂正情報記憶部32,132に記憶させるものとしてもよい。この場合、上限実行用符号長Scmaxを、エラー訂正回路30の消費電力がエラー訂正回路30に許容される許容電力以下となる実行用符号長Scodeやホストインターフェース回路22とバッファ回路26とデータ反転回路28とエラー訂正回路30とメモリインターフェース回路24とを組み合わせた回路の消費電力がこれらを組み合わせた回路に許容される許容電力以下となる実行用符号長Scode,メモリコントローラ20の消費電力がメモリコントローラに許容される許容電力以下となる実行用符号長Scodeに設定するものしてもよい。このように設定するのは、実行用符号長Scodeが長くなるほどエラー訂正回路30の消費電力が大きくなるため、エラー訂正回路30の消費電力やホストインターフェース回路22とバッファ回路26とデータ反転回路28とエラー訂正回路30とメモリインターフェース回路24とを組み合わせた回路の消費電力,メモリコントローラ20の消費電力が大きくなる傾向であることに基づく。こうすれば、エラー訂正回路30やホストインターフェース回路22とバッファ回路26とデータ反転回路28とエラー訂正回路30とメモリインターフェース回路24とを組み合わせた回路,メモリコントローラ20の消費電力がそれぞれに許容させる許容電力を超えるのを抑制することができる。また、上限実行用符号長Scmaxを、メモリインターフェース回路24が単位時間あたりにフラッシュメモリ12からデータを読み出し可能なデータ量である読み出し速度がメモリインターフェース回路24に許容される許容読み出し速度以下となる実行用符号長Scodeに設定するものとしてもよい。このように設定するのは、実行用符号長Scodeが長くなるほどメモリインターフェース回路24における読み出し速度が遅くなる傾向であることに基づく。こうすれば、フラッシュメモリ12からのデータの読み出し速度が許容読み出し速度以下となるのを抑制することができる。また、上限実行用符号長Scmaxを、エラー訂正回路30の面積がエラー訂正回路30に許容される許容面積以下となる実行用符号長Scodeやホストインターフェース回路22とバッファ回路26とデータ反転回路28とエラー訂正回路30とメモリインターフェース回路24とを組み合わせた回路の面積がこれらを組み合わせた回路に許容される許容面積以下となる実行用符号長Scode,メモリコントローラ20の面積がメモリコントローラに許容される許容面積以下となる実行用符号長Scodeに設定するものしてもよい。このように設定するのは、実行用符号長Scodeが長くなるほどエラー訂正回路30の面積が大きくなるため、エラー訂正回路30の面積やホストインターフェース回路22とバッファ回路26とデータ反転回路28とエラー訂正回路30とメモリインターフェース回路24とを組み合わせた回路の面積,メモリコントローラ20の面積が大きくなる傾向であることに基づく。こうすれば、エラー訂正回路30やホストインターフェース回路22とバッファ回路26とデータ反転回路28とエラー訂正回路30とメモリインターフェース回路24とを組み合わせた回路,メモリコントローラ20の面積がそれぞれに許容させる許容面積を超えるのを抑制することができる。さらに、上限実行用符号長Scmaxを、上述した回路の消費電力および読み出し速度,回路の面積のうち複数を考慮して設定するものとしてもよい。
第1,第2実施例のフラッシュメモリシステム10,110では、記憶処理部38,138を書き込み消去回数Nwrが判定用閾値Nrefを超えているときには訂正情報記憶部132に記憶されている実行用データ長Sdataの2倍のデータ長を実行用データ長Sdataとして訂正情報記憶部132記憶させるものとしたが、実行用データ長Sdataより長いデータ長を実行用データ長Sdataとして訂正情報記憶部132に記憶させればよいから、例えば、訂正情報記憶部132に記憶されている実行用データ長Sdataのm倍(mは、3以上の整数)のデータ長を実行用データ長Sdataとして訂正情報記憶部132記憶させるものとしてもよい。
第1,第2実施例のフラッシュメモリシステム10,110では、データ反転回路28,128は、バッファ回路26,126からデータを4ビットずつ読み出し、読み出した4ビットのデータに含まれる”1”のデータの数が”0”のデータの数に基づいて1ビットの反転フラグまたは非反転フラグを付加するものとしたが、バッファ回路26,126から読み出すデータや反転フラグ,非反転フラグのサイズ(ビット数)は如何なるものとしてもよく、エラー訂正回路130からのデータに対しては、付加した反転フラグ,非反転フラグのサイズを考慮して反転フラグ,非反転フラグを削除したデータをバッファ回路26,126に出力すればよい。
第1,第2実施例のフラッシュメモリシステム10,110では、データを符号化する際にBCH符号を用いるものとしたが、こうしたエラー訂正を行うための符号としては、BCH符号に限定されるものではなく、リード・ソロモン符号などのブロック符号やLDPC符号などの畳込み符号を用いるものとしてもよい。
第1,第2実施例のフラッシュメモリシステム10,110では、メモリコントローラ20は、データ反転回路28,128を備えているものとしたが、メモリコントローラ20をデータ反転回路28,128を備えていないものとしてバッファ回路26,126とエラー訂正回路30,130との間でデータを入出力するものとしてもよい。
第1,第2実施例のフラッシュメモリシステム10,110では、フラッシュメモリセルは、フローティングゲートに電子が注入された状態を”0”のデータとして記憶し、フローティングゲートから電子が引き抜かれて”0”の状態よりフローティングゲートの電子が少なくなっている状態を”1”のデータとして記憶する二値記憶の素子であるものとしたが、例えば、フローティングゲートへの電子の注入量が4段階に制御され”00”,”01”,”10”,”11”の4値を記憶可能なものなど、二値より多い多値記憶の素子とするものとしてもよい。
第1,第2実施例のフラッシュメモリシステム10,110では、フラッシュメモリ12,112とメモリコントローラ20,120とは個別の半導体チップ上に形成されているものとしたが、同一の半導体チップ上に形成されているものとしてもよい。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
なお、本発明は、平成21年度独立行政法人科学技術振興機構の戦略的創造研究推進事業の研究課題「ディペンダブル ワイヤレス ソリッド・ステート・ドライブ」の成果である。
本発明は、データ入出力制御装置および半導体記憶装置システムの製造産業などに利用可能である。
10,110 フラッシュメモリシステム、12,112 フラッシュメモリ、20,120 メモリコントローラ、22,122 ホストインターフェース回路、24,124 メモリインターフェース回路、26,126 バッファ回路、28,128 データ反転回路、30,130 エラー訂正回路、32,132 訂正情報記憶部、34,134 符号化部、36 復号エラー数検出部、38,138,記憶処理部、40、140 制御回路、60,160 ホスト装置、129 書き込み消去回数計数回路、136 復号部。

Claims (12)

  1. ホスト装置から入力されたデータを所定のエラー訂正符号に符号化して不揮発性の半導体記憶装置に記憶させると共に前記半導体記憶装置に記憶されているデータを入力して該入力したデータに対して前記所定のエラー訂正符号を用いてエラー訂正すると共に復号して前記ホスト装置に出力するデータ入出力制御装置であって、
    前記所定のエラー訂正符号に符号化するデータの長さである実行用データ長および前記所定のエラー訂正符号の長さである実行用符号長を記憶するエラー訂正情報記憶部と、入力されたデータを前記記憶されている実行用データ長ずつ順次読み込んで該読み込んだデータを前記実行用符号長の前記所定のエラー訂正符号に符号化して前記半導体記憶装置に出力する符号化部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだデータに対して前記所定のエラー訂正符号によりエラー訂正すると共に復号して前記ホスト装置に出力する復号部と、入力されたデータを前記記憶されている実行用符号長ずつ順次読み込んで該読み込んだn個(nは、値1以上の整数)のデータに対して前記所定のエラー訂正符号により前記読み込んだデータのうちエラーが生じているデータ数であるエラーデータ数を検出するエラー検出部と、前記検出されたエラーデータ数が予め定められた上限エラー数を超えているときには1個の前記実行用符号長の所定のエラー訂正符号で訂正および検出可能なエラー数の上限より多いエラーを訂正および検出可能でデータの長さが前記エラー訂正情報記憶部に記憶されている実行用データ長より長くなるデータの長さおよび前記所定のエラー訂正符号の符号長をそれぞれ前記実行用データ長および前記実行用符号長として前記エラー訂正情報記憶部に記憶させる記憶処理部と、を有するデータ訂正入出力回路と、
    前記ホスト装置から前記半導体記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の符号化部に入力されて前記データ訂正入出力回路の符号化部から出力されたデータが前記半導体記憶装置に出力されると共に該出力されたデータが前記半導体記憶装置に記憶されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの読み出し要求する読み出し要求信号が入力されたときには前記半導体記憶装置に記憶されているデータが読み出されて該読み出されたデータが前記データ訂正入出力回路の復号部に入力され該データ訂正入出力回路の復号部から出力されたデータが前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御し、前記ホスト装置から前記半導体記憶装置に記憶されているデータの消去を要求する消去要求信号が入力されたときには前記半導体記憶装置に記憶されているデータを読み出して該読み出したデータが前記データ訂正入出力回路のエラー検出部に入力された後に前記半導体記憶装置に記憶されているデータが消去されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御する制御回路と、
    を備えるデータ入出力制御装置。
  2. 請求項1記載のデータ入出力制御装置であって、
    前記データ訂正入出力回路の記憶処理部は、前記検出されたエラー数が前記上限エラー数を超えているときには前記記憶されている実行用データ長のm倍(mは2以上の整数)のデータ長を前記実行用データ長として前記エラー訂正情報記憶部に記憶させる処理部である
    データ入出力制御装置。
  3. 請求項1または2記載のデータ入出力制御装置であって、
    前記データ訂正入出力回路の記憶処理部は、前記データ訂正入出力回路で消費する電力が該データ訂正入出力回路での消費が許容される許容電力以下となる前記実行用符号長の上限として予め定められた上限電力許容符号長より前記エラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した前記実行用データ長および前記実行用符号長を前記エラー訂正情報記憶部に記憶させる処理部である
    データ入出力制御装置。
  4. 請求項1ないしいずれか1つの請求項に記載のデータ入出力制御装置であって、
    前記データ訂正入出力回路の記憶処理部は、前記データ訂正入出力回路が単位時間あたりに前記半導体記憶装置から読み出し可能なデータ量である読み出し速度が前記データ訂正入出力回路で許容される許容読み出し速度以下となる前記実行用符号長の上限として予め定められた上限速度許容符号長より前記エラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した前記実行用データ長および前記実行用符号長を前記エラー訂正情報記憶部に記憶させる処理部である
    データ入出力制御装置。
  5. 請求項1ないしいずれか1つの請求項に記載のデータ入出力制御装置であって、
    前記データ訂正入出力回路の記憶処理部は、前記データ訂正入出力回路の面積が該データ訂正入出力回路に許容される許容面積以下となる前記実行用符号長の上限として予め定められた上限面積許容符号長より前記エラー訂正情報記憶部に記憶している実行用符号長が短くなるよう設定した前記実行用データ長および前記実行用符号長を前記前記エラー訂正情報記憶部に記憶させる処理部である
    データ入出力制御装置。
  6. 請求項1ないしいずれか1つの請求項に記載のデータ入出力制御装置であって、
    前記半導体記憶装置は、フローティングゲートへの電子の注入量に応じて複数の電子注入状態を多値記憶として記憶すると共に前記フローティングゲートへの電子の注入量が多いほど劣化が促進される傾向の半導体記憶素子を複数有する装置であり、
    前記データ訂正入出力回路は、
    前記入力されたデータを第1の長さずつ順次読み込んで該読み込んだ第1の長さのデータのうち前記半導体記憶素子を予め定められた所定の電子注入状態より前記フローティングゲートへの電子の注入量が多い状態にする高電子注入データの数が前記半導体記憶素子を前記所定の高電子注入状態より前記フローティングゲートへの電子の注入量が少ない状態にする低電子注入データの数以下であるときには第2の長さの第1のフラグを付加して前記符号化部に出力し、前記読み込んだ第1の長さのデータのうち前記高電子注入データの数が前記低電子注入データの数を超えているときには前記高電子注入データを前記低電子注入データに変換すると共に前記低電子注入データを前記高電子注入データに変換するデータ変換を施して該データ変換後のデータに前記第2の長さの第2のフラグを付加して前記符号化部に出力し、前記復号部から出力されたデータを前記第1の長さに前記第2の長さを加えた第3の長さずつ順次読み込んで該読み込んだ第3の長さのデータが前記第1のフラグを含んでいるときには前記データから前記第1のフラグを削除したデータを出力すると共に前記読み込んだ第3の長さのデータが前記第2のフラグを含んでいるときには前記第2のフラグを削除した前記第1の長さのデータに対して前記データ変換を施して出力するデータ変換部、
    を有する回路であり、
    前記制御回路は、前記ホスト装置から前記書き込み要求信号が入力されたときには前記ホスト装置から入力されたデータが前記データ訂正入出力回路の前記データ変換部を介して前記符号化部に入力され、前記ホスト装置から前記読み出し要求信号が入力されたときには前記データ訂正入出力回路の復号部から出力されたデータが前記データ変換部を介して前記ホスト装置に出力されるよう前記データ訂正入出力回路と前記半導体記憶装置とを制御する回路である
    データ入出力制御装置。
  7. 請求項記載のデータ入出力制御装置であって、
    前記半導体記憶素子は、前記フローティングゲートに電子が注入された高電子注入状態と該高電子注入状態より前記フローティングゲートに注入されている電子が少ない低電子注入状態とを二値記憶として記憶する素子であり、
    前記高電子注入データは前記半導体記憶素子を前記高電子注入状態にするデータであり、前記低電子注入データは前記半導体記憶素子を前記低電子注入状態にするデータである
    データ入出力制御装置。
  8. 請求項1ないしいずれか1つの請求項に記載のデータ入出力制御装置であって、
    前記所定のエラー訂正符号は、ブロック符号または畳込み符号である
    データ入出力制御装置。
  9. 請求項1ないしいずれか1つの請求項に記載のデータ入出力制御装置であって、
    前記半導体記憶装置は、前記半導体記憶装置にデータが書き込まれた回数と前記半導体記憶装置に記憶されているデータが消去された回数との和の回数である書き込み消去回数が多くなるほど記憶しているデータにエラーが生じる確率が高くなる傾向の装置である
    データ入出力制御装置。
  10. 請求項記載のデータ入出力制御装置であって、
    前記半導体記憶装置は、NAND型フラッシュメモリおよびNOR型フラッシュメモリおよび相変化メモリおよび磁気抵抗メモリおよび強誘電体メモリおよび抵抗変化型メモリのいずれか又はこれらを複数組み合わせた装置である
    データ入出力制御装置。
  11. 請求項1ないし10いずれか1つの請求項に記載のデータ入出力制御装置であって、
    前記半導体記憶装置は、前記データ入出力制御装置が形成された半導体チップと異なる半導体チップに形成された装置である
    データ入出力制御装置。
  12. 不揮発性の半導体記憶装置と、
    請求項1ないしいずれか1つの請求項に記載のデータ入出力制御装置と、
    を備える半導体記憶装置システム。
JP2010104007A 2010-04-28 2010-04-28 データ入出力制御装置および半導体記憶装置システム Expired - Fee Related JP5467270B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010104007A JP5467270B2 (ja) 2010-04-28 2010-04-28 データ入出力制御装置および半導体記憶装置システム
US13/087,035 US8677217B2 (en) 2010-04-28 2011-04-14 Data input / output control device and semiconductor memory device system
TW100113205A TW201205587A (en) 2010-04-28 2011-04-15 Data input / output control device and semiconductor memory device system
CN201110108511.1A CN102289394B (zh) 2010-04-28 2011-04-28 数据输入输出控制装置及半导体存储装置系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010104007A JP5467270B2 (ja) 2010-04-28 2010-04-28 データ入出力制御装置および半導体記憶装置システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013231235A Division JP5733766B2 (ja) 2013-11-07 2013-11-07 データ入出力制御装置および半導体記憶装置システム

Publications (2)

Publication Number Publication Date
JP2011233207A JP2011233207A (ja) 2011-11-17
JP5467270B2 true JP5467270B2 (ja) 2014-04-09

Family

ID=44973487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010104007A Expired - Fee Related JP5467270B2 (ja) 2010-04-28 2010-04-28 データ入出力制御装置および半導体記憶装置システム

Country Status (4)

Country Link
US (1) US8677217B2 (ja)
JP (1) JP5467270B2 (ja)
CN (1) CN102289394B (ja)
TW (1) TW201205587A (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5503960B2 (ja) * 2009-12-25 2014-05-28 三星電子株式会社 不揮発性半導体記憶装置
JP5569936B2 (ja) * 2010-08-11 2014-08-13 国立大学法人 東京大学 制御装置およびデータ記憶装置
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
TWI446160B (zh) * 2011-07-21 2014-07-21 Silicon Motion Inc 快閃記憶體控制器及資料讀取方法
KR101320684B1 (ko) 2011-11-18 2013-10-18 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
JP5768022B2 (ja) 2012-03-19 2015-08-26 株式会社東芝 メモリコントローラ、記憶装置、誤り訂正装置および誤り訂正方法
JP5337277B1 (ja) * 2012-05-14 2013-11-06 株式会社東芝 磁気ランダムアクセスメモリ及びメモリシステム
TW201346922A (zh) * 2012-05-14 2013-11-16 Toshiba Kk 記憶體控制器、記憶裝置及錯誤修正方法
US9128710B2 (en) * 2012-06-05 2015-09-08 Sk Hynix Memory Solutions Inc. Power saving techniques that use a lower bound on bit errors
JP5962258B2 (ja) * 2012-06-29 2016-08-03 富士通株式会社 データ変換方法、データ変換装置およびデータ変換プログラム
JP2014013635A (ja) * 2012-07-04 2014-01-23 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US9400744B2 (en) * 2012-10-30 2016-07-26 Mangstor, Inc. Magnetic random access memory journal for multi-level cell flash memory
US8966345B2 (en) * 2012-11-28 2015-02-24 Intel Corporation Selective error correction in memory to reduce power consumption
US9367391B2 (en) 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
KR102285994B1 (ko) * 2014-05-13 2021-08-06 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102142590B1 (ko) * 2014-06-16 2020-08-07 삼성전자 주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
US10404284B1 (en) * 2015-07-21 2019-09-03 L-3 Communications Corp. Parallel-to-parallel conversion and reordering of a block of data elements
KR102504763B1 (ko) * 2016-02-05 2023-03-02 에스케이하이닉스 주식회사 데이터 저장 장치
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
KR20210088917A (ko) * 2020-01-07 2021-07-15 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5276838A (en) * 1975-12-22 1977-06-28 Hitachi Ltd Constitution of memory
JPS61264598A (ja) * 1985-05-16 1986-11-22 Fujitsu Ltd 半導体記憶装置
US5127014A (en) * 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
JP4038923B2 (ja) * 1999-02-25 2008-01-30 株式会社デンソー 無線通信システム,基地局,端末局
JP4112849B2 (ja) 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
JP2005116132A (ja) * 2003-10-10 2005-04-28 Toshiba Corp 不揮発性半導体記憶装置
JP2005173860A (ja) * 2003-12-10 2005-06-30 Sony Corp データ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラム
JP4953648B2 (ja) * 2006-02-03 2012-06-13 パナソニック株式会社 不揮発性記憶装置およびメモリコントローラ
JP4899616B2 (ja) * 2006-04-28 2012-03-21 ソニー株式会社 変調装置および方法、プログラム、並びに記録媒体
JP4928830B2 (ja) * 2006-05-18 2012-05-09 株式会社東芝 Nand型フラッシュメモリ装置及びメモリデバイス
JP4925301B2 (ja) * 2007-02-07 2012-04-25 株式会社メガチップス 半導体メモリシステム
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
JP5214422B2 (ja) * 2008-02-15 2013-06-19 株式会社東芝 データ記憶システム
JP2010079486A (ja) * 2008-09-25 2010-04-08 Panasonic Corp 半導体記録装置
JP5303325B2 (ja) * 2009-03-18 2013-10-02 ルネサスエレクトロニクス株式会社 データ処理装置
JP5010756B2 (ja) * 2009-09-09 2012-08-29 株式会社東芝 メモリ装置

Also Published As

Publication number Publication date
TW201205587A (en) 2012-02-01
CN102289394B (zh) 2015-05-06
JP2011233207A (ja) 2011-11-17
US20110289385A1 (en) 2011-11-24
CN102289394A (zh) 2011-12-21
US8677217B2 (en) 2014-03-18

Similar Documents

Publication Publication Date Title
JP5467270B2 (ja) データ入出力制御装置および半導体記憶装置システム
USRE49253E1 (en) Semiconductor memory device
CN108028058B (zh) 数据存储设备、装置和方法
US9673840B2 (en) Turbo product codes for NAND flash
JP5569936B2 (ja) 制御装置およびデータ記憶装置
CN107408069B (zh) 用于检测和缓解闪速存储器中的位线开路的装置和方法
US8732553B2 (en) Memory system and control method thereof
US20140359381A1 (en) Memory controller and data storage device
US10521291B2 (en) Controller, semiconductor memory system and operating method thereof
US9037943B2 (en) Identification of non-volatile memory die for use in remedial action
US20180026658A1 (en) Ldpc decoder, semiconductor memory system and operating method thereof
US8589756B2 (en) Semiconductor memory device, semiconductor memory system, and erasure correction method
TWI594255B (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
US10200063B2 (en) Memory controller, semiconductor memory system and operating method thereof
US20160266972A1 (en) Memory controller, storage device and decoding method
US10846170B2 (en) Decoder, operating method thereof and memory system including the decoder
US10396825B2 (en) Memory controller, semiconductor memory system and operating method thereof
JP5733766B2 (ja) データ入出力制御装置および半導体記憶装置システム
US20210250045A1 (en) Ldpc decoder, operating method of ldpc decoder, and semiconductor memory system
US10528496B2 (en) Controller and operating method thereof
CN107590018B (zh) 译码方法、存储器控制电路单元及存储器存储装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130910

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131220

R150 Certificate of patent or registration of utility model

Ref document number: 5467270

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