以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の情報処理基板(例えば、図2の基板21−1)は、複数の接続線からなるバス(例えば、図2のバス23)が配設された第1の情報処理基板(例えば、図2のマザーボード20)に装着され、前記第1の情報処理基板に装着された第2の情報処理基板(例えば、図2の基板21−2)と通信を行う情報処理基板において、自分自身と前記第2の情報処理基板とを接続する前記複数の接続線の中から、前記第2の情報処理基板との通信に用いる接続線を決定する決定手段(例えば、図2の論理的結線モジュール32−1)と、前記決定手段により前記第2の情報処理基板との通信に用いるものとして決定された接続線の電気的特性を補償する補償手段(例えば、図2の電気的特性補償モジュール33−1)とを備えることを特徴とする。
請求項2に記載の情報処理基板は、前記決定手段は、前記バスを制御する第3の情報処理基板(例えば、図2のマザーボード20)からの制御に応じて、前記第2の情報処理基板との通信に用いる接続線を決定することを特徴とする。
請求項4に記載の情報処理基板(例えば、図2のマザーボード20)は、複数の接続線からなるバス(例えば、図2のバス23)が配設され、第1の情報処理基板(例えば、図2の基板21−1)と第2の情報処理基板(例えば、図2の基板21−2)とを接続する前記バスを制御する情報処理基板において、前記バスの前記複数の接続線の中から、前記第1の情報処理基板と前記第2の情報処理基板との通信に用いる接続線を決定し、前記第1の情報処理基板と前記第2の情報処理基板の基板間の結線を管理する管理手段(例えば、図2の論理的結線モジュール42)を備えることを特徴とする。
請求項6に記載の情報処理システムは、複数の接続線からなるバス(例えば、図2のバス23)が配設された第1の情報処理基板(例えば、図2のマザーボード)と、前記第1の情報処理基板に装着され、前記第1の情報処理基板に装着された第2の情報処理基板(例えば、図2の基板21−2)と通信を行う第3の情報処理基板(例えば、図2の基板21−1)とを備える情報処理システムにおいて、前記第1の情報処理基板は、前記複数の接続線の中から、前記第2の情報処理基板と前記第3の情報処理基板との通信に用いる接続線を決定し、前記第2の情報処理基板と前記第3の情報処理基板の基板間の結線を管理する管理手段(例えば、図17のステップS115の処理を実行する図2の論理的結線モジュール42)と、前記管理手段により前記第2の情報処理基板と前記第3の情報処理基板との通信に用いるものとして決定された接続線を表すバス情報を、前記第3の情報処理基板に送信する送信手段(例えば、図17のステップS116の処理を実行する図2の論理的結線モジュール)とを備え、前記第3の情報処理基板は、前記送信手段から送信されてくるバス情報に基づいて、前記バスの前記複数の接続線の中から、前記第2の情報処理基板との通信に用いる接続線を決定する決定手段(例えば、図2の論理的結線モジュール32−1)を備えることを特徴とする。
請求項7に記載の情報処理方法は、複数の接続線からなるバス(例えば、図2のバス23)が配設された第1の情報処理基板(例えば、図2のマザーボード20)と、前記第1の情報処理基板に装着され、前記第1の情報処理基板に装着された第2の情報処理基板(例えば、図2の基板21−2)と通信を行う第3の情報処理基板(例えば、図2の基板21−1)とを備える情報処理システムの情報処理方法において、前記第1の情報処理基板は、前記複数の接続線の中から、前記第2の情報処理基板と前記第3の情報処理基板との通信に用いる接続線を決定するとともに、前記第2の情報処理基板と前記第3の情報処理基板の基板間の結線を管理し(例えば、図17のステップS115)、前記第2の情報処理基板と前記第3の情報処理基板との通信に用いるものとして決定された接続線を表すバス情報を、前記第3の情報処理基板に送信し(例えば、図17のステップS116)、前記第3の情報処理基板は、前記バス情報に基づいて、前記バスの前記複数の接続線の中から、前記第2の情報処理基板との通信に用いる接続線を決定する(例えば、図18のステップS142)ことを特徴とする。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図2は、本発明を適用したマザーボード(メイン基板)20の一実施の形態の構成例を示している。
図2のマザーボード20には、バスコントローラ22、基板21−1が挿し込まれるコネクタ24−1、および基板21−2が挿し込まれるコネクタ24−2が設けられている。また、マザーボード20には、コネクタ24−1とコネクタ24−2とを接続するバス23が配設されている。バス23は、コネクタ24−2とバスコントローラ22との間にも配設されている。
基板21−1には、機能モジュール31−1、論理的結線モジュール32−1、および電気的特性補償モジュール33−1が装着されている。基板21−2には、機能モジュール31−2、論理的結線モジュール32−2、および電気的特性補償モジュール33−2が装着されている。基板21−1は、コネクタ24−1または24−2に挿し込むことで、マザーボード20に装着することができる。基板21−2も同様である。なお、ここでは、基板21−1は、コネクタ24−1に、基板21−2は、コネクタ24−2に、それぞれ装着されるものとする。
なお、機能モジュール31−1、論理的結線モジュール32−1、および電気的特性補償モジュール33−1は、例えば、IC(Integrated Circuit)で構成され、それぞれ基板21−1に対して着脱可能となっている。また、機能モジュール31−2、論理的結線モジュール32−2、および電気的特性補償モジュール33−2も、例えば、ICで構成され、それぞれ基板21−2に対して着脱可能となっている。
バスコントローラ22には、バス機能モジュール41、論理的結線モジュール42、および電気的特性補償モジュール43が装着されている。なお、バス機能モジュール41、論理的結線モジュール42、電気的特性補償モジュール43は、例えば、ICで構成され、マザーボード20に対してそれぞれ着脱可能となっている。
このように、それぞれのモジュールが各基板(マザーボード20)に対して、着脱可能になっていることから、モジュールを取り替えることで、それぞれの基板21の機能を容易に変更することができる。
バス23は、基板21−1とバスコントローラ22との間、基板21−2とバスコントローラ22との間のデータの通信路である電気的な結線である。バス23は、コネクタ24−1に装着された基板21−1、コネクタ24−2に装着された基板21−2、バスコントローラ22それぞれを電気的に接続する。基板21−1、基板21−2、バスコントローラ22それぞれの間では、バス23を介して、データ等の送受信が行われる。
コネクタ24−1とコネクタ24−2は、バス23を介して、バスコントローラ22に接続されている。
図3は、基板21−1と基板21−2がコネクタ24−1とコネクタ24−2にそれぞれ装着されている状態の図2のマザーボード20の構成を説明するブロック図である。
基板21−1の機能モジュール31−1は、基板21−1の機能を実行する。例えば、機能モジュール31−1は、GUI(Graphical User Interface)等のグラフィック処理、パケットの送受信処理等を実行する。
基板21−1の論理的結線モジュール32−1には、バスサイクル等のプロトコルが実装されている。論理的結線モジュール32−1は、後述するバスコントローラ22からの制御に応じて、バス23の複数の接続線の中から、基板21−2との通信に用いる接続線を決定する。
基板21−1の電気的特性補償モジュール33−1は、バス駆動電圧、インピーダンス等のバス23の電気的特性を補償するための回路から構成される。電気的特性補償モジュール33−1は、可変抵抗やコンデンサを用いて、基板21−2との通信に用いるバス23の接続線の電気的特性を変化させる。例えば、電気的特性補償モジュール33−1は、インピーダンスマッチング等を行う。
上述のように、論理的結線モジュール32−1がバス23による結線を決定し、電気的特性補償モジュール33−1は、その決定されたバス23の電気的特性を補償する。そして、機能モジュール31−1は、そのような管理がされたバス23を介して、データの通信を行いながら、基板21−1の機能に対応するデータ処理を行う。
なお、基板21−2の機能モジュール31−2、論理的結線モジュール32−2、電気的特性補償モジュール33−2は、基板21−1の機能モジュール31−1、論理的結線モジュール32−1、電気的特性補償モジュール33−1と同様であるので、説明は省略する。
また、以下、基板21−1乃至21−i(i=1,2,3,・・・)、機能モジュール31−1乃至31−i、論理的モジュール32−1乃至32−i、電気的特性補償モジュール33−1乃至33−iを区別する必要がない場合、基板21−1乃至21−i、機能モジュール31−1乃至31−i、論理的モジュール32−1乃至32−i、電気的特性補償モジュール33−1乃至33−iをそれぞれまとめて、基板21、機能モジュール31、論理的モジュール32、電気的特性モジュール33と称する。
バスコントローラ22のバス機能モジュール41は、バス23を介して行われる基板21−1と基板21−2との間の通信を制御する。
バスコントローラ22の論理的結線モジュール42は、バス23のトポロジを設定する。具体的には、論理的結線モジュール42は、バス23の複数の接続線の中から、基板21−1と基板21−2との間の通信に用いる接続線を決定する(割り当てる)ことで、バス23のトポロジを設定し、基板21−1と基板21−2との間の結線を論理的に管理する。また、論理的結線モジュール42は、基板21−1と基板21−2との間の通信に用いるものとして決定した接続線、即ち、その割り当てた結果得られる基板21−1と基板21−2との間の論理的な結線を表すバス情報を、基板21に送信することにより、基板21の論理的結線モジュール32を制御する。
バスコントローラ22の電気的特性補償モジュール43は、基板21の電気的特性補償モジュール33と同様に、バス23の電気的特性を補償するための回路で構成される。電気的特性補償モジュール43は、可変抵抗、コンデンサ等を用いて、基板21−1と基板21−2との間の通信に用いるバス23の接続線の電気的特性を変化させる。
なお、バス23の接続線そのもののインピーダンスは、十分小さい値になっている。基板21の電気的特性補償モジュール33、バスコントローラ22の電気的特性補償モジュール43が、基板21−1と基板21−2との間の通信に用いるバス23の接続線の電気的特性を変化させることにより、バス23の接続線のインピーダンスを、基板21−1と基板21−2との間の通信に最適なインピーダンスに変更する。
また、バス23のバス幅は十分広くなっており(バス23の接続線の数は十分多くなっており)、バスコントローラ22の論理的結線モジュール42が、バス23の割り当て量(基板21−1と基板21−2との間の通信に用いる接続線の数)を変化させることにより、基板21−1と基板21−2との間の通信用のバス幅を、最適な幅に設定する。
以上のように、バス23において、接続線のインピーダンスを、基板21−1と基板21−2との間の通信に最適なインピーダンスに変更し、バス幅を、基板21−1と基板21−2との間の通信に最適な幅に設定することにより、バス23を容易に最適化することができる。
図4乃至図6は、バス23のトポロジの例を示している。これらのトポロジは、例えば、バスコントローラ22の論理的結線モジュール42により設定される。なお、図4乃至図6では、4つの基板21−1乃至基板21−4がバス23に接続されている。基板21−3と基板21−4は、図3の基板21−1と同様に構成される。
図4では、1つのバス23上に、基板21−1乃至基板21−4のすべてが接続されている。このトポロジは、ネットワーク接続でいうところのバス型と呼ばれるものである。
図5では、基板21−1乃至基板21−4のうちの、基板21−2と、基板21−1、基板21−3、または基板21−4それぞれとが、バス23を介して接続されている。このトポロジは、ネットワーク接続でいうところのスター型と呼ばれるものである。
図6では、基板21−1乃至基板21−4がバス23を介して相互に直接接続されている。即ち、基板21−1は、基板21−2乃至基板21−4それぞれと、基板21−2は、基板21−1、基板21−3、基板21−4それぞれと、基板21−3は、基板21−1、基板21−2、基板21−4それぞれと、基板21−4は、基板21−1乃至基板21−3のそれぞれと、バス23を介して直接接続されている。このトポロジは、ネットワーク接続でいうところのメッシュ型と呼ばれるものである。
図7は、図4に示したバス型のトポロジでのバス幅の具体例を示し、図8は、図6に示したメッシュ型のトポロジでのバス幅の具体例を示している。
なお、図7と図8では、バス23のバス幅を、例えば、64ビット(bit)とする。即ち、バス23は、64本の接続線からなっている。また、図7と図8では、バス23を介して、3つの基板21−1乃至基板21−3が接続されている。
図7では、基板21−1乃至基板21−3すべてが、バス23の64本の接続線に接続されている。即ち、基板21−1と基板21−2との間、基板21−2と基板21−3との間、基板21−1と基板21−3との間の通信に用いられるバス23のバス幅は64ビットとなっている。
図7に示すバス23のトポロジでは、バス23のバス幅である64ビットをすべて用いて1つの基板21−iとその他の1つの基板21−j(i≠j)との間でデータの通信を行うことができる。従って、効率良く通信を行うことができ、高速通信が要求される機能を有する基板21−iと基板21−jとの間の通信に適している。但し、基板21−1乃至基板21−3のうちの1つの基板21−iからその他の1つの基板21―jへの通信が行われているとき、その通信用として、バス23が占有されるため、1つの基板21−iからその他の1つの基板21―jへの通信は、時分割で行われる。このため、応答性が犠牲になる場合がある。
図8では、バス23が6個の8ビット幅のバス23−1乃至バス23−6に分割されている。そして、バス23−1は、基板21−1から基板21−2のデータ送信用と、バス23−2は、基板21−2から基板21−3へのデータ送信用と、バス23−3は、基板21−1から基板21−3へのデータの送信用と、それぞれされている。また、バス23−4は、基板21−2から基板21−1へのデータ送信用と、バス23−5は、基板21−3から基板21−2へのデータ送信用と、バス23−6は、基板21−3から基板21−1へのデータ送信用と、それぞれされている。
バス23−1乃至バス23−6のそれぞれのバス幅は8ビットであるので、図7に示したバス幅が64ビットのバス23に比べて高速にデータを伝送することはできないが、複数の基板21間で同時に通信を行うことができ、応答性を向上させることができる。
図9は、本発明を適用したマザーボード60の他の一実施の形態の構成例を示している。なお、図9中、図2と対応する部分については、同一の符号を付してある。
図9のマザーボード60には、4つの基板21−1乃至基板21−4、バスコントローラ22が装着されている。また、マザーボード60には、バス61が配設されている。
バス61は、1本の接続線からなるクロックバス61−1、16本の接続線からなるアドレスバス61−2、64本の接続線からなるデータバス61−3で構成される。従って、クロックバス61−1、アドレスバス61−2、データバス61−3のバス幅は、それぞれ1ビット、16ビット、64ビットである。
図10は、図9において、高速に通信を行う場合のバス61を説明する図である。
図10では、2つの基板21間で高速通信を行うため、バスコントローラ22は、2つの基板21間を接続するデータバス61−3のバス幅が最大の64ビットとなるようにバス61を2つの基板21間の通信用に割り当てることで、バス61のトポロジを、図4や図7で説明したバス型に設定する。この場合、基板21−1乃至基板21−4のうち、1つの基板21―iからその他の1つの基板21−jに、高速でデータを通信することができる。但し、基板21−1乃至基板21−4のうち、1つの基板21−iからその他の1つの基板21−jに、データバス61−3を介してデータの通信を行う場合、その通信がデータバス61−3を占有する。即ち、1つの基板21−iからその他の1つの基板21−jへのデータの通信がデータバス61−3を介して行われている間、その通信以外の通信を、データバス61−3を介して行うことはできない。従って、基板21−iと基板21−jとの間のデータの通信は、時分割で行われる。
図11は、図10の基板21間で、バス61を介して行われる通信のタイミングを説明する図である。
図11では、バス61のクロックバス61−1上のクロックの1クロック目に同期して、バス幅が64ビットのデータバス61−3を介して、基板21−1と基板21−2との間の通信が行われ、2クロック目に同期して、データバス61−3を介して、基板21−2と基板21−3との間の通信が行われる。
そして、3クロック目に同期して、データバス61−3を介して、基板21−3と基板21−4との間の通信が行われ、4クロック目に同期して、データバス61−3を介して、基板21−4と基板21−1との間の通信が行われる。
さらに、5クロック目に同期して、データバス61−3を介して、基板21−1と基板21−2との間の通信が行われ、6クロック目に同期して、データバス61−3を介して、基板21−2と基板21−3との間の通信が行われる。
即ち、図11では、バス61のクロックバス61−1上のクロックに同期しながら、基板21−1と基板21−2との間、基板21−2と基板21−3との間、基板21−3と基板21−4との間、基板21−4と基板21−1との間のそれぞれの通信が、時分割で行われる。
つまり、図11では、1クロック毎に、データバス61−3の占有主体が切り替わる。従って、ある基板21−iと基板21−jとは、データバス61−3を占有できるタイミングになったとき、バス幅が64ビットのデータバス61−3を介して通信を行うことができるので、最大で64ビットのデータを高速に送受信することが可能となる。
なお、データバス61−3の占有主体は、1クロック毎ではなく、複数クロック毎に切り替わるようにしてもよい。
また、図11では、64ビットのデータを高速で通信することができる反面、基板21−iと基板21−jとの間の通信の周期は、クロックの4倍となり、応答性は低くなる。
図12は、図9において、応答性が高い通信を行う場合のバス61を説明する図である。
図12では、応答性が高い通信を行うため、バスコントローラ22は、バス61のデータバス61−3を、基板21−1と基板21−2との間、基板21−2と基板21−3との間、基板21−3と基板21−4との間、基板21−4と基板21−1との間の4つの基板間の通信用に均等に分割し、各基板21間の通信用のデータバス61−3のバス幅が16(=64/4)ビットとなるようにバス61を各基板21間の通信用に割り当てることで、バス61の図6や図8で説明したトポロジを設定する。
図12では、基板21−1乃至基板21−4のそれぞれの間での通信を同時に行うことができ、応答性を向上させることができる。但し、データバス61−3の各基板21間のバス幅は16(=64/4)ビットであるので、図10に示すバス幅が64ビットのデータバス61−3を介して通信を行う場合に比べて、一度に送受信することができるデータの量は少なくなる。
図13は、図12の基板21間で、バス61を介して行われる通信のタイミングを説明する図である。
図13では、バス61のクロックバス61−1上のクロックに同期しながら、基板21−1と基板21−2との間、基板21−2と基板21−3との間、基板21−3と基板21−4との間、基板21−4と基板21−1との間のそれぞれの通信を、バス幅が16ビットのデータバス61−3を介して同時に行うことができる。即ち、1つの基板21−iとその他の1つの基板21−jとの間では、クロック周期で通信を行うことができる。従って、1つの基板21−iとその他の1つの基板21−jとの間の1回の通信に必要なデータが16ビット以下で、応答性が重視される場合には、複数の基板21間で同時に通信を行うことで応答性を向上させることができる。
ここで、図12および図13では、基板21−iと基板21−jとの間の通信は、バス幅が16ビットのデータバス61−3を介して行われるので、図10および図11に示したように、基板21−iと基板21−jとの間の通信が、バス幅が64ビットのデータバス61−3を介して行われる場合と、4クロックあたりの転送レートは同一となる。但し、図12および図13では、ある1クロックにおいて、複数の基板21間で同時に通信を行うことができるので、応答性を向上させることができる。
図14を参照して、バス100のトポロジについて、さらに説明する。
図14では、バス100を介して、4つの基板21−1、基板21−2、基板21−3、基板21−4が接続されている。そして、バス100のバス幅は、例えば、32ビットとされている。即ち、バス100は、32本の接続線からなっている。
図14において、バス100の32本の接続線のうち、16本が基板21−1と基板21−2との間の通信用に決定されている。即ち、バス幅が32ビットのバス100のうち、16ビットが基板21−1と基板21−2との間の通信用に割り当てられている。また、バス100のうちの他の8ビットが基板21−2と基板21−3との間の通信用に割り当てられ、残りの8ビットが、ブロードキャスト用に割り当てられている。
図15は、図14のバス100のトポロジを設定するバスコントローラ22のトポロジ設定処理を説明する図である。
なお、以下、適宜、32ビットのバス100の32本の接続線のうちのi本目を、第i−1ビットという。
図15の上に示されるように、基板21−1乃至基板21−4は、バス幅が32ビット(図中、BUS[31:0])のバス100を介して、バスコントローラ22と接続されている。このバス100は、白抜き矢印の先に示されるように、そのバス幅が各基板21間の通信用のものとして割り当てられる。
即ち、バスコントローラ22(の論理的結線モジュール42)は、バス100の32ビットのうち、例えば、第0ビットから第7ビットまでの計8ビットを、ブロードキャスト用に割り当てる(図中、BUS[7:0])。また、バスコントローラ22は、バス100の、例えば、第8ビットから第15ビットまでの計8ビット(図中、BUS[15:8])を、基板21−2と基板21−3との間の通信用に、バス100の、例えば、第16ビットから第31ビットまでの計16ビット(図中、BUS[31:16])を、基板21−1と基板21−2との間の通信用に割り当てる。
図16は、バスコントローラ22が行うバス100のトポロジ設定処理を説明するフローチャートである。このトポロジ設定処理は、例えば、基板21がバス100のトポロジの変更を要求したとき開始される。なお、バスコントローラ22(の論理的結線モジュール42)には、基板21が他の基板21との通信用に必要なバス100のバス幅が、予め記憶されている。
ステップS11において、バスコントローラ22は、予め記憶されている基板21が他の基板21との通信用に必要とするバス幅から、基板21−1と基板21−2との間の通信に必要なバス幅が16ビットであることを認識し、バス100の32ビットのうちの、第16ビットから第31ビットまでの計16ビットを、基板21−1と基板21−2との間の通信用に割り当てる。バスコントローラ22は、その割り当てた結果得られる基板21−1と基板21−2との間の論理的な結線を表すバス情報を基板21−1に送信する。
ステップS31において、基板21−1は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第16ビットから第31ビットまでを基板21−2との通信用に決定する。
ステップS12において、バスコントローラ22は、ステップS11でバス100を基板21−1と基板21−2との間の通信用に割り当てた結果を表すバス情報を基板21−2に送信する。
ステップS51において、基板21−2は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第16ビットから第31ビットまでを基板21−1との通信用に決定する。
ステップS13において、バスコントローラ22は、ステップS11でバス100を基板21−1と基板21−2との間の通信用に割り当てた結果を表すバス情報を基板21−3に送信する。
ステップS71において、基板21−3は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第16ビットから第31ビットまでを基板21−1と基板21−2に開放する。例えば、基板21−3の電気的補償モジュール33−3は、バス100の第16ビットから第31ビットまでに対応する16本の接続線(に接続している端子のバス100側からみたインピーダンス)を、ハイインピーダンスにして、その接続線を用いないようにすることにより、バス100の第16ビットから第31ビットまでを開放する。
ステップS14において、バスコントローラ22は、ステップS11でバス100を基板21−1と基板21−2との間の通信用に割り当てた結果を表すバス情報を基板21−4に送信する。
ステップS91において、基板21−4は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第16ビットから第31ビットまでを、基板21−3と同様にして、基板21−1と基板21−2に開放する。
以上のようにして、バスコントローラ22は、基板21−1と基板21−2との間の通信用のバス100の設定(割り当て)を完了する。
ステップS15において、バスコントローラ22は、予め記憶されている基板21が他の基板21との通信用に必要とするバス幅から、基板21―2と基板21−3との間の通信に必要なバス幅が8ビットであることを認識し、バス100の32ビットのうちの、第8ビットから第15ビットまでの計8ビットを、基板21−2と基板21−3との間の通信用に割り当てる。バスコントローラ22は、その割り当てた結果得られる基板21−2と基板21−3との間の論理的な結線を表すバス情報を基板21−2に送信する。
ステップS52において、基板21−2は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第8ビットから第15ビットまでを基板21−3との通信用に決定する。
ステップS16において、バスコントローラ22は、ステップS15でバス100を基板21−2と基板21−3との間の通信用に割り当てた結果を表すバス情報を基板21−3に送信する。
ステップS72において、基板21−3は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第8ビットから第15ビットまでを基板21−2との通信用に決定する。
ステップS17において、バスコントローラ22は、ステップS15でバス100を基板21−2と基板21−3との間の通信用に割り当てた結果を表すバス情報を基板21−1に送信する。
ステップS32において、基板21−1は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第8ビットから第15ビットまでを基板21−2と基板21−3に開放する。
ステップS18において、バスコントローラ22は、ステップS15でバス100を基板21−2と基板21−3との間の通信用に割り当てた結果を表すバス情報を基板21−4に送信する。
ステップS92において、基板21−4は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第8ビットから第15ビットまでを基板21−2と基板21−3に開放する。
以上のようにして、バスコントローラ22は、基板21−2と基板21−3との間の通信用のバス100の設定を完了する。
ステップS19において、バスコントローラ22は、予め記憶されている基板21が他の基板21との通信用に必要とするバス幅から、ブロードキャストに必要なバス幅が8ビットであることを認識し、バス100の32ビットのうちの、第0ビットから第7ビットまでの計8ビットを、ブロードキャストの通信用に割り当てることで、バス100のトポロジを設定する。バスコントローラ22は、その割り当てた結果得られるブロードキャストの通信用の論理的な結線を表すバス情報を基板21−1に送信する。
ステップS33において、基板21−1は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第0ビットから第7ビットまでをブロードキャスト用に決定する。
ステップS20において、バスコントローラ22は、ステップS19でバス100をブロードキャストの通信用に割り当てた結果を表すバス情報を基板21−2に送信する。
ステップS53において、基板21−2は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第0ビットから第7ビットまでをブロードキャスト用に決定する。
ステップS21において、バスコントローラ22は、ステップS19でバス100をブロードキャストの通信用に割り当てた結果を表すバス情報を基板21−3に送信する。
ステップS73において、基板21−3は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第0ビットから第7ビットまでをブロードキャスト用に決定する。
ステップS22において、バスコントローラ22は、ステップS19でバス100をブロードキャスト用に割り当てた結果を表すバス情報を基板21−4に送信する。
ステップS93において、基板21−4は、バスコントローラ22から送信されてきたバス情報を受信し、バス100の32ビットのうち、バス情報が表す第0ビットから第7ビットまでをブロードキャスト用に決定する。
以上のようにして、バスコントローラ22は、ブロードキャスト用のバス100の設定を完了する。
そして、バスコントローラ22は、バス100の32ビットすべてを基板21間の通信用に割り当てることで、バス100のトポロジを設定し、バス100のトポロジ設定処理を終了する。
図17は、バスコントローラ22の論理的結線モジュール42が行うバス100のトポロジ設定処理を説明するフローチャートである。なお、このバストポロジ設定処理は、例えば、バス100が配設された不図示のマザーボードの電源がオンされたとき開始される。また、バス100を介してバスコントローラ22と接続している基板21には、0から順に番号が付され、番号jが付された基板21を基板#jという。
ステップS111において、論理的結線モジュール42は、基板の番号を表す値nを0に初期化し、ステップS112に進む。
ステップS112において、論理的結線モジュール42は、基板21からバス100のトポロジの変更要求を受信したかどうかを判定し、トポロジの変更要求を受信するまで待機する。
ステップS112において、論理的結線モジュール42は、基板21からバス100のトポロジの変更要求を受信したと判定した場合、ステップS113に進み、論理的結線モジュール42は、基板21の論理的結線モジュール32のバスサイクルを停止させる。なお、論理的結線モジュール42は、バスサイクルを停止させたとき、それまでのバス100の割り当てを解除する。即ち、バス100のすべてのビットが、基板21間の通信用に割り当てられてないビットとされる。
ステップS114において、論理的結線モジュール42は、バスリソースが残っているかどうかを判定する。即ち、論理的結線モジュール42は、バス100のバス幅である32ビットのうち、基板21間の通信用に割り当てられていないビットがあるかどうかを判定する。なお、この判定は、後述する管理テーブルを参照することで行われる。
ステップS114において、論理的結線モジュール42は、バスリソースが残っていると判定した場合、ステップS115に進み、基板#nに対して、バス100の割り当てを行う。
例えば、基板#nが基板21−1である場合、図16のステップS11に示したように、論理的結線モジュール42は、予め記憶されている基板21が他の基板21との通信用に必要とするバス100のバス幅から、基板21−1と基板21−2との間の通信に必要なバス幅が16ビットであることを認識し、基板21−1に対して、バス100のバス幅である32ビットのうち、例えば、未割り当ての第16ビットから第31ビットまでの16ビットを基板21−2との通信用に割り当てる。そして、論理的結線モジュール42は、バス100の第16ビットから第31ビットを、基板21−1と基板21−2との間の通信用として割り当て済みである旨を、自ら管理する管理テーブルに記憶させる。なお、論理的結線モジュール42は、バス100の割り当てを解除した場合(ステップS113)も、バス100のすべてのビットが未割り当てである旨を、管理テーブルに記憶することで、バス100を管理する。
ここで、基板#nにおいて、他の複数の基板21との間の通信に必要なバス幅が、それぞれ記憶されている場合、論理的結線モジュール42は、基板#nに対して、各他の基板21との通信用にそれぞれバス100の割り当てを行う。
また、基板#nと基板#n+1との間の通信用にバス100の割り当てを行う場合、論理的結線モジュール42は、例えば、基板#nに対して割り当てを行うときに、基板#nと基板#n+1との間の通信用にバス100の割り当てを行ってもよいし、基板#n+1に対して割り当てを行うときに、基板#nと#n+1との間の通信用にバス100の割り当てを行ってもよい。さらに、ステップS115において、ブロードキャスト用にバス100の割り当てが行われる場合も、論理的結線モジュール42は、基板21のいずれかに対して割り当てを行うときに、ブロードキャスト用にバス100を割り当てることができる。なお、論理的結線モジュール42は、既にバス100が割り当てられた通信用には、バス100の割り当てを行わない。
ステップS116において、論理的結線モジュール42は、ステップS115においてバス100が割り当てられた結果を表すバス情報を、バス100を介して接続されているすべての基板21に送信し、ステップS117に進む。
ステップS117において、論理的結線モジュール42は、値nを1だけインクリメントし、ステップS118に進む。
ステップS118において、論理的結線モジュール42は、すべての基板21に対するバス100の割り当てを終了したかどうかを判定する。即ち、論理的結線モジュール42は、ステップS118でインクリメントした値nが、バスコントローラ22に接続されている基板21の枚数以上であるかどうかを判定する。
ステップS118において、論理的結線モジュール42は、すべての基板21に対するバス100の割り当てを終了していないと判定した場合、ステップS114に戻り、上述した処理を繰り返す。
また、ステップS118において、論理的結線モジュール42は、すべての基板21に対するバス100の割り当てを終了したと判定した場合、ステップS120に進む。
一方、ステップS114において、論理的結線モジュール42は、バスリソースが残っていないと判定した場合、ステップS119に進み、バス幅が足りないので、任意のエラー処理を行う。
ここで、論理的結線モジュール42は、エラー処理として、例えば、優先度の高い順に基板21に対してバス100の割り当てを行い、優先度が低い基板21間の通信用には共通に、例えば8ビットを割り当て、ある基板21に対してはバス100の割り当てを行わない等の処理を行う。
ステップS120において、論理的結線モジュール42は、基板21の論理的結線モジュール32のバスサイクルを再開して、ステップS111に戻り、上述した処理を繰り返す。
上述したステップS114では、論理的結線モジュール42は、基板21が他の基板21との通信用に必要とするバス幅に基づいて、すべての基板21に対してバス100を割り当て、バス100のトポロジを設定する。従って、例えば、マザーボード20と基板21を製造する製造元は、基板21を新たな基板21に変更してアップグレードする場合、その新たな基板21の要求する通信の性質に応じてバス100のトポロジを設定し、そのトポロジに応じて、基板21と他の基板21との通信用に必要とするバス100のバス幅を変更することにより、バス100の割り当てを動的に変化させることができる。これにより、各基板21に最適なバス幅と応答性を容易に得ることができる。
なお、上述した説明では、基板21がバス100のトポロジの変更を要求することによって、バスコントローラ22がバス100のトポロジ設定処理を行ったが、ユーザが不図示の入力部を操作し、トポロジの変更を要求するようにしてもよい。
また、上述した説明では、バス100のトポロジ設定処理を、バスコントローラ22の論理的結線モジュール42が行うとしたが、バス機能モジュール41が行うようにすることもできる。
図18は、図17のバスコントローラ22の処理に対応して行われる基板21の論理的結線モジュール32のバス決定処理を説明するフローチャートである。なお、このバス決定処理は、例えば、バス100が配設された不図示のマザーボードの電源がオンされたとき開始される。
ステップS141において、論理的結線モジュール32は、図17のステップS116の処理でバスコントローラ22の論理的結線モジュール42から送信されてくるバス情報を受信したかどうかを判定し、受信したと判定するまで待機する。
ステップS141において、論理的結線モジュール32は、バス情報を受信したと判定した場合、ステップS142に進み、バス情報に基づいて、バス100のバス幅である複数ビットの中から、基板との通信に用いるビットを決定して、ステップS141に戻り、上述した処理を繰り返す。
例えば、基板21−1の論理的結線モジュール32は、バスコントローラ22から、基板21−2との通信用として割り当てられたバスが、バス100のバス幅である32ビットのうちの、第16ビットから第31ビットまでであることを表すバス情報を受信した場合、バス100の第16ビットから第31ビットまでを、基板21−2との通信に用いるものとして決定する。
以上のように、複数の接続線からなるバス23が配設されたマザーボード20において、バスコントローラ22の論理的結線モジュール42が、バス23の複数の接続線の中から、マザーボード20に装着された基板21−1と基板21−2との通信に用いる接続線を決定し、基板21−1と基板21−2との基板間の結線を管理する。また、論理的結線モジュール42は、その基板21−1と基板21−2との通信に用いるものとして決定された接続線を表すバス情報を、基板21−1に送信する。そして、マザーボード20に装着された基板21−1の論理的結線モジュール42−1が、バス情報に基づいて、バス23の複数の接続線の中から、基板21−2との通信に用いる接続線を決定する。また、基板21−1の電気的結線モジュール42−1は、基板21−2との通信に用いる接続線の電気的特性を補償する。従って、バス23の最適化を容易に行うことができる。
なお、バスコントローラ22は、マザーボード20に独立して設けるのではなく、各基板21に設けることもできる。このとき、例えば、各基板21に設けられたバスコントローラ22のうち、いずれか1つが動作してバス23のトポロジを管理するようにする。
また、上述した説明では、基板21の変更に応じて、バス23を最適化する場合について説明したが、バス23のアップグレードに応じて、基板21およびバスコントローラ22を変更する場合の例について、図19を参照して説明する。
図19は、バス23をアップグレードする場合の、基板21、バスコントローラ22の変更点を説明する図である。ここで、アップグレード前のバス23は、例えば、ISA(Industrial Standard Architecture)規格に準拠したバス23とすることができ、アップグレー後のバス23は、例えば、PCI(Peripheral Components Interconnect)66規格に準拠したバス23とすることができる。
上述したように、バス23をアップグレードする場合には、バス幅やピンアサイン等が変化する。この場合、例えば、マザーボード20と基板21を製造する製造元は、上述したように、各モジュールは着脱可能にされていることから、ISA規格に準拠したバス幅やピンアサインに対応する基板21の論理的結線モジュール32と、バスコントローラ22の論理的結線モジュール42を、PCI66規格に準拠したバス23のバス幅やピンアサインに対応する論理的結線モジュール32と、論理的結線モジュール42にそれぞれ交換する。
また、バス23のアップグレードによって、バス23の電気的特性が大きく変化する場合、マザーボード20と基板21を製造する製造元は、ISA規格に準拠したバス23の電気的特性に対応する基板21の電気的特性補償モジュール33と、バスコントローラ22の電気的特性補償モジュール43を、PCI66規格に準拠したバス23の電気的特性に対応する新たな電気的特性モジュール33と、電気的特性補償モジュール43にそれぞれ交換する。
なお、バス23をアップグレードする場合、基板21の機能とバスコントローラ22で行われる処理は変わらないので、機能モジュール31とバス機能モジュール41は変更する必要がない。一般に、機能モジュール31とバス機能モジュール41の変更には、人的、時間的に多くのコストが必要となるが、それを免れることができる。
また、マザーボード20および基板21では、バスコントローラ22の論理的結線モジュール42と電気的特性補償モジュール43、および基板21の論理的結線モジュール32と電気的特性補償モジュール33を交換するだけで、バス23のアップグレードに対応することができる。即ち、バス23のアップグレードによる変更を最小限にとどめて資源を効率的に利用することができる。従って、省資源で、例えば、バス幅、ピンアサイン等の変化に柔軟に対応できる、バス23の構造に対してロバストなマザーボード20および基板21を構築することができる。
従来、バス23のピンアサインは、電気的に固定されており、バス23をアップグレードするときの制約となっていた。即ち、下位互換性を保ちつつバス23をアップグレードする場合、アップグレード後のバス23のピンアサインは、アップグレード前のバス23のピンアサインに制約される。
しかしながら、以上の構成を備えるマザーボード20および基板21では、バスコントローラ22の論理的結線モジュール42および基板21の論理的結線モジュール32の交換や、バスコントローラ22の電気的特性補償モジュール43および基板21の電気的特性補償モジュール33の交換で、バス23のピンアサイン等の変更に容易に対応することができ、アップグレード後のバス23の性能を十分に発揮させることができる。
20 マザーボード, 21 基板, 22 バスコントローラ, 23 バス, 31 機能モジュール, 32 論理的結線モジュール, 33 電気的特性補償モジュール, 41 バス機能モジュール, 42 論理的結線モジュール, 43 電気的特性補償モジュール, 61 バス