(57)【特許請求の範囲】
【請求項１】
メモリシステムであって、
ホスト機器からチップセレクト信号を受信可能な第１ピンと、
前記ホスト機器へ第１信号を出力可能な第２ピンと、
前記ホスト機器から第２信号を受信可能な第３ピンと、
前記ホスト機器からクロックを受信可能な第４ピンと、
データを保持可能なメモリセルを含み、ページ単位でデータが読み出されるメモリセルアレイを含むＮＡＮＤフラッシュメモリと、
ＳＰＩ（Serial Peripheral Interface）に準拠したバスにより前記ホスト機器と接続可能であり、且つＮＡＮＤインターフェースに準拠したバスにより前記ＮＡＮＤフラッシュメモリと接続されており、アサートされた前記チップセレクト信号が受信された直後に前記第３ピンで受信された前記第２信号をコマンドとして認識するインターフェース回路と、前記メモリシステムの設定情報を保持するテーブルと、前記メモリシステムの第１データを保持するレジスタと、を含み、前記レジスタから読み出された前記第１データを、前記テーブル内の前記設定情報に基づいて更新し、前記更新された第１データを前記ホスト機器へ送信可能であるコントローラと
を具備し、前記第１データは、前記メモリシステムに固有の情報であるメモリシステム。
【請求項２】
前記ホスト機器によってイネーブルまたはディセーブルとされるＥＣＣ回路を更に備え、
前記テーブルは、前記ＥＣＣ回路が前記ホスト機器によってイネーブルとされているかディセーブルとされているかを示す第１情報を含み、
前記第１データは、前記ホスト機器に求めるエラー検出ビット数に関する第２情報を含み、
前記レジスタから読み出された前記第１データにおける前記第２情報は、前記第１情報に基づいて更新されて、前記ホスト機器へ送信される、請求項１記載のメモリシステム。
【請求項３】
前記レジスタに保持される前記第１データにおける前記第２情報は、前記ＥＣＣ回路がイネーブルである際に前記ホスト機器に求めるエラー検出ビット数を示し、
前記テーブルにおける前記第１情報が、前記ＥＣＣ回路がディセーブルとされていることを示している場合、前記読み出された第１データにおける前記第２情報が更新される、請求項２記載のメモリシステム。
【請求項４】
前記ホスト機器によってイネーブルまたはディセーブルとされるＥＣＣ回路を更に備え、
前記テーブルは、前記ＥＣＣ回路が前記ホスト機器によってイネーブルとされているかディセーブルとされているかを示す第１情報を含み、
前記第１データは、前記ＮＡＮＤフラッシュメモリのページサイズを示す第２情報を含み、
前記レジスタから読み出された前記第１データにおける前記第２情報は、前記第１情報に基づいて更新されて、前記ホスト機器へ送信される、請求項１記載のメモリシステム。
【請求項５】
前記レジスタに保持される前記第１データにおける前記第２情報は、前記ＥＣＣ回路がイネーブルである際におけるページサイズを示し、
前記テーブルにおける前記第１情報が、前記ＥＣＣ回路がディセーブルとされていることを示している場合、前記読み出された第１データにおける前記第２情報が更新される、請求項４記載のメモリシステム。
【請求項６】
前記レジスタの前記第１データは、前記ＥＣＣ回路の状態が前記ホスト機器によって変更された場合であっても書き換えられない、請求項２乃至５いずれか１項記載のメモリシステム。
【請求項７】
前記ホスト機器は、前記レジスタから前記第１データを読み出す際には第１コマンドを発行し、
前記第１データと異なる第２データを読み出す際には、前記第１コマンドと異なる第２コマンドを発行する、請求項１乃至６いずれか１項記載のメモリシステム。
【請求項８】
前記コントローラは、前記クロックに同期して前記第２信号を受信し、前記チップセレクト信号がアサートされた後の最初のクロックに同期して受信した前記第２信号を前記コマンドと認識する、請求項１乃至７いずれか１項記載のメモリシステム。
【請求項９】
前記コントローラは第１半導体チップに実装され、
前記ＮＡＮＤフラッシュメモリは、前記第１半導体チップと異なる第２半導体チップに実装される、請求項１乃至８いずれか１項記載のメモリシステム。
【請求項１０】
前記コントローラ及び前記ＮＡＮＤフラッシュメモリは、同一の半導体チップ内に実装される、請求項１乃至８いずれか１項記載のメモリシステム。
【請求項１１】
前記コントローラは、前記ホスト機器からの命令に応答して、前記テーブル内の前記設定情報を更新し、
前記レジスタから前記第１データをバッファメモリに読み出し、前記レジスタ内の前記第１データはそのままに、前記バッファメモリ内の前記第１データの値を前記更新された設定情報に基づいて更新し、
前記ホスト機器からの命令に応答して、前記更新された第１データを前記ホスト機器に送信する、請求項１記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
記憶デバイスとして、ＮＡＮＤ型フラッシュメモリが広く知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Toshiba Datasheet, TC58NVG0S3HTA00, 2012年8月31日
【非特許文献２】Toshiba Datasheet, TC58BVG0S3HTA00, 2012年8月31日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上出来るメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、ホスト機器からチップセレクト信号を受信可能な第１ピンと、ホスト機器へ第１信号を出力可能な第２ピンと、ホスト機器から第２信号を受信可能な第３ピンと、ホスト機器からクロックを受信可能な第４ピンと、データを保持可能なメモリセルを含み、ページ単位でデータが読み出されるメモリセルアレイを含むＮＡＮＤフラッシュメモリと、ＳＰＩ（Serial Peripheral Interface）に準拠したバスにより前記ホスト機器と接続可能であり、且つＮＡＮＤインターフェースに準拠したバスにより前記ＮＡＮＤフラッシュメモリと接続されており、アサートされたチップセレクト信号が受信された直後に第３ピンで受信された第２信号をコマンドとして認識するインターフェース回路と、メモリシステムの設定情報を保持するテーブルと、メモリシステムの第１データを保持するレジスタと、を含み、レジスタから読み出された第１データを、テーブル内の設定情報に基づいて更新し、更新された第１データをホスト機器へ送信可能であるコントローラとを備え、前記第１データは、前記メモリシステムに固有の情報である。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るメモリシステムの外観図である。
【図２】図２は、実施形態に係るメモリシステムの断面図である。
【図３】図３は、実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。
【図４】図４は、実施形態に係るメモリシステムの外観図である。
【図５】図５は、実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。
【図６】図６は、実施形態に係るメモリシステムのブロック図である。
【図７】図７は、実施形態に係る半導体記憶装置のブロック図である。
【図８】図８は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図９】図９は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図１０】図１０は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図１１】図１１は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図１２】図１２は、実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。
【図１３】図１３は、実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。
【図１４】図１４は、実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。
【図１５】図１５は、実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。
【図１６】図１６は、実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。
【図１７】図１７は、実施形態に係る特徴テーブルの模式図である。
【図１８】図１８は、実施形態に係る特徴テーブルに情報を設定する際における各種信号のタイミングチャートである。
【図１９】図１９は、実施形態に係るパラメータテーブルに保持される情報の内容を示すダイアグラム。
【図２０】図２０は、実施形態に係るメモリシステムの読み出し動作を示すフローチャートである。
【図２１】図２１は、実施形態に係るメモリシステムの読み出し動作時におけるコマンドシーケンスである。
【図２２】図２２は、実施形態に係るメモリシステムの読み出し動作の具体例を示す模式図である。
【図２３】図２３は、実施形態の変形例に係るメモリシステムのブロック図である。
【図２４】図２４は、実施形態に係るメモリシステムを利用したシステムの概念図である。
【図２５】図２５は、実施形態に係るメモリシステムを利用したシステムの概念図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
第１実施形態に係るメモリシステムについて説明する。
【０００９】
１．構成について  
１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図１及び図２を用いて説明する。図１は、本実施形態に係るメモリシステムの外観図であり、特に上面から見た様子を示し、図２は図１における２−２線に沿った断面図である。
【００１０】
図示するように、メモリシステム１は２つの半導体チップ１００、２００を含む。半導体チップ（メモリチップ）１００はＮＡＮＤ型フラッシュメモリ等の半導体メモリを含み、半導体チップ２００（コントローラチップ）は、メモリチップ１００を制御するコントローラを含む。これらの半導体チップ１００及び２００はリードフレーム３００に実装され、更に樹脂３５０によって封止されてパッケージングされている。
【００１１】
より具体的には、図２に示すように、リードフレーム３００のダイパッド３１０上にメモリチップ１００が搭載され、メモリチップ１００上にコントローラチップ２００が重ねられている。
【００１２】
コントローラチップ２００は、例えばボンディングワイヤ３４０により、リードフレームのインナーリード３２０に接続され、更に図示せぬボンディングワイヤによりメモリチップ１００とも接続されている。そして、メモリチップ１００、コントローラチップ２００、ダイパッド３１０、インナーリード３２０、及びボンディングワイヤ３４０が、例えば樹脂３５０によって封止されている。
【００１３】
インナーリード３２０は、樹脂３５０外部に露出されたアウターリード３３０に接続されている。そしてアウターリード３３０は、メモリシステム１の外部接続端子（外部接続ピン）として機能する。図１の例であると、第１ピンから第１６ピンまでの１６個の外部接続端子が用意されている。そしてメモリシステム１は、これらのピンを介して、メモリシステム１を制御する（より具体的には、メモリチップにアクセスする）ホスト機器と通信する。
【００１４】
図３は、各ピンの機能を示すダイアグラムである。図示するように、第１ピンは、制御信号／ＨＯＬＤの入力用、またはシリアルデータＳＯ３の出力用に用いられる。制御信号／ＨＯＬＤは、ホスト機器とメモリシステム１との間の通信を一時的に停止する際にアサート（“Ｌ”レベル）される。第２ピンは、電源電圧Ｖ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）：ＮＡＮＤ型フラッシュメモリ１００におけるページ読み出しについての高速モードに関するフラグであり、“０”で通常モード、“１”で高速モードを示す。高速モードは、シーケンシャルなページ読み出し（ページアドレスの連続した複数のページに対する読み出し）において可能であり、通常モードに比べてメモリセルアレイ１１０から高速にデータを読み出すことが出来る。
【００８０】
・ビット２＝ＢＢＩ（Bad Block Inhibit）：バッドブロック禁止機能が有効か否かを示すフラグであり、“０”は無効を示し、“１”でバッドブロックは使用禁止とされる。
【００８１】
・ビット３：未使用  
・ビット４＝ＥＣＣ＿Ｅ（ECC Enable）：メモリシステム１内のＥＣＣ機能（本例であると、ＥＣＣ回路６２０）がイネーブルかディセーブルかを示すフラグであり、“０”はディセーブルを示し、“１”はイネーブルを示す。
【００８２】
・ビット５：未使用  
・ビット６＝ＩＤＲ＿Ｅ（ID Read Enable）：パラメータページ読み出しを行うか否かを示すフラグであり、“０”は通常動作を示し、“１”はパラメータページ読み出しを示す。パラメータページの詳細については後述する。
【００８３】
・ビット７＝ＰＲＴ＿Ｅ（Block Protect Enable）：ＮＡＮＤ型フラッシュメモリ１００におけるブロックプロテクト機能が有効であるか否かを示すフラグであり、“０”で無効、“１”で有効を示す。有効の場合、メモリシステム１は、ホスト機器の発行するプロテクト実行コマンドを受信可能である。
【００８４】
アドレス“１０ｈ”のエントリは以下の通りである。すなわち、  
・ビット０＝ＯＩＰ（Operation in Progress）：メモリシステム１がレディ状態であるかビジー状態であるかを示すフラグであり、“０”でレディ状態、“１”でビジー状態を示す。  
・ビット１＝ＷＥＬ（Write Enable Latch）：データの書き込みがイネーブルであるかディセーブルであるかを示すフラグであり、“０”でディセーブル、“１”でイネーブルを示す。  
・ビット２＝ＥＲＳ＿Ｆ（Erase Fail）：データの消去動作がフェイルしたか否かを示すフラグであり、“０”でパス、“１”でフェイルを示す。  
・ビット３＝ＰＲＧ＿Ｆ（Program Fail）：データの書き込み動作がフェイルしたか否かを示すフラグであり、“０”でパス、“１”でフェイルを示す。  
・ビット４、５＝ＥＣＣＳ（ECC status）：コントローラ２００におけるエラー訂正結果を示し、“００”はエラーが検出されなかったことを示し、“０１”及び“１１”はエラーが訂正されたことを示し、“１０”はエラーを訂正出来なかったことを示す。なお、“０１”は、訂正されたエラービット数が、後述するＢＦＤで指定された閾値未満であったことを示し、“１１”は閾値以上であったことを示す。  
・ビット６、７＝未使用。
【００８５】
アドレス“１０ｈ”のエントリは以下の通りである。すなわち、
・ビット０〜３＝未使用  
・ビット４〜７＝ＢＦＤ０〜ＢＦＤ３：ホスト機器５００によって予め設定されたエラービット数の閾値。
【００８６】
３．２  Set Featureコマンドについて  
上記図１７で説明した各エントリの値は、特徴テーブルセットコマンド（Set feature コマンドと呼ぶ）によってホスト機器５００が任意に設定出来る。
【００８７】
図１８は、特徴テーブルのいずれかのエントリに値をセットする際のＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、Set featureコマンドＣＭＤ＿ＳＦを信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００８８】
引き続きホスト機器５００は、例えば８クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、特徴テーブル内において値が設定されるエントリを指定するアドレスであり、図１７の例であると“Ｂ０ｈ”、“Ｃ０ｈ”、または“１０ｈ”である。引き続きホスト機器５００は、指定されたエントリに保持させる８ビットデータＳＴ＿ＤＡＴを送信する。例えば、アドレスとして“Ｂ０ｈ”を指定し、データＳＴ＿ＤＡＴの４ビット目を“０”とすれば、特徴テーブルにおけるフラグＥＣＣ＿Ｅが“０”に設定され、これに基づき例えばシーケンサ２５０はＥＣＣ回路６２０をディセーブルとする。
【００８９】
３．３  パラメータページについて  
次にパラメータページについて説明する。コントローラ２００におけるパラメータページレジスタ６１０は、メモリシステム１に固有の情報を保持する。図１９は、パラメータページに含まれる情報の一例を示している。
【００９０】
図示するように、パラメータページにおける各バイト位置には下記の情報が含まれる。すなわち、  
・０〜３１バイト：未使用  
・３２〜４３バイト：ＮＡＮＤ型フラッシュメモリ２００の製造者情報  
・４４〜６３バイト：デバイスモデル情報  
・６４バイト：製造者ＩＤ  
・６５〜７９バイト：未使用  
・８０〜８３バイト：１ページあたりのバイト数（すなわち１ページサイズ）  
・８４〜８５バイト：１ページあたりのスペア領域のバイト数であり、スペア領域とは、１ページ内において、正味のユーザデータ以外の管理情報や制御情報等を保持可能な領域である。  
・８６〜８９バイト：partialページあたりのバイト数  
・９０〜９１バイト：partialページあたりのスペア領域のバイト数  
・９２〜９５バイト：１ブロックあたりの総ページ数  
・９６〜９９バイト：論理ユニットあたりの総ブロック数  
・１００バイト：論理ユニットの数  
・１０１バイト：未使用  
・１０２バイト：１メモリセルの保持可能なビット数  
・１０３〜１０４バイト：ユニットあたりに許される最大バッドブロック数  
・１０５〜１０６：ブロックの信頼性情報  
・１０７バイト：使用開始時において保証される有効ブロック数  
・１０８〜１０９バイト：未使用  
・１１０バイト：１ページあたりのプログラム回数  
・１１１バイト：未使用  
・１１２バイト：ホスト側にて必要なＥＣＣ訂正ビット数  
・１１３〜１２７バイト：未使用  
・１２８バイト：入出力ピン容量  
・１２９〜１３２バイト：未使用  
・１３１〜１３２バイト：プログラムキャッシュタイミング情報  
・１３３〜１３４バイト：最大ページプログラム時間ｔPROG  
・１３５〜１３６バイト：最大ブロック消去時間ｔBERS  
・１３７〜１３８バイト：最大ページ読み出し時間ｔR  
・１３９〜２５３バイト：未使用  
・２５４〜２５５バイト：ＣＲＣ情報  
・２５６〜５１１バイト：０〜２５５バイトの値  
・５１２〜７６７バイト：０〜２５５バイトの値  
上記の情報は、例えばコントローラ２００またはメモリシステム１製造時に、製造メーカーによって出荷前に例えばテスター等によって書き込まれる。
【００９１】
４．パラメータページの読み出し動作について  
次に、ホスト機器５００が上記パラメータページをメモリシステム１から読み出す際の動作について説明する。パラメータページの読み出し動作は、大まかには以下の６ステップを含む。すなわち、
（１）Set featureにより、ＩＤＲ＿Ｅを“１”にセットする：本動作により、パラメータページ読み出し動作がイネーブルとされる。  
（２）パラメータページレジスタ６１０からのデータ読み出し：本動作により、パラメータページレジスタ６１０からパラメータページデータが読み出され、コントローラ２００内のデータバッファ２６０及び／または２７０レジスタに格納される。  
（３）特徴テーブル読み出し（Get featureと呼ぶことがある）：本動作により、メモリシステム１がビジー状態であるかレディ状態であるか、すなわち上記（２）の動作が完了したか否かが判定される。  
（４）コントローラ２００によるパラメータページデータの更新：本動作により、パラメータページデータが、例えば特徴テーブル内の情報に基づき、必要に応じて更新される。  
（５）コントローラ２００からのデータ読み出し：本動作により、（４）で必要に応じて更新されたパラメータページデータがホスト機器５００に読み出される。  
（６）Set featureにより、ＩＤＲ＿Ｅを“０”にセットする：本動作により、パラメータページ読み出し動作がディセーブルとされる。  
以下、図２０及び図２１を用いて説明する。図２０は、読み出し動作時におけるホスト機器５００、コントローラ２００、及びＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートであり、図２１はコマンドシーケンスである。
【００９２】
図示するように、まずホスト機器５００がSet featureコマンドＣＭＤ＿ＳＦを発行し、アドレスＡＤＤ（＝“Ｂ０ｈ”）を発行し、更にＩＤＲ＿Ｅ＝“１”を含むエントリデータを送信する。この結果、コントローラ２００のシーケンサ２５０は、特徴テーブル内のＩＤＲ＿Ｅを“０”から“１”に変更する。これにより、メモリシステム１はパラメータページ読み出しモードとなる。
【００９３】
次にホスト機器５００は、第１読み出しコマンドＣＭＤ＿ＲＤ１を発行し、引き続きアドレスＡＤＤを発行する。このアドレスに応答して、メモリシステム１はビジー状態となり、特徴テーブルにおけるＯＩＰは“１”となる。またホスト機器５００は、Get featureコマンドＣＭＤ＿ＧＦ及びアドレスＡＤＤ（＝“Ｃ０ｈ”）を発行し、特徴テーブルからＯＩＰを含むエントリの情報（１バイトデータ）を読み出す。このエントリ情報は、クロックＳＣＫが入力されている期間、ＯＩＰが“０”になるまで繰り返しホスト機器５００へ送信される（Get featureコマンドを繰り返し発行しても良い）。
【００９４】
メモリシステム１がビジー状態となると共に、コントローラ２００はパラメータページレジスタが保持しているパラメータページデータをデータバッファ２６０及び／または２７０に転送する。そして例えばシーケンサ２５０が、特徴テーブル内の情報と、データバッファ２６０または２７０内に保持するパラメータページデータとを比較し、両者の情報が一致しているか否かを確認する。そして、両者が一致していない場合、パラメータページデータを、特徴テーブル内の情報に一致するよう、更新する（ステップＳ１２）。
【００９５】
例えばこの更新が完了するとメモリシステム１はレディ状態となり、例えばシーケンサ２５０は、特徴テーブル内のＯＩＰを“１”から“０”にセットする。
【００９６】
ＯＩＰが“０”になったことに応答して、ホスト機器５００は、第２読み出しコマンドＣＭＤ＿ＲＤ２を発行して、データバッファ２６０または２７０内のパラメータページデータを、コントローラ２００から読み出す。
【００９７】
その後、ホスト機器５００は再度Set featureコマンドＣＭＤ＿ＳＴを発行して、特徴テーブルにおけるＩＤＲ＿Ｅを“１”から“０”に変更し、メモリシステムを通常モードに戻す。
【００９８】
図２２は、上記パラメータページの読み出し動作の具体例を示している。本例では、特徴テーブルにおいてＥＣＣ＿Ｅはデフォルトで“１”、つまりＥＣＣ回路６２０がイネーブルとされ、パラメータページでは“Number of ECC bits”は“０”である例を示す。つまり、原則としてメモリシステム１でＥＣＣ処理が行われるため、ホスト機器５００でＥＣＣ処理が必要とされるビット数（ホスト機器に対して求められるエラー訂正ビット数）は０ビットとされている。
【００９９】
このような例において、Set featureコマンドにより、ＥＣＣ＿Ｅが“０”とされ、ＥＣＣ回路６２０がdisableとされた場合を仮定する。そして図２２では一例として、ホスト機器５００がパラメータページの１１２バイト目に格納されている“Number of ECC bits”を読み出す場合を示している。
【０１００】
図示するように、パラメータページレジスタ６１０に保持されるパラメータページデータは、そのままデータバッファ２６０、２７０に転送される。この時点において、パラメータページデータにおける“Number of ECC bits”は“０”である。
【０１０１】
しかしシーケンサ２５０は特徴テーブルのＥＣＣ＿Ｅを参照する。すると、ＥＣＣ＿Ｅは“０”であり、メモリシステム１におけるＥＣＣ機能がディセーブルとされていることが分かる。つまり、この状況は、ホスト機器５００においてＥＣＣ処理が必要な状況だと分かる。そこでシーケンサ２５０は、読み出したパラメータページデータにおける“Number of bits”を“０”から“８”に更新する（本例では、セクタ毎のＥＣＣビット数が８ビットである場合を仮定する）。
【０１０２】
そしてコントローラ２００は、ホスト機器５００からのコマンド入力に従い、“８”に更新された“Number of ECC bits”を送信する。これによりホスト機器５００は、コントローラ２００から読み出したデータにつき、ホスト機器５００自身がセクタあたり最大８ビットのエラー訂正を行う必要があることを把握出来る。
【０１０３】
５．本実施形態に係る効果  
本実施形態によれば、ホスト機器５００は常にメモリシステム１の最新の状態を把握し、最適な動作を実行出来る。本効果につき、以下説明する。
【０１０４】
本実施形態に係る構成であると、メモリシステム１は、ページサイズやページ内の冗長部のサイズ、あるいはホスト側のプロセッサに要求されるＥＣＣの訂正能力、更には書き込み時間等のタイミング仕様に関する情報を保持している。これらの情報は、例えばメモリシステム１の出荷時に書き込まれ、更新されることは無い。そしてホスト機器５００は、これらの情報が必要になった際、パラメータページの読み出し動作によって、これらの情報を読み出すことが出来る。
【０１０５】
また本実施形態に係る構成であると、ホスト機器５００は、Set featureコマンド等により、メモリシステム１の設定を変更することが出来る。すると、ホスト機器５００がパラメータページデータをメモリシステム１に要求した際におけるメモリシステム１の設定と、パラメータページレジスタ６１０に保持されているパラメータページデータの設定とが一致しない場合があり得る。これは、図２２の例で説明した通りである。
【０１０６】
この点、本実施形態では、パラメータページレジスタ６１０から読み出したパラメータページデータを、コントローラ２００は特徴テーブル内の情報に基づいて最新の情報に更新する。そして、ホスト機器５００からの要求に従い、更新されたパラメータページデータを送信する。従って、ホスト機器５００は常にメモリシステム１の最新の状態を把握し、最適な動作を実行出来る。
【０１０７】
もちろん、パラメータページレジスタ６１０から読み出されたパラメータページデータが、特徴テーブル内の情報と一致する場合には、パラメータページデータを更新する必要は無い。
【０１０８】
このように本実施形態によれば、パラメータページ内の設定情報を固定値としつつも、ホスト機器５００には最新情報を提供出来る。
【０１０９】
６．変形例等
以上のように、上記実施形態に係るメモリシステムは、ホスト機器からチップセレクト信号(/CS in 図4)を受信可能な第１ピン(Pin No.1 in 図4)と、ホスト機器へ第１信号(SO in 図4)を出力可能な第２ピン(Pin No.2 in 図4)と、ホスト機器から第２信号(SI in 図4)を受信可能な第３ピン(Pin No.5 in 図4)と、ホスト機器からクロック(SCK in 図4)を受信可能な第４ピン(Pin No.6 in 図4)と、アサートされたチップセレクト信号が受信された直後に第３ピンで受信された第２信号をコマンドとして認識するインターフェース回路(210,220 in 図6)と、データを保持可能なメモリセルを含み、ページ単位でデータが読み出されるメモリセルアレイ(100 in 図6)と、メモリシステムの設定情報を保持するテーブル(feature table in 図17)と、前記メモリシステムの第１データを保持するレジスタ(parameter page register in 図6)を備える。そしてメモリシステムは、レジスタから読み出された第１データ(parameter page in 図19)を、テーブル(feature table)内の設定情報に基づいて更新(S12 in 図20)し、更新された第１データを前記ホスト機器へ送信可能である。
【０１１０】
本構成によれば、レジスタから読み出されたパラメータページデータを、特徴テーブル内の情報に基づいて更新し、更新されたパラメータページデータをホスト機器へ送信する。これにより、メモリシステムは正しい情報をホスト機器へ提供することが出来る。
【０１１１】
なお、実施形態は、上記説明した実施形態が唯一のものでは無く、種々の変形が可能である。例えば上記実施形態では、特徴テーブルにおけるＥＣＣ＿Ｅに応じて、読み出したパラメータページデータにおける“Number of ECC bits”を更新する場合を例に説明した。しかし、このような例に限定されない。例えば、メモリシステム１のＥＣＣ機能がディセーブルとされた場合、ＥＣＣデータ（パリティ等）をメモリセルアレイ１１０に書き込む必要が無い。従って、ＥＣＣデータ用の領域をユーザ領域として使用出来る可能性がある。すなわち、ＥＣＣ＿Ｅ＝“０”の場合には、ＥＣＣ＿Ｅ＝“１”の場合に比べて、ページサイズを大きく出来る可能性がある。従ってこのような場合には、図１９で説明したパラメータページデータにおける８０〜８３バイトの“Number of data bytes per page”及び／または“Number of spare bytes per page”を更新しても良い。
【０１１２】
また、メモリシステム１において読み出しモードが複数用意されている場合（例えば読み出し速度の異なる複数のモード）には、パラメータページデータにおける例えば１２９〜１３０バイトのタイミングモードや、１３７〜１３８バイトの最大読み出し時間が更新されても良い。また、１３３〜１３４バイトの最大書き込み時間が更新される場合であっても良く、メモリシステム１の特性に応じて、パラメータページデータの任意の情報が更新されて良い。
【０１１３】
また、パラメータページデータには、固定値をとり続けるものと、変更可能であるものとが含まれる。そして、パラメータページデータを更新する際には、コントローラ２００はパラメータページデータと特徴テーブルとが比較される。この際、シーケンサ２５０は、予め、パラメータページデータの各エントリと、特徴ページの各ビットとの対応関係を保持していても良い。例えばシーケンサ２５０は、特徴テーブルのＥＣＣ＿Ｅを、パラメータページデータの“Number of ECC bits”、“Number of data bytes per page”、及び“Number of spare bytes per page”に関連付ける。そして、ＥＣＣ＿Ｅが変更された場合に、これに関連付けられたパラメータページデータの情報を更新する。
【０１１４】
更に上記実施形態では、パラメータページの読み出し時のシーケンスが、その他の通常データの読み出し時と同じである場合を例に説明した。しかしホスト機器５００は、パラメータページの読み出し時には、通常データの読み出し時とは異なるコマンドを発行しても良いし、また異なる通常データの読み出し時とは異なるシーケンスにより読み出し動作が実行されても良い。
【０１１５】
更に、図１７を用いて説明した特徴テーブル及び図１９を用いて説明したパラメータページは一例に過ぎず、図示した情報の一部のみを含む場合であっても良いし、またはその他の情報を含む場合であっても良い。
【０１１６】
更に、上記実施形態ではパラメータページレジスタ６１０内のパラメータページデータは固定値であり、書き換えられない場合を例に説明した。しかし、コントローラ２００においてパラメータページデータが更新された際には、これが新たなパラメータページデータとしてパラメータページレジスタ６１０に書き込まれる場合であっても良い。
【０１１７】
また、例えば上記実施形態では、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とが別々の半導体チップである場合を例に説明した。しかし、これらはワンチップで形成されても良い。この場合のメモリシステム１のブロック図を図２３に示す。
【０１１８】
図示するように、ブロック構成は、図７と同様であるが、ホスト機器５００からの信号ＳＣＫ、／ＣＳ、／ＨＯＬＤ、及び／ＷＰがロジック回路４７０に入力され、信号ＳＩ及びＳＯは入出力制御回路４６０を介して入出力される。そして、レジスタ４１０〜４３０、制御回路４４０及び４６０、並びにロジック回路４７０がコントローラ２００の機能を果たす。すなわち、制御回路４４０がシーケンサ２５０及びホストインターフェース回路２２０としての機能を果たし、信号／ＣＳによりホスト機器５００からの命令を判別する。入出力制御回路４６０及びロジック回路４７０は、ホスト入出力回路２１０として機能する。レジスタ４１０及び４２０はレジスタ２８０及び２９０として機能し、特徴テーブルは、例えばステータスレジスタ４１０等に保持される。
【０１１９】
また、パラメータページデータはＮＡＮＤ型フラッシュメモリ１００に保持されていても良い。すなわち、コントローラ２００がＮＡＮＤ型フラッシュメモリ１００からパラメータページを読み出す構成であり、読み出しの際にＥＣＣ回路６２０がパラメータページデータのＥＣＣ復号を実施する構成であっても良い。
【０１２０】
また、図６及び図７で説明した構成において、ＥＣＣ回路６２０がＮＡＮＤ型フラッシュメモリ１００に含まれていても良い。すなわち、ＮＡＮＤ型フラッシュメモリ１００がエラーの検出及び訂正を行う構成であっても良い。この際、例えばＮＡＮＤ型フラッシュメモリ１００がパラメータページデータに対してＥＣＣ処理を実行しても良い。
【０１２１】
また、上記実施形態で説明したフローチャートにおける各処理は、可能な限りその順番を入れ替えることが出来る。更に、上記実施形態で説明したタイミングチャートも一例に過ぎず、信号ＳＩを入力する際に必要なクロック数や、信号ＳＯを出力する際に必要なクロック数も、上記実施形態に限定されるものでは無い。また、コマンドによっては、直後にダミービットが入力される例を示しているが、この場合に限定されるものでは無い。これは特徴テーブルについても同様であり、上記実施形態で説明した情報を保持出来るものであれば、上記実施形態で説明した形式に限定されない。
【０１２２】
また、上記実施形態で説明したメモリシステムは、例えばテレビやセットトップボックス等のアプリケーションを起動するために用いることも出来る。図２４はそのようなシステムの例を示す。本例であると、メモリシステム１の他に、ＮＯＲ型フラッシュメモリ２が用意され、メモリシステム１及びＮＯＲ型フラッシュメモリ２は、共に共通にＳＰＩインターフェースによって接続される。本例では、メモリシステム１を制御するためのコマンド（コマンドＣＭＤ＿ＲＤ１、ＣＭＤ＿ＲＤ２、ＣＭＤ＿ＧＦ、ＣＭＤ＿ＳＦ等）がＮＯＲ型フラッシュメモリ２に保持されている。そして、ホスト機器５００起動時に、ホスト機器５００内のＲＯＭの保持するシーケンスによって、ホスト機器５００はＮＯＲ型フラッシュメモリ２から上記コマンド情報を読み出す。そして、このコマンド情報を用いて、ホスト機器５００はメモリシステム１から起動シーケンスを読み出し、これを実行してアプリケーションが起動される。
【０１２３】
あるいは、ホスト機器５００のＲＯＭ内にメモリシステム１のコマンド情報が保持されていれば、図２５に示すようにＮＯＲ型フラッシュメモリ２が廃されても良い。
【０１２４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１２５】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、２００…コントローラ、２１０…ホスト入出力回路、２２０…ホストインターフェース回路、２３０…ＮＡＮＤインターフェース回路、２４０…ＮＡＮＤ入出力回路、２５０…シーケンサ、２６０、２７０…データバッファ、２８０，４１０…ステータスレジスタ、２９０，４２０…アドレスレジスタ、３００…リードフレーム、３４０…ボンディングワイヤ、３５０…封止樹脂、４３０…コマンドレジスタ、４４０…制御回路、４５０…電圧発生回路、４６０…入出力制御回路、４７０…ロジック回路、５００…ホスト機器、６１０…パラメータページレジスタ、６２０…ＥＣＣ回路
【図１】
0006542076.tif 000002
【図２】
0006542076.tif 000003
【図３】
0006542076.tif 000004
【図４】
0006542076.tif 000005
【図５】
0006542076.tif 000006
【図６】
0006542076.tif 000007
【図７】
0006542076.tif 000008
【図８】
0006542076.tif 000009
【図９】
0006542076.tif 000010
【図１０】
0006542076.tif 000011
【図１１】
0006542076.tif 000012
【図１２】
0006542076.tif 000013
【図１３】
0006542076.tif 000014
【図１４】
0006542076.tif 000015
【図１５】
0006542076.tif 000016
【図１６】
0006542076.tif 000017
【図１７】
0006542076.tif 000018
【図１８】
0006542076.tif 000019
【図１９】
0006542076.tif 000020
【図２０】
0006542076.tif 000021
【図２１】
0006542076.tif 000022
【図２２】
0006542076.tif 000023
【図２３】
0006542076.tif 000024
【図２４】
0006542076.tif 000025
【図２５】
0006542076.tif 000026