(57)【特許請求の範囲】
【請求項１】
割込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部を含む記憶装置と、
前記記憶部に記憶した前記プログラム状態語を使用可能か否かについての判定を行なう判定部と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納部と、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得部と、
取得した前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行部とを含む演算処理装置と、
を含むことを特徴とする情報処理装置。
【請求項２】
前記プログラム状態語は、前記プログラム状態語の形式によって、プログラム状態語内の所定のデータ位置に予め定められたデータを含むデータであって、
前記演算処理装置が、
前記プログラム状態語が前記所定のデータ位置に予め定められたデータを含む場合に、前記プログラム状態語を使用可能である旨の判定を行なうこと
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
第１の演算処理装置と第２の演算処理装置と記憶装置とを含む情報処理装置であって、
前記記憶装置は、
割込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部を有し、
前記第１の演算処理装置は、
前記記憶部に記憶した前記プログラム状態語が使用可能か否かの判定を行なう判定部と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納部とを有し、
前記第２の演算処理装置は、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得部と、
取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行部と
を有することを特徴とする情報処理装置。
【請求項４】
前記第２の演算処理装置は、前記プログラム状態語が書き換えられた場合に、書き換えられたプログラム状態語に対応付けて、前記プログラム状態語が書き換えられたことを示す更新情報を前記記憶部にさらに対応付けて格納し、
前記第１の演算処理装置の判定部は、前記記憶部に記憶される更新情報に基づいて、前記プログラム状態語が書き換えられたことを検出した場合に、前記プログラム状態語を使用可能か否かの判定を行なうことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２の演算処理装置は、当該情報処理装置とは異なるアーキテクチャをエミュレートして、当該異なるアーキテクチャの各種処理を実行するプロセッサであり、
前記第１の演算処理装置は、前記異なるアーキテクチャの各種処理を実行しないプロセッサであることを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記異なるアーキテクチャのメモリ空間を再現した再現領域に前記プログラム状態語を記憶する状態語記憶部を有し、
前記第１の演算処理装置の判定部は、前記状態語記憶部に記憶されるプログラム状態語を使用可能か否かの判定を行ない、
前記格納部は、前記プログラム状態語と前記判定の結果とを対応付けて、前記記憶装置の所定領域に格納し、
前記第２の演算処理装置の取得部は、前記割込み処理が発生した場合に、前記判定の結果を前記所定領域から取得し、取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、前記プログラム状態語を前記所定領域から取得し、
前記実行部は、前記取得部によって取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、前記取得部によって取得されたプログラム状態語に含まれる前記アドレスを用いてデータを読み出すことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、複数の演算処理装置を有するものであって、
前記情報処理装置において各種処理を実行する演算処理装置の数と、前記情報処理装置において各種処理を実行しない演算処理装置の数とを対応付けて記憶する装置情報記憶部と、
前記装置情報記憶部に記憶される前記各種処理を実行する演算処理装置の数および前記各種処理を実行しない演算処理装置の数に基づいて、前記各種処理を実行しない演算処理装置を前記第１の演算処理装置として機能させるか、前記第２の演算処理装置として機能させるかの割り当てを行なうことを特徴とする装置特定部とをさらに有することを特徴とする請求項３〜６のいずれか一つに記載の情報処理装置。
【請求項８】
情報処理装置に、
割込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部に記憶した前記プログラム状態語を使用可能か否かについての判定を行なう判定手順と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納手順と、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得手順と、
取得した前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行手順と
を実行させることを特徴とする割込み制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および割込み制御プログラムに関する。
【背景技術】
【０００２】
従来、サーバなどの情報処理装置では、搭載された物理ＣＰＵ（Central  Processing  Unit）とは異なるアーキテクチャのＣＰＵをエミュレートすることが行われている。ＣＰＵに限らず、情報処理装置では、搭載されたＯＳ（Operating  System）とは異なるＯＳをエミュレートすることも行われている。
【０００３】
例えば、ＬＩＮＵＸ（登録商標）などのオープン系ＯＳを搭載するサーバは、メインフレームに搭載される汎用機用ＯＳを自サーバ内で再現し、汎用機用ＯＳ向けのアプリケーションなどを動作させる。
【０００４】
かかる情報処理装置は、異なるアーキテクチャの命令を再現する命令エミュレートを実行するとともに、例外発生時には割込み処理も実行する。割込み処理については、例えば特許文献１には、割込み処理が発生した度に実行していた状態監視機能のリセットを、必要な時にだけ実行する技術が開示されている。また、特許文献２には、一般のバッファメモリとは別のバッファメモリに、割込み処理に対応するＰＳＷ（Program  Status  Word）を固定的に格納しておくことで、割込み処理時のＰＳＷのロード時間を高速化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭５８−１１７０５９号公報
【特許文献２】特開昭６２−０４３７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＣＰＵが命令を実行することにより、割り込み処理に対応するＰＳＷなどの情報を格納するメモリ上の領域ＰＳＡ（Program  Save  Area）に情報を上書きしてしまうことがある。ＰＳＡへの上書きを防止するロックを行なったとしても、ＰＳＡの情報を更新する必要が生じた場合にはロックを解除するため、そのタイミングにおいてＰＳＷの書き換えが発生してしまう可能性がある。特に、複数のＣＰＵでメモリを共有する場合には、あるＣＰＵが確保したＰＳＡに対して、他のＣＰＵが上書きを行なうということが発生しうる。
【０００７】
その場合、ＰＳＡに格納されているＰＳＷが書き換えられてしまうため、従来の情報処理装置では、割込み処理が発生する度に、割込み処理に対応したＰＳＷに異常があるか否かを判定する判定処理を実行していた。割り込み処理が発生する度に判定処理を実行するので、割込み処理に時間がかかるという課題があった。
【０００８】
ＰＳＷに異常があるか否か判定処理では、６４ビットを有するＰＳＷにおける複数フィールドの値をチェックするなどにより判定する。例えば、情報処理装置は、３１ビットアドレスモードのＯＳをエミュレートしている場合、ビット２４〜ビット３２が１でないかを判定する。さらに、情報処理装置は、ビット０、ビット２〜３、ビット１２、ビット１６、ビット１７のそれぞれの値をチェックする。そして、情報処理装置は、全てのビットが正常な値である場合に、割込み処理を実行する。
【０００９】
情報処理装置は、割込み処理が発生する度に上記判定処理を実行することとなるため、割込み処理が頻繁に発生した場合などでは、ＰＳＷの判定処理がボトルネックとなる。この結果、割込み処理におけるオーバヘッドが大きくなって、割込み処理を開始するまでに時間を要し、割込み処理自体に時間がかかる。
【００１０】
１つの側面では、割込み処理の処理時間を短縮することができる情報処理装置および割込み制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の案では、割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部を含む記憶装置を有する。また、演算処理装置は、前記記憶部に記憶した前記プログラム状態語を使用可能か否かについての判定を行なう判定部を有する。また、演算処理装置は、前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納部と、前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得部とを含む。また、演算処理装置は、取得した前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行部を含む。
【発明の効果】
【００１２】
情報処理装置および割込み制御プログラムの一つの態様によれば、割込み処理の処理時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る情報処理装置の構成を示すブロック図である。
【図２】図２は、実施例２に係る情報処理装置の構成を示すブロック図である。
【図３】図３は、ＰＳＡ領域に格納される情報の例を示す図である。
【図４】図４は、新ＰＳＷ記憶領域内に記憶される使用可能フラグの判定例を示す図である。
【図５】図５は、新ＰＳＷ記憶領域内に記憶されるチェック結果の判定例を示す図である。
【図６】図６は、新ＰＳＷの形式チェックと割込み処理との関係例を説明する図である。
【図７】図７は、新ＰＳＷの形式チェックの流れを示すフローチャートである。
【図８】図８は、新ＰＳＷの形式チェックの流れを示すフローチャートである。
【図９】図９は、割込み処理の流れを示すフローチャートである。
【図１０】図１０は、複数のＣＰＵを用いて新ＰＳＷの形式チェックを行う例を示す図である。
【図１１】図１１は、複数の命令実行用ＣＰＵに対して新ＰＳＷの形式チェックを行う例を示す図である。
【図１２】図１２は、割込み制御プログラムを実行するコンピュータシステムの例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置および割込み制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
図１は、実施例１に係る情報処理装置の構成を示すブロック図である。図１に示すように、情報処理装置１は、記憶部２とＣＰＵ（Central  Processing  Unit）３とＣＰＵ４とを有し、それぞれがバスを介して接続されるサーバなどの装置である。記憶部２は、割込み処理に対応するプログラム状態語と当該プログラム状態語に異常があるか否かを示す判定結果とを対応付けて記憶するメモリなどである。
【００１６】
プログラム状態語とは、ＰＳＷ（Program  Status  Word）ともいう。割り込み処理に対応するプログラム状態語には、その割り込み処理の実行内容（命令）を規定したデータの格納先を示す命令アドレス（ＩＡ）と、ＰＳＷのデータ形式によって予め定められたデータとが含まれる。ＣＰＵは、割り込みの発生に応じて、割り込み処理に対応するプログラム状態語から命令アドレスを読出し、読み出した命令アドレスに基づいて割り込み処理の命令を読み出す。
【００１７】
ＣＰＵ３は、通常の演算処理や割込み処理などの各種処理を実行していない演算処理装置であり、判定部３ａと結果格納部３ｂとを有する。かかる判定部３ａは、割込み処理に対応するプログラム状態語に異常があるか否か、すなわち命令アドレスの見出しに使用可能か否かを判定する。プログラム状態語についての判定は、プログラム状態語に含まれるデータ形式によって予め定められるデータが、データ形式に合致しているかによって判定される。結果格納部３ｂは、判定部３ａによって判定されたプログラム状態語と判定結果とを対応付けて、記憶部２に格納する。
【００１８】
ＣＰＵ４は、通常の演算処理や割込み処理などの各種処理を実行する演算処理装置であり、結果取得部４ａと処理実行部４ｂとを有する。例えば、ＣＰＵ４は、情報処理装置１が搭載するＣＰＵやＯＳ（Operating  System）とは異なるアーキテクチャのＣＰＵやＯＳをエミュレートする処理なども実行する。かかる結果取得部４ａは、割込み処理が発生した場合に、当該割込み処理に対応するプログラム状態語の判定結果を記憶部２から取得する。処理実行部４ｂは、結果取得部４ａによって取得された判定結果が正常である場合に、当該判定結果に対応付けられたプログラム状態語を記憶部２から取得し、取得したプログラム状態語の命令アドレスを用いて、割込み処理を実行する。
【００１９】
上述したように、情報処理装置１は、割込み処理などの各種処理を実行していないＣＰＵ３で、ＰＳＷのチェックを割込み発生前に実行しておく。そして、情報処理装置１は、ＣＰＵ４が割込み処理を実行する場合に、ＰＳＷのチェックを実施することなく割込み処理を開始する。この結果、割込み処理の処理時間を短縮することができる。また、ＣＰＵ４が、結果取得部４ａと処理実行部４ｂとに加えて、さらに判定部３ａと結果格納部３ｂとを有するようにしても良い。通常の演算処理や割込み処理などの各種処理の合間に判定処理を実行しておくことによって、ＣＰＵ４は、割り込み処理の実行を、ＰＳＷの形式チェックを除いて行なうことができる。
【実施例２】
【００２０】
次に、実施例２に係る情報処理装置について説明する。実施例２では、情報処理装置の構成、処理の流れ、実施例２による効果について順に説明する。なお、実施例２では、割込み処理に対応するＰＳＷ（Program  Status  Word）を「新ＰＳＷ」と呼び、割込み処理発生時にＣＰＵがレジスタ等に保持しているＰＳＷを「旧ＰＳＷ」と呼ぶ。
【００２１】
［情報処理装置の構成］
図２は、実施例２に係る情報処理装置の構成を示すブロック図である。図２に示すように、情報処理装置１０は、通信制御Ｉ／Ｆ部１１と入出力部１２と補助記憶部１３と主記憶部１４と命令実行用ＣＰＵ１５とチェック用ＣＰＵ１６とを有し、それぞれがバスを介して接続される。
【００２２】
通信制御Ｉ／Ｆ部１１は、例えばネットワークカードなど、他の装置との間の通信を制御するインタフェースであり、他の装置から各種要求を受信したり、処理結果等を他の装置に送信したりする。
【００２３】
入出力部１２は、例えばキーボードやマウスなどの入力装置、ディスプレイやスピーカーなどの出力装置などである。例えば、入出力部１２は、管理者等からトランザクションの実行指示を受信したり、実行結果を表示したりする。補助記憶部１３は、命令実行用ＣＰＵ１５が命令実行に使用する各種データを記憶するハードディスクドライブなどの記憶装置である。
【００２４】
主記憶部１４は、命令実行用ＣＰＵ１５が命令実行に使用する各種データやプログラムを記憶するメインメモリなどであり、エミュレート領域１４ａと新ＰＳＷ記憶領域１４ｃと構成情報記憶領域１４ｄとを有する。
【００２５】
エミュレート領域１４ａは、命令実行用ＣＰＵ１５でエミュレートするＯＳ等のメモリ空間を表現する領域であり、ＰＳＡ（Program  Save  Area）領域１４ｂを有する。例えば、情報処理装置１０がＬＩＮＵＸ（登録商標）を実行している状況で、メインフレームに用いられる汎用機用ＯＳをエミュレートする場合、汎用機用ＯＳのメモリ空間を表現する領域である。
【００２６】
ＰＳＡ領域１４ｂは、割込み発生時にロードされる新ＰＳＷや割込み発生時に命令実行用ＣＰＵ１５が保持していた旧ＰＳＷなどを格納する、エミュレート領域１４ａ内で予め予約された領域である。また、ＰＳＡ領域１４ｂは、割込み発生時のレジスタの内容、割込みコードなどの割込み関連情報も格納する。
【００２７】
図３は、ＰＳＡ領域に格納される情報の例を示す図である。図３に示すＰＳＡ領域は、例えば、エミュレート領域１４ａの低アドレス領域である０バイトから５１２バイトなどに予約されて格納される。なお、図３に示した各数値はあくまで例示であり、これに限定されるものではない。また、図３に示した割込み種別も例示であり、これに限定されるものではない。
【００２８】
図３に示すように、「０バイト〜７バイト」には、再始動割込みが発生した場合に、命令実行用ＣＰＵ１５がロードする新ＰＳＷが格納されている。「８バイト〜１５バイト」には、再始動割込みが発生した場合に、命令実行用ＣＰＵ１５がレジスタ等に保持していた旧ＰＳＷが格納されている。「２４バイト〜３１バイト」には、外部割込みが発生した場合に、命令実行用ＣＰＵ１５がレジスタ等に保持していた旧ＰＳＷが格納されている。「３２バイト〜３９バイト」には、ＳＶＣ（supervisor  call）割込みが発生した場合に、命令実行用ＣＰＵ１５がレジスタ等に保持していた旧ＰＳＷが格納されている。
【００２９】
「４０バイト〜４７バイト」には、プログラム割込みが発生した場合に、命令実行用ＣＰＵ１５がレジスタ等に保持していた旧ＰＳＷが格納されている。「４８バイト〜５５バイト」には、マシンチェックが発生した場合に、命令実行用ＣＰＵ１５がレジスタ等に保持していた旧ＰＳＷが格納されている。「５６バイト〜６３バイト」には、入出力割込みが発生した場合に、命令実行用ＣＰＵ１５がレジスタ等に保持していた旧ＰＳＷが格納されている。
【００３０】
「８８バイト〜９５バイト」には、外部割込みが発生した場合に、命令実行用ＣＰＵ１５がロードする新ＰＳＷが格納されている。「９６バイト〜１０３バイト」には、ＳＶＣ割込みが発生した場合に、命令実行用ＣＰＵ１５がロードする新ＰＳＷが格納されている。「１０４バイト〜１１１バイト」には、プログラム割込みが発生した場合に、命令実行用ＣＰＵ１５がロードする新ＰＳＷが格納されている。「１１２バイト〜１１９バイト」には、マシンチェックが発生した場合に、命令実行用ＣＰＵ１５がロードする新ＰＳＷが格納されている。「１２０バイト〜１２７バイト」には、入出力割込みが発生した場合に、命令実行用ＣＰＵ１５がロードする新ＰＳＷが格納されている。「１２８バイト〜５１２バイト」には、割込み関連情報や情報処理装置１０が各種処理を実行する際に使用する制御情報等が格納されている。
【００３１】
新ＰＳＷ記憶領域１４ｃは、命令実行用ＣＰＵ１５とチェック用ＣＰＵ１６との間で、割込みが発生した場合に用いる情報を共有する領域であり、「割込み種別」ごとに、「新ＰＳＷ、使用可能フラグ、チェック結果」を対応付けて記憶する。
【００３２】
「割込み種別」とは、例えば外部割込み、入出力割込み、プログラム割込みなど割込みの種類を示す。「新ＰＳＷ」とは、割込み発生時にロードされる例えば６４ビットのＰＳＷであり、情報処理装置１０が有するエミュレート動作機構等の仕様に従ったフォーマットで記述される。「使用可能フラグ」は、新ＰＳＷが使用可能か否かを判定する際に用いる２ビットのフラグである。「使用可能フラグのｂｉｔ０」は、ＰＳＡ領域１４ｂ内の新ＰＳＷが書き換えられたか否かを示すフラグであり、書き換えられた場合には「１」、書き換えられていない場合には「０」が格納される。また、「使用可能フラグのｂｉｔ１」は、チェック用ＣＰＵ１６による新ＰＳＷの形式チェックが完了しているか否かを示すフラグであり、完了している場合には「１」、未完了の場合には「０」が格納される。
【００３３】
ここで、使用可能フラグの判定例を説明する。命令実行用ＣＰＵ１５は、図４に示す値に基づいて、新ＰＳＷが使用可能か否かを判定する。図４は、新ＰＳＷ記憶領域内に記憶される使用可能フラグの判定例を示す図である。図４に示すように、「ｂｉｔ０、ｂｉｔ１」が「０、０」である場合には、更新もされておらず、形式チェックもされていない新ＰＳＷが格納されていることを示しているので、命令実行用ＣＰＵ１５は、新ＰＳＷは使用不可であると判定する。「ｂｉｔ０、ｂｉｔ１」が「１、０」である場合には、形式チェックがされていない更新された新ＰＳＷが格納されていることを示しているので、命令実行用ＣＰＵ１５は、新ＰＳＷは使用不可であると判定する。「ｂｉｔ０、ｂｉｔ１」が「０、１」である場合には、形式チェックがされている新ＰＳＷが格納されていることを示しているので、命令実行用ＣＰＵ１５は、新ＰＳＷは使用可能であると判定する。「ｂｉｔ０、ｂｉｔ１」が「１、１」である場合には、形式チェックはされたが、チェック後に更新されている新ＰＳＷが格納されていることを示しているので、命令実行用ＣＰＵ１５は、新ＰＳＷは使用不可であると判定する。なお、ここでは２ビットの情報を用いる例を説明したが、これに限定されるものではない。
【００３４】
「チェック結果」は、チェック用ＣＰＵ１６がＰＳＷに異常があるか否かを判定した結果、例えば、新ＰＳＷの形式チェック結果を示す２ビットの情報である。図５は、新ＰＳＷ記憶領域内に記憶されるチェック結果の判定例を示す図である。図５に示すように、値が「００」である場合には、新ＰＳＷの形式は正しいことを示しており、「０１」である場合には、新ＰＳＷの形式が不正であることを示している。また、値が「１０」である場合には、新ＰＳＷの命令アドレス（ＩＡ）が奇数であることを示しており、「１１」は、本実施例では使用されない値である。なお、ここでは２ビットの情報を用いる例を説明したが、これに限定されるものではない。
【００３５】
図２に戻り、構成情報記憶領域１４ｄは、チェック用ＣＰＵ１６や命令実行用ＣＰＵ１５などの割当て方を決定する際に用いる、命令実行ＣＰＵ数や余剰ＣＰＵ数等のシステム構成情報を記憶する。ここで記憶される「命令実行ＣＰＵ数」は、命令を実行する又は命令を実行しているＣＰＵの数であり、「余剰ＣＰＵ数」は、命令を実行しない又は命令を実行していないＣＰＵの数である。なお、ここで記憶される情報は、管理者等によって格納されてもよく、情報処理装置１０が各ＣＰＵの負荷状況や各ＣＰＵの命令処理状況に基づいて格納するようにしてもよい。
【００３６】
命令実行用ＣＰＵ１５は、新ＰＳＷの形式チェックを除く割込み処理や、命令エミュレーション処理を実行するＣＰＵであり、命令エミュレート実行部１５ａと割込み実行部１５ｂと新ＰＳＷ更新部１５ｃとを有する。なお、命令実行用ＣＰＵ１５は、情報処理装置１０が有するＯＳやＣＰＵのアーキテクチャとは異なるアーキテクチャのＯＳやＣＰＵをエミュレートする処理以外にも、通常の演算処理等も実行する。
【００３７】
命令エミュレート実行部１５ａは、ＯＳやＣＰＵをエミュレートし、エミュレートしたＯＳやＣＰＵなどの命令を実行する。例えば、命令エミュレート実行部１５ａは、主記憶部１４に表現されたエミュレート領域１４ａを用いて、エミュレートしているＯＳやＣＰＵなどの命令を実行し、命令エミュレーション処理を実行する。
【００３８】
割込み実行部１５ｂは、割込み処理が発生した場合に、当該割込み処理に対応する新ＰＳＷの判定結果を新ＰＳＷ記憶領域１４ｃから取得する。そして、割込み実行部１５ｂは、取得された判定結果が正常である場合に、当該判定結果に対応付けられた新ＰＳＷを新ＰＳＷ記憶領域１４ｃから取得し、取得した新ＰＳＷの命令アドレスを用いて、割込み処理を実行する。
【００３９】
例えば、割込み実行部１５ｂは、外部割込みが発生した場合に、割込み発生時にレジスタ等に保持している旧ＰＳＷをＰＳＡ領域１４ｂに格納する。続いて、割込み実行部１５ｂは、外部割込みの新ＰＳＷに対応付けられた「使用可能フラグ」を新ＰＳＷ記憶領域１４ｃから取得する。そして、割込み実行部１５ｂは、取得した「使用可能フラグ」が「０、０」、「１、０」、「１、１」である場合には、当該新ＰＳＷが使用不可であると判定して、「使用可能フラグ」が「０、１」になるまで「使用可能フラグ」を監視したり、自ら例外処理を実行したりする。また、割込み実行部１５ｂは、取得した「使用可能フラグ」が「０、１」である場合には、当該新ＰＳＷが使用可能であると判定し、当該新ＰＳＷに対応付けられた「チェック結果」を新ＰＳＷ記憶領域１４ｃから取得する。なお、割込み実行部１５ｂは、例外処理後に、使用可能フラグをクリアする。もしくは、例外処理によって、例外処理後に、使用可能フラグがクリアされる。
【００４０】
そして、割込み実行部１５ｂは、取得した「チェック結果」が「００」である場合には、当該新ＰＳＷの形式が正しいと判定し、当該新ＰＳＷを新ＰＳＷ記憶領域１４ｃから取得する。続いて、割込み実行部１５ｂは、取得した新ＰＳＷの命令アドレスを用いて、外部割込み処理を終了する。一方、割込み実行部１５ｂは、取得した「チェック結果」が「０１」である場合には、当該新ＰＳＷの形式に不正があると判定して、処理を終了したり、例外処理を実行したりする。同様に、割込み実行部１５ｂは、取得した「チェック結果」が「１０」である場合には、当該新ＰＳＷの命令アドレスが奇数であると判定して、処理を終了したり、例外処理を実行したりする。
【００４１】
また、実行した割込み処理が終了した場合に、割込み実行部１５ｂは、割込み処理が終了したことを命令エミュレート実行部１５ａに通知する。通知された命令エミュレート実行部１５ａは、割込み発生時にＰＳＡ領域１４ｂに格納した旧ＰＳＷをロードし、当該旧ＰＳＷの命令アドレス等を用いて、割込み発生によって中断した処理を再開する。
【００４２】
図２に戻り、新ＰＳＷ更新部１５ｃは、ＰＳＡ領域１４ｂに格納される新ＰＳＷを更新する。例えば、新ＰＳＷ更新部１５ｃは、ＯＳや割込みプログラム等から更新指示を受け付けた場合に、該当する新ＰＳＷを更新する。すると、新ＰＳＷ更新部１５ｃは、更新した新ＰＳＷに対応付けて新ＰＳＷ記憶領域１４ｃに記憶される「使用可能フラグ」の「ｂｉｔ０」を「１」にする。すなわち、新ＰＳＷ更新部１５ｃは、新ＰＳＷの更新と「使用可能フラグ」の更新とを同期させる。
【００４３】
同期させる手法の一例としては、新ＰＳＷ更新部１５ｃは、新ＰＳＷの更新を検出するトラップを主記憶部１４上で実行し、新ＰＳＷの更新を検出すると、カーネル等に通知する。この通知を受けたカーネルは、該当する新ＰＳＷに対するアクセスを排他する。そして、新ＰＳＷ更新部１５ｃは、該当する新ＰＳＷの「使用可能フラグ」の「ｂｉｔ０」を「１」にする。このようにすることで、新ＰＳＷ更新部１５ｃは、新ＰＳＷの更新と「使用可能フラグ」の更新とを同期させることができる。さらに、新ＰＳＷが更新されて「使用可能フラグ」が更新されるまでの間に、新ＰＳＷがロードされることを防止できる。
【００４４】
チェック用ＣＰＵ１６は、新ＰＳＷの形式に異常がないかを判定するＣＰＵであり、チェック処理部１６ａとチェック結果格納部１６ｂとを有する。このチェック用ＣＰＵ１６は、通常の演算処理や割込み処理などの各種処理を実行しないＣＰＵである。また、形式チェックを実行する割込み種別は、任意に指定することができる。
【００４５】
チェック処理部１６ａは、所定のタイミングで、割込み処理に対応する新ＰＳＷに異常があるか否かを判定する形式チェックを実施する。例えば、チェック処理部１６ａは、ＯＳ等の操作によってＰＳＡ領域１４ｂに新ＰＳＷが新たに格納された場合や新ＰＳＷ記憶領域の「使用可能フラグ」の「ｂｉｔ０」が「１」になったことを検出した場合に、チェック処理部１６ａは、該当する新ＰＳＷをＰＳＡ領域１４ｂからロードして、形式チェックを実行する。
【００４６】
チェック処理部１６ａが実行する形式チェック手法は、ＣＰＵ等のアドレスモードやビット幅等によって特定されるものである。情報処理装置１０は、任意にＣＰＵを用いることができ、任意にアドレスモードを利用することができるので、アドレスモードに応じたチェック手法であれば、いずれのチェック手法も用いることができる。
【００４７】
例えば、アドレスモードが３１ビットの場合、チェック処理部１６ａは、６４ビットの新ＰＳＷのうち、ビット２４〜３２の値が全て０であるか、ビット０の値が０であるかをチェックする。さらに、チェック処理部１６ａは、ビット２〜３の値が０であるか、ビット１２の値が１であるか、ビット１６の値が０であるか、ビット１７の値が１であるか、新ＰＳＷの命令アドレスが奇数でないかをチェックする。そして、チェック処理部１６ａは、チェック結果をチェック結果格納部１６ｂに出力する。
【００４８】
チェック結果格納部１６ｂは、チェック処理部１６ａによって異常があるか否かが判定された新ＰＳＷと判定結果とを対応付けて、新ＰＳＷ記憶領域１４ｃに格納する。例えば、チェック結果格納部１６ｂは、入出力割込みの新ＰＳＷのチェック結果として、「新ＰＳＷの形式は正しい」ことをチェック処理部１６ａから受信したとする。この場合、チェック結果格納部１６ｂは、「入出力割込みの新ＰＳＷ」とチェック結果「００」とを対応付けて新ＰＳＷ記憶領域１４ｃに格納し、「使用可能フラグ」のビット１に「１」を格納する。
【００４９】
また、チェック結果格納部１６ｂは、外部割込みの新ＰＳＷのチェック結果として、「新ＰＳＷの命令アドレスが奇数である」ことをチェック処理部１６ａから受信したとする。この場合、チェック結果格納部１６ｂは、「入出力割込みの新ＰＳＷ」とチェック結果「１０」とを対応付けて新ＰＳＷ記憶領域１４ｃに格納し、「使用可能フラグ」のビット１に「１」を格納する。
【００５０】
同様に、チェック結果格納部１６ｂは、プログラム割込みの新ＰＳＷのチェック結果として、「新ＰＳＷの形式は不正である」ことをチェック処理部１６ａから受信したとする。この場合、チェック結果格納部１６ｂは、「プログラム割込みの新ＰＳＷ」とチェック結果「０１」とを対応付けて新ＰＳＷ記憶領域１４ｃに格納し、「使用可能フラグ」のビット１に「１」を格納する。
【００５１】
［新ＰＳＷの形式チェックと割込み処理との関係］
次に、新ＰＳＷの形式チェックと割込み処理との関係について説明する。図６は、新ＰＳＷの形式チェックと割込み処理との関係例を説明する図である。図６に示すように、ＰＳＡ領域１４ｂには、プログラム割込みに対応する新ＰＳＷと入出力割込みに対応する新ＰＳＷとが格納されている。
【００５２】
このような状態において、チェック用ＣＰＵ１６は、入出力割込みに対応する新ＰＳＷ（以下、新ＰＳＷ（入出力）と呼ぶ）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される「使用可能フラグ」を定期的に又は常時監視する。そして、チェック用ＣＰＵ１６は、新ＰＳＷ（入出力）が書き換えられたことを検出した場合や新ＰＳＷが未チェックであると判定した場合、新ＰＳＷ（入出力）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ１６は、ロードした新ＰＳＷ（入出力）に対して形式チェックを実行する。そして、チェック用ＣＰＵ１６は、新ＰＳＷ（入出力）とチェック結果とを新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００５３】
その後も、チェック結果を格納したチェック用ＣＰＵ１６は、新ＰＳＷ（入出力）に対応付けられた使用可能フラグを定期的に又は常時監視する。そして、チェック用ＣＰＵ１６は、使用可能フラグによって新ＰＳＷ（入出力）が更新されたことを検出した場合、再度、新ＰＳＷ（入出力）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ１６は、上記形式チェックを実行し、その結果と新ＰＳＷ（入出力）を新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００５４】
同様に、チェック用ＣＰＵ１６は、プログラム割込みに対応する新ＰＳＷ（以下、新ＰＳＷ（プログラム）と呼ぶ）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される「使用可能フラグ」を定期的に又は常時監視する。そして、チェック用ＣＰＵ１６は、新ＰＳＷが書き換えられたことを検出した場合や新ＰＳＷが未チェックであると判定した場合、新ＰＳＷ（プログラム）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ１６は、ロードした新ＰＳＷ（プログラム）に対して形式チェックを実行する。そして、チェック用ＣＰＵ１６は、新ＰＳＷ（プログラム）とチェック結果とを新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００５５】
その後も、チェック結果を格納したチェック用ＣＰＵ１６は、新ＰＳＷ（プログラム）に対応付けられた使用可能フラグを定期的に又は常時監視する。そして、チェック用ＣＰＵ１６は、使用可能フラグによって新ＰＳＷ（プログラム）が更新されたことを検出した場合、再度、新ＰＳＷ（プログラム）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ１６は、上記形式チェックを実行し、その結果と新ＰＳＷ（プログラム）を新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００５６】
一方、命令実行用ＣＰＵ１５は、入出力割込みが発生した場合、割込み発生時にレジスタ等に保持しているＰＳＷを旧ＰＳＷとしてＰＳＡ領域１４ｂに格納する。その後、命令実行用ＣＰＵ１５は、新ＰＳＷ（入出力）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される使用可能フラグとチェック結果とを取得する。そして、命令実行用ＣＰＵ１５は、新ＰＳＷ（入出力）が使用可能であると判定した場合には、新ＰＳＷ記憶領域１４ｃから新ＰＳＷ（入出力）をロードし、新ＰＳＷ（入出力）の命令アドレスを用いて、入出力割込みを実行する。
【００５７】
同様に、命令実行用ＣＰＵ１５は、プログラム割込みが発生した場合、割込み発生時にレジスタ等に保持しているＰＳＷを旧ＰＳＷとしてＰＳＡ領域１４ｂに格納する。その後、命令実行用ＣＰＵ１５は、新ＰＳＷ（プログラム）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される使用可能フラグとチェック結果とを取得する。そして、命令実行用ＣＰＵ１５は、新ＰＳＷ（プログラム）が使用可能であると判定した場合には、新ＰＳＷ記憶領域１４ｃから新ＰＳＷ（プログラム）をロードし、新ＰＳＷ（プログラム）の命令アドレスを用いて、入出力割込みを実行する。
【００５８】
また、命令実行用ＣＰＵ１５は、ＰＳＡ領域１４ｂに格納されている新ＰＳＷ（入出力）を書き換えた場合、書き換えと同時に、新ＰＳＷ（入出力）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される使用可能フラグを更新する。この結果、チェック用ＣＰＵ１６は、新ＰＳＷ（入出力）が更新されたことを検出し、再度形式チェックを実行することができる。
【００５９】
同様に、命令実行用ＣＰＵ１５は、ＰＳＡ領域１４ｂに格納されている新ＰＳＷ（プログラム）を書き換えた場合、書き換えと同時に、新ＰＳＷ（プログラム）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される使用可能フラグを更新する。この結果、チェック用ＣＰＵ１６は、新ＰＳＷ（プログラム）が更新されたことを検出し、再度形式チェックを実行することができる。
【００６０】
また、命令実行用ＣＰＵ１５が、命令エミュレーと実行部１５ａと割り込み実行部１５ｂと新ＰＳＷ更新部１５ｃとに加えて、さらにチェック処理部１６ａとチェック結果格納部１６ｂとを有するようにしても良い。通常の演算処理や割込み処理などの各種処理の合間に判定処理を実行しておくことによって、ＣＰＵ４は、割り込み処理の実行を、新ＰＳＷの形式チェックを除いて行なうことができる。
【００６１】
［処理の流れ］
次に、図７〜図９を用いて、情報処理装置１０による処理の流れを説明する。図７と図８は、新ＰＳＷの形式チェックの流れを示すフローチャートであり、図９は、割込み処理の流れを示すフローチャートである。
【００６２】
（新ＰＳＷの形式チェックの流れ）
図７に示すように、チェック用ＣＰＵ１６は、新ＰＳＷ記憶領域１４ｃに記憶される各割込み種別ごとの「使用可能フラグ」を確認し（Ｓ１０１）、新ＰＳＷが使用可能か否かを判定する（Ｓ１０２）。
【００６３】
そして、チェック用ＣＰＵ１６は、「使用可能フラグ」の「ｂｉｔ０、ｂｉｔ１」が「０、１」であれば、使用可能と判定し（Ｓ１０２肯定）、処理を終了する。一方、チェック用ＣＰＵ１６は、「使用可能フラグ」の「ｂｉｔ０、ｂｉｔ１」が「０、１」以外であれば、使用不可と判定し（Ｓ１０２否定）、「使用可能フラグ」の「ｂｉｔ０、ｂｉｔ１」を「０、０」に更新する（Ｓ１０３）。
【００６４】
続いて、チェック用ＣＰＵ１６は、ＰＳＡ領域１４ｂから該当する新ＰＳＷを取得し（Ｓ１０４）、情報処理装置１０で使用されているアドレスモードをチェックし（Ｓ１０５）、３１ビットモードであるか否かを判定する（Ｓ１０６）。
【００６５】
そして、チェック用ＣＰＵ１６は、アドレスモードが３１ビットモードである場合（Ｓ１０６肯定）、新ＰＳＷのビット２４〜３２のいずれかが１であるか否かを判定する（Ｓ１０７とＳ１０８）。新ＰＳＷのビット２４〜３２のいずれかが１である場合（Ｓ１０８肯定）、チェック用ＣＰＵ１６は、Ｓ１２５を実行する。すなわち、チェック用ＣＰＵ１６は、形式チェック対象の新ＰＳＷのチェック結果に「０１」を格納する。また、新ＰＳＷのビット２４〜３２のいずれもが０である場合（Ｓ１０８否定）、チェック用ＣＰＵ１６は、ビット０をチェックする（Ｓ１０９）。
【００６６】
一方、チェック用ＣＰＵ１６は、アドレスモードが３１ビットモードでない場合、すなわち、２４ビットモードである場合（Ｓ１０６否定）、新ＰＳＷのビット２４〜３９のいずれかが１であるか否かを判定する（Ｓ１１０とＳ１１１）。新ＰＳＷのビット２４〜３９のいずれかが１である場合（Ｓ１１１肯定）、チェック用ＣＰＵ１６は、Ｓ１２５を実行する。また、新ＰＳＷのビット２４〜３９のいずれもが０である場合（Ｓ１１１否定）、チェック用ＣＰＵ１６は、新ＰＳＷのビット０をチェックする（Ｓ１０９）。
【００６７】
その後、チェック用ＣＰＵ１６は、新ＰＳＷのビット０が１であると判定した場合（Ｓ１１２肯定）、Ｓ１２５を実行する。一方、図７に示すように、チェック用ＣＰＵ１６は、新ＰＳＷのビット０が０であると判定した場合（Ｓ１１２否定）、新ＰＳＷのビット２〜３をチェックする（Ｓ１１３）。
【００６８】
そして、チェック用ＣＰＵ１６は、新ＰＳＷのビット２〜３のいずれかのビットが１である場合（Ｓ１１４肯定）、Ｓ１２５を実行する。一方、チェック用ＣＰＵ１６は、新ＰＳＷのビット２〜３のいずれもが０である場合（Ｓ１１４否定）、新ＰＳＷのビット１２をチェックする（Ｓ１１５）。なお、新ＰＳＷのビット１２は、命令実行用ＣＰＵ１５が拡張制御モードで実行しているため、１が設定される。
【００６９】
続いて、チェック用ＣＰＵ１６は、新ＰＳＷのビット１２が０である場合（Ｓ１１６肯定）、Ｓ１２５を実行する。一方、チェック用ＣＰＵ１６は、新ＰＳＷのビット１２が１である場合（Ｓ１１６否定）、新ＰＳＷのビット１６をチェックする（Ｓ１１７）。
【００７０】
続いて、チェック用ＣＰＵ１６は、新ＰＳＷのビット１６が１である場合（Ｓ１１８肯定）、Ｓ１２５を実行する。一方、チェック用ＣＰＵ１６は、新ＰＳＷのビット１６が０である場合（Ｓ１１８否定）、新ＰＳＷのビット１７をチェックする（Ｓ１１９）。
【００７１】
続いて、チェック用ＣＰＵ１６は、新ＰＳＷのビット１７が１である場合（Ｓ１２０肯定）、Ｓ１２５を実行する。一方、チェック用ＣＰＵ１６は、新ＰＳＷのビット１７が０である場合（Ｓ１２０否定）、新ＰＳＷの命令アドレスをチェックする（Ｓ１２１）。
【００７２】
その後、チェック用ＣＰＵ１６は、新ＰＳＷの命令アドレスが奇数である場合（Ｓ１２２肯定）、チェック結果に「１０」を格納する（Ｓ１２３）。一方、チェック用ＣＰＵ１６は、新ＰＳＷの命令アドレスが偶数である場合（Ｓ１２２否定）、チェック結果に「００」を格納する（Ｓ１２４）。
【００７３】
また、チェック用ＣＰＵ１６は、Ｓ１０８、１１２、１１４、１１６、１１８、１２０でＹＥＳと判定した場合、すなわち、新ＰＳＷが早期指令例外と判定された場合、チェック結果に「０１」を格納する（Ｓ１２５）。
【００７４】
その後、チェック用ＣＰＵ１６は、形式チェックを完了した新ＰＳＷとチェック結果とを対応付けて新ＰＳＷ記憶領域１４ｃの所定領域に格納するとともに（Ｓ１２６）、使用可能フラグのビット１を１にする（Ｓ１２７）。このとき、使用可能フラグのビット０は、当該新ＰＳＷが書き換えられるまで０である。その後は、Ｓ１０１に戻って、上記処理が繰り返される。
【００７５】
（割込み処理の流れ）
図９に示すように、命令実行用ＣＰＵ１５は、割込み処理が発生すると（Ｓ２０１肯定）、割込み関連情報をＰＳＡ領域１４ｂの所定領域に格納する（Ｓ２０２）。さらに、命令実行用ＣＰＵ１５は、割込み発生時にレジスタ等の保持しているＰＳＷを旧ＰＳＷとして、ＰＳＡ領域１４ｂの所定領域に格納する（Ｓ２０３）。
【００７６】
その後、命令実行用ＣＰＵ１５は、発生した割込みに対応する新ＰＳＷの使用可能フラグを新ＰＳＷ記憶領域１４ｃから取得し（Ｓ２０４）、新ＰＳＷが使用可能か否かを判定する（Ｓ２０５）。
【００７７】
そして、命令実行用ＣＰＵ１５は、新ＰＳＷが使用可能であると判定した場合（Ｓ２０５肯定）、新ＰＳＷのチェック結果を新ＰＳＷ記憶領域１４ｃから取得する（Ｓ２０６）。
【００７８】
そして、命令実行用ＣＰＵ１５は、新ＰＳＷのチェック結果が正常である場合（Ｓ２０７肯定）、新ＰＳＷの命令アドレスを用いて、割込み処理を実行する（Ｓ２０８）。
【００７９】
一方、命令実行用ＣＰＵ１５は、新ＰＳＷのチェック結果が正常でない場合（Ｓ２０７否定）、例外処理が発生したと検出し、Ｓ２０１の処理を繰り返す。また、命令実行用ＣＰＵ１５は、新ＰＳＷが使用可能でないと判定した場合（Ｓ２０５否定）、Ｓ２０４を繰り返す。
【００８０】
［実施例２による効果］
実施例２によれば、チェック用ＣＰＵ１６は、割込み処理に対応する新ＰＳＷに異常があるか否かを判定する。そして、チェック用ＣＰＵ１６は、異常があるか否かが判定された新ＰＳＷとその判定結果とを対応付けて、新ＰＳＷ記憶領域１４ｃに格納する。また、命令実行用ＣＰＵ１５は、割込み処理が発生した場合に、当該割込み処理に対応する新ＰＳＷの判定結果を新ＰＳＷ記憶領域１４ｃから取得する。そして、命令実行用ＣＰＵ１５は、取得された判定結果が正常である場合に、当該判定結果に対応付けられた新ＰＳＷの命令アドレスを用いて、割込み処理を実行する。
【００８１】
つまり、チェック用ＣＰＵ１６が、割込み処理の前に先立って、新ＰＳＷの形式チェックを実行し、その結果を格納しておく。この結果、割込み処理を実行する命令実行用ＣＰＵ１５は、割込み処理実行時に、新ＰＳＷをチェックする必要がない。したがって、割込み処理が多発した場合であっても、割込み処理におけるオーバヘッドを小さくすることができ、割込み処理を開始するまでに時間を短縮できる。この結果、割込み処理の処理時間を短縮することができる。
【００８２】
また、新ＰＳＷが書き換えられると、形式チェックが実行されるので、新ＰＳＷの更新とチェック結果とを同期させることができる。したがって、新ＰＳＷが更新されたにも係らず、形式チェックが実行されていない、古いチェック結果のままであるなどの不整合を防止できる。
【実施例３】
【００８３】
ところで、実施例２では、チェック用ＣＰＵと命令実行用ＣＰＵとが各々１つの場合について説明したが、これに限定されるものではない。例えば、チェック用ＣＰＵが２つで命令実行用ＣＰＵが１つであってもよく、チェック用ＣＰＵが１つで命令実行用ＣＰＵが２つであってもよい。そこで、実施例３では、複数のチェック用ＣＰＵや複数の命令実行用ＣＰＵを用いる場合について説明する。
【００８４】
（複数のチェック用ＣＰＵと１つの命令実行用ＣＰＵを有する場合）
図１０は、複数のＣＰＵを用いて新ＰＳＷの形式チェックを行う例を示す図である。図１０に示すように、この情報処理装置は、命令実行用ＣＰＵとチェック用ＣＰＵ３０とチェック用ＣＰＵ４０と主記憶部とを有する。
【００８５】
主記憶部は、実施例２で説明した主記憶部１４と同様であり、命令実行用ＣＰＵは、実施例２で説明した命令実行用ＣＰＵ１５と同様であるので、ここではそれぞれの詳細な説明は省略する。
【００８６】
チェック用ＣＰＵ３０は、入出力割込みに対応する新ＰＳＷ（入出力）の形式チェックを実行するＣＰＵである。例えば、チェック用ＣＰＵ３０は、新ＰＳＷ（入出力）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される「使用可能フラグ」を定期的に又は常時監視する。そして、チェック用ＣＰＵ３０は、新ＰＳＷ（入出力）が書き換えられたことを検出した場合や新ＰＳＷが未チェックであると判定した場合、新ＰＳＷ（入出力）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ３０は、ロードした新ＰＳＷ（入出力）に対して形式チェックを実行する。そして、チェック用ＣＰＵ３０は、新ＰＳＷ（入出力）とチェック結果とを新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００８７】
その後も、チェック結果を格納したチェック用ＣＰＵ３０は、新ＰＳＷ（入出力）に対応付けられた使用可能フラグを定期的に又は常時監視する。そして、チェック用ＣＰＵ３０は、使用可能フラグによって新ＰＳＷ（入出力）が更新されたことを検出した場合、再度、新ＰＳＷ（入出力）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ３０は、上記形式チェックを実行し、その結果と新ＰＳＷ（入出力）を新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００８８】
チェック用ＣＰＵ４０は、プログラム割込みに対応する新ＰＳＷ（プログラム）の形式チェックを実行するＣＰＵである。例えば、チェック用ＣＰＵ４０は、新ＰＳＷ（プログラム）に対応付けて新ＰＳＷ記憶領域１４ｃに記憶される「使用可能フラグ」を定期的に又は常時監視する。そして、チェック用ＣＰＵ４０は、新ＰＳＷ（プログラム）が書き換えられたことを検出した場合や新ＰＳＷが未チェックであると判定した場合、新ＰＳＷ（プログラム）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ４０は、ロードした新ＰＳＷ（プログラム）に対して形式チェックを実行する。そして、チェック用ＣＰＵ４０は、新ＰＳＷ（プログラム）とチェック結果とを新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００８９】
その後も、チェック結果を格納したチェック用ＣＰＵ４０は、新ＰＳＷ（プログラム）に対応付けられた使用可能フラグを定期的に又は常時監視する。そして、チェック用ＣＰＵ４０は、使用可能フラグによって新ＰＳＷ（プログラム）が更新されたことを検出した場合、再度、新ＰＳＷ（プログラム）をＰＳＡ領域１４ｂからロードする。続いて、チェック用ＣＰＵ４０は、上記形式チェックを実行し、その結果と新ＰＳＷ（プログラム）を新ＰＳＷ記憶領域１４ｃに格納するとともに、使用可能フラグを更新する。
【００９０】
（１つのチェック用ＣＰＵと複数の命令実行用ＣＰＵを有する場合）
図１１は、複数の命令実行用ＣＰＵに対して新ＰＳＷの形式チェックを行う例を示す図である。図１１に示すように、この情報処理装置は、記憶部（Ａ）と記憶部（Ｂ）と命令実行用ＣＰＵ５０と命令実行用ＣＰＵ６０とチェック用ＣＰＵ４５とを有する。
【００９１】
記憶部（Ａ）は、命令実行用ＣＰＵ５０がエミュレートするアーキテクチャのメモリ空間を表現する記憶部であり、ＰＳＡ領域と新ＰＳＷ記憶領域等を有する。ＰＳＡ領域は、割込み種別に対応した新ＰＳＷを記憶し、新ＰＳＷ記憶領域は、割込み種別ごとに、新ＰＳＷと使用可能フラグとチェック結果とを対応付けて記憶する。
【００９２】
記憶部（Ｂ）は、命令実行用ＣＰＵ６０がエミュレートするアーキテクチャのメモリ空間を表現する記憶部であり、ＰＳＡ領域と新ＰＳＷ記憶領域等を有する。ＰＳＡ領域は、割込み種別に対応した新ＰＳＷを記憶し、新ＰＳＷ記憶領域は、割込み種別ごとに、新ＰＳＷと使用可能フラグとチェック結果とを対応付けて記憶する。
【００９３】
命令実行用ＣＰＵ５０は、新ＰＳＷの形式チェックを除く割込み処理や、命令エミュレーション処理を実行するＣＰＵであり、実施例２で説明した命令実行用ＣＰＵ１５と同様の機能を有する。この命令実行用ＣＰＵ５０は、自ＣＰＵがエミュレートするアーキテクチャに関する情報を記憶する記憶部（Ａ）を参照し、記憶部（Ａ）に記憶される新ＰＳＷの各種情報を用いて割込み処理等を実施する。
【００９４】
例えば、命令実行用ＣＰＵ５０は、入出力割込みが発生した場合、割込み発生時にレジスタ等に保持しているＰＳＷを旧ＰＳＷとして記憶部（Ａ）に格納する。その後、命令実行用ＣＰＵ５０は、新ＰＳＷ（入出力）に対応付けて記憶部（Ａ）に記憶される使用可能フラグとチェック結果とを取得する。そして、命令実行用ＣＰＵ５０は、新ＰＳＷ（入出力）が使用可能であると判定した場合には、記憶部（Ａ）から新ＰＳＷ（入出力）をロードし、新ＰＳＷ（入出力）の命令アドレスを用いて、入出力割込みを実行する。
【００９５】
命令実行用ＣＰＵ６０は、新ＰＳＷの形式チェックを除く割込み処理や、命令エミュレーション処理を実行するＣＰＵであり、実施例２で説明した命令実行用ＣＰＵ１５と同様の機能を有する。この命令実行用ＣＰＵ６０は、自ＣＰＵがエミュレートするアーキテクチャに関する情報を記憶する記憶部（Ｂ）を参照し、記憶部（Ｂ）に記憶される新ＰＳＷの各種情報を用いて割込み処理等を実施する。
【００９６】
例えば、命令実行用ＣＰＵ６０は、入出力割込みが発生した場合、割込み発生時にレジスタ等に保持しているＰＳＷを旧ＰＳＷとして記憶部（Ｂ）に格納する。その後、命令実行用ＣＰＵ６０は、新ＰＳＷ（入出力）に対応付けて記憶部（Ｂ）に記憶される使用可能フラグとチェック結果とを取得する。そして、命令実行用ＣＰＵ６０は、新ＰＳＷ（入出力）が使用可能であると判定した場合には、記憶部（Ｂ）から新ＰＳＷ（入出力）をロードし、新ＰＳＷ（入出力）の命令アドレスを用いて、入出力割込みを実行する。
【００９７】
チェック用ＣＰＵ４５は、プログラム割込みに対応する新ＰＳＷ（プログラム）の形式チェックを実行するＣＰＵである。チェック用ＣＰＵ４５は、記憶部（Ａ）と記憶部（Ｂ）とのそれぞれに格納される新ＰＳＷの形式チェックを実行して、チェック結果等を記憶部（Ａ）や記憶部（Ｂ）に格納する。
【００９８】
例えば、チェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）に対応付けて記憶部（Ａ）に記憶される「使用可能フラグ」を定期的に又は常時監視する。そして、チェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）が書き換えられたことを検出した場合や新ＰＳＷが未チェックであると判定した場合、新ＰＳＷ（プログラム）を記憶部（Ａ）からロードする。続いて、チェック用ＣＰＵ４５は、ロードした新ＰＳＷ（プログラム）に対して形式チェックを実行する。そして、チェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）とチェック結果とを記憶部（Ａ）に格納するとともに、使用可能フラグを更新する。
【００９９】
その後も、チェック結果を格納したチェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）に対応付けられた使用可能フラグを定期的に又は常時監視する。そして、チェック用ＣＰＵ４５は、使用可能フラグによって新ＰＳＷ（プログラム）が更新されたことを検出した場合、再度、新ＰＳＷ（プログラム）を記憶部（Ａ）からロードする。続いて、チェック用ＣＰＵ４５は、上記形式チェックを実行し、その結果と新ＰＳＷ（プログラム）を記憶部（Ａ）に格納するとともに、使用可能フラグを更新する。
【０１００】
同様に、チェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）に対応付けて記憶部（Ｂ）に記憶される「使用可能フラグ」を定期的に又は常時監視する。そして、チェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）が書き換えられたことを検出した場合や新ＰＳＷが未チェックであると判定した場合、新ＰＳＷ（プログラム）を記憶部（Ｂ）からロードする。続いて、チェック用ＣＰＵ４５は、ロードした新ＰＳＷ（プログラム）に対して形式チェックを実行する。そして、チェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）とチェック結果とを記憶部（Ｂ）に格納するとともに、使用可能フラグを更新する。
【０１０１】
その後も、チェック結果を格納したチェック用ＣＰＵ４５は、新ＰＳＷ（プログラム）に対応付けられた使用可能フラグを定期的に又は常時監視する。そして、チェック用ＣＰＵ４５は、使用可能フラグによって新ＰＳＷ（プログラム）が更新されたことを検出した場合、再度、新ＰＳＷ（プログラム）を記憶部（Ｂ）からロードする。続いて、チェック用ＣＰＵ４５は、上記形式チェックを実行し、その結果と新ＰＳＷ（プログラム）を記憶部（Ｂ）に格納するとともに、使用可能フラグを更新する。
【０１０２】
（実施例３による効果）
実施例３によれば、余剰ＣＰＵ、言い換えると、処理を実行していないＣＰＵが複数存在する場合、それぞれのＣＰＵが異なる割込み種別の新ＰＳＷの形式チェックを実行するようにすることができる。したがって、チェック用ＣＰＵの負荷を軽減でき、さらには、新ＰＳＷの形式チェックの遅延防止、高速化を実現することができる。また、複数のアーキテクチャが実行されている場合であっても、それぞれに対応したメモリ空間を生成して、それぞれ別個に新ＰＳＷの形式チェックを実行することができる。
【実施例４】
【０１０３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１０４】
（チェック用ＣＰＵの割当て手法）
実施例１〜３で説明した情報処理装置は、構成情報記憶領域１４ｄに記憶される情報に基づいてチェック用ＣＰＵの割当てを決定することができる。例えば、情報処理装置は、構成情報記憶領域１４ｄに記憶される「命令実行ＣＰＵ数」が「余剰ＣＰＵ数」よりも少ない場合、１つ以上の複数の余剰なＣＰＵを用いて、１つの命令実行ＣＰＵに対する新ＰＳＷ形式チェックを行うように割り当てる。このとき、各チェックＣＰＵで形式チェックを行う割込み種別の数が均一になるようにする。
【０１０５】
また、情報処理装置は、構成情報記憶領域１４ｄに記憶される「命令実行ＣＰＵ数」と「余剰ＣＰＵ数」とが同じである場合、１つの余剰なＣＰＵを用いて、１つの命令実行ＣＰＵに対応する新ＰＳＷの形式チェックを行うように割り当てる。また、情報処理装置は、構成情報記憶領域１４ｄに記憶される「命令実行ＣＰＵ数」が「余剰ＣＰＵ数」よりも多い場合、１つの余剰なＣＰＵを用いて、１つ以上の複数の命令実行ＣＰＵに対応する新ＰＳＷの形式チェックを行うように割り当てる。なお、構成情報記憶領域１４ｄの監視は、特定の領域の書き換えを検知して通知するような構成を用いてもよいし、構成情報格納域の監視を行う処理を別のＣＰＵに割り当てて監視を行ってもよい。
【０１０６】
（論理ＣＰＵ）
実施例１〜３では、複数のＣＰＵを有する情報処理装置を例にして説明したが、これに限定されるものではない。例えば、１つのプロセッサパッケージ内に複数のプロセッサコアを有するマルチコアを用いることもできる。この場合、処理を実行するコアを上述した命令実行用ＣＰＵとして機能させ、処理を実行していないコアを上述したチェック用ＣＰＵとして機能させることで、実施例１〜３と同様処理を実施することができる。
【０１０７】
（エミュレートしない装置への適用）
また、実施例１〜３では、物理的に搭載されていないアーキテクチャをエミュレートしている情報処理装置を例にして説明したが、これに限定されるものではない。例えば、アーキテクチャをエミュレートしない情報処理装置であって、複数のＣＰＵを有する情報処理装置やマルチコアを有する情報処理装置であれば、どのような情報処理装置にも実施例１〜３と同様の処理を実行することができる。
【０１０８】
（チェック手法）
実施例１〜３では、アドレスモードとして３１ビットモードや２４ビットモードを用いた場合の新ＰＳＷの形式チェックを例にして説明したが、これに限定されるものではない。例えば、ＣＰＵ等のアドレスモードやビット幅等によって特定される任意のチェック手法を用いることができる。
【０１０９】
（システム構成）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３〜図５等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えばチェック処理部１６ａとチェック結果格納部１６ｂとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１１】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１１２】
図１２は、割込み制御プログラムを実行するコンピュータシステムの例を示す図である。図１２に示すように、コンピュータシステム１００は、ＲＡＭ１０１と、ＨＤＤ１０２と、ＲＯＭ１０３と、ＣＰＵ１０４と、ＣＰＵ１０５とを有する。ここで、ＲＯＭ１０３には、上の実施例と同様の機能を発揮するプログラムがあらかじめ記憶されている。つまり、図１２に示すように、ＲＯＭ１０３には、命令エミュレート実行プログラム１０３ａ、割込み実行プログラム１０３ｂ、新ＰＳＷ更新プログラム１０３ｃが記憶される。さらに、ＲＯＭ１０３には、チェック処理プログラム１０３ｄ、チェック結果格納プログラム１０３ｅがあらかじめ記憶されている。
【０１１３】
そして、ＣＰＵ１０４とＣＰＵ１０５には、これらのプログラム１０３ａ〜１０３ｅを読み出して実行することで、図１２に示すように、各プロセスとなる。つまり、プログラム１０３ａ〜１０３ｅ各々は、命令エミュレート実行プロセス１０４ａ、割込み実行プロセス１０４ｂ、新ＰＳＷ更新プロセス１０４ｃとなる。また、チェック処理プロセス１０５ａ、チェック結果格納プロセス１０５ｂとなる。
【０１１４】
なお、命令エミュレート実行プロセス１０４ａは、図２に示した命令エミュレート実行部１５ａに対応し、同様に、割込み実行プロセス１０４ｂは、割込み実行部１５ｂに対応する。また、新ＰＳＷ更新プロセス１０４ｃは、図２に示した新ＰＳＷ更新部１５ｃに対応し、チェック処理プロセス１０５ａは、チェック処理部１６ａに対応する。また、チェック結果格納プロセス１０５ｂは、図２に示したチェック結果格納部１６ｂに対応する。
【０１１５】
また、ＲＡＭ１０１には、ＰＳＡ領域テーブル１０１ａと、新ＰＳＷ記憶領域テーブル１０１ｂと、構成情報記憶領域テーブル１０１ｃとが設けられる。なお、ＰＳＡ領域テーブル１０１ａは、図２に示したＰＳＡ領域１４ｂに対応し、新ＰＳＷ記憶領域テーブル１０１ｂは、新ＰＳＷ記憶領域１４ｃに対応し、構成情報記憶領域テーブル１０１ｃは、構成情報記憶領域１４ｄに対応する。
【０１１６】
ところで、上記したプログラム１０３ａ〜１０３ｅは、必ずしもＲＯＭ１０３に記憶させておく必要はない。例えば、プログラム１０３ａ〜１０３ｅは、コンピュータシステム１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム１００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム１００に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム１００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１１７】
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、コンピュータシステム１００は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム１００によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１１８】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１９】
（付記１）割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部を含む記憶装置と、
前記記憶部に記憶した前記プログラム状態語を使用可能か否かについての判定を行なう判定部と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納部と、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得部と、
取得した前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行部とを含む演算処理装置と、
を含むことを特徴とする情報処理装置。
【０１２０】
（付記２）前記プログラム状態語は、前記プログラム状態語の形式によって、プログラム状態語内の所定のデータ位置に予め定められたデータを含むデータであって、
前記演算処理装置が、
前記プログラム状態語が前記所定のデータ位置に予め定められたデータを含む場合に、前記プログラム状態語を使用可能である旨の判定を行なうこと
を特徴とする付記１に記載の情報処理装置。
【０１２１】
（付記３）第１の演算処理装置と第２の演算処理装置と記憶装置とを含む情報処理装置であって、
前記記憶装置は、
割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部を有し、  前記第１の演算処理装置は、
前記記憶部に記憶した前記プログラム状態語が使用可能か否かの判定を行なう判定部と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納部とを有し、
前記第２の演算処理装置は、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得部と、
取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行部と
を有することを特徴とする情報処理装置。
【０１２２】
（付記４）前記第２の演算処理装置は、前記プログラム状態語が書き換えられた場合に、書き換えられたプログラム状態語に対応付けて、前記プログラム状態語が書き換えられたことを示す更新情報を前記記憶部にさらに対応付けて格納し、
前記第１の演算処理装置の判定部は、前記記憶部に記憶される更新情報に基づいて、前記プログラム状態語が書き換えられたことを検出した場合に、前記プログラム状態語を使用可能か否かの判定を行なうことを特徴とする付記３に記載の情報処理装置。
【０１２３】
（付記５）前記第２の演算処理装置は、当該情報処理装置とは異なるアーキテクチャをエミュレートして、当該異なるアーキテクチャの各種処理を実行するプロセッサであり、
前記第１の演算処理装置は、前記異なるアーキテクチャの各種処理を実行しないプロセッサであることを特徴とする付記３に記載の情報処理装置。
【０１２４】
（付記６）前記異なるアーキテクチャのメモリ空間を再現した再現領域に前記プログラム状態語を記憶する状態語記憶部を有し、
前記第１の演算処理装置の判定部は、前記状態語記憶部の再現領域に記憶されるプログラム状態語を使用可能か否かの判定を行ない、
前記結果格納部は、前記プログラム状態語と前記判定の結果とを対応付けて、前記状態語記憶部の所定領域に格納し、
前記第２の演算処理装置の取得部は、前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果を前記状態語記憶部の所定領域から取得し、
前記処理実行部は、前記取得部によって取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、前記取得部によって取得されたプログラム状態語を前記状態語記憶部の所定領域から取得し、取得したプログラム状態語に含まれる前記アドレスを用いてデータを読み出すことを特徴とする付記５に記載の情報処理装置。
【０１２５】
（付記７）前記情報処理装置は、複数の演算処理装置を有するものであって、
前記情報処理装置において各種処理を実行する演算処理装置の数と、前記情報処理装置において各種処理を実行しない演算処理装置の数とを対応付けて記憶する装置情報記憶部と、
前記装置情報記憶部に記憶される前記各種処理を実行する演算処理装置の数および前記各種処理を実行しない処理装置の数に基づいて、前記各種処理を実行しない演算処理装置を前記第１の演算処理装置として機能させるか、前記第２の演算処理装置として機能させるかの割り当てを行なうことを特徴とする装置特定部とをさらに有することを特徴とする付記３〜６のいずれか一つに記載の情報処理装置。
【０１２６】
（付記８）前記割込み処理の種別が複数ある場合には、前記装置情報記憶部に記憶される前記各種処理を実行しない演算処理装置それぞれに、前記プログラム状態語に異常があるか否かの判定対象となる前記割込み処理を割り当てることを特徴とする付記７に記載の情報処理装置。
【０１２７】
（付記９）情報処理装置に、
割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部に記憶した前記プログラム状態語を使用可能か否かについての判定を行なう判定手順と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納手順と、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得手順と、
取得した前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行手順と
を実行させることを特徴とする割込み制御プログラム。
【０１２８】
（付記１０）情報処理装置に適した制御方法であって、
割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部に記憶した前記プログラム状態語を使用可能か否かについての判定を行なう判定と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納と、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得と、
取得した前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行と
を含んだことを特徴とする割込み制御方法。
【０１２９】
（付記１１）第１の演算処理装置と第２の演算処理装置と記憶装置とを含む情報処理装置における前記第１の演算処理装置に
割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部に記憶した前記プログラム状態語が使用可能か否かの判定を行なう判定手順と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納手順とを実行させ、
前記第２の演算処理装置に、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得手順と、
取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行手順と
を実行させることを特徴とする割込み制御プログラム。
【０１３０】
（付記１２）第１の演算処理装置と第２の演算処理装置と記憶装置とを含む情報処理装置に適した割込み制御方法であって、
前記第１の演算処理装置が、
割り込み処理を実行する際に読み出すデータの格納先を示すアドレスを含むプログラム状態語を記憶する記憶部に記憶した前記プログラム状態語が使用可能か否かの判定を行なう判定と、
前記プログラム状態語に前記判定の結果を対応付けて、さらに前記記憶部に記憶する格納とを含み、
前記第２の演算処理装置が、
前記割込み処理が発生した場合に、前記プログラム状態語と前記判定の結果とを前記記憶部から取得する取得と、
取得された前記判定の結果が前記プログラム状態語を使用可能である旨を示す場合に、取得したプログラム状態語に含まれる前記アドレスに基づいてデータを読み出す実行と
を含んだことを特徴とする割込み制御方法。
【符号の説明】
【０１３１】
１  情報処理装置
２  記憶部
３  ＣＰＵ
３ａ  判定部
３ｂ  結果格納部
４  ＣＰＵ
４ａ  結果取得部
４ｂ  処理実行部
１０  情報処理装置
１１  通信制御Ｉ／Ｆ部
１２  入出力部
１３  補助記憶部
１４  主記憶部
１４ａ  エミュレート領域
１４ｂ  ＰＳＡ領域
１４ｃ  新ＰＳＷ記憶領域
１４ｄ  構成情報記憶領域
１５  命令実行用ＣＰＵ
１５ａ  命令エミュレート実行部
１５ｂ  割込み実行部
１５ｃ  新ＰＳＷ更新部
１６  チェック用ＣＰＵ
１６ａ  チェック処理部
１６ｂ  チェック結果格納部
【図１】
0005565187.tif 000002
【図２】
0005565187.tif 000003
【図３】
0005565187.tif 000004
【図４】
0005565187.tif 000005
【図５】
0005565187.tif 000006
【図６】
0005565187.tif 000007
【図７】
0005565187.tif 000008
【図８】
0005565187.tif 000009
【図９】
0005565187.tif 000010
【図１０】
0005565187.tif 000011
【図１１】
0005565187.tif 000012
【図１２】
0005565187.tif 000013