以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に後続する追加符号を更に付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、追加符号は付さない。
また、以下の説明において2つの動作が「並行して」実行される、とは、当該2つの動作が重複して実行される期間を含むことを意味する。
1.第1実施形態
第1実施形態に係る半導体記憶装置について説明する。
1.1 構成について
まず、第1実施形態に係る半導体記憶装置の構成について説明する。
1.1.1 半導体記憶装置の構成について
第1実施形態に係る半導体記憶装置の構成例について、図1を用いて説明する。
図1に示すように、半導体記憶装置2は、例えば、NAND型フラッシュメモリであり、外部のコントローラ又はホスト機器1(以下、第1実施形態では、単にコントローラ1と言う。)と接続される。
半導体記憶装置2は、複数のプレーンPB(PB0及びPB1)、入出力制御回路11、ロジック制御回路12、アドレスレジスタ13、コマンドレジスタ14、ステータスレジスタ15、シーケンサ16、電圧生成回路17、及びECC回路18を備えている。プレーンPB0及びPB1はそれぞれ、メモリセルアレイ21(21−0及び21−1)、ロウデコーダ22(22−0及び22−1)、センスアンプ23(23−0及び23−1)、データレジスタ24(24−0及び24−1)、並びにカラムデコーダ25(25−0及び25−1)を含む。
メモリセルアレイ21は、複数のブロックBLK(BLK0、BLK1、BLK2…)を含む。ブロックBLKには、いずれのプレーンPBのいずれのブロックBLKであるかを識別可能なアドレスが割当てられる。ブロックBLKは、例えばデータの消去単位となり、同一のブロックBLK内のデータは、一括して消去される。各ブロックBLKは、複数のNANDストリングNS(NS0、NS1、…)を含む。各NANDストリングNSは、行(ロウ)及び列(カラム)に対応付けられた複数のメモリセルトランジスタ(図示せず)を含む。なお、メモリセルアレイ21内のブロック数、1ブロックBLK内のNANDストリング数は、任意の数に設定出来る。
同一行にあるメモリセルトランジスタは同一のワード線に接続され、同一列にあるメモリセルトランジスタは同一のビット線に接続される。データの読出し及び書込みは、同一のワード線に接続された複数のメモリセルトランジスタに対して一括して行われる。この単位を「ページ」と呼ぶ。1ページ分のデータは、例えば、正味のデータと、管理データと、を含む。正味のデータは、「セクタ」と呼ばれる単位で管理される。1ページは、例えば、4つのセクタを含む。管理データは、例えば、誤り訂正のためのECCデータ(パリティ)を含む。誤り訂正は、セクタ毎に行われる。
入出力制御回路11は、コントローラ1と信号IO(IO0〜IO7)を送受信する。信号IOは、例えば8ビットの信号である。信号IOは、半導体記憶装置2とコントローラ1との間で送受信されるデータの実体であり、アドレス、コマンド、及びデータを含む。データは、例えば、書込みデータ及び読出しデータを含む。入出力制御回路11は、信号IO内のコマンド及びアドレスをそれぞれアドレスレジスタ13及びコマンドレジスタ14に転送する。また、入出力制御回路11は、書き込みデータ及び読み出しデータをECC回路18及びデータレジスタ24と送受信する。
ロジック制御回路12は、コントローラ1から信号/CE、CLE、ALE、/WE、/RE、及び/WPを受信する。信号/CEは、半導体記憶装置2をイネーブルにするためのチップイネーブル(Chip Enable)信号である。信号CLEは、信号CLEが“H(High)”レベルである間に半導体記憶装置2に流れる信号IOがコマンドであることを半導体記憶装置2に通知するコマンドラッチイネーブル(Command Latch Enable)信号である。信号ALEは、信号ALEが“H”レベルである間に半導体記憶装置2に流れる信号IOがアドレスであることを半導体記憶装置2に通知するアドレスラッチイネーブル(Address Latch Enable)信号である。また、信号CLE及びALEは、信号CLE及びALEがいずれも“L(Low)”レベルである間に半導体記憶装置2に流れる信号IOがデータであることを半導体記憶装置2に通知する。信号/WEは、信号/WEが“L”レベルである間に半導体記憶装置2に流れる信号IOを半導体記憶装置2に取り込むことを指示するライトイネーブル(Write Enable)信号である。信号/REは、半導体記憶装置2に信号IOを出力することを指示するリードイネーブル(Read Enable)信号である。信号/WPは、データ書込み及び消去の禁止を半導体記憶装置2に指示するライトプロテクト(Write Protect)信号である。
アドレスレジスタ13は、アドレスと認識された信号IOを入出力制御回路11から受信し、一時的に保持する。アドレスレジスタ13は、例えば、当該保持されたアドレスをロウデコーダ22及びセンスアンプ23に転送する。
コマンドレジスタ14は、コマンドと認識された信号IOを入出力制御回路11から受信し、一時的に保持する。コマンドレジスタ14は、例えば、当該保持されたコマンドをシーケンサ16に転送する。
ステータスレジスタ15は、半導体記憶装置2の各種ステータス情報を保持する。ステータス情報には、例えば、読出し動作の際にECC回路18によって生成された誤り訂正結果が含まれる。なお、ステータスレジスタ15は、種々の読出し方式に対応するため、複数の(例えば4つの)誤り訂正結果を同時に保持可能なように構成されることが望ましい。
シーケンサ16は、コマンドレジスタ14からコマンドを受け取り、受け取ったコマンドに基づくシーケンスに従って半導体記憶装置2の全体を制御する。また、シーケンサ16は、信号/RBをコントローラ1に転送して半導体記憶装置2の状態を外部に通知する。信号/RBは、半導体記憶装置2がレディ状態(外部からの命令を受け付ける状態)であるか、ビジー状態(外部からの命令を受け付けない状態)であるかを示すレディビジー(Ready Busy)信号である。
電圧生成回路17は、シーケンサ16からの指示に基づき、データの書込み、読出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路17は、例えば、生成した電圧をメモリセルアレイ21、ロウデコーダ22、及びセンスアンプ23に供給する。
ECC回路18は、誤り検出処理及び誤り訂正処理を行う。より具体的には、データの書込み時には、コントローラ1から受信したデータに基づいて、セクタ毎にパリティを生成し、このパリティと、当該パリティに対応する正味のデータとをデータレジスタ24に転送する。データの読出し時には、データレジスタ24から転送されたデータに含まれるパリティに基づいてセクタ毎にシンドロームを生成し、誤りの有無を検出する。そして、誤りが検出された際には、そのビット位置を特定して誤りを訂正し、誤り訂正後データを生成する。生成された誤り訂正後データは、例えば、データレジスタ24に転送される。また、ECC回路18は、誤り訂正処理の結果として誤り訂正結果を生成し、ステータスレジスタ15に転送する。誤り訂正結果は、例えば、セクタ位置と、エラービット数と、訂正可否情報と、を含む。セクタ位置は、例えば、当該誤り訂正処理が実行されたセクタを識別するための情報を含む。エラービット数は、セクタ毎に検出された誤りビットの数(エラービット数)を含む。訂正可否情報は、誤り訂正処理が正常に実行できたか否かを示す。以下の説明では、エラービット数及び訂正可否情報を併せて、単に「エラービット数」とも言う。
ロウデコーダ22は、アドレスレジスタ13からアドレス中のロウアドレスを受取り、当該ロウアドレスに基づいてブロックBLKを選択する。そして、選択されたブロックBLKには、ロウデコーダ22を介して電圧生成回路17から供給された電圧が転送される。
センスアンプ23は、データの読出し時には、メモリセルトランジスタからビット線に読み出された読出しデータをセンスし、センスした読出しデータをデータレジスタ24に転送する。センスアンプ23は、データの書込み時には、ビット線を介して書込まれる書込みデータをメモリセルトランジスタに転送する。
データレジスタ24は、書込みデータ又は読出しデータを一時的に保持する。データレジスタ24は、例えば、保持された書込みデータをメモリセルアレイ21に送信する。また、データレジスタ24は、例えば、保持された読出しデータを、カラムデコーダ25を介してECC回路18及び入出力制御回路11に送信する。
カラムデコーダ25は、アドレスレジスタ13からアドレス中のカラムアドレスを受取り、当該カラムアドレスに基づくカラムのデータをデータレジスタ24から読み出す。
1.1.2 メモリセルアレイの構成について
次に、第1実施形態に係る半導体記憶装置のメモリセルアレイの構成について、図2を用いて説明する。図2では、メモリセルアレイ21に含まれる1つのブロックBLKを抽出して示している。
図2に示すように、NANDストリングNSの各々は、例えば8個のメモリセルトランジスタMT(MT0〜MT7)と、選択トランジスタST1と、選択トランジスタST2とを備える。なお、メモリセルトランジスタMTの個数は8個に限られず、16個や32個、64個、128個等であってもよく、その数は限定されるものではない。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタMTは、選択トランジスタST1及びST2の間に、直列接続される。なお、以下の説明では「接続」とは、間に別の導電可能な要素が介在する場合(すなわち、電気的に接続される場合)も含む。
ブロックBLK内の全ての選択トランジスタST1のゲートは、選択ゲート線SGDに共通接続される。また、ブロックBLK内の全ての選択トランジスタST2のゲートは、選択ゲート線SGSに共通接続される。同一のブロックBLK内のメモリセルトランジスタMT0〜MT7の制御ゲートは、それぞれワード線WL0〜WL7に接続される。
また、同一行にあるNANDストリングNSの選択トランジスタST1の他端は、m本のビット線BL(BL0〜BL(m−1)(mは自然数))のいずれかに接続される。また、ビット線BLは、複数のブロックBLKにわたって、同一列のNANDストリングNSに共通接続される。
また、選択トランジスタST2の他端は、ソース線CELSRCに共通接続される。ソース線CELSRCは、例えば、複数のブロックBLKにわたって、複数のNANDストリングNSに共通接続される。
次に、メモリセルアレイ21の断面構造について図3を用いて説明する。図3は、第1実施形態に係る半導体記憶装置のメモリセルアレイの一部の断面構造の一例を示している。
半導体記憶装置2は、半導体基板30上に設けられている。以下の説明では、半導体基板30の表面と平行な面をXY平面とし、XY平面に垂直な方向をZ方向とする。また、X方向とY方向は、互いに直交するものとする。
半導体基板30の上部には、p型ウェル領域30pが設けられる。p型ウェル領域30pの上部には、例えば、複数のn+型不純物拡散領域31〜33がY方向に沿って設けられる。p型ウェル領域30pの上面上のうち、n+型不純物拡散領域31の各々の間には、ブロック絶縁膜34が設けられる。ブロック絶縁膜34の上面上には、例えば、浮遊ゲート(FG)として機能する電荷蓄積層35が設けられる。電荷蓄積層35は、絶縁層であってもよい。電荷蓄積層35の上方には、ワード線WLとして機能する配線層36(WL0〜WL7)が設けられる。配線層36の各々は、例えばX方向に延びる。p型ウェル領域30pの上方のうち、n+型不純物拡散領域31及び32の間には、選択ゲート線SGDとして機能する配線層37が設けられる。p型ウェル領域30pの上方のうち、n+型不純物拡散領域31及び33の間には、選択ゲート線SGSとして機能する配線層38が設けられる。以上のように、p型ウェル領域30pの上方には、選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1がY方向に沿って設けられて、1つのNANDストリングNSを構成している。また、n+型不純物拡散領域32及び33の上面にはそれぞれ、ビット線BL及びソース線CELSRCとして機能する配線層39及び40が設けられる。
1.1.3 データレジスタの構成について
図4は、第1実施形態に係る半導体記憶装置のデータレジスタの構成を説明するためのブロック図である。図4(A)及び図4(B)ではそれぞれ、プレーンPB0に対応するデータレジスタ24−0、及びプレーンPB1に対応するデータレジスタ24−1がそれぞれ示される。
図4(A)に示すように、データレジスタ24−0は、データレジスタ24A及び24Cを含む。データレジスタ24Aは、レジスタA1及びA2を含み、データレジスタ24Cは、レジスタC1及びC2を含む。レジスタA1、A2、C1、及びC2は、例えば、1ページ分のデータを保持し得るメモリ領域を有する。
データレジスタ24Aは、例えば、メモリセルアレイ21−0から読み出された1ページ分のデータのうち、最初に入出力制御回路11に送信される予定のデータが保持される。データレジスタ24Cは、例えば、メモリセルアレイ21−0から読み出された1ページ分のデータのうち、データレジスタ24Aに保持されたデータの後に入出力制御回路11に送信される予定のデータが保持される。つまり、データレジスタ24Cは、データレジスタ24Aに保持されたデータが出力されるまでの間、メモリセルアレイ21−0から読み出されたデータを一時的に保持するための領域として使用し得る。
レジスタA1及びC1は、例えば、メモリセルアレイ21−0から読み出された1ページ分のデータのうち、ECC回路18によって誤り訂正がされる前のデータを一時的に保持する。レジスタA2及びC2は、例えば、メモリセルアレイ21−0から読み出された1ページ分のデータのうち、ECC回路18によって誤り訂正がされた後のデータを一時的に保持する。
また、図4(B)に示すように、データレジスタ24−1は、データレジスタ24B及び24Dを含む。データレジスタ24Bは、レジスタB1及びB2を含み、データレジスタ24Dは、レジスタD1及びD2を含む。レジスタB1、B2、D1、及びD2は、例えば、1ページ分のデータを保持し得るメモリ領域を有する。
データレジスタ24Bは、例えば、メモリセルアレイ21−1から読み出された1ページ分のデータのうち、最初に入出力制御回路11に送信される予定のデータが保持される。データレジスタ24Dは、例えば、メモリセルアレイ21−1から読み出された1ページ分のデータのうち、データレジスタ24Bに保持されたデータの後に入出力制御回路11に送信される予定のデータが保持される。つまり、データレジスタ24Dは、データレジスタ24Bに保持されたデータが出力されるまでの間、メモリセルアレイ21−1から読み出されたデータを一時的に保持するための領域として使用し得る。
レジスタB1及びD1は、例えば、メモリセルアレイ21−1から読み出された1ページ分のデータのうち、ECC回路18によって誤り訂正がされる前のデータを一時的に保持する。レジスタB2及びD2は、例えば、メモリセルアレイ21−1から読み出された1ページ分のデータのうち、ECC回路18によって誤り訂正がされた後のデータを一時的に保持する。
以下の説明では、データレジスタ24A〜24Dは、上述のデータ保持に係るルールに従って読出しデータを保持するものとして説明する。しかしながら、上述の例はあくまで一例であり、データレジスタ24A〜24Dは、上述の例に限らず、任意のルールに従ってデータを保持可能である。
1.2 動作について
次に、第1実施形態に係る半導体記憶装置の動作の例について説明する。なお、以下の説明では、特に、メモリセルアレイ21からデータレジスタ24へのデータの「読出し」と、半導体記憶装置2からコントローラ1へのデータの「出力」とが区別される。
1.2.1 誤り訂正結果の出力動作について
まず、誤り訂正結果の出力動作について説明する。図5は、第1実施形態に係る半導体記憶装置の誤り訂正結果の出力動作を説明するためのコマンドシーケンスである。図5では、事前にメモリセルアレイ21からデータが読み出されており、当該読み出されたデータに対して誤り訂正処理が実行されているものとする。そして、当該読み出されたデータに対応する誤り訂正結果STSがステータス情報としてステータスレジスタ15に保持されているものとする。
図5に示すように、コントローラ1は、コマンド“7xh”を発行する。コマンド“7xh”は、半導体記憶装置2に対して、種々の読出し方式に応じてメモリセルアレイ21から読み出された1ページ分のデータに対する誤り訂正結果STSの出力を指示するコマンドの総称である。種々の読出し方式は、例えば、マルチプレーン読出し方式、キャッシュ読出し方式、及びマルチプレーンキャッシュ読出し方式等を含み、コマンド“7xh”は、当該種々の読出し方式に応じた、互いに識別可能な複数のコマンドを含む。コマンド“7xh”の詳細、並びにマルチプレーン読出し方式、キャッシュ読出し方式、及びマルチプレーンキャッシュ読出し方式の詳細については、後述する。
コマンド“7xh”がコマンドレジスタ14に格納されると、シーケンサ16は、当該コマンド“7xh”に対応する読出し方式によって読み出された1ページ分のデータを特定する。そして、当該特定された1ページ分のデータに関する誤り訂正結果STSをステータスレジスタ15から入出力制御回路11に転送する。入出力制御回路11は、例えば4サイクルにわたって、1ページ分のデータに対応する誤り訂正結果STSを、データSect0〜Sect3に分けてコントローラ1に出力する。データSect0〜Sect3はそれぞれ、例えば、セクタ0〜セクタ3の誤り訂正結果STSを含む。
つまり、コマンド“7xh”が発行されると、半導体記憶装置2は、1ページ分のデータに対応する誤り訂正結果STSを、セクタ毎に順次出力する。
なお、コントローラ1は、図5に示される期間にわたって、信号/CEを“L”レベルに維持し、信号/RBを“H”レベルに維持する。また、半導体記憶装置2にコマンドを入力する際には、コントローラ1は信号CLEをアサートする(“H”レベルにする)。また、半導体記憶装置2から誤り訂正結果STSを出力させる際には、コントローラ1は、信号/REをトグルさせる。
1.2.2 マルチプレーン読出し動作について
次に、マルチプレーン読出し(Multi − plane reading)動作について説明する。
1.2.2.1 動作の概要について
図6は、第1実施形態に係る半導体記憶装置のマルチプレーン読出し動作の概要を説明するためのブロック図である。図6では、マルチプレーン読出し動作における読出しデータと、当該読出しデータの誤り訂正結果STSとが半導体記憶装置2内で通信される様子が示される。また、図6では、メモリセルアレイ21からのデータ読出しから、入出力制御回路11への当該読出しデータの転送までの一連の通信の様子がステップST1〜ST12で示される。ステップST1〜ST12は、例えば、コントローラ1からの指示に基づき、シーケンサ16によって実行される。
図6に示すように、ステップST1において、シーケンサ16は、メモリセルアレイ21−0からデータを読み出し、データレジスタ24A内のレジスタA1に転送する。ステップST2において、メモリセルアレイ21−1からデータが読み出され、データレジスタ24B内のレジスタB1に保持される。マルチプレーン読出し動作では、プレーンPB0及びPB1で並行してデータが読み出される。すなわち、ステップST1及びST2は、並行して実行される。
ステップST3において、ECC回路18は、レジスタA1に保持された読出しデータについて誤り検出処理及び誤り訂正処理を実行し、誤り訂正後データ、及び誤り訂正結果STS−P0を生成する。誤り訂正結果STS−P0は、プレーンPB0から読み出されたデータに対応する誤り訂正結果STSである。
ステップST4において、ECC回路18は、ステップST3において生成された誤り訂正後データをレジスタA2に転送する。
ステップST5において、ECC回路18は、ステップST3において生成された誤り訂正結果STS−P0をステータスレジスタ15に転送する。
ステップST6において、ECC回路18は、レジスタB1に保持された読出しデータについて誤り検出処理及び誤り訂正処理を実行し、誤り訂正後データ、及び誤り訂正結果STS−P1を生成する。誤り訂正結果STS−P1は、プレーンPB1から読み出されたデータに対応する誤り訂正結果STSである。
ステップST7において、ECC回路18は、ステップST6において生成された誤り訂正後データをレジスタB2に転送する。
ステップST8において、ECC回路18は、ステップST6において生成された誤り訂正結果STS−P1をステータスレジスタ15に転送する。
ステップST9において、シーケンサ16は、誤り訂正結果STS−P0をステータスレジスタ15から読出し、入出力制御回路11を介してコントローラ1に出力する。
ステップST10において、シーケンサ16は、レジスタA2に保持された誤り訂正後データを、出力データDAT−P0として、入出力制御回路11を介してコントローラ1に出力する。
ステップST11において、シーケンサ16は、誤り訂正結果STS−P1をステータスレジスタ15から読出し、入出力制御回路11を介してコントローラ1に出力する。
ステップST12において、シーケンサ16は、レジスタB2に保持された誤り訂正後データを、出力データDAT−P1として、入出力制御回路11を介してコントローラ1に出力する。
以上で、マルチプレーン読出し動作が終了する。
1.2.2.2 コマンドシーケンスについて
図7は、第1実施形態に係る半導体記憶装置のマルチプレーン読出し動作を説明するためのコマンドシーケンスである。図7は、図6に示されたマルチプレーン読出し動作を実現するためのコマンドシーケンスの一例が示される。
図7に示すように、コントローラ1は、コマンド“60h”、アドレス“ADD−P0”、コマンド“60h”、及びアドレス“ADD−P1”をこの順に半導体記憶装置2に送信する。コマンド“60h”は、後続するアドレスにて指定されるプレーンPBに対するマルチプレーン読出し動作を指示するコマンドである。アドレス“ADD−P0”及び“ADD−P1”はそれぞれ、プレーンPB0及びPB1内の或るページを指定する情報を含む。つまり、シーケンサ16は、コマンド“60h”、アドレス“ADD−P0”、コマンド“60h”、及びアドレス“ADD−P0”をこの順に受けると、プレーンPB0のアドレス“ADD−P0”に対する読出しと、プレーンPB1のアドレス“ADD−P1”に対する読出しと、を並行して実行するための設定を行う。
続いて、コントローラ1は、コマンド“30h”を半導体記憶装置2に送信する。コマンド“30h”は、直前に送信されたアドレスに対応するデータをメモリセルアレイ21から読み出す旨を指示するコマンドである。つまり、ここでは、コマンド“30h”は、メモリセルアレイ21−0及び21−1から並行してデータを読み出す旨を半導体記憶装置2に指示する。また、コマンド“30h”は、読み出されたデータのコントローラ1への出力を開始せずに保留し、後続の指示があることを示す。
半導体記憶装置2は、コマンド“30h”を受けると、期間tRの間、信号R/Bを“L”レベルにして、ビジー状態をコントローラ1に通知する。シーケンサ16は、期間tRの間に、メモリセルアレイ21−0、21−1、及びECC回路18等を制御し、図6において示したステップST1〜ST8を実行させる。これにより、メモリセルアレイ21−0及び21−1から読み出されたデータの誤り訂正後データがそれぞれレジスタA2及びB2に保持されると共に、誤り訂正結果STS−P0及びSTS−P1がステータスレジスタ15に個別に保持される。なお、上述の通り、メモリセルアレイ21−0からレジスタA1へのデータの読出し、及びメモリセルアレイ21−1からのレジスタB1へのデータの読出しは、並行して実行される。上記動作が終了した後、半導体記憶装置2は、信号R/Bを“H”レベルにして、レディ状態をコントローラ1に通知する。
続いて、コントローラ1は、コマンド“7Ah”を半導体記憶装置2に送信する。コマンド“7Ah”は、コマンド“7xh”に含まれるコマンドのうちの1つであり、例えば、誤り訂正結果STS−P0のコントローラ1への出力を指示するコマンドである。
半導体記憶装置2は、コマンド“7Ah”を受けると、図6において示したステップST9を実行する。すなわち、シーケンサ16は、ステータスレジスタ15に保持された誤り訂正結果STS−P0をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P0に基づき、プレーンPB0から読み出されたデータが正常に誤り訂正されていることを確認した後、コマンド“00h”を半導体記憶装置2に送信する。コマンド“00h”は、アドレス入力受付コマンドに相当し、半導体記憶装置2からコントローラ1にデータを出力するための動作を命令するコマンドである。続いて、コントローラ1は、アドレス“ADD−P0”を半導体記憶装置2に送信する。これにより、半導体記憶装置2は、プレーンPB0から読み出されたデータの出力が指示されたことを認識する。
続いて、コントローラ1は、コマンド“05h”及びアドレス“ADD−CA”を半導体記憶装置2に送信する。コマンド“05h”は、後続するアドレス“ADD−CA”において指定されたカラムアドレスのデータの読出しを指示するコマンドである。続いて、コントローラ1は、コマンド“E0h”を半導体記憶装置2に送信する。コマンド“E0h”は、直前に指定された情報に基づいて、データレジスタ24に保持されたデータのコントローラ1への出力を指示するコマンドである。
半導体記憶装置2は、コマンド“E0h”を受けると、図6において示したステップST10を実行する。すなわち、シーケンサ16は、レジスタA2に保持された誤り訂正後データを出力データDAT−P0としてコントローラ1に出力する。
続いて、コントローラ1は、コマンド“7Bh”を半導体記憶装置2に送信する。コマンド“7Bh”は、コマンド“7xh”に含まれるコマンドのうちの1つであり、例えば、誤り訂正結果STS−P1の出力を指示するコマンドである。
半導体記憶装置2は、コマンド“7Bh”を受けると、図6において示したステップST11を実行する。すなわち、シーケンサ16は、ステータスレジスタ15に保持された誤り訂正結果STS−P1をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P1に基づき、プレーンPB1から読み出されたデータが正常に誤り訂正されていることを確認した後、コマンド“00h”及びアドレス“ADD−P1”を半導体記憶装置2に送信する。半導体記憶装置2は、アドレス“ADD−P1”に基づいて、プレーンPB1から読み出されたデータの出力が指示されたことを認識する。続いて、コントローラ1は、コマンド“05h”、アドレス“ADD−CA”、及びコマンド“E0h”を半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、図6において示したステップST12を実行する。すなわち、シーケンサ16は、レジスタB2に保持された誤り訂正後データを出力データDAT−P1としてコントローラ1に出力する。
以上のように動作することにより、半導体記憶装置2は、マルチプレーン読出し動作において、出力データDAT−P0及びDAT−P1の出力前に、誤り訂正結果STS−P0及びSTS−P1を、個別にコントローラ1に出力することができる。
1.2.3 キャッシュ読出し動作について
次に、キャッシュ読出し(Cache reading)動作について説明する。
1.2.3.1 動作の概要について
図8は、第1実施形態に係る半導体記憶装置のキャッシュ読出し動作の概要を説明するためのブロック図である。図8では、キャッシュ読出し動作における読出しデータと、当該読出しデータの誤り訂正結果STSとが半導体記憶装置2内で通信される様子が示される。以下の説明では、n回目にメモリセルアレイ21から読み出されたデータに対応する誤り訂正結果STS及び出力データDATはそれぞれ、誤り訂正結果STS−(n)及び出力データDAT−(n)と示される(nは、任意の自然数)。
図8では、メモリセルアレイ21からのデータ読出し、及び当該データ読出しと並行して実行されるコントローラ1へのデータ出力における通信の様子がステップST21〜ST27で示される。ステップST21〜ST27は、例えば、コントローラ1からの指示に基づき、シーケンサ16によって実行される。なお、以下では、当該キャッシュ読出し動作において(n+1)回目にメモリセルアレイ21−0から読み出されたデータの誤り訂正後データが出力データDAT−(n+1)としてレジスタC2に保持されているものとする。また、出力データDAT−(n+1)に対応する誤り訂正結果STS−(n+1)がステータスレジスタ15に保持されているものとする。そして、図8では、当該キャッシュ読出し動作において(n+2)回目にメモリセルアレイ21−0からデータが読み出される場合が示される。
図8に示すように、ステップST21において、シーケンサ16は、レジスタC2に保持された誤り訂正後データをレジスタA2に転送する。また、シーケンサ16は、レジスタC1に保持された誤り訂正前データをレジスタA1に転送してもよい。
ステップST22において、シーケンサ16は、当該キャッシュ読出し動作において(n+2)回目のメモリセルアレイ21−0からのデータ読み出しを実行し、データレジスタ24C内のレジスタC1に転送する。
ステップST23において、ECC回路18は、レジスタC1に保持された読出しデータについて誤り検出処理及び誤り訂正処理を実行し、誤り訂正後データ及び誤り訂正結果STS−(n+2)を生成する。
ステップST24において、ECC回路18は、ステップST23において生成された誤り訂正後データをレジスタC2に転送する。
ステップST25において、ECC回路18は、ステップST23において生成された誤り訂正結果STS−(n+2)をステータスレジスタ15に転送する。ステータスレジスタ15は、誤り訂正結果STS−(n+2)を、既に保持している誤り訂正結果STS−(n+1)と別個に保持する。
キャッシュ読出し動作では、(n+2)回目の読出し動作に係るこれまでのステップST21〜ST25と、(n+1)回目の出力動作に係る以降のステップST26及びST27とが、並行して実行される。
ステップST26において、シーケンサ16は、誤り訂正結果STS−(n+1)をステータスレジスタ15から読出し、入出力制御回路11を介してコントローラ1に出力する。
ステップST27において、シーケンサ16は、レジスタA2に保持された誤り訂正後データを、出力データDAT−(n+1)として、入出力制御回路11を介してコントローラ1に出力する。
ステップST27直後の状態は、ステップST21の直前の状態と、データレジスタ24及びステータスレジスタ15内に保持されるデータが変化したことを除いて一致する。このため、ステップST27の後、再びステップST21〜ST27の動作が繰り返されることによって、キャッシュ読出し動作を繰り返し実行することができる。
1.2.3.2 コマンドシーケンスについて
図9は、第1実施形態に係る半導体記憶装置のキャッシュ読出し動作を説明するためのコマンドシーケンスである。図9は、図8に示されたキャッシュ読出し動作を実現するためのコマンドシーケンスの一例が示され、例えば、プレーンPB0に対するキャッシュ読出し動作が示される。なお、図9では、キャッシュ読出し動作の一例として、任意のページのデータが出力されるランダムキャッシュ読出し(Random cache reading)動作が実行される場合が示される。
図9に示すように、コントローラ1は、コマンド“00h”、アドレス“ADD−(1)”、及びコマンド“30h”を半導体記憶装置2に送信する。アドレス“ADD−(1)”は、例えば、当該キャッシュ読出し動作のシーケンスにおいて1回目に読み出されるデータのアドレスを指定する情報を含む。
半導体記憶装置2は、コマンド“30h”を受けると、期間tRの間、信号R/Bを“L”レベルにして、ビジー状態をコントローラ1に通知する。シーケンサ16は、期間tRの間に、メモリセルアレイ21−0からデータを読出し、レジスタC1に転送する。ECC回路18は、レジスタC1に保持されたデータに対して誤り訂正処理を実行し、誤り訂正後データをレジスタC2に転送する。また、ECC回路18は、誤り訂正結果STS−(1)をステータスレジスタ15に転送する。上記動作が終了した後、半導体記憶装置2は、信号R/Bを“H”レベルにして、レディ状態をコントローラ1に通知する。
ここで、半導体記憶装置2は、図8において示したステップST21の直前の状態と一致する。
続いて、コントローラ1は、コマンド“00h”、アドレス“ADD−(2)”、及びコマンド“31h”を半導体記憶装置2に送信する。アドレス“ADD−(2)”は、当該キャッシュ読出し動作のシーケンスにおいて、2回目に読み出されるデータのアドレスを指定する情報を含む。コマンド“31h”は、メモリセルアレイ21から、直前に送信されたアドレスに対応するデータを読み出す旨を指示するコマンドである。また、コマンド“31h”は、次に読み出されるデータを一時的に保持する旨を指示するコマンドである。なお、2回目に読み出されるデータは、1回目に読み出されたデータを上書きすることなく保持される。
半導体記憶装置2は、コマンド“31h”を受けると、図8において示したステップST21〜ST25を実行する。すなわち、シーケンサ16は、レジスタC1及びC2に保持されたデータをそれぞれレジスタA1及びA2に転送する間、信号R/Bを“L”レベルにして、ビジー状態をコントローラ1に通知する。半導体記憶装置2は、レジスタ間のデータ転送が完了すると、信号R/Bを“H”レベルにして、レディ状態をコントローラ1に通知する。そして、シーケンサ16は、メモリセルアレイ21−0からアドレス“ADD−(2)”に対応するデータを読出し、レジスタC1へ転送する。ECC回路18は、レジスタC1に保持されたデータについて誤り訂正処理を実行し、誤り訂正後データをレジスタC2に転送すると共に、誤り訂正結果STS−(2)をステータスレジスタ15に転送する。誤り訂正結果STS−(2)は、誤り訂正結果STS−(1)を上書きすることなく、ステータスレジスタ15に保持される。
ステップST22〜ST25と並行して、コントローラ1及び半導体記憶装置2は、図8において示したステップST26及びST27を実行する。
具体的には、コントローラ1は、コマンド“7Ch”を半導体記憶装置2に送信する。コマンド“7Ch”は、コマンド“7xh”に含まれるコマンドのうちの1つであり、例えば、キャッシュ読出し動作において奇数回目に読み出されたデータに対応する誤り訂正結果STS−(odd)の出力を指示する(“odd”は、任意の奇数)。
半導体記憶装置2は、コマンド“7Ch”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−(n)のうち、1回目に読み出されたデータに対応する誤り訂正結果STS−(1)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−(1)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−(1)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−(1)としてコントローラ1に出力する。
ここで、半導体記憶装置2は、再び、図8において示したステップST21の直前の状態と一致する。
続いて、コントローラ1は、コマンド“00h”、アドレス“ADD−(3)”、及びコマンド“31h”を半導体記憶装置2に送信する。アドレス“ADD−(3)”は、当該キャッシュ読出し動作のシーケンスにおいて、3回目に読み出されるデータのアドレスを指定する情報を含む。
半導体記憶装置2は、コマンド“31h”を受けると、図8において示したステップST21〜ST25を実行する。すなわち、シーケンサ16は、レジスタC1及びC2に保持されたデータをそれぞれレジスタA1及びA2に転送する。シーケンサ16は、メモリセルアレイ21−0からアドレス“ADD−(3)”に対応するデータを読出し、レジスタC1へ転送する。ECC回路18は、レジスタC1に保持されたデータについて誤り訂正処理を実行し、誤り訂正後データをレジスタC2に転送すると共に、誤り訂正結果STS−(3)をステータスレジスタ15に転送する。ECC回路18は、例えば、誤り訂正結果STS−(3)を、奇数回目の読出しデータに対応する誤り訂正結果STS−(1)に上書きしてステータスレジスタ15に保持させる。
ステップST21〜ST25と並行して、コントローラ1及び半導体記憶装置2は、図8において示したステップST26及びST27を実行する。
具体的には、コントローラ1は、コマンド“7Dh”を半導体記憶装置2に送信する。コマンド“7Dh”は、コマンド“7xh”に含まれるコマンドのうちの1つであり、例えば、キャッシュ読出し動作において偶数回目に読み出されたデータに対応する誤り訂正結果STS−(even)の出力を指示する(“even”は、任意の偶数)。
半導体記憶装置2は、コマンド“7Dh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−(n)のうち、2回目に読み出されたデータに対応する誤り訂正結果STS−(2)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−(2)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−(2)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−(2)としてコントローラ1に出力する。
続いて、コントローラ1は、コマンド“3Fh”を半導体記憶装置2に送信する。コマンド“3Fh”は、当該キャッシュ読出し動作のシーケンスにおいて、これ以上メモリセルアレイ21からデータ読出しを行わない旨を指示するコマンドである。
半導体記憶装置2は、コマンド“3Fh”を受けると、レジスタC1及びC2に保持されたデータをそれぞれレジスタA1及びA2に転送し、データの出力に備える。
コントローラ1は、コマンド“7Ch”を半導体記憶装置2に送信する。半導体記憶装置2は、コマンド“7Ch”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−(n)のうち、3回目に読み出されたデータに対応する誤り訂正結果STS−(3)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−(3)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−(3)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−(3)としてコントローラ1に出力する。
以上のように動作することにより、半導体記憶装置2は、メモリセルアレイ21−0からのデータ読出しと、コントローラ1へのデータ出力とを並行して実行する場合においても、各データに対応する誤り訂正結果STSを個別にコントローラ1に出力できる。
1.2.4 マルチプレーンキャッシュ読出し動作について
次に、マルチプレーンキャッシュ読出し(Multi − plane reading with data cache)動作について説明する。
1.2.4.1 動作の概要について
図10は、第1実施形態に係る半導体記憶装置のマルチプレーンキャッシュ読出し動作の概要を説明するためのブロック図である。図10では、マルチプレーンキャッシュ読出し動作における読出しデータと、当該読出しデータの誤り訂正結果STSとが半導体記憶装置2内で通信される様子が示される。以下の説明では、n回目にメモリセルアレイ21−0から読み出されたデータに対応する誤り訂正結果STS及び出力データDATはそれぞれ、誤り訂正結果STS−P0(n)及び出力データDAT−P0(n)と示される。また、n回目にメモリセルアレイ21−1から読み出されたデータに対応する誤り訂正結果STS及び出力データDATはそれぞれ、誤り訂正結果STS−P1(n)及び出力データDAT−P1(n)と示される。
図10では、メモリセルアレイ21からのデータ読出し、及び当該データ読出しと並行して実行されるコントローラ1へのデータ出力における通信の様子がステップST31〜ST44で示される。ステップST31〜ST44は、例えば、コントローラ1からの指示に基づき、シーケンサ16によって実行される。
なお、以下では、当該マルチプレーンキャッシュ読出し動作において(n+1)回目にメモリセルアレイ21−0及び21−1から読み出されたデータの誤り訂正後データが、それぞれ出力データDAT−P0(n+1)及びDAT−P1(n+1)としてレジスタC2及びD2に保持されているものとする。また、出力データDAT−P0(n+1)及びDAT−P1(n+1)にそれぞれ対応する誤り訂正結果STS−P0(n+1)及びSTS−P1(n+1)がステータスレジスタ15に別個に保持されているものとする。そして、図10では、当該キャッシュ読出し動作における(n+2)回目のデータ読出しがメモリセルアレイ21−0及び21−1に対して実行される場合が示される。
図10に示すように、ステップST31〜ST35、ST41、及びST42ではプレーンPB0に係る動作が実行され、ステップST36〜ST40、ST43、及びST44ではプレーンPB1に係る動作が実行される。
具体的には、ステップST31において、シーケンサ16は、レジスタC2に保持された誤り訂正後データをレジスタA2に転送する。また、シーケンサ16は、レジスタC1に保持された誤り訂正前データをレジスタA1に転送してもよい。
ステップST32において、シーケンサ16は、当該マルチプレーンキャッシュ読出し動作において(n+2)回目のメモリセルアレイ21−0からのデータ読み出しを実行し、レジスタC1に転送する。
ステップST33において、ECC回路18は、レジスタC1に保持された読出しデータについて誤り検出処理及び誤り訂正処理を実行し、誤り訂正後データ及び誤り訂正結果STS−P0(n+2)を生成する。
ステップST34において、ECC回路18は、ステップST33において生成された誤り訂正後データをレジスタC2に転送する。
ステップST35において、ECC回路18は、ステップST33において生成された誤り訂正結果STS−P0(n+2)をステータスレジスタ15に転送する。ステータスレジスタ15は、誤り訂正結果STS−P0(n+1)及びSTS−P1(n+1)と別個に、誤り訂正結果STS−P0(n+2)を保持する。
また、ステップST36において、シーケンサ16は、レジスタD2に保持された誤り訂正後データをレジスタB2に転送する。また、シーケンサ16は、レジスタD1に保持された誤り訂正前データをレジスタB1に転送してもよい。
ステップST37において、シーケンサ16は、当該マルチプレーンキャッシュ読出し動作において(n+2)回目のメモリセルアレイ21−1からのデータ読み出しを実行し、レジスタD1に転送する。
ステップST38において、ECC回路18は、レジスタD1に保持された読出しデータについて誤り検出処理及び誤り訂正処理を実行し、誤り訂正後データ及び誤り訂正結果STS−P1(n+2)を生成する。
ステップST39において、ECC回路18は、ステップST38において生成された誤り訂正後データをレジスタD2に転送する。
ステップST40において、ECC回路18は、ステップST38において生成された誤り訂正結果STS−P1(n+2)をステータスレジスタ15に転送する。ステータスレジスタ15は、誤り訂正結果STS−P0(n+1)、STS−P1(n+1)、STS−P0(n+2)と別個に、誤り訂正結果STS−P1(n+2)を保持する。
マルチプレーンキャッシュ読出し動作では、プレーンPB0及びPB1で並行してデータが読み出される。すなわち、ステップST32及びST37は、並行して実行される。また、マルチプレーンキャッシュ読出し動作では、(n+2)回目の読出し動作に係るこれまでのステップST31〜ST40と、(n+1)回目の出力動作に係る以降のステップST41〜ST44とが、並行して実行される。
ステップST41において、シーケンサ16は、誤り訂正結果STS−P0(n+1)をステータスレジスタ15から読出し、入出力制御回路11を介してコントローラ1に出力する。
ステップST42において、シーケンサ16は、レジスタA2に保持された誤り訂正後データを、出力データDAT−P0(n+1)として、入出力制御回路11を介してコントローラ1に出力する。
ステップST43において、シーケンサ16は、誤り訂正結果STS−P1(n+1)をステータスレジスタ15から読出し、入出力制御回路11を介してコントローラ1に出力する。
ステップST44において、シーケンサ16は、レジスタB2に保持された誤り訂正後データを、出力データDAT−P1(n+1)として、入出力制御回路11を介してコントローラ1に出力する。
ステップST44直後の状態は、ステップST31の直前の状態と、データレジスタ24及びステータスレジスタ15内に保持されるデータが変化したことを除いて一致する。すなわち、ステップST44の後、再びステップST31〜ST44の動作が繰り返されることによって、マルチプレーンキャッシュ読出し動作を繰り返し実行することができる。
1.2.4.2 コマンドシーケンスについて
図11は、第1実施形態に係る半導体記憶装置のマルチプレーンキャッシュ読出し動作を説明するためのコマンドシーケンスである。図11は、図10に示されたマルチプレーンキャッシュ読出し動作を実現するためのコマンドシーケンスの一例が示される。なお、図11では、マルチプレーンキャッシュ読出し動作の一例として、ランダムキャッシュ読出し動作が実行される場合が示される。
図11に示すように、コントローラ1は、コマンド“60h”、アドレス“ADD−P0(1)”、コマンド“60h”、アドレス“ADD−P1(1)”、及びコマンド“30h”をこの順に半導体記憶装置2に送信する。アドレス“ADD−P0(1)”及び“ADD−P1(1)”はそれぞれ、マルチプレーンキャッシュ読出し動作においてプレーンPB0及びPB1から1回目に読み出されるデータを指定する情報を含む。つまり、シーケンサ16は、コマンド“60h”、アドレス“ADD−P0(1)”、コマンド“60h”、及びアドレス“ADD−P1(1)”をこの順に受けると、プレーンPB0のアドレス“ADD−P0(1)”に対する読出しと、プレーンPB1のアドレス“ADD−P1(1)”に対する読出しと、を並行して実行するための設定を行う。
半導体記憶装置2は、コマンド“30h”を受けると、期間tRの間、信号R/Bを“L”レベルにして、ビジー状態をコントローラ1に通知する。シーケンサ16は、期間tRの間に、メモリセルアレイ21−0及び21−1から並行してデータを読出し、それぞれレジスタC1及びD1に転送する。ECC回路18は、レジスタC1に保持されたデータに対して誤り訂正処理を実行し、誤り訂正後データをレジスタC2に転送する。また、ECC回路18は、当該レジスタC2に転送された誤り訂正後データに対応する誤り訂正結果STS−P0(1)をステータスレジスタ15に転送する。また、ECC回路18は、レジスタD1に保持されたデータに対して誤り訂正処理を実行し、誤り訂正後データをレジスタD2に転送する。また、ECC回路18は、当該レジスタD2に転送された誤り訂正後データに対応する誤り訂正結果STS−P1(1)をステータスレジスタ15に転送する。ステータスレジスタ15は、誤り訂正結果STS−P0(1)及びSTS−P1(1)を別個に保持する。上記動作が終了した後、半導体記憶装置2は、信号R/Bを“H”レベルにして、レディ状態をコントローラ1に通知する。
ここで、半導体記憶装置2は、図10において示したステップST31の直前の状態と一致する。
続いて、コントローラ1は、コマンド“60h”、アドレス“ADD−P0(2)”、コマンド“60h”、アドレス“ADD−P1(2)”、及びコマンド“31h”をこの順に半導体記憶装置2に送信する。アドレス“ADD−P0(2)”及び“ADD−P1(2)”は、当該マルチプレーンキャッシュ読出し動作のシーケンスにおいて、2回目に読み出されるデータのアドレスを指定する情報を含む。
半導体記憶装置2は、コマンド“31h”を受けると、図10において示したST31〜ST40を実行する。すなわち、シーケンサ16は、レジスタC1及びC2、並びにD1及びD2に保持されたデータをそれぞれレジスタA1及びA2、並びにB1及びB2に転送する間、信号R/Bを“L”レベルにして、ビジー状態をコントローラ1に通知する。半導体記憶装置2は、レジスタ間のデータ転送が完了すると、信号R/Bを“H”レベルにして、レディ状態をコントローラ1に通知する。そして、シーケンサ16は、メモリセルアレイ21−0及び21−1からそれぞれアドレス“ADD−P0(2)”及び“ADD−P1(2)”に対応するデータを並行して読出し、レジスタC1及びD1へ転送する。ECC回路18は、レジスタC1及びD1に保持されたデータについて誤り訂正処理を実行し、それぞれの誤り訂正後データをレジスタC2及びD2に転送する。ECC回路18は、レジスタC2及びD2にそれぞれ転送された誤り訂正後データにそれぞれ対応する誤り訂正結果STS−P0(2)及びSTS−P1(2)をステータスレジスタ15に転送する。ステータスレジスタ15は、誤り訂正結果STS−P0(1)、STS−P1(1)、STS−P0(2)、及びSTS−P1(2)を別個に保持する。
ステップST31〜ST40と並行して、コントローラ1及び半導体記憶装置2は、図10において示したステップST41〜ST44を実行する。
具体的には、コントローラ1は、コマンド“7Eh”を半導体記憶装置2に送信する。コマンド“7Eh”は、コマンド“7xh”に含まれるコマンドのうちの1つであり、例えば、マルチプレーンキャッシュ読出し動作において奇数回目に読み出されたデータに対応する誤り訂正結果STS−(odd)の出力を指示する。また、コマンド“7Eh”が連続して発行される場合、1回目のコマンド“7Eh”は、例えば、プレーンPB0(odd)に対応するコマンドであると認識される。
半導体記憶装置2は、コマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P0(n)のうち、1回目に読み出されたデータに対応する誤り訂正結果STS−P0(1)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P0(1)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−P0(1)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−P0(1)としてコントローラ1に出力する。
また、コントローラ1は、再びコマンド“7Eh”を半導体記憶装置2に送信する。コマンド“7Eh”が連続して発行される場合、2回目のコマンド“7Eh”は、例えば、プレーンPB1に対応するコマンドであると認識される。
半導体記憶装置2は、コマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P1(n)のうち、1回目に読み出されたデータに対応する誤り訂正結果STS−P1(1)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P1(1)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−P1(1)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタB2に保持された誤り訂正後データを読出しデータDAT−P1(1)としてコントローラ1に出力する。
ここで、半導体記憶装置2は、再び図10において示したステップST31の直前の状態と一致する。
続いて、コントローラ1は、コマンド“60h”、アドレス“ADD−P0(3)”、コマンド“60h”、アドレス“ADD−P1(3)”、及びコマンド“31h”をこの順に半導体記憶装置2に送信する。アドレス“ADD−P0(3)”及び“ADD−P1(3)”は、当該マルチプレーンキャッシュ読出し動作のシーケンスにおいて、3回目に読み出されるデータのアドレスを指定する情報を含む。
半導体記憶装置2は、コマンド“31h”を受けると、図10において示したステップST31〜ST40を実行する。すなわち、シーケンサ16は、レジスタC1及びC2、並びにD1及びD2に保持されたデータをそれぞれレジスタA1及びA2、並びにB1及びB2に転送する。シーケンサ16は、メモリセルアレイ21−0及び21−1からそれぞれアドレス“ADD−P0(3)”及び“ADD−P1(3)”に対応するデータを読出し、レジスタC1及びD1へ転送する。ECC回路18は、レジスタC1に保持されたデータについて誤り訂正処理を実行し、誤り訂正後データをレジスタC2に転送すると共に、レジスタC2に転送された誤り訂正後データに対応する誤り訂正結果STS−P0(3)をステータスレジスタ15に転送する。また、ECC回路18は、レジスタD1に保持されたデータについて誤り訂正処理を実行し、誤り訂正後データをレジスタD2に転送すると共に、レジスタD2に転送された誤り訂正後データに対応する誤り訂正結果STS−P1(3)をステータスレジスタ15に転送する。ECC回路18は、例えば、誤り訂正結果STS−P0(3)及びSTS−P1(3)を、奇数回目の読出しデータに対応する誤り訂正結果STS−P0(1)及びSTS−P1(1)に上書きしてステータスレジスタ15に保持させる。
ステップST31〜ST40と並行して、コントローラ1及び半導体記憶装置2は、図10において示したステップST41〜ST44を実行する。
具体的には、コントローラ1は、コマンド“7Fh”を半導体記憶装置2に送信する。コマンド“7Fh”は、コマンド“7xh”に含まれるコマンドのうちの1つであり、例えば、マルチプレーンキャッシュ読出し動作において偶数回目に読み出されたデータに対応する誤り訂正結果STS−(even)の出力を指示する。また、コマンド“7Fh”が連続して発行される場合、1回目のコマンド“7Fh”は、例えば、プレーンPB0に対応するコマンドであると認識される。
半導体記憶装置2は、コマンド“7Fh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P0(n)のうち、2回目に読み出されたデータに対応する誤り訂正結果STS−P0(2)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P0(2)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−P0(2)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−P0(2)としてコントローラ1に出力する。
また、コントローラ1は、再びコマンド“7Fh”を半導体記憶装置2に送信する。コマンド“7Fh”が連続して発行される場合、2回目のコマンド“7Fh”は、例えば、プレーンPB1に対応するコマンドであると認識される。
半導体記憶装置2は、コマンド“7Fh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P1(n)のうち、2回目に読み出されたデータに対応する誤り訂正結果STS−P1(2)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P1(2)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−P1(2)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタB2に保持された誤り訂正後データを読出しデータDAT−P1(2)としてコントローラ1に出力する。
続いて、コントローラ1は、コマンド“3Fh”を半導体記憶装置2に送信する。半導体記憶装置2は、コマンド“3Fh”を受けると、レジスタC1及びC2、並びにD1及びD2に保持されたデータをそれぞれレジスタA1及びA2、並びにB1及びB2に転送し、データの出力に備える。
コントローラ1は、コマンド“7Eh”を半導体記憶装置2に送信する。半導体記憶装置2は、コマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P0(n)のうち、3回目に読み出されたデータに対応する誤り訂正結果STS−P0(3)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P0(3)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−P0(3)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−P0(3)としてコントローラ1に出力する。
また、コントローラ1は、再びコマンド“7Eh”を半導体記憶装置2に送信する。半導体記憶装置2は、コマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P1(n)のうち、3回目に読み出されたデータに対応する誤り訂正結果STS−P1(3)をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P1(3)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、コントローラ1は、コマンド“00h”、アドレス“ADD−P1(3)”、コマンド“05h”、コマンド“ADD−CA”、及びコマンド“E0h”をこの順に半導体記憶装置2に送信する。
半導体記憶装置2は、コマンド“E0h”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−P1(3)としてコントローラ1に出力する。
以上のように動作することにより、半導体記憶装置2は、プレーンPB0からのキャッシュ読出しと、プレーンPB1からのキャッシュ読出しとを並行して実行するマルチプレーンキャッシュ読出し動作の場合においても、各データに対応する誤り訂正結果STSを個別にコントローラ1に出力できる。
1.3 本実施形態に係る効果
第1実施形態によれば、種々の読出し方式に応じてセクタ毎の誤り訂正結果を出力することができる。本効果につき、以下に説明する。
NAND型フラッシュメモリでは、書込まれたデータの一部にエラービットが生じる(ビットが反転する)。このため、NAND型フラッシュメモリを使用する際には、ECC回路によってデータの誤り訂正が行われる。
誤り訂正可能なビット数は、ECC回路ごとに上限がある。他方で、NAND型フラッシュメモリでは、一度書込まれたデータに対する読出し動作が多数回に及ぶと、当該データにおいてエラービット数が増加する傾向がある。
このため、コントローラは、エラービット数の増加によりECC回路でエラー訂正が出来なくなる前に、データを別のブロックに移動させる等の処理を実施する。この処理は、リフレッシュ処理とも言う。
一方、NAND型フラッシュメモリでは、マルチプレーン読出し方式、キャッシュ読出し方式、マルチプレーンキャッシュ読出し方式等の種々の読出し方式が用いられる。これらの読出し方式は、各種回路を並行して動作させることによってデータ読出しのスループットを向上させることができる。
しかしながら、これらの並行動作を伴う読出し方式の際に、並行動作を伴わない通常の読出し方式と同様にECC回路を動作させた場合、読出しデータごとの誤り訂正結果を個別に出力できない可能性がある。
第1実施形態に係る半導体記憶装置は、マルチプレーン読出し動作の際に、メモリセルアレイ21−0から読み出されたデータに対応する出力データDAT−P0と、メモリセルアレイ21−1から読み出されたデータに対応する出力データDAT−P1と、をそれぞれ出力する。ECC回路18は、出力データDAT−P0に対して実行した誤り訂正結果STS−P0と、出力データDAT−P1に対して実行した誤り訂正結果STS−P1と、をそれぞれステータスレジスタ15に転送する。これにより、ステータスレジスタ15は、誤り訂正結果STS−P0及びSTS−P1を個別に保持することができる。
また、シーケンサ16は、コントローラ1からコマンド“7Ah”を受けると誤り訂正結果STS−P0を、コマンド“7Bh”を受けると誤り訂正結果STS−P1をステータスレジスタ15から出力する。これにより、コントローラ1は、マルチプレーン読出し動作によって異なるプレーンPB0及びPB1から並行して読み出されたデータの各々について、どのセクタ位置でどの程度エラービット数が発生したかを把握することができる。このため、コントローラ1は、マルチプレーン読出し動作の際にも、リフレッシュ動作の要否を判断することができる。
また、第1実施形態に係る半導体記憶装置は、キャッシュ読出し動作の際に、メモリセルアレイ21からの(n+1)回目の読出しと並行して、n回目に読み出されたデータに対応する出力データDAT−(n)を出力する。ECC回路18は、出力データDAT−(n)に対して実行した誤り訂正結果STS−(n)と、(n+1)回目に読み出されたデータに対して実行した誤り訂正結果STS−(n+1)と、をそれぞれステータスレジスタ15に転送する。これにより、ステータスレジスタ15は、誤り訂正結果STS−(n)及びSTS−(n+1)を個別に保持することができる。
また、シーケンサ16は、コントローラ1からコマンド“7Ch”を受けると誤り訂正結果STS−(odd)を、コマンド“7Dh”を受けると誤り訂正結果STS−(even)をステータスレジスタ15から出力する。これにより、コントローラ1は、キャッシュ読出し動作によってメモリセルアレイ21からの読出しと、コントローラ1への出力とが並行して実行されたデータの各々について、どのセクタ位置でどの程度エラービット数が発生したかを把握することができる。このため、コントローラ1は、キャッシュ読出し動作の際にも、リフレッシュ動作の要否を判断することができる。
また、第1実施形態に係る半導体記憶装置は、マルチプレーンキャッシュ読出し動作の際に、メモリセルアレイ21−0及び21−1からの(n+1)回目のマルチプレーン読出しと並行して、n回目にマルチプレーン読み出しされたデータに対応する出力データDAT−P0(n)及びDAT−P1(n)を出力する。ECC回路18は、出力データDAT−P0(n)及びDAT−P1(n)に対してそれぞれ実行した誤り訂正結果STS−P0(n)及びSTS−P1(n)と、(n+1)回目に読み出されたデータに対してそれぞれ実行した誤り訂正結果STS−P0(n+1)及びSTS−P1(n+1)と、をそれぞれステータスレジスタ15に転送する。これにより、ステータスレジスタ15は、誤り訂正結果STS−P0(n)、STS−P1(n)、STS−P0(n+1)、及びSTS−P1(n+1)を個別に保持することができる。
また、シーケンサ16は、コントローラ1からコマンド“7Eh”を受けると誤り訂正結果STS−P0(odd)及びSTS−P1(odd)を、コマンド“7Fh”を受けると誤り訂正結果STS−P0(even)及びSTS−P1(even)をステータスレジスタ15から出力する。これにより、コントローラ1は、マルチプレーンキャッシュ読出し動作によってメモリセルアレイ21からの読出しと、コントローラ1への出力とが並行して実行されたデータの各々について、どのセクタ位置でどの程度エラービット数が発生したかを把握することができる。このため、コントローラ1は、マルチプレーンキャッシュ読出し動作の際にも、リフレッシュ動作の要否を判断することができる。
また、コントローラ1は、マルチプレーン読出し動作、キャッシュ読出し動作、及びマルチプレーンキャッシュ読出し動作の各々における出力データDATの出力を指示する前に、誤り訂正結果STSの出力を半導体記憶装置2に指示する。これにより、コントローラ1は、出力データDATに対する誤り訂正が成功しているか否かを、データ出力前に判定することができる。このため、仮に出力データDATに対する誤り訂正が失敗していた場合、当該出力データDATの出力を中止することができる。したがって、コントローラ1の負荷を軽減させることができる。
1.4 第1実施形態の第1変形例
なお、第1実施形態では、誤り訂正結果STSをコントローラ1に出力させるための専用のコマンド“7xh”を用いる場合について説明したが、これに限られない。誤り訂正結果STSは、例えば、ステータスレジスタ15内に別途保持される特徴テーブルから読み出されてもよい。すなわち、コントローラ1は、特徴テーブルの読出しコマンド“0Fh”を用いて誤り訂正結果STSを出力させてもよい。
以下の説明では、第1実施形態と同一の部分については説明を省略し、異なる部分についてのみ説明する。
1.4.1 誤り訂正情報出力動作について
まず、誤り訂正結果の出力動作について説明する。図12は、第1実施形態の第1変形例に係る半導体記憶装置の誤り訂正結果の出力動作を説明するためのコマンドシーケンスである。図12は、図5に対応する。
図12に示すように、コントローラ1は、コマンド“0Fh”及びアドレス“x0h”を発行する。コマンド“0Fh”は、ステータスレジスタ15内の特徴テーブルに保持された情報の出力を指示するコマンドの総称である。アドレス“x0h”は、特徴テーブル内の種々の情報の格納先に対応し、例えば8ビットの情報に対して1つのアドレスが割当てられる。コマンド“0Fh”がコマンドレジスタ14に格納されると、シーケンサ16は、アドレス“x0h”に対応する特徴テーブル内の情報を特定する。そして、当該特定された情報をステータスレジスタ15から入出力制御回路11に転送する。
なお、特徴テーブルは、複数ページ分(例えば、少なくとも4ページ分)の誤り訂正結果STSが保持可能である。一方、1セクタ分の誤り訂正結果STSは、例えば、セクタ位置を示すセクタ位置情報、並びにエラービット数及び訂正可否情報を示すエラービット数情報を含む8ビットの情報として定義される。このため、1つのアドレス“x0h”は、特徴テーブル内の1セクタ分の誤り訂正結果STSに対応するアドレスを含む。1セクタ分の誤り訂正結果STSに対応するアドレス“x0h”は、例えば、“A0h”、“B0h”、“C0h”、“D0h”、“10h”、“20h”、“30h”、及び“40h”を含む。各アドレスの具体的な説明については、後述する。
シーケンサ16は、或るページ内の或るセクタ(例えばセクタ0)の誤り訂正結果STSに対応するアドレス“x0h”を受けると、当該誤り訂正結果STSを含むデータSect0と共に、当該或るページ内の他のセクタ(例えばセクタ1〜セクタ3)の誤り訂正結果STSを含むデータ(Sect1〜Sect3)についても順次出力させる。
つまり、コマンド“0Fh”及び1つのアドレス“x0h”が発行されると、半導体記憶装置2は、例えば4サイクルにわたって、1ページ分のデータに対応する誤り訂正結果STSを、セクタ毎に順次出力する。
1.4.2 マルチプレーン読出し動作について
次に、マルチプレーン読出し動作について説明する。
図13は、第1実施形態の第1変形例に係る半導体記憶装置のマルチプレーン読出し動作に用いられる特徴テーブルである。
図13に示すように、マルチプレーン読出し動作の際に用いられる特徴テーブルには、例えば、異なるプレーンPBから読み出されたデータの誤り訂正結果STSを互いに識別する領域と、当該領域に対応するアドレスが割当てられる。具体的には、誤り訂正結果STS−P0及びSTS−P1はそれぞれ、アドレス“A0h”及び“B0h”に対応付けられる。
つまり、コマンド“0Fh”及びアドレス“A0h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−P0を、1セクタ毎に4サイクルにわたって出力する。また、コマンド“0Fh”及びアドレス“B0h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−P1を、1セクタ毎に4サイクルにわたって出力する。
より具体的には、1セクタ分の誤り訂正結果STS−P0は、1ビット目(ビット0)から4ビット目(ビット3)には、セクタ位置情報SA(SA_0〜SA_3)が保持され、5ビット目(ビット4)から8ビット目(ビット7)には、エラービット数情報及び訂正可否情報BFA(BFA_0〜BFA_3)が保持される。1セクタ分の誤り訂正結果STS−P1は、1ビット目から4ビット目には、セクタ位置情報SB(SB_0〜SB_3)が保持され、5ビット目から8ビット目には、エラービット数情報BFB(BFB_0〜BFB_3)が保持される。
図14は、第1実施形態の第1変形例に係る半導体記憶装置のマルチプレーン読出し動作を説明するためのコマンドシーケンスである。図14は、第1実施形態における図7に対応する。
図14に示すように、第1実施形態の第1変形例におけるマルチプレーン読出し動作は、専用コマンド“7xh”に代えて特徴フィーチャ読出しコマンド“0Fh”及びアドレス“x0h”が用いられる点についてのみ、第1実施形態と相違する。
コントローラ1は、メモリセルアレイ21−0及び21−1からの並行したデータ読出しが終了し、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“A0h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“A0h”を受けると、半導体記憶装置2は、図6において示したステップST9を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された1ページ分の誤り訂正結果STS−P0をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P0に基づき、プレーンPB0から読み出されたデータが正常に誤り訂正されていることを確認した後、コマンド“00h”、アドレス“ADD−P0”、コマンド“05h”、アドレス“ADD−CA”、及びコマンド“E0h”を半導体記憶装置2に送信する。半導体記憶装置2は、コマンド“E0h”を受けると、図6において示したステップST10を実行する。すなわち、シーケンサ16は、レジスタA2に保持された誤り訂正後データを出力データDAT−P0としてコントローラ1に出力する。
また、コントローラは、コントローラ1は、コマンド“0Fh”及びアドレス“B0h”を半導体記憶装置2に送信する。コマンド“0Fh”及びアドレス“B0h”を受けると、半導体記憶装置2は、図6において示したステップST11を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された1ページ分の誤り訂正結果STS−P1をコントローラ1に出力する。
コントローラ1は、当該誤り訂正結果STS−P1に基づき、プレーンPB1から読み出されたデータが正常に誤り訂正されていることを確認した後、コマンド“00h”、アドレス“ADD−P1”、コマンド“05h”、アドレス“ADD−CA”、及びコマンド“E0h”を半導体記憶装置2に送信する。半導体記憶装置2は、コマンド“E0h”を受けると、図6において示したステップST12を実行する。すなわち、シーケンサ16は、レジスタB2に保持された誤り訂正後データを出力データDAT−P1としてコントローラ1に出力する。
以上で、マルチプレーン読出し動作が終了する。
1.4.3 キャッシュ読出し動作について
次に、キャッシュ読出し動作について説明する。
図15は、第1実施形態の第1変形例に係る半導体記憶装置のキャッシュ読出し動作に用いられる特徴テーブルである。
図15に示すように、キャッシュ読出し動作の際に用いられる特徴テーブルには、例えば、奇数回目及び偶数回目の読出しデータの誤り訂正結果STSを互いに識別する領域と、当該領域に対応するアドレスが割当てられる。具体的には、誤り訂正結果STS−(odd)及びSTS−(even)はそれぞれ、アドレス“C0h”及び“D0h”に対応付けられる。
つまり、コマンド“0Fh”及びアドレス“C0h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−(odd)を、1セクタ毎に4サイクルにわたって出力する。また、コマンド“0Fh”及びアドレス“D0h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−(even)を、1セクタ毎に4サイクルにわたって出力する。
より具体的には、1セクタ分の誤り訂正結果STS−(odd)は、1ビット目から4ビット目には、セクタ位置情報SC(SC_0〜SC_3)が保持され、5ビット目から8ビット目には、エラービット数情報BFC(BFC_0〜BFC_3)が保持される。1セクタ分の誤り訂正結果STS−(even)は、1ビット目から4ビット目には、セクタ位置情報SD(SD_0〜SD_3)が保持され、5ビット目から8ビット目には、エラービット数情報BFD(BFD_0〜BFD_3)が保持される。
図16は、第1実施形態の第1変形例に係る半導体記憶装置のキャッシュ読出し動作を説明するためのコマンドシーケンスである。図16は、第1実施形態における図9に対応する。
図16に示すように、第1実施形態の第1変形例におけるキャッシュ読出し動作は、マルチプレーン読出し動作と同様、専用コマンド“7xh”に代えて、特徴フィーチャ読出しコマンド“0Fh”及びアドレス“x0h”が用いられる点についてのみ、第1実施形態と相違する。
コントローラ1は、1回目のデータ読出しを指示するコマンド“31h”を半導体記憶装置2に送信した後、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“C0h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“C0h”を受けると、半導体記憶装置2は、図8において示したステップST26を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−(1)をコントローラ1に出力する。当該動作は、ステップST21〜ST25と並行して実行される。
また、コントローラ1は、2回目のデータ読出しを指示するコマンド“31h”を半導体記憶装置2に送信した後、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“D0h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“D0h”を受けると、半導体記憶装置2は、図8において示したステップST26を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−(2)をコントローラ1に出力する。当該動作は、ステップST21〜ST25と並行して実行される。
また、コントローラ1は、データの新たな読出し行わない旨を指示するコマンド“3Fh”を半導体記憶装置2に送信した後、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“C0h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“C0h”を受けると、半導体記憶装置2は、図8において示したステップST26を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−(3)をコントローラ1に出力する。
以上で、キャッシュ読出し動作が終了する。
1.4.4 マルチプレーンキャッシュ読出し動作について
次に、マルチプレーンキャッシュ読出し動作について説明する。
図17は、第1実施形態の第1変形例に係る半導体記憶装置のマルチプレーンキャッシュ読出し動作に用いられる特徴テーブルである。
図17に示すように、マルチプレーンキャッシュ読出し動作の際に用いられる特徴テーブルには、例えば、4種類のデータの誤り訂正結果STSを互いに識別する領域と、当該領域に対応するアドレスが割当てられる。4種類のデータは、プレーンPB0及びPB1のいずれから読み出されたか、及び同一のプレーンPBから奇数回目及び偶数回目のいずれに読み出されたか、で分類される。具体的には、誤り訂正結果STS−P0(odd)は、アドレス“10h”に対応付けられ、誤り訂正結果STS−P0(even)は、アドレス“20h”に対応付けられる。また、誤り訂正結果STS−P1(odd)は、アドレス“30h”に対応付けられ、誤り訂正結果STS−P1(even)は、アドレス“40h”に対応付けられる。
つまり、コマンド“0Fh”及びアドレス“10h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−P0(odd)を、1セクタ毎に4サイクルにわたって出力する。また、コマンド“0Fh”及びアドレス“20h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−P0(even)を、1セクタ毎に4サイクルにわたって出力する。コマンド“0Fh”及びアドレス“30h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−P1(odd)を、1セクタ毎に4サイクルにわたって出力する。また、コマンド“0Fh”及びアドレス“40h”が発行されると、シーケンサ16は、1ページ分の誤り訂正結果STS−P1(even)を、1セクタ毎に4サイクルにわたって出力する。
より具体的には、1セクタ分の誤り訂正結果STS−P0(odd)は、1ビット目から4ビット目には、セクタ位置情報S1(S1_0〜S1_3)が保持され、5ビット目から8ビット目には、エラービット数情報BF1(BF1_0〜BF1_3)が保持される。1セクタ分の誤り訂正結果STS−P0(even)は、1ビット目から4ビット目には、セクタ位置情報S2(S2_0〜S2_3)が保持され、5ビット目から8ビット目には、エラービット数情報BF2(BF2_0〜BF2_3)が保持される。1セクタ分の誤り訂正結果STS−P1(odd)は、1ビット目から4ビット目には、セクタ位置情報S3(S3_0〜S3_3)が保持され、5ビット目から8ビット目には、エラービット数情報BF3(BF3_0〜BF3_3)が保持される。1セクタ分の誤り訂正結果STS−P1(even)は、1ビット目から4ビット目には、セクタ位置情報S4(S4_0〜S4_3)が保持され、5ビット目から8ビット目には、エラービット数情報BF4(BF4_0〜BF4_3)が保持される。
図18は、第1実施形態の第1変形例に係る半導体記憶装置のマルチプレーンキャッシュ読出し動作を説明するためのコマンドシーケンスである。図18は、第1実施形態における図11に対応する。
図18に示すように、第1実施形態の第1変形例におけるマルチプレーンキャッシュ読出し動作は、マルチプレーン読出し動作及びキャッシュ読出し動作と同様、専用コマンド“7xh”に代えて特徴フィーチャ読出しコマンド“0Fh”及びアドレス“x0h”が用いられる点についてのみ、第1実施形態と相違する。
コントローラ1は、2回目のデータ読出しを指示するコマンド“31h”を半導体記憶装置2に送信した後、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“10h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“10h”を受けると、半導体記憶装置2は、図10において示したステップST41を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−P0(1)をコントローラ1に出力する。
また、コントローラ1は、半導体記憶装置2からの出力データDAT−P0(1)の出力が完了した後、コマンド“0Fh”及びアドレス“30h”を半導体記憶装置2に送信する。コマンド“0Fh”及びアドレス“30h”を受けると、半導体記憶装置2は、図10において示したステップST43を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−P1(1)をコントローラ1に出力する。
1回目の出力に係るステップST41〜ST44の動作は、2回目の読出しに係るステップST31〜ST40と並行して実行される。
また、コントローラ1は、3回目のデータ読出しを指示するコマンド“31h”を半導体記憶装置2に送信した後、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“20h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“20h”を受けると、半導体記憶装置2は、図10において示したステップST41を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−P0(2)をコントローラ1に出力する。
また、コントローラ1は、半導体記憶装置2からの出力データDAT−P0(2)の出力が完了した後、コマンド“0Fh”及びアドレス“40h”を半導体記憶装置2に送信する。コマンド“0Fh”及びアドレス“40h”を受けると、半導体記憶装置2は、図10において示したステップST43を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−P1(2)をコントローラ1に出力する。
2回目の出力に係るステップST41〜ST44の動作は、3回目の読出しに係るステップST31〜ST40と並行して実行される。
また、コントローラ1は、データの新たな読出しを行わない旨を指示するコマンド“3Fh”を半導体記憶装置2に送信した後、信号/RBが“H”レベルであることを確認した後、コマンド“0Fh”及びアドレス“10h”を半導体記憶装置2に送信する。
コマンド“0Fh”及びアドレス“10h”を受けると、半導体記憶装置2は、図10において示したステップST41を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−P0(3)をコントローラ1に出力する。
また、コントローラ1は、半導体記憶装置2からの出力データDAT−P0(3)の出力が完了した後、コマンド“0Fh”及びアドレス“30h”を半導体記憶装置2に送信する。コマンド“0Fh”及びアドレス“30h”を受けると、半導体記憶装置2は、図10において示したステップST43を実行する。すなわち、シーケンサ16は、ステータスレジスタ15の特徴テーブルに保持された誤り訂正結果STS−P1(3)をコントローラ1に出力する。
以上で、マルチプレーンキャッシュ読出し動作が終了する。
1.4.5 本変形例に係る効果
第1実施形態の第1変形例では、ステータスレジスタ15は、特徴テーブル内に誤り訂正結果STSを保持する。そして、半導体記憶装置2は、特徴テーブル内の誤り訂正結果STSを出力することにより、第1実施形態と同様の効果を奏することができる。
具体的には、シーケンサ16は、特徴テーブル出力コマンド“0Fh”及びアドレス“x0h”を受けると、当該アドレス“x0h”に対応するセクタの誤り訂正結果STSと、当該セクタと同一のページ内の他のセクタの誤り訂正結果STSとを連続して出力する。これにより、コントローラ1は、コマンド“0Fh”を1回発行するたびに、1ページ分の誤り訂正結果STSを取得することができる。
また、マルチプレーン読出し動作では、特徴テーブルには、誤り訂正結果STS−P0及びSTS−P1の2つを識別可能に割り当てられる。つまり、誤り訂正結果STS−P0及びSTS−P1にはそれぞれ、アドレス“A0h”及び“B0h”が割当てられる。これにより、マルチプレーン読出し動作において、誤り訂正結果STSを出力させる専用のコマンドを用いずに、リフレッシュ動作の要否を判断することができる。
また、キャッシュ読出し動作では、特徴テーブルには、誤り訂正結果STS−(odd)及びSTS−(even)の2つを識別可能に割当てられる。つまり、誤り訂正結果STS−(odd)及びSTS−(even)にはそれぞれ、アドレス“C0h”及び“D0h”が割当てられる。これにより、キャッシュ読出し動作において、誤り訂正結果STSを出力させる専用のコマンドを用いずに、リフレッシュ動作の要否を判断することができる。
また、マルチプレーンキャッシュ読出し動作では、特徴テーブルには、誤り訂正結果STS−P0(odd)、STS−P0(even)、STS−P1(odd)、及びSTS−P1(even)の4つを識別可能に割当てられる。つまり、誤り訂正結果STS−P0(odd)、STS−P0(even)、STS−P1(odd)、及びSTS−P1(even)にはそれぞれ、アドレス“10h”、“20h”、“30h”、及び“40h”が割当てられる。これにより、マルチプレーンキャッシュ読出し動作において、誤り訂正結果STSを出力させる専用のコマンドを用いずに、リフレッシュ動作の要否を判断することができる。
1.5 第1実施形態の第2変形例
第1実施形態の第1変形例では、コントローラ1から1つのアドレス“x0h”が発行されると、自動的に4サイクルにわたって1ページ分の誤り訂正結果STSが出力される場合について説明した。しかしながら、上述の例に限らず、1つのアドレス“x0h”に対して1セクタ分の誤り訂正結果STSが出力されてもよい。
図19は、第1実施形態の第2変形例に係る半導体記憶装置の誤り訂正結果出力動作を説明するためのコマンドシーケンスである。図19は、図12の部分に対応する。
図19に示すように、コントローラ1は、コマンド“0Fh”及びアドレス“x0h”を発行する。コマンド“0Fh”がコマンドレジスタ14に格納されると、シーケンサ16は、アドレス“x0h”に対応する特徴テーブル内の情報を特定する。そして、当該特定された情報をステータスレジスタ15から入出力制御回路11に転送する。
なお、シーケンサ16は、或るページ内の或るセクタ(例えばセクタ0)の誤り訂正結果STSに対応するアドレス“x0h”を受けると、当該或るセクタの誤り訂正結果STSを含むデータSect0のみを出力させる。
つまり、コマンド“0Fh”及び1つのアドレス“x0h”が発行されると、半導体記憶装置2は、例えば1サイクルにわたって、1セクタ分のデータに対応する誤り訂正結果STSのみを個別に出力する。
上述のように誤り訂正結果STSが出力される場合、アドレス“x0h”は、セクタ毎に割当てられる。図20は、第1実施形態の第2変形例に係る半導体記憶装置の読出し動作に用いられる特徴テーブルである。以下では、図20に示される特徴テーブルが、マルチプレーンキャッシュ読出し動作に用いられる場合について説明する。
図20に示すように、第1実施形態の第2変形例では、アドレス“x0h”は、アドレス“A0h”、“B0h”、“C0h”、及び“D0h”に加えて、“A1h”、“A2h”、“A3h”、“B1h”、“B2h”、“B3h”、“C1h”、“C2h”、“C3h”、“D1h”、“D2h”、及び“D3h”を更に含む。
1セクタ分の誤り訂正結果STSは、例えば、1ビット目から3ビット目には、任意のデータを保持可能であり、4ビット目には、プレーン情報が保持され、5ビット目から8ビット目には、エラービット数情報が保持される。プレーン情報は、例えば、当該誤り訂正結果STSに対応する読出しデータがプレーンPB0に対応する場合、“0”が入力され、プレーンPB1に対応する場合、“1”が入力される。
より具体的には、誤り訂正結果STS−P0(odd)のセクタ0〜セクタ3に対応する部分はそれぞれ、アドレス“A0h”、“A1h”、“A2h”、及び“A3h”に対応付けられる。アドレス“A0h”〜“A3h”に対応付けられた誤り訂正結果STS−P0(odd)の5ビット目から8ビット目にはそれぞれ、セクタ0〜セクタ3のエラービット数情報BFA0(BFA0_0〜BFA0_3)〜BFA3(BFA3_0〜BFA3_3)が保持される。
誤り訂正結果STS−P1(odd)のセクタ0〜セクタ3に対応する部分はそれぞれ、アドレス“B0h”、“B1h”、“B2h”、及び“B3h”に対応付けられる。アドレス“B0h”〜“B3h”に対応付けられた誤り訂正結果STS−P1(odd)の5ビット目から8ビット目にはそれぞれ、セクタ0〜セクタ3のエラービット数情報BFB0(BFB0_0〜BFB0_3)〜BFB3(BFB3_0〜BFB3_3)が保持される。
誤り訂正結果STS−P0(even)のセクタ0〜セクタ3に対応する部分はそれぞれ、アドレス“C0h”、“C1h”、“C2h”、及び“C3h”に対応付けられる。アドレス“C0h”〜“C3h”に対応付けられた誤り訂正結果STS−P0(even)の5ビット目から8ビット目にはそれぞれ、セクタ0〜セクタ3のエラービット数情報BFC0(BFC0_0〜BFC0_3)〜BFC3(BFC3_0〜BFC3_3)が保持される。
誤り訂正結果STS−P1(even)のセクタ0〜セクタ3に対応する部分はそれぞれ、アドレス“D0h”、“D1h”、“D2h”、及び“D3h”に対応付けられる。アドレス“D0h”〜“D3h”に対応付けられた誤り訂正結果STS−P1(even)の5ビット目から8ビット目にはそれぞれ、セクタ0〜セクタ3のエラービット数情報BFD0(BFD0_0〜BFD0_3)〜BFD3(BFD3_0〜BFD3_3)が保持される。
なお、上述の例では、図20に示した特徴テーブルをマルチプレーンキャッシュ読出し動作に用いる場合について説明したが、これに限らず、図20に示した特徴テーブルは、マルチプレーン読出し動作及びキャッシュ読出し動作についても用いることができる。
例えば、図20に示した特徴テーブルがマルチプレーン読出し動作に用いられる場合、誤り訂正結果STS−P0は、アドレス“A0h”〜“A3h”に対応付けられ、誤り訂正結果STS−P1は、アドレス“B0h”〜“B3h”に対応付けられてもよい。
また、例えば、図20に示した特徴テーブルがプレーンPB0におけるキャッシュ読出し動作に用いられる場合、誤り訂正結果STS−P0(odd)は、アドレス“A0h”〜“A3h”に対応付けられ、誤り訂正結果STS−P0(even)は、アドレス“C0h”〜“C3h”に対応付けられてもよい。同様に、例えば、図20に示した特徴テーブルがプレーンPB1におけるキャッシュ読出し動作に用いられる場合、誤り訂正結果STS−P1(odd)は、アドレス“B0h”〜“B3h”に対応付けられ、誤り訂正結果STS−P1(even)は、アドレス“D0h”〜“D3h”に対応付けられてもよい。
以上のようにアドレスを割当てることにより、マルチプレーン読出し動作、キャッシュ読出し動作、及びマルチプレーンキャッシュ読出し動作の際に、全ての読出しデータ内の全てのセクタを特定することができる。これにより、コントローラ1は、コマンド“0Fh”を1回発行するたびに、1セクタ分の誤り訂正結果STSを取得することができる。
2. 第2実施形態
第1実施形態では、NANDインタフェースに基づいてコントローラ又はホスト機器と接続される半導体記憶装置について説明した。第2実施形態では、SPI(Serial Peripheral Interface)に準拠したシリアルインタフェースに基づいてコントローラ又はホスト機器と接続される半導体記憶装置について説明する。以下の説明では、第1実施形態と同一の部分については説明を省略し、異なる部分についてのみ説明する。
2.1 構成について
第2実施形態に係る半導体記憶装置の構成について説明する。
2.1.1 半導体記憶装置の構成について
図21は、第2実施形態に係る半導体記憶装置の構成を説明するためのブロック図である。図21は、図1に対応する。図21に示すように、半導体記憶装置3は、外部のコントローラ又はホスト機器1(以下、第2実施形態では、単にホスト機器1と言う。)と接続される。半導体記憶装置3は、図1における入出力制御回路11及びロジック制御回路12に代えて、インタフェース回路19を備えている。
インタフェース回路19は、ホスト機器1から信号SCK、SI、/CS、/HOLD、及び/WPを受信し、ホスト機器1へ信号SOを送信する。信号SCKは、シリアルクロック信号である。信号SI及びSOはそれぞれ、入力用及び出力用のシリアルデータである。信号/CSは、半導体記憶装置3を活性化させるためのチップセレクト信号(言い換えれば、半導体記憶装置3にアクセスする際に活性化される信号)である。信号/CSは、例えば、ホスト機器1が半導体記憶装置3にコマンドを入力するタイミングでアサートされる(“L”レベルにされる)。信号/HOLDは、ホスト機器1と半導体記憶装置3との間の通信を一時的に停止する際にアサートされる(“L”レベルにされる)。信号/WPは、半導体記憶装置3の一部設定の変更を禁止する際にアサートされる(“L”レベルにされる)。
2.2 動作について
次に、第2実施形態に係る半導体記憶装置の動作について説明する。
2.2.1 誤り訂正情報出力動作について
図22は、第2実施形態に係る半導体記憶装置の誤り訂正結果出力動作を説明するためのコマンドシーケンスである。図22は、図5に対応する。
図22に示すように、ホスト機器1は、信号/CSをアサートすると共に、誤り訂正結果出力コマンド“7xh”を信号SIとして発行し、更に信号SCKを発行する。
インタフェース回路19は、信号/CSがアサートされて最初の信号SCKを受信した際の信号SIをコマンドとして認識する。このコマンドは、例えば8クロックサイクルにわたって入力される8ビット信号である。コマンド“7xh”を受けると、半導体記憶装置3は、誤り訂正結果STSの出力シーケンスを開始する。
半導体記憶装置3は、例えば、8クロックサイクルにわたる1セクタ分の誤り訂正結果STSを、セクタ0〜セクタ3まで順次ホスト機器1に出力する。そして、1ページ分の誤り訂正結果STSが半導体記憶装置3から出力された後、ホスト機器1は信号/CSをネゲートする。
以上のように動作することにより、半導体記憶装置3は、第1実施形態と同様の誤り訂正結果STSを、ホスト機器1に対して出力することができる。
2.2.2 マルチプレーン読出し動作について
次に、マルチプレーン読出し動作について説明する。
図23は、第2実施形態に係る半導体記憶装置のマルチプレーン読出し動作を説明するためのコマンドシーケンスである。図23は、図7に対応し、図6に示されたマルチプレーン読出し動作を実現するためのコマンドシーケンスの一例が示される。
図23に示すように、第2実施形態に係るマルチプレーン読出し動作は、メモリセルアレイ21からの読出し動作に係る部分と、ホスト機器1への出力動作に係る部分とは、第1実施形態と異なる。一方、誤り訂正結果出力動作に係る部分は、第1実施形態と同様である。
具体的には、ホスト機器1は、コマンド“60h”、アドレス“ADD−P0”、コマンド“60h”、アドレス“ADD−P1”、及びコマンド“61h”をこの順に半導体記憶装置3に送信する。コマンド“61h”は、例えば、メモリセルアレイ21から、直前に送信されたアドレスに対応するデータを読み出す旨を指示するコマンドである。つまり、コマンド“61h”は、メモリセルアレイ21−0及び21−1から並行してデータを読み出す旨を半導体記憶装置3に指示するコマンドである。また、コマンド“61h”は、読み出されたデータのホスト機器1への出力を開始せずに保留し、後続の指示があることを示す。
半導体記憶装置3は、コマンド“61h”を受けると、期間tRの間、例えば、特徴テーブル内のOIP(Operation in Progress)を“1”に設定する。特徴テーブル内のOIPは、半導体記憶装置3がレディ状態であるかビジー状態であるかを示すフラグであり、“0”がレディ状態で、“1”がビジー状態を示す。ホスト機器1は、特徴テーブル内のOIPを取得するためのコマンドを半導体記憶装置3に発行してOIPを取得し、半導体記憶装置3の状態を把握してもよい。
期間tRの間の半導体記憶装置3の動作は、第1実施形態と同様であるため、説明を省略する。メモリセルアレイ21−0及び21−1からの並行したデータ読出しが終了した後、半導体記憶装置3は、OIPを“0”に設定し、レディ状態をホスト機器1に通知する。
続いて、ホスト機器1は、コマンド“7Ah”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Ah”を受けると、図6において示したステップST9を実行する。すなわち、シーケンサ16は、ステータスレジスタ15に保持された誤り訂正結果STS−P0をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P0に基づき、プレーンPB0から読み出されたデータが正常に誤り訂正されていることを確認した後、コマンド“03h”を半導体記憶装置3に送信する。コマンド“03h”は、アドレス入力受付コマンドに相当し、半導体記憶装置3からホスト機器1にデータを出力するための動作を命令するコマンドである。続いて、ホスト機器1は、アドレス“ADD−P0−CA”を半導体記憶装置3に送信する。これにより、半導体記憶装置3は、プレーンPB0から読み出されたデータの出力が指示されたことを認識する。
半導体記憶装置3は、アドレス“ADD−P0−CA”を受けると、図6において示したステップST10を実行する。すなわち、シーケンサ16は、レジスタA2に保持された誤り訂正後データを出力データDAT−P0としてホスト機器1に出力する。
続いて、ホスト機器1は、コマンド“7Bh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Bh”を受けると、図6において示したステップST11を実行する。すなわち、シーケンサ16は、ステータスレジスタ15に保持された誤り訂正結果STS−P1をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P1に基づき、プレーンPB1から読み出されたデータが正常に誤り訂正されていることを確認した後、コマンド“03h”及びアドレス“ADD−P1−CA”を半導体記憶装置3に送信する。半導体記憶装置3は、アドレス“ADD−P1−CA”を受けると、図6において示したステップST12を実行する。すなわち、シーケンサ16は、レジスタB2に保持された誤り訂正後データを出力データDAT−P1としてホスト機器1に出力する。
以上のように動作することにより、半導体記憶装置3は、シリアルインタフェースに基づくマルチプレーン読出し動作において、誤り訂正結果STS−P0及びSTS−P1を、個別にホスト機器1に出力することができる。
2.2.3 キャッシュ読出し動作について
次に、キャッシュ読出し動作について説明する。
図24は、第2実施形態に係る半導体記憶装置のキャッシュ読出し動作を説明するためのコマンドシーケンスである。図24は、図9に対応し、図8に示されたキャッシュ読出し動作を実現するためのコマンドシーケンスの一例が示される。
図24に示すように、第2実施形態に係るキャッシュ読出し動作は、メモリセルアレイ21からの読出し動作に係る部分と、ホスト機器1への出力動作に係る部分とは、第1実施形態と異なる。一方、誤り訂正結果出力動作に係る部分は、第1実施形態と同様である。
図24に示すように、ホスト機器1は、コマンド“13h”及びアドレス“ADD−(1)”を半導体記憶装置3に送信する。コマンド“13h”は、例えば、アドレス入力受付コマンドに相当し、半導体記憶装置3からホスト機器1にデータを出力するための動作を命令するコマンドである。
半導体記憶装置3は、アドレス“ADD−(1)”を受けると、期間tRの間、特徴テーブル内のOIPを“1”に設定して、ビジー状態をホスト機器1に通知する。期間tRの間の半導体記憶装置3の動作は、第1実施形態と同様であるため、説明を省略する。メモリセルアレイ21−0からのデータ読出しが終了した後、半導体記憶装置3は、OIPを“0”に設定し、レディ状態をホスト機器1に通知する。
ここで、半導体記憶装置3は、図8において示したステップST21の直前の状態と一致する。
続いて、ホスト機器1は、コマンド“30h”及びアドレス“ADD−(2)”を半導体記憶装置3に送信する。コマンド“30h”は、例えば、メモリセルアレイ21から、直後に送信されたアドレスに対応するデータを読み出す旨を指示するコマンドである。また、コマンド“30h”は、次に読み出されるデータを一時的に保持する旨を指示するコマンドである。なお、2回目に読み出されるデータは、1回目に読み出されたデータを上書きすることなく保持される。
半導体記憶装置3は、コマンド“30h”及びアドレス“ADD−(2)”を受けると、図8において示したステップST21〜ST25を実行する。すなわち、シーケンサ16は、ステップST21において、レジスタC1及びC2に保持されたデータをそれぞれレジスタA1及びA2に転送する間、OIPを“1”に設定して、ビジー状態をホスト機器1に通知する。半導体記憶装置3は、レジスタ間のデータ転送が完了すると、OIPを“0”に設定して、レディ状態をホスト機器1に通知する。ステップST21〜ST25に係るその他の動作の詳細は、第1実施形態と同様であるため、説明を省略する。
ステップST21〜ST25と並行して、ホスト機器1及び半導体記憶装置3は、図8において示したステップST26及びST27を実行する。
具体的には、ホスト機器1は、コマンド“7Ch”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Ch”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−(n)のうち、1回目に読み出されたデータに対応する誤り訂正結果STS−(1)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−(1)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−(1)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−(1)−CA”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−(1)としてホスト機器1に出力する。
ここで、半導体記憶装置3は、再び図8において示したステップST21の直前の状態と一致する。
続いて、ホスト機器1は、コマンド“30h”及びアドレス“ADD−(3)”を半導体記憶装置3に送信する。
半導体記憶装置3は、コマンド“30h”及びアドレス“ADD−(3)”を受けると、図8において示したステップST21〜ST25を実行する。
ステップST21〜ST25と並行して、ホスト機器1及び半導体記憶装置3は、図8において示したステップST26及びST27を実行する。
具体的には、ホスト機器1は、コマンド“7Dh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Dh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−(n)のうち、2回目に読み出されたデータに対応する誤り訂正結果STS−(2)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−(2)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”及びアドレス“ADD−(2)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−(2)−CA”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−(2)としてホスト機器1に出力する。
続いて、ホスト機器1は、コマンド“3Fh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“3Fh”を受けると、レジスタC1及びC2に保持されたデータをそれぞれレジスタA1及びA2に転送し、データの出力に備える。
ホスト機器1は、コマンド“7Ch”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Ch”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−(n)のうち、3回目に読み出されたデータに対応する誤り訂正結果STS−(3)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−(3)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”及びアドレス“ADD−(3)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−(3)−CA”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−(3)としてホスト機器1に出力する。
以上のように動作することにより、半導体記憶装置3は、シリアルインタフェースに基づくキャッシュ読出し動作においても、各データに対応する誤り訂正結果STSを個別にホスト機器1に出力できる。
2.2.4 マルチプレーンキャッシュ読出し動作について
次に、マルチプレーンキャッシュ読出し動作について説明する。
図25は、第2実施形態に係る半導体記憶装置のマルチプレーンキャッシュ読出し動作を説明するためのコマンドシーケンスである。図25は、図11に対応し、図10に示されたマルチプレーンキャッシュ読出し動作を実現するためのコマンドシーケンスの一例が示される。
図25に示すように、第2実施形態に係るマルチプレーンキャッシュ読出し動作は、メモリセルアレイ21からの読出し動作に係る部分と、ホスト機器1への出力動作に係る部分とは、第1実施形態と異なる。一方、誤り訂正結果出力動作に係る部分は、第1実施形態と同様である。
図25に示すように、ホスト機器1は、コマンド“60h”、アドレス“ADD−P0(1)”、コマンド“60h”、アドレス“ADD−P1(1)”、及びコマンド“61h”をこの順に半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“61h”を受けると、期間tRの間、例えば、特徴テーブル内のOIPを“1”に設定し、ビジー状態をホスト機器1に通知する。
期間tRの間の半導体記憶装置3の動作は、第1実施形態と同様であるため、説明を省略する。メモリセルアレイ21−0及び21−1からの並行したデータ読出しが終了した後、半導体記憶装置3は、OIPを“0”に設定し、レディ状態をホスト機器1に通知する。
ここで、半導体記憶装置3は、図10において示したステップST31の直前の状態と一致する。
続いて、ホスト機器1は、コマンド“60h”、アドレス“ADD−P0(2)”、コマンド“60h”、アドレス“ADD−P1(2)”、及びコマンド“62h”をこの順に半導体記憶装置3に送信する。コマンド“62h”は、メモリセルアレイ21から、直後に送信されたアドレスに対応するデータを読み出す旨を指示するコマンドである。つまり、コマンド“62h”は、メモリセルアレイ21−0及び21−1から並行してデータを読み出す旨を半導体記憶装置3に指示する。また、コマンド“62h”は、次に読み出されるデータを一時的に保持する旨を指示するコマンドである。なお、2回目に読み出されるデータは、1回目に読み出されたデータを上書きすることなく保持される。
半導体記憶装置3は、コマンド“62h”を受けると、図10において示したステップST31〜40を実行する。すなわち、半導体記憶装置3は、コマンド“62h”を受けると、レジスタC1及びC2、並びにレジスタD1及びD2に保持されたデータをそれぞれレジスタA1及びA2、並びにレジスタB1及びB2に転送し、データの出力に備える。
ステップST31〜ST40と並行して、ホスト機器1及び半導体記憶装置3は、図10において示したステップST41〜ST44を実行する。
具体的には、ホスト機器1は、コマンド“7Eh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P0(n)のうち、1回目に読み出されたデータに対応する誤り訂正結果STS−P0(1)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P0(1)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−P0(1)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−P0(1)−CA”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−P0(1)としてホスト機器1に出力する。
また、ホスト機器1は、再度コマンド“7Eh”を半導体記憶装置3に送信する。半導体記憶装置3は、2回目のコマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P1(n)のうち、1回目に読み出されたデータに対応する誤り訂正結果STS−P1(1)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P1(1)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−P1(1)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−P1(1)−CA”を受けると、レジスタB2に保持された誤り訂正後データを読出しデータDAT−P1(1)としてホスト機器1に出力する。
ここで、半導体記憶装置3は、再び、図10において示したステップST31の直前の状態と一致する。
続いて、ホスト機器1は、コマンド“60h”、アドレス“ADD−P0(3)”、コマンド“60h”、アドレス“ADD−P1(3)”、及びコマンド“62h”をこの順に半導体記憶装置3に送信する。
半導体記憶装置3は、コマンド“62h”を受けると、図10において示したステップST31〜40を実行する。すなわち、半導体記憶装置3は、コマンド“62h”を受けると、レジスタC1及びC2、並びにレジスタD1及びD2に保持されたデータをそれぞれレジスタA1及びA2、並びにレジスタB1及びB2に転送し、データの出力に備える。
ステップST31〜40と並行して、ホスト機器1及び半導体記憶装置3は、図10において示したステップST41〜ST44を実行する。
具体的には、ホスト機器1は、コマンド“7Fh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Fh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P0(n)のうち、2回目に読み出されたデータに対応する誤り訂正結果STS−P0(2)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P0(2)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−P0(2)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−P0(2)−CA”を受けると、レジスタB2に保持された誤り訂正後データを読出しデータDAT−P0(2)としてホスト機器1に出力する。
また、ホスト機器1は、再度コマンド“7Fh”を半導体記憶装置3に送信する。半導体記憶装置3は、2回目のコマンド“7Fh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P1(n)のうち、2回目に読み出されたデータに対応する誤り訂正結果STS−P1(2)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P1(2)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−P1(2)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−P1(2)−CA”を受けると、レジスタB2に保持された誤り訂正後データを読出しデータDAT−P1(2)としてホスト機器1に出力する。
続いて、ホスト機器1は、コマンド“6Fh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“6Fh”を受けると、レジスタC1及びC2、並びにレジスタD1及びD2に保持されたデータをそれぞれレジスタA1及びA2、並びにレジスタB1及びB2に転送し、データの出力に備える。
ホスト機器1は、コマンド“7Eh”を半導体記憶装置3に送信する。半導体記憶装置3は、コマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P0(n)のうち、3回目に読み出されたデータに対応する誤り訂正結果STS−P0(3)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P0(3)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−P0(3)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−P0(3)−CA”を受けると、レジスタA2に保持された誤り訂正後データを読出しデータDAT−P0(3)としてホスト機器1に出力する。
また、ホスト機器1は、再度コマンド“7Eh”を半導体記憶装置3に送信する。半導体記憶装置3は、2回目のコマンド“7Eh”を受けると、ステータスレジスタ15に保持された誤り訂正結果STS−P1(n)のうち、3回目に読み出されたデータに対応する誤り訂正結果STS−P1(3)をホスト機器1に出力する。
ホスト機器1は、当該誤り訂正結果STS−P1(3)に基づき、読み出されたデータが正常に誤り訂正されていることを確認する。そして、ホスト機器1は、コマンド“03h”、及びアドレス“ADD−P1(3)−CA”を半導体記憶装置3に送信する。
半導体記憶装置3は、アドレス“ADD−P1(3)−CA”を受けると、レジスタB2に保持された誤り訂正後データを読出しデータDAT−P1(3)としてホスト機器1に出力する。
以上のように動作することにより、半導体記憶装置3は、シリアルインタフェースに基づくマルチプレーンキャッシュ読出し動作においても、各データに対応する誤り訂正結果STSを個別にホスト機器1に出力できる。
2.3 本実施形態に係る効果
第2実施形態に係る半導体記憶装置は、信号SCK、信号/CS、SI、/HOLD、及び/WPを受け、信号SOを出力する。シーケンサ16は、アサートされた信号/CSを受けた直後に受けた信号SIをコマンドとして認識する。これにより、半導体記憶装置3は、シリアルインタフェースによってホスト機器1と接続される場合においても、第1実施形態と同様に、誤り訂正結果STSを出力することができる。
また、シーケンサ16は、ホスト機器1からコマンド“7Ah”を受けると誤り訂正結果STS−P0を、コマンド“7Bh”を受けると誤り訂正結果STS−P1をステータスレジスタ15から出力する。これにより、ホスト機器1は、マルチプレーン読出し動作によって異なるプレーンPB0及びPB1から並行して読み出されたデータの各々について、どのセクタ位置でどの程度エラービット数が発生したかを把握することができる。このため、ホスト機器1は、マルチプレーン読出し動作の際にも、リフレッシュ動作の要否を判断することができる。
また、シーケンサ16は、ホスト機器1からコマンド“7Ch”を受けると誤り訂正結果STS−(odd)を、コマンド“7Dh”を受けると誤り訂正結果STS−(even)をステータスレジスタ15から出力する。これにより、ホスト機器1は、キャッシュ読出し動作によってメモリセルアレイ21からの読出しと、ホスト機器1への出力とが並行して実行されたデータの各々について、どのセクタ位置でどの程度エラービット数が発生したかを把握することができる。このため、ホスト機器1は、キャッシュ読出し動作の際にも、リフレッシュ動作の要否を判断することができる。
また、シーケンサ16は、ホスト機器1からコマンド“7Eh”を受けると誤り訂正結果STS−P0(odd)及びSTS−P1(odd)を、コマンド“7Fh”を受けると誤り訂正結果STS−P0(even)及びSTS−P1(even)をステータスレジスタ15から出力する。これにより、ホスト機器1は、マルチプレーンキャッシュ読出し動作によってメモリセルアレイ21からの読出しと、ホスト機器1への出力とが並行して実行されたデータの各々について、どのセクタ位置でどの程度エラービット数が発生したかを把握することができる。このため、ホスト機器1は、マルチプレーンキャッシュ読出し動作の際にも、リフレッシュ動作の要否を判断することができる。
したがって、第1実施形態と同様の効果を奏することができる。
2.4 第2実施形態の第1変形例
なお、第2実施形態では、誤り訂正結果STSをホスト機器1に出力させるための専用のコマンド“7xh”を用いる場合について説明したが、これに限られない。誤り訂正結果STSは、例えば、ステータスレジスタ15内に別途保持される特徴テーブルから読み出されてもよい。すなわち、ホスト機器1は、特徴テーブルの読出しコマンド“0Fh”を用いて誤り訂正結果STSを出力させてもよい。
以下の説明では、第2実施形態と同一の部分については説明を省略し、異なる部分についてのみ説明する。
2.4.1 誤り訂正情報読出し動作について
まず、誤り訂正結果の出力動作について説明する。図26は、第2実施形態の第1変形例に係る半導体記憶装置の誤り訂正結果の出力動作を説明するためのコマンドシーケンスである。図26は、図22に対応する。
図26に示すように、ホスト機器1は、信号/CSをアサートすると共に、8クロックサイクルにわたってコマンド“0Fh”を信号SIとして発行し、更に信号SCKを発行する。また、ホスト機器1は、例えば8クロックサイクルにわたってアドレス“x0h”を信号SIとして半導体記憶装置3に送信する。
コマンド“0Fh”がコマンドレジスタ14に格納されると、シーケンサ16は、アドレス“x0h”に対応する特徴テーブル内の情報を特定する。そして、当該特定された情報をステータスレジスタ15から入出力制御回路11に転送する。なお、シーケンサ16は、アドレス“x0h”が或るページの或るセクタの誤り訂正結果STSに対応する場合、当該或るページの他のセクタの誤り訂正結果STSについても順次出力させる。
つまり、コマンド“0Fh”及び1つのアドレス“x0h”が発行されると、半導体記憶装置3は、例えば8クロックサイクルにわたる1セクタ分の誤り訂正結果STSの出力をセクタ0〜セクタ3について順次ホスト機器1に出力する。そして、1ページ分の誤り訂正結果STSが半導体記憶装置3から出力された後、ホスト機器1は信号/CSをネゲートする。
なお、第2実施形態の第1変形例に適用される特徴テーブル内の誤り訂正結果STS、及び当該誤り訂正結果STSに割当てられるアドレス“x0h”は、第1実施形態の第1変形例と同様なものが適用可能であるため、その説明を省略する。
以上のように動作することにより、半導体記憶装置3は、第2実施形態と同様の誤り訂正結果STSを、ホスト機器1に対して出力することができる。
2.4.2 マルチプレーン読出し動作について
次に、マルチプレーン読出し動作について説明する。
図27は、第2実施形態の第1変形例に係る半導体記憶装置のマルチプレーン読出し動作を説明するためのコマンドシーケンスである。図27は、第2実施形態における図23に対応する。
図27に示すように、第2実施形態の第1変形例におけるマルチプレーン読出し動作は、専用コマンド“7xh”に代えて特徴フィーチャ読出しコマンド“0Fh”及びアドレス“x0h”が用いられる点についてのみ、第2実施形態と相違する。
また、第2実施形態の第1変形例と第2実施形態との相違点に係る説明は、第1実施形態の第1変形例と第1実施形態との相違点に係る説明と同一である。
以上のように動作することにより、シリアルインタフェースに基づくマルチプレーン読出し動作において、特徴テーブルに保持された誤り訂正結果STSをホスト機器1に出力できる。
2.4.3 キャッシュ読出し動作について
次に、キャッシュ読出し動作について説明する。
図28は、第2実施形態の第1変形例に係る半導体記憶装置のキャッシュ読出し動作を説明するためのコマンドシーケンスである。図28は、第2実施形態における図24に対応する。
図28に示すように、第2実施形態の第1変形例におけるキャッシュ読出し動作は、専用コマンド“7xh”に代えて特徴フィーチャ読出しコマンド“0Fh”及びアドレス“x0h”が用いられる点についてのみ、第2実施形態と相違する。
また、第2実施形態の第1変形例と第2実施形態との相違点に係る説明は、第1実施形態の第1変形例と第1実施形態との相違点に係る説明と同一である。
以上のように動作することにより、シリアルインタフェースに基づくキャッシュ読出し動作において、特徴テーブルに保持された誤り訂正結果STSをホスト機器1に出力できる。
2.4.4 マルチプレーンキャッシュ読出し動作について
次に、マルチプレーンキャッシュ読出し動作について説明する。
図29は、第2実施形態の第1変形例に係る半導体記憶装置のマルチプレーンキャッシュ読出し動作を説明するためのコマンドシーケンスである。図29は、第2実施形態における図25に対応する。
図29に示すように、第2実施形態の第1変形例におけるマルチプレーンキャッシュ読出し動作は、専用コマンド“7xh”に代えて特徴フィーチャ読出しコマンド“0Fh”及びアドレス“x0h”が用いられる点についてのみ、第2実施形態と相違する。
また、第2実施形態の第1変形例と第2実施形態との相違点に係る説明は、第1実施形態の第1変形例と第1実施形態との相違点に係る説明と同一である。
以上のように動作することにより、シリアルインタフェースに基づくマルチプレーンキャッシュ読出し動作において、特徴テーブルに保持された誤り訂正結果STSをホスト機器1に出力できる。
2.4.5 本変形例に係る効果
第2実施形態の第1変形例では、ステータスレジスタ15は、特徴テーブル内に誤り訂正結果STSを保持する。そして、半導体記憶装置3は、特徴テーブル内の誤り訂正結果STSを出力することにより、第2実施形態と同様の効果を奏することができる。
具体的には、シーケンサ16は、特徴テーブル出力コマンド“0Fh”及びアドレス“x0h”を受けると、当該アドレス“x0h”に対応するセクタを含むページの誤り訂正結果STSを連続して出力する。これにより、ホスト機器1は、コマンド“0Fh”を1回発行するたびに、1ページ分の誤り訂正結果STSを取得することができる。
また、アドレス“x0h”は、第1実施形態の第1変形例と同様に割り当てられる。すなわち、マルチプレーン読出し動作では、誤り訂正結果STS−P0及びSTS−P1にはそれぞれ、アドレス“A0h”及び“B0h”が割当てられる。キャッシュ読出し動作では、誤り訂正結果STS−(odd)及びSTS−(even)にはそれぞれ、アドレス“C0h”及び“D0h”が割当てられる。マルチプレーンキャッシュ読出し動作では、誤り訂正結果STS−P0(odd)、STS−P0(even)、STS−P1(odd)、及びSTS−P1(even)にはそれぞれ、アドレス“10h”、“20h”、“30h”、及び“40h”が割当てられる。これにより、マルチプレーン読出し動作、キャッシュ読出し動作、及びマルチプレーンキャッシュ読出し動作の各々において、誤り訂正結果STSを出力させる専用のコマンドを用いずに、リフレッシュ動作の要否を判断することができる。
2.5 第1実施形態の第2変形例
第2実施形態の第1変形例では、ホスト機器1から1つのアドレス“x0h”が発行されると、自動的に4サイクルにわたって1ページ分の誤り訂正結果STSが出力される場合について説明した。しかしながら、上述の例に限らず、1つのアドレス“x0h”に対して1セクタ分の誤り訂正結果STSが出力されてもよい。
図30は、第2実施形態の第2変形例に係る半導体記憶装置の誤り訂正結果出力動作を説明するためのコマンドシーケンスである。図30は、図26の部分に対応する。
図30に示すように、ホスト機器1は、信号/CSをアサートすると共に、例えば8クロックサイクルにわたってコマンド“0Fh”を信号SIとして発行し、更に信号SCKを発行する。また、ホスト機器1は、例えば8クロックサイクルにわたってアドレス“x0h”を半導体記憶装置3に送信する。
コマンド“0Fh”がコマンドレジスタ14に格納されると、シーケンサ16は、アドレス“x0h”に対応する特徴テーブル内の情報を特定する。そして、当該特定された情報をステータスレジスタ15から入出力制御回路11に転送する。なお、シーケンサ16は、アドレス“x0h”が或るページの或るセクタの誤り訂正結果STSに対応する場合、当該或るセクタの誤り訂正結果STSのみを出力させる。
つまり、コマンド“0Fh”及び1つのアドレス“x0h”が発行されると、半導体記憶装置3は、例えば8クロックサイクルにわたる1セクタ分のデータに対応する誤り訂正結果STSのみを個別に出力する。そして、1セクタ分の誤り訂正結果STSが半導体記憶装置3から出力された後、ホスト機器1は信号/CSをネゲートする。
以上のように動作することにより、半導体記憶装置3は、第2実施形態と同様の誤り訂正結果STSを、ホスト機器1に対して出力することができる。
上述のように誤り訂正結果STSが出力される場合、アドレス“x0h”は、セクタ毎に割当てられる。このため、第1実施形態の第2変形例と同様、例えば、図20に示した特徴テーブルに対応するアドレスを割当てることにより、マルチプレーン読出し動作、キャッシュ読出し動作、及びマルチプレーンキャッシュ読出し動作の際に、全ての読出しデータ内の全てのセクタを特定することができる。
3. その他
上述の各実施形態では、ECC回路18は、誤り訂正結果STSとして、或るページ内のセクタのセクタ位置情報と、当該セクタ毎のエラービット数情報と、訂正可否情報と、を含む情報を生成する場合について説明したが、これに限られない。例えば、ECC回路18は、誤り訂正結果STSとして、或るページ内のセクタのうち、エラービット数が最も多いセクタのセクタ位置情報と、当該セクタにおけるエラービット数情報との組を含む情報を生成してもよい。また、例えば、ECC回路18は、誤り訂正結果STSとして、或るページ内のセクタのセクタ位置情報と、当該セクタに対する誤り検出処理の結果、或る閾値を超えた数の誤りが検出されたか否かを示す情報と、の組を含む情報を生成してもよい。なお、当該或る閾値は、予め設定された固定値でもよく、コントローラ又はホスト機器1によって適宜異なる値に設定可能でもよい。
また、誤り訂正結果STSにセクタ位置情報及びエラービット数情報以外の情報が含まれる場合、特徴テーブルは、当該他の情報が定義された領域が更に割り当てられてもよい。
そして、半導体記憶装置2及び3は、ECC回路18が生成した上述の各種情報を含む誤り訂正結果STSを、上述の各実施形態において説明したコマンドシーケンスに従って出力可能であってもよい。
また、上述の各実施形態では、キャッシュ読出し動作及びマルチプレーンキャッシュ読出し動作において、ランダムキャッシュ読出し動作が実行される場合について示したが、これに限られない。例えば、キャッシュ読出し動作及びマルチプレーンキャッシュ読出し動作では、連続するページが順次読み出されるシーケンシャルキャッシュ読出し(Sequential cache reading)動作が実行されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。