(57)【要約】【課題】コンピュータシステムを提供する。【解決手段】コンピュータシステムは、少なくとも一つのデータブロックを介して格納されるファイルデータと、ノードブロックを介して格納されるメタデータが格納された記憶装置、記憶装置に格納されたファイルデータとメタデータを管理するファイルシステムを含み、ノードブロックは、少なくとも一つのデータブロックを各々指す少なくとも一つのデータポインタと少なくとも一つのデータブロックのうち連続な物理アドレスを有するデータブロックをグループとして指すエクステントを含む。【選択図】      図５
2014071905.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのデータブロックを介して格納されるファイルデータと、ノードブロックを介して格納されるメタデータとが格納された記憶装置と、
前記記憶装置に格納された前記ファイルデータと前記メタデータとを管理するファイルシステムとを含み、
前記ノードブロックは、前記少なくとも一つのデータブロックを各々指す少なくとも一つのデータポインタと前記少なくとも一つのデータブロックのうち連続な物理アドレスを有するデータブロックをグループとして指すエクステントとを含むコンピュータシステム。
【請求項２】
前記エクステントは、前記ファイルデータ内で前記グループ化したデータブロックを介して格納されるデータのオフセット情報と、前記グループ化したデータブロックを指すブロックポインタと、前記グループ化したデータブロックの長さ情報とを含む請求項１に記載のコンピュータシステム。
【請求項３】
前記ノードブロックに含まれた前記エクステントの個数は予め定めたＮ（ここで、Ｎは前記データポインタの個数より小さい自然数）以下で管理される請求項１に記載のコンピュータシステム。
【請求項４】
前記Ｎは、前記データポインタの個数の半分以下である請求項３に記載のコンピュータシステム。
【請求項５】
前記ノードブロックは、前記データブロックを指すダイレクトノードブロックと、前記ダイレクトノードブロックを指すインダイレクトノードブロックと、前記ダイレクトノードブロック及び前記インダイレクトノードブロックを指すｉノードブロックとを含み、
前記エクステントは前記ｉノードブロックまたは前記ダイレクトノードブロックに含まれる請求項１に記載のコンピュータシステム。
【請求項６】
前記ファイルシステムは、前記記憶装置から前記ファイルデータを読み込む場合、前記データポインタと前記エクステントとのうち前記エクステントを先に参照して前記ファイルデータを読み込みする請求項１に記載のコンピュータシステム。
【請求項７】
ファイルデータを格納する第１データブロックを生成し、
前記第１データブロックと関連するノードブロックに、前記第１データブロックを指すデータポインタと前記第１データブロックと連続な物理アドレスを有するデータブロックをグループとして指すエクステントを生成することを含み、
前記ノードブロックに含まれた前記エクステントの個数は予め定めたＮ（ここで、Ｎは前記データポインタの個数より小さい自然数）以下で管理されるコンピュータシステムのデータ管理方法。
【請求項８】
前記エクステントを生成することは、
前記第１データブロックが第２データブロックと連続な物理アドレスを有する場合、
前記ノードブロックに含まれて前記第２データブロックを指すエクステントが前記第１データブロックと前記第２データブロックをグループとして指すようにすることを含む請求項７に記載のコンピュータシステムのデータ管理方法。
【請求項９】
前記エクステントを生成することは、
前記第１データブロックが第２データブロックと不連続な物理アドレスを有し、前記第２データブロックが第３データブロックと連続な物理アドレスを有する場合、
前記ノードブロックに含まれて前記第２データブロックを指す第１エクステントと、前記ノードブロックに含まれて前記第３データブロックを指す第２エクステントとをマージし、
前記第１データブロックを指すエクステントを新規生成することを含む請求項７に記載のコンピュータシステムのデータ管理方法。
【請求項１０】
前記エクステントを生成することは、
前記第１データブロックが第２データブロックと不連続な物理アドレスを有し、前記第２データブロックが第３データブロックと不連続な物理アドレスを有する場合、
前記ノードブロックに含まれて前記第２データブロックを指す第１エクステントと、前記ノードブロックに含まれて前記第３データブロックを指す第２エクステントとのうち長さ情報が小さいエクステントを削除し、
前記第１データブロックを指すエクステントを新規生成することを含む請求項７に記載のコンピュータシステムのデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム及びコンピュータシステムのデータ管理方法に関する。
【背景技術】
【０００２】
ファイルシステムが記憶装置にファイルを格納する際、ファイルデータとメタデータとを記憶装置に格納する。ファイルデータはユーザアプリケーションが格納しようとするファイルの内容を含み、メタデータはファイルの属性とファイルデータが格納されるブロックの位置などを含む。
【０００３】
一方、ファイルシステムが記憶装置からファイルを読み込む際は、格納されているメタデータを記憶装置から読み込んだ後、読み込んだメタデータに基づいてファイルデータを読み込む。したがって、メタデータとファイルデータとの関連性を効率よく構成する場合、記憶装置からファイルデータの読み込み時間を短縮できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開２００３−０１７７１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする技術的課題は、記憶装置内の格納空間を効率的に使用し、読み込み時間を短縮できるコンピュータシステムを提供することである。
本発明が解決しようとする他の技術的課題は、記憶装置内の格納空間を効率的に使用し、読み込み時間を短縮できるコンピュータシステムのデータ管理方法を提供することである。
【０００６】
本発明の技術的課題は、上述した技術的課題に制限されず、言及されていないまた他の技術的課題も、次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【０００７】
前記技術的課題を達成するための本発明の一実施形態によるコンピュータシステムは、少なくとも一つのデータブロックにより格納されるファイルデータと、ノードブロックを介して格納されるメタデータとが格納された記憶装置と、記憶装置に格納されたファイルデータとメタデータを管理するファイルシステムとを含み、ノードブロックは、少なくとも一つのデータブロックを各々指す少なくとも一つのデータポインタと少なくとも一つのデータブロックのうち連続な物理アドレスを有するデータブロックをグループとして指すエクステントを含む。
【０００８】
本発明のいくつかの実施形態で、前記エクステントは、前記ファイルデータ内で前記グループ化したデータブロックを介して格納されるデータのオフセット情報と、前記グループ化したデータブロックを指すブロックポインタと、前記グループ化したデータブロックの長さ情報とを含む。
【０００９】
本発明のいくつかの実施形態で、前記ノードブロックに含まれた前記エクステントの個数は予め定めたＮ（ここで、Ｎは前記データポインタの個数より小さい自然数）以下で管理される。この際、前記Ｎは前記データポインタの個数の半分以下であり得る。
【００１０】
本発明のいくつかの実施形態で、前記ノードブロックは、前記データブロックを指すダイレクトノードブロックと、前記ダイレクトノードブロックを指すインダイレクトノードブロックと、前記ダイレクトノードブロック及び前記インダイレクトノードブロックを指すｉノードブロックとを含み、前記エクステントは前記ｉノードブロックまたは前記ダイレクトノードブロックに含まれる。
【００１１】
本発明のいくつかの実施形態で、前記ファイルシステムは、前記記憶装置から前記ファイルデータを読み込む場合、前記データポインタと前記エクステントとのうち前記エクステントを先に参照して前記ファイルデータを読み込みできる。
【００１２】
本発明のいくつかの実施形態で、前記記憶装置はランダムアクセス（ｒａｎｄｏｍ  ａｃｃｅｓｓ）方式により書き込まれる第１領域と、順次アクセス（ｓｅｑｕｅｎｔｉａｌ  ａｃｃｅｓｓ）方式により書き込まれる第２領域を含み、前記少なくとも一つのデータブロックと前記ノードブロックは前記第２領域に格納され得る。この際、前記記憶装置で前記第１領域の物理アドレスは前記第２領域の物理アドレスより先行し得、前記第１領域には前記ノードブロックに対応するノード識別子（ＮＯＤＥ  ＩＤ）と、前記ノード識別子に対応する物理アドレスを含むノードアドレステーブルが格納され得る。
【００１３】
本発明のいくつかの実施形態で、前記記憶装置はＳＳＤ（Ｓｔａｔｉｃ  Ｓｏｌｉｄ  Ｄｉｓｋ）を含み得る。
【００１４】
前記他の技術的課題を達成するための本発明の一実施形態によるコンピュータシステムのデータ管理方法は、ファイルデータを格納する第１データブロックを生成し、第１データブロックと関連するノードブロックに、第１データブロックを指すデータポインタと第１データブロックと連続な物理アドレスを有するデータブロックをグループとして指すエクステントを生成することを含み、ノードブロックに含まれたエクステントの個数は予め定めたＮ（ここで、Ｎはデータポインタの個数より小さい自然数）以下で管理される。
【００１５】
本発明のいくつかの実施形態で、前記エクステントを生成することは、前記第１データブロックが第２データブロックと連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第２データブロックを指すエクステントが前記第１データブロックと前記第２データブロックをグループとして指すようにすることを含む。
【００１６】
本発明のいくつかの実施形態で、前記エクステントを生成することは、前記第１データブロックが第２データブロックと不連続な物理アドレスを有し、前記第２データブロックが第３データブロックと連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第２データブロックを指す第１エクステントと、前記ノードブロックに含まれて前記第３データブロックを指す第２エクステントとをマージし、前記第１データブロックを指すエクステントを新規生成することを含む。
【００１７】
本発明のいくつかの実施形態で、前記エクステントを生成することは、前記第１データブロックが第２データブロックと不連続な物理アドレスを有し、前記第２データブロックが第３データブロックと不連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第２データブロックを指す第１エクステントと、前記ノードブロックに含まれて前記第３データブロックを指す第２エクステントとのうち長さ情報が小さいエクステントを削除し、前記第１データブロックを指すエクステントを新規生成することを含む。
【００１８】
本発明のいくつかの実施形態で、前記Ｎは前記データポインタの個数の半分以下であり得る。
【００１９】
その他実施形態の具体的な内容は詳細な説明及び図面に含まれている。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態によるコンピュータシステムを説明するためのブロック図。
【図２】図１のホストを説明するためのブロック図。
【図３】図１の記憶装置を説明するためのブロック図。
【図４】図１の記憶装置に格納されるファイルの構造を説明するための図。
【図５】図４のダイレクトノードブロックの一例を図示する図。
【図６】図１の記憶装置を説明するためのブロック図。
【図７】ノードアドレステーブルを説明するための図。
【図８】本発明の一実施形態によるコンピュータシステムのデータ読み込み方法を説明するための順序図。
【図９】本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための順序図。
【図１０】本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための図。
【図１１】図６の記憶装置の他の構成例を説明するためのブロック図。
【図１２】図６の記憶装置の他の構成例を説明するためのブロック図。
【図１３】図６の記憶装置の他の構成例を説明するためのブロック図。
【図１４】本発明のいくつかの実施形態によるコンピュータシステムの具体的な一例を説明するためのブロック図。
【図１５】本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。
【図１６】本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。
【図１７】本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。
【発明を実施するための形態】
【００２１】
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものであり、本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範囲によってのみ定義される。明細書全体にかけて同一参照符号は同一構成要素を指称し、「および／または」は、言及されたアイテムの各々および一つ以上のすべての組合せを含む。
【００２２】
一つの素子（ｅｌｅｍｅｎｔｓ）が他の素子と「接続された（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」または「カップリングされた（ｃｏｕｐｌｅｄ  ｔｏ）」と指称されるものは、他の素子と直接連結またはカップリングされた場合または中間に他の素子を介在する場合をすべて含む。反面、一つの素子が他の素子と「直接接続された（ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ  ｔｏ）」または「直接カップリングされた（ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ  ｔｏ）」と指称されるものは中間に他の素子を介在しないことを示す。
【００２３】
第１、第２などが多様な素子、構成要素を叙述するために使用されるが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために使用するものである。したがって、以下で言及される第１構成要素または第１セクションは本発明の技術的思想内で第２素子、第２構成要素または第２セクションであり得ることは勿論である。
【００２４】
本明細書で使用された用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型は文句で特に言及しない限り複数型も含む。明細書で使用される「含む（ｃｏｍｐｒｉｓｅｓ）」および／または「含む（ｃｏｍｐｒｉｓｉｎｇ）」は言及された構成要素、段階、動作および／または素子は一つ以上の他の構成要素、段階、動作および／または素子の存在または追加を排除しない。
【００２５】
他に定義されなければ、本明細書で使用されるすべての用語（技術及び科学的用語を含む）は、本発明が属する技術分野で通常の知識を有する者に共通に理解できる意味で使用される。また一般的に使用される辞書に定義されている用語は特別に定義して明らかにしない限り理想的にまたは過度に解釈されない。
【００２６】
図１は、本発明の一実施形態によるコンピュータシステムを説明するためのブロック図である。図２は、図１のホストを説明するためのブロック図である。図３は、図１の記憶装置を説明するためのブロック図である。図４は、図１の記憶装置に格納されるファイルの構造を説明するための図である。図５は、図４のダイレクトノードブロックの一例を図示する図である。図６は、図１の記憶装置を説明するためのブロック図である。図７は、ノードアドレステーブルを説明するための図である。
【００２７】
先ず、図１を参照すると、本発明の一実施形態によるコンピュータシステム１はホスト１０と記憶装置２０とを含む。
【００２８】
ホスト１０と記憶装置２０とは特定のプロトコルを利用して通信する。例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）プロトコル、ＭＭＣ（ｍｕｌｔｉｍｅｄｉａ  ｃａｒｄ）プロトコル、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）プロトコル、ＰＣＩ−Ｅ（ＰＣＩ−ｅｘｐｒｅｓｓ）プロトコル、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）プロトコル、Ｓｅｒｉａｌ−ＡＴＡプロトコル、Ｐａｒａｌｌｅｌ−ＡＴＡプロトコル、ＳＣＳＩ  （ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｍａｌｌ  ｉｎｔｅｒｆａｃｅ）プロトコル、ＥＳＤＩ（ｅｎｈａｎｃｅｄ  ｓｍａｌｌ  ｄｉｓｋ  ｉｎｔｅｒｆａｃｅ）プロトコル、またＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）プロトコルなどのような多様なインターフェースプロトコルのうち少なくとも一つにより通信できるが、これに限定されるものではない。
【００２９】
ホスト１０は記憶装置２０をコントロールする。例えば、ホスト１０は記憶装置２０にデータを書き込んだり、記憶装置２０からデータを読み込んだりする。
【００３０】
図２を参照すると、このようなホスト１０はユーザスペース（ｕｓｅｒ  ｓｐａｃｅ）１１とカーネルスペース（ｋｅｒｎｅｌ  ｓｐａｃｅ）１３とを含む。
【００３１】
ユーザスペース１１はユーザアプリケーション（ｕｓｅｒ  ａｐｐｌｉｃａｔｉｏｎ）１２が実行される領域であり、カーネルスペース１３はカーネル実行のために制限的に保障する（ｒｅｓｔｒｉｃｔｉｖｅｌｙ  ｒｅｓｅｒｖｅｄ）領域である。ユーザスペース１１はカーネルスペース１３にアクセスするため、システムコール（ｓｙｓｔｅｍ  ｃａｌｌ）を利用する。
【００３２】
カーネルスペース１３は仮想ファイルシステム１４、ファイルシステム１６、装置ドライバ１８などを含む。ここで、ファイルシステム１６は一つ以上である。一方、本発明のいくつかの実施形態でコンピュータシステム１はＦ２ＦＳファイルシステムを含む。このようなＦ２ＦＳファイルシステムについては後述する。
【００３３】
仮想ファイルシステム１４は一つ以上のファイルシステム１６が互いに相互動作できるようにする。仮想ファイルシステム１４は互いに異なるメディアの互いに異なるファイルシステム１６に対して読み込み／書き込み作業をするため、標準化システムコールを使用できるようにする。したがって、例えば、ｏｐｅｎ（）、ｒｅａｄ（）、ｗｒｉｔｅ（）のようなシステムコールは、ファイルシステム１６の種類に関係なく使用できる。すなわち、仮想ファイルシステム１４はユーザスペース１１とファイルシステム１６との間に存在する抽象化階層である。
【００３４】
装置ドライバ１８はハードウェアとユーザアプリケーション（またはオペレーティングシステム）の間のインターフェースを担当する。装置ドライバ１８はハードウェアが特定のオペレーティングシステム下で正常に動作するために必要なプログラムである。
【００３５】
以下では、Ｆ２ＦＳファイルシステムが記憶装置２０をどう制御するのかについて説明する。しかし、本実施形態によるファイルシステム１６がこれに制限されるものではなく、ファイルシステム１６の種類はいくらでも変形できる。
【００３６】
記憶装置２０はＳＳＤ（Ｓｔａｔｉｃ  Ｓｏｌｉｄ  Ｄｉｓｋ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ｅＭＭＣのような各種カードストレージ、データサーバなどがあるが、これに限定されない。
【００３７】
記憶装置２０は図３に図示するように構成される。セグメント（ＳＥＧＭＥＮＴ）５３は多数のブロック（ＢＬＫ）５１を含み、セクション（ＳＥＣＴＩＯＮ）５５は多数のセグメント５３を含み、ゾーン（ＺＯＮＥ）５７は多数のセクション５５を含む。例えば、ブロック５１は４Ｋｂｙｔｅであり、セグメント５３は５１２個のブロック５１を含み、２Ｍ  ｂｙｔｅである。このような構成は、記憶装置２０のフォーマット（ｆｏｒｍａｔ）時点で決定されるが、これに限定されるものではない。セクション５５とゾーン５７のサイズはフォーマット時点で修正される場合もある。Ｆ２ＦＳファイルシステムはすべてのデータを４Ｋｂｙｔｅのページ単位で読み込み／書き込みする。すなわち、ブロック５１に一つのページが格納され、セグメント５３に多数のページが格納される。
【００３８】
一方、記憶装置２０に格納されるファイルは図４に図示するように、インデクス構造（ｉｎｄｅｘｉｎｇ  ｓｔｒｕｃｔｕｒｅ）を有する。一つのファイルはユーザアプリケーション（図２の１２を参照）が格納しようとするファイルの内容を含むファイルデータと、ファイルの属性とファイルデータが格納されるブロックの位置などを含むメタデータを含む。ここで、データブロック７０はファイルデータを格納する部分であり、ノードブロック８０，８１〜８８，９１〜９５はメタデータを格納する部分である。
【００３９】
ノードブロック８０，８１〜８８，９１〜９５はダイレクトノードブロック（ｄｉｒｅｃｔ  ｎｏｄｅ  ｂｌｏｃｋ）８１〜８８、インダイレクトノードブロック（ｉｎｄｉｒｅｃｔ  ｎｏｄｅ  ｂｌｏｃｋ）９１〜９５、ｉノードブロック（ｉｎｏｄｅ  ｂｌｏｃｋ）８０を含む。
【００４０】
ダイレクトノードブロック８１〜８８は、データブロック７０を直接指すデータポインタ（ｄａｔａ  ｐｏｉｎｔｅｒ）と連続な物理アドレスを有するデータブロック７０をグループとして指すエクステント（ｅｘｔｅｎｔ）を含む。これについては図５を参照して以下で詳細に説明する。
【００４１】
図５を参照すると、ダイレクトノードブロック８１はデータブロック７０各々を指すデータポインタ８１−１と、連続な物理アドレスを有するデータブロック７０−２，７０−３をグループとして示す指すエクステント８１−２を含む。例えば、ファイルデータが図示するようにＡＢＣＤＥＦと仮定すると、データポインタ８１−１はＡＢＣＤＥＦを格納している各々のデータブロック７０を示し、エクステント８１−２はＢＣＤを格納している連続な物理アドレスを有するデータブロック７０−２と、ＥＦを格納している連続な物理アドレスを有するデータブロック７０−３を指す。
【００４２】
一方、各エクステント８１−２は図示するように、グループ化したデータブロック７０−２，７０−３を介して格納されるデータのファイルデータ内でオフセット情報、グループ化したデータブロック７０−２，７０−３を指すブロックポインタと、グループ化したデータブロック７０−２，７０−３の長さ情報を含む。前述した例で、グループ化したデータブロック７０−２を指すエクステント８１−２のオフセット情報として２が格納され（ＡＢＣＤＥＦでＢはオフセットが２である）、ブロックポインタはＢを格納しているデータブロック７０−２を指し、長さ情報として３が格納される。また、グループ化したデータブロック７０−３を指すエクステント８１−２のオフセット情報として５が格納され、ブロックポインタはＥを格納しているデータブロック７０−３を指し、長さ情報としては２が格納される。
【００４３】
ここで、データポインタ８１−１の個数はダイレクトノードブロック８１が指すデータブロック７０の個数と同一であり得るが、エクステント８１−２の個数は予め定めたＮ（ここでＮは自然数）より小さい場合もある。本発明のいくつかの実施形態で、Ｎはダイレクトノードブロック８１が指すデータブロック７０の個数より小さい場合もある。具体的には、Ｎはダイレクトノードブロック８１が指すデータブロック７０の個数またはデータポインタ８１−１の個数の半分以下であり得るが、本発明がこれに制限されるものではない。
【００４４】
本実施形態によるコンピュータシステム１は、このようにダイレクトノードブロック８１内にデータポインタ８１−１とエクステント８１−２を共に含め、エクステント８１−２の個数をＮ以下で管理することによってデータ処理性能を向上させる。これに関するさらに詳細な説明は後述する。
【００４５】
再び図４を参照すると、インダイレクトノードブロック９１〜９５はデータブロック７０ではない、他のダイレクトノードブロック８３〜８８（すなわち、下位のノードブロック）を指すポインタを含む。インダイレクトノードブロック９１〜９５は例えば、第１インダイレクトノードブロック（９１〜９４）、第２インダイレクトノードブロック９５などを含む。第１インダイレクトノードブロック（９１〜９４）はダイレクトノードブロック８３〜８８を指す第１ノードポインタを含む。第２インダイレクトノードブロック９５は第１インダイレクトノードブロック９３，９４を指す第２ノードポインタを含む。
【００４６】
ｉノードブロック８０はデータブロック７０を直接指すデータポインタ、ダイレクトノードブロック８１，８２を指す第１ノードポインタ、第１インダイレクトノードブロック９１，９２を指す第２ノードポインタ、第２インダイレクトノードブロック９５を指す第３ノードポインタ、連続な物理アドレスを有するデータブロック７０をグループとして指すエクステントのうち少なくとも一つを含む。ここで、ｉノードブロック８０が含むエクステントに関する説明は前述したダイレクトノードブロック８１に含まれたエクステントに関する説明と同じであるため、重複する説明は省略する。
【００４７】
ここで、一つのファイルは例えば、最大３Ｔｂｙｔｅであり、このような大容量のファイルは次のようなインデックス構造を有する。例えば、ｉノードブロック８０内のデータポインタは９９４個であり、９９４個のデータポインタ各々は９９４個のデータブロック７０各々を指す。第１ノードポインタは２個であり、２個の第１ノードポインタ各々は２個のダイレクトノードブロック８１，８２を指す。第２ノードポインタは２個であり、２個の第２ノードポインタ各々は２個の第１インダイレクトノードブロック９１，９２を指す。第３ノードポインタは１個であり、第２インダイレクトノードブロック９５を指す。
【００４８】
また、ファイルごとにｉノードメタデータを含むｉノードページが存在する。
【００４９】
一方、図６のように、本発明の一実施形態によるコンピュータシステム１において、記憶装置２０は第１領域Ｉと第２領域ＩＩとに分けられる。ファイルシステム１６はフォーマットする際、記憶装置２０を第１領域Ｉと第２領域ＩＩとに分け得るが、これに限定されるものではない。第１領域Ｉはシステム全体により管理する各種情報が格納される領域であり、例えば、現在割り当てられたファイル数、有効なページ数、位置などの情報を含む。第２領域ＩＩは実際ユーザが使用している各種ディレクトリ情報、データ、ファイル情報などを格納する空間である。
【００５０】
また、第１領域Ｉは記憶装置２０の前部分に格納され、第２領域ＩＩは記憶装置２０の後部分に格納される。ここで、前部分は後部分より物理アドレス（ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ）を基準に前にあることを意味する。
【００５１】
具体的には、第１領域Ｉはスーパーブロック６１，６２、チェックポイント領域（ＣｈｅｃｋＰｏｉｎｔ  ａｒｅａ、ＣＰ）６３、セグメント情報テーブル（Ｓｅｇｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ、ＳＩＴ）６４、ノードアドレステーブル（Ｎｏｄｅ  Ａｄｄｒｅｓｓ  Ｔａｂｌｅ、ＮＡＴ）６５、セグメント要約領域（Ｓｅｇｍｅｎｔ  Ｓｕｍｍａｒｙ  Ａｒｅａ、ＳＳＡ）６６などを含む。
【００５２】
先ず、スーパーブロック６１，６２には、ファイルシステム１６のデフォルト情報が格納される。例えば、ブロック５１のサイズ、ブロック５１の個数、ファイルシステム１６の状態フラグ（ｃｌｅａｎ、ｓｔａｂｌｅ、ａｃｔｉｖｅ、ｌｏｇｇｉｎｇ、ｕｎｋｎｏｗｎ）などが格納される。図示するように、スーパーブロック６１，６２は２個であり、各々には同一な内容が格納される。したがって、二つのうち何れか一つに問題が発生しても、他の一つを利用することができる。
【００５３】
チェックポイント領域６３はチェックポイントが格納される。チェックポイントは論理割り込みであって、このような割り込み点までの状態が完全に保存される。コンピュータシステムの動作中に事故（例えば、パワーオフ（ｓｕｄｄｅｎ  ｐｏｗｅｒ  ｏｆｆ））が発生すると、ファイルシステム１６は保存されたチェックポイントを利用してデータを復旧できる。このようなチェックポイントの生成時点は、例えば、周期的に生成、システムの停止（Ｓｙｓｔｅｍ  ｓｈｕｔｄｏｗｎ）時点などであるが、これに限定されるものではない。
【００５４】
ノードアドレステーブル６５は図７に図示するように、ノード各々に対応する多数のノード識別子（ＮＯＤＥ  ＩＤ）と、多数のノード識別子各々に対応する多数の物理アドレスを含む。例えば、ノード識別子Ｎ０に対応するノードブロックは物理アドレスａに対応し、ノード識別子Ｎ１に対応するノードブロックは物理アドレスｂに対応し、ノード識別子Ｎ２に対応するノードブロックは物理アドレスｃに対応する。すべてのノード（ｉノード、ダイレクトノード、インダイレクトノードなど）は各々固有のノード識別子を有する。言い換えると、すべてのノード（ｉノード、ダイレクトノード、インダイレクトノードなど）はノードアドレステーブル６５から固有のノード識別子を割り当てられる。ノードアドレステーブル６５はｉノードのノード識別子、ダイレクトノードのノード識別子及びインダイレクトノードのノード識別子などを格納する。各ノード識別子に対応する各物理アドレスはアップデートされる。
【００５５】
セグメント情報テーブル６４は各セグメントの有効なページ数と、多数のページのビットマップを含む。ビットマップは各ページが有効であるかどうかを０または１で示すものを意味する。セグメント情報テーブル６４はクリーニング（ｃｌｅａｎｉｎｇ）作業（またはガービッジコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ））で使用される。特にビットマップはクリーニング作業を行う際、不要な読み込み要請を減らし、アダプティブデータロギン（ａｄａｐｔｉｖｅ  ｄａｔａ  ｌｏｇｇｉｎｇ）の際にブロック割り当てるとき利用される。
【００５６】
セグメント要約領域６６は第２領域ＩＩの各セグメントの要約情報を集めて置く領域である。具体的には、セグメント要約領域６６は第２領域ＩＩの各セグメントの多数のブロックが属するノードの情報を記述する。セグメント要約領域６６はクリーニング（ｃｌｅａｎｉｎｇ）作業（またはガービッジコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ））で使用される。詳しく説明すると、ノードブロック８０，８１〜８８，９１〜９５はデータブロック７０または下位のノードブロック（例えば、ダイレクトノードブロックなど）の位置を確認するため、ノード識別子リストまたはアドレスを有している。これに対し、セグメント要約領域６６はデータブロック７０または下位のノードブロック８０，８１〜８８，９１〜９５が上位のノードブロック８０，８１〜８８，９１〜９５の位置を確認できるインデックスを提供する。セグメント要約領域６６は多数のセグメント要約ブロックを含む。一つのセグメント要約ブロックは、第２領域ＩＩに位置する一つのセグメントに対する情報を有している。また、セグメント要約ブロックは多数の要約情報で構成されており、一つの要約情報は一つのデータブロックまたは一つのノードブロックに対応する。
【００５７】
第２領域ＩＩは互いに分離されたデータセグメント（ｄａｔａ  ｓｅｇｍｅｎｔ）ＤＳ０，ＤＳ１とノードセグメント（ｎｏｄｅ  ｓｅｇｍｅｎｔ）ＮＳ０，ＮＳ１を含む。多数のデータはデータセグメントＤＳ０，ＤＳ１に格納され、多数のノードはノードセグメントＮＳ０，ＮＳ１に格納される。データとノードが分離される領域が互いに異なると、効率的にセグメントを管理でき、データを読み込む際により効果的に短時間内に読み込みできる。
【００５８】
一方、第２領域ＩＩは順次アクセス（ｓｅｑｕｅｎｔｉａｌ  ａｃｅｓｓ）方式により書き込まれる領域であり、第１領域Ｉはランダムアクセス（ｒａｎｄｏｍ  ａｃｅｓｓ）方式により書き込まれる領域である。第２領域ＩＩは記憶装置２０の後部分に格納され、第１領域Ｉは記憶装置２０の前部分に格納される。ここで、前部分は後部分より物理アドレス（ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ）を基準に前にあることを意味する。
【００５９】
記憶装置２０が例えば、ＳＳＤ（Ｓｔａｔｉｃ  Ｓｏｌｉｄ  Ｄｉｓｋ）である場合、ＳＳＤ内部にバッファ（ｂｕｆｆｅｒ）がある。バッファは例えば、読み込み／書き込み速度が速いＳＬＣ（Ｓｉｎｇｌｅ  Ｌａｙｅｒ  Ｃｅｌｌ）メモリである。したがって、このようなバッファは限定された空間のランダムアクセス方式の書き込み速度を速くすることができる。
【００６０】
図面では、第１領域Ｉはスーパーブロック６１，６２、チェックポイント領域６２、セグメント情報テーブル６４、ノードアドレステーブル６５、セグメント要約領域６６の順序になっているが、これに限定されるものではない。例えば、セグメント情報テーブル６４とノードアドレステーブル６５の位置が変わってもよく、ノードアドレステーブル６５とセグメント要約領域６６の位置が変わってもよい。
【００６１】
次の図８ないし図１０を参照して本発明の一実施形態によるコンピュータシステムのデータ管理方法について説明する。
【００６２】
図８は、本発明の一実施形態によるコンピュータシステムのデータ読み込み方法を説明するための順序図である。
【００６３】
先に、図８を参照して本発明の一実施形態によるコンピュータシステムのデータ読み込み方法について説明する。
【００６４】
図８を参照すると、ファイルの読み込み要請が提供される（Ｓ１００）。例えば、仮想ファイルシステム（図２の１４を参照）またはファイルシステム（図２の１６を参照）はユーザアプリケーション（図２の１２を参照）からファイルの読み込み要請を受ける。
【００６５】
次の図８を参照すると、ファイルデータを読み込むためにエクステントを参照できるかを確認する（Ｓ１１０）。仮に、参照できるエクステントがない場合、データポインタを利用してファイルデータを読み込む（Ｓ１２０）。しかし、参照できるエクステントがある場合、エクステントを利用してファイルデータを読み込む（Ｓ１３０）。また、データポインタまたはエクステントを利用して読み込んだデータがファイルデータの終わりであるかを確認する（Ｓ１４０）。仮に、ファイルデータの終わりでなければ、前記Ｓ１１０〜Ｓ１３０を繰り返し、ファイルデータの終わりであれば読み込み動作を終了する。
【００６６】
以下では、説明を深めるため、図５に図示した例を参照して本発明の一実施形態によるコンピュータシステム１のデータ読み込み方法についてさらに詳しく説明する。
【００６７】
先ず、図５の例において、ファイルデータＡはこれを参照するエクステント８１−２が存在しない（Ｓ１１０）。したがって、ファイルデータＡはデータポインタ８１−１を参照して読み込みする（Ｓ１２０）。まだファイルデータがすべて読み込みされていないため、読み込み動作を継続して行う（Ｓ１３０）。
【００６８】
次に、ファイルデータＢはこれを参照するエクステント８１−２が存在する（Ｓ１１０）。したがって、ファイルデータＢを、エクステント８１−２を参照して読み込む（Ｓ１３０）。この際、ファイルデータＢを参照するエクステント８１−２を利用してファイルデータを読み込む場合、一度にファイルデータＢＣＤを読み込みできる。まだすべてのファイルデータを読み込んでいないため、読み込み動作を継続して行う（Ｓ１３０）。
【００６９】
次に、ファイルデータＥもこれを参照するエクステント８１−２が存在する（Ｓ１１０）。したがって、ファイルデータＥを、エクステント８１−２を参照して読み込む（Ｓ１３０）。この際、ファイルデータＥを参照するエクステント８１−２を利用してファイルデータを読み込む場合、一度にファイルデータＥＦを読み込みできる。この段階ではすべてのファイルデータを読み込んだので読み込み動作を終了する（Ｓ１３０）。
【００７０】
このように、本実施形態によるコンピュータシステム１は、ダイレクトノードブロック８１またはｉノードブロック８０内にデータポインタ８１−１と共にエクステント８１−２を含めることによって、データポインタ８１−１のみを利用してデータを読み込む場合に比べてデータ読み込み時間を短縮できる長所がある。ここで、一つのエクステント８１−２が指すファイルデータの量が多くなるほど（すなわち、データブロック７０の個数が多くなるほど）データ読み込みに必要な時間はさらに短くなる。
【００７１】
一方、図５に図示したものとは異なって、記憶装置２０に格納されたファイルデータをすべて物理的に不連続なアドレスを有するデータブロック（例えば、７０−１）に分散して格納すると、最悪の場合データポインタ８１−１の個数とエクステント８１−２の個数がすべてデータノード７０の個数と同一になる。この場合は、追加して含まれるエクステント８１−２により格納空間が浪費される恐れがある。
【００７２】
したがって、本実施形態によるコンピュータシステム１はエクステント８１−２の個数を予め定めたＮ以下で管理する。このような場合、エクステント８１−２を利用した読み込み動作により、データ読み込み時間を短縮すると共に格納空間の浪費も防ぐ。
【００７３】
以下では、図９及び図１０を参照して本発明の一実施形態によるコンピュータシステムのデータ書き込み方法について説明する。
【００７４】
図９は、本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための順序図である。図１０は、本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための図である。
【００７５】
図９を参照すると、新たなファイルデータをデータブロックに書き込む（Ｓ２００）。ここでは説明の便宜上、前述したＡＢＣＤＥＦから成るファイルデータ（図５を参照）にファイルデータＧを追加して書き込むことを例にあげて説明する。このようにファイルデータＧを追加すると図１０に図示するように新たなデータブロック７０−４が割り当てられ、これを指すデータポインタ８１−１が生成される。
【００７６】
再び図９を参照すると、新たに生成されたデータブロックを指す新規エクステントがログエクステント（ｌｏｇ  ｅｘｔｅｎｔ）とマージ（ｍｅｒｇｅ）できるかを判断する（Ｓ２１０）。判断の結果、マージできる場合、新規エクステントをログエクステントにマージする（Ｓ２２０）。具体的には図１０を参照すると、ここでログエクステント８１−２ｂは最も最近追加されたファイルデータを指すエクステントを意味する。したがって、図１０の例では新規エクステント８１−２ｃがログエクステント８１−２ｂにマージできるかを判断する。仮に、データブロック７０−４の物理アドレスがデータブロック７０−３に連続して配置されていれば、新規エクステント８１−２ｃはログエクステント８１−２ｂにマージできる。したがって、この場合、新規エクステント８１−２ｃをログエクステント８１−２ｂにマージする。二つのエクステント（８１−２ｂ、８１−２ｃ）がマージすると、ログエクステント８１−２ｂの長さ情報（ｌｅｎｇｔｈ）は３に増えるようになり、ノードブロック８１内の全体エクステントの個数はファイルデータＧ入力前と同じく２個が維持される。
【００７７】
再び図９を参照すると、判断結果、新規エクステントがログエクステントとマージできない場合、ログエクステントと他のエクステントがマージできるかを判断する（Ｓ２３０）。判断結果、ログエクステントと他のエクステントがマージできる場合、ログエクステントと他のエクステントをマージする（Ｓ２４０）。そして、新規エクステントをログエクステントとして割り当てる（Ｓ２６０）。
【００７８】
具体的には、図１０の例において、データブロック７０−４の物理アドレスがデータブロック７０−３に連続して配置されておらず、新規エクステント８１−２ｃをログエクステント８１−２ｂにマージできない場合、ログエクステント８１−２ｂと他のエクステントドゥル８１−２ａがマージできるかを判断する。ファイルデータは持続して更新されるため、ファイルデータを格納するデータブロック７０−２，７０−３の物理アドレスは持続して変更される。したがって、最初にエクステント８１−２が生成されたときはマージできなかったが、このようなデータ更新によって時間が経過した後、ログエクステント８１−２ｂとマージできるエクステント８１−２が存在し得る。本例では、ファイルデータＢＣＤが格納されたデータブロック７０−２の物理アドレスと、ファイルデータＥＦが格納されたデータブロック７０−３の物理アドレスを比較してログエクステント８１−２ｂと既存エクステント８１−２ａがマージできるかを比較する。比較結果、仮にマージできる場合、ログエクステント８１−２ｂを既存エクステント８１−２ａにマージする。その結果、既存エクステント８１−２ａの長さ情報は５に増える。この後、新規エクステント８１−２ｃをログエクステント８１−２ｂとして割り当てる。このような場合、全体エクステントの個数はファイルデータＧ入力前と同じく２個が維持される。
【００７９】
再び図９を参照すると、判断の結果、ログエクステントと他のエクステントがマージできる場合、ノードブロックに含まれた総エクステントの個数が予め定めたＮより小さいかを判断する（Ｓ２５０）。その結果、Ｎより小さい場合、新規エクステントをログエクステントとして割り当てる（Ｓ２６０）。しかし、判断の結果、Ｎ以上の場合、最も小さい長さ情報を有するエクステントを削除し（Ｓ２７０）、新規エクステントをログエクステントとして割り当てる（Ｓ２６０）。
【００８０】
すなわち、本実施形態では図１０に図示する新規エクステント８１−２ｃが追加されることによってノードブロック８１に含まれるエクステント８１−２の総個数が予め定めたＮ以下の場合、新規エクステント８１−２ｃをログエクステント８１−２ｂとして割り当てる。しかし、新規エクステント８１−２ｃが追加されることによってノードブロック８１に含まれるエクステント８１−２の総数が予め定めたＮを越える場合、最も小さい長さ情報を有するエクステント８１−２を削除し（図１０の例ではエクステント８１−２ｂが削除される）、新規エクステント８１−２ｃをログエクステント８１−２ｂとして割り当てることによって、エクステント８１−２の総数を常に予め定めたＮ以下に維持する。
【００８１】
一方、本発明のいくつかの実施形態において、このようなＮはノードブロック８１が指すデータブロック７０の個数またはデータポインタ８１−１の個数の半分以下である。このようにノードブロック８１に含まれたエクステント８１−２の個数を制限する場合、エクステント８１−２を利用することによって格納空間の不要な浪費を防ぐことができる。
【００８２】
図１１ないし図１３は、図６の記憶装置の他の構成例を説明するためのブロック図である。以下で説明の便宜上、図６を参照して説明した内容と違う点を中心に説明する。
【００８３】
図１１を参照すると、本発明の他の実施形態によるコンピュータシステムの記憶装置において、第２領域ＩＩは互いに分離された多数のセグメント（Ｓ１〜Ｓｎ、ただし、ｎは自然数）を含む。各セグメントＳ１〜Ｓｎは、データとノードの区分なしに格納される。
【００８４】
反面、本発明の一実施形態によるコンピュータシステムで、記憶装置は互いに分離したデータセグメントＤＳ０，ＤＳ１、ノードセグメントＮＳ０，ＮＳ１を含む。多数のデータはデータセグメントＤＳ０，ＤＳ１に格納され、多数のノードはノードセグメントＮＳ０，ＮＳ１に格納される。
【００８５】
図１２を参照すると、本発明のまた他の実施形態によるコンピュータシステムの記憶装置において、第１領域Ｉはセグメント要約領域（図６の６６を参照）を含まない。すなわち、第１領域Ｉはスーパーブロック６１，６２、チェックポイント領域６２、セグメント情報テーブル６４、ノードアドレステーブル６５を含む。
【００８６】
セグメント要約情報は第２領域ＩＩ内に格納される。具体的には、第２領域ＩＩは多数のセグメントＳ０〜Ｓｎを含み、各セグメントＳ０〜Ｓｎは多数のブロックに区分される。各セグメントＳ０〜Ｓｎの少なくとも一つのブロックＳＳ０〜ＳＳｎにセグメント要約情報を格納する。
【００８７】
図１３を参照すると、本発明のまた他の実施形態によるコンピュータシステムの記憶装置において、第１領域Ｉはセグメント要約領域（図６の６６を参照）を含まない。すなわち、第１領域Ｉはスーパーブロック６１，６２、チェックポイント領域６２、セグメント情報テーブル６４、ノードアドレステーブル６５を含む。
【００８８】
セグメント要約情報は第２領域ＩＩ内に格納される。第２領域ＩＩは多数のセグメント５３を含み、各セグメント５３は多数のブロック（ＢＬＫ０〜ＢＬＫｍ）に区分され、各ブロック（ＢＬＫ０〜ＢＬＫｍ）はＯＯＢ（Ｏｕｔ  Ｏｆ  Ｂａｎｄ）（ＯＯＢ１〜ＯＯＢｍ、ただし、ｍは自然数）領域を含む。ＯＯＢ領域（ＯＯＢ１〜ＯＯＢｍ）にセグメント要約情報を格納する。
【００８９】
以下では、本発明のいくつかの実施形態によるコンピュータシステムが適用される具体的なシステムについて説明する。以下で説明されるシステムは例示的なものに過ぎず、これに限定されるものではない。
【００９０】
図１４は、本発明のいくつかの実施形態によるコンピュータシステムの具体的な一例を説明するためのブロック図である。
【００９１】
図１４を参照すると、ホストサーバ３００はネットワーク３２０を介して多数のデータベースサーバ３３０，３４０，３５０，３６０と接続されている。ホストサーバ３００内に、データベースサーバ３３０，３４０，３５０，３６０のデータを管理するためのファイルシステム３１６を設ける。ファイルシステム３１６は、図１ないし図１３を参照して説明したファイルシステムのうち何れか一つである。
【００９２】
図１５ないし図１７は、本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図である。
【００９３】
先ず、図１５を参照すると、記憶装置１００（図１の２０に対応する）は不揮発性メモリ装置１１００及びコントローラ１２００を含む。
【００９４】
ここで、不揮発性メモリ装置１１００には、前述したスーパーブロック６１，６２、チェックポイント領域６３、セグメント情報テーブル６４、ノードアドレステーブル６５などが格納されている。
【００９５】
コントローラ１２００はホスト及び不揮発性メモリ装置１１００に接続する。ホスト（Ｈｏｓｔ）からの要請に応答してコントローラ１２００は不揮発性メモリ装置１１００をアクセスするように構成される。例えば、コントローラ１２００は不揮発性メモリ装置１１００の読み込み、書き込み、削除、そしてバックグラウンド（ｂａｃｋｇｒｏｕｎｄ）の動作を制御するように構成される。コントローラ１２００は不揮発性メモリ装置１１００とホスト（Ｈｏｓｔ）との間にインターフェースを提供するように構成される。コントローラ１２００は不揮発性メモリ装置１１００を制御するためのファームウェア（ｆｉｒｍｗａｒｅ）を駆動するように構成される。
【００９６】
例示的には、コントローラ１２００はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、プロセシングユニット（ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、ホストインターフェース（ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ）、及びメモリインターフェース（ｍｅｍｏｒｙ  ｉｎｔｅｒｆａｃｅ）のようなよく知られている構成要素をさらに含む。ＲＡＭはプロセシングユニットの動作メモリ、不揮発性メモリ装置１１００及びホストの間のキャッシュメモリ、そして不揮発性メモリ装置１１００及びホスト（Ｈｏｓｔ）の間のバッファメモリのうち少なくとも一つとして利用される。プロセシングユニットはコントローラ１２００の諸般の動作を制御する。
【００９７】
コントローラ１２００と不揮発性メモリ装置１１００とは一つの半導体装置に集積される。例示的には、コントローラ１２００と不揮発性メモリ装置１１００とは一つの半導体装置に集積され、メモリカードを構成する。例えば、コントローラ１２００と不揮発性メモリ装置１１００とは、一つの半導体装置に集積され、ＰＣカード（ＰＣＭＣＩＡ、ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ  ｍｅｍｏｒｙ  ｃａｒｄ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ａｓｓｏｃｉａｔｉｏｎ）、コンパックフラッシュカード（ＣＦ）、スマートメディアカード（ＳＭ、ＳＭＣ）、メモリスティック、マルチメディアカード（ＭＭＣ、ＲＳ−ＭＭＣ、ＭＭＣｍｉｃｒｏ）、ＳＤカード（ＳＤ、ｍｉｎｉＳＤ、ｍｉｃｒｏＳＤ、ＳＤＨＣ）、ユニバーザルフラッシュ記憶装置（ＵＦＳ）などのようなメモリカードを構成する。
【００９８】
コントローラ１２００と不揮発性メモリ装置１１００とは一つの半導体装置に集積されＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を構成する。ＳＳＤは半導体メモリにデータを格納するように構成される格納装置を含む。システム１０００が半導体ドライブ（ＳＳＤ）として利用される場合、システム１０００に接続されたホスト（Ｈｏｓｔ）の動作速度が画期的に改善される。
【００９９】
他の例として、システム１０００はコンピュータ、ＵＭＰＣ（Ｕｌｔｒａ  ＭｏｂｉｌｅＰＣ）、ワークステーション、ネットブック（ｎｅｔ−ｂｏｏｋ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ポータブル（ｐｏｒｔａｂｌｅ）コンピュータ、ウェブタブレット（ｗｅｂ  ｔａｂｌｅｔ）、無線電話機（ｗｉｒｅｌｅｓｓ  ｐｈｏｎｅ）、モバイルフォン（ｍｏｂｉｌｅ  ｐｈｏｎｅ）、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、ｅ−ブック（ｅ−ｂｏｏｋ）、ＰＭＰ（ｐｏｒｔａｂｌｅ  ｍｕｌｔｉｍｅｄｉａ  ｐｌａｙｅｒ）、携帯用ゲーム機、ナビゲーション（ｎａｖｉｇａｔｉｏｎ）装置、ブラックボックス（ｂｌａｃｋ  ｂｏｘ）、デジタルカメラ（ｄｉｇｉｔａｌ  ｃａｍｅｒａ）、３次元テレビ（３−ｄｉｍｅｎｓｉｏｎａｌ  ｔｅｌｅｖｉｓｉｏｎ）、デジタルオーディオレコーダ（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｒｅｃｏｒｄｅｒ）、デジタルオーディオプレーヤ（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｐｌａｙｅｒ）、デジタル画像レコーダ（ｄｉｇｉｔａｌ  ｐｉｃｔｕｒｅ  ｒｅｃｏｒｄｅｒ）、デジタル画像プレーヤ（ｄｉｇｉｔａｌ  ｐｉｃｔｕｒｅ  ｐｌａｙｅｒ）、デジタル動画レコーダ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｒｅｃｏｒｄｅｒ）、デジタル動画プレーヤ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｐｌａｙｅｒ）、情報を無線環境で送受信できる装置、ホームネットワークを構成する多様な電子装置のうち一つ、コンピューターネットワークを構成する多様な電子装置のうち一つ、テレマティクスネットワークを構成する多様な電子装置のうち一つ、ＲＦＩＤ装置、またはコンピュータシステムを構成する多様な構成要素のうち一つなどのような電子装置の多様な構成要素のうち一つとして提供される。
【０１００】
例示的には、不揮発性メモリ装置１１００またはシステム１０００は多様な形態のパッケージで実装される。例えば、不揮発性メモリ装置１１００またはシステム１０００は、Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ（ＰｏＰ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ  Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ  Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）などのような方式でパッケージ化して実装される。
【０１０１】
次いで、図１６を参照すると、システム２０００は不揮発性メモリ装置２１００及びコントローラ２２００を含む。不揮発性メモリ装置２１００は複数の不揮発性メモリチップを含む。複数の不揮発性メモリチップは複数のグループに分割される。複数の不揮発性メモリチップの各グループは一つの共通チャンネルを介してコントローラ２２００と通信するように構成される。例えば、複数の不揮発性メモリチップは第１ないし第ｋチャンネル（ＣＨ１〜ＣＨｋ）を介してコントローラ２２００と通信するものが図示されている。
【０１０２】
図１６では、一つのチャンネルに複数の不揮発性メモリチップが接続されることが説明されている。しかし、一つのチャンネルに一つの不揮発性メモリチップが接続されるようにシステム２０００を変形できることが理解できるであろう。
【０１０３】
次いで、図１７を参照すると、システム３０００は中央処理装置３１００、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３２００、ユーザインターフェース３３００、電源３４００、そして図１６のシステム２０００を含む。
【０１０４】
システム２０００はシステムバス３５００を介して中央処理処置３１００、ＲＡＭ３２００、ユーザインターフェース３３００、及び電源３４００に電気的に接続される。ユーザインターフェース３３００を介して提供されるか、または中央処理装置３１００によって処理されたデータはシステム２０００に格納される。
【０１０５】
図１７には、不揮発性メモリ装置２１００はコントローラ２２００を介してシステムバス３５００に接続されるものが図示されている。しかし、不揮発性メモリ装置２１００はシステムバス３５００に直接接続するように構成され得る。
【０１０６】
以上添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野で通常の知識を有する者は、本発明がその技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解できるものである。したがって、上記実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。
【符号の説明】
【０１０７】
１０    ホスト
１４    仮想ファイルシステム
１６    ファイルシステム
１８    装置ドライバ
２０    記憶装置
【図１】
2014071905.tif 000003
【図２】
2014071905.tif 000004
【図３】
2014071905.tif 000005
【図４】
2014071905.tif 000006
【図５】
2014071905.tif 000007
【図６】
2014071905.tif 000008
【図７】
2014071905.tif 000009
【図８】
2014071905.tif 000010
【図９】
2014071905.tif 000011
【図１０】
2014071905.tif 000012
【図１１】
2014071905.tif 000013
【図１２】
2014071905.tif 000014
【図１３】
2014071905.tif 000015
【図１４】
2014071905.tif 000016
【図１５】
2014071905.tif 000017
【図１６】
2014071905.tif 000018
【図１７】
2014071905.tif 000019