JP2008011015A - パケット処理方法およびパケット処理装置 - Google Patents

パケット処理方法およびパケット処理装置 Download PDF

Info

Publication number
JP2008011015A
JP2008011015A JP2006177731A JP2006177731A JP2008011015A JP 2008011015 A JP2008011015 A JP 2008011015A JP 2006177731 A JP2006177731 A JP 2006177731A JP 2006177731 A JP2006177731 A JP 2006177731A JP 2008011015 A JP2008011015 A JP 2008011015A
Authority
JP
Japan
Prior art keywords
packet
memory
unit
data block
combined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006177731A
Other languages
English (en)
Other versions
JP4468332B2 (ja
Inventor
Kenji Shimizu
健司 清水
Tetsuo Kawano
哲生 川野
Mitsuru Maruyama
充 丸山
Takeshi Ogura
毅 小倉
Hiroyuki Kimiyama
博之 君山
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006177731A priority Critical patent/JP4468332B2/ja
Publication of JP2008011015A publication Critical patent/JP2008011015A/ja
Application granted granted Critical
Publication of JP4468332B2 publication Critical patent/JP4468332B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】緊急の処理を必要とするパケットが高頻度に到着した場合でも、受信性能の低下を引き起こすことなく、安定した受信性能を発揮することが可能で、かつ、緊急パケット以外のパケットが到着した場合は、まとめDMA転送による高い受信性能を実現する。
【解決手段】通信回線上のパケットを受け取るパケット処理装置において、通信回線から受信した複数のパケットを1つのデータブロックに結合するパケット結合部と、各々メモリ容量が異なる複数のパケットメモリと、前記結合中のデータブロックの大きさがある閾値を超えた場合、あるいは、前記結合中のデータブロックに緊急パケットが含まれる場合に、各々メモリ容量が異なる前記複数のパケットメモリの中から前記結合中のデータブロックの大きさに最も適したパケットメモリを一つ選択して、前記パケット結合部から前記選択したパケットメモリに前記結合中のデータブロックを転送する手段とを有する。
【選択図】図3

Description

本発明は、パケット処理方法およびパケット処理装置に係り、特に、通信システムの中で、通信データのプロトコル処理や、経路情報に基づきパケットデータの転送処理を行なうパケット処理装置に関する。
図1は、従来のパケット処理装置の受信処理を説明するための図である。同図において、11は回線対応部、12はパケットメモリ、13は受信処理部、14はプロトコル処理部である。
通信回線からのパケット到着を契機として、回線対応部11からDMA(Direct Memory Access)を用いたデータ転送を行い、到着したパケットをパケットメモリ12に格納する。同時に、回線対応部11は、パケットを受信したことをパケット処理装置のプロセッサに通知する為に、ハードウェア割り込みを発生し、受信処理部13の起動要求を行う。
その後、起動した受信処理部13は、パケットメモリ12に転送された受信パケットをプロトコル処理部14へ受渡す。
同時に、プロトコル処理部14へ受け渡したパケットメモリ分を補充するために、パケット処理装置が持つメモリから新たなパケットメモリ12を確保する。
受信パケットが受け渡されたプロトコル処理部14は、必要なプロトコル処理が終了するとパケットメモリ12の領域を開放する。
この様な一般的な受信処理では、特に、小さいパケットが高頻度に到着した場合、ハードウェアの割り込みの数が増大するために、パケット処理装置のプロセッサが高負荷となり、受信性能が低下することが知られている。また、DMA転送が起動される回数が増加するために、DMA転送制御に伴うオーバーヘッドの為に受信性能が低下することが知られている。(下記、非特許文献1参照)
このような問題に対処するために、回線対応部11において設定された閾値に達するまで、複数の小さいパケットを一つの大きなデータブロックにまとめ、閾値に到達することを契機として、一括してパケットメモリ12へデータブロックをDMA転送する技術が提案されている。(下記、非特許文献2、非特許文献3参照)
この技術を用いた場合、一つの大きなデータブロックにまとめている最中でも、緊急に受信処理が必要なパケットが到着した場合は、閾値に達していなくても強制的にパケットメモリ12へDMA転送し、受信処理を行う必要がある。
このような、複数の小さなパケットを一つのデータブロックへまとめて転送するDMA転送方式(以降、まとめDMA転送)と、緊急パケットの受信処理(以降、緊急パケット受信処理)を組み合わせることで、小さなパケットが到着した場合でも、ハードウェア割り込みの回数が減少すると共に、DMA転送のオーバーヘッドが削減されるため、高速な受信処理を行うことができる。
なお、本願発明に関連する先行技術文献としては以下のものがある。
K.Shimizu, T.Ogura, T.Kawano, H.Kimiyama,and M.Maruyama, "OC-48c High-speed Network PCI Card:Implementation and Evaluation,"IEICE Trans.Inf.and Syst.,vol.E86-D,no.11,pp.2380-2389,Nov.2003. L.Grossman,"Large Receive Offload implementation in Neterion 10GbE Ethernet driver," Proc.The Linux Symposium,Ottawa,Canada, vol.1,pp.195-200, July 20nd-23th,2005. Y.Ajima, S.Kobayashi, and T.Niinomi,"Implementation and Evaluation of Zero Copy Socket using NIC memory," IEICE Technical Report, vol.105,no.225,pp.37-42,2005.
従来のまとめDMA転送と緊急パケット受信処理が導入されたパケット処理装置では、パケットの受信時の動作は、図2にしめす構成で実現されるのが一般的である。
図2に示すパケット処理装置では、回線対応部11において受信されたパケットはパケット結合用の受信バッファ15に転送される。受信バッファ15では、受信バッファ15中に以前に存在していたパケットと結合され、一つのデータブロックとして保存される。
同時に、パケット結合部16には、緊急パケット判別部19と結合閾値制御部18により、受信バッファ15で結合されているデータブロックを、パケットメモリ12へ転送するタイミングが与えられる。
つまり、緊急パケット判別部19でパケットに緊急フラグが与えられていることが認定されるか、もしくは、受信バッファ15中のデータブロックの大きさが、結合閾値制御部18に設定された閾値を超えることを契機として、データブロックのパケットメモリ12への転送要求が通知される。
結合パケット転送部17は、複数のパケットが結合されたデータブロックを一度のDMA転送により、パケットメモリ12に転送し、受信処理部13の起動要求を行なう。受信処理部13は、起動要求を検知すると、パケットメモリ内のデータブロックを、プロトコル処理部14へと渡す。
図2に示す構成によって、受信処理の起動要求が、複数のパケットが結合したデータブロックが転送される毎に行われるようになるため、受信処理部13の起動回数が減少し、パケット処理装置のプロセッサ負荷が軽減される。また、DMA転送制御の回数も減少するためにオーバーヘッドの割合が低くなり、高い受信性能を発揮することが可能となる。
ただし、図2に示す構成においても、緊急に処理する必要があるパケットが到着した場合には、データブロックの結合をただちに停止して、パケットメモリ12への転送を行なう必要がある。
図2に示す構成において、複数のパケットが結合されたデータブロックの転送先として指定するパケットメモリ12は、受信パケットが到着する以前に前もって準備する必要がある。そのため、予め用意するパケットメモリ12の大きさ(または、メモリ容量)は、考えうる最大の大きさ、つまり、結合閾値制御部18で指定した閾値以上の大きさである必要がある。
この様な「まとめDMA転送」と「緊急パケット受信処理」が導入されたパケット処理装置では、以下のような問題が存在するために、導入されていないパケット処理装置と比較して、かえって受信性能が低下することが想定される。
(1)緊急に処理することが必要なパケットが頻繁に到着し、パケットの結合が十分におこなわれない状況でDMA転送が閲始される場合でも、パケットメモリ12のサイズは考えうる最大の大きさで準備する必要がある。つまり、大きなパケットメモリ12に対して、小さな緊急パケットを格納することが頻繁に行われ、パケット処理装置のメモリ使用効率の低下が引き起こされる。その結果メモリ不足となり、受信性能が低下する。
(2)考えうる最大の大きさでパケットメモリ12を準備するために、パケットメモリ12を新たに準備する処理が高負荷となる。つまり、パケット処理装置に用いられるオペレーティングシステム上では、通常メモリは比較的小さい単位で管理されており(2のべき乗システムや、スラブキャッシュを参照)、大きなメモリを確保する場合は、未使用で、かつ複数の小さいメモリを検索して一度に確保する必要がある。
また、パケット処理装置が持つ回線対応部11がスキャターギャザーDMA機構に対応していない場合は、複数の領域に分割されたメモリを一つのパケットメモリ12として使用することができず、大きな連続したメモリ領域を確保することが必要となり、さらにパケットメモリ12を準備することが困難となる。その結果、パケットメモリ12の準備が間に合わなくなり受信性能が低下する。
前述したような問題点をもつパケット処理装置に対して、例えば、緊急パケットを装ったパケットを多量に送りつけてくるネットワーク攻撃(DoS:Denial of Service)が行われた場合は、まとめDMA転送や緊急パケット受信処理を備えていないパケット処理装置と比較して、受信性能の悪化がより顕著になる。
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、まとめDMA転送や緊急パケット受信処理を備えたパケット処理装置において、緊急の処理を必要とするパケットが高頻度に到着した場合でも、受信性能の低下を引き起こすことなく、安定した受信性能を発揮することが可能であり、かつ、緊急パケット以外のパケットが到着した場合は、まとめDMA転送の効果による高い受信性能を実現することが可能となる技術を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
本願発明は、通信回線上のパケットを受け取るパケット処理装置において、通信回線から受信した複数のパケットを1つのデータブロックに結合するパケット結合部と、各々メモリ容量が異なる複数のパケットメモリと、前記結合中のデータブロックの大きさがある閾値を超えた場合、あるいは、前記結合中のデータブロックに緊急パケットが含まれる場合に、各々メモリ容量が異なる前記複数のパケットメモリの中から前記結合中のデータブロックの大きさに最も適したパケットメモリを一つ選択して、前記パケット結合部から前記選択したパケットメモリに前記結合中のデータブロックを転送する手段とを有することを特徴とする。
より具体的には、通信回線上のデータを受けとる回線対応部と、回線対応部から受信した複数のパケットを一つのデータブロックに結合するパケット結合部と、前記データブロックへの結合を終了する契機を与える結合閾値制御部および緊急パケット判別部と、結合中のデータブロックを保持する受信バッファと、受信バッファの使用量を観測する受信バッファ使用量観測部と、各々メモリ容量が異なるパケットメモリと、受信バッファ使用量観測部に保持された値を元に、各々メモリ容量が異なる前記パケットメモリから一つのパケットメモリを選択するパケットメモリセレクタと、パケットメモリセレクタにより選択されたパケットメモリに対して、パケット結合部で結合されたデータブロックを転送する結合パケット転送部と、受信したパケットメモリのプロトコル処理を行うプロトコル処理部と、プロトコル処理部へパケットメモリを転送し、同時に、転送したパケットメモリ分のメモリ領域を新たに補充する機能を持つ受信処理部とから構成される。
本願発明のパケット処理装置は、第1の受信処理として、以下の処理を行う。
(1)パケット処理装置は、受信に先立って、各々メモリ容量が異なるパケットメモリを準備しておく。パケット処理装置が行うプロトコル処理は、各々メモリ容量が異なるパケットメモリのいずれにおいても行うことが可能である。
(2)各々メモリ容量が異なるパケットメモリの先頭アドレスやステータス情報を、回線対応部から受信したパケットをパケットメモリへ転送する役割を持つ結合パケット転送部に登録しておく。結合パケット転送部は、登録された各々メモリ容量が異なるパケットメモリの情報から、どのような大きさのパケットメモリが用意されているかを取得することができる。
(3)パケット結合部では、回線対応部から受信した複数のパケットを、受信バッファにおいて一つのデータブロックに結合する。
(4)受信バッファ使用量観測部は、受信バッファ中にどれくらいの量のデータが保持されているかを示す値を保持する。
(5)結合閾値制御部、もしくは緊急パケット判別部によりパケット結合部における結合処理を停止させる契機が与えられると、パケットメモリセレクタは、受信バッファ使用量観測部に保持された値と、あらかじめ用意されている各々メモリ容量が異なるパケットメモリのメモリ容量を比較し、結合されたデータブロックよりも大きく、かつ最小のメモリ容量を持つパケットメモリを選択する。
(6)結合パケット転送部では、パケットメモリセレクタにより選択されたパケットメモリに対して、受信バッファで結合されたデータブロックを転送する。
(7)受信処理部は、転送されたデータブロックをプロトコル処理部へと渡す。
(8)受信処理部は、転送されたデータブロック分のパケットメモリをパケット処理装置のもつメモリから補充する。
また、本願発明のパケット処理装置は、第2の受信処理として、以下の処理を行う。
(1)パケット処理装置が受信に先立って、各々メモリ容量が異なるパケットメモリを準備しておく。
(2)各々メモリ容量が異なるパケットメモリの先頭アドレスやステータス情報を、回線対応部から受信したパケットをパケットメモリへ転送する役割を持つ結合パケット転送部に登録しておく。
(3)パケット結合部では、回線対応部から受信した複数のパケットを、受信バッファにおいて一つのデータブロックに結合する。
(4)受信バッファ使用量観測部は、受信バッファ中にどれくらいの量のデータが保持されているかを示す値を保持する。
前述の(1)〜(4)の処理は、前述の第1の受信処理と同じである。
(5)パケット処理装置にパケットが到着すると、タイマーを起動し、パケット到着からタイマーがタイムアウトするまでの全てのパケットをひとつのデータブロックとして結合する。
(6)(A)タイマーがタイムアウトする、(B)結合閾値制御部に設定した閾値を越える、あるいは、(C)緊急パケット判別部により緊急パケットと認定されるのA、B、Cのいずれかの条件が満たされると、パケット結合部における結合処理を停止させる契機が与えられる。
以降(7)〜(10)の処理は、前述の第1の受信処理の(5)〜(8)の処理と同じである。
(7)パケットメモリセレクタは、受信バッファ使用量観測部に保持された値と、あらかじめ用意されている各々メモリ容量が異なるパケットメモリの大きさを比較し、結合されたデータブロックよりも大きく、かつ最小のメモリ容量を持つパケットメモリを選択する。
(8)結合パケット転送部では、パケットメモリセレクタにより選択されたパケットメモリに対して、受信バッファで結合されたデータブロックを転送する。
(9)受信処理部は、転送されたデータブロックをプロトコル処理部へと渡す。
(10)受信処理部は、転送されたデータブロック分のパケットメモリをパケット処理装置の持つメモリから補充する。
また、本願発明のパケット処理装置は、第3の受信処理として、以下の処理を行う。
(1)パケット処理装置が受信に先立って、各々メモリ容量が異なるパケットメモリを準備しておく。
(2)各々メモリ容量が異なるパケットメモリの先頭アドレスやステータス情報を、回線対応部から受信したパケットをパケットメモリへ転送する役割を持つ結合パケット転送部に登録しておく。
前述の(1)、(2)の処理は、前述の第1の受信処理の(1)、(2)の処理と同じである。
(3)パケット処理装置にパケットが到着すると、複数のパケットフラグ判別部に対してパケットが入力され、マルチレイヤ分別部のどのレイヤにパケットが属するかが判別される。
(4)マルチレイヤ分別部は、受信バッファの中で各レイヤー毎に分類して受信パケットを保存する。
(5)パケット結合部では、マルチレイヤ分別部で分別された各レイヤー毎に、複数のパケットをひとつのデータブロックへ結合する。結合中のデータブロックは、前述の第1、第2の受信処理と同様、受信バッファ中で行われる。
(6)受信バッファ使用量観測部は、受信バッファ中で、各レイヤー毎にどれくらいの量のデータが保持されているかを示す値を保持する。
(7)各レイヤー毎に、結合閾値制御部に設定した閾値を越える、あるいは緊急パケット判別部により緊急パケットと認定されるのいずれかの条件が満たされるとパケット結合部における結合処理を停止させる契機が与えられる。
(8)パケットメモリセレクタは、各レイヤ毎の受信バッファ使用量観測部に保持された値と、あらかじめ用意されている各々メモリ容量が異なるパケットメモリの大きさを比較し、結合されたデータブロックよりも大きく、かつ最小のメモリ容量を持つパケットメモリを選択する。
以降(9)〜(11)の処理は、前述の第1の受信処理の(6)〜(8)の処理と同じである。
(9)結合パケット転送部では、前記パケットメモリセレクタにより選択されたパケットメモリに対して、受信バッファで結合されたデータブロックを転送する。
(10)受信処理部は、転送されたデータブロックをプロトコル処理部へと渡す。
(11)受信処理部は、転送されたデータブロック分のパケットメモリをパケット処理装置のもつメモリから補充する。
なお、データブロックの大きさの閾値、タイマーでカウントする一定の時間、あるいは、パケットフラグ判別部で検出する条件は、ユーザの要求に応じて変更可能である。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明の、まとめDMA転送や緊急パケット受信処理を備えたパケット処理装置によれば、緊急の処理を必要とするパケットが高頻度に到着した場合でも、受信性能の低下を引き起こすことなく、安定した受信性能を発揮することが可能であり、かつ、緊急パケット以外のパケットが到着した場合は、まとめDMA転送の効果による高い受信性能を実現することが可能となる。
以下、図面を参照して本発明の実施例を詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
図3は、本発明の実施例のパケット処理装置の受信処理を説明するための図である。
本実施例では、各々メモリ容量が異なるパケットメモリの容量が、それぞれ、256バイト、1024バイト、4096バイトの3種類である場合の構成を示す。ただし、本発明の効果はこれらの大きさ、及び大きさの種類の数にのみ限定されるものではない。
図3において、11は回線対応部、13は転送されたデータブロックをプロトコル処理部へ渡したり、パケットメモリ(20〜21)を補充する処理を行う受信処理部、14はプロトコル処理部、15は結合中のデータブロックを保持する受信バッファ、16はパケットの結合処理を行うパケット結合部、17は受信バッファ中のデータブロックをパケットメモリ制御データを元にパケットメモリへと転送する結合パケット転送部、18はパケットの結合終了の契機を与える結合閾値制御部、19は緊急パケットを判別してパケット結合終了の契機を与える緊急パケット判別部、20〜22は各々メモリ容量が異なるパケットメモリ、23〜25は各々の大きさのパケットメモリ(20〜21)のアドレスを格納するパケットメモリ制御データ、26は受信バッファ使用量観測部27に保持された値を元に、複数のパケットメモリ制御データから一つを選択するパケットメモリ制御データセレクタ、27は受信バッファ15の使用量を保持する受信バッファ使用量観測部、28はパケットメモリ(20〜21)のメモリ容量が列挙されているパケットサイズテーブルである。
なお、受信処理部13、プロトコル処理部14は、汎用パソコンやワークステーション上で動作するプログラムや、通信上でプログラムと協調して動作するFPGA等のハードウェアで構成可能である。
パケットメモリ(20〜22)は、汎用パソコンや、通信機器、通信ボード上のメモリとして構成可能である。
パケットメモリ制御データ(23〜25)は、通信機器、通信ボード上のDMAコントローラやFPGAが持つ汎用レジスタとして構成可能である。
結合閾値制御部18、緊急パケット判別部19、およびパケットメモリ制御データセレクタ26は、通信機器、通信ボード上のFPGA等の論理回路で構成された比較器や、マイクロコード等のソフトウェアプログラムにより構成可能である。
パケットサイズテーブル28は、通信機器、通信ボード上のレジスタやメモリなどの記憶領域として構成可能である。
結合パケット転送部17は、通信機器、通信ボード上のDMAコントローラ等のメモリ間のデータ転送を制御する論理回路、及びプログラムにより構成可能である。
受信バッファ15は、通信機器、通信ボード上のFPGA等が持つ記憶領域や、FIFO等の記憶回路により構成可能である。
受信バッファ使用量観測部27は、通信機器、通信ボード上のFPGA等が持つレジスタや、FIFO等の記憶回路が持つ、レジスタの値として構成可能である。
パケット結合部16は、通信機器、通信ボード上のFPGA等の論理回路や、マイクロコード等のソフトウェアプログラムにより構成可能である。
次に、前述の構成を使用したパケット処理装置の動作を図4を用いて説明する。
図4は、パケット処理装置A29からパケット処理装置B30に対して、回線31と回線32をそれぞれ送信用回線、受信用回線として使用し、パケットを転送しようとしている。
2つのパケット処理装置には、それぞれユニークなアドレスが付与される。使用するアドレスは、IP(Internet Protocol)準拠の32bitのアドレス体系を持つものとし、パケット処理装置A29が、10.1.2.3であるとする。またデータ転送先のパケット処理装置B30は、アドレス10.1.2.4を持っている。
この時、パケット処理装置A29が送出したパケットは、パケット処理装置B30において受信される。パケット処理装置B30は、まとめDMA転送により、図5で示すように複数のパケットを一つのデータブロックとして結合して、パケットメモリに転送し、その後必要なプロトコル処理を行う。
[具体的な実装例と、論理構成図との対応]
まず、本実施例を、汎用パソコンの持つPCI拡張バスに搭載することで動作する通信カード(Network Interface Card;以下、NICという。)と、NICを駆動するために、汎用パソコン上で動作しているオペレーティングシステムのネットワークデバイスドライバに実装した具体例を図6に示す。
図6を用いて、NICとネットワークデバイスドライバの動作を解説するとともに、その動作と図3の対応を明らかにする。図中の番号に従い、ネットワークデバイスドライバおよびNICは以下の用に動作する。
(1)オペレーティングシステムのカーネルは、通信カードを受信可能な状態に設定する前に、受信したパケットを格納する為のバッファ領域を確保する。ここでは、256バイト、1024バイト、4096バイトの3種類の大きさのバッファ(57〜59)を確保する。
(2)確保したバッファの受信状態や物理メモリアドレスを、バッファディスクリプタ(Buffer Descriptor for Reception;以下、RxBDという。)(60〜62)と呼ばれるデータ構造体に記録する。RxBD(60〜62)は、一つのバッファに対して一つが対応して用いられ、複数のRxBD(60〜62)はリング状(またはチェイン状)のデータ構造で管理されている。また、各サイズのバッファを管理しているRxBD(60〜62)は、それぞれ別々のリングにより管理されている。
つまり、図中では、256バイト用のリング、1024バイト用のリング、4096バイト用のリングの3種類のリングが存在する。RxBD(60〜62)は、NICに対してDMA転送先のアドレスを指定する時に使用される。また、RxBD内の転送済みフラグを確認することによって、どのパケットバッファに既にDMA転送されたデータブロックが格納されているかを確認することができる。
(3)各RxBDリングに属するRxBD(60〜62)を、通信カード上のDMA転送開始アドレスレジスタ56に登録する。レジスタは、RxBDのリング毎に一つずつ用意されている。
(4)ネットワークデバイスドライバは、通信カード上のDMAコントローラ53における、まとめDMA転送を制御するために、受信したパケットがどれくらいのサイズまで結合されたらDMA転送を開始するかを表す閾値をDMAコントローラ内のレジスタに設定する。
(5)この時点で、ネットワークデバイスドライバは、通信ボードを受信可能状態にする為の操作を行う。例えば、DMA転送機能をイネーブル状態にする。
(6)通信回線上からパケット50が到着する。
(7)通信カード上のMACフレーマ51が、到着したパケットを受信FIFOメモリ52へ保存する。また、同時に、DMAコントローラ53に対して、パケットが受信FIFOメモリ51に保存されたことを通知する。
(8)受信FIFOメモリ52は、メモリ内のどれくらいの容量が、到着したパケットによって占められているかを、RxFIFOメモリ使用量レジスタ54に保持する。
(9)DMAコントローラ53は、受信FIFOメモリ52に最後に蓄えられたパケットのヘッダを確認し、緊急パケットであるか否かを判別する。ここで、緊急パケットとは、TCP/IPを用いた通信で使用される応答確認要求(ACKパケット)であるとする。
(10)ACKパケットでない場合、DMAコントローラ53は、RxFIFOメモリ使用量レジスタ54を検査して、ステップ4で設定した閾値よりも大きいか否かを判別する。
閾値よりも小さいときはステップ6に戻り、再びパケットを受信するのを待つ。
(11)ACKパケットであった場合、バッファディスクリプタ選択回路55は、RxFIFOメモリ使用量レジスタ54に保持された値と、ステップ3でDMA転送開始アドレスレジスタ56に登録されたRxBD(57〜59)から得られる各パケットバッファのメモリ容量を比較し、RxFIFOメモリ使用量レジスタ54の値よりも大きく、かつ最小のメモリ容量を持つパケットバッファに対応するDMA転送開始アドレスを取得する。
(12)DMAコントローラ53は、バッファディスクリプタ選択回路55で選択されたパケットバッファのアドレスに基づいて、受信FIFOメモリ52に蓄えられた全てのパケットを、ひとまとめのデータブロックとして一括して、パケットバッファ(57〜59)にDMA転送を行う。
(13)それと共に、データブロックの転送先となるパケットバッファ(57〜59)を管理するRxBD(60〜62)に、転送済みフラグを立てる。
(14)DMA転送が完了したことを示すハードウェア割り込みを発生する。
(15)デバイスドライバは、ハードウェア割り込みを検知すると、RxBD(60〜62)の転送済みフラグを調査して、転送済みフラグの立ったパケットバッファ内のパケットを、OSの受信パケットキュー63に挿入し、必要なプロトコル処理を行わせる。
(16)OSに渡したパケットバッファ分だけ、新たにメモリから受信用のバッファ領域を確保し、その物理メモリアドレスをRxBD(60〜62)に登録する。
(17)ステップ6に戻る。
プロトコル処理された受信パケットのバッファ領域は、アプリケーションのバッファ領域へコピーされるか、必要な処理が終了すると解放される。
前述の動作を、模式的に表したのが図7である。
通信回線、通信カード、デバイスドライバ、オペレーティングシステムで行われる処理を示す。それぞれの直線において、上部から下部にしたがって時間が進んでいる様子を表している。
これにより、緊急パケットが届いて、受信FIFOメモリ52内に、十分大きなデータブロックが溜まっていなくても、大きなパケットメモリ領域を使用することなく、メモリを有効活用できる他、高負荷な、パケットメモリ再割り当て処理(未使用領域のサーチ)も必要がなくなる。
また、緊急パケットが届いていなければ、大きなメモリ容量のデータブロックで、まとめDMA転送を行うことによる高速転送が可能となる。
図6のうち、OS、およびデバイスドライバという四角で囲われている部分は、汎用パソコンのプロセッサ上で動作する。また、図6と、図3との対応関係は、以下の表1のようになる。
Figure 2008011015
図3において、回線対応部11から入力されたパケットは、受信バッファ15へ転送される。受信バッファ15に転送されるパケットは、プロトコルのヘッダ部分とコンテンツ部分の両方が入っているものとする。
パケット結合部16は、受信バッファ15に存在する複数のパケットを一つのデータブロックに結合する。同時に、受信バッファ使用量観測部27の値を、受信バッファ15に存在するデータ量の総数にアップデートする。
一方、結合閾値制御部18は、受信バッファ使用量観測部27が、設定された閾値を越えないか否かを判別する。また、緊急パケット判別部19は、到着したパケットが緊急の処理を必要とするパケットであるか否かを判別する。
ここで、結合閾値判別部18において閾値を越えたと判別される、或いは、緊急パケット判別部19において緊急パケットが到着したことが判別されたとする。
この時、パケットメモリ制御データセレクタ26は、各々メモリ容量が異なるパケットメモリ(20〜22)を管理する、パケットメモリ制御データ(23〜25)のうち、受信バッファ使用量観測部27に保持された値よりも大きく、かつ最小のメモリ容量のパケットメモリを管理するパケットメモリ制御データを選択する。
結合パケット転送部17は、選択されたパケットメモリ制御データ内に指定されているパケットメモリのアドレスに対して、受信バッファ15に存在する全てのデータを一括して転送処理する。
受信処理部13は、転送されたパケットメモリをプロトコル処理部14に受け渡す。プロトコル処理部14において、パケット処理装置において必要な処理が行われる。
また、受信処理部13では、プロトコル処理部14に渡したパケットメモリ12を補充するために新たにメモリ領域を確保し、パケットメモリ制御データに登録する。
図8は、本実施例のデバイスを初期化するための処理手順を示すフローチャートである。
まず、デバイスを初期化し(ステップ100)、結合閾値制御部18の閾値の設定をCsとし(ステップ101)、Csが0より大きい(Cs>0)か否かを判断する(ステップ102)。ステップ102において、Csが0より大きくない場合、Csの値としてデフォルト値を設定する(ステップ103)。また、ステップ102において、Csが0より大きい場合、緊急パケット判別部19のフラグ制御を行う(ステップ104)。
図9は、本実施例をパケットメモリ12を初期化するための処理手順を示すフローチャートである。
まず、パケットメモリを初期化し(ステップ110)、256バイトのパケットメモリ20のメモリ容量の総量をB256、1024バイトのパケットメモリ21のメモリ容量の総量をB1024、4096バイトのパケットメモリ22のメモリ容量の総量をB4096とする(ステップ111)。
各パケットメモリ(20〜22)のメモリ容量の総量をBsとし(ステップ112)、Bsをパケットサイズテーブル28に登録する(ステップ113)。
次に、Bsに登録されているサイズのパケットメモリをOSから確保し(ステップ114)、各パケットメモリ(20〜22)のアドレスをパケットメモリ制御データに登録する(ステップ115)。
図10は、本実施例において、パケットを受信してから、受信処理部13を呼び出すまでの処理手順を示すフローチャートである。
回線対応部11においてパケットを受信すると(ステップ120)、当該受信したパケットを、受信バッファ中のデータブロックに結合し(ステップ121)、受信バッファ使用量観測部27の値をアップデート(現在の値+受信したパケットサイズ)する(ステップ122)。
次に、受信バッファ使用量観測部27の値をMsとし(ステップ123)、パケットに緊急フラグが与えられているか否かを判別する(ステップ124)。
次に、緊急フラグが有効、あるいは、MsがBsより大きい(Ms>Bs)か否かを判断し(ステップ125)、ステップ125において、緊急フラグが無効、および、MsがBsより小さい(Bs≦Cs)の場合、ステップ120〜ステップ125を繰り返す。
また、ステップ125において、緊急フラグが有効、あるいは、MsがBsより大きい(Ms>Bs)場合、パケットサイズテーブル28とMsとの値を比較し、Msよりも大きく、かつ最小のメモリ容量を持つパケットメモリのパケットメモリ制御データを選択する(ステップ126)。
次に、選択したパケットメモリ制御データの使用済みフラグをONとし(ステップ127)、選択したパケットメモリ制御データよりパケットメモリ(20〜22)のアドレス(Bad)を取得する(ステップ128)。
アドレス(Bad)を元に、結合中のデータブロックをパケットメモリに転送し(ステップ129)、割り込みを発生させる(ステップ130)。
図11は、本実施例の受信処理部13の、プロトコル処理部14へのデータの受け渡しとパケットメモリ再割り当ての処理手順を示すフローチャートである。
受信処理部13が、ハードウェア割り込みの発生を検知すると(ステップ140)、それぞれメモリ容量が異なるパケットメモリに対するパケットメモリ制御データを検査し(ステップ141)、使用済みフラグがONとなっているか否かを、全パケットメモリ制御データに対して実施する(ステップ142、ステップ147)。
ステップ142において、使用済みフラグがONとなっていると、パケットメモリ制御データ中のパケットメモリのアドレスをプロトコル処理部14に渡す(ステップ143)。
次に、使用済みパケットメモリと同じサイズのパケットメモリを再割り当てを行い(ステップ144)、再割り当てを行ったパケットメモリのアドレスを、パケットメモリ制御データへ登録し(ステップ145)、再割り当てを行ったパケットメモリに対するパケットメモリ制御データの使用済みフラグを初期化する(ステップ146)。
ここで、パケットメモリの再割り当て処理において存在するトレードオフを図12に示す。
パケットメモリが小さい場合、パケットメモリ制御データを用いて、結合パケット転送部17を制御する回数が多くなるため、DMA転送の効率は低くなる。また、プロトコル処理部14において行われる処理回数も多くなるため、パケット処理装置のプロセッサの負荷が高くなる。しかし、パケットメモリの再割り当て処理においては、OS(オペレーティングシステム)の持つメモリは小さい単位で管理されており、サーチするパケットメモリのサイズが小さい程、未使用領域の発見は比較的容易になり、再割り当て処理負荷は低くなる。
対して、パケットメモリが大きい場合は、DMA転送の効率が高く、プロトコル処理負荷も低いが、パケットメモリ12の再割り当てにおける未使用メモリ領域の発見が困難となり、再割り当て処理負荷が高くなる。
なお、本実施例において、タイマーを用いることによって、パケット処理装置に到着した複数のパケットが結合される最大の時間を指定することも可能である。
これによって、長時間パケットが到着せず結合閾値制御部18に設定された閾値に到達しなくても、あるいは、緊急パケット判別部19によって緊急パケットと認定されるパケットが到着されなくても、ある時間後には必ずデータブロックへの結合が停止され、パケットメモリ12への転送が行われる。
また、本実施例では、パケット処理装置に到着した複数のパケットを判別する複数のパケットフラグ判別部と、受信した複数のパケットを受信バッファ15で異なるレイヤー毎に分別するマルチレイヤ分別部とを持つことによって、あらかじめパケットを一定の条件のもとに分類した後に、ひとつのデータブロックに結合することも可能である。
その場合に、パケットフラグ判別部で行われる判別条件としては、例えば、(1)TCP/UDPフロー単位のような、一つの意味のある通信の単位で分類する方法、あるいは、(2)IPフラグメントにより、元々1つのパケットが分割して転送されることがあるが、元々同一のパケットに属していたIPフラグメント化されたパケットを1つの分類単位として分類する方法がある。
なお、異なるTCPフローと判別するには、一般的に、送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号の組み合わせにより判別される。受信バッファ15中であらかじめフロー毎に分類することによって、フロー毎にパケットを結合することが可能となるため、パケット処理装置が行うプロトコル処理が容易になるという利点がある。
IPフラグメントとは、パケットの送信側で、パケットの大きさが通信回線で伝送可能な最大の大きさ(MTUサイズ、Maximum transmission unit)よりも大きい場合、送信装置のIP層においてパケットをMTUサイズ毎の大きさに分割する処理である。分割した結果生成されるパケットをIPフラグメントと呼ぶ。
受信側のパケット処理装置では、各々のIPフラグメントに対して、再度元の大きさのIPパケットに再構築する処理を行う必要がある。この処理をデフラグメントと呼ぶ。そして、パケットフラグ判別部において、同一のIPパケットから分割された複数のIPフラグメントを、マルチレイヤ分別部の別々のレイヤに分別し、結合することによって、パケット処理装置で行われるデフラグメント処理が容易になるという利点がある。
以上説明したように、本実施例によれば、緊急パケットが高頻度で多量に到着した場合でも、結合されたデータブロックの大きさに最も適したパケットメモリを動的に選択してデータブロックを転送し、その後、最も適したパケットメモリの再割り当て処理を行うために、以下の問題点を解決することができる。
(1)まとめDMA転送では、緊急に処理することが必要なパケットが頻繁に到着し、パケットの結合が十分に行われないでDMA転送が開始される場合でも、パケットメモリのサイズは考えられる最大の大きさで準備する必要がある。つまり、大きなパケットメモリに対して、小さな緊急パケットを格納することになり、パケット処理装置のメモリ使用効率の低下が引き起こされる。その結果、メモリ不足となり、受信性能が低下する。
(2)まとめDMA転送では、必ず考えられる最大の大きさでパケットメモリを準備するために、パケットメモリを準備する処理が高負荷となる。つまり、パケット処理装置に用いられるOS上では、通常メモリは比較的小さい単位で管理されており(2のべき乗システムや、スラブキャッシュを参照)、大きなメモリを確保する必要がある場合は、複数の未使用の小さい単位のメモリを検索して確保する必要がある。
また、パケット処理装置が持つ回線対応部がスキャターギャザーDMA機構に対応していない場合は、複数の領域に分割されたメモリを一つのパケットメモリとして使用することができず、大きな連続したメモリ領域を確保するために、さらにパケットメモリを準備する処理が高負荷となる。その結果、受信性能が低下する。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
従来のパケット処理装置の受信処理を説明するための図である。 従来の、まとめDMA転送と緊急パケット受信処理を備えたパケット処理装置の受信処理を説明するための図である。 本発明の実施例のパケット処理装置の受信処理を説明するための図である。 本発明の実施例のパケット処理装置の接続構成を説明するための図である。 本発明の実施例のパケット処理装置において、まとめDMA転送における複数のパケットの一つのデータブロックへの結合の様子を説明するための図である。 本発明の実施例のパケット処理装置を、汎用パソコンの持つPCI拡張バスに搭載することで動作する通信カード(Network Interface Card)と、通信カードを駆動するために、汎用パソコン上で動作しているオペレーティングシステムのネットワークデバイスドライバに実装した具体例を示す図である。 図6に示す具体的な実施例における動作を、通信回線、通信カード、デバイスドライバ、オペレーティングシステムの観点から模式的に表すための図である。 本発明の実施例のデバイスを初期化するための処理手順を示すフローチャートである。 本発明の実施例をパケットメモリを初期化するための処理手順を示すフローチャートである。 本発明の実施例において、パケットを受信してから、受信処理部を呼び出すまでの処理手順を示すフローチャートである。 本発明の実施例の受信処理部の、プロトコル処理部へのデータの受け渡しとパケットメモリ再割り当ての処理手順を示すフローチャートである。 本発明の実施例において、パケットメモリの再割り当て処理において存在するトレードオフを示す図である。
符号の説明
11 回線対応部
12 パケットメモリ
13 受信処理部
14 プロトコル処理部
15 受信バッファ
16 パケット結合部
17 結合パケット転送部
18 結合閾値制御部
19 緊急パケット判別部
20〜22,57〜59 パケットメモリ
23〜25 パケットメモリ制御データ
26 パケットメモリ制御データセレクタ
27 受信バッファ使用量観測部
28 パケットサイズテーブル
29 パケット処理装置A
30 パケット処理装置B
31 パケット処理装置Aからの送信回線
32 パケット処理装置Aの受信回線
50 パケット
51 MACフレーマ
52 受信FIFOメモリ
53 DMAコントローラ
54 RxFIFOメモリ使用量レジスタ
55 バッファディスクリプタ選択回路
56 DMA転送開始アドレスレジスタ
60〜62 バッファディスクリプタ(Buffer Descriptor for Reception)
63 受信パケットキュー

Claims (6)

  1. 通信回線上のパケットを受け取るパケット処理装置において、
    通信回線から受信した複数のパケットを1つのデータブロックに結合するパケット結合部と、
    各々メモリ容量が異なる複数のパケットメモリと、
    前記結合中のデータブロックの大きさがある閾値を超えた場合、あるいは、前記結合中のデータブロックに緊急パケットが含まれる場合に、各々メモリ容量が異なる前記複数のパケットメモリの中から前記結合中のデータブロックの大きさに最も適したパケットメモリを一つ選択して、前記パケット結合部から前記選択したパケットメモリに前記結合中のデータブロックを転送する手段とを有することを特徴とするパケット処理装置。
  2. ある一定の時間をカウントするタイマーを有し、
    前記手段は、前記タイマーがタイムアウトした場合においても、各々メモリ容量が異なる前記複数のパケットメモリの中から前記結合中のデータブロックの大きさに最も適したパケットメモリを一つ選択して、前記パケット結合部から前記選択したパケットメモリに前記結合中のデータブロックを転送することを特徴とする請求項1に記載のパケット処理装置。
  3. 前記通信回線上のデータを受け取る回線対応部と、
    前記閾値を設定する結合閾値制御部と、
    前記緊急パケットを判別する緊急パケット判別部と、
    前記パケット結合部において、前記回線対応部から受信した複数のパケットを一つのデータブロックに結合中のデータブロックを保持する受信バッファと、
    前記受信バッファの使用量を観測する受信バッファ使用量観測部と、
    前記結合中のデータブロックの大きさが前記閾値を超えた場合、あるいは、前記結合中のデータブロックに緊急パケットが含まれる場合に、前記受信バッファ使用量観測部に保持された値を元に、各々メモリ容量が異なる前記複数のパケットメモリの中からパケットメモリを一つ選択するパケットメモリセレクタと、
    前記パケットメモリセレクタにより選択されたパケットメモリに対して、前記パケット結合部で結合されたデータブロックを転送する結合パケット転送部と、
    受信したパケットメモリのプロトコル処理を行うプロトコル処理部と、
    前記プロトコル処理部へパケットメモリを転送し、同時に転送したパケットメモリ分のメモリ領域を新たに補充する受信処理部とを有することを特徴とする請求項1または請求項2に記載のパケット処理装置。
  4. 受信したパケットから、特定の条件を満たすパケットを検出するパケットフラグ判別部と、
    前記パケットフラグ判別部で検出されたパケットを抽出するマルチレイヤ分別部を有し、
    前記パケット結合部において結合される複数のパケットは、前記マルチレイヤ分別部で抽出された前記特定の条件を満たす複数のパケットであることを特徴とする請求項1ないし請求項3のいずれか1項に記載のパケット処理装置。
  5. 前記データブロックの大きさの閾値、前記タイマーでカウントする一定の時間、あるいは、前記パケットフラグ判別部で検出する条件は、ユーザの要求に応じて変更可能であることを特徴とする請求項4に記載のパケット処理装置。
  6. 通信回線上のパケットを受け取るパケット処理方法において、
    各々メモリ容量が異なる複数のパケットメモリを有し、
    通信回線から受信した複数のパケットを1つのデータブロックに結合し、
    前記結合中のデータブロックの大きさがある閾値を超えた場合、あるいは、前記結合中のデータブロックに緊急パケットが含まれる場合に、各々メモリ容量が異なる前記複数のパケットメモリの中から前記結合中のデータブロックの大きさに最も適したパケットメモリを一つ選択して、前記選択したパケットメモリに前記結合中のデータブロックを転送することを特徴とするパケット処理方法。
JP2006177731A 2006-06-28 2006-06-28 パケット処理方法およびパケット処理装置 Active JP4468332B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006177731A JP4468332B2 (ja) 2006-06-28 2006-06-28 パケット処理方法およびパケット処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006177731A JP4468332B2 (ja) 2006-06-28 2006-06-28 パケット処理方法およびパケット処理装置

Publications (2)

Publication Number Publication Date
JP2008011015A true JP2008011015A (ja) 2008-01-17
JP4468332B2 JP4468332B2 (ja) 2010-05-26

Family

ID=39068857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006177731A Active JP4468332B2 (ja) 2006-06-28 2006-06-28 パケット処理方法およびパケット処理装置

Country Status (1)

Country Link
JP (1) JP4468332B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012204950A (ja) * 2011-03-24 2012-10-22 Silex Technology Inc ネットワーク受信装置
KR101301793B1 (ko) * 2009-11-24 2013-09-16 (주) 위닉스 데이터 패킷 전송 장치 및 방법
JP2015062759A (ja) * 2015-01-13 2015-04-09 株式会社ソフイア 遊技機
WO2019198528A1 (ja) * 2018-04-10 2019-10-17 日本電信電話株式会社 パケット処理装置およびパケット処理方法
WO2020217990A1 (ja) * 2019-04-23 2020-10-29 日本電信電話株式会社 パケット処理装置およびパケット処理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7102936B2 (ja) 2018-05-23 2022-07-20 日本電信電話株式会社 パケット処理装置およびパケット処理方法
JP7331431B2 (ja) * 2019-04-22 2023-08-23 日本電信電話株式会社 パケット処理装置およびパケット処理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101301793B1 (ko) * 2009-11-24 2013-09-16 (주) 위닉스 데이터 패킷 전송 장치 및 방법
JP2012204950A (ja) * 2011-03-24 2012-10-22 Silex Technology Inc ネットワーク受信装置
JP2015062759A (ja) * 2015-01-13 2015-04-09 株式会社ソフイア 遊技機
WO2019198528A1 (ja) * 2018-04-10 2019-10-17 日本電信電話株式会社 パケット処理装置およびパケット処理方法
JP2019185376A (ja) * 2018-04-10 2019-10-24 日本電信電話株式会社 パケット処理装置およびパケット処理方法
JP7056337B2 (ja) 2018-04-10 2022-04-19 日本電信電話株式会社 パケット処理装置およびパケット処理方法
WO2020217990A1 (ja) * 2019-04-23 2020-10-29 日本電信電話株式会社 パケット処理装置およびパケット処理方法
JP2020182027A (ja) * 2019-04-23 2020-11-05 日本電信電話株式会社 パケット処理装置およびパケット処理方法
JP7143808B2 (ja) 2019-04-23 2022-09-29 日本電信電話株式会社 パケット処理装置およびパケット処理方法

Also Published As

Publication number Publication date
JP4468332B2 (ja) 2010-05-26

Similar Documents

Publication Publication Date Title
US20240160584A1 (en) System and method for facilitating dynamic command management in a network interface controller (nic)
JP4468332B2 (ja) パケット処理方法およびパケット処理装置
CA2573156C (en) Apparatus and method for supporting memory management in an offload of network protocol processing
CA2573162C (en) Apparatus and method for supporting connection establishment in an offload of network protocol processing
US7929442B2 (en) Method, system, and program for managing congestion in a network controller
US7836195B2 (en) Preserving packet order when migrating network flows between cores
US7660322B2 (en) Shared adapter
US20060015618A1 (en) Apparatus and method for supporting received data processing in an offload of network protocol processing
US20070255866A1 (en) Method and system for a user space TCP offload engine (TOE)
TWI257790B (en) System for protocol processing engine
US7124231B1 (en) Split transaction reordering circuit
US20040174877A1 (en) Load-balancing utilizing one or more threads of execution for implementing a protocol stack
CN113472893A (zh) 数据处理方法、装置、计算设备及计算机存储介质
US7643502B2 (en) Method and apparatus to perform frame coalescing
JP2000235536A (ja) データ通信方式及び装置
US8004991B1 (en) Method and system for processing network information
US11297006B1 (en) Use of virtual lanes to solve credit stall on target ports in FC SAN
JP4349636B2 (ja) パケット処理装置およびプログラム
JP5581995B2 (ja) メッセージ受信装置およびマイクロコントローラ
JP3934099B2 (ja) パケット処理装置およびプログラム
CN117951051A (zh) 聚合小型远程存储器访问请求
WO2006119773A1 (en) Method and system for data packet processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100205

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4468332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350