JP2003308262A - ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法 - Google Patents

ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法

Info

Publication number
JP2003308262A
JP2003308262A JP2003060317A JP2003060317A JP2003308262A JP 2003308262 A JP2003308262 A JP 2003308262A JP 2003060317 A JP2003060317 A JP 2003060317A JP 2003060317 A JP2003060317 A JP 2003060317A JP 2003308262 A JP2003308262 A JP 2003308262A
Authority
JP
Japan
Prior art keywords
data
protocol
processing
buffer
tcp
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.)
Pending
Application number
JP2003060317A
Other languages
English (en)
Inventor
Jung-Tae Lee
李正泰
Ku-Hwan Kim
金久煥
▲ソウ▼圭成
Gyu-Sung Choi
Yun-Young Go
高綸英
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.)
WIZNOT CORP
Original Assignee
WIZNOT 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 WIZNOT CORP filed Critical WIZNOT CORP
Publication of JP2003308262A publication Critical patent/JP2003308262A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership

Abstract

(57)【要約】 【課題】 マルチメディアアプリケーションの遅延を最
小化することができ、SOCへの適用が容易で、使用し
易くて経済的なハードウェアプロトコルプロセシングロ
ジックで実現されたインタネット通信プロトコル装置及
びその装置を用いたデータ並列処理方法を提供するこ
と。 【解決手段】 アプリケーションプロトコル、TCP/
IPプロトコルスタック及び物理的プロトコルからなる
インタネット通信プロトコル装置のうち、TCP/IP
プロトコルスタックのデータがハードウェア的に並列処
理される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的なインター
ネット通信に係り、特にTCP/IPプロトコルスタッ
クをハードウェア的に実現する通信プロトコルシステ
ム、及びプロトコルシステムを用いてデータを並列処理
する方法に関する。
【0002】
【従来の技術】TCP/IP(Transmission Control P
rotocol/Internet Protocol)は、コンピュータをイン
ターネット通信に使用し、異機種のコンピュータ間で通
信を行うプロトコルとプログラムのセットである。TC
P/IPを使用するコンピュータシステムは、ハードウ
エアやオペレーティングシステムが異なっているにも係
わらず、共通の言語を使用できる。例えば、TCP/I
Pプロトコルは、要求するタスクを実行するために、O
SI(Open System Interconnection)リファレンスモ
デルの多くのレベルについて動作する。あるネットワー
クで要求する異なったタスクは、幾つかのプロトコルの
異なったセット(プロトコルスタックと呼ばれている)
で実行される。例えば、TCP/IPプロトコルスタッ
クは、多くのプロトコルからなり、インターネット通信
を行う。アップルトーク(R)と呼ばれるプロトコルス
タックは、マッキントッシュ間の通信を行う。他方、ウ
インドウズ(R)は、ネットワーク上のウインドウズコ
ンピュータ間で通信を行うユニークなプロトコルスタッ
クを使用する。ネットワーク上の、どのクライアント、
サーバー及び多くの周辺機器は、1つ以上のプロトコル
スタックを実施するソフトウエアを有している。例え
ば、最も最新のネットワークにおいて、マッキントッシ
ュコンピュータ(R)は、TCP/IPとアップルトー
クプロトコルスタック用のソフトウエアを有し、ウイン
ドウズコンピュータは、TCP/IPとウインドウズプ
ロトコルスタック用のソフトウエアを有している。シン
グルクライアント、サーバー、又は周辺装置は、同時に
多くのプロトコルスタックを実施するソフトウエアを有
していてもよい。
【0003】図1において、TCP/IPプロトコルス
タック20は、TCP、UDP(ユーザデータグラムプ
ロトコル;TCP/IPプロトコルスタックにおけるコ
ネクションレス・トランスポート層プロトコル)、IC
MP(インターネット・コントロールメッセージプロト
コル;エラーを報告し、IPパケット処理に関係する他
の情報を提供するネットワーク層インターネットプロト
コル)、IP、IGMP(インターネットグループマネ
ジメントプロトコル;IPホストにより使用され、これ
らのマルチキャスタグループ・メンバーシップを隣接す
るマルチキャスタルータに報告する)、ARP(アドレ
ス・リゾリューションプロトコル;IPアドレスをMA
Cアドレス(メディアアクセスコントロール)にマップ
するために使用される)、RARP(リザーブアドレス
・リゾリューションプロトコル;MACアドレスに基づ
いてIPアドレスを検索するための方法を提供する)、
及びイーサネットDLC(データリンクコントロール)
を含んでいる。従来、これらのプロトコルブロックは、
PCを使用する環境に適するようにソフトウエアで構成
されているか、或いはOS内部で処理されている。
【0004】図1において、従来は、アプリケーション
プロトコル10はソフトウエアで実現している。アプリ
ケーションプロトコル10は、ピング(Ping)、テルネ
ット、FTP(ファイルトランスファープロトコル)、
SMTP(シンプルメールトランスファープロトコ
ル)、DNS(ドメインネームシステム)、TFTP
(トレビアルファイルトランスファプロトコル;通常ク
ライアント・オーセンティケーションを使用することな
くFTPのバージョンをシンプルにする)、SNMP
(シンプルネットワーク・マネジメントプロトコル;ネ
ットワークをモニタし、制御する手段、コンフィグレー
ション、静的コレクション、パフォーマンス及びセキュ
リティをマネッジする手段を提供する)、BGP(EG
P(エクステリア・ゲートウエイプロトコル)を置き換
える、ブローダー・ゲートウエイプロトコル、インター
ドメイン・ルーティングプロトコル)、及びDHCP
(動的にコストコンフィギュレーションプロトコル;ホ
ストがアドレスを必要としない時、アドレスを再使用す
ることができるようにIPアドエスを動的にアロケート
するメカニズムを提供する)を有する。物理的プロトコ
ル30だけは、MACコントロール、及び物理的回路を
含み、ハードウエアで実現している。
【0005】TCP/IPプロトコルスタックの従来の
ソフトウエアによる実現は、OSのコストの増大、マル
チメディア通信のボトルネック、ソフトウエアによる通
信性能の低下、及びソフトウエアとハードウエア間のイ
ンタフェースボトルネック(Interfacing bottle-neck)
の欠点がある。それ故、情報機器、ファクトリーオート
メーション装置、移動通信装置(PDA、IMT200
0ターミナルなど)、及び他のPCレス装置(ウエブカ
メラ、インターネットメディア装置及びワイヤレスゲイ
ジなど)のためにTCP/IPスタック新しい実現方法
が求められている。
【0006】
【発明が解決しようとする課題】本発明の目的は、従来
のソフトウエアまたはOSによって処理されてきたTC
P/IPスタックをハードウエアロジックで実現するこ
とにある。
【0007】本発明の他の目的は、TCP/IPスタッ
クをハードウエアロジックで実現してデータを並列処理
し、通信プロトコルを提供することにより、従来のソフ
トウエア方式に比べて使用し易くて経済的であり、マル
チメディアアプリケーションの遅延を最小化することが
でき、SoC(System-on-Chip)の適用に容易な高性能
通信プロトコルを提供することにある。
【0008】本発明の他の目的は、TCP/IPプロト
コルスタックに属するTCP、UDP、IP、ICM
P、IGMP、ARP、及びRARPのそれぞれのブロ
ックに対するハードウエアロジックモジュール、上位階
層インタフェースロジック及び下位階層インタフェース
ロジックの構成とデータ処理方法を提供することにあ
る。
【0009】本発明のさらに他の目的は、ハードウエア
実現方式をTCP/IPプロトコルスタックだけでな
く、アプリケーションプロトコル及び下位階層プロトコ
ルにまで拡張することにより、アプリケーションプロト
コルと下位階層プロトコルをハードウエアロジックに統
合する技術を提供することにある。
【0010】本発明を別の観点から見ると、データの並
列処理方法は、最初の単位時間内に行う1つの処理ステ
ップを含んでいる。その処理ステップは、最初の単位処
理データを一時的バッファに格納し、データのチェック
サム計算に使用されるチェックサムバッファを初期化
し、そして、最初の単位処理データを最初のバッファに
格納する。更に、第2単位時間内に行う第2処理ステッ
プを含んでいる。第2処理ステップは、第2単位処理デ
ータと一時バッファに格納されたデータを加算し、第2
ユニット処理データを第2バッファに格納するサブステ
ップを有している。第3単位時間内に行う第3処理ステ
ップを含んでいる。第3処理ステップは、第3単位処理
データを一時バッファに格納し、第2単位時間に加算さ
れた値をチェックサムバッファに格納し、第3ユニット
処理データを第3バッファに格納するサブステップを有
している。第4単位時間内に行う第4処理ステップを含
んでいる。第4処理ステップは、第4単位処理データと
一時バッファに格納された値を加算し、第4ユニット処
理データを第4バッファに格納するサブステップを有し
ている。ここで、これらの処理ステップは、インターネ
ットプロトコルデータ処理において繰り返し実施され、
各処理ステップにおいて、単位時間内に複数の並列処理
ユニットが同時に行われる。
【0011】本明細書において使用された用語の定義は
次の通りである。 (1)TCP/IPプロトコルスタックは、TCP、U
DP、IP、ARP、RARP、IGMP、及び、同種
のものを含むプロトコルグループを意味する。 (2)インタネットデータは、TCP、UDP、IP、
ARP、RARP、及びIGMPプロトコルのヘッダと
データ情報を総称する。 (3)パケットは、インタネットプロトコルのヘッダと
データ情報を含む伝送単位を意味する。 (4)単位処理データは、各プロトコルのヘッダとデー
タを処理する最小単位(1バイト、2バイト、4バイ
ト、4バイト以上)を意味する。 (5)単位時間は、ハードウエアロジックを動作させる
のに必要な同期信号を意味し、1バイトのデータ処理に
必要な一つまたは一つ以上のクロックの集合である。 (6)下位階層プロトコルとは、10/100イーサネ
ット、ワイヤレスLAN、ブルートース、パワーライ
ン、ホームPNA、ホームRF、及びシリアル通信で使
用するIPプロトコル階層の下位に接続可能な全ての通
信プロトコルを総称する。 (7)応用階層(アプリケーション)プロトコルとは、
TCP、UDP、IP、ARP、ICMP、及び、IG
MPの上位でユーザにサービスを提供するHTTP、S
MTP、POP3、SNMP、テルネット、FTP、及
びピングを含むプロトコルを総称する。
【0012】
【発明の実施の形態】以下、本発明を実施例によって添
付図に基づいて詳細に説明する。なお、これらの特徴、
利点は、図面と共に記載される以下の詳細な説明から明
確になるであろう。図面は、大きさが必ずしも正確に描
かれてない。この実施例は発明の例示に過ぎず、本発明
を限定するものではない。
【0013】図2は本発明の基本構成図である。図2に
示すように、本発明は、従来、ソフトウエアで実現して
いたTCP/IPプロトコルスタックをハードウエアで
構成した。
【0014】図3は、本発明にしたがっているハードウ
エアプロトコルプロセシングロジックのブロック回路図
である。図3によると、本発明の特徴となるTCP/I
Pプロトコルスタック20のハードウエアプロトコルプ
ロセシングロジック50は(a)上位階層インタフェー
スロジック部52、(b)TCP、UDP、ICMP、
IGMP、IP、ARP、及びRARPハードウェアプ
ロトコルプロセシングロジック部(HPPL;Hardware Prot
ocol Processing Logic)54と(c)下位階層インタフ
ェースロジック部56からなっている。上位階層インタ
フェースロジック部52は、(図示していないが)上位
アプリケーション層へ及び上位アプリケーション層から
データをコントロールし、及び下位階層インタフェース
ロジック部56は、DLC60、イーサネットMACコ
ントローラ70及びイーサネット物理ロジック80に接
続されている。
【0015】この明細書において、”ハードウェアロジ
ックの実現”の用語は、全ての機能がASSP(Applic
ation Specific Standard Product)またはASIC(A
pplication Specific Integrated Circuit)チップ内に
集積できる回路で形成され、全データの処理が単位時間
内で並列に処理されることを意味する。一方、従来のソ
フトウェアによる場合、汎用MCUで行われるOSによ
ると、データをバイト単位でシーケンシャル(Sequentia
l)またはシリアル(Serial)に処理する。
【0016】図3のHPPLのコンポーネントブロック
はIPロジックを除けば全て同じ内部構造を有するの
で、ハードウェア処理は、各プロトコルのヘッダによっ
て細部の処理内容は異なるが、同一の方法で行われる。
従って、本明細書ではハードウェアTCPプロセシング
ロジックに関して説明し、残りブロックのロジックはT
CPロジックとの差異点に焦点をあてて説明する。
【0017】インタネットに使用されるTCPプロトコ
ルヘッダ90は図4に図示される。図4のヘッダをハー
ドウェア的に処理する技術はハードウェアTCPプロセ
シングロジックといい、この構造を図5に示す。
【0018】図4に関し、TCP/IPプロトコルヘッ
ダ又セグメント90において、ソースとデスティネーシ
ョンのポート番号は、16ビットTCPポート番号であ
る。シーケンス番号とアクノリッジ番号は、送られたバ
イト番号と受信したバイト番号を示している。HLEN
はヘッダ長であり、OPTIONとPADDINGフィ
ールドが可変であるために必要となる。6ビットコード
のフィールドビットは、以下のように割り当てられる。
URGはアージェントポインターがバリッドであり、A
CKはアクノリッジメントフィールドがバリッドであ
り、PSHはセグメントがプッシュを要求するものであ
り、RSTはコネクションをリセットするものであり、
SYNはシーケンス番号に合わせるものであり、FIN
はセンダーがそのビットの流れの終わりに到達している
ことにある。ウインドウ・アドバタイズメント・フィー
ルドは、WINDOWフィールドの残りのバッファサイ
ズを指定することにより成される。TCPチェックサム
の計算は、UDPsに関する同一の擬似ヘッダスキーム
を使用し、そして、そのデータは正しいマシーンとポー
トの双方に辿り着く。URGENTポインタ・フィール
ドは、アージェントデータのENDを指示する。OPT
IONフィールドは、トランスポートのピアと通信する
のに使用される。このトランスポートのピアは、MAX
IMUMセグメントサイズのような値である。PADD
INGフィールドは、IPTIONフィールドのバイト
カウントを等しくする。
【0019】図5に関し、ハードウェアTCPプロセシ
ングロジック100は、他のプロトコル階層とは独立的
に動作し、TCPパケットのヘッダを処理し、TCPデ
ータの送信と受信動作を行う。ハードウェアTCPプロ
セシングロジック100は、メモリコントローラ11
0、データバッファ120、ヘッダバッファ130とコ
ントロールロジック140を有していてもよい。
【0020】データを伝送するフェーズの動作は、ま
ず、アプリケーション階層の制御信号に同期してメモリ
コントローラ110によって、アプリケーションデータ
をデータバッファ120に格納する。データの格納と同
時に、メモリコントローラ110はデータのチェックサ
ムを予め計算する。TCPコントロールロジック400
は、図3の上位階層インタフェースロジック52を介し
て、アプリケーション階層からデータ伝送を開始しろと
いう信号を受信すると、TCPコントロールロジック1
40は、最新の情報を用いてTCPヘッダを生成し、デ
ータのチェックサムとヘッダのチェックサムを用いて正
確なチェックサムを計算してヘッダバッファ130にそ
れらを格納する。ヘッダ生成が終わると、TCPコント
ロールロジック400はクロックに合わせてデータを下
層のIP階層へ伝送する。ヘッダとデータを伝送する単
位は、内部バスの種類によって64ビット、32ビッ
ト、16ビットまたは8ビットになる。
【0021】IP階層からデータを受信するフェーズに
おけるハードウェアTCPプロセシングロジック100
の動作は次の通りである。TCPコントロールロジック
140は、クロックに合わせてIPプロトコール階層か
らTCPヘッダとデータを受信する。TCPヘッダに関
して、TCPコントロールロジック140は、ヘッダの
各単位処理データに合わせてヘッダデータを集めた後、
直ちに幾つかのプロセサによって全ての処理を行う。例
えば、図4においてTCPヘッダのソースポート(Sourc
e Port)とデスティネイションポート(Destination Por
t)は、2バイト単位で集められ、現在開いているチャネ
ルのソースポートとデスティネイションポートとが比較
される。開いているチャネルがない場合にはエラーメッ
セージを発送する。開いているチャネルがある場合に
は、TCPコントロールロジック140は、開いている
チャネルのデータバッファ120に集められたソースと
デスティネーションポートを格納するための準備をす
る。図4のTCP/IPプロトコルヘッダのシーケンス
番号フィールドは、単位処理データが4バイト(32ビ
ット)なので、4バイト単位でデータを集めた後、受信
しようとするシーケンスでハードウェア的に比較して、
適正なデータバッファ200にデータを格納する。
【0022】アクノリッジ番号(Acknowledgement Numbe
r)は4バイト単位で処理され、現在データバッファ20
0の内部に格納され、既に送信されたデータのピアノー
ド(Peer Node)から正常受信か否かに関する結果を待っ
ているデータバッファの領域を解除する。HLENとC
ODE・BITに対しては1バイト単位で、WINDO
W、CHECKSUM、URGENT・POINTER
に対してはそれぞれ2バイト単位で処理される。OPT
IONフィールドは、関連するタイプのフィールドを含
むオプションの全長の単位時間で処理される。このTC
P/IPプロトコルヘッダに対する処理は、1バイトの
場合には1単位時間内に、2バイトの場合には2単位時
間内に、4バイトの場合には4単位時間内で行われるの
で、ヘッダとデータの処理に遅延が発生しない。受信処
理フェーズ中に送信に必要な情報は、受信したヘッダの
処理後、次の送信のためにヘッダバッファ130に格納
するので、送信の際に追加の計算ステップなしに伝送で
きる。
【0023】データ受信フェーズにおいて、TCPデー
タの処理は単位処理データを2バイトとするので、2バ
イト単位でチェックサムを計算する。一方、TCPデー
タは、データバッファ130に1バイト単位で格納され
る。ところが、このチェックサム計算の操作とデータバ
ッファ130に格納するデータは、図5のハードウェア
構造を用いて並列処理によって同時処理される。受信し
た最後のTCPデータバイトの処理については、チェッ
クサム計算結果は、TCP/IPプロトコルヘッダのチ
ェックサムフィールドと比較される。結果が正確(失敗
がない)であれば、データバッファのライティングポイ
ンタ(writing pointer)値は、受信したデータのサイズ
だけ増加させ、一方、結果が正確でなければ、ライティ
ングポインタ値を受信する以前の値に初期化してデータ
バッファの状態をパケット受信以前の値に復元する。
【0024】本発明は、従来のソフトウェア処理の問題
点を解決すために、特に、並列処理技術を用いて回路全
てを処理する。並列処理においては、具体的にTCPヘ
ッダの各処理単位別にデータが集まり次第処理する並列
処理アルゴリズムが核心である。このため、単位時間内
に多数の作業を同時に行い、1バイト単位、2バイトま
たは4バイト単位の遂行を他の作業と並行する。これを
説明するために、パケットを受信する際、図4のTCP
/IPプロトコルヘッダ90のACK番号フィールドか
らチェックサムフィールドの一番目のバイトまでの並列
処理工程を図6に示した。
【0025】図6では、受信したTCPヘッダデータの
うちACK番号、HLEN、CODE、WINDOW、
CHECKSUMフィールドを作業単位に基づいて並列
に処理する方法を説明する。図6において、主クロック
の記号t0〜t9は単位時間を意味し、時間の経過を順
次示している。ここで、t0がt1より時間的に先立っ
ている。図6では単位時間t0〜t9が1クロック周期
で表示されているが、これは使用するメインクロックに
よっては多数個のクロックを持つこともできる。
【0026】図6において、プロセシングAとプロセシ
ングBはTCPヘッダのチェックサムを並列に処理し、
一方、プロセシングCとDは関連する単位処理データを
実時間で処理している。そのチェックサム処理は、単位
処理データが2バイトなので、単位時間t1では、プロ
セシングAは、受信データACK1(First byte of Ack
nowledgement number)を臨時バッファTMPに格納す
る。同時にプロセシングBは、TCPヘッダのチェック
サム計算に使われるチェックサム結果バッファCBUF
をリセットし、プロセシングCは、ACK番号の単位処
理データサイズの4バイトを集めるために、ACK1を
バッファR1に格納する。同様に、t2ではプロセシン
グBは、16ビットヘッダチェックサム計算のために現
在受信したデータACK2と臨時にTMPに格納された
値とを合わせて、16ビットヘッダチェックサムの計算
のために、16ビットワードに作し、16ビットワード
がCBUFの内容に加えられる。これと同じ単位時間に
プロセシングCはACK2をR2に格納する。t3では
受信データACK3を再度臨時バッファTMPに格納
し、同時にt2で以前に加算した値をCBUFにアップ
デートし、プロセシングCはACK3をR3に格納す
る。t4はt2と同一の処理を行う。t5では、プロセ
シングAがTCPチェックサム計算のために受信したデ
ータHLENをTMPに格納し、同時にプロセシングB
はt4で計算された値でCBUFをアップデートし、プ
ロセシングCで受信したデータHLENを単位処理デー
タの大きさが1バイトなので格納せずに直ぐに処理す
る。同時にプロセシングDはt1〜t4の間に集められ
た4バイトのACK値を用いてACK番号に対する処理
を行う。ここで、ACKが受信されるTCPデータバッ
ファのデータ領域が解放される。このようにt6以後に
もt0〜t5と同様に単位処理データのサイズに応じて
並列に処理する。
【0027】単位処理データのサイズは、TCPヘッダ
の場合、1バイトまたは1バイト以下、2バイト、4バ
イトであり、一方、TCPヘッダのオプションフィール
ドでは、オプションセグメント長さフィールドに表現さ
れた最大サイズは、単位処理データサイズになる。ま
た、チェックサムデータの処理は16ビット単位で行わ
れるので、単位処理データが2バイトになり、一方、デ
ータ格納は8ビットであるから、単位処理データは1バ
イトになる。
【0028】図6において、TCPヘッダの処理が終わ
ると、連続してTCPデータを受信する。TCPのチェ
ックサム計算はTCPのヘッダだけでなく、データに対
しても同じに行われなければならないので、プロセシン
グAとBはヘッダと同じ演算を引続き行い、これと同時
にプロセシングCは受信したデータを該当単位時間中に
TCPデータバッファ120に格納する。TCPパケッ
ト(セグメント)が最終データを受信すると直ちに、最
終TCPチェックサムの計算結果を作り出す。単位クロ
ック(tn)の次の(tn+1)で、最終データが受信
されると直ちに、CBUFにはヘッダとデータを含む全
受信TCPパケットのチェックサム演算結果値を有し、
各処理結果値は、TCPヘッダ内のチェックサム値と比
較し、失敗か成功かを決定する。チェックサム失敗(fai
l)の場合には、既にTCPデータバッファに格納された
データは、次のクロック周期(tn+2)で捨て、その
次のクロック周期(tn+3)で、メモリポインタ値
を、パケットを受信する以前の状態に戻す。これに反
し、その結果がチェックサム成功の場合には、格納デー
タをそのまま保存しながら次の受信パケットに対する処
理を続ける。
【0029】このような並列処理は、単位時間内に多数
の作業を同時に行うことにより、処理遅延を無くし、デ
ータの効率的な処理を極大化する。ここで、プロセシン
グA、B、C及びDは、処理すべき演算の種類とTC
P、UDO、IPなどのプロトコルロジックによって、
その数が増加または減少する。
【0030】ハードウェアTCPプロセシングロジック
50の送信は受信フェーズと反対の方法で行われる。送
信フェーズの詳細な説明のために、図5の構造を図7に
詳細に示す。本実施例では、TCPコントロールロジッ
ク140は、データチェックサム計算部142とヘッダ
処理ロジック144を含んでいる。
【0031】図7に関して、メモリコントローラ110
が送信するデータをアプリケーション層から受信する
と、メモリコントローラ110は受信データをデータバ
ッファ120に格納し、同時に、TCPコントロールロ
ジック140は一定のサイズを有するデータのチェック
サムを予め計算する。この場合、同時に2つのコントロ
ールロジックが並列処理に関与している。データのチェ
ックサムの大きさは、アプリケーションの種類と最大パ
ケットのサイズ、及び、最小は1バイトから最大は通信
網のMSS(Maximum Segment Size)の値までの範囲に依
存する。
【0032】図7の構造の送信において、受信とは異な
り、ハードウェアTCPプロセシングロジックブロック
は予めTCPヘッダバッファに伝送するデータを格納し
ておき、TCPヘッダバッファに存在する情報をデータ
の伝送に先立って伝送する。その後、その次の単位クロ
ックから絶え間無く連続してデータバッファのデータを
下位階層に伝達する。
【0033】既存のソフトウェアによる処理方法では、
送信フェーズにTCPセグメントを送るためには、伝送
するデータをメモリから読み出してチェックサムを計算
した後、TCPヘッダを伝送する。次にTCPデータを
伝送するために、メモリからデータを読み出す。このた
め、全体データを2回読むことになる。しかし、本発明
では、図7に示すように、アプリケーションからデータ
を受け、データバッファ120に格納する間(ステップ
1)、予めデータのチェックサム値を計算し(ステップ
2)、そして、計算したチェックサムをTCPのヘッダ
領域内のチェックサムフィールドに格納する(ステップ
3)。その後、TCPコントロールロジック140がア
プリケーション階層から上位階層インタフェースロジッ
クを介してパケット伝送命令を受信すると(ステップ
4)、ヘッダバッファのデータを読み出して、直ちに伝
送し(ステップ5)、引き続き、データバッファ120
の情報をメモリコントローラ110から受けて伝送する
(ステップ6)。このように予め計算されたデータのチ
ェックサムは、TCPパケットの伝送時に追加の計算作
業なしでデータを直接送信できるので、下位階層が最大
性能で動作し、データが充分供給される場合には、上位
階層の性能を2倍に向上させることができる。
【0034】送信フェーズの並列処理のための細部動作
を考察すると、図7においてTCPコントロールロジッ
ク140は送信のために予め計算されたチェックサム値
を使用するので、ハードウェアTCPプロセシングロジ
ック140の送信動作では、チェックサムを計算する図
6のプロセシングA〜Bは無くなる。更に、ヘッダ解析
のためのプロセシングCとDの代りに、図7のヘッダバ
ッファ130に格納されているヘッダ値を読み出して伝
送する。従って、図7のTCPコントロールロジック内
部の並列処理を行なうには、ヘッダとデータ情報を伝送
するシングルプロセシングで充分である。勿論、データ
伝送のためには、メモリコントローラ110がデータを
読み出し、TCPプロセシングロジックへ伝達する並列
作業を別途必要とする。TCPコントロールロジック
は、その伝送に先立って、ヘッダ情報生成のためにデー
タ伝送前の残存期間中にTCPヘッダを予め生成する処
理が必要である。ここで、残存期間とはアプリケーショ
ンからデータを受けてメモリに格納する間、或いはヘッ
ダのデータを伝送する間をいう。この残り時間にはヘッ
ダバッファ130へのアクセスが行われないので、ヘッ
ダバッファ130の情報を修正することができる。
【0035】図6で述べた並列処理技術は、ハードウェ
アTCPプロセシングロジックだけでなく、図3のUD
P、IP、ARP、RARP、ICMP、IGMPプロ
セシングロジックにおいても同じく適用され、それ故、
送信したデータまたは受信したデータを処理遅延(proce
ssing delay)、メモリアクセス遅延(memory access del
ay)、チェックサムのような演算遅延(calculation dela
y)なしでインタネット或いはアプリケーション層に伝達
することができる。
【0036】また、図6で説明したヘッダ情報とチェッ
クサムの事前計算は、UDP、IP、ARP、RAR
P、ICMP、IGMPのヘッダとデータの伝送、及
び、同時遂行を必要とする他のプロトコル処理に対して
も同じく適用される。
【0037】図8は、このような並列処理を支援するた
めに、図3からIPブロックを除いた残りの各ロジック
ブロックの細部構成図を示す。
【0038】図8に関して、TCPブロック210、A
RPブロック220、RARPブロック230、UDP
ブロック240、ICGMPブロック250、及びIC
MPブロック260の各々は、それ自身のデータバッフ
ァ212、222、230、242、252、及び26
2、ヘッダバッファ214,224,234、244、
254、及び264、メモリコントローラ216、22
6、236、246、256、及び266、コントロー
ルロジック218、228、238、248、258、
及び268を有している。
【0039】図9は、本発明の実施例による並列データ
処理のIPプロトコルブロックの構成図である。図9に
おいて、IPブロック270はヘッダバッファ274と
IPコントロールロジック278を含んでもよい。IP
ブロック270には、データバッファを有しない点を注
意する必要がある。送信フェーズの際には、IPコント
ロールロジック278は、上位階層からデータを受信す
る前に、制御情報によりヘッダを伝送する時間を予め割
り当て、その時間中にIPヘッダ情報を伝送する。こう
して、ヘッダ伝送が完了する直後、上位階層からのデー
タを遅延なしで伝送できるので、IPブロックの内部に
はデータバッファが不要となる。更に、受信されたヘッ
ダ情報は、直ちに該当する機能を処理し、或いは図8の
ヘッダバッファ274のアップデートに用いられ、受信
されたデータは、TCP、UDP、ICMP、IGMP
のような上位プロトコルロジックのデータバッファ12
0を共有して格納される。TCPとUDPの場合、パケ
ット送受信の際にIP断片化が発生するかもしれない。
このような誤りが発生するか或いはIPチェックサムの
計算が間違ったと判断される場合、TCPまたはUDP
に制御情報を送って、格納データを共有する上位プロト
コルロジックのデータバッファ200から該当データを
削除し、各ポインタ値を以前の状態に戻す。このような
IPブロックの動作は、TCPだけでなく、UDP、I
CMP、IGMPのようなIP上位プロトコルロジック
に対しても適用される。それ故、IPブロックのメモリ
を除去し、上位階層メモリと共有にすることにより、メ
モリ活用効率を高め、階層別データの格納の遅延がな
く、データは最終データバッファ120まで伝達でき
る。このようなバッファ構造は、図10となる。
【0040】図10に示すように、IPブロック270
を除いたプロトコルブロック210、220、230、
240、250及び260は、並列処理のために分散さ
れた内部ヘッダバッファと内部データバッファを有し、
IPブロック270はヘッダバッファのみを有する。I
Pブロックにデータバッファを有しないと、高速処理を
要求するアプリケーソン或いはマルチメディアアプリケ
ーションにおける遅延を最小化するのに、非常に効果的
である。一方、低速アプリケーションの場合または遅延
に敏感でないアプリケーションでは、メモリ共有スキー
ムは、上位プロトコルロジックブロックのメモリコント
ロールロジックを複雑にする虞があるので、データバッ
ファをIPブロック270に含ませることができる。
【0041】次に、本発明の下位階層インタフェースロ
ジックを説明する。IPロジックブロックを下位階層に
連結する方法は様々である。ところが、ボトルネックに
なるソフトウェアを介入させることなく遅延なしで連結
するためには、IPロジックブロックと下位階層プロト
コル間のインタフェースを制御するロジック(例えば図
3の56)が必要である。図3に示すように、インター
ネットロジック56は、Ethernet(登録商標) DLCとEthe
rnet MACを直接制御し、従来のソフトウェアにおいてド
ライバプログラムが行っていたEthernet MACの初期
化と制御機能を行う。従って、本発明では、Ethernet装
置の制御とデータ通信は、ソフトウェアの介入なしにハ
ードウェアによって行うことができる。図11はこのよ
うな下位階層インタフェースロジックの構成図である。
【0042】図11において、ロジック56は、プロト
コルMUX(マルチプレクサ)310、FIFO32
0、初期化データバッファ330、初期化コントロール
バッファ340、及び初期化MUX350を有してもよ
い。下位階層プロトコルの初期動作のデータは、初期化
データバッファ330に保管される。初期化動作が始ま
る時、或いはアプリケーションから初期化命令が伝達さ
れた時に、初期化コントロールロジック部340は初期
化データバッファ330から初期化情報を読み出して下
位階層のイーサネットDLCを初期化する。初期化MU
X350は、初期化中に、初期化コントロールロジック
部340の制御情報に基づいて初期化情報を下位階層に
伝達する。初期化が終わると、初期化MUX350は、
FIFO320からのデータを下位階層に伝達する。初
期化データバッファ330の情報は、特定の下位階層の
ために一つの下位階層専用で固定させ、或いは多数個の
下位階層を連結し、それにより、可変的に選択して下位
階層を構成する時には、アプリケーションから上位階層
インタフェースロジックを介して直接初期化データバッ
ファ330に初期化情報を格納することができる。
【0043】一般に、下位階層プロトコルはインタフェ
ースのための固有の同期クロックを持っている。ハード
ウェア接続において、この同期クロックを合わせる作業
は最も重要である。図11において、FIFO320
は、上位のIP、ARP、またRARPと、下位階層プ
ロトコルイーサネット間のクロックを同期するためにデ
ータバッファの役割を行う。
【0044】図11において、プロトコルMUX310
は、受信フェーズにおいてIPロジックまたARP及び
RARPロジックのパケットを特定し、送信の際にはI
PロジックまたはARP及びRARPロジックのデータ
を選別して伝送する。
【0045】このような下位階層インタフェースロジッ
クは、図12A〜12Eのように、イーサネットだけで
なく、ワイヤレスLAN、パワーライン通信、ブルート
ース、ホームPNA、ホームRF、及びシリアル通信の
ような他のプロトコルにも同じく適用できる。この場
合、各下位階層インタフェースロジックは、パワーライ
ンインタフェースロジック362、WLLインタフェー
スロジック372、ブルートースインタフェースロジッ
ク382、ホームPNAインタフェースロジック39
2、ホームRFインタフェースロジック402などで表
記されることができ、その構成と動作は前記図11の説
明と類似している。
【0046】図13は、図3における上位階層インタフ
ェースロジック52の詳細ブロック図である。上位階層
インタフェースロジックは、上位階層への接続のための
ロジックであって、MCUバスインタフェース、I2C
(インターICコントロール)、シリアルバスを含む多
様なプロトコルを支援する。
【0047】図13において、MCUインターフェース
(I/F)ブロック412は、8ビット、16ビットま
たは32ビットのデータ幅を有するMCUバスインタフ
ェース信号を生成し、MCUとデータの受け渡しを行
う。I2Cインターフェース414とシリアルインター
フェース416は、該当インタフェース信号を生成する
機能を行う。これらの各I/Fブロックにおいて、必要
に応じて、一つまたは2つ以上が使用される。
【0048】上位階層インタフェースロジック52は、
MCUユーザのプログラミングの便宜を支援するための
API(Application Programming Interface)を提供す
る。このようなAPIインタフェースは、図13のAP
Iコントロールロジック418によって処理される。A
PIコントロールロジック418は、従来にソフトウェ
アで処理されたAPI機能をハードウェア的に実行し、
各種MCUインタフェースに合うクロック同期化作業を
行う。
【0049】また、上位階層インタフェースロジック5
2は、APIインタフェースの様々な命令が受け入れら
れるように、コマンドレジスタ422を有し、様々な状
態情報を提供するステータスレジスタ420を有する。
コマンドレジスタ422は、アプリケーションから与え
られる命令を格納する空間であり、各下位プロトコルロ
ジックブロックは、このコマンドレジスタ422の値を
読んで該当動作を行う。下位プロトコルロジックブロッ
クの遂行の結果をステータスレジスタ420に記録す
る。アプリケーションは、ステータスレジスタ420の
記録値を見て、命令の正常終了如何を確認し、或いは次
の命令を与える。
【0050】上述したハードウェアプロトコルプロセシ
ングロジックは、図14のように上位階層アプリケーシ
ョンプロトコルの一部または全体を含むことができる。
この場合、図13の上位階層インタフェースロジック
は、TCP、UDP、ICMP、及びIGMPに対する
インタフェースの代りに、該当アプリケーションプロト
コルを支援するために修正される。上位階層インタフェ
ースロジックは、外部によって制御され、又は、アプリ
ケーションによっては、省略される。
【0051】更に、前述したハードウェアプロトコルプ
ロセシングロジックは、アプリケーションに応じて、修
正される。例えば、図15Aのように、ハードウェアプ
ロトコルプロセシングロジック50は、外部商用MCU
と、下位階層イーサネットDLC60、イーサネットM
AC80及びイーサネットPHY80に接続できる。更
に、図15Bのように、ハードウェアプロトコルプロセ
シングロジック50は、MCU460で使用するメモリ
470を共有できる。図15Aと15Bにおいて、イー
サネットMAC70及びイーサネットPHY80は、図
12で説明したパワーライン、ワイアレスLAN、ホー
ムPNA、ホームRF、及びブルートースのような、多
様な下位階層プロトコルで置き換えることができる。
【0052】本発明では、図15A及び図15Bのブロ
ック図3に示すハードウェアプロトコルプロセシングロ
ジックの内部構成ブロックの全ての組み合せのために、
SoC(system-on-chip)技術を用いてASSPまたはA
SICを製作することができる。
【0053】図面及び明細書において、本発明の典型的
な好ましい実施例が開示されている。そして、ここで、
特定の用語が使用されているが、それらは、一般的な説
明を意味するもので、限定する目的ではなく、本発明の
範囲は、特許請求の範囲に示されている。
【図面の簡単な説明】
【図1】従来のTCP/IPを使用するインタネットの
通信プロトコルの構成図
【図2】本発明の概要図
【図3】本発明に係るハードウェアプロトコルプロセシ
ングロジックのブロック回路図
【図4】インタネット通信に使用されるTCPセグメン
トフォーマットを示す図
【図5】本発明によってTCPヘッダをハードウェア的
に実現するTCPハードウェアプロセシングロジックの
ブロック回路図
【図6】TCPヘッダデータを受信して並列的に処理す
る工程を示すタイムチャートの図
【図7】TCPチェックサム計算のためのハードウェア
TCPロジックブロックの送信工程を示すブロック図
【図8】並列データ処理のためのTCP、UDP、IC
MP、IGMP、ARP、及びRARPプロトコルロジ
ックブロックの内部構成図
【図9】並列データ処理のためのIPプロトコルロジッ
クブロックの内部構成図
【図10】並列データ処理のためのプロトコルブロック
のバッファ構造図
【図11】本発明の実施例に係る下位階層インタフェー
スロジックのブロック図
【図12】本発明の実施例に係る下位階層プロトコルの
内部構成図
【図13】本発明の実施例に係る上位階層インタフェー
スロジックの内部構成図
【図14】本発明の実施例に係る上位階層プロトコルの
一部又は全部を含むハードウェアプロトコルプロセシン
グロジックのブロック図
【図15】本発明の変形した実施例に係るブロック図
【符号の説明】
10:アプリケーションプロトコル 20:TCP/IPプロトコルスタック 30:物理的プロトコル 52:上位階層インタフェースロジック 50:ハードウエアプロトコルプロセシングロジック 52:上位階層インタフェースロジック 56:下位階層インタフェースロジック 60:DLC 70:イーサネットマックコントローラ 80:イーサネット物理ロジック 90:TCPプロトコルヘッダ 100:ハードウェアTCPプロセシングロジック 110:メモリコントローラ 120:データバッファ 130:ヘッダバッファ 140:コントロールロジック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ▲ソウ▼圭成 大韓民国ソウル市銅雀區新大方洞605−33 番地 (72)発明者 高綸英 大韓民国ソウル市冠岳區奉天洞850−33番 地101號 Fターム(参考) 5B089 GB01 HB02 KA05 KA06 KF06 5K034 AA13 EE11 SS01 SS02

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 アプリケーションプロトコル、TCP/
    IPプロトコル、及び物理プロトコルを備え、TCP/
    IPプロトコルスタックのデータは、ハードウェアで並
    列処理されることを特徴とするインタネット通信プロト
    コル装置。
  2. 【請求項2】 TCP/IPプロトコルスタックは、
    (a)TCP、UDP、ICMP、IGMP、IP、A
    RP、及びRARPハードウェアプロセシングロジック
    と、(b)上位階層インタフェースロジックと、(c)
    下位階層インタフェースロジックとを備えていることを
    特徴とする請求項1に記載のインタネット通信プロトコ
    ル装置。
  3. 【請求項3】 TCP、UDP、ICMP、IGMP、
    ARP、RARPロジック部は、それぞれメモリコント
    ローラ、データバッファ、ヘッダバッファ、及びコント
    ロールロジックを備えていることを特徴とする請求項2
    に記載のインタネット通信プロトコル装置。
  4. 【請求項4】 IPハードウェアロジックは、メモリコ
    ントローラ、ヘッダバッファ及びコントロールロジック
    を備えていることを特徴とする請求項2に記載のインタ
    ネット通信プロトコル装置。
  5. 【請求項5】 IPハードウェアロジック部は、データ
    の低速処理或いは遅延にクリティカルでないアプリケー
    ションのためのデータバッファ部を備えていることを特
    徴とする請求項4に記載のインタネット通信プロトコル
    装置。
  6. 【請求項6】 TCP/IPプロトコルスタックをハー
    ドウェアで実現し、各TPC/IPプロトコルスタック
    の機能がASSPまたはASICチップ内に集積化して
    あることを特徴とする回路。
  7. 【請求項7】 TCP/IPプロトコルスタックがハー
    ドウェア的に実現されたインタネット通信プロトコル装
    置によってプロトコルデータを送信する方法において、 上位階層からデータを受信してデータバッファに格納す
    ると同時に、前記データに対するチェックサムを計算し
    てヘッダバッファに格納することにより、データの伝送
    時に改めてチェックサムを計算しないことを特徴とする
    プロトコルデータの送信方法。
  8. 【請求項8】 一つ以上のデータ処理部がインタネット
    プロトコルデータを処理する方法において、 インタネットプロトコルの単位処理データを単位時間内
    に並列的に処理し、遅延なくヘッダ情報とデータを送受
    信することを特徴とするインタネットプロトコルデータ
    のハードウェア的処理方法。
  9. 【請求項9】 プロトコルデータを送信する場合には、
    前記データのチェックサムを計算するためにデータバッ
    ファからデータを読み出すことなく、予め計算されたチ
    ェックサム値を用いてデータを伝送することを特徴とす
    る請求項8記載のインタネットプロトコルデータのハー
    ドウェア的処理方法。
  10. 【請求項10】 プロトコルデータを受信する場合に
    は、前記データのチェックサムを計算するための別のデ
    ータバッファを置かず、受信したデータのチェックサム
    を計算すると同時に、最終的にデータが格納されるデー
    タバッファに直ちにデータを格納することを特徴とする
    請求項8に記載のインタネットプロトコルデータのハー
    ドウェア的処理方法。
  11. 【請求項11】 最終データを受けてチェックサム計算
    が完了する時点で、計算結果値に基づいて、データバッ
    ファに格納されたデータをそのまま残すか或いは消去す
    ることを特徴とする請求項10に記載のインタネットプ
    ロトコルデータのハードウェア的処理方法。
  12. 【請求項12】 データを並列に処理する方法におい
    て、第1単位処理データを臨時バッファに格納し、前記
    データのチェックサム計算に使用されるチェックサムバ
    ッファを初期化させ、前記第1単位処理データを第1バ
    ッファに格納する工程工程を含む、第1単位時間中に行
    われる第1処理ステップと、 第2単位処理データを前記臨時バッファに格納された値
    と合算し、前記第2単位処理データを第2バッファに格
    納する工程工程を含む、第2単位時間中に行われる第2
    処理ステップと、 第3単位処理データを前記臨時バッファに格納し、第2
    単位時間中に合算された値をチェックサムバッファに格
    納し、前記第3単位処理データを第3バッファに格納す
    る工程工程を含む、第3単位時間中に行われる第3処理
    ステップと、第4単位処理データを前記臨時バッファに
    格納された値と合算し、前記第4単位処理データを第4
    バッファに格納する工程工程を含む、第4単位時間中に
    行われる第4処理ステップとと、 インタネットプロトコルデータの処理工程工程が前記ス
    テップを繰返し行うことによりなされ、各ステップにお
    いて、1単位時間内に複数の並列処理により、多重処理
    が同時に行われることを特徴とするデータを並列に処理
    する方法。
  13. 【請求項13】 インタネットプロトコルデータはTC
    P、UDP、ICMP、IGMP、IP、ARP、及び
    RARPプロトコルヘッダ情報とデータであることを特
    徴とする請求項12に記載のインタネットプロトコルデ
    ータの並列処理方法。
  14. 【請求項14】 TCPプロトコルのヘッダ情報とデー
    タを並列処理する方法において、 TCPヘッダのACK番号フィールドのうちACK1を
    臨時バッファ(TMP)に格納し、ヘッダのチェックサ
    ム計算に使用されるチェックサムバッファ(CBUF)
    を初期化させ、前記ACK1を第1バッファ(R1)に
    格納する工程を含む、第1単位時間(t1)中に行われ
    る第1処理ステップと、 TCPヘッダのACK番号フィールドのうちACK2と
    前記臨時バッファ(TMP)に格納された値とを合算
    し、前記ACK2を第2バッファ(R2)に格納する工
    程を含む、第2単位時間(t2)中に行われる第2処理
    ステップと、 TCPヘッダのACK番号フィールドのうちACK3を
    臨時バッファ(TMP)に格納し、第2単位時間(t
    2)中に合算された値をチェックサムバッファ(CBU
    F)に格納し、前記ACK3を第3バッファ(R3)に
    格納する工程を含む、第3単位時間(t3)中に行われ
    る第3処理ステップと、 TCPヘッダのACK番号フィールドのうちACK4と
    前記臨時バッファ(TMP)に格納された値とを合算
    し、前記ACK4を第4バッファ(R4)に格納する工
    程を含む、第4単位時間(t4)中に行われる第4処理
    ステップと、 TCPヘッダのHLENフィールドを臨時バッファ(T
    MP)に格納し、第4単位時間(t4)中に計算された
    値をチェックサムバッファ(CBUF)に格納し、前記
    HLENを格納することなく直ちに処理し、第1単位時
    間乃至第4単位時間(t1〜t4)中に収集されたAC
    K値を用いてACK番号フィールドを処理する工程を含
    む第5処理ステップとを有し、 上記のステップを繰返し行い、各ステップにおいて1単
    位時間内に複数の並列処理部で複数の作業が同時に行わ
    れることを特徴とするTCPプロトコルのヘッダ情報と
    データを並列処理する方法。
  15. 【請求項15】 プロトコルデータをハードウェア的に
    処理する方法において、 受信されたプロトコルデータを臨時バッファに格納し、
    チェックサムを計算している単位時間中に、プロトコル
    データを各対応するデータバッファに格納し伝送するス
    テップと、 前記プロトコルデータの最終データを受信する時、最終
    プロトコルデータのチェックサム計算値を生成させるス
    テップと、 前記最終データが受信される次の単位時間(tn+1)
    に全体プロトコルデータパケットのチェックサム演算結
    果値をチェックサムバッファに格納して対応するプロト
    コルのヘッダ内のチェックサム値と比較するステップ
    と、 前記比較結果がチェックサムフェールであれば、次の単
    位時間に対応するプロトコルのデータバッファに格納さ
    れたデータを捨て、その次の単位時間(tn+3)にメ
    モリポインタ値を以前の状態に戻すステップと、 前記比較結果がチェックサムフェールでなければ、格納
    データを保存し、次の受信プロトコルセグメントに対し
    て処理するステップとを含むことを特徴とするプロトコ
    ルデータをハードウェア的に処理する方法。
  16. 【請求項16】 プロトコルデータが、TCP、IP、
    及びUDPデータであることを特徴とする請求項15に
    記載のプロトコルデータをハードウェア的に処理する方
    法。
  17. 【請求項17】 ハードウェアプロトコルコントロール
    ロジックを用いて、アプリケーションプロトコルデータ
    をIP階層に送信する方法において、 アプリケーション階層から対応するプロトコルデータバ
    ッファに伝送するデータを予め格納するステップと、 予め作られたプロトコルヘッダ情報をデータ伝送に先立
    って伝送するステップと、 プロトコルヘッダ情報の転送の次の単位時間から下位階
    層へデータバッファのデータを連続して伝達するステッ
    プとを並列処理することを特徴とするアプリケーション
    プロトコルデータをIP階層に送信する方法。
  18. 【請求項18】 アプリケーションデータがTCP、U
    DP、ICMP、及びIGMPデータを含んでいること
    を特徴とする請求項17に記載のアプリケーションプロ
    トコルデータをIP階層に送信する方法。
  19. 【請求項19】 ソフトウエアの介入なしにIPプロト
    コルの下位階層である物理階層とハードウエアのIP階
    層を直接連結し制御する装置。
  20. 【請求項20】 下位階層プロトコルを初期化するため
    のデータを格納する初期化データバッファ部と、 前記初期化データバッファ部の初期化情報を読み出して
    下位階層を初期化する初期化コントロールロジック部
    と、 前記初期化コントロールロジック部の制御情報に基づい
    て初期化情報を下位階層に伝達し、初期化完了後、FI
    FOからデータを下位階層に伝達するMUX部と、 IP、ARP、及びRARPブロックを有する上位プロ
    トコルと下位階層プロトコル間のクロックの同期を合わ
    せるFIFOと、 受信フェーズにIPロジックと、ARPとRARPロジ
    ックとのパケットを判別し、IPロジックと、ARPと
    RARPロジックのデータを選別して伝送するプロトコ
    ルMUXとから構成されたことを特徴とする請求項19
    に記載の物理階層とハードウエアのIP階層を直接連結
    し制御する装置。
  21. 【請求項21】 下位階層プロトコルは、イーサネット
    (登録商標)、ワイヤレスLAN、パワーライン通信、
    ブルートース、ホームPNA、ホームRFの中から選択
    されることを特徴とする請求項20に記載の物理階層と
    ハードウエアのIP階層を直接連結し制御する装置。
  22. 【請求項22】 TCP、UDP、ICMP、IGM
    P、IP、ARP、RARPハードウェアプロセシング
    ロジック部と上位階層とを連結する装置において、 各種インタフェースに合うMCUとのクロック同期化機
    能を有し、アプリケーションプログラミングインタフェ
    ースのためのAPIコントロールロジック部と、アプリ
    ケーションからの命令を格納するコマンドレジスタ部
    と、 ステータス情報を提供するステータスレジスタ部とを有
    することを特徴とするハードウェアプロセシングロジッ
    ク部と上位階層とを連結する装置。
  23. 【請求項23】 TCP、UDP、ICMP、IGM
    P、IP、ARP、及びRARPハードウェアプロセシ
    ングロジック部と上位階層とを連結する装置において、 API(Application Programming Interface)をハード
    ウェア的に実現し、上位階層とMCUI/F、I2CI
    /F、或いはシリアルI/Fを介して情報の受け渡しを
    行うことができることを特徴とするハードウェアAPI
    コントロール装置。
