JP3891945B2 - パケット通信装置 - Google Patents
パケット通信装置 Download PDFInfo
- Publication number
- JP3891945B2 JP3891945B2 JP2003056479A JP2003056479A JP3891945B2 JP 3891945 B2 JP3891945 B2 JP 3891945B2 JP 2003056479 A JP2003056479 A JP 2003056479A JP 2003056479 A JP2003056479 A JP 2003056479A JP 3891945 B2 JP3891945 B2 JP 3891945B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- transfer
- communication
- priority information
- received
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Description
【発明の属する技術分野】
本発明は、CPUとパケットを送受信可能な複数の通信手段を内蔵するシステムLSIにおいて、パケットを複数の通信手段間でハードウエアにより自動転送するパケット通信装置に関するものである。
【0002】
【従来の技術】
パケットを用いた通信装置として、イーサネット(Ethernet)(登録商標、以下同じ)をベースにIP(Internet Protocol)を用いて音声データをやり取りするIP電話などに使用されたものが知られている。この種のパケット通信装置は、CPU,2つのイーサネットコントローラ,転送制御回路,メモリなどを備えて構成されており、一方のイーサネットコントローラをHUB(ハブ)にイーサネットを介して接続し、他方のイーサネットコントローラをPC(パーソナルコンピュータ)にイーサネットを介して接続し、HUBとPCとを通信装置を介して接続することにより、HUBから敷くイーサネットケーブルの本数を削減する方式が採用されている。
【0003】
このパケット通信装置においては、各イーサネットを介して受信したパケットの宛先が通信装置のときには受信したパケットをそのまま処理し、それ以外の宛先のパケットに対しては、宛先を判断して、必要なときには他方のイーサネットにそのパケットを転送するようになっている。これにより、この種のパケット通信装置においては、HUBから送信されたPC宛の受信メールやインターネット情報などのパケットをPC側のイーサネットに転送するとともに、PC側からの送信メールやインターネットアクセスなどのパケットをHUB側に転送し、且つ、受話器から入力された音声を音声データとして送信するとともに受信した音声データを音声としてスピーカから出力したりして、電話機能を実現することができる。
【0004】
この場合、IP電話では、もともと10ms〜20msに1パケット程度、送受信するだけで、送信及び受信するパケット数は少なく、比較的リアルタイム性の低いPC側からのパケットを転送することに支障がでることはない。ただ、IP電話では通話をスムーズに行うために、リアルタイム性の要求される音声データをやり取りするため、音声データが載ったパケットを優先的に、LANや
WANに流す必要がある。
【0005】
このパケット通信で優先度通信を行う方式として、LAN(Local Area Network)で使われるイーサネットでは、ネットワークの国際標準であるOSI(Open Systems Interconnection)参照モデルによると、第3層のネットワーク層であるIP(Internet Protocol)レベルで優先度制御を行う方式と、第2層のデータリンク層であるMAC(Media Access Control)レベルで優先度制御を行う方式が知られている。
【0006】
なお、IPレベルでの優先度制御方式では、LANで使用されるイーサネットの他に、WAN(World Area Network)で使用されるATM(Asynchronous Transfer Mode)やフレームリレーでも使用可能である。
【0007】
ところが、LANで使われるイーサネット上でこのIPレベルでの優先度制御を行うためには、MAC層の上であるIP層でのプロトコル処理が必要となり、処理が複雑となる。
【0008】
そこで、IEEE802委員会は、第2層での優先度制御を可能とする標準規格IEEE802.1pを制定した。さらに、最近ではIEEE802.1pは、1つのLANを複数のLANの集合体として扱う仮想LANのサポートを加え、IEEE802.1Qに進化した。
【0009】
しかし、このIEEE802.1Qで規定されたイーサネットのパケットは、IEEE802.3で規定された通常のイーサネットパケットに優先度情報を付加したため、4バイト分長い。そのため、通常のイーサネットしか送受信できないパケット通信装置は、この優先度情報付きのパケットを受信することが出来ない。そこで、IEEE802.1Qでは、パケットを転送するHUBに対して、各通信装置に応じ、パケットを変換して転送するように規定している。
【0010】
また、パケット変換をサポートしているHUBでは、各イーサネットを接続するポートごとの設定となる。したがって、IP電話において、リアルタイム通信を実現するため、音声データをIEEE802.1Qで規定された優先度情報付きのパケットを用いて通信を行うと、IP電話が接続されているHUBから、
IP電話はもちろん、このIP電話を介してHUBと接続されているPCに対しても、この優先度付きパケットが送られてくる。
【0011】
そこで、IP電話に接続されるPCがこの優先度付きパケットを受信出来ない場合には、HUBにて優先度付きパケットをIEEE802.3で規定されたパケットに変換する方法がある。
【0012】
また、IP電話内のCPUでPCに転送するパケットを、優先度付きパケットからIEEE802.3対応パケットに変換する方法がある。
【0013】
【発明が解決しようとする課題】
HUBにて変換する方法は、HUBの設定は人間が行う必要があり手間がかかること、また、IP電話とPCが送信するパケットは、HUBにて同じ優先度を持つパケットに変換されてしまうという問題がある。
【0014】
また、近年、インターネットブロードバンド化に伴い、LANやWANが急激に高速化し、PCが受信するパケット量が増大している。また、PCがやり取りするインターネットサービスにも、電子メールやホームページアクセスなどのアクセス時間に制限がないものに加えて、最近では、ストリーミングと呼ばれるビデオやインターネットテレビや中継など、通信にリアルタイム性が要求されるインターネットサービスが増加しており、様々な優先度をもったパケットが行き交っている。
【0015】
このような環境において、パケット通信装置に対して、PCに転送するパケット数が増大とともに、転送処理スピードも要求され、その要求はCPUの処理性能の向上よりもはるかに急激である。
【0016】
そのため、パケット変換をCPUで行う方式では、CPU処理によるオーバーヘッドに加えて、PCに転送するパケット数が増大すると、CPU負荷が大きくなり、パケット変換処理が間に合わなくなり、フロー制御の発動や、転送パケットの破棄が起こる。
【0017】
また、先に説明したIP電話で考えると、転送によるCPUの負荷が増大すると、もともとCPUが行っていた音声処理が滞るため、IP電話自体のサービスが低下すると共に、フロー制御の発動によりHUBからIP電話に対して、一時的にパケット送信が止まり、IP電話が受信すべき音声データパケットが来なくなってしまう。また、転送パケットの破棄が発生した場合、破棄されたパケットの再送が行われるため、イーサネットの転送効率の低下を招く。
【0018】
これに加えて、パケット通信装置にIP電話の代わりにIPテレビ電話を使用した場合には、CPUには処理の重い映像処理が音声処理に加わり、CPUの負荷が重くなり、益々イーサネットの転送効率の低下が激しくなってしまう。
【0019】
一方、パケット通信装置内のCPUで実行されている通信プログラムとして、今まで作られてきた通信プログラムを流用する場合、その通信プログラムが、IEEE802.1Qで規定されたパケットを送受信できず、プログラムの変更を伴うとともに、送信処理および、受信処理のオーバーヘッドが大きくなってしまう。そのため、パケット通信装置が処理すべきパケットが多くなると、CPU負荷が増大を招き、フロー制御の発動や、受信パケットの破棄,送信パケットの送信遅れが発生する。フロー制御が発動すると、HUBからPCに対するパケットの送信も一時的に止まるため、パケット通信装置自体の処理性能に加え、PC側のイーサネット通信効率も低下してしまう。
【0020】
本発明の目的は、パケット変換の要否を自動で判定するともに、パケットの転送又は送受信に伴うパケット変換を高速に行うパケット通信装置及びパケット通信モジュールを提供することにある。
【0021】
【課題を解決するための手段】
本発明は、複数の通信対象と優先度情報付きパケット(新規格パケット)及び優先度情報のないパケット(旧規格パケット)を用いて、パケット通信を行う少なくとも2つの通信手段と、前記通信手段間でパケットを転送するパケット転送手段と、マルチメディアのようにリアルタイム性が要求される処理を行う計算手段と、前記計算手段が実行する少なくとも1つのプログラム及びデータ、また前記計算手段が送受信するパケットを保持する記憶手段とをもつパケット通信装置は、前記通信対象が、新規格パケットを受信できない場合、前記パケット転送手段は、当該通信対象に対して、新規格パケットを転送する際に、旧規格パケットに変換して転送する機能を備える構成とする。
【0022】
また、前記パケット通信装置は、前記計算手段により設定可能であり、前記パケット変換の有無を設定する制御レジスタを少なくとも1つ持ち、前記通信対象が優先度情報付きパケットを受信できないと判断した際に、前記記憶手段に保持されたプログラムに基づいて、前記制御レジスタを新規格対応モードから旧規格対応モードの変更を、当該装置内部でクローズして行う構成とする。
【0023】
また、パケット通信装置は、転送するパケットを一時的に保持するバッファを持っており、新規格パケットから旧規格パケットへの変換は、前記バッファに優先度情報のみをいれずに破棄することで実現する機能を備える構成とする。
【0024】
また、パケット通信装置は、前記複数の通信対象ごとに、新規格パケット及び旧規格パケットに対応かの情報を保持する、連想メモリまたは、RAMテーブルを持ち、当該情報に基づいたパケット変換を、パケット通信装置内でクローズして、行う機能を備える構成とする。
【0025】
これにより、パケット通信装置では、計算手段により実行されるプログラムが、自分に接続された通信装置が新規格パケットを受信可能か調べ、その結果、当該通信装置が旧規格パケット対応であった場合、本パケット通信装置内の制御レジスタまたは、連想メモリ(RAMテーブル)に設定する。転送手段は、この設定に基づきパケット変換を行うので、計算手段への負荷なしにパケット変換をが、このパケット通信装置内で全てクローズして実現される。
【0026】
さらに、パケット通信装置は、前記記憶手段に保持された、前記計算手段で実行されるプログラムが新規格パケットを処理できない際に、前記転送手段が、当該新規格パケットを旧規格パケットに変換して、前記記憶手段に書き込むとともに、前記記憶手段にある旧規格パケットを新規格パケットに変換して、前記通信手段から、当該新規格パケットを送信する機能を備える構成とする。
【0027】
また、パケット通信装置は、前記計算手段で設定可能であり、前記パケット変換の有無を設定する制御レジスタを持ち、前記計算手段で実行されるプログラムが、優先度情報付きパケットを処理できない際に、前記記憶手段に保持された前記プログラムと同一または異なるプログラムに基づいて、前記制御レジスタを新規格対応モードから旧規格対応モードの変更を、当該装置内部でクローズして行う機能を持つ構成とする。
【0028】
また、パケット通信装置は、前記計算手段で設定可能であり、前記記憶手段に保持された送信パケットを旧規格パケットに新規格パケットに変更する際に、挿入する優先度情報を保持するレジスタを持ち、前記計算手段で実行されるプログラムが、優先度情報付きパケットを処理できない際に、前記記憶手段に保持された前記プログラムと同一または異なるプログラムに基づいて、前記レジスタに優先度情報の設定を、当該装置内部でクローズして行う機能を持つ構成とする。
【0029】
これにより、パケット変換装置では、計算手段で実行される、記憶手段に保持されたプログラムが新規格パケットを処理できない場合、同一または他のプログラムにより、パケット変換装置内の制御レジスタを設定する。これにより、パケット変換装置が受信した新規格パケットは旧規格に変換されて記憶手段に保持される。また、同様に記憶手段内に保持されたプログラムにより、優先度情報を保持するレジスタが設定されることにより、記憶手段保持された旧規格パケットは、前記レジスタに基づいて、優先度情報を持つ新規格パケットに変換されて送信される。これも同様に、計算手段の負荷なしにパケット変換が、本パケット変換装置内でクローズして行われる。
【0030】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。本発明のポイントを、図1,図6,図8,図30を用いて説明する。
【0031】
図1は、本発明の一実施形態を示すパケット通信装置のブロック構成図、図30は、本発明に係わるパケット通信装置をIP電話に適応した時のパケット通信システムのブロック構成図を示している。図30において、IP電話8000は、音声をイーサネットパケットに変換した音声パケットをやり取りして、IP電話間の会話を実現する。また、このIP電話8000に内蔵されたパケット通信装置としての2チャンネルイーサネット通信装置(2 Channel Ethernet)800は、2チャンネル分の通信路(通信手段)を備えており、各チャンネルの通信路はそれぞれPHY(PHYsical layer transceiver)810a,810bを介してイーサネット820a,820bに接続されている。イーサネット820aは上流側のインターネット(Internet)やイントラネット(Intranet)などのWAN(Wide Area Network)と接続するHUB装置8100と接続されており、HUB装置8100及びWANを介して、IP電話8000bおよびホームページデータを保持しているデータセンサ8200に接続されている。また、イーサネット820bは下流側のイーサネット通信装置であるPC830に接続されている。各イーサネット820a,820bはそれぞれ独立に動作可能に構成されており、HUB8100,IP電話8000a,PC830間は、規格IEEE802.3およびIEEE802.1Qに従ったイーサネットパケット(以下パケットと称する)を送受信することにより、IP電話8000a,8000b間及びPC830とデータセンタ8200間で通信ができるようになっている。この場合、IP電話8000a内にある2チャンネルイーサネット通信装置800は、パケットの送受信を行うとともに、イーサネット820a,820b間におけるパケット転送を行う機能を備えており、これにより、HUB8100とPC830との間で2チャンネル通信装置800を介して通信を行うことができる。
【0032】
また、IP電話8000aはイーサネット820aと820b間でパケットの転送機能を有しており、これにより、PC830は、IP電話8000a及びHUB8100介して、データセンタ8200とホームページなどのデータパケットのやり取りが可能である。
【0033】
一方、WANはベストエフォートであり、混雑するとパケットの伝播時間が長くなる。そのため、IP電話がやり取りする音声パケットの到着の遅れにより、受話器から聞こえる相手の声に途切れやノイズが入り、聞きづらくなる。そこで、図28(b)に示すIEEE802.1Q規格に従った優先情報付きパケットを用い、音声パケットが優先してWAN内を流れることで、音声パケットのやりとりのリアルタイム性を向上させ、ストレスのない会話を実現する。しかし、この優先情報付きパケットは、図28(a)に示すIEEE802.3規格に従った一般のイーサネットパケットに比べ、4バイト分長い。このため、イーサネット通信装置には、この優先情報付きパケットを送受信できないものも多く、IP電話の先についているPC830が、受信できないことも容易に予想できる。
【0034】
そこで、IP電話8000a内蔵の2チャンネルイーサネット通信装置800は、HUB8100から来たパケットをPC830に転送する際に、図28(b)に示す優先情報付きパケットから図28(a)に示す通常パケットに変換する機能を持つ。
【0035】
また、2チャンネルイーサネット通信装置800は、PC830が優先情報付きパケットを受信できるかどうか調べる手段を有する。具体的には、2チャンネルイーサネット通信装置800は下流のデバイスであるPC830に対し、優先情報付きパケットを送信する。PC830は優先情報パケット送受信可能ならば、当該優先情報つきパケットに対して応答を返すことができる。そのため、2チャンネルイーサネット通信装置800は、下流デバイス(PC830)から応答があれば、PC830は優先情報パケットの送受信可能と、また、応答がなければPC830は送受信不可能のため、通常パケットへの変換が必要と判断する。
【0036】
以上から、2チャンネルイーサネット通信装置800自身が、その結果に基づきパケット変換が必要ならば、HUB8100から来たパケットをPC830に転送する際に、優先情報付きパケットから通常パケットへのパケット変換を行う。
【0037】
2チャンネルイーサネット通信装置800は、図1に示すように、CPU1,メモリ2と、2チャンネルイーサネット通信モジュール4とそれらを接続するバス3から構成されている。上記2チャンネルイーサネット通信モジュール4は、バスI/F(インターフェース)回路400,2つのバッファ100a,100b,2つのMAC(Media Access Control)300a,300b及び内部にパケット変換回路250を有する転送判定回路200を備えて構成されており、MAC300aはPHY810aを介してイーサネット820aに、同様に、MAC300bはPHY810bを介してイーサネット820bに接続されている。バッファ100は、送信FIFO110,受信FIFO120,転送FIFO130から構成されており、転送FIFO130は、MAC300a,300b間でパケットを転送するために使用する。さらに、転送判定回路200は図6に示すように、パケット変換を双方向で行うため、セレクタ210,制御回路220,レジスタ230,CAM240及び、パケット変換回路250を2組持っており、バスI/F回路400,バッファ100内の受信FIFO110,送信FIFO120,転送FIFO130とは、図6に示すように接続されている。
【0038】
パケット変換回路250は、レジスタ230により設定されたモード及び、
CAM240の内容に従って、優先情報付きパケットから通常パケットへの変換及び、その逆の変換を行う。そのため、転送時のパケット変換は、2チャンネルイーサネット通信モジュール内でクローズして行われる。このレジスタ230及び、CAM240の設定内容は、電源投入時のデフォルト値はパケット変換を行わない設定となっている。CPU1が実行するメモリ2内のプログラム(図5参照)により、下流デバイスの優先情報付きパケットの送受信可能かどうか判定及び、レジスタ230,CAM240の設定が行われる。以上から、外部に特別な回路がなく、本2チャンネルイーサネット通信装置800内ですべてクローズして行うことが可能である。
【0039】
図28に示すとおり、優先情報付きパケットと通常パケットの違いは、Qtgagと呼ばれる4バイトの有無である。そこで、パケット変換回路250は、MAC300が受信した優先情報付きパケットのQtagのみを、転送FIFO130にいれずに破棄することで、通常パケットへの変換を実現する。
【0040】
さらに、先述の通りに、CAM240は図8に示すように、連想メモリ(または、RAMテーブル)を用いて構成されており、下流のデバイスの持つMACアドレス毎に、転送する際に優先情報付きパケットから通常パケットに変換するかどうかの情報を持つ。パケット変換回路250はMAC300が受信したパケットの宛先のMACアドレス(図28のDAフィールド値)を元に、CAM240を調べ、変換するかどうかを決定し、パケット変換を行う。
【0041】
ここで、通常パケット(図28(a))及びQtag付きパケット(図28(b))のフレーム構成について説明する。
【0042】
Qtag付きパケットは図17(b)に示すとおり、パケットの始まりを示す7バイト長のPR(Preamble)と1バイト長のSFD(Start Frame Delimeter)と、宛先MACアドレスを保持する6バイト長のDA(Destination Address)フレーム,送信元MACアドレスを保持する6バイト長のSA(Source Address)フレーム,Qtag情報を保持する4バイト長のQtag(IEEE802.1Qtag)フレーム,データを保持する42〜1500バイト長のDataフレーム,Dataフレーム内のデータ長またはデータの種類を保持する2バイト長のL/T(Length/Type)フレーム、及び、本パケットが正しく受信できたかどうかを確認するための符号を保持する4バイト長のFCS(Frame Check Squence)、以上6つのフレームから構成され、パケット長は64バイト〜1522バイトとなる。
【0043】
このQtagフレームは、IEEE802.1Qにて規定されたQtagであることを示す2バイトのコード0x8100(0xは16進数を示す記号)とタグ制御情報を保持する2バイトのTCI(Tag Control Information)から構成されており、このTCIにはパケットの優先順位情報や、仮想LAN(Local AreaNetwork)で使用するLAN番号を保持されている。なお、このTCIに関する詳しい情報は、IEEE802.1Qの規格書にあり、本発明とは関係が無いので、ここでは割愛する。
【0044】
一方、通常パケットは、Qtag付きパケットからQtagフレームを除いた、7バイト長のPRフレーム,1バイト長のSFD,6バイト長のDAフレーム,6バイト長のSAフレーム,2バイト長のL/Tフレーム,46〜1500バイト長のDataフレーム、及び、4バイト長のFCSフレーム、以上5つのフレームから構成されており、パケット長は64バイト〜1518バイトとなり、Qtag付きパケットと通常パケットの違いは、Qtagフレームの有無だけである。なお、通常パケットのDataフレームが46バイト長〜とQtag付きパケットより4バイト長いのは、イーサネットの規格であるIEEE802.3にて、パケット長は64バイト以上と規定されているからである。
【0045】
また、PRフレーム,SFDフレーム,FCSフレームは、イーサネット上でパケットを正しく送受信するためのフレームであり、パケット通信内容とは関係なく、MAC300a,300bがパケットの送出をする時に付加し、受け取った時は、パケットから切り離して出力する。
【0046】
以下、2チャンネルイーサネット通信装置800の具体的構成について説明する。
【0047】
2チャンネルイーサネット通信装置800は、図1に示すように、複数の通信手段が送信するためのパケットを生成すると共に、その複数の通信手段が受信したパケットを処理するパケット生成処理手段であるCPU1と、メモリ2と、2チャンネルイーサネット通信モジュール(以下2チャンネル通信モジュールと称する)4と、それらを互いに接続するバス3から構成されている。2チャンネル通信モジュール4は、バスI/F(インターフェース)回路400,2つのバッファ100a,100b、複数の通信手段、本実施例では2つのイーサネットMAC(Media Access Control、以下MACと称する)300a,300b,転送判定回路200を備えて構成されており、MAC300aはPHY810a,イーサネット820aを介して通信装置830aに接続され、通信装置830aとパケットの送受信を行うようになっている。すなわち、MAC300aは、PHY810a,イーサネット820aを介して、通信対象としての通信装置830aとパケットの送受信を行う通信手段として構成されている。
【0048】
一方、MAC300bはPHY810b,イーサネット820bを介して通信装置830bに接続され、通信装置830bとパケットの送受信を行うようになっている。すなわち、MAC300bはPHY810b,イーサネット820bを介して、通信装置830bを通信対象としてパケットの送受信を行う通信手段として構成されている。
【0049】
この場合、複数の通信手段であるMAC300a,300bが送受信するパケットは、2チャンネル通信モジュール4及び2チャンネルイーサネット通信装置800では、送信,受信,転送の3種類のパケットに分類される。そこで、以下、混乱を避けるため、2チャンネルイーサネット通信装置800及び2チャンネル通信モジュール4がパケットを送受信する場合を送信(送信する),受信(受信する),送受信(送受信する)と呼び、MAC300a,300bがパケットを送受信する場合を、パケットを送出(送出する),受取(受け取る),送受と呼ぶことにする。
【0050】
メモリ2には、図5に示すように、CPU1が実行するプログラム20a,プログラム20aの実行状態を保持するワークエリア20b,2チャンネルイーサネット通信装置800がイーサネット820a,(820b)へ送信するためのパケットを保持する送信ディスクリプタ21a,(21b),イーサネット820a,(820b)から受信したパケットを保持する受信ディスクリプタ22a,
(22b)を備えて構成されている。
【0051】
一方、CPU1は、バス3を介して、メモリ2及び2チャンネル通信モジュール4にアクセスし、メモリ2に書き込まれたプログラム20aを実行し、2チャンネル通信モジュール4の状態(レジスタ)をアクセスし、メモリ2内の受信ディスクリプタ22a,22bにそれぞれ保持された受信パケットを読み込んで処理するとともに、送信パケットを生成し、生成した送信パケットをメモリ2内の送信ディスクリプタ21a,21bに書き込むように構成されている。
【0052】
すなわち、CPU1は、MAC300a,300bが送出する送信パケットを生成するとともに、MAC300a,MAC300bが受け取ったパケットを処理するパケット生成処理手段として構成されている。
【0053】
図6に、バスI/F回路400,バッファ100a,100b及び転送判定回路200の具体的構成を示す。バスI/F回路400は、入出力バッファ440,セレクタ430,入出力バッファ440及びセレクタ430を制御する制御回路410,レジスタ420を備えて構成されており、セレクタ430は、バッファ100a,100bの受信FIFO(First In First Out)110a,110bの出力によるパケットを選択し、選択したパケットを入出力バッファ440に出力するようになっている。入出力バッファ440はバス3からのパケットをバッファ100a,100bの送信FIFO120a,120bに出力するように構成されている。すなわち、制御回路410は、メモリ2内にある送信ディスクリプタ21a,21bを監視し、CPU1により、送信ディスクリプタ21a,21bにパケットが登録された時には、入出力バッファ440を入力状態として、送信ディスクリプタ21a(21b)に登録されたパケットをバス3を介して送信FIFO120a(120b)に転送する。
【0054】
同様に、制御回路410は、受信FIFO110a,110bにパケットが書き込まれた時には、入出力バッファ440を出力状態とし、セレクタ430に受信FIFO110a,110bの出力によるパケットを選択させ、選択されたパケットをバス3を介してメモリ2内の受信ディスクリプタ22a,22bに転送する。
【0055】
バッファ100a,100bは、それぞれ受信したパケットを一時的に保持する受信FIFO110a,110b、送信するパケットを一時的に保持する送信FIFOを120a,120bを備えているとともに、MAC300aとMAC300bとの間でパケットを転送するために使用する転送FIFO130a,130bを備えて構成されている。すなわち、転送FIFO130a,130bは、通信装置830aと830bとの間で相互に情報の授受を行うための転送用パケットを保持する転送用バッファ手段として構成されており、転送FIFO130aには通信装置830aから通信装置830bに転送するための転送用パケットが保持され、転送FIFO130bには、通信装置830bから通信装置830aに転送するための転送用パケットが保持されるようになっている。
【0056】
転送判定回路200は、セレクタ210a,210bと、バッファ100a,100bを制御するための制御回路220a,220bと、転送判定回路200の状態を保持するレジスタ230a,230bと、MAC300a,300bが受け取ったパケットを2チャネルイーサネット通信装置800および2チャネル通信モジュール4が受信するかあるいは他方のMAC300aまたはMAC300bに転送するか否かの判定情報を保持し、転送用パケットの送信元と宛先の通信対象に応じてパケット変換モードを設定する転送パケット変換モード決定手段であるCAM(Content Addressable Memory)240a,240bと、送信FIFO120aと転送FIFO130bからのパケットのうちいずれかのパケットを選択してMAC300aに出力するセレクタ210aと、送信FIFO120bと転送FIFO130aからのパケットのうちいずれかのパケットを選択してMAC300bへ出力するセレクタ210bと、MAC300a,MAC300bが受け取ったパケットを転送するため、通常パケットからQtag付きパケットヘの変換、または、Qtag付きパケットから通常パケットへの変換を行うパケット変換回路250a,250bとを備えて構成されている。
【0057】
レジスタ230a,230bは、図7に示すように、4本のレジスタかR2301,R2310,R2311,R2312から構成されている。レジスタR2301は、MAC300a,300bが受け取ったパケットの宛先MACアドレスがCAM240a,240bに未登録だった場合の処理(受信,転送,受信&転送,破棄)を設定するレジスタである。また、レジスタR2310,R2311,R2312は、パケット変換に関する設定レジスタである。レジスタR2310は、パケット生成手段であるCPU1においてMAC300aとMAC300b間の転送する際のパケット変換のモード(Qtag挿入,削除,そのまま転送)を設定可能なパケット変換モードレジスタである。また、レジスタR2311は、CPU1が設定可能な優先度情報を持たないパケットから優先度情報を持ったQtagをMAC300に挿入して転送する際のQtag値を設定するレジスタ。また、レジスタR2312は、Qtagフレームを検出する2バイトコードを設定する(ここでは、0x8100:16進数表記)。なお、レジスタ230a内のレジスタR2310はMAC300aからMAC300bへの転送を、同様にレジスタ230bはMAC300bからMAC300aへの転送を設定している。
【0058】
ここで、レジスタR2312にQtagフレームを示すコード0x8100
(16進数表記)を設定するとともに、レジスタR2311にQtagフレームを示すコードを含めるのは、Qtagフレーム以外のフレームの挿入追加を行うことも可能とするためである。また、Qtag専用とする場合には、R2311及びR2312の0x8100の部分を固定値とし、さらに、CPU1から読めなくしても同じことである。
【0059】
CAM240a,240bは連想メモリと呼ばれる特殊なメモリで構成されており、図8に示すように、各エントリには各MACアドレスと、それに対応して、受信,転送,受信&転送,破棄するかの処理情報と、及びワークエリアが設けられ、アドレスの変わりにMACアドレスを入力として、入力MACアドレスと一致するMACアドレスを持つエントリの当該処理情報を出力するようになっている。また、ワークエリアはCPU1が、エントリの更新を行う際に使用する。また、複数のエントリでMACアドレスの一致が発生した場合、index番号が一番若いエントリの処理番号の当該処理情報を出力する。このCAM240a,240bのエントリの設定及び更新はCPU1により行われる。
【0060】
上記構成によるCAM240a,240bは、MAC300a,300bが受け取ったパケットをそのパケットの宛先MACアドレスから受信,転送,受信&転送,破棄のいずれかを判定するために使われる。
【0061】
すなわち、図2に示す通信システムが構築された際には、通信装置830a,通信装置830b,2チャンネルイーサネット通信装置800に対して、それぞれ各装置の固有のアドレスとして、MACアドレスが設定されており、各通信装置は、パケットを送りたい通信装置のMACアドレスを宛先MACアドレスとして、パケットを生成することにより通信が可能となる。それゆえ、CAM240a,240bは、宛先MACアドレスをベースに、受信・転送を設定することが可能となる。
【0062】
例えば、index0のMACアドレスが2チャネルイーサネット通信装置800に入力されたときには、このパケットは通信装置830aまたは通信装置830bに転送すべきパケットであると判定され、indexNに対応したMACアドレスのパケットの場合には2チャネルイーサネット通信装置800が受信すべきパケットであると判定することができる。この際、一致するMACアドレスを持つエントリがなかった場合は、レジスタR2301により、受信,転送,受信&転送,破棄のいずれかを設定することになる。
【0063】
また、上記実施例ではMAC300a,300bが受け取ったパケットを受信,転送,受信&転送、または破棄するかを設定するために使用するCAMは、CAM240a,240bの2つ存在するが、これを1つにまとめてCAM240とすることも可能である。
【0064】
パケット変換回路250a,250bは、図9に示すとおり、バッファ2510とカウンタ2520を備えて構成されている。バッファ2510は、MAC300a,300bが受け取ったパケットを受信FIFO110a,110b、または転送FIFO130a,130bに入れる際に、パケットの一部を一時的に保持するバッファである。
【0065】
また、カウンタ2520は、MAC300a,300bが受け取ったパケットをバイト単位でカウントするカウント手段であり、図18に示す通常パケット及びQtag付きパケットを構成する各フレームを切り分け、Qtagフレームの有無を認識及び、パケット変換時のQtagフレームの挿入及び削除を行うために使用する。
【0066】
上記構成による転送判定回路200において、転送制御手段である制御回路220a,(220b)は、MAC300a,(300b)が受け取った受信パケットが転送用パケットであると判定したときは、その受信パケットを転送FIFO130a,(130b)に出力するとともに、CPU1が生成した送信パケットの宛先の通信対象であるEthernet通信装置830a,830bに対応したMAC300a,(300b)および転送FIFO130a,(130b)に保持された転送用パケットの宛先のEthernet通信装置830a,830bに対応したMAC300a,(300b)に出力する。具体的には、制御回路220a,(220b)は、MAC300a,(300b)が受け取ったパケットを受信,転送,受信&転送,破棄するかをCAM240a,(240b)に問い合わせて決定する。受信する場合には、受信FIFO110a,(110b)に、転送する場合には、転送FIFO130a,(130b)に、受信&転送する場合には、受信FIFO110a,(110b)と転送FIFO130a,(130b)の両方に、MAC300a,(300b)が受け取ったパケットを書き込む。破棄する場合には、受信FIFO110a,(110b),転送FIFO130a,(130b)のいずれにも当該パケットを書き込まず、そのまま破棄する。
【0067】
また、制御回路220a,(220b)は、レジスタ230a,230b内のレジスタR2310の設定値に基づき、図10に示す表にしたがって、転送FIFO130a,130bに書き込む際、カウンタ2520を用いて、パケットを構成する各フレームを認識し、Qtag付きパケットから通常パケットへの変換は、Qtagフレームを転送FIFOに書き込まないことで、また、通常パケットからQtagパケット変換は、Qtagフレームを挿入して転送FIFOに書き込むことで実現する。
【0068】
これにより、MAC300a,300bが受け取ったパケットを転送FIFO130a,130bに書き込むと同時にパケット変換が行われるため、パケット変換によるオーバーヘッド0にすることが可能となる。なお、通常パケットからQtag付きパケットへの変換の際に挿入されるQtagフレームのQtag値は、レジスタR2311に設定されたQtag値を使用する。
【0069】
また、制御回路220a,220bは、セレクタ210a,210bの切り替えを行い、MAC300a,300bが送信FIFO120a,120bに保持されたパケットを送出するか、転送FIFO130a,130bに保持されたパケットを送出するかを選択する。
【0070】
次に、パケットの送信処理を図11にしたがって説明する。2チャネルイーサネット通信装置800および2チャネル通信モジュール4において、パケットの送信を行うに際しては、2チャネル通信モジュール4がCPU1の起動を受けたときに、バスI/F回路400の制御回路410の制御により、メモリ2にある送信ディスクリプタ21a,(21b)から送信パケットを読み出し、送信FIFO120a,(120b)に書き込み、当該パケットデータを送信FIFO120a,(120b)から読み出してイーサネット820a,(820b)に送出する。
【0071】
次に、パケットの受信および転送処理は、図12に示すように、MAC300a,(300b)がパケットを受け取ると、転送判定回路200がパケットの宛先MACアドレスを調べ、CAM240a,(240b)を用いて、受信すべきパケットか転送すべきパケットかを判断する。受信すべきパケットであると判断したときには、当該パケットを受信FIFO110a,(110b)に書き込む。これを受けてバスI/F回路400が受信FIFO110a,(110b)から当該パケットを読み出し、このパケットをバス3を介してメモリ2内の受信ディスクリプタ22a、(22b)に書き込む。
【0072】
一方、パケットを転送する場合には、転送判定回路200は、MAC300a,(300b)が受け取ったパケットをパケット変換するか判断し、必要ならばパケット変換を行い、転送FIFO130a,(130b)に書き込む。それを受けて、MAC300b,(300a)は転送FIFO130a,(130b)から当該パケットを読み出し、イーサネット820b,(820a)にそれぞれ送出する。
【0073】
なお、パケット変換回路250がなく、CPU1でパケット変換を行う場合、転送されるパケットのうちパケット変換が不要なパケットは、図12に示すとおり、転送FIFO130a,(130b)を介して、そのまま転送することが可能である。一方、転送されるパケットのうちパケット変換を要するパケットは、図13に示すとおり、CPU1によりパケット変換を行うため、受信FIFO110a,(110b)を介して、パケット変換が必要な転送パケットであるという情報を付加し、メモリ2内の受信ディスクリプタ22a,(22b)に書き込まれる。それを受けて、CPU1は、受信ディスクリプタ22a,(22b)から読み出し、パケット変換を行い、送信ディスクリプタ21a,(22b)に書き込み、2チャンネル通信モジュール4に起動をかける。このとき、CPU1は、Qtagフレームの追加または削除を行うだけ、パケットの他のフレームには一切変更を加えない。
【0074】
それを受けて、2チャンネル通信モジュール4は、パケット変換を行ったパケットを送信ディスクリプタ21a,(22b)から読み出し、送信FIFO120a,(120b)に書き込み、MAC300a,(300b)は当該パケットを送信FIFO120a,(120b)から読み出して、イーサネット820a,
(820b)に送出する。
【0075】
そのため、パケットの移動数は、MAC300→受信FIFO110→受信ディスクリプタ22→CPU1での処理→送信ディスクリプタ21→送信FIFO120→MAC300へと6回を数え、オーバーヘッドが大きい。さらに、CPU1によるパケット変換が必要となり、パケット変換を要する転送すべきパケット数が多くなると、CPU負荷が増大し処理しきれず、本来受信すべきパケットに対する処理の遅れが生じ、フロー制御の起動や、上記当該転送すべきパケットに加え、受信パケットの破棄も発生する。特にパケットの破棄が発生すると、パケットの再送要求が発生し、イーサネットの効率が低下するとともに、CPU自体の処理能力も低下してしまう。
【0076】
そこで、本発明では、転送すべきパケットに対し、そのまま転送するパケットはもちろん、パケット変換を要するパケットについても、転送判定回路200内で行い、転送処理に関するCPUの負荷0を実現するとともに、MAC300a,(300b)が受け取った転送すべきパケットを転送FIFO130a,(130b)に書き込む際に同時にパケット変換を行うことで、パケット変換による転送におけるオーバーヘッド0も実現している。
【0077】
以下、パケット転送時における、本実施の形態における転送判定回路200による変換処理を、図14〜図18を用いて説明する。図14にQtag付きパケットから通常パケットへの変換手順を示す。なお、MAC300aが送出及び受信するパケットに対しては、セレクタ210a,制御回路220a,レジスタ230a,CAM240a、及びパケット変換回路250aを用いて、また、MAC300bが送出及び受信するパケットに対しては、セレクタ210b,制御回路220b,レジスタ230b,CAM240b、及びパケット変換回路250bを用いて、処理されるため、以下各記号には、a,bを除いて記載する。
【0078】
(a)MAC300がパケットの受け取りを開始すると、パケットデータが次々とバッファ2510に送られる。それを受け、制御回路220は、カウンタ2520のカウント値を0にリセットし起動させる。なお、カウンタ2520はMAC300から送られてくるパケットデータの総バイトをカウントしている。カウンタ2520がDAフレーム長である6バイトに達したところで、DAフレーム保持された宛先MACアドレスをCAM240に問い合わせ、その結果と、レジスタ230内のレジスタR2301の値から、受信,転送,受信&転送、及び、破棄かを判定し、この判定を元に、パケットの書き込み先を決定する。書き込み先は、受信の場合は受信FIFOに、転送の場合は転送FIFO,受信&転送の場合は、受信FIFOと転送FIFO、最後に破棄の場合には書き込み先なしとなり、図14の場合は、転送、または、受信&転送場合の転送FIFOに関するところである。
【0079】
(b)制御回路220は、DAフレームは転送FIFO130に書き込み、続く、バッファ2510に入ってくるSAフレームも転送FIFO130に書き込む。カウンタ値が12バイトに達したところで、バッファ2510には、続いて、Qtagフレームが入っている。さらにカウンタ値が14バイトに達したところで、制御回路220は、この2バイトを用いて、SAフレームの次がQtagフレーム(Qtag付きパケット)かL/Tフレーム(通常パケット)かを判定する。この2バイトがレジスタR2312で設定された値である0x8100(16進数表記)の場合はQtagフレーム、それ以外は、L/Tフレームと判断する。図14では、Qtagフレームが入ってきており、制御回路220は、MAC300が受け取っているパケットがQtag付きパケットと判断する。
【0080】
(c)制御回路220は、レジスタ230内のレジスタR2310を元に、転送する際にパケット変換が必要かどうか図10を元に判断する。この場合は、通常パケットへの変換となるため、制御回路220は、このQtagフレーム分の4バイトを転送FIFO130への書き込みをスキップし、このQtagフレームを破棄する。
【0081】
(d)カウンタ値が16バイトに達すると、つぎは、L/Tフレーム,Dataフレームとなり、制御回路220は、バッファ2510のデータをそのまま転送FIFO130に書き込む。なお、最後のFCSフレームについては、MAC300内で受け取ったパケットが正しいかどうかを判定するのに使用し、バッファ2510には転送されない。
【0082】
そのため、転送FIFO130内には、MAC300が受け取ったパケットを構成するフレームのうち、DA,SA,L/T,Dataの4つのフレームのみが書き込まれる。
【0083】
以上の処理により、MAC300が受け取ったQtag付きパケットが、オーバーヘッド0で、転送FIFO130に書き込まれる間に通常パケットに変換される。
【0084】
続いて、図15に、通常パケットからQtag付きパケットに変換される過程を説明する。
【0085】
(a)MAC300がパケットの受け取りの開始をうけ、制御回路220はカウンタ2520のカウンタ値をリセットし、起動させる。図14と同様にカウンタ値が6バイトに達したところで、制御回路220は、宛先MACアドレスをCAM240に問い合わせ、書き込み先のFIFOを決定する。図15の場合は、転送、または、受信&転送場合の転送FIFOに関するところである。
【0086】
(b)制御回路220は、バッファ2510内のDAフレームを転送FIFO130に書き込み、続く、SAフレームも、転送FIFO130に書き込む。カウンタ値が12バイトに達したところで、バッファ2510には、続いて、L/Tフレームが入ってくる。
【0087】
さらにカウンタ値が14バイトに達したところで、制御回路220は、この2バイトを用いて、L/Tフレームであることを判定し、MAC300が受け取っているパケットが通常パケットであると判断する。
【0088】
(c)制御回路220は、レジスタR2310からQtag付きパケットへの変換が必要と判定し、レジスタR2511で設定されているQtag値を転送
FIFO130に書き込み、Qtagフレームの挿入処理を行う。
【0089】
(d)制御回路220は、バッファ2510内のL/Tフレームに続いて、
Dataフレームも転送FIFO130に書き込む。これにより、Qtagフレームが挿入されたQtag付きパケットが転送FIFO130に書き込まれる。
【0090】
以上の処理により、MAC300が受け取った通常パケットが、オーバーヘッド0で、転送FIFO130に書き込まれる間にQtag付きパケットに変換される。
【0091】
図16,図17は、それぞれ、Qtag付きフレーム及び通常フレームが、変換されずにそのまま転送する場合である。
【0092】
(a)MAC300がパケットの受け取りの開始をうけ、制御回路220はカウンタ2520のカウンタ値をリセットし、起動させる。図14,図15と同様にカウンタ値が6バイトに達したところで、制御回路220は、宛先MACアドレスをCAM240に問い合わせ、書き込み先のFIFOを決定する。図16,図17の場合は、転送、または、受信&転送場合の転送FIFOに関するところである。
【0093】
(b)制御回路220は、バッファ2510内のDAフレームを転送FIFO130に書き込み、続く、SAフレームも、転送FIFO130に書き込む。カウンタ値が12バイトに達したところで、バッファ2510には、続いて、Qtagフレーム(L/Tフレーム)が入ってくる。
【0094】
さらにカウンタ値が14バイトに達したところで、制御回路220は、この2バイトを用いて、Qtagフレーム(L/Tフレーム)であることを判定し、MAC300が受け取っているパケットがQtag付きパケット(通常パケット)であると判断する。
【0095】
続いて、制御回路220は、レジスタR2310から変換不要と判定し、つづく、Qtagフレーム,L/Tフレーム,Dataフレーム(L/Tフレーム,Dataフレーム)転送FIFO130に書き込む。
【0096】
以上により、MAC300が受け取ったパケットがそのまま転送FIFO130に書き込まれる。
【0097】
また、パケットを受信する際には、MAC300a,(300b)に受け取ったパケットは受信FIFO110a,(110b)に書き込まれる。受信する際にはパケット変換が行われないため、そのまま転送時の図16,図17と同じ動作であり、ただ、書き込まれる先が転送FIFO130から受信FIFO110に変わっただけである。
【0098】
以上により、転送判定回路200は、転送時のパケット変換(Qtag付きパケット→通常パケット,通常パケット→Qtag付きパケット)をCPUへの負荷なしに実現するとともに、パケット変換によるオーバーヘッドも0で実現できる。
【0099】
次に、このパケット変換方式の別の実施例として、MAC300a,300bが受け取った通常パケットをQtag付きパケットに変換して転送FIFO130a,130bに書き込む際、挿入するQtag値を当該通常パケットの送信元または宛先のMACアドレスにより決定する場合を示す。2チャンネルイーサネット通信装置800及び2チャンネル通信モジュール4の構成は先述の実施例と同じ図1,図5であり、異なるのは、レジスタ230a,230bと、パケット変換回路250と、それに伴う転送判定回路200の動作のみである。
【0100】
レジスタ230a,230bは、図20に示すように、先の実施例(図9)で使用したレジスタR2301,R2310,R2311,R2312に、2本のレジスタR2313,R2314を新たに加えた。レジスタR2313は、MAC300aとMAC300bとの間で転送する際に、パケット変換モード及び、通常パケットからQtag付きパケットへの変換時に挿入するQtag値を求めるために、当該パケットの送信元,宛先のMACアドレスのどちらを用いて、CAM2530に問合せを行うかを設定するレジスタである。なお、レジスタR1310により設定されたパケット変換モードは、レジスタR2313により設定された当該パケットの送信元または宛先MACアドレスがCAM2530に未登録だった場合のパケット変換モード及びR2311により設定された挿入Qtag値は、送信元または宛先MACアドレスがCAM2530に未登録であった場合、または、CAM2530に登録されたQtag情報が無効であった場合に挿入Qtag値として使用する。
【0101】
図21にパケット変換回路250の構成を示す。パケット変換回路250は、バッファ2510とカウンタ2520及びCAM2530から構成されている。バッファ2510は、MAC300a,300bが受け取ったパケットを受信FIFO110a,110b、と転送FIFO130a,130bのいずれか一方か両方に書き込む際に、パケットの一部を一時的に保持する。また、カウンタ2520は、当該パケットをバッファ2510に取り込んだバイト数をカウントする。このカウンタ2520のカウント値を使用して、転送制御回路220a,220bが、MAC300a,300bが受け取ったパケットのフレーム構成を解析し、通常パケットかQtag付きパケットであるかを判定すると共に、Qtag付きパケットから通常パケットに変換する際には、Qtagフレームの書き込みをスキップすることで、また、通常パケットからQtag付きパケットへの変換は、Qtagフレームの挿入ポイントを検出し、Qtagフレームを挿入するために使用する。
【0102】
最後に、CAM2530は、連想メモリと呼ばれる特殊なメモリであり、図22に示すように、各エントリには、各MACアドレスと、それに対応して、パケット変換モード情報(通常パケットからQtag付きパケットへの変換と、Qtag付きパケットから通常パケットへの変換,そのまま転送,レジスタR2310による設定に従う)と、通常パケットからQtag付きパケットに変換する際に挿入するQtagフレームに設定するQtag情報(Qtag値が有効であるかを示すVビットと、Qtag値本体)と、ワークエリアが設けられ、アドレスの代わりにMACアドレスを入力として、入力されたMACアドレスと一致するMACアドレスを持つエントリの当該情報を出力するようになっている。また、ワークエリアはCPU1がエントリの更新を行う際に使用される。
【0103】
また、複数のエントリでMACアドレスが一致した場合は、index番号が一番若いエントリの当該情報を出力する。このCAM2530のエントリの設定及び更新はCPU1により行われる。
【0104】
以下、転送判定回路200によるパケット転送時のパケット変換処理の内容を、図12を用いて説明する。なお、MAC300aが送出及び受信するパケットに対しては、セレクタ210a,制御回路220a,レジスタ230a,CAM240a、及びパケット変換回路250aを用いて、また、MAC300bが送出及び受信するパケットに対しては、セレクタ210b,制御回路220b,レジスタ230b,CAM240b、及びパケット変換回路250bを用いて、処理されるため、以下各記号には、a,bを除いて記載する。
【0105】
(a)MAC300がパケットの受取を開始すると、パケットデータが次々とバッファ2510に送られる。それを受け、制御回路220は、カウンタ2520のカウント値を0にリセットし起動させる。なお、カウント2520はMAC300から送られるパケットデータのバイト数をカウントしている。カウンタ2520がDAフレーム長である6バイトに達したところで、DAフレームに保持された宛先MACアドレスをCAM240に問合せ、その結果と、レジスタ230内のレジスタR2301の値から、当該パケットを受信,転送,受信&転送、または、破棄かを判定し、その判定を元に、パケットの書き込み先を決定する。書き込み先は、受信の場合は受信FIFO110、転送の場合は転送FIFO130、受信&転送の場合は、受信FIFO110と転送FIFO130の両方に、最後に破棄の場合は、書き込み先なしとなる。
【0106】
(b)(a)で、制御回路220は、当該パケットを転送または、受信&転送と判断すると、続いて、レジスタR2313の値から、当該パケットの転送モード及び挿入Qtag値を求めるために、宛先MACアドレスと送信元MACアドレスのどちらを用いて、CAM2530に問い合わせるかを判定する。宛先MACアドレスの場合は、DAフレームが保持する宛先MACアドレスを用いて、CAM2530に問合せ、その結果と、レジスタR2310の値から、当該パケットのパケット変換モードを、及び、CAM2530に問い合わせた結果と、レジスタR2311の値から、挿入するQtag値を決定し、DAフレームを転送FIFO130に書き込み、続く、SAフレームも転送FIFO130に書き込む。また、レジスタ2313の値から、送信元MACアドレスを用いてCAM2530に問い合わせる場合は、DAフレームを転送FIFO130に書き込み、続く、SAフレームがバッファ2510に入ってくるのを待つ。カウンタ2520のカウント値が12バイトに達したところで、制御回路220は、SAフレームに保持された送信元MACアドレスを用いてCAM2530に問合せ、その結果とレジスタR2310とR2311の値から、当該パケットのパケット変換モードと挿入するQtag値を決定し、SAフレームを転送FIFO130に書き込む。
【0107】
なお、ここで決定するパケット変換モードは、Qtag付きパケット変換転送モード,通常パケット変換転送モード,変換なし転送モードの3種類である。
【0108】
(c)続いて、バッファ2510には、当該パケットがQtag付きパケットならばQtagフレームが、通常フレームならばL/Tフレームが入ってくる。さらにカウンタ2520のカウント値が14バイトに達したところで、制御回路220は、この2バイトを用いて、この2バイトがレジスタR2312で設定された値である0x8100(16進数表記)の場合は続くフレームがQtagフレームであると、また、それ以外の場合はL/Tフレームと判定する。その判定結果がQtagフレームの場合、当該パケットがQtag付きパケットと、また、L/Tフレームの場合は通常フレームと判定する。その判定結果に基づき、制御回路220は、当該パケットの種類と(b)で決定したパケット変換モードから、図10示す、パケット変換内容(変換せずそのまま転送,通常パケットに変換し転送,Qtag付きパケットに変換し転送)を決定する。
【0109】
(d−1:変換せずそのまま転送)当該パケットがQtag付きパケットの場合、制御回路220はバッファ2510内のQtagフレーム、及び続いてバッファ2510に入ってくるL/Tフレーム,Dataフレームを転送FIFO130に書き込む。また、当該パケットが通常パケットの場合、制御回路220はバッファ2510内のL/Tフレーム、及び、続いてバッファ2510に入ってくるDataフレームを転送FIFOに書き込む。これにより、MAC300が受け取ったパケットは転送FIFO130にそのまま変換せずに書き込まれる。
【0110】
(d−2:通常パケットに変換し転送)当該パケットはQtag付きパケットであり、制御回路220はバッファ2510内2バイトを含め、カウンタ2520のカウンタ値が16バイトになるまで、転送FIFO130への書き込みをスキップし、Qtagフレームを破棄する。続いてバッファ2510に入ってくるL/Tフレーム,Dataフレームを転送FIFO130に書き込む。これにより、MAC300が受け取ったQtag付きパケットは、Qtagフレームのみが破棄された通常パケットに変換され、転送FIFO130に書き込まれる。
【0111】
(d−3:Qtag付きパケットに変換し転送)当該パケットは通常パケットであり、制御回路220は、(b)で判定したQtag値を持つQtagフレームを転送FIFO130に書き込み、その後、バッファ2510内の2バイト(L/Tフレーム)を含め、続いてバッファ2510に入ってくるDataフレームを転送FIFO130に書き込む。これによりMAC300が受け取った通常パケットは、CAM2530及びレジスタR2311により決定したQtagを持つQtagフレームが挿入されたQtag付きパケットに変換され、転送FIFO130に書き込まれる。
【0112】
また、(a)にて受信または受信&転送と判定された場合には、バッファ2510に入ってくる各フレームをそのまま受信FIFO110に書き込み、MAC300が受け取ったパケットがそのまま受信FIFO110に書き込む。
【0113】
以上により、MAC300a,300bが受け取ったパケットの送信元または宛先のMACアドレスに応じて、パケット変換モードや、Qtag付きパケットに変換する際に挿入されるQtag値を設定することが可能となる。
【0114】
最後に、このパケット変換方式のもうひとつの実施例として、パケット通信装置800が受信するパケットを通常パケットに変換と、パケット通信装置800が送信する通常パケットをQtag付きパケットに変換、及び転送するパケットに対して、転送判定装置200がパケット変換を行うことで、CPU1上で実行されるパケット生成処理プログラムが、Qtag付きパケットを生成及び処理できない時に、パケット通信装置800がQtag付きパケットの送信,受信、及び転送を実現する方法である。
【0115】
2チャンネルイーサネットパケット通信装置800及び2チャンネル通信モジュール4の構成は、実施例と同じ図1,図5と同じであり、異なるのは、パケット変換回路250と、それに伴う転送判定回路200の動作のみである。
【0116】
また、パケット変換回路250は、MAC300a,300bが受け取ったパケットに対しては、受信FIFO110に書き込む際に、通常パケットに変換すると共に、MAC300a,300bが送信FIFO120及び転送FIFO130に保持されたパケットを送出するために読み出す際に、通常パケットまたは、Qtag付きパケットに変換する。これにより、パケット変換回路250は、当該パケットが送信FIFO120及び転送FIFO130のどちらからのパケットであるかを関係なく、パケット変換を行う。図24にパケット変換回路250の構成を示す。パケット変換回路250は、バッファ2510−1,2510−2,カウンタ2520−1,2520−2、及びCAM2530−1,2530−2から構成される。
【0117】
レジスタ230a,230bは、図23に示すように、先の実施例(図20)で使用したレジスタ5本のレジスタR2301,R2310〜2313に加えて、2本のレジスタR2314,2315を新たに加えた。レジスタR2315は、MAC300a,300bが受け取ったパケットを受信FIFO110a,110bに書き込む際に、受信パケット変換モードを求めるために、当該パケットの送信元,宛先のMACアドレスのどちらを用いて、CAM2530−1に問合せを行うかを設定するレジスタである。また、レジスタR2314は、レジスタR2315により設定された当該パケットの送信元または宛先MACアドレスがCAM2530に未登録だった場合の受信パケット変換モードを設定するレジスタである。
【0118】
また、レジスタR2310〜2312は、全てMAC300a,300bが送出するパケットに対するパケット変換に関する設定レジスタとなる。レジスタR2310及びレジスタR2311は、MAC300a,300bが送出するパケットに対するデフォルトの送出パケット変換モード(Qtag付きパケット送出モード,通常パケット送出モード,そのまま送出モード)及び、挿入するデフォルトQtagの値を設定するレジスタである。
【0119】
次に、パケット変換回路250に付いて説明する。
【0120】
なお、以下、パケット変換回路250a内の記号にはa、また250b内の記号にはbを付加する。バッファ2510−1a,(2510−1b)はMAC300a,(300b)が受け取ったパケットを、受信FIFO110a,(110b)、または転送FIFO130a,(130b)のいずれか一方または両方に書き込む際に、当該パケットの一部を一時的に保持するバッファである。また、バッファ2510−2a,(2510−2b)は、送信FIFO120a,(120b)または転送FIFO130b,(130a)に保持されたパケットをMAC300a,(300b)に出力する際に、当該パケットの一部を一時的に保持するバッファである。また、カウンタ2520−1a,(2520−1b)は、MAC300a,(300b)が受け取ったパケットをバッファ2510−1a,(2510−1b)に取り込んだバイト数をカウントし、カウンタ2510−2a,(2510−2b)は、送信FIFO120a,(120b)または転送FIFO130b,(130a)に保持されたパケットをバッファ2510−2a,(2510−2b)に取り込んだバイト数をカウントする。
【0121】
また、CAM2530−1a,2530−1b,2530−2a,2530−2bの構成は、先の実施例(図22)とであり、CAM2530−1a,2530−1bそれぞれ、MAC300a,300bが受け取ったパケットを受信する際に、パケットの送信元または宛先のMACアドレスに対して、パケット変換モードを出力し、CAM2530−2a,2530−2bは、それぞれ、MAC300a,300bが送出するパケットの送信元または宛先のMACアドレスに対して、パケット変換モード及び挿入するQtag情報を出力する。
【0122】
MAC300a,300bが受け取ったパケットを受信FIFO120に書き込む際に行われるパケット変換に関する受信パケット変換モードは、以下のように決定される。
【0123】
受信パケット変換モードは、レジスタR2315により設定された当該パケットの送信元または宛先のMACアドレスがCAM2530−1に登録されていた場合その登録された受信パケット変換モード(通常パケットに変換して受信,そのまま受信)を採用し、また、未登録の場合はレジスタR2314により設定された受信パケット変換モードを採用する。
【0124】
MAC300a,300bが送出するパケットに対して、送出パケット変換モード及び挿入するQtag値は下記のように決定される。
【0125】
パケット変換モードは、レジスタR2313により設定された当該パケットの送信元または宛先のMACアドレスがCAM2530−2に登録されていた場合その登録された送出パケット変換モード(通常パケットに変換して送出,Qtag付きパケットに変換して送出,そのまま送出)を採用し、また、未登録の場合はレジスタR2310により設定された送出パケット変換モードを採用する。
【0126】
また、挿入されるQtag値は、同様にレジスタR2313により設定された当該パケットの送信元または宛先のMACアドレスがCAM2530−2に登録されていた場合、その登録されたQtag情報が有効であった場合は、そのQtag情報に設定されているQtag値を採用し、それ以外(Qtag情報が無効、または、CAM2530に未登録)の場合は、レジスタR2313により設定されたQtag値を採用する。
【0127】
また、レジスタ230a,230bの設定内容及びパケット変換回路250a,250b内のエントリの設定及び更新はCPU1により行われる。
【0128】
以下、本実施例における転送判定回路200の動作を図25を用いて、パケットの受取処理及び、送出処理について説明する。なお、MAC300aが送出及び受信するパケットに対しては、セレクタ210a,制御回路220a,レジスタ230a,CAM240a、及びパケット変換回路250aを用いて、また、MAC300bが送出及び受信するパケットに対しては、セレクタ210b,制御回路220b,レジスタ230b,CAM240b、及びパケット変換回路250bを用いて、処理されるため、以下各記号には、a,bを除いて記載する。
【0129】
まず、パケットの受取処理について説明する。
【0130】
(a)MAC300がパケットの受取処理を開始すると、MAC300はパケットデータを次々とバッファ2510−1に送るのを開始する。それを受け、制御回路220aはカウンタ2520−1のカウント値を0にリセットし起動させる。なお、カウンタ2520−1はMAC300から送られるパケットデータのバイト数カウントしている。カウンタ2520−1がDAフレーム長である6バイトに達したところで、DAフレームに保持された宛先MACアドレスをCAM240に問合せ、その結果と、レジスタ230内のレジスタR2301の値から、当該パケットを受信,転送,受信&転送、または、破棄かを判定し、その判定を元に、パケットの書き込み先を決定する。書き込み先は、受信の場合は受信FIFO110、転送の場合は転送FIFO130、受信&転送の場合は、受信FIFO110と転送FIFO130の両方に、最後に破棄の場合は、書き込み先なしとなる。
【0131】
(b)(a)で、制御回路220は、当該パケットを受信または、受信&転送と判断すると、受信FIFO110に書き込む際のパケット変換受信モードを求めるために、レジスタR2315の値から、宛先MACアドレスと送信元MACアドレスのどちらを用いて、CAM2530−1に問い合わせるかを判定する。宛先MACアドレスの場合は、DAフレームが保持する宛先MACアドレスを用いて、CAM2530−1に問合せ、その結果と、レジスタR2314の値から、当該パケットのパケット変換モードを決定し、DAフレームを受信FIFO110に書き込み、続く、SAフレームも受信FIFO110に書き込む。
【0132】
また、レジスタ2315の値から、送信元MACアドレスを用いてCAM2530−1に問い合わせる場合は、DAフレームを受信FIFO110に書き込み、続く、SAフレームがバッファ2510−1に入ってくるのを待つ。カウンタ2520−1のカウント値が12バイトに達したところで、制御回路220は、SAフレームに保持された送信元MACアドレスを用いてCAM2530−1に問合せ、その結果とレジスタR2314の値から、当該パケットのパケット変換モードを決定し、SAフレームを受信FIFO110に書き込む。
【0133】
なお、ここで決定されるパケット変換受信モードは、通常パケット変換受信モード,変換なし受信モードの2種類である。
【0134】
(c)続いて、バッファ2510−1には、当該パケットがQtag付きパケットならばQtagフレームが、通常フレームならばL/Tフレームが入ってくる。そこで、カウンタ2520−1のカウント値が14バイトに達したところで、制御回路220は、この2バイトを用いて、この2バイトがレジスタR2312で設定された値である0x8100(16進数表記)の場合は続くフレームがQtagフレームであると、また、それ以外の場合はL/Tフレームと判定する。その判定結果がQtagフレームの場合、当該パケットがQtag付きパケットと、また、L/Tフレームの場合は通常フレームと判定する。その判定結果がQtagフレームの場合、当該パケットがQtag付きパケットと、また、L/Tフレームの場合は通常フレームと分かる。その判定結果に基づき、制御回路220は、当該パケットの種類と(b)で決定した受信パケット変換受信モードから、図26に示す、パケット変換内容(変換せずそのまま受信,通常パケットに変換し受信)を決定する。
【0135】
(d−1:変換せずそのまま転送)当該パケットがQtag付きパケットの場合、制御回路220はバッファ2510−1内のQtagフレーム、及び続いてバッファ2510−1に入ってくるL/Tフレーム,Dataフレームを受信FIFO110に書き込む。また、当該パケットが通常パケットの場合、制御回路220はバッファ2510−1内のL/Tフレーム、及び、続いてバッファ2510−1に入ってくるDataフレームを受信FIFO110に書き込む。これにより、MAC300が受け取ったパケットは受信FIFO110にそのまま変換せずに書き込まれる。
【0136】
(d−2:通常パケットに変換し転送)当該パケットはQtag付きパケットであり、制御回路220はバッファ2510−1内2バイトを含め、カウンタ2520−1のカウンタ値が16バイトになるまで、受信FIFO110への書き込みをスキップし、Qtagフレームを破棄する。続いてバッファ2510−1に入ってくるL/Tフレーム,Dataフレームを受信FIFO110に書き込む。これにより、MAC300が受け取ったQtag付きパケットは、Qtagフレームのみが破棄された通常パケットに変換され、受信FIFO110に書き込まれる。
【0137】
また、(a)にて転送または受信&転送と判定された場合には、バッファ2510−1に入ってくる各フレームをそのまま転送FIFO130に書き込み、MAC300が受け取ったパケットをそのまま転送FIFO130に書き込む。
【0138】
引き続いて、パケットの送出処理について説明する。
【0139】
(a)送信FIFO120及び転送FIFO130にパケットが書き込まれると、それを受けて、制御回路220は、カウンタ2520−2のカウント値を0にリセットし起動させるとともに、送信FIFO120及び転送FIFO130のどちらからパケットを読み出すかセレクタ210で指定し、読み出したパケットデータをバッファ2510−2への書き込みを開始する。なお、カウント2520−2は送信FIFO120または転送FIFO130から送られるパケットデータのバイト数をカウントしている。
【0140】
(b)カウンタ2520−2がDAフレーム長である6バイトに達したところで、制御回路220は、当該パケットを転送または、受信&転送と判断すると、続いて、レジスタR2313の値から、当該パケットの送出パケット変換モード及び挿入Qtag値を求めるために、宛先MACアドレスと送信元MACアドレスのどちらを用いて、CAM2530−2に問い合わせるかを判定する。宛先MACアドレスの場合は、DAフレームが保持する宛先MACアドレスを用いて、CAM2530−2に問合せ、その結果と、レジスタR2310の値から、当該パケットの送出パケット変換モードを、及び、CAM2530−2に問い合わせた結果と、レジスタR2311の値から、挿入するQtag値を決定し、DAフレームをMAC300に送る、続く、SAフレームもMAC300に送る。
【0141】
また、レジスタR2313の値から、送信元MACアドレスを用いてCAM2530−2に問い合わせる場合は、DAフレームをMAC300に送り、続く、SAフレームがバッファ2510−2に入ってくるのを待つ。カウンタ2520−2のカウント値が12バイトに達したところで、制御回路220は、SAフレームに保持された送信元MACアドレスを用いてCAM2530−2に問合せ、その結果とレジスタR2310とR2311の値から、当該パケットのパケット変換モードと挿入するQtag値を決定し、SAフレームをMAC300に送る。なお、ここで決定するパケット変換モードは、Qtag付きパケット変換モード,通常パケット変換モード,変換なしモードの3種類である。
【0142】
(c)続いて、バッファ2510−2には、当該パケットがQtag付きパケットならばQtagフレームが、通常フレームならばL/Tフレームが入ってくる。さらにカウンタ2520−2のカウント値が14バイトに達したところで、制御回路220は、この2バイトを用いて、この2バイトがレジスタR2312で設定された値である0x8100(16進数表記)の場合は続くフレームがQtagフレームであると、また、それ以外の場合はL/Tフレームと判定する。その判定結果がQtagフレームの場合、当該パケットがQtag付きパケットと、また、L/Tフレームの場合は通常フレームと判定する。その判定結果に基づき、制御回路220は、当該パケットの種類と(b)で決定した送出パケット変換モードから、図27示す、パケット変換内容(変換せずそのまま送出,通常パケットに変換し送出,Qtag付きパケットに変換し送出)を決定する。
【0143】
(d−1:変換せずそのまま送出)当該パケットがQtag付きパケットの場合、制御回路220はバッファ2510−2内のQtagフレーム、及び続いてバッファ2510−2に入ってくるL/Tフレーム,DataフレームをMAC300に送る。また、当該パケットが通常パケットの場合、制御回路220はバッファ2510−2内のL/Tフレーム、及び、続いてバッファ2510−2に入ってくるDataフレームをMAC300に送る。これにより、送信FIFO120または転送FIFO130に保持されていたパケットはMAC300にそのまま変換せずに送られ、イーサネット820に送出される。
【0144】
(d−2:通常パケットに変換し送出)当該パケットはQtag付きパケットであり、制御回路220はバッファ2510−2内2バイトを含め、カウンタ2520−2のカウンタ値が16バイトになるまで、MAC300に送るのをスキップし、Qtagフレームを破棄する。続いて、バッファ2510−2に入ってくるL/Tフレーム,DataフレームをMAC300に送る。これにより、送信FIFO120または転送FIFO130に保持されていたQtagつきパケットは、Qtagフレームのみが破棄された通常パケットに変換され、MAC300に送られて、イーサネット820に送出される。
【0145】
(d−3:Qtag付きパケットに変換し転送)当該パケットは通常パケットであり、制御回路220は、(b)で判定したQtag値を持つQtagフレームをMAC300に送り、その後、バッファ2510−2内の2バイト(L/Tフレーム)を含め、続いてバッファ2510−2に入ってくるDataフレームをMAC300に送る。これにより、送信FIFO120または転送FIFO130に保持されていた通常パケットは、CAM2530−2及びレジスタR2311により決定したQtagを持つQtagフレームが挿入されたQtag付きパケットに変換され、MAC300に送られて、イーサネット820に送出される。
【0146】
以上により、MAC300a,300bが受け取ったパケットを受信する際に、当該パケットの送信元または宛先のMACアドレスに応じて、パケット変換モードを決定すると共に、CPU1が生成したパケットや、転送するパケットの送信元または宛先のMACアドレスに応じて、パケット変換モードや、Qtag付きパケットに変換する際に挿入されるQtag値を決定することが可能となる。
【0147】
次に、本発明に係るパケット通信装置をIP電話に適応したときのパケット通信システムの実施形態を図30に示す。
【0148】
IP電話8000aは、2つのイーサネット820a,820bに接続されており、一方のイーサネット820aはインターネットやイントラネットに接続されているHUB8100に接続され、他方のイーサネット820bはイーサネット通信装置830としてのPCに接続されている。HUB8100はインターネットやイントラネットなどのWAN(Wide Area Network)を介して、IP電話8000bと、ホームページデータを保持しているデータセンサ8200に接続されている。
【0149】
IP電話8000は、その内部に2チャネル通信装置800,2つのPHY
810a,810b,受話器8010,アナログ信号である音声入力信号をディジタル信号に変換するA/D変換器8020、その逆にディジタル信号をアナログ信号である音声出力信号に変換するD/A変換器8030を備えて構成されている。受話器8010は、音声をアナログ信号に変換するマイク8011と、アナログ信号である音声出力信号を音声に変換するスピーカ8012を備えて構成されている。
【0150】
IP電話8000aとIP電話8000bとの間の通話は以下のようにして行われる。IP電話8000aのマイク8011より入力された音声は、A/D変換器8020によりディジタル信号に変換されて2チャネル通信装置800に入力される。2チャネル通信装置800内のCPU1は、ディジタル信号を音声パケットに変換し、送信パケットとして、MAC300aからイーサネット820aに送信する。イーサネット820aに送信されたパケットは、HUB8100aからWANを通って相手側のIP電話8000bに送られる。相手側のIP電話8000bは、IP電話8000aが送信した音声パケットを受信すると、2チャネル通信装置800内のCPU1で、受信した音声パケットを音声データに変換してD/A変換器8030に出力する。この音声データはD/A変換器8030によりアナログ信号である音声信号に変換され、スピーカ8012から音声として出力される。IP電話8000bからIP電話8000aに対する通信処理も同様に行われ、IP電話8000aとIP電話8000bとの間で通話が実現する。
【0151】
次に、IP電話8000aを介して接続されたPC830がデータセンタ8200にあるホームページを読み込む処理は以下のように行われる。PC830がウェブブラウザを用いて、ホームページを表示する場合には、表示するホームページのURLの情報を持ったパケットがイーサネット820bに送信される。このパケットを2チャネル通信装置800のMAC300bが受信すると、このパケットの宛先のMACアドレスはIP電話8000宛ではないため、MAC300aからイーサネット820aに転送される。転送されたパケットは、HUB8100を通り、WANを介してデータセンタ8200に到着する。データセンタ8200ではPC830が送信したパケットからURL情報を読み出し、対応するホームページの情報をパケット化して送信する。データセンタ8200から送信されたパケットは、WANを介してHUB8100に到着したあとイーサネット820aを介して2チャネル通信装置800内のMAC300aに受け取られる。このとき2チャネル通信装置800内の転送判定回路200は、データセンタ8200から送信したパケットの宛先MACアドレスを検索してPC830宛であると判定したときには、このパケットをイーサネット820bに転送する。
【0152】
PC830がパケットを受信すると、PC830では受け取ったパケットからホームページデータを取り出し、ウェブブラウザに表示する。以上の処理によりIP電話8000を介してデータセンタ8200とPC830との間で通信が可能となる。
【0153】
ここで、CPU1で実行される2つの音声処理(ディジタル信号から音声パケットへと変換する処理、及び、音声パケットからディジタル信号へと変換する処理)、イーサネット上での音声パケットのやりとりは、ノイズや間延びを防ぎ、音声をスムーズに伝えるために、一定期間以内に2つのIP電話8000間でやりとりを行うリアルタイム性が要求される。したがって、CPU1にて、音声処理を優先的に実行すると共に、イーサネットにおいても優先度情報を付加できるQtag付きパケットにて音声パケットをやりとりする必要がある。
【0154】
以上から、HUBとIP電話8000間は、Qtag付きパケットで通信が行われる。そのため、さらに、これに加え、データセンタ8200とPC830間の通信によるパケット転送処理があり、PC830にも、Qtag付きパケットが転送される可能性がある。
【0155】
そのため、PC830がQtag付きパケットを受信できない場合、IP電話8000にてPC830に転送されるQtag付きパケットを通常パケットに変換する必要が出てくる。このとき、パケット変換をCPU1にて行うと、CPU1の負荷が増大し、音声処理が滞るとともに、処理しきれないパケット変換が必要な転送パケットが増え、転送パケットの破棄が発生し、イーサネットの効率が低下し、音声パケットのリアルタイム性が維持できなくなる。
【0156】
そこで、本発明の方式を採用することにより、CPU、及び、転送処理のオーバーヘッドを0にできるため、音声処理及び音声パケット通信をスムーズに行うことが可能となる。
【0157】
【発明の効果】
IEEE802.1Qで規定された優先情報付きパケットの送受信ができない通信対象との接続を可能とする。これにより、パケットを転送する際に、送信・受信判定及び、パケット変換にかかるオーバーヘッドを0にすると共に、送信・受信判定及びパケット変換に伴う生成処理手段への負荷を0にすることにより、通信効率及び、生成処理手段の処理性能を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明に係る2チャンネルイーサネット通信装置の一実施例のブロック構成図である。
【図2】本発明に係る2チャンネルイーサネット通信装置を用いた通信ネットワークのブロック構成図である。
【図3】本発明に係る2チャンネルイーサネット通信装置を複数台直接接続したときのシステム構成図である。
【図4】本発明に係る複数のイーサネット通信装置をHUBに接続した時のシステム構成図である。
【図5】本発明に係るメモリの一実施例を示すブロック構成図である。
【図6】本発明に係るバスI/F回路,バッファ,転送判定装置のブロック構成図である。
【図7】本発明に係るレジスタの構成図である。
【図8】本発明に係るCAMの構成図である。
【図9】本発明に係るパケット変換回路の構成図である。
【図10】本発明に係るパケット変換条件を説明するための図である。
【図11】本発明に係るパケットの送信処理を説明するためのフローチャートである。
【図12】本発明に係るパケットの受信・転送処理を説明するためのフローチャートである。
【図13】本発明に係るパケット変換をCPUで際の処理を説明するためのフローチャートである。
【図14】本発明に係るパケット転送時に、Qtag付きパケットから通常パケットへの変換を説明するための図である。
【図15】本発明に係るパケット転送時に、通常パケットからQtag付きパケットへの変換を説明するための図である。
【図16】本発明に係るパケット転送時に、Qtag付きパケットをそのまま転送FIFOに書き込む処理を説明するための図である。
【図17】本発明に係るパケット転送時に、通常パケットをそのまま転送FIFOに書き込む処理を説明するための図である。
【図18】本発明に係るパケット受信時に、Qtag付きパケットを受信FIFOに書き込む処理を説明するための図である。
【図19】本発明に係るパケット受信時に、通常パケットを受信FIFOに書き込む処理を説明するための図である。
【図20】本発明に係るパケット変換回路のブロック構成図である。
【図21】本発明に係るレジスタの構成説明図である。
【図22】本発明に係るパケットの送信・受信・転送処理を説明するためのフローチャートである。
【図23】本発明に係るパケット受信時のパケット変換条件を説明するための図である。
【図24】本発明に係るパケット送出時のパケット変換条件を説明するための図である。
【図25】本発明に係るパケット受信時に、受信FIFOに書き込む処理を説明するための図である。
【図26】本発明に係るパケット送信時に、イーサネットMACが送出するパケットの処理を説明するための図である。
【図27】本発明に係るパケット送信時に、イーサネットMACが送出するパケットの処理を説明するための図である。
【図28】本発明に係る通常パケット及びQtag付きパケットのフレーム構成を示す図である。
【図29】本発明に係る2チャンネルイーサネット通信装置を用いた通信ネットワークの他の実施例を示すブロック構成図である。
【図30】本発明に係る2チャンネルイーサネット通信装置をIP電話システムに適応した時のブロック図である。
【図31】本発明に係る2チャンネルイーサネット通信装置の他の実施例のブロック構成図である。
【符号の説明】
1…CPU、2…メモリ、3…バス、4…2チャンネル通信モジュール、100a,100b…バッファ、110a,110b…受信FIFO、120a,120b…送信FIFO、130a,130b…転送FIFO、200…転送判定回路、250…パケット変換回路、300a,300b…イーサネットMAC、400…バスI/F回路、810a,810b…PHY、820a,820b…イーサネット、830a,830b…イーサネット通信装置。
Claims (13)
- 複数の通信対象とパケットの送信及び受信を行う複数の通信手段と、
前記複数の通信手段が送信するためのパケットを生成するとともに前記複数の通信手段が受信したパケットを処理するパケット生成処理手段と、
前記複数の通信対象間で相互に情報の授受を行うための転送用パケットを保持する転送用バッファ手段と、
前記複数の通信手段の受信による受信パケットまたは前記複数の通信手段が送信する送信パケットに対してパケット変換を行うパケット変換回路と、
前記通信手段の受信による受信パケットが前記転送用パケットであると判定した時には前記受信パケットを前記転送用バッファ手段に出力するとともに、前記パケット生成処理手段が生成した送信パケットの宛先の通信対象に対応した通信手段および前記転送用バッファ手段に保持された転送用パケットの宛先の通信対象に対応した通信手段に出力する転送手段とを有し、
前記パケット変換回路は、パケット変換モードレジスタまたは前記転送用パケットの送信元及び宛先の通信対象に応じてパケット変換モードを設定する転送パケット変換モード決定手段を有し、
前記パケット生成処理手段は、前記通信手段が受信したパケットの内容に応じたレスポンスとして当該受信パケットを送信した機器に送信する送信パケットを生成する機能を有し、
前記転送手段が前記通信手段の受信による受信パケットが前記転送用パケットと判定し、前記転送用パケットを前記転送用バッファ手段に出力する際に、前記パケット変換回路が前記パケット変換モードレジスタまたは前記転送パケット変換モード決定手段に基づいて前記受信パケットを前記転送用バッファ手段に受信しながら前記転送用パケットに変換することを特徴とするパケット通信装置。 - 請求項1に記載のパケット通信装置において、
前記受信パケットはパケットの先頭に宛先アドレスを有し、
前記転送手段は前記受信パケットのパケット先頭の宛先アドレスを読み取った結果に基づいて転送用パケットと判定することを特徴とするパケット通信装置。 - 請求項1に記載のパケット通信装置において、
前記パケット変換回路は、前記パケット生成処理手段で設定可能なパケット変換モード設定レジスタを有し、
前記転送手段が前記通信手段の受信による受信パケットが前記パケット生成処理手段が必要なパケットであると判定し当該受信パケットを前記パケット生成処理手段に出力する際に、前記パケット変換回路がこのレジスタの設定値に基づき当該パケットを前記パケット生成処理手段が処理可能なパケットに変換することを特徴とするパケット通信装置。 - 請求項1に記載のパケット通信装置において、
前記パケット変換回路は、前記パケット生成処理手段で設定可能なパケット変換モードレジスタまたは前記通信手段が送信する送信パケットの送信元及び宛先の通信対象に応じてパケット変換モードを設定する送信パケット変換モード決定手段を有し、
前記転送手段が前記パケット生成処理手段の生成による送信パケットの宛先の通信対象に対応した通信手段および前記転送用バッファ手段に保持された転送用パケットの宛先の通信対象に対応した通信手段に出力する際に、前記パケット変換回路が前記パケット変換モードレジスタまたは送信パケット変換モード決定手段に基づき当該転送用パケットを変換することを特徴とするパケット通信装置。 - 請求項3に記載のパケット通信装置において、
前記パケット変換回路は、前記パケット生成処理手段で設定可能なパケット変換モードレジスタまたは前記通信手段が送信する送信パケットの送信元及び宛先の通信対象に応じてパケット変換モードを設定する送信パケット変換モード決定手段を有し、
前記転送手段が前記パケット生成処理手段の生成による送信パケットの宛先の通信対象に対応した通信手段および前記転送用バッファ手段に保持された転送用パケットの宛先の通信対象に対応した通信手段に出力する際に、前記パケット変換回路が前記パケット変換モードレジスタまたは送信パケット変換モード決定手段に基づき当該転送用パケットを変換することを特徴とするパケット通信装置。 - 請求項1乃至5のうちいずれか1項に記載のパケット通信装置において、
前記パケット変換回路は優先度情報付きパケットから優先度情報を持たないパケットに変換する変換機能を有することを特徴とするパケット通信装置。 - 請求項1乃至5のうちいずれか1項に記載のパケット通信装置において、
前記パケット変換回路は優先度情報を持たないパケットから優先度情報を持つパケットに変換する変換機能を有することを特徴とするパケット通信装置。 - 請求項1乃至5のうちいずれか1項に記載のパケット通信装置おいて、
前記パケット変換回路は優先度情報付きパケットから優先度情報を持たないパケットに変換する変換機能と、パケットを構成する各フレームを判断するカウント手段を有し、前記カウント手段に基づきパケットが優先度情報を持つパケットか優先度情報を持たないパケットかを判断し、前記カウント手段を用いて前記優先度情報を持つパケット内にある優先度情報を持つフレームの位置を検出し、当該パケットを構成する各フレームのうち前記優先度情報を持つフレーム以外の全フレームのみを出力することで優先度情報を持つパケットから優先度情報を持たないパケットに変換することを特徴とするパケット通信装置。 - 請求項1乃至5のうちいずれか1項に記載のパケット通信装置おいて、
前記パケット変換回路は、優先度情報を持たないパケットから優先度情報を持つパケットに変換する変換機能と、パケットを構成する各フレームを判断するカウント手段と、
前記パケット生成処理手段が設定可能な優先度情報を持たないパケットから優先度情報を持つパケットに変換する際に挿入する優先度情報を設定するレジスタと、
当該パケットの送信元または宛先の通信対象に応じて挿入する優先度情報を決定する優先度情報決定機能を有するパケット変換モード決定手段とを有し、
前記カウント手段に基づきパケットが優先度情報を持つパケットか優先度情報を持たないパケットかを判断し、前記カウント手段を用いて前記優先度情報を持たないパケットに対し優先度情報を持つフレームを挿入する位置を検出し、前記優先度情報を持つフレームを挿入する位置に前記優先度情報を設定するレジスタ及び前記パケット変換モード決定手段に基づき決定した優先度を持つフレームを挿入して出力することで優先度情報を持たないパケットから優先度情報を持つパケットに変換することを特徴とするパケット通信装置。 - 請求項1に記載のパケット通信装置において、
前記パケット通信装置は、記憶手段を有し、
前記パケット生成処理手段はマルチメディアのようにリアルタイム性が要求される処理を含む少なくとも1つ以上のプログラムを実行する機能を持ち、前記記憶手段は、前記パケット生成処理手段が実行する前記プログラム及びデータ、また、前記パケット生成処理手段が送受信するパケットを保持し、前記複数の通信手段は、優先度情報付きパケット(新規格パケット)及び優先度情報のないパケット(旧規格パケット)を用いて、前記複数の通信対象とパケット通信を行う機能を有し、
前記転送手段が複数の通信手段間でパケットの転送を行う際、当該パケットの送信先の 前記通信対象が新規格パケットを受信できない場合、前記転送手段は、当該通信対象に対して新規格パケットを転送する際に、旧規格パケットに変換して転送することを特徴とするパケット通信装置。 - 請求項10に記載のパケット通信装置おいて、
前記複数の通信対象ごとに、新規格パケット及び旧規格パケットに対応かの情報を保持する、連想メモリまたはRAMテーブルを持ち、当該情報に基づいたパケット変換を、パケット通信装置内でクローズして、行うことを特徴とするパケット通信装置。 - 請求項10に記載のパケット通信装置において、
前記記憶手段に保持された、前記パケット生成処理手段で実行されるプログラムが新規格パケットを処理できない際に、前記転送手段は、当該プログラムが処理すべき当該新規格パケットを旧規格パケットに変換して、前記記憶手段に書き込むとともに、前記記憶手段にある当該プログラムが生成した旧規格パケットの送信先の前記通信対象が、新規格パケットを処理できる際には、当該旧規格パケットを新規格パケットに変換して、前記通信手段から、当該新規格パケットを送信することを特徴とするパケット通信装置。 - 請求項12に記載のパケット通信装置おいて、
前記パケット通信装置は前記パケット生成処理手段で設定可能であり前記パケット変換の有無を設定する制御レジスタを持ち、
前記パケット生成処理手段で実行されるプログラムが、新規格パケットを処理できない際に、前記記憶手段に保持された当該プログラム自身または、当該プログラムを管理する別のプログラムが、前記制御レジスタを設定することにより、
前記転送手段は、前記制御レジスタの設定に応じ、当該プログラムが処理する受信するパケットを旧規格パケットに変換するとともに、当該プログラムが生成した旧規格パケットの送信先の前記通信対象が、新規格パケットを処理できる際には、当該旧規格パケットを新規格パケットに変換して、前記通信手段から、当該新規格パケットが送信されることを特徴とするパケット通信装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003056479A JP3891945B2 (ja) | 2002-05-30 | 2003-03-04 | パケット通信装置 |
TW092114168A TWI221371B (en) | 2002-05-30 | 2003-05-26 | Packet communication device |
US10/446,929 US7496679B2 (en) | 2002-05-30 | 2003-05-29 | Packet communication apparatus |
KR10-2003-0034291A KR100502270B1 (ko) | 2002-05-30 | 2003-05-29 | 패킷 통신장치 |
CNB031384870A CN100508495C (zh) | 2002-05-30 | 2003-05-30 | 包通信设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002156614 | 2002-05-30 | ||
JP2003056479A JP3891945B2 (ja) | 2002-05-30 | 2003-03-04 | パケット通信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004056759A JP2004056759A (ja) | 2004-02-19 |
JP3891945B2 true JP3891945B2 (ja) | 2007-03-14 |
Family
ID=30002201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003056479A Expired - Fee Related JP3891945B2 (ja) | 2002-05-30 | 2003-03-04 | パケット通信装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7496679B2 (ja) |
JP (1) | JP3891945B2 (ja) |
KR (1) | KR100502270B1 (ja) |
CN (1) | CN100508495C (ja) |
TW (1) | TWI221371B (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI227616B (en) * | 2001-11-20 | 2005-02-01 | Hitachi Ltd | Packet communication device, packet communication system, packet communication module, data processor and data transmission system |
US8027289B2 (en) * | 2005-04-27 | 2011-09-27 | Raytheon Bbn Technologies Corp. | Ultra-low latency packet transport in ad hoc networks |
US8139552B1 (en) * | 2006-07-07 | 2012-03-20 | Rockstar Bidco, LP | Access category enforcement in wireless local area networks |
JP2010278897A (ja) * | 2009-05-29 | 2010-12-09 | Renesas Electronics Corp | 通信データ処理回路及び通信データ処理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH024072A (ja) * | 1988-06-20 | 1990-01-09 | Fujitsu Ltd | パケット交換方式 |
JP3419627B2 (ja) * | 1996-06-11 | 2003-06-23 | 株式会社日立製作所 | ルータ装置 |
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6266340B1 (en) * | 1998-04-03 | 2001-07-24 | Vertical Networks, Inc. | Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus |
JPH11331237A (ja) | 1998-05-20 | 1999-11-30 | Hitachi Ltd | マルチキャストパケット中継方法及び装置 |
US6212195B1 (en) * | 1998-12-01 | 2001-04-03 | 3Com Corporation | Telecommunication apparatus and method for forwarding packets using separate collision domains |
JP3372883B2 (ja) | 1999-01-08 | 2003-02-04 | エヌイーシービューテクノロジー株式会社 | プロジェクタ装置 |
JP3365340B2 (ja) * | 1999-04-28 | 2003-01-08 | 日本電気株式会社 | データ転送システム及びその転送方法 |
US6650650B1 (en) * | 1999-09-16 | 2003-11-18 | Ut Starcom, Inc. | Method and apparatus for transmitting voice data over network structures |
EP1260067A1 (en) * | 2000-03-03 | 2002-11-27 | Celox Networks, Inc. | Broadband mid-network server |
JP4484317B2 (ja) * | 2000-05-17 | 2010-06-16 | 株式会社日立製作所 | シェーピング装置 |
JP2002064523A (ja) | 2000-08-23 | 2002-02-28 | Fujitsu Ltd | スイッチングハブ及び仮想lanシステム |
US20030007489A1 (en) * | 2001-07-09 | 2003-01-09 | Ram Krishnan | Data extraction system for packet analysis |
TWI227616B (en) * | 2001-11-20 | 2005-02-01 | Hitachi Ltd | Packet communication device, packet communication system, packet communication module, data processor and data transmission system |
-
2003
- 2003-03-04 JP JP2003056479A patent/JP3891945B2/ja not_active Expired - Fee Related
- 2003-05-26 TW TW092114168A patent/TWI221371B/zh not_active IP Right Cessation
- 2003-05-29 KR KR10-2003-0034291A patent/KR100502270B1/ko not_active IP Right Cessation
- 2003-05-29 US US10/446,929 patent/US7496679B2/en not_active Expired - Fee Related
- 2003-05-30 CN CNB031384870A patent/CN100508495C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040034713A1 (en) | 2004-02-19 |
CN1467966A (zh) | 2004-01-14 |
US7496679B2 (en) | 2009-02-24 |
JP2004056759A (ja) | 2004-02-19 |
TW200402970A (en) | 2004-02-16 |
TWI221371B (en) | 2004-09-21 |
CN100508495C (zh) | 2009-07-01 |
KR100502270B1 (ko) | 2005-07-21 |
KR20030094008A (ko) | 2003-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3621646B2 (ja) | 可変アドレス学習、切換え及び経路指定を伴う通信ネットワーク | |
US9807134B2 (en) | Method and device for filtering media packets | |
US8488467B2 (en) | Method and system for a gigabit ethernet IP telephone chip with 802.1p and 802.1Q quality of service (QoS) functionalities | |
JP4640128B2 (ja) | 応答通信機器及びarp応答通信機器 | |
US7321591B2 (en) | Methods and systems for providing differentiated quality of service in a communications system | |
US7292530B2 (en) | Method and apparatus to manage packet fragmentation | |
CN107483370B (zh) | 一种在fc网络上传输ip和can业务的方法 | |
KR100699470B1 (ko) | 멀티레이어 패킷 처리 장치 | |
US20070025380A1 (en) | Packet processing apparatus, packet processing method, and packet exchange | |
US7298745B2 (en) | Method and apparatus to manage packet fragmentation with address translation | |
US20080240103A1 (en) | Three-port ethernet switch with external buffer | |
JPH08503821A (ja) | 中枢ネットワークにより相互接続されたローカルエリアネットワーク間のトラヒックに優先順位を割当てる方法 | |
EP1617634A1 (en) | Gigabit-Ethernet and IP telephone chip | |
US6807183B1 (en) | Arrangement for reading a prescribed location of a FIFO buffer in a network switch port | |
JP2000078205A (ja) | ネットワ―ク間デ―タ伝送方法 | |
JP3891945B2 (ja) | パケット通信装置 | |
US8208482B2 (en) | Transmitting packets between packet controller and network processor | |
US6944174B1 (en) | Jitter reduction of voice packets in a packet-based network | |
CN112637705B (zh) | 一种带内遥测报文的转发方法及设备 | |
JPWO2006070542A1 (ja) | 通信装置、記憶媒体、集積回路および通信システム | |
JP3735755B2 (ja) | パケット通信装置 | |
JP2005123985A (ja) | 通信装置及び通信方法 | |
JP2005167458A (ja) | 音声画像伝送方法 | |
JP2004515088A (ja) | ネットワークスイッチにおけるプログラマブルなレイヤ3アドレス自己学習スキーム | |
KR100605948B1 (ko) | Ieee 1394-이더넷 변환이 가능한 단말용 어댑터 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040315 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060327 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060718 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060919 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20061101 |
|
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: 20061114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061205 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3891945 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
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: 20101215 Year of fee payment: 4 |
|
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: 20101215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111215 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121215 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121215 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131215 Year of fee payment: 7 |
|
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 |