(57)【要約】【課題】シーケンシャルＲＯＭインターフェースを具備するホストシステムをＮＡＮＤ型フラッシュメモリーにアクセス可能に改良すること、及び、該改良されたホストシステムからアクセス可能なＮＡＮＤ型フラッシュメモリーデバイスの提供。【解決手段】ホストシステムのシーケンシャルＲＯＭインターフェースにＷａｉｔ信号入力部を設け、前記Ｗａｉｔ信号入力部にＷａｉｔが挿入されている間、アクセス対象に対するデータ読み出し信号の送出を待機するよう構成した。また、ＮＡＮＤ型フラッシュメモリーデバイスを、コントローラとＮＡＮＤ型フラッシュメモリーとで構成し、コントローラには、Ｗａｉｔ信号出力端子を有するシーケンシャルＲＯＭインターフェースを設けた。【選択図】図１
2007048090.tif 000002
【特許請求の範囲】
【請求項１】
アクセス対象から送出されたＷａｉｔ信号を入力するＷａｉｔ信号入力部を設けてなることを特徴とするホストシステムが具備するシーケンシャルＲＯＭインターフェース。
【請求項２】
請求項1記載のシーケンシャルＲＯＭインターフェースを具備しアクセス対象からシーケンシャルにデータの読み出しを行うホストシステムであって、該ホストシステムは、前記Ｗａｉｔ信号入力部からＷａｉｔが挿入されている間、アクセス対象に対するデータ読み出し信号の送出を待機状態にするよう構成されていることを特徴とするホストシステム。
【請求項３】
ホストシステムは、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ方式により、ＣＰＵを介さずに前記アクセス対象からデータを読み出すものであることを特徴とする請求項２記載のホストシステム。
【請求項４】
請求項２記載のホストシステムがアクセス可能なＮＡＮＤ型フラッシュメモリーデバイスであって、該ＮＡＮＤ型フラッシュメモリーデバイスは、ＮＡＮＤ型フラッシュメモリーと、ホストシステムからのシーケンシャル読出し指令に対応して前記ＮＡＮＤ型フラッシュメモリーからデータの読み出しを行ってこれをホストシステムに出力するコントローラからなり、
該コントローラは、
1）ホストシステムからアドレスと制御信号を入力するとともに、データを前記ホストシステムへ出力するシーケンシャルＲＯＭインターフェースと、
2) ＮＡＮＤ型フラッシュメモリーと通信を行うＮＡＮＤインターフェースを含み、該ＮＡＮＤインターフェースを介してＮＡＮＤ型フラッシュメモリーからデータを読み出すためのアドレス、コマンド及び制御信号を出力するハードウエアシーケンサと、
3）ホストシステムから読み出し指定されたアドレスからＮＡＮＤ型フラッシュメモリーの物理ブロックアドレスを割り出してＮＡＮＤ型フラッシュメモリーの実際にアクセスすべきアドレスを前記ハードウエアシーケンサにプログラムするとともに、該コントローラを統括的に制御するメインファームウエアと、
4)ホストシステムに出力するためのデータを一時格納する読み出しデータ格納用ＲＡＭと、
5）バッファメモリーを有し、前記読み出しデータ格納用ＲＡＭに該バッファメモリーを介して格納され、若しくは前記読み出しデータ格納用ＲＡＭから該バッファメモリーを介して読み出されるデータの緩衝制御を行うバッファマネージャーと、
6)ＮＡＮＤ型フラッシュメモリーから読み出されたデータにエラーがないか判定するＥＣＣ  ＤＥＣＯＲＤＥＲと、
7)前記ＥＣＣ  ＤＥＣＯＲＤＥＲによりデータにエラーが発見された場合に、当該エラーを訂正するＣＯＲＲＥＣＴＯＲと、
を有し、
本ＮＡＮＤ型フラッシュメモリーの前記シーケンシャルＲＯＭインターフェースは、前記データ格納用ＲＡＭに格納しているデータが、前記ホストシステムに出力可能になるまでホストシステムにＷａｉｔを挿入するＷａｉｔ出力端子を具備してなることを特徴とするシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項５】
ＮＡＮＤ型フラッシュメモリーに対するデータの書き込みは、論理ブロックアドレスと物理ブロックアドレスがイコールの関係になるように順次実行され、所定の論理ブロックアドレスに対応するアドレスの物理ブロックが不良ブロックである場合は予備の良ブロックで代替して書き込みが実行されるものであることを特徴とする請求項４記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項６】
前記物理ブロックを代替した論理ブロックアドレスと当該代替物理ブロックのアドレスの関係を、アドレス変換テーブルとして当該フラッシュメモリーに記憶しておき、フラッシュメモリーからのデータの読み出しは、前記アドレス変換テーブルを用いて実行されることを特徴とする請求項５記載のＮＡＮＤ型フラッシュメモリーデバイス。
【請求項７】
Ｗａｉｔの挿入は、ＡＬＥＨ若しくはＡＬＥＬの立下りを基点として実行されることを特徴とする請求項４記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項８】
ホストシステムから入力したアドレスに対応するデータの読み出しを終了後、次回のアドレスの入力前に、該アドレスの入力があるものと見越して次のデータの読出しを実行することを特徴とする請求項４記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項９】
請求項２又は３のシーケンシャルＲＯＭインターフェースを具備するホストシステムと請求項４乃至請求項７いずれか1項記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイスとのコンビネーション。
【請求項１０】
ＮＡＮＤ型フラッシュメモリーとコントローラは、一つのＬＳＩパッケージに収納されてなることを特徴とする請求項４記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項１１】
請求項２記載のホストシステムがＮＡＮＤ型フラッシュメモリーからシーケンシャルにデータを読み出すためのＮＡＮＤ型フラッシュメモリー用のコントローラであって、
該コントローラは、
1）ホストシステムからアドレスと制御信号を入力するとともに、データを前記ホストシステムへ出力するシーケンシャルＲＯＭインターフェースと、
2) ＮＡＮＤ型フラッシュメモリーと通信を行うＮＡＮＤインターフェースを含み、該ＮＡＮＤインターフェースを介してＮＡＮＤ型フラッシュメモリーからデータを読み出すためのアドレス、コマンド及び制御信号を出力するハードウエアシーケンサと、
3）ホストシステムから読み出し指定されたアドレスからＮＡＮＤ型フラッシュメモリーの物理ブロックアドレスを割り出してＮＡＮＤ型フラッシュメモリーの実際にアクセスすべきアドレスを前記ハードウエアシーケンサにプログラムするとともに、該コントローラを統括的に制御するメインファームウエアと、
4)ホストシステムに出力するためのデータを一時格納する読み出しデータ格納用ＲＡＭと、
5）バッファメモリーを有し、前記読み出しデータ格納用ＲＡＭに該バッファメモリーを介して格納され、若しくは前記読み出しデータ格納用ＲＡＭから該バッファメモリーを介して読み出されるデータの緩衝制御を行うバッファマネージャーと、
6)ＮＡＮＤ型フラッシュメモリーから読み出されたデータにエラーがないか判定するＥＣＣ  ＤＥＣＯＲＤＥＲと、
7)前記ＥＣＣ  ＤＥＣＯＲＤＥＲによりデータにエラーが発見された場合に、当該エラーを訂正するＣＯＲＲＥＣＴＯＲと、
を有し、
本コントローラが具備するシーケンシャルＲＯＭインターフェースは、前記データ格納用ＲＡＭに格納しているデータが、前記ホストシステムに出力可能になるまでホストシステムにＷａｉｔを挿入するＷａｉｔ出力端子を具備してなることを特徴とするシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイスのコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤ型フラッシュメモリーにアクセスし得る新規なホストシステムのシーケンシャルＲＯＭインターフェース及び該インターフェースを有するホストシステム、並びに該ホストシステムからアクセス可能なＮＡＮＤ型フラッシュメモリーデバイス、及びそのコントローラに関する。
【背景技術】
【０００２】
ストレージ用として様々なメモリが提供されている。例えばマスクＲＯＭは製造時にデータが書き込まれるもので、データのランダム読み出しの他、シーケンシャル読み出しにも使用されている。
【０００３】
また近年、フラッシュメモリーと呼ばれる半導体メモリが普及している。とりわけＮＡＮＤ型フラッシュメモリーはアレイ構造上シーケンシャル読み出しに向いている。特にコンピュータプログラムのコードデータ、画像データ、音声データなどは、その性質上、シーケンシャルに読み出されることが好ましい。
【０００４】
ところで、ホストシステムからメモリへアクセスするには、ホストシステムとメモリのそれぞれの共通するインターフェースを介して行われる必要がある。例えば、ＮＡＮＤ型フラッシュメモリーにアクセスするには、ホストシステムにＮＡＮＤＩ／Ｆを具備する必要がある。この点、マスクＲＯＭ用に設けたホストシステムのシーケンシャルＲＯＭインターフェース（ＭＡＣＲＯＮＩＸ社資料「ＭＸ２３Ｌ５１２１２」参照）から直接ＮＡＮＤ型フラッシュメモリーにアクセスすることはできない。この場合、ホストシステムにＮＡＮＤＩ／Ｆを具備すればよいが、ホストシステムの大幅な設計変更が必要となるという問題がある。
【非特許文献１】ＭＡＣＲＯＮＩＸ社資料「ＭＸ２３Ｌ５１２１２」
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記問題点に鑑みてなされたもので、その目的とするところは、シーケンシャルＲＯＭインターフェースを具備するホストシステムからＮＡＮＤ型フラッシュメモリーにアクセス可能な改良されたホストシステムを提供することにある。具体的には、ホストシステムにおいてシーケンシャルＲＯＭインターフェースの基本仕様をそのまま踏襲しつつＮＡＮＤ型フラッシュメモリーに対応する改良されたシーケンシャルＲＯＭインターフェースを提供すること、並びに該インターフェースを具備するホストシステムを提供することにある。
【０００６】
第２の目的は、この改良されたホストシステムからアクセス可能なＮＡＮＤ型フラッシュメモリーデバイス及びそのコントローラを提供することにある。特に、ＮＡＮＤ型フラッシュメモリーをシーケンシャルＲＯＭ互換にするにあたり、不良ブロックや不良ビットのない完全なメモリとしてホストシステムが扱えるようにするＮＡＮＤ型フラッシュメモリー及びそのコントローラを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のホストシステムは、シーケンシャルＲＯＭインターフェースにアクセス対象から送出されたＷａｉｔ信号を入力するＷａｉｔ信号入力部を設けるともに、前記Ｗａｉｔ信号入力部からＷａｉｔが挿入されている間、アクセス対象に対するデータ読み出し信号の送出を待機する構成とした。ホストシステムは、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ方式により、ＣＰＵを介さずに前記アクセス対象からデータを読み出すものとすることができる。
【０００８】
また、本発明のＮＡＮＤフラッシュメモリーデバイスは、請求項４乃至請求項１０いずれか1項記載の通り構成される。さらに本発明のＮＡＮＤ型フラッシュメモリーデバイスのコントローラは請求項１１記載の通り構成される。
【発明を実施するための最良の形態】
【０００９】
以下、本発明が適用された実施例について図面及び表を用いて説明する。尚、本発明の実施の形態は、下記の実施例に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態の形態を採りうる。
【００１０】
図１のブロック図を用いて、本発明のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス及び該デバイスにアクセスしてシーケンシャルリードを行うホストシステムについて説明する。
【００１１】
本発明のＮＡＮＤ型フラッシュメモリーデバイス１は、ＮＡＮＤ型フラッシュメモリー１１と、シーケンシャルＲＯＭインターフェースを具備するホストシステム２からの指令に従いＮＡＮＤ型フラッシュメモリー１１に直接アクセスしてデータの読出しを行うコントローラ１２とからなる。
【００１２】
コントローラ１２が具備するシーケンシャルＲＯＭインターフェース１２１は、ホストシステム２からの読出し指令、即ち、アドレスと制御信号を入力するとともに、読み出されたデータをホストシステム２へ出力する。端子構造としては、周知のＣＥ（チップイネーブル）、ＡＬＥＨ（アドレスラッチイネーブルｈｉｇｈ）、ＡＬＥＬ（アドレスラッチイネーブルＬｏｗ）、ＲＤ（リードストローブ）の各信号入力端子、ＡＤ０〜ＡＤ１５のアドレス入力／データ出力端子の他、本願発明のホストシステム２の構成的特長の一つであるＷａｉｔ信号出力端子を有する。
【００１３】
ホストシステム２のシーケンシャルＲＯＭインターフェース２１のＡＤ端子（図示せず）からは、シーケンシャルＲＯＭインターフェース１２１のＡＤ端子に対し、データを読み出すべきアドレスが通知される。このアドレスは、データを読み出すべきアクセス対象のページを指定するページアドレスと、そのページを含むブロックを指定するブロックアドレスである。
【００１４】
アクセス対象がマスクＲＯＭであればそのまま実行すればよいが、アクセス対象がＮＡＮＤ型フラッシュメモリーの場合は、論理ブロックアドレスと物理ブロックアドレスの関係で管理されているため、シーケンシャルＲＯＭインターフェースから通知されるアドレス情報中のブロック番号に関する情報を、ＮＡＮＤ型フラッシュメモリーの論理ブロックアドレスに対するものとして扱う必要がある。そして、その論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、その物理ブロックアドレスで特定されるブロック中の指定されたページアドレスからデータを読み出す必要がある。ＮＡＮＤ型フラッシュメモリーの論理ブロックアドレスから物理ブロックアドレスの割り出しは、ＮＡＮＤ型フラッシュメモリー１１に対するデータの書込みが前提となるため、以下にこれにつき説明する。
【００１５】
（データの書き込み）
ＮＡＮＤ型フラッシュメモリー１１に対しては、その論理ブロックアドレス（ＬＢＡ）順にデータが書き込まれる。シーケンシャルリードを前提すると、論理ブロックアドレスと物理ブロックアドレス（ＰＢＡ）はイコールの関係（ＬＢＡｘ＝ＰＢＡｘ、ｘは０または正の整数）、即ち、物理ブロックアドレス順に、各ブロックにデータが書き込まれることが望ましい。
【００１６】
しかしながらＮＡＮＤ型フラッシュメモリーの場合は、製造上不良ブロックが存在し、該不良ブロックにはデータを書き込むことができない。このため、論理ブロックアドレスとイコールの関係にある物理ブロックアドレスのブロックにはデータを書き込めない場合が生じる。
【００１７】
この場合、不良ブロックを飛ばして、次の良ブロックにデータを書き込んでもよいが、論理ブロックアドレスと物理ブロックアドレスの関係にずれを生じる（両者のアドレスがイコールであると言う関係が崩れる）。このため本願では、不良ブロックを他の良ブロックで代替してデータ書き込みを実行する。以下これについて表１を用いて説明する。
（表１）
＜アドレス管理テーブル＞
ＬＢＡ          ＰＢＡ
０              ０
１            １０（不良ブロックＰＢＡ１の代替）
２              ２
３              ３
４              ４
５              ５
６            １１（不良ブロックＰＢＡ６の代替）
７              ７
８            １２（不良ブロックＰＢＡ８の代替）
９              ９
１０(スヘ゜ア)        −
１１(スヘ゜ア)        −
１２(スヘ゜ア)        −
【００１８】
表１で、ＬＢＡは論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）、ＰＢＡは、物理ブロックアドレス（Ｐｈｙｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）である。表１は、データ書き込み後の論理ブロックアドレスと物理ブロックアドレスの関係を示した「アドレス管理テーブル」の内容例である。このテーブルはメモリの管理領域に書き込まれる。
【００１９】
表１では、説明を簡略化するために、物理ブロック数が１３（ＰＢＡ０〜１２）、論理ブロック数が１０（ＬＢＡ０〜９、スペアＬＢＡ１０〜１２）として設定されている。表１では、ＬＢＡ１に対応するＰＢＡ１が不良であるためこれをＰＢＡ１０で代替してデータを書き込み、ＬＢＡ６が不良であるためこれをＰＢＡ１１で代替し、さらにＬＢＡ８に対応するＰＢＡ８が不良であるため、これをＰＢＡ１２で代替していることを示す。
【００２０】
不良ブロックに関する情報およびその代替テーブル（「不良ブロック代替テーブル」という）は、ＮＡＮＤ型フラッシュメモリーの管理領域に、製造者により書き込まれている。表２に不良ブロック代替テーブル例を示す。
（表２）
＜不良ブロック代替テーブル＞
不良ブロックアドレス      代替ブロックアドレス
ＰＢＡ１        →      ＰＢＡ１０
ＰＢＡ６        →      ＰＢＡ１１
ＰＢＡ８        →      ＰＢＡ１２
【００２１】
この「不良ブロック代替テーブル」は、電源投入時にＣＰＵ１２００によりＮＡＮＤ型フラッシュメモリー１１の管理領域からＲＡＭ１２０２に展開されるので、データ書き込み時において、書き込み対象ブロックが不良ブロックである場合は、表２の不良ブロック代替テーブルを用いて、その代替ブロックにデータの書き込みを行う。
【００２２】
そして、前記不良ブロック代替テーブルを用いたデータ書き込みによって、表３に示す「アドレス変換テーブル」を作成する。この表は、左側の論理ブロックアドレス（ＬＢＡ）に対して、矢印右側の物理ブロックアドレス（ＰＢＡ）にデータが書き込まれており、表３に記載のない他の論理ブロックアドレスに対しては、その論理ブロックアドレスとイコールの関係にある物理ブロックアドレスにデータが書き込まれていることを意味する。即ち、代替された物理ブロックとその論理ブロックのアドレスの関係だけを抽出したものである。このアドレス変換テーブルは、メインファームウエア１２０のＲＡＭ１２０２に展開することができる。
（表３）
＜アドレス変換テーブル＞
ＬＢＡ１    →    ＰＢＡ１０
ＬＢＡ６    →    ＰＢＡ１１
ＬＢＡ８    →    ＰＢＡ１２
【００２３】
ＮＡＮＤ型フラッシュメモリー１１に対する上記データの書き込みは、必ずしも本発明のＮＡＮＤ型フラッシュメモリーデバイス１において実行される必要はなく、他の装置でＮＡＮＤ型フラッシュメモリー１１に書き込んでおき、これをコントローラ１２と組み合わせて、ＮＡＮＤ型フラッシュメモリーデバイス１１を構成してもよい。
【００２４】
ところで、ＮＡＮＤ型フラッシュメモリーには、２値小ブロックと多値大ブロックの２種類が存在する。２値小ブロックは、例えば１ブロックが４ページで構成されている。この１ページは、５１２Ｂｙｔｅのメインデータと１６Ｂｙｔｅの冗長データ（ＥＣＣその他の情報）で構成されている。
【００２５】
多値大ブロックは、例えば１ブロックが１６ページで構成される。本実施例では、５１２Ｂｙｔｅのメインデータ＋１６Ｂｙｔｅの冗長データを１ＥＣＣセクター単位と定義し、１ページを４ＥＣＣセクター単位で構成する（図３参照）。
【００２６】
本発明は、２値小ブロックと多値大ブロックの両者に適応できる。
【００２７】
（データの読み出し）
システムに電源が投入されると、ＣＰＵ１２００は、表３のアドレス変換テーブルをＲＯＭ１２０１からＲＡＭ１２０２に展開する。ホストシステム２よりデータを読み出すべきアドレスがＡＤ０乃至ＡＤ１５を介して通知されると、ＣＰＵ１２００は、ホストシステム２から通知されたアドレスを論理ブロックアドレスとして、その対応する物理ブロックアドレスを割り出す。このとき、前記アドレス変換テーブルを用いる。
【００２８】
例えば、ホストシステムから読み出し指令を受けたアドレスが、ＬＢＡ１、ＬＢＡ６、ＬＢＡ８のいずれかに対するものであった場合、アドレス変換テーブルを参照し、対応する物理ブロックアドレスが、それぞれ、ＰＢＡ１０、ＰＢＡ１１、ＰＢＡ１２であることを割り出す。それ以外の論理ブロックアドレスに対する読み出し指令に対しては、論理ブロックアドレスと物理ブロックアドレスがイコールの関係（ＬＢＡｘ＝ＰＢＡｘ）であると看做してシーケンシャルリードを続行する。
【００２９】
データを読み出すべき物理ブロックアドレスが判明すると、ＣＰＵ１２００は、ハードウエアシーケンサ１２３に対し、実際にアクセスすべき物理ブロックのページアドレスをプログラムする。ハードウエアシーケンサ１２３は、このアドレスを基に、ＮＡＮＤ型フラッシュメモリー１１から１ページ分のデータを読み出すためのアドレス、制御信号、コマンドをＮＡＮＤ  Ｉ／Ｆから、ＮＡＮＤ型フラッシュメモリー１１のＮＡＮＤ  Ｉ／Ｆ（図示せず）に送る。ハードウエアシーケンサ１２３はＮＡＮＤ型フラッシュメモリー１１から１ページ分のデータを読み出す。この場合のアクセス、即ちデータの読み出しは、通常のＮＡＮＤ型フラッシュメモリーで実行されるものと同じである。
【００３０】
多値大ブロックの場合は、１ページのデータが上述の通り４ＥＣＣセクター単位構成となっているため、４ＥＣＣセクター単位分のデータ（５２８Ｂｙｔｅ×４）が読み出されることになる。このときＮＡＮＤ型フラッシュメモリー１１は、Ｂｙｔｅ単位で読み出しアドレスを指定することができるので、１ＥＣＣセクター単位ずつ計４回に分けてデータを読み出すことができる。これは後述するエラーチェックを行う際有効である。尚、データは、ＮＡＮＤ型フラッシュメモリー１１のＩ／Ｏ端子（Ｉ／Ｏ０からＩ／Ｏ７：図示せず）から、８ビットずつ読み出される。
【００３１】
データの読み出しにおいて、表１で述べたアドレス管理テーブルを用いることはもとより可能であるが、上記の通り、アドレス変換テーブルを用いれば、アドレス管理テーブルを用いる場合のように、ホストシステムよりアドレス指定された際、全ての論理ブロックアドレスと物理ブロックアドレスの対応をいちいち確認せずに済むので効率がよい。即ちデータの高速読み出しが可能である。また、不良ブロックを飛ばして次の良ブロックにデータを書き込むことによって生じる論理ブロックアドレスと物理ブロックアドレスのずれ、さらに当該ずれにより生じる読み出し遅延を防止できる。また、製造者によって提供されている不良ブロック代替テーブルを有効に活用することができる。
【００３２】
尚、ＣＰＵ１２００は、ＲＯＭ１２０１に格納している駆動用プログラムを基に、本ＮＡＮＤ型フラッシュメモリーデバイス１を統括的に制御するものである。またＲＡＭ１２０２は、前述の通り、ＣＰＵ１２００の作業領域として使用される。
【００３３】
ハードウエアシーケンサ１２３によって読み出された１ＥＣＣセクター単位のデータ５２ｂＢｙｔｅは、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ部１２４に送出される。多値大ブロックの場合は、１ページが４ＥＣＣセクター単位構成となっているため、計４回送出されることになる。そしてＥＣＣ  ＥＮＤＥＣのＤＥＣＯＤＥＲによりメインデータ（５１２Ｂｙｔｅ）に誤りがないか確認される（エラーチェック）。多値大ブロックの場合は、第１番目のＥＣＣセクター単位のメインデータのエラーチェックが終了し、次のＥＣＣセクター単位のメインデータのエラーチェックを開始できるようになってから、第２番目のセクターデータ単位のデータ（５２８Ｂｙｔｅ）がＮＡＮＤ型フラッシュメモリー１１から読み出され、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲに送出される。
【００３４】
そしてメインデータ５１２Ｂｙｔｅは、ハードウエアシーケンサ１２３に戻され、バッファマネージャー１２２を介してＲＡＭ１２５に格納される。ＲＡＭ１２５は、１ページのメインデータ分の記憶容量を有している。２値小ブロックの場合は５１２Ｂｙｔｅであり、多値大ブロックの場合はその４倍、即ち２０４８Ｂｙｔｅである。尚、バッファマネージャー１２２は図示しないバッファメモリーを有し、前記読み出しデータ格納用ＲＡＭに該バッファメモリーを介して格納され、若しくは前記読み出しデータ格納用ＲＡＭから該バッファメモリーを介して読み出されるデータの緩衝制御を行う。
【００３５】
ハードウエアシーケンサ１２３からバッファマネージャー１２２に対しては、ハードウエアシーケンサ１２３に読み出された８ビットのデータを２回シリアルにして、１６ビットのデータが順次転送される。バッファマネージャー１２２からＲＡＭ１２５に対しても、１６ビットのデータが送出される。
【００３６】
途中、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４のＤＥＣＯＲＤＥＲによるチェックの結果、もしデータエラー（ＥＣＣエラー）が発見された場合は、その旨がハードウエアシーケンサ１２３に通知される。このエラー検出は、ハードウエアシーケンサ１２３のＭＰＵ（ファームウエア１２３０内／図示せず）が行ってもよいし、メインファームウエア１２０のＣＰＵ１２００が行ってもよい。ＭＰＵで行う場合は、エラーチェックの高速化を図ることができる。エラーチェック中、ハードウエアシーケンサ１２３はＮＡＮＤ型フラッシュメモリー１１からのデータ読み出しを停止する。
【００３７】
データエラーがあると、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４のＣＯＲＲＥＣＴＯＲは、データを訂正し、訂正データをバッファマネージャー１２２に送出する。そしてバッファマネージャー１２２は、訂正データをＲＡＭ１２５に格納するとともに（先に格納したデータの上書き）、当該データに、ホストシステム２に対する出力がＯＫであることを示すフラグを設定する。
【００３８】
一方データエラーがないことが判明した場合は、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４からハードウエアシーケンサ１２３にその旨通知され、ハードウエアシーケンサ１２３は、これを受けてＤａｔａ  ＯＫの通知をバッファマネージャー１２２に対して行うとともに、ホストシステム２に対する出力がＯＫであることを示すフラグを設定する。
【００３９】
このホストシステム２に対する出力がＯＫであることを示すフラグは、２値小ブロックの場合も多値大ブロックの場合も、１ＥＣＣセクター単位（正確にはそのメインデータ単位）で設定される。
【００４０】
データ出力ＯＫのフラグが設定され、ＲＡＭ１２５に格納したデータがホストシステム２に出力可能になると、バッファマネージャー１２２はシーケンシャルＲＯＭインターフェース１２１に対しＲＥＡＤＹ信号を送る。
【００４１】
以下、図２のタイミングダイヤグラムを用いて、ホストシステム２に対するデータの出力について説明する。
【００４２】
メインファームウエア１２０は、シーケンシャルＲＯＭインターフェース１２１のＷａｉｔ出力端子に対し、ＡＬＥＬ若しくはＡＬＥＨの立下り時点でＷａｉｔ信号をＨｉｇｈで出力し、シーケンシャルＲＯＭインターフェース１２１に前記ＲＥＡＤＹ信号の入力があると、これをＬｏｗにする。
【００４３】
Ｗａｉｔ信号出力端子はホストシステム２のＷａｉｔ信号入力端子（図示せず）に繋がっており、且つこのＷａｉｔ信号入力端子にＷａｉｔが挿入されている間、ホストシステム２はデバイス１に対するデータの読み出し信号（ＲＤ信号）の送出を保留し、Ｗａｉｔが解除されるのを待つ。そして、Ｗａｉｔ信号がＬｏｗになった段階で、ホストシステム２はＲＡＭ１２５に格納されているデータの出力の指示、即ちＲＤ信号をシーケンシャルＲＯＭインターフェース１２１のＲＤ入力端子に出力する。
【００４４】
コントローラ１２は、これを受けて、シーケンシャルＲＯＭインターフェース１２１のＡＤ端子（ＡＤ０〜ＡＤ１５）からＲＡＭ１２５に格納されているデータを出力する。このとき、バッファマネージャー１２２は、ＲＡＭ１２５からシーケンシャルＲＯＭインターフェース１２１に転送されるデータの緩衝を制御する。
【００４５】
尚、本実施例において、ＲＤ信号は、取り込むデータのＢｙｔｅ数、即ち、２値小ブロックの場合は５１２回のトグル動作（ＬｏｗとＨｉｇｈの繰り返し）により送出し、この５１２回のＲＤ信号に従って、１Ｂｙｔｅずつ計５１２Ｂｙｔｅのデータがホストシステム２に取り込まれる。
【００４６】
多値大ブロックの場合は、ＲＤ信号を２０４８回送出し、計２０４８Ｂｙｔｅのデータがホストシステム２に取り込まれる。この取り込まれるデータは、ＲＡＭ１２５に４分割して格納されていた１ページ分のメインデータ（５１２×４）がＦＩＦＯ方式で１６ビットずつ出力されるものである。
【００４７】
Ｗａｉｔの挿入により、ＮＡＮＤ型フラッシュシュメモリ特有のエラー訂正によって、読み出したデータをホストシステム２へ出力可能になるまでの時間にばらつきがあっても、ホストシステム２はＲＡＭ１２５から効率よくデータを取り込むことができる。
【００４８】
尚、前記入力したＷａｉｔ信号を、ホストシステム２のＣＰＵに伝達し、ＲＤ信号の管理を該ＣＰＵ自体が行ってもよいし、あるいは、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）方式により、ＣＰＵを介さずにアクセス対象からデータを読み出してもよい。後者の場合、ＣＰＵに付随するＤＭＡコントローラなどに前記Ｗａｉｔ信号を伝達し、該ＤＭＡコントローラがホストシステム２の他の入出力モジュールを直接コントロールして、ＮＡＮＤ型フラッシュメモリーデバイス１からデータを読み出す構成とすればよい。こうすれば、データの転送速度を向上させ、ＣＰＵの負担を減らすことができる。
【００４９】
ホストシステム２は、当該アドレスで指示したデータの取り込みを完了すると、次に読み出すべきアドレスを制御信号とともにＮＡＮＤ型フラッシュメモリーデバイス１のシーケンシャルＲＯＭインターフェース１２１に通知し、コントローラ１２はこれを受けて当該アドレスに対応するデータの読み出しを同様に実行し、これをホストシステム２へ出力する。
【００５０】
ホストシステム２は、ＮＡＮＤ型フラッシュメモリー１１に記憶している全データの読み出しが完了するまで、以上の処理を繰り返し行うが、先読み処理をおこなってもよい。即ち、ホストシステム２より通知された１のアドレス分のデータをＮＡＮＤ型フラッシュメモリー１１から読み出してＲＡＭ１２５に格納した後、ホストシステムより次のアドレスが通知される前にこれを見越してデータの読み出しを実行してもよい。先読み処理は、ホストシステム２から送出されたアドレスをラッチして置き、これをコントローラ１２内部でインクリメント処理して実行することができる。
【００５１】
例えば、ＲＡＭ１２５をＮＡＮＤ型フラッシュメモリー１１のメインデータ２ページ分以上の容量とし、先読みしたデータをＲＡＭ１２５に格納しておけば、そのアドレスが通知された段階で既に出力できる状態になっていれば、ホストシステム２にＷａｉｔを掛けることなく、ＲＤ信号の入力に従い即出力する。このようにすれば、エラー訂正によりデータの出力に遅延が生じることがあっても、トータル的に出力時間を短縮することができる。
【００５２】
尚、ＮＡＮＤ型フラッシュメモリー１１とコントローラ１２は、一つのＬＳＩパッケージに収納して構成してもよいし、それぞれ別個のモジュールで構成してもよい。
【００５３】
又、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ部１２４のＥＣＣ  ＥＮＤＥＣは、ＥＣＣ  ＤＥＣＯＲＤＥＲの他、ＥＣＣ  ＥＮＣＯＲＤＥＲを含むが、これはデータの書き込み時に冗長領域にＥＣＣを書き込むためのものである。
【００５４】
本発明の効果は以下の通りである。
１．本発明のホストシステムによれば、ホストシステムよりＮＡＮＤ型フラッシュメモリーにアクセスするにあたり、ホストシステムにシーケンシャルＲＯＭインターフェースしか具備されていない場合であっても、シーケンシャルＲＯＭインターフェースにＷａｉｔ入力部を設けることによりＮＡＮＤ型フラッシュメモリーから確実にデータを読み出すことができる。また従来のマスクＲＯＭに対するシーケンシャルアクセスにも同様に対応できる（上位互換）。これにより、ホストシステム製造者は、既存の資産を有効活用することができる。
【００５５】
２．本発明のＮＡＮＤフラッシュデメモリバイスによれば、ホストシステムの前記改良されたシーケンシャルＲＯＭインターフェースを介して、ＮＡＮＤ型フラッシュメモリーからデータをシーケンシャルに読み出してこれをホストシステムに出力することができる。またこの場合、ＮＡＮＤフラッシュメモリーの不良ブロックや、データエラーに対応する手段を設けたので、ホストシステムに不良ブロックに対応するための手段を設ける必要がなく、また、ホストシステムに取り込まれたデータにはエラーがなく、従ってＮＡＮＤ型フラッシュメモリーをシーケンシャルＲＯＭ（マスクＲＯＭ）互換とすることができる。
【図面の簡単な説明】
【００５６】
【図１】本発明のＮＡＮＤ型フラッシュメモリーデバイスのブロック図である。
【図２】本発明のＮＡＮＤ型フラッシュメモリーデバイスのタイミングダイヤグラムである。
【図３】多値大ブロック１ページのデータ構成例（表１）アドレス管理テーブルの内容を表す表である。（表２）不良ブロック代替テーブルの内容を表す表である。（表３）アドレス変換テーブルの内容を表す表である。
【符号の説明】
【００５７】
１  本発明のＮＡＮＤ型フラッシュメモリーデバイス
２  ホストシステム
１１  ＮＡＮＤ型フラシュメモリ
１２  コントローラ
２１  シーケンシャルＲＯＭインターフェース（ホストシステム側）
１２０  メインファームウエア
１２１  シーケンシャルＲＯＭ
インターフェース（デバイス側）
１２２  バッファマネージャー
１２３  ハードウエアシーケンサ
１２４  ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ
１２５  ＲＡＭ
【図１】
2007048090.tif 000003
【図２】
2007048090.tif 000004
【図３】
2007048090.tif 000005
【手続補正書】
【提出日】平成17年10月26日(2005.10.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＮＡＮＤ型フラッシュメモリーと、ホストシステムのシーケンシャルＲＯＭインターフェースからのシーケンシャル読出し指令に対応して前記メモリーからデータの読み出しを行ってこれを前記ホストシステムのシーケンシャルＲＯＭインターフェースに出力するコントローラとを具備するＮＡＮＤ型フラッシュメモリーデバイスであって、
該コントローラは、
1）ホストシステムからアドレスと制御信号を入力するとともに、データを前記ホストシステムへ出力するシーケンシャルＲＯＭインターフェースと、
2) ＮＡＮＤ型フラッシュメモリーと通信を行うＮＡＮＤインターフェースを含み、該ＮＡＮＤインターフェースを介してＮＡＮＤ型フラッシュメモリーからデータを読み出すためのアドレス、コマンド及び制御信号を出力するハードウエアシーケンサと、
3）ホストシステムから読み出し指定されたアドレスからＮＡＮＤ型フラッシュメモリーの物理ブロックアドレスを割り出してＮＡＮＤ型フラッシュメモリーの実際にアクセスすべきアドレスを前記ハードウエアシーケンサにプログラムするとともに、該コントローラを統括的に制御するメインファームウエアと、
4)ホストシステムに出力するためのデータを一時格納する読み出しデータ格納用ＲＡＭと、
5）バッファメモリーを有し、前記読み出しデータ格納用ＲＡＭに該バッファメモリーを介して格納され、若しくは前記読み出しデータ格納用ＲＡＭから該バッファメモリーを介して読み出されるデータの緩衝制御を行うバッファマネージャーと、
6)ＮＡＮＤ型フラッシュメモリーから読み出されたデータにエラーがないか判定するＥＣＣ  ＤＥＣＯＲＤＥＲと、
7)前記ＥＣＣ  ＤＥＣＯＲＤＥＲによりデータにエラーが発見された場合に、当該エラーを訂正するＣＯＲＲＥＣＴＯＲと、
を有し、さらに、
8)前記シーケンシャルＲＯＭインターフェースは、前記データ格納用ＲＡＭに格納しているデータが前記ホストシステムに出力可能になるまでホストシステムにＷａｉｔを挿入するＷａｉｔ出力部を具備し、該Ｗａｉｔの挿入をＡＬＥＨ若しくはＡＬＥＬの立下りを基点として実行するとともに、Ｗａｉｔの解除を、前記バッファマーネージーが前記データ格納用ＲＡＭにホストシステム送出用のデータの準備できたか否かを管理してこれを実行することを特徴とするシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項２】
ＮＡＮＤ型フラッシュメモリーに対するデータの書き込みは、論理ブロックアドレスと物理ブロックアドレスがイコールの関係になるように順次実行され、所定の論理ブロックアドレスに対応するアドレスの物理ブロックが不良ブロックである場合は予備の良ブロックで代替して書き込みが実行されるものであることを特徴とする請求項１記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項３】
前記物理ブロックを代替した論理ブロックアドレスと当該代替物理ブロックのアドレスの関係を、アドレス変換テーブルとして当該フラッシュメモリーに記憶しておき、フラッシュメモリーからのデータの読み出しは、前記アドレス変換テーブルを用いて実行されることを特徴とする請求項２記載のＮＡＮＤ型フラッシュメモリーデバイス。
【請求項４】
ホストシステムから入力したアドレスに対応するデータの読み出しを終了後、次回のアドレスの入力前に、該アドレスの入力があるものと見越して次のデータの読出しを実行することを特徴とする請求項３記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項５】
ＮＡＮＤ型フラッシュメモリーとコントローラは、一つのＬＳＩパッケージに収納されてなることを特徴とする請求項１記載のシーケンシャルＲＯＭインターフェース対応ＮＡＮＤ型フラッシュメモリーデバイス。
【請求項６】
ホストシステムのシーケンシャルＲＯＭインターフェースからのシーケンシャル読出し指令に対応してＮＡＮＤ型フラッシュメモリーからデータの読み出しを行ってこれをホストシステムの前記シーケンシャルＲＯＭインターフェースに出力するコントローラであって、
該コントローラは、
1）ホストシステムからアドレスと制御信号を入力するとともに、データを前記ホストシステムへ出力するシーケンシャルＲＯＭインターフェースと、
2) ＮＡＮＤ型フラッシュメモリーと通信を行うＮＡＮＤインターフェースを含み、該ＮＡＮＤインターフェースを介してＮＡＮＤ型フラッシュメモリーからデータを読み出すためのアドレス、コマンド及び制御信号を出力するハードウエアシーケンサと、
3）ホストシステムから読み出し指定されたアドレスからＮＡＮＤ型フラッシュメモリーの物理ブロックアドレスを割り出してＮＡＮＤ型フラッシュメモリーの実際にアクセスすべきアドレスを前記ハードウエアシーケンサにプログラムするとともに、該コントローラを統括的に制御するメインファームウエアと、
4)ホストシステムに出力するためのデータを一時格納する読み出しデータ格納用ＲＡＭと、
5）バッファメモリーを有し、前記読み出しデータ格納用ＲＡＭに該バッファメモリーを介して格納され、若しくは前記読み出しデータ格納用ＲＡＭから該バッファメモリーを介して読み出されるデータの緩衝制御を行うバッファマネージャーと、
6)ＮＡＮＤ型フラッシュメモリーから読み出されたデータにエラーがないか判定するＥＣＣ  ＤＥＣＯＲＤＥＲと、
7)前記ＥＣＣ  ＤＥＣＯＲＤＥＲによりデータにエラーが発見された場合に、当該エラーを訂正するＣＯＲＲＥＣＴＯＲと、
を有し、さらに、
8)前記シーケンシャルＲＯＭインターフェースは、前記データ格納用ＲＡＭに格納しているデータが前記ホストシステムに出力可能になるまでホストシステムにＷａｉｔを挿入するＷａｉｔ出力部を具備し、該Ｗａｉｔの挿入をＡＬＥＨ若しくはＡＬＥＬの立下りを基点として実行するとともに、Ｗａｉｔの解除を、前記バッファマーネージーが前記データ格納用ＲＡＭにホストシステム送出用のデータの準備できたか否かを管理してこれを実行することを特徴とするコントローラ。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ホストシステムのシーケンシャルＲＯＭインターフェースからアクセス可能なＮＡＮＤ型フラッシュメモリーデバイス及びそのコントローラに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
本発明は、上記問題点に鑑みてなされたもので、その目的とするところは、シーケンシャルＲＯＭインターフェースを具備するホストシステムからＮＡＮＤ型フラッシュメモリーにアクセス可能な改良されたＮＡＮＤ型フラッシュメモリーデバイス及びそのコントローラを提供することにある。特に、ＮＡＮＤ型フラッシュメモリーをシーケンシャルＲＯＭ互換にするにあたり、不良ブロックや不良ビットのない完全なメモリーとしてホストシステムが扱えるようにするＮＡＮＤ型フラッシュメモリー及びそのコントローラを提供することにある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記目的を達成するため、本発明のＮＡＮＤフラッシュメモリーデバイスは、請求項１乃至５のいずれか1項記載の通り構成される。さらに本発明のＮＡＮＤ型フラッシュメモリーデバイスのコントローラは請求項６記載の通り構成される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】