JP2006294027A - 単一lanアダプタに機能をオフロードするためのイネーブル方法、データ処理システム及びコンピュータ・プログラム - Google Patents

単一lanアダプタに機能をオフロードするためのイネーブル方法、データ処理システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2006294027A
JP2006294027A JP2006102166A JP2006102166A JP2006294027A JP 2006294027 A JP2006294027 A JP 2006294027A JP 2006102166 A JP2006102166 A JP 2006102166A JP 2006102166 A JP2006102166 A JP 2006102166A JP 2006294027 A JP2006294027 A JP 2006294027A
Authority
JP
Japan
Prior art keywords
function
network adapter
offloaded
offload
processing system
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.)
Granted
Application number
JP2006102166A
Other languages
English (en)
Other versions
JP4996122B2 (ja
Inventor
Ron E Gonzalez
ロン・イー・ゴンザレス
Binh K Hua
ビン・ケイ・ファ
Sivarama K Kodukula
シバラマ・ケイ・コダクラ
Rakesh Sharma
ラケシュ・シャルマ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006294027A publication Critical patent/JP2006294027A/ja
Application granted granted Critical
Publication of JP4996122B2 publication Critical patent/JP4996122B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】他の装置に所定機能をオフロードすることができる単一のLANアダプタを提供する。
【解決手段】プロセッサの性能を改善するために機能をオフロードするための方法、装置及びコンピュータ・プログラムが提供される。他の装置に所定機能をオフロードすることができる単一のLANアダプタを提供する。機能をオフロードするいろいろな方法が記載されている。第1に、ユーザ及びアプリケーションが、要求に応じて、オフロードされるべき機能だけを選び出すことができる。第2に、所定のスケジューラを通してオフロードされるべき機能をスケジューラがスケジューリングする。第3に、知識データベースに記憶されているヒューリスティック方法又は学習方法に基づいて機能がオフロードされ得る。
【選択図】図2

Description

本発明は、一般に、プロセッサの性能を改善するために機能をオフロードすることに関する。更に具体的には、本発明は、プロセッサの性能を改善するために単一のLANアダプタに機能をオフロードする。
複数のコンピュータ同士が初めて結合されて以来、割合に短い期間のうちにローカル・エリア・ネットワーク(LAN)技術及び性能が大幅に改善されてきた。最初のころのイーサネット(Ethernet)ネットワークは、各ネットワーク装置についてタップする(接続する)単一の同軸ケーブルから構成されていた。この相互接続スタイルは1980年代初期に現れ、その頃、コンピュータ・ネットワーク化はシックネット(Thicknet。今では10BASE−5として知られている)で達成され、後にはIEEE802.3規格を用いて達成された。コンピュータ同士を結合させる機械的プロセスは、ケーブルにタップする必要を無くしたシンネット(Thinnet。今は10BASE−2として知られている)の採用で少し改善した。シンネットの同軸コネクタでは複数の装置の相互接続は遥かに容易だったが、この技術でも依然として単一の同軸ケーブル上で複数のネットワーク装置を一列に配列していた。これらの規格のうちのいずれかを利用する複数の装置間ではレイヤー2パケットが伝送され、ケーブル上の他の全ての装置によっても受信される。他の全ての接続されている装置からのメッセージを受信することのできる装置のグループ(セグメントとも称される)のことを衝突ドメイン(collision domain)というが、単一の衝突ドメインでの情報の整然とした伝送を制御するためには、これらの規格についてパケット伝送プロトコル、すなわちCSMA/CDが必要であった。このような全体像の中で、レイヤー2ブロードキャストを受信することのできる装置のグループ(セグメント)をブロードキャスト・ドメインと呼び、更に、装置に直接アドレスされていないユニキャストされたレイヤー2パケットを受信することのできる装置のグループ(セグメント)を反復セグメントと呼んでいる。
時間が経過して、単一ワイヤ実装(implementation)はイーサネット反復セグメント・ハブ(HUB)及びRJ−45スタイルのケーブル接続(10BASE−T)に取って代わられた。モジュール化10BASE−Tコンポーネントへの変化は、LAN装置を相互に接続するために使われる方法に大きな改善をもたらしたが、単一ブロードキャスト・ドメイン及びCSMA/CDの性能の限界は残った。ローカル・エリア・ネットワークは、数百台のコンピュータが同じ10Mbブロードキャスト・ドメインを共有するポート密度にまで成長した。LAN管理者は、大きなブロードキャスト・ドメインがネットワーク性能及びデータの機密性と矛盾する(一貫性がない)ということにすぐに気がついた。
レイヤー2イーサネット・ブリッジとイーサネット・スイッチとは、宛先装置がポートの背後に位置していなければ、ユニキャスト・パケットをポートの外へ送らない。この特徴の故に、まずはブリッジング及びスイッチングの2つの方法などを利用して衝突ドメイン及び反復LANセグメントのサイズを制限した。スイッチ及びブリッジを配置すると、LANの性能とデータの機密性が向上した。レイヤー2スイッチング技術の価格が低下し、これらのスイッチのポート密度が増大するにつれて、LAN管理者はネットワークのまさに周辺部にスイッチを配置し始めた。より小さなネットワーク及びソーホー(SOHO)アプリケーションでは依然として反復ハブが見られるが、最新のLANではイーサネット・スイッチが殆ど完全に反復ハブ装置に取って代わった。
過去10年間にわたって、LAN技術は、特にイーサネットは、メディア速度を3ないし4年ごとに10倍に向上させた。対照的に、中央処理装置(CPU)の速度は2年ごとに2倍になる。従って、CPUは高I/O性能システムにおいては急速にボトルネックになってきている。プロセッサ性能のこの遅れを緩和するために、ホストの増え続けるネイティブ(native)機能をI/Oアダプタにオフロードすることができる。機能(function)をオフロードすれば、ホストCPUの作業負荷(ワークロード)が減少し、I/Oアダプタのスループットが向上するという付加的利点が得られる。しかし顧客は、アプリケーションによって異なるオフロード機能のセットを必要とするので、オフロードされるべき機能を選択するときには注意する必要がある。現在、I/Oアダプタのベンダーは、顧客が欲しがりそうだと自分たちが感じている特定のオフロード機能で自分たちのI/Oソリューションをカスタマイズすることによって、これらの顧客のニーズに対処しようとしている。この「行き当りばったり(hit and miss)」のアプローチは、数個のバージョンのアダプタの試験及び維持にコストがかかるため、結果的に高価なものになってしまう。同じタイプのアダプタについてマルチレベルのオフロード機能(2つ以上)でも、完全なソリューションからは程遠い。
現在のアプローチを用いる際に生じる別の問題は、全てのアプリケーションが同じアダプタを使用するときに同じオフロード機能が発生することである。この場合、オフロードされた機能を必要としないかも知れないアプリケーションやオフロードされた機能ではうまく働かないアプリケーションがあるかも知れないので、問題が生じる。例えば、TCP/IP環境では、オフロードを準備するプロセスは、単にチェックサムを計算するよりもCPU集約的でありうるので、小さなパケット・サイズだけを送受信するアプリケーションはオフロードされたチェックサム機能ではうまく働かないおそれがある。
従って、他の接続されている装置への機能のオフロードを提供する単一のLANアダプタを持つのが有利であると考えられる。
本発明は、機能をオフロードしてプロセッサの性能を改善するための方法、装置及びコンピュータ・プログラムを提供する。本発明の代表的な側面によれば、他の装置に所定機能をオフロードすることができる単一のLANアダプタが提供される。機能のオフロードについては3つの仕方が提供される。第1に、ユーザ及びアプリケーションが、要求に応じて、オフロードされるべき機能だけを選び出すことができる。第2に、オフロードされるべき機能のスケジューリングが所定のスケジューラで定められ得る。第3に、知識データベースを介して、オフロードされ得る機能のヒューリスティック又は学習である。
本発明を特徴付けると考えられる新規な特徴は、添付されている請求項に記載されている。しかし、本発明自体と、好ましい使用方法、その更なる目的及び利点とは、実施形態ついての以下の詳細な説明を添付図面と関連させて読むことにより最も良く理解されるであろう。
以下図を参照する。特に図1を参照すると、本発明が実施され得るデータ処理システムが、本発明の好ましい実施態様に従って示されている。コンピュータ100が描かれており、これは、システム・ユニット102と、ビデオ・ディスプレイ端末104と、キーボード106と、記憶装置108と(該記憶装置はフレキシブルディスク・ドライブ及びその他のタイプの永久的で取り外し可能な記憶媒体を含むことができる)、マウス110とを含む。パーソナル・コンピュータ100には、例えばジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロフォンなどの付加的な入力装置が一緒に含まれ得る。コンピュータ100は、IBM社のeServer(商標)コンピュータ又はIntelliStation(R)コンピュータなどの任意の適切なコンピュータを用いて実現され得るものである。図ではコンピュータを図示しているが、ネットワーク・コンピュータなどの他のタイプのデータ処理システムでも本発明の他の実施態様を実現することができる。コンピュータ100は、好ましくは、コンピュータ100の中で動作するコンピュータ可読媒体内に存在するシステム・ソフトウェアによって実現され得るグラフィカル・ユーザ・インターフェース(GUI)も含む。
図2を参照すると、本発明を実施することができるデータ処理システムのブロック図が示されている。データ処理システム200は、図1のコンピュータ100などのコンピュータの一例であり、これに本発明のプロセスを実行するコード又は命令を実装することができる。データ処理システム200は、ペリフェラル・コンポーネント・インターコネクト(PCI)ローカルバス・アーキテクチャを使用する。描かれている例はPCIバスを使用しているが、アクセレレイテッド・グラフィックス・ポート(AGP)及びインダストリー・スタンダード・アーキテクチャ(ISA)などの他のバス・アーキテクチャを使用することもできる。プロセッサ202とメインメモリ204とは、PCIブリッジ208を通してPCIローカルバス206に接続されている。PCIブリッジ208は、プロセッサ202のための統合メモリ・コントローラ及びキャッシュメモリも含むことができる。PCIローカルバス206への付加的な接続部を、直接コンポーネント相互接続を通して、或いはアドイン・コネクタを通して、作ることもできる。
図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ210、小型コンピューター・システム・インターフェース(SCSI)ホストバス・アダプタ212、及び拡張バス・インターフェース214が直接コンポーネント接続によりPCIローカルバス206に接続されている。対照的に、オーディオ・アダプタ216、グラフィックス・アダプタ218、及びオーディオ/ビデオ・アダプタ219は、拡張スロットに挿入されたアドイン・ボードによりPCIローカルバス206に接続される。拡張バス・インターフェース214は、キーボード及びマウス・アダプタ220、モデム222、並びに追加メモリ224のための接続部を提供する。SCSIホストバス・アダプタ212は、ハードディスク・ドライブ226、テープ・ドライブ228、及びCD−ROMドライブ230のための接続部を提供する。代表的なPCIローカルバス・インプリメンテーションは、3個又は4個のPCI拡張スロット又はアドイン・コネクタをサポートする。
オペレーティング・システムがプロセッサ202上で動作し、図2のデータ処理システム200内の種々のコンポーネントを整合させ制御する。該オペレーティング・システムはWindows XP(商標)などの市販のオペレーティングシステムであって良く、これはマイクロソフト社から入手することができる。Java(商標)プログラミング・システム等のオブジェクト指向プログラミング・システムは、該オペレーティング・システムと関連して動作することができて、データ処理システム200上で動作するJava(商標)プログラム又はアプリケーションから該オペレーティング・システムに呼び出し(call)を提供することができる。“JAVA”は、サン・マイクロシステムズ社(Sun Microsystems,Inc.)の商標である。該オペレーティング・システム、オブジェクト指向プログラミング・システム、及びアプリケーション又はプログラムのための命令は、ハードディスク・ドライブ226などの記憶装置に置かれ、プロセッサ202により実行されるべくメイン・メモリ204にロードされる。
当業者であれば、図2のハードウェアが実装(インプリメンテーション)に応じて変わってもよいことが分かるであろう。図2に図示されているハードウェアに加えて、或いは該ハードウェアの代わりに、フラッシュ読み出し専用メモリ(ROM)、同等の不揮発性メモリ、或いは光ディスク・ドライブ等の他の内部ハードウェア又は周辺装置が使用され得る。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用され得る。
例えば、データ処理システム200は、任意選択でネットワーク・コンピュータとして構成されている場合には、SCSIホストバス・アダプタ212、ハードディスク・ドライブ226、テープ・ドライブ228、及びCD−ROM230を含まないこともある。その場合には、コンピュータは、厳密にはクライアント・コンピュータと称されるべきであるが、LANアダプタ210、モデム222等の何らかのタイプのネットワーク通信インターフェースを含む。他の例として、データ処理システム200は、データ処理システム200が何らかのタイプのネットワーク通信インターフェースを含んでいても含んでいなくても、何らかのタイプのネットワーク通信インターフェースに関係なくブートされ得るように構成されたスタンドアロン型システムであっても良い。別の例として、データ処理システム200はパーソナル・デジタル・アシスタント(PDA)であっても良くて、これは、オペレーティングシステム・ファイル又はユーザにより作られたデータ或いはその両方を記憶する不揮発性メモリを提供するROM又はフラッシュROM或いはその両方で構成される。
図2に描かれている例と上記の例とは、アーキテクチャに関する限定を示唆しようとするものではない。例えば、データ処理システム200は、PDAの形をとるほかに、ノートブック・コンピュータ又はハンドヘルド・コンピュータであっても良い。データ処理システム200は、キオスク(kiosk)又はウェブ・アプライアンス(装置)であっても良い。
本発明のプロセスは、コンピュータで実行される命令を用いてプロセッサ202により実行され、これは例えばメイン・メモリ204、メモリ224などのメモリに、又は1つ以上の周辺装置226−230に置かれ得る。
本発明は、プロセッサの性能を改善するためにいろいろな機能のオフロードを提供する。他の装置に所定の機能をオフロードすることができる単一のLANアダプタについて記載する。オフロードする機能を定義し得る手段として3つの別々の手段を記載する。第1に、ユーザ又はアプリケーションが、要求に応じて、オフロードされるべき機能だけを選び出すことができる。第2に、オフロードされるべき機能のスケジューリングがスケジューラで定義され得る。第3に、機能のオフロードが知識データベースに記憶され得る場合にはヒューリスティック機能又は学習機能が提供される。
本発明の代表的側面については、最も分かりやすくなるように例を用いて記載する。本発明は、TCP/IPプロトコル機能を使用するが、これは例示目的に過ぎない。記載の特徴を用いればどの様な機能をもオフロードし得るので、この代表的側面に関する記載は本発明の範囲を限定しない。
この例では、全てのI/Oアダプタが、デフォルトとして使用可能なオフロード機能を有する。ユーザ又はアプリケーション或いはその両方が使用することのできるオフロード機能のタイプを制御するために、IPアドレス、TCPソケット・ポート番号、及びアクセス制御キーの組み合わせが使用される。従って、2つの別々のユーザ又はアプリケーション或いはその両方がネットワークへの通信のために同じIPアドレスを共有することもできるが、同じオフロード機能を使用しなくても良い。特定のソケット・ポート番号についてのオフロード機能へのアクセスは、ユーザ又はアプリケーション或いはその両方に対して発行される特別のキーを介して制御され得る。このキーは、各ソケット・ポートについてどのオフロード機能が許されるのかを特定するためにTCP/IPスタック(stack)によって使用される。「FTP」などの或る公知のアプリケーションは、一定のデフォルト・オフロード機能に前もって使用可能にされ得る。
このタイプのオフローディングはプロセッサの性能を向上させ、また、I/Oアダプタの性能を向上させる。このアプローチを用いれば、I/Oアダプタ供給者は、特定のオフロード機能セットを伴なう単一の部品番号をリリースするだけで良いので、自分たちのサプライチェーンを簡素化することによって時間及び費用を節約することができる。エンドユーザも、自分たちが必要とする機能を起動させて、それについて支払いをするだけで良いので、費用を節約できる。この解決策により供給者は、オンデマンドのオフロード機能により与えられる柔軟性を顧客に提供することによって、費用を節約し、顧客のニーズを満たす。
図3を参照すると、同じシステム内に存在する2つのアダプタの本発明の好ましい実施態様による更なる例示がテーブル中に示されている。図3の例示となるテーブル300には、IPアドレス302、ポート番号304、キー306、IPsec308、TCP/IPチェックサム310、TCP/IPオフロード312及びアプリケーション314が各IPアドレスについて設けられているが、他の項目もこのテーブルに含まれていてもよい。このテーブルでは、2つのIPアドレス、或いはアダプタ316及び318が同じシステム内に存在する。IPアドレス316については、IPsec、TCP/IPチェックサム、及びTCP/IPオフロード機能が定義されている。しかし、IPアドレス316に関連するテルネット(Telnet)、FTP、及びNFSアプリケーションについては別々のオフロード・デフォルト機能が使用可能にされており、それらは全てそれら自身のポート番号を介して制御される。IPアドレス318について、該システムではテルネット及びバックアップ・アプリケーションについての全てのオフロード機能がデフォルトとして使用可能にされ得る。IPアドレス316及び318の現在の設定が図3にまとめられている。図3はテーブルについて示しているが、アレイ(array)、ハッシュ(hash)、スカラーなどの、他の任意のタイプのデータ構造が用いられてもよい。
図4を参照すると、図3に示されているテーブル300を維持するオペレーティング・システムの機能ブロック図が本発明の好ましい実施態様に従って描かれている。代表的なオペレーティング・システム400は、図3のテーブル300と同様のオフロード機能イネーブル・テーブル402を維持するタスクを有する。この例では、ユーザ又はアプリケーション404は、ユーザ・スペース408からカーネル・スペース410へのソケット・システム・コール406を開始する。カーネル・スペース410において、ソケット・システム・コール・インプリメンテーション412が、ソケット・システム・コール406を受け取り、このコールを構文解析(parse)し、任意の埋め込みソケット・レイヤー機能414を開始する。
ソケット・レイヤー機能414は、要求されている機能のタイプを判定し、該機能を適切なプロトコルで送る。オフロード機能イネーブル・テーブル402は、初期プログラム・ロード(IPL)の間にオペレーティング・システムによって初期化される。オフロード機能イネーブル・テーブル402は、実行時に該システム上のオフロード機能を付け加え又は削除することによってインターフェース434を介して手動により又は自動的に更新される。インターフェース434の例が図5,6及び7に関連させて以下に記載する。該オペレーティング・システム内に存在するプロトコルのいずれも、オフロード機能イネーブル・テーブル402に照会(query)することができる。
該オペレーティング・システムは、オフロード属性をTCP接続毎に使用可能にすることによってオフロード・ハードウェアに対してアクセス制御を実施する。オフロード能力がオフロード機能イネーブル・テーブル402においてセットされたとき、接続はI/Oアダプタ430にオフロードされ、さもなければ標準的イーサネットNICインターフェースが使用される。この方法は、特定のシステム・ユーザ又はアプリケーション或いはその両方と関連するオフロードの使用をTCP接続毎に可能にする。更に、それは、システム・ユーザ又はアプリケーション或いはその両方に関してオフロード使用(offload usage)アカウンティングをオンにする。
更に、ソケット・レイヤー機能414は、ユーザ・データグラム・プロトコル(UDP)パケットをupd_usrreq416に送り、それは変換されてudp_output418から送出される。しかし、UDP機能はオフロード機能イネーブル・テーブル402に載せられていないので、UDP機能コールは標準イーサネットNICインターフェースを介して送られるであろう。ソケット・レイヤー機能414は、また、伝送制御プロトコル(TCP)パケットをtcp_usrreq420に送り、それは変換されてtcp_output422から送出される。TCP/IPスタック436の一部であるtcp_output422は、オフロード機能イネーブル・テーブル402上のデータを照会し、該コールを、選択されたオフロード機能のためにデバイス・ドライバー426にインターフェース(接続)する。
ソケット・レイヤー機能414は、また、ユーザ・データグラム・プロトコル(UDP)パケットをudp_usrreq416に送り、それは変換されてudp_output418から送出される。UDP/IPスタック438の一部であるudp_output418は、オフロード機能イネーブル・テーブル402上のデータを照会し、該コールを、選択されたオフロード機能のためにデバイス・ドライバー426にインターフェースする。
ソケット・レイヤー機能414は、また、インターネット・プロトコル(IP)パケット及びインターネット制御メッセージ・プロトコル(ICMP)パケットをインターネット・プロトコル(IP)及びインターネット制御メッセージ・プロトコル(ICMP)キュー424に直接送る。しかし、IP/ICMP機能コールについては標準イーサネットNICインターフェースを介して送られるであろう。
図5を参照すると、本発明の好ましい実施態様に従う代表的なオンデマンド・インターフェースが図示されている。オンデマンド・インターフェース500は、図4のインターフェース434の例であり、ユーザ508及びアプリケーション506が所望の機能だけを要求に応じて選び出すことを可能にする管理(アドミニストレーション)インターフェース或いはルート・インターフェース504から構成されている。これらの機能は、図4のオフロード機能イネーブル・テーブル402と同様のオフロード機能イネーブル・テーブル502に加えられるか或いは削除される。
図6は、本発明の好ましい実施態様に従う代表的なスケジュール主導(driven)インターフェースを示す。スケジュール主導インターフェース600は、図4のインターフェース434の例であって、スケジュール・イベント・テーブル606にリストされているイベントに基づいて所定のスケジューラによって、所与のワークロード環境のために固有のオフロード機能(feature)を選択的に使用可能及び使用禁止にすることを可能にさせる管理インターフェース或いはCRONインターフェース604から構成されている。トランザクション処理などのワークロードは、IPsec、SSLなどのような特定のオフロード機能(featune)をおそらく必要とするであろう。しかし、同じワークロードは、小さなパケットの故にTCP/IPチェックサム・オフロードから大して利益をこうむらないかもしれない。バックアップ及びFTPなどの、大きなパケットの転送を必要とするアプリケーションに関しては、TCP/IPチェックサム、TCP/IPオフロードなどのオフロード機能は有益である。これらのワークロードは、一日のうちに変化し得る。例えば、トランザクション指向のネットワーク・トラフィックはおそらく日中にピークになるであろうが、バックアップ・トラフィックは夜間にピークになる。
これらのオフロード機能は、スケジュール・イベント・テーブル606にリストされているイベントに基づいて所定のスケジューラを介して使用可能又は使用禁止にされ得る。管理インターフェース又はCRONインターフェース604は、バッチ、CRON又はスクリプト(script)などの、任意のタイプのスケジューラであっても良い。これらの機能は、図4のオフロード機能イネーブル・テーブル402と同様のオフロード機能イネーブル・テーブル602に加えられるか或いは削除される。
図7は、本発明の好ましい実施態様に従う代表的なヒューリスティック・インターフェース又は学習インターフェースを示す。ヒューリスティック・インターフェース700は、図4のインターフェース434の例であり、知識データベース706に記憶されている学習されたイベントによって、所与のワークロード環境のために固有のオフロード機能を選択的に使用可能及び使用禁止にすることを可能にさせる管理インターフェース又はCRONインターフェース704から構成されている。
殆どのネットワーク・インストレーションにおいて、ワークロードは予め決められるけれども、それは変化する要求又は季節的変動に起因して変動し得る。これらの変化は、監視され、分析され、そして知識データベース706で公開され得る。該データベースからのデータを分析してアプリケーション・ワークロードを日時に関して特徴付けるツールが幾つか存在する。トランザクション処理などのワークロードは、おそらく、IPsec、SSLなどの特定のオフロード機能を必要とするであろう。しかし、同じワークロードは、小さなパケットの故にTCP/IPチェックサム・オフロードから大して利益をこうむらないかもしれない。バックアップ及びFTPなどの、大きなパケットの転送を必要とするアプリケーションに関しては、TCP/IPチェックサム、TCP/IPオフロードなどのオフロード機能は有益である。
これらのオフロード機能は、知識データベース706にリストされているイベントに基づいてヒューリスティック・スケジューラを介して使用可能又は使用禁止にされ得る。管理インターフェース又はCRONインターフェース704は、バッチ、CRON又はスクリプトなどの、任意のタイプのスケジューラであっても良い。これらの機能は、図4のオフロード機能イネーブル・テーブル402と同様のオフロード機能イネーブル・テーブル702に加えられるか或いは削除される。
図8は、本発明の好ましい実施態様に従うイベントの代表的なテーブルを示す。テーブル800は、図6のスケジュール・イベント・テーブル606又は図7の知識データベース706の例である。テーブル800において、連続する2つの月曜日についてのCRONイベント・エントリーがあるが、他のアイテムもこのテーブルに包含されていてもよい。図示されているように、これらのエントリーは両方の月曜日について同一ではない。その理由として、それらの日のうちの一方が休日又は季節的変化であることが考えられる。そこで、オフロード・パラメータは、第2月曜についてバックアップ・ジョブのために最適化される。図8はテーブルを記述しているが、アレイ、ハッシュ、スカラーなどの他の任意のタイプのデータ構造が使用されてもよい。
図9において、流れ図900は、本発明の好ましい実施態様に従うオフロード機能の代表的動作を示す。この代表的動作が始まると、オペレーティングシステムはオフロード機能テーブルを初期化する(ステップ902)。その後、該システムは、機能が要求されているか否か判定する(ステップ904)。機能が要求されていなければ、該システムは、機能が要求されるまでステップ904に戻る。機能が要求されると、その機能がオフロードされるべきであるか否か判定するためにオフロード機能テーブルの照会(query)が実行される(ステップ906)。もしその機能がオフロード機能テーブルにリストされていなければ(ステップ908)、その要求は標準イーサネットNICインターフェースを介して処理されるべく送られる(ステップ910)。もし該機能がオフロード機能テーブルにリストされていれば(ステップ908)、該機能がオフロードされるべき装置へのインターフェースが確立され(ステップ912)、該機能はその指定された装置にオフロードされる(ステップ914)。
この様に、本発明は、プロセッサの性能を改善するために機能をオフロードする方法、装置及びコンピュータ命令を提供する。定義済み機能を他の装置にオフロードすることができる単一のLANアダプタが提供される。記載されている方法は、3通りの別々の仕方で機能をオフロードすることができる。第1に、ユーザ或いはアプリケーションが、要求に応じて、オフロードされるべき機能だけを選び出すことができる。第2に、オフロードされるべきそれらの機能のスケジューリングがスケジューラで定められ得る。第3に、機能のオフロードを知識データベースに記憶させ得るヒューリスティック機能又は学習機能が提供される。
このタイプのオフロードはプロセッサの性能を向上させ、また、I/Oアダプタの性能を向上させる。このアプローチを用いれば、I/Oアダプタ供給者は、オフロード機能のスーパー・セット(上位集合)を伴なう単一の部品番号をリリースするだけで良いので、自分たちのサプライチェーンを簡素化することによって時間及び費用を節約することができる。エンドユーザも、自分たちが必要とする機能を起動させて、それについて支払いをするだけで良いので、費用を節約できる。この解決策により供給者は、オンデマンドのオフロード機能により与えられる柔軟性を顧客に提供することによって、費用を節約し、顧客のニーズを満たす。
なお、本発明は完全に機能するデータ処理システムに関連して記載されたけれども、重要な点として当業者であれば分かることであるが、本発明のプロセスが命令を含むコンピュータ可読媒体の形のほか、いろいろな形で分散させられ得るプロセスであり、本発明がその分散を実行するために実際に使用される信号を担う媒体の特定のタイプに関わらずに等しく適用され得ることを挙げておく。コンピュータ可読媒体の例は、フレキシブルディスク、ハードディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録できるタイプの媒体と、ディジタル通信リンク及びアナログ通信リンク、例えば無線周波数伝送及び光波伝送などの伝送形を使用する有線又は無線の通信リンクなどの伝送型媒体とを含む。コンピュータ可読媒体は、特定のデータ処理システムで実際の使用時に復号される符号化されたフォーマットの形をとることができる。
本発明についての記載は説明を目的として提示されたのであって、これで全体を網羅しようとするものではなく、開示された形の発明に限定しようとするものでもない。多くの変更、改変ができることは当業者であれば分かることである。実施態様は、本発明の原理、実用的アプリケーションを最も良く説明するために、また、目論まれている特定の使用方法に合う種々の改変を伴なう種々の実施態様に関して本発明を他の当業者が理解し得るようにするために、選択され記述された。
本発明を実施することのできるデータ処理システムの図である。 サーバーとして実現され得る本発明の好ましい実施態様によるデータ処理システムのブロック図である。 本発明の好ましい実施態様による同じシステムに存在する2つのアダプタの説明図である。 本発明の好ましい実施態様によるオペレーティング・システムの機能ブロック図である。 本発明の好ましい実施態様による代表的オンデマンド・インターフェースを示す。 本発明の好ましい実施態様に従う代表的スケジュール主導インターフェースを図示している。 本発明の好ましい実施態様に従う代表的ヒューリスティック又は学習インターフェースを図示している。 本発明の好ましい実施態様に従うイベントの代表的テーブルを図示している。 本発明の好ましい実施態様に従う機能をオフロードする代表的動作の流れ図を図示している。
符号の説明
200 クライアント
202 プロセッサ
204 メインメモリ
206 バス
208 ホスト/PCI キャッシュ/ブリッジ
210 LANアダプタ
212 SCSIホストバス・アダプタ
214 拡張バス・インターフェース
216 オーディオ・アダプタ
218 グラフィックス・アダプタ
219 オーディオ/ビデオ・アダプタ
220 キーボード及びマウス・アダプタ
222 モデム
224 メモリ
226 ディスク
228 テープ
230 CD−ROM

Claims (20)

  1. データ処理システムにおいて機能をオフロードする方法であって、
    前記データ処理システムにおいて実行されるべき機能を求める要求をプロセッサにおいて受け取るステップと、
    データ構造に基づいて前記機能をネットワーク・アダプタにオフロードするべきか否か判定するステップと、
    前記機能が前記ネットワーク・アダプタにオフロードされるべきであるとの判定に応答して、前記ネットワーク・アダプタへのインターフェースを確立して前記機能を前記ネットワーク・アダプタにオフロードするステップと、
    前記機能が前記ネットワーク・アダプタにオフロードされるべきではないという判定に応答して、前記プロセッサを用いて前記機能を処理するステップと、
    を含む、方法。
  2. 前記機能を前記ネットワーク・アダプタにオフロードするステップは、
    ネットワーク・アダプタでアクセス制御を実行するステップと、
    オフロード属性を接続毎に使用可能にするステップと、
    を含む、請求項1に記載の方法。
  3. 前記データ構造はオフロード機能データ構造である、請求項1に記載の方法。
  4. 前記データ構造は、オフロードされるべき機能を定義するユーザによって更新される、請求項1に記載の方法。
  5. 前記データ構造は、オフロードされるべき機能を定義するアプリケーションによって更新される、請求項1に記載の方法。
  6. 前記データ構造は、機能がオフロードされるべき時間を定義するスケジューラによって更新される、請求項1に記載の方法。
  7. 前記スケジューラは、予定イベント・データ構造に基づいて前記時間を決定する、請求項6に記載の方法。
  8. 前記データ構造は、機能がオフロードされるべきイベントを定義するヒューリスティック・インターフェースによって更新される、請求項1に記載の方法。
  9. 前記ヒューリスティック・インターフェースは、知識データベースに記憶されているイベントに基づいて前記時間を決定する、請求項8に記載の方法。
  10. データ処理システムであって、
    バス・システムと、
    前記バス・システムに接続された通信ユニットと、
    前記バス・システムに接続された、一連の命令を含むメモリと、
    ネットワーク・アダプタと、
    前記バス・システムに接続された処理ユニットと、
    を含み、前記処理ユニットは、前記データ処理システムにおいて実行されるべき機能を求める要求をプロセッサにおいて受け取り、データ構造に基づいて前記機能を前記ネットワーク・アダプタにオフロードするべきか否か判定し、前記機能が前記ネットワーク・アダプタにオフロードされるべきであるとの判定に応答して、前記ネットワーク・アダプタへのインターフェースを確立して前記機能を前記ネットワーク・アダプタにオフロードし、前記機能が前記ネットワーク・アダプタにオフロードされるべきではないという判定に応答して、前記処理ユニットを用いて前記機能を処理するために前記一連の命令を実行する、データ処理システム。
  11. 前記機能を前記ネットワーク・アダプタにオフロードするために前記一連の命令を実行するとき、前記プロセッサは、前記ネットワーク・アダプタでアクセス制御を実行しオフロード属性を接続毎に使用可能にするために一連の命令を実行する、請求項10に記載のデータ処理システム。
  12. 前記データ構造はオフロード機能データ構造である、請求項10に記載のデータ処理システム。
  13. 前記データ構造は、オフロードされるべき機能を定義するユーザによって更新される、請求項10に記載のデータ処理システム。
  14. 前記データ構造は、オフロードされるべき機能を定義するアプリケーションによって更新される、請求項10に記載のデータ処理システム。
  15. 前記データ構造は、機能がオフロードされるべき時間を定義するスケジューラによって更新される、請求項10に記載のデータ処理システム。
  16. 前記スケジューラは、予定イベント・データ構造に基づいて前記時間を決定する、請求項15に記載のデータ処理システム。
  17. 前記データ構造は、機能がオフロードされるべきイベントを定義するヒューリスティック・インターフェースによって更新される、請求項10に記載のデータ処理システム。
  18. 前記ヒューリスティック・インターフェースは、知識データベースに記憶されているイベントに基づいて前記時間を決定する、請求項17に記載のデータ処理システム。
  19. 機能をオフロードするためのコンピュータ・プログラムであって、
    データ処理システムにおいて実行されるべき機能を求める要求をプロセッサにおいて受け取るための第1の命令と、
    データ構造に基づいて前記機能をネットワーク・アダプタにオフロードするべきか否か判定するための第2の命令と、
    前記機能が前記ネットワーク・アダプタにオフロードされるべきであるとの判定に応答して、前記ネットワーク・アダプタへのインターフェースを確立して前記機能を該ネットワーク・アダプタにオフロードするための第3の命令と、
    前記機能が前記ネットワーク・アダプタにオフロードされるべきではないという判定に応答して、前記プロセッサを用いて前記機能を処理するための第4の命令と、
    を含む、コンピュータ・プログラム。
  20. 前記機能を前記ネットワーク・アダプタにオフロードすることを含む前記第3の命令は、
    前記ネットワーク・アダプタでアクセス制御を実行するための第1の副命令と、
    オフロード属性を接続毎に使用可能にするための第2の副命令と、
    を含む、請求項19に記載のコンピュータ・プログラム。
JP2006102166A 2005-04-07 2006-04-03 単一lanアダプタに機能をオフロードするためのイネーブル方法、データ処理システム及びコンピュータ・プログラム Expired - Fee Related JP4996122B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/101,616 US20060227804A1 (en) 2005-04-07 2005-04-07 Method for enablement for offloading functions in a single LAN adapter
US11/101616 2005-04-07

Publications (2)

Publication Number Publication Date
JP2006294027A true JP2006294027A (ja) 2006-10-26
JP4996122B2 JP4996122B2 (ja) 2012-08-08

Family

ID=37064425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006102166A Expired - Fee Related JP4996122B2 (ja) 2005-04-07 2006-04-03 単一lanアダプタに機能をオフロードするためのイネーブル方法、データ処理システム及びコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US20060227804A1 (ja)
JP (1) JP4996122B2 (ja)
CN (1) CN1845510A (ja)
TW (1) TW200705893A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009022422A1 (ja) * 2007-08-16 2009-02-19 Panasonic Corporation 暗号通信装置
WO2010073671A1 (ja) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
JP2010225122A (ja) * 2009-03-25 2010-10-07 Fujitsu Ltd システムコール処理のオフロード方法およびこれを適用した疎結合cpu型情報処理装置並びに通信処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10194337B2 (en) * 2012-07-12 2019-01-29 Qualcomm Incorporated Methods and apparatus for offloading checksum processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001514778A (ja) * 1997-03-13 2001-09-11 マーク・エム・ホイットニー メッセージ・キューイング・ファシリティを含むネットワーク・トランザクションをメインフレームからインテリジェントな入出力装置にオフロードするシステム及び方法
US20030084435A1 (en) * 2001-10-31 2003-05-01 Alan Messer Method and system for offloading execution and resources for resource-constrained networked devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701482A (en) * 1993-09-03 1997-12-23 Hughes Aircraft Company Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US6904519B2 (en) * 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US6327621B1 (en) * 1998-08-25 2001-12-04 International Business Machines Corporation Method for shared multicast interface in a multi-partition environment
US6788704B1 (en) * 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
US7149817B2 (en) * 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US20030046330A1 (en) * 2001-09-04 2003-03-06 Hayes John W. Selective offloading of protocol processing
US8412791B2 (en) * 2001-09-28 2013-04-02 International Business Machines Corporation Apparatus and method for offloading application components to edge servers
US7089587B2 (en) * 2002-04-04 2006-08-08 International Business Machines Corporation ISCSI target offload administrator
US7133915B2 (en) * 2002-10-10 2006-11-07 International Business Machines Corporation Apparatus and method for offloading and sharing CPU and RAM utilization in a network of machines
US7400639B2 (en) * 2003-08-07 2008-07-15 Intel Corporation Method, system, and article of manufacture for utilizing host memory from an offload adapter
US7526577B2 (en) * 2003-09-19 2009-04-28 Microsoft Corporation Multiple offload of network state objects with support for failover events
US7783880B2 (en) * 2004-11-12 2010-08-24 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001514778A (ja) * 1997-03-13 2001-09-11 マーク・エム・ホイットニー メッセージ・キューイング・ファシリティを含むネットワーク・トランザクションをメインフレームからインテリジェントな入出力装置にオフロードするシステム及び方法
US20030084435A1 (en) * 2001-10-31 2003-05-01 Alan Messer Method and system for offloading execution and resources for resource-constrained networked devices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009022422A1 (ja) * 2007-08-16 2009-02-19 Panasonic Corporation 暗号通信装置
WO2010073671A1 (ja) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
US9042244B2 (en) 2008-12-25 2015-05-26 Panasonic Intellectual Property Corporation Of America TCP transmission control device and method of control of TCP transmission
JP2010225122A (ja) * 2009-03-25 2010-10-07 Fujitsu Ltd システムコール処理のオフロード方法およびこれを適用した疎結合cpu型情報処理装置並びに通信処理装置

Also Published As

Publication number Publication date
CN1845510A (zh) 2006-10-11
JP4996122B2 (ja) 2012-08-08
TW200705893A (en) 2007-02-01
US20060227804A1 (en) 2006-10-12

Similar Documents

Publication Publication Date Title
US8862709B2 (en) Remote management of boot application
JP5372083B2 (ja) クライアント側の加速技術を提供するシステムおよび方法
US9270608B2 (en) Multi-stage large send offload
US7890614B2 (en) Method and apparatus for a secure network install
US7716061B2 (en) Method and apparatus for obtaining status information in a grid
JP4170258B2 (ja) ストレージ・エリア・ネットワーク上でのブート、保守、またはインストール操作の方法、装置、およびプログラム
US7389401B2 (en) Method and apparatus for storage provisioning automation in a data center
US7539762B2 (en) Method, system and program product for determining an initial number of connections for a multi-source file download
JP2007213570A (ja) ワイヤレス・ネットワーク・パスワードを更新するためのシステム及び方法
US20070143762A1 (en) Assigning tasks in a distributed system based on ranking
US20140146705A1 (en) Managing a dynamically configurable routing scheme for virtual appliances
US20160080515A1 (en) Network injected storage redirection for embedded applications
WO2008151925A2 (en) Managing computer resources in a distributed computing system
US6038664A (en) Method for selecting communication access method for local area networks
WO2006074064A2 (en) Method and apparatus for managing data object size in a multi-user environment
US20060206699A1 (en) Network boot system
JP4996122B2 (ja) 単一lanアダプタに機能をオフロードするためのイネーブル方法、データ処理システム及びコンピュータ・プログラム
US20090037428A1 (en) Staging A File Within A Distributed Computing System
JP2011097587A (ja) 高速フェイルオーバを用いた、パケット・ロスを防ぐエネルギー効率のよいethernet(r)のリンク移行のための方法、コンピュータ・プログラム、および装置
US6718362B1 (en) Extending functionality of network I/O APIS by using call-back mechanisms
JP2009110272A (ja) デバイス監視装置、デバイス監視方法、及びコンピュータプログラム
US20020194332A1 (en) Method and apparatus to manage resources for a multi-threaded device driver
US7571221B2 (en) Installation of network services in an embedded network server
JP2005110001A (ja) 通信環境設定方法および通信環境設定プログラム
JP2006243915A (ja) ドライバソフトウェアのリモートインストール方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120329

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: 20120417

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120511

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees