(57)【特許請求の範囲】
【請求項１】
第２処理装置から入力されるデータを入力する複数の入力ポートと、
第１処理装置に対して前記データを出力する出力ポートと、
前記データに設定される締切時間に基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する転送制御部と
を備え、
前記転送制御部は、前記第１処理装置に対して出力された前記データを前記第１処理装置が処理するタイミング毎に分類して前記第１処理装置のメモリに格納する際のアドレスを、前記締切時間を示す情報として用いることで、前記データを前記複数の入力ポートから前記出力ポートに転送することを特徴とするデータ転送制御装置。
【請求項２】
入力される前記データを格納する複数の格納部と
前記複数の入力ポートの夫々に対応し、入力される前記データを該データに設定される前記締切時間に対応する前記複数の格納部のいずれかに格納する振り分け部と
を更に備えることを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記転送制御部は、前記複数の格納部に格納される前記データを、該データに設定される前記締切時間に基づいて前記出力ポートに転送する際の順番を決定することを特徴とする請求項２に記載のデータ転送制御装置。
【請求項４】
前記転送制御部は、前記複数の格納部に格納される前記データを、前記データに設定される前記締切時間及び現在の時刻を比較した結果に応じて、前記出力ポートに転送する際の順番を決定することを特徴とする請求項３に記載のデータ転送制御装置。
【請求項５】
前記転送制御部は、前記データに設定される優先度と、前記締切時間とに基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する際の順番を決定することを特徴とする請求項１から４のいずれか一項に記載のデータ転送制御装置。
【請求項６】
第２処理装置から入力されるデータを複数の入力ポートより入力する入力工程と、
前記データを出力ポートより第１処理装置に対して出力する出力工程と、
前記データに設定される締切時間に基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する転送制御工程と
を備え、
前記転送制御工程は、前記第１処理装置に対して出力された前記データを前記第１処理装置が処理するタイミング毎に分類して前記第１処理装置のメモリに格納する際のアドレスを、前記締切時間を示す情報として用いることで、前記データを前記複数の入力ポートから前記出力ポートに転送することを特徴とするデータ転送制御方法。
【請求項７】
データ転送制御装置と、該データ転送制御装置を介して第２処理装置から転送されるデータを受信する第１処理装置とを含むデータ処理装置であって、
前記データ転送制御装置は、
前記第２処理装置からデータを入力する複数の入力ポートと、
前記第１処理装置に対して前記データを出力する出力ポートと、
前記データに設定される締切時間に基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する転送制御部と
を備え、
前記第１処理装置は、受信した前記データを所定のタイミングで処理し、
前記転送制御部は、前記第１処理装置に対して出力された前記データを前記第１処理装置が処理する前記所定のタイミング毎に分類して前記第１処理装置のメモリに格納する際のアドレスを、前記締切時間を示す情報として用いることで、前記データを前記複数の入力ポートから前記出力ポートに転送することを特徴とするデータ処理装置。
【請求項８】
前記データ転送制御装置を介して前記第１処理装置にデータを送信する前記第２処理装置を更に備え、
前記第２処理装置は、前記所定のタイミングに間に合うよう、前記データについて前記締切時間を設定した上で送信することを特徴とする請求項７に記載のデータ処理装置。
【請求項９】
前記データ転送制御装置を介して前記第１処理装置にデータを送信する前記第２処理装置を更に備え、
前記第１処理装置は、受信した前記データについて、処理する際の前記所定のタイミング毎に分類して格納する前記メモリを更に備え、
前記第２処理装置は、前記メモリ内における、前記所定のタイミングに応じた前記アドレスを指定して前記データを送信し、
前記転送制御部は、前記データについて指定される前記アドレスを前記締切時間を示す情報として用いることで、前記データを前記複数の入力ポートから前記出力ポートに転送することを特徴とする請求項７に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数ポートより入力されたデータの転送を行うデータ転送制御装置の技術分野に関する。
【背景技術】
【０００２】
この種のデータ転送制御装置として、ダイレクトメモリアクセス（ＤＭＡ）により一括してデータの転送を制御する装置が知られている。このような装置は、例えば、スイッチを介して接続される複数のポートより、イーサネット（登録商標）上の送信データやＩＰパケット等のデータの入力を受け、スイッチが有するバッファメモリ内に夫々格納する。バッファメモリには、データ転送の際の優先度が設定されており、スイッチは、入力データの優先度等に応じて、各データの格納先のバッファメモリを適宜選択する。
【０００３】
スイッチは、データの転送要求の際に、データの出力を行うバッファメモリを優先度に応じて決定し、決定したバッファメモリに格納されるデータの転送を実施する。このため、データは、優先度に応じて、転送のスケジュールが決定される。下記の先行技術文献には、このような優先度に応じたデータの転送を行うデータ転送の制御方法についての説明がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１８３６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
転送されるデータに転送が完了されるべき時間である締切時間が設定される場合、上述したデータ転送制御装置の機能では、必ずしも適切なデータの転送制御が行えない可能性がある。例えば、優先度が低いデータであって、比較的締切時間が近いデータの場合、上述した転送制御では、データの転送スケジュールは他の優先度が高いデータの後に設定されるため、締切時間内に転送が行われない可能性がある。また、データの後処理による再送等が生じる場合にも、データの転送スケジュールの問題から、締切時間内に転送が行われない可能性がある。
【０００６】
本発明は、例えば上述した技術的な問題点に鑑み、データの優先度と、転送が完了されるべき締切時間とを考慮した適切な転送を実現可能とするデータ転送制御装置及び方法並びにデータ処理装置を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、開示のデータ転送制御装置は、データを入力する複数の入力ポートと、データを出力する出力ポートと、データに設定される締切時間に基づいて、データを複数の入力ポートから出力ポートに転送する転送制御部とを備える。
【０００８】
また、開示のデータ転送制御方法は、データを複数の入力ポートより入力する入力工程と、データを出力ポートより出力する出力工程と、データに設定される締切時間に基づいて、データを複数の入力ポートから出力ポートに転送する転送制御工程とを備える。
【０００９】
また、開示のデータ処理装置は、上述のデータ転送制御装置と、該データ転送制御装置を介して転送されるデータを受信する第１処理装置とを含むデータ処理装置である。第１処理装置は、受信したデータを所定のタイミングで処理する。
【発明の効果】
【００１０】
上述の構成によれば、複数のポートから入力される複数データに対して、個々のデータについて、送信が完了しているべき締切時間に基づいた適切なスケジュールでデータの転送が可能となる。
【図面の簡単な説明】
【００１１】
【図１】データ転送制御装置の動作を概念的に示す図である。
【図２】データ転送制御装置における複数データの転送の態様を示すタイムチャートである。
【図３】データ転送制御装置における複数データの転送の態様を示すタイムチャートである。
【図４】データ転送制御装置の構成を示すブロック図である。
【図５】データ転送制御装置の処理の対象となるパケットデータの概要を示す図である。
【図６】データ転送制御装置の振り分け部の構成を示す図である。
【図７】振り分け部の動作に係る真理値表である。
【図８】データ転送制御装置の振り分け部と格納部との接続の態様を示す図である。
【図９】格納部におけるバッファメモリ部の構成を示す図である。
【図１０】データ転送制御装置の格納部と送信部との接続の態様を示す図である。
【図１１】送信部における判定収集部とバッファメモリ部との接続の態様を示す図である。
【図１２】判定収集部の動作に係る真理値表である。
【図１３】判定収集部の動作に係る真理値表である。
【図１４】判定収集部の動作に係る真理値表である。
【図１５】判定収集部の動作に係る真理値表である。
【図１６】送信部における送信セレクタとバッファメモリ部との接続の態様を示す図である。
【図１７】送信セレクタの動作に係る真理値表である。
【図１８】データ転送制御装置の処理の対象となるデータのパケットフォーマットを示す図である。
【図１９】振り分け部における信号の入出力の態様を示す図である。
【図２０】振り分け部におけるデータ振り分け時の動作に係る真理値表である。
【図２１】ＷＡＤＤ生成部における信号の入出力の態様を示す図である。
【図２２】受信カウンタにおける信号の入出力の態様を示す図である。
【図２３】メモリ部における信号の入出力の態様を示す図である。
【図２４】管理メモリ部における信号の入出力の態様を示す図である。
【図２５】ＲＡＤＤ生成部における信号の入出力の態様を示す図である。
【図２６】送信カウンタにおける信号の入出力の態様を示す図である。
【図２７】比較部における信号の入出力の態様を示す図である。
【図２８】判定収集部における信号の入出力の態様を示す図である。
【図２９】送信セレクタにおける信号の入出力の態様を示す図である。
【図３０】データ転送制御装置の動作に係るタイムチャートである。
【図３１】送信部における動作の流れを示すフローチャートである。
【図３２】データ転送制御装置と前段及び後段の処理装置との接続の態様を示す図である。
【図３３】後段処理装置におけるデータの処理期間と締切時間との関係を示す図である。
【図３４】ＩＰパケットのヘッダ部のフォーマットを示す図である。
【図３５】後段処理装置が備えるメモリ内のメモリアドレスを示す図である。
【図３６】Ｒａｐｉｄ  ＩＯパケットのヘッダ部のフォーマットを示す図である。
【発明を実施するための形態】
【００１２】
以下に、発明を実施するための実施形態について説明する。
【００１３】
（１）はじめに
データ転送制御装置は、複数のデータ入出力用のポートを有し、各ポートに入力されたデータを他のポートに出力するよう、内部でのデータの転送制御を実施する。図１は、データ転送制御装置の動作を概念的に示す図である。図１に示すデータ転送制御装置は、ポート＃０から＃ｎまでのｎ＋１個のデータ入出力用のポートを有し、ポート間で入力されたデータの転送を行う。
【００１４】
このようなデータ転送制御装置における、データの転送時には、例えばある１つのポートより出力するためのデータが複数のポートより同時に入力される場合が考えられる。このような場合、データ転送制御装置は、同時に入力された複数のデータ内容に鑑み、例えば各データに設定される優先度等の転送制御に係る情報に基づいて、転送スケジュールを決定し、出力先のポートにデータの転送を行う。このような処理により、単一の出力ポートに対する同タイミングでの複数のデータの転送制御が可能となる。
【００１５】
図２は、このような複数のデータの転送スケジュールを示す図である。図２には、ポート＃０、＃１及び＃２から入力されたデータＡ乃至Ｄをある出力先のポートに転送する際の転送スケジュールが示される。図２の例では、データ転送制御装置は、データＡ乃至Ｄについて、受信した後に、各データに設定される優先度（Ｐｒｉｏｒｉｔｙ）に応じたバッファメモリに順次格納を行う。また、転送制御においては、優先度が高いデータから順次、バッファメモリへの格納順に出力ポートへの転送を行う。即ち、図２の例では、データの格納順は、データＤ、データＡ、データＢ、データＣの順となる。また、各データの優先度は、データＡとデータＢが「高」、データＣが「中」、データＤが「低」のように設定される。このため、データの転送スケジュールは、データＤ、データＡ、データＢ、データＣの順となる。
【００１６】
ところで、データ転送制御装置が転送を行うデータについては、リアルタイム性の高いデータを含む場合がある。このようなデータについては、例えば所定のタイミングまでに転送が実施されることを求められる場合が考えられる。図２の例では、時間を所定の期間で０、１、２、３、・・・のように区分し、時間１のタイミングで入力されたデータＣについて、時間２までに転送処理を完了しなければいけない場合が考えられる。しかしながら、上述の転送スケジュールの決定法則をそのまま用いた場合、このような転送締切時間について考慮していないため、転送条件を満たすことが出来ない。
【００１７】
図３には、図２に示すデータＡ乃至Ｄに対して、データ転送の締切時間（Ｄｅａｄｌｉｎｅ）を設定した場合の転送スケジュールが示される。図３の例では、データＡの締切時間は時間３、データＢの締切時間は時間２、データＣの締切時間は時間２、データＤの締切時間は時間３である。上述したデータの優先度に応じた転送スケジュールでは、例えば、締切時間が比較的遅く、且つ優先度が低いデータＤがバッファメモリへの格納順が早いために先に転送され、より優先度が高く且つ締切時間がより早いデータＣが締切時間を越えて転送される。
【００１８】
そこで、以下では、データの優先度と締切時間とに基づく転送制御を実施可能なデータ転送制御装置についてその構成と機能とについて説明する。
【００１９】
（２）概要
図４を参照して、開示のデータ転送制御装置の例である、データ転送制御装置１の構成について説明する。図４は、データ転送制御装置１の構成を示す概念図である。
【００２０】
データ転送制御装置１は、データ入力用のポートを複数備え、該ポートに入力されるデータを出力用のポートに対して転送する。データの転送制御処理は、データの入力（又は受信）時に行われる処理と、データの出力（又は、送信）時の処理とに大別される。データ転送制御装置１は、データの入力時には、データの優先度及び締切時間に応じてデータを振り分ける処理を行い、データ出力時には、優先度と現在の時間及び締切時間の関係とに基づいてデータの転送処理を行う。
【００２１】
データ転送制御装置１は、ポート２０ａ、ポート２０ｂ、ポート２０ｃ、ポート３０及びスイッチ機能部１０を備える。以降、便宜上、ポート２０ａ、ポート２０ｂ、ポート２０ｃをデータ入力用のポート、ポート３０を該データの出力用のポートとして設定し、ポート２０ａ、ポート２０ｂ又はポート２０ｃより入力されるデータをポート３０に転送する場合について説明する。例えば、ポート２０ａ、ポート２０ｂ、ポート２０ｃ及びポート３０は、実際には夫々データの入力及び出力が可能なポートであってもよく、下記に説明する方法でデータの転送を行う構成であってもよいが、上述した設定での転送において不要な構成については説明を省略することがある。
【００２２】
ポート２０ａ、ポート２０ｂ、ポート２０ｃの夫々に入力されるデータは、スイッチ機能部１０を経由し、ポート３０へ出力される。
【００２３】
スイッチ機能部１０は、振り分け部１００、格納部２００、送信部３００を備える。
【００２４】
振り分け部１００は、データに含まれる優先度を示す情報と締切時間を示す情報とに基づいて、データを振り分けるための複数のセレクタを有する回路である。振り分け部１００は、振り分けた各データを格納部２００に格納する。振り分け部１００は、データ入力用のポートに個別に対応して、データの振り分けを行う部位を複数有している。図４の例では、振り分け部１００は、ポート２０ａから入力されるデータの振り分けを行う振り分け部１００ａ、ポート２０ｂから入力されるデータの振り分けを行う振り分け部１００ｂ、ポート２０ｃから入力されるデータの振り分けを行う振り分け部１００ｃを備える。
【００２５】
格納部２００は、振り分け部１００によって振り分けられたデータを格納する、バッファメモリなどのデータ格納装置である。格納部２００は、データ入力用のポート、及び該ポートより入力されるデータを振り分ける振り分け部１００に個別に対応して、データの格納を行うバッファメモリを備える部位を複数有する。図４の例では、格納部２００は、ポート２０ａから入力されるデータを格納する格納部２００ａ、ポート２０ｂから入力されるデータを格納する格納部２００ｂ、ポート２０ｃから入力されるデータを格納する格納部２００ｃを備える。また、各格納部２００ａ乃至２００ｃは、振り分け部１００ａ乃至１００ｃにおいてデータを振り分ける際の基準となる優先度及び締切時間に応じた複数のバッファメモリを有する。具体的には、格納部２００ａは、振り分け部１００ａにおいてデータの振り分けを行う際の基準となる優先度の分類と締切時間の分類との夫々の組み合わせに応じた個数のバッファメモリを少なくとも有する。
【００２６】
送信部３００は、格納部２００に格納されるデータを出力用のポート３０に送信するセレクタを有する回路である。送信部３００は、格納部２００のバッファメモリ内に格納されるデータについて、各バッファメモリが対応するデータの優先度及び締切時間に応じて送信スケジュールを決定し、送信先のポート３０へデータを送信する。
【００２７】
上述したデータ転送制御装置１による転送制御の対象となるデータの形式について図５を参照して説明する。図５に示されるように、データは、ヘッダ部とデータ部とを備えるパケット等である。ヘッダ部は、公知のＴＣＰ／ＩＰヘッダ等であってよい。データ部は、データの優先度を規定する情報であるＰｒｉｏｒｉｔｙ１（以下、Ｐ１と記載）と、データの締切時間を規定するＰｒｉｏｒｉｔｙ２（以下、Ｐ２と記載）との２通りのデータフィールドを有する。
【００２８】
Ｐ１は、データの優先度に応じて、優先度が高い＝０、優先度が並み＝１、優先度が低い＝２との値を格納する。Ｐ２は、データ転送の締切時間を示すために、例えばクロック信号等に基づいて所定の締切時間を示す値を格納する。例えば、締切時間は、クロック信号から所定の周期を決定し、該周期をＮ通りに分割した時間を基準として設定する。ある周期の時間をＮ通りに分割した後の時間をｔ＝０、１、２、３、・・・Ｎ−１とし、該時間に応じて締切時間を設定する。データ転送制御装置１の送信部３００は、クロック信号により示される現在の時間（つまり、ｔ＝０、１、２、３、・・・Ｎ−１）と、データ毎の締切時間との関係により、データの送信スケジュールを決定する際の優先度を決定する。
【００２９】
以降の説明では、Ｎ＝４とする。この場合、Ｐ１が０、１、２の３通りの値（言い換えれば、分類）を有し、Ｐ２が０、１、２、３の４通りの値（言い換えれば、分類）を有するための、上述した格納部２００は、夫々の入力ポートに応じて、３×４＝１２個のバッファメモリを有する。詳細な構成及びその機能については後述する。
【００３０】
尚、データが有するＰ１とＰ２とのデータフィールドは、上述した態様の他、ヘッダ部に設けられていてもよく、データ内の他の部位に新たに設けられていてもよい。例えばデータとしてＩＰパケットを考える場合、サービスタイプフィールド内の８ビットを、Ｐ１とＰ２として使用してもよい。また、データ転送制御装置１内のスイッチ機能部１０内において、データの種別等に応じて優先度を新たに設定し、該優先度に基づいて転送制御を行ってもよい。
【００３１】
上述した各部について、以下に図を参照してより詳細な構成及び機能の例について説明する。
【００３２】
図６は、データ転送制御装置１のスイッチ機能部１０における振り分け部１００が有する振り分け部１００ａの回路構成を示す図である。尚、振り分け部１００ｂ及び振り分け部１００ｃも、図６と同様の構成を備える。
【００３３】
振り分け部１００ａは、抽出部１１０、Ｐ１セレクタ１２０及びＰ２セレクタ１３０、１４０、１５０を有する。
【００３４】
ポート２０ａより振り分け部１００ａに入力されたデータは、抽出部１１０と、Ｐ１セレクタ１２０とに入力される。
【００３５】
抽出部１１０は、データから、Ｐ１及びＰ２の値を抽出し、抽出した値について、Ｐ１をＰ１セレクタ１２０に、Ｐ２をＰ２セレクタ１３０乃至１５０に入力する。
【００３６】
Ｐ１セレクタ１２０は、データの優先度を示すＰ１の値に基づいて、データの振り分けを行う第１段目のセレクタである。Ｐ１セレクタ１２０は、ポート２０ａから入力されるデータを入力するための入力ポートと、Ｐ２セレクタ１３０乃至１５０の夫々に接続されるデータ出力用の３つのポート（０、１、２）とを備える。
【００３７】
図７（ａ）は、Ｐ１セレクタ１２０の動作に係る真理値表である。Ｐ１セレクタ１２０は、抽出部１１０より入力されるＰ１の値に基づいて、データを振り分け、出力用のポート０、１、２のいずれか一つより出力することで、接続されるＰ２セレクタ１３０乃至１５０のいずれかへ入力する。図７（ａ）に示されるように、Ｐ１の値が０のデータは出力用のポート０から、Ｐ１の値が１のデータは出力用のポート１から、Ｐ１の値が２のデータは出力用のポート２から、夫々出力（ＤＴ：Data Transfer）される。
【００３８】
図６に戻り、説明を続ける。Ｐ２セレクタ１３０乃至１５０は、データの締切時刻を示すＰ２の値に基づいて、データの振り分けを行う第２段目のセレクタである。Ｐ２セレクタ１３０乃至１５０の夫々は、Ｐ１セレクタ１２０から入力されるデータを入力するための入力ポートと、格納部２００ａ内の対応する個別のバッファメモリ部に夫々接続されるデータ出力用の４つのポート（０、１、２、３）とを備える。
【００３９】
Ｐ２セレクタ１３０乃至１５０は、Ｐ１セレクタ１２０によって振り分けられるデータの分類の数、つまりＰ１の取り得る値に夫々対応している。例えば、Ｐ２セレクタ１３０は、Ｐ１セレクタ１２０の出力用のポート０に接続され、Ｐ１の値が０のデータの入力を受けて、Ｐ２の値に応じて振り分けを行う。Ｐ２セレクタ１４０は、Ｐ１セレクタ１２０の出力用のポート１に接続され、Ｐ１の値が１のデータの入力を受けて、Ｐ２の値に応じて振り分けを行う。Ｐ２セレクタ１５０は、Ｐ１セレクタ１２０の出力用のポート２に接続され、Ｐ１の値が２のデータの入力を受けて、Ｐ２の値に応じて振り分けを行う。
【００４０】
図７（ｂ）は、Ｐ２セレクタ１３０乃至１５０の動作に係る真理値表である。Ｐ２セレクタ１３０乃至１５０は、抽出部１１０より入力されるＰ２の値に基づいて、データを振り分け、出力用のポート０、１、２、３のいずれか一つより出力することで、接続される格納部２００ａ内のバッファメモリ部のいずれかへ入力する。図７（ｂ）に示されるように、Ｐ２の値が０のデータは出力用のポート０から、Ｐ２の値が１のデータは出力用のポート１から、Ｐ２の値が２のデータは出力用のポート２から、Ｐ２の値が３のデータは出力用のポート３から、夫々出力（ＤＴ：Data Transfer）される。
【００４１】
図８は、データ転送制御装置１のスイッチ機能部１０における格納部２００の構成を示す図である。格納部２００ａは、Ｐ１セレクタ１２０及びＰ２セレクタ１３０乃至１５０によって振り分けられるデータの分類に対応する複数のバッファメモリ部を備える。バッファメモリ部は、Ｐ２セレクタ１３０乃至１５０の夫々の出力用のポートに接続され、入力されたデータの格納を行う。
【００４２】
図８の例では、格納部２００ａは、１２個のバッファメモリ部を有する。バッファメモリ部ａ００は、Ｐ２セレクタ１３０のポート０に接続され、Ｐ１の値が０、Ｐ２の値が０のデータの入力を受け、格納する。バッファメモリ部ａ０１は、Ｐ２セレクタ１３０のポート１に接続され、Ｐ１の値が０、Ｐ２の値が１のデータの入力を受け、格納する。バッファメモリ部ａ０２は、Ｐ２セレクタ１３０のポート２に接続され、Ｐ１の値が０、Ｐ２の値が２のデータの入力を受け、格納する。バッファメモリ部ａ０３は、Ｐ２セレクタ１３０のポート３に接続され、Ｐ１の値が０、Ｐ２の値が３のデータの入力を受け、格納する。バッファメモリ部ａ１０は、Ｐ２セレクタ１４０のポート０に接続され、Ｐ１の値が１、Ｐ２の値が０のデータの入力を受け、格納する。バッファメモリ部ａ１１は、Ｐ２セレクタ１４０のポート１に接続され、Ｐ１の値が１、Ｐ２の値が１のデータの入力を受け、格納する。バッファメモリ部ａ１２は、Ｐ２セレクタ１４０のポート２に接続され、Ｐ１の値が１、Ｐ２の値が２のデータの入力を受け、格納する。バッファメモリ部ａ１３は、Ｐ２セレクタ１４０のポート３に接続され、Ｐ１の値が１、Ｐ２の値が３のデータの入力を受け、格納する。バッファメモリ部ａ２０は、Ｐ２セレクタ１５０のポート０に接続され、Ｐ１の値が２、Ｐ２の値が０のデータの入力を受け、格納する。バッファメモリ部ａ２１は、Ｐ２セレクタ１５０のポート１に接続され、Ｐ１の値が２、Ｐ２の値が１のデータの入力を受け、格納する。バッファメモリ部ａ２２は、Ｐ２セレクタ１５０のポート２に接続され、Ｐ１の値が２、Ｐ２の値が２のデータの入力を受け、格納する。バッファメモリ部ａ２３は、Ｐ２セレクタ１５０のポート３に接続され、Ｐ１の値が２、Ｐ２の値が３のデータの入力を受け、格納する。
【００４３】
尚、各バッファメモリ部は、共通する構成と機能とを有する。例として、バッファメモリ部ａ００の構成と機能とについて、図を参照して説明する。
【００４４】
図９は、バッファメモリ部ａ００のハードウェア構成を示す図である。図９に示されるように、バッファメモリ部ａ００は、ＷＡＤＤ生成部２１０、受信カウンタ２２０、メモリ部２３０、管理メモリ部２４０、ＲＡＤＤ生成部２５０、送信カウンタ２６０、比較部２７０とを備える。
【００４５】
バッファメモリ部ａ００に入力されたデータは、ＷＡＤＤ生成部２１０、受信カウンタ２２０及びメモリ部２３０に入力される。
【００４６】
ＷＡＤＤ生成部２１０は、データについて、メモリ部２３０への書き込み時の先頭アドレスであるＷｒｉｔｅアドレス（Write Address:ＷＡＤＤ）とヘッダ部のｌｅｎｇｔｈとを生成する。ＷＡＤＤ生成部２１０は、データの入力時には、該データのＷｒｉｔｅアドレスをメモリ部２３０及び管理メモリ部２４０に通知する。また、併せてデータより生成したｌｅｎｇｔｈを書き込みデータとして管理メモリ部２４０に通知する。
【００４７】
受信カウンタ２２０は、有効データの入力を検出してカウントアップするカウンタである。受信カウンタ２２０は、データの入力時に、カウンタ値を管理メモリ部２４０及び比較部２７０に通知する。
【００４８】
メモリ部２３０は、データを格納するメモリである。メモリ部２３０は、データの入力時に、ＷＡＤＤ生成部２１０から通知されるＷｒｉｔｅアドレスを用いて、データを格納する。他方で、メモリ部２３０は、データの出力時には、後述するＲＡＤＤ生成部２５０より通知されるＲｅａｄアドレスを用いてデータを読み取り、送信部３００内の送信セレクタ（後述）に出力する。
【００４９】
管理メモリ部２４０は、バッファメモリ部００ａにおけるメモリ部２３０へのデータ書き込み時のＷｒｉｔｅアドレス及びｌｅｎｇｔｈを管理するメモリである。管理メモリ部２４０は、データの入力時には、通知される受信カウンタ２２０ａのカウンタ値をＷｒｉｔｅアドレスとして、ＷＡＤＤ生成部２１０より通知されるデータ書き込み時のＷｒｉｔｅアドレス及びｌｅｎｇｔｈを格納する。他方で、データの出力時には、送信カウンタ２６０より通知されるカウンタ値をＲｅａｄアドレスとして、データ書き込み時のＷｒｉｔｅアドレス及びｌｅｎｇｔｈを読み取り、ＲＡＤＤ生成部２５０に出力する。
【００５０】
ＲＡＤＤ生成部２５０は、データ出力の際のメモリ部２３０のＲｅａｄアドレス(Read Address:ＲＡＤＤ)を生成する。ＲＡＤＤ生成部２５０は、データの出力時に、管理メモリ部２４０より、データ書き込み時のＷｒｉｔｅアドレス及びｌｅｎｇｔｈの入力を受け、「書き込み時のＷｒｉｔｅアドレスから（書き込み時のＷｒｉｔｅアドレス＋ｌｅｎｇｔｈ−１）までカウンタを動作させ、該カウンタ値をメモリ部２３０へ通知する。また、送信部３００の送信セレクタ（後述）へ出力用のデータの有効範囲を示すＤａｔａ  Ｅｎａｂｌｅ信号を送信する。
【００５１】
送信カウンタ２６０は、送信部３００の判定収集部（後述）からのデータのリード要求に応じてカウントアップするカウンタであり、データの出力時に、カウンタ値を管理メモリ部２４０及び比較部２７０に通知する。
【００５２】
比較部２７０は、メモリ部２３０に格納されるデータの有無を判定する。比較部２７０は、データの出力時に、受信カウンタ値と送信カウンタ値とを比較することで、メモリ部２３０内のデータの有無を判定し、判定結果を送信部３００の判定収集部（後述）に送信する。
【００５３】
尚、格納部２００ｂ及び格納部２００ｃも、図８と同様の構成を備える。つまり、格納部２００ｂは、振り分け部１００ｂによって振り分けられるデータのＰ１及びＰ２の値に対応して、バッファメモリ部ｂ００、ｂ０１、ｂ０２、ｂ０３、ｂ１０、ｂ１１、ｂ１２、ｂ１３、ｂ２０、ｂ２１、ｂ２２、ｂ２３を備える。同様に、格納部２００ｃは、振り分け部１００ｃによって振り分けられるデータのＰ１及びＰ２の値に対応して、バッファメモリ部ｃ００、ｃ０１、ｃ０２、ｃ０３、ｃ１０、ｃ１１、ｃ１２、ｃ１３、ｃ２０、ｃ２１、ｃ２２、ｃ２３を備える。ここに、バッファメモリ部に付す番号は、左から、ポート２０ａ乃至２０ｃに対応するアルファベット、Ｐ１の値、Ｐ２の値を示すものである。以降はこの表記に従って、ポート、Ｐ１の値及びＰ２の値に対応したバッファメモリ部を記載することがある。尚、これらのバッファメモリ部について、区別せずに説明する場合には、単にバッファメモリ部と記載する。
【００５４】
図１０は、データ転送制御装置１のスイッチ機能部１０における送信部３００の構成、及び格納部２００と送信部３００との接続の態様を示す図である。送信部３００は、判定収集部３１０と、送信セレクタ３２０とを備える。
【００５５】
格納部２００ａ乃至２００ｃ内のバッファメモリ部の夫々（ａ００乃至ａ２３、ｂ００乃至ｂ２３及びｃ００乃至ｃ２３）は、接続用のバス４００、４１０、４２０及び４３０を介して判定収集部３１０及び送信セレクタ３２０に接続される。各バッファメモリ部は、夫々対応するＰ２の値に応じて、対応するバスに接続される。具体的には、格納部２００ａのＰ２の値が０のデータを格納するバッファメモリ部ａ００、ａ１０、ａ２０、ａ３０の夫々は、バス４００に接続される。格納部２００ａのＰ２の値が１のデータを格納するバッファメモリ部ａ０１、ａ１１、ａ２１、ａ３１の夫々は、バス４１０に接続される。格納部２００ａのＰ２の値が２のデータを格納するバッファメモリ部ａ０２、ａ１２、ａ２２、ａ３２の夫々は、バス４２０に接続される。格納部２００ａのＰ２の値が３のデータを格納するバッファメモリ部ａ０３、ａ１３、ａ２３、ａ３３の夫々は、バス４３０に接続される。格納部２００ｂ及び２００ｃのバッファメモリ部についても同様である。
【００５６】
判定収集部３１０は、現在の時間と格納部２００内の各バッファメモリ部に格納されるデータの有無とに応じて、個々のバッファメモリ部に対してデータのリード要求を行うことで、データの出力を制御する。具体的には、判定収集部３１０は、バス４００乃至４３０を介して接続される３６個のバッファメモリ部から現在の時間を用いて１つ送信する格納部２００を選択する機能部である。
【００５７】
図１１は、判定収集部３１０と、バッファメモリ部との接続及び信号の送受信の態様を示す図である。判定収集部３１０は、３６個のバッファメモリ部（ａ００乃至ａ２３、ｂ００乃至ｂ２３及びｃ００乃至ｃ２３）の夫々の比較部２７０から、メモリ部２３０内部にデータが格納されているか否かの判定結果の入力を受ける。また、判定収集部３１０は、クロック信号生成部等より現在の時間の入力を受け、該現在の時間と、バッファメモリ部毎に設定される締切時間とに基づいて、データの出力順を決定する。そして、決定したデータの出力順に応じて、３６個のバッファメモリ部の夫々の管理メモリ部２４０に対して、データの出力を指示するＲｅａｄ  Ｄａｔａ  Ｅｎａｂｌｅ信号を送信する。
【００５８】
判定収集部３１０は、例えば、現在の時間と、バッファメモリ部毎に設定される締め切り時間とを比較して、締切時間に余裕のないデータから出力されるよう指示する。出力順の決定方法の例として、各バッファメモリ部に設定される締切時間について、［（ｔ−ｎｏｗ＋Ｎ）ｍｏｄ  Ｎ］の値が小さい順に選択する。ここに、Ｎは、時間の分割数、言い換えればＰ２の取り得る値の数であり、ｔは、締め切り時間であり、ｎｏｗは、現在の時間である。このため、現在の時間によりデータを送信する際のＰ２に応じた優先度が変更される。ｔ＝０、１、２、３の各場合における判定収集部３１０の動作に係る真理値表を図１２から図１５に示す。
【００５９】
図１２乃至図１５において、一番左の列は、各バッファメモリ部からの判定結果の参照順序を示す。中央には、各バッファメモリからの判定結果を示す。尚、該判定結果を示す欄においては、該当するバッファメモリ部にデータが格納されている場合を「１」、データが格納されていない場合を「０」としている。また、バッファメモリ部にデータが格納されているか否かの判定結果が判定収集部３１０の動作に関わりない部分、言い換えれば０でも１でもよい部分は「−」としている。一番右の列は、判定収集部３１０がデータの出力指示を行うバッファメモリ部を示す。
【００６０】
図１２は、ｔ＝０の状態における判定収集部３１０の動作に係る真理値である。ｔ=０の場合、先ず、判定収集部３１０は、締切時間を示すＰ２の値が０に設定されるバッファメモリ部（ａ００、ｂ００、ｃ００、ａ１０、ｂ１０、ｃ１０、ａ２０、ｂ２０、ｃ２０）について、設定されるデータの優先度を示すＰ１の値が低い順（つまり、０から２）に送信される判定結果を参照する。先ず、バッファメモリ部ａ００にデータが格納されているか否かの判定結果を参照する。バッファメモリ部ａ００にデータが格納されている場合（判定結果欄が「１」の場合）、バッファメモリ部ａ００に対してＲｅａｄ  Ｄａｔａ  Ｅｎａｂｌｅ信号を送信して、出力指示を行う（図１２、参照順序＝１の行参照）。バッファメモリ部ａ００にデータが格納されていない場合（判定結果欄が「０」の場合）、続いて判定収集部３１０は、バッファメモリ部ｂ００にデータが格納されているか否かの判定結果を参照する。バッファメモリ部ｂ００にデータが格納されている場合（判定結果欄が「１」の場合）、バッファメモリ部ｂ００に対してＲｅａｄ  Ｄａｔａ  Ｅｎａｂｌｅ信号を送信して、出力指示を行う（図１２、参照順序＝２の行参照）。このように、判定収集部３１０は、Ｐ２の値が０であるバッファメモリ部について、Ｐ１の値が示す優先度が高い順にデータが格納されているか否かを確認し、データが格納される場合には出力指示を行う。判定収集部３１０は、Ｐ２の値が０である全てのバッファメモリ部にデータが格納されていないことを確認した場合、Ｐ２の値が次の締切時間を示す１であるバッファメモリ部について、Ｐ１の値が示す優先度が高い順にデータが格納されているか否かを確認し、データが格納される場合には出力指示を行う。その後、順次Ｐ２の値が２、３であるバッファメモリ部に対しても同様の処理を行うことで、各バッファメモリ部に対して、データの格納の有無の確認と、出力指示とを行う。尚、図１２の例では、ポート２０ａに接続されるバッファメモリ部に対して優先的に処理を行っているが、ポート２０ｂ又はポート２０ｃに接続されるバッファメモリ部を優先的に処理を行う態様であってもよく、図１２は便宜上の一例であるに過ぎない。
【００６１】
図１３は、ｔ＝１の状態における判定収集部３１０の動作に係る真理値である。ｔ＝１の場合、判定収集部３１０は、先ず、Ｐ２の値が１であるバッファメモリ部に対して、Ｐ１の値が示す優先度が高い順にデータの格納の有無の確認と、出力指示との処理を行う。続いて、Ｐ２が２、３、０である順に上述の処理を行う。Ｐ２の値が０であるバッファメモリ部の参照順序を一番最後としたのは、ｔ＝１の時点でバッファメモリ部に格納されるデータの締切時間は、所定の周期を４分割して示した締切時間の内、次の周期における時間０であると判断可能であるためである。
【００６２】
図１４は、ｔ＝２の状態における判定収集部３１０の動作に係る真理値である。ｔ＝２の場合、判定収集部３１０は、先ず、Ｐ２の値が２であるバッファメモリ部に対して、Ｐ１の値が示す優先度が高い順にデータの格納の有無の確認と、出力指示との処理を行う。続いて、Ｐ２が３、０、１である順に上述の処理を行う。
【００６３】
図１５は、ｔ＝３の状態における判定収集部３１０の動作に係る真理値である。ｔ＝３の場合、判定収集部３１０は、先ず、Ｐ２の値が３であるバッファメモリ部に対して、Ｐ１の値が示す優先度が高い順にデータの格納の有無の確認と、出力指示との処理を行う。続いて、Ｐ２が０、１、２である順に上述の処理を行う。
【００６４】
判定収集部３１０からのＲｅａｄ  Ｄａｔａ  Ｅｎａｂｌｅ信号を受信したバッファメモリ部の管理メモリ部２４０は、メモリ部２３０に対してデータの出力を指示する。出力されたデータは、バス４００乃至４３０を介して送信セレクタ３２０に入力される。また、送信セレクタ３２０は、各バッファメモリ部から、データの有効範囲を示すＤａｔａ  Ｅｎａｂｌｅ信号の入力を受ける。
【００６５】
Ｄａｔａ  Ｅｎａｂｌｅ信号の入力を受けた送信セレクタ３２０は、該Ｄａｔａ  Ｅｎａｂｌｅ信号により指定されるバッファメモリ部のメモリ部２３０から入力されるデータをポート３０へ出力する。図１６に、送信セレクタ３２０とバッファメモリ部との接続の態様を示す。送信セレクタ３２０は、各バッファメモリ部と、バス４００乃至４３０を介して接続し、Ｄａｔａ  Ｅｎａｂｌｅ信号と、データとの入力を受け、選択したデータをポート３０に出力する。
【００６６】
送信セレクタ３２０の動作に係る真理値表を図１７に示す。図１７に示されるように、Ｄａｔａ  Ｅｎａｂｌｅ信号の入力元のバッファメモリ部からの入力データをポート３０に出力する。
（３）動作例
以下、データ転送制御装置１を用いたデータ転送制御処理の流れについて、各部の詳細な動作と共に説明する。
【００６７】
図１８に、データ転送制御処理の対象となるデータのパケットフォーマットの一例を示す。データのパケットフォーマットは、Ｄａｔａ  Ｆｒａｍｅ  Ｐｕｌｓｅ、Ｄａｔａ  Ｖａｌｉｄ  Ｅｎａｂｌｅ及びＤａｔａを含むよう規定される。Ｆｒａｍｅ  Ｐｕｌｓｅは、データの先頭を示すパルスである。Ｄａｔａ  Ｖａｌｉｄ  Ｅｎａｂｌｅは、データの有効無効を示すパルスである。Ｄａｔａは、データそのものを示す、Ｄ０からＤｍまでのデータであって、Ｄ０部にＰ１及びＰ２の情報を含む。
【００６８】
図１９は、このようなデータの入力を受ける振り分け部１００ａにおける信号の入出力の態様を示す機能ブロック図である。
【００６９】
振り分け部２０ａは、データの入力を受けると、該データより、データの優先度を示すＰ１の値と、締切時間を示すＰ２の値とを抽出部１１０において抽出する。そして、Ｐ１セレクタ１２０及びＰ２セレクタ１３０乃至１５０により、データを振り分け、格納部２００ａ内の対応するバッファメモリ部ａ００乃至ａ２３へＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥ及びＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥを送信する。
【００７０】
図２０は、上述した振り分け部１００ａの振り分け動作に係る真理値表である。Ｐ１をＸ、Ｐ２をＹとおく場合、Ｐ１及びＰ２に応じたバッファメモリ部ａＸＹに対して、ＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥ及びＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥを送信する。例えば、Ｐ１＝２、Ｐ２＝３の場合、バッファメモリ部ａ２３に対してＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥ及びＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥを送信する。
【００７１】
尚、図１９では、振り分け部２０ａを例として示しているが、他の振り分け部についても、同様の入出力を行う。
【００７２】
格納部２００ａ内のバッファメモリ部ａ００を例に挙げて、振り分け部２０ａよりデータの入力を受けた際の各部の処理について説明する。バッファメモリ部ａ００は、上述したように受信したデータをＷＡＤＤ生成部２１０、受信カウンタ２２０及びメモリ２３０に夫々入力する。
【００７３】
ＷＡＤＤ生成部２１０は、入力したＤａｔａを格納するためのメモリ部２３０のアドレスを生成するカウンタを有する。ＷＡＤＤ生成部２１０の機能ブロックを図２１（ａ）に示す。
【００７４】
ＷＡＤＤ生成部２１０は、データのうち、有効データの受信を示すＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥを入力して、メモリ部２３０のアドレスであるＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓ（以降、ＷＤＡと記載）を生成する。図２１（ｂ）に、ＷＡＤＤ生成部２１０における、ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥの入力と、生成されるＷＤＡとのタイミングチャートを示す。ＷＡＤＤ生成部２１０は、生成したＷＤＡをメモリ部２３０、管理メモリ部２４０へ出力する。
【００７５】
受信カウンタ２２０は、データのうち、データの先頭を示すＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥを入力して、受信パケット数を示すカウンタ値（Ｒｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒ）をカウントアップするカウンタである。受信カウンタ２２０の機能ブロックを図２２（ａ）に示す。また、図２２（ｂ）に、受信カウンタ２２０における、ＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥの入力と、カウントされるＲｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒとのタイミングチャートを示す。図２２（ｂ）に示されるように、受信カウンタ２２０は、ＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥを受信したタイミングで、Ｒｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒの値をカウントアップしている。受信カウンタ２２０は、カウントしたＲｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒを適宜メモリ部２３０、管理メモリ部２４０及び比較部２７０へ出力する
メモリ部２３０は、データ内のＤａｔａを格納するメモリである。メモリ部２３０の機能ブロックを図２３（ａ）に示す。
【００７６】
メモリ部２３０は、データの受信時には、データのうち、Ｄａｔａ及び該ＤａｔａのＷｒｉｔｅ  Ｅｎａｂｌｅ信号の一例であるＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥ、並びにＷＡＤＤ生成部２１０より入力されるＤａｔａ書き込み時のＷｒｉｔｅアドレスであるＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓの入力を受ける。メモリ部２３０は、Ｗｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓにより指定されるアドレスに、ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥに応じてＤａｔａを格納する。図２３（ｂ）に、メモリ部２３０における、データ受信時のＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥ、Ｄａｔａ及びＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓのタイミングチャートを示す。
【００７７】
メモリ部２３０は、データの送信時には、後述するようにＲＡＤＤ生成部２５０より入力されるＲｅａｄ  Ｅｎａｂｌｅ信号の一例であるＲｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥ、同じく後述するように送信カウンタ２６０より入力されるＲｅａｄアドレスの一例であるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒの入力を受ける。メモリ部２３０は、Ｒｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥ及びＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒに応じてＤａｔａを読み出し、送信部３００へ出力する。図２３（ｃ）に、メモリ部２３０における、データ送信時のＲｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥ、Ｄａｔａ及びＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒのタイミングチャートを示す。
【００７８】
管理メモリ部２４０は、Ｄａｔａが格納されるメモリ部２３０の先頭アドレスと、格納されるＤａｔａのデータ長を格納するメモリである。管理メモリ部２４０の機能ブロックを図２４（ａ）に示す。
【００７９】
管理メモリ部２４０は、データの受信時には、データの先頭を示すＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥ、ＷＡＤＤ生成部２１０において生成されるＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓ及びＤａｔａのｌｅｎｇｔｈであるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈ、受信カウンタ２２０からのＲｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒ、の入力を受ける。図２４（ｂ）に、管理メモリ部２４０における、データ受信時の各信号のタイミングチャートを示す。例えば、管理メモリ部２４０は、データの先頭を示すＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥに基づいて、Ｄａｔａのデータ長を示すパルス信号であるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈを生成してもよい。例えば、１つのＤａｔａのデータ長は、該Ｄａｔａの先頭を示すＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥのパルスから、次のＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥのパルスまでとなる。管理メモリ部２４０は、ＤＡＴＡ  ＦＲＡＭＥ  ＰＵＬＳＥをＷｒｉｔｅ  Ｅｎａｂｌｅ信号とし、Ｒｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒを書き込みアドレスとして、メモリ部２３０におけるＤａｔａの書き込み時のＷｒｉｔｅアドレスであるＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓとデータ長であるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈを格納する。
【００８０】
他方、管理メモリ部２４０は、送信部３００からのデータの送信指示であるＲｅａｄ  Ｅｎａｂｌｅと、送信カウンタ２６０からのＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒとの入力を受ける。管理メモリ部２４０は、送信部３００からのＲｅａｄ  ＥｎａｂｌｅをＲｅａｄアドレスとして、格納するＤａｔａの先頭アドレスを示すＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒと該Ｄａｔａのデータ長であるＲｅａｄ  Ｄａｔａ  Ｌｅｎｇｔｈを読み出す。図２４（ｃ）に、管理メモリ部２４０における、データ送信時の各信号のタイミングチャートを示す。管理メモリ部２４０は、Ｒｅａｄ  Ｅｎａｂｌｅが有効になった時に、あるデータＸについてのＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒを出力する。また、次にＲｅａｄ  Ｅｎａｂｌｅが有効になった時に、別のデータＹについてのＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒを出力する。このときのＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒの出力に応じて、データＸ及びデータＹについてのＲｅａｄ  Ｄａｔａ  Ｌｅｎｇｔｈを出力する。
【００８１】
ＲＡＤＤ生成部２５０は、データの送信時に、メモリ部２３０に格納されるＤａｔａのＲｅａｄアドレスを生成する。ＲＡＤＤ生成部２５０の機能ブロックを図２５（ａ）に示す。ＲＡＤＤ生成部２５０は、カウンタ２５１と、Ｅｎａｂｌｅ生成部２５２とを備える。
【００８２】
カウンタ２５１はＬｏａｄ  Ｅｎａｂｌｅの一例である、送信部３００より入力されるＲｅａｄ  Ｅｎａｂｌｅと、Ｌｏａｄ値の一例である、管理メモリ部２４０より入力されるＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒとを受信する。カウンタ２５１は、Ｒｅａｄ  Ｅｎａｂｌｅ及びＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒの入力に応じて、カウンタ値であるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒを初期化し、カウントアップする。カウントされたＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒは、メモリ部２３０のデータを読み出す際のＲｅａｄアドレスとして用いられる。また、カウンタ２５１は、Ｒｅａｄ  Ａｄｄｒｅｓｓ  ＣｏｕｎｔｅｒをＥｎａｂｌｅ生成部２５２に入力する。
【００８３】
Ｅｎｂａｌｅ生成部２５２は、カウンタ２５１より入力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒ並びに管理メモリ部２４０より入力されるＲｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒ及びＲｅａｄ  Ｄａｔａ  Ｌｅｎｇｔｈに基づいてＲｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥを生成する。Ｒｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥは、メモリ部２３０に格納されるＤａｔａを読み出すためのＲｅａｄ  Ｅｎａｂｌｅ信号、及び送信部３００の送信セレクタ３２０におけるセレクト信号として用いられる。
【００８４】
Ｅｎａｂｌｅ生成部２５２は、一例として、Ｒｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒ＋Ｒｅａｄ  Ｄａｔａ  ＬｅｎｇｔｈとＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒとの値を比較することで、Ｒｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥの値を決定する。例えば、Ｒｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒ＋Ｒｅａｄ  Ｄａｔａ  Ｌｅｎｇｔｈの値がＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒ以下の時、メモリ部２３０へのＲｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥを０にする。他方、Ｒｅａｄ  Ｄａｔａ  Ｐｏｉｎｔｅｒ＋Ｒｅａｄ  Ｄａｔａ  ＬｅｎｇｔｈがＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒより大きい時、メモリ部２３０へのＲｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥを１にする。
【００８５】
図２５（ｂ）に、ＲＡＤＤ生成部２５０における、データ送信時の各信号のタイミングチャートを示す。
【００８６】
送信カウンタ２６０は、送信部３００からのデータの送信要求であるＲｅａｄ  Ｅｎａｂｌｅを入力して、送信パケット数を示すカウンタ値（Ｓｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒ）をカウントアップするカウンタである。送信カウンタ２６０の機能ブロックを図２６（ａ）に示す。また、図２６（ｂ）に、送信カウンタ２６０の動作に係るタイミングチャートを示す。図２６（ｂ）に示されるように、送信カウンタ２６０は、Ｒｅａｄ  Ｅｎａｂｌｅが有効となったタイミングで、Ｓｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒの値をカウントアップする。送信カウンタ２６０は、カウントしたＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒを適宜管理メモリ部２４０及び比較部２７０へ出力する。
【００８７】
比較部２７０は、受信カウンタ２２０においてカウントしたＲｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒと送信カウンタ２６０においてカウントしたＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒとの値を比較することで、メモリ部２３０にデータが格納されているか否かの判定を行う。比較部２７０は、一例として、Ｒｅｃｅｉｖｅ  Ｄａｔａ  ＣｏｕｎｔｅｒとＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒを比較する比較器であって、比較結果に応じて、異なる出力を行う。例えば、Ｒｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒ値とＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒ値とが等しいとき、メモリ部２３０に格納されるＤａｔａは全て送信されていると判断し、Ｄａｔａ無しであることを示すＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝０を出力する。他方で、Ｒｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒ値とＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒ値とが異なるとき、メモリ部２３０に格納された後、送信されていないＤａｔａが存在すると判断し、Ｄａｔａ有りであることを示すＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１を出力する。図２７（ｂ）に、Ｒｅｃｅｉｖｅ  Ｄａｔａ  Ｃｏｕｎｔｅｒ値とＳｅｎｄ  Ｄａｔａ  Ｃｏｕｎｔｅｒ値とに基づくＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇの出力の態様を示すタイミングチャートを示す。
【００８８】
送信部３００は、現在の時間ｔの入力を受けて、バッファメモリ部へデータの読み出し要求を行う判定収集部３１０と、バッファメモリ部から入力されるデータを出力用のポート３０に出力する送信セレクタ３２０を備える。
【００８９】
判定収集部３１０の機能ブロックを図２８に示す。図２８に示すように、判定収集部３１０は、各バッファメモリ部からのデータの格納の有無を示すＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇを受信して、現在の時間ｔに応じたバッファメモリ部に対してデータの読み出しを要求するＲｅａｄ  Ｅｎａｂｌｅを送信する。判定収集部３１０は、上述した真理値表に基づいて、現在の時間ｔに応じてＲｅａｄ  Ｅｎａｂｌｅを送信するバッファメモリ部を決定する。
【００９０】
送信セレクタ３２０は、各バッファメモリ部より入力される、ポート３０に出力するデータの有効範囲を示すＲｅａｄ  ＤＡＴＡ  ＶＡＬＩＤ  ＥＮＡＢＬＥに基づいて、対応するバッファメモリ部からのデータを選択し、ポート３０へ出力する。送信セレクタ３２０の機能ブロックを図２９に示す。
【００９１】
以上、説明したデータ転送制御装置１の動作について、データの入出力時の処理の流れの例を説明する。図３０は、データ転送制御装置１にデータの入力があった時の、該データの転送制御に係るタイムチャートである。
【００９２】
図３０に示す例では、以下に示すように、データＡ乃至Ｄがデータ転送制御装置１内の振り分け部１００ａ乃至ｃにおいて振り分けられ、格納部２００内の対応するバッファメモリ部に入力される。
【００９３】
時刻ｔ１に、ポート２０ｃを介して入力された、Ｐ１＝２且つＰ２＝３のデータＤがバッファメモリ部ｃ２３に振り分けられて入力される。時刻ｔ２に、ポート２０ａを介して入力された、Ｐ１＝０且つＰ２＝３のデータＡがバッファメモリ部ａ０３に振り分けられて入力される。時刻ｔ３に、ポート２０ａを介して入力された、Ｐ１＝０且つＰ２＝２のデータＢがバッファメモリ部ａ０２に振り分けられて入力される。時刻ｔ３に、ポート２０ｂを介して入力された、Ｐ１＝１且つＰ２＝２のデータＣがバッファメモリ部ｂ１２に振り分けられて入力される。
【００９４】
データ転送制御装置１は、所定の周期をｔ＝０乃至３に分割して、現在の時刻及び締切時刻であるＰ２の値を管理している。図３０の例では、ｔ１及びｔ２（ｔ２＞ｔ１）がｔ＝０に属し、ｔ３（ｔ３＞ｔ２）及びｔ４（ｔ４＞ｔ３）がｔ=１に属している。
【００９５】
これらのデータの入力を受けて、バッファメモリ部ｃ２３の受信カウンタ２２０は、時刻ｔ１においてカウンタ値を０から１にカウントアップする。バッファメモリ部ａ０３の受信カウンタ２２０は、時刻ｔ２においてカウンタ値を０から１にカウントアップする。バッファメモリ部ａ０２の受信カウンタ２２０は、時刻ｔ３においてカウンタ値を０から１にカウントアップする。バッファメモリ部ｂ１２の受信カウンタ２２０は、時刻ｔ４においてカウンタ値を０から１にカウントアップする。
【００９６】
また、バッファメモリ部ｃ２３のメモリ部２３０には、時刻ｔ１においてデータＤが格納される。バッファメモリ部ａ０３のメモリ部２３０には、時刻ｔ２においてデータＡが格納される。バッファメモリ部ａ０２のメモリ部２３０には、時刻ｔ３においてデータＢが格納される。バッファメモリ部ｂ１２のメモリ部２３０には、時刻ｔ４においてデータＣが格納される。格納されたデータは、後述するようにデータの送信されるまで、各メモリ部２３０に格納される。
【００９７】
また、バッファメモリ部ｃ２３の管理メモリ部２４０には、時刻ｔ１においてデータＤのメモリ部２３０への格納時のＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓ及びデータ長であるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈが格納される。バッファメモリ部ａ０３の管理メモリ部２４０には、時刻ｔ２においてデータＡのメモリ部２３０への格納時のＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓ及びデータ長であるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈが格納される。バッファメモリ部ａ０２の管理メモリ部２４０には、時刻ｔ３においてデータＢのメモリ部２３０への格納時のＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓ及びデータ長であるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈが格納される。バッファメモリ部ｂ１２の管理メモリ部２４０には、時刻ｔ４においてデータＣのメモリ部２３０への格納時のＷｒｉｔｅ  Ｄａｔａ  Ａｄｄｒｅｓｓ及びデータ長であるＷｒｉｔｅ  Ｄａｔａ  Ｌｅｎｇｔｈが格納される。
【００９８】
このとき、各バッファメモリ部において、メモリ部２３０にデータが格納された際の受信カウンタ２２０のカウンタ値が、該データの出力前では、送信カウンタ２６０のカウンタ値とは異なるものである。このため、かかる期間、比較部２７０は、データがメモリ部２３０に格納されていることを示すＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１を送信部３００内の判定収集部３１０に出力する。尚、それ以外の期間には、比較部２７０は、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝０を出力する。具体的には、バッファメモリ部ｃ２３の比較部２７０は、時刻ｔ１からデータＤが出力されるまでの期間、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１を出力する。バッファメモリ部ａ０３の比較部２７０は、時刻ｔ２からデータＡが出力されるまでの期間、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１を出力する。バッファメモリ部ａ０２の比較部２７０は、時刻ｔ３からデータＢが出力されるまでの期間、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１を出力する。バッファメモリ部ｂ１２の比較部２７０は、時刻ｔ４からデータＣが出力されるまでの期間、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１を出力する。
【００９９】
判定収集部３１０は、上述のように各バッファメモリ部の比較部２７０から出力される判定結果、並びにバッファメモリ部に設定されるＰ１及びＰ２の値に応じて、バッファメモリ部に対してＲｅａｄ  Ｅｎａｂｌｅを送信することで、格納されるデータの出力指示を行う。判定収集部３１０は、上述したように、現在の時間ｔ及び設定されるＰ２の値との関係、並びにＰ１の値から、優先的に判定結果を参照するバッファメモリ部を決定する。図３０の例では、具体的には、時刻ｔ１において、バッファメモリ部ｃ２３に対して、データＤの出力指示を行う。データＤの出力後、つまり時刻ｔ１からデータＤのデータ長に応じた送信時間の経過後である時刻ｔ４において、バッファメモリ部ａ０２に対して、データＢの出力指示を行う。データＢの出力後、つまり時刻ｔ４からデータＢのデータ長に応じた送信時間の経過後である時刻ｔ５において、バッファメモリ部ｂ１２に対して、データＣの出力指示を行う。データＣの出力後、つまり時刻ｔ５からデータＣのデータ長に応じた送信時間の経過後である時刻ｔ６において、バッファメモリ部ａ０３に対して、データＡの出力指示を行う。
【０１００】
判定収集部３１０からのＲｅａｄ  Ｅｎａｂｌｅを受信することで、バッファメモリ部のメモリ部２３０は、格納するデータを送信部３００の送信セレクタ３２０に出力する。このとき、送信カウンタ２６０は、Ｒｅａｄ  Ｅｎａｂｌｅの受信を検出することでカウントアップを行う。具体的には、バッファメモリ部ｃ２３の送信カウンタ２６０は、時刻ｔ１においてカウンタ値を０から１にカウントアップする。バッファメモリ部ａ０２の送信カウンタ２６０は、時刻ｔ４においてカウンタ値を０から１にカウントアップする。バッファメモリ部ｂ１２の送信カウンタ２６０は、時刻ｔ５においてカウンタ値を０から１にカウントアップする。バッファメモリ部ａ０３の送信カウンタ２６０は、時刻ｔ６においてカウンタ値を０から１にカウントアップする。
【０１０１】
また、Ｒｅａｄ  Ｅｎａｂｌｅを受信した各バッファメモリ部のＲＡＤＤ生成部２５０は、メモリ部２３０に格納されるデータの出力を指示するＲｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  Ｅｎａｂｌｅと、出力時のＲｅａｄアドレスであるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒとを出力する。具体的には、時刻ｔ１からｔ４までの間、バッファメモリ部ｃ２３のＲＡＤＤ生成部２５０は、Ｒｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  ＥｎａｂｌｅとＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒとを出力する。時刻ｔ４からｔ５までの間、バッファメモリ部ａ０２のＲＡＤＤ生成部２５０は、Ｒｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  ＥｎａｂｌｅとＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒとを出力する。時刻ｔ５からｔ６までの間、バッファメモリ部ｂ１２のＲＡＤＤ生成部２５０は、Ｒｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  ＥｎａｂｌｅとＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒとを出力する。時刻ｔ６からデータＡのデータ長に応じた送信時間が経過するまでの間、バッファメモリ部ａ０３のＲＡＤＤ生成部２５０は、Ｒｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  ＥｎａｂｌｅとＲｅａｄ  Ａｄｄｒｅｓｓ  Ｃｏｕｎｔｅｒとを出力する。
【０１０２】
以上の各部の処理によって、送信セレクタ３２０を介して出力用のポート３０には、データＤ、データＢ、データＣ、データＡの順でデータが出力される。上述したようにデータの出力スケジュールは、現在の時間ｔとＰ２との関係、及びＰ１に基づいて決定されるため、各データが締切時間を超過してポート３０に出力されることはない。
【０１０３】
上記の送信部３００の判定収集部３１０及び送信セレクタ３２０について、図３１に処理の流れを示すフローチャートを示す。
【０１０４】
判定収集部３１０は、現在の時間ｔを確認することにより、各バッファメモリ部に格納されるデータの締切時間を示すＰ２の値に基づくデータ出力の優先度を決定する。
【０１０５】
判定収集部３１０は、現在の時間ｔ＝０のとき（ステップＳ１０１：Ｙｅｓ）、図１２の真理値表に基づいて、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇを確認するバッファメモリ部を選択する（ステップＳ１０２）。
【０１０６】
次に、選択したバッファメモリ部から送信されるＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇの値を確認することで、該バッファメモリ部のメモリ部２３０内にデータが格納されているか否かを確認する（ステップＳ１０３）。Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇ＝１である場合（ステップＳ１０３：Ｙｅｓ）、該バッファメモリ部に対してＤａｔａ  Ｅｎａｂｌｅを送信し、データの出力を行わせる（ステップＳ１０４）。送信セレクタ３２０は、選択されたバッファメモリ部のＲＡＤＤ生成部２５０より送信されるＲｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  Ｅｎａｂｌｅに応じて、データの出力を行い、データ送信の終了を示すＲｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  Ｅｎａｂｌｅ＝０が送信された時点で、データの出力を終了する（ステップＳ１０５）。
【０１０７】
続いて、判定収集部３１０は再度現在の時間ｔに応じて決定される優先度に基づいて、各バッファメモリ部からのＤａｔａ  Ｅｍｐｔｙ  Ｆｌａｇの確認を行う。
【０１０８】
ｔ＝１のとき（ステップＳ２０１：Ｙｅｓ）、判定収集部３１０は、図１３の真理値表に基づいて、Ｄａｔａ  Ｅｍｐｔｙ  Ｆｌａｇを確認するバッファメモリ部を選択する（ステップＳ２０２）。その後、選択されたバッファメモリ部に対して、ステップＳ１０３乃至Ｓ１０４と同様の手順であるステップＳ２０３乃至ステップＳ２０４を実施することで、Ｒｅａｄ  Ｅｎａｂｌｅを送信する。Ｒｅａｄ  Ｅｎａｂｌｅを受信したバッファメモリ部からのデータとＲｅａｄ  Ｄａｔａ  Ｖａｌｉｄ  Ｅｎａｂｌｅとに基づいて、送信セレクタ３２０は、データの出力を行う。
【０１０９】
以降、送信部３００の判定収集部３１０及び送信セレクタ３２０は、ｔ＝２の場合は、図１４の真理値表に基づいて、ｔ＝３の場合は、図１５の真理値表に基づいて、上述の手順を繰り返す。ｔ＝３の次は、ｔ＝０となるため、その場合、ステップＳ１０１がＹｅｓである場合の手順を行う。
【０１１０】
（４）データ処理装置の実施例
本実施形態において、締切時間は、例えば、出力先のポート３０に対して転送処理を完了することが好ましい時間（或いは、転送処理を完了しなければいけない時間）としている。
【０１１１】
締切時間の一例として、出力先のポート３０に接続されるデータ処理用の装置であって、データ転送制御装置１によって転送されるデータを用いて処理を行う装置において、該処理が開始する時間を設定してもよい。
【０１１２】
図３２に、このような装置とデータ転送制御装置１とを含むデータ処理装置１’の構成を表す図を示す。データ処理装置１’は、データ転送制御装置１と、データ転送制御装置１に対してデータの入力を行う前段処理装置２ａ、２ｂ、２ｃと、データ転送制御装置１を介して転送されたデータを受信して処理する後段処理装置３とを含む。データ転送制御装置１が備えるデータ入力用のポート２０ａには、該ポート２０ａに対してデータを入力する前段処理装置２ａが接続される。ポート２０ｂには、該ポート２０ｂに対してデータを入力する前段処理装置２ｂが接続される。ポート２０ｃには、該ポート２０ｃに対してデータを入力する前段処理装置２ｃが接続される。これらの前段処理装置２ａ乃至２ｃは、ポート２０ａ乃至２０ｃに対してデータの入力を行うだけでなく、データのヘッダの参照や、何らかのデータ等のパケット内へのマッピング等の処理を可能とする。また、データ転送制御装置１が備えるデータ出力用のポート３０には、該ポート３０から出力されるデータを受信する後段処理装置３が接続される。後段処理装置３は、受信したデータを用いて何らかの処理を可能とする。
【０１１３】
図３３に、このような後段処理装置３における処理期間と締切時間との関係を示すタイムチャートを示す。図３３は、基準信号Ｔ＝４ｍｓとして、ポート３０に接続される後段処理装置３における処理周期が４ｍｓ、２ｍｓ、１ｍｓである場合について示している。
【０１１４】
４ｍｓ周期毎にデータの処理をする場合のデータの締切時間は、基準信号Ｔに対して、０ｍｓとなる。２ｍｓ周期毎にデータの処理をする場合のデータの締切時間は、基準信号Ｔに対して、０ｍｓ、２ｍｓとなる。１ｍｓ周期毎にデータの処理をする場合のデータの締切時間は、基準信号Ｔに対して、０ｍｓ、１ｍｓ、２ｍｓ、３ｍｓとなる。
【０１１５】
このようなデータの処理周期に基づいて、例えば、データの入力元となるポート２０ａ乃至２０ｃにおいて、各データにＰ２の値を設定してもよい。また、例えば、ポート２０Ａ乃至２０Ｃに接続される前段処理装置２ａ乃至２ｃを用いて、出力用のポート３０に接続される後段処理装置３における処理期間を考慮した締切時間を決定し、データ内部にマッピングしてもよい。以下に、ＩＰ（Internet protocol）パケットを転送制御の対象となるデータとして用いた場合に、ＩＰパケットヘッダに対して、締切時間を示すＰ２の値をマッピングする例について説明する。
【０１１６】
図３４に、ＩＰパケットヘッダのフォーマットを示す。図３４に示されるように、ＩＰパケットヘッダは、以下のデータフィールドを有するようフォーマットにより定められる。
【０１１７】
Ｖｅｒｓｉｏｎフィールドは、ＩＰヘッダの最初の４ビットであり、ＩＰパケットを構成するＩＰプロトコルのバージョンを表す値を格納する。
【０１１８】
Ｈｅａｄｅｒ  Ｌｅｎｇｔｈフィールドは、４ビットのフィールドであって、ＩＰヘッダ自身の長さを表す値を格納する。
【０１１９】
Ｓｅｒｖｉｃｅ  Ｔｙｐｅフィールドは、８ビットのフィールドであって、ＩＰパケットの要求するサービスの特徴を表す。例えば、このＳｅｒｖｉｃｅ  Ｔｙｐｅフィールドの中に、ＩＰパケットの重要度を表すＰ１等の値を格納してもよい。
【０１２０】
Ｉｄｅｎｔｉｆｉｃａｔｉｏｎフィールドは、１６ビットのフィールドであって、ＩＰパケットを識別するために該ＩＰパケットの送信側が割り当てたＩＤ番号等を格納する。
【０１２１】
Ｆｌａｇフィールドは、３ビットのフィールドであって、ＩＰパケットについてのフラグメント化に係る情報を格納する。
【０１２２】
Ｆｌａｇｍｅｎｔ  Ｏｆｆｓｅｔフィールドは、１３ビットのフィールドであって、ＩＰパケットがフラグメント化されている場合の何番目のフラグメントであるかを表す値を格納する。
【０１２３】
Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ（ＴＴＬ）フィールドは、８ビットのフィールドであって、ＩＰパケットのインターネット上での生存期間を表す値を格納する。
【０１２４】
Ｐｒｏｔｏｃｏｌフィールドは、８ビットのフィールドであって、ＩＰパケットがカプセル化している上位層プロトコルの種類を表す値を格納する。
【０１２５】
Ｈｅａｄｅｒ  Ｃｈｅｃｋｓｕｍフィールドは、１６ビットのフィールドであって、ＩＰヘッダをＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）でチェックする。
【０１２６】
Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓフィールドは、ＩＰパケットの送信元のＩＰアドレスを、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓは、ＩＰパケットの送信先のＩＰアドレスを、夫々格納する３２ビットのフィールドである。
【０１２７】
Ｏｐｔｉｏｎフィールドは、ＩＰパケット配送時に特殊な処理を行なうことを指示するフィールドである。Ｏｐｔｉｏｎｓフィールドのビット長は可変であり、Ｏｐｔｉｏｎフィールドに値を格納する場合のヘッダ長の調整のため、ｐａｄｄｉｎｇフィールドが付加されることがある。
【０１２８】
データ転送制御装置１の運用においては、このＯｐｔｉｏｎｓフィールドに締切時間を表すＰ２の値を格納してもよい。具体的に、Ｏｐｔｉｏｎｓフィールド内には、フラグメント情報を格納するＣｏｐｙ  Ｆｌａｇフィールド、Ｏｐｔｉｏｎの種類を示すＣｌａｓｓフィールド及びＮｕｍｂｅｒフィールド、長さを示すＬｅｎｇｔｈフィールド、Ｏｐｔｉｏｎについてのデータを格納するＯｐｔｉｏｎ  Ｄａｔａフィールドが夫々定義される。ポート２０Ａ乃至２０Ｃに接続される、前段処理装置２ａ乃至２ｃは、締切時間を示すＰ２をこのＯｐｔｉｏｎ  Ｄａｔａフィールドにマッピングしてもよい。
【０１２９】
（５）データ処理装置の変形例
以上、データの締切時間の設定に係る例として、入力用のポート２０ａ乃至２０ｃに接続される前段処理装置２ａ乃至２ｃにおいて、後段処理装置３における処理期間等を考慮して締切時間Ｐ２の設定を行う態様について説明した。データの締切時間の設定に係る他の例として、データ転送制御装置１のスイッチ機能部１０において、後段処理装置３における処理期間等を考慮して締切時間Ｐ２の設定を行う態様であってもよい。
【０１３０】
この態様では、データ転送制御装置１のスイッチ機能部１０において、後段処理装置３での処理を考慮した転送制御を実現するために、予め振り分け部１００に対して締切時間に相当する他の要素を定義し、データ転送の優先度を決定することが考えられる。例えば、Ｒａｐｉｄ  ＩＯなどのパケットに対し、データの締切時間と、転送先のアドレス領域を対応させ、振り分け部１００で転送アドレスを締切時間に読み替えて、転送を行ってもよい。
【０１３１】
具体的には、後段処理装置３が備える、ポート２０ａ乃至２０ｃから入力されるデータを格納するメモリにおいて、処理時間に応じてデータを格納するためのメモリアドレスを分割する。
【０１３２】
例えば、図３２に示すように、後段処理装置３において、４ｍｓの基準時間及び１ｍｓの処理周期を有する場合について考える。このとき、０ｍｓ、１ｍｓ、２ｍｓ及び３ｍｓの夫々の処理時間に応じて、対応するデータを格納するための領域を設けるよう、メモリアドレスの分割を行う。先ず、メモリアドレス（０ｘ０００〜０ｘ０ＦＦ）の領域をＷ、メモリアドレス（０ｘ１００〜０ｘ１ＦＦ）の領域をＸ、メモリアドレス（０ｘ２００〜０ｘ２ＦＦ）の領域をＹ、メモリアドレス（０ｘ３００〜０ｘ３ＦＦ）の領域をＺと定義する。
【０１３３】
そして、０ｍｓに加工処理を開始するデータはＷの領域に、１ｍｓに加工処理を開始するデータはＸの領域に、２ｍｓに加工処理を開始するデータはＹの領域に、３ｍｓに加工処理を開始するデータはＺの領域に、夫々格納するよう、各データの転送先のメモリアドレスを設定する。
【０１３４】
図３６は、このような処理の対象となるデータの一例である、Ｒａｐｉｄ  ＩＯパケットのフォーマットを示す図である。Ｒａｐｉｄ  ＩＯパケットのフォーマットでは、転送先のアドレスを指定する２９ビットのＡｄｄｒｅｓｓフィールドが定義されている。このＡｄｄｒｅｓｓフィールドを用いて、転送先の後段処理装置３におけるメモリアドレスを指定した情報を格納する。
【０１３５】
データ転送制御装置１の振り分け部１００では、抽出部１１０は、Ｒａｐｉｄ  ＩＯパケットを受信した場合、転送先のメモリアドレスを締切時間を示すＰ２の値に読み替えて、Ｐ２情報をＰ２セレクタに入力する。具体的には、入力されるパケットについて、転送先のアドレス（０ｘ０００〜０ｘ０ＦＦ）である場合、締切時間＝０ｍｓ、つまりＰ２＝０と読み替えて、読み替えたＰ２の値を入力する。転送先のアドレス（０ｘ１００〜０ｘ１ＦＦ）である場合、締切時間＝１ｍｓ、つまりＰ２＝１と読み替えて、読み替えたＰ２の値を入力する。転送先のアドレス（０ｘ２００〜０ｘ２ＦＦ）である場合、締切時間＝２ｍｓ、つまりＰ２＝２と読み替えて、読み替えたＰ２の値を入力する。転送先のアドレス（０ｘ３００〜０ｘ３ＦＦ）である場合、締切時間＝３ｍｓ、つまりＰ２＝３と読み替えて、読み替えたＰ２の値を入力する。
【０１３６】
Ｐ２セレクタ１３０乃至１５０は、入力されたＰ２の値を用いて、パケットをバッファメモリ部毎に振り分ける。
【０１３７】
この態様においては、前段処理装置２ａ乃至２ｃは、出力用のポート３０に接続される後段処理装置３での処理については考慮することなく、データの種類に応じた転送先の後段処理装置３のメモリアドレスをデータに付与して送信する。
【０１３８】
本発明は、上述した実施例に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴うデータ転送制御装置及び方法、データ処理装置もまた本発明の技術的範囲に含まれるものである。
【０１３９】
以上、本明細書で説明した実施形態について、以下の付記を更に記載する。
【０１４０】
（付記１）
データを入力する複数の入力ポートと、
前記データを出力する出力ポートと、
前記データに設定される締切時間に基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する転送制御部と
を備えることを特徴とするデータ転送制御装置。
【０１４１】
（付記２）
入力される前記データを格納する複数の格納部と
前記複数の入力ポートの夫々に対応し、入力される前記データを該データに設定される前記締切時間に対応する前記複数の格納部のいずれかに格納する振り分け部と
を更に備えることを特徴とする付記１に記載のデータ転送制御装置。
【０１４２】
（付記３）
前記転送制御部は、前記複数の格納部に格納される前記データを、該データに設定される前記締切時間に基づいて前記出力ポートに転送する際の順番を決定することを特徴とする付記２に記載のデータ転送制御装置。
【０１４３】
（付記４）
前記転送制御部は、前記複数の格納部に格納される前記データを、前記データに設定される前記締切時間及び現在の時刻を比較した結果に応じて、前記出力ポートに転送する際の順番を決定することを特徴とする付記３に記載のデータ転送制御装置。
【０１４４】
（付記５）
前記複数の入力ポートより入力されたデータの数をカウントする第１カウンタと、
前記出力ポートに出力されたデータの数をカウントする第２カウンタと、
前記第１カウンタ及び前記第２カウンタのカウンタ値の比較を行う比較部と
を更に備え、
前記転送制御部は、前記比較部における比較結果に応じて、前記複数の格納部に格納される前記データを前記出力ポートに転送する際の順番を決定することを特徴とする付記２から４のいずれか一項に記載のデータ転送制御装置。
【０１４５】
（付記６）
前記転送制御部は、前記データに設定される優先度と、前記締切時間とに基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する際の順番を決定することを特徴とする付記１から４のいずれか一項に記載のデータ転送制御装置。
【０１４６】
（付記７）
データを複数の入力ポートより入力する入力工程と、
前記データを出力ポートより出力する出力工程と、
前記データに設定される締切時間に基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する転送制御工程と
を備えることを特徴とするデータ転送制御方法。
【０１４７】
（付記８）
データ転送制御装置と、該データ転送制御装置を介して転送されるデータを受信する第１処理装置とを含むデータ処理装置であって、
前記データ転送制御装置は、
データを入力する複数の入力ポートと、
前記データを出力する出力ポートと、
前記データに設定される締切時間に基づいて、前記データを前記複数の入力ポートから前記出力ポートに転送する転送制御部と
を備え、
前記第１処理装置は、受信した前記データを所定のタイミングで処理することを特徴とするデータ処理装置。
【０１４８】
（付記９）
前記データ転送制御装置を介して前記第１処理装置にデータを送信する第２処理装置を更に備え、
前記第２処理装置は、前記所定のタイミングに間に合うよう、前記データについて前記締切時間を設定した上で送信することを特徴とする付記８に記載のデータ処理装置。
【０１４９】
（付記１０）
前記データ転送制御装置を介して前記第１処理装置にデータを送信する第２処理装置を更に備え、
前記第１処理装置は、受信した前記データについて、処理する際の前記所定のタイミング毎に分類して格納し、
前記第２処理装置は、前記メモリ内における、前記所定のタイミングに応じたアドレスを指定して前記データを送信し、
前記転送制御部は、前記データについて指定される前記アドレスを前記締切時間を示す情報として用いることで、前記データを前記複数の入力ポートから前記出力ポートに転送することを特徴とする付記８に記載のデータ処理装置。
【符号の説明】
【０１５０】
１  データ転送制御装置、
２ａ、２ｂ、２ｃ  前段処理装置、
３  後段処理装置、
１０  スイッチ機能部、
２０ａ、２０ｂ、２０ｃ  ポート、
３０  ポート、
１００、１００ａ、１００ｂ、１００ｃ  振り分け部、
１１０  抽出部、
１２０  Ｐ１セレクタ、
１３０、１４０、１５０  Ｐ２セレクタ、
２００、２００ａ、２００ｂ、２００ｃ、２００ｄ  格納部、
２１０  ＷＡＤＤ生成部、
２２０  受信カウンタ、
２３０  メモリ部、
２４０  管理メモリ部、
２５０  ＲＡＤＤ生成部、
２６０  送信カウンタ、
２７０  比較部、
３００  送信部、
３１０  判定収集部、
３２０  送信セレクタ、
４００〜４３０  バス。
【図１】
0005659798.tif 000002
【図２】
0005659798.tif 000003
【図３】
0005659798.tif 000004
【図４】
0005659798.tif 000005
【図５】
0005659798.tif 000006
【図６】
0005659798.tif 000007
【図７】
0005659798.tif 000008
【図８】
0005659798.tif 000009
【図９】
0005659798.tif 000010
【図１０】
0005659798.tif 000011
【図１１】
0005659798.tif 000012
【図１２】
0005659798.tif 000013
【図１３】
0005659798.tif 000014
【図１４】
0005659798.tif 000015
【図１５】
0005659798.tif 000016
【図１６】
0005659798.tif 000017
【図１７】
0005659798.tif 000018
【図１８】
0005659798.tif 000019
【図１９】
0005659798.tif 000020
【図２０】
0005659798.tif 000021
【図２１】
0005659798.tif 000022
【図２２】
0005659798.tif 000023
【図２３】
0005659798.tif 000024
【図２４】
0005659798.tif 000025
【図２５】
0005659798.tif 000026
【図２６】
0005659798.tif 000027
【図２７】
0005659798.tif 000028
【図２８】
0005659798.tif 000029
【図２９】
0005659798.tif 000030
【図３０】
0005659798.tif 000031
【図３１】
0005659798.tif 000032
【図３２】
0005659798.tif 000033
【図３３】
0005659798.tif 000034
【図３４】
0005659798.tif 000035
【図３５】
0005659798.tif 000036
【図３６】
0005659798.tif 000037