JP2005184051A - 通信制御装置 - Google Patents

通信制御装置 Download PDF

Info

Publication number
JP2005184051A
JP2005184051A JP2003417417A JP2003417417A JP2005184051A JP 2005184051 A JP2005184051 A JP 2005184051A JP 2003417417 A JP2003417417 A JP 2003417417A JP 2003417417 A JP2003417417 A JP 2003417417A JP 2005184051 A JP2005184051 A JP 2005184051A
Authority
JP
Japan
Prior art keywords
descriptor
communication control
processor unit
control apparatus
network processor
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.)
Withdrawn
Application number
JP2003417417A
Other languages
English (en)
Inventor
Hisashi Ozaki
久 尾崎
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 Engineering Ltd
Original Assignee
NEC Engineering Ltd
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 Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2003417417A priority Critical patent/JP2005184051A/ja
Publication of JP2005184051A publication Critical patent/JP2005184051A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 ホスト装置と入出力バスを介して接続され、ホスト装置から通知されるディスクリプタによりネットワーク媒体を介してパケットの送受信を制御する通信制御装置において、ネットワーク処理の効率化を図る。
【解決手段】 ホスト装置より通知されたディスクリプタから管理テーブルを作成し、通信制御装置1に実装される記憶手段10にキャッシュとしてディスクリプタ・チェインを展開する。ホスト装置から通知されたディスクリプタから記憶手段10のFIFO制御を行なってもよく、記憶手段10からディスクリプタを読み出して、再度使用するディスクリプタ・アドレスを指定するネットワーク・プロセッサ・ユニット14を有するように構成する。ネットワーク・プロセッサ・ユニット14がマルチ・プロセッサでの場合には、多重アクセスにおいて、使用中のディスクリプタがキャッシュ・リプレイスされないようにする。
【選択図】 図1

Description

本発明は、通信制御装置に関し、特に、ホスト装置とI/Oバス(入出力バス)を介して接続され、ネットワーク媒体を制御してパケットの送受信を行なうための通信制御装置に関する。
近年のインターネットの普及により、膨大なネットワーク処理を行うための高速なネットワーク・サーバの需要が高まっている。インターネットでは、TCP/IP(Transmission Control Protocol/Internet Protocol)と呼ばれる通信プロトコルを用いているが、プロトコルを処理するための負荷は、サーバのホスト・CPU(Central Processing Unit)にとっては無視できないほど大きいものとなっている。
この問題を解決するため、通信制御装置にネットワーク・プロセッサ・ユニットを組み込み、ある程度のプロトコル処理をネットワーク・プロセッサ・ユニット側で実行させ、ホスト・CPUの負荷を低下させる方法が提案されている。ここで、ネットワーク・プロセッサ・ユニットがパケットの送受信を行なう際に、ホスト装置側の送受信バッファアドレスや、バッファサイズ等のホストCPUより記述されたディスクリプタが必要となる。
しかし、ネットワーク・プロセッサ・ユニットがTCP等のコネクション・オリエンテッドなプロトコルの処理を行なう場合には、パケットの再送処理やACK(ACKnowledge)パケットの処理等が発生し、ディスクリプタのリードが何度も生じる。
さらに、ネットワーク・プロセッサ・ユニットは、ネットワーク処理性能を上げるため、ディスクリプタを高速かつ容易に読み出してパケット送受信処理を行なう必要がある。そのため、ホスト・CPUは、セッション確立の数だけディスクリプタ・チェインを用意し、ディスクリプタの参照の簡易性を高め、リードタイムの軽減を図ることが必要となる。
しかし、膨大なネットワーク処理を行うためにセッションの確立も多数になり、セッション確立の数に比例して、ホスト・メモリ上に展開されたディスクリプタ・チェインの数も増大し、通信制御装置に実装される小容量のメモリでは、すべてのディスクリプタ・チェインを展開することができなくなるという問題があった。
そこで、本発明は、上記従来の技術における問題点に鑑みてなされたものであって、ネットワーク・プロセッサ・ユニットによるディスクリプタ制御のオーバーヘッドを低減することができ、ディスクリプタ・リードの性能を低下させることがなく、ネットワーク処理の効率化を図ることのできる通信制御装置を提供することを目的とする。
上記目的を達成するため、本発明は、ホスト装置と入出力バスを介して接続され、前記ホスト装置から通知されるディスクリプタによりネットワーク媒体を介してパケットの送受信を制御する通信制御装置において、前記ホスト装置より通知されたディスクリプタから管理テーブルを作成し、該通信制御装置に実装される記憶手段にキャッシュとしてディスクリプタ・チェインを展開することを特徴とする。
そして、本発明によれば、ホスト装置より通知されたディスクリプタを通信制御装置の記憶手段にチェイン展開することにより、該記憶手段の状態に関わらず、該通信制御装置のネットワーク・プロセッサ・ユニットに実装するファームウェアから容易にかつ、高速にリード処理を実行することができ、ネットワーク・プロセッサ・ユニットによるディスクリプタ制御のオーバーヘッドを低減することができる。
前記通信制御装置において、前記ホスト装置から通知されたディスクリプタから前記記憶手段のFIFO制御を行なうようにすることができる。これによって、セッション状態に応じてキャッシュのリプレイスを実行することができる。
また、前記通信制御装置を、前記記憶手段からディスクリプタを読み出し、再度使用するディスクリプタ・アドレスを指定するネットワーク・プロセッサ・ユニットを有するように構成することができる。
これによって、ネットワーク・プロセッサ・ユニットが使用するディスクリプタのメモリ・アドレスを直接指定することができ、送受信が再開した場合でも、ネットワーク・プロセッサ・ユニットが指定したディスクリプタから読み出すことができ、リード処理を高速で実行することができる。
さらに、前記通信制御装置において、前記ネットワーク・プロセッサ・ユニットがマルチ・プロセッサであり、多重アクセスにおいて、使用中のディスクリプタがキャッシュ・リプレイスされないようにする手段を有するように構成することができる。
これによって、送受信中のセッションをロックすることにより、送受信中のセッションのリプレイスが起こらないようにすることができ、ネットワーク・プロセッサ・ユニットによるディスクリプタ・リード性能が低下するのを防止することができる。
以上説明したように、本発明によれば、ネットワーク・プロセッサ・ユニットによるディスクリプタ制御のオーバーヘッドを低減し、ディスクリプタ・リードの性能を低下させずにネットワーク処理の効率化を図ることのできる通信制御装置を提供することができる。
次に、本発明の実施の形態について図面を参照しながら詳細に説明する。
図1は、本発明にかかる通信制御装置の全体構成を示すブロック図であって、この通信制御装置1は、ディスクリプタをキャッシュするディスクリプタ・キャッシュ・メモリ10と、ディスクリプタ・キャッシュ機構の制御を行なうディスクリプタ・キャッシュ・コントローラ11と、ホスト・メモリ4からデータ転送を行なうDMA(Direct Memory Access)コントローラ12と、I/Oバス2と通信制御装置1との間の制御を行なうI/Oバス・コントローラ13と、ホスト・メモリ4からのパケット・データを授受するネットワーク・プロセッサ・ユニット14と、送受信のスケジューリングを行なう送信/受信スケジューラ・ユニット15とを備える。尚、送信/受信スケジューラ・ユニット15は、パケット・データ等が送受信されるネットワーク媒体3と接続され、I/Oバス・コントローラ13は、I/Oバス2を介して、ディスクリプタ・チェインや、送受信パケットが展開されているホスト・メモリ4及びホスト・CPU5と接続される。
次に、上記ディスクリプタ・キャッシュ・メモリ10について、図2を参照しながら詳細に説明する。
このディスクリプタ・キャッシュ・メモリ10は、ホスト・メモリ4に展開される各セッションのディスクリプタ・チェインを通信制御装置1に実装されるメモリ容量の限界まで展開する。各セッションのディスクリプタ・キャッシュ・メモリ10には、固定容量の制限を設ける。ホスト・CPU5から新たなセッションが確立されたことをI/Oバス・コントローラ13を介してディスクリプタ・キャッシュ・コントローラ11が通知を受けた際に、新たなセッションのディスクリプタ・チェインを展開するように、ディスクリプタ・キャッシュ・コントローラ11は、DMAコントローラ12に指示し、DMAコントローラ12を介して、ホスト・メモリ4上に展開されているセッションのディスクリプタ・チェインがディスクリプタ・キャッシュ・メモリ10上に記憶される。
次に、図3、図4及び図5を参照しながら、ディスクリプタ・キャッシュ・コントローラ11を構成するディスクリプタ・キャッシュ・テーブル100、リプレイス対象FIFO(First In First Out)101及びリプレイス・ロック・レジスタ102について詳細に説明する。
ディスクリプタ・キャッシュ・テーブル100は、ホスト・メモリ4上に展開されるディスクリプタ・チェイン数と等しい数のテーブルを備え、各セッションのディスクリプタ・チェイン情報を管理する。ホスト・CPU5からセッションが確立されたことについてI/Oバス・コントローラ13を介してディスクリプタ・キャッシュ・コントローラ11が通知を受けた際には、ディスクリプタ・キャッシュ・コントローラ11は、ディスクリプタ・キャッシュ・テーブル100内の情報を更新する。
リプレイス対象FIFO101は、新たなセッションが確立される度に更新されるディスクリプタ・キャッシュ・メモリ10の状態を管理する。ディスクリプタ・キャッシュ・メモリ10の容量を超えるセッションが確立された際には、リプレイス対象FIFO101の先頭セッションがディスクリプタ・キャッシュ・メモリ10からリプレイスされる対象のセッションとなる。
リプレイス・ロック・レジスタ102は、ネットワーク・プロセッサ・ユニット14が使用中のディスクリプタが属するセッションID(IDentification)を管理する。このレジスタの情報を使用し、ディスクリプタ・キャッシュ・コントローラ11は、リプレイス・ロックの状態を管理する。ネットワーク・プロセッサ・ユニット14がマルチ・プロセッサの場合には、ネットワーク・プロセッサ・ユニット14の数と等しい数のリプレイス・ロック・レジスタ102を備える。ディスクリプタ・キャッシュ・メモリ10の容量を超えるセッションが確立された際には、リプレイス対象FIFO101の先頭に位置するセッションIDがディスクリプタ・キャッシュ・メモリからリプレイスされる対象となるが、リプレイスされる対象のセッションIDと、リプレイス・ロック・レジスタ102のセッションIDとが一致する場合には、リプレイス対象のセッションのリプレイスを停止する。
次に、図6を参照しながら、ディスクリプタ・キャッシュ・テーブル100を構成するスタート・ディスクリプタ・アドレス200及びエンド・ディスクリプタ・アドレス201について詳細に説明する。
ディスクリプタは、ホスト・メモリ4上でチェイン構造となっており、ディスクリプタ・キャッシュ・テーブル100は、各セッションのディスクリプタ・チェインのスタート・ディスクリプタ・アドレス200と、エンド・ディスクリプタ・アドレス201とを管理して、この情報をもとに、該当セッションの通信が開始/再開された場合には、ディスクリプタ・チェインをディスクリプタ・キャッシュ・メモリ10上に展開する。
次に、図7を参照しながら、ネットワーク・プロセッサ・ユニット14を構成するディスクリプタ・リード・レジスタ300及びアドレス・指示レジスタ301について詳細に説明する。
ネットワーク・プロセッサ・ユニット14がディスクリプタを読み出す際には、ディスクリプタ・リード・レジスタ300に該当セッションIDを指定することにより、ディスクリプタ・キャッシュ・コントローラ11からディスクリプタがネットワーク・プロセッサ・ユニット14へと転送される。アドレス・指示レジスタ301は、該当セッションの送受信が再開された場合、どのディスクリプタの処理から始めたいかを、ネットワーク・プロセッサ・ユニット14が指定するレジスタである。ディスクリプタ・キャッシュ・コントローラ11は、このレジスタに指定されたディスクリプタを先頭とするディスクリプタ・チェインをディスクリプタ・キャッシュ・メモリ10上に展開する。
次に、上記構成を有する通信制御装置1のパケット送受信及びディスクリプタ・リプレイス動作について説明する。
(1)図1において、ホストCPU5からI/Oバス2を介して、ディスクリプタ・キャッシュ・コントローラ11に通知することにより、ディスクリプタ・キャッシュ・コントローラ11は、セッションが確立されたことを認識する。
(2)ディスクリプタ・キャッシュ・コントローラ11は、DMAコントローラ12に該当セッションのディスクリプタを、図2に示すディスクリプタ・キャッシュ・メモリ10に記憶するように指示し、DMAコントローラ12はホスト・メモリ4上に展開されるディスクリプタ・チェインをディスクリプタ・キャッシュ・メモリ10に記憶する。
(3)ディスクリプタ・キャッシュ・メモリ10上に展開された時点で、ディスクリプタ・キャッシュ・コントローラ11は、ディスクリプタ・キャッシュ・テーブル100(図3参照)のスタート・ディスクリプタ・アドレス200(図6参照)と、エンド・ディスクリプタ・アドレス201とをディスクリプタ・キャッシュ・メモリ10上に展開されるディスクリプタ・チェインの先頭アドレス、最後尾アドレスで更新する。また、リプレイス対象FIFO101に新たに確立されたセッションIDが存在しない場合には、該当セッションIDをエンキューする。
(4)セッションが確立されたセッションIDをディスクリプタ・キャッシュ・コントローラ11から送信/受信スケジューラユニット15に通知する。
(5)送信/受信スケジューラユニット15から送信/受信要求が存在する旨の通知がネットワーク・プロセッサ・ユニット14に送られる。
(6)ネットワーク・プロセッサ・ユニット14は、ディスクリプタ・リード・レジスタ300(図7参照)を用いて、該当セッションIDを指示して、ディスクリプタ・キャッシュ・コントローラ11を介して、ディスクリプタ・キャッシュ・メモリ10からディスクリプタを読み出す。
(7)ディスクリプタ・キャッシュ・コントローラ11は、ディスクリプタ・リード・レジスタ300が書き込まれたタイミングで、ネットワーク・プロセッサ・ユニット14と対応するリプレイス・ロック・レジスタ102(図5参照)を読み出されたセッションIDの値でセットする。
(8)ネットワーク・プロセッサ・ユニット14は、ディスクリプタ・リードが完了すると、アドレス・指示レジスタ301(図7参照)を使用して、送受信が再開された時に使用するディスクリプタ・アドレスをディスクリプタ・キャッシュ・コントローラ11に通知する。
(9)ディスクリプタ・キャッシュ・コントローラ11は、アドレス・指示レジスタ301に書き込まれたアドレスでスタート・ディスクリプタ・アドレス200(図6参照)を更新する。
(10)送受信を行なっている際に、ディスクリプタ・キャッシュ・メモリ10の容量を超えるセッションが確立された場合には、リプレイス対象FIFO101(図4参照)の先頭にあるセッションが使用するディスクリプタ・キャッシュ・メモリ10を新たに確立されたセッションIDのディスクリプタ・チェインのエリアとして使用する。
(11)リプレイス対象のセッションIDがリプレイス・ロック・レジスタ102のセッションIDと一致する場合には、リプレイスを行なわないで、ロックさせておく。
次に、本発明にかかる通信制御理装置の第2の実施形態について、図8を中心に参照しながら説明する。第1の実施形態においては、ディスクリプタ・キャッシュ・メモリ10をホスト・メモリ4よりも小容量のメモリとしていたが、本実施の形態では、ホスト・メモリと同容量のメモリ10’を有する。
以下、ディスクリプタ・キャッシュ・メモリ10’を用いた場合の通信制御装置1’のパケット送受信及びディスクリプタ・リプレイス動作について詳細に説明する。
(1)ホストCPU5からI/Oバスを介して、ディスクリプタ・キャッシュ・コントローラ11に通知することにより、ディスクリプタ・キャッシュ・コントローラ11は、新たなセッションが確立されたことを認識する。
(2)ディスクリプタ・キャッシュ・コントローラ11は、DMAコントローラ12に該当セッションのディスクリプタをディスクリプタ・キャッシュ・メモリ10’に記憶するように指示し、DMAコントローラ12は、ホスト・メモリ4上に展開されるディスクリプタ・チェインをディスクリプタ・キャッシュ・メモリ10’に記憶する。
(3)ディスクリプタ・キャッシュ・メモリ10’上に展開された時点で、ディスクリプタ・キャッシュ・コントローラ11は、ディスクリプタ・キャッシュ・テーブル100(図3参照)のスタート・ディスクリプタ・アドレス200(図6参照)と、エンド・ディスクリプタ・アドレス201とをディスクリプタ・キャッシュ・メモリ10’上に展開されるディスクリプタ・チェインの先頭アドレス、最後尾アドレスで更新する。
(4)セッションが確立されたセッションIDをディスクリプタ・キャッシュ・コントローラ11から送信/受信スケジューラユニット15に通知する。
(5)送信/受信スケジューラユニット15から送信/受信要求が存在する旨の通知がネットワーク・プロセッサ・ユニット14に送られる。
(6)ネットワーク・プロセッサ・ユニット14は、ディスクリプタ・リード・レジスタ300を用いて、該当セッションIDを指示して、ディスクリプタ・キャッシュ・コントローラ11を介して、ディスクリプタ・キャッシュ・メモリ10’からディスクリプタをリードする。
以上のように、第1の実施の形態にかかる通信制御装置1では、キャッシュのリプレイス動作が発生し、ネットワーク・プロセッサ・ユニット14のファームウェアが実施する指示も増える。そのため、リプレイスにかかる動作をすべて削除することができる第2の実施の形態にかかる通信制御装置1’の方が高性能である。
本発明にかかる通信制御装置の第1の実施形態の構成を示すブロック図である。 図1の通信制御装置のディスクリプタ・キャッシュ・メモリの構成を示すブロック図である。 図1の通信制御装置のディスクリプタ・キャッシュ・コントローラを構成するリプレイス対象FIFOを示すブロック図である。 図1の通信制御装置のディスクリプタ・キャッシュ・コントローラを構成するディスクリプタ・キャッシュ・テーブルを示すブロック図である。 図1の通信制御装置のディスクリプタ・キャッシュ・コントローラを構成するリプレイス・ロック・レジスタを示すブロック図である。 図1の通信制御装置のディスクリプタ・キャッシュ・テーブルを構成するスタート・ディスクリプタ・アドレス及びエンド・ディスクリプタ・アドレスを示すブロック図である。 図1の通信制御装置のネットワーク・プロセッサ・ユニットを構成するディスクリプタ・リード・レジスタ及びアドレス・指示レジスタを示すブロック図である。 本発明にかかる通信制御装置の第2の実施形態の構成を示すブロック図である。
符号の説明
1、1’ 通信制御装置
2 I/Oバス
3 ネットワーク媒体
4 ホスト・メモリ
5 ホストCPU
10、10’ ディスクリプタ・キャッシュ・メモリ
11 ディスクリプタ・キャッシュ・コントローラ
12 DMAコントローラ
13 I/Oバス・コントローラ
14 ネットワーク・プロセッサ・ユニット
15 送信/受信スケジューラユニット
100 ディスクリプタ・キャッシュ・テーブル
101 リプレイス対象FIFO
102 リプレイス・ロック・レジスタ
200 スタート・ディスクリプタ・アドレス
201 エンド・ディスクリプタ・アドレス
300 ディスクリプタ・リード・レジスタ
301 アドレス・指示レジスタ

