JP4344576B2 - パケット通信装置 - Google Patents

パケット通信装置 Download PDF

Info

Publication number
JP4344576B2
JP4344576B2 JP2003335064A JP2003335064A JP4344576B2 JP 4344576 B2 JP4344576 B2 JP 4344576B2 JP 2003335064 A JP2003335064 A JP 2003335064A JP 2003335064 A JP2003335064 A JP 2003335064A JP 4344576 B2 JP4344576 B2 JP 4344576B2
Authority
JP
Japan
Prior art keywords
packet
checksum
copy
storage area
transmission
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
JP2003335064A
Other languages
English (en)
Other versions
JP2005102037A (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2003335064A priority Critical patent/JP4344576B2/ja
Priority to US10/921,879 priority patent/US7428690B2/en
Publication of JP2005102037A publication Critical patent/JP2005102037A/ja
Priority to US12/076,686 priority patent/US20080177855A1/en
Application granted granted Critical
Publication of JP4344576B2 publication Critical patent/JP4344576B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • 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/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/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
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、データをパケットに分割して送信/受信するパケット通信装置に係り、特に、パケットの送信/受信処理に伴うパケットデータのコピー手段とチェックサム演算手段とに関する。
インターネットやLANを介する大部分の通信は、TCP/IPのプロトコルに基づくパケット通信である。
TCP/IPでは、プロトコル処理にプログラム階層がある。例えば、ネットワークインタフェースとしての通信回路が受信したパケットは、イーサネット(R)ドライバ→IP受信処理→TCPまたはUDP(User Datagram Protocol)受信処理→アプリケーションソフトウエアの階層で順次処理される。
送信においては、この逆の処理により、パケットが通信回路から送信される。
さらに、IP,UDP処理においては、ヘッダのチェックサムを演算し、TCPにおいては、ヘッダおよびデータのチェックサムを演算し、通信エラーをチェックしている。
しかし、送信/受信処理においては、チェックサムの演算がパケット全体に対して実行されるので、ソフトウエアでは処理に時間がかかり、送信/受信性能アップの妨げになってきた。
そこで、ネットワーク端末では、送信量よりも受信量が多いことに着目し、受信時のチェックサム演算をハードウエアで演算して高速化する方式が提案されている(例えば、特許文献1,特許文献2参照)。
特開平10−190481号公報 (第3,4頁、図2〜図4) 特開2001−111558号公報 (第2〜4頁、図1,図3〜図5)
しかし、従来は受信が主であったネットワーク端末でも、Webサーバを搭載してパケットを送信する機会が増加し、送信処理の高速化への要求が高まってきている。
この送信処理の高速化への要求に対処するために、高速なCPUを使用すると、ネットワーク端末の値段が高くなってしまう。
本発明の目的は、安価で低速なCPUを用いても、CPUの処理負荷を軽減して高速送信/受信を実現する手段を備えたパケット通信装置を提供することである。
本発明は、上記目的を達成するために、CPUとメモリとパケット通信回路とを有し、ネットワークで接続された少なくとも1つの制御対象と制御対象を遠隔監視/制御する少なくとも1つのネットワーク端末とをインタフェースし、制御対象とネットワーク端末との間でパケットを送信/受信するパケット通信装置において、CPUがデータをカプセル化して送信パケットを形成しメモリのワークエリアに置く通信ミドルウエアを備え、ワークエリアに置かれた送信パケットをメモリのディスクリプタにコピーするコピー装置を備え、パケット通信回路が、固有のデバイスドライバを介して取り込んだメモリのディスクリプタ内の送信パケットを制御対象またはネットワーク端末に送信し、パケット通信回路が、制御対象またはネットワーク端末からの受信パケットを固有のデバイスドライバを介してメモリのディスクリプタに転送し、メモリのディスクリプタに転送された受信パケットをメモリのワークエリアにコピーするコピー装置を備え、CPUがワークエリアに置かれた受信パケットのカプセルを解きデータを取り出す通信ミドルウエアを備えたパケット通信装置を提案する。
本発明は、また、CPUとメモリとパケット通信回路とを有し、ネットワークで接続された少なくとも1つの制御対象と制御対象を遠隔監視/制御する少なくとも1つのネットワーク端末とをインタフェースし、制御対象とネットワーク端末との間でパケットを送信/受信するパケット通信装置において、CPUがデータをカプセル化して送信パケットを形成しメモリのワークエリアに置く通信ミドルウエアを備え、ワークエリアに置かれた送信パケットをメモリのディスクリプタにコピーするとともに送信パケットについて所定の演算を実行するコピー&演算装置を備え、パケット通信回路が、固有のデバイスドライバを介して取り込んだメモリのディスクリプタ内の送信パケットを制御対象またはネットワーク端末に送信し、パケット通信回路が、制御対象またはネットワーク端末からの受信パケットを固有のデバイスドライバを介してメモリのディスクリプタに転送し、メモリのディスクリプタに転送された受信パケットをメモリのワークエリアにコピーするとともに受信パケットについて所定の演算を実行するコピー&演算装置を備え、CPUがワークエリアに置かれた受信パケットのカプセルを解きデータを取り出す通信ミドルウエアを備えたパケット通信装置を提案する。
CPUは、コピー&演算装置に対して、パケットのコピーのみのモードと、パケットについての所定の演算のみのモードと、パケットのコピーおよび所定の演算モードとの切り替え指令手段を備える。
所定の演算を実行する演算装置とは、具体的には、パケットのチェックサム演算装置であり、このチェックサム演算装置は、演算対象のデータ長を可変のチェックサム演算回路を含むことができる。
ワークエリア内のパケットにチェックサム情報が無い場合に、コピー&演算装置は、コピー先のディスクリプタ内のそのパケットとともに、コピー元のワークエリア内のそのパケットにも、チェックサム演算結果を書き込むようにする。
ワークエリア内のパケットにチェックサム情報が無い場合に、コピー&演算装置のコピーとチェックサム演算とを分割し、まず、通信ミドルウエアでチェックサムのみを演算し、その結果をそのパケットのチェックサム情報として格納し、ワークエリア内のチェックサム情報付きパケットをディスクリプタにコピーしてもよい。
本発明のメモリコピー方式を採用したパケット通信装置によれば、TCP/IP通信処理において、CPU負荷の重いコピーとチェックサム演算とをハードウエア化し、コピーとチェックサム演算とを同時に実行でき、通信処理性能を高められる。
また、本発明によるメモリコピー方式は、パケットの受信処理ばかりでなく、送信処理においても、コピーとチェックサム演算の高速化が可能であり、送信/受信処理を高速化できる。
その結果、ネットワーク端末に送信/受信処理の多いWebサーバを搭載した場合でも、処理速度が比較的低い既存のCPUを利用し、従来のソフトウエア資産をそのまま継承できる。
さらに、余ったCPUパワーを他の処理に使用可能となり、製品に新たな機能を追加できる。
次に、図1〜図9を参照して、本発明によるパケット通信装置の実施形態を説明する。
図1は、本発明によるパケット通信装置を適用すべき遠隔監視/制御システムの構成の一例を示す図である。
従来、インターネットは、主に、屋内から外部のホームページの情報を入手する手段であった。最近は、インターネットに常時接続できるADSLやFTTHなどの環境が容易に手に入るようになってきた。屋内の機器をイーサネット(R)などで接続してLANを構成し、ADSLやFTTHなどを介してインターネットに常時接続すると、屋外から屋内の各機器の情報を入手して状態を監視しまたは制御できるので、ADSLやFTTHなどを介する遠隔監視/制御システムへの要求が高まりつつある。
本実施形態の遠隔監視/制御システムは、パケット通信装置1と、ネットワーク2と、パソコンPCや携帯電話などのネットワーク端末3と、家電や産業用制御装置などの制御対象4とから構成される。パケット通信装置1と制御対象4とは、一体型であっても、有線または無線で接続されていてもよい。
パケット通信装置1とネットワーク端末3とは、ネットワーク2により接続されており、TCP/IPプロトコルに準拠するパケットを送信/受信する。
パケット通信装置1は、制御対象4とネットワーク2とのインタフェースとして機能する。ネットワーク端末3は、ネットワーク2を介して、制御対象4の状態を遠隔監視し、制御する。
パケット通信装置1は、ネットワーク端末3からインターネットにアクセスする一般のWebブラウザを用いて、リアルタイム遠隔監視やリアルタイム制御を実現するために、Webサーバを搭載している。パケット通信装置1は、Webサーバ処理のため、パケットをリアルタイムに送信/受信する必要があり、パケット通信装置1の負荷がますます増大する。
本発明は、このパケット通信装置1において、パケットの送信/受信処理のCPUに対する負荷を軽減し、通信能力を高める手段を提供する。
ネットワーク2は、LAN21とインターネット22とそれらを接続するゲートウエイGWまたはモデム23とからなる。GWまたはモデム23は、LAN21とインターネット22とのインタフェースの機能を果たしている。ネットワーク2は、ケーブルや光ファイバなどの有線接続PC3a,PC3cのほかに、携帯電話3dや無線LANを用いたネットワーク端末3bなどの無線接続を含んでもよい。
LAN21においては、IEEE802.3に準拠してTCP/IPパケットをカプセル化したイーサネット(R)パケットを用いて通信する。インターネット22においては、イーサネット(R)パケットに加えて、ATMやフレームリレーなどのパケットを用いて通信する。
図2は、本発明によるパケット通信装置の一実施形態の構成を示すブロック図である。
パケット通信装置1は、CPU11と、コピー&演算装置12と、パケット通信回路13と、メモリ14と、これらを接続するバス15とからなる。
また、パケット通信装置1の別の構成として、図10に示すようにメモリを外付けにした構成もある。
図10では、パケット通信装置1は、パケット通信LSI100とメモリ14およびパケット通信LSI100とメモリ14を接続する外バス101から構成される。
また、パケット通信LSI100は、CPU11と、コピー&演算装置12と、パケット通信回路13と、外バスI/F回路16と、これらを接続するバス15から構成される。前記外バスI/F回路16は、バス15と外バス101とをブリッジする回路である。
以下の動作において、図2と図10は同じであるため、以下図2を用いて詳しく説明する。
パケット通信回路13は、ネットワーク2に接続され、LAN21とイーサネット(R)パケットとを用いて、パケット通信を実行する。
図3は、本発明によるパケット通信装置のメモリに格納されているプログラムの機能構成を示すブロック図である。
メモリ14は、CPU11で実行される送信パケット生成手順および受信パケット処理手順を含むプログラム141と、データ領域としてのワークエリア142と、パケット通信回路13が送信/受信するデータを保持するディスクリプタ143とを記憶領域内に備えている。
ディスクリプタ143は、パケット通信回路13が送信するデータを保持する送信ディスクリプタ1431と、パケット通信回路13が受信したデータを保持する受信ディスクリプタ1432とからなる。
図4は、本発明によるパケット通信装置で使用するTCP/IP通信プロトコルの構造を示す図である。
CPU11は、プログラム141を実行し、実行時のデータ等を保持するワークエリア142を使って、メモリ14内に格納されているWebサーバなどのアプリケーションソフトウエア,TCP/IPなどの通信ミドルウエア,デバイスドライバなどのソフトウエアを実行し、送信パケットおよび受信パケットを処理する。
通信処理ソフトウエアは、ハードウエアとしてのパケット通信回路13に依存するデバイスドライバと、ハードウエアに依存しない通信ミドルウエアとに分かれている。
デバイスドライバは、ハードウエアごとに作成される。このデバイスドライバは、パケット通信回路13がアクセスするディスクリプタ143へのアクセスを担当するので、通信ミドルウエアは、ワークエリア142に対してのみデータを送信/受信すればよい。その結果、通信ミドルウエアは、WebサーバなどのアプリケーションソフトウエアがTCP/IPなどの通信を意識する局面を極力減少させるため、高度に抽象化できる。したがって、アプリケーションソフトウエアを作りやすくなるとともに、プログラムの移植が簡単になる。
しかし、デバイスドライバでは、受信ディスクリプタ1432からワークエリア142に受信パケットをコピーする処理と、ワークエリア142から送信ディスクリプタ1431に送信パケットをコピーする処理とが必要となり、そのオーバーヘッドが発生する。
図5は、本発明によるパケット通信装置1がTCP/IP通信パケットをイーサネット(R)パケットでカプセル化し送信/受信するパケットの構成の一例を示す図である。
パケット通信装置1が送信する場合、送信したいデータをTCPによりカプセル化し(図5c)、IPによりカプセル化し(図5b)、さらに、イーサネット(R)によりカプセル化して(図5a)パケットを作成し、送信する。このカプセル化の際、カプセル化するパケット種類をタイプ情報として各ヘッダに付加する。
パケット通信装置1が受信する場合、送信とは逆に処理し、ヘッダ内のタイプ情報を参照して、イーサネット(R)パケット→IPパケット→TCPパケットの順でカプセルを解き、受信データを入手する。
カプセル化の際に、TCP(UDP)およびIPでは、パケットが正しいかどうかを判定するために、チェックサム演算を使用する。
このチェックサム演算の対象範囲は、図5に示すように、TCPパケットの場合はTCPヘッダおよびTCPデータからなるTCPパケット全体であり、UDPおよびIPの場合はヘッダのみである。
送信元は、カプセル化の際にチェックサムを演算し、チェックサム情報として各ヘッダに付加する。
受信側は、チェックサム情報を含めて対象範囲のチェックサムを演算し、その結果が0ならば正常、それ以外ならばエラーと判定する。
最近のマイクロCPUは、32bit化されているので、32bit単位で演算する。一方、チェックサムの演算は、16bitの1の補数加算であり、32ビット化されたCPU11で演算しても、16bit単位での演算となってしまう。
さらに、チェックサム演算は、送信/受信処理の両方で実行される上に、TCPの場合は全パケットについて演算する。そのため、チェックサム演算のCPU11への負荷が大きくなっている。
その結果、パケットの送信/受信処理において、パケットのコピーとチェックサム演算とが、通信性能を低下させる要因となっている。
本発明においては、コピーとチェックサム演算とをコピー&演算装置12としてハードウエア化し、これらを同時並行的に実行し、通信性能を高める。
また、このハードウエア使用に伴うソフトウエアの要改造部分をハードウエアに依存するデバイスドライバのみに限定し、ソフトウエアの開発を簡単にする。
さらに、メモリアクセス幅を生かして、32bit単位でチェックサムを演算し、オーバーヘッドを軽減させ、通信性能を高める。
コピー&演算装置12は、コピーとチェックサム演算とを同時に実行し、CPU11におけるオーバーヘッドを削減する。
コピー&演算装置12は、コピーとチェックサム演算とを同時に実行するモードと、コピーのみを実行するモードと、チェックサム演算のみを実行するモードとを併せて持っている。
図6は、本発明によるパケット通信装置におけるパケット受信時のデータの流れを示す図である。
a) パケット通信回路13は、パケットを受信すると、バス15を介して、メモリ14内の受信ディスクリプタ1432にパケットを転送し、CPU11にパケット受信を連絡する。
b) CPU11のデバイスドライバは、そのパケット受信の連絡に応じて、コピー&演算装置12を起動する。コピー&演算装置12は、そのパケットを受信ディスクリプタ1432から読み出し、ワークエリア142内の指定された領域にコピーし始めるとともに、そのパケットを解析し、IPパケットのチェックサムとUDPパケットまたはTCPパケットのチェックサムとを演算する。
コピー&演算装置12は、コピー終了後、そのチェックサム演算結果およびいずれかのチェックサム演算結果が0でないというチェックサムエラーがあったかどうかを同じくワークエリア142内にそれぞれ書き込み、CPU11にチェックサム演算完了を伝える。
c) 通信ミドルウエアは、ワークエリア142内のチェックサム演算結果に基づき、IP処理と、UDP処理またはTCP処理とを実行する。Webサーバなどのアプリケーションソフトウエアは、その後に実行される。
もし、チェックサム演算結果にエラーがあった場合は、定められたエラー処理を実行する。
本発明の特徴は、処理手順bにおいて、コピー&演算装置12が、受信ディスクリプタ1432からワークエリア142へのコピーとIP,UDP,TCPのチェックサム演算とを同時に実行することである。
この処理手順により、メモリコピーがDMA(Direct Memory Access)並みに高速に実行され、その時間内にチェックサム演算まで終了する。
図7は、本発明によるパケット通信装置におけるパケット送信時のデータの流れを示す図である。
d) 通信ミドルウエアは、Webサーバなどのアプリケーションソフトウエアから出力されたデータをTCP(UDP)データ,IPデータ,イーサネット(R)データに順次カプセル化してイーサネット(R)パケットを形成し、ワークエリア142内に置く。
e) デバイスドライバは、コピー&演算装置12を起動する。コピー&演算装置12は、ワークエリア142内のイーサネット(R)パケットを読み出し、送信ディスクリプタ1431内の指定された領域にコピーを開始すると同時に、そのパケットを解析し、TCPパケットまたはUDPパケットおよびIPパケットのチェックサムを演算する。
コピー&演算装置12は、コピー終了後、そのチェックサム演算結果をコピー先である送信ディスクリプタ1431内のそのパケットにあるチェックサム格納個所にそれぞれ書き込み、CPU11に書き込みを伝える。
f) CPU11のデバイスドライバは、その書き込みを受けて、パケット通信回路13の送信を起動する。パケット通信回路13は、送信ディスクリプタ1431内のパケットをネットワーク2に送信する。
パケットの送信時においても、コピー&演算装置12が、ワークエリア142から送信ディスクリプタへのコピーとIP,UDP,TCPのチェックサム演算とを同時に実行する。
上記の通り、送信処理でワークエリア142内のパケットにチェックサム情報が付加されるのは、送信ディスクリプタ1431にコピーされた後であり、ワークエリア142内のパケットには、チェックサム情報は無い。
チェックサム情報が無いことが問題になる場合の解決策は、次の2つである。
第1の解決策は、コピー&演算装置12が、コピー先の送信ディスクリプタ1431内のそのパケットとともに、コピー元のワークエリア142内のそのパケットにも、チェックサム演算結果を書き込むことである。
第2の解決策は、コピー&演算装置12のコピーとチェックサム演算とを分割し、まず、通信ミドルウエアでチェックサムのみを演算し、その結果をそのパケットのチェックサム情報として格納する。その後、コピー&演算装置12は、ワークエリア142内のチェックサム情報付きパケットを送信ディスクリプタ1431にコピーする。
パケット通信装置1は、コピーとチェックサム演算とを同時に実行するコピー&演算装置12を搭載したので、送信/受信処理時に発生するコピーとチェックサム演算とのオーバーヘッドを削減できる。
また、コピー&演算装置12は、デバイスドライバのみで起動されるので、コピー&演算装置12の搭載に関連するソフトウエアの変更は、デバイスドライバのみでよい。
図8は、本発明によるコピー&演算装置12の内部構成を示すブロック図である。
コピー&演算装置12は、制御回路121と、レジスタ122と、チェックサム演算回路123と、メモリコピー回路124と、それらを接続するバス125とからなる。メモリコピー回路124は、上記バス15と接続されている。
コピー&演算装置12は、コピーとチェックサム演算とを同時に実行するモードと、コピーのみを実行するモードと、チェックサム演算のみを実行するモードとを持っている。チェックサム演算回路123は、汎用性を高めるため、チェックサムデータ長として、16bit,8bit,32bitを取り扱うことができ、演算方法として、1の補数加算と、通常のCPUの加算である2の補数加算とを実行できる。
メモリコピー回路124も、コピー単位を8bit,16bit,32bitに設定できるようになっている。
レジスタ122は、CPU11からアクセス可能であり、コピー&演算装置12の状態および設定値を保持している。
レジスタ122は、CPU11からの起動要求レジスタ,コピー&演算装置12の動作モード(コピー&演算,コピーのみ,演算のみ),チェックサム演算回路123の動作モード,メモリコピー回路124が実行するデータ幅(8/16/32bit),パケットのコピー元およびコピー先,チェックサム演算結果を格納する領域の先頭アドレス,個別アドレスを保持している。
このチェックサムの格納場所については、受信時は、チェックサム演算結果をワークエリア142に書き込み、CPU11がチェックするため、先頭アドレスの格納領域にチェックサム演算結果をまとめて書き込む方式を採用する。また、送信時は、チェックサム演算結果を送信ディスクリプタ1431内のコピー先のパケットに格納するため、個別アドレス指定方式を採用する。
個別アドレス指定方式では、レジスタ122内には3つまでのアドレスを持ち、それを越えたアドレスは、メモリ4にアドレスを格納し、レジスタ122には、その領域への先頭アドレスを持つ。
したがって、1パケット内で複数のチェックサムが演算された場合でも、対応できる。
制御回路121は、このコピー&演算装置12の心臓部であり、レジスタ122内の起動要求レジスタがセットされると、チェックサム演算回路123および/またはメモリコピー回路124に指令して、コピーおよび/またはチェックサム演算を開始させる。
また、バス125上のパケットデータをチェックし、メモリコピー回路124により読み込まれるパケットの構造を解析し、チェックサム演算回路124を制御して、パケットを構成している各パケットのチェックサムを演算する。
メモリコピー回路124は、DMA(Direct Memory Access)であり、制御回路121からの指令を受け、レジスタ122で設定されたコピー元のパケットデータをコピー先に、指定されたデータ長(8/16/32bit)で順次データをコピーするとともに、バス125に出力する。
コピー&演算装置12の動作モードがチェックサム演算のみの場合、このメモリコピー回路124は、メモリから読み込んだパケットデータをバス125に出力するのみで、コピーはしない。
図9は、図8のコピー&演算装置のチェックサム演算回路123の内部構成を示すブロック図である。
チェックサム演算回路123は、2個の16bitチェックサム演算器1231a,1231bと、セレクタ1232と、ビット反転器1233とからなる。チェックサム演算器1231は、加算器であり、16bitの1の補数加算および2の補数加算が可能である。
バス125から入力される32bit幅のパケットデータのうち、下位16bitが、演算器1231bの入力となり、上位16bitが、演算器1231bの出力とともに、セレクタ1232を介して、演算器1231aの入力となっている。
演算器1231bから出力されるキャリー信号1234は、演算器1231aに入力される。
ビット反転器1233は、演算器1231bの出力を下位16bitとして取り込み、演算器1231aの出力を上位16bitとして取り込み、32bit幅のビットを反転する。
チェックサム演算回路123は、16bitのチェックサム演算を32bit単位で実行し、演算を高速化する。
16bitのチェックサム演算は、次のように進行する。
セレクタ1232は、まず、バス125側を選択する。チェックサム演算の対象データは、32bitごとに、チェックサム演算回路123に送られる。
チェックサム演算回路123では、バス125から入力される32bitのデータは、上下16bitのデータに分割され、2つの16bitチェックサム演算器1231a,1231bで、それぞれ、16bitのチェックサムとして演算される。
チェックサム演算の対象データを全てチェックサム演算回路123に送り終わると、セレクタ1232は、16bitチェックサム演算器1231bの出力側を選択し、演算器1231aにおいて、2つのチェックサム演算結果を1つにまとめる。ビット反転器1233は、1つにまとめられた2つのチェックサム演算結果をビットごとに反転させ、16bitのチェックサム演算結果として、バス125に出力し、チェックサム演算を終了する。
なお、チェックサム演算器1231aのキャリー出力1234aは、チェックサム演算器1231bに入力され、チェックサム演算器1231bのキャリー出力1234bは、チェックサム演算器1231aに入力される。
このチェックサム演算器1231aと1231bとの接続により、チェックサム演算回路123を32bit長のチェックサム演算器として動作させることが可能となる。
8bit長のチェックサムは、チェックサム演算器1231を8bitチェックサム演算器2つとして動作させると実現でき、チェックサム演算回路の汎用性を高めることができる。
図5のイーサネット(R)パケットの構成を用いて、イーサネット(R)パケット受信時のコピー&演算装置12の動作を説明する。
1) 制御回路121は、CPU11により起動されると、メモリコピー回路124を起動する。メモリコピー回路124は、レジスタ122内に設定された内容に基づき、コピーを開始し、受信ディスクリプタ1432から読み出したパケットデータをワークエリア142にコピーするとともに、バス125に出力する。なお、イーサネット(R)パケットのヘッダ部分は、チェックサム演算が不要であるため、チェックサム演算器123は、停止中である。
2) 制御回路121は、バス125上に出力されたパケットデータの観測を開始する。図5(a)に示す通り、イーサネット(R)パケットにカプセル化されたパケットを示すタイプ情報は、送信元アドレスの次である。制御回路121は、このタイプ情報を読み、次がIPパケットであることを認識し、情報として予め持っているIPヘッダの構成から、IPヘッダが持つタイプの場所と、IPデータの始まる場所すなわちチェックサム演算の終了地点の情報とを入手する。
3) バス125上に、イーサネット(R)データの最初であるIPヘッダが流れると、制御回路121は、チェックサム演算回路123を起動し、IPヘッダのタイプ情報を待つ。制御回路121は、そのタイプ情報から、TCPヘッダであることを認識し、TCPパケットの長さすなわちチェックサム演算の終了地点を入手する。
4) IPヘッダのデータが流れ終わると、制御回路121は、チェックサム演算回路123から、チェックサム演算結果を入手する。制御回路121は、レジスタ122にある指定アドレスに、そのチェックサム演算結果を格納するとともに、チェックサム演算回路123をリセットし、TCPのチェックサム演算に備える。
5) TCPパケットが全て流れると、制御回路121は、4)と同様に、TCPのチェックサム演算結果を指定アドレスに格納するとともに、メモリコピー回路124を止め、パケットコピーを終了させる。
以上のように、本発明においては、受信したTCP/IPをカプセル化したイーサネット(R)パケットを受信ディスクリプタ1432からワークメモリ142にコピーするとともに、IPパケット(IPヘッダ)およびTCPヘッダのチェックサムを演算できる。
コピー&演算装置12は、送信時も、チェックサムの書き込み場所が、ワークエリア142内ではなく、送信ディスクリプタ1431にコピーしたパケットのIPヘッダおよびTCPヘッダ内のチェックサム格納場所であることを除けば、受信時と同様に動作する。
制御回路121は、処理高速化のために、代表的なプロトコルであるIP(IPv4),TCP,IPv6のヘッダ構造の情報を予め持って置く。それ以外のパケットに関しては、メモリ14内に各ヘッダ構成をテーブルとして持つか、CPU11で処理させる。
イーサネット(R)にカプセル化されるパケットのタイプ情報の値は、RFC1700に規定されている。
さらに、本コピー&演算装置12のメモリコピー回路124は、コピーの際に、レジスタ122に予め設定された内容に基づき、パケットのヘッダやテイルなどを追加してカプセル化し、またはパケットのヘッダやテイルなどを削除してカプセルを解くことができる。
したがって、イーサネット(R)のパケットを他の通信手段である無線(IEEE802.11系)などのパケットに変更し、対応させることも可能となる。
パケットのカプセル化は、送信元アドレスおよび送信先アドレス以外には、ほとんど変わらないことに注目している。
カプセルを解く処理である受信の場合は、受信パケットのコピーの際にヘッダを除いてコピーし、データ本体のほかに、送信元アドレスおよび送信先アドレスとデータ長とをワークエリア142に書き込む。
このコピー時に、コピー&演算装置12は、ヘッダを含めたパケット長(バイト長)と、ヘッダを除いたデータ部分のバイト長とを計算する。
この計算結果を用いると、次の通信ミドルウエアによるパケット処理が容易になり、高速化される。
次に、カプセル化して送信する場合は、送信するデータ,送信元アドレス,送信先アドレスとからなる送信データにヘッダを付加して、送信ディスクリプタ1431にコピーする。また、送信データ長を計算し、付加するヘッダ内のデータ長の領域に書き込む。
このようにすると、通信ミドルウエアによるカプセル化処理が不要となるので、通信性能が高められる。
図6を用いて、受信時のコピー&通信装置12の動作を説明する。
a) パケット通信回路13は、パケットを受信すると、バス15を介して、メモリ14内の受信ディスクリプタ1432に転送し、CPU11に受信したことを伝える。
b) CPU11のデバイスドライバは、コピー&演算装置12を起動する。コピー&演算装置12は、そのパケットを受信ディスクリプタ1432から読み出し、ワークエリア142内の指定された領域にコピーを開始する。それと同時に、コピー&演算装置12は、そのパケットの構成を解析し、ヘッダ部分とデータ部分とに分けて、ワークエリア142にコピーする。コピー&演算装置12は、送信元アドレスと送信先アドレスとを取り出し、データ長を計算する。コピー終了後、コピー&演算装置12は、データ長と送信元アドレスと送信先のアドレスとを、同じくワークエリア142内に書き込み、CPU11に知らせる。
c) 通信ミドルウエアは、ワークエリア142内のデータ長と送信元アドレスと送信先アドレスの値を用いて処理する。その後、Webサーバなどのアプリケーションソフトウエアが実行される。通信ミドルウエアは、カプセルが解かれているため、データのみの処理となり、受信処理が高速になる。また、ヘッダに対する処理が必要な場合でも、ヘッダ部がワークエリア内142にコピーされており、処理可能である。
図7を用いて、送信時のコピー&通信装置12の動作を説明する。
d) Webサーバなどのアプリケーションソフトウエアから出力されたデータは、通信ミドルウエアにより処理され、ワークエリア142内に置かれる。ワークエリア142内に置かれたデータは、IPパケットやイーサネット(R)にカプセル化されている。
e) CPU11のデバイスドライバは、送信元アドレスと送信先アドレスとをワークエリア142に書き込み、コピー&演算装置12を起動する。コピー&演算装置12は、ワークエリア142内のデータを読み出し、送信ディスクリプタ1431内の指定された領域にコピーを開始する。このとき、コピー&演算装置12は、ワークエリア142内から読み出した送信先アドレスと送信元アドレスとで構成したヘッダを送信ディスクリプタ1431にコピーした後、このデータ本体をコピーし、カプセル化する。
f) コピー&演算装置12は、CPU11が送信するデータにヘッダを付加し、カプセル化する。送信ディスクリプタ1431にヘッダ部分をコピーし、その後、このIPパケット本体をコピーする。このとき、コピー&演算装置12は、送信ディスクリプタ1431にコピーしたパケット長を計算している。コピー&演算装置12は、コピー終了後、コピー先の送信ディスクリプタ1431内にあるパケットの指定された領域に、計算したパケット長を書き込み、書き込みがあったことをCPU11に連絡する。
g) デバイスドライバは、書き込みの連絡を受けて、パケット通信回路13の送信を起動する。パケット通信回路13は、送信ディスクリプタ1431内の無線パケットを送信する。
以上の処理手順により、コピー&通信回路12は、送信データをワークエリア142から送信ディスクリプタ1431にコピーする際に、無線パケットに変換するとともにパケット長を計算する。
このコピー&演算方式は、無線LANの通信パケットばかりではなく、他の通信パケットにカプセル化する際にも使用できる。
本発明によるパケット通信装置を適用すべき遠隔監視/制御システムの構成の一例を示す図である。 本発明によるパケット通信装置の一実施形態の構成を示すブロック図である。 本発明によるパケット通信装置のメモリに格納されているプログラムの機能構成を示すブロック図である。 本発明によるパケット通信装置で使用するTCP/IP通信プロトコルの構造を示す図である。 本発明によるパケット通信装置1がTCP/IP通信パケットをイーサネット(R)パケットでカプセル化し送信/受信するパケットの構成の一例を示す図である。 本発明によるパケット通信装置におけるパケット受信時のデータの流れを示す図である。 本発明によるパケット通信装置におけるパケット送信時のデータの流れを示す図である。 本発明によるコピー&演算装置の内部構成を示すブロック図である。 図8のコピー&演算装置のチェックサム演算回路の内部構成を示すブロック図である。 本発明によるパケット通信装置の一実施形態の図2とは異なる構成を示すブロック図である。
符号の説明
1 パケット通信装置
2 ネットワーク
3 ネットワーク端末
4 制御対象
11 CPU
12 コピー&演算装置
121 制御回路
122 レジスタ
123 チェックサム演算回路
1231 16bitチェックサム演算器
1232 セレクタ
1233 ビット反転器
1234 キャリー信号
124 メモリコピー装置
125 バス
13 パケット通信回路
14 メモリ
141 プログラム
142 ワークエリア
143 ディスクリプタ
1431 送信ディスクリプタ
1432 受信ディスクリプタ
15 バス
16 外バスI/F回路
21 LAN
22 インターネット
23 GWまたはモデム
100 パケット通信LSI
101 外バス

