Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY CONTROLLER, NONVOLATILE STORAGE MODULE, ACCESS MODULE, AND NONVOLATILE STORAGE SYSTEM
Document Type and Number:
WIPO Patent Application WO/2009/063614
Kind Code:
A1
Abstract:
When a write command is issued, new data is written into an empty physical block of a nonvolatile memory (110). Here, if data of the same logical block has been written already, the block is erased and a recording state is judged by a recording state judgment unit (126). A physical block is swapped according to the number of write processes performed. Thus, it is possible to effectively perform a swap without increasing the number of write processes in a particular region, thereby increasing the service life of a nonvolatile storage module.

Inventors:
NAKANISHI MASAHIRO
ADACHI TATSUYA
Application Number:
PCT/JP2008/003260
Publication Date:
May 22, 2009
Filing Date:
November 11, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PANASONIC CORP (JP)
NAKANISHI MASAHIRO
ADACHI TATSUYA
International Classes:
G06F12/16
Foreign References:
JPH1091535A1998-04-10
JPH1173378A1999-03-16
Attorney, Agent or Firm:
OKAMOTO, Yoshiki (Shori Building 7-7-19, Takaidahondori, Higashi-Osaka-sh, Osaka 66, JP)
Download PDF:
Claims:
 不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、
 少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、
 前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、
 データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備するメモリコントローラ。
 前記記録状態判定部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数に基づいてスワップ要否判定を行う請求項1記載のメモリコントローラ。
 前記記録状態判定部は、前記書き換え回数の最大値と、平均値及び最小値のいずれか一方とに基づいてスワップの要否を判定する請求項2記載のメモリコントローラ。
 前記読み書き制御部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数に基づいてスワップ対象領域を決定する請求項1に記載のメモリコントローラ。
 前記読み書き制御部は、前記不揮発性メモリを構成する物理ブロックの書き換え回数及びその物理ブロックが空き物理ブロックかどうかによってスワップ対象領域を決定する請求項1に記載のメモリコントローラ。
 前記メモリコントローラは、前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部を更に備えた請求項1に記載のメモリコントローラ。
 外部から指定されたシステム条件を受信するシステム条件受信部と、
 前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、
 前記読み書き制御部は、データの読み書き制御を行うと共に、前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行う請求項1に記載のメモリコントローラ。
 前記システム条件は、アクセス速度に係る要求条件、電力に係る要求条件、及び寿命対策に係る要求条件、の少なくとも1つである請求項7記載のメモリコントローラ。
 前記システム条件判定部は、システム条件に基づいてスワップ数を決定する請求項7記載のメモリコントローラ。
 前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、
 前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行う請求項7記載のメモリコントローラ。
 前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、
 前記システム条件判定部は、前記不揮発性記憶モジュールの種別に応じてスワップ可否の判定を行う請求項7記載のメモリコントローラ。
 外部からのアクセス指示に応じてデータの読み出し、書き込みを行う不揮発性記憶モジュールであって、
 前記不揮発性記憶モジュールは、
 不揮発性メモリと、
 前記不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラと、を有し、
 前記メモリコントローラは、
 少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、
 前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、
 データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備するものである不揮発性記憶モジュール。
 前記メモリコントローラは、
 前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部を更に備えた請求項12記載の不揮発性記憶モジュール。
 前記メモリコントローラは、
 前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を外部に通知する寿命判定部と、
 外部から指定されたシステム条件を受信するシステム条件受信部と、
 前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、
 前記読み書き制御部は、データの読み書き制御を行うと共に、前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行う請求項12記載の不揮発性記憶モジュール。
 前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、
 前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行う請求項14記載の不揮発性記憶モジュール。
 前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、
 前記システム条件判定部は、前記不揮発性記憶モジュールの種別に応じてスワップ可否の判定を行う請求項14記載の不揮発性記憶モジュール。
 請求項13に記載の不揮発性記憶モジュールと接続して、前記不揮発性記憶モジュールにデータを書き込み、前記不揮発性記憶モジュールからデータを読み出すアクセスモジュールであって、
 前記不揮発性記憶モジュールから受信した寿命情報を表示する寿命情報表示部を備えたアクセスモジュール。
 請求項14に記載の不揮発性記憶モジュールと接続して、前記不揮発性記憶モジュールにデータを書き込み、前記不揮発性記憶モジュールからデータを読み出すアクセスモジュールであって、
 前記不揮発性記憶モジュールに前記システム条件を通知するシステム条件通知部を備えたアクセスモジュール。
 アクセスモジュールと、前記アクセスモジュールからのアクセス指示に応じてデータの読み出し、書き込みを行う不揮発性記憶モジュールとを有する不揮発性記憶システムであって、
 前記不揮発性記憶モジュールは、
 不揮発性メモリと、
 前記不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラと、を有し、
 前記メモリコントローラは、
 少なくとも前記不揮発性メモリの空き領域を管理し、データの書き込み時に前記不揮発性メモリの空き領域の中からデータの書き込み先領域を選択するアドレス管理部と、
 前記不揮発性メモリの記録状態に基づき記憶領域のスワップ要否判定を行う記録状態判定部と、
 データの読み書き制御を行うと共に、前記記録状態判定部の判定結果に応じてスワップ対象領域を決定し、スワップ処理を行う読み書き制御部と、を具備する不揮発性記憶システム。
 前記メモリコントローラは、
 前記不揮発性メモリに記憶されたデータのデータ保持時間に係る寿命を判定し、該寿命情報を前記アクセスモジュールに通知する寿命判定部を備えた請求項19記載の不揮発性記憶システム。
 前記メモリコントローラは、
 前記アクセスモジュールから指定されたシステム条件を受信するシステム条件受信部と、
 前記システム条件に基づき記憶領域のスワップ可否判定を行うシステム条件判定部と、をさらに備え、
 前記読み書き制御部は、データの読み書き制御を行うとともに前記記録状態判定部及び前記システム条件判定部の判定結果に応じてスワップ対象領域の決定とスワップ処理を行う請求項19記載の不揮発性記憶システム。
 前記システム条件は、アクセス速度に係る要求条件、電力に係る要求条件、寿命対策に係る要求条件、の少なくとも1つである請求項21記載の不揮発性記憶システム。
 前記システム条件判定部は、システム条件に基づいてスワップ数を決定する請求項21記載の不揮発性記憶システム。
 前記システム条件受信部は、前記不揮発性メモリの種別情報を受信するものであり、
 前記システム条件判定部は、前記不揮発性メモリの種別に応じてスワップ可否判定を行う請求項21記載の不揮発性記憶システム。
 前記システム条件受信部は、メモリコントローラが実装される不揮発性記憶モジュールの種別情報を受信するものであり、
 前記システム条件判定部は、メモリコントローラが実装される不揮発性記憶モジュールの種別に応じてスワップ可否判定を行う請求項21記載の不揮発性記憶システム。
