JP3791448B2 - 通信制御装置およびデスクリプタ制御方法 - Google Patents

通信制御装置およびデスクリプタ制御方法 Download PDF

Info

Publication number
JP3791448B2
JP3791448B2 JP2002121738A JP2002121738A JP3791448B2 JP 3791448 B2 JP3791448 B2 JP 3791448B2 JP 2002121738 A JP2002121738 A JP 2002121738A JP 2002121738 A JP2002121738 A JP 2002121738A JP 3791448 B2 JP3791448 B2 JP 3791448B2
Authority
JP
Japan
Prior art keywords
descriptor
transmission
reception
window
host
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.)
Expired - Fee Related
Application number
JP2002121738A
Other languages
English (en)
Other versions
JP2003319014A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2002121738A priority Critical patent/JP3791448B2/ja
Priority to US10/417,146 priority patent/US7472205B2/en
Publication of JP2003319014A publication Critical patent/JP2003319014A/ja
Application granted granted Critical
Publication of JP3791448B2 publication Critical patent/JP3791448B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は通信制御装置およびデスクリプタ制御方法に関し、特にホストとI/Oバスを介して接続され、ネットワーク媒体を制御してパケット(フレームともいう)の送受信を行う通信制御装置およびそのデスクリプタ制御方法に関する。
【0002】
【従来の技術】
近年、インターネットの世界的規模での普及により、膨大なネットワーク処理をこなすための高速なネットワーク・サーバの需要が高まっている。
【0003】
インターネットではTCP/IP(Transmission ControlProtocol/Internet Protocol)と呼ばれる通信プロトコル(以下、単にプロトコルという)を用いているが、プロトコルを処理するための負荷はサーバのホストCPU(Central ProcessingUnit)にとっては無視できないほど重い。この問題を解決するために、通信制御装置にネットワーク・プロセッサ・ユニットを組み込み、ある程度のTCP/IP処理をネットワーク・プロセッサ・ユニット側で実行させ、ホストCPUの負荷を減らす方法が考案されている。
【0004】
ネットワーク・プロセッサ・ユニットが受信パケットをホスト・メモリへ転送する際には、ホスト側の受信バッファのアドレスやサイズなどの、ホストCPUにより記述されたデスクリプタが必要となる。一般的にデスクリプタはチェーン構造を持っており、通信制御装置側はデスクリプタ・チェーンを辿ってデスクリプタを読み込み、通信処理を行う。
【0005】
【発明が解決しようとする課題】
しかし、特にTCPなどのコネクション・オリエンテッドなプロトコル処理のオフロードを考慮した場合、パケットの再送処理やACK(ACKnowledge)パケット処理等が存在し、単純にデスクリプタ・チェーンを辿ってデスクリプタを読み進むだけでなく、過去のデスクリプタに戻って通信処理を行う必要性が生じる。
【0006】
さらに、ネットワーク処理の性能を上げるために、受信パケットをユーザ・データ空間へ直接転送する、いわゆるゼロコピーを行う場合、デスクリプタ・チェーンはTCPのコネクション数だけ必要となり、デスクリプタの制御が一層複雑化する。このため、通信制御装置内のネットワーク・プロセッサ・ユニットにとってのデスクリプタ制御の容易性のみならず、デスクリプタ・アクセス制御に関する高速化手法が求められている。
【0007】
本発明の目的は、ネットワーク・プロセッサ・ユニットがホスト・メモリ上に散在するデスクリプタ・チェーンを辿る必要がないようにして、ネットワーク・プロセッサ・ユニットのデスクリプタ制御のオーバーヘッドを減らすことができるようにした通信制御装置およびデスクリプタ制御方法を提供することにある。
【0008】
また、本発明の他の目的は、ネットワーク・プロセッサ・ユニットが送受信処理を行う際にデスクリプタの参照を必要とする場合は、常に必要なデスクリプタがデスクリプタ・キャッシュに読み込まれているようにして、デスクリプタ・アクセスの遅延が低減されるようにした通信制御装置およびデスクリプタ制御方法を提供することにある。
【0009】
なお、先行技術文献として、特開平6−216970,特開平7−023060等がある。特開平6−216970に開示された通信制御アダプタは、上位システムからの確認応答フレーム送信要求を受けずに、独立して通信制御アダプタで確認応答フレームを生成して送信することにより、確認応答フレームを迅速に返送できるようにしたものであるが、デスクリプタの制御を行うものではなく、本発明とは構成および効果が全く異なるものである。
【0010】
また、特開平7−023060に開示されたバッファ変換制御方式は、プロトコル制御部が管理するバッファ管理テーブルとLAN(Local Area Network)コントローラが管理する送受信ディスクリプタテーブルの間に送受信バッファ管理変換テーブルを設けることにより、LANアダプタ(本発明の通信制御装置に相当)と通信制御装置(本発明のホストに相当)間での送受信バッファの共有を可能にするものであるが、ホストで管理されるデスクリプタを通信制御装置にキャッシュして管理するものではなく、本発明とは構成および効果が全く異なるものである。
【0011】
【課題を解決するための手段】
本発明の通信制御装置は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを自動的に辿って解析することによりデスクリプタ・ギャザー・リストを仮想的に構築し、該仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照させるデスクリプタ・キャッシュ機構を備えることを特徴とする。
【0012】
また、本発明の通信制御装置は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを自動的に辿って解析することによりデスクリプタ・ギャザー・リストを仮想的に構築し、該仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および送信完了デスクリプタ・キャッシュ・ウィンドウとして参照させるデスクリプタ・キャッシュ機構を備えることを特徴とする。
【0013】
さらに、本発明の通信制御装置は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、ネットワーク媒体を制御してパケットの送受信を行うMACコントローラと、I/Oバスと通信制御装置間の制御を行うI/Oバス・コントローラと、前記I/Oバス・コントローラを介してホスト・メモリとのデータ転送を行うDMAコントローラと、ホスト・メモリ上のデスクリプタ・チェーンにあるデスクリプタが仮想デスクリプタ・ギャザー・リストの一部としてキャッシュされるデスクリプタ・キャッシュ・メモリと、前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを自動的に辿って解析することによりデスクリプタ・ギャザー・リストを仮想的に構築し、該仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照させるデスクリプタ・キャッシュ・コントローラと、前記デスクリプタ・キャッシュ・コントローラから渡された受信デスクリプタより受信パケットをストアすべき前記ホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知してDMAライト動作を起動することにより前記I/Oバス・コントローラを介して受信パケットを前記ホスト・メモリに転送し、前記デスクリプタ・キャッシュ・コントローラから渡された送信デスクリプタより送信パケットがストアされているホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知することにより送信パケットを送信するネットワーク・プロセッサ・ユニットとを有することを特徴とする。
【0014】
さらにまた、本発明の通信制御装置は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、ネットワーク媒体を制御してパケットの送受信を行うMACコントローラと、I/Oバスと通信制御装置間の制御を行うI/Oバス・コントローラと、前記I/Oバス・コントローラを介してホスト・メモリとのデータ転送を行うDMAコントローラと、ホスト・メモリ上のデスクリプタ・チェーンにあるデスクリプタが仮想デスクリプタ・ギャザー・リストの一部としてキャッシュされるデスクリプタ・キャッシュ・メモリと、前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを自動的に辿って解析することによりデスクリプタ・ギャザー・リストを仮想的に構築し、該仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照させるデスクリプタ・キャッシュ・コントローラと、前記デスクリプタ・キャッシュ・コントローラから渡された受信デスクリプタより受信パケットをストアすべき前記ホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知してDMAライト動作を起動することにより前記I/Oバス・コントローラを介して受信パケットを前記ホスト・メモリに転送し、前記デスクリプタ・キャッシュ・コントローラから渡された送信デスクリプタより送信パケットがストアされているホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知することにより送信パケットを送信するネットワーク・プロセッサ・ユニットとを有することを特徴とする。
【0015】
また、本発明の通信制御装置は、前記デスクリプタ・キャッシュ・コントローラが、各デスクリプタ・キャッシュ・ウィンドウのスライド・モードとして、指定サイズだけウィンドウをスライドさせるニューメリック・ウィンドウ・スライド・モードと、指定デスクリプタ位置へウィンドウを直接動かすダイレクト・ウィンドウ・スライド・モードとを設けることを特徴とする。
【0016】
さらに、本発明の通信制御装置は、ホストによりハッシュ・パターンが登録されるハッシュ・テーブル・メモリと、通知されたパターンを元に前記ハッシュ・テーブル・メモリに対してハッシュ・サーチを掛けてコネクションを特定し、そのコネクション番号を前記デスクリプタ・キャッシュ・コントローラへ通知するハッシュ・サーチ・エンジンとをさらに備え、前記デスクリプタ・キャッシュ・コントローラが、受信パケットからコネクションを特定して受信デスクリプタをホスト・メモリからプリフェッチするプリフェッチ機構を有することを特徴とする。
【0017】
一方、本発明のデスクリプタ制御方法は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、前記通信制御装置のサポートするプロトコルがコネクション・レスのプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより受信用および送信用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、前記受信用および送信用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程とを含むことを特徴とする。
【0018】
また、本発明のデスクリプタ制御方法は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、前記通信制御装置のサポートするプロトコルがコネクション・オリエンテッドなプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、前記受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程とを含むことを特徴とする。
【0019】
さらに、本発明のデスクリプタ制御方法は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、前記通信制御装置のサポートするプロトコルがコネクション・レスのプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより受信用および送信用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする工程と、前記受信用および送信用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程とを含むことを特徴とする。
【0020】
さらにまた、本発明のデスクリプタ制御方法は、ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、前記通信制御装置のサポートするプロトコルがコネクション・オリエンテッドなプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする工程と、前記受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程とを含むことを特徴とする。
【0021】
また、本発明のデスクリプタ制御方法は、各デスクリプタ・キャッシュ・ウィンドウのスライド・モードとして、指定サイズだけウィンドウをスライドさせるニューメリック・ウィンドウ・スライド・モードと、指定デスクリプタ位置へウィンドウを直接動かすダイレクト・ウィンドウ・スライド・モードとを設けることを特徴とする。
【0022】
他方、本発明のプログラムは、コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理とを実行させることを特徴とする。
【0023】
また、本発明のプログラムは、コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする処理と、前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理とを実行させることを特徴とする。
【0024】
さらに、本発明のプログラムは、コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理とを実行させることを特徴とする。
【0025】
さらにまた、本発明のプログラムは、コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを自動的に辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする処理と、前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理とを実行させることを特徴とする。
【0026】
また、本発明のプログラムは、各デスクリプタ・キャッシュ・ウィンドウのスライド・モードとして、指定サイズだけウィンドウをスライドさせるニューメリック・ウィンドウ・スライド・モードと、指定デスクリプタ位置へウィンドウを直接動かすダイレクト・ウィンドウ・スライド・モードとを設けることを特徴とする。
【0027】
本発明による通信制御装置およびデスクリプタ制御方法では、パケットの送受信にホストから通知されるデスクリプタにより送受信を行う通信制御装置において、デスクリプタ本体がホストの物理メモリ(ホスト・メモリ)上に散在し、それぞれがアドレス・ポインタによりチェーンされたデスクリプタ・チェーンに対し、仮想的なデスクリプタ・ギャザー・リストを構築してデスクリプタ・キャッシュとし、仮想デスクリプタ・ギャザー・リストの一部を参照するウィンドウを設けることにより、通信制御装置内に組み込まれたファームウェアがデスクリプタ・チェーンを辿ることなく、送受信時に必要となるデスクリプタにアクセスすることが可能となる。
【0028】
また、通信制御装置がサポートするプロトコルに合わせ、1通信コネクション(以下、単にコネクションという)に対し、複数種類の仮想デスクリプタ・ギャザー・リストを構築することにより、送信および受信のデスクリプタ管理の容易性が増す。
【0029】
さらに、コネクション毎にデスクリプタ・キャッシュ機構を構成し、送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリから読み込むプリフェッチ機構を設けることにより、ホストからのデスクリプタ取得の遅延を隠蔽する。
【0030】
以上の機能により、通信制御装置におけるデスクリプタの解析およびデスクリプタ取得のオーバーヘッドを大幅に削減し、通信性能の向上を図ることが可能となる。
【0031】
単一または複数のホスト・プロセッサ,メモリ・コントローラ,ホスト・メモリ,およびI/O(Input/Output)コントローラからなるコンピュータ・システム(基本構成は図2を参照。以後、通信制御装置を除くコンピュータ・システム部分をホストと呼ぶ)に対し、I/Oデバイスとして接続される通信制御装置においては、受信時は予めホストから受信パケットのストア先としてデスクリプタによりメモリ・アドレスおよびバッファ・サイズが示される。デスクリプタは、次に続くデスクリプタのアドレス・ポインタを持っており、受信デスクリプタ・チェーンとして通信制御装置に通知される。送信も同様に、送信データがストアされているメモリ・アドレスおよびデータ・サイズが示される送信デスクリプタ・チェーンとして通信制御装置に通知される。
【0032】
本発明の対象となる通信制御装置は、内部にパケット送受信制御用のネットワーク・プロセッサ・ユニット(基本構成は図1)を有し、ホストより通知されたデスクリプタをリードし、これを解析してパケットの送受信を行うものである。
【0033】
送受信の際、ネットワーク・プロセッサ・ユニット自身が、ホストによってホスト・メモリ上に生成されたデスクリプタ・チェーンを辿る必要が無いように、通信制御装置内にデスクリプタ・キャッシュ機構を構成する。デスクリプタ・キャッシュ機構は、ホスト・メモリ内に散在するデスクリプタをチェーンの順番通りに連続して並べたデスクリプタ・ギャザー・リストを仮想的に構築し、仮想デスクリプタ・ギャザー・リストの一部をウィンドウとしてネットワーク・プロセッサ・ユニットに参照させる機能である。
【0034】
このウィンドウは、通信制御装置が処理するプロトコルに適した実装がなされる。例えば、Ethernet(登録商標)/IP/UDP(User Datagram Protocol)等のコネクション・レスのプロトコルでは、1コネクション毎に、受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウを実装する。TCP等のコネクション・オリエンテッドなプロトコルでは、さらに送信完了用デスクリプタ・キャッシュ・ウィンドウを実装する。これらデスクリプタ・キャッシュ・ウィンドウ・セットは、通信制御装置がサポートするコネクション数だけ実装する。
【0035】
これにより、ネットワーク・プロセッサ・ユニットは、コネクション番号,およびウィンドウのオフセットを指定することにより、任意のデスクリプタをリードすることが可能となる。また、デスクリプタを消費する度にウィンドウを任意のサイズだけスライドさせるニューメリック・ウィンドウ・スライド・モードと、特定のディスクリプタ位置へダイレクトにスライドさせるダイレクト・ウィンドウ・スライド・モードとを持たせる。前者は特にEthernet(登録商標)/IP/UDP等のコネクション・レスのプロトコルの送受信に適したモードであり、後者は特にTCP等のコネクション・オリエンテッドなプロトコルの送受信に特化したモードである。
【0036】
これらのデスクリプタ・キャッシュ機構により、ネットワーク・プロセッサ・ユニットは、デスクリプタ・チェーンの解析の必要が無くなり、ファームウェアの容易性とデスクリプタに関する処理性能の向上とを図ることが可能となる。
【0037】
また、通信制御装置にハッシュ・サーチ・エンジンなどを搭載し、受信パケットのコネクションを自動的に判別する機能を有する場合は、実際にネットワーク・プロセッサ・ユニットに受信処理通知が渡される前に、事前に該当コネクションの受信デスクリプタをホスト・メモリからリードするプリフェッチ機構を持たせる。
【0038】
同様に送信の際も、実際にネットワーク・プロセッサ・ユニットに送信処理通知が渡される前に、ホストからの送信要求が通信制御装置に通知された時点でコネクションを判別し、送信デスクリプタをホスト・メモリからプリフェッチするプリフェッチ機構を持たせる。
【0039】
以上により、ネットワーク・プロセッサ・ユニットのデスクリプタ取得の遅延を隠蔽することが可能となり、結果的に通信制御装置の通信性能の向上を図ることが可能となる。
【0040】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0041】
[第1の実施の形態]
図2は、本発明の第1の実施の形態に係る通信制御装置(ネットワーク・インタフェース・デバイス)100を含むシステムの基本構成を示す。このシステムは、単一または複数のCPU10がプロセッサ・バス20を介して、メモリ・コントローラ30に接続されている。メモリ・コントローラ30は、CPU10と、ホスト・メモリ40と、I/Oコントローラ50との間の制御を行う。I/Oコントローラ50には、I/Oバス60を介して単一または複数のI/Oデバイス70が接続される。通信制御装置100もI/Oデバイスの一種であり、この場合、Ethernet(登録商標),LAN等のネットワーク媒体150の制御を行うI/Oデバイスとして位置づけられる。
【0042】
なお、このシステムは一例であり、本発明は上位システムには依存しない。また、例として挙げたシステムは、いわゆるパーソナルコンピュータ,ワークステーション,サーバのシステムと何ら変わるところはなく、この場合、I/Oバス60は、PCI(Peripheral Component Interconnect)バスまたはPCI−Xバスで構成されるのが一般的であり、ネットワーク媒体150は、インターネットやLAN等のEthernet(登録商標)であることが一般的である。
【0043】
以後、この基本システム中、I/Oバス60より上位側を単純にホストと呼ぶ。
【0044】
図1は、通信制御装置100の構成を示す回路ブロック図である。通信制御装置100は、ネットワーク媒体150を制御してパケットの送受信を行うMAC(Media Access Control)コントローラ104と、受信パケットおよび送信パケットをストアする送信/受信パケット・バッファ103と、I/Oバス60と通信制御装置10間の制御を行うI/Oバス・コントローラ101と、I/Oバス・コントローラ101を介してホスト・メモリ40とのデータ転送を行うDMA(Direct Memory Access)コントローラ102と、送受信のスケジューリングを行う送信/受信スケジューラ106と、受信パケットの解析,ホスト・メモリ40へのデータ転送の起動,および送信データ転送の起動と送信処理などを行うネットワーク・プロセッサ・ユニット105と、デスクリプタ・キャッシュ機構の制御を行うデスクリプタ・キャッシュ・コントローラ107と、デスクリプタ本体をキャッシュするデスクリプタ・キャッシュ・メモリ108とから成る。
【0045】
図3は、ホストのCPU10が生成するデスクリプタのフォーマットの一例を示す図である。このデスクリプタは、デスクリプタを消費したことをホストへ通知するためのダン・ビット(Done Bit)200,デスクリプタの属性などを設定するコントロール・コード部201,デスクリプタ・チェーンのための次のデスクリプタのアドレス・ポインタであるネクスト・デスクリプタ・アドレス202,ならびに受信デスクリプタの場合は受信パケットのストア先を示し、送信デスクリプタの場合はパケットとして送信すべきデータがストアされているアドレスを示すバッファ・アドレスおよびバッファ・サイズの複数の組203とから成っている。ホストのCPU10は、送受信デスクリプタをホスト・メモリ40上に生成する。ネットワーク・プロセッサ・ユニット105は、パケットの送受信の際にデスクリプタを参照し、受信の場合は受信パケット・データをホスト・メモリ40へ転送する。この時、ネットワーク・プロセッサ・ユニット105は、ダン・ビット200をDMAコントローラ102を介してDMAライト(Write)でセットし、ホストは割り込みなどをきっかけにダン・ビット200を参照してデスクリプタの完了を認知すると送受信それぞれに対する処理を実行する。
【0046】
図4は、本発明によるデスクリプタ・キャッシュ機構の概念を解説した図である。ホストにより生成されるデスクリプタは、ホスト・メモリ40上にデスクリプタ・チェーンを構成しており、その物理的なストア位置は散在している(符号300参照)。デスクリプタ・キャッシュ・コントローラ107は、自動的にデスクリプタ・チェーンを辿り、仮想デスクリプタ・ギャザー・リスト301を構築する。この仮想デスクリプタ・ギャザー・リスト301は、仮想的なものであり、実体は存在しない。
【0047】
デスクリプタ・キャッシュのサイズは、デスクリプタ・キャッシュ・メモリ108の容量と通信制御装置100がサポートするトータルのコネクション数との関係で決まる。従って、実際には、仮想デスクリプタ・ギャザー・リスト301中、コネクションあたりのキャッシュ・サイズ分だけデスクリプタ・キャッシュ・メモリ108へキャッシュされる。
【0048】
ネットワーク・プロセッサ・ユニット105は、キャッシュされた仮想デスクリプタ・ギャザー・リスト301の一部をウィンドウという概念として参照することが可能であり、符号302は1コネクション分のウィンドウを示している。
【0049】
ここで、ウィンドウは、単にそのコネクションに割り当てられたキャッシュ・サイズのメモリである。例えば、ウィンドウに2KBが割り当てられたとすると、デスクリプタ・キャッシュ・コントローラ107は、ホストより通知されたデスクリプタを読み、デスクリプタ・キャッシュにストアする。その際、ネクスト・デスクリプタ・アドレス202を参照することにより、続きのデスクリプタのアドレスを得、さらにデスクリプタを2KB分読んでいく。結果として、ネットワーク・プロセッサ・ユニット105から見れば、デスクリプタ・チェインを繋げた仮想デスクリプタ・ギャザー・リスト301の2KB分がデスクリプタ・キャッシュに存在し、あたかもウィンドウとして見えることになる。
【0050】
1コネクションにつき、受信デスクリプタをキャッシュする受信デスクリプタ・キャッシュ・ウィンドウと、送信デスクリプタをキャッシュする送信デスクリプタ・キャッシュ・ウィンドウとの2種類のウィンドウが構成される。
【0051】
また、TCP等のコネクション・オリエンテッドなプロトコルでは、送信の完了は通信相手からのACKパケットにより完了し、その際、過去に参照した送信デスクリプタを再度参照する必要があり、送信デスクリプタ・キャッシュ・ウィンドウとは参照ウィンドウ位置が異なる、送信完了デスクリプタ・キャッシュ・ウィンドウが構成される。これら3種類のデスクリプタ・キャッシュ・ウィンドウからなるデスクリプタ・キャッシュ・ウィンドウ・セットが通信制御装置100がサポートするコネクション数分存在し、図5に示すように、デスクリプタ・キャッシュ・メモリ108にマップされる。
【0052】
ネットワーク・プロセッサ・ユニット105は、デスクリプタ・キャッシュ・メモリ108のアドレス指定により、任意のコネクションのデスクリプタ・キャッシュ・ウィンドウをリードすることが可能であり、この場合、ネットワーク・プロセッサ・ユニット105へ返されるデスクリプタのフォーマットは、図6で示されるフォーマットとなる。
【0053】
図6のデスクリプタは、デスクリプタを消費したことをホストへ通知するためのダン・ビット(Done Bit)400,デスクリプタの属性などを設定するコントロール・コード部401,デスクリプタ自身の物理アドレスを示すデスクリプタ・アドレス402,ならびに受信デスクリプタの場合は受信パケットのストア先を示し、送信デスクリプタの場合はパケットとして送信すべきデータがストアされているアドレスを示すバッファ・アドレスおよびバッファ・サイズの複数の組403とから成っている。このデスクリプタは、図3に示したホストが生成するデスクリプタとは異なり、符号402の部分がデスクリプタ自身の物理アドレスを示す。デスクリプタ自身の物理アドレスは、ネットワーク・プロセッサ・ユニット105がデスクリプタ使用後の終了ステータスをホスト・メモリ40へ書き込む際に必要となる。
【0054】
これにより、ネットワーク・プロセッサ・ユニット105は、ホスト・メモリ40上のデスクリプタ・チェーンを辿る必要が無くなり、ウィンドウ位置を制御するだけで自動的に任意のデスクリプタをリードすることが可能となる。
【0055】
なお、デスクリプタ・キャッシュ・コントローラ107は、辿るべきチェーン先のネクスト・デスクリプタ・アドレスを内部的に保持し、自動的にデスクリプタ・チェーンを辿ってデスクリプタをキャッシュしていく。
【0056】
各ウィンドウの制御は、図7で示すデスクリプタ・キャッシュ・コントロール・レジスタで行われる。このレジスタには、コネクション番号を示すPCB(Protocol Contorol Block) ID(IDentification)フィールドと、ウィンドウのスライド指示起動を示し、ウィンドウ制御が完了されるとリセットされるスタート/ビジー・ビットSと、送信デスクリプタ・キャッシュ・ウィンドウ,受信デスクリプタ・キャッシュ・ウィンドウ,または送信完了デスクリプタ・キャッシュ・ウィンドウを選択するディレクション・フィールドDと、ニューメリック・ウィンドウ・スライド・モードまたはダイレクト・ウィンドウ・スライド・モードのいずれかを選択するビットWと、ダイレクト・ウィンドウ・スライド・モード時に指定するデスクリプタの物理アドレスを設定するフィールドと、ニューメリック・ウィンドウ・スライド・モードの場合のスライド・サイズをセットするフィールドOffsetとを持つ。
【0057】
デスクリプタ・キャッシュ機構のウィンドウ・スライド・モードには、ニューメリック・ウィンドウ・スライド・モードと、ダイレクト・ウィンドウ・スライド・モードとがあり、それぞれ挙動が異なる。
【0058】
図8は、ニューメリック・ウィンドウ・スライド・モードを示したものである。ニューメリック・ウィンドウ・スライド・モードは、指定デスクリプタ数分、下方向にウィンドウをスライドさせるモードである。仮想デスクリプタ・ギャザー・リスト301に対し、太枠線がネットワーク・プロセッサ・ユニット105から参照可能なウィンドウを示している。符号600〜602は、パケットを送信および受信する度にデスクリプタを消費し、デスクリプタ・キャッシュ・コントロール・レジスタにより、ウィンドウをスライドさせた状況を示している。ニューメリック・ウィンドウ・スライド・モードは、Ethernet(登録商標)/IP Raw/UDPのような、送受信を完了すると即デスクリプタを消費可能(ここでいう消費とは、通信制御装置100でデスクリプタ指示の処理を終え、ホストにその旨を通知することを指す)であり、二度とそのデスクリプタを参照する必要のないコネクション・レスのプロトコルに向いたウィンドウ制御方法である。なお、デスクリプタが枯渇した状態603になると、デスクリプタ・キャッシュ・コントローラ107は、オール”0”のデスクリプタを返す。
【0059】
一方、図9は、ダイレクト・ウィンドウ・スライド・モードを示したものである。パケットの送信を例にとって説明すると、ウィンドウ位置700からウィンドウ位置702までニューメリック・ウィンドウ・スライド・モードによりウィンドウをスライドさせ、パケットを送信したとする。しかし、ネットワーク上の何らかの障害によりパケットが喪失し、パケットの送信相手(リモート・ホスト)よりパケットの再送要求が行われる時がある。例えば、再送要求のあったパケットが図9のデスクリプタ#0が示す送信である場合、ネットワーク・プロセッサ・ユニット105は、デスクリプタ・キャッシュ・コントロール・レジスタへダイレクト・ウィンドウ・スライド・モードの指示と、デスクリプタ#0の物理アドレスとを指定することにより、ウィンドウの先頭をデスクリプタ#0の先頭へ直接移動させることが可能である。また、再送後は、再びデスクリプタ#10のウィンドウ位置702へダイレクト・ウィンドウ・スライド・モードによりウィンドウを戻し、引き続き送信を行うことが可能である。このように、ダイレクト・ウィンドウ・スライド・モードは、TCPのように、再送要求を持つコネクション・オリエンテッドなプロトコルに向いたウィンドウ制御方法である。
【0060】
さらに、コネクション・オリエンテッドなプロトコルの特徴として、送信パケットを送信相手が受信したことを示すACKパケットの存在が挙げられる。コネクション・オリエンテッドなプロトコルでは、パケットをネットワーク送信しただけでは、送信が完了したことにはならず、送信相手より該当するパケットに対するACKパケットが返されて送信が完了する。従って、この間、デスクリプタの消費は保留される。しかし、送信処理時はデスクリプタを順にスライドして行くため、消費が保留されたデスクリプタはウィンドウ外となってしまう。ACKパケットを受信した時点で再度ウィンドウをスライドしていたのでは、デスクリプタ・キャッシュのフラッシュが頻発し、キャッシュ効率が著しく下がってしまう。これを避けるために、送信側には送信完了デスクリプタ・キャッシュ・ウィンドウを別途構成する。
【0061】
図10は、送信デスクリプタ・キャッシュ・ウィンドウ710と送信完了デスクリプタ・キャッシュ・ウィンドウ711との関係を示した図である。再送などの無い送信時は送信デスクリプタ・キャッシュ・ウィンドウ710をニューメリック・ウィンドウ・スライド・モードによりウィンドウを進めつつ、送信を行っていく。一方、送信完了デスクリプタ・キャッシュ・ウィンドウ711は、送信済みだが、送信完了をホストへ通知していない、未消費のデスクリプタの参照を可能とするウィンドウであり、ネットワーク・プロセッサ・ユニット105は、ACKパケットを受信するたびに、このウィンドウを参照し、ホストへ送信完了通知を行う。送信完了デスクリプタ・キャッシュ・ウィンドウ711により、効率よく送信デスクリプタをキャッシュすることが可能となる。
【0062】
図11は、一般的なTCPにおける送信パケットのスライディング・ウィンドウ(Sliding Window)の概念を示す図である。ちなみに、TCPのスライディング・ウィンドウはTCP/IPの用語であり、本発明におけるデスクリプタ・キャッシュ・ウィンドウとは全く別の概念である。図11中の四角形一つがデスクリプタの一つを表す。Sent/ACKedは既にパケットが送信され、ACKパケットを受信し、ホストへ送信完了通知したデスクリプタを示す。従って、ネットワーク・プロセッサ・ユニット105は、この領域のデスクリプタを二度と参照する必要がない。Sent/UnACKedは、パケットの送信を完了したが、送信相手からのACKパケットを受信していない状況のデスクリプタである。ネットワーク・プロセッサ・ユニット105は、少なくとも次のACKパケットを受信した際に、どのデスクリプタに対応するACKパケットなのかを調べ、対応するデスクリプタの送信完了通知をホストへ行うために、デスクリプタ800からデスクリプタ801までのデスクリプタ・アドレスを記憶しておく必要がある。UnSent/Insideは、まだ未送信だが、送信相手から通知されたTCP送信ウィンドウ内にあるデスクリプタが存在していることを示す。ネットワーク・プロセッサ・ユニット105は、SND.NXTからACK+Window−1までの送信を行う。ネットワーク・プロセッサ・ユニット105は、送信ポイントとしてSND.NXT地点のデスクリプタ802のアドレスを記憶しておく必要がある。
【0063】
図12は、実際のTCPにおける送信パケットの送信シーケンスを示している。ネットワーク・プロセッサ・ユニット105は、送信デスクリプタ・キャッシュ・ウィンドウ900をニューメリック・ウィンドウ・スライド・モードで順にデスクリプタをリードしながら送信相手が受信可能範囲まで送信を行っていく。一方、送信相手よりACKパケットを受信した場合は、送信完了デスクリプタ・キャッシュ・ウィンドウ901を参照し、対応するデスクリプタをリードしてデスクリプタを消費していく。送信完了デスクリプタ・キャッシュ・ウィンドウ901は、過去に送信デスクリプタ・キャッシュ・ウィンドウ900が辿ったデスクリプタをリードしていることになる。ネットワーク上でパケットの喪失などが無い場合、両ウィンドウはニューメリック・ウィンドウ・スライド・モードのみでデスクリプタ・キャッシュ・ウィンドウをスライドしていく。
【0064】
以上、通信制御装置100内のデスクリプタ・キャッシュ機構に対し、受信用,送信用,送信完了用の3種類の特徴的なデスクリプタ・キャッシュ・ウィンドウを設けることにより、ネットワーク・プロセッサ・ユニット105は、ホスト・メモリ40上に散在するデスクリプタ・チェーンを辿る必要が一切無くなり、その分、通信処理に高いウェイトを置くことが可能となる。また、デスクリプタ・キャッシュ・ウィンドウは、コネクション・レス/コネクション・オリエンテッドなどの各プロトコル処理を考慮して構成されており、結果的にネットワーク・プロセッサ・ユニット105のファームウェアの簡易化にも寄与する。
【0065】
なお、このように構成された第1の実施の形態に係る通信制御装置100の詳しい動作の説明については、後述する第2の実施の形態に係る通信制御装置100’の動作の説明と重複するので、第2の実施の形態に係る通信制御装置100’の動作の説明をもって代えることとする。
【0066】
ところで、第1の実施の形態に係る通信制御装置100のデスクリプタ・キャッシュ機構は、サポートするコネクション数のデスクリプタ・キャッシュ・ウィンドウ・セットを持っている。各コネクションのデスクリプタは、ネットワーク・プロセッサ・ユニット105が必要とする時点で常にキャッシュされていることが性能的に望まれる。これに対して、ホストから通知されたデスクリプタを逐一キャッシュする方法もあるが、例えば、送信と違い、受信デスクリプタはパケット受信時のみに参照されるため、すぐに必要となるとは限らない。このため、ホストから通知された受信デスクリプタを逐一キャッシュすると、ホストと通信制御装置100間のI/Oバス60の負荷が増え、本来パケット・データの送受信に使用されるべきバスの帯域をデスクリプタのリードで使用してしまう可能性がある。
【0067】
[第2の実施の形態]
図13は、本発明の第2の実施の形態に係る通信制御装置100’の構成を示す回路ブロック図である。本実施の形態に係る通信制御装置100’は、デスクリプタが必要とされるときだけ、そのコネクションに対応するデスクリプタをリード可能とするように、図1に示した第1の実施の形態に係る通信制御装置100内に、ハッシュ・サーチ・エンジン109と、ハッシュ・テーブル・メモリ110とを付加して構成されている。さらに、デスクリプタ・キャッシュ・コントローラ107にデスクリプタのプリフェッチ機構が追加されている。
【0068】
デスクリプタ・キャッシュ・コントローラ107は、ホストより送信デスクリプタの通知を受けると、直ちに送信デスクリプタのプリフェッチを開始する。送信デスクリプタの通知は、すなわちパケットの送信を意味することから、送信に関しては逐一デスクリプタをキャッシュする。受信に関しては、デスクリプタ・キャッシュ・コントローラ107は、ハッシュ・サーチ・エンジン109によるコネクションの特定をもって受信デスクリプタのプリフェッチを起動する。詳しくは、ハッシュ・サーチ・エンジン109から送信/受信スケジューラ106を介してデスクリプタ・キャッシュ・コントローラ107に通知され、デスクリプタ・キャッシュ・コントローラ107が実際のデスクリプタ・キャッシュの制御を行って、実際のプリフェッチ要求を生成することにより、DMAコントローラ102を介してI/Oバス60上にリードが発行される。
【0069】
ホストは、予めEthernet(登録商標)/IP/UDP/TCPなどのコネクションを特定するために、例えばMACアドレス,IPアドレス,ポートID等のハッシュのマッチング・パターン(ハッシュ・パターン)を、ネットワーク・プロセッサ・ユニット105を介してハッシュ・テーブル・メモリ110に登録する。
【0070】
MACコントローラ150は、パケットを受信すると、受信パケットのヘッダからMACアドレス,IPアドレスなどを抜き出してパターンとしてハッシュ・サーチ・エンジン109へ通知する。
【0071】
ハッシュ・サーチ・エンジン109は、通知されたパターンを元にハッシュ・テーブル・メモリ110に対してハッシュ・サーチを掛けてコネクションを特定し、デスクリプタ・キャッシュ・コントローラ107へコネクション番号(PCBID)を通知する。ハッシュ・サーチは、一般的なもので、パケットのヘッダからプロトコル別にパラメータを引き抜き、ハッシュ演算に掛けてアドレスを算出し、そこをハッシュ・テーブル・メモリ110からリードして通知されたパターンと一致するかどうかを比較する。
【0072】
デスクリプタ・キャッシュ・コントローラ107は、通知されたコネクション番号を元に、受信デスクリプタをホスト・メモリ40からリードする。
【0073】
次に、このように構成された第2の実施の形態に係る通信制御装置100’の動作について説明する。ただし、ここでは、ネットワーク媒体150がEthernet(登録商標)である場合を例として説明する。
【0074】
基本的にパケットの受信パスと送信パスは異なるので分けて説明する。なお、図1に示したハッシュ・サーチ機構のない第1の実施の形態に係る通信制御装置100では、ネットワーク・プロセッサ・ユニット105のファームウェア自身がハッシュ・サーチ相当の動作を行うことになる。従って、処理の大部分がファームウェアに依存する第1の実施の形態に係る通信制御装置100より、ある程度ハードウェアが受信処理をサポートする第2の実施の形態に係る通信制御装置100’の方が高性能であるといえる。
【0075】
(1) 受信動作
【0076】
1. MACコントローラ104は、ネットワーク媒体150よりパケットを受信する。
【0077】
2. MACコントローラ104は、パケットのEthernet(登録商標)ヘッダを調べ、デスティネーションMACアドレスが自分宛かどうかを調べる。MACコントローラ104には、自通信制御装置100のMACアドレスを設定するレジスタが存在している。このレジスタは、ホストにより設定される。(Ethernet(登録商標)の通信制御装置100としては自明な機能のために特に記載していない。)
【0078】
3. 自分宛の場合、MACコントローラ104は、送信/受信パケット・バッファ103へ受信パケットをストアする。
【0079】
4. これと同時に、MACコントローラ104は、受信したパケットのプロトコルを調査し、Ethernet(登録商標)/IP Raw/TCP/UDPなどのプロトコルに分類し、各プロトコルに応じたハッシュ・パターンを抜き出してハッシュ・サーチ・エンジン109に情報をフォワードする。この情報はパケット・インフォメーションと呼ばれ、ハッシュ・パターンの他に、受信パケットをストアした送信/受信パケット・バッファ103のアドレスを付加する。例えば、プロトコルがIP Rawである場合、ハッシュ・パターンは、プロトコルIDとなる。また、プロトコルがTCP/UDPである場合、ハッシュ・パターンは、ソースIPアドレス,デスティネーションIPアドレス,ソース・ポート,およびデスティネーション・ポートとなる。
【0080】
5. ハッシュ・サーチ・エンジン109は、パケット・インフォメーション内のハッシュ・パターンを使用してハッシュ・サーチを行い、コネクション番号(PCB ID)を特定し、これをパケット・インフォメーションに付加して送信/受信スケジューラ106へフォワードする。なお、ハッシュ・パターンおよびコネクション番号の登録は、予めホストにより行われる。(登録方法やハッシュ・サーチ・エンジン109の詳細は特に触れないが、ホストからのハッシュ・パターン登録要求に対し、その登録手段がハッシュ・サーチ・エンジン109に設けられている。)
【0081】
6. 送信/受信スケジューラ106は、ホストからの送信要求とネットワーク媒体150からの受信要求とに対し、ネットワーク・プロセッサ・ユニット105への処理ディスパッチのスケジューリングを行う。受信要求の場合は、同時にネットワーク・プロセッサ・ユニット105へパケット・インフォメーションもフォワードする。
【0082】
7. 送信/受信スケジューラ106へパケット・インフォメーションがフォワードされた時点で、受信パケットのコネクション番号をデスクリプタ・キャッシュ・コントローラ107へ通知する。もし、デスクリプタ・キャッシュ・メモリ108内にそのコネクション番号のデスクリプタが存在しない場合は、DMAコントローラ102を起動して、そのコネクション番号のデスクリプタをホスト・メモリ40からリードしてデスクリプタ・キャッシュ・メモリ108にプリフェッチ(ストア)する。(この時に、デスクリプタ・キャッシュ・コントローラ107は、デスクリプタ・チェーンを辿る動作を行うことになる。)なお、各コネクション番号毎の受信デスクリプタ・チェーンがホスト・メモリ40上には存在しており、予めコネクション番号,およびそのデスクリプタのアドレスはホストによりデスクリプタ・キャッシュ・コントローラ107に通知されているものとする。これは、一般的には、ドアベル(Doorbell)と呼ばれる通知方法で、そのためのハードウェアも実装されているが、ここでは特に触れない。
【0083】
8. 送信/受信スケジューラ106より受信処理ディスパッチを受け取ったネットワーク・プロセッサ・ユニット105は、パケット・インフォメーションを参照し、コネクション番号(PCB ID)や受信パケットの詳細情報をリードする。
【0084】
9. 送信/受信パケット・バッファ103にストアされている受信パケットをホスト・メモリ40へ転送するために、ネットワーク・プロセッサ・ユニット105は、受信デスクリプタを参照する。受信デスクリプタは、各コネクション毎に存在し、受信パケットをストアすべきホスト・メモリ40のアドレスやサイズを示している。ネットワーク・プロセッサ・ユニット105は、コネクション番号を元に、リードすべき受信デスクリプタ・キャッシュ・ウィンドウのアドレスを生成し、受信デスクリプタをリードする。
【0085】
10. 上記7で受信デスクリプタのプリフェッチが行われていることから、デスクリプタ・キャッシュ・コントローラ107は、デスクリプタ・キャッシュ内の受信デスクリプタ103をネットワーク・プロセッサ・ユニット105へ渡す。
【0086】
11. ネットワーク・プロセッサ・ユニット105は、受信デスクリプタより、受信パケットをストアすべきホスト・メモリ40のアドレスを得、これをDMAコントローラ102へ通知して、DMAライト動作を起動する。この時、通知される情報としては、ホスト・メモリ40のアドレス,転送サイズ,および受信パケットの収められた送信/受信パケット・バッファ103のアドレスである。
【0087】
12. DMAライト要求はI/Oバス・コントローラ101へ渡り、先の情報を元に送信/受信パケット・バッファ103内の受信パケット・データがホスト・メモリ40へ転送される。
【0088】
13. 以上により、受信パケットがホストへ渡る。なお、特に本発明から外れるので触れていないが、実際にはホスト側へは、デスクリプタの完了通知,および割り込みの通知も行われる。デスクリプタの完了通知は、ホスト上のデスクリプタのダン・ビット・フィールド(図3の符号200参照)をセットし、消費したデスクリプタのホスト・メモリ40上のアドレスを、別途ホストへの通知手段で示す。また、割り込みの通知は、割り込みをホストのCPU10へ上げて、受信デスクリプタを消費し、受信パケットをデスクリプタの指示通りホスト・メモリ40へ転送したことを通知する。
【0089】
14. ネットワーク・プロセッサ・ユニット105は、受信デスクリプタ・キャッシュ・ウィンドウに対してウィンドウ・スライドを実施する。これは、ウィンドウの先頭ディスクリプタを消費し、参照する必要が無くなったことに依る。要は、次に使うべきデスクリプタを受信デスクリプタ・キャッシュ・ウィンドウ内に捕捉しておく。このウィンドウ・スライドを行うことにより、ネットワーク・プロセッサ・ユニット105は、実際にはホスト・メモリ40上にあるデスクリプタ・チェーンを辿る必要が無くなる。
【0090】
(2) 送信動作
【0091】
送信動作は受信と逆方向であるが、受信に比して若干シンプルである。
【0092】
1. ホストのCPU10は、送信データをホスト・メモリ40上に用意し、これを示す受信デスクリプタも(必要であれば受信デスクリプタ・チェーンとして)ホスト・メモリ40上に生成する。
【0093】
2. 送信要求をドアベルで通知する。実際には、I/Oバス・コントローラ101にある送信ドアベル・レジスタへ、コネクション番号,デスクリプタ・チェーンの先頭のデスクリプタをストアしてあるホスト・メモリ40のアドレス,およびチェーンしてあるデスクリプタの総数をライトする。
【0094】
3. 送信ドアベル通知は、送信/受信スケジューラ106とデスクリプタ・キャッシュ・コントローラ107との両者へ通知される。デスクリプタ・キャッシュ・コントローラ107は、そのコネクション番号のデスクリプタがデスクリプタ・キャッシュに存在しない場合、またはデスクリプタ・キャッシュにまだ空きがある場合、直ちにDMAコントローラ102を起動してホスト・メモリ40からデスクリプタをリードしてデスクリプタ・キャッシュ・メモリ108にプリフェッチ(ストア)する。(この時に、デスクリプタ・キャッシュ・コントローラ107は、デスクリプタ・チェーンを辿る動作を行うことになる。)
【0095】
4. 送信/受信スケジューラ106から送信要求がネットワーク・プロセッサ・ユニット105に通知される。この時の情報としては、コネクション番号のみがフォワードされる。
【0096】
5. ホスト・メモリ40にストアされている送信パケットをネットワーク媒体150へ出力するために、ネットワーク・プロセッサ・ユニット105は、送信デスクリプタを参照する。送信デスクリプタは、各コネクション毎に存在し、送信パケットがストアされているホスト・メモリ40のアドレスやサイズを示している。ネットワーク・プロセッサ・ユニット105は、コネクション番号を元に、リードすべき送信デスクリプタ・キャッシュ・ウィンドウ900のアドレスを生成し、送信デスクリプタをリードする。
【0097】
6. 上記3で送信デスクリプタのプリフェッチが行われていることから、デスクリプタ・キャッシュ・コントローラ107は、デスクリプタ・キャッシュ内の送信デスクリプタをネットワーク・プロセッサ・ユニット105へ渡す。
【0098】
7. ネットワーク・プロセッサ・ユニット105は、送信デスクリプタより送信パケットがストアされているホスト・メモリ40のアドレスを得、これをDMAコントローラ102へ通知して、DMAリード(Read)動作を起動する。この時、通知される情報としては、ホスト・メモリ40のアドレス,および転送サイズである。
【0099】
8. DMAリード要求はI/Oバス・コントローラ101へ渡り、先の情報を元にホスト・メモリ40から送信/受信パケット・バッファ103へ送信パケット・データが転送される。
【0100】
9. 次いで、送信要求はMACコントローラ104へ通知され、送信/受信パケット・バッファ103中の送信パケットがネットワーク媒体150へ送信される。
【0101】
10. 以上により、送信が行われる。本発明から外れるので特には触れないが、送信後はホスト側へは、受信同様の通知も行われる。
【0102】
11. ネットワーク・プロセッサ・ユニット105は、受信デスクリプタ・キャッシュ・ウィンドウに対してウィンドウ・スライドを実施する。これは受信と同じである。
【0103】
以上、通信制御装置100内にハッシュ・サーチ・エンジン109を設け受信パケットのコネクション番号を事前に確定しておくことで、受信デスクリプタのプリフェッチが可能となり、送信デスクリプタのプリフェッチと併せ、ホストからのデスクリプタ取得の遅延を隠蔽する。また、ネットワーク・プロセッサ・ユニット105が必要なときに必要なデスクリプタをネットワーク・プロセッサ・ユニット105へ提供することが可能となり、パケットの送受信処理性能の向上を図ることが可能となる。
【0104】
【発明の効果】
第1の効果は、ネットワーク・プロセッサ・ユニットのデスクリプタ制御のオーバーヘッドを減らすことが可能である。その理由は、ホスト・メモリ上に散在するデスクリプタ・チェーンを通信制御装置内のデスクリプタ・キャッシュ・コントローラが解析して仮想デスクリプタ・ギャザー・リストを構築し、これを2種類または3種類のデスクリプタ・キャッシュ・ウィンドウを介してネットワーク・プロセッサ・ユニットに参照させることにある。これにより、ネットワーク・プロセッサ・ユニットは、ホスト上のデスクリプタ・チェーンの管理および制御が不要となり、デスクリプタ制御のオーバーヘッドが減ることになる。
【0105】
第2の効果は、ネットワーク・プロセッサ・ユニットによる、通信処理の際に使用されるデスクリプタ・アクセスの遅延低減が可能である。その理由は、通信制御装置がサポートするコネクション分のデスクリプタ・キャッシュを持ち、送信に関してはホストよりデスクリプタの通知が来た時点で送信デスクリプタをプリフェッチし、受信に関してはハッシュ・サーチによりコネクションを特定し、同様に受信デスクリプタをプリフェッチしていることにある。これにより、ネットワーク・プロセッサ・ユニットが送受信処理を行う際にデスクリプタの参照を必要とする場合は、常に必要なデスクリプタがデスクリプタ・キャッシュに読み込まれているため、デスクリプタ・アクセスの遅延が低減されることになる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る通信制御装置の構成を示す回路ブロック図である。
【図2】第1の実施の形態に係る通信制御装置が含まれるシステムの基本構成を示すブロック図である。
【図3】第1の実施の形態におけるデスクリプタのフォーマット図である。
【図4】第1の実施の形態におけるデスクリプタ・キャッシュ機構の概念を説明する図である。
【図5】図1中のデスクリプタ・キャッシュ・メモリのマッピングを示す図である。
【図6】第1の実施の形態におけるデスクリプタ・キャッシュ内でのデスクリプタのフォーマットを示す図である。
【図7】図1中のデスクリプタ・キャッシュ・コントローラ内のデスクリプタ・キャッシュ・コントロール・レジスタの内容を示す図である。
【図8】第1の実施の形態におけるニューメリック・ウィンドウ・スライド・モードを示す図である。
【図9】第1の実施の形態におけるダイレクト・ウィンドウ・スライド・モードを示す図である。
【図10】第1の実施の形態における送信完了デスクリプタ・キャッシュ・ウィンドウの概念を示す図である。
【図11】TCPにおける送信ウィンドウの例を示す図である。
【図12】図11中のTCP送信ウィンドウとデスクリプタ・キャッシュ・ウィンドウとの動作例を示す図である。
【図13】本発明の第2の実施の形態に係る通信制御装置の構成を示す回路ブロック図である。
【符号の説明】
10 CPU
20 プロセッサ・バス
30 メモリ・コントローラ
40 ホスト・メモリ
50 I/Oコントローラ
60 I/Oバス
70 I/Oデバイス
100,100’ 通信制御装置
101 I/Oバス・コントローラ
102 DMAコントローラ
103 送信/受信パケット・バッファ
104 MACコントローラ
105 ネットワーク・プロセッサ・ユニット
106 送信/受信スケジューラ
107 デスクリプタ・キャッシュ・コントローラ
108 デスクリプタ・キャッシュ・メモリ
109 ハッシュ・サーチ・エンジン
110 ハッシュ・テーブル・メモリ
150 ネットワーク媒体
200 ダン・ビット
201 コントロール・コード部
202 ネクスト・デスクリプタ・アドレス
203 バッファ・アドレスおよびバッファ・サイズの組
301 仮想デスクリプタ・ギャザー・リスト
302 1コネクション分のウィンドウ
400 ダン・ビット
401 コントロール・コード部
402 デスクリプタ・アドレス
403 バッファ・アドレスおよびバッファ・サイズの組
700,702 ウィンドウ位置
710 送信デスクリプタ・キャッシュ・ウィンドウ
711 送信完了デスクリプタ・キャッシュ・ウィンドウ
800〜802 デスクリプタ
900 送信デスクリプタ・キャッシュ・ウィンドウ
901 送信完了デスクリプタ・キャッシュ・ウィンドウ

Claims (16)

  1. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、
    前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを辿り、前記デスクリプタ及びデスクリプタ・チェーン中のデスクリプタの内容をキャッシュする仮想デスクリプタ・ギャザー・リストを構築するデスクリプタ・キャッシュ機構を備え、
    前記デスクリプタ・キャッシュ機構が、前記仮想デスクリプタ・ギャザー・リストの一部を、受信デスクリプタ・キャッシュ・ウィンドウ、および送信デスクリプタ・キャッシュ・ウィンドウとして参照させることを特徴とする通信制御装置。
  2. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、
    前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを辿り、前記デスクリプタ及びデスクリプタ・チェーン中のデスクリプタの内容をキャッシュする仮想デスクリプタ・ギャザー・リストを構築するデスクリプタ・キャッシュ機構を備え、
    前記デスクリプタ・キャッシュ機構が、前記仮想デスクリプタ・ギャザー・リストの一部を、受信デスクリプタ・キャッシュ・ウィンドウ、および送信デスクリプタ・キャッシュ・ウィンドウ、および送信完了デスクリプタ・キャッシュ・ウィンドウとして参照させることを特徴とする通信制御装置。
  3. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、
    ネットワーク媒体を制御してパケットの送受信を行うMACコントローラと、
    I/Oバスと通信制御装置間の制御を行うI/Oバス・コントローラと、
    前記I/Oバス・コントローラを介してホスト・メモリとのデータ転送を行うDMAコントローラと、
    ホスト・メモリ上のデスクリプタ・チェーンにあるデスクリプタが仮想デスクリプタ・ギャザー・リストの一部としてキャッシュされるデスクリプタ・キャッシュ・メモリと、
    前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築し、該仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照させるデスクリプタ・キャッシュ・コントローラと、
    前記デスクリプタ・キャッシュ・コントローラから渡された受信デスクリプタより受信パケットをストアすべき前記ホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知してDMAライト動作を起動することにより前記I/Oバス・コントローラを介して受信パケットを前記ホスト・メモリに転送し、前記デスクリプタ・キャッシュ・コントローラから渡された送信デスクリプタより送信パケットがストアされているホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知することにより送信パケットを送信するネットワーク・プロセッサ・ユニットと
    を有することを特徴とする通信制御装置。
  4. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置において、
    ネットワーク媒体を制御してパケットの送受信を行うMACコントローラと、
    I/Oバスと通信制御装置間の制御を行うI/Oバス・コントローラと、前記I/Oバス・コントローラを介してホスト・メモリとのデータ転送を行うDMAコントローラと、
    ホスト・メモリ上のデスクリプタ・チェーンにあるデスクリプタが仮想デスクリプタ・ギャザー・リストの一部としてキャッシュされるデスクリプタ・キャッシュ・メモリと、
    前記ホストより通知されたデスクリプタからホスト・メモリ上のデスクリプタ・チェーンを辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築し、該仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照させるデスクリプタ・キャッシュ・コントローラと、
    前記デスクリプタ・キャッシュ・コントローラから渡された受信デスクリプタより受信パケットをストアすべき前記ホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知してDMAライト動作を起動することにより前記I/Oバス・コントローラを介して受信パケットを前記ホスト・メモリに転送し、前記デスクリプタ・キャッシュ・コントローラから渡された送信デスクリプタより送信パケットがストアされているホスト・メモリのアドレスを得、該アドレスを前記DMAコントローラへ通知することにより送信パケットを送信するネットワーク・プロセッサ・ユニットと
    を有することを特徴とする通信制御装置。
  5. 前記デスクリプタ・キャッシュ・コントローラが、各デスクリプタ・キャッシュ・ウィンドウのスライド・モードとして、
    指定サイズだけウィンドウをスライドさせるニューメリック・ウィンドウ・スライド・モードと、
    指定デスクリプタ位置へウィンドウを直接動かすダイレクト・ウィンドウ・スライド・モードと
    を設けることを特徴とする請求項1,請求項2,請求項3または請求項4記載の通信制御装置。
  6. ホストによりハッシュ・パターンが登録されるハッシュ・テーブル・メモリと、
    通知されたパターンを元に前記ハッシュ・テーブル・メモリに対してハッシュ・サーチを掛けてコネクションを特定し、そのコネクション番号を前記デスクリプタ・キャッシュ・コントローラへ通知するハッシュ・サーチ・エンジンとをさらに備え、
    前記デスクリプタ・キャッシュ・コントローラが、受信パケットからコネクションを特定して受信デスクリプタをホスト・メモリからプリフェッチするプリフェッチ機構を有することを特徴とする請求項1,請求項2,請求項3,請求項4または請求項5記載の通信制御装置。
  7. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、
    前記通信制御装置のサポートするプロトコルがコネクション・レスのプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより受信用および送信用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、
    前記受信用および送信用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程と
    を含むことを特徴とするデスクリプタ制御方法。
  8. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、
    前記通信制御装置のサポートするプロトコルがコネクション・オリエンテッドなプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、
    前記受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程とを
    含むことを特徴とするデスクリプタ制御方法。
  9. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、
    前記通信制御装置のサポートするプロトコルがコネクション・レスのプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより受信用および送信用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、
    送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする工程と、
    前記受信用および送信用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程と
    を含むことを特徴とするデスクリプタ制御方法。
  10. ホストとI/Oバスを介して接続され、ホストから通知されるデスクリプタによりネットワーク媒体を制御してパケットの送受信を行う通信制御装置のデスクリプタ制御方法において、
    前記通信制御装置のサポートするプロトコルがコネクション・オリエンテッドなプロトコルの場合に、1コネクション毎に、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストをそれぞれ構築する工程と、
    送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする工程と、
    前記受信用,送信用および受信完了用の仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする工程と
    を含むことを特徴とするデスクリプタ制御方法。
  11. 各デスクリプタ・キャッシュ・ウィンドウのスライド・モードとして、
    指定サイズだけウィンドウをスライドさせるニューメリック・ウィンドウ・スライド・モードと、
    指定デスクリプタ位置へウィンドウを直接動かすダイレクト・ウィンドウ・スライド・モードと
    を設けることを特徴とする請求項7,請求項8,請求項9または請求項10記載のデスクリプタ制御方法。
  12. コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、
    前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理と
    を実行させるためのプログラム。
  13. コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、
    送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする処理と、
    前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,および送信デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理と
    を実行させるためのプログラム。
  14. コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、
    前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理と
    を実行させるためのプログラム。
  15. コンピュータに、ホスト・メモリ上に散在するデスクリプタがそれぞれアドレス・ポインタによりチェーンされたデスクリプタ・チェーンを辿って解析することにより仮想デスクリプタ・ギャザー・リストを構築する処理と、
    送受信アクションが発生する前に必要となるデスクリプタをホスト・メモリからプリフェッチする処理と、前記仮想デスクリプタ・ギャザー・リストの一部を受信デスクリプタ・キャッシュ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィンドウ,および受信完了デスクリプタ・キャッシュ・ウィンドウとして参照することにより送受信時に必要となるデスクリプタへアクセスする処理とを実行させるためのプログラム。
  16. 各デスクリプタ・キャッシュ・ウィンドウのスライド・モードとして、指定サイズだけウィンドウをスライドさせるニューメリック・ウィンドウ・スライド・モードと、
    指定デスクリプタ位置へウィンドウを直接動かすダイレクト・ウィンドウ・スライド・モードと
    を設けることを特徴とする請求項12,請求項13,請求項14または請求項15記載のプログラム。
JP2002121738A 2002-04-24 2002-04-24 通信制御装置およびデスクリプタ制御方法 Expired - Fee Related JP3791448B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002121738A JP3791448B2 (ja) 2002-04-24 2002-04-24 通信制御装置およびデスクリプタ制御方法
US10/417,146 US7472205B2 (en) 2002-04-24 2003-04-17 Communication control apparatus which has descriptor cache controller that builds list of descriptors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002121738A JP3791448B2 (ja) 2002-04-24 2002-04-24 通信制御装置およびデスクリプタ制御方法

Publications (2)

Publication Number Publication Date
JP2003319014A JP2003319014A (ja) 2003-11-07
JP3791448B2 true JP3791448B2 (ja) 2006-06-28

Family

ID=29537553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002121738A Expired - Fee Related JP3791448B2 (ja) 2002-04-24 2002-04-24 通信制御装置およびデスクリプタ制御方法

Country Status (1)

Country Link
JP (1) JP3791448B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4256386B2 (ja) 2004-12-21 2009-04-22 三星電子株式会社 通信システムにおけるデータ送信装置及び方法
JP4502887B2 (ja) * 2005-06-03 2010-07-14 Necシステムテクノロジー株式会社 情報処理端末、ネットワークシステム、データ送信方法及びデータ送信プログラム
JP5022691B2 (ja) * 2006-12-12 2012-09-12 キヤノン株式会社 通信装置、その制御方法及びプログラム
JP5028339B2 (ja) * 2008-06-09 2012-09-19 キヤノン株式会社 通信装置及び制御方法

Also Published As

Publication number Publication date
JP2003319014A (ja) 2003-11-07

Similar Documents

Publication Publication Date Title
US7472205B2 (en) Communication control apparatus which has descriptor cache controller that builds list of descriptors
US7581015B2 (en) Communication device having transmitting and receiving units supports RDMA communication
US10015117B2 (en) Header replication in accelerated TCP (transport control protocol) stack processing
US9569366B2 (en) System and method to provide non-coherent access to a coherent memory system
US9137179B2 (en) Memory-mapped buffers for network interface controllers
US5884313A (en) System and method for efficient remote disk I/O
US6804673B2 (en) Access assurance for remote memory access over network
US20110004732A1 (en) DMA in Distributed Shared Memory System
US20030051076A1 (en) Methods and system for pre-fetching descriptors
US8055805B2 (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
US8595401B2 (en) Input output bridging
US9071525B2 (en) Data receiving apparatus, data receiving method, and program storage medium
US20050187939A1 (en) Method, system, and program for managing data read operations
CN101176076A (zh) 用于直接高速缓存访问的直接存储器存取重新排序
US20060136697A1 (en) Method, system, and program for updating a cached data structure table
US7552232B2 (en) Speculative method and system for rapid data communications
JP3791448B2 (ja) 通信制御装置およびデスクリプタ制御方法
Zhang et al. Anatomy of UDP and M-VIA for cluster communication
US7284075B2 (en) Inbound packet placement in host memory
US20050141434A1 (en) Method, system, and program for managing buffers
Zhanga et al. Anatomy of UDP and M-VIA for cluster communication
Cheriton et al. Computer Systems Laboratory Departments of Computer Science and Electrical Engineering Stanford University

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040426

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060327

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120414

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees