(57)【要約】      （修正有）【課題】ネットワークストレージデバイスのコントローラの構造を簡略化させ、拡張の容易性を提供するためのイーサネットストレージデバイスを提供する。【解決手段】ネットワークファブリックに連結されるネットワークストレージデバイス２００は、ネットワークファブリックを介して提供されるコマンドを変換して実行するネットワークストレージコントローラと、ネットワークストレージコントローラの制御に応じてデータを交換する不揮発性メモリクラスタ２８０とを含む。不揮発性メモリクラスタは、ネットワークストレージコントローラと第1チャネルを介して連結される第1不揮発性メモリアレイと、ネットワークストレージコントローラと第2チャネルを介して連結される不揮発性メモリスイッチと、不揮発性メモリスイッチの制御に応じてネットワークストレージコントローラと通信する第2不揮発性メモリアレイとを含む。【選択図】図１
2019185765.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークファブリックに連結されるネットワークストレージデバイスであって、
前記ネットワークファブリックとのインターフェーシングを行い、前記ネットワークファブリックを介して提供されるコマンドを変換して実行するネットワークストレージコントローラと、
前記ネットワークストレージコントローラの制御に応じて前記ネットワークストレージコントローラとデータを交換する不揮発性メモリクラスタと、を含み、
前記不揮発性メモリクラスタは、
前記ネットワークストレージコントローラと第1チャネルを介して連結される第1不揮発性メモリアレイと、
前記ネットワークストレージコントローラと第2チャネルを介して連結される不揮発性メモリスイッチと、
前記不揮発性メモリスイッチの制御に応じて前記ネットワークストレージコントローラと通信する第2不揮発性メモリアレイと、を含む、ネットワークストレージデバイス。
【請求項２】
前記ネットワークストレージコントローラは、前記ネットワークファブリックから前記コマンドとして提供される第1コマンドを前記不揮発性メモリクラスタを制御するための第2コマンドに変換する、請求項１に記載のネットワークストレージデバイス。
【請求項３】
前記第1コマンドは、ネットワーク伝送フォームを含む、請求項２に記載のネットワークストレージデバイス。
【請求項４】
前記ネットワークストレージコントローラは、前記第2コマンドに応じて前記不揮発性メモリクラスタに対するコマンドを遂行する、請求項２に記載のネットワークストレージデバイス。
【請求項５】
前記ネットワークストレージデバイスは、バッファメモリをさらに含み、
前記ネットワークストレージコントローラは、
前記ネットワークファブリックとの通信のための第1ポートと、
前記バッファメモリとの通信のための第2ポートと、
前記不揮発性メモリクラスタとの通信のための第3ポートと、をさらに含む、請求項４に記載のネットワークストレージデバイス。
【請求項６】
前記第1ポートは、ネットワーク伝送フォームをサポートするインターフェースを含む、請求項５に記載のネットワークストレージデバイス。
【請求項７】
前記ネットワーク伝送フォームは、高速イーサネットシステムを含む、請求項６に記載のネットワークストレージデバイス。
【請求項８】
前記ネットワークストレージコントローラは、
前記ネットワークファブリックから前記コマンドとして提供される第1コマンドを第2コマンドに変換し、前記第2コマンドに応じて前記不揮発性メモリクラスタを制御するストレージコントローラと、
前記ストレージコントローラの要請に応じて前記不揮発性メモリクラスタに対するコマンドを遂行する外付け型演算デバイスと、を含む、請求項１に記載のネットワークストレージデバイス。
【請求項９】
前記外付け型演算デバイスは、前記第1コマンド又は前記第2コマンドを前記ストレージコントローラと分散処理したり、単独で処理したりする1つ以上のプロセッサ又は加速エンジンである、請求項８に記載のネットワークストレージデバイス。
【請求項１０】
前記ネットワークストレージコントローラは、
前記ネットワークファブリックから前記コマンドとして提供される第1コマンドを受信するホストインターフェースと、
前記第1コマンドを前記不揮発性メモリクラスタを制御するための第2コマンドに変換し、前記第2コマンドに応じて前記不揮発性メモリクラスタに対するコマンドを遂行するストレージコントローラと、
前記ストレージコントローラの制御に応じて前記不揮発性メモリクラスタにアクセスするインターフェースと、を含む、請求項１に記載のネットワークストレージデバイス。
【請求項１１】
ネットワークストレージデバイスであって、
ネットワークスイッチを介して提供される第1コマンドを不揮発性メモリを制御するための第2コマンドに変換し、前記第2コマンドをインターフェースを使用して出力するストレージコントローラと、
前記ストレージコントローラから出力される前記第2コマンドに基づいて書き込みデータを格納したり、格納されたデータを前記ストレージコントローラに出力したりする不揮発性メモリクラスタと、を含み、
前記ストレージコントローラは、前記不揮発性メモリクラスタに対するコマンドを遂行する一つ又はそれ以上の外付け型演算デバイスを含む、ネットワークストレージデバイス。
【請求項１２】
前記第1コマンドは、ネットワーク伝送フォームを有し、前記第2コマンドは、前記不揮発性メモリを制御するためのフォームを有する、請求項１１に記載のネットワークストレージデバイス。
【請求項１３】
前記外付け型演算デバイスは、ホストからの要請に応じたコマンドを処理する1つ又はそれ以上のプロセッサを含む、請求項１１に記載のネットワークストレージデバイス。
【請求項１４】
前記外付け型演算デバイスは、前記ホストからの要請に応じたネットワーク管理動作を遂行する、請求項１３に記載のネットワークストレージデバイス。
【請求項１５】
前記ストレージコントローラは、内蔵型演算デバイスを含み、
前記外付け型演算デバイスは、前記第1コマンド又は前記第2コマンドを前記内蔵型演算デバイスと分散処理する1つ又はそれ以上のプロセッサを含む、請求項１１に記載のネットワークストレージデバイス。
【請求項１６】
前記不揮発性メモリのクラスタは、前記ストレージコントローラと第1チャネルを介して連結され、前記インターフェースを介して制御される第1不揮発性メモリアレイ、を含む、請求項１１に記載のネットワークストレージデバイス。
【請求項１７】
前記不揮発性メモリのクラスタは、第2不揮発性メモリアレイをさらに含み、
前記ストレージコントローラと第2チャネルを介して連結され、前記第2不揮発性メモリアレイと前記インターフェースとの間でインターフェーシングを遂行する第1不揮発性メモリスイッチ、をさらに含む、請求項１６に記載のネットワークストレージデバイス。
【請求項１８】
前記第1不揮発性メモリスイッチは、
前記インターフェースから提供される第1アドレスを前記第2不揮発性メモリアレイとマッピングする第1スイッチコントローラと、
前記インターフェースと前記第2不揮発性メモリアレイとの間で伝達されるデータをバッファリングする第1バッファと、を含む、請求項１７に記載のネットワークストレージデバイス。
【請求項１９】
前記不揮発性メモリのクラスタは、
第3不揮発性メモリアレイと、
前記第1不揮発性メモリスイッチと前記第3不揮発性メモリアレイとの間でインターフェーシングを遂行する第2不揮発性メモリスイッチと、をさらに含む、請求項１８に記載のネットワークストレージデバイス。
【請求項２０】
前記第1乃至第2の不揮発性メモリスイッチは、相互独立的にアドレスマッピングを遂行する、請求項１９に記載のネットワークストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリデバイスに関し、さらに具体的には大容量データを格納するネットワークストレージデバイスに関する。
【背景技術】
【０００２】
フラッシュメモリベースの大容量ストレージデバイスの代表的な例として、ソリッドステートドライブ（以下、SSD）がある。最近になってSSDの爆発的な需要増加に伴い、その用途は多様に分化されている。例えば、サーバ用SSD、クライアント用SSD、データセンター用SSDなどでSSDの用途が細分化されることができる。SSDのインターフェースは、このようなそれぞれの用途に応じて最適な速度と信頼性を提供することができなければならない。これらの要求を満たすためにSATA、SAS、PCIeベースのNVMeが活発に研究及び適用されている。
【０００３】
最近では、大容量のデータセンターのようなシステムで拡張の容易性を提供するためのSSDのインターフェースが活発に開発されている。特に、イーサネット（登録商標）スイッチのようなネットワークファブリック（Network  Fabric）にSSDを装着するための標準としてNVMe-oF（NVMe  over  Fabrics）が提案されて活発に研究されている。NVMe-oFは、広範なストレージネットワーキングファブリック（例えば、イーサネット（Ethernet）、ファイバチャネル（Fiber  Channel）、InfiniBandなど）を介してNVMeストレージプロトコルをサポートする。
【０００４】
NVMe-oFストレージプロトコルでもNVMe  SSDを使用する。したがって、NVMe  SSDを含むストレージのインターフェースは、ネットワークファブリックのプロトコルをNVMe-oFプロトコルに変換したり、データバッファの機能を有したりする。しかし、この場合に、複数のプロトコルレイヤに対応するプロトコル変換を行わなければならないのでレイテンシの増加は避けられないようになる。
【０００５】
したがって、レイテンシの減少と容量拡張の容易性のためにNVMe  SSDでない不揮発性メモリデバイス（NVM）又は不揮発性メモリアレイ（NVM  Array）を格納媒体として使用し、マルチプロトコル変換（Translation）を効率的に行う技術が切実に要求されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、ネットワークストレージデバイスのコントローラの構造を簡略化させ、拡張の容易性を提供するためのイーサネットストレージデバイスを提供することにある。
【課題を解決するための手段】
【０００７】
前記目的を達成するための本発明の一実施形態によるネットワークファブリックに連結されるネットワークストレージデバイスは、前記ネットワークファブリックとのインターフェーシングを行い、前記ネットワークファブリックを介して提供されるコマンドを変換して実行するネットワークストレージコントローラと、前記ネットワークストレージコントローラの制御に応じて前記ネットワークストレージコントローラとデータを交換する不揮発性メモリクラスタとを含み、前記不揮発性メモリクラスタは、前記ネットワークストレージコントローラと第1チャネルを介して連結される第1不揮発性メモリアレイと、前記ネットワークストレージコントローラと第2チャネルを介して連結される不揮発性メモリスイッチと、前記不揮発性メモリスイッチの制御に応じて前記ネットワークストレージコントローラと通信する第2不揮発性メモリアレイと、を含む。
【０００８】
前記目的を達成するための本発明の他の実施形態によるネットワークストレージデバイスは、ネットワークスイッチを介して提供される第1コマンドを不揮発性メモリを制御するための第2コマンドに変換し、前記第2コマンドをインターフェースを使用して出力するストレージコントローラと、前記ストレージコントローラから出力される前記第2命令に基づいて書き込みデータを格納したり、格納されたデータを前記ストレージコントローラに出力したりする不揮発性メモリクラスタと、を含み、前記ストレージコントローラは、前記不揮発性メモリクラスタに対するコマンドを遂行する少なくとも一つの外付け型演算デバイスを含む。
【発明の効果】
【０００９】
以上のような本発明の実施形態によると、NANDフラッシュメモリデバイスのような不揮発性メモリデバイスや不揮発性メモリアレイ単位の容量拡張が可能なネットワークストレージデバイスが提供されることができる。したがって、本発明のネットワークストレージデバイスは、ネットワークファブリックに連結されて多重プロトコルの単一レイヤのプロトコル変換を遂行することにより、レイテンシを減らすことができ、容易にメモリ容量を拡張することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施形態によるネットワークストレージシステムを簡略に示すブロック図である。
【図２】図２は、図１のネットワークストレージコントローラの一実施形態を示すブロック図である。
【図３】図３は、図２のストレージコントローラの構成を示すブロック図である。
【図４】図４は、図１のネットワークストレージコントローラの他の実施形態を示すブロック図である。
【図５】図５は、本発明の他の実施形態による他のネットワークストレージコントローラを示すブロック図である。
【図６】図６は、本発明のもうひとつの実施形態による他のネットワークストレージコントローラを示すブロック図である。
【図７】図７は、本発明のNVMクラスタの一部を示す図面である。
【図８】図８は、本発明のNVMクラスタの他の一部を示す図面である。
【図９】図９は、本発明のNVMクラスタもうひとつの一部を示す図面である。
【図１０】図１０は、本発明の実施形態により構成可能なネットワークストレージデバイスの構成を示すブロック図面である。
【図１１】図１１は、本発明の実施形態によるネットワークストレージシステムの例を簡略に示すブロック図面である。
【発明を実施するための形態】
【００１１】
前の一般的な説明及び以下の詳細な説明の両方が例示的ということが理解されるべきであり、請求された発明に対する付加的な説明が提供されるものとされるべきである。参照符号が本発明の好ましい実施形態に詳細に記載されており、それの例が参照図面に表示されている。可能な如何なる場合にも、同じ参照番号が同じ又は類似の部分を参照するために説明及び図面に使用される。
【００１２】
以下では、フラッシュメモリデバイスを使用するソリッドステートドライブ（SSD）が本発明の特徴及び機能を説明するためのストレージデバイスの例として使用されるだろう。しかし、この技術分野において精通した人は、ここに記載された内容によって、本発明の他の利点及び性能を容易に理解できるはずである。本発明は、他の実施形態を介して、さらに具現されたり適用されたりすることができるはずである。さらに、詳細な説明は、本発明の範囲、技術的思想及び他の目的から相当に逸脱せずに観点及び応用に応じて修正されたり変更されたりすることができる。
【００１３】
図1は、本発明の実施形態によるネットワークストレージシステムを簡略に示すブロック図である。図1を参照すると、ネットワークストレージシステム10は、イーサネットスイッチ100とネットワークストレージデバイス200とを包含する。イーサネットスイッチ100を介して、ホスト（図示せず）は、ネットワークストレージデバイス200にイーサネットプロトコルのコマンドとデータとを伝達する。そうすると、ネットワークストレージデバイス200は、イーサネットプロトコルのコマンド又はデータを中間プロトコルレイヤ（例えば、NVMeプロトコル）への変換なしで直接NVMクラスタ280に渡されるコマンド及びデータに変換することができる。
【００１４】
イーサネットスイッチ100は、ホストから提供されるコマンドやデータをネットワークストレージデバイス200に提供する。また、イーサネットスイッチ100は、ホストの要請に応じて、ネットワークストレージデバイス200が提供するデータをホストに伝達する。つまり、イーサネットスイッチ100は、イーサネットプロトコル（Ethernet  Protocol）を使用するネットワークファブリックやスイッチであり得る。イーサネットスイッチ100は、ネットワークストレージデバイス200にコマンドやデータを伝送するとき、NVMe-oFストレージプロトコルを含むイーサネットプロトコルにより伝送することになる。なお、イーサネットスイッチ100は、ネットワークストレージデバイス200からの応答やデータをイーサネットプロトコルにより交換することになる。
【００１５】
ネットワークストレージデバイス200は、イーサネットスイッチ100を介して提供されるコマンド（CMD）やデータに応答してNVMクラスタ280を制御する。NVMクラスタ280は、NVMスイッチ（230、232、234）と不揮発性メモリデバイス（240、250、260、270）とを含むことができる。ネットワークストレージデバイス200は、イーサネットスイッチ100から提供されるイーサネットプロトコルフォーマットのコマンドやデータを不揮発性メモリデバイス（240、250、260、270）を制御するためのコマンドやデータフォーマットに直接変換することができる。これらの機能を遂行するために、ネットワークストレージデバイス200は、ネットワークストレージコントローラ210を含む。ネットワークストレージコントローラ210は、イーサネットプロトコル、NVMe-oFプロトコル及びNVMeプロトコルをサポートするための伝送フォーマットを、単一のレイヤで処理することができる。ネットワークストレージコントローラ210は、シングルチップ（Single  chip）で具現されることができる。
【００１６】
ネットワークストレージコントローラ210は、イーサネットスイッチ100とネットワークストレージデバイス200との間でインタフェーシングを提供する。ネットワークストレージコントローラ210は、イーサネットスイッチ100から提供されるネットワークの伝送フォーム、例えば、イーサネットプロトコルフォーマット（例えば、パケット）のコマンドやデータを、不揮発性メモリデバイス（240、250、260、  270）に適用されるコマンドやデータフォーマットに直接変換することができる。ネットワークストレージコントローラ210は、イーサネットプロトコル、NVMe-oFプロトコル、NVMeプロトコルをサポートするための伝送フォーマットを、単一のレイヤで処理することができる。ネットワークストレージコントローラ210のさらなる具体的な動作は、後述する図面で詳細に説明されるだろう。
【００１７】
バッファメモリ220は、ネットワークストレージデバイス200とイーサネットスイッチ100との間のデータ交換のためのデータバッファとして使用されることができる。例えば、バッファメモリ220は、DRAM（Dynamic  RAM）であり得る。しかし、バッファメモリ220は、これに限定されるものではなく、SRAM（Static  RAM）、SDRAM（Synchronous  DRAM）などの揮発性メモリ、不揮発性RAM（NV-RAM）又はこれらの組み合わせで構成されることができる。
【００１８】
NVMクラスタ280は、NVMスイッチ（230、232、234）と不揮発性メモリデバイス（240、250、260、270）とを含む。ここで、不揮発性メモリデバイス（240、250、260、270）は、それぞれ不揮発性メモリアレイ（NVM  Array）で構成されることができる。つまり、不揮発性メモリデバイス240は、一つ以上のNANDフラッシュメモリデバイスを含むことができ、残りの不揮発性メモリデバイス（250、260、270）も類似の形態で構成されたり、組み合わせられたりすることができる。
【００１９】
NVMスイッチ（230、232、234）は、ネットワークストレージコントローラ210のフラッシュインターフェース（Flash  Interface）に不揮発性メモリデバイスを拡張連結するための構成で提供される。例えば、NVMのスイッチ（230、232、234）のそれぞれは、連結される不揮発性メモリデバイスに対するアドレスマッピングを独立的に行うことができる。NVMスイッチ（230、232、234）と、それぞれのNVMのスイッチ（230、232、234）と連結される不揮発性メモリデバイスの構造は、後述する図面を通して詳細に説明することにする。
【００２０】
前述した説明によると、本発明のネットワークストレージデバイス200は、ネットワークプロトコルを直接不揮発性メモリデバイスを制御するためのコマンドやデータフォーマットに変換することができるネットワークストレージコントローラ210を含む。したがって、ネットワークストレージコントローラ210は、ネットワークファブリックから伝送されるコマンドやデータをコマンドパスとデータパスとを分離して処理し、不揮発性メモリデバイス（240、250、260、270）にロード/ストア（Load/Store  ）することができる。なお、不揮発性メモリデバイス（240、250、260、270）は、NVMスイッチを使用して容易に拡張可能である。
【００２１】
図2は図1のネットワークストレージコントローラの一実施形態を示すブロック図である。図2を参照すると、一実施形態によるネットワークストレージコントローラ210aは、ストレージコントローラ214を含むことができる。
【００２２】
ストレージコントローラ214は、内蔵型CPU211を使用して、イーサネットスイッチ100とNVMクラスタ280との間でインタフェーシングを遂行する。特に、ストレージコントローラ214は、第1ポート（PT1）を介してイーサネットスイッチ100と連結される。例えば、第1ポート（PT1）は、イーサネットスイッチ100との連結のためのネットワークインターフェース機能を遂行することができる。
【００２３】
ストレージコントローラ214は、第2ポート（PT2）を介してバッファメモリ220とデータを交換することができる。そしてストレージコントローラ214は、第3ポート（PT3）を介してNVMクラスタ280に連結される。ここで、第3ポート（PT3）は、図1に示されたように、複数のチャンネル（CH1、CH2、CH3）を含むことができる。第3ポート（PT3）が提供するチャンネルの中の少なくとも一つを介して、ストレージコントローラ214は、NVMクラスタ280の中の不揮発性メモリアレイ（NVM  array）と直接連結されることができる。または、第3ポート（PT3）が提供するチャンネルの中の少なくとも一つを介して、ストレージコントローラ214は、NVMスイッチ（230、232）と連結することができる。または、第3ポート（PT3）が提供するチャンネルの中の少なくとも一つを介して、ストレージコントローラ214は、カスケード方式で連結されるNVMのスイッチ（Cascade  NVM  SWs）と連結されることができる。
【００２４】
図3は図2のストレージコントローラの構成を例示的に示すブロック図である。図3を参照すると、ストレージコントローラ214は、内蔵型CPU211、ワーキングメモリ213、ホストインターフェース215、バッファマネージャ217及びフラッシュインターフェース219を含むことができる。
【００２５】
内蔵型CPU211は、NVMクラスタ280に対する読み取り/書き込み動作に必要な多様な制御情報をホストインターフェース215及びフラッシュインターフェース219のレジスタに伝達する。内蔵型CPU211は、ネットワークストレージコントローラ210の多様な制御動作のために提供されるファームウェア又はオペレーティングシステム（OS）に基づいて動作することができる。例えば、内蔵型CPU211は、NVMクラスタ280を管理するためのガベージコレクション（Garbage  collection）や、アドレスマッピング、ウェアレベリングなどを遂行するためのフラッシュ変換レイヤ（FTL）を実行することができる。特に、内蔵型CPU211は、ワーキングメモリ213にロードされるストレージマネージャー216を呼び出して実行することができる。
【００２６】
ストレージマネージャ216の実行にしたがい、内蔵型CPU211は、イーサネットスイッチ100を介して提供されるコマンドやデータ対しイーサネットプロトコル、NVMe-oFプロトコル、及びNVMeプロトコルをサポートするための伝送フォーマットを、単一レイヤ（Layer）で処理することができる。加えて、CPU211は、ネットワークファブリックから伝送されるコマンドやデータを、コマンドパスとデータパスとを分離して処理し、NVMクラスタ280にロード/ストア（Load/Store）することができる。
【００２７】
ワーキングメモリ213は、内蔵型CPU211の動作メモリ、キャッシュメモリ又はバッファメモリとして使用されることができる。ワーキングメモリ213は、内蔵型CPU211が実行するコード及びコマンドを格納することができる。ワーキングメモリ213は、内蔵型CPU211によって処理されるデータを格納することができる。ワーキングメモリ213は、例示的にSRAM（Static  RAM）で具現されることができる。特に、ワーキングメモリ213には、ストレージマネージャー216がロードされることができる。ストレージマネージャ216は、内蔵型CPU211によって実行されることによって、イーサネットスイッチ100から提供されるコマンドやデータの伝送フォーマット変換を単一のレイヤで処理することができる。加えて、ストレージマネージャ216は、ネットワークファブリックから伝送されるコマンドやデータを、コマンドパスとデータパスとを分離して処理することができる。加えて、ワーキングメモリ213には、フラッシュ変換レイヤ（FTL）や多様なメモリ管理モジュールが格納されることができる。
【００２８】
ストレージマネージャ216は、NVMクラスタ280に対する諸般の情報を収集して調整することができる。つまり、ストレージマネージャ216は、NVMクラスタ280に格納されるデータの状態やマッピング情報を維持し、アップデートすることができる。したがって、イーサネットスイッチ100からアクセス要請が発生しても、高速で、要請されたデータをイーサネットスイッチ100に提供したり、書き込みを要請されたデータを記入したりすることができる。加えて、ストレージマネージャ216は、データのアドレスを管理するためのマッピングテーブル（Mapping  table）に対する管理権限を有するため、必要に応じてNVMクラスタ280間のデータの移動やマッピング情報の訂正を行うことができる。
【００２９】
ホストインターフェース215は、イーサネットスイッチ100と通信を行うことができる。ホストインターフェース215は、イーサネットスイッチ100から提供されるネットワークの伝送フォームを含むコマンドを認識することができる。例えば、ホストインターフェース215は、ファイバチャネル（Fiber  channel）、インフィニバンド（InfiniBand）などの高速イーサネットシステムの通信プロトコルを使用して、イーサネットスイッチ100と通信することができる。ホストインターフェース215は、イーサネットスイッチ100から伝達されるネットワークの伝送フォームを有するコマンドを変換して、フラッシュインターフェース219側に伝達することができる。または、ホストインターフェース215は、フラッシュインターフェース219を介して提供されるデータをネットワーク伝送フォームを含むように変換して、イーサネットスイッチ100へ伝達することができるはずである。
【００３０】
バッファマネージャ217は、バッファメモリ（220、図1参照）の読み取りと書き込みの動作を制御する。例えば、バッファマネージャ217は、書き込みデータ（Write  data）や、読み取りデータ（Read  data）をバッファメモリ220に一時的に格納する。バッファマネージャ217は、内蔵型CPU211の制御によりバッファメモリ220のメモリ領域をストリーム単位で区分して管理することができる。
【００３１】
フラッシュインターフェース219は、NVMクラスタ280とデータを交換する。フラッシュインターフェース219は、バッファメモリ220から伝達されるデータをそれぞれのメモリチャネル（CH1、CH2、CH3）を経由してNVMクラスタ280に記入する。そしてメモリチャネルを介して提供されるNVMクラスタ280からの読み取りデータ（Read  data）は、フラッシュインターフェース219によって取り合わせられる。取り合わせられたデータは、後にバッファメモリ220に格納されることになる。
【００３２】
前述した構造のストレージコントローラ214は、イーサネットスイッチ100との通信のためのネットワークプロトコルを直接フラッシュメモリレベルのコマンドやデータに変換することができる。したがって、ネットワークファブリックを介して提供されるコマンドやデータは、イーサネットネットワークのインターフェースカード（Ethernet  NIC）、TCP/IPオフロードエンジン、PCIeスイッチのような順次的な複数のステップの変換（Translation）のプロセスを経なくてもよい。これらの特徴に応じて、イーサネットスイッチ100から伝送されるコマンドやデータを、コマンドパスとデータパスを分離して処理し、NVMクラスタ280にロード/ストア（Load/Store）することができる。
【００３３】
特に、ストレージコントローラ214は、シングルチップ（Single  Chip）で具現可能である。シングルチップで具現されるストレージコントローラ214によって、本発明のネットワークストレージデバイス200は、軽薄短小化されたサイズで提供されることができる。したがって、本発明のネットワークストレージデバイス200は、ネットワークファブリック上で低レイテンシ、高い経済性と拡張性を提供することができる。
【００３４】
図4は図1のネットワークストレージコントローラの他の実施形態を示すブロック図である。図4を参照すると、他の実施形態によるネットワークストレージコントローラ210bは、外付け型のプロセッサ211bと、そしてストレージコントローラ214bを含むことができる。
【００３５】
ストレージコントローラ214bは、外付け型のプロセッサ211bを使用して、イーサネットスイッチ100とNVMクラスタ280との間をインターフェーシングすることができる。外付け型プロセッサ211bは、イーサネットスイッチ100から伝達されるイーサネットプロトコルのコマンドやデータを変換することができる。加えて、外付け型プロセッサ211bは、イーサネットスイッチ100を介して提供される要請に応じてNVMクラスタ280に格納されたデータを検索したり、検索されたデータをイーサネットスイッチ100に出力するようにストレージコントローラ214bを制御したりすることができる。外付け型プロセッサ211bは、ネットワーク管理に特化された一つ又はそれ以上のプロセッサを含むことができるだろう。
【００３６】
外付け型プロセッサ211bは、ストレージコントローラ214bに含まれる内蔵型プロセッサの機能を遂行することもでき、内蔵型プロセッサとワークロードに対し分散処理を遂行することができる。加えて、外付け型プロセッサ211bは、ネットワーク管理のようなホストから要請された別の動作の処理を遂行することもできる。
【００３７】
ストレージコントローラ214bは、第1ポート（PT1）を介してイーサネットスイッチ100と電気的に連結される。ストレージコントローラ214bは、第2ポート（PT2）を介してバッファメモリ220とデータを交換することができる。そしてストレージコントローラ214bは、第3ポート（PT3）を介してNVMクラスタ280に連結される。ここで、第3ポート（PT3）は、図1に図示されたように、複数のチャンネル（CH1、CH2、CH3）を含むことができる。加えて、ストレージコントローラ214bは、第4ポート（PT4）を介して外付け型プロセッサ211bに連結されることができる。ストレージコントローラ214bは、外付け型のプロセッサ211bを使用して、プロトコルの変換やNVMクラスタ280に格納されたデータの検索、又はNVMクラスタ280へのデータのロード/ストアの動作を遂行することができる。第4ポート（PT4）は、例えば、複数のプロセッサと連結可能なPCIeインターフェースで提供されることができるが、本発明は、これだけに限定されない。ストレージコントローラ214bは、外付け型のプロセッサ211bの制御に従うことを除けば、図3のストレージコントローラ214aと類似の構成及び機能を有することができる。ここで、ストレージコントローラ214bは、一つのチップで構成することができ、ネットワークストレージコントローラ210bは、一つのPCBボード上に具現されることができる。
【００３８】
図5は、本発明の他の実施形態による他のネットワークストレージコントローラ210cを示すブロック図である。図5を参照すると、ネットワークストレージコントローラ210cは、一つのチップで具現可能である。
【００３９】
ネットワークストレージコントローラ210cは、イーサネットスイッチ100と連結される第1ポート（PT1）を含む。第1ポート（PT1）は、ファイバチャネル（Fiber  channel）、インフィニバンド（InfiniBand）などの高速イーサネットシステム及びネットワークストレージコントローラ210cを連結するためのハードウェアポートであり得る。第1ポート（PT1）は、ホストインターフェース215にイーサネットプロトコルのコマンド又はデータを伝達することになる。ホストインターフェース215は、イーサネットスイッチ100とイーサネットプロトコルに基づいて通信を行うことができる。例えば、ファイバチャネル（Fiber  channel）、インフィニバンド（InfiniBand）などの高速イーサネットシステムの通信プロトコルは、ホストインターフェース215によってNVMクラスタ280を制御するための伝送フォームに変換されることができる。
【００４０】
バッファマネージャ217は、バッファメモリ（220、図1参照）の読み取りと書き込みの動作を制御する。例えば、バッファマネージャ217は、書き込みデータ（Write  data）や、読み取りデータ（Read  data）をバッファメモリ220に一時格納する。バッファマネージャ217は、内蔵型CPU211cの制御に基づいてバッファメモリ220のメモリ領域をストリーム単位で区分して管理することができる。
【００４１】
フラッシュインターフェース219は、NVMクラスタ280とデータを交換する。フラッシュインターフェース219は、バッファメモリ220から伝達されるデータをそれぞれのメモリチャネルを経由してNVMクラスタ280に記入する。そしてメモリチャネルを介して提供されるNVMクラスタ280からの読み取りデータ（Read  data）は、フラッシュインターフェース219によって取り合わせられる。取り合わせられたデータは、その後にバッファメモリ220に格納されることになる。
【００４２】
内蔵型CPU211cは、NVMクラスタ280への読み取り/書き込みの動作に必要な多様な制御情報をホストインターフェース215及びフラッシュインターフェース219のレジスタに伝達する。内蔵型CPU211cは、ストレージコントローラ210cの多様な制御動作のために提供されるファームウェアやオペレーティングシステム（OS）に基づいて動作することができる。例えば、内蔵型CPU211cは、NVMクラスタ280を管理するためのガベージコレクション（Garbage  collection）や、アドレスマッピング、ウェアレベリングなどを遂行するためのフラッシュ変換レイヤ（FTL）を実行することができる。特に、内蔵型CPU211cは、ワーキングメモリ213にロードされるオペレーティングシステム（OS）や管理モジュールを呼び出して実行することができる。内蔵型CPU211cは、ネットワークストレージコントローラ210cに提供されるコマンドやデータに対しイーサネットプロトコル、NVMe-oFプロトコル、及びNVMeプロトコルをサポートするための伝送フォーマットを、単一のレイヤ（Layer）で処理することができる。
【００４３】
以上で説明された他の実施形態のネットワークストレージコントローラ210cは、ネットワークインターフェーシングを直接遂行し、内蔵型CPU211cを含むことができる。したがって、ネットワークストレージコントローラ210cは、イーサネットスイッチ100に直接連結されて、NVMクラスタ280を制御することができる。
【００４４】
図6は、本発明のもう一つの実施形態による他のネットワークストレージコントローラ210dを示すブロック図である。図6を参照すると、ネットワークストレージコントローラ210dは、外付け型プロセッサ211dを使用してNVMクラスタ280とイーサネットスイッチ100とのインターフェーシングを行うことができる。
【００４５】
ネットワークストレージコントローラ210dは、イーサネットスイッチ100と連結される第1ポート（PT1）を含む。第1ポート（PT1）は、ファイバチャネル（Fiber  channel）、インフィニバンド（InfiniBand）などの高速イーサネットシステムとネットワークストレージコントローラ210dとを連結するためのハードウェアポートであり得る。第1ポート（PT1）は、イーサネットスイッチ100から提供されるイーサネットプロトコルのコマンド又はデータを受信することになる。第1ポート（PT1）は、受信されたコマンドやデータをホストインターフェース215に伝達する。ここで、内蔵型CPU211c、ワーキングメモリ213、ホストインターフェース215、バッファマネージャ217、フラッシュインターフェース219は、図5のそれらと同じように構成されることができる。
【００４６】
一方、ネットワークストレージコントローラ210dは、外付け型プロセッサ211dを使用して、イーサネットスイッチ100とNVMクラスタ280との間をインターフェーシングすることができる。外付け型プロセッサ211dは、イーサネットスイッチ100から伝達されるイーサネットプロトコルのコマンドやデータを変換することができる。加えて、外付け型プロセッサ211dは、イーサネットスイッチ100から提供される要請に応じてNVMクラスタ280に格納されたデータを検索したり、検索されたデータをイーサネットスイッチ100に出力するようにネットワークストレージコントローラ210dを制御したりすることができる。外付け型プロセッサ211dは、ストレージコントローラ214bに含まれる内蔵型CPU211cとワークロードを分散処理することもできる。例示的に、内蔵型CPU211cの制御に基づいて、外付け型プロセッサ211dは、割り当てられたコマンドを処理することができる。加えて、外付け型プロセッサ211dは、ネットワーク管理のようなホストから要請された別の動作の処理を遂行することもできる。外付け型プロセッサ211dは、1つ又は少なくとも2つ以上のプロセッサを含むことができるだろう。外付け型プロセッサ211dとネットワークストレージコントローラ210dとを連結するための第4ポート（PT4）が提供される。外付け型プロセッサ211dとネットワークストレージコントローラ210dは、例えば、PCIeインターフェースをサポートする第4ポート（PT4）を介して通信することができる。
【００４７】
図7は、本発明のNVMクラスタの一部を示す図面である。図7を参照すると、NVMアレイ240は、ネットワークストレージコントローラ210に直接連結され、データを交換することができる。
【００４８】
NVMアレイ240は、例えば、NANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i、iは3より大きい自然数）を含むことができる。NANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i）のそれぞれは、第1チャンネル（CH1）とデバイスとの間に、別のインターフェースやスイッチを含んでいないはずである。NANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i）は、単一のデバイスの組み合わせ、又は複数のデバイスが含まれる1つのパッケージ単位で提供されることができる。
【００４９】
NANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i）のそれぞれは、第1チャンネル（CH1）に連結される。例えば、第1チャンネル（CH1）は、同じデータライン（DQ）を共有するNANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i）とネットワークストレージコントローラ（210）との間のデータパスとし得る。すなわち、第1チャンネル（CH1）に連結されるNANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i）は、同じデータライン（DQ）を共有することができるだろう。第1チャンネル（CH1）を介してネットワークストレージコントローラ２10のフラッシュインターフェース219は、NANDフラッシュメモリデバイス（Raw  NAND_11、Raw  NAND_12、Raw  NAND_13、...、Raw  NAND_1i）のいずれか一つを選択したり、チャンネルウェイ（Channel-Way）のインターリービング(interleaving)制御を行ったりすることができる。
【００５０】
図8は、本発明のNVMクラスタの他の一部を示す図面である。図8を参照すると、NVMアレイ250は、NVMスイッチ230を介してネットワークストレージコントローラ210に連結されることができる。
【００５１】
NVMスイッチ230は、第2チャンネル（CH2）によってネットワークストレージコントローラ210と通信する。例えば、NVMスイッチ230は、第2チャンネル（CH2）を介してネットワークストレージコントローラ210のフラッシュインターフェース（219、図2参照）と連結されることになる。フラッシュインターフェース219は、第1チャンネル（CH1）とは独立的に、第2チャンネル（CH2）を使用してNVMスイッチ230及びNVMアレイ250にアクセスすることができる。
【００５２】
NVMスイッチ230は、例示的に、スイッチコントローラ231とバッファ233を含むことができる。スイッチコントローラ231は、第2チャンネル（CH2）を介して提供されるアドレスとNVMアレイ250の実際のアドレスと、をマッピングするためのアドレスマッピング機能を遂行することができる。スイッチコントローラ231は、メモリチャンネル（CH2_1）に連結されるNVMアレイ250のアドレスを、フラッシュインターフェース219が提供するアドレスとマッピングさせることができる。スイッチコントローラ231は、NVMアレイ250に追加されたり除去されたりするデバイスが存在する場合、アドレスマッピングをアップデートすることもできる。バッファ233は、ネットワークストレージコントローラ210とNVMアレイ250との間で交換されるデータを一時格納することができる。バッファ233は、例えばディーラム（DRAM）のような揮発性メモリデバイスで具現されることができる。
【００５３】
NVMアレイ250は、例えば、NANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j、jは3より大きい自然数）を含むことができる。NANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）のそれぞれは、スイッチコントローラ230の制御に応じて選択されることができる。NANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）は、単一のデバイスの組み合わせ、又は複数のデバイスが含まれる1つのパッケージ単位で提供されることができる。
【００５４】
NANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）のそれぞれは、メモリチャネル（CH2_1）に連結される。例えば、メモリーチャンネル（CH2_1）は、同じデータライン（DQ）を共有するNANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）とNVMスイッチ230との間のデータパスとし得る。つまり、メモリチャンネル（CH2_1）に連結されるNANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）は、同じデータラインを共有できるはずである。
【００５５】
以上では、NVMスイッチ230を介してNANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）がネットワークストレージコントローラ210に連結される例が説明された。ここで、NVMスイッチ230に1つのメモリチャネル（CH2_1）が備えられるものとして説明されたが、本発明は、ここに限定されないのは、よく理解されるだろう。つまり、NVMスイッチ230に複数のメモリチャネルが連結され、複数のNVMアレイが連結されることもできるのは、よく理解されるだろう。
【００５６】
実質的にPCIeスイッチを介してのSSDの拡張には限界がある。しかし、NVMスイッチ230を介してデバイス単位のNANDフラッシュメモリデバイス（Raw  NAND_21、Raw  NAND_22、Raw  NAND_23、...、Raw  NAND_2j）を拡張するのには、理論的に制限が存在しない。したがって、本発明の技術を使用する場合、ネットワークストレージデバイス200の容量拡張は容易に具現されることができる。
【００５７】
図9は、本発明のNVMクラスタのもう一つの一部を示す図面である。図9を参照すると、NVMアレイ（260、270）は、NVMスイッチ（232、234）を介してネットワークストレージコントローラ210に連結されることができる。ここで、NVMスイッチ（232、234）は、カスケード（Cascade）の連結構造を有することができる。
【００５８】
NVMスイッチ232は、第3チャネル（CH3）によってネットワークストレージコントローラ210と連結される。NVMスイッチ232は、第3チャネル（CH3）を介してネットワークストレージコントローラ210のフラッシュインターフェース（219、図2参照）と連結されるはずである。フラッシュインターフェース219は、第1チャンネル（CH1）や第2チャンネル（CH2）とは独立的に、第3チャネル（CH3）を使用してNVMスイッチ232にアクセスすることができる。
【００５９】
NVMスイッチ232は、例示的に、スイッチコントローラ235とバッファ237とを含むことができる。スイッチコントローラ235は、第3チャネル（CH3）を介して提供されるアドレス、NVMアレイ270及びカスケード形態で連結されたNVMスイッチ234のアドレスをマッピングするためのアドレスマッピング機能を遂行することができる。スイッチコントローラ235は、メモリーチャンネル（CH3_1）に連結されるNVMアレイ270のアドレスをフラッシュインターフェース219が提供するアドレスとマッピングさせることができる。そしてスイッチコントローラ235は、メモリチャンネル（CH3_2）に連結されるNVMスイッチ234のアドレスをフラッシュインターフェース（219）が提供するアドレスとマッピングさせることができる。ここで、NVMスイッチ232は、スイッチコントローラ235とバッファ237とを含むことができる。スイッチコントローラ235は、第3チャネル（CH3）を介して提供されるアドレス、NVMアレイ270及びカスケード形態で連結されたNVMスイッチ234のアドレスをマッピングするためのアドレスマッピング機能を遂行することができる。
【００６０】
NVMスイッチ234は、メモリチャンネル（CH3_2）によってNVMスイッチ232と連結される。NVMスイッチ234は、メモリチャンネル（CH3_3）を介してNVMアレイ260と連結されるはずである。NVMスイッチ234もスイッチコントローラ236とバッファ238とを含むことができる。
【００６１】
スイッチコントローラ232又はスイッチコントローラ234は、追加されるメモリポート（メモリチャンネル）を介して追加NVMアレイやNVMスイッチを認識してインターフェーシングを行うことができる。ここで、NVMアレイ（260、270）を構成するNANDフラッシュメモリデバイス（Raw  NAND_31、Raw  NAND_32、Raw  NAND_33、...、Raw  NAND_3k、Raw  NAND_41、Raw  NAND_42、Raw  NAND_43、...、Raw  NAND_4m）は、単一のデバイスの組み合わせ又は複数のデバイスが含まれているパッケージ単位で提供されることができる。
【００６２】
以上では、NVMスイッチに（230、232、234）を介してNVMアレイ（240、250、260、270）が、ネットワークストレージコントローラ210に連結される例が説明された。ここで、NVMスイッチ（230、232、234）は、カスケード方式で連結可能で、SSDの単位ではない、NVM単品やアレイユニットの単位と連結されることができる。実質的にPCIeスイッチを介したSSDの拡張には限界がある。しかし、NVMスイッチ（230、232、234）を介してデバイス単位でストレージ容量を拡張するのには、理論的に制限が存在しない。したがって、本発明の技術を使用する場合は、容易なネットワークストレージデバイス200の容量の拡張が可能である。
【００６３】
図10は、本発明の実施形態に基づいて構成可能なネットワークストレージデバイスの構成を示すブロック図である。図10を参照すると、ネットワークストレージデバイス300は、イーサネットスイッチ100とインターフェーシングを遂行するためのネットワークストレージコントローラ310、外付け型プロセッサ305、バッファメモリ330及び直接NVMクラスタ380を含むことができる。外付け型プロセッサ305は、特定の目的のために提供されるプロセッサや演算デバイス、又は加速エンジンで具現されることができる。
【００６４】
イーサネットスイッチ100を介してサーバやデータセンターのようなホスト（図示せず）は、ネットワークストレージデバイス300にイーサネットプロトコルのコマンドとデータを伝達する。そうすると、ネットワークストレージデバイス300は、イーサネットプロトコルのコマンドやデータをPCIeプロトコルの変換なしで直接NVMクラスタ380に伝達されるコマンド及びデータに変換することができる。
【００６５】
ネットワークストレージコントローラ310は、イーサネットスイッチ100を介して提供されるイーサネットプロトコルのコマンドやデータに応答してNVMクラスタ380を制御する。特に、ネットワークストレージコントローラ310は、外付け型プロセッサ305によって制御されることができる。大容量のNVMクラスタ380とのデータ交換及びデータやコマンドを処理するために、外付け型CPU305は、一つ以上のプロセッサで構成されうることは、よく理解されるだろう。外付け型プロセッサ305は、必要のときネットワークストレージコントローラ310の内部にエンベデッドCPUで提供されることもできるだろう。
【００６６】
ネットワークストレージコントローラ310は、イーサネットプロトコル、NVMe-oFプロトコル及びNVMeプロトコルをサポートするための伝送フォーマットを、単一レイヤで処理することができる。ネットワークストレージコントローラ310は、イーサネットスイッチ100とネットワークストレージデバイス300との間でインターフェーシングを提供する。ネットワークストレージコントローラ310は、イーサネットスイッチ100から提供されるイーサネットプロトコルフォーマット（例えば、パケット）のコマンドやデータをNVMクラスタ380に適用されるコマンドやデータフォーマットに直接変換することができる。ネットワークストレージコントローラ310では、イーサネットプロトコル、NVMe-oFプロトコルは及びNVMeプロトコルをサポートするための伝送フォーマットを、単一レイヤで処理することができる。
【００６７】
バッファメモリ330は、ネットワークストレージデバイス300とイーサネットスイッチ100との間のデータ交換のためのデータバッファとして使用されることができる。例えば、バッファメモリ330は、DRAM（Dynamic  RAM）であり得る。しかし、バッファメモリ330は、これに限定されるものではなく、SRAM（Static  RAM）、SDRAM（Synchronous  DRAM）などのような揮発性メモリ、不揮発性RAM（NV-RAM）、又はこれらの組み合わせで構成されることができる。
【００６８】
NVMクラスタ380は、少なくとも一つのNVMスイッチ（330、332、334、336、338）と少なくとも一つのNVMアレイ（340、350、352、354、360、362、370、372、374）を含むことができる。ここで、NVMアレイ（340、350、352、354、360、362、370、372、374）は、それぞれ不揮発性メモリデバイスのアレイで構成されることができる。つまり、NVMアレイ（340、350、352、354、360、362、370、372、374）のそれぞれは、複数のNANDフラッシュメモリデバイスを含むことができる。
【００６９】
NVMスイッチ（330、332、334、326、338）は、ネットワークストレージコントローラ310のフラッシュインターフェース（Flash  Interface）に不揮発性メモリデバイスを拡張連結するための構成で提供される。例えば、NVMスイッチ（330、332、334、336、338）のそれぞれは、連結される不揮発性メモリデバイスや不揮発性メモリデバイスアレイに対するアドレスマッピングを独立的に行うことができる。
【００７０】
NVMスイッチ330は、3つのNVMアレイ（350、352、354）と連結されてネットワークストレージコントローラ310とのインターフェーシングを行うことができる。NVMスイッチ332は、NVMスイッチ334とネットワークストレージコントローラ310とのインターフェーシングを行うことができる。NVMスイッチ334は、NVMスイッチ336とNVMアレイ360とを制御することができる。NVMスイッチ336は、NVMスイッチ338とNVMアレイ362とを制御することができる。そしてNVMスイッチ338は、3つのNVMアレイ（370、372、374）と連結されてNVMスイッチ336とのインターフェーシングを行うことができる。
【００７１】
以上では、ネットワークストレージコントローラ310に連結可能なNVMスイッチ（330、332、334、336、338）とNVMアレイ（340、350、352、354、360、362、370、372、374）の連結形態が簡略に説明された。もちろん、NVMアレイ340のようにNVMスイッチを使用せずに、ネットワークストレージコントローラ310に連結することもできることは、よく理解されるだろう。
【００７２】
図11は、本発明の実施形態によるネットワークストレージシステムの例を簡単に示すブロック図である。図11を参照すると、本発明のネットワークストレージシステム1000は、サーバ1100、ネットワークファブリック1200及び複数のイーサネットSSD（1300、1400）を含むことができる。
【００７３】
サーバ1100は、ネットワークファブリック1200を介して、複数のイーサネットSSD（1300、1400）と連結される。サーバ1100は、複数のイーサネットSSD（1300、1400）にコマンドとデータをイーサネットプロトコルを使用して伝送することができる。そしてサーバ1100は、複数のイーサネットSSD（1300、1400）の中の少なくとも一つから提供されるイーサネットプロトコルのデータを受信することができる。ネットワークファブリック1200は、ネットワークスイッチであり得る。
【００７４】
複数のイーサネットSSD（1300、1400）のそれぞれは、前に説明された図1又は図10のストレージデバイスに提供されることができる。つまり、イーサネットSSD1300のようにネットワークストレージコントローラ1310は、NVMスイッチを経由せずに直接NVMアレイ1320に連結されることができる。一方、イーサネットSSD1400に含まれるネットワークストレージコントローラ1410は、NVMスイッチ（1412、1414）を介してNVMアレイ（1422、1424）を制御することができる。もちろん、イーサネットSSDコントローラ1410は、NVMスイッチを使用せずに、直接NVMアレイ1420を制御することができることはよく理解されるだろう。
【００７５】
以上のように、図面と明細書で実施形態が開示された。ここで特定の用語が使用されたが、これは単に本発明を説明するための目的で使用されたものであり、意味の限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。よって、本技術分野における通常の知識を有する者であれば、そこから多様な変形及び均等な他の実施形態が可能であるという点を理解するはずである。したがって、本発明の真の技術的保護の範囲は、添付された特許請求の範囲の技術的思想によって定まるべきであろう。
【産業上の利用可能性】
【００７６】
マルチプロトコル変換を効率的に遂行して、レイテンシの減少及び拡張しやすい不揮発性メモリを用いたネットワークストレージシステムの具現に有用である。
【符号の説明】
【００７７】
１０，１０００：ネットワークストレージシステム
１００：イーサネットスイッチ
２００：ネットワークストレージデバイス
２１０，３１０、１３１０，１４１０：ネットワークストレージコントローラ
２１１：内蔵型CPU
２１１b、２１１d、３０５：外付け型プロセッサ
２１３：ワーキングメモリ
２１４：ストレージコントローラ
２１５：ホストインターフェース
２１６：ストレージマネージャー
２１７：バッファマネージャー
２１９：フラッシュインターフェース
２２０，３３０：バッファーメモリ
２３０、２３２、２３４：NVMスイッチ
２３１、２３５、２３６：スイッチコントローラ
２４０、２５０、２６０、２７０：不揮発性メモリデバイス
２８０，３８０：NVMクラスタ
３２６、３３０、３３２、３３４、３３６、３３８、１４１２、１４１４：NVMスイッチ
３４０、３５０、３５２、３５４、３６０、３６２、３７０、３７２、３７４，１３２０、１４２０，１４２２、１４２４：NVMアレイ
１１００：サーバ
１２００：ネットワークファブリック
１３００，１４００：イーサネットSSD
１４１０：イーサネットSSDコントローラ
【図１】
2019185765.tif 000003
【図２】
2019185765.tif 000004
【図３】
2019185765.tif 000005
【図４】
2019185765.tif 000006
【図５】
2019185765.tif 000007
【図６】
2019185765.tif 000008
【図７】
2019185765.tif 000009
【図８】
2019185765.tif 000010
【図９】
2019185765.tif 000011
【図１０】
2019185765.tif 000012
【図１１】
2019185765.tif 000013