(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116852
(43)【公開日】2024-08-28
(54)【発明の名称】不揮発性メモリ及びメモリシステム
(51)【国際特許分類】
G06F 11/10 20060101AFI20240821BHJP
【FI】
G06F11/10 648
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023022673
(22)【出願日】2023-02-16
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】本間 充祥
(57)【要約】
【課題】不揮発性メモリからメモリコントローラに出力されるデータ量の増加を抑制する。
【解決手段】一実施形態のメモリシステムは、各々が第1ビット及び第2ビットを記憶するように構成された複数のメモリセルと、制御回路と、を備える。制御回路は、各々が第1ビットに対応する第1データ、第1部分データ、及び第2部分データを複数のメモリセルから読み出し、各々が第2ビットに対応する第2データ、第3部分データ、及び第4部分データを複数のメモリセルから読み出し、第1部分データ及び第3部分データの論理和演算に基づいて第1圧縮データを生成し、第2部分データ及び第4部分データの論理和演算に基づいて第2圧縮データを生成し、第1データ、第2データ、第1圧縮データ、及び第2圧縮データを外部のメモリコントローラに送信するように構成される。
【選択図】
図10
【特許請求の範囲】
【請求項1】
各々が第1ビット及び第2ビットを記憶するように構成された複数のメモリセルと、
制御回路と、
を備え、
制御回路は、
各々が前記第1ビットに対応する第1ハードビットデータ、第1部分ソフトビットデータ、及び第2部分ソフトビットデータを前記複数のメモリセルから読み出し、
各々が前記第2ビットに対応する第2ハードビットデータ、第3部分ソフトビットデータ、及び第4部分ソフトビットデータを前記複数のメモリセルから読み出し、
前記第1部分ソフトビットデータ及び前記第3部分ソフトビットデータの論理和演算に基づいて第1圧縮ソフトビットデータを生成し、
前記第2部分ソフトビットデータ及び前記第4部分ソフトビットデータの論理和演算に基づいて第2圧縮ソフトビットデータを生成し、
前記第1ハードビットデータ、前記第2ハードビットデータ、前記第1圧縮ソフトビットデータ、及び前記第2圧縮ソフトビットデータを外部のメモリコントローラに送信する
ように構成された、
不揮発性メモリ。
【請求項2】
前記制御回路は、前記メモリコントローラからのコマンドに応じて前記第1ハードビットデータ、前記第2ハードビットデータ、前記第1圧縮ソフトビットデータ、及び前記第2圧縮ソフトビットデータを送信するように構成された、
請求項1記載の不揮発性メモリ。
【請求項3】
前記コマンドに応じて前記メモリコントローラに送信される圧縮ソフトビットデータのサイズは、前記複数のメモリセルに記憶されるビット数に依らない、
請求項2記載の不揮発性メモリ。
【請求項4】
前記コマンドに応じて前記メモリコントローラに送信されるハードビットデータのサイズは、前記複数のメモリセルに記憶されるビット数に相関する、
請求項2記載の不揮発性メモリ。
【請求項5】
前記複数のメモリセルは、第3ビットを更に記憶するように構成され、
前記制御回路は、
各々が前記第3ビットに対応する第3ハードビットデータ、第5部分ソフトビットデータ、及び第6部分ソフトビットデータを前記複数のメモリセルから読み出し、
前記第1部分ソフトビットデータ、前記第3部分ソフトビットデータ、及び前記第5部分ソフトビットデータの論理和演算に基づいて前記第1圧縮ソフトビットデータを生成し、
前記第2部分ソフトビットデータ、前記第4部分ソフトビットデータ、及び前記第6部分ソフトビットデータの論理和演算に基づいて前記第2圧縮ソフトビットデータを生成し、
前記第1ハードビットデータ、前記第2ハードビットデータ、前記第3ハードビットデータ、前記第1圧縮ソフトビットデータ、及び前記第2圧縮ソフトビットデータを前記メモリコントローラに送信する
ように構成された、
請求項1記載の不揮発性メモリ。
【請求項6】
前記複数のメモリセルは、第4ビットを更に記憶するように構成され、
前記制御回路は、
各々が前記第4ビットに対応する第4ハードビットデータ、第7部分ソフトビットデータ、及び第8部分ソフトビットデータを前記複数のメモリセルから読み出し、
前記第1部分ソフトビットデータ、前記第3部分ソフトビットデータ、前記第5部分ソフトビットデータ、及び前記第7部分ソフトビットデータの論理和演算に基づいて前記第1圧縮ソフトビットデータを生成し、
前記第2部分ソフトビットデータ、前記第4部分ソフトビットデータ、前記第6部分ソフトビットデータ、及び前記第8部分ソフトビットデータの論理和演算に基づいて前記第2圧縮ソフトビットデータを生成し、
前記第1ハードビットデータ、前記第2ハードビットデータ、前記第3ハードビットデータ、前記第4ハードビットデータ、前記第1圧縮ソフトビットデータ、及び前記第2圧縮ソフトビットデータを前記メモリコントローラに送信する
ように構成された、
請求項5記載の不揮発性メモリ。
【請求項7】
前記制御回路は、
第1電圧を用いた第1読み出し処理に基づいて、前記第1ハードビットデータ、第1データ、及び第2データを前記複数のメモリセルから読み出し、
前記第1ハードビットデータ及び前記第1データに基づいて前記第1部分ソフトビットデータを生成し、
前記第1ハードビットデータ及び前記第2データに基づいて前記第2部分ソフトビットデータを生成する
ように構成され、
前記第1ハードビットデータに対応するセンス期間は、前記第1データに対応するセンス期間より長く、前記第2データに対応するセンス期間より短い、
請求項1記載の不揮発性メモリ。
【請求項8】
前記制御回路は、
第2電圧を用いた第2読み出し処理、及び第3電圧を用いた第3読み出し処理に基づいて、前記第2ハードビットデータ、第3データ、及び第4データを前記複数のメモリセルから読み出し、
前記第2ハードビットデータ及び前記第3データに基づいて前記第3部分ソフトビットデータを生成し、
前記第2ハードビットデータ及び前記第4データに基づいて前記第4部分ソフトビットデータを生成する
ように構成され、
前記第2ハードビットデータに対応するセンス期間は、前記第3データに対応するセンス期間より長く、前記第4データに対応するセンス期間より短い、
請求項7記載の不揮発性メモリ。
【請求項9】
前記制御回路は、前記第1読み出し処理を、前記第2読み出し処理と前記第3読み出し処理との間で実行するように構成された、
請求項8記載の不揮発性メモリ。
【請求項10】
前記制御回路は、前記第2読み出し処理及び前記第3読み出し処理を、前記第1読み出し処理に対して連続して実行するように構成された、
請求項8記載の不揮発性メモリ。
【請求項11】
各々が第1ビット及び第2ビットを記憶するように構成された複数のメモリセルを含む不揮発性メモリと、
前記不揮発性メモリに第1動作を実行させるメモリコントローラと、
を備え、
前記不揮発性メモリは、前記第1動作において、
各々が前記第1ビットに対応する第1ハードビットデータ、第1部分ソフトビットデータ、及び第2部分ソフトビットデータを前記複数のメモリセルから読み出し、
各々が前記第2ビットに対応する第2ハードビットデータ、第3部分ソフトビットデータ、及び第4部分ソフトビットデータを前記複数のメモリセルから読み出し、
前記第1部分ソフトビットデータ及び前記第3部分ソフトビットデータの論理和演算に基づいて第1圧縮ソフトビットデータを生成し、
前記第2部分ソフトビットデータ及び前記第4部分ソフトビットデータの論理和演算に基づいて第2圧縮ソフトビットデータを生成する
ように構成され、
前記メモリコントローラは、
前記第1ハードビットデータ、前記第2ハードビットデータ、前記第1圧縮ソフトビットデータ、及び前記第2圧縮ソフトビットデータに基づき、第1ソフトビットデータ及び第2ソフトビットデータを復元する
ように構成された、
メモリシステム。
【請求項12】
前記メモリコントローラは、前記第1ソフトビットデータ及び前記第2ソフトビットデータに基づいて軟判定復号処理を実行するように構成された、
請求項11記載のメモリシステム。
【請求項13】
前記第1ソフトビットデータは、前記第1部分ソフトビットデータ及び前記第2部分ソフトビットデータの論理和演算に対応し、
前記第2ソフトビットデータは、前記第3部分ソフトビットデータ及び前記第4部分ソフトビットデータの論理和演算に対応する、
請求項11記載のメモリシステム。
【請求項14】
前記不揮発性メモリは、前記メモリコントローラからのコマンドに応じて、前記第1動作を実行するように構成された、
請求項11記載のメモリシステム。
【請求項15】
前記コマンドに応じて前記メモリコントローラに送信される圧縮ソフトビットデータのサイズは、前記複数のメモリセルに記憶されるビット数に依らない、
請求項14記載のメモリシステム。
【請求項16】
前記コマンドに応じて前記メモリコントローラに送信されるハードビットデータのサイズは、前記複数のメモリセルに記憶されるビット数に相関する、
請求項14記載のメモリシステム。
【請求項17】
前記不揮発性メモリは、前記第1動作において、
第1電圧を用いた第1読み出し処理に基づいて、前記第1ハードビットデータ、第1データ、及び第2データを前記複数のメモリセルから読み出し、
前記第1ハードビットデータ及び前記第1データに基づいて前記第1部分ソフトビットデータを生成し、
前記第1ハードビットデータ及び前記第2データに基づいて前記第2部分ソフトビットデータを生成する
ように構成され、
前記第1ハードビットデータに対応するセンス期間は、前記第1データに対応するセンス期間より長く、前記第2データに対応するセンス期間より短い、
請求項11記載のメモリシステム。
【請求項18】
前記不揮発性メモリは、前記第1動作において、
第2電圧を用いた第2読み出し処理、及び第3電圧を用いた第3読み出し処理に基づいて、前記第2ハードビットデータ、第3データ、及び第4データを前記複数のメモリセルから読み出し、
前記第2ハードビットデータ及び前記第3データに基づいて前記第3部分ソフトビットデータを生成し、
前記第2ハードビットデータ及び前記第4データに基づいて前記第4部分ソフトビットデータを生成する
ように構成され、
前記第2ハードビットデータに対応するセンス期間は、前記第3データに対応するセンス期間より長く、前記第4データに対応するセンス期間より短い、
請求項17記載のメモリシステム。
【請求項19】
前記不揮発性メモリは、前記第1読み出し処理を、前記第2読み出し処理と前記第3読み出し処理との間で実行するように構成された、
請求項18記載のメモリシステム。
【請求項20】
前記不揮発性メモリは、前記第2読み出し処理及び前記第3読み出し処理を、前記第1読み出し処理に対して連続して実行するように構成された、
請求項18記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、不揮発性メモリ及びメモリシステムに関する。
【背景技術】
【0002】
不揮発性メモリとしてのNANDフラッシュメモリと、不揮発性メモリを制御するメモリコントローラと、を含むメモリシステムが知られている。メモリコントローラは、不揮発性メモリから読み出されるデータに含まれるエラーを訂正する機能を有する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2022/0116053号明細書
【特許文献2】米国特許出願公開第2022/0129163号明細書
【特許文献3】米国特許第10474525号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
不揮発性メモリからメモリコントローラに出力されるデータ量の増加を抑制する。
【課題を解決するための手段】
【0005】
実施形態の不揮発性メモリは、各々が第1ビット及び第2ビットを記憶するように構成された複数のメモリセルと、制御回路と、を備える。上記制御回路は、各々が上記第1ビットに対応する第1ハードビットデータ、第1部分ソフトビットデータ、及び第2部分ソフトビットデータを上記複数のメモリセルから読み出し、各々が上記第2ビットに対応する第2ハードビットデータ、第3部分ソフトビットデータ、及び第4部分ソフトビットデータを上記複数のメモリセルから読み出し、上記第1部分ソフトビットデータ及び上記第3部分ソフトビットデータの論理和演算に基づいて第1圧縮ソフトビットデータを生成し、上記第2部分ソフトビットデータ及び上記第4部分ソフトビットデータの論理和演算に基づいて第2圧縮ソフトビットデータを生成し、上記第1ハードビットデータ、上記第2ハードビットデータ、上記第1圧縮ソフトビットデータ、及び上記第2圧縮ソフトビットデータを外部のメモリコントローラに送信するように構成される。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係る情報処理システムの構成の一例を示すブロック図。
【
図2】第1実施形態に係る不揮発性メモリの構成の一例を示すブロック図。
【
図3】第1実施形態に係る不揮発性メモリの構成の一例を示す回路図。
【
図4】第1実施形態に係る複数のメモリセルトランジスタの閾値電圧分布と記憶されるデータの一例を示す図。
【
図5】第1実施形態に係るセンスアンプモジュールの構成の一例を示すブロック図。
【
図6】第1実施形態に係るセンス回路の構成の一例を示す回路図。
【
図7】第1実施形態に係るECC回路の構成の一例を示すブロック図。
【
図8】第1実施形態に係るSB復元回路の構成の一例を示すブロック図。
【
図9】第1実施形態に係るメモリシステムにおけるハードビット及びソフトビットの定義の一例を示す図。
【
図10】第1実施形態に係るメモリシステムにおける部分ソフトビットデータ、圧縮ソフトビットデータ、及びソフトビットデータの関係の一例を示す図。
【
図11】第1実施形態に係るメモリシステムにおける軟判定復号処理を含む一連の処理の一例を示すフローチャート。
【
図12】第1実施形態に係るメモリシステムにおける軟判定復号処理を含む一連の処理の一例を示すコマンドシーケンス。
【
図13】第1実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図14】第1実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図15】第1実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図16】第2実施形態に係るメモリシステムにおける軟判定復号処理を含む一連の処理の一例を示すコマンドシーケンス。
【
図17】第2実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図18】第2実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図19】第2実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図20】第2実施形態に係る不揮発性メモリにおける演算処理の一例を示す図。
【
図21】変形例に係るSB復元回路の構成の一例を示すブロック図。
【
図22】変形例に係るメモリシステムにおける部分ソフトビットデータ、圧縮ソフトビットデータ、及びソフトビットデータの関係の一例を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
【0008】
1.第1実施形態
1.1 構成
1.1.1 情報処理システム
第1実施形態に係る情報処理システムの構成について説明する。
【0009】
図1は、第1実施形態に係る情報処理システムの構成の一例を示すブロック図である。
図1に示すように、情報処理システム1は、ホスト2及びメモリシステム3を含む。
【0010】
ホスト2は、メモリシステム3を使用してデータを処理するデータ処理装置である。ホスト2は、例えば、パーソナルコンピュータ又はデータセンタ内のサーバである。
【0011】
メモリシステム3は、ホスト2に接続されるように構成された記憶装置である。メモリシステム3は、例えば、SDTMカードのようなメモリカード、UFS(Universal Flash Storage)、又はSSD(Solid State Drive)である。メモリシステム3は、ホスト2からの要求に応じてデータの書き込み処理、読み出し処理、消去処理を実行する。メモリシステム3は、内部処理として書き込み処理、読み出し処理、及び消去処理を実行してもよい。内部処理とは、ホスト2からの要求に依ることなくメモリシステム3内で実行される処理である。
【0012】
1.1.2 メモリシステム
第1実施形態に係るメモリシステムの内部構成について説明する。
【0013】
メモリシステム3は、不揮発性メモリ10及びメモリコントローラ20を含む。
【0014】
不揮発性メモリ10は、例えば、NANDフラッシュメモリである。不揮発性メモリ10は、不揮発にデータを記憶する。
【0015】
メモリコントローラ20は、例えばSoC(system-on-a-chip)のような集積回路で構成される。メモリコントローラ20は、ホスト2からの要求に基づいて、不揮発性メモリ10を制御する。
【0016】
具体的には、例えば、メモリコントローラ20は、ホスト2からの書き込み要求に基づいて、書き込みデータを不揮発性メモリ10に書き込む。また、メモリコントローラ20は、ホスト2からの読み出し要求に基づいて、読み出しデータを不揮発性メモリ10から読み出す。そして、メモリコントローラ20は、読み出しデータに基づくデータをホスト2に送信する。
【0017】
1.1.3 メモリコントローラ
次に、引き続き
図1を参照して、メモリコントローラ20の内部構成について説明する。メモリコントローラ20は、制御回路21、バッファメモリ22、ホストインタフェース回路23(ホストI/F)、メモリインタフェース回路24(メモリI/F)、及びECC回路25を含む。以下に説明されるメモリコントローラ20の機能は、ハードウェア構成、又はハードウェア資源とファームウェアとの組合せ構成のいずれでも実現可能である。
【0018】
制御回路21は、メモリコントローラ20の全体を制御する回路である。制御回路21は、例えば、CPU(central processing unit)のようなプロセッサ、及びROM(read only memory)を含む。
【0019】
バッファメモリ22は、例えば、SRAM(static random access memory)である。バッファメモリ22は、ホスト2と不揮発性メモリ10との間でデータをバッファリングする。例えば、バッファメモリ22は、書き込みデータ、及び読み出しデータを一時的に記憶する。
【0020】
ホストインタフェース回路23は、メモリコントローラ20とホスト2との間の通信を司る。ホストインタフェース回路23は、ホストバスを介してホスト2と接続される。ホストバスは、例えば、SDTMインタフェース、SAS(serial attached SCSI(small computer system interface))、SATA(serial ATA(advanced technology attachment))、又はPCIeTM(peripheral component interconnect express)に準拠したバスである。
【0021】
メモリインタフェース回路24は、不揮発性メモリ10とメモリコントローラ20との間の通信を司る。メモリインタフェース回路24は、メモリバスBUSを介して不揮発性メモリ10と接続される。メモリバスBUSは、例えば、SDR(single data rate)インタフェース、トグルDDR(double data rate)インタフェース、又はONFI(Open NAND flash interface)に準拠したバスである。
【0022】
ECC回路25は、不揮発性メモリ10に記憶されるデータに関する誤り検出処理及び誤り訂正処理を行う。すなわちデータの書き込み処理時には、ECC回路25は、書き込みデータに誤り訂正符号を付与する。符号化方式は、BCH(Bose-Chaudhuri-Hocquenghem)符号、RS(Reed-Solomon)符号、LDPC(Low-Density Parity-Check)符号等が挙げられる。また、データの読み出し処理時には、ECC回路25は、読み出しデータを復号し、エラービットの有無を検出する。そしてエラービットが検出された際には、ECC回路25は、エラービットのカラムアドレス(エラー位置)を特定し、誤り訂正する。ECC回路25の構成については後述する。
【0023】
1.1.4 不揮発性メモリ
次に、第1実施形態に係る不揮発性メモリの内部構成について説明する。
図2は、第1実施形態に係る不揮発性メモリの構成の一例を示すブロック図である。
【0024】
不揮発性メモリ10は、入出力回路11、ロジック制御回路12、レジスタ13、シーケンサ14、電圧生成回路15、ドライバセット16、メモリセルアレイ17、ロウデコーダ18、及びセンスアンプモジュール19を備える。
【0025】
入出力回路11及びロジック制御回路12は、メモリコントローラ20との間で、メモリバスBUSを介して各種信号を送受信する。入出力回路11が送受信する信号は、例えば、信号DQ<0>、DQ<1>、…、及びDQ<7>(信号DQ<7:0>)、並びにDQS及びDQSnを含む。ロジック制御回路12が送受信する信号は、例えば、信号CEn、CLE、ALE、WEn、RE及びREn、WPn、並びにRBnを含む。本明細書において、信号の名称の末尾のnは、その信号が“L(Low)”レベルの場合にアサートされることを意味する。
【0026】
信号DQ<7:0>は、8ビットの信号である。信号DQ<7:0>は、不揮発性メモリ10とメモリコントローラ20との間で送受信されるデータDATの実体である。以下では、メモリコントローラ20から不揮発性メモリ10に送信される信号DQ<7:0>は、入力信号DQ<7:0>と呼ぶ。不揮発性メモリ10からメモリコントローラ20に送信される信号DQ<7:0>は、出力信号DQ<7:0>と呼ぶ。入力信号DQ<7:0>には、例えば、書き込みデータDAT、アドレスADD、及びコマンドCMDが含まれる。出力信号DQ<7:0>には、例えば、読み出しデータDAT、及びステータスSTSが含まれる。
【0027】
信号DQS及びDQSnは、ストローブ信号である。信号DQSnは、信号DQSの反転信号である。
【0028】
信号CEnは、不揮発性メモリ10をイネーブルにするための信号である。
【0029】
信号CLE及びALEは、入力信号DQ<7:0>がそれぞれコマンドCMD及びアドレスADDであることを不揮発性メモリ10に通知する信号である。
【0030】
信号WEnは、入力信号DQ<7:0>を不揮発性メモリ10に取り込ませるための信号である。
【0031】
信号RE及びREnは、不揮発性メモリ10から出力信号DQ<7:0>を読み出すための信号である。
【0032】
信号WPnは、書き込み処理及び消去動作の禁止を不揮発性メモリ10に指示するための信号である。
【0033】
信号RBnは、不揮発性メモリ10がレディ状態であるか、それともビジー状態であるかを示す信号である。レディ状態は、不揮発性メモリ10がメモリコントローラ20からの命令を受信出来る状態である。ビジー状態は、不揮発性メモリ10がメモリコントローラ20からの命令を受信出来ない状態である。信号RBnは、“L”レベルがビジー状態を示す。
【0034】
入出力回路11は、入力信号DQ<7:0>内のアドレスADD及びコマンドCMD、並びに書き込みデータDATを、それぞれレジスタ13及びセンスアンプモジュール19に送信する。入出力回路11は、出力信号DQ<7:0>内のステータスSTS、及び読み出しデータDATを、それぞれレジスタ13及びセンスアンプモジュール19から受信する。
【0035】
ロジック制御回路12は、メモリコントローラ20から信号CEn、CLE、ALE、WEn、RE及びREn、並びにWPnを受信する。ロジック制御回路12は、信号RBnをメモリコントローラ20に送信する。
【0036】
レジスタ13は、アドレスADD、コマンドCMD、及びステータスSTSを記憶する。アドレスADDは、例えば、カラムアドレス、ブロックアドレス、及びページアドレスを含む。
【0037】
シーケンサ14は、レジスタ13に記憶されたコマンドCMDに基づき、不揮発性メモリ10全体の動作を制御する。
【0038】
電圧生成回路15は、書き込み処理、読み出し処理、及び消去動作等で使用される電圧を生成する。
【0039】
ドライバセット16は、電圧生成回路15によって生成された電圧を、メモリセルアレイ17、ロウデコーダ18、及びセンスアンプモジュール19に供給する。
【0040】
メモリセルアレイ17は、複数のブロックBLK、複数のビット線、及び複数のワード線を含む。
図2の例では、メモリセルアレイ17が4個のブロックBLK0、BLK1、BLK2、及びBLK3を含む場合が示される。ブロックBLKは、例えば、消去動作におけるデータDATの消去単位である。各ブロックBLKは、複数のメモリセルトランジスタを含む。各メモリセルトランジスタは、ビット線及びワード線の組に関連付けられる。
【0041】
ロウデコーダ18は、レジスタ13内のブロックアドレスに基づいて、ブロックBLK0~BLK3のいずれかを選択する。ロウデコーダ18は、レジスタ13内のページアドレスに基づいて、選択されたブロックBLKにおけるワード線を更に選択する。
【0042】
センスアンプモジュール19は、レジスタ13内のカラムアドレスに基づいて、ビット線を選択する。センスアンプモジュール19は、書き込み処理において、選択されたビット線を介して、書き込みデータDATをメモリセルアレイ17に転送する。センスアンプモジュール19は、読み出し処理において、選択されたビット線を介して、メモリセルトランジスタの閾値電圧をセンスする。そして、センスアンプモジュール19は、センス結果に基づいて、読み出しデータDATを生成する。
【0043】
1.1.5 メモリセルアレイ
次に、第1実施形態に係るメモリセルアレイの構成について説明する。
図3は、第1実施形態に係るメモリセルアレイの回路構成の一例を示す回路図である。
図3では、メモリセルアレイ17に含まれる複数のブロックBLKのうちの1個のブロックBLKが示される。
図3に示すように、ブロックBLKは、例えば4個のストリングユニットSU0~SU3を含む。
【0044】
各ストリングユニットSUは、ビット線BL0~BLn(nは2以上の整数)にそれぞれ関連付けられた複数のNANDストリングNSを含む。各NANDストリングNSは、例えばメモリセルトランジスタMT0~MT7、並びに選択トランジスタST1及びST2を含む。各メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を含む。各メモリセルトランジスタMTは、データを不揮発に記憶する。選択トランジスタST1及びST2のそれぞれは、各種動作時におけるストリングユニットSUの選択に使用される。
【0045】
各NANDストリングNSにおいて、メモリセルトランジスタMT0~MT8は、直列接続される。選択トランジスタST1のドレインは、関連付けられたビット線BLに接続され、選択トランジスタST1のソースは、直列接続されたメモリセルトランジスタMT0~MT8の一端に接続される。選択トランジスタST2のドレインは、直列接続されたメモリセルトランジスタMT0~MT7の他端に接続される。選択トランジスタST2のソースは、ソース線SLに接続される。
【0046】
同一のブロックBLKにおいて、メモリセルトランジスタMT0~MT7の制御ゲートは、それぞれワード線WL0~WL7に接続される。ストリングユニットSU0~SU3内の選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0~SGD3に接続される。複数の選択トランジスタST2のゲートは、選択ゲート線SGSに接続される。
【0047】
ビット線BL0~BLnには、それぞれ異なるカラムアドレスが割り当てられる。各ビット線BLは、複数のブロックBLK間で同一のカラムアドレスが割り当てられたNANDストリングNSによって共有される。ワード線WL0~WL7のそれぞれは、ブロックBLK毎に設けられる。ソース線SLは、例えば複数のブロックBLK間で共有される。
【0048】
1個のストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合は、例えばセルユニットCUと呼ばれる。例えば、それぞれが1ビットデータを記憶するメモリセルトランジスタMTを含むセルユニットCUの記憶容量が、「1ページデータ」として定義される。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて、2ページデータ以上の記憶容量を有し得る。
【0049】
なお、実施形態に係る不揮発性メモリ10が備えるメモリセルアレイ17の回路構成は、以上で説明した構成に限定されない。例えば、各ブロックBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタST1及びST2の個数は、それぞれ任意の個数に設計され得る。
【0050】
以下では、1個のメモリセルトランジスタMTが3ビットデータを記憶することができる場合について説明する。メモリセルトランジスタMTに3ビットのデータを記憶させる書き込みモードは、TLC(Triple Level Cell)モードとも呼ばれる。TLCモードによって書き込まれたメモリセルトランジスタが記憶する3ビットデータを、下位ビットから順に下位(Lower)ビット、中位ビット(Middle)、及び上位(Upper)ビットと呼ぶ。また、同一のセルユニットCUに含まれるメモリセルトランジスタMTの記憶する下位ビットの集合、中位ビットの集合、及び上位ビットの集合を、ぞれぞれ“下位ページ”、“中位ページ”、及び“上位ページ”と呼ぶ。
【0051】
図4は、第1実施形態に係る複数のメモリセルトランジスタの閾値電圧分布と記憶されるデータの一例を示す図である。メモリセルトランジスタMTが3ビットのデータを記憶する場合、その閾値電圧の分布は8個に分けられる。この8個の閾値電圧分布を、閾値電圧が低いものから順に“S0”状態(ステート)、“S1”状態、“S2”状態、“S3”状態、“S4”状態、“S5”状態、“S6”状態、及び“S7”状態と呼ぶ。
【0052】
また、
図4に示す電圧V1、V2、V3、V4、V5、V6、及びV7はそれぞれ、読み出し処理の際に隣り合う2個の状態を区別するために用いられる。電圧VREADは、読み出し処理時において非選択ワード線に印加される電圧である。メモリセルトランジスタMTは、ゲートに電圧VREADが印加されると記憶するデータに依らずにオン状態になる。これらの電圧値の関係は、V1<V2<V3<V4<V5<V6<V7<VREADである。
【0053】
上述した閾値電圧分布のうち“S0”状態は、メモリセルトランジスタMTの消去状態に相当する。“S0”状態における閾値電圧は、電圧V1未満である。“S1”状態における閾値電圧は、電圧V1以上且つ電圧V2未満である。“S2”状態における閾値電圧は、電圧V2以上且つ電圧V3未満である。“S3”状態における閾値電圧は、電圧V3以上且つ電圧V4未満である。“S4”状態における閾値電圧は、電圧V4以上且つ電圧V5未満である。“S5”状態における閾値電圧は、電圧V5以上且つ電圧V6未満である。“S6”状態における閾値電圧は、電圧V6以上且つ電圧V7未満である。“S7”状態における閾値電圧は、電圧V7以上且つ電圧VREAD未満である。
【0054】
上述した8個の閾値電圧分布は、下位ビット、中位ビット、及び上位ビットを含む3ビット(3ページ)データを書き込むことで形成される。そして8個の閾値電圧分布が、それぞれ異なる3ビットのデータに対応する。以下では、各状態に含まれるメモリセルトランジスタMTに対して、“上位ビット/中位ビット/下位ビット”に以下に示すようにデータを割り付けるものとする。
【0055】
“S0”状態に含まれるメモリセルトランジスタMTは、“111”データを記憶する。“S1”状態に含まれるメモリセルトランジスタMTは、“011”データを記憶する。“S2”状態に含まれるメモリセルトランジスタMTは、“001”データを記憶する。“S3”状態に含まれるメモリセルトランジスタMTは、“000”データを記憶する。“S4”状態に含まれるメモリセルトランジスタMTは、“010”データを記憶する。“S5”状態に含まれるメモリセルトランジスタMTは、“110”データを記憶する。“S6”状態に含まれるメモリセルトランジスタMTは、“100”データを記憶する。“S7”状態に含まれるメモリセルトランジスタMTは、“101”データを記憶する。なお、上述したデータの割り付け(コーディング)は一例であり、他のコーディングが適用されてもよい。
【0056】
下位ページの読み出し処理は、読み出し処理R1及びR5を含む。読み出し処理R1には、“S0”状態と“S1”状態とを区別する電圧V1が読み出し電圧として用いられる。読み出し処理R5には、“S4”状態と“S5”状態とを区別する電圧V5が読み出し電圧として用いられる。
【0057】
中位ページの読み出し処理は、読み出し処理R2、R4、及びR6を含む。読み出し処理R2には、“S1”状態と“S2”状態とを区別する電圧V2が読み出し電圧として用られる。読み出し処理R4には、“S3”状態と“S4”状態とを区別する電圧V4が読み出し電圧として用られる。読み出し処理R6には、“S5”状態と“S6”状態とを区別する電圧V6が読み出し電圧として用られる。
【0058】
上位ページの読み出し処理は、読み出し処理R3及びR7を含む。読み出し処理R3には、“S2”状態と“S3”状態とを区別する電圧V3が読み出し電圧として用いられる。読み出し処理R7には、“S6”状態と“S7”状態とを区別する電圧V7が読み出し電圧として用いられる。
【0059】
1.1.6 センスアンプモジュール
次に、第1実施形態に係るセンスアンプモジュールの構成について説明する。
図5は、第1実施形態に係るセンスアンプモジュールの一例を示すブロック図である。
図5に示されるように、センスアンプモジュール19は、センスアンプ19-1、データレジスタ19-2、及びカラムデコーダ19-3を含む。
【0060】
センスアンプ19-1は、ビット線BL毎に設けられた複数のセンスアンプユニットSAUを含む。そして、データレジスタ19-2は、センスアンプユニットSAU毎に設けられた複数のラッチ回路XDLを含む。
【0061】
センスアンプユニットSAUは、例えば、センス回路SA、演算部OP、ラッチ回路SDL、ADL、BDL、CDL、及びTDLを含む。センス回路SA、並びにラッチ回路SDL、ADL、BDL、CDL、及びTDLは、バスLBUSを介して、対応するラッチ回路XDLに共通に接続されている。換言すれば、ラッチ回路XDL、センス回路SA、並びにラッチ回路SDL、ADL、BDL、CDL、及びTDLは、バスLBUSを介して互いにデータを送受信可能なように接続されている。
【0062】
センス回路SAは、読み出し処理時には、対応するビット線BLを介してメモリセルトランジスタMTの閾値電圧をセンスすることにより、当該メモリセルトランジスタMTに記憶されるデータが“0”であるか“1”であるかを判定する。センス回路SAは、書き込み処理時には、書き込みデータに基づいてビット線BLに電圧を印加する。
【0063】
演算部OPは、ラッチ回路XDL、SDL、ADL、BDL、CDL、及びTDLに記憶されたデータを用いて各種論理演算を行う。なお、センスアンプ19-1は、演算部OPの代わりに各種論理演算を行う演算回路を別に含んでいてもよい。
【0064】
ラッチ回路SDL、ADL、BDL、CDL、及びTDLは、読み出しデータDAT又は書き込みデータDATを一時的に記憶する。例えば、読み出し処理の場合、読み出しデータDATが、ラッチ回路SDL、ADL、BDL、CDL、及びTDLのいずれかに記憶される。また、例えば、書き込み処理の場合、ラッチ回路XDLの書き込みデータDATが、ラッチ回路SDL、ADL、BDL、CDL、及びTDLのいずれかに記憶される。
【0065】
ラッチ回路XDLは、センスアンプユニットSAUとカラムデコーダ19-3との間のキャッシュメモリとして使用される。より具体的には、カラムデコーダ19-3から受信した書き込みデータDATは、ラッチ回路XDLを介してラッチ回路SDL、ADL、BDL、CDL、及びTDL、あるいはセンス回路SAに送信される。また、ラッチ回路SDL、ADL、BDL、CDL、及びTDL、あるいはセンス回路SAに記憶されている読み出しデータDATは、ラッチ回路XDLを介してカラムデコーダ19-3に送信される。
【0066】
カラムデコーダ19-3は、複数のバスXBUSを介して、対応する複数のラッチ回路XDLと接続される。カラムデコーダ19-3は、書き込み処理時には、入出力回路11から書き込みデータDATを受信する。そして、カラムデコーダ19-3は、カラムアドレスに対応するラッチ回路XDLに書き込みデータDATを送信する。また、カラムデコーダ19-3は、読み出し処理時には、カラムアドレスに対応するラッチ回路XDLから読み出しデータDATを受信する。そして、カラムデコーダ19-3は、入出力回路11に読み出しデータDATを送信する。
【0067】
1.1.7 センス回路
次に、第1実施形態に係るセンス回路の構成について説明する。
図6は、第1実施形態に係るセンス回路の一例を示す回路図である。
図6に示されるように、センス回路は、9個のトランジスタT1~T8、並びにキャパシタCPを含む。トランジスタT0は、P型のMOSトランジスタである。トランジスタT1~T8は、N型のMOSトランジスタである。トランジスタT8は、トランジスタT1~T7よりも高耐圧なN型のMOSトランジスタである。
【0068】
トランジスタT0の第1端には、電源電圧VDDが供給される。トランジスタT0の第2端は、ノードND1に接続される。トランジスタT0の制御端には、ノードSINVに接続される。
【0069】
トランジスタT1の第1端は、ノードND1に接続される。トランジスタT1の第2端は、ノードND2に接続される。トランジスタT1の制御端は、ノードBLXに接続される。
【0070】
トランジスタT2の第1端は、ノードND1に接続される。トランジスタT2の第2端は、ノードSENに接続される。トランジスタT2の制御端は、ノードHLLに接続される。
【0071】
トランジスタT3の第1端は、ノードSENに接続される。トランジスタT3の第2端は、ノードND2に接続される。トランジスタT3の制御端は、ノードXXLに接続される。
【0072】
トランジスタT4の第1端は、ノードND2に接続される。トランジスタT4の第2端は、トランジスタT8の第1端に接続される。トランジスタT8の第2端は、ビット線BLに接続される。トランジスタT4の制御端は、ノードBLCに接続される。トランジスタT8の制御端は、ノードBLSに接続される。
【0073】
トランジスタT5の第1端は、ノードND2に接続される。トランジスタT5の第2端は、ノードSRCに接続される。トランジスタT5の制御端は、ノードSINVに接続される。
【0074】
トランジスタT6の第1端は、接地される。トランジスタT6の第2端は、トランジスタT7の第1端に接続される。トランジスタT7の第2端は、バスLBUSに接続される。トランジスタT6の制御端は、ノードSENに接続される。トランジスタT7の制御端は、ノードSTBに接続される。
【0075】
キャパシタCPの第1端は、ノードSENに接続される。キャパシタのCPの第2端には、クロック信号CLKが供給される。
【0076】
以上のような構成により、センス回路SAは、読み出し処理時に、メモリセルトランジスタMTに記憶されるデータを、ノードSENの電圧に基づいて判定することができる。判定の結果、ノードSENに読み出されたデータは、バスLBUSを介してラッチ回路SDL等に転送される。
【0077】
1.1.8 ECC回路
次に、ECC回路25の構成について説明する。
図7は、第1実施形態に係るECC回路の構成の一例を示すブロック図である。ECC回路25は、符号化回路31、硬判定復号回路32、軟判定復号回路33、及びSB復元回路34を含む。
【0078】
符号化回路31は、データの符号化処理を行う回路である。符号化処理において、符号化回路31は、誤り訂正符号を生成し、書き込みデータに付与する。
【0079】
硬判定復号回路32は、硬判定復号処理を行う回路である。硬判定復号処理は、不揮発性メモリ10から読み出される読み出しデータのうち、複数ページのハードビットデータを用いて行う誤り検出処理及び誤り訂正処理である。ハードビットデータについては、後述する。
【0080】
軟判定復号回路33は、軟判定復号処理を行う回路である。軟判定復号処理は、不揮発性メモリ10から読み出される読み出しデータのうち、複数ページのハードビットデータ及びソフトビットデータを用いて行う誤り検出処理及び誤り訂正処理である。ソフトビットデータについては、後述する。軟判定復号処理に際して、軟判定復号回路33は、対数尤度比(LLR:Log-Likelihood Ratio)テーブルを用いる。LLRテーブルは、ソフトビットデータと対数尤度比との対応関係を示すテーブルである。LLRテーブルは、対数尤度比値(LLR値)を含む。LLR値は、データが“0”である時の尤度と“1”である時の尤度とを対数比で表現した情報である。LLR値は、ある読み出し電圧により読み出されたデータの信頼度(尤もらしさ)を示す。
【0081】
SB復元回路34は、ソフトビットデータを復元する回路である。本実施形態に係る不揮発性メモリ10は、軟判定復号処理に際して、メモリコントローラ20に2ページの圧縮ソフトビットデータを送信する。2ページ分の圧縮ソフトビットデータには、複数ページ分のソフトビットデータが圧縮されている。圧縮ソフトビットデータについては後述する。SB復元回路34は、複数ページのハードビットデータと2ページの圧縮ソフトビットデータとを用いて、複数のソフトビットデータを復元する。
【0082】
具体的には、或るセルユニットCUにTLCモードで書き込まれたデータに対して軟判定復号処理を行う場合、不揮発性メモリ10は、当該セルユニットCUから複数回の読み出し処理を実行する。これにより、不揮発性メモリ10は、3ページのハードビットデータと、2ページの圧縮ソフトビットデータを生成する。SB復元回路34は、不揮発性メモリ10によって生成された3ページのハードビットデータ及び2ページの圧縮ソフトビットデータから、3ページのソフトビットデータを復元する。
【0083】
図8は、第1実施形態に係るSB復元回路の構成の一例を示すブロック図である。
図8では、TLCモードで書き込まれたデータに対する軟判定復号処理に対応するSB復元回路34の例が示される。
図8に示されるように、SB復元回路34は、デマルチプレクサ(DEMUX:De-Multiplexer)41、5個のバッファ42~46、及びSBデコーダ47を含む。
【0084】
DEMUX41は、接続回路である。DEMUX41は、制御回路21からの切替信号に基づいて、入力端子と、バッファ42~46にそれぞれ接続された4個の出力端子のいずれかと、を電気的に接続する。
【0085】
バッファ42は、下位ページに対応するハードビットデータHB_Lを一時的に記憶するバッファである。バッファ42は、DEMUX41から、ハードビットデータHB_Lを受信する。バッファ42は、例えば、mビット(mはn以下の整数)のデータ長のハードビットデータHB_Lを記憶する。なお、バッファ42が記憶可能なデータ長は、一括して誤り検出処理及び誤り訂正処理されるデータ長(ECCフレーム)と同じであってもよいし、異なっていてもよい。
【0086】
バッファ43は、中位ページに対応するハードビットデータHB_Mを一時的に記憶するバッファである。バッファ43は、DEMUX41から、ハードビットデータHB_Mを受信する。例えば、バッファ43は、バッファ42と同様に、mビットのデータ長のハードビットデータHB_Mを記憶する。
【0087】
バッファ44は、上位ページに対応するハードビットデータHB_Uを一時的に記憶するバッファである。バッファ44は、DEMUX41から、ハードビットデータHB_Uを受信する。例えば、バッファ44は、バッファ42と同様に、mビットのデータ長のハードビットデータHB_Uを記憶する。
【0088】
バッファ45は、2ページの圧縮ソフトビットデータSBのうちの1ページの圧縮ソフトビットデータSB-ORを一時的に記憶するバッファである。バッファ45は、DEMUX41から、圧縮ソフトビットデータSB-ORを受信する。例えば、バッファ45は、バッファ42と同様に、例えば、mビットのデータ長の圧縮ソフトビットデータSB-ORを記憶する。圧縮ソフトビットデータSB-ORの詳細については、後述する。
【0089】
バッファ46は、2ページの圧縮ソフトビットデータSBのうちの1ページの圧縮ソフトビットデータSB+ORを一時的に記憶するバッファである。バッファ46は、DEMUX41から、圧縮ソフトビットデータSB+ORを受信する。例えば、バッファ46は、バッファ42と同様に、例えば、mビットのデータ長の圧縮ソフトビットデータSB+ORを記憶する。圧縮ソフトビットデータSB+ORの詳細については、後述する。
【0090】
SBデコーダ47は、ソフトビットデータSBの復元回路である。SBデコーダ47は、ハードビットデータHB_L、HB_M、及びHB_U、並びに圧縮ソフトビットデータSB-OR及びSB+ORを受信する。SBデコーダ47は、ハードビットデータHB_L、HB_M、及びHB_U、並びに圧縮ソフトビットデータSB-OR及びSB+ORに基づいて、下位ページに対応するソフトビットデータSB_L、中位ページに対応するソフトビットデータSB_M、及び上位ページに対応するソフトビットデータSB_Uを復元する。例えば、SBデコーダ47は、ソフトビットデータSB_L、SB_M、及びSB_Uを軟判定復号回路33に送信する。
【0091】
1.1.9 ハードビットデータ及びソフトビットデータ
次に、ハードビットデータ及びソフトビットデータの定義について説明する。
図9は、第1実施形態に係るハードビットデータ及びソフトビットデータの定義の一例を示す図である。
図9では、“S(k-1)”状態及び“Sk”状態に属するメモリセルトランジスタMTの閾値電圧分布と、ハードビットデータHB及びソフトビットデータSBとの関係が示される(1≦k≦7)。
【0092】
データが書き込まれた直後では、“S(k-1)”状態及び“Sk”状態にそれぞれ対応する2個の閾値電圧分布は、重なり合わない。このため、これら2個の閾値電圧分布の間に設定された読み出し電圧Vkを用いた読み出し処理Rkによって、“S(k-1)”状態に属するメモリセルトランジスタMTと、“Sk”状態に属するメモリセルトランジスタMTとを区別することができる。
【0093】
しかしながら、リードディスターブ及びデータリテンション等の影響により、これら2個の閾値電圧分布は、重なり得る。この場合、閾値電圧が2個の閾値電圧分布が重なる範囲にあるメモリセルトランジスタMTから読み出されるデータは、エラービットとなり得る。より具体的には、例えば、読み出し処理Rkを実行した場合、“S(k-1)”状態として書き込まれたメモリセルトランジスタMTのうち読み出し電圧Vk以上の閾値電圧を有するメモリセルトランジスタMTから読み出されるデータは、“Sk”状態に属すると誤って判定され得る。また、例えば、読み出し処理Rkを実行した場合、“Sk”状態として書き込まれたメモリセルトランジスタMTのうち電圧Vk未満の閾値電圧を有するメモリセルトランジスタMTから読み出されるデータは、“S(k-1)”状態に属すると誤って判定され得る。発生したエラービットの数が、ECC回路25の誤り訂正可能なビット数を超えていれば、データを正しく読み出すことが困難となる。
【0094】
そこで、本実施形態では、読み出し電圧Vkを挟む2個の読み出し電圧Vk-及びVk-を設定する。読み出し電圧Vk-は、読み出し電圧Vkより低い電圧である。読み出し電圧Vk+は、読み出し電圧Vkより高い電圧である。
【0095】
これにより、読み出し処理Rk、読み出し電圧Vk-を用いた読み出し処理Rk-、及び読み出し電圧Vk+を用いた読み出し処理Rk+に基づいて、閾値電圧が電圧Vk-未満のメモリセルトランジスタMTと、閾値電圧がVk-以上Vk+以下のメモリセルトランジスタMTと、閾値電圧が電圧Vk+以上のメモリセルトランジスタMTとを区別することができる。
【0096】
以下では、閾値電圧がVk-以上Vk以下の電圧範囲にあるメモリセルトランジスタMTの状態を“S(k-1)+”状態と呼ぶ。閾値電圧がVk以上Vk+以下の電圧範囲にあるメモリセルトランジスタMTの状態を“Sk-”状態と呼ぶ。そして、“Sk”状態のうち“Sk+”状態及び“Sk-”状態を除く状態を“Sk0”状態は、と呼ぶ。ただし、説明の便宜上、“S0-”状態及び“S7+”状態はそれぞれ“S00”状態及び“S70”状態に含まれるものとする。
【0097】
また、以下では、“S(k-1)”状態と“Sk”状態とを区別するデータを、ハードビットデータと呼ぶ。ハードビットデータHBにおいて、“S(k-1)”状態は“1”で表され、“Sk”状態は“0”で表される。
【0098】
“S(k-1)0”状態と、“S(k-1)+”状態と、“Sk”状態とを区別するデータを、部分ソフトビットデータSB-と呼ぶ。部分ソフトビットデータSB-において、“S(k-1)0”状態及び“Sk”状態は“0”で表され、“S(k-1)+”状態は“1”で表される。部分ソフトビットデータSB-は、例えば、読み出し処理Rkの結果と、読み出し処理Rk-の結果の論理否定と、の論理積によって生成される。
【0099】
“S(k-1)”状態と、“Sk-”状態と、“Sk0”状態とを区別するデータを、部分ソフトビットデータSB+と呼ぶ。部分ソフトビットデータSB+において、“S(k-1)”状態及び“Sk0”状態は“0”で表され、“Sk-”状態は“1”で表される。部分ソフトビットデータSB+は、例えば、読み出し処理Rkの結果の論理否定と、読み出し処理Rk+の結果と、の論理積によって生成される。
【0100】
“S(k-1)0”状態と、“Sk0”状態と、“S(k-1)+”状態及び“Sk-”状態を含む状態と、を区別するデータを、ソフトビットデータSBと呼ぶ。ソフトビットデータSBにおいて、“S(k-1)0”状態及び“Sk0”状態は“0”で表され、“S(k-1)+”状態及び“Sk-”状態を含む状態は“1”で表される。ソフトビットデータSBは、例えば、部分ソフトビットデータSB-と部分ソフトビットデータSB+との論理和によって生成される。
【0101】
図10は、第1実施形態に係るメモリシステムにおける部分ソフトビットデータ、圧縮ソフトビットデータ、及びソフトビットデータの関係の一例を示す図である。
【0102】
不揮発性メモリ10は、上述の定義に基づいて、下位ページに対応するハードビットデータHB_L並びに部分ソフトビットデータSB-_L及びSB+_L、中位ページに対応するハードビットデータHB_M並びに部分ソフトビットデータSB-_M及びSB+_M、並びに上位ページに対応するハードビットデータHB_U並びに部分ソフトビットデータSB-_U及びSB+_Uを生成する。
【0103】
部分ソフトビットデータSB-_Lは、“S0+”状態及び“S4+”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB-_Mは、“S1+”状態、“S3+”状態、及び“S5+”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB-_Uは、“S2+”状態及び“S6+”状態が“1”となり、その他の状態が“0”となる。このように、部分ソフトビットデータSB-_L、SB-_M、及びSB-_Uは、互いに重複しない状態で“1”となる。
【0104】
不揮発性メモリ10は、部分ソフトビットデータSB-_L、SB-_M、及びSB-_Uを論理和演算することにより、圧縮ソフトビットデータSB-ORを生成する。このため、圧縮ソフトビットデータSB-ORは、“S0+”状態、“S1+”状態、“S2+”状態、“S3+”状態、“S4+”状態、“S5+”状態、及び“S6+”状態が“1”となり、その他の状態が“0”となる。
【0105】
また、部分ソフトビットデータSB+_Lは、“S1-”状態及び“S5-”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB+_Mは、“S2-”状態、“S4-”状態、及び“S6-”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB+_Uは、“S3-”状態及び“S7-”状態が“1”となり、その他の状態が“0”となる。このように、部分ソフトビットデータSB+_L、SB+_M、及びSB+_Uは、互いに重複しない状態で“1”となる。
【0106】
不揮発性メモリ10は、部分ソフトビットデータSB+_L、SB+_M、及びSB+_Uを論理和演算することにより、圧縮ソフトビットデータSB+ORを生成する。このため、圧縮ソフトビットデータSB+ORは、“S1-”状態、“S2-”状態、“S3-”状態、“S4-”状態、“S5-”状態、“S6-”状態、及び“S7-”状態が“1”となり、その他の状態が“0”となる。
【0107】
不揮発性メモリ10は、上述の演算処理によって生成された2ページの圧縮ソフトビットデータSB-OR及びSB+ORと、3ページのハードビットデータHB_L、HB_M、及びHB_Uと、をメモリコントローラ20に出力する。
【0108】
SBデコーダ47は、2ページの圧縮ソフトビットデータSB-OR及びSB+ORと、3ページのハードビットデータHB_L、HB_M、及びHB_Uと、に基づき3ページのソフトビットデータSB_L、SB_M、及びSB_Uを生成する。
【0109】
下位ページに対応するソフトビットデータSB_Lは、“S0+”状態、“S1-”状態、“S4+”状態、及び“S5-”状態が“1”となり、その他の状態が“0”となる。SBデコーダ47は、例えば、ソフトビットデータSB_Lを以下の演算によって生成する。
SB_L=(L0|L4)&SB-OR)|(L1|L5)&SB+OR)
L0=HB_L&HB_M&HB_U
L1=~HB_L&HB_M&HB_U
L4=~HB_L&HB_M&~HB_U
L5=HB_L&HB_M&~HB_U
ここで、“&”は論理積記号である。“|”は論理和記号である。“~”は論理否定記号である。
【0110】
中位ページに対応するソフトビットデータSB_Mは、“S1+”状態、“S2-”状態、“S3+”状態、“S4-”状態、“S5+”状態、及び“S6-”状態が“1”となり、その他の状態が“0”となる。SBデコーダ47は、例えば、ソフトビットデータSB_Mを以下の演算によって生成する。
SB_M=(L1|L3|L5)&SB-OR)|(L2|L4|L6)&SB+OR)
L2=~HB_L&~HB_M&HB_U
L3=~HB_L&~HB_M&~HB_U
L6=HB_L&~HB_M&~HB_U
上位ページに対応するソフトビットデータSB_Uは、“S2+”状態、“S3-”状態、“S6+”状態、及び“S7-”状態が“1”となり、その他の状態が“0”となる。SBデコーダ47は、例えば、ソフトビットデータSB_Uを以下の演算によって生成する。
SB_U=(L2|L6)&SB-OR)|(L3|L7)&SB+OR)
L7=HB_L&~HB_M&HB_U
このように、不揮発性メモリ10は、6ページの部分ソフトビットデータSB-_L、SB-_M、SB-_U、SB+_L、SB+_M、及びSB+_Uを2ページの圧縮ソフトビットデータSB-OR及びSB+ORに圧縮する。SBデコーダ47は、3ページのハードビットデータHB_L、HB_M、及びHB_U、並びに2ページの圧縮ソフトビットデータSB-OR及びSB+ORに基づき、3ページのソフトビットデータSB_L、SB_M、及びSB_Uを復元する。
【0111】
1.2 動作
次に、第1実施形態に係るメモリシステムにおける動作について説明する。
【0112】
1.2.1 フローチャート
図11は、第1実施形態に係るメモリシステムにおける軟判定復号処理を含む一連の処理の一例を示すフローチャートである。
【0113】
軟判定復号処理に関する読み出し処理を実行する旨のコマンドを受けると(開始)、不揮発性メモリ10は、対象のセルユニットCUからページデータを読み出す(S11)。
【0114】
不揮発性メモリ10は、S11の処理で読み出されたページデータに基づき演算処理を行う(S12)。
【0115】
不揮発性メモリ10は、S12の処理によってハードビットデータHBが生成されたか否かを判定する(S13)。
【0116】
ハードビットデータHBが生成された場合(S13;yes)、不揮発性メモリ10は、生成されたハードビットデータHBをメモリコントローラ20に出力する(S14)。
【0117】
ハードビットデータHBが生成されなかった場合(S13;no)、又はS14の処理の後、不揮発性メモリ10は、S12の処理によって圧縮ソフトビットデータSB-OR又はSB+ORが生成されたか否かを判定する(S15)。
【0118】
圧縮ソフトビットデータSB-OR又はSB+ORが生成された場合(S15;yes)、不揮発性メモリ10は、生成された圧縮ソフトビットデータSB-OR又はSB+ORをメモリコントローラ20に出力する(S16)。
【0119】
圧縮ソフトビットデータSB-OR又はSB+ORが生成されなかった場合(S15;no)、又はS16の処理の後、不揮発性メモリ10は、全ページ分のハードビットデータHB及び2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORが出力されたか否かを判定する(S17)。
【0120】
出力されていないハードビットデータHB又は圧縮ソフトビットデータSB-OR若しくはSB+ORがある場合(S17;no)、不揮発性メモリ10は、対象のセルユニットCUからページデータを読み出す(S11)。そして、後続するS12~S17の処理が実行される。このように、全ての全ページ分のハードビットデータHB及び2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORが出力されるまで、S11~S17の処理が繰り返される。
【0121】
全ページ分のハードビットデータHB及び2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORが出力された場合(S17;yes)、メモリコントローラ20は、各ページに対応するソフトビットデータSBを復元する(S18)。
【0122】
メモリコントローラ20は、S18の処理で復元された各ページに対応するソフトビットデータSBを用いて、軟判定復号処理を行う(S19)。
【0123】
S19の処理の後、軟判定複合処理を含む一連の処理は終了となる(終了)。
【0124】
1.2.2 コマンドシーケンス
図12は、第1実施形態に係るメモリシステムにおける軟判定復号処理を含む一連の処理の一例を示すコマンドシーケンスである。
図12では、軟判定復号処理を含む一連の処理において不揮発性メモリ10及びメモリコントローラ20間で通信される信号DQ及びRBnと、不揮発性メモリ10内の選択ワード線WLselに印加される電圧とが示される。なお、以下の図では、信号DQに含まれるコマンドCMD、アドレスADD、及びデータはそれぞれ、丸、四角、及び六角形として示される。
【0125】
メモリコントローラ20は、コマンド“XXh”、コマンド“01h”、コマンド“00h”、アドレスADD、及びコマンド“30h”をこの順に不揮発性メモリ10に送信する。コマンド“XXh”は、軟判定復号に関する処理を行う旨を指示するコマンドである。コマンド“01h”は、下位ページに対応する処理を行う旨を指示するコマンドである。コマンド“00h”は、読み出し処理を行う旨を指示するコマンドである。アドレスADDは、読み出し処理の対象となるセルユニットCUを示すアドレス情報である。コマンド“30h”は、読み出し処理の開始を指示するコマンドである。
【0126】
コマンド“30h”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、下位ページに対応する読み出し処理を開始する。具体的には、ロウデコーダ18は、選択ワード線WLselに電圧VREADを印加した後、読み出し電圧V5及びV1をこの順に印加する。ロウデコーダ18は、読み出し電圧V1が印加された後、選択ワード線WLselに電圧VREADを再び印加し、しかる後に電圧VSSを印加する。
【0127】
読み出し電圧V5が印加されている間に、センスアンプモジュール19は、読み出し処理R5、R5-、及びR5+をこの順に行う。センスアンプモジュール19は、例えば、ノードSENを充電してからセンスするまでの期間(センス期間)を調整することにより、読み出し処理R5、R5-、及びR5+を行う。より具体的には、例えば、読み出し処理R5-におけるセンス期間は、読み出し処理R5におけるセンス期間より短い。読み出し処理R5+におけるセンス期間は、読み出し処理R5におけるセンス期間より長い。
【0128】
読み出し電圧V1が印加されている間に、センスアンプモジュール19は、読み出し処理R1、R1-、及びR1+をこの順に行う。例えば、読み出し処理R1-におけるセンス期間は、読み出し処理R1におけるセンス期間より短い。読み出し処理R1+におけるセンス期間は、読み出し処理R1におけるセンス期間より長い。
【0129】
センスアンプモジュール19は、各種読み出し処理によって読み出されたデータに基づいて、演算処理を行う。これにより、ハードビットデータHB_Lが生成される。
【0130】
読み出し処理R1+が終わると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。
【0131】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。コマンド“05h”は、データを出力する旨を指示するコマンドである。アドレスADDは、出力するデータを指定するアドレス情報である。コマンド“E0h”は、データ出力の開始を指示するコマンドである。
【0132】
コマンド“E0h”を受けると、不揮発性メモリ10は、ハードビットデータHB_Lをメモリコントローラ20に出力する。
【0133】
ハードビットデータHB_Lを受けると、メモリコントローラ20は、コマンド“XXh”、コマンド“02h”、コマンド“00h”、アドレスADD、及びコマンド“30h”をこの順に不揮発性メモリ10に送信する。コマンド“02h”は、中位ページに対応する処理を行う旨を指示するコマンドである。
【0134】
コマンド“30h”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、中位ページに対応する読み出し処理を開始する。具体的には、ロウデコーダ18は、選択ワード線WLselに電圧VREADを印加した後、読み出し電圧V6、V4、及びV2をこの順に印加する。ロウデコーダ18は、読み出し電圧V2が印加された後、選択ワード線WLselに電圧VREADを再び印加し、しかる後に電圧VSSを印加する。
【0135】
読み出し電圧V6が印加されている間に、センスアンプモジュール19は、読み出し処理R6、R6-、及びR6+をこの順に行う。例えば、読み出し処理R6-におけるセンス期間は、読み出し処理R6におけるセンス期間より短い。読み出し処理R6+におけるセンス期間は、読み出し処理R6におけるセンス期間より長い。
【0136】
読み出し電圧V4が印加されている間に、センスアンプモジュール19は、読み出し処理R4、R4-、及びR4+をこの順に行う。例えば、読み出し処理R4-におけるセンス期間は、読み出し処理R4におけるセンス期間より短い。読み出し処理R4+におけるセンス期間は、読み出し処理R4におけるセンス期間より長い。
【0137】
読み出し電圧V2が印加されている間に、センスアンプモジュール19は、読み出し処理R2、R2-、及びR2+をこの順に行う。例えば、読み出し処理R2-におけるセンス期間は、読み出し処理R2におけるセンス期間より短い。読み出し処理R2+におけるセンス期間は、読み出し処理R2におけるセンス期間より長い。
【0138】
センスアンプモジュール19は、各種読み出し処理によって読み出されたデータに基づいて、演算処理を行う。これにより、ハードビットデータHB_Mが生成される。
【0139】
読み出し処理R2+が終わると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。
【0140】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0141】
コマンド“E0h”を受けると、不揮発性メモリ10は、ハードビットデータHB_Mをメモリコントローラ20に出力する。
【0142】
ハードビットデータHB_Mを受けると、メモリコントローラ20は、コマンド“XXh”、コマンド“03h”、コマンド“00h”、アドレスADD、及びコマンド“30h”をこの順に不揮発性メモリ10に送信する。コマンド“03h”は、上位ページに対応する処理を行う旨を指示するコマンドである。
【0143】
コマンド“30h”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、上位ページに対応する読み出し処理を開始する。具体的には、ロウデコーダ18は、選択ワード線WLselに電圧VREADを印加した後、読み出し電圧V7、及びV3をこの順に印加する。ロウデコーダ18は、読み出し電圧V3が印加された後、選択ワード線WLselに電圧VREADを再び印加し、しかる後に電圧VSSを印加する。
【0144】
読み出し電圧V7が印加されている間に、センスアンプモジュール19は、読み出し処理R7、R7-、及びR7+をこの順に行う。例えば、読み出し処理R7-におけるセンス期間は、読み出し処理R7におけるセンス期間より短い。読み出し処理R7+におけるセンス期間は、読み出し処理R7におけるセンス期間より長い。
【0145】
読み出し電圧V3が印加されている間に、センスアンプモジュール19は、読み出し処理R3、R3-、及びR3+をこの順に行う。例えば、読み出し処理R3-におけるセンス期間は、読み出し処理R3におけるセンス期間より短い。読み出し処理R3+におけるセンス期間は、読み出し処理R3におけるセンス期間より長い。
【0146】
センスアンプモジュール19は、各種読み出し処理によって読み出されたデータに基づいて、演算処理を行う。これにより、ハードビットデータHB_U、並びに圧縮ソフトビットデータSB-OR及びSB+ORが生成される。このとき、ハードビットデータHB_U、並びに圧縮ソフトビットデータSB-OR及びSB+ORはそれぞれ、ラッチ回路XDL、ADL、及びBDLに記憶される。
【0147】
読み出し処理R3+が終わると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。
【0148】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0149】
コマンド“E0h”を受けると、不揮発性メモリ10は、ハードビットデータHB_Uをメモリコントローラ20に出力する。
【0150】
ハードビットデータHB_Uを受けると、メモリコントローラ20は、コマンド“YYh”、コマンド“00h”、アドレスADD、及びコマンド“3Fh”をこの順に不揮発性メモリ10に送信する。コマンド“YYh”、コマンド“00h”、及びアドレスADDの組は、例えば、ラッチ回路ADLに記憶される圧縮ソフトビットデータSB-ORをラッチ回路XDLに転送する旨を指示する。コマンド“3Fh”は、データ転送の開始を指示するコマンドである。
【0151】
コマンド“3Fh”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、ラッチ回路ADLからラッチ回路XDLへのデータ転送を開始する。データ転送が終了すると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。
【0152】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0153】
コマンド“E0h”を受けると、不揮発性メモリ10は、圧縮ソフトビットデータSB-ORをメモリコントローラ20に出力する。
【0154】
圧縮ソフトビットデータSB-ORを受けると、メモリコントローラ20は、コマンド“ZZh”、コマンド“00h”、アドレスADD、及びコマンド“3Fh”をこの順に不揮発性メモリ10に送信する。コマンド“ZZh”、コマンド“00h”、及びアドレスADDの組は、例えば、ラッチ回路BDLに記憶される圧縮ソフトビットデータSB+ORをラッチ回路XDLに転送する旨を指示する。
【0155】
コマンド“3Fh”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、ラッチ回路BDLからラッチ回路XDLへのデータ転送を開始する。データ転送が終了すると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。
【0156】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0157】
コマンド“E0h”を受けると、不揮発性メモリ10は、圧縮ソフトビットデータSB+ORをメモリコントローラ20に出力する。
【0158】
以上により、軟判定復号処理を含む一連の処理の一例を示すコマンドシーケンスが終了する。
【0159】
1.2.3 演算処理
図13、
図14、及び
図15は、第1実施形態に係る不揮発性メモリにおける演算処理の一例を示す図である。
図13では、ハードビットデータHB_Lが生成され、メモリコントローラ20に出力されるまでの演算処理が示される。
図14では、ハードビットデータHB_Lが出力された後、ハードビットデータHB_Mが生成され、メモリコントローラ20に出力されるまでの演算処理が示される。
図15では、ハードビットデータHB_Mが出力された後、ハードビットデータHB_U、並びに圧縮ソフトビットデータSB
-OR及びSB
+ORが生成され、メモリコントローラ20に出力されるまでの演算処理が示される。
【0160】
図13を参照してハードビットデータHB_Lに関する演算処理について説明する。
【0161】
まず、読み出し処理R5が実行される。これにより、“S5”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDL及びCDLに転送される。
【0162】
続いて、読み出し処理R5-が実行される。これにより、“S4+”状態、及び“S5”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S4+”状態が“1”となり、他の状態が“0”となる。
【0163】
続いて、読み出し処理R5+が実行される。これにより、“S50”状態、“S5+”状態、“S6”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S5-”状態が“1”となり、他の状態が“0”となる。
【0164】
続いて、読み出し処理R1が実行される。これにより、“S1”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL|CDL)を実行し、ラッチ回路CDLに記憶させる。これにより、ラッチ回路CDLには、ハードビットデータHB_Lが記憶される。
【0165】
続いて、読み出し処理R1-が実行される。これにより、“S0+”状態、及び“S1”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S0+”状態、及び“S4+”状態が“1”となり、他の状態が“0”となる。
【0166】
続いて、読み出し処理R1+が実行される。これにより、“S10”状態、“S1+”状態、及び“S2”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S1-”状態、及び“S5-”状態が“1”となり、他の状態が“0”となる。
【0167】
読み出し処理R1+が終了すると、ラッチ回路CDLに記憶されているハードビットデータHB_Lがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、ハードビットデータHB_Lをメモリコントローラ20に出力できる。なお、ラッチ回路ADL及びBDLに記憶されるデータは、圧縮ソフトビットデータSB-OR及びSB+ORを生成するために、後続する処理において維持される。
【0168】
次に、
図14を参照してハードビットデータHB_Mに関する演算処理について説明する。
【0169】
まず、読み出し処理R6が実行される。これにより、“S6”状態及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL)を実行し、ラッチ回路CDLに記憶させる。これにより、ラッチ回路CDLには、“S0”状態~“S5”状態が“1”となるページデータが記憶される。
【0170】
続いて、読み出し処理R6-が実行される。これにより、“S5+”状態、“S6”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S0+”状態、“S4+”状態、及び“S5+”状態が“1”となり、他の状態が“0”となる。
【0171】
続いて、読み出し処理R6+が実行される。これにより、“S60”状態、“S6+”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S1-”状態、“S5-”状態、及び“S6-”状態が“1”となり、他の状態が“0”となる。
【0172】
続いて、読み出し処理R4が実行される。これにより、“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(SDL&CDL)を実行し、ラッチ回路CDLに記憶させる。これにより、ラッチ回路CDLには、“S4”状態及び“S5”状態が“1”となるページデータが記憶される。
【0173】
続いて、読み出し処理R4-が実行される。これにより、“S3+”状態、及び“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S0+”状態、“S3+”状態、“S4+”状態、及び“S5+”状態が“1”となり、他の状態が“0”となる。
【0174】
続いて、読み出し処理R4+が実行される。これにより、“S40”状態、“S4+”状態、及び“S5”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S1-”状態、“S4-”状態、“S5-”状態、及び“S6-”状態が“1”となり、他の状態が“0”となる。
【0175】
続いて、読み出し処理R2が実行される。これにより、“S2”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL&CDL)を実行し、ラッチ回路CDLに記憶させる。これにより、ラッチ回路CDLには、ハードビットデータHB_Mが記憶される。
【0176】
続いて、読み出し処理R2-が実行される。これにより、“S1+”状態、及び“S2”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S0+”状態、“S1+”状態、“S3+”状態、“S4+”状態、及び“S5+”状態が“1”となり、他の状態が“0”となる。
【0177】
続いて、読み出し処理R2+が実行される。これにより、“S20”状態、“S2+”状態、及び“S3”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S1-”状態、“S2-”状態、“S4-”状態、“S5-”状態、及び“S6-”状態が“1”となり、他の状態が“0”となる。
【0178】
読み出し処理R2+が終了すると、ラッチ回路CDLに記憶されているハードビットデータHB_Mがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、ハードビットデータHB_Mをメモリコントローラ20に出力できる。なお、ラッチ回路ADL及びBDLに記憶されるデータは、圧縮ソフトビットデータSB-OR及びSB+ORを生成するために、後続する処理において維持される。
【0179】
次に、
図15を参照してハードビットデータHB_Uに関する演算処理について説明する。
【0180】
まず、読み出し処理R7が実行される。これにより、“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDL及びCDLに転送される。
【0181】
続いて、読み出し処理R7-が実行される。これにより、“S6+”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S0+”状態、“S1+”状態、“S3+”状態、“S4+”状態、“S5+”状態、及び“S6+”状態が“1”となり、他の状態が“0”となる。
【0182】
続いて、読み出し処理R7+が実行される。これにより、“S70”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S1-”状態、“S2-”状態、“S4-”状態、“S5-”状態、“S6-”状態、及び“S7-”状態が“1”となり、他の状態が“0”となる。
【0183】
続いて、読み出し処理R3が実行される。これにより、“S3”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL|CDL)を実行し、ラッチ回路CDLに記憶させる。これにより、ラッチ回路CDLには、ハードビットデータHB_Uが記憶される。
【0184】
続いて、読み出し処理R3-が実行される。これにより、“S2+”状態、及び“S3”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLには、圧縮ソフトビットデータSB-ORが記憶される。
【0185】
続いて、読み出し処理R3+が実行される。これにより、“S30”状態、“S3+”状態、及び“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLには、圧縮ソフトビットデータSB+ORが記憶される。
【0186】
読み出し処理R3+が終了すると、ラッチ回路CDLに記憶されているハードビットデータHB_Uがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、ハードビットデータHB_Uをメモリコントローラ20に出力できる。
【0187】
ハードビットデータHB_Uの出力が終了すると、ラッチ回路ADLに記憶されている圧縮ソフトビットデータSB-ORがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、圧縮ソフトビットデータSB-ORをメモリコントローラ20に出力できる。
【0188】
圧縮ソフトビットデータSB-ORの出力が終了すると、ラッチ回路BDLに記憶されている圧縮ソフトビットデータSB+ORがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、圧縮ソフトビットデータSB+ORをメモリコントローラ20に出力できる。
【0189】
1.3 第1実施形態に係る効果
第1実施形態によれば、不揮発性メモリ10は、ハードビットデータHB_L、HB_M、及びHB_U、並びに部分ソフトビットデータSB-_L、SB+_L、SB-_M、SB+_M、SB-_U、及びSB+_Uを対象のセルユニットCUから読み出す。不揮発性メモリ10は、部分ソフトビットデータSB-_L、SB-_M、及びSB-_Uの論理和演算に基づいて圧縮ソフトビットデータSB-ORを生成する。不揮発性メモリ10は、部分ソフトビットデータSB+_L、SB+_M、及びSB+_Uの論理和演算に基づいて圧縮ソフトビットデータSB+ORを生成する。不揮発性メモリ10は、ハードビットデータHB_L、HB_M、及びHB_U、並びに圧縮ソフトビットデータSB-OR及びSB+ORをメモリコントローラ20に送信する。これにより、軟判定復号処理に際してメモリコントローラ20に送信されるデータのサイズを、3ページ分のハードビットデータ、及び2ページ分の圧縮ソフトビットデータとすることができる。このため、ソフトビットデータSB_L、SB_M、及びSB_Uをメモリコントローラ20に直接送信する場合よりも、送信するデータのサイズを1ページ分少なくすることができる。すなわち、3ページ分のソフトビットデータSB_L、SB_M、及びSB_Uを出力する場合よりも、第1実施形態に基づいて2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORを出力する方が、1.5倍のデータ転送速度の向上が見込める。したがって、不揮発性メモリ10からメモリコントローラ20に出力されるデータ量の増加を抑制することができる。
【0190】
また、不揮発性メモリ10は、圧縮ソフトビットデータSB
-OR及びSB
+ORの生成に際して、読み出し処理をページ毎(page by page)に実行する。具体的には、例えば、中位ページに対応する読み出し処理R6、R6
-、及びR6
+、並びにR4、R4
-、及びR4
+は、下位ページに対応する読み出し処理R5、R5
-、及びR5
+に対して連続して実行される。このようなページ毎の読み出し処理を実行する場合、
図13~
図15のような演算処理を行うことで、ハードビットデータHBを出力しつつ、圧縮ソフトビットデータSB
-OR及びSB
+ORを生成することができる。
【0191】
また、SBデコーダ47は、メモリコントローラ20は、ハードビットデータHB_L、HB_M、及びHB_U、並びに圧縮ソフトビットデータSB
-OR及びSB
+ORに対して、
図10を参照して説明した演算処理を実行する。これにより、ソフトビットデータSB_L、SB_M、及びSB_Uを復元することができる。このため、軟判定復号回路33は、軟判定復号処理を実行することができる。
【0192】
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態は、読み出し処理R1~R7を読み出し電圧が高い順にシーケンシャルに実行する点において、第1実施形態と異なる。以下の説明では、第1実施形態と異なる構成及び動作について主に説明する。第1実施形態と同等の構成及び動作については説明を適宜省略する。
【0193】
2.1 コマンドシーケンス
図16は、第2実施形態に係るメモリシステムにおける軟判定復号処理を含む一連の処理の一例を示すコマンドシーケンスである。
図16は、第1実施形態における
図12に対応する。
【0194】
メモリコントローラ20は、コマンド“XXh”、コマンド“50h”、コマンド“01h”、コマンド“00h”、アドレスADD、及びコマンド“30h”をこの順に不揮発性メモリ10に送信する。コマンド“50h”及び“01h”の組は、シーケンシャルに電圧を印加する旨を指示するコマンドである。
【0195】
コマンド“30h”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、シーケンシャルな読み出し処理を開始する。具体的には、ロウデコーダ18は、選択ワード線WLselに電圧VREADを印加した後、読み出し電圧V7、V6、V5、V4、及びV3をこの順に印加する。
【0196】
読み出し電圧V7が印加されている間に、センスアンプモジュール19は、読み出し処理R7、R7-、及びR7+をこの順に行う。読み出し電圧V6が印加されている間に、センスアンプモジュール19は、読み出し処理R6、R6-、及びR6+をこの順に行う。読み出し電圧V5が印加されている間に、センスアンプモジュール19は、読み出し処理R5、R5-、及びR5+をこの順に行う。読み出し電圧V4が印加されている間に、センスアンプモジュール19は、読み出し処理R4、R4-、及びR4+をこの順に行う。読み出し電圧V3が印加されている間に、センスアンプモジュール19は、読み出し処理R3、R3-、及びR3+をこの順に行う。
【0197】
センスアンプモジュール19は、各種読み出し処理によって読み出されたデータに基づいて、演算処理を行う。これにより、ハードビットデータHB_Uが生成される。
【0198】
読み出し処理R3+が終わると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。なお、レディ状態に遷移した後も、選択ワード線WLselには、読み出し電圧V3が引き続き印加されている。
【0199】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0200】
コマンド“E0h”を受けると、不揮発性メモリ10は、ハードビットデータHB_Uをメモリコントローラ20に出力する。
【0201】
ハードビットデータHB_Uを受けると、メモリコントローラ20は、コマンド“XXh”、コマンド“02h”、コマンド“00h”、アドレスADD、及びコマンド“3Ch”をこの順に不揮発性メモリ10に送信する。コマンド“3Ch”は、シーケンシャルな読み出し処理を再開する旨を指示するコマンドである。
【0202】
コマンド“3Ch”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、シーケンシャルな読み出し処理を再開する。具体的には、ロウデコーダ18は、選択ワード線WLselに電圧V2を印加する。
【0203】
読み出し電圧V2が印加されている間に、センスアンプモジュール19は、読み出し処理R2、R2-、及びR2+をこの順に行う。
【0204】
センスアンプモジュール19は、各種読み出し処理によって読み出されたデータに基づいて、演算処理を行う。これにより、ハードビットデータHB_Mが生成される。
【0205】
読み出し処理R2+が終わると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。なお、レディ状態に遷移した後も、選択ワード線WLselには、読み出し電圧V2が引き続き印加されている。
【0206】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0207】
コマンド“E0h”を受けると、不揮発性メモリ10は、ハードビットデータHB_Mをメモリコントローラ20に出力する。
【0208】
ハードビットデータHB_Mを受けると、メモリコントローラ20は、コマンド“XXh”、コマンド“01h”、コマンド“00h”、アドレスADD、及びコマンド“3Ch”をこの順に不揮発性メモリ10に送信する。
【0209】
コマンド“3Ch”を受けると、不揮発性メモリ10は、信号RBnを“H”レベルから“L”レベルにアサートしてビジー状態に遷移すると共に、シーケンシャルな読み出し処理を再開する。具体的には、ロウデコーダ18は、選択ワード線WLselに電圧V1を印加する。
【0210】
読み出し電圧V1が印加されている間に、センスアンプモジュール19は、読み出し処理R1、R1-、及びR1+をこの順に行う。
【0211】
センスアンプモジュール19は、各種読み出し処理によって読み出されたデータに基づいて、演算処理を行う。これにより、ハードビットデータHB_L、並びに圧縮ソフトビットデータSB-OR及びSB+ORが生成される。このとき、ハードビットデータHB_L、並びに圧縮ソフトビットデータSB-OR及びSB+ORはそれぞれ、ラッチ回路XDL、ADL、及びBDLに記憶される。
【0212】
読み出し処理R1+が終わると、不揮発性メモリ10は、信号RBnを“L”レベルから“H”レベルにネゲートしてレディ状態に遷移する。
【0213】
“H”レベルの信号RBnを受けると、メモリコントローラ20は、コマンド“05h”、アドレスADD、及びコマンド“E0h”をこの順に不揮発性メモリ10に送信する。
【0214】
コマンド“E0h”を受けると、不揮発性メモリ10は、ハードビットデータHB_Lをメモリコントローラ20に出力する。
【0215】
ハードビットデータHB_Lを受けると、メモリコントローラ20は、ラッチ回路ADLに記憶される圧縮ソフトビットデータSB-ORをラッチ回路XDLに転送させた後にメモリコントローラ20に出力する。また、メモリコントローラ20は、ラッチ回路BDLに記憶される圧縮ソフトビットデータSB+ORをラッチ回路XDLに転送させた後にメモリコントローラ20に出力する。圧縮ソフトビットデータSB-OR及びSB+ORの転送処理及び出力処理は、第1実施形態と同等であるため、説明を省略する。
【0216】
以上により、軟判定復号処理を含む一連の処理の一例を示すコマンドシーケンスが終了する。
【0217】
2.2 演算処理
図17、
図18、
図19、及び
図20は、第2実施形態に係る不揮発性メモリにおける演算処理の一例を示す図である。
図17及び
図18では、ハードビットデータHB_Uが生成され、メモリコントローラ20に出力されるまでの演算処理が示される。
図19では、ハードビットデータHB_Uが出力された後、ハードビットデータHB_Mが生成され、メモリコントローラ20に出力されるまでの演算処理が示される。
図20では、ハードビットデータHB_Mが出力された後、ハードビットデータHB_L、並びに圧縮ソフトビットデータSB
-OR及びSB
+ORが生成され、メモリコントローラ20に出力されるまでの演算処理が示される。
【0218】
図17及び
図18を参照してハードビットデータHB_Uに関する演算処理について説明する。
【0219】
まず、読み出し処理R7が実行される。これにより、“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDL及びXDLに転送される。
【0220】
続いて、読み出し処理R7-が実行される。これにより、“S6+”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S6+”状態が“1”となり、他の状態が“0”となる。
【0221】
続いて、読み出し処理R7+が実行される。これにより、“S70”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S7-”状態が“1”となり、他の状態が“0”となる。
【0222】
続いて、読み出し処理R6が実行される。これにより、“S6”状態及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL)を実行し、ラッチ回路TDLに記憶させる。これにより、ラッチ回路TDLに記憶されるページデータは、“S0”状態~“S5”状態が“1”となり、他の状態が“0”となる。
【0223】
続いて、読み出し処理R6-が実行される。これにより、“S5+”状態、“S6”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S5+”状態、及び“S6+”状態が“1”となり、他の状態が“0”となる。
【0224】
続いて、読み出し処理R6+が実行される。これにより、“S60”状態、“S6+”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S6-”状態、及び“S7-”状態が“1”となり、他の状態が“0”となる。
【0225】
続いて、読み出し処理R5が実行される。これにより、“S5”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDL及びCDLに転送される。
【0226】
続いて、読み出し処理R5-が実行される。これにより、“S4+”状態、及び“S5”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S4+”状態、“S5+”状態、及び“S6+”状態が“1”となり、他の状態が“0”となる。
【0227】
続いて、読み出し処理R5+が実行される。これにより、“S50”状態、“S5+”状態、“S6”状態、及び“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S5-”状態、“S6-”状態、及び“S7-”状態が“1”となり、他の状態が“0”となる。
【0228】
続いて、読み出し処理R4が実行される。これにより、“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(SDL&TDL)を実行し、ラッチ回路TDLに記憶させる。これにより、ラッチ回路TDLに記憶されるページデータは、“S4”状態及び“S5”状態が“1”となり、他の状態が“0”となる。
【0229】
続いて、読み出し処理R4-が実行される。これにより、“S3+”状態、及び“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S3+”状態、“S4+”状態、“S5+”状態、及び“S6+”状態が“1”となり、他の状態が“0”となる。
【0230】
続いて、読み出し処理R4+が実行される。これにより、“S40”状態、“S4+”状態、及び“S5”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S4-”状態、“S5-”状態、“S6-”状態、及び“S7-”状態が“1”となり、他の状態が“0”となる。
【0231】
続いて、読み出し処理R3が実行される。これにより、“S3”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL|XDL)を実行し、ラッチ回路XDLに記憶させる。これにより、ラッチ回路XDLには、ハードビットデータHB_Uが記憶される。
【0232】
続いて、読み出し処理R3-が実行される。これにより、“S2+”状態、及び“S3”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S2+”状態、“S3+”状態、“S4+”状態、“S5+”状態、及び“S6+”状態が“1”となり、他の状態が“0”となる。
【0233】
続いて、読み出し処理R3+が実行される。これにより、“S30”状態、“S3+”状態、及び“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S3-”状態、“S4-”状態、“S5-”状態、“S6-”状態、及び“S7-”状態が“1”となり、他の状態が“0”となる。
【0234】
読み出し処理R3+が終了すると、不揮発性メモリ10は、ハードビットデータHB_Uをメモリコントローラ20に出力する。なお、ラッチ回路ADL及びBDLに記憶されるデータは、圧縮ソフトビットデータSB-OR及びSB+ORを生成するために、後続する処理において維持される。
【0235】
次に、
図19を参照してハードビットデータHB_Mに関する演算処理について説明する。
【0236】
まず、読み出し処理R2が実行される。これにより、“S2”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL|TDL)を実行し、ラッチ回路TDLに記憶させる。これにより、ラッチ回路TDLには、ハードビットデータHB_Mが記憶される。
【0237】
続いて、読み出し処理R2-が実行される。これにより、“S1+”状態、及び“S2”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLに記憶されるページデータは、“S1+”状態、“S2+”状態、“S3+”状態、“S4+”状態、“S5+”状態、及び“S6+”状態が“1”となり、他の状態が“0”となる。
【0238】
続いて、読み出し処理R2+が実行される。これにより、“S20”状態、“S2+”状態、及び“S4”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLに記憶されるページデータは、“S2-”状態、“S3-”状態、“S4-”状態、“S5-”状態、“S6-”状態、及び“S7-”状態が“1”となり、他の状態が“0”となる。
【0239】
読み出し処理R2+が終了すると、ラッチ回路TDLに記憶されているハードビットデータHB_Mがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、ハードビットデータHB_Mをメモリコントローラ20に出力することができる。なお、ラッチ回路ADL及びBDLに記憶されるデータは、圧縮ソフトビットデータSB-OR及びSB+ORを生成するために、後続する処理において維持される。
【0240】
次に、
図20を参照してハードビットデータHB_Lに関する演算処理について説明する。
【0241】
まず、読み出し処理R1が実行される。これにより、“S1”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。当該ページデータは、ラッチ回路SDLに転送される。演算部OPは、(~SDL|CDL)を実行し、ラッチ回路CDLに記憶させる。これにより、ラッチ回路CDLには、ハードビットデータHB_Lが記憶される。
【0242】
続いて、読み出し処理R1-が実行される。これにより、“S0+”状態、及び“S1”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(SEN&~SDL|ADL)を実行し、ラッチ回路ADLに記憶させる。これにより、ラッチ回路ADLには、圧縮ソフトビットデータSB-ORが記憶される。
【0243】
続いて、読み出し処理R1+が実行される。これにより、“S10”状態、“S1+”状態、及び“S2”状態~“S7”状態が“1”となり、他の状態が“0”となるページデータがノードSENに記憶される。演算部OPは、(~SEN&SDL|BDL)を実行し、ラッチ回路BDLに記憶させる。これにより、ラッチ回路BDLには、圧縮ソフトビットデータSB+ORが記憶される。
【0244】
読み出し処理R1+が終了すると、ラッチ回路CDLに記憶されているハードビットデータHB_Lがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、ハードビットデータHB_Lをメモリコントローラ20に出力できる。
【0245】
ハードビットデータHB_Lの出力が終了すると、ラッチ回路ADLに記憶されている圧縮ソフトビットデータSB-ORがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、圧縮ソフトビットデータSB-ORをメモリコントローラ20に出力できる。
【0246】
圧縮ソフトビットデータSB-ORの出力が終了すると、ラッチ回路BDLに記憶されている圧縮ソフトビットデータSB+ORがラッチ回路XDLに転送される。これにより、不揮発性メモリ10は、圧縮ソフトビットデータSB+ORをメモリコントローラ20に出力できる。
【0247】
2.3 第2実施形態に係る効果
第2実施形態によれば、不揮発性メモリ10は、圧縮ソフトビットデータSB
-OR及びSB
+ORの生成に際して、読み出し処理を読み出し電圧の高い順にシーケンシャルに実行する。具体的には、例えば、下位ページに対応する読み出し処理R5、R5
-、及びR5
+は、中位ページに対応する読み出し処理R6、R6
-、及びR6
+、並びにR4、R4
-、及びR4
+間で実行される。このようなシーケンシャルな読み出し処理を実行する場合、
図17~
図20のような演算処理を行うことで、ハードビットデータHBを出力しつつ、圧縮ソフトビットデータSB
-OR及びSB
+ORを生成することができる。
【0248】
3. 変形例
上述の第1実施形態及び第2実施形態には、種々の変形を適用することができる。
【0249】
上述の第1実施形態及び第2実施形態では、セルユニットCUに3ページのデータが記憶される場合について説明したが、これに限られない。例えば、セルユニットCUに4ページのデータが記憶される場合でも、2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORに基づく復元処理を実行できる。
【0250】
以下の説明では、第1実施形態及び第2実施形態と異なる構成及び動作について主に説明する。第1実施形態及び第2実施形態と同等の構成及び動作については、説明を適宜省略する。
【0251】
3.1 SB復元回路
メモリセルトランジスタMTに4ビットのデータを記憶させる書き込みモードは、QLC(Quadrable Level Cell)モードとも呼ばれる。QLCモードによって書き込まれたメモリセルトランジスタが記憶する4ビットデータを、下位ビットから順に下位ビット、中位ビット、上位ビット、及びトップ(Top)ビットと呼ぶ。また、同一のセルユニットCUに含まれるメモリセルトランジスタMTの記憶する下位ビットの集合、中位ビットの集合、上位ビットの集合、及びトップビットの集合を、ぞれぞれ“下位ページ”、“中位ページ”、“上位ページ”、及び“トップページ”と呼ぶ。
【0252】
図21は、変形例に係るSB復元回路の構成の一例を示すブロック図である。
図21は、第1実施形態における
図8に対応する。
【0253】
変形例に係るSB復元回路34Aは、DEMUX41、5個のバッファ42~46、及びSBデコーダ47に加えて、バッファ48を更に含む。
【0254】
DEMUX41は、制御回路21からの切替信号に基づいて、入力端子と、バッファ42~46、及び48にそれぞれ接続された5個の出力端子のいずれかと、を電気的に接続する。
【0255】
バッファ42は、下位ページに対応するハードビットデータHB_Lを一時的に記憶するバッファである。バッファ43は、中位ページに対応するハードビットデータHB_Mを一時的に記憶するバッファである。バッファ44は、上位ページに対応するハードビットデータHB_Uを一時的に記憶するバッファである。バッファ48は、トップページに対応するハードビットデータHB_Tを一時的に記憶するバッファである。
【0256】
バッファ45は、圧縮ソフトビットデータSB-ORを一時的に記憶するバッファである。バッファ46は、圧縮ソフトビットデータSB+ORを一時的に記憶するバッファである。
【0257】
SBデコーダ47は、ソフトビットデータSBの復元回路である。SBデコーダ47は、ハードビットデータHB_L、HB_M、HB_U、及びHB_T、並びに圧縮ソフトビットデータSB-OR及びSB+ORを受信する。SBデコーダ47は、ハードビットデータHB_L、HB_M、HB_U、及びHB_T、並びに圧縮ソフトビットデータSB-OR及びSB+ORに基づいて、下位ページに対応するソフトビットデータSB_L、中位ページに対応するソフトビットデータSB_M、上位ページに対応するソフトビットデータSB_U、及びトップページに対応するソフトビットデータSB_Tを復元する。例えば、SBデコーダ47は、ソフトビットデータSB_L、SB_M、SB_U、及びSB_Tを軟判定復号回路33に送信する。
【0258】
3.2 ハードビットデータ及びソフトビットデータ
メモリセルトランジスタMTが4ビットのデータを記憶する場合、その閾値電圧の分布は16個に分けられる。この16個の閾値電圧分布を、閾値電圧が低いものから順に“S0”状態~“S15”状態と呼ぶ。
【0259】
図22は、変形例に係るメモリシステムにおける部分ソフトビットデータ、圧縮ソフトビットデータ、及びソフトビットデータの関係の一例を示す図である。
図22は、第1実施形態における
図10に対応する。
図22では“S0”状態及び“S15”状態の各々が更に2個の状態に分類され、“S1”状態~“S14”状態の各々が更に3個の状態に分類される場合が示される。
図22では図示が省略されているが、“S0”状態内の2個の状態は、低電圧側から“S0
0”状態、及び“S0
+”状態である。“Sj”状態内の3個の状態は、低電圧側から“Sj
-”状態、“Sj
0”状態、及び“Sj
+”状態である(1≦j≦14)。“S15”状態内の2個の状態は、低電圧側から“S15
-”状態、及び“S15
0”状態である。
【0260】
図22に示されるように、不揮発性メモリ10は、下位ページに対応するハードビットデータHB_L並びに部分ソフトビットデータSB
-_L及びSB
+_L、中位ページに対応するハードビットデータHB_M並びに部分ソフトビットデータSB
-_M及びSB
+_M、上位ページに対応するハードビットデータHB_U並びに部分ソフトビットデータSB
-_U及びSB
+_U、並びにトップページに対応するハードビットデータHB_T並びに部分ソフトビットデータSB
-_T及びSB
+_Tを生成する。
【0261】
部分ソフトビットデータSB-_Lは、“S0+”状態、“S2+”状態、“S6+”状態、及び“S12+”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB-_Mは、“S1+”状態、“S7+”状態、“S9+”状態、及び“S11+”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB-_Uは、“S3+”状態、“S5+”状態、“S8+”状態、及び“S14+”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB-_Tは、“S4+”状態、“S10+”状態、及び“S13+”状態が“1”となり、その他の状態が“0”となる。このように、部分ソフトビットデータSB-_L、SB-_M、SB-_U、及びSB-_Tは、互いに重複しない状態で“1”となる。
【0262】
不揮発性メモリ10は、部分ソフトビットデータSB-_L、SB-_M、SB-_U、及びSB-_Tを論理和演算することにより、圧縮ソフトビットデータSB-ORを生成する。このため、圧縮ソフトビットデータSB-ORは、“S0+”状態、“S1+”状態、“S2+”状態、“S3+”状態、“S4+”状態、“S5+”状態、“S6+”状態、“S7+”状態、“S8+”状態、“S9+”状態、“S10+”状態、“S11+”状態、“S12+”状態、“S13+”状態、及び“S14+”状態が“1”となり、その他の状態が“0”となる。
【0263】
また、部分ソフトビットデータSB+_Lは、“S1-”状態、“S3-”状態、“S7-”状態、及び“S13-”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB+_Mは、“S2-”状態、“S8-”状態、“S10-”状態、及び“S12-”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB+_Uは、“S4-”状態、“S6-”状態、“S9-”状態、及び“S15-”状態が“1”となり、その他の状態が“0”となる。部分ソフトビットデータSB+_Tは、“S5-”状態、“S11-”状態、及び“S14-”状態が“1”となり、その他の状態が“0”となる。このように、部分ソフトビットデータSB+_L、SB+_M、SB+_U、及びSB+_Tは、互いに重複しない状態で“1”となる。
【0264】
不揮発性メモリ10は、部分ソフトビットデータSB+_L、SB+_M、SB+_U、及びSB+_Tを論理和演算することにより、圧縮ソフトビットデータSB+ORを生成する。このため、圧縮ソフトビットデータSB+ORは、“S1-”状態、“S2-”状態、“S3-”状態、“S4-”状態、“S5-”状態、“S6-”状態、“S7-”状態、“S8-”状態、“S9-”状態、“S10-”状態、“S11-”状態、“S12-”状態、“S13-”状態、“S14-”状態、及び“S15-”状態が“1”となり、その他の状態が“0”となる。
【0265】
不揮発性メモリ10は、上述の演算処理によって生成された2ページの圧縮ソフトビットデータSB-OR及びSB+ORと、4ページのハードビットデータHB_L、HB_M、HB_U、及びHB_Tと、をメモリコントローラ20に出力する。
【0266】
SBデコーダ47は、2ページの圧縮ソフトビットデータSB-OR及びSB+ORと、4ページのハードビットデータHB_L、HB_M、HB_U、及びHB_Tと、に基づき4ページのソフトビットデータSB_L、SB_M、SB_U、及びSB_Tを生成する。
【0267】
下位ページに対応するソフトビットデータSB_Lは、“S0+”状態、“S1-”状態、“S2+”状態、“S3-”状態、“S6+”状態、“S7-”状態、“S12+”状態、及び“S13-”状態が“1”となり、その他の状態が“0”となる。SBデコーダ47は、例えば、ソフトビットデータSB_Lを以下の演算によって生成する。
SB_L=(X0|X2|X6|X12)&SB-OR)|(X1|X3|X7|X13)&SB+OR)
X0=HB_L&HB_M&HB_U&HB_T
X1=~HB_L&HB_M&HB_U&HB_T
X2=~HB_L&~HB_M&HB_U&HB_T
X3=HB_L&~HB_M&HB_U&HB_T
X6=HB_L&~HB_M&HB_U&~HB_T
X7=~HB_L&~HB_M&HB_U&~HB_T
X12=~HB_L&HB_M&~HB_U&HB_T
X13=HB_L&HB_M&~HB_U&HB_T
中位ページに対応するソフトビットデータSB_Mは、“S1+”状態、“S2-”状態、“S7+”状態、“S8-”状態、“S9+”状態、“S10-”状態、“S11+”状態、及び“S12-”状態が“1”となり、その他の状態が“0”となる。SBデコーダ47は、例えば、ソフトビットデータSB_Mを以下の演算によって生成する。
SB_M=(X1|X7|X9|X11)&SB-OR)|(X2|X8|X10|X12)&SB+OR)
X8=~HB_L&HB_M&HB_U&~HB_T
X9=~HB_L&HB_M&~HB_U&~HB_T
X10=~HB_L&~HB_M&~HB_U&~HB_T
X11=~HB_L&~HB_M&~HB_U&HB_T
上位ページに対応するソフトビットデータSB_Uは、“S3+”状態、“S4-”状態、“S5+”状態、“S6-”状態、“S8+”状態、“S9-”状態、“S14+”状態、及び“S15-”状態が“1”となり、その他の状態が“0”となる。SBデコーダ47は、例えば、ソフトビットデータSB_Uを以下の演算によって生成する。
SB_U=(X3|X5|X8|X14)&SB-OR)|(X4|X6|X9|X15)&SB+OR)
X4=HB_L&~HB_M&~HB_U&HB_T
X5=HB_L&~HB_M&~HB_U&~HB_T
X14=HB_L&HB_M&~HB_U&~HB_T
X15=HB_L&HB_M&HB_U&~HB_T
このように、不揮発性メモリ10は、8ページの部分ソフトビットデータSB-_L、SB-_M、SB-_U、SB-_T、SB+_L、SB+_M、SB+_U、及びSB+_Tを2ページの圧縮ソフトビットデータSB-OR及びSB+ORに圧縮する。SBデコーダ47は、4ページのハードビットデータHB_L、HB_M、HB_U及びHB_T、並びに2ページの圧縮ソフトビットデータSB-OR及びSB+ORに基づき、4ページのソフトビットデータSB_L、SB_M、SB_U、及びSB_Tを復元する。
【0268】
3.3 変形例に係る効果
変形例によれば、不揮発性メモリ10は、ハードビットデータHB_L、HB_M、HB_U、及びHB_T、並びに部分ソフトビットデータSB-_L、SB+_L、SB-_M、SB+_M、SB-_U、SB+_U、SB-_T、及びSB+_Tを対象のセルユニットCUから読み出す。不揮発性メモリ10は、部分ソフトビットデータSB-_L、SB-_M、SB-_U、及びSB-_Tの論理和演算に基づいて圧縮ソフトビットデータSB-ORを生成する。不揮発性メモリ10は、部分ソフトビットデータSB+_L、SB+_M、SB+_U、及びSB+_Tの論理和演算に基づいて圧縮ソフトビットデータSB+ORを生成する。不揮発性メモリ10は、ハードビットデータHB_L、HB_M、HB_U、及びHB_T、並びに圧縮ソフトビットデータSB-OR及びSB+ORをメモリコントローラ20に送信する。これにより、軟判定復号処理に際してメモリコントローラ20に送信されるデータのサイズを、4ページ分のハードビットデータ、及び2ページ分の圧縮ソフトビットデータとすることができる。このため、ソフトビットデータSB_L、SB_M、SB_U、及びSB_Tをメモリコントローラ20に直接送信する場合よりも、送信するデータのサイズを2ページ分少なくすることができる。すなわち、4ページ分のソフトビットデータSB_L、SB_M、SB_U、及びSB_Tを出力する場合よりも、変形例に基づいて2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORを出力する方が、2倍のデータ転送速度の向上が見込める。このように、メモリセルトランジスタMTに記憶されるビット数の増加に関わらず、圧縮ソフトビットデータのサイズを2ページ分に抑制することができる。したがって、不揮発性メモリ10からメモリコントローラ20に出力されるデータ量の増加を抑制することができる。
【0269】
また、SBデコーダ47は、メモリコントローラ20は、ハードビットデータHB_L、HB_M、HB_U、及びHB_T、並びに圧縮ソフトビットデータSB
-OR及びSB
+ORに対して、
図22を参照して説明した演算処理を実行する。これにより、ソフトビットデータSB_L、SB_M、SB_U、及びSB_Tを復元することができる。このため、軟判定復号回路33は、軟判定復号処理を実行することができる。
【0270】
4. その他
また、上述した第1実施形態、第2実施形態、及び変形例で説明した例に限られず、セルユニットCUに5ページ以上のデータが記憶される場合についても、同様に2ページ分の圧縮ソフトビットデータSB-OR及びSB+ORに基づく復元処理を実行可能である。
【0271】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0272】
1…情報処理システム
2…ホスト
3…メモリシステム
10…不揮発性メモリ
11…入出力回路
12…ロジック制御回路
13…レジスタ
14…シーケンサ
15…電圧生成回路
16…ドライバセット
17…メモリセルアレイ
18…ロウデコーダ
19…センスアンプモジュール
19-1…センスアンプ
19-2…データレジスタ
19-3…カラムデコーダ
20…メモリコントローラ
21…制御回路
22…バッファメモリ
23…ホストインタフェース回路
24…メモリインタフェース回路
25…ECC回路
31…符号化回路
32…硬判定復号回路
33…軟判定復号回路
34…SB復元回路
41…DEMUX
42,43,44,45,46,48…バッファ
47…SBデコーダ