(57)【要約】【課題】データ処理装置を提供する。【解決手段】処理コア４は割込み制御装置２２を備え、これは割込みｆｉｑが発生する時、割込みマスクビットＦ及びハードウエア制御をセットする役目をする。マスク制御信号ＮＭＩは、ソフトウエアが割込みマスクビットＦをクリアするのを許可するか又は阻止するかの何れかの役目をする。【選択図】図２
2005182752.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する装置であって、前記装置は、
プログラム命令の正常シーケンスにより特定されたデータ処理動作を実行可能な処理論理と、
割込み信号に応じ、前記プログラム命令の正常シーケンスの実行の割込みをし、そして実行をプログラム命令の処理シーケンスへリダイレクトする割込み回路と、
割込みマスクビットを記憶するために動作可能なプログラマブル制御レジスタと、を包含し、前記割込み回路は、
（i） 前記割込み回路が前記割込み信号に応答するのを防止するために前記割込みマスクビットの第１の状態に応じ、また
（ii）前記割込み回路が前記割込み信号に応答するのを許可するために前記割込みマスクビットの第２の状態に応じ、
前記割込み回路は、前記割込み信号に応じる時、前記割込みマスクビットを前記第１の状態へセットし、また更に、
マスク制御信号に応じ、プログラム命令制御の下で前記割込みマスクビットが前記第２の状態から前記第１の状態へ変更することを選択的に不能にするマスク制御回路を包含するデータを処理する装置。
【請求項２】
請求項１に記載の装置であって、前記プログラム命令の割込み処理シーケンスは、前記割込みマスクビットを前記第１の状態から前記第２の状態へ変更するために、前記プログラマブル制御レジスタへの書込み命令を含む装置。
【請求項３】
請求項１に記載の装置であって、前記割込み回路は複数の割込み信号に応じ、前記複数の割込み信号の各々は関連する割込みマスクビットを持つ装置。
【請求項４】
請求項３に記載の装置であって、前記複数の割込み信号は第１の割込み信号と第２の割込み信号とを含み、前記第１の割込み信号は前記第２の割込み信号より高い優先順位を持ち、前記第１の割込み信号は関連するマスク制御信号を持ち、また前記第２の割込み信号は関連するマスク制御信号を持たない装置。
【請求項５】
請求項１に記載の装置であって、前記プログラマブル制御レジスタは、前記装置の現在の処理状態を示す複数のビットを記憶するために動作可能なプログラム状態レジスタである装置。
【請求項６】
請求項５に記載の装置であって、前記装置は複数の処理モードにおいて動作可能であり、また１つ又はそれより多くのセーブプログラム状態レジスタを包含し、その中へ、前記プログラム状態レジスタ内に記憶されている前記複数のビットが、異なる処理モードへ切り替わる時にセーブされ、またそこから前記複数のビットが、前記異なる処理モードから復帰する時前記割込みマスクビットの前記第２の状態から前記第１の状態への如何なる変更も阻止する前期マスク制御回路に従って回復される装置。
【請求項７】
請求項１に記載の装置であって、前記装置は安全モードか又は非安全モードかの何れかで動作可能であり、また前記非安全モードで動作している時、前記マスク制御回路は、前記割込みマスクビットに対する全部の変更を選択的に不能にするためにオーバーライド割込みリザーブ信号に応じる装置。
【請求項８】
請求項１に記載の装置であって、少なくとも１つの構成制御パラメタを記憶するため動作可能な少なくとも１つの構成レジスタを含む構成副処理装置を包含し、前記マスク制御信号は前記構成レジスタ内のリードオンリ構成ビットである装置。
【請求項９】
請求項１に記載の装置であって、前記マスク制御信号は、前記装置に対して静止外部信号値として供給される装置。
【請求項１０】
データを処理する方法であって、前記方法は、
プログラム命令の正常シーケンスにより特定されたデータ処理動作を実行し、
割込み信号に応じ、前記プログラム命令の正常シーケンスの実行の割込みをし、そして実行をプログラム命令の割込み処理シーケンスへリダイレクトし、
割り込みマスクビットを記憶し、そのため以下の様に動作可能であり、
（i） 前記割込みマスクビットの第１の状態は前記割込み信号への応答を阻止し、また
（ii）前記割込みマスクの第２の状態は前記割込み信号への応答を許可し、
前記割込みマスクビットは前記割込み信号に応答する時は第１の状態にセットされ、また
マスク制御信号に応じ、前記割込みマスクビットのプログラム命令制御の下で前記第２の状態から前記第１の状態へ変更するのを選択的に不能にするそれぞれのステップを包含するデータを処理する方法。
【請求項１１】
請求項１０に記載の方法であって、前記プログラム命令の割込み処理シーケンスは、前記割込みマスクビットを前記第１の状態から前記第２の状態へ変更するため前記プログラマブル制御レジスタへの書込み命令を含む方法。
【請求項１２】
請求項１０に記載の方法であって、複数の割込み信号は前記プログラム命令の正常シーケンスの割込みをするために動作可能であり、前記複数の割込み信号の各々は関連する割込みマスクビットを持つ方法。
【請求項１３】
請求項１２に記載の方法であって、前記複数の割込み信号は第１の割込み信号及び第２の割込み信号を含み、前記第１の割込み信号は前記第２の割込み信号より高い優先順位を持ち、前記第１の割込み信号は関連するマスク制御信号を持ち、また前記第２の割込み信号は関連するマスク制御信号を持たない方法。
【請求項１４】
請求項１０に記載の方法であって、前記プログラマブル制御レジスタは、現在の処理状態を示す複数のビットを記憶するため動作可能なプログラム状態レジスタである方法。
【請求項１５】
請求項１４に記載の方法であって、プログラム命令の実行は、複数の処理モードの選択可能な１つにおいて発生し、又異なる処理モードへ切り替える時、前記複数のビットは１つ又はそれより多くのセーブプログラム状態レジスタの１つの中ヘセーブされ、そこから前記複数のビットは、前記異なる処理モードから復帰する時前記割込みマスクビットの前記第２の状態から前記第１の状態への如何なる変更も阻止されることを条件として回復される方法。
【請求項１６】
請求項１０に記載の方法であって、前記正常プログラム命令の実行は安全モードか又は非安全モードかの何れかにおいて発生し、そして前記非安全モードにおいて動作している時は、オーバーライド割込みリザーブ信号は前記割込みマスクビットへの全部の変更を選択的に不能にする方法。
【請求項１７】
請求項１０に記載の方法であって、少なくとも１つの構成制御パラメタを少なくとも１つの構成レジスタを含む構成副処理装置の中に記憶する事を包含し、前記マスク制御信号は前記構成レジスタ内のリードオンリ構成ビットである方法。
【請求項１８】
請求項１０に記載の方法であって、前記マスク制御信号は、静止外部信号値として与えられる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムの分野に関する。より詳しくは、この発明は、データ処理システム内の割込み信号のマスクの制御に関する。
【背景技術】
【０００２】
ＡＲＭリミテッド、ケンブリッジ、イングランドにより設計されたＡＲＭ（登録商標）処理装置の様なデータ処理システムを準備することは知られており、これらは受信した割込み信号に応じてプログラム命令の正常シーケンスの割込みをし、そして処理を処理命令の割込みハンドラシーケンスへリダイレクト（redirect）する。この行動の形式は、外部事象に迅速に応じる能力をデータ処理システムに与えることにおいて重要である。一例として、データ処理システムは、アンチロック（anti-lock）ブレーキシステムの制御に使用され、滑り状態が発生すると、割込み信号を経由して信号が送られ、この割込み信号は、どの様な処理が現在行なわれていようとも、迅速に割込みをすることが出来、そして重要な滑り状態を処理するため適切な命令の実行を開始する。
【０００３】
データ処理システムが、さもなければ、割込み処理コード自身も割込みをされる割込み信号の反復した、又は連続した主張に起因する正しくない動作を回避出来るように、割込みマスクビットを持つシステムを備えることが知られており、このマスクビットは割込みの最初の発生と同時にハードウェアにセットされ、そしてその割込み信号線上で受信するその後の割込み信号の効果をマスクビットがクリアされるまで、一旦割込み処理コードのある部分が実行されると典型的にソフトウエアの制御の下で阻止する働きをする。ＡＲＭ処理装置については、この型式の行動の一例が、プログラム状態レジスタ内のＦビットにより与えられる。プログラム制御の下にＦビットを変更する能力は有益であり、それは、割込み及び割込みマスクが使用される方法においてかなりの融通性を与え、例えば、シーケンスプログラム命令の微少な実行（atomic execution）を、割込みが命令のシーケンスの間に作用する可能性を排除することにより、強制するためにソフトウエア制御の下でＦビットを使用することが可能である（Ｆビットは命令の開始において割込みをマスクするためセットし、命令のシーケンスの終わりにおいてリセットし、これにより微少な実行を確保しても良い）。
【０００４】
この構成についての問題は、ソフトウエア制御の下でセットされるべき割込みマスクの能力が、プログラム上のバグ又は他の不調なソフトウエアにより、割込みマスクビットが不適切にセットされることを導き、その結果、時間が重要となる割込み信号に対して、迅速に反応するシステムの能力を妨げる結果となる可能性を創ることである。
【０００５】
１つの側面から見ると、本発明は、データを処理する装置を提供し、前記装置は、
プログラム命令の正常シーケンスにより特定されたデータ処理動作を実行するための動作可能な処理論理と、
割込み信号に応じ、前記プログラム命令の正常シーケンスの実行の割込みをし、そして実行をプログラム命令の割込み処理シーケンスへリダイレクトする割込み回路と、
割込みマスクビットを記憶するため動作可能なプログラマブル制御レジスタと、を包含し、前記割込み回路は、
（i） 前記割込み回路が前記割込み信号に応答するのを防止するため前記割込みマスクビットの第１の状態に応じ、また
（ii）前記割込み回路が前記割込み信号に応答するのを許可するため前記割込みマスクビットの第２の状態に応じ、そこに
前記割込み回路は、前記割込み信号に応じる時、前記割込みマスクビットを前記第１の状態へセットし、また更に、
マスク制御信号に応じ、プログラム命令制御の下で前記割込みマスクビットが前記第２の状態から前記第１の状態へ変更することを選択的に不能にするマスク制御回路を包含するデータを処理する装置。
【０００６】
この発明は、上の問題を認識し、追加のマスク制御信号を使用する解決策を提供し、割込みマスクビットを、ソフトウェアへアクセスせずその関連する割込みを阻止しない状態からその関連する割込みを阻止する状態へ変更する能力を不能にする。従って、マスク制御信号がアサートされる時、ソフトウエアにとってその上の割込み信号を不適切にマスクして除くことは不可能であり、それ故これらの割込み信号に応じるシステムの能力を包含する。
【０００７】
ところが一方、割込みマスクビットがハードウェア制御の下でクリアされ得ることは理解されるであろうが、好ましい実施例においてはこれは通常、プログラマブル制御レジスタへの書込み命令によりクリアされる。
【０００８】
ところが一方、簡単なシステムが単一の割込み信号を持つ事が出来るが、発明の好ましい実施例では多重割込み信号を利用し、各々が関連した割込みマスクビットを持つ。
【０００９】
多重割込み信号を持つこの様なシステムの面において、有利に優先順位を決めており、その結果、高い優先順位の信号はより低い優先順位の信号をオーバーライド（override）する。この様なシステムの面において、重要な割込みに対する割込みサービスを保証できる機能は、より高い優先順位の割込みとのみ結合されたマスク制御信号の使用により与えられる。
【００１０】
好ましい実施例において、システムの現在の処理状態を示す複数のビットを記憶するプログラム状態レジスタが提供される。この様なシステムの面において、１つ又はそれより多くのセーブされたプログラム状態レジスタを備えることは便利であり、その中に処理状態情報をモードスイッチと同時にセーブすることが出来る。この情報は典型的に如何なる割込みマスクビットをも含む。従って、好ましい実施例は動作可能であり、プログラム状態情報が回復される時マスク制御信号がそれは許されないことを示す時は、これは割込みマスクビットを第２の状態から第１の状態へ変更する結果とはならない。
【００１１】
安全又は非安全モードの何れかで動作するシステムを提供することは知られている。この様なシステムの面において、非安全モードで動作している時、割込みマスクビットに対する全部の変更を不能にするためオーバーライド割込みリザーブ信号を備えることは有利である。一例として、これは安全に関するチェック機能を必然的に遂行している割込み信号を阻止することを求める攻撃に基づく安全違反を防止することを支援出来る。
【００１２】
マスク制御ビットは種々の異なる方法で供給出来ることは理解されるが、好ましい実施例は静的な外部信号値を使用し、その状態は読み取られることはできるが、マスク制御信号を与えるために副プロセッサ構成レジスタ内のビットを使用して修正はされない。
【００１３】
別の側面から見て、本発明はデータを処理する方法を提供し、前記方法は、
プログラム命令の正常シーケンスにより特定されたデータ処理動作を実行し、
割込み信号に応じ、前記プログラム命令の正常シーケンスの実行の割込みをし、そして実行をプログラム命令の割込み処理へリダイレクトし、
割込みマスクビットを記憶しその結果次の様に動作可能であり、
（i） 前記割込みマスクビットの第１の状態は、前記割込み信号への応答を妨げ、また
（ii）前記割込みマスクの第２の状態は、前記割込み信号への応答を許し、そこに
前記割込みマスクビットは、前記割込み信号に応じる時前記第１の状態にセットされ、また、
マスク制御信号に応じ、プログラム命令制御の下で前記割込みマスクビットの前記第２の状態から前記第１の状態への変更を選択的に不能にする、データを処理する方法。
【００１４】
この発明の、上の及び他の目的、特徴及び利点は、付随する図面と共に読まれるべき以下の詳細な記載から明白であろう。
【実施例】
【００１５】
図１は、処理装置コア４、メモリ６及び副処理装置８を含むデータ処理システム２を示す。処理装置コア４は、レジスタバンク１０、乗数１２、シフタ１４、加算器１６、命令パイプライン１８、命令デコーダ２０、割込み制御装置２２、プログラム状態レジスタ２４、複数のセーブプログラム状態レジスタ２６、及び割込みマスク制御回路２８を含む。正常動作において、メモリ６内に記憶された主プログラム３０からのプログラム命令のシーケンスは命令パイプライン１８に供給され、命令デコーダ２０によりデコードされ、所望の処理動作を実行するために処理装置コア４内の回路素子の残りを構成し制御する制御信号を発生する。処理装置コア４は典型的に多くの追加の回路素子を含むが、これらは明瞭さのため図１には示されていない事を理解するであろう。
【００１６】
割込み制御装置２２は、２つの外部信号、即ち、高速割込み信号ｆｉｑ及び低速割込み信号ｉｒｑに応じる、高速割込み信号ｆｉｑは、低速割込み信号ｉｒｑに対して優先順位を持ち、従って、高速割込み信号ｆｉｑは現存する低速割込みをオーバーライドすることが出来る。この例において、割込み信号が受信される時、割込み制御装置２２は、主プログラム３０からのプログラム命令の正常シーケンスの実行の割込みをし、そしてメモリ場所を、メモリ６内に記憶されている一組の割込みベクトル３４内の所定の位置に対応するプログラムカウンタレジスタ３２の中へロードすることにより処理のリダイレクトを強制する。その割込みベクトル場所におけるジャンプ命令の実行は、次に処理をメモリ６内のどこかに記憶されている割込みハンドラ３６へ指向し、その割込みハンドラが、プログラム命令の所望の割込み処理シーケンスを実行する役目をする。割込み信号が割込み制御装置２２により受信されると、それは関連する割込みマスクビットをプログラム状態レジスタ２４内にセットする。この割込みマスクビットの行動は、その割込みビットがクリアされるまで受信されるその上の割込み信号に対するその後の応答を禁止することである。高速割込みｆｉｑ及び低速割込みｉｒｑの両方は、関連する割込みマスクビットを持つ。
【００１７】
示した様に、複数のセーブ（saved）プログラム状態レジスタ２６が備えられる。これらは、処理装置モードの切り替えと同時にプログラム状態レジスタ２４の内容に対応する一組のビットをセーブする役目をする。従って、例えば、処理装置コア４が何かの理由でユーザモードから特権のある（privileged）モードへ切り替える時、ユーザモードプログラム状態レジスタ内容は、セーブプログラム状態レジスタ２６の適切な１つの中へセーブされ、ジャンプがそこへなされたモードからユーザモードへ復帰がなされる時はそこから回復される。プログラム状態レジスタ内に含まれるのは、高速割込みｆｉｑ及び低速割込みｉｒｑの両方の割込みマスクビットである。
【００１８】
図１に示した様に、マスク制御回路２８が備えられ、これは、高速割込みｆｉｑに関連した割込みマスクビットに対してなされる変更を制御する役目をする。マスク制御回路はそれ自身安全モード信号Ｓに応じ、これは処理装置コア４が現在安全か又は非安全モードかの何れかで動作しているかどうかを示し、高速割込みリザーブ信号ＦＩＱｒｅｓは高速割込みは動作の安全モードのみに対してリザーブされるかどうかを示し、マスク不可能（non-maskable）割込み信号ＮＭＩは高速割込みはプログラム制御の下でマスク不可能であることを示している。示した様に構成副処理装置８は、構成レジスタ３８を含み、これはＳの状態、ＦＩＱｒｅｓ及びＮＭＩ制御信号を反映するビットを含む。これらは、単一の副処理装置構成レジスタ３８内に備えられるとして示されるが、これらは別個に備えることが出来、又は外部信号を直接与えることにより備えられることが理解されるであろう。ＮＭＩ信号の場合は、これは外部信号値により供給されるのが望ましい。
【００１９】
マスク制御回路２８の１つの行動は、マスク制御信号ＮＭＩが主張される時、プログラム命令制御の下で高速割込みｆｉｑに関連する割込みマスクビットのセットを阻止することである。従って、ＮＭＩ信号が主張されると、割込み制御装置２２は、高速割込みｆｉｑが発生する時、高速割込みｆｉｑに関連する割込みマスクビットＦをセットすることが出来、しかしこのビットはソフトウエア制御の下ではセット出来ない。ソフトウエアはそれでも、割込みがハードウェア割込み制御装置により不能にされた後、割込みを再可能にするために割込みマスクビットＦをリセットすることが出来る。
【００２０】
図２は、マスク制御回路をより詳細に示す。フロップ４０が備えられ、これは高速割込みｆｉｑに関連する割込みマスクビットＦを記憶する役目をする。このフロップ４０は実際においては、プログラム状態レジスタ２４内の１ビットを形成することが理解されるであろう。フロップ４０への書込みは、書込みＰＳＲ信号から引き出される信号により可能にされ、この信号は、処理装置コア４が現在、安全モード又は非安全モードで動作しているかどうかを示す信号と高速割込みｆｉｑは安全モードのみにリザーブされているかどうかを示す信号と一緒の組み合わせによりゲートされる。もし処理装置コア４が、「０」のＳ値により示される様に非安全モードにおいて動作しており、また高速割込みが、「１」のＦＩＱｒｅｓ値により示される様に非安全モードにおいて動作していれば、そのときは、書込みＰＳＲ信号は永久的に阻止され、そしてフロップ４０内に記憶されているマスクビットに対する変更は不可能である。他の状況においては、書込みＰＳＲ信号はパスされ、そして現在記憶されている割込みマスクビットＦは、ＡＮＤゲート４２とＯＲゲート４４の作用に従い新しい値で更新されるであろう。
【００２１】
ＡＮＤゲート４２とＯＲゲート４４の組み合わされた作用は図３の真理値表に示される。特にＮＭＩ値が「１」の時は、その時は割込みマスクビットＦの新しい値は、現在のマスクビットＦが「１」のときはＡＮＤゲート４２を通りパスすることが許されるのみである。従って、割込みマスクビットＦは、ＮＭＩが「１」の時は、「０」へクリアダウン（cleared down）されることが出来、しかしセットされそして「０」から「１」の値へ変更されることは出来ない。図３の第２の真理値表の４６の部分はこの振る舞いを示し、即ち、現在の割込みマスクビットの値が「０」で、ＮＭＩの値が「１」であれば、その時は割込みマスクビットの新しい値「１」のＮｅｗＦは、フロップ４０内に記憶されているビットが「１」になることを強制しないであろう。逆に、図３の第１の真理値表は、フロップ４０内に記憶されているビットは、ＮＭＩ信号が「０」の値を持つ間、以前の割込みマスクビットＦ値が何であったかに無関係にＮｅｗＦ値に従うことを示している。
【００２２】
発明の例示的実施例が付随する図面を参照して詳細に記載されているが、発明はこれらの実施例には限定されず、種々の変更及び修正が当業者により、付随する請求項に定義された発明の範囲及び精神から逸脱することなく行なうことが出来ることを理解すべきである。
【図面の簡単な説明】
【００２３】
【図１】複数の割込み信号が供給され、割込みマスク及び割込みマスク制御を利用するデータ処理システムの概略図。
【図２】割込みマスク制御のために使用される回路の概略図。
【図３】図２の回路の動作に対応する２つの真理値表を示す図。
【符号の説明】
【００２４】
２  データ処理装置
４  処理論理
６  メモリ
８  副処理装置
１０  レジスタバンク
２０  命令デコーダ
２２  割込み制御装置
２４  プログラム状態レジスタ
２６  セーブプログラム状態レジスタ
２８  割込みマスク制御回路
３０  主プログラム
３６  割込みハンドラ
【図１】
2005182752.tif 000003
【図２】
2005182752.tif 000004
【図３】
2005182752.tif 000005