JP2013539566A - コンピュータシステム及び当該コンピュータシステムを動作させる方法 - Google Patents
コンピュータシステム及び当該コンピュータシステムを動作させる方法 Download PDFInfo
- Publication number
- JP2013539566A JP2013539566A JP2013517305A JP2013517305A JP2013539566A JP 2013539566 A JP2013539566 A JP 2013539566A JP 2013517305 A JP2013517305 A JP 2013517305A JP 2013517305 A JP2013517305 A JP 2013517305A JP 2013539566 A JP2013539566 A JP 2013539566A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data packet
- network
- storage device
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000010586 diagram Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本発明はコンピュータシステム(2)及び該コンピュータシステムを動作させる方法に関する。コンピュータシステム(2)は、シリアルネットワークリンク(4)によって複数のネットワークデバイス(ND1〜ND3)に接続されたネットワークストレージデバイス(NSD)を含む。ネットワークストレージデバイス(NSD)は、ブロックベースのストレージデバイス(BBSD)と、キャッシュメモリ(10)を有するスケーラブルなキャッシュセレクタ(SCS)とを含み、キャッシュメモリ(10)は複数のキャッシュキュー(QL1〜QL3)に分割されている。各キャッシュキュー(QL1〜QL3)は複数のネットワークデバイス(ND1〜ND3)の1つに専用のキャッシュキューである。この方法は、a)キューセレクタ(QS)においてネットワークデバイス(ND1〜ND3)の1つに割り当てられた少なくとも1つの入力データパケット(3)を受信するステップと、b)入力データパケット(3)を伝送して、ネットワークデバイス(ND1〜ND3)の各々に割り当てられているキャッシュキュー(QL1〜QL3)に記憶するステップと、c)出力データパケット(5)をキャッシュキュー(QL1〜QL3)から出力するステップとを含み、出力データパケット(5)はキャッシュキュー(QL1〜QL3)に記憶された入力データパケット(3)によって構成されるデータの内容の少なくとも一部を含む。出力データパケット(5)を出力するステップは、キャッシュキュー(QL1〜QL3)に記憶された受信された入力データパケット(3)のデータ量が、出力データパケット(5)の所定サイズを定義するしきい値(BS、FS)を超える場合に実行される。
Description
[背景技術]
現代のマルチメディア環境(例えば、通常数個のデジタルカメラ、ディスプレイモニタ、スキャナ等を用いるデジタルビデオ作成環境)では、大量の高解像度マルチメディアデータが、ネットワークデバイスとも称される上記のデバイス同士を接続する高速ネットワークを介して伝送される。データの永久記憶のためには、適切なストレージデバイス(記憶装置)は、上記のようなマルチメディア環境において重要な役割を果たす。通常、ブロックベースのネットワークストレージデバイス(例えば、ハードディスクのアレイまたはフラッシュメモリのアレイ)は、イーサネット(登録商標)、FireWire、USB等のシリアルネットワークを介してネットワークデバイスに接続される。ネットワークストレージデバイスへの及びネットワークストレージデバイスからのデータ転送速度が高速であることは、特にリアルタイムのアプリケーションの場合、マルチメディア環境全体のパフォーマンスにとって重要である。
現代のマルチメディア環境(例えば、通常数個のデジタルカメラ、ディスプレイモニタ、スキャナ等を用いるデジタルビデオ作成環境)では、大量の高解像度マルチメディアデータが、ネットワークデバイスとも称される上記のデバイス同士を接続する高速ネットワークを介して伝送される。データの永久記憶のためには、適切なストレージデバイス(記憶装置)は、上記のようなマルチメディア環境において重要な役割を果たす。通常、ブロックベースのネットワークストレージデバイス(例えば、ハードディスクのアレイまたはフラッシュメモリのアレイ)は、イーサネット(登録商標)、FireWire、USB等のシリアルネットワークを介してネットワークデバイスに接続される。ネットワークストレージデバイスへの及びネットワークストレージデバイスからのデータ転送速度が高速であることは、特にリアルタイムのアプリケーションの場合、マルチメディア環境全体のパフォーマンスにとって重要である。
本発明の目的は、シリアルネットワークリンクを介してブロックベースのネットワークストレージデバイスに接続される複数のネットワークデバイスを含むコンピュータシステムを提供すること、並びに、上記コンピュータシステムを作動させる方法を提供することである。ブロックベースのストレージデバイスへの読取/書込処理が、データレートを向上させる。
上記目的は独立請求項の内容によって達成され、有利な実施形態は従属請求項の内容となっている。
本発明によれば、シリアルネットワークリンクによって複数のネットワークデバイスに接続されたネットワークストレージデバイスを含むコンピュータシステムを動作させるための方法が提供される。ネットワークストレージデバイスは、ネットワークデバイスに関連するデータを記憶するためのブロックベースのストレージデバイスを含む。上記ネットワークストレージデバイスはさらに、複数のキャッシュキューに分割されたキャッシュメモリを有するスケーラブルなキャッシュセレクタを含む。各キャッシュキューは、上記ネットワークデバイスのいずれかに専用のものである。スケーラブルなキャッシュセレクタはさらに、ネットワークデバイスに送信またはネットワークデバイスから受信されたデータパケットを、それぞれのキャッシュキューに割り当てるキューセレクタを備える。本発明の方法は以下のステップを含む。
a)キューセレクタで上記ネットワークデバイスの1つに割り当てられた少なくとも1つの入力データパケットを受信するステップ。
b)上記入力データパケットをキャッシュメモリのキャッシュキューに転送して記憶するステップ。上記キャッシュキューはそれぞれのネットワークデバイスに割り当てられている。
c)出力データパケットを上記キャッシュメモリのキャッシュキューから送出するステップ。当該出力データパケットは、上記キャッシュキューに記憶された入力データパケットによって構成されるデータの内容の少なくとも一部を含む。上記送出するステップは、上記キャッシュキューに記憶された上記受信された入力データパケットのデータ量が上記出力データパケットの所定サイズを定義するしきい値を超えた場合に実行される。
b)上記入力データパケットをキャッシュメモリのキャッシュキューに転送して記憶するステップ。上記キャッシュキューはそれぞれのネットワークデバイスに割り当てられている。
c)出力データパケットを上記キャッシュメモリのキャッシュキューから送出するステップ。当該出力データパケットは、上記キャッシュキューに記憶された入力データパケットによって構成されるデータの内容の少なくとも一部を含む。上記送出するステップは、上記キャッシュキューに記憶された上記受信された入力データパケットのデータ量が上記出力データパケットの所定サイズを定義するしきい値を超えた場合に実行される。
本発明の方法は下記の次の考察に基づいている。
現在の技術によれば、キャッシュメモリは、ハードディスクから読み取られるまたはハードディスクに書き込まれるデータをバッファリングするために使用され、同じことが他のブロックベースのストレージデバイスにも言える。このようなハードディスクのキャッシュメモリは、実際のハードディスクからデータトラフィック及び実際のハードディスクへのデータトラフィックをバッファリングすることにより、読取(read)/書込(write)ヘッドの過度の動きからドライブを解放する。次に、シリアルネットワークリンクによって複数のネットワークデバイスに接続されるブロックベースのストレージデバイスを含むコンピュータシステムを説明する。このようなシステムでは、ハードディスクによって受信されたデータストリームは、異なるソース/異なるネットワークデバイス、例えば、異なるデジタルカメラなどからの情報/データパケットを含む。ネットワーク接続がシリアルネットワークリンク、例えば、イーサネット、FireWireまたはUSBなどであるという事実のために、異なる起源を有するデータパケットのシーケンスがハードディスクに配信される。
現在の技術によるキャッシュメモリは、情報の起源にかかわらず、当該情報を記憶するシンプルなバッファである。したがって、ハードディスク等のブロックベースのストレージデバイスに書き込まれるデータブロックは、データの「混合物」、すなわち、複数の異なる起源を有するデータを含む。上記のようなマルチメディア環境を考えると、単なる一例であるが、このようなブロックは、例えば、第1のデジタルカメラ及び第2のデジタルカメラに関連するデータを含むことができる。上記のようなマルチメディア環境のユーザが、例えばカメラ番号1のカメラからのビデオストリームを見たいと望む場合、上記カメラの当該ストリームに関するデータを、ハードディスクの複数の異なるブロックから「収集」しなければならない。1つのデータブロックが異なる起源のデータを含むことがあり得るので、単一の起源のデータを見るために当該データブロックを読み出すことによって、要求されていないデータも読み出される。結果として、ハードディスクの読出/書込ヘッドは膨大な数の動きを実行する必要がある。明らかに、これは達成可能なデータレートに対する欠点である。
本発明の方法は、上記課題の解決を出発点としている。シリアルネットワークリンクを介して受信されたデータストリームは、単純なバッファではなく、所定構造のキャッシュメモリに記憶される。換言すれば、データストリームにより構成されるデータパケットは、その起源に基づいてソートされる。第1のソース/第1のネットワークデバイス、例えば、第1のデジタルカメラなどから受信されたデータパケットは第1のキャッシュキューに記憶され、第2のネットワークデバイスからのデータパケットは第2のキャッシュキューに記憶され、その他のデータパケットも順次、次のキャッシュキューに記憶される。これらキャッシュキューの1つが所定のしきい値レベルを超えると、好ましくは、当該しきい値レベルはブロックベースのストレージデバイスのブロックサイズと一致するように選択され、データブロック全体がブロックベースのストレージデバイスに転送されて書き込まれる。したがって、ブロックベースのストレージデバイスに記憶されたデータは、ネットワークストレージデバイスに接続されたソース/ネットワークデバイスに応じて、ブロックごとにソートされる。換言すると、ストレージデバイスの各ブロックは、単一のネットワークデバイスに関連するデータのみを含む。
上記した段落において、本発明の方法は、一例として書き込み処理に関して説明されている。この方法は、読み取り処理にも適用可能である。このオプションは、詳細な説明中で説明する。
以下の記載において頻繁に使用される用語「入力及び出力データパケット」を説明する。入力及び出力は、キャッシュメモリへの入力及び出力を意味する。よって、ネットワークデバイスからのデータパケットまたはブロックベースのデータストレージからのデータパケットであってキャッシュメモリ内に記憶する必要があるデータパケットは入力データパケットであり、出力データパケットは、常にネットワークデバイスに向かう方向またはブロックベースのデータストレージに向かう方向にキャッシュメモリから出て行く。
好ましくは、ブロックベースのストレージデバイスへの書き込み処理中に、ステップaは、シリアルネットワークリンクを介してネットワークデバイスから少なくとも1つの入力データパケットを受信することを含み、ステップcは出力データパケットを上記ブロックベースのストレージデバイスに送信することを含み、上記所定サイズはブロックベースのストレージデバイスのブロックサイズに対応する。さらに好ましくは、出力データパケットの所定サイズは、ブロックベースのストレージデバイスのブロックサイズに等しい。
ブロックベースのストレージデバイスのデータランドスケープ(data landscape)はただ一つのソースに関連するデータを含む巨大なセグメントを含むように作成されているため、上記方法によりブロックベースのストレージデバイスに書き込みを行うことは有利である。換言すると、ストレージデバイスの各セグメントは、1つのネットワークデバイスに関連するデータのみを含む。その結果、上記ブロックベースのストレージデバイスによって構成されるデータは、当技術分野で公知の書き込み処理が施されたブロックベースのストレージデバイスに比べてはるかに良くソートされる。よって、ストレージデバイスは、はるかに高速にアクセス可能となる。ハードディスクがブロックベースのストレージデバイスとして使用された場合、読取/書込ヘッドの動作回数は著しく少なくなる。
好ましくは、ブロックベースのストレージデバイスからの読み込み処理中に、ステップaはブロックベースのストレージから少なくとも1つのデータブロックを受信するステップを含み、ステップcはシリアルネットワークリンクに所定サイズの出力データパケットを送信するステップを含む。さらに好ましくは、出力データパケットの上記所定サイズはシリアルネットワークリンクのフレームサイズに等しく、さらに好ましくは、ブロックベースのストレージから受信したデータブロックのサイズは、ブロックベースのストレージデバイスのブロックサイズに等しい。
有利には、特定のネットワークデバイスに関連するデータが、ブロック毎にブロックベースのストレージから読み出される。ハードディスクが使用される場合、読取/書込ヘッドの動作回数は最小に抑えられる。結果として、データレートが上昇する。前述の方法によれば、高解像度の動画データをリアルタイムでハードディスクドライブから読み出すことができるので、特に有利である。
本発明に係るネットワークストレージデバイスは、シリアルネットワークリンクによって複数のネットワークデバイスに接続されるように提供される。ネットワークストレージデバイスは、ネットワークデバイスに関連するデータを記憶するためのブロックベースのストレージデバイスを備える。ネットワークストレージデバイスはさらに、複数のキャッシュキューに分割されるキャッシュメモリを有するスケーラブルなキャッシュセレクタを備え、各キャッシュキューはネットワークデバイスの1つに専用使用される。スケーラブルなキャッシュセレクタは、上記した読取及び/または書込のための方法を実施することが可能である。
好ましくは、コンピュータシステムのブロックベースのストレージデバイスは、ハードディスクドライブまたはフラッシュドライブである。ハードディスクの場合には、読取/書込ヘッドの動きが少なくなり、ハードディスクからの読み取り及び/またはハードディスクへの書き込みを高速化することができ、磨滅(wearout)を低減することができるので、さらに有利である。
本発明の方法に関して説明された利点(効果)と同一または類似の利点(効果)は、本発明のコンピュータシステムも具備される。
以下の記載において、本発明について図面を参照して詳細に説明する。
図1はシリアルネットワークリンクを介してネットワークストレージデバイスに接続された複数のネットワークデバイスを含むコンピュータシステムを示す図である。
図2は、書き込み処理中における図1のネットワークストレージデバイス内のデータフロープロセスを示す図である。
図3は、読み出し処理中における図1のネットワークストレージデバイス内のデータフロープロセスを示す図である。
図1は、ネットワークブリッジNB及びシリアルネットワークリンク4を介してネットワークストレージデバイスNSDに接続された複数のネットワークデバイスND1〜ND3を含むコンピュータシステム2を示している。ネットワークデバイスND1〜ND3は、例えば、デジタルカメラ、ディスプレイデバイス(例えば、モニタまたはビーマ(ビデオプロジェクタ))、スキャナである。ネットワークデバイスND1〜ND3は、コンピュータ上で実行されるアプリケーションであってもよい。また、2つ以上のネットワークデバイスND1〜ND3(即ち、複数のアプリケーション)が1つのマシン/コンピュータのみによって構成/実行されることも有り得る。さらに、図1に示されたコンピュータシステム2は3つのネットワークデバイスND1〜ND3より多くのまたは少ないネットワークデバイスを含んでもよい。
全てのアプリケーション/ネットワークデバイスND1〜ND3はネットワークを介してデータストリームを送受信することができる。例えば、第1のネットワークデバイスND1は、ペイロードパッケージpl11及びラベルL1を含む入力データパケット3をネットワークブリッジNBに送信する。図1に示すように第2のネットワークデバイスND2及び第3のネットワークデバイスND3は、同じように動作することができる。ラベルL1〜L3はネットワークデバイスND1〜ND3を示すもので、例えばL1が第1のネットワークデバイスND1を示し、L2が第2のネットワークデバイスND2を示す。ネットワークブリッジNBとネットワークストレージデバイスNSDとの間のネットワークリンクが、イーサネット、FireWire、USBなどのシリアルネットワークリンク4であるので、入力データパケット3はネットワークストレージデバイスNSDにシーケンシャルに送信される。換言すれば、連続した入力データパケット3のデータストリームがネットワークストレージデバイスNSDに供給されるが、入力データパケット3が異なる起源を有し、異なるネットワークデバイスND1〜ND3によって送信されている。
ネットワークストレージデバイスNSDは、スケーラブルなキャッシュセレクタSCSと、ブロックベースのストレージデバイスBBSD、例えばハードディスクのアレイまたはフラッシュメモリのアレイを含む。
以下の記載において、まず、ブロックベースのストレージデバイスBBSDへの書き込み処理時におけるネットワークストレージデバイスNSDの機能・動作を、図2を参照して説明する。その後、読み出し処理時におけるネットワークストレージデバイスNSDの機能・動作を、図3を参照して説明する。
異なるネットワークデバイスND1〜ND3によって送信された複数の入力データパケット3を含むデータストリームは、シリアルネットワークリンク4を介してネットワークブリッジNBからネットワークストレージデバイスNSDのキューセレクタQSで受信される。キューセレクタQS及びキャッシュメモリ10は、ネットワークストレージデバイスNSDのスケーラブルなキャッシュセレクタSCSに含まれ、キャッシュコントローラ12を介して互いにリンクされている。キャッシュメモリ10は複数のキャッシュキューQL1〜QL3を含む。キューセレクタQSの主要なタスクは、着信データパケット3をキャッシュメモリ10のキャッシュキューQL1〜QL3にソートする(分けて入れる)ことである。このため、キューセレクタQSはキャッシュキューファイル8を含み、当該キャッシュキューファイル8は異なるキャッシュキューQL1〜QL3の情報を記憶するエントリQL1’〜QL3’を有する。図2に示された例示的な実施形態によれば、各キャッシュキューファイルエントリQL1'〜 QL3'は、キャッシュメモリ10内の各キャッシュキューQL1〜QL3のスタートアドレス及びエンドアドレス(Start、End)に関する情報を含む。また、シリアルネットワークリンク4のフレームサイズFSと、ブロックベースのストレージデバイスBBSDのブロックサイズBSと、エントリ毎のスタートアドレスを指す読み出しアドレス及び書き込みアドレス(Rd、Wr)とは、キャッシュキューファイルエントリQL1'〜QL3'に含まれている。
キューセレクタQSで受信された入力データパケット3の各々は、ペイロードパッケージpl11〜pl31とラベルL1〜L3を含む。ネットワークプロトコルに応じて、ラベルL1〜L3は適切なネットワークヘッダである。ラベルL1〜L3は、それぞれの入力データパケット3を送信するネットワークデバイスND1〜ND3を示している。キューセレクタQSは入力データパケット3のラベルL1〜L3を読み、それぞれのネットワークデバイスND1〜ND3専用の適切なキャッシュキューQL1〜QL3にペイロードパッケージpl11〜pl31を記憶する。例えば、ペイロードパッケージpl31及びラベルL3を含む第3のネットワークデバイスND3により送信された入力データパケット3は、図2に示されるように、第3のキャッシュキューQL3に記憶される。キャッシュメモリ10の異なるキャッシュキューQL1〜QL3に記憶されたペイロードパッケージpl11〜pl33の取扱いは、適切なキャッシュコントローラ12によって行われる。
受信される入力データパケット3の数の増加に伴い、キャッシュメモリ10のキャッシュキューQL1〜QL3には、より多くのペイロードデータが記憶される。記憶のレベルが所定のしきい値レベルに達するまで、キャッシュキューQL1〜QL3には記憶が行われる。図2に示された実施形態によれば、このしきい値レベルは、ブロックベースのストレージデバイスBBSDのブロックサイズBSである。図2に示されたネットワークストレージデバイスNSDの典型的な状態によれば、第1のキャッシュキューQL1及び第2のキャッシュキューQL2は、それぞれのしきい値レベルBSに達している。キャッシュキューQL1〜QL3の全てには、同じ閾値レベルBSが与えられている。
次のステップでは、1つのネットワークデバイスND1〜ND3に関連するデータのみを含むデータブロック全体が、ブロックベースのストレージデバイスBBSDに書き込まれる。このデータブロックは出力データパケット5である。図2によると、出力データパケット5、すなわちデータブロックblk11は第1のネットワークデバイスND1に関連するデータのみを含み、ブロックベースのストレージデバイスBBSDのブロックに書き込まれる。データブロックblk11は第1のペイロードデータパッケージpl11及び第2のペイロードデータパッケージpl12の全体を含み、当該2つのペイロードデータパッケージは連結され、ラベルL1を付与されており、当該ラベルL1は上記構成ペイロードデータが第1のネットワークデバイスND1に関連していることを示す。第1のペイロードデータパッケージpl11及び第2のペイロードデータパッケージpl12の合計はブロックサイズBSに到達しないので、さらなるデータがデータブロックblk11に追加され得る。しかしながら、第3のペイロードパッケージpl13は大き過ぎて、3つデータパッケージpl11、pl12及びpl13の合計がブロックサイズBSを越えてしまう。すなわち3つのパッケージ全てをブロックベースのストレージデバイスBBSDの単一のブロックに完全に書き込むことはできない。対応策として、最後のペイロードデータパッケージpl13を分割する。その一部だけが、pl13*と示されるが、ブロックblk11に書き込まれ、その残りはキャッシュキューQL1に残る。当該残ったデータは次のペイロードデータパッケージと共に、ブロックベースのストレージデバイスBBSDに書き込まれ、キャッシュキューQL1が再びそのしきい値BSに達するようにする。
上述したブロックベースのストレージデバイスBBSDへの書込み方法と同じ方法がキャッシュキューQL2及びQL3に適用され、キャッシュキューQL2及びQL3がしきい値BSに到達する。図2の例示的な実施形態を参照すると、ブロックベースのストレージデバイスBBSDに書き込まれる次のブロックは、現在第2のキャッシュQL2キューに記憶されているデータパケットpl21〜pl24とペイロードデータパッケージpl25の一部とを含むことになる。
好ましくは、スタートアドレス(Start)及びエンドアドレス(end)で示されたキャッシュキューQL〜QL3のサイズは、ブロックサイズBSを有する少なくとも2つのブロックを取り入れるのに十分である。キューセレクタQSが出力データパケット5、即ち、データブロックを第1のキャッシュキューQL1〜QL3からブロックベースのストレージデバイスBBSDへ送信すると、それぞれのキャッシュキューQL1〜QL3は並列的に着信ペイロードデータパッケージpl11〜pl32で埋めることができる。しかしながら、好ましくは、ブロックは、他のペイロードパッケージpl11〜pl32がそれぞれのキャッシュキューQL1〜QL3に記憶できるようになる前に、完全に送信される。
以下の記載では、ブロックベースのストレージデバイスBBSDからのデータフロー、即ち、読み出し処理について、図3を参照して説明する。
読み出し処理は、ネットワークストレージデバイスNSDからデータを要求するネットワークデバイスND1〜ND3によって開始される。例として、図3において、第1のネットワークデバイスND1、例えば表示装置によってリクエストされたデータブロックblk11が、ネットワークストレージデバイスNSDから読み出される。このデータブロックblk11がブロックベースのストレージデバイスBBSDからスケーラブルなキャッシュセレクタSCSに送信され更にキャッシュメモリ10に送信されるので、当該データブロックblk11は入力データパケットである。ブロックblk11には、ペイロードが第1のネットワークデバイスND1に伝送されなければならないことを示すラベルL1が付けられている。キューセレクタQSはこのラベルを読み出し、ブロックblk11を第1のキャッシュキューQL1に入れる。
図2で説明した書き込み処理から分かるように、キャッシュキューQL1〜QL3はネットワークデバイスND1〜ND3のそれぞれ一つに専用のデバイスである。キャッシュキューQL1〜QL3の位置はキャッシュキューファイル8のエントリQL1’〜QL3’により規定される。当該エントリQL1’〜QL3’は各キャッシュキューQL1〜QL3のスタートアドレス(Start)及びエンドアドレス(End)だけでなく、ブロックサイズ(BS)及びフレームサイズ(FS)を示す。ここでもキャッシュキューQL1〜QL3には共通の閾値レベルが付与される。しかしながら、書き込み処理とは異なり、ブロックサイズBSではなくシリアルネットワークリンク4のフレームサイズFSがしきい値レベルとされている。キューセレクタQSは対応するレベルL1〜L3が付されたデータサブストリームとフレームサイズFSを有するペイロードパッケージpl11r〜pl32rを、シリアルネットワークリンク4を介してネットワークブリッジNBに送信し、さらに各ネットワークデバイスND1〜ND3に送信している。対応するレベルL1〜L3を有するペイロードパッケージpl11r〜pl32rは、キャッシュメモリ10から出て行くので、出力データパケット5である。
ブロックblk11〜blk32の一部が、指定されたキャッシュキューQL1〜QL3に残っている場合、当該残部は次の転送サイクルで送信される必要がある。即ち、新しいブロックがそれぞれのキャッシュキューQL1〜QL3に記憶され、しきい値レベルFSに再び到達すると、上記送信が必要となる。書き込み処理から分かるように、好ましくは、ブロックは、別のブロックがそれぞれのキャッシュキューQL1〜QL3に記憶可能になる前に完全に送信される必要がある。しかし、ブロックの残り部分があるために、時々2つのブロックを送信する必要がある。キューセレクタQSが第1のキャッシュキューQL1〜QL3からサブストリームをネットワークブリッジNBに送信すると、各キャッシュキューQL1〜QL3は、ブロックベースのストレージデバイスBBSDからのデータブロックで充填されることができ、その前提としてキャッシュメモリ10内には十分なスペースがあるとする。
Claims (9)
- コンピュータシステム(2)を動作させるための方法であって、該コンピュータシステム(2)がシリアルネットワークリンク(4)によって複数のネットワークデバイス(ND1〜ND3)に接続されたネットワークストレージデバイス(NSD)を含み、該ネットワークストレージデバイス(NSD)が前記ネットワークデバイス(ND1〜ND3)に関連したデータを記憶するブロックベースのストレージデバイス(BBSD)とキャッシュメモリ(10)を有するスケーラブルなキャッシュセレクタ(SCS)とを含み、前記キャッシュメモリ(10)が複数のキャッシュキュー(QL1〜QL3)に分割されており、各キャッシュキュー(QL1〜QL3)が前記複数のネットワークデバイス(ND1〜ND3)の各々に専用のキャッシュキューであり、前記スケーラブルなキャッシュセレクタ(SCS)がさらに、前記ネットワークデバイス(ND1〜ND3)から受信されるか前記ネットワークデバイス(ND1〜ND3)に送信される入力データパケット(3)を前記キャッシュキュー(QL1〜QL3)のそれぞれに付与するキューセレクタ(QS)を含む、方法において、
a)前記シリアルネットワークリンク(4)を介して異なるネットワークデバイス(ND1〜ND3)から入力データパケット(3)を受信するステップと、
b)前記シリアルネットワークリンク(4)を介して受信された前記入力データパケット(3)のストリームを分離して、各入力データパケット(3)を前記複数のネットワークデバイス(ND1〜ND3)の1つから発信されものとして前記キューセレクタ(QS)において識別するステップと、
c)前記入力データパケット(3)を伝送して前記キャッシュメモリ(10)のキャッシュキュー(QL1〜QL3)に記憶するステップであって、該キャッシュキュー(QL1〜QL3)が前記ネットワークデバイス(ND1〜ND3)のそれぞれに割り当てられている、ステップと、
d)出力データパケット(5)を前記キャッシュメモリ(10)の前記キャッシュキュー(QL1〜QL3)から出力するステップであって、該出力データパケット(5)が前記キャッシュキュー(QL1〜QL3)に記憶された前記入力データパケット(3)により構成されるデータの内容の少なくとも一部を含んでいる、ステップと、
を含み、
前記出力するステップは、前記キャッシュキュー(QL1〜QL3)に記憶された前記受信された入力データパケット(3)のデータ量が、前記出力データパケット(5)の所定サイズを定義するしきい値(BS、FS)を超える場合に実行される、前記方法。 - 前記ブロックベースのストレージデバイス(BBSD)への書き込み処理中に、前記ステップdは、出力データパケット(5)を前記ブロックベースのストレージデバイス(BBSD)に送信するステップを含み、前記所定サイズは前記ブロックベースのストレージデバイス(BBSD)のブロックサイズ(BS)に対応している、請求項1の方法。
- 前記ブロックベースのストレージデバイス(BBSD)が複数のセグメントに分割され、各セグメントが1つのネットワークデバイス(ND1〜ND3)からのデータブロック(blk11〜blk32)を記憶する、請求項2の方法。
- コンピュータシステム(2)を動作させるための方法であって、該コンピュータシステム(2)がシリアルネットワークリンク(4)によって複数のネットワークデバイス(ND1〜ND3)に接続されたネットワークストレージデバイス(NSD)を含み、該ネットワークストレージデバイス(NSD)が前記ネットワークデバイス(ND1〜ND3)に関連したデータを記憶するブロックベースのストレージデバイス(BBSD)とキャッシュメモリ(10)を有するスケーラブルなキャッシュセレクタ(SCS)とを含み、前記キャッシュメモリ(10)が複数のキャッシュキュー(QL1〜QL3)に分割されており、各キャッシュキュー(QL1〜QL3)が前記複数のネットワークデバイス(ND1〜ND3)の各々に専用のキャッシュキューであり、前記スケーラブルなキャッシュセレクタ(SCS)がさらに、前記ネットワークデバイス(ND1〜ND3)から受信されるか前記ネットワークデバイス(ND1〜ND3)に送信される入力データパケット(3)を前記キャッシュキュー(QL1〜QL3)のそれぞれに付与するキューセレクタ(QS)を含む、方法において、
a)前記ブロックベースのストレージデバイス(BBSD)から入力データパケット(3)として少なくとも1つのデータブロック(blk11〜blk32)を受信するステップと、
b)前記ブロックベースのストレージ(BBDS)から受信された前記入力データパケット(3)のストリームを分離して、前記キューセレクタ(QS)において各入力データパケット(3)を前記ネットワークデバイス(ND1〜ND3)の1つに割り当てるステップと、
c)前記入力データパケット(3)を伝送して前記キャッシュメモリ(10)のキャッシュキュー(QL1〜QL3)に記憶するステップであって、該キャッシュキュー(QL1〜QL3)が前記ネットワークデバイス(ND1〜ND3)のそれぞれに割り当てられる、ステップと、
d)前記キャッシュメモリ(10)の前記キャッシュキュー(QL1〜QL3)から出力データパケット(5)を出力するステップであって、該出力データパケット(5)が前記キャッシュキュー(QL1〜QL3)に記憶された前記入力データパケット(3)により構成されるデータの内容の少なくとも一部を含んでいる、ステップと
を含み、
前記出力するステップは、前記キャッシュキュー(QL1〜QL3)に記憶された前記受信された入力データパケット(3)のデータ量が、前記出力データパケット(5)の所定サイズを定義するしきい値(BS、FS)を超える場合に実行される、前記方法。 - 前記ブロックベースのストレージデバイス(BBSD)からの読み出し処理の間、前記ステップcは、前記シリアルネットワークリンク(4)に所定サイズの出力データパケット(5)を送信するステップを含む、請求項4の方法。
- 前記出力データパケット(5)の所定サイズは前記シリアルネットワークリンク(4)のフレームサイズに等しい、請求項5の方法。
- 前記ブロックベースのストレージデバイス(BBSD)から受信されたデータブロック(blk11〜blk32)のサイズが前記ブロックベースのストレージデバイス(BBSD)のブロックサイズに等しい、請求項5または6の方法。
- シリアルネットワークリンク(4)を介して複数のネットワークデバイス(ND1〜ND3)に接続された入力部を有するネットワークストレージデバイス(NSD)であって、
前記ネットワークデバイス(ND1〜ND3)に関連するデータを記憶するブロックベースのストレージデバイス(BBSD)と、
キャッシュメモリ(10)を有するスケーラブルなキャッシュセレクタ(SCS)と
を含み、
前記キャッシュメモリ(10)が複数のキャッシュキュー(QL1〜QL3)に分割され、各キャッシュキュー(QL1〜QL3)が前記複数のネットワークデバイス(ND1〜ND3)の各々に専用のキャッシュキューであり、前記スケーラブルなキャッシュセレクタ(SCS)が請求項1〜6のいずれかの方法を実行することができる、前記ネットワークストレージデバイス。 - 前記ブロックベースのストレージデバイス(BBSD)がハードディスクドライブまたはフラッシュドライブである、請求項8のコンピュータシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10305724.6 | 2010-07-02 | ||
EP10305724A EP2403202A1 (en) | 2010-07-02 | 2010-07-02 | Computer system and method for operating the same |
PCT/EP2011/061043 WO2012001122A1 (en) | 2010-07-02 | 2011-06-30 | Computer system and method for operating the same |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013539566A true JP2013539566A (ja) | 2013-10-24 |
JP2013539566A5 JP2013539566A5 (ja) | 2014-08-14 |
Family
ID=43088166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013517305A Withdrawn JP2013539566A (ja) | 2010-07-02 | 2011-06-30 | コンピュータシステム及び当該コンピュータシステムを動作させる方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9319354B2 (ja) |
EP (2) | EP2403202A1 (ja) |
JP (1) | JP2013539566A (ja) |
KR (1) | KR20130098265A (ja) |
CN (1) | CN102959913A (ja) |
BR (1) | BR112013000088A2 (ja) |
WO (1) | WO2012001122A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9423983B2 (en) | 2012-01-19 | 2016-08-23 | Syncsort Incorporated | Intelligent storage controller |
CN102916903B (zh) * | 2012-10-25 | 2015-04-08 | 华为技术有限公司 | 缓存调整方法及装置 |
US9674086B2 (en) * | 2013-11-05 | 2017-06-06 | Cisco Technology, Inc. | Work conserving schedular based on ranking |
CN107371061B (zh) * | 2017-08-25 | 2021-03-19 | 普联技术有限公司 | 一种视频流播放方法、装置及设备 |
US10678718B2 (en) * | 2018-01-16 | 2020-06-09 | Marvell Israel (M.I.S.L) Ltd. | Network device and method of operation |
CN111245743B (zh) * | 2020-01-09 | 2023-09-08 | 浙江吉利汽车研究院有限公司 | 一种信息处理方法、存储介质、网关及汽车 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076568B2 (en) | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
US6973455B1 (en) | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US6678758B2 (en) * | 2001-02-05 | 2004-01-13 | Fujitsu Limited | Dynamic queuing for read/write requests |
US7472231B1 (en) | 2001-09-07 | 2008-12-30 | Netapp, Inc. | Storage area network data cache |
US7386627B1 (en) * | 2002-01-29 | 2008-06-10 | Network Appliance, Inc. | Methods and apparatus for precomputing checksums for streaming media |
CN100342352C (zh) | 2005-03-14 | 2007-10-10 | 北京邦诺存储科技有限公司 | 一种可扩充的高速存储网络缓存系统 |
US9390019B2 (en) | 2006-02-28 | 2016-07-12 | Violin Memory Inc. | Method and apparatus for providing high-performance and highly-scalable storage acceleration |
US7725654B2 (en) | 2006-07-25 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Affecting a caching algorithm used by a cache of storage system |
US8171487B2 (en) * | 2007-05-02 | 2012-05-01 | International Business Machines Corporation | Method for processing work items of a workflow system |
US8036115B2 (en) * | 2008-09-17 | 2011-10-11 | Intel Corporation | Synchronization of multiple incoming network communication streams |
US20100199039A1 (en) * | 2009-01-30 | 2010-08-05 | International Business Machines Corporation | Systems and Methods for Optimizing Host Reads and Cache Destages in a Raid System |
-
2010
- 2010-07-02 EP EP10305724A patent/EP2403202A1/en not_active Withdrawn
-
2011
- 2011-06-30 BR BR112013000088A patent/BR112013000088A2/pt not_active IP Right Cessation
- 2011-06-30 JP JP2013517305A patent/JP2013539566A/ja not_active Withdrawn
- 2011-06-30 WO PCT/EP2011/061043 patent/WO2012001122A1/en active Application Filing
- 2011-06-30 EP EP11728294.7A patent/EP2589196A1/en not_active Ceased
- 2011-06-30 CN CN2011800319755A patent/CN102959913A/zh active Pending
- 2011-06-30 US US13/808,091 patent/US9319354B2/en not_active Expired - Fee Related
- 2011-06-30 KR KR1020137000022A patent/KR20130098265A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
KR20130098265A (ko) | 2013-09-04 |
EP2403202A1 (en) | 2012-01-04 |
US20130110965A1 (en) | 2013-05-02 |
BR112013000088A2 (pt) | 2016-05-10 |
CN102959913A (zh) | 2013-03-06 |
EP2589196A1 (en) | 2013-05-08 |
US9319354B2 (en) | 2016-04-19 |
WO2012001122A1 (en) | 2012-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249688B2 (en) | High-speed data packet capture and storage with playback capabilities | |
US8472457B2 (en) | Method and apparatus for queuing variable size data packets in a communication system | |
JP2013539566A (ja) | コンピュータシステム及び当該コンピュータシステムを動作させる方法 | |
US20030061269A1 (en) | Data flow engine | |
US8873550B2 (en) | Task queuing in a multi-flow network processor architecture | |
JP2007317181A (ja) | ネットワークストレージ装置 | |
EP3166269B1 (en) | Queue management method and apparatus | |
US9747233B2 (en) | Facilitating routing by selectively aggregating contiguous data units | |
US11681470B2 (en) | High-speed replay of captured data packets | |
US7746856B2 (en) | Method, apparatus and system for optimizing packet throughput for content processing systems on chips | |
CN111490969A (zh) | 网络设备中的灵活报头变更 | |
US5940404A (en) | Method and apparatus for enhanced scatter mode allowing user data to be page aligned | |
KR20050056507A (ko) | 복수의 인터페이스를 통해 패킷을 전송하기 위한 정보독출을 미리 수행하여 패킷 전송을 빠르게 수행하는 패킷포워딩 시스템 | |
US7840643B2 (en) | System and method for movement of non-aligned data in network buffer model | |
CN109802897B (zh) | 一种数据传输方法及通信设备 | |
EP2304575A1 (en) | Method and device to perform direct memory access | |
KR101093808B1 (ko) | 데이터 저장장치를 공유하는 네트워크 시스템 및 그 동작방법 | |
JP4675290B2 (ja) | マルチメディア蓄積配信サーバ、および、マルチメディアデータ多重読出し書込み方法 | |
US7293130B2 (en) | Method and system for a multi-level memory | |
US20100067543A1 (en) | Method and an apparatus for data storage and communications | |
US20140006537A1 (en) | High speed record and playback system | |
WO2010029168A1 (en) | A method and an apparatus for data storage and communications | |
JP2005353063A (ja) | ネットワークデータサーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140630 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140630 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20150427 |