(57)【特許請求の範囲】
【請求項１】
周辺機器についてステータス情報を維持するコンピュータシステムであって、
該コンピュータシステムは、
中央処理装置と、
該中央処理装置に結合されているバスと、
該バスに結合されている複数の周辺機器と、
該中央処理装置と通信可能なように該中央処理装置に結合されているステータスレジスタであって、該複数の周辺機器についてのステータス情報を格納するステータスレジスタと、
少なくとも１つの周辺機器と該中央処理装置との間に結合されているデージーチェーン式割込み構造であって、該少なくとも１つの周辺機器から割込み信号を該中央処理装置に送信するデージーチェーン式割込み構造と、
該バスと該ステータスレジスタとの間に結合されているアップデート回路であって、該複数の周辺機器から該バスを通じて受信されたステータス情報を含む信号に応答して該ステータスレジスタをアップデートする機構を含むアップデート回路と
を備え、
該バスに結合されている複数の中央処理装置と、
該複数の中央処理装置のうちのそれぞれの中央処理装置と該バスとの間に結合されている複数のステータスレジスタであって、該バスに結合されている該少なくとも１つの周辺機器についてのステータス情報を含む複数のステータスレジスタと
をさらに備える、コンピュータシステム。
【請求項２】
コンピュータシステムのインターフェース回路内の装置であって、該装置は、該コンピュータシステム内の周辺機器のステータスの変化を示すようにステータスレジスタをアップデートし、
該装置は、
バスのアドレス線に結合されている複数のアドレス入力と、
該複数のアドレス入力内の高位ビットのセットに結合されているアドレス検出回路であって、該高位ビットのセットによって特定されるアドレスの指定された範囲内のアドレスを検出するアドレス検出回路と、
該複数のアドレス入力内の低位ビットのセットに結合されているデコーダ回路であって、該アドレスの指定された範囲内の特定のアドレスへの照会を検出するデコーダ回路と
を備え、
該ステータスレジスタは、周辺機器による該アドレスの指定された範囲内の特定のアドレスへの照会が該デコーダ回路を通じて送られ、該ステータスレジスタ内の該周辺機器についてのステータス情報をアップデートするように、該デコーダ回路からの出力のセットに結合されており、該ステータスレジスタは、中央処理装置によって該ステータスレジスタが読み出され得るように、該中央処理装置に結合されている出力を含む、装置。
【請求項３】
前記アドレス検出回路は、デコーダを含む、請求項２に記載の装置。
【請求項４】
前記アドレス検出回路は、比較器を含む、請求項２に記載の装置。
【請求項５】
前記インターフェース回路は、単一の半導体チップの内部に存在する、請求項２に記載の装置。
【請求項６】
前記インターフェース回路は、単一の半導体チップセットの内部に存在する、請求項２に記載の装置。
【請求項７】
前記バスは、プロセッサ−メモリバスを含む、請求項２に記載の装置。
【請求項８】
前記バスは、周辺バスを含む、請求項２に記載の装置。
【請求項９】
コンピュータシステム内の複数の周辺機器についてのステータス情報を管理する方法であって、
該方法は、
通信チャネルを通じて、周辺機器からステータス情報を受信することと、
該周辺機器からの該ステータス情報に応答してステータスレジスタをアップデートすることであって、該ステータスレジスタは、中央処理装置と通信可能なように該中央処理装置に結合されている、ことと、
該中央処理装置で、該周辺装置から割込みを受信することと、
該割込みに応答して、該ステータスレジスタをテストして、該複数の周辺機器のうちのどの周辺機器がサービスを必要としているかを判定することと、
該サービスを必要としている周辺機器にサービスを供給することと
を包含し、
該ステータスレジスタと該コンピュータシステムの複数のキャッシュとの間のバスにおいて搬送される信号を通じて、該複数のキャッシュ間のコヒーレンシーが維持され、該バスは、該通信チャネルと異なる、方法。
【請求項１０】
コンピュータシステム内の複数の周辺機器についてのステータス情報を管理する方法であって、
該方法は、
周辺機器から、該コンピュータシステム内のステータスレジスタに、第１のバスを通じてステータス情報を通信することであって、該ステータスレジスタは、中央処理装置と通信可能なように該中央処理装置に結合されており、該ステータス情報は、指定されたアドレスのセット内の特定のアドレスへのアクセスを含み、該アクセスされる特定のアドレスは、該複数の周辺機器のうちの特定の１つの周辺機器についての特定のステータスを表す、ことと、
該ステータスレジスタにおいて、該ステータス情報を受信することと、
該周辺機器のステータスを示すように該ステータスレジスタをアップデートすることと、
該周辺機器から、該中央処理装置に割込みを送信することと、
該中央処理装置において、該割込みを受信することと、
該割込みに応答して、該ステータスレジスタをテストして、該複数の周辺機器のうちのどの周辺機器がサービスを必要としているかを判定することと、
該サービスを必要としている周辺機器にサービスを供給することと
を包含する、方法。
【請求項１１】
前記ステータスレジスタと前記コンピュータシステムの複数のキャッシュとの間の第２のバスにおいて搬送される信号を通じて、該複数のキャッシュ間のコヒーレンシーが維持され、該第２のバスは、前記第１のバスと異なる、請求項１０に記載の方法。
【請求項１２】
前記ステータス情報を受信することは、周辺機器からプロセッサ−メモリバスを通じてステータス情報を受信することを含む、請求項１０に記載の方法。
【請求項１３】
前記周辺機器のステータスを示すようにステータスレジスタをアップデートすることは、該ステータスレジスタ内のビットを修正することを含む、請求項１０に記載の方法。
【請求項１４】
前記周辺機器から割込みを受信することは、少なくとも１つの周辺機器と前記中央処理装置との間に結合されているデージーチェーン式割込み構造を通じて割込みを受信することを含む、請求項１０に記載の方法。
【発明の詳細な説明】
【０００１】
（背景）
（発明の分野）
本発明は、コンピュータシステム内の周辺機器、より具体的には、コア論理演算装置に位置する集中レジスタ、またはコンピュータシステムにおける周辺機器についてのステータス情報を維持する処理を有するシステムに関する。
【０００２】
（関連技術）
コンピュータシステムは、典型的には、複数の周辺機器に結合され、典型的にはコンピュータシステムバスを介してこれらの周辺機器と通信する中央処理装置を含む。これらの周辺機器には、ディスクドライブおよびテープドライブ等のデータ格納デバイス、キーボードまたはマウス等のデータ入力デバイス、映像ディスプレイまたは音声スピーカー等のデータ出力デバイス、ネットワークインターフェースコントローラ等の通信デバイスが含まれ得る。中央処理装置と周辺機器との間でデータを転送するため、そうでない場合には周辺機器に命令し、操作するために、中央処理装置が周辺機器をしばしば監視する必要がある。この監視は、典型的には、中央処理装置による通常の処理に「割り込む」ために周辺機器が中央処理装置に送信する割込みによってトリガされる。割込み中、中央処理装置は、一時的に通常の処理を停止し、「割込みサービスルーチン」として公知のコードを実行して、周辺機器が必要としているサービスを行う。割込みサービスルーチンが完了した後、中央処理装置は通常の処理を開始する。
【０００３】
多くのコンピュータシステムが、複数の周辺機器が同じ割込み信号をアクティブにし得る、共有の割込みアーキテクチャを用いる。一般的に用いられる共有の割込みアーキテクチャの１つは、周辺機器が１つ以上の割込み線を通じて共に「チェーンで縛られる」デージーチェーン式構造である。チェーン内の任意の周辺機器が割込み信号を発生し得、この割込み信号は、最終的に中央処理装置に達するまでチェーンを通過する。他の一般的に用いられる共有の割込みアーキテクチャにおいて、周辺機器は共通割込みバス線を共有する。周辺機器は、この割込みバス線をアサートすることによってプロセッサに割込みを信号発信し得る。
【０００４】
共有の割込みアーキテクチャは、いくつかの利点を有する。それは非常に単純なことで、典型的には、割込み信号を搬送する信号線を少数しか必要としないということである。また、拡張可能であり、典型的には、割込み信号用にさらなる線を必要とせずに、さらなる周辺装置がコンピュータシステムに組み込まれることが可能になる。
【０００５】
しかし、共有の割込みアーキテクチャは、大きな問題点を有する。それは、どの周辺機器が処理を必要としているのかを中央処理装置が判定する必要があることである。これは、全ての周辺機器が同じ割込み信号を発生し、中央処理装置はどの周辺機器がサービスを必要としているのか分からないからである。従って、中央処理装置は、典型的には、どの周辺機器がサービスを必要としているのか判定するために、周辺機器を「ポーリング」しなければならない。
【０００６】
このポーリング処理には、かなり時間がかかり得る。任意の所与の時間において、典型的には１つの周辺機器しかサービスを必要としていないにもかかわらず、中央処理装置は、コンピュータシステム内の全ての周辺機器をポーリングする必要を有し得る。周辺機器をポーリングするためにはＣＰＵが複数のバストランザクションを行う必要があり、各バストランザクションが高性能計算システムにおいて多数のＣＰＵサイクルを必要とし得るので、ポーリングはＣＰＵの効率性を低減する。ポーリングによって、また、周辺バスが多数のポーリングアクセスに拘束される。さらに、ポーリングは、割込みを供給するために必要な時間を増加させる。これによって、適時の様式でサービスを必要とする周辺機器についての問題が生じる。例えば、ネットワークインターフェースコントローラは、入来データのバッファがオーバーフローすることを防ぐ即時サービスを必要とし得る。この即時サービスは、ポーリングによって遅れ得る。
【０００７】
周辺機器のステータスを判定するために必要な時間およびバスの活動量を減少する共有の割込みアーキテクチャ内の周辺機器からステータス情報を引き出すシステムが必要とされる。
【０００８】
（要旨）
本発明の実施形態の１つは、コンピュータシステム内のプロセッサまたはコア論理演算装置内に位置するステータスレジスタ内のいくつかの周辺機器についてのステータス情報を維持するコンピュータシステムを提供する。この実施形態において、周辺機器は、ステータス情報をステータスレジスタに転送するバスマスター操作を行うことによって、ステータスが変化する場合、ステータスレジスタをアップデートする。周辺機器は、その後、割込みを発生して、サービスを必要としていることをプロセッサに示す。プロセッサがその割込みを処理する場合、プロセッサは、どの周辺機器が処理を必要としているのかを判定するためにステータスレジスタを読み出す必要がほとんどない。これは、ステータスレジスタがプロセッサまたはコア論理演算装置の内部にあるので、非常に素早い動作である。時間のかからない周辺機器のポーリングが、周辺機器のステータスを判定するために必要とされている。従って、本発明の実施形態の１つは、ステータスレジスタ内の周辺機器についてのステータス情報を維持する装置を提供する。この装置は、複数の周辺機器に結合されている周辺通信チャネルを含む。アップデート回路は、周辺通信チャネルとステータスレジスタとの間に結合されている。このアップデート回路は、周辺機器から周辺通信チャネルを通じて受信したステータス情報を含む信号に応答して、ステータスレジスタをアップデートする機構を含む。
【０００９】
本発明の１つの実施形態において、通信チャネルはＣＰＵバスを含む。この実施形態の変形例において、通信チャネルは、プロセッサ−メモリバスを含む。他の実施形態において、周辺通信チャネルはＰＣＩバスを含む。
【００１０】
本発明の１つの実施形態は、ステータスレジスタを読み出し、ステータスレジスタのコンテンツに基づいて適切な割込みサービスルーチンに自動的に分岐する専用プロセッサ命令を含む。
【００１１】
本発明の１つの実施形態において、通信チャネルはコンピュータシステムバスを含む。この実施形態のさらなる変形例において、通信チャネルは、コンピュータシステム内の複数のキャッシュ間のコヒーレンシーを維持する信号を搬送する。
【００１２】
本発明の１つの実施形態において、コンピュータシステムは、複数の中央処理装置、および中央処理装置と通信チャネルとの間に結合されている複数のステータスレジスタを含む。
【００１３】
本発明の１つの実施形態において、コンピュータシステムは、複数の中央処理装置、および中央処理装置と周辺通信チャネルとの間に結合されている単一のステータスレジスタを含む。
【００１４】
本発明の他の実施形態において、コンピュータシステムは、周辺機器を中央処理装置にコア論理演算装置を通じて結合するワイヤ−ＯＲｅｄ割込み構造を含む。
【００１５】
本発明の他の実施形態は、コンピュータシステム内の周辺機器のステータスの変化を示すようにステータスレジスタをアップデートする、コンピュータシステムのコア論理演算装置内の装置として特徴付けられ得る。この装置は、バスのアドレス線に結合されている、複数のアドレス入力を含み、バスは周辺機器に結合されている。この装置は、また、複数のアドレス入力内の高位ビットのセットに結合されているアドレス検出回路を含む。このアドレス検出回路は、高位ビットのセットによって特定されるアドレスの指定された範囲内のアドレスを検出するように構築される。この装置は、さらに、複数のアドレス入力内の低位ビットのセットに結合されているデコーダ回路を含む。このデコーダ回路は、アドレスの指定された範囲内の特定のアドレスへの照会を検出する。ステータスレジスタが検出回路からの出力のセットに結合されることにより、周辺機器によるアドレスの指定された範囲内の特定のアドレスへの照会がデコーダを通じて送られ、ステータスレジスタ内の周辺機器についてのステータス情報をアップデートする。ステータスレジスタは、また、中央処理装置に結合されている出力を含み、そのことにより、中央処理装置によってステータスレジスタが読み出され得る。
【００１６】
この実施形態の変形例において、アドレス検出回路はデコーダを含む。この実施形態の他の変形例において、アドレス検出回路は比較器を含む。
【００１７】
この実施形態の変形例において、コア論理演算装置が単一の半導体チップの内部に存在する。この実施形態のさらなる変形例において、コア論理演算装置が単一の半導体チップセットの内部に存在する。
【００１８】
本発明の他の実施形態は、コンピュータシステム内の複数の周辺機器についてのステータス情報を管理する方法として特徴付けられ得る。この方法は、周辺機器で、周辺機器に関するステータス情報を受信するステップと、周辺機器から、コンピュータシステム内の中央処理装置に結合されているステータスレジスタと、通信チャネルを通じてステータス情報を通信するステップとを含む。この方法は、また、周辺機器から中央処理装置に割込みを送信するステップを含む。
【００１９】
（発明の詳細な説明）
以下の説明は、当業者が本発明を作成し、用いることを可能にするために提示され、特定の適用例および要件のコンテキストにおいて提供される。開示された実施形態の様々な改良例は、当業者にとって明らかであり、本明細書中に記載される概略的な原理は、本発明の精神および範囲から逸脱することなしに、他の実施形態および適用例に適用され得る。従って、本発明は、ここで示した実施形態によって限定されるものではなく、本明細書中で開示された原理および特徴と一致する最も広い範囲に合致する。
【００２０】
（本発明の第１の実施形態の概要）
図１に、プロセッサ１００が、周辺機器１１０、１２０、および１３０にそれぞれ位置するステータスレジスタ１１２、１２２および１３２を読み出す、従来技術によるコンピュータシステムを示す。プロセッサ１００は、コア論理演算装置１０３を通じてメモリ１０１およびバス１０５に結合されている。プロセッサ１００は、バス１０５を通じて周辺機器１１０、１２０、および１３０にアクセスし得る。割込みに応答して、プロセッサ１００は、周辺機器１１０、１２０および１３０のうちどれが処理を必要としているのかを判定するために、ステータスレジスタ１１２、１２２および１３２をポーリングする。このポーリングは、バス１０５を介する動作を複数必要とする。
【００２１】
図２に、本発明の実施形態による、周辺機器のステータスを格納する、内部ステータスレジスタ１０２を有するプロセッサ１００、または内部ステータスレジスタ１０７を有するコア論理演算装置１０３を含むコンピュータシステムを示す。図１に示したシステムと同様に、プロセッサ１００は、コア論理演算装置１０３を通じてメモリ１０１およびバス１０５に結合されている。プロセッサ１００は、バス１０５を通じて周辺機器１１０、１２０、および１３０にアクセスし得る。
【００２２】
しかし、図２に示した実施形態は、多くの局面において、図１に示したシステムとは異なる。図２において、プロセッサ１００は、割込み中、ステータスレジスタ１０２または１０７に照会して、周辺機器１１０、１２０、および１３０のステータスを判定する。これは、ステータスレジスタ１０２または１０７が、それぞれ、プロセッサ１００およびコア論理演算器１０３の内部にあるので、非常に素早い動作である。プロセッサ１００によるステータスレジスタ１０２または１０７への照会は、周辺機器１１０、１２０、および１３０のポーリングにおいてバス１０５を介するアクセスを必要としない。
【００２３】
代わりに、周辺機器１１０、１２０、および１３０は、ステータスレジスタ１０２または１０７内のステータス情報をアップデートする責任がある。このアップデートは、周辺機器のステータスが変化する場合にのみ起こる必要がある。ステータスレジスタをアップデートするために、周辺機器１１０等の周辺機器は、バス１０５のアドレス空間内の指定されたメモリ位置に書き込む。この指定アドレス空間内には、実際にはメモリがない。代わりに、ステータスレジスタに取り付けられたロジックが、これらの指定位置への照会を中断し、これらの照会を用いてステータスレジスタを適切にアップデートして、示された周辺機器のステータスの変化を反映する。
【００２４】
コア論理演算装置１０３内のステータスレジスタ１０７は、プロセッサ１００内のステータスレジスタ１０２の代替的な実施形態であることに留意されたい。コア論理演算装置１０３内のステータスレジスタ１０７への照会は、プロセッサ１００内のステータスレジスタ１０２への照会程速くない。しかし、ステータスレジスタ１０７を実現するために、プロセッサ１００に対する特別な改良が必要になることはない。
【００２５】
概して、プロセッサ１００は、コンピュータシステム用の任意のタイプのコンピュータエンジンであり得る。これには、メインフレームプロセッサ、マイクロプロセッサ、およびマイクロコントローラが含まれるが、これらに限定されるわけではない。バス１０５は、プロセッサを、コンピュータシステム内の他のデバイス、例えば、周辺機器、メモリデバイス、および他のプロセッサに結合する任意のタイプの通信チャネルであり得る。これには、ＰＣＩバス等のバス、および共有メモリマルチプロセッサシステム内の複数のキャッシュ間のコヒーレンシーを保つ信号を含むバスが含まれるが、これらに限定されるわけではない。周辺機器１１０、１２０、および１３０は、コンピュータシステムに結合され得る、任意のタイプの周辺機器であり得る。これらには、ディスクドライブおよびテープドライブ等のデータ格納デバイス、キーボードまたはマウス等のデータ入力デバイス、映像ディスプレイまたは音声スピーカー等のデータ出力デバイス、ならびにネットワークインターフェースコントローラ等の通信デバイスが含まれるが、これらに限定されるわけではない。
【００２６】
図３に、本発明の実施形態による、周辺機器のステータスを格納する、ステータスレジスタ１０２、３０２、および３１２を含む複数のプロセッサ、あるいはコア論理演算装置１０３内の単一のステータスレジスタ１０７を含むコンピュータシステムを示す。この実施形態において、プロセッサ１００、３００、および３１０は、それぞれ、キャッシュ１０３、３０３および３１３を含む。キャッシュ１０３、３０３および３１３は、それぞれ、プロセッサ１００、３００、および３１０によって用いられるように、メモリ３２０からのコードのコピーおよびデータを格納する。プロセッサ１００、３００、および３１０は、バス３２０に結合され、コア論理演算器１０３もバス３２０に結合される。コア論理演算器１０３は、バス３２０をメモリ１０１およびバス１０５に結合する。周辺機器１１０、１２０、および１３０は、バス１０５に結合されている。
【００２７】
この実施形態において、バス３２０は、データ格納メモリ３２０間のコヒーレンシーを保つ信号、ならびにキャッシュ１０３、３０３および３１３に格納されるデータのコピーを含む。コヒーレンシーは、典型的には、エントリーに含まれるデータのコピーが他のキャッシュまたはメモリ３２０において修正される場合、キャッシュのエントリーを無効にすることによって維持される。プロセッサ１００、３００、および３１０は、バス３２０での信号のセットを「スヌープ（ｓｎｏｏｐ）」または傍受（ｌｉｓｔｅｎ）するために「スヌープロジック」を用いて、ローカルプロセッサキャッシュのエントリーを無効にするかどうかを判定する。
【００２８】
この実施形態において、プロセッサ１００、３００、および３１０は、さらに、周辺機器１１０、１２０、および１３０に関するステータス情報を格納するステータスレジスタ１０２、３０２および３１２をそれぞれ含む。この実施形態において、ステータスレジスタ１０２、３０２および３１２は、「スヌープロジック」によってモニタリングされる信号をモニタリングして、キャッシュエントリーを無効にすることによって動作する。ステータスレジスタをアップデートするために、周辺機器１１０等の周辺機器は、バス１０５のアドレス空間内の指定メモリ位置に書き込む。
【００２９】
概して、メモリ１０１内の位置がアップデートされることによって、バス１０５での無効信号は、キャッシュ１０３、３０３、および３１３内に存在し得るメモリ位置に格納されたデータの任意のコピーを無効にする。この指定アドレス空間には実際にはメモリがないので、無効信号は、常にキャッシュミスの原因となり得る。ステータスレジスタに取り付けられたロジックは、これらの指定位置への照会を中断し、これらの照会を用いてステータスレジスタを適切にアップデートして、示された周辺機器のステータスの変化を反映させる。この処理は、図４〜１１を参照しながら、以下でより詳細に説明される。
【００３０】
（コンピュータシステムの説明）
図４に、本発明の実施形態による、処理システムの構造を示す。例示した実施形態において、ＣＰＵ４０４は、ノースブリッジ４０８を通じてメモリ４０５およびバス４３０に結合されている。メモリ４０５は、コンピュータシステムにおいて用いられ得る任意のタイプの半導体メモリであり得る。バス４３０は、任意のタイプのコンピュータシステムバスであり得る。１つの実施形態において、バス４３０はＰＣＩバスを含む。バス４３０は、ディスプレイ４１６へ出力されるグラフィック画像を処理するグラフィックスモジュール４１４に結合されている。バス４３０は、さらに、音声信号を生成するサウンドカード４１５に結合されている。サウンドカード４１５は、スピーカー４１７に結合され、サウンドカード４１５によって生成される音声信号は、スピーカー４１７を通じて出力される。
【００３１】
例示した実施形態において、ＣＰＵ４０４は、さらに、ノースブリッジ４０８を通じてサウスブリッジ４１０に結合されている。ノースブリッジ４０８およびサウスブリッジ４１０は、コンピュータシステム用の「コア論理演算」の一部分を形成する。このコア論理演算は、コンピュータシステム内の構成要素の動作を結びつけ、調整する。サウスブリッジ４１０は、任意のタイプの不揮発性格納デバイスを含み得るディスク４０６に結合されている。これには、磁気、光学、磁気光学、およびフラッシュメモリ格納デバイスが含まれるが、これらに限定されるわけではない。サウスブリッジ４１０は、また、任意のタイプのコンピュータシステムバスであり得るバス４３２に結合されている。１つの実施形態において、バス４３２は、ＩＳＡバスを含む。バス４３２は、ＣＰＵ４０４が、バス４３２に結合されているＢＩＯＳ  ＲＯＭ４１２およびモデム４２２と通信することを可能にする。モデム４２２は、任意のタイプのモデムであり得、コンピュータシステムはそのモデムを通じて電話回線を介して通信し得る。
【００３２】
図４に、ＣＰＵ４０４内のステータスレジスタ１０２、ならびにノースブリッジ４０８内のステータスレジスタ１０７を示す。他の実施形態において、ステータスレジスタ１０２は、ＣＰＵ４０４またはノースブリッジ４０８内ではなく、コンピュータシステム内に独立型レジスタを含み得る。
【００３３】
（ステータスレジスタの説明）
図５に、本発明の実施形態による、ステータスレジスタ１０７（またはステータスレジスタ１０２）の構造を示す。例示した実施形態において、ステータスレジスタ１０７（またはステータスレジスタ１０２）は、コンピュータシステム内の周辺機器についてのステータス情報を含む複数のビットを含む。これらのビットは、ステータスデバイス１  ５０２、ステータスデバイス２  ５０４、ステータスデバイス３  ５０６、およびステータスデバイスＮ  ５０８を含む。ステータスビットが設定される場合、これは、対応するデバイスがサービスを必要としていることを示す。本発明の他の実施形態において、ステータスレジスタ１０７（またはステータスレジスタ１０２）は、各デバイスについて１ビットより多いステータス情報を含む。これらのビットは、特定のデバイスがサービスを必要としているという単なる事実を越えて、各デバイスについてさらなるステータス情報を含む。例えば、ステータス情報は、デバイスが必要としているサービスのタイプを特定し得る。
【００３４】
図６に、本発明の実施形態による、メモリマッピングによってどのようにステータスレジスタのアップデートが完了されるかを示す。この実施形態において、アドレス空間６００は、図１のバス１０５のようなバスのアドレス線についてのアドレス空間である。アドレス空間６００は、ＢＩＯＳ画像６１０をアドレス空間６００の下の端部に含む。ＢＩＯＳ画像６１０は、低レベル動作システム機能を実現するコードを含む。アドレス空間６００は、さらに、アドレス空間６００の上の端部に物理的メモリ６３０を含む。物理的メモリ６３０は、プロセッサによってプログラムを実行するために用いられるコードおよびデータを含む。ＢＩＯＳ画像６１０と物理的メモリ６３０との間の、アドレス空間６００のセクションは、ステータスレジスタ１０７（またはステータスレジスタ１０２）をアップデートするために指定される。これらのアドレス位置には実際にはメモリがない。しかし、これらの位置へのアクセスは、ステータスレジスタ１０７（またはステータスレジスタ１０２）のコンテンツをアップデートする。例えば、アドレス６４０へのアクセスは、デバイス１がサービスを必要としていることを示すように、デバイス１  ５０２についてステータスビットを設定し、アドレス６４２へのアクセスは、デバイス１がサービスを必要としていないことを示すようにビット５０２をリセットする。同様に、アドレス６４４、６４８、および６５２へのアクセスが、それぞれ、ステータスビット５０４、５０６、および５０８を設定し、アドレス６４６、６５０、および６５４へのアクセスが同じステータスビットをリセットする。
【００３５】
（ステータスレジスタ位置の説明）
図７に、本発明の実施形態による、プロセッサ１００内の機能装置の一部を示す。例示した実施形態において、プロセッサ１００は、計算動作を行う、整数のＡＬＵ（演算論理装置）７０２および浮動小数点装置７０４を含む。プロセッサ１００は、また、プロセッサ１００内の機能装置の動作を調整し得るコントローラ７０６を含む。プロセッサ１００内の複数の装置が、バス１０５に結合されている。これらは、計算動作中、プロセッサ１００によって用いられる命令およびデータを含む、Ｌ１キャッシュ７０８を格納する。いくつかの実施形態において、Ｌ１キャッシュ７０８は、別個の命令およびデータキャッシュを含む。スヌープロジック７１０が、また、バス１０５に結合されている。スヌープロジック７１０は、「スヌープ」情報を含むバス１０５の信号を受信する。スヌープロジック７１０は、このスヌープ情報を用いて、Ｌ１キャッシュ７０８内のエントリーを無効にする。プロセッサ１０５は、さらに、プロセッサ１０５内の計算動作についてのデータ値を一時的に格納するレジスタ７１２を含む。レジスタ７１２は、さらに、図２のステータスレジスタ１０２を含む。
【００３６】
図８に、本発明の実施形態による、ノースブリッジ４０８の内部構造の一部を示す。この実施形態において、ステータスレジスタ１０７は、ノースブリッジ４０８内のステータスレジスタ装置７１２にある。ノースブリッジ４０８は、さらに、データをＣＰＵ４０４と、メモリ４０５と、バス４３０との間で切り換えるスイッチ８０５を含む。この実施形態において、ステータスレジスタ装置７１２は、バス４３０のアクセスを受信して、アドレス６２０の指定された範囲へのアクセスを検出する。
【００３７】
（ステータスレジスタの１つの実施形態の説明）
図９に、本発明の実施形態による、ステータスレジスタ装置７１２の内部構造の一部分を示す。この実施形態において、バス１０５からのアドレス線が、ステータスレジスタ装置７１２内のロジックによってモニタリングされて、指定されたアドレス６２０への照会が検出される。より具体的には、バス１０５からの高位アドレスビットがデコーダ９００の入力に送られる。高位アドレスビット９０２が指定されたアドレス６２０のアドレスを特定する場合、デコーダ９００は、デコーダ９１０のイネーブル入力に送られるレジスタヒット信号９０６を発生する。他の実施形態において、高位アドレスビット９０２は、同じアドレス検出機能を行う比較器回路に送られる。概して、任意の一般的に公知のアドレス検出回路部が用いられて、指定された範囲６２０内のアドレスが検出され得る。低位アドレスビット９０４がデコーダ９１０の入力に送られる。これらの低位アドレスビットが用いられて、デコーダ９１０の様々な出力が選択される。これらの出力は、ステータスレジスタ１０７（またはステータスレジスタ１０２）においてビットを、設定するか、またはリセットするかのいずれかである。例示した実施形態において、ステータスレジスタ１０７（またはステータスレジスタ１０２）の各ビットは、図９に示すように、環状に接続された２つのＮＡＮＤゲートを含む双安定回路に格納される。ＮＡＮＤゲートの各対は、デコーダ９１０からの２つの入力を有する。上部の入力がローにアサートされる場合、ビットは設定され、下部の入力がローにアサートされる場合、ビットがリセットされる。例えば、アドレス６４０へのアクセスによって、デコーダ９１０の上部の出力がローにアサートされ、それによって、対応するビットが１つの値にアサートされる。対照的に、アドレス６４２へのアクセスによって、デコーダ９１０の次の下部の出力がローにアサートされて、同じビットをリセットする。最終的に、ステータス読み出し信号９１２がアサートされる場合、取り付けられたドライバが、アクティブにされて、ステータスレジスタ１０２、あるいはステータスレジスタ１０７（またはステータスレジスタ１０２）からビットを読み出す。この実施形態は、ステータスレジスタ１０７（またはステータスレジスタ１０２）の多数の可能な構造のうちの１つを例示する。概して、任意の他の一般的に公知のレジスタ構造が用いられ得る。
【００３８】
（ステータスレジスタの動作の説明）
図１０は、本発明の実施形態による、周辺機器がどのようにステータスレジスタ１０２（または１０７）をアップデートするかを示すフローチャートである。この実施形態において、周辺機器は、状態１０００で開始し、状態１００２に進む。状態１００２において、周辺機器は、そのステータスの変化を検出する。このステータスの変化は、いくつかのサービスが必要であることを示し得る。例えば、データは、プロセッサ１００にすぐに転送される状態であり得る。その後、周辺機器は、状態１００４へと進む。状態１００４において、周辺機器は、バス１０５でバスマスター動作を行って、デバイスがサービスを必要としていることを示すように、ステータスレジスタ１０２（または１０７）をアップデートする。その後、周辺機器は、状態１００６に進む。状態１００６において、周辺機器は、割込みを発生して、周辺機器がサービスを必要としていることをプロセッサ１００に示す。その後、周辺機器は、状態１００８、すなわち、終了状態に進む。
【００３９】
図１１は、本発明の実施形態による、プロセッサ１００がどのようにステータスレジスタ１０２（または１０７）からの情報を用いて割込みサービスルーチンをトリガするかを示すフローチャートである。プロセッサ１００は、状態１１００で開始し、状態１１０２に進む。状態１１０２において、プロセッサ１００は、バス１０５に結合されている周辺機器のうちの１つから割込みを受信する。その後、プロセッサ１００は、プロセッサ１００が割込みを処理するために状態を保存する、状態１１０４に進む。その後、プロセッサ１００は、状態１１０６に進む。状態１１０６において、プロセッサ１００は、割込みベクトルが示した位置からの割込み命令を取り出す。その後、プロセッサ１００は、状態１１０８に進む。状態１１０８において、プロセッサ１００は、ステータスレジスタ１０２（または１０７）のコンテンツを検査するために、ステータスレジスタ１０２（または１０７）をプロセッサレジスタにコピーする。その後、システムは、状態１１１０に進む。
【００４０】
状態１１１０において、プロセッサ１００は、ステータスレジスタ１０２（または１０７）のコンテンツに基づいて、各種の割込みサービスルーチン１１１２、１１１４、および１１１６に分岐している。この分岐は、実際には、ステータスレジスタ１０７をテストし、適切な条件付き分岐を行うために、複数の命令を必要とし得る。デバイス１が処理を必要としていることをステータスレジスタ１０２（または１０７）が示す場合、プロセッサ１００は状態１１１２、すなわち、デバイス１にサービスを供給する割込みサービスルーチンの開始である状態に分岐する。この割込みサービスルーチンは、概して、図示しない多数の割込みサービス命令を含む。割込みサービスルーチンが完了した後、プロセッサ１００は、状態１１１８、すなわち、終了状態に進む。デバイス２が処理を必要としていることをステータスレジスタ１０２（または１０７）が示す場合、プロセッサ１００は状態１１１４、すなわち、デバイス２にサービスを供給する割込みサービスルーチンの開始である状態に分岐する。この割込みサービスルーチンが完了した後、プロセッサ１００は、状態１１１８、すなわち、終了状態に進む。デバイスＮが処理を必要としていることをステータスレジスタ１０２（または１０７）が示す場合、プロセッサ１００は状態１１１６、すなわち、デバイスＮにサービスを供給する割込みサービスルーチンの開始である状態に分岐する。この割込みサービスルーチンが完了した後、プロセッサ１００は、状態１１１８、すなわち、終了状態に進む。
【００４１】
本発明の１つの実施形態において、ステータスレジスタ１０２（または１０７）の特定のビットへの周辺機器のマッピングの処理、および特定の周辺機器への特定の割込みサービスルーチンの割り当ての処理は、システム初期化の間、初期化ルーチンとして行われる。本発明の１つの実施形態において、これらの機能を行うためのコードは、システム起動の間、読み出されるリードオンリーメモリ内に存在する。
【００４２】
（定義）
（コア論理演算）−プロセッサをメモリおよび周辺バスにインターフェースさせ、他の機能を行うコンピュータシステム内の回路部。
【００４３】
（スヌープバス）−信号を搬送して、複数のプロセッサを含むコンピュータシステム内の複数のキャッシュ間の一致性またはコヒーレンシーを維持するバス。
【００４４】
前述の本発明の実施形態の説明は、例示および説明するためにのみ、提示されてきた。この説明は、全てを網羅するものではなく、本発明を開示されている形態に限定しない。当然、当業者にとって、多くの改良例および変形例が明らかである。
【図面の簡単な説明】
【図１】  図１は、プロセッサ１００が、それぞれ、周辺機器１１０、１２０、および１３０に位置するステータスレジスタ１１２、１２２および１３２を読み出す、従来技術によるコンピュータシステムを示す図である。
【図２】  図２は、本発明の実施形態による、周辺機器のステータスを格納する、内部ステータスレジスタ１０２を有するプロセッサ１００、または内部ステータスレジスタ１０７を有するコア論理演算装置１０３を含むコンピュータシステムを示す図である。
【図３】  図３は、本発明の実施形態による、周辺機器のステータスを格納する、ステータスレジスタ１０２、３０２、および３１２を含む複数のプロセッサ、あるいはコア論理演算装置１０３内の単一のステータスレジスタ１０７を含むコンピュータシステムを示す図である。
【図４】  図４は、本発明の実施形態による、処理システムの構造を示す図である。
【図５】  図５は、本発明の実施形態による、ステータスレジスタ１０２またはステータスレジスタ１０７の構造を示す図である。
【図６】  図６は、本発明の実施形態による、メモリマッピングによってどのようにステータスレジスタのアップデートが完了されるかを示す図である。
【図７】  図７は、本発明の実施形態による、プロセッサ１００内の機能装置の一部を示す図である。
【図８】  図８は、本発明の実施形態による、ノースブリッジ４０８の内部構造の一部を示す図である。
【図９】  図９は、本発明の実施形態による、ステータスレジスタ装置７１２の内部構造の一部分を示す図である。
【図１０】  図１０は、本発明の実施形態による、周辺機器がどのようにステータスレジスタ１０２または１０７をアップデートするかを示すフローチャートである。
【図１１】  図１１は、本発明の実施形態による、プロセッサ１００がどのようにステータスレジスタ１０２または１０７からの情報を用いて適切な割込みサービスルーチンをトリガするかを示すフローチャートである。
【図１】
0004490585.tif 000002
【図２】
0004490585.tif 000003
【図３】
0004490585.tif 000004
【図４】
0004490585.tif 000005
【図５】
0004490585.tif 000006
【図６】
0004490585.tif 000007
【図７】
0004490585.tif 000008
【図８】
0004490585.tif 000009
【図９】
0004490585.tif 000010
【図１０】
0004490585.tif 000011
【図１１】
0004490585.tif 000012