説明

記憶装置および記憶システム

【課題】既にデータを保持している記憶領域に対して新たなデータの追加書込みが可能な記憶装置において、追加書込みによる書き込み済データの消失を防ぐ。
【解決手段】記憶装置1は、既にデータを保持する記憶領域に対して新たなデータを追加書込みすることにより当該記憶領域においてこれらのデータを保持可能なメモリ15と、書込みアクセスにおいて書込みデータが入力される入出力部11と、書込みアクセスに基づいてメモリ15に書込みデータを書込む制御部28とを有する。制御部28は、書込みアクセスに基づく内部処理において、当該処理において書込みデータを書込んだ記憶領域についての追加書込み処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、既にデータを保持している記憶領域に対して新たなデータの追加書込みが可能な記憶装置および記憶システムに関する。
【背景技術】
【0002】
フラッシュメモリは、ページ単位でデータを書込むことができる記憶装置である。
このフラッシュメモリには、1個のページに、複数ページのデータを多値化して記憶することができるものがある(特許文献1、2を参照)。
このデータを多値化して記憶するフラッシュメモリでは、たとえば1回目の書込みアクセスにおいてホスト機器から書込まれた1ページ分のデータを空き状態のページに書込む。
また、このフラッシュメモリでは、2回目の書込みアクセスにおいて、既にデータを保持している当該ページに次のページのデータを追加書込みできる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−003684号公報
【特許文献2】国際公開2007/000862号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、このフラッシュメモリなどの記憶装置では、既にデータを保持するページに対して新たなデータを追加書込する場合にその書込みに失敗すると、当該ページに既に保持されていたデータが記憶装置から消失する可能性がある。
そして、記憶装置が既に書込まれた1回目のデータ書込みについてホスト機器へ書込み完了を応答していた場合、当該消失が発生した2回目の書込み時点では、1回目の書込みデータがホスト機器から消失している可能性がある。
1回目の書込みデータがホスト機器においても消失している場合、記憶装置は、2回目の書込みアクセス時に消失した1回目の書込みデータを、ホスト機器などから再取得することができない。
よって、記憶装置は、2回目の書込みアクセス時に消失した1回目の書込みデータを復旧することが難しくなる。
【0005】
このように既にデータを保持している記憶領域に対して新たなデータの追加書込みが可能な記憶装置では、追加書込みによる書き込み済データの消失を防ぐことが求められている。
【課題を解決するための手段】
【0006】
本発明の第1の観点の記憶装置は、既にデータを保持する記憶領域に対して新たなデータを追加書込みすることにより当該記憶領域においてこれらのデータを保持可能なメモリと、書込みアクセスにおいて書込みデータが入力される入出力部と、書込みアクセスに基づいてメモリに書込みデータを書込む制御部とを有する。そして、制御部は、書込みアクセスに基づく内部処理において、当該処理において書込みデータを書込んだ記憶領域についての追加書込み処理を実行する。
【0007】
第1の態様では、記憶装置の制御部は、書込みアクセスに基づいて、メモリの記憶領域に書込みデータを書込み、さらにその書込みアクセスの書込みデータを書込んだ記憶領域について追加書込み処理を行う。
このため、メモリの記憶領域には、書込みアクセスにおいて、書込みアクセスに係る書込みデータと追加書込みデータとが書込まれる。
よって、第1の態様では、その後の書込みアクセスにおいて、既に書込みアクセスに係る書込みデータを保持する記憶領域に対して、新たな書込みデータの追加書込みをしなくなる。
したがって、第1の態様では、書込みアクセスに係る書込みデータを保持する記憶領域のデータは、その後の書込みアクセスにおいて書込みに失敗することがあっても、消失しなくなる。
【0008】
本発明の第2の観点の記憶システムは、書込まれたデータを記憶する記憶装置と、記憶装置にデータを書込むホスト機器とを有する。記憶装置は、既にデータを保持する記憶領域に対して新たなデータを追加書込みすることにより当該記憶領域においてこれらのデータを保持可能なメモリと、ホスト機器の書込みアクセスにおいて当該ホスト機器から書込みデータが入力される入出力部と、ホスト機器の書込みアクセスに基づいてメモリに書込みデータを書込む制御部とを有する。そして、制御部は、ホスト機器の書込みアクセスに基づく内部処理において、当該処理においてホスト機器の書込みデータを書込んだ記憶領域についての追加書込み処理を実行する。
【発明の効果】
【0009】
本発明では、既にデータを保持している記憶領域に対して新たなデータの追加書込みが可能な記憶装置において、追加書込みによる書き込み済データの消失を防ぐことができる。
【図面の簡単な説明】
【0010】
【図1】図1は、本発明の実施形態に係るメモリカードの物理ブロック図である。
【図2】図2は、図1のメモリカードを用いたカメラシステムの概略構成図である。
【図3】図3は、図1の不揮発性メモリの内部構造を示すブロック図である。
【図4】図4は、図3のメモリアレイの各セルに書き込まれる4種類の閾値電圧の一例の説明図である。
【図5】図5は、1個の物理ブロックの複数の物理ページと記憶領域との対応関係の説明図である。
【図6】図6は、2ページ目の書込み処理において、1ページ目のデータが消失する状況の説明図である。
【図7】図7は、図2のホスト機器の書込む書込みアクセス期間中のシーケンスチャートである。
【図8】図8は、本実施形態での、ホスト機器の書込みアクセス中のガベージコレクション処理によるデータ変化の説明図である。
【図9】図9は、第1比較例でのガベージコレクション処理によるデータ変化の説明図である。
【図10】図10は、第2比較例での書込みアクセス期間中のシーケンスチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を図面に関連付けて説明する。
説明は以下の順に行う。
1.本実施形態のメモリカード1およびホスト機器(2)の構成。
2.多値のメモリカード1の構造。
3.本実施形態での書込みアクセス中の追加書込み処理(ガベージコレクション処理)。
4.第1比較例(書込みアクセス中の追加書込み処理が不足する例)。
5.第2比較例(ホスト機器(2)への書込み完了の応答がタイムアウトする例)。
【0012】
[メモリカード1およびホスト機器(2)の構成]
図1は、本発明の実施形態に係るメモリカード1の物理ブロック図である。
図1のメモリカード1は、デバイス入出力部(D_I/O)11、プロセッサ(Processor)12、内部RAM(Internal RAM)13、バッファRAM(Buffer RAM)14、および不揮発性メモリ25(Non-Volatile Memory)15を有する。
図1のメモリカード1は、ホスト機器(2)に接続して使用するカード型のメモリカード1である。
メモリカード1には、たとえばホスト機器(2)に対して着脱可能に装着されるPCカード、メモリースティック(登録商標)カード、SDカードなどがある。
【0013】
図2は、図1のメモリカード1を用いたカメラシステム3の概略構成図である。
図2のカメラシステム3は、図1のメモリカード1と、ホスト機器としてのカメラ装置2とを有する。
図2のカメラ装置2は、撮像部(CAM)21、操作部(KEY)22、表示部(DISP)23、CPU24、メモリ(MEM)25、ホスト入出力部(H_I/O)26、およびこれらを接続するシステムバス27を有する。
【0014】
撮像部21は、たとえばCMOSセンサ、CCDなどを有する。
そして、撮像部21は、画像および音声を含む動画データなどを生成し、動画データを含む信号をCPU24へ出力する。
【0015】
操作部22は、たとえば撮像ボタン、十字キーなどを有する。
そして、操作部22は、操作されたキーに応じた信号をCPU24へ出力する。
【0016】
表示部23は、たとえばTFTディスプレイ、有機ELディスプレイなどを有する。
そして、表示部23は、CPU24から映像信号が入力され、映像信号の画像を表示する。
【0017】
メモリ25は、CPU24が実行するプログラムやデータ記憶する。
CPU24は、メモリ25に記憶されているプログラムを読み込んで実行する。
これにより、CPU24には、カメラ装置2の制御部28が実現される。
制御部28は、撮像部21、表示部23、ホスト入出力部26などを管理して制御する。
【0018】
ホスト入出力部26は、コネクタを有し、ホスト機器(2)のホスト入出力部26に着脱可能に接続される。
ホスト入出力部26は、たとえばPCI Express、USBなどの規格に準拠した通信方式により、デバイス入出力部11とデータ通信する。
ホスト機器(2)は、メモリカード1にアクセスし、メモリカード1にデータを書き込み、メモリカード1からデータを読み出す。
【0019】
図1のメモリカード1は、ホスト入出力部26のスロットまたはポートに脱着可能に装着される。
カメラ装置2のCPU24は、たとえば動画を撮像し、撮像した動画データをメモリカード1に書込む。このとき、カメラ装置2のCPU24は、メモリカード1に書込みアクセスする。
また、カメラ装置2は、たとえばメモリカード1から画像データを読み込み、表示部23に表示する。このとき、カメラ装置2のCPU24は、メモリカード1に読出しアクセスする。
【0020】
[多値メモリカード1の構造]
図1のメモリカード1の不揮発性メモリ15は、たとえばNAND型のフラッシュメモリなどの不揮発性の半導体メモリ25である。
【0021】
図3は、不揮発性メモリ15の内部構造を示すブロック図である。
不揮発性メモリ15は、メモリアレイ31、ロー回路32(Row Circuit)、カラム回路33(Column Circuit)、ウェル電圧制御回路34を有する。
これらの回路31〜34は、たとえば図3のレイアウトにより、図示しない半導体基板に形成される。
【0022】
メモリアレイ31は、複数の物理ブロックを有する。
図3のメモリアレイ31は、m個の物理ブロックBLK(1)〜BLK(m)を有する。
複数の物理ブロックは、複数のページP(0)〜P(n)を有する。
本実施形態では、複数のページP(0)〜P(n)が複数の記憶領域に対応する。
【0023】
各ページP(0)〜P(n)は、図示しない複数のセルを有する。
そして、セルは、このフローティングゲートにより、たとえば2ビットのデータが多値化された4種類の閾値電圧を保持する。
このため、物理ブロックは、図3において一列に配列されたページ数の整数倍の物理ページを有する。
たとえば2つのデータを多値化する場合、物理ブロックは、図3において一列に配列されたページ数(n)の2倍の個数(2×n)の物理ページを有することになる。
【0024】
複数のセルは、半導体基板のメモリアレイ31の形成領域において、二次元マトリクスに配列される。
複数のセルには、その配列にしたがって複数のワード線WLが接続される。複数のワード線WLは、ロー回路32に接続される。
複数のセルには、その配列にしたがって複数のビット線BLが接続される。複数のビット線BLは、カラム回路33に接続される。
ロー回路32およびカラム回路33は、複数のメモリ25セルを、ページ単位または物理ブロック単位で選択する。
そして、カラム回路33は、たとえば選択したページの各セルの閾値電圧を読み込み、各セルの閾値電圧に対応するビットのデータを生成し、読出しデータとして出力する。
ウェル電圧制御回路34は、複数のセルが形成される、たとえばN型の半導体基板のPウェルの電圧を制御する。
Pウェルの電圧を制御することにより、各セルには、ビットに対応する種類の閾値電圧のいずれかの電圧が書き込まれる。
【0025】
図4は、図3のメモリアレイ31の各セルに書き込まれる4種類の閾値電圧の一例の説明図である。
図4の縦軸は閾値電圧であり、横軸は複数のセルでの閾値電圧の分布割合である。
図4には、各セルに書き込む種類の閾値電圧として、第1閾値電圧TH1、第2閾値電圧TH2、第3閾値電圧TH3、第4閾値電圧TH4が記載されている。
【0026】
第1閾値電圧TH1は、0Vより低い閾値電圧であり、2ビットの値、たとえば「11」に対応する。
第1閾値電圧TH1は、物理ブロック単位での消去処理によりセルに書き込まれる。
第2閾値電圧TH2は、0Vより高い閾値電圧であり、ビットの値、たとえば「10」に対応する。
第2閾値電圧TH2は、ページ単位でのデータ書込み処理によりセルに書き込まれる。
第3閾値電圧TH3は、第2閾値電圧TH2より高い閾値電圧であり、ビットの値、たとえば「01」に対応する。
第3閾値電圧TH3は、ページ単位でのデータ書込み処理によりセルに書き込まれる。
第4閾値電圧TH4は、第3閾値電圧TH3より高い閾値電圧であり、ビットの値、たとえば「00」に対応する。
第4閾値電圧TH4は、ページ単位でのデータ書込み処理によりセルに書き込まれる。
【0027】
そして、たとえばホスト機器(2)の書込みアクセスに基づく書込み処理では、書き込み先のページの記憶されていたデータと、当該アクセスに係る新たな書込みデータとを多値化し、その多値化データに対応する閾値電圧をセルに保持させる必要がある。
そのため、データの書き込み処理では、初期化処理により第1閾値電圧TH1が書き込まれたセルに対して、第2閾値電圧TH2を書込む第1サイクルと、第3閾値電圧TH3を書き込む第2サイクルと、第4閾値電圧TH4を書き込む第3サイクルとを実行する必要がある。
【0028】
また、不揮発性メモリ15は、物理ページの単位で、データの書込みおよび読出しが可能である。
また、不揮発性メモリ15は、物理ブロック単位で、データの消去(初期化)が可能である。
不揮発性メモリ15は、電源供給が遮断された後にも、書き込まれたデータを保持記憶する。
【0029】
また、メモリカード1のプロセッサ12(制御部28)は、不揮発性メモリ15の記憶領域を、論理ブロック毎に管理する。
論理ブロックは、1つ以上の整数個の物理ブロックにより構成される。
ホスト機器(2)が利用する論理アドレスの任意の一定範囲のデータは、同じ論理ブロックに書き込まれる。
この論理アドレスに対応付けられた論理ブロックにデータを書込むことができない場合、メモリカード1は、一時書き込み用の論理ブロック(キャッシュブロック)を取得し、キャッシュブロックにデータを書き込む。
【0030】
なお、不揮発性メモリ15の記憶領域は有限である。
このため、不揮発性メモリ15の記憶領域の一部を用いるキャッシュブロックの個数も有限である。
よって、たとえばメモリカード1が保持できる有限個のキャッシュブロックが全て使用済みである場合、メモリカード1は、ガベージコレクション処理を実行する。
このガベージコレクション処理により、使用済みのキャッシュブロックが初期化されて解放される。
また、キャッシュブロックおよび論理ブロックに保持されていた同一アドレス範囲内の有効なデータは、単一の論理ブロックにまとめて記憶される。
【0031】
図5は、1個の物理ブロックの複数の物理ページと記憶領域との対応関係の説明図である。
図5には、1個の物理ブロックの複数の物理ページとして、記憶領域に先に書き込まれるA0(図ではA−0と表記。以下同様。)からAnまでのn+1個の第1ページと、第1ページの後に記憶領域に書き込まれるB0からBnまでのn+1個の第2ページとが図示されている。
そして、たとえば図5の第1ページA0のデータと、第2ページB0のデータとは、多値化されて、図3に配列された1個のページP(0)に記憶される。
また、図5の第1ページA1のデータと、第2ページB1のデータとは、多値化されて、図3に配列された1個のページP(1)に記憶される。
【0032】
図6は、2ページ目の書込み処理において、1ページ目のデータが消失する状況の説明図である。
図6には、A0、A1、A2の3個の第1ページと、B0、B1、B2の3個の第2ページとが図示されている。図6は、A0、B0、A1、B1、A2、B2の順番でデータが書込まれる場合の説明図である。
【0033】
そして、図6の上から順番に第1ページA1までに正常に書込みが完了した後、第2ページB1にデータを書込む場合に、その書込みに失敗したとする。
この場合、書き込みに失敗した第2ページB1のデータにエラーが発生するとともに、既に書込まれていた第1ページA1のデータにもエラーが発生する可能性がある。
つまり、複数の物理ページのデータを多値化して1つのページ(記憶領域)に記憶させる不揮発性メモリ15では、既にデータを保持しているページに対する新たなデータの追加書込みに失敗すると、組となる他のページのデータが消失してしまう可能性がある。
【0034】
図1のメモリカード1の他の構成の説明に戻る。
デバイス入出力部11は、ホスト入出力部26に接続される。
デバイス入出力部11は、たとえばPCI Express、USB3.0などの高速シリアルデータ通信により、ホスト入出力部26とデータ通信する。
たとえばホスト機器(2)により書込みアクセスされる場合、デバイス入出力部11には、ホスト入出力部26から、書込みコマンド、書込みデータなどが入力される。デバイス入出力部11は、ホスト入出力部26へ、書込み完了を応答する。
ホスト機器(2)により読出しアクセスされる場合、デバイス入出力部11には、ホスト入出力部26から、読出しコマンドなどが入力される。デバイス入出力部11は、ホスト入出力部26へ、読出しデータを出力し、読出し完了を応答する。
【0035】
バッファRAM14は、たとえばSRAM、DRAMなどである。
バッファRAM14は、デバイス入出力部11、不揮発性メモリ15、プロセッサ12に接続される。
そして、バッファRAM14には、ホスト機器(2)が不揮発性メモリ15に書込んだ書込みデータが、デバイス入出力部11により書き込まれる。
バッファRAM14に書込まれた書込みデータは、プロセッサ12の制御の下、不揮発性メモリ15に読み込まれる。
また、バッファRAM14は、ホスト機器(2)が不揮発性メモリ15から読み出す読出しデータが、プロセッサ12の制御の下、不揮発性メモリ15から書き込まれる。
バッファRAM14に書込まれた読出しデータは、デバイス入出力部11により読み出される。
【0036】
内部RAM13は、たとえばSRAM、DRAMなどである。
内部RAM13は、プロセッサ12、不揮発性メモリ15に接続される。
そして、内部RAM13は、たとえば不揮発性メモリ15の物理アドレスと、ホスト機器(2)がメモリカード1にアクセスする場合に使用する論理アドレスとの変換テーブル(論物変換テーブル)を記憶する。
【0037】
プロセッサ12は、デバイス入出力部11、内部RAM13、バッファRAM14、不揮発性メモリ15に接続される。
プロセッサ12は、CPUと、メモリとを有する。
プロセッサ12のCPUは、メモリに記憶されているファームウェアプログラムを読み込んで実行する。
これにより、プロセッサ12は、メモリカード1の制御部28として機能する。
【0038】
制御部28は、デバイス入出力部11を通じてホスト機器(2)と通信し、ホスト機器(2)から受信したアクセスコマンドを解釈し、コマンドに対応する処理を実行する。
【0039】
たとえばホスト機器(2)は、書込みアクセスにおいて、書込みコマンドを出力する。
制御部28は、書込みコマンドを解釈し、ホスト機器(2)から入力される書込みデータを不揮発性メモリ15に書込む書込み処理を実行する。
書込み処理において、通常、制御部28は、論物変換テーブルを用いて当該書込みアドレス(論理アドレス)に対応する物理ページのアドレスを特定する。
制御部28は、当該物理ページのアドレスを指定し、不揮発性メモリ15にバッファRAM14の書込みデータを読み込ませる。
これにより、不揮発性メモリ15は、書込みデータを、所定の物理ページのデータとして記憶する。
また、制御部28は、論物変換テーブルを更新する。
【0040】
また、新たなデータの書込みにより空き状態のキャッシュブロックが無くなった場合、制御部28は、書込み処理中にキャッシュブロックについてのガベージコレクション処理を実行する。
キャッシュブロックのガベージコレクション処理では、制御部28は、たとえばキャッシュブロックの有効な物理ページのデータを、当該キャッシュブロックに対応する論理ブロックにコピーする。
また、制御部28は、論物変換テーブルを更新する。
また、制御部28は、処理を終えたキャッシュブロックを初期化する。
これにより、新たに取得可能なキャッシュブロックが生成される。
制御部28は、たとえば次の書込みアクセス時に、空き状態のキャッシュブロックを取得し、利用することができる。
【0041】
この他にも例えば、ホスト機器(2)は、読出しアクセスにおいて、読出しコマンドを出力する。
制御部28は、読出しコマンドを解釈し、不揮発性メモリ15から読出しデータを読出し、ホスト機器(2)へ出力する。
読出し処理において、制御部28は、論物変換テーブルを用いて、読出しコマンドに指定された論理アドレスに対応する最新の物理ページのアドレスを特定する。
制御部28は、不揮発性メモリ15に当該物理ページのアドレスを指定する。
不揮発性メモリ15は、当該アドレスの物理ページからデータを読み込み、バッファRAM14に書込む。
デバイス入出力部11は、バッファRAM14から当該読出しデータを読み込み、ホスト機器(2)へ出力する。
【0042】
[書込みアクセス中にガベージコレクション処理(内部処理)を実行する動作の例]
次に、本実施形態のメモリカード1の動作を説明する。
ここでは、ホスト機器(2)がメモリカード1に書込みアクセスする場合を例に説明する。
また、このホスト機器(2)の書込みアクセス中に、キャッシュブロックについてのガベージコレクション処理を実行する場合について説明する。
【0043】
図7は、図2のホスト機器(2)がメモリカード1にデータを書込む書込みアクセス期間中の処理の流れを示すシーケンスチャートである。
図7には、ホスト機器(2)、メモリカード1の制御部28、不揮発性メモリ15が図示されている。また、図7において、時間は上から下に流れている。
なお、図7において、メモリカード1は、ホスト機器(2)の4ページ分の書込みデータを別々の第1ページに書込む。
また、メモリカード1は、さらに、ガベージコレクション処理により、この4個の第1ページに対応する4個の第2ページにキャッシュブロックの有効なページのデータを書込む。
【0044】
メモリカード1に書込みアクセスする場合、ホスト機器(2)のCPU24は、書込みコマンドをメモリカード1へ出力する(ステップST1)。
書込みコマンドは、ホスト入出力部26からデバイス入出力部11へ送信され、プロセッサ12に実現された制御部28に受信される。
【0045】
書込みコマンドを受信すると、制御部28は、ホスト機器(2)へデータリクエストを送信する(ステップST2)。
データリクエストは、デバイス入出力部11からホスト入出力部26へ送信され、ホスト機器(2)のCPU24に受信される。
ホスト機器(2)は、書込みデータをメモリカード1へ送信する(ステップST3)。
書込みデータは、ホスト入出力部26からデバイス入出力部11へ送信され、バッファRAM14に書込まれる。
【0046】
バッファRAM14に書込みデータが書込まれると、制御部28は、不揮発性メモリ15への書込み処理を開始する。
制御部28は、論物変換テーブルを参照し、不揮発性メモリ15に書き込み先の物理ブロックの物理アドレスを指定する(ステップST4)。
このとき、制御部28は、書き込み先の物理ブロックの未使用の第1ページに対応する物理アドレスを指定する。
また、不揮発性メモリ15の書き込み先の物理ブロックに未使用の初期化されたままの物理ページが存在しない場合、制御部28は、当該論理アドレスに対応するキャッシュブロックを取得し、キャッシュブロックの第1ページの物理アドレスを指定する。
不揮発性メモリ15は、バッファRAM14から書込みデータを読み込み、指定された物理アドレスに書込みデータを記憶する(ステップST5)。
これにより、第1ページに、ホスト機器(2)の書込みデータが記憶される。
不揮発性メモリ15は、書込みデータの保存処理が完了すると、制御部28に書込み完了信号を出力する(ステップST6)。
【0047】
最初に取得した書込みデータについての不揮発性メモリ15への書込みが完了すると、制御部28は、次の書込みデータのリクエストをホスト機器(2)へ送信する(ステップST7)。
ホスト機器(2)は、次の書込みデータをメモリカード1へ送信する(ステップST8)。
書込みデータは、バッファRAM14に書込まれる。
制御部28は、次の書込みデータの書き込み先として、たとえば書き込み先の物理ブロックの未使用の第1ページを物理アドレスを指定する(ステップST9)。
不揮発性メモリ15は、バッファRAM14から書込みデータを読み込んで、指定された第1ページに書込みデータを記憶する(ステップST10)。
また、不揮発性メモリ15は、制御部28に書込み完了信号を出力する(ステップST11)。
【0048】
そして、図7の例では、制御部28は、ホスト機器(2)の4ページ分の書込みデータを実行する。
また、制御部28は、未使用のキャッシュブロックが残っているか否かを判断する。
未使用のキャッシュブロックが残っていない場合、制御部28は、キャッシュブロックについてのガベージコレクション処理を実行する。
なお、ガベージコレクション処理では、制御部28は、ホスト機器(2)と通信しない。
よって、ガベージコレクション処理は、メモリカード1内の内部タスクによる処理である。
【0049】
ホスト機器(2)の書込みアクセス期間中のガベージコレクション処理において、制御部28は、使用中の複数のキャッシュブロックのうちの1個についてガベージコレクション処理を実行する。
制御部28は、1個のキャッシュブロックについてのガベージコレクション処理を開始する。
具体的には、制御部28は、不揮発性メモリ15に、ホスト機器(2)の書込みデータを書込んだ物理ブロックの第2ページを指定して、処理対象のキャッシュブロックの有効な1ページ目のガベージコレクション処理を指示する(ステップST12)。
不揮発性メモリ15は、処理対象のキャッシュブロックの有効な1ページ目のデータを、指定された物理ブロックの第2ページにコピーする(ステップST13)。
不揮発性メモリ15は、以上の処理を終えると、制御部28に完了信号を出力する(ステップST14)。
制御部28は、論物変換テーブルを更新する。
【0050】
処理対象のキャッシュブロックの有効な1ページ目のガベージコレクション処理を終えると、制御部28は、次に有効なページのガベージコレクション処理を実行する。
制御部28は、不揮発性メモリ15に、ホスト機器(2)の書込みデータを書込んだ物理ブロックの別の第2ページを指定して、処理対象のキャッシュブロックについての次に有効なページのガベージコレクション処理を指示する(ステップST15)。
不揮発性メモリ15は、処理対象のキャッシュブロックについて指定された有効なページのデータを、指定された物理ブロックの第2ページにコピーする(ステップST16)。
不揮発性メモリ15は、以上の処理を終えると、制御部28に完了信号を出力する(ステップST17)。
制御部28は、論物変換テーブルを更新する。
このように制御部28は、処理対象のキャッシュブロックのすべての有効なページについて順番に、ガベージコレクション処理を繰り返し実行する。
【0051】
そして、当該書込みアクセスにおいてホスト機器(2)の書込みデータを書込んだ複数の第1ページに対応するすべての第2ページに対して、ガベージコレクション処理を実行したと判断すると、制御部28は、ガベージコレクション処理を中断する。
【0052】
ガベージコレクション処理を中断した制御部28は、ホスト機器(2)へ書込み完了を送信する(ステップST18)。
この書込み完了の通知は、たとえばホスト機器(2)のすべての書込みデータを複数の第1ページに対して正常に書込むことができ、かつ、ガベージコレクション処理による複数の第2ページへの書込みも正常に終了した場合、正常終了の通知となる。
正常終了の通知を受信すると、ホスト機器(2)は、メモリカード1に書込んだデータを破棄し、次の書込みデータの準備に入る。
【0053】
これに対して、ホスト機器(2)の書込みデータ、およびガベージコレクション処理の書込みデータの少なくとも1つのページのデータにおいて書込みに失敗した場合、書込み完了の通知は、書込み失敗の通知となる。
書込み失敗の通知を受信すると、ホスト機器(2)は、メモリカード1に対して、再度書込み処理を実行する。
このようにホスト機器(2)は、メモリカード1から書込みデータの正常終了が通知されるまで、書込みエラーとなった書込みデータの再書込み処理を繰り返す。
これにより、メモリカード1は、書込みが正常に完了するまで、ホスト機器(2)から書込みデータを取得し、不揮発性メモリ15に書込み処理を繰り返すことができる。
【0054】
ホスト機器(2)へ書込み完了を通知した後、制御部28は、ガベージコレクション処理を再開する。
制御部28は、処理対象のキャッシュブロックについての残りの有効なページのガベージコレクション処理を実行する(ステップST19〜ST21)。
不揮発性メモリ15は、処理対象のキャッシュブロックの有効なページのデータを、指定された物理ブロックにコピーする。
この再開後のガベージコレクション処理では、制御部28は、書込み先のページとして第1ページも指定する。
制御部28は、たとえば第1ページと第2ページとを交互に指定する。
そして、処理対象のキャッシュブロックのすべての有効なページのコピーを終えると、不揮発性メモリ15は、有効なページのガベージコレクション処理を実行したキャッシュブロックを初期化する(ステップST22〜ST24)。
これにより、ガベージコレクション処理を実行したキャッシュブロックは、新たに取得可能なキャッシュブロックになる。
【0055】
図8は、本実施形態での、ホスト機器(2)の書込みアクセス中にガベージコレクション処理を実行する場合のデータ変化の説明図である。
図8(A)は、ホスト機器(2)の書込みデータが完了した時点でのデータ状態図である。
図8(B)は、ホスト機器(2)へ書込み完了通知をするためにガベージコレクション処理を中断する時点でのデータ状態図である。
図8(C)は、ガベージコレクション処理を再開した時点でのデータ状態図である。
図8(A)から(C)において、右側の指定ブロックは、ホスト機器(2)の書込みデータが書込まれる通常の論理ブロックに対応する。
左側のソースブロックは、ガベージコレクション処理の対象であるキャッシュブロックに対応する。
【0056】
そして、図8(A)では、指定ブロックのA0からA3の4個の第1ページには、ホスト機器(2)の書込みデータが書込まれる。
この場合、制御部28は、ガベージコレクション処理を中断する前に、ソースブロックの4ページ分のデータを、指定ブロックのB0からB3の4個の第2ページにコピーする(図8(B)を参照)。
図8(B)の内部処理を終えた時点で、制御部28は、ガベージコレクション処理を中断し、ホスト機器(2)へ書込み完了を送信する。
その後、制御部28は、ガベージコレクション処理を再開し、残りのソースブロックのデータを指定ブロックにコピーする。
【0057】
図8(C)では、指定ブロックのA4の第1ページに、ソースブロックのデータがコピーされている。
図8(C)の場合、指定ブロックのA4以降のページには、ホスト機器(2)のデータが書き込まれているA0〜A3と組となるページが存在しない。
よって、本実施形態では、図8(C)のコピー処理においてデータ書込みに失敗したとしても、指定ブロックのA0からA3の4個の第1ページに書込まれたホスト機器(2)の書込みデータにはエラーが発生しない。
【0058】
次に、本実施形態と対比される各種の比較例について説明する。
以下の比較例の説明では、上述した実施形態と同じ名称および符号を使用し、比較例のメモリカードおよびホスト機器の構成の説明は省略する。
【0059】
[第1比較例(固定ページ数のガベージコレクション処理の後に書込み完了を通知する例)]
第1比較例では、制御部28は、ホスト機器(2)の書込みアクセス期間中に、キャッシュブロックについてのガベージコレクション処理を実行する。
また、制御部28は、一定のページ数(たとえば3ページ)のガベージコレクション処理の後に、ホスト機器(2)へ書込み完了を通知する。
【0060】
図9は、第1比較例での、ホスト機器(2)の書込みアクセス中にガベージコレクション処理を実行する場合のデータ変化の説明図である。
図9(A)は、ホスト機器(2)の書込みデータが完了した時点でのデータ状態図である。
図9(B)は、ホスト機器(2)へ書込み完了通知をするためにガベージコレクション処理を中断する時点でのデータ状態図である。
図9(C)は、ガベージコレクション処理を再開した時点でのデータ状態図である。
図9(A)から(C)において、右側の指定ブロックは、ホスト機器(2)の書込みデータが書込まれる通常の論理ブロックに対応する。
左側のソースブロックは、ガベージコレクション処理の対象であるキャッシュブロックに対応する。
【0061】
そして、図9(A)に示すように、指定ブロックのA0からA3の4個の第1ページには、ホスト機器(2)の書込みデータが書込まれる。
第1比較例の場合、制御部28は、ガベージコレクション処理を中断する前に、ソースブロックの3ページ分のデータを、指定ブロックのB0からB2の3個の第2ページにコピーする(図8(B)を参照)。
図9(B)の時点で、制御部28は、所定ページ数のガベージコレクション処理を終える。
制御部28は、ガベージコレクション処理を中断し、ホスト機器(2)へ書込み完了を送信する。
【0062】
その後、制御部28は、ガベージコレクション処理を再開する。
制御部28は、指定ブロックにソースブロックのデータをコピーする。
図9(C)では、指定ブロックのB3の第2ページに、ソースブロックのデータがコピーされている。
この場合、たとえば図9(C)のコピー処理においてデータ書込みに失敗すると、指定ブロックのB3に対応するA3の第1ページには、ホスト機器(2)のデータが書込まれている。
よって、第1比較例では、指定ブロックのA3の第1ページに書込まれたホスト機器(2)の書込みデータには、エラーが発生する可能性がある。
【0063】
[第2比較例(書込みアクセス中にすべてのガベージコレクション処理を実行して応答する例)]
第2比較例では、制御部28は、ホスト機器(2)の書込みアクセス期間中に、キャッシュブロックについてのガベージコレクション処理を実行する。
また、制御部28は、ガベージコレクション処理が完了してから、ホスト機器(2)に書込み完了を通知する。
【0064】
図10は、第2比較例での、書込みアクセス期間中の処理の流れを示すシーケンスチャートである。
第2比較例では、制御部28は、ホスト機器(2)から書込みコマンドを受信すると、データをリクエストして読み込む。
また、不揮発性メモリ15は、バッファRAM14に書込まれた書込みデータを読み込んで記憶する(ステップST1〜ST11)。
また、ホスト機器(2)の書込みデータの書込み処理を終えると、制御部28は、ホスト機器(2)の書込みアクセス期間中に、キャッシュブロックについてのガベージコレクション処理を実行する。
制御部28は、使用予定のキャッシュブロックについてのガベージコレクション処理を実行する(ステップST12〜ST24)。
その後、制御部28は、ホスト機器(2)へ書込み完了を送信する(ステップST31)。
【0065】
これに対して、ホスト機器(2)では、図10のステップST32のタイミングにおいて、書込みアクセスの応答制限時間がタイムアウトしている。
よって、メモリカード1は、ホスト機器(2)がタイムアウトする前に、ホスト機器(2)へ書込み完了を送信することができない。
【0066】
以上のように、本実施形態では、メモリカード1の制御部28は、ホスト機器(2)の書込みアクセスに基づいて、不揮発性メモリ15の物理ページにホスト機器(2)の書込みデータを書込む。
さらに、本実施形態では、そのホスト機器(2)の書込みデータを書込んだ第1ページ(物理ページ)に対応する第2ページ(他の物理ページ)について、書込みアクセス中に追加書込み処理を行う。
このため、本実施形態では、ホスト機器(2)の書込みアクセス期間中に、不揮発性メモリ15の同じ記憶領域において組で格納される複数の物理ページに、ホスト機器(2)の書込みデータと、追加書込みデータとを書込む。
よって、本実施形態では、その後のホスト機器(2)の書込みアクセスにおいて、既にホスト機器(2)の書込みデータを保持した記憶領域(たとえばP(1))に対して、新たな書込みデータの追加書込みをしなくなる。
【0067】
したがって、本実施形態では、ホスト機器(2)の書込みデータを保持する記憶領域(たとえばP(1))のデータは、その後の書込みアクセスにおいて書込みに失敗することがあっても、消失しなくなる。
その結果、本実施形態では、複数のページを多値化して記憶する不揮発性メモリ15において、追加書込みによる書き込み済データの消失を防ぐことができる。
したがって、本実施形態では、たとえばホスト機器(2)への正常書込み完了の応答後の内部データ処理中に電源遮断が生じたとしても、ホスト機器(2)に対して正常書込みを通知したホスト機器(2)の書込みデータを保護することができる。
また、本実施形態では、たとえばホスト機器(2)への正常書込み完了の応答後に、追記失敗によるデータエラーが発生したとしても、ホスト機器(2)に対して正常書込みを通知したホスト機器(2)の書込みデータを保護することができる。
【0068】
また、本実施形態では、ホスト機器(2)がタイムアウトする前に、ホスト機器(2)へ書込み完了を送信できる。
よって、本実施形態では、図2に示すようにカメラ装置2において撮像する動画をリアルタイムにメモリカード1へ保存する場合などにおいて、キャッシュブロックのガベージコレクション処理によってタイムアウトが生じることはない。
すなわち、本実施形態では、NAND型のフラッシュメモリなどの不揮発性の半導体メモリを動画の記憶部などとして、リアルタイムシステムを実現できる。
【0069】
上記各実施形態は、本発明の好適な実施形態の例であるが、本発明はこれに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形または変更が可能である。
【0070】
たとえば上記実施形態では、制御部28は、ホスト機器(2)の書込みアクセス期間中に、キャッシュブロックのガベージコレクション処理を実行する。
この他にも例えば、制御部28は、ホスト機器(2)の書込みアクセス期間中の内部処理として、不揮発性メモリ15の他のブロックについてのガベージコレクション処理を実行してもよい。
また、制御部28は、ガベージコレクション処理以外の内部処理を実行してもよい。
【0071】
上記実施形態では、制御部28は、ホスト機器(2)の書込みデータを、第1ページに書込み、内部処理(ガベージコレクション処理)によるデータを、第2ページに書込んでいる。
この他にも例えば、制御部28は、ホスト機器(2)の書込みデータを、第1ページおよび第2ページに交互に書込み、内部処理(ガベージコレクション処理)によるデータを、第1ページおよび第2ページに交互に書込んでもよい。
この場合、制御部28は、たとえばホスト機器(2)の最後の書込みデータが第1ページに書込まれたときには、それと組となる第2ページに内部処理によるデータを書込んだ時点で、ホスト機器(2)へ書込み完了を通知するとよい。
また、ホスト機器(2)の最後の書込みデータが第2ページに書込まれたときには、制御部28は、その書込み完了時点で、ホスト機器(2)へ書込み完了を通知するとよい。
【0072】
上記実施形態では、制御部28は、ホスト機器(2)の書込みアクセス時に、ガベージコレクション処理を実行している。
この他にも例えば、制御部28は、ホスト機器(2)の読出しアクセス時に、ガベージコレクション処理を実行してもよい。
【0073】
上記実施形態では、1個のプロセッサ12が、ホスト機器(2)のアクセスに基づく制御処理と、ガベージコレクション処理とを実行する。
この他にも例えば、ホスト機器(2)のアクセスに基づく制御処理と、ガベージコレクション処理とを別々のプロセッサにより実行してもよい。
【0074】
上記実施形態では、メモリカード1は、ホスト機器(2)のデータを記憶するメモリ(15)として、NAND型のフラッシュメモリを使用している。
この他にも例えば、メモリカード1は、ホスト機器(2)のデータを記憶するメモリ(15)として、NOR型のフラッシュメモリなどの不揮発性メモリ、その他のメモリを使用してもよい。
【0075】
上記実施形態では、不揮発性メモリ15は、2個の物理ページのデータを多値化して共通する1個の記憶領域に記憶する。
この他にも例えば、不揮発性メモリ15は、3個以上の物理ページのデータを多値化して共通する1個の記憶領域に記憶してもよい。
【0076】
上記実施形態のメモリカード1は、カード型の記憶装置である。
この他にも例えば、記憶装置は、USBメモリ、装置内に内蔵されるSSD、eMMCなどであってもよい。
【0077】
上記実施形態のホスト機器(2)は、カメラ装置2である。
この他にも例えば、ホスト機器(2)は、コンピュータ装置、携帯電話機、電子機器、PDA、ナビゲーション装置、再生装置などであってもよい。
【0078】
上記実施形態のデバイス入出力部11は、ホスト入出力部26に接続され、PCI Express、USB3.0などの高速シリアルデータ通信によりホスト入出力部26とデータ通信する。
この他にも例えばデバイス入出力部11は、ホスト入出力部26と短距離無線通信などによりデータ通信してもよい。
【符号の説明】
【0079】
1…メモリカード(記憶装置)、2…カメラ装置(ホスト機器)、3…カメラシステム(記憶システム)、11…デバイス入出力部(入出力部)、15…不揮発性メモリ(メモリ、半導体メモリ)、28…制御部、P(1)〜P(n)…記憶領域、A0〜An…第1ページ、B0〜Bn…第2ページ

