(57)【要約】【課題】ホットアッドにより追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートすることができるＰＣＩデバイスのホットプラグにおけるモード設定方法及びＰＣＩバスを有するシステムを提供することにある。【解決手段】サウスブリッジから直接ファームウェアにＰＣＩデバイスのホットアッドを報告することにより、ＯＳやオープンなホットプラグドライバーを修正することなく、ホットアッドにより追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートできる。【選択図】図１
2008225577.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣＩデバイスのホットプラグにおけるモード設定方法において、サウスブリッジからファームウェアに前記ＰＣＩデバイスのホットアッドを報告することを特徴とするＰＣＩデバイスのホットプラグにおけるモード設定方法。
【請求項２】
ホットアッドされたＰＣＩデバイスのベンダーＩＤやデバイスＩＤを自動で読み出すことを特徴とする請求項１に記載のＰＣＩデバイスのホットプラグにおけるモード設定方法。
【請求項３】
プロセッサからのコンフィグアクセス命令受信まで前記ＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせることを特徴とする請求項１または２記載のＰＣＩデバイスのホットプラグにおけるモード設定方法。
【請求項４】
プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライすることを特徴とする請求項１から４のいずれか１項記載のＰＣＩデバイスのホットプラグにおけるモード設定方法。
【請求項５】
ＰＣＩデバイスのホットプラグにおけるモード設定方法において、
ＰＣＩバスを持つシステムのサウスブリッジで前記ＰＣＩデバイスがホットアッドされたことを前記サウスブリッジがファームウェアへ報告すると共に、前記モード設定に必要なホットアッド対象ＰＣＩデバイスのベンダーＩＤ及びデバイスＩＤの情報を前記サウスブリッジが前記ＰＣＩデバイスから自動で読み出して前記ファームウェアに渡すことで、システムに対してホットアッドされたＰＣＩデバイスに対するプラットフォーム固有のサポート機能のモード設定を可能とすることを特徴とするモード設定方法。
【請求項６】
サウスブリッジからファームウェアにＰＣＩデバイスのホットアッドを報告するモード設定手段を有することを特徴とするＰＣＩバスを有するシステム。
【請求項７】
ホットアッドされたＰＣＩデバイスのベンダーＩＤやデバイスＩＤを自動で読み出す手段を有することを特徴とする請求項６記載のＰＣＩバスを有するシステム。
【請求項８】
プロセッサからのコンフィグアクセス命令受信まで前記ＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせる手段を有することを特徴とする請求項６または７記載のＰＣＩバスを有するシステム。
【請求項９】
プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライする手段を有することを特徴とする請求項６から８のいずれか１項記載のＰＣＩバスを有するシステム。
【請求項１０】
ＰＣＩバスと、ファームウェアと、ＰＣＩデバイスと、前記ＰＣＩデバイスがホットアッドされたことを前記ファームウェアへ報告すると共に、モード設定に必要なホットアッド対象ＰＣＩデバイスのベンダーＩＤ及びデバイスＩＤの情報を前記ＰＣＩデバイスから自動で読み出して前記ファームウェアに渡すサウスブリッジとを有することを特徴とするＰＣＩバスを有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣＩデバイスのホットプラグにおけるモード設定方法及びＰＣＩバスを有するシステムに関する。
【背景技術】
【０００２】
従来のＰＣＩバスを有するシステムについて説明する。
図７は、従来のＰＣＩバスを有するシステムのブロック図であり、図８は、従来のＰＣＩ制御回路のブロック図である。
従来のＰＣＩバスを有するシステムは、図７に示すようにコンフィグリード（Config Read）命令発行回路やホットアッド（Hot Add）制御回路は無く、プロセッサ１０１、ノースブリッジ１０２、ＰＣＩ制御回路１１０を有するサウスブリッジ１０４、ＰＣＩスロット１０５、及びファームウェア１０３で構成されていた。
【０００３】
また従来のＰＣＩ制御回路は、図８に示すようにコンフィグアクセスリトライ制御回路は無く、ＰＣＩバス制御回路２０１、及びモードレジスタ２０２で構成されていた（例えば、特許文献１〜４参照。）。
【特許文献１】特開２０００−２７６２５８号公報
【特許文献２】特開２００３−０４６５１１号公報
【特許文献３】特開２００６−１４６９２１号公報
【特許文献４】特開平１１−１７５４５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ＰＣＩデバイスのホットアッド はサウスブリッジ（Southbridge）からＯＳやホットプラグドライバ（Hot Plug Driver）にしか報告されず、ＯＳ（Operating System）やホットドライバの修正無しではファームウェア（Firmware）１０３に対してＰＣＩデバイスのホットアッドを知らせることは出来なかった。
【０００５】
以上の従来のシステムにおけるホットアッド方式においては、次のような課題がある。
第１の課題は、ＯＳやオープン（Open）のホットプラグドライバ（Hot Plug Driver）の修正依頼やホットプラグドライバの自作は難しいため、Boot時からシステムに組み込まれるＰＣＩデバイスに対してはプラットフォーム固有機能のサポートは可能であるが、ホットアッドにより動作中に追加されたＰＣＩデバイスへのプラットフォーム固有機能のサポートはできないということである。
【０００６】
第２の課題は、ホッドアッドされたＰＣＩデバイスに対してコンフィグアクセスが可能となるタイミングがハードウェア（Hardware）およびファームウェア（Firmware）には判断できないため、ホットアッドされたＰＣＩデバイスのベンダー（Vendor）ＩＤやデバイス（Device）ＩＤの読み出しができないということである。
【０００７】
第３の課題は、ハードウェアやファームウェアによるコンフィグ（Config）アクセスがプロセッサからのコンフィグアクセスと競合した場合に動作不可能となるＰＣＩデバイスがあり制御できないため、ハードウェアやファームウェアからコンフィグアクセスを割り込ませることができないということである。
【０００８】
このため、ホットアッドによりＰＣＩデバイスを追加可能なシステムにおいて、プラットフォーム固有機能の制御を行うファームウェアにＰＣＩデバイスがホットアッドされたことを報告できることと、ファームウェアが容易にホットアッドされたＰＣＩデバイスのベンダーＩＤとデバイスＩＤを認識できることにより、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してもプラットフォーム固有機能のサポートを可能とするＰＣＩデバイスのホットプラグにおけるモード設定方法及びＰＣＩバスを有するシステムが望まれる。
【０００９】
そこで、本発明の目的は、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートすることができるＰＣＩデバイスのホットプラグにおけるモード設定方法及びＰＣＩバスを有するシステムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１記載の発明は、ＰＣＩデバイスのホットプラグにおけるモード設定方法において、サウスブリッジからファームウェアに前記ＰＣＩデバイスのホットアッドを報告することを特徴とする。
【００１１】
請求項１記載の発明によれば、サウスブリッジから直接ファームウェアにＰＣＩデバイスのホットアッドを報告しているので、ＯＳやオープンなホットプラグドライバーを修正することなく、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートすることができる。
【００１２】
請求項２記載の発明は、請求項１に記載の発明において、ホットアッドされたＰＣＩデバイスのベンダーＩＤやデバイスＩＤを自動で読み出すことを特徴とする。
【００１３】
請求項２記載の発明によれば、サウスブリッジ内にホットアッドされたＰＣＩデバイスのベンダーＩＤやデバイス  ＩＤを自動で読み出すことにより、ファームウェアは直接ＰＣＩデバイスにアクセスすることなくサウスブリッジ内の情報を参照するだけでプラットフォーム固有の機能のモード設定値を決定することができる。
【００１４】
請求項３記載の発明は、請求項１または２記載の発明において、プロセッサからのコンフィグアクセス命令受信まで前記ＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせることを特徴とする。
【００１５】
請求項３記載の発明によれば、プロセッサからのコンフィグアクセス命令までＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせることにより、ＰＣＩデバイスに対してコンフィグアクセスが可能な状態と確信できてからコンフィグリード命令を発行できる。
【００１６】
請求項４記載の発明は、請求項１から４のいずれか１項記載の発明において、プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライすることを特徴とする。
【００１７】
請求項４記載の発明によれば、プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライすることにより、ホットアッドされたＰＣＩデバイスがコンフィグアクセス命令を１つしか処理できないレガシーなＰＣＩデバイスであっても対応できる。
【００１８】
請求項５記載の発明は、ＰＣＩデバイスのホットプラグにおけるモード設定方法において、ＰＣＩバスを持つシステムのサウスブリッジで前記ＰＣＩデバイスがホットアッドされたことを前記サウスブリッジがファームウェアへ報告すると共に、前記モード設定に必要なホットアッド対象ＰＣＩデバイスのベンダーＩＤ及びデバイスＩＤの情報を前記サウスブリッジが前記ＰＣＩデバイスから自動で読み出して前記ファームウェアに渡すことで、システムに対してホットアッドされたＰＣＩデバイスに対するプラットフォーム固有のサポート機能のモード設定を可能とすることを特徴とする。
【００１９】
請求項５記載の発明によれば、専用ホットプラグドライバーを作成することなく、システムに対してホットアッドされたＰＣＩデバイスに対するプラットフォーム固有のサポート機能のモード設定が可能となる。
【００２０】
請求項６記載の発明は、サウスブリッジからファームウェアにＰＣＩデバイスのホットアッドを報告するモード設定手段を有することを特徴とする。
【００２１】
請求項６記載の発明によれば、サウスブリッジから直接ファームウェアにＰＣＩデバイスのホットアッドを報告することにより、ＯＳやオープンなホットプラグドライバーを修正することなく、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートできる。
【００２２】
請求項７記載の発明は、請求項６記載の発明において、ホットアッドされたＰＣＩデバイスのベンダーＩＤやデバイスＩＤを自動で読み出す手段を有することを特徴とする。
【００２３】
請求項７記載の発明によれば、サウスブリッジ内にホットアッドされたＰＣＩデバイスのベンダーＰＣＩやデバイス  ＩＤを自動で読み出すことにより、ファームウェアは直接ＰＣＩデバイスにアクセスすることなくサウスブリッジ内の情報を参照するだけでプラットフォーム固有の機能のモード設定値を決定することができる。
【００２４】
請求項８記載の発明は、請求項６または７記載の発明において、プロセッサからのコンフィグアクセス命令受信まで前記ＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせる手段を有することを特徴とする。
【００２５】
請求項８記載の発明によれば、プロセッサからのコンフィグアクセス命令までＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせることにより、ＰＣＩデバイスに対してコンフィグアクセスが可能な状態と確信できてからコンフィグリード命令を発行できる。
【００２６】
請求項９記載の発明は、請求項６から８のいずれか１項記載の発明において、プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライする手段を有することを特徴とする。
【００２７】
請求項９記載の発明によれば、プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライすることにより、ホットアッドされたＰＣＩデバイスがコンフィグアクセス命令を１つしか処理できないレガシーなＰＣＩデバイスであっても対応できる。
【００２８】
請求項１０記載の発明は、ＰＣＩバスと、ファームウェアと、ＰＣＩデバイスと、前記ＰＣＩデバイスがホットアッドされたことを前記ファームウェアへ報告すると共に、モード設定に必要なホットアッド対象ＰＣＩデバイスのベンダーＩＤ及びデバイスＩＤの情報を前記ＰＣＩデバイスから自動で読み出して前記ファームウェアに渡すサウスブリッジとを有することを特徴とする。
【００２９】
請求項１０記載の発明によれば、サウスブリッジから直接ファームウェアにＰＣＩデバイスのホットアッドを報告することにより、ＯＳやオープンなホットプラグドライバーを修正することなく、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートできる。
【００３０】
ここで、システムのサウスブリッジ（以降ＳＢ）内に、ＰＣＩスロット毎にデバイスが挿入されたことを認識するための回路や、ＰＣＩデバイスのベンダーＩＤ（以降ＶＩＤ）／デバイスＩＤ（以降ＤＩＤ）を読み出すためのコンフィグリード命令を発行する機能および読み出されたＶＩＤ／ＤＩＤを格納するためのレジスタをそれぞれ持ち、またコンフィグリードが完了したことによるファームウェア（以降ＦＷ）への報告用の割り込み発行機能を有して、ＰＣＩスロットにホットアッドでＰＣＩデバイスが動作中に追加されると、ＳＢ内でＰＣＩデバイスがホットアッドされたことを認識して、プロセッサからホットアッドされたＰＣＩデバイスに対するコンフィグアクセス命令が発行されるのを待ち合わせる。
【００３１】
プロセッサからホットアッドされたＰＣＩデバイスにコンフィグアクセス命令が発行されると、ＳＢは対象ＰＣＩデバイスがコンフィグリード命令を発行しても良い状態まで設定が完了したと認識できるため、ＳＢからＰＣＩデバイスに対してＶＩＤ／ＤＩＤを読み出すためのコンフィグリード命令を生成して発行する。その場合、ＰＣＩデバイスによってはコンフィグアクセスを１つしか処理できない場合があるため、ＳＢからのコンフィグリード命令を処理中は、プロセッサから発行されたコンフィグアクセス命令はＰＣＩバスへ発行せずにプロセッサへリトライ要求を返却する。
【００３２】
そして、ＳＢからのコンフィグリード命令が完了した後にプロセッサから再発行されたコンフィグアクセス命令を受け付けると正常に処理する。ＳＢからのコンフィグリード命令によりＰＣＩデバイスから読み出されたＤａｔａをＳＢ内の各ＰＣＩスロットに対応するＶＩＤ／ＤＩＤ格納レジスタに取り込み、ＳＢからＦＷに対して割り込み要求を上げ、ＰＣＩデバイスがホットアッドされたことをＦＷに報告する。ＰＣＩデバイスのホットアッドが報告されたＦＷは、ＳＢ内に格納されているＶＩＤ／ＤＩＤを読み出し、プラットフォーム固有の各種サポート機能の実行可否や設定値を判断して、ＳＢが持つサポート機能のモードレジスタに設定を行う。
【発明の効果】
【００３３】
本発明によれば、サウスブリッジから直接ファームウェアにＰＣＩデバイスのホットアッドを報告することにより、ＯＳやオープンなホットプラグドライバーを修正することなく、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートできる。
【発明を実施するための最良の形態】
【００３４】
〔実施形態１〕
〔構成の説明〕
本発明のＰＣＩデバイスのホットプラグにおけるモード設定方式は、ＰＣＩ  バスを持つシステムのＳＢにおいて、ＰＣＩデバイスがホットアッドされたことをＳＢがＦＷへ報告すると共に、モード設定に必要なホットアッド対象ＰＣＩデバイスのＶＩＤ／ＤＩＤの情報をＳＢがＰＣＩデバイスから自動で読み出してＦＷに渡すことで、専用ホットプラグドライバーを作成することなく、システムに対してホットアッドされたＰＣＩデバイスに対するプラットフォーム固有のサポート機能のモード設定を可能としたことを特徴としている。
【００３５】
図１は、本発明に係るＰＣＩバスを有するシステムの一実施の形態を示すブロック図である。
図１に示すシステムは、プロセッサ１０１、ノースブリッジ（以降ＮＢ）１０２、ＳＢ１０４、ＰＣＩスロット１０５からなるシステムで構成され、プラットフォーム固有の制御をＦＷ１０３によって行われる。
【００３６】
ＳＢ１０４内には、プロセッサ１０１からの命令をＰＣＩスロット１０５上のＰＣＩデバイスへの発行の制御やこれとは逆にＰＣＩデバイスからの命令を制御するＰＣＩ制御回路１１０と、ＰＣＩデバイスが持つＶＩＤとＤＩＤを読み出すためのコンフィグリード命令を発行するためのコンフィグリード命令発行回路１１１と、ＰＣＩスロット１０５にＰＣＩデバイスがホットアッドされた時にコンフィグリード命令の発行指示やＦＷ１０３へホットアッドの割り込みの報告を行うホットアッド制御回路１１２を持つ。また、ＰＣＩスロット１０５からはＰＣＩバスとは別に、ＰＣＩスロット１０５上の電確信号１２０がホットアッド制御回路１１２に接続される。
【００３７】
図２は、図１に示したシステムに用いられるＰＣＩ制御回路１１０の詳細な構成図である。
図２において、ＰＣＩ制御回路１１０は、ＰＣＩスロット１０５上のＰＣＩデバイスに対して命令の発行および受信の制御を行うＰＣＩバス制御回路２０１と、ＰＣＩデバイスに対してプラットフォーム固有機能のサポートを設定するためのモードレジスタ２０２とからなる。
【００３８】
さらにＰＣＩバス制御回路２０１内には、コンフィグリード命令発行回路１１１からコンフィグリード命令の発行要求中はプロセッサ１０１からＰＣＩスロット１０５上のＰＣＩデバイスに発行されたコンフィグアクセス命令をＰＣＩバスには発行せず、リトライとしてプロセッサ１０１に返却を制御するコンフィグアクセスリトライ制御回路２０３を持つ。
【００３９】
図３は、図１に示したシステムに用いられるホットアッド制御回路１１２の詳細な構成図である。
図３において、ホットアッド制御回路１１２は、ホットアッド時のシーケンスを管理するフラグレジスタやＶＩＤ／ＤＩＤを保持するためのレジスタを管理するフラグ制御回路３０１と、ＦＷ１０３にホットアッドを報告するために割り込みを行う割り込み制御回路３０２と、ＰＣＩスロット１０５からの電確信号１２０によりＰＣＩスロット１０５上にＰＣＩデバイスがホットアッドされたことを検出するホットアッド検出回路３０３とからなる。
【００４０】
また、フラグ制御回路３０１内には、ＰＣＩスロット１０５にＰＣＩデバイスがホットアッドされた場合にセットされるアッドフラグ３１０と、ＰＣＩデバイスからＶＩＤ／ＤＩＤの読み出しが完了した場合にセットされるＣＭＰフラグ３１１と、ＰＣＩデバイスから読み出されたＶＩＤ／ＤＩＤをそれぞれ格納するためのＶＩＤレジスタ３１２と、ＤＩＤレジスタ３１３とを持つ。
【００４１】
以上詳細に実施例の構成を述べたが、図１のプロセッサ１０１、ＮＢ１０２、およびＳＢ１０４内の他機能については、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００４２】
なお、上記実施例では、図１のＳＢ１０４に接続されるＰＣＩスロット１０５の数を１つとして説明しているが、それ以上のスロット数の構成であってもよい。その場合は、図１のＳＢ１０４が持つホットアッド制御回路１１２とＰＣＩ制御回路１１０内のモードレジスタ２０２をスロット数分持つことで構成可能となる。
【００４３】
〔動作の説明〕
図１に示したシステム、図２、図３のサウスブリッジ内の各制御回路図の動作を説明する。
システムが動作中にＳＢ１０４に接続されたＰＣＩスロット１０５に対してＰＣＩデバイスがホットアッドされると、電確信号１２０によりＳＢ１０４に報告される。
電確信号１２０によりホットアッドが報告されたＳＢ１０４は、ホットアッド制御回路１１２内のホットアッド検出回路３０３によりＰＣＩデバイスのホットアッドを認識する。
ホットアッドを検出すると、ホットアッド検出回路３０３からフラグ制御回路３０１に報告され、内部に持つ初期値が”０”であるアッドフラグ３１０とＣＭＰフラグ３１１のうち、アッドフラグ３１０のみ”１”にセットする。
【００４４】
コンフィグリード命令発行回路１１１は、フラグ制御回路３０１からアッドフラグ３１０が”１”、ＣＭＰフラグ３１１が”０”の状態を認識すると、ＰＣＩスロット１０５上のＰＣＩデバイスのＶＩＤとＤＩＤとを読み出すためのコンフィグリード命令を用意して、ＰＣＩ制御回路１１０内のＰＣＩバス制御回路２０１に対してコンフィグリード命令の発行要求を行う。
【００４５】
コンフィグリード命令の発行要求を受け取ったＰＣＩバス制御回路２０１は、プロセッサ１０１からＰＣＩスロット１０５上のＰＣＩデバイスに対してコンフィグアクセス命令が発行されるのを待ち合わせる。
【００４６】
ＰＣＩスロット１０５にＰＣＩデバイスがホットアッドされると、ＰＣＩのホットプラグコントローラからプロセッサ１０１に割り込みを行うことで、ＯＳやホットプラグドライバーに対してＰＣＩスロット１０５にＰＣＩデバイスがホットアッドされたことが通知される。
ＰＣＩスロット１０５にＰＣＩデバイスがホットアッドされたことが通知されるとＯＳおよびホットプラグドライバーはＰＣＩスロット１０５上のＰＣＩデバイスをシステムに組み込むために、ＮＢ１０２やＳＢ１０４およびＰＣＩスロット１０５上のＰＣＩデバイスに設定を行う。
ＯＳやホットプラグドライバーの設定によりＰＣＩスロット１０５上のＰＣＩデバイスにコンフィグアクセスが発行可能な状態になると、プロセッサ１０１からＰＣＩスロット１０５上のＰＣＩデバイスにコンフィグアクセスが発行される。
経路上であるＳＢ１０４内のＰＣＩバス制御回路２０１は、プロセッサ１０１からＰＣＩスロット１０５上のＰＣＩデバイスへのコンフィグアクセスを受信することでＰＣＩスロット１０５上のＰＣＩデバイスへのコンフィグアクセスが発行可能な状態になったことを認識できる。
【００４７】
よって、ＰＣＩバス制御回路２０１はコンフィグリード命令発行回路１１１よりコンフィグリード命令の発行要求があるため、コンフィグアクセスリトライ制御回路２０３により、プロセッサ１０１からのコンフィグアクセスはＰＣＩバスに発行しないで、プロセッサ１０１に再発行指示としてリトライレスポンスを返却して、コンフィグリード命令発行回路１１１からのＰＣＩスロット１０５上のＰＣＩデバイスのＶＩＤ／ＤＩＤを読み出すためのコンフィグリード命令をＰＣＩバスへ発行する。
コンフィグリード命令発行回路１１１からＰＣＩスロット１０５上のＰＣＩデバイスへのコンフィグリード命令を発行中に、再度プロセッサ１０１からリトライが返却されたコンフィグアクセスが再発行されてくるが、コンフィグリード命令発行回路１１１からのコンフィグリード命令を処理中であるため、コンフィグアクセスリトライ制御回路２０３により再度リトライレスポンスがプロセッサ１０１に返却され、コンフィグリード命令発行回路１１１からのコンフィグリード命令の処理が完了するまで継続される。
【００４８】
コンフィグリード命令発行回路１１１からのコンフィグリード命令に対して、ＰＣＩスロット１０５上のＰＣＩデバイスからリプライデータが返却されると、ＰＣＩバス制御回路２０１はコンフィグリード命令発行回路１１１にリプライデータを出力して、コンフィグアクセスリトライ制御回路２０３に対してプロセッサ１０１からＰＣＩスロット１０５上のＰＣＩデバイスへのコンフィグアクセスのリトライ処理を停止させる。その後に受け付けたプロセッサ１０１からＰＣＩスロット１０５上のＰＣＩデバイスへのコンフィグアクセスは、正常にPCIバスへ出力され、ＰＣＩスロット１０５上のＰＣＩデバイスに発行される。
【００４９】
コンフィグリード命令発行回路１１１は、そのままリプライデータをホットアッド制御回路１１２にフォワードして、リプライデータを受け取ったホットアッド制御回路１１２は、フラグ制御回路３０１に持つＣＭＰフラグを”１”にセットすると共に、ＰＣＩスロット１０５上のＰＣＩデバイスから読み出されたＶＩＤ／ＤＩＤの情報をそれぞれＶＩＤレジスタ３１２とＤＩＤレジスタ３１３に格納する。
【００５０】
ホットアッド制御回路１１２内の割り込み制御回路３０２は、フラグ制御回路３０１からアッドフラグ３１０が”１”、ＣＭＰフラグ３１１が”１”の状態を認識すると、ＦＷ１０３に対して、ＰＣＩスロット１０５にＰＣＩデバイスがホットアッドされたことを報告するための割り込みを行う。
【００５１】
ＦＷ１０３は、ＰＣＩスロット１０５へのＰＣＩデバイスのホットアッドが報告されると、ＳＢ１０４のホットアッド制御回路が持つ各フラグを読み出して、アッドフラグ３１０からＰＣＩスロットの位置、ＶＩＤレジスタ３１２やＤＩＤレジスタ３１３からＰＣＩスロット１０５にホットアッドされたＰＣＩデバイスの種類を認識する。ＦＷ１０３は認識したＰＣＩデバイスの種類により、プラットフォーム固有機能のサポートの可否や、サポート内容を決定して、ＳＢ１０３のＰＣＩ  制御回路１１０内に持つモードレジスタ２０２に対してサポート機能のモードを設定する。モードの設定後は、ＰＣＩスロット１０５にホットアッドされたＰＣＩデバイスに対してプラットフォーム固有機能のサポートが可能となる。
【００５２】
〔実施形態２〕
〔構成の説明〕
図４は、本発明に係るＰＣＩバスを有するシステムの他の実施の形態を示すブロック図である。
図４において、プロセッサ４０１、ＮＢ４０２、ＳＢ４０４、ＰＣＩスロット４０５からなるシステムで構成され、プラットフォーム固有の制御をＦＷ４０３によって行われる。
ＳＢ４０４内には、プロセッサ４０１からの命令をＰＣＩスロット４０５上のＰＣＩデバイスへの発行の制御やこれとは逆にＰＣＩデバイスからの命令を制御するＰＣＩ制御回路４１０と、ＦＷ４０３からの指示によりＰＣＩデバイスに対してコンフィグリード命令を発行するためのコンフィグリード命令発行回路４１１と、ＰＣＩスロット４０５にＰＣＩデバイスがホットアッドされた時にコンフィグリード命令の発行指示やＦＷ４０３へホットアッドの割り込みの報告を行うホットアッド制御回路４１２を持つ。また、ＰＣＩスロット４０５からはＰＣＩバスとは別に、ＰＣＩスロット４０５上の電確信号４２０がホットアッド制御回路４１２に接続される。
【００５３】
図５は、図４に示したシステムに用いられるＰＣＩ制御回路４１０の詳細な構成図である。
図５に示したＰＣＩ制御回路については基本的に図２に示したＰＣＩ制御回路と変わらない。図５において、ＰＣＩ制御回路４１０は、ＰＣＩスロット４０５上のＰＣＩデバイスに対して命令の発行および受信の制御を行うＰＣＩバス制御回路５０１と、ＰＣＩデバイスに対してプラットフォーム固有機能のサポートを設定するためのモードレジスタ５０２とからなる。
【００５４】
さらにＰＣＩバス制御回路５０１内には、コンフィグリード命令発行回路４１１からコンフィグリード命令の発行要求中はプロセッサ４０１からＰＣＩスロット４０５上のＰＣＩデバイスに発行されたコンフィグアクセス命令をＰＣＩバスには発行せず、リトライとしてプロセッサ４０１に返却を制御するコンフィグアクセスリトライ制御回路５０３を持つ。
【００５５】
図６は、図４に示したシステムに用いられるホットアッド制御回路４１２の詳細な構成図である。
図６において、ホットアッド制御回路４１２は、ＦＷ４０３にホットアッドを報告するために割り込みを行う割り込み制御回路６０１と、ＰＣＩスロット４０５からの電確信号４２０によりＰＣＩスロット４０５上にＰＣＩデバイスがホットアッドされたことを検出するホットアッド検出回路６０２からなる。
【００５６】
以上詳細に実施形態の構成を述べたが、図４のプロセッサ４０１、ＮＢ４０２、およびＳＢ４０４内の他機能については、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００５７】
なお、上記実施形態では、図１のＳＢ４０４に接続されるＰＣＩスロット４０５の数を１つとして説明しているが、本発明はこれに限定されるものではなく、それ以上のスロット数の構成であってもよい。その場合は、図１のＳＢ４０４が持つホットアッド制御回路４１２とＰＣＩ制御回路４１０内のモードレジスタ５０２をスロット数分持つことで構成可能となる。
【００５８】
〔動作の説明〕
図４のシステム構成図および図５、図６のサウスブリッジ内の各制御回路図の動作を説明する。
システムが動作中にＳＢ４０４に接続されたＰＣＩスロット４０５に対してＰＣＩデバイスがホットアッドされると、電確信号４２０によりＳＢ４０４に報告される。
【００５９】
電確信号４２０によりホットアッドが報告されたＳＢ４０４は、ホットアッド制御回路４１２内のホットアッド検出回路６０２によりＰＣＩスロット４０５へのＰＣＩデバイスのホットアッドを認識する。
ホットアッドを検出すると、ホットアッド検出回路６０２から割り込み制御回路６０１に報告され、ＦＷ４０３に対してＰＣＩスロット４０５にＰＣＩデバイスがホットアッドされたことを報告するための割り込みを行う。
【００６０】
ＰＣＩスロット４０５にＰＣＩデバイスのホットアッドを認識したＦＷ４０３は、ＳＢ４０４内のコンフィグリード命令発行回路４１１に対して、ＰＣＩスロット４０５上のＰＣＩデバイスのＶＩＤとＤＩＤとを読み出すためのコンフィグリード命令を指示して、コンフィグリード命令発行回路４１１はＰＣＩ制御回路４１０内のＰＣＩバス制御回路５０１に対してコンフィグリード命令の発行要求を行う。
【００６１】
コンフィグリード命令の発行要求を受け取ったＰＣＩバス制御回路５０１は、プロセッサ４０１からＰＣＩスロット４０５上のＰＣＩデバイスに対してコンフィグアクセス命令が発行されるのを待ち合わせる。ＰＣＩスロット４０５にＰＣＩデバイスがホットアッドされると、ＰＣＩのホットプラグコントローラからプロセッサ４０１に割り込みを行うことで、ＯＳやホットプラグドライバーに対してＰＣＩスロット４０５にＰＣＩデバイスがホットアッドされたことが通知される。
【００６２】
ホットアッドが通知されるとＯＳおよびホットプラグドライバーはＰＣＩスロット４０５上のＰＣＩデバイスをシステムに組み込むために、ＮＢ４０２やＳＢ４０４およびＰＣＩスロット４０５上のＰＣＩデバイスに設定を行う。
ＯＳやホットプラグドライバーの設定によりＰＣＩスロット４０５上のＰＣＩデバイスにコンフィグアクセスが発行可能な状態になると、プロセッサ４０１からＰＣＩスロット４０５上のＰＣＩデバイスにコンフィグアクセスが発行される。経路上であるＳＢ４０４内のＰＣＩバス制御回路５０１は、プロセッサ４０１からＰＣＩスロット４０５上のＰＣＩデバイスへのコンフィグアクセスを受信することでＰＣＩスロット４０５上のＰＣＩデバイスへのコンフィグアクセスが発行可能な状態になったことを認識できる。
【００６３】
よって、ＰＣＩバス制御回路５０１はコンフィグリード命令発行回路４１１よりコンフィグリード命令の発行要求があるため、コンフィグアクセスリトライ制御回路５０３により、プロセッサ４０１からのコンフィグアクセスはＰＣＩバスに発行しないで、プロセッサ４０１に再発行指示としてリトライレスポンスを返却して、コンフィグリード命令発行回路４１１からのＰＣＩスロット４０５上のＰＣＩデバイス  のＶＩＤ／ＤＩＤを読み出すためのコンフィグリード命令をＰＣＩバスへ発行する。
【００６４】
コンフィグリード命令発行回路４１１からＰＣＩスロット４０５上のＰＣＩデバイスへのコンフィグリード命令を発行中に、再度プロセッサ４０１からリトライが返却されたコンフィグアクセスが再発行されてくるが、コンフィグリード命令発行回路４１１からのコンフィグリード命令を処理中であるため、コンフィグアクセスリトライ制御回路５０３により再度リトライレスポンスがプロセッサ４０１に返却され、コンフィグリード命令発行回路４１１からのコンフィグリード命令の処理が完了するまで継続される。
【００６５】
コンフィグリード命令発行回路４１１からのコンフィグリード命令に対して、ＰＣＩスロット４０５上のＰＣＩデバイスからリプライデータが返却されると、ＰＣＩバス制御回路５０１はコンフィグリード命令発行回路４１１にリプライデータを出力して、コンフィグアクセスリトライ制御回路５０３に対してプロセッサ４０１からＰＣＩスロット４０５上のＰＣＩデバイスへのコンフィグアクセスのリトライ処理を停止させる。その後に受け付けたプロセッサ４０１からＰＣＩスロット４０５上のＰＣＩデバイスへのコンフィグアクセスは、正常にＰＣＩバスへ出力されＰＣＩスロット４０５上のＰＣＩデバイスに発行される。コンフィグリード命令発行回路４１１は、そのままリプライデータを、コンフィグリード命令を発行指示したＦＷ４０３にフォワードする。
【００６６】
ＦＷ４０３は、リプライデータ内のベンダーＩＤやデバイス  ＩＤの情報によりホットアッドされたＰＣＩデバイスの種類を認識する。ＦＷ４０３は認識したＰＣＩデバイスの種類により、プラットフォーム固有機能のサポートの可否や、サポート内容を決定して、ＳＢ４０３のＰＣＩ  制御回路４１０内に持つモードレジスタ５０２に対してサポート機能のモードを設定する。モードの設定後は、ＰＣＩスロット４０５にホットアッドされたＰＣＩデバイスに対してプラットフォーム固有機能のサポートが可能となる。
【００６７】
〔効果の説明〕
以上説明したように、本発明においては、以下に記載するような効果を奏する。
第１の効果は、サウスブリッジから直接ファームウェアにＰＣＩデバイスのホットアッドを報告することにより、ＯＳやオープンなホットプラグドライバーを修正することなく、ホットアッドにより動作中に追加されたＰＣＩデバイスに対してプラットフォーム固有の機能をサポートできる。
【００６８】
第２の効果は、サウスブリッジ内にホットアッドされたＰＣＩデバイスのベンダーＩＤやデバイスＩＤを自動で読み出すことにより、ファームウェアは直接ＰＣＩデバイスにアクセスすることなくサウスブリッジ内の情報を参照するだけでプラットフォーム固有の機能のモード設定値を決定することができる。
【００６９】
第３の効果は、プロセッサからのコンフィグアクセス命令までＰＣＩデバイスへのコンフィグリード命令発行を待ち合わせることにより、ＰＣＩデバイスに対してコンフィグアクセスが可能な状態と確信できてからコンフィグリード命令が発行できる。
【００７０】
第４の効果は、プロセッサからのコンフィグアクセス命令をサウスブリッジからのコンフィグリード命令が完了するまでリトライすることにより、ホットアッドされたＰＣＩデバイスがコンフィグアクセス命令を１つしか処理できないレガシーなＰＣＩデバイスであっても対応できる。
【００７１】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明に係るＰＣＩバスを有するシステムの一実施の形態を示すブロック図である。
【図２】図１に示したシステムに用いられるPCI制御回路１１０の詳細な構成図である。
【図３】図１に示したシステムに用いられるホットアッド制御回路１１２の詳細な構成図である。
【図４】本発明に係るＰＣＩバスを有するシステムの他の実施の形態を示すブロック図である。
【図５】図４に示したシステムに用いられるＰＣＩ制御回路４１０の詳細な構成図である。
【図６】図４に示したシステムに用いられるホットアッド制御回路４１２の詳細な構成図である。
【図７】従来のＰＣＩバスを有するシステムのブロック図である。
【図８】従来のＰＣＩ制御回路のブロック図である。
【符号の説明】
【００７３】
１０１    プロセッサ
１０２    ノースブリッジ（ＮＢ）
１０３    ファームウェア（ＦＷ）
１０４    サウスブリッジ（ＳＢ）
１０５    ＰＣＩスロット
１１０    ＰＣＩ制御回路
１１１    コンフィグリード命令発行回路
１１２    ホットアッド制御回路
１２０    電確信号
【図１】
2008225577.tif 000003
【図２】
2008225577.tif 000004
【図３】
2008225577.tif 000005
【図４】
2008225577.tif 000006
【図５】
2008225577.tif 000007
【図６】
2008225577.tif 000008
【図７】
2008225577.tif 000009
【図８】
2008225577.tif 000010