(57)【特許請求の範囲】
【請求項１】
複数のノードと、前記ノード間のデータ送信が実行される通信ハイウェイと、一度に１つのノードのみが前記ハイウェイにアクセス可能にするアクセス制御手段とを備えたマルチマスタシリアルバスシステムであって、１つのノードから他のノードへの前記データ送信は、アービトレーション区間と転送区間とを備え、前記アービトレーション区間は複数のスロットに分割され、各ノードは関連するスロット番号を有し、前記通信ハイウェイは第１、第２及び第３のラインを備え、前記第１のラインは前記アービトレーション区間においてアービトレーションクロック信号を搬送し、前記第２のラインは前記アービトレーション区間においてアービトレーション信号を搬送するとともに前記転送区間においてデータクロック信号を搬送し、前記第３のラインは前記アービトレーション区間においてスロット信号を搬送するとともに、前記ノードの１つが前記ハイウェイへのアクセスを勝ち取ったときに、前記転送区間において前記ノードから搬送されるべき実際のデータを搬送するマルチマスタシリアルバスシステム。
【請求項２】
前記３つのラインは保護の目的で二重化されていることを特徴とする請求項１記載のマルチマスタシリアルバスシステム。
【請求項３】
データはＨＤＬＣ（ハイレベルデータリンク制御）形式で前記ハイウェイを介して転送されることを特徴とする請求項１記載のマルチマスタシリアルバスシステム。
【請求項４】
前記各ノードのアクセス制御手段は、前記ノードの処理資源と、通信コントローラと、前記処理資源と前記通信コントローラ間で供給されるメモリと、前記ハイウェイへのアクセスを制御するとともにアービトレーション構成において他のノードとのアクセス優先権を決定するバスアクセスコントローラと、前記ハイウェイに直接接続されたハイウェイドライバ／レシーバとを含み、前記ハイウェイを介して転送されるデータは前記処理資源によって前記メモリに記憶されるとともに、前記ハイウェイから受信したデータは前記通信コントローラによって前記メモリに記憶されることを特徴とする請求項３記載のマルチマスタシリアルバスシステム。
【請求項５】
ハイウェイドライバ／レシーバは、保護の目的で二重化され、前記３つのラインに対応するメイン及びスタンバイラインによって前記ハイウェイに接続されていることを特徴とする請求項４記載のマルチマスタシリアルバスシステム。
【請求項６】
前記アービトレーションクロック信号は１つのノードで生成されるとともに、保護の目的で、他のノードで生成されたスタンバイクロック信号によって二重化されている請求項５記載のマルチマスタシリアルバスシステム。
【請求項７】
ｎノードを有し、前記アービトレーション区間は、２ｎスロットに分割され、前記スロットは２つの群のｎスロットに分割され、各ノードは前記関連するスロット番号を有し、このスロット番号は前記ノードが前記ハイウェイへアクセスするときの公平さを提供するアービトレーション構成によって決定されることを特徴とする請求項１記載のマルチマスタシリアルバスシステム。
【請求項８】
前記ノードは最初に前記第１群のｎスロットに関連し、前記第１群のスロットに関連する前記ノードが前記アービトレーション区間を勝ち取ったときに、そのスロット位置にｎを加算して前記第２群のスロットに関連付けられ、前記第２群のスロットに関連する前記ノードが前記アービトレーション区間を勝ち取ったときに前記第２群のスロットに関連付けられた状態を維持し、前記ノードが前記第２群のスロットに関連付けられるとともに、前記アービトレーション区間の前記第１のｎスロット区間が勝者なしに通過したときには、前記ノードは前記位置からｎを減算して前記第１群のスロットに再び関連付けられる請求項７記載のマルチマスタシリアルバスシステム。
【請求項９】
前記１つのノードが前記ハイウェイへのアクセスを勝ち取ったときには、前記１つのノードは前記転送区間に対する前記データクロック信号と、実際に転送するべきデータとを発生し、このときの転送速度は前記ハイウェイの長さと無関係である請求項１記載のマルチマスタシリアルバスシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はシリアルバスシステムに関し、特にシェルフ内での高速通信のためのマルチマスタシリアルバス（ＭＭＳＢ）システムに関する。
【０００２】
【従来の技術】
従来のＭＭＳＢシステムにおいては、２つのワイヤ、すなわち、クロックとデータが使用され、バスアクセス機構はバックオフ及びリトライ構成からなっていた。カードが交通量が多い状態のバスにアクセスするときは送信時にいったんアクセスをやめ、次にこのバスにアクセスする前に所定の時間待機する。したがって、あるノードは通信を開始するまでに不必要な時間待たされることを余儀なくされる。さらに、通信コントローラは比較的低い転送レートを有するのみである。また、通信コントローラと各カードに基づくマイクロプロセッサとの間には、プロセッサが頻繁にサービスすることを要するＦＩＦＯ構成によって構成された簡単なインタフェースがあるのみであった。
【０００３】
ＧＢ−Ａ−２０１５２１７に開示され、シリアルに再使用可能な資源にアクセスする多数のステーションは、中央に集められたリゾルーション機構によって起こる時間的遅延を克服するために、分散型優先決定（プライオリティリゾルーション）機能を備えている。このシステムは固定されたサイクルタイムセグメントにおいてデータ転送を行い、このようなセグメントにおけるデータ転送中に次のアクセスを仲裁する。データ転送セグメントと仲裁とを制御すべくクロックが使用される。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記したＧＢ−Ａ−２０１５２１７は十分なデータ転送機能を備えていなかった。
【０００５】
本発明はこのような課題に着目してなされたものであり、その目的とするところは、優れたデータ転送機能を有するマルチマスタシリアルバスシステムを提供することにある。
【０００６】
【課題を解決するための手段及び作用】
上記の目的を達成するために、本発明のマルチマスタシリアルバスシステムは、複数のノードと、ノード間でデータが転送される通信ハイウェイと、一度に１つのノードのみがこの通信ハイウェイにアクセスするように制御するアクセス制御手段とを具備するマルチマスタシリアルバスシステムにおいて、１つのノードから他のノードへの転送がアービトレーション区間と転送区間とを具備し、前記ハイウェイが３つのラインを含み、このうち２つが共有されて前記アービトレーション区間と転送区間において個々の機能を実行する。
【０００７】
【実施例】
図１は、例えば遠隔通信システムのシェルフ内で、カード間の通信を可能にすべく多数のカードを相互接続するＭＭＳＢ（通信ハイウェイ）１を含むマルチマスタシリアルバス（ＭＭＳＢ）システムの構成を示す図である。多くの種類のカードがあるが、図では第１レートで動作する４ライン（ポート）カード２と、第２レートで動作するメインラインカード３と、あるレートから他のレートへと切り換えるスイッチカード４と、シェルフコントローラのエンド（ＥＯＳＣ）が使用されている。カードは通常はバス１に沿ってＨＤＬＣ（ハイレベルデータリンク制御）形のメッセージを送ることによって通信する。本発明のＭＭＳＢ構成においては、どのカードも他のカードへデータ転送を行なうことができ、放送メーッセージが支持される。このことを可能にするために、各カードは後述する通信コントローラを含む個々のサブセクション６を有している。ＭＭＳＭ１を介して通常送信されるこの種のデータは応用によって異なるものであるが、概してＭＭＳＢ１がカード構成とＥＯＳＣによる制御のために使用される。この制御にはＲＯＳＣ５に送信されるアラームとフォールト、保護スイッチングのためのカード間通信、ポート間ネットワーク管理通信のルーテイングがある。
【０００８】
前記したＭＭＳＢシステムでは２つのワイヤ、クロック及びデータが使用された。本実施例のプロトコルは良好なパフォーマンスを得るために３ワイヤ（ライン）が使用される。図２は３２ノード構成に対するこのような３ワイヤ構成を示しており、ノードは上記したカード及びＥＯＳＣに対応している。３つのワイヤは保護のために二重化されている（図２には示さず）。第１のワイヤはアービトレーション（仲裁）クロックを転送するためであり、他の２つは共有されて二重機能（データクロック／アービトレーション及びデータ／スロット）を実行する。好ましくはすべてのバックプレイン信号レベルはＩＥＥＥ  フュ−チャバス＋スタンダードに整合している。共有ワイヤは全転送サイクルの第１部で第１の機能を実行し、第２部で第２の機能を実行する。すなわち転送サイクルは連続する２つの異なる区間からなる。転送サイクルの第１部はアービトレーション区間と呼び、第２部は転送区間と呼ぶことにする。共有ワイヤを再使用することによって、効率的な使用がバックプレイン信号から得られる。
【０００９】
アービトレーションクロックはシェルフ内の中央（プラグインユニット／カード）で生成されるクロックである。アービトレーションクロックは保護のために二重化されているので、スタンバイクロックはシェルフ内の他のカードで生成される。したがってもし２つのスイッチカードがある場合は、１つはメインクロックを発生し、他のカードはスタンバイクロックを発生する。以下に示すように、アービトレーションクロックは転送を希望するすべてのノードによって使用され、アービトレーション区間においてのみアクティブとなる。概してアービトレーションクロックレートは７ＭＨｚである。
【００１０】
データクロック／アービトレーションワイヤはアービトレーション区間においてアービトレーション信号を転送し、全転送サイクルのこの部分であることを示すために使用される。いったんアービトレーション区間が完了した後は、その信号はデータを転送するためのデータクロックになる。データクロックの最大周波数は通信コントローラの動作の最大速度によって制限され、概して１６ＭＨｚである。
【００１１】
データ／スロットワイヤはアービトレーション区間内のスロット信号であり、送信を希望するノードの１つがバスの制御権を”勝ちとる”点を識別するために使用される。このことについては後述する。いったんアービトレーション区間が完了するとこの信号は実際に送信されるデータとなる。データクロックレートが１６ＭＨｚであるときの最大データ転送レートは１６Ｍビット／秒である。
【００１２】
アービトレーション区間に使用される３つの信号はアービトレーションクロック、アービトレーション及びスロット信号である。アービトレーション区間は最大６４スロット（図３）に分割され、各スロットはアービトレーションクロックの立ち上がりに対応する。このスロットはバス上で最大３２のノード（マスタ／カード）を支持するために各群が３２スロットからなる２群に分割される。この２群の使用については”公平（ｆａｉｒｎｅｓｓ）”アクセス方法に関して後述する。
【００１３】
各ノードはそのカードに関連した特定のスロット番号を有し、この番号はシェルフ内の物理的位置を示している。概してスロット番号は”ハードワイヤド（ｈａｒｄ−ｗｉｒｅｄ）”構成である。
【００１４】
以下、図４を参照して、全転送サイクルにおけるデータ転送について説明する。ここでバスアイドル状態とは、アービトレーション＝スロット＝論理１（アービトレーションクロックの２つの立ち上がりに対して）の状態を示す。データを転送することを希望するどのノードも、次のクロックサイクルでアービトレーション信号をローレベルにすることによってアービトレーションサイクルを開始する。ノードが最初にデータを転送するときは、アービトレーションの開始からスロット番号を計数し、３番目のクロックサイクルをスロット０として計数する。計数がノードの物理的バックプレインスロット番号に達したときは、スロットラインはローレベルにされる。そのスロット位置に先立つスロット周期において、もし、１がスロットラインに存在するときはそのノードは仲裁に”勝つ”。一方、そのスロット位置以前のアービトレーション区間のどの時間であってもそのスロットラインに０が存在するときは、そのノードは”負け”となる。この場合、他のノードが勝ったとみなしてアービトレーション区間を終了する。ノードが勝ったという状態は、アービトレーションクロックの立ち上がりで、アービトレーション＝スロット＝論理０である状態として定義される。この時点で”勝者”を除くすべてのノードはアービトレーションとスロットラインの駆動を停止し、レシーバになる。勝者はアービトレーションクロックを”接地（ｇｒｏｕｎｄ）”し、アービトレーションの機能とスロット信号とを各々データクロックとデータになるように切り換える。この時点で転送サイクルは転送区間に入る。転送区間の終わりで勝者となったノードはアービトレーションクロックを解放して（接地を停止する）、新たなアービトレーション区間を開始できるようにする。これによって図４に示すように、アービトレーションクロックの第１周期は不完全となる。この初期パルスの周期とシェルフ内のノードの相対位置によって、転送を希望するノードはこの遷移を検出する。したがって、アービトレーション区間の開始は、転送を希望するすべてのノードがバスアイドル状態を確実に検出するためにさらにアービトレーションクロックの間遅延される。もし転送を希望するノードが２つあり、上記したノードに従ってノードＡがアービトレーションクロックの第１立ち上がりエッジでバスアイドル状態を検出し、ノードＢが次の立ち上がりエッジでバスアイドル状態を検出した場合は、ノードＡは次の（第３の）クロックサイクルでアービトレーション信号をローレベルにして２クロックサイクル後にスロット番号の計数を開始する。ノードＢは第４サイクルでアービトレーション信号をローレベルにするが、ノードＡがすでにローレベル、すなわちだれかがアービトレーション区間を開始しているので、ノードＢは次の（第５の）アービトレーションクロックからスロット番号の計数を開始する。すなわち、ノードＡ及びＢに対するスロット番号の計数はアービトレーション信号をローレベルにするために第１ノードに同期される。
【００１５】
転送区間で使用される信号はデータクロックとデータ信号である。転送はＨＤＬＣフレーム規則に従って起こり、転送はフラグシーケンスとともに開始あるいは終了する。概してＨＤＬＣフレームは８ビットの一連のフレームフラグを始めに、８／１６ビットのアドレス、８／１６ビットの制御ワード、転送すべき８×ｎビットの情報、１６／３２ビットのフレームチェックシーケンス、８ビットの最終フラグからなる。ノードがいったんシリアルバスの制御を得た後はシーケンスはデータ及びクロックから始まる。したがって、最大長ポイントツーポイントバックプレイン接続のために受信ノードが２つの信号の間に小さなタイミングスキューをもつ限り、転送区間の転送レートは通信コントローラが動作できる
最大レートによってのみ制限される。転送速度はバスの長さとは無関係である。
【００１６】
本実施例のＭＭＳＢシステムプロトコルにおける２つの信号は二重の機能をもつので、転送区間とアービトレーション区間との間の切り換え期間においてはデータの完全さが維持される。図６の転送シーケンスでは    ”きれいな（ｃｌｅａｎ）”遷移が得られる。転送の終わりは通信コントローラから送信要求信号を除去することによって検出される。最終フラグが転送される次の８つのデータクロックサイクルの後に、送信クリア信号は通信コントローラによって非アクティブにされる。最後に次の８つのクロックサイクルの後で、アービトレーションクロックを接地するドライバはオフ状態にされ、（バックプレイン上の）アービトレーションクロックを可能にして新たなアービトレーション区間が始まる。
【００１７】
転送を希望するすべてのノードに公平にアクセスできるようにするために、各ノードのスロット位置に基づく”公平”ルールが使用される。あるノードがアービトレーション区間を勝ちとった場合、次のアービトレーション区間でかつ３２スロットの第２群（図３を参照）でノードが同じ相対スロット位置をもつように、そのスロット位置に３２ビットを付加する。このことは２つの分離部を有するリーグテーブルに類似している。ある分離部ではノードはつねにその相対位置を保持するが、アービトレーション区間を勝ちとったときは第２分離部の同じ位置に移行する。この規則は、もしノードが第２群のスロットから勝ちとった場合、すなわち、ノードが第２分離部のアービトレーション区間を勝ちとった場合は、第２分離部に残る。しかしながら、もし、ノードが第２群のアービトレーション区間を開始し、最初の３２スロット周期のアービトレーション区間が勝者なしに通過したときは、ノードは最初の３２スロット周期の終わりで、そのスロット位置から３２ビットを減算して第１群に戻る。
【００１８】
次に、多数のアービトレーション方法を参照して”公平”ルールについて説明する。ここで、ノードＡと呼べれる任意のノードが転送を希望しているものとし、バックプレインの物理的スロット位置が２８に等しいものとする。
【００１９】
図７に示すように、ノードＡは最初に第１群のスロット２８にあり、この場合、ノードＡは第１群のアービトレーション区間を開始する。他のどのノードも転送を希望しておらず、スロット位置に到達したときにノードＡがアービトレーションを勝ちとる。したがってノードＡはスロット位置に３２ビットを付加して次のアービトレーション区間のために第２群に移行する。
【００２０】
図８において、次のアービトレーションサイクルでノードＡは最初に第２群に配置される。他のノード例えばスロット位置３のノードは転送を希望している。スロット３は第１群において開始されるので、スロット位置に到達したときに勝つ。しかしながら、ノードＡは第２群に残る。これは、アービトレーション区間において最初に負けた後、ノードＡが第１群にもどることができたとき、第１群で待機しているより優先度の高いノードに対して、”不公平”となるからである。
【００２１】
図９に示されるような場合は、ノードＡは再び第２群においてアービトレーション区間を開始するが、第１及び第２群の他のノードは転送を希望していない。したがってノードＡがアービトレーションに勝って第２群に残る。
【００２２】
図１０に示されるような場合は、ノードＡは第２群においてアービトレーション区間を開始する。また、第１群において他のどのノードも転送を希望していない。しかしながら、スロット位置３のノードはすでに以前のアービトレーションサイクルを勝ちとり、第２群においてこのアービトレーションを開始する。両方のノードが転送を希望し、そのスロット位置に到達したときにスロット３が勝つ。公平ルールによれば、ノードＡは第２セットで負けたので、次のアービトレーションサイクルのために第１群に戻る。
【００２３】
図１１に示すような場合は、ノードＡは第１群において開始する。スロット位置３のノードは転送を希望しており、そのスロット位置に到達したときに勝つ。したがって、この”他人が勝つ”場合は、ノードＡは次のアービトレーションサイクルのために第１群に残る。
【００２４】
図１２はバスにアクセスすることを希望するノードが最悪の場合を示している。第２群において開始するスロット位置３１におけるノードを除いて、すべてのノードが第１群においてアービトレーションサイクルを開始する場合を考える。スロット３１以外のすべてのノードは転送を希望している。スロット位置０のノードが勝って転送し、第２群に移行する。このことが起こっている場合、スロット位置３１のノードは転送を希望する。次のアービトレーションサイクル（サイクルｎ＋１からｎ＋３０）において、スロット位置１乃至３０のノードが連続して第２群に移行する。（現在第２群にある）スロット３１は転送を希望する。次のアービトレーションサイクル（ｎ＋３１）において、スロット位置０乃至３０が再び転送を希望し、ノード３１からの転送要求があるものとする。この場合はすべてのノードは第２群においてアービトレーションサイクルを開始し、すべてのノードが転送を希望する。スロット位置０のノードが勝って転送し、第２群に残る。（ノード３１を含む）すべての残りのノードは第１群へと移行する。したがってスロット位置３１のノードはノード１乃至３０が次に転送するまで待機する必要があり、スロット３１が最後に転送を許可される前に第２群へと移行する。しかしながら、このことが発生する可能性は非常に小さい。
【００２５】
本発明にかかるＭＭＳＢシステムは容易に入手可能な構成要素を使用して達成されるが、１つ以上のＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）を使用することも可能である。ＭＭＳＢシステムのハイウェイアクセス制御手段のブロック図が図１３に示されている。情報転送に係わる例えばシェルフのノード／ラインカードのすべてが反復して構成される。シェルフ上のすべてのカードを使用する必要はなく選択されたサブセットだけでよい。プロセッサ１０は単にＭＭＳＢシステムの一部ではなく、カード／ノードの処理資源である。また、メインのオンボードプロセッサである必要はなく、例えばコプロセッサでもよい。メモリ１１はプロセッサ１０と通信コントローラ１２との間で共有される。
【００２６】
バックプレインに関して送信されるメッセージは共有メモリ１１の領域かあるいは、処理資源１０によってデュアルポートＲＡＭ（ＤＰＲＡＭ）に記憶される。共有メモリはＳＧＳ−トムソンＭＫ５０Ｈ２１シリアル通信コントローラ等を使用するときに必要になる。この装置はすべての特徴、特に後述する送信要求機能を備えているので本実施例に好適する。通信コントローラはマスタとして動作するので共有メモリが要求され、ＲＡＭをプロセッサと共有する必要がある。
【００２７】
概して、別個のあるいはチェーン状のバッファデータは共有メモリ１１に記憶され、一連のリングによって参照される。単一のプロトコルがデータバッファがプロセッサ１０または通信コントローラ１２によって制御されているか否かを決定する。もしデータパケットが通信コントローラによって”所有され”転送を必要とするときは、コントローラ１２はバスアクセスコントローラＦＰＧＡ１３に送信要求（ＲＴＳ）を発行する。その後、コントローラ１３はＭＭＳＢアービトレーションプロトコルに従って送信を希望する他のノードによるバス上のアクセスを決定する。問題のノードがバスの制御を獲得したときは、上記したようにデータを送信する通信コントローラに送信クリア（ＣＴＳ）信号を送信する。
【００２８】
ノードがデータを送信していないとき、またはシリアルバスの制御を獲得しようとしていないとき（転送サイクルでないとき）はノードは自動的に受信モードになる。このモードでは通信コントローラ１２は受信したパケットのアドレスをフィルタリングし、パケットデータは共有メモリのあらかじめ割り当てられた（受信）バッファに自動的に配置される。再度単一のプロトコルがバッファの所有権をデータにアクセスして制御するプロセッサに渡すのに使用される。
【００２９】
メモリの共有された領域は図１３に示すように、デュアルポートメモリか又は、疑似デュアルポートＲＡＭ１１ａとして実現される。後者の場合は標準スタティックＲＡＭ装置が、ラッチ、バッファ、制御ロジックの構成で使用され、プロセッサ及び通信コントローラによるアクセスを可能にしている。ここで、プロセッサと通信コントローラのアクセスは同時には起こらない。ＤＰＲＡＭは高価なので、複数の大きなバッファサイズ（及び大きなメモリ装置）が要求される場合は疑似ＤＰＲＡＭ構成がコスト上有利である。しかしながら、この場合は複雑になりパフォーマンスが低下する。小さいなバッファサイズと高いデータスループットが要求される場合、すなわち高いシリアルレートが要求される場合はＤＰＲＡＭを使用することが望ましい。
【００３０】
通常の応用においては、プロセッサまたはコプロセッサはデータバッファとＤＰＲＡＭに記憶された関連するポインタ情報を管理する役目をもつ。例えば、ＥＯＳＣへの応用において、データはＭＭＳＢシリアルインタフェースを介して受信され、メッセージはＥＯＳＣで終了するかあるいは再度フォーマティングされて例えばＬＡＮコントローラに送られる。制御プロセッサとして特定用途向けのものが選択される。高いスループットと１６メガビット／秒のシリアルレートを実現するのに好ましい構成は、非マルチプレックス構成のアドレス／データバスと、１６ビットデータ転送と、３００ｎｓのオーダの最大ＤＰＲＡＭアクセスサイクル時間（アービトレーションを含む）からなっている。
【００３１】
改善されたＭＭＳＢシステムの全体的回路が図１４に示されている。共有メモリとプロセッサインタフェースは特定用途向けなのでここでは詳細に説明しない。通信コントローラの機能は概してＤＭＡ（ダイレクトメモリアクセス）コントローラとシリアルインタフェースとからなる。ＤＭＡコントローラは共有メモリに記憶されたデータバッファにアクセスする役目を持つ。コントローラは概して共有メモリを受信方向におけるフリーバッファに対して管理可能にするアルゴリズムと、どちらのバッファが転送方向に送信できるかを決定するルックアヘッド装置とを有する。さらに、メモリへのバースト転送や、異なる種類のプロセッサを仲介する能力等をも有する。シリアルインタフェースは受信及び送信チャネルからなる。いくつかの利用できる装置は二重の送信及び受信チャネルを有する。レシーバはフレームの境界を認識し、入力されるフレームチェックシーケンス（ＦＣＳ）をチェックする役目をもつ。正しくないＦＣＳ値を有するフレームは棄却される。レシーバはシリアルの入力データをパラレルフォーマットに変換し、共有メモリバッファ内の受信フレームを記憶するＤＭＡコントローラに転送する。ある種の利用可能なコントローラはリンクアイドルやフレームアボートシーケンスを検出する進んだ機能を有している。トランスミッタはＤＭＡコントローラによってアクセスされる共有メモリ転送バッファ内のデータをフレーム化したり、シリアルにしたりする役目をもつ。トランスミッタは出力されるデータのＦＣＳを計算し、得られた結果をデータに付加する。フレーム間を埋めるために生成される余分のフラグシーケンスはここでは不要である。トランスミッタはさらに送信要求及び送信クリア信号を制御する役目をもつ。これらの信号は転送サイクルを開始し、バスアクセスコントローラの全体動作を制御するのに使用される。多数の高速通信コントローラが利用可能であるが、ここに記載したバスアクセスコントローラはＲＴＳ／ＣＴＳ構成を有する通信コントローラが必要であり、上記したように、ＳＧＳ−トムソン  ＭＫ５０Ｈ２１及びモトローラ  ＭＣ６８３６０がこれらの特徴を有する。
【００３２】
バスアクセスコントローラ１３はバックプレインシリアルバス上のアクセスを制御する役目を持つ。また、転送を希望する他のノードとのアクセス優先権を決定する役目ももつ。さらに動作管理機能も備えており、メインバスで転送上の失敗があった場合は他のスレーブバスに切り換える。バスアクセスコントローラは完全な転送サイクルを動作すべく通信コントローラからのＲＴＳ／ＣＴＳ信号を使用する。さらに、バスアクセスコントローラはフューチャバス＋スタンダードに対して動作するバックプレインドライバ／レシーバ１４に対するインタフェースとなり、プロトコルが動作するのに要するスロット番号を決定するためにバックプレインに対する直接インタフェースを含んでいる。
【００３３】
転送方向のフューチャバス＋ドライバはバスアクセスコントローラ１３からのＴＴＬレベル信号をバックプレイン上のバックプレイントランシーバロジック（ＢＴＬ）レベルに変換する。同様に受信方向においても、ＢＴＬレベル信号はＴＴＬレベル信号に変換される。密集したバックプレイン内で駆動される高速信号が要求される場合は特性上フューチャバス＋スタンダードが特に好ましい。さらに、精密に設計されたバックプレインにおいて、ＢＴＬレシーバは良好なノイズ除去特性を有し、電圧変動（バス上では１ボルト）が小さいので電力消費が低減される。メイン及びスタンバイバスの保護切り換え方法を実現するためにドライバ／レシーバは２つのセット（３つの信号からなる２群）で配置されている。理想的には、メイン及びスタンバイバスが単一のデバイス内に配置できるように、十分なＢＴＬドライバ／レシーバを一体化するための装置が必要である。適当な装置として、３−３−１構成の７ＢＴＬを一体化するフィリップスＦＢ２０４３がある。
【００３４】
改善形ＭＭＳＢシステムを動作させるために各ノードには特定のスロット値、すなわち０乃至３１の範囲の数を割り当てる必要がある。この数はバックプレインのノードの物理的位置によって決定され、５つの信号からなるバスアクセスコントローラＦＰＧＡ１３上にはインタフェースが設けられる。これらはＧＮＤに固定接続されるかあるいはプルアップ抵抗（図１７）を介してＶＣＣに接続される。コントローラ１３はメインバス上のアービトレーションクロックを管理する。１ｍｓ以上の期間、クロック信号に関する非アクティブ状態が検出されたときは、ローカルプロセッサに対してインタラプトが生成される。プロセッサはスタンバイバスへの切り換えを行なうことによって他のノードと通信を確立することを試みる。これはドライバ／レシーバ１４上のメイン／スタンバイ選択信号をプロセッサによって制御可能なパラレル出力ポートに接続することによって実現される。
【００３５】
ＭＭＳＢアービトレーションプロトコルはバスアクセスコントローラ１３内で実現され、特に、クイックロジックＱＬ８×１２ＦＰＧＡ（フィールドプログラマブルゲートアレイ）または、ＦＰＧＡ（グルーロジックと呼ぶ）に外付けされた少数の要素を有するＡＬＴＥＲＡ  ＥＰＭ５０６４−１  ＥＰＬＤを使用すれば、プロトコルのタイミングに対するきびしい要求を満たすことができる。すべての要求を単一の要素内で満たすためにＡＳＩＣを使用できることは勿論である。
【００３６】
バスアクセスコントローラ１３の全体が図１５に示されている。３つの主な機能ブロックと、アービトレーションドライブ２０と、アービトレーションコントロール２１と、フェアネスリゾルーション２２とからなる。アービトレーションドライブクロック２０はバスアイドル状態を検出して通信コントローラからのデータ送信要求をラッチする役目をもつ。ロジックはアービトレーション区間におけるアービトレーション信号を駆動する。ノードがアービトレーション区間を勝ちとったときは、転送区間の間、転送クロックがアービトレーション／データクロックライン上でアクティブになる。さらに、このブロックは、通信コントローラがデータを送信可能にするためのＣＴＳ信号を発生する。アービトレーション制御ブロック２１はアービトレーション区間の終わりを表示するスロット信号を発生する役目をもつ。ノードがアービトレーション区間を勝ちとったときは、ロジックは、転送区間が完了するまでアービトレーションクロックを”接地”する。フェアネスリゾルーションブロック２２は主に、ノードの物理的バックプレイン位置によって与えられるＳＬＯＴ  ＩＤ値からのスロット周期を計数する役目をもつ。さらにロジックはノードを第１群及び第２群の間で切り換える役目をもつ。  バスアクセスコントローラ１３全体を実現するために、クイックロジックＱＬ８×１２ＦＰＧＡに加えて、少量のグルーロジックが必要である。図１６に示された構成では、グルーロジックはバスアクセスコントローラ１３全体を実現するために、ＴＥＸＡＳ  ７４ＡＣＴ１１７４等の２つのＤ形ラッチ２３と、２つの東芝製７４ＢＣＯ８あるいは同等のＡＮＤゲート２４とが、ＦＰＧＡ２５とともに具備している。
【００３７】
バスアクセスコントローラ１３の設計は送信要求信号（ＲＴＳ）と送信クリア（ＣＴＳ）信号とを特徴付ける通信コントローラを指示しているのみである。これは通信コントローラがシリアルバスへアクセスする必要があるときに何らかの表示が必要となるからである。現在利用可能な進んだコントローラの多くは送信クリア入力のみを有しており、そのような装置を実現するためにバスアクセスロジックは転送の先端フラグの状態を検出してバスアクセスが決定されるまでデータ転送を一時停止することが必要である。したがって上記したＳＧＳトムソン装置がここでは適している。さらに上記したバスアクセスコントローラ１３においては通信コントローラがプログラムされる必要があり、これより連続フレームが最小２フラグすなわち、フレーム間の大きさは最小２フラグによって分離される。これは転送区間の終わりと次のアイドル周期との間の遷移区間のよるものである。  上記した結果を有する特定のＭＭＳＢ回路は図１７と図１８に示されている。必要とする共有メモリのタイプや実現されるＲＡＭアービトレーション構成に依存するので、ここではプロセッサまたは共有メモリインタフェースの詳細な構成は示さない。図１８は通信コントローラのＲＸＤＡＴＡ入力に接続された（点線で囲まれた）７４ＢＣ０８  ＡＮＤゲート２４を付加的に含んでいる。これはＭＫ５０Ｈ２１コントローラによって特定される２ｎｓのデータ保持時間を保証する必要があるためである。
【００３８】
以下に図１９を参照してＭＫ５０Ｈ２１コントローラのバッファ管理について簡単に説明する。バッファ管理の基本的機構は記述子リングと呼ばれるメモリ内のタスクの円形の待ち行列（ｑｕｅｕｅ）である。転送と受信動作を記述するのに個々のリングがあり、１２８までのバッファが通信コントローラによって実行を待機している記述子リング上に配列される。記述子リングは各バッファに割り当てられた記述子を有する。各記述子はそのバッファの開始アドレスに対するポインタを保持し、バイトで構成されたバッファ長の間、各記述子はプロセッサまたは通信コントローラがバッファを”所有”するかどうかを記述する制御ビットを含んでいる。転送時、通信コントローラがバッファを所有するときにバッファを転送することが許可されてバッファが転送される。また、受信時、通信コントローラがバッファを所有するときは受信データをバッファ内に記憶する。バッファ管理機構は個々のバッファの長さよりも長いフレームを処理する。これは多数のバッファを使用するチェイニング（ｃｈａｉｎｉｎｇ）方法によって実行される。通信コントローラはルックアヘッドの方法で次の記述子リングをテストする。フレームが１つのバッファに対して長すぎるときは最初のバッファを満たす、すなわち、チェイニングした後で次のバッファが使用される。通信コントローラはその後次のバッファを探索し、必要に応じてそのバッファをチェイニングする。
【００３９】
【発明の効果】
本発明によれば、優れたデータ転送機能を有するマルチマスタシリアルバスシステムを提供することができる。
【図面の簡単な説明】
【図１】マルチマスタシリアルバスシステムの構成を示す図である。
【図２】３ワイヤからなるバックプレインシステムの構成を示す図である。
【図３】群及びスロット周期に分割されたアービトレーション区間を示す図である。
【図４】全転送サイクルのタイミング動作を示す図である。
【図５】信号の同期状態を示す図である。
【図６】転送区間とアービトレーション区間の間の切り換えを示す図である。
【図７】以前に勝ちがなかった場合の状態を示す図である。
【図８】最初に負ける場合の状態を示す図である。
【図９】次に勝つ場合の状態を示す図である。
【図１０】次に負ける場合の状態を示す図である。
【図１１】他人が勝つ場合の状態を示す図である。
【図１２】最悪の場合の状態を示す図である。
【図１３】ＭＭＳＢのブロック図である。
【図１４】図１３のＭＭＳＢシステムの一部を詳細に示す図である。
【図１５】バスアクセスコントローラのブロック図である。
【図１６】バスアクセスコントローラＦＰＧＡとこれに関連するグルーロジックを示す図である。
【図１７】ＭＭＳＢ（バスアクセスコントローラ及びグルーロジック）の一部を示す図である。
【図１８】特定のＭＭＳＢシステム回路（通信コントローラ及びフューチャバス＋トランシーバ）の他の部分を示す図である。
【図１９】通信コントローラバッファ管理機能を示す図である。
【符号の説明】
１…通信ハイウェイ（ＭＭＳＢ）、２…ポートカード、３…メインカード、４…スイッチカード、５…シェルフコントローラのエンド、６…サブセクション。
【図１】
0003604727.tif 000002
【図２】
0003604727.tif 000003
【図３】
0003604727.tif 000004
【図４】
0003604727.tif 000005
【図５】
0003604727.tif 000006
【図６】
0003604727.tif 000007
【図７】
0003604727.tif 000008
【図８】
0003604727.tif 000009
【図９】
0003604727.tif 000010
【図１０】
0003604727.tif 000011
【図１１】
0003604727.tif 000012
【図１２】
0003604727.tif 000013
【図１３】
0003604727.tif 000014
【図１４】
0003604727.tif 000015
【図１５】
0003604727.tif 000016
【図１６】
0003604727.tif 000017
【図１７】
0003604727.tif 000018
【図１８】
0003604727.tif 000019
【図１９】
0003604727.tif 000020