JP4373887B2 - パケット処理方法 - Google Patents

パケット処理方法 Download PDF

Info

Publication number
JP4373887B2
JP4373887B2 JP2004287485A JP2004287485A JP4373887B2 JP 4373887 B2 JP4373887 B2 JP 4373887B2 JP 2004287485 A JP2004287485 A JP 2004287485A JP 2004287485 A JP2004287485 A JP 2004287485A JP 4373887 B2 JP4373887 B2 JP 4373887B2
Authority
JP
Japan
Prior art keywords
memory
received packet
interrupt
data
packet data
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
JP2004287485A
Other languages
English (en)
Other versions
JP2006101401A (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.)
Lapis Semiconductor Co Ltd
Original Assignee
Oki Semiconductor Co 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 Oki Semiconductor Co Ltd filed Critical Oki Semiconductor Co Ltd
Priority to JP2004287485A priority Critical patent/JP4373887B2/ja
Priority to US11/195,745 priority patent/US20060067311A1/en
Publication of JP2006101401A publication Critical patent/JP2006101401A/ja
Application granted granted Critical
Publication of JP4373887B2 publication Critical patent/JP4373887B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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

Description

本発明は、高速LANにおけるパケット処理方法に係り、たとえばバッファに蓄えられるデータを高速に処理するパケット処理方法に関するものである。
複数のコンピュータを相互に接続するアイデアの実現は、1975年に米国ゼロックス社が「Ethernet」(登録商標)と呼ぶネットワークを創設したことに始まり、1985年にIEEEの国際標準IEEE 802.3が規格化された。IEEE 802.3規格は、ネットワークの物理層(Physical Layer)、データ・リンク層(Data Link Layer)、さらにMAC層(Medium Access Control Layer)の機能を充実させ、当該ネットワークに接続する全てのコンピュータに平等な通信機会を与える通信方式としてCSMA/CD方式を採用している。
Ethernetは、今日急速な普及を遂げ、通信速度10 Mbit/sから100 Mbit/sへと発展し、さらにギガビット・イーサネット(登録商標)(Gigabit Ethernet)が実現されようとしている。そこで、高速のデータ通信を処理するためにMAC層のプロトコル・ソフトウェアの処理負担は益々増大する傾向にある。とくに、ネットワークを介して受信した通信パケットをFIFO (First In First Out)バッファに一旦蓄積し、蓄えたデータを上位プロトコルに転送する処理は、データの喪失を防ぐためにも高速処理が要求される。
現在Ethernet上に乗るIPプロトコルの中で、TCPプロトコルは最も一般的であり、TCPプロトコルはコネクション型の通信ができるので信頼性が高い。
TCP通信コネクション確立までの流れを説明すると、まずホストAがホストBに対して”SYN”を送信する(1)。次いでホストBがホストAにそれに対する”ACK+SYN”を送信する(2)。ホストAがホストBに”SYN”に対する応答”ACK”を返したところ(3)でTCP通信リンクが確立され、ホスト間の通信が可能となる。このようにTCP通信では、データ送信に対しての応答”ACK”を確認することで信頼性のある通信が行うことができる。この”ACK”を待たずにデータ送信が出来る頻度を決めるパラメータがウィンドウサイズ(単位:セグメント)である。
ウィンドウサイズが”1”のときには、ホストAとホストBとの通信は、ホストAがホストBから送信される”ACK”を待った後、次のデータを送信する。ウィンドウサイズが”5”のときには、ホストAはホストBからの”ACK”を待つことなく5回まで連続してデータを送信することができる。このためウィンドウサイズはTCP通信のスループット(実効通信速度)に大きな影響を与える。そのため、他の処理や回線品質などとのトレード・オフを考慮した上でウインドウサイズをできるだけ大きな値に設定したほうがよい。
特開平10−155010号公報 特開2000−332817号公報 特開2002−524005号公報
しかしながら、たとえば動作速度が低速な処理プロセッサが搭載されて処理能力が低いLANシステムにおいては、100 Mbit/sの通信時に、FIFOバッファに蓄積されるEthernetフレームの流入速度に対し、処理速度が追いつかない場合がある。たとえば、ウィンドウサイズが”2”以上に設定されている場合に、ホストAから送信された2番目以降の送信データがホストBにて正常に処理されずロストする。そのため、再送処理が必要となって、結果としてスループットが低下してしまうという問題があった。
本発明はこのような従来技術の欠点を解消し、データ喪失を防いで高速転送を行うことのできるパケット処理方法を提供することを目的とする。
本発明は上述の課題を解決するために、受信パケットデータを蓄積する第1のメモリと、第1のメモリに蓄積された受信パケットデータをキャッシュする第2のメモリとを有する通信システムにて、MACプロトコル・ソフトウェアの制御下で、受信パケットデータを書込信号に応じて第1のメモリに保存した後、書込信号に応じてハードウェア割込みとソフトウェア割込みとを生成する際に、ハードウェア割込みに基づいて第1のメモリから前記第2のメモリに受信パケットデータを転送し、受信パケットデータの転送後にソフトウェア割込みに基づいて第2のメモリから上位プロトコル・ソフトウェアヘ受信パケットデータを転送することを特徴とする。
また、本発明は上述の課題を解決するために、受信パケットデータを蓄積する第1のメモリと、第1のメモリに蓄積された受信パケットデータをキャッシュする第2のメモリと、メインメモリとして機能する第3のメモリとを有する通信システムにて、MACプロトコル・ソフトウェアの制御下で、受信パケットデータを書込信号に応じて第1のメモリに保存した後、書込信号に応じてハードウェア割込みとソフトウェア割込みとを生成する際に、ハードウェア割込みに基づいて第1のメモリから第2のメモリに前記受信パケットデータを転送し、受信パケットデータが第2のメモリに存在している間は、転送後にソフトウェア割込みに基づいて第2のメモリから上位プロトコル・ソフトウェアヘ受信パケットデータを転送し、受信パケットデータが第2のメモリから第3のメモリに追い出されている場合は、転送後に前記ソフトウェア割込みに基づいて第2のメモリから第3のメモリに追い出された受信パケットデータを、第3のメモリから上位プロトコル・ソフトウェアヘ転送することを特徴とする。
本発明によれば、受信パケットデータを書込信号に応じて第1のメモリに保存した後、書込信号に応じてハードウェア割込みとソフトウェア割込みとを生成する際に、ハードウェア割込みに基づいて第1のメモリから第2のメモリに受信パケットデータを転送し、転送後にソフトウェア割込みに基づいて第2のメモリから上位プロトコル・ソフトウェアヘ受信パケットデータを転送する構成により、中間キューからデータを上位層に転送するので、その転送には時間的な猶予があり、リアルタイムOS下で動作する割込制御においても十分に受信データを処理することが可能である。また、高速割込み(FIQ)制御の割込ハンドラにより、受信パケットデータを高速に第2のメモリ内の中間キューに転送することで、データの喪失を防ぐことができる。
通常の割込信号(IRQ)と高速割込信号(FIQ)とを同時に生起するという本発明独自の二重割込方式により、CPUによる直接の高速転送を実現し、その結果TCP通信において、ウィンドウサイズを”2”以上の値に設定しても、スループットを低下させずに、100 Mbit/sの高速LANを安定的に高速処理することができる。
次に添付図面を参照して本発明によるパケット処理方法の実施例を詳細に説明する。実施例の説明に先立って、まず従来構成例を図4を参照して説明する。図4には、パーソナルコンピュータ等のLANシステムに搭載された通信システム400の構成例が示されている。
本構成例は、通信プロトコル・スタックの形を取っており、その中のハードウェア(H/W) 410の中に、通信システム400のハードウェア構成の一部が表示されている。通信プロトコル・スタックは、上位からアプリケーション層(API) 420、TCP/IP等の上位層430、データ・リンク層の一部であるMAC層440、物理層(PHY) 450から構成されており、このうちMAC層440と物理層450が通信パケットの処理に大きく関わっている。通信システム400のハードウェア410は、CPU 460を中心として、データバス462にキャシュメモリ466およびメインメモリ468が結合している。CPU 460は、たとえば「ARM7TDMI」のようなRISC形式のプロセッサ・コアが適用され、1次キャッシュおよび割り込み制御回路を内蔵している。
この従来例では割込制御機能を有するCPU 460は通常の割込信号(IRQ) 470を受け付ける入力端子を有する。IRQ 470は、通常はソフトウェア割込であって、オペレーティング・システム(OS)の管理下で機能する。
キャッシュメモリ466は、通常SRAM等の比較的高速なメモリで構成される。メインメモリ468は、通常DRAM等で構成される低速メモリである。FIFOバッファ474は、受信した通信パケット474から取り出したデータ・フレーム476を一時的に格納する。
次に、この従来例で通信パケットの処理方法を説明する。ハードウェア410により、有線LANを経由して特定の装置に宛てた通信パケット474からデータ・フレーム476が取り出され、当該データ・フレーム476はFIFOバッファ472に蓄積される(1)。通信パケットを構成するデータ・フレーム476は、IEEE 802.3仕様に従って64〜1500バイト弱のデータを保有する。データ・フレーム476のヘッダにはベンダIDや装置番号が書き込まれており、それらはハードウェア410にて識別され、そのパケットが当該システムに宛てたものでないものは、FIFOバッファ472に格納されずに破棄される。FIFOバッファ472は、たとえば2Kバイトの大きさを持ち、受信フレームを一時的に蓄える。
データ・フレーム476のFIFOバッファ472ヘの書込終了を受けて、MAC層440におけるプロトコル・ソフトウェアによって、CPU 460に対する割込みを行う割込信号(IRQ)の生成が行われる(2)。生起した割込信号(IRQ)はCPU 460に入力される。
IRQ 470は該当する割込ハンドラを起動し、FIFOバッファ472に蓄えられた受信データが読み出されて上位層430に転送される(3)。ただし本割込信号(IRQ)よりもプライオリティが高い割込処理が実行中の場合は、その割込処理が終了するまで待たされる。
以上の従来例において顕著な問題点の一例を、ホストA 500からホストB 510へのTCP送信フレームが1500 byteであり、ウィンドウサイズが”5”の場合について図5を参照して説明する。
ホストA 500はデータ”1”〜”5”までを通信速度に応じて順番に送信する。その後、ホストA 500はデータ”1”に対する”ACK”の受信を確認した後データ”6”を送信し、次にデータ”2”に対する”ACK”を受信した後データ”7”を送信し、以下同様に”ACK”を確認した時点で次のデータを送信することを繰り返す。これが通常期待される動作である。
CPU性能が比較的低い組み込みシステムなどにおいて10 Mbit/sの低速な通信ではこの動作ができていた。しかし100 Mbit/sの通信時にはFIFOバッファ472(図4)に蓄積されるEthernetフレームの受信速度に対し、上位層430の処理速度が追いつかない。このためウィンドウサイズを”2”以上に設定している場合、1個目のデータを受信した時点でFIFOバッファ472が受信フレーム長を満足する空き容量が無い状態で、2個目以降の受信データをFIFOバッファ472に格納することができず、受信データをロストする。そのため、ホストA 500では2番目の送信パケットに対する”ACK”を受信できずタイムアウトとなり、2番目のパケットの再送処理がホストA 500にて発生する。これが延々と繰り返されるため、スループットが低下してしまうという問題があった。この例はTCP送信データが1500バイトの場合の極端な場合であるが、たとえばTCP送信データがEthernetフレーム最小値の64byteの場合では通信の開始時点ではFIFOバッファに余裕があるため、しばらくは再送が発生しない。しかし受信速度の方が速いため、FIFOバッファ472がいずれは満杯になることは容易に考えられることであり、その時点で再送が発生するようになる。
このように図4に示した従来構成では、受信データのデータ・フレーム476の入力速度が、蓄積したデータ・フレームを上位層へ転送する(3)速度を超える場合に問題となっていた。
そこで本実施例は、キャッシュメモリと高速割り込み(FIQ: Fast Interrupt reQuest)を使い、CPUによるデータ転送を行う新たな方式を説明する。この方式では、FIFOバッファ116の書込み満了時に、通常の割込信号(IRQ)と高速割込信号(FIQ)とを同時に生起し、各々対応する割込ハンドラで受信データを蓄積し、当該バッファとして中間キューを用いるものとする。さらに、FIFOバッファを従来とは異なるダブルバッファ構成に変更する。
図1には本実施例による通信システムにおける高速タスク処理構成を説明するブロック図が示されている。図1の全体は、通信プロトコル・スタックの形をとっており、そのハードウェア(H/W) 100の中に、通信システム10のハードウェア構成の一部が表示されている。
本実施例における通信システム10は、CPU 110、キャッシュメモリ112、メインメモリ114およびFIFOバッファ116等を含むハードウェア(H/W) 100と、メインメモリ114に記憶されて存在するアプリケーション・プログラム、リアルタイムOS、通信ドライバおよび通信プロトコル・スタック等のソフトウェアを含む。通信プロトコル・スタックは、上位からアプリケーション層(API) 120、TCP/IP等の上位層122、データ・リンク層の一部であるMAC層124および物理層(PHY) 126から構成されている。このうちMAC層124と物理層126が通信パケットの処理に大きく関わっている。通信システム10のハードウェア(H/W) 100は、CPU 110を中心として、データバス130にキャッシュメモリ112およびメインメモリ114が結合している。CPU 110は、たとえば「ARM7TDMI」のようなRISC形式のプロセッサ・コアが適用され、1次キャッシュや割込制御回路を内蔵している。
通信システム10は、キャッシュメモリ112にてキャッシュ中に確保される中間キュー116を、通信プロトコル・スタックのMAC層124のプロトコル・ソフトウェアにより蓄積する。このように本実施例は、キャッシュメモリ112とメインメモリ114とを併用する通信システムの構成例であり、キャッシュメモリ112は、CPU 110の外部キャッシュとして機能し、処理速度の向上を図っている。
本実施例におけるCPU 460は、割込ハンドラを有する割込制御回路を含む。CPU 460は、通常の割込信号(IRQ)を受け付ける入力端子130と、高速割込信号(FIQ)を受け付ける入力端子132とを有し、それぞれに所定の優先度を持つ。FIQは、通常ハードウェア割り込みであり、その優先度はIRQよりも高く、かつ、高速である。IRQは、通常はソフトウェア割り込みであり、OSの管理下で機能するのでOSの管理外であるFIQに比べて低速である。なお従来の通信速度10 Mbit/s程度の低速Ethernetであれば、IRQのみの処理でもパケットをロストすることなく十分処理が間に合っている。
キャッシュメモリ112は、通常SRAM等の高速メモリにて構成され、本実施例ではキャッシュメモリ112内に中間キュー118が確保される。中間キュー118の制御はMAC層124のプロトコル・ソフトウェアが行う。この中間キュー118は、バッファリングに用いられる。メインメモリ114は、通常DRAM等で構成される低速メモリである。また、FIFOバッファ116は、受信した通信パケット140から取り出したデータ・フレーム142を一時的に格納するFIFOメモリである。本実施例におけるFIFOバッファ116は、2面のそれぞれ2Kバイトの格納領域を持ったFIFOメモリで構成され、物理層126から送られデータ・フレーム142を各面交互に格納するように構成されている。
以上の構成で、通信システム10における通信パケットの処理方法を説明する。ハードウェア100により、有線LANを経由して特定の装置に宛てた通信パケットからデータ・フレーム142が取り出され、当該データ・フレーム142はFIFOバッファ116の一方の面に蓄積される(1)。通信パケットを構成するデータ・フレーム142は、IEEE 802.3仕様にしたがって、たとえば100 Mbit/sイーサネットでは、64ないし1500バイト弱のデータを保有する。データ・フレームのヘッダ(header)に書き込まれたベンダIDや装置番号がハードウェア100により識別され、その受信パケットが本通信システム10に宛てたものでないものはFIFOバッファ116に格納されずに破棄される。本通信システム宛のデータ・フレームは、FIFOバッファ116のいずれかの面に交互に格納される。なお、取り込まれたデータが受信の順番を変更することはない。
データ・フレーム142がFIFOバッファ116に書込まれると、これを受けて、MAC層124のプロトコル・ソフトウェアによりCPU 110に対する割込信号の生成が行われる(2)。この割込信号は、本実施例では、通常の割込信号(IRQ)と高速割込信号(FIQ)とを同時に生起するという二重割り込み方式を採用している。その理由は以下に説明する受信データのバッファリングのためである。FIQはシステムで最高の優先度を持つ。このため直ちに該当する割込ハンドラが起動され、FIFOバッファ118に蓄えた受信データがキャッシュメモリ112内の中間キュー118にデータバス130を介して転送される(3)。この転送はCPU 110の制御により直接行われ、かつ、マルチ転送命令等も使用できるので、高速に処理することができる。
すなわちFIFOバッファ116にデータが書き込まれると、直ちに転送が行われてFIFOバッファ116が空になるので、高速、かつ、続々と到着するパケットに対して余裕をもって受信対応することができる。その後、中間キュー116に対するバッファリングが行われ、中間キュー116に置かれたデータは、上位層122へ転送される(4)。
ただし、ライトバック方式のキャッシュ・メモリアクセスを用いたシステムにおいては、当該キャッシュの容量を超えるアクセスがあった場合には、キャッシュ・コントローラの制御下で、一般的にはLFU(Least Frequency Used)アルゴリズムを使ってキャッシュメモリ112からメインメモリに掃き出す(5)。この場合、上位層122は、キャッシュメモリ112からデータを取得するのではなく、キャッシュメモリ112からメインメモリ114に掃き出されたデータに対してアクセスする必要がある。
そこで、MAC層124のプロトコル・ソフトウェアが中間キュー118からデータを取得しようとしたとき、そのデータがキャッシュメモリ112内に存在しない場合には、該当するデータをメインメモリ114から取得する(6)。
この処理はメインメモリ114を使用するものであるが、IRQによる割込ハンドラがMAC層124のプロトコル・ソフトウェアに行わせる処理であるため、時間的な余裕を持って行うことができる。
次に本実施例にて採用している中間キュー118のバッファリングについて説明する。図2を参照すると同図には、本実施例における中間キューのバッファリング動作が示されている。時間の流れに従ってどのような処理が行われるかを説明する。本実施例におけるFIQおよびIRQによる二重割込方式では、FIQおよびIRQが論理値Lをとることにより、それぞれの割込ハンドラが起動される。このときFIQはIRQよりも優先度が高いので、一方のFIQに対応した割込ハンドラのみが起動され、他方のIRQに対応した割込ハンドラはその起動が待たされる(時間T1)。本実施例では書込み単位は、FIFOバッファ116の容量と同じ大きさの2Kバイトである。このキャッシュメモリ112への転送処理は、CPU 110が直接データ転送の制御を行うので、高速であり短時間で終了する。当該終了に伴いFIQが解除されると、今度は待たされていたIRQに対応する割込ハンドラが起動する(時間T2)。IRQに対応する割込ハンドラは中間キュー118にあるすべてのデータを、上位層122を介してAPI 120のアプリケーション・プログラム等へ転送する(時間T3)。この転送処理は、同じくCPU 110を介して直接データ転送を行う処理方法であるが、リアルタイムOS等の制御下で行われる処理であるので、リンク時間等の消費で全体としての転送速度は低下している。しかし、この処理が相対的に低速で行われてもデータ喪失を起こすことはない。
次に当該システム10宛のパケットが連続して受信され、IRQによる転送処理が終了していない状態にて、さらに新たなFIQによる転送要求が発生する多重割込みが発生した場合における中間キュー118のバッファリング動作について説明する。
図3には、中間キュー118の連続バッファリング状態が示されている。同図において、第1回目の受信割込が生じ(時間T1)、その後IRQによる割込ハンドラがアプリケーション・プログラム等へ転送し始める(時間T2)。その後第2回目の受信割込が生じると(時間T3)、FIQの優先度が高いのでIRQによる割込ハンドラの処理は途中で待たされる。すなわち、第1回目の受信データの処理が終了しない状態で、さらに未処理のデータが山積みされる。その後第2回目の受信割込によるデータ転送が終了し、再びIRQによる割込ハンドラのデータ処理が続行される(時間T4)。
この処理は中間キュー118が空になるまで行われ、第1回目の受信割込で取り扱ったデータの処理終了では止まらない(時間T5)。第2回目の受信割込によるデータ転送が終了した後は受信割込を待つ状態に移行する(時間T6)。
中間キュー118には複数のパケットに対応するデータが積み上げられるので、中間キュー118の容量はある程度の大きさが必要である。しかし、いたずらに大きな容量を確保する必要はなく、TCP通信において決定されたウィンドウサイズに対して再送が発生しない程度の容量を確保しておけばよい。
以上、多重割込処理について説明した。なお、IRQによる割込処理が行われているときに、同じIRQであるが当該割込処理よりも優先度の高い他の割込処理が要求された場合は、FIQによる割込処理を行っておけば、他の処理により当該IRQによる割込処理が遅れてもデータ喪失は起こらず、優先度の高い他の処理を先に実行しても問題にはならない。
また、多重割込により処理が待たされている複数のIRQの取り扱いについては、中間キュー118のデータが空である場合、直ちに当該処理は終了してしまうので、累積したIRQの処理も素早く消化されることになるから、問題にはならない。
以上、説明したように上記実施例ではキャッシュメモリを有するコンピュータにおいて、通常の割込信号(IRQ)と高速割込信号(FIQ)とを同時に生起するという独自の二重割込方式を採用したことによって、100 Mbit/s以上の高速LANを安定的に高速処理することができた。なお、上記実施例では、有線高速LANの機能を装備するコンピュータについて説明したが、本発明は有線LANに限らず、広く有線もしくは無線ネットワークで応用可能であり、その装置もパーソナルコンピュータ(PC)に限らず、たとえば携帯電話等の携帯機器などに広く適用することができる。
本発明が適用された実施例の通信システムにおける高速タスク処理構成例を示すブロック図である。 図1に示す実施例における中間キューのバッファリング動作を示す図である。 図1に示す実施例における中間キューの連続バッファリング動作を示す図である。 通信システムの従来構成例におけるタスク処理構成を示すブロック図である。 TCPデータ通信の一例を示すシーケンス図である。 TCPデータ通信時にデータがロストする状態を示すシーケンス図である。
符号の説明
10 通信システム
100 ハードウェア(H/W)
110 CPU
112 キャッシュメモリ
114 メインメモリ
116 FIFOバッファ
118 中間キュー
122 上位層
124 MAC層
126 物理(PHY)層

