(57)【要約】【課題】従来の情報記録方法では、消去回数に制限のある携帯型メモリカードを効率的に利用することが困難であった。【解決手段】本発明にかかる情報記録方法は、論理ブロック番号と論理ブロックに関連付けられた物理ブロックの物理ブロック番号とが関連付けて登録される論理物理変換テーブルと、論理ブロックに関連付けされていない物理ブロックの物理ブロック番号が登録される空き物理ブロックテーブルとを作成し、所定の論理ブロック番号に対して情報の書き込みが指定された場合に、空き物理ブロックテーブルに登録された物理ブロックのうち前記消去回数が最も少ない物理ブロックを検索し、当該最も消去回数が少ない物理ブロックに情報を記録し、空き物理ブロックテーブルに登録され情報が記録された物理ブロックの物理ブロック番号と情報の書き込みが指定された論理ブロック番号に関連付けられて登録された物理ブロック番号とを入れ替えるものである。【選択図】図７
2008123314.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域を複数の物理ブロックに分割し、当該物理ブロックごとに情報の書き換えを行う半導体記憶装置の情報記録方法であって、
前記物理ブロックは、それぞれ
情報が消去された回数を示す消去回数情報と、
前記物理ブロックに関連付けされた論理ブロックを特定する論理ブロック番号とを有し、
外部装置からのアクセス単位である前記論理ブロック番号と論理ブロックに関連付けされた物理ブロックの物理ブロック番号とが関連付けて登録される論理物理変換テーブルと、
論理ブロックに関連付けされていない物理ブロックの前記物理ブロック番号が登録される空き物理ブロックテーブルとを作成し、
所定の論理ブロック番号に対して情報の書き込みが指定された場合に、前記空き物理ブロックテーブルに登録された物理ブロックのうち消去回数が最も少ない物理ブロックを検索し、
当該最も消去回数が少ない物理ブロックに情報を記録し、
前記空き物理ブロックテーブルに登録され情報が記録された物理ブロックの物理ブロック番号と情報の書き込みが指定された論理ブロック番号に関連付けて登録された物理ブロックの物理ブロック番号とを入れ替えることを特徴とする半導体記憶装置の情報記録方法。
【請求項２】
前記論理物理変換テーブル及び空き物理ブロックテーブルは、前記半導体記憶装置の起動時に作成されることを特徴とする請求項１に記載の半導体記憶装置の情報記録方法。
【請求項３】
前記情報の書き込みが指定された論理ブロック番号に関連付けて登録された物理ブロックは、記録されていた情報が消去され、前記消去回数情報の値が１つ増加されることを特徴とする請求項１に記載の半導体記憶装置の情報記録方法。
【請求項４】
前記論理物理変換テーブル及び空き物理ブロックテーブルは、前記物理ブロックが形成される記憶領域とは異なる領域に形成される記憶領域に記録されることを特徴とする請求項１に記載の半導体記憶装置の情報記録方法。
【請求項５】
前記半導体記憶装置は、抜き差し可能な記録媒体であることを特徴とする請求項１に記載の半導体記憶装置の情報記録方法。
【請求項６】
記憶領域を複数の物理ブロックに分割し、当該物理ブロックごとに情報の書き換えを行う半導体記憶装置の情報記録システムであって、
外部装置からのアクセス単位である論理ブロック番号と論理ブロックに関連付けされた物理ブロックの物理ブロック番号とが関連付けて登録される論理物理変換テーブルと、論理ブロックに関連付けされていない物理ブロックの物理ブロック番号が登録される空き物理ブロックテーブルとを作成するテーブル作成手段と、
所定の論理ブロック番号に対して情報の書き込みが指定された場合に、前記空き物理ブロックテーブルに登録された物理ブロックのうち消去回数が最も少ない物理ブロックを検索する検索手段と、
当該検索手段によって検索された最も消去回数が少ない物理ブロックに情報を記録する記録物理ブロック選択手段と、
前記空き物理ブロックテーブルに登録された情報が記録された物理ブロックの物理ブロック番号と情報の書き込みが指定された論理ブロック番号に関連付けて登録された物理ブロックの物理ブロック番号とを入れ替えるテーブル情報入れ替え手段とを有することを特徴とする半導体記憶装置の情報記録システム。
【請求項７】
前記テーブル作成手段、検索手段、記録物理ブロック選択手段、及びテーブル情報入れ替え手段は、前記記憶領域とは異なる記憶領域に記録されたプログラムに基づき処理実行部がそれぞれの処理を行うことで実現されることを特徴とする請求項６に記載の半導体記録装置の情報記録システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置への情報記録方法及び情報記録システムに関し、特に物理ブロックに記録されたデータの消去回数に制限を有する半導体記憶装置への情報記録方法及び情報記録システムに関する。
【背景技術】
【０００２】
近年、ＰＣ（Personal Computer）や携帯端末などの機器（以下場合に応じてホストコンピュータと称す）間での情報の受け渡し等の用途で抜き差し可能な記憶媒体が用いられる。このような記憶媒体として、携帯型メモリカードが多く利用されている。携帯型メモリカードでは、一般的にフラッシュメモリと呼ばれる書き換え可能な半導体記憶装置が用いられる。ホストコンピュータは、論理ブロック単位で携帯型メモリカードへのアクセスを行う。また、このフラッシュメモリは、複数の物理ブロックを有し、物理ブロック単位で情報の記憶あるいは消去が行われる。そして、ホストコンピュータあるいは携帯型メモリカードは、論理ブロックの番号とそれに対応した物理ブロックの番号とを変換しながら、情報の書き込みあるいは読み出しを行う。
【０００３】
しかしながら、フラッシュメモリは、物理ブロック上に記録された情報を消去する回数に上限値が設けられている。そして、消去回数が上限値を上回るとその物理ブロックは使用不可能になる。従って、このような携帯型メモリカードでは、ある物理ブロックに対する消去回数のみが上限値に達した場合、他の物理ブロックは使用可能であるにもかかわらず携帯型メモリカードが使用できなくなる問題がある。この問題は、ある物理ブロックへの情報の書き換え頻度が他の物理ブロックへの書き換え頻度よりも極端に多くなった場合、大きな問題となる。
【０００４】
そこで、このような携帯型メモリカードにおいて物理ブロックに対する使用回数の制限を緩和する技術が特許文献１、２に開示されている。以下では、特許文献１に開示される内容を従来例１と称し、特許文献２に開示される内容を従来例２と称す。
【０００５】
従来例１の携帯型メモリカードシステムのブロック図を図１１に示す。図１１に示すように、従来例１の携帯型メモリカードシステムは、ホームマシン１００と携帯端末２００とによって構成される。そして、ホームマシン１００と携帯端末２００とは、共に携帯型メモリカード３００の抜き差しが可能な装置である。従来例１では、ホームマシン１００が携帯型メモリカード３００の物理ブロック（例えば、セクタ）毎の消去回数情報を含むカード管理情報を有している。そして、携帯端末２００に携帯型メモリカード３００が挿入されると、ホームマシン１００は、通信手段を用いてカード管理情報を携帯端末に送信する。携帯端末２００は、受信したカード管理情報に基づき携帯型メモリカードに記録されたファイルの再配置処理を行う。これによって、携帯端末２００は、所定のセクタへの情報の書き換えが集中しないように携帯型メモリカードへのアクセスを行う。
【０００６】
ここで、このファイル再配置処理のフローチャートを図１２に示し、従来例１のファイル再配置処理について説明する。図１２に示すように、携帯端末２００は、カード管理情報に基づき、情報の書き込まれていない空セクタの中で消去回数が規定値以上であって、消去回数が最小のセクタを検索する（ステップＳ１０１）。続いて、情報が書き込まれている使用中セクタの中で消去回数が最小のセクタを検索する（ステップＳ１０２）。そして、ステップＳ１０２で検索されたセクタの消去回数が規定値以上か否かを判断する（ステップＳ１０３）。
【０００７】
このステップＳ１０３で、ステップＳ１０２で検索されたセクタの消去回数が規定値以下であった場合、ステップＳ１０２で検索されたセクタの情報をステップＳ１０１で検索されたセクタにコピーする（ステップＳ１０４）。その後、ステップＳ１０２で検索されたセクタの消去回数のカウントアップと、情報の消去が行われる（ステップＳ１０５、Ｓ１０６）。
【０００８】
従来例１の携帯型メモリカードシステムでは、上記ファイル再配置処理を行うことで、あるセクタの消去回数が増加した場合に、そのセクタに書き換え頻度の低い情報を記録する。このファイル再配置処理によって、消去回数の多いセクタの消去回数の増加速度が低下することが期待できる。つまり、従来例１では、消去回数の多いセクタの消去回数の増加速度を低下させることで、携帯型メモリカードの使用回数制限を緩和する。
【０００９】
また、従来例２に開示されているフラッシュメモリへのデータ記録制御方法について説明する。従来例２に示されているフラッシュメモリへのデータ記録制御方法の概略図を図１３、図１４に示す。図１３の概略図は、フラッシュメモリへ書き込まれるデータの流れを示している。また、図１４の概略図は、データ書き込み後の物理ブロックの状態を示している。
【００１０】
図１３に示すように、従来例２では、物理ブロックを消去回数が多い物理ブロックグループと消去回数が少ない物理ブロックグループとに分類する。また、論理ブロックについても、ライト命令を受信する回数（以下、ライト回数と称す）が多い論理ブロックとライト回数が少ない論理ブロックとに分類する。
【００１１】
そして、ライト回数が多い論理ブロックに物理ブロックＣに記録されているデータＡをデータＣで上書きするライト命令を受信した場合、消去回数が少ない物理ブロックグループ内のデータが書き込まれていない物理ブロックＢにデータＣを書き込む。また、消去回数が少ない物理ブロックグループの物理ブロックＡに書き込まれているデータＢを消去回数が多い物理ブロックグループ内のデータが書き込まれていない物理ブロックＤにコピーする。その後、データの重複等を解消するために、不必要なデータを有する物理ブロックのデータは消去される（図１４参照）。
【００１２】
図１４に示すように、消去回数が少ない物理ブロックグループ内の物理ブロックＡ及び物理ブロックＣに記録されているデータは消去される。そして、物理ブロックＡ及び物理ブロックＣは、空き物理ブロックとなり、それぞれのグループにおいて空き物理ブロックとして登録される。
【００１３】
従来例２のデータ記録制御方法は、ライト回数が多い論理ブロックは、消去回数が少ない物理ブロックグループに属する物理ブロックにデータを書き込む。このとき、消去回数が少ない物理ブロックグループに属する物理ブロックに記録されているデータは、消去回数が多い物理ブロックグループに属する物理ブロックにコピーされる。一方、ライト回数が少ない論理ブロックは、消去回数が多い物理ブロックグループに属する物理ブロックにデータを書き込む。このとき、消去回数が多い物理ブロックグループに属する物理ブロックに記録されているデータは、消去回数が少ない物理ブロックグループに属する物理ブロックにコピーされる。
【００１４】
つまり、従来例２では、論理ブロックのライト回数と物理ブロックの消去回数とに基づき物理ブロックの消去回数を平均化する。このような制御を行うことで、従来例２では、フラッシュメモリの使用回数制限を緩和する。
【特許文献１】特開平８−６３５５９号公報
【特許文献２】特開平８−１６４８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来例１、２は、論理ブロックと物理ブロックとの関係を制御しているのみであって、例えば、ライト回数が少ない論理ブロックには少ないながらもライト命令が送られる。従って、消去回数が多い物理ブロックは、速度は遅いながらも消去回数が増加する。また、ライト回数が多い論理ブロックに対するライト回数がライト回数が少ない論理ブロックに対するライト回数よりも極端に多い場合、消去回数が少ない物理ブロックの消去回数がいずれ消去回数が多い物理ブロックの消去回数を上回ってしまう場合がある。つまり、従来例１、２によっても、このようなアクセス状況が発生した場合、使用回数の制限に関してフラッシュメモリを効率よく使用することができない問題がある。
【課題を解決するための手段】
【００１６】
本発明にかかる情報記録方法は、記憶領域を複数の物理ブロックに分割し、当該物理ブロックごとに情報の書き換えを行う半導体記憶装置の情報記録方法であって、前記物理ブロックは、それぞれ情報が消去された回数を示す消去回数情報と、前記物理ブロックに関連付けされた論理ブロックを特定する論理ブロック番号とを有し、外部装置からのアクセス単位である前記論理ブロック番号と論理ブロックに関連付けされた物理ブロックの物理ブロック番号とが関連付けて登録される論理物理変換テーブルと、論理ブロックに関連付けされてない物理ブロックの前記物理ブロック番号が登録される空き物理ブロックテーブルとを作成し、所定の論理ブロック番号に対して情報の書き込みが指定された場合に、前記空き物理ブロックテーブルに登録された物理ブロックのうち消去回数が最も少ない物理ブロックを検索し、当該最も消去回数が少ない物理ブロックに情報を記録し、前記空き物理ブロックテーブルに登録され情報が記録された物理ブロックの物理ブロック番号と情報の書き込みが指定された論理ブロック番号に関連付けて登録された物理ブロックの物理ブロック番号とを入れ替えることを特徴とするものである。
【００１７】
また、本発明にかかる情報記録システムは、記憶領域を複数の物理ブロックに分割し、当該物理ブロックごとに情報の書き換えを行う半導体記憶装置の情報記録システムであって、外部装置からのアクセス単位である論理ブロック番号と論理ブロックに関連付けされた物理ブロックの物理ブロック番号とが関連付けて登録される論理物理変換テーブルと、論理ブロックに関連付けされていない物理ブロックの物理ブロック番号が登録される空き物理ブロックテーブルとを作成するテーブル作成手段と、所定の論理ブロック番号に対して情報の書き込みが指定された場合に、前記空き物理ブロックテーブルに登録された物理ブロックのうち消去回数が最も少ない物理ブロックを検索する検索手段と、当該検索手段によって検索された最も消去回数が少ない物理ブロックに情報を記録する記録物理ブロック選択手段と、前記空き物理ブロックテーブルに登録された情報が記録された物理ブロックの物理ブロック番号と情報の書き込みが指定された論理ブロック番号に関連付けて登録された物理ブロックの物理ブロック番号とを入れ替えるテーブル情報入れ替え手段とを有することを特徴とするものである。
【００１８】
本発明にかかる情報記録方法及び情報記録システムによれば、空き物理ブロックテーブルに登録された物理ブロックのうち消去回数が最も少ない物理ブロックに情報を記録し、この物理ブロックと論理物理変換テーブルに登録された物理ブロックとを入れ替える。これによって、複数の物理ブロックの消去回数は、全体に亘り均一的に増加するため、半導体記憶装置の消去回数の制限内において効率よく物理ブロックを使用することが可能である。
【発明の効果】
【００１９】
本発明にかかる情報記録方法及び情報記録システムによれば、消去回数に制限のある半導体記憶装置の寿命を延ばすことが可能である。
【発明を実施するための最良の形態】
【００２０】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかる情報記録システムのブロック図の一例を図１に示す。図１に示すように、本実施の形態にかかる情報記録システムは、外部装置（例えば、ホストコンピュータ１）と携帯型メモリカード２とを有する。ホストコンピュータ１は、例えばＰＣや携帯端末である。携帯型メモリカード２は、情報が記録される半導体記憶装置であって、例えば記憶領域としてフラッシュメモリを有している。また、携帯型メモリカード２は、ＰＣや携帯端末に抜き差し可能な記録媒体である。
【００２１】
携帯型メモリカード２には、ホストコンピュータ１から論理ブロック単位でアクセスされる方式のものと、物理ブロック単位でアクセスされる方式のものがある。論理ブロックとは、ホストコンピュータから見たアクセス単位である。また、物理ブロックとは、例えばフラッシュメモリ等において、情報の記録あるいは消去を行う単位であって、フラッシュメモリにおいて規定されるアクセス単位である。本実施の形態では、携帯型メモリカード２の一例として、ホストコンピュータ１から論理ブロック単位でアクセスされる方式の携帯型メモリカードについて説明する。
【００２２】
携帯型メモリカード２は、インタフェース制御部１０、フラッシュメモリ２０、メモリ制御部３０を有している。インタフェース制御部１０は、ホストコンピュータ１と携帯型メモリカード２とを接続し、各種命令及びデータの送受信を行う。フラッシュメモリ２０は、複数の物理ブロックを有する情報の記憶領域である。このフラッシュメモリ２０の概略図を図２に示す。
【００２３】
図２に示すように、フラッシュメモリ２０は、複数の物理ブロックを有している。そして、それぞれの物理ブロックは、管理情報とブロックデータ領域を有している。管理情報には、例えば管理フラグ、論理ブロック番号Ｌ、消去回数Ｎが含まれる。管理フラグはブロックデータ領域が現在どのような状況にあるかが示される。例えば、情報の更新中、記録済み、空状態等の状態が管理フラグに示される。論理ブロック番号Ｌは、物理ブロックが関連付けされている論理ブロックの番号である。消去回数Ｎは、物理ブロックのブロックデータが何回消去されたかをカウントするカウント値である。ブロックデータ領域は、物理ブロックに記録される情報の記憶領域である。
【００２４】
メモリ制御部３０は、ホストコンピュータ１からフラッシュメモリへのアクセスを制御する。そして、この制御を行うためにメモリ制御部３０は、処理実行部４０、ＲＡＭ(Random Access Memory)５０、ＲＯＭ(Read Only Memory)６０を有している。
【００２５】
処理実行部４０は、例えばＣＰＵ(Central Processing Unit)等の演算装置である。そして、ＲＯＭ６０に格納されたプログラムに基づきフラッシュメモリ２０へのアクセスを制御するための各種処理手段を実現する。本実施の形態では、処理実行部４０は、テーブル作成手段４１、検索手段４２、記録物理ブロック選択手段４３、テーブル入れ替え手段４４を実現する。これらの手段の詳細は後述する。
【００２６】
ＲＡＭ５０は、例えば携帯型メモリカード２がホストコンピュータ１と接続される期間の間情報を保持する記憶領域である。本実施の形態では、ＲＡＭ５０には、論理物理変換テーブル５１、空き物理ブロックテーブル５２が記録される。論理物理変換テーブル５１は、例えば図３に示すようなテーブルである。図３に示すように、論理物理変換テーブル５１は、論理ブロック番号と物理ブロック番号とを関連付けるテーブルである。そして、論理物理変換テーブル５１は、物理ブロックの情報として、物理ブロック番号Ｐとその物理ブロックの消去回数Ｎの情報を有している。登録される物理ブロック番号Ｐとその物理ブロックの消去回数Ｎを以降では場合に応じて登録情報と称す。なお、この論理物理変換テーブル５１には、論理ブロックに関連付けされている物理ブロックが登録される。
【００２７】
空き物理ブロックテーブル５２は、例えば図４に示すようなテーブルである。図４に示すように、空き物理ブロックテーブル５２の行番号を示す空きブロック番号を有している。そして、空き物理ブロックテーブル５２には、論理ブロックに関連付けされていない物理ブロックの物理ブロック番号Ｐ及び消去回数Ｎと空きブロック番号とが関連付けられて登録される。
【００２８】
ＲＯＭ６０は、例えば不揮発性メモリであって、処理実行部４０で使用されるプログラムが格納される。本実施の形態では、テーブル作成プログラム６１、検索プログラム６２、記録物理ブロック選択プログラム６３、テーブル情報入れ替えプログラム６４が格納される。これらのプログラムの詳細については後述する。
【００２９】
本実施の形態の携帯型メモリカード２は、ホストコンピュータ１に挿入され、電源の供給が開始されると、論理物理変換テーブルと空き物理ブロックテーブルとを作成する。そして、ホストコンピュータ１は、この論理物理変換テーブルと空き物理ブロックテーブルとに基づき情報の記録及び読み出しを行う。以下にこれらの動作について詳細に説明する。
【００３０】
まず、論理物理変換テーブル及び空き物理ブロックテーブルの作成手順を示すフローチャートを図５に示す。論理物理変換テーブル及び空き物理ブロックテーブルは、処理実行部４０がＲＯＭ６０に格納されるテーブル作成プログラム６１に基づきテーブル作成手段４１を実行させることで作成される。また、作成された論理物理変換テーブル及び空き物理ブロックテーブルは、ＲＡＭ５０に格納される。
【００３１】
図５に示すフローチャートを参照して論理物理変換テーブル及び空き物理ブロックテーブルの作成手順について説明する。携帯型メモリカード２がホストコンピュータ１に挿入され、携帯型メモリカード２に対して電源の供給が開始され、携帯型メモリカード２が起動するとこの処理が開始される。処理が開始されると、まず、論理物理変換テーブルＬＰＴａｂｌｅ［］及び空き物理ブロックテーブルＦＴａｂｌｅ［］の初期化が行われる（ステップＳ１）。続いて、処理において用いられる各種ポインタ及び変数の初期化が行われる。例えば、物理ブロック番号Ｐ＝０、空き物理ブロックテーブルのポインタｎｕｍＦ＝０、最小消去回数ｍｉｎＮ＝最大値とする（ステップＳ２）。その後、物理ブロック番号Ｐの物理ブロック（以下、物理ブロックＰと称す）の管理情報が読み出される。読み出された管理情報に基づき、論理ブロック番号Ｌ＝物理ブロックＰの論理ブロック番号Ｌ、消去回数Ｎ＝物理ブロックＰの消去回数Ｎとする（ステップＳ３）。
【００３２】
次に、物理ブロックＰの消去回数Ｎが最小消去回数ｍｉｎＮより小さいか否かを判断する（ステップＳ４）。ステップＳ４において、物理ブロックＰの消去回数Ｎが最小消去回数ｍｉｎＮよりも小さいことが判明した場合、最小消去回数ｍｉｎＮ＝物理ブロックＰの消去回数Ｎとする（ステップＳ５）。その後、ステップＳ６に進む。一方、物理ブロックＰの消去回数Ｎが最小消去回数ｍｉｎＮよりも大きいことが判明した場合、そのままステップＳ６に進む。
【００３３】
ステップＳ６では、物理ブロックＰが論理ブロックＬに関連付けされているか否かを判断する。以下の説明では、場合に応じて論理ブロックに関連付けされていない物理ブロックを空き物理ブロックと称す。ステップＳ６で、物理ブロックＰが論理ブロックＬに関連付けされていることが判明した場合、論理物理変換テーブルＬＰＴａｂｌｅ［Ｌ］に物理ブロックＰの物理ブロック番号Ｐと消去回数Ｎを登録する（ステップＳ７）。一方、物理ブロックＰが空き物理ブロックであった場合、空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］に物理ブロックＰの物理ブロック番号Ｐと消去回数Ｎを登録する。また、空き物理ブロックテーブルのポインタｎｕｍＦの値を１つ加算する（ステップＳ８）。
【００３４】
ステップＳ７あるいはステップＳ８を実行した後に、物理ブロックＰの物理ブロック番号Ｐが物理ブロックの最終番号か否かを判断する（ステップＳ９）。ステップＳ９において最終ブロックでない場合、ステップＳ１０において読み出す物理ブロックの物理ブロック番号を１つ加算し、ステップＳ３に戻る。一方、ステップＳ９において物理ブロックＰが最終ブロックとされた場合、ステップＳ１〜Ｓ９において作成された論理物理変換テーブル及び空き物理ブロックテーブルに登録された情報を消去回数に基づき並べ替える（ステップＳ１１）。この並べ替え処理によって最終的な論理物理変換テーブル及び空き物理ブロックテーブルが作成される。その後、この論理物理変換テーブル及び空き物理ブロックテーブルに基づきホストコンピュータ１から物理ブロックへのアクセスが行われる。
【００３５】
ここで、ステップＳ１１の並べ替え処理について詳細に説明する。並べ替え処理のフローチャートを図６に示し、このフローチャートを参照して、並べ替え処理について説明する。図６に示すように、並べ替え処理が開始されると、各種ポインタ及び変数が初期化される。例えば、論理物理変換テーブルのポインタｎｕｍＬＰ＝０、空き物理ブロックテーブルのポインタｎｕｍＦ＝０とされる（ステップＳ１２）。続いて、空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎが最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮを加えた値よりも小さいか否かが判断される（ステップＳ１３）。
【００３６】
ステップＳ１３で、空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］に登録されている消去回数Ｎが最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮを加えた値よりも小さいことが判明した場合、空き物理ブロックテーブルの次のポインタで指定される物理ブロックの処理に移行するためにステップＳ２３に進む。一方、空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎが最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮを加えた値よりも大きいことが判明した場合、ステップＳ１４に進む。
【００３７】
ステップＳ１４では、論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている消去回数Ｎが最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮを加えた値よりも小さいか否かを判断する。ステップＳ１４で論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている消去回数Ｎが最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮを加えた値よりも大きいことが判明した場合、論理物理変換テーブルのポインタｎｕｍＬＰの値を１つ増加させる（ステップＳ１５）。そして、この論理物理変換テーブルのポインタｎｕｍＬＰがｎｕｍＬＰの最終値よりも大きいか否かを判断する（ステップＳ１６）。ステップＳ１６で論理物理変換テーブルのポインタｎｕｍＬＰがｎｕｍＬＰの最終値よりも小さいことが判明した場合、ステップＳ１５で更新されたポインタｎｕｍＬＰに基づきステップＳ１４の処理を行う。また、ステップＳ１６で論理物理変換テーブルのポインタｎｕｍＬＰがｎｕｍＬＰの最終値よりも大きいことが判明した場合、ステップＳ１７において、最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮが加算される。これによって、最小消去回数ｍｉｎＮは更新される。また、ポインタｎｕｍＬＰは値が"０"とされる。このステップＳ１７の処理が完了すると、処理はステップＳ１３に戻る。
【００３８】
一方、ステップＳ１４で論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている消去回数Ｎが最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮを加えた値よりも小さいことが判明した場合、ステップＳ１８に進む。ステップＳ１８では、論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている物理ブロック番号に対応する物理ブロックの管理フラグを"更新中"とする。続いて、ステップＳ１９で、論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている物理ブロック番号に対応する物理ブロックに記録されている情報を空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］に登録されている物理ブロック番号に対応した物理ブロックにコピーする。次に、論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている物理ブロック番号に対応する物理ブロックに記録されている情報を消去し、この物理ブロックの消去回数Ｎを１つ加算し、管理フラグを"更新済み"とする（ステップＳ２０）。そして、論理物理変換テーブルＬＰＴａｂｌｅ［ｎｕｍＬＰ］に登録されている登録情報と、空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］に登録されている登録情報とを入れ替える（ステップＳ２１）。
【００３９】
ステップＳ２１の処理が終了すると、ポインタｎｕｍＬＰの値は１つ加算される（ステップＳ２２）。その後、ポインタｎｕｍＦの値が１つ加算される（ステップＳ２３）。そしてステップＳ２３で更新されたポインタｎｕｍＦがポインタｎｕｍＦの最終値であるか否かが判断される（ステップＳ２４）。ステップＳ２４でポインタｎｕｍＦがポインタｎｕｍＦの最終値よりも大きいことが判明した場合、並べ替え処理は終了する。一方、ステップＳ２４でポインタｎｕｍＦがポインタｎｕｍＦの最終値よりも小さいことが判明した場合、ステップＳ２５に進む。ステップＳ２５では、ステップＳ２２で更新されたポインタｎｕｍＬＰの値がポインタｎｕｍＬＰの最終値であるか否かが判断される。ステップＳ２５でポインタｎｕｍＬＰの値がポインタｎｕｍＬＰの最終値よりも小さいことが判明した場合、ステップＳ１３に戻る。一方、ステップＳ２５でポインタｎｕｍＬＰの値がポインタｎｕｍＬＰの最終値よりも大きいことが判明した場合、最小消去回数ｍｉｎＮに消去回数の閾値ａｄｄＮが加算される。これによって、最小消去回数ｍｉｎＮは更新される。また、ポインタｎｕｍＬＰは値が"０"とされる（ステップＳ２６）。このステップＳ２６の処理が完了すると、処理はステップＳ１３に戻る。
【００４０】
このような並べ替え処理によって、空き物理ブロックテーブルには消去回数が少ない空き物理ブロックが集められる。また、集められた空き物理ブロックの消去回数は、最小消去回数ｍｉｎＮに対して所定の範囲内の値となる。一方、論理物理変換テーブルに登録される物理ブロックの消去回数は、空き物理ブロックテーブルに登録される物理ブロックの消去回数よりも多くなる。
【００４１】
次に、論理物理変換テーブル及び空き物理ブロックテーブルに基づいて行われる書き込み処理について説明する。この書き込み処理では、処理実行部４０がＲＯＭ６０の検索プログラム６２、記録物理ブロック選択プログラム６３、テーブル情報入れ替えプログラム６４を読み出し、検索手段４２、記録物理ブロック選択手段４３、テーブル情報入れ替え手段４４を実行することで行われる。
【００４２】
書き込み処理のフローチャートを図７に示し、このフローチャートを参照して書き込み処理について説明する。書き込み処理が開始されると、まずホストコンピュータ１から論理ブロック番号Ｌに対して書き込み指示が送信される（ステップＳ３０）。この書き込み指示に従って記録物理ブロック選択手段４３が論理物理変換テーブルＬＰＴａｂｌｅ［Ｌ］に登録される物理ブロックＰ０の管理フラグを"更新中"とする（ステップＳ３１）。続いて、検索手段４２が空き物理ブロックテーブルに登録されている物理ブロックのうち最も消去回数が少ないものを検索する（ステップＳ３２）。
【００４３】
次に、記録物理ブロック選択手段４３は、検索手段４２によって検索された最小消去回数を有する空き物理ブロックテーブルＦＴａｂｌｅ［ｍｉｎＦ］に登録されている物理ブロックＰ１に、論理ブロック番号Ｌに対して書き込まれる情報を書き込む（ステップＳ３３）。そして、テーブル情報入れ替え手段４４は、物理ブロックＰ０に記録されている情報を消去し、物理ブロックＰ０の消去回数に１を加算し、物理ブロックＰ０の管理フラグを"更新済み"とする（ステップＳ３４）。その後、テーブル情報入れ替え手段４４は、上記処理によって変更されたテーブルに関して、論理物理変換テーブルの登録情報と空き物理ブロックテーブルの登録情報との入れ替えを実行する（ステップＳ３５）。
【００４４】
ここで、ステップＳ３２の検索処理についてさらに詳細に説明する。検索処理のフローチャートを図８に示し、このフローチャートを参照して検索処理について説明する。図８に示すように検索処理が開始されると、各種ポインタ及び変数が初期化される。例えば、空き物理ブロックテーブルのポインタｎｕｍＦ＝０、最小の消去回数を有する物理ブロックが登録されている空き物理ブロックテーブルのポインタｍｉｎＦ＝０とする（ステップＳ４０）。次に、消去回数Ｎ＝空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎとする（ステップＳ４１）。
【００４５】
続いて、消去回数Ｎが空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎよりも大きいか否かが判断される（ステップＳ４２）。ステップＳ４２で、消去回数Ｎが空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎよりも大きいことが判明した場合、ステップＳ４４に進む。一方、消去回数Ｎが空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎよりも小さいことが判明した場合、それまでの消去回数Ｎを空き物理ブロックテーブルＦＴａｂｌｅ［ｎｕｍＦ］の消去回数Ｎで更新する。さらに、このステップでは、最小消去回数を示すポインタｍｉｎＦにこのときのポインタｎｕｍＦの値を代入する（ステップＳ４３）。その後、ステップＳ４４に進む。
【００４６】
ステップＳ４４では、ポインタｎｕｍＦに１を加えることで、ポインタｎｕｍＦの値を更新する。そして、更新されたポインタｎｕｍＦが最終値よりも大きいか否かを判断する（ステップＳ４５）。このステップＳ４５において、ポインタｎｕｍＦが最終値よりも大きいことが判明した場合、検索処理を終了する。一方、ポインタｎｕｍＦが最終値よりも小さいことが判明した場合、ステップＳ４２の処理に戻る。
【００４７】
また、ホストコンピュータ１が携帯型メモリカード２から情報を読み出す場合について説明する。この場合、ホストコンピュータ１は、論理ブロック番号を指定して情報を読み出す。そして携帯型メモリカード２は、論理物理変換テーブルに従って、指定された情報が記録される物理ブロックを特定し、特定された物理ブロックに記録されている情報をホストコンピュータ１に返信する。
【００４８】
上記説明より、本実施の形態にかかる情報記録方法及び情報記録システムによれば、論理ブロックに関連付けされた物理ブロックが登録される論理物理変換テーブルと、空き物理ブロックであって論理物理変換テーブルに登録される物理ブロックよりも消去回数が少ない物理ブロックが登録される空き物理ブロックテーブルとを作成する。このテーブルの作成は、携帯型メモリカード２への電源投入時に毎回行われる。そして、物理ブロックに情報を記録する場合には、空き物理ブロックテーブルに登録された物理ブロックに対して書き込みを行う。その後、論理物理変換テーブル上の書き込み指示のあった論理ブロック番号に登録された物理ブロックの登録情報と空き物理ブロックテーブルにおいて情報が書き込まれた物理ブロックの登録情報とを入れ替える。
【００４９】
つまり、書き込み処理は、空き物理ブロックテーブルに登録された物理ブロックのうち消去回数が最も少ないものに対して行われる。また、携帯型メモリカード２への電源投入時にその状態において消去回数が少ない物理ブロックが空き物理ブロックテーブルに集められる。これによって、論理物理変換テーブル上に消去回数の少ない物理ブロックが登録され続けることがない。
【００５０】
このような処理を行うことで、ある特定の物理ブロックに書き込み又は消去の処理が集中することを防止することができる。つまり、フラッシュメモリ内の消去回数の増加は均一的なものとなる。従って、ある特定の物理ブロックへの消去回数が極端に上昇してこの物理ブロックの消去回数のみが上限に達することで、携帯型メモリカード２の使用寿命を縮めることはない。
【００５１】
ここで、携帯型メモリカードの使用回数と消去回数の関係について一例を示し説明する。本実施の形態における消去回数と使用回数との関係を示すグラフを図９に示す。また、対比のために、従来例２における消去回数と使用回数との関係を示すグラフを図１０に示す。図９に示すように、本実施の形態における各物理ブロックの消去回数は、使用回数の増加とともに均一的になっている。そして、消去回数がほぼ均一になった後は、各物理ブロック間の消去回数の差はほぼ変化しない状態で消去回数が増加する。
【００５２】
一方、従来例２にかかる消去回数は、消去回数が少ない物理ブロックグループの消去回数と消去回数が多い物理ブロックグループの消去回数との差が使用回数の増加とともに減少する。しかしながら、ライト回数が多い論理ブロックへの書き込み命令の頻度がライト回数が少ない論理ブロックへの書き込み命令の頻度よりも極端に多い場合、この２つのグループの消去回数の関係が逆転することが考えられる。このような状況が発生した場合、従来例２にかかる情報記録方法では、消去回数に制限のある携帯型メモリカード２を効率的に使用できない問題がある。
【００５３】
つまり、本実施の形態にかかる情報記録方法及び情報記録システムは、論理ブロックへのアクセス状況に関係なく物理ブロックの消去回数を均一にすることが可能である。そのため、消去回数に制限のある携帯型メモリカード２を効率的に使用可能であり、携帯型メモリカード２の寿命を延ばすことが可能である。
【００５４】
その他の実施の形態
上記実施の形態では、メモリ制御部３０は携帯型メモリカード２に搭載されていたが、これはホストコンピュータ１側に搭載されていてもかまわない。この場合、ホストコンピュータ１から携帯型メモリカード２へは物理ブロック単位でアクセスを行うこととなる。このように、ホストコンピュータ１側にメモリ制御部を搭載した場合、特定の携帯型メモリカードのみならず、ホストコンピュータ１に挿入されるすべての携帯型メモリカードの寿命を延ばすことが可能である。
【００５５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、メモリ制御部の構成は、上記実施の形態に限らず、その機能を実現するために適宜変更することが可能である。
【図面の簡単な説明】
【００５６】
【図１】実施の形態１にかかる情報記録システムのブロック図である。
【図２】実施の形態１にかかるフラッシュメモリの概略図である。
【図３】実施の形態１にかかる論理物理変換テーブルの概略図である。
【図４】実施の形態１にかかる空き物理ブロックテーブルの概略図である。
【図５】実施の形態１にかかる論理物理変換テーブル及び空き物理ブロックテーブルの作成手順を示すフローチャートである。
【図６】実施の形態１にかかる論理物理変換テーブル及び空き物理ブロックテーブルの消去回数による並べ替え処理の手順を示すフローチャートである。
【図７】実施の形態１にかかる書き込み処理の手順を示すフローチャートである。
【図８】実施の形態１にかかる検索処理の手順を示すフローチャートである。
【図９】実施の形態１における消去回数と使用回数との関係を示すグラフである。
【図１０】従来例２における消去回数と使用回数との関係を示すグラフである。
【図１１】従来例１の携帯型メモリカードシステムのブロック図である。
【図１２】従来例１の携帯型メモリカードシステムにおけるファイル再配置処理のフローチャートである。
【図１３】従来例２の情報記録システムにおける書き込み処理の概略図である。
【図１４】従来例２の情報記録システムにおける書き込み処理実行後の状態を示す概略図である。
【符号の説明】
【００５７】
１    ホストコンピュータ
２    携帯型メモリカード
１０    インタフェース制御部
２０    フラッシュメモリ
３０    メモリ制御部
４０    処理実行部
４１    テーブル作成手段
４２    検索手段
４３    記録物理ブロック選択手段
４４    テーブル情報入れ替え手段
５０    ＲＡＭ
５１    論理物理変換テーブル
５２    空き物理ブロックテーブル
６０    ＲＯＭ
６１    テーブル作成プログラム
６２    検索プログラム
６３    記録物理ブロック選択プログラム
６４    テーブル情報入れ替えプログラム
【図１】
2008123314.tif 000003
【図２】
2008123314.tif 000004
【図３】
2008123314.tif 000005
【図４】
2008123314.tif 000006
【図５】
2008123314.tif 000007
【図６】
2008123314.tif 000008
【図７】
2008123314.tif 000009
【図８】
2008123314.tif 000010
【図９】
2008123314.tif 000011
【図１０】
2008123314.tif 000012
【図１１】
2008123314.tif 000013
【図１２】
2008123314.tif 000014
【図１３】
2008123314.tif 000015
【図１４】
2008123314.tif 000016