JP6378102B2 - 半導体装置および読み出し方法 - Google Patents

半導体装置および読み出し方法 Download PDF

Info

Publication number
JP6378102B2
JP6378102B2 JP2015014740A JP2015014740A JP6378102B2 JP 6378102 B2 JP6378102 B2 JP 6378102B2 JP 2015014740 A JP2015014740 A JP 2015014740A JP 2015014740 A JP2015014740 A JP 2015014740A JP 6378102 B2 JP6378102 B2 JP 6378102B2
Authority
JP
Japan
Prior art keywords
read
data
bit
error correction
error
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
JP2015014740A
Other languages
English (en)
Other versions
JP2016139446A (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.)
Kioxia Corp
Original Assignee
Toshiba Memory 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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2015014740A priority Critical patent/JP6378102B2/ja
Priority to US14/945,932 priority patent/US9665426B2/en
Publication of JP2016139446A publication Critical patent/JP2016139446A/ja
Application granted granted Critical
Publication of JP6378102B2 publication Critical patent/JP6378102B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters

Description

本発明の実施形態は、半導体装置および読み出し方法に関する。
例えばNANDフラッシュメモリチップといった不揮発性半導体メモリは、チップ内に多数のメモリセルを備え、情報を電荷量に置き換えて、これらのメモリセルに対してデータの記録を行っている。メモリセルは、浮遊ゲートに蓄えられる電荷の量に応じて電圧が変化し、この電圧の違いに応じたデータを記憶する。メモリセルからのデータの読み出しは、この電荷に応じた電圧を検知して閾値判定することで行う。メモリセルから読み出されたデータは、例えば書き込み時に付加されたエラー訂正符号が復号されエラー訂正されて出力される。
不揮発性半導体メモリにおいて、書き込みおよび読み出しのサイクルを繰り返すと、メモリセルが徐々に劣化し、読み出しエラーが多発するようになる。また、読み出し時の環境(素子の温度など)によっても読み出しエラーの頻度が変化する。このようなメモリセルの劣化や読み出し時の環境に起因するエラーは、特定の傾向を持つため、閾値をシフトさせて読み出しを行うシフトリードによりリトライリードを行い救済することが可能である。
特開2007−200552号公報 特開2009−43410号公報
しかしながら、リトライリードのためのシフトリードの最適値は、一般には不明であり、予め用意したシフトテーブルに従いシフトリードの条件を切り替えながらリトライリードを繰り返し実行する必要がある。また、特に、1つのメモリセルに多値ビットによるデータを記憶する多値メモリの場合、読み出し時のノイズ低減のために多数回の読み出しを行う必要がある。さらに、このようにメモリセルに対してリトライリードにより多数回の読み出しを行うことにより、リードディスターブが発生してしまうおそれもある。
本発明が解決しようとする課題は、メモリセルからのデータ読み出しの際のリトライリード回数を削減可能な半導体装置および読み出し方法を提供することにある。
実施形態の半導体装置は、記憶部の第1のアドレスから複数の読み出し条件それぞれに従いデータを読み出し、読み出した複数の読み出し条件それぞれに対応する各データに対してエラー訂正を行った結果の各エラー数のうち最も少ないエラー数に対応する読み出し条件を複数の読み出し条件から選択し、選択した読み出し条件により第1のアドレスからの複数回の読み出しを行う。複数回の読み出しにより得られた各データ間で多数決処理を行う。
図1は、実施形態に係る半導体装置の一例の構成を示すブロック図である。 図2は、実施形態に適用可能な、何れかのメモリブロックBLKの構成の例を示す等価回路図である。 図3は、実施形態に適用可能な、NANDフラッシュメモリチップに対する多値記憶について説明するための図である。 図4は、実施形態に適用可能なリトライリードについて説明するための図である。 図5は、メモリセル分布の端部がノイズを含んでいる例を示す図である。 図6は、ビットエラー発生率の書き込み/読み出しサイクル回数に対する依存性について説明するための図である。 図7は、ビットエラー発生率の書き込み/読み出しサイクル回数に対する依存性について説明するための図である。 図8は、実施形態に適用可能な多数決処理について説明するための図である。 図9は、実施形態に係る多数決処理を行うための一例の構成を模式的に示す模式図である。 図10は、実施形態に係る読み出し処理を概略的に示す一例のフローチャートである。 図11は、実施形態に適用可能な多数決回路の例を示す回路図である。 図12は、実施形態に適用可能な多数決回路の例を示す回路図である。 図13は、実施形態に係る多数決処理の効果を説明するための図である。 図14は、実施形態に係る多数決処理の効果を説明するための図である。 図15は、実施形態に係る半導体装置の構成の例をより詳細に示すブロック図である。 図16は、実施形態に係る多数決処理部の一例の構成を示すブロック図である。 図17は、実施形態に係る読み出し処理を示す一例のフローチャートである。
以下、実施形態に係る半導体装置および読み出し方法について説明する。図1は、実施形態に係る半導体装置の一例の構成を示す。図1において、半導体装置1は、メモリ部2と、制御部3と、入力部4と、出力部5とを備え、外部から入力部4に入力された入力データを、制御部3の制御によりメモリ部2に記憶させることができる。また、メモリ部2に記憶されたデータは、制御部3の制御によりメモリ部2から読み出され、出力部5により出力データとして外部に出力される。すなわち、制御部3は、メモリ部2からのデータの読み出しを制御する読み出し制御部としての機能を備える。
制御部3は、この半導体装置1の全体の動作を制御する。メモリ部2は、不揮発性メモリを含む。より具体的には、メモリ部2は、例えば2次元構造セルを有するNANDフラッシュメモリであって、1以上のNANDフラッシュメモリチップを含む。
なお、メモリ部2に含まれる不揮発性メモリは、2次元構造セルを有するNANDフラッシュメモリに限られない。例えば、メモリ部2に含まれる不揮発性メモリとして、3次元構造BiCS(Bit Cost Scalable)フラッシュメモリや、クロスポイント構造抵抗変化型メモリReRAM(Resistance Random Access Memory)、磁気抵抗メモリMRAM(Magneto resistive Random Access Memory)などを用いてもよい。
入力部4は、外部から入力データが入力される。入力部4は、エラー訂正符号化部を含み、メモリ部2に記憶させるために供給された入力データ(原データとする)に対してエラー訂正符号化処理を施して出力する。実施形態では、エラー訂正符号化処理として、原データに対してブロック単位でエラー訂正符号を生成し、生成したエラー訂正符号を原データに付加する符号化処理方法を適用できる。
実施形態に係る半導体装置1は、エラー訂正符号として、例えばBCH(Bose-Chaudhuri-Hocquenghem)符号やRS(Reed-Solomon)符号を適用可能である。実施形態に係る半導体装置1に適用可能なエラー訂正符号は、これらの例に限定されない。例えば、実施形態に係る半導体装置1に対して、原データが保存され、復号の際に原データ内のエラービットの数を取得可能なエラー訂正方法であれば、他の種類のエラー訂正符号を適用してもよい。
メモリ部2は、このエラー訂正符号が付加されたデータが記憶される。出力部5は、メモリ部2から読み出されたデータを出力データとして外部に出力する。出力部5は、エラー訂正部を含み、メモリ部2から読み出されたデータに付加されたエラー訂正符号を復号して当該データに対してエラー訂正処理を施す。このとき、エラー訂正部は、エラー訂正符号のエラー訂正能力を超えてデータにエラーが含まれる場合、当該データに対するエラー訂正処理を中止し、当該データに含まれるエラー数を出力する。
次に、NANDフラッシュメモリチップの構成について、概略的に説明する。NANDフラッシュメモリチップは、データ消去の単位である複数のメモリブロックBLKから構成されている。メモリブロックBLKの構成について、図2を用いて説明する。図2は、実施形態に適用可能な、何れかのメモリブロックBLKの構成の例を示す等価回路図である。
メモリブロックBLKは、X方向に沿って配置されたm(mは、1以上の整数)個のNANDストリングを備えている。各NANDストリングは、選択トランジスタST1、ST2、及びn(nは、1以上の整数)個のメモリセルトランジスタMTを備えている。m個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL1〜BLmに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
各メモリセルトランジスタMTは、半導体基板上にゲート絶縁膜を介在して形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)である。積層ゲート構造は、ゲート絶縁膜上に形成された電荷蓄積層(浮遊ゲート電極)と、電荷蓄積層上にゲート絶縁膜を介在して形成された制御ゲート電極とを含んでいる。各NANDストリングにおいて、n個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、n個のメモリセルトランジスタMTを、隣接するもの同士でソース領域若しくはドレイン領域を共有するような形でY方向に直列接続させる。
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワードラインWL1〜WLnにそれぞれ接続されている。したがって、ワードラインWL1に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワードラインWLnに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
ワードラインWL1〜WLnは、メモリブロックBLK内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、メモリブロックBLK内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワードラインWLに接続される。この同一のワードラインWLに接続される複数のメモリセルは1ページとして取り扱われ、このページ毎にデータの記録およびデータの読み出しが行われる。すなわち、ページは、NANDフラッシュメモリチップにおける記録および読み出しの単位となる単位ブロックである。ページは、複数を纏めて管理することができる。
また、ビット線BL1〜BLmは、メモリブロックBLK間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のメモリブロックBLK内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電荷の量に応じて電圧が変化し、この電圧の違いに応じた情報を記憶する。メモリセルトランジスタMTは、1ビットの情報を記憶するように構成されていてもよいし、複数ビットの情報を記憶するように構成されていてもよい。本実施形態のNANDフラッシュメモリチップは、2または3ビットの情報を記憶可能に構成されている。
NANDフラッシュメモリチップは、各ワードラインWL1〜WLnに対して電位発生回路の出力が接続され、各ビット線BL1〜BLnにそれぞれセンスアンプが接続される。NANDフラッシュメモリチップにおいて、例えば、制御回路(制御部3)の制御により各ワードラインWL1〜WLnから1つを選択し、電位発生回路により選択したワードラインをメモリセルトランジスタMTのオフ電圧、それ以外のワードラインをオン電圧とする。そして、各ビット線BL1〜BLnの電圧をそれぞれセンスアンプにより検知することで、1ページのデータを読み出すことができる。
図3を用いて、実施形態に適用可能な、NANDフラッシュメモリチップに対する多値記憶について説明する。図3(a)は、各メモリセルトランジスタMT(以下、メモリセルと略称する)に2ビット情報を記憶させる例、図3(b)は、各メモリセルに3ビット情報を記憶させる例を示す。なお、図3(a)および図3(b)において、縦軸はメモリセルの分布、横軸はセンスアンプに検知される電圧を示す。
例えば図3(a)の場合、センスアンプに検知される電圧を、メモリセルの電荷の蓄積量に応じた4つのレベルに分類し、2ビットの情報を記憶させる。ここで、4つのレベルにそれぞれ対応する各分布10a〜10dは、それぞれのレベルにおいてセンスアンプが検知する電圧に対するメモリセルの分布を示す。なお、分布10dは、消去状態(Erase)の分布を示している。図3(a)の場合、各分布10a〜10dに応じて、読み出し条件として3つの閾値Th1、Th2およびTh3を含む閾値Thの組を設定し、センスアンプが検知する電圧をこれら閾値Th1、Th2およびTh3で分類することで、4つのレベルを検出でき、2ビットの情報を記憶することができる。
図3(b)の例でも同様に、センスアンプに検知される電圧を、メモリセルの電荷の蓄積量に応じた8つのレベルに分類し、3ビットの情報を記憶させる。この場合、8つのレベルにそれぞれ対応する各分布11a〜11hに応じて、読み出し条件として7つの閾値Th11〜Th17を含む閾値Thの組を設定し、センスアンプが検知する電圧をこれら閾値Th11〜Th17で分類して、8つのレベルを検出する。なお、分布11hは、消去状態(Erase)の分布を示している。ここで、図3(b)の例では、各分布11a〜11hのうち分布11a〜11gは、一端または両端が隣接する分布と重複し、分布が重複する部分に閾値Th12〜Th17がそれぞれ設定されている。したがって、分布の端にあるメモリセルからの読み出しは、一定の割合でエラービットとなる。
上述した図3(a)の例では、各分布10a〜10dの両端には隣接する分布に対するマージンが有り、各分布10a〜10dが重複していない。そのため、通常の状態では、エラービットが発生する確率は低い。ここで、例えば、書き込み/読み出しのサイクルに伴いメモリセルのデータ保持特性の劣化が発生した場合について考える。この場合、例えば各分布10a〜10d間のマージンが徐々に狭くなり、分布の端にあるメモリセルからの読み出しにおいてエラービットが発生する確率が高くなる。
このようなエラービットの発生を抑止するための方法の一つとして、メモリセルからの読み出しの際の条件を変えてメモリセルからの再読み出しを行うリトライリードが知られている。図4を用いて、実施形態に適用可能なリトライリードについて説明する。図4(a)および図4(b)は、図3(a)を用いて説明した2ビット記憶の場合のリトライリードの例を示す。
図4(a)は、データ・リテンションに起因するメモリセルのデータ保持特性劣化に伴うエラービットを抑制するためのリトライリードの例を示す。初期状態では、各メモリセルの各分布10a〜10dに対し、読み出し条件(デフォルトリード条件)として閾値Th1、Th2およびTh3が設定されているものとする。この初期状態に対して、書き込み/読み出しのサイクル繰り返しに伴う素子の劣化や、高温環境下での蓄積電荷保持などが発生すると、各メモリセルの分布が、分布10a’〜10d’のように、全体的に低電圧方向にシフトする、所謂ダウンシフトが生じる。したがって、デフォルトリード条件により各メモリセルから読み出した各ビットに対してエラー訂正を行っても、当該各ビットにエラー訂正符号のエラー訂正能力を超えてエラーが含まれる可能性が高く、エラーが救済される見込みが低い。
この場合、各閾値Th1、Th2およびTh3も低電圧側にシフトさせ、読み出し条件(リトライリード条件)を閾値Th21、Th22およびTh23とする。ダウンシフト起因のエラービットは、このダウンシフトを補償するリトライリード条件により各メモリセルからの読み出しを行うことで、読み出した各ビットに含まれるエラー数がデフォルトリード条件による読み出しの場合に対して抑制でき、エラー訂正により救済できる見込みが高くなる。
図4(b)は、メモリセルのプログラム・ディスターブに伴うエラービットを抑制するためのリトライリードの例を示す。例えば書き込み/読み出しのサイクル繰り返しでプログラム・ディスターブによる特性劣化が生じると、各メモリセルの分布が、分布10a”〜10d”のように、全体的に高電圧側にシフトする。この場合も、上述と同様にエラーが救済される見込みが低い。
この場合には、各閾値Th1、Th2およびTh3も高電圧側にシフトさせ、読み出し条件を閾値Th31、Th32およびTh33とする。このプログラム・ディスターブ起因のエラービットは、このようにデフォルトリード条件に対して高電圧側にシフトさせた閾値Th31、Th32およびTh33を用いることで、読み出した各ビットに含まれるエラー数がデフォルトリード条件による読み出しの場合に対して抑制でき、エラー訂正により救済できる見込みが高くなる。
このように、メモリセルの分布のシフトに起因するエラービットの発生は、メモリセルに対する読み出し条件を、各閾値を全体的にシフトさせる条件に変更することで対処が可能である。このとき、分布のシフト量を読み出し前に知ることは極めて困難である。そのため、実際には、閾値の異なる複数の読み出し条件を予め用意しておき、各読み出し条件によるメモリセルからの読み出しを試行する必要があった。また、エラービット発生の要因は、上述したデータ・リテンションや、プログラム・ディスターブ以外にも、セル間干渉、リード・ディスターブなど、様々に存在する。
したがって、エラービット発生を抑制するためには、多数の読み出し条件を用意しておく必要がある。例えば、各メモリセルが2ビット記憶を行う場合には、10件以上、3ビット記憶を行う場合には、20件以上の読み出し条件を用意する必要があり、これら読み出し条件を記憶する記憶領域を用意する必要がある。また、メモリセルから読み出した各ビットに、エラー訂正符号のエラー訂正能力を超えてエラーが存在してエラー訂正ができない場合に、用意した読み出し条件全てについて、リトライリードを実行する必要があり、メモリセルからの読み出し速度に影響が生じるおそれがある。
また、図5に示されるように、分布の端部がノイズを含んでいる場合がある。すなわち、図5において、分布10a”の端部(範囲12として示す)がノイズを含んで振動様となっている。この場合には、ノイズにかかる閾値th2において正しい判定を行うことができない。
次に、ビットエラー発生率の書き込み/読み出しサイクル回数に対する依存性について、図6および図7を用いて説明する。図6は、ビットエラー発生率の書き込み/読み出し回数に対する依存性を実測値に基づき示す。なお、図6では、書き込み/読み出しサイクルの代わりに、書き込み/消去サイクルが用いられている。図6は、メモリセルに対するW/E動作の1000回目、3000回目、5000回目、…に、各メモリセルからの読み出し(リード)を同一読み出し条件で11回実行して、読み出した各ビットに含まれるエラービット数を計測した実測値を示している。
図6において、x軸は、W/E動作の回数を1000回単位で示す。y軸は、各メモリセルから読み出した各ビットについて、11回の読み出し動作のうちリードエラーとなった回数N(N=1〜11)を示す。z軸は、11回の読み出し動作において発生したエラービットの合計Zと、各エラー回数Nについて発生したエラービット数M(N)との比M(N)/Zを、エラー率として示す。
図6において、リードエラー回数N=1〜3は、偶然エラー、すなわち、メモリセルの特性バラツキや、メモリセルに係る回路(例えばセンスアンプ)の特性バラツキなどに起因するエラーを含むものと考えられる。リードエラー回数N4〜10も、W/E動作回数に関わらず存在している。なお、リードエラー回数N=11におけるエラー率は、不良メモリセルに対応しているものと考えられる。
図7は、図6のリードエラー回数N=1〜3を抜き出した場合に対応する図である。図7において、縦軸および横軸は、それぞれ図6のエラー率およびW/E回数に対応する。また、図7において、特性線20aがリードエラー回数N=1、特性線20bがリードエラー回数N=2、特性線20cがリードエラー回数N=3の場合の例を示す。
図7から、リードエラー回数N=1のビットのエラーが解消されると、エラーになる可能性を有するビットの数を10%〜20%ほど低減可能であることが分かる。また、リードエラー回数N=2のビットのエラーが解消されると、エラーになる可能性を有するビットの数を8%ほど低減可能であることが分かる。さらに、リードエラー回数N=3のビットのエラーが解消されると、エラーになる可能性を有するビットの数を5%ほど低減可能であることが分かる。これらより、リードエラー回数N=1〜3のビットのエラーを全て解消すると、エラーになる可能性を有するビットの数を30%ほど低減可能であることが分かる。
(実施形態に係る読み出し処理)
次に、実施形態に係る読み出し処理について説明する。実施形態では、メモリセルからのデータの読み出しに多数決処理を導入する。多数決処理は、同一のアドレスに対して複数回(s>2:sは整数)の読み出しを行って得られた各データを比較して、sが奇数の場合は読み出された回数が(s−1)/2より多いデータ、sが偶数の場合は読み出された回数がs/2より多いデータを読み出しデータとして使用する。
実施形態に適用可能な多数決処理について、図8を用いてより具体的に説明する。ここでは、説明のため、同一アドレスからビットbit−0〜bit−7の各ビットからなるビット列による8ビットのデータを、同一の読み出し条件により3回読み出す場合(s=3)について説明する。図8に示されるように、1回目に読み出したデータ30aのビット列の各ビットが「10111001」、2回目に読み出したデータ30bのビット列の各ビットが「10011101」、3回目に読み出したデータ30cのビット列の各ビットが「10111001」であるものとする。多数決処理では、これらデータ30a、30bおよび30cそれぞれのビット列について、ビット位置が互いに一致するビット同士で比較して、当該ビット位置においてビットの値に対して多数決処理を行う。
図8の例では、ビットbit−2およびビットbit−5の各ビット位置において、データ30a〜30c間で異なるビット値を含んでいる。すなわち、ビットbit−2のビット位置では、データ30a〜30cにおける各ビット値は、それぞれ値「1」、値「0」および値「1」である。また、ビットbit−5のビット位置では、データ30a〜30cにおける各ビット値は、それぞれ値「0」、値「1」および値「0」である。
ビットbit−2のビット位置の各ビット値は、3回の読み出しのうち値「1」が2回読み出され、値「0」が1回読み出されている。したがって、値「1」が(s−1)/2=1より多い回数読み出されているため、ビットbit−2のビット位置のビット値として値「1」を用いる。同様に、ビットbit−5のビット位置の各ビット値は、3回の読み出しのうち値「0」が2回読み出され、値「1」が1回読み出されている。この場合には、ビットbit−5のビット位置のビット値として値「0」を用いる。
また、ビットbit−2およびビットbit−5以外の各ビット位置の各ビット値は、データ30a〜30c間で同一であり、ビットbit−0、ビットbit−1、ビットbit−3、ビットbit−4、ビットbit−6およびビットbit−7の各ビット位置のビット値は、それぞれ値「1」、値「0」、値「1」、値「1」、値「0」および値「1」を用いる。
したがって、この例の場合、多数決処理の結果、各ビット値が「10111001」であるデータ30dを読み出しデータとして採用する。実施形態では、この多数決処理により採用された読み出しデータに対して、エラー訂正符号に基づくエラー訂正処理を施す。
図9は、実施形態に係る多数決処理を行うための一例の構成を模式的に示す模式図である。図9において、半導体装置1は、多数決処理部140と、読み出し回数に応じた数(この例では3回)のバッファ1421、1422および1423と、出力バッファ144と、データ記憶領域150と、読み出し条件記憶領域151とを備える。なお、図9において、バッファ1421、1422および1423は、それぞれバッファ(#1)、バッファ(#2)およびバッファ(#3)としても示されている。
これらのうち、多数決処理部140は、例えば図1における制御部3に含まれる。バッファ1421、1422および1423、ならびに、出力バッファ144は、例えば図15を用いて後述する入出力部6に含まれる。読み出し条件記憶領域151は、制御部3に含まれる。また、データ記憶領域150は、例えばメモリ部2に含まれる。
読み出し条件記憶領域151は、初期状態での読み出し条件であるデフォルトリード条件を含む複数のリトライリード条件を予め記憶する。半導体装置1において、図1に示した制御部3は、この読み出し条件記憶領域151から読み出し条件を取得して、データ記憶領域150からデータを読み出す際の条件(閾値など)を設定する。
データ記憶領域150は、ユーザデータが記憶される。ユーザデータは、例えば、データ本体と、データ本体に対して付加されたエラー訂正符号とが含まれる。半導体装置1は、データ記憶領域150から、データ本体における指定されたアドレスのデータを読み出す。このとき、半導体装置1は、同じアドレスのデータを、複数回繰り返して読み出す。この例では、半導体装置1は、同じアドレスのデータを3回繰り返して読み出すものとする。
図10は、実施形態に係る読み出し処理を概略的に示す一例のフローチャートである。半導体装置1は、ステップS10で、読み出し条件記憶領域151から読み出し条件を取得し、データ記憶領域150からデータを読み出す際の読み出し条件として設定する。次のステップS11で、半導体装置1は、データ記憶領域150の同一アドレスからの所定回数(3回とする)の読み出しを実行したか否かを判定する。半導体装置1は、若し、所定回数の読み出しが完了していないと判定した場合、所定をステップS12に移行させ、データ記憶領域150からのデータの読み出しを実行する。
次のステップS13で、半導体装置1は、ステップS12で読み出したデータを、バッファ1421、1422および1423のうち読み出しを実行した回数に応じたバッファに記憶させる。すなわち、半導体装置1は、ステップS11〜ステップS13の処理を3回繰り返し、1回目、2回目および3回目に読み出したデータを、それぞれバッファ1421、1422および1423に記憶させる。
ステップS11で、半導体装置1は、所定回数の読み出しを完了したと判定した場合、処理をステップS14に移行させる。ステップS14で、半導体装置1は、バッファ1421、1422および1423から各データを読み出して多数決処理部140に供給する。そして、半導体装置1は、多数決処理部140により、各データをビット位置が対応するビット同士で比較して、各ビット位置において多数決処理を行う。
そして、半導体装置1は、ステップS15で、多数決処理の結果で得られたデータを使用するデータに決定し、当該データを出力バッファ144に記憶させる。
図11および図12は、実施形態に適用可能な、多数決処理部140に含まれる多数決回路50の例を示す。ここでは、同一データの繰り返し読み出し回数が3回の場合の多数決回路50の例を示す。また、図11および図12に示される多数決回路50は、1つのビット位置において多数決処理を行う。
図11は、論理回路を用いて構成した多数決回路50の例を示す。図11に示される多数決回路50は、それぞれ2入力のAND回路51a〜51cと、OR回路52および53とを用いて構成されている。図11において、入力信号IN1、IN2およびIN3は、それぞれ1回目、2回目および3回目の読み出しで読み出されたビットである。入力信号IN1、IN2およびIN3は、それぞれAND回路51a〜51cの一方の入力端に入力される。また、入力信号IN1、IN2およびIN3は、それぞれAND回路51c、51aおよび51bの他方の入力端に入力される。
AND回路51aおよび51bの出力が、OR回路52の一方および他方の入力端に入力される。また、AND回路51cの出力と、OR回路52の出力とがOR回路53の一方および他方の入力端に入力される。OR回路53の出力が、この多数決回路50の出力となる。
この図11の多数決回路50は、入力信号IN1、IN2およびIN3を、下記の式(1)に従い処理する。
この式(1)に従えば、入力信号IN1、IN2およびIN3に含まれる値「1」および「0」のうち、数の多い方の値が出力信号Xとして出力される。例えば、図11の多数決回路50は、入力信号IN1およびIN2が値「1」で、入力信号IN3が値「0」であれば、値「1」が2個、値「0」が1個なので、値「1」が出力信号Xとして出力される。
図12は、電位に応じて多数決処理を行う多数決回路50の例を示す。図12において、多数決回路50は、3個のトランジスタQ1、Q2およびQ3と、1個の抵抗Rを含む。図12の多数決回路において、トランジスタQ2のドレインがトランジスタQ1のソースに、トランジスタQ2のソースがトランジスタQ3のドレインに、それぞれ接続され、トランジスタQ1〜Q3がドレイン−ソース方向に直列に接続される構成となっている。各トランジスタQ1〜Q3のゲートには、入力信号IN1、IN2およびIN3がそれぞれ入力される。そして、一方の端のトランジスタQ1のドレインに電源電圧VDDが供給され、他方の端のトランジスタQ3のソースに、一端が接地される抵抗値Rrefの抵抗Rが接続される。トランジスタQ3のソースと抵抗との接続点から、出力信号Xが取り出される。
このような構成において、各トランジスタQ1〜Q3のゲートに入力される各入力信号IN1、IN2およびIN3は、ハイ(High)状態でビット値「1」を表し、ロー(Low)状態でビット値「0」を表すものとする。また、各トランジスタQ1〜Q3は、ドレイン−ソース間の抵抗値RDSが、ゲート電圧がハイ(High)状態で低抵抗となり、ゲート電圧がロー(Low)状態で高抵抗となる。
ここで、説明のため各トランジスタQ1〜Q3の特性が等しいものとし、ドレイン−ソース間の抵抗値RDSを、ゲートに入力される入力信号INxの関数として、抵抗値RDS(INx)として表す。この場合、電源電圧VDDの入力端(トランジスタQ1のドレイン端子)から接地点の間の合計の抵抗値Rtotalは、下記の式(2)で表される。
total=RDS(IN1)+RDS(IN2)+RDS(IN3)+Rref …(2)
出力信号Xの電圧を抵抗Rの両端で計測する場合、出力信号Xの電圧値は、電圧VDDを、式(2)の抵抗値Rtotalと、抵抗値Rrefとの比に従い分圧した電圧値となる。したがって、入力信号IN1〜IN3のうち、何れか1つがハイ状態で他の2つがロー状態の場合の出力信号Xの電圧値V1と、何れか1つがロー状態で他の2つがハイ状態の場合の出力信号Xの電圧値V2とを比較すると、V2>V1となる。これにより、電圧値V2と電圧値V1との間の電圧値Vthを閾値として出力信号Xに対する判定を行うことで、多数決処理を行うことができる。
図13および図14を用いて、実施形態に係る多数決処理の効果について説明する。図13は、ビットエラー発生率BER(Bit Error Ratio)を多数決処理により改善したBER改善率Kの実測値の例を示す。図13において、縦軸は、BER改善率Kを示し、横軸は多数決処理による読み出し回数を示す。
ここで、ビットエラー発生率BERは、1ブロックのZビットの書き込みを行い、読み出したデータのうちYビットのデータがエラーとなった場合に、BER=Y/Zと定義する。多数決処理後にY’ビットのデータがエラーになったものとすると、多数決処理後のビットエラー発生率BER’は、BER’=Y’/Zとなる。ビットエラー改善率Kは、K=(Y−Y’)/Zと定義する。
図13の例では、多数決処理において、読み出し回数が3回でも2.5%程度のBER改善率Kが得られ、読み出し回数が7回〜9回で、BER改善値Kが4.2%程度の最大値を取ることが示されている。一方、読み出し回数が11回では、読み出し回数が9回の場合に対してBER改善率Kが低下している。すなわち、図13の例では、多数決処理における繰り返しの読み出し回数最適値が存在しているといえる。
図14は、ビットエラー発生率BERと、多数決処理との関係を、メモリセルに2ビット情報を記憶する場合と、3ビット情報を記憶する場合とで実測した例を示す。なお、図14(a)および図14(b)において、縦軸はビットエラー発生率BERを示し、横軸は、繰り返し読み出しの各読み出し回と、多数決処理とを示す。
図14(a)は、メモリセルに2ビット情報を記憶する場合のビットエラー発生率BERの例を示す。また、図14(a)は、読み出しを11回繰り返して多数決処理を行った例であり、右端の棒が多数決処理の結果行った場合のビットエラー発生率BERの例を示す。また、他の棒は、多数決処理を行わない場合の各読み出し回におけるビットエラー発生率BERの例を示す。
図14(a)から分かるように、11回の繰り返し読み出しにより多数決処理を行った場合、ビットエラー発生率BERは、多数決処理を行わない場合の平均値に対して4%程度減少している。
図14(b)は、メモリセルに3ビット情報を記憶する場合のビットエラー発生率BERの例を示す。また、図14(b)は、読み出しを5回繰り返して、読み出しの3回目と5回目とにおいて多数決処理を行った例である。図14(b)において、右端の棒が5回の読み出しにより多数決処理を行った場合のビットエラー発生率BERの例を示し、右端の隣の棒が3回の読み出しにより多数決処理を行った場合のビットエラー発生率BERの例を示す。また、他の棒は、多数決処理を行わない場合の各読み出し回におけるビットエラー発生率BERの例を示す。
図14(b)から分かるように、ビットエラー発生率BERは、多数決処理を行わない場合の平均値に対して、3回の繰り返し読み出しにより多数決処理を行った場合に8%程度減少し、5回の繰り返し読み出しにより多数決処理を行った場合に10.4%程度減少している。
このように、多数決処理を用いることで、少ない繰り返し読み出し回数でも、ビットエラー発生率BERを抑制することが可能である。
(実施形態に係る半導体装置のより詳細な構成)
次に、実施形態に係る半導体装置1について、より詳細に説明する。図15は、実施形態に係る半導体装置1の構成の例をより詳細に示す。なお、図15において、上述した図1と共通する部分には同一の符号を付して、詳細な説明を省略する。
半導体装置1は、メモリ部2と、制御部3と、入出力部6とを備える。入出力部6は、図1における入力部4の機能と出力部5の機能とを含む構成となっている。メモリ部2は、メモリ素子部100と、NANDペリフェラル101と、ロー(Row)デコーダ102と、NANDシーケンサ103と、電圧供給部104と、OSC(発振器)105とを含む。
メモリ素子部100は、図2に示したように、メモリセルがマトリクス状に設けられ、複数のメモリブロックBLKを含む。メモリ素子部100は、メモリブロックBLKにおいて、各ワードラインWL1〜WLnから1のワードラインを選択し、各ビット線BL1〜BLmの電圧を検出することで、選択されたワードラインと各ビット線BL1〜BLmが交差する各メモリセルから情報を読み出すことができる。
NANDペリフェラル101は、メモリ素子部100に含まれる各メモリブロックBLKのビット線BL1〜BLmの電圧を読み出すセンスアンプを含む。また、NANDペリフェラル101は、NANDシーケンサ103の制御に従い各メモリセルにデータを書き込み、また、各メモリセルからデータを読み出すためのカラム(Column)デコーダを含む。
電圧供給部104は、NANDシーケンサ103の制御に従い、各メモリブロックBLKの各ワードラインWL1〜WLnから指定されたワードラインを選択するための電圧をローデコーダ102に供給する。OSC105は、クロック信号CLKを生成し、NANDシーケンサ103に供給する。
NANDシーケンサ103は、OSC105で生成されたクロック信号CLKに従い動作する。NANDシーケンサ103は、例えば、後述するNAND制御部110から供給される制御信号に従い、ローデコーダ102に対してワードラインを選択する選択信号を出力し、また、NANDペリフェラル101に対してビット線を選択する選択信号を出力する。また、NANDシーケンサ103は、NAND制御部110から供給される制御信号に従い、NANDペリフェラル101に対して、メモリセルから情報を読み出す際の閾値Thを設定するための信号を出力する。
入出力部6は、データバッファ130と、ECC符号化部131と、ECC復号部132と、データバッファ133と、多数決処理部140とを含む。入出力部6は、メモリ素子部100に対して書き込むデータの処理と、メモリ素子部100から読み出されたデータの処理とを行う。データバッファ130は、メモリ素子部100から読み出されたデータや、メモリ素子部100に書き込むためのデータを一時的に記憶する。
データバッファ133は、後述するインターフェイス(I/F)111を介して半導体装置1に入力された、メモリ素子部100に書き込むためのデータを一時的に記憶する。また、データバッファ133は、メモリ素子部100から読み出され、I/F111を介して出力するためのデータを一時的に記憶する。
ECC(Error Correcting Code)符号化部131は、供給されたデータに対してエラー訂正符号化処理を行う。例えば、ECC符号化部131は、I/F111を介して入力されデータバッファ133に記憶された原データに基づきエラー訂正符号を生成する。ECC符号化部131は、生成したエラー訂正符号を原データに付加して出力する。ECC符号化部131から出力されたデータは、データバッファ130を介してNANDペリフェラル101に供給され、メモリ素子部100に書き込まれる。
ECC復号部132は、ECC符号化部131によるエラー訂正符号化に対応する復号処理を行う。より具体的には、ECC復号部132は、メモリ素子部100から読み出され、データバッファ130を介して供給されたデータのエラー訂正符号を復号してエラー訂正処理を行い、復号データとして出力する。ECC復号部132から出力された復号データは、データバッファ133およびI/F111を介して、半導体装置1の外部に出力される。
ここで、ECC復号部132は、復号を行うデータに、当該データに含まれるエラー訂正符号のエラー訂正能力を超えてエラーが存在する場合、例えばエラー訂正処理を行わずにエラービット数を示す情報を出力する。ECC復号部133から出力されたエラービット数を示す情報は、FBC管理部120に供給される。また、ECC復号部132は、復号を行うデータに、当該データに含まれるエラー訂正符号のエラー訂正能力を超えてエラーが存在してエラー訂正処理を行わなかった場合に、その旨をNAND制御部110に通知する。
多数決処理部140は、上述した多数決処理を行う。すなわち、多数決処理部140は、メモリ素子部100の同一アドレスから複数回読み出された各データを、ビット位置が対応するビット同士で比較して多数決処理を行う。多数決処理部140は、多数決処理により得られたデータをECC復号部132に供給する。ECC復号部132は、多数決処理部140から供給されたデータを復号してエラー訂正処理を行い、エラー訂正されたデータを出力する。
制御部3は、NAND制御部110と、I/F111と、メモリ112と、FBC(Fail Bit Count)管理部120とを含む。I/F111は、データの入出力状態を示す情報をNAND制御部110に渡す。メモリ112は、書き換え可能な不揮発性メモリであって、メモリ素子部100からデータを読み出す際の複数の読み出し条件を予め記憶する。例えば、メモリ112は、メモリセルからの読み出しの際の閾値Thの組を複数格納するシフトテーブルを予め記憶する。
NAND制御部110は、外部から、メモリ素子部100に対する読み出しおよび書き込みを命令するコマンドを含む各種コマンドが供給される。読み出しおよび書き込みを命令するコマンドは、例えば、メモリ素子部100に対して指定するアドレスを示すアドレス情報を含む。NAND制御部110は、外部から供給されたアドレス情報と読み出し命令とに基づき、アドレス情報を含む制御信号をNANDシーケンサ103に供給する。
また、NAND制御部110は、ECC復号部132からエラー訂正処理ができなかった旨の通知を受け取ると、リトライリードを行うための制御信号をNANDシーケンサ103に供給する。NAND制御部110は、メモリ112から、現在用いられている読み出し条件とは異なる読み出し条件を、リトライリード毎に読み出して取得し、NANDシーケンサ103に供給する。NANDシーケンサ103は、この読み出し条件をNANDペリフェラル101に供給する。
ECC復号部132は、リトライリードで読み出されたデータに、エラー訂正符号のエラー訂正能力を超えてエラーが存在する場合、エラービット数を示す情報をFBC管理部120に供給する。FBC管理部120は、エラービット数を示す情報を、リトライリード毎に管理する。NAND制御部110は、FBC管理部120に管理されるリトライリード毎のエラービット数に基づき、デフォルトとして用いる読み出し条件を決定する。また、NAND制御部110は、ECC復号部132による復号結果に応じて、多数決処理部140による多数決処理を行うか否かを決定する。
図16は、実施形態に係る多数決処理部140の一例の構成を示す。図16において、データ記憶領域150は、メモリ素子部100に対応する。多数決処理部140は、セグメント141と、多数決処理による読み出しを行う回数(この例では3回)に対応する数のバッファ1421、1422および1423と、多数決回路部143と、出力バッファ144とを備える。
セグメント141は、例えばレジスタであって、データ記憶領域150から読み出されたデータをビット単位で記憶するもので、ビット単位でデータを記憶するビット記憶領域を複数備える。この例では、データ記憶領域150からNビットのデータが読み出されるものとし、セグメント141は、N個のビットデータbit−1、bit−2、bit−3、…、bit−Nに対応するN個のビット記憶領域を備える。
バッファ1421、1422および1423は、セグメント141と同様に、それぞれN個のビットデータbit−1、bit−2、bit−3、…、bit−Nに対応するN個のビット記憶領域を備える。セグメント141の各ビット記憶領域は、バッファ1421、1422および1423それぞれにおける、ビット位置が対応する各ビット記憶領域に接続される。
例えば、多数決処理において、データ記憶領域150から1回目の読み出しで読み出されたNビットのビットデータは、セグメント141の各ビット記憶領域を介してバッファ1421に供給され、バッファ1421における、セグメント141の各ビット記憶領域とビット位置が対応する各記憶領域に記憶される。同様に、データ記憶領域150から2回目の読み出しで読み出されたNビットのビットデータが、セグメント141の各ビット記憶領域を介して、バッファ1422における、セグメント141の各ビット記憶領域とビット位置が対応する各記憶領域に記憶される。データ記憶領域150からの3回目の読み出しについても同様にして、データ記憶領域150から読み出されたNビットのビットデータが、バッファ1423における、セグメント141の各ビット記憶領域とビット位置が対応する各ビット記憶領域に記憶される。
多数決回路部143は、データ記憶領域150からの読み出しビット数に対応し、N個の多数決回路501、502、503、…、50Nを備える。多数決回路501、502、503、…、50Nは、図11で示した論理回路を用いて多数決処理を行う構成と、図12で示した電位に応じて多数決処理を行う構成とのうち何れの構成を用いてもよい。また、同様の処理結果が得られれば、さらに他の構成の多数決処理回路を用いてもよい。
各多数決回路501、502、503、…、50Nは、図11および図12で示したように、多数決処理での読み出し回数に応じて、入力信号IN1、IN2およびIN3の3つの入力信号に対して多数決処理を行う。各バッファ1421、1422および1423における各ビット記憶領域に記憶されたN個のビットデータbit−1、bit−2、bit−3、…、bit−Nは、それぞれ多数決回路501、502、503、…、50Nに、入力信号IN1、IN2およびIN3としてそれぞれ供給される。
例えば、バッファ1421、1422および1423の各ビットデータbit−1は、それぞれ多数決回路501に対して、入力信号IN1、IN2およびIN3として入力される。同様に、バッファ1421、1422および1423の各ビットデータbit−2は、それぞれ多数決回路502に対して、入力信号IN1、IN2およびIN3として入力される。
出力バッファ144は、バッファ1421、1422および1423や、セグメント141と同様に、それぞれN個のビットデータbit−1、bit−2、bit−3、…、bit−Nに対応するN個のビット記憶領域を備える。多数決回路501、502、503、…、50Nの各出力は、出力バッファ144における、ビット位置が対応する各ビット記憶領域に接続される。出力バッフ144の各ビット記憶領域に記憶されるN個のビットデータbit−1、bit−2、bit−3、…、bit−Nが、多数決処理されたデータとして多数決処理部140から出力される。
なお、上述した図15では、多数決処理部140が入出力部6に含まれるように説明したが、これはこの例に限定されない。すなわち、多数決処理部140は、制御部3に含まれるように構成することができる。多数決処理部140を制御部3内の構成とすることで、制御部3内のロジック回路を利用して多数決処理部140を構成することができ、好ましい。
図17は、実施形態に係る半導体装置1におけるメモリ部2(メモリ素子部100)からのデータの読み出し処理を示す一例のフローチャートである。この図17のフローチャートによる処理は、メモリ素子部100からの読み出し単位(例えばメモリブロックBLK)毎に実行される。なお、このフローチャートによる処理に先立って、NAND制御部110は、NANDシーケンサ103に対してデフォルトの読み出し条件を予め設定しておくものとする。
NAND制御部110が外部から供給されたリードアクセス命令を受け取ることで、図17のフローチャートによる処理が開始される。NAND制御部110が受け取ったリードアクセス命令は、メモリ素子部100からデータを読み出すアドレスを示すアドレス情報を含む。
ステップS100で、NAND制御部110は、メモリ112から履歴フラグを読み出すと共に、リトライフラグの値を「0」に設定する。なお、履歴フラグは、初期値が値「0」であり、リードアクセス命令によって初期化されないものとする。これに限らず、履歴フラグは、異なるメモリブロックBLKに対するリードアクセス命令毎に初期化してもよいし、メモリ素子部100に複数のメモリチップが含まれる場合には、異なるメモリチップに対するリードアクセス命令毎に初期化してもよい。
次のステップS101で、NAND制御部110は、デフォルトの読み出し条件により、リードアクセス命令に示されるアドレスに従いメモリ素子部100からのデータの読み出しを行うように、NANDシーケンサ103に命令する。NANDシーケンサ103は、この命令に従いNANDペリフェラル101を制御して、メモリ素子部100の指定されたアドレスからデータを読み出す。
メモリ素子部100から読み出されたデータは、データバッファ130を介してECC復号部132に供給される。ECC復号部132は、データバッファ130から供給されたデータのエラー訂正符号を復号して、エラー訂正処理を行う(ステップS102)。ECC復号部132は、エラー訂正結果をNAND制御部110に通知する。
次のステップS103で、NAND制御部110は、ECC復号部132から通知されたエラー訂正結果に基づき、エラー訂正できたか否かを判定する。NAND制御部110は、読み出したデータのエラー訂正ができたと判定した場合(Pass)、処理をステップS114に移行させる。ステップS114で、NAND制御部110は、ECC復号部132でエラー訂正処理されたデータを、データバッファ133およびI/F111を介して半導体装置1の外部に出力させる。
一方、NAND制御部110は、ステップS102のエラー訂正処理において、読み出されたデータに、エラー訂正符号のエラー訂正能力を超えた数のエラーが存在する旨の通知をECC復号部132から受け取った場合、ステップS103でエラー訂正ができないと判定する(Fail)。この場合、NAND制御部110は、処理をステップS104に移行させ、履歴フラグの値をチェックする。若し、履歴フラグの値が「1」であれば、NAND制御部110は、処理をステップS122に移行させる。
一方、NAND制御部110は、履歴フラグの値が「0」であれば、処理をステップS105に移行させ、リトライフラグの値を「1」とし、変数iの値を「0」に設定する。
次のステップS106で、FBC管理部120は、ECC復号部132から出力された、データに存在するエラービット数を示す情報を、i番目の読み出し処理におけるエラービット数として記憶する。また、NAND制御部110は、変数i=i+1として、変数iの値を1だけインクリメントする。
次のステップS107で、NAND制御部110は、変数iの値が予め定められた値nに達したか否かを判定する。NAND制御部110は、変数iが値nに達していないと判定した場合、処理をステップS108に移行させる。
ステップS108で、NAND制御部110は、メモリ112からi番目の読み出し条件iを読み出す。そして、NAND制御部110は、読み出した読み出し条件iに従いメモリ素子部100からのリトライリードを行うように、NANDシーケンサ103に命令する。NANDシーケンサ103は、この命令に従い、ステップS101で読み出しを行ったアドレスと同一のアドレスからデータを読み出しリトライリードを行う。
リトライリードによりメモリ素子部100から読み出されたデータは、データバッファ130を介してECC復号部132に供給される。ECC復号部132は、データバッファ130から供給されたデータのエラー訂正符号を復号して、エラー訂正処理を行う(ステップS109)。ECC復号部132は、エラー訂正結果をNAND制御部110に通知する。
次のステップS110で、NAND制御部110は、ECC復号部132から通知されたエラー訂正結果に基づき、エラー訂正できたか否かを判定する。NAND制御部110は、ステップS109のエラー訂正処理において、読み出されたデータに、エラー訂正符号のエラー訂正能力を超えた数のエラーが存在する旨の通知をECC復号部132から受け取った場合、ステップS110でエラー訂正ができなかったと判定する(Fail)。この場合、処理がステップS106に戻され、FBC管理部120によりエラービット数がi番目の読み出し処理におけるエラービット数として記憶される。その後、変数iの値が1だけインクリメントされる。
一方、NAND制御部110は、ステップS110で読み出したデータのエラー訂正ができたと判定した場合(Pass)、処理をステップS111に移行させて履歴フラグを値「0」に初期化する。
次のステップS112で、NAND制御部110は、読み出し条件iを新たな読み出し条件とする。処理はステップS113に移行され、NAND制御部110は、新たな読み出し条件でデフォルトの読み出し条件を更新する。そして、NAND制御部110は、処理をステップS114に移行させて、ECC復号部132でエラー訂正処理されたデータを、データバッファ133およびI/F111を介して半導体装置1の外部に出力させる。
NAND制御部110は、上述のステップS107で変数iが値nに達したと判定した場合、処理をステップS120に移行させる。ステップS120で、NAND制御部110は、ステップS106〜ステップS110のループにおいて取得されたn個の読み出し条件にそれぞれ対応するエラービット数をFBC管理部120から取得する。そして、NAND制御部110は、取得したn個のエラービット数のうち最も少ないエラービット数を選択し、選択されたエラービット数に対応する読み出し条件を、新たな読み出し条件に決定する。NAND制御部110は、新たな読み出し条件を示す情報をメモリ112に記憶する。
次のステップS121で、NAND制御部110は、履歴フラグの値を「1」に設定する。そして、次のステップS122で、NAND制御部110は、メモリ112から新たな読み出し条件を取得する。また、NAND制御部110は、変数jの値を「0」に設定する。
次のステップS123で、NAND制御部110は、変数j=j+1として変数jを1だけインクリメントし、取得した新たな読み出し条件に従いメモリ素子部100からのデータの読み出しを行うように、NANDシーケンサ103に命令する。NANDシーケンサ103は、この命令に従い、ステップS101で読み出しを行ったアドレスと同一のアドレスからデータを読み出し、j回目の読み出しを行う。
j回目の読み出しでメモリ素子部100から読み出されたデータは、データバッファ130を介して多数決処理部140に供給される。ステップS124で、多数決処理部140は、供給されたデータをバッファ(j=1の場合、例えばバッファ1421)に記憶する。
次のステップS125で、NAND制御部110は、変数jの値が予め定められた値mに達したか否かを判定する。値mは、多数決処理により比較するデータ数を示す値であって、ここでは、m=3であるものとする。NAND制御部110は、変数jの値が値mに達していないと判定した場合、処理をステップS123に戻し、変数jを1だけインクリメントし、j回目の読み出しを行う。多数決処理部140は、読み出されたデータを次のバッファ(j=2の場合、例えばバッファ1422)に記憶する。
ステップS125で変数jが値mに達したと判定した場合、処理がステップS126に移行される。ステップS126で、多数決処理部140は、ステップS124で各バッファに記憶されたデータをビット位置が一致するビット同士で比較して、当該ビット位置においてビットの値に対して多数決処理を行う。多数決処理部140は、多数決処理の結果得られたデータをECC復号部132に渡す。
次のステップS127で、ECC復号部132は、多数決処理部140から供給されたデータに対してエラー訂正処理を行う。このとき、ECC復号部132は、m回の読み出しで得た各エラー訂正符号のうち何れかを用いてエラー訂正を行うことができる。これに限らず、ステップS101の読み出しで得られたエラー訂正符号を用いてエラー訂正処理を行ってもよい。さらに、ステップS123〜ステップS126の処理において、エラー訂正符号自体に対して多数決処理を行い、その結果得られた符号を用いてエラー訂正処理を行うことも考えられる。
ECC復号部132は、エラー訂正結果をNAND制御部110に通知する。次のステップS128で、NAND制御部110は、ECC復号部132から通知されたエラー訂正結果に基づき、ステップS126における多数決処理の結果得られたデータに対するエラー訂正ができたか否かを判定する。NAND制御部110は、エラー訂正処理ができたと判定した場合(Pass)、処理を上述したステップS113に移行させ、ステップS120で決定された新たな読み出し条件をデフォルトの読み出し条件に設定する。
一方、NAND制御部110は、ステップS128で、エラー訂正ができなかったと判定した場合(Fail)、処理をステップS129に移行させ、リトライフラグの値をチェックする。NAND制御部110は、リトライフラグが値「0」であると判定した場合、処理をステップS105に戻す。
NAND制御部110は、ステップS129でリトライフラグが値「1」であると判定した場合、処理をステップS130に移行させる。ステップS130で、NAND制御部110は、データを読み出したブロックが不良(Bad)ブロックであると判定し、当該ブロックがBadブロックである旨をメモリ112に記憶し、図17のフローチャートの一連の処理を終了する。
以上説明したように、実施形態では、メモリセルからのデータの読み出しを、リトライリードと多数決処理とを組み合わせて実行している。そのため、リトライリードのみを行う場合に比べ、リトライリード回数を削減することが可能である。また、多数決処理を用いることで、シフトリードによるリトライリードでは救済が困難だった偶然エラーにも対応することができ、素子寿命を延ばすことが可能である。さらに、環境影響などによりエラーの救済ができなくなった場合に、最初からリトライリードを行うことも可能である。
なお、本実施形態は、上述したそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1 半導体装置
2 メモリ部
3 制御部
6 入出力部
50,501,502,503,50N 多数決回路
100 メモリ素子部
103 NANDシーケンサ
110 NAND制御部
112 メモリ
120 FBC管理部
130,133 データバッファ
131 ECC符号化部
132 ECC復号部
140 多数決処理部
141 セグメント
1421,1422,1423 バッファ
144 出力バッファ
150 データ記憶領域

Claims (5)

  1. 記憶部から読み出されたデータに対してエラー訂正を行い、該エラー訂正によりエラーが訂正できなかった場合に、該データに含まれるエラー数を出力するエラー訂正部と、
    前記記憶部の第1のアドレスから複数の読み出し条件それぞれに従いデータを読み出し、読み出した該複数の読み出し条件それぞれに対応する各データに対して前記エラー訂正を行った結果の各エラー数のうち最も少ないエラー数に対応する読み出し条件を該複数の読み出し条件から選択し、選択した該読み出し条件により前記第1のアドレスからの複数回の読み出しを行う読み出し制御部と、
    前記複数回の読み出しにより得られた複数のデータ間で多数決処理を行う多数決処理部と
    を備える半導体装置。
  2. 前記読み出し制御部は、
    前記複数の読み出し条件のうち第1の読み出し条件で前記第1のアドレスから読み出したデータのエラーが前記エラー訂正により訂正できず、前記複数の読み出し条件のうち第2の読み出し条件で前記第1のアドレスから読み出した該データのエラーが前記エラー訂正により訂正できた場合に、該第1の読み出し条件を該第2の読み出し条件で更新し、更新された該第1の読み出し条件により前記複数回の読み出しを行う
    請求項1に記載の半導体装置。
  3. 前記読み出し制御部は、
    前記複数の読み出し条件それぞれにより前記第1のアドレスから読み出された全てのデータのエラーが前記エラー訂正により訂正できなかった場合に、該エラー訂正を行った結果の各エラー数のうち最も少ないエラー数に対応する読み出し条件で第1の読み出し条件を更新し、更新された該第1の読み出し条件により前記複数回の読み出しを行う
    請求項1または請求項2に記載の半導体装置。
  4. 前記多数決処理部は、
    前記複数のデータそれぞれのビット列においてビット位置が互いに対応するビット間で前記多数決処理を行い、
    前記エラー訂正部は、
    前記多数決処理の結果得られたデータに対してさらにエラー訂正を行う
    請求項1乃至請求項3の何れか1項に記載の半導体装置。
  5. 記憶部から読み出されたデータに対してエラー訂正を行い、該エラー訂正によりエラーが訂正できなかった場合に、該データに含まれるエラー数を出力するエラー訂正ステップと、
    前記記憶部の第1のアドレスから複数の読み出し条件それぞれに従いデータを読み出し、読み出した該複数の読み出し条件それぞれに対応する各データに対して前記エラー訂正を行った結果の各エラー数のうち最も少ないエラー数に対応する読み出し条件を該複数の読み出し条件から選択し、選択した該読み出し条件により前記第1のアドレスからの複数回の読み出しを行う読み出し制御ステップと、
    前記複数回の読み出しにより得られた複数のデータ間で多数決処理を行う多数決処理ステップと
    を備える読み出し方法。
JP2015014740A 2015-01-28 2015-01-28 半導体装置および読み出し方法 Expired - Fee Related JP6378102B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015014740A JP6378102B2 (ja) 2015-01-28 2015-01-28 半導体装置および読み出し方法
US14/945,932 US9665426B2 (en) 2015-01-28 2015-11-19 Semiconductor device and reading method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015014740A JP6378102B2 (ja) 2015-01-28 2015-01-28 半導体装置および読み出し方法

Publications (2)

Publication Number Publication Date
JP2016139446A JP2016139446A (ja) 2016-08-04
JP6378102B2 true JP6378102B2 (ja) 2018-08-22

Family

ID=56434084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015014740A Expired - Fee Related JP6378102B2 (ja) 2015-01-28 2015-01-28 半導体装置および読み出し方法

Country Status (2)

Country Link
US (1) US9665426B2 (ja)
JP (1) JP6378102B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016115272A1 (de) * 2016-08-17 2018-02-22 Infineon Technologies Ag Speicher mit unterschiedlichen zuverlässigkeiten
KR20190018323A (ko) * 2017-08-14 2019-02-22 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10395738B2 (en) * 2017-11-30 2019-08-27 Micron Technology, Inc. Operations on memory cells
US10366747B2 (en) 2017-11-30 2019-07-30 Micron Technology, Inc. Comparing input data to stored data
JP2019145191A (ja) 2018-02-23 2019-08-29 東芝メモリ株式会社 半導体記憶装置及び半導体記憶装置の制御方法
JP2019149219A (ja) 2018-02-28 2019-09-05 東芝メモリ株式会社 メモリシステム
CN111625200B (zh) * 2020-05-29 2024-02-27 合肥中科智存科技有限公司 一种非易失性存储器的读取方法、装置及系统
US11372700B1 (en) * 2020-12-08 2022-06-28 Xilinx, Inc. Fault-tolerant data transfer between integrated circuits
US11755208B2 (en) * 2021-10-12 2023-09-12 Western Digital Technologies, Inc. Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002093069A (ja) 2000-09-07 2002-03-29 Hitachi Ltd 光ディスク装置
US7900125B1 (en) * 2004-05-24 2011-03-01 Seagate Technology Llc Majority detection in error recovery
JP2007200552A (ja) 2007-05-10 2007-08-09 Fujitsu Ltd データリード方法及び記憶装置
KR101466698B1 (ko) * 2008-02-19 2014-11-28 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
JP4397426B2 (ja) 2008-11-25 2010-01-13 富士通株式会社 データリード方法及び記憶装置
JP2010165400A (ja) 2009-01-14 2010-07-29 Toshiba Corp 不揮発性半導体記憶装置及びそのシステム
US8130544B2 (en) * 2009-08-17 2012-03-06 Skymedi Corporation Method of reducing bit error rate for a flash memory
US8072805B2 (en) * 2009-08-18 2011-12-06 Skymedi Corporation Method and system of finding a read voltage for a flash memory
JP5349256B2 (ja) * 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8406053B1 (en) 2011-09-21 2013-03-26 Sandisk Technologies Inc. On chip dynamic read for non-volatile storage
JP5740296B2 (ja) * 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
KR101892038B1 (ko) 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
JP5586666B2 (ja) * 2012-08-01 2014-09-10 力晶科技股▲ふん▼有限公司 不揮発性半導体記憶装置とその読み出し方法
KR102219293B1 (ko) * 2014-07-28 2021-02-23 삼성전자 주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US20160217035A1 (en) 2016-07-28
US9665426B2 (en) 2017-05-30
JP2016139446A (ja) 2016-08-04

Similar Documents

Publication Publication Date Title
JP6378102B2 (ja) 半導体装置および読み出し方法
US10908986B2 (en) Multi-level recovery reads for memory
JP5413697B2 (ja) メモリ装置におけるしきい値電圧の変化に対応するための方法、装置、およびシステム
TWI391940B (zh) 具有錯誤修正控制之軟位元資料傳輸之非揮發性記憶體系統及其讀取方法
US8332726B2 (en) Non-volatile semiconductor memory device
US7542350B2 (en) Methods of restoring data in flash memory devices and related flash memory device memory systems
US9177664B2 (en) Method, memory controller and system for reading data stored in flash memory
TWI625727B (zh) 半導體儲存裝置、其抹除方法及編程方法
JP2008047273A (ja) 半導体記憶装置およびその制御方法
US10395753B2 (en) Semiconductor memory device and programming method thereof
JP2008027511A (ja) 半導体記憶装置およびその制御方法
KR20190009630A (ko) 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템
JP2010218637A (ja) 半導体記憶装置およびその制御方法
US11735253B2 (en) Apparatus and methods for programming memory cells responsive to an indication of age of the memory cells
TWI602055B (zh) 半導體儲存裝置及其編程方法
KR101831266B1 (ko) 비휘발성 반도체 메모리 장치
CN111951873B (zh) 用于校准存储器单元数据状态的感测的设备及方法
JP2013069367A (ja) 不揮発性半導体記憶装置
CN107305786B (zh) 非易失性半导体存储装置
KR101651573B1 (ko) 반도체 기억장치 및 그 프로그래밍 방법
JP6293846B2 (ja) 半導体記憶装置
JP5710815B1 (ja) 半導体記憶装置
US20100329003A1 (en) Memory employing independent dynamic reference areas

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180614

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180726

R150 Certificate of patent or registration of utility model

Ref document number: 6378102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees