(57)【要約】  本発明の一実施形態によれば、マルチプロセッサシステム内でのプロセッサ間割り込みのための方法及び装置が説明される。一実施形態は、プロセッサ間割り込み要求を第１のメモリロケーションに書き込むこと、第１のメモリロケーションを監視すること、第１のメモリロケーションでのプロセッサ間割り込み要求を検出すること、プロセッサ間割り込み要求の関数を呼び出すこと、及びプロセッサ間割り込み要求の関数を実行すること、を含む。
2007500898.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ間割り込み要求を第１のメモリロケーションに書き込むこと、
前記第１のメモリロケーションを監視すること、
前記第１のメモリロケーションでの前記プロセッサ間割り込み要求を検出すること、
前記プロセッサ間割り込み要求の関数を呼び出すこと、及び
前記プロセッサ間割り込み要求の前記関数を実行すること、
を含む方法。
【請求項２】
前記第２のメモリロケーションに書き込むことであって、それによって前記プロセッサ間割り込み要求の受け取りに対して肯定応答する、書き込むことをさらに含む、請求項１に記載の方法。
【請求項３】
前記プロセッサ間割り込み要求の受け取りに対する肯定応答について、前記第２のメモリロケーションを監視することをさらに含む、請求項２に記載の方法。
【請求項４】
プロセッサ間割り込み要求が検出されると、リング遷移をイネーブルする状態を確立することをさらに含む、請求項１に記載の方法。
【請求項５】
プロセッサ間割り込み要求が検出されると、現在の状態を保存することをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のメモリロケーションは線形メモリロケーションである、請求項１に記載の方法。
【請求項７】
前記第１のメモリロケーションは第１のプロセッサ用であり、該第１のプロセッサは前記第１のメモリロケーションを監視する、請求項１に記載の方法。
【請求項８】
前記第１のメモリロケーションは複数のプロセッサ用であり、該プロセッサのそれぞれは前記第１のメモリロケーションを監視する、請求項１に記載の方法。
【請求項９】
前記プロセッサ間割り込み要求を複数のメモリロケーションに書き込むことをさらに含み、前記複数のメモリロケーションのそれぞれは１つ又は複数のプロセッサによって監視される、請求項１に記載の方法。
【請求項１０】
プロセッサ間割り込み要求を実行する実行ユニットであって、前記プロセッサ間割り込み要求の実行は、
第１のメモリロケーションを監視すること、
前記第１のメモリロケーションでの前記プロセッサ間割り込み要求を検出すること、
前記プロセッサ間割り込み要求の関数を呼び出すこと、及び
前記プロセッサ間割り込み要求の前記関数を実行すること
を含む、実行ユニットを備えるプロセッサ。
【請求項１１】
前記プロセッサ間要求の実行は、第２のメモリロケーションに書き込むことであって、それによって前記プロセッサ間割り込み要求の受け取りに対して肯定応答する、書き込むことをさらに含む、請求項１０に記載のプロセッサ。
【請求項１２】
前記プロセッサ間要求の実行は、該プロセッサ間割り込み要求が検出されると、リング遷移をイネーブルすることをさらに含む、請求項１０に記載のプロセッサ。
【請求項１３】
前記プロセッサ間要求の実行は、該プロセッサ間割り込み要求が検出されると、現在の状態を保存することをさらに含む、請求項１０に記載のプロセッサ。
【請求項１４】
前記第１のメモリロケーションは線形メモリロケーションである、請求項１０に記載のプロセッサ。
【請求項１５】
第１のプロセッサ及び第２のプロセッサを含む複数のプロセッサと、
前記第１のプロセッサ及び前記第２のプロセッサが結合されるバスと、
第１のメモリロケーションを含むメモリであって、前記第１のプロセッサは前記第２のプロセッサへのプロセッサ間割り込み要求を前記第１のメモリロケーションに書き込み、前記第２のプロセッサは前記プロセッサ間割り込み要求について前記第１のメモリロケーションを監視し、前記プロセッサ間割り込み要求が検出されると関数を呼び出す、メモリと、
を備えるシステム。
【請求項１６】
前記メモリは第２のメモリロケーションをさらに含み、前記第２のプロセッサは前記第２のメモリロケーションに書き込んで前記プロセッサ間割り込み要求の受け取りに対して肯定応答する、請求項１５に記載のシステム。
【請求項１７】
前記第２のプロセッサは、前記プロセッサ間割り込み要求が検出されるとリング遷移をイネーブルする、請求項１５に記載のシステム。
【請求項１８】
前記第２のプロセッサは前記プロセッサ間割り込み要求が検出されると現在の状態を保存する、請求項１５に記載のシステム。
【請求項１９】
前記第１のメモリロケーションは線形メモリロケーションである、請求項１５に記載のシステム。
【請求項２０】
前記第１のメモリロケーションは複数のプロセッサ用であり、該複数のプロセッサのそれぞれは前記第１のメモリロケーションを監視する、請求項１５に記載のシステム。
【請求項２１】
前記第１のプロセッサは前記プロセッサ間割り込み要求を複数のメモリロケーションに書き込み、該複数のメモリロケーションのそれぞれは１つ又は複数のプロセッサにより監視される、請求項１５に記載のシステム。
【請求項２２】
プロセッサにより実行されると、前記プロセッサに、
プロセッサ間割り込み要求を第１のメモリロケーションに書き込むこと、
前記第１のメモリロケーションを監視すること、
前記第１のメモリロケーションでの前記プロセッサ間割り込み要求を検出すること、
前記プロセッサ間割り込み要求の関数を呼び出すこと、及び
前記プロセッサ間割り込み要求の前記関数を実行すること、
を含む動作を実行させる、命令シーケンスを表すデータを記憶した機械可読媒体。
【請求項２３】
前記命令シーケンスは、前記第２のメモリロケーションに書き込むことであって、それによって前記プロセッサ間割り込み要求の受け取りに対して肯定応答する、書き込むことをさらに含む、請求項２２に記載の媒体。
【請求項２４】
前記命令シーケンスは、前記プロセッサ間割り込み要求の受け取りに対する肯定応答について、前記第２のメモリロケーションを監視することをさらに含む、請求項２３に記載の媒体。
【請求項２５】
前記命令シーケンスは、プロセッサ間割り込み要求が検出されると、リング遷移をイネーブルする状態を確立することをさらに含む、請求項２２に記載の媒体。
【請求項２６】
前記命令シーケンスは、プロセッサ間割り込み要求が検出されると、現在の状態を保存することをさらに含む、請求項２２に記載の媒体。
【請求項２７】
前記第１のメモリロケーションは線形メモリロケーションである、請求項２２に記載の媒体。
【請求項２８】
前記第１のメモリロケーションは第１のプロセッサ用であり、該第１のプロセッサは前記第１のメモリロケーションを監視する、請求項２２に記載の媒体。
【請求項２９】
前記第１のメモリロケーションは複数のプロセッサ用であり、該プロセッサのそれぞれは前記第１のメモリロケーションを監視する、請求項２２に記載の媒体。
【請求項３０】
前記命令シーケンスは、前記プロセッサ間割り込み要求を複数のメモリロケーションに書き込むことをさらに含み、前記複数のメモリロケーションのそれぞれは１つ又は複数のプロセッサによって監視される、請求項２２に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一実施形態はコンピュータ動作全般に関し、特にプロセッサ間割り込みに関する。
【背景技術】
【０００２】
コンピュータは、物理的なプロセッサ及び論理的なプロセッサを含み得る複数のプロセッサを備え得る。オペレーティングシステムはプロセッサ間割り込み（ＩＰＩ）を利用して、システム内のプロセッサ間で要求を受け渡すことができる。オペレーティングシステムはプロセッサ間割り込みを使用して、１つのプロセッサに１つ又は複数の他のプロセッサに対する特定のアクションを開始させることができる。このようなアクションは、プロセッサが割り込みを他のプロセッサに送ってＴＬＢエントリの無効化を要求するＴＬＢ（変換ルックアサイドバッファ）シュートダウン割り込みを含み得る。受け取り側のプロセッサは、線形アドレスマッピングの変更又は特定のメモリ範囲のメモリキャッシュ属性の変更等、送り側のプロセッサが行ったグローバルな変更に応答してキャッシュフラッシュを開始することができる。
【０００３】
しかし、プロセッサ間割り込み信号は、送り側のプロセッサ及び受け取り側のプロセッサの両方に大きなオーバヘッドを必要とし得る。送り側のプロセッサはメモリアクセスを行い、ローカルアドバンストプログラマブル割り込みコントローラ（ＡＰＩＣ：local advanced programmable interrupt controller）等のプログラマブル割り込みコントローラを通して割り込みを送る必要がある。同様に、受け取り側プロセッサも割り込みを受け取るプロセスにおいて相当なオーバヘッドを負担する恐れがある。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明は、本発明の実施形態を例示するために使用される以下の説明及び添付図面を参照することによって最良に理解することができる。
【発明を実施するための最良の形態】
【０００５】
マルチプロセッサシステム内でのプロセッサ間割り込みのための方法及び装置について説明する。
【０００６】
本発明の一実施形態下では、プロセッサ間割り込み関数は割り込みを呼び出す命令を使用して行われる。本明細書ではこの命令をＭｃａｌｌ命令と呼ぶが、この命令は任意の名称を有することができる。実施形態では、送り側プロセッサへの関数の動作コストはライトバックメモリロケーションへの記憶であり、受け取り側へのコストは関数への強制呼び出しである。本発明の一実施形態はプロセッサ間割り込みの動作コストを大幅に削減し、それによってシステムパフォーマンスを向上させることができる。
【０００７】
本発明の一実施形態によれば、割り込み関数は、メモリシステムを通して送られる信号によって実行される。送り側プロセッサは、ライトバックメモリロケーションへの記憶を行う。その結果、記憶により受け取り側に関数呼び出しが発生する。この動作は、ＡＰＩＣを通して送られる従来の割り込みと対照を成すことができる。この実施形態は、プロセッサ間割り込みを送るコストを削減することによってマルチプロセッサ環境及びマルチスレッド環境でのオペレーティングシステムのパフォーマンスを向上させることができる。本発明の一実施形態下では、ＡＰＩＣなしで、又は代替の信号動作を有するシステム内でなく、プロセッサ間割り込み関数を実行することができる。
【０００８】
プロセッサ間割り込みを送る従来のメカニズムを図１に示す。この図では、第１の開始側すなわち送り側プロセッサが割り込みを第２の受け取り側すなわちターゲットプロセッサに提供する。図１に提供する例は２つの３２ビット書き込み動作で書かれる６４ビットコマンドが関係する。このシーケンスでは、第１のプロセッサは以下のタスクを実行する。
１．プロセッサローカルＡＰＩＣタスク優先度レジスタへの書き込み１０５を介して割り込み要求レベル（ＩＲＱＬ）を上げる。これは非キャッシュロケーションへの書き込みである。
２．プロセッサローカルＡＰＩＣ割り込みコマンドレジスタに書き込むコマンドを作成する（メモリロケーション又はレジスタに）１１０。パラメータの中でも特に、このコマンドはターゲットプロセッサ及びターゲットプロセッサへの割り込みに使用すべき割り込みベクトルＶを指定する。割り込みベクトルＶは、プロセッサ間割り込みを送ったことに応答してターゲットプロセッサにおいて実行され得る割り込みサービスルーチンに対応し得る。
３．コマンドをプロセッサローカルＡＰＩＣ割り込みコマンドレジスタ（ＩＣＲ）に書き込む１１５。これは非キャッシュロケーションへの書き込みである。コマンドを書き込むプロセスは以下を含み得る。
ａ．割り込みのディセーブル動作１２０
ｂ．ローカルＡＰＩＣの空きを待つ１２５。これは割り込みコマンドレジスタのＢＵＳＹビットをポーリングすることによって行うことができる。
ｃ．コマンドの上位３２ビットをＡＰＩＣ割り込みコマンドレジスタハイワードに書き込む１３０。
ｄ．コマンドの下位３２ビットをＡＰＩＣ割り込みコマンドレジスタローワードに書き込む１３５。
ｅ．ローカルＡＰＩＣの空きを待つ１４０。
ｆ．割り込み動作を再びイネーブルする１４５。
４．ターゲットプロセッサが、特定のデータ値を特定のメモリロケーションに書き込むことにより、プロセッサ間割り込みを受け取ったことに対して肯定応答するのを待つ１５０。この書き込みは、ターゲットプロセッサに送ったまさにその割り込みに対しての処理の一環として行われ得る。
５．通常動作を再開する１５５。
【０００９】
受け取り側プロセッサでは、割り込みは従来通り、ローカルＡＰＩＣ割り込み送出メカニズムに組み込まれたロジックを介してラッチされてプロセッサコアに送出される。示す割り込みメカニズムは、プロセッサコアが動作している割り込み優先度（ＡＰＩＣタスク優先度レジスタに反映される）、より高い優先度を有し得る他の保留中の割り込み、及びプロセッサコアの割り込み可能性状態（ｉｎｔｅｒｒｕｐｔｉｂｉｌｉｔｙ  ｓｔａｔｅ）を考慮する。プロセッサコアが割り込みをイネーブルさせ、プロセッサ間割り込みに対応するベクトルが保留中の最高優先度割り込みベクトルである場合、ローカルＡＰＩＣはベクトルをコアにディスパッチする。
【００１０】
受け取り側プロセッサでの従来のイベントシーケンスを図２に示す。受け取り側プロセッサでのプロセッサ間割り込みプロセスは以下を含み得る。
１．プロセッサのローカルＡＰＩＣが割り込みベクトルＶをディスパッチし２０５、これはプロセッサコアへの割り込みサービスルーチン（ＩＳＲ）に対応する。ブート時に、ＯＳは、割り込みサービスルーチンと共に割り込みゲートを含むように、ベクトルＶに対応する割り込み記述子テーブルエントリをプログラムしているであろう。
２．タスク優先度レジスタレベルをベクトルＶに対応するレベルに上げる２１０。
３．プロセッサコアが割り込み記述子テーブルを介してベクトルＶをディスパッチする２１５。
４．プロセッサ間割り込みに対応する割り込みサービスルーチンが割り込みをディセーブルして制御権を獲得する２２０。
５．割り込みサービスルーチンがメモリロケーションに書き込み、送り側プロセッサにプロセッサ間割り込みを受け取ったことを通知する２２５。
６．プロセッサ間割り込みのアクションを実行する２３０。
７．通常動作を再開する２３５。
【００１１】
本発明の一実施形態下では、割り込み動作に命令（この説明ではＭｃａｌｌ命令）を使用することで、送り側プロセッサ及び受け取り側プロセッサの動作シーケンスを簡略化することができる。ブート時に、マルチプロセッサシステム内の各プロセッサは、プロセッサ間割り込み関数等、Ｍｃａｌｌ命令を介して割り込みサービスルーチンを受け取ったときにカーネルモードで実行されていたであろう割り込みサービスルーチンに対応する関数を登録する。しかし、この動作は別法として、モデル固有レジスタの使用を含め、他のメカニズムにより実現することもできる。
【００１２】
図３は、送り側プロセッサのプロセッサ間割り込みシーケンスの一実施形態の図である。送り側プロセッサのプロセスは以下を含み得る。
１．線形アドレスＸへのプロセッサ間割り込み要求のメモリ書き込みを実行する３０５。
２．受け取り側プロセッサが、特定のメモリロケーションをポーリングして値が変更されたか否かを判断することにより、プロセッサ間割り込みを受け取ったことに対して肯定応答するのを待つ３１０。その値は、受け取り側プロセッサに対する割り込みサービスの一部として、書き込みにより変更される。この動作はプロセッサ間割り込みの送信の場合には必要なく、いくつかの実施形態では、動作は、メモリロケーションのポーリングなしで、又は割り込みの受信に対する肯定応答を受け取ることなく再開することができる。
３．メモリロケーションが値を変更していた場合、通常動作を再開する３１５。
【００１３】
図３に示す例は、割り込みが１つの受け取り側プロセッサに送られる例を示す。プロセッサ間割り込みは複数のプロセッサに送ることができる。一実施形態では、複数のプロセッサが単一のメモリロケーションを監視してプロセッサ間割り込みを検出する。別の実施形態では、各プロセッサが別個のメモリロケーションを監視することができる。プロセッサ間割り込みが複数のターゲットプロセッサに送られる場合、送り側プロセッサは、そのプロセッサが監視しているメモリロケーションへの書き込みを実行することができ、又は複数の書き込み、すなわちターゲットプロセッサが監視している各アドレスへの書き込みを実行することができる。本発明の一実施形態下では、実行される各書き込みはキャッシュメモリロケーションに対しての書き込みであるので、従来のシーケンスでのアンキャッシュタスク優先度レジスタアドレスへの書き込みよりもはるかに高速である。
【００１４】
図４は受け取り側プロセッサシーケンスの図である。本発明の一実施形態下では、Ｍｃａｌｌ動作を使用したプロセッサ間割り込みの受け取り側プロセッサの動作は以下を含み得る。
１．カーネルモードで、プロセッサ間割り込みを受信したときにリング遷移（ring transition）をイネーブルする状態を確立する４０５。
２．メモリロケーション＜Ｌｉｎｅａｒ  Ａｄｄｒｅｓｓ  Ｘ＞を監視する４１０。メモリロケーションへの書き込みはプロセッサ間割り込み要求を示す。
３．ユーザモード又はカーネルモードのいずれかでプロセッサ間割り込みを検出すると、現在の状態を保存する４２０。
４．割り込みＭｃａｌｌ＜ＩＰＩ  ＩＳＲ  Ｌｉｎｅａｒ  Ａｄｄｒｅｓｓ＞を実行する４２５。
５．関数の実行には、送り側プロセッサがポーリングしているメモリロケーションへの書き込みが含まれ得る４３０。
６．通常動作を再開する４３５。
【００１５】
この実施形態下では、Ｍｃａｌｌ命令は受け取り側プロセッサを、プロセッサが書き込みについて線形アドレスＸを監視し、書き込み動作が検出されると実行制御権をＩＰＩ  ＩＳＲ線形アドレスに移す状態にする。リング遷移は必要に応じて行われ、スタックにおいて適切な状態が確立され、プロセッサ優先度レベルが適切な優先度に上げられる。
【００１６】
図５は、第１の送り側プロセッサと第２の受け取り側プロセッサの間のシーケンスの一実施形態を示す。この例示では、送り側プロセッサ５０５はプロセッサ間割り込みを受け取り側プロセッサ５１０に送っている。他の例示では、割り込みを複数のプロセッサに送ることができる。送り側プロセッサ５０５はプロセッサ間割り込み要求５１５を図では線形アドレスＸ５２０として示すアドレスに書き込む。線形アドレスＸ５２０は受け取り側プロセッサ５１０によって監視される５３５。次いで、送り側プロセッサ５０５はＹ５３０として例示中に示すメモリロケーションをポーリングする５２５。メモリロケーションＹ５３０での値の変更は、受け取り側プロセッサ５１０が割り込み要求を受け取ったことの肯定応答を示す。しかし、受け取りに対する肯定応答は必ずしもプロセッサ間割り込み要求の送信に必要なものではなく、いくつかの実施形態では、送り側プロセッサ５０５は、メモリロケーションをポーリングすることなく、又は肯定応答を受け取ることなく通常動作を開始することができる。
【００１７】
線形アドレスＸ５２０を監視５３５している受け取り側プロセッサ５１０には、線形アドレスＸ５２０への書き込みが発生したときに割り込み要求が通知される。カーネルモードにおいて、受け取り側プロセッサは、プロセッサ間割り込みを受け取ったときに、リング遷移をイネーブルする状態を確立していることになる。割り込みを受け取ると、受け取り側プロセッサの現在の状態が保存される５４０。線形プロセッサが割り込みを行い、割り込みのための呼び出しはＭｃａｌｌ＜ＩＰＩ  ＩＳＲ  Ｌｉｎｅａｒ  Ａｄｄｒｅｓｓ＞５４５として示されている。関数の実行には、送り側プロセッサ５０５がポーリングしている５２５メモリロケーションＹ５３０への書き込み５５０を含み得る。メモリロケーションＹ５３０での値の変更が検出されると、送り側プロセッサは通常動作を再開することができる。プロセッサ間割り込みを完了すると、受け取り側プロセッサは通常動作を再開することができる。
【００１８】
本明細書に記載する技法は多くの異なる環境で使用することができる。図６は、本発明の一実施形態と併せて使用することができる例示的なコンピュータのブロック図である。本発明の一実施形態下では、コンピュータは組込みシステム又は他の専用コンピュータを含むことができる。組込みシステム又は他の専用コンピュータは、本明細書において述べる特定の構成要素及び特徴なしでも動作することができる。
【００１９】
本発明の一実施形態下では、コンピュータ６００は、情報を通信するためのバス６０５又は他の通信手段、及び第１のバス６０５に結合された情報を処理するための１つ又は複数のプロセッサ６１０（６１１、６１２として示し、６１３に続く）等の処理手段を備える。プロセッサ６１０のいずれも、プロセッサ間割り込みを他の１つ又は複数のプロセッサに提供することができる。各プロセッサは、プロセッサ間割り込み動作のための実行ユニット及びロジックを備えることができる。
【００２０】
コンピュータ６００は、情報及びプロセッサ６１０が実行する命令を記憶するためのメインメモリ６１５としてランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶装置をさらに備える。メインメモリ６１５は、プロセッサ６１０が命令を実行している間に変数又は他の中間情報を一時的に記憶するためにも使用することができる。コンピュータ６００は、プロセッサ６１０の静的な情報及び命令を記憶するための読み取り専用メモリ（ＲＯＭ）６２０及び／又は他の静的記憶装置を備えることもできる。
【００２１】
情報及び命令を記憶するためのデータ記憶装置６２５もコンピュータ６００のバス６０５に結合することができる。データ記憶装置６２５は、磁気ディスク又は光ディスク並びにそれに対応するドライブ、フラッシュメモリ若しくは他の不揮発性メモリ、又は他のメモリ装置を含むことができる。このような要素は共に結合してもよく、又は別個の構成要素であってもよく、コンピュータ６００の他の要素のパーツを利用する。
【００２２】
コンピュータ６００は、バス６０５を介して、情報をエンドユーザに向けて表示するための、液晶ディスプレイ（ＬＣＤ）又は他の表示技術等の表示装置６３０にも結合することができる。環境によっては、表示装置は、入力装置の少なくとも一部としても利用されるタッチスクリーンであることができる。環境によっては、表示装置６３０は、可聴情報を提供するためのスピーカ等の聴覚装置であることができ、又は聴覚装置を備えることができる。入力装置６４０をバス６０５に結合して、情報及び／又はコマンド選択をプロセッサ６１０に通信することができる。各種実施態様では、入力装置６４０はキーボード、キーパッド、タッチスクリーン及びスタイラス、音声作動システム、他の入力装置、又はこのような装置の組み合わせであることができる。備えることができる別のタイプのユーザ入力装置は、方向情報及びコマンド選択をプロセッサ６１０に通信するとともに表示装置６３０上のカーソルの移動を制御するための、マウス、トラックボール、又はカーソル方向キー等のカーソル制御装置６４５である。
【００２３】
通信装置６５０もバス６０５に結合することができる。特定の実施態様に応じて、通信装置６５０は送受信器、ワイヤレスモデム、ネットワークインタフェースカード、又は他のインタフェース装置を備えることができる。コンピュータ６００は、通信装置６５０を使用して、インターネット、ローカルエリアネットワーク、又は別の環境へのリンクを含むことができるネットワーク又は他の装置にリンクすることができる。
【００２４】
上記説明中、説明を目的として、本発明の完全な理解を提供するために多くの特定の詳細について述べた。しかし、本発明はこれら特定の詳細のいくつかなしで実施することができることが当業者に理解されよう。他の場合では、既知の構造及び装置についてはブロック図形態で示した。
【００２５】
本発明は各種ステップを含む。本発明のステップはハードウェア構成要素によって行うことも、又は命令がプログラムされた汎用又は専用のプロセッサ又は論理回路にステップを実行させるために使用することができる機械可読命令で具現することもできる。別法として、ステップはハードウェアとソフトウェアの組み合わせによって実行することができる。
【００２６】
本発明の部分は、命令を記憶した機械可読媒体を含むことができ、本発明によるプロセスを実行するようにコンピュータ（又は他の電子装置）をプログラムするために使用することができるコンピュータプログラム製品として提供することができる。機械可読媒体としては、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、及び光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、光カード、フラッシュメモリ、又は電子命令の記憶に適した他のタイプの媒体／機械可読媒体を挙げることができるがこれらに限定されない。さらに、本発明はコンピュータプログラム製品としてダウンロードすることもでき、この場合、プログラムは通信リンク（たとえば、モデム又はネットワーク接続）を介して、搬送波又は他の伝搬媒体に具現されるデータ信号によりリモートコンピュータから要求側のコンピュータに転送することができる。
【００２７】
方法の多くについて最も基本的な形態で説明したが、本発明の基本範囲から逸脱することなく、方法のいずれに対してもステップの追加又は削除を行うことができ、説明したメッセージのいずれに対しても情報の加減を行うことができる。多くの変更及び適合をさらに行うことが可能なことが当業者には明らかとなろう。特定の実施形態は本発明を限定するためではなく本発明を例示するために提供されている。本発明の範囲は上に提供した特定の例によってではなく以下の特許請求の範囲によってのみ限定されるべきである。
【００２８】
本明細書全体を通じての「一実施形態」又は「実施形態」への言及は、特定の特徴を本発明の実施に含めることができることを意味することも理解されたい。同様に、本発明の例示的な実施形態の上記説明では、本発明の各種特徴が時には、本開示を簡素化するべく、且つ本発明の各種態様のうちの１つ又は複数の理解を助けるべく、単一の実施形態、図、又は説明にグループ化されることも理解されたい。しかし、この開示方法は、請求する発明が各請求項に明示的に記載されるよりも多くの特徴を必要とするという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲に反映されるように、本発明の諸態様は上に開示した単一の実施形態のすべてに満たない特徴にある。したがって、これにより特許請求の範囲をこの説明に明示的に組み込み、各請求項は本発明の別個の実施形態として独立している。
【図面の簡単な説明】
【００２９】
【図１】送り側プロセッサシーケンスを示す図である。
【図２】受け取り側プロセッサシーケンスを示す図である。
【図３】送り側プロセッサシーケンスの一実施形態を示す図である。
【図４】受け取り側プロセッサシーケンスの一実施形態を示す図である。
【図５】プロセッサ間割り込みシーケンスの一実施形態を例証する図である。
【図６】マルチプロセッサコンピュータの一実施形態を示す図である。
【図１】
2007500898.tif 000003
【図２】
2007500898.tif 000004
【図３】
2007500898.tif 000005
【図４】
2007500898.tif 000006
【図５】
2007500898.tif 000007
【図６】
2007500898.tif 000008
【手続補正書】
【提出日】平成18年4月6日(2006.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサ間割り込み要求を第１のメモリロケーションに書き込む段階と、
前記第１のメモリロケーションを監視する段階と、
前記第１のメモリロケーションでの前記プロセッサ間割り込み要求を検出する段階と、
前記プロセッサ間割り込み要求の関数を呼び出す段階と、
前記プロセッサ間割り込み要求の前記関数を実行する段階と
を備える方法。
【請求項２】
前記プロセッサ間割り込み要求の受け取りに対して肯定応答すべく第２のメモリロケーションに書き込む段階
をさらに備える請求項１に記載の方法。
【請求項３】
前記プロセッサ間割り込み要求の受け取りに対する肯定応答について、前記第２のメモリロケーションを監視する段階
をさらに備える請求項２に記載の方法。
【請求項４】
前記プロセッサ間割り込み要求が検出されると、リング遷移をイネーブルする状態を確立する段階
をさらに備える請求項１に記載の方法。
【請求項５】
前記プロセッサ間割り込み要求が検出されると、現在の状態を保存する段階
をさらに備える請求項１に記載の方法。
【請求項６】
前記第１のメモリロケーションは線形メモリロケーションである
請求項１に記載の方法。
【請求項７】
前記第１のメモリロケーションは第１のプロセッサ用であり、前記第１のプロセッサは前記第１のメモリロケーションを監視する
請求項１に記載の方法。
【請求項８】
前記第１のメモリロケーションは複数のプロセッサ用であり、前記複数のプロセッサのそれぞれは前記第１のメモリロケーションを監視する
請求項１に記載の方法。
【請求項９】
前記プロセッサ間割り込み要求を複数のメモリロケーションに書き込む段階
をさらに備え、
前記複数のメモリロケーションのそれぞれは１つ又は複数のプロセッサによって監視される
請求項１に記載の方法。
【請求項１０】
プロセッサにより実行されると、前記プロセッサに、
プロセッサ間割り込み要求を第１のメモリロケーションに書き込む動作と、
前記第１のメモリロケーションを監視する動作と、
前記第１のメモリロケーションでの前記プロセッサ間割り込み要求を検出する動作と、
前記プロセッサ間割り込み要求の関数を呼び出す動作と、
前記プロセッサ間割り込み要求の前記関数を実行する動作と
を実行させる命令シーケンスを表すデータを記憶した機械可読媒体。
【請求項１１】
前記命令シーケンスは、前記プロセッサに、
前記プロセッサ間割り込み要求の受け取りに対して肯定応答すべく第２のメモリロケーションに書き込ませる動作と、
前記プロセッサ間割り込み要求の受け取りに対する前記肯定応答について、前記第２のメモリロケーションを監視する動作と
をさらに実行させる請求項１０に記載の媒体。
【請求項１２】
前記命令シーケンスは、前記プロセッサに、
プロセッサ間割り込み要求が検出されると、リング遷移をイネーブルする状態を確立する動作
をさらに実行させる請求項１０に記載の媒体。
【請求項１３】
前記第１のメモリロケーションは線形メモリロケーションである
請求項１０に記載の媒体。
【請求項１４】
前記第１のメモリロケーションは複数のプロセッサ用であり、該プロセッサのそれぞれは前記第１のメモリロケーションを監視する
請求項１０に記載の媒体。
【請求項１５】
前記命令シーケンスは、前記プロセッサに、
前記プロセッサ間割り込み要求を複数のメモリロケーションに書き込む動作であって、前記複数のメモリロケーションのそれぞれは１つ又は複数のプロセッサによって監視される動作
をさら実行させる請求項１０に記載の媒体。
【請求項１６】
コアと、
前記コアに結合され、前記コアへのプロセッサ間割り込みをラッチして前記コアに送出するプログラマブル割り込みコントローラ割り込み送出メカニズムであって、前記コアは割り込み記述子テーブルを介してベクトルをディスパッチする、プログラマブル割り込みコントローラ割り込み送出メカニズムと、
前記プロセッサを、前記プロセッサがメモリロケーションへの書き込みについて監視し、前記書き込みが検出されると、前記割り込みを実行すべく割り込みサービスルーチンに実行制御権を移す状態にする命令を実行する、実行ユニット及びロジックと
を備えるプロセッサ。
【請求項１７】
前記命令は、アドレスを特定するストア命令であり、
前記プロセッサは、強制呼び出しを介して前記割り込みサービスルーチンに実行制御権を移す
請求項１６に記載のプロセッサ。
【請求項１８】
前記書き込みは、キャッシュメモリロケーションに対しての書き込みである
請求項１６に記載のプロセッサ。
【請求項１９】
前記プロセッサは、プログラマブル割り込みコントローラを有さない
請求項１６に記載のプロセッサ。
【請求項２０】
前記状態は、必要に応じてカーネルモードにリング遷移をイネーブルする状態である
請求項１６に記載のプロセッサ。
【請求項２１】
前記命令は、線形アドレスで前記メモリロケーションを特定する
請求項１６に記載のプロセッサ。
【請求項２２】
コアと、
前記コアに結合された、割り込みコマンドレジスタを有するプログラマブル割り込みコントローラであって、
前記コアは割り込みコマンドを前記割り込みコマンドレジスタに書き込み、
前記書き込みは、非キャッシュロケーションへの書き込みであり、
前記割り込みコマンドは、ターゲットプロセッサ及び前記ターゲットプロセッサへの割り込みのための割り込みベクトルを指定し、
前記割り込みベクトルは、前記ターゲットプロセッサにおいて実行される割り込みサービスルーチン（ＩＳＲ）に対応する、プログラマブル割り込みコントローラと、
命令を実行する実行ユニット及びロジックであって、前記命令の実行は前記ターゲットプロセッサによって監視されるメモリロケーションへのメモリ書き込みを発生させ、前記ターゲットプロセッサは、前記書き込み動作が検出されると、前記割り込みサービスルーチンに実行制御権を移す、実行ユニット及びロジックと
を備えるプロセッサ。
【請求項２３】
前記メモリ書き込みは、プロセッサ間割り込み要求であり、前記ターゲットプロセッサは、前記割り込みサービスルーチンへの強制呼び出しを介して実行制御権を移す
請求項２２に記載のプロセッサ。
【請求項２４】
前記命令はストア命令である
請求項２２に記載のプロセッサ。
【請求項２５】
前記メモリへの書き込みは、キャッシュメモリロケーションに対しての書き込みである
請求項２２に記載のプロセッサ。
【請求項２６】
前記プロセッサは、プログラマブル割り込みコントローラを有さない
請求項２２に記載のプロセッサ。
【請求項２７】
前記命令は、線形アドレスで前記メモリロケーションを特定する
請求項２２に記載のプロセッサ。
【請求項２８】
バスに結合され、割り込みサービスルーチンを記憶するメモリと、
前記バスに結合され、ストア命令を実行する実行ユニット及びロジックを有する第１プロセッサであって、前記ストア命令の実行は、メモリロケーションへのメモリ書き込みを発生させる、第１プロセッサと、
前記バスに結合され、命令を実行する実行ユニット及びロジックを有する第２プロセッサであって、前記命令は、前記第２プロセッサを、前記メモリロケーションへの書き込みについて監視し、前記書き込み動作が検出されると、前記割り込みを実行すべく割り込みサービスルーチンに実行制御権を移す状態にする、第２プロセッサと
を備えるシステム。
【請求項２９】
前記第２プロセッサは、前記割り込みサービスルーチンへの強制呼び出しを介して実行制御権を移す
請求項２８に記載のシステム。
【請求項３０】
前記強制呼び出しはブート時に登録される
請求項２８に記載のシステム。
【請求項３１】
前記書き込みは、キャッシュメモリロケーションへの書き込みである
請求項２８に記載のシステム。
【請求項３２】
前記状態はまた、必要に応じてカーネルモードにリング遷移をイネーブルする状態である
請求項２８に記載のシステム。
【請求項３３】
前記命令は、線形アドレスで前記メモリロケーションを特定する
請求項２８に記載のシステム。
【国際調査報告】
2007500898.tif 000009
2007500898.tif 000010
2007500898.tif 000011