Description:
メモリコントローラ、不揮発性 憶モジュール、アクセスモジュール、及び 揮発性記憶システム

 本発明は、不揮発性メモリを備えた半導 メモリカードなどの不揮発性記憶モジュー 、不揮発性メモリを制御するメモリコント ーラ、アクセスモジュール、及び不揮発性 憶モジュールにアクセスモジュールを構成 件として加えた不揮発性記憶システムに関 る。

 書き換え可能な不揮発性メモリを備える 揮発性記憶モジュールは、着脱型の記憶装 として半導体メモリカードを中心にその需 が広まっている。半導体メモリカードは、 ディスクやテープメディアなどと比較して 常に高価格なものではあるが、小型・軽量 耐震性・取り扱いの簡便さなどのメリット より、デジタルスチルカメラや携帯電話な のポータブル機器の記録媒体としてその需 が広まっている。また近年では、半導体メ リカードの大容量化に伴い、パーソナルコ ピュータのハードディスクの代替装置や、 ジタルテレビの録画メディアとしての応用 討も進んでいる。

 この半導体メモリカードは、不揮発性の 記憶メモリとしてフラッシュメモリを備え それを制御するメモリコントローラを有し いる。メモリコントローラは、デジタルス ルカメラやパーソナルコンピュータ本体な のアクセスモジュールからの読み書き指示 応じて、フラッシュメモリに対する読み書 制御を行う。また非着脱型の不揮発性記憶 ジュールとして、デジタルスチルカメラや ータブルオーディオ機器本体内に組み込ま たものもある。

 フラッシュメモリは、記憶単位であるメ リセルアレイへの書き込みや消去に比較的 い時間を必要とするため、複数のメモリセ を一括して消去したり書き込んだりできる 造となっている。具体的には、フラッシュ モリは複数の物理ブロックから構成され、 物理ブロックは複数のページを含む。フラ シュメモリの消去は物理ブロック単位で、 き込みはページ単位で行われる。

 近年フラッシュメモリは、大容量化と低 スト化への要望に対応して、多値NANDフラッ シュメモリのように1つのメモリセルに2ビッ の情報が記憶できる品種が主流となってき いる。多値NANDフラッシュメモリは、メモリ セルの信頼性確保が難しいため、書き換え回 数が低い。従来の2値NANDフラッシュメモリの き換え保証回数は10万回、データ保持の保 時間は10年間であった。これに対して、多値 NANDフラッシュメモリの書き換え保証回数は1 回以下で、更には書き換え回数とデータ保 時間が、例えば図1に示すようにトレードオ フの関係になってきている。

 前述した書き換え回数やデータ保持時間 、半導体メモリカードなどの不揮発性記憶 ジュールの寿命、及び不揮発性記憶モジュ ルを備えた不揮発性記憶システムの寿命に 結している。

 従来のフラッシュメモリでは寿命をでき だけのばすために、特定の物理ブロックに き換えが集中しないウェアレベリングとい れるアドレス管理方法が適用されている。 えば、特許文献1によれば、データの書き込 みの際に、空き領域である空き物理ブロック にデータを書き込む。このときその論理アド レスに対する旧データが記憶されている場合 は、該旧データが記憶された物理ブロックの 旧データを消去し、更に該物理ブロックを空 きブロックとして管理する。こうして特定の 物理ブロックばかりに書き込みが集中しない 工夫がなされている。この方法はデータの書 き込みは空き領域に書き込み、書き込み終わ るまで旧データを保持し、不良ブロック代替 用のスペア領域を含む空き領域を利用してウ ェアレベリングを行う方法である。

 しかしながら、特許文献1の不揮発性半導 体メモリ装置においては、空きブロックの残 数が少なくなってくると、ある特定の論理ア ドレスのデータばかりを何度も書き換えた場 合、空きブロックと該論理アドレスのデータ がアロケートされた物理ブロックとの間でデ ータの移動が頻繁に繰り返されることとなる 。すなわち特定の物理ブロックの書き換え( 下、代替処理という)が急激に増加すること なる。なお、この現象のことを以降「代替 域の局所化」という。

 この問題に対応するために、例えば特許文 2の半導体ディスク装置では、各物理ブロッ クの書き換え回数を保持しておき、書き換え 回数に基づいてデータをスワップさせるよう にしている。具体的には、あるデータ(デー X)の書き換えにおいては、データXの旧デー が記憶された物理ブロック(物理ブロックA) 消去して書き換えるが、物理ブロックAの書 換え回数が大きい場合は、書き換え回数の さい別の物理ブロック(物理ブロックB)に書 込む。但し、物理ブロックBに既にデータY 記憶されている場合は、物理ブロックAの元 データXを消去した後に、データYを物理ブ ックAに移動する。その後新しいデータXを物 理ブロックBに書き込む。こうすれば以後デ タXが更新されたときに、物理ブロックBが書 き換えられることになる。このように書き換 え回数に基づいて物理ブロックA,Bのスワップ を行うことで、動的なウェアレベリングを実 現している。

特開2003-263894号公報

特開平5-282880号公報

 しかしながら、特許文献2によれば、デー タXの書き換えにおいて、データXの旧データ 消去された時点で電源遮断などのエラーが 生すると、旧データが復活できないといっ 課題を有していた。また、スワップ処理に り、速度や電力面でのオーバーヘッドが増 し、例えば動画などのリアルタイム記憶が 要なコンテンツを記録することができない どのシステム上の課題を有していた。

 そこで、本発明は上記問題点に鑑み、従 よりも代替領域の局所化の問題がなく長寿 で、電源遮断があっても旧データを復活す ことができるメモリコントローラ、不揮発 記憶モジュール、アクセスモジュール、不 発性記憶システムを提供することを目的と る。

 この課題を解決するために、本発明のメ リコントローラは、不揮発性メモリに接続 れ、外部からのアクセス指示に応じてデー の読み出し、書き込みを行うメモリコント ーラであって、少なくとも前記不揮発性メ リの空き領域を管理し、データの書き込み に前記不揮発性メモリの空き領域の中から ータの書き込み先領域を選択するアドレス 理部と、前記不揮発性メモリの記録状態に づき記憶領域のスワップ要否判定を行う記 状態判定部と、データの読み書き制御を行 と共に、前記記録状態判定部の判定結果に じてスワップ対象領域を決定し、スワップ 理を行う読み書き制御部と、を具備するも である。

 ここで前記記録状態判定部は、前記不揮 性メモリを構成する物理ブロックの書き換 回数に基づいてスワップ要否判定を行うよ にしてもよい。

 ここで前記記録状態判定部は、前記書き え回数の最大値と、平均値及び最小値のい れか一方とに基づいてスワップの要否を判 するようにしてもよい。

 ここで前記読み書き制御部は、前記不揮 性メモリを構成する物理ブロックの書き換 回数に基づいてスワップ対象領域を決定す ようにしてもよい。

 ここで前記読み書き制御部は、前記不揮 性メモリを構成する物理ブロックの書き換 回数及びその物理ブロックが空き物理ブロ クかどうかによってスワップ対象領域を決 するようにしてもよい。

 ここで前記メモリコントローラは、前記 揮発性メモリに記憶されたデータのデータ 持時間に係る寿命を判定し、該寿命情報を 部に通知する寿命判定部を更に備えるよう してもよい。

 ここで外部から指定されたシステム条件 受信するシステム条件受信部と、前記シス ム条件に基づき記憶領域のスワップ可否判 を行うシステム条件判定部と、をさらに備 、前記読み書き制御部は、データの読み書 制御を行うと共に、前記記録状態判定部及 前記システム条件判定部の判定結果に応じ スワップ対象領域の決定とスワップ処理を うようにしてもよい。

 ここで前記システム条件は、アクセス速 に係る要求条件、電力に係る要求条件、及 寿命対策に係る要求条件、の少なくとも1つ としてもよい。

 ここで前記システム条件判定部は、シス ム条件に基づいてスワップ数を決定するよ にしてもよい。

 ここで前記システム条件受信部は、前記 揮発性メモリの種別情報を受信するもので り、前記システム条件判定部は、前記不揮 性メモリの種別に応じてスワップ可否判定 行うようにしてもよい。

 ここで前記システム条件受信部は、メモ コントローラが実装される不揮発性記憶モ ュールの種別情報を受信するものであり、 記システム条件判定部は、前記不揮発性記 モジュールの種別に応じてスワップ可否の 定を行うようにしてもよい。

 又これらのメモリコントローラと不揮発 メモリとを用いて、外部からのアクセス指 に応じてデータの読み出し、書き込みを行 不揮発性記憶モジュールとすることができ 。

 又本発明のアクセスモジュールは、これ の不揮発性記憶モジュールと接続して、前 不揮発性記憶モジュールから受信した寿命 報を表示する寿命情報表示部を備えた前記 揮発性記憶モジュールにデータを書き込み 前記不揮発性記憶モジュールからデータを み出すアクセスモジュールとすることがで る。

 又本発明のアクセスモジュールは、これ の不揮発性記憶モジュールと接続して、前 不揮発性記憶モジュールに前記システム条 を通知するシステム条件通知部を備えた前 不揮発性記憶モジュールにデータを書き込 、前記不揮発性記憶モジュールからデータ 読み出すアクセスモジュールとすることが きる。

 又本発明の不揮発性記憶システムは、ア セスモジュールと、前記アクセスモジュー からのアクセス指示に応じてデータの読み し、書き込みを行う不揮発性記憶モジュー とを有する不揮発性記憶システムであって 前記不揮発性記憶モジュールは、不揮発性 モリと前記いずれかのメモリコントローラ 有するものとすることができる。

 本発明によれば、アドレス管理部の空き 域選択に基づく書き込み先領域の決定、す わち代替処理によるウェアレベリングを基 とし、記録状態判定部が記録状態に応じた ワップ要否判定を行い、読み書き制御部が ワップ要否判定に応じてスワップ対象領域 決定とスワップを実行するようにした。こ ため前述した特許文献1の課題である代替領 域の局所化を解決することができ、不揮発性 記憶モジュールを長寿命化することができる 。又本発明によれば空き物理ブロックに新た なデータを書き込むようにしているので、特 許文献2の課題である電源遮断問題を解決す ことができる。

 なお、記録状態判定部が、代替領域局所 を検出するので、代替領域が局所化した際 スワップすることができる。また、物理ブ ックの書き換え回数に基づき、簡単に代替 域局所化の検出が行える。また、書き換え 数又はこれに加えて空きブロックかどうか 基づいてスワップ対象を決定すれば、効果 なスワップをすることができる。

