(57)【要約】【課題】      共用並列バス経由で互いに接続された複数の互いに異なるデジタルデータ処理モジュール相互間の高速データ転送を単純な回路構成で実現するデータバスシステムを提供する。【解決方法】  複雑なデジタルデータ処理システムの中のマイクロプロセッサモジュール相互間の高速データ転送を可能にする調停機能付きの並列パケット化高速データバスシステムである。この高速データバスシステムは、１２．５ＭＨｚの高速ＦＩＦＯ待ち行列動作、ＴＴＬ  ＣＭＯＳ両立レベルのクロック信号、単一バス調停、ＤＭＡおよびマルチプロセッサ向けの独特のモジュールアドレス付与を備える。データ処理モジュール相互間は共用の並列パケット化データバスで接続し、単一の順次式調停バスにより各データ処理モジュールのアクセス制御を行う。すなわち、それらデータ処理モジュールのうちの要求モジュールが固有のアドレスをその順次式調停バスに送出し、他モジュールからの要求との衝突の有無をその順次式調停バスによりモニタする。【選択図】    図７
2004318901.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理モジュール（３４）相互間で情報を伝送する複数の並列データバス（２８）と、前記複数のデータ処理モジュール（３４）のうちの要求データ処理モジュールと、前記データ処理モジュール（３４）の各々に含まれる送信ＦＩＦＯ（２４）および受信ＦＩＦＯ（２６）に接続されたバスコントローラ（２２）とを含み、前記複数のデータ処理モジュール（３４）相互間でデジタルデータを転送する高速パケット化データバスシステムにおいて、
前記データ処理モジュール（３４）のすべてに接続され前記要求データ処理モジュールが前記並列データバス（２８）へのアクセスを獲得するようにする単一の順次式調停ライン（５０）であって、前記要求データ処理モジュールがそのデータ処理モジュール自体のアドレスを前記調停ライン（５０）にランダムに送出し、そのデータ処理モジュール自体のアドレス以外のアドレスを前記調停ライン（５０）上で検出した場合に調停衝突を検出するようにする単一の順次式調停ライン（５０）と、
前記並列データバス（２８）および前記調停ライン（５０）に接続され、前記並列データバス（２８）へのアクセスの獲得の前に前記調停ライン（５０）への排他的なアクセスを必ず獲得し、それによって前記データ処理モジュール（３４）相互間の高速度データ通信を可能にするバスコントローラ（２２）と
を含むことを特徴とする高速パケット化データバスシステム。
【請求項２】
前記高速データバス上に配置したすべての前記データ処理モジュール（３４）がそれぞれ特有の調停アドレスを有することをさらに特徴とする請求項１記載のデータバスシステム。
【請求項３】
前記並列データバス（２８）が双方向性バスであり同期バスであることを特徴とする請求項１記載のデータバス。
【請求項４】
前記バスコントローラ（２２）がバス送信受信状態マシンコードを実行することを特徴とする請求項３記載のデータバス。
【請求項５】
前記要求データ処理モジュールがそのデータ処理モジュール自体の前記特有の調停アドレスを前記調停ライン（５０）上にランダムにアサートし、前記調停ライン（５０）上に存在する他の情報との衝突の有無の検出のための前記調停ライン（５０）のビットごとの監視を、前記調停ライン（５０）上の前記特有のアドレスが前記要求データ処理モジュールのバスコントローラ（２２）から完全にシフトアウトされるまで行うことを特徴とする請求項４記載のデータバス。
【請求項６】
調停の衝突が生じていないことおよび前記並列データバス（２８）が前記要求データ処理モジュールに割り当てられていることの確認を前記調停ライン（５０）から受けると直ちに前記要求データ処理モジュールがデータを前記並列データバス（２８）上にアサートすることを特徴とする請求項５記載のデータバス。
【請求項７】
前記要求データ処理モジュールの主プロセッサ（３２）がメッセージを発生し、そのメッセージを前記要求データ処理モジュールのバスコントローラ（２２）に伝達し、前記並列データバス（２８）上で前記メッセージを伝送することを特徴とする請求項６記載のデータバス。
【請求項８】
前記メッセージを受信データ処理モジュール（３４）のバスコントローラ（２２）で受信し、そのメッセージを前記受信データ処理モジュール自体のアドレスで検証するとともに内部バス（３０）経由で前記受信データ処理モジュールの前記主プロセッサ（３２）およびＤＭＡ（直接メモリアクセス）コントローラ（３３）に伝送し、前記ＤＭＡコントローラ（３３）が前記内部バス（３０）に結合した内部メモリ（４０）の制御およびデータの導入を行うことを特徴とする請求項７記載のデータバス。
【請求項９】
要求データ処理モジュール（３４）を含む複数のデータ処理モジュール（３４）相互間でディジタルデータの転送を行う高速パケット化データバスシステムであって、前記データ処理モジュール（３４）相互間で情報を伝送する複数の並列データバス（２８）と、前記データ処理モジュール（３４）のすべてを同期させる共通高速クロック信号（４２）と、前記データ処理モジュール（３４）の各々に含まれる送信ＦＩＦＯ（２４）および受信ＦＩＦＯ（２６）に結合されたバスコントローラ（２２）とを備える高速パケット化データバスシステムにおいて、
前記データ処理モジュール（３４）のすべてに結合され前記要求データ処理モジュールが前記並列データバス（２８）にアクセスできるようにする単一の順次式調停ライン（５０）と、
前記並列データバス（２８）および前記調停ライン（５０）に接続され、前記データライン（２８）へのアクセスの獲得の前に前記調停ライン（５０）への排他的なアクセスを必ず獲得し、それによって前記データ処理モジュール（３４）相互間の高速度データ通信を可能にするバスコントローラ（２２）とを含み、
前記要求データ処理モジュールがそのデータ処理モジュール自体のアドレスを前記並列データバス（２８）の調停のために前記調停ライン（５０）にランダムに送出し、前記調停ライン（５０）上の衝突を検出し、前記要求データ処理モジュールの前記アドレスの送出の成功の場合に前記順次式調停ライン（５０）を割り当て、調停の成功の場合に送信ＦＩＦＯ（２４）経由で前記並列データバス（２８）にデータをアサートし、データ転送の完了時に前記調停ライン（５０）をアサート解除する
ことを特徴とする高速パケット化データバスシステム。
【請求項１０】
受信データ処理モジュールが前記並列データバス（２８）を監視し、その受信データ処理モジュール自体のアドレスを認識し、前記並列データバス（２８）上の前記データを受信ＦＩＦＯ経由で累算することを特徴とする請求項９記載の高速パケット化データバスシステム。
【請求項１１】
複数のデータ処理モジュール（３４）相互間で情報を伝送する複数の並列データバス（２８）と、前記複数のデータ処理モジュール（３４）のうちの要求データ処理モジュールと、前記データ処理モジュール（３４）の各々に含まれる送信ＦＩＦＯ（２４）および受信ＦＩＦＯ（２６）に接続されたバスコントローラ（２２）とを含み、前記複数のデータ処理モジュール（３４）相互間でデジタルデータを転送する高速パケット化データバスシステムにおいて、
前記データ処理モジュール（３４）のすべてに接続され前記要求データ処理モジュールが前記並列データバス（２８）へのアクセスを獲得するようにする単一の順次式調停ライン（５０）と、
前記並列データバス（２８）および前記調停ライン（５０）に接続され、前記並列データバス（２８）へのアクセス獲得の前に前記調停ライン（５０）への排他的なアクセスを必ず獲得し、それによって前記データ処理モジュール（３４）相互間の高速度データ通信を可能にするバスコントローラ（２２）と
を含み、
前記要求データ処理モジュールがそのデータ処理モジュール自体のアドレスを前記並列データバス（２８）の調停のために前記調停ライン（５０）に１ビットずつランダムに送出し、前記調停ライン（５０）上の衝突を監視し、前記要求データ処理モジュールそれ自体のアドレスの全ビットが前記調停ライン（５０）に送出され終わるまで衝突、すなわち前記要求データ処理モジュール以外のデータ処理モジュールが前記調停ライン（５０）にデータをアサートすることによる衝突が生じなかった場合に前記並列データバスへのアクセスを獲得する高速パケット化データバスシステム。
【請求項１２】
前記要求データ処理モジュールがそのデータ処理モジュール自体に特有のアドレスを調停ライン（５０）に１ビットずつシフトアウトし、前記アドレスの各ビットのシフトアウトごとに衝突を監視することを特徴とする請求項１１記載の方法。
【請求項１３】
前記要求データ処理モジュールが前記アドレスのシフトアウトの途中で衝突が生じた場合に前記調停ライン（５０）へのアドレス送出を停止し、それ以外の場合に前記アドレスの全ビットのシフトアウトまで進めることを特徴とする請求項１２記載の方法。
【請求項１４】
前記要求データ処理モジュールが前記並列データバス（２８）を割り当てるとともに捕捉し、調停が成功した場合に送信ＦＩＦＯ（２４）経由でデータを前記並列データバス（２８）にアサートし、前記データ転送の完了時に関調停ライン（５０）へのデータをアサート解除する請求項１３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概括的には、一つのデータ処理モジュールと複数のデータ処理モジュールとの間のデータ転送システムに関する。より詳細にいうと、本発明は共用並列バス経由で互いに異なる複数のデジタルデータ処理モジュール相互間の情報の転送を行う高速データ通信システムに関する。
【背景技術】
【０００２】
ＣＰＵ（中央処理装置）、メモリ装置、周辺装置、Ｉ／Ｏ（入出力）装置、またはそれら以外のデータ処理装置などのデジタル装置内の通信に通信バスを使用することが多い。通信バスは、図１に示すとおり、デジタルワードのやり取りのためのひと組の共用導体である。これによって装置間の通信を単純化し、互いに別個の相互接続部を設けることを不要にしている。
【０００３】
通信バスは、通常、データラインおよびどの装置に送信または受信させるかを決めるアドレスラインと、実行中のコマンドの種類を明確にする制御ラインおよびストローブラインとの組から成る。アドレスラインおよびストローブラインは、中央処理装置から一方向にデータを伝達する。データラインは通常すべて双方向性である。
【０００４】
データラインは書込み命令の期間中にＣＰＵがアサートし、また読取り期間中に周辺装置がアサートする。ＣＰＵも周辺装置もデータラインには三状態ドライバを用いる。
【０００５】
いくつかのデータ処理装置が共用データバス経由でデータをやり取りするコンピュータシステムでは、ハイおよびロウの二つの正常電圧状態（二進数１および０をそれぞれ表す）を活性電圧プルアップによって生ずる。しかし、いくつかのデータ処理モジュールがデータバス経由でデータをやり取りしている場合は、そのバス上に配置された別の装置が同じラインを駆動できるように、第３の出力状態すなわち開回路状態を形成できなければならない。
【０００６】
三状態ドライバ、または開放コレクタドライバはバスに接続ずみの装置が自分のバスドライバを機能抑止できるようにするために用いる。すなわち、各時点でバス上にデータをアサートする装置を一つに限るためである。各バスシステムは、どの装置がデータをアサートしているかを判定するための確定プロトコルを有する。一つのバスシステムは、ドライバをイネーブルできる装置を各時点で一つに限りそれ以外のすべての装置をその時点で機能抑止する（第３の状態）ように設計してある。装置は制御ライン上で自分のアドレスを認識すると、バス上にデータをアサートできると判断する。その装置は制御ラインを監視しており、アドレスライン上で自分のアドレスおよび読出しパルスを検出するとデータをアサートする。しかし、同じラインを共用している三状態装置が同時に信号のやり取りをすることがないようにする外部論理回路が必要である。そうしないと、バス競合が発生することとなる。
【０００７】
バス制御論理回路、すなわち“バスアービタ”はバスの制御の調停に用いるプロトコル用のコードを実行する。バスマスタはＣＰＵの一部で構成でき、独立に機能させることもできる。バス制御を他の装置に担当させても差し支えないことがさらに重要である。より複雑なバスシステムを用いると、バス上に配置された別の装置にそのバスを制御させることが可能になる。
【０００８】
データ処理システムは複数のメモリ位置に蓄積ずみのプログラムされた命令を実行するプロセッサを有する。図１に示すとおり、別のデジタル装置を相互接続しているバスに、Ｉ／Ｏ装置を用いてシステムへのデータの入出力転送を行う。バスプロトコル、すなわちハンドシェーク規則は装置相互間のデータのやり取りを可能にするための予め定められた一連の過程を定めている。
【０００９】
共用バス経由でデータを伝達するには、対象のデータ、そのデータの宛先および送信時点を特定しなければならない。すなわち、データ、アドレスおよびストローブラインを特定しなければならない。ワード全体の同時転送を可能にするように、ワード中のビット数と同数のデータラインが設けてある。データ転送は付加的なストローブバスライン上のパルスで同期させる。アドレスラインの数でアドレス可能な装置の数が決まる。
【００１０】
通信バスには、同期式のものと非同期式のものとがある。同期式のバスでは、ＣＰＵまたはシステム内のどこかで生成したストローブ信号と同期してデータをバス上にアサートし、またはそのバスから取り込む。しかし、データを送出中の装置には、そのデータが受信されたかどうかは分からない。非同期式のバスでは、通信装置間のハンドシェークによりデータの受信が送信側に保証されるが、ハードウェアおよびシグナリングがそれだけ複雑になる。
【００１１】
高速で高度の計算を伴う多チャンネルデータ処理応用分野においては、多くの場合データ処理装置相互間のデータ転送を非常に高速化しなければならない。データの転送は、プログラムの介在なしにバス経由でメモリと周辺装置との間で行われる。このデータ転送は直接メモリアクセス（ＤＭＡ）としても知られている。このＤＭＡ転送においては、装置はバスへのアクセスを特別のバス要求ライン経由で要求し、バスマスタがＣＰＵへのバス開放前にそのデータの転送のしかた（バイト、ブロックまたはパケットのどの形で）を調停する。
【００１２】
データ転送には多数の互いに異なる種類のバス通信システムおよびプロトコルが現在使われている。図２の表に示すとおり、処理装置相互間でデータを操作するために多様な手法が開発されてきた。小型コンピュータシステムインタフェース（ＳＣＳＩ）や、キャリアセンス多元接続／衝突検出（ＣＳＭＡ／ＣＤ）（イーサネット）ネットワークなど標準化された並列伝送方式がある一方、強力なＳＤＬＣ／ＨＤＬＣ（同期式／高レベルのデータリンク制御）プロトコルを備えたデータ通信バスがある。その種の特定用途データバスアーキテクチャの一例が欧州特許出願第０５２５,８６０Ａ２号に記載されている。しかし、特定用途の高速動作用には、単純なデータ通信バスが望ましい。
【００１３】
【特許文献１】ＥＰ  ０  ５２５  ８６０  Ａ２公報
【特許文献２】特開平７−７３１３８号公報
【特許文献３】特開昭５８−３７７２５号公報
【特許文献４】特開平５−２５０２９３号公報
【特許文献５】実開昭５８−１３５１５２号公報
【特許文献６】特開平６−１３９１９０号公報
【特許文献７】特開平５−２５７８７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
したがって、データバスに接続された種々のプロセッサモジュール相互間におけるデータ転送およびメッセージ転送を最適化する単純なデータ処理システムアーキテクチャが必要になっている。
【００１５】
本発明の目的はデータ処理装置相互間の高速デジタルデータ伝達のためのシステムを提供することである。
【００１６】
本発明のもう一つの目的は処理ずみのデータを複数の処理モジュールからデータ処理ハードウェア全部に接続ずみのバス経由でデジタルシステムに出し入れする簡単なデータ転送の方法を提供することである。
【００１７】
本発明のさらにもう一つの目的は改良型の単純なデータ転送の方法を提供することである。
【００１８】
本発明によるこのシステムおよび方法の上記以外の目的および利点は好ましい実施例の詳細な説明から当業者に明らかになろう。
【課題を解決するための手段】
【００１９】
モジュール相互間調停ずみの並列パケット化高速制御データバスシステムを提供し、それによって複雑なデジタル処理環境におけるマイクロプロセッサモジュール相互間の高速データ授受を可能にする。このシステムは、１２．５ＭＨｚで動作する高速ＦＩＦＯ（先入れ先出し）待ち行列、ＴＴＬ
ＣＭＯＳ（相補酸化金属シリコン）と互換性のあるレベルクロック信号、単一バスマスタ調停、同期式クロック動作、ＤＭＡ、および多プロセッサシステム用の特有のモジュールアドレス指定を特徴とする単純化したハードウェアアーキテクチャを備える。本発明は、各処理モジュールに共用バスマスタを設けて通信およびデータ転送プロトコルを実行する並列データバスを含む。
【００２０】
高速モジュール間通信バス（ＨＳＢ）は種々のマイクロプロセッサモジュール相互間の通信に用いられる。このデータバスは同期式であり、完全に双方向式である。バス経由でデータの授受を行う各処理モジュールは、上述のバス制御アーキテクチャを備える。ＨＳＢは、デジタルデータ授受用の八つの共用並列バスラインと、調停およびクロック信号用の二つの追加のラインとを含む。明示的なバス要求信号も許与信号も不要である。また、ＨＳＢは単一構成要素レベルを維持しながらデータラインを二重化した冗長システム構成にすることもできる。このバスは、信号反射を最小にするように抵抗プルアップを終端装置として機能させた三状態ゲートで駆動する。
【００２１】
ＨＳＢ経由でデータを伝達するには、各処理モジュールはデータとそのデータの宛先とそのデータが有効になる時点とを特定しなければならない。バスマスタとして知られる一つのメッセージ源だけが各時点でバスを駆動できる。データの流れは双方向であるので、所定の処理モジュールマイクロプロセッサが命令を実行中にデータライン上で衝突が生ずることがないように所定のプロトコルを設定する。この調停の方法は調停バス上だけに存在する衝突の検出に依存し、バス状態判定用の状態マシンを各データ処理モジュール上に用いる。さらに、この調停の方法は菊花型連鎖を形成しておらず、システム柔軟性を確保している。
【００２２】
各処理モジュール上に配置してある状態マシンは、所定の処理モジュール内で使用するマイクロプロセッサとＨＳＢとの間の制御インタフェースである。このインタフェースに必要な回路は、送信ＦＩＦＯ、受信ＦＩＦＯ、多様な方向性／双方向性信号バッファ、およびＥＰＬＤ（消去可能でプログラム可能な論理装置）で実行される状態マシン用のソフトウェアコードから構成される。
【発明の効果】
【００２３】
共用並列バスで互いに接続された複数のデータ処理モジュール相互間の高速度データ転送を簡略化された回路構成で達成する。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して好ましい実施例を説明する。なお、図面全体を通じて同じ構成要素には同じ参照符号を付けて示してある。
【００２５】
本発明の高速モジュール間バス（ＨＳＢ）２０を単純化した形で図３に示す。この好ましい例は、バスコントローラ２２と、送信ＦＩＦＯ２４と、受信ＦＩＦＯ２６と、８ビット並列データバス２８と、順次式調停バス５０とを備える。バス２８の両端は、信号反射を最小にするように複数の抵抗性分圧器で終端してある。８ビットの内部アドレスおよびデータバス３０は、送信ＦＩＦＯ２４および受信ＦＩＦＯ２６並びにバスコントローラ２２を、所定のプロセッサモジュール３４上に配置したＣＰＵ３２およびＤＭＡ制御装置３３に結合する。内部アドレスおよびデータバス３０は、ＣＰＵ３２とバスコントローラ２２およびデータ処理モジュール３４の用途のサポートに必要なＰＲＯＭ３６、ＳＲＡＭ３８およびＤＲＡＭ４０などの多様なメモリ素子との間のデータ授受を可能にする。
【００２６】
ＨＳＢ２０は、パケット化メッセージ転送バスシステムである。本発明によって種々のプロセッサモジュール３４でデータ、制御メッセージおよび状態メッセージのやり取りができる。
【００２７】
ＨＳＢ２０は、最小の遅延で複数のプロセッサモジュール３４に高速サービスを提供する。モジュール相互間のメッセージ転送時間は、データバス２８へのアクセスのための時間および各メッセージの待ち行列処理のためのオーバーヘッドとともに短く維持してある。これらの要求は、適度の高いクロック速度および並列データバス２８のアーキテクチャを用いることによって達成される。送信ＦＩＦＯ２４および受信ＦＩＦＯ２６は、プロセッサモジュール３４のＣＰＵ３２とデータバス２８との間のインタフェースを単純化して高速化するために用いる。
【００２８】
図４を参照すると、周波数が公称12.5ＭＨｚでデューティサイクルがほぼ５０％のＴＴＬ互換性あるＣＭＯＳレベル信号を含む共通のクロック信号（ＨＳＢ＿ＣＬＫ）４２が、すべてのＨＳＢ２０の構成要素を同期させて実行する。クロック信号４２のパルスは完全なデジタルシステムの任意の部分を発生源としてもよく、その発生源はこの発明の技術的範囲外のものである。
【００２９】
並列データバス２８（ＨＳＢ＿ＤＡＴ）ライン０乃至７は、８個の双方向ＴＴＬ互換性あるＣＭＯＳレベル信号を供給する。ある時点でバス２８を駆動できるのは、メッセージ源、バスコントローラまたはバスマスタ２２のうちの一つだけである。バス調停方式は、複数の処理モジュールのどの一つがどの時点でバスマスタになれるか定める。
【００３０】
クロック４２の端縁に対するデータ２８および制御信号の遷移の関係は、受信モジュールでデータを高信頼性を保って再生するのに重要である。データを送信モジュール３４からデータバス２８上にクロック信号４２の立下り後縁に同期して出力する。次に、そのデータをアドレス指定先の受信モジュールでクロック信号４２の立上り前縁に同期して出力する。この特徴により、８進レジスタ６０に対する最小の設定時間を損なうことなく十分な設定保持のための約４０ｎ秒の時間を確保する。
【００３１】
データをデータバス２８上に送出する前に、バスコントローラ２２は起こり得るデータ衝突の防止のために調停バス５０から許可を得なければならない。メッセージ源は、多数あり得るプロセッサモジュール３４へのアクセス要求との間の調停で選択されなければならない。調停における勝者は、単一のメッセージを送出する一時的なバスマスタ権限を許与される。データ転送の終了のあと、バスマスタ権限は消滅し、別のプロセッサモジュール３４によるバス２８へのアクセスが可能になる。
【００３２】
本発明の順次式調停方法には、明示的なバス要求信号もバス許与信号も不要である。この発明の好ましい方法は、所要の集中化した優先符号化装置および通常の許与構成も複雑なシグナリングラインおよび信号ラインも不要である。この調停方法は菊花型連鎖でなく、バス２８上の任意のプロセッサモジュール位置はアドレス配線に対する変更を要することなく空塞いずれかの状態をとる。
【００３３】
本発明において、開放コレクタ調停バス５０は多数の処理モジュール３４がデータバス２８の制御で競合することを可能にする。別の処理モジュールが調停バス５０にアクセスしたかどうかをデジタルシステム内の処理モジュール３４が推測的に把握することはできないので、ＨＳＢシステム内のモジュールはＨＳＢ上のハイおよびロウレベルの論理信号を同時に出力して、調停衝突を発生させ得る。この衝突は駆動回路素子に損傷を与えることなく発生する。しかし、この衝突はバスの動作の判定の方法を提供する。
【００３４】
調停バス５０は、論理１レベルを生ずる調整電圧源に接続したプルアップ抵抗を含む。調停バスドライバ５２は、論理０レベルを駆動するように調停バス５０を接地点に接続する。その結果、他の処理モジュール３４が論理０レベルを駆動しない場合にのみ論理１が生ずる。処理モジュール３４の調停バス５０のドライバ５２のいずれかが論理０をアサートした場合は、調停バス５０はロウレベルになる。
【００３５】
当業者に周知のとおり、この接続は布線ずみのＯＲと呼ばれる。すなわち、いずれかの装置がハイレベルに駆動すると、ラインがロウレベル状態になる（デモーガンの定理）大きいＮＯＲゲートとして動作するからである。活性化したロウの受信機は論理０レベルを反転させ、等価的ＯＲゲートを生ずる。正の真論理規約を用いると布線ずみのＡＮＤが形成され、負の真論理規約を用いると布線ずみのＯＲが形成される。少なくとも一つの装置が調停バス５０を駆動しているかどうかを示すのにこれを用い、付加的な論理を必要としない。したがって、処理モジュール３４が調停バス５０上に論理１をアサートしてモニタライン５５（ＢＵＳ＿ＡＣＴ＿Ｎ）上のバッファ５３経由で論理０を監視する場合は、処理モジュール３４のバスコントローラ２２は衝突が発生しアクセスのための調停に負けたと判断する。
【００３６】
この調停方法は衝突の検出に依存し、各処理モジュール３４上のバスコントローラ２２内の状態マシン４６および４８を用いて調停の進行に伴う調停バス５０の状態を判定する。調停バス５０上の遷移はすべてバスクロック４２に同期している。各プロセッサモジュール３４は、調停バス５０に供給される特有のプログラムした２進アドレスを有する。この実施例における装置のアドレスは６ビットであり、したがって６３個の処理モジュール３４識別子が得られる。
【００３７】
ＨＳＢ２０上に配置された各プロセッサモジュール３４のバスコントローラ２２は調停バス（ＨＳＢＩ＿ＡＲＢ１＿Ｎ）５０を監視し（バッファ５３経由で）、質問する（バッファ５２経由で）。クロックされた６個以上のハイレベル信号はバスが使用中でないことを示す。処理モジュール３４がメッセージ送出を希望する場合は、自分に特有の６ビットアドレスを調停バス５０に上位ビットから順次シフトアウトすることによって調停を開始する。６ビットアドレスの各ビットがシフトアウトされて検査されるにしたがって、衝突が調停バス５０上でビットごとに発生する。最初に検出された衝突でアクセス達成希望の処理モジュール３４を調停から外す。送信中のモジュール３４の送信状態マシン４６が衝突を検出した場合は、調停バス５０の駆動を止め、検出しなかった場合は動作を続行して６ビットアドレス全体をシフトアウトする。データバス２８の制御はアドレス全体のシフトアウトを誤りなく達成した場合に行う。
【００３８】
論理０で調停バス５０がロウになるので、結果的に優先順位づけが行われる。したがって、自分のアドレスを構成している論理０の系列を順次シフトするプロセッサモジュール３４は、論理１をシフトするまで衝突を認識しない。先行０を有するアドレスは、バス５０について調停を行う際に実効的に優先順位を有する。バス２８のトラフィックが頻繁でない限り、この影響は大きくならない。
【００３９】
別の実施例においては、必要に応じてプロセッサモジュール３４相互間の等価を付加する対策をとることができる。この対策は、モジュール調停ＩＤまたはメッセージ間の待機時間を変更することによって行うことができる。
【００４０】
調停が首尾よく行われると、プロセッサモジュール３４はデータバス２８上にデータを自由に送出できる。バスコントローラ２２は、その８進バストランシーバ（ドライバ）６０をイネーブルし、宛先モジュールのアドレスとデータとをデータバス２８にクロック４２の速度で送信する。調停バス５０はこの期間のあいだ使用中を表示するために送信側のプロセッサモジュール３４でロウ状態に保持される。最大許容メッセージ長は５１２バイトである。通常は、メッセージの長さは２５６バイト以下とする。
【００４１】
データ転送が終了すると、バスコントローラ２２は、ライン５４（ＨＳＢ＿Ａ＿ＥＮ＿Ｎ）経由でその８進バストランシーバ（ドライバ）６０を機能抑止し、調停バス５０をハイレベルにして開放する。そうすると、このシステム中のどこかで別の調停が行われ得る。
【００４２】
もう一つの実施例はバス２８の調停をデータ転送と同時に行われるようにして、デジタルシステム全体のデータスループットを改善する。好ましい実施例では、遅延はほとんど無視でき、複雑化は避けられる。
【００４３】
バスコントローラ２２は、処理モジュール３４のマイクロプロセッサ３２とＨＳＢ２０との間のインタフェースおよびＨＳＢとバス（データバス２８および調停バス５０）の信号との間のインタフェースを制御する必要がある。好ましい実施例では、バスコントローラ２２は Altera 7000 シリーズのＥＰＬＤ（消去可能でプログラム可能な論理装置）で構成する。８ビットの内部データバス３０はバスコントローラ２２とプロセッサモジュール３４のＣＰＵ３２との間のインタフェースを構成する。プロセッサモジュール３４のＣＰＵ３２は内部データバス３０経由でバスコントローラ２２の内部レジスタに対する読出しおよび書込みを直接に行う。バスコントローラ２２は、調停バス５０のバス状態を監視する。この監視は、送出メッセージに対する制御を確保し、入来メッセージ受信のためのアドレスのチェックおよび認識のために必要である。バスコントローラ２２はデータＦＩＦＯ２４および２５、ＤＭＡコントローラ３３およびバスバッファイネーブル回路５４を監視するとともに制御する。
【００４４】
この好ましい実施例に用いた構成要素を表１に示す。
【００４５】
【表１】
2004318901.tif 000003
アドレスの復号およびＤＭＡのゲート制御が要求され、これらの動作がバスコントローラ２２で行われる。また、このバスコントローラ２２は読出しおよび書込みの可能な多数の内部レジスタを含む。ＣＰＵ３２は８ビットの内部データバス３０経由でバスコントローラ２２と信号を授受し命令を送出する。
【００４６】
送信ＦＩＦＯ２４へのデータ入力動作はバスコントローラ２２とこのバスコントローラ２２内のＤＭＡおよびアドレス復号回路で処理する。バス２８へのアクセスの達成およびＦＩＦＯ２４からのデータ取出しは、送信状態マシンで処理する。
【００４７】
電源オンになると、バスコントローラ２２は、ハードウェアリセットパルス５６を受ける。プロセッサモジュール３４のＣＰＵ３２で実行中のアプリケーションソフトウェアは、そのアプリケーションがモジュールリセットを要する場合は書込みストローブでバスコントローラ２２をリセットするオプションを有している。リセットのあと、バスコントローラ２２はバスアクティビティを判定しデータバス２８と同期を取るようにライン５５上で調停バス５０を監視する。
【００４８】
アクティビティなしの期間が過ぎるとバスコントローラ２２にはバス２８がメッセージ相互間の期間にあり塞状態にはないことが分かる。その場合、プロセッサモジュール３４は調停によるバス制御を要求できる。送出メッセージがない場合はバスコントローラ２２は調停バス５０の監視を続ける。
【００４９】
プロセッサモジュールＣＰＵ３２は、ほぼ２０Ｍｂｐｓで送信ＦＩＦＯ２４にメッセージを書き込む。 Motorola 68360 で構成した２５ＭＨｚ動作のＤＭＡコントローラ３３は、ほぼ１２．５Ｍｂｐｓで送信ＦＩＦＯ２４にＤＭＡ（直接メモリアクセス）を行うことができる。送信ＦＩＦＯ２４には各時点でメッセージ一つだけしか入力できないので、ＣＰＵ３２は追加の送信メッセージを自分のＲＡＭ４０にバッファしなければならない。最大許容メッセージ長は５１２バイトであり予測メッセージ平均値は２５６バイトであるので、１ＫＢのＦＩＦＯ長がオーバーフローしないことが保証される。メッセージの送出が首尾よく行われると、送信ＦＩＦＯ２４は空き状態のフラグを立て、次のメッセージを入力できるようにする。
【００５０】
プロセッサモジュール３４のＣＰＵ３２が１２．５Ｍｂｐｓで送出した通常の２５６バイトのメッセージのＲＡＭ４０から送信ＦＩＦＯ２４への伝達の所要時間は２１マイクロ秒以下である。バスが塞状態でない場合、バス調停の所要時間は１マイクロ秒以下でなければならない。一つの送信メッセージのロード動作から次のメッセージのロード動作までの合計経過時間はほぼ４３乃至６４マイクロ秒である。この時間内に待ち行列に入るメッセージは多くないので、循環ＲＡＭバッファは不要である。
【００５１】
図５および図７に示すとおり、ＤＭＡ転送期間中はＤＭＡコントローラ３３はプロセッサモジュール３４のＣＰＵ３２を機能抑止し、内部データバス３０の制御を引き受ける。ＤＭＡ転送はプロセッサモジュール３４によって、または別のプロセッサモジュール１３４からの要求によって実行する。この別のプロセッサモジュール１３４はデータバス２８の制御を首尾よく調停し、プロセッサモジュールＣＰＵ３２に信号で通知する。このＣＰＵ３２は、データ転送を開始するようにＤＭＡコントローラ３３に信号で通知する。ＤＭＡコントローラ３３は必要なアドレスを生成し、送出バイト数および送出方向を追跡する。バイトカウンタおよびアドレスカウンタはＤＭＡコントローラ３３の一部である。両者は所望のＤＭＡ転送をセットアップするようにプロセッサモジュールＣＰＵ３２からロードする。ＣＰＵ３２から命令があると、ＤＭＡ要求がなされデータがＲＡＭメモリ４０から送信ＦＩＦＯ２４に伝達される。
【００５２】
バス２８上を転送されたデータをバス２８上に配置された各処理モジュール３４によって監視する。プロセッサシステム全体におけるバスコントローラ２２の各々は、バス２８上のすべての装置の宛先アドレスを含む。整合が見出されると、その受け側プロセッサモジュール３４のＦＩＦＯ２６に対する入力をイネーブルする。このＦＩＦＯ２６は多数のメッセージを受け得るので、送信ＦＩＦＯ２４より大きい記憶容量を備える必要がある。受信ＦＩＦＯ２６は、最小で４ＫＢ×９の記憶容量を有する。この記憶容量は、２５６バイトのメッセージ長に基づき少なくとも１６個のメッセージが受信ＦＩＦＯ２６内で待ち行列に入ることを可能にする。多数の信号源からのメッセージバーストのために、多数のメッセージで受信ＦＩＦＯ２６が一時的に満杯になり得る。受信モジュールＣＰＵ３２は、受信ＦＩＦＯ２６からの適切なメッセージスループットを備えていなければならない。さもなければ、データのオーバーフローのために情報がなくなる。ＤＭＡは、受信ＦＩＦＯ２６からＲＡＭ４０にメッセージを自動的に転送するのに用いる。受信ＦＩＦＯ２６からＲＡＭ４０への転送時間は通常は２１マイクロ秒である。
【００５３】
バスコントローラ２２がメッセージを受けると、ＤＭＡサービスが要求される。図６を参照すると、ＤＭＡコントローラ３３はメッセージ受信ハードウェア割込み（ＤＭＡ
ＤＯＮＥ）を生成し、それが内部バス３０の制御を行っていることをプロセッサモジュールＣＰＵ３２に信号で通知する。割込みルーチンはメッセージ待ち行列ポインタを更新し、受信ＦＩＦＯ２６の内容をＲＡＭメモリ４０に転送する。次に、ＤＭＡコントローラ３３は次にメッセージの受信を準備し、次に利用できるメッセージバッファを指示する。この動作を、受信ＦＩＦＯ２６のすべての内容の転送が終わるまで続ける。メッセージ信号の終わりを受信ＦＩＦＯ２６によりバスコントローラ２２経由でＤＭＡコントローラ３３に送る。次に、プロセッサモジュール３４のＣＰＵ３２は内部通信バス３０の制御を取り戻す。
【００５４】
送出元から宛先へのメッセージ転送の所要時間の合計は約６４乃至８５マイクロ秒である。図７に示すとおり、この所要時間は、プロセッサモジュール３４がメッセージ送出を開始した時点から、その送信ＦＩＦＯ２４にロードし、データバス２８を調停して捕捉し、宛先受信ＦＩＦＯ１２６にそのデータを転送し、そのメッセージをＣＰＵ１３２にバスで送出し、受け側モジュール１３４のＲＡＭ１４０にそのメッセージを転送するまでの時間として計算する。実際のスループットは、ＰＣＭハイウェイ上の８Ｋｂｐｓ時間スロットのそれの約２００倍である。
【００５５】
ＨＳＢ２０の制御には二つの状態マシン、すなわち一方が情報７０を送信し他方が情報７２を受信する二つの状態マシンが必要である。これらの状態マシンは、Altera の MAX+PLUS
II, Version 6.0 の状態マシン構文の形でプログラム可能な論理としてバスコントローラ２２に実働化している。
【００５６】
状態マシンはいずれもひと組の状態と、各クロックパルス縁部でそれら状態の間を動くひと組の遷移規則とを備える。遷移規則は、現在の状態と、次のクロックの前縁における入力の特定の組合せとの両方に依存する。好ましい実施例に用いた Altera ＥＰＬＤ２２は可能性あるすべての状態の表示に十分な登録ビットと、遷移規則の実働化に十分な入力および論理ゲートを含む。
【００５７】
送信状態マシンについての概括的送信プログラム流れ図７０を図８に示す。この概括的流れ図７０には三つの状態マシン図、すなわち照会段階状態マシン７４、調停段階状態マシン７６および送信段階状態マシン７８が示してある。
【００５８】
プロセッサモジュールのＣＰＵ３２は照会段階７４を開始する。図９にはバス制御装置２２がバスアクティビティを検出するのに必要な遷移規則とともに八つの状態を示す。起動のあと送信要求をバスコントローラ２２に転送してバスアクティビティの有無を調べる。バスコントローラ２２は最小７クロックサイクルの期間にわたり調停バス５０を監視する。六個の内部バスコントローラのアドレスを衝突の有無について調べる。衝突が検出されない場合は、調停の要求を非活性化バスに行う。
【００５９】
図１０に示すとおり、調停要求はフリップフロップ８０をセットして、特有の識別子とそれに続く六つのアドレスビットとを調停ライン（ＨＳＢＩ＿ＡＲＢ１＿Ｎ）５０上に送信し始める。送出されたこれらビットのいずれかが監視されているものと同じでない場合は衝突が検出される。上記の六つのビットがバス２８に首尾よくシフトした場合はその特定のバスコントローラ２２がバスマスタの権限を有しそのバスを捕捉する。次に、送信ＦＩＦＯ２４の読出しイネーブルパルスがセットされる。これらビットのうちの一つでも衝突した場合は、調停バス５０は使用中でありプロセッサモジュール３４は調停を止める。
【００６０】
図１１を参照すると、送信ＦＩＦＯ２４の読出しイネーブルパルスがフリップフロップ８２をセットして送信イネーブルパルスを送出する。送信ＦＩＦＯ２４の内容は、バスコントローラ２２、８進バストランシーバ６０経由でデータバス２８に送出される。このデータはメッセージフラグの終わりに遭遇するまで送信される。送信ＦＩＦＯ２４が空き状態になると送信要求クリア信号が出力され、バスコントローラ２２をバス２８の監視に戻す。
【００６１】
受信ＦＩＦＯ２６の制御のための状態マシンも同様に二つの状態マシンに還元される。受信ＦＩＦＯ２６の制御の概括的フロー図を図１２に示す。
【００６２】
図１２を参照すると、バスコントローラ２２は７クロックサイクルの期間にわたって調停バス５０を監視する。バスのアクティビティは別のプロセッサモジュール３４のバスコントローラ２２からの先導開始ビットの受信で決まる。この７クロックサイクルの期間の経過のあともバスが捕捉されなかった場合は、受信警報信号を受信ＦＩＦＯ８９に入力する。
【００６３】
図１３に示すとおり、バスコントローラ２２は送信されてきたデータの最初のビットを調べそれを自分のアドレスと比較する。その最初のデータビットがそのバスコントローラ２２に特有の識別子でない場合は、そのバスコントローラ２２は監視動作状態に戻る。
【００６４】
メッセージの送信のためのソフトウェアには二つの実施例がある。第１の実施例はメッセージ送出に平均５０マイクロ秒の待機を許容する。この場合はシステムの割込みが行われないからである。これは待ち行列および待ち行列解除を単純化する。第２の実施例は、メッセージが高速で送られており、オペレーティングシステムが高速で先制的であり、システム割込みが迅速に処理され、プロセッサの遊休状態がメッセージ送出中には許容されないものと仮定している。
【００６５】
送信ＤＭＡの完了後、データバス２８の調停を行わなければならない。データバス２８の調停を首尾よく行ったあと、そのバスコントローラ２２は送信ＦＩＦＯ２４を解放し、それによりその内容をデータバス２８に送出する。空きのフラグはバスコントローラ２２およびプロセッサモジュール３４ＣＰＵ３２への転送の完了を通知する。
【００６６】
本発明の特定の実施例を図示し説明してきたが、当業者には多くの変形および変更が本発明の技術的範囲を逸脱することなく可能である。上述の説明は特定の形態の例示を意図するものであり、限定を意図するものではない。
【産業上の利用可能性】
【００６７】
共用並列バスで互いに接続した複数のデジタルデータ処理モジュール相互間の効率的データ転送を実現し、この種のデータ処理装置の簡略化、コスト削減、高速化を実現できる。
【図面の簡単な説明】
【００６８】
【図１】通常の従来技術のデータ通信バスのブロック図。
【図２】従来技術のデータバスアーキテクチャの表。
【図３】好ましい実施例の単純化したブロック図。
【図４Ａ】好ましい実施例の電気回路の概略図。
【図４Ｂ】好ましい実施例の電気回路の概略図。
【図４Ｃ】好ましい実施例の電気回路の概略図。
【図４Ｄ】好ましい実施例の電気回路の概略図。
【図４Ｅ】好ましい実施例の電気回路の概略図。
【図５】メッセージ送信ＤＭＡのブロック図。
【図６】メッセージ受信ＤＭＡのブロック図。
【図７】デジタルプロセッサシステムのブロック図。
【図８】送信命令の概括的流れ図。
【図９】問合せ段階の状態図。
【図１０】調停段階の状態図。
【図１１】送信段階の状態図。
【図１２】受信命令の概括的流れ図。
【図１３】遅延段階の状態図。
【図１４】受信段階の状態図。
【符号の説明】
【００６９】
２０    高速モジュール相互間バス（ＨＳＢ）
２２    バスコントローラ
２４    送信ＦＩＦＯ
２６    受信ＦＩＦＯ
２８    ８ビット並列データバス
３０    内部アドレスおよびデータバス
３２    ＣＰＵ
３３    ＤＭＡコントローラ
３４    データ処理モジュール
３６    ＰＲＯＭ
３８    ＳＲＡＭ
４０    ＤＲＡＭ
５０    調停バス
４２    ＨＳＢクロック
４６，４８    状態マシン
５２    調停ドライバ
５３    バッファ
５５    モニタライン
５６    リセットライン
６０    バスドライバ（８進レジスタ）
【図１】
2004318901.tif 000004
【図２】
2004318901.tif 000005
【図３】
2004318901.tif 000006
【図４Ａ】
2004318901.tif 000007
【図４Ｂ】
2004318901.tif 000008
【図４Ｃ】
2004318901.tif 000009
【図４Ｄ】
2004318901.tif 000010
【図４Ｅ】
2004318901.tif 000011
【図５】
2004318901.tif 000012
【図６】
2004318901.tif 000013
【図７】
2004318901.tif 000014
【図８】
2004318901.tif 000015
【図９】
2004318901.tif 000016
【図１０】
2004318901.tif 000017
【図１１】
2004318901.tif 000018
【図１２】
2004318901.tif 000019
【図１３】
2004318901.tif 000020
【図１４】
2004318901.tif 000021