(57)【要約】【課題】ディスク装置をエミュレートするソリッドステートメモリを提供すること。【解決手段】ディスク装置をエミュレートするソリッドステートメモリであって、論理セクタアドレスをメインメモリアドレスに変換する変換手段と、ブロック単位で消去可能な不揮発性メモリセルから構成されるメインメモリとを備え、メインメモリ内の書き込まれていない位置を指すために第一のポインタが使用され、前記書き込まれていない位置を含む消去可能ブロックの次の消去されていない消去可能ブロックを指すために第二のポインタが使用され、第一のポインタと第二のポインタの間に少なくとも一つの消去状態の消去可能ブロックが常にあることを保証すべく制御手段が設けられていることを特徴とするソリッドステートメモリ。【選択図】図１
2006277775.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムであって、
所定のシーケンスで配置された複数の消去可能なメモリブロックであって、該複数の消去可能なメモリブロックの各々は、予め定義された物理アドレスを有する、複数の消去可能なメモリブロックと、
論理アドレスを該予め定義された物理アドレスのうちの１つに変換する変換手段と、
該複数の消去可能なメモリブロックのうちの書き込まれるべき第一の特定のメモリブロックを指す第一のポインタを記憶する手段と、
該複数の消去可能なメモリブロックのうちの消去されるべき第二の特定のメモリブロックを指す第二のポインタを記憶する手段であって、該第二の特定のメモリブロックは、該複数の消去可能なメモリブロックのうちの消去されたメモリブロックの次のメモリブロックであり、該消去されたメモリブロックは、該第一の特定のメモリブロックと該第二の特定のメモリブロックとの間に位置し、該第二の特定のメモリブロックは、有効なデータまたは無効なデータのいずれかを含む、手段と、
該所定のシーケンスの順序で、該複数の消去可能なメモリブロックに対して該第一のポインタをシーケンシャルに進行させるように設けられた制御手段であって、該第一の特定のメモリブロックと該第二の特定のメモリブロックとの間に、該複数の消去可能なメモリブロックの所定のシーケンスで、該複数の消去可能なメモリブロックのうちの少なくとも１つの消去されたメモリブロックが常に存在することを保証にするように設けられた制御手段と
を備え、
該制御手段は、該第一の特定のメモリブロックと該第二の特定のメモリブロックとの間の消去可能なメモリブロックの数が所定の数を下回る場合には、該複数の消去可能なメモリブロックに対して該第二のポインタをシーケンシャルに進行させる消去動作を実行し、
該制御手段は、該第二の特定のメモリブロックに含まれる有効なデータを読み出し、該第一の特定のメモリブロックに該有効なデータを書き込み、該消去動作により、該第二の特定のメモリブロックに含まれる該無効なデータが消去される、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリシステムに関し、具体的には、ブロック構造のデータを記憶するメモリシステムに関する。本発明は、不揮発性メモリセルを記憶媒体として使用する場合に適用される。本発明で使用する不揮発性メモリセルは具体的には、個々のセルを消去するのではなく、メモリセルのブロックを消去することのできる種類のメモリセルである。フラッシュＥＰＲＯＭセル、カルコゲニドメモリセル、フェロオプティックセルなどの各種メモリセルを使用することができる。
【背景技術】
【０００２】
コンピュータ用の一般的なメモリ記憶装置の多くは、磁気ディスク装置のような回転する記憶媒体を基本としている。しかし、回転記憶媒体にはいくつかの欠点がある。これらの装置は回転する円板から構成されるため、比較的大きな電力を必要とする。シーク待ち時間（ヘッドが正しい位置に移動するのにかかる時間）および回転待ち時間（トラックの正しい部分の位置を見つけるのにかかる時間）のために、これらの装置は読出し／書込みが比較的遅い。磁気ディスクは比較的重く、あまり頑丈ではない（衝撃に敏感である）。対照的に、半導体メモリは軽量かつ頑丈で、消費電力もごくわずかであり、動作が高速である。以上の理由から、磁気ディスクと等価のソリッドステート装置の使用が望ましい。ソリッドステートメモリとして選択される特定の半導体は、高密度、不揮発性で、ビットあたりのコストが低いことが好ましい。このことから、フラッシュメモリは候補として理想的である。
【０００３】
ソリッドステートディスク装置用の記憶媒体としてフラッシュメモリを使用する従来技術の文献は多い。これらの文献には以下の特許が含まれる。ＥＰ０３９２８９５、ＥＰ０４２４１９１、ＥＰ０５２２７８０、ＥＰ０５９７７０６、ＥＰ０６１７３６３、ＥＰ０６１８５３５、ＥＰ０６１９５４１、ＧＢ２２５１３２３、ＷＯ９３０２４１８、ＷＯ９４１９７４６、ＷＯ９４２０９０６、ＷＯ９４２３３６９、ＷＯ９４２３４３２、ＷＯ９５１４２７２、ＷＯ９５１００８３、ＵＳ４５１１９６４、ＷＯ８４００６２８、ＷＯ９５１００８３、ＷＯ９５１４２７２。これらの文献の多くは共通するある特徴を有する。例えば、大部分の文献は、ホストコンピュータの論理アドレス（通常はＣＨＳ（シリンダ−ヘッド−セクタ）フォーマットである）をフラッシュメモリの物理アドレスに、またはフラッシュメモリの物理アドレスを生成するのに使用する中間アドレスに変換するテーブルの使用を開示している。また、大部分の文献は、一つのブロックが、別のブロックを実質的に上まわる回数書き込まれることがないようにする何らかの手段を有する。フラッシュソリッドステートディスクエミュレータの第三の共通する特徴は、半導体への書込みを高速化するバッファである。バッファは通常、ＳＲＡＭ（スタティックランダムアクセスメモリ）などの高速メモリから作られる。
【０００４】
フラッシュメモリを記憶媒体として使用する全てのソリッドステートディスクエミュレーションシステムは、セルの消去および書込みを制御する何らかの方法も有していなければならない。これらのセルは、消去に比較的長い時間がかかること、及び一度セルに書き込むと、セルを消去しなければ再度書き込むことができないことがその理由である。本発明は、ソリッドステートディスクエミュレーティングシステムに使用することができるメモリセルの書込みおよび消去を制御するアルゴリズムを使用する。
【０００５】
ＥＰＯ５２２７８０には、各セルの消去回数、各メモリブロックのステータス、およびメモリに書き込むべきデータを保持するバッファを記録したメモリ管理テーブルを使用するソリッドステートディスクのための制御方法が記載されている。この方法は、最初のブロックを消去する前に消去されるセクタを別のブロックにコピーすることを含む。
【０００６】
ＥＰ０３９２８９５は、メモリ動作を高速化するためにフラッシュメモリへの書込みをバッファリングするキャッシュメモリの使用に関する。これに開示されたメモリシステムは、「各データファイルが最後に書き込まれてからの時間」を判定する手段を使用する。この特許は、エラーの修正および欠陥の置換にも関するが、これらは以下に論じる分割出願の主題でもある。
【０００７】
ＥＰ０６１８５３５は、欠陥置換を備えたソリッドステートディスクエミュレータに関する。
【０００８】
ＥＰ０６１７３６３は、フラッシュメモリ中の欠陥セルを、メモリ中の欠陥位置から予備の位置を指すポインタを使用することによって修正する方法に関する。
【０００９】
ＥＰ０４２４１９１は、規定された順序でアクセス可能なメモリに順次データを記憶する方法に関する。メモリの欠陥は、順序付けされたディレクトリに記憶され、メモリの書込み時には、これらの欠陥位置はスキップされる。
【００１０】
ＥＰ０６１９５４１は、中央処理装置からのランダムアクセスが可能なソリッドステートディスクエミュレーティングシステムを提供する。このシステムはまた、各メモリブロックの消去回数を計数し、これによってプロックが多数回書き込まれた場合にはそのブロックを回避することができる。
【００１１】
ＥＰ０５９７７０６は、ホストが与えた論理セクタアドレスを半導体メモリの物理アドレスにマップするマップＲＯＭを使用するソリッドステート周辺記憶装置を開示している。半導体メモリの全ての不良セクタのアドレスがマップＲＯＭに記録される。このマッピングを制御するためにマイクロシーケンサが使用される。
【００１２】
ＧＢ２２５１３２３には、フラッシュメモリ用のディスクエミュレーションシステムが記載されている。この開示に記載されたクリーンアップ動作は、ある条件を満足するときにバックグラウンドタスクとして生じるという意味でのみ自動である。反復使用回数の最も少ないブロックか、または消去されたセクタの数が最も多いブロックが消去される。これによって、消去するブロックが本質的にランダムに選択される。
【００１３】
ＷＯ９４２０９０６には、ディスク装置の動作をエミュレートするのに使用するフラッシュファイルシステムが開示されている。このシステムは、書込み可能なフラッシュメモリブロックに関する情報を記憶するブロック割当てマップを使用する。ブロックを更新するときには、未使用のブロックの位置が見つかるまで割当てマップが調べられる。転送ユニットを使用して、システムのメモリ再生を容易にしている。転送ユニットは、書き込まれていない消去されたメモリブロックである。古いデータ（古いブロック）を含むメモリブロックのアクティブデータ（現在有効なデータ）は、転送ユニット（新しいブロック）の同じ位置に書き込まれ、古いブロックは消去される。次いで、この古いブロックが転送ユニットになる。
【００１４】
ＷＯ９４２３４３２には、フラッシュメモリの大容量記憶アーキテクチャが開示されている。変更されたデータファイルを空の大容量記憶ブロックにプログラムすることによって消去サイクルは回避される。記憶領域はマルチセクタ消去によって定期的にクリーンアップされる。カウンタを使用して、最大回数を超えて消去されるブロックがないことを保証する。
【００１５】
ＷＯ９４２３３６９には、ＷＯ９４２３４３２と非常に類似したフラッシュメモリの大容量記憶アーキテクチャが開示されている。これらの二つの開示は同じ出願人によるものである。
【００１６】
ＷＯ９４１９７４６には、一度に２バイトを記憶するフラッシュソリッドステート装置が開示されている。セクタがフラッシュメモリに書き込まれるたびに、それとともにヘッダも書き込まれる。そのセクタの古いバージョンがメモリ中に存在する場合には、それには無効の印がつけられる。記憶空間があるしきい値を下まわるとクリーンアップ動作が実行される。セクタからの良好なデータは、バッファにコピーされ、セクタが消去されると、この良好なデータは再びそのセクタへコピーされる。
【００１７】
ＷＯ８４００６２８には、記憶媒体の欠陥を管理する方法が開示されている。この方法には、ホストからアドレスを受け取ること、そのアドレスより下位の欠陥位置の数で受け取ったアドレスを補償すること、および補償されたアドレスにアクセスすることが含まれる。記憶媒体の欠陥位置が順序づけられたリストが構築される。
【００１８】
ＷＯ９５１００８３では、各ブロックが受けた消去回数を計数するためのカウンタを使用し、データファイルの更新バージョンを新しい位置にコピーする。システムをクリーンアップするためにブロックは定期的に消去される。半導体メモリ中のブロックは、市販のハードディスクのセクタサイズに適合するようにサイズが決められる。
【００１９】
ＷＯ９５１４２７２は、アクセスすべき論理ブロックの番号から正しい開始物理アドレスを生成する方法を提供する。
【発明の開示】
【課題を解決するための手段】
【００２０】
本発明の好ましい実施形態は、メモリ全体を通じた消去／書込みサイクルの自動等化を提供する。この自動等化は、ある時間の後のバックグラウンドタスクとしてではなく、データの書込みの最中に等化が実施されるという点で完全な意味において自動である。本発明の好ましい実施形態は記憶データの自動圧縮も提供する。本発明の好ましい実施形態はまた、使用可能なフラッシュメモリ容量を１００％の効率で使用することができる。すなわち、使用可能なフラッシュメモリを全て使用することができる。本発明の好ましい実施形態を、どんなサイズの消去可能ブロックを有するフラッシュメモリにも使用することができる。消去可能ブロックのサイズが５１２バイトである必要はない。これによって、記憶された各データセグメントに誤り訂正コードを含めることが可能となる。本発明はまた、物理アドレス空間からフラッシュアドレス空間への変換を非常に単純化する。
【００２１】
本発明は、ディスク装置をエミュレートするソリッドステートメモリであって、論理アドレスを記憶装置にアクセスするための第二のアドレスに変換する変換手段と、ブロック単位で消去可能な不揮発性メモリセルから構成される記憶装置を備えており、記憶装置内の書き込まれていない位置を指すために第一のポインタが使用され、前記書き込まれていない位置を含む消去可能ブロックの次の消去されていない消去可能ブロックを指すために第二のポインタが使用され、第一のポインタと第二のポインタの間に少なくとも一つ消去された状態の消去可能ブロックが常にあることを保証すべく制御手段が設けられていることを特徴とするソリッドステートメモリを提供する。前記記憶装置内の書き込まれていない位置が記憶装置内の最下位の書き込まれていない位置であるソリッドステートメモリ。
【００２２】
記憶装置内の前記書き込まれていない位置が記憶装置内の最上位の書き込まれていない位置であるソリッドステートメモリ。
【００２３】
前記書き込まれていない位置を含む消去可能ブロックの次順の消去されていない消去可能ブロックが、第一のポインタより上の最も下位の物理アドレスを有する消去されていない消去可能ブロックであるソリッドステートメモリ。
【００２４】
前記書き込まれていない位置を含む消去可能ブロックの次順の消去されていない消去可能ブロックが、第一のポインタより下の最も上位の物理アドレスを有する消去されていない消去可能ブロックであるソリッドステートメモリ。
【００２５】
前記書き込まれていない位置を含む消去可能ブロックの次順の消去されていない消去可能ブロックが、適当なアルゴリズムによって決定されるソリッドステートメモリ。記憶装置へのデータの書込み速度を向上させるためにバッファを使用するソリッドステートメモリ。
【００２６】
前記バッファがＳＲＡＭバッファであるソリッドステートメモリ。
【００２７】
前記バッファがＤＲＡＭバッファであるソリッドステートメモリ。
【００２８】
前記記憶装置がフラッシュＥＰＲＯＭであるソリッドステートメモリ。
【００２９】
前記記憶装置がカルコゲニドセルから構成されたソリッドステートメモリ。
【００３０】
前記記憶装置がフェロオプティックメモリであるソリッドステートメモリ。
【００３１】
前記制御手段が、マイクロプロセッサ、マイクロコントローラ、またはステートマシンによって提供されるソリッドステートメモリ。
【００３２】
本出願においては、書き込まれていない位置とは、これまで書き込まれたことのない位置を意味するのではなく、消去状態にある位置を意味する。
【００３３】
本出願においては、第二のアドレスを、物理アドレス、物理ブロックアドレス、または中間アドレスとすることができる。
【００３４】
本発明を、添付図面に参照して例示的な方法で具体的に説明する。
【００３５】
第１図は、磁気ディスク装置をエミュレートするメモリシステムのブロック図である。
【００３６】
第２図は、フラッシュメモリ内の細分化部分の階層を示す図である。
【００３７】
第３Ａ図および第３Ｂ図は、書込み／消去アルゴリズムが、メインフラッシュメモリの消去および書込み動作を実施した位置および頻度を管理する方法を示す図である。
【００３８】
第３Ａ図は、消去／書込みアルゴリズムが実施される前のフラッシュメモリを示す図である。第３Ｂ図は、書込み／消去アルゴリズムが実施された後の同じフラッシュメモリを示す図である。
【００３９】
第１図を参照すると、フラッシュメモリ１０は、ホストから受け取ったデータの主記憶装置として使用される。フラッシュメモリ１０はメモリコントローラ１２によって制御される。メモリコントローラ１２は、フラッシュメモリ１０と特定技術に依存しないインタフェース１４との間で動作する。メモリコントローラ１２は、物理メモリ（フラッシュメモリ１０）内の高レベル機能の低レベル実行を制御する。メモリコントローラ１２は、特定のメモリ技術に依存する。
【００４０】
特定技術に依存しないインタフェース１４は、メモリコントローラ１２をシステムコントローラ１６に接続する。システムコントローラ１６は、メインフラッシュメモリ１０内のブロック構造データ、およびフラッシュメモリ１０へのデータの書込みを高速化するために含められる書込みバッファ１８内のブロック構造データの記憶およびアクセスを管理する。システムコントローラ１６は以下の機能を実行する。システムコントローラは、ホストからの論理アドレスを、フラッシュメモリ１０での使用に適したアドレスに変換する。この変換を以下、論理−物理アドレス変換と称する。この変換により、一つまたは複数の中間アドレスが生成されることがある。システムコントローラは、必要な全てのアドレスルックアップテーブルを保持する。システムコントローラは、フラッシュメモリ１０の欠陥位置を管理する。システムコントローラは書込みバッファ１８を管理する。システムコントローラは、フラッシュメモリ１０のブロック消去を管理する。システムコントローラは、電力の投入／除去後のシステムの起動／遮断を管理する。
【００４１】
ホストからのセクタ書込みは全て、書込みバッファ１８に送られる。これによって、フラッシュメモリの低速書込み速度の影響が最小限となる。セクタデータは、書込みバッファ１８からフラッシュメモリ１０にバックグラウンドタスクとして転送される。書込み速度が重要でない用途では、書込みバッファ１８を省略することができる。
【００４２】
システムコントローラ１６は、補助記憶装置２０およびホストインターフェース２２に接続される。補助記憶装置２０は、フラッシュメモリ１０の欠陥ブロック及び消去可能ブロックテーブル、アドレス変換テーブル、エラーログ、マイクロコントローラファームウェアなどの情報を記憶するのに使用される。補助記憶装置には、ホストインターフェース２２から直接にアクセスすることができ、直接にマップされたメモリアドレス空間をホストに提供することができる。第２図を参照すると、メインのフラッシュメモリ１０は以下の細分化階層に配置される。フラッシュメモリは、一つまたは複数の半導体チップ３０から構成される。半導体チップ３０は、論理的意味を一切持たない物理的細分化部分である。消去ブロック３２は、半導体チップ３０の細分化部分である。消去ブロックは、一回の消去動作で消去することができる最小数のセルである。半導体チップ中の消去ブロックの数は、チップサイズおよびチップ構成に応じて変化する。長方形のワード位置群がフラッシュブロックとして割り当てられる。フラッシュブロック３４は、欠陥管理においてマスク可能な最小のブロックサイズである。セルが不良である場合に、マスクしたり、置換したりすることができる最小の領域がフラッシュブロック３４である。欠陥マッピングは、一つのフラッシュブロック３４の細分性（granularity）を有する。セクタは、ディスクエミュレーションプロトコルに基づく一つのデータ単位である。フラッシュメモリに記憶されたデータ（一般には、５１２バイトにＥＣＣバイトおよびヘッダを加えたもの）を以下、フラッシュセクタと称する。ホストのオペレーティングシステムによって送られたデータ（一般に５１２バイト）を以下、ホストセクタと称する。ホストセクタは、ホストとのデータ転送の基本単位である。最も一般的なホストセクタのサイズは５１２バイトである。フレーム３６はフラッシュブロック３４の、例えば、長方形のフラッシュブロック３４内の行などのアドレス可能なサブユニットである。各ワード３８は、特定技術に依存しないインタフェース１４でアドレス可能な最小単位としてランダムにアクセス可能である。ワードサイズは、メモリシステムのデータ入出力の幅によって設定され、１、２、または４バイトとすることができる。
【００４３】
ワード内のビットの実際の物理的位置は、本発明に使用するアルゴリズムにはトランスペアレントである。フラッシュメモリは単に、ワード位置の長方形アレイとして取り扱われる。
【００４４】
フラッシュブロック３４のサイズは、ホストセクタサイズ（ほとんどの場合５１２バイト）、フレームサイズ、またはワードサイズと等しくなるように設定することができる。メモリハーベスト（メモリ全体のうちのデータ記憶に使用できる部分）は、あるフラッシュブロックサイズの値よりも小さい値で停滞し、そのためフラッシュブロックサイズをさらに小さくしてもメモリハーベストの増大にはつながらない。しかし、フラッシュブロックサイズが小さいことに関連する欠点がある。フラッシュブロックのサイズが小さいほど、より多くの記憶管理空間が必要となる。コンポーネント試験の複雑さも増大する。したがって、フラッシュブロックのサイズには最適な範囲がある。
【００４５】
本発明のコンセプトから逸脱することなく、各種アドレス指定フォーマットを本発明とともに使用することができる。
【００４６】
メモリを１００％利用するためには、セクタの開始アドレスは、前のセクタの終端アドレスの直後のワードでなければならない。これを達成するため、開始アドレスは、シングルワードの分解能（resolution）に規定される。フラッシュセクタは隙間をあけずに記憶されるので、フラッシュセクタは、フラッシュブロックおよび消去ブロックの両方をオーバフローする。このような場合のフラッシュセクタは分割セクタとして知られ、その連続領域は、次のフラッシュブロックまたは消去ブロックの最初に置かれる。したがって、フラッシュブロック内のフラッシュセクタの開始アドレスはフラッシュブロックごとに異なる。これを容易に管理できるのを確実にするには、消去ブロックが書き込まれる順序がそれらの物理アドレス指定の順序に正確に対応するのを保証する必要がある。フラッシュブロック内に欠陥セルがある場合には、そのブロックはマスクされて除外される。そのため、フラッシュセクタの一部が一つのフラッシュブロックに記憶され、次のフラッシュブロックがマスクされて除外され、フラッシュセクタの残りの部分が、マスクされて除外されたフラッシュブロックの直上のフラッシュブロックに記憶されるような状況が生じることがある。したがってフラッシュメモリ空間は不連続となることがある。
【００４７】
第３Ａ図および第３Ｂ図に、書込み／消去アルゴリズムが、メインフラッシュメモリの消去および書込み動作の実施される位置および頻度を管理する方法を示す。第３Ａ図は、消去／書込み段階の前のフラッシュメモリを示す図である。第３Ｂ図は、書込み／消去段階後の同じフラッシュメモリを示す図である。
【００４８】
このアルゴリズムは、二つのポインタ、すなわち書込みポインタおよび消去ポインタの存在に基づく。これらはそれぞれ、現在の書込みおよび消去位置を規定する。位置は、物理セクタアドレスとして規定され、ポインタは、物理セクタアドレス空間を循環する。書込みポインタは、次のセクタ書込み動作が実施されなければならない物理セクタの番号を規定する。このセクタの物理的位置は、メモリシステム内のシステムコントローラ１６によるデータ書込みに備えて事前に消去されていることが保証されている。書き込まれるセクタデータは、ホストからのセクタ書込み後の書込みバッファ１８からのものでもよいし、または消去ブロックの消去動作に備えたメインフラッシュメモリ１０内の別のセクタからのものでもよい。セクタ書込み動作に続いて、書込みポインタは一つ増分されて、次の上位の物理セクタアドレスを指す。書込みポインタが、使用可能な最も上位の物理セクタアドレスに達したときには、ポインタはラップアラウンドし、使用可能なもっとも下位の物理アドレスを指す。
【００４９】
消去ポインタは、次に消去される予定の消去ブロックのフラッシュメモリ空間における消去ブロックアドレスを規定する。消去ポインタの第二フィールドは、消去ブロックの最下段に位置する最初の完全なセクタの物理セクタ番号を規定する。消去ブロックの消去動作後に、消去ブロック番号が一つ増分される。ルックアップテーブル（以下、消去ブロックテーブルと称す）から、消去ポインタが指す消去ブロックの最初のセクタの物理セクタアドレスが提供される。その消去ブロックが全て欠陥で、書込み可能なセクタを全く含まない（これは、消去ブロックテーブル中の特定のエントリで示される）場合は、消去ポインタは再び増分される。消去ポインタが、使用可能な最上位の消去ブロックに達したときには、ポインタは、メモリの最下位部分に戻り、使用可能な最下位の消去ブロックを指す。消去ブロックは、現在の書込み位置の直上の消去されたセクタ位置の数がほぼ一定に保たれるような速度で消去される。したがって消去動作は、消去ポインタで規定されたセクタ番号と書込みポインタで規定されたセクタ番号の差があるしきい値より小さくなったときに実行される。消去ブロックを消去する前に、その消去ブロック内の有効データを含むセクタを再配置しなければならない。この有効データの再配置は、有効データを含むセクタを再配置バッファ（以下、転送バッファと称す）に読み出し、次いでこれらのセクタを、書込みポインタが指す位置に書き込むことによって実施される。論理−物理アドレス変換テーブルは、そのセクタの新しい物理セクタアドレスを指すように更新される。このようにして有効セクタのみが再配置され、古いデータを有するセクタは自動的に消去されるので、記憶データの自動圧縮が提供される。
【００５０】
このアルゴリズムによって確立されたプロセスは、消去されたメモリの連続した小領域が、フラッシュメモリ空間全体を循環し、その上部境界で遭遇する断片化されたセクタを排除し、その下部境界でそれらを圧縮し、再配置することと等価であると考えることができる。
【００５１】
本発明の範囲内で前述の実施形態に各種修正を実施できることを理解されたい。例えば、代替配置として、消去されたメモリセルの連続領域を別の方向に移動させることができる。すなわち下部境界が、下部境界の直下の断片化されたセクタを排除する場合には、有効データは、上部境界の直下の位置に書き込まれる。
【図面の簡単な説明】
【００５２】
【図１】第１図は、磁気ディスク装置をエミュレートするメモリシステムのブロック図である。
【図２】第２図は、フラッシュメモリ内の細分化部分の階層を示す図である。
【図３】第３Ａ図および第３Ｂ図は、書込み／消去アルゴリズムが、メインフラッシュメモリの消去および書込み動作を実施した位置および頻度を管理する方法を示す図である。第３Ａ図は、消去／書込みアルゴリズムが実施される前のフラッシュメモリを示す図である。第３Ｂ図は、書込み／消去アルゴリズムが実施された後の同じフラッシュメモリを示す図である。
【図１】
2006277775.tif 000003
【図２】
2006277775.tif 000004
【図３】
2006277775.tif 000005