JP3849578B2 - 通信制御装置 - Google Patents

通信制御装置 Download PDF

Info

Publication number
JP3849578B2
JP3849578B2 JP2002152826A JP2002152826A JP3849578B2 JP 3849578 B2 JP3849578 B2 JP 3849578B2 JP 2002152826 A JP2002152826 A JP 2002152826A JP 2002152826 A JP2002152826 A JP 2002152826A JP 3849578 B2 JP3849578 B2 JP 3849578B2
Authority
JP
Japan
Prior art keywords
transmission
packet
processor
processing
queue
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
JP2002152826A
Other languages
English (en)
Other versions
JP2003348183A (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 JP2002152826A priority Critical patent/JP3849578B2/ja
Priority to US10/417,146 priority patent/US7472205B2/en
Publication of JP2003348183A publication Critical patent/JP2003348183A/ja
Application granted granted Critical
Publication of JP3849578B2 publication Critical patent/JP3849578B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、通信制御装置に関し、特に、ネットワークとホストとの間に接続された通信制御装置に関する。
【0002】
【従来の技術】
従来、ネットワークサーバはインターネット等の通信ネットワークの処理を行っている。インターネットでは通信プロトコルとしてTransmissionControl Protocol/Internet Protocol(TCP/IP)を用いているが、このプロトコルを処理するための重負荷がネットワークサーバのホストにかかる。
【0003】
この問題を解決するために、ホストとネットワークとの間に複数の通信制御装置を組み込み、ある程度のTCP/IP処理を通信制御装置側で実行させ、ホストの負荷を減らす方法がある。
【0004】
【発明が解決しようとする課題】
従来の通信制御装置では、ネットワークとの送受信処理を単一のプロセッサで行っていたため、送受信処理に時間がかかるという問題があった。仮に、ネットワークとの送受信処理を複数のプロセッサに分散させて行わせたとしても、同一のコネクションの送受信処理が異なるプロセッサにディスパッチされると、リソースの競合回避やコヒーレンシ維持の処理を行う必要が生じ、その結果、処理が複雑になり遅延してしまうという問題がある。
【0005】
また、ギガビットイーサネット(イーサネットは登録商標)などのような高速なネットワークと接続されていたり、通信制御装置が複数のポートを有している場合には、短時間でより多くのディスパッチを行う必要があり、ディスパッチ処理を高速に行う必要がある。
【0006】
そこで、本発明の目的は、複数のプロセッサに送受信処理をディスパッチする通信制御装置を提供することにある。
【0007】
また、本発明の他の目的は、同一のコネクションに係る送受信処理を一貫性を保ってディスパッチすることができる通信制御装置を提供することにある。
【0008】
さらに、本発明の他の目的は、複数のプロセッサに送受信処理を高速にディスパッチすることができる通信制御装置を提供することにある。
【0009】
【課題を解決するための手段】
上記課題を解決するために本発明の通信制御装置は、ネットワークとこのネットワークを介して通信を行うホストとの間に接続された通信制御装置であって、前記ネットワークと前記ホストとの間のパケットの送受信処理を行う複数の第1のプロセッサと、この複数の第1のプロセッサに対して前記送受信処理の割り当てを行う第2のプロセッサとを含み、前記第2のプロセッサは、前記送受信処理の単位毎に該送受信処理を前期複数の第1のプロセッサに対し互いに排他的に割り当てることを特徴とする。
【0010】
また、本発明の他の通信制御装置は、前記送受信処理の単位は送受信の識別子により判別されることを特徴とする。
【0011】
さらに、本発明の他の通信制御装置は、前記第1のプロセッサが処理中の送受信処理を示すテーブルを含み、新たに割り当てを行う送受信処理の単位が前記複数の第1のプロセッサに既に割り当てられているものと同一か否かを比較することを特徴とする。
【0012】
また、本発明の他の通信制御装置は、前記第2のプロセッサは後続のパケットに関する送受信処理のキューを格納するレジスタを含み、前記第2のプロセッサは前記キューを参照して前記送受信処理を前記複数の第1のプロセッサのいずれかに割り当てることを特徴とする。
【0013】
さらに、本発明の他の通信制御装置は、前記第2のプロセッサは、割り当てた第1のパケット処理と同一の単位の送受信処理の第2のパケット処理が前記キュー内にある場合、前記第1および第2のパケット処理を連続して割り当て処理を行うことを特徴とする。
【0014】
また、本発明の他の通信制御装置は、前記キュー内に前記第2のパケット処理より先行するが前記第1のパケット処理と送受信処理の単位が異なる第3のパケット処理がある場合、前記第2のパケット処理を前記第3のパケット処理を追い越して割り当て処理を行うことを特徴とする。
【0015】
さらに、本発明の他の通信制御装置は、前記第2のプロセッサは、前記キュー内に同一単位の送受信処理に関するものが複数ある場合、当該単位の送受信処理に割り当てられている前記第1のプロセッサが受け付けることができるパケット処理の数の許容範囲内にあるとき、パケット処理の割り当てを行うことを特徴とする。
【0016】
また、本発明の他の通信制御装置は、前記第2のプロセッサは、前記キュー内に同一単位の送受信処理に関するものが複数ある場合、これらの数が当該単位の送受信処理に割り当てられている前記第1のプロセッサが受け付けることができるパケット処理の数を超えたときには、前記キュー内の別の単位の送受信処理の割り当てを行うようにしたことを特徴とする。
【0017】
さらに、本発明の他の通信制御装置は、前記キュー内のk(kは1以上の整数)番目のパケット処理が特定の前記第1のプロセッサに割り当てられた場合、該特定の前記第1のプロセッサがさらにn(nは1以上の整数)個のパケット処理の割り当てが可能であるとき、前記第2のプロセッサは、前記キュー内に前記k番目のパケット処理と同一の送受信処理単位のパケット処理が(n+1)個以上含まれるならば前記k番目のパケット処理に後続するn個のパケット処理を前記特定の第1のプロセッサに割り当て、前記キュー内に前記k番目のパケット処理と同一の送受信処理のパケット処理がn個以下含まれるならば全てのパケット処理を前記特定の第1のプロセッサに割り当てることを特徴とする。
【0018】
また、本発明の他の通信制御装置は、前記キュー内のk(kは2以上の整数)番目のパケット処理について前記第1のプロセッサに対する割り当てを行う場合、該k番目のパケット処理の送受信処理の単位と前記キュー内の始めから(k−1)番目のパケット処理の送受信処理の単位とが同一であるとき、該k番目のパケット処理の割り当て処理は行わないことを特徴とする。
【0019】
【発明の実施の形態】
次に本発明の通信制御装置の実施の形態について図面を参照して詳細に説明する。
【0020】
図1を参照すると、本発明の通信制御装置100を含むシステムは、少なくとも1つの中央処理装置(Central Processing Unit:CPU)10、プロセッサバス20、メモリコントローラ30、ホストメモリ40、入出力(I/O)コントローラ50、I/Oバス60、I/Oデバイス70および通信制御装置100を含む。
【0021】
少なくとも1つのCPU10は、プロセッサバス20を介して、メモリコントローラ30に接続されている。本実施の形態では、2つのCPU10がプロセッサバス20に接続されている。メモリコントローラ30は、CPU10とホストメモリ40とI/Oコントローラ50との間の制御を行う。I/Oコントローラ50にはI/Oバス60を介して単一または複数のI/Oデバイス70が接続されている。通信制御装置100は、I/Oバス60に接続されている。通信制御装置100はイーサーネット(登録商標)などのLocal Area Network(LAN)等のネットワークメディア150の制御を行う。通信制御装置100もI/Oデバイスの一種である。以後、この基本システムにおけるI/Oバス60より上位側を単純にホストという。
【0022】
なお、このシステムは一例であり、本発明の通信制御装置は上位システムには依存しない。また例として挙げたシステムは、パーソナルコンピュータ、ワークステーションまたはサーバのシステムであってよい。この場合、I/Oバス60はPeripheral Component Interconnect(PCI)バスまたはPCI−Xバスで構成してよい。ネットワークメディア150はイーサネット(登録商標)、ギガビットイーサネット(イーサネットは登録商標)や無線などのLANまたはインターネットであってよい。
【0023】
図2を参照すると、通信制御装置100は、I/Oバスコントローラ101、複数のオフロードプロセッサユニット(OPU)110、スケジューラプロセッサユニット(SPU)120、メディアアクセスコントローラ130、パケット識別子131、メモリコントローラ140、パケットバッファ141、Txキュー150、Rxキュー160、ハッシュサーチエンジン170、メモリコントローラ180およびメモリコントローラ190を含む。
【0024】
I/Oバスコントローラ101は、I/Oバス60と通信制御装置100との間のデータ転送を制御する。I/Oバスコントローラ101は、PCIコントローラであってよい。
【0025】
メディアアクセスコントローラ130は、ギガビット・イーサネット(イーサネットは登録商標)などのネットワークメディアを制御し、ネットワーク151と通信制御装置100との間のデータの送受信を行う。パケット識別子131は、受信パケットのヘッダ部を解析し、コネクションの特定に必要となる情報を抜き出す。ハッシュサーチエンジン170は、パケット情報のハッシュサーチを行う。
【0026】
パケットバッファ141は、メモリコントローラ140を介して受信パケットおよび送信パケットを格納する。
【0027】
Txキュー150は、ホストからの送信要求をキューイングする。Rxキュー160は、ハッシュサーチの結果をキューイングする。スケジューラプロセッサユニット120は、Txキュー150およびRxキュー160の内容に基づいて送受信のスケジューリングを行う。
【0028】
メモリコントローラ180は、I/Oバスコントローラ101および複数のOPUの命令・データメモリ181に対する書き込み・読み出しを制御する。命令・データメモリ181は、通信制御装置100内の各プロセッサの命令やデータなどを格納する。メモリコントローラ190は、ハッシュサーチエンジン170およびOPU110のPCBメモリ191に対する書き込み・読み出しを制御する。PCBメモリ191は、ハッシュサーチ用のハッシュテーブルや、ホストによって生成されたそれぞれのコネクション固有のコンテキスト情報などを格納する。本実施の形態では、コンテキスト情報は、プロトコル・コントロール・ブロック(Protocol Control Block:PCB)である。PCBは、コネクション毎に生成され送受信に使用される。
【0029】
複数のオフロードプロセッサユニット110の各々は、受信パケットのプロトコル解析およびホストメモリ40へのデータ転送の起動や、送信データ転送の起動および送信処理などを行う。それぞれのオフロードプロセッサユニット110は、ネットワークプロセッサユニットを含む。
【0030】
図3を参照すると、オフロードプロセッサユニット110は、ネットワークプロセッサ1101、プロセッサコントローラ1102、ディスパッチキュー1103、DMAエンジン1104、メモリコントローラ1105およびローカルデータメモリ1106および1107を含む。
【0031】
ネットワークプロセッサ1101のプロセッサインタフェースはプロセッサコントローラ1102に接続されている。プロセッサコントローラ1102は、各種制御用レジスタを持ち、命令/データメモリ181を含む通信制御装置100内のリソースにアクセスすることができる。
【0032】
メモリコントローラ1105は、ネットワークプロセッサ1101のローカルデータメモリ1106および1107に対する書き込み・読み出しを制御する。ローカルデータメモリ1106および1107は、2バンク構成のデュアルポートメモリである。ローカルデータメモリ1106および1107の各々の一方のポートはメモリコントローラ1105を介してネットワークプロセッサ1101に接続され、他方のポートはDMAエンジン1104に接続されている。DMAエンジン1104は、PCBメモリ191およびスケジューラプロセッサユニット120(のパケット情報メモリ1217)に接続されている。DMAエンジン1104は、プロセッサコントローラ1102を介してネットワークプロセッサ1101からも利用可能となっている。
【0033】
図4を参照すると、ローカルデータメモリ1106は、パケット情報を格納する領域11061およびPCBを格納する領域11062を有する。本実施の形態では、パケット情報は64バイト、PCBは16から1024バイトである。ローカルデータメモリ1107も同様の構成を有する。
【0034】
再び図3を参照すると、ネットワークプロセッサ1101からアクセスされるローカルデータメモリ1106および1107は常に一方のみになるように制御される。すなわち、ローカルデータメモリ1106および1107のうちいずれか一方のバンクがネットワークプロセッサ1101からのアクセス対象となる。2つのバンクが同時にネットワークプロセッサ1101のアクセス対象となることはない。バンクの切り替えはハードウェアによって制御される。ネットワークプロセッサ1101はバンクの切り替えを意識する必要はない。具体的には、バンクの切替はメモリコントローラ1105により行われる。1つのディスパッチ処理が完了するとオフロードプロセッサユニット110は、プロセス完了レジスタ11023に処理が完了した旨の情報を格納する。メモリコントローラ1105は、プロセス完了レジスタ11023にディスパッチ処理完了が書き込まれると、バンクの切替を行う。
【0035】
DMAエンジン1104は、スケジューラプロセッサユニット120からのディスパッチを受けたディスパッチキュー1103からPCBIDが通知されると、該当するPCBをPCBメモリ191からリードし、ネットワークプロセッサ1101に現在接続されているローカルデータメモリ1106または1107のバンク(以後、表バンクまたはプライマリバンクという、ネットワークプロセッサ1101に現在接続されていないバンクを裏バンクまたはセカンダリバンクという)に展開する。
【0036】
ディスパッチキュー1103は、本実施の形態では、ローカルデータメモリ1106および1107のバンク数に対応して2エントリで構成される。
【0037】
プロセッサコントローラ1102は、ディスパッチキューレジスタ11021、DMAエンジンコントロールレジスタ11022およびプロセス完了レジスタ11023を有している。
【0038】
図5を参照すると、ディスパッチキューレジスタ11021は、プライマリバンクおよびセカンダリバンクのそれぞれに対応するディスパッチ状況、送信/受信種別およびPCBIDを格納している。ディスパッチキューレジスタ11021は、ネットワークプロセッサ1101がアイドル状態のときにポーリングし続けるレジスタである。
【0039】
図6を参照すると、DMAエンジンコントロールレジスタ11022は、スタート/ビジー、リード/ライトのコマンド、転送サイズ、転送するPCBのID、PCBデータのオフセットおよびローカルデータメモリ1106および1107のオフセットを格納している。
【0040】
図7を参照すると、プロセス完了レジスタ11023は、スタート/ビジーを格納している。
【0041】
図8を参照すると、スケジューラプロセッサユニット120は、スケジューラプロセッサ1201、PCBIDテーブル1202およびプロセッサコントローラ1210を含む。
【0042】
スケジューラプロセッサ1201は、プロセッサコントローラ1210に接続されている。プロセッサコントローラ1210は、ディスパッチレジスタ1211、比較レジスタ1212、結果レジスタ1213、Txキューレジスタ1214、Rxキューレジスタ1215、OPUステイタスレジスタ1216およびパケット情報メモリ1217を含む。
【0043】
図9を参照すると、ディスパッチレジスタ1211は、オフロードプロセッサユニット110へディスパッチするときに使用されるもので、送受信の区別、Q.Entryおよびディスパッチされるオフロードプロセッサユニット110のIDを格納している。Q.Entryは、パケット情報が格納されているパケット情報メモリ1217のアドレスを示すものである。
【0044】
再び図8を参照すると、比較レジスタ1212は、これからディスパッチするパケット処理のPCBIDを格納するもので、既にディスパッチされているパケット処理のPCBIDの比較に使用される。結果レジスタ1213は、PCBIDの比較結果を格納する。Txキューレジスタ1214は、Txキュー150の先頭数エントリ分をスケジューラプロセッサ1201へ参照させるもので、シフトキュー構造となっている。Rxキューレジスタ1215は、Rxキュー160の先頭数エントリ分をスケジューラプロセッサ1201へ参照させるもので、シフトキュー構造となっている。OPUステイタスレジスタ1216は、オフロードプロセッサユニット110の現在のプロセス処理状態を示す。
【0045】
図10を参照すると、Rxキューレジスタ1215は、本実施の形態では、Rxキュー160の先頭8エントリが参照できるよう構成されている。Rxキューレジスタ1215において、各エントリには1つのPCBIDが格納されている。Txキューレジスタ1214も同様の構成を有する。本実施の形態では、Txキューレジスタ1214およびRxキューレジスタ1215のエントリ数をそれぞれ8としたが、それに限らず適宜設定してもよい。
【0046】
図11を参照すると、OPUステイタスレジスタ1216は、オフロードプロセッサユニット110の現在の状況を保持している。本実施の形態では、オフロードプロセッサユニット110の数を4個とし、一度に受け付けられるディスパッチの数を、プライマリとセカンダリの2個であるとする。OPUステイタスレジスタ1216は、各オフロードプロセッサユニット110に対して送信/受信のどちらのディスパッチが現在なされているかを示している。OPUステイタスレジスタ1216は、プライマリに対応する4つのエントリとセカンダリに対応する4つのエントリを含む。8つのエントリの各々には、「00」、「01」または「10」のいずれかが格納される。「00」は対応するオフロードプロセッサユニット110がアイドル中であることを示す。「01」は対応するオフロードプロセッサユニット110が受信動作中であることを示す。「10」は対応するオフロードプロセッサユニット110が送信動作中であることを示す。
【0047】
OPUステイタスレジスタ1216は、各オフロードプロセッサユニット110の負荷状況を得るほかにも、複数のオフロードプロセッサユニット110全体で処理が送信または受信に偏るのを防ぐためにもスケジューラプロセッサユニット120がディスパッチするときに参照される。このような偏りを防ぐための制御は、例えば、本実施の形態では、2つのオフロードプロセッサユニット110を受信専用にし2つのオフロードプロセッサユニット110を送信専用に決めておき、これを満たすようにスケジューラプロセッサユニット120がディスパッチを行うようにすれば良い。
【0048】
再び図8を参照すると、既にオフロードプロセッサユニット110へ、あるPCBIDのパケット処理がディスパッチ済みの場合、同一のPCBIDのディスパッチ要因(パケット処理)があるときは、該ディスパッチ要因を同じオフロードプロセッサユニット110へディスパッチする必要がある。このため、スケジューラプロセッサ1201は、現在オフロードプロセッサユニット110にディスパッチされているPCBIDと、これからディスパッチしようとするPCBIDを全比較し、一致するオフロードプロセッサユニット110にディスパッチ要因をディスパッチする。この比較に費やされる処理時間は、オフロードプロセッサユニット110の数とオフロードプロセッサユニット110が受け付け可能なディスパッチ数とに依存するが、スケジューラプロセッサユニット120のディスパッチ処理において、実行時間が最も必要とされる処理である。ところで、ネットワークポートを複数持つ通信制御装置においては、複数のポートから同時に送受信要求が発生することがある。本発明の通信制御装置は、図2に示すように、オフロードプロセッサユニット110を複数設けておりこれらの送受信要求のパケット処理をパラレルで実行する能力を有している。スケジューラプロセッサユニット120は、複数の送受信要求を複数のオフロードプロセッサユニット110で均等に処理するよう負荷分散を図りディスパッチする。ところが、通信制御装置は、スケジューラプロセッサユニット120を1つ備えている。すなわち、1つのスケジューラプロセッサユニット120がディスパッチ処理の全てを一手に請け負っている。本実施の形態では、ディスパッチ処理がスケジューラプロセッサユニット120においてシリアルになっており、スケジューラプロセッサユニット120が通信制御装置の性能のボトルネックとなる可能性がある。
【0049】
このように最も処理時間を要し、また、性能にとってクリティカルなPCBIDの比較処理を別途ハードウェアでサポートするために、スケジューラプロセッサユニット120にPCBIDテーブル1202が設けられている。PCBIDテーブル1202は、スケジューラプロセッサ1201が各オフロードプロセッサユニット110にディスパッチしたパケット処理のPCBIDを全て保持しており、オフロードプロセッサユニット110から処理完了が通知されると該当PCBIDをクリアする。PCBIDテーブル1202は、複数のオフロードプロセッサユニット110のそれぞれについてオフロードプロセッサユニット110のディスパッチキュー1103のエントリ数と同一数のエントリを有する。本実施の形態では、ディスパッチキュー1103のエントリ数が2であるため、各オフロードプロセッサユニット110についてプライマリおよびセカンダリの2エントリからなる。具体的には、比較レジスタ1212にディスパッチ対象パケット処理のPCBIDをセットすると、コンパレータによりPCBIDテーブル1202内のPCBID値と比較レジスタ1212値とが全比較され、一致したオフロードプロセッサユニット110の番号が結果レジスタ1212に格納される。更に詳細には、PCBIDテーブル1202は、各エントリ毎に対応したコンパレータを有している。本実施の形態では、PCBIDテーブル1202は、オフロードプロセッサユニット110が4個で、各オフロードプロセッサユニット110のディスパッチキュー1103の深さがプライマリおよびセカンダリの2であるため、計8個のコンパレータを含む。比較レジスタ1212のPCBIDがPCBIDテーブル1202に入力されると、PCBIDテーブル1202の全てのエントリのPCBIDと一度に比較され、PCBIDが一致したエントリのビットがセットされて返される。ハードウェアによる比較時間は1クロックで完了することから、スケジューラプロセッサユニット120のスケジューラプロセッサ1201のプログラムであれば数十ステップを費やすような負荷が大きい処理の実行時間を短縮することができる。
【0050】
図12を参照すると、本実施の形態のある時間のPCBIDテーブル1202において、OPU#0のオフロードプロセッサユニット110にはPCBID#0のコネクションに関するパケット処理がプライマリにディスパッチされている。OPU#1のオフロードプロセッサユニット110には、PCBID#1のコネクションに関するパケット処理がプライマリに、PCBID#5のコネクションに関するパケット処理がセカンダリにそれぞれディスパッチされている。OPU#2のオフロードプロセッサユニット110にはPCBID#2のコネクションに関するパケット処理がプライマリにディスパッチされている。OPU#3のオフロードプロセッサユニット110には、PCBID#3のコネクションに関するパケット処理がプライマリに、PCBID#3のコネクションに関するパケット処理がセカンダリにそれぞれディスパッチされている。
【0051】
パケット情報メモリ1217は、パケット情報を格納している。スケジューラプロセッサユニット120は、ネットワークプロセッサ1101からの要請によりパケット情報を転送する回路を有しており、パケット情報メモリ1217に格納されたパケット情報がオフロードプロセッサユニット110に転送される。
【0052】
次に、本発明の動作について図面を参照して説明する。
【0053】
まず、ホストからネットワーク150にパケットを送信する場合に送信処理要求がキューイングされるまでの動作について説明する。
【0054】
図1を参照すると、ホストが通信制御装置100に対して送信要求を送付する。この場合、通信のコネクション番号としてPCBIDをI/Oバスコントローラ101へ送る。I/Oバスコントローラ101は、PCBIDをTxキュー150へ送る。Txキュー150は、送信要求をキューイングする。
【0055】
次に、ホストがネットワークからパケットを受信する場合に受信処理要求がキューイングされるまでの動作について説明する。
【0056】
図2を参照すると、ホストは、PCBメモリ191のハッシュテーブルに対しマッチングパタンとそれに対応するPCBIDを事前に登録する。例えば、プロトコル種別がインターネットなどで使用されるTCPであれば、ハッシュのマッチングパタンとして ソースおよびデスティネーションIPアドレスと、ソースおよびデスティネーションポートIDとをハッシュテーブルに登録しておく。これらプロトコルと登録すべきマッチングパタンのルールは通信制御装置100の仕様として規定されるが、本発明とは直接関係はないため、詳細については割愛する。
【0057】
メディアアクセスコントローラ130は、ネットワークからパケットを受信する。メディアアクセスコントローラ130は、自分が属する通信制御装置100宛のパケットをネットワークから取り込む。メディアアクセスコントローラ130で受信したパケットは、パケット識別子131を通過し、パケットのプロトコル種別の解析と、マッチングパタンのルールに従い、マッチングパタンの抽出が行われる。抽出されたマッチングパタンはパケット情報として、ハッシュサーチエンジン170へ送られ、PCBメモリ191に登録されたハッシュテーブルに対してハッシュサーチが行われる。ハッシュサーチの結果、マッチングしなかった場合は未登録コネクションとして、マッチングした場合はコネクション識別を示すPCBIDをパケット情報へ書き込み、Rxキュー160にキューイングする。
【0058】
次に、スケジューラプロセッサユニット120が送受信要求のパケット処理を複数のオフロードプロセッサユニット110にディスパッチする動作について説明する。
【0059】
図8を参照すると、スケジューラプロセッサ1201は、Txキューレジスタ1214とRxキューレジスタ1215とをポーリングし、ディスパッチ要因の有無を確認する。Txキューレジスタ1214およびRxキューレジスタ1215はそれぞれTxキュー150およびRxキュー160の先頭数エントリを参照することが可能で、各エントリの追い越しが可能なシフトキューである。スケジューラプロセッサ1201は、Txキューレジスタ1214およびRxキューレジスタ1215のそれぞれのエントリを上から順に参照しディスパッチ処理を行う。スケジューラプロセッサユニット120は、複数のオフロードプロセッサユニット110による共有リソースの競合を防ぐために、同一のPCBIDを有するパケット処理を異なるオフロードプロセッサユニット110へディスパッチしてはならない。これは、複数のオフロードプロセッサユニット110が各コネクションの処理を行うときに、PCBメモリ191内にあるコネクション毎の情報を保持するPCBにアクセスする必要があるためである。このように、スケジューラプロセッサユニット120はディスパッチの排他性を保証しなければならない。既にオフロードプロセッサユニット110へ、あるPCBIDのパケット処理がディスパッチ済みの場合、同一のPCBIDのディスパッチ要因(パケット処理)があるときは、該ディスパッチ要因(パケット処理)を同じオフロードプロセッサユニット110へディスパッチする必要がある。このため、スケジューラプロセッサ1201は、現在オフロードプロセッサユニット110にディスパッチされているパケット処理のPCBIDと、これからディスパッチしようとするパケット処理のPCBIDを全比較し、一致するオフロードプロセッサユニット110にディスパッチ要因(パケット処理)をディスパッチする。
【0060】
図12に示される例では、比較レジスタ1212にセットされたディスパッチ対象のパケット処理のPCBID#2が、PCBIDテーブル1202の全エントリのPCBIDと同時に比較される。OPU#2のオフロードプロセッサユニット110のプライマリエントリに格納されたPCBID#2が、比較レジスタ1212にセットされたディスパッチ対象のPCBID#2と一致するため、PCBIDテーブル1202はOPU#2を結果レジスタ1212に格納する。
【0061】
図13を参照すると、OPU#2のオフロードプロセッサユニット110にPCBID#2のパケット処理をディスパッチするため、ディスパッチレジスタ1211にOPU#2が格納される。この例では、受信パケット処理として、受信を示す情報(Rx)が格納されている。Rxキューレジスタ1215では、エントリ#2のPCBID#2が掃き出され、後続のエントリがシフトする。PCBIDテーブル1202のOPU#2のオフロードプロセッサユニット110に対応するセカンダリエントリには、PCBID#2が格納される。
【0062】
次に、本発明のディスパッチ処理の動作についてさらに詳細に説明する。
【0063】
図3、8および14を参照すると、本発明の通信制御装置では、同一のPCBIDのパケット処理はなるべく同一のオフロードプロセッサユニット110へ一度にディスパッチする。このようにすれば、後述するように、オフロードプロセッサユニット110におけるPCBの獲得が、PCBをPCBメモリ191からいちいち読み出すのではなく、2つのローカルデータメモリ1106および1107の間でのバンク間コピーで済むためである。また、結果レジスタ1212において、示されたオフロードプロセッサユニット110が既に2個のディスパッチを受け付け処理中の場合、すなわちアイドル状態で無い場合は、Txキューレジスタ1214の1エントリをスキップして次のエントリを参照し、同様の操作を繰り返す。ただし、同一コネクションにおいては処理順序を保証しなければならないため、スキップした場合、先にスキップしたパケット処理のPCBIDと等しいPCBIDのパケット処理が現れた場合はさらにスキップする必要がある。スキップし続けた場合、8段あるTxキューレジスタ1214を全て参照した後、再度先頭に戻ってこの処理を繰り返す。Txキューレジスタ1214のリフィルは適宜行われる。
【0064】
ステップA1において、プロセッサコントローラ1210は、Txキューレジスタのリードポインタを0にセットする。スケジューラプロセッサ1201は、Txキューレジスタのリードポインタが7であるか判別し(ステップA2)、7であれば、ステップA1に戻る。Txキューレジスタ1214のリードポインタが7でなければ、スケジューラプロセッサ1201は、そのリードポインタを用いてTxキューレジスタ1214を読み出す(ステップA3)。ステップA4において、スケジューラプロセッサ1201は、ディスパッチ要因(パケット処理)があるか否かを判別する。ディスパッチ要因(パケット処理)が無ければステップA1に戻る。ディスパッチ要因(パケット処理)があれば、スケジューラプロセッサ1201は、現在のリードポインタより前の全てのリードポインタを調べ、ディスパッチ要因(パケット処理)のPCBIDと同一のPCBIDがあるか否かを判別する(ステップA5)。同一のPCBIDがあると判別した場合には、スケジューラプロセッサ1201はTxキューレジスタ1214のリードポインタをインクリメントしてステップA2に戻る。ステップA5において、同一のPCBIDが無いと判別した場合、スケジューラプロセッサ1201は、Txキューレジスタ1214を読み出し(ステップA7)、読み出されたPCBIDとPCBIDテーブル1202のPCBIDとを比較する(ステップA8)。ステップA9において、スケジューラプロセッサ1201は、この比較の結果、ディスパッチすべきオフロードプロセッサユニット110がヒットしたか否かを判別する。すなわち、スケジューラプロセッサ1201は、結果レジスタ1212にオフロードプロセッサユニット110の番号が格納されている否かにより、オフロードプロセッサユニット110がヒットしたか否かを判別する。
【0065】
ステップA9において、オフロードプロセッサユニット110がヒットした場合は、スケジューラプロセッサ1201は、ヒットしたオフロードプロセッサユニット110がアイドル中であるか否かを判別する(ステップA10)。ヒットしたオフロードプロセッサユニット110がアイドル中でなければ、ステップA6に移行する。ステップA10において、ヒットしたオフロードプロセッサユニット110がアイドル中であれば、このオフロードプロセッサユニット110にパケット処理をディスパッチする(ステップA11)。スケジューラプロセッサ1201は、ヒットした(ディスパッチした)オフロードプロセッサユニット110の2段目(セカンダリ)がアイドル中であるか否かを判別する(ステップA12)。2段目がアイドル中で無ければ、ステップA1に戻る。2段目がアイドル中であれば、スケジューラプロセッサ1201は、Txキューレジスタ1214内に現在のPCBIDと同一のPCBIDを有するディスパッチ要因があるか否かを判別する(ステップA13)。同一のPCBIDを有するディスパッチ要因があれば、このディスパッチ要因もステップA11でディスパッチしたオフロードプロセッサユニット110にディスパッチする(ステップA14)。同一のPCBIDを有するディスパッチ要因が無ければ、ステップA1に戻る。
【0066】
ステップA9において、オフロードプロセッサユニット110がヒットしない場合、スケジューラプロセッサ1201は、アイドル中であるオフロードプロセッサユニット110があるか否かを判別する(ステップA15)。アイドル中のオフロードプロセッサユニット110があれば、スケジューラプロセッサ1201は、ステップA16において、1つまたは複数のアイドル中のオフロードプロセッサユニット110の任意のものに処理をディスパッチする。ステップA15において、アイドル中のオフロードプロセッサユニット110が無いと判断されると、すなわち、複数のオフロードプロセッサユニット110のうちいずれのものもアイドル中でなければ、ステップA1に戻る。
【0067】
なお、ここでは、Txキューレジスタ1214について説明したが、送信および受信のバランスを取るため、実際にはTxキューレジスタ1214とRxキューレジスタ1215の参照は交互に行われる。Rxキューレジスタ1215を参照したディスパッチ処理も同様に行われる。
【0068】
図15を参照すると、図14に示されるフローチャートに沿ってディスパッチをした場合のRxキューレジスタ1215の動作の一例が示される。前提条件として、OPU#3のオフロードプロセッサユニット110のみ、PCBID#2が1個だけディスパッチされ、現在処理中であるとする。すなわち、PCBIDテーブル1202にはOPU#3のプライマリのエントリにのみPCBIDが、すなわち、PCBID#2が格納されている。
【0069】
状態1では、先頭のエントリ#0としてPCBID#0が読み出され、PCBIDテーブル1202の全エントリとの比較の結果、ヒットするオフロードプロセッサユニット110が存在しない。したがって、アイドル状態の任意のオフロードプロセッサユニット110としてOPU#0のオフロードプロセッサユニット110にディスパッチされる。また、Txキューレジスタ1214の後続に同一のPCBIDとしてエントリ#3にPCBID#0が存在しており、OPU#0のオフロードプロセッサユニット110は更にもう1個ディスパッチを受け入れることが可能であるから、エントリ#3のPCBID#0をOPU#0のオフロードプロセッサ110にディスパッチする。
【0070】
状態2では、エントリ#0のPCBID#1が読み出され、状態1と同様にしてOPU#1のオフロードプロセッサユニット110にディスパッチされる。後続するエントリ#3の同一PCBIDのPCBID#1もOPU#1のオフロードプロセッサユニット110にディスパッチされる。
【0071】
状態3において、エントリ#0のPCBID#2が読み出され、PCBIDテーブルの全エントリとの比較の結果、OPU#3のオフロードプロセッサユニット110にヒットする。PCBID#2のパケット処理は、OPU#3のオフロードプロセッサユニット110にディスパッチされる。状態3では、後続エントリにPCBID#2は格納されていないが、仮に格納されていても、この例では、既に1つのPCBID#2のパケット処理がOPU#3のオフロードプロセッサユニットにディスパッチされていたため、これ以上ディスパッチすることはできない。
【0072】
状態4では、エントリ#0のPCBID#0が読み出されPCBIDテーブルの全エントリと比較され、OPU#0のオフロードプロセッサユニット110にヒットするが、状態1で既に2個のパケット処理をディスパッチしており、この処理がまだ完了していないため、OPU#0のオフロードプロセッサユニット110へはこれ以上ディスパッチすることが出来ない。Txキューレジスタのリードポインタを進めエントリ#1を読み出しても、このエントリ#1は「リードポインタ以前に同じPCBIDが存在する」という、図14のフローチャートのステップA5のディスパッチルールのためこれもディスパッチすることは出来ない。この制限は同一のコネクションの処理順序を保証するためのものである。したがって、先頭から2エントリスキップしたエントリ#2のPCBID#5が選択され、現状アイドルであるOPU#2のオフロードプロセッサユニット110にディスパッチされる。
【0073】
次に、送受信処理がディスパッチされたオフロードプロセッサユニット110の動作について詳細に説明する。
【0074】
図3を参照すると、スケジューラプロセッサユニット120がオフロードプロセッサユニット110へディスパッチを行うと、ディスパッチキュー1103にパケット情報を格納するスケジューラプロセッサユニット120のパケット情報メモリ1217のアドレスがエンキューされる。DMAエンジン1104はスケジューラプロセッサユニット120のパケット情報メモリ1217からパケット情報を読み出し、ローカルデータメモリ1106および1107のうちの表バンクへストアする。パケット情報は、送信の場合はコネクション番号がセットされている。すなわち、パケット送信の場合は、PCBIDのみでパケット情報は無いが、送信または受信によらず、オフロードプロセッサユニット110はPCBIDを得るためパケット情報メモリ1217にパケット情報を引き抜きにくるため、PCBID情報のみのパケット情報としてオフロードプロセッサユニット110に転送する。パケット受信の場合のパケット情報は、受信パケットに関する情報が64バイトに集約されており、主にパケットのヘッダ情報、ハッシュサーチにより得られたPCBID、パケットバッファのストア・アドレスなどが格納されている。
【0075】
スケジューラプロセッサユニット120からのディスパッチを受けたディスパッチキュー1103からPCBIDが通知されると、DMAエンジン1104は該当するPCBをPCBメモリ191からリードし、表バンクに展開する。
【0076】
図3および4を参照すると、DMAエンジン1104はパケット情報中にセットされているPCBIDから、さらにPCB本体をDMAリードしてローカルデータメモリ1106および1107のうちの表バンクにストアする。パケット情報/PCBと、ネットワークプロセッサ1101が送受信処理に必要とする全ての情報とがローカルデータメモリ1106および1107にストアされた時点で、図5に示すディスパッチキューレジスタ11021のプライマリバンクに相当するフィールドにディスパッチ完了通知をストアする。ディスパッチ完了通知は、具体的には、プライマリバリッドとプライマリPCBIDとがディスパッチキューレジスタ11021に書き込まれることで行われる。
【0077】
なお、PCBの転送サイズを最適化するため、ホストがPCBを生成する場合は、図16で示されるPCBデータ11062の先頭にディスパッチ時のDMAリードの際のデータ転送長をセットしておく。PCBデータ11062は、図4に示されるローカルデータメモリ1106のPCBを格納する領域11062である。PCBメモリ191のメモリコントローラ190はPCBデータを読み出すと同時にこの転送長を保持し、指定転送長に達したところでDMAエンジンへのデータ転送を停止する。通常この転送長はネットワークプロセッサ1101における処理に必須となるPCBデータのサイズをセットしておく。例外処理等で、さらに後続のPCBデータが必要な場合は図6に示すDMAエンジンコントロールレジスタ11022により、ネットワークプロセッサ1101から直接DMAエンジン1104を操作することによりPCBデータをリードすることが可能である。なお、転送サイズ値はネットワークプロセッサ1101によりいつでも書き換え可能であり、状況に応じたPCBデータ転送が可能である。
【0078】
ネットワークプロセッサ1101がプライマリバンクのPCBへアクセスしパケットの送受信処理を実行中に、さらにスケジューラプロセッサユニット120からディスパッチを受けた場合、DMAエンジン1104はプライマリバンクと同様のパケット情報/PCBデータの転送処理をセカンダリバンクに対して行い、ディスパッチキューレジスタ11021のセカンダリバンクに相当するフィールドにディスパッチの完了をセットする。ディスパッチ完了は、具体的には、セカンダリバリッドとセカンダリPCBIDとがディスパッチキューレジスタ11021に格納されることで行われる。ネットワークプロセッサ1101がプライマリバンクでの送受信処理を終えると図7に示すプロセス完了レジスタ11023へ書き込むことによりバンクの切り替えが行われ、プライマリバンクとセカンダリバンクとが入れ替わる。セカンダリバンクとなった処理済みPCBデータをPCBメモリ191へ書き戻すため、DMAエンジン1104が自動的に起動され、PCBデータがPCBメモリ191にDMA書き込みされる。同時にディスパッチキューレジスタ11021もセカンダリの内容がプライマリへ移される。
【0079】
図17を参照すると、プライマリバンクの処理中に、次に処理すべきPCBデータをPCBメモリ191からセカンダリバンクへ転送している。
【0080】
図18を参照すると、プライマリバンクの処理が完了したことによりバンクを切り替えた時点では既にPCBデータが存在しており、PCBデータ転送の遅延が隠蔽される。また、セカンダリバンクに移行したバンクのPCBデータは現在のプライマリバンクの処理が行われている裏でPCBメモリ191へ書き戻しが行われる。
【0081】
図19を参照すると、プライマリバンクおよびセカンダリバンク共に同一のPCBIDがディスパッチされた場合は、プライマリバンク側の処理を終えるとバンクの切り替えをせず、セカンダリバンク側からプライマリバンク側へパケット情報のバンク間コピーが行われる。PCBデータはPCBメモリ191から転送されるのではなく、プライマリバンクに既に存在するPCBデータを使用し続ける。
【0082】
図3および7を参照すると、バンク間コピーの間は、プロセス完了レジスタ11023のビジービットがセットされ、ネットワークプロセッサ1101はこの間、ローカルデータメモリ1106および1107へのアクセスが禁じられる。図19において、×印がバンク間コピー中はアクセス禁止であることを示している。
【0083】
また、ネットワークプロセッサ1101が送受信処理中に現在処理中のPCBと密接に関連する他PCBデータが必要となる場合がある。この場合、ネットワークプロセッサはDMAエンジンコントロールレジスタ11022により必要とされるPCBIDを指定してDMA読み出しを行う。もし、指定PCBIDがセカンダリバンクにストア済みのPCBIDと一致したならば、PCBメモリ191からPCBデータを転送せず、図20に示すとおり、セカンダリバンクに存在するPCBデータをプライマリバンクに対しバンク間コピーを行う。
【0084】
以上のように、本実施の形態では、通信制御装置100内に複数のネットワークプロセッサ110を設け、コネクション毎に存在するコンテキスト情報をネットワークプロセッサ1101直近のローカルメモリ1106および1107にコピーすることにより、PCBデータへのアクセスの高速化を図り、さらにPCBメモリ191でのアクセス競合を防ぐことができる。
【0085】
また、本実施の形態では、ローカルメモリ1106および1107を多バンク構成とすることにより、セカンダリバンクに予めPCBを読み出しておき、さらに処理を終えたPCBデータの書き戻しもセカンダリバンクで行うことにより、PCBデータの転送遅延を防ぐことができる。
【0086】
さらに、本実施の形態では、同一のPCBがディスパッチされた場合や、セカンダリバンクに存在するPCBデータをリードする場合などはローカルデータメモリ1106および1107の間でバンク間コピーを行うことにより、PCBメモリ191へのアクセス負荷を減らし、結果的にPCBデータ転送の最適化、ネットワークプロセッサ1101の処理能力を効果的に上げることができる。
【0087】
【発明の効果】
以上説明したように、本発明では、それぞれ送受信処理を行う複数の第1のプロセッサと、これらの第1のプロセッサに送受信処理をディスパッチする第2のプロセッサとを設けた。このため、ネットワークとの送受信処理を複数のプロセッサで行うことができ、送受信処理にかかる時間を削減することができる。
【0088】
また、本発明では、第2のプロセッサが、複数の第1のプロセッサにおいて処理中の送受信処理を示すテーブルを持ち、新たに割り当てを行う送受信処理の単位が複数の第1のプロセッサに既に割り当てられているものと同一か否かを比較する比較手段を備えている。第2のプロセッサは、比較の結果、第1のプロセッサに既に割り当てられている送受信処理と同一の場合、この第1のプロセッサに新たな送受信処理をディスパッチする。このため、同一のコネクションに係る送受信処理を一貫性を保ってディスパッチすることができる。
【0089】
さらに、本発明では、上記比較手段をハードウェアで構成した。これにより、通常長時間を費やすディスパッチの排他制御のための処理を、短時間で処理することができる。さらに、第2のプロセッサのプログラムの簡易化と高速化とが可能となり、その結果、高速ディスパッチが可能になる。
【0090】
また、本発明では、第2のプロセッサは、キューの先頭部分を追い越し可能なシフトキュー化した送信キューレジスタおよび受信キューレジスタを備えている。このため、コネクション毎の排他制御を行い、かつ、ディスパッチ可能な送受信処理を先にディスパッチできる。すなわち、同一コネクションの処理順序を保証し、さらにアイドル状態のネットワーク・プロセッサを極力減らすことが可能となり、効率的なネットワーク処理の負荷分散を行うことが可能となる。このように、本発明では、ネットワーク・プロセッサへの負荷分散の最適化を図ることが可能である。
【図面の簡単な説明】
【図1】本発明の実施の形態を示す図である。
【図2】本発明の通信制御装置の実施の形態を示す図である。
【図3】本発明のオフロードプロセッサユニット110の実施の形態を示す図である。
【図4】本発明のローカルデータメモリ1106を示す図である。
【図5】本発明のディスパッチキューレジスタ11021を示す図である。
【図6】本発明のDMAエンジンコントロールレジスタ11022を示す図である。
【図7】本発明のプロセス完了レジスタ11023を示す図である。
【図8】本発明のスケジューラプロセッサユニット120の実施の形態を示す図である。
【図9】本発明のディスパッチレジスタ1211を示す図である。
【図10】本発明のRxキューレジスタ1215を示す図である。
【図11】本発明のOPUステイタスレジスタ1216を示す図である。
【図12】本発明のディスパッチ処理を示す図である。
【図13】本発明のディスパッチ処理を示す図である。
【図14】本発明のディスパッチ処理の動作の流れを示す図である。
【図15】本発明のディスパッチ処理を示す図である。
【図16】本発明のPCBデータ11062を示す図である。
【図17】本発明のコンテキスト情報の転送を示す図である。
【図18】本発明のコンテキスト情報の転送を示す図である。
【図19】本発明のコンテキスト情報の転送を示す図である。
【図20】本発明のコンテキスト情報の転送を示す図である。
【符号の説明】
100 通信制御装置
110 オフロードプロセッサユニット
120 スケジューラプロセッサユニット
130 メディアアクセスコントローラ
131 パケット識別子
140 メモリコントローラ
141 パケットバッファ
150 Txキュー
160 Rxキュー
170 ハッシュサーチエンジン
180 メモリコントローラ
190 メモリコントローラ
1201 スケジューラプロセッサ
1202 PCBIDテーブル
1210 プロセッサコントローラ
1211 ディスパッチレジスタ
1212 比較レジスタ
1213 結果レジスタ
1214 Txキューレジスタ
1215 Rxキューレジスタ
1216 OPUステイタスレジスタ
1217 パケット情報メモリ

Claims (10)

  1. ネットワークとこのネットワークを介して通信を行うホストとの間に接続された通信制御装置において、
    前記ネットワークと前記ホストとの間のパケットの送受信処理を行う複数の第1のプロセッサ(110)と、
    前記送受信処理の単位毎に該送受信処理を前記複数の第1のプロセッサに対し互いに排他的に割り当てる第2のプロセッサ(120)とを含み、
    前記第2のプロセッサ(120)は、前記第1のプロセッサ(110)が送信若しくは受信いずれの処理を実行中であるかを示す情報を保持するステイタスレジスタを有し、
    前記第2のプロセッサ(120)は、前記ステイタスレジスタの内容を参照して、前記複数の第1のプロセッサに対して前記送受信処理を割り当てることを特徴とする通信制御装置。
  2. 前記送受信処理の単位は送受信の識別子により判別されることを特徴とする請求項1記載の通信制御装置。
  3. 前記第1のプロセッサが処理中の送受信処理を示すテーブル(1202)を含み、新たに割り当てを行う送受信処理の単位が前記複数の第1のプロセッサに既に割り当てられているものと同一か否かを比較することを特徴とする請求項1記載の通信制御装置。
  4. ネットワークとこのネットワークを介して通信を行うホストとの間に接続された通信制御装置において、
    前記ネットワークと前記ホストとの間のパケットの送受信処理を行う複数の第1のプロセッサ(110)と、
    この複数の第1のプロセッサに対して前記送受信処理の割り当てを行う第2のプロセッサ(120)とを含み、
    前記第2のプロセッサは後続のパケットに関する送受信処理のキューを格納するレジスタを含み、
    前記第2のプロセッサは、前記キューを参照して前記送受信処理の単位毎に該送受信処理を前記複数の第1のプロセッサに対し互いに排他的に割り当てることを特徴とする通信制御装置。
  5. 前記第2のプロセッサは、割り当てた第1のパケット処理と同一の単位の送受信処理の第2のパケット処理が前記キュー内にある場合、前記第1および第2のパケット処理を連続して割り当て処理を行うことを特徴とする請求項4記載の通信制御装置。
  6. 前記キュー内に前記第2のパケット処理より先行するが前記第1のパケット処理と送受信処理の単位が異なる第3のパケット処理がある場合、前記第2のパケット処理を前記第3のパケット処理を追い越して割り当て処理を行うことを特徴とする請求項5記載の通信制御装置。
  7. 前記第2のプロセッサは、前記キュー内に同一単位の送受信処理に関するものが複数ある場合、当該単位の送受信処理に割り当てられている前記第1のプロセッサが受け付けることができるパケット処理の数の許容範囲内にあるとき、パケット処理の割り当てを行うことを特徴とする請求項4記載の通信制御装置。
  8. 前記第2のプロセッサは、前記キュー内に同一単位の送受信処理に関するものが複数ある場合、これらの数が当該単位の送受信処理に割り当てられている前記第1のプロセッサが受け付けることができるパケット処理の数を超えたときには、前記キュー内の別の単位の送受信処理の割り当てを行うようにしたことを特徴とする請求項4記載の通信制御装置。
  9. 前記キュー内のk(kは1以上の整数)番目のパケット処理が特定の前記第1のプロセッサに割り当てられた場合、該特定の前記第1のプロセッサがさらにn(nは1以上の整数)個のパケット処理の割り当てが可能であるとき、前記第2のプロセッサは、前記キュー内に前記k番目のパケット処理と同一の送受信処理単位のパケット処理が(n+1)個以上含まれるならば前記k番目のパケット処理に後続するn個のパケット処理を前記特定の第1のプロセッサに割り当て、前記キュー内に前記k番目のパケット処理と同一の送受信処理のパケット処理がn個以下含まれるならば全てのパケット処理を前記特定の第1のプロセッサに割り当てることを特徴とする請求項4記載の通信制御装置。
  10. 前記キュー内のk(kは2以上の整数)番目のパケット処理について前記第1のプロセッサに対する割り当てを行う場合、該k番目のパケット処理の送受信処理の単位と前記キュー内の始めから(k−1)番目のパケット処理の送受信処理の単位とが同一であるとき、該k番目のパケット処理の割り当て処理は行わないことを特徴とする請求項4記載の通信制御装置。
JP2002152826A 2002-04-24 2002-05-27 通信制御装置 Expired - Fee Related JP3849578B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002152826A JP3849578B2 (ja) 2002-05-27 2002-05-27 通信制御装置
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
JP2002152826A JP3849578B2 (ja) 2002-05-27 2002-05-27 通信制御装置

Publications (2)

Publication Number Publication Date
JP2003348183A JP2003348183A (ja) 2003-12-05
JP3849578B2 true JP3849578B2 (ja) 2006-11-22

Family

ID=29770068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002152826A Expired - Fee Related JP3849578B2 (ja) 2002-04-24 2002-05-27 通信制御装置

Country Status (1)

Country Link
JP (1) JP3849578B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4757300B2 (ja) * 2006-03-31 2011-08-24 富士通株式会社 ボリューム管理装置およびボリューム管理方法
JP5136564B2 (ja) * 2008-01-31 2013-02-06 富士通株式会社 パケット処理装置およびパケット処理プログラム
JP5054716B2 (ja) * 2009-02-20 2012-10-24 株式会社日立製作所 通信プロトコル処理回路、情報処理装置及び通信プロトコル処理方法
US8014295B2 (en) * 2009-07-14 2011-09-06 Ixia Parallel packet processor with session active checker

Also Published As

Publication number Publication date
JP2003348183A (ja) 2003-12-05

Similar Documents

Publication Publication Date Title
EP1247168B1 (en) Memory shared between processing threads
US6532509B1 (en) Arbitrating command requests in a parallel multi-threaded processing system
US7472205B2 (en) Communication control apparatus which has descriptor cache controller that builds list of descriptors
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US5155854A (en) System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US7653908B2 (en) Grouping processors and assigning shared memory space to a group in a heterogeneous computer environment
EP1242883B1 (en) Allocation of data to threads in multi-threaded network processor
US6876561B2 (en) Scratchpad memory
US7496699B2 (en) DMA descriptor queue read and cache write pointer arrangement
US6757768B1 (en) Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7689694B2 (en) Process management apparatus, computer systems, distributed processing method, and computer program for avoiding overhead in a process management device
US8874810B2 (en) System and method for read data buffering wherein analyzing policy determines whether to decrement or increment the count of internal or external buffers
US20060092934A1 (en) System for protocol processing engine
JP2003303134A (ja) コンピュータ処理システム及びコンピュータで実行される処理方法
EP2618257A2 (en) Scalable sockets
JP2003248622A (ja) 帯域幅を増加させるためのメモリシステム
JPH05274252A (ja) コンピュータシステムにおけるトランザクション実行方法
JP3757904B2 (ja) 通信制御装置
JP3849578B2 (ja) 通信制御装置
US20230012707A1 (en) Methods and systems for exchanging network packets between host and memory module using multiple queues
KR100215572B1 (ko) 인터페이스 버퍼 제어 방법 및 장치
US9699107B2 (en) Packet engine that uses PPI addressing
CN117319328A (zh) 一种基于riscv异构多核soc的报文处理系统
JPH01239665A (ja) マルチプロセッサの負荷分散方式
IE901531A1 (en) Method and means for arbitrating communication requests¹using a system control unit in a multiprocessing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040419

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

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060821

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130908

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees