(57)【特許請求の範囲】
【請求項１】
非ベクトルシステム管理割込入力を備えるマイクロプロセッサと、
前記マイクロプロセッサに結合されるイネーブルレジスタとを含み、前記イネーブルレジスタは前記マイクロプロセッサによって書込まれるイネーブルビットをストアするように構成されており、
前記イネーブルレジスタに結合されるフラグレジスタをさらに含み、前記フラグレジスタの予め定められたビットは、前記イネーブルレジスタへの前記イネーブルビットの書込に応答してセットされ、前記フラグレジスタの前記予め定められたビットがセットされると前記マイクロプロセッサの前記システム管理割込入力でシステム管理割込信号がアサートされ、
前記マイクロプロセッサに結合される理由レジスタをさらに含み、前記理由レジスタは前記マイクロプロセッサによって書込まれる理由値をストアするように構成されており、前記理由値はその後のシステム管理割込がアサートされている理由を表わし、前記システム管理割込信号のアサートにより、予め定められた位置における割込サービスルーチンが呼出され、前記割込サービスルーチンは前記理由レジスタ内の前記理由値を読取り、前記理由値に依存して特定の機能を行なう、コンピュータシステム。
【請求項２】
前記イネーブルレジスタと前記理由レジスタとに結合され、前記マイクロプロセッサによって発生されたアドレス信号をデコードするためのデコード論理ユニットをさらに含む、請求項１に記載のコンピュータシステム。
【請求項３】
前記デコード論理ユニットは、前記マイクロプロセッサによって実行されたＩ／Ｏ書込サイクルに応答して前記理由レジスタにラッチ信号を与えるように構成されている、請求項２に記載のコンピュータシステム。
【請求項４】
前記フラグレジスタは、他のＳＭＩ源からのＳＭＩリクエストを設定するための複数の付加的なビットをさらに含む、請求項１に記載のコンピュータシステム。
【請求項５】
前記フラグレジスタに結合される周期的システム管理割込源をさらに含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記周期的システム管理割込源はプログラマブルであり、予め定められた周期の速度でＳＭＩリクエスト信号をアサートする、請求項５に記載のコンピュータシステム。
【請求項７】
非ベクトルシステム管理割込入力を備えるマイクロプロセッサを含むコンピュータシステムにおいてシステム管理割込を制御する方法であって、
前記マイクロプロセッサによって書込まれた理由値を理由レジスタ内にストアするステップを備え、前記理由値はシステム管理割込がアサートされている理由を示しており、前記方法は、さらに、
前記マイクロプロセッサによって書込まれたイネーブルビットをイネーブルレジスタ内にストアするステップと、
前記イネーブルレジスタ内の前記イネーブルビットの書込に応答してフラグレジスタの所定ビットをセットするステップと、
前記フラグレジスタの前記所定ビットがセットされたとき、前記マイクロプロセッサの前記システム管理割込入力においてシステム管理割込信号をアサートするステップと、
前記システム管理割込信号のアサートに応答して所定位置での割込サービスルーチンを呼出すステップとを備え、前記割込サービスルーチンは、前記理由レジスタ内で前記理由値を読取り、前記理由値に依存して特定の機能を行なう、方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
本発明はコンピュータシステムに関し、より特定的には、コンピュータシステム内に用いられるシステム管理割込源に関する。
【０００２】
【関連技術の説明】
割込により駆動されるコンピュータシステムにより、ハードウェア信号がソフトウェアにその実行経路を変えさせることができるようにするメカニズムが得られる。割込を処理するためにマイクロプロセッサが最初に行なうのは、プログラムカウンタ（通常、スタック上の後入れ先出しの態様で動作するマイクロプロセッサのスタックポインタによって指されるメモリの領域）をセーブすることである。これにより、ソフトウェアは、スタックからのセーブされた値をマイクロプロセッサのプログラムカウンタにロードすることによって、割込まれた時点の通常のプログラムフローに戻ることが可能となる。マイクロプロセッサの中には、プログラムカウンタに加えて他のレジスタ（累算器またはインデックスポインタ等）を自動的にセーブするものもある。マイクロプロセッサが割込サービスルーチンにジャンプすると、実際の割込処理が始まる。割込サービスルーチンは、割込をサービスするソフトウェアコードのサブセットである。
【０００３】
マイクロプロセッサハードウェアが種々の割込源を区別できなければ、割込はベクトル化されていないといわれる。ベクトル化されていない割込に関しては、割込サービスルーチンは、どの装置が割込を発生したかを判断するために、可能性のある割込源の各々をテスト（ポーリング）しなければならない。より高速な機構は、割込装置が割込処理の始めの割込肯定応答サイクルの間にデータバスにＩＤコードを駆動することによって割込装置自身を識別できるようにするベクトル化された割込を行なう。その後、マイクロプロセッサは示された割込サービスルーチンを実行する。
【０００４】
特に一般的なモデル８０３８６および８０４８６マイクロプロセッサ等のマイクロプロセッサは、割込信号を受取るための入力端子（ＩＮＴ）を含む。複数の割込装置を含むコンピュータシステムはしばしば、ソフトウェアによって種々の割込源に優先順位をつけたりそれをマスクしたりすることができるようにするプログラマブル割込コントローラを用いる。例示的な割込源には、キーボード、プリンタおよびリアルタイムクロックがある。
【０００５】
ほとんどのマイクロプロセッサはまた、ソフトウェアによって不能化することができないマスク不能割込（ＮＭＩ）を用いる。この割込は通常現在の命令実行が終了すると処理される。この割込は、典型的にはアボート信号または電力異常の検出等の比較的優先順位の高いエラー割込のために用いられる。
【０００６】
さらに他のタイプの割込は、システム管理割込（ＳＭＩ）である。システム管理割込は典型的には、マスク不能割込および標準の割込よりも高い優先順位で扱われる。システム管理割込は、たとえば電力管理等の種々のシステム管理機能を起動および／または維持するために用いられる。
【０００７】
典型的なコンピュータシステムに関する１つの問題は、ＳＭＩ信号の発生に関連するレイテンシィである。たとえば、典型的なコンピュータシステム内の電力管理ユニットではソフトウェアによるＳＭＩのスケジューリングが可能であるが、ＳＭＩの応答は即時ではなく、典型的には数マイクロ秒またはミリ秒のレイテンシィさえある。さらに、ＳＭＩを開始したソフトウェアは通常、ＳＭＩサービスルーチンから独立して扱われる。したがって、ＳＭＩを開始した理由はＳＭＩサービスルーチンには利用できず、またはＳＭＩを開始した理由を判断するためにいくぶん複雑なソフトウェア技術を用いなければならない。その結果、システムソフトウェアは制限され、コンピュータシステム全体の性能が悪化してしまう。
【０００８】
【発明の概要】
本発明に従った、関連する理由レジスタを備える即時システム管理割込源によって、上述の問題の大部分は解決される。一実施例では、即時ＳＭＩの発生が望まれる場合に、ＳＭＩイネーブルビットを受取るためのソフトウェアにより書込可能なイネーブルレジスタを含む電力管理ユニットが設けられる。イネーブルビットがセットされると、ＳＭＩフラグレジスタはＳＭＩ信号をアサートさせる。電力管理ユニットは、ソフトウェアのコマンドにより書込可能な理由レジスタをさらに含む。イネーブルビットのセットの前に、理由レジスタには、対象のＳＭＩがリクエストされている理由を表わす「理由値」が書込まれる。即時システム管理割込源は、開始ソフトウェアが、それがＳＭＩがリクエストしている理由を示すことができるようにし、関連するＳＭＩが最小限のレイテンシィでアサートされるようにする。即時システム管理割込源はさらに、システム管理割込サービスルーチンが、即時ＳＭＩがリクエストされている理由をすぐに判断できるようにし、それによって、単純でより効率のよいＳＭＩサービスルーチンが可能となり、さらに、プログラミングの柔軟性が向上する。その結果、コンピュータシステム全体の性能を向上することができる。
【０００９】
大まかにいえば、本発明は、システム管理割込入力を有するマイクロプロセッサと、マイクロプロセッサに結合されるイネーブルレジスタとを含むコンピュータシステムを企図する。イネーブルレジスタは、マイクロプロセッサによって書込まれるイネーブルビットをストアすることができる。フラグレジスタの予め定められたビットはイネーブルレジスタへのイネーブルビットの書込に応答してセットされ、フラグレジスタの予め定められたビットがセットされるとマイクロプロセッサのシステム管理割込入力においてシステム管理割込信号がアサートされる。マイクロプロセッサには理由レジスタがさらに結合され、理由値は理由レジスタに書込まれることが可能であり、理由値はシステム管理割込信号がアサートされている理由を表わす。
【００１０】
本発明はさらに、システム管理割込を発生しかつ処理するための方法を企図し、この方法は、対象のシステム管理割込を表わす理由値を理由レジスタ内にストアするステップと、イネーブルビットをイネーブルレジスタ内にロードするステップと、イネーブルビットに応答してフラグレジスタのビットをセットするステップとを含む。この方法は、フラグレジスタのビットのセットに応答してシステム管理割込をアサートするステップと、システム管理割込をマイクロプロセッサに与えるステップと、理由レジスタ内の理由値を読取るステップとをさらに含む。この方法は最後に、理由値に依存してシステム管理割込をサービスするステップを含む。
【００１１】
本発明は最後に、コンピュータシステム内でシステム管理割込を発生しかつ処理するための方法を企図し、この方法は、その後のシステム管理割込がアサートされている理由を表わす理由値を理由レジスタ内にストアするステップと、イネーブルビットをイネーブルレジスタ内にロードするステップと、イネーブルビットに応答してフラグレジスタのビットをセットするステップとを含む。この方法は、フラグレジスタのビットのセットに応答して第１のシステム管理割込をアサートするステップと、システム管理割込をマイクロプロセッサに与えるステップと、理由レジスタ内の理由値を読取るステップとをさらに含む。この方法は最後に、理由値に依存してシステム管理割込をサービスするステップをさらに含む。
【００１２】
本発明の他の目的および利点は、添付の図面を参照して以下に示す詳細な説明を読めば明らかになるであろう。
【００１３】
本発明は種々の変形例および代替例が可能であるが、特定の実施例のみを例示的に図面に示し詳細に説明する。しかしながら、図面およびそれに関する詳細な説明は本発明を開示する特定の形に限定するものではなく、本発明が前掲の特許請求の範囲に規定されるような本発明の精神および範囲内にある変形例、変更例および均等物をすべて含むことが理解されるはずである。
【００１４】
【好ましい実施例の詳細な説明】
次に図面を参照すると、図１は、本発明に従った、即時システム管理割込（ＳＭＩ）源１０２を含むコンピュータシステム１００のブロック図である。コンピュータシステム１００は、バス１０６を介して即時ＳＭＩ源１０２に結合されるマイクロプロセッサ（ＣＰＵ）１０４をさらに含む。
【００１５】
マイクロプロセッサ１０４は、予め定められた命令セットを実行し、かつシステム管理割込入力（ＳＭＩ  ＩＮ）端子を含むデータ処理ユニットである。マイクロプロセッサ１０４は、たとえばモデル８０４８６マイクロプロセッサを示すものである。
【００１６】
即時ＳＭＩ源１０２は、デコード論理ユニット１１６に結合されるイネーブルレジスタ１１０、理由レジスタ１１２、およびフラグレジスタ１１４を含む。フラグレジスタ１１４は、ＮＯＲゲート１１８を介してマイクロプロセッサ１０４のＳＭＩ入力端子に結合される。
【００１７】
コンピュータシステム１００のプログラマが実行コード内の特定のポイントでＳＭＩを発生させたいと考えれば、プログラマはまずＳＭＩがリクエストされている理由を表わす「理由値」を理由レジスタ１１２にロードする。たとえば、プログラマは、ＳＭＩに応答してバッテリ容量の推定値の更新等の特定の電力管理機能を実行しなければならないことを示すように理由値「２ａ」（１６進）を規定し得る。コンピュータシステム１００のＩ／Ｏアドレス指定可能空間内に理由レジスタ１１２がマップされるため、Ｉ／Ｏ書込サイクルを実行することによりマイクロプロセッサ１０４によって理由値は理由レジスタ１１２に書込まれる。適切なＩ／Ｏ書込サイクルを実行すると、デコード論理ユニット１１６はアドレス指定信号をデコードし、それに応答して理由値を理由レジスタ１１２にラッチさせる。
【００１８】
その後（またはそれと同時に）、プログラマは、イネーブルレジスタ１１０内でイネーブルビットをセットし得る。イネーブルレジスタ１１０もコンピュータシステム１００のＩ／Ｏアドレス指定可能空間内にマップされるため、バス１０６において適切なＩ／Ｏ書込サイクルを実行することによってイネーブルレジスタ１１０内にイネーブルビットがセットされる。そのようなＩ／Ｏ書込サイクルに応答して、デコード論理ユニット１１６は、バス１０６上のアドレス指定信号をデコードし、ラッチ信号を発生してイネーブルビットをイネーブルレジスタ１１０にラッチする。イネーブルビットがイネーブルレジスタ１１０内にストアされると、フラグレジスタ１１４内に対応するビットがセットされる。したがって、ＮＯＲゲート１１８の入力ライン１２０はハイに駆動され、マイクロプロセッサ１０４のＳＭＩ  ＩＮ端子はローに駆動される。
【００１９】
マイクロプロセッサ１０４のＳＭＩ  ＩＮ端子がローに駆動されると、マイクロプロセッサはその現在の命令を終了し、ＳＭＩ源ルーチンの開始命令を含む予め定められたメモリ位置にジャンプする。図２は、ＳＭＩサービスルーチンによって実行されるステップを示すフロー図である。ステップ２０２の間、ＳＭＩサービスルーチンはまずフラグレジスタ１１４の状態を読取り、割込を開始したＳＭＩ源を決定する。なお、フラグレジスタ１１４は、バス１０６に結合されかつフラグレジスタの状態を読出すことができるようにするトライステート出力ポートを含む。
【００２０】
ステップ２０４の間の決定に従った即時ＳＭＩ源１０２以外のＳＭＩ源に応答してＳＭＩ信号がアサートされると、ＳＭＩサービスルーチンは、その特定の源をサービスするコードにジャンプする。一方、割込信号の源が即時ＳＭＩ源１０２であると判断されれば、ＳＭＩサービスルーチンは理由レジスタ１１２の状態を読取る。この時点で、理由レジスタ１１２にストアされた理由値はＳＭＩサービスルーチンに与えられる。その後、理由値はＳＭＩの処理を制御するために用いられ得る。システム管理割込がサービスされると、イネーブルレジスタ１１０、理由レジスタ１１２、およびフラグレジスタ１１４がクリアされる。これにより、サービスルーチンのＳＭＩの実行が終了する。
【００２１】
図１に示すコンピュータシステム１００に従えば、システムソフトウェアがＳＭＩを開始することを可能にする即時ＳＭＩ源が設けられる。ＳＭＩは、イネーブルレジスタ１１０へのイネーブルビットの書込の後数段のゲート遅延の間に発生する。即時ＳＭＩ源が理由レジスタを含むため、ソフトウェアは、ＳＭＩがリクエストされた理由を示した後にそれを発生させることができ、その後ＳＭＩサービスルーチンは理由レジスタを読取りその後の処理および実行の経路を決定する。したがって、図１の即時ＳＭＩ源により、プログラミング能力はより単純で柔軟になり、システム全体の性能を向上することができる。
【００２２】
なお、図１の実施例に関して、イネーブルレジスタ１１０は１ビットレジスタである。代替的に、イネーブルレジスタ１１０および理由レジスタ１１２を、イネーブルビット専用の予め定められたビットを有する１つのレジスタを用いて実現してもよい。残りのビットは特定のＳＭＩに対する理由を表わすデータをストアする。
【００２３】
一実施例では、理由レジスタは、２５５種類までの即時ＳＭＩ理由を許容する８ビットの理由値をストアする。なお、理由レジスタの値００（１６進）は、「理由なし」を表わすために用いられ得る。さらに、８ビットの理由値は、イネーブルレジスタ１１０内にイネーブルビットがセットされる前にまたはそれと同時に、理由レジスタ１１２にロードされ得る。
【００２４】
図３は、即時ＳＭＩ源１０２と周期的ＳＭＩ源３００とを含むコンピュータシステム１００のブロック図である。周期的ＳＭＩ源３００は、予め定められたプログラム可能な速度で自動的にＳＭＩを発生するために設けられる。例示的な周期的ＳＭＩ源３００は、ワイザー（Wisor ）他による「周期的システム管理割込源およびそれを用いる電力管理システム（Periodic System Management Interrupt Source and Power Management System Employing the Same）」と題された同一人に譲渡された同時係属中の特許出願で本出願と同時に提出された連続番号第０８／１９０，５９７号、現在の米国特許第５，６０６，７１３号に記載されている。この特許出願全体を引用によりここに援用する。
【００２５】
図３の実施例では、電力管理の目的でシステム管理割込を柔軟にかつ多様に利用できるようにするために、即時ＳＭＩ源１０２および周期的ＳＭＩ源３００はコンピュータシステムの電力管理ユニット内に組込まれる。
【００２６】
なお、上述の即時システム管理割込源は、以下の同一人に譲渡された特許出願、すなわち、同時係属中のゲファート（Gephardt）他による、本出願と同時に提出された連続番号第０８，１９０，２８０号の「集積プロセッサのための電力管理メッセージバス（Power Management Message Bus for Integrated Processor ）」、同時係属中のオブライエン（O'Brien ）他による、本出願と同時に提出された連続番号第０８，１９０，２９２号、現在の米国特許第５，１１１，２０３号の「集積プロセッサのための電力管理システム（Power Management System for an Integrated Processor ）」、および、同時係属中のオブライエン（O'Brien ）他による、本出願と同時に提出された連続番号第０８，１９０，２７９号、現在の米国特許第５，５０４，９１０号の「誤動作するソフトウェアから保護するためのソフトウェア構成可能状態レジスタとタイムアウトカウンタとを含む電力管理ユニット（Power Management Unit Including Software Configurable State Register and Time-Out Counters for Protecting Against Misbehaved Software ）」に記載される回路および技術を用いるコンピュータシステム内に用いられてもよい。上述の同一人に譲渡された同時係属中の特許出願全体を引用によりここに援用する。
【００２７】
以上の開示を十分に理解すれば、種々の変形例および変更例が当業者に明らかになるであろう。たとえば、図１のバス１０６はＣＰＵローカルバスであるが、代替的にはバス１０６は二次バスおよびバスブリッジを介してマイクロプロセッサ１０４に結合されてもよい。前掲の特許請求の範囲はそのような変形例および変更例をすべて含むものとして解釈されるものである。
【図面の簡単な説明】
【図１】本発明に従った、関連する理由レジスタを備える即時システム管理割込源を含むコンピュータシステムのブロック図である。
【図２】図１の即時システム管理割込源によってアサートされたＳＭＩ信号に応答してシステム管理割込サービスルーチンによって実行されるステップを示すフロー図である。
【図３】本発明に従った即時システム管理割込源と周期的システム管理割込源とを含むコンピュータシステムのブロック図である。
【符号の説明】
１０２  即時システム管理割込源
１０４  マイクロプロセッサ
１１０  イネーブルレジスタ
１１２  理由レジスタ
１１４  フラグレジスタ
１１６  デコード論理ユニット
【図１】
0004334026.tif 000002
【図２】
0004334026.tif 000003
【図３】
0004334026.tif 000004