(57)【特許請求の範囲】
【請求項１】
マスタモジュールとスレーブモジュールとが混在した環境において、動的な遮断又は開始動作を介して、通信チャネルを動作させる方法において、
前記通信チャネルを遮断するために前記マスタモジュール及び前記スレーブモジュールと中央通信管理手段との間でハンドシェーキング機構を各々使用し、前記中央通信管理手段を、
前記マスタモジュールの各々に対して、前記マスタモジュール中の通信部又は通信プロセスが正しい開始が保証される規定の遮断状態である第１の停止状態を呈するための第１停止命令を活性化し、
前記第１の停止状態が全体に行き渡ったことを検出すると前記スレーブモジュールの各々に対して、前記スレーブモジュール中の通信部又は通信プロセスが正しい開始が保証される規定の遮断状態である第２の停止状態を呈するための第２停止命令を活性化し、
前記第２の停止状態が全体に行き渡ったことを検出すると前記通信チャネルを通信遮断モードに設定する、ように制御することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記通信遮断モードから前記通信チャネルを再開する際に、
前記通信チャネルを開始するために前記マスタモジュール及び前記スレーブモジュールと中央通信管理手段との間でハンドシェーキング機構を各々使用し、前記中央通信管理手段を、
前記スレーブモジュールの各々に対して第１の回復状態を呈するための第１回復命令を活性化し、
前記第１の回復状態が全体に行き渡ったことを検出すると前記マスタモジュールの各々に対して第２の回復状態を呈するための第２回復命令を活性化し、
前記第２の回復状態が全体に行き渡ったことを検出すると前記通信チャネルを通信回復モードに設定する、ように制御することを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記中央通信管理手段は、前記通信遮断モードになると、前記環境内に存在しそのクロック領域内の前記通信チャネルを使用するマスタモジュール又はスレーブモジュールにクロック信号を供給する実際のクロック手段を停止させることにより電力節約を実行することを特徴とする方法。
【請求項４】
マスタモジュールとスレーブモジュールとが混在した環境において、動的な遮断又は開始動作を介して、通信チャネルを動作させる方法において、
前記通信チャネルを通信遮断モードにする際に、前記通信チャネルを遮断するために前記マスタモジュール及び前記スレーブモジュールと中央通信管理手段との間でハンドシェーキング機構を各々使用し、前記中央通信管理手段を、
前記マスタモジュールの各々に対して、前記マスタモジュール中の通信部又は通信プロセスが正しい開始が保証される規定の遮断状態である第１の停止状態を呈するための第１停止命令を活性化し、
前記第１の停止状態が全体に行き渡ったことを検出すると前記スレーブモジュールの各々に対して、前記スレーブモジュール中の通信部又は通信プロセスが正しい開始が保証される規定の遮断状態である第２の停止状態を呈するための第２停止命令を活性化し、
前記第２の停止状態が全体に行き渡ったことを検出すると前記通信チャネルを通信遮断モードに設定する、ように制御し、
前記通信遮断モードから通信回復モードに復帰させる際に、前記通信チャネルを開始するために前記マスタモジュール及び前記スレーブモジュールと前記中央通信管理手段との間でハンドシェーキング機構を各々使用し、前記中央通信管理手段を、
前記スレーブモジュールの各々が第１の回復状態を呈するように前記第２停止命令を非活性化し、
前記第１の回復状態が全体に行き渡ったことを検出すると前記マスタモジュールの各々が第２の回復状態を呈するように前記第１停止命令を非活性化し、
前記第２の回復状態が全体に行き渡ったことを検出すると前記通信チャネルを通信回復モードに設定する、ように制御し、
前記中央通信管理手段は、前記第１停止命令が活性化されており前記第２停止命令が非活性化されている第１モードと、前記第１停止命令及び前記第２停止命令が共に活性化されている第２モードと、前記第１停止命令及び前記第２停止命令が共に非活性化されている第３モードとを有し、
前記通信チャネルを通信遮断モードにする際に、
前記中央通信管理手段が、前記第１モードに遷移した後、前記第１の停止状態が全体に行き渡ったことを検出するまでにチャネル開始イベントを検出した場合に、前記中央通信管理手段を前記第１モードから前記第３モードに遷移するように制御し、
前記中央通信管理手段が、前記第１の停止状態が全体に行き渡ったことを検出した後、前記第２の停止状態が全体に行き渡ったことを検出するまでにチャネル開始イベントを検出した場合に、前記中央通信管理手段を前記第１モードに遷移するように制御することを特徴とする方法。
【請求項５】
請求項１ないし４の何れか一項に記載の方法において、前記状態はそれぞれ対応する前記マスタモジュール又は前記スレーブモジュールによって当該モジュール専用の単一の１ビット単一方向ラインを介して前記中央通信管理手段に通知されることを特徴とする方法。
【請求項６】
前記中央通信管理手段が前記第１の停止状態が全体に行き渡ったことを検出することは、前記第１の停止状態であることを示すマスタ停止信号を全ての前記マスタモジュールが活性状態にしたことを当該中央通信管理手段が検出することを含む、請求項１、３又は４に記載の方法。
【請求項７】
前記中央通信管理手段が前記第２の停止状態が全体に行き渡ったことを検出することは、前記第２の停止状態であることを示すスレーブ停止信号を全ての前記スレーブモジュールが活性状態にしたことを当該中央通信管理手段が検出することを含む、請求項１、３又は４に記載の方法。
【請求項８】
前記中央通信管理手段が前記第１の回復状態が全体に行き渡ったことを検出することは、前記第１の回復状態であることを示すスレーブ回復信号を全ての前記スレーブモジュールが活性状態にしたことを当該中央通信管理手段が検出することを含む、請求項２に記載の方法。
【請求項９】
前記中央通信管理手段が前記第２の回復状態が全体に行き渡ったことを検出することは、前記第２の回復状態であることを示すマスタ回復信号を全ての前記マスタモジュールが活性状態にしたことを当該中央通信管理手段が検出することを含む、請求項２に記載の方法。
【請求項１０】
前記中央通信管理手段が前記第１の回復状態が全体に行き渡ったことを検出することは、前記第２の停止状態であることを示すスレーブ停止信号を全ての前記スレーブモジュールが非活性状態にしたことを当該中央通信管理手段が検出することを含む、請求項４に記載の方法。
【請求項１１】
前記中央通信管理手段が前記第２の回復状態が全体に行き渡ったことを検出することは、前記第１の停止状態であることを示すマスタ停止信号を全ての前記マスタモジュールが非活性状態にしたことを当該中央通信管理手段が検出することを含む、請求項４に記載の方法。
【請求項１２】
前記中央通信管理手段が、前記通信チャネルを通信遮断モードに設定する際に、前記通信チャネルが通信遮断モードであることを示すチャネル遮断信号を活性化する、請求項１又は請求項４に記載の方法。
【請求項１３】
前記中央通信管理手段が、前記通信チャネルを通信回復モードに設定する際に、前記チャネル遮断信号を非活性化する、請求項１２に記載の方法。
【請求項１４】
前記中央通信管理手段が、前記通信チャネルを通信回復モードに設定する際に、前記通信チャネルが通信回復モードであることを示すチャネル回復信号を活性化する、請求項２に記載の方法。
【請求項１５】
請求項１ないし請求項１４の何れか一項に記載の方法を実施するように構成されたシステム。
【発明の詳細な説明】
背景技術
本発明は、マスタ／スレーブ加入者が混在した環境において、動的な遮断及び／又は開始動作を介して、通信チャンネルを動作させる方法に関する。上記チャンネルは、直列若しくは並列バス、他の構成のハードウェア回路網又は無線サブシステムであり得る。加入者は、ハードウェア局、又は複数の共存及び／又は対話型の処理の一つ、又はハードウェア及びソフトウェア主体の混合でさえあり得る。システムの複雑さの増加により、相互接続されたモジュール間の斯かる通信チャンネルの遮断及び開始は、益々困難となってきている。その主たる理由は、当該システムの基となる上記モジュールが、通信、終了及び開始を時間的に如何なる任意の時点においても常に生じさせることができるとは限らない程の内部複雑さを有しているということである。
発明の開示
従って、なかでも、本発明の一つの目的は上述した問題の直裁且つ実施が容易な解決策を提供することにある。このため、通信チャンネルの遮断及び開始シーケンスの問題を、一方としての関連する全てのモジュールと、他方としての中央の通信管理モジュールとの間でハンドシェークプロトコルを使用することにより防止するような方法を記載する。従って、本発明の特徴の一つによれば、本発明は請求項１の残部により特徴付けられる。
回復状況を整えるため、請求項２の主要部によれば、上記とは逆のシーケンスが実行される。本発明の特に有利な特徴は、電力節約及び割り込みルーチンの処理に関わるものである。
本発明は、上述した方法を実施するよう構成されたシステムにも関する。本発明の他の有利な特徴は従属請求項に記載されている。
【図面の簡単な説明】
本発明の上記及び他の特徴及び作用効果を好ましい実施例の記載及び添付図面を参照して以下に詳細に説明するが、添付図面において：
第１図は、本発明による全体構造を示し、
第２図は、遮断及び開始シーケンスの実施例を示し、
第３図は、割り込み処理シーケンスの実施例を示す。
発明を実施するための最良の形態
本通信スイッチングプロトコルの動作を示す該実施例は、例えば中央処理装置（ＣＰＵ）、万能非同期受信送信機（ＵＡＲＴ）、メモリコントローラ及びＤＭＡエンジン等のプロセッサ構造で見られるような複雑さを持つハードウェアモジュールからなっている。これらのモジュールは、例えばオンチップバスシステムのような通信チャンネルを介して相互接続され、該チャンネル上でマスタとして、スレーブとして又はマスタ／スレーブエージェントとして動作する。しかしながら、当該通信スイッチングプロトコルはハードウェア構成のみに限定されるものではなく、例えば、なかでもプロセス間通信（inter-process communication）を整えるために、ソフトウェアモジュール環境内でも使用することができる。
問題の記載：上述したような今日の複雑なビルディングブロックの場合、通信を時間的に常に任意の時点で閉じることができるとは限らない。例えば、ソフトウェア処理は、通信チャンネルが閉じられる前に内部バッファ又は内部パイプラインを先ずクリア（flush）する必要があるかもしれず、又はハードウェアメモリコントローラモジュールはデータを内部的に低速ダイナミックメモリに更新しなければならないかもしれない。該チャンネルが再び開かれる場合に通常の動作を回復することができるように、全てのモジュール（マスタ及びスレーブ）は当該通信が遮断される際に良く規定された内部状態になければならない。しばしば、遮断用ソフトウェアルーチンを用いて、このような状態に到達するよう試みられる。しかしながら、複数マスタが関係している場合には、上記はソフトウェアによっては常に充分に制御可能であるとは限らず、だらだらした処理となる。例えば、独立したマスタが自律的にデバッギング命令を実行するか、又はＩＯ装置が突然外部データを受信した場合に、ＣＰＵが遮断シーケンスを実行しているかもしれない。また、モジュールを再び完全に機能的に動作するようにするために、埋め込みダイナミックメモリのリフレッシュ処理をシステムクロックに戻すような切り換え、又はコントローラが内部パイプラインを満たすようにするような開始シーケンスが必要であろう。
上記のような遮断及び開始シーケンス用のソフトウェア（しばしば、複雑なリアルタイムソフトウェア）を書くことの重荷から解放する解決策として、上記のような規定の状態にあるべき各バスエージェントを第１図の中央通信管理モジュール“ｃｍｍ”２０として作用する他のバスエージェントに結合する２つの信号を用いたハンドシェーク機構を構成することが提案される。
通信チャンネルの遮断は以下のようにして実行される。例えばＣＰＵ上で実行されているソフトウェアに指令されてチャンネルが閉じられねばならない場合は、上記ｃｍｍは内部遮断制御レジスタに向けられた通信遮断（close_communication）命令３２により遮断シーケンスを開始するよう命令される。すると、先ずｃｍｍは各マスタに対して停止マスタ（halt_master）信号（Halt_M1及びHalt_M2）を活性状態にして、これらマスタが現在の通信動作を終了して通信部を正しい開始が保証されるような規定の状態にするよう通知する。これら複数のhalt_master信号の活性化は、システム設計の特徴に応じて同時的に又は逐次的に実行することができる。或るマスタが準備完了して、その通信部又は処理が規定の遮断状態にある場合は、該マスタはマスタ停止（master_halted）信号（M1_halted及びM2_halted）を活性状態にして前記ｃｍｍに通知する。全てのマスタがmaster_halted信号を活性状態にした時点からは、チャンネルを介する如何なる通信も最早存在しないであろうことが保証され、かくして、ｃｍｍはスレーブ２４、２８に対して停止スレーブ（halt_slave）信号（Halt_S1及びHalt_S2）を活性状態にして、これらスレーブを遮断モードに入るよう制御する。この動作も同時的又は逐次的に実行することができる。各スレーブが、それらの通信部又は処理を規定の遮断状態にすると、これらスレーブは各スレーブ停止（slave_halted）信号（S1_halted及びS2_halted）を活性状態にする。かくして、ｃｍｍ２０は、もし必要なら、図示せぬ相互接続部を介して上位アイテムに対し“通信遮断”状態を供給する。
通信チャンネルの開始は以下のように実行される。システム及び構成の要件に応じて、幾つかのイベントが通信チャンネルを開かせ得る。このイベントの結果、上記ｃｍｍは、通信を閉じるために使用されたのと同一の信号を介して開始シーケンスを開始させる。本実施例においては、何れの信号にも単一方向１ビットラインが使用される。このシーケンスは、各モジュールが再び完全に動作状態になるまでに幾らかの時間を要する場合に必要である。この場合、“当該通信チャンネルを閉じる”場合と比較して逆の順序が用いられる。何故なら、スレーブが通常に動作している場合は、マスタが通信チャンネル上で動作を開始する際該マスタは各スレーブに対して通常のアクセスを得るであろうことが保証されるからである。従って、この開始イベントの後、各halt_slave信号が不活性状態にされ、全てのスレーブがそれらの関連するslave_halted信号を不活性状態にすると、ｃｍｍはhalt_master信号を不活性状態にし、全てのmaster_halted信号が不活性状態になるのを待つ。この時点以降、当該システムは再び完全な動作状態となる。第２図は、上記機構をタイムチャートの助けにより示している。Halt_M（x）及びHalt_S（x）は、第１図で述べた個々の信号Halt_M1、Halt_M2、Halt_S1等々である。或る時点では、後者の線は各々、２以上のマスタの間で分配され、又は２以上のスレーブの間で分配される。
ｃｍｍへの遮断通信命令の発生に応答して、該モジュールはHalt_M（x）信号を活性状態にする。時点１において、マスタの遮断シーケンスが開始する。時点２においては、全てのマスタが内部動作の準備を完了していることを通知しており、最早通信が生じないことが保証される。結果として、ｃｃｍはHalt_S（x）信号を活性化し、各スレーブ用の遮断シーケンスが開始する。時点３では、全てのスレーブが内部動作の準備を完了しており、通信チャンネルが閉じられ、これが信号Chan_offにより表されている。時点３と時点４との間では当該通信チャンネルは閉じられている。例えば図示せぬ外部イベントにより時点４で当該チャンネルを経る通信の要求が生じると、ｃｍｍ２０はHalt_S（x）を不活性状態にする。これに対し、時点５において各スレーブにより全てのslave_halted信号が不活性状態にされると、ｃｍｍによりHalt_M（x）信号が不活性状態にされてもよくなり、各マスタが各開始シーケンスに入る。これらマスタは各マスタのmaster_halted信号によりｃｍｍに準備完了状態を通知する。これら信号の全てが時点６で不活性状態になり、全システム及び該システムの通信チャンネルが再び完全に機能状態となる。
通信チャンネルの遮断が進行中に、例えば外部の又は内部の割り込みにより開始イベント（open_event）が発生し得る。当該システムが遮断シーケンスに関わっている間に斯かるopen_eventが生じた場合は、一種の“タッチアンドゴー”動作が生じる。即ち、既に通信を遮断したマスタ及びスレーブは、時点３と４との間の遮断状態に対して対称な期間内の時点であたかも開始シーケンスに関わっていたかのように通信を回復する。これが第３図に示されており、ここで、垂直な矢印Ａ及びＢはopen_eventが生じた場合の当該ハンドシェークプロトコル内でのジャンプを示している。このように、もし上記イベントが時点１と２との間で発生した場合は当該システムは時点５と６との間の期間にジャンプする。また、当該イベントが時点２と３との間で発生した場合は、当該システムは時点４と５との間の期間にジャンプする。
当該システムが既に開始シーケンスに関わっている場合又は当該チャンネルが開いている場合に、open_eventが生じた場合は、該イベントは無視される。これが点Ｃ及びＤにより示され、そこには矢印は図示されておらず、当該システムは実際の開始動作を継続する。
本プロトコルは、当該システムがopen_eventの発生及び処理の後に遮断モードに再び入るか、又は当該システムが他の遮断命令を待つかは指示しない。これは、システムの要件に従って規定される。
応用例：集積回路内での電力消費を低減するため、発信器及び／又はＰＬＬを含むであろうような１以上の大域クロック（global clock）を、これらのクロック領域内でのシステム動作が必要でない場合は遮断するのが非常に効果的である。例えば、オンチップバス形式のシステムにおいては、前記Chan_off信号がクロック切り換えストローブとして作用する。大域システムクロックは、全てのモジュールが、当該クロックの切り替えが通信チャンネルにも、又は当該モジュールの内部動作にもエラーを引き起こさないような良好に規定された状態にある場合にのみ遮断することができることは自明である。従って、前記master_halted及びslave_halted信号はモジュールの内部状態と組み合わされることができる。この応用例では、ｃｍｍは最終的に通常動作を回復するために、開始シーケンスを開始するまえにクロックをオンする。
結論：通信チャンネル用の本開始及び遮断プロトコルが上述したハンドシェーク機構により実施される場合は、上記遮断及び開始シーケンスは、複雑なモジュール及びモジュール状通信チャンネル型環境内での複雑な機能上のマスタースレーブ依存性のための多分複雑なソフトウェアを書くという重荷を解放するであろう。単純な通信チャンネルエージェントが関わる場合は、これらエージェントは上記ハンドシェークプロトコルに組み込まれる必要はないので、もっと簡単なシステム構造になるように最適化をなすことができる。また、マスタの間に機能的な依存性が存在しないような状況では、別々のhalt_master信号を単一の信号に統合することができ、スレーブに関しても同様である。このプロトコルの助けにより、安全な大域クロック切り換え機構をシステムレベルで形成することが可能である。
【図１】
0004467651.tif 000002
【図２】
0004467651.tif 000003
【図３】
0004467651.tif 000004