(57)【特許請求の範囲】
【請求項１】
他局との間でデータの伝送処理を行う伝送制御部と、当該伝送制御部とデータ処理を行う上位層とがアクセス可能な共有メモリとを有し、自局がトークンを受信したとき一斉同報によりデータを送信すると共に、他局から受信したデータを前記共有メモリの局毎に決められた記憶領域に格納するようにしたデータ伝送制御装置であって、
二つの共有メモリと、
上位層からの切換要求に応じて前記上位層及び前記伝送制御部が互いに異なる共有メモリをアクセスするようにアクセス先の共有メモリを切り換える切換手段と、
前記切換手段で最後に切り換えを行った時点以後受信したデータの送信元局を記憶する今受信局記憶手段と、
前記切換手段で最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局を記憶する先受信局記憶手段と、前記切換手段で最後に切り換えを行った時点以後前記トークンが全局を一巡したかどうかを検出するトークン一巡検出手段と、
当該トークン一巡検出手段で前記トークンが一巡したことを検出したとき、前記先受信局記憶手段に登録され且つ前記今受信局記憶手段に登録されない送信元局について、前記上位層のアクセス先の共有メモリのメモリデータを前記伝送制御部のアクセス先の共有メモリに複写する複写手段と、を備え、
前記切換手段は、前記上位層から切換要求があり且つ前記複写手段による複写が終了しているとき、前記共有メモリを切り換えるようになっていることを特徴とするデータ伝送制御装置。
【請求項２】
他局との間でデータの伝送処理を行う伝送制御部と、当該伝送制御部とデータ処理を行う上位層とがアクセス可能な共有メモリとを有し、自局がトークンを受信したとき一斉同報によりデータを送信すると共に、他局から受信したデータを前記共有メモリの局毎に決められた記憶領域に格納するようにしたデータ伝送制御装置であって、
二つの共有メモリと、
上位層からの切換要求に応じて前記上位層及び前記伝送制御部が互いに異なる共有メモリをアクセスするようにアクセス先の共有メモリを切り換える切換手段と、
前記切換手段で最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局を記憶する先受信局記憶手段と、データ受信時にこのデータの送信元局よりも前にデータを受信すべき局であるにも係わらずデータを受信せず且つ前記先受信局記憶手段に登録された局があるかどうかを検出する非受信局検出手段と、
前記切換手段で最後に切り換えを行った時点以後前記トークンが全局を一巡したかどうかを検出するトークン一巡検出手段と、
当該トークン一巡検出手段でトークンが一巡していないことを検出し且つ前記非受信局検出手段で非受信局を検出したとき、当該非受信局について前記上位層のアクセス先の共有メモリに記憶されたメモリデータを前記伝送制御部のアクセス先の共有メモリに複写する複写手段と、を備え、
前記切換手段は、前記上位層から切換要求があり且つ前記トークン一巡検出手段で前記トークンが一巡したことを検出しているとき、前記共有メモリを切り換えるようになっていることを特徴とするデータ伝送制御装置。
【請求項３】
他局との間でデータの伝送処理を行う伝送制御部と、当該伝送制御部とデータ処理を行う上位層とがアクセス可能な共有メモリとを有し、自局がトークンを受信したとき一斉同報によりデータを送信すると共に、他局から受信したデータを前記共有メモリの局毎に決められた記憶領域に格納するようにしたデータ伝送制御装置であって、
二つの共有メモリと、
上位層からの切換要求に応じて、前記上位層及び前記伝送制御部が互いに異なる共有メモリをアクセスするようにアクセス先の共有メモリを切り換える切換手段と、
前記切換手段で最後に切り換えを行った時点以後受信したデータの送信元局を記憶する今受信局記憶手段と、
前記切換手段で最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局を記憶する前受信局記憶手段と、前記切換手段で最後に切り換えを行った時点以後、前記トークンが全局を一巡したかどうかを検出するトークン一巡検出手段と、当該トークン一巡検出手段で前記トークンが一巡したことを検出し且つ前記切換手段に対して切換要求が行われたとき、前記先受信局記憶手段に登録され且つ前記今受信局記憶手段に登録されない送信元局について、前記上位層のアクセス先の共有メモリのメモリデータを、前記伝送制御部のアクセス先の共有メモリに複写する複写手段と、を備え、前記切換手段は、前記複写手段による複写が終了した後、前記共有メモリを切り換えるようになっていることを特徴とするデータ伝送制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばファクトリオートメーション用コントローラや、数値制御機器、ロボットコントローラ等の各局がネットワークで接続され、相互にデータを送受信するようにしたシステムに適用される、各局においてネットワークを介してのデータ伝送制御を行うデータ伝送制御装置に関する。
【０００２】
【従来の技術】
従来、ファクトリオートメーション用のコントローラ或いは、数値制御機器、ロボットコントローラ等の各局がネットワークで接続され、トークンパッシング方式で相互にデータを送受信するようにしたシステムにおいては、例えば図１０に示すように、各ノードすなわち局には共有メモリが設けられている。この共有メモリは、ノード毎に専用のメモリ領域が確保され、トークンを受信した局が例えばブロードキャスト等によってネットワーク内の全ての局宛にデータを送信することによって、各局では、受信したデータをそのデータの送信元局に対応する共有メモリの所定のメモリ領域に格納するようになっている。これによって、各ノードの共有メモリには、各ノード共通のデータが格納されるようになっている。
【０００３】
図１１は、各ノードにおいて、他局とのデータ伝送制御を行うデータ伝送制御装置の概略構成を示したものである。
このデータ伝送制御装置１００は、図１１に示すように、二つの共有メモリ１０ａ及び１０ｂを有している。そして、図示しない通信回線を介して伝送されたデータはドライバ／レシーバ１２で受信され、送受信バッファ１４に格納される。そして、伝送制御部１６が、送受信バッファ１４に格納された受信データについてその送信元のノードである送信元局を特定し、例えば共有メモリ１０ａの送信元局に対応するメモリ領域に、送受信バッファ１４に格納された受信データを転送する。また、共有メモリ１０ａに格納された自局の送信データは、伝送制御部１６によって送受信バッファ１４に転送され、ドライバ／レシーバ１２を介して伝送されるようになっている。
【０００４】
一方、上位層インタフェース１８では、伝送制御部１６がアクセスする共有メモリとは逆の共有メモリ、この場合１０ｂに対してアクセスを行い、共有メモリ１０ｂから受信データを読み出して所定の処理を行うと共に、送信データを共有メモリ１０ｂに書き込む。
そして、上位層インタフェース１８が、切換要求を伝送制御部１６に対して行うことにより、伝送制御部１６がそのアクセス先の共有メモリ１０ａを他方の共有メモリ１０ｂに切り換え、同様に、上位層インタフェース１８でもそのアクセス先の共有メモリを１０ｂから１０ａに切り換えることにより、上位層インタフェース１８では、共有メモリ１０ｂに格納された他局から受信した最新データを取り込むことができると共に、伝送制御部１６では、上位層インタフェース１８が設定した自局の最新の送信データを送受信バッファ１４に転送し、これを他局に送信できるようになっている。
【０００５】
このように、二つの共有メモリ１０ａ及び１０ｂを設け、伝送制御部１６による共有メモリへのアクセスと上位層インタフェース１８による共有メモリへのアクセスとを同時に可能し、また、伝送制御部１６及び上位層インタフェース１８のアクセス先の共有メモリを切り換えることにより、伝送制御部１６で受信している他局からのデータと上位層インタフェース１８が実際に処理する他局からのデータとの整合性を確保すると共に、高速なデータ伝送を実現できるようになっている。
【０００６】
【発明が解決しようとする課題】
このようなデータ伝送制御装置においては、ノードの脱落等何らかの異常によってデータを受信しなかった局がある場合に備えて、例えば、上位層インタフェース１８側の共有メモリである上位層側共有メモリと伝送制御部１６側の共有メモリである伝送側共有メモリとを切り換えた時点で、新たに上位層側共有メモリとなった共有メモリの全てのメモリデータを伝送側共有メモリにコピーするか、或いは、上位層側共有メモリと伝送側共有メモリとを切り換える前に、伝送側共有メモリの全てのメモリデータを上位層側共有メモリにコピーし、その後切り換えを行うようにしている。
【０００７】
つまり、図１２（ａ）に示すように、時点ｔ82で各局Ａ〜Ｎからデータを受信し、時点ｔ83で共有メモリの切り換えを行い、その後、時点ｔ84で各局からデータを受信したが、局Ｃからはデータを受信しなかった場合には、時点ｔ85で共有メモリを切り換えたときに、上位層側共有メモリの局Ｃのメモリデータは旧データＣ1 のままとなってしまう。
【０００８】
これを回避するために、図１０（ｂ）に示すように、時点ｔ83′で上位層側共有メモリと伝送側共有メモリとを切り換えた後、上位層側共有メモリとなった共有メモリの全てのデータを伝送側共有メモリにコピーしておくことによって、時点ｔ84′で局Ｃからのデータを新たに受信しない場合でも、時点ｔ85′で共有メモリの切り換えを行ったときには、新たに上位層側共有メモリとなった共有メモリに最新の受信データが格納されるようにしている。
【０００９】
しかしながら、このように、共有メモリの切り換えを行うときに上位層側共有メモリから伝送側共有メモリに、或いは伝送側共有メモリから上位層側共有メモリに全てのメモリデータをコピーするようにした場合、メモリデータのコピーを行っている最中に新たに他局からデータを受信することを回避するため、自局がトークンを受信した時点で切り換えを行う必要がある。そのため、メモリデータのコピー中は自局でトークンを保持している必要があるため、自局がトークンを受信してから次の局にトークンをリリースするまでに時間がかかってしまい、ネットワークの性能を低下させる一因となっている。
【００１０】
そこで、この発明は、上記従来の未解決の問題に着目してなされたものであり、伝送制御部がアクセスする共有メモリと上位層がアクセスする共有メモリとの間でデータの整合をとるために行う、共有メモリ間でのメモリデータの複写に要する処理時間を短縮することの可能なデータ伝送制御装置を提供することを目的としている。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１に係るデータ伝送制御装置は、他局との間でデータの伝送処理を行う伝送制御部と、当該伝送制御部とデータ処理を行う上位層とがアクセス可能な共有メモリとを有し、自局がトークンを受信したとき一斉同報によりデータを送信すると共に、他局から受信したデータを前記共有メモリの局毎に決められた記憶領域に格納するようにしたデータ伝送制御装置であって、二つの共有メモリと、上位層からの切換要求に応じて前記上位層及び前記伝送制御部が互いに異なる共有メモリをアクセスするようにアクセス先の共有メモリを切り換える切換手段と、前記切換手段で最後に切り換えを行った時点以後受信したデータの送信元局を記憶する今受信局記憶手段と、前記切換手段で最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局を記憶する先受信局記憶手段と、前記切換手段で最後に切り換えを行った時点以後前記トークンが全局を一巡したかどうかを検出するトークン一巡検出手段と、当該トークン一巡検出手段で前記トークンが一巡したことを検出したとき、前記先受信局記憶手段に登録され且つ前記今受信局記憶手段に登録されない送信元局について、前記上位層のアクセス先の共有メモリのメモリデータを前記伝送制御部のアクセス先の共有メモリに複写する複写手段と、を備え、前記切換手段は、前記上位層から切換要求があり且つ前記複写手段による複写が終了しているとき、前記共有メモリを切り換えるようになっていることを特徴としている。
【００１２】
この請求項１に係る発明では、トークンを受信した局が一斉同報でデータを各局に送信し、各局の伝送制御部では他局からのデータを共有メモリの局毎に定められた記憶領域に格納する。各局には、伝送制御部がアクセスする共有メモリと上位層がアクセスする共有メモリとが設けられ、上位層からの切換要求に応じてアクセス先の共有メモリを切り換えることにより、伝送制御部と上位層とがそれぞれ異なる共有メモリに対して交互にアクセスを行うようになっている。
【００１３】
このとき、切換手段で共有メモリを最後に切り換えを行った時点以後受信したデータの送信元局は逐次今受信局記憶手段に格納され、また、最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局は先受信局記憶手段に記憶される。そして、切換手段で最後に切り換えを行った時点以後トークンが全局を一巡したことを検出したとき、先受信局記憶手段に登録され且つ今受信局記憶手段に記憶されない局、つまり、最後に切り換えた時点以後データを受信してないが、その前にはデータを受信している局について、上位層のアクセス先の共有メモリのメモリデータが伝送制御部のアクセス先の共有メモリに複写される。
【００１４】
ここで、最後に切り換えた時点以後受信したデータは、現在伝送制御部のアクセス先の共有メモリに格納され、この切り換えよりも前に受信したデータは上位層のアクセス先の共有メモリに格納されるから、現在伝送制御部のアクセス先の共有メモリには、最後に切り換えた時点以後データを受信しない局については、前々回の切り換えよりも前に受信したデータが格納されていることになる。この状態で共有メモリを切り換えると、伝送制御部のアクセス先の共有メモリには、前々回の切り換えよりも前に受信したデータが格納されていることになるが、複写手段によってメモリデータの複写を行うから、伝送制御部のアクセス先の共有メモリには、受信した他局からのデータのうち最新のデータが格納されることになる。よって、この状態で切り換えを行うことにより、上位層は、最新のデータを取り扱うことが可能となる。
【００１５】
このとき、最後に切り換えた時点以後データを受信してないが、その前にはデータを受信している局についてのみ、上位層のアクセス先の共有メモリのメモリデータを他方の共有メモリに複写するようにしているから、その複写量を削減することが可能となり、複写に要する処理時間が短縮されることになる。
また、本発明の請求項２に係るデータ伝送制御装置は、他局との間でデータの伝送処理を行う伝送制御部と、当該伝送制御部とデータ処理を行う上位層とがアクセス可能な共有メモリとを有し、自局がトークンを受信したとき一斉同報によりデータを送信すると共に、他局から受信したデータを前記共有メモリの局毎に決められた記憶領域に格納するようにしたデータ伝送制御装置であって、二つの共有メモリと、上位層からの切換要求に応じて前記上位層及び前記伝送制御部が互いに異なる共有メモリをアクセスするようにアクセス先の共有メモリを切り換える切換手段と、前記切換手段で最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局を記憶する先受信局記憶手段と、データ受信時にこのデータの送信元局よりも前にデータを受信すべき局であるにも係わらずデータを受信せず且つ前記先受信局記憶手段に登録された局があるかどうかを検出する非受信局検出手段と、前記切換手段で最後に切り換えを行った時点以後前記トークンが全局を一巡したかどうかを検出するトークン一巡検出手段と、当該トークン一巡検出手段でトークンが一巡していないことを検出し且つ前記非受信局検出手段で非受信局を検出したとき、当該非受信局について前記上位層のアクセス先の共有メモリに記憶されたメモリデータを前記伝送制御部のアクセス先の共有メモリに複写する複写手段と、を備え、前記切換手段は、前記上位層から切換要求があり且つ前記トークン一巡検出手段で前記トークンが一巡したことを検出しているとき、前記共有メモリを切り換えるようになっていることを特徴としている。
【００１６】
この請求項２に係る発明では、トークンを受信した局が一斉同報でデータを各局に送信し、各局の伝送制御部では、他局からのデータを共有メモリの局毎に定められた記憶領域に格納する。各局には、伝送制御部がアクセスする共有メモリと上位層がアクセスする共有メモリとが設けられ、上位層からの切換要求に応じてアクセス先の共有メモリを切り換えることにより、伝送制御部と上位層とがそれぞれ異なる共有メモリに対して交互にアクセスするようになっている。
【００１７】
このとき、共有メモリの切り換えを最後に行った時点とこれよりも一つ前に行った時点との間に受信したデータの送信元局は先受信局記憶手段に記憶される。そして、データを受信したときに、このデータの送信元局よりも先にデータを受信すべき局であるにも係わらずデータを受信していない局があるかどうかが、例えばトークンの周回順に基づいて検出され、この検出された局が、先受信局記憶手段に登録されているときこれが非受信局として特定される。そして、トークンが前回切り換えを行った後各局を一巡していなければ、非受信局に相当する上位層のアクセス先の共有メモリのメモリデータが伝送制御部のアクセス先の共有メモリに複写される。
【００１８】
ここで、最後に切り換えた時点以後受信したデータは、現在伝送制御部のアクセス先の共有メモリに格納され、この切り換えよりも前に受信したデータは上位層のアクセス先の共有メモリに格納されるから、現在伝送制御部のアクセス先の共有メモリには、最後に切り換えた時点以後データを受信しない局については、前々回の切り換えよりも前に受信したデータが格納されていることになる。この状態で共有メモリを切り換えると、伝送制御部のアクセス先の共有メモリには、前々回の切り換えよりも前に受信したデータが格納されていることになるが、データ受信時にデータを受信すべき局であるにも係わらずデータを受信しなかった局については複写手段によってメモリデータの複写を行うから、伝送制御部のアクセス先の共有メモリには受信したデータのうち最新のデータが格納されることになる。よって、この状態で切り換えを行うことにより、上位層は、最新のデータを取り扱うことが可能となる。
【００１９】
このとき、データを受信すべき局であるにも係わらず受信していない局であり且つ最後に切り換えを行った時点よりも前にはデータを受信している局についてのみ、上位層のアクセス先の共有メモリのメモリデータを他方の共有メモリに複写するようにしているから、その複写量を削減することが可能となり、複写に要する処理時間が短縮されることになる。
【００２０】
さらに、本発明の請求項３に係るデータ伝送制御装置は、他局との間でデータの伝送処理を行う伝送制御部と、当該伝送制御部とデータ処理を行う上位層とがアクセス可能な共有メモリとを有し、自局がトークンを受信したとき一斉同報によりデータを送信すると共に、他局から受信したデータを前記共有メモリの局毎に決められた記憶領域に格納するようにしたデータ伝送制御装置であって、二つの共有メモリと、上位層からの切換要求に応じて前記上位層及び前記伝送制御部が互いに異なる共有メモリをアクセスするようにアクセス先の共有メモリを切り換える切換手段と、前記切換手段で最後に切り換えを行った時点以後受信したデータの送信元局を記憶する今受信局記憶手段と、前記切換手段で最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点との間に受信したデータの送信元局を記憶する前受信局記憶手段と、前記切換手段で最後に切り換えを行った時点以後前記トークンが全局を一巡したかどうかを検出するトークン一巡検出手段と、当該トークン一巡検出手段で前記トークンが一巡したことを検出し且つ前記切換手段に対して切換要求が行われたとき、前記先受信局記憶手段に登録され且つ前記今受信局記憶手段に登録されない送信元局について、前記上位層のアクセス先の共有メモリのメモリデータを前記伝送制御部のアクセス先の共有メモリに複写する複写手段と、を備え、前記切換手段は、前記複写手段による複写が終了した後、前記共有メモリを切り換えるようになっていることを特徴としている。
【００２１】
この請求項３に係る発明では、トークンを受信した局が一斉同報でデータを各局に送信し、各局の伝送制御部では、他局からのデータを共有メモリの局毎に定められた記憶領域に格納する。各局には、伝送制御部がアクセスする共有メモリと上位層がアクセスする共有メモリとが設けられ、上位層からの切換要求に応じてアクセス先の共有メモリを切り換えることにより、伝送制御部と上位層とがそれぞれ異なる共有メモリに対して交互にアクセスするようになっている。
【００２２】
このとき、切換手段で最後に切り換えを行った時点以後受信したデータの送信元局は逐次今受信局記憶手段に格納され、また、最後に切り換えを行った時点とこれよりも一つ前に切り換えを行った時点までの間に受信したデータの送信元局は先受信局記憶手段に記憶される。そして、切換手段で最後に切り換えを行った時点以後トークンが全局を一巡し、且つ上位層から切換要求が行われたとき、先受信局記憶手段に登録され且つ今受信局記憶手段に記憶されない局、つまり、最後に切り換えた時点以後データを受信してないがその前にはデータを受信している局について、上位層のアクセス先の共有メモリのメモリデータが伝送制御部のアクセス先の共有メモリに複写され、その後切り換えが行われる。
【００２３】
ここで、最後に切り換えた時点以後受信したデータは、現在伝送制御部のアクセス先の共有メモリに格納され、この切り換えよりも前に受信したデータは上位層のアクセス先の共有メモリに格納されるから、現在伝送制御部のアクセス先の共有メモリには、最後に切り換えた時点以後データを受信しない局については、前々回の切り換えよりも前に受信したデータが格納されていることになる。この状態で共有メモリを切り換えると、伝送制御部のアクセス先の共有メモリには、前々回の切り換えよりも前に受信したデータが格納されていることになる。しかしながら、複写手段によってメモリデータの複写を行った後切り換えを行うから、伝送制御部のアクセス先の共有メモリに、受信したデータのうち最新のデータが格納された後、切り換えが行われてこれが上位層のアクセス先の共有メモリになるから、上位層は、最新のデータを取り扱うことが可能となる。
【００２４】
このとき、最後に切り換えた時点以後データを受信してないが、その前にはデータを受信している局についてのみ、上位層のアクセス先の共有メモリのメモリデータを他方の共有メモリに複写するようにしているから、その複写量を削減することができ、複写に要する処理時間が短縮されることになる。
【００２５】
【発明の実施の形態】
以下に、本発明の実施の形態を説明する。
まず、本発明の第１の実施の形態を説明する。
図１は、第１の実施の形態におけるデータ伝送制御装置の概略構成を示した構成図である。なお、当該データ伝送制御装置を有する局で構成されるネットワークのシステム構成は、図１０に示す従来の構成と同等であるのでその詳細な説明は省略する。
【００２６】
図１に示すように、データ伝送制御装置１００は、上記図１１に示す従来のデータ伝送制御装置１００と同様に、二つの共有メモリ１０ａ及び１０ｂが設けられている。そして、これら共有メモリ１０ａ及び１０ｂのメモリ領域は、ネットワーク内の各局毎に専用のメモリ領域が確保され、他局からのデータはその送信元の局に対応するメモリ領域に格納され、また自局からの送信データは自局に対応するメモリ領域に格納されるようになっている。
【００２７】
そして、図示しない通信回線を介して伝送されたデータはドライバ／レシーバ１２で受信されて送受信バッファ１４に格納される。そして、伝送制御部１６では、上位層インタフェース１８からの切換要求で指定される共有メモリ１０ａ又は１０ｂの何れかに対してアクセスを行い、送受信バッファ１４に格納された受信データを指定された共有メモリ１０ａ又は１０ｂに転送する。このとき、受信データに含まれる送信元情報からその送信元局に対応するメモリ領域を特定し、共有メモリの送信元局に対応するメモリ領域に転送する。
【００２８】
また、伝送制御部１６では、伝送側共有メモリの自局のメモリ領域に格納された送信データを送受信バッファ１４に転送し、トークンを受信したときに、ドライバ／レシーバ１２を介して他局にブロードキャストにより送信する。
また、伝送制御部１６は、上位層インタフェース１８から切換要求に応じて、受信局管理テーブル２０の管理情報に基づいて共有メモリの切り換えの可否を判断し、切り換え可能であるときにアクセス先の共有メモリを、切換要求で指定される共有メモリ１０ａ又は１０ｂの何れかに切り換える。そして、切り換え後上位層インタフェース１８に対して切り換えが完了したことを通知するための完了通知を行う。
【００２９】
前記上位層インタフェース１８は、伝送制御部１６のアクセス先の共有メモリとは別の共有メモリ、つまり、例えば伝送制御部１６が共有メモリ１０ａに対してアクセスを行っている場合には、共有メモリ１０ｂに対してアクセスを行い、予め設定された所定のタイミングで、伝送制御部１６に対して共有メモリの切り換えを指示するための切換要求を行い、現在上位層インタフェース１８がアクセスしている共有メモリ１０ｂへのアクセスを伝送制御部１６に対して指示する。このとき、上位層インタフェース１８では、共有メモリ１０ａ及び１０ｂへのアクセスを停止した後、伝送制御部１６に対する切換要求を行い、その後、伝送制御部１６から完了通知を受信したとき、アクセス先の共有メモリを切り換え、この度は共有メモリ１０ａに対してアクセスを行う。
【００３０】
図２は、伝送制御部１６での、共有メモリの切換処理手順を示すフローチャートである。
図２に示すように、伝送制御部１６では、まず、ステップＳ１で、他局からデータを受信したかどうかを判定する。これは、例えば送受信バッファ１４へデータが書き込まれたかどうかを監視すること等によって行う。
【００３１】
そして、他局からデータを受信した場合には、ステップＳ２に移行し、受信データに含まれる送信元局情報から、このデータの送信元局を特定する。そして現在の伝送制御部１６のアクセス先の共有メモリである伝送側共有メモリの、送信元局に対応するメモリ領域に、受信データを転送する。
次いで、ステップＳ３に移行し、送信元局を、その局からのデータを受信したことを表す受信局として、所定の記憶領域に形成された受信局管理テーブル２０の今回用テーブルNOW に登録する。そして、ステップＳ４に移行する。
【００３２】
前記受信局管理テーブル２０は、今回用テーブル２０NOW と先回用テーブル２０OLD とから構成され、前記今回用テーブル２０NOW には、前回共有メモリの切り換えを行った時点以後受信したデータの受信局が登録され、先回用テーブル２０OLD には、共有メモリの切換を行った時点で今回用テーブル２０NOW に登録されている局、つまり、前々回共有メモリの切り換えを行った時点から前回共有メモリの切り換えを行うまでの間に受信したデータの受信局が登録されるようになっている。
【００３３】
前記ステップＳ４では、トークンを受信し、且つこのトークンが、前回共有メモリの切り換えを行ってからネットワーク内の各局を一巡しているかどうかを判定する。この判定は例えば、共有メモリの切り換えを行った後、トークンを二回受信したかどうか等に基づいて判定する。
そして、前回の切り換え後トークンが一巡している場合には、ステップＳ５に移行し、受信局管理テーブル２０の今回用テーブル２０NOW と先回用テーブル２０OLD とを比較し、先回用テーブル２０OLD には登録されかつ今回用テーブル２０OLD に登録されていない局（以後、非連続受信局という。）を特定する。
【００３４】
次いでステップＳ６に移行し、ステップＳ５で特定した非連続受信局について、上位層側共有メモリのメモリデータを伝送側共有メモリの該当するメモリ領域にコピーする。そして、フラグＦをＦ＝１に設定した後、ステップＳ７に移行する。
一方、前記ステップＳ１で、データを受信していないとき、また、前記ステップＳ４で、前回共有メモリの切り換え後トークンが各局を一巡していないときには、そのままステップＳ７に移行する。
【００３５】
このステップＳ７では、上位層インタフェース１８から共有メモリの切換要求を受信したかどうかを判定する。そして、共有メモリの切換要求を受信しないときにはそのままステップＳ１に戻り、切換要求を受信したときにはステップＳ８に移行する。
このステップＳ８では、フラグＦがＦ＝１であるかどうかを判定し、Ｆ＝１でないときにはステップＳ９に移行して上位層インタフェース１８に対して切り換え不可であることを通知した後ステップＳ１に戻る。一方、Ｆ＝１であるときにはステップＳ１０に移行する。
【００３６】
このステップＳ１０では、アクセス先の共有メモリを他方の共有メモリに切り換え、フラグＦをＦ＝０に設定した後、上位層インタフェース１８に対して切り換え完了通知を行う。さらに、受信局管理テーブル２０の今回用テーブル２０NOW の情報を先回用テーブル２０OLD にコピーし、今回用テーブル２０NOW をクリアにする。なお、このとき、共有メモリ間でのコピーを行っている場合には、データのコピーが終了するまで共有メモリの切り換えは行わず、コピーが終了した後切り換えを行う。
【００３７】
ここで、今回用テーブル２０NOW が今受信局記憶手段に対応し、先回用テーブル２０OLD が先受信局記憶手段に対応し、図２のステップＳ４の処理がトークン一巡検出手段に対応し、ステップＳ５及びステップＳ６の処理が複写手段に対応し、ステップＳ１０の処理が切換手段に対応している。
次に、上記第１の実施の形態の動作を説明する。
【００３８】
今、Ａ、Ｂ、Ｃ、Ｄの４つのノード（局）により、図１０に示すように構成されたネットワークシステムにおいて、データ伝送を行っているものとする。各局での動作は同一であるので、ここでは、局Ｄでの動作について説明する。
今、共有メモリ１０ａは上位層側共有メモリとして作動し、共有メモリ１０ｂは伝送側共有メモリとして作動し、図３の時点ｔ1 に示すように、共有メモリ１０ａには、局ＡのメモリデータとしてＡ1 、局ＢのメモリデータとしてＢ1 、局ＣのメモリデータとしてＣ1 、局ＤのメモリデータとしてＤが格納されている。また共有メモリ１０ｂには、局ＡのメモリデータとしてＡ0 、局ＢのメモリデータとしてＢ0 、局ＣのメモリデータとしてＣ0 、局ＤのメモリデータとしてＤが格納されている。また、受信局管理テーブル２０の今回用テーブル２０NOW はクリアされた状態であり、先回用テーブル２０OLD には局Ａ、Ｂ、Ｃが登録されている。なお、局Ｄのデータは自局で設定する値であるので、ここでは、データＤとする。
【００３９】
この状態から、時点ｔ2 で局ＡからデータＡ2 を受信すると、局ＡからのデータＡ2 は、ドライバ／レシーバ１２で受信されて送受信バッファ１４に格納される。伝送制御部１６では、送受信バッファ１４にデータが格納されたことを検出すると、ステップＳ１からステップＳ２に移行し、この受信データの送信元局が局Ａであることを認識し、伝送側共有メモリである１０ｂの、局Ａ専用のメモリ領域に格納する。
【００４０】
そして、ステップＳ３に移行して、局Ａを受信局管理テーブル２０の今回用テーブル２０NOW に登録する。そして、トークンも上位層インタフェース１８からの切換要求も受信しないときには、そのままステップＳ１に戻る。
そして、前記局Ａに続き、局Ｂ、局ＣからのデータＢ2 、Ｃ2 を受信すると、これらデータは、上記と同様にして、ドライバ／レシーバ１２から送受信バッファ１４に格納され、伝送制御部１６では、これら受信データを共有メモリ１０ｂの局Ｂ及び局Ｃ専用のメモリ領域に格納する。さらに、局Ｂ及び局Ｃを受信局管理テーブル２０の今回用テーブル２０NOW に登録する（ステップＳ３）。
【００４１】
これによって、伝送側共有メモリ１０ｂには、データＡ2 、Ｂ2 、Ｃ2 及び自局のデータＤが格納されることになり、また、今回用テーブル２０NOW には、局Ａ、Ｂ、Ｃが登録されることになる。
この状態で時点ｔ7 でトークンを受信すると、このトークンが前回共有メモリを切り換えた後、各局を一巡しているかどうかを判定する。そして、トークンが各局を一巡していると、ステップＳ４からステップＳ５に移行し、受信局管理テーブル２０の管理情報をもとに、受信局管理テーブル２０の先回用テーブル２０OLD には登録され、今回用テーブル２０NOW には登録されていない非連続受信局を特定する。
【００４２】
この場合、時点ｔ3 では、先回用テーブル２０OLD 及び今回用テーブル２０NOW にはそれぞれ局Ａ、Ｂ、Ｃが登録されているから、非連続受信局はない。
よって、非連続受信局がないから、メモリデータのコピーは行わず、フラグＦをＦ＝１に設定する。
そして、時点ｔ4 で、例えば上位層インタフェース１８が上位層側共有メモリ１０ａの自局のメモリ領域に送信データの書き込みを行い、これを他局あてに送信するために共有メモリの切換要求を伝送制御部１６に通知すると、伝送制御部１６では、これをうけてステップＳ７からステップＳ８に移行する。
【００４３】
このとき、フラグＦはＦ＝１であるから、ステップＳ８からステップＳ１０に移行し、共有メモリの切り換えを行い、以後、共有メモリ１０ａを伝送側共有メモリとしてこれに対してアクセスを行う。そして、フラグＦをＦ＝０にリセットし、切り換えが終了したことを上位層インタフェース１８に通知する。また、今回用テーブル２０NOW の情報を先回用テーブル２０OLD にコピーし、今回用テーブル２０NOW をクリアにする。
【００４４】
この切り換え完了通知が行われた時点で、上位層インタフェース１８では、上位層側共有メモリ１０ｂへのアクセスが開始可能となり、時点ｔ2 で受信した他局からのデータＡ2 、Ｂ2 、Ｃ2 を取り込むことが可能となる。
この状態から、時点ｔ5 で局Ａ及びＢからデータＡ3 及びＢ3 が送信されると、伝送制御部１６ではこれらデータを上記と同様にして伝送側共有メモリ１０ａに書き込み、今回用テーブル２０NOW に局Ａ及びＢを登録する。
【００４５】
そして、時点ｔ6 でトークンを受信し、これが時点ｔ4 での切り換え後各局を一巡しているときには、ステップＳ４からステップＳ５に移行して受信局管理テーブル２０をもとに非連続受信局を特定する。この場合、先回用テーブル２０OLD には局Ａ、Ｂ、Ｃが登録され、今回用テーブル２０NOW には局Ａ及びＢのみが登録され、局Ｃは登録されていないから、局Ｃが非連続受信局として特定される。
【００４６】
したがって、ステップＳ６の処理で、上位層側共有メモリ１０ｂの局ＣのメモリデータＣ2 を、伝送側共有メモリ１０ａの局Ｃのメモリ領域にコピーする。そして、フラグＦをＦ＝１に設定する。
これによって、伝送側共有メモリ１０ａの局Ｃには、伝送データＣ1 に代えて伝送データＣ2 が格納されることになる。よって、伝送側共有メモリ１０ａには、各局Ａ、Ｂ、Ｃからの受信データのうち、最新のデータが格納されていることになる。
【００４７】
つまり、時点ｔ6 でトークンを受信した時点では、次に上位層側共有メモリとなる共有メモリ１０ａには、時点ｔ4 から時点ｔ6 までの間に受信したデータＡ3 、Ｂ3 が格納されるが、時点ｔ4 で切り換える前に受信したデータＡ2 、Ｂ2 、Ｃ2 は時点ｔ2 に示すように共有メモリ１０ｂに格納されるため共有メモリ１０ａには格納されない。
【００４８】
したがって、局Ｃのように、前回切り換えを行って以後次に切り換えを行うまでの間（以後、今周期という。）に新たにデータを受信しなかった局については、そのメモリデータとして、前々回切り換えを行ってから前回切り換えを行うまでの間（以後、先周期という。）に受信したデータ、或いはそれよりも前に受信したデータが格納されている。
【００４９】
ここで、今周期だけでなく先周期においてもデータを受信しなかった局の場合には、現在伝送側共有メモリとして作動している共有メモリ１０ａは、先周期では上位層側共有メモリとして作動し、先周期よりも一つ前の周期においては伝送側共有メモリとして作動しているから、この共有メモリ１０ａに格納されたデータが最新の受信データとなる。
【００５０】
ところが、先周期ではデータを受信したが、今周期ではデータを受信していない局、つまり非連続受信局の場合、先周期に受信したデータがその局からの最新データとなるが、先周期で受信したデータは上位層側共有メモリに格納されている。したがって、時点ｔ6 で、非連続受信局に対応するメモリデータを上位層側共有メモリから伝送側共有メモリにコピーすることによって、最新の受信データが伝送側共有メモリに格納されることになる。
【００５１】
続いて、この状態から、図４に示すように時点ｔ7 で上位層インタフェース１８から切換要求が行われると、ステップＳ７からステップＳ８を経てステップＳ１０に移行し、共有メモリの切り換えが行われて、上位層側共有メモリが１０ａとなり、伝送側共有メモリが１０ｂとなる。このとき、共有メモリ１０ａには、各局Ａ、Ｂ、Ｃからの最新の受信データが格納されているから、上位層側共有メモリには、最新の受信データが格納されていることになる。
【００５２】
そして、受信局管理テーブル２０の更新を行い、これによって、先回用テーブル２０NOW には局Ａ及びＢが登録される。
続いて、時点ｔ8 でデータＡ4 、Ｂ4 、Ｃ4 を受信すると、上記と同様にしてこれらを伝送側共有メモリ１０ｂに格納し、さらに今回用テーブル２０NOW に登録する。そして、時点ｔ9 でトークンを受信しこれが前回切り換え後各局を一巡しているときには、非連続受信局を特定するが、この場合、該当する局はないから、共有メモリ間でのコピーは行わず、フラグをＦ＝１に設定する。
【００５３】
そして、時点ｔ10でデータＡ5 、Ｂ5 を受信し、これを伝送側共有メモリ１０ｂに格納し、さらに今回用テーブル２０NOW に登録した状態で、時点ｔ11で切換要求が通知されると、フラグＦがＦ＝１であるから、ステップＳ７からステップＳ８を経てステップＳ１０に移行し、共有メモリの切り換えを行う。
このように、前々回の切り換えから前回の切り換えまでの間である先周期ではデータを受信したが、前回の切り換え以後の今周期ではデータを受信しない局については、そのメモリデータを上位層側共有メモリから伝送側共有メモリにコピーするようにしたから、通信異常等の何らかによって今周期でデータを受信しない局があっても、各局からの最新のデータを伝送側共有メモリに格納することができ、この状態で共有メモリの切り換えを行うから、すなわち、上位層インタフェース１８は各局からの最新のデータを取り込むことができる。
【００５４】
また、このとき、従来のように、全てのメモリデータをコピーしなくてよいから、メモリデータのコピーに要する所要時間を短縮することができ、すなわち、システムの伝送効率を向上させることができる。
また、前回の切り換え後、トークンが各局を一巡した後に、共有メモリ間でのコピーを行うようにしている。ここで、トークンが各局を一巡すれば、各局からデータを受信することになりこれによって伝送側共有メモリのデータは更新されることになる。よって、トークンが各局を一巡した後に非連続受信局を特定することによって、不必要なコピーを行うことを回避し、的確なタイミングでコピーを行うことができる。よって、コピーに要する処理時間をより削減することができる。
【００５５】
次に、本発明の第２の実施の形態を説明する。
この第２の実施の形態は、上記第１の実施の形態において、伝送制御部１６での共有メモリの切換処理手順が異なること以外は同一であるので、その詳細な説明は省略する。
図４は、第２の実施の形態における伝送制御部１６の共有メモリの切換処理手順の一例を示すフローチャートである。
【００５６】
伝送制御部１６では、まずステップＳ２１で、他局からデータを受信したかどうかを判定し、データを受信したときにはステップＳ２２に移行する。そして、送受信バッファ１４の受信データを伝送側共有メモリに転送する。
次いで、ステップＳ２３に移行し、受信局を受信局管理テーブル２０の今回用テーブル２０NOW に登録する。次いでステップＳ２４に移行し、前回切り換えを行ってからトークンが各局を一巡していない状態であるかどうかを判定する。そして、まだ一巡していないときには、ステップＳ２５に移行する。
【００５７】
このステップＳ２５では、受信局管理テーブル２０の先回用テーブル２０NOW 及び今回用テーブル２０OLD をもとに、ステップＳ２１でデータを受信した受信局と、予め記憶している、ステップＳ２１の時点よりも一つ前の時点でデータを受信した受信局との間に、トークンの回り順、例えばＡ、Ｂ、Ｃ、Ｄ、Ａ、……といった順からいけばデータを受信すべき局であり、且つ先回用テーブル２０OLD に登録されている局があるかどうかを判定する。
【００５８】
つまり、例えば、今回局Ｃからデータを受信しこの前には局Ａからデータを受信している場合には、本来ならば局Ｃの前に局Ｂからデータを受信すべきであるから、この局Ｂが受信すべき局と特定される。そして、この特定局について、上位層側共有メモリのデータを伝送側共有メモリの該当する領域にコピーする。そして、ステップＳ２６に移行する。なお、このステップＳ２５の処理が非受信局検出手段及び複写手段に対応している。
【００５９】
一方、前記ステップＳ２４で、トークンがすでに一巡している場合には、そのままステップＳ２６に移行する。
このステップＳ２６では、前回の切り換え後トークンが各局を一巡したかどうかを判定する。そして、一巡しているときにはステップＳ２７に移行してフラグをＦ＝１に設定した後ステップＳ２８に移行する。
【００６０】
一方、ステップＳ２６で前回切り換え後トークンが各局を一巡していないときにはそのままステップＳ２８に移行する。また、前記ステップＳ２１で他局からデータを受信していないときにもステップＳ２８に移行する。
このステップＳ２８では、上位層側インタフェース１８から切換要求を受信したかどうかを判定し、切換要求を受信したときにはステップＳ２９に移行し、切換要求を受信していないときにはそのままステップＳ２１に戻る。
【００６１】
前記ステップＳ２９ではフラグがＦ＝１であるかどうかを判定し、フラグがＦ＝１でないときにはステップＳ３０に移行し、上位層側インタフェース１８に対して、切り換え不可であることを通知しステップＳ２１に戻る。
一方、前記ステップＳ２９でフラグがＦ＝１であるときにはステップＳ３１に移行し、上記第１の実施の形態と同様にして共有メモリの切り換えを行い、フラグをＦ＝０にリセットし、上位層側インタフェース１８に対して切り換え完了通知を行う。さらに、受信局管理テーブル２０の今回用テーブル２０NOW のデータを先回用テーブル２０OLD にコピーし、今回用テーブル２０NOW をクリアする。そして、ステップＳ２１に戻る。
【００６２】
次に、上記第２の実施の形態の動作を説明する。
今、図６に示すように、共有メモリ１０ａが上位層側共有メモリとして作動し、共有メモリ１０ｂが伝送側共有メモリとして作動し、時点ｔ21に示すように、共有メモリ１０ａには、局Ａ〜局Ｄのメモリデータとして、Ａ1 、Ｂ1 、Ｃ1 、Ｄが格納され、共有メモリ１０ｂには、局Ａ〜局ＤのメモリデータとしてＡ0 、Ｂ0 、Ｃ0 、Ｄが格納されている。また、受信局管理テーブル２０の今回用テーブル２０NOW はクリアされた状態であり、先回用テーブル２０OLD には局Ａ、Ｂ、Ｃが登録されている。
【００６３】
この状態から、時点ｔ22で局ＡからデータＡ2 を受信すると、伝送制御部１６では、ステップＳ２１からステップＳ２２に移行し、この受信データを伝送側共有メモリである１０ｂの、局Ａ専用のメモリ領域に格納する。次いで、ステップＳ２３に移行して、局Ａを受信局管理テーブル２０の今回用テーブル２０NOW に登録する。
【００６４】
このとき、前回切り換えを行った後、トークンが各局を一巡していない状態であるとすると、ステップＳ２４からステップＳ２５に移行する。そして、トークンの回り順が、Ａ、Ｂ、Ｃ、Ｄ、Ａ、……であるとすると、このパターンに基づいて、今回の受信局Ａと、これよりも一つ前の受信局、例えば局Ｃとの間に、データを受信すべき局があるかどうかを判定し、この場合、前回の受信局がＣであり今回の受信局がＡであるから、該当する局はない。よって、そのままステップＳ２６に移行する。
【００６５】
そして、トークンが前回共有メモリを切り換え後、各局を一巡していなければステップＳ２８に移行し、また、上位層側インタフェース１８からの切換要求も受信しないときには、そのままステップＳ２１に戻る。
そして、前記局Ａに続き、局Ｂ、局ＣからのデータＢ2 、Ｃ2 を受信すると、これらデータは、上記と同様にして、共有メモリ１０ｂの局Ｂ及び局Ｃ専用のメモリ領域に格納され、さらに、局Ｂ及び局Ｃは受信局管理テーブル２０の今回用テーブル２０NOW に登録される（ステップＳ２３）。
【００６６】
これによって、伝送側共有メモリ１０ｂには、データＡ2 、Ｂ2 、Ｃ2 及び自局のデータＤが格納されることになり、また、今回用テーブル２０NOW には、局Ａ、Ｂ、Ｃが登録されることになる。
このとき、トークンの回り順はＡ、Ｂ、Ｃであり、データＡ2 に続いて、データＢ2 、Ｃ2 を受信しているから、データを受信すべきであるのに受信しなかった局はない。よって、共有メモリ間のコピーは行われない。
【００６７】
この状態から、時点ｔ23でトークンが前回切り換え後、各局を一巡しているときには、ステップＳ２６からステップＳ２７に移行し、フラグＦをＦ＝１に設定する。
そして、時点ｔ24で、上位層インタフェース１８が切換要求を行うと、伝送制御部１６では、ステップＳ２８からステップＳ２９に移行し、このとき、フラグＦはＦ＝１であるから、ステップＳ３１に移行し、共有メモリの切り換えを行い、以後、共有メモリ１０ａを伝送側共有メモリとしてこれにアクセスを行う。そして、フラグＦをＦ＝０にリセットし、切り換えが終了したことを上位層インタフェース１８に通知する。そして、受信局管理テーブル２０を更新する。
【００６８】
この状態から、時点ｔ25で局ＡからデータＡ3 を受信した後、次に、局ＣからデータＣ3 を受信すると、伝送制御部１６では、これを伝送側共有メモリ１０ａに書き込み、今回用テーブル２０NOW に登録する。そして、時点ｔ24での切り換え後トークンがまだ一巡していないから、ステップＳ２４からステップＳ２５に移行する。そして、前回の受信局Ａと今回の受信局Ｃとの間に、本来ならば局Ｂからのデータを受信すべきであるが受信しておらず、また、この局Ｂは先回用テーブル２０OLD に登録されていることから、局ＢについてそのメモリデータＢ2 を上位層側共有メモリ１０ｂから伝送側共有メモリ１０ａにコピーする。
【００６９】
そして、図７に示すように時点ｔ26でトークンが一巡すると、ステップＳ２７に移行してフラグＦをＦ＝１に設定し、時点ｔ27で上位層側インタフェース１８から切換要求が通知されると、共有メモリの切り換えを行い、受信局管理テーブル２０を更新する。また、上位層インタフェース１８に切り換え完了通知を行い、また、フラグをＦ＝０にリセットする。
【００７０】
そして、続いて、時点ｔ28でデータＡ4 、Ｂ4 を受信すると、これらは伝送側共有メモリ１０ｂに格納され、また受信局管理テーブル２０に登録される。
そして、時点ｔ29で、局Ｃからのデータを受信せずに、時点ｔ27での切り換え後トークンが各局を一巡すると、フラグをＦ＝１に設定する。そして時点ｔ30で新たにデータＡ5 、Ｂ5 を受信すると、これらを伝送側共有メモリ１０ｂに格納するが、このとき、データＡ5 を受信した時点で、局Ｃからのデータを受信しないことを検出するから、局Ｃについて上位層側共有メモリ１０ａのメモリデータＣ3 を伝送側共有メモリ１０ｂにコピーする。
【００７１】
そして、データＢ5 を受信した後、時点ｔ31で切換要求を受信したときには、フラグがＦ＝１であるから、この時点で共有メモリの切り換えを行う。
この時点ｔ31の時点では、次に受信する局ＣからのデータＣ5 をまだ受信していないが、この時点では、フラグＦ＝１であり前回切り換え後、トークンが各局を一巡している。よって、伝送側共有メモリ１０ｂには、前回切り換え後、データを受信した局（局Ａ、Ｂ）については最新のデータが格納されていることになり、また、データを受信していない局（局Ｃ）については上位層側共有メモリのメモリデータをコピーしている。よって、時点ｔ31での切り換えの結果、上位層側共有メモリとなった共有メモリ１０ｂには時点ｔ31までに受信した他局からの最新のデータが格納されることになる。
【００７２】
したがって、この場合も、上記第１の実施の形態と同等の作用効果を得ることができる。
次に、本発明の第３の実施の形態を説明する。
この第３の実施の形態は、上記第１の実施の形態において、伝送制御部１６での共有メモリの切換処理手順が異なること以外は同一であるので、その詳細な説明は省略する。
【００７３】
図８は、第３の実施の形態における伝送制御部１６の共有メモリの切換処理手順の一例を示すフローチャートである。
伝送制御部１６では、まずステップＳ４１で、他局からデータを受信したかどうかを判定しデータを受信したときには、ステップＳ４２に移行し、送受信バッファ１４に格納された受信データを伝送側共有メモリの所定のメモリ領域に格納する。次いで、ステップＳ４３に移行し、データの受信局を受信局管理テーブル２０の今回用テーブル２０NOW に登録する。
【００７４】
次いでステップＳ４４に移行し、トークンが前回切り換えを行った後、各局を一巡したかどうかを判定する。そして、トークンが一巡しているときにはステップＳ４５に移行しフラグＦをＦ＝１に設定した後ステップＳ４６に移行する。
一方、ステップＳ４５でトークンが一巡していないときにはそのままステップＳ４６に移行する。
【００７５】
前記ステップＳ４６では、上位層インタフェース１８から切換要求が通知されたかどうかを判定し、切換要求が通知されないときにはそのままステップＳ４１に戻る。
一方、上位層インタフェース１８から切換要求が通知されたときには、ステップＳ４７に移行する。そして、フラグＦがＦ＝１であるかどうかを判定し、Ｆ＝１でないときにはステップＳ４８に移行し、上位層インタフェース１８に切り換え不可であることを通知した後、ステップＳ４１に戻る。
【００７６】
一方、ステップＳ４７でフラグＦがＦ＝１であるときには、ステップＳ４９に移行し、受信局管理テーブル２０で管理している管理情報をもとに、先回用テーブル２０OLD に登録され且つ今回用テーブル２０NOW に登録されていない局、つまり、非連続受信局を特定する。
そして、ステップＳ５０に移行し、ステップＳ４９で特定した非連続受信局について、上位層側共有メモリのメモリデータを伝送側共有メモリにコピーした後、ステップＳ５１に移行する。そして、上記と同様にして共有メモリの切り換えを行い、フラグをＦ＝０にリセットした後、上位層インタフェース１８に切り換え完了通知を行う。そして、今回用テーブル２０NOW の情報を先回用テーブル２０OLD にコピーし、今回用テーブル２０NOW をクリアにする。そして、ステップＳ４１に戻る。
【００７７】
次に、第３の実施の形態の動作を説明する。
今、Ａ、Ｂ、Ｃ、Ｄの４つの局によって、図１０に示すように構成されたネットワークシステムにおいて、データ伝送を行うものとする。
共有メモリ１０ａは上位層側共有メモリとして作動し、共有メモリ１０ｂは伝送側共有メモリとして作動し、共有メモリ１０ａには図９の時点ｔ41に示すように、それぞれ、局Ａ〜ＤのメモリデータとしてＡ1 、Ｂ1 、Ｃ1 、Ｄが格納され、共有メモリ１０ｂには、同様に、共有メモリ１０ｂにはメモリデータＡ0 、Ｂ0 、Ｃ0 、Ｄが格納されている。また、受信局管理テーブル２０の今回用テーブル２０NOW はクリア状態であり、先回用テーブル２０OLD には局Ａ、Ｂ、Ｃが登録されている。
【００７８】
この状態から、時点ｔ42で局ＡからのデータＡ2 を受信すると、上記と同様にして、局ＡからのデータＡ2 は伝送側共有メモリ１０ｂに格納され、また、受信局管理テーブル２０の今回用テーブル２０NOW に登録される。
そして、前回切り換え後トークンが一巡しておらず、上位層側インタフェース１８からの切換要求も受信しないときには、そのままステップＳ４１に戻る。
【００７９】
そして、前記局Ａに続き、局Ｂ、局ＣからのデータＢ2 、Ｃ2 を受信すると、これらデータは、上記と同様にして共有メモリ１０ｂに格納され、また、受信局管理テーブル２０の今回用テーブル２０NOW に登録される。これによって、伝送側共有メモリ１０ｂには、データＡ2 、Ｂ2 、Ｃ2 及び自局のデータＤが格納されることになり、また、今回用テーブル２０NOW には、局Ａ、Ｂ、Ｃが登録されることになる。
【００８０】
この状態から、時点ｔ43で前回切り換えを行った後、トークンが各局を一巡したならば、ステップＳ４４からステップＳ４５に移行し、フラグＦをＦ＝１に設定する。
そして、時点ｔ44で切換要求が通知されると、このときフラグＦはＦ＝１であるから、ステップＳ４６からステップＳ４７を経てステップＳ４９に移行し、受信局管理テーブル２０の管理情報をもとに、受信局管理テーブル２０の先回用テーブル２０OLD には登録され且つ今回用テーブル２０NOW には登録されていない非連続受信局を特定する。
【００８１】
この場合、先回用テーブル２０OLD 及び今回用テーブル２０NOW にはそれぞれ局Ａ、Ｂ、Ｃが登録されているから、非連続受信局はない。よって、非連続受信局がないから、ステップＳ５０でメモリデータのコピーは行わず、ステップＳ５１に移行して共有メモリを切り換える。これによって、共有メモリ１０ｂが上位層側共有メモリとなり、共有メモリ１０ａが伝送側共有メモリとなる。そして、今回用テーブル２０NOW のデータを先回用テーブル２０OLD にコピーし、今回用テーブル２０NOW をクリアにする。そして、切り換えが終了したことを上位層インタフェース１６に通知する。またフラグＦをＦ＝０にリセットする。
【００８２】
この状態から、時点ｔ45で局Ａ及びＢからデータＡ3 及びＢ3 が送信されると、これらデータは上記と同様にして、伝送側共有メモリ１０ａに書き込まれ、また、今回用テーブル２０NOW に、局Ａ及びＢが登録される。
そして、時点ｔ46で、局Ｃからのデータを受信しない状態でトークンが各局を一巡し、さらに、切換要求を受信すると、ステップＳ４５でフラグをＦ＝１に設定した後、ステップＳ４６、Ｓ４７を経てステップＳ４９に移行する。そして、この場合、先回用テーブル２０OLD には局Ａ、Ｂ、Ｃが登録され、今回用テーブル２０NOW には局Ａ及びＢのみが登録され、局Ｃは登録されていないから、局Ｃが非連続受信局として特定される。
【００８３】
したがって、ステップＳ５０の処理で、上位層側共有メモリ１０ｂの局ＣのメモリデータＣ2 を、伝送側共有メモリ１０ａの局Ｃのメモリ領域にコピーする。これによって、伝送側共有メモリ１０ａの局Ｃには、伝送データＣ1 に代えて伝送データＣ2 が格納されることになる。そして、コピー後、ステップＳ５１に移行して共有メモリ１０ａ及び１０ｂの切り換えを行う。そして、フラグＦをＦ＝０にリセットし、上位層インタフェース１８に切り換え完了通知を行い、受信局管理テーブル２０の今回用テーブル２０NOW 及び先回用テーブル２０OLD を更新する。
【００８４】
したがって、上位層側共有メモリ１０ａには、現時点における各局からの最新の受信データが格納されていることになる。
そして、時点ｔ47で再度局Ａ、Ｂ、Ｃからデータを受信すると、これらは伝送側共有メモリ１０ｂに格納され、今回用テーブル２０NOW には局Ａ、Ｂ、Ｃが登録され、以後、上記と同様にして処理が行われる。
【００８５】
このように、前々回の切り換え時点から前回の切り換え時の間に受信した局であって、前回の切り換え時から今回の切換要求を受信するまでの間に受信していない局については、上位層側共有メモリから伝送側共有メモリにそのメモリデータをコピーしてから、共有メモリの切り換えを行うようにしたから、上記と同様に、コピーをすることによって、伝送側共有メモリには、現時点までに受信した各局からのデータのうち最新のデータが格納されることになる。そして、この状態で切り換えを行うから、上位層側共有メモリには、各局からの最新のデータが格納されることになり、上記と同等の作用効果を得ることができる。
【００８６】
なお、上記実施の形態においては、４つの局Ａ〜Ｄを含んで構成されるシステムについて説明したがこれに限らず、４以下或いは４以上の局を含んで構成されるシステムであっても適用できることはいうまでもない。
【００８７】
【発明の効果】
以上説明したように、本発明の請求項１に係るデータ伝送制御装置によれば、共有メモリを最後に切り換えた後トークンが各局を一巡したときに、最後に切り換えた時点以後データを受信してないがそれよりも前にはデータを受信している局について、上位層のアクセス先の共有メモリから該当するメモリデータを伝送制御部のアクセス先の共有メモリに複写し、その後、切換要求が行われたとき切り換えを行うようにしたから、必要最小限のメモリデータのみを複写することができ、システムの伝送効率を向上させることができる。
【００８８】
また、請求項２に係るデータ伝送制御装置によれば、共有メモリを最後に切り換えた後トークンが各局を一巡するまでの間は、データ受信時に、このデータの送信元局よりも先にデータを受信すべき送信元局について、上位層のアクセス先の共有メモリのメモリデータを伝送制御部のアクセス先の共有メモリに逐次複写し、トークンが各局を一巡した後切換要求が行われたときに切り換えを行うようにしたから、必要最小限のメモリデータのみを複写することができ、システムの伝送効率を向上させることができる。
【００８９】
さらに、本発明の請求項３に係るデータ伝送制御装置によれば、共有メモリを最後に切り換えた後トークンが各局を一巡し且つ切換要求を受信したときに、最後に切り換えた時点以後データを受信していないがそれよりも前にはデータを受信している局つまりそのデータが上位層のアクセス先の共有メモリに格納されている局について、上位層のアクセス先の共有メモリから該当するメモリデータを伝送制御部のアクセス先の共有メモリに複写し、その後共有メモリを切り換えるようにしたから、必要最小限のメモリデータのみを複写することができ、システムの伝送効率を向上させることができる。
【図面の簡単な説明】
【図１】本発明におけるデータ伝送制御装置の一例を示す概略構成図である。
【図２】第１の実施の形態における共有メモリの切換処理手順の一例を示すフローチャートである。
【図３】第１の実施の形態の動作を説明するタイミングチャートである。
【図４】図３の続きである。
【図５】第２の実施の形態における共有メモリの切換処理手順の一例を示すフローチャートである。
【図６】第２の実施の形態の動作を説明するタイミングチャートである。
【図７】図６の続きである。
【図８】第３の実施の形態における共有メモリの切換処理手順の一例を示すフローチャートである。
【図９】第３の実施の形態の動作を説明するタイミングチャートである。
【図１０】本発明を適用したネットワークシステムの一例である。
【図１１】従来のデータ伝送制御装置の一例を示す概略構成図である。
【図１２】従来の動作説明に供するタイミングチャートである。
【符号の説明】
１０ａ、１０ｂ  共有メモリ
１２  ドライバー／レシーバ
１４  送受信バッファ
１６  伝送制御部
１８  上位層インタフェース
２０  受信局管理テーブル
２０NOW   今回用テーブル
２０OLD   先回用テーブル
１００  データ伝送制御装置
【図１】
0004154855.tif 000002
【図２】
0004154855.tif 000003
【図３】
0004154855.tif 000004
【図４】
0004154855.tif 000005
【図５】
0004154855.tif 000006
【図６】
0004154855.tif 000007
【図７】
0004154855.tif 000008
【図８】
0004154855.tif 000009
【図９】
0004154855.tif 000010
【図１０】
0004154855.tif 000011
【図１１】
0004154855.tif 000012
【図１２】
0004154855.tif 000013