JP2003060317A 2002-04-08 2003-03-06 ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法 Pending JP2003308262A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020020019052A KR20030080443A (ko) 2002-04-08 2002-04-08 하드웨어 프로토콜 프로세싱 로직으로 구현된 인터넷 통신프로토콜 장치 및 상기 장치를 통한 데이터 병렬 처리 방법
KR2002-19052 2002-04-08

Publications (1)

Publication Number Publication Date
JP2003308262A true JP2003308262A (ja) 2003-10-31

Family

ID=29208700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003060317A Pending JP2003308262A (ja) 2002-04-08 2003-03-06 ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法

Country Status (4)

Country Link
US (1) US20030223433A1 (ja)
EP (1) EP1359727A3 (ja)
JP (1) JP2003308262A (ja)
KR (1) KR20030080443A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005066807A1 (ja) * 2003-12-26 2005-07-21 Renesas Technology Corp. マイクロコンピュータ及びデータ受信方法
JP2007142629A (ja) * 2005-11-16 2007-06-07 Hitachi Cable Ltd 応答通信機器及びarp応答通信機器
JP2007189296A (ja) * 2006-01-11 2007-07-26 Renesas Technology Corp ストリームデータ通信方法及びストリームデータ通信装置
US7856648B2 (en) 2004-01-17 2010-12-21 Samsung Electronics Co., Ltd. Method for processing VOD data in mobile station
WO2011033562A1 (ja) * 2009-09-16 2011-03-24 株式会社 東芝 通信装置
JP2011072030A (ja) * 2010-12-15 2011-04-07 Renesas Electronics Corp ストリームデータ通信方法及びストリームデータ通信装置
CN102750183A (zh) * 2012-07-03 2012-10-24 山东大学 电力系统数值仿真开放式应用程序接口

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1671453A4 (en) * 2003-09-10 2010-01-20 Hyperdata Technologies Inc INTERNET PROTOCOL ENHANCER
US7460531B2 (en) * 2003-10-27 2008-12-02 Intel Corporation Method, system, and program for constructing a packet
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
KR100950528B1 (ko) * 2003-12-03 2010-03-30 삼성전자주식회사 복수 개의 데이터를 계층별로 처리하는 장치 및 방법
US20050141557A1 (en) * 2003-12-24 2005-06-30 Bradac Mark G. Method and apparatus for parallel processing of communication protocols
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7895390B1 (en) 2004-05-25 2011-02-22 Qlogic, Corporation Ensuring buffer availability
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
AU2005266945A1 (en) 2004-07-23 2006-02-02 Citrix Systems, Inc. A method and systems for securing remote access to private networks
US8046830B2 (en) 2004-07-23 2011-10-25 Citrix Systems, Inc. Systems and methods for network disruption shielding techniques
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
IES20050376A2 (en) 2005-06-03 2006-08-09 Asavie R & D Ltd Secure network communication system and method
US20060274789A1 (en) * 2005-06-07 2006-12-07 Fong Pong Apparatus and methods for a high performance hardware network protocol processing engine
KR100738339B1 (ko) * 2005-12-01 2007-07-12 한국전자통신연구원 인터넷 프로토콜 오프로드의 패킷 전송 장치 및 방법
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US7809870B2 (en) * 2006-10-17 2010-10-05 Broadcom Corporation Method and system for interlocking data integrity for network adapters
US20110007754A1 (en) * 2009-07-10 2011-01-13 Gerald Pepper Flexible Hardware Checksum Generator
US9137166B2 (en) * 2010-01-28 2015-09-15 Brocade Communications Systems, Inc. In-order traffic aggregation with reduced buffer usage
CN102075422B (zh) * 2011-01-04 2014-06-25 杭州华三通信技术有限公司 一种组播管理方法及二层设备
CN102075439B (zh) * 2011-02-22 2013-09-11 杭州华三通信技术有限公司 一种组播报文转发方法和路由设备
CN102123049B (zh) * 2011-02-25 2013-03-06 北京理工大学 一种基于MAC地址传输的Cache同步方法
CN102195973A (zh) * 2011-03-25 2011-09-21 杭州再灵电子科技有限公司 一种基于arp技术的网络装置
CN102333073B (zh) * 2011-06-21 2014-10-22 北京新媒传信科技有限公司 Ip多媒体子系统业务管理方法和系统
CN102630377B (zh) * 2011-10-11 2014-11-05 华为技术有限公司 处理组播流质量参数的方法、装置和系统
CN102347960B (zh) * 2011-11-22 2015-02-04 烽火通信科技股份有限公司 一种使用网络重定向实现远程登录的方法
CN102523224B (zh) * 2011-12-21 2015-06-17 余姚市供电局 一种arp流量控制方法和系统
CN103220161B (zh) * 2012-01-18 2016-02-24 深圳市腾讯计算机系统有限公司 一种服务器状态的探测方法和装置
KR101357342B1 (ko) * 2012-03-15 2014-02-04 엘에스산전 주식회사 하드웨어 프로토콜 스택
CN102790773A (zh) * 2012-07-30 2012-11-21 深圳市共进电子股份有限公司 一种家庭网关用防火墙的实现方法
CN102820988A (zh) * 2012-08-01 2012-12-12 广东志高空调有限公司 一种家电控制方法,及系统
CN102932817B (zh) * 2012-10-10 2015-02-25 福建星网锐捷网络有限公司 语音流的识别方法、装置和无线接入设备
EP2723031B1 (en) * 2012-10-16 2019-07-24 Robert Bosch Gmbh Distributed measurement arrangement for an embedded automotive acquisition device with tcp acceleration
KR101533056B1 (ko) * 2014-06-25 2015-07-01 (주)넷텐션 안정성 향상을 위한 사용자 데이터그램 프로토콜 네트워킹 방법
CN105306373B (zh) * 2014-07-29 2019-03-15 杭州迪普科技股份有限公司 一种igmp报文处理方法以及装置
CN104980432A (zh) * 2015-05-15 2015-10-14 深圳市双翼科技有限公司 一种双pon口onu在olt注册管理协议栈的方法
CN105007238B (zh) * 2015-07-22 2018-04-24 中国船舶重工集团公司第七0九研究所 轻量级跨平台消息中间件的实现方法及系统
CN105812387A (zh) * 2016-05-09 2016-07-27 北京航天数控系统有限公司 一种单向数据安全交换设备
CN106325249A (zh) * 2016-09-13 2017-01-11 太仓苏易信息科技有限公司 一种家电远程遥控系统
US11409688B1 (en) * 2019-11-01 2022-08-09 Yellowbrick Data, Inc. System and method for checking data to be processed or stored
US20230021816A1 (en) * 2019-12-16 2023-01-26 Siemens Industry Software Inc. Method and Device for Testing A Base Station
US11770345B2 (en) * 2021-09-30 2023-09-26 US Technology International Pvt. Ltd. Data transfer device for receiving data from a host device and method therefor

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
JP3329390B2 (ja) * 1996-03-07 2002-09-30 日本電信電話株式会社 高速一括ファイル転送方法及び装置
US6094712A (en) * 1996-12-04 2000-07-25 Giganet, Inc. Computer network interface for direct mapping of data transferred between applications on different host computers from virtual addresses to physical memory addresses application data
US6173333B1 (en) * 1997-07-18 2001-01-09 Interprophet Corporation TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6591302B2 (en) * 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US5937169A (en) * 1997-10-29 1999-08-10 3Com Corporation Offload of TCP segmentation to a smart adapter
US6122670A (en) * 1997-10-30 2000-09-19 Tsi Telsys, Inc. Apparatus and method for constructing data for transmission within a reliable communication protocol by performing portions of the protocol suite concurrently
US6765901B1 (en) * 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
US6292888B1 (en) * 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
US6952409B2 (en) * 1999-05-17 2005-10-04 Jolitz Lynne G Accelerator system and method
CN1246012A (zh) * 1999-07-14 2000-03-01 邮电部武汉邮电科学研究院 一种用于英特网与同步数字体系融合的适配方法
US6760337B1 (en) * 1999-08-17 2004-07-06 Conexant Systems, Inc. Integrated circuit that processes communication packets with scheduler circuitry having multiple priority levels
KR20010076328A (ko) * 2000-01-19 2001-08-11 이정태 티씨피/아이피를 하드웨어적으로 처리하는 장치 및 그동작방법
KR100321822B1 (ko) * 2000-02-29 2002-03-07 윤영찬 이더넷용 티씨피/아이피 모뎀
US7031267B2 (en) * 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005066807A1 (ja) * 2003-12-26 2005-07-21 Renesas Technology Corp. マイクロコンピュータ及びデータ受信方法
US7856648B2 (en) 2004-01-17 2010-12-21 Samsung Electronics Co., Ltd. Method for processing VOD data in mobile station
JP2007142629A (ja) * 2005-11-16 2007-06-07 Hitachi Cable Ltd 応答通信機器及びarp応答通信機器
JP4640128B2 (ja) * 2005-11-16 2011-03-02 日立電線株式会社 応答通信機器及びarp応答通信機器
JP2007189296A (ja) * 2006-01-11 2007-07-26 Renesas Technology Corp ストリームデータ通信方法及びストリームデータ通信装置
WO2011033562A1 (ja) * 2009-09-16 2011-03-24 株式会社 東芝 通信装置
JP5481485B2 (ja) * 2009-09-16 2014-04-23 株式会社東芝 通信装置とそれを用いた受信処理方法及び送信処理方法
US8943214B2 (en) 2009-09-16 2015-01-27 Kabushiki Kaisha Toshiba Communication apparatus
JP2011072030A (ja) * 2010-12-15 2011-04-07 Renesas Electronics Corp ストリームデータ通信方法及びストリームデータ通信装置
CN102750183A (zh) * 2012-07-03 2012-10-24 山东大学 电力系统数值仿真开放式应用程序接口

