(57)【要約】【課題】上書き不可能な不揮発性メモリにおけるブロック移動を伴うデータ書き込み処理の効率化、高速化をなし得るメモリシステムを提供すること。【解決手段】同一論理ブロックが第１および第２のメモリの各１つの物理ブロックと対応付けられるように論理ブロックと第１および第２のメモリの物理ブロックとの対応を管理し、同一論理ブロックで対応付けられた物理ブロック間ではデータが記憶されるページが重複しないように同一論理ブロックに含まれるページのデータを記憶し、第１のメモリに対して行う処理と、第２のメモリに対して行う処理とを並行に実行する。【選択図】図１
2010287049.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶領域が複数のページを含む複数のブロックにより構成され、並列処理が可能な不揮発性の第１および第２のメモリと、
前記第１および第２のメモリの読み出し及び書き込みを制御するコントローラと備え、
前記コントローラは、
同一論理ブロックが第１および第２のメモリの各１つの物理ブロックと対応付けられるように論理ブロックと第１および第２のメモリの物理ブロックとの対応を管理し、同一論理ブロックで対応付けられた物理ブロック間ではデータが記憶されるページが重複しないように同一論理ブロックに含まれるページのデータを記憶するアドレス制御部を備え、
前記アドレス制御部は、
書き込み要求されたページが第１および第２のメモリの両方で不使用の場合は、一方のメモリの該当ページにデータを書き込む第１の制御を行う第１の制御部と、
書き込み要求されたページが第１および第２のメモリの一方で使用中の場合は、使用中でない一方のメモリの該当ページに書き込み要求データを書き込み、使用中の他方のメモリの該当ページ以外の記憶データを未使用の物理ブロックに書き込む第２の制御を行う第２の制御部と、
書き込み要求されたページが第１および第２のメモリの両方で使用中の場合は、第１のメモリの未使用の物理ブロックに、書き込み要求データのうち第２のメモリで使用中のページと重複するページのデータと、第１のメモリで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データを書き込み、第２のメモリの未使用の物理ブロックに、書き込み要求データのうち第１のメモリで使用中のページと重複するページのデータと、第２のメモリで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データを書き込む第３の制御を行う第３の制御部と、
を備え、
第２および第３の制御部は、第１のメモリに対して行う処理と、第２のメモリに対して行う処理とを並行に実行することを特徴とするメモリシステム。
【請求項２】
前記第２の制御部は、前記第２の制御を行った後、論理ブロックと第１および第２のメモリの物理ブロックとの対応付けを変更し、
前記第３の制御部は、前記第３の制御を行った後、論理ブロックと第１および第２のメモリの物理ブロックとの対応付けを変更することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記第１および第２のメモリに、所定の閾値以上のデータ分散数を有する物理ブロックが存在する場合、同一論理ブロックで対応付けられた一方のメモリの物理ブロックのデータを他方のメモリの物理ブロックのデータに集約するデフラグ処理を実行する第４の制御部をさらに備えることを特徴とする請求項１または２に記載のメモリシステム。
【請求項４】
データ記憶領域が複数のページを含む複数のブロックにより構成され、並列処理が可能な不揮発性の第１および第２のメモリを含むメモリシステムの管理方法であって、
同一論理ブロックが第１および第２のメモリの各１つの物理ブロックと対応付けられるように論理ブロックと第１および第２のメモリの物理ブロックとの対応を管理し、同一論理ブロックで対応付けられた物理ブロック間ではデータが記憶されるページが重複しないように同一論理ブロックに含まれるページのデータを記憶し、
書き込み要求されたページが第１および第２のメモリの両方で不使用の場合は、一方のメモリの該当ページにデータを書き込む第１の制御を行い、
書き込み要求されたページが第１および第２のメモリの一方で使用中の場合は、使用中でない一方のメモリの該当ページに書き込み要求データを書き込み、使用中の他方のメモリの該当ページ以外の記憶データを未使用の物理ブロックに書き込む第２の制御を行い、
書き込み要求されたページが第１および第２のメモリの両方で使用中の場合は、第１のメモリの未使用の物理ブロックに、書き込み要求データのうち第２のメモリで使用中のページと重複するページのデータと、第１のメモリで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データを書き込み、第２のメモリの未使用の物理ブロックに、書き込み要求データのうち第１のメモリで使用中のページと重複するページのデータと、第２のメモリで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データを書き込む第３の制御を行い、
第２および第３の制御の際に、第１のメモリに対して行う処理と、第２のメモリに対して行う処理とを並行に実行することを特徴とするメモリシステムの管理方法。
【請求項５】
前記第１および第２のメモリに、所定の閾値以上のデータ分散数を有する物理ブロックが存在する場合、同一論理ブロックで対応付けられた一方のメモリの物理ブロックのデータを他方のメモリの物理ブロックのデータに集約するデフラグ処理を実行することを特徴とする請求項４に記載のメモリシステムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリを備えたメモリシステムおよびメモリシステムの管理方法に関する。
【背景技術】
【０００２】
電気的書き換え可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）の一つとして、ＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、単位セル面積がＮＯＲ型に比べて小さく、大容量化が容易である。このような特長を活かして、ＮＡＮＤ型フラッシュメモリは、ファイルメモリやメモリカードをはじめとする各種記録メディアとして使用されている。
【０００３】
ＮＡＮＤ型フラッシュメモリは、ワード線方向に並ぶ複数のＮＡＮＤセルユニット（ＮＡＮＤストリング）の集合として定義されるブロックをデータ消去単位とする。ブロックは複数のページで構成され、ページ単位で書き込み／読み出しが行われることが多い。あるブロックのデータを書き換えたい場合には、そのブロックのデータを一括消去した後に、書き込みを行うことが必要である。
【０００４】
このようなＮＡＮＤ型フラッシュメモリの技術分野において、ウェアレベリング処理やガベージコレクション処理を簡単化するために、ページではなくブロックを管理単位とするブロック管理方式が知られている。ブロック管理方式においては、ホスト装置側で使用する論理ブロックアドレスと、ＮＡＮＤ型フラッシュメモリ側で使用する物理ブロックアドレスとのブロック対応管理のみを行っており、ブロック内に存在するページの管理は行っていない。このため、ブロック管理方式においては、或る論理ブロックアドレスに含まれる論理ページのデータは、対応付けられる物理ブロックアドレスの対応する物理ページに記憶されるような管理が行われている。
【０００５】
このようなブロック管理において、既に有効データが存在する複数の論理ページにおける一部の論理ページに書き込み要求が発生する場合がある。このような場合、ブロック管理では、つぎのようなデータ引っ越し処理を実行する。すなわち、予備のブロックへ書き込み要求のページデータを書き込み、その後、書き込み要求が発生した一部論理ページを含む論理ブロックに対応する物理ブロック内の書き込み対象ではないページデータを予備ブロックへコピーし、さらに、書き込み要求が発生した論理ブロックの論理ブロックアドレスを予備ブロックの物理ブロックアドレスに対応づける対応付けの変更を実行する。書き込み要求が発生した元の物理ブロックは、その後消去され、未使用ブロックとされる。
【０００６】
このようなデータ引っ越し処理は、ページ単位でデータを読み出して他のブロックに書き込むという動作の繰り返しを必要とし、データ処理時間が長くなる。このように、ブロック管理においては、ページ管理よりもデータのブロック間移動が頻繁に発生する分、書き込み処理時間が長くなるという問題があり、これは、ＮＡＮＤ型フラッシュメモリを使用するホストシステムのパフォーマンスを低下させる。
【０００７】
特許文献１には、フラッシュメモリに、データブロックと、データブロックの修正内容を記録するログブロックとを設け、データが記録されているページに書込みが要請された時、書込みが要請されたページを含むデータブロックに対応するログブロックに書込みを行い、前記ページに書込みを再要請されるとログブロック内の空いている自由ページに書込みを行うことで、同じページに連続的に書込みが要請される場合にも１つのログブロック内で処理することが示されている。
【０００８】
しかしながら、特許文献１では、ログブロックによる電源瞬断時のデータの復元と、フラッシュメモリのデータ貯蔵空間の効率的使用が可能となるが、上記したブロック管理での書き込み処理を高速化させることはできない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−３６６４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、上書き不可能な不揮発性メモリにおけるブロック移動を伴うデータ書き込み処理の効率化、高速化、信頼性向上をなし得るメモリシステムおよびメモリシステムの管理方法を提供する。
【課題を解決するための手段】
【００１１】
本願発明の一態様によれば、データ記憶領域が複数のページを含む複数のブロックにより構成され、並列処理が可能な不揮発性の第１および第２のメモリと、前記第１および第２のメモリの読み出し及び書き込みを制御するコントローラと備え、前記コントローラは、同一論理ブロックが第１および第２のメモリの各１つの物理ブロックと対応付けられるように論理ブロックと第１および第２のメモリの物理ブロックとの対応を管理し、同一論理ブロックで対応付けられた物理ブロック間ではデータが記憶されるページが重複しないように同一論理ブロックに含まれるページのデータを記憶するアドレス制御部を備え、前記アドレス制御部は、書き込み要求されたページが第１および第２のメモリの両方で不使用の場合は、一方のメモリの該当ページにデータを書き込む第１の制御を行う第１の制御部と、書き込み要求されたページが第１および第２のメモリの一方で使用中の場合は、使用中でない一方のメモリの該当ページに書き込み要求データを書き込み、使用中の他方のメモリの該当ページ以外の記憶データを未使用の物理ブロックに書き込む第２の制御を行う第２の制御部と、書き込み要求されたページが第１および第２のメモリの両方で使用中の場合は、第１のメモリの未使用の物理ブロックに、書き込み要求データのうち第２のメモリで使用中のページと重複するページのデータと、第１のメモリで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データを書き込み、第２のメモリの未使用の物理ブロックに、書き込み要求データのうち第１のメモリで使用中のページと重複するページのデータと、第２のメモリで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データを書き込む第３の制御を行う第３の制御部とを備え、第２および第３の制御部は、第１のメモリに対して行う処理と、第２のメモリに対して行う処理とを並行に実行することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、データ存在領域への書き込み発生時におけるブロック移動とデータ書き込み処理を高速化、効率化することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態にかかるシステム構成を示すブロック図。
【図２】図２は、論理アドレスと物理アドレスとの対応を示す論物マッピングを示す図。
【図３】図３は、ブロック管理テーブルの一例を示す図。
【図４】図４は、ページ管理テーブルの一例を示す図。
【図５】図５は、未使用ブロック管理テーブルの一例を示す図。
【図６】図６は、使用済みブロック管理テーブルの一例を示す図。
【図７】図７は、書き込み動作手順を示すフローチャート。
【図８】図８は、書き込み動作の一例を示す図。
【図９】図９は、書き込み動作の他の例を示す図。
【図１０】図１０は、書き込み動作の他の例を示す図。
【図１１】図１１は、デフラグ処理手順を示すフローチャート。
【図１２】図１２は、デフラグ処理を示す図。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本発明の実施の形態にかかるメモリシステムを詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【００１５】
図１は、本発明の実施の形態にかかるメモリシステムの構成例を示すブロック図である。図１において、本メモリシステム１は、ＡＴＡインタフェースなどのメモリ接続インタフェース（ＨＯＳＴ Ｉ／Ｆ）２を介してＣＰＵコアなどのホスト装置１００と接続され、ホスト装置１００の外部メモリとして機能する。メモリシステム１は、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略す）１０と、コントローラ２０とを備えている。
【００１６】
ＮＡＮＤメモリ１０は、２つの並列動作要素（以下単にデバイスという）Ａ，Ｂを有し、各デバイスＡ，Ｂはそれぞれ独立したＩ／Ｏチャネル１１ａ、１１ｂでコントローラ２０に接続されており、各デバイスＡ，Ｂはコントローラ２０によって並列動作が可能である。各デバイスＡ，Ｂは、データ消去の単位である物理ブロックを複数有して構成され、また各物理ブロックは、データ書き込み／読み出しの単位である物理ページを複数個有している。ＮＡＮＤメモリ１０の各メモリセルは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００１７】
コントローラ２０は、ＮＡＮＤメモリ１０との接続インタフェースであるメモリＩ／Ｆ２１と、ＣＰＵ２２と、２つの揮発性半導体メモリとしてのＲＡＭバッファ２３ａ、２３ｂと、アドレス制御部２４と、ＨＯＳＴ  Ｉ／Ｆ２とを備えている。ＲＡＭバッファ２３ａ、２３ｂは、ホスト装置１００と各ＮＡＮＤメモリ１０間でのデータ転送用キャッシュおよび作業領域用メモリなどとして機能する。ＣＰＵ２２は、ＮＡＮＤメモリ１０に記憶された管理プログラムをＲＡＭバッファ２３ａ、２３ｂなどの半導体メモリに展開して実行することで、ＲＡＭバッファ２３ａ、２３ｂを介してホスト装置１００と各ＮＡＮＤメモリ１０との間でのデータ転送制御を行うとともに、コントローラ２０内の各構成要素を制御する。ＣＰＵ２２の１つの機能要素としてのアドレス制御部２４は、ホスト装置１００側で使用される論理アドレス（例えば、ＬＢＡ：Logical Block Addressing）とＮＡＮＤメモリ１０の物理アドレスとのアドレス変換を管理する。
【００１８】
図２は、ホスト装置１００側で使用される論理アドレスとＮＡＮＤメモリ１０の物理アドレスとの対応を示す論物マッピングを示すものである。図２に示すように、本メモリシステムにおいては、１つの論理ブロックは、デバイスＡの１つの物理ブロックおよびデバイスＢの１つの物理ブロックに対応付けられる。図２では、論理ブロック０が、デバイスＡ，Ｂの物理ブロック０に対応付けられるようになっているが、１つの論理ブロックに対応付けられるデバイスＡ，Ｂの物理ブロックは、同一番号（同一アドレス）に限らず、任意の物理ブロックを対応付けることができる。
【００１９】
また、同一論理ブロックに対応付けられたデバイスＡ，Ｂの各物理ブロック間においては、各物理ブロック内の同じ物理ページにはいずれか一方にしかデータが存在しないようにする。別言すれば、同一論理ブロックで対応付けられた物理ブロック間ではデータが記憶されるページが重複しないように同一論理ブロックに含まれるページのデータを記憶する。例えば、論理ブロック２に、デバイスＡの物理ブロック２とデバイスＢの物理ブロック３とが対応付けられている場合、デバイスＡの物理ブロック２内の物理ページ０〜２４にデータが存在している場合、デバイスＢの物理ブロック３内の物理ページ０〜２４にはデータが存在しないようにしている。したがって、ホスト装置１００側（ユーザ側）からは、ＮＡＮＤメモリ１０の記憶容量は、１つのデバイス分しか認識することができない。すなわち、ユーザからは擬似的にＮＡＮＤメモリが１つのデバイス分として扱われる。このように、本メモリシステムでは、ブロック内で論理ページと物理ページの割付けを行うページ管理は行っておらず、所謂ブロック管理が踏襲されている。
【００２０】
図３〜図６は、アドレス制御部２４で使用されるアドレス変換テーブルの一例を示すものである。図３は、ブロック管理テーブル３０の一例を示すものであり、ブロック管理テーブル３０では、論理ブロックアドレス（論理ブロック番号）と、デバイスＡ，Ｂの物理ブロックアドレス（物理ブロック番号）との対応関係が管理されている。図３では、例えば、論理ブロック０は、デバイスＡの物理ブロック２およびデバイスＢの物理ブロック３に対応付けられていることを示している。
【００２１】
図４は、ページ管理テーブル４０の一例を示すもので、データが記憶されている論理ブロック毎に、図４に示すようなページ管理テーブルが備えられている。前述したように、１つの論理ブロックは、デバイスＡ，Ｂの各１つの物理ブロックに対応付けられる。１つの論理ブロックに対応するページ管理テーブルには、該論理ブロックに対応付けられたデバイスＡ，Ｂの各１つの物理ブロック内の物理ページに関する管理情報が登録されている。同一論理ブロックに対応付けられたデバイスＡ，Ｂの各物理ブロックにおいては、各物理ブロック内の同じ物理ページにはいずれか一方にしかデータが存在しないように管理されているので、１つのページ管理テーブルには、１つの物理ブロック内の物理ページ数分のエントリ（０〜ｍ）しか確保されていない。
【００２２】
図４に示すように、ページ管理テーブル４０においては、物理ページ毎に、１ビットのバリッド情報（Valid）と、１ビットのデバイス識別情報とが登録されている。バリッド情報（Valid）は、各物理ページ毎のデータの有無（使用／未使用）を示し、バリッド情報が０である場合は、デバイスＡ，Ｂのいずれのページにもデータが格納されていないことを示し、バリッド情報が１である場合は、デバイスＡ，Ｂのいずれかのページにデータが格納されていることを示している。デバイス識別情報は、データがデバイスＡ，Ｂのどちらに記憶されているかを示し、例えば、０である場合は、デバイスＡにデータ格納され、１である場合は、デバイスＢにデータが格納されていることを示している。
【００２３】
図５は、未使用ブロック管理テーブル４５の一例を示すもので、未使用ブロック管理テーブル４５によって未使用の物理ブロックを管理する。未使用の物理ブロックとは、用途未割り当ての消去済みの物理ブロックである。未使用ブロック管理テーブル４５では、デバイスＡ，Ｂ毎に、未使用の物理ブロックのブロック番号（ブロックアドレス）が登録されている。
【００２４】
図６は、使用済みブロック管理テーブル５０の一例を示すもので、使用済みブロック管理テーブル５０によって使用済みブロックを管理する。使用済みブロックとは、一時的に使用が禁止された物理ブロックのことである。使用済みブロック管理テーブル５０では、デバイスＡ，Ｂ毎に、使用済みの物理ブロックのブロック番号（ブロックアドレス）が登録されている。
【００２５】
つぎに、図７に示すフローチャートを参照して、本実施の形態における書き込み動作について説明する。ホスト装置１００からの書き込み要求があった場合、ＣＰＵ２２はアドレス制御部２４を使用してつぎのような制御を実行する。まず、アドレス制御部２４は、書き込み要求先の１〜複数の論理ページに対応する１〜複数の物理ページが未使用であるか否か（デバイスＡ，Ｂのいずれにも有効データが記憶されていないか否か）を図３，図４に示した各管理テーブル３０、４０を使用して判断する（ステップＳ１００）。
【００２６】
すなわち、アドレス制御部２４は、図３のブロック管理テーブル３０を用いて書き込み要求対象の論理ブロックアドレスに対応するページ管理テーブル４０における全ての書き込み先物理ページ（＝書き込み先論理ページ）のバリッド情報（Valid）を調べ、このValid情報が全て０である場合は、書き込み先物理ページが未使用であると判断する。書き込み先物理ページが未使用であると判断した場合、アドレス制御部２４は、図３に示すブロック管理テーブル３０を用いて書き込み要求対象の論理ブロックアドレスに対応付けられたデバイスＡ，Ｂの物理ブロック番号を選択し、あらかじめ決めている一方のデバイス（例えばデバイスＡ）側の前記選択した物理ブロック番号に対応する物理ブロックの該当ページに、書き込み要求に対応する書き込みデータを書き込む（ステップＳ１１０）。
【００２７】
図８は、ステップＳ１１０の処理が行われる一例を示したものである。図８では、デバイスＡの物理ブロック１のページ０〜４９にデータが存在している状態で、ページ５０〜６３に対する書き込み要求が発生している。このような場合は、デバイスＡの物理ブロック１のページ５０〜６３にデータが書き込まれることとなる。
【００２８】
図７のステップＳ１１０の判断がＮＯの場合、すなわち書き込み要求された１〜複数の論理ページに対応する１〜複数の物理ページにデータが存在する場合、アドレス制御部２４は、書き込み要求先の物理ページが２つのデバイスＡ，Ｂに跨るか否かをページ管理テーブル４０のValid情報およびデバイス識別情報を用いて判定する（ステップＳ１２０）。図９にステップＳ１２０の判断がＮＯである場合の一例を示している。図９の場合は、デバイスＡの物理ブロック１のページ０〜６３にデータが存在している状態で、ページ０〜１９に対する書き込み要求が発生している。この場合は、１つのデバイスに対するアクセスであり、２つのデバイスＡ，Ｂに跨るアクセスではない。
【００２９】
このような場合、アドレス制御部２４は、まず、書き込みデータを書き込み要求されたページが未使用のデバイス側に書き込む（ステップＳ１３０）。図９の場合は、デバイスＢ側では、ページ０〜１９が未使用なので、データは、デバイスＢのページ０〜１９に対して書き込まれる。この書き込み処理では、ＲＡＭバッファ２３ｂに記憶された書き込みデータをメモリＩ／Ｆ２１、Ｉ／Ｏチャネル１１ｂを介してデバイスＢの物理ブロック１のページ０〜１９に書き込む。
【００３０】
このデバイスＢへの書き込み処理を行うのと並行して、書き込み先ページにデータが存在するデバイス側における書き込み要求に対応するページ以外の記憶データを、未使用の空き物理ブロックに書き込む、コピー処理を実行する（ステップＳ１４０）。未使用の空き物理ブロックは、図５に示した未使用ブロック管理テーブル４５に登録されている未使用ブロックから選択する。また、未使用ブロックへのコピーは、未使用ブロックの先頭ページに対してではなく、書き込み要求と同じページアドレスに対して実行する。図９の場合は、デバイスＡ側の物理ブロック１の物理ページ２０〜６３に記憶されているデータが、デバイスＡ側の物理ブロックＫの物理ページ２０〜６３にコピーされている。このコピー動作では、デバイスＡ側の物理ブロック１の物理ページ２０〜６３に記憶されているデータを、Ｉ／Ｏチャネル１１ａ、メモリＩ／Ｆ２１を介してＲＡＭバッファ２３ａの作業領域に読み出し、ＲＡＭバッファ２３ａに書き込まれたデータをメモリＩ／Ｆ２１、Ｉ／Ｏチャネル１１ａを介してデバイスＡ側の物理ブロックＫの物理ページ２０〜６３に書き込む。各別のＲＡＭバッファ２３ａ、２３ｂ、Ｉ／Ｏチャネル１１ａ、１１ｂを有しているので、ステップＳ１３０の処理とステップＳ１４０の処理を高速に並列処理することが可能となる。
【００３１】
未使用ブロックへの書き込みが終了すると、コピー元のブロック（図９のデバイスＡ側の物理ブロック１）を一時的に使用済みブロックとしてアクセスを禁止する。具体的には、図６に示した使用済みブロック管理テーブル５０のデバイスＡ側に、物理ブロック１のブロック番号１を登録する。
【００３２】
つぎに、アドレス制御部２４は、デバイスＢでの書き込み、デバイスＡでのコピー処理に対応するようにブロック管理テーブル３０およびページ管理テーブル４０を更新する。具体的には、図９の場合、論理ブロック１に対応付けられる物理ブロックが、デバイスＡでは物理ブロック１から物理ブロックＫに変更されたので、この変更に対応するようにブロック管理テーブル３０を更新する。また、ページ０〜１９はデバイスＢに記憶され、ページ２０〜６３がデバイスＡに記憶されるような記憶変更が行われたので、この変更に対応するように論理ブロック１に対応するページ管理テーブル４０を更新する。
【００３３】
この後、使用済みブロック管理テーブル５０に登録した使用済みブロックを消去し、未使用ブロックとして図５に示した未使用ブロック管理テーブル４５に登録する。図９の場合は、コピー元であるデバイスＡの物理ブロック１が使用済みブロックとされているので、この使用済みのデバイスＡの物理ブロック１を消去処理し、その後、デバイスＡの物理ブロック１を未使用ブロック管理テーブル４５に登録することになる。
【００３４】
一方、図７のステップＳ１２０の判断がＹＥＳの場合、すなわち書き込み要求先の物理ページが２つのデバイスＡ，Ｂに跨る（書き込み要求されたページが２つのデバイスＡ，Ｂで使用中である）と判断された場合、アドレス制御部２４は、つぎのような動作を実行する。図１０に、ステップＳ１２０の判断がＹＥＳである場合の一例を示している。図１０の場合は、デバイスＡの物理ブロック１のページ２０〜６３にデータが存在し、デバイスＢの物理ブロック１のページ０〜１９にデータが存在している状態で、ページ１５〜３０に対する書き込み要求が発生しており、２つのデバイスＡ，Ｂに跨るアクセスが発生している。
【００３５】
このような場合、アドレス制御部２４は、まず、デバイスＡの未使用の空きブロックに、書き込み要求データのうちデバイスＢで使用中のページと重複するページのデータを書き込む（ステップＳ１６０）。未使用の空き物理ブロックは、図５に示した未使用ブロック管理テーブル４５に登録されている未使用ブロックから選択する。また、未使用ブロックへの書き込みは、未使用ブロックの先頭ページに対してではなく、書き込み要求と同じページアドレスに対して実行する。図１０の場合は、デバイスＢのブロック１には、ページ０〜１９にデータが存在している状態で、ページ１５〜３０に対する書き込みが発生しているので、ページ１５〜３１への書き込みデータのうち重複するページ１５〜１９のデータが、デバイスＡの未使用の空きブロックＫのページ１５〜１９に書き込まれる。
【００３６】
ステップＳ１６０におけるデバイスＡへのデータ書き込み処理と並行して、ステップＳ１９０の処理が実行される。ステップＳ１９０では、デバイスＢの未使用の空きブロックに、書き込み要求データのうちデバイスＡで使用中のページと重複するページのデータを書き込む。図１０の場合は、デバイスＡのブロック１には、ページ２０〜６３にデータが存在している状態で、ページ１５〜３０に対する書き込みが発生しているので、ページ１５〜３１への書き込みデータのうち重複するページ２０〜３０のデータが、デバイスＢの未使用の空きブロックＬのページ２０〜３０に書き込まれる。
【００３７】
ステップＳ１６０の処理は、ＲＡＭバッファ２３ａに一時記憶された書き込み要求データをメモリＩ／Ｆ２１、Ｉ／Ｏチャネル１１ａを介してデバイスＡに書き込むことによって行われ、ステップＳ１９０の処理は、ＲＡＭバッファ２３ｂに一時記憶された書き込み要求データをメモリＩ／Ｆ２１、Ｉ／Ｏチャネル１１ｂを介してデバイスＢに書き込むことによって行われるので、ステップＳ１６０およびＳ１９０の処理を高速に並列処理することが可能となる。ステップＳ１６０の処理が終了次第、ステップＳ１７０の処理が実行され、ステップＳ１９０の処理が終了次第、ステップＳ２００の処理が実行される。
【００３８】
上記のようなデバイスＡ，Ｂでの新たなデータの書き込みが終了すると、書き込み要求されたページ以外のデータを、それぞれのデバイス内で先に書き込んだ未使用空きブロックにコピーする。すなわち、デバイスＡ側では、デバイスＡで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データをデバイスＡの未使用空きブロックにコピーし（ステップＳ１７０）、デバイスＢ側では、デバイスＢで使用中のページの記憶データのうち書き込み要求データと重複するページ以外の記憶データをデバイスＢの未使用空きブロックにコピーする（ステップＳ２００）。
【００３９】
図１０の場合、デバイスＡ側では、ブロック１における書き込み要求されたページ１５〜３０以外のページ３１〜６３の記憶データをデバイスＡ側の未使用ブロックである物理ブロックＫの物理ページ３１〜６３にコピーする（ステップＳ１７０）。このコピー処理では、デバイスＡ側の物理ブロック１の物理ページ３１〜６３に記憶されているデータを、Ｉ／Ｏチャネル１１ａ、メモリＩ／Ｆ２１を介してＲＡＭバッファ２３ａの作業領域に読み出し、ＲＡＭバッファ２３ａに書き込まれたデータをメモリＩ／Ｆ２１、Ｉ／Ｏチャネル１１ａを介してデバイスＡ側の物理ブロックＫの物理ページ３１〜６３に書き込む。
【００４０】
一方、デバイスＢ側では、ブロック１における書き込み要求されたページ１５〜３０以外のページ０〜１４の記憶データをデバイスＢ側の未使用ブロックである物理ブロックＬの物理ページ０〜１４にコピーする（ステップＳ２００）。このコピー処理では、デバイスＢ側の物理ブロック１の物理ページ０〜１４に記憶されているデータを、Ｉ／Ｏチャネル１１ｂ、メモリＩ／Ｆ２１を介してＲＡＭバッファ２３ｂの作業領域に読み出し、ＲＡＭバッファ２３ｂに書き込まれたデータをメモリＩ／Ｆ２１、Ｉ／Ｏチャネル１１ｂを介してデバイスＢ側の物理ブロックＬの物理ページ０〜１４に書き込む。
【００４１】
このような未使用ブロックへの書き込みが終了すると、コピー元のブロック（図１０のデバイスＡ，Ｂの物理ブロック１）を一時的に使用済みブロックとしてアクセスを禁止する。具体的には、図６に示した使用済みブロック管理テーブル５０のデバイスＡ側およびデバイスＢに、物理ブロック１のブロック番号１を登録する。
【００４２】
つぎに、アドレス制御部２４は、デバイスＡ，Ｂでの書き込み処理、デバイスＡ，Ｂでのコピー処理に対応するようにブロック管理テーブル３０およびページ管理テーブル４０を更新する（ステップＳ１８０、Ｓ２１０）。具体的には、図１０の場合、論理ブロック１に対応付けられる物理ブロックが、デバイスＡでは物理ブロック１から物理ブロックＫに変更され、デバイスＢでは物理ブロック１から物理ブロックＬに変更されたので、この変更に対応するようにブロック管理テーブル３０を更新する。また、ページ０〜１４はデバイスＢに記憶され、ページ１５〜１９はデバイスＡに記憶され、ページ２０〜３０はデバイスＢに記憶され、ページ３１〜６３はデバイスＡに記憶されるような記憶変更が行われたので、この変更に対応するように論理ブロック１に対応するページ管理テーブル４０を更新する。
【００４３】
この後、使用済みブロック管理テーブル５０に登録した使用済みブロックを消去し、未使用ブロックとして図５に示した未使用ブロック管理テーブル４５に登録する。図９の場合は、コピー元であるデバイスＡ，Ｂの物理ブロック１が使用済みブロックとされているので、この使用済みのデバイスＡ，Ｂの物理ブロック１を消去処理し、その後デバイスＡ，Ｂの物理ブロック１を未使用ブロック管理テーブル４５に登録することになる。なお、図７において、ステップＳ１６０とステップＳ１７０の処理順序が逆になってもよく、ステップＳ１９０とステップＳ２００の処理順序が逆になってもよい。
【００４４】
このように第１の実施の形態においては、物理ブロックが同一論理ブロックに対応付けられるメモリデバイスＡ，Ｂを用意し、これらメモリデバイスＡ，Ｂに対するブロック移動およびデータ書き込み処理を並列に実行するようにしているので、データ存在領域への書き込み発生時におけるブロック移動とデータ書き込み処理を高速化、効率化することが可能となる。また、論理アドレスを共用するメモリデバイスＡ，Ｂが用意されているので、ユーザからみたデバイスの寿命を通常より長くすることができ、データの保全性、信頼性の向上を図ることができる。
【００４５】
（第２の実施の形態）
つぎに、この発明の第２の実施の形態を図１１および図１２を参照して説明する。第１の実施の形態で説明したデータ書き込みおよびブロック移動を用いた場合、デバイスＡ，Ｂのブロック内でデータ領域が分散した図１０に示したような状態が発生することが予想される。そこで、この実施の形態では、書き込み終了後に、ブロック内でのデータ領域の分散数が所定の閾値を超えた場合には、ＮＡＮＤメモリ１０にアクセスされていないときに、ＣＰＵ２２がデフラグ処理を行うようにする。
【００４６】
図１１はデフラグ処理の動作手順を示すフローチャートである。まず、ＣＰＵ２２は、データ書き込み動作終了後に、デバイスＡ，Ｂにおいてデータが記憶されるページの分散数（分割数）が所定の閾値を越えた物理ブロックが存在するか否かをページ管理テーブル４０およびブロック管理テーブル３０を用いて判定し（ステップＳ３００）、分割数が閾値を越えるブロックが存在する場合、分割数が閾値を越えるブロックに対しデフラグ処理を開始する（ステップＳ３１０）。ただし、デフラグ処理は、ＮＡＮＤメモリ１０に対する書き込み／読み出しなどのアクセスが発生していないときに実行する。図１２の左側には、デバイスＡ，Ｂにおいて、データ領域が分散されている状態が示されている。第１の実施の形態の手法を用いた場合、デバイスＡ，Ｂでの分散数は基本的に同じである。
【００４７】
デフラグ処理では、まず、一方のデバイスのブロック内のデータをＲＡＭバッファ２３ａ（または２３ｂ）に読み出す（ステップＳ３２０）。次に、ＲＡＭバッファ２３ａ（または２３ｂ）に読み出されたデータを他方のデバイスにおける同じ論理アドレスで対応付けられたブロックに対して書き込む（ステップＳ３３０）。この書き込みの際には、読み出し元のページと書き込み先のページは同じとする。図１２の場合は、デバイスＢのブロック１のページ０〜１４、ページ２０〜３０、ページ６４〜７８、ページ８６〜９６からデータが読み出され、読み出された各データはデバイスＡのブロック１の同じページ（ページ０〜１４、ページ２０〜３０、ページ６４〜７８、ページ８６〜９６）に対し書き込まれる。このようなデフラグ処理が終了すると、読み出し元のブロックであるデバイスＢのブロック１は、消去された後、未使用ブロックとして登録される。
【００４８】
なお、デフラグ処理の際、デバイスＡ側のブロックとデバイスＢ側のブロックとの記憶データ量を比較し、この比較結果に基づき記憶データ量が少ないほうから多い方にデータを書き込むようにしたほうが、デフラグ処理を高速化することができる。また、一方のデバイスにおける別の新たな未使用ブロックに対し、両デバイスＡ，Ｂにおける分割数が所定数を越えるブロックのデータを書き込むデフラグ処理を行うようにしてもよい。この場合、デフラグ処理が終了すると、読み出し元の両デバイスＡ，Ｂにおけるブロックは消去された後、未使用ブロックとして登録される。
【００４９】
このように第２の実施の形態では、両デバイスＡ，Ｂにおける分割数が所定数を越えるブロックが存在する場合、一方のデバイスにデータを集約化させるデフラグ処理を実行させるようにしたので、書き込み処理の際には、図１０で示した２つのデバイスＡ，Ｂに跨るアクセスが発生し難くなり、図８または図９に示したアクセスが多くなって、書き込み処理を高速化することが可能となる。
【００５０】
なお、管理テーブルにおけるデータの管理手法は、図３〜図６に示したものに限らず、任意の手法を用いるようにしてもよい。また、上記実施の形態では、ページ管理テーブル４０のValid情報およびデバイス識別情報によって、各ページの使用／未使用と、データがデバイスＡ，Ｂのどちらに記憶されているかを判別するようにしているが、各デバイスＡ，Ｂにおける該当ブロック内の各ページが、データが記憶されていないイレーズページであるか否かをサーチし、このサーチ結果に基づいて各ページの使用／未使用と、データがデバイスＡ，Ｂのどちらに記憶されているかを判別するようにしてもよい。また、上記実施の形態では、論理アドレスを共用する２つのＮＡＮＤメモリを用いたが、論理アドレスを共用する３つ以上のＮＡＮＤメモリを用いて、上記と同様の書き込み制御、ブロック移動制御を行うようにしてもよい。
【符号の説明】
【００５１】
１  メモリシステム、１０  ＮＡＮＤメモリ、１１ａ  Ｉ／Ｏチャネル、１１ｂ  Ｉ／Ｏチャネル、２０  コントローラ、２１  メモリＩ／Ｆ、  ２２  ＣＰＵ、  ２３ａ  ＲＡＭバッファ、２３ｂ  ＲＡＭバッファ、２４  アドレス制御部、３０  ブロック管理テーブル、４０  ページ管理テーブル、１００  ホスト装置。
【図１】
2010287049.tif 000003
【図２】
2010287049.tif 000004
【図３】
2010287049.tif 000005
【図４】
2010287049.tif 000006
【図５】
2010287049.tif 000007
【図６】
2010287049.tif 000008
【図７】
2010287049.tif 000009
【図８】
2010287049.tif 000010
【図９】
2010287049.tif 000011
【図１０】
2010287049.tif 000012
【図１１】
2010287049.tif 000013
【図１２】
2010287049.tif 000014