(57)【要約】  書き込みコマンドが与えられた場合に不揮発性メモリ１１０内の空き物理ブロックに新しいデータを書き込む。このとき既に同一の論理ブロックのデータが書き込まれている場合にはそのブロックを消去すると共に、記録状態判定部１２６により記録状態を判定し、書き込み回数により物理ブロックのスワップを行う。こうすれば特定の領域だけが書き換え回数が増加することがなく効果的にスワップを行い、不揮発性記憶モジュールを長寿命化することができる。
2009063614.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、
少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、
前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、
データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備するメモリコントローラ。
【請求項２】
前記記録状態判定部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数に基づいてスワップ要否判定を行う請求項１記載のメモリコントローラ。
【請求項３】
前記記録状態判定部は、前記書き換え回数の最大値と、平均値及び最小値のいずれか一方とに基づいてスワップの要否を判定する請求項２記載のメモリコントローラ。
【請求項４】
前記読み書き制御部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数に基づいてスワップ対象領域を決定する請求項１に記載のメモリコントローラ。
【請求項５】
前記読み書き制御部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数及びその物理ブロックが空き物理ブロックかどうかによってスワップ対象領域を決定する請求項１に記載のメモリコントローラ。
【請求項６】
前記メモリコントローラは、前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部を更に備えた請求項１に記載のメモリコントローラ。
【請求項７】
外部から指定されたシステム条件を受信するシステム条件受信部と、
前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、
前記読み書き制御部は、データの読み書き制御を行うと共に、前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行う請求項１に記載のメモリコントローラ。
【請求項８】
前記システム条件は、アクセス速度に係る要求条件、電力に係る要求条件、及び寿命対策に係る要求条件、の少なくとも１つである請求項７記載のメモリコントローラ。
【請求項９】
前記システム条件判定部は、システム条件に基づいてスワップ数を決定する請求項７記載のメモリコントローラ。
【請求項１０】
前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、
前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行う請求項７記載のメモリコントローラ。
【請求項１１】
前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、
前記システム条件判定部は、前記不揮発性記憶モジュールの種別に応じてスワップ可否の判定を行う請求項７記載のメモリコントローラ。
【請求項１２】
外部からのアクセス指示に応じてデータの読み出し、書き込みを行う不揮発性記憶モジュールであって、
前記不揮発性記憶モジュールは、
不揮発性メモリと、
前記不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラと、を有し、
前記メモリコントローラは、
少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、
前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、
データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備するものである不揮発性記憶モジュール。
【請求項１３】
前記メモリコントローラは、
前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部を更に備えた請求項１２記載の不揮発性記憶モジュール。
【請求項１４】
前記メモリコントローラは、
前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部と、
外部から指定されたシステム条件を受信するシステム条件受信部と、
前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、
前記読み書き制御部は、データの読み書き制御を行うと共に、前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行う請求項１２記載の不揮発性記憶モジュール。
【請求項１５】
前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、
前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行う請求項１４記載の不揮発性記憶モジュール。
【請求項１６】
前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、
前記システム条件判定部は、前記不揮発性記憶モジュールの種別に応じてスワップ可否の判定を行う請求項１４記載の不揮発性記憶モジュール。
【請求項１７】
請求項１３に記載の不揮発性記憶モジュールと接続して、前記不揮発性記憶モジュールにデータを書き込み、前記不揮発性記憶モジュールからデータを読み出すアクセスモジュールであって、
前記不揮発性記憶モジュールから受信した寿命情報を表示する寿命情報表示部を備えたアクセスモジュール。
【請求項１８】
請求項１４に記載の不揮発性記憶モジュールと接続して、前記不揮発性記憶モジュールにデータを書き込み、前記不揮発性記憶モジュールからデータを読み出すアクセスモジュールであって、
前記不揮発性記憶モジュールに前記システム条件を通知するシステム条件通知部を備えたアクセスモジュール。
【請求項１９】
アクセスモジュールと、前記アクセスモジュールからのアクセス指示に応じてデータの読み出し、書き込みを行う不揮発性記憶モジュールとを有する不揮発性記憶システムであって、
前記不揮発性記憶モジュールは、
不揮発性メモリと、
前記不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラと、を有し、
前記メモリコントローラは、
少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、
前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、
データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備する不揮発性記憶システム。
【請求項２０】
前記メモリコントローラは、
前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を前記アクセスモジュールに通知する寿命判定部を備えた請求項１９記載の不揮発性記憶システム。
【請求項２１】
前記メモリコントローラは、
前記アクセスモジュールから指定されたシステム条件を受信するシステム条件受信部と、
前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、
前記読み書き制御部は、データの読み書き制御を行うとともに前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行う請求項１９記載の不揮発性記憶システム。
【請求項２２】
前記システム条件は、アクセス速度に係る要求条件、電力に係る要求条件、寿命対策に係る要求条件、の少なくとも１つである請求項２１記載の不揮発性記憶システム。
【請求項２３】
前記システム条件判定部は、システム条件に基づいてスワップ数を決定する請求項２１記載の不揮発性記憶システム。
【請求項２４】
前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、
前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行う請求項２１記載の不揮発性記憶システム。
【請求項２５】
前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、
前記システム条件判定部は、メモリコントローラが実装される不揮発性記憶モジュールの種別に応じてスワップ可否判定を行う請求項２１記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを備えた半導体メモリカードなどの不揮発性記憶モジュール、不揮発性メモリを制御するメモリコントローラ、アクセスモジュール、及び不揮発性記憶モジュールにアクセスモジュールを構成要件として加えた不揮発性記憶システムに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶モジュールは、着脱型の記憶装置として半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して非常に高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さなどのメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。また近年では、半導体メモリカードの大容量化に伴い、パーソナルコンピュータのハードディスクの代替装置や、デジタルテレビの録画メディアとしての応用検討も進んでいる。【０００３】
この半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパーソナルコンピュータ本体などのアクセスモジュールからの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行う。また非着脱型の不揮発性記憶モジュールとして、デジタルスチルカメラやポータブルオーディオ機器本体内に組み込まれたものもある。【０００４】
フラッシュメモリは、記憶単位であるメモリセルアレイへの書き込みや消去に比較的長い時間を必要とするため、複数のメモリセルを一括して消去したり書き込んだりできる構造となっている。具体的には、フラッシュメモリは複数の物理ブロックから構成され、各物理ブロックは複数のページを含む。フラッシュメモリの消去は物理ブロック単位で、書き込みはページ単位で行われる。【０００５】
近年フラッシュメモリは、大容量化と低コスト化への要望に対応して、多値ＮＡＮＤフラッシュメモリのように1つのメモリセルに２ビットの情報が記憶できる品種が主流となってきている。多値ＮＡＮＤフラッシュメモリは、メモリセルの信頼性確保が難しいため、書き換え回数が低い。従来の２値ＮＡＮＤフラッシュメモリの書き換え保証回数は１０万回、データ保持の保証時間は１０年間であった。これに対して、多値ＮＡＮＤフラッシュメモリの書き換え保証回数は１万回以下で、更には書き換え回数とデータ保持時間が、例えば図１に示すようにトレードオフの関係になってきている。【０００６】
前述した書き換え回数やデータ保持時間は、半導体メモリカードなどの不揮発性記憶モジュールの寿命、及び不揮発性記憶モジュールを備えた不揮発性記憶システムの寿命に直結している。【０００７】
従来のフラッシュメモリでは寿命をできるだけのばすために、特定の物理ブロックに書き換えが集中しないウェアレベリングといわれるアドレス管理方法が適用されている。例えば、特許文献１によれば、データの書き込みの際に、空き領域である空き物理ブロックにデータを書き込む。このときその論理アドレスに対する旧データが記憶されている場合は、該旧データが記憶された物理ブロックの旧データを消去し、更に該物理ブロックを空きブロックとして管理する。こうして特定の物理ブロックばかりに書き込みが集中しない工夫がなされている。この方法はデータの書き込みは空き領域に書き込み、書き込み終わるまで旧データを保持し、不良ブロック代替用のスペア領域を含む空き領域を利用してウェアレベリングを行う方法である。【０００８】
しかしながら、特許文献１の不揮発性半導体メモリ装置においては、空きブロックの残数が少なくなってくると、ある特定の論理アドレスのデータばかりを何度も書き換えた場合、空きブロックと該論理アドレスのデータがアロケートされた物理ブロックとの間でデータの移動が頻繁に繰り返されることとなる。すなわち特定の物理ブロックの書き換え（以下、代替処理という）が急激に増加することになる。なお、この現象のことを以降「代替領域の局所化」という。【０００９】
この問題に対応するために、例えば特許文献２の半導体ディスク装置では、各物理ブロックの書き換え回数を保持しておき、書き換え回数に基づいてデータをスワップさせるようにしている。具体的には、あるデータ（データＸ）の書き換えにおいては、データＸの旧データが記憶された物理ブロック（物理ブロックＡ）を消去して書き換えるが、物理ブロックＡの書き換え回数が大きい場合は、書き換え回数の小さい別の物理ブロック（物理ブロックＢ）に書き込む。但し、物理ブロックＢに既にデータＹが記憶されている場合は、物理ブロックＡの元のデータＸを消去した後に、データＹを物理ブロックＡに移動する。その後新しいデータＸを物理ブロックＢに書き込む。こうすれば以後データＸが更新されたときに、物理ブロックＢが書き換えられることになる。このように書き換え回数に基づいて物理ブロックＡ，Ｂのスワップを行うことで、動的なウェアレベリングを実現している。
【特許文献１】特開２００３−２６３８９４号公報
【特許文献２】特開平５−２８２８８０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献２によれば、データＸの書き換えにおいて、データＸの旧データが消去された時点で電源遮断などのエラーが発生すると、旧データが復活できないといった課題を有していた。また、スワップ処理により、速度や電力面でのオーバーヘッドが増加し、例えば動画などのリアルタイム記憶が必要なコンテンツを記録することができないなどのシステム上の課題を有していた。【００１１】
そこで、本発明は上記問題点に鑑み、従来よりも代替領域の局所化の問題がなく長寿命で、電源遮断があっても旧データを復活することができるメモリコントローラ、不揮発性記憶モジュール、アクセスモジュール、不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
この課題を解決するために、本発明のメモリコントローラは、不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備するものである。【００１３】
ここで前記記録状態判定部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数に基づいてスワップ要否判定を行うようにしてもよい。【００１４】
ここで前記記録状態判定部は、前記書き換え回数の最大値と、平均値及び最小値のいずれか一方とに基づいてスワップの要否を判定するようにしてもよい。【００１５】
ここで前記読み書き制御部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数に基づいてスワップ対象領域を決定するようにしてもよい。【００１６】
ここで前記読み書き制御部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数及びその物理ブロックが空き物理ブロックかどうかによってスワップ対象領域を決定するようにしてもよい。【００１７】
ここで前記メモリコントローラは、前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部を更に備えるようにしてもよい。【００１８】
ここで外部から指定されたシステム条件を受信するシステム条件受信部と、前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、前記読み書き制御部は、データの読み書き制御を行うと共に、前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行うようにしてもよい。【００１９】
ここで前記システム条件は、アクセス速度に係る要求条件、電力に係る要求条件、及び寿命対策に係る要求条件、の少なくとも１つとしてもよい。【００２０】
ここで前記システム条件判定部は、システム条件に基づいてスワップ数を決定するようにしてもよい。【００２１】
ここで前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行うようにしてもよい。【００２２】
ここで前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、前記システム条件判定部は、前記不揮発性記憶モジュールの種別に応じてスワップ可否の判定を行うようにしてもよい。【００２３】
又これらのメモリコントローラと不揮発性メモリとを用いて、外部からのアクセス指示に応じてデータの読み出し、書き込みを行う不揮発性記憶モジュールとすることができる。【００２４】
又本発明のアクセスモジュールは、これらの不揮発性記憶モジュールと接続して、前記不揮発性記憶モジュールから受信した寿命情報を表示する寿命情報表示部を備えた前記不揮発性記憶モジュールにデータを書き込み、前記不揮発性記憶モジュールからデータを読み出すアクセスモジュールとすることができる。【００２５】
又本発明のアクセスモジュールは、これらの不揮発性記憶モジュールと接続して、前記不揮発性記憶モジュールに前記システム条件を通知するシステム条件通知部を備えた前記不揮発性記憶モジュールにデータを書き込み、前記不揮発性記憶モジュールからデータを読み出すアクセスモジュールとすることができる。【００２６】
又本発明の不揮発性記憶システムは、アクセスモジュールと、前記アクセスモジュールからのアクセス指示に応じてデータの読み出し、書き込みを行う不揮発性記憶モジュールとを有する不揮発性記憶システムであって、前記不揮発性記憶モジュールは、不揮発性メモリと前記いずれかのメモリコントローラを有するものとすることができる。
【発明の効果】
【００２７】
本発明によれば、アドレス管理部の空き領域選択に基づく書き込み先領域の決定、すなわち代替処理によるウェアレベリングを基本とし、記録状態判定部が記録状態に応じたスワップ要否判定を行い、読み書き制御部がスワップ要否判定に応じてスワップ対象領域の決定とスワップを実行するようにした。このため前述した特許文献１の課題である代替領域の局所化を解決することができ、不揮発性記憶モジュールを長寿命化することができる。又本発明によれば空き物理ブロックに新たなデータを書き込むようにしているので、特許文献２の課題である電源遮断問題を解決することができる。【００２８】
なお、記録状態判定部が、代替領域局所化を検出するので、代替領域が局所化した際にスワップすることができる。また、物理ブロックの書き換え回数に基づき、簡単に代替領域局所化の検出が行える。また、書き換え回数又はこれに加えて空きブロックかどうかに基づいてスワップ対象を決定すれば、効果的なスワップをすることができる。
【図面の簡単な説明】
【００２９】
【図１】図１は多値フラッシュメモリの信頼性を示すグラフである。
【図２】図２は本発明の第１の実施の形態における不揮発性記憶システムを示すブロック図である。
【図３Ａ】図３Ａは物理領域管理テーブル１３１を示すメモリマップである。
【図３Ｂ】図３Ｂは論物変換テーブル１３２を示すメモリマップである。
【図４】図４はＰＢｓａの取得回路１２７Ａを示す回路図である。
【図５】図５はＰＢｓｂの取得回路１２７Ｂを示す回路図である。
【図６】図６は寿命テーブル１２８ａを示すメモリマップである。
【図７Ａ】図７Ａは書き込み前の記録状態を示す説明図である。
【図７Ｂ】図７Ｂは書き込み後の記録状態を示す説明図である。
【図７Ｃ】図７Ｃはスワップ前の記録状態を示す説明図である。
【図７Ｄ】図７Ｄは１回目のスワップ後の記録状態を示す説明図である。
【図７Ｅ】図７Ｅは２回目のスワップ後の記録状態を示す説明図である。
【図７Ｆ】図７Ｆは３回目（最終回）のスワップ後の記録状態を示す説明図である。
【図８】図８は本発明の第１の実施の形態に於ける不揮発性記憶モジュール１００Ａの全体処理を示すフローチャートである。
【図９】図９は書き込み処理を示すフローチャートである。
【図１０】図１０は記録状態判定処理を示すフローチャートである。
【図１１】図１１はスワップ処理を示すフローチャートである。
【図１２】図１２は寿命判定処理を示すフローチャートである。
【図１３Ａ】図１３Ａは書き込み時の物理領域管理テーブル１３１の仮更新を示すメモリマップである。
【図１３Ｂ】図１３Ｂは書き込み時の論物変換テーブル１３２の仮更新を示すメモリマップである。
【図１４Ａ】図１４Ａは１回目のスワップ時の物理領域管理テーブル１３１の仮更新を示すメモリマップである。
【図１４Ｂ】図１４Ｂは１回目のスワップ時の論物変換テーブル１３２の仮更新を示すメモリマップである。
【図１５】図１５は本発明の第２の実施の形態における不揮発性記憶システムを示すブロック図である。
【図１６】図１６は本発明の第２の実施の形態における不揮発性記憶モジュール１００Ｂの全体処理を示すフローチャートである。
【図１７】図１７はシステム条件判定処理を示すフローチャートである。
【図１８】図１８はスワップ処理を示すフローチャートである。
【図１９】図１９は書き込み処理を示すタイムチャートである。
【図２０】図２０はシステム条件の一例を示す図である。
【図２１】図２１は本発明の第３の実施の形態における不揮発性記憶システムを示すブロック図である。
【図２２】図２２は本発明の第３の実施の形態における不揮発性記憶モジュール１００Ｃの全体処理を示すフローチャートである。
【図２３】図２３は第３の実施の形態におけるスワップ処理を示すフローチャートである。
【符号の説明】
【００３０】
１００Ａ，１００Ｂ，１００Ｃ  不揮発性記憶モジュール
１２０Ａ，１２０Ｂ，１２０Ｃ  メモリコントローラ
１２１  ホストインターフェイス
１２２  バッファ
１２３  メモリインターフェイス
１２４  ＣＰＵ部
１２５  アドレス管理部
１２６  記録状態判定部
１２７，１６３，１７３  読み書き制御部
１２８  寿命判定部
１２８ａ  寿命テーブル
１３０  不揮発性メモリ
１３１  物理領域管理テーブル
１３２  論物変換テーブル
１４０，１５０  読み出し回路
１４１，１５１  ＯＲゲート
１４２，１４４，１５２，１５４  セレクタ
１４３，１４５，１４８，１５３，１５５，１５８  レジスタ
１４６，１５６  比較器
１４７，１５７  ＡＮＤゲート
１６１，１７１  システム条件受信部
１６２，１７２  システム条件判定部
２００Ａ，２００Ｂ  アクセスモジュール
２０１  寿命情報表示部
２０２  システム条件通知部
【発明を実施するための最良の形態】
【００３１】
（第１の実施の形態）
図２は、本発明の第１の実施の形態における不揮発性記憶システムを示したブロック図である。図２において、不揮発性記憶システムは、不揮発性記憶モジュール１００Ａとアクセスモジュール２００Ａとから構成される。アクセスモジュール２００Ａは、寿命情報表示部２０１を含む。不揮発性記憶モジュール１００Ａは、不揮発性メモリ１１０とメモリコントローラ１２０Ａを含む。メモリコントローラ１２０Ａはホストインターフェイス（ホストＩＦ）１２１、バッファ１２２、メモリインターフェイス（メモリＩＦ）１２３、ＣＰＵ部１２４、アドレス管理部１２５、記録状態判定部１２６、読み書き制御部１２７、寿命判定部１２８を含む。【００３２】
不揮発性メモリ１１０はフラッシュメモリであり、Ｐ個の物理ブロックを有する。物理ブロックは消去単位であり、Ｐ個の物理ブロックは全てデータ記録のために使用されるものとする。物理ブロックは書き込み単位であり、複数のページから成り立っている。一方アクセスモジュール２００Ａが利用可能な論理空間はＬ個の論理ブロックから構成されるものとする。ＬはＰより小さい整数とする。（Ｐ−Ｌ）個の物理ブロックはスペア領域及び管理領域として使用される。スペア領域は、書き換え時のワーク領域として使用されたり、不良ブロックの代替領域として使用される。また管理領域は、物理領域管理テーブル１３１や論物変換テーブル１３２を記憶する領域とする。【００３３】
ホストインターフェイス（ホストＩＦ）１２１は外部バスを介してアクセスモジュール２００Ａに接続されており、アクセスモジュール２００Ａからデータの書き込みコマンドや読み出しコマンド、論理アドレス及びデータを受信したり、データの読み出しにおいてはデータをアクセスモジュール２００Ａに送信するブロックである。【００３４】
メモリインターフェイス（メモリＩＦ）１２３は、メモリバスを介して不揮発性メモリ１１０に接続され、読み書き制御部１２７の指示により、バッファ１２２に一時記憶されたデータを不揮発性メモリ１１０に書き込んだり、不揮発性メモリ１１０に記憶されたデータをバッファ１２２に読み出すものである。更に、読み書き制御部１２７の指示により、不揮発性メモリ１１０内の２つの物理ブロック間でデータのスワップを行うものである。【００３５】
ＣＰＵ部１２４は、メモリコントローラ１２０Ａの全体を制御するものである。【００３６】
アドレス管理部１２５は、読み書き制御部１２７の指示によりアクセスモジュール２００Ａから受信した論理アドレスに基づいて不揮発性メモリ１１０の物理アドレスを生成するものである。アドレス管理部１２５は、後述する物理領域管理テーブル１３１（図面においてＰＭＴと表記）と論物変換テーブル１３２（図面においてＬＰＴと表記）を含む。なお、以降、物理ブロックをＰＢ、論理ブロックをＬＢ、物理ブロック番号をＰＢＮ、論理ブロック番号をＬＢＮ、物理ブロック番号ＰＢＮが例えば０の物理ブロックをＰＢ０、論理ブロック番号ＬＢＮが例えば０の論理ブロックをＬＢ０とする。【００３７】
図３Ａは、物理領域管理テーブル１３１を示すメモリマップである。このテーブル１３１は、物理ブロック番号ＰＢ０〜ＰＢ（Ｐ−１）について、ブロックステータスＢＳＴとスワップ対象として既に選択されたことを示す選択済みフラグＳと書き換え回数ＷＣとを保持している。ブロックステータスにおいて、値０は使用ブロック、値１は空きブロック、値２は不良ブロックを示す。なお簡単のため本実施の形態では値２、即ち不良ブロックはないものとする。アドレス管理部１２５は、データの書き込み処理を実施する都度、読み書き制御部１２７の指示により物理領域管理テーブル１３１のブロックステータスＢＳＴを参照してデータの書き込むための空きブロックを検出する。更に物理領域管理テーブル１３１は、スワップ回数ｋと総書き換え回数ＷＣａｌｌも保持している。なおＷＣａｌｌは書き込み処理においては１論理ブロックの書き込み毎に１ずつ加算されるものとする。【００３８】
図３Ｂは、アドレス管理部１２５に含まれる論物変換テーブル１３２を示すメモリマップである。この変換テーブル１３２は論理ブロック番号ＬＢＮに対応する物理ブロック番号ＰＢＮを保持している。【００３９】
記録状態判定部１２６は、物理領域管理テーブル１３１を適宜参照することにより、不揮発性メモリ１１０内の記録状態、具体的には代替領域の局所化を判定し、読み書き制御部１２７に対してスワップ要否判定結果を出力するものである。【００４０】
読み書き制御部１２７は、アクセスモジュール２００Ａからのコマンドに基づいて不揮発性メモリ１１０にデータを書き込み、不揮発性メモリ１１０からデータを読み出すものである。読み書き制御部１２７はライトコマンドが与えられたときに、アドレス管理部１２５に対して空き物理ブロックのＰＢＮの取得指示を出力する。読み書き制御部１２７はスワップ対象となるＰＢＮを取得するための取得回路１２７Ａ，１２７Ｂを有している。取得回路１２７Ａ，１２７Ｂは記録状態判定部１２６が出力したスワップ要否判定結果に応じて、スワップの対象となる物理ブロックとその書き換え回数を読み出すための回路である。【００４１】
図４は取得回路１２７Ａを示すブロック図である。図４において、読み出し回路１４０は物理領域管理テーブル１３１の中でＳフラグが０のＰＢＮから、書き換え回数ＷＣ、物理ブロック番号ＰＢＮ及びブロックステータスＢＳＴをシステムクロックＳＣＫに従って順次読み出す回路である。読み出し開始時点において、ＳＴＡＲＴフラグは１となり、ＯＲゲート１４１に出力される。セレクタ１４２とセレクタ１４４はＯＲゲート１４１の出力が０のときにはＡ入力、１のときにはＢ入力を選択する。レジスタ１４３はＰＢＮとＢＳＴを一時保持し、レジスタ１４５は選択したＰＢのＷＣを一時保持する。比較器１４６はレジスタ１４５に保持されたＷＣ（Ａ入力）と次のＳフラグが０のＰＢＮから読み出された書き換え回数ＷＣ（Ｂ入力）とを比較し、そのＢ入力が小さければ比較出力を０とし、ＯＲゲート１４１に出力する。又レジスタ１４３，１４５はその出力をレジスタ１４８，１４９にも与える。アンドゲート１４７はシステムクロックＳＣＫと終了であることを示すエンドフラグが１となったときにレジスタ１４３，１４５の出力を夫々保持する。これによりレジスタ１４８には後述するように、最大書き換え回数の物理ブロック番号ＰＢＮとそのステータスＢＳＰが保持される。又レジスタ１４９には最大書き換え回数Ｍが保持される。【００４２】
又図５は読み書き制御部１２７に含まれる取得回路１２７Ｂを示すブロック図である。取得回路１２７Ｂは前述した取得回路１２７Ａと同様に、読み出し回路１５０、ＯＲゲート１５１、セレクタ１５２，１５４、レジスタ１５３，１５５，１５８、比較器１５６、及びアンドゲート１５７を有している。取得回路１２７Ｂでは比較器１４６と１５６とでは大小関係が異なっている。又レジスタ１４９に相当するレジスタがないが、それ以外は取得回路１２７Ａと同様である。【００４３】
寿命判定部１２８は、図６に示す寿命テーブル１２８ａを有している。寿命テーブル１２８ａは書き換え回数ＷＣに対するデータ保持時間ｒを時間単位で記録したテーブルであって、リードオンリメモリに保持されている。寿命判定部１２８は、寿命テーブル１２８ａを参照することにより不揮発性記憶モジュール１００Ａの寿命を判定し、それをアクセスモジュール２００Ａに通知するものである。【００４４】
このように構成された、本発明の第１の実施の形態における不揮発性記憶システムの動作について説明する。まず、代替領域の局所化とその抑制についての基本的な説明をした上で、具体的な動作について説明する。【００４５】
［代替領域の局所化について］
まず、不揮発性メモリ１１０の記録状態について説明する。図７Ａ〜図７Ｆは物理ブロックＰＢ０〜ＰＢ（Ｐ−１）の書き換え回数と、各物理ブロックにアロケートされたＬＢＮ又はその物理ブロックが空きブロックであることを表す。図７Ａは書き込み前の記録状態を示す説明図、図７Ｂは書き込み後の記録状態を示す説明図、図７Ｃ〜図７Ｆは、夫々スワップ前の記録状態、１回目のスワップ後、２回目のスワップ後、３回目（最終回）のスワップ後の記録状態を示す説明図である。以下では、ＷＣを書き換え回数、ｍを最小書き換え回数、ａは平均書き換え回数、Ｍを最大書き換え回数、Ｘはスワップ処理を開始するかどうかを決定するための物理ブロックの書き換え回数の最大値と平均値との差を示す閾値とする。【００４６】
図７Ａでは物理ブロックはほとんど書き換えられないデータがアロケートされているＰＢ群と、頻繁に書き換えられるデータ（本実施の形態ではＬＢ０）がアロケートされているＰＢと、ＬＢ０の書き換えに使用される空きブロックとに区分される。【００４７】
このような記録状態は、不揮発性記憶モジュールをＴＶに装着してＴＶ番組録画を行う場合に起こりえる。具体的には、既に録画した番組の中で長期保存したい番組を不揮発性記憶モジュールに記録したままにして、長期保存不要の番組、例えばニュースなどを頻繁に記録と消去を繰り返したとする。ここで長期保存したい番組が論理ブロックＬＢ１〜ＬＢ（Ｌ−１）に対応し、長期保存不要の番組が論理ブロックＬＢ０に対応しているものとする。この場合、図７Ａに示すように、ＬＢ１〜ＬＢ（Ｌ−１）が記録された物理ブロックＰＢ１〜ＰＢ（Ｐ−３）は書き換え回数が少ないままで、ＬＢ０の記録と消去に使用される物理ブロックＰＢ０、ＰＢ（Ｐ−２）、ＰＢ（Ｐ−１）では書き換え回数ＷＣが増加する。以降、前者の領域を占有領域、後者の領域を代替領域とする。図７Ａでは、最大書き換え回数Ｍと平均書き換え回数ａの差が閾値Ｘに等しくなっており、代替領域が局所化した典型例である。【００４８】
前述した状況が継続すると代替領域でのＷＣの値が増加の一途を辿り、不揮発性記憶モジュールの寿命が早期に尽きてしまう。そこで本実施の形態の不揮発性記憶モジュール１００Ａにおいては、記録状態判定部１２６がＷＣに基づき代替領域の局所化を検出し、読み書き制御部１２７が書き換え回数に基づきスワップを実行して、代替領域局所化を抑制する。【００４９】
以下の２ステップにて、代替領域局所化の抑制を行う。
（１）代替領域局所化の検出
記録状態判定部１２６は、代替領域の局所化が生じているかどうかを式（１）により判定し、式（１）が成立しているときにスワップが必要とする判定を読み書き制御部１２７に転送する。
Ｍ−ａ＞Ｘ・・・（１）
なお具体的な算出方法については後述する。また閾値Ｘは不揮発性記憶モジュール１００Ａの処理能力や不揮発性メモリ１１０の信頼性などに応じて決めればよい。【００５０】
（２）スワップ処理
（２−１）スワップ対象の選択
代替領域（ＷＣがａより大きい領域）から書き換え回数の大きい順にスワップ対象ＰＢを選択し、占有領域（ＷＣがａより小さい領域）から書き換え回数の小さい順にスワップ対象ＰＢを選択する。なお、代替領域の局所化検出時に纏めて選択すると、選択処理の時間的オーバーヘッドが問題となるので、１ブロック分の書き込みやスワップ毎に、次のスワップ処理に必要なスワップ対象ＰＢを選択する。
（２−２）重複スワップ禁止
同一のスワップ対象が連続して選択されると、無駄なスワップが繰り返されることになるので、これを回避するために、所定回数のスワップが完了する迄は重複選択を禁止する。所定回数をＫ１とすると、Ｋ１は式（２）で与えられる。但し式（２）において、ＭＩＮとは最小値をとる関数とする。
Ｋ１＝ＭＩＮ（ＷＣ＞ａとなるＰＢ数，ＷＣ＜ａとなるＰＢ数）  ・・・（２）
（２−３）スワップ実行
こうして決定したスワップ対象のブロックについて、代替領域と占有領域をスワップすることにより、代替領域、すなわち書き換え回数が突出する領域を分散させる。【００５１】
以上説明した代替領域局所化の抑制について、以降、図８に示す全体処理のフローチャートや図９以降の各部のフローチャートなどに従い、代替領域局所化の検出やスワップ処理について説明する。なお簡単のため、データの書き込みにおいて、書き込みコマンドは１論理ブロック単位毎に転送されるものとする。また、アクセスモジュール２００Ａからのアクセス指示がなされないときに、不揮発性記憶モジュール１００Ａが自動的にスワップ処理を実行すると、電源遮断などのエラーによってデータが破壊される可能性がある。これはユーザにとって不合理である。したがって、スワップ処理は、アクセスモジュール２００Ａからのアクセス指示に応じてなされることを基本とする。本実施の形態においては、書き込みコマンドの受信毎に、書き込み処理に付随して実行するものとする。【００５２】
不揮発性記憶モジュール１００Ａをアクセスモジュール２００Ａに装着すると、アクセスモジュール２００Ａから不揮発性記憶モジュール１００Ａに電源が供給され、不揮発性記憶モジュール１００Ａは初期化処理を開始する（Ｓ１００）。初期化処理において、メモリコントローラ１２０Ａは不揮発性メモリ１１０内の管理領域に保持された物理領域管理テーブル１３１と論物変換テーブル１３２をアドレス管理部１２５内に設けられたＲＡＭに読み込む。この時点において、物理領域管理テーブル１３１と論物変換テーブル１３２は、夫々図３Ａと図３Ｂに示す情報を保持しているものとし、図７Ａに示す記録状態に対応する。【００５３】
その後アクセスモジュール２００Ａからのアクセスがあった場合は（Ｓ１０１）、ＣＰＵ部１２４がアクセスモジュール２００Ａから転送されたコマンドを解析する（Ｓ１０２）。コマンドが書き込みコマンドの場合はＳ１０３に進み、書き込み〜スワップ一連処理に移行し、読み出しコマンドなどそれ以外のコマンドの場合はＳ１０６に移行する。【００５４】
ここでＬＢ０を更新し、新データを書き込む書き込みコマンドが与えられたものとする。新データは一旦バッファ１２２に保持される。次に、書き込み〜スワップ一連処理について図９を用いて説明する。まずＳ１０３において書き込み処理を行う。図９は書き込み処理の詳細を示すものであり、Ｓ２００において、読み書き制御部１２７はアドレス管理部１２５に対して、書き込み先の空き物理ブロック（以下、空きＰＢという）の取得を指示する。アドレス管理部１２５は物理領域管理テーブル１３１の先頭番地からＰＢをサーチする。アドレス管理部１２５による空きＰＢサーチの開始位置は、初期化処理毎に先頭番地に設定され、初期化処理後の通常処理においては、前回サーチした番地からサーチを継続し、最後尾の番地すなわちＰＢ（Ｐ−１）に到達した後は先頭番地に戻るものとする。この場合は初期化後なので先頭番地ＰＢ０から昇順にＢＳＴが１のＰＢをサーチする。【００５５】
図１３Ａは書き込み時の物理領域管理テーブル１３１の仮更新を示すメモリマップ、図１３Ｂは書き込み時の論物変換テーブル１３２の仮更新を示すメモリマップである。図１３Ａ左側の状態ではＰＢ（Ｐ−２）が最初の空きブロックであるので、このブロックを書き込み先ブロック番号として読み書き制御部１２７に通知する。図１３Ａにおいて、取得回路１２７Ａ，１２７Ｂのレジスタ１４８，１５８はスワップ対象となるＰＢ（ＰＢｓａとＰＢｓｂ）のＰＢＮとブロックステータスＢＳＴを一時保持するレジスタである。ＰＢｓａは書き換え回数が大きい領域、すなわち代替領域に属するスワップ対象ブロックであり、一方、ＰＢｓｂは書き換え回数が小さい領域、すなわち占有領域に属するスワップ対象ブロックである。【００５６】
その後、図１３Ｂの左側に示す論物変換テーブル１３２を参照し、ＬＢ０の旧データが記録されている領域、即ちＰＢ０を取得する。次いで図１３Ａに示すように物理領域管理テーブル１３１のＰＢ０のＢＳＴを１に、またＰＢ（Ｐ−２）のＢＳＴを０に仮更新する。更に、後述するＳ２０５の旧データの消去処理によってＰＢ０の書き換え回数が１つ増加するので、図１３Ａに示すようにＰＢ０のＷＣをａ＋Ｘからａ＋Ｗ＋１に仮更新する。また、図１３Ｂに示すように論物変換テーブル１３２のＬＢ０に対する物理ブロック番地ＰＢＮを０からＰ−２に仮更新する（Ｓ２０１）。【００５７】
図９のＳ２０２において、読み書き制御部１２７はＬＢ０の新データの書き込み指示と書き込み先ブロック番号（Ｐ−２）をメモリインターフェイス１２３に転送する。メモリインターフェイス１２３はバッファ１２２に一時記憶されたＬＢ０の新データを、不揮発性メモリ１１０のＰＢ（Ｐ−２）に書き込み始める。読み書き制御部１２７は書き込みが完了するまでの間にＳ２０３，Ｓ２０４の処理を行う。【００５８】
図９のＳ２０３において、読み書き制御部１２７は物理領域管理テーブル１３１から総書き換え回数ＷＣａｌｌ（現在値）を読み出し、該ＷＣａｌｌに１を加算したものを新しいＷＣａｌｌとして物理領域管理テーブル１３１に保持し直す。更に読み書き制御部１２７はＳ２０４において、物理領域管理テーブル１３１を参照してスワップ対象の物理ブロックＰＢｓａとＰＢｓｂを選択する（Ｓ２０４）。具体的には、物理領域管理テーブル１３１内の選択済みフラグＳが０、すなわち「まだスワップ対象として選択されていないＰＢ」を選択範囲として、ＷＣの値が最大のＰＢのＰＢＮとＢＳＴを、読み書き制御部１２７内のレジスタ１４８に保持し、ＷＣの値が最小のＰＢのＰＢＮとＢＳＴを、読み書き制御部１２７内のレジスタ１５８に保持する。【００５９】
ＷＣの最大値検出は、読み書き制御部１２７の取得回路１２７Ａにより実施する。図４において、物理領域管理テーブル１３１は読み出し回路１４０により、物理領域管理テーブル１３１の先頭番地から昇順に、Ｓフラグが０のＰＢＮのＷＣ、ＰＢＮ、及びＢＳＴをシステムクロックＳＣＫに従って順番に読み出す。読み出し開始時点、すなわち図４ではＰＢ０の読み出し時点において、ＳＴＡＲＴフラグが１となりＯＲゲート１４１を介してセレクタ１４２とセレクタ１４４のＢ入力が選択される。すなわち、ＰＢ０のＷＣ（ａ＋Ｘ＋１）がレジスタ１４５に一時保持され、ＰＢ０のＰＢＮ（０）とＢＳＴ（０）がレジスタ１４３に一時保持される。次のＳＣＫによりＳＴＡＲＴフラグが０となり、読み出し回路１４０から物理領域管理テーブル１３１のＰＢ１についての情報が読み出され、比較器１４６において、ＰＢ０のＷＣ（ａ＋Ｘ＋１）とＰＢ１のＷＣ（ｍ）との比較がなされる。Ｂ入力（ｍ）はＡ入力（ａ＋Ｘ＋１）より小さいので比較出力は０となり、ＯＲゲート１４１を介してセレクタ１４２とセレクタ１４４のＳ入力は０となる。その結果、レジスタ１４３に一時保持されたＰＢＮとＢＳＴが再びレジスタ１４３に一時保持される。一方、レジスタ１４５に一時保持されたＷＣが再びレジスタ１４５に一時保持されることとなる。以上の動作をＰＢ０〜ＰＢ（Ｐ−１）まで繰り返すと、ＰＢ（Ｐ−１）の読み出しが終了した時点でＥＮＤフラグが１になり、レジスタ１４８は最大書き換え回数のＰＢに対応するＰＢＮとＢＳＴを保持することになる。すなわち、最大書き換え回数Ｍをａ＋Ｘ＋１とすると、ＰＢｓａとしてＰＢ０が選択される。図１３Ａのレジスタ１４８はこの状態を示している。また、ＥＮＤフラグが１になったとき、レジスタ１４９は最大書き換え回数のＰＢに対応するＷＣ、すなわち最大書き換え回数Ｍを保持している。【００６０】
ＷＣの最小値検出は、読み書き制御部１２７の取得回路１２７Ｂにより実施する。処理内容は、基本的に、図４の取得回路の処理と同様であり、相違点は比較器１５６の出力条件がＢ＜Ａである点だけである。この相違により、取得回路１２７Ｂのレジスタ１５８は最小書き換え回数のＰＢに対応するＰＢＮとＢＳＴとをレジスタ１５８に保持することになる。すなわち、最小書き換え回数をｍとすると、ＰＢｓｂとしてＰＢ１が選択される。図１３Ａのレジスタ１５８がこのＰＢＮ，ＢＳＴを保持することとなる。【００６１】
図９において、新データの書き込みが終了し読み書き制御部１２７がスワップ対象としてＰＢｓａとＰＢｓｂを選択した後に、旧データを消去する（Ｓ２０５）。旧データの消去においては、読み書き制御部１２７がアドレス管理部１２５に対してＬＢ０の旧データを記憶しているＰＢのサーチを指示する。アドレス管理部１２５は論物変換テーブル１３２を参照しＬＢ０に保持されているＰＢＮ、すなわちＰＢ０を消去対象ブロックとして読み書き制御部１２７に通知する。その後、読み書き制御部１２７の制御によりメモリインターフェイス１２３は物理ブロック番地ＰＢ０のデータを消去する。【００６２】
Ｓ２０５までの処理が終了した後に、読み書き制御部１２７はアドレス管理部１２５内のＲＡＭで仮更新された物理領域管理テーブル１３１と論物変換テーブル１３２をメモリインターフェイス１２３を介して不揮発性メモリ１１０の管理領域に書き戻す（Ｓ２０６）。こうしてテーブル１３１，１３２が更新される。以上により、図８に示す書き込み処理Ｓ１０３が終了する。図７Ｂは書き込みを終えた状態を示しており、ＰＢ０の書き換え回数Ｍが増加している。【００６３】
次に記録状態判定処理（Ｓ１０４）に移行する。図１０は記録状態判定処理の詳細を示すフローチャートである。まず、記録状態判定部１２６は、平均書き換え回数ａを式（３）に基づいて算出する（Ｓ３００）。ここで記録状態判定部１２６は、ＷＣａｌｌを物理領域管理テーブル１３１から参照する。Ｐは不揮発性メモリ１１０の物理ブロックの総数である。
ａ＝ＷＣａｌｌ／Ｐ  ・・・（３）
Ｐが例えば４０９６個であれば、２進数で表されるＷＣａｌｌを１２ビット右シフトしてａを算出することが好ましい。ａは少々の誤差があっても構わないパラメータであるので、Ｐが２のべき乗でない場合は、複数の２のべき乗の数値に近似的に分解し、シフト演算と加算の組合せによって演算を行ってもよい。こうすれば演算の負荷を軽減することができる。【００６４】
その後、記録状態判定部１２６は、内部に保持しているスワップ要否フラグ（以降、ＳＷＦ１とする）を判定する（Ｓ３０１）。このフラグが１の場合は処理を終了し、ＳＷＦ１が０の場合はスワップ要否判定（Ｓ３０２）に移行する。Ｓ３０２において式（１）が成立する場合は、代替領域が局所化している。この場合は代替領域局所化を抑制するため、スワップ処理を行う。スワップ処理では、まず式（２）に基づきスワップ目標回数Ｋ１を算出し（Ｓ３０３）、フラグＳＷＦ１を１にセットし、スワップ要否判定結果として読み書き制御部１２７にスワップ指示を行う（Ｓ３０４）。【００６５】
ここで、図３Ａに示す不揮発性メモリ１１０の記録状態においては、平均書き換え回数ａより大きいＷＣのＰＢ数は３個、平均書き換え回数ａよりＷＣが小さいＰＢの数は４０９３である。従って式（２）よりスワップ目標回数Ｋ１は３となり、スワップ処理は３回実行されることとなる。【００６６】
以上により、図８に示す記録状態判定処理（Ｓ１０４）が終了し、スワップ処理（Ｓ１０５）に移行する。読み書き制御部１２７はスワップ処理を図１１に示すフローチャートに従って行う。まず、読み書き制御部１２７は、記録状態判定部１２６から受信したＳＷＦ１が０の場合はスワップ処理を実施することなく処理を終了し、ＳＷＦ１が１の場合はＳ４０１以降の処理に移行する。【００６７】
図１４Ａは１回目のスワップ時の物理領域管理テーブル１３１の仮更新を示すメモリマップ、図１４Ｂは１回目のスワップ時の論物変換テーブル１３２の仮更新を示すメモリマップである。【００６８】
Ｓ４０１において、読み書き制御部１２７は、図１３Ａに示すレジスタ１４８，１５８に保持された情報に基づき、物理領域管理テーブル１３１においてスワップの対象であるＰＢ０とＰＢ１のＢＳＴとＳフラグとを仮更新するように、アドレス管理部１２５に指示する。また読み書き制御部１２７は、論物変換テーブル１３２においてスワップの対象となる論理ブロックＬＢ０に対応するＰＢＮを仮更新するように、アドレス管理部１２５に指示する。その結果、物理領域管理テーブル１３１は図１４Ａに示すように、また論物変換テーブル１３２は図１４Ｂに示すように仮更新される。【００６９】
その後、Ｓ４０２において、読み書き制御部１２７はＰＢｓａとＰＢｓｂのスワップ指示を行うべく、レジスタ１４８とレジスタ１５８を参照して、スワップ手順を決定する。ここでは図７Ｃに示すように、空きＰＢであるＰＢ０と使用中ＰＢであるＰＢ１とのスワップを行うことになるので、以下のステップ１〜３に対応する手順をメモリインターフェイス１２３に指示する。
ステップ１：ＰＢ１からＬＢ１のデータの読み出し
ステップ２：読み出したＬＢ１のデータをＰＢ０に書き込み
ステップ３：ＰＢ１を消去
これに基づいてメモリインターフェイス１２３はスワップ処理を開始する。【００７０】
こうしてステップ１〜３を実行することにより、図７Ｃの記録状態から図７Ｄの記録状態に変化する。すなわちＰＢ０にＬＢ１のデータが書き込まれ、ＰＢ１が空きＰＢとなる。【００７１】
以上のスワップ処理を実行している最中に、読み書き制御部１２７は物理領域管理テーブル１３１に保持したスワップ回数ｋを読み出し、ｋをインクリメントした後に（Ｓ４０３）、ｋとスワップ目標回数Ｋ１とを比較する（Ｓ４０４）。ｋがＫ１に到達していない場合、すなわちスワップの継続が必要な場合は、現在実行中のスワップ処理におけるＰＢ１の消去によって、ＰＢ１の書き換え回数が１回増加する。従って読み書き制御部１２７は物理領域管理テーブル１３１からＷＣａｌｌ（現在値）を読み出し、該ＷＣａｌｌに１を加算したものを新しいＷＣａｌｌとして物理領域管理テーブル１３１に保持し直す（Ｓ４０９）。【００７２】
更に、前述したＳ２０４における処理と同様に、次のスワップ対象ＰＢｓａとＰＢｓｂを選択し、図１４Ａに示すようにレジスタ１４８とレジスタ１５８に、夫々ＰＢ（Ｐ−２）とＰＢ２のＰＢＮとＢＳＴを保持する（Ｓ４１０）。その後、読み書き制御部１２７はＳ４１１において、物理領域管理テーブル１３１と論物変換テーブル１３２をメモリインターフェイス１２３を介して不揮発性メモリ１１０に書き戻し、Ｓ４００に戻る。【００７３】
そして、再度Ｓ４００以降のスワップ関連処理を行う。ここで、ＰＢ２とＰＢ（Ｐ−２）はいずれも使用ＰＢであるので、スワップ処理においては空きＰＢ、例えばＰＢ（Ｐ−１）を中間バッファとして、スワップ処理を行う。このような場合は、図７Ｄに示すようにスワップａ，ｂ，ｃの３段階の処理が必要となる。従って不揮発性メモリ１１０の記録状態は図７Ｄから図７Ｅに変化し、書き換え回数はＰＢＰ−２とＰＢＰ−１の２ＰＢ分の増加となる。このようにスワップの仕方に応じて以下の規則のように従ってＷＣａｌｌは変わる。
（１）スワップ対象がいずれも空きＰＢの場合、ＷＣａｌｌの増加分は０となる。
（２）スワップ対象の一方が空きＰＢで他方が使用ＰＢの場合、ＷＣａｌｌの増加分は１となる。
（３）スワップ対象がいずれも使用ＰＢの場合、ＷＣａｌｌの増加分は２となる。
尚、この実施の形態では（１）のスワップはあり得ない。読み書き制御部１２７はスワップ関連処理をＫ１回（３回）実行すると、図７Ｆに示すように、全ての代替領域は占有領域に置換され、その後Ｓ４０４よりＳ４０５に移行する。【００７４】
Ｓ４０５において、３回目のスワップ処理によってＰＢ３の書き換え回数が１増加するので、読み書き制御部１２７はＷＣａｌｌを１加算し、更に物理領域管理テーブル１３１のＳフラグを全てリセットする（Ｓ４０６）。そしてＳＷＦ１とスワップ回数ｋをリセットした後（Ｓ４０７）、読み書き制御部１２７は物理領域管理テーブル１３１と論物変換テーブル１３２を不揮発性メモリ１１０に書き戻し（Ｓ４０８）、スワップ処理を完了する。【００７５】
最後に、寿命判定部１２８の動作について説明する。アクセスモジュール２００Ａから不揮発性記憶モジュール１００Ａに対して寿命要求コマンドが指示されると、図８の全体処理のフローチャートにおいてＳ１０６に制御が移り、寿命判定部１２８が図１２に示すフローチャートに従って寿命判定処理を実行する。寿命要求コマンドをホストインターフェイス１２１が受信すると、その旨を寿命判定部１２８に通知し、寿命判定部１２８はＳ５００の判定の後、最大書き換え回数Ｍの取得を読み書き制御部１２７に指示する。【００７６】
読み書き制御部１２７は前述したＳ２０４の処理の中の取得回路１２７Ａの処理によりレジスタ１４９に最大書き換え回数Ｍを保持しており、ＥＮＤフラグを寿命判定部１２８に出力する。寿命判定部１２８はＥＮＤフラグを受信すると、レジスタ１４９に保持された最大書き換え回数Ｍを取得し（Ｓ５０１）、図６に示す寿命テーブル１２８ａを読み出す（Ｓ５０２）。読み出しにおいて寿命判定部１２８は、寿命テーブル１２８ａ上の書き換え回数ＷＣにおいて、最大書き換え回数Ｍに最も近い２つの値を決定する。Ｍより小さいＷＣをＷＣ１、Ｍより大きいＷＣをＷＣ２とすると、夫々に対応するデータ保持時間ｒ（ＷＣ１）とｒ（ＷＣ２）を読み出す（Ｓ５０２）。例えばＭが１８０の場合は、ＷＣ１は１００、ＷＣ２は２００であり、ｒ（ＷＣ１）は５０１１８７、ｒ（ＷＣ２）は１１６９０６となる。なおｒのディメンジョンは時間である。【００７７】
その後、式（４）に従って補間演算を行う（Ｓ５０３）。
ｒ（Ｍ）＝ｒ（ｗ１）＋α｛ｒ（ｗ２）−ｒ（ｗ１）｝  ・・・（４）
但し、α＝（Ｍ−ｗ１）／（ｗ２−ｗ１）
例えば、Ｍが１８０の場合はｒ（Ｍ）は１９３７６２（時間）となる。寿命判定ブロック２８は演算結果であるｒ（Ｍ）を寿命情報として、ホストインターフェイス１２１を介してアクセスモジュール２００Ａに通知する（Ｓ５０４）。【００７８】
アクセスモジュール２００Ａはｒ（Ｍ）の通知を受けると、寿命情報表示部２０１がｒ（Ｍ）を表示する。なお、Ｍが１８０の場合はｒ（Ｍ）の値が大きいので、ディメンジョンを年に変換して表示してもよい。なお、本実施の形態においては、アクセスモジュール２００Ａからの寿命要求コマンドに応じて不揮発性記憶モジュール１００Ａが寿命情報を通知するようにした。これに代えて、不揮発性記憶モジュール１００Ａが適宜アクセスモジュール２００Ａに割り込みをかけて寿命情報を通知するようにしても構わない。【００７９】
以上のように、第１の実施の形態の不揮発性記憶システムによれば、アドレス管理部１２５の空きＰＢ選択に基づく書き込み先ＰＢの決定、すなわち代替処理によるウェアレベリングを基本とし、記録状態判定部１２６が式（１）に基づき、すなわち記録状態に応じてスワップ要否判定を行い、読み書き制御部１２７がスワップ要否判定に応じてスワップ対象ブロック（ＰＢｓａ、ＰＢｓｂ）を決定し、スワップを実行するようにした。これにより、「代替領域の局所化」が抑制されると共に、「電源遮断問題」に伴う旧データが再現不能になることがなくなる。【００８０】
また、寿命判定部１２８がデータ保持時間を求めアクセスモジュール２００Ａに通知するようにしたので、ユーザは不揮発性記憶モジュールの寿命を認識した上で安心して、データの記録操作を行うことができる。なお、スワップによって代替領域局所化が抑制され不揮発性メモリ１１０内の各ＰＢの書き換え回数が平準化される。従って、最大書き換え回数Ｍあるいは平均書き換え回数ａに対応するデータ保持時間、すなわちアクセスモジュール２００Ａに通知される寿命情報は、不揮発性メモリ１１０内の任意の記録情報のデータ保持時間と見なすことができる。つまり、該寿命情報は不揮発性記憶モジュールの寿命と考えて差し支えない。【００８１】
尚第１の実施の形態では、記録状態判定部は書き換え回数の最大値と平均値とに基づいて代替領域局所化の検出を行っているが、書き換え回数の最大値と最小値など他の数値に基づいて検出を行うようにしてもよい。又読み書き制御部は書き換え回数に基づいてスワップ対象領域を決定しているが、書き換え回数と共にその物理ブロックが空きブロックかどうかによってスワップ対象領域を決定するようにしてもよい。スワップの対象となる物理ブロックの一方を空きブロックに限定すれば、図７Ｄに示す３段階の処理が不要となり、図７Ｃや図７Ｅに示すように１回の処理でスワップが終了する。【００８２】
更にスワップは書き換え回数の最大値に近い物理ブロックと最小値に近い物理ブロックだけをスワップ対象領域として、スワップの回数を減少させるようにしてもよい。【００８３】
（第２の実施の形態）
図１５は、本発明の第２の実施の形態における不揮発性記憶システムを示したブロック図である。図１５において、不揮発性記憶システムは、不揮発性記憶モジュール１００Ｂとアクセスモジュール２００Ｂとから構成される。アクセスモジュール２００Ｂは、第１の実施の形態のアクセスモジュールに、システム条件通知部２０２を更に加えたものである。不揮発性記憶モジュール１００Ｂは、メモリコントローラ１２０Ｂと不揮発性メモリ１１０を含む。メモリコントローラ１２０Ｂは、第１の実施の形態のメモリコントローラ１２０Ａに、システム条件受信部１６１とシステム条件判定部１６２を更に加えたものである。なお、読み書き制御部１６３は第１の実施の形態の読み書き制御部１２７を変更したものである。その他のブロックは図１の第１の実施の形態の不揮発性記憶モジュールと同様である。【００８４】
以上のように構成された、本発明の第２の実施の形態における不揮発性記憶システムの動作について説明する。図１６は本発明の第２の実施の形態における全体処理を示すフローチャート、図１７はシステム条件判定処理を示すフローチャート、図１８はスワップ処理を示すフローチャートであり、図１９は書き込み処理を示すタイムチャートである。【００８５】
なお、基本的な動作は、第１の実施の形態の不揮発性記憶システムと同様であり、相違点は、アクセスモジュール２００Ｂから受信したシステム条件、すなわち書き込み速度や電力などの条件を満足する範囲でスワップ処理が可能か否か、更に可能な場合はどの程度のスワップ処理が行えるかの判定を行い、そのスワップ可否判定に基づいてスワップ処理を行う点である。【００８６】
図１６に示す全体処理において、まず初期化処理を行い、アクセスモジュール２００Ｂからのアクセスを待受ける。ここでアクセスモジュール２００Ｂからのアクセスがあり書き込みコマンドが与えられたとする（Ｓ６０２）。アクセスモジュール２００Ｂはデータの書き込みにおいては、図１９に示すように、書き込みコマンドと、その引数である開始論理ブロック番号（ＬＢＮ＿Ｓ）及びシステム条件を転送する。システム条件受信部１６１は、ホストインターフェイス１２１を介してシステム条件を受信する（Ｓ６０３）。その後データを１論理ブロック（以降１ＬＢとする）毎に間欠的に転送する。なお、アクセスモジュール２００Ｂはデータが必要量転送した時点で図示しない終了コマンドを転送し、書き込み処理が終了する。【００８７】
図２０はシステム条件の一例を示すものである。本実施の形態において、システム条件は基本条件と速度条件と電力条件の３つからなる。基本条件は、寿命対策可否を表すフラグであり、このフラグが０の場合は、速度条件や電力条件に関わらず強制的に寿命対策を禁止する。一方このフラグが１の場合は、寿命対策を可能とする。この場合は後述する速度条件や電力条件に応じて不揮発性記憶モジュール１００Ｂ側がその能力にあわせて、読み書き制御部１６３などによるスワップ処理の可否を判定する。【００８８】
速度条件は不揮発性記憶モジュール１００Ｂにデータを書き込む速度保証に係る条件であり、この速度条件を満足する範囲内で書き込みを実行する必要がある。速度条件の中のＴｇは、１ＬＢ単位での転送時間間隔を表す。図２０に示すシステム条件の例においては、１秒毎に１ＬＢ分が転送されることとなる。１ＬＢの容量が１ＭＢｙｔｅとすると、必要転送レートは１ＭＢｙｔｅ／秒となる。Ｔｔとは、１ＬＢ分のデータが実際に転送されている時間を表す。すなわちＴｇ−Ｔｔは転送されない時間となる。【００８９】
電力条件は不揮発性記憶モジュール１００Ｂに供給できる許容電力Ｐａ（最大電力）であり、この電力条件を満足する範囲内で少なくとも書き込みを実行する必要がある。【００９０】
Ｓ６０３においてシステム条件を受信した後に、Ｓ６０４以下の書き込み〜スワップの一連処理に移行する。書き込み〜スワップ一連処理において、メモリコントローラ１２０ＢはＳ６０４とＳ６０５において、第１の実施の形態のＳ１０３，Ｓ１０４と同様に書き込み処理、記録状態判定処理を行い、その後システム条件判定部１６２がシステム条件判定処理（Ｓ６０６）を行う。【００９１】
図１７はシステム条件判定処理を示すものであり、基本条件である寿命対策可否フラグ１の場合かどうかを判断する（Ｓ７００）。このフラグが０であれば判定処理を終了し、このフラグが１であればＳ７０１，Ｓ７０２に進んで、速度条件に基づくスワップ可能回数Ｋ２ｔの算出と、電力条件に基づくスワップ可能回数Ｋ２ｐの算出を行う。【００９２】
システム条件判定部１６２は速度条件Ｔｇ，Ｔｔと１ＬＢあたりのスワップに要する時間Ｔｓとに基づき、式（５）に従ってＫ２ｔを算出する。
Ｋ２ｔ＝ｉｎｔ｛（Ｔｇ−Ｔｔ）／Ｔｓ｝  ・・・（５）
なおｉｎｔは整数値をとる関数とする。但し前述したスワップの仕方によって異なるので、システム条件判定部１６２は、式（５）の算出に際して、読み書き制御部１６３から、スワップタイプ情報を受信した上でＴｓを決定するものとする。【００９３】
システム条件判定部１６２は電力条件Ｐａと１ＬＢあたりのスワップに要する電力Ｐｓに基づき、式（６）に従ってＫ２ｐを算出する。
Ｋ２ｐ＝ｉｎｔ（Ｐａ／Ｐｓ）  ・・・（６）【００９４】
システム条件判定部１６２はＳ７０２の後、スワップ可能回数Ｋ２を式（７）に従って算出する（Ｓ７０３）。但し、ＭＩＮは最小値をとる関数である。
Ｋ２＝ＭＩＮ（Ｋ２ｔ, Ｋ２ｐ）  ・・・（７）【００９５】
その後、システム条件判定部１６２はＫ２が０でなければ（Ｓ７０４）、スワップ可否フラグＳＷＦ２を１にセットし（Ｓ７０５）、処理を終了する。【００９６】
以上のシステム条件判定処理（Ｓ６０６）の後、Ｓ６０７においてスワップ処理を行う。図１８のスワップ処理は、前述した図１１のスワップ処理とほぼ同様の処理である。相違点は、Ｓ８００においてスワップ要否フラグＳＷＦ１とスワップ可否フラグＳＷＦ２の両者が共にセットされているかを判定する点と、Ｓ８０４の後にスワップ回数ｋとスワップ可能回数Ｋ２を比較する（Ｓ８０９）を行う点である。比較判定の結果ｋがＫ２に達していない場合、スワップする余裕があるので、Ｓ８１０に移行し、スワップ処理を継続する。比較判定の結果ｋがＫ２に達した場合はスワップする余裕がなくなったので、Ｓ８０５に進んで、スワップ処理を終了する。【００９７】
以上の処理を終了コマンドが転送されるまで実行し（Ｓ６０８）、終了コマンドを受信した後にスワップ可否フラグＳＷＦ２を０にリセットし、次のアクセス待ちに移行する（Ｓ６０９）。【００９８】
以上のように、第２の実施の形態では、第１の実施の形態の「記録状態に基づくスワップ要否判断」に加え、「システム条件に基づくスワップ可否判断」を行う。これにより、速度や電力面でのオーバーヘッドを合理化でき、例えば動画などのリアルタイム記憶が必要なコンテンツを記録することができないなどのシステム上の課題を解決することが可能となる。【００９９】
なお、書き込みコマンドの引数としてシステム条件を受信したが、システム条件通知専用のコマンドを使用しても構わない。また、不揮発性記憶モジュール１００Ｂにスイッチを設け、該スイッチの操作によって例えば図２０の基本条件である寿命対策可否を切り換えるようにしても構わない。【０１００】
また本実施の形態では、式（５）と式（６）を用いてＫ２ｓとＫ２ｐを算出したが、不揮発性記憶モジュール１００Ｂ内に、速度条件とスワップ回数Ｋ２ｓ、電力条件とスワップ回数Ｋ２ｐの関係を示すテーブルを設けておき、システム条件が与えられたときにこれらのテーブルを参照することによって、Ｋ２ｓやＫ２ｐの値を決定しても構わない。【０１０１】
（第３の実施の形態）
図２１は、本発明の第３の実施の形態における不揮発性記憶システムを示したブロック図である。この不揮発性記憶システムは不揮発性記憶モジュール１００Ｃとアクセスモジュール２００Ａから成り立っている。アクセスモジュール２００Ａは第１の実施の形態のアクセスモジュールと同様である。不揮発性記憶モジュール１００Ｃは、システム条件受信部１７１、システム条件判定部１７２及び読み書き制御部１７３を有しており、その他のブロックは、図１５に示す第２の実施の形態における不揮発性記憶システムと同様である。【０１０２】
以上のように構成された、本発明の第３の実施の形態における不揮発性記憶システムの動作について説明する。図２２は、本発明の第３の実施の形態に於ける不揮発性記憶モジュール１００Ｃの処理を示すフローチャートである。なお、基本的な動作は、第２の実施の形態の不揮発性記憶システムと同様であり、相違点は、システム条件判定部１７２が不揮発性メモリの種別を表すＩＤコードに基づいて、寿命対策の判定を行う点である。【０１０３】
図２２に示す初期化処理（Ｓ９００）において、読み書き制御部１７３はメモリインターフェイス１２３を介して不揮発性メモリ１１０からＩＤコードを読み出し、該ＩＤコードをシステム条件受信部１７１が受信する。ＩＤコードとは、不揮発性メモリ１１０内のＲＯＭ等に予め保持された不揮発性メモリ１１０の種別情報であり、高信頼性の不揮発性メモリ（例えば、２値ＮＡＮＤフラッシュメモリ）か、低信頼性の不揮発性メモリ（例えば、多値ＮＡＮＤフラッシュメモリ）か、を表す。【０１０４】
さてアクセスモジュール２００Ａよりアクセスを待受ける。アクセスがあればステップＳ９０１よりＳ９０２に進んで書き込みコマンドかどうかを判別する。書き込みコマンドであればＳ９０３に進んで書き込み処理、記録状態判定処理を行う。記録処理（Ｓ９０３）、記録状態判定処理（Ｓ９０４）は夫々図９及び図１０の処理と同様である。そして記録状態の判定を終えると、システム条件判定処理を行う。システム条件判定部１７２は、システム条件受信部１７１が受信したＩＤコードを、寿命対策の判定における判定基準として解釈する。具体的には、高信頼性の不揮発性メモリを表すＩＤコード値の場合は、スワップ処理による信頼性対策は不要と判断し、システム条件判定処理を終了する。一方、低信頼性の不揮発性メモリを表すＩＤコード値の場合は寿命対策が可能と判断する（Ｓ９０５）。この寿命対策が可能でなければ処理を終了し、寿命対策が可能であればＳ９０６に進んでフラグＳＷＦ２をセットし、次いでＳ９０７に進んでスワップ処理を行う。【０１０５】
図２３は第３の実施の形態によるスワップ処理を示すフローチャートである。スワップを開始すると、まずＳ１０００においてフラグＳＷＦ１とＳＷＦ２が共に１かどうかを判別する。これらが１でなければ処理を終了し、これらが１であればＳ１００１に進む。以降の処理については図１１に示す第１の実施の形態と同様に、スワップ処理を行う。【０１０６】
以上のように、システム条件判定部１７１が、不揮発性メモリ１１０のＩＤコード、すなわち不揮発性メモリ１１０の信頼性に基づいてスワップ可否判定を行うようにしたので、無駄なスワップ処理を行う必要がなく、スワップ処理に要する電力や速度のオーバーヘッドを合理化することが可能となる。【０１０７】
なお、ＩＤコードとして、不揮発性記憶モジュールの種類を識別するメモリカード識別コードを用いても構わない。この場合は、不揮発性メモリ１１０内の記録領域の一部に予め不揮発性記憶モジュール１００Ｃの種別をメーカ側で書き込んでおき、初期化処理において、システム条件判定部１７２が該メモリカード識別コードに基づいたスワップ可否判定を行う。【０１０８】
メモリカード識別コードは、例えばＲＡＭ型のメモリカードか、あるいはＷＯＭ型、すなわち１回しか書き込めないメモリカードなのかを表すコードである。システム条件判定部１７２は、システム条件受信部１７１が不揮発性メモリ１１０から読み出したメモリカード識別コードを寿命対策の判定基準として解釈する。具体的には、ＷＯＭ型のメモリカードを表すメモリカード識別コードの場合は、スワップ処理による信頼性対策不要と判断する。一方、ＲＡＭ型のメモリカードを表すメモリカード識別コード値の場合は、寿命対策を行わずＳ９０１に戻る。【０１０９】
このように、システム条件判定部１７２が、不揮発性記憶モジュール１００Ｃのメモリカード識別コード、すなわち不揮発性記憶モジュールの種類に基づいてスワップ可否判定を行うようにした。このため無駄なスワップ処理を行う必要がなく、スワップ処理に要する電力や速度のオーバーヘッドを合理化することが可能となる。【０１１０】
尚第１〜３の実施の形態において、アドレス管理部１２５が物理領域管理テーブル１３１を巡回的にサーチすることによって取得した空きＰＢを、書き込み先ＰＢとして決定するようにしたが、全ての空きＰＢの中でＷＣの小さい空きＰＢを優先的に書き込み先ＰＢに決定するようにしても構わない。又全ての空きＰＢの中からランダムに選択した空きＰＢを書き込み先ＰＢに決定するようにしても構わない。【０１１１】
尚第１〜３の実施の形態において、書き込みコマンドの受信毎の書き込み処理に付随してスワップ処理を行うようにしたが、このタイミングに限定されることはない。例えば、記録状態判定部１２６のスワップ要否判定結果を物理領域管理テーブル１３１等に保持しておき、次の初期化処理において物理領域管理テーブル１３１を調べ、スワップ要の場合はスワップを行うようにしても構わない。又スワップ処理を前半と後半の２つに分割し、前半は書き込みコマンドの受信毎の書き込み処理に付随して実施し、後半は初期化処理に実施するようにしても構わない。
【産業上の利用可能性】
【０１１２】
本発明にかかる不揮発性記憶システムは、長寿命かつ書き込み速度を両立する方法を提案したものであり、半導体メモリカードなどの不揮発性記憶モジュールを使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話において有益である。
【図１】
2009063614.tif 000003
【図２】
2009063614.tif 000004
【図３Ａ】
2009063614.tif 000005
【図３Ｂ】
2009063614.tif 000006
【図４】
2009063614.tif 000007
【図５】
2009063614.tif 000008
【図６】
2009063614.tif 000009
【図７Ａ】
2009063614.tif 000010
【図７Ｂ】
2009063614.tif 000011
【図７Ｃ】
2009063614.tif 000012
【図７Ｄ】
2009063614.tif 000013
【図７Ｅ】
2009063614.tif 000014
【図７Ｆ】
2009063614.tif 000015
【図８】
2009063614.tif 000016
【図９】
2009063614.tif 000017
【図１０】
2009063614.tif 000018
【図１１】
2009063614.tif 000019
【図１２】
2009063614.tif 000020
【図１３Ａ】
2009063614.tif 000021
【図１３Ｂ】
2009063614.tif 000022
【図１４Ａ】
2009063614.tif 000023
【図１４Ｂ】
2009063614.tif 000024
【図１５】
2009063614.tif 000025
【図１６】
2009063614.tif 000026
【図１７】
2009063614.tif 000027
【図１８】
2009063614.tif 000028
【図１９】
2009063614.tif 000029
【図２０】
2009063614.tif 000030
【図２１】
2009063614.tif 000031
【図２２】
2009063614.tif 000032
【図２３】
2009063614.tif 000033
【国際調査報告】
2009063614.tif 000034
2009063614.tif 000035
2009063614.tif 000036
2009063614.tif 000037
2009063614.tif 000038
2009063614.tif 000039