(57)【要約】デバイスの仕様に違反せずに、また性能を最適化して、フラッシュ・メモリ・システムが、オペレーティング・システム・データ・セクタ・サイズよりも大きなページ（２）を持つフラッシュ・デバイスをサポートすることを可能にするためのシステム及び方法。本発明によれば、フラッシュ・メモリ・システムの書き込みロジックは、セクタ書き込み処理中、ＰＰＰ制限とデバイスのページ・サイズとを考慮しなくてはならない。ＰＰＰは、いつ、単に新しいデータを書き込むべきか、また新しいページを割り当てて、この新しいページへ以前から存在するデータをコピーするべきかの決断に影響を与える。本発明によれば、ページが一つ以上のセクタを含む場合、ソフトウェアは、物理アドレスへ標準置換するが、アドレスを見いだした後、そのアドレスを含むページを調べて、既にデータを含む同ページ内における他のセクタの数を数える。それから、算出物理アドレス内へセクタを書き込むか、あるいは新たなページ内へセクタを書き込み、同時に、オプションとして、既存の隣接するセクタをこの新たなページにコピーするかを決定する。
2005502124.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのフラッシュ・メモリ・デバイスにデータの書き込みを可能にして、前記デバイスが、オペレーティング・システムのデータ・セクタよりも大きなページをサポートするようにさせるための方法であって、
ｉ．前記オペレーティング・システムによって、フラッシュ管理システムがフラッシュ・メモリ・システムに少なくとも一つのデータ・セクタを書き込むように命令するステップ、
ｉｉ．前記オペレーティング・システムのデータ・セクタよりも大きなフラッシュ・ページ内に物理フラッシュ・アドレスを計算するステップ、そして
ｉｉｉ．前記ページに前記データ・セクタを書き込むべきか、あるいは新しいフラッシュ・ページに前記データ・セクタを書き込み、同時に、前記フラッシュ・ページ内における既存の隣接するセクタを、前記新しいフラッシュ・ページにコピーするべきかを選択するステップからなる方法。
【請求項２】
前記フラッシュ管理システムが一つ以上のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数の特徴を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記特徴によって決まる、請求項１に記載の方法。
【請求項３】
前記選択肢がフラッシュ・メモリ・デバイスのＰＰＰ仕様に依存する、請求項１に記載の方法。
【請求項４】
前記選択肢が、前記新しいデータ・セクタがマッピングされる前記ページ内の既存の使用済みセクタの数に依存する、請求項１に記載の方法。
【請求項５】
前記選択肢が、フラッシュ・メモリ・デバイスのＰＰＰ仕様に、そして前記新しいデータ・セクタがマッピングされる前記ページ内の既存の使用済みセクタ数に依存する、請求項１に記載の方法。
【請求項６】
前記フラッシュ管理システムが一つ以上のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数のＰＰＰ仕様を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記ＰＰＰ仕様によって決まる、請求項２に記載の方法。
【請求項７】
少なくとも一つのフラッシュ・メモリ・デバイスにデータの書き込みを可能にして、前記デバイスが、オペレーティング・システムのデータ・セクタよりも大きなページをサポートするようにさせるための方法であって、
ｉ．オペレーティング・システムによって、フラッシュ管理システムがフラッシュ・システムに少なくとも一つのデータ・セクタを書き込むように命令するステップ、
ｉｉ．物理フラッシュ・アドレスを、前記オペレーティング・システムのデータ・セクタよりも大きなフラッシュ・ページ内に計算するステップ、
ｉｉｉ．前記ページに前記データ・セクタを書き込むべきか、あるいは新しいフラッシュ・ページ内に、前記フラッシュ・ページ内に既存の隣接するセクタを前記新しいフラッシュ・ページ内へコピーしないで前記データ・セクタを書き込むべきかを選択するステップからなる方法。
【請求項８】
前記フラッシュ管理システムが一つ以上のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数の特徴を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記特徴によって決まる、請求項７に記載の方法。
【請求項９】
前記選択肢がフラッシュ・メモリ・デバイスのＰＰＰ仕様に依存する、請求項７に記載の方法。
【請求項１０】
前記選択肢が、前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタの数に依存する、請求項７に記載の方法。
【請求項１１】
前記選択肢が、フラッシュ・メモリ・デバイスのＰＰＰ仕様に、そして前記新しいデータ・セクタがマッピングされる前記ページ内に既存の使用済みセクタ数に依存する、請求項７に記載の方法。
【請求項１２】
前記フラッシュ管理システムが一つ以上のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数のＰＰＰ仕様を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記ＰＰＰ仕様によって決まる、請求項８に記載の方法。
【請求項１３】
少なくとも一つのフラッシュ・メモリ・デバイスにデータの書き込みを可能にして、前記デバイスが、オペレーティング・システムのデータ・セクタよりも大きなページをサポートするようにさせるための方法であって、
ｉ．オペレーティング・システムによって、フラッシュ管理システムがフラッシュ・システムに少なくとも一つのデータ・セクタを書き込むように命令するステップ、
ｉｉ．前記オペレーティング・システムのデータ・セクタよりも大きなフラッシュ・ページ内に物理フラッシュ・アドレスを計算するステップ、そして
ｉｉｉ．前記ページに前記データ・セクタを書き込むべきか、あるいは新しいフラッシュ・ページ内に前記データ・セクタを書き込み、同時に、前記フラッシュ・ページ内に既存の隣接するセクタを前記新しいフラッシュ・ページにコピーすべきか、あるいは新しいフラッシュ・ページ内に前記データ・セクタを書き込み、前記フラッシュ・ページ内に既存の隣接するセクタを前記新しいフラッシュ・ページにコピーしないべきかを選択するステップからなる方法。
【請求項１４】
前記フラッシュ管理システムが一つ以上のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数の特徴を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記特徴によって決まる、請求項１３に記載の方法。
【請求項１５】
前記選択肢がフラッシュ・メモリ・デバイスのＰＰＰ仕様に依存する、請求項１３に記載の方法。
【請求項１６】
前記選択肢が、前記新しいデータ・セクタがマッピングされる前記ページ内に既存の使用済みセクタの数に依存する、請求項１３に記載の方法。
【請求項１７】
前記選択肢が、フラッシュ・メモリ・デバイスのＰＰＰ仕様に、そして前記新しいデータ・セクタがマッピングされる前記ページ内に既存の使用済みセクタ数に依存する、請求項１３に記載の方法。
【請求項１８】
前記フラッシュ管理システムが一つ以上のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数のＰＰＰ仕様を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記ＰＰＰ仕様によって決まる、請求項１４に記載の方法。
【請求項１９】
フラッシュ・メモリ・デバイスにデータの書き込みを可能にして、前記デバイスが、オペレーティング・システム・データ・セクタよりも大きなページをサポートするようにさせるためのシステムであって、
ｉ．少なくとも一つのフラッシュ・デバイスからなるフラッシュ・メモリ・システム、
なお、前記少なくとも一つのフラッシュ・デバイスは、オペレーティング・システム・データ・セクタ・サイズよりも大きなサイズのフラッシュ・ページを持ち、前記少なくとも一つのフラッシュ・デバイスは、前記ページを消去することなく前記ページ内で許容可能な、複数のパーシャル・ページ・プログラミング処理数に制限がある、
ｉｉ．仮想的なフラッシュ・アドレスを物理フラッシュ・アドレスにマッピングすることによって、前記フラッシュ・メモリ・システムを管理するフラッシュ管理システム、そして
ｉｉｉ．データ・セクタを基本単位として用いるオペレーティング・システムからなり、
前記オペレーティング・システムは、前記フラッシュ・メモリ・システムにデータを書き込む、そして前記フラッシュ・メモリ・システムからデータを読み取るために前記フラッシュ管理システムを用いることを特徴とする、システム。
【請求項２０】
前記フラッシュ管理システムが、物理フラッシュ・アドレスにマッピングされる各セクタ書き込み要求に対する選択肢を決めることによって作用し、前記物理アドレスを含むページが、既に以前に書き込んだセクタを含む可能性があり、前記選択肢が、
ａ）前記セクタを、前記セクタの現在マッピングした物理アドレス内へ書き込む、そして
ｂ）新しいページ内へ前記セクタを書き込み、同時に、前記ページ内に既存の隣接するセクタを前記新しいページ内へコピーするのいずれかである、請求項１９に記載のシステム。
【請求項２１】
前記フラッシュ管理システムが複数のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数の特徴を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記特徴によって決まる、請求項２０に記載のシステム。
【請求項２２】
前記選択肢が前記フラッシュ・メモリ・システムのＰＰＰ仕様に依存する、請求項２０に記載のシステム。
【請求項２３】
前記選択肢が、前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタの数に依存する、請求項２０に記載のシステム。
【請求項２４】
前記選択肢が、前記フラッシュ・メモリ・システムのＰＰＰ仕様に、そして前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタ数に依存する、請求項２０に記載のシステム。
【請求項２５】
前記フラッシュ管理システムが複数のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数のＰＰＰ仕様を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記ＰＰＰ仕様によって決まる、請求項２１に記載のシステム。
【請求項２６】
前記フラッシュ管理システムが、物理フラッシュ・アドレスにマッピングされる各セクタ書き込み要求に対する選択肢を決めることによって作用し、前記物理アドレスを含むページが、既に以前に書き込んだセクタを含む可能性があり、前記選択肢が、
ａ）前記セクタの現在マッピングされた物理アドレス内へ、前記セクタを書き込む、そして
ｂ）新しいページ内へ前記セクタを書き込み、前記ページ内に既存の隣接するセクタを前記新しいページ内へコピーしないのいずれかである、請求項１９に記載のシステム。
【請求項２７】
前記フラッシュ管理システムが複数のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数の特徴を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記特徴によって決まる、請求項２６に記載のシステム。
【請求項２８】
前記選択肢がフラッシュ・メモリ・システムのＰＰＰ仕様に依存する、請求項２６に記載のシステム。
【請求項２９】
前記選択肢が、前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタの数に依存する、請求項２６に記載のシステム。
【請求項３０】
前記選択肢が、前記フラッシュ・メモリ・システムのＰＰＰ仕様に、そして前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタ数に依存する、請求項２６に記載のシステム。
【請求項３１】
前記フラッシュ管理システムが複数のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数のＰＰＰ仕様を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記ＰＰＰ仕様によって決まる、請求項２７に記載のシステム。
【請求項３２】
前記フラッシュ管理システムが、物理アドレスにマッピングされる各セクタ書き込み要求に対する選択肢を決めることによって作用し、その物理アドレスを含むページが、既に以前に書き込んだセクタを含む可能性があり、前記選択肢が、
ａ）前記セクタの現在マッピングされた物理アドレス内へ前記セクタを書き込む、
ｂ）新しいページ内へ前記セクタを書き込み、同時に、前記ページ内に既存の隣接するセクタを前記新しいページ内へコピーする、そして
ｃ）新しいページ内へ前記セクタを書き込むが、前記ページ内に既存の隣接するセクタを前記新しいページ内へコピーしないのいずれかである、請求項１９に記載のシステム。
【請求項３３】
前記フラッシュ管理システムが複数のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数の特徴を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記特徴によって決まる、請求項３２に記載のシステム。
【請求項３４】
前記選択肢が前記フラッシュ・メモリ・システムのＰＰＰ仕様に依存する、請求項３２に記載のシステム。
【請求項３５】
前記選択肢が、前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタの数に依存する、請求項３２に記載のシステム。
【請求項３６】
前記選択肢が、前記フラッシュ・メモリ・システムのＰＰＰ仕様に、そして前記新しいセクタがマッピングされる前記ページ内に既存の使用済みセクタ数に依存する、請求項３２に記載のシステム。
【請求項３７】
前記フラッシュ管理システムが複数のフラッシュ・デバイス・タイプをサポートし、前記デバイスの組合せが複数のＰＰＰ仕様を提供し、各セクタ書き込みの選択肢が、書き込まれる各特定なデバイスの前記ＰＰＰ仕様によって決まる、請求項３３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ・システムにおいて情報を保存及び検索するための、改良型のシステムに関する。特に、大きなページのフラッシュメモリ・デバイスに書き込まれたデータを組織化して処理するシステムに関する。
【背景技術】
【０００２】
本技術の熟練者に既知であるように、本技術では、フラッシュタイプのフローティングゲート・トランジスタからなる、電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）が証されており、また現在、製品が市販されている。これらの、いわゆるフラッシュメモリは、機能及び性能がＥＰＲＯＭメモリと同様な非揮発性メモリであり、追加機能として、メモリのブロックを消去するための、回路内でのプログラム可能な処理を許容する。しかしながら、典型的なフラッシュメモリでは、メモリの、以前に書き込んだ領域に、その領域をブロックとして消去せずにリライトすることは実際的ではない。
【０００３】
典型的なコンピュータ・システムでは、オペレーティング・システム・プログラムは、システムの一部であるデータ記憶装置のデータ管理に責任を持つ。データ記憶装置の必要な、そして通常十分な特性は、オペレーティング・システム・プログラムへ適合性を達成することであるため、オペレーティング・システムは、これらの装置からデータを読み取り、また、これらのデータ記憶媒体のどの位置へもデータを書き込むことができる。したがって、典型的なフラッシュメモリは、以前にデータが書き込まれたフラッシュメモリの領域には、まずその領域が消去されない限り、データを書き込むことができないため、典型的な既存のオペレーティング・システム・プログラムとは互換性がない。
【０００４】
本技術分野では、オペレーティング・システム・プログラムを修正することなく、既存のコンピュータ操作プログラムによってフラッシュメモリを処理することを可能にする、ソフトウェア機構が提案されている。しかしながら、これらの従来の技術によるプログラムは、「１度の書き込みで何度も読み取る」装置として、フラッシュメモリを操作する。このような既知のソフトウェア機構は、以前に書き込んでしまった記憶位置をリサイクルすることができない。結局、すべての位置が書き込まれてしまった場合、ユーザーの特定な介入なしに、メモリをさらに用いることはできない。
【０００５】
フラッシュメモリの消去及び再書き込みの制限を考慮すると、ソフトウェア・マネージメント・システムがフラッシュメモリ・デバイスのこれらの機能を処理するという必要性は、絶対条件である。このようなシステムは、例えば、バン及びアミール氏が１９９３年３月５日に出願した米国特許第５，４０４，４８５号に開示されている（参照により本文に完全に記載したものとする）。
【０００６】
さらに、書き込まれていない物理ユニットが全くなくなってしまったときに再編成させる、ＮＡＮＤ及びＡＮＤ技術によって例示されるページ・モードの装置を可能にする必要がある。このような必要性は、データを読み取る、あるいは書き込むためのメモリ部分、例えばページ等の大きさが、消去のための最小部分、例えばユニット等の大きさとは異なる場合、フラッシュメモリを組織化する方法によっていた。ページ・モードのフラッシュ技術に最適化したフラッシュ・ファイル・システムは、例えば、バン及びアミール氏が１９９７年１０月１６日に出願した米国特許第５，９３７，４２５号に開示されている（参照により本文に完全に記載したものとする）。バン氏の４２５の発明及び本発明の両方によれば、用語「ページ」は、一つの処理で書き込まれる最小データ量と定義され、また用語「ユニット」は、一つの処理で消去される最小データ量と定義される（一つのユニットが一つ以上のページを含む）。
【０００７】
今日使用されるたいていのオペレーティング・システム（ＯＳ）は、磁性ハードディスクあるいはフラッシュ・メモリ・ディスクによらず、ＯＳが記憶装置から読み取る、あるいはそれに書き込むデータの最小量である「セクタ」と呼ぶ基本論理データ・ユニットに基づいて、ファイル保存システムを論理的に組織化している。セクタの最も一般的な大きさは今日５１２バイトである。他のサイズも可能である。（その大きさに拘らず）各読み取りあるいは書き込み処理に関連する不変なシステム・オーバヘッドがあるため、ＯＳが、より大きな量のデータを処理することが、より効率的である。したがって、多くのＯＳは、複数のセクタを一つのより大きな論理エンティティに結合する、そのような（時々「クラスタ」と呼ばれる）より大きな量を定義する。それでも、ハードウェアにアクセスする最低レベルにおける基本単位はセクタである。
【０００８】
多くのフラッシュ・メモリ・ディスクにとっては、５１２バイト量がフラッシュ・デバイスの基本的な物理属性であるため、デバイスの物理構造は、このＯＳ構造に非常に適している。例えば、ＮＡＮＤフラッシュ・デバイスは、物理的に５１２バイト量で、データを読み取り、そして書き込む。単一バイトを読み取るという必要が僅かな場合でさえも、フラッシュ・アレイからフラッシュ・チップ内の内部バッファへ、５１２バイトを読み取り、それから所望の単一バイトにアクセスする必要がある。結果として、５１２バイトのセクタを用いることは、そのようなフラッシュ・ディスク上に存在するファイル・システムにアクセスするオペレーティング・システムでは比較的に効率的である。上記フラッシュ管理システムは、すべてこのように作用する。
【０００９】
しかしながら、最近、フラッシュの主要なメーカーは、読み取り及び書き込み基本量が、５１２バイトの読み取り書き込み基本量サイズをもはや持たず、より大きな量を持つ、未来のデバイスを発表している。そのような例の一つがサムスン（www. samsung.com -23Fl.-Ka, Taepyung-ro, Chung-gu、韓国、ソウル）である。２キロバイトの基本読み取り書き込みページ・サイズを持つ、未来のＫ９Ｆ１Ｇ０８Ｕ０Ｍ−ＹＣＢ０、１ギガビット・デバイスを発表している。東芝 （www.toshiba.com、日本、１０５−８００１東京都港区芝浦１丁目１−１、株式会社東芝）も、間もなく同様なデバイスを提供すると発表した。これらのデバイスを用いるであろうオペレーティング・システムは、それでも５１２バイト論理セクタに基づいたままであろうから、性能に関する、そして／あるいは信頼性に関する問題が起こるかもしれない。例えば、ＯＳが、フラッシュ管理システムに、同じ物理ページを共有する四つのデータ・セクタを書き込むよう指示すると想定する。書き込み要求は、ＳＷアプリケーションの必要条件によって規定されるため、四つのセクタが一緒に書き込まれることに依存することはできない。また、多くの場合、そのようにはならないだろう。したがって、これらの書き込み要求は、典型的に、四つの個々のコールで実行されるであろう。前記状況（５１２バイトのページ）では、図１から明らかなように、四つの書き込みコマンド間には妨害が全くなく、各セクタは、他から独立して、個々のフラッシュ・ページ内へ書き込まれるであろう。しかしながら、 ２Ｋページの場合は、四つのセクタが一つの物理ページを共有するので、消去なしに、同じページに４度の書き込みは許されないだろう。したがって、同じページ内に単純に４度書き込むという些細な解決方法は容認しないことになる。例えば、上記サムスンのデバイスは、ページを消去しなければならなくなる前に、（技術文献で「パーシャル・ページ・プログラミング」あるいは「ＰＰＰ」として知られる）単に３度の書き込み処理を保証するだけである。もちろん、上記書き込み処理を、同じページ内に決して２度の書き込みを行わずに達成することは可能である。既にもう一つのセクタを含んでいるページ内へセクタを書き込む各要求に対して、新しいページを指定して、それに新しいデータと既存のデータとの両方を書き込むことができる。しかし、この方法は、図２から明らかなように、性能を著しく損なうだろう。同じページ内に四つのセクタを書き込む上記の例においては、セクタが一つずつ来る場合、ＰＰＰ仕様の違反を避けるこの強力な方法の論理は、次の事象の連鎖に導くであろう。
ａ．第一のセクタ書き込み要求が到着する。
ｂ．第一のセクタのデータが第一のページに書き込まれる。
ｃ．第二のセクタ書き込み要求が到着する。
ｄ．第二のページが指定され、第一のセクタが第一のページから読み取られ、そして第一及び第二のセクタのデータが、第二のページに書き込まれる。
ｅ．第三のセクタ書き込み要求が到着する。
ｆ．第三のページが指定され、第一及び第二のセクタが第二のページから読み取られ、そして第一、第二、そして第三のセクタのデータが、第三のページに書き込まれる。
ｇ．第四のセクタ書き込み要求が到着する。
ｈ．第四のページが指定され、第一、第二、そして第三のセクタが、第三のページから読み取られ、そしてすべての四つのセクタのデータが、第四のページに書き込まれる。
【００１０】
したがって、一つのセクタは４度、もう一つのセクタは３度、さらにもう一つは２度書き込まれ、そして最後に書き込まれるものだけが１度書き込まれる。（既存のセクタを新しい位置にコピーするのに必要な、追加の読み取り処理があることは言うまでもない）。
【００１１】
したがって、確かに、デバイスの仕様に違反することなく、また性能を最適化する、５１２バイトよりも大きなページを持つフラッシュ・デバイスをサポート可能なフラッシュメモリ・システムを扱う方法の必要性がある。
【００１２】
強調すべきことは、本発明の目的のために、特定なページ・サイズを持つフラッシュメモリ・システムへ言及するが、これは、そのようなページ・サイズを持つフラッシュ・デバイスからなるシステムに限定するものではない。ソフトウェアの観点から、単一のデバイス・ページだけにアクセスするのは非実用的になるので、むしろ常に多数のページに一緒にアクセスするやり方で、より小さなページ・サイズのフラッシュ・デバイスを組み合わせてフラッシュ・メモリ・システムを構成してもよい。例えば、５１２の８ビット・バイトのページ・サイズを持つ複数のフラッシュ・デバイスを、１６ビット・データ・バスに並列に接続してもよい。そうすれば、両方にバスの下部と上部とで並列にアクセスすることができる。このようなアレンジメントは、ソフトウェアが、実用的に５１２の１６ビット・ワードの最小アクセス・サイズを持つように強いる。したがって、本発明の目的のために、このようなフラッシュ・メモリ・システムは、１ K バイトのページ・サイズを持つと考える。
【発明の開示】
【課題を解決するための手段】
【００１３】
本発明によれば、デバイスの仕様に違反せずに、また性能を最適化して、フラッシュ・メモリ・システムが、５１２バイトよりも大きなページを持つフラッシュ・デバイスをサポートすることを可能にする方法が提供される。
【００１４】
システムは、次のものからなる。
ｉ．少なくとも一つのフラッシュ・デバイスからなるフラッシュ・メモリ・システム。このフラッシュ・デバイスは、オペレーティング・システムのセクタ・サイズよりも大きなサイズのフラッシュ・ページを持つ。
ｉｉ．仮想アドレスの物理アドレスへのマッピングに基づくフラッシュ管理システム。
ｉｉｉ．データ・セクタを基本単位として用いるオペレーティング・システム。本発明の目的のために、オペレーティング・システムは、例えば、マイクロソフト社のウインドウズ・オペレーティング・システム等の、市販のオペレーティング・システムに限定されるものではなく、フラッシュ・デバイス内でデータを処理するのためにフラッシュ管理システムを用いる、如何なるソフトウェア・プログラムをも含む。
【００１５】
本発明の好適実施例によれば、次のステップからなる、フラッシュ・メモリ・デバイスにデータの書き込みを可能にする方法が提供される。この場合、そのデバイスは、データ・セクタよりも大きなページをサポートする。
ｉ．フラッシュ管理システムが少なくとも一つのデータ・セクタを書き込むように命令するステップ。
ｉｉ．物理フラッシュ・アドレスを計算するステップ。このアドレスは、フラッシュ・ページがデータ・セクタより大きなフラッシュ・ページ内にある。そして
ｉｉｉ．データ・セクタを、その位置指定フラッシュ・ページに、あるいは代替的な、新しいフラッシュ・ページに書き込むべきかを決定するステップ。
【００１６】
セクタをどこに書き込むかの決断は、二つの基本的な選択肢を含む。
ａ．算出物理アドレス内へ（おそらく部分的に書き込まれているであろう大きなページの空きセクタ内へ）セクタを書き込む。あるいは
ｂ．新たな（空の）ページ内へセクタを書き込み、同時に、（同じページ内における）既存の隣接するセクタをこの新たなページ内へコピーする。
【００１７】
どこに書き込むかの決断は、ページ・サイズ、そして／あるいはＰＰＰルール等の、フラッシュ・メモリ・デバイスの特徴を考慮する。
【００１８】
さらに、本発明の好適実施例においては、利用可能な選択肢にもう一つの選択肢を加えてもよい。それは、新たな（空の）ページ内へセクタを書き込むが、（同じページ内における）既存の隣接するセクタを、この新たなページ内へコピーしないことである。
【発明の効果】
【００１９】
本発明は、フラッシュ管理システムが、ホスト・オペレーティング・システム論理セクタ・サイズとは等しくない、大きなページ・サイズを持つフラッシュ・デバイスをサポートすることを可能にする。これは、フラッシュ仕様に違反せずに、良好な書き込み及び読み取り性能を達成しながら可能である。
【００２０】
ソリッド・ステート記憶システム開発技術の熟練者には、ここに表す独創的な方法及びシステムが、より多くの実施例を開発するのに用いることができるということは明らかである。前述の実施例は、例として挙げたもので、ここに表す技術を、これらの例だけに限定することを意図していない。
【発明を実施するための最良の形態】
【００２１】
本発明は、デバイスの仕様に違反せずに、また性能を最適化して、５１２バイト・ページよりも大きなフラッシュ・デバイスをサポートするフラッシュ・メモリ・システムを可能にする方法に関する。
【００２２】
次の説明から、本技術における通常の技能を持つ者は、特定なアプリケーションとその必要条件を備える環境において、本発明を用いることができるようになる。好適実施例への種々の修正は、本技術の技能者には明らかであろう。また、ここに定義する一般的な原理は、他の実施例にも適用できる。したがって、本発明が、提示して説明する特定な実施例に限定されることを意図しておらず、本発明は、ここに開示する原理及び新規な特徴に一貫性がある最も広い範囲を占めるものである。
【００２３】
特に、本発明によれば、フラッシュ管理システムの書き込みロジックは、セクタ書き込み処理中、デバイスのＰＰＰ限界を考慮しなくてはならない。ＰＰＰは、デフォルト物理位置に新しいデータを単純に書き込むべきか、そして、新しいページを割り当てて、その新しいページに以前から存在するデータをコピーするべきかの決断に影響を与える。
【００２４】
たいていのフラッシュ管理システムは、物理アドレス内への仮想アドレスのマッピングに基づいている。システムが、データのセクタを書き込む要求を受信した場合、そのコマンドは、ＯＳが論理的にそのセクタを見つけることができる仮想アドレスを含んでいる。フラッシュ管理ＳＷは、まず、これを物理フラッシュ・アドレスに変換する。その結果の位置が空いているなら、そこに単純に書き込み処理を行う。しかし、その結果の位置が既に書き込まれているなら、まず、空きページのいくつかを割り当てて（異なるフラッシュ管理システム間では、方法及びアルゴリズムが異なる）、それから、その新たに割り当てたページ内へ書き込み処理を行う。これは、フラッシュ・ページのサイズがセクタ・サイズに等しい場合である。
【００２５】
本発明によれば、（サムスン電子が導入する大きなページ・サイズ等の）１ページが一つ以上のセクタを含む場合、ソフトウェアは物理アドレスへの標準的な置き換えを行うが、このアドレスを見つけた後、ソフトウェアは、そのアドレスを含むページを調べ、既にデータを含む同じページ内の他のセクタの数を数える。次に、二つの選択肢から決定する。
ａ．算出物理アドレス内へ（部分的に書き込まれている大きなページの空きセクタ内へ）、セクタを書き込む。あるいは
ｂ．新たな（空の）ページ内へセクタを書き込むと同時に、（同じページ内の）既存の隣接するセクタを、この新たなページ内へコピーする。
【００２６】
算出物理アドレスが古いデータで既に書き込まれている場合は、（フラッシュ媒体を単純に上書きすることはできないので）実質的に選択肢がなく、選択肢「ｂ」を選択しなくてはならないことは明らかである。
【００２７】
本発明の好適実施例によれば、可能な決定ルールの実行は、（フラッシュのメーカーが提供する）ＰＰＰ仕様と、ページ内の既に書き込まれているセクタ数とを考慮する。ＰＰＰは、データに対する信頼性の問題を起こさずに、１ページ内に部分的なプログラミング（毎回、ページ・データの一部分のみをプログラムする）を何度許容するのかを定義する、フラッシュのメーカーが提供する仕様である。その限界に達したら、ユーザーは、追加の書き込みに用いる前に、まずそのページを消去しなければならない。たいていの市販ＮＡＮＤフラッシュ・デバイスにおけるＰＰＰ値は、典型的に、３から１０の範囲にある。この場合、セクタを書き込むことが、ＰＰＰ仕様に違反しない（従う）なら、選択肢「ａ．」が選ばれ、そのような書き込み処理が違反を犯すなら、選択肢「ｂ．」が選ばれる。
【００２８】
例えば、図３及び４に参照すれば明らかなように、最大ＰＰＰが３で、１ページが４セクタを含む場合を仮定する。一つの可能な決定ルールとしては、ページ内に３セクタ以上が既に書き込まれていることが分かったなら、３回のＰＰＰ許容書き込み処理が既に用いられてしまった可能性があるので、新たなページに移動することが必要であるとみなすことである。３回よりも少ないＰＰＰ書き込み処理が用いられてしまったことが明確なすべての他のケースでは、システムは、新しいセクタの書き込みをそのデフォルト位置に行ってもよい。図３及び４において、「Ｘ」マークを含むボックスは、書き込まれたセクタを示し、空のボックスは、使われていないセクタを示す。図３の場合、単に二つのセクタが用いられていることが分かるので、新しいセクタは、そのデフォルト位置に書き込んでもよい。図４の場合には、三つのセクタが用いられていることが分かるので、新たなページを用いて、既存のセクタをそこに移動しなければならない。図４は、新しいページに既存のセクタをコピーして、それらの相対的な順序と、ページ内におけるそれらの絶対的な位置との両方を維持することを示す。しかし、強調すべきことは、これは、単に図を単純化するためのものであり、本発明の目的に必要なことではなく、如何なるコピー・スキームを用いてもよい。
【００２９】
厳格な決定ルールは、また、フラッシュ管理システムが、ページに関連するコントロール情報として必要とする、追加の書き込み処理をも考慮しなくてはならない。したがって、計算は、必ずしも、上記の例から推論するかもしれないような、単純な数の比較ではない。システムが、異なる特徴を持つ多数のフラッシュ・デバイスを含み、同じフラッシュ管理ソフトウェアが、多数のフラッシュ・デバイス・タイプをサポートする可能性があるため、システムは、ページを含むデバイスに応じて、リアルタイムで決定ルールの確定を行うようにすることが賢明である。したがって、可能であるソフトウェアは、関連する特定のデバイスに応じて異なる決定ルールを用いるロジックを含んでもよい。
【００３０】
さらに、本発明の好適実施例においては、利用可能な選択肢にもう一つの選択肢を加えてもよい。それは、新たな（空の）ページ内へセクタを書き込むことであるが、（同じページ内の）既存の隣接するセクタを、この新たなページ内へコピーしない。このような選択肢は、いくつかのフラッシュ管理システム、例えば米国特許第５，９３７，４２５号のシステムでは実用的である。図５に表すこの選択肢は、図４と全く同じシナリオを示すが、以前に書き込んだデータのコピーは全く実行されない。この選択肢は、先の二つに加えて利用可能である。あるいは上記選択肢「ｂ」を置き換えてもよいが、以前のように、単に二つの選択肢だけになる。この新しい選択肢は、既存データをコピーするというコストを避ける利点があるが、論理的に隣接するセクタを、物理的に異なるページに残すという欠点がある。この事実は、後に（例えば、四つのセクタすべてを読み取らなければならない場合に）性能に影響するかもしれない。
【００３１】
本発明の実施例の前述の説明は、解き明かす目的で提示したもので、徹底的であること、あるいは開示した形態に正確に本発明を限定することを意図してはいない。上記の説明から、多くの修正及び変更が可能であることは明らかである。本発明の範囲は、この詳細な説明で限定するのではなく、むしろ添付の請求項によって限定するように意図している。
【図面の簡単な説明】
【００３２】
本発明を、次の添付図面を参照しながら実施例を用いて説明する。
【図１】本技術において既知である、データ・セグメントが同じサイズのページに書き込まれる基本的な処理を表す図である。
【図２】大きなページのフラッシュ・デバイス構成に対する、非常に効率が悪い些細なデータ書き込み処理を表す図である。
【図３】既に他のセクタを含む大きなページ内へセクタが書き込まれる処理を表す。この場合、同じ物理ページに新しいセクタを書き込むことを禁止するルールは全くない。
【図４】セクタが大きなページ内へ書き込まれる処理を表す。この場合は、そのページが既に他のセクタを含んでいるため、ＰＰＰルールが、同じ物理ページに新しいセクタを書き込むことを禁止する。この場合、新しいセクタは新しいページに書き込まれる。そして、部分的に書き込まれているページ内の既存のセクタは、新しいセクタを書き込む際にコピーされる。
【図５】セクタが大きなページ内へ書き込まれる処理を表す。この場合、そのページは既に他のセクタを含んでいる。そしてＰＰＰルールが、同じ物理ページに新しいセクタを書き込むことを禁止する。この場合は、新しいセクタは新しいページに書き込まれるが、部分的に書き込まれているページ内の既存のセクタは、新しいセクタを書き込む際にコピーされない。
【図１】
2005502124.tif 000003
【図２】
2005502124.tif 000004
【図３】
2005502124.tif 000005
【図４】
2005502124.tif 000006
【図５】
2005502124.tif 000007
【国際公開パンフレット】
2005502124.tif 000008
2005502124.tif 000009
2005502124.tif 000010
2005502124.tif 000011
2005502124.tif 000012
2005502124.tif 000013
2005502124.tif 000014
2005502124.tif 000015
2005502124.tif 000016
2005502124.tif 000017
2005502124.tif 000018
2005502124.tif 000019
2005502124.tif 000020
2005502124.tif 000021
2005502124.tif 000022
2005502124.tif 000023
2005502124.tif 000024
2005502124.tif 000025
2005502124.tif 000026
2005502124.tif 000027
2005502124.tif 000028
2005502124.tif 000029
2005502124.tif 000030
【国際調査報告】
2005502124.tif 000031