(57)【特許請求の範囲】
【請求項１】
ホスト機器からチップセレクト信号を受信可能な第１ピンと、
前記ホスト機器へ第１信号を出力可能な第２ピンと、
前記ホスト機器から第２信号を受信可能な第３ピンと、
前記ホスト機器からクロックを受信可能な第４ピンと、
アサートされた前記チップセレクト信号が受信された直後に前記第３ピンで受信された前記第２信号をコマンドとして認識するインタフェース回路と、
データを保持可能なメモリセルを含み、ページ単位でデータが書込まれるメモリセルアレイと、
前記メモリセルアレイに書込まれるデータのＥＣＣ符号の生成及びエラーの訂正を行うＥＣＣ回路と、を備え、
前記インタフェース回路は、前記ＥＣＣ回路を有効又は無効に設定する設定情報を前記ホスト機器から受信可能であり、
前記メモリセルアレイは、ロウおよびカラムに対応付けられた複数のメモリセルを含み、
前記複数のメモリセルは、ロウアドレスおよびカラムアドレスによって指定され、
前記複数のメモリセルのうち同一カラムにあるメモリセルは、同一のビット線に接続されており、
前記メモリセルアレイは、前記設定情報に応じて、前記データを書込み可能な領域に対応するカラムアドレスの最大値が変更され、
前記カラムアドレスは、前記ＥＣＣ回路の設定に関わらず、前記ホスト機器からカラム方向に連続して見えるように設定され、前記インタフェース回路は、前記ロウアドレスと前記カラムアドレスとを前記ホスト機器から受信する
メモリシステム。
【請求項２】
前記ＥＣＣ符号は、前記メモリセルアレイに保持され、
前記ＥＣＣ符号を保持する領域は、前記ＥＣＣ回路の設定が有効を示す場合、前記ホスト機器から書込み不可となり、前記ＥＣＣ回路の設定が無効を示す場合、前記ホスト機器から書込み可能となる請求項１記載のメモリシステム。
【請求項３】
前記保持されたＥＣＣ符号は、前記ＥＣＣ回路の設定に関わらず読出し可能である請求項２記載のメモリシステム。
【請求項４】
前記ホスト機器から指定されたカラムアドレスと、前記ホスト機器から書込み可能なカラムアドレスとが対応しているか否かを判定し、
対応していないと判定した場合、前記データを書込み可能な領域にのみデータを書込む制御回路を更に備える
請求項１から請求項３のいずれか１項に記載のメモリシステム。
【請求項５】
前記インタフェース回路は、前記クロックに同期して前記第２信号を受信し、前記チップセレクト信号がアサートされた後の最初のクロックに同期して受信した前記第２信号を前記コマンドと認識する
請求項１から請求項４のいずれか１項に記載のメモリシステム。
【請求項６】
前記インタフェース回路は、ＳＰＩ（Serial Peripheral Interface）に準拠したバスにより前記ホスト機器と接続可能である
請求項１から請求項５のいずれか１項に記載のメモリシステム。
【請求項７】
前記インタフェース回路は、第１半導体チップに実装され、
前記メモリセルアレイ及び前記ＥＣＣ回路は、前記第１半導体チップとは異なる第２半導体チップに実装される
請求項１から請求項６のいずれか１項に記載のメモリシステム。
【請求項８】
前記インタフェース回路、前記メモリセルアレイ、及び前記ＥＣＣ回路は、同一の半導体チップに実装される
請求項１から請求項６のいずれか１項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
記憶デバイスとして、ＮＡＮＤ型フラッシュメモリが広く知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Toshiba Datasheet, TC58NVG0S3HTA00, ２０１２年８月３１日
【非特許文献２】Toshiba Datasheet, TC58BVG0S3HTA00, ２０１２年８月３１日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ホスト機器から書込める領域を適切に設定出来るメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、ホスト機器からチップセレクト信号を受信可能な第１ピンと、ホスト機器へ第１信号を出力可能な第２ピンと、ホスト機器から第２信号を受信可能な第３ピンと、ホスト機器からクロックを受信可能な第４ピンと、アサートされたチップセレクト信号が受信された直後に第３ピンで受信された第２信号をコマンドとして認識するインタフェース回路と、データを保持可能なメモリセルを含み、ページ単位でデータが書込まれるメモリセルアレイと、メモリセルアレイに書込まれるデータのＥＣＣ符号の生成及びエラーの訂正を行うＥＣＣ回路と、を備える。インタフェース回路は、ＥＣＣ回路を有効又は無効に設定する設定情報を、ホスト機器から受信可能である。メモリセルアレイは、ロウ及びカラムに対応付けられた複数のメモリセルを含む。複数のメモリセルは、ロウアドレス及びカラムアドレスによって指定される。複数のメモリセルのうち同一カラムにあるメモリセルは、同一のビット線に接続されている。メモリセルアレイは、設定情報に応じて、データを書込み可能な領域に対応するカラムアドレスの最大値が変更される。カラムアドレスは、ＥＣＣ回路の設定に関わらず、ホスト機器からカラム方向に連続して見えるように設定される。インタフェース回路は、ロウアドレスとカラムアドレスとをホスト機器から受信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、一実施形態に係るメモリシステムの外観図である。
【図２】図２は、一実施形態に係るメモリシステムの断面図である。
【図３】図３は、一実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。
【図４】図４は、一実施形態に係るメモリシステムの外観図である。
【図５】図５は、一実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。
【図６】図６は、一実施形態に係るメモリシステムのブロック図である。
【図７】図７は、一実施形態に係る半導体記憶装置のブロック図である。
【図８】図８は、一実施形態に係るメモリシステムのセルレイアウトを示す模式図である。
【図９】図９は、一実施形態に係るメモリシステムのページ内の構成を示す模式図である。
【図１０】図１０は、一実施形態に係るメモリシステムのページ内の構成を示す模式図である。
【図１１】図１１は、一実施形態に係るメモリシステムの読出し時における各種信号のタイミングチャートである。
【図１２】図１２は、一実施形態に係るメモリシステムの読出し時における各種信号のタイミングチャートである。
【図１３】図１３は、一実施形態に係るメモリシステムの読出し時における各種信号のタイミングチャートである。
【図１４】図１４は、一実施形態に係るメモリシステムの読出し時における各種信号のタイミングチャートである。
【図１５】図１５は、一実施形態に係るメモリシステムの書込み時における各種信号のタイミングチャートである。
【図１６】図１６は、一実施形態に係るメモリシステムの書込み時における各種信号のタイミングチャートである。
【図１７】図１７は、一実施形態に係るメモリシステムの書込み時における各種信号のタイミングチャートである。
【図１８】図１８は、一実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。
【図１９】図１９は、一実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。
【図２０】図２０は、一実施形態に係る特徴テーブルの模式図である。
【図２１】図２１は、一実施形態に係る特徴テーブルに保持される情報の内容を示すダイアグラムである。
【図２２】図２２は、一実施形態に係る特徴テーブルに情報を設定する際における各種信号のタイミングチャートである。
【図２３】図２３は、一実施形態に係るメモリシステムのＥＣＣ設定時における動作を示すフローチャートである。
【図２４】図２４は、一実施形態に係るメモリシステムの書込み動作を示すフローチャートである。
【図２５】図２５は、一実施形態に係るメモリシステムの書込み動作時におけるコマンドシーケンスである。
【図２６】図２６は、一実施形態に係るメモリシステムの読出し動作を示すフローチャートである。
【図２７】図２７は、一実施形態に係るメモリシステムの読出し動作時におけるコマンドシーケンスである。
【図２８】図２８は、一実施形態に係るメモリシステムの読出し動作を示すフローチャートである。
【図２９】図２９は、一実施形態に係るメモリシステムの読出し動作時におけるコマンドシーケンスである。
【図３０】図３０は、一実施形態の変形例に係るメモリシステムのブロック図である。
【図３１】図３１は、一実施形態に係るメモリシステムを利用したシステムの概念図である。
【図３２】図３２は、一実施形態に係るメモリシステムを利用したシステムの概念図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．一実施形態
一実施形態に係るメモリシステムについて説明する。
【０００９】
１．１  構成について
１．１．１  メモリシステムの全体構成について
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図１及び図２を用いて説明する。図１は、本実施形態に係るメモリシステムの外観図であり、特に上面から見た様子を示し、図２は図１における２−２線に沿った断面図である。
【００１０】
図示するように、メモリシステム１は、２つの半導体チップ１００，２００を含む。半導体チップ（メモリチップ）１００は、ＮＡＮＤ型フラッシュメモリ等の半導体メモリを含み、半導体チップ（コントローラチップ）２００は、メモリチップ１００を制御するコントローラを含む。これらの半導体チップ１００及び２００は、リードフレーム３００に実装され、更に樹脂３５０によって封止されてパッケージングされている。
【００１１】
より具体的には、図２に示すように、リードフレーム３００のダイパッド３１０上にメモリチップ１００が搭載され、メモリチップ１００上にコントローラチップ２００が重ねられている。
【００１２】
コントローラチップ２００は、例えばボンディングワイヤ３４０により、リードフレームのインナーリード３２０に接続され、更に図示せぬボンディングワイヤによりメモリチップ１００とも接続されている。そして、メモリチップ１００、コントローラチップ２００、ダイパッド３１０、インナーリード３２０、及びボンディングワイヤ３４０が、例えば樹脂３５０によって封止されている。
【００１３】
インナーリード３２０は、樹脂３５０外部に露出されたアウターリード３３０に接続されている。そしてアウターリード３３０は、メモリシステム１の外部接続端子（外部接続ピン）として機能する。図１の例であると、第１ピンから第１６ピンまでの１６個の外部接続端子が用意されている。そしてメモリシステム１は、これらのピンを介して、メモリシステム１を制御する（より具体的には、メモリチップ１００にアクセスする）ホスト機器と通信する。
【００１４】
図３は、各ピンの機能を示すダイアグラムである。図示するように、第１ピンは、制御信号／ＨＯＬＤの入力用、又はシリアルデータＳＯ３の出力用に用いられる。制御信号／ＨＯＬＤは、ホスト機器とメモリシステム１との間の通信を一時的に停止する際にアサート（“Ｌ”レベル）される。第２ピンは、電源電圧Ｖccを受信する。第３ピンから第６ピン、及び第１１ピンから第１４ピンは未使用ピンであり、例えば将来的に何らかの信号やデータの送受信が必要になった際に使用することが出来る。第７ピンは、チップセレクト信号／ＣＳを受信する。チップセレクト信号／ＣＳは、メモリチップ１００及びコントローラチップ２００を活性化させるための信号（言い換えれば、メモリシステム１にアクセスする際に活性化される信号）であり、例えばホスト機器がメモリシステム１にコマンドを入力するタイミングでアサート（“Ｌ”レベル）される。第８ピンは、シリアルデータ（ＳＯ又はＳＯ１）の出力用に用いられる。第９ピンは、制御信号／ＷＰの入力用、又はシリアルデータ（ＳＯ２）の出力用に用いられる。制御信号／ＷＰはライトプロテクト信号であり、メモリチップへの書込みを禁止する際にアサート（“Ｌ”レベル）される。第１０ピンは、基準電位Ｖssを受信する。第１５ピンは、シリアルデータ（Ｓ１）の入力用、又はシリアルデータ（Ｓ０）の出力用に用いられる。第１６ピンは、シリアルクロック信号ＳＣＫを受信する。
【００１５】
上記ピン構成は、ＳＰＩ（Serial Peripheral Interface）に準拠している。そして、第１ピン、第８ピン、第９ピン、及び第１５ピンをシリアルデータ出力用として任意に選択することで、１倍速、２倍速、又は４倍速でデータをホスト機器へ出力することが出来る。
【００１６】
図４は、図１とは別のパッケージ構成の例を示している。図４の例では、第１ピンから第８ピンまでの８個の外部接続端子が設けられている。図５は、図４の例における各ピンの機能を示すダイアグラムである。
【００１７】
図示するように、第１ピンは、チップセレクト信号／ＣＳを受信し、第２ピンはシリアルデータＳＯ、ＳＯ１を出力し、第３ピンはライトプロテクト信号／ＷＰを受信、又はシリアルデータＳＯ２を出力し、第４ピンは基準電位Ｖssを受信し、第５ピンはシリアルデータＳＩを受信、又はシリアルデータＳＯ０を出力し、第６ピンはシリアルクロック信号ＳＣＫを受信し、第７ピンは制御信号／ＨＯＬＤを受信、又はシリアルデータＳＯ３を出力し、第８ピンは電源電圧Ｖccを受信する。
【００１８】
この場合でも、ピン構成はＳＰＩに準拠している。
【００１９】
図６は、メモリシステム１の内部構成を示す機能ブロック図である。以下では、メモリチップ１００をＮＡＮＤ型フラッシュメモリ１００と呼び、コントローラチップ２００を単にコントローラ２００と呼ぶ。
【００２０】
図示するように、メモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。
【００２１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ＳＰＩバスによってホスト機器５００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００へのアクセスを制御する。
【００２２】
ＮＡＮＤバスは、ＮＡＮＤインタフェースに従った信号の送受信を行う。この信号の具体例は、チップイネーブル信号／ＣＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、レディ・ビジー信号／ＲＢ、入出力信号Ｉ／Ｏ、及びライトプロテクト信号／ＷＰである。
【００２３】
信号／ＣＥは、lowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００を活性化させるための信号であり、ＮＡＮＤ型フラッシュメモリ１００にアクセスする際にアサートされる。信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号／ＷＥは、lowレベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。信号／ＲＥもlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号／ＲＢは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（コントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（コントローラ２００からの命令を受信できない状態）であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビット（ｎ＝８）の信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書込みデータ、及び読出しデータ等である。信号／ＷＰは、ＮＡＮＤ型フラッシュメモリ１００への書込みを禁止するための信号である。
【００２４】
ＳＰＩバスは、図３及び図５で説明した通りである。
【００２５】
１．１．２  コントローラ２００の構成について
次に、コントローラ２００の構成の詳細につき、引き続き図６を用いて説明する。図示するようにコントローラ２００は、ホスト入出力回路２１０、ホストインタフェース回路２２０、ＮＡＮＤインタフェース回路２３０、ＮＡＮＤ入出力回路２４０、シーケンサ（ステートマシン）２５０、データバッファ２６０，２７０、ステータスレジスタ２８０、アドレスレジスタ２９０、ＥＣＣ回路２９５、及び周辺回路６００を備えている。
【００２６】
ホスト入出力回路２１０は、ホスト機器５００との間で送受信される信号のバッファとして機能する。信号ＳＣＫ、ＳＩ、／ＣＳ、／ＨＯＬＤ、及び／ＷＰは、まずホスト入出力回路２１０で受信され、その後、ホストインタフェース回路２２０に出力される。
【００２７】
ホストインタフェース回路２２０は、信号ＳＣＫに同期して信号ＳＩを内部に取り込む。また、ホストインタフェース回路２２０は、信号ＳＣＫに同期して出力される信号ＳＯを、ホスト入出力回路２１０を介してホスト機器５００へ送信する。
【００２８】
ホストインタフェース回路２２０は、ホスト入出力回路２１０を介したホスト機器５００との間の信号の送受信制御を司る。また、ホストインタフェース回路２２０は、シリアル／パラレル変換器及びパラレル／シリアル変換器として機能する。例えば、ホスト機器５００からの入力信号ＳＩをシリアル信号からパラレル信号に変換し、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータをパラレル信号からシリアル信号に変換する。更にホストインタフェース回路２２０は、入力信号ＳＩがコマンドであった場合にコマンドデコーダとして機能し、受信したコマンドをデコードする。そしてデコード結果を例えばシーケンサ２５０に出力する。
【００２９】
データバッファ２６０，２７０は、ホスト機器５００から受信した書込みデータを、ホストインタフェース回路２２０を介して一時的に保持する。更に、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを、ＮＡＮＤインタフェース回路２３０を介して一時的に保持する。
【００３０】
ステータスレジスタ２８０は、メモリシステム１の種々のステータス情報を保持する。例えば、後述する特徴テーブルを保持する。
【００３１】
アドレスレジスタ２９０は、ホスト機器５００から受信したアドレスを、ホストインタフェース回路２２０を介して保持する。
【００３２】
ＮＡＮＤインタフェース回路２３０は、ＮＡＮＤ入出力回路２４０を介したＮＡＮＤ型フラッシュメモリ１００との間の信号の送受信制御を司る。そしてＮＡＮＤインタフェース回路２３０は、シーケンサ２５０の命令に従って、ＮＡＮＤインタフェースに準拠した各種コマンドを発行し、アドレスレジスタ２９０内のアドレスと共にＮＡＮＤ入出力回路２４０を介してＮＡＮＤ型フラッシュメモリ１００へ出力する。データの書込み時には、データバッファ２６０及び／又は２７０内のデータを、ＮＡＮＤ入出力回路２４０を介してＮＡＮＤ型フラッシュメモリ１００へ出力する。更にデータの読出し時には、ＮＡＮＤ型フラッシュメモリ１００から読出されたデータを、データバッファ２６０及び／又は２７０に転送する。
【００３３】
ＮＡＮＤ入出力回路２４０は、ＮＡＮＤ型フラッシュメモリ１００との間で送受信される信号のバッファとして機能する。また、ＮＡＮＤインタフェース回路２３０の命令に従って、信号／ＣＥ、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、／ＷＰをアサート又はデアサートする。更に、データの読出し時には、信号ＩＯ（読出しデータ）を一時的に保持し、ＮＡＮＤインタフェース回路２３０へ転送し、書込み時には信号ＩＯ（書込みデータ）を一時的に保持し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。また、ＮＡＮＤ型フラッシュメモリ１００からレディ・ビジー信号／ＲＢを受信し、これをＮＡＮＤインタフェース回路２３０へ転送する。
【００３４】
シーケンサ２５０は、コントローラ２００全体の動作を制御する。例えば、ホスト機器５００からデータの読出し要求があった際には、ＮＡＮＤインタフェース回路２３０に対して読出し動作を実行するためのシーケンスを実行するよう命令する。またホスト機器５００からデータの書込み要求があった際には、ＮＡＮＤインタフェース回路２３０に対して書込み動作を実行するためのシーケンスを実行するよう命令する。更に、ＮＡＮＤ型フラッシュメモリ１００から受信したステータス情報又はホスト機器５００から受信した特徴テーブルの設定を更新する設定情報に従って、ステータスレジスタ２８０内の特徴テーブルを更新する。
【００３５】
ＥＣＣ回路２９５は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書込み時には、ホスト機器５００から受信したデータに基づいて、セクタ及び当該セクタに用意されたスペア領域の組（以下、「データペア」という。）毎にＥＣＣ符号を生成する。また、ＥＣＣ回路２９５は、このＥＣＣ符号と、データペアとをＮＡＮＤ型フラッシュメモリ１００のデータレジスタ１４０に転送する。データの読出し時には、データレジスタ１４０からコントローラ２００に転送されたデータに含まれるＥＣＣ符号に基づき、データペア毎にＥＣＣ復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。１データペアにつき訂正可能なエラービット数は、本例では例えば１データペアあたり８ビットである。また、ＥＣＣ回路２９５は、各データペアにおいて検出されたエラービット数を、ステータス情報としてステータスレジスタ２８０に出力可能である。セクタ及びスペア領域の詳細については、後述する。
【００３６】
周辺回路６００は、外部から電源電圧Ｖccを受信し、各回路ブロックへ転送すると共に、コントローラ２００の動作に必要なその他の制御を行う。
【００３７】
１．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について、図７を用いて説明する。図７は、ＮＡＮＤ型フラッシュメモリ１００のブロック図である。
【００３８】
図示するようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、センスアンプ１３０、データレジスタ１４０、カラムデコーダ１５０、ステータスレジスタ４１０、アドレスレジスタ４２０、コマンドレジスタ４３０、制御回路４４０、電圧発生回路４５０、入出力制御回路４６０、ロジック回路４７０、及びデータレジスタ４８０を備えている。
【００３９】
メモリセルアレイ１１０は、行（ロウ）及び列（カラム）に対応付けられた複数の不揮発性のメモリセルを備えている。そして、同一行にあるメモリセルは同一のワード線に接続され、同一列にあるメモリセルは同一のビット線に接続される。データの読出し及び書込みは、同一のワード線に接続された複数のメモリセルに対して一括して行われる。この単位をページと呼ぶ。また、データの消去は、複数のページ単位で一括して行われる。この単位をブロックと呼ぶ。なお、１ページ分のデータ領域は、正味のデータが格納される主記憶領域と、ＥＣＣ符号等の管理データが格納される管理領域とを含む。正味のデータは、セクタと呼ばれる単位で管理される。例えば本例では、１ページにおける主記憶領域は４つのセクタを含み、各セクタは５１２バイトのデータサイズを有する。管理データは、例えばエラー訂正のためのＥＣＣ符号データと、例えばデータの書換え回数等の信頼性管理に必要な書換え回数情報とを含む。エラー訂正及び信頼性管理はセクタ毎に行われる。従って管理領域は、セクタ毎に用意されたＥＣＣ符号領域及びスペア領域を含む。例えば本例では、セクタ毎に用意されたＥＣＣ符号領域及びスペア領域は、合計で３２バイトのデータサイズを有する。なお、主記憶領域及びスペア領域は、ホスト機器５００から書込み及び読出し可能な領域である。ＥＣＣ符号領域は、ＥＣＣ回路２９５の設定が有効だった場合、コントローラ２００が生成したＥＣＣ符号が書込まれる。ＥＣＣ回路２９５が無効だった場合、ＥＣＣ符号領域にはホスト機器５００が生成したＥＣＣデータが書込まれる場合があるし、他のデータが書込まれる場合もある。
【００４０】
ロウデコーダ１２０は、メモリセルアレイ１１０のロウ方向を指定するロウアドレスをデコードする。そして、デコード結果に応じてワード線を選択し、データの書込み、読出し及び消去に必要な電圧を印加する。
【００４１】
センスアンプ１３０は、データの読出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、データレジスタ１４０に転送する。データの書込み時には、データレジスタ１４０内のデータをメモリセルアレイ１１０に転送する。
【００４２】
データレジスタ１４０は、１ページ分の書込みデータ又は読出しデータを一時的に保持する。
【００４３】
カラムデコーダ１５０は、メモリセルアレイ１１０のカラム方向を指定するカラムアドレスをデコードする。そして、デコード結果に応じて書込み時にはデータをデータレジスタ１４０に転送し、読出し時にはデータレジスタ１４０からデータを読出す。
【００４４】
ロジック回路４７０は、コントローラ２００から信号／ＣＥ、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、及び／ＷＰを受信する。
【００４５】
入出力制御回路４６０は、信号ＩＯ［ｎ：０］を受信する。そして入出力制御回路４６０は、信号ＩＯがアドレスであった場合（ＡＬＥ＝“Ｈ”の場合）には、これをアドレスレジスタ４２０に保持させる。また信号ＩＯがコマンドであった場合、（ＣＬＥ＝“Ｈ”の場合）には、これをコマンドレジスタ４３０に保持させる。更に信号ＩＯがデータであった場合（ＡＬＥ＝ＣＬＥ＝“Ｌ”の場合）には、これをデータレジスタ４８０に保持させる。
【００４６】
ステータスレジスタ４１０は、ＮＡＮＤ型フラッシュメモリ１００の各種ステータス情報を保持する。ステータス情報には、制御回路４４０から与えられる書込み動作及び消去動作が成功（パス）したか失敗（フェイル）したかを示す情報等が含まれる。
【００４７】
制御回路４４０は、コマンドレジスタ４３０に保持されたコマンドと、ロジック回路４７０に入力された各種信号に基づいて、ＮＡＮＤ型フラッシュメモリ１００全体を制御する。また、制御回路４４０は、レディ・ビジー信号／ＲＢを発生して、コントローラ２００へ出力する。
【００４８】
電圧発生回路４５０は、制御回路４４０の命令に基づいて、データの書込み、読出し、及び消去動作に必要な電圧を生成し、これをメモリセルアレイ１１０、ロウデコーダ１２０及びセンスアンプ１３０に供給する。
【００４９】
１．１．４  ＥＣＣ回路２９５の設定に伴うデータバッファ２６０，２７０の構成について
次に、ＥＣＣ回路２９５の設定に伴うデータバッファ２６０，２７０の構成について説明する。
【００５０】
まず、データバッファ２６０，２７０におけるホスト機器５００から書込み可能な領域について、図８を用いて説明する。図８は、ＥＣＣ回路２９５の設定に伴うメモリシステム１のセルレイアウトを示す模式図である。図示するように、データバッファ２６０，２７０は、ＥＣＣ回路２９５の設定が有効か無効かに応じて、ホスト機器５００から受信したデータを書込み可能な領域に対応するカラムアドレスの最大値が変更される。より具体的には、ＥＣＣ回路２９５の設定が有効の場合、ホスト機器５００から書込み可能なカラムアドレスｘの範囲は、主記憶領域（Ａ０≦ｘ＜Ａ４）及びスペア領域（Ａ４≦ｘ＜Ａ８）を含む範囲（Ａ０≦ｘ＜Ａ８）である。また、ＥＣＣ回路２９５の設定が無効の場合、ホスト機器５００から書込み可能なカラムアドレスｘの範囲は、ＥＣＣ符号領域（Ａ８≦ｘ＜Ａ１２）を更に含む範囲（Ａ０≦ｘ＜Ａ１２）となる。例えば本例では、Ａ０＝０としたとき、Ａ４＝２０４８、Ａ８＝２１１２、Ａ１２＝２１７６である。
【００５１】
次に、ＥＣＣ回路２９５の設定に応じたデータバッファ２６０，２７０及び任意のページ１１０ａ内の各記憶領域に割当てられるカラムアドレスの一例について、図９及び図１０を用いて説明する。図９は、ＥＣＣ回路２９５の設定が有効を示す場合のデータバッファ２６０，２７０及びページ１１０ａ内の構成を示す模式図であり、図１０は、ＥＣＣ回路２９５の設定が無効を示す場合のデータバッファ２６０，２７０及びページ１１０ａ内の構成を示す模式図である。
【００５２】
図９に示すように、ＥＣＣ回路２９５の設定が有効を示す場合、ＥＣＣ符号領域は、ホスト機器５００からアクセスできない領域となる。すなわち、ホスト機器５００から書込み可能な領域に割当てられるカラムアドレスの最大値が縮小されることにより、カラムアドレスＡ８≦ｘ＜Ａ１２に対応する領域は、ホスト機器５００から書込み及び読出し不可となる。なお、ホスト機器５００から書込み不可となったカラムアドレスＡ８≦ｘ＜Ａ１２に対応する領域には、ＥＣＣ回路２９５によって生成されたＥＣＣ符号がメモリシステム１によって書込まれる。
【００５３】
一方、図１０に示すように、ＥＣＣ回路２９５の設定が無効を示す場合、ホスト機器５００から書込み可能な領域に割当てられるカラムアドレスの最大値が拡張されることにより、ＥＣＣ符号領域は、ホスト機器５００から書込み可能になる。従って、例えばメモリシステム１は、ホスト機器５００がＥＣＣ回路２９５に代わって生成したＥＣＣ符号をデータと共に受信し、カラムアドレスＡ８≦ｘ＜Ａ１２に対応する領域へ書込むことが可能となるし、Ａ８≦ｘ＜Ａ１２以外の領域へ書込んでもよい。このように、メモリセルアレイ１１０は、ＥＣＣ回路２９５の設定が有効か無効かに応じて、ホスト機器５００からデータを書込み可能な領域に対応するカラムアドレスの最大値が変更される。
【００５４】
また、図９及び図１０に図示するように、主記憶領域の各セクタに割当てられるカラムアドレスｘの範囲は、ｎ番目のセクタに対して、Ａ（ｎ−１）≦ｘ＜Ａ（ｎ）である。これに伴い、各セクタに対応するスペア領域に割当てられるカラムアドレスｘの範囲は、ｎ番目のスペア領域に対して、Ａ（ｎ＋３）≦ｘ＜Ａ（ｎ＋４）である。また、各データペアに対応するＥＣＣ符号領域に割当てられるカラムアドレスｘの範囲は、ｎ番目のＥＣＣ符号領域に対して、Ａ（ｎ＋７）≦ｘ＜Ａ（ｎ＋８）である。このように、ＥＣＣ回路２９５の設定に関わらず、主記憶領域、スペア領域、及びＥＣＣ符号領域は、連続したカラムアドレスが設定される。すなわち、ホスト機器５００から受信したデータを書込み可能な領域に対応するカラムアドレスは、ＥＣＣ回路２９５の設定が有効を示すか否かに関わらず、連続した値が設定される。なお、カラムアドレスは、ホスト機器５００から指示される情報であり、カラムアドレスが連続している領域は、物理的に連続していることを要しない。
【００５５】
１．２  動作について
次に、本実施形態に係るメモリシステムにおけるデータの読出し動作、書込み動作、及び消去動作につき、ＳＰＩバス及びＮＡＮＤバスで送受信される信号に着目して、以下簡単に説明する。
【００５６】
１．２．１  読出し動作
まず、読出し動作について説明する。読出し動作は、大まかには以下の３ステップを含む。すなわち、
（１）ＮＡＮＤ型フラッシュメモリからのデータ読出し：本動作により、ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００にデータが読出される。
【００５７】
（２）特徴テーブル読出し（Get featureと呼ぶことがある）：本動作により、メモリシステム１がビジー状態であるかレディ状態であるか、すなわち上記（１）の動作が完了したか否かが判定される。
【００５８】
（３）コントローラ２００からのデータ読出し：本動作により、（１）でコントローラ２００に読出されたデータがホスト機器５００に読出される。
【００５９】
図１１は、上記（１）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するように、ホスト機器５００は、信号／ＣＳをアサートすると共に、第１読出しコマンドＣＭＤ＿ＲＤ１を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００６０】
コントローラ２００のホストインタフェース回路２２０は、信号／ＣＳがアサートされて最初のクロックＳＣＫを受信した際の信号ＳＩをコマンドとして認識する。このコマンドは、例えば８クロックサイクルにわたって入力される８ビット信号である。第１読出しコマンドＣＭＤ＿ＲＤ１を受信したことで、シーケンサ２５０はデータ読出しシーケンスを開始する。
【００６１】
引き続きホスト機器５００は、例えば８クロックサイクルにわたってダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１６クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。そしてアドレスＡＤＤの送信後、ホスト機器５００は信号／ＣＳをデアサートする。アドレスＡＤＤは、ＮＡＮＤ型フラッシュメモリ１００におけるブロック及びページを指定するアドレスであり、アドレスレジスタ２９０に保持される。
【００６２】
このように、特定のコマンドを受信した際に、その後にどのような信号が入力されるか（コマンドシーケンス）は予め定められている。つまりコントローラ２００は、例えば第１読出しコマンドＣＭＤ＿ＲＤ１を受信した際には、その後の８クロックサイクルで入力される信号ＳＩが意味のないダミーデータであることと、その後の１６クロックサイクルで入力される信号ＳＩが実体的なアドレス信号であることとを把握している。
【００６３】
上記（１）の動作に引き続いて上記（２）の動作が実行される。図１２は、上記（２）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳを再度アサートすると共に、Get featureコマンドＣＭＤ＿ＧＦを信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００６４】
引き続きホスト機器５００は、例えば８クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、特徴テーブル内のアドレスであり、当然ながらレディ・ビジー情報が格納された領域を指定するアドレスである。コントローラ２００では、アドレスＡＤＤの受信後、例えばシーケンサ２５０の命令に従ってホストインタフェース回路２２０がステータスレジスタ２８０から特徴テーブルの指定のエントリを読出し、これを８クロックサイクルにわたって８ビットのステータスデータＳＴ＿ＤＡＴとしてホスト機器５００に送信する。このステータスデータＳＴ＿ＤＡＴには、レディ・ビジー情報が含まれている。そして、ステータスデータＳＴ＿ＤＡＴの受信後、ホスト機器５００は、信号／ＣＳをデアサートする。
【００６５】
受信したステータスデータＳＴ＿ＤＡＴにおいて、メモリシステム１がレディ状態であることが示されていれば、上記（３）の動作が実行される。図１３は、上記（３）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、第２読出しコマンドＣＭＤ＿ＲＤ２を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００６６】
引き続きホスト機器５００は、例えば４クロックサイクルにわたってダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１２クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、コントローラ２００において、データバッファ２６０又は２７０における領域を指定するためのアドレスであり、ＮＡＮＤ型フラッシュメモリ１００におけるページ内のカラムを指定するアドレスである。アドレスＡＤＤは、アドレスレジスタ２９０に保持される。すると、例えばシーケンサ２５０の制御に従い、ホストインタフェース回路２２０は、データバッファ２６０又は２７０からデータを読出す。そして８クロックサイクル経過の後、ホストインタフェース回路２２０は、データバッファ２６０又は２７０から読出したデータＲＤ＿ＤＡＴをホスト機器５００へ送信する。
【００６７】
図１４は、上記（１）の動作時におけるＮＡＮＤバス上の各種信号のタイムチャートである。第１読出しコマンドＣＭＤ＿ＲＤ１を受信したコントローラ２００では、例えばシーケンサ２５０の制御に従って、ＮＡＮＤインタフェース回路２３０がアドレス入力コマンド“００ｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。引き続き、例えば５サイクルにわたってアドレスＡＤＤをＮＡＮＤ型フラッシュメモリ１００へ送信し、その後読出しコマンド“３０ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。なお、このアドレスＡＤＤは、図１１及び図１３で示された動作においてアドレスレジスタ２９０に保持されたブロック、ページ、及びカラムを示すアドレスを含む。
【００６８】
コマンド“３０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００内では、メモリセルアレイ１１０からのデータの読出し動作が開始され、ＮＡＮＤ型フラッシュメモリ１００はビジー状態（／ＲＢ＝“Ｌ”）となる。
【００６９】
データのメモリセルアレイ１１０からの読出しが完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。これに応答してコントローラ２００は、信号／ＲＥをトグルさせる。すると、信号／ＲＥに同期して、データがＮＡＮＤ型フラッシュメモリ１００からコントローラ２００へ転送される。
【００７０】
１．２．２  書込み動作
次に、書込み動作について説明する。書込み動作は、大まかには以下の３ステップを含む。すなわち、
（１）ホスト機器５００からコントローラ２００へのデータ転送。
【００７１】
（２）転送したデータのＮＡＮＤ型フラッシュメモリ１００への書込み。
【００７２】
（３）特徴テーブル読出し（Get feature）：本動作により、ＮＡＮＤ型フラッシュメモリ１００への書込みがパスしたかフェイルしたかが判定される。
【００７３】
図１５は、上記（１）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、第１書込みコマンドＣＭＤ＿ＷＲ１を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。第１書込みコマンドＣＭＤ＿ＷＲ１を受信したことで、シーケンサ２５０は、データ書込みシーケンスを開始する。
【００７４】
引き続きホスト機器５００は、例えば４クロックサイクルにわたってダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１２クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、データバッファ２６０又は２７０における領域を指定するためのアドレスであり、ＮＡＮＤ型フラッシュメモリ１００におけるページ内のカラムを指定するアドレスである。アドレスＡＤＤは、アドレスレジスタ２９０に保持される。更にホスト機器５００は、書込みデータＷＲ＿ＤＡＴをコントローラ２００へ送信する。この書込みデータＷＲ＿ＤＡＴは、データバッファ２６０又は２７０において、直前に受信したアドレスＡＤＤに対応する領域に保持される。そしてデータＷＲ＿ＤＡＴの送信後、ホスト機器５００は、信号／ＣＳをデアサートする。
【００７５】
上記（１）の動作に引き続いて上記（２）の動作が実行される。図１６は、上記（２）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳを再度アサートすると共に、第２書込みコマンドＣＭＤ＿ＷＲ２を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。第２書込みコマンドＣＭＤ＿ＷＲ２を受信したことで、シーケンサ２５０は、上記（２）の動作命令を受信したことを認識する。
【００７６】
引き続きホスト機器５００は、例えば８クロックサイクルにわたって８ビットのダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１６クロックサイクルにわたって１６ビットのアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、ＮＡＮＤ型フラッシュメモリ１００におけるブロック及びページを指定するアドレスであり、アドレスレジスタ２９０に保持される。そしてアドレスＡＤＤの送信後、ホスト機器５００は、信号／ＣＳをデアサートする。
【００７７】
上記（２）の動作に引き続いて、上記（３）の動作が行われる。本動作におけるコマンドシーケンスは、読出し動作時に説明した図１２と同様である。またホスト機器５００は、受信したステータスデータＳＴ＿ＤＡＴにおいて、メモリシステム１がレディ状態であることが示されていれば、続いてデータの書込みがフェイルしたか否かに関する情報を要求する。
【００７８】
図１７は、上記（２）の動作時におけるＮＡＮＤバス上の各種信号のタイムチャートである。第２書込みコマンドＣＭＤ＿ＷＲ２を受信したコントローラ２００では、例えばシーケンサ２５０の制御に従って、ＮＡＮＤインタフェース回路２３０が書込みコマンド“８０ｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。引き続き、例えば５サイクルにわたってアドレスＡＤＤをＮＡＮＤ型フラッシュメモリ１００へ送信し、更に書込みデータＤＡＴが複数サイクルにわたってＮＡＮＤ型フラッシュメモリ１００へ送信し、その後書込みコマンド“１０ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。なお、このアドレスＡＤＤは、図１５及び図１６で示された動作においてアドレスレジスタ２９０に保持されたブロック、ページ、及びカラムを示すアドレスを含む。
【００７９】
コマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００内では、メモリセルアレイ１１０へのデータの書込み動作が開始され、ＮＡＮＤ型フラッシュメモリ１００はビジー状態（／ＲＢ＝“Ｌ”）となる。
【００８０】
データのメモリセルアレイ１１０への書込みが完了すると、ＮＡＮＤ型フラッシュメモリ１００は、レディ状態となる。これに応答してコントローラ２００は、ステータス読出しコマンド“７０ｈ”を発行し、信号／ＲＥをトグルさせる。すると、信号／ＲＥに同期して、書込み動作がパスしたかフェイルしたかを示すステータスデータＳＴ＿ＤＡＴがコントローラ２００に転送される。このステータスデータＳＴ＿ＤＡＴは、特徴テーブルに保持され、上記（３）のGet featureコマンドによってホスト機器５００に読出される。
【００８１】
１．２．３  消去動作
次に消去動作について説明する。消去動作は、大まかには以下の２ステップを含む。すなわち、
（１）ホスト機器５００からコントローラ２００への消去命令。
【００８２】
（２）特徴テーブル読出し（Get feature）：本動作により、ＮＡＮＤ型フラッシュメモリ１００への消去動作がパスしたかフェイルしたかが判定される。
【００８３】
図１８は、上記（１）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するように、ホスト機器５００は、信号／ＣＳをアサートすると共に、消去コマンドＣＭＤ＿ＥＲを信号ＳＩとして発行し、更にクロックＳＣＫを発行する。消去コマンドＣＭＤ＿ＥＲを受信したことで、シーケンサ２５０は、データ消去シーケンスを開始する。
【００８４】
引き続きホスト機器５００は、例えば８クロックサイクルにわたって８ビットのダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１６クロックサイクルにわたって１６ビットのアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、メモリセルアレイ１１０において消去対象となるブロックを指定するためのアドレスであり、アドレスレジスタ２９０に保持される。その後、ホスト機器５００は、信号／ＣＳをデアサートする。
【００８５】
上記（１）の動作に引き続いて上記（２）の動作が実行される。本動作におけるコマンドシーケンスは、読出し動作時に説明した図１２と同様である。またホスト機器５００は、受信したステータスデータＳＴ＿ＤＡＴにおいて、メモリシステム１がレディ状態であることが示されていれば、続いてデータの消去がパスしたかフェイルしたかに関する情報を要求する。
【００８６】
図１９は、上記（１）の動作時におけるＮＡＮＤバス上の各種信号のタイムチャートである。消去コマンドＣＭＤ＿ＥＲを受信したコントローラ２００では、例えばシーケンサ２５０の制御に従って、ＮＡＮＤインタフェース回路２３０が消去コマンド“６０ｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。引き続き、例えば３サイクルにわたってアドレスＡＤＤをＮＡＮＤ型フラッシュメモリ１００へ送信し、更に消去コマンド“Ｄ０ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。
【００８７】
コマンド“Ｄ０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００内では、メモリセルアレイ１１０のデータの消去動作が開始され、ＮＡＮＤ型フラッシュメモリ１００は、ビジー状態（／ＲＢ＝“Ｌ”）となる。
【００８８】
データの消去が完了すると、ＮＡＮＤ型フラッシュメモリ１００は、レディ状態となる。これに応答してコントローラ２００は、ステータス読出しコマンド“７０ｈ”を発行し、信号／ＲＥをトグルさせる。すると、信号／ＲＥに同期して、消去動作がパスしたかフェイルしたかを示すステータスデータＳＴ＿ＤＡＴがコントローラ２００に転送される。このステータスデータＳＴ＿ＤＡＴは、特徴テーブルに保持され、上記（２）のGet featureコマンドによってホスト機器５００に読出される。
【００８９】
１．３  ＥＣＣ回路２９５の設定による書込み及び読出し動作の詳細について
次に、ＥＣＣ回路２９５の設定を有効にした場合と無効にした場合における、上記説明した書込み動作及び読出し動作の詳細について説明する。
【００９０】
１．３．１  特徴テーブルについて
図２０は、本実施形態に係る特徴テーブルを示す概念図である。図示するように、特徴テーブルは２つのエントリを含み、各エントリは８ビット長である。そして、各エントリにはアドレス“Ｂ０ｈ”及び“Ｃ０ｈ”が割当てられている。
【００９１】
アドレス“Ｂ０ｈ”のエントリは、最下位ビットから順に以下の情報が割当てられている。すなわち、
・ビット０＝未使用。
【００９２】
・ビット１＝ＨＳＥ（High Speed Mode Enable）：データを高速に読出すモードがenableであるかdisableであるかを示すフラグであり、“０”でdisable、“１”でenableを示す。
【００９３】
・ビット２＝ＢＢＩ（Bad Block Inhibit）：使用不能なブロックへのデータの書込み及び消去を禁止する機能がenableであるかdisableであるかを示すフラグであり、“０”でdisable、“１”でenableを示す。
【００９４】
・ビット３＝未使用。
【００９５】
・ビット４＝ＥＣＣ＿Ｅ（ECC Enable）：ＥＣＣ回路が有効であるか無効であるかを示すフラグであり、“０”で無効、“１”で有効であることを示す。なお、電源投入時は、自動的に“１”が設定される。
【００９６】
・ビット５＝未使用。
【００９７】
・ビット６＝ＩＤＲ＿Ｅ（ID Read Enable）：メモリシステム１の設定値又はＩＤの情報を読出す機能がenableであるかdisableであるかを示すフラグであり、“０”でdisable、“１”でenableを示す。
【００９８】
・ビット７＝ＰＲＴ＿Ｅ（Block Protect Enable）：特定のブロックへのデータの書込み及び消去を禁止する機能がenableであるかdisableであるかを示すフラグであり、“０”でdisable、“１”でenableを示す。
【００９９】
アドレス“Ｃ０ｈ”のエントリは、以下のとおりである。すなわち、
・ビット０＝ＯＩＰ（Operation in Progress）：メモリシステム１がレディ状態であるかビジー状態であるかを示すフラグであり、“０”でレディ状態、“１”でビジー状態を示す。
【０１００】
・ビット１＝ＷＥＬ（Write Enable Latch）：データの書込みがenableであるかdisableであるかを示すフラグであり、“０”でdisable、“１”でenableを示す。
【０１０１】
・ビット２＝ＥＲＳ＿Ｆ（Erase Fail）：データの消去動作がフェイルしたか否かを示すフラグであり、“０”でパス、“１”でフェイルを示す。
【０１０２】
・ビット３＝ＰＲＧ＿Ｆ（Program Fail）：データの書込み動作がフェイルしたか否かを示すフラグであり、“０”でパス、“１”でフェイルを示す。
【０１０３】
・ビット４，５＝ＥＣＣＳ（ECC Status）：ＥＣＣＳ０及びＥＣＣＳ１の値の組み合わせによって、例えば図２１に示すようにＥＣＣ回路２９５におけるエラー訂正結果を示す。すなわち、（ＥＣＣＳ１、ＥＣＣＳ０）＝“００”の場合は、エラーが検出されなかったことを示す。“０１”及び“１１”の場合は、エラーが訂正されたことを示す。“１０”の場合は、エラーを訂正できなかったことを示す。
【０１０４】
・ビット６，７＝未使用。
【０１０５】
特徴テーブルは、ＮＡＮＤインタフェース回路２３０やホストインタフェース回路２２０から与えられる情報によって例えばシーケンサ２５０によって生成され、例えばステータスレジスタ２８０に保持される。
【０１０６】
１．３．２  Set Featureコマンドについて
上記ＥＣＣ＿Ｅの値は、特徴テーブルセットコマンド（Set featureコマンドと呼ぶ）によってホスト機器５００が任意に設定出来る。
【０１０７】
図２２は、特徴テーブルにＥＣＣ＿Ｅの値をセットする際のＳＰＩバス上の各種信号のタイムチャートであり、図２３は、ホスト機器５００、コントローラ２００、及びＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートである。
【０１０８】
図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、Set feature コマンドＣＭＤ＿ＳＦを信号ＳＩとして発行し、更にクロックＳＣＫを発行する。引き続きホスト機器５００は、例えば８クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、特徴テーブル内のアドレスであり、図２０の例であると“Ｂ０ｈ”である。引き続きホスト機器５００は、特徴テーブルのアドレス“Ｂ０ｈ”に対応するエントリに保持させる８ビットデータＳＴ＿ＤＡＴを送信する。この８ビットデータＳＴ＿ＤＡＴのうちのビット４がＥＣＣ＿Ｅである。すると、ステップＳ１０において、シーケンサ２５０は、このデータＳＴ＿ＤＡＴを、特徴テーブルの指定されたエントリに書込む。
【０１０９】
引き続きステップＳ１１において、シーケンサ２５０は、データバッファ２６０，２７０のバッファサイズを変更する。より具体的には、シーケンサ２５０は、ＥＣＣ回路２９５が有効から無効に設定される場合、データバッファ２６０，２７０においてホスト機器５００から書込み可能な領域を指定するカラムアドレスの最大値を拡大させる。また、シーケンサ２５０は、ＥＣＣ回路２９５が無効から有効に設定される場合、当該最大値を縮小させる。
【０１１０】
引き続き、ステップＳ１２において、シーケンサ２５０は、ＥＣＣ回路２９５の設定を有効から無効に、又は無効から有効に変更する。
【０１１１】
これによって、ホスト機器５００は、ＥＣＣ＿Ｅを任意に設定すると共に、ＥＣＣ＿Ｅの設定に応じて、メモリシステム１においてホスト機器５００から書込み可能な領域を変更出来る。
【０１１２】
１．３．３  書込み動作の流れについて
次に、書込み動作の流れの詳細について、図２４及び図２５を用いて説明する。図２４は、ＥＣＣ回路２９５が有効な場合の書込み動作時におけるホスト機器５００、コントローラ２００、及びＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートであり、図２５はコマンドシーケンスである。
【０１１３】
図示するように、まずホスト機器５００が第１書込みコマンドＣＭＤ＿ＷＲ１を発行し、引き続きアドレスＡＤＤを発行し、更に引き続き書込むデータを送信する。ステップＳ２０において、シーケンサ２５０は、ホスト機器５００から指定されたアドレスＡＤＤが、データバッファ２６０，２７０に書込み可能なカラムアドレスと対応しているか否かを判定する。ステップＳ２１において、引き続きシーケンサ２５０は、判定結果に応じて受信したデータをデータバッファ２６０，２７０に格納する。より具体的には、シーケンサ２５０は、対応していると判定した場合、受信したデータをそのままデータバッファ２６０，２７０に格納するが、対応していないと判定した場合、受信したデータのうち書込みが禁止されているカラムアドレスに対応するデータを無視し、データバッファ２６０，２７０の書込み可能な領域にのみデータを格納する。
【０１１４】
次に、ホスト機器５００が第２書込みコマンドＣＭＤ＿ＷＲ２を発行し、引き続きアドレスＡＤＤを発行する。このアドレスに応答して、メモリシステム１はビジー状態となり、特徴テーブルにおけるＯＩＰは“１”となる。またホスト機器５００は、Get featureコマンドＣＭＤ＿ＧＦ及びアドレスＡＤＤ（＝“Ｃ０ｈ”）を発行し、特徴テーブルからＯＩＰを含むエントリの情報（１バイトデータ）を読み出す。このエントリ情報は、クロックＳＣＫが入力されている期間、ＯＩＰが“０”になるまで繰り返しホスト機器５００へ送信される（Get featureコマンドを繰り返し発行しても良い）。
【０１１５】
ステップＳ２２において、メモリシステム１がビジー状態となると共に、コントローラ２００はＥＣＣ符号を生成し、ＮＡＮＤ型フラッシュメモリ１００に書込むデータを生成する。それに続き、ＮＡＮＤ型フラッシュメモリ１００に対してコマンド“８０ｈ”、アドレスＡＤＤ、書込みデータ、及びコマンド“１０ｈ”を発行する。これによりＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。そして、ステップＳ２３において、メモリセルアレイ１１０にデータ及びＥＣＣ符号が書込まれる。なお、ＥＣＣ回路２９５の設定が無効を示す場合、ＥＣＣ符号の計算は実行されない。
【０１１６】
その後、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。引き続きコントローラ２００は、コマンド“７０ｈ”を発行する。すると、このコマンドに応答してＮＡＮＤ型フラッシュメモリ１００は、書込み動作がパスしたかフェイルしたかを示す書込みステータスをコントローラ２００に出力する。
【０１１７】
ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００に書込みステータスが転送されると、メモリシステム１はレディ状態となり、例えばシーケンサ２５０は、特徴テーブル内のＯＩＰを“１”から“０”にセットする。またシーケンサ２５０は、書込みステータスを特徴テーブルに保持し、ホスト機器５００が読出し可能な状態にする。
【０１１８】
１．３．４  読出し動作の流れについて
次に、ＥＣＣ回路２９５の設定が有効の場合及び無効の場合における読出し動作の流れの詳細について説明する。
【０１１９】
まず、ＥＣＣ回路２９５の設定が無効を示す場合の読出し動作について説明する。図２６は、ＥＣＣが無効の場合の読出し動作時におけるホスト機器５００、コントローラ２００、及びＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートであり、図２７はコマンドシーケンスである。
【０１２０】
図示するように、まずホスト機器５００が第１読出しコマンドＣＭＤ＿ＲＤ１を発行し、引き続きアドレスＡＤＤを発行する。このアドレスに応答して、メモリシステム１はビジー状態となり、特徴テーブルにおけるＯＩＰは“１”となる。またホスト機器５００は、Get featureコマンドＣＭＤ＿ＧＦ及びアドレスＡＤＤ（＝“Ｃ０ｈ”）を発行し、特徴テーブルからＯＩＰを含むエントリの情報（１バイトデータ）を読出す。このエントリ情報は、ＯＩＰが“０”になるまで繰り返しホスト機器５００へ送信される（Get featureコマンドを繰り返し発行しても良い）。
【０１２１】
メモリシステム１がビジー状態となると共に、コントローラ２００はＮＡＮＤ型フラッシュメモリ１００に対してコマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”を発行する。これによりＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。そして、ステップＳ３０において、メモリセルアレイ１１０からデータが読出される。その後、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となり、読出されたデータがコントローラ２００へ送信される。
【０１２２】
ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００に読出されたデータが転送されると、メモリシステム１はレディ状態となり、シーケンサ２５０は、特徴テーブル内のＯＩＰを“１”から“０”にセットする。
【０１２３】
ホスト機器５００は、第２読出しコマンドＣＭＤ＿ＲＤ２を発行して、ＮＡＮＤ型フラッシュメモリ１００から読出されたデータを、コントローラ２００から読出す。
【０１２４】
次に、ＥＣＣが有効の場合の読出し動作について説明する。図２８は、ＥＣＣが有効の場合の読出し動作時におけるホスト機器５００、コントローラ２００、及びＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートであり、図２９はコマンドシーケンスである。
【０１２５】
図示するように、まずホスト機器５００が第１読出しコマンドＣＭＤ＿ＲＤ１を発行し、ステップＳ３０において、メモリセルアレイ１１０からデータが読出される。このステップＳ３０までの動作については、ＥＣＣが無効の場合と同様の動作であるため、説明を省略する。
【０１２６】
引き続き、ステップＳ３１において、ＥＣＣ回路２９５は、読出されたデータについてエラー検出を行い、エラーが検出された際にはこれを訂正する。なお、ＥＣＣ回路２９５は、ＥＣＣ符号が格納されるべき領域に正味のデータが書き込まれていた場合、エラー検出を行うが、偶然正味のデータとＥＣＣ符号とが一致した場合を除き、訂正は行わない。上記のような状況として、例えば、ＥＣＣ回路２９５の設定が無効な状態でデータ書込みが行われた後に、ＥＣＣ回路２９５の設定が有効な状態に設定変更され、データ読出しが行われた場合が想定される。
【０１２７】
その後、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となり、読出されたデータがコントローラ２００へ送信される。引き続きコントローラ２００は、ステップＳ３１におけるＥＣＣ処理において検出されたセクタ毎のエラー訂正結果を特徴テーブルに保存する。
【０１２８】
特徴テーブルにエラー訂正結果が転送されると、メモリシステム１はレディ状態となり、例えばシーケンサ２５０は、特徴テーブル内のＯＩＰを“１”から“０”にセットする。
【０１２９】
ステップＳ３２において、シーケンサ２５０は、各セクタにおけるエラー訂正結果に応じて、特徴テーブルにおいて対応するＥＣＣＳフラグをセットする。なお、ＥＣＣ符号が格納されるべき領域に正味のデータが書き込まれていた場合、偶然正味のデータとＥＣＣ符号とが一致した場合を除き、ホスト機器５００には、エラーは検出されたが訂正はされなかったことを示す“１０”がＥＣＣＳにセットされる。
【０１３０】
ＯＩＰが“０”になったことに応答して、ホスト機器５００は、Get featureコマンドＣＭＤ＿ＧＦ及びアドレスＡＤＤ（＝“Ｃ０ｈ”）を発行し、特徴テーブルからＥＣＣＳを含むエントリの情報を読出す。
【０１３１】
更にホスト機器５００は、第２読出しコマンドＣＭＤ＿ＲＤ２を発行して、ＥＣＣ回路２９５によって誤りの訂正が出来た場合は、コントローラ２００から訂正されたデータを読出す。なお、ホスト機器５００は、ＥＣＣ回路２９５によって誤りの訂正が出来なかった場合は、コントローラ２００から訂正前のデータを読出す。
【０１３２】
１．４  本実施形態に係る効果
本実施形態によれば、ホスト機器から書込める領域を適切に設定出来る。本効果につき、以下説明する。
【０１３３】
ＮＡＮＤ型フラッシュメモリでは、書込まれたデータの一部にエラービットが生じる（ビットが反転する）。このため、ＮＡＮＤ型フラッシュメモリを使用する際には、ＥＣＣによってデータの誤り訂正が行われるのが一般的である。
【０１３４】
誤り訂正のためにＥＣＣ回路によって生成されるＥＣＣ符号は、各ページに設けられた管理領域の一部であるＥＣＣ符号領域に書込まれる。ＥＣＣ回路がＮＡＮＤ型フラッシュメモリに内蔵され、かつＥＣＣ回路の設定が有効を示す場合、ＥＣＣ符号領域へのＥＣＣ符号の書込みはＮＡＮＤ型フラッシュメモリが実行する。一方、ＥＣＣ回路が内蔵されない場合、又はＥＣＣ回路の設定が無効を示す場合、ＥＣＣ符号領域へのＥＣＣ符号の書込みはホスト機器が実行する。
【０１３５】
この点で本実施形態に係る構成によれば、メモリセルアレイ１１０は、ＥＣＣ回路２９５を有効又は無効に設定する設定情報に応じて、ホスト機器５００からデータを書込み可能な領域に対応するカラムアドレスの最大値が変更される。従って、ＥＣＣ回路２９５の設定が有効か無効かに応じて、ＥＣＣ符号が保持される領域を確保しつつ、ホスト機器５００から書込める領域を適切に設定出来る。
【０１３６】
また、ホスト機器５００から指定されたデータを書込み可能な領域に対応するカラムアドレスは、ＥＣＣ回路２９５の設定に関わらず、ホスト機器５００から連続して見えるように設定される。従って、書込み可能な領域が離散的に分布する場合と比較して、ホスト機器５００がデータを書込む手順を簡略化出来る。
【０１３７】
また、シーケンサ２５０は、ホスト機器から指定されたカラムアドレスと、ホスト機器から書込み可能なカラムアドレスとが対応しているか否かを判定し、対応していないと判定した場合、データを書込み可能な領域にのみデータを書込む。従って、ＥＣＣ回路２９５の設定に応じた書込み可能領域の変化に起因して、ホスト機器５００から書込み不可な領域への書込み指示があった場合においても、適切な領域にデータを書込むことが出来る。
【０１３８】
２．変形例等
以上のように、上記実施形態に係るメモリシステムは、ホスト機器からチップセレクト信号を受信可能な第１ピンと、ホスト機器へ第１信号を出力可能な第２ピンと、ホスト機器から第２信号を受信可能な第３ピンと、ホスト機器からクロックを受信可能な第４ピンと、アサートされたチップセレクト信号が受信された直後に第３ピンで受信された第２信号をコマンドとして認識するインタフェース回路と、データを保持可能なメモリセルを含み、ページ単位でデータが書込まれるメモリセルアレイと、メモリセルアレイに書込まれるデータのＥＣＣ符号の生成及びエラーの訂正を行うＥＣＣ回路と、を備える。インタフェース回路は、ＥＣＣ回路を有効又は無効に設定する設定情報を、ホスト機器から受信可能である。メモリセルアレイは、設定情報に応じて、データを書込み可能な領域に対応するカラムアドレスの最大値が変更される。
【０１３９】
あるいは、データを書込み可能な領域に対応するカラムアドレスは、設定情報が有効を示すか否かに関わらず、ホスト機器から連続して見えるように設定される。
【０１４０】
本構成によれば、よりユーザにとっての使い勝手を向上出来る。
【０１４１】
なお、実施形態は上記説明した形態に限られず、種々の変形が可能である。例えば上記実施形態では、ＥＣＣ回路２９５の設定が有効を示す場合、ＥＣＣ符号領域は読出し不可となる場合を例に説明した。しかし、ＥＣＣ符号領域に保持されたＥＣＣ符号は、ＥＣＣ回路２９５の設定に関わらず読出し可能であってもよい。これにより、ホスト機器５００は、ＥＣＣ回路２９５の設定が有効を示す場合においても、ＥＣＣ符号領域に格納されるＥＣＣ符号を読出すことが可能となる。
【０１４２】
また、コントローラ２００内のシーケンサ２５０は、データ書込みの際にホスト機器５００から指定されたカラムアドレスと、書込み可能なカラムアドレスとが対応しているか否かを判定し、対応していないと判定した場合、書込み可能な領域にのみデータを書込む機能について説明した。しかし、上記の機能は、ＮＡＮＤ型フラッシュメモリ１００内の制御回路４４０が更に備えていてもよい。
【０１４３】
また、上記実施形態及び変形例では、ＥＣＣ回路２９５はコントローラ２００内に内蔵されている場合を例に説明した。しかし、ＥＣＣ回路２９５は、コントローラ２００に限らず、ＮＡＮＤ型フラッシュメモリ１００に内蔵されていてもよい。
【０１４４】
また、上記実施形態及び変形例では、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とが別々の半導体チップである場合を例に説明した。しかし、これらはワンチップで形成されてもよい。この場合のメモリシステム１のブロック図を図３０に示す。
【０１４５】
図示するように、ブロック構成は、ＥＣＣ回路２９５を更に備える点を除き、図７と同様である。この場合のメモリシステム１では、ホスト機器５００からの信号ＳＣＫ、／ＣＳ、／ＨＯＬＤ、及び／ＷＰがロジック回路４７０に入力され、信号ＳＩ及びＳＯは、入出力制御回路４６０を介して入出力される。そして、レジスタ４１０〜４３０、制御回路４４０及び４６０、並びにロジック回路４７０がコントローラ２００の機能を果たす。すなわち、制御回路４４０がシーケンサ２５０及びホストインタフェース回路２２０としての機能を果たし、信号／ＣＳによりホスト機器５００からの命令を判別する。入出力制御回路４６０及びロジック回路４７０は、ホスト入出力回路２１０として機能する。レジスタ４１０及び４２０は、レジスタ２８０及び２９０として機能し、特徴テーブルは、例えばステータスレジスタ４１０等に保持される。また、ＥＣＣ回路２９５が生成するＥＣＣ符号は、データレジスタ１４０に直接送信され、ＥＣＣ回路２９５が出力するステータス情報は、ステータスレジスタ４１０に出力される。
【０１４６】
また、上記実施形態で説明したメモリシステムは、例えばテレビやセットトップボックス等のアプリケーションを起動するために用いることも出来る。図３１はそのようなシステムの例を示す。本例であると、メモリシステム１の他に、ＮＯＲ型フラッシュメモリ２が用意され、メモリシステム１及びＮＯＲ型フラッシュメモリ２は、共に共通にＳＰＩインタフェースによって接続される。本例では、メモリシステム１を制御するためのコマンド（コマンドＣＭＤ＿ＲＤ１、ＣＭＤ＿ＲＤ２、ＣＭＤ＿ＧＦ、ＣＭＤ＿ＳＦ等）がＮＯＲ型フラッシュメモリ２に保持されている。そして、ホスト機器５００起動時に、ホスト機器５００内のＲＯＭの保持するシーケンスによって、ホスト機器５００はＮＯＲ型フラッシュメモリ２から上記コマンド情報を読出す。そして、このコマンド情報を用いて、ホスト機器５００は、メモリシステム１から起動シーケンスを読出し、これを実行してアプリケーションが起動される。
【０１４７】
あるいは、ホスト機器５００のＲＯＭ内にメモリシステム１のコマンド情報が保持されていれば、図３２に示すようにＮＯＲ型フラッシュメモリ２が廃されても良い。
【０１４８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１４９】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、２００…コントローラ、２１０…ホスト入出力回路、２２０…ホストインタフェース回路、２３０…ＮＡＮＤインタフェース回路、２４０…ＮＡＮＤ入出力回路、２５０…シーケンサ、２６０，２７０…データバッファ、２８０，４１０…ステータスレジスタ、２９０，４２０…アドレスレジスタ、２９５…ＥＣＣ回路、３００…リードフレーム、３４０…ボンディングワイヤ、３５０…樹脂、４３０…コマンドレジスタ、４４０…制御回路、４５０…電圧発生回路、４６０…入出力制御回路、４７０…ロジック回路、４８０…データレジスタ、５００…ホスト機器。
【図１】
0006527054.tif 000002
【図２】
0006527054.tif 000003
【図３】
0006527054.tif 000004
【図４】
0006527054.tif 000005
【図５】
0006527054.tif 000006
【図６】
0006527054.tif 000007
【図７】
0006527054.tif 000008
【図８】
0006527054.tif 000009
【図９】
0006527054.tif 000010
【図１０】
0006527054.tif 000011
【図１１】
0006527054.tif 000012
【図１２】
0006527054.tif 000013
【図１３】
0006527054.tif 000014
【図１４】
0006527054.tif 000015
【図１５】
0006527054.tif 000016
【図１６】
0006527054.tif 000017
【図１７】
0006527054.tif 000018
【図１８】
0006527054.tif 000019
【図１９】
0006527054.tif 000020
【図２０】
0006527054.tif 000021
【図２１】
0006527054.tif 000022
【図２２】
0006527054.tif 000023
【図２３】
0006527054.tif 000024
【図２４】
0006527054.tif 000025
【図２５】
0006527054.tif 000026
【図２６】
0006527054.tif 000027
【図２７】
0006527054.tif 000028
【図２８】
0006527054.tif 000029
【図２９】
0006527054.tif 000030
【図３０】
0006527054.tif 000031
【図３１】
0006527054.tif 000032
【図３２】
0006527054.tif 000033