JP5966229B2 - 高速データ配布のための方法および装置 - Google Patents

高速データ配布のための方法および装置 Download PDF

Info

Publication number
JP5966229B2
JP5966229B2 JP2014537442A JP2014537442A JP5966229B2 JP 5966229 B2 JP5966229 B2 JP 5966229B2 JP 2014537442 A JP2014537442 A JP 2014537442A JP 2014537442 A JP2014537442 A JP 2014537442A JP 5966229 B2 JP5966229 B2 JP 5966229B2
Authority
JP
Japan
Prior art keywords
data
user
requested
network interface
interface controller
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.)
Active
Application number
JP2014537442A
Other languages
English (en)
Other versions
JP2015502590A (ja
Inventor
帆 方
帆 方
克平 ▲陳▼
克平 ▲陳▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2015502590A publication Critical patent/JP2015502590A/ja
Application granted granted Critical
Publication of JP5966229B2 publication Critical patent/JP5966229B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明の実施形態は、通信の分野に関し、詳細には、高速データ配布のための方法および装置に関する。
インターネットアプリケーションは、既にウェブ2.0時代に入っており、ユーザのサービス選択は主として実際のユーザ経験に基づくものになっている。待ち時間がユーザ経験に悪影響を及ぼす問題を解決するために、優れたユーザ経験を達成するように、多くの高速アクセスの設計が提供されている。ほとんどすべてのインターネット会社が加速設計を実行しており、その中でもコンテンツ配信ネットワーク(Content Delivery Network、CDN)におけるキャッシュ(Cache)の設計が特に強調されている。CDNでは、あらゆるキャッシュが中間デバイスであり、キャッシング機能をもたらす。
一例としてCDN製品サービスにおけるビデオオンデマンドサービスを用いて、従来技術で提供されるビデオオンデマンドサービスに対する加速解決策が図1(矢印のラインは情報またはデータの流れの方向を示し、ラインに付けられた連続番号は順次の関係を示す)に示されており、ユーザの要求が、ネットワークポートすなわちネットワークインターフェースコントローラ(Network Interface Controller、NIC)から入り、中央処理装置(Central Processing Unit、CPU)は、要求を受け取った後に、記憶装置(Storage)からデータを読み取り、データをメモリ(Memory)に記憶し、データをNICへ送り、NICを使用してデータをクライアント(Client)に送る。この解決策では、デバイスが高速フラッシュメモリ(Flash)およびネットワークをもたらし、ホットスポットデータに対するキャッシュ(Cache)をもたらす。さしあたり、ユーザから要求された映像データが記憶装置になければ、この要求が、NICを使用して、ユーザが要求した映像データを供給することができる別のデバイスに送られ、ユーザが要求した映像データがNICを使用して取得され、次いでクライアント(Client)に送られ、次に、ユーザの要求を満たすために、別のデバイスから取得された映像データがクライアントに送られるとき、またはその後に、映像データが局所記憶装置(Storage)に記憶される。
従来技術の欠陥は、すべての映像データをメモリおよびCPUで一旦処理しなければならないことにある。CPUは、データを取り出して配布するように動作するが、データプレーンと制御プレーンの分離を実施することができず、CDNストリームについては、並列性が高いと、CPU使用が高度であって、それにより、性能における明白なボトルネックがもたらされる。
本発明の実施形態は、中央処理装置およびメモリの利用を低減しシステム性能を改善するために、データ配布のための方法および装置を提供する。
本発明の一実施形態は、データ配布のための方法を提供し、この方法は、
中央処理装置で、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を転送モジュールに送るステップと、
送モジュールで、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するステップと、
ネットワークインターフェースコントローラで、ユーザが要求したデータをユーザに送るステップと
を含む。
本発明の別の実施形態は、データ配布の方法を提供し、この方法は、
中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取るステップと、
ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するステップと
を含む。
本発明の一実施形態は、中央処理装置、ネットワークインターフェースコントローラ、および転送モジュールを含むデータ配布用のシステムを提供し、
中央処理装置は、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を転送モジュールに送るように構成されており、
送モジュールは、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されており、
ネットワークインターフェースコントローラは、ユーザが要求したデータをユーザに送るように構成されている。
本発明の一実施形態は、受信モジュールおよびデータ読取りモジュールを含むデータ配布用の装置を提供し、
受信モジュールは、中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取るように構成されており、
データ読取りモジュールは、ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。
本発明の前述の実施形態から理解され得るように、中央処理装置が、アドレスおよび長さの情報を転送モジュールに送り、転送モジュールが、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、ネットワークインターフェースコントローラが、ユーザが要求したデータを送る。全体のデータ伝送処理が、ネットワークインターフェースコントローラと記憶装置の間に独立したダイレクトチャネルを使用することによって完結され、データが中央処理装置およびメモリを通ることがなく、中央処理装置に必要とされるのは、送信ディスクリプタを構成することだけであって、データをコピーする必要がない。したがって、従来技術と比較して、本発明の実施形態で提供される方法を用いることにより、サービスが高められた後(たとえば、ネットワークアダプタの既存の帯域幅および既存の記憶容量を拡大する必要がある)、必要とされるのは、ネットワークインターフェースコントローラおよび記憶装置を含むデバイスを追加することのみであり、メモリおよび中央処理装置に関するコストを増やす必要はない。一方では、メモリおよび中央処理装置の利用を低減することができ、全体システムの性能が改善され、他方では、メモリウォールの問題の可能性が低下する。
本発明の実施形態の技術的解決策をより明瞭に説明するために、以下は、実施形態または従来技術を説明するのに必要な添付図面を簡単に紹介する。明らかに、以下の説明における添付図面は、本発明のいくつかの実施形態を示すのみであるが、当業者なら、それでもなおこれらの添付図面から他の図面を導出し得る。
従来技術のビデオオンデマンドサービスに対する加速解決策の概略図である。 本発明の一実施形態による高速データ配布の方法の概略流れ図である。 本発明の一実施形態による送信ディスクリプタの概略構造図である。 本発明の一実施形態による高速データ配布用のシステムの概略構造図である。 本発明の別の実施形態による高速データ配布用のシステムの概略構造図である。 本発明の別の実施形態による高速データ配布用のシステムの概略構造図である。 本発明の別の実施形態による高速データ配布用のシステムの概略構造図である。 本発明の別の実施形態による高速データ配布用のシステムの概略構造図である。 本発明の別の実施形態による高速データ配布用のシステムの概略構造図である。 本発明の一実施形態による高速データ配布用の装置の概略構造図である。 本発明の別の実施形態による高速データ配布用の装置の概略構造図である。 本発明の別の実施形態による高速データ配布用の装置の概略構造図である。
本発明の実施形態は、中央処理装置およびメモリの利用を低減してシステム性能を改善するために、高速データ配布のための方法および装置を提供する。
図2は、本発明の一実施形態による高速データ配布の方法の概略流れ図であり、主として次のステップを含んでいる。
S201:中央処理装置は、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を高速転送モジュールに送る。
本発明によって提供される実施形態では、高速転送モジュールは、PCIスイッチの中に組み込まれたまたはネットワークインターフェースコントローラNICの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす。この機能モジュールは、CPUによって構成された後に、記憶装置またはメモリの中のデータを読み取り、ネットワークインターフェースコントローラNICにデータを送って、直接メモリアクセス(Direct Memory Access、DMA)およびデータ送信を完了してもよく、すなわち、高速転送モジュールは、DMAで、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
概して、ネットワークインターフェースコントローラNICは、対応するデータ記述情報をメモリの中に有する。中央処理装置がデータを送る必要があるとき、中央処理装置は、たとえば送信ディスクリプタ(Transmit Descriptor)といったデータ記述情報を構成する。このとき、ネットワークインターフェースコントローラNICは、送信ディスクリプタ(Transmit Descriptor)の中のバッファアドレス(Buffer Address)フィールドおよび長さ(Length)フィールドによって送るべきデータを取得し、内部のDMAモジュールに、対応アドレスからデータを読み取ることを通知してデータを送る。送るべきデータのそれぞれの部分について送信ディスクリプタ(Transmit Descriptor)を構成する必要があり、データが送られるのは、その送信ディスクリプタが構成された後のことである。
送るべきデータが、連続的に記憶されたデータまたは中央処理装置によって予測され得るデータの特定のストリームである場合、記憶装置がデータを記憶するように、中央処理装置が高速転送モジュールを構成し、ネットワークインターフェースコントローラNICがデータを記憶装置(Storage)に直接送るか、あるいは、PCIスイッチと中央処理装置の間の帯域幅を占有することなく、ネットワークインターフェースコントローラNICと記憶装置(Storage)の間のやりとりのDMA動作を完了するように、データが、記憶装置(Storage)からネットワークインターフェースコントローラNICへ直接送られてもよい。
したがって、本発明の実施形態では、データの送信は、中央処理装置の介在を必要とせず、中央処理装置に必要とされるのは、データ記述情報を構成することのみであって、データをコピーする必要がなく、それによって、データコピーのためのメモリ資源の消費が防止される。
ユーザに対するリンクが確立されたとき、パッケージモード識別情報(Package ID)がユーザに割り当てられ、パッケージモード識別情報は、ユーザの応答のパケットフォーマットによって高速転送モジュールに配送される。本発明の実施形態では、パッケージIDはパッケージモードに対応しており、高速転送モジュールのパッケージリスト(packagelist)に置かれる。リスト項目は、主としてパケットフォーマットの定義であり、すなわちIPヘッダフォーマットの内容である。次にデータが記憶装置から読み取るとき、データは、定義されたフォーマットによってパッケージにされ、データは直接送られて用いられ得る。
ユーザがデータを要求したとき、ユーザが送った要求は、中央処理装置がネットワークインターフェースコントローラNICを使用して受け取り、これらの要求は、ユーザが要求したアドレスおよびデータ長さなどの情報を搬送する。中央処理装置は、ユーザが要求したデータを読み取るために、ネットワークインターフェースコントローラNICのDMAモジュールを起動するように、ユーザがネットワークインターフェースコントローラNICに対してユーザが要求したアドレスおよびデータ長さなどの情報を送る。
本発明の一実施形態として、中央処理装置は、たとえば送信ディスクリプタ(Transmit Descriptor)といったデータ記述情報を構成し、ユーザが要求したアドレスおよびデータの長さ情報をデータ記述情報で搬送してもよく、さらに、中央処理装置は、データ記述情報を構成するとき、パッケージモード識別情報およびパッケージ選択識別情報もデータ記述情報で搬送してもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられる。中央処理装置が、データ記述情報をネットワークインターフェースコントローラに送り、ネットワークインターフェースコントローラが、データ記述情報を高速転送モジュールに転送する。
本発明の実施形態で提供される送信ディスクリプタ(Transmit Descriptor)のフォーマットは、図3に示されており、この図で、
メモリ選択(Memory Select)識別フィールドは、記憶されたデータをメモリ(Memory)から読み取るべきかそれとも記憶装置(Storage)から読み取るべきかを示すものであり、1バイナリビット(bit)で示されてもよく、たとえば、フィールドが「1」であれば、記憶されたデータをメモリ(メモリ)から読み取るべきであることが示され、フィールドが「0」であれば、記憶されたデータを記憶装置(Storage)から読み取るべきであることが示され、あるいはその反対に、フィールドが「0」であれば、記憶されたデータをメモリ(Memory)から読み取るべきであることが示され、フィールドが「1」であれば、記憶されたデータを記憶装置(Storage)から読み取るべきであることが示され、
パッケージ選択(Package Select)識別フィールドは、高速転送モジュールが、読み取ったデータのパッケージ化またはカプセル化を必要とするかどうかを示し、
パッケージモード識別(Package ID)フィールドは、どのパッケージ化またはカプセル化のモードを用いるべきかを示し、また、フィールドがデータを要求しているユーザにも対応しており、
バッファアドレス(Buffer Address)フィールドは、ユーザが要求したデータのアドレスを示し、このユーザが要求したデータのアドレスは、ユーザがデータを要求する間に送った要求によって与えられるものであり、
長さ(Length)フィールドは、ユーザが要求したデータの長さを示し、また、
送信ディスクリプタ(Transmit Descriptor)は、本明細書で説明されない他の制御フィールドをさらに含む。
S202:高速転送モジュールは、ユーザが要求したデータをデータ記述情報に従って読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
高速転送モジュールが、ユーザが要求したデータのバッファアドレス、長さ情報、パッケージ選択識別情報、およびメモリ選択識別情報などのデータ記述情報(たとえば送信ディスクリプタ)によって、ユーザが要求したデータを読み取り、このデータは、ネットワークインターフェースコントローラのDMAモジュールによって送信される。
具体的には、高速転送モジュールは、データ記述情報に含まれているバッファアドレスおよび長さの情報などの情報によって、ユーザが要求したデータを読み取り、さらに、送信ディスクリプタ(Transmit Descriptor)の中のパッケージ選択(Package Select)識別フィールドに従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断してもよく、ユーザが要求したデータをパッケージ化する必要があれば、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送する。たとえば、高速転送モジュールは、送信ディスクリプタ(Transmit Descriptor)の中のパッケージモード識別情報に対応するパッケージモードに従って、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送してもよい。
別の例では、高速転送モジュールは、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断し、ユーザが要求したデータを記憶装置から読み取るべきと判断した場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送してもよい。
S203:ネットワークインターフェースコントローラは、ユーザが要求したデータをユーザに送る。
本発明の前述の実施形態から理解され得るように、中央処理装置が、アドレスおよび長さの情報を高速転送モジュールに送り、高速転送モジュールが、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、ネットワークインターフェースコントローラが、このユーザが要求したデータを送る。全体のデータ伝送処理が、ネットワークインターフェースコントローラと記憶装置の間に独立したおよびダイレクトチャネルを使用することによって完結され、データが中央処理装置およびメモリを通ることがなく、中央処理装置に必要とされるのは、データ記述情報を構成することだけであって、データをコピーする必要がない。したがって、本発明の実施形態で提供される方法を用いることにより、従来技術と比較して、サービスが向上した後(たとえば、ネットワークアダプタの既存の帯域幅および既存の記憶容量を拡大する必要がある)、必要とされるのは、ネットワークインターフェースコントローラおよび記憶装置を含むデバイスを追加することのみであって、メモリおよび中央処理装置に関するコストを増やす必要はない。一方ではメモリおよび中央処理装置の利用を低減することができ、全体システムの性能が改善され、他方ではメモリウォールの問題が回避される。
図4は、本発明の一実施形態による高速データ配布の方法の概略流れ図である。この実施形態は、高速転送モジュールによって、図2に例示された高速データ配布の方法で実行されてもよい。図4に示されるように、この方法は、主として次のステップを含む。
S401:中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取る。
ユーザがデータを要求したとき、ユーザが送った要求は、中央処理装置がネットワークインターフェースコントローラNICを使用して受け取り、これらの要求は、ユーザが要求したアドレスおよびデータ長さなどの情報を搬送する。中央処理装置は、ユーザが要求したデータを読み取るために、ネットワークインターフェースコントローラNICのDMAモジュールを起動するように、ユーザがネットワークインターフェースコントローラNICに対して要求したアドレスおよびデータ長さなどの情報を送る。
本発明の一実施形態として、中央処理装置は、たとえば送信ディスクリプタ(Transmit Descriptor)といったデータ記述情報を構成し、ユーザが要求したアドレスおよびデータの長さ情報をデータ記述情報で搬送してもよく、さらに、中央処理装置は、データ記述情報を構成するとき、パッケージモード識別情報およびパッケージ選択識別情報もデータ記述情報で搬送してもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられる。送信ディスクリプタの特定のフォーマットが図3に示されており、その特定の意味については、前述の実施形態における関連した本文の記述が参照されてもよい。
中央処理装置が、データ記述情報をネットワークインターフェースコントローラに送り、高速転送モジュールが、ネットワークインターフェースコントローラによって転送されたデータ記述情報を受け取る。
S402:ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
高速転送モジュールが、ユーザが要求したデータのバッファアドレス、長さ情報、パッケージ選択識別情報、およびメモリ選択識別情報などのデータ記述情報(たとえば送信ディスクリプタ)によって、ユーザが要求したデータを読み取り、このユーザが要求したデータは、ネットワークインターフェースコントローラのDMAモジュールによって送信される。
具体的には、高速転送モジュールは、バッファアドレスおよび長さの情報などのデータ記述情報に従って、ユーザが要求したデータを読み取り、さらに、送信ディスクリプタ(Transmit Descriptor)の中のパッケージ選択(Package Select)識別フィールドに従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断してもよく、ユーザが要求したデータをパッケージ化する必要があれば、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送する。たとえば、高速転送モジュールは、送信ディスクリプタ(Transmit Descriptor)の中のパッケージモード識別情報に対応するパッケージモードに従って、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送してもよい。
別の例では、高速転送モジュールは、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断し、ユーザが要求したデータを記憶装置から読み取るべきと判断した場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送してもよい。
この実施形態の高速転送モジュールは、PCIスイッチの中に組み込まれたまたはネットワークインターフェースコントローラNICの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらすことに留意されたい。この機能モジュールは、中央処理装置によって構成された後に、記憶装置(Storage)またはメモリの中のデータを読み取り、ネットワークインターフェースコントローラNICにデータを送って、直接メモリアクセス(Direct Memory Access、DMA)およびデータ送信を完了してもよく、すなわち、高速転送モジュールは、DMAで、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
図5は、本発明の一実施形態による高速データ配布用のシステムの概略構造図である。説明を簡単にするために、本発明の実施形態に関連する部分のみが示されており、これらの部分に含まれた機能モジュール/ユニットは、ソフトウェアモジュール/ユニット、ハードウェアモジュール/ユニット、またはソフトウェアとハードウェアを組み込んだモジュール/ユニットでもよい(この説明の原理は本明細書で提供されるそれぞれの実施形態に適用可能である)。図5に例示された高速データ配布用のこのシステムは、中央処理装置501、高速転送モジュール502、およびネットワークインターフェースコントローラ503を含んでおり、
中央処理装置501は、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を高速転送モジュール502に送るように構成されており、
高速転送モジュール502は、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラ503へ転送するように構成されており、また、
ネットワークインターフェースコントローラ503は、ユーザが要求したデータをユーザに送るように構成されている。ユーザに対するリンクが確立されたとき、パッケージモード識別情報(Package ID)がユーザに割り当てられ、パッケージモード識別情報は、ユーザの応答のパケットフォーマットによって高速転送モジュールに配送される。本発明の実施形態では、パッケージIDはパッケージモードに対応しており、高速転送モジュールのパッケージリスト(packagelist)に置かれる。リスト項目は、主としてパケットフォーマットの定義であり、すなわちIPヘッダフォーマットの内容である。次にデータが記憶装置から読み取られるとき、データは、定義されたフォーマットによってパッケージ化され、直接送られて用いられ得る。
ユーザがデータを要求したとき、ユーザが送った要求は、中央処理装置501がネットワークインターフェースコントローラ503を使用して受け取り、これらの要求は、ユーザが要求したアドレスおよびデータ長さなどの情報を搬送する。中央処理装置501は、ユーザが要求したデータを読み取るために、ネットワークインターフェースコントローラ503のDMAモジュールを起動するように、ユーザがネットワークインターフェースコントローラ503に対して要求したアドレスおよびデータ長さなどの情報を送る。
図6は本発明の別の実施形態による高速データ配布用のシステムを示しており、中央処理装置501は、構成ユニット601および送信ユニット602を含んでもよく、
構成ユニット601は、たとえば送信ディスクリプタ(Transmit Descriptor)などのデータ記述情報を構成し、図3に示されたように、ユーザが要求したアドレスおよびデータの長さの情報をデータ記述情報で搬送するように構成されており、さらに、構成ユニット601は、データ記述情報を構成するとき、パッケージモード識別情報、パッケージ選択識別情報、およびメモリ選択識別情報もデータ記述情報で搬送してもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられ、メモリ選択識別情報は、記憶されたデータを、メモリ(Memory)から読み取るべきかそれとも記憶装置(Storage)から読み取るべきかを識別するために用いられ、
送信ユニット602は、ネットワークインターフェースコントローラ503がデータ記述情報を高速転送モジュール502へ転送するように、データ記述情報をネットワークインターフェースコントローラ503に送るように構成されている。
本発明によって提供される実施形態では、高速転送モジュール502は、PCIスイッチの中に組み込まれたまたはネットワークインターフェースコントローラ503の中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす。この機能モジュールは、中央処理装置501によって構成された後に、記憶装置またはメモリの中のデータを読み取り、ネットワークインターフェースコントローラNICにデータを送って、DMAおよびデータ送信を完了してもよく、すなわち、高速転送モジュール502は、ユーザが要求したデータをDMAで読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
概して、ネットワークインターフェースコントローラ503は、対応する送信ディスクリプタ(Transmit Descriptor)のリンクリストをメモリの中に有する。中央処理装置501がデータを送る必要があるとき、中央処理装置501は、送信ディスクリプタ(Transmit Descriptor)を構成する。このとき、ネットワークインターフェースコントローラ503は、送信ディスクリプタ(Transmit Descriptor)の中のバッファアドレス(Buffer Address)フィールドおよび長さ(Length)フィールドによって送るべきデータを取得し、内部のDMAモジュールに、対応アドレスからデータを読み取ることを通知してデータを送る。送るべきデータのそれぞれの部分について送信ディスクリプタ(Transmit Descriptor)を構成する必要があり、送信ディスクリプタが構成される都度、データの一部分が送られる。
送るべきデータが、連続したデータの一部分または中央処理装置501によって予測され得るデータの固定ストリームである場合、記憶装置がデータを記憶するように、中央処理装置501が高速転送モジュールを構成し、ネットワークインターフェースコントローラ503がデータを記憶装置(Storage)に直接送るか、あるいは、PCIスイッチと中央処理装置の間の帯域幅を占有することなく、ネットワークインターフェースコントローラ503と記憶装置(Storage)の間のやりとりのDMA動作を完了するように、データが、記憶装置(Storage)からネットワークインターフェースコントローラ503へ直接送られてもよい。
したがって、本発明の実施形態では、データの送信は、中央処理装置の介在を必要とせず、データをコピーすることによってメモリ資源が消費されるので、中央処理装置に必要とされるのは、データ記述情報を構成することのみであって、データをコピーする必要はない。
図7は本発明の別の実施形態による高速データ配布用のシステムを示しており、高速転送モジュール502は、第1の判断ユニット701およびパッケージユニット702を含んでもよく、
第1の判断ユニット701は、ユーザが要求したデータを、データ記述情報に従って読み取り、パッケージ選択識別情報に従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断するように構成されており、
パッケージユニット702は、第1の判断ユニット701によって、ユーザが要求したデータをパッケージ化する必要があると判断された場合には、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラ503へ転送するように構成されている。
図8は本発明の別の実施形態による高速データ配布用のシステムを示しており、高速転送モジュール502は、第2の判断ユニット801および転送ユニット802を含んでもよく、
第2の判断ユニット801は、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断するように構成されており、また、
転送ユニット802は、第2の判断ユニット801によって、ユーザが要求したデータを記憶装置から読み取るべきと判断された場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラ503へ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラ503へ転送するように構成されている。
図5から図8のいずれかに例示された中央処理装置501は、図9に示される配送モジュール901をさらに含む。配送モジュール901は、パッケージモード識別情報を高速転送モジュール502に配送するように構成されており、パッケージモード識別情報はパッケージモードに対応する。
図10は、本発明の一実施形態による高速データ配布のための装置の概略構造図である。説明を簡単にするために、本発明の実施形態に関連する部分のみが示されており、これらの部分に含まれた機能モジュール/ユニットは、ソフトウェアモジュール/ユニット、ハードウェアモジュール/ユニット、またはソフトウェアとハードウェアを組み込んだモジュール/ユニットでもよい(この説明の原理は本明細書で提供されるそれぞれの実施形態に適用可能である)。図10に例示された高速データ配布用のこの装置は、図5から図9のいずれかに例示された高速転送モジュール502でもよく、受信モジュール1001およびデータ読取りモジュール1002を含んでおり、
受信モジュール1001は、中央処理装置が送ったデータ記述情報を受け取るように構成されており、データ記述情報は、図3に例示された送信ディスクリプタ(Transmit Descriptor)でもよく、ユーザが要求したデータのアドレスおよび長さの情報を含み、また、
データ読取りモジュール1002は、ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、ユーザが要求したデータをデータ記述情報に従って読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。具体的には、データ読取りモジュール1002は、データ記述情報に従って、直接メモリアクセス方式で、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。
したがって、この実施形態では、データを送信するのに中央処理装置の介在が不要であり、データをコピーすることによってメモリ資源が消費されるので、中央処理装置に必要とされるのは、データ記述情報を構成することのみであって、データをコピーする必要はない。
高速データ配布用の装置の前述の実装形態のやり方では、機能モジュールの分割は単なる例示であり、実際の用途では、前述の機能が、実装のために、たとえば関連したハードウェアの構成の要求またはソフトウェアの実装上の都合といった要求に従って種々の機能モジュールに割り当てられてもよく、すなわち、高速データ配布用の装置の内部構造は、前述の説明における機能のすべてまたは一部分を完成するように、種々の機能モジュールに分割されることに留意されたい。その上、実際の用途では、この実施形態における対応する機能モジュールは、対応するハードウェアによって実施されてもよく、対応するソフトウェアを実行する対応するハードウェアによって完成されてもよく、たとえば、前述の受信モジュールは、中央処理装置が送ったデータ記述情報の受信を実行する、たとえば受信器といったハードウェアでもよく、対応するコンピュータプログラムを実行することができ、それによって前述の機能を完成する共通のプロセッサまたは別のハードウェアデバイスでもよい(前述の説明の原理は、本明細書で提供されるそれぞれの実施形態に適用可能である)。
さらに、データ記述情報は、パッケージモード識別情報およびパッケージ選択識別情報をさらに含んでもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられる。図11に示されるように、図10に例示されたデータ読取りモジュール1002は、第1の判断ユニット1101およびパッケージユニット1102を含んでもよく、図11には、本発明の別の実施形態による高速データ配布用の装置が示されており、
第1の判断ユニット1101は、データ記述情報に従って、ユーザが要求したデータを読み取り、パッケージ選択識別情報に従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断するように構成されており、また、
パッケージユニット1102は、第1の判断ユニット1101によって、ユーザが要求したデータをパッケージ化する必要があると判断された場合には、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送するように構成されている。
さらに、データ記述情報は、メモリ選択識別情報をさらに含んでもよく、メモリ選択識別情報は、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを識別するのに用いられる。図12に示されるように、図10に例示されたデータ読取りモジュール1002は、第2の判断ユニット1201および転送ユニット1202を含んでもよく、図12には、本発明の別の実施形態による高速データ配布用の装置が示されており、
第2の判断ユニット1201は、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断するように構成されており、また、
転送ユニット1202は、第2の判断ユニット1201によって、ユーザが要求したデータを記憶装置から読み取るべきと判断された場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。
装置のモジュール/ユニットとその実行プロセスとの間の情報交換などの内容は、本発明の方法の実施形態と同一の概念に基づくものであり、本発明の方法の実施形態と同一の技術的な効果をもたらすことに留意されたい。特定の内容については、本発明の方法の実施形態における説明が参照されてもよく、本明細書でその詳細を繰り返すことはない。
当業者なら、たとえば次の方法の1つまたは複数あるいはすべてを用いることにより、関連するハードウェアに指示するプログラムによって、前述の実施形態の方法のステップのすべてまたは一部分が完成され得ることを理解するであろう。
方法1:
中央処理装置で、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を高速転送モジュールに送り、
高速転送モジュールで、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、
ネットワークインターフェースコントローラで、ユーザが要求したデータをユーザに送る。
方法2:
中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取り、
ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
プログラムは、コンピュータ可読記憶媒体に記憶されてもよい。この記憶媒体は、読取り専用メモリ(ROM、Read Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、光ディスクなどを含んでもよい。
本発明の実施形態で提供される高速データ配布のための方法、装置、およびシステムが、上記で詳細に説明されている。本明細書では、本発明の原理および実施方法を説明するのに特定の実例が用いられており、これらの実施形態の説明は、本発明の方法および核心概念をより理解可能にするように意図されたものに過ぎない。一方、当業者なら、本発明の概念に基づき、特定の実装形態のやり方および用途の範囲に関して修正形態を製作し得る。したがって、本明細書の内容は、本発明に対する限定として解釈されないものとする。
501 中央処理装置
502 高速転送モジュール
503 ネットワークインターフェースコントローラ
601 構成ユニット
602 送信ユニット
701 第1の判断ユニット
702 パッケージユニット
801 第2の判断ユニット
802 転送ユニット
901 配送モジュール
1001 受信モジュール
1002 データ読取りモジュール
1101 第1の判断ユニット
1102 パッケージユニット
1201 第2の判断ユニット
1202 転送ユニット

Claims (16)

  1. データ配布の方法であって、
    中央処理装置で、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を転送モジュールに送るステップであって、前記データ記述情報は、前記ユーザが要求した前記データをメモリから読み取るべきかそれとも記憶装置から読み取るべきかを示すメモリ選択識別フィールドをさらに含む、ステップと、
    前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置または前記メモリから読み取り、前記ユーザが要求した前記データをネットワークインターフェースコントローラへ直接転送するステップと、
    前記ネットワークインターフェースコントローラで、前記ユーザが要求した前記データを前記ユーザに送るステップと、を含み、
    前記中央処理装置と前記記憶装置と前記ネットワークインターフェースコントローラとは、PCIスイッチを介して相互接続され、前記転送モジュールは、PCIスイッチの中に組み込まれたまたは前記ネットワークインターフェースコントローラの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす
    方法。
  2. 中央処理装置でデータ記述情報を転送モジュールに送るステップが、
    前記中央処理装置によって前記データ記述情報を構成し、前記ユーザが要求した前記データの前記アドレスおよび前記長さの情報を前記データ記述情報で搬送するステップと、
    前記中央処理装置で前記データ記述情報を前記ネットワークインターフェースコントローラに送り、前記ネットワークインターフェースコントローラで前記データ記述情報を前記転送モジュールへ転送するステップと
    を含む請求項1に記載の方法。
  3. 前記中央処理装置で前記データ記述情報を構成する前記ステップが、前記中央処理装置によってパッケージモード識別情報およびパッケージ選択識別情報を前記データ記述情報で搬送するステップであって、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するのに用いられる、ステップをさらに含み、
    前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを読み取り、前記ユーザが要求した前記データをネットワークインターフェースコントローラへ転送する前記ステップが、
    前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断し、前記ユーザが要求した前記データをパッケージ化する必要があれば、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するステップを含む請求項2に記載の方法。
  4. 前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送する前記ステップが、
    前記転送モジュールで、前記パッケージモード識別情報に対応するパッケージモードに従って、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するステップを含む請求項3に記載の方法。
  5. 前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを読み取る前記ステップが、前記転送モジュールで、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを読み取るステップを含む請求項1から4のいずれか一項に記載の方法。
  6. データ配布の方法であって、
    中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を転送モジュールによって受け取るステップであって、前記データ記述情報は、前記ユーザが要求した前記データをメモリから読み取るべきかそれとも記憶装置から読み取るべきかを示すメモリ選択識別フィールドをさらに含む、ステップと、
    ネットワークインターフェースコントローラが、前記ユーザが要求した前記データを前記ユーザに送るように、前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置または前記メモリから読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ直接転送するステップと
    を含む方法であって、
    前記中央処理装置と前記記憶装置と前記ネットワークインターフェースコントローラとは、PCIスイッチを介して相互接続され、前記転送モジュールは、PCIスイッチの中に組み込まれたまたは前記ネットワークインターフェースコントローラの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす方法。
  7. 前記データ記述情報が、パッケージモード識別情報およびパッケージ選択識別情報をさらに含み、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するのに用いられ、
    前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって読み取り、前記ユーザが要求した前記データをネットワークインターフェースコントローラへ転送する前記ステップが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置から読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断し、前記ユーザが要求した前記データをパッケージ化する必要があれば、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するステップを含む請求項6に記載の方法。
  8. 前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送する前記ステップが、
    前記パッケージモード識別情報に対応するパッケージモードに従って、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するステップを含む請求項7に記載の方法。
  9. 前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置から読み取る前記ステップが、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置から読み取るステップを含む請求項6から8のいずれか一項に記載の方法。
  10. 中央処理装置、ネットワークインターフェースコントローラ、および転送モジュールを備えるデータ配布用のシステムであって、
    前記中央処理装置が、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を前記転送モジュールに送るように構成されており、前記データ記述情報は、前記ユーザが要求した前記データをメモリから読み取るべきかそれとも記憶装置から読み取るべきかを示すメモリ選択識別フィールドをさらに含み
    前記転送モジュールが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置または前記メモリから読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ直接転送するように構成されており、
    前記ネットワークインターフェースコントローラが、前記ユーザが要求した前記データを前記ユーザに送るように構成されている、システムであって、
    前記中央処理装置と前記記憶装置と前記ネットワークインターフェースコントローラとは、PCIスイッチを介して相互接続され、前記転送モジュールは、PCIスイッチの中に組み込まれたまたは前記ネットワークインターフェースコントローラの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす、システム。
  11. 前記中央処理装置が、
    前記データ記述情報を構成し、前記ユーザが要求した前記データの前記アドレスおよび前記長さの情報を前記データ記述情報で搬送するように構成されている構成ユニットと、
    前記ネットワークインターフェースコントローラが、前記データ記述情報を前記転送モジュールへ転送するように、前記データ記述情報を前記ネットワークインターフェースコントローラに送るように構成されている送信ユニットと
    を備える請求項10に記載のシステム。
  12. 前記構成ユニットが、パッケージモード識別情報およびパッケージ選択識別情報を前記データ記述情報で搬送するようにさらに構成されており、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するのに用いられ、
    前記転送モジュールが第1の判断ユニットおよびパッケージユニットを備え、
    前記第1の判断ユニットが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断するように構成されており、
    前記パッケージユニットが、前記第1の判断ユニットによって、前記ユーザが要求した前記データをパッケージ化する必要があると判断された場合には、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するように構成されている請求項11に記載のシステム。
  13. 前記転送モジュールが、具体的には、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ転送するよう構成された請求項12に記載のシステム。
  14. データ配布用の装置であって、
    中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取るように構成されている受信モジュールであって、前記データ記述情報は、前記ユーザが要求した前記データをメモリから読み取るべきかそれとも記憶装置から読み取るべきかを示すメモリ選択識別フィールドをさらに含む、受信モジュールと、
    ネットワークインターフェースコントローラが、前記ユーザが要求した前記データを前記ユーザに送るように、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置または前記メモリから読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ直接転送するように構成されているデータ読取りモジュールと
    を備える装置。
  15. 前記データ記述情報が、パッケージモード識別情報およびパッケージ選択識別情報をさらに含み、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するために用いられ、
    前記データ読取りモジュールが第1の判断ユニットおよびパッケージユニットを備え、
    前記第1の判断ユニットが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断するように構成されており、
    前記パッケージユニットが、前記第1の判断ユニットによって、前記ユーザが要求した前記データをパッケージ化する必要があると判断された場合には、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するように構成されている請求項14に記載の装置。
  16. 前記データ読取りモジュールが、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ転送するように特に構成されている請求項14または15に記載の装置。
JP2014537442A 2011-10-27 2011-10-27 高速データ配布のための方法および装置 Active JP5966229B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/081366 WO2012167531A1 (zh) 2011-10-27 2011-10-27 一种数据快速分发方法和装置

Publications (2)

Publication Number Publication Date
JP2015502590A JP2015502590A (ja) 2015-01-22
JP5966229B2 true JP5966229B2 (ja) 2016-08-10

Family

ID=45986284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014537442A Active JP5966229B2 (ja) 2011-10-27 2011-10-27 高速データ配布のための方法および装置

Country Status (8)

Country Link
US (1) US9774651B2 (ja)
EP (1) EP2755363B1 (ja)
JP (1) JP5966229B2 (ja)
KR (1) KR20140065009A (ja)
CN (1) CN102439983B (ja)
AU (1) AU2011370439B2 (ja)
RU (1) RU2589398C2 (ja)
WO (1) WO2012167531A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2889780B1 (en) * 2013-10-29 2017-04-12 Huawei Technologies Co., Ltd. Data processing system and data processing method
CN105337923B (zh) * 2014-05-26 2019-07-12 腾讯科技(北京)有限公司 数据分发方法和系统及数据发送装置和数据接收装置
CN105808345B (zh) * 2014-12-31 2019-03-08 华为技术有限公司 数据处理方法、加速引擎、控制板和系统
JP6493426B2 (ja) * 2017-02-02 2019-04-03 日本電気株式会社 通信システム、通信制御方法および通信プログラム
CN107743101B (zh) * 2017-09-26 2020-10-09 杭州迪普科技股份有限公司 一种数据的转发方法及装置
CN110008156B (zh) 2019-03-27 2020-12-15 无锡海斯凯尔医学技术有限公司 数据传输的装置、方法及可读存储介质
CN111400214B (zh) * 2020-02-27 2021-06-18 深圳震有科技股份有限公司 一种双核共用网口的实现方法、智能终端及存储介质
CN111782565B (zh) * 2020-06-30 2021-09-14 北京百度网讯科技有限公司 Gpu服务器和数据传输方法
CN112383801B (zh) * 2020-11-10 2023-04-07 重庆紫光华山智安科技有限公司 媒体流分发方法、装置、分发服务器及存储介质
CN113190476A (zh) * 2021-04-14 2021-07-30 摩尔线程智能科技(北京)有限责任公司 数据传输方法和装置
CN116886719B (zh) * 2023-09-05 2024-01-23 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
EP0700229B1 (en) * 1994-08-22 2006-06-28 Fujitsu Limited Connectionless communications system, test method, and intra-station control system
US5633870A (en) * 1995-07-07 1997-05-27 Sun Microsystems, Inc. Method and apparatus for controlling data flow through an ATM interface
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US7133940B2 (en) 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6970451B1 (en) * 1999-10-12 2005-11-29 At&T Corp. Smart routers-simple optics: network architecture for IP over WDM
EP1119178B1 (en) * 1999-12-28 2010-04-14 Sony Corporation Image commercial transactions system and method
US7093026B2 (en) * 2000-02-14 2006-08-15 Matsushita Electric Industrial, Co. Ltd Data transmission system
EP1162792B1 (en) * 2000-06-09 2012-08-15 Broadcom Corporation Gigabit switch with frame forwarding and address learning
EP1394999A1 (en) * 2002-08-07 2004-03-03 Infineon Technologies AG Method for routing of data packets and routing apparatus
US8176428B2 (en) 2002-12-03 2012-05-08 Datawind Net Access Corporation Portable internet access device back page cache
US7565454B2 (en) * 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
CN1330139C (zh) * 2003-07-31 2007-08-01 华为技术有限公司 多协议标签交换(mpls)支持多端口虚拟局域网(vlan)的方法
CN100428185C (zh) * 2003-10-20 2008-10-22 罗得岛及普罗维登斯属地高等教育管理委员会 存储服务器的自底向上高速缓存结构
US7698361B2 (en) 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
JP2006293799A (ja) 2005-04-13 2006-10-26 Sony Corp 情報処理装置、および情報処理方法
JP2006338353A (ja) 2005-06-02 2006-12-14 Sony Corp 情報処理装置および情報処理方法、並びにプログラム
CN100499674C (zh) * 2006-01-06 2009-06-10 华为技术有限公司 一种路由器下终端设备ip地址的分配方法
US7889762B2 (en) * 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US9137179B2 (en) * 2006-07-26 2015-09-15 Hewlett-Packard Development Company, L.P. Memory-mapped buffers for network interface controllers
JP2008172515A (ja) * 2007-01-11 2008-07-24 Sony Corp 送信装置および方法、通信装置、並びにプログラム
JP2009048298A (ja) * 2007-08-15 2009-03-05 Sony Corp 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
JP2009118106A (ja) * 2007-11-06 2009-05-28 Mitsubishi Electric Corp ネットワーク装置
US9215217B2 (en) * 2008-12-05 2015-12-15 Suhayya Abu-Hakima and Kenneth E. Grigg Auto-discovery of diverse communications devices for alert broadcasting
US8452803B2 (en) * 2008-04-29 2013-05-28 Samir Ghosh Method and system for distributed data management of personal data in a social networking context
US9178839B2 (en) 2008-07-24 2015-11-03 International Business Machines Corporation Sharing buffer space in link aggregation configurations
JP2010049502A (ja) * 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
US8099528B2 (en) 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
JP2010211322A (ja) 2009-03-06 2010-09-24 Renesas Electronics Corp ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
DE102009001821A1 (de) * 2009-03-24 2010-10-07 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Protokollbeschleunigungsmodul mit Paketweiterleitungsfunktion und Betriebsverfahren für einen Senderempfänger zur schnellen Weiterleitung von Datenpaketen
US9015268B2 (en) * 2010-04-02 2015-04-21 Intel Corporation Remote direct storage access
US8804490B2 (en) * 2011-07-29 2014-08-12 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture

Also Published As

Publication number Publication date
AU2011370439B2 (en) 2015-12-03
RU2589398C2 (ru) 2016-07-10
US20140222960A1 (en) 2014-08-07
WO2012167531A1 (zh) 2012-12-13
EP2755363A1 (en) 2014-07-16
RU2014121210A (ru) 2015-12-10
US9774651B2 (en) 2017-09-26
KR20140065009A (ko) 2014-05-28
EP2755363A4 (en) 2014-12-31
CN102439983A (zh) 2012-05-02
CN102439983B (zh) 2014-04-16
JP2015502590A (ja) 2015-01-22
EP2755363B1 (en) 2016-06-08
AU2011370439A1 (en) 2014-05-29

Similar Documents

Publication Publication Date Title
JP5966229B2 (ja) 高速データ配布のための方法および装置
WO2015078219A1 (zh) 一种信息缓存方法、装置和通信设备
US9002969B2 (en) Distributed multimedia server system, multimedia information distribution method, and computer product
US8817799B2 (en) Network processor for supporting residential gateway applications
CN102521201A (zh) 多核数字信号处理器片上系统及数据传输方法
CN108494817A (zh) 数据传输方法、相关装置及系统
CN102195874A (zh) 数据分组的预提取
EP2919426B1 (en) Concurrent hashes and sub-hashes on data streams
CN104378161B (zh) 一种基于AXI4总线架构的FCoE协议加速引擎IP核
US9538545B2 (en) Mapping data traffic throughout protocol layers based on priority information
CN100499666C (zh) 实现SPI4设备与PCI Express设备互连的系统及方法
CN105471852A (zh) 一种udp高速数据收发系统及方法
US9203895B1 (en) System and method for lateral connection between interface devices with bypass of external network
WO2014092551A1 (en) System and method for optimal memory management between cpu and fpga unit
CN104052683A (zh) 处理分组交换的网络处理器及方法、网络交换系统
Xue et al. Hybrid flow table installation: Optimizing remote placements of flow tables on servers to enhance PDP switches for in-network computing
KR101850749B1 (ko) 멀티 코어 기반 nic에서 동적 패킷 버퍼 할당 방법
CN107241278B (zh) 一种智能设备实时数据流式处理方法及处理系统
WO2019095942A1 (zh) 一种数据传输方法及通信设备
CN112019450A (zh) 设备间流式通信
WO2023246488A1 (zh) 内容提供方法及装置
WO2022188807A1 (zh) 数据传输系统及相关设备
WO2023065853A1 (zh) 数据传输方法、装置、设备、存储介质及程序
US11336740B2 (en) Proxy-based messaging system of a telecommunication network
WO2023193432A1 (zh) 一种数据转发方法及相关设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160616

R150 Certificate of patent or registration of utility model

Ref document number: 5966229

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250