(57)【要約】【課題】出力バッファの駆動能力を正確且つ容易に調整すること【解決手段】マザーボード１１に常時敷設される内部バスに付加される内部負荷容量をシステムＢＩＯＳ  ＲＯＭ１９に格納し、ＰＣＩバス拡張スロット＃１を介して内部バスに適宜付加される外部負荷容量をコンフィギュレーションＲＯＭ２０に格納しておく。システムソフトウエア（ＣＰＵ１５）は、内部負荷容量と外部負荷容量とを合算した負荷容量合計値を算出し、その負荷容量合計値に基づいて、内部デバイス（ＰＣＩデバイス＃０〜＃２）の出力バッファの駆動能力と、外部デバイス（ＰＣＩデバイス＃３）の出力バッファの駆動能力とを決定（調整・設定）する。【選択図】  図１
2004334693.tif 000002
【特許請求の範囲】
【請求項１】
システムソフトウエアと、
マザーボードと、
拡張ボードとを具備し、
前記マザーボードには、内部バスと、複数の内部デバイスと、複数の拡張スロットと、第１メモリとが常時敷設され、前記複数の内部デバイスの各々と前記複数の拡張スロットの各々とは前記内部バスに接続され、
前記拡張ボードは、前記拡張スロットに接続される外部デバイスと、第２メモリとが設けられ、
前記複数の内部デバイスの各々と前記外部デバイスとは、出力バッファを備え、
前記第１メモリには、前記マザーボードに常時敷設される前記内部バスに付加される内部負荷容量が情報として格納され、
前記第２メモリには、前記拡張スロットを介して前記内部バスに適宜付加される外部負荷容量が情報として格納され、
前記システムソフトウエアは、前記拡張スロットを介して前記内部バスに接続された前記外部デバイスを検出したとき、前記内部負荷容量と前記外部負荷容量との合計値を算出し、前記合計値に基づいて前記出力バッファの駆動能力を決定する
コンピュータシステム。
【請求項２】
前記内部負荷容量は、
前記内部バスの各バスラインに接続される前記内部デバイスの入力負荷容量と、
前記内部デバイス同士を接続するために前記マザーボード上に敷設される配線分の負荷容量と、
前記拡張スロットを前記内部バスに接続するために前記マザーボード上に敷設される配線分の負荷容量とを含み、
前記外部負荷容量は、
前記拡張ボード上の各バスラインに接続される前記外部デバイスの入力負荷容量と、
前記拡張スロットと前記拡張ボードとの接触部分の負荷容量と、
前記内部デバイスと前記外部デバイスとを接続するために前記拡張ボード上に敷設される配線分の負荷容量とを含む
請求項１に記載されたコンピュータシステム。
【請求項３】
前記外部デバイスは、負荷情報レジスタを備え、
前記外部デバイスは、前記第２メモリに情報として格納された前記外部負荷容量を電源投入時に読取って、前記負荷情報レジスタに格納し、
前記システムソフトウエアは、前記第１メモリに情報として格納された前記内部負荷容量と、前記負荷情報レジスタに情報として格納された前記外部負荷容量との前記合計値を算出する
請求項１又は２に記載されたコンピュータシステム。
【請求項４】
前記システムソフトウエアは、前記合計値と、前記内部バスにおいて想定されうる負荷容量の最大値に対する相対値との比較結果に基づいて、前記出力バッファの駆動能力を決定する
請求項１〜３のいずれか一項に記載されたコンピュータシステム。
【請求項５】
前記内部デバイスと前記外部デバイスとは、前記出力バッファに接続された駆動能力設定レジスタを備え、
前記第１メモリには、駆動能力設定テーブルが更に格納され、
前記駆動能力設定テーブルには、前記内部バスにおいて想定されうる負荷容量の最大値に対する相対値と、前記出力バッファの駆動能力を設定するための設定情報とが複数対応付けられて格納され、
前記システムソフトウエアは、前記駆動能力設定テーブルを参照して、前記複数の相対値のうちの前記合計値と一致する相対値を選択し、前記複数の設定情報のうちの前記一致する相対値に対応付けられた設定情報を決定し、前記決定された設定情報を前記駆動能力設定レジスタに設定する
請求項１〜４のいずれか一項に記載されたコンピュータシステム。
【請求項６】
前記内部負荷情報は、前記第１メモリの変更によって随時修正可能であり、
前記外部負荷情報は、前記第２メモリの変更によって随時修正可能である
請求項１に記載されたコンピュータシステム。
【請求項７】
前記駆動能力設定テーブルに格納された前記複数の相対値と前記複数の設定情報とは、前記第１メモリの変更によって随時修正可能である
請求項５に記載されたコンピュータシステム。
【請求項８】
前記内部バスは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスである
請求項１〜７のいずれか一項に記載されたコンピュータシステム。
【請求項９】
マザーボードと、拡張ボードとを具備し、前記マザーボードには、内部バスと、複数の内部デバイスと、複数の拡張スロットと、第１メモリとが常時敷設され、前記複数の内部デバイスの各々と前記複数の拡張スロットの各々とは前記内部バスに接続され、前記拡張ボードは、前記拡張スロットに接続される外部デバイスと、第２メモリとが設けられ、前記複数の内部デバイスの各々と前記外部デバイスとは、出力バッファを備えた、コンピュータシステムの消費電力を低減する方法であって、
前記マザーボードに常時敷設される前記内部バスに付加される内部負荷容量を情報として前記第１メモリに格納することと、
前記拡張スロットを介して前記内部バスに適宜付加される外部負荷容量を前記第２メモリに格納することと、
前記拡張スロットを介して前記内部バスに接続された前記外部デバイスを検出したとき、前記内部負荷容量と前記外部負荷容量との合計値を算出することと、前記消費電力を低減するために、前記合計値に基づいて前記出力バッファの駆動能力を決定することとを含む
コンピュータシステムの消費電力低減方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、特に、システム全体の消費電力を低減するコンピュータシステムに関する。
【０００２】
【従来の技術】
コンピュータシステムの低消費電力化技術は、その駆動可能時間を延ばすことを目的に、従来では主にバッテリーで駆動する携帯型パーソナルコンピュータへの適用を主体に開発されてきた。しかし、近年は省エネルギーの観点から、据え置き型のコンピュータシステムに関してもその低消費電力化の重要性が高まっており、各種低消費電力化技術が導入されてきている。
【０００３】
図１２は、従来のコンピュータシステム１０１の構成を示す概略図である。コンピュータシステム１０１は、内部バス１０４、複数個のバスデバイス１０５を具備し、据え置き型の場合、一般的に、複数個の拡張スロット１０２を更に具備する。複数個の拡張スロット１０２と複数個のバスデバイス１０５とは内部バス１０４に接続されている。コンピュータシステム１０１の使用者は、その利用目的に応じて、特定の機能を実現する回路を搭載した拡張ボード１０３を適宜拡張スロット１０２に実装することができる。コンピュータシステム１０１は、適宜拡張スロット１０２に拡張ボード１０３が実装されたとき、拡張ボード１０３に搭載された回路が既存の内部バス１０４に電気的に接続され、システムの機能を拡張できるように構成されている。このため、内部バス１０４には、複数個のバスデバイス１０５が接続されることから、内部バス１０４を駆動する消費電力の削減は、コンピュータシステム１０１の低消費電力化のための施策の１つとして必要である。
【０００４】
図１３は、図１２に示されたバスデバイス１０５の構成を示す概略図である。バスデバイス１０５は、出力バッファ１０８、外部端子１０９、入力バッファ１１１を具備する。外部端子１０９には、内部バス１０４を構成する複数のバスラインのうちの１本のバスライン１０４’が接続されている。出力バッファ１０８の出力側には、外部端子１０９と、入力バッファ１１１の入力側とが接続されている。入力バッファ１１１の出力側には、入力信号が出力される。出力バッファ１０８の入力側には、バスデバイス内部で生成された（図示しないデバイス内部回路）出力原信号（出力データ）１０６が入力される。出力バッファ１０８には、バスデバイス内部で生成された出力制御信号１０７が入力される。出力制御信号１０７は、“１”、又は、“０”で表される。出力バッファ１０８は、スイッチとして働き、出力制御信号１０７が“１”を表すとき、ＯＮ制御され、出力制御信号１０７が“０”を表すとき、ＯＦＦ制御される。すなわち、出力制御信号１０７が“１”を表すとき、出力原信号１０６が出力バッファ１０８、外部端子１０９を経由してバスライン１０４’に出力される。従来、バスライン１０４’を駆動するバスデバイス１０５の出力バッファ１０８の駆動能力は、バスの規格で定められている最大負荷容量を前提として固定的に決められていた。しかしながら、通常の運用状態においては最大負荷容量に達しない場合が多く、その場合には駆動能力過多となり不要な電力を消費してしまう問題点があった。
【０００５】
上記の問題点を解決するために、接続される負荷容量に対応して駆動能力を適切に調整する必要がある。駆動能力を調整する技術としては、（従来技術１）出力バッファの駆動能力を調整するための情報を検出する専用回路による自動調整技術、（従来技術２）実際の動作試行結果による調整技術、（従来技術３）デバイスの接続有無判別結果による調整技術、（従来技術４）その他の技術が挙げられる。
【０００６】
（従来技術１）出力バッファの駆動能力を調整するための情報を検出する専用回路による自動調整技術について説明する。（従来技術１）の場合、特開平１０−３１２２３０号公報、特開２０００−９１８９９号公報、特開２０００−２６１４６４号公報が挙げられる。
まず、（従来技術１−１）特開平１０−３１２２３０号公報に記載された技術について説明する。
特開平１０−３１２２３０号公報では、デバイス内部の原信号と、原信号が出力バッファを経由した後の出力信号との遅延差が外部負荷容量に依存することを利用して、専用回路によって、原信号に２種類の遅延時間を加えた２種類の遅延信号と出力信号とをデバイス内部で比較し、原信号から出力信号の遅延時間の範囲を限定し（遅延時間が２種類の遅延時間の中間となるように出力バッファの駆動能力を逐次フィードバック制御し）、その情報（遅延時間の範囲）に基づき出力バッファの駆動能力を調整する方法が提案されている。
次に、（従来技術１−２）特開２０００−９１８９９号公報に記載された技術について説明する。
特開２０００−９１８９９号公報では、一定期間の放電によるキャパシタ両端の電位差の減少量が外部負荷容量（外部のバスラインに連結される出力端の負荷容量）に依存することを利用し、デバイス内部に複数の種類の容量のキャパシタを設け、まずキャパシタを所定の電圧で充電し、専用回路によって、一定時間放電した後の電位差を比較することにより外部負荷容量の範囲を限定し、その情報（外部負荷容量の範囲）に基づき出力バッファの駆動能力を調整する方法が提案されている。この専用回路は、外部負荷容量を感知し、感知された外部負荷容量により、ドライバーの電流容量の大きさを調整して出力バッファの駆動能力を調整している。
次いで、（従来技術１−３）特開２０００−２６１４６４号公報に記載された技術について説明する。
特開２０００−２６１４６４号公報では、パルス信号を出力した際、外部で観測される信号波形、特にオーバーシュート電圧が外部負荷容量（バスラインを介して接続された負荷容量）に依存することを利用し、専用回路によって、帰還信号と複数の基準電圧値とをデバイス内部で比較することにより帰還信号のオーバーシュート電圧の範囲を限定し、その情報（オーバーシュート電圧の範囲）に基づき出力バッファの駆動能力を調整する方法が提案されている。
【０００７】
（従来技術２）実際の動作試行結果による調整技術について説明する。（従来技術２）の場合、特開２００１−１９７０８８号公報が挙げられる。
特開２００１−１９７０８８号公報では、デバイス内部に駆動能力設定情報、及びテストデータの組み合わせを複数格納しておき、動作中の任意の時間に挿入されたテストサイクルにおいて情報を引き出し、出力バッファの駆動能力を順次強化した上で実際にデータの送受信を実行し、正しく受信されるまで繰り返すことで出力バッファの駆動能力を随時調整する方法が提案されている。
【０００８】
（従来技術３）デバイスの接続有無判別結果による調整技術について説明する。（従来技術３）の場合、特開平９−１３５１５９号公報が挙げられる。
特開平９−１３５１５９号公報では、制御回路によって、外部デバイスが接続されうる各制御ラインを経由し逐次アクセスを試み、その成否によって同制御ラインへの外部デバイスが接続されているか否かを判断し、その結果から接続された外部デバイス数を算出し、その情報（外部デバイス数）に基づき出力バッファの駆動能力を調整する方法が提案されている。この制御回路は、外部負荷容量を検出して、検出された外部負荷容量に対応させて、出力バッファに設定される駆動能力を調整している。
【０００９】
（従来技術４）その他の技術について説明する。（従来技術４）の場合、特開平８−２７９７４２号公報と、特開２００２−２６７１３号公報とが挙げられる。
特開平８−２７９７４２号公報では、ＩＳＡバスにおいて負荷が６０ｐＦないし２４０ｐＦ、電源電圧が３．３ボルトないし５．０ボルトの条件に合わせて出力バッファの駆動能力がプログラム可能である出力バッファの実現手段の詳細について提案している。プログラムの方法に関しては、ＩＳＡバスのカードスロットの実装状況を認識したシステムソフトウエアによるプログラミングを提案しており、併せてその他の電子的手法等による代替手段についても示唆しているが、具体的な提案はなされていない。
特開２００２−２６７１３号公報では、外部回路の負荷の大小に基づいてレジスタを設定する方法が提案されている。この特開２００２−２６７１３号公報では、外部負荷容量の増大により、第１の出力バッファでは駆動能力が不足した場合、出力切替レジスタとデコーダとによって、第１の出力バッファよりも駆動能力が大きい第２の出力バッファに切り替えている。
【００１０】
次に、上述した、駆動能力を調整する技術における有効性と問題点とを説明する。
【００１１】
（従来技術１）出力バッファの駆動能力を調整するための情報を検出する専用回路による自動調整技術における有効性と問題点とについて説明する。
上記（従来技術１）の場合では、システムソフトウエアに依存せず、実際に接続される外部負荷容量に対応して自動的に調整が行われる点では有効である。
【００１２】
しかしながら、（従来技術１）の場合では、専用回路がデバイス内に必要であるため、専用回路を動作させるための電力が別途必要となる。また、駆動能力を調整するための情報を得るために外部信号を参照するため、結果的に当該信号ラインの総負荷容量が増加し、出力バッファに求められる駆動能力を上昇させてしまう。
【００１３】
また、（従来技術１）の場合では、コスト（例えば製造コスト、運転コスト）の観点においても、専用回路を内蔵する分だけコンピュータシステムの回路規模が増加し、さらに（従来技術１−３）特開２０００−２６１４６４号公報に記載された技術のように、帰還信号を専用回路に入力するための外部端子も必要になることから、コストを増加させてしまう懸念がある。
【００１４】
また、（従来技術１）の場合では、実現性の観点においても、（従来技術１−１）特開平１０−３１２２３０号公報では２種類の遅延時間をデバイス内部で実現することを前提としており、精度の高い駆動能力調整を行うためには遅延時間の精度を高める必要があるが、量産半導体デバイスにおける遅延時間を予めに決定すること、及び、その遅延時間を検査することは困難と考えられる。また、仮に遅延時間を予めに決定することが可能であったとしても、遅延時間と調整すべき出力バッファの駆動能力との関連付けを適切に行う必要があるが、デバイス製造後の変更は不可能であると考えられる。このため、デバイス製造前の設計段階でその妥当性を確立する必要があり、実現は困難と考えられる。同様に、（従来技術１−２）特開２０００−９１８９９号公報では複数の種類の容量のキャパシタをデバイス内部で実現することを前提としているが、精度の高い駆動能力の調整を行うために多数の異なる容量のキャパシタを準備し、さらに外部負荷容量の見込み範囲と調整すべき出力バッファの駆動能力との適切な関連付けを、設計段階で保障することは困難であると考えられる。同様に、（従来技術１−３）特開２０００−２６１４６４号公報では複数の基準電圧をデバイス内部で実現することを前提としているが、オーバーシュート電圧のレベルは一般的には電源電圧以上であり、その値を判別するためには電源電圧以上の複数の基準電圧を高い精度で実現する必要があり、複数の基準電圧と調整すべき出力バッファの駆動能力との適切な関連付けと併せて、設計段階で保障することは困難と考えられる。
【００１５】
また、（従来技術１）の場合では、複数のドライブデバイスが接続される拡張バスへの適用のためには、各デバイスの駆動能力調整手続きの実行タイミングの調整という課題もある。
【００１６】
（従来技術２）実際の動作試行結果による調整技術における有効性と問題点とについて説明する。
（従来技術２）の場合では、上記（従来技術１）の技術と異なりシステムソフトウエアがディジタル的に制御を司るため、デバイス内部における各種の電気的なパラメータを予めに決定することは不要であり、デバイスの設計及び製造に関して特に支障はない点では有効である。また、複数のデバイスの駆動能力調整手続きの実行タイミングの調整に関しても、不完全ながら考慮がなされている（専用の調停機構は無く、テストサイクル実行に先立ち他のデバイスがテストサイクル中かどうかを単に確認する方式をとっているため、同時に複数のデバイスにおいてテストサイクルへの移行条件が整った場合には競合問題が発生し得る）。
【００１７】
しかしながら、（従来技術２）の場合では、テストサイクル発生に関する各種専用回路（データテーブル含む）はデバイス内部に必要であり、上記（従来技術１）の技術と同様に各種専用回路の追加によるデバイスの消費電力及びコストの上昇が懸念される。また、駆動能力の妥当性の判断を単にテストサイクルにおけるデータの送受信結果のみを基に行っている。駆動能力の設定が正常動作条件に対してマージンが少ない場合、温度等の動作環境の変化によっては駆動能力が不足し、誤動作する可能性が考えられることから、信頼性が高い方法とは言えない。
【００１８】
（従来技術３）デバイスの接続有無判別結果による調整技術における有効性と問題点とについて説明する。
（従来技術３）の場合では、上記（従来技術１）、（従来技術２）の技術と異なり、出力バッファの駆動能力を調整するための情報を検出する専用回路の追加が不要である点では有効である。
しかしながら（従来技術３）の場合では、接続されたデバイス数のみで外部負荷容量を判断しているため、適切な負荷要素が反映されず、精度の高い調整を行うことが困難である。また、（従来技術３）の場合では、バス上の負荷はメモリ等のスレーブデバイスを想定しているため、複数のマスタデバイスが存在し得る拡張バスに適用することは困難である。
【００１９】
（従来技術４）の場合では、出力バッファの駆動能力を調整するための判断方法に関しては具体的には言及していないが、カードスロットの実装状況の認識を基に出力バッファの駆動能力を調整するものと想定され、上記（従来技術３）の場合と同様の問題点があるものと考えられる。
【００２０】
【特許文献１】
特開平１０−３１２２３０号公報
【特許文献２】
特開２０００−９１８９９号公報
【特許文献３】
特開２０００−２６１４６４号公報
【特許文献４】
特開２００１−１９７０８８号公報
【特許文献５】
特開平９−１３５１５９号公報
【特許文献６】
特開２００２−２６７１３号公報
【特許文献７】
特開平８−２７９７４２号公報
【００２１】
【発明が解決しようとする課題】
本発明の目的は、出力バッファの駆動能力を正確且つ容易に調整することができるコンピュータシステムを提供することにある。
本発明の他の目的は、出力バッファの駆動能力を調整するための情報を検出する専用回路を必要とすることなく、出力バッファの駆動能力を正確且つ容易に調整することができるコンピュータシステムを提供することにある。
本発明の更に他の目的は、コストが低減するコンピュータシステムを提供することにある。
【００２２】
【課題を解決するための手段】
以下に、［発明の実施の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明の実施の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２３】
本発明のコンピュータシステムは、システムソフトウエアと、マザーボード（１１）と、拡張ボード（１８）とを具備する。マザーボード（１１）には、内部バス（１３）と、複数の内部デバイス（１６；＃０〜＃２）と、複数の拡張スロット（１７；＃１〜＃３）と、第１メモリ（１９）とが常時敷設されている。内部バス（１３）としては、拡張バスであるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが例示される。複数の内部デバイス（１６；＃０〜＃２）の各々と複数の拡張スロット（１７；＃１〜＃３）の各々とは内部バス（１３）に接続されている。拡張ボード（１８）は、拡張スロット（１７；＃１）に接続される外部デバイス（１６；＃３）と、第２メモリ（２０）とが設けられている。複数の内部デバイス（１６；＃０〜＃２）の各々と外部デバイス（１６；＃３）とは、出力バッファ（２１）を備えている。
【００２４】
本発明のコンピュータシステムにおける上記の回路構成はその設計の時点で決定される。このため、設計者は、内部バス（１３）に付加される負荷容量のうち、使用者の利用目的に応じて拡張スロット（１７；＃１）に拡張ボード（１８）が接続されたときに拡張スロット（１７；＃１）を介して内部バス（１３）に適宜付加される外部負荷容量を除く、マザーボード（１１）に常時敷設される内部バス（１３）に付加される内部負荷容量を事前に決定（把握）することができる。
内部負荷容量は、内部バス（１３）の各バスラインに接続される内部デバイス（１６；＃０〜＃２）の入力負荷容量（ＣＤ０１〜ＣＤ０ｎ、ＣＤ１１〜ＣＤ１ｎ、ＣＤ２１〜ＣＤ２ｎ）と、内部デバイス同士を接続するためにマザーボード（１１）上に敷設される配線分の負荷容量（ＣＬ０１〜ＣＬ０ｎ）と、拡張スロット（１７；＃１〜＃３）を内部バス（１３）に接続するためにマザーボード（１１）上に敷設される配線分の負荷容量（ＣＬ１１〜ＣＬ１ｎ、ＣＬ２１〜ＣＬ２ｎ、ＣＬ３１〜ＣＬ３ｎ）とを含む。内部負荷容量に含まれる上記の配線分の負荷容量（ＣＬ０１〜ＣＬ０ｎ、ＣＬ１１〜ＣＬ１ｎ、ＣＬ２１〜ＣＬ２ｎ、ＣＬ３１〜ＣＬ３ｎ）は、マザーボード（１１）上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
外部負荷容量（ＣＤ３１〜ＣＤ３ｎ）は、拡張ボード（１８）上の各バスラインに接続される外部デバイス（１６；＃３）の入力負荷容量と、拡張スロット（１７；＃１）と拡張ボード（１８）との接触部分の負荷容量と、内部デバイス（１６；＃０〜＃２）と外部デバイス（１６；＃３）とを接続するために拡張ボード（１８）上に敷設される配線分の負荷容量とを含む。外部負荷容量（ＣＤ３１〜ＣＤ３ｎ）に含まれる上記の配線分の負荷容量は、拡張ボード（１８）上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
本発明では、拡張スロット（１７；＃１）に拡張ボード（１８）が接続された場合、拡張バス｛内部バス（１３）｝全体に付加される負荷容量として、上記の内部負荷容量に上記の外部負荷容量を合算した合計値（Ｃａｌｌ）により、出力バッファ（２１）の駆動能力を調整することが可能であると推測された。
【００２５】
本発明のコンピュータシステムでは、上記の通りコンピュータシステムの拡張バス｛内部バス（１３）｝全体に付加される負荷容量の変動要因が、基本的には拡張スロット（１７；＃１）に接続される負荷の有無、及びその負荷容量により決定されることを利用して、上記の内部負荷容量を情報として第１メモリ（１９）に格納し、上記の外部負荷容量を情報として第２メモリ（２０）に格納しておき、システムソフトウエア（１５）が、上記の情報（内部負荷容量、外部負荷容量）を参照し、拡張ボード（１８）上のバスデバイス｛外部デバイス（１６；＃３）｝を含めた全バスデバイス（１６；＃０〜＃３）の出力バッファの駆動能力の調整を行うことを特徴としている。
【００２６】
具体的には、システムソフトウエア（１５）は、コンピュータシステムの起動時（電源投入時）の各種初期化処理の中で、まず、拡張スロット（１７；＃１）を介して内部バス（１３）に接続されたバスデバイス｛外部デバイス（１６；＃３）｝を含めた全バスデバイス（１６；＃０〜＃３）の認識（検出）を行う（Ｓ１；バスデバイス検出処理）。第２メモリ（２０）に情報として格納された外部負荷容量は、電源投入時に、外部デバイス（１６；＃３）内に格納される。システムソフトウエア（１５）は、上記の内部負荷容量を第１メモリ（１９）から読み出し、上記の外部負荷容量を外部デバイス（１６；＃３）内から読み出し、内部負荷容量と外部負荷容量とを合算した合計値（Ｃａｌｌ）を算出する（Ｓ３；負荷容量合計値算出処理）。システムソフトウエア（１５）は、その合計値（Ｃａｌｌ）に基づいて、内部デバイス（１６；＃０〜＃２）の出力バッファ（２１）の駆動能力と、外部デバイス（１６；＃３）の出力バッファ（２１）の駆動能力とを決定（調整・設定）する（Ｓ４；駆動能力設定処理）。上記の処理を各バスラインについて逐次実行する。
【００２７】
このように、本発明のコンピュータシステムによれば、上記の内部負荷容量が第１メモリ（１９）に予めに格納され、上記の外部負荷容量が第２メモリ（２０）に予めに格納されているため、負荷容量（内部負荷容量、外部負荷容量）に対応した、出力バッファ（２１）の駆動能力を正確且つ容易に調整することができる。このため、本発明のコンピュータシステムによれば、前述した専用回路（各バスデバイスの出力バッファが実際に駆動する負荷容量を検出するための専用回路）を必要としない。
【００２８】
これにより、本発明のコンピュータシステムによれば、前述した（従来技術１）の場合における課題である当該回路にかかる消費電力の増加、外部端子の追加を含めた回路コストの増加、デバイス内部の各種電気的パラメータの調整に伴うデバイス製造の困難化、デバイス設計または製造段階での駆動能力調整機構の確立の必要性（製造後の変更不可）、前述した（従来技術２）〜（従来技術４）の場合における課題である調整精度の低さ、及び従来技術に共通する課題である拡張バス上の全デバイスに対する駆動能力調整、特に設定動作時の競合問題の回避といった各種の課題をすべて解決することができる。
【００２９】
特に、本発明のコンピュータシステムによれば、上記の内部負荷容量に含まれる配線分の負荷容量、上記の外部負荷容量に含まれる接触部分の負荷容量、配線分の負荷容量、等まで考慮することにより、出力バッファ（２１）の駆動能力をより正確に調整することができる。
【００３０】
本発明のコンピュータシステムにおいて、外部デバイス（１６；＃３）は、負荷情報レジスタ（２８）を備え、外部デバイス（１６；＃３）は、第２メモリ（２０）に情報として格納された外部負荷容量を電源投入時に読取って、負荷情報レジスタ（２８）に格納することが好ましい。システムソフトウエア（１５）は、第１メモリ（１９）に情報として格納された内部負荷容量を読み出し、上記の外部デバイス（１６；＃３）内に格納された外部負荷容量として、負荷情報レジスタ（２８）格納された外部負荷容量を読み出して、内部負荷容量と外部負荷容量とを合算して合計値（Ｃａｌｌ）を算出することが好ましい。
【００３１】
本発明のコンピュータシステムにおいて、システムソフトウエア（１５）は、上記の合計値（Ｃａｌｌ）と、拡張バス（内部バス）において想定されうる負荷容量の最大値に対する相対値との比較結果に基づいて、出力バッファ（２１）の駆動能力を決定することが好ましい。
具体的には、内部デバイス（１６；＃０〜＃２）と外部デバイス（１６；＃３）とは、出力バッファ（２１）に接続された駆動能力設定レジスタ（２６）を備え、第１メモリ（１９）には、駆動能力設定テーブル（４４）が更に格納されている。この駆動能力設定テーブル（４４）には、拡張バス（内部バス）において想定されうる負荷容量の最大値（Ｃｍａｘ）に対する相対値と、出力バッファ（２１）の駆動能力を設定するための設定情報とが複数対応付けられて格納されている。システムソフトウエア（１５）は、駆動能力設定テーブル（４４）を参照して、複数の相対値のうちの合計値（Ｃａｌｌ）と一致する相対値を選択し、複数の設定情報のうちの一致する相対値に対応付けられた設定情報を決定し、決定された設定情報を駆動能力設定レジスタ（２６）に設定する。
【００３２】
本発明のコンピュータシステムにおいて、内部負荷情報は、第１メモリ（１９）の変更によって随時修正可能であり、外部負荷情報は、第２メモリ（２０）の変更によって随時修正可能であることが好ましい。
本発明のコンピュータシステムにおいて、駆動能力設定テーブル（４４）に格納された複数の相対値と複数の設定情報とは、第１メモリ（１９）の変更によって随時修正可能であることが好ましい。
【００３３】
【発明の実施の形態】
添付図面を参照して、本発明によるコンピュータシステムの実施の形態を以下に説明する。
【００３４】
（第１実施形態）
図１は、本発明のコンピュータシステム１０の構成の一部を示す概略図である。図１に示されるように、コンピュータシステム１０は、本発明に関連する構成要素が抜粋され、それらの構成要素の接続関係を示している。コンピュータシステム１０は、マザーボード１１を具備する。マザーボード１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１５、複数個のバスデバイスであるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイス１６、システムＢＩＯＳ・ＲＯＭ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１９を具備する。本実施例では、複数個のＰＣＩデバイス１６として、マザーボード１１が３個のＰＣＩデバイス１６を具備しているものとし、以下、マザーボード１１上のＰＣＩデバイス１６を内部デバイスと称することもある。マザーボード１１は、更に、ＣＰＵバス１２、バスデバイスの駆動能力の調整対象となる拡張バスとしてＰＣＩバス１３、ローカルバス１４を具備する。以下、マザーボード１１上のＰＣＩバス１３を内部バスと称することもある。マザーボード１１は、据え置き型の場合、一般的に、複数個のＰＣＩバス拡張スロット１７を更に具備する。本実施例では、複数個のＰＣＩバス拡張スロット１７として、マザーボード１１が３個のＰＣＩバス拡張スロット１７を具備しているものとする。
【００３５】
マザーボード１１上に敷設された配線パターンにより、ＣＰＵ１５と３個のＰＣＩデバイス１６のうちの１個目のＰＣＩデバイス１６とはＣＰＵバス１２に接続され（１個目のＰＣＩデバイス１６は、ＣＰＵ１５からの各種ＰＣＩサイクルをＰＣＩバス１３上に起動するためのバスブリッジ機能を有している）、システムＢＩＯＳ・ＲＯＭ１９と３個のＰＣＩデバイス１６のうちの２個目のＰＣＩデバイス１６とはローカルバス１４に接続され（２個目のＰＣＩデバイス１６は、ＰＣＩバス１３とローカルバス１４間のバスブリッジとして機能する）、３個のＰＣＩデバイス１６と３個のＰＣＩバス拡張スロット１７とはＰＣＩバス１３に接続されている。
【００３６】
システムＢＩＯＳ・ＲＯＭ１９には、システムの各種初期設定情報に加え、マザーボード１１に常時敷設された内部バス（ＰＣＩバス１３）に付加される内部負荷容量が情報（内部負荷情報）として格納されている。この内部負荷容量については後述する。
【００３７】
コンピュータシステム１０の使用者は、その利用目的に応じて、特定の機能を実現する回路を搭載したＰＣＩ拡張ボード１８を適宜ＰＣＩバス拡張スロット１７に実装することができる。ＰＣＩ拡張ボード１８は、特定の機能を実現する回路として、ＰＣＩデバイス１６と、ＰＣＩデバイス１６に接続されたコンフィギュレーションＲＯＭ２０とを具備する。以下、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６を外部デバイスと称することもある。本実施例では、３個のＰＣＩバス拡張スロット１７のうち、１番目のスロットをＰＣＩバス拡張スロット＃１と称し、２番目のスロットをＰＣＩバス拡張スロット＃２と称し、３番目のスロットをＰＣＩバス拡張スロット＃３と称する。コンピュータシステム１０は、ＰＣＩバス拡張スロット＃１に上記のＰＣＩ拡張ボード１８が実装されたとき、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６がＰＣＩバス拡張スロット＃１を介してＰＣＩバス１３に接続され、システムの機能を拡張できるように構成されている。
【００３８】
コンフィギュレーションＲＯＭ２０には、電源投入時にＰＣＩ拡張ボード１８上のＰＣＩデバイス１６により読み出され、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６の各種動作条件の初期設定を行うための初期設定情報が格納されている。コンフィギュレーションＲＯＭ２０には、更に、ＰＣＩバス拡張スロット１７（ＰＣＩバス拡張スロット＃１、＃２、＃３）を介して内部バス（ＰＣＩバス１３）に付加される外部負荷容量が情報（外部負荷情報）として格納されている。この外部負荷容量については後述する。
【００３９】
上記の通り、本実施例ではＰＣＩバス１３に、４つのＰＣＩデバイス１６が接続されることになる。なお、コンピュータシステム１０は、更に、プラグアンドプレイをサポートするシステムソフトウエア（図示しない）、ＰＣＩバス規格で規定するデバイス番号付与手段（図示しない）を具備し、各ＰＣＩデバイス１６には、デバイス番号付与手段により、それぞれデバイス番号＃０〜＃３が付与されており、システムソフトウエア（ＣＰＵ１５）はデバイス番号＃０〜＃３を基に各ＰＣＩデバイス１６を論理的に区別し、特定のＰＣＩデバイス１６に対してアクセスすることが可能となっている。
デバイス番号の付与としては、一般的にはＰＣＩデバイス１６のＩＤＳＥＬ端子にアドレス信号ＡＤ［１１：３１］のいずれかを割り当てることで行われる。ＡＤ［１１］が割り当てられたＰＣＩデバイスにはデバイス番号＃０が付与され、ＡＤ［１２］が割り当てられたＰＣＩデバイスにはデバイス番号＃１が付与され、…というように、アドレス信号ＡＤとデバイス番号とは順次対応付けられており、ＰＣＩバス１３上に起動されるコンフィギュレーションサイクルにおいて、ＩＤＳＥＬ信号がアクティブであるＰＣＩデバイスが当該サイクルを引き取るよう取り決められている。なお、ＰＣＩバス１３へコンフィギュレーションサイクルを起動するマスタデバイスに関しては、固定的にデバイス番号＃０が付与され、ＩＤＳＥＬ端子は具備しないことが通例である。
【００４０】
本実施例では、マザーボード１１上の１個目のＰＣＩデバイス１６は、前述の通りＣＰＵ１５からの各種ＰＣＩサイクルがＣＰＵバス１２を経由してＰＣＩバス１３上で起動するためのバスブリッジ機能を有しており、固定的にデバイス番号＃０を付与される（ＩＤＳＥＬ端子を具備していない）。以下、デバイス番号＃０が付与されたＰＣＩデバイス１６をＰＣＩデバイス＃０と称する。
【００４１】
マザーボード１１上の２個目のＰＣＩデバイス１６、３個目のＰＣＩデバイス１６は、ＩＤＳＥＬ端子を具備している。マザーボード１１上の２個目のＰＣＩデバイス１６には、ＡＤ［１２］が割り当てられてデバイス番号＃１が付与され、マザーボード１１上の３個目のＰＣＩデバイス１６には、ＡＤ［１３］が割り当てられてデバイス番号＃２が付与されている。以下、デバイス番号＃１が付与されたＰＣＩデバイス１６をＰＣＩデバイス＃１と称し、デバイス番号＃２が付与されたＰＣＩデバイス１６をＰＣＩデバイス＃２と称する。
【００４２】
ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６、マザーボード１１上のＰＣＩバス拡張スロット＃１、＃２、＃３は、ＩＤＳＥＬ端子を具備している。ＰＣＩバス拡張スロット＃１のＩＤＳＥＬ端子には、ＡＤ［１４］が割り当てられてデバイス番号＃３が付与されている。これにより、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６がＰＣＩバス拡張スロット＃１に接続されたとき、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６のＩＤＳＥＬ端子には、間接的にＡＤ［１４］が割り当てられ、デバイス番号＃３が付与される。以下、デバイス番号＃３が付与されたＰＣＩデバイス１６をＰＣＩデバイス＃３と称する。
また、図１に示される構成では、ＰＣＩバス拡張スロット＃２、＃３は空きとなっているが、ＰＣＩバス拡張スロット＃２、＃３のいずれかに他のＰＣＩ拡張ボード１８が接続された場合に他のＰＣＩ拡張ボード１８上のＰＣＩデバイス１６に対してもデバイス番号を一意に付与できるように、ＰＣＩバス拡張スロット＃２のＩＤＳＥＬ端子にＡＤ［１５］が割り当てられてデバイス番号＃４が付与され、ＰＣＩバス拡張スロット＃３のＩＤＳＥＬ端子にＡＤ［１６］が割り当てられてデバイス番号＃５が付与されている。
【００４３】
図２は、図１に示されたＰＣＩデバイス１６の構成の一部を示す概略図である。図２に示されるように、ＰＣＩデバイス１６は、本発明に関連する構成要素が抜粋され、それらの構成要素の接続関係を示している。ＰＣＩデバイス１６は、駆動部を備え、その駆動部は、出力バッファ群２１、ＡＮＤゲート群２７、入力バッファ３１、外部端子３０を備えている。出力バッファ群２１は、第１出力バッファ２２、第２出力バッファ２３、第３出力バッファ２４を含む。ＡＮＤゲート群２７は、第１ＡＮＤゲート２７−１、第２ＡＮＤゲート２７−２、第３ＡＮＤゲート２７−３を含む。その駆動部は、ＰＣＩ信号（出力データである出力原信号、出力制御信号）の数だけ存在するが、駆動能力制御を共通とするＰＣＩ信号を便宜的に１つのグループとして一括し、信号グループ“１”〜“ｎ”として表記している。以下、駆動部（出力バッファ群２１、ＡＮＤゲート群２７、入力バッファ３１、外部端子３０）を、ＰＣＩ信号グループ“１”〜“ｎ”の駆動部と称する。
【００４４】
ＰＣＩデバイス１６は、ＲＯＭ制御部２９、ＰＣＩコンフィギュレーションレジスタ２５を備えている。
ＰＣＩコンフィギュレーションレジスタ２５は、駆動能力設定レジスタ２６と負荷情報レジスタ２８とを備えている。駆動能力設定レジスタ２６、負荷情報レジスタ２８は、ＰＣＩ信号グループの数だけ存在する。以下、ＰＣＩ信号グループの数だけ存在する駆動能力設定レジスタ２６を、ＰＣＩ信号グループ“１”〜“ｎ”の駆動能力設定レジスタ２６と称し、ＰＣＩ信号グループの数だけ存在する負荷情報レジスタ２８を、ＰＣＩ信号グループ“１”〜“ｎ”の負荷情報レジスタ２８と称する。ＲＯＭ制御部２９は、ＰＣＩデバイス１６がＰＣＩ拡張ボード１８に搭載されている場合、電源投入時に、コンフィギュレーションＲＯＭ２０に格納された情報を読み出す。
【００４５】
ＰＣＩ信号グループ“ｍ”（ｍ＝１、２、…、ｎ）の第１出力バッファ２２、第２出力バッファ２３、第３出力バッファ２４の出力側には、ＰＣＩ信号グループ“ｍ”の外部端子３０と、ＰＣＩ信号グループ“ｍ”の入力バッファ３１の入力側とが接続されている。ＰＣＩ信号グループ“ｍ”の入力バッファ３１の出力側には、入力信号が出力される。ＰＣＩ信号グループ“ｍ”の第１出力バッファ２２、第２出力バッファ２３、第３出力バッファ２４の入力側には、ＰＣＩデバイス１６内部（図示しないデバイス内部回路）で生成された出力原信号（出力データ）が入力される。
ＰＣＩ信号グループ“ｍ”の第１ＡＮＤゲート２７−１の入力側の両端子のうちの一方の端子には、ＰＣＩ信号グループ“ｍ”の駆動能力設定レジスタ２６のビット“２”が接続されている。ＰＣＩ信号グループ“ｍ”の第２ＡＮＤゲート２７−２の入力側の両端子のうちの一方の端子には、ＰＣＩ信号グループ“ｍ”の駆動能力設定レジスタ２６のビット“１”が接続されている。ＰＣＩ信号グループ“ｍ”の第３ＡＮＤゲート２７−３の入力側の両端子のうちの一方の端子には、ＰＣＩ信号グループ“ｍ”の駆動能力設定レジスタ２６のビット“０”が接続されている。
【００４６】
ＰＣＩ信号グループ“ｍ”の第１ＡＮＤゲート２７−１、第２ＡＮＤゲート２７−２、第３ＡＮＤゲート２７−３の入力側の両端子のうちの他方の端子には、ＰＣＩデバイス１６内部で生成された出力制御信号が入力される。出力制御信号は、“１”、又は、“０”で表される。
駆動能力設定レジスタ２６には、各ビット（ビット“２”〜“０”）の設定値が予めに定義されている。ビット“２”、“１”、“０”に定義された設定値は、“１”、又は、“０”で表される。
ＰＣＩ信号グループ“ｍ”の第１ＡＮＤゲート２７−１は、出力制御信号が“１”を表し、且つ、ＰＣＩ信号グループ“ｍ”の駆動能力設定レジスタ２６のビット“２”に定義された設定値が“１”を表すとき、ＰＣＩ信号グループ“ｍ”の第１出力バッファ２２に値“１”を出力する。ＰＣＩ信号グループ“ｍ”の第１出力バッファ２２は、スイッチとして働き、ＰＣＩ信号グループ“ｍ”の第１ＡＮＤゲート２７−１からの出力値が“１”を表すとき、ＯＮ制御され、その出力値が“０”を表すとき、ＯＦＦ制御される。すなわち、その出力値が“１”を表すとき、ＰＣＩ信号グループ“ｍ”の第１出力バッファ２２は、出力原信号を出力する。
ＰＣＩ信号グループ“ｍ”の第２ＡＮＤゲート２７−２は、出力制御信号が“１”を表し、且つ、ＰＣＩ信号グループ“ｍ”の駆動能力設定レジスタ２６のビット“１”に定義された設定値が“１”を表すとき、ＰＣＩ信号グループ“ｍ”の第２出力バッファ２３に値“１”を出力する。ＰＣＩ信号グループ“ｍ”の第２出力バッファ２３は、スイッチとして働き、ＰＣＩ信号グループ“ｍ”の第２ＡＮＤゲート２７−２からの出力値が“１”を表すとき、ＯＮ制御され、その出力値が“０”を表すとき、ＯＦＦ制御される。すなわち、その出力値が“１”を表すとき、ＰＣＩ信号グループ“ｍ”の第２出力バッファ２３は、出力原信号を出力する。
ＰＣＩ信号グループ“ｍ”の第３ＡＮＤゲート２７−３は、出力制御信号が“１”を表し、且つ、ＰＣＩ信号グループ“ｍ”の駆動能力設定レジスタ２６のビット“０”に定義された設定値が“１”を表すとき、ＰＣＩ信号グループ“ｍ”の第３出力バッファ２４に値“１”を出力する。ＰＣＩ信号グループ“ｍ”の第３出力バッファ２４は、スイッチとして働き、ＰＣＩ信号グループ“ｍ”の第３ＡＮＤゲート２７−３からの出力値が“１”を表すとき、ＯＮ制御され、その出力値が“０”を表すとき、ＯＦＦ制御される。すなわち、その出力値が“１”を表すとき、ＰＣＩ信号グループ“ｍ”の第３出力バッファ２４は、出力原信号を出力する。
【００４７】
ＰＣＩ信号グループ“ｍ”の駆動部の第１出力バッファ２２、第２出力バッファ２３、第３出力バッファ２４は、異なる駆動能力を有する。第１出力バッファ２２は第２出力バッファ２３の２倍の駆動能力を有し、第２出力バッファ２３は第３出力バッファ２４の２倍の駆動能力を有することにより、第１出力バッファ２２、第２出力バッファ２３、第３出力バッファ２４のＯＮ／ＯＦＦ制御の組み合わせにより、駆動無しの状態も含めて計８通りの駆動能力を段階的に実現することが可能である。出力バッファ群２１の駆動能力最大時、すなわち第１出力バッファ２２、第２出力バッファ２３、第３出力バッファ２４をすべてＯＮとした場合に、コンピュータシステム１０の拡張バス（内部バス）において想定されうる最大負荷を駆動できるように各出力バッファの駆動能力を決定する。
システムソフトウエア（ＣＰＵ１５）は、初期化時に、負荷容量（上記の内部負荷容量、上記の外部負荷容量）に基づいて、適切な出力バッファ群２１の駆動能力を決定する。すなわち、システムソフトウエア（ＣＰＵ１５）は、出力バッファ群２１の駆動能力を設定するための設定情報（設定値）を決定し、駆動能力設定レジスタ２６に設定する。なお、システムソフトウエア（ＣＰＵ１５）により適切な駆動能力が設定されるまでのシステム動作を保障するため、電源投入時における駆動能力設定レジスタ２６に定義された各ビット（ビット“２”〜“０”）の設定値が初期値として最大レンジ（ビット“２”〜“０”がすべて“１”）となるようにＰＣＩデバイス１６を設計する。上述のように、各出力バッファ２２、２３、２４は、最終的に駆動能力設定レジスタ２６に設定された設定値と出力制御信号が表す値とを各ＡＮＤゲートにより論理積が施された値で制御される。
【００４８】
上述のように、システムソフトウエア（ＣＰＵ１５）は、上記の設定情報（設定値）を駆動能力設定レジスタ２６に設定する際に、駆動能力の調整対象となる負荷容量を参照する必要がある。
負荷容量のうちの上記の外部負荷容量は、ＰＣＩ信号グループ“１”〜“ｎ”毎にＰＣＩ拡張ボード１８上のコンフィギュレーションＲＯＭ２０に格納されている｛後述する図３（ｂ）｝。外部負荷容量は、拡張ボード上の各バスラインに接続される外部デバイスの入力負荷容量と、ＰＣＩバス拡張スロット＃１、＃２、＃３とＰＣＩ拡張ボード１８との接触部分の負荷容量と、内部デバイスと外部デバイスとを接続するためにＰＣＩ拡張ボード１８上に敷設される配線分の負荷容量とを含む。この外部負荷容量は、電源投入時にＲＯＭ制御部２９によりＰＣＩ信号グループ“１”〜“ｎ”毎に読み出される。ＰＣＩ信号グループ“１”〜“ｎ”毎に読み出された外部負荷容量は、ＲＯＭ制御部２９によって、上記のＰＣＩ信号グループ“１”〜“ｎ”の負荷情報レジスタ２８に反映される。システムソフトウエア（ＣＰＵ１５）は、上記の外部負荷容量を参照するときに、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６の負荷情報レジスタ２８を参照する。負荷容量のうちの上記の内部負荷容量は、ＰＣＩ信号グループ“１”〜“ｎ”毎にマザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９に格納されている｛後述する図３（ａ）、（ｃ）｝。内部負荷容量は、内部バスの各バスラインに接続される内部デバイスの入力負荷容量と、内部デバイス同士を接続するためにマザーボード１１上に敷設される配線分の負荷容量と、ＰＣＩバス拡張スロット＃１、＃２、＃３を内部バスに接続するためにマザーボード１１上に敷設される配線分の負荷容量とを含む。システムソフトウエア（ＣＰＵ１５）は、内部負荷容量を参照するときに、マザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９を参照し、負荷情報レジスタ２８は参照しない。なお、内部デバイスの入力負荷容量に関しては、ＰＣＩ拡張ボード１８の負荷容量（外部負荷容量）と同様に負荷情報レジスタ２８を参照することも可能であるが、その設定のためにコンフィギュレーションＲＯＭが別途必要となり、システムコストが増加するため、内部負荷容量に含まれる上記の配線分の負荷容量と同様にシステムＢＩＯＳ・ＲＯＭ１９内に格納することが望ましい。また、ＰＣＩ拡張ボード１８の負荷容量（外部負荷容量）に関しては、事前に接続が想定されるあらゆる拡張ボードについての情報をすべてシステムＢＩＯＳ・ＲＯＭ１９内に格納した場合、システムＢＩＯＳ・ＲＯＭ１９の容量が莫大となることが予想されるため、本実施例のようにＰＣＩ拡張ボード１８上のＰＣＩデバイス１６の負荷情報レジスタ２８を参照することが望ましい。
【００４９】
図３（ａ）は、図１に示されたシステムＢＩＯＳ・ＲＯＭ１９内に格納された内部デバイス入力負荷容量テーブル４１を示す。内部デバイス入力負荷容量テーブル４１には、内部負荷情報として、内部バスの各バスラインに接続される各内部デバイスの入力負荷容量が、そのデバイス番号に関連付けた形でＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。
内部デバイス入力負荷容量テーブル４１に格納された内部デバイスの入力負荷容量は、システムＢＩＯＳ・ＲＯＭ１９（内部デバイス入力負荷容量テーブル４１）の変更によって随時修正可能である。
【００５０】
図３（ａ）に示されるように、内部デバイス入力負荷容量テーブル４１には、ＰＣＩデバイス１６（デバイス番号＃０）に対応付けられて、ＰＣＩデバイス＃０の入力負荷容量ＣＤ０１〜ＣＤ０ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。
内部デバイス入力負荷容量テーブル４１には、ＰＣＩデバイス１６（デバイス番号＃１）に対応付けられて、ＰＣＩデバイス＃１の入力負荷容量ＣＤ１１〜ＣＤ１ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。
内部デバイス入力負荷容量テーブル４１には、ＰＣＩデバイス１６（デバイス番号＃２）に対応付けられて、ＰＣＩデバイス＃２の入力負荷容量ＣＤ２１〜ＣＤ２ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。
入力負荷容量ＣＤ０１〜ＣＤ０ｎ、ＣＤ１１〜ＣＤ１ｎ、ＣＤ２１〜ＣＤ２ｎは数字で表され、その単位は例えばｐＦで表される。上記のＰＣＩデバイス１６のＰＣＩ信号グループ“１”〜“ｎ”の外部端子３０のうち、ＰＣＩバス１３に接続されていないＰＣＩ信号グループが存在する（もしくは対応する外部端子３０自体がＰＣＩデバイス１６に存在しない）場合は、そのＰＣＩ信号グループの入力負荷容量は０ｐＦとなる。
【００５１】
図３（ｂ）は、図１に示されたコンフィギュレーションＲＯＭ２０内に格納された外部負荷容量テーブル４２を示す。外部負荷容量テーブル４２には、外部負荷容量（拡張ボード上の各バスラインに接続される外部デバイスの入力負荷容量と、ＰＣＩバス拡張スロット＃１、＃２、＃３とＰＣＩ拡張ボード１８との接触部分の負荷容量と、内部デバイスと外部デバイスとを接続するためにＰＣＩ拡張ボード１８上に敷設される配線分の負荷容量とを含む）がＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。
外部負荷容量テーブル４２に格納された外部負荷容量は、コンフィギュレーションＲＯＭ２０（外部負荷容量テーブル４２）の変更によって随時修正可能である。
【００５２】
図３（ｂ）に示されるように、外部負荷容量テーブル４２には、マザーボード１１上のＰＣＩバス拡張スロット＃１に接続されたＰＣＩ拡張ボード１８上のＰＣＩデバイス１６（デバイス番号＃３）に対応付けられて、ＰＣＩデバイス＃３の外部負荷容量ＣＤ３１〜ＣＤ３ｎとしてＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。外部負荷容量ＣＤ３１〜ＣＤ３ｎに含まれる上記の配線分の負荷容量は、ＰＣＩ拡張ボード１８上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
外部負荷容量ＣＤ３１〜ＣＤ３ｎは数字で表され、その単位はたとえばｐＦで表される。外部負荷容量ＣＤ３１〜ＣＤ３ｎは、上述のように、ＲＯＭ制御部２９によって、読み出され、上記のＰＣＩ信号グループ“１”〜“ｎ”の負荷情報レジスタ２８に反映される。入力負荷容量ＣＤ３１〜ＣＤ３ｎは、ＰＣＩ拡張ボード１８をＰＣＩバス拡張スロット＃１へ接続することにより内部バスのＰＣＩ信号グループ“１”〜“ｎ”にそれぞれ付加されるＰＣＩ拡張ボード１８上の総負荷容量を表す。
ＰＣＩ拡張ボード１８がＰＣＩバス拡張スロット＃２、又は、ＰＣＩバス拡張スロット＃３に接続された場合、ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６（デバイス番号＃４又はデバイス番号＃５）に対応付けられて、外部負荷容量ＣＤ４１〜ＣＤ４ｎ、又は、ＣＤ５１〜ＣＤ５ｎとしてＰＣＩ信号グループ“１”〜“ｎ”毎に外部負荷容量テーブル４２に格納される（図示しない）。外部負荷容量ＣＤ４１〜ＣＤ４ｎ、ＣＤ５１〜ＣＤ５ｎは数字で表され、その単位はたとえばｐＦで表される。
【００５３】
図３（ｃ）は、図１に示されたシステムＢＩＯＳ・ＲＯＭ１９内に格納された内部配線分負荷容量テーブル４３を示す。内部配線分負荷容量テーブル４３には、内部バス（ＰＣＩバス１３）の要素がＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。内部配線分負荷容量テーブル４３には、更に、内部負荷情報として、マザーボード１１上に敷設される後述の配線分の負荷容量がＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。
内部配線分負荷容量テーブル４３に格納された内部負荷情報に含まれる上記の配線分の負荷容量は、システムＢＩＯＳ・ＲＯＭ１９（内部配線分負荷容量テーブル４３）の変更によって随時修正可能である。
【００５４】
図３（ｃ）に示されるように、内部配線分負荷容量テーブル４３には、内部デバイスの外部端子３０同士を接続するためにマザーボード１１上に敷設される配線分の負荷容量（配線負荷容量）ＣＬ０１〜ＣＬ０ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に格納されている。この配線負荷容量ＣＬ０１〜ＣＬ０ｎは、マザーボード１１上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
内部配線分負荷容量テーブル４３には、ＰＣＩバス拡張スロット＃１を内部バスに接続するためにマザーボード１１上に敷設される配線分の負荷容量（配線負荷容量）ＣＬ１１〜ＣＬ１ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に、内部負荷情報として格納されている。この配線負荷容量ＣＬ１１〜ＣＬ１ｎは、マザーボード１１上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
内部配線分負荷容量テーブル４３には、ＰＣＩバス拡張スロット＃２を内部バスに接続するためにマザーボード１１上に敷設される配線分の負荷容量（配線負荷容量）ＣＬ２１〜ＣＬ２ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に、内部負荷情報として格納されている。この配線負荷容量ＣＬ２１〜ＣＬ２ｎは、マザーボード１１上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
内部配線分負荷容量テーブル４３には、ＰＣＩバス拡張スロット＃３を内部バスに接続するためにマザーボード１１上に敷設される配線分の負荷容量（配線負荷容量）ＣＬ３１〜ＣＬ３ｎがＰＣＩ信号グループ“１”〜“ｎ”毎に、内部負荷情報として格納されている。この配線負荷容量ＣＬ３１〜ＣＬ３ｎは、マザーボード１１上に敷設される配線パターンの長さ、配線パターンを経由するスルーホール数、コネクタ接続数等を基に導出された負荷容量である。
配線負荷容量ＣＬ０１〜ＣＬ０ｎ、ＣＬ１１〜ＣＬ１ｎ、ＣＬ２１〜ＣＬ２ｎ、ＣＬ３１〜ＣＬ３ｎは数字で表され、その単位はたとえばｐＦで表される。
【００５５】
システムソフトウエア（ＣＰＵ１５）は、ＰＣＩ信号グループ毎に、内部負荷容量と外部負荷容量とを合算した負荷容量合計値に基づいて、ＰＣＩデバイス＃０、＃１、＃２、＃３内の出力バッファ群２１の駆動能力を設定するための設定情報（設定値）を決定し、その設定値を駆動能力設定レジスタ２６に設定する。システムＢＩＯＳ・ＲＯＭ１９内には、後述する駆動能力設定テーブルが格納され、その駆動能力設定テーブルには、拡張バス（内部バス）において想定されうる負荷容量の最大値に対する相対値と上記の設定値とが格納されている（図８参照）。すなわち、システムソフトウエア（ＣＰＵ１５）は、負荷容量合計値と、後述する駆動能力設定テーブルに格納された相対値との比較結果に基づいて上記の設定値を決定し、その設定値を、ＰＣＩ信号グループ毎に、ＰＣＩデバイス＃０、＃１、＃２、＃３内の駆動能力設定レジスタ２６の各ビット（ビット“２”〜“０”）に設定する。
【００５６】
本発明の第１実施形態に係るコンピュータシステムによれば、内部負荷情報（内部負荷容量）がシステムＢＩＯＳ・ＲＯＭ１９に予めに格納され、外部負荷情報（外部負荷容量）がコンフィギュレーションＲＯＭ２０に予めに格納されている。このため、本発明の第１実施形態に係るコンピュータシステムによれば、負荷容量合計値と設定情報（調整すべき出力バッファの駆動能力）との関連付けを設計段階で保証することができる。
【００５７】
システムＢＩＯＳ・ＲＯＭ１９、コンフィギュレーションＲＯＭ２０内に予めに格納される各種負荷情報（各種負荷容量）の決定方法について説明する。その決定方法に関しては、測定器に接続した実測による方法、各種デバイスや配線パターン等をモデル化したシミュレーションを利用する方法等が考えられる。各種負荷容量の値はＲＯＭ（システムＢＩＯＳ・ＲＯＭ１９、コンフィギュレーションＲＯＭ２０）を書き換えることで容易に修正可能である。このため、コンピュータシステム１０の試作段階でのシステム評価において、後述する駆動能力設定テーブルと合せてその妥当性を検証し、検証結果に応じて随時これらを調整していくプロセスを経た上で最終的な出荷時における設定値を決定することが望ましい。このように、駆動能力の調整に関する各種パラメータを適宜変更できることは、本発明による主要の効果の１つである。
【００５８】
出力バッファ群２１の駆動能力を設定（調整）する精度を上げるためには、出力バッファ群２１を構成する出力バッファの数と駆動能力設定レジスタ２６のビット数とを増やすことにより、より細かい段階での調整を可能とし、さらに各ＰＣＩ信号毎に駆動能力設定レジスタ２６及びその設定の根拠となる負荷情報（負荷容量）を個別に定義、すなわち上記のグループ数（ＰＣＩ信号グループ）ｎ＝ＰＣＩ信号数とし個別に駆動能力を調整すれば良いわけであるが、その分だけ各ＰＣＩデバイス１６に必要となる駆動能力設定レジスタ２６の領域、及びシステム全体で管理すべき負荷情報（負荷容量）の量が増加するため注意が必要である。
【００５９】
ＰＣＩ信号のグループ分けの例、システムソフトウエア（ＣＰＵ１５）における負荷容量の算出、負荷情報（負荷容量）に基づいた出力バッファ群２１の駆動能力の設定に関しては、後述する出力バッファの駆動能力調整動作にて具体的に説明する。
なお、本発明では上記の通り、出力バッファ群２１の駆動能力調整のためにシステムＢＩＯＳ・ＲＯＭ１９、コンフィギュレーションＲＯＭ２０、及びＰＣＩデバイス１６内のコンフィギュレーションレジスタ２５の各記憶領域の一部を専用に使用するが、いずれも従来のコンピュータシステム及びデバイスにおいて使用されているリソースであり、本発明の実施に伴い当該領域を拡張することにより消費電力及びコストが増加する可能性は否定できないものの、その影響度は、前述の従来技術の実施に伴う各種影響に比べれば少ないものと考えられる。
【００６０】
図４は、本発明のコンピュータシステム１０の動作として初期化時における出力バッファ駆動能力調整処理を示すフローチャートである。ｎは、上記のグループ（ＰＣＩ信号グループ）の数である。
【００６１】
まず、プラグアンドプレイをサポートするシステムソフトウエア（ＣＰＵ１５）は、ＰＣＩバス１３に接続されたＰＣＩデバイス１６を認識（検出）する（ステップＳ１）。ステップＳ１（バスデバイス検出処理）にて、デバイス番号を＃０から順次変化させながらＰＣＩコンフィギュレーションレジスタ２５、具体的にはベンダＩＤやデバイスＩＤ等の読み出しを実行し、有意のデータが読み出された場合は当該デバイス番号のＰＣＩデバイス１６がＰＣＩバス１３上に存在するものと判断する。
【００６２】
次に、システムソフトウエア（ＣＰＵ１５）は、ＰＣＩ信号グループ“ｍ”に“１”（ｍ＝１）を設定する（ステップＳ２）。
【００６３】
次いで、システムソフトウエア（ＣＰＵ１５）は、マザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９内の内部デバイス入力負荷容量テーブル４１と内部配線分負荷容量テーブル４３と、ＰＣＩ拡張ボード１８上のＰＣＩデバイス＃３内の負荷情報レジスタ２８とを参照する。システムソフトウエア（ＣＰＵ１５）は、内部デバイス入力負荷容量テーブル４１に格納されたＰＣＩ信号グループ“ｍ＝１”に対応するＰＣＩデバイス＃０、＃１、＃２の入力負荷容量と、内部配線分負荷容量テーブル４３に格納されたＰＣＩ信号グループ“ｍ＝１”に対応する配線分の負荷容量と、負荷情報レジスタ２８に格納されたＰＣＩ信号グループ“ｍ＝１”に対応する外部負荷容量とを合算した負荷容量合計値を算出する（ステップＳ３）。ステップＳ３（負荷容量合計値算出処理）の詳細については後述する。
【００６４】
次に、システムソフトウエア（ＣＰＵ１５）は、後述の駆動能力設定テーブルを参照して、ＰＣＩ信号グループ“ｍ＝１”について算出した負荷容量合計値により、ＰＣＩデバイス＃０、＃１、＃２、＃３内の出力バッファ群２１の駆動能力を設定するための設定情報（設定値）を決定し、その設定値をＰＣＩデバイス＃０、＃１、＃２、＃３内の駆動能力設定レジスタ２６の各ビット（ビット“２”〜“０”）に設定する（ステップＳ４）。これにより、ＰＣＩデバイス＃０、＃１、＃２、＃３内の出力バッファ群２１には、その出力バッファ群２１の駆動能力が設定される。各ＰＣＩデバイス１６の出力バッファ群２１が駆動すべき負荷容量は、同一のＰＣＩ信号であれば均一であるものと考え、同一グループの駆動能力設定レジスタ２６の値は各デバイス共通とする。ステップＳ４（駆動能力設定処理）の詳細については、後述の駆動能力設定テーブルを用いて説明する。
【００６５】
次いで、システムソフトウエア（ＣＰＵ１５）は、ＰＣＩ信号グループ“ｍ”に“１”をインクリメントし（ステップＳ５）、ＰＣＩ信号グループ“ｍ”がＰＣＩ信号グループ“ｎ”以下である場合（ステップＳ６−ＮＯ）、ＰＣＩ信号グループ“ｍ”がＰＣＩ信号グループ“ｎ”になるまでステップＳ３〜Ｓ６を実行し、ＰＣＩ信号グループ“ｍ”がＰＣＩ信号グループ“ｎ”よりも大きい場合（ステップＳ６−ＹＥＳ）に出力バッファ駆動能力調整処理を終了する。
【００６６】
次に、ｎ個のグループ（ＰＣＩ信号グループ）について説明する。本実施例では、理解を容易にするため、ｎを９とし、通常のＰＣＩバスサイクルで一般的に使用される信号について説明する。
図５は、本発明のコンピュータシステム１０におけるＰＣＩ信号を示す。ＰＣＩ信号は、駆動能力が各ＰＣＩデバイス１６内の同一の駆動能力設定レジスタ２６によって共通に制御されるものでグループ分けされている（ｎ＝９）。なお、ＰＣＩバス１３はコンピュータシステムに既に広く普及しており、周知のものであるため、各信号に関する具体的な説明は省略する。
図５に示されるグループ分けは、接続されるＰＣＩデバイス数、接続のために敷設される配線パターンの長さ等の負荷条件がほぼ同一と見込まれるものを同一グループとすることにより、各ＰＣＩデバイス１６内部の駆動能力の調整に必要となるＰＣＩコンフィギュレーションレジスタ２５の領域、及びシステム全体で管理すべき負荷容量（負荷情報）の効率化、ならびにシステムソフトウエアにおける調整動作の簡素化のために、コンピュータシステムの構成に応じて適切に行われることが望ましい。
【００６７】
図５に示されるように、ＰＣＩ信号グループ“１”には、信号として、ＡＤ［３１：１７］、ＡＤ［１１：０］、ＣＢＥ［３：０］、ＰＡＲ信号が対応付けられる。ＰＣＩ信号グループ“２”には、信号として、ＡＤ［１２］が対応付けられる。ＰＣＩ信号グループ“３”には、信号として、ＡＤ［１３］が対応付けられる。ＰＣＩ信号グループ“４”には、信号として、ＡＤ［１４］が対応付けられる。ＰＣＩ信号グループ“５”には、信号として、ＡＤ［１５］が対応付けられる。ＰＣＩ信号グループ“６”には、信号として、ＡＤ［１６］が対応付けられる。ＰＣＩ信号グループ“７”には、信号として、ＦＲＡＭＥ＃、ＩＲＤＹ＃、ＴＲＤＹ＃、ＳＴＯＰ＃、ＬＯＣＫ＃、ＤＥＶＳＥＬ＃が対応付けられる。ＰＣＩ信号グループ“８”には、信号として、ＰＥＲＲ＃、ＳＥＲＲ＃が対応付けられる。ＰＣＩ信号グループ“９”には、信号として、ＩＤＳＥＬが対応付けられる。
図５において、ＰＣＩ信号グループ“９”のＩＤＳＥＬ信号は他のＰＣＩ信号グループ“１”〜“８”が入出力信号であるのと異なり入力のみの信号であるが、前述の通りＩＤＳＥＬはＰＣＩデバイス番号（デバイス番号＃０、＃１、…）を付与するために用いられ、ＡＤ［１１：３１］のいずれかが割り当てられるので、それに伴う当該信号の負荷増加量を把握するために定義している。当然、ＩＤＳＥＬ信号は出力しないため、当該出力バッファ群２６の駆動能力はゼロに設定され、入力バッファ３１のみとして機能する。
また、本実施例では内部デバイス（マザーボード１１上のＰＣＩデバイス１６）にはデバイス番号＃０〜＃２、３つのＰＣＩ拡張スロット１７に接続される外部デバイス（各ＰＣＩ拡張ボード１８上のＰＣＩデバイス１６）にはデバイス番号＃３〜＃５をそれぞれ付与するため、そのために各ＰＣＩデバイス１６のＩＤＥＳＬ端子にも割り当てられるＡＤ［１２：１６］に関しては、他のＡＤ信号とは区別し、それぞれ個別のＰＣＩ信号グループ“２”〜“６”として定義している。
【００６８】
図６、図７は、本発明のコンピュータシステム１０の動作として出力バッファ駆動能力調整処理における負荷容量合計値算出処理（ステップＳ３）を示すフローチャートである。
図６に示されるように、上記の入力負荷容量ＣＤ０１〜ＣＤ０ｎ、ＣＤ１１〜ＣＤ１ｎ、ＣＤ２１〜ＣＤ２ｎを入力負荷容量ＣＤｉｍ（０≦ｉ≦２、ｎ＝９、１≦ｍ≦９）と称する。上述のように、入力負荷容量ＣＤｉｍは、マザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９内の内部デバイス入力負荷容量テーブル４１に格納されていて｛図３（ａ）参照｝、システムソフトウエア（ＣＰＵ１５）によって読み出される。
図６に示されるように、上記の配線負荷容量ＣＬ０１〜ＣＬ０ｎを配線負荷容量ＣＬ０ｍ（ｎ＝９、１≦ｍ≦９）と称する。上述のように、負荷容量ＣＬ０ｍは、マザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９内の内部配線分負荷容量テーブル４３に格納されていて｛図３（ｃ）参照｝、システムソフトウエア（ＣＰＵ１５）によって読み出される。
図７に示されるように、上記の外部負荷容量ＣＤ３１〜ＣＤ３ｎ、ＣＤ４１〜ＣＤ４ｎ、ＣＤ５１〜ＣＤ５ｎを外部負荷容量ＣＤｊｍ（３≦ｊ≦５、ｎ＝９、１≦ｍ≦９）と称する。上述のように、外部負荷容量ＣＤｊｍは、ＰＣＩ拡張ボード１８上のコンフィギュレーションＲＯＭ２０内の外部負荷容量テーブル４２に格納され｛図３（ｂ）参照｝、初期化時に、ＰＣＩ拡張ボード１８上の外部デバイス＃ｊ（ＰＣＩデバイス＃ｊ）内のＰＣＩ信号グループ“ｍ”の負荷情報レジスタ２８に格納（反映）されてシステムソフトウエア（ＣＰＵ１５）によって読み出される。
図７に示されるように、上記の配線負荷容量ＣＬ１１〜ＣＬ１ｎ、ＣＬ２１〜ＣＬ２ｎ、ＣＬ３１〜ＣＬ３ｎを配線負荷容量ＣＬｋｍ（１≦ｋ≦３、ｎ＝９、１≦ｍ≦９）と称する。上述のように、負荷容量ＣＬｋｍは、マザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９内の内部配線分負荷容量テーブル４３に格納されていて｛図３（ｃ）参照｝、システムソフトウエア（ＣＰＵ１５）によって読み出される。
【００６９】
まず、システムソフトウエア（ＣＰＵ１５）は、上記の負荷容量合計値である負荷容量合計値Ｃａｌｌを０にする（ステップＳ１１）。ＰＣＩ信号グループ“ｍ”が“９”である場合（ステップＳ１２−ＹＥＳ）、システムソフトウエア（ＣＰＵ１５）は、負荷容量合計値算出処理を終了する。ＰＣＩ信号グループ“ｍ”が“９”ではない場合（ステップＳ１２−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、入力負荷容量ＣＤ０ｍと、入力負荷容量ＣＤ１ｍと、入力負荷容量ＣＤ２ｍと、配線負荷容量ＣＬ０ｍとを負荷容量合計値Ｃａｌｌに合算する（ステップＳ１３）。
【００７０】
次に、ＰＣＩ信号グループ“ｍ”が“２”（ＡＤ［１２］）である場合（ステップＳ１４−ＹＥＳ）、内部デバイス＃１のＩＤＳＥＬ端子にも接続されるため、システムソフトウエア（ＣＰＵ１５）は、入力負荷容量ＣＤ１９を負荷容量合計値Ｃａｌｌに合算する（ステップＳ１５）。
【００７１】
次いで、ＰＣＩ信号グループ“ｍ”が“３”（ＡＤ［１３］）である場合（ステップＳ１４−ＮＯ、Ｓ１６−ＹＥＳ）、内部デバイス＃２のＩＤＳＥＬ端子にも接続されるため、システムソフトウエア（ＣＰＵ１５）は、入力負荷容量ＣＤ２９を負荷容量合計値Ｃａｌｌに合算する（ステップＳ１７）。
【００７２】
システムソフトウエア（ＣＰＵ１５）は、バスデバイス検出処理（ステップＳ１）により、ＰＣＩバス拡張スロット＃１に接続されたＰＣＩ拡張ボード１８上に存在するＰＣＩデバイス＃３を検出した場合（ステップＳ１８−ＹＥＳ）、ＰＣＩ拡張スロット＃１が開放端ではないと判断する。このため、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤ３ｍに加えて、配線負荷容量ＣＬ１ｍも負荷容量合計値Ｃａｌｌに合算する（ステップＳ１９）。
さらに、ＰＣＩ信号グループ“ｍ”が“４”（ＡＤ［１４］）である場合（ステップＳ２０−ＹＥＳ）、ＰＣＩデバイス＃３のＩＤＳＥＬ端子にも接続されるため、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤ３９に加えて、配線負荷容量ＣＬ１９も負荷容量合計値Ｃａｌｌに合算する（ステップＳ２１）。
一方、ＰＣＩデバイス＃３が存在しない場合（ステップＳ１８−ＮＯ）、ＰＣＩ信号グループ“ｍ”が“４”でなはい場合（ステップＳ２０−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、後述のステップＳ２２を実行する。
【００７３】
システムソフトウエア（ＣＰＵ１５）は、バスデバイス検出処理（ステップＳ１）により、ＰＣＩバス拡張スロット＃２に接続されたＰＣＩ拡張ボード１８上に存在するＰＣＩデバイス＃４を検出した場合（ステップＳ２２−ＹＥＳ）、ＰＣＩ拡張スロット＃２が開放端ではないと判断する。このため、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤ４ｍに加えて、配線負荷容量ＣＬ２ｍも負荷容量合計値Ｃａｌｌに合算する（ステップＳ２３）。
さらに、ＰＣＩ信号グループ“ｍ”が“５”（ＡＤ［１５］）である場合（ステップＳ２４−ＹＥＳ）、ＰＣＩデバイス＃４のＩＤＳＥＬ端子にも接続されるため、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤ４９に加えて、配線負荷容量ＣＬ２９も負荷容量合計値Ｃａｌｌに合算する（ステップＳ２５）。
一方、ＰＣＩデバイス＃４が存在しない場合（ステップＳ２２−ＮＯ）、ＰＣＩ信号グループ“ｍ”が“５”でなはい場合（ステップＳ２４−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、後述のステップＳ２６を実行する。
【００７４】
システムソフトウエア（ＣＰＵ１５）は、バスデバイス検出処理（ステップＳ１）により、ＰＣＩバス拡張スロット＃３に接続されたＰＣＩ拡張ボード１８上に存在するＰＣＩデバイス＃５を検出した場合（ステップＳ２６−ＹＥＳ）、ＰＣＩ拡張スロット＃３が開放端ではないと判断する。このため、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤ５ｍに加えて、配線負荷容量ＣＬ３ｍも負荷容量合計値Ｃａｌｌに合算する（ステップＳ２７）。
さらに、ＰＣＩ信号グループ“ｍ”が“６”である場合（ステップＳ２８−ＹＥＳ）、ＰＣＩデバイス＃５のＩＤＳＥＬ端子にも接続されるため、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤ５９に加えて、配線負荷容量ＣＬ３９も負荷容量合計値Ｃａｌｌに合算する（ステップＳ２９）。
一方、ＰＣＩデバイス＃５が存在しない場合（ステップＳ２６−ＮＯ）、ＰＣＩ信号グループ“ｍ”が“６”でなはい場合（ステップＳ２８−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、負荷容量合計値算出処理を終了する。以上により、負荷容量合計値Ｃａｌｌの算出を完了する。なお、ｍ＝９（ＩＤＳＥＬ）の場合は出力を駆動する必要が無いため、Ｃａｌｌ＝０のままとする。
【００７５】
図８は、図１に示されたシステムＢＩＯＳ・ＲＯＭ１９内に格納された駆動能力設定テーブル４４を示す。
図８に示されるように、本実施例のコンピュータシステム１０の拡張バス（内部バス）において想定されうる負荷容量の最大値をＣｍａｘと称する。駆動能力設定テーブル４４には、最大値Ｃｍａｘに対する相対値と、駆動能力設定レジスタ２６の各ビット（ビット“２”〜“０”）に出力バッファ群２１の駆動能力を設定するための設定情報（設定値）とが複数対応付けられて格納されている。
【００７６】
本実施例では、駆動能力設定テーブル４４に格納される内容として、駆動能力設定テーブル４４には、相対値｛Ｃａｌｌ＝０｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“０”、“０”、“０”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛０＜Ｃａｌｌ≦［Ｃｍａｘ×（１／７）］｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“０”、“０”、“１”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛［Ｃｍａｘ×（１／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（２／７）］｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“０”、“１”、“０”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛［Ｃｍａｘ×（２／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（３／７）］｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“０”、“１”、“１”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛［Ｃｍａｘ×（３／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（４／７）］｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“１”、“０”、“０”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛［Ｃｍａｘ×（４／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（５／７）］｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“１”、“０”、“１”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛［Ｃｍａｘ×（５／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（６／７）］｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“１”、“１”、“０”が情報として格納されている。駆動能力設定テーブル４４には、相対値｛［Ｃｍａｘ×（６／７）］＜Ｃａｌｌ｝と、駆動能力設定レジスタ２６のビット“２”、“１”、“０”の設定値として“１”、“１”、“１”が情報として格納されている。
駆動能力設定テーブル４４に格納された複数の相対値と複数の設定情報（設定値）とは、システムＢＩＯＳ・ＲＯＭ１９（駆動能力設定テーブル４４）の変更によって随時修正可能である。
【００７７】
駆動能力設定処理（ステップＳ４）にて、システムソフトウエア（ＣＰＵ１５）は、駆動能力設定テーブル４４を参照して、複数の相対値のうち、ＰＣＩ信号グループ“ｍ”について算出した負荷容量合計値Ｃａｌｌと一致する相対値｛例えば、［Ｃｍａｘ×（４／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（５／７）］｝を選択し、複数の設定情報（設定値）のうち、相対値｛［Ｃｍａｘ×（４／７）］＜Ｃａｌｌ≦［Ｃｍａｘ×（５／７）］｝に対応付けられた設定情報（設定値）“１”、“０”、“１”を決定し、設定値“１”、“０”、“１”を駆動能力設定レジスタ２６のビット“２”、“１”、“０”に書き込む（設定する）。
本発明の第１実施形態に係るコンピュータシステムによれば、負荷容量合計値Ｃａｌｌと設定情報（調整すべき出力バッファの駆動能力）との関連付けとしては、上記の相対値と上記の設定情報（設定値）とを駆動能力設定テーブル４４に予めに格納しておくことで実現する。
【００７８】
本実施例では、出力バッファ駆動能力調整処理（Ｓ１〜Ｓ６）、出力バッファ駆動能力調整処理における負荷容量合計値算出処理（Ｓ１１〜Ｓ２９）を、ＰＣＩ信号グループ“１”〜“９”についてすべて行うことにより、図５に示したＰＣＩ信号についての駆動能力の調整は完了する。
なお、負荷容量合計値Ｃａｌｌに基づく駆動能力の導出に関し、本実施例では、図８に示される一例として最大値Ｃｍａｘに対する負荷容量合計値Ｃａｌｌの相対値に正比例して駆動能力を決定しているが、実際の適用に際してはその限りではなく、前述のシステムＢＩＯＳ  ＲＯＭ１９、コンフィギュレーションＲＯＭ２０内に格納される負荷容量（負荷情報）と同様に、コンピュータシステム１０の試作段階でのシステム評価においてその妥当性を検証し、検証結果に応じてシステムソフトウエアの当該処理部を適宜修正するプロセスを経た上で最終的な処理方法を決定することが望ましい。
【００７９】
本発明の第１実施形態に係るコンピュータシステムでは、上記の回路構成はその設計の時点で決定される。このため、設計者は、拡張バスである内部バス（ＰＣＩバス１３）に付加される負荷容量のうち、使用者の利用目的に応じてＰＣＩバス拡張スロット＃１に拡張ボード（１８）が接続されたときにＰＣＩバス拡張スロット＃１を介して内部バスに適宜付加される外部負荷容量を除く、マザーボード１１に常時敷設される内部バスに付加される内部負荷容量を事前に決定（把握）することができる。
本発明の第１実施形態に係るコンピュータシステムでは、上記の通りコンピュータシステムの拡張バスである内部バス（ＰＣＩバス１３）全体に付加される負荷容量の変動要因が、基本的にはＰＣＩバス拡張スロット＃１に接続される負荷の有無、及びその負荷容量により決定されることを利用して、上記の内部負荷情報（内部負荷容量）をシステムＢＩＯＳ  ＲＯＭ１９に格納し、上記の外部負荷情報（外部負荷容量）をコンフィギュレーションＲＯＭ２０に格納しておく。コンフィギュレーションＲＯＭ２０に格納された外部負荷情報（外部負荷容量）は、電源投入時に、外部デバイスであるＰＣＩデバイス＃３の負荷情報レジスタ２８に格納される。上記のバスデバイス検出処理（ステップＳ１）によりＰＣＩバス拡張スロット＃１に接続された外部デバイス（ＰＣＩデバイス＃３）を検出する。負荷容量合計値算出処理（ステップＳ３）にて、システムソフトウエア（ＣＰＵ１５）は、上記の内部負荷情報（内部負荷容量）をシステムＢＩＯＳ  ＲＯＭ１９から読み出し、上記の外部負荷情報（外部負荷容量）をＰＣＩデバイス＃３の負荷情報レジスタ２８から読み出し、内部負荷容量と外部負荷容量とを合算した負荷容量合計値Ｃａｌｌを算出する。駆動能力設定処理（ステップＳ４）にて、システムソフトウエア（ＣＰＵ１５）は、その負荷容量合計値Ｃａｌｌに基づいて、内部デバイス（ＰＣＩデバイス＃０〜＃２）の出力バッファ群２１の駆動能力と、外部デバイス（ＰＣＩデバイス＃３）の出力バッファ群２１の駆動能力とを決定（調整・設定）する。上記の処理を各バスラインについて逐次実行する。
【００８０】
このように、本発明の第１実施形態に係るコンピュータシステムによれば、内部負荷情報（内部負荷容量）がシステムＢＩＯＳ・ＲＯＭ１９に予めに格納され、外部負荷情報（外部負荷容量）がコンフィギュレーションＲＯＭ２０に予めに格納されているため、負荷容量（内部負荷容量、外部負荷容量）に対応した、出力バッファ群２１の駆動能力を正確且つ容易に調整することができる。このため、本発明の第１実施形態に係るコンピュータシステムによれば、前述した専用回路（各バスデバイスの出力バッファの駆動能力を調整するための情報を検出する専用回路）を必要としない。
本発明の第１実施形態に係るコンピュータシステムによれば、その専用回路を必要としないため、その専用回路を製造するための製造コスト、その専用回路に別途に電力を供給するための運転コスト）が低減する。
【００８１】
これにより、本発明の第１実施形態に係るコンピュータシステムによれば、前述した（従来技術１）の場合における課題である当該回路にかかる消費電力の増加、外部端子の追加を含めた回路コストの増加、デバイス内部の各種電気的パラメータの調整に伴うデバイス製造の困難化、デバイス設計または製造段階での駆動能力調整機構の確立の必要性（製造後の変更不可）、前述した（従来技術２）〜（従来技術４）の場合における課題である調整精度の低さ、及び前記従来技術に共通する課題である拡張バス上の全デバイスに対する駆動能力調整、特に設定動作時の競合問題の回避といった各種の課題をすべて解決することができる。
【００８２】
特に、本発明の第１実施形態に係るコンピュータシステムによれば、上記の内部負荷容量に含まれる配線分の負荷容量、上記の外部負荷容量に含まれる接触部分の負荷容量、配線分の負荷容量、等まで考慮することにより、出力バッファ群２１の駆動能力をより正確に調整することができる。
本発明の第１実施形態に係るコンピュータシステムによれば、内部負荷情報（内部負荷容量）がシステムＢＩＯＳ・ＲＯＭ１９に予めに格納され、外部負荷情報（外部負荷容量）がコンフィギュレーションＲＯＭ２０に予めに格納されているため、負荷容量合計値Ｃａｌｌと設定情報（調整すべき出力バッファの駆動能力）との関連付けを設計段階で保証することができる。
【００８３】
（第２実施形態）
本発明のコンピュータシステム１０における負荷容量（負荷容量合計値Ｃａｌｌ）の算出、同情報（負荷容量合計値Ｃａｌｌ）に基づいた駆動能力の調整の具体的な方法については、図５に示されたＰＣＩ信号グループを基に説明してきた。
本発明の第２実施形態に係るコンピュータシステム１０では、構成、動作、効果については、基本的には第１実施形態と同じであるが、便宜的に図５では取り上げていないＰＣＩ信号グループへの適用も可能である。但し適用の際には、その接続の特殊性に留意する必要がある信号も存在する。以下、その一例について説明する。
【００８４】
図９は、本発明のコンピュータシステム１０におけるＰＣＩバスの割り込み信号を示す。ＰＣＩバスの割り込み信号は、本発明を実施する際の、駆動能力調整処理の単位としてグループ分けされている。
図９に示されるように、ＰＣＩバスの割り込み信号は、ＩＮＴＡ＃〜ＩＮＴＤ＃の４本が割り込み信号グループ“１”〜“４”として存在するが、シングルファンクションデバイスの場合は割り込み出力は１本のみである。その端子名はＩＮＴＡ＃とされるのが通常であるが、そのバスへの接続はコンピュータシステム１０の設計仕様に応じてＩＮＴＡ＃〜ＩＮＴＤ＃のいずれのバスラインにも接続することが可能である。同様に、マルチファンクションデバイスの場合は、割り込みを必要とするファンクション数の割り込み出力が存在する。その端子名はＩＮＴＡ＃、ＩＮＴＢ＃の順に付与されるのが通常であるが、そのバスへの接続はＩＮＴＡ＃〜ＩＮＴＤ＃のいずれのバスラインにも接続可能である。なお、異なるデバイスの割り込み信号を同一のバスライン、例えばＩＮＴＡ＃に供給し、割り込みをシェアすることも可能である。
【００８５】
図９に示されるグループ分けにおいて、前述の内部デバイス＃ｉの入力負荷容量ＣＤｉｍ（０≦ｉ≦２、１≦ｍ≦４）は、割り込み信号が流れるバスラインに相当するグループｍに対応する要素以外、未接続を示す値０となる。
また、内部バスからＰＣＩバス拡張スロット１７への割り込み信号は、ＰＣＩバス拡張スロット１７におけるＩＮＴＡ＃〜ＩＮＴＤ＃端子に対して内部バスのＩＮＴＡ＃〜ＩＮＴＤ＃信号がそのままの順序で流れるとは限らない。図９のグループ分けにおける外部負荷容量ＣＤｊｍ（３≦ｊ≦５、１≦ｍ≦４）は、ＰＣＩ拡張ボード１８上におけるバスラインのグループ分けによって定義されているため、ＰＣＩ拡張ボード１８を接続した際に内部バスのＩＮＴＡ＃〜ＩＮＴＤ＃のバスラインに付加される負荷容量を正しく知るためには、マザーボード１１上におけるＰＣＩバス拡張スロット＃１〜＃３に対するＩＮＴＡ＃〜ＩＮＴＤ＃のバスラインの配線状況を把握する必要がある。
【００８６】
図１０は、図１に示されたシステムＢＩＯＳ・ＲＯＭ１９内に格納された割り込み信号グループテーブル４５を示す。割り込み信号グループテーブル４５は、ＰＣＩバス拡張スロット＃１、＃２、＃３と、割り込み信号の設定値とを、割り込み信号グループ“１”〜“４”毎に対応付ける。
図１０に示されるように、割り込み信号グループテーブル４５には、ＰＣＩバス拡張スロット＃１に対応付けられて、そのＩＮＴＡ＃、ＩＮＴＢ＃、ＩＮＴＣ＃、ＩＮＴＤ＃端子（割り込み信号グループ“１”、“２”、“３”、“４”）に流れる内部バス上の割り込み信号を示す設定値Ｉ１１、Ｉ１２、Ｉ１３、Ｉ１４が情報として格納されている。
割り込み信号グループテーブル４５には、ＰＣＩバス拡張スロット＃２に対応付けられて、そのＩＮＴＡ＃、ＩＮＴＢ＃、ＩＮＴＣ＃、ＩＮＴＤ＃端子（割り込み信号グループ“１”、“２”、“３”、“４”）に流れる内部バス上の割り込み信号を示す設定値Ｉ２１、Ｉ２２、Ｉ２３、Ｉ２４が情報として格納されている。
割り込み信号グループテーブル４５には、ＰＣＩバス拡張スロット＃３に対応付けられて、そのＩＮＴＡ＃、ＩＮＴＢ＃、ＩＮＴＣ＃、ＩＮＴＤ＃端子（割り込み信号グループ“１”、“２”、“３”、“４”）に流れる内部バス上の割り込み信号を示す設定値Ｉ３１、Ｉ３２、Ｉ３３、Ｉ３４が情報として格納されている。
【００８７】
図１１は、本発明のコンピュータシステム１０の動作として出力バッファ駆動能力調整処理における負荷容量合計値算出処理（ステップＳ３）を示すフローチャートである。先の図６に示されるフローチャートとの主な違いは、ＩＤＳＥＬ端子への接続に伴うＡＤ［１２：１６］ラインの負荷容量増加についての考慮が無いこと、及び図１０に示された接続情報を新たに考慮していることの２点である。
図１１に示される割り込み信号の設定値Ｉｋｘ（１≦ｋ≦３、１≦ｘ≦４）は、ＰＣＩ拡張スロット＃ｋの割り込み信号グループ“ｘ”に流される内部バスのＰＣＩ信号グループ“ｍ”を示す値である。割り込み信号グループ“１”（ＩＮＴＡ＃端子）であれば“１”、割り込み信号グループ“２”（ＩＮＴＢ＃端子）であれば“２”、割り込み信号グループ“３”（ＩＮＴＣ＃端子）であれば“３”、割り込み信号グループ“４”（ＩＮＴＤ＃端子）であれば“４”とする。割り込み信号の設定値Ｉｋｘは、マザーボード１１上のシステムＢＩＯＳ・ＲＯＭ１９内の割り込み信号グループテーブル４５からシステムソフトウエア（ＣＰＵ１５）によって読み出される。
【００８８】
まず、システムソフトウエア（ＣＰＵ１５）は、第１実施形態と同様にステップＳ１１、Ｓ１３を実行する。すなわち、システムソフトウエア（ＣＰＵ１５）は、負荷容量合計値Ｃａｌｌを０にし（ステップＳ１１）、入力負荷容量ＣＤ０ｍと、入力負荷容量ＣＤ１ｍと、入力負荷容量ＣＤ２ｍと、配線負荷容量ＣＬ０ｍとを負荷容量合計値Ｃａｌｌに合算する（ステップＳ１３）。
【００８９】
次に、システムソフトウエア（ＣＰＵ１５）は、ＰＣＩ拡張スロット＃ｋを表す設定値ｋに“１”（ｋ＝１）を設定し、ＰＣＩバス拡張スロット＃ｋに接続されるＰＣＩ拡張ボード１８上のＰＣＩデバイス＃ｊを表す設定値ｊに“３”（ｊ＝３）を設定する（ステップＳ３１）。
【００９０】
システムソフトウエア（ＣＰＵ１５）は、バスデバイス検出処理（ステップＳ１）により、ＰＣＩバス拡張スロット＃ｋに接続されたＰＣＩ拡張ボード１８上に存在するＰＣＩデバイス＃ｊを検出した場合（ステップＳ３２−ＹＥＳ）、割り込み信号グループ“ｘ”を表す設定値ｘに“１”（ｘ＝１）を設定する（ステップＳ３３）。
一方、ＰＣＩデバイス＃ｊが存在しない場合（ステップＳ３２−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、後述のステップＳ３９を実行する。
【００９１】
次いで、システムソフトウエア（ＣＰＵ１５）は、割り込み信号の設定値ＩｋｘがＰＣＩ信号グループ“ｍ”と一致するか否かを確認する（ステップＳ３４）。
割り込み信号の設定値ＩｋｘがＰＣＩ信号グループ“ｍ”と一致する場合（ステップＳ３４−ＹＥＳ）、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤｊｘの値が“０”であるか否かを確認する（ステップＳ３５）。
外部負荷容量ＣＤｊｘの値が“０”ではない場合（ステップＳ３５−ＹＥＳ）、システムソフトウエア（ＣＰＵ１５）は、外部負荷容量ＣＤｊｘに加えて、配線負荷容量ＣＬ１ｘも負荷容量合計値Ｃａｌｌに合算する（ステップＳ３６）。一方、割り込み信号の設定値ＩｋｘがＰＣＩ信号グループ“ｍ”と一致しない場合（ステップＳ３４−ＮＯ）、外部負荷容量ＣＤｊｘの値が“０”である場合（ステップＳ３５−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、後述のステップＳ３７を実行する。
【００９２】
次に、システムソフトウエア（ＣＰＵ１５）は、設定値ｘに“１”をインクリメントする（ステップＳ７）。
設定値ｘが“４”以下である場合（ステップＳ３８−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、割り込み信号グループ“ｘ”が“４”になるまでステップＳ３４〜Ｓ３８を実行する。
設定値ｘが“４”より大きい場合（ステップＳ３８−ＹＥＳ）、システムソフトウエア（ＣＰＵ１５）は、設定値ｋに“１”をインクリメントし、設定値ｊに“１”をインクリメントする（ステップＳ３９）。
設定値ｊが“５”以下である場合（ステップＳ４０−ＮＯ）、システムソフトウエア（ＣＰＵ１５）は、ＰＣＩバス拡張スロット＃２に接続されるＰＣＩ拡張ボード１８上のＰＣＩデバイス＃４（ｊ＝４）、ＰＣＩバス拡張スロット＃３に接続されるＰＣＩ拡張ボード１８上のＰＣＩデバイス＃５（ｊ＝５）についても、ステップＳ３２〜Ｓ３８を実行する。
設定値ｊが“５”より大きい場合（ステップＳ４０−ＹＥＳ）、システムソフトウエア（ＣＰＵ１５）は、負荷容量合計値算出処理を終了する。
【００９３】
上述のように算出した負荷容量合計値Ｃａｌｌにより、駆動能力設定処理（ステップＳ４）にて、システムソフトウエア（ＣＰＵ１５）は、駆動能力設定テーブル４４を参照して、ＰＣＩ信号グループ“ｍ”について算出した負荷容量合計値Ｃａｌｌにより設定情報（設定値）を決定し、その設定値を駆動能力設定レジスタ２６の各ビット（ビット“２”〜“０”）に書き込む（設定する）。この際、システムソフトウエア（ＣＰＵ１５）は、内部デバイスの出力バッファ群２１の駆動能力に関してはＰＣＩ信号グループ“ｍ”に対して設定するが、ＰＣＩ拡張ボード１８上の外部デバイスに関しては、Ｉｋｘ＝ｍ（上記のステップＳ３４−ＹＥＳ）であり、かつＣＤｊｘ≠０（上記のステップＳ３５−ＹＥＳ）である割り込み信号グループ“ｘ”に対して設定することに注意する必要がある。これにより、駆動能力の調整が完了する。
【００９４】
なお、本発明のコンピュータシステムでは、図５及び図９に示された以外にもＰＣＩ信号が存在するが、具体的な説明については割愛する。本発明のコンピュータシステムでは、図５及び図９に示された以外に存在するＰＣＩ信号に関しても第１、第２実施形態と基本的にその構成、動作を変更することなく、その応用によって実施可能である。また、本発明のコンピュータシステムは前述の第１、第２実施形態に限定されるものでなく、本発明の趣旨に基づいて種々の変形を行うことで、ＰＣＩバス以外の拡張バス等に対しても適用することが可能である。
【００９５】
【発明の効果】
本発明のコンピュータシステムによれば、上記の内部負荷情報（内部負荷容量）をシステムＢＩＯＳ  ＲＯＭ１９に格納し、上記の外部負荷情報（外部負荷容量）をコンフィギュレーションＲＯＭ２０に格納しておき、システムソフトウエア（ＣＰＵ１５）が、内部負荷容量と外部負荷容量とを合算した負荷容量合計値Ｃａｌｌを算出し、その負荷容量合計値Ｃａｌｌに基づいて、内部デバイス（ＰＣＩデバイス＃０〜＃２）の出力バッファ群２１の駆動能力と、外部デバイス（ＰＣＩデバイス＃３）の出力バッファ群２１の駆動能力とを決定（調整・設定）することにより、負荷容量（内部負荷容量、外部負荷容量）に対応した、出力バッファ群２１の駆動能力を正確且つ容易に調整することができる。
【００９６】
本発明のコンピュータシステムによれば、内部負荷情報（内部負荷容量）がシステムＢＩＯＳ・ＲＯＭ１９に予めに格納され、外部負荷情報（外部負荷容量）がコンフィギュレーションＲＯＭ２０に予めに格納されているため、前述した専用回路（各バスデバイスの出力バッファの駆動能力を調整するための情報を検出する専用回路）を必要とすることなく、出力バッファ群２１の駆動能力を正確且つ容易に調整することができる。
【００９７】
本発明のコンピュータシステムによれば、その専用回路を必要としないため、その専用回路を製造するための製造コスト、その専用回路に別途に電力を供給するための運転コスト）が低減する。
【００９８】
本発明のコンピュータシステムによれば、上記の内部負荷容量に含まれる配線分の負荷容量、上記の外部負荷容量に含まれる接触部分の負荷容量、配線分の負荷容量、等まで考慮することにより、出力バッファ群２１の駆動能力をより正確に調整することができる。
【００９９】
本発明のコンピュータシステムによれば、内部負荷情報（内部負荷容量）がシステムＢＩＯＳ・ＲＯＭ１９に予めに格納され、外部負荷情報（外部負荷容量）がコンフィギュレーションＲＯＭ２０に予めに格納されているため、負荷容量合計値Ｃａｌｌと設定情報（調整すべき出力バッファの駆動能力）との関連付けが設計段階で保証することができる。
【図面の簡単な説明】
【図１】図１は、本発明の第１実施形態に係るコンピュータシステムの構成の一部を示す概略図である。
【図２】図２は、図１に示されたＰＣＩデバイスの構成の一部を示す概略図である。
【図３】図３（ａ）は、図１に示されたシステムＢＩＯＳ・ＲＯＭ内に格納された内部デバイス入力負荷容量テーブルを示し、図３（ｂ）は、図１に示されたコンフィギュレーションＲＯＭ内に格納された外部負荷容量テーブルを示し、図３（ｃ）は、図１に示されたシステムＢＩＯＳ・ＲＯＭ内に格納された内部配線分負荷容量テーブルを示す。
【図４】図４は、本発明の第１実施形態に係るコンピュータシステムの動作として初期化時における出力バッファ駆動能力調整処理を示すフローチャートである。
【図５】図５は、本発明の第１実施形態に係るコンピュータシステムにおけるＰＣＩ信号を示す。
【図６】図６は、本発明の第１実施形態に係るコンピュータシステムの動作として出力バッファ駆動能力調整処理における負荷容量合計値算出処理を示すフローチャートである。
【図７】図７は、本発明の第１実施形態に係るコンピュータシステムの動作として出力バッファ駆動能力調整処理における負荷容量合計値算出処理を示すフローチャートである。
【図８】図８は、図１に示されたシステムＢＩＯＳ・ＲＯＭ内に格納された駆動能力設定テーブルを示す。
【図９】図９は、本発明の第２実施形態に係るコンピュータシステムにおけるＰＣＩバスの割り込み信号を示す。
【図１０】図１０は、図１に示されたシステムＢＩＯＳ・ＲＯＭ内に格納された割り込み信号テーブルを示す。
【図１１】図１１は、本発明の第２実施形態に係るコンピュータシステムの動作として出力バッファ駆動能力調整処理における負荷容量合計値算出処理を示すフローチャートである。
【図１２】図１２は、従来のコンピュータシステムの構成を示す概略図である。
【図１３】図１３は、図１２に示されたバスデバイスの構成を示す概略図である。
【符号の説明】
１０    コンピュータシステム
１１    マザーボード
１２    ＣＰＵバス
１３    ＰＣＩバス
１４    ローカルバス
１５    ＣＰＵ
１６    ＰＣＩデバイス
１７    ＰＣＩバス拡張スロット
１８    ＰＣＩ拡張ボード
１９    システムＢＩＯＳ・ＲＯＭ
２０    コンフィギュレーションＲＯＭ
２１    出力バッファ群
２２    第１出力バッファ
２３    第２出力バッファ
２４    第３出力バッファ
２５    ＰＣＩコンフィギュレーションレジスタ
２６    駆動能力設定レジスタ
２７    ＡＮＤゲート群
２７−１    第１ＡＮＤゲート
２７−２    第２ＡＮＤゲート
２７−３    第３ＡＮＤゲート
２８    負荷情報レジスタ
２９    ＲＯＭ制御部
３０    外部端子
３１    入力バッファ
４１    内部デバイス入力負荷容量テーブル
４２    外部負荷容量テーブル
４３    内部配線分負荷容量テーブル
４４    駆動能力設定テーブル
４５    割り込み信号グループテーブル
【図１】
2004334693.tif 000003
【図２】
2004334693.tif 000004
【図３】
2004334693.tif 000005
【図４】
2004334693.tif 000006
【図５】
2004334693.tif 000007
【図６】
2004334693.tif 000008
【図７】
2004334693.tif 000009
【図８】
2004334693.tif 000010
【図９】
2004334693.tif 000011
【図１０】
2004334693.tif 000012
【図１１】
2004334693.tif 000013
【図１２】
2004334693.tif 000014
【図１３】
2004334693.tif 000015