(57)【要約】【課題】保安問題を解決できるデータ格納装置及びそれのデータ管理方法が提供される。【解決手段】本発明の実施形態による複数の媒体を有するデータ格納装置のデータ管理方法は、ファイルの書込み要請を受信する段階と、前記ファイルを第１部分と第２部分とに分割する段階と、前記第１部分を暗号化する段階と、前記暗号化された第１部分を第１格納媒体に、前記データ単位の中で第２部分を第２格納媒体に格納する段階と、を含む。【選択図】図１
2013120600.tif 000002
【特許請求の範囲】
【請求項１】
第１格納媒体と第２格納媒体とを有するデータ格納装置のデータ管理方法において、
ホストからファイルの書込み要請を受信する段階と、
前記書込み要請されたファイルを第１部分と第２部分とに分割する段階と、
前記第１部分を第１格納媒体に、前記第２部分を第２格納媒体に格納する段階と、を含むデータ管理方法。
【請求項２】
第１格納媒体は不揮発性半導体メモリ装置であり、前記第２格納媒体はディスク格納装置であることを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記第１部分は前記書込み要請されたファイルのヘッダーに対応する請求項２に記載のデータ管理方法。
【請求項４】
前記第１部分を前記第１格納媒体に格納する前に暗号化する段階をさらに含む請求項２に記載のデータ管理方法。
【請求項５】
前記第１部分を暗号化する段階は、
前記第１格納媒体から保安キーを読み出す段階と、
前記保安キーを使用して前記第１部分を暗号化する段階と、を含む請求項４に記載のデータ管理方法。
【請求項６】
前記第１部分と前記第２部分とを各々前記第１格納媒体と前記第２格納媒体とに各々格納した後に、前記ファイルに対する外部アドレスと前記第１部分及び前記第２部分が格納される前記第１格納媒体及び前記第２格納媒体での複数のアドレスとの間のマッピング情報をアップデートする段階をさらに含む請求項１に記載のデータ管理方法。
【請求項７】
前記マッピング情報は前記第１格納媒体に格納される請求項６に記載のデータ管理方法。
【請求項８】
前記書込み要請されたファイルを前記第１部分と第２部分とに分割する段階は、
前記第１部分と前記第２部分との各々に前記書込み要請されたファイルとの連関性を識別するためのタッグＩＤ又はコンテキストＩＤを付加段階をさらに含む請求項１に記載のデータ管理方法。
【請求項９】
前記データ格納装置はハイブリッドハードディスクドライブ（Ｈｙｂｒｉｄ  ＨＤＤ）であり、前記第１格納媒体はフラッシュメモリ装置を含む不揮発性キャッシュを含み、前記第２格納媒体はハードディスクを含む請求項１に記載のデータ管理方法。
【請求項１０】
前記第１部分を前記不揮発性キャッシュに格納する段階は、前記第１部分に対して前記ホストから割当てる論理セクター住所を隠すためにフラッシュ変換階層を参照する請求項９に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子装置に関し、さらに具体的には不揮発性メモリをキャッシュとして使用するデータ格納装置及びそれのデータ管理方法に関する。
【背景技術】
【０００２】
最近のデジタルシステムと家電製品は絶えずにさらに大きいデータ格納容量とさらに速いアクセス接近速度とを要求している。特に、モバイル電子装置は低い電力消耗と小さい重さ、向上された携帯性、及び耐久性を要求する。このような要求はモバイル電子装置のデザインと多様な補助格納装置との採択に影響を与えている。
【０００３】
このような市場の要求にしたがって、ハードディスク基盤のデータ格納装置の容量は製造技術の発達に合わせて急激に増加されて来た。各種情報処理機器の補助記憶装置としてハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ：以下、ＨＤＤ）が占めた位置をソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ：以下、ＳＳＤ）が急速に代替されて行く。
【０００４】
ソリッドステートドライブＳＳＤはハイエンド（Ｈｉｇｈ  Ｅｎｄ）形補助記憶装置としてＮＡＮＤフラッシュ基盤の次世代格納装置である。ソリッドステートドライブＳＳＤで、回転形磁気ディスク（又はプラッタ）とアクチュエーター（Ａｃｔｕａｔｏｒ）及びヘッダー（Ｈｅａｄｅｒ）等の機械的構成をＮＡＮＤフラッシュメモリに転換された。ソリッドステートドライブＳＳＤは低電力、低騒音、耐久性、携帯性を具備する大容量格納装置として相応しく思われている。ソリッドステートドライブＳＳＤは磁気ディスク形ハードディスクドライブＨＤＤに比べて記憶容量や費用の面では相変わらず不利である。しかし、ソリッドステートドライブＳＳＤはアクセス速度、小型化、及び衝撃からの安定性等でハードディスクドライブＨＤＤに比べて優位を占めている。また、工程技術と設計技術との進歩にしたがってだんだんソリッドステートドライブＳＳＤの記憶容量の増加と製造費用の減少とが予想される。しかし、当分の間に価額対比容量において、ソリッドステートドライブＳＳＤはハードディスクドライブＨＤＤを超えないと予想される。
【０００５】
隙間戦略として、ハードディスクドライブＨＤＤとソリッドステートドライブＳＳＤとの長所のみを取ったハイブリッドハードディスクドライブ（Ｈｙｂｒｉｄ  ＨＤＤ）が登場した。ハイブリッドハードディスクドライブとＳＳＤは全てＮＡＮＤフラッシュの技術的な長所を応用して使用者の便益を追求した装置である。ハイブリッドハードディスクドライブはハードディスクドライブＨＤＤに不揮発性・高速特性を有するＮＡＮＤフラッシュメモリをキャッシュメモリとして装着してディスクの回転数が減少されるようにした。ハイブリッドハードディスクドライブを通じてシステムのブーティング時間、電力消耗、発熱、騒音を大きく減らす同時に格納装置の寿命が延長されるようになった。
【０００６】
しかし、磁気ディスク（Ｍａｇｎｅｔｉｃ  Ｄｉｓｋ）形の格納装置が有する相対的に脆弱な保安性問題をハイブリッドハードディスクドライブも有している。したがって、ハイブリッドハードディスクドライブの脆弱な保安性を補完するための技術が切なる実情である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許公開第２０１１／０１４５４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は磁気ディスクにデータを格納する時に発生する保安問題を解決できるデータ格納装置及びそれのデータ管理方法を提供することにある。
【課題を解決するための手段】
【０００９】
上述した目的を達成するための本発明の実施形態による複数の媒体を有するデータ格納装置のデータ管理方法は、外部からファイルの書込み要請を受信する段階と、前記ファイルを少なくとも２つのデータ単位に分割する段階と、前記２つのデータ単位の中で第１部分を暗号化する段階と、前記暗号化された第１部分を第１格納媒体に、前記データ単位の中で第２部分を第２格納媒体に格納する段階と、を含む。
【００１０】
上述した目的を達成するための本発明の実施形態によるデータ格納装置は、不揮発性メモリ装置とそれを制御するメモリコントローラとを含む不揮発性キャッシュ、磁気ディスクを含むディスク格納装置、及び外部からファイルに対する書込み要請が発生すれば、前記ファイルを少なくとも２つのデータ単位に分割し、分割されたデータ単位の中で少なくとも１つを前記不揮発性キャッシュに、そして分割されたデータ単位の中で他の１つを前記ディスク格納装置に割当するデータ経路コントローラを含み、前記メモリコントローラは前記データ経路コントローラからの書込み要請に応答して前記少なくとも１つのデータ単位を暗号化した後に前記不揮発性メモリ装置にプログラムする。
【００１１】
上述した目的を達成するための本発明の実施形態によるデータ格納装置は不揮発性メモリ装置、及び外部からファイルに対する書込み要請に応答して、前記ファイルを少なくとも２つのデータ単位に分割し、分割されたデータ単位の中で少なくとも１つを前記不揮発性メモリ装置に、そして分割されたデータ単位の中で他の１つを前記不揮発性メモリ装置の外部に具備される格納装置に書き込み、前記不揮発性メモリ装置に書き込まれる少なくとも１つのデータ単位を暗号化する不揮発性メモリコントローラを含む。
【００１２】
上述した目的を達成するための本発明の実施形態によるデータ格納装置は、複数の格納媒体、そして前記複数の格納媒体を制御し、１つのファイルに対して第１部分と第２部分とに区分して提供される書込み要請に応答して前記第１部分を第１格納媒体に、前記第２部分を第２格納媒体に書き込むデータ経路コントローラを含み、前記第１部分に対応するデータは暗号化されて前記第１格納媒体に書き込まれる。
【発明の効果】
【００１３】
本発明の実施形態によるデータ格納装置によれば、１つのファイルを異種の格納媒体に分離して格納してデータの保安性を向上させ得る。また、異種の格納媒体の中で格納されるデータに対する保安キーを使用した非対称的な暗号化をいずれか１つの格納媒体に格納されるデータのみで遂行して、データに対する保安性を高くすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態によるデータ格納装置のデータ管理方法を簡略に示すブロック図である。
【図２】図１の使用者装置のソフトウェア構造を示すブロック図である。
【図３】本発明のデータ格納装置の一実施形態を示すブロック図である。
【図４】図３のデータ経路コントローラの例示的構成を簡略に示すブロック図である。
【図５】図３のＮＶＭキャッシュの一例を簡略に示すブロック図である。
【図６】図５の暗号化エンジンの動作方式を例示的に示すブロック図である。
【図７】図３のデータ経路コントローラが遂行するデータ管理方法の一例を示す順序図である。
【図８】図７のデータ管理方法の例を１つのファイルを参照して示す図面である。
【図９】図３のデータ経路コントローラが遂行するデータ管理方法の他の例を示す順序図である。
【図１０】図９のデータ管理方法を１つのファイルを基準に示す図面である。
【図１１】本発明のデータ格納装置の他の実施形態を示すブロック図である。
【図１２】図１１のＮＶＭコントローラとＮＶＭとを具体的に示すブロック図である。
【図１３】図１２のＮＶＭコントローラのデータ管理方法を示す順序図である。
【図１４】本発明のその他の実施形態によるデータ格納装置を示すブロック図である。
【図１５】図１４の使用者装置のソフトウェア構造の一例を示すブロック図である。
【図１６】ファイル分割方法を示すテーブルである。
【図１７】図１４の使用者装置のソフトウェア構造の他の例を示すブロック図である。
【図１８】本発明の実施形態によるデータ格納装置を装着したコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施できるように詳細に説明するために、本発明の実施形態を添付された図面を参照して説明する。同一の構成要素は同一の参照番号を利用して引用される。類似な構成要素は類似な参照番号を利用して引用される。以下で説明される本発明によるフラッシュメモリ装置の回路構成と、それによって遂行される読出し動作は例として説明したことに過ぎないし、本発明の技術的思想を逸脱しない範囲内で多様な変化及び変更が可能である。
【００１６】
図１は本発明の実施形態によるデータ格納装置のデータ管理方法を示すブロック図である。図１を参照すれば、使用者装置１０００はホスト１１００とデータ格納装置１２００とを含む。大容量格納装置として使用されるデータ格納装置１２００は半導体メモリ装置として提供される不揮発性メモリ装置１２２０と磁気ディスクを格納媒体に有するディスクストレージ１２４０とを含む。
【００１７】
使用者装置１０００はパーソナルコンピューター、デジタルカメラ、カムコーダー、携帯電話、ＭＰ３、ＰＭＰ、ＰＤＡ等のような情報処理機器であり得る。それだけでなく、ホスト１１００の内部にはＤＲＡＭ、ＳＲＡＭ等のような揮発性メモリとＥＥＰＲＯＭ、ＦＲＡＭ（登録商標）、ＰＲＡＭ、ＭＲＡＭ、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）等のような不揮発性メモリを含むことができる。ホスト１１００は応用プログラムの駆動の際にファイルの生成やファイルを削除できる。このようなファイルの生成と削除はホスト１１００のファイルシステム（Ｆｉｌｅ  ｓｙｓｔｅｍ）によって制御される。
【００１８】
ホスト１１００はファイルを生成してデータ格納装置１２００に書込み要請を行うことができる。この時、生成されたファイルはデータ格納装置１２００へセクター（Ｓｅｃｔｏｒ）単位に伝達される。そして、１つのファイルに対する書込み要請又はホスト１１００とデータ格納装置１２００との間のトランザクションはクラスター単位に発生できる。もし、ホスト１１００がファイルＡをデータ格納装置１２００に書き込まれるように要請したと仮定する。ファイルＡは４つのセクターａ１、ａ２、ａ３、ａ４で構成されることと仮定する。ここで、ファイルＡはファイルヘッダーに対応するセクターａ１とファイルボディー（Ｆｉｌｅ  ｂｏｄｙ）に対応するセクターａ２、ａ３、ａ４とで構成され得る。
【００１９】
このようなファイルＡに対する書込み要請がデータ格納装置１２００へ提供されれば、データ格納装置１２００はファイルヘッダーとファイルボディーとを識別して各々異なる格納媒体に書き込む。例えば、相対的に低容量のファイルヘッダーに対応するセクターａ１は不揮発性メモリ装置１２２０に格納され得る。反面、相対的に高容量に対応するファイルボディーに対応するセクターａ２、ａ３、ａ４はディスクストレージ１２４０に書き込まれる。このようにデータ格納装置１２００には１つのファイルを互に異なる格納媒体に分割して格納するか、或いは分割されて格納されたファイルを読み出して集める機能を遂行するためのデータ経路コントローラ１２１０が包含され得る。そして、セクターａ１に対する非対称的な暗号化演算を適用することもあり得る。また、セクターａ２、ａ３、ａ４に対する暗号化演算を適用することもあり得る。
【００２０】
１つのファイルが異種の格納媒体に分離されて書き込めば、いずれか１つの格納媒体に書き込まれたデータのみでは意味ある１つのファイルを構成できない。したがって、データの保安性が向上され得ることを意味する。さらに、保安キーを使用していずれか１つの格納媒体に書き込まれるデータに対する暗号化過程を追加すれば、１つのファイルを復元するための試図はより難しくなる。
【００２１】
図２は図１の使用者装置のソフトウェア構造を示すブロック図である。図２を参照すれば、使用者装置１０００のファイルを管理するソフトウェアは上位階層と下位階層とに区分され得る。ソフトウェアの上位階層にはホスト１１００で駆動される応用プログラム１０１０とファイルシステム１０２０とが包含され得る。そして、ソフトウェアの下位階層にはデータ経路コントローラ１０３０、ＮＶＭコントローラ１０４０、不揮発性メモリ１０４５、ディスクコントローラ１０５０、及び磁気ディスク１０５５が包含され得る。
【００２２】
応用プログラム１０１０は使用者装置１０００を駆動する最上位プログラムに該当される。応用プログラム１０１０は使用者又は他の応用プログラムが特定な機能を直接遂行するように設計されたプログラムである。応用プログラム１０１０は運営体制ＯＳとその他の支援プログラムのサービスを使用する。応用プログラム１０１０と運営体制ＯＳとによってデータ格納装置１２００へのアクセス要請が発生できる。
【００２３】
ファイルシステム１０２０は資料を階層的に格納、探索、接近、操作するための抽象的資料構造の集合を言う。例えば、個人用コンピューターＰＣを駆動するマイクロソフトウィンドウズ（登録商標）（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））はＦＡＴ（Ｆｉｌｅ  ａｌｌｏｃａｔｉｏｎ  ｔａｂｌｅ）又はＮＴＦＳ（ＮＴ  ｆｉｌｅ  ｓｙｓｔｅｍ）をファイルシステム１０２０として使用する。ファイルシステム１０２０によってファイル単位のデータが生成されるか、或いは削除及び管理され得る。
【００２４】
データ経路コントローラ１０３０はファイルシステム１０２０から提供されるファイル単位のアクセス要請を遂行する。特に、本発明によるデータ経路コントローラ１０３０はホスト１１００から書込み要請される１つのファイルを少なくとも２つの単位に分割して管理することができる。データ経路コントローラ１０３０は分割された２つの単位の中でいずれか１つの単位を不揮発性メモリ１０４５に書き込み、他の１つの単位を磁気ディスク１０５５に書き込む。データ経路コントローラ１０３０はホスト１１００からの読出し要請が発生すれば、読出し要請されたファイルに対応する分割されたデータ単位を不揮発性メモリ１０４５と磁気ディスク１０５５とから各々読出す。そして、データ経路コントローラ１０３０は不揮発性メモリ１０４５と磁気ディスク１０５５とから読み出された２つの読出しデータを１つのファイルに集めてホスト１１００へ提供する。
【００２５】
上述したファイル管理のために、データ経路コントローラ１０３０は右側に図示されたメモリマップのようにメモリ管理を遂行できる。即ち、データの属性（Ａｔｔｒｉｂｕｔｅ）にしたがってシステム領域（Ｓｙｓｔｅｍ  ａｒｅａ）に対応するデータは不揮発性メモリ１０４５に割当し、ユーザーデータ（Ｕｓｅｒ  ｄａｔａ）に対応するデータは磁気ディスク１０５５に割当することができる。そして、このような割当のために、ホストから提供される論理住所ＬＢＡを使用することができる。即ち、データ経路コントローラ１０３０はブートセクターとファイルシステム情報に対応するメタデータＬＢＡ０〜ＬＢＡ６１６１とファイル割当テーブルＦＡＴに対応するメタデータＬＢＡ６１６２〜ＬＢＡ８１９１は不揮発性メモリ１０４５に格納できる。そして、データ経路コントローラ１０３０はユーザーデータ（Ｕｓｅｒ  ｄａｔａ）に対応するデータＬＢＡ８１９２〜ＬＢＡ８３１４８７９は磁気ディスク１０５５に格納できる。
【００２６】
ＮＶＭコントローラ１０４０は上述したデータ経路コントローラ１０３０からの読出し／書込み演算要請に応答して不揮発性メモリ１０４５に適合な形態のアドレスを変換する。フラッシュメモリのような不揮発性メモリ１０４５は上書きが不可能である。フラッシュメモリの場合にはデータを書き込む前に削除演算が先に行われなければならない。このような削除演算を隠すために、ファイルシステムとフラッシュメモリとの間にフラッシュ変換階層ＦＴＬが使用される。ＮＶＭコントローラ１０４０にはこのようなフラッシュ変換階層ＦＴＬの機能が包含される。
【００２７】
フラッシュ変換階層ＦＴＬは、不揮発性メモリ１０４５の書込み動作の時、ファイルシステム１０２０からの論理住所（Ｌｏｇｉｃａｌ  ａｄｄｒｅｓｓ）を、削除演算が遂行されたフラッシュメモリの物理住所（Ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ）にマッピング（Ｍａｐｐｉｎｇ）させる。フラッシュ変換階層ＦＴＬは速いアドレスマッピングが行われるようにアドレスマッピングテーブル（Ａｄｄｒｅｓｓ  Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）を使用する。
【００２８】
ＮＶＭコントローラ１０４０はデータ経路コントローラ１０３０が提供するデータを不揮発性メモリ１０４５に書き込む。この時、追加的に保安キーを使用して書込み要請されたデータに対する暗号化を遂行できる。そして、ＮＶＭコントローラ１０４０は読出し要請されたデータをデータ経路コントローラ１０３０へ提供する。結果的に不揮発性メモリ１０４５にはメモリマップでシステム領域に対応するメタデータＬＢＡ０〜ＬＢＡ８１９１が格納される。
【００２９】
ディスクコントローラ１０５０はデータ経路コントローラ１０３０が提供するデータを磁気ディスク１０５５に書き込む。そして、ディスクコントローラ１０５０は読出し要請されたデータを磁気ディスク１０５５から読出してデータ経路コントローラ１０３０へ提供する。結果的に磁気ディスク１０５５にはユーザー領域（Ｕｓｅｒ  ａｒｅａ）に対応するデータＬＢＡ８１９２〜ＬＢＡ８３１４８７９が格納される。
【００３０】
分割されたデータは読出し要請の時、データ経路コントローラ１０３０によって集められてホスト１１００へ提供され得る。ファイルの分割格納によっていずれか１つの格納媒体がハッキングや保安攻撃によって流出され得る。しかし、いずれか１つの格納媒体から流出された情報のみでは意味ある情報が構成するのが難い。したがって、本発明のデータ格納装置１２００を通じて保安性向上を期待できる。
【００３１】
図３は本発明のデータ格納装置の一実施形態を示すブロック図である。図３を参照すれば、データ格納装置１２００ａはデータ経路コントローラ１２１０ａ、バッファメモリ１２３０、ＮＶＭキャッシュ１２２０、及びディスクストレージ１２４０を含む。
【００３２】
データ経路コントローラ１２１０ａは図２のデータ経路コントローラ１０３０階層の機能を遂行する。データ経路コントローラ１２１０ａはホスト（１１００、図１参照）のファイル書込み要請をデコーディングする。書込み要請される１つのファイルはホスト１１００のファイルシステム（１０２０、図２参照）によって、ファイル名（Ｆｉｌｅ  ｎａｍｅ）とファイル大きさ（Ｆｉｌｅ  ｓｉｚｅ）とが割当される。特に、ファイルシステム１０２０はファイルを管理し、制御するためのメタデータ（Ｍｅｔａ  ｄａｔａ）を生成する。メタデータはファイルヘッドに包含され得る。データ経路コントローラ１２１０ａはホスト１１００から複数のトランザクションを通じて提供されたファイルをバッファメモリ１２３０に格納する。データ経路コントローラ１２１０ａはバッファメモリ１２３０に格納されたファイルを定まれたファイル分割政策にしたがって分離する。データ経路コントローラ１２１０ａは分割されたファイルの一部はＮＶＭキャッシュ１２２０に、そしてファイルの残りの部分はディスクストレージ１２４０に書き込まれる。
【００３３】
データ経路コントローラ１２１０ａはホスト１１００から入力される全てのデータの経路を判断してデータの流れを制御する。データ経路コントローラ１２１０ａは書込み要請されるファイルを分割し、分割されたデータをＮＶＭキャッシュ１２２０に書き込むか、或いはディスクストレージ１２４０に書き込むかを判断する。データ経路コントローラ１２１０ａが遂行するファイル分割政策は上述した説明のみに制限されない。ファイルヘッダー（又はメタデータ）をディスクストレージ１２４０に、そしてファイルボディー（又は、ユーザーデータ）をＮＶＭキャッシュ１２２０に書き込まれるようにファイル分割政策が設定されることもあり得る。
【００３４】
ＮＶＭキャッシュ１２２０は電源が遮断されでも格納されたデータが消失されないフラッシュメモリを含むことができる。例えば、ＮＶＭキャッシュ１２２０はＮＡＮＤ形フラッシュメモリ、ＮＯＲ形フラッシュメモリ、及びフュージョンメモリ（例えば、ＯｎｅＮＡＮＤフラッシュ）の中で少なくとも１つを含むことができる。ＮＶＭキャッシュ１２２０は格納されるデータに対する保安キーを使用した暗号化演算を遂行できる。
【００３５】
バッファメモリ１２３０はホスト１１００からのアクセス要請に対応する命令語待機列を格納するか、或いは書込みデータ又は読出しデータを一時的に格納する。読出し動作の時、ＮＶＭキャッシュ１２２０やディスクストレージ１２４０から伝達されたデータがバッファメモリ１２３０に一時的に格納される。バッファメモリ１２３０で１つのファイルに再配列された後、読出しデータはホスト１１００へ伝達される。反面、書込み動作の時、書込み要請されるファイルはバッファメモリ１２３０に格納された後、データ経路コントローラ１２１０ａによって少なくとも２つの部分に分割される。分割されたファイルの１つの部分は不揮発性キャッシュ１２３０に、他の１つの部分はディスクストレージ１２４０に書き込まれる。
【００３６】
一般的に、ホスト１１００のバスフォーマット（例えば、ＳＡＴＡ又はＳＡＳ）によるデータ伝送速度はデータ経路コントローラ１２１０ａとＮＶＭキャッシュ１２２０又はデータ経路コントローラ１２１０ａとディスクストレージ１２４０との間のデータ伝送速度より著しく速い。即ち、ホスト１１００のインターフェイス速度が著しく速い場合、大容量のバッファメモリ１２３０を提供することによって速度差異によって発生するパフォーマンス低下を減らし得る。
【００３７】
ディスクストレージ１２４０はデータ経路コントローラ１２１０ａの制御にしたがって提供されるデータを具備される磁気ディスク１２４５に書き込む。ディスクストレージ１２４０はディスクコントローラ１２４１と磁気ディスク１２４５とを含む。ディスクストレージ１２４０に含まれる磁気ディスク１２４５には書込み要請されるデータがセクター単位に書き込むことができる。さらに、ディスクストレージ１２４０はデータ経路コントローラ１２１０ａの制御に応答してデータを書き込むか、或いは読み出すヘッドを含むことができる。ディスクストレージ１２４０は高速に磁気ディスク１２４５を回転するためのモーターを含むことができる。一般的に磁気ディスク形格納装置は１つのスピンの上に装着された１つ以上の磁気ディスク１２４５を含み、１つのヘッドが磁気ディスク１２４５の各表面に提供される。また、磁気ディスク１２４５の表面は多数のトラック、即ち、スピンドル（Ｓｐｉｎｄｌｅ）にしたがって磁気ディスクの上の磁気ヘッドの軌跡に表示される同中心の円に分割される。この場合に、シリンダーは複数の磁気ヘッドによって決定される同時に多数のトラックによって決定される。また、トラックは多数のセクターに分割されるが、１つのセクターはアクセスされ得る最小単位である。
【００３８】
一般的に、ハードディスクドライバーではローカルブロックアドレス（Ｌｏｃａｌ  Ｂｏｌｃｋ  Ａｄｄｒｅｓｓ：以下、ＬＢＡ）によって磁気ディスクの上にアクセスされる。ＬＢＡはシリンダー、ヘッド、セクターＣＨＳの３次元的な方法にディスクをアクセスすることではなく、ディスクの１つのセクターをアクセス単位とするための住所方式である。例えば、ＬＢＡは第１番目のセクターを０にして一連番号を与え、その番号を住所にしてディスクを１次元的な方法に指定する。
【００３９】
上述した本発明のデータ格納装置１２００ａによれば、ホスト１１００から書込み要請されるファイルがデータ経路コントローラ１２１０ａによって特定基準にしたがって分割される。そして、分割されたファイルの一部はＮＶＭキャッシュ１２２０に、分割されたファイルの残りの部分はディスクストレージ１２４０に格納される。したがって、攻撃者によってディスクストレージ１２４０に格納されたファイルのみでは意味あるファイルの構成が不可能である。その上に、ＮＶＭキャッシュ１２２０又はディスクストレージ１２４０に格納されるファイルの一部分に対して暗号化演算を適用して保安性を強化させ得る。
【００４０】
図４は図３のデータ経路コントローラ１２１０ａの例示的構成を簡略に示すブロック図である。図４を参照すれば、データ経路コントローラ１２１０ａは中央処理装置１２１１、バッファマネージャ１２１２、ホストインターフェイス１２１３、ディスクインターフェイス１２１４、及びＮＶＭインターフェイス１２１５を含む。
【００４１】
中央処理装置１２１１は読出し／書込み動作に必要である多様な制御情報をホストインターフェイス１２１３、ディスクインターフェイス１２１４、及びＮＶＭインターフェイス１２１５のレジスターへ伝達する。例えば、外部から命令語が入力されれば、ホストインターフェイス１２１３のレジスター（図示せず）に格納される。ホストインターフェイス１２１３は格納された命令によって中央処理装置１２１１に読出し／書込み命令が入力されたことを知らせる。このような動作は中央処理装置１２１１とディスクインターフェイス１２１４との間、そして中央処理装置１２１１とＮＶＭインターフェイス１２１５との間でも発生する。中央処理装置１２１１は格納装置１２００を駆動するためのファームウェア（Ｆｉｒｍｗａｒｅ）にしたがって各々の構成を制御する。
【００４２】
特に、本発明の実施形態によれば、中央処理装置１２１１はホスト１１００の書込み要請に応答して１つのファイルを２つの単位に分割する。中央処理装置１２１１は書込み要請される１つのファイルをバッファメモリ１２３０に格納した後、予め決定されたファイル分割政策にしたがって格納されたファイルを２つのデータ単位に分割できる。中央処理装置１２１１は分割された２つのデータ単位が１つのファイルであることを示すタッグを追加して、ＮＶＭキャッシュ１２２０とディスクストレージ１２４０とに書き込むことができる。
【００４３】
ここで、中央処理装置１２１１は複数のコアで構成されるマルチコアに構成され得る。複数のコアによってデータ経路コントローラ１２１０ａはマルチタスキング（Ｍｕｌｔｉ−ｔａｓｋｉｎｇ）を遂行できる。その上に、複数のコアで構成されるマルチコア形中央処理装置１２１１によってデータ経路コントローラ１２１０ａは並列処理（Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ）を遂行できる。並列処理によって、データ経路コントローラ１２１０ａは相対的に低い周波数のクロックで駆動されても高性能に動作できる。
【００４４】
バッファマネージャ１２１２はバッファメモリ（１２３０、図２参照）の読出し及び書込み動作を制御する。例えば、バッファマネージャ１２１２は書込みデータ（Ｗｒｉｔｅ  ｄａｔａ）や読出しデータ（Ｒｅａｄ  ｄａｔａ）をバッファメモリ１２３０に一時的に格納する。
【００４５】
ホストインターフェイス１２１３はホスト（Ｈｏｓｔ）と使用者装置１００との物理的連結を提供する。即ち、ホストインターフェイス１２１３はホストのバスフォーマット（Ｂｕｓ  ｆｏｒｍａｔ）に対応して格納装置１２０とのインターフェイシングを提供する。ホスト１１０のバスフォーマットはＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＥＩＤＥ（Ｅｎｈａｎｃｅｄ  ＩＤＥ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＰＣＩ  ｅｘｐｒｅｓｓ、ＡＴＡ、ＰＡＴＡ（Ｐａｒａｌｌｅｌ  ＡＴＡ）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）等で構成され得る。ディスクインターフェイス１２１４は中央処理装置１２１１の制御にしたがってディスクストレージ１２４０とのデータ交換を遂行する。
【００４６】
ＮＶＭインターフェイス１２１５はＮＶＭキャッシュ１２２０とデータを交換する。ＮＶＭキャッシュ１２２０はインターフェイシング手段無しで直接ＮＶＭインターフェイス１２１５に連結され得る。この場合、ＮＶＭキャッシュ１２２０は少なくとも１つの不揮発性メモリ装置で構成される。そして、ＮＶＭインターフェイス１２１５はメモリコントローラが遂行する機能を遂行する。例えば、フラッシュ変換階層ＦＴＬの遂行や、チャンネルインタリービング（Ｃｈａｎｎｅｌ  Ｉｎｔｅｒｌｅａｖｉｎｇ）、エラー訂正演算（ＥＣＣ）、暗号化演算等がＮＶＭインターフェイス１２１５で遂行できる。チャンネルインタリービングを遂行する場合、ＮＶＭインターフェイス１２１５はバッファメモリ１２３０から伝達されるデータを各々のメモリチャンネルＣＨ１、ＣＨ２、…、ＣＨｎへスキャタリング（Ｓｃａｔｔｅｒｉｎｇ）する。そして、メモリチャンネルを通じて提供されるＮＶＭキャッシュ１２２０からの読出しデータ（Ｒｅａｄ  ｄａｔａ）はＮＶＭインターフェイス１２１５によって集まれる。集まれたデータは以後バッファメモリ１２３０に格納される。
【００４７】
反面、ＮＶＭインターフェイス１２１５はメモリコントローラ機能無しでＮＶＭキャッシュ１２２０との単純なデータ交換のみを遂行することもあり得る。このような場合にはＮＶＭキャッシュ１２２０はアドレスマッピングや、ウェアレベルリング、ガーベッジコレクション等を遂行するためのメモリコントローラを別に具備しなければならない。この時、メモリコントローラによってフラッシュ変換階層ＦＴＬの機能、チャンネルインタリービング（Ｃｈａｎｎｅｌ  Ｉｎｔｅｒｌｅａｖｉｎｇ）、エラー訂正演算（ＥＣＣ）、暗号化演算等が遂行される。ＮＶＭインターフェイス１２１５にメモリコントローラ機能が無い場合のＮＶＭキャッシュ１２２０の例が後述する図５で説明される。
【００４８】
図５は図３のＮＶＭキャッシュの一例を簡略に示すブロック図である。図５を参照すれば、ＮＶＭキャッシュ１２２０はメモリコントローラ１２２０ａと不揮発性メモリ装置１２２０ｂとを含むことができる。
【００４９】
不揮発性メモリ装置１２２０ｂは、例えばＮＡＮＤ形フラッシュメモリ装置で構成され得る。メモリコントローラ１２２０ａは不揮発性メモリ装置１２２０ｂを制御するように構成される。不揮発性メモリ装置１２２０ｂとメモリコントローラ１２２０ａとの結合によって、ＮＶＭキャッシュ１２２０はメモリカード形態、ドライバー形態に提供され得る。それだけでなく、ＮＶＭキャッシュ１２２０はチップ形態にも提供され得ることは容易に理解できる。
【００５０】
メモリコントローラ１２２０ａはＳＲＡＭ１２２１、キー管理部１２２２、プロセシングユニット１２２３、第１インターフェイス１２２４、暗号化エンジン１２２５、及び第２インターフェイス１２２６を含む。
【００５１】
ＳＲＡＭ１２２１はプロセシングユニット１２２３の動作メモリとして使用される。第１及び第２インターフェイス１２２４、１２２６は各々データ経路コントローラ１２１０ａと不揮発性メモリ装置１２２０ｂとの間でデータ交換プロトコルを提供する。プロセシングユニット１２２３は提供されるファームウェアにしたがって多様なメモリ管理動作を遂行できる。例えば、不揮発性メモリ装置１２２０ｂとデータ経路コントローラ１２１０ａとの間をインターフェイシングするためのフラッシュ変換階層ＦＴＬの機能を遂行できる。フラッシュ変換階層ＦＴＬの機能の中で１つである住所変換機能を遂行するために、プロセシングユニット１２２３はＳＲＡＭ１２２１にマッピングテーブルを構成する。そして、周期的にマッピングテーブルを不揮発性メモリ装置１２２０ｂのマッピング情報領域にアップデートする。
【００５２】
キー管理部１２２２はデータ経路コントローラ１２１０ａからの書込み要請が発生すれば、書込み要請されるデータを暗号化するための保安キー（Ｓｅｃｕｒｉｔｙ  Ｋｅｙ）を暗号化エンジン１２２５へ提供する。キー管理部１２２２はデータ経路コントローラ１２１０ａからの書込み要請の時に提供されるアドレスを参照して、対応する保安キーを不揮発性メモリ装置１２２０ｂの保安キー格納領域から読み出される。キー管理部１２２２はデータ経路コントローラ１２１０ａからの読出し要請が発生する時にも要請されたデータに対応する保安キーを不揮発性メモリ装置１２２０ｂから読み出され、暗号化エンジン１２２５へ提供する。
【００５３】
暗号化エンジン１２２５はキー管理部１２２２から提供される保安キーを参照して、書込み要請されるデータ又は読出し要請されるデータに対する暗号化演算を遂行する。書込み要請されるデータに対して暗号化エンジン１２２５はキー管理部１２２２から提供される保安キーを使用して暗号化する。反面、読出し要請されるデータに対して暗号化エンジン１２２５はキー管理部１２２２から提供される保安キーを使用して復号化（Ｄｅｃｒｙｐｔｉｏｎ）する。暗号化エンジン１２２５は、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）アルゴリズムや、それに対応する装置で構成され得る。
【００５４】
以外にメモリコントローラ１２２０ａは不揮発性メモリ装置１２２０ｂから読み出されたデータのエラー（Ｅｒｒｏｒ）を検出及び訂正するためのエラー訂正演算ブロック（図示せず）をさらに包含できる。たとえ図面には図示せずが、本発明によるメモリコントローラ１２２０ａはコードデータを格納するＲＯＭ（図示せず）等がさらに提供され得ることは容易に理解できる。
【００５５】
不揮発性メモリ装置１２２０ｂは１つ又はその以上のフラッシュメモリ装置を含むことができる。不揮発性メモリ装置１２２０ｂは基本的にデータを格納するセルアレイ１２２８とアクセス要請されるデータを書き込むか、或いは読出するためのページバッファ１２２７とを含む。セルアレイ１２２８にはデータ経路コントローラ１２１０ａから提供される論理アドレスを不揮発性メモリ装置１２２０ｂの物理アドレスに変換させるためのマッピング情報（Ｍａｐｐｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ）領域が包含される。そして、セルアレイ１２２８には暗号化演算のために保安キーが格納される保安キー（Ｓｅｃｕｒｉｔｙ  Ｋｅｙ）領域が包含される。さらに、セルアレイ１２２８には書込み要請されるデータが格納される使用者データ（Ｕｓｅｒ  ｄａｔａ）領域が包含され得る。
【００５６】
ここで、不揮発性メモリ装置１２２０ｂがＮＡＮＤ形フラッシュメモリを例示的に説明したが、本発明はこれに制限されない。例えば、不揮発性メモリ装置１２２０ｂはＰＲＡＭ、ＭＲＡＭ、ＲｅＲＡＭ、ＦＲＡＭ（登録商標）、ＮＯＲフラッシュメモリ等が使用され得る。
【００５７】
以上で説明されたＮＶＭキャッシュ１２２０は多い実施可能である例の中で１つに過ぎないことは容易に理解できる。その他にも、ＮＶＭキャッシュ１２２０はＯｎｅＮＡＮＤフラッシュのような多様なフュージョンフラッシュメモリで構成され得る。
【００５８】
図６は図５の暗号化エンジンの動作方式を例示的に示すブロック図である。図６を参照すれば、暗号化エンジン１２２５は第１暗号化ユニット１２２５＿１、モジュロ乗算器１２２５＿２、ＸＯＲゲート１２２５＿３、第２暗号化ユニット１２２５＿４、及びＸＯＲゲート１２２５＿５を含むことができる。本発明による暗号化過程は次のように進行される。
【００５９】
第１暗号化ユニット１２２５＿１は入力された第２キー（Ｋｅｙ２）とＡＥＳ暗号プロトコルによってトウィーク（Ｔｗｅａｋ）値（ｉ）を暗号化させる。このようなトウィーク値（ｉ）は暗号化動作の時、暗号化エンジン（１２２５、図５参照）の内部レジスター（図示せず）に格納される。モジュロ乗算器１２２５＿２は第１暗号化ユニット１２２５＿１で暗号化された値と原始値αｊをモジュロ掛け算する。ここで、αはバイナリフィールド（Ｂｉｎａｒｙ  ｆｉｅｌｄ）の原始元素（Ｐｒｉｍｉｔｉｖｅ  ｅｌｅｍｅｎｔ）であり、ｊは原始元素の累乗回数として、暗号化される書込みデータの一連番号（Ｓｅｑｕｅｎｔｉａｌ  ｎｕｍｂｅｒ）であり得る。即ち、ｊは順次的に提供される書込みデータユニットの番号であり得る。
【００６０】
ＸＯＲゲート１２２５＿３はモジュロ乗算器１２２５＿２の出力値（τ）と平面データａ１とをビット単位の排他的なオア演算（Ｂｉｔ−ｗｉｓｅ  ｅｘｃｌｕｓｉｖｅ  ＯＲ  ｏｐｅｒａｔｉｏｎ）する。第２暗号化ユニット１２２５＿４は入力された第１キー（Ｋｅｙ１）とＡＥＳ暗号プロトコルよよってＸＯＲゲート１２２５＿３の結果値ＰＰを暗号化させる。ＸＯＲゲート１２２５＿５は第２暗号化ユニット１２２５＿４の暗号化値ＣＣとモジュロ掛け算結果値τとを論理和演算する。したがって、最終的に暗号文ａ１’が出力される。
【００６１】
以上ではＡＥＳ暗号プロトコルによって書込みデータを暗号化する暗号化エンジン１２２５の例を簡略に説明した。しかし、暗号化エンジン１２２５の暗号方式は本実施形態のみに制限されないことは容易に理解できる。
【００６２】
図７は図２のデータ経路コントローラ１２１０ａが遂行するデータ管理方法の一例を示す順序図である。図１及び図７を参照すれば、データ格納装置１２００はホスト１１００から提供される１つのファイルを２つの互に異なる格納媒体に格納する。このようなデータ管理手続はホスト１１００でファイルの書込み要請が発生すれば、開始される。
【００６３】
段階Ｓ１１０で、ホスト１１００の書込み要請が伝達されれば、データ経路コントローラ１２１０ａは書込み要請の発生を検出する。例えば、ホスト１１００のアプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）やユーザー（Ｕｓｅｒ）によってファイルの書込み要請が発生すれば、ファイルシステム（Ｆｉｌｅ  Ｓｙｓｔｅｍ）は書込み要請されたファイルをオープン（Ｏｐｅｎ）する。即ち、ファイルシステム（Ｆｉｌｅ  ｓｙｓｔｅｍ）は書込み要請されたファイル名（Ｆｉｌｅ  ｎａｍｅ）を生成し、ファイル大きさ（Ｆｉｌｅ  ｓｉｚｅ）を割当する。ファイルシステム（Ｆｉｌｅ  ｓｙｓｔｅｍ）は特に、１つのファイルを管理し、制御するためのメタデータ（Ｍｅｔａ  ｄａｔａ）を生成する。メタデータにはファイルに対する制御情報、エラーの発生の際に必要である復旧情報等が包含され得る。以後に、ホスト１１００のファイルシステム（Ｆｉｌｅ  ｓｙｓｔｅｍ）はデータ格納装置１２００へファイルに対する書込み要請を伝送する。そうすると、データ経路コントローラ１２１０ａはホスト１１００からファイルに対する書込み要請を受信する。
【００６４】
段階Ｓ１２０で、データ経路コントローラ１２１０ａは書込み要請されたファイルに対する分割（Ｓｐｌｉｔ）を遂行する。例えば、データ経路コントローラ１２１０ａは書込み要請されたファイルのヘッド（Ｈｅａｄ）部分とボディー（Ｂｏｄｙ）部分とを分割できる。又は、データ経路コントローラ１２１０ａは書込み要請されたファイルの特定位置のセクターをＮＶＭキャッシュ１２２０に割当し、ファイルの残りの部分をディスクストレージ１２４０に割当できる。このようなファイルの分割政策（Ｆｉｌｅ  ｓｐｌｉｔ  ｓｔｒａｔｅｇｙ）は多様な基準によって設定され得る。ファイルの分割作業にしたがって、データ経路コントローラ１２１０ａは書込み要請されたファイルに対応するタッグを各々の分割された部分に追加することができる。追加されるタッグを通じて後にファイルに対する読出し要請の際にファイルの再結合が容易に遂行できる。
【００６５】
段階Ｓ１３０で、データ経路コントローラ１２１０ａは分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ、例えばヘッダー）をＮＶＭキャッシュ１２２０に書き込む。そして、データ経路コントローラ１２１０ａは分割されたファイルの第２部分（２ｎｄ  ｐａｒｔ、例えばボディー）をディスクストレージ１２４０に書き込む。この時、データ経路コントローラ１２１０ａはホスト１１００から提供されるファイルアドレスに対応する論理アドレスと、データ格納装置の格納媒体（ＮＶＭ、磁気ディスク）の物理アドレスとの間にマッピング関係を定義するマッピングテーブルを構成することができる。即ち、ホスト１１００から提供されたファイルの論理アドレスにマッピングされるデータ格納装置１２００のアドレスに、ファイルの第１部分が格納されるＮＶＭキャッシュ１２２０のアドレスと、ファイルの第２部分とが格納されるディスクストレージ１２４０のアドレスを包含させ得る。このようなマッピングテーブルはバッファメモリ１２３０で構成され得る。
【００６６】
段階Ｓ１４０で、データ経路コントローラ１２１０ａはバッファメモリ１２３０又は別に具備されるワーキングメモリで構成されたファイルのマッピング情報（Ｆｉｌｅ  Ｍａｐｐｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ：ＦＭＩ）をＮＶＭキャッシュ１２２０に具備される特定メモリ領域にアップデートする。しかし、ファイルのマッピング情報ＦＭＩがアップデートされる格納領域は本発明の説明のみに制限されない。
【００６７】
上述した手続によって１つのファイルはデータ格納装置１２００に具備される異種のデータ格納媒体に分離されて格納される。したがって、ディスクストレージ１２４０に格納されたファイルの第２部分のみを取出することで意味ある情報を構成できない。したがって、データ格納装置１２００の保安性能が画期的に向上され得る。
【００６８】
図８は図７のデータ管理方法の例を１つのファイルを参照して示す図面である。図８を参照して、書込み要請された１つのファイルに対するデータ格納装置１２００の管理方法が段階毎に説明される。
【００６９】
（ａ）段階はホスト１１００から書込み要請されてデータ格納装置１２００へ提供される１つのファイルを示す。ホスト１１００による書込み要請の際に提供される論理アドレスは一般的に開始論理アドレスＬＢＡ＿０と該当ファイルを構成するセクター数ｎＳＣとによって提供され得る。この時、提供されたファイルは元の情報を含むボディーフィールド（Ｂｏｄｙ  ｆｉｅｌｄ）と、ホスト１１００が制御情報に追加したヘッドフィールド（Ｈｅａｄ  ｆｉｅｌｄ）とを含む。
【００７０】
（ｂ）段階で、データ経路コントローラ１２１０ａは設定されたファイル分割政策（Ｆｉｌｅ  ｓｐｌｉｔ  ｓｔｒａｔｅｇｙ）にしたがってファイルを２つの部分に分離する。例えば、ヘッドフィールド（Ｈｅａｄ）と、相対的に容量が大きい複数のセクターで構成されるボディーフィールド（Ｂｏｄｙ）とを分離するようにファイル分割政策が提供され得る。しかし、ファイルの分割政策はユーザー（Ｕｓｅｒ）の目的や意図にしたがって多様に設定され得る。
【００７１】
データ経路コントローラ１２１０ａは分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とに対する連結（Ｌｉｎｋｉｎｇ）作業を遂行できる。ファイルの第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とは互に異なる住所方式を使用する格納媒体に書き込まれるので、読出し要請が発生する場合に容易であるファイル構成が可能しなければならない。したがって、データ経路コントローラ１２１０ａは互に異なる格納媒体に書き込まれた第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とが１つのファイルであり、読出し動作の時に連結作業を容易にするためのタッグＩＤ又はコンテキストＩＤを追加することができる。しかし、タッグの追加無しでもアドレスマッピングを通じて第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とが１つのファイルとして認識されるように設定され得ることは容易に理解できる。
【００７２】
（ｃ）段階で、データ経路コントローラ１２１０ａは分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）をＮＶＭキャッシュ１２２０に書き込む。そして、データ経路コントローラ１２１０ａは分割されたファイルの第２部分（２ｎｄ  ｐａｒｔ）をディスクストレージ１２４０に書き込む。
【００７３】
図９は図３のデータ経路コントローラ１２１０ａが遂行するデータ管理方法の他の例を示す順序図である。図９を参照すれば、データ格納装置１２００はホスト１１００から提供される１つのファイルを２つの互に異なる格納媒体に格納する。その上に、ＮＶＭキャッシュ１２２０に格納されるデータに対しては暗号化演算が適用される。
【００７４】
段階Ｓ２１０で、ホスト１１００からファイルに対する書込み要請が発生すれば、データ経路コントローラ１２１０ａはホストインターフェイス（１２１３、図３参照）へ入力される命令語待機列をデコーディングする。命令語待機列に対するデコーディングにしたがって、データ経路コントローラ１２１０ａはホスト１１００からファイルに対する書込み要請を認知し、書込み要請されたファイルに対応するアドレスとデータとを受信する。
【００７５】
段階Ｓ２２０で、データ経路コントローラ１２１０ａは書込み要請されたファイルに対する分割（Ｓｐｌｉｔ）を遂行する。データ経路コントローラ１２１０ａによって遂行されるファイル分割は予め設定されたファイル分離政策（Ｆｉｌｅ  ｓｐｌｉｔ  ｓｔｒａｔｅｇｙ）にしたがって進行される。例えば、データ経路コントローラ１２１０ａは書込み要請されたファイルを２つの部分（１ｓｔ  ｐａｒｔ  ａｎｄ  ２ｎｄ  ｐａｒｔ）に分離できる。分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）はファイルのヘッド（Ｈｅａｄ）部分に対応し、分割されたファイルの第２部分（２ｎｄ  ｐａｒｔ）はファイルのボディーに対応することができる。このようなファイルの分割政策（Ｆｉｌｅ  ｓｐｌｉｔ  ｓｔｒａｔｅｇｙ）は多様な基準によって設定され得る。ファイルの分割作業にしたがって、データ経路コントローラ１２１０ａは書込み要請されたファイルに対応するタッグ（Ｔａｇ）を各々の分割された部分に追加することができる。追加されるタッグ（Ｔａｇ）を通じて後にファイルに対する読出し要請の際にファイルの再結合が容易に遂行できる。
【００７６】
段階Ｓ２３０で、分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算が遂行される。分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算はデータ経路コントローラ１２１０ａで遂行できる。又は、分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算はメモリコントローラ（１２２０ａ、図５参照）で遂行できる。データ経路コントローラ１２１０ａによってＮＶＭキャッシュ１２２０へ分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する書込み要請が伝達されれば、メモリコントローラ１２２０ａのキー管理部１２２２はアドレス情報を参照して保安キーを不揮発性メモリ装置１２２０ｂから読み出す。そして、保安キーと分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）は暗号化エンジン１２２５へ伝達される。暗号化エンジン１２２５は伝達された保安キーを利用して分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算を遂行する。
【００７７】
段階Ｓ２４０で、暗号化された第１部分（１ｓｔ  ｐａｒｔ）に対応するデータは不揮発性メモリ装置１２２０ｂに、分割されたファイルの第２部分（２ｎｄ  ｐａｒｔ）はディスクストレージ１２４０に書き込まれる。この時、データ経路コントローラ１２１０ａはホスト１１００から提供されるファイルアドレスに対応する論理アドレスと、データ格納装置の格納媒体（ＮＶＭ、磁気ディスク）の物理アドレスとの間にマッピング関係を定義するマッピングテーブルを構成することができる。即ち、ホスト１１００から提供されたファイルの論理アドレスにマッピングされるデータ格納装置１２００のアドレスに、ファイルの第１部分が格納されるＮＭＶキャッシュ１２２０のアドレスと、ファイルの第２部分が格納されるディスクストレージ１２４０のアドレスを包含させ得る。このようなマッピングテーブルはバッファメモリ１２３０で構成され得る。
【００７８】
段階Ｓ２５０で、データ経路コントローラ１２１０ａはバッファメモリ１２３０又は別に具備される動作メモリで構成されたファイルのマッピング情報（Ｆｉｌｅ  Ｍａｐｐｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ：ＦＭＩ）をＮＶＭキャッシュ１２２０に具備される特定メモリ領域にアップデートする。しかし、ファイルのマッピング情報ＦＭＩがアップデートされる格納領域は本発明の説明のみに制限されない。
【００７９】
上述した手続によって１つのファイルはデータ格納装置１２００に具備される異種のデータ格納媒体に分離されて格納される。特に、ＮＶＭキャッシュ１２２０に格納される分割されたファイルの一部に対する暗号化演算が遂行できる。したがって、上述した実施形態によれば、書込み要請されたファイルに対する保安性が強化され得る。
【００８０】
図１０は図９のデータ管理方法を１つのファイルを基準に示す図面である。図１０を参照して、書込み要請された１つのファイルに対するデータ格納装置１２００の管理方法が段階毎に説明される。
【００８１】
（ａ）段階はホスト１１００から書込み要請されてデータ格納装置１２００へ提供される１つのファイルを示す。ホスト１１００による書込み要請の際に提供される論理アドレスは一般的に開始論理アドレスＬＢＡ＿０と該当ファイルを構成するセクター数ｎＳＣとで提供され得る。この時、提供されたファイルは元の情報を含むボディーフィールド（Ｂｏｄｙ）と、ホスト１１００が制御情報として追加したヘッドフィールド（Ｈｅａｄ）とを含む。
【００８２】
（ｂ）段階で、データ経路コントローラ１２１０ａは設定されたファイル分割政策（Ｆｉｌｅ  ｓｐｌｉｔ  ｓｔｒａｔｅｇｙ）にしたがってファイルを少なくとも２つの部分に区分する。例えば、概ね１つのセクターよりサイズが小さいヘッドフィールド（Ｈｅａｄ）と相対的に複数のセクターで構成されるボディーフィールド（Ｂｏｄｙ）を分離するようにファイル分割政策が提供され得る。しかし、ファイルの分割政策はユーザーの目的や意図にしたがって多様に設定され得る。
【００８３】
ここで、データ経路コントローラ１２１０ａは分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とに対する連結（Ｌｉｎｋｉｎｇ）作業を遂行できる。ファイルの第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とは互に異なる住所方式を使用する格納媒体に書き込まれるので、読出し要請が発生する場合に容易であるファイル構成が可能でなければならない。したがって、データ経路コントローラ１２１０ａは互に異なる格納媒体に書き込まれた第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とが１つのファイルであり、読出し動作の時連結作業を容易にするためのタッグＩＤ（Ｔ１、Ｔ２）やコンテキストＩＤを追加することができる。しかし、タッグの追加無しでもアドレスマッピングを通じて第１部分（１ｓｔ  ｐａｒｔ）と第２部分（２ｎｄ  ｐａｒｔ）とが１つのファイルとして認識されるように設定され得ることは容易に理解できる。
【００８４】
（ｃ）段階で、分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算が遂行される。分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算はデータ経路コントローラ１２１０ａ又はメモリコントローラ（１２２０ａ、図５参照）で遂行できる。データ経路コントローラ１２１０ａによってＮＶＭキャッシュ１２２０に分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する書込み要請が伝達されれば、メモリコントローラ１２２０ａのキー管理部１２２２はアドレス情報を参照して保安キーを不揮発性メモリ装置１２２０ｂから読み出す。そして、保安キーと分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）とは暗号化エンジン１２２５へ伝達される。暗号化エンジン１２２５は伝達された保安キーを利用して分割されたファイルの第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算を遂行する。
【００８５】
（ｄ）段階で、データ経路コントローラ１２１０ａは分割されたファイルの暗号化された第１部分（１ｓｔ  ｐａｒｔ）をＮＶＭキャッシュ１２２０に書き込む。そして、データ経路コントローラ１２１０ａは分割されたファイルの第２部分（２ｎｄ  ｐａｒｔ）をディスクストレージ１２４０に書き込む。
【００８６】
図１１はデータ格納装置の他の実施形態を示すブロック図である。図１１を参照すれば、データ格納装置１２００ｂはＮＶＭコントローラ１２１０ｂ、ＮＶＭ１２２０ｂ、及びディスクストレージ１２４０を含む。ディスクストレージ１２４０はディスクコントローラ１２４１と磁気ディスク１２４５とを含む。ここで、ホスト１１００から書込み要請されたファイルに対する分割をＮＶＭコントローラ１２１０ｂが遂行する。
【００８７】
ＮＶＭコントローラ１２１０ｂはホスト（１１００、図１参照）のファイル書込み要請をデコーディングする。書込み要請される１つのファイルはホスト１１００のファイルシステムによってファイル名（Ｆｉｌｅ  ｎａｍｅ）とファイル大きさ（Ｆｉｌｅ  ｓｉｚｅ）とが割当される。特に、ファイルシステムはファイルを管理し、制御するためのメタデータ（Ｍｅｔａ  ｄａｔａ）を生成する。メタデータはファイルヘッドに包含され得る。ＮＶＭコントローラ１２１０ｂは特定ファイル分割政策にしたがって書込み要請されたファイルを複数の部分に分割する。ＮＶＭコントローラ１２１０ｂは分割されたファイルの中で一部はＮＶＭ１２２０ｂに、そして分割されたファイルの残りの部分は磁気ディスク１２４５に書き込む。
【００８８】
ＮＶＭ１２２０ｂは電源が遮断されでも格納されたデータが消失されないフラッシュメモリを格納媒体として使用することができる。例えば、ＮＶＭ１２２０ｂはＮＡＮＤ形フラッシュメモリ、ＮＯＲ形フラッシュメモリ、及びＯｎｅＮＡＮＤフラッシュメモリのようなフュージョンメモリの中で少なくとも１つを含むことができる。ＮＶＭ１２２０ｂは格納されるデータに対する暗号化演算のための保安キーを格納する保安キー格納領域を含むことができる。
【００８９】
ディスクコントローラ１２４１はＮＶＭコントローラ１２１０ｂの制御にしたがって提供されるデータを磁気ディスク１２４５に書き込む。磁気ディスク１２４５には書込み要請又は読出し要請されるデータがセクター単位にアクセスされる。
【００９０】
上述した本発明のデータ格納装置１２００ｂによれば、ホスト１１００から書込み要請されるファイルがＮＶＭコントローラ１２１０ｂによって特定基準にしたがって分割される。そして、分割されたファイルの一部はＮＶＭ１２２０ｂに、分割されたファイルの残りの部分は磁気ディスク１２４５に格納される。したがって、攻撃者によって磁気ディスク１２４５に格納されたファイルの解釈のみでは意味あるファイルの構成が不可能である。
【００９１】
図１２は図１１のＮＶＭコントローラ１２１０ｂとＮＶＭ１２２０ｂとを具体的に示すブロック図である。図１２を参照すれば、ＮＶＭコントローラ１２１０ｂはデータ格納装置１２００ｂのメーンコントローラとして動作する。
【００９２】
ＮＶＭコントローラ１２１０ｂはＮＶＭ１２２０ｂを制御するように構成される。ＮＶＭコントローラ１２１０ｂはＳＲＡＭ１２５１、キー管理部１２５２、中央処理装置１２５３、ディスクインターフェイス１２５４、ホストインターフェイス１２５５、暗号化エンジン１２５６、及びＮＶＭインターフェイス１２２６を含む。
【００９３】
ＳＲＡＭ１２５１は中央処理装置１２５３の動作メモリとして使用される。例えば、ＳＲＡＭ１２５１には中央処理装置１２５３で駆動される多様なファームウェアがロードされ得る。そして、ＳＲＡＭ１２５１にはホスト１１００から提供されるデータの論理住所をＮＶＭ１２２０ｂと磁気ディスク１２４５とにマッピングするためのマッピングテーブルが構成され得る。そして、ＳＲＡＭ１２５１にはＮＶＭ１２２０ｂを駆動するためのフラッシュ変換階層ＦＴＬがロードされ得る。
【００９４】
キー管理部１２５２はホスト１１００から書込み要請が発生すれば、書込み要請されるデータに対する暗号化のための保安キー（Ｓｅｃｕｒｉｔｙ  Ｋｅｙ）を暗号化エンジン１２５６へ提供する。キー管理部１２５２はホスト１１００からの書込み要請の際に提供されるアドレスを参照して、対応する保安キーをＮＶＭ１２２０ｂの保安キー格納領域から読み出す。キー管理部１２５２はホスト１１００からの読出し要請が発生する時にも要請されたデータに対応する保安キーをＮＶＭ１２２０ｂから読出し、暗号化エンジン１２５６へ提供する。
【００９５】
中央処理装置１２５３は提供されるファームウェアにしたがって多様なメモリ管理動作を遂行できる。例えば、中央処理装置１２５３はＮＶＭ１２２０ｂとホスト１１００との間をインターフェイシングするためのフラッシュ変換階層ＦＴＬの機能を遂行できる。フラッシュ変換階層ＦＴＬの機能の中で１つである住所変換機能を遂行するために、中央処理装置１２５３はＳＲＡＭ１２５１にマッピングテーブルを構成する。そして、周期的に中央処理装置１２５３はマッピングテーブルをＮＶＭ１２２０ｂのマッピング情報領域にアップデートする。
【００９６】
さらに、中央処理装置１２５３はホスト１１００から書込み要請されるファイルを少なくとも２つの書込み単位に分割する。中央処理装置１２５３は書込み要請される１つのファイルをファイル分割政策にしたがって２つのデータ単位に分割できる。中央処理装置１２５３は分割された２つの書込み単位を１つのファイルであることを示すタッグを追加することができる。中央処理装置１２５３は分割された２つの書込み単位を各々ＮＶＭ１２２０ｂと磁気ディスク１２４５とに書き込むことができる。特に、中央処理装置１２５３はＮＶＭ１２２０ｂに書き込む分割されたデータに対する暗号化演算を遂行するようにキー管理部１２５２と暗号化エンジン１２５６とを制御することができる。中央処理装置１２５３はマルチコアで構成され得る。
【００９７】
暗号化エンジン１２５６はキー管理部１２５２から提供される保安キーを参照して、書込み要請されるデータ又は読出し要請されるデータに対する暗号化／復号化演算を遂行する。書込み要請されるデータに対して暗号化エンジン１２５６はキー管理部１２５２から提供される保安キーを使用して暗号化する。反面、読出し要請されるデータに対して暗号化エンジン１２５６はキー管理部１２５２から提供される保安キーを使用して復号化（Ｄｅｃｒｙｐｔｉｏｎ）する。暗号化エンジン１２５６は例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）アルゴリズムを遂行するように構成された装置であり得る。
【００９８】
ホストインターフェイス１２５５はホスト１１００とデータ格納装置１２００ｂとの間でデータ交換プロトコルを提供する。ディスクインターフェイス１２５４はＮＶＭコントローラ１２１０ｂとディスクコントローラ１２４１との間でデータ交換プロトコルを提供する。そして、ＮＶＭインターフェイス１２５７はＮＶＭコントローラ１２１０ｂとＮＶＭ１２２０ｂとの間でデータ交換プロトコルを提供する。
【００９９】
以外にＮＶＭコントローラ１２１０ｂはＮＶＭ１２２０ｂから読み出されたデータのエラーを検出及び訂正するためのエラー訂正演算ブロック（図示せず）をさらに包含できる。たとえ図面には図示せずが、本発明によるＮＶＭコントローラ１２１０ｂはファイルの分割政策及びファイルの分割を遂行するアルゴリズムを格納するためのＲＯＭ（図示せず）等がさらに提供され得る。
【０１００】
ＮＶＭ１２２０ｂは１つ又はその以上のフラッシュメモリ装置を含むことができる。ＮＶＭ１２２０ｂは基本的にデータを格納するセルアレイ１２６２とアクセス要請されるデータを書き込むか、或いは読出するためのページバッファ１２６１を含む。セルアレイ１２６２にはホスト１１００から提供される論理アドレスをＮＶＭ１２２０ｂの物理アドレスに変換させるためのマッピング情報（Ｍａｐｐｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ）領域が包含される。そして、セルアレイ１２６２には暗号化演算のための保安キーが格納される保安キー（Ｓｅｃｕｒｉｔｙ  Ｋｅｙ）領域が包含される。さらに、セルアレイ１２６２には書込み要請されるデータが格納される使用者データ（Ｕｓｅｒ  ｄａｔａ）領域が包含され得る。
【０１０１】
ここで、ＮＶＭ１２２０ｂが消去した後、書込み方式に駆動されるＮＡＮＤ形フラッシュメモリを例示的に説明したが、本発明はこれに制限されない。例えば、ＮＶＭ１２２０ｂはＰＲＡＭ、ＭＲＡＭ、ＲｅＲＡＭ、ＦＲＡＭ、ＮＯＲフラッシュメモリ等が使用され得る。
【０１０２】
図１３は図１２のＮＶＭコントローラ１２１０ｂのデータ管理方法を示す順序図である。図１３を参照すれば、段階Ｓ３１０、Ｓ３２０、Ｓ３４０、Ｓ３５０及びＳ３６０は各々図９に図示された段階Ｓ２１０乃至Ｓ２５０に各々対応するので、詳細な説明は省略する。
【０１０３】
しかし、段階Ｓ３３０で、ＮＶＭコントローラ１２１０ｂはファイルの第１部分（１ｓｔ  ｐａｒｔ）を暗号化するための保安キーをＮＶＭ１２２０ｂから読み出す。ＮＶＭ１２２０ｂから読み出された保安キーは暗号化エンジン１２５６へ提供される。以後の段階Ｓ３４０で、分割されたファイルの中で第１部分（１ｓｔ  ｐａｒｔ）に対する暗号化演算が暗号化エンジン１２５６によって遂行される。
【０１０４】
図１４は本発明のその他の実施形態を示すブロック図である。図１４を参照すれば、使用者装置２０００はホスト２１００とデータ格納装置２２００とを含む。大容量格納装置として使用されるデータ格納装置１２００は半導体メモリ装置として提供されるＮＶＭ２２２０と磁気ディスク２２４０とを含む。ここで使用者装置２０００はパーソナルコンピューター、デジタルカメラ、カムコーダー、携帯電話、ＭＰ３、ＰＭＰ、ＰＤＡ等のような情報処理機器であり得る。
【０１０５】
ホスト２１００は応用プログラムの駆動の際にファイルの生成やファイルを削除できる。このようなファイルの生成と削除とはホスト２１００のファイルシステム（２１２０、Ｆｉｌｅ  ｓｙｓｔｅｍ）によって制御される。ホスト２１００の内部にはＤＲＡＭ、ＳＲＡＭ等のような揮発性メモリとＥＥＰＲＯＭ、ＦＲＡＭ、ＰＲＡＭ、ＭＲＡＭ、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）等のような不揮発性メモリを含むことができる。ホスト２１００はファイルを生成してデータ格納装置２２００に書込みを要請することができる。この時、生成されたファイルはデータ格納装置２２００へセクター（Ｓｅｃｔｏｒ）単位に伝達され得る。そして、１つのファイルに対する書込み要請やトランザクションはクラスター単位に要請されることもあり得る。
【０１０６】
ホスト２１００がファイルＡをデータ格納装置２２００に書き込むように要請したと仮定する。ファイルＡは４つのセクターａ１、ａ２、ａ３、ａ４で構成されることと仮定する。ここで、ファイルＡはファイルヘッダーに対応するセクターａ１とファイルボディー（Ｆｉｌｅ  ｂｏｄｙ）に対応するセクターａ２、ａ３、ａ４で構成される。このようなファイル書込み要請が発生すれば、ホスト２１００のファイルシステム２１２０又は装置ドライバー２１４０はファイルＡを構成する４つのセクターの各々に対してデータ格納装置２２００に含まれる格納媒体を指定することができる。例えば、ファイルシステム２１２０又は装置ドライバー２１４０はセクターａ１をＮＶＭ２２２０に割当し、セクターａ２、ａ３、ａ４は磁気ディスク２２４０に割当できる。このようなデータの格納位置を割当方法の一例としてタッグを各々のセクターに付加方式が使用され得る。
【０１０７】
このようなファイルＡに対する書込み要請がデータ格納装置２２００へ提供されれば、データ格納装置２２００はファイルシステム２１２０又は装置ドライバー２１４０によって指示された位置にファイルヘッダーとファイルボディーとを書き込む。例えば、データ格納装置２２００のデータ経路コントローラ２２１０はファイルヘッダーに対応するセクターａ１をＮＶＭ２２２０に格納できる。反面、データ経路コントローラ２２１０は相対的に高容量のファイルボディーに対応するセクターａ２、ａ３、ａ４を磁気ディスク２２４０に書き込むことができる。その上に、データ経路コントローラ２２１０はＮＶＭ２２２０に格納されるデータに対して保安キーを使用した暗号化演算を適用することができる。
【０１０８】
このような、１つのファイルが異種の格納媒体に書き込むと、いずれか１つの格納媒体に書き込まれた資料のみでは１つの意味あるファイルを構成できない。したがって、データの保安性が向上され得ることを意味する。さらに、保安キーを使用していずれか１つの格納媒体に書き込まれるデータに対する暗号化過程を追加すれば、１つのファイルを復元するための試図はより難しくなる。
【０１０９】
図１５は図１４の使用者装置のソフトウェア構造を示すブロック図である。図１５を参照すれば、使用者装置２０００のファイルを管理ソフトウェアは上位階層と下位階層とに区分され得る。ソフトウェアの上位階層にはホスト２１００で駆動される応用プログラム２０１０とファイルシステム／装置ドライバー１０２０とが包含され得る。そして、ソフトウェアの下位階層にはデータ経路コントローラ２０３０、ＮＶＭコントローラ２０４０、ＮＶＭ２０４５、ディスクコントローラ２０５０、及び磁気ディスク２０５５が包含され得る。
【０１１０】
応用プログラム２０１０は使用者装置２０００を駆動する最上位プログラムに該当される。応用プログラム２０１０は使用者又は他の応用プログラムが特定な機能を直接遂行するように設計されたプログラムである。応用プログラム２０１０は運営体制ＯＳとその他の支援プログラムとのサービスを使用する。応用プログラム２０１０と運営体制ＯＳとによってデータ格納装置２２００へのアクセス要請が発生できる。
【０１１１】
ファイルシステム／装置ドライバー２０２０は書込み要請されたデータに格納媒体を指定するタッグＩＤを追加する。例えば、論理アドレスＬＢＡ０〜ＬＢＡ３に対応するファイル（Ｆｉｌｅ  １）に対する書込み要請をデータ格納装置２２００へ伝達する時、ＬＢＡ０に対応するセクターにはタッグＩＤ（Ｔ１）を追加する。そして、ファイルシステム／装置ドライバー２０２０はＬＢＡ１乃至ＬＢＡ３に対応するセクターにはタッグＩＤ（Ｔ２）を追加する。
【０１１２】
データ経路コントローラ２０３０はファイルシステム／装置ドライバー２０２０から提供されるファイル単位のアクセス要請を遂行する。特に、本発明によるデータ経路コントローラ２０３０はホスト２１００から書込み要請される１つのファイルを少なくとも２つの単位に分割して管理することができる。データ経路コントローラ２０３０は分割された２つの単位の中でいずれか１つの単位をＮＶＭ２０４５に書き込み、他の１つの単位を磁気ディスク２０５５に書き込む。データ経路コントローラ２０３０はホスト２１００からの読出し要請が発生すれば、読出し要請されたファイルに対応する分割されたデータ単位をＮＶＭ２０４５と磁気ディスク１０５５から各々読み出す。そして、データ経路コントローラ２０３０はＮＶＭ２０４５と磁気ディスク１０５５から読み出された２つの読出しデータを１つのファイルに集めてホスト２１００へ提供する。
【０１１３】
上述したファイルを管理するために、データ経路コントローラ２０３０は右側に図示された方式にマッピングテーブルを構成することができる。例えば、データ経路コントローラ２０３０は新しいマッピングテーブルを構成してＮＶＭ２０４５と磁気ディスク１０５５とにアクセスできる。又は、データ経路コントローラ２０３０は新しいマッピングテーブルの構成無しでホスト２１００から提供される論理アドレスをＮＶＭコントローラ２０４０とディスクコントローラ２０５０とにバイパスすることもある。
【０１１４】
ＮＶＭコントローラ２０４０は上述したデータ経路コントローラ２０３０からの読出し／書込み演算要請に応答してＮＶＭ２０４５も適合な形態のアドレスを変換する。フラッシュメモリのようなＮＶＭ２０４５は上書きが不可能である。フラッシュメモリの場合にはデータを書き込む前に削除演算が先ず行わなければならない。このような削除演算を隠すために、ファイルシステムとフラッシュメモリとの間にフラッシュ変換階層ＦＴＬが使用される。ＮＶＭコントローラ２０４０にはこのようなフラッシュ変換階層ＦＴＬの機能が包含される。
【０１１５】
ＮＶＭコントローラ２０４０はデータ経路コントローラ２０３０が提供するデータをＮＶＭ２０４５に書き込む。この時、追加的に保安キーを使用して書込み要請されたデータに対する暗号化を遂行できる。そして、ＮＶＭコントローラ２０４０は読出し要請されたデータをデータ経路コントローラ２０３０へ提供する。結果的にＮＶＭ２０４５にはファイルヘッダーに対応するデータＬＢＡ０、ＬＢＡ４が格納される。
【０１１６】
ディスクコントローラ２０５０はデータ経路コントローラ２０３０が提供するデータを磁気ディスク２０５５に書き込む。そして、ディスクコントローラ２０５０は読出し要請されたデータを磁気ディスク２０５５から読出してデータ経路コントローラ２０３０へ提供する。結果的に磁気ディスク２０５５にはファイルボディーに対応するデータＬＢＡ１〜ＬＢＡ３、ＬＢＡ５〜ＬＢＡ７が格納される。
【０１１７】
以上で説明されたソフトウェア階層に含まれるデータ経路コントローラ２０３０によって１つのファイルは異種の格納媒体に分割されて格納され得る。そして、分割されたデータは読出し要請の際に、データ経路コントローラ２０３０によって集めてホスト２１００へ提供され得る。ファイルの分割格納によっていずれか１つの格納媒体がハッキングや保安攻撃によって流出され得る。しかし、いずれか１つの格納媒体から流出された情報のみでは意味ある情報が構成するのが難い。したがって、本発明のデータ格納装置２２００を通じて保安性向上を期待できる。
【０１１８】
図１６は上述した図１４のファイルシステム２１２０又は装置ドライバー２１４０によるファイルの分割方法を簡略に示すテーブルである。図１６を参照すれば、ファイルシステム２１２０又は装置ドライバー２１４０は書込み要請されるファイルを構成するセクターに対してデータ格納装置２２００に含まれる格納媒体を指定するタッグＩＤ（Ｔ１、Ｔ２）を付加できる。
【０１１９】
ファイルシステム２１２０又は装置ドライバー２１４０は書込み要請されたファイル１（Ｆｉｌｅ  １）に対応するセクター１０１、１０２、１０３、１０４の中で、ヘッダーに対応するセクター１０１に、ＮＶＭ２２２０に書き込むためのタッグＩＤ（Ｔ１）を付加できる。反面、書込み要請されたファイル１（Ｆｉｌｅ  １）のセクター１０１、１０２、１０３、１０４の中で、ボディーに対応するセクター１０２、１０３、１０４には磁気ディスク２２４０に書き込まれるためのタッグ（Ｔ２）が付加され得る。
【０１２０】
上述したタッグの付加は書込み要請されるファイル（Ｆｉｌｅ  ２、Ｆｉｌｅ  ３）に対しても同様に適用され得る。但し、書込み要請されるファイルの中でＮＶＭ２２２０を指示するタッグＩＤ（Ｔ１）が付加されるセクターの位置はファイル分割政策にしたがって多様に適用され得る。そして、分割にしたがうファイル住所をマッピングするためのテーブルを追加的に運営することになる。ファイルシステム２１２０又は装置ドライバー２１４０の指示にしたがってデータ格納装置２２００は１つのファイルをＮＶＭ２２２０と磁気ディスク２２４０とに分割して格納する。そして、読出しモードの時、タッグＩＤを参照して読出し要請されるファイルをＮＶＭ２２２０と磁気ディスク２２４０から読出してホスト２１００へ提供する。
【０１２１】
図１７は図１４の使用者装置のソフトウェア構造の他の例を示すブロック図である。図１７を参照すれば、図１７はＮＶＭコントローラ２０４０が包含されなかったことによって図１５と区別され得る。したがって、データ経路コントローラ２０３０は図１５のＮＶＭコントローラ２０４０の機能を含むことができる。データ経路コントローラ２０３０はファイルシステム／装置ドライバー２０２０から提供されるファイル単位のアクセス要請をＮＶＭコントローラ２０４０を経由しなくて遂行できる。
【０１２２】
図１８は本発明の実施形態によるデータ格納装置を装着するコンピューティングシステムを示すブロック図である。本発明によるコンピューティングシステム５０００はシステムバス５７００に電気的に連結されるネットワークアダプタ５１００、中央処理装置５２００、大容量格納装置５３００、ＲＡＭ５４００、ＲＯＭ５５００、及びユーザーインターフェイス５６００を含む。
【０１２３】
ネットワークアダプタ５１００はコンピューティングシステム５０００と外部のネットワークとの間のインターフェイシングを提供する。中央処理装置５２００はＲＡＭ５４００に常駐する運営体制（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や応用プログラム（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ）を駆動するための諸般演算処理を遂行する。大容量格納装置５３００はコンピューティングシステム５０００で必要である諸般データを格納する。例えば、大容量格納装置５３００にはコンピューティングシステム５０００を駆動するための運営体制（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、応用プログラム（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ）、多様なプログラムモジュール（Ｐｒｏｇｒａｍ  Ｍｏｄｕｌｅ）、プログラムデータ（Ｐｒｏｇｒａｍ  ｄａｔａ）、及びユーザーデータ（Ｕｓｅｒ  ｄａｔａ）等が格納される。
【０１２４】
ＲＡＭ５４００はコンピューティングシステム５０００のワーキングメモリとして使用され得る。ブーティングの際にＲＡＭ５４００には大容量格納装置５３００から読み出された運営体制（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、応用プログラム（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ）、多様なプログラムモジュール（Ｐｒｏｇｒａｍ  Ｍｏｄｕｌｅ）とプログラムの駆動に所要されるプログラムデータ（Ｐｒｏｇｒａｍ  ｄａｔａ）がロードされる。ＲＯＭ（５５００）にはブーティングの際に運営体制（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が駆動される前から活性化される基本的な入出力システムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が格納される。ユーザーインターフェイス５６００を通じてコンピューティングシステム５０００と使用者との間の情報交換が行われる。以外にも、コンピューティングシステム５０００はバッテリー（Ｂａｔｔｅｒｙ）やモデム（Ｍｏｄｅｍ）等をさらに包含できる。また、たとえ図面には図示せずが、本発明によるコンピューティングシステムには応用チップセット（Ａｐｐｌｉｃａｔｉｏｎ  ｃｈｉｐｓｅｔ）、カメライメージプロセッサー（Ｃａｍｅｒａ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ：ＣＩＳ）、モバイルＤＲＡＭ等がさらに提供され得ることはこの分野の通常的な知識を習得した者に明確である。
【０１２５】
データ格納装置５３００は先に記述したように、異種の格納媒体を具備するハイブリッドハードディスクドライブ（Ｈｙｂｒｉｄ  ＨＤＤ）で構成され得る。そして、書込み要請されるファイルを分割し、分割されたファイルの一部は不揮発性メモリ装置に、そして残りの一部は磁気ディスクに書き込むことができる。さらに、データ格納装置５３００は分割されたいずれか一部分に対する暗号化を適用することができる。このようなファイルの管理方法を通じてデータに対する保安性を画期的に向上させ得る。
【０１２６】
本発明による不揮発性メモリ装置そして／又はメモリコントローラは多様な形態のパッケージを利用して実装され得る。例えば、本発明によるフラッシュメモリ装置そして／又はメモリコントローラは  ＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）、等のようなパッケージを利用して実装され得る。
【０１２７】
以上のように図面と明細書で実施形態が開示された。ここで、特定な用語が使用されたが、これは単なる本発明を説明するための目的で使用されたことであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたことではない。したがって、本技術分野の通常の知識を有する者であれば、これから多様な変形及び均等な他の実施形態が具現できるという点を理解できる。したがって、本発明の真の技術的保護範囲は添付された特許請求の範囲の技術的思想によって定まれなければならない。
【符号の説明】
【０１２８】
１１００・・・ホスト
１２００・・・データ格納装置
１２１０・・・データ経路コントローラ
１ ２１１・・・中央処理装置
１２１２・・・バッファマネージャ
１２１３・・・ホストインターフェイス
１２１４・・・ディスクインターフェイス
１ ２１５・・・ＮＶＭインターフェイス
１２２０・・・不揮発性キャッシュ
１２２０ａ・・・メモリコントローラ
１２２０ｂ・・・不揮発性メモリ装置
１２２１・・・ＳＲＡＭ
１２２２・・・キー管理部
１２２３・・・プロセシングユニット
１２２４・・・第１インターフェイス
１２２５・・・暗号化エンジン
１２２６・・・第２インターフェイス
１２２７・・・ページバッファ
１２２８・・・セルアレイ
１２３０・・・バッファメモリ
１２４０・・・ディスクストレージ
１２５０・・・ＮＶＭコントローラ
１２５１・・・ＳＲＡＭ
１２５２・・・キー管理部
１２５３・・・中央処理装置
１２５４・・・ディスクインターフェイス
１２５５・・・ホストインターフェイス
１ ２５６・・・暗号化エンジン
１２５７・・・ＮＶＭインターフェイス
１２６０・・・ＮＶＭ
１２６１・・・ページバッファ
１２６２・・・セルアレイ
１２７０・・・ディスクコントローラ
１２８０・・・磁気ディスク
２１００・・・ホスト
２１２０・・・ファイルシステム
２１４０・・・ディバイスドライバー
２２００・・・データ格納装置           
２２１０・・・データ経路コントローラ
２２２０・・・ＮＶＭ
２２４０・・・ディスクストレージ
５０００・・・コンピューティングシステム
５１００・・・ネットワークアダプタ
５２００・・・中央処理装置
５３００・・・データ格納装置
５４００・・・ＲＡＭ
５５００・・・ＲＯＭ
５ ６００・・・ユーザーインターフェイス
５７００・・・システムバス
６０００・・・ネットワーク
【図１】
2013120600.tif 000003
【図２】
2013120600.tif 000004
【図３】
2013120600.tif 000005
【図４】
2013120600.tif 000006
【図５】
2013120600.tif 000007
【図６】
2013120600.tif 000008
【図７】
2013120600.tif 000009
【図８】
2013120600.tif 000010
【図９】
2013120600.tif 000011
【図１０】
2013120600.tif 000012
【図１１】
2013120600.tif 000013
【図１２】
2013120600.tif 000014
【図１３】
2013120600.tif 000015
【図１４】
2013120600.tif 000016
【図１５】
2013120600.tif 000017
【図１６】
2013120600.tif 000018
【図１７】
2013120600.tif 000019
【図１８】
2013120600.tif 000020