(58)【調査した分野】(Int.Cl.,DB名)
前記中央処理装置で前記データ記述情報を構成する前記ステップが、前記中央処理装置によってパッケージモード識別情報およびパッケージ選択識別情報を前記データ記述情報で搬送するステップであって、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するのに用いられる、ステップをさらに含み、
前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを読み取り、前記ユーザが要求した前記データをネットワークインターフェースコントローラへ転送する前記ステップが、
前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断し、前記ユーザが要求した前記データをパッケージ化する必要があれば、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するステップを含む請求項2に記載の方法。
前記転送モジュールで、前記データ記述情報に従って、前記ユーザが要求した前記データを読み取る前記ステップが、前記転送モジュールで、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを読み取るステップを含む請求項1から4のいずれか一項に記載の方法。
前記データ記述情報が、パッケージモード識別情報およびパッケージ選択識別情報をさらに含み、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するのに用いられ、
前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって読み取り、前記ユーザが要求した前記データをネットワークインターフェースコントローラへ転送する前記ステップが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置から読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断し、前記ユーザが要求した前記データをパッケージ化する必要があれば、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するステップを含む請求項6に記載の方法。
前記データ記述情報に従って、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置から読み取る前記ステップが、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを前記転送モジュールによって前記記憶装置から読み取るステップを含む請求項6から8のいずれか一項に記載の方法。
前記構成ユニットが、パッケージモード識別情報およびパッケージ選択識別情報を前記データ記述情報で搬送するようにさらに構成されており、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するのに用いられ、
前記転送モジュールが第1の判断ユニットおよびパッケージユニットを備え、
前記第1の判断ユニットが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断するように構成されており、
前記パッケージユニットが、前記第1の判断ユニットによって、前記ユーザが要求した前記データをパッケージ化する必要があると判断された場合には、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するように構成されている請求項11に記載のシステム。
前記転送モジュールが、具体的には、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ転送するよう構成された請求項12に記載のシステム。
前記データ記述情報が、パッケージモード識別情報およびパッケージ選択識別情報をさらに含み、前記パッケージモード識別情報が、前記データを要求している前記ユーザに対応しており、前記パッケージ選択識別情報が、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを識別するために用いられ、
前記データ読取りモジュールが第1の判断ユニットおよびパッケージユニットを備え、
前記第1の判断ユニットが、前記データ記述情報に従って、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記パッケージ選択識別情報に従って、前記ユーザが要求した前記データをパッケージ化する必要があるかどうかを判断するように構成されており、
前記パッケージユニットが、前記第1の判断ユニットによって、前記ユーザが要求した前記データをパッケージ化する必要があると判断された場合には、前記ユーザが要求した前記データをパッケージ化し、前記パッケージ化されたデータを前記ネットワークインターフェースコントローラへ転送するように構成されている請求項14に記載の装置。
前記データ読取りモジュールが、前記データ記述情報に従って、直接メモリアクセス方式で、前記ユーザが要求した前記データを前記記憶装置から読み取り、前記ユーザが要求した前記データを前記ネットワークインターフェースコントローラへ転送するように特に構成されている請求項14または15に記載の装置。
【発明を実施するための形態】
【0013】
本発明の実施形態は、中央処理装置およびメモリの利用を低減してシステム性能を改善するために、高速データ配布のための方法および装置を提供する。
【0014】
図2は、本発明の一実施形態による高速データ配布の方法の概略流れ図であり、主として次のステップを含んでいる。
【0015】
S201:中央処理装置は、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を高速転送モジュールに送る。
【0016】
本発明によって提供される実施形態では、高速転送モジュールは、PCIスイッチの中に組み込まれたまたはネットワークインターフェースコントローラNICの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす。この機能モジュールは、CPUによって構成された後に、記憶装置またはメモリの中のデータを読み取り、ネットワークインターフェースコントローラNICにデータを送って、直接メモリアクセス(Direct Memory Access、DMA)およびデータ送信を完了してもよく、すなわち、高速転送モジュールは、DMAで、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
【0017】
概して、ネットワークインターフェースコントローラNICは、対応するデータ記述情報をメモリの中に有する。中央処理装置がデータを送る必要があるとき、中央処理装置は、たとえば送信ディスクリプタ(Transmit Descriptor)といったデータ記述情報を構成する。このとき、ネットワークインターフェースコントローラNICは、送信ディスクリプタ(Transmit Descriptor)の中のバッファアドレス(Buffer Address)フィールドおよび長さ(Length)フィールドによって送るべきデータを取得し、内部のDMAモジュールに、対応アドレスからデータを読み取ることを通知してデータを送る。送るべきデータのそれぞれの部分について送信ディスクリプタ(Transmit Descriptor)を構成する必要があり、データが送られるのは、その送信ディスクリプタが構成された後のことである。
【0018】
送るべきデータが、連続的に記憶されたデータまたは中央処理装置によって予測され得るデータの特定のストリームである場合、記憶装置がデータを記憶するように、中央処理装置が高速転送モジュールを構成し、ネットワークインターフェースコントローラNICがデータを記憶装置(Storage)に直接送るか、あるいは、PCIスイッチと中央処理装置の間の帯域幅を占有することなく、ネットワークインターフェースコントローラNICと記憶装置(Storage)の間のやりとりのDMA動作を完了するように、データが、記憶装置(Storage)からネットワークインターフェースコントローラNICへ直接送られてもよい。
【0019】
したがって、本発明の実施形態では、データの送信は、中央処理装置の介在を必要とせず、中央処理装置に必要とされるのは、データ記述情報を構成することのみであって、データをコピーする必要がなく、それによって、データコピーのためのメモリ資源の消費が防止される。
【0020】
ユーザに対するリンクが確立されたとき、パッケージモード識別情報(Package ID)がユーザに割り当てられ、パッケージモード識別情報は、ユーザの応答のパケットフォーマットによって高速転送モジュールに配送される。本発明の実施形態では、パッケージIDはパッケージモードに対応しており、高速転送モジュールのパッケージリスト(packagelist)に置かれる。リスト項目は、主としてパケットフォーマットの定義であり、すなわちIPヘッダフォーマットの内容である。次にデータが記憶装置から読み取るとき、データは、定義されたフォーマットによってパッケージにされ、データは直接送られて用いられ得る。
【0021】
ユーザがデータを要求したとき、ユーザが送った要求は、中央処理装置がネットワークインターフェースコントローラNICを使用して受け取り、これらの要求は、ユーザが要求したアドレスおよびデータ長さなどの情報を搬送する。中央処理装置は、ユーザが要求したデータを読み取るために、ネットワークインターフェースコントローラNICのDMAモジュールを起動するように、ユーザがネットワークインターフェースコントローラNICに対してユーザが要求したアドレスおよびデータ長さなどの情報を送る。
【0022】
本発明の一実施形態として、中央処理装置は、たとえば送信ディスクリプタ(Transmit Descriptor)といったデータ記述情報を構成し、ユーザが要求したアドレスおよびデータの長さ情報をデータ記述情報で搬送してもよく、さらに、中央処理装置は、データ記述情報を構成するとき、パッケージモード識別情報およびパッケージ選択識別情報もデータ記述情報で搬送してもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられる。中央処理装置が、データ記述情報をネットワークインターフェースコントローラに送り、ネットワークインターフェースコントローラが、データ記述情報を高速転送モジュールに転送する。
【0023】
本発明の実施形態で提供される送信ディスクリプタ(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)は、本明細書で説明されない他の制御フィールドをさらに含む。
【0024】
S202:高速転送モジュールは、ユーザが要求したデータをデータ記述情報に従って読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
【0025】
高速転送モジュールが、ユーザが要求したデータのバッファアドレス、長さ情報、パッケージ選択識別情報、およびメモリ選択識別情報などのデータ記述情報(たとえば送信ディスクリプタ)によって、ユーザが要求したデータを読み取り、このデータは、ネットワークインターフェースコントローラのDMAモジュールによって送信される。
【0026】
具体的には、高速転送モジュールは、データ記述情報に含まれているバッファアドレスおよび長さの情報などの情報によって、ユーザが要求したデータを読み取り、さらに、送信ディスクリプタ(Transmit Descriptor)の中のパッケージ選択(Package Select)識別フィールドに従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断してもよく、ユーザが要求したデータをパッケージ化する必要があれば、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送する。たとえば、高速転送モジュールは、送信ディスクリプタ(Transmit Descriptor)の中のパッケージモード識別情報に対応するパッケージモードに従って、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送してもよい。
【0027】
別の例では、高速転送モジュールは、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断し、ユーザが要求したデータを記憶装置から読み取るべきと判断した場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送してもよい。
【0028】
S203:ネットワークインターフェースコントローラは、ユーザが要求したデータをユーザに送る。
【0029】
本発明の前述の実施形態から理解され得るように、中央処理装置が、アドレスおよび長さの情報を高速転送モジュールに送り、高速転送モジュールが、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、ネットワークインターフェースコントローラが、このユーザが要求したデータを送る。全体のデータ伝送処理が、ネットワークインターフェースコントローラと記憶装置の間に独立したおよびダイレクトチャネルを使用することによって完結され、データが中央処理装置およびメモリを通ることがなく、中央処理装置に必要とされるのは、データ記述情報を構成することだけであって、データをコピーする必要がない。したがって、本発明の実施形態で提供される方法を用いることにより、従来技術と比較して、サービスが向上した後(たとえば、ネットワークアダプタの既存の帯域幅および既存の記憶容量を拡大する必要がある)、必要とされるのは、ネットワークインターフェースコントローラおよび記憶装置を含むデバイスを追加することのみであって、メモリおよび中央処理装置に関するコストを増やす必要はない。一方ではメモリおよび中央処理装置の利用を低減することができ、全体システムの性能が改善され、他方ではメモリウォールの問題が回避される。
【0030】
図4は、本発明の一実施形態による高速データ配布の方法の概略流れ図である。この実施形態は、高速転送モジュールによって、
図2に例示された高速データ配布の方法で実行されてもよい。
図4に示されるように、この方法は、主として次のステップを含む。
【0031】
S401:中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取る。
【0032】
ユーザがデータを要求したとき、ユーザが送った要求は、中央処理装置がネットワークインターフェースコントローラNICを使用して受け取り、これらの要求は、ユーザが要求したアドレスおよびデータ長さなどの情報を搬送する。中央処理装置は、ユーザが要求したデータを読み取るために、ネットワークインターフェースコントローラNICのDMAモジュールを起動するように、ユーザがネットワークインターフェースコントローラNICに対して要求したアドレスおよびデータ長さなどの情報を送る。
【0033】
本発明の一実施形態として、中央処理装置は、たとえば送信ディスクリプタ(Transmit Descriptor)といったデータ記述情報を構成し、ユーザが要求したアドレスおよびデータの長さ情報をデータ記述情報で搬送してもよく、さらに、中央処理装置は、データ記述情報を構成するとき、パッケージモード識別情報およびパッケージ選択識別情報もデータ記述情報で搬送してもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられる。送信ディスクリプタの特定のフォーマットが
図3に示されており、その特定の意味については、前述の実施形態における関連した本文の記述が参照されてもよい。
【0034】
中央処理装置が、データ記述情報をネットワークインターフェースコントローラに送り、高速転送モジュールが、ネットワークインターフェースコントローラによって転送されたデータ記述情報を受け取る。
【0035】
S402:ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
【0036】
高速転送モジュールが、ユーザが要求したデータのバッファアドレス、長さ情報、パッケージ選択識別情報、およびメモリ選択識別情報などのデータ記述情報(たとえば送信ディスクリプタ)によって、ユーザが要求したデータを読み取り、このユーザが要求したデータは、ネットワークインターフェースコントローラのDMAモジュールによって送信される。
【0037】
具体的には、高速転送モジュールは、バッファアドレスおよび長さの情報などのデータ記述情報に従って、ユーザが要求したデータを読み取り、さらに、送信ディスクリプタ(Transmit Descriptor)の中のパッケージ選択(Package Select)識別フィールドに従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断してもよく、ユーザが要求したデータをパッケージ化する必要があれば、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送する。たとえば、高速転送モジュールは、送信ディスクリプタ(Transmit Descriptor)の中のパッケージモード識別情報に対応するパッケージモードに従って、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送してもよい。
【0038】
別の例では、高速転送モジュールは、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断し、ユーザが要求したデータを記憶装置から読み取るべきと判断した場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送してもよい。
【0039】
この実施形態の高速転送モジュールは、PCIスイッチの中に組み込まれたまたはネットワークインターフェースコントローラNICの中に組み込まれた機能モジュールであり、直接的な送受機能をもたらすことに留意されたい。この機能モジュールは、中央処理装置によって構成された後に、記憶装置(Storage)またはメモリの中のデータを読み取り、ネットワークインターフェースコントローラNICにデータを送って、直接メモリアクセス(Direct Memory Access、DMA)およびデータ送信を完了してもよく、すなわち、高速転送モジュールは、DMAで、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
【0040】
図5は、本発明の一実施形態による高速データ配布用のシステムの概略構造図である。説明を簡単にするために、本発明の実施形態に関連する部分のみが示されており、これらの部分に含まれた機能モジュール/ユニットは、ソフトウェアモジュール/ユニット、ハードウェアモジュール/ユニット、またはソフトウェアとハードウェアを組み込んだモジュール/ユニットでもよい(この説明の原理は本明細書で提供されるそれぞれの実施形態に適用可能である)。
図5に例示された高速データ配布用のこのシステムは、中央処理装置501、高速転送モジュール502、およびネットワークインターフェースコントローラ503を含んでおり、
中央処理装置501は、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を高速転送モジュール502に送るように構成されており、
高速転送モジュール502は、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラ503へ転送するように構成されており、また、
ネットワークインターフェースコントローラ503は、ユーザが要求したデータをユーザに送るように構成されている。ユーザに対するリンクが確立されたとき、パッケージモード識別情報(Package ID)がユーザに割り当てられ、パッケージモード識別情報は、ユーザの応答のパケットフォーマットによって高速転送モジュールに配送される。本発明の実施形態では、パッケージIDはパッケージモードに対応しており、高速転送モジュールのパッケージリスト(packagelist)に置かれる。リスト項目は、主としてパケットフォーマットの定義であり、すなわちIPヘッダフォーマットの内容である。次にデータが記憶装置から読み取られるとき、データは、定義されたフォーマットによってパッケージ化され、直接送られて用いられ得る。
【0041】
ユーザがデータを要求したとき、ユーザが送った要求は、中央処理装置501がネットワークインターフェースコントローラ503を使用して受け取り、これらの要求は、ユーザが要求したアドレスおよびデータ長さなどの情報を搬送する。中央処理装置501は、ユーザが要求したデータを読み取るために、ネットワークインターフェースコントローラ503のDMAモジュールを起動するように、ユーザがネットワークインターフェースコントローラ503に対して要求したアドレスおよびデータ長さなどの情報を送る。
【0042】
図6は本発明の別の実施形態による高速データ配布用のシステムを示しており、中央処理装置501は、構成ユニット601および送信ユニット602を含んでもよく、
構成ユニット601は、たとえば送信ディスクリプタ(Transmit Descriptor)などのデータ記述情報を構成し、
図3に示されたように、ユーザが要求したアドレスおよびデータの長さの情報をデータ記述情報で搬送するように構成されており、さらに、構成ユニット601は、データ記述情報を構成するとき、パッケージモード識別情報、パッケージ選択識別情報、およびメモリ選択識別情報もデータ記述情報で搬送してもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられ、メモリ選択識別情報は、記憶されたデータを、メモリ(Memory)から読み取るべきかそれとも記憶装置(Storage)から読み取るべきかを識別するために用いられ、
送信ユニット602は、ネットワークインターフェースコントローラ503がデータ記述情報を高速転送モジュール502へ転送するように、データ記述情報をネットワークインターフェースコントローラ503に送るように構成されている。
【0043】
本発明によって提供される実施形態では、高速転送モジュール502は、PCIスイッチの中に組み込まれたまたはネットワークインターフェースコントローラ503の中に組み込まれた機能モジュールであり、直接的な送受機能をもたらす。この機能モジュールは、中央処理装置501によって構成された後に、記憶装置またはメモリの中のデータを読み取り、ネットワークインターフェースコントローラNICにデータを送って、DMAおよびデータ送信を完了してもよく、すなわち、高速転送モジュール502は、ユーザが要求したデータをDMAで読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
【0044】
概して、ネットワークインターフェースコントローラ503は、対応する送信ディスクリプタ(Transmit Descriptor)のリンクリストをメモリの中に有する。中央処理装置501がデータを送る必要があるとき、中央処理装置501は、送信ディスクリプタ(Transmit Descriptor)を構成する。このとき、ネットワークインターフェースコントローラ503は、送信ディスクリプタ(Transmit Descriptor)の中のバッファアドレス(Buffer Address)フィールドおよび長さ(Length)フィールドによって送るべきデータを取得し、内部のDMAモジュールに、対応アドレスからデータを読み取ることを通知してデータを送る。送るべきデータのそれぞれの部分について送信ディスクリプタ(Transmit Descriptor)を構成する必要があり、送信ディスクリプタが構成される都度、データの一部分が送られる。
【0045】
送るべきデータが、連続したデータの一部分または中央処理装置501によって予測され得るデータの固定ストリームである場合、記憶装置がデータを記憶するように、中央処理装置501が高速転送モジュールを構成し、ネットワークインターフェースコントローラ503がデータを記憶装置(Storage)に直接送るか、あるいは、PCIスイッチと中央処理装置の間の帯域幅を占有することなく、ネットワークインターフェースコントローラ503と記憶装置(Storage)の間のやりとりのDMA動作を完了するように、データが、記憶装置(Storage)からネットワークインターフェースコントローラ503へ直接送られてもよい。
【0046】
したがって、本発明の実施形態では、データの送信は、中央処理装置の介在を必要とせず、データをコピーすることによってメモリ資源が消費されるので、中央処理装置に必要とされるのは、データ記述情報を構成することのみであって、データをコピーする必要はない。
【0047】
図7は本発明の別の実施形態による高速データ配布用のシステムを示しており、高速転送モジュール502は、第1の判断ユニット701およびパッケージユニット702を含んでもよく、
第1の判断ユニット701は、ユーザが要求したデータを、データ記述情報に従って読み取り、パッケージ選択識別情報に従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断するように構成されており、
パッケージユニット702は、第1の判断ユニット701によって、ユーザが要求したデータをパッケージ化する必要があると判断された場合には、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラ503へ転送するように構成されている。
【0048】
図8は本発明の別の実施形態による高速データ配布用のシステムを示しており、高速転送モジュール502は、第2の判断ユニット801および転送ユニット802を含んでもよく、
第2の判断ユニット801は、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断するように構成されており、また、
転送ユニット802は、第2の判断ユニット801によって、ユーザが要求したデータを記憶装置から読み取るべきと判断された場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラ503へ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラ503へ転送するように構成されている。
【0049】
図5から
図8のいずれかに例示された中央処理装置501は、
図9に示される配送モジュール901をさらに含む。配送モジュール901は、パッケージモード識別情報を高速転送モジュール502に配送するように構成されており、パッケージモード識別情報はパッケージモードに対応する。
【0050】
図10は、本発明の一実施形態による高速データ配布のための装置の概略構造図である。説明を簡単にするために、本発明の実施形態に関連する部分のみが示されており、これらの部分に含まれた機能モジュール/ユニットは、ソフトウェアモジュール/ユニット、ハードウェアモジュール/ユニット、またはソフトウェアとハードウェアを組み込んだモジュール/ユニットでもよい(この説明の原理は本明細書で提供されるそれぞれの実施形態に適用可能である)。図
10に例示された高速データ配布用のこの装置は、
図5から
図9のいずれかに例示された高速転送モジュール502でもよく、受信モジュール1001およびデータ読取りモジュール1002を含んでおり、
受信モジュール1001は、中央処理装置が送ったデータ記述情報を受け取るように構成されており、データ記述情報は、
図3に例示された送信ディスクリプタ(Transmit Descriptor)でもよく、ユーザが要求したデータのアドレスおよび長さの情報を含み、また、
データ読取りモジュール1002は、ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、ユーザが要求したデータをデータ記述情報に従って読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。具体的には、データ読取りモジュール1002は、データ記述情報に従って、直接メモリアクセス方式で、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。
【0051】
したがって、この実施形態では、データを送信するのに中央処理装置の介在が不要であり、データをコピーすることによってメモリ資源が消費されるので、中央処理装置に必要とされるのは、データ記述情報を構成することのみであって、データをコピーする必要はない。
【0052】
高速データ配布用の装置の前述の実装形態のやり方では、機能モジュールの分割は単なる例示であり、実際の用途では、前述の機能が、実装のために、たとえば関連したハードウェアの構成の要求またはソフトウェアの実装上の都合といった要求に従って種々の機能モジュールに割り当てられてもよく、すなわち、高速データ配布用の装置の内部構造は、前述の説明における機能のすべてまたは一部分を完成するように、種々の機能モジュールに分割されることに留意されたい。その上、実際の用途では、この実施形態における対応する機能モジュールは、対応するハードウェアによって実施されてもよく、対応するソフトウェアを実行する対応するハードウェアによって完成されてもよく、たとえば、前述の受信モジュールは、中央処理装置が送ったデータ記述情報の受信を実行する、たとえば受信器といったハードウェアでもよく、対応するコンピュータプログラムを実行することができ、それによって前述の機能を完成する共通のプロセッサまたは別のハードウェアデバイスでもよい(前述の説明の原理は、本明細書で提供されるそれぞれの実施形態に適用可能である)。
【0053】
さらに、データ記述情報は、パッケージモード識別情報およびパッケージ選択識別情報をさらに含んでもよく、パッケージモード識別情報は、データを要求しているユーザに対応しており、パッケージ選択識別情報は、ユーザが要求したデータをパッケージ化する必要があるかどうかを識別するために用いられる。
図11に示されるように、
図10に例示されたデータ読取りモジュール1002は、第1の判断ユニット1101およびパッケージユニット1102を含んでもよく、
図11には、本発明の別の実施形態による高速データ配布用の装置が示されており、
第1の判断ユニット1101は、データ記述情報に従って、ユーザが要求したデータを読み取り、パッケージ選択識別情報に従って、ユーザが要求したデータをパッケージ化する必要があるかどうかを判断するように構成されており、また、
パッケージユニット1102は、第1の判断ユニット1101によって、ユーザが要求したデータをパッケージ化する必要があると判断された場合には、ユーザが要求したデータをパッケージ化し、パッケージ化されたデータをネットワークインターフェースコントローラへ転送するように構成されている。
【0054】
さらに、データ記述情報は、メモリ選択識別情報をさらに含んでもよく、メモリ選択識別情報は、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを識別するのに用いられる。
図12に示されるように、
図10に例示されたデータ読取りモジュール1002は、第2の判断ユニット1201および転送ユニット1202を含んでもよく、
図12には、本発明の別の実施形態による高速データ配布用の装置が示されており、
第2の判断ユニット1201は、メモリ選択識別情報に従って、ユーザが要求したデータをメモリから読み取るべきかそれともユーザが要求したデータを記憶装置から読み取るべきかを判断するように構成されており、また、
転送ユニット1202は、第2の判断ユニット1201によって、ユーザが要求したデータを記憶装置から読み取るべきと判断された場合には、ユーザが要求したデータを記憶装置から読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、そうでなければ、ユーザが要求したデータをメモリから読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送するように構成されている。
【0055】
装置のモジュール/ユニットとその実行プロセスとの間の情報交換などの内容は、本発明の方法の実施形態と同一の概念に基づくものであり、本発明の方法の実施形態と同一の技術的な効果をもたらすことに留意されたい。特定の内容については、本発明の方法の実施形態における説明が参照されてもよく、本明細書でその詳細を繰り返すことはない。
【0056】
当業者なら、たとえば次の方法の1つまたは複数あるいはすべてを用いることにより、関連するハードウェアに指示するプログラムによって、前述の実施形態の方法のステップのすべてまたは一部分が完成され得ることを理解するであろう。
【0057】
方法1:
中央処理装置で、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を高速転送モジュールに送り、
高速転送モジュールで、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送し、
ネットワークインターフェースコントローラで、ユーザが要求したデータをユーザに送る。
【0058】
方法2:
中央処理装置が送った、ユーザが要求したデータのアドレスおよび長さの情報を含んでいるデータ記述情報を受け取り、
ネットワークインターフェースコントローラが、ユーザが要求したデータをユーザに送るように、データ記述情報に従って、ユーザが要求したデータを読み取り、ユーザが要求したデータをネットワークインターフェースコントローラへ転送する。
【0059】
プログラムは、コンピュータ可読記憶媒体に記憶されてもよい。この記憶媒体は、読取り専用メモリ(ROM、Read Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、光ディスクなどを含んでもよい。
【0060】
本発明の実施形態で提供される高速データ配布のための方法、装置、およびシステムが、上記で詳細に説明されている。本明細書では、本発明の原理および実施方法を説明するのに特定の実例が用いられており、これらの実施形態の説明は、本発明の方法および核心概念をより理解可能にするように意図されたものに過ぎない。一方、当業者なら、本発明の概念に基づき、特定の実装形態のやり方および用途の範囲に関して修正形態を製作し得る。したがって、本明細書の内容は、本発明に対する限定として解釈されないものとする。