(57)【要約】【課題】Ｉｓｏｃｈｒｏｎｏｕｓ転送におけるサイクル内のＩｓｏｃｈｒｏｎｏｕｓパケットの並びをスケジューリングできるようにして、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間を一定にする。【解決手段】ＩＲＭへのＬｏｃｋトランザクションをＩｓｏｃｈｒｏｎｏｕｓ対応の全ノードが常に監視し、Ｌｏｃｋトランザクションの内容によってＩｓｏｃｈｒｏｎｏｕｓ転送のタイミングを調整する。【選択図】    図１
2004254146.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ１３９４シリアルバスにＩｓｏｃｈｒｏｎｏｕｓ転送機能とＩｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）機能を備えたＩＥＥＥ１３９４通信装置がネットワークに信号を転送するときのＩｓｏｃｈｒｏｎｏｕｓ転送方法において、
ＩＲＭへのＬｏｃｋトランザクションをＩｓｏｃｈｒｏｎｏｕｓ対応の全ノードが常に監視し、
前記Ｌｏｃｋトランザクションの内容によってＩｓｏｃｈｒｏｎｏｕｓ転送のタイミングを調整する
ことを特徴とするＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法。
【請求項２】
前記ＬｏｃｋトランザクションがＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスである場合は、各ノードは確保された帯域幅とｃｈａｎｎｅｌの値を用いて、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間を計算して保存し、
前記ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスがあるたびに前記計算と保存を繰り返し、
自ノードが帯域幅とｃｈａｎｎｅｌを獲得した時点での前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間だけサイクルスタートから遅らせて自ノードのＩｓｏｃｈｒｏｎｏｕｓパケットの送信をする、
という手順で処理することを特徴とする請求項１に記載のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法。
【請求項３】
前記Ｉｓｏｃｈｒｏｎｏｕｓ転送方法における受信ノードでは、全Ｉｓｏｃｈｒｏｎｏｕｓパケットのｃｈａｎｎｅｌフィールドを読まずに、何番目に来たか調べるだけで受信すべきＩｓｏｃｈｒｏｎｏｕｓパケットを判別して読み込むことを特徴とする請求項２に記載のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データを同期転送するＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法に関する。
【０００２】
【従来の技術】
従来のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送は、ＩＥＥＥ１３９４規格（非特許文献１参照）によれば、Ｉｓｏｃｈｒｏｎｏｕｓ転送対応ノードはＩＲＭに対して帯域幅とｃｈａｎｎｅｌの割り当てを要求して獲得し、データ送信時にアービトレーションを行い、バス使用の権利を獲得したノードが送信するようになっている。バスに流れるＩｓｏｃｈｒｏｎｏｕｓパケットの順番はノードがバス使用の権利を獲得した順に並ぶことになるので、サイクルごとに変わる。また、Ｉｓｏｃｈｒｏｎｏｕｓパケット送信の順序はｃｈａｎｎｅｌ番号には関連しない。
【０００３】
【非特許文献１】
ＩＥＥＥ  Ｓｔｄ  １３９４−１９９５，  ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｅｒｉａｌ  Ｂｕｓ
【０００４】
図８のようにＩＥＥＥ１３９４通信機器Ａ８１、ＩＥＥＥ１３９４通信機器Ｂ８２、ＩＥＥＥ１３９４通信機器Ｃ８３の３台がＩＥＥＥ１３９４ケーブル８６で接続されているとする。バスリセット後にノードＩＤはそれぞれ、ＩＥＥＥ１３９４通信機器Ａ８１がノード０、ＩＥＥＥ１３９４通信機器Ｂ８２がノード２、ＩＥＥＥ１３９４通信機器Ｃ８３がノード１になっている。また、ＩＥＥＥ１３９４通信機器Ｂ８２がＩＲＭ８４とＣｙｃｌｅ  Ｍａｓｔｅｒ（ＣＭ）８５になっており、ＩＥＥＥ１３９４規格（非特許文献１参照）に定められたＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを備えている。ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥの各レジスタを通して、帯域幅とｃｈａｎｎｅｌからなるＩｓｏｃｈｒｏｎｏｕｓリソースを管理する。
【０００５】
図９は従来の方法によるサイクルの構成図である。図１０から図１２は従来の方法を用いてＩｓｏｃｈｒｏｎｏｕｓパケットを送信する処理手順を示すフローチャートである。この図を用いて、以下、従来の方法を順を追って説明する。
図１０において、バスリセット後にＩＲＭ、ＣＭが決定すると、各Ｉｓｏｃｈｒｏｎｏｕｓ対応ノードがＩＲＭへＬｏｃｋトランザクションで帯域幅とｃｈａｎｎｅｌの割り当ての要求をする。その帯域幅とｃｈａｎｎｅｌの割り当ての要求は、ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを読み込み、読み込んだレジスタ値をａｒｇ＿ｖａｌｕｅに指定し、希望の帯域幅をｄａｔａ＿ｖａｌｕｅに指定し、拡張トランザクションコードにｃｏｍｐａｒｅ＿ｓｗａｐを指定してＩＲＭノードへＬｏｃｋリクエストを送信することで行われる。ＩＲＭからのＬｏｃｋ応答のｒｃｏｄｅがｒｅｓｐ＿ｃｏｍｐｌｅｔｅであれば帯域幅とｃｈａｎｎｅｌの獲得に成功したことになる。図１０ではまずノード１が帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｌとｃｈａｎｎｅｌ４（ｃｈ４）を獲得する。次にノード０が帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｍとｃｈａｎｎｅｌ２（ｃｈ２）を獲得する。
【０００６】
そして図１１は図１０のつづきであり、ノード２が帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｎとｃｈａｎｎｅｌ３（ｃｈ３）を獲得する。図１２は図１１のづづきであり、Ｉｓｏｃｈｒｏｎｏｕｓ送信したいノードがサイクルスタート後に一斉に送信要求を出す。バスは各サイクルにおいてアービトレーションを行い、バスの使用権を獲得したノードからＩｓｏｃｈｒｏｎｏｕｓパケットを送信することができる。送信したいノードがなくなるまでアービトレーションを行い、バスの使用権を獲得したノードが送信する。結果としてサイクルの構造は図９のようになり、バスに流れるＩｓｏｃｈｒｏｎｏｕｓパケットの順番は、サイクルごとに変わる。
【０００７】
図１３は従来の受信側ノードにおけるＩｓｏｃｈｒｏｎｏｕｓパケット受信を示す図である。図１３で伝送路１３３からのＩｓｏｃｈｒｏｎｏｕｓパケットがＩｓｏｃｈｒｏｎｏｕｓ受信バッファ１３１に入り、受信ノード１３２はＩｓｏｃｈｒｏｎｏｕｓ受信バッファ１３１からＩｓｏｃｈｒｏｎｏｕｓパケットを読み出す。このとき、Ｉｓｏｃｈｒｏｎｏｕｓパケットの順番はサイクルによって変わってＩｓｏｃｈｒｏｎｏｕｓ受信バッファ１３１に入ってくるので、同じｃｈａｎｎｅｌのパケットが次に来るまでのパケット数は一定ではない。受信ノードがｃｈ２のＩｓｏｃｈｒｏｎｏｕｓパケットを受信したい場合は、Ｉｓｏｃｈｒｏｎｏｕｓパケットのヘッダにあるｃｈａｎｎｅｌフィールドの値を読めば受信したいｃｈ２のＩｓｏｃｈｒｏｎｏｕｓパケットであることがわかる。
【０００８】
図１４は従来の受信側ノードにおけるＩｓｏｃｈｒｏｎｏｕｓパケットの受信手順を示したフローチャートである。受信ノードがＩｓｏｃｈｒｏｎｏｕｓパケットのヘッダにあるｃｈａｎｎｅｌフィールドの値を読み、受信したいＩｓｏｃｈｒｏｎｏｕｓパケットであれば読み込み、それ以外は破棄する。
このように、従来のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法では、各Ｉｓｏｃｈｒｏｎｏｕｓサイクルにおいて、Ｉｓｏｃｈｒｏｎｏｕｓパケットを送信したいノードがアービトレーションでバスの使用権を獲得して、獲得したノードから送信する、という手順がとられていた。
【０００９】
【発明が解決しようとする課題】
しかしながら、従来のＩｓｏｃｈｒｏｎｏｕｓ転送方法では、Ｉｓｏｃｈｒｏｎｏｕｓパケットを送信したいノードが各Ｉｓｏｃｈｒｏｎｏｕｓサイクルにおいてアービトレーションをして、バスの使用権を獲得したノードから送信をするので、バス上に流れるＩｓｏｃｈｒｏｎｏｕｓパケットの並び順はサイクルごとに変わり、サイクルの中でサイクルスタート後にどれだけの時間を空けて出るかをあらかじめ知ることはできないという問題と、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間が一定ではないという問題があった。
本発明はこのような様々な問題点に鑑みてなされたものであり、Ｉｓｏｃｈｒｏｎｏｕｓ転送におけるサイクル内のＩｓｏｃｈｒｏｎｏｕｓパケットの並びをスケジューリングできるようにして、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間を一定にすることができる方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記問題を解決するため、本発明は、ＩＥＥＥ１３９４シリアルバスにＩｓｏｃｈｒｏｎｏｕｓ転送機能とＩｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）機能を備えたＩＥＥＥ１３９４通信装置がネットワークに信号を転送するときのＩｓｏｃｈｒｏｎｏｕｓ転送方法において、ＩＲＭへのＬｏｃｋトランザクションをＩｓｏｃｈｒｏｎｏｕｓ対応の全ノードが常に監視し、前記Ｌｏｃｋトランザクションの内容によってＩｓｏｃｈｒｏｎｏｕｓ転送のタイミングを調整することを特徴とするものである。
また、ＬｏｃｋトランザクションがＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスである場合は、各ノードは確保された帯域幅とｃｈａｎｎｅｌの値を用いて、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間を計算して保存し、ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスがあるたびに計算と保存を繰り返し、自ノードが帯域幅とｃｈａｎｎｅｌを獲得した時点でのサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間だけサイクルスタートから遅らせて自ノードのＩｓｏｃｈｒｏｎｏｕｓパケットの送信をする、という手順で処理することを特徴とするものである。
さらに、Ｉｓｏｃｈｒｏｎｏｕｓ転送方法における受信ノードでは、全Ｉｓｏｃｈｒｏｎｏｕｓパケットのｃｈａｎｎｅｌフィールドを読まずに、何番目に来たか調べるだけで受信すべきＩｓｏｃｈｒｏｎｏｕｓパケットを判別して読み込むことを特徴とするものである。
このようになっているため、送信側は自ノードより先に確保された帯域幅とｃｈａｎｎｅｌから、先にバスが使用される時間を計算し、自ノードからの送信を前記計算した時間だけサイクルスタートから遅らせることによって、自ノードからの送信が他ノードからの送信と重なってアービトレーションで衝突するのを避けるようにＩｓｏｃｈｒｏｎｏｕｓ転送をスケジューリングすることができ、同じｃｈａｎｎｅｌのパケットが次に出るまでの時間を一定にすることができる。さらに受信側ノードでは全Ｉｓｏｃｈｒｏｎｏｕｓパケットのｃｈａｎｎｅｌフィールドを読まなくても必ず帯域幅とｃｈａｎｎｅｌを確保した順にバス上にＩｓｏｃｈｒｏｎｏｕｓパケットが流れることから何番目に来たＩｓｏｃｈｒｏｎｏｕｓパケットかを調べるだけで受信すべきＩｓｏｃｈｒｏｎｏｕｓパケットを判別することができる。
【００１１】
【発明の実施の形態】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。図８は、本発明の方法を実施するＩＥＥＥ１３９４通信装置からなるネットワークの構成図である。図８においてＩＥＥＥ１３９４通信装置Ａ８１、ＩＥＥＥ１３９４通信装置Ｂ８２、ＩＥＥＥ１３９４通信装置Ｃ８３がＩＥＥＥ１３９４ケーブル８６で接続されている。また８１、８２、８３はすべてＩｓｏｃｈｒｏｎｏｕｓ転送対応であり、ＩＥＥＥ１３９４通信装置Ｂ８２はＩＲＭ対応である。
他ノードのＩｓｏｃｈｒｏｎｏｕｓリソースの獲得状況を知るために、各ＩＥＥＥ１３９４通信装置はバス上に流れるＬｏｃｋトランザクションのパケットおよびＩｓｏｃｈｒｏｎｏｕｓパケットを全て読むことができるものとする。他ノードのＩＲＭに対するＬｏｃｋトランザクションを監視することで、どのノードがどれだけのリソースを獲得したかを、獲得した時点で知ることができる。
【００１２】
図１は本発明の方法によるサイクルの構成図である。図２から図５は本発明の方法を用いて帯域幅とｃｈａｎｎｅｌを獲得したノード順にＩｓｏｃｈｒｏｎｏｕｓパケットを送信する処理手順を示すフローチャートである。この図を用いて、  以下、本発明の方法を順を追って説明する。
はじめに図２でバスリセット後にノードＩＤが決定し、ＩＲＭとＣＭが決定する。ＩＥＥＥ１３９４通信装置Ａ８１はノード０、ＩＥＥＥ１３９４通信装置Ｂ８２はノード２、ＩＥＥＥ１３９４通信装置Ｃ８３はノード１に決定し、ＩＥＥＥ１３９４通信装置Ｂ（ノード２）８２がＩＲＭ、ＣＭに決定する。それぞれのノードは帯域幅とｃｈａｎｎｅｌからなるＩｓｏｃｈｒｏｎｏｕｓリソースを獲得する前に他ノードが獲得しているＩｓｏｃｈｒｏｎｏｕｓリソースの情報を持っており、ここで初期化する。次に、ノード１がＩＲＭに帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｌとｃｈａｎｎｅｌ４（ｃｈ４）を獲得する。要求は従来の方法と同じ方法で行われる。ただしここで、ノード０はノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する。そしてノード０はノード１が獲得した帯域幅とｃｈａｎｎｅｌの値から、ノード１がサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までに使用する時間を計算して保存する。また、同時にＩＲＭであるノード２は、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード１が獲得した帯域幅とｃｈａｎｎｅｌの値から、ノード１がサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までに使用する時間を計算して保存する。
【００１３】
図３は図２のつづきであり、ノード０がＩＲＭに帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｍとｃｈａｎｎｅｌ２（ｃｈ２）を獲得する。要求は従来の方法と同じ方法で行われる。ただしここで、ＩＲＭであるノード２は、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード０からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード０が獲得した帯域幅の値と、以前に保存していたノード１が獲得した帯域幅の値との合計から、ノード１とノード０がサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までに使用する時間を計算して保存し、ノード１とノード０が獲得したｃｈａｎｎｅｌの値も保存する。
【００１４】
図４は図３のつづきであり、ノード２がＩＲＭに帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｎとｃｈａｎｎｅｌ３（ｃｈ３）を獲得する。図５は図４のつづきであり、各ノードがＩｓｏｃｈｒｏｎｏｕｓパケットの送信を行う手順を示す。ノード１はｃｈ４を使い、サイクルスタート後すぐにＩｓｏｃｈｒｏｎｏｕｓパケットを送信する。このとき他ノードはサイクルスタート後すぐにはＩｓｏｃｈｒｏｎｏｕｓパケット送信を行わなず、送信しようとするのはノード１のみなので、ノード１がバスの使用権を獲得して送信する。ノード０は以前に保存していたノード１がサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までに使用する時間だけサイクルスタートから遅れた時点で、ｃｈ２を使い、Ｉｓｏｃｈｒｏｎｏｕｓパケットの送信を行う。このときノード１は送信を終えており、ノード２は送信を行っておらず、送信しようとするのはノード０のみなので、ノード０がバスの使用権を獲得して送信する。ノード２は以前に保存していたノード０とノード１がサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までに使用する時間だけサイクルスタートから遅れた時点で、ｃｈ３を使い、Ｉｓｏｃｈｒｏｎｏｕｓパケットの送信を行う。このときノード１とノード０は送信を終えており、送信しようとするのはノード２のみなので、ノード２がバスの使用権を獲得して送信する。このように、図１のように各ノードが、自ノードより先にＩｓｏｃｈｒｏｎｏｕｓリソースを獲得したノードの確保分だけサイクルスタートから遅らせてからＩｓｏｃｈｒｏｎｏｕｓパケットを送信するので、他のノードの送信タイミングと衝突せず、送信の順番が守られて、図１に示したサイクル構成のように常に同じ順番でＩｓｏｃｈｒｏｎｏｕｓパケットが流れるようになる。各サイクルにおけるそれぞれのｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットのサイクルスタートからの遅れも常に一定であるため、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間も一定になる。
【００１５】
図６は本発明の受信側ノードにおけるＩｓｏｃｈｒｏｎｏｕｓパケット受信を示す図である。図６で伝送路６３からのＩｓｏｃｈｒｏｎｏｕｓパケットがＩｓｏｃｈｒｏｎｏｕｓ受信バッファ６１に入り、受信ノード６２はＩｓｏｃｈｒｏｎｏｕｓ受信バッファ６１からＩｓｏｃｈｒｏｎｏｕｓパケットを読み出す。このとき、本発明の方法ではＩｓｏｃｈｒｏｎｏｕｓパケットは常に同じ順にＩｓｏｃｈｒｏｎｏｕｓ受信バッファに入ってくるので、同じｃｈａｎｎｅｌのパケットが次に来るまでのパケット数は一定である。図６において、受信ノードがｃｈ２のＩｓｏｃｈｒｏｎｏｕｓパケットを受信したい場合は、ｃｈ２のＩｓｏｃｈｒｏｎｏｕｓパケットが３パケットの間を空けて来ることがわかれば、その後は３パケットを数えるだけで次のｃｈ２のＩｓｏｃｈｒｏｎｏｕｓパケットであることがわかる。
【００１６】
図７は本発明の受信側ノードにおけるＩｓｏｃｈｒｏｎｏｕｓパケットの受信手順を示したフローチャートである。図７の処理は大きく二つに分けられる。一つ目は受信したいｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットを受信してから、次にまた同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが来るまでのパケット数をカウントして調べる処理であり、結果は変数ｂｔｗ＿ｒｃｖに保存される。二つ目は受信Ｉｓｏｃｈｒｏｎｏｕｓパケット数をｂｔｗ＿ｒｃｖだけ数えるだけで、受信したいｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットを判別して読み込む処理である。図７を順を追って説明する。まずＩｓｏｃｈｒｏｎｏｕｓ受信をスタートすると、受信したいｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが来る間隔を調べる処理を開始するためのフラグｃｏｕｎｔ＿ｆｌａｇを初期化し、受信Ｉｓｏｃｈｒｏｎｏｕｓパケット数のカウンタｎｕｍ＿ｐｋｔを初期化する。次にＩｓｏｃｈｒｏｎｏｕｓパケットを受信すると、ヘッダのｃｈａｎｎｅｌを読んで、自ノードが受信すべきＩｓｏｃｈｒｏｎｏｕｓパケットかどうかを判別する。受信しないｃｈａｎｎｅｌであればパケットは破棄して、パケット数カウンタｎｕｍ＿ｐｋｔをインクリメントする。受信するＩｓｏｃｈｒｏｎｏｕｓパケットであった場合はデータを読み込み、これまでのパケット数のカウンタ値＋１を受信ｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが来る間隔としてｂｔｗ＿ｒｃｖに保存し、パケット数カウンタｎｕｍ＿ｐｋｔをクリアし、ｃｏｕｎｔ＿ｆｌａｇを１にして次に同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが来るまでパケット数をカウントする。次に同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが来た場合はｃｏｕｎｔ＿ｆｌａｇが１になっているので、二つ目の処理に移る。二つ目の処理は、Ｉｓｏｃｈｒｏｎｏｕｓパケットを受信するとカウンタｎｕｍ＿ｐｋｔをインクリメントする。そしてｂｔｗ＿ｒｃｖの数だけカウントしていれば受信すべきＩｓｏｃｈｒｏｎｏｕｓパケットなので、カウンタｎｕｍ＿ｐｋｔをクリアするとともにデータを読み込む。
本発明の方法では、Ｉｓｏｃｈｒｏｎｏｕｓパケットは常に同じｃｈａｎｎｅｌの順番でバスに流れるので、受信したいｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケット間隔であるｂｔｗ＿ｒｃｖを一度知れば、後はそれだけで受信Ｉｓｏｃｈｒｏｎｏｕｓパケットを判別できるので、読み込み時の各ノードでの処理負荷を軽減することができる。
【００１７】
【発明の効果】
以上述べたように、本発明の方法によれば、ＩＥＥＥ１３９４シリアルバスに、Ｉｓｏｃｈｒｏｎｏｕｓ転送機能と、Ｉｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）機能とを備えた少なくともひとつのＩＥＥＥ１３９４通信装置が接続されているネットワークでのＩｓｏｃｈｒｏｎｏｕｓ転送方法において、ＩＲＭへのＬｏｃｋトランザクションをＩｓｏｃｈｒｏｎｏｕｓ対応の全ノードが常に監視し、Ｌｏｃｋトランザクションの内容によってＩｓｏｃｈｒｏｎｏｕｓ転送のタイミングを調整することにしているので、各ノードは他ノードが獲得したＩｓｏｃｈｒｏｎｏｕｓリソースについて、どのノードがどれだけのリソースを獲得したかを、獲得した時点で知ることができるという効果がある。
また、ＬｏｃｋトランザクションがＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスである場合は、各ノードは確保された帯域幅とｃｈａｎｎｅｌの値から、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間を計算して保存し、ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスがあるたびに計算と保存を繰り返し、自ノードが帯域幅とｃｈａｎｎｅｌを獲得した時点でのサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間だけサイクルスタートから遅らせて自ノードのＩｓｏｃｈｒｏｎｏｕｓパケットの送信をするという手順をとっているので、送信側は自ノードより先に確保された帯域幅とｃｈａｎｎｅｌから、先にバスが使用される時間を計算し、自ノードからの送信を計算した時間だけサイクルスタートから遅らせることによって、自ノードからの送信が他ノードからの送信と重なってアービトレーションで衝突するのを避けるようにＩｓｏｃｈｒｏｎｏｕｓ転送をスケジューリングすることができ、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット送信までの時間を一定にすることによって、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間が一定になるという効果がある。
さらに受信側ノードでは全Ｉｓｏｃｈｒｏｎｏｕｓパケットのｃｈａｎｎｅｌフィールドを読まなくても必ず帯域幅とｃｈａｎｎｅｌを確保した順にバス上にＩｓｏｃｈｒｏｎｏｕｓパケットが流れることから、何番目に来たＩｓｏｃｈｒｏｎｏｕｓパケットかを調べるだけで受信すべきＩｓｏｃｈｒｏｎｏｕｓパケットを判別できるようになるという効果もある。
【図面の簡単な説明】
【図１】本発明の方法を適用したＩｓｏｃｈｒｏｎｏｕｓサイクルの構成図
【図２】本発明の送信ノードの処理手順を示すフローチャート（その１）
【図３】本発明の送信ノードの処理手順を示すフローチャート（その２）
【図４】本発明の送信ノードの処理手順を示すフローチャート（その３）
【図５】本発明の送信ノードの処理手順を示すフローチャート（その４）
【図６】本発明の受信ノードのＩｓｏｃｈｒｏｎｏｕｓパケット受信を示す図
【図７】本発明の受信ノードの処理手順を示すフローチャート
【図８】ＩＥＥＥ１３９４通信装置からなるネットワークの構成例を示す図
【図９】従来の方法を適用したＩｓｏｃｈｒｏｎｏｕｓサイクルの構成図
【図１０】従来の方法の送信ノードの処理手順を示すフローチャート（その１）
【図１１】従来の方法の送信ノードの処理手順を示すフローチャート（その２）
【図１２】従来の方法の送信ノードの処理手順を示すフローチャート（その３）
【図１３】従来の方法の受信ノードのＩｓｏｃｈｒｏｎｏｕｓパケット受信を示す図
【図１４】従来の方法の受信ノードの処理手順を示すフローチャート
１１  サイクルスタートパケット
１２  ノード１がｃｈ４に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１３  ノード０がｃｈ２に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１４  ノード２がｃｈ３に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１５  ノード１が使用する、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間
１６  ノード１とノード０が使用する、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間
１７  ノード１におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング
１８  ノード０におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング
１９  ノード２におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング
６１  Ｉｓｏｃｈｒｏｎｏｕｓ受信バッファ
６２  受信ノード
６３  伝送路
８１  ＩＥＥＥ１３９４通信機器Ａ
８２  ＩＥＥＥ１３９４通信機器Ｂ
８３  ＩＥＥＥ１３９４通信機器Ｃ
８４  Ｉｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）
８５  Ｃｙｃｌｅ  Ｍａｓｔｅｒ（ＣＭ）
８６  ＩＥＥＥ１３９４ケーブル
１３１  Ｉｓｏｃｈｒｏｎｏｕｓ受信バッファ
１３２  受信ノード
１３３  伝送路
【図１】
2004254146.tif 000003
【図２】
2004254146.tif 000004
【図３】
2004254146.tif 000005
【図４】
2004254146.tif 000006
【図５】
2004254146.tif 000007
【図６】
2004254146.tif 000008
【図７】
2004254146.tif 000009
【図８】
2004254146.tif 000010
【図９】
2004254146.tif 000011
【図１０】
2004254146.tif 000012
【図１１】
2004254146.tif 000013
【図１２】
2004254146.tif 000014
【図１３】
2004254146.tif 000015
【図１４】
2004254146.tif 000016