図1は多値フラッシュメモリの信頼性を 示すグラフである。 図2は本発明の第1の実施の形態におけ 不揮発性記憶システムを示すブロック図で る。 図3Aは物理領域管理テーブル131を示す モリマップである。 図3Bは論物変換テーブル132を示すメモ マップである。 図4はPBsaの取得回路127Aを示す回路図で る。 図5はPBsbの取得回路127Bを示す回路図で る。 図6は寿命テーブル128aを示すメモリマ プである。 図7Aは書き込み前の記録状態を示す説 図である。 図7Bは書き込み後の記録状態を示す説 図である。 図7Cはスワップ前の記録状態を示す説 図である。 図7Dは1回目のスワップ後の記録状態を 示す説明図である。 図7Eは2回目のスワップ後の記録状態を 示す説明図である。 図7Fは3回目(最終回)のスワップ後の記 状態を示す説明図である。 図8は本発明の第1の実施の形態に於け 不揮発性記憶モジュール100Aの全体処理を示 フローチャートである。 図9は書き込み処理を示すフローチャー トである。 図10は記録状態判定処理を示すフロー ャートである。 図11はスワップ処理を示すフローチャ トである。 図12は寿命判定処理を示すフローチャ トである。 図13Aは書き込み時の物理領域管理テ ブル131の仮更新を示すメモリマップである 図13Bは書き込み時の論物変換テーブ 132の仮更新を示すメモリマップである。 図14Aは1回目のスワップ時の物理領域 理テーブル131の仮更新を示すメモリマップ ある。 図14Bは1回目のスワップ時の論物変換 ーブル132の仮更新を示すメモリマップであ 。 図15は本発明の第2の実施の形態におけ る不揮発性記憶システムを示すブロック図で ある。 図16は本発明の第2の実施の形態におけ る不揮発性記憶モジュール100Bの全体処理を すフローチャートである。 図17はシステム条件判定処理を示すフ ーチャートである。 図18はスワップ処理を示すフローチャ トである。 図19は書き込み処理を示すタイムチャ トである。 図20はシステム条件の一例を示す図で る。 図21は本発明の第3の実施の形態におけ る不揮発性記憶システムを示すブロック図で ある。 図22は本発明の第3の実施の形態におけ る不揮発性記憶モジュール100Cの全体処理を すフローチャートである。 図23は第3の実施の形態におけるスワッ プ処理を示すフローチャートである。

符号の説明

 100A,100B,100C 不揮発性記憶モジュール
 120A,120B,120C メモリコントローラ
 121 ホストインターフェイス
 122 バッファ
 123 メモリインターフェイス
 124 CPU部
 125 アドレス管理部
 126 記録状態判定部
 127,163,173 読み書き制御部
 128 寿命判定部
 128a 寿命テーブル
 130 不揮発性メモリ
 131 物理領域管理テーブル
 132 論物変換テーブル
 140,150 読み出し回路
 141,151 ORゲート
 142,144,152,154 セレクタ
 143,145,148,153,155,158 レジスタ
 146,156 比較器
 147,157 ANDゲート
 161,171 システム条件受信部
 162,172 システム条件判定部
 200A,200B アクセスモジュール
 201 寿命情報表示部
 202 システム条件通知部

 (第1の実施の形態)
 図2は、本発明の第1の実施の形態における 揮発性記憶システムを示したブロック図で る。図2において、不揮発性記憶システムは 不揮発性記憶モジュール100Aとアクセスモジ ュール200Aとから構成される。アクセスモジ ール200Aは、寿命情報表示部201を含む。不揮 性記憶モジュール100Aは、不揮発性メモリ110 とメモリコントローラ120Aを含む。メモリコ トローラ120Aはホストインターフェイス(ホス トIF)121、バッファ122、メモリインターフェイ ス(メモリIF)123、CPU部124、アドレス管理部125 記録状態判定部126、読み書き制御部127、寿 判定部128を含む。

 不揮発性メモリ110はフラッシュメモリで り、P個の物理ブロックを有する。物理ブロ ックは消去単位であり、P個の物理ブロック 全てデータ記録のために使用されるものと る。物理ブロックは書き込み単位であり、 数のページから成り立っている。一方アク スモジュール200Aが利用可能な論理空間はL個 の論理ブロックから構成されるものとする。 LはPより小さい整数とする。(P-L)個の物理ブ ックはスペア領域及び管理領域として使用 れる。スペア領域は、書き換え時のワーク 域として使用されたり、不良ブロックの代 領域として使用される。また管理領域は、 理領域管理テーブル131や論物変換テーブル13 2を記憶する領域とする。

 ホストインターフェイス(ホストIF)121は外 部バスを介してアクセスモジュール200Aに接 されており、アクセスモジュール200Aからデ タの書き込みコマンドや読み出しコマンド 論理アドレス及びデータを受信したり、デ タの読み出しにおいてはデータをアクセス ジュール200Aに送信するブロックである。

 メモリインターフェイス(メモリIF)123は、 メモリバスを介して不揮発性メモリ110に接続 され、読み書き制御部127の指示により、バッ ファ122に一時記憶されたデータを不揮発性メ モリ110に書き込んだり、不揮発性メモリ110に 記憶されたデータをバッファ122に読み出すも のである。更に、読み書き制御部127の指示に より、不揮発性メモリ110内の2つの物理ブロ ク間でデータのスワップを行うものである

 CPU部124は、メモリコントローラ120Aの全体 を制御するものである。

 アドレス管理部125は、読み書き制御部127 指示によりアクセスモジュール200Aから受信 した論理アドレスに基づいて不揮発性メモリ 110の物理アドレスを生成するものである。ア ドレス管理部125は、後述する物理領域管理テ ーブル131(図面においてPMTと表記)と論物変換 ーブル132(図面においてLPTと表記)を含む。 お、以降、物理ブロックをPB、論理ブロック をLB、物理ブロック番号をPBN、論理ブロック 号をLBN、物理ブロック番号PBNが例えば0の物 理ブロックをPB0、論理ブロック番号LBNが例え ば0の論理ブロックをLB0とする。

 図3Aは、物理領域管理テーブル131を示す モリマップである。このテーブル131は、物 ブロック番号PB0~PB(P-1)について、ブロックス テータスBSTとスワップ対象として既に選択さ れたことを示す選択済みフラグSと書き換え 数WCとを保持している。ブロックステータス において、値0は使用ブロック、値1は空きブ ック、値2は不良ブロックを示す。なお簡単 のため本実施の形態では値2、即ち不良ブロ クはないものとする。アドレス管理部125は データの書き込み処理を実施する都度、読 書き制御部127の指示により物理領域管理テ ブル131のブロックステータスBSTを参照して ータの書き込むための空きブロックを検出 る。更に物理領域管理テーブル131は、スワ プ回数kと総書き換え回数WCallも保持してい 。なおWCallは書き込み処理においては1論理 ロックの書き込み毎に1ずつ加算されるもの する。

 図3Bは、アドレス管理部125に含まれる論 変換テーブル132を示すメモリマップである この変換テーブル132は論理ブロック番号LBN 対応する物理ブロック番号PBNを保持してい 。

 記録状態判定部126は、物理領域管理テー ル131を適宜参照することにより、不揮発性 モリ110内の記録状態、具体的には代替領域 局所化を判定し、読み書き制御部127に対し スワップ要否判定結果を出力するものであ 。

 読み書き制御部127は、アクセスモジュー 200Aからのコマンドに基づいて不揮発性メモ リ110にデータを書き込み、不揮発性メモリ110 からデータを読み出すものである。読み書き 制御部127はライトコマンドが与えられたとき に、アドレス管理部125に対して空き物理ブロ ックのPBNの取得指示を出力する。読み書き制 御部127はスワップ対象となるPBNを取得するた めの取得回路127A,127Bを有している。取得回路 127A,127Bは記録状態判定部126が出力したスワッ プ要否判定結果に応じて、スワップの対象と なる物理ブロックとその書き換え回数を読み 出すための回路である。

 図4は取得回路127Aを示すブロック図であ 。図4において、読み出し回路140は物理領域 理テーブル131の中でSフラグが0のPBNから、 き換え回数WC、物理ブロック番号PBN及びブロ ックステータスBSTをシステムクロックSCKに従 って順次読み出す回路である。読み出し開始 時点において、STARTフラグは1となり、ORゲー 141に出力される。セレクタ142とセレクタ144 ORゲート141の出力が0のときにはA入力、1の きにはB入力を選択する。レジスタ143はPBNとB STを一時保持し、レジスタ145は選択したPBのWC を一時保持する。比較器146はレジスタ145に保 持されたWC(A入力)と次のSフラグが0のPBNから み出された書き換え回数WC(B入力)とを比較し 、そのB入力が小さければ比較出力を0とし、O Rゲート141に出力する。又レジスタ143,145はそ 出力をレジスタ148,149にも与える。アンドゲ ート147はシステムクロックSCKと終了であるこ とを示すエンドフラグが1となったときにレ スタ143,145の出力を夫々保持する。これによ レジスタ148には後述するように、最大書き え回数の物理ブロック番号PBNとそのステー スBSPが保持される。又レジスタ149には最大 き換え回数Mが保持される。

 又図5は読み書き制御部127に含まれる取得 回路127Bを示すブロック図である。取得回路12 7Bは前述した取得回路127Aと同様に、読み出し 回路150、ORゲート151、セレクタ152,154、レジス タ153,155,158、比較器156、及びアンドゲート157 有している。取得回路127Bでは比較器146と156 とでは大小関係が異なっている。又レジスタ 149に相当するレジスタがないが、それ以外は 取得回路127Aと同様である。

 寿命判定部128は、図6に示す寿命テーブル 128aを有している。寿命テーブル128aは書き換 回数WCに対するデータ保持時間rを時間単位 記録したテーブルであって、リードオンリ モリに保持されている。寿命判定部128は、 命テーブル128aを参照することにより不揮発 性記憶モジュール100Aの寿命を判定し、それ アクセスモジュール200Aに通知するものであ 。

 このように構成された、本発明の第1の実 施の形態における不揮発性記憶システムの動 作について説明する。まず、代替領域の局所 化とその抑制についての基本的な説明をした 上で、具体的な動作について説明する。

 [代替領域の局所化について]
 まず、不揮発性メモリ110の記録状態につい 説明する。図7A~図7Fは物理ブロックPB0~PB(P-1) の書き換え回数と、各物理ブロックにアロケ ートされたLBN又はその物理ブロックが空きブ ロックであることを表す。図7Aは書き込み前 記録状態を示す説明図、図7Bは書き込み後 記録状態を示す説明図、図7C~図7Fは、夫々ス ワップ前の記録状態、1回目のスワップ後、2 目のスワップ後、3回目(最終回)のスワップ の記録状態を示す説明図である。以下では WCを書き換え回数、mを最小書き換え回数、a は平均書き換え回数、Mを最大書き換え回数 Xはスワップ処理を開始するかどうかを決定 るための物理ブロックの書き換え回数の最 値と平均値との差を示す閾値とする。

 図7Aでは物理ブロックはほとんど書き換 られないデータがアロケートされているPB群 と、頻繁に書き換えられるデータ(本実施の 態ではLB0)がアロケートされているPBと、LB0 書き換えに使用される空きブロックとに区 される。

 このような記録状態は、不揮発性記憶モ ュールをTVに装着してTV番組録画を行う場合 に起こりえる。具体的には、既に録画した番 組の中で長期保存したい番組を不揮発性記憶 モジュールに記録したままにして、長期保存 不要の番組、例えばニュースなどを頻繁に記 録と消去を繰り返したとする。ここで長期保 存したい番組が論理ブロックLB1~LB(L-1)に対応 、長期保存不要の番組が論理ブロックLB0に 応しているものとする。この場合、図7Aに すように、LB1~LB(L-1)が記録された物理ブロッ クPB1~PB(P-3)は書き換え回数が少ないままで、L B0の記録と消去に使用される物理ブロックPB0 PB(P-2)、PB(P-1)では書き換え回数WCが増加する 。以降、前者の領域を占有領域、後者の領域 を代替領域とする。図7Aでは、最大書き換え 数Mと平均書き換え回数aの差が閾値Xに等し なっており、代替領域が局所化した典型例 ある。

 前述した状況が継続すると代替領域でのW Cの値が増加の一途を辿り、不揮発性記憶モ ュールの寿命が早期に尽きてしまう。そこ 本実施の形態の不揮発性記憶モジュール100A おいては、記録状態判定部126がWCに基づき 替領域の局所化を検出し、読み書き制御部12 7が書き換え回数に基づきスワップを実行し 、代替領域局所化を抑制する。

 以下の2ステップにて、代替領域局所化の抑 制を行う。
 (1)代替領域局所化の検出
 記録状態判定部126は、代替領域の局所化が じているかどうかを式(1)により判定し、式( 1)が成立しているときにスワップが必要とす 判定を読み書き制御部127に転送する。
 M-a>X・・・(1)
なお具体的な算出方法については後述する。 また閾値Xは不揮発性記憶モジュール100Aの処 能力や不揮発性メモリ110の信頼性などに応 て決めればよい。

 (2)スワップ処理
 (2-1)スワップ対象の選択
 代替領域(WCがaより大きい領域)から書き換 回数の大きい順にスワップ対象PBを選択し、 占有領域(WCがaより小さい領域)から書き換え 数の小さい順にスワップ対象PBを選択する なお、代替領域の局所化検出時に纏めて選 すると、選択処理の時間的オーバーヘッド 問題となるので、1ブロック分の書き込みや ワップ毎に、次のスワップ処理に必要なス ップ対象PBを選択する。
 (2-2)重複スワップ禁止
 同一のスワップ対象が連続して選択される 、無駄なスワップが繰り返されることにな ので、これを回避するために、所定回数の ワップが完了する迄は重複選択を禁止する 所定回数をK1とすると、K1は式(2)で与えられ る。但し式(2)において、MINとは最小値をとる 関数とする。
 K1=MIN(WC>aとなるPB数,WC<aとなるPB数) ・ ・(2)
 (2-3)スワップ実行
 こうして決定したスワップ対象のブロック ついて、代替領域と占有領域をスワップす ことにより、代替領域、すなわち書き換え 数が突出する領域を分散させる。

 以上説明した代替領域局所化の抑制につ て、以降、図8に示す全体処理のフローチャ ートや図9以降の各部のフローチャートなど 従い、代替領域局所化の検出やスワップ処 について説明する。なお簡単のため、デー の書き込みにおいて、書き込みコマンドは1 理ブロック単位毎に転送されるものとする また、アクセスモジュール200Aからのアクセ ス指示がなされないときに、不揮発性記憶モ ジュール100Aが自動的にスワップ処理を実行 ると、電源遮断などのエラーによってデー が破壊される可能性がある。これはユーザ とって不合理である。したがって、スワッ 処理は、アクセスモジュール200Aからのアク ス指示に応じてなされることを基本とする 本実施の形態においては、書き込みコマン の受信毎に、書き込み処理に付随して実行 るものとする。

 不揮発性記憶モジュール100Aをアクセスモ ジュール200Aに装着すると、アクセスモジュ ル200Aから不揮発性記憶モジュール100Aに電源 が供給され、不揮発性記憶モジュール100Aは 期化処理を開始する(S100)。初期化処理にお て、メモリコントローラ120Aは不揮発性メモ 110内の管理領域に保持された物理領域管理 ーブル131と論物変換テーブル132をアドレス 理部125内に設けられたRAMに読み込む。この 点において、物理領域管理テーブル131と論 変換テーブル132は、夫々図3Aと図3Bに示す情 報を保持しているものとし、図7Aに示す記録 態に対応する。

 その後アクセスモジュール200Aからのアク セスがあった場合は(S101)、CPU部124がアクセス モジュール200Aから転送されたコマンドを解 する(S102)。コマンドが書き込みコマンドの 合はS103に進み、書き込み~スワップ一連処理 に移行し、読み出しコマンドなどそれ以外の コマンドの場合はS106に移行する。

 ここでLB0を更新し、新データを書き込む き込みコマンドが与えられたものとする。 データは一旦バッファ122に保持される。次 、書き込み~スワップ一連処理について図9 用いて説明する。まずS103において書き込み 理を行う。図9は書き込み処理の詳細を示す ものであり、S200において、読み書き制御部12 7はアドレス管理部125に対して、書き込み先 空き物理ブロック(以下、空きPBという)の取 を指示する。アドレス管理部125は物理領域 理テーブル131の先頭番地からPBをサーチす 。アドレス管理部125による空きPBサーチの開 始位置は、初期化処理毎に先頭番地に設定さ れ、初期化処理後の通常処理においては、前 回サーチした番地からサーチを継続し、最後 尾の番地すなわちPB(P-1)に到達した後は先頭 地に戻るものとする。この場合は初期化後 ので先頭番地PB0から昇順にBSTが1のPBをサー する。

 図13Aは書き込み時の物理領域管理テーブ 131の仮更新を示すメモリマップ、図13Bは書 込み時の論物変換テーブル132の仮更新を示 メモリマップである。図13A左側の状態ではP B(P-2)が最初の空きブロックであるので、この ブロックを書き込み先ブロック番号として読 み書き制御部127に通知する。図13Aにおいて、 取得回路127A,127Bのレジスタ148,158はスワップ 象となるPB(PBsaとPBsb)のPBNとブロックステー スBSTを一時保持するレジスタである。PBsaは き換え回数が大きい領域、すなわち代替領 に属するスワップ対象ブロックであり、一 、PBsbは書き換え回数が小さい領域、すなわ ち占有領域に属するスワップ対象ブロックで ある。

 その後、図13Bの左側に示す論物変換テー ル132を参照し、LB0の旧データが記録されて る領域、即ちPB0を取得する。次いで図13Aに すように物理領域管理テーブル131のPB0のBST 1に、またPB(P-2)のBSTを0に仮更新する。更に 後述するS205の旧データの消去処理によって PB0の書き換え回数が1つ増加するので、図13A 示すようにPB0のWCをa+Xからa+W+1に仮更新する また、図13Bに示すように論物変換テーブル1 32のLB0に対する物理ブロック番地PBNを0からP-2 に仮更新する(S201)。

 図9のS202において、読み書き制御部127はLB 0の新データの書き込み指示と書き込み先ブ ック番号(P-2)をメモリインターフェイス123に 転送する。メモリインターフェイス123はバッ ファ122に一時記憶されたLB0の新データを、不 揮発性メモリ110のPB(P-2)に書き込み始める。 み書き制御部127は書き込みが完了するまで 間にS203,S204の処理を行う。

 図9のS203において、読み書き制御部127は 理領域管理テーブル131から総書き換え回数WC all(現在値)を読み出し、該WCallに1を加算した のを新しいWCallとして物理領域管理テーブ 131に保持し直す。更に読み書き制御部127はS2 04において、物理領域管理テーブル131を参照 てスワップ対象の物理ブロックPBsaとPBsbを 択する(S204)。具体的には、物理領域管理テ ブル131内の選択済みフラグSが0、すなわち「 まだスワップ対象として選択されていないPB を選択範囲として、WCの値が最大のPBのPBNと BSTを、読み書き制御部127内のレジスタ148に保 持し、WCの値が最小のPBのPBNとBSTを、読み書 制御部127内のレジスタ158に保持する。

 WCの最大値検出は、読み書き制御部127の 得回路127Aにより実施する。図4において、物 理領域管理テーブル131は読み出し回路140によ り、物理領域管理テーブル131の先頭番地から 昇順に、Sフラグが0のPBNのWC、PBN、及びBSTを ステムクロックSCKに従って順番に読み出す 読み出し開始時点、すなわち図4ではPB0の読 出し時点において、STARTフラグが1となりOR ート141を介してセレクタ142とセレクタ144のB 力が選択される。すなわち、PB0のWC(a+X+1)が ジスタ145に一時保持され、PB0のPBN(0)とBST(0) レジスタ143に一時保持される。次のSCKによ STARTフラグが0となり、読み出し回路140から 理領域管理テーブル131のPB1についての情報 読み出され、比較器146において、PB0のWC(a+X+ 1)とPB1のWC(m)との比較がなされる。B入力(m)はA 入力(a+X+1)より小さいので比較出力は0となり ORゲート141を介してセレクタ142とセレクタ14 4のS入力は0となる。その結果、レジスタ143に 一時保持されたPBNとBSTが再びレジスタ143に一 時保持される。一方、レジスタ145に一時保持 されたWCが再びレジスタ145に一時保持される ととなる。以上の動作をPB0~PB(P-1)まで繰り すと、PB(P-1)の読み出しが終了した時点でEND ラグが1になり、レジスタ148は最大書き換え 回数のPBに対応するPBNとBSTを保持することに る。すなわち、最大書き換え回数Mをa+X+1と ると、PBsaとしてPB0が選択される。図13Aのレ ジスタ148はこの状態を示している。また、END フラグが1になったとき、レジスタ149は最大 き換え回数のPBに対応するWC、すなわち最大 き換え回数Mを保持している。

 WCの最小値検出は、読み書き制御部127の 得回路127Bにより実施する。処理内容は、基 的に、図4の取得回路の処理と同様であり、 相違点は比較器156の出力条件がB<Aである点 だけである。この相違により、取得回路127B レジスタ158は最小書き換え回数のPBに対応す るPBNとBSTとをレジスタ158に保持することにな る。すなわち、最小書き換え回数をmとする 、PBsbとしてPB1が選択される。図13Aのレジス 158がこのPBN,BSTを保持することとなる。

 図9において、新データの書き込みが終了 し読み書き制御部127がスワップ対象としてPBs aとPBsbを選択した後に、旧データを消去する( S205)。旧データの消去においては、読み書き 御部127がアドレス管理部125に対してLB0の旧 ータを記憶しているPBのサーチを指示する アドレス管理部125は論物変換テーブル132を 照しLB0に保持されているPBN、すなわちPB0を 去対象ブロックとして読み書き制御部127に 知する。その後、読み書き制御部127の制御 よりメモリインターフェイス123は物理ブロ ク番地PB0のデータを消去する。

 S205までの処理が終了した後に、読み書き 制御部127はアドレス管理部125内のRAMで仮更新 された物理領域管理テーブル131と論物変換テ ーブル132をメモリインターフェイス123を介し て不揮発性メモリ110の管理領域に書き戻す(S2 06)。こうしてテーブル131,132が更新される。 上により、図8に示す書き込み処理S103が終了 する。図7Bは書き込みを終えた状態を示して り、PB0の書き換え回数Mが増加している。

 次に記録状態判定処理(S104)に移行する。図1 0は記録状態判定処理の詳細を示すフローチ ートである。まず、記録状態判定部126は、 均書き換え回数aを式(3)に基づいて算出する( S300)。ここで記録状態判定部126は、WCallを物 領域管理テーブル131から参照する。Pは不揮 性メモリ110の物理ブロックの総数である。
