(57)【要約】【課題】コントローラ側でのタスクの実行が、伝送装置側での処理の影響を受けずに遅延なく実行できるようにする。【解決手段】実施形態の伝送装置は、コントローラとシステムバスを介して接続される。その構成として、システムバスを通じた伝送制御を行う第１の伝送制御手段と、システムバスを含むシステム共有資源を使用する処理を実行せずに保留し、コントローラからシステム共有資源の空きが通知されたときに、保留しているシステム共有資源を使用する処理を実施する制御手段と、を備える。【選択図】図１
2015203976.tif 000002
【特許請求の範囲】
【請求項１】
コントローラとシステムバスを介して接続される伝送装置であって、
前記システムバスを通じた伝送制御を行う第１の伝送制御手段と、
前記システムバスを含むシステム共有資源を使用する処理を実行せずに保留し、前記コントローラから前記システム共有資源の空きが通知されたときに、保留している前記システム共有資源を使用する処理を実施する制御手段と、
を備える伝送装置。
【請求項２】
前記制御手段は、システム共有資源を使用する処理を保留する際、当該処理に伴う情報を記憶して別処理に移行し、前記システム共有資源の空きタイミングの通知を受けたとき、記憶した前記情報を基に、保留した前記システム共有資源を使用する処理を即時に継続する、請求項１に記載の伝送装置。
【請求項３】
外部の伝送路との間の伝送制御を行う第２の伝送制御手段と、
前記外部の伝送路を介して受信されるデータを蓄積する記憶手段と、を備え、
前記制御手段は、前記システム共有資源を使用する処理として、前記記憶手段に蓄積されたデータのうち、前記コントローラにより要求されたデータを、前記システムバスを介して前記コントローラにより指定された場所に伝送する処理を実施する、請求項２に記載の伝送装置。
【請求項４】
前記コントローラにより指定されたデータを、前記システムバスを介して前記コントローラにより指定された場所に伝送する処理に対し、連続して伝送するデータサイズの上限値が予め設けられており、
前記制御手段は、前記コントローラ側に伝送したデータのサイズが前記上限値に達すると、続く処理を保留する、請求項３に記載の伝送装置。
【請求項５】
前記制御手段は、前記上限値を変数として保持し、前記コントローラから前記上限値の変更指示があったとき、前記上限値を、指示された値に動的に変更する、請求項４に記載の伝送装置。
【請求項６】
前記制御手段は、必要に応じて、前記コントローラに、システム共有資源の空きタイミングの通知の開始要求と、該開始要求により開始されたシステム資源の空きタイミングの通知の停止要求を行う、請求項１から請求項５のいずれか１項に記載の伝送装置。
【請求項７】
請求項１から請求項６のいずれか１項に記載の伝送装置と前記システムバスを介して接続されるコントローラであって、
前記システム共有資源を使用する処理を前記伝送装置に要求している場合で、自装置が、前記システム共有資源を使用しないときに、前記システム共有資源の空きを前記伝送装置に通知する、コントローラ。
【請求項８】
請求項１から請求項６のいずれか１項に記載の伝送装置と、請求項７に記載のコントローラとからなるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、伝送装置、コントローラ、ならびに伝送装置およびコントローラからなるシステムに関する。
【背景技術】
【０００２】
従来より、コントローラの通信命令を処理する機能を実装した伝送装置が、コントローラのシステムバスに接続されたシステムがある。このようなシステムにおいて、伝送装置側で実行される処理とコントローラ側で実行されるタスク処理が非同期で動作し、それぞれのタイミングでシステム共有資源（システムバスや共有メモリなど）を使用する場合、システム共有資源を使用するタイミングが重複するときがある。このような重複が生じた場合、コントローラのタスク実行に遅延が発生することがある。その対策として、例えば、伝送装置においてシステム共有資源を長く占有する処理については、待ち時間を要所に設け、この待ち時間の間に一旦他者にシステム共有資源を明け渡す方法が一般的にとられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−１４７１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記方法でも、システム共有資源を明け渡すまでの間に、コントローラのタスク実行が遅延する可能性があった。
【０００５】
本発明が解決しようとする課題は、コントローラ側でのタスクの実行が、伝送装置側での処理の影響を受けずに遅延なく実行できる伝送装置、コントローラ、ならびに伝送装置およびコントローラからなるシステムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の伝送装置は、コントローラとシステムバスを介して接続される。その構成として、システムバスを通じた伝送制御を行う第１の伝送制御手段と、システムバスを含むシステム共有資源を使用する処理を実行せずに保留し、コントローラからシステム共有資源の空きが通知されたときに、保留しているシステム共有資源を使用する処理を実施する制御手段と、を備える。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態にかかる伝送装置およびコントローラからなるシステムの全体構成（概略）を示すブロック図である。
【図２】図２は、同実施形態におけるソケット情報を例示した図である。
【図３】図３は、同実施形態における受信処理（前半）を説明するフローチャートである。
【図４】図４は、同実施形態における受信処理（後半）を説明するフローチャートである。
【図５】図５は、同実施形態における受信要求パラメータのデータ構造を例示した図である。
【図６】図６は、同実施形態における待ち処理データのデータ構造を例示した図である。
【図７】図７は、同実施形態における資源待ち処理キューの概念図である。
【図８】図８は、従来方式による遅延の発生を示す図である。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
図１は、第１の実施形態にかかる伝送装置およびコントローラからなるシステムの全体構成（概略）を示すブロック図である。
【０００９】
図１に示す第１の実施形態のシステム１は、複数の（図１では２つ）の伝送装置２０Ａ，２０Ｂが、システムバス３０を介して１または複数（図１では１つ）のコントローラ１０と接続された構成となっている。
【００１０】
コントローラ１０は、ＣＰＵ１１、メインメモリ１２、およびシステムバス制御回路１４がコントローラ１０の内部バスを介して接続され、共有メモリ１３がシステムバス制御回路１４に接続されている。共有メモリ１３は、自装置および他の装置からアクセス可能で書換え可能なメモリである。システムバス制御回路１４は、システムバス３０、コントローラ１０の内部バス、および共有メモリ１３と接続するバスとの間の伝送制御を行うための回路である。ＣＰＵ１１およびメインメモリ１２部分は、いわゆるコンピュータとして機能する部分であり、起動時に図示しないＲＯＭに格納された複数の処理モジュールからなる制御プログラムがメインメモリに展開され、ＣＰＵ１１がこの制御プログラムを実行することにより、コントローラ１０自身の制御および通信命令（または割り込み）により伝送装置２０Ａ，２０Ｂに対する制御を実施する。また、メインメモリ１２は、ＣＰＵ１１のワークエリアとしても使用される。
【００１１】
伝送装置２０Ａは、ＣＰＵ２１Ａ、メインメモリ２２Ａ、およびシステムバス制御回路２４Ａが、伝送装置２１Ａの内部バスを介して接続され、共有メモリ２３Ａがシステムバス制御回路２４Ａに接続された構成となっている。さらに、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の伝送路４０Ａに接続しこの伝送路４０Ａとの間の伝送制御を行うＬＡＮコントローラ２５Ａが、伝送装置２０Ａの内部バスに接続されている。
【００１２】
伝送装置２０Ｂは、ＣＰＵ２１Ｂ、メインメモリ２２Ｂ、およびシステムバス制御回路２４Ｂが、伝送装置２０Ｂの内部バスを介して接続され、共有メモリ２３Ｂがシステムバス制御回路２４Ｂに接続された構成となっている。さらに、任意の伝送路４０Ｂに接続し、この伝送路４０Ｂとの間の伝送制御を行う伝送制御ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２５Ｂが、伝送装置２０Ｂの内部バスに接続されている。
【００１３】
上記伝送装置２０Ａ，２０ＢのＣＰＵ２１Ａ，２１Ｂおよびメインメモリ２２Ａ，２２Ｂ部分は、いわゆるコンピュータとして機能する部分であり、コントローラ１０とは独立した処理や、コントローラからの通信命令に従った処理を非同期で実行する機能を有している。なお、伝送装置２０Ａ，２０Ｂのシステムバス制御回路２４Ａ，２４Ｂは、システムバス３０を介した割り込みを受け付け、それぞれが接続するＣＰＵ２１Ａ，２１Ｂに対する割り込みを行う機能を有する。ＣＰＵ２１Ａ，２１Ｂは、当該割り込みに対応した処理を実行する。また、伝送装置２０Ａ，２０Ｂのメインメモリ２２Ａ，２２Ｂは、伝送路４０Ａ，４０Ｂを介して外部装置（図示せず）から送られてくる受信データを格納するバッファメモリ（受信バッファ）としても使用される。
【００１４】
また、伝送装置２０Ａ，２０Ｂは、ソケット情報として、外部装置毎に設定される受信バッファアドレス（受信バッファのアドレス）および受信サイズ（受信データのサイズ）を、ソケット番号で関連付けるためのテーブルを有している。このテーブルは、図２に示すように、ソケット番号・フィールド４０１、受信バッファアドレス・フィールド４０２、および受信サイズ・フィールド４０３からなる。ここでソケット番号は、例えば受信データの送信元のＩＰアドレスおよびポート番号、ならびに自装置のＩＰアドレスおよびポート番号と関連づけられた番号である。コントローラ１０は、このソケット番号を、伝送装置２０Ａ，２０Ｂが受信する特定の送信元の受信データを指定する際などに用いる。
【００１５】
また、ソケット情報に設定される受信バッファアドレスは、予め定めておいてもよいし、ＣＰＵがシステム資源の状態に応じて動的に定めるようにしてもよい。ソケット情報の受信バッファアドレス・フィールドは、その初期値を受信バッファアドレスが設定されていないことを示す値（以下では０とする）とし、伝送装置２０Ａ，２０Ｂが受信データを受信した際に、ＣＰＵ２１Ａ，２１Ｂが、受信バッファアドレスを、受信データの宛先に対応するソケット情報の受信バッファアドレス・フィールドに設定する。
【００１６】
また、受信サイズは、伝送装置が実際に受信した受信データのサイズを、ＣＰＵ２１Ａ，２１Ｂが、受信データの宛先に対応するソケット情報中の受信サイズ・フィールドに設定する。
【００１７】
次に、伝送装置２０Ａ，２０Ｂの動作について説明する。以下では、伝送装置２０Ａを代表として説明する。
【００１８】
（受信データの受信時）
伝送装置２０Ａは、伝送路４０Ａを介して送られてくる外部装置からの受信データを、外部装置に対応した受信バッファに格納する。伝送装置２０Ａは、前述のソケット情報（図２参照）をもっているので、このソケット情報を参照して、受信データの宛先に対応するソケット情報中の受信バッファアドレスで指定される受信バッファに受信データを格納できる。
【００１９】
（コントローラからの受信要求受付時）
ここで、コントローラ１０から通信命令として受信要求が伝送装置２０Ａにあると、伝送装置２０Ａの処理モジュールの１つでありＣＰＵ２１Ａが実行する受信処理モジュールに、受信要求が通知される。なお、受信処理モジュールによる処理は、図３に示す受信処理（前半）と図４に示す受信処理（後半）からなる。
【００２０】
ＣＰＵ２１Ａが実行する受信処理モジュールは、受信要求の通知を受けると、受信要求待ち（Ｓ１１）の状態から次のＳ１２の処理に移行する。
【００２１】
ＣＰＵ２１Ａは、受信要求に含まれるパラメータ（受信要求パラメータ：図５）からソケット番号２０１を抽出し、図３に示したソケット情報中のソケット番号４０１が、受信要求パラメータから抽出したソケット番号２０１と一致するものを検索する。そして、ＣＰＵ２１Ａは、ソケット情報中で一致したソケット番号４０１の受信バッファアドレス４０２を取得する（Ｓ１２）。図５の例では、受信要求パラメータは、ソケット番号２０１、受信要求サイズ２０２、および受信データコピー先アドレス２０３を含んでいる。
【００２２】
上記Ｓ１２の段階で、コントローラ１０により指定されたソケット番号に対応するソケット情報の受信バッファアドレス・フィールド４０２に受信バッファアドレスが記録されていない場合（すなわち初期値０のままである場合）、ＣＰＵ２１Ａは、受信なしと判断し（Ｓ１３でＮｏ）、受信サイズを０としてコントローラ１０に応答する（Ｓ１６）。
【００２３】
一方、コントローラ１０により指定されたソケット番号に対応するソケット情報の受信バッファアドレス・フィールド４０２に受信バッファアドレスが記録されていた場合、ＣＰＵ２１Ａは、受信データありと判断し（Ｓ１３でＹｅｓ）、Ｓ１４に移行する。Ｓ１４では、待ち処理データを作成する。具体的には、図６に示す待ち処理データの要求元タスク・フィールド３０１に、受信要求の要求元のタスクを識別する情報を記録し、要求元スロット番号・フィールド３０２に、受信要求の要求元のコントローラであるコントローラ１０を特定する情報としてスロット番号を記録し、受信データコピー先アドレス・フィールド３０３に、受信要求パラメータの受信データコピー先アドレスを記録し、受信バッファアドレス・フィールド３０４に受信要求パラメータのソケット番号に対応するソケット情報中の受信バッファアドレスを記録し、受信サイズ・フィールド３０５に受信要求パラメータのソケット番号に対応するソケット情報中の受信サイズを記録し、次の待ち処理データアドレス・フィールド３０６に、次の待ち処理データを格納するための資源待ち処理キュー中の領域の先頭アドレスを記録して、待ち処理データを作成する。なお、資源待ち処理キューは、ここではメインメモリのメモリ空間において、次の待ち処理データアドレスで指定される領域のグループ（図７の概念図参照）として構成するが、これに限るものではない。
【００２４】
次に、ＣＰＵ２１Ａは、作成した待ち処理データを、資源待ち処理キューに先に格納されている待ち処理データ中の次の待ち処理データアドレスで指定された資源待ち処理キューの領域に入れ（Ｓ１５）処理をＳ１１に戻し、次の受信要求待ち（Ｓ１１）を行う。この受信要求待ち（Ｓ１１）の間、ＣＰＵ２１Ａは、別の任意の処理に移行する。なお、待ち処理データを資源待ち処理キューに入れる処理の初期段階で、資源待ち処理キューに先に格納されている待ち処理データがない場合は、予め決められた次の待ち処理データアドレスを用いることとする。
【００２５】
ＣＰＵ２１Ａは、コントローラ１０からシステム共有資源の空き通知（システム共有資源が伝送装置２０Ａ側で使用できることを知らせる通知）を割り込みとして受けると、現在実行している処理を中断し、保留されている受信処理モジュールの受信処理（後半）（図４）を即時に継続する。なお、システム共有資源の空き通知は、コントローラ１０が伝送装置２０Ａに受信要求をしている場合で、自装置がシステム共有資源を使用しないときに、コントローラ１０が伝送装置２０Ａに対して行う通知である。コントローラ１０が伝送装置２０Ａに受信要求をしていない場合は（受信要求に伴う伝送装置２０Ａ側の処理が完了している場合を含む）、コントローラ１０は、自装置がシステム共有資源を使用しない場合でもこの通知は行わない。
【００２６】
次に、コントローラ１０からのシステム共有資源の空き通知に同期して実施する受信処理（後半）について、図４のフローチャートを用いて説明する。
【００２７】
コントローラ１０からシステム共有資源の空き通知が、システムバス３０を介した割り込みとして伝送装置２０Ａに通知されると、ＣＰＵ２１Ａは、即時に受信処理（後半）を実行する。
【００２８】
まず、連続処理サイズの上限判定のために用いる合計処理サイズをクリアする（Ｓ２１）。
【００２９】
次に資源処理待ちキューから、最初にこの資源処理待ちキューに入れられ保留された待ち処理データを取り出す（Ｓ２２）。
【００３０】
このとき待ち処理データが記録されていなかった場合（Ｓ２３でＮｏ）は、処理を終了する。
【００３１】
一方、待ち処理データが資源処理待ちキューに記録されていた場合（Ｓ２３でＹｅｓ）、ＣＰＵ２１Ａは、取り出した待ち処理データを基に、受信バッファ上の受信バッファアドレス・フィールド３０４で指定されたアドレス位置から受信サイズ・フィールド３０５で示されるサイズ分記録されている受信データを、受信データコピー先アドレス・フィールド３０３に記録されているアドレスで指定されたコントローラ１０の共有メモリ１３上の領域に、受信サイズ・フィールド３０５で示されるサイズ分の受信データのコピー（図１の符号１０１参照）を実施する（Ｓ２４）。このとき、コントローラ１０からの受信要求に含まれるパラメータに受信要求サイズが指定されている場合は、この受信要求サイズに応じた受信データのコピーを実施する。そして、待ち処理データの要求元タスク・フィールド３０１および要求元スロット番号・フィールド３０２の情報を基に、要求元であるコントローラ１０のタスクに、受信サイズを通知することにより、コピーが完了したことを通知する（Ｓ２５）。
【００３２】
次に、ＣＰＵ２１Ａは、合計処理サイズに、コピーした受信データの受信サイズ（３０５）を加算する（Ｓ２６）。
【００３３】
次に、連続処理サイズの上限判定（Ｓ２７）において合計処理サイズが上限サイズ以上であれば（Ｓ２７で“≧”）、ＣＰＵ２１Ａは、受信処理（後半）を終了する。なお、コントローラ１０は、伝送装置２０Ａに受信要求中の処理が存在する場合は、次のシステム共有資源が空いたタイミングにおいてもシステム資源の空き通知を行う。また、上記上限サイズは、本実施形態では、システム構成に応じて予め定められるものとする。
【００３４】
一方、連続処理サイズの上限判定（Ｓ２７）において、合計処理サイズが上限サイズ未満（Ｓ２７で“＜”）の場合Ｓ２２に戻り、ＣＰＵ２１Ａは、資源処理待ちキューから、次に保留された待ち処理データを取り出し（Ｓ２２）、Ｓ２３以降の処理を繰り返す。
【００３５】
以上のように伝送装置２０Ａ（２０Ｂ）およびコントローラ１０が動作するので、コントローラ１０は、伝送装置２０Ａがコントローラ１０のタスク実行と関係なくシステムバス３０や共有メモリ１３，２３Ａ，２３Ｂ等のシステム共有資源を使用することによる従来の待ち時間が生じないので、コントローラのタスク実行が遅延することがない。なお、従来方式では、図８に示すように、コントローラのタスク実行が、資源空き待ち時間分遅延する場合がある。
【００３６】
（第２の実施形態）
第１の実施形態では、上述の受信処理（後半）において、資源処理待ちキューから、待ち処理データを取り出す処理の終了後に、連続処理サイズの上限判定（Ｓ２７）を実施している。この判定に用いる上限サイズは、システム１の動作環境に応じて変えるべきものである。本実施形態では、上限サイズを変数として保持する。そして、伝送装置２０Ａ，２０ＢのＣＰＵ２１Ａ，２１Ｂは、コントローラ１０から通信命令の１つとしてこの上限サイズの変更通知があったとき、連続処理サイズの上限判定で用いる上限サイズを指示された上限サイズに変更する。このように上限サイズを動的に変更可能にすることで、システムの動作環境の変化に対応可能となる。なお、本実施形態におけるその他の構成は、前述の第１の実施形態と同様である。
【００３７】
（第３の実施形態）
上述の第１の実施形態および第２の実施形態は、コントローラ１０が伝送装置２０Ａ，２０Ｂに要求した受信処理の応答のタイミングを、システム共有資源の空き通知によってコントローラ１０が主体となって調整する構成としているが、伝送装置２０Ａ，２０Ｂ側での何らかのイベント発生時に（例えば、コントローラ１０以外からの要求があった場合などに）、コントローラ１０に必要な処理を要求したい場合がある。第１の実施形態および第２の実施形態における手法では、伝送装置２０Ａ，２０Ｂ側にコントローラ１０からの要求中の受信処理がない場合、コントローラ１０からシステム共有資源の空き通知がなされない。そこで、本実施形態では、このようなときにコントローラ１０からシステム資源の空き通知を受けるために、コントローラ１０にシステム共有資源の空き通知開始要求を行う。伝送装置２０Ａ，２０Ｂからシステム共有資源の空き通知開始要求を受けたコントローラ１０は、要求中の受信処理の有無にかかわらずシステム共有資源の空き通知を継続的に実施する。
【００３８】
また、本実施形態において、伝送装置２０Ａ，２０Ｂは、システム共有資源の空き通知開始要求によって継続されているシステム共有資源の空き通知を停止させるために、コントローラ１０にシステム共有資源の空き通知停止要求を行う。コントローラ１０は、伝送装置２０Ａ，２０Ｂからシステム共有資源の空き通知停止要求を受けるとシステム共有資源の空き通知を停止する。なお、システム共有資源の空き通知開始要求およびシステム共有資源の空き通知停止要求を実施するための実装形態は任意であるが、割り込みで行うようにしてもよい。このようにすることで、コントローラからの要求中の受信処理がない場合でも、コントローラに必要な処理を要求できるようになる。
【００３９】
以上説明したとおり、第１から第３の実施形態によれば、伝送装置側の処理（受信処理および受信処理に伴う共有メモリへのコピー等）の中でシステム共有資源を伝送装置が占有するタイミングが、コントローラがシステム共有資源を占有するタイミングと重複することを削減でき、システム共有資源の空き待ちによるコントローラのタスク処理の遅延を削減することが可能である。すなわち、コントローラは、自身のタスク処理を、伝送装置側での処理の影響を受けずに遅延なく実行できる。
【００４０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４１】
１  システム
１０  コントローラ
１１，２１Ａ，２１Ｂ  ＣＰＵ
１２，２２Ａ，２２Ｂ  メインメモリ
１３，２３Ａ，２３Ｂ  共有メモリ
１４，２４Ａ，２４Ｂ  システムバス制御回路
２０Ａ，２０Ｂ  伝送装置
２５Ａ  ＬＡＮコントローラ
２５Ｂ  伝送制御ＡＳＩＣ
３０  システムバス
４０Ａ，４０Ｂ  伝送路
【図１】
2015203976.tif 000003
【図２】
2015203976.tif 000004
【図３】
2015203976.tif 000005
【図４】
2015203976.tif 000006
【図５】
2015203976.tif 000007
【図６】
2015203976.tif 000008
【図７】
2015203976.tif 000009
【図８】
2015203976.tif 000010