Claims (4)

  1. ホスト装置と入出力バスを介して接続され、前記ホスト装置から通知されるディスクリプタによりネットワーク媒体を介してパケットの送受信を制御する通信制御装置において、
    前記ホスト装置より通知されたディスクリプタから管理テーブルを作成し、該通信制御装置に実装される記憶手段にキャッシュとしてディスクリプタ・チェインを展開することを特徴とする通信制御装置。
  2. 前記ホスト装置から通知されたディスクリプタから前記記憶手段のFIFO制御を行なうことを特徴とする請求項1記載の通信制御装置。
  3. 前記記憶手段からディスクリプタを読み出し、再度使用するディスクリプタ・アドレスを指定するネットワーク・プロセッサ・ユニットを有することを特徴とする請求項1または2記載の通信制御装置。
  4. 前記ネットワーク・プロセッサ・ユニットがマルチ・プロセッサであり、多重アクセスにおいて、使用中のディスクリプタがキャッシュ・リプレイスされないようにする手段を有することを特徴とする請求項1、2または3記載の通信制御装置。
JP2003417417A 2003-12-16 2003-12-16 通信制御装置 Withdrawn JP2005184051A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003417417A JP2005184051A (ja) 2003-12-16 2003-12-16 通信制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003417417A JP2005184051A (ja) 2003-12-16 2003-12-16 通信制御装置

