(57)【要約】【課題】フラッシュメモリを記憶媒体とするメモリーカード（不揮発性記憶装置）において、データ書き込みの際に、外部からメモリーカードのコントローラへのデータ転送とコントローラからフラッシュメモリへのデータ転送に要する時間による書き込み処理のオーバヘッドを削減し、高速の書き込みを可能とする。【解決手段】バッファＩ／Ｆ１０９は、外部クロックに同期してホスト１０７からホストＩ／Ｆ１０６に入力されるセクタ単位のデータを第１のワード単位に分割し、内部クロックに同期してバッファメモリ１０８に転送し、また、バッファメモリ１０８に保持されたセクタ単位のデータを第２のワード単位に分割し、内部クロックに同期してフラッシュメモリＩ／Ｆ１０７に転送する。フラッシュメモリＩ／Ｆ１０７は転送されたセクタ単位のデータをフラッシュメモリ１０３に書き込む。【選択図】図１
2008310459.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
ホストから転送されるデータをデータ線を介して受け取り、また前記ホストから転送される外部クロックをクロック線を介して受け取る第１のインターフェースと、
前記第１のインターフェースで受け取ったデータを一時的に保持するバッファメモリと、
前記バッファメモリに保持されたデータを前記不揮発性メモリに書き込む第２のインターフェースと、
前記第１のインターフェースから前記バッファメモリへのデータの転送、および前記バッファメモリから前記第２のインターフェースへのデータの転送を制御する第３のインターフェースと、
内部クロックを発生する発振回路とを備え、
複数バイトからなるセクタ単位のデータの書き込みが可能な不揮発性記憶装置であって、
前記第３のインターフェースは、前記外部クロックに同期して前記第１のインターフェースに入力されるセクタ単位のデータを第１のワード単位に分割し、前記内部クロックに同期して、セクタ単位未満でかつ前記第１のワード単位の整数倍のデータ単位で前記バッファメモリに転送し、
また前記バッファメモリに保持されたセクタ単位のデータを第２のワード単位に分割し、前記内部クロックに同期して、セクタ単位未満でかつ前記第２のワード単位の整数倍のデータ単位で前記第２のインターフェースに転送することを特徴とする不揮発性記憶装置。
【請求項２】
前記第３のインターフェースは、前記第１のインターフェースから前記バッファメモリへのデータの転送と、前記バッファメモリから前記第２のインターフェースへのデータの転送を、前記内部クロックに同期して時分割で行うことを特徴とする請求項１に記載の不揮発性記憶装置。
【請求項３】
前記第３のインターフェースは、前記第１のインターフェースから前記バッファメモリへのデータの転送に割り当てる時間よりも、前記バッファメモリから前記第２のインターフェースへのデータの転送に割り当てる時間を長くすることを特徴とする請求項２に記載の不揮発性記憶装置。
【請求項４】
前記第１のインターフェースは、前記発振回路が動作する以前は、前記ホストから受け取ったデータを前記外部クロックに同期して前記バッファメモリに転送することを特徴とする請求項１〜３のいずれかに記載の不揮発性記憶装置。
【請求項５】
前記第３のインターフェースは、前記第１のインターフェースから前記バッファメモリに転送されたデータのアドレス情報を格納するＦＥアドレスレジスタと、前記バッファメモリから前記第２のインターフェースに転送されたデータのアドレス情報を格納するＢＥアドレスレジスタとを備え、
かつ前記第３のインターフェースは、前記ＦＥアドレスレジスタに格納される情報よりも前記ＢＥアドレスレジスタに格納される情報が大きくならないように、前記バッファメモリから前記第２のインターフェースへの転送を制御することを特徴とする請求項１〜３のいずれかに記載の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性記憶装置に関し、更に詳しくは、フラッシュメモリ等の不揮発性メモリを用いた記憶装置における不揮発性メモリへの書き込みデータの転送機能に関する。
【背景技術】
【０００２】
近年、半導体の不揮発性メモリであるフラッシュメモリを搭載したメモリーカードは、デジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。そして半導体プロセスの進化に伴いメモリーカードの容量が増加していることから、データファイルや静止画等の小容量の記録から、より大容量が必要となる動画記録へとその用途は広がっている。
【０００３】
一方、フラッシュメモリの大部分を占めるＮＡＮＤ型フラッシュメモリにおいては、半導体プロセスの進化に伴い書き込み単位が増加している。書き込み単位の増加は、ＮＡＮＤ型フラッシュメモリチップにおけるメモリセルの占める面積率を維持するためであり、また書き込み性能を向上させるためである。
【０００４】
ＮＡＮＤ型フラッシュメモリにデータを書き込む際には、書き込み単位のデータを転送し、その後、書き込み単位のデータをまとめてメモリセルに書き込む。書き込み単位の増加は、書き込み単位のデータの転送時間の増加に繋がる。書き込み単位が大きくなればなるほどデータ転送に要する時間が長くなることになる。
【０００５】
そこで、特許文献１に記載されたように、書き込み単位を複数のバンクに分割し、それに対応してデータを保持するバッファメモリをコントローラに設け、バンク毎にデータを転送する構成が提案されている。この構成を採用することで、書き込み単位のデータを転送する時間を短くすることができる。
【特許文献１】特開２００３−８５０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、バッファメモリを複数に分割することはコントローラのチップ面積の増大に繋がる。これは、一般的に同じ容量のメモリを構成する際に、単一のメモリを使用して構成するのに比べて複数のメモリを使用して構成するほうが、面積が大きくなることに起因する。
【０００７】
またバンクに分割したところで、バンク分のデータ転送の時間を削減することはできず、処理時間のオーバヘッドとなっている。
【０００８】
本発明は、コントローラのチップ面積を増大させることなく、フラッシュメモリへの書き込み処理のオーバヘッドを削減し、高速の書き込みを可能とする不揮発性記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る不揮発性記憶装置は、
不揮発性メモリと、
ホストから転送されるデータをデータ線を介して受け取り、また前記ホストから転送される外部クロックをクロック線を介して受け取る第１のインターフェースと、
前記第１のインターフェースで受け取ったデータを一時的に保持するバッファメモリと、
前記バッファメモリに保持されたデータを前記不揮発性メモリに書き込む第２のインターフェースと、
前記第１のインターフェースから前記バッファメモリへのデータの転送、および前記バッファメモリから前記第２のインターフェースへのデータの転送を制御する第３のインターフェースと、
内部クロックを発生する発振回路とを備え、
複数バイトからなるセクタ単位のデータの書き込みが可能な不揮発性記憶装置であって、
前記第３のインターフェースは、前記外部クロックに同期して前記第１のインターフェースに入力されるセクタ単位のデータを第１のワード単位に分割し、前記内部クロックに同期して、セクタ単位未満でかつ前記第１のワード単位の整数倍のデータ単位で前記バッファメモリに転送し、
また前記バッファメモリに保持されたセクタ単位のデータを第２のワード単位に分割し、前記内部クロックに同期して、セクタ単位未満でかつ前記第２のワード単位の整数倍のデータ単位で前記第２のインターフェースに転送することを特徴とする。
【００１０】
ここで、前記第３のインターフェースは、前記第１のインターフェースから前記バッファメモリへのデータの転送と、前記バッファメモリから前記第２のインターフェースへのデータの転送を、前記内部クロックに同期して時分割で行うことが好ましい。
【００１１】
また前記第３のインターフェースは、前記第１のインターフェースから前記バッファメモリへのデータの転送に割り当てる時間よりも、前記バッファメモリから前記第２のインターフェースへのデータの転送に割り当てる時間を長くすることが好ましい。
【００１２】
また前記第１のインターフェースは、前記発振回路が動作する以前は、前記ホストから受け取ったデータを前記外部クロックに同期して前記バッファメモリに転送することが好ましい。
【００１３】
更に、前記第３のインターフェースは、前記第１のインターフェースから前記バッファメモリに転送されたデータのアドレス情報を格納するＦＥアドレスレジスタと、前記バッファメモリから前記第２のインターフェースに転送されたデータのアドレス情報を格納するＢＥアドレスレジスタとを備え、
かつ前記第３のインターフェースは、前記ＦＥアドレスレジスタに格納される情報よりも前記ＢＥアドレスレジスタに格納される情報が大きくならないように、前記バッファメモリから前記第２のインターフェースへの転送を制御することが好ましい。
【発明の効果】
【００１４】
本発明に係る不揮発性記憶装置によれば、不揮発性コントローラに搭載するバッファメモリを小さな単位で分割することなく、かつコントローラから不揮発性メモリへのデータ転送時間のオーバヘッドをほぼなくすことができる。結果として、低コストでかつ高速なデータ転送が行える不揮発性記憶装置を実現できる。
【発明を実施するための最良の形態】
【００１５】
図１に、本発明の実施の形態に係るメモリーカードの構成を示す。不揮発性記憶装置であるメモリーカード１０１は、コントローラ１０２と不揮発性メモリであるフラッシュメモリ１０３で構成されている。
【００１６】
ホスト１０４は、メモリーカード１０１に対してデータの書き込みや読み出しを行う。メモリーカード１０１へのデータの書き込みおよび読み出しは、セクタ（５１２バイト）単位で行われる。ホスト１０４は、電源線・接地線・クロック線・コマンド線およびデータ線を介して、メモリーカード１０１と着脱可能な形で接続されている。
【００１７】
コントローラ１０２は、制御回路１０５、ホストインターフェース（以降、「ホストＩ／Ｆ」と略記する）１０６、フラッシュメモリＩ／Ｆ１０７、バッファメモリ１０８、バッファＩ／Ｆ１０９、セレクタ１１０およびセレクタ１１１、ならびに発信回路（以後、「ＶＣＯ」という）１１２を含む。
【００１８】
制御回路１０５はコントローラ１０２全体を制御する。ホストＩ／Ｆ１０６は、ホスト１０４からのコマンドを受け取り、ホスト１０４に対してレスポンスを返すと共にデータの転送を行う。フラッシュメモリＩ／Ｆ１０７は、フラッシュメモリ１０３に対してコマンドを発行すると共に、フラッシュメモリ１０３に対してデータの書き込みや読み出しを行う。ここで、フラッシュメモリ１０３には、例えばＮＡＮＤタイプのフラッシュメモリが用いられる。フラッシュメモリＩ／Ｆ１０７は汎用的なインターフェースとして、コマンドでデータの書き込みや読み出し、消去を行うことができる。
【００１９】
ホスト１０４から転送されたデータは、コントローラ１０２内のバッファメモリ１０８に一時的に保持された後、フラッシュメモリ１０３に転送される。バッファＩ／Ｆ１０９は、ホスト１０４・フラッシュメモリ１０３間のデータ転送の際に、バッファメモリ１０８、ホストＩ／Ｆ１０６およびフラッシュメモリＩ／Ｆ１０７の制御を行う。
【００２０】
バッファＩ／Ｆ１０９は、その内部にＦｒｏｎｔｅｎｄレジスタ（ＦＥアドレスレジスタ１０９ａとＦＥデータレジスタ１０９ｂ）およびＢａｃｋｅｎｄレジスタ（ＢＥアドレスレジスタ１０９ｃとＢＥデータレジスタ１０９ｄ）を持つ。バッファメモリ１０８とフラッシュメモリＩ／Ｆ１０７間のデータの転送では、必ずバッファＩ／Ｆ１０９のＢＥアドレスレジスタ１０９ｃとＢＥデータレジスタ１０９ｄとを経由する。
【００２１】
ホストＩ／Ｆ１０６とバッファメモリ１０８間のデータの転送は、バッファＩ／Ｆ１０９のＦＥアドレスレジスタ１０９ａとＦＥデータレジスタ１０９ｂを経由しても行えるが、直接ホストＩ／Ｆ１０６からバッファメモリ１０８へデータを転送することもできる。これは、セレクタ１１０とセレクタ１１１の接続状態によって切り替える。ただし、ホストＩ／Ｆ１０６からバッファメモリ１０８へ直接データを転送する際にも、ホストＩ／Ｆ１０６によるＦＥアドレスレジスタ１０９ａとＦＥデータレジスタ１０９ｂの更新は行われる。
【００２２】
ＶＣＯ１１２は電圧制御発振回路であり、メモリーカード１０１がホスト１０４に接続され電圧が印加されたときに、コントローラ１０２内部でクロックの発振を行う。
【００２３】
次に、図２のタイミングチャートを参照して、ホストから２セクタ分のデータをメモリーカード１０１に書き込む際の各ブロック間の動作を説明する。図２において（Ａ）の「ホストクロック」、（Ｂ）の「コマンド」および（Ｃ）の「データ」は、ホスト１０４からメモリーカード１０１へ送られる信号である。一方、（Ｄ）の「カードビジー」はメモリーカード１０１からホスト１０４へ送られる信号である。
【００２４】
図２（Ｅ）の「内部発振クロック」はＶＣＯ１１２の発振するクロックの状態を示す。（Ｆ）の「ホスト⇒バッファ」はホストＩ／Ｆ１０６を介してのバッファメモリ１０８へのデータの転送を示し、（Ｇ）の「コントローラ」は制御回路１０５の状態を示す。また（Ｈ）の「バッファ⇒フラッシュ」はフラッシュメモリＩ／Ｆ１０７を介してのフラッシュメモリ１０３へのデータの転送を示し、（Ｉ）の「フラッシュメモリ」はフラッシュメモリ１０３のメモリセルへの書き込み期間を示す。
【００２５】
最初に、図２の（Ａ）に示すように、時間ｔ２０１で、ホスト１０４がメモリーカード１０１にデータを書き込むために、メモリーカード１０１に対してホストクロックの供給を開始する。
【００２６】
そして、図２の（Ｂ）および（Ｃ）に示すように、時間ｔ２０２で、ホスト１０４は、メモリーカード１０１に対してコマンド線を通じて書き込みコマンドを発行すると共に、データ線を通じて書き込みデータであるセクタ０のデータをメモリーカード１０１に転送する。ホスト１０４から転送されたデータは、ホスト同期転送を使用してバッファメモリ１０８に転送される。ホスト同期転送については後で詳細に説明する。
【００２７】
このとき、セレクタ１１０およびセレクタ１１１はともに端子Ｂとの接続状態にある。端子Ｂとの接続状態は、メモリーカード１０１に対してデータの読み出しや書き込みが行われていないスタンバイ状態における接続状態である。
【００２８】
次に、図２の（Ｅ）に示すように、時間ｔ２０２で、ホスト１０４からの書き込みコマンドを受けてＶＣＯ１１２が停止状態から動作状態になる。ただし、発振するクロック周波数が安定するまでにはしばらく時間がかかる。ＶＣＯ１１２がスタンバイ状態にあったことには意味がある。ＶＣＯ１１２のようなアナログ回路は消費電力が大きいために、データの読み出しや書き込みが行われていない状態においてスタンバイ状態とすることは、メモリーカード１０１の消費電力を低減するために効果がある。このことはメモリーカード１０１の主な用途が携帯機器（デジタルカメラや携帯電話）であることを考慮すると必然である。
【００２９】
次に図２の（Ｅ）〜（Ｇ）に示すように、ＶＣＯ１１２の発振するクロックが安定した時間ｔ２０３で、コントローラ１０２の制御回路１０５が動作を開始して、セレクタ１１０およびセレクタ１１１の接続状態を端子Ａに切り替える。この切り替えによって、ホストＩ／Ｆ１０６からバッファメモリ１０８へのデータの転送は、ホスト同期転送から内部同期転送に切り替えられる。内部同期転送については後で詳細に説明する。
【００３０】
また図２の（Ｈ）に示すように、セクタ０のデータのうち既にホスト１０４からバッファメモリ１０８に転送済みのデータから順に、フラッシュメモリ１０３へ書き込むために、フラッシュメモリＩ／Ｆ１０７を介してフラッシュメモリ１０３へと転送される。
【００３１】
図２の（Ｃ）に示すように、時間ｔ２０４で、ホスト１０４はメモリーカード１０１へのセクタ０のデータの転送を終える。それを受けて、図２の（Ｄ）に示すように、ホストＩ／Ｆ１０６はホスト１０４に対してビジー信号を出力して、メモリーカード１０１がビジー状態（データを転送不可能）であることをホスト１０４に通知する。
【００３２】
図２の（Ｄ）に示すように、時間ｔ２０５で、ホストＩ／Ｆ１０６はホスト１０４に対して出力していたビジー信号を解除する。それを受けてホスト１０４は、図２の（Ｃ）に示すように、メモリーカード１０１に対してセクタ１のデータの転送を開始する。コントローラ１０２内部では、内部同期転送を使用してホスト１０４からのデータがバッファメモリ１０８に転送される。
【００３３】
この時には、図２の（Ｈ）に示すように、バッファメモリ１０８からフラッシュメモリ１０３にセクタ０のデータが転送されている。バッファメモリ１０８からフラッシュメモリ１０３へのセクタ０のデータの転送が終わると、制御回路１０５は、続けて、フラッシュメモリＩ／Ｆ１０７を介して、セクタ１のデータをフラッシュメモリ１０３へと転送する。
【００３４】
内部同期転送は、ホスト同期転送に比べて転送速度が速く行えるので、ホスト１０４からバッファメモリ１０８への転送よりも、バッファメモリ１０８からフラッシュメモリ１０３への転送のほうが速い。その結果、図２の（Ｃ）と（Ｈ）に示すように、データ転送の開始時期はずれていても（ｔ２０２とｔ２０３）、フラッシュメモリ１０３へのデータ転送の終了は、ホスト１０４がメモリーカード１０１へのデータ転送を終えて直ぐ後に終えることができる。
【００３５】
図２の（Ｂ）および（Ｃ）に示すように、時間ｔ２０６で、ホスト１０４はメモリーカード１０１へのセクタ１のデータの転送を終えると共に、メモリーカード１０１に対して転送完了コマンドを発行する。
【００３６】
図２の（Ｄ）に示すように、データの転送終了を受け、ホストＩ／Ｆ１０６は、ホスト１０４に対してビジー信号を出力してメモリーカード１０１がビジー状態（転送済みのデータを書き込み中）であることをホスト１０４に通知する。
【００３７】
図２の（Ｈ）および（Ｉ）に示すように、その直後にフラッシュメモリＩ／Ｆ１０７はフラッシュメモリ１０３へのセクタ１のデータの転送を終えて、フラッシュメモリ１０３に対してプログラムコマンドを発行する。フラッシュメモリ１０３は、転送されたデータをメモリセルに書き込む動作に入る。
【００３８】
次に、図２の（Ａ）に示すように、時間ｔ２０７で、ホスト１０４はメモリーカード１０１へのクロックの供給を停止する。ホスト１０４は必ずしもクロックを停止する必要はないが、メモリーカード１０１の内部はＶＣＯ１１２の発振するクロックで動作しているので、ホストクロックを停止しても問題はない。
【００３９】
図２の（Ｉ）および（Ｄ）に示すように、時間ｔ２０８でフラッシュメモリ１０３へのデータの書き込みが終了したら、時間ｔ２０９で、ホストＩ／Ｆ１０６はホスト１０４に対して出力していたビジー信号を解除する。それを受けてホスト１０４は、メモリーカード１０１に対するデータの書き込みが終了したことを認識する。
【００４０】
最後に、図２の（Ｅ）および（Ｇ）に示すように、時間ｔ２１０で、制御回路１０５は、セレクタ１１０およびセレクタ１１１を端子Ｂとの接続状態（スタンバイ状態の設定）に切り替え、ＶＣＯ１１２を停止させて内部発振クロックを停止すると共に、動作を停止して一連の書き込みを終了させる。
【００４１】
以上のように本実施の形態においては、ホスト１０４からメモリーカード１０１への書き込みデータの転送終了とほとんど遅延なく、その書き込みデータをフラッシュメモリ１０３へ転送できる。
【００４２】
次に、図３のタイミングチャートを参照して、ホスト同期転送について説明する。ホスト１０４からメモリーカード１０１へ書き込みデータの転送を開始する時点では、コントローラ１０２のＶＣＯ１１２のクロックの発振が安定しないために、ホストクロックのみでバッファメモリ１０８にデータを転送する必要がある。このときセレクタ１１０およびセレクタ１１１は端子Ｂに接続されている。
【００４３】
図３において（Ａ）の「ホストクロック」はホスト１０４からメモリーカード１０１へのクロック信号、（Ｂ）の「ホストデータ」はホスト１０４からメモリーカード１０１への書き込み転送データを示し、（Ｃ）の「カウンタ」はホストＩ／Ｆ１０６でのホスト１０４からの転送データのカウンタ値を示す。
【００４４】
また図３（Ｄ）は「バッファ制御」の内容を示す。「ＣＥ」はバッファメモリ１０８へのＣＥ制御信号、「アドレス」はバッファメモリ１０８へのアドレス信号、「データ」はバッファメモリ１０８へのデータ信号、「ＷＥ」はバッファメモリ１０８へのＷＥ制御信号である。
【００４５】
最初に、図３の（Ａ）および（Ｂ）に示すように、時間ｔ３０１から、ホストクロックに同期してホスト１０４からメモリーカード１０１にスタートビットが転送される。その次に、時間ｔ３０２から、ホスト１０４からメモリーカード１０１へのデータの転送が開始される。ここでは転送データ幅を４ビットとして、４ビット／クロックでデータが転送される場合について説明する。つまり１６ビットを転送するには４クロックが必要で、時間ｔ３０２から時間ｔ３０３の４クロックで１６ビットのデータが転送される。
【００４６】
図３の（Ｃ）に示すように、ホストＩ／Ｆ１０６は、時間ｔ３０１で入力されるスタートビットを受けて、次のクロックである時間ｔ３０２でカウンタを初期化（０ｘ００）し、その後、ホストクロックに同期してカウンタをインクリメントする。従って４クロック後の時間ｔ３０３ではカウンタは０ｘ０４になる。
【００４７】
図３の（Ｄ）に示すように、ホストＩ／Ｆ１０６は、カウンタの値が０ｘ０４になるとＣＥ制御信号をアクティブ（Ｌｏｗ）にして、ホストクロックの４クロック単位でバッファメモリ１０８への１６ビットのデータ転送を行う。
【００４８】
時間ｔ３０３から時間ｔ３０６ではアドレスを０ｘ００にして、データは最初の４クロックで転送された１６ビットを設定してバッファメモリ１０８に出力される。
【００４９】
その後、時間ｔ３０４からｔ３０５で、ホストＩ／Ｆ１０６はＷＥ制御信号にアクティブ（Ｌｏｗ）クロックを出力してバッファメモリ１０８にデータを書き込む。このとき、ホストＩ／Ｆ１０６は、バッファメモリ１０８だけではなく、バッファＩ／Ｆ１０９のＦＥアドレスレジスタ１０９ａにアドレスを、ＦＥデータレジスタ１０９ｂにデータを同時に書き込む。このホストクロックの４クロックが、ホスト同期転送における書き込み時間Ｔｅｘｔ（Ｔ  ｅｘｔｅｒｎａｌ：ホスト同期転送周期）である。
【００５０】
以降、時間ｔ３０６から時間ｔ３０９の間も同様にして、ホストＩ／Ｆ１０６はホスト１０４からメモリーカード１０１にホストクロックに同期してデータを４ビット単位で転送する。転送されたデータは１６ビットに変換され、バッファメモリ１０８およびバッファＩ／Ｆ１０９内のレジスタに書き込まれる。
【００５１】
ここで、ホストクロックの上限が２５ＭＨｚであるので、１クロックの最短の時間は４０ｎｓであり、４クロックの時間であるＴｅｘｔの最短の時間は１６０ｎｓである。
【００５２】
次に、図４のタイミングチャートを参照して、内部同期転送について説明する。ＶＣＯ１１２のクロックの発振が安定した後は、バッファメモリ１０８への書き込みはホストクロックではなく、ＶＣＯ１１２の発振するクロックに同期して行われる。このときセレクタ１１０およびセレクタ１１１は端子Ａに接続されている。
【００５３】
図４において（Ａ）の「内部クロック」はＶＣＯ１１２が発振するクロック信号を示す。また（Ｂ）の「バッファ制御切替」は制御回路１０５によるセレクタ１１０およびセレクタ１１１の接続状態を示し、端子Ａに接続（Ｈｉｇｈ）しているか端子Ｂ（Ｌｏｗ）に接続しているかを表している。（Ｃ）の「カウンタ」はバッファＩ／Ｆ１０９の持っているカウンタ値を示し、このカウンタ値を基にして、ホストＩ／Ｆ１０６からの転送とフラッシュメモリＩ／Ｆ１０７からの転送が切り替えられる。
【００５４】
ＶＣＯ１１２の発振による内部クロックが安定したら（図２の時間２０３）、制御回路１０５が動作し始める。図４の（Ｂ）に示すように、時間ｔ４０１で、バッファＩ／Ｆ１０９によってセレクタ１１０およびセレクタ１１１が端子Ａに接続される。これによって、時間ｔ４０１以前はホスト同期転送を行っているが、時間ｔ４０１以降は内部同期転送が行われる。
【００５５】
図４の（Ｃ）に示すように、セレクタ１１０およびセレクタ１１１の切り替えと同時に、バッファＩ／Ｆ１０９はカウンタをリセット（０ｘ００）する。それ以降、バッファＩ／Ｆ１０９は内部クロックに同期してカウンタをインクリメントし、カウンタ値が０ｘ０７になったらカウンタをリセットすることで、内部クロックの８クロックの周期で巡回させる。
【００５６】
このカウンタの値が０ｘ００の期間（時間ｔ４０１〜時間ｔ４０２）がＦｒｏｎｔｅｎｄのレジスタ（ＦＥデータレジスタ１０９ｂ）とバッファメモリ１０８間の転送を行う期間で、カウンタの値が０ｘ００以外の期間（時間ｔ４０２〜時間ｔ４０３）がＢａｃｋｅｎｄのレジスタ（ＢＥデータレジスタ１０９ｄ）とバッファメモリ１０８間の転送を行う期間である。
【００５７】
ＦＥデータレジスタ１０９ｂとバッファメモリ１０８間でデータの転送が行われる期間においては、ホスト１０４からの書き込みデータは、ホストＩ／Ｆ１０６を経由してＦＥデータレジスタ１０９ｂの容量を１ワードとするワード単位でバッファメモリ１０８に転送される。一方、ＢＥデータレジスタ１０９ｄとバッファメモリ１０８間でデータの転送が行われる期間においては、ＢＥデータレジスタ１０９ｄの容量を１ワードとするワード単位でバッファメモリ１０８からデータが転送される。
【００５８】
カウンタが巡回する周期がＴｉｎｔ（Ｔ  ｉｎｔｅｒｎａｌ：内部同期転送切替周期）である。内部クロックは５０ＭＨｚに設定されており、Ｔｉｎｔは１６０ｎｓ（＝２０ｎｓ×８）である。内部同期転送の期間において、ホストＩ／Ｆ１０６からのバッファＩ／Ｆ１０９のＦＥアドレスレジスタ１０９ａおよびＦＥデータレジスタ１０９ｂへの書き込みに対して、遅延なくバッファメモリ１０８に反映できるようになっている。
【００５９】
バッファＩ／Ｆ１０９はデータの書き込み（ホストＩ／Ｆ１０６からバッファメモリ１０８への転送）においてＦＥアドレスレジスタ１０９ａの書き換えを検出して、カウンタが０ｘ００の期間にＦＥデータレジスタ１０９ｂの値をバッファメモリ１０８のＦＥアドレスレジスタ１０９ａの示すアドレスに書き込む。ＦＥアドレスレジスタ１０９ａの書き換えは、図３でも説明したが、ホストＩ／Ｆ１０６によって行われる。
【００６０】
バッファメモリ１０８からＢａｃｋｅｎｄレジスタへの反映は１６ビット×７／Ｔｉｎｔの速度で行うことが可能であるが、実際にはフラッシュメモリ１０３へのデータの転送の上限で律速されている。バッファＩ／Ｆ１０９はデータの書き込み（バッファメモリ１０８からフラッシュメモリＩ／Ｆ１０７への転送）において、ＢＥアドレスレジスタ１０９ｃの書き換えを検出して、カウンタが０ｘ００以外の期間にＢＥデータレジスタ１０９ｄにバッファメモリ１０８のＢＥアドレスレジスタ１０９ｃの示すアドレスのデータを書き込む。
【００６１】
ＢＥアドレスレジスタ１０９ｃの書き替えはフラッシュメモリＩ／Ｆ１０７によるデータの要求の形で行われる。ただし、ここでバッファＩ／Ｆ１０９はＦＥアドレスレジスタ１０９ａとＢＥアドレスレジスタ１０９ｃの値を比較し、ＢＥアドレスレジスタ１０９ｃの値が大きい時には、まだホスト１０４からのデータがバッファメモリ１０８に転送されていないと判定して、ＢＥデータレジスタ１０９ｄへのデータの反映は行わない。
【００６２】
従って、ホスト１０４からのデータ転送に律速されるＦｒｏｎｔｅｎｄのレジスタとバッファメモリ１０８間のデータ転送と、フラッシュメモリ１０３へのデータ転送で律速されるバッファメモリ１０８とＢａｃｋｅｎｄのレジスタ間のデータ転送は、内部クロックに同期するカウンタによって、それぞれの転送のワード単位の整数倍毎に切り替えて行われる。
【００６３】
次に、図２〜図４のタイミングチャートで説明した内容を、各ブロックの制御フローの形で表現して説明する。図５は制御回路１０５の制御フローである。
【００６４】
ステップＳ５０１では制御回路１０５はスタンバイ状態であり、このときにはＶＣＯ１１２もスタンバイ状態で内部クロックは停止している。ステップＳ５０２ではホスト１０４からのコマンドを待っており、コマンドがある場合にはステップＳ５０３に遷移し、コマンドがないときにはステップＳ５０１のスタンバイ状態のままである。
【００６５】
ホスト１０４からのコマンドが発生したことをホストＩ／Ｆ１０６から通知されると同時に、制御回路１０５はステップＳ５０３でＶＣＯ１１２を動作させると共に、制御回路１０５内部でのカウンタ（ＶＣＯ１１２の発振安定待ちの時間を計測するため）を動作させる。
【００６６】
ステップＳ５０４では、ステップＳ５０３で計測開始したカウンタ値を基に発振安定に必要な時間が経過したかどうかを判定する。時間が経過したらステップＳ５０５に遷移する。ステップＳ５０５ではホスト１０４からのコマンドの種類を判別する。ここでは書き込みコマンドである場合について説明するので、ステップＳ５０５で書き込みコマンドと判断したとしてステップＳ５０６に遷移する。
【００６７】
ステップＳ５０６では、バッファＩ／Ｆ１０９とフラッシュメモリＩ／Ｆ１０７に対して処理開始の指示を送り、ステップＳ５０７に遷移する。ステップＳ５０７で、制御回路１０５はホスト１０４からの書き込み終了待ちを行う。転送完了コマンドが入力されたら（図２の時間ｔ２０６）ステップＳ５０８に遷移する。
【００６８】
ステップＳ５０８で、制御回路１０５はバッファＩ／Ｆ１０９とフラッシュメモリＩ／Ｆ１０７に対して処理停止の指示を送り、ステップＳ５０９に遷移する。ステップＳ５０９で、制御回路１０５はＶＣＯ１１２を停止させてスタンバイ状態にしてステップＳ５０１に遷移する。
【００６９】
図６はバッファＩ／Ｆ１０９の制御フローである。ステップＳ６０１ではバッファＩ／Ｆ１０９はスタンバイ状態である。ステップＳ６０２では制御回路１０５からの開始待ちであり、開始指示がある場合にはステップＳ６０３に遷移し、開始指示がない場合にはステップＳ６０１のスタンバイ状態のままである。
【００７０】
制御回路１０５からの開始指示を受けると、ステップＳ６０３でバッファＩ／Ｆ１０９はセレクタ１１０およびセレクタ１１１を端子Ａと接続し、内部同期転送に切り替える。図２の時間ｔ２０３のタイミングである。これによってホストＩ／Ｆ１０６から直接バッファメモリ１０８にデータを書き込むことはできなくなる。
【００７１】
ステップＳ６０４では、図４にも示したバッファＩ／Ｆ１０９内部のカウンタの値からＦＥレジスタの処理を行う（カウンタ値が０ｘ００）のか、ＢＥレジスタの処理を行う（カウンタ値が０ｘ００以外）のかを判断する。ＦＥレジスタの処理を行うときにはステップＳ６０５に、ＢＥレジスタの処理を行うときにはステップＳ６０８に遷移する。
【００７２】
ステップＳ６０５で、バッファＩ／Ｆ１０９はＦＥアドレスレジスタ１０９ａに示されたアドレスを確認する。続いてステップＳ６０６で、バッファＩ／Ｆ１０９はＦＥアドレスレジスタ１０９ａに示されたアドレスに対応するデータ（ＦＥデータレジスタ１０９ｂ）をバッファメモリ１０８に反映済みかどうかを判定し、反映済みであればステップＳ６０４に遷移し、反映していなければステップＳ６０７に遷移する。
【００７３】
ステップＳ６０７では未反映のＦＥレジスタの情報を反映するために、ＦＥアドレスレジスタ１０９ａの示すバッファメモリ１０８のアドレスにＦＥデータレジスタ１０９ｂのデータを書き込む。そしてステップＳ６０４に遷移する。
【００７４】
ステップＳ６０８で、バッファＩ／Ｆ１０９はＢＥアドレスレジスタ１０９ｃに示されたアドレスを確認する。続いてステップＳ６０９で、バッファＩ／Ｆ１０９はＢＥアドレスレジスタ１０９ｃに示されたアドレスに対応するデータをバッファメモリ１０８から読み出してＢＥデータレジスタ１０９ｄに反映済みかどうかを判定し、反映済みであればステップＳ６０４に遷移し、反映していなければステップＳ６１０に遷移する。
【００７５】
ステップＳ６１０では未反映のバッファメモリ１０８の情報を反映するためにＢＥアドレスレジスタ１０９ｃの示すバッファメモリ１０８のアドレスのデータをＢＥデータレジスタ１０９ｄに書き込む。そしてステップＳ６０４に遷移する。
【００７６】
バッファＩ／Ｆ１０９は内部同期転送において図中の破線で囲まれたステップＳ６０４〜Ｓ６１０の処理を行うが、そのいずれの状態からも制御回路１０５からの停止指示で停止に至る処理を行う。つまりステップＳ６１１はステップＳ６０４〜Ｓ６１０のいずれの状態からも制御回路１０５の停止指示を受けてステップＳ６１２に遷移する。制御回路１０５からの停止指示がなければ、ステップＳ６０４〜６１０の処理を継続し続ける。
【００７７】
ステップＳ６１２で、バッファＩ／Ｆ１０９はセレクタ１１０およびセレクタ１１１を端子Ｂとの接続状態に切り替えてステップＳ６０１に遷移し、処理を終了する。
【００７８】
図７はフラッシュメモリＩ／Ｆ１０７の制御フローである。ステップＳ７０１では、フラッシュメモリＩ／Ｆ１０７はスタンバイ状態である。
【００７９】
ステップＳ７０２では制御回路１０５からの開始待ちであり、開始指示がある場合にはステップＳ７０３に遷移し、開始指示がない場合にはステップＳ７０１のスタンバイ状態のままである。
【００８０】
制御回路１０５からの開始指示を受けると、ステップＳ７０３でフラッシュメモリＩ／Ｆ１０７はフラッシュメモリ１０３に対して書き込みを行うのか読み出しを行うのか判断する。ここでは書き込みを行うとしてステップＳ７０４に遷移する。
【００８１】
ステップＳ７０４で、フラッシュメモリＩ／Ｆ１０７はフラッシュメモリ１０３に対して書き込みを開始するコマンドを発行する。そしてステップＳ７０５に遷移する。
【００８２】
ステップＳ７０５で、フラッシュメモリＩ／Ｆ１０７はＢＥレジスタの更新を確認する。フラッシュメモリＩ／Ｆ１０７はＢＥアドレスレジスタ１０９ｃに指定したアドレスのデータがＢＥデータレジスタ１０９ｄに反映されているかを確認して、ステップＳ７０６へ遷移する。
【００８３】
ステップＳ７０６で、フラッシュメモリＩ／Ｆ１０７はＢＥデータレジスタの値が既にフラッシュメモリ１０３に転送済みかどうかを判定する。転送済みであればステップＳ７０５に遷移し、転送済みでなければステップＳ７０７に遷移する。
【００８４】
ステップＳ７０７で、フラッシュメモリＩ／Ｆ１０７は、バッファメモリ１０８から読み出されたデータであるＢＥデータレジスタの値をフラッシュメモリ１０３へ転送する。そしてステップＳ７０８に遷移する。
【００８５】
ステップＳ７０８で、フラッシュメモリＩ／Ｆ１０７はフラッシュメモリ１０３へのデータの転送が書き込み単位に達しているかどうかを判断する。書込み単位に達していなければステップＳ７０５に遷移し、書き込み単位に達していればステップＳ７０９に遷移する。
【００８６】
ステップＳ７０９で、フラッシュメモリＩ／Ｆ１０７はフラッシュメモリ１０３に対して転送済みのデータの書き込みを実行するコマンドを発行して、ステップＳ７１０へ遷移する。
【００８７】
ステップＳ７１０ではフラッシュメモリ１０３の書き込みが終了したかどうかを待つ。終了していればステップＳ７０４に遷移する。
【００８８】
フラッシュメモリＩ／Ｆ１０７は、フラッシュメモリ１０３への書き込みにおいて図中の破線で囲まれたステップＳ７０４〜Ｓ７１０の処理を行うが、そのいずれの状態からも、制御回路１０５からの停止指示で停止に至る処理を行う。つまりステップＳ７１１はステップＳ７０４〜Ｓ７１０のいずれの状態からも制御回路１０５の停止指示を受けてステップＳ７０１に遷移する。制御回路１０５からの停止指示がなければ、ステップＳ７０４〜Ｓ７１０の処理を継続する。
【００８９】
以上のように、本実施の形態に係る不揮発性記憶装置は、最初はホスト同期転送を行うが、内部のＶＣＯ１１２の発振が安定した後には、内部同期転送に切り替える。すなわち、一つのバッファメモリ１０８を時分割で切り替えて使用することで、ホスト１０４からメモリーカード１０１（コントローラ１０２のバッファメモリ１０８）への書き込みデータの転送よりも、コントローラ１０２のバッファメモリ１０８からフラッシュメモリ１０３への書き込みデータの転送速度を速くする。その結果、ホストＩ／Ｆ１０６からバッファメモリ１０８に転送直後のデータもほとんど遅延なくバッファメモリ１０８からフラッシュメモリＩ／Ｆ１０７に転送できる。
【００９０】
なお、本実施の形態において指定している数値については、本発明の効果を得るうえで特に限定されるものではない。
【産業上の利用可能性】
【００９１】
本発明は、書き込み単位の増大が予想される大容量の不揮発性メモリを使用した不揮発性記憶装置の書き込みの高速化技術として有用である。
【図面の簡単な説明】
【００９２】
【図１】本発明の実施の形態に係る不揮発性記憶装置であるメモリーカードの構成を示すブロック図
【図２】図１のメモリーカードの動作を示すタイミングチャート
【図３】ホスト同期転送の動作を説明するタイミングチャート
【図４】内部同期転送の動作を説明するタイミングチャート
【図５】図１の制御回路の動作を説明するフローチャート
【図６】図１のバッファＩ／Ｆの動作を説明するフローチャート
【図７】図１のフラッシュメモリＩ／Ｆの動作を説明するフローチャート
【符号の説明】
【００９３】
１０１  メモリーカード
１０２  コントローラ
１０３  フラッシュメモリ
１０４  ホスト
１０５  制御回路
１０６  ホストＩ／Ｆ
１０７  フラッシュメモリＩ／Ｆ
１０８  バッファメモリ
１０９  バッファＩ／Ｆ
１１０、１１１  セレクタ
１１２  ＶＣＯ
【図１】
2008310459.tif 000003
【図２】
2008310459.tif 000004
【図３】
2008310459.tif 000005
【図４】
2008310459.tif 000006
【図５】
2008310459.tif 000007
【図６】
2008310459.tif 000008
【図７】
2008310459.tif 000009