Claims (3)

  1. 受信パケットデータを蓄積する第1のメモリと、
    該第1のメモリに蓄積された受信パケットデータをキャッシュする第2のメモリとを有する通信システムにて、MACプロトコル・ソフトウェアの制御下で、受信パケットデータを書込信号に応じて前記第1のメモリに保存した後、前記書込信号に応じてハードウェア割込みとソフトウェア割込みとを生成する際に
    記ハードウェア割込みに基づいて前記第1のメモリから前記第2のメモリに前記受信パケットデータを転送し
    該受信パケットデータの転送後に前記ソフトウェア割込みに基づいて前記第2のメモリから上位プロトコル・ソフトウェアヘ該受信パケットデータを転送し、
    前記書込信号によりハードウェア割込みとソフトウェア割込みとの双方が複数回生起する場合は、その都度実行中のソフトウェア割込みに基づく転送を中断し、前記ハードウェア割込みに基づく転送を行い、該転送が終了した後に、前記中断していたソフトウェア割込みに基づく転送を再開することを特徴とするパケット処理方法。
  2. 受信パケットデータを蓄積する第1のメモリと、
    該第1のメモリに蓄積された受信パケットデータをキャッシュする第2のメモリと、メインメモリとして機能する第3のメモリとを有する通信システムにて、
    MACプロトコル・ソフトウェアの制御下で、受信パケットデータを書込信号に応じて前記第1のメモリに保存した後、前記書込信号に応じてハードウェア割込みとソフトウェア割込みとを生成する際に、
    前記ハードウェア割込みに基づいて前記第1のメモリから前記第2のメモリに前記受信パケットデータを転送し、
    該受信パケットデータが前記第2のメモリに存在している間は、該転送後に前記ソフトウェア割込みに基づいて前記第2のメモリから上位プロトコル・ソフトウェアヘ該受信パケットデータを転送し、
    前記受信パケットデータが前記第2のメモリから前記第3のメモリに追い出されている場合は、該転送後に前記ソフトウェア割込みに基づいて前記第2のメモリから前記第3のメモリに追い出された受信パケットデータを該第3のメモリから上位プロトコル・ソフトウェアヘ転送することを特徴とするパケット処理方法。
  3. 請求項に記載のパケット処理方法において、前記第2のメモリは、ライトバック方式のキャッシュメモリであることを特徴とするパケット処理方法。
JP2004287485A 2004-09-30 2004-09-30 パケット処理方法 Expired - Fee Related JP4373887B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004287485A JP4373887B2 (ja) 2004-09-30 2004-09-30 パケット処理方法
US11/195,745 US20060067311A1 (en) 2004-09-30 2005-08-03 Method of processing packet data at a high speed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004287485A JP4373887B2 (ja) 2004-09-30 2004-09-30 パケット処理方法

Publications (2)

Publication Number Publication Date
JP2006101401A JP2006101401A (ja) 2006-04-13
JP4373887B2 true JP4373887B2 (ja) 2009-11-25

Family

ID=36098984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004287485A Expired - Fee Related JP4373887B2 (ja) 2004-09-30 2004-09-30 パケット処理方法

Country Status (2)

Country Link
US (1) US20060067311A1 (ja)
JP (1) JP4373887B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179084A (ja) * 2005-12-26 2007-07-12 Fujitsu Ltd ディスク装置およびディスク書込データ転送方法
WO2011113378A2 (zh) * 2011-04-26 2011-09-22 华为技术有限公司 一种用户面缓冲器内存的恢复方法及装置
WO2013072773A2 (en) * 2011-11-18 2013-05-23 Marvell World Trade Ltd. Data path acceleration using hw virtualization
JP6833644B2 (ja) 2017-09-13 2021-02-24 株式会社東芝 転送装置、転送方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0174711B1 (ko) * 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
US5881296A (en) * 1996-10-02 1999-03-09 Intel Corporation Method for improved interrupt processing in a computer system
US6760799B1 (en) * 1999-09-30 2004-07-06 Intel Corporation Reduced networking interrupts
US6625149B1 (en) * 1999-11-29 2003-09-23 Lucent Technologies Inc. Signaled receiver processing methods and apparatus for improved protocol processing
US20010049726A1 (en) * 2000-06-02 2001-12-06 Guillaume Comeau Data path engine
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing

Also Published As

Publication number Publication date
JP2006101401A (ja) 2006-04-13
US20060067311A1 (en) 2006-03-30

Similar Documents

Publication Publication Date Title
US11176068B2 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
JP4521398B2 (ja) 前途のリソースの読み取りパスを用いた、読み取り/書き込みコマンドバッファプールリソースの管理
JP5902834B2 (ja) 暗示的なメモリの登録のための明示的なフロー制御
JP4886685B2 (ja) ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法
US7493427B2 (en) Apparatus and method for supporting received data processing in an offload of network protocol processing
US20090222564A1 (en) Apparatus and Method for Supporting Connection Establishment in an Offload of Network Protocol Processing
US9667729B1 (en) TCP offload send optimization
US9071525B2 (en) Data receiving apparatus, data receiving method, and program storage medium
US6691178B1 (en) Fencepost descriptor caching mechanism and method therefor
JPH10207822A (ja) 高速i/oコントローラにおける割り込み処理方法
JP3439320B2 (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
JP4373887B2 (ja) パケット処理方法
JPWO2008013209A1 (ja) Cpu接続回路、データ処理装置、演算装置及びこれらを用いた携帯通信端末並びにデータ転送方法
US20090073490A1 (en) Communication information processing system
WO2007074343A2 (en) Processing received data
JP4502796B2 (ja) ストリームパケット受信装置
Chung et al. Design and implementation of the high speed TCP/IP Offload Engine
JP2005109765A (ja) データ受信装置
US20050132099A1 (en) Network system, and device, method and program for controlling host interface
CN114900471B (zh) 一种高性能无阻塞数据传输方法
CN115208830B (zh) 一种高性能无阻塞数据发送方法及装置
JPH11149455A (ja) メモリディスク共有方法及びその実施装置
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
CN117873920A (zh) 一种rdma的内存翻译表应用方法及系统
JPH11205332A (ja) データ転送装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070607

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081126

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090706

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090904

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees