JP2023023483A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2023023483A JP2023023483A JP2021129061A JP2021129061A JP2023023483A JP 2023023483 A JP2023023483 A JP 2023023483A JP 2021129061 A JP2021129061 A JP 2021129061A JP 2021129061 A JP2021129061 A JP 2021129061A JP 2023023483 A JP2023023483 A JP 2023023483A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory cell
- memory
- read
- soft bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B69/00—Erasable-and-programmable ROM [EPROM] devices not provided for in groups H10B41/00 - H10B63/00, e.g. ultraviolet erasable-and-programmable ROM [UVEPROM] devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
- Soundproofing, Sound Blocking, And Sound Damping (AREA)
- Vehicle Body Suspensions (AREA)
- Memory System (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Abstract
【課題】誤り訂正処理の信頼性を高めることができるメモリシステムを提供する。
【解決手段】実施形態の半導体記憶装置10は、第1領域及び第2領域にそれぞれ配置された第1メモリセル及び第2メモリセルを含む。コントローラ20は、第1メモリセルからの第1読み出し動作に基づく第1データと、第2メモリセルからの第1読み出し動作に基づく第2データと受け取り、第1メモリセルからの第2読み出し動作に基づく第3データと、第2メモリセルからの第2読み出し動作に基づく第4データと受け取り、第1メモリセルが第1領域に配置された第1情報に基づいて、第1及び第3データに対応する第1値を設定し、第2メモリセルが第2領域に配置された第2情報に基づいて、第2及び第4データに対応する第2値を設定し、第1及び第3データに対して第1値を用いて復号を行い、第2及び第4データに対して第2値を用いて復号を行うように構成される。
【選択図】図10
【解決手段】実施形態の半導体記憶装置10は、第1領域及び第2領域にそれぞれ配置された第1メモリセル及び第2メモリセルを含む。コントローラ20は、第1メモリセルからの第1読み出し動作に基づく第1データと、第2メモリセルからの第1読み出し動作に基づく第2データと受け取り、第1メモリセルからの第2読み出し動作に基づく第3データと、第2メモリセルからの第2読み出し動作に基づく第4データと受け取り、第1メモリセルが第1領域に配置された第1情報に基づいて、第1及び第3データに対応する第1値を設定し、第2メモリセルが第2領域に配置された第2情報に基づいて、第2及び第4データに対応する第2値を設定し、第1及び第3データに対して第1値を用いて復号を行い、第2及び第4データに対して第2値を用いて復号を行うように構成される。
【選択図】図10
Description
本発明の実施形態は、メモリシステムに関する。
不揮発性の半導体記憶装置として、例えば、メモリセルが二次元あるいは三次元に配列されたNAND型フラッシュメモリが知られている。NAND型フラッシュメモリと、NAND型フラッシュメモリを制御するコントローラとにより、メモリシステムが構成されている。半導体記憶装置からデータを読み出す際の誤り訂正方法として、ソフトビット復号(または、軟判定復号)が知られている。
誤り訂正処理の信頼性を高めることができるメモリシステムを提供する。
実施形態のメモリシステムは、半導体記憶装置及びコントローラを備える。半導体記憶装置は、第1領域に配置された第1メモリセルと、第2領域に配置された第2メモリセルを含む。コントローラは、前記第1メモリセルからの第1読み出し動作に基づく第1データと、前記第2メモリセルからの前記第1読み出し動作に基づく第2データと受け取り、前記第1メモリセルからの前記第1読み出し動作と異なる第2読み出し動作に基づく第3データと、前記第2メモリセルからの前記第2読み出し動作に基づく第4データと受け取り、前記第1メモリセルが前記第1領域に配置されていることを示す第1情報に基づいて、前記第1データ及び前記第3データに対応する第1値を設定し、前記第2メモリセルが前記第2領域に配置されていることを示す第2情報に基づいて、前記第2データ及び前記第4データに対応する第2値を設定し、前記第1データ及び前記第3データに対して前記第1値を用いて復号を行い、前記第2データ及び前記第4データに対して前記第2値を用いて復号を行うように構成される。
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、以下に示す実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。
機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が、例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックが、さらに細かい機能サブブロックに分割されていてもよい。
1.第1実施形態
以下に、第1実施形態のメモリシステムについて説明する。
以下に、第1実施形態のメモリシステムについて説明する。
1.1 第1実施形態の構成
1.1.1 メモリシステムの構成
まず、第1実施形態のメモリシステムの構成について説明する。
1.1.1 メモリシステムの構成
まず、第1実施形態のメモリシステムの構成について説明する。
図1は、第1実施形態のメモリシステムの構成を示すブロック図である。メモリシステム1は、半導体記憶装置10及びメモリコントローラ20を備える。メモリシステム1は、外部のホスト装置2に接続され、ホスト装置2からの命令に応じて各種動作を実行し得る。
半導体記憶装置10は、NAND型フラッシュメモリを含み、データを不揮発に記憶する。半導体記憶装置10の詳細については後述する。
メモリコントローラ20は、NANDバスを介して半導体記憶装置10に接続される。メモリコントローラ20は、半導体記憶装置10を制御する。NANDバスは、NANDインターフェースに従った信号の送受信を行う。メモリコントローラ20は、また、ホストバスを介してホスト装置2に接続される。メモリコントローラ20は、ホスト装置2から受信した命令に応答して、半導体記憶装置10にアクセスする。
半導体記憶装置10とメモリコントローラ20は、例えば、それらの組み合わせにより一つの半導体装置を構成してもよく、その例としてはSDTMカードを含むメモリカードや、SSD(solid state drive)等が挙げられる。また、メモリコントローラ20は、例えば、SoC(system-on-a-chip)等であってもよい。
ホスト装置2は、例えば、デジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。
1.1.2 メモリコントローラ20の構成
引き続き図1を用いて、メモリコントローラ20の構成について説明する。メモリコントローラ20は、CPU(central processing unit)(または、プロセッサ)21、RAM(random access memory)22、ROM(read only memory)23、ECC(error checking and correcting)回路24、及びNANDインターフェース回路(NAND I/F)25、及びホストインターフェース回路(ホストI/F)26を備える。
引き続き図1を用いて、メモリコントローラ20の構成について説明する。メモリコントローラ20は、CPU(central processing unit)(または、プロセッサ)21、RAM(random access memory)22、ROM(read only memory)23、ECC(error checking and correcting)回路24、及びNANDインターフェース回路(NAND I/F)25、及びホストインターフェース回路(ホストI/F)26を備える。
CPU21は、メモリコントローラ20全体の動作を制御する。例えば、CPU21は、ホスト装置2から書き込み命令を受信した際には、それに応答して、NANDインターフェース回路25に対して書き込み命令を発行する。読み出し命令及び消去命令を受信した際も、同様に、それらに応答して、NANDインターフェース回路25に対して読み出し命令及び消去命令をそれぞれ発行する。
また、CPU21は、ウェアレベリング等、半導体記憶装置10を管理するための様々な処理を実行する。なお、以下で説明するメモリコントローラ20の動作は、CPU21がソフトウェア(または、ファームウェア)を実行することによって実現されてもよいし、またはハードウェアで実現されてもよい。
RAM22は、例えば、ダイナミックランダムアクセスメモリ(DRAM)やスタティックランダムアクセスメモリ(SRAM)等の半導体メモリであり、CPU21の作業領域として使用される。RAM22は、また半導体記憶装置10を管理するためのファームウェア、各種の管理テーブル、及びデータ等を一時的に記憶する。本実施形態では、例えば、RAM22は、誤り訂正処理を行う際に用いる対数尤度比(Log Likelihood Ratio:LLR)テーブル及びアウタービット判別データを記憶する。LLRテーブルは、メモリセルが持つ閾値電圧を複数の範囲に分割した時の、閾値電圧の各範囲とLLR値との関係を示すテーブルである。LLRテーブル及びアウタービット判別データについては後述する。
ROM23は、例えば、CPU21によって実行されるファームウェアを記憶する。
ECC回路24は、半導体記憶装置10に書き込まれる書き込みデータ及び半導体記憶装置10から読み出された読み出しデータに対して、誤りの検出および訂正に関する処理を行う。具体的には、ECC回路24は、半導体記憶装置10に書き込まれる書き込みデータの誤り訂正のための冗長データ(パリティ)を生成する。生成された冗長データと書き込みデータが半導体記憶装置10に書き込まれる。このため、半導体記憶装置10から読み出されたデータは、書き込みデータと、これに対応するパリティを含む。
また、ECC回路24は、半導体記憶装置10から読み出されたデータの中の誤りを検出し、誤りがある場合に誤りの訂正を行う。ECC回路24は、例えば、BCH符号およびリードソロモン符号等の硬判定に基づく誤り訂正、およびLDPC(low-density parity check)等の軟判定に基づく誤り訂正を行うことができる。ECC回路24については、後に詳述する。
NANDインターフェース回路25は、NANDバスを介して半導体記憶装置10と接続され、半導体記憶装置10との通信を司る。NANDインターフェース回路25は、CPU21から受信した命令に基づき、種々の信号、コマンド及びデータを半導体記憶装置10へ送信する。NANDインターフェース回路25は、また種々の信号及びデータを半導体記憶装置10から受信する。
ホストインターフェース回路26は、ホストバスを介してホスト装置2と接続され、ホスト装置2との通信を司る。ホストインターフェース回路26は、ホスト装置2から受信した命令及びデータを、それぞれCPU21及びRAM22に転送する。また、ホストインターフェース回路26は、CPU21からの命令に応答して、RAM22内のデータをホスト装置2へ転送する。
1.1.3 半導体記憶装置10の構成
次に、半導体記憶装置10の構成について説明する。半導体記憶装置10は、例えば、データを不揮発に記憶可能なNAND型フラッシュメモリを含む。
次に、半導体記憶装置10の構成について説明する。半導体記憶装置10は、例えば、データを不揮発に記憶可能なNAND型フラッシュメモリを含む。
図2は、半導体記憶装置10の構成を示すブロック図である。
半導体記憶装置10は、メモリセルアレイ11、入出力回路12、ロジック制御回路13、レディ/ビジー回路14、レジスタ群15、シーケンサ(または、制御回路)16、電圧生成回路17、ドライバ18、ロウデコーダ19、カラムデコーダ28、及びセンスアンプ29を備える。レジスタ群15は、ステータスレジスタ15A、アドレスレジスタ15B、及びコマンドレジスタ15Cを備える。
メモリセルアレイ11は、1つまたは複数のブロックBLK0,BLK1,BLK2,…,BLKm(mは0以上の自然数)を備える。複数のブロックBLK0~BLKmの各々は、ロウ及びカラムに対応付けられた複数のメモリセルトランジスタ(以下、メモリセルとも記す)を含む。メモリセルトランジスタは、電気的に消去およびプログラム可能な不揮発性メモリセルである。メモリセルアレイ11は、メモリセルトランジスタに電圧を印加するための、複数のワード線、複数のビット線、及びソース線を含む。ブロックBLKmの具体的な構成については後述する。
入出力回路12及びロジック制御回路13は、入出力端子(または、NANDバス)を介してメモリコントローラ20に接続される。入出力回路12は、メモリコントローラ20との間で入出力端子を介して、I/O信号DQ(例えば、DQ0、DQ1、DQ2、…、DQ7)を送受信する。I/O信号DQは、コマンド、アドレス、及びデータ等を通信する。
ロジック制御回路13は、メモリコントローラ20から入出力端子(または、NANDバス)を介して、外部制御信号を受信する。外部制御信号は、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、及びライトプロテクト信号WPnを含む。信号名に付記された“n”は、その信号がアクティブ・ローであることを示す。
チップイネーブル信号CEnは、半導体記憶装置10の選択を可能にし、当該半導体記憶装置10を選択する際にアサートされる。コマンドラッチイネーブル信号CLEは、信号DQとして送信されるコマンドをコマンドレジスタ15Cにラッチすることを可能にする。アドレスラッチイネーブル信号ALEは、信号DQとして送信されるアドレスをアドレスレジスタ15Bにラッチすることを可能にする。書き込みイネーブル信号WEnは、信号DQとして送信されるデータを入出力回路12に保持することを可能にする。読み出しイネーブル信号REnは、メモリセルアレイ11から読み出したデータを、信号DQとして出力することを可能にする。ライトプロテクト信号WPnは、半導体記憶装置10に対する書き込み及び消去を禁止する際にアサートされる。
レディ/ビジー回路14は、シーケンサ16からの制御に応じて、レディ/ビジー信号R/Bnを生成する。レディ/ビジー信号R/Bnは、半導体記憶装置10がレディ状態であるか、あるいはビジー状態であるかを示す。レディ状態は、半導体記憶装置10がメモリコントローラ20からの命令を受け付け可能な状態であることを示す。ビジー状態は、半導体記憶装置10がメモリコントローラ20からの命令を受け付けできない状態であることを示す。メモリコントローラ20は、半導体記憶装置10からレディ/ビジー信号R/Bnを受けることで、半導体記憶装置10がレディ状態であるか、あるいはビジー状態であるかを知ることができる。
ステータスレジスタ15Aは、半導体記憶装置10の動作に必要なステータス情報STSを記憶する。ステータスレジスタ15Aは、シーケンサ16の指示に従って、ステータス情報STSを入出力回路12に転送する。
アドレスレジスタ15Bは、入出力回路12から転送されたアドレスADDを記憶する。アドレスADDは、ロウアドレス及びカラムアドレスを含む。ロウアドレスは、例えば、動作対象のブロックBLKmを指定するブロックアドレス、及び指定されたブロック内の動作対象のワード線WLを指定するページアドレスを含む。
コマンドレジスタ15Cは、入出力回路12から転送されたコマンドCMDを記憶する。コマンドCMDは、例えば、シーケンサ16に書き込み動作を命ずる書き込みコマンド、及び読み出し動作を命ずる読み出しコマンドなどを含む。
ステータスレジスタ15A、アドレスレジスタ15B、及びコマンドレジスタ15Cには、例えばSRAMを用いる。
シーケンサ16は、コマンドレジスタ15Cからコマンドを受け、このコマンドに基づくシーケンスに従って半導体記憶装置10を統括的に制御する。
シーケンサ16は、ロウデコーダ19、カラムデコーダ28、センスアンプ29、及び電圧生成回路17などを制御して、書き込み動作、読み出し動作、及び消去動作を実行する。具体的には、シーケンサ16は、コマンドレジスタ15Cから受信した書き込みコマンドに基づいて、ロウデコーダ19、ドライバ18、及びセンスアンプ29を制御して、アドレスADDにて指定された複数のメモリセルトランジスタにデータを書き込む。シーケンサ16は、またコマンドレジスタ15Cから受信した読み出しコマンドに基づいて、ロウデコーダ19、ドライバ18、カラムデコーダ28、及びセンスアンプ29を制御して、アドレスADDにて指定された複数のメモリセルトランジスタからデータを読み出す。シーケンサ16は、またコマンドレジスタ15Cから受信した消去コマンドに基づいて、ロウデコーダ19、ドライバ18、カラムデコーダ28、及びセンスアンプ29を制御して、アドレスADDにて指定されたブロックに記憶されたデータを消去する。
電圧生成回路17は、半導体記憶装置10の外部から電源端子を介して電源電圧VDD(または、VCC、VPP)及び接地電圧VSSを受け取る。電源電圧VDDは、半導体記憶装置10の外部から供給される外部電圧であり、例えば3.3Vである。接地電圧VSSは、半導体記憶装置10の外部から供給される外部電圧であり、例えば0Vである。
電圧生成回路17は、電源電圧VDDを用いて、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を生成する。電圧生成回路17は、生成した電圧を、メモリセルアレイ11、ドライバ18、及びセンスアンプ29などに供給する。
ドライバ18は、電圧生成回路17から複数の電圧を受け取る。ドライバ18は、電圧生成回路17から供給された複数の電圧のうち、読み出し動作、書き込み動作、及び消去動作に応じて選択した複数の電圧を、複数の信号線を介してロウデコーダ19に供給する。ドライバ18は、例えば、読み出し動作時に、電圧生成回路17から供給された読み出し電圧VCGRV及び電圧VREADをワード線に供給する。
ロウデコーダ19は、アドレスレジスタ15Bからロウアドレスを受け、このロウアドレスをデコードする。ロウデコーダ19は、ロウアドレスのデコード結果に基づいて、複数ブロックのうちのいずれかを選択し、さらに選択したブロックBLKm内のワード線WLを選択する。さらに、ロウデコーダ19は、選択されたブロックBLKmに、ドライバ18から供給された複数の電圧を転送する。
カラムデコーダ28は、アドレスレジスタ15Bからカラムアドレスを受け、このカラムアドレスをデコードする。カラムデコーダ28は、カラムアドレスのデコード結果に基づいて、ビット線を選択する。
センスアンプ29は、データの読み出し動作時には、メモリセルトランジスタからビット線に読み出されたデータを検知及び増幅する。さらに、センスアンプ29は、メモリセルトランジスタから読み出された読み出しデータDATを一時的に記憶し、記憶した読み出しデータDATを入出力回路12へ転送する。また、センスアンプ29は、データの書き込み動作時には、入出力回路12から転送された書き込みデータDATを一時的に記憶する。さらに、センスアンプ29は、書き込みデータDATをビット線に転送する。
1.1.3.1 ブロックの構成
次に、半導体記憶装置10内のメモリセルアレイ11の回路構成について説明する。メモリセルアレイ11は、前述したように、複数のブロックBLK0~BLKmを有する。以下に、ブロックBLKmの回路構成について説明する。
次に、半導体記憶装置10内のメモリセルアレイ11の回路構成について説明する。メモリセルアレイ11は、前述したように、複数のブロックBLK0~BLKmを有する。以下に、ブロックBLKmの回路構成について説明する。
図3は、メモリセルアレイ11内のブロックBLKmの回路図である。ブロックBLKmは、例えば、複数のストリングユニットSU0、SU1、SU2、SU3を備える。以降、ストリングユニットSUと記した場合、ストリングユニットSU0~SU3の各々を示すものとする。ストリングユニットSUは、複数のNANDストリング(または、メモリストリング)NSを備える。
ここでは、説明を平易にするために、NANDストリングNSが、例えば、8個のメモリセルトランジスタMT0、MT1、MT2、…、MT7、及び2個のセレクトトランジスタST1、ST2を備える例を示す。以降、メモリセルトランジスタMTと記した場合、メモリセルトランジスタMT0~MT7の各々を示すものとする。
メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に記憶する。メモリセルトランジスタMT0~MT7は、セレクトトランジスタST1のソースとセレクトトランジスタST2のドレインとの間に直列に接続される。メモリセルトランジスタMTは、1ビットのデータ、または2ビット以上のデータを記憶することが可能である。
ストリングユニットSU0に含まれる複数のセレクトトランジスタST1のゲートは、セレクトゲート線SGD0に接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST1のゲートは、セレクトゲート線SGD1~SGD3にそれぞれ接続される。セレクトゲート線SGD0~SGD3の各々は、ロウデコーダ19によって独立に制御される。
ストリングユニットSU0に含まれる複数のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。なお、ストリングユニットSU0~SU3のセレクトトランジスタST2のゲートには、個別のセレクトゲート線SGSがそれぞれ接続される場合もある。セレクトトランジスタST1及びST2は、各種動作におけるストリングユニットSUの選択に使用される。
ブロックBLKmに含まれるメモリセルトランジスタMT0~MT7の制御ゲートは、ワード線WL0~WL7にそれぞれ接続される。ワード線WL0~WL7の各々は、ロウデコーダ19によって独立に制御される。
ビット線BL0~BL(p-1)(pは1以上の自然数)の各々は、複数のブロックBLK0~BLKmに接続され、ブロックBLKmに含まれるストリングユニットSU内にある1つのNANDストリングNSに接続される。すなわち、ビット線BL0~BL(p-1)の各々は、ブロックBLKm内でマトリクス状に配置されたNANDストリングNSのうち、同一列にある複数のNANDストリングNSのセレクトトランジスタST1のドレインに接続される。また、ソース線SLは、複数のブロックBLK0~BLKmに接続される。すなわち、ソース線SLは、ブロックBLKmに含まれる複数のセレクトトランジスタST2のソースに接続される。
要するに、ストリングユニットSUは、異なるビット線BLに接続され、かつ同一のセレクトゲート線SGDに接続されたNANDストリングNSを複数含む。また、ブロックBLKmは、ワード線WLを共通にする複数のストリングユニットSUを含む。さらに、メモリセルアレイ11は、ビット線BLを共通にする複数のブロックBLK0~BLKmを含む。
ブロックBLKmは、例えば、データの消去単位である。すなわち、ブロックBLKm内に含まれるメモリセルトランジスタMTの保持するデータは、一括して消去される。なお、データは、ストリングユニットSU単位で消去されてもよいし、また、ストリングユニットSU未満の単位で消去されてもよい。
1つのストリングユニットSU内でワード線WLを共有する複数のメモリセルトランジスタMTを、セルユニットCUと呼ぶ。セルユニットCUに含まれる複数のメモリセルトランジスタMTがそれぞれ記憶する1ビットのデータの集まりをページと呼ぶ。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて記憶容量が変化する。例えば、セルユニットCUは、各メモリセルトランジスタMTが1ビットデータを記憶する場合に1ページデータを記憶し、2ビットデータを記憶する場合に2ページデータを、3ビットデータを記憶する場合に3ページデータをそれぞれ記憶する。
セルユニットCUに対する書き込み動作及び読み出し動作は、ページを単位として行われる。言い換えると、読み出し及び書き込み動作は、1つのストリングユニットSUに配設された1本のワード線WLに接続された複数のメモリセルトランジスタMTに対して、一括して行われる。
なお、ブロックBLKmが備えるストリングユニットの数は、SU0~SU3に限るわけではなく、任意に設定可能である。また、ストリングユニットSUに含まれるNANDストリングNSの数、及びNANDストリングNSが備えるメモリセルトランジスタ、及びセレクトトランジスタの数も、任意に設定可能である。さらに、メモリセルトランジスタMTは、電荷蓄積層として絶縁膜を用いたMONOS(metal-oxide-nitride-oxide-silicon)型であってもよいし、電荷蓄積層として導電層を用いたFG(floating gate)型であってもよい。
1.1.3.2 メモリセルトランジスタの閾値電圧分布
次に、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係について説明する。
次に、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係について説明する。
図4は、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係を示す図である。ここでは、メモリセルトランジスタMTの記憶方式として、1つのメモリセルトランジスタMTに3ビットのデータを記憶可能なTLC(Triple-Level Cell)方式を適用した例を示す。なお、本実施形態は、1つのメモリセルトランジスタMTに1ビットのデータを記憶可能なSLC(Single-Level Cell)方式、1つのメモリセルトランジスタMTに2ビットのデータを記憶可能なMLC(Multi-Level Cell)方式、1つのメモリセルトランジスタMTに4ビットのデータを記憶可能なQLC(Quad-Level Cell)方式等、その他の記憶方式を用いた場合にも適用できる。
メモリセルトランジスタMTが記憶可能な3ビットのデータは、下位(lower)ビット、中位(middle)ビット、及び上位(upper)ビットにより規定される。メモリセルトランジスタMTが3ビットを記憶する場合、メモリセルトランジスタMTは、複数の閾値電圧に応じた8つの状態(ステート)のうちのいずれかのステートを取り得る。8つのステートを、低い方から順に、ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”と呼ぶ。ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”の各々に属する複数のメモリセルトランジスタMTは、図4に示すような閾値電圧の分布を形成する。
ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”には、例えば、それぞれデータ“111”、“110”、“100”、“000”、“010”、“011”、“001”、“101”が割り当てられる。ビットの並びは、下位ビット“X”、中位ビット“Y”、上位ビット“Z”とすると、“Z、Y、X”である。なお、閾値電圧分布とデータとの割り当ては、任意に設定可能である。
読み出し対象のメモリセルトランジスタMTに記憶されたデータを読み出すために、メモリセルトランジスタMTの閾値電圧が属するステートが判定される。ステートの判定のために、読み出し電圧AR、BR、CR、DR、ER、FR、GRが用いられる。以下、読み出し電圧AR、BR、CR、DR、ER、FR、およびGRを含め、レベルの判断ために読み出し対象のメモリセルトランジスタMTに印加される電圧は、読み出し電圧VCGRVと称される場合がある。
ステート“Er”は、例えば、データが消去された状態(消去状態)に相当する。ステート“Er”に属するメモリセルトランジスタMTの閾値電圧は、電圧ARより低く、例えば負の値を有する。
ステート“A”~“G”は、電荷蓄積層に電荷が注入されてメモリセルトランジスタMTにデータが書き込まれた状態に相当し、ステート“A”~“G”に属するメモリセルトランジスタMTの閾値電圧は、例えば正の値を有する。ステート“A”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧ARより高く、かつ読み出し電圧BR以下である。ステート“B”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧BRより高く、かつ読み出し電圧CR以下である。ステート“C”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧CRより高く、かつ読み出し電圧DR以下である。ステート“D”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧DRより高く、かつ読み出し電圧ER以下である。ステート“E”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧ERより高く、かつ読み出し電圧FR以下である。ステート“F”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧FRより高く、かつ読み出し電圧GR以下である。ステート“G”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧GRより高く、電圧VREADより低い。
電圧VREADは、読み出し非対象のセルユニットCUのメモリセルトランジスタMTに接続されたワード線WLに印加される電圧であり、いずれのステートにあるメモリセルトランジスタMTの閾値電圧よりも高い。このため、制御ゲートに電圧VREADが印加されたメモリセルトランジスタMTは、保持するデータに関わらずオン状態になる。
また、隣り合う閾値分布の間には、それぞれ書き込み動作で使用されるベリファイ電圧が設定される。具体的には、ステート“A”、“B”、“C”、“D”、“E”、“F”、“G”に対応して、それぞれベリファイ電圧AV、BV、CV、DV、EV、FV、GVが設定される。例えば、ベリファイ電圧AV、BV、CV、DV、EV、FV、GVはそれぞれ、読み出し電圧AR、BR、CR、DR、ER、FR、GRより若干高く設定される。
以上のように、各メモリセルトランジスタMTは、8個のステートのいずれかに設定され、3ビットデータを記憶することが可能である。また、書き込み及び読み出しは、1つのセルユニットCU内のページ単位で行われる。メモリセルトランジスタMTが3ビットデータを記憶している場合、1つのセルユニットCU内の3個のページにそれぞれ、下位ビット、中位ビット、及び上位ビットが割当てられる。下位ビット、中位ビット、及び上位ビットについて一回の書き込み動作にて書き込まれるページ、又は一回の読み出し動作にて読み出されるページ、すなわちセルユニットCUの保持する下位ビットの集合、中位ビットの集合、及び上位ビットの集合は、それぞれ下位(lower)ページ、中位(middle)ページ、及び上位(upper)ページと呼ばれる。
上記データの割り付けが適用された場合、下位ページは、読み出し電圧AR、ERを用いた読み出し動作によって確定する。中位ページは、読み出し電圧BR、DR、FRを用いた読み出し動作によって確定する。上位ページは、読み出し電圧CR、GRを用いた読み出し動作によって確定する。
1.1.4 センスアンプ29の構成
次に、半導体記憶装置10内のセンスアンプ29の構成について説明する。
次に、半導体記憶装置10内のセンスアンプ29の構成について説明する。
図5は、半導体記憶装置10内のセンスアンプ29の構成を示す図である。センスアンプ29は、p個のセンスアンプ回路SAC、複数のデータラッチDL(DL0、DL1、DL2、…、DLq(qは0以上の自然数))、p個の演算回路LC、及びデータラッチXDLを含む。
データラッチDLqは、p個のデータラッチ回路DLCqを含む。データラッチXDLは、p個のデータラッチ回路XDLCを含む。データラッチ回路DLCqおよびXDLCは、データを一時的に記憶する。
各ビット線BLは、1つのセンスアンプ回路SAC、q+1個のデータラッチ回路DLC0、DLC1、DLC2、…、DLCq、1つの演算回路LC、1つのデータラッチ回路XDLCに接続されている。
各センスアンプ回路SACは、データの読み出しの間、当該センスアンプ回路SACと接続された1つのビット線BLを介して読み出し対象の1つのメモリセルトランジスタMTと電気的に接続される。そして、各センスアンプ回路SACは、読み出し対象のメモリセルトランジスタMTの閾値電圧に基づいて定まる大きさの電圧を、当該センスアンプ回路SAC中のノード上でセンスする。さらに、センスの結果に基づいて、当該センスアンプ回路SAと電気的に接続されたメモリセルトランジスタMTが2つの状態のいずれに属するかを判断する。メモリセルトランジスタMTの2つの状態は、“0”データまたは“1”データとして表現される。各センスアンプ回路SACは、読み出しデータが“0”データであるかまたは“1”データであるかを、当該センスアンプ回路SACと接続されたいずれかのデータラッチ回路DLCにおいて記憶する。
演算回路LCは、当該演算回路LCと接続されたデータラッチ回路DLCおよびXDLC中のデータに対して論理演算を行うことができる。論理演算は、否定(NOT)演算、論理和(OR)演算、論理積(AND)演算、排他的論理和(XOR)演算、否定排他的論理和(XNOR)演算を含む。
1.1.5 ECC回路24の構成
次に、第1実施形態におけるメモリコントローラ20内のECC回路24について説明する。
次に、第1実施形態におけるメモリコントローラ20内のECC回路24について説明する。
図6は、メモリコントローラ20内のECC回路24に関連する機能ブロックを示す図である。メモリコントローラ20は、制御部27を有する。制御部27は、CPU21、RAM22、及びROM23のそれぞれの機能の一部の組合せにより実現される。
制御部27は、メモリコントローラ20の全体の動作を制御する。制御部27が行う制御は、ECC回路24の動作に関する処理を含む。制御部27は、半導体記憶装置10からの読み出しデータの誤り訂正を試みる際、NANDインターフェース回路25を介して、誤り訂正に必要なデータを読み出すことを半導体記憶装置10に指示する。誤り訂正に必要なデータは、ハードビットデータHB及びソフトビットデータSBを含む。
制御部27は、データ記憶部271、データ生成部272、及びLLR設定部273を含む。
データ記憶部271は、例えばRAM22の機能により実現され、ハードビットデータHB及びソフトビットデータSB1~SB4、並びにアウタービット判別データSB5を記憶する。
ハードビットデータHBは、読み出し対象のセルユニット(選択セルユニット)CU中の読み出し対象のページ(選択ページ)から、下位ページ読み出し、中位ページ読み出し、または上位ページ読み出しによって読み出されたデータである。ハードビットデータは、例えば、1ページの大きさを有し、選択セルユニットCU中の各メモリセルトランジスタ(選択セルトランジスタ)MTからのデータ読み出し結果に基づくビット(ハードビット)の列を含む。
ソフトビットデータSB1~SB4の各々もソフトビットの列を含み、各ソフトビットは、1つの選択セルトランジスタMTに関する情報を示す。ソフトビットデータSB1~SB4の各々は、各ビットにおいて、当該ビットに対応する選択セルトランジスタMTから相違する条件で読み出された複数のビット列に対する論理演算の結果を示す。ソフトビットデータは、演算の詳細に基づいて、種々のタイプを含む。
ここでは、データ記憶部271は、ハードビットデータHBおよびソフトビットデータSB1~SB4を記憶する。ハードビットデータHBおよびソフトビットデータSB1~SB4については後に詳述する。以降、ハードビットデータHBとソフトビットデータSB1~SB4を一度に記載する場合、ソフトビットデータ{HB、SB1~SB4}と称する。
データ記憶部271は、またアウタービット判別データSB5を記憶する。アウタービット判別データSB5については後に詳述する。
データ生成部272は、ソフトビットデータ{HB、SB1~SB4}の最下位ビットにアウタービット判別データSB5を結合して、データ{HB、SB1~SB4、SB5}を生成する。以降、ソフトビットデータ{HB、SB1~SB4}と、アウタービット判別データSB5とが結合されたデータを、ソフトビットデータ{HB、SB1~SB5}と称する。
LLR設定部273は、ソフトビット復号に用いるLLRテーブル273Aを記憶することができる。LLRテーブル273Aには、ハードビットデータおよびソフトビットデータ中の互いに関連する複数ビットの組合せと、当該組合せに対応する1つのLLR値とが関連付けられている。複数ビットの組合せは、以下、インデックスと称される。そして、値の相違する複数のインデックスと、これらに対応する複数のLLR値とが関連付けられている。各LLR値は、ある読み出し電圧により読み出されたデータの信頼度(確からしさ)を示す情報である。
インデックスからLLR値への変換は、例えば、LLRテーブル273Aにより行われることができる。LLRテーブル273Aは、例えば、メモリシステム1に予め格納されていてもよい、例えば、メモリシステム1の出荷の時点で、格納されていてもよい。また、LLR値への変換を行う前に、制御部27によって生成されてもよい。
ECC回路24は、誤り訂正回路241を含む。誤り訂正回路241は、制御部27からソフトビットデータ{HB、SB1~SB5}とLLRテーブル273Aを受け取り、ソフトビット復号を行う。誤り訂正回路241は、例えばフレームと呼ばれる大きさのデータごとに復号を行うことができる。
図7は、ハードビットデータHB、4つのソフトビットデータSB1、SB2、SB3、SB4、インデックス、及びLLR値の例を示す。図7中の各桝は、ハードビットデータHB、ソフトビットデータSB1~SB4のうちの1つのビットを示す。図7の上下に並ぶ桝は、ある1つの選択セルトランジスタMTについてのビットである。1ページの大きさのハードビットデータHBは、1セルユニットCU中のメモリセルトランジスタMTの数pと等しいp個のビットを含む。同様に、ソフトビットデータSB1~SB4の各々は、p個のビットを含む。
ソフトビットデータは、選択ページの各メモリセルトランジスタMTから相違する条件で読み出されたデータに基づいたビット(ソフトビット)の列を含む。各ソフトビットは、1つの選択セルトランジスタMTについての情報を担う。
1つの選択セルトランジスタMTについての、ハードビットデータHB中のハードビットと、ソフトビットデータSB1~SB4の各々中のソフトビットは1つの組を構成する。1つの組は、5ビットのデータを含み、1つのインデックスの値に相当する。
上記のように、LLRテーブル273Aを用いて、各インデックスから対応する各LLR値を抽出することができる。各LLR値は、プラスまたはマイナスの値を有する。理解の促進のために、LLR値は、図および以下の記述では10進数により表される。
1.1.4 半導体記憶装置10の構造
次に、第1実施形態の半導体記憶装置10の構造の一例について説明する。
次に、第1実施形態の半導体記憶装置10の構造の一例について説明する。
図8は、半導体記憶装置10のメモリセルアレイ11内のメモリピラーMP(または、メモリセルトランジスタMT)のレイアウトを示す平面図である。図9は、図8におけるA-A線に沿った断面図である。図8及び図9において、半導体基板30面に平行で互いに直交する2方向をX方向及びY方向とし、これらX方向及びY方向を含む面(XY面)に直交する方向をZ方向とする。X方向はワード線WLの延伸方向に対応し、Y方向はビット線BLの延伸方向に対応し、Z方向はワード線WLが積層される方向に対応する。なお、図9では導電層間の層間絶縁層が省略されている。
図8及び図9に示すように、メモリセルアレイ11は、複数のメモリピラーMP、絶縁層ST、及び絶縁層SHEを有する。絶縁層STは、X方向及びZ方向に伸び、Y方向に配列される。絶縁層SHEは、X方向に伸び、Y方向に配列される。絶縁層STと絶縁層SHEは、交互にY方向に配列される。
複数のメモリピラーMPは、絶縁層STと絶縁層SHEとの間に配置される。複数のメモリピラーMPは、例えば、隣り合う絶縁層STと絶縁層SHE間の領域において、X方向及びY方向に千鳥状に配列される。これに限定されず、隣り合う絶縁層STと絶縁層SHE間におけるメモリピラーMPの個数及び配置は、適宜変更してもよい。
以下に、図9に示す断面図を参照して、メモリセルアレイ11の構造を詳述する。
図9に示すように、メモリセルアレイ11は、半導体基板30の上方に設けられた導電層31~34、メモリピラーMP、及びコンタクトプラグCV1を含む。詳しくは、半導体基板30の上方に導電層31が設けられる。導電層31は、半導体基板30の主面(または、XY面)に平行な平板状に形成される。この導電層31は、ソース線SLとして機能する。導電層31は、例えば、不純物がドープされたポリシリコン、あるいはタングステン(W)を含む。
導電層31上には、XZ面に沿った複数の絶縁層STと、X方向に伸びた絶縁層SHEとが、Y方向に交互に配列される。導電層31上かつ隣り合う絶縁層STと絶縁層SHE間の構造体(または、積層体)が、例えば1つのストリングユニットSUに対応する。
導電層31上かつ隣り合う絶縁層STと絶縁層SHE間には、下層から順に、導電層32、複数の導電層33、導電層34、及び導電層35が設けられる。これらの導電層のうちZ方向に隣り合う導電層は、層間絶縁膜を介して積層される。導電層32~34は、それぞれがXY面に平行な平板状に形成される。導電層32は、セレクトゲート線SGSとして機能する。複数の導電層33は、下層から順に、それぞれワード線WL0~WL7として機能する。導電層34は、セレクトゲート線SGD0として機能する。導電層32~34は、例えばタングステン(W)あるいはポリシリコンを含む。
複数のメモリピラーMPの各々は、絶縁層STと絶縁層SHE間の積層体内をZ方向に延伸(または、貫通)している。各メモリピラーMPは、導電層34の上方から導電層31の上面に達するように、導電層34,33,32を通過して設けられる。各メモリピラーMPは、1つのNANDストリングNSとして機能する。
メモリピラーMPは、例えば、ブロック絶縁層40、電荷蓄積層41、トンネル絶縁層(トンネル絶縁膜とも称する)42、及び半導体層43を有する。具体的には、メモリピラーMPを形成するためのメモリホールの内壁に、ブロック絶縁層40が設けられる。ブロック絶縁層40の内壁に、電荷蓄積層41が設けられる。電荷蓄積層41の内壁に、トンネル絶縁層42が設けられる。さらに、トンネル絶縁層42の内側に半導体層43が設けられる。なお、メモリピラーMPは、半導体層43の内部にコア絶縁層を設けた構造としてもよい。
このようなメモリピラーMPの構成において、メモリピラーMPと導電層32とが交差する部分が、セレクトトランジスタST2として機能する。メモリピラーMPと導電層33とが交差する部分が、それぞれメモリセルトランジスタMT0~MT7として機能する。さらに、メモリピラーMPと導電層34とが交差する部分が、セレクトトランジスタST1として機能する。
半導体層43は、メモリセルトランジスタMT、及びセレクトトランジスタST1,ST2のチャネル層として機能する。半導体層43の内部には、NANDストリングNSの電流経路が形成される。
電荷蓄積層41は、メモリセルトランジスタMTにおいて半導体層43から注入される電荷を蓄積する機能を有する。電荷蓄積層41は、例えばシリコン窒化膜を含む。
トンネル絶縁層42は、半導体層43から電荷蓄積層41に電荷が注入される際、または電荷蓄積層41に蓄積された電荷が半導体層43へ拡散する際に電位障壁として機能する。トンネル絶縁層42は、例えばシリコン酸化膜を含む。
ブロック絶縁層40は、電荷蓄積層41に蓄積された電荷が導電層33(ワード線WL)へ拡散するのを防止する。ブロック絶縁層40は、例えばアルミニウム酸化層、シリコン酸化層及びシリコン窒化層を含む。
メモリピラーMPの上面より上方には、層間絶縁膜を介して複数の導電層35が設けられる。複数の導電層35はX方向に配列される。各導電層35は、Y方向に延伸したライン状の配線層であり、ビット線BLとして機能する。各導電層35は、ストリングユニットSU毎に対応する1つのメモリピラーMPと電気的に接続される。具体的には、各ストリングユニットSUにおいて、各メモリピラーMP内の半導体層43上にコンタクトプラグCV1が設けられ、コンタクトプラグCV1上に1つの導電層35が設けられる。導電層35は、例えばアルミニウム(Al)あるいはタングステン(W)を含む。コンタクトプラグCV1は、導電層、例えばタングステン(W)を含む。
また、ワード線WL、及びセレクトゲート線SGD及びSGSの本数は、それぞれメモリセルトランジスタMT、及びセレクトトランジスタST1及びST2の個数に従って変更される。
上述したメモリセルトランジスタMT(または、メモリピラーMP)の配置において、メモリセルトランジスタMTは、アウターセル(または、アウタービット)とインナーセル(または、インナービット)に区分される。アウターセルは、絶縁層STに近接し、X方向に配列された1行の複数のメモリセルトランジスタMTを含む。インナーセルは、アウターセル以外のメモリセルトランジスタMTである。すなわち、インナーセルは、絶縁層SHEに近接し、X方向に配列された3行の複数のメモリセルトランジスタMTを含む。
1.2 第1実施形態の動作
以下に、メモリシステム1で行われるデータ読み出しの誤り訂正処理におけるソフトビット復号(または、軟判定復号)について説明する。
以下に、メモリシステム1で行われるデータ読み出しの誤り訂正処理におけるソフトビット復号(または、軟判定復号)について説明する。
図10は、第1実施形態のメモリシステム1におけるソフトビット復号の処理を示すフローチャートである。以下に説明する処理は、メモリコントローラ20によって命令あるいは実行される。
まず、図10に示すように、メモリコントローラ20は、複数回の読み出しによって最適な読み出し電圧を探索する読み出し動作(以下、Vthトラッキングと称す)を行う(S1)。Vthトラッキングでは、読み出し動作にて用いられる読み出し電圧VCGRVのより良い電圧値の推定が行われる。例えば、ステート“Er”あるいはステート“A”が記憶されたメモリセルトランジスタからデータを読み出す場合、図11の(a)に示すように、ステート“Er”とステート“A”の閾値電圧分布が分離しているのが望ましい。しかし、実際には図11の(b)に示すように、ステート“Er”の閾値電圧分布とステート“A”の閾値電圧分布が裾の部分で交わっている場合がある。このような場合、読み出し電圧ARを用いるよりも、図11の(b)に示すような閾値電圧分布曲線の極小位置に対応する読み出し電圧ARopを用いた方が、より良い読み出し(より高い誤り訂正成功率)に繋がり得る。これに基づいて、メモリコントローラ20は、閾値電圧分布曲線の極小位置を割り出すために、Vthトラッキングを行う。Vthトラッキングでは、読み出し電圧VCGRVの大きさを変更しながら、データ読み出しが繰り返し実行される。Vthトラッキングの結果、メモリコントローラ20は、閾値電圧分布曲線の複数の極小位置の電圧(極小電圧)を知る。そして、メモリコントローラ20は、最適な読み出し電圧AR、BR、CR、DR、ER、FRおよび(または)GRの推定を行う。
Vthトラッキングは、選択ページからの読み出しに必要な極小電圧だけの推定のためのみに行われてもよいし、選択セルユニットCUの全ページに必要な極小電圧の推定のために行われてもよい。Vthトラッキングの結果は、例えばRAM22に記憶され、例えば、デフォルトの読み出し電圧VCGRVからのシフトとして記憶される。そして、選択ページまたは選択セルユニットCUからの次のデータの読み出しの際に、使用されることができる。Vthトラッキングの結果は、例えばセルユニットCUごとに記憶される。
次に、図10に示すように、メモリコントローラ20は、ソフトビットデータ{HB、SB1~SB4}の生成を行う(S2)。メモリコントローラ20は、誤り訂正回路241によって採用されているソフトビット復号の形式に基づいて、選択ページのハードビットデータに対するソフトビット復号に必要な全てのソフトビットデータを取得する。すなわち、メモリコントローラ20は、例えば、ハードビットデータHBを半導体記憶装置10から読み出す。さらに、メモリコントローラ20は、ソフトビットデータSB1、ソフトビットデータSB2、ソフトビットデータSB3、及びソフトビットデータSB4を半導体記憶装置10から読み出す。そして、ソフトビットデータ{HB、SB1~SB4}は、データ記憶部271に記憶される。
ソフトビットデータは、任意の順番で取得されることができる。どのようなソフトビットデータSB1~SB4が必要かは、誤り訂正回路241によって採用されているソフトビット復号の形式に基づく。ソフトビットデータの例については後述する。必要な全てのソフトビットデータの取得の結果、メモリコントローラ20は、p個の選択セルトランジスタMTのそれぞれについてのp個のインデックスを取得する。
次に、図10に示すように、メモリコントローラ20は、アウタービット判別データSB5の生成を行う(S3)。生成されたアウタービット判別データSB5は、データ記憶部271に記憶される。図8に示したように、半導体記憶装置10に配置されたメモリセルトランジスタMTは、アウターセルとインナーセルに区分される。例えば、アウターセルは、絶縁層STに隣接し、X方向に配列された1行の複数のメモリセルトランジスタを含む。インナーセルは、アウターセル以外のメモリセルトランジスタである。すなわち、インナーセルは、絶縁層SHEに隣接し、X方向に配列された1行の複数のメモリセルトランジスタと、これら1行の複数のメモリセルトランジスタのY方向に配置された2行の複数のメモリセルトランジスタを含む。
アウターセルとインナーセルの区分は、上述に限るわけではない。この例では、アウターセルは、絶縁層STに隣接したX方向の1行の複数のメモリセルトランジスタであるが、例えば、絶縁層STに隣接したX方向の複数行の複数のメモリセルトランジスタをアウターセルとしてもよい。
図12は、アウターセルとインナーセルを判別するためのアウタービット判別データSB5を示す図である。ここでは、メモリセルアレイ11の出力をバイト毎にバイトB0、B1、B2、…、B4583に区分し、バイトB0~B4583に含まれるメモリセルトランジスタMTを、図8に示したメモリセルトランジスタMTに付した番号(IO番号)で表している。
IO0~IO7のメモリセルトランジスタに対して、アウターセルを“1”で示し、インナーセルを“0”で示す。例えば、バイトB0内のIO3のメモリセルトランジスタは“1”で示され、このメモリセルトランジスタはアウターセルである。同様に、バイトB0内のIO7のメモリセルトランジスタは“1”で示され、このメモリセルトランジスタもアウターセルである。一方、バイトB0内のIO3及びIO7以外のメモリセルトランジスタは“0”で示され、これらメモリセルトランジスタはインナーセルである。メモリコントローラ20は、メモリセルトランジスタMTがアウターセルあるいはインナーセルのいずれであるかによって、図12に示すようなアウタービット判別データSB5を生成する。
次に、図10に示すように、メモリコントローラ20は、アウタービット判別データを含むソフトビットデータ{HB、SB1~SB5}の生成を行う(S4)。メモリコントローラ20は、データ生成部272により、ステップS2で生成したソフトビットデータ{HB、SB1~SB4}と、ステップS3で生成したアウタービット判別データSB5とを結合して、ソフトビットデータ{HB、SB1~SB5}を生成する。
次に、メモリコントローラ20は、LLR設定部273にLLRテーブル273Aを設定する(S5)。LLRテーブル273Aは、次のステップS6でソフトビット復号に用いられる。LLRテーブル273Aは、アウタービットとインナービットのLLR値を分けるためのテーブルである。
図13は、ソフトビット復号に用いるLLRテーブル273Aの一例を示す図である。LLRテーブル273Aには、ソフトビットデータ{HB、SB1~SB5}とLLR値とが関連付けられている。インデックス0~25のLLR値は、インナービットに対して有効なLLR値であり、インナービットに対応して設定されたLLR値である。インデックス26~31のLLR値はインナービットに対して無効なLLR値である。さらに、インデックス32~57のLLR値は、アウタービットに対して有効なLLR値であり、アウタービットに対応して設定されたLLR値である。インデックス58~63のLLR値はアウタービットに対して無効なLLR値である。LLRテーブル273Aを用いれば、アウタービットとインナービットのそれぞれの閾値電圧分布の特性に応じたLLR値を得ることができる。
次に、図10に示すように、メモリコントローラ20は、ソフトビット復号を行う(S6)。メモリコントローラ20は、ステップS4にて生成したソフトビットデータ{HB、SB1~SB5}と、ステップS5にて設定したLLRテーブル273AをECC回路24に入力させる。ECC24回路は、ソフトビットデータ{HB、SB1~SB5}と、LLRテーブル273Aから抽出されたLLR値を用いて、ソフトビット復号を行う。以上により、ソフトビット復号の処理が終了する。
1.2.1 ソフトビットデータ{HB、SB1~SB4}の生成
以下に、前述したステップS2におけるソフトビットデータ{HB、SB1~SB4}の生成について説明する。図14は、下位ページが読み出し対象である場合のハードビットデータHB、ソフトビットデータSB1、ソフトビットデータSB2、ソフトビットデータSB3、ソフトビットデータSB4、及びインデックスの例を示す図である。読み出し電圧AR、BR、CR、DR、ER、FR、及びGRは、例えば図10のステップS1のVthトラッキングにより推定された極小位置での電圧に対応する。
以下に、前述したステップS2におけるソフトビットデータ{HB、SB1~SB4}の生成について説明する。図14は、下位ページが読み出し対象である場合のハードビットデータHB、ソフトビットデータSB1、ソフトビットデータSB2、ソフトビットデータSB3、ソフトビットデータSB4、及びインデックスの例を示す図である。読み出し電圧AR、BR、CR、DR、ER、FR、及びGRは、例えば図10のステップS1のVthトラッキングにより推定された極小位置での電圧に対応する。
下位ページのハードビットデータHBは、第1行に示されるように、電圧AR未満または電圧ER以上の閾値電圧のメモリセルトランジスタMTに対応するビットにおいてデータ“1”を有し、電圧AR以上電圧ER未満の閾値電圧のメモリセルトランジスタMTに対応するビットにおいてデータ“0”を有する。
ソフトビットデータSB1の取得のために、メモリコントローラ20は、まず、電圧ARよりもある大きさだけ小さい電圧、および電圧ERよりもある大きさだけ小さい電圧で読み出されるデータを取得する。このとき読み出しに使用される電圧の、電圧ARおよびERとの差は、例えば-2Δである。すなわち、メモリコントローラ20は、電圧ARおよびERにそれぞれ代えて電圧AR-2Δおよび電圧ER-2Δを読み出し電圧として使用して、下位ページ読み出しの結果をいずれかのデータラッチDLに記憶させる。Δは任意の大きさを有することができる。Δは、例えば半導体記憶装置10に対して指示可能な予め定められた読み出し電圧VCGRVの上昇または下降の幅の整数倍に等しい。
半導体記憶装置10は、データ読み出しの指示を受け取ると、指示されたデータ読み出しを行う。電圧AR-2Δおよび電圧ER-2Δを使用した下位ページ読み出しの結果は、第2行に示されており、電圧AR-2Δ未満または電圧ER-2Δ以上の閾値電圧のメモリセルトランジスタMTに対応するビットにおいてデータ“1”を有し、電圧AR-2Δ以上かつ電圧ER-2Δ未満の閾値電圧のメモリセルトランジスタMTに対応するビットにおいてデータ“0”を有する。差M(例えば、-2Δ)が使用された下位ページ読み出しによってデータラッチに読み出されたデータは、以下、M下位ページデータと称される。-2Δ下位ページデータは、半導体記憶装置10のデータラッチ(例えば、データラッチDL0)において記憶される。
同様にして、メモリコントローラ20は、電圧ARおよびERにそれぞれ代えて電圧AR+2Δおよび電圧ER+2Δを読み出し電圧として使用した下位ページ読み出しを半導体記憶装置10に指示する。読み出しの結果は、半導体記憶装置10の別のデータラッチの組(例えば、データラッチXDL)において記憶される。
次いで、メモリコントローラ20は、半導体記憶装置10に、データラッチDL0中のデータとデータラッチXDL中のデータに対する否定排他的論理和(XNOR)演算を指示する。演算の指示を受け取ると、半導体記憶装置10は、データラッチDL0中のデータとデータラッチXDL中のデータに対するXNOR演算を行う。具体的には、シーケンサ16は、データラッチDL0中のデータとデータラッチXDL中のデータの同じ位置のビットのそれぞれの計2つのビットを入力として用い、演算回路LCを用いて2つの入力のXNORを演算する。このような演算をデータラッチDL0およびデータラッチXDL中のデータの全ビットに対して行う。
演算の結果は、データラッチ(例えば、データラッチXDL)に記憶される。より具体的には、シーケンサ16は、あるデータラッチ回路DLC0中のデータと、当該データラッチ回路DLC0と接続されたデータラッチ回路XDLC中のデータとのXNORを、これらのデータラッチ回路DLC0およびXDLCに接続された演算回路LCを使用して演算する。演算の結果は、論理演算の入力のデータを記憶するデータラッチ回路DLC0およびXDLCと接続されたデータラッチ回路XDLCに記憶される。こうして、データラッチXDLに記憶されたデータが、ソフトビットデータSB1である。その後、ソフトビットデータSB1は、メモリコントローラ20に送信され、データ記憶部271において記憶される。
同様にして、ソフトビットデータSB2が、選択ページからデータラッチDLへのデータ読み出しおよび論理演算により取得される。まず、-3Δ下位ページデータと3Δ下位ページデータのXNOR演算の結果(XNOR1データ)が取得される。次いで、XNOR1データと-Δ下位ページデータとのXNOR演算の結果(XNOR2データ)が取得される。次いで、XNOR2データとΔ下位ページデータとのXNOR演算の結果(XNOR3データ)が取得される。XNOR3データは、ソフトビットデータSB2であり、メモリコントローラ20に送信され、データ記憶部271において記憶される。
メモリコントローラ20は、さらに、選択セルユニットCUに対する中位ページ読み出しおよび上位ページ読み出しを半導体記憶装置10に指示し、中位ページデータおよび上位ページデータを取得する。中位ページデータおよび上位ページデータは、それぞれ、ソフトビットデータSB3およびソフトビットデータSB4として扱われる。
ハードビットデータおよび種々のソフトビットデータのうちのある1つの同じ選択トランジスタMTからのデータ読み出し結果に由来する複数ビットの組が、1つのインデックスを構成する。いくつのビットの組が1つのインデックスを構成するかは、ECC回路24による誤り訂正の方法に依存する。いくつのビットの組がインデックスとして使用されるかによって、実施形態は限定されない。本実施形態の例では、ハードビットデータHBおよびソフトビットデータSB1~SB4の各々のうちのある1つの同じ選択セルトランジスタMTからのデータ読み出し結果に由来する5ビットの組が、1つのインデックスを構成する。各インデックスは、5ビットの各値の組合せに対して固有の値を有する。上記のように、インデックスは、図では、10進数で記載されている。
なお、上述では、ソフトビットデータSB1~SB4がセンスアンプ29で生成される例を説明したが、ソフトビットデータSB1~SB4は、メモリコントローラ20、特に制御部27で生成されてもよい。
1.3 第1実施形態の効果
第1実施形態のメモリシステム1によれば、ソフトビット復号の訂正能力を向上させることができる。これにより、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
第1実施形態のメモリシステム1によれば、ソフトビット復号の訂正能力を向上させることができる。これにより、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
以下に、第1実施形態の効果について説明する。
半導体記憶装置においては、メモリセルトランジスタMTが配置された場所によって、異なる電気的特性を有する場合がある。図8にて示したように、メモリセルトランジスタMTがアウターセルあるいはインナーセルのいずれに属するかによって、そのメモリセルトランジスタMTが持つ閾値電圧特性は異なる。
第1実施形態では、メモリコントローラ20はアウターセルとインナーセルとを判別するアウタービット判別データSB5を生成する。アウタービット判別データSB5を用いて、メモリコントローラ20は、アウターセルとインナーセルのそれぞれに対応する、あるいは応じたLLR値を設定する。すなわち、アウターセルに属するメモリセルトランジスタMT(例えば、ストリングユニットSU0のIO3のセル)から読み出したソフトビットデータに対してはアウターセルに適するLLR値を設定する。一方、インナーセルに属するメモリセルトランジスタMT(例えば、ストリングユニットSU0のIO0のセル)から読み出したソフトビットデータに対してはインナーセルに適するLLR値を設定する。これにより、LLR値を用いるソフトビット復号の訂正能力を向上できる。この結果、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
2.第2実施形態
以下に、第2実施形態のメモリシステム1におけるソフトビット復号について説明する。第1実施形態では、ECC回路24が6ビット幅のソフトビットデータを受け付け可能な場合を説明したが、第2実施形態では、ECC回路24に入力可能なデータのビット幅に制限がある場合を説明する。ここでは、ソフトビットデータの入力可能なビット幅が5ビットである場合を述べる。第2実施形態では、第1実施形態と異なる点について主に説明する。説明しないその他の構成及び動作は、第1実施形態と同様である。
以下に、第2実施形態のメモリシステム1におけるソフトビット復号について説明する。第1実施形態では、ECC回路24が6ビット幅のソフトビットデータを受け付け可能な場合を説明したが、第2実施形態では、ECC回路24に入力可能なデータのビット幅に制限がある場合を説明する。ここでは、ソフトビットデータの入力可能なビット幅が5ビットである場合を述べる。第2実施形態では、第1実施形態と異なる点について主に説明する。説明しないその他の構成及び動作は、第1実施形態と同様である。
2.1.ECC回路24の構成
次に、第2実施形態におけるメモリコントローラ20内のECC回路24について説明する。
次に、第2実施形態におけるメモリコントローラ20内のECC回路24について説明する。
図15は、メモリコントローラ20内のECC回路24に関連する機能ブロックを示す図である。メモリコントローラ20は、制御部27を有する。制御部27は、CPU21、RAM22、及びROM23のそれぞれの機能の一部の組合せにより実現される。
制御部27は、ECC回路24の動作に関する処理を制御する。制御部27は、データ記憶部271、データ変換部274、及びLLR設定部273を含む。
データ記憶部271は、例えばRAM22の機能により実現され、ハードビットデータHB及びソフトビットデータSB1~SB4、並びにアウタービット判別データSB5を記憶する。
データ変換部274は、ソフトビットデータ{HB、SB1~SB4}と、アウタービット判別データSB5とを結合して、ソフトビットデータ{HB、SB1~SB5}を生成する。データ変換部274は、ソフトビットデータの変換に用いる変換テーブル274Aを記憶する。変換テーブル274Aには、ソフトビットデータ{HB、SB1~SB5}をソフトビットデータ{HB、SB1~SB4}に変換するためのインデックスが関連付けられている。変換テーブル274Aは、例えば、メモリシステム1に予め格納されていてもよい、例えば、メモリシステム1の出荷の時点で、格納されていてもよい。また、ソフトビットデータの変換を行う前に、制御部27によって生成されてもよい。
LLR設定部273は、ソフトビット復号に用いるLLRテーブル273Bを記憶することができる。LLRテーブル273Bには、ハードビットデータおよびソフトビットデータに対応するインデックスと、インデックスに対応するLLR値とが関連付けられている。インデックスからLLR値への変換は、LLRテーブル273Bにより行われることができる。LLRテーブル273Bは、例えば、メモリシステム1に予め格納されていてもよい、例えば、メモリシステム1の出荷の時点で、格納されていてもよい。また、LLR値への変換を行う前に、制御部27によって生成されてもよい。
ECC回路24は、誤り訂正回路241を含む。誤り訂正回路241は、制御部27からソフトビットデータ{HB、SB1~SB4}とLLRテーブル273Bを受け取り、ソフトビット(SB)復号を行う。誤り訂正回路241は、例えばフレームと呼ばれる大きさのデータごとに復号を行うことができる。
2.2 第2実施形態の動作
以下に、メモリシステム1で行われるデータ読み出しの誤り訂正処理におけるソフトビット復号について説明する。
以下に、メモリシステム1で行われるデータ読み出しの誤り訂正処理におけるソフトビット復号について説明する。
図16は、第2実施形態のメモリシステム1におけるソフトビット復号の処理を示すフローチャートである。以下に説明する処理は、メモリコントローラ20によって命令あるいは実行される。
まず、図16に示すように、メモリコントローラ20は、Vthトラッキングを行う(S1)。Vthトラッキングでは、メモリコントローラ20は、最適な読み出し電圧AR、BR、CR、DR、ER、FRおよび(または)GRの推定を行う。
次に、メモリコントローラ20は、ソフトビットデータ{HB、SB1~SB4}の生成を行う(S2)。すなわち、メモリコントローラ20は、例えば、ハードビットデータHBを半導体記憶装置10から読み出す。さらに、メモリコントローラ20は、ソフトビットデータSB1~SB4を半導体記憶装置10から読み出す。そして、ソフトビットデータ{HB、SB1~SB4}は、データ記憶部271に記憶される。
次に、メモリコントローラ20は、アウタービット判別データSB5の生成を行う(S3)。メモリコントローラ20は、メモリセルトランジスタMTがアウターセルあるいはインナーセルのいずれであるかによって、図12に示すようなアウタービット判別データSB5を生成する。生成されたアウタービット判別データSB5は、データ記憶部271に記憶される。
次に、図10に示すように、メモリコントローラ20は、アウタービット判別データを含むソフトビットデータ{HB、SB1~SB5}を生成し、変換テーブル274Aを用いて、ソフトビットデータ{HB、SB1~SB5}をソフトビットデータ{HB、SB1~SB4}に変換する(S11)。すなわち、メモリコントローラ20は、ステップS2で生成したソフトビットデータ{HB、SB1~SB4}と、ステップS3で生成したアウタービット判別データSB5とを結合して、ソフトビットデータ{HB、SB1~SB5}を生成する。続いて、メモリコントローラ20は、6ビットのソフトビットデータ{HB、SB1~SB5}を、変換テーブル274Aを用いて5ビットのソフトビットデータ{HB、SB1~SB4}に変換する。
図17は、ソフトビットデータの変換に用いる変換テーブル274Aの一例を示す図である。この図では、入力データとしてのソフトビットデータ{HB、SB1~SB5}と、変換後の出力データとしてのソフトビットデータ{HB、SB1~SB4}は、それぞれ対応するインデックスで示されている。
変換テーブル274Aを用いた変換は以下のように行われる。インデックス0~25の入力データは、変換されずに、インデックス0~25の出力データとなる。インデックス26~31の入力データは、変換されて、インデックス0~5の出力データとなる。インデックス32~51の入力データは、変換されて、インデックス0~19の出力データとなる。インデックス52~57の入力データは、変換されて、インデックス26~31の出力データとなる。さらに、インデックス58~63の入力データは、変換されて、インデックス0~5の出力データとなる。このような変換により、インデックス0~63の全ての入力データは、インデックス0~31までの出力データに変換される。そして、インデックス0~31までの出力データ、すなわちソフトビットデータ{HB、SB1~SB4}がアウタービットとインナービットを判別するためのデータとして設定される(S12)。
次に、図16に示すように、メモリコントローラ20は、LLR設定部273にLLRテーブル273Bを設定する(S5)。LLRテーブル273Bは、次のステップS6でソフトビット復号に用いられる。LLRテーブル273Bは、アウタービットとインナービットのLLR値を分けるためのテーブルである。
図18は、ソフトビット復号に用いるLLRテーブル273Bの一例を示す図である。LLRテーブル273Bには、変換テーブル274Aにて変換されたインデックス0~31までの出力データ(ソフトビットデータ{HB、SB1~SB4})と、LLR値とが関連付けられている。インデックス0~19のLLR値は、インナービットとアウタービットに対して有効な共通のLLR値であり、インナービットとアウタービットに対応して設定された共通のLLR値である。インデックス20~25のLLR値は、インナービットに対して有効なLLR値であり、インナービットに対応して設定されたLLR値である。さらに、インデックス26~31のLLR値は、アウタービットに対して有効なLLR値であり、アウタービットに対応して設定されたLLR値である。LLRテーブル273Bを用いれば、アウタービットとインナービットのそれぞれの閾値電圧分布の特性に応じたLLR値を得ることができる。
次に、図16に示すように、メモリコントローラ20は、ソフトビット復号を行う(S6)。メモリコントローラ20は、ステップS12にて設定したソフトビットデータ{HB、SB1~SB4}と、ステップS5にて設定したLLRテーブル273BをECC回路24に入力させる。ECC24回路は、ソフトビットデータ{HB、SB1~SB4}と、LLRテーブル273Bから抽出されたLLR値を用いて、ソフトビット復号を行う。以上により、ソフトビット復号の処理が終了する。
2.3 第2実施形態の効果
第2実施形態のメモリシステム1によれば、第1実施形態と同様に、ソフトビット復号の訂正能力を向上されることができる。これにより、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
第2実施形態のメモリシステム1によれば、第1実施形態と同様に、ソフトビット復号の訂正能力を向上されることができる。これにより、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
さらに、第2実施形態では、ECC回路24に入力可能なデータのビット幅に制限がある場合でも、ソフトビットデータを入力可能なビット数に変換することにより、第1実施形態と同様な効果を得ることができる。
3.第3実施形態
以下に、第3実施形態のメモリシステム1におけるソフトビット復号について説明する。第1実施形態では、ソフトビットデータを読み出した後、アウタービットとインナービットのそれぞれに応じたLLR値を設定したが、第3実施形態では、アウタービットとインナービットのそれぞれに適する読み出し電圧に基づいてソフトビットデータを読み出し、アウタービットとインナービットのそれぞれに応じたLLR値を設定する。第3実施形態では、第1実施形態と異なる点について主に説明する。説明しないその他の構成及び動作は、第1実施形態と同様である。
以下に、第3実施形態のメモリシステム1におけるソフトビット復号について説明する。第1実施形態では、ソフトビットデータを読み出した後、アウタービットとインナービットのそれぞれに応じたLLR値を設定したが、第3実施形態では、アウタービットとインナービットのそれぞれに適する読み出し電圧に基づいてソフトビットデータを読み出し、アウタービットとインナービットのそれぞれに応じたLLR値を設定する。第3実施形態では、第1実施形態と異なる点について主に説明する。説明しないその他の構成及び動作は、第1実施形態と同様である。
3.1.ECC回路24の構成
次に、第3実施形態におけるメモリコントローラ20内のECC回路24について説明する。
次に、第3実施形態におけるメモリコントローラ20内のECC回路24について説明する。
図19は、メモリコントローラ20内のECC回路24に関連する機能ブロックを示す図である。メモリコントローラ20は、制御部27を有する。制御部27は、CPU21、RAM22、及びROM23のそれぞれの機能の一部の組合せにより実現される。
制御部27は、ECC回路24の動作に関する処理を制御する。制御部27は、データ記憶部271、データ生成部272、及びLLR設定部273を含む。
データ記憶部271は、例えばRAM22の機能により実現され、インナービットのためのハードビットデータHB及びソフトビットデータSB1~SB4、並びにアウタービット判別データSB5と、アウタービットのためのハードビットデータHB及びソフトビットデータSB1~SB4、並びにアウタービット判別データSB5を記憶する。
データ生成部272は、インナービットのためのソフトビットデータ{HB、SB1~SB5}と、アウタービットのためのソフトビットデータ{HB、SB1~SB5}とを合成して、ソフトビットデータ{HB、SB1~SB5}を生成する。
LLR設定部273は、ソフトビット復号に用いるLLRテーブル273Cを記憶することができる。LLRテーブル273Cには、ハードビットデータおよびソフトビットデータに対応するインデックスと、インデックスに対応するLLR値とが関連付けられている。インデックスからLLR値への変換は、LLRテーブル273Cにより行われることができる。LLRテーブル273Cは、例えば、メモリシステム1に予め格納されていてもよい、例えば、メモリシステム1の出荷の時点で、格納されていてもよい。また、LLR値への変換を行う前に、制御部27によって生成されてもよい。
ECC回路24は、誤り訂正回路241を含む。誤り訂正回路241は、制御部27からソフトビットデータ{HB、SB1~SB5}とLLRテーブル273Cを受け取り、ソフトビット(SB)復号を行う。誤り訂正回路241は、例えばフレームと呼ばれる大きさのデータごとに復号を行うことができる。
3.2 第3実施形態の動作
以下に、メモリシステム1で行われるデータ読み出しの誤り訂正処理におけるソフトビット復号について説明する。
以下に、メモリシステム1で行われるデータ読み出しの誤り訂正処理におけるソフトビット復号について説明する。
図20は、第3実施形態のメモリシステム1で行われるソフトビット復号の処理を示すフローチャートである。以下に説明する処理は、メモリコントローラ20によって命令あるいは実行される。
まず、図20に示すように、メモリコントローラ20は、インナービットに該当するメモリセルトランジスタMTに対してVthトラッキングを行う(S31)。Vthトラッキングでは、メモリコントローラ20は、インナービットにおいて最適な読み出し電圧VCGRVの推定を行う。
次に、メモリコントローラ20は、アウタービット判別データSB5の生成を行う(S32)。メモリコントローラ20は、メモリセルトランジスタMTがアウターセルあるいはインナーセルのいずれであるかによって、図12に示すようなアウタービット判別データSB5を生成する。生成されたアウタービット判別データSB5は、データ記憶部271に記憶される。
次に、メモリコントローラ20は、インナービットのためのソフトビットデータ{HB、SB1~SB5}の生成を行う(S33)。すなわち、メモリコントローラ20は、例えば、ステップS31にて得たインナービットの最適な読み出し電圧VCGRVを用いて半導体記憶装置10からハードビットデータHBを読み出す。さらに、メモリコントローラ20は、読み出し電圧VCGRVに基づいて作成した電圧を用いて、半導体記憶装置10からソフトビットデータSB1~SB4を読み出す。そして、メモリコントローラ20は、生成したソフトビットデータ{HB、SB1~SB4}と、アウタービット判別データSB5とを結合して、ソフトビットデータ{HB、SB1~SB5}を生成する。生成されたソフトビットデータ{HB、SB1~SB5}は、データ記憶部271に記憶される。
図21の(a)は、インナービットのためのソフトビットデータの一例を示す図である。ここでは、ソフトビットデータは10進数で表記されている。図21の(a)中において破線で囲ったデータが、インナービットに該当するメモリセルトランジスタから読み出されたデータである。
次に、メモリコントローラ20は、アウタービットに該当するメモリセルトランジスタMTに対してVthトラッキングを行う(S34)。Vthトラッキングでは、メモリコントローラ20は、アウタービットにおいて最適な読み出し電圧VCGRVの推定を行う。
次に、メモリコントローラ20は、アウタービットのためのソフトビットデータ{HB、SB1~SB5}の生成を行う(S35)。すなわち、メモリコントローラ20は、例えば、ステップS34にて得たアウタービットの最適な読み出し電圧VCGRVを用いて半導体記憶装置10からハードビットデータHBを読み出す。さらに、メモリコントローラ20は、読み出し電圧VCGRVに基づいて作成した電圧を用いて、半導体記憶装置10からソフトビットデータSB1~SB4を読み出す。そして、メモリコントローラ20は、生成したソフトビットデータ{HB、SB1~SB4}と、アウタービット判別データSB5とを結合して、ソフトビットデータ{HB、SB1~SB5}を生成する。生成されたソフトビットデータ{HB、SB1~SB5}は、データ記憶部271に記憶される。
図21の(b)は、アウタービットのためのソフトビットデータの一例を示す図である。ソフトビットデータは10進数で表記されている。図21の(b)中において破線で囲ったデータが、アウタービットに該当するメモリセルトランジスタから読み出されたデータである。
次に、メモリコントローラ20は、データ生成部272により、アウタービットのためのソフトビットデータ{HB、SB1~SB5}と、インナービットのためのソフトビットデータ{HB、SB1~SB5}の合成を行う(S36)。そして、メモリコントローラ20は、合成したソフトビットデータ{HB、SB1~SB5}をデータ生成部272に設定する(S37)。
図21の(c)は、アウタービットのためのソフトビットデータと、インナービットのためのソフトビットデータを合成したソフトビットデータ{HB、SB1~SB5}の一例を示す図である。ソフトビットデータは10進数で表記されている。図21の(c)中の破線で囲ったデータが、図21の(a)中のインナービットのデータと、図21の(b)中のアウタービットのデータを抽出したデータである。
次に、メモリコントローラ20は、LLR設定部273にLLRテーブル273Cを設定する(S38)。LLRテーブル273Cは、次のステップS39においてソフトビット復号に用いられる。LLRテーブル273Cは、アウタービットとインナービットのLLR値を分けるためのテーブルである。
図22は、ソフトビット復号に用いるLLRテーブル273Cの一例を示す図である。LLRテーブル273Cには、ステップS37にて設定されたソフトビットデータ{HB、SB1~SB5}とLLR値とが関連付けられている。インデックス0~25のLLR値は、インナービットに対して有効なLLR値であり、インナービットに対応して設定されたLLR値である。インデックス26~31のLLR値はインナービットに対して無効なLLR値である。さらに、インデックス32~57のLLR値は、アウタービットに対して有効なLLR値であり、アウタービットに対応して設定されたLLR値である。インデックス58~63のLLR値はアウタービットに対して無効なLLR値である。LLRテーブル273Cを用いれば、アウタービットとインナービットのそれぞれの閾値電圧分布の特性に応じたLLR値を得ることができる。
次に、メモリコントローラ20は、ソフトビット復号を行う(S39)。メモリコントローラ20は、ステップS37にて設定したソフトビットデータ{HB、SB1~SB5}と、ステップS38にて設定したLLRテーブル273CをECC回路24に入力させる。ECC24回路は、ソフトビットデータ{HB、SB1~SB5}と、LLRテーブル273Cから抽出されたLLR値を用いて、ソフトビット復号を行う。以上により、ソフトビット復号の処理が終了する。
3.3 第3実施形態の効果
第3実施形態のメモリシステム1によれば、第1実施形態と同様に、ソフトビット復号の訂正能力を向上されることができる。これにより、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
第3実施形態のメモリシステム1によれば、第1実施形態と同様に、ソフトビット復号の訂正能力を向上されることができる。これにより、メモリシステム1における誤り訂正処理の信頼性を高めることができる。
さらに、第3実施形態では、アウタービットとインナービットとで別々にVthトラッキング及びソフトビットデータの読み出しを行う。すなわち、アウタービットに該当するメモリセルトランジスタMTに対して、Vthトラッキングを行い、このVthトラッキングで求めた読み出し電圧VCGRVに基づいてソフトビットデータを読み出す。そして、アウタービットに応じたLLR値を設定する。同様に、インナービットに該当するメモリセルトランジスタMTに対して、Vthトラッキングを行い、このVthトラッキングで求めた読み出し電圧VCGRVに基づいてソフトビットデータを読み出す。そして、インナービットに応じたLLR値を設定する。このように、アウタービットとインナービットでそれぞれに適する読み出し電圧VCGRVを求め、それぞれのソフトビットデータを読み出すことにより、より精度の高いソフトビット復号を行うことが可能である。
4.その他変形例等
前述の実施形態では、アウターセル(または、アウタービット)あるいはインナーセル(または、インナービット)のそれぞれに応じたLLR値を設定し、ソフトビット復号を行ったが、メモリセルトランジスタMTが持つ閾値電圧特性は、アウターセルあるいはインナーセル以外の配置場所によっても所定の規則性を持つ場合がある。このような場合、その配置場所のメモリセルトランジスタMTが持つ特性に応じて、LLR値を設定してもよい。例えば、メモリセルトランジスタMTの配置場所はカラムによっても区分できる。よって、メモリセルトランジスタMTがいずれのカラムに属するかによって、そのカラムに応じてLLR値を設定してもよい。
前述の実施形態では、アウターセル(または、アウタービット)あるいはインナーセル(または、インナービット)のそれぞれに応じたLLR値を設定し、ソフトビット復号を行ったが、メモリセルトランジスタMTが持つ閾値電圧特性は、アウターセルあるいはインナーセル以外の配置場所によっても所定の規則性を持つ場合がある。このような場合、その配置場所のメモリセルトランジスタMTが持つ特性に応じて、LLR値を設定してもよい。例えば、メモリセルトランジスタMTの配置場所はカラムによっても区分できる。よって、メモリセルトランジスタMTがいずれのカラムに属するかによって、そのカラムに応じてLLR値を設定してもよい。
更に、上記実施形態では半導体記憶装置としてNAND型フラッシュメモリを例に説明したが、NAND型フラッシュメモリに限らず、その他の半導体メモリ全般に適用出来、更には半導体メモリ以外の種々の記憶装置に適用出来る。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることが出来る。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…ホスト装置、10…半導体記憶装置、11…メモリセルアレイ、12…入出力回路、13…ロジック制御回路、14…レディ/ビジー回路、15…レジスタ群、15A…ステータスレジスタ、15B…アドレスレジスタ、15C…コマンドレジスタ、16…シーケンサ、17…電圧生成回路、18…ドライバ、19…ロウデコーダ、20…メモリコントローラ、21…CPU、22…RAM、23…ROM、24…ECC回路、25…NANDインターフェース回路、26…ホストインターフェース回路、27…制御部、28…カラムデコーダ、29…センスアンプ、30…半導体基板、31~35…導電層、40…ブロック絶縁層、41…電荷蓄積層、42…トンネル絶縁層、43…半導体層、241…誤り訂正回路、271…データ記憶部、272…データ生成部、273…LLR設定部、273A…LLRテーブル、273B…LLRテーブル、273C…LLRテーブル、274…データ変換部、274A…変換テーブル、HB…ハードビットデータ、SB1~SB4…ソフトビットデータ、SB5…アウタービット判別データ。
Claims (6)
- 第1領域に配置された第1メモリセルと、第2領域に配置された第2メモリセルを含む半導体記憶装置と、
前記第1メモリセルからの第1読み出し動作に基づく第1データと、前記第2メモリセルからの前記第1読み出し動作に基づく第2データと受け取り、
前記第1メモリセルからの前記第1読み出し動作と異なる第2読み出し動作に基づく第3データと、前記第2メモリセルからの前記第2読み出し動作に基づく第4データと受け取り、
前記第1メモリセルが前記第1領域に配置されていることを示す第1情報に基づいて、前記第1データ及び前記第3データに対応する第1値を設定し、
前記第2メモリセルが前記第2領域に配置されていることを示す第2情報に基づいて、前記第2データ及び前記第4データに対応する第2値を設定し、
前記第1データ及び前記第3データに対して前記第1値を用いて復号を行い、前記第2データ及び前記第4データに対して前記第2値を用いて復号を行う、
ように構成されたコントローラと、
を具備するメモリシステム。 - 前記半導体記憶装置は、
半導体基板と、
半導体基板上に配置された第1導電層と、
前記第1導電層上に配置された第2導電層と、
前記半導体基板上に配置され、第1方向に延伸し、前記第1導電層を分離し、かつ前記第2導電層を分離する第1絶縁層と、
前記第1導電層上に配置され、前記第1方向に延伸し、前記第2導電層を分離する第2絶縁層と、
を有し、
前記第1領域及び前記第2領域は、前記第1絶縁層と前記第2絶縁層との間に配置され、
前記第2領域は、前記第1領域より前記第1絶縁層から離れている請求項1に記載のメモリシステム。 - 前記半導体記憶装置は、
半導体基板と、
半導体基板上に配置された第1導電層と、
前記第1導電層上に配置された第2導電層と、
前記半導体基板上に配置され、第1方向に延伸し、前記第1導電層を分離し、かつ前記第2導電層を分離する第1絶縁層と、
前記第1導電層上に配置され、前記第1方向に延伸し、前記第2導電層を分離する第2絶縁層と、
前記半導体基板上に設けられ、前記第1導電層及び前記第2導電層を貫く第1ピラー及び第2ピラーと、
を有し、
前記第1ピラーと前記第1導電層との交差部分が前記第1メモリセルに対応し、
前記第2ピラーと前記第1導電層との交差部分が前記第2メモリセルに対応し、
前記第2ピラーは、前記第1ピラーより前記第1絶縁層から離れている請求項1に記載のメモリシステム。 - 前記コントローラは、前記第1メモリセルに対して読み出し電圧を変更して複数のデータ読み出しを行い、前記第1メモリセルが有する閾値電圧分布の極小位置に対応する第1読み出し電圧を取得し、
前記第1読み出し動作では、前記第1読み出し電圧が用いられて前記第1データが読み出される請求項1に記載のメモリシステム。 - 前記第2読み出し動作では、前記第1メモリセルに対して、前記第1読み出し電圧より第1電圧大きい電圧、及び前記第1読み出し電圧より前記第1電圧小さい電圧が用いられて読み出しが行われ、前記読み出しの結果が演算されて前記第3データが得られる請求項1に記載のメモリシステム。
- 第1領域に配置された第1メモリセルと、第2領域に配置された第2メモリセルを含む半導体記憶装置と、
前記第1メモリセルからの第1読み出し動作に基づく第1データと、前記第1メモリセルからの前記第1読み出し動作と異なる第2読み出し動作に基づく第2データと受け取り、
前記第2メモリセルからの第3読み出し動作に基づく第3データと、前記第2メモリセルからの前記第3読み出し動作と異なる第4読み出し動作に基づく第4データと受け取り、
前記第1メモリセルが前記第1領域に配置されていることを示す第1情報に基づいて、前記第1データ及び前記第2データに対応する第1値を設定し、
前記第2メモリセルが前記第2領域に配置されていることを示す第2情報に基づいて、前記第3データ及び前記第4データに対応する第2値を設定し、
前記第1データ及び前記第2データに対して前記第1値を用いて復号を行い、前記第3データ及び前記第4データに対して前記第2値を用いて復号を行う、
ように構成されたコントローラと、
を具備するメモリシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021129061A JP2023023483A (ja) | 2021-08-05 | 2021-08-05 | メモリシステム |
TW110139625A TWI775655B (zh) | 2021-08-05 | 2021-10-26 | 記憶體系統 |
US17/589,365 US11908526B2 (en) | 2021-08-05 | 2022-01-31 | Memory system and method of controlling semiconductor memory device |
CN202210166442.8A CN115910157A (zh) | 2021-08-05 | 2022-02-23 | 存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021129061A JP2023023483A (ja) | 2021-08-05 | 2021-08-05 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023023483A true JP2023023483A (ja) | 2023-02-16 |
Family
ID=83807381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021129061A Pending JP2023023483A (ja) | 2021-08-05 | 2021-08-05 | メモリシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11908526B2 (ja) |
JP (1) | JP2023023483A (ja) |
CN (1) | CN115910157A (ja) |
TW (1) | TWI775655B (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9064575B2 (en) | 2012-08-03 | 2015-06-23 | Micron Technology, Inc. | Determining whether a memory cell state is in a valley between adjacent data states |
CN103970619B (zh) | 2013-02-06 | 2017-09-29 | 东芝存储器株式会社 | 控制器 |
US8924824B1 (en) | 2013-03-12 | 2014-12-30 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
US9690697B2 (en) | 2014-07-10 | 2017-06-27 | Kabushiki Kaisha Toshiba | Memory controller, storage device and memory control method |
JP2018045387A (ja) | 2016-09-13 | 2018-03-22 | 東芝メモリ株式会社 | メモリシステム |
US10210042B2 (en) | 2016-09-14 | 2019-02-19 | Toshiba Memory Corporation | Memory system |
JP7051484B2 (ja) * | 2018-02-22 | 2022-04-11 | キオクシア株式会社 | 半導体メモリ |
JP2019169211A (ja) * | 2018-03-22 | 2019-10-03 | 東芝メモリ株式会社 | メモリシステム |
KR20210018615A (ko) * | 2019-08-06 | 2021-02-18 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
KR20210023317A (ko) * | 2019-08-22 | 2021-03-04 | 에스케이하이닉스 주식회사 | 반도체장치 |
US11175980B2 (en) * | 2019-12-27 | 2021-11-16 | Seagate Technology Llc | Mitigation of solid state memory read failures |
-
2021
- 2021-08-05 JP JP2021129061A patent/JP2023023483A/ja active Pending
- 2021-10-26 TW TW110139625A patent/TWI775655B/zh active
-
2022
- 2022-01-31 US US17/589,365 patent/US11908526B2/en active Active
- 2022-02-23 CN CN202210166442.8A patent/CN115910157A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11908526B2 (en) | 2024-02-20 |
TWI775655B (zh) | 2022-08-21 |
TW202307859A (zh) | 2023-02-16 |
US20230045340A1 (en) | 2023-02-09 |
CN115910157A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10573394B2 (en) | Memory system | |
US9627077B2 (en) | Semiconductor memory device storing management data redundantly in different pages | |
US8811094B2 (en) | Non-volatile multi-level memory device and data read method | |
US11461044B2 (en) | Nonvolatile memory device controlling partical usage restriction for memory cell array | |
US10706944B2 (en) | Memory controller for controlling memory device based on erase state information and method of operating the memory controller | |
US20100241929A1 (en) | Semiconductor Memory Device for Performing Additional ECC Correction According to Cell Pattern and Electronic System Including the Same | |
US10755785B2 (en) | Memory system and method of operating the same | |
JP2019053805A (ja) | メモリシステム | |
CN113963737A (zh) | 存储系统以及半导体存储装置 | |
JP2013254538A (ja) | 不揮発性半導体記憶装置 | |
JP2020047330A (ja) | 半導体記憶装置 | |
US20170060470A1 (en) | Memory system and operating method thereof | |
US10679705B2 (en) | Controller and operating method thereof | |
TWI750605B (zh) | 半導體記憶裝置 | |
JP2020047321A (ja) | 半導体記憶装置 | |
US20230103694A1 (en) | Storage controller determining error count, method of operating the same, and method of operating storage device including the same | |
JP2023023483A (ja) | メモリシステム | |
US20230282290A1 (en) | Semiconductor storage device | |
US20240105272A1 (en) | Semiconductor memory device | |
US20240096423A1 (en) | Memory system | |
JP2023137697A (ja) | 半導体記憶装置 | |
TW202414414A (zh) | 記憶體系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20230106 |