説明

メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

【課題】ディスクイメージコピーを行った場合においても、従来よりも長寿命かつ処理速度の速い不揮発性記憶装置、不揮発性記憶システムを提供すること。
【解決手段】ディスクイメージコピーにおいて、アクセス装置から転送された転送データが消去済みデータか否かを論理ブロック単位(LBN毎)に判定し、消去済みデータと判定した場合は、その物理ブロックのブロックステータスを無効ブロック(値1)に設定し、空き領域として管理する。その結果、ディスクイメージコピー後に、特定のLBN(例えばLBN0)の書き換え処理が頻繁に発生した場合においても、空きブロックを書き換え用の代替ブロックとして使用できるので、従来のようにスペアブロックのみを書き換え用の代替ブロックとして使用した場合と比較すると、書き換え回数の平準化がなされ、結果として不揮発性記憶装置の長寿命化を実現することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリを備えたメモリカード等の不揮発性記憶装置、前記不揮発性メモリを制御するメモリコントローラ、及び前記不揮発性記憶装置にアクセス装置を構成要件として加えた不揮発性記憶システムに関する。
【背景技術】
【0002】
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、メモリカードを中心にその需要が広まっている。メモリカードは、光ディスクやテープメディアなどと比較して非常に高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。このメモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパーソナルコンピュータ本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものとなっている。またポータブルオーディオにおいては、メモリカードに対応したものだけでなく、ポータブルオーディオ本体内にフラッシュメモリを実装したものもある。また、近年では前述した民生用途だけでなく、例えば放送局向けのプロ用動画記録機器にもメモリカードが使用されている。
【0003】
メモリカードやポータブルオーディオなどの製品に内蔵されたフラッシュメモリは、記憶単位であるメモリセルアレイへの書き込みや消去に比較的長い時間を必要とするため、複数のメモリセルを一括して消去したり書き込んだりできる構造となっている。具体的には、複数の物理ブロックから構成され、各物理ブロックは複数のページを含み、消去は物理ブロック単位で、書き込みはページ単位で行われる。
【0004】
近年フラッシュメモリは、大容量化と低コスト化への要望に対応して、多値NANDフ
ラッシュメモリのように1つのメモリセルに2ビット又はそれ以上の情報が記憶できる品種が主流となってきている。このような多値NANDフラッシュメモリは、メモリセルの信頼性確保が難しいため、書き換え保証回数が低い。従来の2値NANDフラッシュメモリは、書き換え保証回数が例えば10万回であったのに対して、前述した多値NANDフラッシュメモリは、書き換え保証回数が例えば1万回と約10分の1まで低下している。更に、1万回の書き換え回数を保証できるフラッシュメモリを製造すること自体も難しくなっている。
【0005】
フラッシュメモリの書き換え保証回数は、メモリカードの寿命、及びポータブルオーディオなどの機器自体の寿命に直結している。従来、この寿命をできるだけのばすために、特許文献1や特許文献2では、特定の物理ブロックに書き換えが集中しないウェアレベリングといったアドレス管理方法が適用されている。例えば、特許文献2によれば、ある論理アドレスのデータ書き換えにおいては、未使用ブロックに対して新たにデータを書き込み、書き換え前の旧データが記憶されていた物理ブロックを未使用ブロックとすることによって、ある論理アドレスに対応するデータが特定の物理ブロックに固定的にアロケートされない工夫がなされている。
【0006】
さてメモリカードによっては出荷前に、ディスクイメージコピーによってプログラムデータ等を記憶したメモリカード(マスターメモリカード)の複製を作成する場合がある。ここで、ディスクイメージコピーとは、マスターメモリカードに記録されているFAT等のファイルシステムを解釈することなしに、即ち、どの論理アドレスに前記プログラムデータ等の有効な情報が記録されているかを認識することなしに、マスターメモリカードの論理アドレス空間の全領域を丸ごと複製先メモリカードにコピーすることを言う。
【0007】
一方、ファイルコピー、即ちマスターメモリカードに記憶されたFATなどのファイルシステムを解釈し、前記プログラムデータ等をファイルとして認識した上で、複製メモリカードを作成することは可能であるが、フォーマット処理やファイルが正しく書き込まれたかどうかのファイルチェックが必要となるため、通常、ファイルコピーよりもディスクイメージコピーの方が少ない工数で複製を作成することが可能である。
【0008】
しかしながらディスクイメージコピーを実行すると、マスターメモリカード内の消去済みデータまでも複製先メモリカードに書き込まれ、複製先メモリカードにおいて、前記消去済みデータが記憶される領域も有効領域として管理され、有効領域ではない空き領域のサイズが少ししか残らない。このような場合、複製先メモリカードを出荷した後に、データの書き換えを行った場合、少ない空き領域を使用した書き換え、即ち代替処理がなされるため、特定の物理ブロックに書き換えが集中してしまうこととなる。
【0009】
そこで、例えば特許文献3に示したスワッピング技術を用いて特定の物理ブロックでの書き換え集中を回避することが考えられる。
【特許文献1】特開平2−310896号公報
【特許文献2】特開2003−263894号公報
【特許文献3】特許第3178909号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながらスワッピングにより書き換えの集中を回避した場合には、スワッピング処理自体での書き換えダメージや、スワッピング処理による書き換え速度が低下するといった問題が生じる。
【0011】
そこで、本発明は上記問題点に鑑み、前述したディスクイメージコピーを行った場合においても、従来よりも長寿命かつ処理速度の速い不揮発性記憶装置、不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
この課題を解決するために、本発明のメモリコントローラは、不揮発性メモリに接続され、外部から指定された論理アドレスに従い前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すメモリコントローラであって、外部からの書き込み指示に伴って転送された転送データが消去済みを示すデータかどうかを判定するデータ判定部と、前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換すると共に、前記物理アドレスの記憶領域のステータスの情報を保持し、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスに対応する物理アドレスを空き領域とするアドレス管理部と、を具備するものである。
【0013】
ここで前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスへの読み出し指示が外部からなされた場合に、消去済みデータを表すコードを外部に転送する仮想出力部をさらに備えるようにしてもよい。
【0014】
ここで前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの、前記不揮発性メモリへの書き込みを禁止するようにしてもよい。
【0015】
この課題を解決するために、本発明の不揮発性記憶装置は、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置であって、前記不揮発性記憶装置は、不揮発性メモリと、請求項1〜3のいずれかに記載のメモリコントローラと、を有するものである。
【0016】
この課題を解決するために、本発明の不揮発性記憶システムは、アクセス装置と、前記アクセス装置から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置と、を有した不揮発性記憶システムであって、前記不揮発性記憶装置は、不揮発性メモリと、前記不揮発性メモリに接続され、前記アクセス装置から指定された論理アドレスに従い前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すメモリコントローラと、を具備し、前記メモリコントローラは、前記アクセス装置からの書き込み指示に伴って転送された転送データが消去済みを示すデータかどうかを判定するデータ判定部と、前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換すると共に前記物理アドレスの記憶領域のステータスの情報を保持し、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスに対応する物理アドレスを空き領域とするアドレス管理部と、を有するものである。
【0017】
ここで前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスへの読み出し指示が外部からなされた場合に、消去済みデータを表すコードを外部に転送する仮想出力部をさらに備えるようにしてもよい。
【0018】
ここで前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの、前記不揮発性メモリへの書き込みを禁止するようにしてもよい。
【発明の効果】
【0019】
本発明によれば、消去済みデータ判定部が、ディスクイメージコピーにおいて転送される転送データが消去済みデータか否かを判定し、アドレス管理部が該判定された消去済みデータの論理アドレスに対応する物理アドレスを空き領域として管理するようにしたので、空き領域のサイズが少ししか残らないといった状態を回避することが可能となる。即ちディスクイメージコピーした場合においても、従来よりも長寿命かつ処理速度の速いメモリカードを提供することが可能となる。
【発明を実施するための最良の形態】
【0020】
(第1の実施の形態)
図1は、本発明の第1の実施の形態における不揮発性記憶システムを示したブロック図である。図1において、不揮発性記憶システムは、不揮発性記憶装置100Aとアクセス装置200とから構成される。不揮発性記憶装置100Aは、不揮発性メモリ110とメモリコントローラ120Aを含む。メモリコントローラ120Aはホストインターフェース(ホストIF)121、バッファ122、メモリインターフェース(フラッシュIF)123、CPU部124、アドレス管理部125、データ判定部126、仮想出力部127を含んでいる。
【0021】
不揮発性メモリ110は、ここでは消去単位である物理ブロックのサイズが256kバイトのフラッシュメモリとする。また物理ブロックの構成要素であり、書き込み単位であるページのサイズは2kバイトとする。通常、ひとつのフラッシュメモリチップ内には数百〜数千個の物理ブロックを備えるが、ここでは簡単のために、不揮発性メモリ110は16個の物理ブロックを備えるものとして説明する。この場合、不揮発性メモリ110の物理容量は式(1)により4096kバイトとなる。
256kバイト(物理ブロックサイズ)×16ブロック=4096kバイト ・・・(1)
【0022】
ホストインターフェース121は、アクセス装置200からのデータの書き込みの際に、アクセス装置200から転送された書き込みコマンドと論理アドレスとデータ(以下、転送データという)を受信してバッファ122に転送する。またアクセス装置200が不揮発性記憶装置100Aからデータを読み出す際に、アクセス装置200から転送された読み出しコマンドと論理アドレスを受信すると共に、メモリインターフェース123が不揮発性メモリ110からバッファ122に読み出したデータを、アクセス装置200に送信するブロックである。
【0023】
バッファ122はアクセス装置150から与えられたデータを一時保持し、又フラッシュメモリ110から読み出されたデータを保持してアクセス装置に転送するものであり、少なくとも1ページ分のデータを保持する領域を有している。
【0024】
メモリインターフェース123は、書き込み時においては、ホストインターフェース121がバッファ122に一時記憶した転送データを、アドレス管理部125が指示した不揮発性メモリ110の物理アドレスに書き込んだり、また読み出し時においては、不揮発性メモリ110に記憶されているデータをバッファ122に読み出したりするものである。
【0025】
CPU部124は、読み書きの制御などメモリコントローラ120の全体を制御するものである。なお、本発明とは直接関係ないブロックであるので、その動作説明は省略する。
【0026】
アドレス管理部125は、アクセス装置200から受信した論理アドレスとデータ判定部126から受信した空き領域指示フラグに基づいて、不揮発性メモリ110の物理アドレスを生成するものである。またアドレス管理部125は、物理領域管理テーブル131と論物変換テーブル132を含む。物理領域管理テーブル131は物理ブロック番号PBNに対応してその物理ブロックのステータスを保持する情報を保持している。ここで0は有効ブロック、1は無効ブロック、2は不良ブロック、3は消去済みブロックを示す。無効ブロックと消去済みブロックとはいずれも空き領域として認識されるが、無効ブロックの場合には何らかのデータが書き込まれていることがある。従って次にデータを書き込む際には、一旦消去してからデータを書き込む必要がある。一方消去済みブロックについては消去処理が終了しているため、直ちに新たなデータを書き込むことができる。論物変換テーブル132は論理ブロック番号LBNに対応して物理ブロック番号PBNを保持するテーブルである。これらのテーブルはアドレス管理部125内に備えられた不揮発性RAM上に保持される。これらのテーブルは揮発性RAMとして構成してもよいが、その場合は適宜不揮発性メモリ110に書き込む必要がある。
【0027】
データ判定部126は、書き込み時においてアクセス装置200が転送した転送データが、論理ブロック単位で消去済みデータかどうかを判定し、消去済みデータと判定した場合は、空き領域指示フラグをアドレス管理部125に送信するものである。なお論理ブロックとは、論理アドレスを256kバイト毎に区切った単位である。
【0028】
仮想出力部127は、アドレス管理部125が無効ブロックあるいは消去済みブロックとして管理している不揮発性メモリ110の物理ブロックに対応する論理ブロックへの読み出し指示がアクセス装置200からなされた場合に、消去済みデータを表すコード(例えばバイト単位で“FF”)を、ホストインターフェース121を介してアクセス装置200に送信するものである。アクセス装置200は不揮発性記憶装置100Aに対して無効とされている論理ブロックや消去済みの論理ブロックに対しては、通常アクセスを行うことはない。しかしこの実施の形態では、ディスクイメージコピーを行う場合に有効なデータとしての“FF”がブロックの全ての領域に書き込まれている場合と消去済みのデータである“FF” がブロックの全ての領域に書き込まれている場合とを区別せず、不揮発性メモリ110に書き込んでいる。従って有効でデータである“FF”があればそれに対応する論理アドレスがあり、アクセス装置200はこの場合には不揮発性記憶装置100Aに対してその論理アドレスの読み出しのコマンドを不揮発性記憶装置100Aに送出する。仮想出力部127は、この場合に不揮発性メモリに正常に書き込まれているかどうかとは無関係に、不揮発性記憶装置100Aからデータ“FF”をアクセス装置200に出力するものである。従ってアクセス装置200からこのような読み出し指示がなされた場合は、アドレス管理部125は、メモリインターフェース123に対して読み出し指示は行わない。
【0029】
アクセス装置200は、不揮発性記憶装置100Aへのデータの書き込みおよび読み出しを行う装置である。
【0030】
次にデータ判定部126の詳細について図2を用いて説明する。図2においてデータ判定部は1バイトの転送データが入力される並列の8つのDフリップフロップ140(図面ではD−FFと表記)及びそのQ出力が与えられる比較器141が含まれる。Dフリップフロップ140はシステムクロックSCKに同期してデータを比較器141のA入力端に出力するものであり、比較器141のB入力端には常に消去状態を示す16進表示の“FF”の8ビットのデータが入力される。比較器141はこれらが一致しないときに出力をRSフリップフロップ142(図面でRS−FFと表記)に出力するものである。又転送開始フラグは18ビットカウンタ145に与えられる。RSフリップフロップ142のQ出力はDフリップフロップ143に出力される。Dフリップフロップ143はRSフリップフロップ142の出力をシステムクロックSCKに同期してアンドゲート144に出力するものである。一方転送開始フラグは18ビットカウンタ145に出力される。18ビットカウンタ145はSCKの立ち下がりエッジでカウントアップするカウンタであり、218個のシステムクロックSCKが与えられたときにキャリーオーバー出力をオアゲート146及びアンドゲート144に出力するものである。オアゲート146は転送開始フラグとキャリーオーバー出力のいずれか一方でRSフリップフロップ142をセットするものであり、アンドゲート144はキャリーオーバー出力に同期して空き領域指示フラグを出力するものである。
【0031】
次に本実施の形態の不揮発性記憶システムのディスクイメージコピー処理について説明する。図3は、不揮発性記憶装置100Aにディスクイメージコピーを行う形態を示す説明図である。
【0032】
不揮発性記憶装置100Aにプログラムデータをプリインストールして出荷する場合、図3に示すように予めプログラムデータを記憶している不揮発性記憶装置300(例えばマスターメモリカード)をアクセス装置200のスロット201に装着し、さらにアクセス装置200のスロット202に何もデータが書き込まれていない本実施の形態の不揮発性記憶装置100Aを装着する。不揮発性記憶装置300は、ここで説明した不揮発性記憶装置100Aと同じものでもよく、従来の不揮発性記憶装置であっても構わない。不揮発性記憶装置300は論理ブロック番号LBN0〜3にプログラムデータがアロケートされ、論理ブロック番号LBN4〜13は消去済みブロックとする。なお、FATなどのファイル管理情報はプログラムデータがアロケートされているLBN0の中に存在するものとする。
【0033】
データが書き込まれる不揮発性記憶装置100Aは新しい出荷直後の不揮発性記憶装置とし、物理領域管理テーブル131には全てあらかじめ消去済みブロックを示すステータス3が保持されているものとする。また、不揮発性記憶装置100Aと不揮発性記憶装置300の使用可能容量は、ともに式(2)に示すように3584kバイトであるとする。前述した物理容量4096kバイトから使用可能容量3584kバイトを減算した残りの領域は、スペア領域、即ちデータの書き換え時に利用される領域とする。また、論理ブロックサイズは、物理ブロックサイズと同じ256kバイトとする。
256kバイト(論理ブロックサイズ)×14ブロック=3584kバイト ・・・(2)
【0034】
次に、ディスクイメージコピーにおいて、不揮発性記憶装置100A側での処理について図1及び図4を用いて説明する。アクセス装置200は不揮発性記憶装置220に記憶されたプログラムデータを含め使用可能容量3584kバイト分全てを転送データとして不揮発性記憶装置100Aに書き込む。転送データは論理ブロック番号LBNが0〜13までの14個の論理ブロックから構成される。
【0035】
転送データは全てホストインターフェース121を介してバッファ122に2kバイトずつ一時保持され、メモリインターフェース123を介して不揮発性メモリ110に書き込まれる。転送データと共に転送される論理アドレスはホストインターフェース121を介してアドレス管理部125に転送され、論物変換処理によって転送データの書き込み先である物理アドレスが決定される。
【0036】
論物変換処理においては、物理領域管理テーブル131の先頭アドレス、即ち物理ブロック番号(以下、PBNという)が0から昇順に、ブロックステータスが値3(消去済みブロック)もしくは値1(無効ブロック)の物理ブロックを検索することによって、論物変換を行う。ディスクイメージコピー時は、物理領域管理テーブル131に保持されたブロックステータスは全て値3、即ち全て消去済みブロックであるので、図4に示すように、転送データは不揮発性メモリ110の先頭の物理ブロックから昇順に記録され、その結果論物変換テーブル132は図4に示した通りとなる。
【0037】
論物変換処理と同時に、データ判定部126は論理ブロック毎にアクセス装置200より転送されてきた全てのデータが消去済みデータ“FF”か否かを判定する。この判定処理は後述する。ここで消去済みデータと判定した場合は、対応するLBNに基づき論物変換テーブル132を参照し、該LBNに対応するPBNを求め、該PBNに対応する物理領域管理テーブル131のブロックステータスを値1(無効ブロック)に更新する。ブロック4〜13についてはいずれも消去済みデータであるので、データ判定部126で判定した結果、いずれのブロックも全て消去済みデータとなっている。その結果、図4に示すようにPBN4〜13のブロックステータスは全て値1とする。
【0038】
次に、データ判定処理の具体的な方法について、図2〜図6を用いて説明する。図5と図6の上段に示すように、ディスクイメージコピーにおいて、アクセス装置200から不揮発性記憶装置100Aに対してLBN0から順番にデータが転送される。ホストインターフェース121を介して取り込まれた転送データは、データ判定部126において、論理ブロック単位(256kバイト単位)で消去済みデータか否かが判定される。
【0039】
図5は、転送データのLBN0の256kバイト分のデータ判定を行うタイムチャートである。データ判定部126は、転送データの転送開始時にホストインターフェース121から転送開始フラグを受信し、18ビットカウンタ145をリセットし、オアゲート146を介してRSフリップフロップ142をセットする。従ってRSフリップフロップ142のQ出力は値1となる。このとき、18ビットカウンタ145の内部のカウント値は値0となる。
【0040】
その後、Dフリップフロップ140は、LBN0の転送データを1バイト(8ビット)毎にシステムクロックSCKの立ち上がりエッジによってラッチし、ラッチしたデータ(Q出力)を比較器141のA入力に入力する。図5に示すようにLBN0のバイト番号BN0のデータ値は“FF”とすると、比較器141のB入力には常時“FF”が入力されているので、A入力とB入力が共に“FF”となり、比較不一致出力(A≠B)は値0となる。
【0041】
比較不一致出力が値0であるので、RSフリップフロップ142はリセットされず、Q出力は値1に保たれる。Dフリップフロップ143はシステムクロックSCKの立ち下がりエッジによってRSフリップフロップ142のQ出力(値1)をラッチすることにより、Dフリップフロップ143のQ出力を値1とする。アンドゲート404はDフリップフロップ143のQ出力と、18ビットカウンタ145のCO出力(キャリーアウト出力)との論理積をとり空き領域指示フラグを生成する。
【0042】
以上の処理を256kバイト分全て実行した時点、即ち18ビットカウンタ145がカウント値を0〜262143までの18ビット分全てをカウントし終えた時点でCO出力を値1とする。
【0043】
LBN0のBN1の値は16進数で“32”である、即ち“FF”とは一致しない値であるので、比較器141において比較不一致出力(A≠B)は値1となり、RSフリップフロップ142はリセットされ、その結果Q出力が値0となる。このようにLBN0の256kバイト分の中に、1つでも“FF”と一致しないデータ値があると、その時点でRSフリップフロップ142のQ出力は値0となり、COが値1となる時点、即ち空き領域指示フラグを生成する時点において、空き領域指示フラグは値0となる。
【0044】
アドレス管理部125は、データ判定部126から空き領域指示フラグを値0として受信し、LBN0の転送データは「消去済みデータではない」と認識する。アドレス管理部125は、論物変換テーブル132に基づきLBN0がPBN0に変換されていることを認識し、物理領域管理テーブル131のPBN0を有効ブロック、即ちブロックステータスを値0とする。
【0045】
LBN1〜LBN3の転送データは、LBN0と同様に消去済みデータではないと判断すると、図5と同様の処理によって、空き領域指示フラグは値0となり、図4に示すように物理領域管理テーブル131のPBN1〜3に対応するブロックステータスは値0となる。
【0046】
次に図6は、LBN4の転送データ256kバイト分のデータ判定を行うタイムチャートである。処理内容は基本的に図5と同様であり、LBN4の256kバイト分全てのバイトの転送データが消去済みデータ、即ち“FF”であるという点が異なる。そのため比較器141の比較不一致出力(A≠B)は値1にならないので、RSフリップフロップ142はリセットされることはない。その結果、COが値1となる時点、即ち空き領域指示フラグを生成する時点において、空き領域指示フラグは値1となる。
【0047】
アドレス管理部125は、データ判定部126から空き領域指示フラグを値1として受信し、LBN4の転送データは「消去済みデータである」と認識する。アドレス管理部125は、論物変換テーブル132に基づきLBN4がPBN4に変換されていることを認識し、物理領域管理テーブル131のPBN4を無効ブロック、即ちブロックステータスを値1とする。
【0048】
LBN5以降の転送データは、LBN4と同様に「消去済みデータである」とすると、図6と同様の処理によって、空き領域指示フラグは値1となり、図4に示すように物理領域管理テーブル131のPBN4〜13に対応するブロックステータスは値1となる。
【0049】
なお、従来の不揮発性記憶システムにおいては、転送されたデータの判定をしておらず、消去済みデータか否かを認識できないので、PBN4〜13のブロックステータスは全て値0となる。その後、特定のLBNの書き換え処理が頻繁に発生した場合は、ブロックステータスが値3であるPBN14とPBN15の2つのブロックを使用した書き換え処理がおこなわれるために、PBN14とPBN15への書き換えが集中してしまうこととなる。
【0050】
本願発明の第1の実施の形態における不揮発性記憶システムにあって、データ判定処理によってLBN4〜13を消去済みデータと判定することができるので、LBN4〜13に対応するPBN4〜13の物理ブロックのステータスを無効ブロックとして管理することできる。その結果、ディスクイメージコピー後に、特定のLBNの書き換え処理が頻繁に発生した場合においても、PBN4〜13も書き換えのための代替ブロックとして使用することができるので、従来のようなPBN14とPBN15への書き換え集中といった問題を回避することが可能となる。
【0051】
次に、ディスクイメージコピーの終了後において、LBN4〜13、即ち無効ブロックとして管理されている領域に対する読み出し指示がアクセス装置200からなされた場合の処理について説明する。ここで、マスター側の不揮発性記憶装置300の例えばLBN4の全領域には有意味なデータとして消去済みデータを表すコード“FF”が保持されていたとする。
【0052】
アクセス装置200が、ディスクイメージコピーの終了後に読み出しを行う場合は、まず、LBN0内のFAT等のファイル管理情報を読み出し、ファイル管理情報に参照して読み出したいデータが存在する論理アドレスを特定する。該論理アドレスが例えばLBN4であると、LBN4に対する読み出し指示がなされることとなる。しかしながら、LBN4に対応するPBN4は、不揮発性記憶装置100Aにおいては、無効ブロック、即ち有効なデータが記憶されていないとして管理している。そのためPBN4を読み出すことができず、従来の不揮発性記憶装置であれば、未アロケートのエラーメッセージをアクセス装置200に送信することとなる。
【0053】
この実施の形態においては論理ブロックの全てのデータが有効なデータとしての“FF”であっても、消去済みデータと判断してブロックステータスを無効ブロックにしている。しかし有効なデータであればアクセス装置200からみてデータの読み出し処理が行われる場合がある。そこで無効ブロックに対する読み出し指示がなされた場合、仮想出力部127が消去済みデータを表すコード“FF“をアクセス装置200に送信できるようにしている。図7は、仮想出力部127の仮想出力処理を示すフローチャートである。
【0054】
図7において、アクセス装置200からの読み出し指示を受信すると(S100)、アクセス装置200が指示した論理アドレスLAに対応するLBNを特定し(S101)、さらにアドレス管理部126内の論物変換テーブル132と物理領域管理テーブル131を参照することにより、該LBNのブロックステータスを調べる(S102)。無効ブロックの場合は(S103)、消去済みデータを表すコード“FF”をアクセス装置200に送信する(S104)。アクセス装置200が指示した論理アドレスを内部でインクリメントすると共に読み出しバイト数を内部でカウントし(S105)、読み出しバイト数が、アクセス装置200が指定した読み出し要求サイズに達した場合は処理を終了する(S106)。一方、読み出しバイト数が読み出し要求サイズに達していない場合は、内部でインクリメントした論理アドレスに基づき論理ブロック番号LBNが変化したかどうかを判定し(S107)、変化していなければS104に戻り、変化していればS102に戻る。
【0055】
なお、S103においてLBNが無効ブロックでない場合は、通常の読み出し処理、即ち不揮発性メモリ110からの読み出し処理となるので、仮想出力部127における処理を終了し、アドレス管理部125とメモリインターフェース123による通常の読み出し処理に移行する。通常の読み出し処理は従来のものと同様にCPU部124がデータの読み出しを行うので説明を省略する。
【0056】
以上のように本発明の第1の実施の形態の不揮発性記憶システムは、ディスクイメージコピーにおいて、データ判定部126が、アクセス装置200から転送された転送データが消去済みデータか否かを論理ブロック単位毎に判定し、消去済みデータと判定した場合は空き領域指示フラグをアドレス管理部125に送信し、アドレス管理部125は空き領域指示フラグを受信した時の論理ブロック番号LBNに対応する物理ブロック番号PBNのブロックステータスを無効ブロック(値1)に設定している。こうすればディスクイメージコピー後に、特定のLBN(例えばLBN0)の書き換え処理が頻繁に発生した場合においても、PBN4〜15を書き換え用の代替ブロックとして使用できるので、従来よりも書き換え回数の平準化がなされることとなる。
【0057】
なお、図4において、PBN4〜13には消去済みデータではあるが転送データを書き込むため、その途中でデータが変化してしまう可能性があり得る。従って物理領域管理テーブル131のPBN4〜13のブロックステータスを値3(消去済みブロック)ではなく値1(無効ブロック)に設定している。不揮発性メモリ110の物理的特性上確実に“FF”と記録することができるのであれば、ブロックステータスを値3(消去済みブロック)に設定してもさしつかえない。その場合は、図7のS103は、「消去ブロックか」という判断分岐となる。
【0058】
また論理ブロックや物理ブロックのサイズは256kバイトに限定されることはなく、使用する不揮発性メモリ110の仕様やアクセス装置200の仕様等にあわせて決めればよい。
【0059】
又この実施の形態ではアクセス装置から消去済みブロックに対する読み出しの要求があったときに仮想出力部127よりデータを出力しているが、この要求により当該論理ブロックは有効なデータが保持されていると認識できるため、物理領域管理テーブル131のブロックステータスを有効ブロックを示す0に変更するようにしてもよい。又本実施の形態では消去済みデータとして“FF”の場合について説明しているが、消去済みデータはこれに限らず“00”など他の値の場合もあり得る。この場合にはデータ判定部126の比較器141に出力するB入力を“00”などとすることによって、同様の処理を行うことができる。
【0060】
(第2の実施の形態)
本発明の第1の実施の形態における不揮発性記憶システムは、アクセス装置200から転送された転送データにおいて消去済みデータも不揮発性メモリ110に書き込んでいたが、本発明の第2の実施の形態における不揮発性記憶システムは、消去済みデータは不揮発性メモリ110に書き込まないようにするものである。
【0061】
図8は、本発明の第2の実施の形態における不揮発性記憶システムを示したブロック図である。この不揮発性記憶装置100Bは不揮発性メモリ110とメモリコントローラ120Bとを有している。メモリコントローラ120Bにおいて、メモリインターフェース163、アドレス管理部165、データ判定部166が前述した第1の実施の形態と異なっており、その他のブロックは第1の実施の形態の不揮発性記憶システムと同様である。
【0062】
本実施の形態では、データ判定部166は、データ判定部126の機能に加え、転送データを不揮発性メモリ110の書き込み単位であるページサイズ(2kバイト)毎に、消去済みデータか否かの判定を行い、書き込み禁止フラグを出力できる機能を追加した。図9は、データ判定部166の回路構成図であり、データ判定部126の回路構成に以下の素子が加えられている。データ判定部166において、18ビットカウンタ145のQ11出力は、オアゲート147とアンドゲート150に与えられる。オアゲート147はQ11出力と転送開始フラグとの論理和出力をRSフリップフロップ148のセット入力として与えるものである。RSフリップフロップ148は比較器141の出力によってリセットすることにより、2kB単位でのデータが“FF”と一致するかどうかを確認している。そしてそのQ出力がDフリップフロップ149に入力される。Dフリップフロップ149はシステムクロックがクロック端子に与えられ、Q出力がアンドゲート150に出力される。アンドゲート150は書き込み禁止フラグを出力するものである。
【0063】
以上のように構成された、本発明の不揮発性記憶システムのディスクイメージコピー処理について図10〜図12を用いて説明する。図11と図12は、データ判定部166のデータ判定処理を示すタイムチャートである。ディスクイメージコピーの配置については図3と同様であり、スロット202にこの実施の形態の不揮発性記憶装置100Bを装着しておく。そして図10はアドレス管理部165の処理を示す説明図である。第1の実施の形態と同様に、マスター側の不揮発性記憶装置300のプログラムデータは論物変換処理、データ判定処理が行われてそのまま不揮発性記憶装置100Bのメモリに書き込まれ、それに対応して物理領域管理テーブル131のステータスがPBN0〜3まで設定されていく。
【0064】
処理内容は、基本的には空き領域指示フラグの生成処理と同様である。第2の実施の形態では256kバイト単位で転送データが消去済みか否かを判定して空き領域指示フラグを生成すると共に、2kバイト単位で転送が消去済みか否かを判定して書き込み禁止フラグを生成する。これらのフラグを生成するため、18ビットカウンタ145からのCOとQ11の出力によって、これらの時間的間隔を制御している。
【0065】
図11は、LBN0の中のBN0〜2047のデータ判定処理を示すタイムチャートであり、BN1において、即ち転送データが“FF”ではなくなる時点でRSフリップフロップ148がリセットされ、それが要因となってBN2047まで処理された時点で書き込み禁止フラグが値0となる。従ってLBN0の最初の2kBは書き込み禁止フラグが出力されず、不揮発性メモリ110への書き込みが行われる。以下も同様の判定が行われる。
【0066】
一方、図12は、LBN4の中のBN0〜2047のデータ判定処理を示すタイムチャートである。この場合は、2048バイト分全ての転送データが“FF”であるので、RSフリップフロップ148がリセットされることなく、BN2047まで処理された時点で書き込み禁止フラグが値1となる。この場合は、メモリインターフェース163は書き込み禁止フラグが値1であるので、バッファ122に一時保持されているLBN4のBN0〜2047に対応するデータを不揮発性メモリ110に書き込むことを禁止する。
【0067】
このように、2048バイト単位で消去済みデータの書き込み禁止制御を行うので、図9において、LBN4〜13の消去済みデータは不揮発性メモリ110に書き込まれることはない。アドレス管理部165は、LBN4〜13に対応する物理ブロック、即ちPBN4〜13のブロックステータスを値3(消去済みブロック)に設定する。
【0068】
以上のように、データ判定部166が、転送データが消去済みデータか否かを、論理ブロック(256kバイト)単位毎に行うことに加え、さらにページサイズ(2kバイト)単位毎に判定することにより、消去済みデータの場合は不揮発性メモリ110に書き込みを禁止できるようにした。このため本発明の第2の実施の形態における不揮発性記憶システムは、本発明の第1の実施の形態における不揮発性記憶システムよりも、消去データの書き込みを行わない分、ディスクイメージコピーの処理速度を速くすることができる。
【0069】
尚通常のデータ書き込みにおいては、あらかじめ消去済みの物理ブロックにはそのままデータを書き込み、無効物理ブロックでは一旦消去済みとしてからデータを書き込んでいる。従って通常の書き込み時に特定のページが全てデータ“FF”であれば、データ判定部166の処理によってデータは書き込めないが、元々“FF”となっているので、転送データをわざわざ書き込む必要がなく、アクセス装置に指定した書き込み状態とすることができる。更にここで説明した実施の形態では、物理領域管理テーブルは物理ブロック毎に4つの状態を管理しているが、有効ブロックと空きブロックとして物理ブロックの状態を管理するようにしてもよい。
【産業上の利用可能性】
【0070】
本発明にかかる不揮発性記憶システムは、ディスクイメージコピーを行った場合においても、長寿命かつ書き込み速度を両立する方法を提案したものであり、メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話において有益である。
【図面の簡単な説明】
【0071】
【図1】本発明の第1の実施の形態における不揮発性記憶システムを示すブロック図
【図2】データ判定部126の回路構成図
【図3】不揮発性記憶装置100Aにディスクイメージコピーを行う形態を示す説明図
【図4】アドレス管理部125の処理を示す説明図
【図5】データ判定部126のデータ判定処理を示すタイムチャート
【図6】データ判定部126のデータ判定処理を示すタイムチャート
【図7】仮想出力部127の仮想出力処理を示すフローチャート
【図8】本発明の第2の実施の形態における不揮発性記憶システムを示すブロック図
【図9】データ判定部166の回路構成図
【図10】アドレス管理部165の処理を示す説明図
【図11】データ判定部166のデータ判定処理を示すタイムチャート
【図12】データ判定部166のデータ判定処理を示すタイムチャート
【符号の説明】
【0072】
100A,100B 不揮発性記憶装置
110 不揮発性メモリ
120A,120B メモリコントローラ
121 ホストインターフェース
122 バッファ
123,163 メモリインターフェース
124 CPU部
125,165 アドレス管理部
126,166 データ判定部
127 仮想出力部
131 物理領域管理テーブル
132 論物変換テーブル
140,143,149 Dフリップフロップ
141 比較器
142,148 RSフリップフロップ
144,150 アンドゲート
145 18ビットカウンタ
146,147 オアゲート
200 アクセス装置
201,202 スロット