【特許請求の範囲】
【請求項1】
既にデータを保持する記憶領域に対して新たなデータを追加書込みすることにより当該記憶領域においてこれらのデータを保持可能なメモリと、
書込みアクセスにおいて書込みデータが入力される入出力部と、
前記書込みアクセスに基づいて前記メモリに前記書込みデータを書込む制御部と
を有し、
前記制御部は、
前記書込みアクセスに基づく内部処理において、当該処理において前記書込みデータを書込んだ記憶領域についての追加書込み処理を実行する
記憶装置。
【請求項2】
前記制御部は、
前記書込みデータを書込んだ記憶領域に対する追加書込み処理を完了した場合に、前記入出力部から前記書込みアクセスの書込み処理結果を応答する
請求項1記載の記憶装置。
【請求項3】
前記制御部は、
前記書込みデータを保持する記憶領域に対する追加書込みにおいて書き込みエラーが発生した場合、前記書込みアクセスに係る書込みデータの書込みエラーを応答し、前記追加書き込みによりエラーになった記憶領域に記憶されていた書込みデータを再取得し、前記メモリに書込む
請求項2記載の記憶装置。
【請求項4】
前記制御部は、
前記書込みアクセスに基づく内部処理において、利用可能な記憶領域を確保するためのガベージコレクション処理を実行し、
当該ガベージコレクション処理のデータを、当該書込みアクセスにおける前記書込みデータを書込んだ記憶領域に追加書込みする
請求項1から3のいずれか一項記載の記憶装置。
【請求項5】
前記制御部は、
当該書込みアクセスにおける前記書込みデータを書込んだ記憶領域に対して前記ガベージコレクション処理のデータを追加書込みした場合に、前記ガベージコレクション処理を中断して前記入出力部から前記書込みアクセスの書込み処理結果を応答し、
前記書込み処理結果の応答の後に、中断した前記ガベージコレクション処理を再開する
請求項4記載の記憶装置。
【請求項6】
前記制御部は、
前記書込みアクセスにおいて、データが書込まれていない記憶領域に、前記書込みアクセスに係る前記書込みデータを書込む
請求項1から5のいずれか一項記載の記憶装置。
【請求項7】
前記メモリは、
前記記憶領域において複数のデータを多値化することにより、既にデータを保持する記憶領域に対して新たなデータを追加書込みすることにより当該記憶領域においてこれらのデータを保持可能な半導体メモリである
請求項1から6のいずれか一項記載の記憶装置。
【請求項8】
書込まれたデータを記憶する記憶装置と、
前記記憶装置にデータを書込むホスト機器と
を有し、
前記記憶装置は、
既にデータを保持する記憶領域に対して新たなデータを追加書込みすることにより当該記憶領域においてこれらのデータを保持可能なメモリと、
ホスト機器の書込みアクセスにおいて当該ホスト機器から書込みデータが入力される入出力部と、
前記ホスト機器の書込みアクセスに基づいて前記メモリに前記書込みデータを書込む制御部と
を有し、
前記制御部は、
前記ホスト機器の書込みアクセスに基づく内部処理において、当該処理において前記ホスト機器の書込みデータを書込んだ記憶領域についての追加書込み処理を実行する
記憶システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−192239(P2011−192239A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2010−60207(P2010−60207)
【出願日】平成22年3月17日(2010.3.17)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】