(57)【要約】本発明はコンピュータシステム（２）及び該コンピュータシステムを動作させる方法に関する。コンピュータシステム（２）は、シリアルネットワークリンク（４）によって複数のネットワークデバイス（ＮＤ１〜ＮＤ３）に接続されたネットワークストレージデバイス（ＮＳＤ）を含む。ネットワークストレージデバイス（ＮＳＤ）は、ブロックベースのストレージデバイス（ＢＢＳＤ）と、キャッシュメモリ（１０）を有するスケーラブルなキャッシュセレクタ（ＳＣＳ）とを含み、キャッシュメモリ（１０）は複数のキャッシュキュー（ＱＬ１〜ＱＬ３）に分割されている。各キャッシュキュー（ＱＬ１〜ＱＬ３）は複数のネットワークデバイス（ＮＤ１〜ＮＤ３）の１つに専用のキャッシュキューである。この方法は、ａ）キューセレクタ（ＱＳ）においてネットワークデバイス（ＮＤ１〜ＮＤ３）の１つに割り当てられた少なくとも１つの入力データパケット（３）を受信するステップと、ｂ）入力データパケット（３）を伝送して、ネットワークデバイス（ＮＤ１〜ＮＤ３）の各々に割り当てられているキャッシュキュー（ＱＬ１〜ＱＬ３）に記憶するステップと、ｃ）出力データパケット（５）をキャッシュキュー（ＱＬ１〜ＱＬ３）から出力するステップとを含み、出力データパケット（５）はキャッシュキュー（ＱＬ１〜ＱＬ３）に記憶された入力データパケット（３）によって構成されるデータの内容の少なくとも一部を含む。出力データパケット（５）を出力するステップは、キャッシュキュー（ＱＬ１〜ＱＬ３）に記憶された受信された入力データパケット（３）のデータ量が、出力データパケット（５）の所定サイズを定義するしきい値（ＢＳ、ＦＳ）を超える場合に実行される。
2013539566.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム（２）を動作させるための方法であって、該コンピュータシステム（２）がシリアルネットワークリンク（４）によって複数のネットワークデバイス（ＮＤ１〜ＮＤ３）に接続されたネットワークストレージデバイス（ＮＳＤ）を含み、該ネットワークストレージデバイス（ＮＳＤ）が前記ネットワークデバイス（ＮＤ１〜ＮＤ３）に関連したデータを記憶するブロックベースのストレージデバイス（ＢＢＳＤ）とキャッシュメモリ（１０）を有するスケーラブルなキャッシュセレクタ（ＳＣＳ）とを含み、前記キャッシュメモリ（１０）が複数のキャッシュキュー（ＱＬ１〜ＱＬ３）に分割されており、各キャッシュキュー（ＱＬ１〜ＱＬ３）が前記複数のネットワークデバイス（ＮＤ１〜ＮＤ３）の各々に専用のキャッシュキューであり、前記スケーラブルなキャッシュセレクタ（ＳＣＳ）がさらに、前記ネットワークデバイス（ＮＤ１〜ＮＤ３）から受信されるか前記ネットワークデバイス（ＮＤ１〜ＮＤ３）に送信される入力データパケット（３）を前記キャッシュキュー（ＱＬ１〜ＱＬ３）のそれぞれに付与するキューセレクタ（ＱＳ）を含む、方法において、
ａ）前記シリアルネットワークリンク（４）を介して異なるネットワークデバイス（ＮＤ１〜ＮＤ３）から入力データパケット（３）を受信するステップと、 
ｂ）前記シリアルネットワークリンク（４）を介して受信された前記入力データパケット（３）のストリームを分離して、各入力データパケット（３）を前記複数のネットワークデバイス（ＮＤ１〜ＮＤ３）の１つから発信されものとして前記キューセレクタ（ＱＳ）において識別するステップと、
ｃ）前記入力データパケット（３）を伝送して前記キャッシュメモリ（１０）のキャッシュキュー（ＱＬ１〜ＱＬ３）に記憶するステップであって、該キャッシュキュー（ＱＬ１〜ＱＬ３）が前記ネットワークデバイス（ＮＤ１〜ＮＤ３）のそれぞれに割り当てられている、ステップと、
ｄ）出力データパケット（５）を前記キャッシュメモリ（１０）の前記キャッシュキュー（ＱＬ１〜ＱＬ３）から出力するステップであって、該出力データパケット（５）が前記キャッシュキュー（ＱＬ１〜ＱＬ３）に記憶された前記入力データパケット（３）により構成されるデータの内容の少なくとも一部を含んでいる、ステップと、
を含み、
前記出力するステップは、前記キャッシュキュー（ＱＬ１〜ＱＬ３）に記憶された前記受信された入力データパケット（３）のデータ量が、前記出力データパケット（５）の所定サイズを定義するしきい値（ＢＳ、ＦＳ）を超える場合に実行される、前記方法。
【請求項２】
前記ブロックベースのストレージデバイス（ＢＢＳＤ）への書き込み処理中に、前記ステップｄは、出力データパケット（５）を前記ブロックベースのストレージデバイス（ＢＢＳＤ）に送信するステップを含み、前記所定サイズは前記ブロックベースのストレージデバイス（ＢＢＳＤ）のブロックサイズ（ＢＳ）に対応している、請求項１の方法。
【請求項３】
前記ブロックベースのストレージデバイス（ＢＢＳＤ）が複数のセグメントに分割され、各セグメントが１つのネットワークデバイス（ＮＤ１〜ＮＤ３）からのデータブロック（ｂｌｋ１１〜ｂｌｋ３２）を記憶する、請求項２の方法。
【請求項４】
コンピュータシステム（２）を動作させるための方法であって、該コンピュータシステム（２）がシリアルネットワークリンク（４）によって複数のネットワークデバイス（ＮＤ１〜ＮＤ３）に接続されたネットワークストレージデバイス（ＮＳＤ）を含み、該ネットワークストレージデバイス（ＮＳＤ）が前記ネットワークデバイス（ＮＤ１〜ＮＤ３）に関連したデータを記憶するブロックベースのストレージデバイス（ＢＢＳＤ）とキャッシュメモリ（１０）を有するスケーラブルなキャッシュセレクタ（ＳＣＳ）とを含み、前記キャッシュメモリ（１０）が複数のキャッシュキュー（ＱＬ１〜ＱＬ３）に分割されており、各キャッシュキュー（ＱＬ１〜ＱＬ３）が前記複数のネットワークデバイス（ＮＤ１〜ＮＤ３）の各々に専用のキャッシュキューであり、前記スケーラブルなキャッシュセレクタ（ＳＣＳ）がさらに、前記ネットワークデバイス（ＮＤ１〜ＮＤ３）から受信されるか前記ネットワークデバイス（ＮＤ１〜ＮＤ３）に送信される入力データパケット（３）を前記キャッシュキュー（ＱＬ１〜ＱＬ３）のそれぞれに付与するキューセレクタ（ＱＳ）を含む、方法において、
ａ）前記ブロックベースのストレージデバイス（ＢＢＳＤ）から入力データパケット（３）として少なくとも１つのデータブロック（ｂｌｋ１１〜ｂｌｋ３２）を受信するステップと、
ｂ）前記ブロックベースのストレージ（ＢＢＤＳ）から受信された前記入力データパケット（３）のストリームを分離して、前記キューセレクタ（ＱＳ）において各入力データパケット（３）を前記ネットワークデバイス（ＮＤ１〜ＮＤ３）の１つに割り当てるステップと、 
ｃ）前記入力データパケット（３）を伝送して前記キャッシュメモリ（１０）のキャッシュキュー（ＱＬ１〜ＱＬ３）に記憶するステップであって、該キャッシュキュー（ＱＬ１〜ＱＬ３）が前記ネットワークデバイス（ＮＤ１〜ＮＤ３）のそれぞれに割り当てられる、ステップと、
ｄ）前記キャッシュメモリ（１０）の前記キャッシュキュー（ＱＬ１〜ＱＬ３）から出力データパケット（５）を出力するステップであって、該出力データパケット（５）が前記キャッシュキュー（ＱＬ１〜ＱＬ３）に記憶された前記入力データパケット（３）により構成されるデータの内容の少なくとも一部を含んでいる、ステップと
を含み、
前記出力するステップは、前記キャッシュキュー（ＱＬ１〜ＱＬ３）に記憶された前記受信された入力データパケット（３）のデータ量が、前記出力データパケット（５）の所定サイズを定義するしきい値（ＢＳ、ＦＳ）を超える場合に実行される、前記方法。
【請求項５】
前記ブロックベースのストレージデバイス（ＢＢＳＤ）からの読み出し処理の間、前記ステップｃは、前記シリアルネットワークリンク（４）に所定サイズの出力データパケット（５）を送信するステップを含む、請求項４の方法。
【請求項６】
前記出力データパケット（５）の所定サイズは前記シリアルネットワークリンク（４）のフレームサイズに等しい、請求項５の方法。
【請求項７】
前記ブロックベースのストレージデバイス（ＢＢＳＤ）から受信されたデータブロック（ｂｌｋ１１〜ｂｌｋ３２）のサイズが前記ブロックベースのストレージデバイス（ＢＢＳＤ）のブロックサイズに等しい、請求項５または６の方法。
【請求項８】
シリアルネットワークリンク（４）を介して複数のネットワークデバイス（ＮＤ１〜ＮＤ３）に接続された入力部を有するネットワークストレージデバイス（ＮＳＤ）であって、
前記ネットワークデバイス（ＮＤ１〜ＮＤ３）に関連するデータを記憶するブロックベースのストレージデバイス（ＢＢＳＤ）と、
キャッシュメモリ（１０）を有するスケーラブルなキャッシュセレクタ（ＳＣＳ）と
を含み、
前記キャッシュメモリ（１０）が複数のキャッシュキュー（ＱＬ１〜ＱＬ３）に分割され、各キャッシュキュー（ＱＬ１〜ＱＬ３）が前記複数のネットワークデバイス（ＮＤ１〜ＮＤ３）の各々に専用のキャッシュキューであり、前記スケーラブルなキャッシュセレクタ（ＳＣＳ）が請求項１〜６のいずれかの方法を実行することができる、前記ネットワークストレージデバイス。
【請求項９】
前記ブロックベースのストレージデバイス（ＢＢＳＤ）がハードディスクドライブまたはフラッシュドライブである、請求項８のコンピュータシステム。  
【発明の詳細な説明】
【技術分野】
【０００１】
［背景技術］
現代のマルチメディア環境（例えば、通常数個のデジタルカメラ、ディスプレイモニタ、スキャナ等を用いるデジタルビデオ作成環境）では、大量の高解像度マルチメディアデータが、ネットワークデバイスとも称される上記のデバイス同士を接続する高速ネットワークを介して伝送される。データの永久記憶のためには、適切なストレージデバイス（記憶装置）は、上記のようなマルチメディア環境において重要な役割を果たす。通常、ブロックベースのネットワークストレージデバイス（例えば、ハードディスクのアレイまたはフラッシュメモリのアレイ）は、イーサネット（登録商標）、ＦｉｒｅＷｉｒｅ、ＵＳＢ等のシリアルネットワークを介してネットワークデバイスに接続される。ネットワークストレージデバイスへの及びネットワークストレージデバイスからのデータ転送速度が高速であることは、特にリアルタイムのアプリケーションの場合、マルチメディア環境全体のパフォーマンスにとって重要である。
【発明の概要】
【０００２】
本発明の目的は、シリアルネットワークリンクを介してブロックベースのネットワークストレージデバイスに接続される複数のネットワークデバイスを含むコンピュータシステムを提供すること、並びに、上記コンピュータシステムを作動させる方法を提供することである。ブロックベースのストレージデバイスへの読取/書込処理が、データレートを向上させる。
【０００３】
上記目的は独立請求項の内容によって達成され、有利な実施形態は従属請求項の内容となっている。
【０００４】
本発明によれば、シリアルネットワークリンクによって複数のネットワークデバイスに接続されたネットワークストレージデバイスを含むコンピュータシステムを動作させるための方法が提供される。ネットワークストレージデバイスは、ネットワークデバイスに関連するデータを記憶するためのブロックベースのストレージデバイスを含む。上記ネットワークストレージデバイスはさらに、複数のキャッシュキューに分割されたキャッシュメモリを有するスケーラブルなキャッシュセレクタを含む。各キャッシュキューは、上記ネットワークデバイスのいずれかに専用のものである。スケーラブルなキャッシュセレクタはさらに、ネットワークデバイスに送信またはネットワークデバイスから受信されたデータパケットを、それぞれのキャッシュキューに割り当てるキューセレクタを備える。本発明の方法は以下のステップを含む。
【０００５】
ａ）キューセレクタで上記ネットワークデバイスの１つに割り当てられた少なくとも１つの入力データパケットを受信するステップ。 
ｂ）上記入力データパケットをキャッシュメモリのキャッシュキューに転送して記憶するステップ。上記キャッシュキューはそれぞれのネットワークデバイスに割り当てられている。
ｃ）出力データパケットを上記キャッシュメモリのキャッシュキューから送出するステップ。当該出力データパケットは、上記キャッシュキューに記憶された入力データパケットによって構成されるデータの内容の少なくとも一部を含む。上記送出するステップは、上記キャッシュキューに記憶された上記受信された入力データパケットのデータ量が上記出力データパケットの所定サイズを定義するしきい値を超えた場合に実行される。
【０００６】
本発明の方法は下記の次の考察に基づいている。
【０００７】
現在の技術によれば、キャッシュメモリは、ハードディスクから読み取られるまたはハードディスクに書き込まれるデータをバッファリングするために使用され、同じことが他のブロックベースのストレージデバイスにも言える。このようなハードディスクのキャッシュメモリは、実際のハードディスクからデータトラフィック及び実際のハードディスクへのデータトラフィックをバッファリングすることにより、読取（read）／書込（write）ヘッドの過度の動きからドライブを解放する。次に、シリアルネットワークリンクによって複数のネットワークデバイスに接続されるブロックベースのストレージデバイスを含むコンピュータシステムを説明する。このようなシステムでは、ハードディスクによって受信されたデータストリームは、異なるソース／異なるネットワークデバイス、例えば、異なるデジタルカメラなどからの情報／データパケットを含む。ネットワーク接続がシリアルネットワークリンク、例えば、イーサネット、ＦｉｒｅＷｉｒｅまたはＵＳＢなどであるという事実のために、異なる起源を有するデータパケットのシーケンスがハードディスクに配信される。
【０００８】
現在の技術によるキャッシュメモリは、情報の起源にかかわらず、当該情報を記憶するシンプルなバッファである。したがって、ハードディスク等のブロックベースのストレージデバイスに書き込まれるデータブロックは、データの「混合物」、すなわち、複数の異なる起源を有するデータを含む。上記のようなマルチメディア環境を考えると、単なる一例であるが、このようなブロックは、例えば、第１のデジタルカメラ及び第２のデジタルカメラに関連するデータを含むことができる。上記のようなマルチメディア環境のユーザが、例えばカメラ番号１のカメラからのビデオストリームを見たいと望む場合、上記カメラの当該ストリームに関するデータを、ハードディスクの複数の異なるブロックから「収集」しなければならない。１つのデータブロックが異なる起源のデータを含むことがあり得るので、単一の起源のデータを見るために当該データブロックを読み出すことによって、要求されていないデータも読み出される。結果として、ハードディスクの読出/書込ヘッドは膨大な数の動きを実行する必要がある。明らかに、これは達成可能なデータレートに対する欠点である。
【０００９】
本発明の方法は、上記課題の解決を出発点としている。シリアルネットワークリンクを介して受信されたデータストリームは、単純なバッファではなく、所定構造のキャッシュメモリに記憶される。換言すれば、データストリームにより構成されるデータパケットは、その起源に基づいてソートされる。第１のソース／第１のネットワークデバイス、例えば、第１のデジタルカメラなどから受信されたデータパケットは第１のキャッシュキューに記憶され、第２のネットワークデバイスからのデータパケットは第２のキャッシュキューに記憶され、その他のデータパケットも順次、次のキャッシュキューに記憶される。これらキャッシュキューの１つが所定のしきい値レベルを超えると、好ましくは、当該しきい値レベルはブロックベースのストレージデバイスのブロックサイズと一致するように選択され、データブロック全体がブロックベースのストレージデバイスに転送されて書き込まれる。したがって、ブロックベースのストレージデバイスに記憶されたデータは、ネットワークストレージデバイスに接続されたソース／ネットワークデバイスに応じて、ブロックごとにソートされる。換言すると、ストレージデバイスの各ブロックは、単一のネットワークデバイスに関連するデータのみを含む。
【００１０】
上記した段落において、本発明の方法は、一例として書き込み処理に関して説明されている。この方法は、読み取り処理にも適用可能である。このオプションは、詳細な説明中で説明する。
【００１１】
以下の記載において頻繁に使用される用語「入力及び出力データパケット」を説明する。入力及び出力は、キャッシュメモリへの入力及び出力を意味する。よって、ネットワークデバイスからのデータパケットまたはブロックベースのデータストレージからのデータパケットであってキャッシュメモリ内に記憶する必要があるデータパケットは入力データパケットであり、出力データパケットは、常にネットワークデバイスに向かう方向またはブロックベースのデータストレージに向かう方向にキャッシュメモリから出て行く。
【００１２】
好ましくは、ブロックベースのストレージデバイスへの書き込み処理中に、ステップａは、シリアルネットワークリンクを介してネットワークデバイスから少なくとも１つの入力データパケットを受信することを含み、ステップｃは出力データパケットを上記ブロックベースのストレージデバイスに送信することを含み、上記所定サイズはブロックベースのストレージデバイスのブロックサイズに対応する。さらに好ましくは、出力データパケットの所定サイズは、ブロックベースのストレージデバイスのブロックサイズに等しい。
【００１３】
ブロックベースのストレージデバイスのデータランドスケープ(data landscape)はただ一つのソースに関連するデータを含む巨大なセグメントを含むように作成されているため、上記方法によりブロックベースのストレージデバイスに書き込みを行うことは有利である。換言すると、ストレージデバイスの各セグメントは、１つのネットワークデバイスに関連するデータのみを含む。その結果、上記ブロックベースのストレージデバイスによって構成されるデータは、当技術分野で公知の書き込み処理が施されたブロックベースのストレージデバイスに比べてはるかに良くソートされる。よって、ストレージデバイスは、はるかに高速にアクセス可能となる。ハードディスクがブロックベースのストレージデバイスとして使用された場合、読取/書込ヘッドの動作回数は著しく少なくなる。
【００１４】
好ましくは、ブロックベースのストレージデバイスからの読み込み処理中に、ステップａはブロックベースのストレージから少なくとも１つのデータブロックを受信するステップを含み、ステップｃはシリアルネットワークリンクに所定サイズの出力データパケットを送信するステップを含む。さらに好ましくは、出力データパケットの上記所定サイズはシリアルネットワークリンクのフレームサイズに等しく、さらに好ましくは、ブロックベースのストレージから受信したデータブロックのサイズは、ブロックベースのストレージデバイスのブロックサイズに等しい。
【００１５】
有利には、特定のネットワークデバイスに関連するデータが、ブロック毎にブロックベースのストレージから読み出される。ハードディスクが使用される場合、読取/書込ヘッドの動作回数は最小に抑えられる。結果として、データレートが上昇する。前述の方法によれば、高解像度の動画データをリアルタイムでハードディスクドライブから読み出すことができるので、特に有利である。
【００１６】
本発明に係るネットワークストレージデバイスは、シリアルネットワークリンクによって複数のネットワークデバイスに接続されるように提供される。ネットワークストレージデバイスは、ネットワークデバイスに関連するデータを記憶するためのブロックベースのストレージデバイスを備える。ネットワークストレージデバイスはさらに、複数のキャッシュキューに分割されるキャッシュメモリを有するスケーラブルなキャッシュセレクタを備え、各キャッシュキューはネットワークデバイスの１つに専用使用される。スケーラブルなキャッシュセレクタは、上記した読取及び/または書込のための方法を実施することが可能である。
【００１７】
好ましくは、コンピュータシステムのブロックベースのストレージデバイスは、ハードディスクドライブまたはフラッシュドライブである。ハードディスクの場合には、読取/書込ヘッドの動きが少なくなり、ハードディスクからの読み取り及び／またはハードディスクへの書き込みを高速化することができ、磨滅（ｗｅａｒｏｕｔ）を低減することができるので、さらに有利である。
【００１８】
本発明の方法に関して説明された利点（効果）と同一または類似の利点（効果）は、本発明のコンピュータシステムも具備される。
【図面の簡単な説明】
【００１９】
以下の記載において、本発明について図面を参照して詳細に説明する。
【図１】図１はシリアルネットワークリンクを介してネットワークストレージデバイスに接続された複数のネットワークデバイスを含むコンピュータシステムを示す図である。
【図２】図２は、書き込み処理中における図１のネットワークストレージデバイス内のデータフロープロセスを示す図である。
【図３】図３は、読み出し処理中における図１のネットワークストレージデバイス内のデータフロープロセスを示す図である。
【発明を実施するための形態】
【００２０】
図１は、ネットワークブリッジＮＢ及びシリアルネットワークリンク４を介してネットワークストレージデバイスＮＳＤに接続された複数のネットワークデバイスＮＤ１〜ＮＤ３を含むコンピュータシステム２を示している。ネットワークデバイスＮＤ１〜ＮＤ３は、例えば、デジタルカメラ、ディスプレイデバイス（例えば、モニタまたはビーマ（ビデオプロジェクタ））、スキャナである。ネットワークデバイスＮＤ１〜ＮＤ３は、コンピュータ上で実行されるアプリケーションであってもよい。また、２つ以上のネットワークデバイスＮＤ１〜ＮＤ３（即ち、複数のアプリケーション）が１つのマシン/コンピュータのみによって構成／実行されることも有り得る。さらに、図１に示されたコンピュータシステム２は３つのネットワークデバイスＮＤ１〜ＮＤ３より多くのまたは少ないネットワークデバイスを含んでもよい。
【００２１】
全てのアプリケーション／ネットワークデバイスＮＤ１〜ＮＤ３はネットワークを介してデータストリームを送受信することができる。例えば、第１のネットワークデバイスＮＤ１は、ペイロードパッケージｐｌ１１及びラベルＬ１を含む入力データパケット３をネットワークブリッジＮＢに送信する。図１に示すように第２のネットワークデバイスＮＤ２及び第３のネットワークデバイスＮＤ３は、同じように動作することができる。ラベルＬ１〜Ｌ３はネットワークデバイスＮＤ１〜ＮＤ３を示すもので、例えばＬ１が第１のネットワークデバイスＮＤ１を示し、Ｌ２が第２のネットワークデバイスＮＤ２を示す。ネットワークブリッジＮＢとネットワークストレージデバイスＮＳＤとの間のネットワークリンクが、イーサネット、ＦｉｒｅＷｉｒｅ、ＵＳＢなどのシリアルネットワークリンク４であるので、入力データパケット３はネットワークストレージデバイスＮＳＤにシーケンシャルに送信される。換言すれば、連続した入力データパケット３のデータストリームがネットワークストレージデバイスＮＳＤに供給されるが、入力データパケット３が異なる起源を有し、異なるネットワークデバイスＮＤ１〜ＮＤ３によって送信されている。
【００２２】
ネットワークストレージデバイスＮＳＤは、スケーラブルなキャッシュセレクタＳＣＳと、ブロックベースのストレージデバイスＢＢＳＤ、例えばハードディスクのアレイまたはフラッシュメモリのアレイを含む。
【００２３】
以下の記載において、まず、ブロックベースのストレージデバイスＢＢＳＤへの書き込み処理時におけるネットワークストレージデバイスＮＳＤの機能・動作を、図２を参照して説明する。その後、読み出し処理時におけるネットワークストレージデバイスＮＳＤの機能・動作を、図３を参照して説明する。
【００２４】
異なるネットワークデバイスＮＤ１〜ＮＤ３によって送信された複数の入力データパケット３を含むデータストリームは、シリアルネットワークリンク４を介してネットワークブリッジＮＢからネットワークストレージデバイスＮＳＤのキューセレクタＱＳで受信される。キューセレクタＱＳ及びキャッシュメモリ１０は、ネットワークストレージデバイスＮＳＤのスケーラブルなキャッシュセレクタＳＣＳに含まれ、キャッシュコントローラ１２を介して互いにリンクされている。キャッシュメモリ１０は複数のキャッシュキューＱＬ１〜ＱＬ３を含む。キューセレクタＱＳの主要なタスクは、着信データパケット３をキャッシュメモリ１０のキャッシュキューＱＬ１〜ＱＬ３にソートする（分けて入れる）ことである。このため、キューセレクタＱＳはキャッシュキューファイル８を含み、当該キャッシュキューファイル８は異なるキャッシュキューＱＬ１〜ＱＬ３の情報を記憶するエントリＱＬ１’〜ＱＬ３’を有する。図２に示された例示的な実施形態によれば、各キャッシュキューファイルエントリＱＬ１'〜 ＱＬ３'は、キャッシュメモリ１０内の各キャッシュキューＱＬ１〜ＱＬ３のスタートアドレス及びエンドアドレス（Ｓｔａｒｔ、Ｅｎｄ）に関する情報を含む。また、シリアルネットワークリンク４のフレームサイズＦＳと、ブロックベースのストレージデバイスＢＢＳＤのブロックサイズＢＳと、エントリ毎のスタートアドレスを指す読み出しアドレス及び書き込みアドレス（Ｒｄ、Ｗｒ）とは、キャッシュキューファイルエントリＱＬ１'〜ＱＬ３'に含まれている。
【００２５】
キューセレクタＱＳで受信された入力データパケット３の各々は、ペイロードパッケージｐｌ１１〜ｐｌ３１とラベルＬ１〜Ｌ３を含む。ネットワークプロトコルに応じて、ラベルＬ１〜Ｌ３は適切なネットワークヘッダである。ラベルＬ１〜Ｌ３は、それぞれの入力データパケット３を送信するネットワークデバイスＮＤ１〜ＮＤ３を示している。キューセレクタＱＳは入力データパケット３のラベルＬ１〜Ｌ３を読み、それぞれのネットワークデバイスＮＤ１〜ＮＤ３専用の適切なキャッシュキューＱＬ１〜ＱＬ３にペイロードパッケージｐｌ１１〜ｐｌ３１を記憶する。例えば、ペイロードパッケージｐｌ３１及びラベルＬ３を含む第３のネットワークデバイスＮＤ３により送信された入力データパケット３は、図２に示されるように、第３のキャッシュキューＱＬ３に記憶される。キャッシュメモリ１０の異なるキャッシュキューＱＬ１〜ＱＬ３に記憶されたペイロードパッケージｐｌ１１〜ｐｌ３３の取扱いは、適切なキャッシュコントローラ１２によって行われる。
【００２６】
受信される入力データパケット３の数の増加に伴い、キャッシュメモリ１０のキャッシュキューＱＬ１〜ＱＬ３には、より多くのペイロードデータが記憶される。記憶のレベルが所定のしきい値レベルに達するまで、キャッシュキューＱＬ１〜ＱＬ３には記憶が行われる。図２に示された実施形態によれば、このしきい値レベルは、ブロックベースのストレージデバイスＢＢＳＤのブロックサイズＢＳである。図２に示されたネットワークストレージデバイスＮＳＤの典型的な状態によれば、第１のキャッシュキューＱＬ１及び第２のキャッシュキューＱＬ２は、それぞれのしきい値レベルＢＳに達している。キャッシュキューＱＬ１〜ＱＬ３の全てには、同じ閾値レベルＢＳが与えられている。
【００２７】
次のステップでは、１つのネットワークデバイスＮＤ１〜ＮＤ３に関連するデータのみを含むデータブロック全体が、ブロックベースのストレージデバイスＢＢＳＤに書き込まれる。このデータブロックは出力データパケット５である。図２によると、出力データパケット５、すなわちデータブロックｂｌｋ１１は第１のネットワークデバイスＮＤ１に関連するデータのみを含み、ブロックベースのストレージデバイスＢＢＳＤのブロックに書き込まれる。データブロックｂｌｋ１１は第１のペイロードデータパッケージｐｌ１１及び第２のペイロードデータパッケージｐｌ１２の全体を含み、当該２つのペイロードデータパッケージは連結され、ラベルＬ１を付与されており、当該ラベルＬ１は上記構成ペイロードデータが第１のネットワークデバイスＮＤ１に関連していることを示す。第１のペイロードデータパッケージｐｌ１１及び第２のペイロードデータパッケージｐｌ１２の合計はブロックサイズＢＳに到達しないので、さらなるデータがデータブロックｂｌｋ１１に追加され得る。しかしながら、第３のペイロードパッケージｐｌ１３は大き過ぎて、３つデータパッケージｐｌ１１、ｐｌ１２及びｐｌ１３の合計がブロックサイズＢＳを越えてしまう。すなわち３つのパッケージ全てをブロックベースのストレージデバイスＢＢＳＤの単一のブロックに完全に書き込むことはできない。対応策として、最後のペイロードデータパッケージｐｌ１３を分割する。その一部だけが、ｐｌ１３＊と示されるが、ブロックｂｌｋ１１に書き込まれ、その残りはキャッシュキューＱＬ１に残る。当該残ったデータは次のペイロードデータパッケージと共に、ブロックベースのストレージデバイスＢＢＳＤに書き込まれ、キャッシュキューＱＬ１が再びそのしきい値ＢＳに達するようにする。
【００２８】
上述したブロックベースのストレージデバイスＢＢＳＤへの書込み方法と同じ方法がキャッシュキューＱＬ２及びＱＬ３に適用され、キャッシュキューＱＬ２及びＱＬ３がしきい値ＢＳに到達する。図２の例示的な実施形態を参照すると、ブロックベースのストレージデバイスＢＢＳＤに書き込まれる次のブロックは、現在第２のキャッシュＱＬ２キューに記憶されているデータパケットｐｌ２１〜ｐｌ２４とペイロードデータパッケージｐｌ２５の一部とを含むことになる。
【００２９】
好ましくは、スタートアドレス（Ｓｔａｒｔ）及びエンドアドレス（ｅｎｄ）で示されたキャッシュキューＱＬ〜ＱＬ３のサイズは、ブロックサイズＢＳを有する少なくとも２つのブロックを取り入れるのに十分である。キューセレクタＱＳが出力データパケット５、即ち、データブロックを第１のキャッシュキューＱＬ１〜ＱＬ３からブロックベースのストレージデバイスＢＢＳＤへ送信すると、それぞれのキャッシュキューＱＬ１〜ＱＬ３は並列的に着信ペイロードデータパッケージｐｌ１１〜ｐｌ３２で埋めることができる。しかしながら、好ましくは、ブロックは、他のペイロードパッケージｐｌ１１〜ｐｌ３２がそれぞれのキャッシュキューＱＬ１〜ＱＬ３に記憶できるようになる前に、完全に送信される。
【００３０】
以下の記載では、ブロックベースのストレージデバイスＢＢＳＤからのデータフロー、即ち、読み出し処理について、図３を参照して説明する。
【００３１】
読み出し処理は、ネットワークストレージデバイスＮＳＤからデータを要求するネットワークデバイスＮＤ１〜ＮＤ３によって開始される。例として、図３において、第１のネットワークデバイスＮＤ１、例えば表示装置によってリクエストされたデータブロックｂｌｋ１１が、ネットワークストレージデバイスＮＳＤから読み出される。このデータブロックｂｌｋ１１がブロックベースのストレージデバイスＢＢＳＤからスケーラブルなキャッシュセレクタＳＣＳに送信され更にキャッシュメモリ１０に送信されるので、当該データブロックｂｌｋ１１は入力データパケットである。ブロックｂｌｋ１１には、ペイロードが第１のネットワークデバイスＮＤ１に伝送されなければならないことを示すラベルＬ１が付けられている。キューセレクタＱＳはこのラベルを読み出し、ブロックｂｌｋ１１を第１のキャッシュキューＱＬ１に入れる。
【００３２】
図２で説明した書き込み処理から分かるように、キャッシュキューＱＬ１〜ＱＬ３はネットワークデバイスＮＤ１〜ＮＤ３のそれぞれ一つに専用のデバイスである。キャッシュキューＱＬ１〜ＱＬ３の位置はキャッシュキューファイル８のエントリＱＬ１’〜ＱＬ３’により規定される。当該エントリＱＬ１’〜ＱＬ３’は各キャッシュキューＱＬ１〜ＱＬ３のスタートアドレス（Ｓｔａｒｔ）及びエンドアドレス（Ｅｎｄ）だけでなく、ブロックサイズ（ＢＳ）及びフレームサイズ（ＦＳ）を示す。ここでもキャッシュキューＱＬ１〜ＱＬ３には共通の閾値レベルが付与される。しかしながら、書き込み処理とは異なり、ブロックサイズＢＳではなくシリアルネットワークリンク４のフレームサイズＦＳがしきい値レベルとされている。キューセレクタＱＳは対応するレベルＬ１〜Ｌ３が付されたデータサブストリームとフレームサイズＦＳを有するペイロードパッケージｐｌ１１ｒ〜ｐｌ３２ｒを、シリアルネットワークリンク４を介してネットワークブリッジＮＢに送信し、さらに各ネットワークデバイスＮＤ１〜ＮＤ３に送信している。対応するレベルＬ１〜Ｌ３を有するペイロードパッケージｐｌ１１ｒ〜ｐｌ３２ｒは、キャッシュメモリ１０から出て行くので、出力データパケット５である。
【００３３】
ブロックｂｌｋ１１〜ｂｌｋ３２の一部が、指定されたキャッシュキューＱＬ１〜ＱＬ３に残っている場合、当該残部は次の転送サイクルで送信される必要がある。即ち、新しいブロックがそれぞれのキャッシュキューＱＬ１〜ＱＬ３に記憶され、しきい値レベルＦＳに再び到達すると、上記送信が必要となる。書き込み処理から分かるように、好ましくは、ブロックは、別のブロックがそれぞれのキャッシュキューＱＬ１〜ＱＬ３に記憶可能になる前に完全に送信される必要がある。しかし、ブロックの残り部分があるために、時々２つのブロックを送信する必要がある。キューセレクタＱＳが第１のキャッシュキューＱＬ１〜ＱＬ３からサブストリームをネットワークブリッジＮＢに送信すると、各キャッシュキューＱＬ１〜ＱＬ３は、ブロックベースのストレージデバイスＢＢＳＤからのデータブロックで充填されることができ、その前提としてキャッシュメモリ１０内には十分なスペースがあるとする。
【図１】
2013539566.tif 000003
【図２】
2013539566.tif 000004
【図３】
2013539566.tif 000005
【国際調査報告】
2013539566.tif 000006
2013539566.tif 000007