a=WCall/P ・・・(3)
Pが例えば4096個であれば、2進数で表されるWCa llを12ビット右シフトしてaを算出することが ましい。aは少々の誤差があっても構わない パラメータであるので、Pが2のべき乗でない 合は、複数の2のべき乗の数値に近似的に分 解し、シフト演算と加算の組合せによって演 算を行ってもよい。こうすれば演算の負荷を 軽減することができる。

 その後、記録状態判定部126は、内部に保 しているスワップ要否フラグ(以降、SWF1と る)を判定する(S301)。このフラグが1の場合は 処理を終了し、SWF1が0の場合はスワップ要否 定(S302)に移行する。S302において式(1)が成立 する場合は、代替領域が局所化している。こ の場合は代替領域局所化を抑制するため、ス ワップ処理を行う。スワップ処理では、まず 式(2)に基づきスワップ目標回数K1を算出し(S30 3)、フラグSWF1を1にセットし、スワップ要否 定結果として読み書き制御部127にスワップ 示を行う(S304)。

 ここで、図3Aに示す不揮発性メモリ110の 録状態においては、平均書き換え回数aより きいWCのPB数は3個、平均書き換え回数aよりW Cが小さいPBの数は4093である。従って式(2)よ スワップ目標回数K1は3となり、スワップ処 は3回実行されることとなる。

 以上により、図8に示す記録状態判定処理 (S104)が終了し、スワップ処理(S105)に移行する 。読み書き制御部127はスワップ処理を図11に すフローチャートに従って行う。まず、読 書き制御部127は、記録状態判定部126から受 したSWF1が0の場合はスワップ処理を実施す ことなく処理を終了し、SWF1が1の場合はS401 降の処理に移行する。

 図14Aは1回目のスワップ時の物理領域管理 テーブル131の仮更新を示すメモリマップ、図 14Bは1回目のスワップ時の論物変換テーブル13 2の仮更新を示すメモリマップである。

 S401において、読み書き制御部127は、図13A に示すレジスタ148,158に保持された情報に基 き、物理領域管理テーブル131においてスワ プの対象であるPB0とPB1のBSTとSフラグとを仮 新するように、アドレス管理部125に指示す 。また読み書き制御部127は、論物変換テー ル132においてスワップの対象となる論理ブ ックLB0に対応するPBNを仮更新するように、 ドレス管理部125に指示する。その結果、物 領域管理テーブル131は図14Aに示すように、 た論物変換テーブル132は図14Bに示すように 更新される。

 その後、S402において、読み書き制御部127は PBsaとPBsbのスワップ指示を行うべく、レジス 148とレジスタ158を参照して、スワップ手順 決定する。ここでは図7Cに示すように、空 PBであるPB0と使用中PBであるPB1とのスワップ 行うことになるので、以下のステップ1~3に 応する手順をメモリインターフェイス123に 示する。
 ステップ1:PB1からLB1のデータの読み出し
 ステップ2:読み出したLB1のデータをPB0に書 込み
 ステップ3:PB1を消去
これに基づいてメモリインターフェイス123は スワップ処理を開始する。

 こうしてステップ1~3を実行することによ 、図7Cの記録状態から図7Dの記録状態に変化 する。すなわちPB0にLB1のデータが書き込まれ 、PB1が空きPBとなる。

 以上のスワップ処理を実行している最中 、読み書き制御部127は物理領域管理テーブ 131に保持したスワップ回数kを読み出し、k インクリメントした後に(S403)、kとスワップ 標回数K1とを比較する(S404)。kがK1に到達し いない場合、すなわちスワップの継続が必 な場合は、現在実行中のスワップ処理にお るPB1の消去によって、PB1の書き換え回数が1 増加する。従って読み書き制御部127は物理 域管理テーブル131からWCall(現在値)を読み出 し、該WCallに1を加算したものを新しいWCallと て物理領域管理テーブル131に保持し直す(S40 9)。

 更に、前述したS204における処理と同様に 、次のスワップ対象PBsaとPBsbを選択し、図14A 示すようにレジスタ148とレジスタ158に、夫 PB(P-2)とPB2のPBNとBSTを保持する(S410)。その後 、読み書き制御部127はS411において、物理領 管理テーブル131と論物変換テーブル132をメ リインターフェイス123を介して不揮発性メ リ110に書き戻し、S400に戻る。

 そして、再度S400以降のスワップ関連処理を 行う。ここで、PB2とPB(P-2)はいずれも使用PBで あるので、スワップ処理においては空きPB、 えばPB(P-1)を中間バッファとして、スワップ 処理を行う。このような場合は、図7Dに示す うにスワップa,b,cの3段階の処理が必要とな 。従って不揮発性メモリ110の記録状態は図7 Dから図7Eに変化し、書き換え回数はPBP-2とPBP- 1の2PB分の増加となる。このようにスワップ 仕方に応じて以下の規則のように従ってWCall は変わる。
 (1)スワップ対象がいずれも空きPBの場合、WC allの増加分は0となる。
 (2)スワップ対象の一方が空きPBで他方が使 PBの場合、WCallの増加分は1となる。
 (3)スワップ対象がいずれも使用PBの場合、WC allの増加分は2となる。
尚、この実施の形態では(1)のスワップはあり 得ない。読み書き制御部127はスワップ関連処 理をK1回(3回)実行すると、図7Fに示すように 全ての代替領域は占有領域に置換され、そ 後S404よりS405に移行する。

 S405において、3回目のスワップ処理によ てPB3の書き換え回数が1増加するので、読み き制御部127はWCallを1加算し、更に物理領域 理テーブル131のSフラグを全てリセットする (S406)。そしてSWF1とスワップ回数kをリセット た後(S407)、読み書き制御部127は物理領域管 テーブル131と論物変換テーブル132を不揮発 メモリ110に書き戻し(S408)、スワップ処理を 了する。

 最後に、寿命判定部128の動作について説 する。アクセスモジュール200Aから不揮発性 記憶モジュール100Aに対して寿命要求コマン が指示されると、図8の全体処理のフローチ ートにおいてS106に制御が移り、寿命判定部 128が図12に示すフローチャートに従って寿命 定処理を実行する。寿命要求コマンドをホ トインターフェイス121が受信すると、その を寿命判定部128に通知し、寿命判定部128はS 500の判定の後、最大書き換え回数Mの取得を み書き制御部127に指示する。

 読み書き制御部127は前述したS204の処理の 中の取得回路127Aの処理によりレジスタ149に 大書き換え回数Mを保持しており、ENDフラグ 寿命判定部128に出力する。寿命判定部128はE NDフラグを受信すると、レジスタ149に保持さ た最大書き換え回数Mを取得し(S501)、図6に す寿命テーブル128aを読み出す(S502)。読み出 において寿命判定部128は、寿命テーブル128a 上の書き換え回数WCにおいて、最大書き換え 数Mに最も近い2つの値を決定する。Mより小 いWCをWC1、Mより大きいWCをWC2とすると、夫 に対応するデータ保持時間r(WC1)とr(WC2)を読 出す(S502)。例えばMが180の場合は、WC1は100、W C2は200であり、r(WC1)は501187、r(WC2)は116906とな 。なおrのディメンジョンは時間である。

 その後、式(4)に従って補間演算を行う(S503)
 r(M)=r(w1)+α{r(w2)-r(w1)} ・・・(4)
 但し、α=(M-w1)/(w2-w1)