Publications (1)

Publication Number Publication Date
JP2005184051A true JP2005184051A (ja) 2005-07-07

Family

ID=34779918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003417417A Withdrawn JP2005184051A (ja) 2003-12-16 2003-12-16 通信制御装置

Country Status (1)

Country Link
JP (1) JP2005184051A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472205B2 (en) * 2002-04-24 2008-12-30 Nec Corporation Communication control apparatus which has descriptor cache controller that builds list of descriptors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472205B2 (en) * 2002-04-24 2008-12-30 Nec Corporation Communication control apparatus which has descriptor cache controller that builds list of descriptors

Similar Documents

Publication Publication Date Title
JP4504977B2 (ja) オフロードユニットを使用したtcp接続のためのデータ処理
JP5902834B2 (ja) 暗示的なメモリの登録のための明示的なフロー制御
KR100992282B1 (ko) 통신 접속 수립 방법과 시스템, 데이터 전송 방법과 시스템, 및 컴퓨터 판독 가능한 저장 매체
US7472205B2 (en) Communication control apparatus which has descriptor cache controller that builds list of descriptors
US20070041383A1 (en) Third party node initiated remote direct memory access
JP5022691B2 (ja) 通信装置、その制御方法及びプログラム
KR20070030285A (ko) 데이터 전송 방법, 데이터 전송 시스템 및 컴퓨터 판독가능한 기록 매체
JP5094482B2 (ja) 処理装置及びその処理方法
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US7720979B2 (en) Communication apparatus
US11336297B2 (en) DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium
JP5028339B2 (ja) 通信装置及び制御方法
JP2009071780A (ja) 通信情報処理装置、通信情報処理システム、及び通信情報処理プログラム
JP2005184051A (ja) 通信制御装置
CN110445580A (zh) 数据发送方法及装置、存储介质、电子装置
JP2009116386A (ja) 情報処理装置および方法、並びにプログラム
US20170265103A1 (en) Communication device, communication method, and non-transitory computer readable medium
US20230062831A1 (en) Communication apparatus and control method thereof, and storage medium
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
JP2000259523A (ja) データ転送装置、lan通信システム及びデータ転送方法
JP2021129162A (ja) 通信装置、制御方法およびプログラム
CN113965627A (zh) 一种发送数据的方法、低延时接收数据的方法及相关装置
CN113886294A (zh) 一种基于rdma的低延时数据传输方法及相关装置
CN113886295A (zh) 一种标签数据高效且低延时的传输方法及相关装置、系统
JP2021093611A (ja) 通信装置、制御方法およびプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070306