【手続補正書】
【提出日】平成18年7月11日(2006.7.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのソフトウエア・コンポーネントと少なくとも１つの周辺ハードウエア・デバイスとを有するコンピュータ・システム環境において、パケット毎に、前記コンピュータ・システムのその時々の必要性に応じて、前記ソフトウエア・コンポーネントから前記周辺ハードウエア・デバイスに動作タスクを動的にオフロードすることによって、ホスト・プロセッサ資源を解放し、前記コンピュータ・システム全体の効率を向上させる方法であって、
前記周辺ハードウエア・デバイスに問い合わせて、前記周辺ハードウエア・デバイスのタスク・オフロード能力を判定するステップと、
前記周辺ハードウエア・デバイスの選択したタスク・オフロード能力を、１つ以上のパケットが当該選択したタスク・オフロード能力を必要とする程度に、イネーブルするステップと、
前記ソフトウエア・コンポーネントがあるパケットに対して実行する動作タスクが前記周辺ハードウエア・デバイス上のイネーブルされたタスク・オフロード能力に対応する場合、前記コンピュータ・システムのその時々の必要性に応じて、データ・パケットを前記周辺ハードウエア・デバイスに送り、前記周辺ハードウエア・デバイスが前記指定の動作タスクを実行することを示すことにより、前記ソフトウエア・コンポーネントから前記周辺ハードウエア・デバイスに前記動作タスクを選択的にオフロードする作用を行なうステップと、
前記周辺ハードウエア・デバイスにおいて、前記オフロードした動作タスクを実行するステップと、
を含む方法。
【請求項２】
請求項１に記載した前記ステップおよび作用を実行するためのコンピュータ実行可能命令を有するコンピュータ読取可能媒体。
【請求項３】
請求項１記載の方法において、前記周辺ハードウエア・デバイスが、前記コンピュータ・システムに動作的に接続してあるネットワーク・インターフェース・カード（ＮＩＣ）であること、を特徴とする方法。
【請求項４】
請求項１記載の方法において、前記ソフトウエア・コンポーネントが、レイヤ状ネットワーク・モデルにおいて実行するネットワーク・ソフトウエア・アプリケーションであること、を特徴とする方法。
【請求項５】
請求項１記載の方法において、前記周辺ハードウエア・デバイスのタスク・オフロード能力を問い合わせることは、前記周辺ハードウエア・デバイスに関連する少なくとも１つのタスク・オフロード・バッファ内に格納してあるタスク・データを読み取ることにより行い、該タスク・データが前記周辺ハードウエア・デバイスの特定のタスク・オフロード能力を示すこと、を特徴とする方法。
【請求項６】
請求項５記載の方法において、前記周辺ハードウエア・デバイスには、多数のタスク・オフロード・バッファを関連付けてあり、これによって、当該周辺ハードウエア・デバイスの多数のタスク・オフロード能力を定めること、を特徴とする方法。
【請求項７】
請求項１記載の方法において、前記周辺ハードウエア・デバイスの選択したタスク・オフロード能力をイネーブルすることは、当該周辺ハードウエア・デバイスに関連するタスク・オフロード・バッファ内に、少なくとも１つのフラグ・インディケータをセットすることにより行う、を特徴とする方法。
【請求項８】
・    請求項１記載の方法において、前記パケットが、ネットワーク・データおよびパケット拡張データを含むネットワーク・データ・パケットであり、前記パケット拡張データが、前記周辺ハードウエア・デバイスが実行する少なくとも１つの動作タスクを示す少なくとも１つのデータ・フィールドから成ること、を特徴とする方法。
【請求項９】
請求項８記載の方法において、前記周辺ハードウエア・デバイスが、ネットワーク・インターフェース・カード（ＮＩＣ）であること、を特徴とする方法。
【請求項１０】
請求項１記載の方法において、チェックサム動作、暗号化動作、メッセージ・ダイジェスト計算動作、ＴＣＰ区分動作、および解読動作である動作タスクのうちの１つ以上から前記動作タスクを選択すること、を特徴とする方法。
【請求項１１】
請求項１記載の方法において、前記ソフトウエア・コンポーネントがトランスポート・プロトコル・ドライバ・ソフトウエア・コンポーネントを備え、前記コンピュータ・システムがネットワーク・インターフェース・カード（ＮＩＣ）デバイス・ドライバを含み、前記周辺ハードウエア・デバイスが、前記コンピュータ・システムに接続した対応のネットワーク・インターフェース・カード（ＮＩＣ）を備え、
前記周辺ハードウエア・デバイスに問い合わせて当該周辺ハードウエア・デバイスのタスク・オフロード能力を判定する前記ステップが、
前記ＮＩＣのタスク・オフロード能力を識別するタスク・データを含むデータ構造を作成する作用と、
前記データ構造内に収容したタスク・データを問い合わせて、前記ＮＩＣのタスク・オフロード能力を識別する作用と、
を含み、
前記動作タスクを選択的にオフロードする前記作用が、タスク・オフロード・データを前記パケットに添付する作用を含み、
前記オフロード動作タスクを実行する前記ステップが、前記添付したタスク・オフロード・データにしたがって、前記ＮＩＣにおいて前記少なくとも１つのオフロード・タスクを実行する作用を含むこと、を特徴とする方法。
【請求項１２】
請求項１１に記載のステップおよび作用を実行するためのコンピュータ実行可能命令を有するコンピュータ読取可能媒体。
【請求項１３】
請求項１１記載の方法において、前記データ構造が、
タスク・オフロード能力のタイプを表すデータを収容する第１データ・フィールドと、
前記第１データ・フィールドにおいて定めたタスク・オフロードを実行するために必要なデータを収容する第２データ・フィールドと、
を備えること、を特徴とする方法。
【請求項１４】
請求項１１記載の方法において、前記データ構造内に少なくとも１つのデータ・フィールドを書き込むことによって、前記ＮＩＣを選択的にイネーブルし、前記識別したタスク・オフロード能力の少なくとも１つを実行すること、を特徴とする方法。
【請求項１５】
請求項１１記載の方法において、前記パケットに添付した前記タスク・オフロード・データが、前記ＮＩＣが前記パケットを受信したときに、当該ＮＩＣが実行するオフロード・タスクのタイプを表す第１データ・フィールドを備えること、を特徴とする方法。
【請求項１６】
請求項１５記載の方法において、前記タスク・オフロード・データが、更に、メモリ位置への少なくとも１つのポインタを収容する第２データ・フィールドを備え、前記メモリ位置が、前記タスク・オフロード・データの第１データ・フィールドのおいて指定した前記オフロード・タスクを実行するために必要なデータを収容すること、を特徴とする方法。
【請求項１７】
パケット毎に、コンピュータ・システムのその時々の必要性に応じて、計算タスクを動的にオフロードして、コンピュータ・システムに接続してあるネットワーク・インターフェース・カード（ＮＩＣ）において実行されるようにすることにより、ホスト・プロセッサ資源を解放し、前記コンピュータ・システム全体の効率を向上させるコンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、
前記コンピュータ・システム上で実行するアプリケーションに、前記ＮＩＣのあらゆるタスク・オフロード処理能力について通知するステップと、
前記コンピュータ・システム上で実行するアプリケーションから前記ＮＩＣに向けたネットワーク・データ・パケット毎に、該データ・パケットに添付するパケット拡張データ構造を検査するステップであって、前記パケット拡張データ構造が、前記ＮＩＣにオフロードする１つ以上の特定の動作タスクの識別に対する情報を収容する、ステップと、
前記ネットワーク・データ・パケットに添付する前記パケット拡張データ構造内に収容してあるデータにしたがって、前記ＮＩＣに動作タスクを実行させるステップと、
を更に含むコンピュータ実行可能命令を含むコンピュータ読取可能媒体。
【請求項１８】
請求項１７記載のコンピュータ読取可能媒体において、前記通知するステップを実行する前記コンピュータ実行可能命令が、前記ＮＩＣのタスク・オフロード能力のタイプを表すデータを収容する第１データ・フィールドを備えるタスク・オフロード・バッファ・データ構造を作成するステップを含むこと、を特徴とするコンピュータ読取可能媒体。
【請求項１９】
請求項１８記載のコンピュータ読取可能媒体において、前記タスク・オフロード・バッファ・データ構造が、更に、前記第１データ・フィールドにおいて定めた前記タスク・オフロードを実行するために必要なデータを収容する少なくとも１つの追加データ・フィールドを備えること、を特徴とするコンピュータ読取可能媒体。
【請求項２０】
請求項１７記載のコンピュータ読取可能媒体において、前記ネットワーク・データ・パケットに添付する前記パケット拡張データ構造が、前記ＮＩＣが実行する動作タスクのタイプを表す第１データ・フィールドを備えること、を特徴とするコンピュータ読取可能媒体。
【請求項２１】
請求項２０記載のコンピュータ読取可能媒体において、前記パケット拡張データ構造が、更に、メモリ位置への少なくとも１つのポインタを収容する少なくとも１つの追加データ・フィールドを備え、前記メモリ位置が、前記パケット拡張データ構造の第１データ・フィールドにおいて指定した動作タスクを実行するために必要なデータを収容すること、を特徴とするコンピュータ読取可能媒体。
【請求項２２】
少なくとも１つのソフトウエア・コンポーネントと少なくとも１つの周辺ハードウエア・デバイスとを有するコンピュータ・システム環境において、パケット毎に、前記コンピュータ・システムのその時々の必要性に応じて、前記ソフトウエア・コンポーネントから前記周辺ハードウエア・デバイスに動作タスクを動的にオフロードすることによって、ホスト・プロセッサ資源を解放し、前記コンピュータ・システム全体の効率を向上させる方法であって、
前記周辺ハードウエア・デバイスに関連した少なくとも１つのタスク・オフロード・バッファに格納してあるタスク・データを読み取る作用であって、前記タスク・データが、前記周辺ハードウエア・デバイスの特定のタスク・オフロード能力を示す、作用と、
前記少なくとも１つのタスク・オフロード・バッファ内に収容してあるタスク・データを問い合わせて、前記周辺ハードウエア・デバイスのタスク・オフロード能力を識別する作用と、
前記周辺ハードウエア・デバイスに関連したタスク・オフロード・バッファ内に、少なくとも１つのフラグ・インディケータをセットする作用であって、前記フラグ・インディケータが１つ以上のパケットに必要な関連するタスク・オフロード能力のイネーブルを表す、作用と、
前記ソフトウエア・コンポーネントがパケットに対して実行する動作タスクが前記周辺ハードウエア・デバイス上のイネーブルされたタスク・オフロード能力に対応する場合、前記コンピュータ・システムのその時々の必要性に応じて、タスク・オフロード・データをデータ・パケットに添付し、該データ・パケットを前記周辺ハードウエア・デバイスに送ることによって、前記ソフトウエア・コンポーネントから前記周辺ハードウエア・デバイスに前記動作タスクを選択的にオフロードする作用を実行し、
前記添付したタスク・オフロード・データにしたがって、前記周辺ハードウエア・デバイスにおいて前記少なくとも１つのオフロード・タスクを実行する作用と、
を含む方法。
【請求項２３】
請求項２２に記載の作用を実行するためのコンピュータ実行可能命令を有するコンピュータ読取可能媒体。
【請求項２４】
請求項２２記載の方法において、前記周辺ハードウエア・デバイスが、前記コンピュータ・システムに動作的に接続してあるネットワーク・インターフェース・カード（ＮＩＣ）であること、を特徴とする方法。
【請求項２５】
請求項２２記載の方法において、前記ソフトウエア・コンポーネントが、レイヤ状ネットワーク・モデルにおいて実行するネットワーク・ソフトウエア・アプリケーションであること、を特徴とする方法。
【請求項２６】
請求項２２記載の方法において、前記周辺ハードウエア・デバイスには、多数のタスク・オフロード・バッファを関連付けてあり、これによって前記周辺ハードウエア・デバイスの多数のタスク・オフロード能力を定めること、を特徴とする方法。
【請求項２７】
請求項２２記載の方法において、前記周辺ハードウエア・デバイスがネットワーク・インターフェース・カード（ＮＩＣ）であること、を特徴とする方法。
【請求項２８】
請求項２２記載の方法において、チェックサム動作、暗号化動作、メッセージ・ダイジェスト計算動作、ＴＣＰ区分動作、および解読動作である動作タスクのうちの１つ以上から前記動作タスクを選択すること、を特徴とする方法。