JP2006072452A - データ記録方法 - Google Patents

データ記録方法 Download PDF

Info

Publication number
JP2006072452A
JP2006072452A JP2004251910A JP2004251910A JP2006072452A JP 2006072452 A JP2006072452 A JP 2006072452A JP 2004251910 A JP2004251910 A JP 2004251910A JP 2004251910 A JP2004251910 A JP 2004251910A JP 2006072452 A JP2006072452 A JP 2006072452A
Authority
JP
Japan
Prior art keywords
flash memory
writing
data
page
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004251910A
Other languages
English (en)
Other versions
JP4747535B2 (ja
Inventor
Tadaaki Yoshinaka
忠昭 吉中
Masaaki Hara
雅明 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004251910A priority Critical patent/JP4747535B2/ja
Publication of JP2006072452A publication Critical patent/JP2006072452A/ja
Application granted granted Critical
Publication of JP4747535B2 publication Critical patent/JP4747535B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 データの書き込みを高速化できるデータ記録方法を提供すること。
【解決手段】 ページ単位では、書込み所要時間および消去所要時間の速いフラッシュメモリへデータが次々と書き込まれていくが、ブロック単位では、書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するのを待って、すなわちブロック単位では、書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するのに同期して、各フラッシュメモリに対しブロック単位で消去が行われ、次のブロックのページ単位の書き込みに進む。
【選択図】 図13

Description

本発明は、データの書き込みを高速化できるデータ記録方法に関する。
従来の記憶装置、特にフラッシュメモリを用いた記憶装置は、記憶データを保持するための電力が不要であることから近年、盛んに用いられるようになっている。特に、携帯電話装置を含む、携帯用の端末装置にはメモリとしてフラッシュメモリが多く用いられている。このようなフラッシュメモリを用いた記憶装置においては、データの書き込みに要する時間を短縮し、高速でデータの書き込みを行なえるようにする必要がある。
しかしながら、フラッシュメモリは、書き込むデータを入力するのに要するデータ入力時間に対し、その書き込むデータをフラッシュメモリのセルに実際に書き込むのに要するプログラム時間が比較的長いため、書き込むデータの量が、フラッシュメモリへ一度に入力可能な量よりも多いと、フラッシュメモリにデータを入力してから、次のデータを入力するまでに、少なくともプログラム時間だけの待ち時間が発生することになり、データの書き込みに時間を要し、高速での書き込みが出来ないことになる。
このような高速での書き込みが出来ないという問題に対し、フラッシュメモリを複数チップ用いて、これら複数チップへデータを並列的に書き込むことで、データの書き込みに要する時間の短縮化を図る記録方式がある。
これは、例えば、複数のフラッシュメモリのうちの1のチップにデータを入力し、その入力が終了すると、次のデータを他のチップに入力し、その入力が終了すると、さらに次のデータをさらに他のチップに入力するものである。すなわち、1のチップにおいて、入力されたデータがメモリセルに書き込まれている間に、次のデータを他の1のチップに入力するものであり、この結果、1のチップのプログラム時間を待たずに、次のデータの入力を行うことが出来、データの書き込みに要する時間を短縮することが可能になるものである(例えば、特許文献1参照)。
特開2000−122923号公報
かかる従来の記録方式では、以下の短所が付随している。すなわち、フラッシュメモリにおいては書込み所要時間および消去所要時間は一定ではなく不確定であり、データの書き込みは1ページ単位で行われ、このデータの書き込みはレジスタ転送(例えば、0.1msec)とプログラム(例えば、0.2〜0.7msec)に分かれ、書込み所要時間は0.3〜0.8msecの間でばらつくことになる。また、消去所要時間は、2〜4msecの間でばらつく。このような書込み所要時間および消去所要時間が不確定である点については、前述したフラッシュメモリを並列にして使用する従来技術では考慮されておらず、これら書込み所要時間および消去所要時間が不確定であることが、フラッシュメモリを使用した記憶装置への高速な書き込みに障害となり、十分な高速化が期待できないという課題があった。
また、このようなフラッシュメモリにおいては、少なからず不完全な特性を有しているという観点から、使用し難いという課題がある。この不完全な特性とは、例えば、出荷時から欠陥ブロックが存在する場合があり、このため代替ブロックを使用することになり、ユーザが使用する論理アドレスとメモリ上の物理アドレスとの対応が必要になることである。また、書き換え回数が有限であり、書き換えを繰り返すとそのブロックは徐々に劣化するため、同一ブロックのみを書き換えないように、書き換えようとするブロックが特定のブロックに偏らないように均等化して使用するための管理が必要になることである。さらに、読み出しの際に読み出し誤りが生じる可能性が否定できないため、誤り訂正が必要になることである。
本発明は、このような事情に鑑みてなされたものであり、データの書き込みを高速化できるデータ記録方法を提供することを目的とする。
上述の目的を達成するため、本発明にかかるデータ記録方法は、ページ単位の書き込み、ブロック単位の消去が可能な入出力が独立した複数の記録媒体へデータを並列的に転送し記録するデータ記録方法であって、前記ブロック単位の消去が行われた前記複数の記録媒体を非同期で制御し、記録媒体ごとにそのステータスがレディ状態になると、その記録媒体へ順次規定ページ単位の書き込みを行うことで、前記複数の記録媒体に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、前記複数の記録媒体に対し前記ブロック分の書き込みが終了すると、前記複数の記録媒体すべてにおいて1ブロック分のページの書き込み終了を示す信号をもとに、前記複数の記録媒体のうちでもっとも遅くレディ状態へ移行した記録媒体に同期させ、前記複数の記録媒体に対し次のブロック単位の消去を行う同期消去ステップとを備えたことを特徴とする。
上述の目的を達成するため、本発明にかかるデータ記録方法は、ページ単位の書き込み、ブロック単位の消去が可能な入出力が独立した複数の記録媒体へデータを並列的に転送し記録するデータ記録方法であって、前記記録媒体群の各記録媒体へ規定のページを並列的に割り振り、前記ブロック単位の消去が行われた前記複数の記録媒体の組ごとを非同期で制御し、前記複数の記録媒体の組ごとに、ステータスが先にレディ状態になった記録媒体の順で、かつバス使用の競合を回避し、前記割り振った規定のページへ規定ページ単位の書き込みを行うことで、前記記録媒体群に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、前記記録媒体群に対し前記ブロック分の書き込みが終了すると、前記記録媒体群の各記録媒体すべてにおいて1ブロック分のページの書き込み終了を示す信号をもとに、もっとも遅くレディ状態へ移行した記録媒体に同期させ、前記記録媒体群の各記録媒体に対し次のブロック単位の消去を行う同期消去ステップとを備えたことを特徴とする。
本発明によれば、ブロック単位で同期し次の書き込み処理へ進むため、空き領域が過剰に発生することがなく、記録媒体のメモリ容量を最大限に使用できるデータ記録方法を提供できる効果がある。
また、1つのバスを共有する複数の記録媒体に対しては、各記録媒体へ規定のページを並列的に割り振り、ステータスがレディ状態になった記録媒体を優先させ、その記録媒体の前記規定のページへページ単位の書き込みを行うことから、データの書き込まれる記録媒体およびそのページは確定されており、書き込みのための制御が簡単になるデータ記録方法を提供できる効果がある。
データの書き込みを高速化できるデータ記録方法を提供するという目的を、ブロック単位の消去が行われた複数の記録媒体を非同期で制御し、記録媒体ごとにそのステータスがレディ状態になると、その記録媒体へ順次規定ページ単位の書き込みを行うことで、前記複数の記録媒体に対し並列的にそのブロック分のページ単位の書き込みを行い、前記複数の記録媒体に対し前記ブロック分の書き込みが終了すると、前記複数の記録媒体すべてにおいて1ブロック分のページの書き込み終了を示す信号をもとに、前記複数の記録媒体のうちでもっとも遅くレディ状態へ移行した記録媒体に同期させ、前記複数の記録媒体に対し次のブロック単位の消去を行うことで実現した。
データの書き込みを高速化できるデータ記録方法を提供するという目的を、記録媒体群の各記録媒体へ規定のページを並列的に割り振り、ブロック単位の消去が行われた複数の記録媒体の組ごとを非同期で制御し、前記複数の記録媒体の組ごとに、ステータスが先にレディ状態になった記録媒体の順で、かつバス使用の競合を回避し、前記割り振った規定のページへ規定ページ単位の書き込みを行うことで、前記記録媒体群に対し並列的にそのブロック分のページ単位の書き込みを行い、前記記録媒体群に対し前記ブロック分の書き込みが終了すると、前記記録媒体群の各記録媒体すべてにおいて1ブロック分のページの書き込み終了を示す信号をもとに、もっとも遅くレディ状態へ移行した記録媒体に同期させ、前記記録媒体群の各記録媒体に対し次のブロック単位の消去を行うことで実現した。
以下、本発明の一実施例について説明する。なお、以下の説明では、先ず、フラッシュメモリと、フラッシュメモリを用いたメモリカードシステムについて説明し、次に、このメモリカードシステムのメモリカードとメモリコントローラの構成について説明する。そして、これら構成を利用した本発明の一実施例であるデータ記録方法を説明する。
先ず、フラッシュメモリと、フラッシュメモリを用いたメモリカードシステムについて説明する。
図1は、この実施例1のデータ記録方法を説明するためのフラッシュメモリの内部構成例を示すブロック図である。このフラッシュメモリは、入出力コントロール回路1、動作ロジックコントロール回路2、アドレスレジスタ3、コマンドレジスタ4、制御回路5、レディ/ビジィ信号出力回路6、ステータスレジスタ7、高電圧発生回路8、ローアドレスバッファ9、ローアドレスデコーダ10、カラムバッファ11、カラムデコーダ12、データレジスタ13、センスアンプ14およびメモリセルアレイ15と、各種のバス、信号線を備えている。
図2は、図1に示すフラッシュメモリの内部構造を示す説明図である。このフラッシュメモリは、ページ単位でプログラム、ブロック単位で消去を行う。そして、1ページは2048バイトに冗長部64バイトを加えた2112バイトとなっており、1ブロックは64ページで構成されている。また、アドレスの取り込みは、I/O端子から5クロックで取り込む。
図3は、このフラッシュメモリを用いたメモリカードシステムの全体構成を示すブロック図である。このメモリカードシステムは、シリアル伝送を行うためのシリアルクロックを供給するシリアルクロック供給部21、バイト単位で内部の処理を行うためのパラレルクロックを供給するパラレルクロック供給部22、ホストPC23、リーダー/ライター24、送信ドライバー25,26,32、コネクタ28、受信ドライバー27,29,30およびメモリカード31を備えている。ホストPC23とリーダー/ライター24とはPCIバスにより接続されている構成である。また、リーダー/ライター24とメモリカード31とはコネクタ28を介して接続されている構成である。コネクタ28では、前記シリアル伝送のためのシリアルクロックと、リーダー/ライター24からメモリカード31へ書き込まれるライトデータWR_DATAと、メモリカード31からリーダー/ライター24へ読み出されるリードデータRD_DATAの3種類の信号が接続されており
、送信ドライバー25,26,32と受信ドライバー27,29,30を介して全二重のシリアル通信が実現できる構成である。また、メモリカード31は、シリアルクロック供給部21から供給されたシリアルクロックと、これを分周して生成されたクロックにより動作する構成である。
図4は、図3に示したメモリカードシステムのリーダー/ライター24の構成を示すブロック図である。このリーダー/ライター24は、メモリカード31からリーダー/ライター24へ読み出されたリードデータRD_DATAの入力端子41と、前記パラレルクロックが供給される入力端子42と、前記シリアルクロックの入力端子43と、PCIバス接続部44と、メモリカード31へのライトデータの出力端子45と、8−10変換デコーダ・パラレル/シリアル変換器52を備えている。また、シリアル/パラレル変換器・8−10変換デコーダ46、ECCデコーダ47、PCIバスとのインタフェースであるバスインタフェース48、CRCCエンコーダ49、ECCエンコーダ50、コマンドとデータとの切り替えスイッチ51を備えている。
このリーダー/ライター24は、メモリカード31へのデータの書き込みの際には、PCIバス接続部44から入力されたデータのうち、フラッシュメモリを制御するコマンドCOMMAND〔7:0〕にはCRCCエンコーダ49においてCRCCのパリティを付加し、また、データWDATA〔7:0〕にはECCエンコーダ50においてECCのパリティを付加する構成である。そして、切り替えスイッチ51により選択され、8−10変換デコーダ・パラレル/シリアル変換器52の8−10変換デコーダにおいてDCフリーの10ビットデータへ変換するとともに同期コードを付加し、パラレル/シリアル変換器によりシリアルデータに変換し、メモリカード31へのライトデータとして出力端子45から出力する構成である。
また、メモリカード31からデータを読み出す際には、入力端子41から入力されたリードデータRD_DATAは、シリアル/パラレル変換器・8−10変換デコーダ46のシリアル/パラレル変換器によりパラレルデータへ変換された後、同期コードを検出してから8−10変換デコーダにより元の8ビットデータへ戻され、ECCデコーダ47において誤り訂正され、バスインタフェース48を介しPCIバス接続部44から図3に示すホストPC23へ送られる構成である。
図5は、図3に示すメモリカード31に用いられているフラッシュメモリの概要説明図である。このフラッシュメモリは、入出力端子(アドレス、データ、コマンド入出力ポート)IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8と、チップイネーブル、コマンドラッチイネーブル、アドレスラッチイネーブル、ライトイネーブル、リードイネーブルおよびライトプロテクトなどの各種制御信号が入力される制御端子CE(チップイネーブル),CLE(コマンドラッチイネーブル),ALE(アドレスラッチイネーブル),WE(ライトイネーブル),RE(リードイネーブル),WP(ライトプロテクト)と、レディ/ビジィ出力端子RY/BYを備えている。そして、図5では、入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8を入出力端子55、レディ/ビジィ出力端子RY/BYを出力端子56、制御端子CE,CLE,ALE,WE,RE,WPを制御端子57としてまとめて示してある。
出力端子56から出力されるステータス出力は、そのフラッシュメモリにおいてデータの書き込みや消去が終了したか否かを確認するために用いる。
次に、フラッシュメモリの並列化によるデータの高速書き込みについて説明する。
フラッシュメモリに対し高速でデータを書き込むためには、フラッシュメモリを並列化し、書き込みデータを並列に入力すればよい。フラッシュメモリを2つ並列化すれば2倍の速さで書き込みを行うことが出来る。また、4つ並列化すれば4倍の速さで書き込みを行うことが出来る。
図3に示したメモリカードシステムの構成において、並列になっているフラッシュメモリの数や並列化の形態に応じて構成が異なってくるのは、メモリカードの構成だけである。従って、以下の説明におけるメモリカードシステムの構成は、図3に示したブロック図が適用される。
図6は、入出力が独立しているメモリカードの構成を示すブロック図である。このメモリカードは、ライトデータWR_DATAが入力される入力端子61とシリアルクロックSCLKが入力される入力端子62とリードデータRD_DATAが出力される出力端子63とを備えている。また、シリアル/パラレル変換器・10−8変換エンコーダ64と、前記入力端子62から入力されたシリアルクロックSCLKを分周するクロック分周器65と、8−10変換エンコーダ・パラレル/シリアル変換器66と、エラー検出器67と、メモリコントローラ68と、フラッシュメモリ69,70,71,72,73,74,75,76とを備えている。フラッシュメモリ69,70,71,72,73,74,75,76の各入出力端子はそれぞれ独立した構成である。
メモリコントローラ68は、各入出力端子がそれぞれ独立した構成のフラッシュメモリ69,70,71,72,73,74,75,76に対し高速書き込みを可能にする高速書き込みアルゴリズム68Aを備えている。
図7は、図6に示したメモリカードのメモリコントローラ68の構成を示すブロック図である。
このメモリコントローラ68は、ライトデータWDATA〔7:0〕の入力端子81、コマンドCOMMAND〔7:0〕の入力端子82、ECC_SYND〔7:0〕の入力端子83、CRCC_SYND〔7:0〕の入力端子84、クロック分周器65から出力された分周クロック信号CLKの入力端子85、フラッシュメモリ69,70,71,72,73,74,75,76からの各ステータス出力が入力される入力端子86,87,88,89,90,91,92,93およびリードデータRDATA〔7:0〕が出力される出力端子94を備えたコマンドデコーダ95を備えている。
また、フラッシュメモリ69,70,71,72,73,74,75,76へ与えられるデータのバッファ用FIFOメモリ101,104,107,110,113,116,119,121を備えている。
コマンドデコーダ95は入力端子82から与えられるコマンド、各フラッシュメモリの出力端子56から出力されるステータス出力をもとに、高速書き込みアルゴリズム68Aに従ったデータの高速書き込みを行う。
また、フラッシュメモリ69に対する入出力データDIO1〔7:0〕の入出力端子103を備えた入出力制御回路102、フラッシュメモリ70に対する入出力データDIO2〔7:0〕の入出力端子106を備えた入出力制御回路105、フラッシュメモリ71に対する入出力データDIO3〔7:0〕の入出力端子109を備えた入出力制御回路108、フラッシュメモリ72に対する入出力データDIO4〔7:0〕の入出力端子112を備えた入出力制御回路111、フラッシュメモリ73に対する入出力データDIO5〔7:0〕の入出力端子115を備えた入出力制御回路114、フラッシュメモリ74に対する入出力データDIO6〔7:0〕の入出力端子118を備えた入出力制御回路117、フラッシュメモリ75に対する入出力データDIO7〔7:0〕の入出力端子121を備えた入出力制御回路120、フラッシュメモリ76に対する入出力データDIO8〔7:0〕の入出力端子123を備えた入出力制御回路122を有している。
また、フラッシュメモリ69に対する各種制御信号が出力される制御端子132を有したフラッシュ制御コマンド発生器131、フラッシュメモリ70に対する各種制御信号が出力される制御端子134を有したフラッシュ制御コマンド発生器133、フラッシュメモリ71に対する各種制御信号が出力される制御端子136を有したフラッシュ制御コマンド発生器135、フラッシュメモリ72に対する各種制御信号が出力される制御端子138を有したフラッシュ制御コマンド発生器137、フラッシュメモリ73に対する各種制御信号が出力される制御端子140を有したフラッシュ制御コマンド発生器139、フラッシュメモリ74に対する各種制御信号が出力される制御端子142を有したフラッシュ制御コマンド発生器141、フラッシュメモリ75に対する各種制御信号が出力される制御端子144を有したフラッシュ制御コマンド発生器143、フラッシュメモリ76に対する各種制御信号が出力される制御端子146を有したフラッシュ制御コマンド発生器135を備えている。
図8は、2個のフラッシュメモリが組にされ、それら各フラッシュメモリの各入出力端子が共通接続されているメモリカードの構成を示すブロック図である。なお、図8において図6と同一または相当の部分については同一の符号を付し説明を省略する。このメモリカードでは、フラッシュメモリ69とフラッシュメモリ70の入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8、フラッシュメモリ71とフラッシュメモリ72の入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8.フラッシュメモリ73とフラッシュメモリ74の入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8、フラッシュメモリ75とフラッシュメモリ76の入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8が共通接続されている。
メモリコントローラ201は、2個のフラッシュメモリが組にされその入出力端子が共通化されている構成のフラッシュメモリ69,70,71,72,73,74,75,76に対する高速書き込みを可能にする高速書き込みアルゴリズム201Aを備えている。
図9は、図8に示すメモリカードのメモリコントローラ201の構成を示すブロック図である。なお、図9において図7と同一または相当の部分については同一の符号を付し説明を省略する。
このメモリコントローラ201は、フラッシュメモリ69,70の組と、フラッシメ
モリ71,72の組と、フラッシュメモリ73,74の組と、フラッシュメモリ75,76の組へそれぞれ与えられるデータのバッファ用FIFOメモリ301,304,307,311を備えている。
また、フラッシュメモリ69,70の組に対する入出力データDIO12〔7:0〕の入出力端子303を備えた入出力制御回路302、フラッシュメモリ71,72の組に対する入出力データDIO34〔7:0〕の入出力端子306を備えた入出力制御回路305、フラッシュメモリ73,74に対する入出力データDIO56〔7:0〕の入出力端子309を備えた入出力制御回路308、フラッシュメモリ75,76に対する入出力データDIO78〔7:0〕の入出力端子313を備えた入出力制御回路312を有している。
コマンドデコーダ300は入力端子82から与えられるコマンド、各フラッシュメモリの出力端子56から出力されるステータス出力をもとに、高速書き込みアルゴリズム201Aに従ったデータの高速書き込みを行うためのものである。
図10は、4個のフラッシュメモリの各入出力端子が共通接続されているメモリカードの構成を示すブロック図である。
なお、図10において図6と同一または相当の部分については同一の符号を付し説明を省略する。このメモリカードでは、フラッシュメモリ69とフラッシュメモリ70とフラッシュメモリ71とフラッシュメモリ72の各入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8が共通接続され、また、フラッシュメモリ73とフラッシュメモリ74とフラッシュメモリ75とフラッシュメモリ76の各入出力端子IO1,IO2,IO3,IO4,IO5,IO6,IO7,IO8が共通接続されている。
メモリコントローラ401は、4個づつのフラッシュメモリが組にされて各入出力端子が共通化されている構成のフラッシュメモリ69,70,71,72,73,74,75,76に対し高速書き込みを可能にする高速書き込みアルゴリズム401Aを備えている。
図11は、図10に示すメモリカードのメモリコントローラ401の構成を示すブロック図である。なお、図11において図7と同一または相当の部分については同一の符号を付し説明を省略する。
このメモリコントローラ401は、フラッシュメモリ69,70,71,72の組と、フラッシュメモリ73,74,75,76の組へそれぞれ与えられるデータのバッファ用FIFOメモリ401,404を備えている。
また、フラッシュメモリ69,70,71,72の組に対する入出力データDIO14〔7:0〕の入出力端子403を備えた入出力制御回路402、フラッシュメモリ73,74,75,76の組に対する入出力データDIO58〔7:0〕の入出力端子406を備えた入出力制御回路405を有している。
コマンドデコーダ400は入力端子82から与えられるコマンド、各フラッシュメモリの出力端子56から出力されるステータス出力をもとに、フラッシュメモリ69,70,71,72、フラッシュメモリ73,74,75,76がそれぞれ組みにされた各フラッシュメモリに対し高速書き込みアルゴリズム401Aに従ったデータの高速書き込みを行うためのものである。
次に、本発明の一実施例であるデータ記録方法を説明する。
なお、ここで以下の説明における各種パラメータについて説明しておく。PAGEはフラッシュメモリの書き込み単位である1ページ分の有効データの大きさである。BLKは、フラッシュメモリの消去単位である1ブロック分のページ数である。mは、フラッシュメモリの並列数である。nは、入出力端子を共通にするフラッシュメモリの数であり、独立している場合は、nは「1」、2つのフラッシュメモリの入出力端子が共通化されている場合はnは「2」、4つのフラッシュメモリの入出力端子が共通化されている場合はnは「4」である。TRは、1ページ分のデータをレジスタに転送するのに要する時間である。TPavrは、1ページ分のデータの平均プログラム時間、TPmaxは、1ページ分のデータの最大プログラム時間である。
ΔTは、1ブロック分のデータを消去し書き込むために要する時間のフラッシュメモリ間のバラツキである。TEavrをフラッシュメモリの消去単位である1ブロック分の消去に要する時間の平均値、TWavrをフラッシュメモリの書き込み単位である1ページ分の書き込みに要する時間の平均値とすると、1ブロック分のデータを消去し書き込むために要する時間の平均値は、TEavr+BLK×TWavrであり、並列化されたm個のフラッシュメモリのうち最も書込み所要時間および消去所要時間の遅いフラッシュメモリが必要とする時間の平均を(TEavr+BLK×TWavr)maxとすると、ΔT=(TEavr+BLK×TWavr)max−(TEavr+BLK×TWavr)で定義される。
Taは、1ページ分のデータの最小到達時間である。RATEは、1ブロックのデータの消去、書き込みを繰り返す場合の最大データレートであり、RATE=PAGE/Taである。
フラッシュメモリを使用したメモリカードに対する高速書き込みアーキテクチャーとして必要な条件は、(1)待ち時間が短く、書き込み速度が速いこと(2)書き込みアドレスが確定しており、書き込みと読み出しについての制御が簡単であること(3)並列化された全てのフラッシュメモリに空き領域が発生せず、メモリ容量を最大限に利用できることの3点である。
以下、これらの条件を満足するデータ高速転送方法をここでは「順不定データ高速転送方式」という。この「順不定データ高速転送方式」は、ページ単位では、書込み所要時間および消去所要時間の速いフラッシュメモリへデータが次々と書き込まれていくが、ブロック単位では、書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するのを待って、すなわちブロック単位で書込み所要時間および消去所要時間の最も遅いフラッシュメモリへの書き込みが終了するタイミングに合わせて、各メモリにおいて次のページ単位、ブロック単位の書き込みに進むものである。
すなわち、m個の並列化したフラッシュメモリを非同期で動作させ、1ブロック(BLKページ)の消去が終了したフラッシュメモリから書き込みを行う。書き込みが終了したフラッシュメモリに対しては、ブロック単位でデータを転送し書き込んでいく。そして、1ブロック分の書き込みが終了したフラッシュメモリは、他の全てのフラッシュメモリにおける書き込みが終了するまで待ってから、すなわちブロック単位で同期をとって、全てのフラッシュメモリにおける次のブロックの消去へ進む。
また、この「順不定データ高速転送方式」において、1ページの書き込みに要する時間は、n×TR+TPavr+ΔTである。この「順不定データ高速転送方式」では、フラッシュメモリの書き込み速度をほぼ最大限に活用できる。また、書き込みアドレスが確定しているため、書き込みや読み出しのための制御が簡単になり、さらに書込み所要時間および消去所要時間の遅いフラッシュメモリが追いついてくるのをブロック単位で待つため、空き領域が発生することもない。
先ず、図6に示すメモリカードの構成と、図7に示すメモリコントローラの構成と、図12に示すタイミングチャートを参照し、各フラッシュメモリの入出力端子がそれぞれ独立した構成のメモリカードに対する「順不定データ高速転送方式」について説明する。図12は、P01からP64までの番号を有するページがどのようなタイミングでフラッシュメモリ69,70,71,72,73,74,75,76へ割り振られていくかを示すタイミングチャートである。なお、#1は図6に示すフラッシュメモリ69、#2は同様にフラッシュメモリ70、#3はフラッシュメモリ71、#4はフラッシュメモリ72、#5はフラッシュメモリ73、#6はフラッシュメモリ74、#7はフラッシュメモリ75、#8はフラッシュメモリ76に対応する。また、図6に示すようにフラッシュメモリは8並列構成であり、1ブロックは4ページ(BLK=4)である。
図12に示すタイミングチャートでは、最初の8つのブロックでは、P01, P09, P17,P25が#1のフラッシュメモリに、P02,P10,P18,P26が♯2のフラッシュメモリに、P03,P11,P19,P27が#3のフラッシュメモリにというように、各フラッシュメモリへ8個おきのページが割り振られそのページのデータが書き込まれている。1ブロック分の書き込みがもっとも速く終了した#8のフラッシュメモリは、一番遅い#6の書き込みが終了するまで待っている。従って、どのフラッシュメモリにどのページのデータが書き込まれるかは、あらかじめ決まっており変更されることはない。また、遅いフラッシュメモリに空き領域が発生することもない。
ブロック単位で同期をとるために待ち時間が発生しているが、ページ単位で同期をとって次のページ書き込みを行う従来方式に比べ、待ち時間の割合は少なく書き込みデータ・レートは速い。
書き込み時間のバラツキΔTが不透明なので、正確に見積もることはできないが、書き込みデータ・レートを簡単に計算してみる。
図12に示すように1ブロック分を消去してから書き込むという使い方の場合、最小データ到着間隔:Ta=(BLK×(TR+TPavr)+TEavr+ΔT)/m/BLKなので、図12に示すようなm=8、BLK=4の場合、Ta=(4×(TR+TPavr)+ TEavr+ΔT)/(8×4)になる。
なお、図12に示したタイミングでP01からP64までの番号を持つページがフラッシュメモリ69,70,71,72,73,74,75,76へ割り振られ、この「順不定データ高速転送方式」によるデータのレジスタ転送、書き込み、ブロック単位の消去が実行されることになるが、この制御を実現しているのはメモリコントローラ68の高速書き込みアルゴリズム68Aである。図13は、この「順不定データ高速転送方式」を実現する高速書き込みアルゴリズム68Aの構成を示すフローチャートである。以下、このフローチャートに従って図12に示したタイミングによる高速書き込み処理を説明する。
図13のフローチャートに示す高速書き込みアルゴリズム68Aは、入出力端子がそれぞれ独立したフラッシュメモリを制御するものであり、一例としてフラッシュメモリ69を制御する場合を示している。従って、フラッシュメモリ70,71,72,73,74,75,76も、図13のフローチャートと同様な高速書き込みアルゴリズムによりそれぞれ制御される。先ず、イニシャライズによりフラッシュメモリ69のステータス出力を「レディ状態」、データSYNCを“1”に初期設定する(ステップS12)。次に、8個すべてのフラッシュメモリ69,70,71,72,73,74,75,76において1ブロック分のページの書き込みが終了したときに立つフラッグであるデータSYNCが“1”であるか否かを判定する(ステップS13)。このときデータSYNCは、前記イニシャライズにより“1”に設定されているため、ステップS13からステップS20へ進む。ステップS20では、この高速書き込み処理に対する処理終了の指示があるか否かを判定する。この高速書き込み処理に対する処理終了の指示があればこの高速書き込み処理を終了することになるが、処理終了の指示がなければ、ステップS20からステップS14へ進み、フラッシュメモリ69の最初の1ブロック分の消去処理を実行し、ステップS13へ戻る。前記ステップS12のイニシャライズにより“1”に設定されたフラッグ、データSYNCは、前記ステップS14においてフラッシュメモリ69の最初の1ブロック分の消去処理を実行した時点で“0”になるため、フラッシュメモリ69の最初の1ブロック分の消去処理を実行しステップS13へ戻った後は、続いてステップS15へ進む。このステップS15では、フラッシュメモリ69の書き込み済みページ数をチェックし、フラッシュメモリ69の書き込み済みページ数がBLK未満であるか否かを判定する。このとき、フラッシュメモリ69においては、書き込み済みページ数がBLKに達していない。このため、フラッシュメモリ69へ割り当てられた1ブロック分のページについての書き込みを行うためにステップS16へ進む。ステップS16では、バッファ用FIFOメモリ101にデータが存在しているか否かを判定する。この結果、バッファ用FIFOメモリ101にデータが存在している場合、ステップS17へ進む。ステップS17では、フラッシュメモリ69のステータス出力が「レディ状態」であることを確認した後、ステップS18においてフラッシュメモリ69に割り当てられた最初のページP01について書き込みを行うためのレジスタ転送を開始し、ステップS13へ戻る。
なお、このステップS18の処理で開始するレジスタ転送の対象となる1ブロック分のページについては、ページ割り振りテーブルにより予め設定されている。このページ割り振りテーブルには、フラッシュメモリ69に割り振るページがP01,P09,P17,P25,P33,P41,P49,P57の順で、例えば暫時増加する所定のアドレスに設定されている。そして、このページ割り振りテーブルの前記アドレスに設定されているページを参照ポインタにより順番に参照し読み出す。この参照ポインタは、ステップS18の処理を通過するたびに、ページ割り振りテーブルの参照するアドレスをインクリメントする。このため、前回のステップS18のレジスタ転送開始処理で参照したページがP01であるときには今回はP09、前回参照したページがP09であるときにはP17、前回参照したページがP17であるときには今回P25というように、ステップS18のレジスタ転送開始処理を実行するたびにフラッシュメモリ69に割り振るページが前記ページ割り振りテーブルから読み出される。
フラッシュメモリ69では、前記レジスタ転送されたデータを前記割り当てられたページP01へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。この書き込み処理はフラッシュメモリ69固有の所要時間経過後に終了し、フラッシュメモリ69のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。
次のサイクルでは、ステップS13からの処理が繰り返され、前述したステップS13、ステップS15、ステップS16、ステップS17、ステップS18の処理が、データSYNCが“1”になるまで繰り返され、フラッシュメモリ69に対し前記ページ割り振りテーブルにより割り当てられた次のページP09以降の1ブロック分のページについての書き込みを行うためのレジスタ転送、書き込み処理が繰り返される。
フラッシュメモリ69における書き込み済みページ数がBLKに達すると、ステップS15からステップS13へ戻り、フラッシュメモリ70,71,72,73,74,75,76において1ブロック分のページの書き込みが終了しデータSYNCが“1”になるまでステップS13、ステップS15の処理を繰り返す。そして、他のフラッシュメモリに割り当てられた1ブロック分のページについての書き込みが終了し、データSYNCが“1”になると、ステップS13からステップS20へ進み、この順不定データ高速転送方式による書き込み処理について「終了」か否かを判定し、「終了」の場合にはこの順不定データ高速転送処理による書き込み処理を終える。一方、「終了」でない場合には、ステップS14へ進み、フラッシュメモリ69の次の1ブロック分の消去を開始し、ステップS13へ戻る。フラッシュメモリ69の次の1ブロック分の消去処理の実行によりフラグ、データSYNCは“1”から“0”になるため、ステップS13からステップS15、ステップS16、ステップS17、ステップS18へ進み、これらの処理を、フラッシュメモリ69において書き込み済みページ数がBLKに達するまで繰り返し、前記次の1ブロック分の各ページについてのレジスタ転送と書き込みを行う。
また、フラッシュメモリ69に割り当てられた1ブロック分のページについての書き込みが他のフラッシュメモリに比べて最も遅く終了した場合には、フラッシュメモリ69に割り当てられた1ブロック分のページについての書き込みが終了した直後にフラグ、データSYNCが“1”になるため、フラッシュメモリ69に割り当てられた1ブロック分のページについての書き込みが終了した後、速やかにステップS13からステップS20へ進み、ステップS20で「終了」でなければステップS14へ進んで、フラッシュメモリ69の次の1ブロック分の消去が開始される。
また、ステップS16において、バッファ用FIFOメモリ101にデータが存在していない場合にはステップS13へ戻る。
なお、他のフラッシュメモリ70,71,72,73,74,75,76についても、図13のフローチャートと同様な高速書き込みアルゴリズムにより制御されており、各フラッシュメモリを制御するそれぞれの高速書き込みアルゴリズムにおいて、対応するフラッシュメモリのステータス出力がレディ状態、データSYNCが“1”の場合、各フラッシュメモリは、それぞれの高速書き込みアルゴリズムにより消去状態に入り、前記各フラッシュメモリの次の1ブロック分の消去を開始する。従って、各フラッシュメモリのブロック単位の消去については同期的に実行されることになる。
次に、図8に示すメモリカードの構成と、図9に示すメモリコントローラの構成と、図14に示すタイミングチャートを参照し、2個のフラッシュメモリが組みにされそれら各入出力端子が共通接続された構成のメモリカードに対する「順不定データ高速転送方式」を説明する。
図14は、2個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、1つのバスを共有している場合、P01からP64までの番号を持つページがどのようなタイミングでフラッシュメモリ69,70,71,72,73,74,75,76へ割り振られていくかを示すタイミングチャートである。なお、#1は図8に示すフラッシュメモリ69、#2は同様にフラッシュメモリ70、#3は同様にフラッシュメモリ71、#4は同様にフラッシュメモリ72、#5は同様にフラッシュメモリ73、#6は同様にフラッシュメモリ74、#7は同様にフラッシュメモリ75、#8は同様にフラッシュメモリ76に対応する。
図12の場合と異なるのは、2つのフラッシュメモリでバスを共有しているので、その組におけるフラッシュメモリ間ではレジスタ転送に待ち時間が生じる場合があることである。例えば、#3,#4のフラッシュメモリでは、#3のフラッシュメモリがP03のプログラムを終えた後、#3,#4のフラッシュメモリのステータス出力は共にレディになっている。しかしながら、#4のフラッシュメモリにP04を転送するためにバスが使用され、#3のフラッシュメモリには待ち時間が生じている。同様に#5,#6のフラッシュメモリでP05,P06の番号を持つページをレジスタ転送する際にも待ち時間が生じている。
ここで、この「順不定データ高速転送方式」における書き込みデータ・レートを簡単に計算してみる。図14に示したように1ブロック分を消去してから書き込むという使い方の場合、最小データ到着間隔:Ta=(BLK×(2×TR+TPavr)+TEavr+ΔT)/m/BLKなので、図13に示すm=8,BLK=4の場合、Ta=(4×(2×TR+TPavr) + TEavr+ΔT)/(8×4)になる。
なお、図14に示したタイミングでP01からP64までの番号を持つページがフラッシュメモリ69,70,71,72,73,74,75,76へ割り振られ、データ高速転送が行われることになるが、この制御を実現しているのはメモリコントローラ201の高速書き込みアルゴリズム201Aである。
図15は、この高速書き込みアルゴリズム201Aの構成を示すフローチャートである
。以下、このフローチャートに従って図14に示したタイミングによる高速書き込み処理を説明する。
図15のフローチャートに示す高速書き込みアルゴリズム201Aは、入出力端子が共通接続された2つのフラッシュメモリを制御するものであり、一例として2つのフラッシュメモリ69,70を制御する場合を示している。従って、フラッシュメモリ71,72、フラッシュメモリ73,74、フラッシュメモリ75,76の入出力端子が共通化された2つのフラッシュメモリも、図15のフローチャートと同様な高速書き込みアルゴリズムにより制御される。
先ず、イニシャライズにより、フラッシュメモリ69,70に対し各ステイタス出力を「レディ状態」、フラッグ、データSYNCを“1”、チェック対象をフラッシュメモリ69に初期設定する(ステップS22)。続いて8個すべてのフラッシュメモリ69,70,71,72,73,74,75,76において1ブロック分のページの書き込みが終了したときに立つフラッグであるデータSYNCが“1”であるか否かを判定する(ステップS23)。イニシャライズによりフラッシュメモリ69,70のフラッグ、データSYNCが“1”に設定された直後では、ステップS23からステップS26へ進む。ステップS26では、この高速書き込み処理に対する処理終了の指示があるか否かを判定する。この高速書き込み処理に対する処理終了の指示があればこの高速書き込み処理を終了することになるが、処理終了の指示がなければ、ステップS26からステップS24へ進み、フラッシュメモリ69,70の最初の1ブロック分の消去処理を実行し、ステップS23へ戻る。前記ステップS22のイニシャライズにより“1”に設定されたフラッグ、データSYNCは、前記ステップS24においてフラッシュメモリ69,70の最初の1ブロック分の消去処理を実行した時点で“0”になるため、フラッシュメモリ69,70の最初の1ブロック分の消去処理を実行しステップS23へ戻った後は、続いてフラッシュメモリ69とフラッシュメモリ70の状態チェックを交互に行うためのチェック対象フラッシュメモリ切替処理へ進む(ステップS25)。
このチェック対象フラッシュメモリ切替処理では、チェック対象であるフラッシュメモリをフラッシュメモリ69とフラッシュメモリ70との間で交互に切り替える。一例として、このチェック対象フラッシュメモリ切替処理では初期設定により最初のチェック対象はフラッシュメモリ69を選択する。このため、ステップS25からステップS31以降のフラッシュメモリ69の状態チェックのための処理へ進む。ステップS31では、フラッシュメモリ69の書き込み済みページ数をチェックし、フラッシュメモリ69の書き込み済みページ数がBLK未満であるか否かを判定する。このとき、フラッシュメモリ69においては、書き込み済みページ数はBLKに達していない。このため、フラッシュメモリ69へ割り当てられた1ブロック分のページについての書き込みを行うためにステップS32へ進む。ステップS32では、バッファ用FIFOメモリ301にデータが存在しているか否かを判定する。この結果、バッファ用FIFOメモリ301にデータが存在している場合、ステップS33へ進む。ステップS33では、フラッシュメモリ69のステータス出力が「レディ状態」であることを確認した後、続くステップS34においてバス使用中でないことを確認後、ステップS35においてフラッシュメモリ69に割り当てられたページP01について書き込みを行うためのレジスタ転送を開始する。
なお、このステップS35の処理で開始するレジスタ転送の対象となるフラッシュメモリ69に対する1ブロック分のページについては、ページ割り振りテーブルにより予め設定されている。このページ割り振りテーブルには、フラッシュメモリ69に割り振るページがP01,P09,P17,P25,P33,P41,P49,P57の順で、例えば暫時増加する所定のアドレスに設定されている。そして、このページ割り振りテーブルの前記アドレスに設定されているページを参照ポインタにより順番に参照し読み出す。この参照ポインタは、ステップS35の処理を通過するたびに、ページ割り振りテーブルの参照するアドレスをインクリメントする。このため、前回のステップS35のレジスタ転送開始処理で参照したページがP01であるときには今回はP09、前回参照したページがP09であるときにはP17、前回参照したページがP17であるときには今回P25というように、ステップS35のレジスタ転送開始処理を実行するたびにフラッシュメモリ69に割り振るページが前記ページ割り振りテーブルから読み出される。
続いてステップS36へ進み、チェック対象とするフラッシュメモリをフラッシュメモリ69からフラッシュメモリ70へ切り替えるため切替設定を行う。この切替設定により、前記ステップS25のチェック対象フラッシュメモリ切替処理で選択されるチェック対象のフラッシュメモリは、フラッシュメモリ69からフラッシュメモリ70へ切り替わる。そして、ステップS36で切替設定を行った後、ステップS23へ戻る。
フラッシュメモリ69では、前記ステップS35によりレジスタ転送されたデータを前記割り当てられたページP01へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。この書き込み処理はフラッシュメモリ69固有の所要時間経過後に終了し、フラッシュメモリ69のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。
次のサイクルでは、ステップS23からステップS25へ進み、さらにステップS41、ステップS42……というようにフラッシュメモリ70の状態チェックのための処理を行う。フラッシュメモリ69において割り振られたページP01についての書き込み処理が終了したとき、フラッシュメモリ70は消去処理中であり、そのステータス出力は「ビジィ状態」である。このためフラッシュメモリ70の状態チェックのための処理では、ステップS41、ステップS42、ステップS43へ進み、ステップS43においてフラッシュメモリ70のステータス出力が「レディ状態」ではないことを判定する。この結果、ステップS43からステップS46へ進み、チェック対象のフラッシュメモリをフラッシュメモリ70からフラッシュメモリ69へ切り替え、ステップS23へ戻る。そして、ステップS23からステップS25、さらにステップS31へ進み、フラッシュメモリ69についての状態チェックのための処理へ進む。そして、ステップS31、ステップS32、ステップS33、ステップS34の順で進み、ステップS34においてバス使用中でないことを確認後、ステップS35においてフラッシュメモリ69に割り当てられた次のページP09について書き込みを行うためのレジスタ転送を開始する。続いてステップS36へ進み、チェック対象とするフラッシュメモリをフラッシュメモリ69からフラッシュメモリ70へ切り替えるため切替設定を行う。この切替設定により、前記ステップS25のチェック対象フラッシュメモリ切替処理で選択されるチェック対象のフラッシュメモリは、フラッシュメモリ69からフラッシュメモリ70へ切り替わる。そして、ステップS36で切替設定を行った後、ステップS23へ戻る。
フラッシュメモリ69では、前記ステップS35によりレジスタ転送されたデータを前記割り当てられたページP09へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。
次のサイクルでは、ステップS23からの処理が繰り返され、ステップS23からステップS25へ進み、今度はステップS41、ステップS42……というようにフラッシュメモリ70の状態チェックのための処理を行い、フラッシュメモリ69とフラッシュメモリ70の状態チェックのための処理を交互に繰り返す。
そして、この間にフラッシュメモリ70についての消去処理が終了すると、フラッシュメモリ70のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。また、このときバスは使用中ではない。
この結果、フラッシュメモリ70の状態チェックのための処理におけるステップS43によりフラッシュメモリ70のステータス出力が「レディ状態」であることが確認されると、ステップS44によりバス使用中でないことを確認し、ステップS45においてフラッシュメモリ70に割り当てられたページP02について書き込みを行うためのレジスタ転送を開始する。
なお、このステップS45の処理で開始するレジスタ転送の対象となるフラッシュメモリ70に対する1ブロック分のページについては、ページ割り振りテーブルにより予め設定されている。このページ割り振りテーブルには、フラッシュメモリ70に割り振るページがP02,P10,P18,P26,P34,P42,P50,P58の順で、例えば暫時増加する所定のアドレスに設定されている。そして、このページ割り振りテーブルの前記アドレスに設定されているページを参照ポインタにより順番に参照し読み出す。この参照ポインタは、ステップS45の処理を通過するたびに、ページ割り振りテーブルの参照するアドレスをインクリメントする。このため、前回のステップS45のレジスタ転送開始処理で参照したページがP02であるときには今回はP10、前回参照したページがP10であるときには今回はP18、前回参照したページがP18であるときには今回P26というように、ステップS45のレジスタ転送開始処理を実行するたびにフラッシュメモリ70に割り振るページが前記ページ割り振りテーブルから読み出される。
続いてステップS46へ進み、チェック対象とするフラッシュメモリをフラッシュメモリ70からフラッシュメモリ69へ切り替えるため切替設定を行う。この切替設定により、前記ステップS25のチェック対象フラッシュメモリ切替処理で選択されるチェック対象のフラッシュメモリは、フラッシュメモリ70からフラッシュメモリ69へ切り替わる。この切替設定をステップS46で行なった後、ステップS23へ戻る。
フラッシュメモリ70では、前記ステップS45によりレジスタ転送されたデータを前記割り当てられたページP02へ書き込む処理が行われ、そのステータス出力は「レディ状態」から「ビジィ状態」へ変わる。
次のサイクルでは、ステップS23からステップS25、そして、ステップS31以降処理へ進む。フラッシュメモリ69とフラッシュメモリ70が共に書き込み中であり各ステータス出力が「ビジィ状態」の間は、フラッシュメモリ69とフラッシュメモリ70の状態チェックのための処理を交互に繰り返す。そして、この間にフラッシュメモリ69とフラッシュメモリ70についての前記割り振られた各ページについての書き込みが同時に終了すると、フラッシュメモリ69,70のステータス出力は共に「ビジィ状態」から「レディ状態」へ変わる。また、このときバスは使用中ではない。
このようにフラッシュメモリ69およびフラッシュメモリ70が同時に書き込み終了となった場合には、その時点でどちらのフラッシュメモリの状態チェックのための処理を実行しているかに応じて、その状態チェックの対象となっているほうのフラッシュメモリが優先的にバスを使用しレジスタ転送を行うことになる。すなわち、フラッシュメモリ69とフラッシュメモリ70のステータス出力が同時に「ビジィ状態」から「レディ状態」へ変わった時点において、例えばフラッシュメモリ69について状態チェックのための処理を実行しており、ステップS33によりフラッシュメモリ69のステータス出力が「ビジィ状態」から「レディ状態」へ変わったことが判定された場合、ステップS35によりフラッシュメモリ69がバスを使用しレジスタ転送を開始し、フラッシュメモリ69では割り振られたページP17についての書き込みが行われる。このため、フラッシュメモリ70については、次のサイクルのフラッシュメモリ70の状態チェックのための処理におけるステップS44により、フラッシュメモリ69によるバス使用中の状態が判定される結果、ステップS44からステップS46へ進むため、図14のタイミングチャートに示すようにフラッシュメモリ70によるレジスタ転送は、フラッシュメモリ69による前記レジスタ転送の終了によりバスが開放されるタイミングまで待たされることになり、この時点で実行可能になる。図14のタイミングチャートでは、フラッシュメモリ69のページP09とフラッシュメモリ70のページP02の書き込みが同時に終了した場合、フラッシュメモリ70によるページP10についてのレジスタ転送は、フラッシュメモリ69によるページP17についてのレジスタ転送の終了によりバスが開放されるタイミングまで待たされる。
このようにしてフラッシュメモリ69,70へ割り振られたページへデータの書き込みが行われ、フラッシュメモリ70へ割り振られた1ブロック分の最後のページP26への書き込みが終了すると、フラッシュメモリ69,70のステータス出力は「ビジィ状態」から「レディ状態」へ変わる。このとき全てのフラッシュメモリ69,70,71,72,73,74,75,76において1ブロック分のページの書き込みは終了していないためフラッグ、データSYNCは“1”にはなっていない。このため、ステップS23からステップS25へ進み、ステップS25のチェック対象フラッシュメモリ切替処理によりステップS31とステップS41の判定処理を繰り返す。このときフラッシュメモリ69,70の書き込み済みページ数はBLKとなっているため、ステップS31では次にステップS36へ進み、またステップS41では次にステップS46へ進み、フラッシュメモリ71,72,73,74,75,76において1ブロック分のページの書き込みが終了するまでステップS23、ステップS25、ステップS31、ステップS36の処理、またはステップS23、ステップS25、ステップS41、ステップS46の処理を繰り返す。そして、全てのフラッシュメモリ69,70,71,72,73,74,75,76において1ブロック分のページの書き込みが終了し、データSYNCが“1”になると、ステップS23からステップS26へ進み、この順不定データ高速転送処理の書き込み処理について「終了」か否かを判定し、「終了」の場合にはこの順不定データ高速転送処理による着き込み処理を終える。一方、「終了」でない場合には、ステップS24へ進み、フラッシュメモリ69,70における次の1ブロック分のページの消去が行われる。
なお、他のフラッシュメモリ71,72の組、フラッシュメモリ73,74の組、フラッシュメモリ75,76の組についても、図15のフローチャートと同様な高速書き込みアルゴリズムにより制御されており、前記フラッシュメモリの組を制御するそれぞれの高速書き込みアルゴリズムにおいて、フラッグ、データSYNCが“1”の場合、その組の各フラッシュメモリは、それぞれの高速書き込みアルゴリズムにより消去状態に入り、前記各フラッシュメモリの次の1ブロック分の消去を開始する。従って、全てのフラッシュメモリのブロック単位の消去については同期的に実行されることになる。
このようにして、1つのバスを2つのフラッシュメモリ69,70で共有し、順番に関係なくステータス出力がレディ状態になったフラッシュメモリがバスを使用する「順不定データ高速転送方式」の制御を実現することが出来る。
図16は、4個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、1つのバスを共有している場合、P01からP64までの番号を持つページがどのようなタイミングでフラッシュメモリ69,70,71,72,73,74,75,76へ割り振られていくかを示すタイミングチャートである。
なお、#1は図10に示すフラッシュメモリ69、#2は同様にフラッシュメモリ70、#3は同様にフラッシュメモリ71、#4は同様にフラッシュメモリ72、#5は同様にフラッシュメモリ73、#6は同様にフラッシュメモリ74、#7は同様にフラッシュメモリ75、#8は同様にフラッシュメモリ76に対応する。
図16に示すタイミングチャートは、4つのフラッシュメモリが組みにされ各入出力端子が共通接続された構成のメモリカードに対する「順不定データ高速転送方式」であり、図15に示すフローチャートにおいてフラッシュメモリの数を4つに拡張した場合であり、次の点において図15と異なっているだけであり動作説明は省略する。すなわち、図15におけるステップS22のイニシャライズ処理で、フラッシュメモリ69,70,71,72のステータス出力を「レディ状態」、データSYNCを“1”、チェック対象をフラッシュメモリ69へ初期設定すること。また、図15におけるステップS25のチェック対象フラッシュメモリ切替処理において選択されるチェック対象のフラッシュメモリはフラッシュメモリ69,70,71,72のいずれかになること。そして、選択されたフラッシュメモリに対応するそれぞれの状態チェックのための処理フロー、すなわちフラッシュメモリ69,70,71,72にそれぞれ対応する処理フローが必要となること。そして、このラッシュメモリ69,70,71,72にそれぞれ対応する処理フローにおける図15のステップS34、ステップS44のバス使用中判定処理に対応する処理では、他のフラッシュメモリによるバス使用中について判定を行うこと。また、図15のステップS35、ステップS45の処理に対応する処理では、レジスタ転送の対象となるフラッシュメモリ69,70,71,72に対する1ブロック分のページについてのページ割り振りテーブルとその参照ポインタが必要になることである。また、図15のステップS36、ステップS46のチェック対象フラッシュメモリの切替設定に対応する処理では、チェック対象のフラッシュメモリが、例えばフラッシュメモリ69からフラッシュメモリ70、フラッシュメモリ70からフラッシュメモリ71、フラッシュメモリ71からフラッシュメモリ72へ順次切り替わるように切替設定されることである。
このようにして、1つのバスを4つのフラッシュメモリ69,70,71,72の組で共有し、また、1つのバスを4つのフラッシュメモリ73,74,75,76の組で共有し、順番に関係なくステータス出力がレディ状態になったフラッシュメモリがバスを使用する「順不定データ高速転送方式」の制御を実現することが出来る。
この、4個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、1つのバスを共有している構成の「順不定データ高速転送方式」が、図12に示した「順不定データ高速転送方式」と異なるのは、4つのフラッシュメモリでバスを共有しているので、レジスタ転送に待ち時間が生じる場合が頻繁に生じることである。例えば、#1〜#4の
フラッシュメモリでは、#3のフラッシュメモリがP03のプログラムを終えた後、#2, #3,#4のフラッシュメモリのステータス出力は共にレディになっている。しかしながら、#4のフラッシュメモリにP04のページを転送するためにバスが使用され、#2,#3には待ち時間が生じている。ここでも、フラッシュメモリ間でステータス出力が同時に「レディ状態」になったときには書き込まれるページ数ができるだけ偏らないように選択している。同様に、#5,#6のフラッシュメモリでP05,P06のページをレジスタ転送する際にも待ち時間が生じている。この待ち時間は図12の場合よりもさらに長くなる。
ここで、この「順不定データ高速転送方式」における書き込みデータ・レートを簡単に計算してみる。図16に示したように1ブロック分を消去してから書き込むという使い方の場合、最小データ到着間隔:Ta=(BLK×(4×TR+TPavr)+TEavr+ΔT)/m/BLKなので、図16に示すm=8,BLK=4の場合、Ta=(4×(4×TR+TPavr)+TEavr+ΔT)/(8×4)になる。
なお、この「順不定データ高速転送方式」では、図16に示したタイミングでP01からP64までの番号を持つページがフラッシュメモリ69,70,71,72,73,74,75,76へ割り振られることになるが、この制御を実現しているのは図10および図11に示すメモリコントローラ401の高速書き込みアルゴリズム401Aである。
以上のように、この実施例1によれば、データが書き込まれるアドレスは確定されている状態で、m並列したフラッシュメモリを非同期で動作させ、1ブロックの消去が終了したフラッシュメモリから書き込みを行う。そして、書き込みが終了したフラッシュメモリにはそのブロック分のデータを転送し書き込んでいき、全てのフラッシュメモリのブロック書き込みが終了してから次のブロックの消去に進むというブロック単位で同期した動作を行う。
また、バスを共有する場合、入出力端子が共通接続されたフラッシュメモリ間でレジスタ転送のタイミングが競合するときには、一方のレジスタ転送のタイミングが待たされることなるが、n個のフラッシュメモリ間の入出力端子が共通接続されるため、入出力端子が共通接続されるフラッシュメモリは、積層した構成で実装することが可能となり、実装面積が1/nとなるメリットが期待できる。
また、この実施例1の「順不定データ高速転送方式」は、ブロック単位で同期し次の書き込み処理へ進むため、従来方式のようにページ単位で同期し次ページ書き込みへ進む方式に比べ、空き領域が過剰に発生することがなく、メモリ容量を最大限に使用可能である。また、各記録媒体へ規定のページが並列的に割り振られ、前記割り振られた規定のページへ規定ページ単位の書き込みが行われることから、書き込みのための制御が簡単になる効果もある。
フラッシュメモリの内部構成例を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するためのフラッシュメモリの内部構造を示す説明図である。 本発明の実施例1のデータ記録方法を説明するためのメモリカードシステムの全体構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するためのメモリカードシステムのリーダー/ライターの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するためのメモリカードに用いられているフラッシュメモリの概要説明図である。 本発明の実施例1のデータ記録方法を説明するための入出力が独立しているメモリカードの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するためのメモリコントローラの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するための2個のフラッシュメモリの入出力端子が共通接続されているメモリカードの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するための2個のフラッシュメモリの入出力端子が共通化されているメモリカードのメモリコントローラの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するための4個のフラッシュメモリの各入出力端子が共通接続されているメモリカードの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するための4個のフラッシュメモリの各入出力端子が共通接続されているメモリカードのメモリコントローラの構成を示すブロック図である。 本発明の実施例1のデータ記録方法を説明するための入出力端子が独立したフラッシュメモリへ各ページがどのようなタイミングで割り振られていくかを示すタイミングチャートである。 本発明の実施例1のデータ記録方法を説明するための入出力端子がそれぞれ独立したフラッシュメモリを制御する高速書き込みアルゴリズムの構成を示すフローチャートである。 本発明の実施例1のデータ記録方法を説明するための2個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、1つのバスを共有している場合、各ページがどのようなタイミングでフラッシュメモリへ割り振られていくかを示すタイミングチャートである。 本発明の実施例1のデータ記録方法を説明するための2個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、1つのバスを共有している場合の高速書き込みアルゴリズムの構成を示すフローチャートである。 本発明の実施例1のデータ記録方法を説明するための4個のフラッシュメモリが組にされ、それら入出力端子が共通接続され、1つのバスを共有している場合、各ページがどのようなタイミングでフラッシュメモリへ割り振られていくかを示すタイミングチャートである。
符号の説明
フラッシュメモリ……69,70,71,72,73,74,75,76(記録媒体)、68A,201A,401A……高速書き込みアルゴリズム。

Claims (2)

  1. ページ単位の書き込み、ブロック単位の消去が可能な入出力が独立した複数の記録媒体へデータを並列的に転送し記録するデータ記録方法であって、
    前記ブロック単位の消去が行われた前記複数の記録媒体を非同期で制御し、記録媒体ごとにそのステータスがレディ状態になると、その記録媒体へ順次規定ページ単位の書き込みを行うことで、前記複数の記録媒体に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、
    前記複数の記録媒体に対し前記ブロック分の書き込みが終了すると、前記複数の記録媒体すべてにおいて1ブロック分のページの書き込み終了を示す信号をもとに、前記複数の記録媒体のうちでもっとも遅くレディ状態へ移行した記録媒体に同期させ、前記複数の記録媒体に対し次のブロック単位の消去を行う同期消去ステップと、
    を備えたことを特徴とするデータ記録方法。
  2. ページ単位の書き込み、ブロック単位の消去が可能な入出力が共通接続され1つのバスを共有する複数の記録媒体を複数組備えた記録媒体群へデータを並列的に転送し記録するデータ記録方法であって、
    前記記録媒体群の各記録媒体へ規定のページを並列的に割り振り、前記ブロック単位の消去が行われた前記複数の記録媒体の組ごとを非同期で制御し、前記複数の記録媒体の組ごとに、ステータスが先にレディ状態になった記録媒体の順で、かつバス使用の競合を回避し、前記割り振った規定のページへ規定ページ単位の書き込みを行うことで、前記記録媒体群に対し並列的にそのブロック分のページ単位の書き込みを行う非同期書き込みステップと、
    前記記録媒体群に対し前記ブロック分の書き込みが終了すると、前記記録媒体群の各記録媒体すべてにおいて1ブロック分のページの書き込み終了を示す信号をもとに、もっとも遅くレディ状態へ移行した記録媒体に同期させ、前記記録媒体群の各記録媒体に対し次のブロック単位の消去を行う同期消去ステップと、
    を備えたことを特徴とするデータ記録方法。
JP2004251910A 2004-08-31 2004-08-31 データ記録方法 Expired - Fee Related JP4747535B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004251910A JP4747535B2 (ja) 2004-08-31 2004-08-31 データ記録方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004251910A JP4747535B2 (ja) 2004-08-31 2004-08-31 データ記録方法

Publications (2)

Publication Number Publication Date
JP2006072452A true JP2006072452A (ja) 2006-03-16
JP4747535B2 JP4747535B2 (ja) 2011-08-17

Family

ID=36153055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004251910A Expired - Fee Related JP4747535B2 (ja) 2004-08-31 2004-08-31 データ記録方法

Country Status (1)

Country Link
JP (1) JP4747535B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221333A (ja) * 2005-02-09 2006-08-24 Fuji Photo Film Co Ltd 半導体メモリ装置及び記憶制御方法
KR101076981B1 (ko) 2008-08-13 2011-10-26 가부시끼가이샤 도시바 전하 축적층과 제어 게이트를 갖는 메모리 셀을 구비한 반도체 장치 및 그 데이터 기입 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132982A (ja) * 1998-10-26 2000-05-12 Sony Corp 情報記録媒体素子、情報記録装置及び情報記録方法、並びに情報再生装置及び情報再生方法
JP2002202912A (ja) * 2000-10-26 2002-07-19 Matsushita Electric Ind Co Ltd 記録装置、記録制御方法、及びプログラム
JP2004048428A (ja) * 2002-07-12 2004-02-12 Matsushita Electric Ind Co Ltd 不揮発メモリ制御システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132982A (ja) * 1998-10-26 2000-05-12 Sony Corp 情報記録媒体素子、情報記録装置及び情報記録方法、並びに情報再生装置及び情報再生方法
JP2002202912A (ja) * 2000-10-26 2002-07-19 Matsushita Electric Ind Co Ltd 記録装置、記録制御方法、及びプログラム
JP2004048428A (ja) * 2002-07-12 2004-02-12 Matsushita Electric Ind Co Ltd 不揮発メモリ制御システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221333A (ja) * 2005-02-09 2006-08-24 Fuji Photo Film Co Ltd 半導体メモリ装置及び記憶制御方法
JP4505343B2 (ja) * 2005-02-09 2010-07-21 富士フイルム株式会社 半導体メモリ装置及び記憶制御方法
KR101076981B1 (ko) 2008-08-13 2011-10-26 가부시끼가이샤 도시바 전하 축적층과 제어 게이트를 갖는 메모리 셀을 구비한 반도체 장치 및 그 데이터 기입 방법

Also Published As

Publication number Publication date
JP4747535B2 (ja) 2011-08-17

Similar Documents

Publication Publication Date Title
US7392343B2 (en) Memory card having a storage cell and method of controlling the same
US8144515B2 (en) Interleaved flash storage system and method
TWI744632B (zh) 半導體設備及在一記憶體裝置上執行操作之方法
US7334080B2 (en) Nonvolatile memory with independent access capability to associated buffer
US20150100744A1 (en) Methods and apparatuses for requesting ready status information from a memory
KR20100077026A (ko) 직렬 인터페이스 nand
US10725902B2 (en) Methods for scheduling read commands and apparatuses using the same
JP4643729B2 (ja) インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
US8266368B2 (en) Memory controller, memory system, and control method for memory system
US8869004B2 (en) Memory storage device, memory controller thereof, and data transmission method thereof
US9772777B2 (en) Systems and methods for improved access to flash memory devices
CN101421705B (zh) 具有高储存容量的多媒体卡
JP2007066118A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN110874333B (zh) 存储设备及存储方法
JP4747535B2 (ja) データ記録方法
KR100761374B1 (ko) 플래시 메모리 제어 방법 및 장치
JP4696501B2 (ja) データ記録方法
WO2008032935A1 (en) Device having shared memory and method for transferring code data
US8166228B2 (en) Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods
CN112885385B (zh) 非易失性存储器及其读取方法
JP2007066119A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JPH09288618A (ja) 記憶装置及びそのメモリアクセス制御方法
CN114721581A (zh) 用于同步动态随机存取内存的控制模块及其控制方法
JPH0387957A (ja) バスアクセス方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070427

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090807

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110328

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees