(57)【特許請求の範囲】
【請求項１】
宛先アドレスと送信元アドレスがこの順に含まれる受信フレームをループバックするループバック回路において、
受信フレームを格納した受信メモリと、
自局のアドレスを供給する自局アドレス供給部と、
前記受信メモリからリードした受信フレームを遅延させて出力するフレーム遅延シフタと、
前記受信フレームまたは前記自局のアドレスと、前記遅延した受信フレームとが入力される複数のセレクタとを備え、
前記フレーム遅延シフタは、前記受信フレームを１段遅延させて出力する第１シフタと、該第１シフタの下流側に配置され該第１シフタの出力をさらに１段遅延させる第２シフタとを含み、
前記複数のセレクタは、前記第１シフタと前記第２シフタとの間、および該第２シフタの下流側にそれぞれ配置され、前記遅延した受信フレームの宛先アドレスを前記受信フレームの送信元アドレスに置換すると共に、前記遅延した受信フレームの送信元アドレスを前記自局のアドレスに置換することを特徴とするループバック回路。
【請求項２】
前記宛先アドレスおよび送信元アドレスは４８ビットであって、
当該回路のバス幅は３２ビットであって、
前記複数のセレクタは、
前記第１シフタと前記第２シフタとの間に配置され、該第１シフタにより１段遅延した受信フレームの１クロック目の宛先アドレス領域を前記受信フレームの２クロック目に含まれる送信元アドレスの１６ビットに置換する第１セレクタと、
前記第１シフタと前記第２シフタとの間に配置され、該第１シフタにより１段遅延した受信フレームの２クロック目の宛先アドレス領域を前記受信フレームの３クロック目に含まれる送信元アドレスの１６ビットに置換する第２セレクタと、
前記第２シフタの下流側に配置され、該第２シフタにより２段遅延した受信フレームの１クロック目の宛先アドレス領域を前記受信フレームの３クロック目に含まれる送信元アドレスの１６ビットに置換する第３セレクタとを含むことを特徴とする請求項１に記載のループバック回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、宛先アドレス（ＤＡ:Destination Address）と送信元アドレス（ＳＡ:Source Address）がこの順に含まれる受信フレームをループバックするループバック回路に関する。
【背景技術】
【０００２】
通信技術においては、データの整合性を担保するために、受信したデータをそのまま送信元に返送するループバックがしばしば行われる。例えばＯＳＩ参照モデルのデータリンク層にあるイーサネット（登録商標）やトランスポート層にあるＴＣＰプロトコルではループバックを行っている。
【０００３】
ループバック処理を行う際には、受信したＭＡＣフレームやパケットに含まれた宛先アドレスと送信元アドレスとをスワップ処理（交換）してから送信する。現在、かかるスワップ処理は、一般にストア・アンド・フォワード方式で実現されている。ＭＡＣフレームには、宛先アドレスおよび送信元アドレスがこの順で含まれている。ストア・アンド・フォワード方式では、まず受信フレーム１フレーム分を受信メモリ（ＦＩＦＯ）からリードし、これをループバックメモリに格納する。そして、ループバックメモリに格納された受信フレームを送信元アドレス、宛先アドレス、ペイロードの順にリードすることでスワップ処理を実現する。
【０００４】
しかし、特許文献１にも記載されているように、ストア・アンド・フォワード方式では、メモリの容量（ループバックメモリ）が多く必要になる。また、ストア・アンド・フォワード方式では、ループバックメモリに一度格納するため、受信フレーム長に比例して処理時間が増大してしまう問題がある。特許文献１では、データフレームの中のテストデータフレームを認識し、テストデータフレームから宛先および送信元アドレスを抽出して、宛先および送信元アドレスが交換された新しいテストデータフレームを生成し、ペイロードと結合することが提案されている。これにより、ストア・アンド・フォワード方式のように追加のメモリ記憶装置を必要とせず（ペイロード分のメモリ容量を削減できるため）、スワップ処理を実現するとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３２０７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１ではテストデータフレームから抽出および処理を行って、宛先および送信元アドレスをスワップしたＭＡＣヘッダ、ＩＰヘッダ、およびその他のデータを含むテストデータフレームを生成すると述べている（段落００２０）。したがってプログラムが動作してスワップ処理を行う必要があり、高速化の妨げとなり、また高速に動作する高価なＣＰＵが必要になったり、高速動作のために消費電力の増加を招いたりするおそれがある。
【０００７】
ここで、受信フレームに宛先アドレスおよび送信元アドレスがこの順で含まれているところ、単純に送信元アドレスから先に読み出せば、スワップ処理が実現可能であるとも言える。しかしながらＦＩＦＯは先入れ先出しであるため、後のアドレスから先にリードすることはできない。なお受信メモリがＲＡＭではなくＦＩＦＯである理由は、ＦＩＦＯであればデータ長を指定するだけで読み出しを連続させることができるため、機器のファームウェア（プログラム）の構成が簡略化できるからである。すなわちＦＩＦＯを用いる限りリード順によってスワップ処理を行うことはできず、ＲＡＭを用いればそれは可能になるけれども、ファームウェアが複雑化するという問題がある。
【０００８】
本発明は、上記課題に鑑み、ストア・アンド・フォワード方式によらずスワップ処理を可能にし、メモリの削減及び処理時間の大幅な短縮を実現するループバック回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明の代表的な構成は、宛先アドレスと送信元アドレスがこの順に含まれる受信フレームをループバックするループバック回路において、受信フレームを格納した受信メモリと、自局のアドレスを供給する自局アドレス供給部と、受信メモリからリードした受信フレームを遅延させて出力するフレーム遅延シフタと、受信フレームまたは自局のアドレスと、遅延した受信フレームとが入力される複数のセレクタとを備え、フレーム遅延シフタは、受信フレームを１段遅延させて出力する第１シフタと、第１シフタの下流側に配置され第１シフタの出力をさらに１段遅延させる第２シフタとを含み、複数のセレクタは、第１シフタと第２シフタとの間、および第２シフタの下流側にそれぞれ配置され、遅延した受信フレームの宛先アドレスを受信フレームの送信元アドレスに置換すると共に、遅延した受信フレームの送信元アドレスを自局のアドレスに置換することを特徴とする。
【００１０】
上記構成によれば、シフタとセレクタとを利用して、すなわちプログラム処理を行うことなくハードウェアのみによって、遅延した受信フレームの宛先アドレスを送信元アドレスに置換し、遅延した受信フレームの送信元アドレスを自局のアドレスに置換することができる。シフタにより遅延した受信フレームの宛先アドレス領域、送信元アドレス領域を置換していく構成のため、受信メモリがＦＩＦＯ（先入れ先出し）であってもスワップ処理を行うことができる。これにより、ストア・アンド・フォワード方式のようにメモリ（ループバックメモリ）に受信フレーム全体を格納する必要がなくなるため、メモリの削減及び処理時間の大幅な短縮が可能となる。
【００１１】
宛先アドレスおよび送信元アドレスは４８ビットであって、当該回路のバス幅は３２ビットであって、複数のセレクタは、第１シフタと第２シフタとの間に配置され、第１シフタにより１段遅延した受信フレームの１クロック目の宛先アドレス領域を受信フレームの２クロック目に含まれる送信元アドレスの１６ビットに置換する第１セレクタと、第１シフタと第２シフタとの間に配置され、第１シフタにより１段遅延した受信フレームの２クロック目の宛先アドレス領域を受信フレームの３クロック目に含まれる送信元アドレスの１６ビットに置換する第２セレクタと、第２シフタの下流側に配置され、第２シフタにより２段遅延した受信フレームの１クロック目の宛先アドレス領域を受信フレームの３クロック目に含まれる送信元アドレスの１６ビットに置換する第３セレクタとを含んでよい。
【００１２】
上記構成によれば、一般に普及している内部バスのバス幅３２ビットの回路（機器）において、宛先アドレス領域を１６ビットずつ置換することにより、３クロックでスワップ処理を完了させることができる。なお、送信元アドレスの自局のアドレスへの置換は、いずれかの空きタイミングで実行するように設定すればよい。これにより、バス幅３２ビットの回路において、バス幅よりも長いアドレスのデータに対してスワップ処理を行うことができる。
【発明の効果】
【００１３】
本発明によれば、ストア・アンド・フォワード方式によらずスワップ処理を可能にし、メモリの削減及び処理時間の大幅な短縮を実現するループバック回路を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明のループバック回路の実施形態であるＦＰＧＡを備える機器のイーサネットでの他の機器との接続を示す模式図である。
【図２】図１に示すＦＰＧＡの概略構成を示すブロック図である。
【図３】図２に示すＤＭＡ制御部の概略構成を示すブロック図である。
【図４】図３に示すスワップ処理部の概略構成を示すブロック図である。
【図５】図４に示すスワップ処理部のタイミングチャートである。
【図６】比較例として例示するＤＭＡ制御部の概略構成を示すブロック図である。
【図７】本実施形態にかかるＦＰＧＡと比較例として例示したＤＭＡ制御部を備えるＦＰＧＡのループバック遅延クロック数の対比図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示に過ぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【００１６】
（実施形態）
図１は、本発明のループバック回路の実施形態であるＦＰＧＡ１０４を備える機器１００のイーサネットでの他の機器１０８との接続を示す模式図である。図１に示すように、機器１００は、ＰＨＹ１０２（Physical Layer）と、ＦＰＧＡ１０４（Field-Programmable Gate Array）と、ＣＰＵ１０６とを備える。
【００１７】
ＦＰＧＡ１０４は、イーサネットコントローラであって、他の機器１０８（図中代表して１つに符号を付す）から送信されたＭＡＣフレームをＰＨＹ１０２を通じて受信し、そのＭＡＣフレームをループバックする。ＰＨＹ１０２は同軸ケーブル等に相当し、かかる同軸ケーブル等は他の機器１０８とバス型接続される。
【００１８】
図２は、ＦＰＧＡ１０４の概略構成を示すブロック図である。図２に示すように、ＦＰＧＡ１０４は、受信処理部１１０、受信メモリ１１２、ＤＭＡ（Direct Memory Access）制御部１１４、送信メモリ１１６、送信処理部１１８を備える。
【００１９】
受信処理部１１０は、ＦＰＧＡ１０４内部でのデータ処理を早くするため、ＭＡＣフレームのオクテット単位（８ビット単位）から、ＦＰＧＡ１０４の内部バスのバス幅である３２ビット単位へ変換処理を実施する。これにより、以降では、３２ビット単位で処理が実施される。また、受信処理部１１０は、ＰＨＹ１０２を通じて受信されるＭＡＣフレームからフレームチェックシーケンス（ＦＣＳ：Frame Check Sequence）を除いた受信フレームを受信メモリ１１２に受け渡す。
【００２０】
なお、ＭＡＣフレームは、宛先アドレス（６バイト）、送信元アドレス（６バイト）、タイプ/長さ（２バイト）、ペイロード（４６〜１５００バイト）、ＦＣＳ（４バイト）のフレーム構成を有する。よって、ＭＡＣフレームは６４バイト〜１５１８バイト、受信メモリ１１２に保存される受信フレームはＦＣＳを除いて６０バイト〜１５１４バイトの大きさとなる。
【００２１】
受信メモリ１１２は、受信処理部１１０から受け渡された受信フレームを格納する。ここでは受信メモリ１１２はＦＩＦＯ（first-in first-out）メモリで構成される。これにより、受信メモリ１１２から受信フレームをリードする際にその長さだけを指定すれば良いので、面倒なアドレス管理が不要となる。
【００２２】
ＤＭＡ制御部１１４は、受信メモリ１１２に格納された受信フレームのリード／ライト、および後述するスワップ処理を行う。ＤＭＡ制御部１１４の内部での処理は、３２ビット単位で行われる。かかる処理については後ほど詳細に説明する。
【００２３】
送信メモリ１１６は、スワップ処理を完了したフレームを格納する。送信処理部１１８は、ループバックするフレームのフレームチェックシーケンスの再計算及び付与を行うと共に、再度オクテット単位への変換処理を実施する。
【００２４】
図３は、ＤＭＡ制御部１１４の概略構成を示すブロック図である。図３に示すように、ＤＭＡ制御部１１４は、ＣＰＵインターフェース１２０、フレームリード制御部１２２、フレーム情報解析部１２４、スワップ処理部１２６、セレクタ１２８、自局アドレス供給部１３０を備える。以下、送信元へのループバックが設定されている場合におけるＤＭＡ制御部１１４の動作について説明する。
【００２５】
フレームリード制御部１２２は、ＣＰＵインターフェース１２０を通じてＭＡＣフレームの正常受信完了を示す割込通知を受けると、受信メモリ１１２から受信フレーム１フレーム分をリードする。受信フレーム１フレーム分をリードするのに必要な受信フレームの長さは、フレーム情報解析部１２４が受信フレームを解析して予めフレームリード制御部１２２に通知する。
【００２６】
フレームリード制御部１２２がリードした受信フレームは、スワップ処理部１２６でスワップ処理を行いながら、セレクタ１２８を通じて送信メモリ１１６に格納される。ここで、受信フレームを一時的に蓄積するループバックメモリは存在しない。自局アドレス供給部１３０は、かかるスワップ処理部１２６に、自局アドレスである当該機器１００のＭＡＣアドレスを供給する。
【００２７】
図４は、スワップ処理部１２６の概略構成を示すブロック図である。なお、図中のＭＳＢ（Most Siginificant Bit）は最上位ビット、ＬＳＢ（Least Siginificant Bit）は最下位ビットを示すものとする。図４に示すように、スワップ処理部１２６には、フレームリード制御部１２２がリードした受信フレームおよびＭＡＣアドレスが供給される。加えてスワップ処理部１２６には、受信フレームの有効領域を示す受信フレームイネーブルが供給される（受信フレームの有効領域の先頭と同じクロックでイネーブル信号が出力される）。
【００２８】
スワップ処理部１２６は、ＤＡ/ＳＡ領域検知器１３２と、５つのシフタと、５つのセレクタとを含む。ＤＡ/ＳＡ領域検知器１３２は、受信フレームイネーブルのアサートを検知すると共に、ＭＡＣフレーム先頭を示す信号（以下「セレクタ切替信号」と称する）を出力する。第３シフタ１３８は、３段のシフタであって、ＤＡ/ＳＡ領域検知器１３２から出力されるセレクタ切替信号を１段、２段または３段遅延させる。
【００２９】
第１シフタ１３４及び第２シフタ１３６は、受信フレームを遅延させて出力するフレーム遅延シフタである。第１シフタ１３４は受信フレームを１段（１クロック）遅延させて出力する。第２シフタ１３６は、第１シフタ１３４の下流側に備えられ、第１シフタ１３４が１段（１クロック）遅延させた受信フレームをさらにもう１段（１クロック）遅延させる。
【００３０】
第１セレクタ１４４、第２セレクタ１４６、第３セレクタ１４８は、第１シフタ１３４、第２シフタ１３６によって遅延した受信フレームの宛先アドレスを受信フレームの送信元アドレスに置換する。第４セレクタ１５０、第５セレクタ１５２は、第１シフタ１３４、第２シフタ１３６によって遅延した受信フレームの送信元アドレスを自局アドレス供給部１３０から供給されるＭＡＣアドレスに置換する。
【００３１】
第１セレクタ１４４、第２セレクタ１４６、第４セレクタ１５０は、第１シフタ１３４と第２シフタ１３６との間に備えられる。第３セレクタ１４８、第５セレクタ１５２は、第２シフタ１３６の下流側に備えられる。以下、遅延した受信フレームの宛先アドレスを送信元アドレスに置換し、送信元アドレスをＭＡＣアドレスに置換する動作について詳述する。
【００３２】
図５は、図４に示すスワップ処理部１２６のタイミングチャートである。図中、理解を容易にするために、クロックをＣＬＫ、受信フレームイネーブルをＲＸＥＮＢ、受信フレームをＲＸＤ、ＭＡＣアドレスをＭＡＤＲと表記する。また、第１シフタ１３４、第２シフタ１３６、第３シフタ１３８を、それぞれ、ＳＦＴ１、ＳＦＴ２、ＳＦＴ３と表記する。とりわけ、第３シフタ１３８が１段遅延させた出力をＳＦＴ３[１]、第３シフタ１３８が２段遅延させた出力をＳＦＴ３[２]、第３シフタ１３８が３段遅延させた出力をＳＦＴ３[３]と表記する。第１セレクタ１４４、第２セレクタ１４６、第３セレクタ１４８、第４セレクタ１５０、第５セレクタ１５２を、それぞれ、ＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４、ＳＥＬ５と表記する。なお、本実施形態では、ビットのインデックスが大きい方を上位、小さい方を下位とする。
【００３３】
図５に示すように、第１セレクタ１４４の一方の入力端子には第１シフタ１３４によって１段遅延した受信フレームが入力される。他方の入力端子には、受信フレームの下位１６ビット［ＲＸＤ(１５:０）］を上位に、第１シフタ１３４が出力する下位１６ビット［ＳＦＴ１(１５:０）］を下位に持つ３２ビットデータが入力される。また、第１セレクタ１４４には、第３シフタ１３８を経て１段遅延したセレクタ切替信号（ＳＦＴ３[１]）が入力される。
【００３４】
第１セレクタ１４４は、セレクタ切替信号が入力されるクロックで、その出力を一方の入力端子から他方の入力端子に切り替える。これにより、１段遅延した受信フレームの１クロック目の宛先アドレス領域［ＤＡ(４７:１６）］が、他方の入力端子から入力される３２ビットデータ［ＳＡ(４７:３２）, ＤＡ(３１:１６）］に置換される。すなわち、１段遅延した受信フレームの１クロック目の上位１６ビット（宛先アドレス領域）が、受信フレームの２クロック目に含まれる送信元アドレスの１６ビット[ＳＡ(４７:３２)]に置換される。
【００３５】
第２セレクタ１４６の一方の入力端子には第１シフタ１３４によって１段遅延した受信フレームが入力される。他方の入力端子には、受信フレームの下位１６ビット［ＲＸＤ(１５:０）］を上位に、第１シフタ１３４が出力する下位１６ビット［ＳＦＴ１(１５:０）］を下位に持つ３２ビットデータが入力される。また、第２セレクタ１４６には、第３シフタ１３８を経て２段遅延したセレクタ切替信号（ＳＦＴ３[２]）が入力される。
【００３６】
第２セレクタ１４６は、セレクタ切替信号が入力されるクロックで、その出力を一方の入力端子から他方の入力端子に切り替える。これにより、１段遅延した受信フレームの２クロック目［ＤＡ(１５:０）, ＳＡ(４７:３２）］が、他方の入力端子から入力される３２ビットデータ［ＳＡ(１５:０）, ＳＡ(４７:３２）］に置換される。すなわち、１段遅延した受信フレームの２クロック目の上位１６ビット（宛先アドレス領域）が、受信フレームの３クロック目に含まれる送信元アドレスの１６ビット[ＳＡ(１５:０)]に置換される。
【００３７】
第３セレクタ１４８の一方の入力端子には第２シフタ１３６によって２段遅延した受信フレームが入力される。他方の入力端子には、受信フレームの上位１６ビット［ＲＸＤ(３１:１６）］を下位に、第２シフタ１３６が出力する上位１６ビット［ＳＦＴ２(３１:１６）］を下位に持つ３２ビットデータが入力される。また、第３セレクタ１４８には、第３シフタ１３８を経て２段遅延したセレクタ切替信号（ＳＦＴ３[２]）が入力される。
【００３８】
第３セレクタ１４８は、セレクタ切替信号が入力されるクロックで、その出力を一方の入力端子から他方の入力端子に切り替える。これにより、２段遅延した受信フレームの１クロック目［ＳＡ(４７:３２）, ＤＡ(３１:１６）］が、他方の入力端子から入力される３２ビットデータ［ＳＡ(４７:３２）, ＳＡ(３１:１６）］に置換される。すなわち、２段遅延した受信フレームの１クロック目の下位１６ビット（宛先アドレス領域）が、受信フレームの３クロック目に含まれる送信元アドレスの１６ビット[ＳＡ(３１:１６)]に置換される。
【００３９】
第４セレクタ１５０の一方の入力端子には第１シフタ１３４によって１段遅延した受信フレームが入力される。他方の入力端子には、自局アドレス供給部１３０から供給されるＭＡＣアドレスが入力される。また、第４セレクタ１５０には、第３シフタ１３８を経て３段遅延したセレクタ切替信号（ＳＦＴ３[３]）が入力される。
【００４０】
第４セレクタ１５０は、セレクタ切替信号が入力されるクロックで、その出力を一方の入力端子から他方の入力端子に切り替える。これにより、１段遅延した受信フレームの３クロック目の３２ビット（送信元アドレス領域：［ＳＡ(３１:０）］)が、他方の入力端子から入力されるＭＡＣアドレスの３２ビット［ＭＡＤＲ(３１:０）］に置換される。
【００４１】
第５セレクタ１５２の一方の入力端子には第２シフタ１３６によって２段遅延した受信フレームが入力される。他方の入力端子には、自局アドレス供給部１３０から供給されるＭＡＣアドレスが入力される。また、第５セレクタ１５２には、第３シフタ１３８を経て３段遅延したセレクタ切替信号（ＳＦＴ３[３]）が入力される。
【００４２】
第５セレクタ１５２は、セレクタ切替信号が入力されるクロックで、その出力を一方の入力端子から他方の入力端子に切り替える。これにより、２段遅延した受信フレームの２クロック目［ＳＡ(１５:０）,ＳＡ(４７:３２）］が、他方の入力端子から入力される３２ビットデータ［ＳＡ(１５:０）,ＭＡＤＲ(４７:３２）］に置換される。すなわち、２段遅延した受信フレームの２クロック目の下位１６ビット（送信元アドレス領域）が、ＭＡＣアドレスの１６ビット[ＭＡＤＲ(４７:３２)]に置換される。
【００４３】
上述した構成によれば、ストア・アンド・フォワード方式によらず、数段のパイプライン処理（シフタ）とデータ選択処理（セレクタ）の組み合わせの回路構成で、すなわちプログラム処理を行うことなくハードウェアのみによって、受信フレームの宛先アドレスと送信元アドレスのスワップ処理を完了することができる。これにより、メモリ（ループバックメモリ）の削減及び処理時間の大幅な短縮が可能となる。
【００４４】
回路構成が従来のようにループバックメモリを用いるものではなくパイプライン処理のため、フレームサイズによる処理時間の揺らぎが生じることもない。また、ループバックメモリを使用しないので、フレームサイズに依存した回路修正が必要なくなり、回路規模の大幅な削減を果たすと共に、ジャンボフレームなどの将来の企画の変更にも柔軟に対応することができる。
【００４５】
（比較例）
以下、本実施形態にかかるＦＰＧＡ１０４の効果を説明するために、ストア・アンド・フォワード方式である比較例を例示して対比する。図６は、比較例として例示するＤＭＡ制御部２１４の概略構成を示すブロック図である。なお、本実施形態と実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略する。
【００４６】
図６に示すように、比較例にかかるＤＭＡ制御部２１４は、ＣＰＵインターフェース１２０、フレームリード制御部１２２、フレーム情報解析部１２４、ループバックメモリ制御部２５４、ループバックメモリ２５６、セレクタ１２８を備える。以下、送信元へのループバックが設定されている場合におけるＤＭＡ制御部２１４の動作について説明する。
【００４７】
フレームリード制御部１２２は、ＣＰＵインターフェース１２０を通じてＭＡＣフレームの正常受信完了を示す割込通知を受けると、受信メモリ１１２から受信フレーム１フレーム分をリードし、ループバックメモリ２５６に格納する。受信フレーム１フレーム分をリードするのに必要な受信フレームの長さは、フレーム情報解析部１２４が受信フレームを解析して予めフレームリード制御部１２２に通知する。
【００４８】
フレームリード制御部１２２はループバックメモリ２５６への格納完了後、ループバックメモリ制御部２５４へこれを通知する。ループバックメモリ制御部２５４は、ループバックメモリ２５６に格納された受信フレームを、送信元アドレス領域、宛先アドレス領域、タイプ/長さ領域、ペイロード領域の順にリードする。これにより、スワップ処理を実現する。
【００４９】
（実施形態と比較例の対比）
図７は、本実施形態にかかるＦＰＧＡ１０４と比較例として例示したＤＭＡ制御部２１４を備えるＦＰＧＡのループバック遅延クロック数の対比図である。なお、ループバック遅延クロック数は、ループバックするフレームの最初のデータ（３２ビット）が送信メモリ１１６にとどくまでのクロック数（時間）とする。
【００５０】
図７に示すように、ストア・アンド・フォワード方式の比較例では、ＭＡＣフレームのフレームサイズが大きくなるほど遅延クロック数（時間）が飛躍的に増大していく。ループバックメモリ２５６への書込を完了した上で、ループバックメモリ制御部２５４がリードしなければならないためである。
【００５１】
対して、本実施形態にかかるＦＰＧＡ１０４（ＤＭＡ制御部２１４）では、フレームサイズに依存することなく、３段のパイプライン処理でスワップ処理を完了することができる。したがって、比較例のようにフレームサイズに依存する処理時間の揺らぎが生じない。そのため、本実施形態によれば処理時間の大幅な短縮が可能となる。
【００５２】
なお、ＭＡＣフレームの最大サイズは１５１４バイトであるのに対し、ループバックメモリ２５６のメモリ容量はＦＰＧＡデバイスに依存するが一般的に通常２Ｋ/４Ｋ/８Ｋバイト単位である。そのため、比較例にかかる構成では、使用しないメモリ領域を実装しなければならず無駄を生じてしまうが、本実施形態によればループバックメモリ２５６を使用しないので、このような無駄を生じることもない。
【００５３】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００５４】
例えば、上記実施形態では、レイヤ２すなわちデータリンク層のイーサネットにおけるループバックを想定して説明したが、宛先アドレスおよび送信元アドレスがフレームフォーマット内に存在するものについてのループバックであれば本発明を適用可能である。したがって、レイヤ３すなわちネットワーク層のＩＰ、レイヤ４すなわちトランスポート層のＴＣＰにも適用可能である。
【産業上の利用可能性】
【００５５】
本発明は、宛先アドレスと送信元アドレスがこの順に含まれる受信フレームをループバックするループバック回路に利用することができる。
【符号の説明】
【００５６】
１００…機器、１０２…ＰＨＹ、１０４…ＦＰＧＡ、１０６…ＣＰＵ、１０８…他の機器、１１０…受信処理部、１１２…受信メモリ、１１４…ＤＭＡ制御部、１１６…送信メモリ、１１８…送信処理部、１２０…ＣＰＵインターフェース、１２２…フレームリード制御部、１２４…フレーム情報解析部、１２６…スワップ処理部、１２８…セレクタ、１３０…自局アドレス供給部、１３２…ＤＡ/ＳＡ領域検知器、１３４…第１シフタ（フレーム遅延シフタ）、１３６…第２シフタ（フレーム遅延シフタ）、１３８…第３シフタ、１４４…第１セレクタ、１４６…第２セレクタ、１４８…第３セレクタ、１５０…第４セレクタ、１５２…第５セレクタ、２５４…ループバックメモリ制御部、２５６…ループバックメモリ
【図１】
0005892325.tif 000002
【図２】
0005892325.tif 000003
【図３】
0005892325.tif 000004
【図４】
0005892325.tif 000005
【図５】
0005892325.tif 000006
【図６】
0005892325.tif 000007
【図７】
0005892325.tif 000008