(57)【特許請求の範囲】
【請求項１】
プロセッサが搭載された演算処理モジュールと複数のＩ／Ｏモジュールとをバスを形成するコネクタを介して接続して構成されるモジュール型計算機システムにおいて、
前記各Ｉ／Ｏモジュールは、演算処理モジュール側コネクタの同一位置の端子から入力されるモジュール選択信号を有効とするモジュール排他選択部と、該モジュール排他選択部から出力されるモジュール選択有効信号に基づいて自己のＩ／Ｏモジュールの識別情報を前記コネクタの所定端子に出力する識別情報出力部とを備え、
前記演算処理モジュールは、前記Ｉ／Ｏモジュールが接続されるコネクタ端子に前記モジュール選択信号を出力するモジュール選択信号出力部と、前記Ｉ／Ｏモジュールの前記識別情報出力部から前記コネクタの所定端子に出力される前記識別情報を取込む識別情報入力部とを備え、
前記モジュール選択信号出力部は、前記演算処理モジュールに接続された複数の前記Ｉ／Ｏモジュールに前記モジュール選択信号を順次出力し、
前記識別情報入力部は、取込んだ前記識別情報を前記モジュール選択信号の出力順に従って前記Ｉ／Ｏモジュールに対応付けて認識し、
前記演算処理モジュールは、前記識別情報入力部により認識された前記Ｉ／Ｏモジュールと前記識別情報との対応に従って、メモリから予め設定された、バスのプロトコル、アドレス・データ・制御信号のセットアップ／ホールド時間のタイミング、及びバス幅のバス制御パラメータと、前記Ｉ／Ｏモジュールのデバイスドライバとを読み出して、前記Ｉ／Ｏモジュールにアクセスすることを特徴とするモジュール型計算機システム。
【請求項２】
請求項1に記載のモジュール型計算機システムにおいて、
前記メモリは、前記Ｉ／Ｏモジュールの識別情報、前記バスのプロトコル、前記アドレス・データ・制御信号のセットアップ／ホールド時間のタイミング、及びバス幅、前記Ｉ／Ｏモジュールのデバイスドライバが対応付けて記憶されてなることを特徴とするモジュール型計算機システム。
【請求項３】
プロセッサが搭載された演算処理モジュールと複数のＩ／Ｏモジュールとをバスを形成するコネクタを介して接続して構成されるモジュール型計算機システムにおいて、
前記各Ｉ／Ｏモジュールは、演算処理モジュール側コネクタから入力されるモジュール選択信号が自己のモジュールを選択する信号か否か判別し、自己のモジュールを選択する信号のときは前記モジュール選択信号の有効信号を出力し、演算処理モジュール側コネクタから入力されるモジュール選択信号が他のモジュールを選択する信号のときは、当該モジュール選択信号を反演算処理モジュール側コネクタの端子のうち、前記自己のモジュールを選択する信号が入力された前記演算処理モジュール側コネクタの端子と同一位置の端子に伝送するモジュール排他選択部と、前記有効信号に基づいて自己のモジュールの識別情報を前記コネクタの所定端子に出力する識別情報出力部とを有し、
前記演算処理モジュールは、前記Ｉ／Ｏモジュールが接続されるコネクタ端子に前記モジュール選択信号を出力するモジュール選択信号出力部と、前記Ｉ／Ｏモジュールの前記識別情報出力部から前記コネクタの所定端子に出力される前記識別情報を取込む識別情報入力部とを備え、
前記モジュール選択信号出力部は、前記演算処理モジュールに接続された複数の前記Ｉ／Ｏモジュールに前記モジュール選択信号を順次出力し、
前記識別情報入力部は、取込んだ前記識別情報を前記モジュール選択信号の出力順に従って前記Ｉ／Ｏモジュールに対応付けて認識し、
前記演算処理モジュールは、前記識別情報入力部により認識された前記Ｉ／Ｏモジュールと前記識別情報との対応に従って、メモリから予め設定された、バスのプロトコル、アドレス・データ・制御信号のセットアップ／ホールド時間のタイミング、及びバス幅のバス制御パラメータと、前記Ｉ／Ｏモジュールのデバイスドライバとを読み出して、前記Ｉ／Ｏモジュールにアクセスすることを特徴とするモジュール型計算機システム。
【請求項４】
請求項３に記載のモジュール型計算機システムにおいて、
前記メモリは、前記Ｉ／Ｏモジュールの識別情報、前記バスのプロトコル、前記アドレス・データ・制御信号のセットアップ／ホールド時間のタイミング、及びバス幅、前記Ｉ／Ｏモジュールのデバイスドライバが対応付けて記憶されてなることを特徴とするモジュール型計算機システム。
【請求項５】
請求項３又は４に記載のモジュール型計算機システムにおいて、
前記モジュール排他選択部は、演算処理モジュール側の複数のコネクタ端子に接続された複数の配線を有し、該配線の１つを前記識別情報出力部に接続し、他の配線の１つを反演算処理モジュール側の複数のコネクタ端子のうち、前記自己のモジュールを選択するモジュール選択信号が入力された前記コネクタ端子と同一位置のコネクタ端子に接続して構成されることを特徴とするモジュール型計算機システム。
【請求項６】
請求項３又は４に記載のモジュール型計算機システムにおいて、
前記モジュール排他選択部は、Ｄ型フリップフロップのＤ端子を演算処理モジュール側のコネクタ端子の１つに接続し、前記Ｄ型フリップフロップのＱ端子を前記識別情報出力部と反演算処理モジュール側のコネクタ端子のうち、前記Ｄ端子が接続された前記コネクタ端子と同一位置の端子に接続し、クロック端子を演算処理モジュール側と反演算処理モジュール側とのコネクタ端子が共通接続される端子に接続して構成されることを特徴とするモジュール型計算機システム。
【請求項７】
請求項６に記載のモジュール型計算機システムにおいて、
前記演算処理モジュールは、前記クロック端子が接続された前記コネクタ端子をクロック信号により駆動するとともに、前記Ｄ端子が接続されたコネクタ端子をイネーブル信号により駆動することを特徴とするモジュール型計算機システム。
【請求項８】
請求項３又は４に記載のモジュール型計算機システムにおいて、
前記識別情報出力部は、自己のモジュールの識別情報を生成する識別情報生成部と、該識別情報生成部で生成された前記識別情報を前記有効信号に基づいて前記コネクタの所定端子に出力する出力活性部とを有して構成されることを特徴とするモジュール型計算機システム。
【請求項９】
請求項８に記載のモジュール型計算機システムにおいて、
前記出力活性部は、前記識別情報を入力とし、前記有効信号により開かれるゲート素子を有して構成されることを特徴とするモジュール型計算機システム。
【請求項１０】
請求項８に記載のモジュール型計算機システムにおいて、
前記識別情報生成部は、前記有効信号とクロック信号に基づいてシリアル信号の前記識別情報を生成することを特徴とするモジュール型計算機システム。
【請求項１１】
請求項３に記載のモジュール型計算機システムにおいて、
前記識別情報出力部は、前記有効信号により駆動される配線と前記コネクタの複数の所定端子とを前記識別情報に応じてＰＮ接合素子を介して接続して構成されることを特徴とするモジュール型計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能モジュールを組み合わせて構築するモジュール型計算機システムに係り、より詳細には、産業用機器やロボット等に組み込まれるコントローラに好適なモジュール型計算機システムに関する。
【背景技術】
【０００２】
複数の機能モジュールを組み合わせて計算機システムを構築する方式が種々提案されている（例えば、非特許文献１）。この文献1によれば、例えば、プロセッサを搭載した演算処理モジュールと、この演算処理モジュールと周辺機器とのインターフェースデバイスを搭載したＩ／Ｏモジュールの基板を、バスを形成するコネクタを介して積層して構成している。このようなモジュール方式の計算機システムにおいて、演算処理モジュールに搭載されたプロセッサは、Ｉ／Ｏモジュール等のシステムデバイスを管理するため、例えばＩ／Ｏモジュールに搭載されたＩ／Ｏデバイスの種類を識別し、オペレーティングシステム（ＯＳ）がＩ／Ｏデバイスを駆動するために利用するデバイスドライバを特定する必要がある。つまり、オペレーティングシステム（ＯＳ）は、Ｉ／Ｏデバイスの識別コードに対応させてデバイスドライが設定されたテーブルを検索し、識別されたＩ／Ｏドライバのデバイスドライバを特定してメモリ上に展開することにより、Ｉ／Ｏデバイスを初期化したり、要求に応じてＩ／Ｏデバイスにアクセス処理をする。
【０００３】
上記文献１においては、プロセッサが接続されたＩ／Ｏデバイスを識別するため、ＩＤＳＥＬ信号を用いてＩ／Ｏモジュールを選択するとともに、Ｉ／Ｏモジュールに含まれるＰＣＩデバイスに設けられたコンフィギュレーションレジスタの値を読み取ってＰＣＩデバイスを認識するようにしている。この場合、プロセッサ側のＰＩＣデバイスとＩ／Ｏ側のＰＩＣデバイスとをＰＩＣバスにより接続し、ＩＤＳＥＬ信号により対象のＰＩＣデバイスを物理的に指定するため、ＰＣＩバス仕様に準拠するコネクタをモジュール基板上に配置し、プロセッサ側のＰＩＣデバイスとＩ／Ｏ側のＰＩＣデバイスとの間で、ＩＤＳＥＬ信号を個別に配線することになる。このようなＰＣＩ方式のモジュールは、Ｉ／Ｏデバイスを適切に初期化する機能であるプラグアンドプレイ機能を有し、かつ高機能であり、しかも柔軟な設定ができる利点がある。このようなモジュール構成でプラグアンドプレイ機能を有する従来の方式として、ＩＳＡバス方式のデバイス認識手法等が知られている。
【０００４】
【非特許文献１】PC/104-plus Specification Version1.2：PC/104 Embedded Consortium制定（2001年8月）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、文献１に記載される従来のモジュール化手法は、産業用機器やロボット等に組み込まれるコントローラ（以下、組込みコントローラという。）に用いる計算機システムのように、任意のＩ／Ｏモジュールが組み込まれることについては配慮されていない。すなわち、従来のモジュール化技術は、具体的な用途を特定した専用計算機システムのように、組み込まれるＩ／Ｏデバイス等が特定されている場合は、設計時間や手間などはあまり問題とならないが、任意のＩ／Ｏモジュールが組み込まれる場合は、設計に時間がかかったり、製造等に手間がかかるという問題がある。
【０００６】
すなわち、産業用機器やロボット等に組み込まれる組込みコントローラに用いる計算機システムの場合は、量産時のコストを最小とするために、一般に、必要最小限の部品のみで構成する要請が強い。しかも、コントローラが組み込まれる産業用機器の小型化の要請から、実装容積を極力小さくなければならないため、組み込むモジュールを可能な限り小型化できることが望まれる。これらのことから、組込みコントローラに用いる場合は、各モジュールをできるだけ単機能とし、必要に応じて種々の機能を有する複数のＩ／Ｏモジュール等を組み合わせて、所望の機能を備えた計算機システムを構築するのが望ましい。
【０００７】
しかしながら、従来のＰＣＩ方式の場合は、ＰＣＩバスの信号線数に応じてコネクタのピンが多くなり、かつ各Ｉ／ＯモジュールにＰＣＩバス制御を行うインテリジェント素子を設けなければならないから、基板の実装面積が増大して、小型化が制限されるという問題がある。また、各モジュールを接続するバスは、ＰＣＩバス等の特定された単一のバス方式を前提とするため、バス方式が違う複数のデバイスを同一バス上で利用すると、デバイスを認識してプラグアンドプレイ機能を実現することができない。
【０００８】
したがって、組込みコントローラのように任意のＩ／Ｏモジュール等が組み込まれることを想定し、かつプラグアンドプレイ機能を持たせるには、特定のバス方式に限定されずに組み込まれたＩ／Ｏモジュールのデバイスを識別する手法が望まれる。
【０００９】
また、従来のモジュール化手法によれば、プロセッサ側のＰＩＣデバイスとＩ／Ｏ側のＰＩＣデバイスとの間で、ＩＤＳＥＬ信号を個別に配線する必要があるため、バス上に複数のＩＤＳＥＬ信号線を設け、モジュールに接続するＩＤＳＥＬ信号線をモジュール毎に個別に設定することになる。この設定は、一般に、手作業によりモジュール毎に行わなければならないため、作業工数や検査工数が増える。また、スイッチによる実装面積や価格が増大する問題があり、かつ誤設定を完全になくすことは困難である。
【００１０】
そこで、本発明は、特定のバス方式に制約されることなく、計算機システムに組み込まれたＩ／Ｏモジュールの種類等を識別することを課題とする。
【課題を解決するための手段】
【００１１】
本発明は、上記課題を解決するため、演算処理モジュールにコネクタを介して接続される各Ｉ／Ｏモジュールにモジュール排他選択部を設け、このモジュール排他選択部により演算処理モジュール側コネクタの同一位置の端子から入力されるモジュール選択信号のみを有効と判別するようにしたことを特徴とする。そして、演算処理モジュールから順次出力されるモジュール選択信号を、Ｉ／Ｏモジュールの接続順に応じて演算処理モジュール側コネクタの同一位置の端子に入力することにより、特定のバス方式に制約されることなく、簡単なモジュール選択信号及び簡単な接続構成ないし回路構成によって唯一の各Ｉ／Ｏモジュールを選択できる。また、モジュール排他選択部によって有効と判別された場合に出力されるモジュール選択有効信号に基づいて、自己のＩ／Ｏモジュールの識別情報をコネクタの所定端子に出力する識別情報出力部を設けることにより、演算処理モジュールは特定のバス方式に制約されることなく、前記コネクタの所定端子に対応する端子に接続された識別情報入力部によりＩ／Ｏモジュールの識別情報を獲得できる。例えば、接続順に従って出力するモジュール選択信号に対応したＩ／Ｏモジュールの識別情報を獲得できる。また、メモリには、Ｉ／Ｏモジュールの識別情報、バスのプロトコル、アドレス・データ・制御信号のセットアップ／ホールド時間のタイミング、及びバス幅のバス制御パラメータと、Ｉ／Ｏモジュールのデバイスドライバが対応付けて記憶されている。
【００１２】
これにより、演算処理モジュールは、獲得したＩ／Ｏモジュールと識別情報の対応関係に従って、予め設定されたバス制御パラメータとＩ／Ｏモジュールのデバイスドライバとをメモリから読み出してＩ／Ｏモジュールにアクセスすることができる。また、本発明によれば、各Ｉ／Ｏモジュールの識別に係るモジュール排他選択部を同一の構成にできるから、モジュール毎に手作業による設定が不要で、同一回路のモジュールを組み合わせた場合でもデバイスを識別することができる。
【発明の効果】
【００１３】
本発明によれば、特定のバス方式に制約されることなく、演算処理モジュールに接続されたＩ／Ｏモジュールの種類等を識別でき、そのＩ／Ｏモジュールのデバイスにアクセス可能にすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を用いて説明する。
（第１実施の形態）
図１に、本発明のモジュール型計算機システムの第１実施形態の全体構成を示す。本実施形態の計算機システムは、演算処理モジュール１と、複数のＩ／Ｏモジュール２(図では、ｎ個のＩ／Ｏモジュール２−１〜２−ｎ)を有して構成される。演算処理モジュール１は、計算機システムの構成を管理するものであり、モジュール選択信号出力部１０と、モジュールＩＤ入力部２０と、設定パラメータテーブル５０と、設定処理部６０と、通信制御部７０とを有して構成されている。
【００１５】
モジュール選択信号出力部１０は、Ｉ／Ｏモジュール２−１〜２−ｎのうち任意の１つを選択するためにモジュール選択信号３０をコネクタの信号線１１０に出力する。モジュールＩＤ入力部２０は、Ｉ／Ｏモジュール２からモジュールＩＤバス４００に出力されるモジュールＩＤ信号４０を取り込む。なお、モジュール選択信号出力部１０は、モジュール選択信号３０を駆動するための複数の出力バッファを有する。また、モジュールＩＤ入力部２０は、モジュールＩＤ信号４０の状態を取り込むために複数の入力バッファを有する。これらモジュール選択信号出力部１０とモジュールＩＤ入力部２０とは、具体的にはプロセッサとメモリ、複数のＩ／Ｏ接点入出力ピンにより構成される。モジュール選択信号出力部１０とモジュールＩＤ入力部２０とは、それぞれ個別、あるいは同一のプロセッサとメモリで制御される。プロセッサは、メモリに格納される命令列に従い複数のＩ／Ｏ接点入出力ピンを駆動し、あるいは読み取る。
【００１６】
Ｉ／Ｏモジュール２は、一般に、演算処理モジュール１から入出力要求を受け付けて、演算・保持・計算機外部への入出力を実行する。Ｉ／Ｏモジュール２は、モジュール排他選択部１００と、出力活性部２００及びＩＤ生成部３００とからなるＩＤ情報出力部と、Ｉ／Ｏデバイスである回路装置５０とを有して構成されている。
【００１７】
モジュール排他選択部１００は、隣接する他のモジュールからモジュール選択信号３０を入力し、そのモジュール選択信号３０が自己のモジュールに対する選択信号か否かを判別し、その結果をモジュール選択有効信号１３０に反映する。例えば、自己のＩ／Ｏモジュールが選択された場合、モジュール排他選択部１００は、モジュール選択有効信号１３０の電位を有効状態を表す高電位（Highレベル）にする。本明細書では、信号線の電位を有効状態に駆動することを「アサート」と称し、無効状態に駆動することを「ネゲート」と称する。Ｉ／Ｏモジュール２−１のモジュール排他選択部１００は、他方に隣接するＩ／Ｏモジュール２−２にモジュール選択信号線の信号線１２０を介してモジュール選択信号３０を出力する。本発明は、一のＩ／Ｏモジュールの信号線１１０に入力されるモジュール選択信号３０と、一のＩ／Ｏモジュールの信号線１２０を介して他のＩ／Ｏモジュールに入力されるモジュール選択信号３０とを異なる状態の信号とすることに特徴がある。この点については、後述する。
【００１８】
ＩＤ生成部３００は、Ｉ／Ｏモジュール２を特定するための識別コードであるＩＤを生成して、ＩＤデータ信号１４０を出力する。出力活性部２００は、モジュール選択有効信号１３０を受けて、その信号が有効状態の場合はＩＤデータ信号１４０をモジュールＩＤバス４００に出力する。一方、モジュール選択有効信号１３０が無効状態での場合はモジュールＩＤバス４００にＩＤデータ信号１４０を出力しない。これにより、モジュールＩＤバス４００上には唯一選択されたＩ／Ｏモジュール２のＩＤデータ信号１４０のみが出力される。
【００１９】
このように構成されることから、演算処理モジュール１は、Ｉ／Ｏモジュール２−１〜２−ｎのうち、任意のＩ／Ｏモジュールを選択するモジュール選択信号３０を出力し、この信号により選択されたＩ／ＯモジュールからＩＤデータ信号１４０をモジュールＩＤバス４００に出力させることにより、計算機システムに属する全てのＩ／Ｏモジュール２のＩＤ情報を対応付けて獲得することが可能となる。また、Ｉ／Ｏモジュール２は、モジュール選択信号３０が入力される信号線１１０と、モジュール選択信号３０を出力する信号線１２０と、モジュールＩＤバス４００を、コネクタを介して隣接するＩ／Ｏモジュール２と接続しあうことにより、信号線の増大を抑えることができる。
【００２０】
ここで、図１のモジュール排他選択部１００の具体的な一実施例を図２を用いて説明する。本発明は、モジュール排他選択部１００を同一回路で構成することを特徴とする。つまり、モジュール排他選択部１００は、演算処理モジュール側コネクタの同一位置の端子に接続された信号線１１０からモジュール選択信号３０が入力されるように構成されている。また、Ｉ／Ｏモジュール２が互いにコネクタを介して層状に連結されていても、演算処理モジュール１より任意の位置に接続されたＩ／Ｏモジュール２を選択ができることが、モジュール排他選択部１００の特徴である。
【００２１】
図２の実施例は、モジュール排他選択部１００を配線方法によって実現している。演算モジュール側に隣接するＩ／Ｏモジュール２から信号線１１０を介してモジュール選択信号３０が入力される。そのうちの信号線１１０−１をモジュール選択有効信号１３０とする。残りの信号線１１０−ｘ（ただしｘ＝２〜ｎ）は、１本づつ信号線をずらして反演算モジュール側に隣接するＩ／Ｏモジュール２の信号線１２０−｛ｘ−１｝に接続する。信号線１２０−ｎは、開放しても、信号線１１０−１と接続してもよい。すなわち、各Ｉ／Ｏモジュール２のモジュール排他選択部１００は、演算処理モジュール側コネクタの同一位置の端子（信号線１１０−１）からモジュール選択信号３０が入力されたときにモジュール選択有効信号１３０を有効状態にするように構成されている。したがって、本実施例のモジュール排他選択部１００の場合は、演算処理モジュール１は信号線１１０−１〜ｎに対応させて、モジュール選択信号３０−１〜ｎを順次出力することにより、Ｉ／Ｏモジュール２−１〜ｎを順次選択できる。例えば、演算処理モジュールに最も近いＩ／Ｏモジュール２−１を選択するために、モジュール選択信号出力部１０はモジュール選択信号３０−１をHighレベルに駆動し、他のモジュール選択信号３０−２〜ｎをLowレベルとする。これにより、Ｉ／Ｏモジュール２−１のモジュール選択有効信号１３０はモジュール排他選択部１００によりアサートされ、他のＩ／Ｏモジュール２−２〜ｎのモジュール選択有効信号１３０はモジュール排他選択部１００によりネゲートされる。同様に、演算処理モジュール１からｘ番目に離れたモジュールを選択するには、モジュール選択信号出力部１０はモジュール選択信号３０−ｘのみをHighに駆動すればよい。
【００２２】
次に、モジュール排他選択部１００によりアサートされモジュール選択有効信号１３０により、Ｉ／Ｏモジュール２からＩＤデータ信号１４０をモジュールＩＤバス４００に出力させる識別情報出力部の実施例を図３、図４を用いて説明する。図３は、ＩＤ生成部３００の構成例を示し、図４は、出力活性部２００の構成例を示す。図３に示すように、ＩＤ生成部３００は、Ｉ／Ｏモジュール２の種類や機能を特定する識別情報のＩＤデータを生成するものであり、ＩＤ生成子３１０−１〜３１０−ｍを備え、各ＩＤ生成子からＩＤデータ信号１４０−１〜１４０−ｍが出力される。ＩＤ生成子３１０は、出力するレベルを個別に設定可能な回路であり、出力するレベルとしてはHighレベルあるいはLowレベルの２値、あるいは任意の電圧レベル（多値）であってもよい。多値の電圧レベルの場合は、ＩＤ情報の情報量を増すことに有効である。ＩＤ生成子３１０にて個別に出力レベルを設定することにより、ＩＤデータ信号１４０の内容を変えることができる。。
２値を出力するＩＤ生成子３１０は、プルアップ／プルダウン抵抗、スイッチ、ジャンパーピン、フリップフロップ、ＳＲＡＭやＤＲＡＭ等の揮発メモリ、ＥＥＰＲＯＭやフラッシュメモリ等の不揮発メモリを用いることができる。また、多値を出力するＩＤ生成子３１０は、抵抗分圧回路、オペアンプなどを用いる。
【００２３】
出力活性部２００は、ＩＤ生成部３００の各ＩＤ生成子から出力されるＩＤデータ信号１４０−１〜ｍを入力とする複数のゲート素子２１０を有して構成される。ゲート素子２１０はモジュール選択有効信号１３０が有効状態の時のみゲートが開かれる素子である。これにより、出力活性部２００からは、モジュール選択有効信号１３０が有効状態のときに、ＩＤデータ信号１４０がＩＤ出力信号１５０としてモジュールＩＤバス４００に出力される。なお、モジュール選択有効信号１３０がネゲートされている場合には、ゲート素子２１０はハイ・インピーダンス状態となりＩＤ出力信号１５０は出力されない。ゲート素子２１０は、通常の３状態バッファや、ＭＯＳ（Metal  Oxide  Semiconductor）のトランスファーゲートを用いることができる。トランスファーゲートを用いる場合は、任意の電圧レベル（素子にて定められる範囲）を、入力から出力へ伝達することが可能となる。
【００２４】
ここで、演算処理モジュールによりＩ／ＯモジュールのＩＤデータ信号１４０を取得する際のタイミングチャート示す。同図は、演算処理モジュール１と２つのＩ／Ｏモジュール２−１、２−２の信号状態を図示しており、縦軸に信号の種類、横軸に時間を示す。まず、モジュール選択信号出力部１０が信号線１１０−1を駆動するモジュール選択信号３０−１をHighレベルにする。これにより、１番目に接続されたＩ／Ｏモジュール２−１のモジュール選択有効信号１３０がアサートされ、これにより出力活性部２００のゲート素子２１０が開き、ＩＤ生成部３００から０ｘ０１（０ｘは１６進数を表すプレフィックス）が出力され、これがＩＤ出力信号１５０としてモジュールＩＤバス４００に出力される。このとき、他のＩ／Ｏモジュール２からモジュールＩＤバス４００にＩＤ出力信号１５０が出力されない。したがって、演算処理モジュール１のモジュールＩＤ入力部２０は、１番目のＩ／Ｏモジュール２−１のＩＤ出力信号１５０がモジュールＩＤバス４００を介して取得する。これにより、演算処理モジュール１は、１番目のＩ／Ｏモジュール２−１にＩＤとして０ｘ０１を有するＩ／Ｏモジュールが接続されていることを認識する。次に、モジュール選択信号出力部１０は、２番目のＩ／Ｏモジュール２−２のＩＤを取得するために、モジュール選択信号３０−２を駆動し、同様にしてモジュールＩＤ入力部２０により２番目のＩ／Ｏモジュール２−２のＩＤである０ｘ０２を取得してＩ／Ｏモジュール２−２の種類を認識する。
【００２５】
以上の動作を、モジュール選択信号３０の駆動信号を変更しながら繰り返すことにより、演算処理モジュール１は、自身が管理すべき全てのＩ／Ｏモジュール２のＩＤ情報を取得することができる。このように、本実施の形態によれば、Ｉ／Ｏモジュール２を複数連結した場合でも、演算処理モジュール１のモジュール選択信号出力部１０は、任意の位置にあるＩ／Ｏモジュール２のモジュール選択有効信号１３０を駆動することができる。また、同一回路構成のＩ／Ｏモジュール２を複数連結した場合であっても、任意の位置にあるＩ／Ｏモジュール２のモジュール選択有効信号１３０のみを駆動して、選択されたＩ／Ｏモジュール２の識別情報を取得できる。
【００２６】
したがって、演算処理モジュール１は、計算機システムが組み立てられたとき、設定処理部６０からモジュール選択信号出力部１０に、接続されているＩ／Ｏモジュール２のＩＤ情報をモジュールＩＤバス４００へ出力するように指令を出すと、回路装置５１０を有するＩ／Ｏモジュール２のＩＤがモジュールＩＤバス４００を介してモジュールＩＤ入力部２０に入力される。モジュールＩＤ入力部２０はモジュールＩＤバスからＩＤを取得すると、設定処理部６０へＩＤ情報を通知する。設定処理部６０は、ＩＤ情報をキーとして設定パラメータテーブル５０を検索し、対回路装置５１０が接続されたシステムバス５００用のパラメータを取得する。設定処理部６０は取得したパラメータを通信制御部７０へ設定し、回路装置５１０へアクセスするために初期化する。なお、通信制御部７０はシステムバス信号８０とシステムバス５００とを制御するシーケンサを有している。また、設定処理部６０は取得したＩＤに基づき、アクセス先の回路装置５１０に対応したデバイスドライバを用意する。デバイスドライバは、回路装置５１０に対して必要な初期設定をおこなう。このようにして、演算処理モジュール１は、回路装置５１０に応じてシステムバス５００のパラメータを変更し、回路装置５１０へアクセスすることができる。また、回路装置５１０を初期化することができる。
【００２７】
ここで、設定パラメータテーブル５０の構成を図６に示す。図示のように、設定パラメータテーブル５０は、ＩＤと、バスのパラメータと、ソフトウェア名とを有して構成される。バスのパラメータは、例えば、バスのプロトコル、アドレス・データ・制御信号のセットアップ/ホールド時間などのタイミング、バス幅などがある。同図の例では、ＩＤ５１、バスプロトコル５２、バスのビット幅５３、チップセレクト（ＣＳ）に対するアドレス信号のセットアップ時間５４およびデバイスドライバ５５を、列方向の要素として示している。また、行方向の要素は各ＩＤの値に対応したそれぞれのパラメータのセットを示している。例えば、ＩＤの値が０ｘ０２のＩ／Ｏモジュール２は、アクセスするためのバスプロトコルはＰＣカードバスに準拠し、バスのビット幅は１６ビット、アドレスセットアップ時間は６ｎｓ、対応するデバイスドライバはＣａｒｄ．ｏであることを示している。なお、同図では行、列方向の要素を一部省略して示したが、実際の設定パラメータテーブル５０では、バスアクセスに必要な全てのパラメータをテーブル化する。また、設定パラメータテーブル５０は、メモリ上に構築するのが好適である。例えば、Ｃ言語で実装するには、各パラメータをメンバとする構造体を定義し、この構造体の配列を用意し、配列のインデックスとしてＩＤを用いると検索が容易となる。実際に計算機システムを構築する際、多くのＩＤ、すなわち多くのＩ／Ｏモジュール２をサポートすることは、保持するデバイスドライバの量や制御の複雑さが増大する点で現実的でない。そのため、実際には対応するＩＤが限られることになるが、配列を使う方法では対応しないＩＤが判るように実装することが必要であり、たとえば構造体の特定のメンバにマークをする必要がある。このようにして、ＩＤをキーとして対応するバスパラメータやデバイスドライバを検索することが可能となる。
【００２８】
次に、通信制御部７０の実施例の構成を図７に示す。通信制御部７０は、演算処理モジュール１がシステムバス信号８０へのアクセスする場合に、システムバス信号８０を制御する手順やタイミングを規定する。具体的には、バスアクセスのためのプロトコル（ＳＲＡＭインターフェースやＤＲＡＭインターフェース、ＰＣカードインターフェースなど）や、バス制御信号間のセットアップ／ホールド時間を制御する。設定処理部６０は、パラメータ設定信号６１を介してバスアクセスに関するパラメータをパラメータレジスタ７１に設定する。パラメータレジスタ７１は、必要に応じてバスシーケンサ７２−Ａ〜７２−Ｘ（まとめて７２とする）をシーケンサ切替信号７３により切り替える。例えば、ＳＲＡＭアクセスのためのバスプロトコルと、ＤＲＡＭアクセスのためのバスプロトコルとは、アドレスやデータ信号、制御信号の扱いが大きく異なる。このような場合には、バスプロトコル毎にバスシーケンサを切り替えるほうが都合がよい。バスシーケンサ７２は、パラメータレジスタ７１からの指示に応じて、バスアクセス動作のタイミングを調節する。例えば、バスシーケンサ７２は、回路装置５１０の要求する「チップセレクト信号に対するアドレスセットアップ時間規定」に応じて、アドレスを出力するタイミングを前後させる。
【００２９】
次に、設定処理部６０の動作を表すフローチャートを図８に示す。設定処理部６０は、演算処理モジュール１が管理するＩ／Ｏモジュール２を特定し、必要なバスパラメータを設定し、デバイスである回路装置５１０の初期化を行う。これらの処理は、プロセッサとメモリにより実行されるのが適当である。その際プロセッサは、メモリに格納される命令列に従いこれらの処理を実行する。
【００３０】
ここで、図８に示すバスの設定処理について説明する。設定処理部６０は、Ｉ／Ｏモジュール２におけるモジュール選択有効信号１３０を有効とするようにモジュール選択信号出力部１０に対して通知する（処理６００）。次に、設定処理部６０は、モジュールＩＤバス４００上のＩＤを取得するよう、モジュールＩＤ入力部２０へ指示を出す（処理６０１）。その結果取得されたＩＤを、設定処理部６０はモジュールＩＤ入力部２０から得る。設定処理部６０は、得られたＩＤが有効なＩＤか否かを判定する（処理６０２）。モジュール選択信号出力部１０が選択したＩ／Ｏモジュールが実在しない場合には、どのＩ／ＯモジュールもモジュールＩＤバス４００を駆動しない状態、すなわちモジュールＩＤバス４００上には無効なＩＤが存在する状態となる。そのため、設定処理部６０は得られたＩＤが有効か判定する必要がある。得られたＩＤが無効なＩＤであった場合（処理６０２での“Ｎｏ”判定）は、全てのＩ／Ｏモジュールを検査したとして『バス設定終了』に至り、処理を終了する。得られたＩＤが有効なＩＤであった場合には、設定処理部６０はＩＤをキーとして設定パラメータテーブル５０から対応するパラメータを検索する（処理６０３）。この処理は、設定パラメータテーブル５０からバスパラメータと回路装置５１０に対応したデバイスドライバの情報を得るためである。その結果、ＩＤに対応した有効なデータが存在するか検査する（処理６０４）。対応するパラメータやデバイスドライバが存在しない場合、Ｉ／Ｏモジュールが存在しても初期化すべき手順が不明として、エラー処理をおこなう（処理６０７）。エラー処理後は『バス設定異常終了』に至り、処理を終了する。エラー処理の内容として、計算機の外部に音や光、コンソール出力で通知することが管理上有効である。この際に設定処理部６０では、問題が発生したＩ／Ｏモジュール２の物理的な位置は把握できている。そこで、たとえばｎ番目のＩ／Ｏモジュール２で問題が発生したならば、音や光をｎ回断続させて通知するのが好適である。そして、バスパラメータが得られた場合、設定処理部６０は通信処理部７０に対してバスの初期化をおこなう（処理６０５）。通信処理部７０は、バスプロトコルやバス幅、バスのアクセスタイミングなどを設定される。引き続き、必要に応じてデバイスドライバにより回路装置５１０の初期化をおこなう（処理６０６）。ただし、計算機で稼動するオペレーティングシステム（ＯＳ）によっては、デバイスドライバが呼び出される順序が規定されており、この時点での設定が困難な場合もある。その場合、設定処理部６０は、ＯＳが後に適切なデバイスドライバを呼び出せるよう、ＯＳへＩ／Ｏモジュール２の設定を登録するにとどめる。処理６０６が終了すると、再び処理６００へ復帰し、前述の処理を継続する。以上の処理を『バス設定終了』に至るまでおこなうことで、全てのＩ／Ｏモジュールに関するバスの設定を網羅できる。また、処理６０５と処理６０６に関して、例えば処理６０５でおこなう処理をデバイスドライバの初期化ルーチンに含めて実装することが考えられる。この場合、処理６０５のステップは不要となる。また、設定パラメータテーブル５０に記載するのはＩＤとデバイスドライバのみでよい。処理６０５のバスパラメータの設定をデバイスドライバの処理に含めるか否かについては、利用するＯＳにあった適切な手段を選べばよい。
（第２実施の形態）
図９に、本発明のモジュール排他選択部の他の実施例を示す。本実施例のモジュール排他選択部１００は、Ｄフリップフロップ１０１を用いて構成したことにある。図２の実施例の場合、計算機システムに接続するＩ／Ｏモジュール２の最大台数に応じて、信号線１１０、１２０の本数を用意しなければならない。例えば、信号線１１０、１２０がｎ本であれば、最大接続できるＩ／Ｏモジュール２はｎ台となるから、実装面積の増大やコストの増大が問題となる。
【００３１】
この点、図９の実施例によれば、最大接続できるＩ／Ｏモジュール２の台数を制限せず、かつ入出力する信号線数を一定とすることができる。すなわち、本実施例のモジュール選択信号は、モジュール選択クロックの信号線１１０−ｃｋとモジュール選択イネーブルの信号線１１０−ｅｎの２つの信号からなる。一方のモジュール選択クロックの信号線１１０−ｃｋは、Ｄフリップフロップ１０１のクロック入力端子ＣＬＫと、モジュール選択クロック出力信号の信号線１２０−ｃｋとに接続される。他方のモジュール選択イネーブルの信号線１１０−ｅｎは、Ｄフリップフロップ１０１のデータ入力端子Ｄに接続される。Ｄフリップフロップ１０１のデータ出力端子Ｑは、モジュール選択イネーブル出力信号の信号線１２０−ｅｎと、モジュール選択有効信号１３０とに接続される。モジュール選択クロック出力信号の信号線１２０−ｃｋとモジュール選択イネーブル出力信号の信号線１２０−ｅｎは、隣接するＩ／Ｏモジュール２のモジュール選択クロックの信号線１１０−ｃｋとモジュール選択イネーブルの信号線１１０−ｅｎとへそれぞれ接続される。Ｄフリップフロップ１０１は、クロック入力端子ＣＬＫに入力される信号が、LowレベルからHighレベルへ遷移する（立ち上がる）際に、データ入力端子Ｄの値を取り込みデータ出力端子Ｑへ出力する。データ出力端子Ｑの値は、クロック入力端子ＣＬＫで信号レベルの立ち上がり変化がない限り保持される。
【００３２】
本実施例のモジュール選択動作に関するタイミングチャートを図１０に示す。図５と同様に、演算処理モジュール１と、２つのＩ／Ｏモジュール２との信号状態を図示する。縦軸に信号の種類、横軸に時間を示す。演算処理モジュール１のモジュール選択信号出力部１０は、モジュール選択イネーブル信号３０−ｅｎをHighにした後、モジュール選択クロック信号３０−ｃｋをLowレベルからHighレベルに遷移させる。その結果、１番目のＩ／Ｏモジュール２−１において、モジュール排他選択部１００のＤフリップフロップにモジュール選択イネーブルの信号線１１０−ｅｎのレベルが取り込まれ、モジュール選択イネーブル出力信号の信号線１２０−ｅｎと、モジュール選択有効信号１３０がアサートされる。１番目のＩ／Ｏモジュール２−１におけるＩＤデータ信号１４０には、１番目のＩ／Ｏモジュール２−１の種類に対応するＩＤである０ｘ０１が出力されている。結局、１番目のＩ／Ｏモジュール２−１のＩＤ出力信号１５０には０ｘ０１が出力される。この時、モジュールＩＤバス４００には、１番目のＩ／Ｏモジュール２−１のみが値を出力する。演算処理モジュール１のモジュールＩＤ入力部２０は、モジュールＩＤバス４００の値をモジュールＩＤ信号４０より取得する。
【００３３】
このようにして、演算処理モジュール１は、１番目のＩ／Ｏモジュール２−１にはＩＤとして０ｘ０１を有するＩ／Ｏモジュールが接続されていると識別し、引き続き、モジュール選択信号出力部１０は、モジュール選択イネーブル信号３０−ｅｎをLowレベルに駆動する。さらに、モジュール選択信号出力部１０は、モジュール選択クロック信号３０−ｃｋをLowレベルに戻した後、再びHighレベルに駆動する。その結果、１番目のＩ／Ｏモジュール２−１から出力されたモジュール選択イネーブル出力信号の信号線１２０−ｅｎのレベルが、２番目のＩ／Ｏモジュール２−２におけるモジュール排他選択部１００のＤフリップフロップ１０１に取り込まれる。その結果、１番目のＩ／Ｏモジュールにおけるモジュール選択有効信号１３０はネゲートされ、２番目のＩ／Ｏモジュールにおけるモジュール選択有効信号１３０はアサートされる。
【００３４】
２番目のＩ／Ｏモジュール２−２におけるＩＤデータ信号１４０には、２番目のＩ／Ｏモジュール２−２の種類に対応するＩＤである０ｘ０２が出力されている。結局、２番目のＩ／Ｏモジュール２−１のＩＤ出力信号１５０には０ｘ０２が出力される。この時、モジュールＩＤバス４００には、２番目のＩ／Ｏモジュール２−２のみが値を出力する。演算処理モジュール１のモジュールＩＤ入力部２０は、モジュールＩＤバス４００の値をモジュールＩＤ信号４０より取得する。以下同様にして、演算処理モジュール１は、２番目のＩ／ＯモジュールにＩＤとして０ｘ０２を有するＩ／Ｏモジュールが接続されていることを認識する。同様にしてモジュール選択信号出力部１０がモジュール選択クロック信号３０−ｃｋをトグル動作（LowレベルからHighレベル、さらにその逆に信号線を駆動）させることにより、モジュールＩＤ入力部２０は、接続されているＩ／ＯモジュールのＩＤを次々に取得することが可能となる。
【００３５】
最終的に、演算処理モジュール１から最遠端のＩ／Ｏモジュール２がＩＤを出力した後は、モジュールＩＤバスにはＩＤが出力されない。モジュールＩＤ入力部２０は、その状態をモジュールＩＤバス４００から判定し、Ｉ／Ｏモジュール２の検査を終了する。
（第３実施の形態）
図１０に、モジュール排他選択部の他の実施例を示す。本実施例の特徴は、モジュール排他選択部１００が、モジュール選択信号出力部１０と通信してモジュール選択制御をすることにある。モジュール排他選択部１００は、命令送受信部１０２と、モジュール選択信号スイッチ部１０３、制御実行部１０４を有する。命令送受信部１０２と制御実行部１０４との間は、制御要求や要求完了を通知するための要求通知信号１０５で接続されている。制御実行部１０４は、スイッチ動作を指示するためのスイッチ制御信号１０６により、モジュール選択信号スイッチ部１０３と接続する。命令送受信部１０２は、モジュール選択信号出力部１０からの制御を信号線１１０−ｃｍｄより受信する。ここで信号線１１０−ｃｍｄは、単線でも複数線でもよい。単線であれば、信号線のレベル変化によるシリアル通信で、モジュール選択信号出力部１０と命令送受信部１０２は通信する。複数線であれば、例えば複数のビット幅からなるコマンド信号とデータ信号により通信をおこなう。さらに、モジュール選択信号の信号線１１０−ｃｍｄとモジュール選択応答信号の信号線１１０−ａｃｋは個別に用意しなくてもよい。例えば、時分割で排他的に信号線の駆動をおこなえば、同一信号線で共用することが可能である。
【００３６】
さて、モジュール選択信号の信号線１１０−ｃｍｄからの命令を受けた命令送受信部１０２は、受信した命令を解釈し必要な処理を制御実行部１０４に指示する。命令送受信部１０２は、指示した処理の結果を制御実行部１０４より受ける、あるいは自身で処理してモジュール選択応答信号の信号線１１０−ａｃｋによりモジュール選択信号出力部１０へ応答する。命令送受信部１０２は、初期状態として設定未完了状態であり、設定完了フラグ１０７はクリア状態である。命令送受信部１０２は所定の処理が完了すると、モジュール選択信号出力部１０より設定完了命令を受信する。設定完了命令を受けると、命令送受信部１０２は内部で保持する設定完了フラグ１０７をセットし設定完了状態となる。
【００３７】
制御実行部１０４は、モジュール選択信号スイッチ部１０３を開閉制御、あるいはモジュール選択有効信号１３０を駆動制御する。制御実行部１０４は、これらの処理を実行するよう命令送受信部１０２より指示を受ける。
【００３８】
モジュール選択信号スイッチ部１０３は、制御実行部１０４からのスイッチ開閉制御指示を、スイッチ制御信号１０６を介して受けると、モジュール選択入力信号の信号線１１０とモジュール選択出力信号の信号線の信号線１２０とを接続あるいは切断、すなわちスイッチの開閉制御をおこなう。スイッチ素子として、ＭＯＳのトランスファーゲートのような半導体スイッチや、リレーのような機械スイッチが挙げられる。モジュール選択信号スイッチ部１０３のスイッチの状態として、電源投入直後は開（切断）状態であるとする。なお、上記ではモジュール選択有効信号１３０の駆動制御を制御実行部１０４が指示を受けておこなうとしたが、命令送受信部１０２が直接モジュール選択有効信号１３０を駆動したり、スイッチ開閉制御をしたりしてもよい。
【００３９】
図１２に、本実施の形態のモジュール選択信号出力部１０から発行される命令パケットの構造を示す。命令パケットは、あて先アドレス４３０とコマンド４３１から構成される。図１２は、コマンドの一覧を示している。あて先アドレス４３０として、命令送受信部１０２が設定未完了状態の場合に応答を受ける特別なアドレスと、それ以外のアドレスがある。設定完了フラグ１０７がクリア状態の場合、命令送受信部１０２は設定未完了状態であり特別なアドレス（図１２では０ｘ００）に応答する。命令送受信部１０２は、全ての命令送受信部１０２の間で独立となるような固有アドレス１０８を有する。命令パケットのあて先アドレス４３０に固有アドレス１０８を指定することで、特定の固有アドレス１０８を有するＩ／Ｏモジュール２に対し、コマンド４３１を送付することが可能となる。命令送受信部１０２が受信するコマンドとして、例えば、命令送受信部１０２の固有アドレス１０８を通知させるIdentifyコマンド、モジュール選択有効信号１３０を制御するコマンド、モジュール選択信号スイッチ部１０３を制御するコマンド、設定完了フラグ１０７をセットするコマンドがある。
【００４０】
図１２では、あて先アドレス４３０として８ビットの数値を挙げたが、それに制限されるものではない。また命令パケットは、モジュール選択信号３０の本数に限定されず、単線によるシリアル通信、あるいは複数線による他ビット幅通信のいずれで対応する。
【００４１】
図１３は、本実施の形態のモジュール選択動作に関するシーケンス図を示す。本シーケンス図は、各構成要素が時系列にそって相互に作用する様子を表すものであり、上から下へ時間が経過することを表す。図１３を用いて、複数接続されたＩ／Ｏモジュール２のＩＤ情報を取得するアルゴリズムを説明する。まず、全てのモジュール選択信号スイッチ部１０３は開（切断）状態にあるとする。また、全ての命令送受信部１０２における設定完了フラグ１０７はクリア状態である。
［処理１］モジュール選択信号出力部１０は、直接に接続されているＩ／Ｏモジュール２を識別するために、Identify命令を送信する（手順４５１）。Identify命令は、あて先アドレス４３０として０ｘ００、すなわち設定未完了状態のモジュールを対象とし、かつコマンド４３１にはIdentify要求を含む命令パケットで表される。はじめは、モジュール選択信号スイッチ１０３が開状態であるため、当該命令パケットは、演算処理モジュール１に隣接するＩ／Ｏモジュール２−１にのみ到達する。Ｉ／Ｏモジュール２−１における命令送受信部１０２は、受信した命令をデコードする（手順４５２）。Identify命令を受信した命令送受信部１０２は、自身が有する固有アドレスを応答する（手順４５３）。その結果、モジュール選択信号出力部１０は、隣接しているＩ／Ｏモジュール２−１が有する固有アドレス１０８を取得する。
［処理２］次に、モジュール選択信号出力部１０は、モジュール選択命令を送信する（手順４５４）。モジュール選択命令は、直前に取得した固有アドレス１０８をあて先アドレス４３０とし、モジュール選択有効要求を示す０ｘ０２をコマンド４３１に含む命令パケットである。命令送受信部１０２は、命令をデコードする（手順４５２）。その結果、命令送受信部１０２は自身に対するモジュール選択命令であると解釈する。そこでモジュール選択有効信号１３０をアサートするように、モジュール選択有効要求を制御実行部１０４へ指示する（手順４５５）。制御実行部１０４は、モジュール選択有効信号１３０をアサートし、その結果を命令送受信部１０２に返答する（手順４５６）。応答を得た命令送受信部１０２は、処理が終了した旨をモジュール選択信号出力部１０へと返答する（手順４５７）。
［処理３］その後、モジュール選択信号出力部１０はモジュールＩＤ入力部２０に通知し、モジュールＩＤ入力部２０はＩＤ情報を取得する。
［処理４］モジュール選択信号出力部１０は、モジュール選択を解除する命令（コマンド４３１に「モジュール選択無効要求」を含める）を送信する。処理２と同様に、当該命令を受信した命令送受信部１０２は、モジュール選択有効信号１３０をネゲートするよう制御実行部１０４に指示する。制御実行部１０４はモジュール選択有効信号１３０をネゲートし、その結果を命令送受信部１０２に返答する。応答を得た命令送受信部１０２は、処理が終了した旨をモジュール選択信号出力部１０へと返答する。
［処理５］モジュール選択信号出力部１０は、設定完了命令（コマンド４３１に設定完了フラグセットを含める）を送信する。命令送受信部１０は、自身が持つ設定完了フラグ１０７を１にセットし、応答をモジュール選択信号出力部１０へ返答する。
［処理６］モジュール選択信号出力部１０は、スイッチ閉命令（コマンド４３１に「モジュール選択信号スイッチ閉制御」を含める）を送信する（手順４５８）。命令をデコードした命令送受信部１０は、モジュール選択信号スイッチ部１０３を閉じるよう制御実行部１０４へ指示する（手順４５９）。制御実行部１０４は、モジュール選択信号スイッチ部１０３を閉じた旨を命令送受信部１０へ応答する（手順４６０）。そして、命令送受信部１０２はスイッチ閉が完了した旨をモジュール選択信号出力部１０へ通知する（手順４６１）。全てのＩ／Ｏモジュール２に対して、モジュール選択信号出力部１０は以上の処理１から処理６を繰り返す。処理１により、設定完了フラグが１にセットされていない命令送受信部１０２を有するＩ／Ｏモジュール２が反応し、固有アドレスを返答する。そしてモジュール選択信号出力部１０は、処理２から処理６を順次実行する。
【００４２】
以上を繰り返すことにより、演算処理モジュール１に隣接する順番に、Ｉ／Ｏモジュール２は自身の固有アドレスを報告し、当該Ｉ／ＯモジュールのＩＤ情報を出力する。よってモジュールＩＤ入力部２０は、順番にＩＤ情報を取得することが可能となる。最終的にモジュールＩＤ入力部２０が、全てのＩ／Ｏモジュール２のＩＤ情報を取得した時点で、本アルゴリズムは終了する。この時点でモジュール選択信号出力部１０は、物理的なＩ／Ｏモジュール２の接続順と固有アドレス１０８との対応付けが完了している。また同様にＩ／Ｏモジュール２の接続順とＩＤ情報との対応付けも完了している。
（第４実施の形態）
図１４に、本発明の計算機システムの実施の形態を示す。本実施の形態の特徴は、モジュール選択信号出力部１０がモジュールＩＤクロック信号３１を出力し、ＩＤ生成部３００はモジュールＩＤクロック入力信号１１１を受けてＩＤ出力信号１５０を出力する点が挙げられる。
【００４３】
まず、モジュール選択信号出力部１０は、先に説明した実施の形態と同様の手順によりモジュール選択有効信号１３０をアサートさせる。その後、モジュール選択信号出力部１０は、モジュールＩＤクロック信号３１をトグルする。その結果、モジュールＩＤクロック入力信号１１１のトグルに同期して、ＩＤ出力信号１５０へＩＤ情報が出力される。本実施の形態によれば、モジュールＩＤ入力部２０は、少ない本数（例えば１本）のモジュールＩＤバス４００から多くのビットを有するＩＤ情報を取得することが可能となる。
【００４４】
図１５に本実施の形態のＩＤ生成部３００の構成を示す。ＩＤ生成子３１０、セレクタ３２０、Ｄフリップフロップ３３０を一単位とし、これらが複数個（図１２ではｋ個）連結して構成される。ＩＤ生成子３１０−１〜ｋは、図４と同様である。また、Ｄフリップフロップ３３０−１〜ｋは、図９と同様である。セレクタ３２０−１〜ｋは、モジュール選択有効信号１３０がアサートされている場合、”１”が付された入力信号を選択して出力し、モジュール選択有効信号１３０がネゲートされている場合、”０”が付された入力信号を選択して出力する素子である。モジュール選択有効信号１３０がアサートされている際に、モジュールＩＤクロック入力信号１１１をトグルすることにより、ＩＤ生成子３１０−１〜ｋの値が順にＩＤデータ信号１４０へ出力される。
【００４５】
図１６に、本実施の形態のＩＤ生成部３００の動作を表すタイミングチャートをしめす。はじめにＩＤデータ信号１４０は、ｋ番目のＩＤ生成子３１０−ｋの値を出力している。ＩＤ生成部３００における各Ｄフリップフロップ３３０−１〜ｋは、ＩＤ生成子３１０−１〜ｋの値を出力しているものとする。モジュール選択有効信号１３０がアサートされると、ＩＤデータ信号１４０の値は出力活性部２００を介してモジュールＩＤバス４００へ出力される（時点４８０）。次に、モジュール選択信号出力部１０がモジュールＩＤクロック信号３１をLowレベルからHighレベルへ駆動すると、各Ｄフリップフロップ３３０−１〜ｋはセレクタ３２０−１〜ｋの出力を保持しＱ端子へ出力する（時点４８１）。この時点でセレクタ３２０−１〜ｋは全て”１”が付された入力信号を選択している。結局、ＩＤ生成部３００では、前段のＤフリップフロップの値を次段のＤフリップフロップが取り込むシフト動作が行われる。その後、モジュールＩＤクロック信号３１をモジュール選択信号出力部１０がトグルすると、それに同期してＩＤデータ信号１４０へＩＤ生成子３１０の値が順次出力される（時点４８２〜４８５）。ＩＤデータ信号１４０に出力された値は、出力活性部２００を介してモジュールＩＤバス４００へ出力される。全てのＩＤ生成子３１０の値を出力した後、モジュール選択有効信号１３０はネゲートされる。その後、モジュール選択信号出力部１０は、モジュールＩＤクロック信号３１をLowレベルからHighレベルへと駆動する（時点４８６）。この動作により、全てのＤフリップフロップ３３０−１〜ｋはＩＤ生成子３１０−１〜ｋの値で初期化される。このようにして、ＩＤ生成部３００はＩＤデータ信号１４０へＩＤ情報を出力する。
【００４６】
なお、Ｄフリップフロップ３３０−１〜ｋの値を初期化するために、モジュール選択信号出力部１０は、モジュール選択をする前にモジュールＩＤクロックを少なくとも１回はLowレベルからHighレベルへ駆動する必要がある。
（第５実施の形態）
図１７に、本発明の計算機システムの他の実施の形態の構成を示す。本字実施の形態の特徴は、ＩＤ生成部３００と出力活性部２００とを兼ね備えたＩＤ出力部２５０を設けたことである。モジュール選択有効信号１３０がＩＤ出力部２５０に入力されると、ＩＤ出力部２５０で定められるＩＤ情報がＩＤ出力信号１５０を介してモジュールＩＤバス４００へ出力される。ＩＤ出力部２５０は、駆動する必要のある信号線のみ、LowあるいはHighレベルへ駆動する。モジュール選択有効信号１３０がアサートされている場合にモジュールＩＤバスの複数信号線をLowレベルに駆動するＩＤ出力部２５０であれば、モジュールＩＤバス４００はプルアップ抵抗によりレベルを保持する必要がある。また、モジュール選択有効信号１３０がアサートされている場合にモジュールＩＤバスの複数信号線をHighレベルに駆動するＩＤ出力部２５０であれば、モジュールＩＤバス４００はプルダウン抵抗によりレベルを保持する必要がある
図１８に、本実施の形態のＩＤ出力部２５０の具体的な構成を示す。図において、ＩＤ出力部２５０はダイオード２６０を有する。ダイオード２６０は、モジュール選択有効信号１３０からＩＤ出力信号１５０の各信号線に直列に配置される。図１８ではダイオード２６０を全てのＩＤ出力信号線１５０に接続しているが、実際には出力すべきＩＤ情報に応じてダイオード２６０を挿入あるいは削除する。ダイオード２６０を削除する場合には、当該信号線は開放となる。これにより、モジュール選択有効信号１３０の挙動如何にかかわらず、該当するＩＤ出力信号１５０はハイ・インピーダンス状態となる。
【００４７】
ここで、モジュールＩＤバス４００はプルダウン抵抗によりLowレベルが保持されているとする。モジュール選択有効信号１３０がアサートされると、ダイオード２６０からの出力がHighレベルとなる。そのため、ダイオード２６０が直列に接続されたＩＤ出力信号１５０の一部分はHighレベルを出力し、ダイオード２６０が接続されていない、開放されているＩＤ出力信号１５０の他の部分はLowレベルのままとなる。結果として、モジュールＩＤバス４００は、モジュール選択有効信号１３０がアサートされると対応するＩＤ情報が出力される。
【００４８】
図１８において、ダイオード２６０の代わりにオープンコレクタ出力のトランジスタ（あるいはそれに相当するバッファ）を用いてもよい。その場合、モジュール選択有効信号１３０がアサートされると、トランジスタが挿入されたＩＤ出力信号１５０はLowレベルを出力する。この時モジュールＩＤバス４００をプルアップ抵抗によってHighレベルに保持しておけば、同様にＩＤ情報をモジュールＩＤバス４００へ出力することが可能である。
（第６実施の形態）
図１９に、本発明を適用した計算機システムのモジュール実装方法の実施形態を示す。本実施形態では、１つの演算処理モジュール１と複数のＩ／Ｏモジュール２を積層する構成を表している。演算処理モジュール１はプリント基板上に回路を構成し、その片面にコネクタ９０を実装する。コネクタ９０は、Ｉ／Ｏモジュール２の片面にあるコネクタ９１と結合するよう配置されている。同様にＩ／Ｏモジュール２はプリント基板上に回路を構成し、その片面にコネクタ９１、他方の面にコネクタ９２を実装する。コネクタ９０は、演算処理モジュール１の入出力信号をＩ／Ｏモジュール２へ接続するための部品であり、その入出力信号にはモジュール選択信号３０、モジュールＩＤ信号４０、システムバス信号８０を含む。コネクタ９１は、演算処理モジュール１から、あるいは他のＩ／Ｏモジュールからの入出力信号をＩ／Ｏモジュール２内部の回路へ接続するための部品である。コネクタ９１は、モジュール選択入力信号の信号線１１０、モジュールＩＤバス４００、システムバス５００を含む。コネクタ９２は、Ｉ／Ｏモジュール２からの入出力信号を他のＩ／Ｏモジュールへ接続するための部品であり、モジュール選択出力信号の信号線の信号線１２０、モジュールＩＤバス４００、システムバス５００を含む。コネクタ９２とコネクタ９１とは互いに嵌合するよう構成される。同様に、コネクタ９０とコネクタ９１とは互いに嵌合する。
【００４９】
このように構成することにより、Ｉ／Ｏモジュール２は演算処理モジュール１とも他のＩ／Ｏモジュール２とも接続することが可能となる。よって、演算処理モジュール１に対して、必要な個数だけＩ／Ｏモジュール２を積層して接続することができ、柔軟に計算機システムを構成することが可能となる。
（第７実施の形態）
図２０に、本発明を適用した計算機システムのモジュール実装方法の他の実施の形態を示す。本実施の形態は、１つの演算処理モジュール１と複数のＩ／Ｏモジュール２をバックボード９３上に接続する構成を表している。
【００５０】
バックボード９３は、コネクタ９４とコネクタ９５−１〜９５−ｎを有し、それらのコネクタはそれぞれ基板を挿入保持するスリットを有し、演算処理モジュール１の基板上の接点やＩ／Ｏモジュール２の基板上の接点と、電気的に接続するための電極を有する。コネクタ９４、９５−１〜９５−ｎは、スリットに挿入された基板の接点と、バックボード上の配線とを接続する。コネクタ９４とコネクタ９５−１との間は、モジュール選択信号３０とモジュール選択入力信号の信号線１１０、モジュールＩＤ信号４０とモジュールＩＤバス４００、システムバス信号８０とシステムバス５００が、それぞれ接続するようバックボード９３上で配線する。また、コネクタ９５−ｊとコネクタ９５−｛ｊ＋１｝（ただしｊ＝１〜ｎ−１）との間は、コネクタ９５−ｊのモジュール選択出力信号の信号線１２０とコネクタ９５−｛ｊ＋１｝のモジュール選択入力信号の信号線１１０、コネクタ９５−ｊのモジュールＩＤバス４００とコネクタ９５−｛ｊ＋１｝のモジュールＩＤバス４００、コネクタ９５−ｊのシステムバス５００とコネクタ９５−｛ｊ＋１｝のシステムバス５００が、それぞれ接続するようにバックボード９４上で配線する。コネクタ９４に演算処理モジュール１を挿入し、９５−１〜９５−ｎには演算処理モジュール１からの配線が連結するようにＩ／Ｏモジュール２を挿入することで、計算機を構成する。
【００５１】
なお、図２０では基板を直接コネクタのスリットに挿入する構成を示したが、基板上とバックボード９３の両方にコネクタを実装してもよい。その場合、それぞれのコネクタは勘合するよう構成する。基板上のコネクタをバックボード上のコネクタに結合することで、計算機を構成する。
【００５２】
また、バックボード９３と演算処理モジュール１とは同一基板に形成しても良い。その場合、演算処理モジュール１上にコネクタ９５を実装し、コネクタ９５にＩ／Ｏモジュール２を接続する構成となる。このような構成とすることで、バックボードを個別に用意することなく、拡張性を確保することができる。
【００５３】
以上説明したように、本発明の各実施の形態によれば、プロセッサがバスに接続される複数のデバイスをバス方式によらずに認識し、任意のバス方式を持つデバイスへアクセスできる。また、モジュール毎に手作業による設定を不要とし、同一回路のモジュールを組み合わせた場合でも、プロセッサはデバイスを認識することが可能となる。
【図面の簡単な説明】
【００５４】
【図１】本発明に係る計算機システムの第１実施形態の全体構成図である。
【図２】第１実施形態のモジュール排他選択部の詳細構成図である。
【図３】第１実施形態のＩＤ生成部の詳細構成図である。
【図４】第１実施形態の出力活性部の詳細構成図である。
【図５】第１実施の形態の動作を説明するタイミングチャートである。
【図６】第１実施形態の設定パラメータテーブルの構成を示す図である。
【図７】第１実施形態の通信制御部の構成を示す図である。
【図８】第１実施形態のバスの初期化の手順を示すフローチャートである。
【図９】本発明の計算機システムの第２実施形態に係るモジュール排他選択部の詳細構成である。
【図１０】第２実施形態の動作を説明するタイミングチャートである。
【図１１】本発明の計算機システムの第３実施形態に係るモジュール排他選択部の詳細構成である。
【図１２】第３実施形態のモジュール選択信号出力部から発行される命令パケットの構成図である。
【図１３】第３実施形態の処理手順を示すフローチャートである。
【図１４】本発明の計算機システムの第４実施形態に係る全体構成図である。
【図１５】第４実施形態のＩＤ生成部に係る詳細構成図である。
【図１６】第４実施形態の動作を説明するタイミングチャートである。
【図１７】本発明の計算機システムの第５実施形態に係る全体構成図である。
【図１８】第５実施形態のＩＤ出力部に係る詳細構成図である。
【図１９】本発明に係る計算機システムのモジュール実装方法の一実施形態を示す図である。
【図２０】本発明に係る計算機システムのモジュール実装方法の他の実施形態を示す図である。
【符号の説明】
【００５５】
１…演算処理モジュール、２…Ｉ／Ｏモジュール、１０…モジュール選択信号出力部、２０…モジュールＩＤ入力部、３０…モジュール選択信号、４０…モジュールＩＤ信号、５０…設定パラメータテーブル、６０…設定処理部、７０…通信制御部、８０…システムバス信号、９０〜９２…コネクタ、９３…バックボード、９４〜９５…コネクタ、１００…モジュール排他選択部、１１０…信号線、１２０…信号線、１３０…モジュール選択有効信号、１４０…ＩＤ、２１０…ゲート素子、２５０…ＩＤ出力部、３００…ＩＤ生成部、４００…モジュールＩＤバス、５００…システムバス、５１０…回路装置
【図１】
0004453107.tif 000002
【図２】
0004453107.tif 000003
【図３】
0004453107.tif 000004
【図４】
0004453107.tif 000005
【図５】
0004453107.tif 000006
【図６】
0004453107.tif 000007
【図７】
0004453107.tif 000008
【図８】
0004453107.tif 000009
【図９】
0004453107.tif 000010
【図１０】
0004453107.tif 000011
【図１１】
0004453107.tif 000012
【図１２】
0004453107.tif 000013
【図１３】
0004453107.tif 000014
【図１４】
0004453107.tif 000015
【図１５】
0004453107.tif 000016
【図１６】
0004453107.tif 000017
【図１７】
0004453107.tif 000018
【図１８】
0004453107.tif 000019
【図１９】
0004453107.tif 000020
【図２０】
0004453107.tif 000021