【特許請求の範囲】
【請求項1】
不揮発性メモリに接続され、外部から指定された論理アドレスに従い前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すメモリコントローラであって、
外部からの書き込み指示に伴って転送された転送データが消去済みを示すデータかどうかを判定するデータ判定部と、
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換すると共に、前記物理アドレスの記憶領域のステータスの情報を保持し、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスに対応する物理アドレスを空き領域とするアドレス管理部と、を具備するメモリコントローラ。
【請求項2】
前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスへの読み出し指示が外部からなされた場合に、消去済みデータを表すコードを外部に転送する仮想出力部をさらに備えた請求項1に記載のメモリコントローラ。
【請求項3】
前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの、前記不揮発性メモリへの書き込みを禁止する請求項1に記載のメモリコントローラ。
【請求項4】
外部から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置であって、
前記不揮発性記憶装置は、
不揮発性メモリと、
請求項1〜3のいずれかに記載のメモリコントローラと、を有する不揮発性記憶装置。
【請求項5】
アクセス装置と、前記アクセス装置から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置と、を有した不揮発性記憶システムであって、
前記不揮発性記憶装置は、
不揮発性メモリと、
前記不揮発性メモリに接続され、前記アクセス装置から指定された論理アドレスに従い前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すメモリコントローラと、を具備し、
前記メモリコントローラは、
前記アクセス装置からの書き込み指示に伴って転送された転送データが消去済みを示すデータかどうかを判定するデータ判定部と、
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換すると共に前記物理アドレスの記憶領域のステータスの情報を保持し、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスに対応する物理アドレスを空き領域とするアドレス管理部と、を有する不揮発性記憶システム。
【請求項6】
前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの論理アドレスへの読み出し指示が外部からなされた場合に、消去済みデータを表すコードを外部に転送する仮想出力部をさらに備えた請求項5に記載の不揮発性記憶システム。
【請求項7】
前記メモリコントローラは、前記データ判定部が消去済みデータと判定した前記転送データの、前記不揮発性メモリへの書き込みを禁止する請求項5に記載の不揮発性記憶システム。

【図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

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2009−134514(P2009−134514A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2007−310100(P2007−310100)
【出願日】平成19年11月30日(2007.11.30)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】