(57)【要約】【課題】トラップモードレジスタを使用するシステムを提供する。【解決手段】本発明にかかるシステムは、第１の割込タイプセットに関する割込サービスルーチンを検索する第１の割込ベクトルテーブルと、第１の割込ベクトルテーブルのエントリを検索する第１のアドレスレジスタと、第２の割込タイプセットに関する割込サービスルーチンを検索する第２の割込ベクトルテーブルと、第２の割込ベクトルテーブルのエントリを検索する第２のアドレスレジスタと、トラップが発生すると、関連するトラップデータを受け取り、第１のアドレスレジスタ及び第２のアドレスレジスタから割込ベクトルテーブルに関するアドレスレジスタを選択するトラップモードレジスタと、トラップモードレジスタ、第２の割込ベクトルテーブル、及び第２のアドレスレジスタを初期化し、ＯＳ初期化ロジックを制御する信号を提供する初期化ロジックとを備える。【選択図】図３
2006164284.tif 000002
【特許請求の範囲】
【請求項１】
第１の割り込みタイプセットの１つの処理に関連する割り込みサービスルーチンの検索に役立つように構成される第１の割り込みベクトルテーブル（３２１）と、
該第１の割り込みベクトルテーブル（３２１）に関連するアドレスを提供し、該第１の割り込みベクトルテーブル（３２１）内のエントリの検索に役立つように構成される第１のアドレスレジスタ（３２０）と、
第２の割り込みタイプセットの１つの処理に関連する割り込みサービスルーチンの検索に役立つように構成される第２の割り込みベクトルテーブル（３３１）と、
該第２の割り込みベクトルテーブル（３３１）に関連するアドレスを提供し、該第２の割り込みベクトルテーブル（３３１）内のエントリの検索に役立つように構成される第２のアドレスレジスタ（３３０）と、
コンピュータシステムに動作可能に接続されるトラップモードアドレスレジスタであって、該コンピュータシステムにおいてトラップが発生すると、該トラップに関連するトラップデータを受け取り、少なくとも部分的に該トラップデータに基づいて、前記第１のアドレスレジスタ（３２０）及び前記第２のアドレスレジスタ（３３０）から割り込みベクトルテーブルに関連するアドレスを提供するアドレスレジスタの選択に役立つように構成されるトラップモードレジスタ（３１０）と、
該トラップモードレジスタ（３１０）、前記第２の割り込みベクトルテーブル（３３１）、及び前記第２のアドレスレジスタ（３３０）を初期化し、前記コンピュータシステムに動作可能に接続されたオペレーティングシステム初期化ロジックを少なくとも部分的に制御する信号を提供するように構成される初期化ロジック（３００）と、
を備えるシステム。
【請求項２】
前記トラップデータは、トラップタイプ識別子、並びに前記トラップを発生させたデバイス及び前記トラップを発生させたメモリロケーションのうちの１つ又は複数に関連するアドレスのうちの１つ又は複数を含む、請求項１に記載のシステム。
【請求項３】
前記トラップは未実装アドレストラップであることができ、未実装アドレストラップは前記第２の割り込みタイプセットのメンバであり、前記第２のアドレスレジスタ（３３０）を選択するように前記トラップモードレジスタを制御する、請求項２に記載のシステム。
【請求項４】
前記第１の割り込みベクトルテーブル（３２１）は、前記コンピュータシステム上で実行し、前記オペレーティングシステム初期化ロジックにより初期化されるように構成されるオペレーティングシステム（３４０）により初期化され、該オペレーティングシステム（３４０）にアクセス可能であり、該第１の割り込みベクトルテーブル（３２１）は、第１の割り込みサービスルーチンエントリポイントセット及び第１の割り込みサービスルーチンセットのうちの１つ又は複数を記憶することにより、割り込みサービスルーチンの検索に役立つように構成される、請求項３に記載のシステム。
【請求項５】
前記第２の割り込みベクトルテーブル（３３１）は、前記初期化ロジック（３００）により初期化され、前記オペレーティングシステム（３４０）にアクセス不可能であり、該第２の割り込みベクトルテーブル（３３１）は、第２の割り込みサービスルーチンエントリポイントセット及び第２の割り込みサービスルーチンセットのうちの１つ又は複数を記憶することにより、割り込みサービスルーチンの検索に役立つように構成される、請求項４に記載のシステム。
【請求項６】
前記初期化ロジック（３００）は、トラップ可能アドレス範囲をデータストアに記憶するように構成され、前記コンピュータシステムが前記トラップ可能アドレス範囲内のアドレスにアクセスしようとすると、未実装アドレストラップが発生する、請求項５に記載のシステム。
【請求項７】
前記初期化ロジック（３００）は、前記トラップが前記第１の割り込みタイプセットのメンバである場合には前記第１のアドレスレジスタ（３２０）を選択し、前記トラップが前記第２の割り込みタイプセットのメンバである場合には前記第２のアドレスレジスタ（３３０）を選択するように前記トラップモードレジスタ（３１０）を初期化するように構成される、請求項６に記載のシステム。
【請求項８】
前記コンピュータシステムに関連する保護アドレス範囲へのアクセスを制御するように構成されるセキュアモードロジック（４５０）を備え、前記初期化ロジック（３００）は前記保護アドレス範囲内のメモリロケーションにアクセス可能であり、前記オペレーティングシステム（３４０）は前記保護アドレス範囲内のメモリロケーションにアクセス不可能であり、前記トラップモードレジスタ（３１０）、前記第２のアドレスレジスタ（３３０）、及び前記第２の割り込みベクトルテーブル（３３１）のうちの１つ又は複数は前記保護アドレス範囲内に配置される、請求項７に記載のシステム。
【請求項９】
前記トラップモードレジスタ（３１０）は、
トラップタイプデータを記憶するように構成される第１のフィールド（５２０）と、
トラップタイプがセキュアモードになるように前記コンピュータシステム内のプロセッサを制御するか否かに関する情報を記憶するように構成される第２のフィールド（５４０）と、
トラップタイプがイネーブルされているか否かに関する情報を記憶するように構成される第３のフィールド（５５０）と、
を含む、請求項８に記載のシステム。
【請求項１０】
少なくとも部分的にトラップタイプに基づいて、複数のアドレスレジスタの中から、複数の割り込みベクトルテーブルのうちの１つのアドレスを提供するアドレスレジスタを選択するようにトラップモードレジスタを構成すること（８１０）であって、トラップタイプをアドレスレジスタに関連付けること、セキュアモード遷移インジケータをトラップタイプに選択的に関連付けること、及びディセーブルインジケータをトラップタイプに選択的に関連付けることを含む、前記トラップモードレジスタを構成すること、
デバイスの仮想化に関連するトラップを処理するように構成された割り込みサービスルーチンの検索に役立つように前記複数の割り込みベクトルテーブルのうちの少なくとも１つを構成すること（８１０）であって、割り込みサービスルーチンエントリポイントセットを前記割り込みベクトルテーブルにおいて確立すること、及び割り込みサービスルーチンセットを前記割り込みベクトルテーブルにおいて確立することのうちの１つ又は複数を含む、割り込みベクトルテーブルを構成すること、
前記１つ又は複数の割り込みベクトルテーブルに関連する割り込みサービスルーチンの検索に役立つように前記複数のアドレスレジスタのうちの少なくとも１つを構成すること（８１０）であって、前記割り込みベクトルテーブルを前記アドレスレジスタに関連付ける前記割り込みベクトルテーブルに関連するアドレスを前記アドレスレジスタに記憶することを含む、前記アドレスレジスタを構成すること、
前記トラップモードレジスタ構成、割り込みベクトルテーブル構成、及びアドレスレジスタ構成が完了したことをオペレーティングシステムに通知すること（８２０）であって、オペレーティングシステムブートプロセスを開始するようにブートロジックを制御する信号を提供することを含む、オペレーティングシステムに通知すること、
トラップを検出すること（８３０）、
少なくとも部分的に前記トラップタイプに基づいて、割り込みベクトルテーブルアドレスを提供するアドレスレジスタを選択すること（８６０）、
少なくとも部分的に、前記選択されたアドレスレジスタにより提供される前記割り込みベクトルテーブルアドレスに基づいて、割り込みサービスルーチンを検索すること（８７０）と、
を含む方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラップモードレジスタに関する。
【背景技術】
【０００２】
従来のコンピューティングシステムは、トラップ及び／又は割り込みを検出して処理することができる。本明細書では、用語「割り込み」を割り込み及びトラップの両方を含むものとして用いる。同様に、本明細書では、用語「トラップ」も割り込み及びトラップの両方を含むものとして用いる。通常のコンピューティングシステムは、単一の割り込みベクトルテーブルのアドレスを記憶する単一の割り込みベクトルレジスタと相互作用（interact）することができる。割り込みベクトルレジスタ及び割り込みベクトル記録は、割り込みベクトルテーブルに索引を付けて割り込みサービスルーチン又はトラップハンドラを検索する(locate)のに役立てることができる。たとえば、割り込みベクトルテーブルは、割り込みサービスルーチンを記憶し、且つ／又は割り込みサービスルーチンのエントリポイントを記憶することができる。
【０００３】
従来のコンピューティングシステムは、割り込みサービスと相互作用するオペレーティングシステムを実行させることができる。通常、オペレーティングシステムは、割り込みベクトルレジスタ及び／又は割り込みベクトルテーブルにアクセスすることができる。したがって、トラップハンドラ、割り込みサービスルーチン等に関連するメモリは、アクセスを拒否することが理想的なプロセスに意図的又は非意図的にアクセスされる可能性がある。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明にかかるシステムは、第１の割り込みタイプセットの１つの処理に関連する割り込みサービスルーチンを検索するのに役立つように構成される第１の割り込みベクトルテーブル（３２１）と、該第１の割り込みベクトルテーブル（３２１）に関連するアドレスを提供し、該第１の割り込みベクトルテーブル（３２１）内のエントリを検索するのに役立つように構成される第１のアドレスレジスタ（３２０）と、第２の割り込みタイプセットの１つの処理に関連する割り込みサービスルーチンを検索するのに役立つように構成される第２の割り込みベクトルテーブル（３３１）と、該第２の割り込みベクトルテーブル（３３１）に関連するアドレスを提供し、該第２の割り込みベクトルテーブル（３３１）内のエントリを検索するのに役立つように構成される第２のアドレスレジスタ（３３０）と、コンピュータシステムに動作可能に接続されるトラップモードアドレスレジスタであって、該コンピュータシステムにおいてトラップが発生すると、該トラップに関連するトラップデータを受け取り、少なくとも部分的に該トラップデータに基づいて、前記第１のアドレスレジスタ（３２０）及び前記第２のアドレスレジスタ（３３０）から割り込みベクトルテーブルに関連するアドレスを提供するアドレスレジスタを選択するのに役立つように構成されるトラップモードレジスタ（３１０）と、該トラップモードレジスタ（３１０）、前記第２の割り込みベクトルテーブル（３３１）、及び前記第２のアドレスレジスタ（３３０）を初期化し、前記コンピュータシステムに動作可能に接続されたオペレーティングシステム初期化ロジックを少なくとも部分的に制御する信号を提供するように構成される初期化ロジック（３００）とを備える。
【０００５】
本明細書に組み込まれてその一部を成す添付図面に、本発明の各種実施形態例を示す各種システム例、方法例等を示す。図中に示す要素境界（たとえば、枠、枠群、又は他の形状）は境界の一例を表すことが理解されよう。１つの要素が複数の要素として設計されてもよく、又は複数の要素を１つの要素として設計してもよいことを当業者は理解しよう。別の要素の内部構成要素として示される要素は外部構成要素として実施されてもよく、またその逆も同様である。さらに、要素は一定の縮尺で描かれているわけではない。
【発明を実施するための最良の形態】
【０００６】
以下に、本明細書において採用する選ばれた用語の定義を含める。定義には、用語の範囲内にあり、インプリメンテーションに使用可能な構成要素の各種例及び／又は形態を含める。例は限定を意図するものではない。用語の単数形及び複数形の両方が定義内にあり得る。
【０００７】
本願において使用する「割り込み」は、イベントが発生したことをロジックに通知する信号を指す。割り込みは、例外イベントによりそのイベントをハンドルするための特別なロジックに自動的に移行する場合に発生し得る。割り込みが発生した場合、最初のプロセスは、割り込みをハンドルした後に再開することができるように、サスペンドすることができる。割り込みは、ハードウェア、ソフトウェア、及び他のソースから発生し得る。文脈によっては、発生元（source）がハードウェアデバイスである割り込みをハードウェア割り込み又は単に割り込みと呼ぶ場合がある。同様に、発生元がソフトウェアである割り込みをソフトウェア割り込み及び／又はトラップと呼ぶ場合がある。本願では、「割り込み」及び「トラップ」は、ハードウェア及び／又はソフトウェアの割り込みを同義に指すために用いられる。同様に、用語「割り込みサービス」及び「トラップハンドラ」も同義に用いられる。
【０００８】
本願において使用する用語「コンピュータ構成要素」は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせのコンピュータ関連エンティティ又は実行中のソフトウェアを指す。たとえば、コンピュータ構成要素は、プロセッサで実行しているプロセス、プロセッサ、オブジェクト、エグゼキュータブル（executable）、実行スレッド、プログラム、及びコンピュータであることができるがこれらに限定されない。例として、サーバ上で実行しているアプリケーション及びサーバの両方がコンピュータ構成要素であることができる。１つ又は複数のコンピュータ構成要素は、プロセス及び／又は実行スレッド内に常駐することができ、またコンピュータ構成要素は、１台のコンピュータ上でローカライズし、且つ／又は２台以上のコンピュータに分散することができる。
【０００９】
本明細書において使用する「コンピュータ可読媒体」は、信号、命令、及び／又はデータを直接又は間接的に提供する際に関わる媒体を指す。コンピュータ可読媒体は、不揮発性媒体、揮発性媒体、及び伝送媒体を含むがこれらに限定されない形を取ることができる。不揮発性媒体としては、たとえば、光ディスク、磁気ディスク等を挙げることができる。揮発性媒体としては、たとえば、光ディスク、磁気ディスク、ダイナミックメモリ等を挙げることができる。伝送媒体としては、同軸ケーブル、銅線、光ファイバケーブル等を挙げることができる。伝送媒体は、電波及び赤外線データ通信中に生成されるもののような電磁放射の形態、又は１つ又は複数の信号群の形態をとることもできる。コンピュータ可読媒体の一般的な形態としては、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、ＣＤ−ＲＯＭ、他の光媒体、パンチカード、紙テープ、孔のパターンを有する他の物理的な媒体、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、フラッシュ−ＥＰＲＯＭ、又は他のメモリチップ若しくはカード、メモリスティック、搬送波／パルス、及びコンピュータ、プロセッサ、又は他の電子デバイスが読み取り可能な他の媒体が挙げられるがこれらに限定されない。インターネットのようなネットワークを介して命令又は他のソフトウェアを伝搬するために使用される信号も、「コンピュータ可読媒体」とみなすことができる。
【００１０】
本明細書において使用する「データストア」は、データを記憶することができる物理エンティティ及び／又は論理エンティティを指す。データストアは、たとえば、データベース、テーブル、ファイル、リスト、キュー、ヒープ、メモリ、レジスタ等であることができる。データストアは、１つの論理エンティティ及び／又は物理エンティティに常駐してもよく、且つ／又は２つ以上の論理エンティティ及び／又は物理エンティティ間に分散してもよい。
【００１１】
本明細書において使用する「ロジック」としては、機能（複数可）又はアクション（複数可）を実行し、且つ／又は機能又はアクションを別のロジック、メソッド、及び／又はシステムから実行させるハードウェア、ファームウェア、ソフトウェア、及び／又はそれぞれの組み合わせが挙げられるがこれらに限定されない。たとえば、所望の用途又は必要性に基づいて、ロジックとして、ソフトウェア制御マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）のような離散ロジック、プログラム済みロジックデバイス、命令を含むメモリデバイス等を挙げることができる。ロジックは、１つ又は複数のゲート、ゲートの組み合わせ、又は他の回路構成要素を備えることができる。ロジックはまた、ソフトウェアとして完全に実施されてもよい。複数の論理ロジックについて述べる場合、その複数の論理ロジックを１つの物理ロジックに組み込むことも可能であり得る。同様に、単一の論理ロジックについて述べる場合、その単一の論理ロジックを複数の物理ロジック間に分散させることも可能であり得る。
【００１２】
「動作可能な接続」又はエンティティを「動作可能に接続」する接続は、信号、物理通信、及び／又は論理通信を送信及び／又は受信することができる接続である。通常、動作可能な接続は、物理インタフェース、電気インタフェース、及び／又はデータインタフェースを含むが、動作可能な接続は、これらのタイプの接続及び動作可能な制御を可能にするに十分な他のタイプの接続の異なる組み合わせを含み得ることに留意されたい。たとえば、信号を互いに直接又はプロセッサ、オペレーティングシステム、ロジック、ソフトウェア、又は他のエンティティのような１つ又は複数の中間エンティティを経由して通信できるようにすることによって、２つのエンティティを動作可能に接続することができる。論理的通信チャネル及び／又は物理的通信チャネルを使用して、動作可能な接続を作り出すことができる。
【００１３】
本明細書において使用する「信号」としては、１つ又は複数の電気信号又は光信号、アナログ信号又はデジタル信号、データ、１つ又は複数のコンピュータ命令又はプロセッサ命令、メッセージ、ビット又はビットストリーム、又は受信、送信、及び／又は検出が可能であり、情報の転送に役立つことができる他の手段が挙げられるがこれらに限定されない。
【００１４】
本明細書において使用する「ソフトウェア」としては、読み出し、解釈、コンパイル、及び／又は実行が可能であり、コンピュータ、プロセッサ、又は他の電子デバイスに機能、アクション、及び／又は振る舞いを所望のように実行させる１つ又は複数のコンピュータ命令又はプロセッサ命令が挙げられるがこれらに限定されない。命令は、動的及び／又は静的にリンクされたライブラリからの別個のアプリケーション又はコードを含むルーチン、アルゴリズム、モジュール、メソッド、スレッド、及び／又はプログラムのような様々な形で実施することができる。ソフトウェアもまた、スタンドアロンプログラム、関数呼び出し（ローカル及び／又はリモート）、サーブレット、アプレット、メモリに記憶された命令、オペレーティングシステムの一部、又は他のタイプの実行可能命令を含むがこれらに限定されない、様々な実行可能な形態及び／又はロード可能な形態で実施することができる。ソフトウェアの形態は、たとえば、所望の用途の要件、実行環境、及び／又は設計者／プログラマの要望等に依存し得ることが当業者により理解されよう。コンピュータ可読命令及び／又は実行可能命令は１つのロジックに配置してもよく、且つ／又は２つ以上の通信し、協働し、及び／又は並列処理するロジックに分散してもよく、したがって直列、並列、大規模並列、及び他の様式でロードし、且つ／又は実行することが可能であることも理解されよう。
【００１５】
本明細書において説明するシステム例及び方法例の各種構成要素の実施に適したソフトウェアは、Ｊａｖａ(登録商標)、Ｐａｓｃａｌ、Ｃ＃、Ｃ＋＋、Ｃ、ＣＧＩ、Ｐｅｒｌ、ＳＱＬ、ＡＰＩ、ＳＤＫ、アセンブリ、ファームウェア、マイクロコード、及び／又は他の言語及びツールのようなプログラミング言語及びツールを使用して生成することができる。ソフトウェアは、システム全体であれ、システムの構成要素であれ、製品として具体化し、先に定義したコンピュータ可読媒体の一部として保持又は提供することができる。ソフトウェアの別の形態は、ネットワーク又は他の通信媒体を介してソフトウェアのプログラムコードを受信者に伝送する信号を含むことができる。したがって、一例では、コンピュータ可読媒体は、ウェブサーバからユーザにダウンロードされる際にソフトウェア／ファームウェアを表す信号の形態を有する。別の例では、コンピュータ可読媒体は、ウェブサーバに保持される際にはソフトウェア／ファームウェアの形態を有する。他の形態も使用することが可能である。
【００１６】
以下の詳細な説明のいくつかの部分は、メモリ内のデータビットに対する動作のアルゴリズム及びシンボル表現の観点で提示される。これらアルゴリズム的な説明及び表現は、当業者が各自の作業の内容を他人に伝えるために使用する手段である。アルゴリズムは、本明細書では、また一般に、結果を生み出す一連の動作であると考えられる。動作は、物理量の物理的な操作を含むことができる。必ずしもそうであるわけではないが通常、物理量は、ロジック等における記憶、転送、結合、比較、及びその他の操作を行うことが可能な電気信号又は磁気信号の形態をとる。
【００１７】
主に一般的な使い方という理由により、これら信号をビット、値、要素、シンボル、キャラクタ、用語、数等で示すことが時に都合のよいことが分かっている。しかし、これら用語及び同様の用語は、適切な物理量が関連付けられることになり、これら物理量に適用された単なる都合のよいラベルにすぎないことを念頭に置かれたい。別記しない限り、説明全体を通して、処理、計算、演算（calculating）、判断、表示等のような用語は、コンピュータシステム、ロジック、プロセッサ、又は物理（電子）量として表されるデータに対して操作及び変換を行う類似の電子デバイスのアクション及び処理を指すことを理解されたい。
【００１８】
従来技術による図１に、単一の割り込みベクトルレジスタ１４０及び単一の割り込みベクトルテーブル１５０が構成された従来のコンピュータシステム１００を示す。通常、プロセス１１０又はデバイス１２０は、コンピュータシステム１００に関連するコンピュータハードウェアにより検出することができ、また場合によってはオペレーティングシステム１３０により処理することができる割り込みを発生させ得る。オペレーティングシステム１３０は、割り込みを処理しようとすることができる。割り込みは、割り込みベクトルレジスタ１４０及び、割り込みハンドラを検索するのに役立つデータを提供する割り込みベクトルテーブル１５０により容易に処理することができる。たとえば、割り込みベクトルレジスタ１４０は、単一の割り込みベクトルテーブル１５０のアドレスを記憶するか、又は割り込みベクトルテーブル１５０及び／又は割り込みベクトルテーブル１５０内のエントリを検索するのに役立つ他のデータを含むことができる。割り込みベクトルテーブル１５０は通常、割り込みサービスルーチンのプログラムエントリポイントを記憶している。場合によっては、割り込みベクトルテーブル１５０は、ルーチンのエントリアドレスではなくコード（たとえば、割り込みサービスルーチン）を記憶することができる。
【００１９】
オペレーティングシステム１３０に関連するコンピュータハードウェアが、プロセス１１０及び／又はデバイス１２０によって生成された割り込みを検出すると、オペレーティングシステム１３０は割り込みベクトルレジスタ１４０にアクセスして、割り込みベクトルテーブル１５０のアドレスを取得することができる。次いで、オペレーティングシステム１３０は、割り込み番号のような索引データを使用して、割り込みベクトルテーブル１５０に索引を付けることができる。索引データは、割り込みベクトルテーブル１５０においてエントリ（たとえば、１５２〜１５９）の１つを検索するのに役立つ。通常、索引データ（たとえば、割り込み番号）は、割り込みベクトルテーブル１５０内の厳密に１つのエントリに対応する。
【００２０】
従来、いずれの時点でも、オペレーティングシステム１３０は厳密に１つの割り込みベクトルレジスタ１４０及び厳密に１つの割り込みベクトルテーブル１５０を利用可能である。さらに、オペレーティングシステム１３０は通常、割り込みベクトルレジスタ１４０及び割り込みベクトルテーブル１５０にアクセス可能である。したがって、オペレーティングシステム１３０は、割り込みベクトルレジスタ１４０及び／又は割り込みベクトルテーブル１５０の初期化、割り込みベクトルレジスタ１４０及び／又は割り込みベクトルテーブル１５０の再プログラム等を行うことができる。
【００２１】
図２に、トラップモードレジスタ２３０、２つのアドレスレジスタ（２４０、２５０）、及び２つの割り込みベクトルテーブル（２４１、２５１）を備えたシステム例を示す。プロセス２００及び／又はデバイス２１０は、オペレーティングシステム２２０に関連するコンピュータハードウェアにより検出することができる割り込みを発生させ得る。例によっては、デバイス２１０は実際のデバイスである場合もあれば、又は仮想デバイスである場合もあることを理解されたい。割り込みサービスルーチンを検索するのに利用できるアドレスレジスタ及び割り込みベクトルテーブルがそれぞれ厳密に１つしかないのではなく、オペレーティングシステム２２０及び／又はオペレーティングシステム２２０を実行させているプロセッサ（図示せず）は、２つ以上のアドレスレジスタ、ひいては２つ以上の割り込みベクトルテーブルにアクセス可能であるトラップモードレジスタ２３０と相互作用することができる。
【００２２】
トラップモードレジスタ２３０は、オペレーティングシステム２２０に動作可能に接続し、割り込みが発生すると、割り込みに関連するトラップデータを受け取るように構成することができる。トラップモードレジスタ２３０は、たとえば、割り込みサービスルーチン等のアドレスを供給する割り込みベクトルテーブルに関連するアドレスを提供するのが、第１のアドレスレジスタ２４０であるか第２のアドレスレジスタ２５０であるかを選択するのに役立つように構成することもできる。どのアドレスレジスタがトラップモードレジスタ２３０により選択されるかは、少なくとも部分的にトラップデータに基づき得る。一例では、トラップデータは、割り込みタイプ識別子、割り込みの発生に関与するデバイス（たとえば、２１０）に関連するアドレス、割り込みの発生に関与するプロセス（たとえば、２００）、及び割り込みの発生に関与するメモリロケーションのような情報を含み得る。
【００２３】
トラップモードレジスタ２３０は、第１の割り込みタイプセットからの割り込みの処理に関連する割り込みサービスルーチンを検索するのに役立つように構成された第１の割り込みベクトルテーブル２４１を利用することができる。たとえば、割り込みベクトルテーブル２４１は、物理（たとえば、仮想ではない）デバイスからの割り込みを処理する割り込みサービスルーチンを含むことができる。第１の割り込みベクトルテーブル２４１には、第１の割り込みベクトルテーブル２４１に関連するアドレスをトラップモードレジスタ２３０に提供するように構成された第１のアドレスレジスタ２４０を関連付けることができる。第１のアドレスレジスタ２４０は、エントリポイントを第１の割り込みベクトルテーブル２４１に提供することにより、第１の割り込みベクトルテーブル２４１内のエントリを検索するのに役立つこともできる。一例では、オペレーティングシステム２２０は、第１のアドレスレジスタ２４０及び／又は第１の割り込みベクトルテーブル２４１にアクセス可能である。したがって、オペレーティングシステム２２０は、アドレスレジスタ２４０及び／又は割り込みベクトルテーブル２４１の初期化に関与することができる。
【００２４】
従来のシステムと異なり、トラップモードレジスタ２３０は、第２の割り込みセットからの割り込みの処理に関連する割り込みサービスルーチンを検索するのに役立つように構成された第２の割り込みベクトルテーブル２５１も利用することができる。たとえば、割り込みベクトルテーブル２５１は、仮想（たとえば、非物理）デバイスからの割り込みを処理する割り込みサービスルーチンを含むことができる。第２の割り込みベクトルテーブル２５１には、第２の割り込みベクトルテーブル２５１に関連するアドレスをトラップモードレジスタ２３０に提供するように構成された第２のアドレスレジスタ２５０も関連付けることができる。第２のアドレスレジスタ２５０はまた、第２の割り込みベクトルテーブル２５１内のエントリを検索するのに役立つこともできる。一例では、オペレーティングシステム２２０は、第２のアドレスレジスタ２５０及び／又は第２の割り込みベクトルテーブル２５１にアクセス不可能である場合がある。
【００２５】
２つのアドレスレジスタが利用可能であり、ひいては２つの割り込みベクトルテーブルが利用可能な場合、トラップモードレジスタ２３０は、第１の割り込みベクトルテーブルにおいて第１の割り込みセットの割り込みサービスルーチンを検索し、第２の割り込みベクトルテーブルにおいて第２の割り込みセットの割り込みサービスルーチンを検索するように構成することができる。
【００２６】
オペレーティングシステム２２０は、従来の割り込みの他に「未実装アドレス」トラップを処理するように構成することができる。プロセス２００又はデバイス２１０が実装されていないメモリアドレスにアクセスしようとすると、未実装アドレストラップを生成することができる。したがって、オペレーティングシステム２２０及びトラップモードレジスタ２３０は、未実装アドレストラップのハンドラを検索するように構成することができる。たとえば、未実装アドレストラップは第２の割り込みセットのメンバであり、したがってトラップモードレジスタ２３０を制御して第２のアドレスレジスタ２５０を選択し、そうして第２の割り込みベクトルテーブル２５１において割り込みサービスルーチンを検索することができる。一例では、未実装アドレストラップは、たとえば、プロセス２００又はデバイス２１０が、トラップ可能アドレス範囲に関連するアドレスにアクセスを試みることによって生成され得る。別の例では、未実装アドレストラップは、仮想デバイスに関連するアクションにより生成され得る。したがって、未実装アドレストラップは、オペレーティングシステム２２０の外部で仮想化システムを実装するために有用であり得る。
【００２７】
割り込みベクトルテーブルは、各種例において異なる情報を記憶することができる。たとえば、第１の割り込みベクトルテーブル２４１は、割り込みサービスルーチンエントリポイントのセット、及び割り込みサービスルーチンのセットを含むがこれらに限定されないデータを記憶することができる。同様に、第２の割り込みベクトルテーブル２５１は、割り込みサービスルーチンエントリポイントのセット及び割り込みサービスルーチンのセットを含むがこれらに限定されないデータを記憶することができる。一例では、第１の割り込みベクトルテーブル２４１は、オペレーティングシステム２２０がアクセス可能な割り込みサービスルーチンを検索するのに役立つことができるのに対して、第２の割り込みベクトルテーブル２５１は、オペレーティングシステム２２０がアクセス不可能である割り込みサービスルーチンを検索するのに役立つことができる。たとえば、割り込みベクトルテーブル２５１を通して検索することができる割り込みサービスルーチンは、オペレーティングシステム２２０が認識しない場合がある仮想化システムに関連し得る。
【００２８】
２つのアドレスレジスタ及び２つの割り込みベクトルテーブルを図２に示すが、トラップモードレジスタ２３０は２つ以上のアドレスレジスタ、ひいては２つ以上の割り込みベクトルテーブルにアクセスすることができることを理解されたい。さらに、両方のアドレスレジスタ、加えて両方の割り込みベクトルテーブルをトラップモードレジスタ２３０から１レベル分離して示すが、他のアドレスレジスタ及び／又は割り込みベクトルテーブルはトラップモードレジスタ２３０から他のレベル分、離して配置することができる。したがって、テーブルの追加により、複数の独立した仮想レイヤの階層を介して入出力仮想化をさらにサポートしやすくすることができる。２つ以上のテーブル及びレジスタを、本明細書において説明する他のシステム例にも採用することが可能である。
【００２９】
図３に、トラップモードレジスタ３１０、２つのアドレスレジスタ（３２０、３３０）、及び２つの割り込みベクトルテーブル（３２１、３３１）を備えたコンピュータベースのシステム例を示す。図２に関連して上述したように、オペレーティングシステム３４０により割り込みが検出された場合、トラップモードレジスタ３１０は、割り込みベクトルテーブルのアドレスのようなデータを検索することができるアドレスレジスタを選択することができる。したがって、トラップモードレジスタ３１０は割り込みサービスルーチンを検索するのに役立つことができる。
【００３０】
図３は、初期化ロジック３００に動作可能に接続されたトラップモードレジスタ３１０、アドレスレジスタ３３０、及び割り込みベクトルテーブル３３１を示す。初期化ロジック３００は、トラップモードレジスタ３１０、割り込みベクトルテーブル３３１、及びアドレスレジスタ３３０を初期化するように構成することができる。さらに、初期化ロジック３００は、オペレーティングシステム３４０に動作可能に接続されたオペレーティングシステム初期化ロジック（図示せず）を制御する信号を提供するように構成することができる。一例では、初期化ロジック３００は、トラップモードレジスタ３１０、割り込みベクトルテーブル３３１、及びアドレスレジスタ３３０を初期化した後にオペレーティングシステム初期化ロジックに信号を提供することができる。信号により、オペレーティングシステム３４０が動作を開始（たとえば、ブート）することができる。したがって、トラップモードレジスタ３１０、アドレスレジスタ３３０、及び／又は割り込みベクトルテーブル３３１に記憶されている情報は、オペレーティングシステム３４０が実行し始める前に確定（establish）することができる。これは、オペレーティングシステム３４０がトラップモードレジスタ３１０、アドレスレジスタ３３０、及び／又は割り込みベクトルテーブル３３１に記憶されている情報にアクセス不可能であり続けることを容易にする。
【００３１】
初期化ロジック３００はトラップモードレジスタ３１０、アドレスレジスタ３３０、及び割り込みベクトルテーブル３３１を初期化することができる一方、オペレーティングシステム３４０は割り込みベクトルテーブル３２１及びアドレスレジスタ３２０を初期化することができる。したがって、オペレーティングシステム３４０は、割り込みベクトルテーブル３２１及びアドレスレジスタ３２０にアクセス可能であることができる。オペレーティングシステム３４０にアクセス可能な割り込みベクトルテーブル及びアクセス不可能な割り込みベクトルテーブルを分けることができることにより、オペレーティングシステム３４０をサポートするための外部仮想化システム及び／又は仮想化システムが構成されていないプロセッサを提供しやすくなる。仮想デバイスに関連する割り込みは、初期化ロジック３００により初期化されるアドレスレジスタ３３０及び割り込みベクトルテーブル３３１に関連するハンドラが関わり得る。同様に、物理デバイスに関連する割り込みは、オペレーティングシステム３４０によって初期化され、オペレーティングシステム３４０がアクセス可能なアドレスレジスタ３２０及び割り込みベクトルテーブル３２１に関連する割り込みサービスルーチンが関わり得る。
【００３２】
一例では、初期化ロジック３００は、仮想デバイスを定義し、仮想デバイスに関わる情報をオペレーティングシステム３４０に提供するように構成することができる。したがって、初期化ロジック３００、トラップモードレジスタ３１０、アドレスレジスタ３３０、及び割り込みベクトルテーブル３３１は、オペレーティングシステム３４０の外部仮想化システム及び／又はオペレーティングシステム３４０が実行しているプロセッサを提供するのに役立つことができる。外部仮想化システムの機能は、オペレーティングシステム３４０が外部仮想化システムに直接アクセスすることができない場合であってもオペレーティングシステム３４０に利用可能であり得る。たとえば、初期化ロジック３００は、仮想デバイスドライバエントリポイントのセット及び仮想デバイスドライバのセットを含むがこれらに限定されないデータで割り込みベクトルテーブル３３１を初期化するように構成することができ、仮想デバイスドライバは仮想化システムの一部を成す。一例では、仮想デバイスドライバのセットは初期化ロジック３００に配置（たとえば、記憶）することができる。初期化ロジック３００は、たとえばファームウェアで実装することができる。したがって、オペレーティングシステム３４０は、仮想デバイスドライバを呼び出すことはできるが、仮想デバイスドライバの中身を変更することはできない。
【００３３】
外部割り込みが割り込みベクトルテーブルを通してベクトル化される中央演算処理装置（ＣＰＵ）アーキテクチャでは、トラップモードレジスタ３１０、複数のアドレスレジスタ、及び複数の割り込みベクトルテーブルによって提供される仮想化を採用して、トラップモードレジスタ３１０を外部割り込み処理に拡張することにより外部割り込みを仮想デバイスドライバのような仮想化コードにベクトル化することができる。したがって、仮想化コードは、割り込みを検査し、割り込みが仮想化システムに関連するデバイスからのものであるか否かを判断する機会を有し得る。割り込みが仮想化システムに関連する場合、仮想化コード（たとえば、割り込みベクトルテーブル３３１に関連するコード）がその割り込みを処理することができる。その他の場合、割り込みがオペレーティングシステム３４０に関連する場合、割り込みベクトルテーブル３２１に関連するコードが割り込みを処理することができる。
【００３４】
２つのアドレスレジスタ及び２つの割り込みベクトルテーブルを示すが、トラップモードレジスタ３１０は２つ以上のアドレスレジスタに動作可能に接続することが可能であり、ひいては２つ以上の代替の割り込みベクトルテーブルにアクセス可能であることを理解されたい。
【００３５】
図４に、トラップモードレジスタ４００、第１のアドレスレジスタ４１０、及び第２のアドレスレジスタ４２０が構成されたコンピュータシステム例を示す。アドレスレジスタ（４１０、４２０）に関連する割り込みベクトルテーブルを示していないが、トラップモードレジスタ４００は、トラップモードレジスタ２３０（図２）及び３１０（図３）と同様にアドレスレジスタ（４１０、４２０）を採用して割り込みベクトルテーブルにアクセス可能であることを理解されたい。図４には、トラップモードレジスタ４００に動作可能に接続されたデータストア４３０も示す。
【００３６】
データストア４３０は、トラップ可能アドレス範囲に関わるデータを記憶するように構成することができる。トラップ可能アドレス範囲は、プロセッサ４４０及び／又はオペレーティングシステム（図示せず）が、いつ「未実装アドレス」トラップ及び／又は「トラップ可能アドレス範囲」トラップを検出し、且つ／又は発生させるかを制御することができる。たとえば、初期化ロジック４６０は、未実装アドレストラップが望ましいトラップ可能アドレス範囲をデータストア４３０に記憶するように構成することができる。この場合、トラップ可能アドレス範囲内のアドレスへのアクセスを試みると、未実装アドレストラップを発生させることができる。
【００３７】
不都合なことに、例によっては、オペレーティングシステム及び／又はプロセッサ４４０上で実行しているアプリケーションコードが、意図的及び／又は非意図的に、トラップモードレジスタ４００、アドレスレジスタ（４１０、４２０）、割り込みサービスルーチン等を改竄することで、トラップモードレジスタ４００及び関連するコンピュータ構成要素により提供される仮想化及びデータストアを危険に曝す場合がある。このため、図４に、プロセッサ４４０に動作可能に接続されたセキュアモードロジック４５０も示す。データストア４３０に記憶されているトラップ可能アドレス範囲は、セキュアモードロジック４５０と相互作用して、仮想化を危険に曝さないようにするのに役立つことができる。
【００３８】
たとえば、プロセッサ４４０の外部仮想化システムの実施を容易にするために、初期化ロジック４６０は保護アドレス範囲内のメモリロケーションにアクセス可能であり得るが、プロセッサ４４０及び／又はプロセッサ４４０上で実行しているオペレーティングシステムはこの保護アドレス範囲内のメモリロケーションにアクセス不可能であり得る。セキュアモードロジック４５０は、保護アドレス範囲へのアクセスの制御に役立つように構成することができる。たとえば、アドレスレジスタ４１０ではなくアドレスレジスタ４２０を通して到達可能な割り込みサービスルーチンが、保護アドレス範囲に関連するメモリロケーションにアクセス可能であり得る。同様に、アドレスレジスタ４１０を通して到達可能な割り込みサービスルーチンが、保護アドレス範囲外のメモリロケーションにアクセス可能であり得る。セキュアモードロジック４５０がない場合、プロセッサ４４０及び／又はプロセッサ４４０上で実行しているオペレーティングシステムは、特定のアドレスにアクセスしないことを自発的に同意することができる。しかし、悪意がある、及び／又は欠陥のあるコードが意図的及び／又は非意図的にこれらアドレスにアクセスする恐れがあり、これらアドレスに実装されている仮想化システムを危険に曝す恐れがある。
【００３９】
したがって、一例では、トラップモードレジスタ４００、アドレスレジスタ（たとえば、アドレスレジスタ４２０）、及び／又はアドレスレジスタに関連する割り込みベクトルテーブル（図示せず）は、データストア４３０において識別された保護アドレス範囲内にあるアドレスを有し得る。保護アドレス範囲は、プロセッサ４４０が動作を開始する前に初期化ロジック４６０によって初期化することができる。これに加えて、及び／又はこれに代えて、保護アドレス範囲に関連するデータは、初期化ロジック４６０及び／又は保護アドレス範囲内で実行しているコードによって更新することができる。保護アドレス範囲は、たとえば、単一の連続したアドレス範囲、様々なアドレスブロック等であることができる。
【００４０】
仮想化システムについて説明したが、複数のアドレスレジスタ及び複数の割り込みベクトルテーブルと協働するトラップモードレジスタ４００は他の機能を提供することも可能であることを理解されたい。たとえば、デバッグシステム、ロギングシステム、及び他のシステムを提供することが可能である。さらに、複数のアドレスレジスタ及び複数の割り込みベクトルテーブルと協働するトラップモードレジスタ４００は、プロセッサ及び／又はオペレーティングシステムからのファームウェア「隠し」コードのプリブートに役立つことができる。こうして、未実装アドレストラップ又はトラップ可能アドレス範囲トラップのようなエントリポイントを通して構成ルーチン、セキュリティ機能等を構成することで、実施し、選択的に呼び出すことができる。
【００４１】
トラップ可能アドレス範囲を提供することは、仮想デバイスに未実装アドレストラップを使用することに関連する問題を軽減することにも役立つ。たとえば、仮想デバイスをトラップ可能アドレス範囲内のアドレスにマッピングすることにより、仮想デバイスは未実装アドレストラップ以外のタイプのトラップを生成することができる。したがって、実際の未実装アドレストラップが発生した場合に、未実装アドレストラップが仮想デバイスに関連するのか、それとも実際に未実装アドレスに関連するのかを判断するための処理が必要ない。
【００４２】
図５にトラップモードレジスタ例５００を示す。一例では、トラップモードレジスタ５００には、割り込みサービスルーチンを検索するために代替の割り込みベクトルテーブルが利用可能であるか否か等に関する情報を記憶するフィールド５１０及び／又はデータストアを関連付けることができる。例として、フィールド５１０が、代替のテーブルが利用可能ではないことを示す場合、トラップモードレジスタ５００は、代替のアドレスレジスタを考慮することなくデフォルトのアドレスレジスタを介してアクセス可能なデフォルトの割り込みベクトルテーブルにおいて割り込みハンドラを検索するように構成することができる。しかし、フィールド５１０により代替のテーブルが利用可能であることが示される場合、トラップモードレジスタ５００は、代替のアドレスレジスタによりアクセス可能な代替の割り込みベクトルテーブルにおいて代替の割り込みハンドラを見つけようとするように構成することができる。フィールド５１０は、代替のベクトルテーブル処理を選択的にオン／オフするのに役立ち、したがってたとえば、代替のベクトルテーブルに基づいて仮想化システムを選択的にオン／オフするのに役立つことができる。一例では、初期化ロジック（たとえば、図４のロジック４６０）はフィールド５１０を操作（たとえば、セット／クリア）することができる。
【００４３】
トラップモードレジスタ５００は様々なフィールドを含むことができる。一例では、トラップモードレジスタ５００は、トラップタイプデータを記憶するように構成されたフィールド５２０を含むことができる。たとえば、システムにより検出可能なトラップは、トラップタイプを識別する一意のコードを有することができる。一例では、一意のコードは割り込みベクトルテーブルへの索引付けに役立つことができる。たとえば、トラップタイプは、割り込みベクトルテーブルのエントリサイズで乗算した場合に、割り込みベクトルテーブルにおける割り込みサービスルーチンのアドレスを判断するのに役立つ整数であることができる。整数及びエントリサイズについて述べたが、他の索引付け及びハンドラ検索技術を採用することも可能であることを理解されたい。
【００４４】
トラップモードレジスタ５００は、アドレスレジスタから検索された割り込みベクトルテーブルアドレスのような情報を記憶するように構成されたフィールド５３０を含むこともできる。アドレスが検索されるアドレスレジスタは、上述したように、トラップタイプフィールド５２０に記憶されているデータによって決めることができる。トラップタイプに関連するアドレスレジスタは、たとえば、ハードウェア、ファームウェア等に固定することができる。別の例では、トラップタイプに関連するアドレスレジスタは動的であり、異なる条件が発生する際に可変であり得る。
【００４５】
トラップモードレジスタ５００は、割り込みタイプが、トラップモードレジスタ５００に関連するプロセッサがセキュアモードになるように制御するか否かに関する情報を記憶するように構成されたフィールド５４０を含むこともできる。上述したように、セキュアモードロジック又は他のロジックは、オペレーティングシステム及び／又はアプリケーションコードがいくつかのメモリロケーションにアクセス不可能であるように構成することができる。セキュアモードロジックのようなロジックが、プロセッサ、オペレーティングシステム、及び／又はアプリケーションコード等がセキュアモードで動作していることを検出する場合、プロセッサのみがこれらメモリロケーションにアクセス可能であることができる。設計者は、特定の割り込み（たとえば、未実装アドレストラップ）によりセキュアモードになることを望むことができる。したがって、「セキュアモード遷移」フィールド５４０は、セキュアモードロジック又は他のロジックがセキュアモードに遷移させるために採用することができる情報を記憶することができる。セキュアモード遷移フィールド５４０を１ビットフィールドとして示すが、他のサイズ及びタイプのフィールドを採用することも可能であることを理解されたい。
【００４６】
トラップモードレジスタ５００は、割り込みタイプがイネーブルされているか否かに関する情報を記憶するように構成されたフィールド５５０を含むこともできる。たとえば、システムはときにより、異なるタイプの割り込みハンドルを望まない、又は割り込みハンドルできない場合がある。このため、システムがハンドルしたくない割り込みタイプの割り込みサービスルーチンにジャンプさせるのではなく、システムがその割り込みをしないように制御するのに役立つ情報をトラップディセーブルビット５５０に記憶することができる。フィールド５５０は、プロセッサがセキュアモードであるときに割り込みタイプがディセーブルされるか否かを制御するのにも役立つことができる。これは、たとえば、未実装アドレストラップに対する無限ループの回避に役立つことができる。ここでも、トラップディセーブルフィールド５５０を１ビットフィールドとして示すが、他のサイズ及びタイプのフィールドを採用することも可能であることを理解されたい。
【００４７】
トラップモードレジスタ５００は、割り込みタイプをセキュアモードでハンドルすべきか否かに関する情報を記憶するフィールド５６０を含むこともできる。フィールド５４０は、トラップがセキュアモードへの遷移を引き起こすか否かに関する情報を記憶することができる一方、フィールド５６０は、特定の割り込みがセキュアモードでのみハンドル可能であるか否かに関する情報を記憶することができ、その割り込みが遷移を引き起こし得るか否かについての情報を含まない。したがって、フィールド５６０及び５４０は、割り込みを処理するのに望ましい状態及び割り込みにより引き起こされる可能性のある状態遷移に関する異なる情報を記憶し得る。フィールド５６０に記憶される情報は、たとえば、割り込みがセキュアモードで行われ、アドレス範囲トラップでの無限ループなしで保護アドレス範囲内にあるセキュアコードの実行が可能であるか否かを指定することができる。「トラップをセキュアモードで実行」フィールド５６０を１ビットフィールドとして示すが、他のサイズ及びタイプのフィールドを使用することも可能であることを理解されたい。さらに、５つのフィールドをトラップモードレジスタ５００に示すが、より多数及び／又は少数のフィールド、及び図示のフィールドの各種組み合わせを使用することが可能であることを理解されたい。
【００４８】
図６に、トラップモードレジスタ６００及び割り込みサービスルーチン等を検索するのに役立つアドレスを記憶するように構成することができる複数の割り込みベクトルレジスタ（６１０、６２０）で構成されたコンピュータベースのシステムを示す。図６は、トラップモードレジスタ６００がオペレーティングシステム６３０と相互作用することができ、同様にオペレーティングシステム６３０が物理デバイス６７０及び仮想デバイス６８０と相互作用することを示す。同様に仮想デバイス６８０は、物理デバイス６８２と相互作用するか、又は物理デバイス６８２に実装することができる。物理デバイス６７０及び６８２並びに／又は仮想デバイス６８０は、メモリ６４０へのメモリ参照を行うことができる。メモリ６４０は、物理メモリアクセス及び仮想メモリアクセスに対応することができる。システムが仮想メモリを使用している場合、変換ルックアサイドバッファ６５０を使用して、物理アドレスから仮想アドレスへの、また仮想アドレスから物理アドレスへの変換又はマッピングに役立てることができる。アドレス変換又はマッピングが行われると、オペレーティングシステム６３０及び／又は変換ルックアサイドバッファロジック６６０は、変換ルックアサイドバッファ６５０内のエントリ（たとえば、記録）を操作（たとえば、作成、消去、変更）することができる。
【００４９】
したがって、トラップモードレジスタ６００で構成されたシステムは、変換ルックアサイドバッファ６５０のエントリにアドレス範囲属性を選択的に設定する（set）ように構成された変換ルックアサイドバッファロジック６６０を備えることができる。アドレス範囲属性は、たとえば、物理／仮想アドレスマッピングを生じさせた、又は参照させたメモリアクセスが未実装アドレストラップのような割り込みを発生させるか否かを判断するのに役立つことができる。したがって、一例では、変換ルックアサイドバッファロジック６６０は、未実装アドレス範囲トラップが発生したときに仮想化プロセスを選択的に呼び出すように構成することができる。例として、割り込みは、セキュアモード外で実行しているコードがエントリを変換ルックアサイドバッファ６５０に挿入しようとするときに発生し得る。割り込みサービスルーチンは、エントリに関連する実際の（real）アドレスを調べることができる。実際のアドレスがトラップ可能アドレス範囲内にある場合、割り込みサービスルーチンはエントリ内のアドレス範囲属性を設定し、エントリを変換ルックアサイドバッファ６５０に挿入して戻すことができる。したがって、実際から仮想へのマッピングは、トラップ可能アドレス範囲内にあるものとしてフラグを付けることができる。この場合、変換ルックアサイドバッファ６５０のエントリのアドレス範囲属性にフラグが付いている仮想アドレスへのアクセスが試みられると、アドレス範囲トラップを行い、仮想化コードを呼び出すことができる。変換ルックアサイドバッファ６５０のエントリは、調べる必要があり、割り込みを発生させる属性をすでに有するため、トラップモードレジスタ６００に基づく外部仮想化システムを追加することに関わるパフォーマンスの低下を軽減することができる。
【００５０】
図７及び図８の流れ図を参照することで、方法例をよりよく理解することができる。説明を簡単にするために、例示する方法は一連のブロックとして図示し説明するが、方法はブロックの順序により限定されず、いくつかのブロックが図示し説明する順序とは異なる順序で、且つ／又は他のブロックと同時に行うことが可能であることを理解されたい。さらに、方法例を実施するために必要なブロックは、例示するすべてのブロックよりも少ない場合もある。さらに、追加及び／又は代替の方法では、図示していない追加のブロックを採用することができる。
【００５１】
流れ図中、ブロックは、ロジックを使用して実施することができる「処理ブロック」を示す。処理ブロックは、方法ステップ及び／又は方法ステップを実行する装置要素を表すことができる。流れ図は、特定のプログラミング言語、方法、又は様式（たとえば、手続き型、オブジェクト指向）のいずれのシンタックスも示さない。むしろ、流れ図は、当業者が、例示される処理を実行するためのロジックを開発するのに使用することができる機能情報を示す。例によっては、一時変数、ルーチンループ等のようなプログラム要素は図示されないことが理解されよう。電子アプリケーション及びソフトウェアアプリケーションは、例示するブロックを図示とは異なる他の順序で実行することができ、且つ／又はブロックを結合又は複数の構成要素に分離することができるような動的及び柔軟なプロセスを含み得ることがさらに理解されよう。プロセスは、機械語、手続き型、オブジェクト指向、及び／又は人工知能技法のような様々なプログラミング手法を使用して実施することができることが理解されよう。
【００５２】
図７に、トラップモードレジスタ、複数のアドレスレジスタ、及び複数の割り込みベクトルテーブルが構成されたコンピュータシステムの構成に関連する方法例７００を示す。一例では、方法７００は、構成されたトラップレジスタと相互作用するオペレーティングシステムがブートする前にファームウェア（たとえば、初期化ロジック）から行うことができる。したがって、一例では、方法７００は、オペレーティングシステムのブートプロセスを開始するようにブートロジックを制御する信号を生成することを含むことができる。
【００５３】
方法７００は、７１０において、少なくとも部分的にトラップタイプに基づいて、割り込みベクトルテーブルのアドレスを提供するアドレスレジスタを選択するようにトラップモードレジスタを構成することを含むことができる。たとえば、トラップモードレジスタは、アドレスレジスタのセットに動作可能に接続することができる。トラップタイプに基づいて、トラップモードレジスタは、アドレスレジスタのセットの中のいずれから割り込みベクトルテーブルアドレスを検索するかを判断することができる。トラップモードレジスタを構成することは、たとえば、トラップタイプをアドレスレジスタに関連付けることを含むことができる。これに加えて、且つ／又はこれに代えて、トラップモードレジスタを構成することは、セキュアモード遷移インジケータをトラップタイプに選択的に関連付けることを含むことができる。同様に、トラップモードレジスタを構成することは、ディセーブルインジケータをトラップタイプに選択的に関連付けること、及び／又はセキュアモード実行インジケータをトラップタイプに選択的に関連付けることを含むことができる。
【００５４】
方法７００はまた、７２０において、割り込みサービスルーチンを検索するのに役立つように割り込みベクトルテーブルを構成することを含むことができる。一例では、割り込みサービスルーチンは、デバイスの仮想化に関連する割り込みを処理するように構成することができる。割り込みについて説明するが、トラップも処理可能であることを理解されたい。割り込みベクトルテーブルを構成することは、たとえば、割り込みベクトルテーブルに割り込みサービスルーチンエントリポイントのセットを確立すること、割り込みベクトルテーブルに割り込みサービスルーチンのセットを確立すること等を含むことができる。
【００５５】
方法７００はまた、７３０において、割り込みベクトルテーブルに関連する割り込みサービスルーチンを検索するのに役立つようにアドレスレジスタを構成することを含むことができる。アドレスレジスタを構成することは、アドレスレジスタに、割り込みベクトルテーブルをアドレスレジスタに関連付ける割り込みベクトルテーブルに関連するアドレスを記憶することを含むことができる。
【００５６】
方法７００は、７４０において、トラップモードレジスタ構成、割り込みベクトルテーブル構成、及びアドレスレジスタ構成が完了したことをオペレーティングシステムに通知することを含むことができる。この通知により、オペレーティングシステムは、たとえばブート動作を開始することができる。７４０まで通知を遅らせることにより、仮想化システムコードをたとえばオペレーティングシステムコードから切り離すことに役立つことができる。
【００５７】
図７に各種アクションが順次行われるものとして示すが、図７に示す各種アクションは実質的に並列に行うことが可能であることを理解されたい。例として、第１のプロセスはトラップモードレジスタを構成し、第２のプロセスは割り込みベクトルテーブル及びアドレスレジスタを構成し、第３のプロセスはオペレーティングシステムに通知することができる。３つのプロセスについて説明するが、より多数及び／又は少数のプロセスを採用することも可能であり、また軽量プロセス、通常プロセス、スレッド、及び他の手法を採用することも可能であることを理解されたい。他の方法例は、場合によっては、実質的に並列に行われるアクションも含み得ることを理解されたい。
【００５８】
一例では、追加の構成を行うことができる。たとえば、アドレスを未実装アドレス範囲及び／又はトラップ可能アドレス範囲にあるものとして仮想デバイス（複数可）を定義することができる。したがって、トラップ可能アドレス範囲を構成することができる。さらに、仮想デバイスの仮想デバイスドライバエントリポイントを割り込みベクトルテーブル内に構成することができる。
【００５９】
図８に、トラップモードレジスタ、複数のアドレスレジスタ、及び複数のベクトルテーブルが構成されたコンピュータシステムでの割り込み処理に関連する方法８００を示す。図１２に、追加のアクションを含む方法８００の別の例を示す。８１０において、方法７００（図７）において行われたような構成及び初期化を行うことができる。たとえば、トラップモードレジスタ、アドレスレジスタ、割り込みベクトルテーブル等を初期化することができる。８２０において、８１０の構成が完了したことの通知をオペレーティングシステムに送ることができる。通知により、オペレーティングシステムをブートすることができる。オペレーティングシステムブートプロセスは、たとえば、アドレスレジスタ、割り込みベクトルテーブル等を初期化することを含むことができる。構成が完了した後でオペレーティングシステムに通知を提供することにより、８１０の構成及び初期化に関連するコード（たとえば、仮想化コード）をオペレーティングシステムから切り離したままにすることができ、また場合によってはオペレーティングシステムから保護することができる。これは、仮想化システムを有するように元々は設計されていなかったオペレーティングシステム及び／又はプロセッサに仮想化システムを提供するのに役立つことができる。同様に、これは、オペレーティングシステム及び／又はプロセッサが利用可能でなかった可能性があるデバッグシステム、ログシステム等のようなシステムを提供するのに役立つことができる。
【００６０】
方法８００はまた、８３０において、トラップを検出することを含むことができる。トラップは、たとえば、第１のアドレスレジスタ及び第１の割り込みベクトルテーブルに関連する割り込みサービスルーチンによって処理される第１のタイプの割り込みであることができる。トラップはまた、たとえば、第２のアドレスレジスタセットのうちの１つ及び第２の割り込みベクトルテーブルセットのうちの１つに関連する割り込みサービスルーチンにより処理される第２のタイプの割り込みであることもできる。したがって、８４０において、アドレス（たとえば、割り込みベクトルテーブルアドレス）を提供するアドレスレジスタを選択することができる。いずれのアドレスレジスタが選択されるかは、少なくとも部分的に、８３０において検出されたトラップのタイプに依存し得る。アドレスレジスタが選択されると、少なくとも部分的に、選択されたアドレス及び割り込みタイプに基づいて、割り込みサービスルーチンを検索することができる。
【００６１】
一例では、割り込みを仮想化システムで処理することができる場合、処理は８６０に続くことができる。８６０において、別の範囲（round；複数可）のアドレスレジスタ選択を行うことができる。例によっては、すでに選択されているアドレスレジスタをそのまま選択されるアドレスレジスタとして残すことができる場合がある。他の例では、複数の仮想化レベルがある場合、割り込みベクトルテーブルのアドレスを検索する前に一連のアドレスレジスタにアクセスすることができる。一例では、割り込みが未実装アドレストラップである場合、方法８００は、８６０において、オペレーティングシステムがアクセス不可能なアドレスレジスタを割り込みベクトルテーブルアドレスを提供するアドレスレジスタとして選択することを含むことができる。さらに、オペレーティングシステムは割り込みベクトルテーブルにアクセス不可能であり得る。割り込みベクトルテーブルは、８７０において、仮想化ファームウェアにより提供される割り込みサービスルーチンを検索するのに役立つことができる。オペレーティングシステムは、ファームウェア及び／又は割り込みサービスルーチンにアクセス不可能であり得る。８８０において、仮想デバイスドライバは仮想化システムの割り込みを処理することができる。より一般には、アドレスレジスタが８６０において選択された後、８７０において割り込みサービスルーチンを見つけ、次いで８８０において割り込みを処理することができる。８９０において、別のトラップを処理するか否かに関して判断することができる。判断がはいである場合、処理は８３０に戻ることができ、その他の場合、トラップ処理を終了することができる。
【００６２】
一例では、図１２に示すように、オペレーティングシステムが割り込みを処理することができる場合、処理は８５０に続くことができ、８５０において、制御がオペレーティングシステム及び／又はオペレーティングシステムがアクセス可能であり、且つ／又は管理する割り込みサービスルーチンに移る。この例では、方法８００はまた、８１０において仮想デバイスを構成し、８２０において通知されるように、仮想デバイスの説明をオペレーティングシステムが利用できるようにする。次いで、８３０において、仮想デバイスに関連するトラップが検出されると、方法８００は、８４０において、仮想デバイスの割り込み処理に関連するアドレスレジスタを選択することを含むことができる。上述したように、複数レベルのインダイレクション(indirection)及び／又は仮想化を有する仮想化システムでは、一連のアドレスレジスタにアクセスすることができる。結果、８６０において、割り込みサービスルーチンのアドレスを有するアドレスレジスタが見つけられる。次いで、８７０において、仮想化ファームウェアによって提供され、仮想デバイスの割り込みを処理するように構成される割り込みサービスルーチンを検索することができる。次いで、８８０において、仮想デバイスドライバが割り込みを処理することができる。
【００６３】
別の例では、８１０の初期化及び構成は、トラップ可能アドレス範囲を確立することを含むことができる。したがって、８３０において、トラップ可能アドレス範囲内のメモリロケーションへのアクセスに関連するトラップが検出されると、方法８００は、８４０において、トラップ可能アドレス範囲の割り込み処理に関連するアドレスレジスタを選択することを含むことができる。次いで、８７０において、方法８００は、仮想化ファームウェアによって提供され、トラップ可能アドレス範囲のトラップを処理するように構成された割り込みサービスルーチンを検索することを含むことができる。次いで８８０において、割り込みサービスルーチンをファームウェアにおいて実行して、割り込みを処理することができる。
【００６４】
一例では、方法はプロセッサ実行可能命令及び／又はコンピュータ可読媒体に提供される動作として実施される。したがって、一例では、コンピュータ可読媒体は、アドレスレジスタセットのうち、割り込みベクトルテーブルのアドレスを提供する１つを選択するようにトラップモードレジスタを構成することを含む方法を実行するように動作可能なプロセッサ実行可能命令を記憶することができる。選択されるアドレスレジスタは、少なくとも部分的に、トラップモードレジスタにおいて検出されるトラップタイプに基づいて判断することができる。方法はまた、デバイス仮想化に関連する割り込みを処理するように構成される割り込みサービスルーチンを検索するのに役立つように少なくとも１つの割り込みベクトルテーブルを構成することを含むことができる。方法はまた、割り込みベクトルテーブルに関連する割り込みサービスルーチンを検索するのに役立つように少なくとも１つのアドレスレジスタを構成することを含むことができる。方法はまた、トラップモードレジスタ構成、割り込みベクトルテーブル構成、及びアドレスレジスタ構成が完了したことをオペレーティングシステムに通知することを含むことができる。別の例では、方法はまた、トラップを検出すること、少なくとも部分的にトラップタイプに基づいて、割り込みベクトルテーブルアドレスを提供するアドレスレジスタを選択すること、及び少なくとも部分的に、選択されるアドレスレジスタにより提供される割り込みベクトルテーブルアドレスに基づいて、割り込みサービスルーチンを検索することを含むことができる。上記方法についてコンピュータ可読媒体に提供されるものとして説明したが、本明細書において説明する他の方法例もコンピュータ可読媒体に提供することが可能であることを理解されたい。
【００６５】
図９に、バス９０８により動作可能に接続されたプロセッサ９０２、メモリ９０４、及び入出力ポート９１０を備えたコンピュータ９００を示す。一例では、コンピュータ９００は、トラップモードレジスタへのアクセスに役立つように構成されたトラップモードレジスタロジック９３０、複数の代替アドレスレジスタ、及び複数の代替割り込みベクトルテーブルを含むことができる。バス９０８に動作可能に接続して示すが、例によっては、ロジック９３０はプロセッサ９０２に実装され、且つ／又はプロセッサ９０２により直接的に接続されてもよい。
【００６６】
トラップモードレジスタロジック９３０は、ハードウェアとして、ファームウェアとして、ソフトウェアとして、且つ／又はこれらの組み合わせとしてコンピュータ９００に実装されるか否かに関わらず、トラップモードレジスタ、複数の割り込みベクトルアドレスレジスタ、及び複数の割り込みベクトルテーブルが構成されたコンピュータシステムの部分を構成し、且つ／又は初期化する手段を提供することができる。トラップモードレジスタロジック９３０は、トラップモードレジスタに提示される未実装アドレストラップを検出する手段、及び未実装アドレストラップの処理に関連する割り込みサービスルーチンを選択的に呼び出す手段も提供することができる。一例では、割り込みサービスルーチンには、割り込みベクトルテーブルのうちの１つの中のエントリを関連付けることができる。さらに、割り込みベクトルテーブルには割り込みベクトルアドレスレジスタを通して参照することができる。したがって、トラップモードレジスタロジック９３０は、たとえば外部仮想化システムをプロセッサ９０２に提供するのに役立つ。
【００６７】
プロセッサ９０２は、デュアルマイクロプロセッサ及び他のマルチプロセッサアーキテクチャを含む様々な各種プロセッサであることができる。メモリ９０４は、揮発性メモリ及び／又は不揮発性メモリを含むことができる。不揮発性メモリとしては、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等を挙げることができるがこれらに限定されない。揮発性メモリとしては、たとえば、ＲＡＭ、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）及びダイレクトＲＡＭバスＲＡＭ（ＤＲＲＡＭ）を挙げることができる。
【００６８】
ディスク９０６は、たとえば、入出力インタフェース（たとえば、カード、デバイス）９１８及び入出力ポート９１０を介してコンピュータ９００に動作可能に接続することができる。ディスク９０６としては、磁気ディスクドライブ、ソリッドステート(solid state)ディスクドライブ、フロッピーディスク（登録商標）ドライブ、テープドライブ、Ｚｉｐドライブ、フラッシュメモリカード、及び／又はメモリスティックのようなデバイスを挙げることができるがこれらに限定されない。さらに、ディスク９０６としては、ＣＤ−ＲＯＭ、ＣＤ記録可能ドライブ（ＣＤ−Ｒドライブ）、ＣＤ書き換え可能ドライブ（ＣＤ−ＲＷドライブ）、及び／又はデジタルビデオＲＯＭドライブ（ＤＶＤ  ＲＯＭ）のような光ドライブを挙げることができる。メモリ９０４は、たとえばプロセス９１４及び／又はデータ９１６を記憶することができる。ディスク９０６及び／又はメモリ９０４は、コンピュータ９００の資源を制御し且つ割り振るオペレーティングシステムを記憶することができる。
【００６９】
バス９０８は、単一内部バス相互接続アーキテクチャ及び／又は他のバス又はメッシュアーキテクチャであることができる。単一バスを示すが、コンピュータ９００は図示しない他のバス（たとえば、ＰＣＩＥ、ＳＡＴＡ、Ｉｎｆｉｎｉｂａｎｄ、１３９４、ＵＳＢ、Ｅｔｈｅｒｎｅｔ(登録商標)）を使用して各種デバイス、ロジック、及び周辺機器と通信することができることを理解されたい。バス９０８は、メモリバス又はメモリコントローラ、周辺バス又は外部バス、クロスバースイッチ、及び／又はローカルバスが挙げられるがこれらに限定されない様々なタイプのものであることができる。ローカルバスは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＳＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、周辺構成要素相互接続（ＰＣＩ）バス、ユニバーサルシリアル（ＵＳＢ）バス、及び小型コンピュータシステムインタフェース（ＳＣＳＩ）バスが挙げられるがこれらに限定されない様々なものであることができる。
【００７０】
コンピュータ９００は、Ｉ／Ｏインタフェース９１８及び入出力ポート９１０を介して入出力デバイスと相互作用することができる。入出力デバイスとしては、キーボード、マイクロフォン、ポインティング・セレクションデバイス、カメラ、ビデオカード、ディスプレイ、ディスク９０６、ネットワークデバイス９２０等を挙げることができるがこれらに限定されない。入出力ポート９１０としては、シリアルポート、パラレルポート、及びＵＳＢポートを挙げることができるがこれらに限定されない。
【００７１】
コンピュータ９００はネットワーク環境で動作することができ、したがってＩ／Ｏインタフェース９１８及び／又はＩ／Ｏポート９１０を介してネットワークデバイス９２０に接続することができる。ネットワークデバイス９２０を通して、コンピュータ９００はネットワークと相互作用することができる。ネットワークを通して、コンピュータ９００はリモートコンピュータに論理的に接続することができる。コンピュータ９００が相互作用することができるネットワークとしては、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、及び他のネットワークが挙げられるがこれらに限定されない。ネットワークデバイス９２０は、ファイバ分散データインタフェース（ＦＤＤＩ）、銅分散データインタフェース（ＣＤＤＩ）、Ｅｔｈｅｒｎｅｔ（ＩＥＥＥ８０２．３）、トークンリング（ＩＥＥＥ８０２．５）、ワイヤレスコンピュータ通信（ＩＥＥＥ８０２．１１）、Ｂｌｕｅｔｏｏｔｈ（ＩＥＥＥ８０２．１５．１）、Ｚｉｇｂｅｅ（ＩＥＥＥ８０２．１５．４）等が挙げられるがこれらに限定されないＬＡＮ技術に接続することができる。同様に、ネットワークデバイス９２０は、ポイントツーポイントリンク、統合サービスデジタルネットワーク（ＩＳＤＮ）のような回線交換ネットワーク、パケット交換ネットワーク、及びデジタル加入者回線（ＤＳＬ）が挙げられるがこれらに限定されないＷＡＮ技術に接続することができる。個々のネットワークタイプについて述べたが、ネットワークを介して、経由して、及び／又は通しての通信は、通信の組み合わせ及び混合したものを含み得ることを理解されたい。
【００７２】
したがって、一例では、コンピュータ９００は、トラップモードレジスタ、複数の割り込みベクトルアドレスレジスタ、及び複数の割り込みベクトルテーブルが構成されたコンピュータであることができる。コンピュータ９００は、トラップモードレジスタ、割り込みベクトルアドレスレジスタ、及び割り込みベクトルテーブルを初期化するように構成された初期化ロジック（図示せず）を含むことができる。コンピュータ９００はまた、コンピュータにおいてトラップが発生すると、トラップモードレジスタが割り込みベクトルアドレスレジスタを選択するのに役立ち、ひいては選択された割り込みベクトルアドレスレジスタに関連する割り込みベクトルテーブルに関連するトラップハンドラを検索するのに役立つように構成されたトラップデータをトラップモードレジスタに提供するように構成されたトラップ処理ロジックを含むことができる。
【００７３】
図１０に、本明細書において説明したシステム例を実施するように構成されたトラップモードレジスタロジック１０１０を含む画像形成デバイスの例１０００を示す。トラップモードレジスタロジック１０１０は、本明細書において説明した方法のような実行可能な方法を実行するように構成することもできる。一例では、トラップモードレジスタロジック１０１０は、永久的に、且つ／又は取り外し可能に画像形成デバイス１０００に取り付けることができる。
【００７４】
画像形成デバイス１０００は、レンダリングするプリントデータを受け取ることができる。したがって、画像形成デバイス１０００はまた、プリントデータを記憶する、又はより一般には画像処理に使用されるように構成されたメモリ１０２０を備えることができる。画像形成デバイス１０００は、プリントデータからプリンタ使用可能画像を生成するように構成されたレンダリングロジック１０３０を備えることもできる。レンダリングは、関連するデータのフォーマット及び画像形成デバイスのタイプに基づいて変化する。一般に、レンダリングロジック１０３０は、表示又はプリントのために高レベルデータをグラフィカル画像（たとえば、プリントに使用可能な画像）に変換する。たとえば、１つの形は、三次元オブジェクト又はシーンの数学的モデルをとり、これをビットマップ画像に変換するレイトレーシングである。別の例は、ＨＴＭＬを表示／プリントする画像に変換するプロセスである。画像形成デバイス１０００は、レンダリングする必要がないプリンタ使用可能データを受け取ることもでき、したがって、画像形成デバイスによってはレンダリングロジック１０３０が見られない場合もあることを理解されたい。
【００７５】
画像形成デバイス１０００はまた、プリントに使用可能な画像から画像を印字媒体上に形成するように構成された画像形成機構１０４０を備えることができる。画像形成機構１０４０は画像形成デバイス１０００のタイプに基づいて様々であることができ、画像形成機構１０４０としては、レーザ画像形成機構、他のトナーベースの画像形成機構、インクジェット機構、デジタル画像形成機構、又は他の画像形成再現エンジンを挙げることができる。画像形成デバイス１０００の動作を制御するロジックと共に実装されたプロセッサ１０５０を備えることができる。一例では、プロセッサ１０５０はＪａｖａ(登録商標)命令を実行可能なロジックを含む。画像形成デバイス１０００の他の構成要素について本明細書において説明しないが、他の構成要素としては、媒体処理・格納機構、センサ、コントローラ、及び画像形成プロセスに関わる他の構成要素を挙げることができる。
【００７６】
これより図１１を参照して、トラップモードレジスタシステム１１１０へのアクセスを提供するアプリケーションプログラミングインタフェース（ＡＰＩ）１１００を示す。ＡＰＩ１１００は、たとえば、プログラマ１１２０及び／又はプロセス１１３０により採用されて、システム１１１０により行われる処理へのアクセスを得ることができる。たとえば、プログラマ１１２０は、（たとえば、動作を呼び出す、動作を監視する、動作を制御する）プログラムをアクセスシステム１１１０に書き込むことができ、プログラムの書き込みはＡＰＩ１１００の存在により容易になる。プログラマ１１２０は、システム１１１０の内部を理解する必要がなく、単にシステム１１１０へのインタフェースを知る必要があるだけである。これは、システム１１１０の機能を露出させながらカプセル化するのに役立つ。
【００７７】
同様に、ＡＰＩ１１００を採用して、データ値をシステム１１１０に提供し、且つ／又はシステム１１１０からデータ値を検索することができる。たとえば、仮想デバイスの割り込みを処理するプロセス１１３０は、たとえばＡＰＩ１１００に提供されるコールを使用して、ＡＰＩ１１００を介して割り込みサービスルーチンエントリポイントをシステム１１１０に提供することができる。したがって、ＡＰＩ１１００の一例では、アプリケーションプログラミングインタフェースのセットをコンピュータ可読媒体に記憶することができる。インタフェースは、プログラマ、コンピュータ構成要素、ロジック等により採用して、トラップモードレジスタシステム１１１０へのアクセスを得ることができる。インタフェースは、割り込みベクトルアドレスレジスタデータを通信する第１のインタフェース１１４０、割り込みベクトルテーブルエントリを通信する第２のインタフェース１１５０、及び割り込みベクトルアドレスレジスタデータ及び割り込みベクトルテーブルエントリに関連するトラップモードレジスタ構成データを通信する第３のインタフェース１１６０を含むことができるがこれらに限定されない。一例では、トラップモードレジスタ構成データは、割り込みベクトルアドレスの選択及び割り込みベクトルテーブルエントリの発見に役立つ。
【００７８】
システム例、方法例等について例を説明することによって例示するとともに、例についてかなり詳細に説明したが、添付の特許請求の範囲をこのような詳細に制限する、又は多少なりとも限定することは本願の意図ではない。もちろん、本明細書において説明したシステム、方法等を説明するために、構成要素又は方法の考えられるあらゆる組み合わせを説明することは不可能である。さらなる利点及び変更が当業者に容易に思い付くであろう。したがって、本発明は図示し説明した特定の詳細、代表的なデバイス、及び実例に限定されない。したがって、本願は、添付の特許請求の範囲内にある代替、変更、及び変形を包含するものである。さらに、上記説明は本発明の範囲の限定を意図しない。むしろ、本発明の範囲は、添付の特許請求の範囲及びその等価物によって決められるべきである。
【００７９】
用語「含む」又は「含んでいる」が詳細な説明又は特許請求の範囲で採用されている限り、請求項において変わり目の用語として採用される場合に用語「備える」が解釈されるように、用語「備える」と同様に包含を意図する。さらに、用語「又は」が詳細な説明又は特許請求の範囲において採用される限り（たとえば、Ａ又はＢ）、「Ａ又はＢ又は両方」を意味することを意図する。出願人が「Ａのみ又はＢのみであって両方ではない」ことを示すことを意図する場合には、用語「Ａのみ又はＢのみであって両方ではない」が採用される。したがって、本明細書での用語「又は」の用法は包含であり、排他的用法ではない。Bryan A. Garner、A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)を参照のこと。
【図面の簡単な説明】
【００８０】
【図１】単一の割り込みベクトルレジスタ及び単一の割り込みベクトルテーブルが構成されたコンピュータシステム例を示す図である。
【図２】１つのトラップモードレジスタ、２つのアドレスレジスタ、及び２つの割り込みベクトルテーブルが構成されたコンピュータシステム例を示す図である。
【図３】１つのトラップモードレジスタ、２つのアドレスレジスタ、及び２つの割り込みベクトルテーブルが構成された別のコンピュータシステム例を示す図である。
【図４】トラップモードレジスタ及び２つのアドレスレジスタが構成された別のコンピュータシステム例を示す図である。
【図５】トラップモードレジスタ例を示す図である。
【図６】１つのトラップモードレジスタ、２つの割り込みベクトルレジスタ、及び１つの変換ルックアサイドバッファロジックが構成されたコンピュータシステム例を示す図である。
【図７】１つのトラップモードレジスタ、複数のアドレスレジスタ、及び複数の割り込みベクトルテーブルが構成されたコンピュータシステムの構成に関連する方法例を示す図である。
【図８】１つのトラップモードレジスタ、複数のアドレスレジスタ、及び複数のベクトルテーブルが構成されたコンピュータシステムでの割り込み処理に関連する方法例を示す図である。
【図９】本明細書に示すシステム例及び方法例が動作可能なコンピューティング環境例を示す図である。
【図１０】本明細書に示すシステム例及び方法例が動作可能な画像形成デバイス例を示す図である。
【図１１】アプリケーションプログラミングインタフェース（ＡＰＩ）例を示す図である。
【図１２】１つのトラップモードレジスタ、複数のアドレスレジスタ、及び複数のベクトルテーブルが構成されたコンピュータシステムでの割り込み処理に関連する別の方法例を示す図である。
【符号の説明】
【００８１】
１１０・・・プロセス
１２０・・・デバイス
１３０・・・オペレーティングシステム
１４０・・・割り込みベクトルレジスタ
１５０・・・割り込みベクトルテーブル
１５２〜１５９・・・ロケーション
２００・・・プロセス
２１０・・・デバイス
２２０・・・オペレーティングシステム
２３０・・・トラップモードレジスタ
２４０，２５０・・・アドレスレジスタ
２４１，２５１・・・割り込みベクトルテーブル
２４２〜２４９，２５２〜２５９・・・ロケーションＮ
３００・・・初期化ロジック
３１０・・・トラップモードレジスタ
３２０，３３０・・・アドレスレジスタ
３２１，３３１・・・割り込みベクトルテーブル
３２２〜３２９，３３２〜３３９・・・ロケーションＮ
３４０・・・オペレーティングシステム
４００・・・トラップモードレジスタ
４１０，４２０・・・アドレスレジスタ
４３０・・・トラップ可能アドレス範囲
４４０・・・プロセッサ
４５０・・・セキュアモードロジック
４６０・・・初期化ロジック
５００・・・トラップモードレジスタ
５１０・・・代替テーブル利用可能
５２０・・・トラップタイプ
５３０・・・割り込みベクトルテーブルアドレス
５４０・・・セキュアモード遷移ビット
５５０・・・トラップディセーブルビット
５６０・・・トラップをセキュアモードで実行ビット
６００・・・トラップモードレジスタ
６１０・・・割り込みベクトルレジスタ
６２０・・・代替割り込みベクトルレジスタ
６３０・・・オペレーティングシステム
６４０・・・メモリ
６５０・・・変換ルックアサイドバッファ
６６０・・・変換ルックアサイドバッファロジック
６７０，６８２・・・物理デバイス
６８０・・・仮想デバイス
９００・・・コンピュータ
９０２・・・プロセッサ
９０４・・・メモリ
９０６・・・ディスク
９０８・・・バス
９１０・・・Ｉ／Ｏポート
９１４・・・プロセス
９１６・・・データ
９１８・・・Ｉ／Ｏインタフェース
９２０・・・ネットワークデバイス
９３０・・・トラップモードレジスタロジック
１０００・・・画像形成装置
１０１０・・・トラップモードレジスタロジック
１０２０・・・メモリ
１０３０・・・レンダリングロジック
１０４０・・・画像形成機構
１０５０・・・プロセッサ
１１００・・・ＡＰＩ
１１２０・・・プログラマ
１１３０・・・プロセス
１１４０・・・割り込みベクトルアドレスレジスタデータ
１１５０・・・割り込みベクトルテーブルエントリ
１１６０・・・トラップモードレジスタ構成データ
１１１０・・・トラップモードレジスタシステム
【図１】
2006164284.tif 000003
【図２】
2006164284.tif 000004
【図３】
2006164284.tif 000005
【図４】
2006164284.tif 000006
【図５】
2006164284.tif 000007
【図６】
2006164284.tif 000008
【図７】
2006164284.tif 000009
【図８】
2006164284.tif 000010
【図９】
2006164284.tif 000011
【図１０】
2006164284.tif 000012
【図１１】
2006164284.tif 000013
【図１２】
2006164284.tif 000014