(57)【要約】【課題】不揮発性メモリにデータを読み書きする際の速度を向上させること。【解決手段】ホストからデータを書込み又は読出す際に一時的にデータを保持するバッファメモリ１２３に複数のバッファＡ１０９，バッファＢ１１０を設ける。又夫々のアドレスを格納する論理アドレス格納部１３１，１３２を設ける。データを読み書きする際に論理アドレス格納部の論理アドレスと一致するかどうかを判別し、一致する場合には論理アドレス格納部に対応する場合からデータを読み、又はそのバッファを介してフラッシュメモリにデータを書込む。これによって書込み及び読出しの処理を効率化することができる。【選択図】図１
2007164355.tif 000002
【特許請求の範囲】
【請求項１】
外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置であって、
外部から書込まれるデータを保存する不揮発性メモリと、
前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリと、
前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部と、
外部にデータの読出しを行う際に読出し論理アドレスと前記論理アドレス格納部に保持されているアドレスとが一致する場合に、その論理アドレス格納部に対応する前記バッファメモリのデータを外部に出力する制御部と、を具備する不揮発性記憶装置。
【請求項２】
外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置であって、
外部から書込まれるデータを保存する不揮発性メモリと、
前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリと、
前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部と、
データを書込む際に書込みの論理アドレスと前記論理アドレス格納部に格納されたアドレスとが一致する場合に、その論理アドレス格納部に対応するバッファメモリに対して外部からデータを入力し、前記不揮発性メモリに書込むよう制御する制御部と、を具備する不揮発性記憶装置。
【請求項３】
外部から書込まれるデータを保存する不揮発性メモリ、前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリ、及び前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部、を有し、外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置のデータ読出し方法であって、
外部にデータを読出す際に、読出す論理アドレスと各前記論理アドレス格納部に格納された論理アドレスとを比較し、
論理アドレスが同一であったときに前記論理アドレス格納部に対応する前記バッファメモリのデータを外部に出力する不揮発性記憶装置のデータ読出し方法。
【請求項４】
外部から書込まれるデータを保存する不揮発性メモリ、前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリ、及び前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部、を有し、外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置のデータ書込み方法であって、
外部からデータを書込む際に、書込みを行う論理アドレスと各前記論理アドレス格納部に格納された論理アドレスとを比較し、
論理アドレスが同一であったときに前記論理アドレス格納部に対応する前記バッファメモリに対して外部からデータを書込み、
データが書込まれたバッファメモリより前記不揮発性メモリにデータを書込む不揮発性記憶装置のデータ書込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置、そのデータ読出方法及びそのデータ書込み方法に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話のメモリカードとして市場を拡大している。メモリカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けて大容量化・高速化が進められている。
【０００３】
従来の不揮発性記憶装置の構成、不揮発性記憶装置からのデータ読出し、及び不揮発性記憶装置へのデータ書込み方法について説明する。図４は従来の不揮発性記憶装置のブロック図と外部ホストとを示すブロック図である。図４において、不揮発性記憶装置を制御するホスト１０１に不揮発性記憶装置であるメモリカード１０２が接続される。メモリカード１０２内には、ホスト１０１が書込むデータが格納されるフラッシュメモリ１０３とコントローラ１０４を含んでいる。コントローラ１０４はホスト１０１とインターフェースを制御すると共に、フラッシュメモリ１０３の制御を行うコントローラである。コントローラ１０４の内には、ホスト１０１とのインターフェースを制御するホストインターフェース１０５、フラッシュメモリ１０３とのインターフェースを制御するフラッシュインターフェース１０６、コントローラ１０４内部の動作を制御するＭＰＵ１０７、バッファメモリ１０８を含んでいる。バッファメモリ１０８は揮発性メモリであって、ホスト１０１とフラッシュメモリ１０３の間の読出しデータや書込みデータを一時格納するためのメモリである。バッファメモリ１０８内には、バッファＡ１０９とバッファＢ１１０がある。夫々のバッファの容量はフラッシュメモリ１０３への書込み単位と等しく、例えば２ｋＢとする。２つのバッファＡ１０９，Ｂ１１０はホスト１０１側とフラッシュメモリ１０３側にそれぞれ交互に接続される。
【０００４】
図５はホスト１０１がメモリカード１０２からデータを読み出す際のフローチャートである。ホスト１０１からメモリカード１０２への読出しのコマンドの発行を受けて、ＭＰＵ１０７はステップ５０１でフラッシュインターフェース１０６を制御してフラッシュメモリ１０３からバッファメモリ１０８へデータを転送する。この際に読出しデータが入るバッファは、バッファＡ１０９でもバッファＢ１１０でも構わない。このときにフラッシュメモリ１０３側に接続されているバッファにデータが入る。ここではバッファＡ１０９にフラッシュメモリ１０３が接続されており、フラッシュメモリ１０３からの読出しデータがバッファＡ１０９に入ったとして説明を続ける。
【０００５】
次にステップ５０２で、ＭＰＵ１０７はバッファの切り替えを行う。フラッシュメモリ１０３側に接続されたバッファＡ１０９をホストインターフェース１０５側に接続し、ホストインターフェース１０５側に接続されたバッファＢ１１０をフラッシュメモリ１０３側に接続する。
【０００６】
次にステップ５０３で、ＭＰＵ１０７はフラッシュインターフェース１０６を制御してフラッシュメモリ１０３からバッファメモリ１０８へデータを転送する。この際に読出しデータが入るバッファはステップ５０２でフラッシュメモリ１０３に接続したバッファＢ１１０であり、バッファＢ１１０にフラッシュメモリ１０３からの読出しデータが入る。このデータ転送を終えた後、ステップ５０４に進む。
【０００７】
次にステップ５０４で、ＭＰＵ１０７はホストへのデータ転送の終了を待ち続ける。ここでのデータの転送終了とは、ホスト１０１に接続されているバッファＡ１０９のデータをホスト１０１が読み出し終わることである。バッファＡ１０９からホスト１０１へのデータ転送が終了したら、ステップ５０５に進む。
【０００８】
ステップ５０５ではバッファの切り替えを行う。フラッシュメモリ１０３側に接続されていたバッファＢ１１０は、フラッシュメモリ１０３から読み出されたデータが入っているのでホストインターフェース１０５側へ接続する。ホストインターフェース１０５側に接続されていたバッファＡ１０９は、ホスト１０１が全てデータを読み出したことをステップ５０４で確認しているので、フラッシュメモリ１０３側に接続する。
【０００９】
次にステップ５０６でＭＰＵ１０７はホスト１０１からの読出しを終了してよいかどうかを判定し、終了してよい場合には読み出し終了へ、継続して読み出す場合にはステップ５０３へ戻る。
【００１０】
以上のようにしてＭＰＵ１０７は、ホスト１０１のメモリーカード１０２への読出しコマンドに対応することでデータの読出しを実現する。
【００１１】
図６はホスト１０１がメモリカード１０２にデータを書込む際のフローチャートである。ホスト１０１からメモリカード１０２へ書込みコマンドが発行されれば、ＭＰＵ１０７はステップ６０１でホスト１０１からのデータの転送を待つ。ここではバッファＡ１０９がホスト１０１側に接続されているとすると、バッファＡ１０９にホスト１０１からのデータの転送が終了するまで待ち続ける。転送が終了したことを確認すると、ステップ６０２へと遷移する。
【００１２】
ステップ６０２ではバッファの切り替えを行う。フラッシュメモリ１０３側に接続された、有効なデータの入っていないバッファＢ１１０はホストインターフェース１０５側に接続し、ホストインターフェース１０５側に接続されてホスト１０１からの書込みデータを保持しているバッファＡ１０９はフラッシュメモリ１０３側に接続する。
【００１３】
次にステップ６０３でＭＰＵ１０７は、バッファＡ１０９のデータをフラッシュインターフェース１０６を制御してフラッシュメモリ１０３へと書込む。この際にバッファＡ１０９の全てがホスト１０１より転送されたデータで埋められていない場合、即ちホスト１０１の送ってきた書込みデータの容量がバッファＡ１０９の容量よりも少ない場合には、フラッシュメモリ１０３の書き換え前のデータが保持されている領域の書き換えられない部分のデータを一旦読み出して、バッファＡ１０９に書込む。次いでホストから送られてきたデータと共に、バッファＡ１０９の２ｋＢ分のデータをフラッシュメモリ１０３の所定の領域に書込む。
【００１４】
その後ステップ６０４でＭＰＵ１０７はホスト１０１からのデータの書込みを終えていいかどうかを判定し、終了してよい場合には書込みを終了し、継続する場合にはステップ６０１へと遷移する。
【００１５】
以上のようにしてＭＰＵ１０７は、ホスト１０１のメモリーカード１０２への書込みコマンドに対応することでデータの書込みを実現する。
【特許文献１】特開２００４−３３５０７２号
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、以上のような不揮発性記憶装置の読出し方法では、ホストが不揮発性記憶装置のデータを読出す場合、例えバッファメモリにデータが残っている場合であっても不揮発性メモリからデータを一旦バッファメモリに読出し、それをホスト側に転送する必要があった。又ホストが不揮発性記憶装置にデータを書込む場合、書込み単位以下の小さな容量で書込む場合であっても、ホストから送られてこなかったデータは必ず不揮発性メモリから一旦読出し、その後に書込み単位分のデータを書込むことが必要であった。そのためにフラッシュメモリへのアクセス時間のために読出しや書込みの処理時間が長くなるという課題があった。
【課題を解決するための手段】
【００１７】
この課題を解決するために、本発明の不揮発性記憶装置は、外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置であって、外部から書込まれるデータを保存する不揮発性メモリと、前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリと、前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部と、外部にデータの読出しを行う際に読出し論理アドレスと前記論理アドレス格納部に保持されているアドレスとが一致する場合に、その論理アドレス格納部に対応する前記バッファメモリのデータを外部に出力する制御部と、を具備するものである。
【００１８】
この課題を解決するために、本発明の不揮発性記憶装置は、外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置であって、外部から書込まれるデータを保存する不揮発性メモリと、前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリと、前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部と、データを書込む際に書込みの論理アドレスと前記論理アドレス格納部に格納されたアドレスとが一致する場合に、その論理アドレス格納部に対応するバッファメモリに対して外部からデータを入力し、前記不揮発性メモリに書込むよう制御する制御部と、を具備するものである。
【００１９】
この課題を解決するために、本発明の不揮発性記憶装置のデータ読出し方法は、外部から書込まれるデータを保存する不揮発性メモリ、前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリ、及び前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部、を有し、外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置のデータ読出し方法であって、外部にデータを読出す際に、読出す論理アドレスと各前記論理アドレス格納部に格納された論理アドレスとを比較し、論理アドレスが同一であったときに前記論理アドレス格納部に対応する前記バッファメモリのデータを外部に出力するものである。
【００２０】
この課題を解決するために、本発明の不揮発性記憶装置のデータ書込み方法は、外部から書込まれるデータを保存する不揮発性メモリ、前記不揮発性メモリに保存されたデータを外部に読出し、または前記不揮発性メモリに外部からデータを書込む際に一時的にデータを格納する少なくとも１つのバッファメモリ、及び前記バッファメモリに対応して設けられ、前記バッファメモリに一時的に格納されたデータに対応する論理アドレスを格納する少なくとも１つの論理アドレス格納部、を有し、外部からデータを書込み及び外部にデータを読出す不揮発性記憶装置のデータ書込み方法であって、外部からデータを書込む際に、書込みを行う論理アドレスと各前記論理アドレス格納部に格納された論理アドレスとを比較し、論理アドレスが同一であったときに前記論理アドレス格納部に対応する前記バッファメモリに対して外部からデータを書込み、データが書込まれたバッファメモリより前記不揮発性メモリにデータを書込むものである。
【発明の効果】
【００２１】
本発明によれば、論理アドレス格納部を設けて、ホストから指定するアドレスと論理アドレス格納部のアドレスを比較することで、ホストから指定するアドレスに対応する不揮発性メモリのデータがバッファメモリに存在するかどうかの判断をする。データがバッファに存在すればフラッシュメモリに対するアクセスを減らすことができるので、同じアドレスに対して続けてホストからアクセスする場合に読出し・書込みの性能が向上するという効果が得られる。一般的にホストはＦＡＴに対するアクセスを行う際に同じアドレスに対する読出しや書込みが必要となる構成をとっているので、本発明によってＦＡＴ等のアクセスが高速に行えるという効果が得られる。
【発明を実施するための最良の形態】
【００２２】
本発明の実施の形態による不揮発性記憶装置について説明する。図１は本実施の形態による不揮発性記憶装置と外部ホストとを示すブロック図である。図１は不揮発性記憶装置のブロック図と外部ホストとを示すブロック図である。図１において、不揮発性記憶装置を制御するホスト１０１に不揮発性記憶装置であるメモリカード１２０が接続される。メモリカード１２０内には、ホスト１０１が書込むデータが格納されるフラッシュメモリ１０３とコントローラ１２１を含んでいる。コントローラ１２１はホスト１０１とインターフェースを制御すると共に、フラッシュメモリ１０３の制御を行うコントローラである。コントローラ１２１の内には、ホスト１０１とのインターフェースを制御するホストインターフェース１０５、フラッシュメモリ１０３とのインターフェースを制御するフラッシュインターフェース１０６、コントローラ１２１内部の動作を制御する制御部であるＭＰＵ１２２、バッファメモリ１２３を含んでいる。バッファメモリ１２３は揮発性メモリであって、ホスト１０１とフラッシュメモリ１０３の間の読出しデータや書込みデータを一時格納するためのメモリである。バッファメモリ１２３内には、従来例と同様に２つのバッファメモリ、即ちバッファＡ１０９とバッファＢ１１０がある。夫々のバッファの容量はフラッシュメモリ１０３への書込み単位と等しく、例えば２ｋＢとする。２つのバッファ１０９，１１０はホスト１０１側とフラッシュメモリ１０３側にそれぞれ交互に接続される。論理アドレス格納部１３１はバッファＡ１０９に格納されたデータの論理アドレス（ホスト１０１が指定するアドレス）を格納するためのものである。論理アドレス格納部１３２はバッファＢ１１０に格納されたデータの論理アドレスを格納するためのものである。ここで論理アドレスは、バッファＡ１０９又はＢ１１０の２ｋＢの単位のデータを示すアドレスとする。
【００２３】
次に本実施の形態の動作について説明する。図２はホスト１０１がメモリカード１２０からデータを読み出す際のフローチャートである。メモリカード１２０はホスト１０１からデータの読出しコマンドの発行を受けると、ＭＰＵ１２２はステップ２０１で読出し開始アドレスを取得する。これはホスト１０１が読出しを開始する論理アドレスを取得することである。
【００２４】
次にステップ２０２では、ＭＰＵ１２２は論理アドレス格納部１３１又は１３２に保持している論理アドレスがステップ２０１で取得した論理アドレスと同じであるかどうかを判定する。論理アドレスが同じであると判定した場合には、ステップ２０３へ進み、論理アドレスが同じでないと判定した場合には、ステップ２０４へと進む。
【００２５】
ステップ２０３ではバッファ設定を行う。これは同じ論理アドレスの存在したバッファをホスト１０１側に接続することである。既に接続済みの場合には何も行う必要は無い。アドレスの存在したバッファがフラッシュメモリ１０３に接続されている場合には、バッファの切り替えを行う。これによりホスト１０１の指定した論理アドレスのデータが存在しているバッファをホスト１０１側に接続することができる。
【００２６】
ステップ２０２において同じ論理アドレスがなければステップ２０４に進み、ＭＰＵ１２２はフラッシュインターフェース１０６を制御してフラッシュメモリ１０３からバッファメモリ１２３へデータの転送を行う。この際に読出しデータが入るバッファはバッファＡ１０９でもバッファＢ１１０でも構わない。このときにフラッシュメモリ１０３側に接続されているバッファにデータが入る。ここではバッファＡ１０９にフラッシュメモリ１０３が接続されており、フラッシュメモリ１０３からの読出しデータが入ったとして説明を続ける。
【００２７】
次にステップ２０５ではＭＰＵ１２２は転送を行ったバッファに対応するアドレスを論理アドレス格納部に登録する。ここではステップ２０４でバッファＡ１０９にデータが入ったとしているので、論理アドレス格納部１３１にバッファＡ１０９に格納されたデータに対応する論理アドレスを登録する。
【００２８】
次にステップ２０６で、ＭＰＵ１２２はデータの転送の終了を待ち続ける。ここでの転送とは、ホスト１０１に接続されたバッファからホストへのデータの転送である。ホスト１０１がバッファのデータを読出し終えたら、ステップ２０７へと遷移する。ただし、ホスト１０１の読出しコマンドにおいて１回目にステップ２０６の処理をする場合には、ホスト１０１はまだ読み出すデータがないので、ＭＰＵ１２２は転送を待たずにステップ２０７へ移行する。
【００２９】
ステップ２０７ではバッファの切り替えを行う。フラッシュメモリ１０３側に接続されたバッファＡ１０９は、フラッシュメモリ１０３から読み出されたデータが入っているのでホストインターフェース１０５側へ、ホストインターフェース１０５側に接続されたバッファＢ１１０はフラッシュメモリ１０３側に接続する。
【００３０】
次にステップ２０８でＭＰＵ１２２は処理を行う論理アドレスのインクリメントを行う。そしてステップ２０９でＭＰＵ１２２はホスト１０１からの読出しを終えてよいかどうかを判定し、終了してよい場合には読み出し終了へ、継続して読み出す場合にはステップ２０４へ遷移する。
【００３１】
一方ステップ２０３においてバッファを設定した場合には、ステップ２０８に進んでアドレスをインクリメントする。この場合にはデータの転送が終了していないので、ステップ２０９を介してステップ２０４に戻る。そしてフラッシュメモリ１０３に接続されているバッファＢ１１０にデータを転送し、ステップ２０５においてアドレスを登録すると共に、ホスト１０１へのデータ転送を待受ける。この場合には既にバッファＡ１０９にデータが保持されているので、バッファからホストへのデータ転送を待受け、以後同様の処理を行う。
【００３２】
ホスト１０１からメモリカード１２０への読出しコマンドに対してＭＰＵ１２２が以上のように動作して、データの読出しを実現する。このときホスト１０１の読み出すデータが既にバッファメモリに格納されている場合には、フラッシュメモリ１０３からバッファメモリにデータを読み出すことなくホスト１０１への読出し処理を実行でき、読出し速度を向上することができる。
【００３３】
図３はホスト１０１がメモリカード１２０にデータを書込む際のフローチャートである。ホスト１０１からメモリカード１２０への書込みコマンドの発行を受けて、ＭＰＵ１２２はステップ３０１で書込み開始アドレスを取得する。これはホスト１０１が書込みを開始する論理アドレスを取得することである。
【００３４】
次にステップ３０２ではＭＰＵ１２２は論理アドレス格納部１３１又は１３２に保持されている論理アドレスがステップ３０１で取得した論理アドレスと同じ論理アドレスかどうかを判定する。同じ論理アドレスである場合には、ステップ３０３へ進み、同じでない場合には、ステップ３０４へと進む。
【００３５】
ステップ３０３ではバッファ設定を行う。これは同じ論理アドレスの存在したバッファ、つまりホスト１０１の指定したアドレスのデータが存在しているバッファをホスト１０１側に接続することである。既に接続済みの場合には何も行う必要は無い。アドレスの存在したバッファがフラッシュメモリ１０３に接続されている場合には、バッファの切り替えを行う。ここでは論理アドレス格納部１３１に登録された論理アドレスがホスト１０１の指定した論理アドレスと等しいものとすると、バッファＡ１０９をホスト１０１側に接続する。
【００３６】
次にＭＰＵ１２２はステップ３０４でホスト１０１からのデータの転送を待つ。ここではバッファＡ１０９がホスト１０１側に接続されているとすると、バッファＡ１０９にホスト１０１からのデータが転送されるのを待ち、転送が終了したことを確認してステップ３０５へと遷移する。このときステップ３０３からステップ３０４に遷移してきている場合には、ホスト１０１に接続されたバッファには、対応する論理アドレスのデータが既にバッファ内に保持されていた。従ってホスト１０１からの転送されてきたデータがバッファＡ１０９の容量よりも少ない場合には、転送されてきたデータによって一部は上書きがなされているが、ホスト１０１の転送してきたデータ以外のデータはバッファに既に存在するため、改めてフラッシュメモリ１０３から読み出す必要はない状態となっている。
【００３７】
ホスト１０１が転送してきてバッファに格納されたデータは、当然のことながらフラッシュメモリ１０３に格納されたデータとは異なるものとなっている。従ってステップ３０５で論理アドレス格納部１３１の論理アドレスを無効化する。論理アドレスの無効化とは、バッファとフラッシュメモリのデータの不一致状態を表現するものである。具体的には現実にあり得ない論理アドレスに設定するか、無効状態を示すフラグを立てるようにすることが考えられる。
【００３８】
次にステップ３０６でバッファの切り替えを行う。フラッシュメモリ１０３側に接続された、有効なデータの入っていないバッファＢ１１０はホストインターフェース１０５側へ、ホストインターフェース１０５側に接続されてホスト１０１からの書込みデータの入っているバッファＡ１０９はフラッシュメモリ１０３側に接続する。
【００３９】
次にステップ３０７でＭＰＵ１２２はバッファＡ１０９のデータをフラッシュインターフェース１０６を制御してフラッシュメモリ１０３へと書込む。ここでステップ３０３を介してバッファの設定が行われた場合には、バッファＡ１０９の全てがホスト１０１からデータで埋められていなくても、即ちホスト１０１の送ってきた書込みデータの容量がバッファＡ１０９の容量よりも少ない場合であっても、フラッシュメモリ１０３から送られてきていない部分のデータは、フラッシュメモリ１０３にあるデータと同じはずであるので、フラッシュメモリ１０３からデータを読み出した後、改めて書込む必要がない。ステップ３０３を通過せずにデータが処理された場合には、従来と同様の処理が必要となる、即ちホスト側から転送してデータがバッファＡ１０９の容量より少ない場合には、書き替え前の領域のデータをフラッシュメモリ１０３より読出してバッファＡ１０９の残りの部分に転送すると共に、こうして得られた２ｋＢのデータをバッファＡ１０９よりフラッシュメモリ１０３の新たな領域に書込む。
【００４０】
次にステップ３０８において、ＭＰＵ１２２はステップ３０７で書込みを行ったバッファに対応するアドレスを論理アドレス格納部に登録する。ここではステップ３０７でバッファＡ１０９からデータを書込んでいるので、論理アドレス格納部１３１にバッファＡ１０９に格納されたデータに対応する論理アドレスを登録する。これはステップ３０７の書込みによってバッファＡ１０９のデータとそれに対応するフラッシュメモリ１０３のデータが同じになったことを受けて行っている。
【００４１】
次にステップ３０９でＭＰＵ１２２は処理を行う論理アドレスのインクリメントを行う。そしてステップ３１０でＭＰＵ１２２はホスト１０１からの書込みを終えてよいかどうかを判定し、終了してよい場合には書込み終了する。継続して書込む場合にはステップ３０４へ遷移して同様の処理を行う。
【００４２】
以上のようにしてＭＰＵ１２２は、ホスト１０１のメモリカード１０３への書込みコマンドに対応することでデータの書込みを実現する。ホスト１０１の書込むデータがバッファの容量即ちフラッシュメモリ１０３の書込み単位よりも小さくても、対応する論理アドレスのデータがバッファに格納されている場合には、フラッシュメモリ１０３からバッファメモリにデータを読み出すことなく、フラッシュメモリ１０３にホスト１０１からのデータを書込みが実行できる。これは特に小さいデータを頻繁に書込む必要がある場合に、書込み処理時間を大幅に短縮することができるという優れた効果が得られる。
【００４３】
なお、本発明においては、ホストからの書込み・読出しのあったアドレスに対応するデータをバッファメモリに保存する構成をとっているが、ホストからの書込み・読出しの有無に係わらず、ホストからの書込み・読出しが多く発生することが想定されるアドレス、例えばファイルシステムにおけるＦＡＴ領域を優先的にバッファメモリに保存するようにしてもよい。こうすることで、ホストからのＦＡＴへ高速にアクセスすることができる。
【００４４】
又本実施の形態においては、バッファメモリ内に２つのバッファとこれに対応する２つの論理アドレス格納部を設けているが、１つのバッファとそれに対応する論理アドレス格納部のみの構成であってもよい。更に２以上のバッファとそれに対応する論理アドレス格納部を持つものであってもよい。更に本実施の形態ではバッファのデータを用いて読出しと書込みの両方の処理を効率化しているが、いずれか一方のみの処理を効率化するようにした不揮発性記憶装置として実現してもよい。
【産業上の利用可能性】
【００４５】
本発明にかかる不揮発性記憶装置およびその読出し方法、書込み方法は、不揮発性記憶装置にデータを読出したり、データを書込んだりホストに対して読出しや書込きの性能を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態による不揮発性記憶装置とホスト機器との構成を示すブロック図
【図２】本発明の実施の形態による不揮発性記憶装置と読出し方法を示したフローチャート
【図３】本発明の実施の形態による不揮発性記憶装置と書込み方法を示したフローチャート
【図４】従来の不揮発性記憶装置とホスト機器との構成を示すブロック図
【図５】従来の不揮発性記憶装置と読出し方法を示したフローチャート
【図６】従来の不揮発性記憶装置と書込み方法を示したフローチャート
【符号の説明】
【００４７】
１０１  ホスト
１０２，１２０  メモリカード
１０３  フラッシュメモリ
１０４，１２１  コントローラ
１０５  ホストインターフェース
１０６  フラッシュインターフェース
１０７，１２２  ＭＰＵ
１０８，１２３  バッファメモリ
１０９  バッファＡ
１１０  バッファＢ
１３１  論理アドレス格納部
１３２  論理アドレス格納部
【図１】
2007164355.tif 000003
【図２】
2007164355.tif 000004
【図３】
2007164355.tif 000005
【図４】
2007164355.tif 000006
【図５】
2007164355.tif 000007
【図６】
2007164355.tif 000008