(57)【要約】      （修正有）【課題】コンピュータシステム内で効率的な割り込み通信を可能とする技術を提供する。【解決手段】拡張プログラム制御割り込みコントローラ（ＡＰＩＣ）が、メモリマップドＩ／Ｏ（ＭＭＩＯ）を利用することなく、レガシー割り込み制御インタフェースと共存する割り込み制御インタフェース（ＩＣＩ）を含み、、様々なインタフェース命令または処理を利用してＡＰＩＣインタフェースレジスタ内の一式のビットを介してインタフェースされる。【選択図】図１
2014029702.tif 000002
【特許請求の範囲】
【請求項１】
割り込みの宛先識別（ＩＤ）を格納する第１のレジスタと、
割り込みベクトルと配信ステータスビットを格納する第２のレジスタと、
割り込みコマンドレジスタ（ＩＣＲ）オフセットアドレスを格納する第３のレジスタと、
少なくとも第１のエージェントから少なくとも第２のエージェントへ割り込み情報を通信するロジックを備え、
前記ロジックは、メモリマップドＩ／Ｏ（ＭＭＩＯ）領域にアクセスすることなく、１つの命令により操作される割り込み情報を通信し、レガシー割り込み制御インタフェースと共存する割り込み制御インタフェース（ＩＣＩ）を含み、
前記第１のエージェントは、前記配信ステータスビットが前記ＩＣＲの利用可能を示すことに応じて、前記宛先ＩＤの一部を第１のメモリ領域に格納し、前記第１および第２のレジスタの内容を前記第３のレジスタの前記ＩＣＲオフセットアドレスに書き込む命令を実行し、
前記第２のエージェントは、前記割り込みベクトルとディアサートされた前記配信ステータスビットを第２のメモリ領域に格納する装置。
【請求項２】
前記割り込み制御インタフェースは、少なくとも１つの未完了の割り込みを示すステータス情報を格納する前記ＩＣＲを含む請求項１に記載の装置。
【請求項３】
前記ＩＣＲはベクトルフィールドを含む請求項１または２に記載の装置。
【請求項４】
前記ＩＣＲはモードフィールドを含む請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記命令は、それぞれモデル専用レジスタ（ＭＳＲ）に対する情報の読み出し処理または書き込み処理に対応する請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記割り込み制御インタフェースは、拡張プログラム制御割り込みコントローラ（ＡＰＩＣ）との間で割り込み情報の交換を行う請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記割り込み制御インタフェースは、前記ＡＰＩＣとの間のレガシー通信および前記ＡＰＩＣとの間の非レガシー通信をサポートする請求項６に記載の装置。
【請求項８】
前記ＡＰＩＣは、各々が異なるエージェントに対応している複数のローカルＡＰＩＣの１つである請求項６または７に記載の装置。
【請求項９】
メモリマップドＩ／Ｏ（ＭＭＩＯ）ストレージを利用することなく１以上のモデル専用レジスタ（ＭＳＲ）を含む割り込みコマンドレジスタ（ＩＣＲ）を介して割り込みを通信する段階を備え、
前記割り込みを通信する段階は、
第１の汎用レジスタに前記割り込みの対象アドレスを格納する段階と、
第２の汎用レジスタに割り込みモード、ベクトル情報、および配信ステータスビットを格納する段階と、
第３の汎用レジスタにＩＣＲオフセットアドレスを格納する段階と、
前記ＩＣＲオフセットアドレスに対して前記対象アドレスと前記モードおよびベクトル情報とを書き込む命令を実行する段階と、
レガシー割り込み制御インタフェースと共存する段階と、
を有し、
前記共存する段階は、
前記配信ステータスビットが前記ＩＣＲの利用可能を示すことに応じて、前記対象アドレスの一部を第１のメモリ領域に格納する第１のオペレーションを実行する段階と、
前記ＩＣＲオフセットアドレスに書き込むことに応じて、ディアサートされた前記配信ステータスビットを第２のメモリ領域に格納する第２のオペレーションを実行する段階と
を含む方法。
【請求項１０】
前記割り込みをレガシー技術を利用して通信する場合、レガシーをサポートするプロトコルに従って前記割り込みを通信する段階をさらに備える請求項９に記載の方法。
【請求項１１】
前記レガシーをサポートするプロトコルは、前記ＩＣＲ用のインタフェースが利用可能になるまで、前記配信ステータスビットをポーリングすることを含む請求項９または１０に記載の方法。
【請求項１２】
前記レガシーをサポートするプロトコルはさらに、前記配信ステータスビットがディアサートされている間、キャッシュされていないＭＭＩＯ読み出しを実行する請求項９から１１のいずれか一項に記載の方法。
【請求項１３】
前記レガシーをサポートするプロトコルはさらに、前記ベクトルおよびモード情報を前記ＩＣＲ内の対応するフィールドに書き込んでレガシー割り込みの特徴を示すことを含む請求項９から１２のいずれか一項に記載の方法。
【請求項１４】
前記ＩＣＲの前記モードおよびベクトルのフィールドは、キャッシュされていないＭＭＩＯ書き込み処理を利用して書き込まれる請求項９から１３のいずれか一項に記載の方法。
【請求項１５】
前記レガシーをサポートするプロトコルは、前記割り込みが前記ＩＣＲに対応する拡張プログラム制御割り込みコントローラ（ＡＰＩＣ）を退出するまで、前記ＩＣＲの前記配信ステータスビットをポーリングすることを含む請求項９から１４のいずれか一項に記載の方法。
【請求項１６】
読み出し命令および書き込み命令を少なくとも１つずつ格納するメモリと、
複数の拡張プログラム制御割り込みコントローラ（ＡＰＩＣ）を有する複数のプロセッサと
を備え、
前記複数のＡＰＩＣの各々は、前記メモリ内のメモリマップドＩ／Ｏ（ＭＭＩＯ）アドレス空間に対して割り込み情報を読み書きすることなく、前記読み出し命令および書き込み命令を利用して割り込みコマンドレジスタ（ＩＣＲ）インタフェースを介して前記割り込み情報を通信可能であり、
前記複数のプロセッサはレガシーＩＣＲインタフェースと共存可能であり、
前記複数のプロセッサのうちの第１のプロセッサは、配信ステータスビットが前記ＩＣＲの利用可能を示すことに応じて、ＩＣＲの宛先ＩＤの一部を第１のメモリ領域に格納し、
前記複数のプロセッサのうちの第２のプロセッサは、ディアサートされた前記配信ステータスビットを第２のメモリ領域に格納するシステム。
【請求項１７】
前記ＩＣＲはベクトルフィールドを含む請求項１６に記載のシステム。
【請求項１８】
前記ＩＣＲはモードフィールドを含む請求項１７に記載のシステム。
【請求項１９】
前記読み出し命令および書き込み命令は、モデル専用レジスタ（ＭＳＲ）に対する情報の読み出し処理または書き込み処理にそれぞれ対応する請求項１８に記載のシステム。
【請求項２０】
前記割り込み制御インタフェースは、前記複数のＡＰＩＣとの間のレガシー通信および前記複数のＡＰＩＣとの間の非レガシー通信をサポートする請求項１９に記載のシステム。
【請求項２１】
前記複数のＡＰＩＣは異なるプロセッサに対応する請求項２０に記載のシステム。
【請求項２２】
前記第２のプロセッサは、ディアサートされた前記配信ステータスビットを、キャッシュされていないＭＩＭＯ書き込みオペレーションを用いて前記第２のメモリ領域に格納する請求項１６から２１のいずれか一項に記載のシステム。
【請求項２３】
前記第１のプロセッサは、前記宛先ＩＤの一部を、キャッシュされていないＭＩＭＯ書き込みオペレーションを用いて前記第１のメモリ領域に格納する請求項１６から２２のいずれか一項に記載のシステム。
【請求項２４】
前記第１および第２のオペレーションは、キャッシュされていないＭＩＭＯ書き込みオペレーションである請求項９から１５のいずれか一項に記載の方法。
【請求項２５】
前記第２のエージェントは、前記割り込みベクトルとディアサートされた前記配信ステータスビットを、キャッシュされていないＭＩＭＯ書き込みオペレーションを用いて第２のメモリ領域に格納する請求項１から８のいずれか一項に記載の装置。
【請求項２６】
前記第１のエージェントは、前記宛先ＩＤの一部を、キャッシュされていないＭＩＭＯ書き込みオペレーションを用いて第１のメモリ領域に格納する請求項１から８および２５のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して情報処理分野に係り、より詳しくは、コンピューティングシステムおよびマイクロプロセッサにおける割り込み通信分野に係る。
【背景技術】
【０００２】
プロセッサがより多くの数のコンピューティングコアを含むようになっている昨今では、異質および同質いずれであっても、コンピュータシステムがより多くのプロセッサを含み、割り込み管理が益々難しくなってきている。先行技術の中には、メモリマップドＩ／Ｏ（ＭＭＩＯ）スキームを利用して割り込みを管理するものもあり、この技術によると、プロセッサまたはコア（本明細書では概して「エージェント」と称する）が、メモリのある領域（例えばＤＲＡＭ）を利用して、特別に割り込み通信情報用に留保されている割り込み情報を通信する。例えば、拡張プログラム制御割り込みコントローラ（ＡＰＩＣ）がプログラミングされる先行技術の割り込み通信技術の一つに、プログラムされる情報を、ＭＭＩＯの領域を利用してＡＰＩＣに通信する、というものがある。
【０００３】
割り込み情報の、ＭＭＩＯを利用して行うＡＰＩＣに対する送受信は、幾つかの欠点を有しており、これはエージェントの数ひいては割り込みトラフィックの数が増加するにつれて悪化する。例えばＭＭＩＯアクセスでは、ＡＰＩＣに関するメモリ領域が、キャッシュされていない（ＵＣ）アクセス属性でマッピングされる必要がある場合があり、これは、高い性能のオーバヘッドが関与する。ＵＣインタフェースも、シリアライゼーション処理を実行するが、これはＡＰＩＣレジスタの大きなサブセットには必要がない。
【０００４】
ＭＭＩＯインタフェースの利用は、さらに、ポステッドライトセマンティックスの利用が必要であり、エージェントに対して、ＡＰＩＣに対する読み書き順序の制限的制御を可能とするので、基本的な割り込みに関する命令に必要な多数の読み書きを伴う割り込みの送信効率に影響を与える場合がある。例えば、一部の先行技術におけるＭＭＩＯ実装例におけるプロセッサ間割り込み（ＩＰＩ）を利用するプロセッサ間の割り込み送信では、ソフトウェアが、割り込みがローカルＡＰＩＣを退出したことを保証する必要がない場合には、１個のＵＣ読み出しおよび２個のＵＣ書き込みが必要となり、ソフトウェアが、割り込みがローカルＡＰＩＣを退出したことを保証する必要がある場合には、２個のＵＣ読み出しおよび２個のＵＣ書き込みが必要となる。
【０００５】
先行技術のＭＭＩＯインタフェースは、割り込み配信のためにシステムソフトウェアにとって好適なメカニズムを効率よく提供する機能を制限することがある。具体例には、割り込み優先レベルの変更処理が含まれ、これは、一部の先行技術の実装では、システムソフトウェアがタスク優先レジスタ（ＴＰＲ）に書き込むことにより、および、システムソフトウェアがＡＰＩＣの割り込みの終了（ＥＯＩ）レジスタに書き込みを行うことにより行うことのできる「ＥＯＩ処理」により行うことができる。システムソフトウェアには、これらの処理を、これらの処理の前に確定的にポストされる全ての割り込みが、これら処理の直後に提起されるように、優先度を付け直す処理の完了と結び付けられて完了することが望まれる。これらの保証がないと、システムソフトウェアは、ポーリングベースのメカニズムを十分に利用することができなくなり、ＡＰＩＣトラフィックの増加につながる場合がある。
【０００６】
ＭＭＩＯベースの割り込み情報の利用も、コンピュータシステム内の他の特徴に影響を及ぼすことがある。例えば先行技術のＭＭＩＯ割り込み通信インタフェース技術の利用によって、仮想化の複雑性が増し、ＡＰＩＣアクセスの仮想化にまつわるオーバヘッドが増す場合がある。例えば、割り込みコントローラにアクセスする際に利用される命令は、仮想マシンモニタ（ＶＭＭ）を利用してコンピュータシステムにおける仮想化をサポートすることを必要とする場合がある。ＭＭＩＯ処理について前述したオーバヘッドは、ＶＭＭがシステムの仮想マシンを入退出する際に利用するこれらの事象により複合化されうる。
【０００７】
最後に、ＡＰＩＣインタフェース内に留保されるビットの検知および実行は、ＭＭＩＯによりインタフェースされる場合に実装コストが高くなり、これはＡＰＩＣを利用するエージェント数が増えると顕著な問題となる。一部の先行技術の割り込み通信技術によると、レガシーソフトウェアによるレジスタのいずれかに対する書き込みが誤ったものとなる可能性があることから、将来拡張可能なアーキテクチャ用に留保されているビット位置の利用が制限されうる。
【０００８】
少なくとも上述した理由から、一部の先行技術の割り込み通信技術は、割り込み情報の通信にＭＭＩＯを利用するものも含めて、マルチコアプロセッサのプロセッサコア数、またはマルチプロセッサシステムのプロセッサ数の増加をサポートする目的に適したものではない。
【０００９】
本発明の実施形態は、添付図面において限定ではない例示により示されており、図面間において同様の参照番号は同様の部材を示す。
【図面の簡単な説明】
【００１０】
【図１】本発明の少なくとも１つの実施形態が利用されうるマイクロプロセッサのブロック図を示す。
【図２】本発明の少なくとも１つの実施形態が利用されうる共有バスコンピュータシステムのブロック図を示す。
【図３】本発明の少なくとも１つの実施形態が利用されうるポイントツーポイント・インターコネクト・コンピュータシステムのブロック図を示す。
【図４】本発明の少なくとも１つの実施形態が実装されうるロジックのブロック図を示す。
【図５Ａ】本発明の少なくとも１つの実施形態を実行する際に利用可能な処理のフロー図を示す。
【図５Ｂ】本発明の少なくとも１つの実施形態を実行する際に利用可能な処理のフロー図を示す。
【発明を実施するための形態】
【００１１】
図１は、本発明の少なくとも１つの実施形態が利用されうるマイクロプロセッサのブロック図を示す。具体的には、図１は、各々に対してローカルキャッシュ１０７および１１３がそれぞれ関連付けられた１以上のプロセッサコア１０５および１１０を有するマイクロプロセッサ１００を示す。さらに図１は、ローカルキャッシュ１０７および１１３の各々に格納されている情報の少なくとも一部の様々なバージョンを格納しうる共有キャッシュメモリ１１５を示している。一部の実施形態では、マイクロプロセッサ１００はさらに、図１に示していない他のロジック（例えば、集積メモリコントローラ、集積グラフィックスコントローラ、および、Ｉ／Ｏ制御等のコンピュータシステム内の他の機能を実行する他のロジック）を含むことができる。一実施形態では、マルチプロセッサシステムの各マイクロプロセッサ、あるいは、マルチコアプロセッサの各プロセッサコアは、少なくとも１つの実施形態における割り込み通信技術を可能とするロジック１１９を含む、あるいはこれと関連付けられている。ロジックには、一部の先行技術の実装例におけるものよりも効率的に複数のコアまたはプロセッサ間の割り込み通信を行わせることのできる回路、ソフトウェア、あるいはこれら両方が含まれている。
【００１２】
一実施形態では、ロジック１１９は、ＡＰＩＣインタフェースレジスタ（１つまたは複数）が含まれていてよく、この内容は、ＭＭＩＯを利用することなく一式の標準的または実装専用命令により操作または読み出すことができる。例えば一実施形態では、ロジック１１９は、ネーティブ命令セットアーキテクチャ（ＩＳＡ）を利用して通信可能なレジスタインタフェースを含む。一実施形態では、レジスタ（１または複数）、あるいはネーティブＩＳＡを介してインタフェース可能なその他の格納装置のサポートにより、割り込み通信にまつわるアクセスサイクルおよびオーバヘッドの数を一部の先行技術よりも低減させることができる。一実施形態では、先行技術であるＭＳＲアドレスを利用して、先行技術である読み書き処理（例えばＲＤＭＳＲおよびＷＲＭＳＲ命令）を介して、モデル専用レジスタ（１つまたは複数）（ＭＳＲ）を利用したり、これにアクセスしたりすることができる。他の実施形態では、新しい読み書き命令一式およびアドレス空間が割り込みコントローラレジスタに設けられる。一実施形態では、割り込み情報の通信に必要な、先行技術よりもアクセスサイクル数を低減させることのできる新しいセマンティックスが、新しいＡＰＩＣレジスタインタフェース内で明示的にサポートされる。一実施形態では、既存のマイクロアーキテクチャメカニズムを留保されているビットのチェックに利用して、将来のアーキテクチャ拡張のために留保されているレジスタの利用を保証することができる。一実施形態では、一部のシステムソフトウェアが引き続きレガシーＭＭＩＯインタフェースを利用してよい。従って少なくとも１つの実施形態が、レガシーインタフェースおよびここで説明する新たなＡＰＩＣレジスタインタフェースの両方を提供する場合がある。一実施形態では、ＭＳＲを利用した新たなＡＰＩＣレジスタインタフェースの実装が、比較的実装コストの増分が少ないレガシーインタフェースと共存する場合がある。
【００１３】
一例として図２は、本発明の少なくとも１つの実施形態が利用されうるフロントサイドバス（ＦＳＢ）コンピュータシステムを示す。任意のプロセッサ２０１、２０５、２１０、または２１５は、プロセッサコア２２３、２２７、２３３、２３７、２４３、２４７、２５３、２５７のいずれか１つのなかの、またはこれに関連付けられた任意のローカルレベル１（Ｌ１）キャッシュメモリ２２０、２２５、２３０、２３５、２４０、２４５、２５０、２５５からの情報にアクセスすることができる。さらに任意のプロセッサ２０１、２０５、２１０、または２１５は、任意の共有のレベル２（Ｌ２）キャッシュ２０３、２０７、２１３、２１７、またはシステムメモリ２６０からの情報に、チップセット２６５を介してアクセスすることができる。図２に示すプロセッサのうち１以上は、少なくとも１つの実施形態における割り込み通信技術を可能とするロジック２１９を含む、またはこれと関連付けられていてよい。
【００１４】
図２に示すＦＳＢコンピュータシステムに加えて、他のシステム構成を、本発明の様々な実施形態との関連で利用することもできる（例としては、ポイントツーポイント（Ｐ２Ｐ）インターコネクトシステムおよびリングインターコネクトシステムが挙げられる）。例えば図３のＰ２Ｐは複数のプロセッサを含んでよく、これらのうちプロセッサ３７０、３８０という２つのみを例として図示している。プロセッサ３７０、３８０は各々が、メモリ３２、３４と接続するためのローカルメモリコントローラハブ（ＭＣＨ）３７２、３８２を含んでよい。プロセッサ３７０、３８０は、ポイントツーポイント（ＰｔＰ）インタフェース回路３７８、３８８を利用して、ＰｔＰインタフェース３５０を介してデータを交換することができる。プロセッサ３７０、３８０は各々、ポイントツーポイントインタフェース回路３７６、３９４、３８６、３９８を利用して個々のＰｔＰインタフェース３５２、３５４を介してチップセット３９０とデータを交換することができる。チップセット３９０は、さらに、高性能グラフィックスインタフェース３３９を介して高性能グラフィックス回路３３８とデータを交換することもできる。本発明の実施形態は、任意の数のプロセッサコアを有する任意のプロセッサ内、または図３のＰｔＰバスエージェント各々内に設けられてよい。一実施形態では、任意のプロセッサコアが、ローカルキャッシュメモリ（不図示）を含む、またはこれと関連付けられてよい。さらに共有キャッシュ（不図示）が、両プロセッサの外部にあるいずれかのプロセッサに含まれていて、しかもｐ２ｐインターコネクトを介してプロセッサに接続され、プロセッサのうちいずれかまたは両方におけるローカルキャッシュ情報を、プロセッサが低電力モードになった場合に共有キャッシュに格納するようにしてよい。図３の複数のプロセッサまたはコアの１以上は、少なくとも１つの実施形態における割り込み通信技術を可能とするロジック３１９を含む、またはこれと関連付けられてよい。
【００１５】
図４は、本発明の少なくとも１つの実施形態を実行するロジックを示す。具体的には図４は、一実施形態における割り込み通信を可能とする情報を格納する際に利用可能な２つのＡＰＩＣ割り込みコマンドレジスタ（ＩＣＲ）を示している。例えばレジスタ４０１は、一実施形態において、留保されているビット３１−２０、および、ＡＰＩＣ通信を可能とする様々な他の制御ビットを含む。加えて、図４は、割り込み対象エージェントを識別する３２ビットの宛先識別（ＩＤ）フィールドを格納するレジスタ４０５を含む。一部の実施形態では、宛先ＩＤフィールドは、他の制御フィールドおよびビットと同じレジスタ４０１内にあってよい。さらに一部の実施形態では、ＩＣＲ４０１および４０５がＭＳＲであり、他の実施形態では他のレジスタまたは格納領域である。一実施形態では、レジスタ４０１および４０５に格納されているビットは、様々な先行技術におけるＭＳＲ読み書き命令を利用して操作したり読み出してよく、他の実施形態では、新たな命令を定義して、レジスタ４０１および４０５の内容の操作および読み出しに利用することもできる。
【００１６】
図４に示されている、含まれているレジスタおよび情報は、一実施形態では、単一のレジスタ書き込みへの割り込み処理を低減させる目的で利用することができ、これは、ポステッドライトセマンティックスを利用する先行技術で、１個のＵＣ読み出しおよび２個のＵＣ書き込みが最低でも必要となる（ソフトウェアが、割り込みがローカルＡＰＩＣを退出した旨の保証を必要としない場合）、あるいは、２個のＵＣ読み出しおよび２個のＵＣ書き込みが必要となる（ソフトウェアが、割り込みがローカルＡＰＩＣを退出した旨の保証を必要とする場合）に必要となるのと対照的である。
【００１７】
一実施形態では、プロセッサは、プロセッサ間割り込み（ＩＰＩ）を、ローカルＡＰＩＣの割り込みコマンドレジスタに書き込みを行うことにより生成することができる。一実施形態では、ＡＰＩＣ  ＩＣＲは、読み出し専用の属性であってよい、この割り込みの配信のステータスを示すレガシー配信ステータスビット（図４のビット１２）を含む。一実施形態では、ＩＣＲ４０１のビット１２の値が０である場合、現在はアクティビティがないことを示し、値が１である場合、送信が未完了であることを示す。一実施形態では、割り込みが送信された後で、配信ステータスビット（ＩＣＲ４０１のビット１２）をクリアする。レガシーインタフェースをサポートする場合には、システムソフトウェアは、ＩＰＩの送信前に、配信ステータスビットがクリアされるまでビジー待ちする場合もある。同様に、送信処理のセマンティックスが、ローカルＡＰＩＣユニットからの割り込み送信を必要とする場合にも、システムソフトウェアは、配信ステータスビットがクリアされるまでビジー待ちする場合がある。一実施形態におけるＡＰＩＣインタフェースでは、図４に示すようにＩＣＲ４０１が単一の６４ビットＭＳＲに組み合わせられる。ＩＣＲ４０１への単一のＭＳＲ書き込みを利用することで割り込みがディスパッチされる。特に一実施形態におけるＡＰＩＣ  ＩＣＲ４０１および４０５へのレジスタインタフェースの場合、システムソフトウェアは、ＩＰＩを送信するためにＩＣＲに書き込みを行う前に配信ステータスビットのステータスをチェックする必要がない。
【００１８】
一実施形態では、特定のセマンティックスを、典型的な割り込みコントローラ関連の処理（特にＴＰＲ書き込みおよびＥＯＩ書き込み）に関連付けることで（あるいはこれより効率的な実装を行うことで）、割り込み関連の通信およびトラフィックの効率性を高め、ソフトウェアに必要となる修正量を最低に抑えることができるようになる。例えば、図４に示すＩＣＲを介したＴＰＲレジスタへの読み書き用のセマンティックスは、プロセッサの優先度の変更による優先度を付け直す処理の結果が、ＴＰＲの実行の後の次の命令の前にプロセッサに確実に反映されるようにすることができる。この結果の配信可能な割り込みは、ＴＰＲ書き込みの後の命令境界で行われる。図４のＩＣＲを介したＥＯＩレジスタへのアクセスにより、ＥＯＩによる優先度を付け直す処理の結果が、ＥＯＩの実行の後の次の命令の前に、プロセッサに確実に反映されるようにする。この結果生じる配信可能な割り込みはいずれも、ＥＯＩ書き込みの次の命令の境界で行われる。
【００１９】
一実施形態では、図４に示されるＩＣＲを実装するためのＭＳＲの利用を、レガシー実装におけるものと同じアドレス空間にマッピングすることができる。例えば一実施形態では、レガシーレジスタオフセットとＭＳＲオフセットとの間の一対一の対応を、セマンティックの行動が変化するレジスタを除いて維持する。一実施形態では、レガシーレジスタは、１２８ビットの境界における３２ビットのレジスタであってよい。しかし、１２８ビットの境界上の３２ビットのレジスタが６４ビットのＭＳＲに対応している一実施形態では、ＭＳＲレジスタオフセットを「ＭＳＲレジスタオフセット＝レガシーレジスタオフセット／１６」という公式に基づいて計算することができる。
【００２０】
しかし一実施形態におけるＩＣＲでは、図４に示すように、２つの３２ビットのレガシーレジスタを１つの６４ビットのＭＳＲに組み合わせる。
【００２１】
一実施形態では、本発明は、先行技術におけるＭＭＩＯベースのＡＰＩＣとの間のインタフェースに関する問題を解決することができる。さらに、本発明の実施形態の少なくとも１つの実装例は、少なくとも１つの実施形態に関連するＩＣＲおよびレガシーの両方をサポートする必要のあるシステムにおいて実装コストの増分を低く抑えることもできる。
【００２２】
図５Ａは、実施形態を利用するプロセッサまたはシステム構成に関らず、本発明の少なくとも１つの実施形態とともに利用可能な処理のフロー図を示す。具体的には図５Ａは、一実施形態において、レガシー技術を利用して割り込みを通信する場合に、レガシーによりサポートされるプロトコルを介して割り込みを通信する技術を示す。処理５０１Ａで、配信ステータスビット（図４のビット１２）が、ＩＣＲインタフェースが利用可能となるまでポーリングされる。処理５０５Ａでステータスビットがディアサートされている間、５１０ＡでレガシーＵＣ  ＭＭＩＯ読み出しを行う。一実施形態では、レガシーレジスタが３２ビット長である場合、高いおよび低いモードで宛先を書き込むことにより、割り込みを送信する。例えば、割り込み対象アドレスを汎用レジスタ（例えばｘ８６プロセッサの「ＥＡＸ」）に書き込む。レガシーモードに準拠させるべく、処理５１５Ａで、ＩＣＲ宛先ＩＤの上位の部分を、ＵＣ  ＭＭＩＯ書き込みを利用して書き込む。処理５２０Ａで、ＵＣ  ＭＭＩＯ書き込みをＩＣＲの下位（例えば下位３２ビット）に書き込むことで、ＩＣＲのモードおよびベクトルフィールドを書き込んで様々なレガシー割り込み特徴を示す。処理５２５Ａで、割り込みがローカルＡＰＩＣを退出するまで、ＩＣＲのステータスフィールドがディアサートされている間ＵＣ  ＭＭＩＯ読み出しのループを行うことで、ＩＣＲをポーリングする。
【００２３】
図５Ｂは、実施形態を利用するプロセッサまたはシステム構成に関らず、本発明の少なくとも１つの実施形態とともに利用可能な処理のフロー図を示す。一実施形態では、図４に示す１以上もＭＳＲからなるＩＣＲインタフェースを介して割り込みを通信するが、ここで宛先フィールドは上位３２ビットであり、モード／ベクトル情報は下位３２ビットである。処理５０１Ｂでは、割り込みの対象アドレスを第１の汎用レジスタ（例えば「ＥＤＸ」）に格納し、処理５０５Ｂで、モードおよびベクトル情報を第２の汎用レジスタ（例えば「ＥＡＸ」）に格納する。処理５１０Ｂで、ＭＳＲアドレス空間のＩＣＲに対応するＩＣＲオフセットアドレスを、第３の汎用レジスタ（例えば「ＥＣＸ」）に格納する。処理５１５Ｂで、第１および第２の汎用レジスタ内の、またはこれらが示す内容を、第３の汎用レジスタに格納されているアドレスに書き込む命令を実行する。一実施形態では、命令は先行技術のＭＳＲ書き込み命令（「ＷＲＭＳＲ」）である。他の実施形態では、命令は、上述した技術を実装するプロセッサのＩＳＡに特化して定義された新たな命令であってもよい。
【００２４】
少なくとも１つの実施形態の１以上の側面は、プロセッサ内の様々なロジックを表す機械可読媒体に格納された代表的なデータにより実装することができ、機械により読み出されると、機械に、ここで説明する技術を行わせるロジックを生成させる。「ＩＰコア」として知られているような表現は、有形の機械可読媒体（「テープ」）に格納されて、様々なカスタマーまたは製造施設に供給された後に製造機械へ搭載され、ここで実際のロジックまたはプロセッサが生成される。
【００２５】
マイクロアーキテクチャにおけるメモリ領域アクセスを行うための方法および装置を記載してきた。上述した記載は、例示を意図しており限定は意図していない。当業者であれば上述の記載を読むことで数多くの他の実施形態を想到するであろう。従って本発明の範囲は、添付請求項、および、請求項の均等物の全範囲による定義が意図されている。
【図１】
2014029702.tif 000003
【図２】
2014029702.tif 000004
【図３】
2014029702.tif 000005
【図４】
2014029702.tif 000006
【図５Ａ】
2014029702.tif 000007
【図５Ｂ】
2014029702.tif 000008
【手続補正書】
【提出日】平成25年9月10日(2013.9.10)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
割り込みの宛先識別（ＩＤ）を格納する第１のレジスタと、
割り込みベクトルを格納する第２のレジスタと、
割り込みコマンドレジスタ（ＩＣＲ）オフセットアドレスを格納する第３のレジスタと、
少なくとも第１のエージェントから少なくとも第２のエージェントへ割り込み情報を通信するロジックを備え、
前記ロジックは、メモリマップドＩ／Ｏ（ＭＭＩＯ）領域にアクセスすることなく、１つの命令により操作される割り込み情報を通信し、レガシー割り込み制御インタフェースと共存する割り込み制御インタフェース（ＩＣＩ）を含み、
前記第１のエージェントは、前記ＩＣＲの利用可能の決定に応じて、キャッシュされていないＭＭＩＯの書き込みオペレーションを用いて、前記宛先ＩＤの一部を第１のメモリ領域に格納し、前記第１および第２のレジスタの内容を前記第３のレジスタの前記ＩＣＲオフセットアドレスに書き込む前記命令を実行し、
前記第２のエージェントは、前記割り込みベクトルを第２のメモリ領域に格納する装置。
【請求項２】
前記第２のエージェントは、キャッシュされていないＭＭＩＯの書き込みオペレーションを用いて、前記割り込みベクトルとディアサートされた配信ステータスビットを第２のメモリ領域に格納する請求項１に記載の装置。
【請求項３】
前記ＩＣＲの利用可能の決定は、前記ＩＣＲの利用可能を示す配信ステータスビットに基づく請求項１または２に記載の装置。
【請求項４】
前記ＩＣＩは、少なくとも１つの未完了割り込みを示すステータス情報を格納する前記ＩＣＲを含む請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記ＩＣＲはベクトルフィールドを含む請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記ＩＣＲはモードフィールドを含む請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記第２のレジスタは、前記割り込みベクトルと配信ステータスビットの両方を格納する請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記ＩＣＩは、拡張プログラマブル割り込みコントローラ（ＡＰＩＣ）との間で割り込み情報の交換を行う請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記ＩＣＩは、前記ＡＰＩＣとの間のレガシー通信および非レガシー通信をサポートする請求項８に記載の装置。
【請求項１０】
前記ＡＰＩＣは、各々が異なるエージェントに対応している複数のローカルＡＰＩＣの１つである請求項８または９に記載の装置。
【請求項１１】
メモリマップドＩ／Ｏ（ＭＭＩＯ）ストレージを利用することなく１以上のモデル専用レジスタ（ＭＳＲ）を含む割り込みコマンドレジスタ（ＩＣＲ）を介して割り込みを通信する段階を備え、
前記割り込みを通信する段階は、
第１の汎用レジスタに前記割り込みの対象アドレスを格納する段階と、
第２の汎用レジスタに割り込みモードおよび割り込みベクトル情報を格納する段階と、
第３の汎用レジスタにＩＣＲオフセットアドレスを格納する段階と、
前記ＩＣＲオフセットアドレスに対して前記対象アドレスと前記割り込みモードおよび割り込みベクトル情報とを書き込む命令を実行する段階と、
レガシー割り込み制御インタフェース（ＩＣＩ）と共存する段階と、
を有し、
前記共存する段階は、
前記ＩＣＲの利用可能の決定に応じて、キャッシュされていないＭＭＩＯの書き込みを用いて、前記対象アドレスの一部を第１のメモリ領域に格納する第１のオペレーションを実行する段階と、
前記ＩＣＲオフセットアドレスに書き込むことに応じて、前記割り込みベクトル情報を第２のメモリ領域に格納する第２のオペレーションを実行する段階と
を含む方法。
【請求項１２】
前記第２の汎用レジスタは、前記ＩＣＲの利用可能を示す配信ステータスビットを更に格納する請求項１１に記載の方法。
【請求項１３】
前記第１のオペレーションは、前記配信ステータスビットが前記ＩＣＲの利用可能を示すことに応じて、前記対象アドレスの一部を第１のメモリ領域に格納する請求項１２に記載の方法。
【請求項１４】
前記第２のオペレーションは、キャッシュされていないＭＭＩＯの書き込みを用いて、ディアサートされた前記配信ステータスビットを第２のメモリ領域に更に格納する請求項１２または１３に記載の方法。
【請求項１５】
前記ＩＣＩは、拡張プログラマブル割り込みコントローラ（ＡＰＩＣ）との間で割り込み情報の交換を行う請求項１１から１４のいずれか一項に記載の方法。
【請求項１６】
前記ＩＣＩは、少なくとも１つの未完了割り込みを示すステータス情報を格納する前記ＩＣＲを含む請求項１１から１５のいずれか一項に記載の方法。
【請求項１７】
メモリマップドＩ／Ｏ（ＭＭＩＯ）アドレス空間を含むメモリと、
複数の拡張プログラマブル割り込みコントローラ（ＡＰＩＣ）を有する複数のプロセッサと、
割り込みコマンドレジスタ（ＩＣＲ）の利用可能の決定に応じて、キャッシュされていないＭＭＩＯの書き込みを用いて、前記ＩＣＲの宛先ＩＤの一部を第１のメモリ領域に格納する、前記複数のプロセッサのうちの第１のプロセッサと、
割り込みベクトル情報を第２のメモリ領域に格納する、前記複数のプロセッサのうちの第２のプロセッサと、
を備え、
前記複数のＡＰＩＣの各々は、前記メモリ内の前記ＭＭＩＯアドレス空間に対して割り込み情報を読み書きすることなく、ＩＣＲインタフェースを介して前記割り込み情報を通信可能であり、
前記複数のプロセッサはレガシーＩＣＲインタフェースと共存可能であるシステム。
【請求項１８】
前記第１のメモリ領域および前記第２のメモリ領域は、キャッシュされていないＭＭＩＯメモリアドレスにある請求項１７に記載のシステム。
【請求項１９】
前記第１のプロセッサは、配信ステータスビットが前記ＩＣＲの利用可能を示すことに応じて、前記ＩＣＲの宛先ＩＤの一部を第１のメモリ領域に格納する請求項１７または１８に記載のシステム。
【請求項２０】
前記第２のプロセッサは、ディアサートされた前記配信ステータスビットを、キャッシュされていないＭＩＭＯ書き込みを用いて前記第２のメモリ領域に更に格納する請求項１９に記載のシステム。