(57)【要約】【課題】  データの書き込みを高速化できるデータ記録方法を提供すること。【解決手段】  ページ単位では、書込み所要時間および消去所要時間の速いフラッシュメモリへデータが次々と書き込まれていくが、ブロック単位では、書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するのを待って、すなわちブロック単位では、書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するのに同期して、各フラッシュメモリに対しブロック単位で消去が行われ、次のブロックのページ単位の書き込みに進む。【選択図】      図１３
2006072452.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位の書き込み、ブロック単位の消去が可能な入出力が独立した複数の記録媒体へデータを並列的に転送し記録するデータ記録方法であって、
前記ブロック単位の消去が行われた前記複数の記録媒体を非同期で制御し、記録媒体ごとにそのステータスがレディ状態になると、その記録媒体へ順次規定ページ単位の書き込みを行うことで、前記複数の記録媒体に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、
前記複数の記録媒体に対し前記ブロック分の書き込みが終了すると、前記複数の記録媒体すべてにおいて１ブロック分のページの書き込み終了を示す信号をもとに、前記複数の記録媒体のうちでもっとも遅くレディ状態へ移行した記録媒体に同期させ、前記複数の記録媒体に対し次のブロック単位の消去を行う同期消去ステップと、
を備えたことを特徴とするデータ記録方法。
【請求項２】
ページ単位の書き込み、ブロック単位の消去が可能な入出力が共通接続され１つのバスを共有する複数の記録媒体を複数組備えた記録媒体群へデータを並列的に転送し記録するデータ記録方法であって、
前記記録媒体群の各記録媒体へ規定のページを並列的に割り振り、前記ブロック単位の消去が行われた前記複数の記録媒体の組ごとを非同期で制御し、前記複数の記録媒体の組ごとに、ステータスが先にレディ状態になった記録媒体の順で、かつバス使用の競合を回避し、前記割り振った規定のページへ規定ページ単位の書き込みを行うことで、前記記録媒体群に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、
前記記録媒体群に対し前記ブロック分の書き込みが終了すると、前記記録媒体群の各記録媒体すべてにおいて１ブロック分のページの書き込み終了を示す信号をもとに、もっとも遅くレディ状態へ移行した記録媒体に同期させ、前記記録媒体群の各記録媒体に対し次のブロック単位の消去を行う同期消去ステップと、
を備えたことを特徴とするデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書き込みを高速化できるデータ記録方法に関する。
【背景技術】
【０００２】
従来の記憶装置、特にフラッシュメモリを用いた記憶装置は、記憶データを保持するための電力が不要であることから近年、盛んに用いられるようになっている。特に、携帯電話装置を含む、携帯用の端末装置にはメモリとしてフラッシュメモリが多く用いられている。このようなフラッシュメモリを用いた記憶装置においては、データの書き込みに要する時間を短縮し、高速でデータの書き込みを行なえるようにする必要がある。
【０００３】
しかしながら、フラッシュメモリは、書き込むデータを入力するのに要するデータ入力時間に対し、その書き込むデータをフラッシュメモリのセルに実際に書き込むのに要するプログラム時間が比較的長いため、書き込むデータの量が、フラッシュメモリへ一度に入力可能な量よりも多いと、フラッシュメモリにデータを入力してから、次のデータを入力するまでに、少なくともプログラム時間だけの待ち時間が発生することになり、データの書き込みに時間を要し、高速での書き込みが出来ないことになる。
【０００４】
このような高速での書き込みが出来ないという問題に対し、フラッシュメモリを複数チップ用いて、これら複数チップへデータを並列的に書き込むことで、データの書き込みに要する時間の短縮化を図る記録方式がある。
これは、例えば、複数のフラッシュメモリのうちの１のチップにデータを入力し、その入力が終了すると、次のデータを他のチップに入力し、その入力が終了すると、さらに次のデータをさらに他のチップに入力するものである。すなわち、１のチップにおいて、入力されたデータがメモリセルに書き込まれている間に、次のデータを他の１のチップに入力するものであり、この結果、１のチップのプログラム時間を待たずに、次のデータの入力を行うことが出来、データの書き込みに要する時間を短縮することが可能になるものである（例えば、特許文献１参照）。
【特許文献１】特開２０００−１２２９２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
かかる従来の記録方式では、以下の短所が付随している。すなわち、フラッシュメモリにおいては書込み所要時間および消去所要時間は一定ではなく不確定であり、データの書き込みは１ページ単位で行われ、このデータの書き込みはレジスタ転送（例えば、０．１ｍｓｅｃ）とプログラム（例えば、０．２〜０．７ｍｓｅｃ）に分かれ、書込み所要時間は０．３〜０．８ｍｓｅｃの間でばらつくことになる。また、消去所要時間は、２〜４ｍｓｅｃの間でばらつく。このような書込み所要時間および消去所要時間が不確定である点については、前述したフラッシュメモリを並列にして使用する従来技術では考慮されておらず、これら書込み所要時間および消去所要時間が不確定であることが、フラッシュメモリを使用した記憶装置への高速な書き込みに障害となり、十分な高速化が期待できないという課題があった。
【０００６】
また、このようなフラッシュメモリにおいては、少なからず不完全な特性を有しているという観点から、使用し難いという課題がある。この不完全な特性とは、例えば、出荷時から欠陥ブロックが存在する場合があり、このため代替ブロックを使用することになり、ユーザが使用する論理アドレスとメモリ上の物理アドレスとの対応が必要になることである。また、書き換え回数が有限であり、書き換えを繰り返すとそのブロックは徐々に劣化するため、同一ブロックのみを書き換えないように、書き換えようとするブロックが特定のブロックに偏らないように均等化して使用するための管理が必要になることである。さらに、読み出しの際に読み出し誤りが生じる可能性が否定できないため、誤り訂正が必要になることである。
【０００７】
本発明は、このような事情に鑑みてなされたものであり、データの書き込みを高速化できるデータ記録方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明にかかるデータ記録方法は、ページ単位の書き込み、ブロック単位の消去が可能な入出力が独立した複数の記録媒体へデータを並列的に転送し記録するデータ記録方法であって、前記ブロック単位の消去が行われた前記複数の記録媒体を非同期で制御し、記録媒体ごとにそのステータスがレディ状態になると、その記録媒体へ順次規定ページ単位の書き込みを行うことで、前記複数の記録媒体に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、前記複数の記録媒体に対し前記ブロック分の書き込みが終了すると、前記複数の記録媒体すべてにおいて１ブロック分のページの書き込み終了を示す信号をもとに、前記複数の記録媒体のうちでもっとも遅くレディ状態へ移行した記録媒体に同期させ、前記複数の記録媒体に対し次のブロック単位の消去を行う同期消去ステップとを備えたことを特徴とする。
【０００９】
上述の目的を達成するため、本発明にかかるデータ記録方法は、ページ単位の書き込み、ブロック単位の消去が可能な入出力が独立した複数の記録媒体へデータを並列的に転送し記録するデータ記録方法であって、前記記録媒体群の各記録媒体へ規定のページを並列的に割り振り、前記ブロック単位の消去が行われた前記複数の記録媒体の組ごとを非同期で制御し、前記複数の記録媒体の組ごとに、ステータスが先にレディ状態になった記録媒体の順で、かつバス使用の競合を回避し、前記割り振った規定のページへ規定ページ単位の書き込みを行うことで、前記記録媒体群に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、前記記録媒体群に対し前記ブロック分の書き込みが終了すると、前記記録媒体群の各記録媒体すべてにおいて１ブロック分のページの書き込み終了を示す信号をもとに、もっとも遅くレディ状態へ移行した記録媒体に同期させ、前記記録媒体群の各記録媒体に対し次のブロック単位の消去を行う同期消去ステップとを備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ブロック単位で同期し次の書き込み処理へ進むため、空き領域が過剰に発生することがなく、記録媒体のメモリ容量を最大限に使用できるデータ記録方法を提供できる効果がある。
【００１１】
また、１つのバスを共有する複数の記録媒体に対しては、各記録媒体へ規定のページを並列的に割り振り、ステータスがレディ状態になった記録媒体を優先させ、その記録媒体の前記規定のページへページ単位の書き込みを行うことから、データの書き込まれる記録媒体およびそのページは確定されており、書き込みのための制御が簡単になるデータ記録方法を提供できる効果がある。
【発明を実施するための最良の形態】
【００１２】
データの書き込みを高速化できるデータ記録方法を提供するという目的を、ブロック単位の消去が行われた複数の記録媒体を非同期で制御し、記録媒体ごとにそのステータスがレディ状態になると、その記録媒体へ順次規定ページ単位の書き込みを行うことで、前記複数の記録媒体に対し並列的にそのブロック分のページ単位の書き込みを行い、前記複数の記録媒体に対し前記ブロック分の書き込みが終了すると、前記複数の記録媒体すべてにおいて１ブロック分のページの書き込み終了を示す信号をもとに、前記複数の記録媒体のうちでもっとも遅くレディ状態へ移行した記録媒体に同期させ、前記複数の記録媒体に対し次のブロック単位の消去を行うことで実現した。
【００１３】
データの書き込みを高速化できるデータ記録方法を提供するという目的を、記録媒体群の各記録媒体へ規定のページを並列的に割り振り、ブロック単位の消去が行われた複数の記録媒体の組ごとを非同期で制御し、前記複数の記録媒体の組ごとに、ステータスが先にレディ状態になった記録媒体の順で、かつバス使用の競合を回避し、前記割り振った規定のページへ規定ページ単位の書き込みを行うことで、前記記録媒体群に対し並列的にそのブロック分のページ単位の書き込みを行い、前記記録媒体群に対し前記ブロック分の書き込みが終了すると、前記記録媒体群の各記録媒体すべてにおいて１ブロック分のページの書き込み終了を示す信号をもとに、もっとも遅くレディ状態へ移行した記録媒体に同期させ、前記記録媒体群の各記録媒体に対し次のブロック単位の消去を行うことで実現した。
【実施例１】
【００１４】
以下、本発明の一実施例について説明する。なお、以下の説明では、先ず、フラッシュメモリと、フラッシュメモリを用いたメモリカードシステムについて説明し、次に、このメモリカードシステムのメモリカードとメモリコントローラの構成について説明する。そして、これら構成を利用した本発明の一実施例であるデータ記録方法を説明する。
先ず、フラッシュメモリと、フラッシュメモリを用いたメモリカードシステムについて説明する。
図１は、この実施例１のデータ記録方法を説明するためのフラッシュメモリの内部構成例を示すブロック図である。このフラッシュメモリは、入出力コントロール回路１、動作ロジックコントロール回路２、アドレスレジスタ３、コマンドレジスタ４、制御回路５、レディ／ビジィ信号出力回路６、ステータスレジスタ７、高電圧発生回路８、ローアドレスバッファ９、ローアドレスデコーダ１０、カラムバッファ１１、カラムデコーダ１２、データレジスタ１３、センスアンプ１４およびメモリセルアレイ１５と、各種のバス、信号線を備えている。
【００１５】
図２は、図１に示すフラッシュメモリの内部構造を示す説明図である。このフラッシュメモリは、ページ単位でプログラム、ブロック単位で消去を行う。そして、１ページは２０４８バイトに冗長部６４バイトを加えた２１１２バイトとなっており、１ブロックは６４ページで構成されている。また、アドレスの取り込みは、Ｉ／Ｏ端子から５クロックで取り込む。
【００１６】
図３は、このフラッシュメモリを用いたメモリカードシステムの全体構成を示すブロック図である。このメモリカードシステムは、シリアル伝送を行うためのシリアルクロックを供給するシリアルクロック供給部２１、バイト単位で内部の処理を行うためのパラレルクロックを供給するパラレルクロック供給部２２、ホストＰＣ２３、リーダー／ライター２４、送信ドライバー２５，２６，３２、コネクタ２８、受信ドライバー２７，２９，３０およびメモリカード３１を備えている。ホストＰＣ２３とリーダー／ライター２４とはＰＣＩバスにより接続されている構成である。また、リーダー／ライター２４とメモリカード３１とはコネクタ２８を介して接続されている構成である。コネクタ２８では、前記シリアル伝送のためのシリアルクロックと、リーダー／ライター２４からメモリカード３１へ書き込まれるライトデータＷＲ＿ＤＡＴＡと、メモリカード３１からリーダー／ライター２４へ読み出されるリードデータＲＤ＿ＤＡＴＡの３種類の信号が接続されており
、送信ドライバー２５，２６，３２と受信ドライバー２７，２９，３０を介して全二重のシリアル通信が実現できる構成である。また、メモリカード３１は、シリアルクロック供給部２１から供給されたシリアルクロックと、これを分周して生成されたクロックにより動作する構成である。
【００１７】
図４は、図３に示したメモリカードシステムのリーダー／ライター２４の構成を示すブロック図である。このリーダー／ライター２４は、メモリカード３１からリーダー／ライター２４へ読み出されたリードデータＲＤ＿ＤＡＴＡの入力端子４１と、前記パラレルクロックが供給される入力端子４２と、前記シリアルクロックの入力端子４３と、ＰＣＩバス接続部４４と、メモリカード３１へのライトデータの出力端子４５と、８−１０変換デコーダ・パラレル／シリアル変換器５２を備えている。また、シリアル／パラレル変換器・８−１０変換デコーダ４６、ＥＣＣデコーダ４７、ＰＣＩバスとのインタフェースであるバスインタフェース４８、ＣＲＣＣエンコーダ４９、ＥＣＣエンコーダ５０、コマンドとデータとの切り替えスイッチ５１を備えている。
このリーダー／ライター２４は、メモリカード３１へのデータの書き込みの際には、ＰＣＩバス接続部４４から入力されたデータのうち、フラッシュメモリを制御するコマンドＣＯＭＭＡＮＤ〔７：０〕にはＣＲＣＣエンコーダ４９においてＣＲＣＣのパリティを付加し、また、データＷＤＡＴＡ〔７：０〕にはＥＣＣエンコーダ５０においてＥＣＣのパリティを付加する構成である。そして、切り替えスイッチ５１により選択され、８−１０変換デコーダ・パラレル／シリアル変換器５２の８−１０変換デコーダにおいてＤＣフリーの１０ビットデータへ変換するとともに同期コードを付加し、パラレル／シリアル変換器によりシリアルデータに変換し、メモリカード３１へのライトデータとして出力端子４５から出力する構成である。
また、メモリカード３１からデータを読み出す際には、入力端子４１から入力されたリードデータＲＤ＿ＤＡＴＡは、シリアル／パラレル変換器・８−１０変換デコーダ４６のシリアル／パラレル変換器によりパラレルデータへ変換された後、同期コードを検出してから８−１０変換デコーダにより元の８ビットデータへ戻され、ＥＣＣデコーダ４７において誤り訂正され、バスインタフェース４８を介しＰＣＩバス接続部４４から図３に示すホストＰＣ２３へ送られる構成である。
【００１８】
図５は、図３に示すメモリカード３１に用いられているフラッシュメモリの概要説明図である。このフラッシュメモリは、入出力端子（アドレス、データ、コマンド入出力ポート）ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８と、チップイネーブル、コマンドラッチイネーブル、アドレスラッチイネーブル、ライトイネーブル、リードイネーブルおよびライトプロテクトなどの各種制御信号が入力される制御端子ＣＥ（チップイネーブル），ＣＬＥ（コマンドラッチイネーブル），ＡＬＥ（アドレスラッチイネーブル），ＷＥ（ライトイネーブル），ＲＥ（リードイネーブル），ＷＰ（ライトプロテクト）と、レディ／ビジィ出力端子ＲＹ／ＢＹを備えている。そして、図５では、入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８を入出力端子５５、レディ／ビジィ出力端子ＲＹ／ＢＹを出力端子５６、制御端子ＣＥ，ＣＬＥ，ＡＬＥ，ＷＥ，ＲＥ，ＷＰを制御端子５７としてまとめて示してある。
出力端子５６から出力されるステータス出力は、そのフラッシュメモリにおいてデータの書き込みや消去が終了したか否かを確認するために用いる。
【００１９】
次に、フラッシュメモリの並列化によるデータの高速書き込みについて説明する。
フラッシュメモリに対し高速でデータを書き込むためには、フラッシュメモリを並列化し、書き込みデータを並列に入力すればよい。フラッシュメモリを２つ並列化すれば２倍の速さで書き込みを行うことが出来る。また、４つ並列化すれば４倍の速さで書き込みを行うことが出来る。
図３に示したメモリカードシステムの構成において、並列になっているフラッシュメモリの数や並列化の形態に応じて構成が異なってくるのは、メモリカードの構成だけである。従って、以下の説明におけるメモリカードシステムの構成は、図３に示したブロック図が適用される。
【００２０】
図６は、入出力が独立しているメモリカードの構成を示すブロック図である。このメモリカードは、ライトデータＷＲ＿ＤＡＴＡが入力される入力端子６１とシリアルクロックＳＣＬＫが入力される入力端子６２とリードデータＲＤ＿ＤＡＴＡが出力される出力端子６３とを備えている。また、シリアル／パラレル変換器・１０−８変換エンコーダ６４と、前記入力端子６２から入力されたシリアルクロックＳＣＬＫを分周するクロック分周器６５と、８−１０変換エンコーダ・パラレル／シリアル変換器６６と、エラー検出器６７と、メモリコントローラ６８と、フラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６とを備えている。フラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６の各入出力端子はそれぞれ独立した構成である。
【００２１】
メモリコントローラ６８は、各入出力端子がそれぞれ独立した構成のフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６に対し高速書き込みを可能にする高速書き込みアルゴリズム６８Ａを備えている。
【００２２】
図７は、図６に示したメモリカードのメモリコントローラ６８の構成を示すブロック図である。
このメモリコントローラ６８は、ライトデータＷＤＡＴＡ〔７：０〕の入力端子８１、コマンドＣＯＭＭＡＮＤ〔７：０〕の入力端子８２、ＥＣＣ＿ＳＹＮＤ〔７：０〕の入力端子８３、ＣＲＣＣ＿ＳＹＮＤ〔７：０〕の入力端子８４、クロック分周器６５から出力された分周クロック信号ＣＬＫの入力端子８５、フラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６からの各ステータス出力が入力される入力端子８６，８７，８８，８９，９０，９１，９２，９３およびリードデータＲＤＡＴＡ〔７：０〕が出力される出力端子９４を備えたコマンドデコーダ９５を備えている。
また、フラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ与えられるデータのバッファ用ＦＩＦＯメモリ１０１，１０４，１０７，１１０，１１３，１１６，１１９，１２１を備えている。
【００２３】
コマンドデコーダ９５は入力端子８２から与えられるコマンド、各フラッシュメモリの出力端子５６から出力されるステータス出力をもとに、高速書き込みアルゴリズム６８Ａに従ったデータの高速書き込みを行う。
【００２４】
また、フラッシュメモリ６９に対する入出力データＤＩＯ１〔７：０〕の入出力端子１０３を備えた入出力制御回路１０２、フラッシュメモリ７０に対する入出力データＤＩＯ２〔７：０〕の入出力端子１０６を備えた入出力制御回路１０５、フラッシュメモリ７１に対する入出力データＤＩＯ３〔７：０〕の入出力端子１０９を備えた入出力制御回路１０８、フラッシュメモリ７２に対する入出力データＤＩＯ４〔７：０〕の入出力端子１１２を備えた入出力制御回路１１１、フラッシュメモリ７３に対する入出力データＤＩＯ５〔７：０〕の入出力端子１１５を備えた入出力制御回路１１４、フラッシュメモリ７４に対する入出力データＤＩＯ６〔７：０〕の入出力端子１１８を備えた入出力制御回路１１７、フラッシュメモリ７５に対する入出力データＤＩＯ７〔７：０〕の入出力端子１２１を備えた入出力制御回路１２０、フラッシュメモリ７６に対する入出力データＤＩＯ８〔７：０〕の入出力端子１２３を備えた入出力制御回路１２２を有している。
【００２５】
また、フラッシュメモリ６９に対する各種制御信号が出力される制御端子１３２を有したフラッシュ制御コマンド発生器１３１、フラッシュメモリ７０に対する各種制御信号が出力される制御端子１３４を有したフラッシュ制御コマンド発生器１３３、フラッシュメモリ７１に対する各種制御信号が出力される制御端子１３６を有したフラッシュ制御コマンド発生器１３５、フラッシュメモリ７２に対する各種制御信号が出力される制御端子１３８を有したフラッシュ制御コマンド発生器１３７、フラッシュメモリ７３に対する各種制御信号が出力される制御端子１４０を有したフラッシュ制御コマンド発生器１３９、フラッシュメモリ７４に対する各種制御信号が出力される制御端子１４２を有したフラッシュ制御コマンド発生器１４１、フラッシュメモリ７５に対する各種制御信号が出力される制御端子１４４を有したフラッシュ制御コマンド発生器１４３、フラッシュメモリ７６に対する各種制御信号が出力される制御端子１４６を有したフラッシュ制御コマンド発生器１３５を備えている。
【００２６】
図８は、２個のフラッシュメモリが組にされ、それら各フラッシュメモリの各入出力端子が共通接続されているメモリカードの構成を示すブロック図である。なお、図８において図６と同一または相当の部分については同一の符号を付し説明を省略する。このメモリカードでは、フラッシュメモリ６９とフラッシュメモリ７０の入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８、フラッシュメモリ７１とフラッシュメモリ７２の入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８．フラッシュメモリ７３とフラッシュメモリ７４の入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８、フラッシュメモリ７５とフラッシュメモリ７６の入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８が共通接続されている。
【００２７】
メモリコントローラ２０１は、２個のフラッシュメモリが組にされその入出力端子が共通化されている構成のフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６に対する高速書き込みを可能にする高速書き込みアルゴリズム２０１Ａを備えている。
【００２８】
図９は、図８に示すメモリカードのメモリコントローラ２０１の構成を示すブロック図である。なお、図９において図７と同一または相当の部分については同一の符号を付し説明を省略する。
このメモリコントローラ２０１は、フラッシュメモリ６９，７０の組と、フラッシメ
モリ７１，７２の組と、フラッシュメモリ７３，７４の組と、フラッシュメモリ７５，７６の組へそれぞれ与えられるデータのバッファ用ＦＩＦＯメモリ３０１，３０４，３０７，３１１を備えている。
【００２９】
また、フラッシュメモリ６９，７０の組に対する入出力データＤＩＯ１２〔７：０〕の入出力端子３０３を備えた入出力制御回路３０２、フラッシュメモリ７１，７２の組に対する入出力データＤＩＯ３４〔７：０〕の入出力端子３０６を備えた入出力制御回路３０５、フラッシュメモリ７３，７４に対する入出力データＤＩＯ５６〔７：０〕の入出力端子３０９を備えた入出力制御回路３０８、フラッシュメモリ７５，７６に対する入出力データＤＩＯ７８〔７：０〕の入出力端子３１３を備えた入出力制御回路３１２を有している。
【００３０】
コマンドデコーダ３００は入力端子８２から与えられるコマンド、各フラッシュメモリの出力端子５６から出力されるステータス出力をもとに、高速書き込みアルゴリズム２０１Ａに従ったデータの高速書き込みを行うためのものである。
【００３１】
図１０は、４個のフラッシュメモリの各入出力端子が共通接続されているメモリカードの構成を示すブロック図である。
なお、図１０において図６と同一または相当の部分については同一の符号を付し説明を省略する。このメモリカードでは、フラッシュメモリ６９とフラッシュメモリ７０とフラッシュメモリ７１とフラッシュメモリ７２の各入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８が共通接続され、また、フラッシュメモリ７３とフラッシュメモリ７４とフラッシュメモリ７５とフラッシュメモリ７６の各入出力端子ＩＯ１，ＩＯ２，ＩＯ３，ＩＯ４，ＩＯ５，ＩＯ６，ＩＯ７，ＩＯ８が共通接続されている。
【００３２】
メモリコントローラ４０１は、４個づつのフラッシュメモリが組にされて各入出力端子が共通化されている構成のフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６に対し高速書き込みを可能にする高速書き込みアルゴリズム４０１Ａを備えている。
【００３３】
図１１は、図１０に示すメモリカードのメモリコントローラ４０１の構成を示すブロック図である。なお、図１１において図７と同一または相当の部分については同一の符号を付し説明を省略する。
このメモリコントローラ４０１は、フラッシュメモリ６９，７０，７１，７２の組と、フラッシュメモリ７３，７４，７５，７６の組へそれぞれ与えられるデータのバッファ用ＦＩＦＯメモリ４０１，４０４を備えている。
【００３４】
また、フラッシュメモリ６９，７０，７１，７２の組に対する入出力データＤＩＯ１４〔７：０〕の入出力端子４０３を備えた入出力制御回路４０２、フラッシュメモリ７３，７４，７５，７６の組に対する入出力データＤＩＯ５８〔７：０〕の入出力端子４０６を備えた入出力制御回路４０５を有している。
【００３５】
コマンドデコーダ４００は入力端子８２から与えられるコマンド、各フラッシュメモリの出力端子５６から出力されるステータス出力をもとに、フラッシュメモリ６９，７０，７１，７２、フラッシュメモリ７３，７４，７５，７６がそれぞれ組みにされた各フラッシュメモリに対し高速書き込みアルゴリズム４０１Ａに従ったデータの高速書き込みを行うためのものである。
【００３６】
次に、本発明の一実施例であるデータ記録方法を説明する。
なお、ここで以下の説明における各種パラメータについて説明しておく。ＰＡＧＥはフラッシュメモリの書き込み単位である１ページ分の有効データの大きさである。ＢＬＫは、フラッシュメモリの消去単位である１ブロック分のページ数である。ｍは、フラッシュメモリの並列数である。ｎは、入出力端子を共通にするフラッシュメモリの数であり、独立している場合は、ｎは「１」、２つのフラッシュメモリの入出力端子が共通化されている場合はｎは「２」、４つのフラッシュメモリの入出力端子が共通化されている場合はｎは「４」である。ＴＲは、１ページ分のデータをレジスタに転送するのに要する時間である。ＴＰａｖｒは、１ページ分のデータの平均プログラム時間、ＴＰｍａｘは、１ページ分のデータの最大プログラム時間である。
ΔＴは、１ブロック分のデータを消去し書き込むために要する時間のフラッシュメモリ間のバラツキである。ＴＥａｖｒをフラッシュメモリの消去単位である１ブロック分の消去に要する時間の平均値、ＴＷａｖｒをフラッシュメモリの書き込み単位である１ページ分の書き込みに要する時間の平均値とすると、１ブロック分のデータを消去し書き込むために要する時間の平均値は、ＴＥａｖｒ＋ＢＬＫ×ＴＷａｖｒであり、並列化されたｍ個のフラッシュメモリのうち最も書込み所要時間および消去所要時間の遅いフラッシュメモリが必要とする時間の平均を（ＴＥａｖｒ＋ＢＬＫ×ＴＷａｖｒ）ｍａｘとすると、ΔＴ＝（ＴＥａｖｒ＋ＢＬＫ×ＴＷａｖｒ）ｍａｘ−（ＴＥａｖｒ＋ＢＬＫ×ＴＷａｖｒ）で定義される。
Ｔａは、１ページ分のデータの最小到達時間である。ＲＡＴＥは、１ブロックのデータの消去、書き込みを繰り返す場合の最大データレートであり、ＲＡＴＥ＝ＰＡＧＥ／Ｔａである。
【００３７】
フラッシュメモリを使用したメモリカードに対する高速書き込みアーキテクチャーとして必要な条件は、（１）待ち時間が短く、書き込み速度が速いこと（２）書き込みアドレスが確定しており、書き込みと読み出しについての制御が簡単であること（３）並列化された全てのフラッシュメモリに空き領域が発生せず、メモリ容量を最大限に利用できることの３点である。
以下、これらの条件を満足するデータ高速転送方法をここでは「順不定データ高速転送方式」という。この「順不定データ高速転送方式」は、ページ単位では、書込み所要時間および消去所要時間の速いフラッシュメモリへデータが次々と書き込まれていくが、ブロック単位では、書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するのを待って、すなわちブロック単位で書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するタイミングに合わせて、各メモリにおいて次のページ単位、ブロック単位の書き込みに進むものである。
すなわち、ｍ個の並列化したフラッシュメモリを非同期で動作させ、１ブロック（ＢＬＫページ）の消去が終了したフラッシュメモリから書き込みを行う。書き込みが終了したフラッシュメモリに対しては、ブロック単位でデータを転送し書き込んでいく。そして、１ブロック分の書き込みが終了したフラッシュメモリは、他の全てのフラッシュメモリにおける書き込みが終了するまで待ってから、すなわちブロック単位で同期をとって、全てのフラッシュメモリにおける次のブロックの消去へ進む。
また、この「順不定データ高速転送方式」において、１ページの書き込みに要する時間は、ｎ×ＴＲ＋ＴＰａｖｒ＋ΔＴである。この「順不定データ高速転送方式」では、フラッシュメモリの書き込み速度をほぼ最大限に活用できる。また、書き込みアドレスが確定しているため、書き込みや読み出しのための制御が簡単になり、さらに書込み所要時間および消去所要時間の遅いフラッシュメモリが追いついてくるのをブロック単位で待つため、空き領域が発生することもない。
【００３８】
先ず、図６に示すメモリカードの構成と、図７に示すメモリコントローラの構成と、図１２に示すタイミングチャートを参照し、各フラッシュメモリの入出力端子がそれぞれ独立した構成のメモリカードに対する「順不定データ高速転送方式」について説明する。図１２は、Ｐ０１からＰ６４までの番号を有するページがどのようなタイミングでフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ割り振られていくかを示すタイミングチャートである。なお、＃１は図６に示すフラッシュメモリ６９、＃２は同様にフラッシュメモリ７０、＃３はフラッシュメモリ７１、＃４はフラッシュメモリ７２、＃５はフラッシュメモリ７３、＃６はフラッシュメモリ７４、＃７はフラッシュメモリ７５、＃８はフラッシュメモリ７６に対応する。また、図６に示すようにフラッシュメモリは８並列構成であり、１ブロックは４ページ（ＢＬＫ＝４）である。
図１２に示すタイミングチャートでは、最初の８つのブロックでは、Ｐ０１， Ｐ０９, Ｐ１７，Ｐ２５が＃１のフラッシュメモリに、Ｐ０２，Ｐ１０，Ｐ１８，Ｐ２６が♯２のフラッシュメモリに、Ｐ０３，Ｐ１１，Ｐ１９，Ｐ２７が＃３のフラッシュメモリにというように、各フラッシュメモリへ８個おきのページが割り振られそのページのデータが書き込まれている。１ブロック分の書き込みがもっとも速く終了した＃８のフラッシュメモリは、一番遅い＃６の書き込みが終了するまで待っている。従って、どのフラッシュメモリにどのページのデータが書き込まれるかは、あらかじめ決まっており変更されることはない。また、遅いフラッシュメモリに空き領域が発生することもない。
ブロック単位で同期をとるために待ち時間が発生しているが、ページ単位で同期をとって次のページ書き込みを行う従来方式に比べ、待ち時間の割合は少なく書き込みデータ・レートは速い。
書き込み時間のバラツキΔＴが不透明なので、正確に見積もることはできないが、書き込みデータ・レートを簡単に計算してみる。
図１２に示すように１ブロック分を消去してから書き込むという使い方の場合、最小データ到着間隔：Ｔａ＝（ＢＬＫ×（ＴＲ＋ＴＰａｖｒ）＋ＴＥａｖｒ＋ΔＴ）／ｍ／ＢＬＫなので、図１２に示すようなｍ＝８、ＢＬＫ＝４の場合、Ｔａ＝（４×（ＴＲ＋ＴＰａｖｒ）＋ ＴＥａｖｒ＋ΔＴ）／（８×４）になる。
【００３９】
なお、図１２に示したタイミングでＰ０１からＰ６４までの番号を持つページがフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ割り振られ、この「順不定データ高速転送方式」によるデータのレジスタ転送、書き込み、ブロック単位の消去が実行されることになるが、この制御を実現しているのはメモリコントローラ６８の高速書き込みアルゴリズム６８Ａである。図１３は、この「順不定データ高速転送方式」を実現する高速書き込みアルゴリズム６８Ａの構成を示すフローチャートである。以下、このフローチャートに従って図１２に示したタイミングによる高速書き込み処理を説明する。
図１３のフローチャートに示す高速書き込みアルゴリズム６８Ａは、入出力端子がそれぞれ独立したフラッシュメモリを制御するものであり、一例としてフラッシュメモリ６９を制御する場合を示している。従って、フラッシュメモリ７０，７１，７２，７３，７４，７５，７６も、図１３のフローチャートと同様な高速書き込みアルゴリズムによりそれぞれ制御される。先ず、イニシャライズによりフラッシュメモリ６９のステータス出力を「レディ状態」、データＳＹＮＣを“１”に初期設定する（ステップＳ１２）。次に、８個すべてのフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６において１ブロック分のページの書き込みが終了したときに立つフラッグであるデータＳＹＮＣが“１”であるか否かを判定する（ステップＳ１３）。このときデータＳＹＮＣは、前記イニシャライズにより“１”に設定されているため、ステップＳ１３からステップＳ２０へ進む。ステップＳ２０では、この高速書き込み処理に対する処理終了の指示があるか否かを判定する。この高速書き込み処理に対する処理終了の指示があればこの高速書き込み処理を終了することになるが、処理終了の指示がなければ、ステップＳ２０からステップＳ１４へ進み、フラッシュメモリ６９の最初の１ブロック分の消去処理を実行し、ステップＳ１３へ戻る。前記ステップＳ１２のイニシャライズにより“１”に設定されたフラッグ、データＳＹＮＣは、前記ステップＳ１４においてフラッシュメモリ６９の最初の１ブロック分の消去処理を実行した時点で“０”になるため、フラッシュメモリ６９の最初の１ブロック分の消去処理を実行しステップＳ１３へ戻った後は、続いてステップＳ１５へ進む。このステップＳ１５では、フラッシュメモリ６９の書き込み済みページ数をチェックし、フラッシュメモリ６９の書き込み済みページ数がＢＬＫ未満であるか否かを判定する。このとき、フラッシュメモリ６９においては、書き込み済みページ数がＢＬＫに達していない。このため、フラッシュメモリ６９へ割り当てられた１ブロック分のページについての書き込みを行うためにステップＳ１６へ進む。ステップＳ１６では、バッファ用ＦＩＦＯメモリ１０１にデータが存在しているか否かを判定する。この結果、バッファ用ＦＩＦＯメモリ１０１にデータが存在している場合、ステップＳ１７へ進む。ステップＳ１７では、フラッシュメモリ６９のステータス出力が「レディ状態」であることを確認した後、ステップＳ１８においてフラッシュメモリ６９に割り当てられた最初のページＰ０１について書き込みを行うためのレジスタ転送を開始し、ステップＳ１３へ戻る。
なお、このステップＳ１８の処理で開始するレジスタ転送の対象となる１ブロック分のページについては、ページ割り振りテーブルにより予め設定されている。このページ割り振りテーブルには、フラッシュメモリ６９に割り振るページがＰ０１，Ｐ０９，Ｐ１７，Ｐ２５，Ｐ３３，Ｐ４１，Ｐ４９，Ｐ５７の順で、例えば暫時増加する所定のアドレスに設定されている。そして、このページ割り振りテーブルの前記アドレスに設定されているページを参照ポインタにより順番に参照し読み出す。この参照ポインタは、ステップＳ１８の処理を通過するたびに、ページ割り振りテーブルの参照するアドレスをインクリメントする。このため、前回のステップＳ１８のレジスタ転送開始処理で参照したページがＰ０１であるときには今回はＰ０９、前回参照したページがＰ０９であるときにはＰ１７、前回参照したページがＰ１７であるときには今回Ｐ２５というように、ステップＳ１８のレジスタ転送開始処理を実行するたびにフラッシュメモリ６９に割り振るページが前記ページ割り振りテーブルから読み出される。
【００４０】
フラッシュメモリ６９では、前記レジスタ転送されたデータを前記割り当てられたページＰ０１へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。この書き込み処理はフラッシュメモリ６９固有の所要時間経過後に終了し、フラッシュメモリ６９のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。
【００４１】
次のサイクルでは、ステップＳ１３からの処理が繰り返され、前述したステップＳ１３、ステップＳ１５、ステップＳ１６、ステップＳ１７、ステップＳ１８の処理が、データＳＹＮＣが“１”になるまで繰り返され、フラッシュメモリ６９に対し前記ページ割り振りテーブルにより割り当てられた次のページＰ０９以降の１ブロック分のページについての書き込みを行うためのレジスタ転送、書き込み処理が繰り返される。
フラッシュメモリ６９における書き込み済みページ数がＢＬＫに達すると、ステップＳ１５からステップＳ１３へ戻り、フラッシュメモリ７０，７１，７２，７３，７４，７５，７６において１ブロック分のページの書き込みが終了しデータＳＹＮＣが“１”になるまでステップＳ１３、ステップＳ１５の処理を繰り返す。そして、他のフラッシュメモリに割り当てられた１ブロック分のページについての書き込みが終了し、データＳＹＮＣが“１”になると、ステップＳ１３からステップＳ２０へ進み、この順不定データ高速転送方式による書き込み処理について「終了」か否かを判定し、「終了」の場合にはこの順不定データ高速転送処理による書き込み処理を終える。一方、「終了」でない場合には、ステップＳ１４へ進み、フラッシュメモリ６９の次の１ブロック分の消去を開始し、ステップＳ１３へ戻る。フラッシュメモリ６９の次の１ブロック分の消去処理の実行によりフラグ、データＳＹＮＣは“１”から“０”になるため、ステップＳ１３からステップＳ１５、ステップＳ１６、ステップＳ１７、ステップＳ１８へ進み、これらの処理を、フラッシュメモリ６９において書き込み済みページ数がＢＬＫに達するまで繰り返し、前記次の１ブロック分の各ページについてのレジスタ転送と書き込みを行う。
【００４２】
また、フラッシュメモリ６９に割り当てられた１ブロック分のページについての書き込みが他のフラッシュメモリに比べて最も遅く終了した場合には、フラッシュメモリ６９に割り当てられた１ブロック分のページについての書き込みが終了した直後にフラグ、データＳＹＮＣが“１”になるため、フラッシュメモリ６９に割り当てられた１ブロック分のページについての書き込みが終了した後、速やかにステップＳ１３からステップＳ２０へ進み、ステップＳ２０で「終了」でなければステップＳ１４へ進んで、フラッシュメモリ６９の次の１ブロック分の消去が開始される。
また、ステップＳ１６において、バッファ用ＦＩＦＯメモリ１０１にデータが存在していない場合にはステップＳ１３へ戻る。
【００４３】
なお、他のフラッシュメモリ７０，７１，７２，７３，７４，７５，７６についても、図１３のフローチャートと同様な高速書き込みアルゴリズムにより制御されており、各フラッシュメモリを制御するそれぞれの高速書き込みアルゴリズムにおいて、対応するフラッシュメモリのステータス出力がレディ状態、データＳＹＮＣが“１”の場合、各フラッシュメモリは、それぞれの高速書き込みアルゴリズムにより消去状態に入り、前記各フラッシュメモリの次の１ブロック分の消去を開始する。従って、各フラッシュメモリのブロック単位の消去については同期的に実行されることになる。
【００４４】
次に、図８に示すメモリカードの構成と、図９に示すメモリコントローラの構成と、図１４に示すタイミングチャートを参照し、２個のフラッシュメモリが組みにされそれら各入出力端子が共通接続された構成のメモリカードに対する「順不定データ高速転送方式」を説明する。
図１４は、２個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、１つのバスを共有している場合、Ｐ０１からＰ６４までの番号を持つページがどのようなタイミングでフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ割り振られていくかを示すタイミングチャートである。なお、＃１は図８に示すフラッシュメモリ６９、＃２は同様にフラッシュメモリ７０、＃３は同様にフラッシュメモリ７１、＃４は同様にフラッシュメモリ７２、＃５は同様にフラッシュメモリ７３、＃６は同様にフラッシュメモリ７４、＃７は同様にフラッシュメモリ７５、＃８は同様にフラッシュメモリ７６に対応する。
図１２の場合と異なるのは、２つのフラッシュメモリでバスを共有しているので、その組におけるフラッシュメモリ間ではレジスタ転送に待ち時間が生じる場合があることである。例えば、＃３，＃４のフラッシュメモリでは、＃３のフラッシュメモリがＰ０３のプログラムを終えた後、＃３，＃４のフラッシュメモリのステータス出力は共にレディになっている。しかしながら、＃４のフラッシュメモリにＰ０４を転送するためにバスが使用され、＃３のフラッシュメモリには待ち時間が生じている。同様に＃５，＃６のフラッシュメモリでＰ０５，Ｐ０６の番号を持つページをレジスタ転送する際にも待ち時間が生じている。
ここで、この「順不定データ高速転送方式」における書き込みデータ・レートを簡単に計算してみる。図１４に示したように１ブロック分を消去してから書き込むという使い方の場合、最小データ到着間隔：Ｔａ＝（ＢＬＫ×(２×ＴＲ＋ＴＰａｖｒ）＋ＴＥａｖｒ＋ΔＴ）／ｍ／ＢＬＫなので、図１３に示すｍ＝８，ＢＬＫ＝４の場合、Ｔａ＝（４×（２×ＴＲ＋ＴＰａｖｒ） + ＴＥａｖｒ＋ΔＴ）／（８×４）になる。
【００４５】
なお、図１４に示したタイミングでＰ０１からＰ６４までの番号を持つページがフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ割り振られ、データ高速転送が行われることになるが、この制御を実現しているのはメモリコントローラ２０１の高速書き込みアルゴリズム２０１Ａである。
図１５は、この高速書き込みアルゴリズム２０１Ａの構成を示すフローチャートである
。以下、このフローチャートに従って図１４に示したタイミングによる高速書き込み処理を説明する。
図１５のフローチャートに示す高速書き込みアルゴリズム２０１Ａは、入出力端子が共通接続された２つのフラッシュメモリを制御するものであり、一例として２つのフラッシュメモリ６９，７０を制御する場合を示している。従って、フラッシュメモリ７１，７２、フラッシュメモリ７３，７４、フラッシュメモリ７５，７６の入出力端子が共通化された２つのフラッシュメモリも、図１５のフローチャートと同様な高速書き込みアルゴリズムにより制御される。
先ず、イニシャライズにより、フラッシュメモリ６９，７０に対し各ステイタス出力を「レディ状態」、フラッグ、データＳＹＮＣを“１”、チェック対象をフラッシュメモリ６９に初期設定する（ステップＳ２２）。続いて８個すべてのフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６において１ブロック分のページの書き込みが終了したときに立つフラッグであるデータＳＹＮＣが“１”であるか否かを判定する（ステップＳ２３）。イニシャライズによりフラッシュメモリ６９，７０のフラッグ、データＳＹＮＣが“１”に設定された直後では、ステップＳ２３からステップＳ２６へ進む。ステップＳ２６では、この高速書き込み処理に対する処理終了の指示があるか否かを判定する。この高速書き込み処理に対する処理終了の指示があればこの高速書き込み処理を終了することになるが、処理終了の指示がなければ、ステップＳ２６からステップＳ２４へ進み、フラッシュメモリ６９，７０の最初の１ブロック分の消去処理を実行し、ステップＳ２３へ戻る。前記ステップＳ２２のイニシャライズにより“１”に設定されたフラッグ、データＳＹＮＣは、前記ステップＳ２４においてフラッシュメモリ６９，７０の最初の１ブロック分の消去処理を実行した時点で“０”になるため、フラッシュメモリ６９，７０の最初の１ブロック分の消去処理を実行しステップＳ２３へ戻った後は、続いてフラッシュメモリ６９とフラッシュメモリ７０の状態チェックを交互に行うためのチェック対象フラッシュメモリ切替処理へ進む（ステップＳ２５）。
【００４６】
このチェック対象フラッシュメモリ切替処理では、チェック対象であるフラッシュメモリをフラッシュメモリ６９とフラッシュメモリ７０との間で交互に切り替える。一例として、このチェック対象フラッシュメモリ切替処理では初期設定により最初のチェック対象はフラッシュメモリ６９を選択する。このため、ステップＳ２５からステップＳ３１以降のフラッシュメモリ６９の状態チェックのための処理へ進む。ステップＳ３１では、フラッシュメモリ６９の書き込み済みページ数をチェックし、フラッシュメモリ６９の書き込み済みページ数がＢＬＫ未満であるか否かを判定する。このとき、フラッシュメモリ６９においては、書き込み済みページ数はＢＬＫに達していない。このため、フラッシュメモリ６９へ割り当てられた１ブロック分のページについての書き込みを行うためにステップＳ３２へ進む。ステップＳ３２では、バッファ用ＦＩＦＯメモリ３０１にデータが存在しているか否かを判定する。この結果、バッファ用ＦＩＦＯメモリ３０１にデータが存在している場合、ステップＳ３３へ進む。ステップＳ３３では、フラッシュメモリ６９のステータス出力が「レディ状態」であることを確認した後、続くステップＳ３４においてバス使用中でないことを確認後、ステップＳ３５においてフラッシュメモリ６９に割り当てられたページＰ０１について書き込みを行うためのレジスタ転送を開始する。
なお、このステップＳ３５の処理で開始するレジスタ転送の対象となるフラッシュメモリ６９に対する１ブロック分のページについては、ページ割り振りテーブルにより予め設定されている。このページ割り振りテーブルには、フラッシュメモリ６９に割り振るページがＰ０１，Ｐ０９，Ｐ１７，Ｐ２５，Ｐ３３，Ｐ４１，Ｐ４９，Ｐ５７の順で、例えば暫時増加する所定のアドレスに設定されている。そして、このページ割り振りテーブルの前記アドレスに設定されているページを参照ポインタにより順番に参照し読み出す。この参照ポインタは、ステップＳ３５の処理を通過するたびに、ページ割り振りテーブルの参照するアドレスをインクリメントする。このため、前回のステップＳ３５のレジスタ転送開始処理で参照したページがＰ０１であるときには今回はＰ０９、前回参照したページがＰ０９であるときにはＰ１７、前回参照したページがＰ１７であるときには今回Ｐ２５というように、ステップＳ３５のレジスタ転送開始処理を実行するたびにフラッシュメモリ６９に割り振るページが前記ページ割り振りテーブルから読み出される。
続いてステップＳ３６へ進み、チェック対象とするフラッシュメモリをフラッシュメモリ６９からフラッシュメモリ７０へ切り替えるため切替設定を行う。この切替設定により、前記ステップＳ２５のチェック対象フラッシュメモリ切替処理で選択されるチェック対象のフラッシュメモリは、フラッシュメモリ６９からフラッシュメモリ７０へ切り替わる。そして、ステップＳ３６で切替設定を行った後、ステップＳ２３へ戻る。
【００４７】
フラッシュメモリ６９では、前記ステップＳ３５によりレジスタ転送されたデータを前記割り当てられたページＰ０１へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。この書き込み処理はフラッシュメモリ６９固有の所要時間経過後に終了し、フラッシュメモリ６９のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。
【００４８】
次のサイクルでは、ステップＳ２３からステップＳ２５へ進み、さらにステップＳ４１、ステップＳ４２……というようにフラッシュメモリ７０の状態チェックのための処理を行う。フラッシュメモリ６９において割り振られたページＰ０１についての書き込み処理が終了したとき、フラッシュメモリ７０は消去処理中であり、そのステータス出力は「ビジィ状態」である。このためフラッシュメモリ７０の状態チェックのための処理では、ステップＳ４１、ステップＳ４２、ステップＳ４３へ進み、ステップＳ４３においてフラッシュメモリ７０のステータス出力が「レディ状態」ではないことを判定する。この結果、ステップＳ４３からステップＳ４６へ進み、チェック対象のフラッシュメモリをフラッシュメモリ７０からフラッシュメモリ６９へ切り替え、ステップＳ２３へ戻る。そして、ステップＳ２３からステップＳ２５、さらにステップＳ３１へ進み、フラッシュメモリ６９についての状態チェックのための処理へ進む。そして、ステップＳ３１、ステップＳ３２、ステップＳ３３、ステップＳ３４の順で進み、ステップＳ３４においてバス使用中でないことを確認後、ステップＳ３５においてフラッシュメモリ６９に割り当てられた次のページＰ０９について書き込みを行うためのレジスタ転送を開始する。続いてステップＳ３６へ進み、チェック対象とするフラッシュメモリをフラッシュメモリ６９からフラッシュメモリ７０へ切り替えるため切替設定を行う。この切替設定により、前記ステップＳ２５のチェック対象フラッシュメモリ切替処理で選択されるチェック対象のフラッシュメモリは、フラッシュメモリ６９からフラッシュメモリ７０へ切り替わる。そして、ステップＳ３６で切替設定を行った後、ステップＳ２３へ戻る。
【００４９】
フラッシュメモリ６９では、前記ステップＳ３５によりレジスタ転送されたデータを前記割り当てられたページＰ０９へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。
【００５０】
次のサイクルでは、ステップＳ２３からの処理が繰り返され、ステップＳ２３からステップＳ２５へ進み、今度はステップＳ４１、ステップＳ４２……というようにフラッシュメモリ７０の状態チェックのための処理を行い、フラッシュメモリ６９とフラッシュメモリ７０の状態チェックのための処理を交互に繰り返す。
そして、この間にフラッシュメモリ７０についての消去処理が終了すると、フラッシュメモリ７０のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。また、このときバスは使用中ではない。
この結果、フラッシュメモリ７０の状態チェックのための処理におけるステップＳ４３によりフラッシュメモリ７０のステータス出力が「レディ状態」であることが確認されると、ステップＳ４４によりバス使用中でないことを確認し、ステップＳ４５においてフラッシュメモリ７０に割り当てられたページＰ０２について書き込みを行うためのレジスタ転送を開始する。
なお、このステップＳ４５の処理で開始するレジスタ転送の対象となるフラッシュメモリ７０に対する１ブロック分のページについては、ページ割り振りテーブルにより予め設定されている。このページ割り振りテーブルには、フラッシュメモリ７０に割り振るページがＰ０２，Ｐ１０，Ｐ１８，Ｐ２６，Ｐ３４，Ｐ４２，Ｐ５０，Ｐ５８の順で、例えば暫時増加する所定のアドレスに設定されている。そして、このページ割り振りテーブルの前記アドレスに設定されているページを参照ポインタにより順番に参照し読み出す。この参照ポインタは、ステップＳ４５の処理を通過するたびに、ページ割り振りテーブルの参照するアドレスをインクリメントする。このため、前回のステップＳ４５のレジスタ転送開始処理で参照したページがＰ０２であるときには今回はＰ１０、前回参照したページがＰ１０であるときには今回はＰ１８、前回参照したページがＰ１８であるときには今回Ｐ２６というように、ステップＳ４５のレジスタ転送開始処理を実行するたびにフラッシュメモリ７０に割り振るページが前記ページ割り振りテーブルから読み出される。
続いてステップＳ４６へ進み、チェック対象とするフラッシュメモリをフラッシュメモリ７０からフラッシュメモリ６９へ切り替えるため切替設定を行う。この切替設定により、前記ステップＳ２５のチェック対象フラッシュメモリ切替処理で選択されるチェック対象のフラッシュメモリは、フラッシュメモリ７０からフラッシュメモリ６９へ切り替わる。この切替設定をステップＳ４６で行なった後、ステップＳ２３へ戻る。
【００５１】
フラッシュメモリ７０では、前記ステップＳ４５によりレジスタ転送されたデータを前記割り当てられたページＰ０２へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。
【００５２】
次のサイクルでは、ステップＳ２３からステップＳ２５、そして、ステップＳ３１以降処理へ進む。フラッシュメモリ６９とフラッシュメモリ７０が共に書き込み中であり各ステータス出力が「ビジィ状態」の間は、フラッシュメモリ６９とフラッシュメモリ７０の状態チェックのための処理を交互に繰り返す。そして、この間にフラッシュメモリ６９とフラッシュメモリ７０についての前記割り振られた各ページについての書き込みが同時に終了すると、フラッシュメモリ６９，７０のステータス出力は共に「ビジィ状態」から「レディ状態」へ変わる。また、このときバスは使用中ではない。
このようにフラッシュメモリ６９およびフラッシュメモリ７０が同時に書き込み終了となった場合には、その時点でどちらのフラッシュメモリの状態チェックのための処理を実行しているかに応じて、その状態チェックの対象となっているほうのフラッシュメモリが優先的にバスを使用しレジスタ転送を行うことになる。すなわち、フラッシュメモリ６９とフラッシュメモリ７０のステータス出力が同時に「ビジィ状態」から「レディ状態」へ変わった時点において、例えばフラッシュメモリ６９について状態チェックのための処理を実行しており、ステップＳ３３によりフラッシュメモリ６９のステータス出力が「ビジィ状態」から「レディ状態」へ変わったことが判定された場合、ステップＳ３５によりフラッシュメモリ６９がバスを使用しレジスタ転送を開始し、フラッシュメモリ６９では割り振られたページＰ１７についての書き込みが行われる。このため、フラッシュメモリ７０については、次のサイクルのフラッシュメモリ７０の状態チェックのための処理におけるステップＳ４４により、フラッシュメモリ６９によるバス使用中の状態が判定される結果、ステップＳ４４からステップＳ４６へ進むため、図１４のタイミングチャートに示すようにフラッシュメモリ７０によるレジスタ転送は、フラッシュメモリ６９による前記レジスタ転送の終了によりバスが開放されるタイミングまで待たされることになり、この時点で実行可能になる。図１４のタイミングチャートでは、フラッシュメモリ６９のページＰ０９とフラッシュメモリ７０のページＰ０２の書き込みが同時に終了した場合、フラッシュメモリ７０によるページＰ１０についてのレジスタ転送は、フラッシュメモリ６９によるページＰ１７についてのレジスタ転送の終了によりバスが開放されるタイミングまで待たされる。
【００５３】
このようにしてフラッシュメモリ６９，７０へ割り振られたページへデータの書き込みが行われ、フラッシュメモリ７０へ割り振られた１ブロック分の最後のページＰ２６への書き込みが終了すると、フラッシュメモリ６９，７０のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。このとき全てのフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６において１ブロック分のページの書き込みは終了していないためフラッグ、データＳＹＮＣは“１”にはなっていない。このため、ステップＳ２３からステップＳ２５へ進み、ステップＳ２５のチェック対象フラッシュメモリ切替処理によりステップＳ３１とステップＳ４１の判定処理を繰り返す。このときフラッシュメモリ６９，７０の書き込み済みページ数はＢＬＫとなっているため、ステップＳ３１では次にステップＳ３６へ進み、またステップＳ４１では次にステップＳ４６へ進み、フラッシュメモリ７１，７２，７３，７４，７５，７６において１ブロック分のページの書き込みが終了するまでステップＳ２３、ステップＳ２５、ステップＳ３１、ステップＳ３６の処理、またはステップＳ２３、ステップＳ２５、ステップＳ４１、ステップＳ４６の処理を繰り返す。そして、全てのフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６において１ブロック分のページの書き込みが終了し、データＳＹＮＣが“１”になると、ステップＳ２３からステップＳ２６へ進み、この順不定データ高速転送処理の書き込み処理について「終了」か否かを判定し、「終了」の場合にはこの順不定データ高速転送処理による着き込み処理を終える。一方、「終了」でない場合には、ステップＳ２４へ進み、フラッシュメモリ６９，７０における次の１ブロック分のページの消去が行われる。
【００５４】
なお、他のフラッシュメモリ７１，７２の組、フラッシュメモリ７３，７４の組、フラッシュメモリ７５，７６の組についても、図１５のフローチャートと同様な高速書き込みアルゴリズムにより制御されており、前記フラッシュメモリの組を制御するそれぞれの高速書き込みアルゴリズムにおいて、フラッグ、データＳＹＮＣが“１”の場合、その組の各フラッシュメモリは、それぞれの高速書き込みアルゴリズムにより消去状態に入り、前記各フラッシュメモリの次の１ブロック分の消去を開始する。従って、全てのフラッシュメモリのブロック単位の消去については同期的に実行されることになる。
【００５５】
このようにして、１つのバスを２つのフラッシュメモリ６９，７０で共有し、順番に関係なくステータス出力がレディ状態になったフラッシュメモリがバスを使用する「順不定データ高速転送方式」の制御を実現することが出来る。
【００５６】
図１６は、４個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、１つのバスを共有している場合、Ｐ０１からＰ６４までの番号を持つページがどのようなタイミングでフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ割り振られていくかを示すタイミングチャートである。
なお、＃１は図１０に示すフラッシュメモリ６９、＃２は同様にフラッシュメモリ７０、＃３は同様にフラッシュメモリ７１、＃４は同様にフラッシュメモリ７２、＃５は同様にフラッシュメモリ７３、＃６は同様にフラッシュメモリ７４、＃７は同様にフラッシュメモリ７５、＃８は同様にフラッシュメモリ７６に対応する。
図１６に示すタイミングチャートは、４つのフラッシュメモリが組みにされ各入出力端子が共通接続された構成のメモリカードに対する「順不定データ高速転送方式」であり、図１５に示すフローチャートにおいてフラッシュメモリの数を４つに拡張した場合であり、次の点において図１５と異なっているだけであり動作説明は省略する。すなわち、図１５におけるステップＳ２２のイニシャライズ処理で、フラッシュメモリ６９，７０，７１，７２のステータス出力を「レディ状態」、データＳＹＮＣを“１”、チェック対象をフラッシュメモリ６９へ初期設定すること。また、図１５におけるステップＳ２５のチェック対象フラッシュメモリ切替処理において選択されるチェック対象のフラッシュメモリはフラッシュメモリ６９，７０，７１，７２のいずれかになること。そして、選択されたフラッシュメモリに対応するそれぞれの状態チェックのための処理フロー、すなわちフラッシュメモリ６９，７０，７１，７２にそれぞれ対応する処理フローが必要となること。そして、このラッシュメモリ６９，７０，７１，７２にそれぞれ対応する処理フローにおける図１５のステップＳ３４、ステップＳ４４のバス使用中判定処理に対応する処理では、他のフラッシュメモリによるバス使用中について判定を行うこと。また、図１５のステップＳ３５、ステップＳ４５の処理に対応する処理では、レジスタ転送の対象となるフラッシュメモリ６９，７０，７１，７２に対する１ブロック分のページについてのページ割り振りテーブルとその参照ポインタが必要になることである。また、図１５のステップＳ３６、ステップＳ４６のチェック対象フラッシュメモリの切替設定に対応する処理では、チェック対象のフラッシュメモリが、例えばフラッシュメモリ６９からフラッシュメモリ７０、フラッシュメモリ７０からフラッシュメモリ７１、フラッシュメモリ７１からフラッシュメモリ７２へ順次切り替わるように切替設定されることである。
【００５７】
このようにして、１つのバスを４つのフラッシュメモリ６９，７０，７１，７２の組で共有し、また、１つのバスを４つのフラッシュメモリ７３，７４，７５，７６の組で共有し、順番に関係なくステータス出力がレディ状態になったフラッシュメモリがバスを使用する「順不定データ高速転送方式」の制御を実現することが出来る。
【００５８】
この、４個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、１つのバスを共有している構成の「順不定データ高速転送方式」が、図１２に示した「順不定データ高速転送方式」と異なるのは、４つのフラッシュメモリでバスを共有しているので、レジスタ転送に待ち時間が生じる場合が頻繁に生じることである。例えば、＃１〜＃４の
フラッシュメモリでは、＃３のフラッシュメモリがＰ０３のプログラムを終えた後、＃２， ＃３，＃４のフラッシュメモリのステータス出力は共にレディになっている。しかしながら、＃４のフラッシュメモリにＰ０４のページを転送するためにバスが使用され、＃２，＃３には待ち時間が生じている。ここでも、フラッシュメモリ間でステータス出力が同時に「レディ状態」になったときには書き込まれるページ数ができるだけ偏らないように選択している。同様に、＃５，＃６のフラッシュメモリでＰ０５，Ｐ０６のページをレジスタ転送する際にも待ち時間が生じている。この待ち時間は図１２の場合よりもさらに長くなる。
ここで、この「順不定データ高速転送方式」における書き込みデータ・レートを簡単に計算してみる。図１６に示したように１ブロック分を消去してから書き込むという使い方の場合、最小データ到着間隔：Ｔａ＝（ＢＬＫ×（４×ＴＲ＋ＴＰａｖｒ）＋ＴＥａｖｒ＋ΔＴ）／ｍ／ＢＬＫなので、図１６に示すｍ＝８，ＢＬＫ＝４の場合、Ｔａ＝（４×（４×ＴＲ＋ＴＰａｖｒ）＋ＴＥａｖｒ＋ΔＴ）／（８×４）になる。
【００５９】
なお、この「順不定データ高速転送方式」では、図１６に示したタイミングでＰ０１からＰ６４までの番号を持つページがフラッシュメモリ６９，７０，７１，７２，７３，７４，７５，７６へ割り振られることになるが、この制御を実現しているのは図１０および図１１に示すメモリコントローラ４０１の高速書き込みアルゴリズム４０１Ａである。
【００６０】
以上のように、この実施例１によれば、データが書き込まれるアドレスは確定されている状態で、ｍ並列したフラッシュメモリを非同期で動作させ、１ブロックの消去が終了したフラッシュメモリから書き込みを行う。そして、書き込みが終了したフラッシュメモリにはそのブロック分のデータを転送し書き込んでいき、全てのフラッシュメモリのブロック書き込みが終了してから次のブロックの消去に進むというブロック単位で同期した動作を行う。
また、バスを共有する場合、入出力端子が共通接続されたフラッシュメモリ間でレジスタ転送のタイミングが競合するときには、一方のレジスタ転送のタイミングが待たされることなるが、ｎ個のフラッシュメモリ間の入出力端子が共通接続されるため、入出力端子が共通接続されるフラッシュメモリは、積層した構成で実装することが可能となり、実装面積が１／ｎとなるメリットが期待できる。
また、この実施例１の「順不定データ高速転送方式」は、ブロック単位で同期し次の書き込み処理へ進むため、従来方式のようにページ単位で同期し次ページ書き込みへ進む方式に比べ、空き領域が過剰に発生することがなく、メモリ容量を最大限に使用可能である。また、各記録媒体へ規定のページが並列的に割り振られ、前記割り振られた規定のページへ規定ページ単位の書き込みが行われることから、書き込みのための制御が簡単になる効果もある。
【図面の簡単な説明】
【００６１】
【図１】フラッシュメモリの内部構成例を示すブロック図である。
【図２】本発明の実施例１のデータ記録方法を説明するためのフラッシュメモリの内部構造を示す説明図である。
【図３】本発明の実施例１のデータ記録方法を説明するためのメモリカードシステムの全体構成を示すブロック図である。
【図４】本発明の実施例１のデータ記録方法を説明するためのメモリカードシステムのリーダー／ライターの構成を示すブロック図である。
【図５】本発明の実施例１のデータ記録方法を説明するためのメモリカードに用いられているフラッシュメモリの概要説明図である。
【図６】本発明の実施例１のデータ記録方法を説明するための入出力が独立しているメモリカードの構成を示すブロック図である。
【図７】本発明の実施例１のデータ記録方法を説明するためのメモリコントローラの構成を示すブロック図である。
【図８】本発明の実施例１のデータ記録方法を説明するための２個のフラッシュメモリの入出力端子が共通接続されているメモリカードの構成を示すブロック図である。
【図９】本発明の実施例１のデータ記録方法を説明するための２個のフラッシュメモリの入出力端子が共通化されているメモリカードのメモリコントローラの構成を示すブロック図である。
【図１０】本発明の実施例１のデータ記録方法を説明するための４個のフラッシュメモリの各入出力端子が共通接続されているメモリカードの構成を示すブロック図である。
【図１１】本発明の実施例１のデータ記録方法を説明するための４個のフラッシュメモリの各入出力端子が共通接続されているメモリカードのメモリコントローラの構成を示すブロック図である。
【図１２】本発明の実施例１のデータ記録方法を説明するための入出力端子が独立したフラッシュメモリへ各ページがどのようなタイミングで割り振られていくかを示すタイミングチャートである。
【図１３】本発明の実施例１のデータ記録方法を説明するための入出力端子がそれぞれ独立したフラッシュメモリを制御する高速書き込みアルゴリズムの構成を示すフローチャートである。
【図１４】本発明の実施例１のデータ記録方法を説明するための２個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、１つのバスを共有している場合、各ページがどのようなタイミングでフラッシュメモリへ割り振られていくかを示すタイミングチャートである。
【図１５】本発明の実施例１のデータ記録方法を説明するための２個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、１つのバスを共有している場合の高速書き込みアルゴリズムの構成を示すフローチャートである。
【図１６】本発明の実施例１のデータ記録方法を説明するための４個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、１つのバスを共有している場合、各ページがどのようなタイミングでフラッシュメモリへ割り振られていくかを示すタイミングチャートである。
【符号の説明】
【００６２】
フラッシュメモリ……６９，７０，７１，７２，７３，７４，７５，７６（記録媒体）、６８Ａ，２０１Ａ，４０１Ａ……高速書き込みアルゴリズム。
【図１】
2006072452.tif 000003
【図２】
2006072452.tif 000004
【図３】
2006072452.tif 000005
【図４】
2006072452.tif 000006
【図５】
2006072452.tif 000007
【図６】
2006072452.tif 000008
【図７】
2006072452.tif 000009
【図８】
2006072452.tif 000010
【図９】
2006072452.tif 000011
【図１０】
2006072452.tif 000012
【図１１】
2006072452.tif 000013
【図１２】
2006072452.tif 000014
【図１３】
2006072452.tif 000015
【図１４】
2006072452.tif 000016
【図１５】
2006072452.tif 000017
【図１６】
2006072452.tif 000018