(57)【要約】【課題】外部から書き込みを行うデータサイズによって、不揮発メモリの書き込み先を切り替えるとき、書き込み先が決定された後の書き込みデータの転送に要する時間を削減し、高速な書き込みを可能な不揮発性メモリの書き込み方法を提供する。【解決手段】  独立して書き込み可能な複数の物理ページを有する不揮発性メモリ（１０４；１０６）にデータの書き込みを行う書き込み方法であって、不揮発性メモリ（１０４：１０６；１０９）に書き込みデータを転送するデータ転送ステップ（Ｓ２０４）と、データ転送ステップ（Ｓ２０４）の実行の後に不揮発性メモリ（１０４；１０６）に対して書き込み先の物理ページのアドレスを指定する第１の書き込みアドレス指定ステップ（Ｓ２０７）とを備える。【選択図】図２
2008009699.tif 000002
【特許請求の範囲】
【請求項１】
独立して書き込み可能な複数の物理ページを有する不揮発性メモリにデータの書き込みを行う書き込み方法であって、
前記不揮発性メモリに書き込みデータを転送するデータ転送ステップと、
前記データ転送ステップの実行の後に前記不揮発性メモリに対して書き込み先の物理ページのアドレスを指定する第１の書き込みアドレス指定ステップとを備える不揮発性記憶メモリの書き込み方法。
【請求項２】
前記データ転送ステップの実行の前に、前記不揮発性メモリに対して書き込み先の物理ページのアドレスを指定する第２の書き込みアドレス指定ステップをさらに備え、
前記第１の書き込みアドレス指定ステップは前記第２の書き込みアドレス指定ステップが指定したアドレスを変更指定することを特徴とする請求項１に記載の不揮発性記憶メモリの書き込み方法。
【請求項３】
前記書き込みデータのサイズに応じて、前記第１の書き込みアドレス指定ステップの実行を抑制する書き込みアドレス変更抑制ステップをさらに備える請求項２に記載の不揮発性記憶メモリの書き込み方法。
【請求項４】
前記書き込みアドレス変更抑制ステップは、前記書き込みデータサイズが前記不揮発性メモリの書き込み単位よりも小さいときには前記第１の書き込みアドレス指定ステップの実行を抑制しないことを特徴とする請求項３に記載の不揮発性記憶メモリの書き込み方法。
【請求項５】
前記第１の書き込みアドレス指定ステップは、前記書き込みデータの供給源からの供給される停止コマンドに応答して、実行されることを特徴とする請求項１に記載の不揮発性記憶メモリの書き込み方法。
【請求項６】
独立して書き込み可能な複数の物理ページを有する不揮発性メモリであって、外部から前記不揮発性メモリに書き込みデータを転送するデータ転送ステップの後に、前記外部から前記不揮発性メモリに対して書き込み先の物理ページのアドレスを指定する書き込みアドレス指定ステップを実行することにより前記物例ページ単位での書き込みを行うことを特徴とする不揮発性メモリ。
【請求項７】
独立して書き込み可能な複数の物理ページを有する不揮発性メモリと、
当該不揮発性メモリへのデータの書き込みを制御するコントローラとを備える不揮発性記憶装置であって、
前記コントローラは、前記不揮発性メモリに書き込みデータを転送した後に、当該不揮発性メモリに対して書き込み先の物理ページのアドレスを指定することを特徴とする不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを用いた記憶装置における不揮発性メモリへの書き込み方法に関する。
【背景技術】
【０００２】
近年、不揮発性メモリであるフラッシュメモリを搭載したメモリカードはデジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。そしてメモリカードは、その記憶容量の増加に伴い、小容量で足りるデータファイルや静止画等の静的データの記録から、より大容量を必要とする動画等の動的データの記録へと用途が広がっている。このような用途の変化に従い、フラッシュメモリを搭載した記録媒体に対するデータの書き込み方法に関して種々の考案がなされている。
【０００３】
大容量のメモリカードは大量のデータを保存でき、種々のデータを格納できることから、その管理情報も多様化している。例えば、管理情報として、ファイルアクセスを高速化するためのメタデータ管理ファイルや、データ種別毎に管理した仮想ディレクトリ構造のファイルが採用されている。また、従来のＦＡＴシステムとは異なるデータベース型のファイルシステム等も提案されている。
【０００４】
これらはいずれも管理の容易化を目的としている。このような多様な管理情報それぞれのサイズの小ささは、結果として、セクタ単位のデータ書き込みの頻度が増加する要因となる。
【０００５】
大容量のメモリカードには大容量のフラッシュメモリが必要とされる。フラッシュメモリは、一般に容量の増加に伴い書き込み単位である物理ページの容量が増加する。従来は１物理ページ＝１セクタで書き込み可能であったが、現在は１物理ページ＝複数セクタとなり、現在ではフラッシュメモリは１セクタ単位のデータの書き込みに適さない状態である。
【０００６】
つまり、メモリカードの大容量化に伴い、それに搭載されるフラッシュメモリの書き込み単位が大きくなり複数セクタ単位でまとめてデータを書き込む必要がある。しかしながら、メモリカードの外部のホストは依然としてセクタ単位でデータを取り扱う。結果として、メモリカードの外部のホストが取り扱うデータ単位であるセクタとメモリカード内部のフラッシュメモリにデータを書き込める単位の物理ページとの乖離によってメモリカード内部における処理のオーバヘッドが発生して、メモリカードの書き込み処理負荷が増大し、しいては書き込み速度が低下する。
【０００７】
上述の問題を解決するために、書き込み単位未満のデータと書き込み単位以上のデータをフラッシュメモリにおける異なる物理位置に書き込むことで性能を向上させる方法が、例えば特許文献１に提案されている。特許文献１には、ブロック、バッファ（通常ブロック）、およびスペシャルブロック（一時ブロック）の模式図を用いて、フラッシュメモリの各種ブロックに対するデータの書き込みの考え方が説明されている。しかしながら、特許文献１にはメモリカードの構成、メモリカードの内部のコントローラの制御方法、内部コントローラとフラッシュメモリとのインターフェースの動作シーケンス、およびフラッシュ制御回路の遷移状態については具体的に記載されていない。よって、特許文献１に記載されている各種ブロックに対するデータの書き込みの考え方に基づいて推定される、特許文献１におけるメモリカードの構成、メモリカードのコントローラの制御動作、内部コントローラとフラッシュメモリとのインターフェースの動作シーケンス、およびフラッシュ制御回路の遷移状態を図９、図１０、図１１、および図１２に示す。
【０００８】
図９に示すように、上述のメモリカード２０１は、コントローラ２０３と不揮発性の記憶素子であるフラッシュメモリ２０４とを含む。コントローラ２０３は、外部のホスト１０２に接続されて、当該ホスト１０２からのデータの書き込み／読み出しの要求を受けて、フラッシュメモリ２０４に対するデータの書込みおよび読み出しを制御する。
【０００９】
コントローラ２０３は、内部にピンポンバッファ１１１を備える。ピンポンバッファ１１１は、揮発性のメモリで構成されて、ホスト１０２からメモリカード２０１への書き込まれるデータをフラッシュメモリ２０４に転送する前にデータを一時的に保持すると共に、フラッシュメモリ２０４からホスト１０２への読み出されるデータを一時的に保持する。
【００１０】
フラッシュメモリ２０４は、フラッシュ制御回路２０５、メモリセルアレイ１０６、センスアンプ１０７、カラムラッチ１０８、ページバッファ１０９、およびロウデコーダー１１０を含む。フラッシュ制御回路２０５は、フラッシュメモリ２０４と外部機器（本例においては、コントローラ２０３）とのインターフェースを制御すると共に、フラッシュメモリ２０４の内部全体の制御を行う。
【００１１】
メモリセルアレイ１０６は、実際に不揮発のデータが記憶されるメモリセルを複数個備えている。そして、個々のメモリセルは複数本のビット線（図９において縦方向に延在）と複数本のワード線（図９において横方向に延在）の交点に配置されるアレイ構造に構成されている。物理ページがメモリセルアレイ１０６の最小の書き込み・読み出しの単位であり、複数の物理ページでメモリセルアレイ１０６の最小の消去単位である物理ブロックが構成され、複数の物理ブロックでメモリセルアレイ１０６が構成されている。
【００１２】
センスアンプ１０７は、メモリセルアレイ１０６から物理ページ単位で個々のデータを読み出す際に個々のメモリセルからビット線への出力を増幅させる。カラムラッチ１０８は物理ページ単位でメモリセルアレイ１０６からセンスアンプ１０７に読み出されたデータを一時保持する、またはメモリセルアレイ１０６に物理ページ単位でデータを書き込む際に書き込みデータを保持する、物理ページ単位のデータラッチである。
【００１３】
ページバッファ１０９は、揮発性のメモリで構成されて、外部から書き込まれるデータ、またはフラッシュメモリ２０４から読み出されるデータを一時的に保持する。
【００１４】
次に、図１０に示すフローチャートを参照して、コントローラ２０３により実行されるフラッシュメモリ２０４へのデータの書き込み制御について説明する。ホスト１０２からメモリカード２０１にデータ書き込みコマンドＣｗ（図１１）が書き込み先のアドレス情報と共に発行された時点で、コントローラ２０３による書き込み制御動作が開始する。
【００１５】
先ず、ステップＳ６０１において、フラッシュメモリ２０４に対して書き込みのコマンドＣｗが発行される。これによって、フラッシュメモリ２０４に対するデータの書き込みが開始される。
【００１６】
先ず、ステップＳ６０２において、ホスト１０２からのデータがコントローラ２０３の内部のピンポンバッファ１１１に転送されているか否かが判断される。転送されていれば、Ｙｅｓと判断されて制御はステップＳ６０３に進む。
【００１７】
ステップＳ６０３においては、フラッシュメモリ２０４の書き込み単位分のデータがピンポンバッファ１１１にあるか否かが判断される。ピンポンバッファ１１１にフラッシュメモリ２０４の書き込み単位分のデータがなければ、Ｎｏと判断されて制御は、ステップＳ６０２に戻る。一方、ピンポンバッファ１１１に書き込み単位分のデータがあれば、つまりホスト１０２からフラッシュメモリ２０４での書き込み単位のデータの転送があった場合には、Ｙｅｓと判断されて制御は、ステップＳ６０５に進む。
【００１８】
ステップＳ６０５において、書き込み単位分のデータを書き込む通常ブロックの物理ページのアドレスが指定される。なお、フラッシュメモリ２０４の書き込み単位未満の小セクタの書き込みでないことから、本ステップにおいては物理ページを決定できる。そして、制御はステップＳ６０８へ進む。
【００１９】
一方、上述のステップＳ６０２でＮｏ、つまりホストからピンポンバッファ１１１にデータが転送されていないと判断される場合に、制御はステップＳ６０４に進む。
【００２０】
ステップＳ６０４においては、ホストからのデータの転送が停止しているか否かが判断される。ホストからの停止コマンドＣｓ（図１１）を受領していない場合はＮｏ、つまり転送が停止していないと判断される。そして、制御は上述のステップＳ６０２に戻る。一方、Ｙｅｓ、つまりデータ転送が停止していると判断される場合には、制御は次のステップＳ６０６に進む。
【００２１】
ステップＳ６０６にいて、ホスト１０２からメモリカード２０１への書き込みデータの転送があったか否かが判断される。メモリカード２０１に書き込むべきデータが無い場合には、Ｎｏと判断されて処理が終了する。一方、つまりメモリカード２０１に書き込むべきデータがある場合にはＹｅｓと判断されて、制御は次のステップＳ６０７に進む。なお、このデータは書き込み単位未満であることは、上述のステップＳ６０２および／またはＳ６０３を経ることによって確認されている。
【００２２】
ステップＳ６０７においては、上述のステップＳ６０５におけるのと同様に、但しフラッシュメモリ２０４の書き込み単位未満のデータの書き込み先の物理ページにするために、通常ブロックではなく一時ブロックの物理ページのアドレスＡＤＤが指定される。そして、制御はステップＳ６０８に進む。
【００２３】
ステップＳ６０８においては、ピンポンバッファ１１１にあるホスト１０２から転送された書き込みデータが、フラッシュメモリ２０４のページバッファ１０９に転送される（ＣＯＭ（ｄｏｎｅ））。そして、制御は次のステップＳ６０９に進む。
【００２４】
ステップＳ６０９においては、ページバッファ１０９にある書き込み単位データおよび書き込み単位未満データが、上述のステップＳ６０５およびＳ６０７においてそれぞれ書き込み先として指定された物理ページに書き込まれる。そして、制御は次のステップＳ６１０に進む。
【００２５】
ステップＳ６１０においては、ホスト１０２からメモリカード２０１への書き込みデータの転送が停止したか否かが判断される。Ｎｏ、つまりデータ転送が継続すると判断される場合、制御はステップＳ６０１に戻り、上述の処理を繰り返す。一方、Ｙｅｓ、つまりデータ転送が停止されたと判断される場合、制御は終了される。
【００２６】
次に、上述のコントローラ２０３による処理を機能的に説明する。ホスト１０２からメモリカード２０１にデータ書き込みのコマンドＣｗが書き込み先のアドレス情報と共に発行されると、コントローラ２０３はステップＳ６０１でフラッシュメモリ２０４に書き込みのコマンドを発行する。次に、次にコントローラ２０３はホスト１０２からメモリカード２０１へのデータの転送か、ホスト１０２からメモリカード２０１へのデータの転送停止コマンドＣｓを待つ。
【００２７】
具体的にはステップＳ６０２でコントローラ２０３はホスト１０２からのデータがコントローラ２０３の内部のピンポンバッファ１１１に転送されているか否かを判断し、転送されていればステップＳ６０３に進み、書き込み単位分のデータがあるかを判断し、フラッシュメモリ２０４の書き込み単位分のデータがなければステップＳ６０２に戻る。
【００２８】
ホスト１０２からデータの転送がなされていない場合には、ステップＳ６０４に進みデータの転送が停止されていないかを確認する。データの転送の停止がなされていなければ再度ステップＳ６０２へ戻りホスト１０２からのデータの転送を待つ。
【００２９】
ホスト１０２からフラッシュメモリ２０４の書き込み単位のデータの転送があった場合には、ステップＳ６０３の判定に基づいてステップＳ６０５へ進む。コントローラ２０３はフラッシュメモリ２０４への書き込み単位のデータをピンポンバッファ１１１に準備できているので（フラッシュメモリ２０４の書き込み単位未満の小セクタの書き込みでないことから、物理ページを決定できるので）、ステップＳ６０５ではコントローラ２０３はフラッシュメモリ２０４に物理ページのアドレスを指定し、ステップＳ６０８へ進む。
【００３０】
ステップＳ６０４において、ホスト１０２からのデータの転送が停止されたと判定した場合は、コントローラ２０３はステップＳ６０６へと進みホスト１０２からメモリカード２０１への書き込みデータがあったのかどうかを判定する。メモリカード２０１に書き込むべきデータが無い場合には処理を終了する。書き込む必要のあるデータがある場合には、そのデータはフラッシュメモリ２０４の書き込み単位未満のデータであるので、書き込み先の物理ページを、フラッシュメモリ２０４の書き込み単位未満のデータを書き込むための物理ページにするために、ステップＳ６０７でコントローラ２０３はフラッシュメモリ２０４に物理ページのアドレスを指定し、ステップＳ６０８へ進む。
【００３１】
ステップＳ６０５またはステップＳ６０７で書き込み先となる物理ページを指定した後、ステップＳ６０８ではピンポンバッファ１１１にあるホスト１０２からの書き込みデータをフラッシュメモリ２０４に転送する。そしてステップＳ６０９へ進みフラッシュメモリ２０４に書き込みコマンドを発行する。ステップＳ６０９の実行後はステップＳ６１０でホスト１０２からのデータの転送が停止されたとコントローラ２０３が判定した場合には処理を終了する。まだ、転送継続すると判定した場合にはステップＳ６０１へ戻る。
【００３２】
次に、図１１のシーケンスチャートを参照して、上述のフローチャートにおけるステップと対比して、書き込み単位未満のデータを通常ブロックに書き込む場合の、コントローラ２０３からフラッシュメモリ２０４へのコマンド発行およびデータ転送に関するシーケンスについて説明する。なお、図１１において、上段よりホスト１０２から出力されるコマンドを示すコマンドラインＬ１ｃ、ホスト１０２からメモリカード２０１に転送される書き込みデータを示すデータラインＬ２ｃ、およびコントローラ２０３からフラッシュメモリ２０４への出力を示す出力ラインＬ３ｃが模式的に表現されている。
【００３３】
時刻ｔ７０１に、ホスト１０２はメモリカード２０１に書き込みコマンドＣｗを発行する。これは、上述のフローチャートにおける処理開始に相当する。
【００３４】
時刻ｔ７０２に、コントローラ２０３は書き込みコマンドＣｗに応答して、フラッシュメモリ２０４に対して書き込みの開始を示すコマンドＣＯＭ（Ｓｔａｒｔ）を発行する。これは上述のステップＳ６０１における処理に相当する。
【００３５】
その後（時刻ｔ７０２〜ｔ７０３の間）、コントローラ２０３は、ホスト１０２からピンポンバッファ１１１へのフラッシュメモリ２０４の書き込み単位のデータ転送を待つ。これは上述のステップＳ６０２、Ｓ６０３、およびＳ６０４の判定に相当する。
【００３６】
時刻ｔ７０３に、ホスト１０２はメモリカード２０１に停止コマンドＣｓを発行するが、それを受けてコントローラ２０３はステップＳ６０４で転送停止と判定し、続いてステップＳ６０６で書き込みデータ有りの判定を行う。しかしながら時刻ｔ７０２から、ホスト１０２からの転送停止コマンドＣｓが発行される時刻ｔ７０３までの間にホスト１０２からメモリカード２０１にデータが転送されていても、フラッシュメモリ２０４の書き込み単位未満のデータであればコントローラ２０３はなんら処理を行わない。
【００３７】
時刻ｔ７０４に、コントローラ２０３はフラッシュメモリ２０４に対して書き込み先の物理ページのアドレスＡＤＤを指定する。これは上述のステップＳ６０７における処理に相当する。続いてステップＳ６０７の処理としてホスト１０２からの書き込みデータをピンポンバッファ１１１からフラッシュメモリ２０４に転送する。
【００３８】
時刻ｔ７０５に、ステップＳ６０８の処理に相当するフラッシュメモリ２０４に対する書き込み実行のコマンドＣＯＭ（ｄｏｎｅ）を発行することで処理を終える。
【００３９】
次に、図１２を参照して、フラッシュメモリ２０４のフラッシュ制御回路２０５の遷移状態を図１１のシーケンスチャートと対比して説明する。まず、状態Ｔ８０１ではフラッシュ制御回路２０５はフラッシュメモリ２０４の外部（ここではコントローラ２０３）から発行されるコマンドを待っている状態である。判定Ｔ８０２でコマンドの有無を判定しつつ、コマンドがなければこの状態Ｔ８０１のままである。なお、フラッシュメモリ２０４はリセットコマンドを発行することで如何なる状態からもこの状態Ｔ８０１のコマンド待ち状態に遷移する。
【００４０】
外部からコマンドを発行されるとフラッシュ制御回路２０５は判定Ｔ８０２でコマンド有りと判定するので判定Ｔ８０３へと進みコマンドの種類を判定する。発行されたコマンドが書き込みコマンドであれば状態Ｔ８０４へと進む。図７の時刻ｔ７０２で書き込みのコマンドＣｗがフラッシュメモリ２０４に発行されたとき、フラッシュ制御回路２０５は状態Ｔ８０４へと進んでいる。
【００４１】
状態Ｔ８０４ではフラッシュ制御回路２０５はフラッシュメモリ２０４の外部からのアドレス入力を待っている。アドレス入力が完了したかを判定Ｔ８０５で行い、入力が終了するまでは状態Ｔ８０４のままである。アドレスが入力されたら処理Ｔ８０６へ進みアドレス設定を行う。時刻ｔ７０４で書き込み先のアドレスがフラッシュメモリ２０４に指定されたとき、フラッシュ制御回路２０５は処理Ｔ８０６へと進んでいる。
【００４２】
処理Ｔ８０６ではフラッシュ制御回路２０５は外部から指定された書き込み先のアドレスをフラッシュメモリ２０４の内部に設定する。そして、状態Ｔ８０７に進みフラッシュ制御回路２０５は外部からのコマンドの発行を待つ。ただし、この期間にはフラッシュ制御回路２０５はページバッファ１０９に対してフラッシュメモリ２０４の外部から転送されるデータを受け入れ可能な状態に設定する。そして実際に外部からデータの転送がページバッファ１０９に対して行われる。上述の時刻ｔ７０４〜時刻ｔ７０５までの期間が相当する。
【００４３】
図７の時刻ｔ７０５で書き込み実行コマンドＣＯＭ（ｄｏｎｅ）がコントローラ２０３からフラッシュメモリ２０４に発行されると、それを受けてフラッシュ制御回路２０５は判定Ｔ８０８でコマンド有りと判定し、処理Ｔ８０９に進む。
【特許文献１】米国特許第６８７６５７９号明細書
【発明の開示】
【発明が解決しようとする課題】
【００４４】
フラッシュメモリの大容量化にともない、消去単位である消去ブロックのサイズが大きくなる。その際に特許文献１に示されるように、小サイズ（フラッシュメモリの書き込み単位未満のデータ）のデータと大サイズ（フラッシュメモリの書き込み単位以上のデータ）のデータとで書き込み先の物理ブロックを切り替えることで小サイズのデータの書き込み性能の低下を防ぐことが出来る。
【００４５】
しかしながら、ホストからの書き込みデータがセクタ単位の小さなサイズなのか、それとも複数セクタにわたる大きなサイズなのかは、データの転送が終了するまでは判断ができない。そのためにホストからメモリカードへの書込みデータの転送が終わるまで、書き込み先となるフラッシュメモリ内部の物理位置を決定できないために、書き込みデータをメモリカード内でコントローラからフラッシュメモリに転送することも出来ず、ホストからの書き込みデータの転送終了を待ってから、メモリカード内でコントローラからフラッシュメモリにデータを転送している。そのために全体の処理性能が低下するという問題を有している。
【００４６】
よって、本発明は、ホストからの書き込みデータの転送終了を待ってから、メモリカード内でコントローラからフラッシュメモリにデータを転送する処理に起因する負荷を解消することによって、全体の処理性能が改善された不揮発性記憶装置における不揮発性メモリへの書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【００４７】
上記目的を達成するために、本発明にかかる書き込み方法は、
独立して書き込み可能な複数の物理ページを有する不揮発性メモリにデータの書き込みを行う書き込み方法であって、
前記不揮発性メモリに書き込みデータを転送するデータ転送ステップと、
前記データ転送ステップの実行の後に前記不揮発性メモリに対して書き込み先の物理ページのアドレスを指定する第１の書き込みアドレス指定ステップとを備える。
【００４８】
前記データ転送ステップの実行の前に、前記不揮発性メモリに対して書き込み先の物理ページのアドレスを指定する第２の書き込みアドレス指定ステップをさらに備え、
前記第１の書き込みアドレス指定ステップは前記第２の書き込みアドレス指定ステップが指定したアドレスを変更指定することが望ましい。
【００４９】
前記書き込みデータのサイズに応じて、前記第１の書き込みアドレス指定ステップの実行を抑制する書き込みアドレス変更抑制ステップをさらに備えることが望ましい。
【００５０】
前記書き込みアドレス変更抑制ステップは、前記書き込みデータサイズが前記不揮発性メモリの書き込み単位よりも小さいときには前記第１の書き込みアドレス指定ステップの実行を抑制しないことが望ましい。
【００５１】
前記第１の書き込みアドレス指定ステップは、前記書き込みデータの供給源からの供給される停止コマンドに応答して、実行されることが望ましい。
【００５２】
さらに、上記目的を達成するために、本発明にかかる不揮発性メモリは、
独立して書き込み可能な複数の物理ページを有する不揮発性メモリであって、外部から前記不揮発性メモリに書き込みデータを転送するデータ転送ステップの後に、前記外部から前記不揮発性メモリに対して書き込み先の物理ページのアドレスを指定する書き込みアドレス指定ステップを実行することにより前記物例ページ単位での書き込みを行うことを特徴とする。
【００５３】
さらに、上記目的を達成するために、本発明にかかる書き込み不揮発性記憶装置は、
独立して書き込み可能な複数の物理ページを有する不揮発性メモリと、
当該不揮発性メモリへのデータの書き込みを制御するコントローラとを備える不揮発性記憶装置であって、
前記コントローラは、前記不揮発性メモリに書き込みデータを転送した後に、当該不揮発性メモリに対して書き込み先の物理ページのアドレスを指定することを特徴とする。
【発明の効果】
【００５４】
本発明によれば、物理位置決定後の不揮発性メモリへの書き込みデータの転送に要する時間を削減して、高速な書き込みを可能とする。
【発明を実施するための最良の形態】
【００５５】
（第１の実施形態）
以下に、図１、図２、図３、図４、および図５を参照して、本発明の第１の実施の形態について説明する。
図１に示すように、本実施の形態に係るメモリカード１０１は、上述の従来のメモリカード２０１と同様に、ホスト１０２からデータの読み出し、書込みが可能な記憶装置である。具体的には、メモリカード１０１は、コントローラ１０３と不揮発性の記憶素子であるフラッシュメモリ１０４を含む。なお、コントローラ１０３は、メモリカード２０１におけるコントローラ２０３と同様の構造を有して、フラッシュメモリ１０４とコントローラ１０３とのインターフェースを制御すると共にフラッシュメモリ１０４内部全体の制御を行うが、その制御方法が異なる。また、フラッシュメモリ１０４はフラッシュメモリ２０４においてフラッシュ制御回路２０５がフラッシュ制御回路１０５に置き換えられて構成されている。
【００５６】
その他の構成要素については、基本的にメモリカード２０１におけるのと同様であるので説明を割愛して、主にコントローラ１０３とフラッシュ制御回路１０５の動作について重点的に説明する。
【００５７】
図２を参照して、コントローラ１０３により実行されるフラッシュメモリ１０４へのデータの書き込み制御について説明する。ホスト１０２からメモリカード２０１にデータ書き込みコマンドＣｗが書き込み先のアドレス情報と共に発行された時点で、コントローラ１０３による書き込み制御動作が開始する。
【００５８】
ステップＳ２０１において、書き込み先となる物理ページが決定されて、フラッシュメモリ１０４に対して、書き込みのコマンドＣＯＭ（Ｓｔａｒｔ）が物理ページのアドレスＡＤＤと共に発行される。なお、この際に指定する物理ページのアドレスＡＤＤは、ホスト１０２から大サイズのデータＤａｔａが転送されることを前提に仮決定される。
【００５９】
先ず、ステップＳ２０２において、ホスト１０２からセクタ単位データがコントローラ１０３内部のピンポンバッファ１１１に転送されているか否かが判断される。転送されていれば、Ｙｅｓと判断されて制御はステップＳ２０４に進む。一方、転送されていない場合はＮｏと判断されて、制御はステップＳ２０３に進む。
【００６０】
ステップＳ２０４において、ホスト１０２からピンポンバッファ１１１に転送されているデータＤａｔａが、ピンポンバッファ１１１からフラッシュメモリ１０４のページバッファ１０９に転送される。そして、セクタ単位のデータの転送を終えた後に、制御は次のステップＳ２０５に進む。
【００６１】
ステップＳ２０５において、ページバッファ１０９へ転送済みのデータがフラッシュメモリ１０４の書き込み単位である物理ページのデータ容量に達している否かが判断される。書き込み単位分のデータが既にページバッファ１０９に転送済であれば、Ｙｅｓと判断されて、制御はステップＳ２０８に進む。
【００６２】
ステップＳ２０３において、ホスト１０２からメモリカード１０１への書き込みデータの転送が停止されたか否かが判断される。転送が停止していない場合はＮｏと判断されて制御はステップＳ２０２に戻り、上述の処理が繰り返される。一方、転送が停止している場合はＹｅｓと判断されて、制御は次のステップＳ２０６に進む。
【００６３】
ステップＳ２０６において、コントローラ１０３からフラッシュメモリ１０４へ転送済みでフラッシュメモリ１０４に未だ書き込まれていないデータがページバッファ１０９にあるか否か判断される。未書き込みデータが無い場合にはＮｏと判断されて、制御は終了する。一方、未書き込みデータがある場合にはＹｅｓと判断されて、制御は次のステップＳ２０７に進む。
【００６４】
ステップＳ２０７においては、未書き込みデータのメモリセルアレイ１０６での書き込み先の物理ページが変更（ＣＯＭ（Ｃｈａｎｇｅ）、ＡＤＤ）される。つまり、コントローラ１０３は、上述のステップＳ２０１において既に書き込み先の物理ページを指定して、ステップＳ２０４において書き込みデータをページバッファ１０９に転送している。
【００６５】
このページバッファ１０９に保持されている書き込み単位未満の書き込みデータに対して、ステップＳ２０１において指定された書き込み先の物理ページのアドレスが、小セクタ（書き込み単位未満）用の一時ブロックの物理ページのアドレスに変更される。つまり、書き込み先の物理ページの変更に際して、従来技術において必要としたコントローラ１０３（ピンポンバッファ１１１）からフラッシュメモリ１０４（ページバッファ１０９）への書き込みデータの再送を不要としている。そして、制御は次のステップＳ２０８に進む。
【００６６】
ステップＳ２０８において、フラッシュメモリ１０４に対して書き込みコマンドＣＯＭ（ｄｏｎｅ）が発行される。そして、ステップＳ２０７で新たに指定された物理ページ（メモリセルアレイ１０６）に書き込み単位未満のデータが書き込まれる。そして、制御は次のステップＳ２０９に進む。
【００６７】
ステップＳ２０９において、ホスト１０２からのデータの転送が停止されたか否かが判断される。データ転送が停止されていない場合はＮｏと判断されて、制御はステップＳ２０１に戻り、上述の処理が繰り返される。一方、データ転送が停止されている場合はＹｅｓと判断されて、制御は終了される。
【００６８】
次に、上述のコントローラ１０３による処理を機能的に説明する。ホスト１０２からメモリカード１０１にデータ書き込みのコマンドＣＯＭ（Ｓｔａｒｔ）が書き込み先のアドレスＡＤＤ情報と共に発行されると、コントローラ１０３はステップＳ２０１において、ホスト１０２から大サイズのデータＤａｔａが転送されることを前提に、書き込みとなる物理ページを仮決定して、フラッシュメモリ１０４に対して書き込みのコマンドを物理ページのアドレスと共に発行する。
【００６９】
次にコントローラ１０３は、ホスト１０２からメモリカード１０１へのデータの転送か、ホスト１０２からメモリカードへのデータの転送停止コマンドを待つ。具体的にはステップＳ２０２において、コントローラ１０３はホスト１０２からのセクタ単位でのデータがコントローラ１０３の内部のピンポンバッファ１１１に転送されているかを判断する。
【００７０】
ホスト１０２からデータの転送がなされていない場合には、ステップＳ２０３に進みデータの転送が停止されていないかを確認する。そして、データの転送の停止がなされていなければ、再度ステップＳ２０２へ戻りホスト１０２からのデータが転送されるのを待つ。
【００７１】
本例においては、ステップＳ２０２において、セクタ単位でホスト１０２からのデータを待つように説明しているが、フラッシュメモリ１０４の書き込み単位である物理ページよりも小さいサイズであれば、特にセクタというサイズにこだわる必要は無い。
【００７２】
ホスト１０２からのセクタ単位のデータの転送があった場合には、ステップＳ２０２において判定されてステップＳ２０４へ進む。ステップＳ２０４ではコントローラ１０３はピンポンバッファ１１１にホスト１０２から転送済みのデータをフラッシュメモリ１０４に転送する。
【００７３】
セクタ単位のデータの転送を終えた後に、コントローラ１０３はステップＳ２０５で、フラッシュメモリ１０４へ転送済みのデータがフラッシュメモリ１０４の書き込み単位である物理ページに達しているかどうかを判断する。その結果書き込み単位分のデータが既にフラッシュメモリ１０４に転送済であれば、コントローラ１０３はステップＳ２０８に進みフラッシュメモリ１０４に書き込みコマンドを発行する。まだフラッシュメモリ１０４に転送したデータが書き込み単位に達しなければステップＳ２０２へと進み、またホストからのデータの転送を待つことになる。
【００７４】
ステップＳ２０３での判断に基づいて、ホスト１０２からのデータの転送が停止されたとコントローラ１０３が判定した場合には、制御はステップＳ２０６へと進みコントローラ１０３からフラッシュメモリ１０４へ転送済みの未書き込みデータがあったのかどうかを判定する。フラッシュメモリ１０４に転送済みの未書き込みデータが無い場合には、フラッシュメモリ１０４にデータを書き込む必要が無いので処理を終了する。未書き込みデータがある場合には、そのデータはフラッシュメモリ１０４の書き込み単位未満のデータであるので、書き込み先の物理ページをステップＳ２０１で指定した物理ページとは異なる小セクタのための物理ページにする必要がある。
【００７５】
そこでステップＳ２０７では書き込み先の物理ページの変更を行う。既に書き込み先の物理ページを指定して書き込みデータを転送しているが、転送済みのデータはそのままで改めてコントローラ１０３からフラッシュメモリ１０４へ再送することなく書き込み先の物理ページの変更（ＣＯＭ（ｃｈａｎｇｅ）、ＡＤＤ）がこのステップＳ２０７において行われる。
【００７６】
その後、ステップＳ２０８に進みフラッシュメモリ１０４に書き込みコマンドＣＯＭ（ｄｏｎｅ）を発行する。ステップＳ２０８の実行後はステップＳ２０９でホスト１０２からのデータの転送が停止されたとコントローラ１０３が判定した場合には処理を終了する。まだ、転送継続すると判定した場合にはステップＳ２０１へ戻る。
【００７７】
次に、図３を参照して、本実施の形態におけるコントローラ１０３からフラッシュメモリ１０４へのコマンド発行およびデータ転送に関するシーケンスについて説明する。なお、図３の上段には、上述のステップＳ２０１、Ｓ２０２、Ｓ２０４、およびＳ２０５を経てステップＳ２０８にて、アドレスを変更しないでフラッシュメモリ１０４にデータが書き込まれる場合のシーケンスが示されている。図３の下段には、Ｓ２０１〜Ｓ２０７を経てステップＳ２０８にてアドレスが変更されてフラッシュメモリ１０４にデータが書き込まれる場合のシーケンスが示されている。
【００７８】
先ず、図３の上段の示す、アドレス変更をしない場合について説明する。時刻ｔ３０１に、コントローラ１０３はフラッシュメモリ１０４に書き込みの開始を示すコマンドＣＯＭ（Ｓｔａｒｔ）を発行し、続いて時刻ｔ３０２に書き込み先の物理ページを示すアドレスＡＤＤを指定する。これは上述のステップＳ２０１における処理に相当する。
【００７９】
時刻ｔ３０３に、コントローラ１０３はフラッシュメモリ１０４に書き込みデータＤａｔａの転送を開始する。これは、複数回行われる上述のステップＳ２０４の処理に相当する。
【００８０】
時刻ｔ３０４に、コントローラ１０３はフラッシュメモリ１０４に書き込みの実行を示すコマンドＣＯＭ（ｄｏｎｅ）を発行することでフラッシュメモリ１０４にデータを書き込む。これは上述のステップＳ２０５から遷移してきた場合のステップＳ２０８における処理に相当する。
【００８１】
次に、図３の下段の示す、アドレス変更をする場合について説明する。時刻ｔ３１１にコントローラ１０３はフラッシュメモリ１０４に書き込みの開始を示すコマンドＣＯＭ（Ｓｔａｒｔ）を発行し、続いて時刻ｔ３１２に書き込み先の物理ページを示すアドレスＡＤＤを指定する。これはステップＳ２０１における処理に相当する。
【００８２】
次に時刻ｔ３１３に、コントローラ１０３はフラッシュメモリ１０４に書き込みデータＤａｔａの転送を開始する。これは、複数回行われるステップＳ２０４の処理に相当する。
【００８３】
時刻ｔ３１４に、コントローラ１０３はフラッシュメモリ１０４に書き込み先の物理ページの変更を示すコマンドＣＯＭ（ｃｈａｎｇｅ）を発行する。続いて、時刻ｔ３１５で変更する書き込み先の物理ページを示すアドレスＡＤＤを指定する。これは、ステップＳ２０７における処理に相当する。
【００８４】
時刻ｔ３１６に、コントローラ１０３はフラッシュメモリ１０４に書き込みの実行を示すコマンドＣＯＭ（ｄｏｎｅ）を発行することでフラッシュメモリ１０４にデータを書き込む。これはステップＳ２０７から遷移してきた場合のステップＳ２０８における処理に相当する。
【００８５】
書き込み先の物理ページが決定できるのはホスト１０２からのデータ転送が終了した段階（データ転送を停止するコマンドの発行、もしくは書き込み単位分のデータ転送の完了）である。しかしながら、図２に示したフローチャートより明らかなように、本実施の形態においてはステップＳ２０３において停止コマンドＣｓの発行が認識される前に、またはステップＳ２０５において書き込み単位のデータ転送の終了が認識される前に、ステップＳ２０４において既にフラッシュメモリ１０４（ページバッファ１０９）にデータが転送されている。
【００８６】
次に、図４のシーケンスチャートを参照して、上述のフローチャートにおけるステップと対比して、書き込み単位未満のデータを通常ブロックに書き込む場合の、コントローラ１０３からフラッシュメモリ１０４へのコマンド発行およびデータ転送に関するシーケンスについて説明する。なお、図４において、上段よりホスト１０２から出力されるコマンドを示すコマンドラインＬ１、ホスト１０２からメモリカード１０１に転送される書き込みデータを示すデータラインＬ２、およびコントローラ１０３からフラッシュメモリ１０４への出力を示す出力ラインＬ３が模式的に表現されている。なお、コマンドラインＬ１、データラインＬ２、および出力ラインＬ３は、上述の従来のメモリカード２０１におけるコマンドラインＬ１ｃ、データラインＬ２ｃ、および出力ラインＬ３ｃにそれぞれ対応している。
【００８７】
最初に時刻ｔ４０１に、ホスト１０２はメモリカード１０１に書き込みコマンドＣｗを発行する。
【００８８】
時刻ｔ４０２に、コントローラ１０３は書き込みコマンドＣｗに応答して、フラッシュメモリ１０４に対して書き込みの開始を示すコマンドＣＯＭ（Ｓｔａｒｔ）を発行し、続いて書き込み先の物理ページを示すアドレスＡＤＤを指定する。これはステップＳ２０１における処理に相当する。
【００８９】
その後、ホスト１０２からピンポンバッファ１１１への１セクタ単位のデータ転送が行われるたびに、コントローラ１０３はピンポンバッファ１１１からフラッシュメモリ１０４に１セクタ単位のデータを転送させる。これはステップＳ２０４の処理に相当する。
【００９０】
時刻ｔ４０３に、ホスト１０２はメモリカード１０１に停止コマンドＣｓを発行する。停止コマンドＣｓに応答して、コントローラ１０３はステップＳ２０３において転送停止の判定を行い、ステップＳ２０６において転送データ有りの判定を行う。
【００９１】
時刻ｔ４０４に、コントローラ１０３はフラッシュメモリ１０４に対して書き込み先の物理ページの変更のコマンドＣＯＭ（ｃｈａｎｇｅ）を発行して、続いて変更した書き込み先となる物理ページの指定（ＡＤＤ）を行う。これはステップＳ２０７における処理に相当する。
【００９２】
最後に、コントローラ１０３はステップＳ２０８の処理に相当するフラッシュメモリ１０４に対する書き込み実行のコマンドＣＯＭ（ｄｏｎｅ）を発行することで処理を終える。
【００９３】
次に、図５を参照して、フラッシュメモリ１０４のフラッシュ制御回路１０５の遷移状態を図３のシーケンスチャートと対比して説明する。まず、状態Ｔ５０１ではフラッシュ制御回路１０５はフラッシュメモリ１０４の外部（ここではコントローラ１０３）から発行されるコマンドを待っている。判断Ｔ５０２でコマンドの有無を判定しつつ、コマンドがなければ状態Ｔ５０１のままである。なお、フラッシュメモリ１０４はリセットコマンドを発行することで如何なる状態からもこの状態Ｔ５０１のコマンド待ち状態に遷移する。
【００９４】
外部からコマンドが発行されると、フラッシュ制御回路１０５は判定Ｔ５０２でコマンド有りと判定するので判定Ｔ５０３へと進みコマンドの種類を判定する。発行されたコマンドが書き込みコマンドであれば状態Ｔ５０４へと進む。
【００９５】
時刻ｔ３１１で書き込みコマンドＣＯＭ（Ｓｔａｒｔ）がフラッシュメモリ１０４に発行されたとき、フラッシュ制御回路１０５は状態Ｔ５０４へと進んでいる。
【００９６】
状態Ｔ５０４では、フラッシュ制御回路１０５はフラッシュメモリ１０４の外部からのアドレスＡＤＤの入力を待っている。アドレスＡＤＤの入力が完了したかを判定Ｔ５０５で行い、入力が終了するまでは状態Ｔ５０４のままである。アドレスが入力されたら処理Ｔ５０６へ進みアドレス設定を行う。
【００９７】
時刻ｔ３１２で、書き込み先のアドレスＡＤＤがフラッシュメモリ１０４に指定されたとき、フラッシュ制御回路１０５は処理Ｔ５０６へと進んでいる。
【００９８】
処理Ｔ５０６では、フラッシュ制御回路１０５は外部から指定された書き込み先のアドレスＡＤＤをフラッシュメモリ１０４内部に設定する。具体的には、ロウデコーダー１１０に対して書き込み先の物理ページのメモリセル（メモリセルアレイ１０６）にデータを書き込むためにドライブすべきワード線のアドレス情報を指定し、ページバッファ１０９には書き込みデータの転送開始アドレス情報を指定すると共に外部から転送されるデータを順次ページバッファ１０９に格納するように設定する。そして状態Ｔ５０７に進む。
【００９９】
状態Ｔ５０７ではフラッシュ制御回路１０５は外部からのコマンドの発行を待つ。ただし、この期間にはフラッシュ制御回路１０５はページバッファ１０９に対してフラッシュメモリ１０４の外部から転送されるデータを受け入れ可能な状態に設定する。そして実際に外部からデータの転送がページバッファ１０９に対して行われる。これは、時刻ｔ３１３から時刻ｔ３１４の期間に相当する。
【０１００】
時刻ｔ３１４に、コントローラ１０３からアドレス変更のコマンドＣＯＭ（ｃｈａｎｇｅ）が発行されたら、判定Ｔ５０８でコマンド有りと判定されると判定Ｔ５０９に進み、アドレス変更コマンドと判定し状態Ｔ５１０に進み変更されるアドレスの入力を待つ状態になる。
【０１０１】
時刻ｔ３１５に、変更した書き込み先の物理ページを示すアドレスＡＤＤがコントローラ１０３から入力されたら、判定Ｔ５１１でアドレス入力完了と判定し、処理Ｔ５１２に進む。そして、フラッシュ制御回路１０５は、処理Ｔ５０６でロウデコーダー１１０に対して指定した書き込み先の物理ページＡＤＤを変更して、新しいアドレス情報をロウデコーダー１１０に対して指定する。そして状態Ｔ５０７に戻る。状態Ｔ５０７で、改めてフラッシュ制御回路１０５は外部からのコマンドの発行を待つ。
【０１０２】
時刻ｔ３１６に、書き込み実行コマンドＣＯＭ（ｄｏｎｅ）がコントローラ１０３からフラッシュメモリ１０４に発行されると、それを受けてフラッシュ制御回路１０５は判定Ｔ５０８でコマンド有りと判定する。そして、判定Ｔ５０９で書き込み実行コマンドＣＯＭ（ｄｏｎｅ）であると判定し、処理Ｔ５１３に進む。
【０１０３】
処理Ｔ５１３では、フラッシュ制御回路１０５はメモリセルアレイ１０６の、コントローラ１０３から書き込み対象とされた物理ページにデータＤａｔａの書き込みを行うために、ページバッファ１０９に一時的に保持されている書き込みデータをカラムラッチ１０８にコピーして、カラムラッチ１０８からメモリセルアレイ１０６のビット線をドライブする。そして、ロウデコーダー１１０からメモリセルアレイ１０６のワード線をドライブしてメモリセル（メモリセルアレイ１０６）にデータＤａｔａをプログラムする。
【０１０４】
そして書き込んだデータをセンスアンプ１０７を用いて読み出して、書き込みが出来ていると判定すれば、つまり判定Ｔ５１４でベリファイＯＫと判定すれば状態Ｔ５０１に戻りコマンド待ち状態になる。
【０１０５】
以上のように、本フラッシュ制御回路１０５はデータ転送後に書き込み先の物理ページの変更が可能な状態遷移をとるので。即ち書き込み先の物理ページの指定が行える状態Ｔ５１０の前の状態Ｔ５０７の期間にデータ転送を行うことが出来る。このように、本実施の形態にかかるメモリカード１０１においては、上述の従来のメモリカード２０１が書き込み先の物理ページの指定が行える処理Ｔ８０６の後の状態Ｔ８０７の期間にデータ転送を行うオーバヘッドが解消されている。
【０１０６】
（第２の実施形態）
図６、図７、および図８を参照して、本発明の第２の実施の形態について説明する。なお、本実施の形態にかかるメモリカードは、上述の第１の実施の形態に係るメモリカード１０１と同様に構成されているが、主にコントローラ１０３の動作が異なる。よって、以下に、本実施の形態おけるコントローラ１０３に固有の動作について重点的に説明する。
【０１０７】
図６に示すフローチャートを参照して、本実施の形態におけるコントローラ１０３の制御動作について説明する。図６のフローチャートは、図２に示したフローチャートにおいて、ステップＳ２０１がステップＳ９０１に置き換えられると共に、ステップＳ２０５とステップＳ２０８の間にステップＳ９０６が追加されている。
【０１０８】
つまり、本実施の形態においては、ホスト１０２からメモリカード１０１にデータ書き込みのコマンドＣｗが書き込み先のアドレスＡＤＤ情報と共に発行されると、ステップＳ９０１においては、コントローラ１０３は、上述のステップＳ２０１において通常ブロックの物理ページを指定する代わり、フラッシュメモリ１０４に書き込みのコマンドＣＯＭ（Ｓｔａｒｔ）を発行する。その後、上述のステップＳ２０２、Ｓ２０４、およびステップＳ２０５における処理を経て、書き込み単位分のデータが既にページバッファ１０９に保持されていると判断されると、制御は新たに設けられたステップＳ９０６に進む。
【０１０９】
ステップＳ９０６において、ページバッファ１０９には既に書き込み単位のデータが転送されている（フラッシュメモリ１０４の書き込み単位未満の小セクタの書き込みでないことから、物理ページを決定できるので）、コントローラ１０３は通常ブロックの物理ページのアドレスＡＤＤを指定する。そして制御は、上述のステップＳ２０８へ進む。
【０１１０】
次に、図７を参照して、ホスト１０２からフラッシュメモリ１０４の書き込み単位未満のデータを書き込む場合のコントローラ１０３からフラッシュメモリ１０４へのコマンド発行およびデータ転送に関するシーケンスについて説明する。
時刻ｔ１００１に、コントローラ１０３はフラッシュメモリ１０４に書き込みの開始を示すコマンドＣＯＭ（Ｓｔａｒｔ）を発行する。これはステップＳ００１における処理に相当する。
【０１１１】
時刻ｔ１００２に、コントローラ１０３はフラッシュメモリ１０４に書き込みデータＤａｔａの転送を開始する。これは複数回行われるステップＳ２０４の処理に相当する。
【０１１２】
時刻ｔ１００３に、コントローラ１０３はフラッシュメモリ１０４に書き込み先の物理ページを示すアドレスＡＤＤを指定する。これはステップＳ９０６もしくはステップＳ２０７における処理に相当する。
【０１１３】
時刻ｔ１００４に、コントローラ１０３はフラッシュメモリ１０４に書き込みの実行を示すコマンドＣＯＭ（ｄｏｎｅ）を発行することでフラッシュメモリ１０４にデータを書き込む。これは図９のステップＳ２０８における処理に相当する。
【０１１４】
上述のように、書き込み先の物理ページが決定できるのはホスト１０２からのデータ転送が終了した段階（データ転送を停止するコマンドの発行、もしくは書き込み単位分のデータ転送の完了）であるが、図６のフローチャートで明らかなように、ステップＳ２０３の判定で停止コマンドＣｓの発行を認識する前に、またはステップＳ２０５で書き込み単位のデータ転送の終了を認識する前に、ステップＳ２０４において既にフラッシュメモリ１０４（ページバッファ１０９）にデータが転送されている。
【０１１５】
次に、図８を参照して、フラッシュメモリ１０４のフラッシュ制御回路１０５の遷移状態を図７のシーケンスチャートと対比して説明する。まず、状態Ｔ１１０１では、フラッシュ制御回路１０５はフラッシュメモリ１０４の外部（ここではコントローラ１０３）から発行されるコマンドを待っている。判断Ｔ１１０２でコマンドの有無を判定しつつ、コマンドがなければこの状態Ｔ１１０１のままである。なお、フラッシュメモリ１０４はリセットコマンドを発行することで如何なる状態からもこの状態Ｔ１１０１のコマンド待ち状態に遷移する。
【０１１６】
外部からコマンドを発行されると、フラッシュ制御回路１０５は判定Ｔ１１０２でコマンド有りと判定するので、判定Ｔ１１０３へと進みコマンドの種類を判定する。発行されたコマンドが書き込みコマンドであれば、状態Ｔ１１０４へと進む。
【０１１７】
時刻ｔ１００１に、書き込みのコマンドＣＯＭ（Ｓｔａｒｔ）がフラッシュメモリ１０４に発行されたとき、フラッシュ制御回路１０５は状態Ｔ１００４へと進んでいる。
【０１１８】
状態Ｔ１００４では、フラッシュ制御回路１０５はフラッシュメモリ１０４の外部からのアドレスＡＤＤ入力を待っている。アドレスＡＤＤの入力が完了したかを判定Ｔ８０５で行い、入力が終了するまでは状態Ｔ１００４のままである。ただし、この期間にはフラッシュ制御回路１０５は、ページバッファ１０９に対してフラッシュメモリ１０４の外部から転送されるデータＤａｔａを受け入れ可能な状態に設定する。そして実際に外部からデータＤａｔａの転送がページバッファ１０９に対して行われる。これは時刻ｔ１００２から時刻ｔ１００３までの期間が相当する。
【０１１９】
アドレスＡＤＤが入力されたら、処理Ｔ１１０６へ進みアドレス設定を行う。時刻ｔ１００３に書き込み先のアドレスＡＤＤがフラッシュメモリ１０４に指定されたとき、フラッシュ制御回路１０５は処理Ｔ１１０６へと進んでいる。
【０１２０】
処理Ｔ１１０６ではフラッシュ制御回路１０５は外部から指定された書き込み先のアドレスをフラッシュメモリ１０４内部に設定する。詳細は図５の説明で述べた内容と同じである。そして状態Ｔ１１０７に進みフラッシュ制御回路１０５は、外部からのコマンドの発行を待つ。
【０１２１】
時刻ｔ１００４に、書き込み実行コマンドＣＯＭ（ｄｏｎｅ）がコントローラ１０３からフラッシュメモリ１０４に発行されると、それを受けてフラッシュ制御回路１０５は判定Ｔ１１０８でコマンド有りと判定し、処理Ｔ１１０９に進む。
【０１２２】
処理Ｔ１１０９および判定Ｔ１１１０の処理は処理Ｔ５１３および判定Ｔ５１４の処理の説明で述べた内容と同じである。
【０１２３】
上述のように、フラッシュ制御回路１０５は書き込み先の物理ページの指定が行える処理Ｔ１１０６の前の状態Ｔ１１０４の期間にデータ転送を行う事が出来る。
【０１２４】
以上より明らかなように、本発明においては、所定の書き込み単位（ページ単位）で書き込みを行わなければならないフラッシュメモリを有する不揮発性メモリにおいて、所定の書き込み単位（ページ単位）より小さいサイズのデータの書き込みにおいては、通常の書き込み動作で使用する物理ページとは異なる物理ページ（一時ブロック）に書き込みを行うが、このときの書き込み先となる物理ページの指定をフラッシュメモリに行う前に、書き込みデータを転送しておく書き込み方法をとる。これにより、データ書き込み時に行われるコントローラからフラッシュメモリへのデータ転送の時間のオーバヘッドを削減でき、結果として書き込み処理の高速化を図れる。
【産業上の利用可能性】
【０１２５】
本発明は、不揮発性半導体装置に対する書き込みの高速化技術に適用でき、特に、所定の書き込み単位（例えばページ単位）で書き込みを行わなければならない不揮発性メモリを有する不揮発性半導体装置および不揮発性メモリのコントローラ装置等に有用である。
【図面の簡単な説明】
【０１２６】
【図１】本発明の第１の実施の形態に係る不揮発性記憶装置の一例であるメモリカードの構成を示すブロック図
【図２】図１に示したコントローラによる書き込み制御動作を表すフローチャート
【図３】図１に示したコントローラと不揮発性メモリとのインターフェースの簡易シーケンスチャート
【図４】図１に示したメモリカードのインターフェースおよびコントローラと不揮発性メモリであるフラッシュメモリとのインターフェースのシーケンスチャート
【図５】図１に示したフラッシュ制御回路の状態遷移図
【図６】本発明の第２の実施の形態にかかるコントローラによる書き込み制御動作を表すフローチャート
【図７】本発明の第２の実施の形態にかかるコントローラと不揮発性メモリとのインターフェースの簡易シーケンスチャート
【図８】本発明の第２の実施の形態にかかるフラッシュ制御回路の状態遷移図
【図９】従来の不揮発性記憶装置の一例であるメモリカードの構成を示すブロック図
【図１０】図９に示したコントローラによる書き込み制御動作を表すフローチャート
【図１１】図９に示したメモリカードのインターフェースおよびコントローラと不揮発性メモリであるフラッシュメモリとのインターフェースのシーケンスチャート
【図１２】図９に示したメモリカードのフラッシュ制御回路の状態遷移図
【符号の説明】
【０１２７】
１０１、２０１    メモリカード
１０２    ホスト
１０３、２０３    コントローラ
１０４、２０４    フラッシュメモリ
１０５、２０５    フラッシュ制御回路
１０６    メモリセルアレイ
１０７    センスアンプ
１０８    カラムラッチ
１０９    ページバッファ
１１０    ロウデコーダー
１１１    ピンポンバッファ
【図１】
2008009699.tif 000003
【図２】
2008009699.tif 000004
【図３】
2008009699.tif 000005
【図４】
2008009699.tif 000006
【図５】
2008009699.tif 000007
【図６】
2008009699.tif 000008
【図７】
2008009699.tif 000009
【図８】
2008009699.tif 000010
【図９】
2008009699.tif 000011
【図１０】
2008009699.tif 000012
【図１１】
2008009699.tif 000013
【図１２】
2008009699.tif 000014