(57)【要約】  ポータブルデータ記憶デバイスは、ＵＳＢ制御装置２と、マスター制御ユニット７と、ＮＡＮＤフラッシュメモリデバイス９とを含む。マスター制御ユニット７は論理アドレスに書き込まれることになるデータと、論理アドレスからデータを読み出す命令を受け取る。マスター制御ユニット７はメモリアドレスマッピングテーブルを使用して、論理アドレスをメモリデバイス９中の物理アドレスに関係付け、論理アドレスに対応する物理アドレスにデータを書き込み、または物理アドレスからデータを読み出す。物理アドレス領域の異なるものが、異なる時間において論理アドレスに関係付けられるように、マッピングは間隔をあけて変更される。このことはデバイスの速度を増加させ、データが比較的頻繁に書き込まれる論理アドレスに永続的に関係付けられることによる物理アドレスの急速な劣化が起こらないことも意味する。【選択図】      図３
2007519118.tif 000002
【特許請求の範囲】
【請求項１】
ポータブルデータ記憶デバイスにおいて、
（ｉ）前記デバイスへおよび前記デバイスからデータパケットを転送するデータインターフェイスと、
（ｉｉ）インターフェイス制御装置と、
（ｉｉｉ）マスター制御ユニットと、
（ｉｖ）少なくとも１つのＮＡＮＤフラッシュメモリユニットと
を具備し、
前記インターフェイス制御装置は前記インターフェイスを通して受け取ったデータを前記マスター制御ユニットに送るように構成され、
前記マスター制御ユニットは、
あるデータパケットをエンコーディングＲＥＡＤ命令として、他のデータパケットをエンコーディングＷＲＩＴＥ命令として認識し、
（ａ）論理アドレスを示しているＲＥＡＤ命令を受け取ったとき、論理メモリ空間内の論理アドレス領域を、前記メモリユニット内のそれぞれの第１の物理アドレス領域に関係付けるメモリアドレスマッピングテーブルにアクセスし、前記アドレスマッピングテーブルにしたがって、前記論理アドレスに対応する前記メモリユニット中の物理アドレスからデータを読み出し、前記読み出されたデータを含む１以上のデータパケットを前記データインターフェイスに送信し、
（ｂ）論理アドレスおよびその論理アドレスに書き込まれることになるデータを示しているＷＲＩＴＥ命令を受け取ったとき、前記メモリアドレスマッピングテーブルにしたがって、前記論理アドレスに対応する前記物理アドレスが消去されている状態にあるかどうかを決定し、
そうである場合、前記データをその物理アドレスに書き込み、または、
そうでない場合、前記アドレスマッピングテーブルを修正して、第２の物理アドレス領域を、前記論理アドレスを含んでいる前記論理アドレス領域に関係付け、前記修正されたメモリアドレスマッピングテーブルにしたがって、前記論理アドレスに対応する物理アドレスに前記データを書き込み、前記第１の物理アドレス領域の他の部分に記憶されたいずれのデータも前記第２の物理アドレス領域の対応する位置にコピーするように構成されているデバイス。
【請求項２】
前記メモリアドレスマッピングテーブルを規定するデータは前記フラッシュメモリユニットにマッピングデータとして記憶され、前記メモリ制御デバイスは、前記メモリアドレスマッピングテーブルを修正するとき、前記マッピングデータを修正するように構成されている、請求項１記載のデバイス。
【請求項３】
前記メモリ制御アドレスユニットは、開始されたとき、前記フラッシュメモリユニットから前記マッピングデータを抽出し、ＲＡＭメモリ内に前記メモリアドレスマッピングテーブルを発生させるように構成されている、請求項２記載のデバイス。
【請求項４】
それぞれの物理アドレス領域と論理アドレス領域との間の前記マッピングを規定する前記マッピングデータの部分が、その物理アドレス領域内に記憶される、請求項２または３記載のデバイス。
【請求項５】
所定の物理アドレス領域に関連する前記マッピングデータは前記物理アドレス領域の１以上のページの制御データ記憶セクタに記憶される、請求項４記載のデバイス。
【請求項６】
前記物理メモリ空間は、
（ｉ）前記メモリアドレスマッピングテーブルによって、論理アドレス領域に関係付けられた物理メモリ領域と、
（ｉｉ）前記メモリアドレスマッピングテーブルを修正する前記マスター制御ユニットの動作の下、前記論理アドレスに関係付けできる待ち行列物理メモリ領域と
を含む、請求項１ないし５のいずれか１項記載のデバイス。
【請求項７】
前記待ち行列物理メモリ領域は消去されている状態にある、請求項６記載のデバイス。
【請求項８】
前記物理メモリ空間は、前記メモリアドレスマッピングテーブルを修正する前記マスター制御ユニットの動作の下、前記論理アドレスに関係付けできない予約された物理メモリ領域をさらに含む、請求項６または７記載のデバイス。
【請求項９】
前記物理アドレス領域は前記メモリユニットのそれぞれのブロックである、請求項１ないし８のいずれか１項記載のデバイス。
【請求項１０】
前記物理アドレス領域は前記メモリユニット中のブロックのグループであり、前記グループはグループ化テーブルにしたがって規定されている、請求項１ないし８のいずれか１項記載のデバイス。
【請求項１１】
前記ブロックのグループの大半はルールにしたがって規定され、前記グループ化テーブルは前記ルールに対して例外であるグループを規定する、請求項１０記載のデバイス。
【請求項１２】
前記メモリアドレスマッピングテーブルは、前記ルールに対する例外であるグループの１つに関係付けられているいずれの論理アドレス領域に関するフラグも含む、請求項１１記載のデバイス。
【請求項１３】
前記マスター制御ユニットは、論理アドレス領域内の連続的に続く論理アドレスを前記ブロックの異なるものにおけるそれぞれのページに関係付ける、請求項１０ないし１２のいずれか１項記載のデバイス。
【請求項１４】
前記マスター制御ユニットは、連続的な論理アドレスを組に関係付け、論理アドレスの前記組のそれぞれは、各グループ中のブロックの数に等しいメンバの数を有しており、各所定の組に対して前記マスター制御ユニットは、その組の前記論理アドレスを前記それぞれのブロックの対応するページに関係付ける、請求項１３記載のデバイス。
【請求項１５】
前記マスター制御ユニットは、予め規定された時間内に、予め規定された類似基準にしたがって第２のＷＲＩＴＥ命令が受け取られなかったことを決定したときのみ、第１のＷＲＩＴＥ命令の受け取りに応答して、前記ＷＲＩＴＥ命令を実行するよう構成されている、請求項１ないし１４のいずれか１項記載のデバイス。
【請求項１６】
所定の論理アドレス領域に関連して、前記メモリアドレス修正テーブルを修正した後で、前記第１の物理アドレス領域から新しい第２のアドレス領域へのデータの前記コピーの前に、前記基準はコピーされることになるデータの前記所定の論理アドレス領域内の位置に対応する論理アドレスに前記第２のＷＲＩＴＥ命令が関連しているかどうかであり、そのようなＷＲＩＴＥ命令が受け取られた場合、前記コピー動作を中止して、代わりに前記第２のＷＲＩＴＥ命令によって特定されたデータを前記第２の物理アドレス領域の前記位置に書き込む、請求項１５記載のデバイス。
【請求項１７】
前記マスター制御ユニットはデータキャッシュへのアクセスを有し、前記第１のＷＲＩＴＥ命令に応答して前記データを前記データキャッシュに書き込み、前記基準は、前記第２のＷＲＩＴＥ命令が前記第１の命令と同一の論理アドレスに関連しているというものであり、前記決定が肯定である場合、前記第２のＷＲＩＴＥ命令中で特定された前記データは、前記データキャッシュに書き込まれる、請求項１５記載のデバイス。
【請求項１８】
前記マスター制御ユニットはデータキャッシュへのアクセスを有し、前記第１のＷＲＩＴＥ命令に応答して、前記ＷＲＩＴＥ命令が１以上の選択された論理アドレスに関連している場合に、前記データを前記データキャッシュに書き込み、前記基準は、前記第２のＷＲＩＴＥ命令が前記第１の命令と同一の論理アドレスに関連しているというものであり、前記決定が肯定である場合、前記第２のＷＲＩＴＥ命令中で特定された前記データは、前記データキャッシュに書き込まれる、請求項１５記載のデバイス。
【請求項１９】
前記選択された論理アドレスは複数ある、請求項１８記載のデバイス。
【請求項２０】
比較的高頻度で発生する前記ＷＲＩＴＥ命令にエンコードされた論理アドレスを認識し、前記認識された論理アドレスを前記選択された論理アドレスとして設定するパターン認識ユニットをさらに具備する、請求項１８または１９記載のデバイス。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明はポータブルデータ記憶デバイスに関連し、デバイスを用いてデバイスにデータを記憶させ、デバイスに書き込まれたデータを検索する方法に関連する。
【発明の背景】
【０００２】
過去数年の間、フラッシュメモリを含み、コンピュータのシリアルバスに接続することのできるデータ記憶デバイスを提供することは大いに関心を引いている。この分野の先行する文書は、“サムドライブ”（登録商標）の下、その後販売されている単一のデバイスを説明している、ＷＯ０１／６１６９２である。この文書に説明されている１つの実施形態では、コンピュータがＵＳＢ制御装置の制御の下、ポータブル記憶デバイスのフラッシュメモリへおよびフラッシュメモリからデータを転送できるように、デバイスの筐体に取り付けられた雄ＵＳＢプラグが、コンピュータの雌ＵＳＢソケットに直接接続する。このデバイスに対してさまざまな改良が提案されてきた。例えば、ＷＯ０３／００３２８２は、デバイスに指紋センサが設けられてもよいことや、指紋センサがユーザのスキャンされた指紋を予め記憶されたデータと比較することによって、ユーザの識別子を確認したケースでのみ、デバイス内に記憶されたデータへのアクセスが許可されることが開示されている。これらの両文書の開示は参照によりここに組み込まれている。
【０００３】
そのようなポータブル記憶デバイスの構造は図１において示されているようなものであってもよい。ポータブル記憶デバイスは、１とラベル付けされ、波線で示されている筐体を有している。ポータブル記憶デバイスは、ＵＳＢ制御装置２を含み、ＵＳＢ制御装置２は、ホストコンピュータ５のＵＳＢインターフェイス４（例えば、ＵＳＢソケット）に直接接続されるＵＳＢインターフェイス３（例えば、ＵＳＢプラグ）を制御する。ホストコンピュータ５からＵＳＢインターフェイス３に転送されたデータはＵＳＢ制御装置２を通してマスター制御ユニット７に送られる。
【０００４】
データパケットはさまざまな種類がある。データパケットは、ＷＲＩＴＥデータパケットを含み、ＷＲＩＴＥデータパケットは、特定の論理アドレスに５１２バイトの倍数のデータ量を書き込むＷＲＩＴＥ命令を有する。データパケットは、ＲＥＡＤデータパケットも含み、ＲＥＡＤデータパケットは特定の論理アドレスからデータを読み出すＲＥＡＤ命令を有する。ＷＲＩＴＥ命令は一般的に、データの最初の部分が書き込まれなければならない位置の論理アドレスと、どれくらい多くのデータが書き込まれることになるかの指示と、書き込まれることになるデータとを含む。１つのＷＲＩＴＥ命令を通信するのにいくつかのデータパケットを必要としてもよい。同様に、ＲＥＡＤ命令は読み出しを開始する論理アドレス、および、その論理アドレスから開始してどれくらい多くのメモリが読み出されることになるかの指示を示す。
【０００５】
マスター制御ユニット７は、ＮＡＮＤフラッシュメモリ９を制御することによりこれらの命令を実施する。マスター制御ユニット７は、概略的に１２として示される１以上のラインによって送られるコマンドシンボルによって、ＮＡＮＤフラッシュメモリユニット９を制御する。一般的にこれらのライン１２は、データがフラッシュメモリ９に書き込まれることになるときＷＲＩＴＥ信号を送るラインと、フラッシュメモリがマスター制御ユニット７にデータを送ることになるときＲＥＡＤ信号を送るラインと、データがそこに書き込まれ、またはそこから読み出されることになるメモリ中の位置を指示するアドレス信号を送るラインと、フラッシュメモリが何らかの動作するためにはある値をとらなければならないＥＮＡＢＬＥ信号を送るラインとを含む。
【０００６】
マスター制御ユニット７がフラッシュメモリ９にデータを記憶させる必要があるとき、マスター制御ユニット７はフラッシュメモリ９に８ビットバス８経由でデータを送り、ＷＲＩＴＥコマンドと同時に、ＥＮＡＢＬＥ信号およびアドレスが送られる。アドレスはＲＡＭメモリに記憶されているまたはマスター制御ユニット７によってアクセスされる、マッピングにしたがっている論理アドレスに対応する物理アドレス（すなわち、メモリユニット９中の特定のアドレス）である。ＲＥＡＤコマンドに応答してデータがデバイスから転送されるとき、８ビットバス８を通してＮＡＮＤフラッシュメモリ９からマスター制御ユニット７に、５１２バイトパケットでデータが送られる。マスター制御ユニットはＵＳＢ制御装置２に５１２バイトパケットを送り、ＵＳＢ制御装置２はＵＳＢインターフェイス３を通してデバイス１からホスト５に５１２バイトパケットを送る。
【０００７】
デバイスは従来ＵＳＢインターフェイス３を通して電力供給されているので、ＵＳＢインターフェイス３がコンピュータのＵＳＢソケットからプラグを外されたとき、デバイスの電源は落ちる。マスター制御ユニット７のＲＡＭに記憶されているすべてのデータが失われる。
【０００８】
図２はＮＡＮＤフラッシュメモリ９のメモリ空間を示している。デバイスは “ページ”６のそれぞれに５１２バイトセクションのデータを記憶するよう構成されており（各ページに２キロバイトを記憶するような、他の可能性が存在することに留意すべきである）、ページ６のそれぞれは、（一般的に最大１６バイトの）制御データを記憶する、各制御データ記憶セクタ１１も含む。データは “ブロック”１０（すなわち、図２の各行）中で、各ブロック１０に例えば６４のページ６を備えるように構成されている。従来のＮＡＮＤフラッシュメモリは３つの制限を有している。
【０００９】
１．任意の所定のページは、データをそれに書き込むことができる“消去された”状態、または、データがページに記憶されており、異なるデータをページに書き込むことができない“消去されていない”状態のいずれかである。ページは消去されていない状態から消去されている状態にブロック毎ベースでのみ変更することができ、すなわち、所定のブロックの消去されていないページのすべてが、そこに記憶されているすべてのデータを失うように一度に消去されなければならない。
【００１０】
２．所定のブロックまたはページは、限定されたライフサイクルを有している。言い換えると、所定のブロックまたはページは、１０、０００回のような限定された回数のみ、消去された状態から、消去されていない状態に変更させることができる。この制限はメモリデバイスの寿命である。
【００１１】
３．ＮＡＮＤフラッシュメモリは、データをそこに確実に書き込むことができない、という意味で“不良”であるオケージョナルブロックを含む。
【００１２】
上に述べたように、データがそこに書き込まれる、または、データがそこから読み出されるＮＡＮＤメモリデバイス９中のアドレスは、ＵＳＢインターフェイス３を通して受け取られるデータパケット中にエンコードされる論理アドレスによって決定される。従来では、マスター制御ユニットが、論理アドレス空間中のアドレスと物理メモリ空間中の位置との間のマッピングを記憶するテーブルへのアクセスを有しており、物理メモリ空間の位置はダーティーテーブル中にはない、メモリデバイスのブロック内（すなわち、メモリ内の“物理アドレス”）にある。特に、各ブロックはページの数に等しい数のアドレスを有する論理アドレス空間の各領域にマッピングされている。このマッピングは固定されている。したがって、不良ブロックは論理アドレスのいずれとも関係していない。
【００１３】
不良ブロック以外で、論理アドレスに関係していない他のブロックがある。これらはポータブルデータ記憶デバイスが必要としてもよい、他のデータを記憶するために使用される“予約”ブロックである。例えば、ダーティーアドレステーブル自身は予約ブロック中に記憶される。
【００１４】
マスター制御ユニット７は、ファイル管理システムを含み、ファイル管理システムは、各ブロックが消去されている状態であるか、または、消去されていない状態であるかを示し、どのくらいの量の各ブロックが消去されている状態であるか、または、消去されていない状態であるかを示すブロック割り当てテーブルを有する。マスター制御ユニット７が、ブロックの１つの内のメモリ中の位置に書き込まれることとなるデータを受け取るとき、マスター制御ユニット７はブロック割り当てテーブルを使用して、ブロックが消去されている状態にあるかどうか明らかにする。ブロックが消去されていない状態にあると分かった場合、マスター制御ユニットは従来、上書きされることにならないブロック中にある何らかのデータを異なる位置にコピーし、ブロックを消去し、そのメモリに記憶されることになる新しいデータと、異なる位置にコピーされたデータの両方をブロックに書き戻す。
【発明の開示】
【発明の概要】
【００１５】
本発明は、新しく有用なポータブルデータ記憶デバイスを提供することを意図している。
【００１６】
一般的に言うと、本発明は論理アドレス空間の領域と物理メモリ空間中の領域との間のマッピングを、デバイスの動作の間に変更することを提案する。言い換えると、論理アドレス領域と物理メモリ領域との間の１対１マッピングはそのまま残っているが、このマッピングは経時変化する。
【００１７】
このことは数多くの利点を有している。
【００１８】
最初に、本発明の発明者は、一般的にホストコンピュータ上の従来のオペレーティングシステムによって発生された論理アドレスは、統計的に相関している傾向があることに気付いた。このことは、論理アドレスが物理アドレスに対して固定された関係を有している場合、いくつかの物理アドレスは他の物理アドレスよりもかなり頻繁に使用されており、したがって急速に劣化する傾向があることを意味している。
【００１９】
さらに、論理アドレスと物理アドレスとの間の関係を変化させることができることは、データを書き込むために要求される、書き込み動作の数が減少することを意味している。本質的に、論理アドレスと物理アドレスとの現在のマッピングにしたがうと消去されていない状態にあるページにデータを書き込む命令が受け取られるとき、消去されている状態にある新しいブロックがその論理アドレスに関係付けられるように、論理アドレスと物理アドレスとのマッピングを変更することができる。新しいデータは新しいブロックに書き込まれ、消去されることにならない古いブロック中に記憶されている何らかのデータも新しいブロックに書き込まれる。したがって、古いデータは、上で説明した従来の方法での２回ではなく、１回のみコピーすればよい。これはデバイスの全体の動作をより速くする。
【００２０】
論理アドレスと物理アドレスとの間の一時的なマッピングは、メモリアドレスマッピングテーブルによって規定される。動作のスピードのため、メモリアドレスマッピングテーブルは、（例えば、マスター制御ユニット自身の中の）ＲＡＭメモリに記憶されることが好ましい。しかし、電力断の状況でメモリアドレスマッピングテーブルが失われないように、メモリアドレスマッピングテーブルを規定するマッピングデータもフラッシュメモリデバイス自身に記憶されることが好ましい。
【００２１】
特に、所定のブロックの１以上のページの制御データ記憶セクタは、ブロックが現在関係している論理アドレス領域を指示するデータを記憶していてもよい。デバイスがホストコンピュータに接続されるとき、および、マスター制御ユニットが電力供給されるとき、マスター制御ユニットはこのデータを使用して、（そのキャッシュメモリ中に記憶されてもよい）マッピングテーブルを発生させる。所定の論理アドレス領域に対応する物理アドレスが第１ブロックから第２ブロックに変更されるようにマッピングが変更されるのにしたがって、マッピングテーブル中のデータと、フラッシュメモリデバイス中に記憶されている対応するデータとが、更新され続ける。フラッシュメモリに記憶されるデータのケースでは、これは第１のブロックが消去される前に、単に、マッピングを規定するデータを第１のブロックから第２のブロックにコピーすることによって行われてもよい。
【００２２】
上に述べたように、従来のシステムでは、論理アドレスのいずれとも関係していないブロックがあるため、論理アドレス空間は、物理アドレス空間よりも小さくなる。これらのブロックは予約ブロックと不良ブロックである。本発明の実施形態では、予約ブロックと不良ブロックに加えて、任意の時において、その論理アドレス領域に現在マッピングされているブロックの代わりに、論理アドレス領域の１つにマッピングするのに利用可能である、（ここで“待ち行列ブロック”として呼ばれる）さらなるブロックの組がある。マッピングを変化させることになるとき、論理アドレス領域の１つに関係付けられるために待ち行列ブロックの１つが選択される。待ち行列ブロックは、それらが論理アドレス領域の１つに関係付けられる直前に消去されるというよりは、それらが列に並んで待つ間、消去されている状態であることが好ましい。
【００２３】
メモリアドレスマッピングの更新（すなわち、マッピング中の第１のブロックを置き換えるための、消去されている第２のブロックの選択）は、消去されている状態にない物理アドレス中の位置にデータを書き込む新しいＷＲＩＴＥ命令が受け取られるときはいつでも実行されてもよい。
【００２４】
この更新は、このＷＲＩＴＥ命令が受け取られるとすぐに実行されてもよい。代わりに、本発明の好ましい改善では、所定のＷＲＩＴＥ命令に基づいて、マスター制御ユニットによって実行される書き込み動作は、ある時間の間一時停止されてもよく、その時間の間に、第１の命令との予め規定された類似基準に一致する命令が受け取られなかったという条件でのみ実行されてもよい。上で説明した可変アドレスマッピングテーブルの概念は、論理アドレスが統計的に相関しているという観察によって部分的に動機付けられているのとちょうど同様に、この改善は、比較的短時間の間に受け取られる頻繁な命令は、それらを別々に処理するよりも一緒に、より効率的に処理することができるほど十分に強く相関しているという観察によって動機付けられており、したがって、ポータブルデータ記憶デバイスの速度および／または寿命を改良する。他の相関しているＷＲＩＴＥ命令が到着するかどうか決定するために、書き込み動作を一時停止するこの概念は、本発明の他の独立した観点を構成し、可変マッピングテーブルと組み合わせる以外に本発明の範囲内で使用してもよい。
【００２５】
最初のそのような相関は、頻繁な連続的書き込み命令が、連続的に同じ論理アドレス領域にデータが書き込まれることを特定することである。これを取り扱うために、メモリアドレスマッピングの下で、物理メモリの所定の第１のブロックに対応する論理アドレス領域にデータが書き込まれることになることを特定する最初の命令をマスター制御デバイスが受け取るとき、マスター制御デバイスは上書きされることにならない第１のブロックに記憶されているデータを第２のブロックにコピーさせる、少なくとも１つの動作を一時停止することが好ましい。その時間の間に、マスター制御デバイスが、ブロックの連続するページにデータを書き込む命令を含むパケットを受け取らなかった場合、マスター制御デバイスは、第１のブロック中のデータを第２のブロックにコピーする動作を続けてもよい。代わりに、その期間の間にマスター制御デバイスが、同じ論理アドレス領域中の他の位置に書き込まれる他のデータを特定する１以上のパケットを受け取る場合、マスター制御デバイスはブロックにすべてのパケットからのデータを書き込むことができ、このケースでは第１のブロックの他の部分から第２のブロックにデータをコピーするだけでよい。
【００２６】
第２のそのような相関は、本発明の発明者が気付いているように、マスター制御デバイスは、まさに同じ論理アドレスを特定するＷＲＩＴＥ命令を含むパケットを短い時間内に頻繁に受け取るだろう。これらの命令のそれぞれが受け取られるときはいつでも、本発明の実施形態は、メモリアドレスマッピングを１回リセットするというよりは、時間の間にこの動作を一時停止するほうが好ましい。この時間の間、データはマスター制御デバイスによって動作されているデータキャッシュ（例えば、その内部ＲＡＭキャッシュメモリ）中に記憶される。時間の間に、同じ論理アドレスに関連している命令が受け取られなかった場合、マスター制御デバイスは上で説明したように、データをフラッシュメモリに書き込むことを進める。しかしながら、時間の間に、ＷＲＩＴＥ命令（または、代わりの実施形態では、同じ論理アドレスに関連していないもの）が受け取られる場合、マスター制御デバイスは、代わりにそのキャッシュメモリにデータを書き込む（そして通常はそのクロックをリセットする）。時間の間に同じ論理アドレスに関して、ＲＥＡＤ命令が受け取られる場合、フラッシュメモリデバイスからではなく、キャッシュメモリからそのデータは読み出される。
【００２７】
オプション的に、キャッシュメモリは複数の論理アドレスに関してデータを記憶するのに十分なほど大きくてもよい。すなわち、キャッシュメモリは複数のセクションに分割されてもよく、セクションのそれぞれが対応する論理アドレスに関してデータを記憶するためにあり、それぞれがその論理アドレスに関するＷＲＩＴＥ命令が受け取られてからの時間を測定するための各タイマーに関連付けられている。
【００２８】
先行する２段落で説明したキャッシング動作を実行する価値のある１以上の論理アドレスの組を選択できるように、データ記憶デバイスは、どの論理アドレスが、かなり頻繁に書き込まれるデータを特に持つ傾向があるか区別する能力（すなわち、データ記憶デバイスが入力命令に基づいてパターン認識アルゴリズムを実行する）を備えていることが好ましい。
【００２９】
上の説明は、論理アドレス領域に関係付けられることになるブロックのそれぞれに対するマッピングがそれぞれ存在する、ということを仮定しているが、このことは、データを記憶するために利用可能なブロックの数と同じくらい多くの構成要素をメモリアドレスマッピングテーブルが少なくとも有することを要求するだろう。代替案は、論理アドレス領域をブロックの各グループに関連付けることである。例えば、ブロックは（例えば）４ブロックのグループ（したがって、全体で例えば４×６４＝２５６ページ）にグループ化されてもよく、論理アドレス領域は対応する係数（例えば、４）倍だけ大きくなるだろう。メモリアドレスマッピングテーブルはこのケースでは、これらのグループのそれぞれと、論理アドレス領域のそれぞれのものとの間の１対１マッピングを規定するだろう。
【００３０】
グループは、単にブロックの連続的なものであってもよいが、何らかの不良ブロックがあるケースでは、不良でないブロックをグループ化する、ブロックを設定するためのより洗練された方法が好ましい。ブロックのグループは、論理アドレス空間の領域に関係付けられた物理メモリの領域として取り扱うことができる。論理アドレスが与えられた場合、メモリアドレステーブルを使用して、対応するグループと、このグループを構成するブロックを識別するグループ化テーブルとを決定することができるように、マスター制御ユニットは、このグループ化を示すグループ化テーブルにアクセスを有している。
【００３１】
不良ブロックは比較的稀であるので、グループの大半は単純なルール（例えば、グループは４つの連続的ブロックの各組）にしたがって設定することができ、グループ化テーブルは、このルールにしたがい損ねたブロックに関するデータのみを記憶するだろう。これは、グループ化テーブルに要求されるサイズを減少させるだろう。
【００３２】
所定の論理アドレス領域が、これらの例外的グループの１つに関係付けられているという事実は、マッピングアドレステーブル中のフラグとして含めることができると都合がよい。したがって、メモリアドレスマッピングテーブルは、所定の論理アドレスに関係付けられている物理アドレスを決定するためにグループ化テーブルを調べる必要がある場合を示すだろう。
【００３３】
マスター制御ユニットは、連続的論理アドレスがページの“列”に対応するように、所定の論理アドレス領域中の論理アドレスを、対応するグループのブロックに関係付けてもよい。論理アドレス領域に対応付けし、論理アドレス領域内の連続する論理アドレスをページの列に関係付ける、ブロックのグループを提供するこの概念は、本発明の他の独立した観点を構成し、可変マッピングテーブルと組み合わせる以外に本発明の範囲内で使用してもよい。
【００３４】
本発明の第１の観点の１つの特定の表現は、
（ｉ）デバイスへおよび前記デバイスからデータパケットを転送するデータインターフェイスと、
（ｉｉ）インターフェイス制御装置と、
（ｉｉｉ）マスター制御ユニットと、
（ｉｖ）少なくとも１つのＮＡＮＤフラッシュメモリユニットとを具備し、
インターフェイス制御装置はインターフェイスを通して受け取ったデータをマスター制御ユニットに送るように構成され、
マスター制御ユニットは、
あるデータパケットをエンコーディングＲＥＡＤ命令として、他のデータパケットをエンコーディングＷＲＩＴＥ命令として認識し、
（ａ）論理アドレスを示しているＲＥＡＤ命令を受け取ったとき、論理メモリ空間内の論理アドレス領域を、メモリユニット内のそれぞれの第１の物理アドレス領域に関係付けるメモリアドレスマッピングテーブルにアクセスし、アドレスマッピングテーブルにしたがって、論理アドレスに対応するメモリユニット中の物理アドレスからデータを読み出し、読み出されたデータを含む１以上のデータパケットをデータインターフェイスに送信し、
（ｂ）論理アドレスおよびその論理アドレスに書き込まれることになるデータを示しているＷＲＩＴＥ命令を受け取ったとき、メモリアドレスマッピングテーブルにしたがって、論理アドレスに対応する物理アドレスが消去された状態にあるかどうかを決定し、
そうである場合、データをその物理アドレスに書き込み、または、
そうでない場合、アドレスマッピングテーブルを修正して、第２の物理アドレス領域を、論理アドレスを含んでいる論理アドレス領域に関係付け、修正されたメモリアドレスマッピングテーブルにしたがって、論理アドレスに対応する物理アドレスにデータを書き込み、第１の物理アドレス領域の他の部分に記憶されたいずれのデータも第２の物理アドレス領域の対応する位置にコピーするように構成されているポータブルデータ記憶デバイスである。
【００３５】
意図する状況内で、複数のページに記憶されることになるデータを含むＷＲＩＴＥ命令、または複数のページからデータを要求するＲＥＡＤデータパケットがあってもよいことを理解すべきである。言い換えると、上で述べたアドレスは、例えば、物理アドレス領域の複数ページ部分の開始アドレスであってもよい。
【００３６】
本発明の好ましい特徴を図解のみを目的として、添付の図面を参照してここで説明する。
【実施形態の詳細な説明】
【００３７】
本発明の第１の実施形態をこれから説明する。第１の実施形態は図１に示されたものと同じ物理的構造を有していてもよく、そのために実施形態の対応する構成要素は、図１で使用されているものと同じ参照番号が与えられている。示されているすべての構成要素は単一の筐体、例えば、ＵＳＢコネクタ３が取り付けられているものに含まれていてもよい。（例えば、ＵＳＢプラグのような）ＵＳＢコネクタ３は、ホストコンピュータ５のＵＳＢソケット４にプラグインすることによって、（例えば、パーソナルコンピュータ（ＰＣ）のような）ホストコンピュータに直接接続されてもよい。代わりに、それらの間にケーブルを接続してもよい。このデバイスはパスワード保護、指紋確認により制御されるアクセス制御等のような、図１で明示的に示されていない数多くの特徴を有していてもよいが、それらは他の公に入手可能なポータブルデータ記憶デバイスで知られていることに留意すべきである。そのような特徴の実施は当業者にとって明らかになるだろう。
【００３８】
図３は第１の実施形態により使用されるメモリアドレスマッピングテーブルを示す。このテーブルはマスター制御ユニット７の揮発性ＲＡＭメモリに記憶される。左の列２１は論理アドレス領域をラベル付けするインデックスであり、右の２３はそれらの論理アドレス領域に１対１でマッピングされた、物理アドレス空間のブロックをラベル付けする数字である。簡潔にするため、論理アドレス領域の数が（インデックス０から７によりラベル付けされた）８であり、ブロックの数は（インデックス０から１５によりラベル付けされた）１６であることを仮定する。実際には、これらの数の両者は非常により大きくなるだろう。したがって、各論理アドレス領域に記憶することができるデータの量は、ブロックごとの（例えば、６４のような）ページ数の５１２バイト（これがページのサイズであると仮定して）倍である。右列の各行は、対応するブロックをラベル付けするインデックスのみを記憶する。論理アドレス領域の数は、データを記憶するために使用されることになるブロックの数にいつでも対応する。
【００３９】
例えば、ブロックごとに６４ページがあると仮定されているため、論理アドレス６７は論理アドレス領域１中のページに関連している。これは、論理アドレス領域０のページは、論理アドレス０、１、・・・６３を有し、論理アドレス領域１のページは論理アドレス６４、６５、・・・１２７を有するためであり、論理アドレス６７は論理アドレス領域１中の４番目のアドレスである。図３に示されるマッピングの下、論理アドレス領域１はブロック１０にマッピングされる。
【００４０】
論理アドレス領域にマッピングされるブロックに加えて、物理アドレス空間は数多く（上に示される例では８）の他のブロックを含む。これらは予約ブロック６、１２および１３、ならびに“不良”である（機能しない）不良ブロック７を含む。したがって、これらのアドレスは図３のマッピングテーブルでは出現しない（しかしながら、実施形態はポータブル記憶デバイス中で従来の他の動作を実行する従来の方法において使用されてもよい、ダーティブロックテーブルおよび予約ブロックのテーブルも有していることが好ましい）。これは論理アドレス領域にマッピングするのに利用可能な、数多く（この例では４つ）のブロックを残す。
【００４１】
これらのブロックは、“待ち行列ブロック”として呼ばれ、図３のメモリアドレスマッピングテーブル中で２５として示されている。これらのブロックは消去された状態にある。ブロックが待ち行列のトップから除去されるとき、すべての他のブロックは上に１つずつ移動され、次に新しいブロックがセクション２５のボトム行に挿入される。便宜的に、これはインデックスの１つをメモリ中の４つの位置にそれぞれ記憶し、４つの位置の１つを示すポインタを有するよう構成することによって実行されてもよい。ポインタが指す位置はセクション２５の“トップ行”と論理的に等しい。インデックスおよびセクション２５の“トップ行”を除去することならびにセクションの“ボトム行”に新しいインデックスを書き込むことは、したがって、ポインタが指している位置に新しいインデックスを上書きすることと、位置の次の１つをラウンドロビン方式で指すようにポインタを変更することとに対応している。
【００４２】
対応する論理アドレス領域にマッピングされている、各ブロックの第１のページの制御データ記憶セクタ１１は、対応する論理アドレス領域のインデックスを含む（このインデックスを記憶するために要求されるビットの数が、第１のページのセクタ１１中で利用可能なビットの数よりも大きい場合、インデックスはコード化され、対応するブロックの１より多いページのセクタ１１中に記憶されてもよい）。したがって、デバイスが電源を落とされた場合（それゆえ図３のメモリアドレスマッピングテーブルがＲＡＭから失われる）、デバイスが再び電源を入れられたときに、マスター制御ユニット７は制御データ記憶セクタ１１に記憶されたインデックスを使用して、そのＲＡＭ中にメモリアドレスマッピングテーブルを再発生させることができる。
【００４３】
図４に示されたフロー図を参照して、第１の実施形態の動作を考える。ステップ１で命令が受け取られ、ステップ２でマスター制御ユニット７は、命令がＲＥＡＤ命令またはＷＲＩＴＥ命令のいずれであるか決定する。
【００４４】
命令が論理アドレス６７から開始するデータを読み込むＲＥＡＤ命令であると仮定する。ステップ３でマスター制御ユニット７は、図３のメモリアドレスマッピングテーブルを使用して、論理アドレスを含む論理アドレス領域に対応するブロック（すなわち、ブロック１０）を決定し、そのブロック内で、論理アドレスに対応するページ（すなわち、４番目のページ）を決定する。ステップ４では既知の技術にしたがって、読み出し動作が実行され、マスター制御ユニット７はメモリユニット９に対して、ブロック１０から４番目のページに記憶されたデータを抽出するコマンドを発行し、このデータはメモリユニット９からバス８経由でマスター制御ユニット７に送信され、マスター制御ユニットはこれを１以上のパケットに形成し、それをデバイスから送信する。
【００４５】
マスター制御ユニットが、論理アドレス６７において開始する、あるデータを書き込むＷＲＩＴＥ命令を受け取ると仮定する。ステップ５でマスター制御ユニット７は論理アドレスに対応するブロックおよびページを（ステップ３と同じように）決定し、ステップ６でマスター制御ユニットは、このページが消去された状態または消去されていない状態のいずれであるか決定する。これは（例えば、上で説明された先行技術と同じようなブロック割り当てテーブルを採用する）ファイル管理システムを使用して行われてもよい。
【００４６】
ブロック１０の４番目のページが消去されている場合、マスター制御ユニット７は、従来技術にしたがって、ブロック１０の４番目のページ中にデータを記憶させるように、メモリ９に単に書き込み命令を送る。
【００４７】
代わりに、ブロック１０の４番目のページが消去されていない場合、ステップ８でマスター制御ユニットはブロック１０の最初の３ページ中とブロック１０の最後の６０ページ中とに記憶された任意のデータを新しいブロックにコピーするようにメモリユニットに命令する。この新しいブロックは、待ち行列ブロック２５の最初のものであり、それはブロック４である。ステップ９でＷＲＩＴＥ命令中に含まれるデータはブロック４のページ４に書き込まれる。ステップ１０でメモリアドレステーブルは、図５で示されている形態にリセットされる。すなわち、ブロック４は論理アドレス領域１に関係付けられる。ブロック１０は消去され、待ち行列２５の後ろに配置される。待ち行列内には４つのブロックがあるため、マスター制御ユニットが消去されていないページにデータを書き込むよう指示される、４回目にブロック１０は再利用されるだろう。ステップ８から１０の動作は、実施形態にしたがって、他の任意の順番で実行されてもよいことに留意すべきである。
【００４８】
ファイル管理システムを使用する代替実施形態は、デバイスがステップ６および７を省略し、ステップ５からステップ８へと直接進むことであることに留意すべきである。言い換えると、書き込み命令が受け取られるときはいつでも、コピーステップ８から１０が実行されるだろう。
【００４９】
図６は本発明の第２の実施形態を示している。第１の実施形態では、８つの論理アドレス領域のそれぞれがブロックのそれぞれにマッピングされているのに対して、第２の実施形態では、論理アドレス領域のそれぞれが（この例でも依然として８であるが）、ブロックの対応するグループ（この例では、４つのブロック）にマッピングされている。この例では、ブロックの数はインデックス０から６３によってラベル付けされた、６４に等しい。ブロック６０、６１、６２および６３は、予約されているものとして取り扱われる。ブロック９、１７、１８および２７は、不良であると仮定される。不良のグループは、図６（ａ）で示される“ダーティーテーブル”中に与えられている。このテーブルは、デバイスが電源オンされる最初のときに、すべてのブロックをテストし、悪いものを発見することにより発生されてもよく、これに続いて、不良ブロックを確実に含まないように予約ブロックを規定することができる。不良ブロックテーブルは、一般的に１以上の予約ブロック中に記憶され、代わりに不良ブロックテーブルはデバイスが電源オンされるときにいつでも再発生させてもよい。
【００５０】
図６（ｂ）にメモリアドレスマッピングテーブルが示されている。このケースでは、（左列３１中の）各論理アドレス領域０から７は、（中央列３３中の）グループ番号にマッピングされていることが示されている。論理アドレス領域のそれぞれにマッピングされるのに利用可能な１２のグループがあり、これらのグループは、各グループインデックス０から１１によってラベル付けされている。
【００５１】
ｉというインデックスを有するほとんどのグループは、ブロックの組４ｉ−４、４ｉ−３、４ｉ−２および４ｉ−１から構成されている。しかしながら、この単純なルールに対し例外であるブロックがある。なぜなら、ルールにしたがった場合、そのグループは１以上の不良であるブロックを含むからである。そのようなグループを規定するブロックが、図６（ｃ）で示されている“クリーンテーブル”中に与えられている。
【００５２】
例えば、グループ１は単純に第１の４ブロック０、１、２および３である。グループ２は４つのブロック４、５、６および７の第２の組である。グループ３は、しかしながら、ブロック８、９、１０および１１ではない。なぜなら、上で述べたようにブロック９は不良であるからである。代わりに、図６（ｃ）のクリーンテーブルは、グループ３がブロック８、５９、１０および１１からなることを示している。グループ４は、通常のルールにしたがって、ブロック１２、１３、１４、１５である。グループ５は、再び一般的ルールの例外であり（なぜならブロック１７および１８は不良であるため）、クリーンテーブルにしたがって、ブロック１６、５８、５７、１９からなる。グループ６は、再び規則的であり、すなわち、ブロック２０、２１、２２、２３である。グループ７は再び不規則であり（なぜならブロック２７は不良であるため）、クリーンテーブルにしたがって、ブロック２４、２５、２６および５６からなる。グループ８から１１は通常のルールにしたがっている。
【００５３】
したがって、この例でクリーンテーブルは、３グループ、グループ３、５および７だけのメンバを規定する。実際、より一般的な実施形態では、不良のグループの割合は非常に低いので、クリーンテーブルがメモリアドレスマッピングテーブルよりもずっとより小さい。クリーンテーブルの行の最大数は不良のグループの数である。
【００５４】
グループ３がルールにしたがっていないことを示すため、メモリアドレスマッピングテーブルは３番目の列３７中にフラグを含み、グループの正確なメンバを得るために、図６（ｃ）のクリーンテーブルのどの行を参照すべきかの対応する表示を４番目の列３８中に含む（図６（ｂ）で４番目の列３８中の値はそれぞれ０、１、２であり、これらの３つの値は、図６（ｃ）のクリーンテーブルの３つの行をそれぞれラベル付けしている）。
【００５５】
あるデータを論理アドレス６７に書き込むようにマスター制御ユニットに指示するＷＲＩＴＥ命令をマスター制御ユニットが受け取るとき、このケースではマスター制御ユニットは論理アドレスが論理アドレス領域０内にあることを識別する（なぜなら、論理アドレス領域０は論理アドレス０から２５５であるから）。図６（ｂ）中の論理アドレスとグループとの間のマッピングは、対応するグループがグループ２であることを示している。列３７の対応するフラグは設定されていないから、グループ２に対応するブロックを識別するためにクリーンテーブルを調べる必要はなく、ルールは対応するブロックを４、５、６および７として与える。論理アドレス６７はしたがってブロック５中の４番目のページである。
【００５６】
このページが消去されている状態である場合、ＷＲＩＴＥ命令からのデータはそのページに書き込まれる。
【００５７】
このページが消去されている状態でない場合、ＷＲＩＴＥ命令中のデータは、待ち行列２５の先頭におけるグループ、これはたまたまグループ７となる、の第２のブロックの４番目のページ中に書き込まれる。図６（ｂ）のメモリアドレスマッピングテーブルは、待ち行列の先頭のグループ番号（すなわち、グループ番号７）を論理アドレス領域０に対応する行に移動させること、および、ブロック７が不規則であることを示すフラグを第３の列３７の同じ行にコピーすること、および、クリーンテーブルの行を示す対応するデータを４番目の列３８の新しい行にコピーすることにより、図６（ｄ）に更新される。ブロック４、５、６および７の他のページに記憶されている任意のデータは、グループ７の対応するページ（すなわち、ブロック２４、２５、２６および５６の各ページ）にそれぞれコピーされる。
【００５８】
その後、論理メモリアドレス６７に対して読み出し命令が受け取られる場合、マスター制御ユニット７はこれが論理アドレス領域０に対応することを再び決定し、したがって、図６（ｄ）のメモリアドレスマッピングテーブル中の対応する行を調べる。このときマスター制御ユニット７が列３３から対応するグループが７であることを見つけ、列３７中のフラグはこのグループが不規則であることを示す。列３８はグループが図６（ｃ）のクリーンテーブルの行２（すなわち、最後の行）にあることを示す。マスター制御ユニットはしたがって、図６（ｃ）のクリーンテーブルからこの行のブロック（すなわち、ブロック２４、２５、２６、５６）を抽出する。マスター制御ユニットはグループ７の第２のブロック（すなわちブロック２５）の４番目のページからデータを読み出し、そのデータをエンコードしている１以上のデータパケットを発生させ、パケットをインターフェイス３経由でデバイスから送出する。
【００５９】
論理メモリアドレス６７に対して、書き込み命令が再び受け取られる場合、マスター制御ユニット７は図６（ｄ）のメモリアドレスマッピングテーブル中の対応する位置を再び調べる。このときマスター制御ユニットは対応するグループが７であることを見つけ、列３７中のフラグはこのグループが不規則であることを示す。マスター制御ユニットはしたがって、列３８から対応する行番号（すなわち２）を抽出し、図６（ｃ）のクリーンテーブルからこの行のブロック（すなわち、ブロック２４、２５、２６、５６）を取得する。マスター制御ユニットはグループ７の第２のブロック（すなわち、ブロック２５）の４番目のページを調査して、データが４番目のページに記憶されている（上で説明した履歴があれば、当然ながらある）かどうか確認する。マスター制御ユニットはしたがって、グループの他のページに記憶されているデータすべてを、待ち行列３５の先頭にあるグループ（すなわち、グループ４）の対応するページに移動して、ＷＲＩＴＥ命令のデータをこのグループの第２のブロックの４番目のページに書き込む。次に列３３のトップ行に番号４を挿入し、列３７のトップ行にグループ４に対応する（空欄）フラグをコピーし、列３８のトップ行にグループ４に対応する（空欄）データをコピーし、（他の行を１つ上に移動させた後）テーブルのセクション３５のボトムにインデックス７を挿入し、対応するフラグを列３７のボトム行にコピーし、対応するデータを列３８のボトム行にコピーする。
【００６０】
このプロセスに対応するフローは、図４のフローとほとんど同じであることに留意すべきである。しかしながら、ステップ３および５はより洗練されていることを理解すべきである。（例えば、図３の）論理アドレスとメモリアドレスマッピングテーブルとから単に決定されるブロックの代わりに、対応するグループを取得するために（例えば、図６（ｂ）および図６（ｄ）の）メモリアドレスマッピングテーブルを使用して取得することと、（ルールから、またはメモリアドレスマッピングテーブルの列３７にフラグが存在する場合は、図６（ｃ）のクリーンテーブルの列３８に示される行から）グループのブロックを決定することとにより、ブロックが決定される。また、ステップ８、９では、第１の待ち行列ブロックへの参照は、このケースでは、第１の待ち行列グループ（すなわち、メモリアドレスマッピングテーブルのセクション３５のトップにあるグループ）の対応するブロックへの参照として理解されるべきである。
【００６１】
これは第２の実施形態が論理アドレス領域とブロックの各グループとの間のマッピングをどのように動作するのかを説明する。論理的に別の問題は、実施形態が任意の所定の論理アドレス領域内の論理アドレスをブロックの対応するグループ中の各ページにどのようにマッピングするかである。
【００６２】
１つの可能性は、“水平”と呼ぶことになる相関性に対するものである。これはブロックの連続的なページが、連続的な論理アドレスに対応することを意味している。（グループの最後のブロックを除いて）各ブロックの最後のページは、グループの次のブロックの最初のページに対応する論理アドレスの連続的に前である論理アドレスに対応する。したがって、例えば、単一ブロックのページ数よりわずかに大きいデータ量がメモリに書き込まれるときは、データの開始が論理アドレスにより特定されるページに書き込まれ、ブロックが使い尽されるまでブロックの連続するページが書き込まれ、データの残りの部分は次のブロックの最初のページに書き込まれるだろう。
【００６３】
しかしながら、これは唯一の可能性ではない。本発明の第２の実施形態の好ましい形態では、マスター制御ユニットは、ブロックのグループのページへのアドレスの論理的相関性が“垂直”であるように動作してもよい。特に、（例のために、所定のグループ中に４つのブロックがあると仮定すると）最初の４つの論理アドレスは各ブロックの最初のページ（すなわち、グループの第１のブロックの最初のページに第１の論理アドレス、グループの第２のブロックの最初のページに第２の論理アドレス、等）にマッピングされてもよく、次の４つの論理アドレスは各ブロックの２番目のページ（すなわち、グループの第１のブロックの２番目のページに第５の論理アドレス、グループの第２のブロックの２番目のページに第６の論理アドレス、等）にマッピングされてもよい。
【００６４】
これを他の方法に置き換えると、マスター制御ユニット７は４つの連続的論理アドレスの組が各ブロックの各ページにそれぞれ対応するとして取り扱う。論理アドレスの所定の組に関係しているページは各ブロックのページに沿って水平にカウントして測定される、すべて同じオフセット値を有する（すなわち、これらのページは物理アドレス空間中で“列”を形成する）。
【００６５】
図６（ｅ）はある量のデータがグループ２（すなわち、ブロック４、５、６および７）の位置に書き込まれることになるとき、何が発生するかを示している。データの開始が書き込まれる論理アドレスは、ブロック４の最初のページに対応する論理アドレスに対して、１７のオフセットを有している。すなわち、データの開始が書き込まれる論理アドレスは、グループの最初のページから後の１７ページである。これらのページは図６（ｃ）で垂直にカウントされる（すなわち、最初にページの第１の列を下がり、次の列を下がる）。したがって、１７のオフセットを持つページは“Ａ”により示されるものである。
【００６６】
書き込み動作中に、ハッシュされているエリア３２により示されるグループ２中の位置に古いグループからのデータがコピーされる。その後、書き込みパケット中のデータがハッシュされているエリア３４中のページに書き込まれる（すなわち、位置Ａにおいて開始する）。その後、領域３４に続くハッシュされていない領域３６中の古いブロック中の任意のデータが、領域３４にコピーされる。
【００６７】
これから本発明の第３の実施形態に移る。第３の実施形態は第１の実施形態に類似しているが、１つの（重要な）違いがある。第３の実施形態では、メモリアドレスマッピングテーブル中に規定されたマッピングを変更させるＷＲＩＴＥ命令と、論理アドレスに関係付けられることになる新しいブロックの位置に書き込まれることになる、ＷＲＩＴＥ命令中に含まれるデータとに続いて、古いブロックの残りから新たなブロックにデータをコピーする動作は、メモリ空間の同じ領域に関し、何らかの新しいＷＲＩＴＥ命令が受け取られるかどうか見るために、予め規定された時間の間、部分的に一時停止される。
【００６８】
特に、データＡをある論理アドレスに書き込むよう指示するＷＲＩＴＥ命令が受け取られると仮定する。その論理アドレスはブロック０に現在対応する論理アドレス領域中にあると仮定する。さらに論理アドレスはブロック０のページ４に対応すると仮定する。さらに、（図３の）待ち行列２５のトップにおいて消去されているブロックはブロック３であると仮定する。図７（ａ）はブロック０および３を含む物理メモリの部分を示す。すなわち、ブロック０はページ０から３において記憶されたＸとラベル付けされたデータを有しており、ページ４において記憶されたＹとラベル付けされたデータを有しており、ページ５から７においてＺとラベル付けされたデータを有しており、ブロックの残りは消去されている状態（“０”として示されている）にある。
【００６９】
第１の実施形態にしたがって、このＷＲＩＴＥ命令は即座にブロック１および３中の物理メモリを図７（ｂ）に示されるようにさせる。すなわち、新しいデータＡがページ４に記憶され、データＸおよびＺがブロック０中でのそれらの以前のページに対応するブロック３のページに記憶される。ブロック０は消去されるだろう（およびブロック０を表しているインデックスは図３のセクション２５のボトムにあるだろう）。
【００７０】
しかしながら、本発明の第３の実施形態では、物理メモリは代わりに図７（ｃ）に示されているように、最初に再書き込みされる。すなわち、データＡはブロック３のページ４に書き込まれ、データＸはページ０から３にコピーされるが、データＺはブロック３のページ５から７にまだコピーされていない。システムは、タイマーにより与えられる時間の間、この構成のままでいる。この時間の終わりまでに、ブロック３のページ５に対応する論理アドレスに関し、さらなるＷＲＩＴＥ信号が受け取られなかった場合、図７（ｂ）に示されているデータ記憶を与えるために書き込み動作が完了する。しかしながら、この時間の間に、ブロック３のページ５に対応する論理アドレスにデータＢを記憶するよう指示する、新しいＷＲＩＴＥ命令が受け取られる場合、このデータＢはブロック３のページ５に書き込まれ、図７（ｄ）に示されているデータ記憶を与える。タイマーは新しい時間を規定するよう再び開始される。
【００７１】
この時間の終わりまでに、ブロック３のページ６に対応する論理アドレスに関し、さらなるＷＲＩＴＥ信号が受け取られなかった場合、図７（ｅ）に示されているデータ記憶を与えるために書き込み動作が完了する。しかしながら、この時間の間に、ブロック３のページ６に対応する論理アドレスにデータＣを記憶するよう指示する、新しいＷＲＩＴＥ命令が受け取られる場合、このデータＣはブロック３のページ６に書き込まれ、タイマーは再び開始される。
【００７２】
このプロセスはブロック３の最後のページに到達するまで、または、先行するＷＲＩＴＥ命令により特定された位置に続くページにおいてデータを記憶するように指示しているＷＲＩＴＥ命令が受け取られることなく時間が経過するまで続けられてもよい。第３の実施形態のプロセスは、データをコピーする必要性がかなり減っているので、第１の実施形態よりも、データＡ、Ｂ、・・・をメモリデバイスにかなり速く書き込むことができることを意味していることに留意すべきである。例えば、上に述べたステップのシーケンスの間、連続的ページに関し、どれほど数多くのＷＲＩＴＥ命令が後に受け取られたとしても、まさにその開始においてデータＸを一度コピーするだけでよい。
【００７３】
図８に示されているフロー図は、ステップ８から１０がステップ８から１３によって置き換えられているという点のみで、図６と異なっている。図８のステップ８では、ＷＲＩＴＥ命令が受け取られたページより前の古いブロック（すなわち、ブロック０）中のページだけが、新しいブロック（すなわち、ブロック３）にコピーされ、ＷＲＩＴＥ命令中のデータは論理アドレスに対応する新しいブロック中のページに書き込まれる。ステップ９では新しいブロックの最後のページがちょうど書き込まれたところであるかが決定される。そうである場合、デバイスはステップ１３に進む。そうでない場合、ステップ１０においてデバイスは新しいブロックの次の連続的ページに関し、予め定めらされた時間内に新しいＷＲＩＴＥ命令が受け取られるかどうか決定する。そうである場合、実施形態はステップ１１で新しいブロックの次の連続的ページにデータを書き込み、ステップ９にループバックする。そうでない場合、ステップ１２で実施形態は古いブロックの残りのページ（すなわち、そのページに関してＷＲＩＴＥ命令が受け取られた最後のページの後にページがある場合、そのすべてのページ）をコピーする。ステップ１３は、図４のステップ１０に対応し、古いブロック（ブロック０）が消去され、メモリアドレスマッピングテーブルが更新される。
【００７４】
実施形態がステップ１０にあるときにおいて、図８のフローの現在主題である論理アドレス領域中の論理アドレスに関し、ＲＥＡＤ命令が受け取られた場合、デバイスは物理メモリ中の正しい場所から（すなわち、論理アドレスがステップ８で書き込まれたアドレスに対応する場合、または、論理アドレスが先行するステップ９で書き込まれたアドレスに対応する場合は、新しいブロックから、そうでない場合は古いブロックから）データを読み出さなければならないことに留意すべきである。
【００７５】
この実施形態のある形態では、ステップ１０で、新しいブロックの次の連続的ページ以外の任意の論理アドレスにデータを書き込むよう指示する、新しいＷＲＩＴＥ命令が受け取られることが決定されたというケースでも、デバイスはステップ１０からステップ１２に進んでもよい。このケースでは、新しいＷＲＩＴＥ命令の処理は図４のフローが完了された後に開始することができる。
【００７６】
タイマーは一般的に約３ミリ秒のような、数ミリ秒の時間に設定されることに留意すべきである。最後のＷＲＩＴＥ命令が受け取られた後の予め定められた時間の範囲内に、デバイスがホストから分離された場合、データが失われる恐れがある。しかしながら、予め定められた時間をミリ秒のオーダーに設定することにより、データの損失は発生せず、したがってすべてのデータは安全に記憶される。本発明の第３の実施形態は、第１の実施形態に対して、ゼロに向う予め定められた時間の制限を減少させることに留意すべきである。
【００７７】
これから本発明の第４の実施形態に移る。第３の実施形態と同様に、第４の実施形態はタイマーを採用している。
【００７８】
マスター制御ユニット７はこのケースでは、ＷＲＩＴＥ命令からマスター制御ユニットによって抽出された論理アドレスを受け取るパターン認識ユニットを含んでいる。ある動作フェーズの間にパターン認識ユニットが、ある論理アドレスは予想されるよりも非常により頻繁に出現していることに気付いた場合、パターン認識ユニットは例えば、マスター制御ユニットのＲＡＭメモリ中に規定される“頻繁に使用される論理アドレス”空間にその論理メモリアドレスを書き込む。より一般的には、頻繁に使用される論理アドレス空間は高頻度を有する複数のそのように識別された論理アドレスを含んでいてもよい。パターン認識ユニットは、論理アドレスの頻度が減少したとき、論理アドレスをこの空間から削除するようにプログラムされていてもよく、および／または、いっそうより高い使用頻度を有している論理アドレスが識別されるときはいつでも、空間においてそれを置き換えてもよい。したがって、空間はＷＲＩＴＥ命令中で最も頻繁に発生する論理アドレスを絶え間なく記憶する。
【００７９】
マスター制御ユニット７は、頻繁に使用されるアドレス空間中の各位置のためのキャッシュＲＡＭメモリを維持する。頻繁に使用される論理アドレス空間に記憶されているアドレスの１つに関し、ＷＲＩＴＥ命令を受け取る際、マスター制御ユニットは、ＷＲＩＴＥ命令中に含まれるデータを最初にフラッシュメモリデバイスに書き込まない。代わりに、マスター制御ユニットは対応するキャッシュにそのデータを書き込む。マスター制御ユニット７はタイマーにより決定された時間の間、待機する。その時間の間にさらなるＷＲＩＴＥ信号が受け取られなかった場合（または、実施形態の１つの形態では、異なるブロックに関し、パケットが受け取られた場合）、マスター制御ユニットは本発明の第１から第３の実施形態のいずれかに関連して上で説明したプロセスにしたがって、フラッシュメモリにキャッシュ中のデータを書き込む。他方、予め定められた時間の間に、同じ論理アドレスに関し、他のＷＲＩＴＥ命令が受け取られる場合、マスター制御ユニットはそのＷＲＩＴＥ命令中に含まれるデータをそのキャッシュの同じ位置に書き込む（すなわち、最初の書き込みパケットによりそこに書き込まれたデータを上書きする）。タイマーは再び開始される。
【００８０】
したがって、同じ論理メモリアドレスに関し、タイマーによって設定された予め定められた時間よりもより短い平均時間だけ間隔があけられた数多くのＷＲＩＴＥ命令をデバイス１が受け取る場合、メモリデバイス９に（計算的にコストがかかる）書き込み動作をさせることになる、それらのＷＲＩＴＥ命令の数は少なくなることが理解されるだろう。
【００８１】
マスター制御ユニット９の一部の構造が、図９中のスケジュールに示されている。マスター制御ユニット９は、ＷＲＩＴＥ命令を論理アドレスとその論理アドレスに書き込まれることになるデータとに分離するためのセクション５１を含む。論理アドレスはパターン認識ユニット５３に送られ、パターン認識ユニットは、それを使用して、頻繁に使用されるアドレス空間５５を更新し続ける。マスター制御ユニットはスイッチ５７を有し、スイッチ５７は、ちょうど受け取られたＷＲＩＴＥ命令の論理アドレスが、頻繁に使用されるアドレス空間５５中にあるかどうかを決定する。そうでない場合、データおよび論理アドレスはユニット５７に同時に書き込まれ、ユニット５７は、第１の実施形態の方法にしたがって、フラッシュメモリ９にデータおよび論理アドレスを書き込む。そうである場合、データはキャッシュメモリ５９に書き込まれ、タイミングユニット６１中のタイマーは運転に設定される。タイミングユニット６１中のタイマーが再度リセットされることなく予め定められた時間の終わりに到達した場合、データおよび対応する論理アドレスは、スイッチ５７によりキャッシュ５９からユニット５７に送られる。図９（ａ）は単一のタイミングユニット６１だけを示しているが、タイミングユニット６１は頻繁に使用される論理アドレス空間中の論理アドレスのそれぞれに対する、各タイマーを一般的に含んでいることと、これらの論理アドレスのそれぞれに対して、各キャッシュメモリ位置があることとに留意すべきである。
【００８２】
ＲＥＡＤ命令が受け取られる場合、ユニット６３は論理アドレスが、頻繁に使用されるアドレス空間中に記憶されたものの１つであるかどうか決定し、そうである場合、対応するタイマーが運転しているかどうか決定する。そうである場合、ユニット６３は対応するキャッシュメモリ５９からデータを読み出し、そうでない場合、ユニット６３はユニット６７を使用して、メモリアドレスマッピングテーブルによって規定された相関性にしたがって（すなわち、第１の実施形態の方法にしたがって）、フラッシュメモリ９からデータを読み出す。いずれのケースでも、ユニット６３はインターフェイス３を通してデバイスから送出されるパケットにデータをエンコードする。
【００８３】
この実施形態のフロー図は、図３中のステップ２および３の間に、図９（ｂ）のステップが挿入されている（およびユニット５１および５７によって実行される）ことと、図３中のステップ２および５の間に、図９（ｃ）のステップが挿入されている（およびユニット６３によって実行される）ことを除いては、図３のフロー図である。ステップ７および９では、ページに書き込まれることになるデータは、その論理アドレスに関して受け取られた最後のＷＲＩＴＥ命令中のデータである。
【００８４】
頻繁に使用される論理アドレス空間からユニット５３が論理アドレスを除去する（すなわち、ユニット５５を更新する）ときはいつでも、図３のステップ５から１０にしたがって、キャッシュ５９の対応する位置中のデータがメモリ９に書き込まれる。
【００８５】
本発明の第３および／または第４の実施形態のいずれかでは、タイマーは予め定められた時間が、約３ミリ秒のような、数ミリ秒の時間であるように構成されてもよい。最後のＷＲＩＴＥ命令が受け取られた後の予め定められた時間内に、デバイスがホストから分離された場合、データが失われる恐れがある。しかしながら、ミリ秒のオーダーの予め定められた時間を設定することにより、データの損失は発生せず、したがってすべてのデータは安全に記憶される。本発明の第３および第４の実施形態は、第１の実施形態に対して、ゼロに向う予め定められた時間の制限を減少させることに留意すべきである。
【００８６】
上で説明した実施形態は、いずれもブロック割り当てテーブルを必要としないことに留意すべきである（だが、そのようなテーブルを使用する他の実施形態は可能である）。
【００８７】
本発明のいくつかの実施形態のみをここで詳細に説明したが、当業者に明らかなように、本発明の範囲内で数多くの変形が可能である。例えば、第２、第３および第４の実施形態の特徴は任意の組み合わせで容易に組み合わせることができ、実際に（ブロックのグループのページの垂直充填を含む）説明したすべての特徴の組み合わせは好ましいものである。したがって、論理アドレス領域が複数のブロックからなる各グループにマッピングされ、所定の論理アドレス領域内の論理アドレスがブロックのグループ内の列に対応しており、古いグループから新しいグループにデータをコピーすることを一時停止するために第１のタイマー信号が使用され、ＷＲＩＴＥ命令中に含まれるデータのフラッシュメモリデバイス９への書き込みを一時停止するために第２の（オプション的に異なる）タイマー信号が使用されるように本発明の実施形態を形成することができる。
【００８８】
さらに、上の実施形態では、単一のＮＡＮＤフラッシュメモリデバイスだけしかない。しかしながら、本発明はこの観点で限定されておらず、上に説明した本発明の原理にしたがって動作する、１つより多いＮＡＮＤフラッシュメモリデバイスがあってもよい。例えば、各ＮＡＮＤメモリデバイスは論理アドレス空間の特定の各部分に関係していてもよく、そのメモリデバイスのブロックと論理アドレス空間の対応する部分の各領域との間に各ＮＡＮＤメモリデバイスに対する可変のマッピングがあってもよい。
【００８９】
上に述べたように、本発明は、この観点に限定されていないが、ＵＳＢ接続により実施されてもよい。さらに、ＵＳＢ制御装置によって採用されるＵＳＢ規格はＵＳＢバージョン２．０であることが好ましいが、本発明は将来に導入されることになる任意のバージョンのような、ＵＳＢ規格の他の任意のバージョンとともに実施されてもよい。
【００９０】
デバイスのメモリ総容量は本発明の範囲内に限定されていないが、少なくとも１メガバイトであることが好ましく、より一般的には少なくとも１０メガバイト、少なくとも１００メガバイト、または、少なくとも１ギガバイトでさえあることが好ましい。
【図面の簡単な説明】
【００９１】
【図１】図１は既知のポータブルデータ記憶デバイスの第１の構成を示す。
【図２】図２は図１の既知のデバイスのＮＡＮＤフラッシュメモリデバイスの物理メモリ空間を示す。
【図３】図３は本発明の第１の実施形態のメモリアドレスマッピングテーブルを示す。
【図４】図４は本発明の第１の実施形態で実行されるステップのフロー図である。
【図５】図５はあるデータ書き込み動作の後の、図３のメモリアドレスマッピングテーブルを示す。
【図６（ａ）】図６（ａ）は本発明の第２の実施形態を示す。
【図６（ｂ）】図６（ｂ）は本発明の第２の実施形態を示す。
【図６（ｃ）】図６（ｃ）は本発明の第２の実施形態を示す。
【図６（ｄ）】図６（ｄ）は本発明の第２の実施形態を示す。
【図６（ｅ）】図６（ｅ）は本発明の第２の実施形態を示す。
【図７（ａ）】図７（ａ）は各時間における本発明の第３の実施形態の物理メモリの状態を示す。
【図７（ｂ）】図７（ｂ）は各時間における本発明の第３の実施形態の物理メモリの状態を示す。
【図７（ｃ）】図７（ｃ）は各時間における本発明の第３の実施形態の物理メモリの状態を示す。
【図７（ｄ）】図７（ｄ）は各時間における本発明の第３の実施形態の物理メモリの状態を示す。
【図７（ｅ）】図７（ｅ）は各時間における本発明の第３の実施形態の物理メモリの状態を示す。
【図８】図８は図７の実施形態の動作のフロー図である。
【図９（ａ）】図９（ａ）は本発明の第４の実施形態を示す。
【図９（ｂ）】図９（ｂ）は本発明の第４の実施形態を示す。
【図９（ｃ）】図９（ｃ）は本発明の第４の実施形態を示す。
【図１】
2007519118.tif 000003
【図２】
2007519118.tif 000004
【図３】
2007519118.tif 000005
【図４】
2007519118.tif 000006
【図５】
2007519118.tif 000007
【図６（ａ）】
2007519118.tif 000008
【図６（ｂ）】
2007519118.tif 000009
【図６（ｃ）】
2007519118.tif 000010
【図６（ｄ）】
2007519118.tif 000011
【図６（ｅ）】
2007519118.tif 000012
【図７（ａ）】
2007519118.tif 000013
【図７（ｂ）】
2007519118.tif 000014
【図７（ｃ）】
2007519118.tif 000015
【図７（ｄ）】
2007519118.tif 000016
【図７（ｅ）】
2007519118.tif 000017
【図８】
2007519118.tif 000018
【図９（ａ）】
2007519118.tif 000019
【図９（ｂ）】
2007519118.tif 000020
【図９（ｃ）】
2007519118.tif 000021
【手続補正書】
【提出日】平成17年11月18日(2005.11.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルデータ記憶デバイスにおいて、
（ｉ）前記デバイスへおよび前記デバイスからデータパケットを転送するデータインターフェイスと、
（ｉｉ）インターフェイス制御装置と、
（ｉｉｉ）マスター制御ユニットと、
（ｉｖ）少なくとも１つのＮＡＮＤフラッシュメモリユニットと
を具備し、
前記インターフェイス制御装置は前記インターフェイスを通して受け取ったデータを前記マスター制御ユニットに送るように構成され、
前記マスター制御ユニットは、
あるデータパケットをエンコーディングＲＥＡＤ命令として、他のデータパケットをエンコーディングＷＲＩＴＥ命令として認識し、
（ａ）論理アドレスを示しているＲＥＡＤ命令を受け取ったとき、論理メモリ空間内の論理アドレス領域を、前記メモリユニット内のそれぞれの第１の物理アドレス領域に関係付けるメモリアドレスマッピングテーブルにアクセスし、前記アドレスマッピングテーブルにしたがって、前記論理アドレスに対応する前記メモリユニット中の物理アドレスからデータを読み出し、前記読み出されたデータを含む１以上のデータパケットを前記データインターフェイスに送信し、
（ｂ）論理アドレスおよびその論理アドレスに書き込まれることになるデータを示しているＷＲＩＴＥ命令を受け取ったとき、前記メモリアドレスマッピングテーブルにしたがって、前記論理アドレスに対応する前記物理アドレスが消去されている状態にあるかどうかを決定し、
そうである場合、前記データをその物理アドレスに書き込み、または、
そうでない場合、前記アドレスマッピングテーブルを修正して、第２の物理アドレス領域を、前記論理アドレスを含んでいる前記論理アドレス領域に関係付け、前記修正されたメモリアドレスマッピングテーブルにしたがって、前記論理アドレスに対応する物理アドレスに前記データを書き込み、前記第１の物理アドレス領域の他の部分に記憶されたいずれのデータも前記第２の物理アドレス領域の対応する位置にコピーするように構成されており、
前記メモリアドレスマッピングテーブルを規定するデータは前記フラッシュメモリユニットにマッピングデータとして記憶され、前記マスター制御ユニットは、前記メモリアドレスマッピングテーブルを修正するとき、前記マッピングデータを修正するように構成されており、前記マスター制御ユニットは、開始されたとき、前記フラッシュメモリユニットから前記マッピングデータを抽出し、ＲＡＭメモリ内に前記メモリアドレスマッピングテーブルを発生させるように構成されているデバイス。
【請求項２】
それぞれの物理アドレス領域と論理アドレス領域との間の前記マッピングを規定する前記マッピングデータの部分が、その物理アドレス領域内に記憶される、請求項１記載のデバイス。
【請求項３】
所定の物理アドレス領域に関連する前記マッピングデータは前記物理アドレス領域の１以上のページの制御データ記憶セクタに記憶される、請求項２記載のデバイス。
【請求項４】
前記物理メモリ空間は、
（ｉ）前記メモリアドレスマッピングテーブルによって、論理アドレス領域に関係付けられた物理メモリ領域と、
（ｉｉ）前記メモリアドレスマッピングテーブルを修正する前記マスター制御ユニットの動作の下、前記論理アドレスに関係付けできる待ち行列物理メモリ領域と
を含む、請求項１ないし３のいずれか１項記載のデバイス。
【請求項５】
前記待ち行列物理メモリ領域は消去されている状態にある、請求項４記載のデバイス。
【請求項６】
前記物理メモリ空間は、前記メモリアドレスマッピングテーブルを修正する前記マスター制御ユニットの動作の下、前記論理アドレスに関係付けできない予約された物理メモリ領域をさらに含む、請求項４または５記載のデバイス。
【請求項７】
前記物理アドレス領域は前記メモリユニットのそれぞれのブロックである、請求項１ないし６のいずれか１項記載のデバイス。
【請求項８】
前記物理アドレス領域は前記メモリユニット中のブロックのグループであり、前記グループはグループ化テーブルにしたがって規定されている、請求項１ないし６のいずれか１項記載のデバイス。
【請求項９】
前記ブロックのグループの大半はルールにしたがって規定され、前記グループ化テーブルは前記ルールに対して例外であるグループを規定する、請求項８記載のデバイス。
【請求項１０】
前記メモリアドレスマッピングテーブルは、前記ルールに対する例外であるグループの１つに関係付けられているいずれの論理アドレス領域に関するフラグも含む、請求項９記載のデバイス。
【請求項１１】
前記マスター制御ユニットは、論理アドレス領域内の連続的に続く論理アドレスを前記ブロックの異なるものにおけるそれぞれのページに関係付ける、請求項８ないし１０のいずれか１項記載のデバイス。
【請求項１２】
前記マスター制御ユニットは、連続的な論理アドレスを組に関係付け、論理アドレスの前記組のそれぞれは、各グループ中のブロックの数に等しいメンバの数を有しており、各所定の組に対して前記マスター制御ユニットは、その組の前記論理アドレスを前記それぞれのブロックの対応するページに関係付ける、請求項１１記載のデバイス。
【請求項１３】
前記マスター制御ユニットは、予め規定された時間内に、予め規定された類似基準にしたがって第２のＷＲＩＴＥ命令が受け取られなかったことを決定したときのみ、第１のＷＲＩＴＥ命令の受け取りに応答して、前記ＷＲＩＴＥ命令を実行するよう構成されている、請求項１ないし１２のいずれか１項記載のデバイス。
【請求項１４】
所定の論理アドレス領域に関連して、前記メモリアドレス修正テーブルを修正した後で、前記第１の物理アドレス領域から新しい第２のアドレス領域へのデータの前記コピーの前に、前記基準はコピーされることになるデータの前記所定の論理アドレス領域内の位置に対応する論理アドレスに前記第２のＷＲＩＴＥ命令が関連しているかどうかであり、そのようなＷＲＩＴＥ命令が受け取られた場合、前記コピー動作を中止して、代わりに前記第２のＷＲＩＴＥ命令によって特定されたデータを前記第２の物理アドレス領域の前記位置に書き込む、請求項１３記載のデバイス。
【請求項１５】
前記マスター制御ユニットはデータキャッシュへのアクセスを有し、前記第１のＷＲＩＴＥ命令に応答して前記データを前記データキャッシュに書き込み、前記基準は、前記第２のＷＲＩＴＥ命令が前記第１の命令と同一の論理アドレスに関連しているというものであり、前記決定が肯定である場合、前記第２のＷＲＩＴＥ命令中で特定された前記データは、前記データキャッシュに書き込まれる、請求項１３記載のデバイス。
【請求項１６】
前記マスター制御ユニットはデータキャッシュへのアクセスを有し、前記第１のＷＲＩＴＥ命令に応答して、前記ＷＲＩＴＥ命令が１以上の選択された論理アドレスに関連している場合に、前記データを前記データキャッシュに書き込み、前記基準は、前記第２のＷＲＩＴＥ命令が前記第１の命令と同一の論理アドレスに関連しているというものであり、前記決定が肯定である場合、前記第２のＷＲＩＴＥ命令中で特定された前記データは、前記データキャッシュに書き込まれる、請求項１３記載のデバイス。
【請求項１７】
前記選択された論理アドレスは複数ある、請求項１６記載のデバイス。
【請求項１８】
比較的高頻度で発生する前記ＷＲＩＴＥ命令にエンコードされた論理アドレスを認識し、前記認識された論理アドレスを前記選択された論理アドレスとして設定するパターン認識ユニットをさらに具備する、請求項１６または１７記載のデバイス。
【手続補正書】
【提出日】平成19年1月12日(2007.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルデータ記憶デバイスにおいて、
（ｉ）前記デバイスへおよび前記デバイスからデータパケットを転送するデータインターフェイスと、
（ｉｉ）インターフェイス制御装置と、
（ｉｉｉ）マスター制御ユニットと、
（ｉｖ）少なくとも１つのＮＡＮＤフラッシュメモリユニットと
を具備し、
前記インターフェイス制御装置は前記インターフェイスを通して受け取ったデータを前記マスター制御ユニットに送るように構成され、
前記マスター制御ユニットは、
あるデータパケットをエンコーディングＲＥＡＤ命令として、他のデータパケットをエンコーディングＷＲＩＴＥ命令として認識し、
（ａ）論理アドレスを示しているＲＥＡＤ命令を受け取ったとき、論理メモリ空間内の論理アドレス領域を、前記メモリユニット内のそれぞれの第１の物理アドレス領域に関係付けるメモリアドレスマッピングテーブルにアクセスし、前記アドレスマッピングテーブルにしたがって、前記論理アドレスに対応する前記メモリユニット中の物理アドレスからデータを読み出し、前記読み出されたデータを含む１以上のデータパケットを前記データインターフェイスに送信し、
（ｂ）論理アドレスおよびその論理アドレスに書き込まれることになるデータを示しているＷＲＩＴＥ命令を受け取ったとき、前記メモリアドレスマッピングテーブルにしたがって、前記論理アドレスに対応する前記物理アドレスが消去されている状態にあるかどうかを決定し、
そうである場合、前記データをその物理アドレスに書き込み、または、
そうでない場合、前記アドレスマッピングテーブルを修正して、第２の物理アドレス領域を、前記論理アドレスを含んでいる前記論理アドレス領域に関係付け、前記修正されたメモリアドレスマッピングテーブルにしたがって、前記論理アドレスに対応する物理アドレスに前記データを書き込み、前記第１の物理アドレス領域の他の部分に記憶されたいずれのデータも前記第２の物理アドレス領域の対応する位置にコピーするように構成されており、
前記メモリアドレスマッピングテーブルを規定するデータは前記フラッシュメモリユニットにマッピングデータとして記憶され、前記マスター制御ユニットは、前記メモリアドレスマッピングテーブルを修正するとき、前記マッピングデータを修正するように構成されており、前記マスター制御ユニットは、開始されたとき、前記フラッシュメモリユニットから前記マッピングデータを抽出し、ＲＡＭメモリ内に前記メモリアドレスマッピングテーブルを発生させるように構成されているデバイス。
【請求項２】
それぞれの物理アドレス領域と論理アドレス領域との間の前記マッピングを規定する前記マッピングデータの部分が、その物理アドレス領域内に記憶される、請求項１記載のデバイス。
【請求項３】
所定の物理アドレス領域に関連する前記マッピングデータは前記物理アドレス領域の１以上のページの制御データ記憶セクタに記憶される、請求項２記載のデバイス。
【請求項４】
前記物理メモリ空間は、
（ｉ）前記メモリアドレスマッピングテーブルによって、論理アドレス領域に関係付けられた物理メモリ領域と、
（ｉｉ）前記メモリアドレスマッピングテーブルを修正する前記マスター制御ユニットの動作の下、前記論理アドレスに関係付けできる待ち行列物理メモリ領域と
を含む、請求項１ないし３のいずれか１項記載のデバイス。
【請求項５】
前記待ち行列物理メモリ領域は消去されている状態にある、請求項４記載のデバイス。
【請求項６】
前記物理メモリ空間は、前記メモリアドレスマッピングテーブルを修正する前記マスター制御ユニットの動作の下、前記論理アドレスに関係付けできない予約された物理メモリ領域をさらに含む、請求項４または５記載のデバイス。
【請求項７】
前記物理アドレス領域は前記メモリユニットのそれぞれのブロックである、請求項１ないし６のいずれか１項記載のデバイス。
【請求項８】
前記物理アドレス領域は前記メモリユニット中のブロックのグループであり、前記グループはグループ化テーブルにしたがって規定されている、請求項１ないし６のいずれか１項記載のデバイス。
【請求項９】
前記ブロックのグループの大半はルールにしたがって規定され、前記グループ化テーブルは前記ルールに対して例外であるグループを規定する、請求項８記載のデバイス。
【請求項１０】
前記メモリアドレスマッピングテーブルは、前記ルールに対する例外であるグループの１つに関係付けられているいずれの論理アドレス領域に関するフラグも含む、請求項９記載のデバイス。
【請求項１１】
前記マスター制御ユニットは、論理アドレス領域内の連続的に続く論理アドレスを前記ブロックの異なるものにおけるそれぞれのページに関係付ける、請求項８ないし１０のいずれか１項記載のデバイス。
【請求項１２】
前記マスター制御ユニットは、連続的な論理アドレスを組に関係付け、論理アドレスの前記組のそれぞれは、各グループ中のブロックの数に等しいメンバの数を有しており、各所定の組に対して前記マスター制御ユニットは、その組の前記論理アドレスを前記それぞれのブロックの対応するページに関係付ける、請求項１１記載のデバイス。
【請求項１３】
前記マスター制御ユニットは、予め規定された時間内に、予め規定された類似基準にしたがって第２のＷＲＩＴＥ命令が受け取られなかったことを決定したときのみ、第１のＷＲＩＴＥ命令の受け取りに応答して、前記ＷＲＩＴＥ命令を実行するよう構成されている、請求項１ないし１２のいずれか１項記載のデバイス。
【請求項１４】
所定の論理アドレス領域に関連して、前記メモリアドレスマッピングテーブルを修正した後で、前記第１の物理アドレス領域から新しい第２のアドレス領域へのデータの前記コピーの前に、前記基準はコピーされることになるデータの前記所定の論理アドレス領域内の位置に対応する論理アドレスに前記第２のＷＲＩＴＥ命令が関連しているかどうかであり、そのようなＷＲＩＴＥ命令が受け取られた場合、前記コピー動作を中止して、代わりに前記第２のＷＲＩＴＥ命令によって特定されたデータを前記第２の物理アドレス領域の前記位置に書き込む、請求項１３記載のデバイス。
【請求項１５】
前記マスター制御ユニットはデータキャッシュへのアクセスを有し、前記第１のＷＲＩＴＥ命令に応答して前記データを前記データキャッシュに書き込み、前記基準は、前記第２のＷＲＩＴＥ命令が前記第１の命令と同一の論理アドレスに関連しているというものであり、前記決定が肯定である場合、前記第２のＷＲＩＴＥ命令中で特定された前記データは、前記データキャッシュに書き込まれる、請求項１３記載のデバイス。
【請求項１６】
前記マスター制御ユニットはデータキャッシュへのアクセスを有し、前記第１のＷＲＩＴＥ命令に応答して、前記ＷＲＩＴＥ命令が１以上の選択された論理アドレスに関連している場合に、前記データを前記データキャッシュに書き込み、前記基準は、前記第２のＷＲＩＴＥ命令が前記第１の命令と同一の論理アドレスに関連しているというものであり、前記決定が肯定である場合、前記第２のＷＲＩＴＥ命令中で特定された前記データは、前記データキャッシュに書き込まれる、請求項１３記載のデバイス。
【請求項１７】
前記選択された論理アドレスは複数ある、請求項１６記載のデバイス。
【請求項１８】
比較的高頻度で発生する前記ＷＲＩＴＥ命令にエンコードされた論理アドレスを認識し、前記認識された論理アドレスを前記選択された論理アドレスとして設定するパターン認識ユニットをさらに具備する、請求項１６または１７記載のデバイス。
【国際調査報告】
2007519118.tif 000022
2007519118.tif 000023
2007519118.tif 000024