Also Published As

Publication number Publication date
EP1359727A2 (en) 2003-11-05
EP1359727A3 (en) 2004-01-02
KR20030080443A (ko) 2003-10-17
US20030223433A1 (en) 2003-12-04

Similar Documents

Publication Publication Date Title
JP2003308262A (ja) ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法
US7197035B2 (en) Packet transfer apparatus having network address translation circuit which enables high-speed address translation during packet reception processing
US8180928B2 (en) Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US8583831B2 (en) Thin client discovery
US7554993B2 (en) Method and apparatus for performing connection management with multiple stacks
TWI332150B (en) Processing data for a tcp connection using an offload unit
JP4230663B2 (ja) 無線通信ネットワークにおけるパケット・ヘッダの削減
CN101557349B (zh) 处理互联网数据报的方法和系统
US7212527B2 (en) Method and apparatus for communicating using labeled data packets in a network
JP2005502225A (ja) ギガビット・イーサネット・アダプタ
JPH11112574A (ja) 異種ネットワークでデータ・パケットを生成する方法およびシステム
US7269661B2 (en) Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
EP1759317B1 (en) Method and system for supporting read operations for iscsi and iscsi chimney
JP2011018373A (ja) オフロードされたネットワークスタックの状態オブジェクトをアップロードする方法及びそれを同期する方法
US7009967B1 (en) Systems and methods for transmitting data packets
JPH11112561A (ja) 通信方法および通信装置
CN110838935A (zh) 高可用sdn控制器集群方法、系统、存储介质及设备
US20050281261A1 (en) Method and system for supporting write operations for iSCSI and iSCSI chimney
WO2006065688A1 (en) High performance transmission control protocol (tcp) syn queue implementation
US7420991B2 (en) TCP time stamp processing in hardware based TCP offload
US6961777B1 (en) Systems and methods for predicting fields in a data packet
US20080056263A1 (en) Efficient transport layer processing of incoming packets
US20080320162A1 (en) Method and System for Minimum Frame Size Support for a Communication Protocol Encapsulated Over Ethernet
JP4916482B2 (ja) ギガビット・イーサネット・アダプタ
EP1389852B1 (en) Method for performing TCP/IP based communication over a multiple IP-network system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061114