Claims (6)

  1. 第1の記憶領域と第2の記憶領域とを有するメモリと共に用いられるパケット通信装置において、
    CPUと、
    ネットワークを介してパケットの送受信を行うパケット通信回路と、
    CPUで実行される通信ソフトウェアと、
    前記メモリ中に設けられ、前記通信ソフトウェアにより制御される前記第1の記憶領域と、
    前記メモリ中に設けられ、前記パケット通信回路により制御される前記第2の記憶領域と、
    前記通信ソフトウェアにより前記第1の記憶領域に記憶された送信パケットを前記第2の記憶領域に設けられた前記パケット通信回路に制御されるディスクリプタ領域にコピーするとともに、前記送信パケットに対してチェックサム演算を行う演算装置と、を有し、
    前記パケット通信回路は、前記CPUまたは前記演算装置によって前記第2の記憶領域に書き込まれた演算された送信パケットを前記ネットワークへ出力するパケット通信装置。
  2. 第1の記憶領域と第2の記憶領域とを有するメモリと、
    CPUと、
    ネットワークを介してパケットの送受信を行うパケット通信回路と、
    通信ソフトウェアと、
    前記メモリ中に設けられ、前記通信ソフトウェアにより制御される前記第1の記憶領域と、
    前記メモリ中に設けられ、前記パケット通信回路により制御される前記第2の記憶領域と、
    前記通信ソフトウェアにより前記第1の記憶領域に設けられた前記CPUのワークエリアに記憶された送信パケットを、前記第2の記憶領域に設けられた前記パケット通信回路に制御されるディスクリプタ領域にコピーするとともに、前記送信パケットに対してチェックサム演算を行う演算装置と、を有し、
    前記パケット通信回路は、前記CPUまたは前記演算装置によって前記第2の記憶領域に書き込まれた演算された送信パケットを前記ネットワークへ出力するパケット通信装置。
  3. 請求項1又は2記載のパケット通信装置において、
    前記パケット通信回路は、前記ネットワークを介して受信された受信パケットを前記メモリの前記第2の記憶領域に記憶し、
    前記演算装置は、前記第2の記憶領域に格納された受信パケットを前記第1の記憶領域にコピーするとともに、前記受信パケットに対して演算を行うパケット通信装置。
  4. 請求項1又は2記載のパケット通信装置において、
    前記CPUは、前記演算装置に対して、前記送信パケット又は受信パケットのコピーのみのモードと、前記送信パケット又は前記受信パケットの演算のみのモードとの切り換えを可能とする切り替え指令を有するパケット通信装置。
  5. 請求項1又は2記載のパケット通信装置において、
    前記演算装置は、前記送信パケット又は受信パケットを演算するチェックサム演算装置であるパケット通信装置。
  6. 請求項5記載のパケット通信装置において、
    前記チェックサム演算装置は、演算対象のデータ長を可変とすることが可能であるパケット通信装置。
JP2003335064A 2003-09-26 2003-09-26 パケット通信装置 Expired - Fee Related JP4344576B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003335064A JP4344576B2 (ja) 2003-09-26 2003-09-26 パケット通信装置
US10/921,879 US7428690B2 (en) 2003-09-26 2004-08-20 Packet communication apparatus
US12/076,686 US20080177855A1 (en) 2003-09-26 2008-03-21 Packet communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003335064A JP4344576B2 (ja) 2003-09-26 2003-09-26 パケット通信装置

Publications (2)

Publication Number Publication Date
JP2005102037A JP2005102037A (ja) 2005-04-14
JP4344576B2 true JP4344576B2 (ja) 2009-10-14

Family

ID=34373191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003335064A Expired - Fee Related JP4344576B2 (ja) 2003-09-26 2003-09-26 パケット通信装置

Country Status (2)

Country Link
US (2) US7428690B2 (ja)
JP (1) JP4344576B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325074B2 (en) * 2005-09-28 2008-01-29 Cisco Technology, Inc. Incremental compilation of packet classifications using fragmented tables
US8553851B2 (en) * 2006-02-15 2013-10-08 Nec Sphere Communications, Inc. System and method for recording calls in an IP-based communications system
JP4845674B2 (ja) * 2006-10-26 2011-12-28 キヤノン株式会社 データ処理装置及び方法、通信装置、並びにプログラム
JP2008283394A (ja) * 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 通信装置及び通信用集積回路
JP2009253723A (ja) * 2008-04-08 2009-10-29 Hitachi Ltd 通信プロトコル処理回路及び通信プロトコル処理方法ならびに通信端末
JP5729938B2 (ja) * 2010-08-04 2015-06-03 キヤノン株式会社 通信装置およびその制御方法
JP5055420B2 (ja) * 2010-12-15 2012-10-24 ルネサスエレクトロニクス株式会社 ストリームデータ通信方法及びストリームデータ通信装置
CN102255770B (zh) * 2011-06-13 2014-05-14 中亿企网实业发展(上海)有限公司 一种复合网络监测数据包的方法
JP6017344B2 (ja) * 2013-02-26 2016-10-26 株式会社日立製作所 制御装置、制御システム及びデータ生成方法
JP2013102556A (ja) * 2013-03-05 2013-05-23 Renesas Electronics Corp 通信装置及び方法
JP6433146B2 (ja) * 2014-04-22 2018-12-05 キヤノン株式会社 情報処理装置、システム、情報処理方法、コンピュータプログラム
JP6381270B2 (ja) * 2014-04-22 2018-08-29 キヤノン株式会社 情報処理装置、情報処理方法、システム
US10108516B2 (en) * 2015-01-29 2018-10-23 Knuedge Incorporated Affinity data collection in a computing system
CN106302364B (zh) * 2015-06-11 2020-03-24 阿里巴巴集团控股有限公司 代理方法、辅助代理方法与设备
JP6614948B2 (ja) * 2015-12-02 2019-12-04 キヤノン株式会社 演算装置、演算方法、通信装置、及びプログラム
US9977745B2 (en) 2016-01-05 2018-05-22 Knuedge, Inc. Flow control through packet router
US10374830B1 (en) 2016-07-17 2019-08-06 Fatpipe, Inc. WAN-span LAN (WSL) networking technology
JP2019040376A (ja) * 2017-08-25 2019-03-14 株式会社明電舎 局所的データの書換方法
JP6907835B2 (ja) * 2017-09-06 2021-07-21 富士通株式会社 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法
JP6778169B2 (ja) * 2017-09-28 2020-10-28 日本電信電話株式会社 仮想化通信装置、および、仮想化通信方法
JP6938399B2 (ja) * 2018-02-14 2021-09-22 キヤノン株式会社 通信装置、通信方法およびプログラム
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US11184113B2 (en) * 2019-05-24 2021-11-23 International Business Machines Corporation Packet replay in response to checksum error
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69114788T2 (de) * 1990-08-29 1996-07-11 Honeywell Inc Datenübertragungssystem mit Kontrollsummerechenmittel.
JPH04352054A (ja) 1991-05-29 1992-12-07 Toshiba Corp 通信制御装置
JP3282205B2 (ja) 1992-01-08 2002-05-13 株式会社日立製作所 受信データ処理方式及び通信制御装置
JP3165050B2 (ja) 1996-12-24 2001-05-14 九州日本電気通信システム株式会社 パケットエラー検出方式
CA2276840A1 (en) * 1999-07-05 2001-01-05 Telefonaktiebolaget Lm Ericsson Method and apparatus for synchronizing a database in portable communication devices
JP2001111558A (ja) 1999-10-05 2001-04-20 Hitachi Ltd データ受信装置
US6880048B1 (en) * 2000-06-08 2005-04-12 Palm, Source, Inc. Method and apparatus for fault-tolerant update of flash ROM contents
US7003702B2 (en) * 2002-03-18 2006-02-21 Emc Corporation End-to-end checksumming for read operations
US7219211B1 (en) * 2002-11-19 2007-05-15 Juniper Networks, Inc. Precompute logic for software packet processing

Also Published As

Publication number Publication date
JP2005102037A (ja) 2005-04-14
US7428690B2 (en) 2008-09-23
US20080177855A1 (en) 2008-07-24
US20050068897A1 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
JP4344576B2 (ja) パケット通信装置
EP0996069B1 (en) Method of transferring image data using a IEEE 1394 bus
CN111277600B (zh) 数据传输方法及装置
CN115858146A (zh) 内存扩展系统和计算节点
KR100321822B1 (ko) 이더넷용 티씨피/아이피 모뎀
EP2685385B1 (en) Network system
JP2007027951A (ja) Dmaコントローラおよび通信処理装置
JP2006303765A (ja) Tcp/ip送信処理回路及びそれを具備する半導体集積回路
JP4990304B2 (ja) フレーム送受信装置及び通信データ処理方法
JP3618277B2 (ja) 通信プロトコル処理方法および通信プロトコル処理装置
JP2005033295A (ja) プロトコル変換装置、プロトコル変換方法、およびプロトコル変換プログラム
JP2004306200A (ja) ロボット制御システム
KR101266021B1 (ko) 데이터 통신 시스템에서 이동통신 단말기를 제어하는 장치및 방법
CN115865944A (zh) 设备间点对点通信方法、系统、装置、设备及存储介质
JP5729938B2 (ja) 通信装置およびその制御方法
CN111800340B (zh) 数据包转发方法和装置
WO2009125664A1 (ja) 通信プロトコル処理回路及び通信プロトコル処理方法ならびに通信端末
JP7005303B2 (ja) 通信装置、パケット生成装置およびそれらの制御方法
CN114866534B (zh) 一种图像处理方法、装置、设备及介质
JPH10112739A (ja) モデム装置
CN104468128B (zh) 用于嵌入式网络处理器的网络接口类型扩展适配系统
JP2007329730A (ja) 通信プロトコル処理装置
JP4164270B2 (ja) サーボコントローラ
JP4418409B2 (ja) プレミアパケット識別装置、端末装置、プレミアパケット識別システムおよびプレミアパケット識別方法
JP5964692B2 (ja) プロトコル変換支援装置、プロトコル変換支援方法、及び、プロトコル変換支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060911

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070219

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070413

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070511

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

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

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4344576

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

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

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

LAPS Cancellation because of no payment of annual fees