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

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

Info

Publication number
JP2003319014A
JP2003319014A JP2002121738A JP2002121738A JP2003319014A JP 2003319014 A JP2003319014 A JP 2003319014A JP 2002121738 A JP2002121738 A JP 2002121738A JP 2002121738 A JP2002121738 A JP 2002121738A JP 2003319014 A JP2003319014 A JP 2003319014A
Authority
JP
Japan
Prior art keywords
descriptor
window
host
transmission
cache
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
JP2002121738A
Other languages
English (en)
Other versions
JP3791448B2 (ja
Inventor
Yukitatsu Abe
晋樹 阿部
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

Landscapes

  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 ネットワーク・プロセッサ・ユニットがホス
ト・メモリ上に散在するデスクリプタ・チェーンを辿る
必要がないようにする。 【解決手段】 デスクリプタ・キャッシュ・メモリ10
8に、デスクリプタが仮想デスクリプタ・ギャザー・リ
ストの一部としてキャッシュされる。デスクリプタ・キ
ャッシュ・コントローラ107は、ホストより通知され
たデスクリプタからホスト・メモリ上のデスクリプタ・
チェーンを自動的に辿って解析することによりデスクリ
プタ・ギャザー・リストを仮想的に構築し、該仮想デス
クリプタ・ギャザー・リストの一部を受信デスクリプタ
・キャッシュ・ウィンドウ,送信デスクリプタ・キャッ
シュ・ウィンドウ,および受信完了デスクリプタ・キャ
ッシュ・ウィンドウとして参照させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は通信制御装置および
デスクリプタ制御方法に関し、特にホストとI/Oバス
を介して接続され、ネットワーク媒体を制御してパケッ
ト(フレームともいう)の送受信を行う通信制御装置お
よびそのデスクリプタ制御方法に関する。
【0002】
【従来の技術】近年、インターネットの世界的規模での
普及により、膨大なネットワーク処理をこなすための高
速なネットワーク・サーバの需要が高まっている。
【0003】インターネットではTCP/IP(Tra
nsmission ControlProtocol
/Internet Protocol)と呼ばれる通
信プロトコル(以下、単にプロトコルという)を用いて
いるが、プロトコルを処理するための負荷はサーバのホ
ストCPU(Central ProcessingU
nit)にとっては無視できないほど重い。この問題を
解決するために、通信制御装置にネットワーク・プロセ
ッサ・ユニットを組み込み、ある程度のTCP/IP処
理をネットワーク・プロセッサ・ユニット側で実行さ
せ、ホストCPUの負荷を減らす方法が考案されてい
る。
【0004】ネットワーク・プロセッサ・ユニットが受
信パケットをホスト・メモリへ転送する際には、ホスト
側の受信バッファのアドレスやサイズなどの、ホストC
PUにより記述されたデスクリプタが必要となる。一般
的にデスクリプタはチェーン構造を持っており、通信制
御装置側はデスクリプタ・チェーンを辿ってデスクリプ
タを読み込み、通信処理を行う。
【0005】
【発明が解決しようとする課題】しかし、特にTCPな
どのコネクション・オリエンテッドなプロトコル処理の
オフロードを考慮した場合、パケットの再送処理やAC
K(ACKnowledge)パケット処理等が存在
し、単純にデスクリプタ・チェーンを辿ってデスクリプ
タを読み進むだけでなく、過去のデスクリプタに戻って
通信処理を行う必要性が生じる。
【0006】さらに、ネットワーク処理の性能を上げる
ために、受信パケットをユーザ・データ空間へ直接転送
する、いわゆるゼロコピーを行う場合、デスクリプタ・
チェーンはTCPのコネクション数だけ必要となり、デ
スクリプタの制御が一層複雑化する。このため、通信制
御装置内のネットワーク・プロセッサ・ユニットにとっ
てのデスクリプタ制御の容易性のみならず、デスクリプ
タ・アクセス制御に関する高速化手法が求められてい
る。
【0007】本発明の目的は、ネットワーク・プロセッ
サ・ユニットがホスト・メモリ上に散在するデスクリプ
タ・チェーンを辿る必要がないようにして、ネットワー
ク・プロセッサ・ユニットのデスクリプタ制御のオーバ
ーヘッドを減らすことができるようにした通信制御装置
およびデスクリプタ制御方法を提供することにある。
【0008】また、本発明の他の目的は、ネットワーク
・プロセッサ・ユニットが送受信処理を行う際にデスク
リプタの参照を必要とする場合は、常に必要なデスクリ
プタがデスクリプタ・キャッシュに読み込まれているよ
うにして、デスクリプタ・アクセスの遅延が低減される
ようにした通信制御装置およびデスクリプタ制御方法を
提供することにある。
【0009】なお、先行技術文献として、特開平6−2
16970,特開平7−023060等がある。特開平
6−216970に開示された通信制御アダプタは、上
位システムからの確認応答フレーム送信要求を受けず
に、独立して通信制御アダプタで確認応答フレームを生
成して送信することにより、確認応答フレームを迅速に
返送できるようにしたものであるが、デスクリプタの制
御を行うものではなく、本発明とは構成および効果が全
く異なるものである。
【0010】また、特開平7−023060に開示され
たバッファ変換制御方式は、プロトコル制御部が管理す
るバッファ管理テーブルとLAN(Local Are
a 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バス・コント
ローラを介してホスト・メモリとのデータ転送を行うD
MAコントローラと、ホスト・メモリ上のデスクリプタ
・チェーンにあるデスクリプタが仮想デスクリプタ・ギ
ャザー・リストの一部としてキャッシュされるデスクリ
プタ・キャッシュ・メモリと、前記ホストより通知され
たデスクリプタからホスト・メモリ上のデスクリプタ・
チェーンを自動的に辿って解析することによりデスクリ
プタ・ギャザー・リストを仮想的に構築し、該仮想デス
クリプタ・ギャザー・リストの一部を受信デスクリプタ
・キャッシュ・ウィンドウ,送信デスクリプタ・キャッ
シュ・ウィンドウ,および受信完了デスクリプタ・キャ
ッシュ・ウィンドウとして参照させるデスクリプタ・キ
ャッシュ・コントローラと、前記デスクリプタ・キャッ
シュ・コントローラから渡された受信デスクリプタより
受信パケットをストアすべき前記ホスト・メモリのアド
レスを得、該アドレスを前記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】このウィンドウは、通信制御装置が処理す
るプロトコルに適した実装がなされる。例えば、Eth
ernet(登録商標)/IP/UDP(User D
atagram Protocol)等のコネクション
・レスのプロトコルでは、1コネクション毎に、受信デ
スクリプタ・キャッシュ・ウィンドウ,および送信デス
クリプタ・キャッシュ・ウィンドウを実装する。TCP
等のコネクション・オリエンテッドなプロトコルでは、
さらに送信完了用デスクリプタ・キャッシュ・ウィンド
ウを実装する。これらデスクリプタ・キャッシュ・ウィ
ンドウ・セットは、通信制御装置がサポートするコネク
ション数だけ実装する。
【0035】これにより、ネットワーク・プロセッサ・
ユニットは、コネクション番号,およびウィンドウのオ
フセットを指定することにより、任意のデスクリプタを
リードすることが可能となる。また、デスクリプタを消
費する度にウィンドウを任意のサイズだけスライドさせ
るニューメリック・ウィンドウ・スライド・モードと、
特定のディスクリプタ位置へダイレクトにスライドさせ
るダイレクト・ウィンドウ・スライド・モードとを持た
せる。前者は特にEthernet(登録商標)/IP
/UDP等のコネクション・レスのプロトコルの送受信
に適したモードであり、後者は特にTCP等のコネクシ
ョン・オリエンテッドなプロトコルの送受信に特化した
モードである。
【0036】これらのデスクリプタ・キャッシュ機構に
より、ネットワーク・プロセッサ・ユニットは、デスク
リプタ・チェーンの解析の必要が無くなり、ファームウ
ェアの容易性とデスクリプタに関する処理性能の向上と
を図ることが可能となる。
【0037】また、通信制御装置にハッシュ・サーチ・
エンジンなどを搭載し、受信パケットのコネクションを
自動的に判別する機能を有する場合は、実際にネットワ
ーク・プロセッサ・ユニットに受信処理通知が渡される
前に、事前に該当コネクションの受信デスクリプタをホ
スト・メモリからリードするプリフェッチ機構を持たせ
る。
【0038】同様に送信の際も、実際にネットワーク・
プロセッサ・ユニットに送信処理通知が渡される前に、
ホストからの送信要求が通信制御装置に通知された時点
でコネクションを判別し、送信デスクリプタをホスト・
メモリからプリフェッチするプリフェッチ機構を持たせ
る。
【0039】以上により、ネットワーク・プロセッサ・
ユニットのデスクリプタ取得の遅延を隠蔽することが可
能となり、結果的に通信制御装置の通信性能の向上を図
ることが可能となる。
【0040】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0041】[第1の実施の形態]図2は、本発明の第
1の実施の形態に係る通信制御装置(ネットワーク・イ
ンタフェース・デバイス)100を含むシステムの基本
構成を示す。このシステムは、単一または複数のCPU
10がプロセッサ・バス20を介して、メモリ・コント
ローラ30に接続されている。メモリ・コントローラ3
0は、CPU10と、ホスト・メモリ40と、I/Oコ
ントローラ50との間の制御を行う。I/Oコントロー
ラ50には、I/Oバス60を介して単一または複数の
I/Oデバイス70が接続される。通信制御装置100
もI/Oデバイスの一種であり、この場合、Ether
net(登録商標),LAN等のネットワーク媒体15
0の制御を行うI/Oデバイスとして位置づけられる。
【0042】なお、このシステムは一例であり、本発明
は上位システムには依存しない。また、例として挙げた
システムは、いわゆるパーソナルコンピュータ,ワーク
ステーション,サーバのシステムと何ら変わるところは
なく、この場合、I/Oバス60は、PCI(Peri
pheral Component Intercon
nect)バスまたはPCI−Xバスで構成されるのが
一般的であり、ネットワーク媒体150は、インターネ
ットやLAN等のEthernet(登録商標)である
ことが一般的である。
【0043】以後、この基本システム中、I/Oバス6
0より上位側を単純にホストと呼ぶ。
【0044】図1は、通信制御装置100の構成を示す
回路ブロック図である。通信制御装置100は、ネット
ワーク媒体150を制御してパケットの送受信を行うM
AC(Media Access Control)コ
ントローラ104と、受信パケットおよび送信パケット
をストアする送信/受信パケット・バッファ103と、
I/Oバス60と通信制御装置10間の制御を行うI/
Oバス・コントローラ101と、I/Oバス・コントロ
ーラ101を介してホスト・メモリ40とのデータ転送
を行うDMA(Direct Memory Acce
ss)コントローラ102と、送受信のスケジューリン
グを行う送信/受信スケジューラ106と、受信パケッ
トの解析,ホスト・メモリ40へのデータ転送の起動,
および送信データ転送の起動と送信処理などを行うネッ
トワーク・プロセッサ・ユニット105と、デスクリプ
タ・キャッシュ機構の制御を行うデスクリプタ・キャッ
シュ・コントローラ107と、デスクリプタ本体をキャ
ッシュするデスクリプタ・キャッシュ・メモリ108と
から成る。
【0045】図3は、ホストのCPU10が生成するデ
スクリプタのフォーマットの一例を示す図である。この
デスクリプタは、デスクリプタを消費したことをホスト
へ通知するためのダン・ビット(Done Bit)2
00,デスクリプタの属性などを設定するコントロール
・コード部201,デスクリプタ・チェーンのための次
のデスクリプタのアドレス・ポインタであるネクスト・
デスクリプタ・アドレス202,ならびに受信デスクリ
プタの場合は受信パケットのストア先を示し、送信デス
クリプタの場合はパケットとして送信すべきデータがス
トアされているアドレスを示すバッファ・アドレスおよ
びバッファ・サイズの複数の組203とから成ってい
る。ホストのCPU10は、送受信デスクリプタをホス
ト・メモリ40上に生成する。ネットワーク・プロセッ
サ・ユニット105は、パケットの送受信の際にデスク
リプタを参照し、受信の場合は受信パケット・データを
ホスト・メモリ40へ転送する。この時、ネットワーク
・プロセッサ・ユニット105は、ダン・ビット200
をDMAコントローラ102を介してDMAライト(W
rite)でセットし、ホストは割り込みなどをきっか
けにダン・ビット200を参照してデスクリプタの完了
を認知すると送受信それぞれに対する処理を実行する。
【0046】図4は、本発明によるデスクリプタ・キャ
ッシュ機構の概念を解説した図である。ホストにより生
成されるデスクリプタは、ホスト・メモリ40上にデス
クリプタ・チェーンを構成しており、その物理的なスト
ア位置は散在している(符号300参照)。デスクリプ
タ・キャッシュ・コントローラ107は、自動的にデス
クリプタ・チェーンを辿り、仮想デスクリプタ・ギャザ
ー・リスト301を構築する。この仮想デスクリプタ・
ギャザー・リスト301は、仮想的なものであり、実体
は存在しない。
【0047】デスクリプタ・キャッシュのサイズは、デ
スクリプタ・キャッシュ・メモリ108の容量と通信制
御装置100がサポートするトータルのコネクション数
との関係で決まる。従って、実際には、仮想デスクリプ
タ・ギャザー・リスト301中、コネクションあたりの
キャッシュ・サイズ分だけデスクリプタ・キャッシュ・
メモリ108へキャッシュされる。
【0048】ネットワーク・プロセッサ・ユニット10
5は、キャッシュされた仮想デスクリプタ・ギャザー・
リスト301の一部をウィンドウという概念として参照
することが可能であり、符号302は1コネクション分
のウィンドウを示している。
【0049】ここで、ウィンドウは、単にそのコネクシ
ョンに割り当てられたキャッシュ・サイズのメモリであ
る。例えば、ウィンドウに2KBが割り当てられたとす
ると、デスクリプタ・キャッシュ・コントローラ107
は、ホストより通知されたデスクリプタを読み、デスク
リプタ・キャッシュにストアする。その際、ネクスト・
デスクリプタ・アドレス202を参照することにより、
続きのデスクリプタのアドレスを得、さらにデスクリプ
タを2KB分読んでいく。結果として、ネットワーク・
プロセッサ・ユニット105から見れば、デスクリプタ
・チェインを繋げた仮想デスクリプタ・ギャザー・リス
ト301の2KB分がデスクリプタ・キャッシュに存在
し、あたかもウィンドウとして見えることになる。
【0050】1コネクションにつき、受信デスクリプタ
をキャッシュする受信デスクリプタ・キャッシュ・ウィ
ンドウと、送信デスクリプタをキャッシュする送信デス
クリプタ・キャッシュ・ウィンドウとの2種類のウィン
ドウが構成される。
【0051】また、TCP等のコネクション・オリエン
テッドなプロトコルでは、送信の完了は通信相手からの
ACKパケットにより完了し、その際、過去に参照した
送信デスクリプタを再度参照する必要があり、送信デス
クリプタ・キャッシュ・ウィンドウとは参照ウィンドウ
位置が異なる、送信完了デスクリプタ・キャッシュ・ウ
ィンドウが構成される。これら3種類のデスクリプタ・
キャッシュ・ウィンドウからなるデスクリプタ・キャッ
シュ・ウィンドウ・セットが通信制御装置100がサポ
ートするコネクション数分存在し、図5に示すように、
デスクリプタ・キャッシュ・メモリ108にマップされ
る。
【0052】ネットワーク・プロセッサ・ユニット10
5は、デスクリプタ・キャッシュ・メモリ108のアド
レス指定により、任意のコネクションのデスクリプタ・
キャッシュ・ウィンドウをリードすることが可能であ
り、この場合、ネットワーク・プロセッサ・ユニット1
05へ返されるデスクリプタのフォーマットは、図6で
示されるフォーマットとなる。
【0053】図6のデスクリプタは、デスクリプタを消
費したことをホストへ通知するためのダン・ビット(D
one Bit)400,デスクリプタの属性などを設
定するコントロール・コード部401,デスクリプタ自
身の物理アドレスを示すデスクリプタ・アドレス40
2,ならびに受信デスクリプタの場合は受信パケットの
ストア先を示し、送信デスクリプタの場合はパケットと
して送信すべきデータがストアされているアドレスを示
すバッファ・アドレスおよびバッファ・サイズの複数の
組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に対
し、太枠線がネットワーク・プロセッサ・ユニット10
5から参照可能なウィンドウを示している。符号600
〜602は、パケットを送信および受信する度にデスク
リプタを消費し、デスクリプタ・キャッシュ・コントロ
ール・レジスタにより、ウィンドウをスライドさせた状
況を示している。ニューメリック・ウィンドウ・スライ
ド・モードは、Ethernet(登録商標)/IP
Raw/UDPのような、送受信を完了すると即デスク
リプタを消費可能(ここでいう消費とは、通信制御装置
100でデスクリプタ指示の処理を終え、ホストにその
旨を通知することを指す)であり、二度とそのデスクリ
プタを参照する必要のないコネクション・レスのプロト
コルに向いたウィンドウ制御方法である。なお、デスク
リプタが枯渇した状態603になると、デスクリプタ・
キャッシュ・コントローラ107は、オール”0”のデ
スクリプタを返す。
【0059】一方、図9は、ダイレクト・ウィンドウ・
スライド・モードを示したものである。パケットの送信
を例にとって説明すると、ウィンドウ位置700からウ
ィンドウ位置702までニューメリック・ウィンドウ・
スライド・モードによりウィンドウをスライドさせ、パ
ケットを送信したとする。しかし、ネットワーク上の何
らかの障害によりパケットが喪失し、パケットの送信相
手(リモート・ホスト)よりパケットの再送要求が行わ
れる時がある。例えば、再送要求のあったパケットが図
9のデスクリプタ#0が示す送信である場合、ネットワ
ーク・プロセッサ・ユニット105は、デスクリプタ・
キャッシュ・コントロール・レジスタへダイレクト・ウ
ィンドウ・スライド・モードの指示と、デスクリプタ#
0の物理アドレスとを指定することにより、ウィンドウ
の先頭をデスクリプタ#0の先頭へ直接移動させること
が可能である。また、再送後は、再びデスクリプタ#1
0のウィンドウ位置702へダイレクト・ウィンドウ・
スライド・モードによりウィンドウを戻し、引き続き送
信を行うことが可能である。このように、ダイレクト・
ウィンドウ・スライド・モードは、TCPのように、再
送要求を持つコネクション・オリエンテッドなプロトコ
ルに向いたウィンドウ制御方法である。
【0060】さらに、コネクション・オリエンテッドな
プロトコルの特徴として、送信パケットを送信相手が受
信したことを示すACKパケットの存在が挙げられる。
コネクション・オリエンテッドなプロトコルでは、パケ
ットをネットワーク送信しただけでは、送信が完了した
ことにはならず、送信相手より該当するパケットに対す
るACKパケットが返されて送信が完了する。従って、
この間、デスクリプタの消費は保留される。しかし、送
信処理時はデスクリプタを順にスライドして行くため、
消費が保留されたデスクリプタはウィンドウ外となって
しまう。ACKパケットを受信した時点で再度ウィンド
ウをスライドしていたのでは、デスクリプタ・キャッシ
ュのフラッシュが頻発し、キャッシュ効率が著しく下が
ってしまう。これを避けるために、送信側には送信完了
デスクリプタ・キャッシュ・ウィンドウを別途構成す
る。
【0061】図10は、送信デスクリプタ・キャッシュ
・ウィンドウ710と送信完了デスクリプタ・キャッシ
ュ・ウィンドウ711との関係を示した図である。再送
などの無い送信時は送信デスクリプタ・キャッシュ・ウ
ィンドウ710をニューメリック・ウィンドウ・スライ
ド・モードによりウィンドウを進めつつ、送信を行って
いく。一方、送信完了デスクリプタ・キャッシュ・ウィ
ンドウ711は、送信済みだが、送信完了をホストへ通
知していない、未消費のデスクリプタの参照を可能とす
るウィンドウであり、ネットワーク・プロセッサ・ユニ
ット105は、ACKパケットを受信するたびに、この
ウィンドウを参照し、ホストへ送信完了通知を行う。送
信完了デスクリプタ・キャッシュ・ウィンドウ711に
より、効率よく送信デスクリプタをキャッシュすること
が可能となる。
【0062】図11は、一般的なTCPにおける送信パ
ケットのスライディング・ウィンドウ(Sliding
Window)の概念を示す図である。ちなみに、T
CPのスライディング・ウィンドウはTCP/IPの用
語であり、本発明におけるデスクリプタ・キャッシュ・
ウィンドウとは全く別の概念である。図11中の四角形
一つがデスクリプタの一つを表す。Sent/ACKe
dは既にパケットが送信され、ACKパケットを受信
し、ホストへ送信完了通知したデスクリプタを示す。従
って、ネットワーク・プロセッサ・ユニット105は、
この領域のデスクリプタを二度と参照する必要がない。
Sent/UnACKedは、パケットの送信を完了し
たが、送信相手からのACKパケットを受信していない
状況のデスクリプタである。ネットワーク・プロセッサ
・ユニット105は、少なくとも次のACKパケットを
受信した際に、どのデスクリプタに対応するACKパケ
ットなのかを調べ、対応するデスクリプタの送信完了通
知をホストへ行うために、デスクリプタ800からデス
クリプタ801までのデスクリプタ・アドレスを記憶し
ておく必要がある。UnSent/Insideは、ま
だ未送信だが、送信相手から通知されたTCP送信ウィ
ンドウ内にあるデスクリプタが存在していることを示
す。ネットワーク・プロセッサ・ユニット105は、S
ND.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のデスクリプタ・キャッシュ機構は、サポ
ートするコネクション数のデスクリプタ・キャッシュ・
ウィンドウ・セットを持っている。各コネクションのデ
スクリプタは、ネットワーク・プロセッサ・ユニット1
05が必要とする時点で常にキャッシュされていること
が性能的に望まれる。これに対して、ホストから通知さ
れたデスクリプタを逐一キャッシュする方法もあるが、
例えば、送信と違い、受信デスクリプタはパケット受信
時のみに参照されるため、すぐに必要となるとは限らな
い。このため、ホストから通知された受信デスクリプタ
を逐一キャッシュすると、ホストと通信制御装置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は、通
知されたパターンを元にハッシュ・テーブル・メモリ1
10に対してハッシュ・サーチを掛けてコネクションを
特定し、デスクリプタ・キャッシュ・コントローラ10
7へコネクション番号(PCBID)を通知する。ハッ
シュ・サーチは、一般的なもので、パケットのヘッダか
らプロトコル別にパラメータを引き抜き、ハッシュ演算
に掛けてアドレスを算出し、そこをハッシュ・テーブル
・メモリ110からリードして通知されたパターンと一
致するかどうかを比較する。
【0072】デスクリプタ・キャッシュ・コントローラ
107は、通知されたコネクション番号を元に、受信デ
スクリプタをホスト・メモリ40からリードする。
【0073】次に、このように構成された第2の実施の
形態に係る通信制御装置100’の動作について説明す
る。ただし、ここでは、ネットワーク媒体150がEt
hernet(登録商標)である場合を例として説明す
る。
【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アドレスを設定するレジスタが存在して
いる。このレジスタは、ホストにより設定される。(E
thernet(登録商標)の通信制御装置100とし
ては自明な機能のために特に記載していない。)
【0078】3. 自分宛の場合、MACコントローラ1
04は、送信/受信パケット・バッファ103へ受信パ
ケットをストアする。
【0079】4. これと同時に、MACコントローラ1
04は、受信したパケットのプロトコルを調査し、Et
hernet(登録商標)/IP Raw/TCP/U
DPなどのプロトコルに分類し、各プロトコルに応じた
ハッシュ・パターンを抜き出してハッシュ・サーチ・エ
ンジン109に情報をフォワードする。この情報はパケ
ット・インフォメーションと呼ばれ、ハッシュ・パター
ンの他に、受信パケットをストアした送信/受信パケッ
ト・バッファ103のアドレスを付加する。例えば、プ
ロトコルがIP Rawである場合、ハッシュ・パター
ンは、プロトコルIDとなる。また、プロトコルがTC
P/UDPである場合、ハッシュ・パターンは、ソース
IPアドレス,デスティネーションIPアドレス,ソー
ス・ポート,およびデスティネーション・ポートとな
る。
【0080】5. ハッシュ・サーチ・エンジン109
は、パケット・インフォメーション内のハッシュ・パタ
ーンを使用してハッシュ・サーチを行い、コネクション
番号(PCB ID)を特定し、これをパケット・イン
フォメーションに付加して送信/受信スケジューラ10
6へフォワードする。なお、ハッシュ・パターンおよび
コネクション番号の登録は、予めホストにより行われ
る。(登録方法やハッシュ・サーチ・エンジン109の
詳細は特に触れないが、ホストからのハッシュ・パター
ン登録要求に対し、その登録手段がハッシュ・サーチ・
エンジン109に設けられている。)
【0081】6. 送信/受信スケジューラ106は、
ホストからの送信要求とネットワーク媒体150からの
受信要求とに対し、ネットワーク・プロセッサ・ユニッ
ト105への処理ディスパッチのスケジューリングを行
う。受信要求の場合は、同時にネットワーク・プロセッ
サ・ユニット105へパケット・インフォメーションも
フォワードする。
【0082】7. 送信/受信スケジューラ106へパ
ケット・インフォメーションがフォワードされた時点
で、受信パケットのコネクション番号をデスクリプタ・
キャッシュ・コントローラ107へ通知する。もし、デ
スクリプタ・キャッシュ・メモリ108内にそのコネク
ション番号のデスクリプタが存在しない場合は、DMA
コントローラ102を起動して、そのコネクション番号
のデスクリプタをホスト・メモリ40からリードしてデ
スクリプタ・キャッシュ・メモリ108にプリフェッチ
(ストア)する。(この時に、デスクリプタ・キャッシ
ュ・コントローラ107は、デスクリプタ・チェーンを
辿る動作を行うことになる。)なお、各コネクション番
号毎の受信デスクリプタ・チェーンがホスト・メモリ4
0上には存在しており、予めコネクション番号,および
そのデスクリプタのアドレスはホストによりデスクリプ
タ・キャッシュ・コントローラ107に通知されている
ものとする。これは、一般的には、ドアベル(Door
bell)と呼ばれる通知方法で、そのためのハードウ
ェアも実装されているが、ここでは特に触れない。
【0083】8. 送信/受信スケジューラ106より受
信処理ディスパッチを受け取ったネットワーク・プロセ
ッサ・ユニット105は、パケット・インフォメーショ
ンを参照し、コネクション番号(PCB ID)や受信
パケットの詳細情報をリードする。
【0084】9. 送信/受信パケット・バッファ103
にストアされている受信パケットをホスト・メモリ40
へ転送するために、ネットワーク・プロセッサ・ユニッ
ト105は、受信デスクリプタを参照する。受信デスク
リプタは、各コネクション毎に存在し、受信パケットを
ストアすべきホスト・メモリ40のアドレスやサイズを
示している。ネットワーク・プロセッサ・ユニット10
5は、コネクション番号を元に、リードすべき受信デス
クリプタ・キャッシュ・ウィンドウのアドレスを生成
し、受信デスクリプタをリードする。
【0085】10. 上記7で受信デスクリプタのプリ
フェッチが行われていることから、デスクリプタ・キャ
ッシュ・コントローラ107は、デスクリプタ・キャッ
シュ内の受信デスクリプタ103をネットワーク・プロ
セッサ・ユニット105へ渡す。
【0086】11. ネットワーク・プロセッサ・ユニ
ット105は、受信デスクリプタより、受信パケットを
ストアすべきホスト・メモリ40のアドレスを得、これ
をDMAコントローラ102へ通知して、DMAライト
動作を起動する。この時、通知される情報としては、ホ
スト・メモリ40のアドレス,転送サイズ,および受信
パケットの収められた送信/受信パケット・バッファ1
03のアドレスである。
【0087】12. DMAライト要求はI/Oバス・
コントローラ101へ渡り、先の情報を元に送信/受信
パケット・バッファ103内の受信パケット・データが
ホスト・メモリ40へ転送される。
【0088】13. 以上により、受信パケットがホス
トへ渡る。なお、特に本発明から外れるので触れていな
いが、実際にはホスト側へは、デスクリプタの完了通
知,および割り込みの通知も行われる。デスクリプタの
完了通知は、ホスト上のデスクリプタのダン・ビット・
フィールド(図3の符号200参照)をセットし、消費
したデスクリプタのホスト・メモリ40上のアドレス
を、別途ホストへの通知手段で示す。また、割り込みの
通知は、割り込みをホストのCPU10へ上げて、受信
デスクリプタを消費し、受信パケットをデスクリプタの
指示通りホスト・メモリ40へ転送したことを通知す
る。
【0089】14. ネットワーク・プロセッサ・ユニ
ット105は、受信デスクリプタ・キャッシュ・ウィン
ドウに対してウィンドウ・スライドを実施する。これ
は、ウィンドウの先頭ディスクリプタを消費し、参照す
る必要が無くなったことに依る。要は、次に使うべきデ
スクリプタを受信デスクリプタ・キャッシュ・ウィンド
ウ内に捕捉しておく。このウィンドウ・スライドを行う
ことにより、ネットワーク・プロセッサ・ユニット10
5は、実際にはホスト・メモリ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. 【請求項1】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置に
    おいて、前記ホストより通知されたデスクリプタからホ
    スト・メモリ上のデスクリプタ・チェーンを自動的に辿
    って解析することによりデスクリプタ・ギャザー・リス
    トを仮想的に構築し、該仮想デスクリプタ・ギャザー・
    リストの一部を受信デスクリプタ・キャッシュ・ウィン
    ドウ,および送信デスクリプタ・キャッシュ・ウィンド
    ウとして参照させるデスクリプタ・キャッシュ機構を備
    えることを特徴とする通信制御装置。
  2. 【請求項2】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置に
    おいて、前記ホストより通知されたデスクリプタからホ
    スト・メモリ上のデスクリプタ・チェーンを自動的に辿
    って解析することによりデスクリプタ・ギャザー・リス
    トを仮想的に構築し、該仮想デスクリプタ・ギャザー・
    リストの一部を受信デスクリプタ・キャッシュ・ウィン
    ドウ,送信デスクリプタ・キャッシュ・ウィンドウ,お
    よび送信完了デスクリプタ・キャッシュ・ウィンドウと
    して参照させるデスクリプタ・キャッシュ機構を備える
    ことを特徴とする通信制御装置。
  3. 【請求項3】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置に
    おいて、ネットワーク媒体を制御してパケットの送受信
    を行うMACコントローラと、I/Oバスと通信制御装
    置間の制御を行うI/Oバス・コントローラと、前記I
    /Oバス・コントローラを介してホスト・メモリとのデ
    ータ転送を行うDMAコントローラと、ホスト・メモリ
    上のデスクリプタ・チェーンにあるデスクリプタが仮想
    デスクリプタ・ギャザー・リストの一部としてキャッシ
    ュされるデスクリプタ・キャッシュ・メモリと、前記ホ
    ストより通知されたデスクリプタからホスト・メモリ上
    のデスクリプタ・チェーンを自動的に辿って解析するこ
    とによりデスクリプタ・ギャザー・リストを仮想的に構
    築し、該仮想デスクリプタ・ギャザー・リストの一部を
    受信デスクリプタ・キャッシュ・ウィンドウ,および送
    信デスクリプタ・キャッシュ・ウィンドウとして参照さ
    せるデスクリプタ・キャッシュ・コントローラと、前記
    デスクリプタ・キャッシュ・コントローラから渡された
    受信デスクリプタより受信パケットをストアすべき前記
    ホスト・メモリのアドレスを得、該アドレスを前記DM
    Aコントローラへ通知してDMAライト動作を起動する
    ことにより前記I/Oバス・コントローラを介して受信
    パケットを前記ホスト・メモリに転送し、前記デスクリ
    プタ・キャッシュ・コントローラから渡された送信デス
    クリプタより送信パケットがストアされているホスト・
    メモリのアドレスを得、該アドレスを前記DMAコント
    ローラへ通知することにより送信パケットを送信するネ
    ットワーク・プロセッサ・ユニットとを有することを特
    徴とする通信制御装置。
  4. 【請求項4】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置に
    おいて、ネットワーク媒体を制御してパケットの送受信
    を行うMACコントローラと、I/Oバスと通信制御装
    置間の制御を行うI/Oバス・コントローラと、前記I
    /Oバス・コントローラを介してホスト・メモリとのデ
    ータ転送を行うDMAコントローラと、ホスト・メモリ
    上のデスクリプタ・チェーンにあるデスクリプタが仮想
    デスクリプタ・ギャザー・リストの一部としてキャッシ
    ュされるデスクリプタ・キャッシュ・メモリと、前記ホ
    ストより通知されたデスクリプタからホスト・メモリ上
    のデスクリプタ・チェーンを自動的に辿って解析するこ
    とによりデスクリプタ・ギャザー・リストを仮想的に構
    築し、該仮想デスクリプタ・ギャザー・リストの一部を
    受信デスクリプタ・キャッシュ・ウィンドウ,送信デス
    クリプタ・キャッシュ・ウィンドウ,および受信完了デ
    スクリプタ・キャッシュ・ウィンドウとして参照させる
    デスクリプタ・キャッシュ・コントローラと、前記デス
    クリプタ・キャッシュ・コントローラから渡された受信
    デスクリプタより受信パケットをストアすべき前記ホス
    ト・メモリのアドレスを得、該アドレスを前記DMAコ
    ントローラへ通知してDMAライト動作を起動すること
    により前記I/Oバス・コントローラを介して受信パケ
    ットを前記ホスト・メモリに転送し、前記デスクリプタ
    ・キャッシュ・コントローラから渡された送信デスクリ
    プタより送信パケットがストアされているホスト・メモ
    リのアドレスを得、該アドレスを前記DMAコントロー
    ラへ通知することにより送信パケットを送信するネット
    ワーク・プロセッサ・ユニットとを有することを特徴と
    する通信制御装置。
  5. 【請求項5】 前記デスクリプタ・キャッシュ・コント
    ローラが、各デスクリプタ・キャッシュ・ウィンドウの
    スライド・モードとして、指定サイズだけウィンドウを
    スライドさせるニューメリック・ウィンドウ・スライド
    ・モードと、指定デスクリプタ位置へウィンドウを直接
    動かすダイレクト・ウィンドウ・スライド・モードとを
    設けることを特徴とする請求項1,請求項2,請求項3
    または請求項4記載の通信制御装置。
  6. 【請求項6】 ホストによりハッシュ・パターンが登録
    されるハッシュ・テーブル・メモリと、通知されたパタ
    ーンを元に前記ハッシュ・テーブル・メモリに対してハ
    ッシュ・サーチを掛けてコネクションを特定し、そのコ
    ネクション番号を前記デスクリプタ・キャッシュ・コン
    トローラへ通知するハッシュ・サーチ・エンジンとをさ
    らに備え、前記デスクリプタ・キャッシュ・コントロー
    ラが、受信パケットからコネクションを特定して受信デ
    スクリプタをホスト・メモリからプリフェッチするプリ
    フェッチ機構を有することを特徴とする請求項1,請求
    項2,請求項3,請求項4または請求項5記載の通信制
    御装置。
  7. 【請求項7】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置の
    デスクリプタ制御方法において、前記通信制御装置のサ
    ポートするプロトコルがコネクション・レスのプロトコ
    ルの場合に、1コネクション毎に、ホスト・メモリ上に
    散在するデスクリプタがそれぞれアドレス・ポインタに
    よりチェーンされたデスクリプタ・チェーンを自動的に
    辿って解析することにより受信用および送信用の仮想デ
    スクリプタ・ギャザー・リストをそれぞれ構築する工程
    と、前記受信用および送信用の仮想デスクリプタ・ギャ
    ザー・リストの一部を受信デスクリプタ・キャッシュ・
    ウィンドウ,および送信デスクリプタ・キャッシュ・ウ
    ィンドウとして参照することにより送受信時に必要とな
    るデスクリプタへアクセスする工程とを含むことを特徴
    とするデスクリプタ制御方法。
  8. 【請求項8】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置の
    デスクリプタ制御方法において、前記通信制御装置のサ
    ポートするプロトコルがコネクション・オリエンテッド
    なプロトコルの場合に、1コネクション毎に、ホスト・
    メモリ上に散在するデスクリプタがそれぞれアドレス・
    ポインタによりチェーンされたデスクリプタ・チェーン
    を自動的に辿って解析することにより受信用,送信用お
    よび受信完了用の仮想デスクリプタ・ギャザー・リスト
    をそれぞれ構築する工程と、前記受信用,送信用および
    受信完了用の仮想デスクリプタ・ギャザー・リストの一
    部を受信デスクリプタ・キャッシュ・ウィンドウ,送信
    デスクリプタ・キャッシュ・ウィンドウ,および受信完
    了デスクリプタ・キャッシュ・ウィンドウとして参照す
    ることにより送受信時に必要となるデスクリプタへアク
    セスする工程とを含むことを特徴とするデスクリプタ制
    御方法。
  9. 【請求項9】 ホストとI/Oバスを介して接続され、
    ホストから通知されるデスクリプタによりネットワーク
    媒体を制御してパケットの送受信を行う通信制御装置の
    デスクリプタ制御方法において、前記通信制御装置のサ
    ポートするプロトコルがコネクション・レスのプロトコ
    ルの場合に、1コネクション毎に、ホスト・メモリ上に
    散在するデスクリプタがそれぞれアドレス・ポインタに
    よりチェーンされたデスクリプタ・チェーンを自動的に
    辿って解析することにより受信用および送信用の仮想デ
    スクリプタ・ギャザー・リストをそれぞれ構築する工程
    と、送受信アクションが発生する前に必要となるデスク
    リプタをホスト・メモリからプリフェッチする工程と、
    前記受信用および送信用の仮想デスクリプタ・ギャザー
    ・リストの一部を受信デスクリプタ・キャッシュ・ウィ
    ンドウ,および送信デスクリプタ・キャッシュ・ウィン
    ドウとして参照することにより送受信時に必要となるデ
    スクリプタへアクセスする工程とを含むことを特徴とす
    るデスクリプタ制御方法。
  10. 【請求項10】 ホストとI/Oバスを介して接続さ
    れ、ホストから通知されるデスクリプタによりネットワ
    ーク媒体を制御してパケットの送受信を行う通信制御装
    置のデスクリプタ制御方法において、前記通信制御装置
    のサポートするプロトコルがコネクション・オリエンテ
    ッドなプロトコルの場合に、1コネクション毎に、ホス
    ト・メモリ上に散在するデスクリプタがそれぞれアドレ
    ス・ポインタによりチェーンされたデスクリプタ・チェ
    ーンを自動的に辿って解析することにより受信用,送信
    用および受信完了用の仮想デスクリプタ・ギャザー・リ
    ストをそれぞれ構築する工程と、送受信アクションが発
    生する前に必要となるデスクリプタをホスト・メモリか
    らプリフェッチする工程と、前記受信用,送信用および
    受信完了用の仮想デスクリプタ・ギャザー・リストの一
    部を受信デスクリプタ・キャッシュ・ウィンドウ,送信
    デスクリプタ・キャッシュ・ウィンドウ,および受信完
    了デスクリプタ・キャッシュ・ウィンドウとして参照す
    ることにより送受信時に必要となるデスクリプタへアク
    セスする工程とを含むことを特徴とするデスクリプタ制
    御方法。
  11. 【請求項11】 各デスクリプタ・キャッシュ・ウィン
    ドウのスライド・モードとして、指定サイズだけウィン
    ドウをスライドさせるニューメリック・ウィンドウ・ス
    ライド・モードと、指定デスクリプタ位置へウィンドウ
    を直接動かすダイレクト・ウィンドウ・スライド・モー
    ドとを設けることを特徴とする請求項7,請求項8,請
    求項9または請求項10記載のデスクリプタ制御方法。
  12. 【請求項12】 コンピュータに、ホスト・メモリ上に
    散在するデスクリプタがそれぞれアドレス・ポインタに
    よりチェーンされたデスクリプタ・チェーンを自動的に
    辿って解析することにより仮想デスクリプタ・ギャザー
    ・リストを構築する処理と、前記仮想デスクリプタ・ギ
    ャザー・リストの一部を受信デスクリプタ・キャッシュ
    ・ウィンドウ,および送信デスクリプタ・キャッシュ・
    ウィンドウとして参照することにより送受信時に必要と
    なるデスクリプタへアクセスする処理とを実行させるた
    めのプログラム。
  13. 【請求項13】 コンピュータに、ホスト・メモリ上に
    散在するデスクリプタがそれぞれアドレス・ポインタに
    よりチェーンされたデスクリプタ・チェーンを自動的に
    辿って解析することにより仮想デスクリプタ・ギャザー
    ・リストを構築する処理と、送受信アクションが発生す
    る前に必要となるデスクリプタをホスト・メモリからプ
    リフェッチする処理と、前記仮想デスクリプタ・ギャザ
    ー・リストの一部を受信デスクリプタ・キャッシュ・ウ
    ィンドウ,および送信デスクリプタ・キャッシュ・ウィ
    ンドウとして参照することにより送受信時に必要となる
    デスクリプタへアクセスする処理とを実行させるための
    プログラム。
  14. 【請求項14】 コンピュータに、ホスト・メモリ上に
    散在するデスクリプタがそれぞれアドレス・ポインタに
    よりチェーンされたデスクリプタ・チェーンを自動的に
    辿って解析することにより仮想デスクリプタ・ギャザー
    ・リストを構築する処理と、前記仮想デスクリプタ・ギ
    ャザー・リストの一部を受信デスクリプタ・キャッシュ
    ・ウィンドウ,送信デスクリプタ・キャッシュ・ウィン
    ドウ,および受信完了デスクリプタ・キャッシュ・ウィ
    ンドウとして参照することにより送受信時に必要となる
    デスクリプタへアクセスする処理とを実行させるための
    プログラム。
  15. 【請求項15】 コンピュータに、ホスト・メモリ上に
    散在するデスクリプタがそれぞれアドレス・ポインタに
    よりチェーンされたデスクリプタ・チェーンを自動的に
    辿って解析することにより仮想デスクリプタ・ギャザー
    ・リストを構築する処理と、送受信アクションが発生す
    る前に必要となるデスクリプタをホスト・メモリからプ
    リフェッチする処理と、前記仮想デスクリプタ・ギャザ
    ー・リストの一部を受信デスクリプタ・キャッシュ・ウ
    ィンドウ,送信デスクリプタ・キャッシュ・ウィンド
    ウ,および受信完了デスクリプタ・キャッシュ・ウィン
    ドウとして参照することにより送受信時に必要となるデ
    スクリプタへアクセスする処理とを実行させるためのプ
    ログラム。
  16. 【請求項16】 各デスクリプタ・キャッシュ・ウィン
    ドウのスライド・モードとして、指定サイズだけウィン
    ドウをスライドさせるニューメリック・ウィンドウ・ス
    ライド・モードと、指定デスクリプタ位置へウィンドウ
    を直接動かすダイレクト・ウィンドウ・スライド・モー
    ドとを設けることを特徴とする請求項12,請求項1
    3,請求項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 true JP2003319014A (ja) 2003-11-07
JP3791448B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338525A (ja) * 2005-06-03 2006-12-14 Nec System Technologies Ltd 情報処理端末、ネットワークシステム、データ送信方法及びデータ送信プログラム
JP2008146486A (ja) * 2006-12-12 2008-06-26 Canon Inc 通信装置、通信装置の制御方法及びプログラム
JP2009296546A (ja) * 2008-06-09 2009-12-17 Canon Inc 通信装置及び制御方法
US7684439B2 (en) 2004-12-21 2010-03-23 Samsung Electronics Co., Ltd Apparatus and method for transmitting data in a communication system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7684439B2 (en) 2004-12-21 2010-03-23 Samsung Electronics Co., Ltd Apparatus and method for transmitting data in a communication system
JP2006338525A (ja) * 2005-06-03 2006-12-14 Nec System Technologies Ltd 情報処理端末、ネットワークシステム、データ送信方法及びデータ送信プログラム
JP4502887B2 (ja) * 2005-06-03 2010-07-14 Necシステムテクノロジー株式会社 情報処理端末、ネットワークシステム、データ送信方法及びデータ送信プログラム
JP2008146486A (ja) * 2006-12-12 2008-06-26 Canon Inc 通信装置、通信装置の制御方法及びプログラム
JP2009296546A (ja) * 2008-06-09 2009-12-17 Canon Inc 通信装置及び制御方法

Also Published As

Publication number Publication date
JP3791448B2 (ja) 2006-06-28

Similar Documents

Publication Publication Date Title
US7472205B2 (en) Communication control apparatus which has descriptor cache controller that builds list of descriptors
US10015117B2 (en) Header replication in accelerated TCP (transport control protocol) stack processing
US20080028103A1 (en) Memory-mapped buffers for network interface controllers
US20060274748A1 (en) Communication device, method, and program
US9569366B2 (en) System and method to provide non-coherent access to a coherent memory system
US5884313A (en) System and method for efficient remote disk I/O
US5752078A (en) System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US20110004732A1 (en) DMA in Distributed Shared Memory System
US9639464B2 (en) Application-assisted handling of page faults in I/O operations
US7502877B2 (en) Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
EP1750202A1 (en) Combining packets for a packetized bus
US9071525B2 (en) Data receiving apparatus, data receiving method, and program storage medium
JP2002351817A (ja) メモリにアクセスする方法及び装置
WO2010117528A2 (en) Opportunistic improvement of mmio request handling based on target reporting of space requirements
US8576861B2 (en) Method and apparatus for processing packets
CN101176076A (zh) 用于直接高速缓存访问的直接存储器存取重新排序
EP1665681B1 (en) Speculative pre-fetch of a protocol control block from an external memory unit
US20060136697A1 (en) Method, system, and program for updating a cached data structure table
CN101937401A (zh) 基于监听响应信息的目录高速缓存分配
CN106250322B (zh) 一种写数据的方法和装置
JP3791448B2 (ja) 通信制御装置およびデスクリプタ制御方法
US20230014415A1 (en) Reducing transactions drop in remote direct memory access system
Zhang et al. Anatomy of UDP and M-VIA for cluster communication
JP5054716B2 (ja) 通信プロトコル処理回路、情報処理装置及び通信プロトコル処理方法
US10042809B2 (en) Method for communication using PCI express dedicated communication module and network device including the same

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