(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024135926
(43)【公開日】2024-10-04
(54)【発明の名称】半導体記憶装置及びメモリシステム
(51)【国際特許分類】
G11C 29/42 20060101AFI20240927BHJP
G06F 11/10 20060101ALI20240927BHJP
【FI】
G11C29/42
G06F11/10 648
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023046836
(22)【出願日】2023-03-23
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】山田 淳二
【テーマコード(参考)】
5L206
【Fターム(参考)】
5L206AA10
5L206BB02
5L206EE03
(57)【要約】
【課題】書き込み動作及び読み出し動作の時間を短縮させることができる半導体記憶装置及びメモリシステムを提供する。
【解決手段】実施形態の半導体記憶装置は、データを記憶可能なメモリセルアレイ11と、メモリセルアレイ11への書き込み動作を制御する制御回路とを備える。書き込み動作において、制御回路は、第1データ及びパリティビットPCを含む第2データを受信し、第1データに対するパリティビットPMを生成し、パリティビットPCとパリティビットPMとが一致するか否かを検査し、第1データをメモリセルアレイ11に書き込むように構成される。
【選択図】
図13
【特許請求の範囲】
【請求項1】
データを記憶可能なメモリセルアレイと、
前記メモリセルアレイへの書き込み動作を制御する制御回路と、
を具備し、
前記書き込み動作において、前記制御回路は、
第1データ及び第1パリティビットを受信し、
前記第1データに対する第2パリティビットを生成し、
前記第1パリティビットと前記第2パリティビットとが一致するか否かを検査し、
前記第1データを前記メモリセルアレイに書き込むように構成された半導体記憶装置。
【請求項2】
前記制御回路は、前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査と、前記第1データの前記メモリセルアレイへの書き込み動作のための電圧生成回路の起動とを並行して実行する請求項1に記載の半導体記憶装置。
【請求項3】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査において、前記第1パリティビットと前記第2パリティビットとが一致しない場合、
前記制御回路は、一致しないことを示す情報を設定する請求項1に記載の半導体記憶装置。
【請求項4】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査において、前記第1パリティビットと前記第2パリティビットとが一致しない場合、
前記制御回路は、前記第1データ及び前記第1パリティビットを再度受信する請求項1に記載の半導体記憶装置。
【請求項5】
前記第2パリティビットを生成すると共に、前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査を行うパリティ検査回路をさらに具備する請求項1に記載の半導体記憶装置。
【請求項6】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査において、前記第1パリティビットと前記第2パリティビットとが一致した場合に、
前記制御回路は、前記第1データの前記メモリセルアレイへの書き込み動作を実行する請求項1に記載の半導体記憶装置。
【請求項7】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査が終了した後、前記制御回路は、前記第1パリティビット及び前記第2パリティビットを消去する請求項1に記載の半導体記憶装置。
【請求項8】
データを記憶可能なメモリセルアレイと、
前記メモリセルアレイへの書き込み動作を制御する制御回路と、
を含む半導体記憶装置と、
前記半導体記憶装置を制御するコントローラと、
を具備し、
前記書き込み動作において、前記コントローラは、
第1データに対する第1パリティビットを生成し、
前記第1データ及び第1パリティビットと、前記書き込み動作を命ずるコマンドを前記半導体記憶装置に送信し、
前記制御回路は、
前記第1データに対する第2パリティビットを生成し、
前記第1パリティビットと前記第2パリティビットとが一致するか否かを検査し、
前記第1データを前記メモリセルアレイに書き込むように構成されたメモリシステム。
【請求項9】
前記制御回路は、前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査と、前記第1データの前記メモリセルアレイへの書き込み動作のための電圧生成回路の起動とを並行して実行する請求項8に記載のメモリシステム。
【請求項10】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査において、前記第1パリティビットと前記第2パリティビットとが一致しない場合、
前記制御回路は、一致しないことを示す第1情報を設定し、
前記コントローラは、前記第1情報を受信すると、
前記第1データ及び前記第1パリティビットを、前記半導体記憶装置に送信する請求項8に記載のメモリシステム。
【請求項11】
前記半導体記憶装置は、前記第2パリティビットを生成すると共に、前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査を行うパリティ検査回路をさらに具備する請求項8に記載のメモリシステム。
【請求項12】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査において、前記第1パリティビットと前記第2パリティビットとが一致した場合に、
前記制御回路は、前記第1データの前記メモリセルアレイへの書き込み動作を実行する請求項8に記載のメモリシステム。
【請求項13】
前記第1パリティビットと前記第2パリティビットとが一致するか否かの検査が終了した後、前記制御回路は、前記第1パリティビット及び前記第2パリティビットを消去する請求項8に記載のメモリシステム。
【請求項14】
データを記憶可能なメモリセルアレイと、
前記メモリセルアレイへの読み出し動作を制御する制御回路と、
を含む半導体記憶装置と、
前記半導体記憶装置を制御するコントローラと、
を具備し、
前記読み出し動作において、前記コントローラは、
第1コマンドを前記半導体記憶装置に送信し、
前記制御回路は、
前記第1コマンドに従って前記メモリセルアレイから第1データを読み出す第1読み出しを行い、
前記第1データに対する第1パリティビットを生成し、
前記第1データ及び前記第1パリティビットを前記コントローラに送信する第2読み出しを行い、
前記コントローラは、
前記第1データに対する第2パリティビットを生成し、
前記第1パリティビットと前記第2パリティビットとが一致するか否かを検査するメモリシステム。
【請求項15】
前記第1パリティビットと前記第2パリティビットとが一致しない場合、
前記コントローラは、
第2コマンドを前記半導体記憶装置に送信し、
前記制御回路は、
前記第2コマンドに従って前記第1データ及び前記第1パリティビットを前記コントローラに送信する請求項14に記載のメモリシステム。
【請求項16】
前記第1読み出しに要する時間は、前記第2読み出しに要する時間より長い請求項15に記載のメモリシステム。
【請求項17】
前記第1データは、第2データ、及び第2データに対して生成されたエラー検出用データを含み、
前記第1パリティビットと前記第2パリティビットとが一致した場合、
前記コントローラは、
第2データに対して前記エラー検出用データを用いてエラー検査を行い、前記エラー検査がフェイルである場合、
第3コマンドを前記半導体記憶装置に送信し、
前記制御回路は、
前記第3コマンドに従って前記第1読み出し及び前記第2読み出しと異なる第3読み出しを行い、
前記コントローラは、前記エラー検査がパスである場合、前記読み出し動作を終了する請求項14に記載のメモリシステム。
【請求項18】
前記第1読み出しに要する時間は、前記第2読み出しに要する時間より長く、
前記第3読み出しに要する時間は、前記第1読み出しに要する時間より長い請求項17に記載のメモリシステム。
【請求項19】
前記半導体記憶装置は、前記第1データを記憶するレジスタをさらに具備し、
前記第1読み出しは、前記メモリセルアレイから読み出した前記第1データを前記レジスタに記憶し、
前記第2読み出しは、前記レジスタに記憶された前記第1データを前記コントローラに送信する請求項15に記載のメモリシステム。
【請求項20】
前記第3読み出しは、複数の読み出し電圧を用いた読み出しによって得られた複数の読み出しデータに基づいて、前記メモリセルアレイから前記第1データを読み出す請求項17に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【0002】
半導体記憶装置として、例えば、メモリセルが二次元あるいは三次元に配列されたNAND型フラッシュメモリが知られている。NAND型フラッシュメモリと、NAND型フラッシュメモリを制御するメモリコントローラとにより、メモリシステムが構成される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
書き込み動作及び読み出し動作の時間を短縮させることができる半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【0005】
実施形態の半導体記憶装置は、データを記憶可能なメモリセルアレイと、前記メモリセルアレイへの書き込み動作を制御する制御回路とを備える。前記書き込み動作において、前記制御回路は、第1データ及び第1パリティビットを含む第2データを受信し、前記第1データに対する第2パリティビットを生成し、前記第1パリティビットと前記第2パリティビットとが一致するか否かを検査し、前記第1データを前記メモリセルアレイに書き込むように構成される。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るメモリシステムの構成を示すブロック図である。
【
図2】第1実施形態に係る半導体記憶装置の構成を示すブロック図である。
【
図3】第1実施形態に係るメモリセルアレイ内のブロックの回路図である。
【
図4】第1実施形態に係るメモリセルアレイの平面レイアウトの一部を示す図である。
【
図5】第1実施形態に係るメモリセルアレイの断面図である。
【
図6】第1実施形態に係るメモリセルアレイ内のメモリピラーの断面図である。
【
図7】第1実施形態に係るメモリセルトランジスタの閾値電圧分布とデータの関係を示す図である。
【
図8】第1実施形態に係る伝送データ、書き込みデータ及び読み出しデータのデータ構造を示す図である。
【
図9】第1実施形態に係る半導体記憶装置の構成の変形例を示すブロック図である。
【
図10】第1実施形態に係るメモリシステムにおけるデータの流れの第1例を示す図である。
【
図11】第1実施形態に係るメモリシステムにおけるデータの流れの第2例を示す図である。
【
図12】第1実施形態に係るメモリシステムにおけるデータの流れの第3例を示す図である。
【
図13】第1実施形態に係るメモリシステムにおける書き込み動作を示すフローチャートである。
【
図14】第1実施形態に係るメモリシステムにおける書き込み動作を示すタイミングチャートである。
【
図15】第1実施形態に係るメモリシステムにおける書き込み動作を示すタイミングチャートである。
【
図16】第1実施形態に係るメモリシステムにおける書き込み動作を示すタイミングチャートである。
【
図17】第1実施形態に係るメモリシステムにおける読み出し動作を示すフローチャートである。
【
図18】第1実施形態に係るメモリシステムにおける読み出し動作を示すタイミングチャートである。
【
図19】第1実施形態に係るメモリシステムにおける読み出し動作を示すタイミングチャートである。
【
図20】第1実施形態に係るメモリシステムにおける読み出し動作を示すタイミングチャートである。
【
図21】第1実施形態に係るソフトビットリードの動作を説明するための図である。
【
図22】第2実施形態に係るメモリシステムにおける書き込み動作を示すフローチャートである。
【
図23】第2実施形態に係るメモリシステムにおける書き込み動作を示すタイミングチャートである。
【
図24】第2実施形態に係るメモリシステムにおける書き込み動作を示すタイミングチャートである。
【発明を実施するための形態】
【0007】
以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、以下に示す実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。
【0008】
機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【0009】
以下に、実施形態の半導体記憶装置及びメモリコントローラを備えるメモリシステムについて説明する。半導体記憶装置として、メモリセルトランジスタが半導体基板の上方に三次元に積層された三次元積層型NAND型フラッシュメモリを例に挙げる。
【0010】
第1実施形態のメモリシステムについて説明する。書き込み動作においては、メモリコントローラから半導体記憶装置にデータが送信され、そのデータが半導体記憶装置のメモリセルアレイに書き込まれる。また、読み出し動作においては、メモリセルアレイに書き込まれたデータが半導体記憶装置によって読み出され、読み出されたデータが半導体記憶装置からメモリコントローラに送信される。
【0011】
このような書き込み及び読み出し動作では、データがメモリコントローラと半導体記憶装置との間で送受信(あるいは、伝送)される際に、データにエラーが発生する場合がある。この伝送時にデータに発生するエラーを、伝送エラーと称する。また、書き込み時には、メモリセルアレイ内の書き込み対象のメモリセルに不良があるために、データが書き込めない場合がある。データがメモリセルアレイに書き込まれ、その後、メモリセルアレイから読み出される際に、データにエラーが発生する場合もある。この書き込み及び読み出し時にデータに発生するエラーを、メモリエラーと称する。
【0012】
第1実施形態及び第2実施形態では、伝送エラーと、メモリエラーとを区別する。具体的には、書き込み動作及び読み出し動作において、データが伝送エラーを含むか、あるいはメモリエラーを含むかに応じて、伝送エラーを含む場合、あるいはメモリエラーを含む場合のそれぞれに応じた適する動作を行う。
【0013】
1.第1実施形態
第1実施形態のメモリシステムについて説明する。
【0014】
1.1 メモリシステムの構成
先ず、第1実施形態のメモリシステムの構成について説明する。
図1は、第1実施形態のメモリシステムの構成を示すブロック図である。メモリシステム1は、外部のホスト装置2に接続され、ホスト装置2からの命令に応じて各種動作を実行し得る。メモリシステム1は、複数の半導体記憶装置10及びメモリコントローラ20を備える。
【0015】
半導体記憶装置10は、NAND型フラッシュメモリを含み、データを不揮発に記憶する。半導体記憶装置10の詳細については後述する。
【0016】
メモリコントローラ20は、NANDバスを介して複数の半導体記憶装置10に接続される。メモリコントローラ20は、複数の半導体記憶装置10を制御する。NANDバスは、NANDインターフェースに従った信号の送受信を行う。メモリコントローラ20は、またホストバスを介してホスト装置2に接続される。メモリコントローラ20は、ホスト装置2から受信した命令に応答して、半導体記憶装置10にアクセスする。
【0017】
半導体記憶装置10とメモリコントローラ20は、例えば、それらの組み合わせにより一つの半導体装置を構成してもよく、その例としてはSDTMカードを含むメモリカードや、SSD(solid state drive)等が挙げられる。また、メモリコントローラ20は、例えば、SoC(system-on-a-chip)等であってもよい。
【0018】
ホスト装置2は、例えば、デジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。
【0019】
1.1.1 メモリコントローラ
図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を備える。
【0020】
CPU21は、メモリコントローラ20全体の動作を制御する。例えば、CPU21は、ホスト装置2から書き込み命令を受信した際には、それに応答して、NANDインターフェース回路25に対して書き込み命令を発行する。読み出し命令及び消去命令を受信した際も、同様に、それらに応答して、NANDインターフェース回路25に対して読み出し命令及び消去命令をそれぞれ発行する。
【0021】
また、CPU21は、ウェアレベリング等、半導体記憶装置10を管理するための様々な処理を実行する。なお、以下で説明するメモリコントローラ20の動作は、CPU21がソフトウェア(または、ファームウェア)を実行することによって実現されてもよいし、またはハードウェアで実現されてもよい。
【0022】
RAM22は、CPU21の作業領域として使用される。RAM22は、例えば、ダイナミックランダムアクセスメモリ(DRAM)やスタティックランダムアクセスメモリ(SRAM)等の半導体メモリである。RAM22は、また半導体記憶装置10を管理するためのファームウェア、各種の管理テーブル、及びデータ等を一時的に記憶する。
【0023】
ROM23は、例えば、CPU21によって実行されるファームウェアを記憶する。
【0024】
ECC回路24は、半導体記憶装置10に書き込まれるデータ及び半導体記憶装置10から読み出されたデータに対して、エラーの検出および訂正に関する処理を行う。ECC回路24は、第1ECC回路24a及び第2ECC回路24bを有する。第1ECC回路24a及び第2ECC回路24bについては後に詳述する。
【0025】
NANDインターフェース回路25は、NANDバスを介して半導体記憶装置10と接続され、半導体記憶装置10との通信を司る。NANDインターフェース回路25は、CPU21から受信した命令に基づき、種々の信号、コマンド及びデータを半導体記憶装置10に送信する。NANDインターフェース回路25は、また種々の信号及びデータを半導体記憶装置10から受信する。
【0026】
ホストインターフェース回路26は、ホストバスを介してホスト装置2と接続され、ホスト装置2との通信を司る。ホストインターフェース回路26は、ホスト装置2から受信した命令及びデータを、それぞれCPU21及びRAM22に転送する。また、ホストインターフェース回路26は、CPU21からの命令に応答して、RAM22内のデータをホスト装置2に転送する。
【0027】
1.1.2 半導体記憶装置
次に、複数の半導体記憶装置10の構成について説明する。半導体記憶装置10の各々の構成は同様である。
【0028】
図2は、第1実施形態の半導体記憶装置10の構成を示すブロック図である。
【0029】
半導体記憶装置10は、メモリセルアレイ11、入出力回路12、ロジック制御回路13、レディ/ビジー回路14、レジスタ群15、シーケンサ(あるいは、制御回路)16、電圧生成回路17、ロウデコーダ18、カラムデコーダ19A、データレジスタ19B、及びセンスアンプ19Cを備える。入出力回路12は、キャッシュレジスタ12a及び伝送パリティ検査回路12bを備える。レジスタ群15は、ステータスレジスタ15A、アドレスレジスタ15B、及びコマンドレジスタ15Cを備える。
【0030】
メモリセルアレイ11は、1つまたは複数のブロックBLK0,BLK1,BLK2,…,BLKn(nは0以上の整数)を備える。複数のブロックBLK0~BLKnの各々は、ロウ及びカラムに対応付けられた複数のメモリセルトランジスタ(以下、メモリセルとも記す)を含む。メモリセルトランジスタは、電気的に消去およびプログラム可能な不揮発性メモリセルである。メモリセルアレイ11は、メモリセルトランジスタに電圧を印加するための、複数のワード線、複数のビット線、及びソース線を含む。ブロックBLKnの具体的な構成については後述する。
【0031】
入出力回路12及びロジック制御回路13は、入出力端子(または、NANDバス)を介してメモリコントローラ20に接続される。入出力回路12は、メモリコントローラ20との間で入出力端子を介して、入出力信号(I/O信号)DQ(例えば、DQ0、DQ1、DQ2、…、DQ7)を送受信する。I/O信号DQは、コマンド、アドレス、及びデータ等を通信する。入出力回路12内のキャッシュレジスタ12aは、メモリコントローラ20と半導体記憶装置10との間で送受信されるデータを一時的に記憶する。例えば、書き込み動作時には、メモリコントローラ20から半導体記憶装置10に送信されたデータを一時的に記憶する。読み出し動作時には、半導体記憶装置10からメモリコントローラ20に送信されるデータを一時的に記憶する。入出力回路12内の伝送パリティ検査回路12bについては後述する。
【0032】
ロジック制御回路13は、メモリコントローラ20から入出力端子(または、NANDバス)を介して、制御信号を受信する。制御信号は、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、及びライトプロテクト信号WPnを含む。信号名に付記された“n”は、その信号がアクティブ・ローであることを示す。
【0033】
チップイネーブル信号CEnは、複数の半導体記憶装置10に対して、1つの半導体記憶装置10を選択する際にアサートされる。コマンドラッチイネーブル信号CLEは、信号DQとして送信されるコマンドをコマンドレジスタ15Cにラッチすることを可能にする。アドレスラッチイネーブル信号ALEは、信号DQとして送信されるアドレスをアドレスレジスタ15Bにラッチすることを可能にする。書き込みイネーブル信号WEnは、信号DQとして送信されるデータをデータレジスタ19Bに記憶することを可能にする。読み出しイネーブル信号REnは、メモリセルアレイ11から読み出したデータを、信号DQとして出力することを可能にする。ライトプロテクト信号WPnは、半導体記憶装置10に対する書き込み動作及び消去動作を禁止する際にアサートされる。
【0034】
レディ/ビジー回路14は、シーケンサ16からの制御に応じて、レディ/ビジー信号R/Bnを生成する。レディ/ビジー信号R/Bnは、半導体記憶装置10がレディ状態であるか、あるいはビジー状態であるかを示す。レディ状態は、半導体記憶装置10がメモリコントローラ20からの命令を受け付け可能な状態であることを示す。ビジー状態は、半導体記憶装置10がメモリコントローラ20からの命令を受け付けできない状態であることを示す。メモリコントローラ20は、半導体記憶装置10からレディ/ビジー信号R/Bnを受けることで、半導体記憶装置10がレディ状態であるか、あるいはビジー状態であるかを知ることができる。
【0035】
ステータスレジスタ15Aは、半導体記憶装置10の動作に必要なステータス情報STSを記憶する。ステータスレジスタ15Aは、シーケンサ16の指示に従って、ステータス情報STSを入出力回路12に転送する。ステータス情報STSは、伝送ステータス及びベリファイステータスを含む。伝送ステータス及びベリファイステータスについては後述する。
【0036】
アドレスレジスタ15Bは、入出力回路12から転送されたアドレスADDを記憶する。アドレスADDは、ロウアドレス及びカラムアドレスを含む。ロウアドレスは、例えば、動作対象のブロックBLKnを指定するブロックアドレス、及び指定されたブロック内の動作対象のワード線WL(例えば、ページ)を指定するページアドレスを含む。
【0037】
コマンドレジスタ15Cは、入出力回路12から転送されたコマンドCMDを記憶する。コマンドCMDは、例えば、シーケンサ16に書き込み動作を命ずる書き込みコマンド、読み出し動作を命ずる読み出しコマンド、及び消去動作を命ずる消去コマンドなどを含む。
【0038】
ステータスレジスタ15A、アドレスレジスタ15B、及びコマンドレジスタ15Cには、例えばSRAM(static random access memory)が用いられる。
【0039】
シーケンサ16は、コマンドレジスタ15Cからコマンドを受け、このコマンドに基づくシーケンスに従って半導体記憶装置10を統括的に制御する。
【0040】
シーケンサ16は、電圧生成回路17、ロウデコーダ18、カラムデコーダ19A、データレジスタ19B、及びセンスアンプ19Cなどを制御して、書き込み動作、読み出し動作、及び消去動作を実行する。具体的には、シーケンサ16は、コマンドレジスタ15Cから受信した書き込みコマンドに基づいて、アドレスADDにて指定された複数のメモリセルトランジスタにデータを書き込む。シーケンサ16は、またコマンドレジスタ15Cから受信した読み出しコマンドに基づいて、アドレスADDにて指定された複数のメモリセルトランジスタからデータを読み出す。シーケンサ16は、またコマンドレジスタ15Cから受信した消去コマンドに基づいて、アドレスADDにて指定されたブロックに記憶されたデータを消去する。
【0041】
本明細書に記載されるシーケンサ16の機能は、シーケンサ16がソフトウェア(または、ファームウェア)を実行することによって実現してもよいし、またはハードウェア(または、専用回路)で実現されてもよい。
【0042】
電圧生成回路17は、半導体記憶装置10の外部から電源端子を介して電源電圧VDD及び接地電圧VSSを受け取る。電源電圧VDDは、半導体記憶装置10の外部から供給される外部電圧であり、例えば3.3Vである。接地電圧VSSは、半導体記憶装置10の外部から供給される外部電圧であり、例えば0Vである。
【0043】
電圧生成回路17は、電源電圧VDDを用いて、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を生成する。電圧生成回路17は、生成した電圧を、メモリセルアレイ11、ロウデコーダ18、及びセンスアンプ19Cなどに供給する。
【0044】
ロウデコーダ18は、アドレスレジスタ15Bからロウアドレスを受け、このロウアドレスをデコードする。ロウデコーダ18は、ロウアドレスのデコード結果に基づいて、複数ブロックのうちのいずれかを選択し、さらに選択したブロックBLKn内のワード線WLを選択する。さらに、ロウデコーダ18は、選択されたブロックBLKnに電圧生成回路17から供給された複数の電圧を転送する。
【0045】
カラムデコーダ19Aは、アドレスレジスタ15Bからカラムアドレスを受け、このカラムアドレスをデコードする。カラムデコーダ19Aは、カラムアドレスのデコード結果に基づいてデータレジスタ19B内のラッチ回路を選択する。
【0046】
データレジスタ19Bは、複数のラッチ回路を備える。データレジスタ19Bは、書き込み動作及び読み出し動作時にそれぞれデータを一時的に記憶する。
【0047】
センスアンプ19Cは、データの読み出し動作時には、メモリセルトランジスタからビット線に読み出されたデータをセンス及び増幅する。さらに、センスアンプ19Cは、メモリセルトランジスタから読み出されたデータを一時的に記憶し、記憶したデータをデータレジスタ19Bへ転送する。また、センスアンプ19Cは、データの書き込み動作時には、入出力回路12のキャッシュレジスタ12aからデータレジスタ19Bを介して転送されたデータを一時的に記憶する。さらに、センスアンプ19Cは、記憶したデータをビット線に転送する。
【0048】
1.1.2.1 メモリセルアレイ
次に、第1実施形態の半導体記憶装置10におけるメモリセルアレイ11の回路構成及び構造について説明する。
【0049】
前述したように、メモリセルアレイ11は、複数のブロックBLK0~BLKnを有する。以下に、ブロックBLKnの回路構成について説明する。
図3は、メモリセルアレイ11内のブロックBLKnの回路図である。
【0050】
ブロックBLKnは、例えば、複数のストリングユニットSU0、SU1、SU2、SU3を備える。以降、ストリングユニットSUと記した場合、ストリングユニットSU0~SU3の各々を示すものとする。ストリングユニットSUは、複数のNANDストリング(または、メモリストリング)NSを備える。
【0051】
ここでは、説明を平易にするために、NANDストリングNSが、例えば、8個のメモリセルトランジスタMT0、MT1、MT2、…、MT7、及び2個のセレクトトランジスタST1及びST2を備える例を示す。以降、メモリセルトランジスタMTと記した場合、メモリセルトランジスタMT0~MT7の各々を示すものとする。
【0052】
メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に記憶する。メモリセルトランジスタMT0~MT7は、セレクトトランジスタST1のソースとセレクトトランジスタST2のドレインとの間に直列に接続される。メモリセルトランジスタMTは、1ビットのデータ、または2ビット以上のデータを記憶することが可能である。
【0053】
ストリングユニットSU0に含まれる複数のセレクトトランジスタST1のゲートは、セレクトゲート線SGD0に接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST1のゲートは、セレクトゲート線SGD1~SGD3にそれぞれ接続される。セレクトゲート線SGD0~SGD3の各々は、ロウデコーダ18によって独立に制御される。
【0054】
ストリングユニットSU0に含まれる複数のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。なお、ストリングユニットSU0~SU3のセレクトトランジスタST2のゲートには、個別のセレクトゲート線SGSがそれぞれ接続される場合もある。セレクトトランジスタST1及びST2は、各種動作におけるストリングユニットSUの選択に使用される。
【0055】
ブロックBLKnに含まれるメモリセルトランジスタMT0~MT7の制御ゲートは、ワード線WL0~WL7にそれぞれ接続される。ワード線WL0~WL7の各々は、ロウデコーダ18によって独立に制御される。
【0056】
ビット線BL0、BL1、BL2、…、BLm(mは0以上の整数)の各々は、複数のブロックBLK0~BLKnに接続され、ブロックBLKnに含まれるストリングユニットSU内にある1つのNANDストリングNSに接続される。すなわち、ビット線BL0~BLmの各々は、ブロックBLKn内でマトリクス状に配置されたNANDストリングNSのうち、同一列にある複数のNANDストリングNSのセレクトトランジスタST1のドレインに接続される。また、ソース線SLは、複数のブロックBLK0~BLKnに接続される。すなわち、ソース線SLは、ブロックBLKnに含まれる複数のセレクトトランジスタST2のソースに接続される。
【0057】
要するに、ストリングユニットSUは、異なるビット線BLに接続され、かつ同一のセレクトゲート線SGDに接続されたNANDストリングNSを複数含む。また、ブロックBLKnは、ワード線WLを共通にする複数のストリングユニットSUを含む。さらに、メモリセルアレイ11は、ビット線BLを共通にする複数のブロックBLK0~BLKnを含む。
【0058】
ブロックBLKnは、例えば、データの消去単位である。すなわち、ブロックBLKn内に含まれるメモリセルトランジスタMTに記憶されたデータは、一括して消去される。複数ブロック内のデータは、1つのブロック毎に順次消去される。なお、データは、ストリングユニットSU単位で消去されてもよいし、また、ストリングユニットSU未満の単位で消去されてもよい。
【0059】
1つのストリングユニットSU内でワード線WLを共有する複数のメモリセルトランジスタMTを、セルユニットCUと呼ぶ。セルユニットCUに含まれる複数のメモリセルトランジスタMTがそれぞれ記憶する1ビットのデータの集まりをページと呼ぶ。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて記憶容量が変化する。例えば、セルユニットCUは、各メモリセルトランジスタMTが1ビットデータを記憶する場合に1ページデータを記憶し、2ビットデータを記憶する場合に2ページデータを、3ビットデータを記憶する場合に3ページデータをそれぞれ記憶する。
【0060】
セルユニットCUに対する書き込み動作及び読み出し動作は、ページを単位として行われる。言い換えると、読み出し動作及び書き込み動作は、1つのストリングユニットSUに配設された1本のワード線WLに接続された複数のメモリセルトランジスタMTに対して、一括して行われる。
【0061】
なお、ブロックBLKnが備えるストリングユニットの数は、SU0~SU3に限るわけではなく、任意に設定可能である。また、ストリングユニットSUに含まれるNANDストリングNSの数、及びNANDストリングNSが備えるメモリセルトランジスタ、及びセレクトトランジスタの数も、任意に設定可能である。さらに、メモリセルトランジスタMTは、電荷蓄積層として絶縁膜を用いたMONOS(metal-oxide-nitride-oxide-silicon)型であってもよいし、電荷蓄積層として導電層を用いたFG(floating gate)型であってもよい。
【0062】
次に、第1実施形態の半導体記憶装置10内のメモリセルアレイ11の構造の一例について説明する。以下では、メモリセルアレイ11として、メモリセルトランジスタが半導体基板の上方に三次元に積層された三次元積層型NAND型フラッシュメモリを例に挙げる。
【0063】
以下で参照される図面において、X方向はワード線WLの延伸方向に対応し、Y方向はビット線BLの延伸方向に対応し、Z方向は半導体記憶装置10が形成される半導体基板の表面に対する鉛直方向に対応する。平面図に付加されたハッチングは、ハッチングが付加された構成要素の素材や特性とは必ずしも関連していない。本明細書では、図を見易くするために配線やコンタクト、絶縁層等の構成要素が適宜省略されている。
【0064】
先ず、メモリセルアレイ11の平面レイアウトの一例について説明する。
図4は、第1実施形態におけるメモリセルアレイ11の平面レイアウトの一部を示す図である。
【0065】
メモリセルアレイ11は、例えば、複数のスリットSLT、複数のメモリピラーMP、複数のコンタクトCV、及び複数のビット線BLを含む。
【0066】
複数のスリットSLTは、Y方向に配列されている。各スリットSLTの少なくとも一部は、X方向に沿って延伸している。また、スリットSLTは、同じ配線層に設けられ、且つ当該スリットSLTを介して隣り合う導電層の間を分断している。具体的には、スリットSLTは、例えば、ワード線WL0~WL7、並びにセレクトゲート線SGD及びSGSにそれぞれ対応する複数の配線層を分断している。
【0067】
また、各スリットSLTは、例えばスペーサSP及びコンタクトLIを含んでいる。各スリットSLTにおいて、コンタクトLIの少なくとも一部は、X方向に延伸している。スペーサSPは、コンタクトLIの側面に設けられる。コンタクトLIと、スリットSLTに隣接した複数の配線層との間は、スペーサSPによって離隔及び絶縁される。コンタクトLIは、ソース線SLとして使用される。コンタクトLIは、半導体であっても良いし、金属であっても良い。スペーサSPは、例えば、酸化シリコン(SiO2)を含む。
【0068】
メモリピラーMPの各々は、例えば、1つのNANDストリングNSとして機能する。複数のメモリピラーMPは、例えば、隣り合う2つのスリットSLT間の領域において、4列の千鳥状に配置される。これに限定されず、隣り合う2つのスリットSLT間におけるメモリピラーMPの個数及び配置は、適宜変更され得る。
【0069】
各メモリピラーMPには、少なくとも1本のビット線BLが重なって配置される。複数のビット線BLは、X方向に配列されている。各ビット線BLの少なくとも一部は、Y方向に沿って延伸している。メモリピラーMPに重なっている複数のビット線BLのうち1本のビット線BLと、当該メモリピラーMPとの間は、コンタクトCVを介して電気的に接続される。
【0070】
上述したメモリセルアレイ11の平面レイアウトは、Y方向に繰り返し配置される。そして、スリットSLTによって区切られた領域のそれぞれが、1つのストリングユニットSUに対応している。つまり、各々がX方向に延伸したストリングユニットSU0~SU3の組が、Y方向に配列されている。1本のビット線BLには、例えば、スリットSLTによって区切られた空間のそれぞれにおいて1つのコンタクトCVが接続される。
【0071】
次に、メモリセルアレイ11の断面構造の一例について説明する。
図5は、
図4におけるV-V線に沿った断面を示し、メモリピラーMPとスリットSLTを含み、Y方向に沿った断面を表す。
【0072】
メモリセルアレイ11は、半導体基板30、絶縁層31~35、導電層40~44、メモリピラーMP、コンタクトCV、及びスリットSLTを含む。
【0073】
半導体基板30上には、導電層40が設けられる。導電層40は、例えば、XY平面に沿って広がった板状に形成され、ソース線SLとして使用される。導電層40は、例えば、リンがドープされたポリシリコンを含む。
【0074】
導電層40上には、絶縁層31が設けられる。絶縁層31上には、導電層41が設けられる。導電層41は、例えば、XY平面に沿って広がった板状に形成され、セレクトゲート線SGSとして使用される。導電層41は、例えば、リンがドープされたポリシリコンを含む。セレクトゲート線SGSは、複数の導電層41によって構成されてもよい。セレクトゲート線SGSが複数の導電層41によって構成される場合には、複数の導電層41は、互いに異なる導電体によって構成されてもよい。
【0075】
導電層41上には、絶縁層32が設けられる。絶縁層32上には、導電層42と絶縁層33とが交互に積層される。複数の導電層42のそれぞれは、例えば、XY平面に沿って広がった板状に形成される。複数の導電層42は、導電層40側から順に、それぞれワード線WL0~WL7として使用される。導電層42は、例えば、タングステンを含む。
【0076】
最上層の導電層42上には、絶縁層34が設けられる。絶縁層34上には、導電層43が設けられる。導電層43は、例えば、XY平面に沿って広がった板状に形成され、セレクトゲート線SGDとして使用される。セレクトゲート線SGDは、複数の導電層43によって構成されてもよい。導電層43は、例えば、タングステンを含む。
【0077】
導電層43上には、絶縁層35が設けられる。絶縁層35上には、導電層44が設けられる。導電層44は、例えば、Y方向に延伸したライン状に形成され、ビット線BLとして使用される。図示せぬ領域において、複数の導電層44が、X方向に配列される。導電層44は、例えば銅を含む。
【0078】
各メモリピラーMPは、Z方向に沿って延伸している。各メモリピラーMPは、絶縁層31~34、及び導電層41~43を貫通している。メモリピラーMPの下部は、導電層40に接している。メモリピラーMPの上部は、絶縁層35に達している。
【0079】
各メモリピラーMPは、例えば、半導体層50、トンネル絶縁層(トンネル絶縁膜とも称する)51、電荷蓄積層(例えば、絶縁層)52、及びブロック絶縁層53を含む。
【0080】
半導体層50は、Z方向に沿って延伸している。例えば、半導体層50の下端は、導電層40に接触している。半導体層50の上端は、絶縁層35を含む層に含まれる。トンネル絶縁層51は、半導体層50の側面に配置されている。電荷蓄積層52は、トンネル絶縁層51の側面に配置されている。ブロック絶縁層53は、電荷蓄積層52の側面に配置されている。
【0081】
メモリピラーMPと導電層41(即ち、セレクトゲート線SGS)とが交差する部分は、セレクトトランジスタST2として機能する。メモリピラーMPと複数の導電層42(即ち、ワード線WL)とが交差する部分は、それぞれメモリセルトランジスタMT0~MT7として機能する。メモリピラーMPと導電層43(即ち、セレクトゲート線SGD)とが交差する部分は、セレクトトランジスタST1として機能する。すなわち、半導体層50は、メモリセルトランジスタMT0~MT7、並びにセレクトトランジスタST1及びST2のそれぞれのチャネル層として機能する。半導体層50の内部には、NANDストリングNSの電流経路が形成される。電荷蓄積層52は、メモリセルトランジスタMTの電荷を蓄積する層として機能する。
【0082】
各メモリピラーMPの半導体層50上には、柱状のコンタクトCVが設けられる。図示された領域には、2つのメモリピラーMPのうち、1つのメモリピラーMPに対応するコンタクトCVが示されている。当該領域においてコンタクトCVが接続されていないメモリピラーMPには、図示されない領域においてコンタクトCVが接続される。コンタクトCV上には、1つの導電層44(即ち、ビット線BL)が接触している。
【0083】
スリットSLTは、例えば、スペーサSP及びコンタクトLIを含んでいる。スリットSLTは、少なくとも一部がXZ平面に沿って広がった板状に形成され、絶縁層31~34及び導電層41~43を分断している。スリットSLTの下端は、例えば、導電層40に接触している。スリットSLTの上端は、絶縁層35を含む層に含まれる。スリットSLTにおいて、コンタクトLIの少なくとも一部は、X方向に延伸している。スペーサSPは、コンタクトLIの側面に設けられる。コンタクトLIと複数の導電層41~43との間は、スペーサSPによって離隔及び絶縁される。
【0084】
次に、メモリセルアレイ11内のメモリピラーMPの断面構造について説明する。
図6は、
図5におけるVI-VI線に沿った断面を示し、半導体基板30の表面に平行かつ導電層42を含む層におけるメモリピラーMPの断面を表す。
【0085】
メモリピラーMPは、上述したように、例えば半導体層50、トンネル絶縁層51、電荷蓄積層52、及びブロック絶縁層53を有する。具体的には、半導体層50は、例えばメモリピラーMPの中央部に設けられる。トンネル絶縁層51は、半導体層50の側面を囲っている。電荷蓄積層52は、トンネル絶縁層51の側面を囲っている。ブロック絶縁層53は、電荷蓄積層52の側面を囲っている。導電層42は、ブロック絶縁層53の側面を囲っている。なお、メモリピラーMPは、半導体層50の内部にコア絶縁層を設けた構造としてもよい。
【0086】
トンネル絶縁層51は、半導体層50から電荷蓄積層52に電荷が注入される際、または電荷蓄積層52に蓄積された電荷が半導体層50へ拡散する際に電位障壁として機能する。トンネル絶縁層51は、例えば、酸化シリコン(SiO2)を含む。
【0087】
電荷蓄積層52は、メモリセルトランジスタMT0~MT7において半導体層50から注入される電荷を蓄積する機能を有する。電荷蓄積層52は、例えば、窒化シリコン(SiN)を含む。
【0088】
ブロック絶縁層53は、電荷蓄積層52に蓄積された電荷が導電層42(ワード線WL)へ拡散するのを防止する。ブロック絶縁層53は、例えば、アルミニウム酸化層、シリコン酸化層及びシリコン窒化層を含む。
【0089】
1.1.3 メモリセルトランジスタの閾値電圧分布
次に、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係について説明する。
図7は、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係を示す図である。
【0090】
ここでは、メモリセルトランジスタ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)方式等、その他の記憶方式を用いた場合にも適用できる。
【0091】
メモリセルトランジスタ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は、
図6に示すような閾値電圧の分布を形成する。
【0092】
ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”には、例えば、それぞれデータ“111”、“110”、“100”、“000”、“010”、“011”、“001”、“101”が割り当てられる。ビットの並びは、下位ビット“X”、中位ビット“Y”、上位ビット“Z”とすると、“Z、Y、X”である。なお、閾値電圧分布とデータとの割り当ては、任意に設定可能である。
【0093】
読み出し対象のメモリセルトランジスタMTに記憶されたデータを読み出すために、メモリセルトランジスタMTの閾値電圧が属するステートが判定される。ステートの判定のために、読み出し電圧AR、BR、CR、DR、ER、FR、GRが用いられる。以下、読み出し電圧AR、BR、CR、DR、ER、FR、およびGRを含め、レベルの判断ために読み出し対象のメモリセルトランジスタMTに印加される電圧は、読み出し電圧VCGRVと称される場合がある。
【0094】
ステート“Er”は、例えば、データが消去された状態(消去状態)に相当する。ステート“Er”に属するメモリセルトランジスタMTの閾値電圧は、電圧ARより低く、例えば負の値を有する。
【0095】
ステート“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より低い。
【0096】
電圧VREADは、読み出し非対象のセルユニットCUのメモリセルトランジスタMTに接続されたワード線WLに印加される電圧であり、いずれのステートにあるメモリセルトランジスタMTの閾値電圧よりも高い。このため、制御ゲートに電圧VREADが印加されたメモリセルトランジスタMTは、保持するデータに関わらずオン状態になる。
【0097】
また、隣り合う閾値分布の間には、それぞれ書き込み動作で使用されるベリファイ電圧が設定される。具体的には、ステート“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より若干高く設定される。
【0098】
以上のように、各メモリセルトランジスタMTは、8個のステートのいずれかに設定され、3ビットデータを記憶することが可能である。また、書き込み及び読み出しは、1つのセルユニットCU内のページ単位で行われる。メモリセルトランジスタMTが3ビットデータを記憶している場合、1つのセルユニットCU内の3個のページにそれぞれ、下位ビット、中位ビット、及び上位ビットが割当てられる。下位ビット、中位ビット、及び上位ビットについて一回の書き込み動作にて書き込まれるページ、又は一回の読み出し動作にて読み出されるページ、すなわちセルユニットCUの保持する下位ビットの集合、中位ビットの集合、及び上位ビットの集合は、それぞれ下位(lower)ページ、中位(middle)ページ、及び上位(upper)ページと呼ばれる。
【0099】
上記データの割り付けが適用された場合、下位ページは、読み出し電圧AR、ERを用いた読み出し動作によって確定する。中位ページは、読み出し電圧BR、DR、FRを用いた読み出し動作によって確定する。上位ページは、読み出し電圧CR、GRを用いた読み出し動作によって確定する。
【0100】
1.1.4 メモリコントローラのECC回路
前述したように、メモリコントローラ20はECC回路24を備える。ECC回路24は、半導体記憶装置10に書き込まれるデータ、及び半導体記憶装置10から読み出されたデータに対して、エラー検出用データの生成、およびエラー検出用データを用いたエラーの検出及び訂正を行う。
【0101】
ECC回路24は、第1ECC回路24a、及び第2ECC回路24bを有する。第1ECC回路24aは、例えば、LDPC(low-density parity check)等の軟判定に基づくエラー検出用データの生成、エラーの検出及び訂正、あるいはBCH符号およびリードソロモン符号等の硬判定に基づくエラー検出用データの生成、エラーの検出及び訂正を行う。第2ECC回路24bは、例えば、パリティビット(あるいは、パリティコード)を用いたエラー検出用データの生成、及びエラーの検出を行う。第2ECC回路24bは、メモリエラーの検出を行う第1ECC回路24aよりも、計算負荷が軽く、その代わりに訂正能力が低い。第1ECC回路24aが行うエラー検出及び訂正方式は、上記に限るわけではなく、その他のエラー検出及び訂正方式を用いてもよい。第2ECC回路24bが行うエラー検出及び訂正方式も、上記に限るわけではなく、その他のエラー検出及び訂正方式を用いてもよい。
【0102】
第1ECC回路24a及び第2ECC回路24bは、半導体記憶装置10に書き込まれるデータに対してエラー検出用データを生成する。生成されたエラー検出用データを含むデータが半導体記憶装置10に送信される。また、第1ECC回路24a及び第2ECC回路24bは、半導体記憶装置10から読み出され、メモリコントローラ20に送信されたデータに対して、エラー検出用データを用いてデータに発生したエラーを検出し、エラーを訂正する。
【0103】
図8の(a)に、第1実施形態においてメモリコントローラ20と半導体記憶装置10との間で送受信されるデータのデータ構造を示す。以降、メモリコントローラ20と半導体記憶装置10との間で送受信されるデータを、伝送データと称する。伝送データは、データ領域と冗長領域を備える。データ領域には、データ本体DAが含まれる。冗長領域には、ECCデータEDとパリティビットが含まれる。メモリコントローラ20の第2ECC回路24bで生成されるパリティビットを伝送パリティPCと記し、半導体記憶装置10の伝送パリティ検査回路12bで生成されるパリティビットを伝送パリティPMと記す。メモリコントローラ20から半導体記憶装置10に送信される伝送データは、データ本体DA、ECCデータED、及び伝送パリティPCを含む。メモリコントローラ20が半導体記憶装置10から受信する伝送データは、データ本体DA、ECCデータED、及び伝送パリティPMを含む。
【0104】
ECCデータEDは、例えば、8nビット(nは自然数)である。伝送パリティPC及び伝送パリティPMは、例えば、8mビット(mは自然数)である。一般に、ECCデータEDは、伝送パリティPC及び伝送パリティPMよりビット数が多い。nは、例えば、数百程度である。mは、例えば、1以上十未満である。このように、ECCデータEDと伝送パリティPC及びPMとに差があるのはエラーの発生確率に応じてエラー検出及び訂正能力を適正化することで、ECC回路24の増大を防ぎつつ、ECC回路24のエラー検出及び訂正能力を高めるためである。
【0105】
データ本体DAは、メモリコントローラ20が半導体記憶装置10内のメモリセルアレイ11に書き込むべき目標のデータである。ECCデータEDは、データ本体DAに対して、第1ECC回路24aにてLDPC等により生成されたエラー検出用データである。伝送パリティPCは、データ本体DAとECCデータEDに対して、第2ECC回路24bにより生成されたエラー検出用データである。伝送パリティPMは、データ本体DAとECCデータEDに対して、伝送パリティ検査回路12bにより生成されたエラー検出用データである。伝送パリティPC及びPMは、メモリコントローラ20と半導体記憶装置10との間で伝送データの送受信時に発生するエラーを検出するために用いられる。
【0106】
図8の(b)に、半導体記憶装置10内のメモリセルアレイ11に書き込まれるデータ及びメモリセルアレイ11から読み出されるデータを示す。メモリセルアレイ11に書き込まれるデータは、伝送パリティPCを除く、データ本体DAとECCデータEDである。同様に、メモリセルアレイ11から読み出されるデータも、伝送パリティPCを除く、データ本体DAとECCデータEDである。以降、半導体記憶装置10内のメモリセルアレイ11に書き込まれるデータを“書き込みデータ”と称し、メモリセルアレイ11から読み出されるデータを“読み出しデータ”と称する。すなわち、書き込みデータ及び読み出しデータの各々は、データ本体DA及びECCデータEDを含み、伝送パリティPCを含まない。 なお、メモリコントローラ20から半導体記憶装置10に送信された伝送パリティPCは、入出力回路12内のキャッシュレジスタ12aに受信されてもよいし、伝送パリティ検査回路12bに受信されてもよいし、さらにデータレジスタ19Bに受信されてもよい。
【0107】
また、伝送パリティ検査回路12bは、データレジスタ19Bの近傍に設けられてもよい。
図9に示すように、データレジスタ19Bの近傍に設けられた伝送パリティ検査回路を19Baと付す。データレジスタ19Bの近傍に伝送パリティ検査回路19Baが設けられた場合、伝送パリティPCは、入出力回路12内のキャッシュレジスタ12aに受信されてもよいし、データレジスタ19Bあるいは伝送パリティ検査回路19Baに受信されてもよい。伝送パリティ検査回路19Baは、伝送パリティ検査回路12bと同様の構成を有し、メモリコントローラ20内の第2ECC回路24bと同様に、例えば、パリティビットを用いたエラー検出用データの生成、及びエラーの検出を行う。
【0108】
また、読み出し動作時において、第2ECC回路24bは、生成した伝送パリティPCと、伝送パリティ検査回路12bで生成された伝送パリティPMとが一致するか否かを検査する。
【0109】
第2ECC回路24b内で実行される一致検査の一例について説明する。まず、伝送パリティPC及び伝送パリティPMの各ビットは、記憶回路に記憶され、夫々ENORゲート(一致回路)に入力される。次に、ENORゲートでは、入力が一致のときに「1」が出力され、入力が不一致のときに「0」が出力される。最後に、夫々のENORゲートの出力をANDゲートに入力すると、各ビットが全て一致し全て「1」であれば「1」が出力され、不一致のビットが一以上あれば「0」が出力される。
【0110】
第2ECC回路24b内で実行される一致検査の他の例について説明する。この例では、記憶回路を使用しない。シリアルに1ビットずつ流れてくる伝送パリティPC及び伝送パリティPMを、順次、検査回路に入力する。伝送パリティPC及び伝送パリティPMに関する全ビットが入力され終わると、検査結果が出力される。
【0111】
1.1.5 半導体記憶装置のECC回路
前述したように、半導体記憶装置10の入出力回路12は、ECC回路としての伝送パリティ検査回路12bを備える。伝送パリティ検査回路12bは、メモリコントローラ20内の第2ECC回路24bと同様に、例えば、パリティビット(あるいは、パリティコード)を用いたエラー検出用データの生成、及びエラーの検出を行う。
【0112】
書き込み動作時において、伝送パリティ検査回路12bは、メモリコントローラ20から送信される伝送データ内のデータ本体DAとECCデータEDに対して、伝送パリティPMを生成する。この伝送パリティPMは、伝送データがメモリコントローラ20から半導体記憶装置10に送信される間に、伝送データに発生するエラーを検出するためのエラー検出用データである。
【0113】
また、書き込み動作時において、伝送パリティ検査回路12bは、生成した伝送パリティPMと、第2ECC回路24bで生成された伝送パリティPCとが一致するか否かを検査する。
【0114】
伝送パリティ検査回路12b内で実行される一致検査の一例について説明する。まず、伝送パリティPM及び伝送パリティPCの各ビットは、記憶回路に記憶され、夫々ENORゲート(一致回路)に入力される。次に、ENORゲートでは、入力が一致のときに「1」が出力され、入力が不一致のときに「0」が出力される。最後に、夫々のENORゲートの出力をANDゲートに入力すると、各ビットが全て一致し全て「1」であれば「1」が出力され、不一致のビットが一以上あれば「0」が出力される。
【0115】
伝送パリティ検査回路12b内で実行される一致検査の他の例について説明する。この例では、記憶回路を使用しない。シリアルに1ビットずつ流れてくる伝送パリティPC及び伝送パリティPMを、順次、検査回路に入力する。伝送パリティPC及び伝送パリティPMに関する全ビットが入力され終わると、検査結果が出力される。
【0116】
また、読み出し動作時において、伝送パリティ検査回路12bは、メモリセルアレイ11から読み出した読み出しデータ内のデータ本体DAとECCデータEDに対して、伝送パリティPMを生成する。さらに、伝送パリティ検査回路12bは、読み出しデータに伝送パリティPMを付加して伝送データを生成する。この伝送パリティPMは、読み出しデータを含む伝送データが半導体記憶装置10からメモリコントローラ20に送信される間に、伝送データに発生するエラーを検出するためのエラー検出用データである。
【0117】
なお、伝送パリティ検査回路12bは、パリティビットを用いたエラー検出用データの生成のみを行い、パリティビットを用いたエラーの検出はシーケンサ16が行うようにしてもよい。
【0118】
1.2 メモリシステムの書き込み動作
第1実施形態の書き込み動作では、メモリコントローラ20から半導体記憶装置10に送信された伝送データに伝送エラーが発生しているか否かを検査し、伝送エラーが発生している場合、伝送データをメモリコントローラ20から半導体記憶装置10に再度送信する。また、この伝送エラーの検査と並行して、伝送データに含まれる書き込みデータのメモリセルアレイ11への書き込みを実行する。伝送エラーが発生していない場合は、先に送信された伝送データを用い、伝送エラーが発生している場合は、後に送信された伝送データを用いる。さらに、書き込みデータにメモリエラーが発生している場合は、書き込みデータが書き込まれるメモリセルアレイ11のアドレスを変更する、すなわち、書き込みデータが書き込まれるブロックBLKn内のページを変更する。
【0119】
また、書き込み動作は、プログラム動作とプログラムベリファイ動作とを含む。プログラム動作は、メモリセルトランジスタのゲート電極に書き込み電圧を印加することにより、メモリセルトランジスタの電荷蓄積層52に電荷を注入し、メモリセルトランジスタの閾値電圧を上昇させる動作である。プログラムベリファイ動作は、書き込み電圧の印加によって生じたメモリセルトランジスタの閾値電圧が目標電圧に達したか否かを検証する読み出し動作である。
【0120】
次に、
図10、
図11及び
図12を用いて、第1実施形態の書き込み動作におけるデータの流れについてそれぞれ説明する。
【0121】
図10は、第1実施形態の書き込み動作において、伝送パリティPCが入出力回路12内の伝送パリティ検査回路12bに記憶される場合を示す。図中において矢印の下向きが、書き込み動作におけるデータの流れを示す。
【0122】
データ本体DAはRAM22に記憶されている。データ本体DAに対して、第1ECC回路24aによりECCデータEDが生成され、RAM22に送信される。さらに、データ本体DA及びECCデータEDに対して、第2ECC回路24bにより伝送パリティPCが生成され、RAM22に送信される。
【0123】
RAM22に記憶されたデータ本体DA、ECCデータED、及び伝送パリティPCのうち、データ本体DA及びECCデータEDが入出力回路12内のキャッシュレジスタ12aに、伝送パリティPCが伝送パリティ検査回路12bにそれぞれNANDインターフェース回路25を介して送信され、一時的に記憶される。
【0124】
伝送パリティ検査回路12bは、キャッシュレジスタ12aに記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPMを生成する。伝送パリティ検査回路12bは、生成した伝送パリティPMと、NANDインターフェース回路25から受信した伝送パリティPCとが一致するか否かを検査する。
【0125】
上記検査において、伝送パリティPCと伝送パリティPMが一致しない場合、RAM22からNANDインターフェース回路25を介して、あるいはNANDインターフェース回路25からデータ本体DA、ECCデータED、及び伝送パリティPCが再度送信される。 その後、キャッシュレジスタ12aに記憶されたデータ本体DA及びECCデータEDは、データレジスタ19Bに送信され、一時的に記憶される。さらに、データレジスタ19Bに記憶されたデータ本体DA及びECCデータEDは、センスアンプ19Cに送信され、一時的に記憶される。そして、センスアンプ19Cに記憶されたデータ本体DA及びECCデータEDが、メモリセルアレイ11に書き込まれる。
【0126】
図11は、第1実施形態の書き込み動作において、伝送パリティPCが入出力回路12内のキャッシュレジスタ12aに記憶される場合を示す。図中において矢印の下向きが、書き込み動作におけるデータの流れを示す。
【0127】
RAM22に記憶されたデータ本体DA、ECCデータED、及び伝送パリティPCは、入出力回路12内のキャッシュレジスタ12aにNANDインターフェース回路25を介して送信され、一時的に記憶される。
【0128】
伝送パリティ検査回路12bは、キャッシュレジスタ12aに記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPMを生成する。キャッシュレジスタ12aに記憶された伝送パリティPCは、伝送パリティ検査回路12bに送信される。伝送パリティ検査回路12bは、生成した伝送パリティPMと、キャッシュレジスタ12aから受信した伝送パリティPCとが一致するか否かを検査する。
【0129】
上記検査において、伝送パリティPCと伝送パリティPMが一致しない場合、RAM22からNANDインターフェース回路25を介して、あるいはNANDインターフェース回路25からデータ本体DA、ECCデータED、及び伝送パリティPCが再度送信される。
【0130】
その後、キャッシュレジスタ12aに記憶された、伝送パリティPCを除くデータ本体DA及びECCデータEDは、データレジスタ19Bに送信され、一時的に記憶される。さらに、データレジスタ19Bに記憶された、データ本体DA及びECCデータEDは、センスアンプ19Cに送信され、一時的に記憶される。そして、センスアンプ19Cに記憶されたデータ本体DA及びECCデータEDが、メモリセルアレイ11に書き込まれる。
【0131】
図12は、第1実施形態の書き込み動作において、伝送パリティPCがデータレジスタ19Bに記憶され、伝送パリティPMがデータレジスタ19Bの近傍に設けられた伝送パリティ検査回路19Baにて生成される場合を示す。図中において矢印の下向きが、書き込み動作におけるデータの流れを示す。
【0132】
RAM22に記憶されたデータ本体DA、ECCデータED、及び伝送パリティPCは、入出力回路12内のキャッシュレジスタ12aにNANDインターフェース回路25を介して送信され、一時的に記憶される。キャッシュレジスタ12aに記憶されたデータ本体DA、ECCデータED、及び伝送パリティPCは、データレジスタ19Bに送信され、一時的に記憶される。
【0133】
伝送パリティ検査回路19Baは、データレジスタ19Bに記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPMを生成する。データレジスタ19Bに記憶された伝送パリティPCは、伝送パリティ検査回路19Baに送信される。伝送パリティ検査回路19Baは、生成した伝送パリティPMと、データレジスタ19Bから受信した伝送パリティPCとが一致するか否かを検査する。
【0134】
その後、データレジスタ19Bに記憶された、伝送パリティPCを除くデータ本体DA及びECCデータEDは、センスアンプ19Cに送信され、一時的に記憶される。そして、センスアンプ19Cに記憶されたデータ本体DA及びECCデータEDが、メモリセルアレイ11に書き込まれる。
【0135】
以下に、第1実施形態のメモリシステム1における書き込み動作について説明する。
図13は、第1実施形態のメモリシステム1における書き込み動作を示すフローチャートである。
図14及び
図15は、第1実施形態の書き込み動作を示すタイミングチャートである。
図14は、書き込み動作において伝送ステータスをパスし、さらにベリファイステータスをパスした場合を示す。
図15は、書き込み動作において伝送ステータスをフェイルし、さらにベリファイステータスがフェイルした場合を示す。メモリコントローラ20における動作は、CPU21により制御される。半導体記憶装置10における書き込み動作は、シーケンサ16により制御される。
【0136】
図13に示すように、先ず、メモリコントローラ20は、伝送データに含まれるデータ本体DA及びECCデータEDに対して、ECC回路24内の第2ECC回路24bにより伝送パリティPCを生成する(S1)。さらに、メモリコントローラ20は、生成した伝送パリティPCを、データ本体DA及びECCデータEDに付加する。これにより、伝送データは、データ本体DA、ECCデータED、及び伝送パリティPCを含むデータとなる。なお、ECCデータEDは、例えば、ECC回路24内の第1ECC回路24aにより、ステップS51以前に生成されているものとする。
【0137】
次に、時刻t1において、メモリコントローラ20は、データ入力コマンドを半導体記憶装置10に送信する(S2)。例えば、データ入力コマンドは、コマンド“80h”(hは16進数であることを示す)である。続いて、伝送データ内の書き込みデータが書き込まれる記憶場所を指定するカラムアドレス及びロウアドレス(例えば、ブロックアドレス及びページアドレス)を半導体記憶装置10に送信する。さらに、メモリコントローラ20は、伝送データを半導体記憶装置10に送信する(S3)。伝送データは、前述したように、データ本体DA、ECCデータED、及び伝送パリティPCを含む。
【0138】
データ入力コマンド及び伝送データを受信すると、半導体記憶装置10のシーケンサ16は、伝送データをキャッシュレジスタ12aに一時的に記憶する。さらに、伝送データ内の書き込みデータをデータレジスタ19Bに転送する(S4及びS5)。
【0139】
次に、シーケンサ16は、伝送データに含まれる書き込みデータ内のデータ本体DA及びECCデータEDに対して、伝送パリティ検査回路12bにより伝送パリティPMを生成する(S6)。
【0140】
次に、時刻t2において、メモリコントローラ20は、書き込み開始コマンドを半導体記憶装置10に送信する(S7)。例えば、書き込み開始コマンドは、コマンド“10h”である。その後、メモリコントローラ20は、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)を受信するまで待機する(S8)。
【0141】
書き込み開始コマンドを受信すると(S9)、半導体記憶装置10のシーケンサ16は、時刻t3において、データレジスタ19Bに格納された書き込みデータのプログラム動作を開始する(S14)。プログラム動作では、データレジスタ19B内の書き込みデータが、センスアンプ19Cを経由し、ロウアドレスで指定されたメモリセルアレイ11のブロックBLKn内のページに書き込まれる。
【0142】
シーケンサ16からの指令により伝送パリティ検査回路12bは、
図14及び
図15に示すように、このプログラム動作と並行して、メモリコントローラ20から受信した伝送パリティPCと、半導体記憶装置10が生成した伝送パリティPMとが一致するか否かを検査する(S10)。例えば、プログラム動作時には、メモリセルアレイ11に印加する各種電圧が、電圧生成回路17内のチャージポンプにより生成される。このプログラム動作時における電圧生成回路17内のチャージポンプの起動等と、伝送パリティPCと伝送パリティPMの一致検査とが並行して実行される。伝送パリティPC及び伝送パリティPMは、ビット数が比較的少ないため、この検査は、短時間で実行しうる。他方、プログラム動作は、メモリセルアレイ11に印加する各種電圧を生成する電圧生成回路17内のチャージポンプの起動等に時間を要するため、メモリセルアレイ11内のワード線等の配線に電圧が供給される前にS10の検査を終えることができる。なお、プログラム動作と伝送パリティの検査とが並行して実行されるが、これらプログラム動作と伝送パリティ検査とが同時刻に開始される必要はなく、開始時刻がずれていてもよい。
【0143】
シーケンサ16は、伝送パリティ検査回路12bにおける一致検査の結果を受け取る。ステップS10において、伝送パリティPCと伝送パリティPMとが一致しない場合(No)、シーケンサ16は、
図15に示すように、伝送ステータスをフェイルに設定する。すなわち、伝送ステータスがフェイルであることを示す情報を、ステータスレジスタ15Aに記憶する(S11)。そして、半導体記憶装置10はレディ状態となり、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)をメモリコントローラ20に出力する(S12)。
【0144】
一方、伝送パリティPCと伝送パリティPMとが一致した場合、シーケンサ16は、
図14に示すように、伝送ステータスをパスに設定する。すなわち、伝送ステータスがパスであることを示す情報を、ステータスレジスタ15Aに記憶する(S13)。
【0145】
なお、ステップS10の検査後、伝送パリティPC及び伝送パリティPMは、次の書き込み動作等の上書き等により、消去される。
【0146】
また、時刻t4において、シーケンサ16は、プログラム動作の後に実行されるプログラムベリファイ動作を実行する(S15)。プログラム動作とプログラムベリファイ動作は、プログラムベリファイ動作におけるベリファイがパスするまで、所定回数、繰り返し実行される。プログラム動作とプログラムベリファイ動作を所定回数、実行しても、ベリファイがパスしない場合、すなわち、ベリファイを所定回数フェイルした場合(S16、Yes)、シーケンサ16はベリファイステータスをフェイルに設定する。すなわち、ベリファイステータスがフェイルであることを示す情報を、ステータスレジスタ15Aに記憶する(S17)。そして、半導体記憶装置10はレディ状態となり、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)をメモリコントローラ20に出力する(S12)。なお、
図13、
図14及び
図15では、図示を簡略化するため、プログラム動作(S14)及びプログラムベリファイ動作(S15)がそれぞれ1回の場合を示している。
【0147】
一方、プログラムベリファイ動作におけるベリファイがパスした場合(S16、No)、シーケンサ16はベリファイステータスをパスに設定する。すなわち、ベリファイステータスがパスであることを示す情報を、ステータスレジスタ15Aに記憶する(S18)。そして、半導体記憶装置10はレディ状態となり、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)をメモリコントローラ20に出力する(S12)。
【0148】
メモリコントローラ20は、書き込み開始コマンドを送信後、待機状態となり、その後レディ/ビジー信号R/Bnにより半導体記憶装置10がレディ状態であることを知ると(S8)、時刻t5においてステータスリードコマンドを半導体記憶装置10に送信する(S19)。例えば、ステータスリードコマンドは、コマンド“70h”である。
【0149】
ステータスリードコマンドを受信すると(S20)、半導体記憶装置10のシーケンサは、ステータスレジスタ15Aに格納されている伝送ステータス及びベリファイステータスをメモリコントローラ20に送信する(S21)。
【0150】
伝送ステータス及びベリファイステータスを受信すると(S22)、メモリコントローラ20は伝送ステータスがパスに設定されているか、またはフェイルに設定されているかを判定する(S23)。伝送ステータスがフェイルに設定されている場合、メモリコントローラ20はステップS2に戻る。そして、メモリコントローラ20及び半導体記憶装置10は、ステップS2以降の処理を実行する。すなわち、メモリコントローラ20は、
図15に示すように、時刻t6においてデータ入力コマンド“80h”、カラムアドレス及びロウアドレス、伝送データ、及び書き込み開始コマンド“10h”を半導体記憶装置10に再度送信し、メモリコントローラ20及び半導体記憶装置10は以降の処理を実行する。
【0151】
一方、伝送ステータスがパスに設定されている場合、メモリコントローラ20はベリファイステータスがパスに設定されているか、またはフェイルに設定されているかを判定する(S24)。ベリファイステータスがフェイルに設定されている場合、メモリコントローラ20は、書き込みデータが書き込まれるメモリセルアレイ11のブロック内のページを変更し(S25)、言い換えると、半導体記憶装置10に次回に送信するページアドレスを変更し、ステップS2に戻る。そして、メモリコントローラ20及び半導体記憶装置10は、ステップS2以降の処理を実行する。すなわち、メモリコントローラ20は、データ入力コマンド“80h”、カラムアドレス、変更したページアドレスを含むロウアドレス、伝送データ、及び書き込み開始コマンド“10h”を半導体記憶装置10に再度送信し、メモリコントローラ20及び半導体記憶装置10は以降の処理を実行する。
【0152】
一方、ステップS24において、ベリファイステータスがパスに設定されている場合、メモリコントローラ20は書き込み動作を終了する。
【0153】
なお、上述した書き込み動作においては、メモリコントローラ20が書き込み開始コマンドを送信した後、半導体記憶装置10は伝送パリティ検査とプログラム動作とを並行して実行した。ここで、伝送パリティ検査で2つの伝送パリティPC及びPMが一致しない場合、シーケンサ16は、プログラム動作あるいはプログラムベリファイ動作を中断させて、伝送データがメモリコントローラ20から半導体記憶装置10に再度送信されるのを待つようにしてもよい。
図16に、伝送パリティPCとPMが一致せず、シーケンサ16がプログラム動作を中断させる場合のタイミングチャートを示す。この場合、シーケンサ16は伝送ステータスをフェイルに設定する。メモリコントローラ20は、伝送ステータスがフェイルであることを示す情報を受け取ると、時刻t6において、データ入力コマンド、カラムアドレス及びロウアドレス、伝送データ、及び書き込み開始コマンドを半導体記憶装置10に送信する。すなわち、メモリコントローラ20は、半導体記憶装置10に伝送データを再度送信する。
【0154】
また、
図13に示す書き込み動作において、半導体記憶装置10は、ステップS6で伝送パリティPMを生成した後、ステップS9で書き込み開始コマンドを受信したが、これらは逆であってもよい。すなわち、書き込み開始コマンドを受信した後に、伝送パリティPMを生成してもよい。
【0155】
また、
図13に示す書き込み動作において、半導体記憶装置10は、ステップS5で伝送パリティPCを受信した後、続いて書き込み開始コマンドを受信し(S9)、続いてプログラム動作を開始し(S14)、その後に、伝送パリティPMを生成してもよい。
【0156】
また、
図13に示す書き込み動作において、半導体記憶装置10は、ステップS5で伝送パリティPCを受信し、ステップS6で伝送パリティPMを生成した後、伝送パリティPCと伝送パリティPMとが一致するかを検査し(S10)、伝送ステータスをパスに設定し(S13)、その後に、書き込み開始コマンドを受信してもよい(S9)。
【0157】
1.3 メモリシステムの読み出し動作
第1実施形態の読み出し動作では、半導体記憶装置10からメモリコントローラ20に送信された、読み出しデータを含む伝送データに伝送エラーが発生している場合は、半導体記憶装置10内のキャッシュレジスタ12aからメモリコントローラ20に伝送データを再度送信する。このように、伝送エラーが発生している場合は、伝送データを再度送信するだけであるため、伝送エラーを訂正するのに要する時間を短縮できる。さらに、読み出しデータにメモリエラーが発生している場合は、ソフトビットリード等の精度の高いエラー訂正が可能な読み出し方法を実行する。
【0158】
次に、
図10、
図11及び
図12を用いて、第1実施形態の読み出し動作におけるデータの流れについてそれぞれ説明する。
【0159】
図10は、第1実施形態の読み出し動作において、伝送パリティPMが入出力回路12内の伝送パリティ検査回路12bにて生成され、NANDインターフェース回路25に送信される場合を示す。図中において矢印の上向きが、読み出し動作におけるデータの流れを示す。
【0160】
メモリセルアレイ11から読み出されたデータ本体DA及びECCデータEDは、センスアンプ19Cを介してデータレジスタ19Bに一時的に記憶される。データレジスタ19Bに記憶されたデータ本体DA及びECCデータEDは、入出力回路12内のキャッシュレジスタ12aに送信され、一時的に記憶される。
【0161】
伝送パリティ検査回路12bは、キャッシュレジスタ12aに記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPMを生成する。キャッシュレジスタ12aに記憶されたデータ本体DA及びECCデータED、並びに生成された伝送パリティPMは、メモリコントローラ20内のNANDインターフェース回路25に送信され、一時的に記憶される。NANDインターフェース回路25に記憶されたデータ本体DA、ECCデータED及び伝送パリティPMは、RAM22に送信され、記憶される。
【0162】
第2ECC回路24bは、RAM22に記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPCを生成する。RAM22に記憶された伝送パリティPMは、第2ECC回路24bに送信される。次に、生成された伝送パリティPCと、RAM22に記憶された伝送パリティPMとが一致するか否かを検査する。
【0163】
上記検査において、伝送パリティPCと伝送パリティPMが一致しない場合、キャッシュレジスタ12a及び伝送パリティ検査回路12bからデータ本体DA、ECCデータED及び伝送パリティPMが再度送信される。一方、伝送パリティPCと伝送パリティPMが一致した場合、第2ECC回路24aにより、ECCデータEDを用いてRAM22に記憶されたデータ本体DAに対してエラー検査が実行される。
【0164】
図11は、第1実施形態の読み出し動作において、伝送パリティPMが入出力回路12内の伝送パリティ検査回路12bにて生成され、キャッシュレジスタ12aに送信される場合を示す。図中において矢印の上向きが、読み出し動作におけるデータの流れを示す。
【0165】
メモリセルアレイ11から読み出されたデータ本体DA及びECCデータEDは、センスアンプ19Cを介してデータレジスタ19Bに一時的に記憶される。データレジスタ19Bに記憶されたデータ本体DA及びECCデータEDは、入出力回路12内のキャッシュレジスタ12aに送信され、一時的に記憶される。
【0166】
伝送パリティ検査回路12bは、キャッシュレジスタ12aに記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPMを生成する。生成された伝送パリティPMは、キャッシュレジスタ12aに送信され、一時的に記憶される。
【0167】
キャッシュレジスタ12aに記憶されたデータ本体DA、ECCデータED、及び伝送パリティPMは、メモリコントローラ20内のNANDインターフェース回路25に送信され、一時的に記憶される。NANDインターフェース回路25に記憶されたデータ本体DA、ECCデータED、及び伝送パリティPMは、RAM22に送信され、記憶される。
【0168】
第2ECC回路24bは、RAM22に記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPCを生成する。RAM22に記憶された伝送パリティPMは、第2ECC回路24bに送信される。次に、第2ECC回路24bは、生成された伝送パリティPCと、RAM22に記憶された伝送パリティPMとが一致するか否かを検査する。
【0169】
上記検査において、伝送パリティPCと伝送パリティPMが一致しない場合、キャッシュレジスタ12aからデータ本体DA、ECCデータED、及び伝送パリティPMが再度送信される。一方、伝送パリティPCと伝送パリティPMが一致した場合、第2ECC回路24aにより、ECCデータEDを用いてRAM22に記憶されたデータ本体DAに対してエラー検査が実行される。
【0170】
図12は、第1実施形態の読み出し動作において、伝送パリティPMがデータレジスタ19Bの近傍に設けられた伝送パリティ検査回路19Baにて生成される場合を示す。図中において矢印の上向きが、読み出し動作におけるデータの流れを示す。
【0171】
メモリセルアレイ11から読み出されたデータ本体DA及びECCデータEDは、センスアンプ19Cを介してデータレジスタ19Bに一時的に記憶される。
【0172】
伝送パリティ検査回路19Baは、データレジスタ19Bに記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPMを生成する。生成された伝送パリティPMは、データレジスタ19Bに送信され、一時的に記憶される。
【0173】
データレジスタ19Bに記憶されたデータ本体DA、ECCデータED、及び伝送パリティPMは、入出力回路12内のキャッシュレジスタ12aに送信され、一時的に記憶される。
【0174】
キャッシュレジスタ12aに記憶されたデータ本体DA、ECCデータED、及び伝送パリティPMは、メモリコントローラ20内のNANDインターフェース回路25に送信され、一時的に記憶される。NANDインターフェース回路25に記憶されたデータ本体DA、ECCデータED、及び伝送パリティPMは、RAM22に送信され、記憶される。
【0175】
第2ECC回路24bは、RAM22に記憶されたデータ本体DA及びECCデータEDに対して伝送パリティPCを生成する。RAM22に記憶された伝送パリティPMは、第2ECC回路24bに送信される。次に、生成された伝送パリティPCと、RAM22に記憶された伝送パリティPMとが一致するか否かを検査する。
【0176】
上記検査において、伝送パリティPCと伝送パリティPMが一致しない場合、キャッシュレジスタ12aからデータ本体DA、ECCデータED、及び伝送パリティPMが再度送信される。一方、伝送パリティPCと伝送パリティPMが一致した場合、第2ECC回路24aにより、ECCデータEDを用いてRAM22に記憶されたデータ本体DAに対してエラー検査が実行される。
【0177】
以下に、第1実施形態のメモリシステム1における読み出し動作について説明する。
図17は、第1実施形態のメモリシステム1における読み出し動作を示すフローチャートである。
図18、
図19及び
図20は、第1実施形態の読み出し動作を示すタイミングチャートである。
図18は、読み出し動作において伝送パリティPMのエラー検査をパスし、さらにECCデータEDのエラー検査をパスした場合を示す。
図19は、読み出し動作において伝送パリティPMのエラー検査をパスし、その後ECCデータEDのエラー検査をフェイルした場合を示す。
図20は、読み出し動作において伝送パリティPMのエラー検査をフェイル、その後、伝送パリティPMのエラー検査をパスし、さらにECCデータEDのエラー検査をパスした場合を示す。メモリコントローラ20における動作は、CPU21により制御される。半導体記憶装置10における読み出し動作は、シーケンサ16により制御される。
【0178】
メモリコントローラ20から送信され、半導体記憶装置10に通常の読み出し動作、すなわちメモリセルアレイ11から、センスアンプ19Cを介して、データレジスタ19Bにデータを格納することを命ずるコマンドを、ノーマルリードコマンドと称する。また、メモリコントローラ20から送信され、半導体記憶装置10に、データレジスタ19Bから、キャッシュレジスタ12aを介して、メモリコントローラ20へのデータ出力を命ずるコマンドを、データ出力動作コマンドと称する。また、メモリコントローラ20から送信され、半導体記憶装置10にソフトビットリードを命ずるコマンドを、ソフトビットリードコマンドと称する。
【0179】
先ず、メモリコントローラ20は、ノーマルリードコマンドを半導体記憶装置10に送信する。例えば、ノーマルリードコマンドは、読み出しアドレス入力コマンド“00h”及び読み出し開始コマンド“30h”を含む。
図17乃至
図20に示すように、メモリコントローラ20は、時刻t11において、読み出しアドレス入力コマンド“00h”を半導体記憶装置10に送信する(S31)。続いて、読み出し対象である記憶場所を指定するカラムアドレス及びロウアドレス(例えば、ブロックアドレス及びページアドレス)を半導体記憶装置10に送信する。さらに、読み出し開始コマンド“30h”を半導体記憶装置10に送信する(S33)。なお、読み出しアドレス入力コマンド“00h”は、読み出し対象のアドレスを入力することを通知するコマンドである。読み出し開始コマンド“30h”は、読み出し対象のアドレスが指定する記憶場所に対して読み出しを開始することを命ずるコマンドである。
【0180】
コマンド“00h”、カラムアドレス及びロウアドレス、及びコマンド“30h”を受信すると(S32及びS34)、時刻t12において、半導体記憶装置10のシーケンサ16は、ロウアドレスが指定するブロック内のページに対して読み出しを実行する(S35)。そして、ブロック内のページから読み出した読み出しデータを、センスアンプ19C、データレジスタ19Bを介してキャッシュレジスタ12aに一時的に記憶する(S36)。さらに、シーケンサ16は、読み出しが終了すると、レディ/ビジー信号R/Bnをレディ状態(即ち、“H”レベル)に設定する(S37)。
【0181】
半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bnをメモリコントローラ20が受信すると(S38)、時刻t13において、メモリコントローラ20は、読み出しアドレス入力コマンド“05h”、カラムアドレス及びロウアドレス、及びデータ出力動作コマンドを半導体記憶装置10に送信する(S39及びS40)。例えば、データ出力動作コマンドは、コマンド“E0h”を含む。なお、ここでは、読み出しアドレス入力コマンド“00h”及びアドレスを再度送信したが、再送する必要がないときは省略してもよい。
【0182】
データ出力動作コマンド“E0h”を受信すると(S41)、時刻t14において、半導体記憶装置10のシーケンサ16は、キャッシュレジスタ12aに記憶された読み出しデータ内のデータ本体DA及びECCデータEDに対して、伝送パリティPMを生成する(S42)。この伝送パリティPMは、入出力回路12内の伝送パリティ検査回路12bにより生成される。伝送パリティ検査回路12bは、生成した伝送パリティPMを、読み出しデータに付加して伝送データを生成する。
【0183】
次に、シーケンサ16は、伝送パリティPMを含む伝送データをメモリコントローラ20に送信する(S43)。
【0184】
伝送データを受信すると(S44)、時刻t15において、メモリコントローラ20内において、第2ECC回路24bは、伝送データに含まれる伝送パリティPMにエラーが発生しているか否か、すなわち伝送パリティPMのエラー検査をパスするか否かを判定する(S45及びS46)。具体的には、第2ECC回路24bは、まず、RAM22に記憶された伝送データ内のデータ本体DA及びECCデータEDに対して、伝送パリティPCを生成する(S45)。RAM22に記憶された伝送パリティPMは、第2ECC回路24bに送信される。次に、生成された伝送パリティPCと、RAM22に記憶された伝送データ内の伝送パリティPMが一致するか否かを検査する(S46)。伝送パリティPC及び伝送パリティPMは、ビット数が比較的少ないため、この検査は、短時間で実行しうる。
図20に示すように、伝送パリティPMのエラー検査をパスしない場合(No)、メモリコントローラ20はステップS40に戻り、データ出力動作コマンドを半導体記憶装置10に再度送信する。
【0185】
データ出力動作コマンドを受信すると、半導体記憶装置10のシーケンサ16は、キャッシュレジスタ12aに記憶された伝送データ内のデータ本体DA及びECCデータEDに対して、伝送パリティPMを再度生成する(S42)。その後、ステップS43以降の処理を繰り返し実行する。なお、ステップS41にてデータ出力動作コマンドを再度受信した場合、シーケンサ16は、ステップS42をスキップしてステップS43に移行し、伝送データをメモリコントローラ20に送信してもよい。すなわち、ステップS42において、伝送パリティPMを再度生成したが、伝送パリティ検査回路12bが伝送パリティPMを保持しており、その伝送パリティPMをデータ本体DA及びECCデータEDに付与して伝送データを生成し、ステップS43で伝送データを送信してもよい。
【0186】
一方、ステップS45において、
図18に示すように、伝送パリティPMのエラー検査をパスした場合(Yes)、時刻t16において、メモリコントローラ20はECCデータEDを用いて伝送データ内のデータ本体DAにエラーが発生しているか否か、すなわちECCデータEDによるエラー検査をパスするか否かを判定する(S47)。
【0187】
図19に示すように、ECCデータEDによるエラー検査をパスしない場合(No)、メモリコントローラ20はソフトビットリードコマンドを半導体記憶装置10に送信する(S48)。ソフトビットリードコマンドを受信すると、半導体記憶装置10は、ステップS35においてソフトビットリードを実行し、その後、ステップS36以降の処理を繰り返し実行する。ソフトビットリードについては後述する。
【0188】
一方、ステップS47において、ECCデータEDによるエラー検査をパスした場合(Yes)、メモリコントローラ20は読み出し動作を終了する。
【0189】
なお、ステップS46の検査後、伝送パリティPC及び伝送パリティPMは、次の読み出し動作等の上書き等により、消去される。
【0190】
また、ステップS46及びS47では、伝送パリティPMを用いたエラー検査の後に、ECCデータEDを用いたエラー検査を実行したが、これらは同時に並行して行ってもよい。
【0191】
また、ノーマルリードコマンドは、メモリセルアレイ11からセンスアンプ19C、データレジスタ19B、キャッシュレジスタ12aを介して、メモリコントローラ20へのデータ出力を命ずるコマンドであっても良い。この場合、
図17におけるステップS37~S41、及び
図18~
図20における時刻t13-14の動作がスキップされる。すなわち、読み出し終了直後に伝送パリティPMが生成され、データ本体DA、ECCデータED及び伝送パリティPMがメモリコントローラ20に送信される。
【0192】
以下に、ステップS35において実行されるソフトビットリードの動作について説明する。
図21は、ソフトビットリードの動作の概要を説明するための図である。
図21は、複数のメモリセルトランジスタの閾値電圧の分布の一例として、ステート“A”及びステート“B”の閾値電圧分布を示す。
【0193】
図21に示すように、ソフトビットリードは、ノーマルリードと、複数のシフトリードとを含む。ノーマルリードは、基本的な読み出し方式であり、ノーマルリードにおける読み出し電圧がシフトリードの読み出し電圧の基準となる。シフトリードは、ノーマルリードの読み出し電圧をシフトさせた読み出し方式であり、ノーマルリードにおける読み出し電圧の標準値を基準として、標準値に対するシフト量が設定される。
【0194】
図21の例では、ノーマルリードは、標準値として読み出し電圧BRが対応している。複数のシフトリードは、ノーマルリードの読み出し電圧BRに対して、それぞれ±3Δ、±2Δ、及び±Δだけシフトさせた読み出し電圧(BR±3Δ、BR±2Δ、及びBR±Δ)が対応している。すなわち、ソフトビットリードによって、7つの異なる読み出し電圧(BR-3Δ、BR-2Δ、BR-Δ、BR、BR+Δ、BR+2Δ、及びBR+3Δ)による読み出し動作が実行され、7つの読み出しデータが得られる。ソフトビットリード動作では、これら複数の読み出し動作は連続して実行される。
【0195】
ECC回路24は、ソフトビットリードによって連続して読み出された複数の読み出しデータを用いて、複数のメモリセルトランジスタの閾値電圧の分布を推定する。これにより、ECC回路24は、1回の読み出しデータのみに基づく誤り訂正よりも精度の高い誤り訂正を実行する。
【0196】
また、
図19に示すように、ソフトビットリードコマンドに従って半導体記憶装置10にて行われる読み出しの時間TR3は、読み出し開始コマンドに従って半導体記憶装置10にて行われる読み出しの時間TR2より長い。さらに、読み出し開始コマンドに従って半導体記憶装置10にて行われる読み出しの時間TR2は、データ出力動作コマンドに従って半導体記憶装置10にて行われる読み出しの時間TR1より長い。
【0197】
1.4 第1実施形態の効果
第1実施形態によれば、書き込み動作及び読み出し動作の時間を短縮させることができる半導体記憶装置及びメモリシステムを提供できる。
【0198】
第1実施形態の構成では、書き込み動作及び読み出し動作においてデータに発生したエラーが、メモリコントローラ20と半導体記憶装置10との間でデータを伝送したときに発生したエラー(即ち、伝送エラー)なのか、それともメモリセルアレイ11に対するデータの書き込み及び読み出しで発生したエラー(即ち、メモリエラー)なのかを区別することができる。
【0199】
一般に、メモリエラーは、発生確率が比較的高く、メモリエラーの訂正には、例えば、LDPC等のエラー訂正能力が高く、計算量が多いECCを用いる。従来は、伝送エラーとメモリエラーを区別していなかったため、伝送エラーも、訂正能力が高く計算量が多いECCで訂正していたと思われる。しかしながら、一般に、伝送エラーは、メモリエラーより発生確率が低く、パリティ等の訂正能力が低く計算量が少ないECCを用いて、エラー検出ができる。このため、第1実施形態の構成では、書き込み動作や読み出し動作で送受信されるデータに伝送パリティを用いることにより、伝送エラーを短時間で検出できる。
【0200】
また、第1実施形態の構成では、書き込み動作においてメモリコントローラ20から半導体記憶装置10に書き込みデータを含む伝送データを伝送した際に、伝送データに伝送エラーが発生した場合、伝送データをメモリコントローラ20から半導体記憶装置10に再度送信することにより、書き込みデータが含む伝送エラーを短い時間で訂正することができる。
【0201】
なお、一般に、伝送エラーは、メモリコントローラ20が接続する半導体記憶装置10の数が多く、信号の周波数が高い程、高頻度で発生するランダムな事象である。ランダムな事象ゆえに、2回連続して伝送エラーが生じる確率は比較的低い。このため、書き込みデータを再度送信した場合、高い確率で、再度送信した書き込みデータに伝送エラーは生じない。
【0202】
また、第1実施形態の構成では、書き込み動作において伝送エラーの検査と、書き込みデータのメモリセルアレイ11へのプログラミング動作を並行して実行することにより、書き込み動作時間に与える影響を最小に抑えることができる、すなわち、書き込み動作に要する時間が増加するのを抑制することができる。
【0203】
また、第1実施形態の構成では、読み出し動作において半導体記憶装置10からメモリコントローラ20に読み出しデータを含む伝送データを伝送した際に、伝送データに伝送エラーが発生した場合、伝送データを半導体記憶装置10からメモリコントローラ20に再度送信することにより、読み出しデータが含む伝送エラーを短い時間で訂正することができる。なお、書き込み動作と同様の理由で、読み出しデータを再度送信した場合、高い確率で、再度送信した読み出しデータに伝送エラーは生じない。これにより、読み出し動作に要する時間を短縮させることができる。
【0204】
また、第1実施形態の構成では、読み出し動作において読み出しデータに発生したエラーが伝送エラーか、あるいはメモリエラーかに応じて、適する動作を選択し実行することができる。
【0205】
一般に、読み出し動作において読み出しデータにエラーが発生した場合、ソフトビットリードなどの読み出し動作を実行することが考えられる。しかし、ソフトビットリードは、高い精度のエラー訂正が可能だが、訂正の速度が遅いという問題がある。第1実施形態の構成では、読み出しデータに発生したエラーが伝送エラーか、あるいはメモリエラーかを区別できる。そして、エラーが伝送エラーである場合、読み出しデータを半導体記憶装置10からメモリコントローラ20に再度送信する。これにより、訂正の速度が遅いソフトビットリードを用いずに、読み出しデータに発生した伝送エラーを訂正できる。一方、読み出しデータに発生したエラーがメモリエラーである場合、半導体記憶装置10において高い精度のエラー訂正が可能なソフトビットリードを実行する。これにより、読み出しデータに発生したエラーを適正なエラー訂正手段で訂正できると共に、読み出し動作に要する時間を短縮させることができる。
【0206】
なお、メモリエラーを訂正する読み出し動作として、上記ではソフトビットリードを挙げたが、これに限られるものではない。例えば、ソフトビットリードに代えて、複数回の読み出しによってプログラム動作で用いる最適な読み出し電圧を探索する読み出し動作(以下、Vthトラッキングリードと称す)を用いてもよい。Vthトラッキングリードは、例えば、ページ内のメモリセルトランジスタの閾値電圧分布を探索し、得られた閾値電圧分布に応じて補正された読み出し電圧を用いて、プログラム動作を行う読み出し動作である。
【0207】
2.第2実施形態
第2実施形態のメモリシステムについて説明する。第1実施形態では、メモリコントローラ20から送信された、書き込みデータを含む伝送データに伝送エラーが発生しているか否かを検査すると共に、この伝送エラーの検査と並行して書き込みデータをメモリセルアレイ11に書き込んだが、第2実施形態では、伝送エラーの検査をパスした後に、書き込みデータを半導体記憶装置10のメモリセルアレイ11に書き込む。第2実施形態では主に第1実施形態と異なる点について説明する。
【0208】
2.1 メモリシステムの構成
第2実施形態におけるメモリコントローラ20及び半導体記憶装置10の回路構成は第1実施形態と同様である。
【0209】
2.2 メモリシステムの書き込み動作
以下に、第2実施形態のメモリシステム1における書き込み動作について説明する。
図22は、第2実施形態のメモリシステム1における書き込み動作を示すフローチャートである。
図23及び
図24は、第2実施形態の書き込み動作を示すタイミングチャートである。
図23は、書き込み動作において伝送ステータスをパスし、さらにベリファイステータスをパスした場合を示す。
図24は、書き込み動作において伝送ステータスをフェイル、その後、伝送ステータスをパスし、さらにベリファイステータスをパスした場合を示す。メモリコントローラ20における動作は、CPU21により制御される。半導体記憶装置10における書き込み動作は、シーケンサ16により制御される。
【0210】
図22に示すように、先ず、メモリコントローラ20は、伝送データに含まれるデータ本体DA及びECCデータEDに対して、ECC回路24内の第2ECC回路24bにより伝送パリティPCを生成する(S51)。さらに、メモリコントローラ20は、生成した伝送パリティPCを、データ本体DA及びECCデータEDに付加する。これにより、伝送データは、データ本体DA、ECCデータED、及び伝送パリティPCを含むデータとなる。
【0211】
次に、時刻t21において、メモリコントローラ20は、データ入力コマンドを半導体記憶装置10に送信する(S52)。例えば、データ入力コマンドは、コマンド“80h”である。続いて、伝送データ内の書き込みデータが書き込まれる記憶場所を指定するカラムアドレス及びロウアドレスを半導体記憶装置10に送信する。さらに、メモリコントローラ20は、伝送データを半導体記憶装置10に送信する(S53)。伝送データは、データ本体DA、ECCデータED、及び伝送パリティPCを含む。その後、メモリコントローラ20は、半導体記憶装置10における伝送パリティPCに対する検査が終了し、レディ/ビジー信号R/Bnにより半導体記憶装置10がレディ状態であることを知るまで待機する(S54)。
【0212】
データ入力コマンド及び伝送データを受信すると、半導体記憶装置10のシーケンサ16は、伝送データをキャッシュレジスタ12aに一時的に記憶する。さらに、伝送データ内の書き込みデータをデータレジスタ19Bに転送する(S55及びS56)。
【0213】
次に、シーケンサ16は、伝送データに含まれる書き込みデータ内のデータ本体DA及びECCデータEDに対して、伝送パリティ検査回路12bにより伝送パリティPMを生成する(S57)。
【0214】
次に、時刻t22において、シーケンサ16からの指令により伝送パリティ検査回路12bは、メモリコントローラ20から受信した伝送パリティPCと、半導体記憶装置10が生成した伝送パリティPMとが一致するか否かを検査する(S58)。伝送パリティPCと伝送パリティPMとが一致しない場合(No)、シーケンサ16は、
図24に示すように、伝送ステータスをフェイルに設定する。すなわち、伝送ステータスがフェイルであることを示す情報を、ステータスレジスタ15Aに記憶する(S59)。一方、伝送パリティPCと伝送パリティPMとが一致する場合(Yes)、シーケンサ16は、
図23に示すように、伝送ステータスをパスに設定する。すなわち、伝送ステータスがパスであることを示す情報を、ステータスレジスタ15Aに記憶する(S60)。その後、半導体記憶装置10はレディ状態となり、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)をメモリコントローラ20に出力する(S61)。
【0215】
メモリコントローラ20は、伝送データを送信後、待機状態となり、その後レディ/ビジー信号R/Bnにより半導体記憶装置10がレディ状態であることを知ると(S54)、時刻t23においてステータスリードコマンドを半導体記憶装置10に送信する(S62)。例えば、ステータスリードコマンドは、コマンド“70h”である。
【0216】
ステータスリードコマンドを受信すると(S63)、半導体記憶装置10のシーケンサ16は、ステータスレジスタ15Aに格納されている伝送ステータスをメモリコントローラ20に送信する(S64)。
【0217】
伝送ステータスを受信すると(S65)、メモリコントローラ20は伝送ステータスがパスに設定されているか、またはフェイルに設定されているかを判定する(S66)。伝送ステータスがフェイルに設定されている場合、メモリコントローラ20はステップS52に戻る。そして、メモリコントローラ20及び半導体記憶装置10は、ステップS52以降の処理を実行する。すなわち、メモリコントローラ20は、
図24に示すように、データ入力コマンド“80h”、カラムアドレス及びロウアドレス、及び伝送データを半導体記憶装置10に再度送信し、メモリコントローラ20及び半導体記憶装置10は以降の処理を実行する。
【0218】
一方、伝送ステータスがパスに設定されている場合、メモリコントローラ20は、時刻t24において、書き込み開始コマンドを半導体記憶装置10に送信する(S67)。例えば、書き込み開始コマンドは、コマンド“10h”である。その後、メモリコントローラ20は、半導体記憶装置10におけるプログラム動作及びプログラムベリファイ動作が終了するまで待機する(S68)。すなわち、プログラム動作及びプログラムベリファイ動作が終了し、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)を受信するまで、メモリコントローラ20は待機する。
【0219】
書き込み開始コマンドを受信すると(S69)、半導体記憶装置10のシーケンサ16は、時刻t25において、データレジスタ19Bに格納された書き込みデータのプログラム動作を開始する(S70)。プログラム動作では、データレジスタ19B内の書き込みデータが、ロウアドレスで指定されたメモリセルアレイ11のブロックBLKnのページに書き込まれる。
【0220】
次に、時刻t26において、シーケンサ16は、プログラム動作の後に実行されるプログラムベリファイ動作を実行する(S71)。プログラム動作とプログラムベリファイ動作は、プログラムベリファイ動作におけるベリファイがパスするまで、所定回数、繰り返し実行される。プログラム動作とプログラムベリファイ動作を所定回数、実行しても、ベリファイがパスしない場合、すなわち、ベリファイを所定回数フェイルした場合(S72、Yes)、シーケンサ16はベリファイステータスをフェイルに設定する。すなわち、ベリファイステータスがフェイルであることを示す情報を、ステータスレジスタ15Aに記憶する(S73)。一方、プログラムベリファイ動作におけるベリファイをパスした場合(No)、シーケンサ16はベリファイステータスをパスに設定する。すなわち、ベリファイステータスがパスであることを示す情報を、ステータスレジスタ15Aに記憶する(S74)。そして、半導体記憶装置10はレディ状態となり、半導体記憶装置10がレディ状態であることを示すレディ/ビジー信号R/Bn(即ち、“H”レベル)をメモリコントローラ20に出力する(S75)。
【0221】
メモリコントローラ20は、書き込み開始コマンドを送信後、待機状態となり、その後レディ/ビジー信号R/Bnにより半導体記憶装置10がレディ状態であることを知ると(S68)、時刻t27において、ステータスリードコマンドを半導体記憶装置10に送信する(S76)。例えば、ステータスリードコマンドは、コマンド“70h”である。
【0222】
ステータスリードコマンドを受信すると(S77)、半導体記憶装置10のシーケンサ16は、ステータスレジスタ15Aに格納されているベリファイステータスをメモリコントローラ20に送信する(S78)。
【0223】
ベリファイステータスを受信すると(S79)、メモリコントローラ20はベリファイステータスがパスに設定されているか、またはフェイルに設定されているかを判定する(S80)。ベリファイステータスがフェイルに設定されている場合、メモリコントローラ20は、書き込みデータが書き込まれるメモリセルアレイ11のブロック内のページを変更し(S81)、言い換えると、半導体記憶装置10に次回に送信するページアドレスを変更し、ステップS52に戻る。そして、メモリコントローラ20及び半導体記憶装置10は、ステップS52以降の処理を実行する。すなわち、メモリコントローラ20は、データ入力コマンド“80h”、カラムアドレス、変更したページアドレスを含むロウアドレス、及び伝送データを半導体記憶装置10に再度送信し、メモリコントローラ20及び半導体記憶装置10は以降の処理を実行する。
【0224】
一方、ステップS80において、ベリファイステータスがパスに設定されている場合、メモリコントローラ20は書き込み動作を終了する。
【0225】
2.3 第2実施形態の効果
第2実施形態によれば、書き込み動作の時間を短縮させることができる半導体記憶装置及びメモリシステムを提供できる。
【0226】
また、第2実施形態の構成では、書き込み動作においてメモリコントローラ20から半導体記憶装置10に書き込みデータを含む伝送データを伝送した際に、伝送データに伝送エラーが発生した場合、伝送データをメモリコントローラ20から半導体記憶装置10に再度送信することにより、書き込みデータが含む伝送エラーを短い時間で訂正することができる。
【0227】
また、第2実施形態の構成では、書き込み動作において伝送エラーの検査にパスした場合に、書き込みデータのメモリセルアレイ11へのプログラミング動作を実行することにより、伝送エラーを含んだ書き込みデータがメモリセルアレイ11に書き込まれるのを確実に防ぐことができる。これにより、書き込み済みのメモリセルが増加することを抑制することができる。
【0228】
3.その他
更に、上記実施形態では半導体記憶装置としてNAND型フラッシュメモリを例に説明したが、NAND型フラッシュメモリに限らず、その他の半導体記憶装置全般に適用でき、更には半導体記憶装置以外の種々の記憶装置に適用できる。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることができる。
【0229】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【0230】
例えば、第1実施形態と、第2実施形態とは、SET FEATURE等によって切り替えることが可能であってもよい。この場合、書き込み済みメモリセルの比率に応じて、第1実施形態と、第2実施形態とを、切り替えてもよい。例えば、書き込み済みメモリセルの比率が低ければ、第1実施形態のモードとし、書き込み済みメモリセルの比率が高ければ、第2実施形態のモードとする。
【符号の説明】
【0231】
1…メモリシステム、2…ホスト装置、10…半導体記憶装置、11…メモリセルアレイ、12…入出力回路、12a…キャッシュレジスタ、12b…伝送パリティ検査回路、13…ロジック制御回路、14…レディ/ビジー回路、15…レジスタ群、15A…ステータスレジスタ、15B…アドレスレジスタ、15C…コマンドレジスタ、16…シーケンサ、17…電圧生成回路、18…ロウデコーダ、19A…カラムデコーダ、19B…データレジスタ、19C…センスアンプ、20…メモリコントローラ、21…CPU、22…RAM、23…ROM、24…ECC回路、24a…第1ECC回路、24b…第2ECC回路、25…NANDインターフェース回路、26…ホストインターフェース回路、30…半導体基板、31~35…絶縁層、40~44…導電層、50…半導体層、51…トンネル絶縁層、52…電荷蓄積層、53…ブロック絶縁層、BL0~BLm…ビット線、BLK0~BLKn…ブロック、MT0~MT7…メモリセルトランジスタ、SGD0~SGD3…セレクトゲート線、ST1…セレクトトランジスタ、ST2…セレクトトランジスタ、SU0~SU3…ストリングユニット、WL0~WL7…ワード線。