(57)【要約】【課題】応答側のノードにおいて、ロックトランザクションの最初のトライでロックに失敗した場合には、同じ更新データのリトライでも再びロックを失敗させ、ＰＣＲの設定値が不正な値に書き換えられることを防ぐ。【解決手段】複数ノードがシリアルバスに接続されたシステムのロックトランザクションの応答側ノードにおいて、受信データからロックトランザクションを検出し（Ｓ１）、ロックトランザクションからバス使用制御用の各設定値データを検出し（Ｓ２）、各設定値が正当な値であるか否かを判断し（Ｓ３）、正当な値の場合には更新処理を実施して更新前の実データを含む応答データを生成し（Ｓ５）、正当な値ではない場合には更新処理は実施せず実データ中における所定フィールドのデータを変更した変更データを含む応答データを生成し（Ｓ８）、接続要求側ノードに送信する（Ｓ６）。【選択図】        図７
2004241891.tif 000002
【特許請求の範囲】
【請求項１】
複数ノードがシリアルバスに接続されたシステムで、接続要求側ノードから送信された指定アドレスに格納されたバス使用制御用のロック値を更新するロックトランザクション指示を受信した接続応答側ノードにおいて、
受信データから前記ロックトランザクション指示を検出するステップと、
検出されたロックトランザクション指示から、接続応答側ノードが現状で保持していると接続要求側ノードが予想するバス使用制御用の予想データ、その予想データに対応して実際に保持するバス使用制御用の実データが格納されている格納アドレス、および、その予想データに対応して更新される値である更新データを検出するステップと、
前記予想データと前記更新データとが、バス使用の制御における正当な値であるか否かを判断するステップと、
前記予想データおよび前記更新データとが前記正当な値である場合には、前記実データを含む応答データを接続要求側ノードに送信すると共に、前記更新データを用いて更新処理を実施するステップと、
前記予想データおよび前記更新データとが前記正当な値ではない場合には、前記実データ中における所定のフィールドのデータを変更して変更データを生成し、該変更データを含む応答データを接続要求側ノードに送信し、更新処理は実施しないステップと
を有することを特徴とする複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項２】
前記各データが前記正当な値であるか否かを判断するステップにおいて、
前記更新データについては、
前記実データに基づき、前記更新データが、バス使用の制御における規定値に適合するか否かを判断し、
前記予想データについては、
その予想データと前記実データとを比較して両データが同一であるか否かを判断し、
前記双方の判断が否でない場合に正当な値であると判断する
ことを特徴とする請求項１に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項３】
前記各設定値が前記正当な値であるか否かを判断するステップで、前記予想データと前記実データが同一でない場合には、
前記予想データおよび前記更新データとが前記正当な値ではない場合の処理ステップでは、
前記実データ中で、前記ロックトランザクション指示に基づく処理では送受信時に無視されるフィールドのデータを変更して変更データを生成し、該変更データを含む応答データを接続要求側ノードに送信する
ことを特徴とする請求項２に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項４】
前記各データが前記正当な値であるか否かを判断するステップで、前記予想データと前記実データが同一でない場合には、
前記実データから、送受信時に無視されるフィールドのデータから少なくとも１ビットを変更して前記変更データが生成される
ことを特徴とする請求項３に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項５】
前記各データが前記正当な値であるか否かを判断するステップで、前記予想データと前記実データが同一でない場合には、
前記実データから、送受信時に無視されるフィールドのデータの先頭１ビットを変更して前記変更データが生成される
ことを特徴とする請求項４に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項６】
前記シリアルデータ転送バスはＩＥＥＥ１３９４バスで、前記各ノードはＩＥＥＥ１３９４デジタルインターフェースを有し、そのインターフェース内に前記通信制御用の各データを格納する記憶部を有する場合で、さらに、前記バス使用制御用の各データが、データの入力あるいは出力を制御するために前記記憶部内に設けられる論理的なプラグの設定値である場合には、
前記各データが前記正当な値でない場合のステップでは、
前記記憶部に実際に設定されている論理的なプラグの設定値から、送受信時に無視されるフィールドのデータを変更して前記変更データが生成される
ことを特徴とする請求項１〜５の何れかに記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項７】
前記各データが前記正当な値でない場合のステップでは、
前記論理的なプラグの設定値から、オンラインかオフラインかを示すフィールドのビットを変更して前記変更データが生成される
ことを特徴とする請求項６に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項８】
前記各データが前記正当な値でない場合のステップでは、
前記論理的なプラグの設定値の最上位ビットがオンラインかオフラインかを示すフィールドのビットであり、該ビットが０の場合、該ビットを１にする演算により前記変更データが生成される
ことを特徴とする請求項７に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項９】
前記各データが前記正当な値でない場合のステップでは、
前記論理的なプラグの設定値が３２ビットの場合には、前記最上位ビットの０を１にする演算は、前記論理的なプラグの設定値に０ｘ８０００００００を論理和（ビットＯＲ）する演算である
ことを特徴とする請求項８に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項１０】
前記各データが前記正当な値でない場合のステップでは、
前記論理的なプラグの設定値の最上位ビットがオンラインかオフラインかを示すフィールドのビットであり、該ビットが０ではなく１である場合、該ビットを０にする演算により前記変更データが生成される
ことを特徴とする請求項７に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項１１】
前記各データが前記正当な値でない場合のステップでは、
前記論理的なプラグの設定値が３２ビットの場合には、前記最上位ビットの１を０にする演算は、前記論理的なプラグの設定値に０ｘ７ＦＦＦＦＦＦＦを論理積（ビットＡＮＤ）する演算である
ことを特徴とする請求項１０に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項１２】
前記各データが前記正当な値でない場合のステップでは、
前記変更データが、前記論理的なプラグの設定値から、将来の使用のために予約済みであるフィールドのビットを変更することにより生成される
ことを特徴とする請求項６に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項１３】
前記各データが前記正当な値でない場合のステップでは、
前記変更データが、前記予約済みであるフィールドのビットのうち、少なくとも１ビット以上のビットに対し、１を論理和（ビットＯＲ）することにより生成される
ことを特徴とする請求項１２に記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項１４】
前記各データが前記正当な値でない場合のステップで、さらに同一の接続要求側ノードからリトライのロックトランザクション指示を受信している場合、
変更データを生成する際に、前回のロックトランザクション指示による変更データで前記実データ中におけるデータを変更していたら、今回のロックトランザクション指示では前記実データを変更しないデータを変更データとして生成することを特徴とする請求項１〜１３の何れかに記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【請求項１５】
前記各データが前記正当な値でない場合のステップで、さらに同一の接続要求側ノードからリトライのロックトランザクション指示を受信している場合、
変更データを生成する際に、前回のロックトランザクション指示による変更データとは異なるように前記実データ中におけるデータを変更する
ことを特徴とする請求項１〜１３の何れかに記載の複数ノードがシリアルバスに接続されたシステムの通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明の通信方法は、シリアルバスに接続された複数のノードを有するシステムで、バス使用制御用に接続要求側ノードから送信されるロックトランザクション指示を受信した接続応答側ノードにおける処理方法に関し、特に、接続応答側ノードのＩＥＥＥ１３９４インターフェースで、ロックトランザクション指示に含まれたバス使用制御用の指定アドレスの設定値が正当でない場合の応答データを作成する際のデータの処理方法に関する。
【０００２】
【従来の技術】
ＩＥＥＥ１３９４バス（シリアルバス）に接続された複数のデジタルデータ処理装置（ノード）を有するシステムでは、各ノードは、ＩＥＥＥ１３９４デジタルインターフェースを有し、そのインターフェースを介してＩＥＥＥ１３９４バスに接続される。ＩＥＥＥ１３９４デジタルインターフェースは、バス使用制御用の論理的なプラグの設定値を記憶するプラグ・コントロール・レジスタ（以下、ＰＣＲと記載）を有する。各ノードは、記憶部であるＰＣＲに格納された設定値により、他のノードからの接続要求に対する可否を判断して応答データを接続要求元に送出する。
【０００３】
ＩＥＥＥ１３９４バスに接続されたあるノードが他のノードに接続を要求する場合、要求側のノードから応答側のノードに対して、現状の応答側のＰＣＲに格納されていると予想されるバス使用制御（ロック）用のデータの設定値（予想設定値：予想データ）およびその更新値（更新設定値：更新データ）を含むロックトランザクション指示が送出される。
【０００４】
応答側のノードでは、受信したロックトランザクション指示中の予想設定値およびその更新設定値について、ＩＥＥＥ１３９４等の規格上の設定範囲（適合範囲）および実際にＰＣＲに格納されているバス使用制御（ロック）用のデータの設定値（実設定値：実データ）等に基づいて正当な値であるか否かを判断し、正当な値であればＰＣＲに格納される値を更新設定値に書き換え、正当な値でなければＰＣＲに格納される値をそのまま残し、判断結果がいずれの場合にも元の実設定値を含む応答データを要求側ノードに送出する。
【０００５】
要求側のノードでは、受信した応答データの実設定値により、予想設定値と同一であれば設定値が更新されてロックが成功したことを認識し、予想設定値と同一でなければ設定値が更新されずロックが失敗したことを認識する。
【０００６】
ロックが失敗したことを認識した場合は、要求側のノードでは、受信した応答データの実設定値を現状の応答側のＰＣＲに格納されていると予想されるバス使用制御用のロック値データの設定値（予想設定値）としてリトライする（例えば、非特許文献１、２参照）。
【０００７】
【非特許文献１】
高性能シリアルバスに関するＩＥＥＥ規格
ＩＥＥＥ１３９４−１９９５  （３．５．２  ロックトランザクションサブコマンド）
【非特許文献２】
一般消費者向けオーディオ／ビデオ機器−デジタルインターフェース第一部一般
ＩＥＣ６１８８３−１  （第７章  ２節）
【０００８】
【発明が解決しようとする課題】
しかしながら、上記した従来のロックトランザクション指示に対する応答方法では、接続要求側ノードは、最初のトライ時にロックに失敗しても応答側のノードからＰＣＲに実際に格納された実設定値を受信することができるので、リトライ時には、その応答側のノードのＰＣＲに実際に格納されている実設定値を予想設定値として、ロックトランザクション指示を送出することができる。従って、その場合には、例え、更新設定値が不適当な設定値（但し、規格上は適合範囲内）であっても、当然ながら予想設定値が実設定値と一致するのでロックが成功する。すると、応答側のノードでは、その不適当な設定値を用いてＰＣＲに格納されている正当な実設定値を更新してしまうという問題があった。
【０００９】
また、応答側のノードでは、バス使用制御用の設定値が不適切な値になると、バス使用制御用の論理的なプラグの状態に不整合が生じる場合があるという問題があった。
【００１０】
本発明は、上述した課題を解消するためになされたもので、応答側のノードにおいて、ロックトランザクション指示の最初のトライ時にロックに失敗した場合には、同じ更新データのリトライに対しては再びロックを失敗させ、ＰＣＲの設定値が不正な値に書き換えられることを防ぐことができる通信方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上述した目的を達成するため、本発明に係る複数ノードがシリアルバスに接続されたシステムの通信方法では、複数ノードがシリアルバスに接続されたシステムで、接続要求側ノードから送信された指定アドレスに格納されたバス使用制御用のロック値データを更新するロックトランザクション指示を受信した接続応答側ノードにおいて、
受信データからロックトランザクション指示を検出するステップと、
検出されたロックトランザクション指示から、接続応答側ノードが現状で保持していると接続要求側ノードが予想するバス使用制御用の予想データ、その予想データに対応して実際に保持するバス使用制御用の実データが格納されている格納アドレス、および、その予想データに対応して更新される値である更新データを検出するステップと、
予想データと更新データとが、バス使用の制御における正当な値であるかを判断するステップと、
予想データおよび更新データとが正当な値である場合には、実データを含む応答データを接続要求側ノードに送信すると共に、更新データを用いて更新処理を実施するステップと、
予想データおよび更新データとが正当な値ではない場合には、実データ中における所定のフィールドのデータを変更して変更データを生成し、該変更データを含む応答データを接続要求側ノードに送信し、更新処理は実施しないステップとを有する。
【００１２】
【発明の実施の形態】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１であるシリアルバスに接続された複数のノードを有するシステムの構成例を示すブロック図である。
【００１４】
図１において、デジタル・テレビジョン受信機（ＤＴＶ）１は、ＩＥＥＥ１３９４規格に規定されたＩＥＥＥ１３９４デジタルインターフェースを有し、シリアルバスであるＩＥＥＥ１３９４バス５に接続されるＩＥＥＥ１３９４機器であり、ＩＥＥＥ１３９４バス・ネットワークにおける１つのノードである。また、デジタル・ビデオデッキ（ＤＶＨＳ）２〜４も、同様にＩＥＥＥ１３９４バス５に接続されるＩＥＥＥ１３９４機器であり、ＩＥＥＥ１３９４デジタルインターフェースを有するノードである。
【００１５】
ＩＥＥＥ１３９４バスに接続されたＩＥＥＥ１３９４機器の各ノード間では、任意のデジタルデータの送受信が可能であり、例えば、ＤＴＶ１とＤＶＨＳ２とでデジタル映像／音声データを転送することにより、デジタル番組の録画あるいは再生が可能になる。
【００１６】
図２は、図１の各ノードにおけるＩＥＥＥ１３９４デジタルインターフェースの論理的なプラグの概念を示すブロック図である。
【００１７】
図２において、ノード１とノード２の各ＩＥＥＥ１３９４デジタルインターフェース１１、１２のポート（不図示）には、ＩＥＥＥ１３９４バス５のケーブルがコネクタ等により物理的に接続されている。各ＩＥＥＥ１３９４デジタルインターフェース１１、１２は、通信制御用の各データを格納する記憶部であるプラグ・コントロール・レジスタ（ＰＣＲ）２１、２２を備えている。
【００１８】
ＩＥＥＥ１３９４バス５に接続された各ノード１、２のＰＣＲ２１、２２には、論理的な２種類のプラグの設定値が各々指定アドレスに割り当てられる。一方は入力側の論理プラグｉＰＣＲ３１、４２であり、デジタルデータの入力に関する情報が設定される。他方は出力側の論理プラグｏＰＣＲ３２、４１であり、デジタルデータの出力に関する情報が設定される。
【００１９】
各ノード１、２間でデジタルデータを送受信する場合、例えば、ノード１からノード２へデジタルデータを転送する場合、ノード１の出力側論理プラグｏＰＣＲ３２と、ノード２の入力側論理プラグｉＰＣＲ４２が論理的に接続されていなければならない。また、逆にノード２からノード１へデジタルデータを転送する場合は、ノード２の出力側プラグｏＰＣＲ４１と、ノード１の入力側プラグｉＰＣＲ３１が論理的に接続されていなければならない。
【００２０】
論理的な接続は、例えば、各ノード１、２のＰＣＲ２１、２２中で、接続チャンネルの値を不変としたり、所定のカウンタ値等を同一にすることで接続を実施したり継続することができる。
【００２１】
上記したＩＥＥＥ１３９４アドレス空間内にあるプラグ・コントロール・レジスタあるいは論理的なプラグについては、デジタルデータ機器間においてデジタルデータを転送する場合の手順を記述したＩＥＣ６１８８３−１（Ｃｏｎｓｕｍｅｒ  ａｕｄｉｏ／ｖｉｄｅｏ  ｅｑｕｉｐｍｅｎｔ  Ｄｉｇｉｔａｌ  ｉｎｔｅｒｆａｃｅ  Ｐａｒｔ１  Ｇｅｎｅｒａｌ）で規定されており、そのプラグに対してロックトランザクションの処理が実施される。
【００２２】
図３は、図２のＰＣＲ２１、２２における出力側論理プラグｏＰＣＲと入力側論理プラグｉＰＣＲの指定アドレスの概念的な配置およびその論理アドレスを示す図である。
【００２３】
ＩＥＥＥ１３９４／ＩＥＣ６１８８３−１規格では、ＰＣＲ２１、２２には、上記したようにそれぞれ出力側論理プラグｏＰＣＲ３２、４１と、入力側論理プラグｉＰＣＲ３１、４２が割り当てられるが、出力側論理プラグｏＰＣＲ３２、４１は、実際には３１個の割当枠（指定アドレス）を有し、図示した出力側論理プラグｏＰＣＲ［０］２１ｂ〜ｏＰＣＲ［３０］２１ｅから何れか１つの指定アドレスが割り当てられるものである。また、入力側論理プラグｉＰＣＲ３１、４２も３１個の割当枠（指定アドレス）を有し、図示した入力側論理プラグｉＰＣＲ［０］２１ｆ〜ｉＰＣＲ［３０］２１ｊから何れか１つの指定アドレスが割り当てられるものである。
【００２４】
本実施の形態では、例えば、出力側論理プラグｏＰＣＲ［０］２１ｂと、入力側論理プラグｉＰＣＲ［０］２１ｆが指定アドレスとして割り当てられた場合を説明するが、他の３０個のレジスタの何れかが指定アドレスとして割り当てられた場合の動作も同様となる。
【００２５】
図４は、出力側論理プラグｏＰＣＲに設定される値のビット単位の形式的な定義およびロックトランザクション時の動作の定義を示す図である。
【００２６】
図４（ａ）は、出力側論理プラグｏＰＣＲの形式的な設定値の定義を示し、図４（ｂ）は、出力側論理プラグｏＰＣＲの形式的な各定義における設定された各ビット数を示し、図４（ｃ）は、出力側論理プラグｏＰＣＲの各設定値のロックトランザクション時の動作の定義を示す。
【００２７】
図４（ａ）〜（ｃ）において、オンラインフィールド５１は、その出力側論理プラグがオンライン状態であるかオフライン状態であるかが（ａ）に示され、ビット数が１ビットであることが（ｂ）に示され、ロックトランザクションのこのフィールドの値は出力動作時には無視され元の値がそのまま保存されること６１（以下、単に無視と記載）が（ｃ）に示されている。同様に、同時接続カウンタフィールド５２は、ブロードキャスト接続があるかないかを示すフィールドで、１ビットあり、ロックトランザクションのこのフィールドは、正当な値であるという条件（条件付き）を満足する場合には出力動作時にロックトランザクション時にＰＣＲの値を書き換えること６２（以下、単に条件付き書き込みと記載）が示されている。
【００２８】
ポイント・ポイント接続カウンタフィールド５３は、接続されているノードの個数を示すフィールドで、６ビットであり、条件付き書き込み６２であることが示されている。予約済みフィールド５４は、将来に定義して使用するために予め確保（予約）されたフィールドであり、２ビットであり、無視６３であることが示されている。また、このフィールドの各ビットには０が設定される。チャンネル番号フィールド５５は、アイソクロナスデータを流す論理チャンネルを示すフィールドであり、６ビットであり、条件付き書き込み６４であることが示されている。データレートフィールド５６は、アイソクロナスデータを転送する速度を示すフィールドであり、２ビットであり、条件付き書き込み６４であることが示されている。オーバーヘッドＩＤフィールド５７は、帯域幅を表すパラメータであり、４ビットであり、条件付き書き込み６４であることが示されている。ペイロードフィールド５８は、帯域幅を表すパラメータであり、１０ビットであり、無視６５であることが示されている。
【００２９】
以上から、出力側論理プラグｏＰＣＲで、ロックトランザクション時に無視されるフィールドは、オンラインフィールド５１、予約済みフィールド５４、および、ペイロードフィールド５８の３つのフィールドであることがわかる。
【００３０】
図５は、入力側論理プラグｉＰＣＲに設定される値のビット単位の形式的な定義およびロックトランザクション時の動作の定義を示す図である。
【００３１】
図５（ａ）は、入力側論理プラグｉＰＣＲの形式的な設定値の定義を示し、図５（ｂ）は、入力側論理プラグｉＰＣＲの形式的な各定義における設定された各ビット数を示し、図５（ｃ）は、入力側論理プラグｉＰＣＲの各設定値のロックトランザクション時の動作の定義を示す。
【００３２】
図５（ａ）〜（ｃ）において、オンラインフィールド７１は、その入力側論理プラグがオンライン状態であるかオフライン状態であるかが示され、ビット数が１ビットであり、無視８１であることが示されている。同様に、同時接続カウンタフィールド７２は、ブロードキャスト接続があるかないかを示すフィールドで、１ビットあり、条件付き書き込み８２であることが示されている。
【００３３】
ポイント・ポイント接続カウンタフィールド７３は、接続されているノードの個数を示すフィールドで、６ビットであり、条件付き書き込み８２であることが示されている。予約済みフィールド７４は、将来に定義して使用するために予め確保（予約）されたフィールドであり、２ビットであり、無視８３であることが示されている。また、このフィールドの各ビットには０が設定される。チャンネル番号フィールド７５は、アイソクロナスデータを流す論理チャンネルを示すフィールドであり、６ビットであり、条件付き書き込み８４であることが示されている。予約済みフィールド７６は、将来に定義して使用するために予め確保（予約）されたフィールドであり、１６ビットであり、無視８５であることが示されている。
【００３４】
以上から、入力側論理プラグｉＰＣＲでロックトランザクション時に無視されるフィールドは、オンラインフィールド７１、予約済みフィールド７４、および、予約済みフィールド７６の３つのフィールドであることがわかる。
【００３５】
次に、本実施の形態の動作を説明するため、まず、ロックトランザクションの処理手順について説明する。
ロックトランザクションは、書き込みするためのパラメータとしてａｒｇ＿ｖａｌｕｅとｄａｔａ＿ｖａｌｕｅとｏｌｄ＿ｖａｌｕｅの３つの値を使用する。デジタルデータ機器のロックトランザクションでの書き込み方法は、通常ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ方式を使用する。
【００３６】
図６は、ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ方式を用いるロックトランザクションで、ロック値が不正である場合の従来の処理手順を本実施の形態との対比用として示したフローチャートである。
【００３７】
図６において、上部に示した１回目のロックトランザクションの処理手順では、ロックに失敗した場合を示し、下部に示した２回目（リトライ）のロックトランザクションでは、ロックに成功した場合を示す。また、以下の説明では、例えば、図２のノード１が図６の要求側ノードＡに対応し、図２のノード２が図６の応答側ノードＢに対応する場合とする。
【００３８】
要求側ノードＡでは、ロックトランザクションに先立ち、応答側ノードＢの第１のＰＣＲ値（１）の読み出しを要求する（ＳＡ０１）。その要求を受信した応答側ノードＢでは、例えば、出力側論理プラグｏＰＣＲ４１内の論理アドレス０ｘＦＦＦＦ  Ｆ０００  ０９０４で指定されるｏＰＣＲ［０］２１ｂに格納された第１のＰＣＲ値（１）を読み出し、その第１のＰＣＲ値（１）を要求側ノードＡに送信する（ＳＢ０１）。要求側ノードＡでは、受信した第１のＰＣＲ値（１）を、例えば、入力側論理プラグｉＰＣＲ３１内の論理アドレス０ｘＦＦＦＦ  Ｆ０００  ０９８４で指定されるｉＰＣＲ［０］２１ｇに保管する（Ａ０１）。
【００３９】
その後、応答側ノードＢでは、出力側論理プラグｏＰＣＲ４１内のｏＰＣＲ［０］２１ｂに格納された第１のＰＣＲ値（１）が、例えば、他のノードからのロックトランザクション等により、第２のＰＣＲ値（２）に変更されている（Ｂ０２）。
【００４０】
まず、要求側ノードＡでは、１回目のロックトランザクションが開始される。まず、要求側ノードＡは、入力側論理プラグｉＰＣＲ３１内のｉＰＣＲ［０］２１ｇに保管された第１のＰＣＲ値（１）を、応答側ノードＢ内の対応する指示アドレスに格納されていると予想する値であるａｒｇ＿ｖａｌｕｅ値（１）とし、その更新値をｄａｔａ＿ｖａｌｕｅ値（３）として、応答側ノードＢに対してロックトランザクション指示（ロック要求：ＳＡ０２）を送信する（Ａ０２）。
【００４１】
ロック要求を受けた応答側ノードＢは、受信したｄａｔａ＿ｖａｌｕｅ値（３）について、現在のステータスから次のステータスに変わる条件を確認することで正当性（正当か不正か）を判断する。また、ａｒｇ＿ｖａｌｕｅ値（１）については、出力側論理プラグｏＰＣＲ４１内のｏＰＣＲ［０］２１ｂに格納された第２のＰＣＲ値（２）と比較して同一であるかを確認することで正当性（正当か不正か）を判断する（Ｂ０３）。
【００４２】
次いで、応答側ノードＢは、ａｒｇ＿ｖａｌｕｅ値（１）が第２のＰＣＲ値（２）と不一致であることから、ロック値が不正であると判断し（Ｂ０４）、第２のＰＣＲ値（２）をｏｌｄ＿ｖａｌｕｅ値（２）として要求側ノードＡに送出し（ＳＢ０２）、第２のＰＣＲ値（２）をｄａｔａ＿ｖａｌｕｅ値（３）には書き換え（更新）しない（Ｂ０５）。
【００４３】
ｏｌｄ＿ｖａｌｕｅ値（２）を受信した要求側ノードＡでは、ｏｌｄ＿ｖａｌｕｅ値（２）とａｒｇ＿ｖａｌｕｅ値（１）とを比較し（Ａ０３）、両者の値が不一致であることを確認する（Ａ０４）ことで、ロックの失敗を認識し（Ａ０５）、ｏｌｄ＿ｖａｌｕｅ値（２）を入力側論理プラグｉＰＣＲ３１内の論理アドレス０ｘＦＦＦＦ  Ｆ０００  ０９８４で指定されるｉＰＣＲ［０］２１ｇに、第１のＰＣＲ値（１）に代えて第２のＰＣＲ値（２）として保管する（Ａ０６）。
【００４４】
次いで、要求側ノードＡでは、２回目（リトライ）のロックトランザクションが開始される。この場合も、要求側ノードＡは、入力側論理プラグｉＰＣＲ３１内のｉＰＣＲ［０］２１ｇに保管された第２のＰＣＲ値（２）を、応答側ノードＢ内の対応する指示アドレスに格納されていると予想する値であるａｒｇ＿ｖａｌｕｅ値（２）とし、その更新値をｄａｔａ＿ｖａｌｕｅ値（３）として、応答側ノードＢに対してロックトランザクション指示（ロック要求：ＳＡ０３）を送信する（Ａ０７）。
【００４５】
リトライのロック要求を受けた応答側ノードＢは、受信したｄａｔａ＿ｖａｌｕｅ値（３）について、現在のステータスから次のステータスに変わる条件、例えば、現在設定されているチャンネルの値が不変であるか、あるいは、設定されているカウンタの値が＋１かあるいは−１か等を確認することで正当性（正当か不正か）を判断する。また、ａｒｇ＿ｖａｌｕｅ値（２）については、出力側論理プラグｏＰＣＲ４１内のｏＰＣＲ［０］２１ｂに格納された第２のＰＣＲ値（２）と比較して同一であるかを確認することで正当性（正当か不正か）を判断する（Ｂ０６）。
【００４６】
次いで、応答側ノードＢは、ａｒｇ＿ｖａｌｕｅ値（２）が第２のＰＣＲ値（２）と同一であることから、ロック値が正当であると判断し（Ｂ０７）、第２のＰＣＲ値（２）をｏｌｄ＿ｖａｌｕｅ値（２）として要求側ノードＡに送出し（ＳＢ０３）、第２のＰＣＲ値（２）をｄａｔａ＿ｖａｌｕｅ値（３）に書き換える（更新）（Ｂ０８）。
【００４７】
ｏｌｄ＿ｖａｌｕｅ値（２）を受信した要求側ノードＡでは、ｏｌｄ＿ｖａｌｕｅ値（２）とａｒｇ＿ｖａｌｕｅ値（２）とを比較し（Ａ０８）、両者の値が同一（一致）することを確認する（Ａ０９）ことで、ロックの成功を認識する（Ａ１０）。
【００４８】
以上は、従来のロックトランザクションによる動作であり、この場合には、応答側ノードＢにおいて、例えば、ｄａｔａ＿ｖａｌｕｅ値（３）が、ステップＢ０３では正当と判断される範囲内であるが不正値である場合でも、リトライ時には正当な値と判断されてしまい、ＰＣＲ値をｄａｔａ＿ｖａｌｕｅ値には書き換えてしまう。そこで、本実施の形態では、応答側ノードＢにおける上記したステップＳＢ０２の処理内容を変更して、リトライ時でもａｒｇ＿ｖａｌｕｅ値とＰＣＲ値が異なるようにし、応答側ノードＢのＰＣＲ値がｄａｔａ＿ｖａｌｕｅ値に書き換えられないようにする。
【００４９】
図７は、図６の応答側ノードＢのステップＢ０３、Ｂ０４、および、ＳＢ０２、あるいは、ステップＢ０５、Ｂ０７、および、ＳＢ０３の概略の処理内容を示すフローチャートである。
【００５０】
応答側ノードＢでは、まず、受信したパケットから自ノードへのロックトランザクション指示（ロック要求）を検出し（Ｓ１）、そのロックトランザクション指示から、バスの使用を制御するための各種の設定値データを検出する（Ｓ２）。
【００５１】
次いで、応答側ノードＢでは、検出された各種の設定値データ（ａｒｇ＿ｖａｌｕｅ値およびｄａｔａ＿ｖａｌｕｅ値）について正当な値であるか否かを判断する（Ｓ３）。
【００５２】
各種の設定値データが正当な値である場合（Ｓ３：ＹＥＳ）には、ＰＣＲ値（実設定値）をｄａｔａ＿ｖａｌｕｅ値に置き換える更新処理を実施し（Ｓ４）、その更新前の実設定値を応答データに設定し（Ｓ５）、相手の要求側ノードＡに向けてロックトランザクション指示に対する応答データとして送信する（Ｓ６）。
【００５３】
一方、各種の設定値データが正当な値はない場合（Ｓ３：ＮＯ）には、ＰＣＲ値（実設定値）中からロックトランザクションでは無視されるフィールドのビットの内、少なくとも１ビットを変更して変更設定値を生成し（Ｓ７）、その変更設定値を応答データに設定し（Ｓ８）、相手の要求側ノードＡに向けてロックトランザクション指示に対する応答データとして送信する（Ｓ６）。
【００５４】
図８は、図７の応答側ノードがＩＥＥＥ１３９４機器である場合の処理内容を示すフローチャートである。
【００５５】
応答側ノードＢでは、まず、受信したパケットから自ノードへのロックトランザクション指示（ロック要求）を検出し（Ｓ１１）、そのロックトランザクション指示から、バスの使用を制御するための各種の設定値データであるａｒｇ＿ｖａｌｕｅ値（予想設定値）およびｄａｔａ＿ｖａｌｕｅ値（更新設定値）を検出する（Ｓ１２）。
【００５６】
次いで、応答側ノードＢでは、ＩＥＥＥ１３９４インターフェースの出力側論理プラグｏＰＣＲ内の指定アドレスに格納されたＰＣＲの値（実設定値）を読み出し（Ｓ１３）、ｄａｔａ＿ｖａｌｕｅ値（更新設定値）について、ＩＥＥＥ１３９４規定および実設定値とから、上記したように、現在のステータスから次のステータスに変わる条件、例えば、現在設定されているチャンネルの値が不変であるか、あるいは、設定されているカウンタの値が＋１かあるいは−１か等の内容を比較し（Ｓ１４）、検出されたｄａｔａ＿ｖａｌｕｅ値について正当な値であるか否かを判断する（Ｓ１５）。
【００５７】
ｄａｔａ＿ｖａｌｕｅ値が正当な値である場合（Ｓ１５：ＹＥＳ）には、さらに、ａｒｇ＿ｖａｌｕｅ値とＰＣＲの値（実設定値）とを比較し（Ｓ１６）、検出されたａｒｇ＿ｖａｌｕｅ値とＰＣＲの値（実設定値）が一致する（同一である）か否かを判断する（Ｓ１７）。
【００５８】
ａｒｇ＿ｖａｌｕｅ値とＰＣＲの値（実設定値）とが同一である場合（Ｓ１７：ＹＥＳ）には、ＰＣＲ値（実設定値）をｄａｔａ＿ｖａｌｕｅ値に置き換える更新処理を実施し（Ｓ１８）、その更新前の実設定値を応答データに設定し（Ｓ１９）、相手の要求側ノードＡに向けてロックトランザクション指示に対する応答データとして送信する（Ｓ２０）。
【００５９】
一方、ｄａｔａ＿ｖａｌｕｅ値が正当な値ではない場合（Ｓ１５：ＮＯ）には、ＰＣＲの値（実設定値）中からロックトランザクションでは無視されるフィールドのビットの内、少なくとも１ビットを変更して変更設定値を生成し（Ｓ２１）、その変更設定値をｏｌｄ＿ｖａｌｕｅ値として応答データに設定し（Ｓ２２）、相手の要求側ノードＡに向けてロックトランザクション指示に対する応答データとして送信する（Ｓ２０）。
【００６０】
図９は、図８のステップＳ２１の詳細な処理を示すフローチャートである。
【００６１】
応答側ノードＢでは、図４および図５に示したロックトランザクション時のＰＣＲの形式定義及び動作定義に基づいて、ＰＣＲの値（実設定値）から送受信時に無視されるフィールドを検出し（Ｓ３１）、当該フィールド中から予め決められた少なくとも１ビット以上の所定位置のビット値を検出する（Ｓ３２）。
【００６２】
検出された各ビット値について、そのビット値が０であるか否かを判断し（Ｓ３３）、ビット値が０である場合（Ｓ３３：ＹＥＳ）には、その所定位置のビット値を１にする演算により変更設定値を生成し（Ｓ３４）、ビット値が０でない場合（Ｓ３３：ＮＯ）には、ステップＳ３４とは逆に、その所定位置のビット値を０にする演算により変更設定値を生成する（Ｓ３５）。
【００６３】
図１０は、ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ方式を用いるロックトランザクションで、ロック値が不正である場合の本実施の形態の処理手順を示したフローチャートである。
【００６４】
従来の図６に対して、本実施の形態の図１０では、応答側ノードＢにおけるＳＢ１２の処理が異なり、第２のＰＣＲ値（２）の一部を変更し、その変更した値（４）をｏｌｄ＿ｖａｌｕｅ値として要求側ノードＡに送信して返すようにしている。
【００６５】
その結果、要求側ノードＡでは、ａｒｇ＿ｖａｌｕｅ値とｏｌｄ＿ｖａｌｕｅ値の不一致からロックの失敗を認識できる点は従来と同様であるが、従来のｏｌｄ＿ｖａｌｕｅ値（２）から一部が変更されたｏｌｄ＿ｖａｌｕｅ値（４）を応答側ノードのＰＣＲ値として保管する点が異なる。
【００６６】
そして２回目（リトライ）のロックトランザクションでは、要求側ノードＡでは、ｏｌｄ＿ｖａｌｕｅ値（４）をａｒｇ＿ｖａｌｕｅ値としてロック要求する（Ａ１７、ＳＡ１３）。
【００６７】
すると、応答側ノードＢでは、ａｒｇ＿ｖａｌｕｅ値（４）が第２のＰＣＲ値（２）と不一致であることから、ロック値が不正であると判断し（Ｂ１７）、第２のＰＣＲ値（２）の一部を変更し、その変更した値（４）をｏｌｄ＿ｖａｌｕｅ値として要求側ノードＡに送出し（ＳＢ１３）、第２のＰＣＲ値（２）をｄａｔａ＿ｖａｌｕｅ値（３）には書き換え（更新）しない（Ｂ１８）。以下、要求側ノードＡにおける処理は、図６に示した従来の処理と同様である。
【００６８】
このように本実施の形態では、ロックトランザクション指示を受けた応答側ノードＢにおいて、ロック値が不正であると判断した場合には、ＰＣＲに格納されていた設定値をそのまま要求側ノードＡに返すのではなく、ロックトランザクションでは無視されるフィールドの少なくとも一部のビットに対して変更を加えた設定値を返すようにしたので、リトライのロックトランザクション指示を受けた時にもロック値の不正を正しく判断することができる。従って、応答側のノードＢにおいて、ロックトランザクション指示の最初のトライ時にロックに失敗した場合には、同じ更新データのリトライに対しては再びロックを失敗させることができることから、応答側ノードＢのＰＣＲの設定値が不正な値に書き換えられることを防ぐことができる。また、応答側ノードＢに保管されるＰＣＲの値については従来通りのままであり、ロックトランザクションでは無視されない各フィールドのパラメータについては、従来通りに適切な情報を要求側のノードＡに伝送することができるので、通常の動作に影響を与えること無く上記効果を得ることができる。
【００６９】
実施の形態２．
上記した実施の形態１では、応答側ノードＢで、図４及び図５に示したＰＣＲの定義からロックトランザクションでは無視されるフィールドを検出し、そのフィールド内のビットに対して変更を加えて応答データを生成していた。しかし、ＩＥＥＥ１３９４規格の場合には、図４及び図５に示したように、ＰＣＲの先頭ビットはオンラインフィールドである１ビットであるので、その先頭ビットを検出して変更を加えるのみでも本発明の応答データを生成することができる。そこで、以下に示す本発明の実施の形態２では、ＰＣＲの先頭ビットを変更して応答データを生成する場合について説明する。
【００７０】
実施の形態２では、実施の形態１における図９の処理内容が異なるが、他の構成及び動作（処理内容）については実施の形態１と同様であるので、重複する説明を省略する。
【００７１】
図１１は、本発明の実施の形態２における図８のステップＳ２１の詳細な処理を示すフローチャートである。
【００７２】
なお、図８のステップＳ２１は、更新設定値（ｄａｔａ＿ｖａｌｕｅ）および予想設定値（ａｒｇ＿ｖａｌｕｅ）の各データが正当な値でない場合の処理内容を示すステップであり、ＰＣＲに格納された値（実設定値）の一部のビット（ロックトランザクションでは無視されるビット）を変更して変更設定値を生成するステップである。なお、本実施の形態では、論理的なプラグの設定値は３２ビットとする。
【００７３】
上記したように、ＩＥＥＥ１３９４規格の場合には、論理的なプラグの設定値の最上位ビットは、オンラインかオフラインかを示すフィールドのビットである。そこで、本実施の形態の応答側ノードＢでは、まず、出力側のＰＣＲ（ｏＰＣＲ）の値（実設定値）の最上位のビット値を検出し（Ｓ４１）、検出された各ビット値について、そのビット値が０であるか否かを判断する（Ｓ４２）。
【００７４】
ビット値が０である場合（Ｓ４２：ＹＥＳ）には、応答側ノードＢは、その最上位のビット値（オンラインビット）を１にするため、その設定値に０ｘ８０００００００を論理和（ビットＯＲ）して変更設定値（変更データ）を生成する（Ｓ４３）。
【００７５】
また、ビット値が０でなく１である場合（Ｓ４２：ＮＯ）には、応答側ノードＢは、ステップＳ４３とは逆に、その最上位のビット値（オンラインビット）を０にするために、その設定値に０ｘ７ＦＦＦＦＦＦＦを論理積（ビットＡＮＤ）して変更設定値（変更データ）を生成する（Ｓ４４）。
【００７６】
このように本実施の形態では、本発明の変更設定値を生成する処理を実施の形態１よりも簡略化させることができるので、実施の形態１の効果に加えて、さらに処理負荷を軽減させ、処理速度を向上させることができる。
【００７７】
実施の形態３．
以下に示す本発明の実施の形態３では、応答側ノードＢで、図４及び図５に示したＰＣＲの定義からロックトランザクションでは無視されるフィールドの内で、将来の使用のために予約済みであるフィールドを検出し、そのフィールド内のビットに対して変更を加えて応答データを生成する場合について説明する。
【００７８】
本実施の形態３についても、実施の形態１における図９の処理内容のみが異なり、他の構成及び動作（処理内容）については実施の形態１および実施の形態２と同様であるので、重複する説明を省略する。
【００７９】
図１２は、本発明の実施の形態３における図８のステップＳ２１の詳細な処理を示すフローチャートである。
【００８０】
本実施の形態の応答側ノードＢでは、まず、図４及び図５に示したロックトランザクション時の形式定義及び動作定義に基づき、出力側のＰＣＲ（ｏＰＣＲ）の値（実設定値）から予約済みであるフィールドを検出し（Ｓ５１）、検出された予約済みフィールドの各ビット値のうち、少なくとも１ビット以上に対して、そのビット値に１をＯＲ演算して変更設定値（変更データ）を生成する（Ｓ５２）。
【００８１】
予約済みフィールドは、図４に示した出力側のＯＣＲ（ｏＰＣＲ）では、ＭＳＢ形式で２３，２４ビット目である。また、図５に示した入力側のＯＣＲ（ｉＰＣＲ）では、予約済みフィールドは、ＭＳＢ形式で０〜１５，２３，２４ビット目であり、こちらの予約済みフィールドのビットに対して変更処理を実施しても良い。
【００８２】
このように本実施の形態は、本発明の変更設定値を生成する処理を実施の形態１よりも簡略化させることができるので、実施の形態１の効果に加えて、さらに処理負荷を軽減させ、処理速度を向上させることができる。
【００８３】
実施の形態４．
実施の形態１〜３では、図８のステップＳ２１の応答側ノードＢにおいて、更新設定値（ｄａｔａ＿ｖａｌｕｅ）および予想設定値（ａｒｇ＿ｖａｌｕｅ）の各データが正当な値でない場合に、ロックトランザクションでは無視されるＰＣＲのフィールドのビットの内、一部のビットに変更を加えてからｏｌｄ＿ｖａｌｕｅ値として要求側のノードＡに送信することで、ロックトランザクション指示の最初のトライ時にロックに失敗した場合には、同じ更新データのリトライに対しては再びロックを失敗させることができ、リトライ時にも応答側ノードＢのＰＣＲの設定値（ロック値）の不正を判断でき、不正な値に書き換えられることを防ぐことができる。しかし、実施の形態１〜３の要求側のノードＡでは、最初のトライの時と、リトライの時で、応答側ノードＢで同じように変更された応答データを受信するので、予想設定値（ａｒｇ＿ｖａｌｕｅ）とｏｌｄ＿ｖａｌｕｅ値の各データが一致し、応答側ノードＢでロックに成功したと誤って解釈する場合がある。そこで、以下に示す実施の形態４では、要求側のノードＡで、応答側ノードＢがロックに失敗したことを正しく認識できる場合について説明する。
【００８４】
本実施の形態４についても、実施の形態１における図９、図１０の処理内容のみが異なり、他の構成及び動作（処理内容）については実施の形態１〜３と同様であるので、重複する説明を省略する。
【００８５】
図１３は、本発明の実施の形態４におけるロック値が不正である時のロックトランザクション処理の処理手順を示すフローチャートである。
【００８６】
図１３における１回目の処理手順については、応答側ノードＢにおいて、ａｒｇ＿ｖａｌｕｅ値（１）がＰＣＲ値（２）と不一致であることから、ロック値が不正と判断するステップＢ１４までは、実施の形態１〜３と同様であり、２回目の処理手順についても、応答側ノードＢにおいて、ａｒｇ＿ｖａｌｕｅ値（４）がＰＣＲ値（２）と不一致であることから、ロック値が不正と判断するステップＢ１７までは、実施の形態１〜３と同様である。
【００８７】
本実施の形態の１回目の処理手順では、応答側ノードＢがステップＢ１４を実施した後に、さらに今回のロックトランザクションが、前回と同一の要求側ノードＡからの２回目（リトライ）のロック要求であるか否かを判断する処理ステップ（Ｂ２１）が追加されている。従って、ステップＳＢ１２は、応答側ノードＢが、ステップＢ２１で、今回のロック要求が前回と同一の要求側ノードＡからの２回目（リトライ）のロック要求ではなく初回のロック要求であると判断したことから、実施の形態１と同様にＰＣＲ値（２）の一部を変更した値（４）をｏｌｄ＿ｖａｌｕｅ値（４）として要求側ノードＡに返すようにしている。以降のステップＢ１７までの処理は、実施の形態１と同様である。
【００８８】
また、２回目（リトライ）の処理手順でも、応答側ノードＢがステップＢ１７を実施した後に、さらに今回のロックトランザクションが、前回と同一の要求側ノードＡからの２回目（リトライ）のロック要求であるか否かを判断する処理ステップ（Ｂ２２）が追加されている。従って、ステップＳＢ２１は、応答側ノードＢが、ステップＢ２２で、今回のロック要求が前回と同一の要求側ノードＡからの２回目（リトライ）のロック要求であると判断したことから、１回目の処理手順とは異なり、ＰＣＲ値（２）を変更しないでそのままｏｌｄ＿ｖａｌｕｅ値（２）として要求側ノードＡに返すようにしている。以降のステップＢ１８の処理は、実施の形態１と同様である。
【００８９】
ｏｌｄ＿ｖａｌｕｅ値（２）を受信した要求側ノードＡでは、ｏｌｄ＿ｖａｌｕｅ値（２）とａｒｇ＿ｖａｌｕｅ値（４）とを比較し（Ａ２１）、両者の値が同一（一致）ではないことを確認する（Ａ２２）ことで、ロックの失敗を認識する（Ａ２３）。
【００９０】
また、図示しない３回目のリトライの処理手順としては、上記した１回目の処理手順を繰り返すことで、２回目の処理により要求側ノードＡに保管されたＰＣＲ値（２）と、３回目の応答データ中のｏｌｄ＿ｖａｌｕｅ（４）とが異なることになり、要求側ノードＡでロックの失敗を認識することができ、４回目のリトライ時には、上記した２回目の処理手順を繰り返すことで、３回目の処理により要求側ノードＡに保管されたＰＣＲ値（４）と、４回目の応答データ中のｏｌｄ＿ｖａｌｕｅ（２）とが異なることになり、要求側ノードＡでロックの失敗を認識することができる。同様にして４回目以降のリトライ処理でも、上記した１回目と２回目の里とＡＩの処理手順を繰り返すことにより、要求側ノードＡでロックの失敗を認識することができる。
【００９１】
２回目の処理手順までは、上記したように、同一の要求側ノードＡからリトライのロック要求であるか否かを判断すれば良いが、３回目以降のリトライのロック要求を受けた場合には、さらに、前回の処理では応答データに対する変更処理を実施したか否かを確認することで、前回と異なる方の処理を実施して応答データを生成すれば良い。
【００９２】
このように本実施の形態では、応答側ノードＢにおいて、同一の要求側ノードＡからリトライのロック要求を受ける度毎に、前回のロックトランザクション指示による変更データとは異なるように前記実データ中におけるデータを変更するかしないかによりｏｌｄ＿ｖａｌｕｅ値を生成し、そのｏｌｄ＿ｖａｌｕｅ値を含む応答データを要求側ノードＡに返すので、実施の形態１〜３の効果に加えて、要求側のノードＡで、応答側ノードＢがリトライのロックに失敗したことを正しく認識することができる。
【００９３】
実施の形態５．
上記した実施の形態４では、応答側ノードＢにおいて、同一の要求側ノードＡからリトライのロック要求を受ける度毎に、変更を加えたｏｌｄ＿ｖａｌｕｅ値の応答データと、変更を加えないｏｌｄ＿ｖａｌｕｅ値の応答データとを交互に要求側ノードＡに返すことで、要求側のノードＡで、応答側ノードＢのリトライのロック失敗を正しく認識できるようにしていたが、応答側ノードＢにおいては、同一の要求側ノードＡからリトライのロック要求を受ける度毎に、第１の変更を加えたｏｌｄ＿ｖａｌｕｅ値の応答データと、第２の変更を加たｏｌｄ＿ｖａｌｕｅ値の応答データとを交互に要求側ノードＡに返すことでも、要求側のノードＡで、応答側ノードＢのリトライのロック失敗を正しく認識できるようになる。そこで、以下に示す実施の形態５では、応答側ノードＢで、リトライのロック要求を受ける度毎に、第１と第２の変更を加たｏｌｄ＿ｖａｌｕｅ値の応答データとを交互に要求側ノードＡに返す場合について説明する。
【００９４】
本実施の形態５についても、実施の形態１における図９、図１０の処理内容のみが異なり、他の構成及び動作（処理内容）については実施の形態１〜３と同様であるので、重複する説明を省略する。
【００９５】
図１４は、本発明の実施の形態５におけるロック値が不正である時のロックトランザクション処理の処理手順を示すフローチャートである。
【００９６】
図１４の実施の形態５と、図１３の実施の形態４との相違は、応答側のノードＢで、同一要求側ノードＡからのリトライのロック要求か判断するステップＢ２２の後のステップＳＢ３１で、ＰＣＲに保管されていたＰＣＲ値（２）の一部を前回とは異なるように変更して、その変更した値（５）をｏｌｄ＿ｖａｌｕｅ値（５）として、要求側のノードＡに返すようにしている点。さらに、ｏｌｄ＿ｖａｌｕｅ値（５）を受信した要求側ノードＡでは、ｏｌｄ＿ｖａｌｕｅ値（５）とａｒｇ＿ｖａｌｕｅ値（４）とを比較し（Ａ３１）、両者の値が同一（一致）ではないことを確認する（Ａ３２）ことで、ロックの失敗を認識する（Ａ３３）。
【００９７】
また、本実施の形態でも、図示しない３回目のリトライの処理手順としては、上記した１回目の処理手順を繰り返すことで、２回目の処理により要求側ノードＡに保管されたＰＣＲ値（５）と、３回目の応答データ中のｏｌｄ＿ｖａｌｕｅ（４）とが異なることになり、要求側ノードＡでロックの失敗を認識することができ、４回目のリトライ時には、上記した２回目の処理手順を繰り返すことで、３回目の処理により要求側ノードＡに保管されたＰＣＲ値（４）と、４回目の応答データ中のｏｌｄ＿ｖａｌｕｅ（５）とが異なることになり、要求側ノードＡでロックの失敗を認識することができる。同様にして４回目以降のリトライ処理でも、上記した１回目と２回目の里とＡＩの処理手順を繰り返すことにより、要求側ノードＡでロックの失敗を認識することができる。
【００９８】
また、２回目の処理手順までは、上記したように、同一の要求側ノードＡからリトライのロック要求であるか否かを判断すれば良いが、３回目以降のリトライのロック要求を受けた場合には、さらに、前回の処理では応答データに対する変更処理を実施したか否かを確認することで、前回と異なる方の処理を実施して応答データを生成すれば良いことについても、実施の形態４と同様である。
【００９９】
また、本実施の形態では、応答側のノードＢで、リトライのロック要求を受ける度毎に、第１と第２の変更を加たｏｌｄ＿ｖａｌｕｅ値の応答データとを交互に要求側ノードＡに返すようにしてもよいが、例えば、ロックトランザクションでは無視されるフィールドのビット数が多数である場合には、３回目についても、上記した１回目と２回目の変更内容とは異なるビットを変更し、４回目は、さらに異なるビットを変更して応答データを生成しても良い。
【０１００】
このように本実施の形態では、応答側ノードＢにおいて、同一の要求側ノードＡからリトライのロック要求を受ける度毎に、前回のロックトランザクション指示による変更データとは異なるように前記実データ中におけるデータを変更することによりｏｌｄ＿ｖａｌｕｅ値を生成し、そのｏｌｄ＿ｖａｌｕｅ値を含む応答データを要求側ノードＡに返すので、実施の形態１〜３の効果に加えて、要求側のノードＡで、応答側ノードＢがリトライのロックに失敗したことを正しく認識することができる。
【０１０１】
【発明の効果】
本発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【０１０２】
本発明は、ロックトランザクション指示を受けた応答側ノードにおいて、ロック値が不正であると判断した場合には、ＰＣＲに格納されていた設定値をそのまま要求側ノードに返すのではなく、ロックトランザクションでは無視されるフィールドの少なくとも一部のビットに対して変更を加えた設定値を返すようにしたので、リトライのロックトランザクション指示を受けた時にもロック値の不正を正しく判断することができる。従って、応答側のノードにおいて、ロックトランザクション指示の最初のトライ時にロックに失敗した場合には、同じ更新データのリトライに対しては再びロックを失敗させることができることから、応答側ノードのＰＣＲの設定値が不正な値に書き換えられることを防ぐことができる。また、応答側ノードに保管されるＰＣＲの値については従来通りのままであり、ロックトランザクションでは無視されない各フィールドのパラメータについては、従来通りに適切な情報を要求側のノードに伝送することができるので、通常の動作に影響を与えること無く上記効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１であるシリアルバスに接続された複数のノードを有するシステムの構成例を示すブロック図である。
【図２】図１の各ノードにおけるＩＥＥＥ１３９４デジタルインターフェースの論理的なプラグの概念を示すブロック図である。
【図３】図２のＰＣＲ２１、２２における出力側論理プラグｏＰＣＲと入力側論理プラグｉＰＣＲの指定アドレスの概念的な配置およびその論理アドレスを示す図である。
【図４】出力側論理プラグｏＰＣＲに設定される値のビット単位の形式的な定義およびロックトランザクション時の動作の定義を示す図であり、（ａ）は出力側論理プラグｏＰＣＲの形式的な設定値の定義を示し、（ｂ）は出力側論理プラグｏＰＣＲの形式的な各定義における設定された各ビット数を示し、（ｃ）は出力側論理プラグｏＰＣＲの各設定値のロックトランザクション時の動作の定義を示する。
【図５】入力側論理プラグｉＰＣＲに設定される値のビット単位の形式的な定義およびロックトランザクション時の動作の定義を示す図であり、（ａ）は入力側論理プラグｉＰＣＲの形式的な設定値の定義を示し、（ｂ）は入力側論理プラグｉＰＣＲの形式的な各定義における設定された各ビット数を示し、（ｃ）は入力側論理プラグｉＰＣＲの各設定値のロックトランザクション時の動作の定義を示す。
【図６】ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ方式を用いるロックトランザクションでロック値が不正である場合の従来の処理手順を本実施の形態との対比用として示したフローチャートである。
【図７】図６の応答側ノードＢのステップＢ０３、Ｂ０４、および、ＳＢ０２、あるいは、ステップＢ０５、Ｂ０７、および、ＳＢ０３の概略の処理内容を示すフローチャートである。
【図８】図７の応答側ノードがＩＥＥＥ１３９４機器である場合の処理内容を示すフローチャートである。
【図９】図８のステップＳ２１の詳細な処理を示すフローチャートである。
【図１０】ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ方式を用いるロックトランザクションでロック値が不正である場合の実施の形態１の処理手順を示したフローチャートである。
【図１１】本発明の実施の形態２における図８のステップＳ２１の詳細な処理を示すフローチャートである。
【図１２】本発明の実施の形態３における図８のステップＳ２１の詳細な処理を示すフローチャートである。
【図１３】本発明の実施の形態４におけるロック値が不正である時のロックトランザクション処理の処理手順を示すフローチャートである。
【図１４】本発明の実施の形態５におけるロック値が不正である時のロックトランザクション処理の処理手順を示すフローチャートである。
【符号の説明】
１  デジタル・テレビジョン受信機（ＤＴＶ：ＩＥＥＥ１３９４機器、ノード）、  ２〜４  デジタル・ビデオデッキ（ＤＶＨＳ：ＩＥＥＥ１３９４機器、ノード）、  ５  ＩＥＥＥ１３９４バス、  １１、１２  ＩＥＥＥ１３９４デジタルインターフェース、  ２１、２２  プラグ・コントロール・レジスタ（ＰＣＲ）、  ３１、４２、２１ｆ〜２１ｊ  入力側の論理プラグ（ｉＰＣＲ）、  ３２、４１、２１ｂ〜２１ｅ  出力側の論理プラグ（ｏＰＣＲ）、  ５１、７１  オンラインフィールド、  ５２、７２  同時接続カウンタフィールド、  ５３、７３  ポイント・ポイント接続カウンタフィールド、  ５４、７４、７６  予約済みフィールド、  ５５、７５  チャンネル番号フィールド、  ５６  データレートフィールド、  ５７  オーバーヘッドＩＤフィールド、  ５８  ペイロードフィールド、  ６１、６３、６５、８１、８３、８５  無視され元の値がそのまま保存されること（無視）、  ６２、６４、８２、８４  ＰＣＲの値を書き換えること（条件付き書き込み）。
【図１】
2004241891.tif 000003
【図２】
2004241891.tif 000004
【図３】
2004241891.tif 000005
【図４】
2004241891.tif 000006
【図５】
2004241891.tif 000007
【図６】
2004241891.tif 000008
【図７】
2004241891.tif 000009
【図８】
2004241891.tif 000010
【図９】
2004241891.tif 000011
【図１０】
2004241891.tif 000012
【図１１】
2004241891.tif 000013
【図１２】
2004241891.tif 000014
【図１３】
2004241891.tif 000015
【図１４】
2004241891.tif 000016