例えば、Mが180の場合はr(M)は193762(時間)とな 。寿命判定ブロック28は演算結果であるr(M) 寿命情報として、ホストインターフェイス12 1を介してアクセスモジュール200Aに通知する( S504)。

 アクセスモジュール200Aはr(M)の通知を受 ると、寿命情報表示部201がr(M)を表示する。 お、Mが180の場合はr(M)の値が大きいので、 ィメンジョンを年に変換して表示してもよ 。なお、本実施の形態においては、アクセ モジュール200Aからの寿命要求コマンドに応 て不揮発性記憶モジュール100Aが寿命情報を 通知するようにした。これに代えて、不揮発 性記憶モジュール100Aが適宜アクセスモジュ ル200Aに割り込みをかけて寿命情報を通知す ようにしても構わない。

 以上のように、第1の実施の形態の不揮発 性記憶システムによれば、アドレス管理部125 の空きPB選択に基づく書き込み先PBの決定、 なわち代替処理によるウェアレベリングを 本とし、記録状態判定部126が式(1)に基づき すなわち記録状態に応じてスワップ要否判 を行い、読み書き制御部127がスワップ要否 定に応じてスワップ対象ブロック(PBsa、PBsb) 決定し、スワップを実行するようにした。 れにより、「代替領域の局所化」が抑制さ ると共に、「電源遮断問題」に伴う旧デー が再現不能になることがなくなる。

 また、寿命判定部128がデータ保持時間を めアクセスモジュール200Aに通知するように したので、ユーザは不揮発性記憶モジュール の寿命を認識した上で安心して、データの記 録操作を行うことができる。なお、スワップ によって代替領域局所化が抑制され不揮発性 メモリ110内の各PBの書き換え回数が平準化さ る。従って、最大書き換え回数Mあるいは平 均書き換え回数aに対応するデータ保持時間 すなわちアクセスモジュール200Aに通知され 寿命情報は、不揮発性メモリ110内の任意の 録情報のデータ保持時間と見なすことがで る。つまり、該寿命情報は不揮発性記憶モ ュールの寿命と考えて差し支えない。

 尚第1の実施の形態では、記録状態判定部 は書き換え回数の最大値と平均値とに基づい て代替領域局所化の検出を行っているが、書 き換え回数の最大値と最小値など他の数値に 基づいて検出を行うようにしてもよい。又読 み書き制御部は書き換え回数に基づいてスワ ップ対象領域を決定しているが、書き換え回 数と共にその物理ブロックが空きブロックか どうかによってスワップ対象領域を決定する ようにしてもよい。スワップの対象となる物 理ブロックの一方を空きブロックに限定すれ ば、図7Dに示す3段階の処理が不要となり、図 7Cや図7Eに示すように1回の処理でスワップが 了する。

 更にスワップは書き換え回数の最大値に い物理ブロックと最小値に近い物理ブロッ だけをスワップ対象領域として、スワップ 回数を減少させるようにしてもよい。

 (第2の実施の形態)
 図15は、本発明の第2の実施の形態における 揮発性記憶システムを示したブロック図で る。図15において、不揮発性記憶システム 、不揮発性記憶モジュール100Bとアクセスモ ュール200Bとから構成される。アクセスモジ ュール200Bは、第1の実施の形態のアクセスモ ュールに、システム条件通知部202を更に加 たものである。不揮発性記憶モジュール100B は、メモリコントローラ120Bと不揮発性メモ 110を含む。メモリコントローラ120Bは、第1の 実施の形態のメモリコントローラ120Aに、シ テム条件受信部161とシステム条件判定部162 更に加えたものである。なお、読み書き制 部163は第1の実施の形態の読み書き制御部127 変更したものである。その他のブロックは 1の第1の実施の形態の不揮発性記憶モジュ ルと同様である。

 以上のように構成された、本発明の第2の 実施の形態における不揮発性記憶システムの 動作について説明する。図16は本発明の第2の 実施の形態における全体処理を示すフローチ ャート、図17はシステム条件判定処理を示す ローチャート、図18はスワップ処理を示す ローチャートであり、図19は書き込み処理を 示すタイムチャートである。

 なお、基本的な動作は、第1の実施の形態 の不揮発性記憶システムと同様であり、相違 点は、アクセスモジュール200Bから受信した ステム条件、すなわち書き込み速度や電力 どの条件を満足する範囲でスワップ処理が 能か否か、更に可能な場合はどの程度のス ップ処理が行えるかの判定を行い、そのス ップ可否判定に基づいてスワップ処理を行 点である。

 図16に示す全体処理において、まず初期 処理を行い、アクセスモジュール200Bからの クセスを待受ける。ここでアクセスモジュ ル200Bからのアクセスがあり書き込みコマン ドが与えられたとする(S602)。アクセスモジュ ール200Bはデータの書き込みにおいては、図19 に示すように、書き込みコマンドと、その引 数である開始論理ブロック番号(LBN_S)及びシ テム条件を転送する。システム条件受信部16 1は、ホストインターフェイス121を介してシ テム条件を受信する(S603)。その後データを1 理ブロック(以降1LBとする)毎に間欠的に転 する。なお、アクセスモジュール200Bはデー が必要量転送した時点で図示しない終了コ ンドを転送し、書き込み処理が終了する。

 図20はシステム条件の一例を示すもので る。本実施の形態において、システム条件 基本条件と速度条件と電力条件の3つからな 。基本条件は、寿命対策可否を表すフラグ あり、このフラグが0の場合は、速度条件や 電力条件に関わらず強制的に寿命対策を禁止 する。一方このフラグが1の場合は、寿命対 を可能とする。この場合は後述する速度条 や電力条件に応じて不揮発性記憶モジュー 100B側がその能力にあわせて、読み書き制御 163などによるスワップ処理の可否を判定す 。

 速度条件は不揮発性記憶モジュール100Bに データを書き込む速度保証に係る条件であり 、この速度条件を満足する範囲内で書き込み を実行する必要がある。速度条件の中のTgは 1LB単位での転送時間間隔を表す。図20に示 システム条件の例においては、1秒毎に1LB分 転送されることとなる。1LBの容量が1MByteと ると、必要転送レートは1MByte/秒となる。Tt は、1LB分のデータが実際に転送されている 間を表す。すなわちTg-Ttは転送されない時 となる。

 電力条件は不揮発性記憶モジュール100Bに 供給できる許容電力Pa(最大電力)であり、こ 電力条件を満足する範囲内で少なくとも書 込みを実行する必要がある。

 S603においてシステム条件を受信した後に 、S604以下の書き込み~スワップの一連処理に 行する。書き込み~スワップ一連処理におい て、メモリコントローラ120BはS604とS605におい て、第1の実施の形態のS103,S104と同様に書き み処理、記録状態判定処理を行い、その後 ステム条件判定部162がシステム条件判定処 (S606)を行う。

 図17はシステム条件判定処理を示すもの あり、基本条件である寿命対策可否フラグ1 場合かどうかを判断する(S700)。このフラグ 0であれば判定処理を終了し、このフラグが 1であればS701,S702に進んで、速度条件に基づ スワップ可能回数K2tの算出と、電力条件に づくスワップ可能回数K2pの算出を行う。

 システム条件判定部162は速度条件Tg,Ttと1LB たりのスワップに要する時間Tsとに基づき、 式(5)に従ってK2tを算出する。
 K2t=int{(Tg-Tt)/Ts} ・・・(5)
