(57)【要約】【課題】格納装置、フラッシュメモリ及び格納装置の動作方法を提供する。【解決手段】格納装置２００は、フラッシュメモリ２２０と、フラッシュメモリ２２０に第１ビットデータと第２ビットデータをプログラムし、前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、前記第１ビットデータと前記第２ビットデータを同じトランザクション内でプログラムするとき、前記第１ビットデータをバックアップせず、前記第１ビットデータと前記第２ビットデータを他のトランザクション内でプログラムするとき、前記第１ビットデータをバックアップし、前記トランザクションはホストから伝送されるシンク信号を利用して決定されるコントローラ２１０を含む。【選択図】図１
2014110057.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリと、
前記フラッシュメモリに第１ビットデータと第２ビットデータをプログラムするコントローラを含み、
前記コントローラは、前記第１ビットデータと前記第２ビットデータを同じトランザクション内でプログラムするとき、前記第１ビットデータをバックアップせず、前記第１ビットデータと前記第２ビットデータを他のトランザクション内でプログラムするとき、前記第１ビットデータをバックアップし、
前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、
前記トランザクションはホストから伝送されるシンク信号を利用して決定される格納装置。
【請求項２】
前記コントローラは、前記第１ビットデータのシーケンスナンバーが基準シーケンスナンバーより大きい場合、前記第１ビットデータと前記第２ビットデータを同じトランザクション内でプログラムすると判断する請求項１に記載の格納装置。
【請求項３】
前記基準シーケンスナンバーは以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムしたビットデータのシーケンスナンバーである請求項２に記載の格納装置。
【請求項４】
前記コントローラはトランザクションが終了するとき、前記基準シーケンスナンバーを更新して格納する請求項３に記載の格納装置。
【請求項５】
前記コントローラは前記シンク信号に応じて前記フラッシュメモリに多数のビットデータをプログラムする請求項１に記載の格納装置。
【請求項６】
前記トランザクションは少なくとも一つのタスクを含み、前記少なくとも一つのタスクは前記コントローラが前記フラッシュメモリに前記多数のビットデータをプログラムすることを含む請求項５に記載の格納装置。
【請求項７】
前記コントローラは、前記フラッシュメモリのバックアップブロックに前記第１ビットデータをバックアップする請求項１に記載の格納装置。
【請求項８】
前記コントローラは、前記フラッシュメモリのユーザブロックに前記第１ビットデータと前記第２ビットデータをプログラムする請求項７に記載の格納装置。
【請求項９】
フラッシュメモリと、
前記フラッシュメモリに第１ビットデータと第２ビットデータをプログラムするコントローラを含み、
前記コントローラは現在トランザクション内で前記第２ビットデータをプログラムするとき、前記第１ビットデータのシーケンスナンバーが基準シーケンスナンバーより大きい場合、前記現在トランザクション（ｃｕｒｒｅｎｔ  ｔｒａｎｓａｃｔｉｏｎ）内で前記第１ビットデータをバックアップせず、前記第１ビットデータのシーケンスナンバーが前記基準シーケンスナンバーより大きくない場合、前記現在トランザクション内で前記第１ビットデータをバックアップし、
前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、
前記基準シーケンスナンバーは以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムしたビットデータのシーケンスナンバーである格納装置。
【請求項１０】
前記トランザクションはホストから伝送されるシンク信号を利用して決定される請求項９に記載の格納装置。
【請求項１１】
前記コントローラはトランザクションが終了するとき、前記基準シーケンスナンバーを更新して格納する請求項１０に記載の格納装置。
【請求項１２】
前記コントローラは前記第１ビットデータのシーケンスナンバーが前記基準シーケンスナンバーより大きい場合、前記第１ビットデータと前記第２ビットデータは同じトランザクション（ｔｒａｎｓａｃｔｉｏｎ）内でプログラムする請求項９に記載の格納装置。
【請求項１３】
前記コントローラは前記フラッシュメモリのバックアップブロックに前記第１ビットデータをバックアップする請求項９に記載の格納装置。
【請求項１４】
前記コントローラは前記フラッシュメモリのユーザブロックに前記第１ビットデータと前記第２ビットデータをプログラムする請求項１３に記載の格納装置。
【請求項１５】
第１ビットデータと第２ビットデータがプログラムされる第１ブロックと、
前記第１ビットデータと前記第２ビットデータが同じトランザクション内でプログラムされるとき、前記第１ビットデータがバックアップされず、前記第１ビットデータと前記第２ビットデータが他のトランザクション内でプログラムされるとき、前記第１ビットデータがバックアップされる第２ブロックを含み、
前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、
前記トランザクションはホストから伝送されるシンク信号を利用して決定されるフラッシュメモリ装置。
【請求項１６】
前記第１ビットデータのシーケンスナンバーが基準シーケンスナンバーより大きい場合、前記第１ビットデータを前記第２ブロックにバックアップしないコントローラをさらに含む請求項１５に記載のフラッシュメモリ装置。
【請求項１７】
前記基準シーケンスナンバーは以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムされたビットデータのシーケンスナンバーである請求項１６に記載のフラッシュメモリ装置。
【請求項１８】
前記コントローラはトランザクションが終了するとき、前記基準シーケンスナンバーを更新して格納する請求項１７に記載のフラッシュメモリ装置。
【請求項１９】
前記シンク信号に応じて前記第１ブロックに多数のビットデータがプログラムされる請求項１５に記載のフラッシュメモリ装置。
【請求項２０】
前記トランザクションは少なくとも一つのタスクを含み、前記少なくとも一つのタスクは前記第１ブロックに前記多数のビットデータがプログラムされることを含む請求項１９に記載のフラッシュメモリ装置。
【請求項２１】
第１ビットデータをフラッシュメモリにプログラムし、
第２ビットデータを前記フラッシュメモリにプログラムする前に、前記第１ビットデータのシーケンスナンバーが基準シーケンスナンバーより大きいかどうかを判断し、前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、
前記第１ビットデータのシーケンスナンバーが前記基準シーケンスナンバーより大きい場合、前記第１ビットデータをバックアップしないことを含み、
前記基準シーケンスナンバーは以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムしたビットデータのシーケンスナンバーである格納装置の動作方法。
【請求項２２】
前記第１ビットデータのシーケンスナンバーが前記基準シーケンスナンバーより大きくない場合、前記第１ビットデータをバックアップすることをさらに含む請求項２１に記載の格納装置の動作方法。
【請求項２３】
前記第１ビットデータをフラッシュメモリにプログラムすることは前記フラッシュメモリのユーザブロックに前記第１ビットデータをプログラムすることであり、
前記第１ビットデータをバックアップすることは前記フラッシュメモリのバックアップブロックに前記第１ビットデータをバックアップすることである請求項２２に記載の格納装置の動作方法。
【請求項２４】
前記トランザクションはホストから伝送されるシンク信号を利用して決定される請求項２１に記載の格納装置の動作方法。
【請求項２５】
現在トランザクション（ｃｕｒｒｅｎｔ  ｔｒａｎｓａｃｔｉｏｎ）が終了することを判断し、
前記現在トランザクションが終了するとき、現在トランザクション内で最終プログラムしたビットデータのシーケンスナンバーを前記基準シーケンスナンバーに更新して格納することをさらに含む請求項２４に記載の格納装置の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体に関し、より詳細には格納装置、フラッシュメモリ及び格納装置の動作方法に関する。
【背景技術】
【０００２】
近年、格納装置は下記特許文献１に示すように多様な形態で使用されている。例えば、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード、ＭＭＣ（Ｍｕｌｔｉ−Ｍｅｄｉａ  Ｃａｒｄ）、ｘＤ（ｅＸｔｒｅｍｅ  Ｄｉｇｉｔａｌ）カード、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）カード、ＳＭ（Ｓｍａｒｔ  Ｍｅｄｉａ）カード、メモリスティックなどのようなメモリカード（ｍｅｍｏｒｙ  ｃａｒｄ）形態で使用される。また、ソリッドステートドライブ（ＳＳＤ    Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）形態で使用される場合もある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９５０４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、一般のフラッシュメモリ格納装置は、ＭＳＢページをフラッシュメモリにプログラムする前、前記ＭＳＢページと対をなすＬＳＢページをバックアップし、以後前記ＭＳＢページをフラッシュメモリにプログラムする。
【０００５】
本発明が解決しようとする課題は、データのバックアップを最小化できる格納装置を提供するものである。
【０００６】
本発明が解決しようとする他の課題は、データのバックアップを最小化できるフラッシュメモリを提供するものである。
【０００７】
本発明が解決しようとするまた他の課題は、データのバックアップを最小化できる格納装置の動作方法を提供するものである。
【０００８】
本発明が解決しようとする課題は、上記言及した課題に制限されず、言及されていないまた他の課題は次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【０００９】
前記課題を解決するための本発明の格納装置の一実施形態は、フラッシュメモリと、前記フラッシュメモリに第１ビットデータと第２ビットデータをプログラムし、前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、前記第１ビットデータと前記第２ビットデータを同じトランザクション内でプログラムするとき、前記第１ビットデータをバックアップせず、前記第１ビットデータと前記第２ビットデータを他のトランザクション内でプログラムするとき、前記第１ビットデータをバックアップし、前記トランザクションはホストから伝送されるシンク信号を利用して決定されるコントローラを含む。
【００１０】
前記課題を解決するための本発明の格納装置の他の形態は、フラッシュメモリと、前記フラッシュメモリに第１ビットデータと第２ビットデータをプログラムし、前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、現在トランザクション内で前記第２ビットデータをプログラムするとき、前記第１ビットデータのシーケンスナンバーが基準シーケンスナンバーより大きい場合、前記現在トランザクション（ｃｕｒｒｅｎｔ  ｔｒａｎｓａｃｔｉｏｎ）内で前記第１ビットデータをバックアップせず、前記第１ビットデータのシーケンスナンバーが前記基準シーケンスナンバーより大きくない場合、前記現在トランザクション内で前記第１ビットデータをバックアップし、前記基準シーケンスナンバーは以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムしたビットデータのシーケンスナンバーであるコントローラを含み得る。
【００１１】
前記課題を解決するための本発明のフラッシュメモリ装置の一実施形態は、第１ビットデータと第２ビットデータがプログラムされ、前記第１ビットデータが前記第２ビットデータより下位ビットデータである第１ブロック、および前記第１ビットデータと前記第２ビットデータが同じトランザクション内でプログラムされるとき、前記第１ビットデータがバックアップされず、前記第１ビットデータと前記第２ビットデータが他のトランザクション内でプログラムされるとき、前記第１ビットデータがバックアップされる第２ブロックを含み、前記トランザクションはホストから伝送されるシンク信号を利用して決定される。
【００１２】
前記課題を解決するための本発明の格納装置の動作方法の一実施形態は、第１ビットデータをフラッシュメモリにプログラムし、第２ビットデータを前記フラッシュメモリにプログラムする前に、前記第１ビットデータのシーケンスナンバーが基準シーケンスナンバーより大きいかどうかを判断し、前記第１ビットデータが前記第２ビットデータより下位ビットデータであり、前記第１ビットデータのシーケンスナンバーが前記基準シーケンスナンバーより大きい場合、前記第１ビットデータをバックアップしないことを含み、前記基準シーケンスナンバーは以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムしたビットデータのシーケンスナンバーである。
【００１３】
本発明のその他具体的な内容は詳細な説明及び図面に含まれている。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態によるシステムを説明するためのブロック図である。
【図２】図１に図示するホストの例示的構成を説明するためのブロック図である。
【図３】図１に図示するコントローラの例示的構成を説明するためのブロック図である。
【図４】本発明の一実施形態によるシステムの動作を説明するための図である。
【図５】本発明の一実施形態によるシステムの動作を説明するための図である。
【図６】本発明の一実施形態によるシステムの動作を説明するための図である。
【図７】本発明の一実施形態によるシステムの動作を説明するための図である。
【図８】本発明の一実施形態によるシステムの動作方法を説明するためのフローチャートである。
【図９】図８の動作方法に従いプログラムされるフラッシュメモリを説明するための図である。
【図１０】図８の動作方法に従いプログラムされるフラッシュメモリを説明するための図である。
【図１１】図８の動作方法に従いプログラムされるフラッシュメモリを説明するための図である。
【図１２】図８の動作方法に従いプログラムされるフラッシュメモリを説明するための図である。
【発明を実施するための形態】
【００１５】
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものである。本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範囲によってのみ定義される。
【００１６】
一つの素子（ｅｌｅｍｅｎｔｓ）が他の素子と「接続された（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」または「カップリングされた（ｃｏｕｐｌｅｄ  ｔｏ）」と指称されるものは、他の素子と直接連結またはカップリングされた場合または中間に他の素子を介在する場合をすべて含む。反面、一つの素子が他の素子と「直接接続された（ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ  ｔｏ）」または「直接カップリングされた（ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ  ｔｏ）」と指称されるものは中間に他の素子を介在しないことを示す。明細書全体にかけて同一参照符号は同一構成要素を指称し、「および／または」は、言及されたアイテムのそれぞれおよび一つ以上のすべての組合せを含む。
【００１７】
例えば、何れか一つの構成要素が他の構成要素にデータまたは信号を「伝送または出力」する場合は、前記構成要素は前記他の構成要素に直接前記データまたは信号を「伝送または出力」することができ、少なくとも一つのまた他の構成要素を介して前記データまたは信号を前記他の構成要素に「伝送または出力」する可能性があることを意味する。
【００１８】
素子（ｅｌｅｍｅｎｔｓ）または層が他の素子または層の「上（ｏｎ）」と指称された場合、他の素子の真上にまたは中間に他の層または他の素子を介在する場合のすべてを含む。反面、素子が「直接の上（ｄｉｒｅｃｔｌｙ  ｏｎ）」または「真上」と指称される場合は、中間に他の素子または層を介在しないことを示す。
【００１９】
空間的に相対的な用語である「下（ｂｅｌｏｗ）」、「下（ｂｅｎｅａｔｈ）」、「下部（ｌｏｗｅｒ）」、「上（ａｂｏｖｅ）」、「上部（ｕｐｐｅｒ）」などは図面に図示するように一つの素子または構成要素と異なる素子または構成要素との相関関係を容易に記述するために使用され得る。空間的に相対的な用語は、図面に図示する方向に加え、使用時または動作時の素子の互いに異なる方向を含む用語として理解しなければならない。例えば、図面に図示する素子をひっくり返す場合、他の素子の「下（ｂｅｌｏｗ）」または「下（ｂｅｎｅａｔｈ）」と記述された素子は他の素子の「上（ａｂｏｖｅ）」に置かれる。したがって、例示的な用語である「下」は下と上の方向をすべて含み得る。素子は他の方向にも配向し得、これにより空間的に相対的な用語は配向により解釈される。
【００２０】
各ブロックは特定の論理的機能を行うための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示す。また、いくつの代替実行例では、ブロックで言及された機能が順序を外れて発生することも可能であることに注目せねばならない。例えば、連続して図示されている２つのブロックは、実質的に同時に行われてもよく、またはそのブロックが時々該当する機能によって逆順に行われてもよい。
【００２１】
第１、第２などが多様な素子、構成要素を叙述するために使用されるが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために使用するものである。したがって、以下で言及される第１構成要素は本発明の技術的思想内で第２構成要であり得ることは勿論である。
【００２２】
本明細書で使用された用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型は文句で特に言及しない限り複数型も含む。明細書で使用される「含む（ｃｏｍｐｒｉｓｅｓ）」および／または「含む（ｃｏｍｐｒｉｓｉｎｇ）」は言及された構成要素、段階、動作および／または素子は一つ以上の他の構成要素、段階、動作および／または素子の存在または追加を排除しない。
【００２３】
他に定義されなければ、本明細書で使用されるすべての用語（技術および科学的用語を含む）は、本発明が属する技術分野で通常の知識を有する者が共通に理解できる意味として使用され得る。また一般に使用される辞典に定義されている用語は明白に特別に定義されていない限り理想的にまたは過度に解釈しない。
【００２４】
以下では添付する図面を参照して本発明の実施形態について詳細に説明する。
【００２５】
図１は、本発明の一実施形態によるシステムを説明するためのブロック図である。図２は、図１に図示するホストの例示的構成を説明するためのブロック図である。図３は、図１に図示するコントローラの例示的構成を説明するためのブロック図である。
【００２６】
図１を参照すると、本発明の一実施形態によるシステム１はホスト（ｈｏｓｔ、１００）と格納装置２００を含む。
【００２７】
格納装置２００はデータを格納するフラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ、２２０）と、フラッシュメモリ２２０を制御するコントローラ（ｃｏｎｔｒｏｌｌｅｒ、２１０）を含む。
【００２８】
コントローラ２１０はホスト１００及びフラッシュメモリ２２０に連結される。コントローラ２１０はホスト１００のコマンド（ｃｏｍｍａｎｄ）に応答してフラッシュメモリ２２０をアクセスするように構成される。例えば、コントローラ２１０はフラッシュメモリ２２０のリード（ｒｅａｄ）、ライト（ｗｒｉｔｅ）、削除（ｅｒａｓｅ）、またはバックグラウンド（ｂａｃｋｇｒｏｕｎｄ）動作を制御するように構成される。コントローラ２１０はフラッシュメモリ２２０とホスト１００との間にインターフェースを提供するように構成される。
【００２９】
コントローラ２１０はフラッシュメモリ２２０を制御するためのファームウェア（ｆｉｒｍｗａｒｅ）を駆動するように構成される。
【００３０】
フラッシュメモリ２２０は少なくとも一つのメモリセルを含む。フラッシュメモリ２２０は一つのメモリセルに多数のビットデータを格納するマルチレベルセル（ＭＬＣ、Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）フラッシュメモリである。フラッシュメモリ２２０は例えば、ＮＡＮＤフラッシュメモリまたはＮＯＲフラッシュメモリを含む。
【００３１】
一つのメモリセルには第１ビットデータと第２ビットデータがプログラムされる。例えば、第１ビットデータは下位ビット（ＬＳＢ、Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）データであり、第２ビットデータは上位ビット（ＭＳＢ、Ｍｏｓｔ  Ｓｉｇｎｉｒｉｃａｎｔ  Ｂｉｔ）データである。メモリセルはしきい電圧分布によって４個の状態（１１、０１、１０、１１）のうち何れか一つを有するようにプログラムされる。本発明の一実施形態によるシステム１では、説明の便宜上、一つのメモリセルが２個のビット値を有するものを説明したが、本発明がこれに限定されるものではなく、３個以上のビット値を有する場合ある。
【００３２】
メモリセルは一つのワードライン（ｗｏｒｄ  ｌｉｎｅ）を共有する下位ビットページ（ＬＳＢ  ｐａｇｅ）と上位ビットページ（ＭＳＢ  ｐａｇｅ）で構成される。フラッシュメモリ２２０はページ単位でライト（ｗｒｉｔｅ）、リード（ｒｅａｄ）動作などを行う。フラッシュメモリ２２０はメモリセルに下位ビットページを先にプログラムし、下位ビットページがプログラムされたメモリセルに上位ビットページをプログラムする。
【００３３】
図２を参照すると、例示的に、ホスト１００はホストプロセッサ（ｈｏｓｔ  ｐｒｏｃｅｓｓｏｒ、１１０）、インターフェースモジュール（ｉｎｔｅｒｆａｃｅ  ｍｏｄｕｌｅ、１２０）を含む。または、ホスト１００はＲＡＭ、ＲＯＭ、その他構成要素などをさらに含む。
【００３４】
ホストプロセッサ１１０はホスト１００の諸般の動作を制御する。ホストプロセッサ１１０はアプリケーション（ａｐｐｌｉｃａｔｉｏｎ）などの要請に応答し、格納装置２００にライト（ｗｒｉｔｅ）コマンド、リード（ｒｅａｄ）コマンド、削除（ｅｒａｓｅ）コマンドなどを伝送する。ホストプロセッサ１１０は格納装置２００にライト（ｗｒｉｔｅ）対象であるデータとシンク信号を伝送する。
【００３５】
インターフェースモジュール１２０は格納装置２００のホストインターフェース２１１と通信するための用途に使用される。ホスト１００は例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）プロトコル、ＭＭＣ（ｍｕｌｔｉｍｅｄｉａ  ｃａｒｄ）プロトコル、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）プロトコル、ＰＣＩ−Ｅ（ＰＣＩ−ｅｘｐｒｅｓｓ）プロトコル、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）プロトコル、Ｓｅｒｉａｌ−ＡＴＡプロトコル、Ｐａｒａｌｌｅｌ−ＡＴＡプロトコル、ＳＣＳＩ  （ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｍａｌｌ  ｉｎｔｅｒｆａｃｅ）プロトコル、ＥＳＤＩ（ｅｎｈａｎｃｅｄ  ｓｍａｌｌ  ｄｉｓｋ  ｉｎｔｅｒｆａｃｅ）プロトコル、またＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）プロトコルなどのような多様なインターフェースプロトコルのうち少なくとも一つにより外部（格納装置）と通信するように構成される。
【００３６】
図３を参照すると、例示的には、コントローラ２１０はプロセッサ（ｐｒｏｃｅｓｓｏｒ、２１３）、ホストインターフェース（ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ、２１１）、キャシーバッファ（ｃａｃｈｅ  ｂｕｆｆｅｒ、２１２）、メモリインターフェース（ｍｅｍｏｒｙ  ｉｎｔｅｒｆａｃｅ２１４）を含む。
【００３７】
ホストインターフェース２１１は、ホスト１００及びコントローラ２１０との間のデータ／コマンドなどの交換を行うためのプロトコルを含む。コントローラ２１０は例えば、ＵＳＢプロトコル、ＭＭＣプロトコル、ＰＣＩプロトコル、ＰＣＩ−Ｅプロトコル、ＡＴＡプロトコル、Ｓｅｒｉａｌ−ＡＴＡプロトコル、Ｐａｒａｌｌｅｌ−ＡＴＡプロトコル、ＳＣＳＩプロトコル、ＥＳＤＩプロトコル、及びＩＤＥプロトコルなどのような多様なインターフェースプロトコルのうち少なくとも一つを介して外部（ホスト）と通信するように構成される。
【００３８】
メモリインターフェース２１４はフラッシュメモリ２２０とインターフェーシングする。メモリインターフェース２１４は例えば、ＮＡＮＤインターフェースまたはＮＯＲインターフェースを含む。
【００３９】
キャシーバッファ２１２はプロセッサ１２０の動作メモリ、フラッシュメモリ２２０とホスト１００との間のキャッシュメモリ、フラッシュメモリ２２０とホスト１００との間のバッファメモリのうち少なくとも一つとして使用される。キャシーバッファ２１２はフラッシュメモリ２２０にライト（ｗｒｉｔｅ）するデータまたはフラッシュメモリ２２０からリード（ｒｅａｄ）されたデータを臨時的に格納する。キャシーバッファ２１２は以下で説明するページのシーケンスナンバー（ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）などを格納し得る。
【００４０】
プロセッサ２１３はコントローラ２１０の諸般の動作を制御する。
【００４１】
一方、図示していないが、コントローラ２１０は誤り訂正ブロックを追加して含むように構成される。誤り訂正ブロックは誤り訂正コード（ＥＣＣ）を利用してフラッシュメモリ２２０から読み込んだデータの誤りを検出し、訂正するように構成される。
【００４２】
以下では図４ないし図７を参照して本発明の一実施形態によるシステムの動作について説明する。図４ないし図７は、本発明の一実施形態によるシステムの動作を説明するための図である。
【００４３】
図４を参照すると、ホスト１００はファイルシステム（ｆｉｌｅ  ｓｙｓｔｅｍ、１３０）を含むソフトウェア階層を有し、ファイルシステム１３０はホストプロセッサ１１０によって駆動される。コントローラ２１０はフラッシュ変換階層（ＦＴＬ／ＢＵＦＦＥＲ、２１５）を含むソフトウェア階層を有し、フラッシュ変換階層２１５はコントローラ２１０によって駆動される。
【００４４】
ファイルシステム１３０はアプリケーションなどからライト（ｗｒｉｔｅ）要請を受け、ライト（ｗｒｉｔｅ）対象であるデータとセクターアドレスをフラッシュ変換階層２１５に伝送する。ファイルシステム１３０は多数のタスク（ｔａｓｋ、１０〜４０）をフラッシュ変換階層２１５に伝送する。ここで、タスクはホスト１００のコマンドに応じて、フラッシュメモリ２２０をアクセスする作業の単位を示す。フラッシュメモリ２２０にライト（ｗｒｉｔｅ）する多数のデータは少なくとも一つのタスクにグルーピング（ｇｒｏｕｐｉｎｇ）する。
【００４５】
フラッシュ変換階層２１５はファイルシステム１３０から伝送された多数のタスク（１０〜４０）をフラッシュメモリ２２０に伝送せず、後述するシンク信号が伝送されるときまでキャシーバッファ２１２などに臨時的に格納する。
【００４６】
図５を参照すると、ファイルシステム１３０はフラッシュ変換階層２１５にシンク信号（ｓｙｎｃ）を伝送する。シンク信号（ｓｙｎｃ）はキャシーバッファ２１２などに臨時的に格納された多数のタスク（１０〜４０）をフラッシュメモリ２２０に一時にプログラムするようにする機能を行う。
【００４７】
図６を参照すると、フラッシュ変換階層２１５はファイルシステム１３０から伝送されたシンク信号（Ｓｙｎｃ）により、ライト（ｗｒｉｔｅ）対象であるデータとページアドレスをフラッシュメモリ２２０に伝送する。
【００４８】
フラッシュ変換階層２１５はファイルシステム１３０から伝送された論理アドレスであるセクターアドレスを、フラッシュメモリ２２０の物理アドレスであるページアドレスに変換して伝送する。セクターアドレスとページアドレスとの間のマッピング情報はキャシーバッファ２１２またはフラッシュメモリ２２０などに格納される。
【００４９】
図７を参照すると、フラッシュ変換階層２１５は多数のタスク（１０〜４０）の実行を完了した後、すなわち、ライト（ｗｒｉｔｅ）対象である多数のデータがフラッシュメモリ２２０にすべてプログラムされた後、ファイルシステム１３０に完了信号（Ｓｙｎｃ  Ｃｏｍｐｌｅｔｅ）を伝送する。
【００５０】
本発明の一実施形態によるシステム１では、フラッシュメモリ２２０にデータをライト（ｗｒｉｔｅ）しながら、前述したように下位ビットページを先にプログラムし、下位ビットページがプログラムされたメモリセルに上位ビットページをプログラムする。
【００５１】
上位ビットページをプログラムする過程で、上位ビットページと対をなす（ｐａｉｒｅｄ）下位ビットページの状態変化が伴われるため、ＳＰＯ（Ｓｕｄｄｅｎ  Ｐｏｗｅｒ  Ｏｆｆ）などが発生する場合、すでにプログラムされた下位ビットページが損傷される。
【００５２】
これを解決するため、一般のフラッシュメモリ格納装置は、上位ビットページをプログラムする前に上位ビットページと対をなす下位ビットページをバックアップし、この後、上位ビットページをプログラムする。このようにすべての下位ビットページをバックアップする場合、フラッシュメモリ格納装置の性能が低下する。
【００５３】
本発明の一実施形態によるシステム１では、コントローラ２１０がホスト１００から伝送されるシンク信号を利用してトランザクション（ｔｒａｎｓａｃｔｉｏｎ）を決定する。トランザクションは多数のタスクを一時に実行する作業の単位を示す。前述したように、ホスト１００から伝送されるシンク信号に応じ、多数のタスクが一時に実行されるため、コントローラ２１０はホスト１００から伝送されるシンク信号を利用してトランザクションを決定する。
【００５４】
コントローラ２１０は、同じトランザクション内で下位ビットページと上位ビットページをプログラムする場合は、下位ビットページをバックアップしない。また、コントローラ２１０は、他のトランザクション内で下位ビットページと上位ビットページをプログラムする場合には、下位ビットページをバックアップする。
【００５５】
トランザクションの範囲を判断するため、コントローラ２１０は下位ビットページのシーケンスナンバー（ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）と基準シーケンスナンバーを比較する。
【００５６】
シーケンスナンバーはフラッシュメモリ２２０にプログラムされるページのメタデータ（ｍｅｔａ  ｄａｔａ）である。後述するように、シーケンスナンバーはフラッシュメモリ２２０にプログラムされるページに、第１チャンネル（Ｃｈ  ０）の第１ウェイ（ｗａｙ  ０）、第２チャンネル（Ｃｈ  １）の第１ウェイ（ｗａｙ  ０）、第１チャンネル（Ｃｈ  ０）の第２ウェイ（ｗａｙ  １）、第２チャンネル（Ｃｈ  １）の第２ウェイ（ｗａｙ  １）の順に割り当てられる。各ページのシーケンスナンバーはキャシーバッファ２１２またはフラッシュメモリ２２０に格納される。
【００５７】
基準シーケンスナンバーは例えば、以前トランザクション（ｐｒｅｖｉｏｕｓ  ｔｒａｎｓａｃｔｉｏｎ）内で最終プログラムされたページのシーケンスナンバー、すなわち、ラストシーケンスナンバー（ｌａｓｔ  ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）である。ラストシーケンスナンバーのデフォルト（ｄｅｆａｕｌｔ）値または初期値は０として格納される。
【００５８】
コントローラ２１０は、現在トランザクション内で上位ビットページをプログラムするとき、下位ビットページのシーケンスナンバーが基準シーケンスナンバーより大きい場合、下位ビットページと上位ビットページを同じトランザクション内でプログラムすると判断し、現在トランザクション内で下位ビットページをバックアップしない。コントローラ２１０は、逆に、下位ビットページのシーケンスナンバーが基準シーケンスナンバーより大きくない場合、下位ビットページと上位ビットページを他のトランザクション内でプログラムすると判断し、現在トランザクション内で下位ビットページをバックアップする。
【００５９】
本発明の一実施形態によるシステム１によれば、下位ビットページのバックアップを減少または最小化して格納装置の性能を向上させる。
【００６０】
再び、図１を参照すると、コントローラ２１０及びフラッシュメモリ２２０は一つの格納装置２００に集積される場合もある。例示的には、コントローラ２１０及びフラッシュメモリ２２０は一つの半導体装置に集積され、メモリカードを構成する。例えば、コントローラ２１０及びフラッシュメモリ２２０は一つの半導体装置に集積され、マルチメディアカード（ＭＭＣ、ＲＳ−ＭＭＣ、ＭＭＣｍｉｃｒｏ）、ＳＤカード（ＳＤ、ｍｉｎｉＳＤ、ｍｉｃｒｏＳＤ、ＳＤＨＣ）、ユニバーザルフラッシュ記憶装置（ＵＦＳ）、ＰＣカード（ＰＣＭＣＩＡ、ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ  ｍｅｍｏｒｙ  ｃａｒｄ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ａｓｓｏｃｉａｔｉｏｎ）、コンパックトフラッシュカード（ＣＦ）、スマートメディアカード（ＳＭ、ＳＭＣ）、メモリスティックなどのようなメモリカードとして構成される。
【００６１】
他の例として、コントローラ２１０及びフラッシュメモリ２２０は一つの半導体装置に集積され、ソリッドステートドライブ（ＳＳＤ、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を構成する。ソリッドステートドライブ（ＳＳＤ）は、半導体メモリにデータを格納するように構成される格納装置を含む。
【００６２】
一方、システム１はコンピュータ、ＵＭＰＣ  （Ｕｌｔｒａ  ＭｏｂｉｌｅＰＣ）、ワークステーション、ネットブック（ｎｅｔ−ｂｏｏｋ）、ＰＤＡ  （Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ポータブル（ｐｏｒｔａｂｌｅ）コンピュータ、ウェブタブレット（ｗｅｂ  ｔａｂｌｅｔ）、無線電話機（ｗｉｒｅｌｅｓｓ  ｐｈｏｎｅ）、モバイルフォン（ｍｏｂｉｌｅ  ｐｈｏｎｅ）、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、ｅ−ブック（ｅ−ｂｏｏｋ）、ＰＭＰ（ｐｏｒｔａｂｌｅ  ｍｕｌｔｉｍｅｄｉａ  ｐｌａｙｅｒ）、携帯用ゲーム機、ナビゲーション（ｎａｖｉｇａｔｉｏｎ）装置、ブラックボックス（ｂｌａｃｋ  ｂｏｘ）、デジタルカメラ（ｄｉｇｉｔａｌ  ｃａｍｅｒａ）、３次元テレビ（３−ｄｉｍｅｎｓｉｏｎａｌ  ｔｅｌｅｖｉｓｉｏｎ）、デジタルオーディオレコーダー（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｒｅｃｏｒｄｅｒ）、デジタルオーディオプレーヤー（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｐｌａｙｅｒ）、デジタル録画装置（ｄｉｇｉｔａｌ  ｐｉｃｔｕｒｅ  ｒｅｃｏｒｄｅｒ）、デジタル画像プレーヤー（ｄｉｇｉｔａｌ  ｐｉｃｔｕｒｅ  ｐｌａｙｅｒ）、デジタルビデオレコーダー（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｒｅｃｏｒｄｅｒ）、デジタルビデオプレーヤー（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｐｌａｙｅｒ）、情報を無線環境で送受信できる装置、ホームネットワークを構成する多様な電子装置のうち一つ、コンピュータネットワークを構成する多様な電子装置のうち一つ、テレマティックスネットワークを構成する多様な電子装置のうち一つ、ＲＦＩＤ装置、またはコンピュータシステムを構成する多様な構成要素のうち一つなどのように電子装置の多様な構成要素のうち一つとして提供される。
【００６３】
一方、例示的には、フラッシュメモリ２２０、格納装置２００、またはシステム１は多様な形態のパッケージで実装される。例えば、フラッシュメモリ２２０、格納装置２００、またはシステム１はＰａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ（ＰｏＰ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ  Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ  Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）などのような方式によりパッケージ化して実装される。
【００６４】
以下では図８を参照して本発明の一実施形態によるシステムの動作方法について説明する。図８は、本発明の一実施形態によるシステムの動作方法を説明するためのフローチャートである。
【００６５】
先に、コントローラ２１０はフラッシュメモリ２２０にプログラムするデータが上位ビットページであるかどうかを判断する（Ｓ６１０）。
【００６６】
次いで、コントローラ２１０は、フラッシュメモリ２２０にプログラムするデータが上位ビットページである場合、上位ビットページと対をなす（ｐａｉｒｅｄ）下位ビットページのシーケンスナンバーがラストシーケンスナンバー（ｌａｓｔ  ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）より大きいかどうかを判断する（Ｓ６２０）。
【００６７】
次いで、コントローラ２１０は、下位ビットページのシーケンスナンバーがラストシーケンスナンバーより大きくない場合、下位ビットページをバックアップする（Ｓ６３０）。一方、コントローラ２１０は、下位ビットページのシーケンスナンバーがラストシーケンスナンバーより大きい場合、下位ビットページをバックアップしない。
【００６８】
次いで、コントローラ２１０はフラッシュメモリ２２０に上位ビットページをプログラムする（Ｓ６４０）。一方、コントローラ２１０は、フラッシュメモリ２２０にプログラムするデータが下位ビットページである場合、フラッシュメモリ２２０に下位ビットページをプログラムする（Ｓ６５０）。前述したように、上位ビットページと対をなす（ｐａｉｒｅｄ）下位ビットページが先にプログラムされるのが一般的である。
【００６９】
次いで、コントローラ２１０は現在トランザクション（ｃｕｒｒｅｎｔ  ｔｒａｎｓａｃｔｉｏｎ）が終了するかどうかを判断する（Ｓ６６０）。
【００７０】
次いで、コントローラ２１０は、現在トランザクションが終了した場合、現在トランザクション内で最終プログラムしたページのシーケンスナンバーをラストシーケンスナンバーに更新して格納する（Ｓ６７０）。コントローラ２１０は現在トランザクションが終了しない場合、Ｓ６１０段階から繰り返す。
【００７１】
以下では図８の動作方法に従いプログラムされるフラッシュメモリについて説明する。図９ないし図１２は、図８の動作方法に従いプログラムされるフラッシュメモリを説明するための図である
図９を参照すると、マルチタスキング（ｍｕｌｔｉ−ｔａｓｋｉｎｇ）環境で、ホスト１００が第１アプリケーションに関するタスク（Ｔａｓｋ  Ａ）と第２アプリケーションに関するタスク（Ｔａｓｋ  Ｂ）を格納装置２００に要請する。第１アプリケーションに関するタスク（Ｔａｓｋ  Ａ）は第１タスク１０、第３タスク３０、第４タスク４０を含み、第２アプリケーションに関するタスク（Ｔａｓｋ  Ｂ）は、第２タスク２０、第５タスク５０、第６タスク６０、第７タスク７０を含む。
【００７２】
ここで、ホスト１００は一次的に第１タスク１０、第２タスク２０、第３タスク３０、第４タスク４０のデータを格納装置２００に伝送し、第１タスク１０、第２タスク２０、第３タスク３０、第４タスク４０が第１シンク信号（Ｓｙｎｃ  ０）に応じて第１トランザクションを成し、フラッシュメモリ２２０にプログラムされる。
【００７３】
図１０を参照すると、フラッシュメモリ２２０は下位ビットページと上位ビットページがプログラムされる第１ブロックと、下位ビットページがバックアップされる第２ブロックを含む。例えば、第１ブロックはユーザブロック（ｕｓｅｒ  ｂｌｏｃｋ）であり、第２ブロックはバックアップブロック（ｂａｃｋｕｐ  ｂｌｏｃｋ）である。フラッシュメモリ２２０の各ページのサイズは例えば８ＫＢｙｔｅである。
【００７４】
第１タスク１０、第２タスク２０、第３タスク３０、第４タスク４０が実行されることによって、フラッシュメモリ２２０の下位ビットページと上位ビットページがプログラムされる。フラッシュメモリ２２０にプログラムされたページにはシーケンスナンバーが割り当てられるが、第１チャンネル（Ｃｈ  ０）の第１ウェイ（ｗａｙ  ０）、第２チャンネル（Ｃｈ  １）の第１ウェイ（ｗａｙ  ０）、第１チャンネル（Ｃｈ  ０）の第２ウェイ（ｗａｙ  １）、第２チャンネル（Ｃｈ  １）の第２ウェイ（ｗａｙ  １）の順に割り当てられる。
【００７５】
ホスト１００で一次的にデータが伝送されたので、ラストシーケンスナンバー（ｌａｓｔ  ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）はデフォルト（ｄｅｆａｕｌｔ）値または初期値が０である。
【００７６】
図１０で、コントローラ２１０は第１トランザクション内でシーケンスナンバーが９、１０、１１、１２である上位ビットページをプログラムするが、これと対をなす下位ビットページのシーケンスナンバーが１、２、３、４であり、ラストシーケンスナンバーより大きい場合であるため、下位ビットページをバックアップブロック（ｂａｃｋｕｐ  ｂｌｏｃｋ）にバックアップしない。シーケンスナンバーが１、２、３、４である下位ビットページとシーケンスナンバーが９、１０、１１、１２である上位ビットページは同じ第１トランザクション内でプログラムするからである。
【００７７】
図１１を参照すると、ホスト１００は２次的に第５タスク５０、第６タスク６０、第７タスク７０のデータを格納装置２００に伝送し、第５タスク５０、第６タスク６０、第７タスク７０が第２シンク信号（Ｓｙｎｃ  １）に応じて第２トランザクションを成し、フラッシュメモリ２２０にプログラムされる。
【００７８】
図１２を参照すると、ラストシーケンスナンバーは以前トランザクション、すなわち第１トランザクションで最終プログラムした下位ビットページのシーケンスナンバーの１３に更新される。
【００７９】
図１２で、コントローラ２１０は第２トランザクション内でシーケンスナンバーが１７、１８、１９、２０、２５である上位ビットページをプログラムし、これと対をなす下位ビットページのシーケンスナンバーが５、６、７、８、１３であり、ラストシーケンスナンバーより大きくない場合であるため、下位ビットページをあらかじめバックアップブロックにバックアップする。シーケンスナンバーが５、６、７、８、１３である下位ビットページとシーケンスナンバーが１７、１８、１９、２０、２５である上位ビットページはそれぞれ第１トランザクションと第２トランザクション内でプログラムするからである。
【００８０】
一方、図１０を参照して説明したように、コントローラ２１０は第２トランザクション内でシーケンスナンバーが２６、２７、２８である上位ビットページをプログラムするが、これと対を成す下位ビットページはバックアップブロック（ｂａｃｋｕｐ  ｂｌｏｃｋ）にバックアップしない。
【００８１】
本発明の実施形態と関連して説明した方法またはアルゴリズムの段階は、プロセッサによって実行されるハードウェア、ソフトウェアモジュール、またはその２個の組合せにより直接実現される。ソフトウェアモジュールはＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスター、ハードディスク、着脱型ディスク、ＣＤ−ＲＯＭ、または当業界に知られた任意の他の形態のコンピュータで判読可能な記録媒体に格納し得る。例示的な記録媒体はプロセッサにカップリングされ、そのプロセッサは記録媒体から情報を判読し、記録媒体に情報を書込む。他の方法として、記録媒体はプロセッサと一体型である場合もある。プロセッサ及び格納媒体は注文型集積回路（ＡＳＩＣ）内に設けられ得る。ＡＳＩＣはユーザ端末機内に設けられ得る。他の方法として、プロセッサ及び格納媒体はユーザ端末機内に個別コンポーネントとして設けられ得る。
【００８２】
以上添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野で通常の知識を有する者は、本発明が、その技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施されることを理解できるであろう。したがって、上記述した実施形態は、すべての面で例示的なものであり、限定的なものではないと理解しなければならない。
【符号の説明】
【００８３】
１００    ホスト
１１０    ホストプロセッサ
１２０    インターフェースモジュール
２００    格納装置
２１０    コントローラ
２１１    ホストインターフェース
２１２    キャシーバッファ
２１３    プロセッサ
２１４    メモリインターフェース
２２０    フラッシュメモリ
【図１】
2014110057.tif 000003
【図２】
2014110057.tif 000004
【図３】
2014110057.tif 000005
【図４】
2014110057.tif 000006
【図５】
2014110057.tif 000007
【図６】
2014110057.tif 000008
【図７】
2014110057.tif 000009
【図８】
2014110057.tif 000010
【図９】
2014110057.tif 000011
【図１０】
2014110057.tif 000012
【図１１】
2014110057.tif 000013
【図１２】
2014110057.tif 000014