(57)【要約】【課題】パケットの制御処理を柔軟に実施することが可能なデータ転送装置を提供することである。【解決手段】本発明の一態様にかかるデータ転送装置１は、パケットに含まれるデータを格納するＦＩＦＯバッファ２１と、パケットの制御情報を格納するＦＩＦＯバッファ２２と、データをＦＩＦＯバッファ２１に格納するタイミング、及び制御情報をＦＩＦＯバッファ２２に格納するタイミングを制御する入力制御部１０と、ＦＩＦＯバッファ２１に格納されているデータ、及びＦＩＦＯバッファ２２に格納されている制御情報を読み出し、読み出した制御情報を用いて読み出したデータの出力を制御する出力制御部３０と、を備える。出力制御部３０は、ＦＩＦＯバッファ２１からデータを読み出すタイミングとＦＩＦＯバッファ２２から制御情報を読み出すタイミングとを調整して、パケットの先頭からデータの出力を制御する。【選択図】図１
2019153967.tif 000002
【特許請求の範囲】
【請求項１】
所定のパケット長を有するパケットに含まれるデータを格納する第１のＦＩＦＯバッファと、
前記パケットの制御情報を格納する第２のＦＩＦＯバッファと、
前記データを前記第１のＦＩＦＯバッファに格納するタイミング、及び前記制御情報を前記第２のＦＩＦＯバッファに格納するタイミングを制御する入力制御部と、
前記第１のＦＩＦＯバッファに格納されているデータ、及び前記第２のＦＩＦＯバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、
前記出力制御部は、前記第１のＦＩＦＯバッファから前記データを読み出すタイミングと前記第２のＦＩＦＯバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御する、
データ転送装置。
【請求項２】
前記パケットの制御情報には、前記パケットに含まれている第１の制御情報と、外部から供給される第２の制御情報と、が含まれており、
前記入力制御部は、入力される前記第１及び第２の制御情報のうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、前記第１及び第２の制御情報を前記第２のＦＩＦＯバッファに格納する、
請求項１に記載のデータ転送装置。
【請求項３】
前記入力制御部は、前記第１の制御情報と前記第２の制御情報とをラッチするラッチ回路を備え、
前記入力制御部は、前記第１及び第２の制御情報のうち時間軸上最も遅く入力される制御情報が入力されたタイミングで、前記ラッチ回路にラッチしている前記第１及び第２の制御情報を前記第２のＦＩＦＯバッファに格納する、
請求項２に記載のデータ転送装置。
【請求項４】
前記出力制御部は、前記第２のＦＩＦＯバッファに前記制御情報が格納されているか否かを判定可能に構成されており、前記第２のＦＩＦＯバッファに前記制御情報が格納されていると判定した場合、前記第１のＦＩＦＯバッファに格納されているデータ、及び前記第２のＦＩＦＯバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する、請求項１〜３のいずれか一項に記載のデータ転送装置。
【請求項５】
前記出力制御部は、前記入力制御部が前記第２のＦＩＦＯバッファに前記制御情報を書き込む際に出力する制御情報書き込みイネーブル信号を入力可能に構成されており、
前記出力制御部は、入力された前記制御情報書き込みイネーブル信号に基づいて、前記第２のＦＩＦＯバッファに前記制御情報が格納されているか否かを判定し、前記第２のＦＩＦＯバッファに前記制御情報が格納されていると判定した場合、前記第１のＦＩＦＯバッファに格納されているデータを読み出すためのデータ読み出しイネーブル信号、及び前記第２のＦＩＦＯバッファに格納されている制御情報を読み出すための制御情報読み出しイネーブル信号を生成する、
請求項４に記載のデータ転送装置。
【請求項６】
前記出力制御部は、前記第２のＦＩＦＯバッファに前記制御情報が格納されていると判定した場合、前記データ読み出しイネーブル信号と前記制御情報読み出しイネーブル信号とを同時に活性状態とする、請求項５に記載のデータ転送装置。
【請求項７】
前記制御情報は前記データの出力ポートを示すポート情報であり、
前記出力制御部は、前記第１のＦＩＦＯバッファから読み出したデータを前記ポート情報に応じたポートに出力する、
請求項１〜６のいずれか一項に記載のデータ転送装置。
【請求項８】
前記制御情報は前記データのエラー情報であり、
前記出力制御部は、前記エラー情報がエラーを示す場合、前記第１のＦＩＦＯバッファから読み出したデータを無効にする、
請求項１〜７のいずれか一項に記載のデータ転送装置。
【請求項９】
所定のパケット長を有するパケットに含まれるデータを第１のＦＩＦＯバッファに格納するタイミングと、前記パケットの制御情報を第２のＦＩＦＯバッファに格納するタイミングと、を制御する第１のステップと、
前記第１のＦＩＦＯバッファに格納されているデータ、及び前記第２のＦＩＦＯバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する第２のステップと、を備え、
前記第２のステップにおいて、前記第１のＦＩＦＯバッファから前記データを読み出すタイミングと前記第２のＦＩＦＯバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御する、
データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置、及びデータ転送方法に関し、特に制御情報を含むデータを転送するためのデータ転送装置、及びデータ転送方法に関する。
【背景技術】
【０００２】
入力されたデータをＦＩＦＯ（First In, First Out）バッファに一時的に格納した後、所定のタイミングでＦＩＦＯバッファに格納されているデータを転送するデータ転送装置が知られている。
【０００３】
特許文献１には、システム全体の処理能力を高めることができる受信用のＦＩＦＯ装置に関する技術が開示されている。特許文献１に開示されているＦＩＦＯ装置では、ＦＩＦＯバッファに書き込むパケットの先頭アドレスをラッチし、パケット末端に配置されたエラー情報が入力されるまで、ＦＩＦＯバッファに書き込まれたパケットの読み出しを禁止している。そして、書き込んだパケットがエラーパケットである場合、ラッチしていた先頭アドレスに書き込みアドレスを戻すことで、パケットの上書きを行い、パケットを破棄している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３４４５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されているＦＩＦＯ装置では、パケットの制御情報を保持する機能がないためパケットの制御情報を管理することができない。このため、パケットの先頭から制御処理を行うことができず、パケットの制御処理を柔軟に実施することができないという問題がある。
【０００６】
上記課題に鑑み本発明の目的は、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一態様にかかるデータ転送装置は、所定のパケット長を有するパケットに含まれるデータを格納する第１のＦＩＦＯバッファと、前記パケットの制御情報を格納する第２のＦＩＦＯバッファと、前記データを前記第１のＦＩＦＯバッファに格納するタイミング、及び前記制御情報を前記第２のＦＩＦＯバッファに格納するタイミングを制御する入力制御部と、前記第１のＦＩＦＯバッファに格納されているデータ、及び前記第２のＦＩＦＯバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、前記出力制御部は、前記第１のＦＩＦＯバッファから前記データを読み出すタイミングと前記第２のＦＩＦＯバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御する。
【０００８】
本発明の一態様にかかるデータ転送方法は、所定のパケット長を有するパケットに含まれるデータを第１のＦＩＦＯバッファに格納するタイミングと、前記パケットの制御情報を第２のＦＩＦＯバッファに格納するタイミングと、を制御する第１のステップと、前記第１のＦＩＦＯバッファに格納されているデータ、及び前記第２のＦＩＦＯバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する第２のステップと、を備え、前記第２のステップにおいて、前記第１のＦＩＦＯバッファから前記データを読み出すタイミングと前記第２のＦＩＦＯバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御する。
【発明の効果】
【０００９】
本発明により、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるデータ転送装置を示すブロック図である。
【図２】実施の形態２にかかるデータ転送装置が備える入力制御部の構成例を示すブロック図である。
【図３】実施の形態２にかかるデータ転送装置が備える入力制御部の詳細な構成例を示す図である。
【図４】実施の形態２にかかるデータ転送装置が備える出力制御部の構成例を示すブロック図である。
【図５】図４に示す出力制御部が備える制御情報カウント部の詳細な構成例を示す図である。
【図６】図４に示す出力制御部が備える読み出しイネーブル信号生成部の詳細な構成例を示す図である。
【図７】図４に示す出力制御部が備えるデータ処理部の詳細な構成例を示す図である。
【図８】実施の形態２にかかるデータ転送装置に供給されるデータの一例を説明するための図である。
【図９】実施の形態２にかかるデータ転送装置の動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。
図１は、実施の形態１にかかるデータ転送装置を示すブロック図である。図１に示すように、本実施の形態にかかるデータ転送装置１は、入力制御部１０、ＦＩＦＯ部２０、及び出力制御部３０を備える。ＦＩＦＯ部２０は、データ用ＦＩＦＯバッファ２１と制御情報用ＦＩＦＯバッファ２２とを備える。
【００１２】
本実施の形態にかかるデータ転送装置１は、所定のパケット長を有するパケットを入力制御部１０において入力し、この入力したパケットをＦＩＦＯ部２０に一時的に保持する。そして、出力制御部３０において、ＦＩＦＯ部２０に格納されているパケットを所定のタイミングで読み出して出力する。
【００１３】
データ転送装置１が転送するパケットは所定のパケット長を有する。この所定のパケット長は可変であり、データ転送装置１は可変長のパケットを転送することができる。パケットには、データと制御情報とが含まれている。具体的には、図１に示す入力パケットＩ_ＤＡＴＡには、データと制御情報とが含まれている。
【００１４】
入力制御部１０には、入力パケットＩ_ＤＡＴＡ、入力パケットＩ_ＤＡＴＡの末端を示すラスト情報Ｉ_ＬＡＳＴ、入力パケットＩ_ＤＡＴＡが有効データであるか否かを示す有効信号Ｉ_ＶＡＬＩＤ、及びパケットＩ_ＤＡＴＡの制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが供給される。ここで、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは、入力パケットＩ_ＤＡＴＡに含まれている制御情報とは異なる制御情報である。つまり、パケットの制御情報は、入力パケットＩ_ＤＡＴＡに含まれている制御情報と、外部から供給される制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯとがある。入力パケットＩ_ＤＡＴＡに含まれている制御情報は、入力パケットＩ_ＤＡＴＡの途中または末端に配置されている。
【００１５】
入力制御部１０は、データ用ＦＩＦＯバッファ２１にデータｗＤＡＴＡおよびデータ書き込みイネーブル信号Ｄ_ｗｅｎａを出力する。また、入力制御部１０は、制御情報用ＦＩＦＯバッファ２２に制御情報Ｃ_ｗＤＡＴＡおよび制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを出力する。制御情報書き込みイネーブル信号Ｃ_ｗｅｎａは、出力制御部３０にも供給される。
【００１６】
データ用ＦＩＦＯバッファ２１は、データ書き込みイネーブル信号Ｄ_ｗｅｎａが活性状態（例えば、ハイレベル）のときに、データｗＤＡＴＡを格納する。また、制御情報用ＦＩＦＯバッファ２２は、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが活性状態のときに、制御情報Ｃ_ｗＤＡＴＡを格納する。
【００１７】
本実施の形態にかかるデータ転送装置１において、入力制御部１０は、データ用ＦＩＦＯバッファ２１にデータｗＤＡＴＡを格納するタイミング、及び制御情報用ＦＩＦＯバッファ２２に制御情報Ｃ_ｗＤＡＴＡを格納するタイミングを制御している。
【００１８】
出力制御部３０には、入力制御部１０から制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが供給される。また、出力制御部３０は、データ用ＦＩＦＯバッファ２１にデータ読み出しイネーブル信号Ｄ_ｒｅｎａを、制御情報用ＦＩＦＯバッファ２２に制御情報読み出しイネーブル信号Ｃ_ｒｅｎａをそれぞれ出力する。
【００１９】
データ用ＦＩＦＯバッファ２１は、出力制御部３０から活性状態のデータ読み出しイネーブル信号Ｄ_ｒｅｎａが供給されると、出力制御部３０にデータｒＤＡＴＡを出力する。制御情報用ＦＩＦＯバッファ２２は、出力制御部３０から活性状態の制御情報読み出しイネーブル信号Ｃ_ｒｅｎａが供給されると、出力制御部３０に制御情報Ｃ_ｒＤＡＴＡを出力する。
【００２０】
出力制御部３０は、データ用ＦＩＦＯバッファ２１からデータｒＤＡＴＡを読み出し、制御情報用ＦＩＦＯバッファ２２から制御情報Ｃ_ｒＤＡＴＡを読み出す。そして、制御情報Ｃ_ｒＤＡＴＡを用いて、データｒＤＡＴＡの出力を制御して、制御後のデータである出力データＯ_ＤＡＴＡを出力する。
【００２１】
このとき、出力制御部３０は、データ用ＦＩＦＯバッファ２１からデータｒＤＡＴＡを読み出すタイミングと、制御情報用ＦＩＦＯバッファ２２から制御情報Ｃ_ｒＤＡＴＡを読み出すタイミングとを調整して、パケット（データｒＤＡＴＡ）の先頭からデータの出力を制御している。
【００２２】
ここで、出力制御部３０は、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されているか否かを判定可能に構成されている。例えば、出力制御部３０は、入力制御部１０から供給された制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを用いて、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されているか否かを判定することができる。
【００２３】
つまり、制御情報用ＦＩＦＯバッファ２２は、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが活性状態のときに制御情報Ｃ_ｗＤＡＴＡを格納する。よって、出力制御部３０は、この制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが活性状態となった際に、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されていると判定することができる。
【００２４】
出力制御部３０は、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されていると判定した場合、データ用ＦＩＦＯバッファ２１に格納されているデータｒＤＡＴＡ、及び制御情報用ＦＩＦＯバッファ２２に格納されている制御情報Ｃ_ｒＤＡＴＡを読み出す。そして、読み出した制御情報Ｃ_ｒＤＡＴＡを用いて、読み出したデータｒＤＡＴＡの出力を制御する。
【００２５】
具体的には、出力制御部３０は、入力された制御情報書き込みイネーブル信号Ｃ_ｗｅｎａに基づいて、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されているか否かを判定する。そして、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されていると判定した場合、データ用ＦＩＦＯバッファ２１に格納されているデータｒＤＡＴＡを読み出すためのデータ読み出しイネーブル信号Ｄ_ｒｅｎａを生成する。更に、制御情報用ＦＩＦＯバッファ２２に格納されている制御情報Ｃ_ｒＤＡＴＡを読み出すための制御情報読み出しイネーブル信号Ｃ_ｒｅｎａを生成する。このとき、出力制御部３０は、データ読み出しイネーブル信号Ｄ_ｒｅｎａと制御情報読み出しイネーブル信号Ｃ_ｒｅｎａとを同時に活性状態とする。
【００２６】
上述のように、本実施の形態にかかるデータ転送装置１では、パケットに含まれるデータをデータ用ＦＩＦＯバッファ２１に格納し、パケットの制御情報を制御情報用ＦＩＦＯバッファ２２に格納している。そして、データ用ＦＩＦＯバッファ２１および制御情報用ＦＩＦＯバッファ２２からデータｒＤＡＴＡおよび制御情報Ｃ_ｒＤＡＴＡをそれぞれ読み出す際に、データ用ＦＩＦＯバッファ２１からデータｒＤＡＴＡを読み出すタイミングと、制御情報用ＦＩＦＯバッファ２２から制御情報Ｃ_ｒＤＡＴＡを読み出すタイミングとを調整している。よって、パケット（データｒＤＡＴＡ）の先頭からデータの出力を制御することができるので、パケットの制御処理を柔軟に実施することができる。
【００２７】
したがって、本実施の形態にかかる発明により、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することができる。
【００２８】
＜実施の形態２＞
次に、本発明の実施の形態２について説明する。以下で説明する実施の形態２では、実施の形態１で説明したデータ転送装置１（図１参照）の具体的な構成例を示している。
【００２９】
図２は、図１に示したデータ転送装置１が備える入力制御部１０の構成例を示すブロック図である。図２に示すように、入力制御部１０は、制御情報生成部１１と書き込みイネーブル信号生成部１２とを備える。
【００３０】
実施の形態１で説明した場合と同様に、入力制御部１０には、入力パケットＩ_ＤＡＴＡ、入力パケットＩ_ＤＡＴＡの末端を示すラスト情報Ｉ_ＬＡＳＴ、入力パケットＩ_ＤＡＴＡが有効データであるか否かを示す有効信号Ｉ_ＶＡＬＩＤ、及びパケットＩ_ＤＡＴＡの制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが供給される。
【００３１】
図８に、データ転送装置１に供給されるデータの一例を示す。図８に示すように、入力パケットＩ_ＤＡＴＡのパケット長は可変である。図８では入力パケットＩ_ＤＡＴＡのパケット長をｎバイト（ｎは２以上の整数）としている。また、各々のパケットのデータ幅は８ビットであるものとする。入力パケットＩ_ＤＡＴＡには、入力パケットＩ_ＤＡＴＡが有効データであるか否かを示す有効信号Ｉ_ＶＡＬＩＤ（１ビット）が付加されている。入力パケットＩ_ＤＡＴＡが有効である場合は有効信号Ｉ_ＶＡＬＩＤがハイレベルになり、入力パケットＩ_ＤＡＴＡが供給されない場合（無効な場合）は、有効信号Ｉ_ＶＡＬＩＤがロウレベルになる。また、入力パケットＩ_ＤＡＴＡには、入力パケットＩ_ＤＡＴＡの末端を示すラスト情報Ｉ_ＬＡＳＴ（１ビット）が付加されている。
【００３２】
更に、入力パケットＩ_ＤＡＴＡには制御情報が付加されている。図８に示す例では、パケットの制御情報は、入力パケットＩ_ＤＡＴＡに付加されている制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯ、及び入力パケットＩ_ＤＡＴＡに含まれている制御情報ＰＯＲＴ_ＩＮＦＯである。
【００３３】
制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは外部から付加される制御情報であり、例えば入力パケットＩ_ＤＡＴＡのエラー情報（１ビット）である。図８に示すように、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは、最後のパケットと同じタイミングで入力パケットＩ_ＤＡＴＡに付加される。換言すると、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは、パケットの末端に配置されている。
【００３４】
また、制御情報ＰＯＲＴ_ＩＮＦＯは、入力パケットＩ_ＤＡＴＡに含まれている制御情報であり、パケットの転送先（ポート）を示す情報である。図８に示す例では、制御情報ＰＯＲＴ_ＩＮＦＯは、入力パケットＩ_ＤＡＴＡの２バイト目の第７ビットに含まれている。以下で示す例では、制御情報ＰＯＲＴ_ＩＮＦＯがロウレベルの場合はポートＰ１にパケットを転送し、制御情報ＰＯＲＴ_ＩＮＦＯがハイレベルの場合はポートＰ２にパケットを転送するものとする。
【００３５】
また、ＦＩＦＯ部２０のメモリ容量の一例を挙げると、例えば、データ用ＦＩＦＯバッファ２１の容量を２０４８×９ビット、制御情報用ＦＩＦＯバッファ２２の容量を３２×２ビットとすることができる。制御情報用ＦＩＦＯバッファ２２の容量は、データ用ＦＩＦＯバッファ２１の容量を最小パケット長で割った容量を必要とする。例えば、最小パケット長を６４とした場合は、２０４８／６４＝３２ビットとなる。
【００３６】
図２に示すように、入力制御部１０は、入力パケットＩ_ＤＡＴＡ（８ビット）とラスト情報Ｉ_ＬＡＳＴ（１ビット）とをまとめて、データｗＤＡＴＡ（９ビット）として出力する。このとき、入力パケットＩ_ＤＡＴＡに含まれている制御情報ＰＯＲＴ_ＩＮＦＯは、制御情報生成部１１に供給される。また、制御情報生成部１１には、外部から制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが供給される。制御情報生成部１１は、これらの制御情報、つまり、制御情報ＰＯＲＴ_ＩＮＦＯと制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯと保持し、保持しているこれらの制御情報をまとめて、制御情報Ｃ_ｗＤＡＴＡとして出力する。また、制御情報生成部１１は、ラスト情報Ｉ_ＬＡＳＴが供給されると、保持している制御情報ＰＯＲＴ_ＩＮＦＯおよび制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯをリセットする。
【００３７】
入力制御部１０は、入力された有効信号Ｉ_ＶＡＬＩＤをデータ書き込みイネーブル信号Ｄ_ｗｅｎａとして出力する。また、有効信号Ｉ_ＶＡＬＩＤは、書き込みイネーブル信号生成部１２にも供給される。書き込みイネーブル信号生成部１２には、ラスト情報Ｉ_ＬＡＳＴも供給される。書き込みイネーブル信号生成部１２は、有効信号Ｉ_ＶＡＬＩＤとラスト情報Ｉ_ＬＡＳＴとを用いて、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを生成する。
【００３８】
具体的には、書き込みイネーブル信号生成部１２は、制御情報ＰＯＲＴ_ＩＮＦＯおよび制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯのうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、活性状態の制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを生成する。これにより、制御情報ＰＯＲＴ_ＩＮＦＯおよび制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯのうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、制御情報用ＦＩＦＯバッファ２２に制御情報ＰＯＲＴ_ＩＮＦＯおよび制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯを格納することができる。
【００３９】
図８に示した例では、制御情報ＰＯＲＴ_ＩＮＦＯは入力パケットＩ_ＤＡＴＡの２バイト目に含まれており、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは入力パケットＩ_ＤＡＴＡの最後に付加される。よって、この場合は、時間軸上最も遅く入力される制御情報が入力されたタイミングは、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力されたタイミングである。
【００４０】
書き込みイネーブル信号生成部１２は、有効信号Ｉ_ＶＡＬＩＤとラスト情報Ｉ_ＬＡＳＴとを入力しているので、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力されたタイミングを把握することができる。よって、書き込みイネーブル信号生成部１２は、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力されたタイミング（ラスト情報Ｉ_ＬＡＳＴが活性状態となるタイミング）に、活性状態の制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを生成することができる。
【００４１】
図３は、入力制御部１０の更に詳細な構成例を示す図であり、制御情報生成部１１および書き込みイネーブル信号生成部１２の具体的な構成例を示している。
【００４２】
図３に示すように、制御情報生成部１１は、ラッチ回路１４、１５を備える。ラッチ回路１４は、入力パケットＩ_ＤＡＴＡに含まれている制御情報ＰＯＲＴ_ＩＮＦＯを入力して保持する。そして、ラッチ回路１４は、保持している制御情報ＰＯＲＴ_ＩＮＦＯをクロック信号Ｉ_ＣＬＫに同期して出力する。また、ラッチ回路１４は、ラスト情報Ｉ_ＬＡＳＴが供給されると、保持している制御情報ＰＯＲＴ_ＩＮＦＯをリセットする。ラッチ回路１５は、外部から供給された制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯを入力して保持する。そして、ラッチ回路１５は、保持している制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯをクロック信号Ｉ_ＣＬＫに同期して出力する。また、ラッチ回路１５は、ラスト情報Ｉ_ＬＡＳＴが供給されると、保持している制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯをリセットする。ラッチ回路１４から出力された制御情報ＰＯＲＴ_ＩＮＦＯとラッチ回路１５から出力された制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは、まとめて制御情報Ｃ_ｗＤＡＴＡとして出力される。
【００４３】
書き込みイネーブル信号生成部１２は、カウンタ１６およびセレクタ１７を備える。カウンタ１６は、有効信号Ｉ_ＶＡＬＩＤが供給されると、クロック信号Ｉ_ＣＬＫと同期してカウントアップする。カウンタ１６のカウント値Ｌ_ｃｏｕｎｔは、入力パケットＩ_ＤＡＴＡのパケット位置に対応している。また、カウンタ１６は、ラスト情報Ｉ_ＬＡＳＴが供給されると、カウンタ１６のカウント値Ｌ_ｃｏｕｎｔをリセットする。
【００４４】
セレクタ１７には、ラスト情報Ｉ_ＬＡＳＴ、カウンタ１６のカウント値Ｌ_ｃｏｕｎｔ、及び位置情報ＣＴＲＬ_ＰＯＳが供給される。ここで、位置情報ＣＴＲＬ_ＰＯＳは、入力パケットＩ_ＤＡＴＡに含まれている制御情報ＰＯＲＴ_ＩＮＦＯの位置を示す情報である。本実施の形態に示す例では、図８に示したように、制御情報ＰＯＲＴ_ＩＮＦＯは入力パケットＩ_ＤＡＴＡの２バイト目に含まれているので、位置情報ＣＴＲＬ_ＰＯＳは固定値“２”となる。セレクタ１７は、カウンタ１６のカウント値Ｌ_ｃｏｕｎｔと位置情報ＣＴＲＬ_ＰＯＳの値とを比較することで、制御情報ＰＯＲＴ_ＩＮＦＯが入力されたタイミングを判定することができる。具体的には、カウンタ１６のカウント値Ｌ_ｃｏｕｎｔが“２”である場合に、制御情報ＰＯＲＴ_ＩＮＦＯが入力されたと判定することができる。
【００４５】
また、セレクタ１７には、ラスト情報Ｉ_ＬＡＳＴが供給される。本実施の形態に示す例では、図８に示したように、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは入力パケットＩ_ＤＡＴＡの最後に付加されるので、ラスト情報Ｉ_ＬＡＳＴが供給されるタイミングは、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが供給されるタイミングと対応している。よって、セレクタ１７は、制御情報ＰＯＲＴ_ＩＮＦＯが供給されるタイミング、及び制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが供給されるタイミングを把握することができる。
【００４６】
したがって、セレクタ１７は、制御情報ＰＯＲＴ_ＩＮＦＯおよび制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯのうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、活性状態（“１”）の制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを出力することができる。つまり、セレクタ１７は、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力されたタイミングで、活性状態（“１”）の制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを出力する。
【００４７】
なお、上記に示した例では、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力パケットＩ_ＤＡＴＡの最後に付加されていたので、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯの位置を示す情報としてラスト情報Ｉ_ＬＡＳＴを用いることができた。しかし、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力パケットＩ_ＤＡＴＡの途中に付加されている場合は、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯの位置を示す情報を別途セレクタ１７に供給する必要がある。
【００４８】
次に、出力制御回路３０の構成例について説明する。図４は、出力制御部３０の構成例を示すブロック図である。図４に示すように、出力制御回路３０は、制御情報カウント部３１、読み出しイネーブル信号生成部３２、及びデータ処理部３３を備える。
【００４９】
制御情報カウント部３１は、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａ及び制御情報読み出しイネーブル信号Ｃ_ｒｅｎａを用いて、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されているか否かを判定する。そして、制御情報用ＦＩＦＯバッファ２２に制御情報が格納されている場合、制御情報が格納されていることを示すｄａｔａ_ｅｘｉｓｔ信号を読み出しイネーブル信号生成部３２に出力する。
【００５０】
読み出しイネーブル信号生成部３２は、制御情報が格納されていることを示すｄａｔａ_ｅｘｉｓｔ信号が供給されると、データ用ＦＩＦＯバッファ２１に格納されているデータｒＤＡＴＡを読み出すためのデータ読み出しイネーブル信号Ｄ_ｒｅｎａを生成する。更に、制御情報用ＦＩＦＯバッファ２２に格納されている制御情報Ｃ_ｒＤＡＴＡを読み出すための制御情報読み出しイネーブル信号Ｃ_ｒｅｎａを生成する。このとき、読み出しイネーブル信号生成部３２は、データ読み出しイネーブル信号Ｄ_ｒｅｎａと制御情報読み出しイネーブル信号Ｃ_ｒｅｎａとを同時に活性状態とする。
【００５１】
データ処理部３３は、データ用ＦＩＦＯバッファ２１から読み出されたデータｒＤＡＴＡを、制御情報用ＦＩＦＯバッファ２２から読み出された制御情報Ｃ_ｒＤＡＴＡを用いて制御して出力する。このとき、データ処理部３３は、制御情報Ｃ_ｒＤＡＴＡを用いてデータｒＤＡＴＡの先頭からデータｒＤＡＴＡの出力を制御する。
【００５２】
本実施の形態では、制御情報Ｃ_ｒＤＡＴＡに含まれる制御情報ＰＯＲＴ_ＩＮＦＯは、データｒＤＡＴＡの出力ポートを示すポート情報であり、データ処理部３３は、データ用ＦＩＦＯバッファ２１から読み出されたデータｒＤＡＴＡをポート情報に応じた出力ポート（Ｏ_Ｐ１_ＤＡＴＡまたはＯ_Ｐ２_ＤＡＴＡ）に出力する。
【００５３】
また、本実施の形態では、制御情報Ｃ_ｒＤＡＴＡに含まれる制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯは、データｒＤＡＴＡのエラー情報であり、データ処理部３３は、エラー情報がエラーを示す場合、データ用ＦＩＦＯバッファ２１から読み出されたデータｒＤＡＴＡを無効にする。図４に示す例では、データ処理部３３は、エラー情報がエラーを示す場合、データ用ＦＩＦＯバッファ２１から読み出されたデータｒＤＡＴＡをエラー出力ポートＯ_Ｅｒｒ_ＤＡＴＡに出力している。なお、エラー処理は、エラー出力ポートＯ_Ｅｒｒ_ＤＡＴＡにデータを出力する以外に、マスク処理やダミーパケットの送信などを用いてもよい。
【００５４】
図５は、図４に示す出力制御部３０が備える制御情報カウント部３１の詳細な構成例を示す図である。図５に示すように、制御情報カウント部３１は、カウンタ３５、セレクタ３６、及びフリップフロップ回路ＦＦ１を備える。カウンタ３５は、入力制御部１０から制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが供給されるとカウントアップを行い、制御情報読み出しイネーブル信号Ｃ_ｒｅｎａが供給されるとカウントダウンを行う。つまり、カウンタ３５のカウント値ｄａｔａ_ｃｏｕｎｔは、制御情報用ＦＩＦＯバッファ２２に格納されている制御情報の量に対応している。カウンタ３５のカウント値ｄａｔａ_ｃｏｕｎｔは、セレクタ３６に供給される。
【００５５】
セレクタ３６は、カウンタ３５のカウント値ｄａｔａ_ｃｏｕｎｔに応じて、制御情報が格納されていることを示すｄａｔａ_ｅｘｉｓｔ信号を出力する。具体的には、セレクタ３６は、カウント値ｄａｔａ_ｃｏｕｎｔが“０”であれば“０”（ロウレベル）を出力し、カウント値ｄａｔａ_ｃｏｕｎｔが“１”以上であれば“１”（ハイレベル）を出力する。また、フリップフロップ回路ＦＦ１は、ｄａｔａ_ｅｘｉｓｔ信号を１クロック遅延したｄａｔａ_ｅｘｉｓｔ_１ｄ信号を生成する。
【００５６】
図６は、図４に示す出力制御部３０が備える読み出しイネーブル信号生成部３２の詳細な構成例を示す図である。図６に示すように、読み出しイネーブル信号生成部３２は、論理積回路ＡＮＤ１、ＡＮＤ２、論理和回路ＯＲ１〜ＯＲ３、及びフリップフロップ回路ＦＦ２、ＦＦ３を備える。
【００５７】
ＡＮＤ１は、読み出しデータｒＤＡＴＡの最後を示すｒＬＡＳＴ信号とｄａｔａ_ｅｘｉｓｔ信号とを入力し、これらの信号の論理積演算結果を出力する。ＡＮＤ２は、ｄａｔａ_ｅｘｉｓｔ信号、ｄａｔａ_ｅｘｉｓｔ_１ｄ信号を反転した信号、及びデータ読み出しイネーブル信号Ｄ_ｒｅｎａを反転した信号を入力し、これらの信号の論理積演算結果を出力する。フリップフロップ回路ＦＦ２は、ＡＮＤ２の出力のタイミングを調整する。ＯＲ１は、ＡＮＤ１の出力とフリップフロップ回路ＦＦ２の出力の論理和演算結果を出力する。ＯＲ２は、ＯＲ１の出力とフリップフロップ回路ＦＦ３の出力の論理和演算結果を出力する。ＯＲ３は、ＯＲ１の出力とフリップフロップ回路ＦＦ３の出力の論理和演算結果を出力する。フリップフロップ回路ＦＦ３は、ＯＲ３の出力をラッチし、ｒＬＡＳＴ信号がハイレベルとなったときにリセットする。
【００５８】
読み出しイネーブル信号生成部３２は、データ読み出しイネーブル信号Ｄ_ｒｅｎａと制御情報読み出しイネーブル信号Ｃ_ｒｅｎａとを生成する。このとき、制御情報読み出しイネーブル信号Ｃ_ｒｅｎａを生成する方法には、出力制御部３０がデータｒＤＡＴＡをデータ用ＦＩＦＯバッファ２１から読み出している場合（読み出し動作中）と、読み出し動作中ではない場合との２つのパターンがある。
【００５９】
まず、読み出し動作中の場合について説明する。読み出し動作中の場合は、データ読み出しイネーブル信号Ｄ_ｒｅｎａがハイレベルなので、ＡＮＤ２の出力はロウレベルになる。よって、制御情報読み出しイネーブル信号Ｃ_ｒｅｎａはロウレベルの状態を維持する。その後、読み出し動作が終了するタイミングで、読み出しデータｒＤＡＴＡの最後を示すｒＬＡＳＴ信号が立ち上がる。これにより、ハイレベルのｒＬＡＳＴ信号がＡＮＤ１に供給される。このタイミングでｄａｔａ_ｅｘｉｓｔ信号がロウレベルである場合は、ＡＮＤ１およびＡＮＤ２の出力はロウレベルの状態を維持するので、データ読み出しイネーブル信号Ｄ_ｒｅｎａおよび制御情報読み出しイネーブル信号Ｃ_ｒｅｎａはロウレベルを維持する。一方、ｒＬＡＳＴ信号が立ち上がった際にｄａｔａ_ｅｘｉｓｔ信号がハイレベルの状態である場合は、ＡＮＤ１がハイレベルの信号をＯＲ１に出力する。これにより、ＯＲ１の出力およびＯＲ２の出力がハイレベルになるので、データ読み出しイネーブル信号Ｄ_ｒｅｎａおよび制御情報読み出しイネーブル信号Ｃ_ｒｅｎａが同一のタイミングでハイレベルになる。
【００６０】
また、ＯＲ１の出力がハイレベルになるので、ＯＲ３の出力もハイレベルになり、フリップフロップ回路ＦＦ３はハイレベルの信号をラッチする。このため、ＯＲ２にはフリップフロップ回路ＦＦ３からハイレベルの信号が供給され続けるので、データ読み出しイネーブル信号Ｄ_ｒｅｎａはハイレベルの状態を維持する。この状態は、データ用ＦＩＦＯバッファ２１からデータｒＤＡＴＡを読み出す動作が終了するまで、つまりｒＬＡＳＴ信号がフリップフロップ回路ＦＦ３に供給されるまで継続される。
【００６１】
次に、読み出し動作中ではない場合について説明する。読み出し動作中ではない場合は、ｒＬＡＳＴ信号がハイレベルにならないので、ＡＮＤ１の出力はロウレベルの状態となる。一方、ＡＮＤ２は、ｄａｔａ_ｅｘｉｓｔ信号がハイレベル、ｄａｔａ_ｅｘｉｓｔ_１ｄ信号がロウレベル、データ読み出しイネーブル信号Ｄ_ｒｅｎａがロウレベルの場合、ハイレベルの信号をフリップフロップ回路ＦＦ２に出力する。フリップフロップ回路ＦＦ２は、ＡＮＤ２から出力されたハイレベルの信号のタイミングを調整した後、ＯＲ１にハイレベルの信号を出力する。これにより、ＯＲ１の出力およびＯＲ２の出力がハイレベルになるので、データ読み出しイネーブル信号Ｄ_ｒｅｎａおよび制御情報読み出しイネーブル信号Ｃ_ｒｅｎａが同一のタイミングでハイレベルになる。
【００６２】
また、ＯＲ１の出力がハイレベルになるので、ＯＲ３の出力もハイレベルになり、フリップフロップ回路ＦＦ３はハイレベルの信号をラッチする。このため、ＯＲ２にはフリップフロップ回路ＦＦ３からハイレベルの信号が供給され続けるので、データ読み出しイネーブル信号Ｄ_ｒｅｎａはハイレベルの状態を維持する。この状態は、データ用ＦＩＦＯバッファ２１からデータｒＤＡＴＡを読み出す動作が終了するまで、つまりｒＬＡＳＴ信号がフリップフロップ回路ＦＦ３に供給されるまで継続される。
【００６３】
図７は、図４に示す出力制御部３０が備えるデータ処理部３３の詳細な構成例を示す図である。図７に示すように、データ処理部３３は、ラッチ回路４１およびセレクタ４２を備える。
【００６４】
ラッチ回路４１は、制御情報用ＦＩＦＯバッファ２２から読み出された制御情報Ｃ_ｒＤＡＴＡを、データｒＤＡＴＡの末端が読み出されるまで、つまり、読み出しデータｒＤＡＴＡの最後を示すｒＬＡＳＴ信号が読み出されるまでラッチする。
【００６５】
セレクタ４２は、データ用ＦＩＦＯバッファ２１から読み出されたデータｒＤＡＴＡの出力先を、ラッチ回路４１でラッチしていた制御情報ｌａｔ_ＣＴＲＬ_ＤＡＴＡを用いて切り替える。このとき、セレクタ４２は、制御情報ｌａｔ_ＣＴＲＬ_ＤＡＴＡを用いて、データｒＤＡＴＡの先頭からデータｒＤＡＴＡの出力先を切り替える。
【００６６】
制御情報ｌａｔ_ＣＴＲＬ_ＤＡＴＡには、データｒＤＡＴＡの出力ポートを示す制御情報ＰＯＲＴ_ＩＮＦＯ、及びデータｒＤＡＴＡのエラー情報である制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが含まれている。
【００６７】
セレクタ４２は、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯがエラーを示す場合、データｒＤＡＴＡをエラー出力ポートＯ_Ｅｒｒ_ＤＡＴＡに出力する。また、セレクタ４２は、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが正常を示す場合は、データｒＤＡＴＡを制御情報ＰＯＲＴ_ＩＮＦＯが示すポートに出力する。具体的には、セレクタ４２は、制御情報ＰＯＲＴ_ＩＮＦＯがポートＰ１を示す場合、データｒＤＡＴＡを出力ポートＯ_Ｐ１_ＤＡＴＡに出力する。また、セレクタ４２は、制御情報ＰＯＲＴ_ＩＮＦＯがポートＰ２を示す場合、データｒＤＡＴＡを出力ポートＯ_Ｐ２_ＤＡＴＡに出力する。
【００６８】
次に、本実施の形態にかかるデータ転送装置の動作について、図９に示すフローチャートを用いて詳細に説明する。
【００６９】
本実施の形態にかかるデータ転送装置１は、基本的にクロックの立ち上がりに同期して動作するものとし、クロックの立ち上がりを順番にｔ１、ｔ２、・・・、ｔ２５と示している。図９に示す例では、タイミングｔ１〜ｔ３でパケットＤ１が入力され、タイミングｔ４〜ｔ１０でパケットＤ２が入力され、タイミングｔ１１〜ｔ１４でパケットＤ３が入力される。パケット中の２バイト目の第７ビット目には制御情報ＰＯＲＴ_ＩＮＦＯが含まれている。また、外部からパケットのエラー情報である制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが供給される。以下に示す例では、パケットＤ１がポートＰ１に出力され、パケットＤ２がポートＰ２に出力され、パケットＤ３がエラーである場合を示している。
【００７０】
まず、タイミングｔ１で、パケットＤ１の先頭のパケットが入力制御部１０に入力される。このとき、有効信号Ｉ_ＶＡＬＩＤがハイレベルになるので、データ書き込みイネーブル信号Ｄ_ｗｅｎａもハイレベルになる。よって、データ用ＦＩＦＯバッファ２１にデータｗＤＡＴＡ（パケットＤ１）が書き込まれる。
【００７１】
また、入力制御部１０のカウンタ１６（図３参照）は、パケットＤ１が入力されている間、カウント値Ｌ_ｃｏｕｎｔを順次カウントアップする。カウント値Ｌ_ｃｏｕｎｔが“１”となるタイミングｔ２では、ラッチ回路１４がポート情報である制御情報ＰＯＲＴ_ＩＮＦＯをラッチする。また、タイミングｔ３で時間軸上最も遅い制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力されるので、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａがハイレベルになる。
【００７２】
つまり、本実施の形態では、時間軸上最も遅い制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯが入力されるタイミングは、パケットの末端に対応している。よって、図３に示すセレクタ１７は、パケットＤ１の末端を示すラスト情報Ｉ_ＬＡＳＴ（ハイレベル）が供給されると（タイミングｔ３）、ハイレベルの制御情報書き込みイネーブル信号Ｃ_ｗｅｎａを制御情報用ＦＩＦＯバッファ２２に出力する。これにより、制御情報用ＦＩＦＯバッファ２２に制御情報Ｃ_ｗＤＡＴＡが書き込まれる。
【００７３】
また、タイミングｔ３に制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが立ち上がるので、図５に示すカウンタ３５は、タイミングｔ４においてカウント値ｄａｔａ_ｃｏｕｎｔをカウントアップする。これによりカウント値ｄａｔａ_ｃｏｕｎｔが“１”となるので、制御情報が格納されていることを示すｄａｔａ_ｅｘｉｓｔ信号がタイミングｔ４で立ち上がる。
【００７４】
図６に示す読み出しイネーブル信号生成部３２は、ｄａｔａ_ｅｘｉｓｔ信号がハイレベルになると、データ読み出しイネーブル信号Ｄ_ｒｅｎａと制御情報読み出しイネーブル信号Ｃ_ｒｅｎａとを立ち上げる。データ読み出しイネーブル信号Ｄ_ｒｅｎａはタイミングｔ５〜ｔ７の間、ハイレベルになり、制御情報読み出しイネーブル信号Ｃ_ｒｅｎａはタイミングｔ５においてハイレベルになる。よって、タイミングｔ６〜ｔ８の間、データ用ＦＩＦＯバッファ２１に格納されているデータｒＤＡＴＡが読み出される。また、タイミングｔ６において、制御情報用ＦＩＦＯバッファ２２に格納されている制御情報Ｃ_ｒＤＡＴＡが読み出される。
【００７５】
本実施の形態にかかるデータ転送装置１では、タイミングｔ５において、データ読み出しイネーブル信号Ｄ_ｒｅｎａと制御情報読み出しイネーブル信号Ｃ_ｒｅｎａとを同時に立ち上げている。よって、データｒＤＡＴＡの読み出し開始のタイミングと、制御情報Ｃ_ｒＤＡＴＡの読み出し開始のタイミングとをそろえることができる。よって、パケットＤ１（データｒＤＡＴＡ）の先頭からデータの出力を制御することができる。
【００７６】
図７に示すデータ処理部３３のセレクタ４２は、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯ（ｌａｔ_Ｅｒｒ）が正常であり、制御情報ＰＯＲＴ_ＩＮＦＯ（ｌａｔ_Ｐｏｒｔ）がポートＰ１を示すので、タイミングｔ６〜ｔ８において、パケットＤ１（データｒＤＡＴＡ）を出力ポートＯ_Ｐ１_ＤＡＴＡに出力する。
【００７７】
次に、パケットＤ２の動作について説明する。パケットＤ２では、パケットＤ１の末端を示すラスト情報Ｉ_ＬＡＳＴが立ち上がった後のタイミングｔ４〜ｔ１０に、データ用ＦＩＦＯバッファ２１にデータｗＤＡＴＡ（パケットＤ２）が書き込まれる。また、タイミングｔ１０にパケットＤ２の末端を示すラスト情報Ｉ_ＬＡＳＴが立ち上がるので、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが立ち上がり、制御情報用ＦＩＦＯバッファ２２に制御情報Ｃ_ｗＤＡＴＡが書き込まれる。なお、パケットＤ２の書き込み動作については、パケットＤ１の書き込み動作と同様である。
【００７８】
その後、タイミングｔ１１では、読み出し動作が行われておらず、また、ｄａｔａ_ｅｘｉｓｔ信号がハイレベルになるので、データ読み出しイネーブル信号Ｄ_ｒｅｎａと制御情報読み出しイネーブル信号Ｃ_ｒｅｎａとが立ち上がる。よって、タイミングｔ１３〜ｔ１９の間、データ用ＦＩＦＯバッファ２１に格納されているデータｒＤＡＴＡが読み出される。また、タイミングｔ１３において、制御情報用ＦＩＦＯバッファ２２に格納されている制御情報Ｃ_ｒＤＡＴＡが読み出される。パケットＤ２では、制御情報ＰＯＲＴ_ＩＮＦＯ（ｌａｔ_Ｐｏｒｔ）がポートＰ２を示すので、タイミングｔ１３〜ｔ１９において、パケットＤ２（データｒＤＡＴＡ）が出力ポートＯ_Ｐ２_ＤＡＴＡに出力される。なお、パケットＤ２の読み出し動作については、パケットＤ１の読み出し動作と同様である。
【００７９】
次に、パケットＤ３の動作について説明する。パケットＤ３の動作についても、基本的にはパケットＤ１、Ｄ２の動作と同様である。パケットＤ１、Ｄ２の動作と異なる点は、パケットＤ３の制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯがエラーを示す点、及びパケットＤ３の書き込みが終了するタイミングｔ１４において、パケットＤ２の読み出し動作が終了していない点である。
【００８０】
パケットＤ３では、パケットＤ２の末端を示すラスト情報Ｉ_ＬＡＳＴが立ち上がった後のタイミングｔ１１〜ｔ１４に、データ用ＦＩＦＯバッファ２１にデータｗＤＡＴＡ（パケットＤ３）が書き込まれる。また、タイミングｔ１４にパケットＤ３の末端を示すラスト情報Ｉ_ＬＡＳＴが立ち上がるので、制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが立ち上がり、制御情報用ＦＩＦＯバッファ２２に制御情報Ｃ_ｗＤＡＴＡが書き込まれる。なお、パケットＤ３の書き込み動作については、パケットＤ１、Ｄ２の書き込み動作と同様である。
【００８１】
タイミングｔ１４に制御情報書き込みイネーブル信号Ｃ_ｗｅｎａが立ち上がると、図５に示すカウンタ３５は、タイミングｔ１５においてカウント値ｄａｔａ_ｃｏｕｎｔをカウントアップする。これによりカウント値ｄａｔａ_ｃｏｕｎｔが“１”となるので、制御情報が格納されていることを示すｄａｔａ_ｅｘｉｓｔ信号がタイミングｔ１５で立ち上がる。しかしながら、タイミングｔ１５ではパケットＤ２の読み出しが終了していないため、データ読み出しイネーブル信号Ｄ_ｒｅｎａがハイレベルの状態となっている。このため、読み出しデータｒＤＡＴＡの最後を示すｒＬＡＳＴ信号が立ち上がるまで、パケットＤ３の制御情報Ｃ_ｒＤＡＴＡの読み出しが禁止される。
【００８２】
その後、タイミングｔ１９にｒＬＡＳＴ信号が立ち上がると、制御情報読み出しイネーブル信号Ｃ_ｒｅｎａが立ち上がる。これにより、タイミングｔ２０において、制御情報用ＦＩＦＯバッファ２２に格納されている制御情報Ｃ_ｒＤＡＴＡが読み出される。
【００８３】
パケットＤ３においても、タイミングｔ２０において、データｒＤＡＴＡの読み出し開始のタイミングと、制御情報Ｃ_ｒＤＡＴＡの読み出し開始のタイミングとをそろえることができる。よって、パケットＤ３（データｒＤＡＴＡ）の先頭からデータの出力を制御することができる。
【００８４】
また、パケットＤ３では、制御情報Ｉ_ＣＴＲＬ_ＩＮＦＯがエラーを示すので、タイミングｔ２０〜ｔ２３において、パケットＤ３（データｒＤＡＴＡ）がエラー出力ポートＯ_Ｅｒｒ_ＤＡＴＡに出力される。
【００８５】
以上で説明した本実施の形態にかかる発明により、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することができる。
【００８６】
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【００８７】
１  データ転送装置
１０  入力制御部
１１  制御情報生成部
１２  書き込みイネーブル信号生成部
２０  ＦＩＦＯ部
２１  データ用ＦＩＦＯバッファ
２２  制御情報用ＦＩＦＯバッファ
３０  出力制御部
３１  制御情報カウント部
３２  読み出しイネーブル信号生成部
３３  データ処理部
【図１】
2019153967.tif 000003
【図２】
2019153967.tif 000004
【図３】
2019153967.tif 000005
【図４】
2019153967.tif 000006
【図５】
2019153967.tif 000007
【図６】
2019153967.tif 000008
【図７】
2019153967.tif 000009
【図８】
2019153967.tif 000010
【図９】
2019153967.tif 000011