なおintは整数値をとる関数とする。但し前述 したスワップの仕方によって異なるので、シ ステム条件判定部162は、式(5)の算出に際して 、読み書き制御部163から、スワップタイプ情 報を受信した上でTsを決定するものとする。

 システム条件判定部162は電力条件Paと1LBあ りのスワップに要する電力Psに基づき、式(6) に従ってK2pを算出する。
 K2p=int(Pa/Ps) ・・・(6)

 システム条件判定部162はS702の後、スワップ 可能回数K2を式(7)に従って算出する(S703)。但 、MINは最小値をとる関数である。
 K2=MIN(K2t, K2p) ・・・(7)

 その後、システム条件判定部162はK2が0で ければ(S704)、スワップ可否フラグSWF2を1に ットし(S705)、処理を終了する。

 以上のシステム条件判定処理(S606)の後、S 607においてスワップ処理を行う。図18のスワ プ処理は、前述した図11のスワップ処理と ぼ同様の処理である。相違点は、S800におい スワップ要否フラグSWF1とスワップ可否フラ グSWF2の両者が共にセットされているかを判 する点と、S804の後にスワップ回数kとスワッ プ可能回数K2を比較する(S809)を行う点である 比較判定の結果kがK2に達していない場合、 ワップする余裕があるので、S810に移行し、 スワップ処理を継続する。比較判定の結果k K2に達した場合はスワップする余裕がなくな ったので、S805に進んで、スワップ処理を終 する。

 以上の処理を終了コマンドが転送される で実行し(S608)、終了コマンドを受信した後 スワップ可否フラグSWF2を0にリセットし、 のアクセス待ちに移行する(S609)。

 以上のように、第2の実施の形態では、第 1の実施の形態の「記録状態に基づくスワッ 要否判断」に加え、「システム条件に基づ スワップ可否判断」を行う。これにより、 度や電力面でのオーバーヘッドを合理化で 、例えば動画などのリアルタイム記憶が必 なコンテンツを記録することができないな のシステム上の課題を解決することが可能 なる。

 なお、書き込みコマンドの引数としてシ テム条件を受信したが、システム条件通知 用のコマンドを使用しても構わない。また 不揮発性記憶モジュール100Bにスイッチを設 け、該スイッチの操作によって例えば図20の 本条件である寿命対策可否を切り換えるよ にしても構わない。

 また本実施の形態では、式(5)と式(6)を用 てK2sとK2pを算出したが、不揮発性記憶モジ ール100B内に、速度条件とスワップ回数K2s、 電力条件とスワップ回数K2pの関係を示すテー ブルを設けておき、システム条件が与えられ たときにこれらのテーブルを参照することに よって、K2sやK2pの値を決定しても構わない。

 (第3の実施の形態)
 図21は、本発明の第3の実施の形態における 揮発性記憶システムを示したブロック図で る。この不揮発性記憶システムは不揮発性 憶モジュール100Cとアクセスモジュール200A ら成り立っている。アクセスモジュール200A 第1の実施の形態のアクセスモジュールと同 様である。不揮発性記憶モジュール100Cは、 ステム条件受信部171、システム条件判定部17 2及び読み書き制御部173を有しており、その のブロックは、図15に示す第2の実施の形態 おける不揮発性記憶システムと同様である

 以上のように構成された、本発明の第3の 実施の形態における不揮発性記憶システムの 動作について説明する。図22は、本発明の第3 の実施の形態に於ける不揮発性記憶モジュー ル100Cの処理を示すフローチャートである。 お、基本的な動作は、第2の実施の形態の不 発性記憶システムと同様であり、相違点は システム条件判定部172が不揮発性メモリの 別を表すIDコードに基づいて、寿命対策の 定を行う点である。

 図22に示す初期化処理(S900)において、読 書き制御部173はメモリインターフェイス123 介して不揮発性メモリ110からIDコードを読み 出し、該IDコードをシステム条件受信部171が 信する。IDコードとは、不揮発性メモリ110 のROM等に予め保持された不揮発性メモリ110 種別情報であり、高信頼性の不揮発性メモ (例えば、2値NANDフラッシュメモリ)か、低信 性の不揮発性メモリ(例えば、多値NANDフラ シュメモリ)か、を表す。

 さてアクセスモジュール200Aよりアクセス を待受ける。アクセスがあればステップS901 りS902に進んで書き込みコマンドかどうかを 別する。書き込みコマンドであればS903に進 んで書き込み処理、記録状態判定処理を行う 。記録処理(S903)、記録状態判定処理(S904)は夫 々図9及び図10の処理と同様である。そして記 録状態の判定を終えると、システム条件判定 処理を行う。システム条件判定部172は、シス テム条件受信部171が受信したIDコードを、寿 対策の判定における判定基準として解釈す 。具体的には、高信頼性の不揮発性メモリ 表すIDコード値の場合は、スワップ処理に る信頼性対策は不要と判断し、システム条 判定処理を終了する。一方、低信頼性の不 発性メモリを表すIDコード値の場合は寿命対 策が可能と判断する(S905)。この寿命対策が可 能でなければ処理を終了し、寿命対策が可能 であればS906に進んでフラグSWF2をセットし、 いでS907に進んでスワップ処理を行う。

 図23は第3の実施の形態によるスワップ処 を示すフローチャートである。スワップを 始すると、まずS1000においてフラグSWF1とSWF2 が共に1かどうかを判別する。これらが1でな れば処理を終了し、これらが1であればS1001 進む。以降の処理については図11に示す第1 実施の形態と同様に、スワップ処理を行う

 以上のように、システム条件判定部171が 不揮発性メモリ110のIDコード、すなわち不 発性メモリ110の信頼性に基づいてスワップ 否判定を行うようにしたので、無駄なスワ プ処理を行う必要がなく、スワップ処理に する電力や速度のオーバーヘッドを合理化 ることが可能となる。

 なお、IDコードとして、不揮発性記憶モ ュールの種類を識別するメモリカード識別 ードを用いても構わない。この場合は、不 発性メモリ110内の記録領域の一部に予め不 発性記憶モジュール100Cの種別をメーカ側で き込んでおき、初期化処理において、シス ム条件判定部172が該メモリカード識別コー に基づいたスワップ可否判定を行う。

 メモリカード識別コードは、例えばRAM型 メモリカードか、あるいはWOM型、すなわち1 回しか書き込めないメモリカードなのかを表 すコードである。システム条件判定部172は、 システム条件受信部171が不揮発性メモリ110か ら読み出したメモリカード識別コードを寿命 対策の判定基準として解釈する。具体的には 、WOM型のメモリカードを表すメモリカード識 別コードの場合は、スワップ処理による信頼 性対策不要と判断する。一方、RAM型のメモリ カードを表すメモリカード識別コード値の場 合は、寿命対策を行わずS901に戻る。

 このように、システム条件判定部172が、 揮発性記憶モジュール100Cのメモリカード識 別コード、すなわち不揮発性記憶モジュール の種類に基づいてスワップ可否判定を行うよ うにした。このため無駄なスワップ処理を行 う必要がなく、スワップ処理に要する電力や 速度のオーバーヘッドを合理化することが可 能となる。

 尚第1~3の実施の形態において、アドレス 理部125が物理領域管理テーブル131を巡回的 サーチすることによって取得した空きPBを 書き込み先PBとして決定するようにしたが、 全ての空きPBの中でWCの小さい空きPBを優先的 に書き込み先PBに決定するようにしても構わ い。又全ての空きPBの中からランダムに選 した空きPBを書き込み先PBに決定するように ても構わない。

 尚第1~3の実施の形態において、書き込み マンドの受信毎の書き込み処理に付随して ワップ処理を行うようにしたが、このタイ ングに限定されることはない。例えば、記 状態判定部126のスワップ要否判定結果を物 領域管理テーブル131等に保持しておき、次 初期化処理において物理領域管理テーブル1 31を調べ、スワップ要の場合はスワップを行 ようにしても構わない。又スワップ処理を 半と後半の2つに分割し、前半は書き込みコ マンドの受信毎の書き込み処理に付随して実 施し、後半は初期化処理に実施するようにし ても構わない。

 本発明にかかる不揮発性記憶システムは 長寿命かつ書き込み速度を両立する方法を 案したものであり、半導体メモリカードな の不揮発性記憶モジュールを使用した静止 記録再生装置や動画記録再生装置、あるい 携帯電話において有益である。