(57)【要約】【課題】送信順序の変更に柔軟に対応可能とする。【解決手段】送信装置２０は、受付部４２と、送信処理部４６と、を備える。受付部４２は、送信対象のフレームのフレームＩＤ（フレーム識別子）と、フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を受け付ける。送信処理部４６は、送信スケジュール情報に含まれる送信パラメータに応じて、フレームＩＤによって識別されるフレームを受信装置１２へ送信する。【選択図】図３
2020088514.tif 000002
【特許請求の範囲】
【請求項１】
送信対象のフレームのフレーム識別子と、前記フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を受け付ける受付部と、
前記送信スケジュール情報に含まれる前記送信パラメータに応じて、前記フレーム識別子によって識別されるフレームを受信装置へ送信する送信処理部と
を備える送信装置。
【請求項２】
送信対象の前記フレームを記憶部へ転送する転送部を備え、
前記受付部は、
前記転送部によって送信対象の前記フレームが前記記憶部へ転送された後に、該フレームの前記フレーム識別子と、該フレームの前記送信パラメータと、を含む前記送信スケジュール情報を受付ける、
請求項１に記載の送信装置。
【請求項３】
前記送信パラメータは、前記フレームの送信時刻であり、
前記送信処理部は、
前記送信スケジュール情報に含まれる前記フレーム識別子によって識別される前記フレームを、該送信スケジュール情報に含まれる前記送信時刻に前記受信装置へ送信する、
請求項１または請求項２に記載の送信装置。
【請求項４】
前記送信スケジュール情報は、
前記送信スケジュール情報の有効条件を更に含む、
請求項１〜請求項３の何れか１項に記載の送信装置。
【請求項５】
前記有効条件は、
前記送信スケジュール情報を前記受付部で受付ける受付時刻の期限を示す、
請求項４に記載の送信装置。
【請求項６】
前記受付部で受付けた１または複数の前記送信スケジュール情報の内、前記有効条件を満たす送信スケジュール情報を選択する選択部を備え、
前記送信処理部は、選択された前記送信スケジュール情報に含まれる前記送信パラメータに応じて、該送信スケジュール情報に含まれる前記フレーム識別子によって識別される前記フレームを前記受信装置へ送信する、
請求項４または請求項５に記載の送信装置。
【請求項７】
前記選択部は、
前記受付部で受付けた、前記有効条件を満たす複数の前記送信スケジュール情報に、同じ前記送信パラメータを含む複数の前記送信スケジュール情報が含まれる場合、複数の該送信スケジュール情報の内、前記受付部が前記送信スケジュール情報を受付けた受付時刻が最新の前記送信スケジュール情報を選択する、
請求項６に記載の送信装置。
【請求項８】
前記選択部は、
選択した前記送信スケジュール情報に含まれる前記フレーム識別子によって識別される前記フレームの記憶部への転送が未完了である場合、前記有効条件を満たし、且つ、該送信スケジュール情報の次に前記受付部が受付けた他の前記送信スケジュール情報を選択する、
請求項７に記載の送信装置。
【請求項９】
前記受付部は、
前記転送部とは異なるバスインターフェースを介して、前記送信スケジュール情報を受付ける、
請求項２に記載の送信装置。
【請求項１０】
ホストプロセッサと、前記ホストプロセッサと通信する送信装置と、を備えた通信装置であって、
前記送信装置は、
送信対象のフレームのフレーム識別子と、前記フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を前記ホストプロセッサから受け付ける受付部と、
前記送信スケジュール情報に含まれる前記送信パラメータに応じて、前記フレーム識別子によって識別されるフレームを受信装置へ送信する送信処理部と
を備える、通信装置。
【請求項１１】
通信装置と、前記通信装置とネットワークを介して通信する受信装置と、を備えた通信システムであって、
前記通信装置は、
ホストプロセッサと、前記ホストプロセッサと通信する送信装置と、を備え、
前記送信装置は、
送信対象のフレームのフレーム識別子と、前記フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を前記ホストプロセッサから受け付ける受付部と、
前記送信スケジュール情報に含まれる前記送信パラメータに応じて、前記フレーム識別子によって識別されるフレームを前記受信装置へ送信する送信処理部と
を備える、通信システム。
【請求項１２】
送信対象のフレームのフレーム識別子と、前記フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を受け付けるステップと、
前記送信スケジュール情報に含まれる前記送信パラメータに応じて、前記フレーム識別子によって識別されるフレームを受信装置へ送信するステップと、
を含む送信方法。
【請求項１３】
送信対象のフレームのフレーム識別子と、前記フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を受け付けるステップと、
前記送信スケジュール情報に含まれる前記送信パラメータに応じて、前記フレーム識別子によって識別されるフレームを受信装置へ送信するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、送信装置、通信装置、通信システム、送信方法、およびプログラムに関する。
【背景技術】
【０００２】
ネットワークを介してリアルタイム通信を行う通信装置が知られている。また、フレームの送信時刻を指定し、指定した送信時刻にフレームを送信する技術が開示されている。
【０００３】
しかし、従来では、送信指示されたフレームは、送信キューに順番に格納され、送信指示後に送信順を変更することは出来なかった。このため、従来技術では、送信順序の変更に柔軟に対応することが困難であった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５０８０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、送信順序の変更に柔軟に対応可能な、送信装置、通信装置、通信システム、送信方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施の形態の送信装置は、受付部と、送信処理部と、を備える。受付部は、送信対象のフレームのフレーム識別子と、前記フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を受け付ける。送信処理部は、前記送信スケジュール情報に含まれる前記送信パラメータに応じて、前記フレーム識別子によって識別されるフレームを受信装置へ送信する。
【図面の簡単な説明】
【０００７】
【図１】通信システムの模式図。
【図２】送信装置のハードウェア構成の模式図。
【図３】ホストプロセッサおよび送信装置の機能的構成の模式図。
【図４】デスクリプタの構造の模式図。
【図５Ａ】フレーム記憶領域のデータ構造の模式図。
【図５Ｂ】付随情報記憶領域のデータ構造の模式図。
【図６】スケジュールＤＢのデータ構成の模式図。
【図７】フレーム送信処理のフローチャート。
【図８】転送処理のフローチャート。
【図９】送信スケジュール処理のフローチャート。
【図１０】送信スケジュール設定処理のフローチャート。
【図１１】送信処理のフローチャート。
【図１２】後処理のフローチャート。
【図１３】ホストプロセッサおよび送信装置の機能的構成の模式図。
【図１４】スケジュールＤＢのデータ構成の模式図。
【図１５】選択部による選択の説明図。
【図１６】送信処理のフローチャート。
【図１７】ホストプロセッサおよび送信装置の機能的構成の模式図。
【図１８】送信装置のハードウェア構成の模式図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、送信装置、通信装置、通信システム、送信方法、およびプログラムの実施の形態を詳細に説明する。
【０００９】
（第１の実施の形態）
図１は、本実施の形態の通信システム１の一例を示す模式図である。
【００１０】
通信システム１は、通信装置１０と、受信装置１２と、を備える。通信装置１０と受信装置１２とは、ネットワークＮを介して通信可能に接続されている。
【００１１】
通信装置１０は、フレームデータを受信装置１２へ送信する装置である。フレームデータは、デジタルデータ転送の構成単位である。フレームデータを、以下では、単にフレームと称して説明する場合がある。受信装置１２は、通信装置１０からフレームを受信する。
【００１２】
ネットワークＮは、例えばＥｔｈｅｒｎｅｔ（登録商標）である。ネットワークＮは、ＩＥＥＥ  ８０２．１で定義されるＡＶＢ（Ａｕｄｉｏ  Ｖｉｄｅｏ  Ｂｒｉｄｇｉｎｇ）及びＴＳＮ（Ｔｉｍｅ−Ｓｅｎｓｉｔｉｖｅ  Ｎｅｔｗｏｒｋｉｎｇ）規格等に対応したネットワークである。ネットワークＮの種類は任意でよい。ネットワークＮは、例えばオフィスネットワーク、データセンタ内部のネットワーク、車載ネットワーク、工場内ネットワーク、および、携帯基地局のネットワーク等である。
【００１３】
通信装置１０は、メモリ１４と、ホストプロセッサ１６と、ストレージ１８と、送信装置２０と、を備える。
【００１４】
メモリ１４は、各種データを記憶する。メモリ１４は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などである。
【００１５】
ホストプロセッサ１６は、メモリバスを用いてメモリ１４と接続されている。また、ホストプロセッサ１６は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスを用いて、ストレージ１８と接続されている。また、ホストプロセッサ１６は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスを用いて、送信装置２０と接続されている。
【００１６】
ホストプロセッサ１６は、ストレージ１８から読出したプログラムをメモリ１４に展開することで、メモリ１４上の命令およびデータを読みながら処理を実行する。処理は、ホストプロセッサ１６に備えられた１つまたは複数のコアにより実行される。ホストプロセッサ１６は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などである。
【００１７】
ストレージ１８は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）およびＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等である。
【００１８】
送信装置２０は、ホストプロセッサ１６をネットワークＮに接続する。送信装置２０は、具体的には、ネットワークインタフェースコントローラである。
【００１９】
送信装置２０は、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、および、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等により実現される。また、送信装置２０は、ＡＳＩＣ、ＦＰＧＡ及び汎用プロセッサの組み合わせによって実現してもよい。また、送信装置２０は、ホストプロセッサ１６とは別のチップとして実装してもよいし、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）として１つのチップとして実装してもよい。
【００２０】
図２は、送信装置２０のハードウェア構成の一例を示す模式図である。
【００２１】
送信装置２０は、バスブリッジ２０Ａと、メモリ２０Ｂと、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ２０Ｃと、プロセッサ２０Ｄと、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２０Ｅと、ＰＨＹ（ＰＨＹｓｉｃａｌ  ｌａｙｅｒ  ｉｎｔｅｒｆａｃｅ）２０Ｆと、を備える。
【００２２】
バスブリッジ２０Ａは、ホストプロセッサ１６に接続されたバスと、送信装置２０内部のメモリ２０Ｂ、ＤＭＡコントローラ２０Ｃ、およびプロセッサ２０Ｄの各々のバスと、の橋渡しを行う。ＤＭＡコントローラ２０Ｃは、ホストプロセッサ１６に接続されたメモリ１４（図１参照）と、送信装置２０内のメモリ２０Ｂと間でデータ転送を行う。
【００２３】
プロセッサ２０Ｄは、ホストプロセッサ１６とのやり取りや、ＭＡＣ２０ＥやＰＨＹ２０Ｆの設定および制御を行う。プロセッサ２０Ｄは、ＦＰＧＡ、ＡＳＩＣ、またはＣＰＵなどで実現される。
【００２４】
メモリ２０Ｂは、送信するフレームや後述する付随情報などを記憶する。メモリ２０Ｂは、ＳＲＡＭなどによって実現される。ＭＡＣ２０Ｅは、データリンク層のプロトコルの処理を行うハードウェアである。ＰＨＹ２０Ｆは、物理層のプロトコルの処理を行うハードウェアである。ＰＨＹ２０Ｆは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）の送信処理を行う。メモリ２０Ｂ、ＭＡＣ２０Ｅ、およびおＰＨＹ２０Ｆは、例えば、ＦＰＧＡやＡＳＩＣなどで実現する。
【００２５】
図３は、ホストプロセッサ１６および送信装置２０の機能的構成の一例を示す模式図である。なお、図３中、実線矢印はデータの流れを示し、点線矢印は、制御の流れを示す。
【００２６】
ホストプロセッサ１６は、送信指示部３０と、第１記憶部３１と、送信スケジュール指示部３２と、第３記憶部３３と、第１管理部３４と、を備える。送信指示部３０、送信スケジュール指示部３２、および第１管理部３４の少なくとも１つは、例えば、１または複数のプロセッサにより実現される。例えば、上記各部は、ＣＰＵなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００２７】
送信装置２０は、転送部４０と、第２記憶部４１と、受付部４２と、第４記憶部４３と、送信判定部４４と、第２管理部４５と、送信処理部４６と、を備える。転送部４０、受付部４２、送信判定部４４、第２管理部４５、および送信処理部４６の少なくとも１つは、例えば、１または複数のプロセッサにより実現される。例えば、上記各部は、ＣＰＵなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００２８】
ホストプロセッサ１６は、ホストプロセッサ１６上で動作するアプリケーションプログラム（以下、アプリケーションと称する場合がある）が、受信装置１２へ送信する送信対象のフレームを第１記憶部３１へ書込み、送信指示部３０へ該フレームの送信を指示する。
【００２９】
上記アプリケーションは、送信指示部３０へフレーム送信指示を送信することで、送信指示部３０へフレームの送信を指示する。
【００３０】
フレーム送信指示は、送信対象のフレームの第１記憶部３１における格納場所を示す開始アドレスと、該フレームのデータ長と、該フレームの優先度と、を含む。優先度は、該フレームの受信装置１２への送信の優先度を示す情報である。優先度は、例えば、アプリケーションによって設定される。また、優先度は、優先度そのものでも良いし、例えば優先度に対応したキューの識別子であってもよい。識別子にはＩＥＥＥ  ８０２．１Ｑで定義されるトラヒッククラスを用いてもよい。
【００３１】
送信指示部３０は、フレームの送信を指示する。送信指示部３０は、アプリケーションからフレーム送信指示を受付けると、転送指示を転送部４０へ通知する。転送指示は、アプリケーションから受付けたフレーム送信指示に含まれる開始アドレスによって示される場所に格納されたフレームを、第１記憶部３１から送信装置２０の第２記憶部４１へ転送することを示す。送信指示部３０は、第３記憶部３３にデスクリプタ３３Ａを書込み、送信装置２０の転送部４０へ該デスクリプタ３３Ａの番号を通知することで、転送指示を行う。
【００３２】
図４は、デスクリプタ３３Ａの構造の一例を示す模式図である。図４に示すように、第３記憶部３３には、複数のデスクリプタ３３Ａが配列された構造となっている。各デスクリプタ３３Ａには、フレームＩＤ、転送元の開始アドレス、転送先の開始アドレス、データ長、が含まれる。
【００３３】
フレームＩＤは、フレームを一意に識別可能な識別子である。送信指示部３０は、同じフレームＩＤが異なるフレームに割当てられる事の無いように、フレームごとにフレームＩＤを割当てる。このため、送信指示部３０は、一度使用したフレームＩＤをホストプロセッサ１６および送信装置２０で使用しないことが確定した場合に、再利用して他のフレームに割当てる。
【００３４】
転送元の開始アドレスは、第１記憶部３１に記憶されたフレームの先頭アドレスを示す。転送先の開始アドレスは、フレームの転送先である第２記憶部４１における、フレームを書込む場所の先頭アドレスを示す。データ長は、フレームのデータ長を示す。なお、送信指示部３０は、転送先の開始アドレスを、フレームＩＤとして用いてもよい。
【００３５】
図３に戻り説明を続ける。送信装置２０の転送部４０は、送信対象のフレームを第２記憶部４１へ転送する。転送部４０は、ホストプロセッサ１６の送信指示部３０から転送指示を受付けると、転送指示によって示されるフレームを、ホストプロセッサ１６の第１記憶部３１から送信装置２０の第２記憶部４１へ転送する。
【００３６】
詳細には、転送部４０は、転送指示に示されるデスクリプタ３３Ａの番号に対応するデスクリプタ３３Ａを、第３記憶部３３から読取る。そして、転送部４０は、読取ったデスクリプタ３３Ａに含まれる転送元の開始アドレスから、該デスクリプタ３３Ａに含まれるデータ長のデータを、第１記憶部３１から読取る。この処理により、転送部４０は、読取ったデスクリプタ３３Ａに含まれるフレームＩＤによって識別されるフレームを、第１記憶部３１における転送元の開始アドレスからデータ長分読取る。そして、転送部４０は、読取ったフレームを、第２記憶部４１における、読取ったデスクリプタ３３Ａに含まれる転送先の開始アドレスによって示される領域に書込む。これらの処理により、転送部４０は、転送指示によって示される送信対象のフレームを、第１記憶部３１から第２記憶部４１のフレーム記憶領域４１Ａへ転送する。
【００３７】
図５Ａは、第２記憶部４１のフレーム記憶領域４１Ａのデータ構造の一例を示す模式図である。
【００３８】
転送部４０は、第１記憶部３１から読取ったフレームを、第２記憶部４１における、読取ったデスクリプタ３３Ａに含まれる転送先の開始アドレスによって示される領域に書込む。この処理により、第２記憶部４１のフレーム記憶領域４１Ａに、送信対象のフレームが書込まれる。
【００３９】
転送部４０は、第２記憶部４１のフレーム記憶領域４１Ａへのフレームの書込みが完了すると、付随情報記憶領域４１Ｂへ付随情報を書込む。
【００４０】
図５Ｂは、第２記憶部４１の付随情報記憶領域４１Ｂのデータ構造の一例を示す模式図である。
【００４１】
付随情報記憶領域４１Ｂは、第２記憶部４１における、付随情報を記憶するための記憶領域である。付随情報は、フレームＩＤと、データ開始位置と、データ長と、有効フラグと、を含み、フレームＩＤに対応したデータ開始位置、データ長、有効フラグを管理する。転送部４０は、読取ったデスクリプタ３３Ａに含まれる、フレームＩＤ、転送先の開始アドレス、およびデータ長を、各々、付随情報におけるフレームＩＤ、データ開始位置、およびデータ長として付随情報記憶領域４１Ｂに書込む。
【００４２】
有効フラグは、対応するフレームＩＤによって識別されるフレームが有効であるか否かを示す。図５Ａには、有効フラグ“１”は有効を示し、有効フラグ“０”は無効を示す場合を一例として示した。なお、初期状態では、有効フラグは、無効“０”であるものとする。転送部４０は、付随情報記憶領域４１Ｂの初期化時に、有効フラグを全て無効“０”にすればよい。なお、付随情報記憶領域４１Ｂに有効フラグを含まない構成とし、対応するデータ長が“０”より大きい場合には有効とみなし、データ長が“０”である場合には無効とみなしてもよい。
【００４３】
図３に戻り説明を続ける。上記フレーム記憶領域４１Ａへのフレームの書込み、および、付随情報記憶領域４１Ｂへの付随情報の書込みにより、転送部４０は、送信対象のフレームの、ホストプロセッサ１６の第１記憶部３１から送信装置２０の第２記憶部４１への転送を完了する。
【００４４】
転送部４０は、第１記憶部３１から第２記憶部４１へのフレームの転送を完了すると、転送完了をホストプロセッサ１６の送信指示部３０へ通知する。転送完了の通知は、転送を完了したフレームのデスクリプタ３３Ａの番号を通知することで行われる。
【００４５】
送信指示部３０は、転送部４０へフレームの転送指示を通知した後に、該転送指示によって示される送信装置２０へ転送したフレームの、送信スケジュール処理を実行する。すなわち、本実施の形態では、送信指示部３０は、受信装置１２へ送信する対象のフレームを第１記憶部３１から送信装置２０の第２記憶部４１へ転送指示した後に、該フレームの送信スケジュール処理を実行する。送信スケジュール処理は、フレームの、受信装置１２への送信スケジュールを設定する処理である。
【００４６】
送信指示部３０は、アプリケーションから受付けたフレーム送信指示に応じて、転送部４０へ通知した転送指示によって示される、送信対象のフレームの優先度と、該フレームのデータ長と、該フレームに付与したフレームＩＤと、を送信スケジュール指示部３２へ通知する。フレームの優先度は、アプリケーションから受付けたフレーム送信指示に含まれる優先度である。
【００４７】
送信スケジュール指示部３２は、送信指示部３０から受付けた、フレームの優先度、データ長、およびフレームＩＤを用いて送信スケジュール情報を生成し、送信装置２０へ通知する。
【００４８】
詳細には、送信スケジュール指示部３２は、時刻を管理する第１管理部３４から現在時刻を取得する。そして、送信スケジュール指示部３２は、フレームの優先度、データ長、およびフレームＩＤと、現在時刻と、を用いて、送信スケジュール情報を生成する。
【００４９】
送信スケジュール情報は、送信スケジュールＩＤと、フレームＩＤと、送信時刻と、を含む。なお、送信スケジュール情報は、フレームＩＤと送信時刻とを少なくとも含む情報であればよい。
【００５０】
送信スケジュールＩＤは、送信スケジュール情報を一意に識別するための識別子である。送信スケジュール指示部３２は、送信スケジュール情報ごとに、一意に識別可能な識別子を送信スケジュールＩＤとして割当てればよい。なお、送信スケジュール指示部３２は、同時期に、同じＩＤが異なる送信スケジュール情報に割当てられる事の無いように、送信スケジュールＩＤの割当てを行えばよい。
【００５１】
送信時刻は、送信パラメータの一例である。送信パラメータは、フレームの送信タイミングに関する情報である。送信パラメータは、送信時刻、送信順、などによって表される。本実施の形態では、送信パラメータは、送信時刻である場合を一例として説明する。送信時刻は、詳細には、送信装置２０がフレームの送信を開始する時刻である。
【００５２】
送信スケジュール指示部３２は、フレームの優先度、データ長、およびフレームＩＤと、現在時刻と、を用いて、該フレームＩＤによって識別されるフレームの送信時刻を算出する。
【００５３】
例えば、送信スケジュール指示部３２は、フレーム送信の制御情報にゲート制御リストを用いることで、ＩＥＥＥ  ８０２．１Ｑｂｖで定義される送信制御であるタイム・アウェア・シェーピングを行うこともできる。また、送信スケジュール指示部３２は、制御情報としてクレジット値を用いることにより、ＩＥＥＥ  ８０２．１Ｑａｖで定義されるクレジットベースのシェーピングを行うこともできる。なお、送信スケジュール指示部３２は、ＩＥＥＥ  ８０２．１ＡＳで定義される時間をそのまま送信時刻として用いてもよい。また、送信スケジュール指示部３２は、循環を考慮した上で、任意の下位ビットを用いて送信時刻を算出してもよい。
【００５４】
なお、送信スケジュール指示部３２は、フレームＩＤごとに、フレームＩＤによって識別されるフレームの送信時刻を算出すればよい。すなわち、送信スケジュール指示部３２は、送信スケジュール情報ごとに、送信時刻を算出すればよい。
【００５５】
そして、送信スケジュール指示部３２は、１または複数の送信スケジュール情報を含む送信情報を、送信装置２０の受付部４２へ通知する。すなわち、送信情報は、フレームＩＤと送信時刻との組を含む送信スケジュール情報を、１つ含んだものであってもよいし、複数含んだものであってもよい。本実施の形態では、送信情報が、送信スケジュール情報を１つ含む構成である場合を、一例として説明する。また、本実施の形態では、送信スケジュール情報は、送信スケジュールＩＤと、フレームＩＤと、送信時刻と、を含む形態を一例として説明する。なお、送信情報は、更に、該送信情報を識別するための送信ＩＤを含んでいてもよい。
【００５６】
送信装置２０の受付部４２は、ホストプロセッサ１６の送信スケジュール指示部３２から、送信スケジュール情報を受付ける。すなわち、受付部４２は、送信情報を送信スケジュール指示部３２から受付けることで、送信情報に含まれる送信スケジュール情報を受付ける。
【００５７】
本実施の形態では、受付部４２は、送信スケジュールＩＤと、フレームＩＤと、送信時刻と、の各々に対応したレジスタインタフェースを、送信スケジュール指示部３２に対して提供する。このため、送信スケジュール指示部３２は、受付部４２の各々のレジスタに対して、送信スケジュールＩＤ、フレームＩＤ、および送信時刻を、この順に順次書込むことで、送信スケジュール情報を受付部４２に設定する。なお、受付部４２と送信スケジュール指示部３２とのインタフェースは、上記形態に限定されない。例えば、受付部４２は、転送部４０と同様に、メモリに送信スケジュール情報を一旦記憶しておき、ＤＭＡ転送などにより、送信スケジュール情報を送信スケジュール指示部３２から取得してもよい。
【００５８】
受付部４２は、送信スケジュール指示部３２から受付けた送信スケジュール情報を、第４記憶部４３のスケジュールＤＢ４３Ａに登録する。
【００５９】
図６は、スケジュールＤＢ４３Ａのデータ構成の一例を示す模式図である。スケジュールＤＢ４３Ａは、送信スケジュール情報を格納するデータベースである。なお、スケジュールＤＢ４３Ａのデータ形式は、データベースに限定されない。
【００６０】
受付部４２は、送信スケジュール指示部３２から送信スケジュール情報を受付けるごとに、受付けた送信スケジュール情報を第４記憶部４３のスケジュールＤＢ４３Ａに順次登録する。このため、スケジュールＤＢ４３Ａには、例えば、図６に示すように、送信スケジュール情報が順次登録される。
【００６１】
図３に戻り説明を続ける。送信判定部４４は、送信スケジュール情報に含まれる送信時刻に応じて、受信装置１２へ送信するフレームを判定する。
【００６２】
詳細には、送信判定部４４は、第４記憶部４３のスケジュールＤＢ４３Ａから、送信スケジュール情報を読出す。なお、送信判定部４４によるスケジュールＤＢ４３Ａの読出しは、受付部４２によるスケジュールＤＢ４３Ａへの書込みと重複しないように、適切に排他処理がなされるものとする。
【００６３】
送信判定部４４は、現在時刻と一致する送信時刻を含む送信スケジュール情報を、スケジュールＤＢ４３Ａから読出す。なお、送信判定部４４は、現在時刻を、第２管理部４５から取得すればよい。第２管理部４５は、ホストプロセッサ１６の第１管理部３４と同期して時刻を管理する。このため、送信判定部４４は、ホストプロセッサ１６と同じ時刻をカウントするように管理された第２管理部４５から現在時刻を取得する。なお、送信時刻は送信処理部４６の処理にかかる時間を考慮し、一定の時間を引いた値としてもよい。
【００６４】
なお、送信判定部４４は、送信時刻および現在時刻の各々の分解能によって、現在時刻の一定の範囲内に含まれる送信時刻の有無を判定することで、現在時刻と一致する送信時刻を判定すればよい。現在時刻と一致する送信時刻を含む送信スケジュール情報がスケジュールＤＢ４３Ａに含まれていたと想定する。この場合、送信判定部４４は、該送信スケジュール情報に含まれるフレームＩＤに対応する有効フラグを、付随情報記憶領域４１Ｂから読出す。そして、送信判定部４４は、読出した有効フラグが有効“１”を示す場合、該フレームを第２記憶部４１のフレーム記憶領域４１Ａから読出し、該フレームの送信を送信処理部４６へ指示する。
【００６５】
送信処理部４６は、送信スケジュール情報に含まれる送信時刻に応じて、フレームＩＤによって識別されるフレームを受信装置１２へ送信する。送信処理部４６は、ＭＡＣ２０ＥやＰＨＹ２０Ｆを用いて（図２参照）、フレームを、ネットワークＮを介して受信装置１２へ送信する。すなわち、送信処理部４６は、送信判定部４４によって送信すると判定されたフレームを、受信装置１２へ送信する。この処理により、送信処理部４６は、送信スケジュール情報に含まれる送信時刻に、該送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームを、受信装置１２へ送信する。
【００６６】
送信処理部４６によるフレームの送信が完了すると、送信判定部４４は、付随情報記憶領域４１Ｂにおける送信したフレームのフレームＩＤに対応する有効フラグを、無効“０”に設定する。また、送信判定部４４は、送信結果情報を通知部４７へ通知する。通知部４７は、送信判定部４４から受付けた送信結果情報を、ホストプロセッサ１６の送信スケジュール指示部３２へ通知する。
【００６７】
送信結果は、送信成功または送信失敗を示す送信結果と、送信スケジュールＩＤと、を含む。送信成功は、送信スケジュール情報に含まれる送信時間までに受信装置１２への送信が完了したことを示す。送信失敗は、スケジュール情報に含まれる送信時間までに受信装置１２への送信が完了しなかったことを示す。
【００６８】
そして、送信判定部４４は、送信成功したフレームのフレームＩＤと送信時刻を含む送信スケジュール情報を、スケジュールＤＢ４３Ａから削除する。
【００６９】
ホストプロセッサ１６の送信スケジュール指示部３２は、送信結果情報を受付けると、後処理を実行する。詳細には、送信スケジュール指示部３２は、送信結果情報に含まれる送信結果が送信成功を示す場合、送信結果情報に含まれる送信スケジュールＩＤに対応するフレームＩＤを取得する。そして、送信スケジュール指示部３２は、取得した送信スケジュールＩＤおよびフレームＩＤを、他の送信スケジュールＩＤ用やフレームＩＤ用に再利用可能とする。
【００７０】
一方、送信スケジュール指示部３２は、送信結果情報に含まれる送信結果が送信失敗を示す場合、該送信結果情報に含まれる送信スケジュールＩＤを再利用し、送信時刻を再度算出し、再度算出した送信時刻と該送信スケジュールＩＤと、該送信スケジュールＩＤに対応付けられていたフレームＩＤとを含む送信スケジュール情報を、送信装置２０の受付部４２へ通知する。このため、送信スケジュール指示部３２は、送信失敗したフレームに対する送信時刻を新たに算出し、該フレームに関する送信スケジュール情報を、再度、受付部４２へ通知することができる。なお、送信スケジュールＩＤは上述のように再利用してもよいし、送信に失敗した場合には送信スケジュール情報を削除し、その送信スケジュールＩＤを再利用可能とし、新たに送信スケジュールＩＤを使って通知を行ってもよい。
【００７１】
なお、送信スケジュール指示部３２が、通知部４７から送信成功を示す送信結果を含む送信結果情報を受付けたときに、送信成功したフレームのフレームＩＤと送信時刻とを含む送信スケジュール情報を、スケジュールＤＢ４３Ａから削除してもよい。この場合、送信スケジュール指示部３２は、削除対象の送信スケジュールＩＤを受付部４２へ通知することで、受付部４２が該送信スケジュールＩＤによって識別される送信スケジュール情報をスケジュールＤＢ４３Ａから削除すればよい。
【００７２】
次に、本実施の形態のホストプロセッサ１６および送信装置２０の各機能部で実行する情報処理の手順の一例を説明する。なお、送信指示部３０、送信スケジュール指示部３２、転送部４０、受付部４２、第４記憶部４３、送信判定部４４、および送信処理部４６は、以下の各機能部で実行する処理を、並列に実行する。このため、これらの機能部が実行する処理の一部が、互いに重複する期間に並列して実行されることとなる。
【００７３】
図７は、送信指示部３０が実行するフレーム送信処理の手順の一例を示すフローチャートである。
【００７４】
送信指示部３０は、アプリケーションからフレーム送信指示を受付けると、転送指示を送信装置２０の転送部４０へ通知する（ステップＳ１００）。送信指示部３０は、第３記憶部３３にデスクリプタ３３Ａを書込み、送信装置２０の転送部４０へ該デスクリプタの番号を通知することで、転送指示を行う。
【００７５】
次に、送信指示部３０は、送信スケジュール処理を実行する（ステップＳ１０２）。送信スケジュール処理の詳細は後述する。そして、本ルーチンを終了する。
【００７６】
次に、転送部４０が実行する転送処理の手順の一例を説明する。図８は、転送部４０が実行する転送処理の手順の一例を示す、フローチャートである。
【００７７】
転送部４０は、ホストプロセッサ１６の送信指示部３０から転送指示を受付けると、転送指示に示される番号に対応するデスクリプタ３３Ａを、第３記憶部３３から読取る（ステップＳ２００）。そして、転送部４０は、第１記憶部３１における、読取ったデスクリプタ３３Ａに含まれる転送元の開始アドレスから、該デスクリプタ３３Ａに含まれるデータ長分のデータを読取ることで、送信対象のフレームを第１記憶部３１から読取る。
【００７８】
そして、転送部４０は、読取ったフレームを、第２記憶部４１における、ステップＳ２００で読取ったデスクリプタ３３Ａに含まれる転送先の開始アドレスによって示される領域に書込む（ステップＳ２０２）。
【００７９】
次に、転送部４０は、付随情報記憶領域４１Ｂへ付随情報を書込む（ステップＳ２０４）。このとき、転送部４０は、ステップＳ２０２で第２記憶部４１へ転送したフレームのフレームＩＤに対応する有効フラグを有効“１”に設定する（ステップＳ２０６）。
【００８０】
ステップＳ２００〜ステップＳ２０６の処理により、転送部４０は、送信対象のフレームを、第１記憶部３１から第２記憶部４１のフレーム記憶領域４１Ａへ転送する。
【００８１】
次に、転送部４０は、転送完了をホストプロセッサ１６の送信指示部３０へ通知する（ステップＳ２０８）。そして、本ルーチンを終了する。
【００８２】
次に、送信スケジュール指示部３２が実行する送信スケジュール処理（図７のステップＳ１０２）を詳細に説明する。
【００８３】
図９は、送信スケジュール指示部３２が実行する送信スケジュール処理の手順の一例を示すフローチャートである。
【００８４】
まず、送信スケジュール指示部３２は、送信指示部３０から受付けた、フレームの優先度、データ長、およびフレームＩＤと、第１管理部３４から受付けた現在時刻と、を用いて、該フレームの送信時刻を算出する（ステップＳ３００）。
【００８５】
次に、送信スケジュール指示部３２は、送信スケジュールＩＤを付与し、該送信スケジュールＩＤと、フレームＩＤと、ステップＳ３００で算出した送信時刻を含む送信スケジュール情報を生成する（ステップＳ３０２）。
【００８６】
そして、送信スケジュール指示部３２は、ステップＳ３０２で生成した１または複数の送信スケジュール情報を含む送信情報を、送信装置２０の受付部４２へ通知する（ステップＳ３０４）。そして、本ルーチンを終了する。
【００８７】
次に、受付部４２が実行する送信スケジュール設定処理の手順の一例を説明する。
【００８８】
図１０は、受付部４２が実行する送信スケジュール設定処理の手順の一例を示す、フローチャートである。
【００８９】
受付部４２は、送信装置２３から送信スケジュール情報を受付けると、受付けた送信スケジュール情報を、第４記憶部４３へ書込む（ステップＳ４００）。受付部４２は、送信スケジュール情報を、第４記憶部４３のスケジュールＤＢ４３Ａに登録することで、第４記憶部４３へ該送信スケジュールを書込む。そして、本ルーチンを終了する。
【００９０】
次に、送信判定部４４および送信処理部４６が実行する送信処理の手順の一例を説明する。
【００９１】
図１１は、送信判定部４４および送信処理部４６が実行する送信処理の手順の一例を示す、フローチャートである。
【００９２】
まず、送信判定部４４が、第４記憶部４３のスケジュールＤＢ４３Ａから、送信スケジュール情報を読出す（ステップＳ５００）。そして、送信判定部４４は、ステップＳ５００で読出した送信スケジュール情報に含まれる送信時刻が、現在時刻と一致するか否かを判断する（ステップＳ５０２）。ステップＳ５０２で否定判断すると（ステップＳ５０２：Ｎｏ）、上記ステップＳ５００へ戻る。ステップＳ５０２で肯定判断すると（ステップＳ５０２：Ｙｅｓ）、ステップＳ５０４へ進む。
【００９３】
ステップＳ５０４では、送信判定部４４は、ステップＳ５００〜ステップＳ５０２の処理によって読出した、現在時刻が送信時刻と一致する送信スケジュール情報に含まれるフレームＩＤに対応する有効フラグが、有効であるか無効であるかを判断する（ステップＳ５０４）。送信判定部４４は、付随情報記憶領域４１Ｂにおける、該フレームＩＤに対応する有効フラグを判別することで、ステップＳ５０４の判断を行う。
【００９４】
有効フラグが有効であると判断すると（ステップＳ５０４：Ｙｅｓ）、ステップＳ５０６へ進む。ステップＳ５０６では、送信判定部４４は、該フレームＩＤによって識別されるフレームを、第２記憶部４１のフレーム記憶領域４１Ａから読出し、該フレームの送信を送信処理部４６へ指示する（ステップＳ５０６）。
【００９５】
ステップＳ５０６の処理によって、送信処理部４６は、該フレームを受信装置１２へ送信する。すなわち、送信処理部４６は、送信スケジュール情報に含まれる送信時刻に、該送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームを、受信装置１２へ送信する。
【００９６】
次に、送信判定部４４は、ステップＳ５０６で送信を指示したフレームの受信装置１２への送信が完了したと判断するまで否定判断を繰返す（ステップＳ５０８：Ｎｏ）。ステップＳ５０８で肯定判断すると（ステップＳ５０８：Ｙｅｓ）、ステップＳ５１０へ進む。
【００９７】
ステップＳ５１０では、送信判定部４４は、付随情報記憶領域４１Ｂにおける、ステップＳ５０８で送信したフレームのフレームＩＤに対応する有効フラグを、無効“０”に設定する（ステップＳ５１０）。
【００９８】
次に、送信判定部４４は、ステップＳ５０８で送信したフレームのフレームＩＤと送信時刻との組からなる送信スケジュール情報を、スケジュールＤＢ４３Ａから削除する（ステップＳ５１２）。このとき、送信判定部４４は、該フレームＩＤに対応する、送信スケジュールＩＤに対応する送信スケジュール情報を、スケジュールＤＢ４３Ａから削除する。そして、送信判定部４４は、送信成功を示す送信結果を含む送信結果情報を、通知部４７を介してホストプロセッサ１６の送信スケジュール指示部３２へ通知する（ステップＳ５１４）。そして、本ルーチンを終了する。
【００９９】
一方、上記ステップＳ５０４で否定判断すると（ステップＳ５１６：Ｎｏ）、ステップＳ５１６へ進む。ステップＳ５１６では、送信判定部４４は、送信失敗を示す送信結果を含む送信結果情報を、通知部４７を介してホストプロセッサ１６の送信スケジュール指示部３２へ通知する（ステップＳ５１６）。そして、本ルーチンを終了する。
【０１００】
次に、送信スケジュール指示部３２が実行する後処理の手順の一例を説明する。
【０１０１】
図１２は、送信スケジュール指示部３２が実行する後処理の手順の一例を示すフローチャートである。
【０１０２】
ホストプロセッサ１６の送信スケジュール指示部３２は、送信装置２０の通知部４７から送信結果情報を受付けると、送信結果情報に含まれる送信結果が送信成功を示すか否かを判断する（ステップＳ６００）。
【０１０３】
送信結果が送信成功を示す場合（ステップＳ６００：Ｙｅｓ）、ステップＳ６０２へ進む。ステップＳ６０２では、送信スケジュール指示部３２は、送信結果情報に含まれる送信スケジュールＩＤに対応するフレームＩＤを取得する（ステップＳ６０２）。そして、送信スケジュール指示部３２は、取得した送信スケジュールＩＤおよびフレームＩＤを、他の送信スケジュールＩＤ用やフレームＩＤ用に再利用可能とする（ステップＳ６０４）。そして、本ルーチンを終了する。
【０１０４】
一方、送信スケジュール指示部３２は、送信結果情報に含まれる送信結果が送信失敗を示す場合（ステップＳ６００：Ｎｏ）、ステップＳ６０６へ進む。ステップＳ６０６では、送信スケジュール指示部３２は、該送信結果情報に含まれる送信スケジュールＩＤを再利用可能とする（ステップＳ６０６）。そして、送信スケジュール指示部３２は、送信失敗したフレームの送信時刻を再度算出する（ステップＳ６０８）。
【０１０５】
そして、送信スケジュール指示部３２は、再度算出した送信時刻と、該送信スケジュールＩＤと、該送信スケジュールＩＤに対応付けられていたフレームＩＤと、を含む送信スケジュール情報を、送信装置２０の受付部４２へ通知する（ステップＳ６１０）。そして、本ルーチンを終了する。
【０１０６】
以上説明したように、本実施の形態の送信装置２０は、受付部４２と、送信処理部４６と、を備える。受付部４２は、送信対象のフレームのフレームＩＤ（フレーム識別子）と、フレームの送信タイミングに関する送信パラメータと、を含む送信スケジュール情報を受け付ける。送信処理部４６は、送信スケジュール情報に含まれる送信パラメータに応じて、フレームＩＤによって識別されるフレームを受信装置１２へ送信する。
【０１０７】
このように、本実施の形態の送信装置２０では、受付部４２は、送信対象のフレームのフレームＩＤと、送信時刻と、を含む送信スケジュール情報を受付ける。言い換えると、受付部４２は、フレームＩＤを含むが、フレームＩＤによって識別されるフレームを含まない送信スケジュール情報を受付ける。そして、送信処理部４６は、送信パラメータに応じて、フレームＩＤによって識別されるフレームを受信装置１２へ送信する。
【０１０８】
すなわち、本実施の形態の送信装置２０では、送信対象のフレームとは別に、フレームＩＤと送信時刻とを含む送信スケジュール情報を受付ける。このため、本実施の形態の送信装置２０は、後から送信の優先度の高いフレームが発生した場合であっても、柔軟に送信順序を変更してフレームを送信することができる。すなわち、本実施の形態の送信装置２０では、フレームを受信装置１２へ送信する直前まで、後からフレームの送信順序を変更することが可能となる。
【０１０９】
従って、本実施の形態では、送信順序の変更に柔軟に対応可能な送信装置２０を提供することができる。
【０１１０】
また、本実施の形態では、送信装置２０の受付部４２は、転送部４０によって送信対象のフレームが第２記憶部４１へ転送指示した後に、フレームＩＤと送信時刻（送信パラメータ）とを含む送信スケジュール情報を受付ける。そして、送信処理部４６は、受付けた送信スケジュールに含まれる送信パラメータに応じて、フレームＩＤによって識別されるフレームを受信装置１２へ送信する。
【０１１１】
このため、本実施の形態の送信装置２０は、送信対象のフレームを送信装置２０の第２記憶部４１へ転送した後であっても、該フレームの送信時間の変更に柔軟に対応することができる。従って、本実施の形態の送信装置２０は、上記効果に加えて、送信順序の変更に更に柔軟に対応可能とすることができる。また、本実施の形態の送信装置２０は、優先度の高いフレームを低遅延で受信装置１２へ送信することができる。
【０１１２】
（第２の実施の形態）
本実施の形態では、送信スケジュール情報が、送信スケジュール情報の有効条件を更に含む形態を一例として説明する。
【０１１３】
図１３は、本実施の形態のホストプロセッサ１７および送信装置２１の機能的構成の一例を示す模式図である。なお、第１の実施の形態のホストプロセッサ１６および送信装置２０と同じ機能については、同じ番号を付与し、詳細な説明を省略する。
【０１１４】
ホストプロセッサ１７は、送信指示部３０と、第１記憶部３１と、送信スケジュール指示部５２と、第３記憶部３３と、第１管理部３４と、を備える。ホストプロセッサ１７は、送信スケジュール指示部３２に代えて送信スケジュール指示部５２を備える点以外は、第１の実施の形態のホストプロセッサ１６と同様である。
【０１１５】
送信装置２１は、転送部４０と、第２記憶部４１と、第２管理部４５と、受付部６２と、第４記憶部６３と、送信判定部６４と、送信処理部６６と、を備える。第２記憶部４１、第２記憶部４１、および第２管理部４５は、第１の実施の形態と同様である。
【０１１６】
ホストプロセッサ１７の送信スケジュール指示部５２は、第１の実施の形態の送信スケジュール指示部３２と同様に、送信指示部３０から受付けた、データ長、およびフレームＩＤを用いて、送信スケジュール情報を送信装置２０へ通知する。
【０１１７】
但し、本実施の形態の送信スケジュール情報は、送信スケジュール情報の有効条件を更に含む。
【０１１８】
詳細には、本実施の形態の送信スケジュール情報は、送信スケジュールＩＤと、フレームＩＤと、送信時刻と有効条件と、を含む。
【０１１９】
有効条件は、送信情報が有効か否かを判別するための条件である。有効条件は、例えば、送信情報を送信装置２０の受付部４２で受付ける受付時刻の期限を示す。この場合、有効条件は、受付時刻の期限を示す時刻によって表される。
【０１２０】
このため、この場合、受付部４２が有効条件によって示される受付時刻までに対応する送信スケジュールを受付けた場合には、該送信スケジュールは有効条件を満たすものとなる。また、受付部４２が有効条件によって示される受付時刻を過ぎて対応する送信スケジュールを受付けた場合、該送信スケジュールは有効条件を満たさないものとなる。
【０１２１】
なお、有効条件の種類は、予め定めればよく、受付時刻の期限に限定されない。例えば、有効条件は、送信スケジュール情報が第４記憶部４３のスケジュールＤＢ４３Ａに書込まれる書込時刻の期限であってもよい。
【０１２２】
送信スケジュール指示部５２は、第１の実施の形態の送信スケジュール指示部３２と同様にして、データ長、およびフレームＩＤと、現在時刻と、を用いて、該フレームＩＤによって識別されるフレームの送信時刻を算出する。
【０１２３】
また、送信スケジュール指示部５２は、予め定めた規則を用いて、フレームの有効条件を生成すればよい。
【０１２４】
例えば、送信スケジュール指示部５２は、算出した送信時刻より所定時間前の時刻を、有効条件として生成する。この所定時間は、例えば、送信装置２１が送信スケジュール情報を受付けてからネットワークＮを介して受信装置１２へ送信するまでに要する最低時間以上の時間を予め定めればよい。
【０１２５】
そして、送信スケジュール指示部５２は、送信情報ごとに、送信情報に含まれる送信スケジュール情報の有効条件を生成する。また、送信スケジュール指示部５２は、第１の実施の形態と同様にして送信スケジュールＩＤをフレームＩＤごとに割当てる。これらの処理により、送信スケジュール指示部５２は、送信スケジュールＩＤと、フレームＩＤと、送信時刻と、を含む送信スケジュール情報を生成する。なお、１つの送信スケジュール情報には、１つの送信スケジュールＩＤと、１つのフレームＩＤと、１つの送信時刻と、が含まれる。また、１つの送信情報には１つまたは複数の送信スケジューリング情報と、１つの有効条件と、１つの受付時刻と、が含まれる。なお、有効条件と、受付時刻を送信スケジュール情報毎できるようにしてもよい。
【０１２６】
そして、送信スケジュール指示部５２は、１または複数の送信スケジュール情報を含む送信情報を、送信装置２１の受付部６２へ通知する。第１の実施の形態と同様に、送信情報は、更に、該送信情報を識別するための送信ＩＤを含んでいてもよい。この場合、送信情報は、送信ＩＤと、１または複数の送信スケジュール情報と、を含む。なお、送信情報は、送信ＩＤを含まない形態であってもよい。本実施の形態では、送信情報が、１つの送信ＩＤと、複数の送信スケジュール情報と、を含む構成である場合を、一例として説明する。
【０１２７】
送信装置２１の受付部６２は、ホストプロセッサ１６の送信スケジュール指示部５２から、送信スケジュール情報を受付ける。すなわち、受付部６２は、送信情報を送信スケジュール指示部５２から受付けることで、送信情報に含まれる送信スケジュール情報を受付ける。
【０１２８】
本実施の形態では、受付部６２は、送信ＩＤと、送信スケジュールＩＤと、フレームＩＤと、送信時刻と、有効条件と、の各々に対応したレジスタインタフェースを、送信スケジュール指示部５２に対して提供する。このため、送信スケジュール指示部５２は、送信ＩＤを書き込んだ後、受付部６２の各々のレジスタに対して、送信スケジュール情報ごとに、送信スケジュールＩＤ、フレームＩＤ、送信時刻、この順に順次書込むことで、複数の送信スケジュール情報の各々を受付部６２に設定し、最後に有効条件を書くことで送信情報を登録する。有効条件が書き込まれるとその送信情報の登録を終えることを示す。
【０１２９】
なお、受付部６２と送信スケジュール指示部５２とのインタフェースは、上記形態に限定されない。例えば、受付部６２は、転送部４０と同様に、メモリに送信スケジュール情報を一旦記憶しておき、ＤＭＡ転送などにより、送信スケジュール情報を送信スケジュール指示部５２から取得してもよい。
【０１３０】
受付部６２は、送信スケジュール指示部５２から受付けた送信スケジュール情報を、第４記憶部６３のスケジュールＤＢ６３Ａに登録する。
【０１３１】
図１４は、スケジュールＤＢ６３Ａのデータ構成の一例を示す模式図である。スケジュールＤＢ６３Ａは、送信スケジュール情報を格納するデータベースである。なお、スケジュールＤＢ６３Ａのデータ形式は、データベースに限定されない。
【０１３２】
図１４には、スケジュールＤＢ６３Ａとして、送信情報に含まれる送信ＩＤと、該送信情報に含まれる１または複数の送信スケジュール情報と、送信情報の有効条件と、送信情報の受付時刻と、を対応づけたデータベースを一例として示した。
【０１３３】
受付部４２は、送信スケジュール指示部３２から送信情報を受付けるごとに、受付けた送信情報に含まれる送信ＩＤと、該送信情報に含まれる送信スケジュール情報と、を対応付けてスケジュールＤＢ６３Ａに順次登録する。このため、スケジュールＤＢ６３Ａには、例えば、図１４に示すように、送信スケジュール情報順次登録される。そして、すべての送信情報の受付が完了した時間を受付時刻として登録する。
【０１３４】
図１３に戻り説明を続ける。選択部６７は、受付部６２で受付けた複数の送信スケジュールについて、送信時刻ごとに、１つの送信スケジュール情報を選択する。
【０１３５】
詳細には、選択部６７は、受付部６２で受付けた複数の送信スケジュール情報の内、有効条件を満たす送信スケジュール情報を選択する。すなわち、選択部６７は、含まれる送信時刻が同じ１または複数の送信スケジュール情報ごとに、有効条件を満たす送信スケジュール情報を選択する。
【０１３６】
例えば、有効条件が受付時刻の期限であると想定する。この場合、選択部６７は、スケジュールＤＢ６３Ａに登録されている複数の送信スケジュール情報の内、受付時刻が有効条件によって示される時刻以前を示す送信スケジュール情報を選択すればよい。
【０１３７】
なお、有効条件を満たす複数の送信スケジュール情報に、同じ送信時刻を含む複数の送信スケジュール情報が含まれる場合がある。この場合、選択部６７は、有効条件を満たし且つ含まれる送信時刻が同じ複数の送信スケジュール情報の内、受付部６２による受付時刻が最新の送信スケジュール情報を選択すればよい。
【０１３８】
なお、選択部６７が選択した送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームの第２記憶部４１への転送が、該選択時に未完了である場合がある。選択部６７は、付随情報記憶領域４１Ｂにおける、選択した送信スケジュール情報に含まれるフレームＩＤに対応する有効フラグが無効“０”を示すか否かを判別することで、転送が未完了であるか否かを判断すればよい。なお、選択部６７は、選択した送信スケジュール情報に含まれるフレームＩＤが付随情報記憶領域４１Ｂに登録されていない場合にも、転送が未完了であると判断してもよい。
【０１３９】
この場合、選択部６７は、選択した送信スケジュール情報に代えて、該送信スケジュール情報の次に受付部６２が受付けた他の送信スケジュール情報を選択する。詳細には、選択部６７は、有効条件を満たし且つ選択した送信スケジュール情報と同じ送信時刻を含む送信スケジュール情報の内、選択した送信スケジュールの次の受付時刻を示す、他の送信スケジュール情報を選択する。
【０１４０】
このように、選択部６７は、有効条件に基づいて、次に送信する対象のフレームのフレームＩＤを含む送信スケジュール情報を選択する。
【０１４１】
図１５は、選択部６７による選択の具体例を示す説明図である。
【０１４２】
例えば、受付部６２が、５つの送信情報（送信情報Ａ〜送信情報Ｅとする）を受付けたと想定する。これらの送信情報は、図１４に示す、送信ＩＤ“Ａ”〜“Ｅ”の各々の送信情報に相当する。なお、図１４および図１５における時刻は、値が大きいほどより未来の時刻であり、値が小さいほどより過去の時刻を示すものとして説明する。
【０１４３】
これらの送信情報の受付時刻は、送信情報Ａの受付時刻“Ｔ９”、送信情報Ｂの受付時刻“Ｔ１０”、送信情報Ｃおよび送信情報Ｄの受付時刻“Ｔ１１”、送信情報Ｅの受付時刻“Ｔ１２”であったと想定する。
【０１４４】
そして、図１４および図１５に示すように、送信情報Ａには、複数の送信スケジュール情報（送信スケジュール情報Ｓ１〜送信スケジュール情報Ｓ３）が含まれる。送信情報Ａに含まれるこれらの送信スケジュール情報は、何れも、受付時刻“Ｔ９”、有効条件“Ｔ１０”であったと想定する。有効条件“Ｔ１０”は、受付部６２による受付期限が時刻“Ｔ１０”であることを示す。
【０１４５】
送信スケジュール情報Ｓ１〜送信スケジュール情報Ｓ３には、それぞれ、送信時刻“Ｔ１２”およびフレームＩＤ“Ｄ１”、送信時刻“Ｔ１３”およびフレームＩＤ“Ｄ２”、並びに送信時刻“Ｔ１４”およびフレームＩＤ“Ｄ３”が含まれている。
【０１４６】
送信情報Ｂには、送信スケジュール情報Ｓ４が含まれる。送信スケジュール情報Ｓ４は、受付時刻“Ｔ１０”、有効条件“Ｔ１４”であったと想定する。有効条件“Ｔ１４”は、受付部６２による受付期限が時刻“Ｔ１４”であることを示す。
【０１４７】
送信スケジュール情報Ｓ４には、送信時刻“Ｔ１５”およびフレームＩＤ“Ｄ４”が含まれている。
【０１４８】
送信情報Ｃには、複数の送信スケジュール情報（送信スケジュール情報Ｓ５〜送信スケジュール情報Ｓ７）が含まれる。送信情報Ｃに含まれるこれらの送信スケジュール情報は、何れも、受付時刻“Ｔ１１”、有効条件“Ｔ１２”であったと想定する。有効条件“Ｔ１２”は、受付部６２による受付期限が時刻“Ｔ１２”であることを示す。
【０１４９】
送信スケジュール情報Ｓ５〜送信スケジュール情報Ｓ７には、それぞれ、送信時刻“Ｔ１３”およびフレームＩＤ“Ｄ４”、送信時刻“Ｔ１４”およびフレームＩＤ“Ｄ２”、並びに送信時刻“Ｔ１５”およびフレームＩＤ“Ｄ３”が含まれている。
【０１５０】
送信情報Ｄには、送信スケジュール情報Ｓ８が含まれる。送信スケジュール情報Ｓ８は、受付時刻“Ｔ１１”、有効条件“Ｔ１５”であったと想定する。有効条件“Ｔ１５”は、受付部６２による受付期限が時刻“Ｔ１５”であることを示す。
【０１５１】
送信スケジュール情報Ｓ８には、送信時刻“Ｔ１６”およびフレームＩＤ“Ｄ５”が含まれている。
【０１５２】
また、送信情報Ｅには、複数の送信スケジュール情報（送信スケジュール情報Ｓ９〜送信スケジュール情報Ｓ１２）が含まれる。送信情報Ｅに含まれるこれらの送信スケジュール情報は、何れも、受付時刻“Ｔ１２”、有効条件“Ｔ１１”であったと想定する。有効条件“Ｔ１１”は、受付部６２による受付期限が時刻“Ｔ１１”であることを示す。
【０１５３】
送信スケジュール情報Ｓ９〜送信スケジュール情報Ｓ１２には、それぞれ、送信時刻“Ｔ１３”およびフレームＩＤ“Ｄ５”、送信時刻“Ｔ１４”およびフレームＩＤ“Ｄ４”、送信時刻“Ｔ１５”およびフレームＩＤ“Ｄ２”、並びに送信時刻“Ｔ１６”およびフレームＩＤ“Ｄ３”が含まれている。
【０１５４】
この場合、受付部６２が送信情報Ａ〜送信情報Ｅを、各々の上記受付時間に、ホストプロセッサ１７の送信スケジュール指示部５２から受付けたと想定する（図１５中、受付状況Ｐ参照）。すると、スケジュールＤＢ６３Ａには、これらの送信情報が順次登録される（図１４、および図１５中のスケジュールＤＢ６３Ａの状態Ｑ参照）。
【０１５５】
上述したように、選択部６７は、受付部６２で受付けた複数の送信スケジュール情報の内、有効条件を満たす送信スケジュール情報を選択する。
【０１５６】
送信スケジュール情報Ｓ１〜送信スケジュール情報Ｓ１２の内、受付時刻“Ｔ１２”が有効条件“Ｔ１１”より後の時刻を示す、送信情報Ｅに含まれる送信スケジュール情報Ｓ９〜送信スケジュール情報Ｓ１２は、有効条件を満たさない。このため、選択部６７は、送信情報Ｅに含まれる、送信スケジュール情報Ｓ９〜送信スケジュール情報Ｓ１２は、選択対象外とする。
【０１５７】
そして、選択部６７は、送信スケジュール情報Ｓ１〜送信スケジュール情報Ｓ１２の内、受付時刻が有効条件以前の時刻を示す、送信情報Ａ〜送信情報Ｄに含まれる送信スケジュール情報Ｓ１〜送信スケジュール情報Ｓ８を、選択対象とする。
【０１５８】
そして、選択部６７は、選択対象とした送信スケジュール情報Ｓ１〜送信スケジュール情報Ｓ８について、含まれる送信時刻ごとに、受付部６２による受付時刻が最新の送信スケジュール情報を選択する。
【０１５９】
このため、選択部６７は、送信時刻“Ｔ１２”に対応する送信スケジュール情報として、フレームＩＤ“Ｄ１”を含む送信スケジュール情報Ｓ１を選択する。
【０１６０】
また、選択部６７は、送信時刻“Ｔ１３”に対応する送信スケジュール情報として、有効条件を満たす送信スケジュール情報Ｓ２および送信スケジュール情報Ｓ５の内、受付時刻が最新の（現在時刻に最も近い）フレームのフレームＩＤ（例えば、フレームＩＤ“Ｄ４”）を含む送信スケジュール情報Ｓ５を選択する。なお、受付時刻が最新、とは、ホストプロセッサ１６が最後に書込んだものであることを示す。
【０１６１】
また、選択部６７は、送信時刻“Ｔ１４”に対応する送信スケジュール情報として、有効条件を満たす送信スケジュール情報Ｓ３および送信スケジュール情報Ｓ６の内、優先度の最も高いフレームのフレームＩＤ“Ｄ２”を含む送信スケジュール情報Ｓ６を選択する。
【０１６２】
また、選択部６７は、送信時刻“Ｔ１５”に対応する送信スケジュール情報として、有効条件を満たす送信スケジュール情報Ｓ４および送信スケジュール情報Ｓ７の内、受付時刻が最新のフレームのフレームＩＤ“Ｄ３”を含む送信スケジュール情報Ｓ７を選択する。
【０１６３】
また、選択部６７は、送信時刻“Ｔ１６”に対応する送信スケジュール情報として、有効条件を満たす送信スケジュール情報Ｓ８を選択する（フレームＩＤ“Ｄ５”を含む）。
【０１６４】
図１３に戻り説明を続ける。このように、選択部６７は、各送信時刻に送信する送信対象の送信スケジュール情報を、有効条件、および受付時刻に基づいて選択する。
【０１６５】
送信判定部６４は、現在時刻と一致する送信時刻に送信する対象として選択部６７によって選択された、送信スケジュール情報を、選択部６７から受付ける。そして、送信判定部６４は、該送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームを第２記憶部４１のフレーム記憶領域４１Ａから読出し、該フレームの送信を送信処理部６６へ指示する。
【０１６６】
送信処理部６６は、選択部６７によって選択された送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームを、受信装置１２へ送信する。すなわち、送信処理部６６は、送信判定部６４から受付けたフレームを、ネットワークＮを介して送信する。
【０１６７】
そして、送信判定部６４は、第１の実施の形態の送信判定部４４と同様に、送信されたフレームのフレームＩＤに対応する有効フラグを、無効“０”に設定する。また、送信判定部４４と同様に、送信判定部６４は、送信結果情報を通知部４７へ通知する。
【０１６８】
次に、本実施の形態の選択部６７、送信判定部６４、および送信処理部６６が実行する情報処理の手順の一例を説明する。
【０１６９】
図１６は、選択部６７、送信判定部６４および送信処理部６６が実行する送信処理の手順の一例を示す、フローチャートである。
【０１７０】
まず、選択部６７が、第４記憶部６３のスケジュールＤＢ６３Ａから、送信スケジュール情報を読出す（ステップＳ７００）。そして、選択部６７は、ステップＳ７００で読出した送信スケジュール情報に含まれる送信時刻が、現在時刻と一致するか否かを判断する（ステップＳ７０２）。ステップＳ７０２で否定判断すると（ステップＳ７０２：Ｎｏ）、上記ステップＳ７００へ戻る。ステップＳ７０２で肯定判断すると（ステップＳ７０２：Ｙｅｓ）、ステップＳ７０４へ進む。
【０１７１】
ステップＳ７０４では、選択部６７は、ステップＳ７００〜ステップＳ７０２の処理によって読出した、現在時刻が送信時刻と一致する送信スケジュール情報の内、有効条件を満たし、且つ受付時刻が最新の送信スケジュール情報を選択する（ステップＳ７０４）。
【０１７２】
次に、選択部６７は、ステップＳ７０４で選択した送信スケジュール情報に含まれるフレームＩＤに対応する有効フラグが、有効であるか無効であるかを判断する（ステップＳ７０６）。
【０１７３】
有効フラグが有効であると判断すると（ステップＳ７０６：Ｙｅｓ）、ステップＳ７０８へ進む。ステップＳ７０８では、送信判定部６４は、該フレームＩＤによって識別されるフレームを、第２記憶部４１のフレーム記憶領域４１Ａから読出し、該フレームの送信を送信処理部６６へ指示する（ステップＳ７０８）。ステップＳ７０８の処理によって、送信処理部６６は、該フレームを受信装置１２へ送信する。
【０１７４】
次に、送信判定部６４は、ステップＳ７０８で送信を指示したフレームの受信装置１２への送信が完了したと判断するまで否定判断を繰返す（ステップＳ７１０：Ｎｏ）。ステップＳ７１０で肯定判断すると（ステップＳ７１０：Ｙｅｓ）、ステップＳ７１２へ進む。
【０１７５】
ステップＳ７１２では、送信判定部６４は、付随情報記憶領域４１Ｂにおける、ステップＳ７１０で送信したフレームのフレームＩＤに対応する有効フラグを、無効“０”に設定する（ステップＳ７１２）。そして、送信判定部６４は、送信成功を示す送信結果を含む送信結果情報を、通知部４７を介してホストプロセッサ１７の送信スケジュール指示部５２へ通知する（ステップＳ７１４）。
【０１７６】
次に、送信判定部６４は、ステップＳ７１０で送信したフレームのフレームＩＤと送信時刻との組からなる送信スケジュール情報を、スケジュールＤＢ６３Ａから削除する（ステップＳ７１６）。なお、送信情報に含まれる送信スケジューリング情報の送信がすべて終わったら送信情報も削除する。そして、本ルーチンを終了する。
【０１７７】
なお、送信スケジュール指示部５２が、通知部４７から送信成功を示す送信結果を含む送信結果情報を受付けたときに、送信成功したフレームのフレームＩＤと送信時刻とを含む送信スケジュール情報を、スケジュールＤＢ６３Ａから削除してもよい。この場合、送信スケジュール指示部５２は、削除対象の送信スケジュールＩＤを受付部６２へ通知することで、受付部６２が該送信スケジュールＩＤによって識別される送信スケジュール情報をスケジュールＤＢ６３Ａから削除すればよい。また、送信情報に含まれる送信スケジューリング情報の送信がすべて終わったら、送信スケジュール指示部５２は、削除対象の送信ＩＤを受付部６２へ通知することで、受付部６２が該送信ＩＤによって識別される送信情報をスケジュールＤＢ６３Ａから削除すればよい。
【０１７８】
一方、上記ステップＳ７０６で否定判断すると（ステップＳ７０６：Ｎｏ）、ステップＳ７１８へ進む。ステップＳ７１８では、選択部６７は、他に有効条件を満たす送信スケジュール情報が有るか否かを判断する（ステップＳ７１８）。ステップＳ７１８で肯定判断すると（ステップＳ７１８：Ｙｅｓ）、上記ステップＳ７０４へ戻る。一方、ステップＳ７１８で否定判断すると（ステップＳ７１８：Ｎｏ）、ステップＳ７２０へ進む。
【０１７９】
ステップＳ７２０では、送信判定部６４は、送信失敗を示す送信結果を含む送信結果情報を、通知部４７を介してホストプロセッサ１７の送信スケジュール指示部５２へ通知する（ステップＳ７２０）。そして、本ルーチンを終了する。
【０１８０】
以上説明したように、本実施の形態の送信装置２１は、受付部６２で受付けた１または複数の送信スケジュール情報の内、有効条件を満たす送信スケジュール情報を選択する。そして、送信処理部６６は、選択された送信スケジュール情報に含まれる送信パラメータ（送信時刻）に応じて、該送信スケジュール情報に含まれるフレームＩＤ（フレーム識別子）によって識別されるフレームを受信装置１２へ送信する。
【０１８１】
このように、本実施の形態の送信装置２１は、有効条件に応じて選択された送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームを、受信装置１２へ送信する。すなわち、本実施の形態の送信装置２１は、有効条件を含む送信スケジュール情報を用いる。このため、本実施の形態の送信装置２１は、上記実施の形態の効果に加えて、送信不可能なフレームの発生による遅延を抑制することができ、低遅延なスケジューリングを実現することができる。
【０１８２】
このため、本実施の形態の送信装置２１は、一度送信時刻が設定された後に優先度の高いフレームが発生した場合であっても、優先度の高いフレームを低遅延で優先的に受信装置１２へ送信することが可能となる。また、送信情報が有効条件を含むため、有効条件を満たさないフレームによる送信遅延を抑制することができ、優先度の高いフレームを低遅延で受信装置１２へ送信することが可能となる。また、本実施の形態の送信装置２１は、優先度の高いフレームを優先して送信することが出来なかった場合には、他の送信スケジュール情報に含まれるフレームＩＤによって識別されるフレームを送信することで、最初に指示されたフレームを送信できるため、柔軟にフレームを送信することができる。
【０１８３】
（変形例１）
なお、上記実施の形態では、送信スケジュール指示部３２および送信スケジュール指示部５２は、フレーム送信指示を受付けるごとに、送信装置２０の受付部４２または送信装置２１の受付部６２へ、送信スケジュール情報を通知する形態を一例として説明した。
【０１８４】
しかし、送信スケジュール指示部３２および送信スケジュール指示部５２は、送信スケジュール情報の変更が必要となった場合のみ、受付部４２または受付部６２へ、送信スケジュール情報を通知してもよい。
【０１８５】
図１７は、本変形例のホストプロセッサ１９および送信装置２３の機能的構成の一例を示す模式図である。なお、第２の実施の形態のホストプロセッサ１７および送信装置２１と同じ機能については、同じ番号を付与し、詳細な説明を省略する。
【０１８６】
ホストプロセッサ１９は、送信指示部８０と、第１記憶部３１と、送信スケジュール指示部８２と、第３記憶部３３と、第１管理部３４と、を備える。ホストプロセッサ１９は、送信指示部３０および送信スケジュール指示部５２に代えて、送信指示部８０および送信スケジュール指示部８２を備える点以外は、第２の実施の形態のホストプロセッサ１７と同様である。
【０１８７】
送信装置２３は、転送部７０と、第２記憶部４１と、第２管理部４５と、受付部６２と、第４記憶部６３と、送信判定部６４と、送信処理部６６と、を備える。送信装置２３は、転送部４０に代えて転送部７０を備える点以外は、第２の実施の形態の送信装置２１と同様である。
【０１８８】
ホストプロセッサ１９の送信指示部８０は、送信指示部３０とは異なり、アプリケーションからフレーム送信指示を受付けたときに、転送指示を転送部４０へ通知しない。なお、送信指示部８０は、送信指示部３０と同様に、アプリケーションからフレーム送信指示を受付けたときに、フレーム送信指示によって示される、送信対象のフレームの優先度と、該フレームのデータ長と、該フレームに付与したフレームＩＤと、を送信スケジュール指示部８２へ通知する。
【０１８９】
ホストプロセッサ１９の送信スケジュール指示部８２は、送信指示部８０から該通知を受付けると、第２の実施の形態の送信スケジュール指示部５２と同様にして、フレームＩＤごとに送信時刻を算出し、送信スケジュール情報を生成する。
【０１９０】
そして、送信スケジュール指示部８２は、算出した送信時刻を更に含むデスクリプタ３３Ａを第３記憶部３３へ書込み、送信装置２３の転送部７０へ転送指示を通知する。このため、本変形例では、転送指示は、送信時刻を更に含むデスクリプタ３３Ａの番号を含むものとなる。
【０１９１】
送信装置２３の転送部７０は、第２の実施の形態の転送部４０と同様に、送信対象のフレームを第２記憶部４１へ転送する。転送部７０は、ホストプロセッサ１７の送信スケジュール指示部８２から転送指示を受付けると、転送指示によって示されるフレームを、ホストプロセッサ１７の第１記憶部３１から送信装置２３の第２記憶部４１へ転送する。
【０１９２】
そして、転送部７０は、転送時に読取ったデスクリプタ３３Ａに含まれる、フレームＩＤと送信情報を含む送信スケジュール情報を、第４記憶部６３のスケジュールＤＢ６３Ａに登録する。このとき、送信スケジュール指示部８２は、デスクリプタ３３Ａに、フレームの有効条件を更に登録すればよい。この処理により、転送部７０は、フレームＩＤと送信情報と有効条件とを含む、送信スケジュール情報を、スケジュールＤＢ６３Ａに登録することができる。
【０１９３】
なお、送信スケジュール指示部８２は、通常処理においては、送信ＩＤ、送信スケジュールＩＤ、送信時刻、および有効条件を含むデスクリプタ３３Ａを第３記憶部３３へ書込む。
【０１９４】
そして、送信スケジュール指示部８２は、転送部７０へ転送指示したフレームのために算出した送信時刻を変更する必要が生じた場合に、新たな送信時刻を算出することで、上記第２の実施の形態の送信スケジュール指示部５２と同様にして送信スケジュール情報を生成し、送信装置２０の受付部６２へ通知すればよい。
【０１９５】
また、有効条件を受付部６２の受付時刻の期限とする場合、１つの送信情報に含まれる複数の送信スケジュール情報の各々の有効条件（受付時刻の期限）は、同じであることが好ましい。この場合、送信スケジュール指示部５２は、同じ有効条件を示す複数の送信スケジュール情報と、送信ＩＤと、からなる送信情報を生成し、送信装置２１の受付部６２へ通知してもよい。
【０１９６】
以上説明したように、本変形例では、ホストプロセッサ１９の送信スケジュール指示部８２は、通常処理においては、送信時刻を含むデスクリプタ３３Ａを第３記憶部３３へ書込み、デスクリプタ３３Ａの番号を転送部７０へ通知することで、転送部７０へ転送指示を通知する。そして、送信スケジュール指示部８２は、送信時刻を変更する必要が生じた場合に、変更後の送信時刻を付与した新たな送信スケジュール情報を生成し、送信装置２０の受付部６２へ通知する。
【０１９７】
このため、本変形例では、通常処理時と、送信時刻の変更が発生した場合と、で処理を切替えて、受信装置１２へのフレームの送信を実行することができる。
【０１９８】
（変形例２）
なお、上記実施の形態および上記変形例１における受付部４２および受付部６２は、転送部４０および転送部７０とは異なるバスインターフェースを介して、送信スケジュール情報を受付けてもよい。
【０１９９】
この場合、送信装置２０ハードウェア構成を、図１８に示す構成とすればよい。なお、送信装置２１および送信装置２３についても、図１８に示すハードウェア構成とすればよい。
【０２００】
図１８は、送信装置２０のハードウェア構成の一例を示す模式図である。
【０２０１】
送信装置２０は、バスブリッジ２０Ａと、メモリ２０Ｂと、ＤＭＡコントローラ２０Ｃと、プロセッサ２０Ｄと、ＭＡＣ２０Ｅと、ＰＨＹ２０Ｆと、バスブリッジ２０Ｇと、メモリ２０Ｈと、を備える。バスブリッジ２０Ａ、メモリ２０Ｂ、ＤＭＡコントローラ２０Ｃ、プロセッサ２０Ｄ、ＭＡＣ２０Ｅ、およびＰＨＹ２０Ｆは、第１の実施の形態と同様である。なお、メモリ２０Ｂは、第２記憶部４１に相当する（図３参照）。また、メモリ２０Ｈは、第４記憶部４３に相当する（図３参照）。
【０２０２】
本変形例では、第２記憶部４１に相当するメモリ２０Ｂは、バスブリッジ２０ＡおよびバスＢ１を介して、ホストプロセッサ１６の第１記憶部３１（図３参照）に接続されている。すなわち、バスＢ１は、フレーム転送用の専用バスである。
【０２０３】
また、第４記憶部４３に相当するメモリ２０Ｈは、バスブリッジ２０Ｇを介して、ホストプロセッサ１６の送信スケジュール指示部３２（図３参照）に接続されている。すなわち、バスＢ２は、送信スケジュール情報送信用の専用バスである。
【０２０４】
なお、バスＢ１およびバスＢ２の種類は、同じ種類であってもよく、また、異なる種類であってもよい。
【０２０５】
また、図１８に示すように、第４記憶部４３に相当するメモリ２０Ｈと、第２記憶部４１に相当するメモリ２０Ｂと、を異なるメモリで構成してもよい。
【０２０６】
本変形例で説明したように、フレーム転送用のバスＢ１と、送信スケジュール情報送信用のバスＢ２と、を物理的に異なるバスで構成することで、送信スケジュール情報の送信装置２０への通知がフレームの転送によって遅延することを抑制することができる。
【０２０７】
なお、フレーム転送用のバスＢ１と、送信スケジュール情報送信用のバスＢ２と、を物理的に同じバスで構成する場合には、フレームの転送によってバスが占有されることを防ぐために、転送方法を調整することが好ましい。例えば、ホストプロセッサ１６は、一定期間ごとに、フレームの転送を中断し、中断期間に送信スケジュール情報を送信装置２０へ通知するように制御することが好ましい。
【０２０８】
なお、上記実施の形態および変形例の送信装置２０、送信装置２１、および送信装置２３は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることで、実現してもよい。すなわち、上記実施の形態および変形例の送信装置２０、送信装置２１、および送信装置２３の機能構成のうち、プログラムにより実現させることができる機能を、コンピュータ装置に搭載されたプロセッサに当該プログラムを実行させることにより実現させることができる。このとき、上記実施の形態および変形例の送信装置２０、送信装置２１、および送信装置２３は、例えばプログラムをコンピュータ装置にあらかじめインストールすることで実現されてもよい。また例えば、上記実施の形態および変形例の送信装置２０、送信装置２１、および送信装置２３は、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムをコンピュータ装置に適宜インストールすることで実現されてもよい。また例えば、上記実施の形態および変形例の送信装置２０、送信装置２１、および送信装置２３は、ネットワークを介して配布されたプログラムをコンピュータ装置に適宜インストールすることで実現されてもよい。
【０２０９】
なお、上記には、本発明の実施の形態および変形例を説明したが、上記実施の形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０２１０】
例えば、上記実施の形態および変形例では、ホストプロセッサ１６、ホストプロセッサ１７、およびホストプロセッサ１９が第１記憶部３１を備えた形態を一例として説明した。しかし、第２記憶部４１は、ホストプロセッサ１６、ホストプロセッサ１７、およびホストプロセッサ１９の各々の外部に設けられた構成であってもよい。また、上記実施の形態および変形例では、送信装置２０、送信装置２１、および送信装置２３が、第２記憶部４１を備えた形態を一例として説明した。しかし、第２記憶部４１は、送信装置２０、送信装置２１、および送信装置２３の各々の外部に設けられた構成であってもよい。
【符号の説明】
【０２１１】
１  通信システム
１０  通信装置
１６、１７、１９  ホストプロセッサ
２０、２１、２３  送信装置
４２、６２  受付部
４６、６６  送信処理部
６７  選択部
【図１】
2020088514.tif 000003
【図２】
2020088514.tif 000004
【図３】
2020088514.tif 000005
【図４】
2020088514.tif 000006
【図５Ａ】
2020088514.tif 000007
【図５Ｂ】
2020088514.tif 000008
【図６】
2020088514.tif 000009
【図７】
2020088514.tif 000010
【図８】
2020088514.tif 000011
【図９】
2020088514.tif 000012
【図１０】
2020088514.tif 000013
【図１１】
2020088514.tif 000014
【図１２】
2020088514.tif 000015
【図１３】
2020088514.tif 000016
【図１４】
2020088514.tif 000017
【図１５】
2020088514.tif 000018
【図１６】
2020088514.tif 000019
【図１７】
2020088514.tif 000020
【図１８】
2020088514.tif 000021