JP2017527902A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2017527902A5 JP2017527902A5 JP2017509003A JP2017509003A JP2017527902A5 JP 2017527902 A5 JP2017527902 A5 JP 2017527902A5 JP 2017509003 A JP2017509003 A JP 2017509003A JP 2017509003 A JP2017509003 A JP 2017509003A JP 2017527902 A5 JP2017527902 A5 JP 2017527902A5
- Authority
- JP
- Japan
- Prior art keywords
- nmi
- exception
- handler
- processor
- delivery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002265 prevention Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 29
- 230000000875 corresponding Effects 0.000 claims description 14
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
Description
プロセッサでのNMIの操作に伴う1つの課題は、例外からの復帰時にさらなるNMIの配信が早期に有効とされる場合があることである。背景技術にて論じたように、NMIの受信時に、特定のプロセッサは、NMIを操作する責任があるNMIハンドラが実行を完了しており、制御フローを発信プログラムまたはタスクに復帰するまで、NMI割り込みを含む他の割り込みが、受信されないことを保証するよう試みるべく特定のハードウェア条件を起動し得る。例えば、プロセッサは、ソフトウェア不可視NMI無効制御(例えば、NMI無効ビット)によって次のNMIの配信を一時的に無効化または延期すること(用語「マスク不可」と一致する)によりNMIの受信に応答し得る。NMIハンドラが(例えば、IRET命令または他のNMIハンドラ復帰命令を使用して)復帰した場合、プロセッサは、(例えば、NMI無効ビットをクリアすることにより)さらなるNMIの配信を再有効化するべくNMI無効制御を設定(コンフィギュア)し得る。しかしながら、例外からの復帰も、NMI無効制御がさらなるNMIの配信を(例えば、NMI無効ビットをクリアすることにより)再有効化するように設定してよい。例えば、NMIハンドラおよび例外ハンドラの両方は、復帰がハンドラからプログラムまたはタスクに復帰するべく、同じ命令(例えば、IRET命令または他のハンドラ復帰命令)を用いてよく、この復帰命令は、復帰がNMIまたは例外からかどうかに関わらず(例えば、NMI無効ビットをクリアすることにより)さらなるNMIの配信を再有効化するべくNMI無効制御を設定してよい。たとえ同じ命令がNMIおよび例外ハンドラの両方から復帰するべく使用されなくても、例外ハンドラからの復帰がさらなるNMIの配信を再有効化し得ることは、可能なままである。
プロセッサはまた、ネスト型NMI防止ユニット149を有する。ネスト型NMI防止ユニット(例えば、NMI無効制御構成ユニット112)は、NMI(例えば、前述のソースのうちのいずれかから)が発生した指示121を受信し得る。NMI121の指示に応答して、プロセッサおよび/またはネスト型NMI防止ユニットは、さらなるNMIの配信を一時的に無効化または延期することによりネスト型NMIを防止し得る。いくつかの実施形態において、ネスト型NMI防止ユニットは、NMI無効制御114を有し得る。NMI無効制御は、さらなるNMIの配信を交互に有効化または延期するべく、ビット、ビットセット、モードまたはハードウェア条件を広く表し得る。例えば、NMI無効ビットまたはビットセットは、さらなるNMIの配信を有効にするべく第1値(例えば、ビットはバイナリ・ゼロにクリアされ得る)を有し得、あるいは、さらなるNMIの配信を一時的に無効化または延期するべく第2の異なる値(例えば、ビットはバイナリ1にセットされ得る)を有し得る。いくつかの実施形態において、ネスト型NMI防止ユニットは、NMI無効制御構成ユニット112を有し、さらなるNMIの配信を交互に有効化または延期するべくNMI無効制御114を設定し得る。NMI121の指示に応答して、NMI無効制御構成ユニット112は、さらなるNMIの配信を一時的に無効化または延期するべく、NMI無効制御114を設定するように動作し得る(例えば、単一ビットをバイナリ1にセットし得る)。代表的には、NMI無効制御は、次のNMIの配信を一時的に阻止または無効化にするように設定される場合、割り込みおよび例外ユニット110(またはそのロジックまたは回路)に次のNMIの配信を一時的に阻止または延期させるか、割り込みおよび例外ユニット110を設定し得る。単一ビットで十分であり得るが、2またはより多くのビットが任意で使用され得ることと、1つのビットまたは2またはより多くのビットの任意の所望の値が、有効および無効にされた状態を表すべく任意の所望される慣例に従って使用され得ることとは理解されるべきである。図示例では、NMI無効制御構成ユニットおよびNMI無効制御は、別個のユニットであるように示されているが、複数の他の実施形態において、それらは例示されたユニット(例えば、割り込みおよび例外ユニット110において)のうちの1つに任意で含まれ得る。
いくつかの実施形態において、NMI配信の早期有効化の防止に役立つ例外ハンドラモジュール136の前述の機能は、常に有効にされるか、オンにされ得る。複数の他の実施形態において、この機能は、例えば、オペレーティングシステムまたは他の特権のあるおよび/またはシステムレベルのソフトウェアによって、有効かつ無効にされるように設定され得る。例えば、プロセッサは任意で、ネスト型NMI防止有効制御122を有し得る。ネスト型NMI防止有効制御は、例えば、ネスト型NMI防止機能/機構(例えば、例外ハンドラモジュールの前述の機能を含む)を有効にするべく、第1値(例えば、単一ビットがバイナリ1にセットされるか、(代わりに、バイナリ・ゼロにクリアされ)得る)を有し得る1または複数のビット、または、ネスト型NMI防止機能/機構を無効にするべく、第2の異なる値(例えば、単一ビットがバイナリ・ゼロにクリアされるか、(代わりに、バイナリ1にセットされ得る))を有し得る1または複数のビットを含み得る。そのようにして、システムは、特定の実装向けに所望されるこの機能/機構を用いるか、用いないかのいずれかとなり得る。
方法は、ブロック358で、例外がNMIハンドラ内に取り入れられたことを判定する工程を含む。いくつかの実施形態において、この判定は、プロセッサのNMI無効制御をチェックすることによりなされ得る。いくつかの実施形態において、チェックされるNMI無効制御は、プロセッサがNMIの受信時のさらなるNMIの配信を延期するように設定する特性を有し得る。
例外ハンドラ復帰実行ユニット464は、デコードユニット462と結合される。例外ハンドラ復帰実行ユニットは、例外ハンドラ復帰命令を表す、および/またはこれから導出される1または複数のデコードされた、もしくは別のやり方で変換された命令または制御信号を受信し得る。例外ハンドラ復帰実行ユニットはまた、保存されたNMI無効制御456(例えば、命令は、保存されたNMI無効制御456を有する例外フレーム454にスタックからポップされるか、別のやり方でプロセッサ中に受信させられ得)を受信するか、別のやり方で保存されたNMI無効制御456にアクセスし得る。例外ハンドラ復帰実行ユニットは、任意のネスト型NMI防止有効制御チェッカユニット466を有する。ネスト型NMI防止有効制御チェッカユニットは、プロセッサのネスト型NMI防止有効制御422と結合され、ネスト型NMI防止が有効化または無効化されるかどうかを判定するべくチェックし得る。ネスト型NMI防止が無効にされた場合、例外ハンドラ復帰実行ユニットは、いくつかの実施形態において、NMI無効制御412を保存されたNMI無効制御456に関わらず、NMIの配信を有効化するように設定し得る。
逆に、ネスト型NMI防止が有効にされた場合、例外ハンドラ復帰実行ユニット464(例えば、NMI無効制御構成ユニット412)は、いくつかの実施形態において、保存されたNMI無効制御456に依存または基づいてさらなるNMIの配信を有効化または延期するようにNMI無効制御414を設定し得る。いくつかの実施形態において、保存されたNMI無効制御チェッカユニット468は、保存されたNMI無効制御をチェックまたは検査し得る。いくつかの実施形態において、保存されたNMI無効制御は、ポップされるか、別のやり方で取り出される例外フレーム454中にあり得、チェッカユニットは、例外フレームをチェックまたは検査し得る。あるいは、保存されたNMI無効制御は、(例えば、取り出された例外フレームから)既に引き出され、実行ユニットに提供されている場合がある。保存されたNMI無効制御は、例外ハンドラ復帰命令が復帰するべく使用された例外ハンドラに対応する例外が、NMIハンドラ内に取り入れられたか否かを示し得る。NMI無効制御構成ユニットは、保存されたNMI無効制御チェッカユニットと結合される。NMI無効制御構成ユニットは、NMI無効制御414を設定しない例外ハンドラ復帰命令(例えば、それからデコードされた1または複数の命令または制御信号に応答して)に応答して、および/またはそれの結果として動作し、例外がNMIハンドラ内に取り入れられた場合、および/または保存されたNMI無効制御456が、さらなるNMIの配信が保存の時点で一時的に無効化または延期されたことを示す場合、次に受信されるNMIの配信を有効にする。
逆に、NMI無効制御構成ユニット412は、NMI無効制御414を設定する例外ハンドラ復帰命令460に応答して、および/またはそれの結果として動作し、例外がNMIハンドラ内に取り入れられなかった場合、および/または保存されたNMI無効制御456が、さらなるNMIの配信が保存の時点で有効にされたことを示す場合、次に受信されるNMIの配信を有効にする。従って、例外ハンドラ復帰実行ユニットは、例外ハンドラ復帰命令に応答して、保存されたNMI無効制御が、例外がNMI内に受信されたか、受信されなかったことを示すかどうかに基づいてさらなるNMIの配信を有効にするか、有効にしないかのいずれかにし得る。例えば、保存されたNMI無効制御が第1値を有する場合、さらなるNMIの配信が有効にされ得るが、保存されたNMI無効制御が第2の異なる値を有する場合、さらなるNMIの配信が有効にされ得ず、それゆえまだ延期され得る。例外復帰命令に応答して、実行ユニットはまた、他の従来のオペレーション、例えば、例外フレームからプロセッサのアーキテクチャ状態へのアーキテクチャ状態を復元すること(例えば、例外フレームからの値でプロセッサのプログラムカウンタをロードすること、プロセッサのフラグレジスタを例外フレームからの値でロードすること、など)のようなオペレーションを実行し得る。
NMI無効制御構成ユニット412および/またはプロセッサは、特有または特定のロジック(例えば、トランジスタ、集積回路、またはファームウェア(例えば、不揮発性メモリに格納される命令)および/またはソフトウェアと潜在的に組み合わされる他のハードウェア)を含み、ロジックは、例外ハンドラ復帰命令に応答して、および/またはそれの結果として(例えば、それからデコードされた1または複数の命令または制御信号に応答して)例外ハンドラ復帰命令を実行、および/またはNMI無効制御を設定するよう動作可能である。いくつかの実施形態において、NMI無効制御構成ユニットは、デコードされた命令および関連データを受信する1または複数の入力構造(例えば、ポート、相互接続、インターフェース)と、それと結合して、デコードされた命令および関連データを受信および処理する回路またはロジック(例えば、ステートマシーン)と、NMI無効制御を設定するべく出力信号を提供する1または複数の出力構造(例えば、ポート、相互接続、インターフェース)とを含み得る。
方法は、ブロック596で、例外ハンドラ復帰命令の第1インスタンスを受信する工程を含む。第1例外ハンドラ復帰命令は、第1例外に対応する例外ハンドラから復帰するべく使用されており、この方法において、第1例外はNMIハンドラ内に取り入れられなかった。方法は、ブロック597で、第1例外ハンドラ復帰命令に応答して次に受信されるNMIの配信を有効にするプロセッサ(例えば、NMI無効制御によって)を設定する工程を含む。第1例外がNMIハンドラ内に取り入れられなかったので、次のNMIの配信が早期に有効とされ得るように、現在サービスされている未処理係属中のNMIはない。
方法は、ブロック598で、例外ハンドラ復帰命令の第2インスタンスを受信する。図示例にて示されないが、ブロック597−598の間で、複数の他のイべントが発生し得ることは理解されるべきである。例えば、NMIが受信され得、NMIハンドラへの呼び出しがなされ得、例外が受信され得るが、NMIハンドラにて、例外ハンドラへの呼び出しがなされ得、そして、例外ハンドラからの復帰は、ブロック598で受信された例外ハンドラ復帰命令の第2インスタンスを使用して実行され得る。すなわち、例外ハンドラ復帰命令の第2インスタンスは、NMIハンドラ内に取り入れられた第2例外に対応する例外ハンドラから復帰するべく使用されている。方法は、ブロック599で、プロセッサ(例えば、NMI無効制御によって)が、第2例外ハンドラ復帰命令に応答して次に受信されるNMIの配信を有効にするように設定しないこと、または、設定することを控える工程を含む。有利には、NMI無効制御を次に受信されるNMIの配信を有効にするように設定しない工程は、NMIおよび/またはネスト型NMIを早期に有効にすることを回避するのに役立ち得る。むしろ、次に受信されるNMIの配信は、NMIからの復帰までなお延期され得る。
ネスト型NMI防止サポートモジュールは任意で、ネスト型NMI防止有効制御構成モジュール686を含み得る。ネスト型NMI防止有効制御構成モジュールは、プロセッサのネスト型NMI防止有効制御622(例えば、ネスト型NMI防止有効制御122)と結合するか、別のやり方で、それと通信する。例として、ネスト型NMI防止有効制御は、モデル固有レジスタ、プロセッサの制御または構成レジスタ等に見つけられ得る。1つの態様において、ネスト型NMI防止有効制御は、非特権化またはアプリケーションレベルソフトウェアによってではなく、オペレーティングシステムまたは他の特権化レベルソフトウェアによって修正されることが可能な特権化レベル制御を表す。プロセッサがネスト型NMI防止機構/機能向けのサポートを有する場合、構成モジュール686は任意で、ネスト型NMI防止有効制御622がこの機構/機能を有効にするように設定し得る。あるいは、ある理由により、この機構/機能を有効にしないことが判定され得る。
前述したように、NMIの処理は、タスクゲート、割り込みスタックテーブル(IST)またはネスト型NMIと十分に互換性のないプロセッサの他のフィーチャに依存し得るので、オペレーティングシステムの不安定性、および/または潜在的に致命的なエラーを引き起こす場合がある、次のNMIの配信を早期の再有効化を防止することが概して望ましい。特定のシステムにおいて、SMIは、ファームウェア(例えば、BIOS)に実装されたSMIハンドラによって操作され得るが、NMIを含む大抵のまたは他の割り込み全てが、オペレーティングシステムによって典型的には操作される。その理由のため、SMIハンドラ(例えば、BIOSおよび/またはファームウェア)が、SMIを操作するように動作している間、NMIの配信を延期することが概して望ましい。これをサポートするべく、特定のプロセッサは、SMIを配信する場合、NMIの一時的な延期または阻止を有効化または設定し得る。SMIを操作している間(例えば、SMIハンドラがSMIを操作している間で、SMIハンドラが復帰する前)に、例外が取り入れられた場合、それが復帰する場合の例外ハンドラは、次のNMIの配信を早期に再有効化し得る。これにより、次のNMIは、それが代わりにオペレーティングシステム(例えば、NMIハンドラ)に配信されるべき場合に、SMIの操作中にBIOS/ファームウェア(すなわち、オペレーティングシステムへではない)に配信されることになり得る。いくつかの実施形態において、命令(例えば、BIOS例外ハンドラ復帰命令)は、本明細書中に開示されるものに類似した技術を使用して、NMIの配信を早期に再有効化することなく、BIOS例外ハンドラから復帰し得る。また、他のアーキテクチャが、SMIに類似した他のタイプの高優先度の割り込みを有してよく、これに本明細書中に説明される実施形態が適用可能であることは当業者なら理解するであろう。
[例示的なコアアーキテクチャ、プロセッサ、およびコンピュータアーキテクチャ]
[例示的なコアアーキテクチャ、プロセッサ、およびコンピュータアーキテクチャ]
例1は、例外ハンドラ復帰命令をデコードするデコードユニットを含むプロセッサまたは他の装置である。装置はまた、デコードユニットと結合する例外ハンドラ復帰実行ユニットを含む。例外ハンドラ復帰実行ユニットは、例外ハンドラ復帰命令に応答して、例外ハンドラ復帰命令に対応する例外がNMIハンドラ内に取り入れられた場合、次に受信されるマスク不可割り込み(NMI)のNMIハンドラへの配信を有効にするようにプロセッサを設定しない。例外ハンドラ復帰実行ユニットは、例外ハンドラ復帰命令に応答して、例外がNMIハンドラ内に取り入れられなかった場合、次に受信されるNMIのNMIハンドラへの配信を有効にするようにプロセッサを設定する。
例2は、例1のプロセッサを含み、例外ハンドラ復帰命令に応答して、例外が、メモリから取り出された(例えば、スタックからポップされた)例外に対応する例外フレームにおいて例外がNMIハンドラ内に取り入れられたかどうかの保存された指示をチェックし、保存された指示に部分的に基づいて次に受信されたNMIの配信を有効にするようにプロセッサを設定するかどうかを判定する、保存されたNMI指示チェッカユニットをさらに含む。
例3は、例2のプロセッサを含み、任意で、例外ハンドラ復帰命令に応答して、保存されたNMI指示チェッカユニットは、保存された指示が第1値を有する場合、次に受信されるNMIの配信を有効にするようにプロセッサを設定しないことを判定し、または、保存された指示が第2の異なる値を有する場合、次に受信されるNMIの配信を有効にするようにプロセッサを設定することを判定する。
例6は、例1のプロセッサを含み、任意で、例外ハンドラ復帰実行ユニットは、例外ハンドラ復帰命令に応答して、プロセッサのNMI無効制御の保存されたコピーである保存されたNMI無効制御をチェックするとし、NMIの配信を交互に有効および延期にするように使用される。例外ハンドラ復帰実行ユニットは、例外ハンドラ復帰命令に応答して、例外がプロセッサのNMI無効制御を変更することによりNMIハンドラ内に取り入れられなかった場合、次に受信されるNMIのNMIハンドラへの配信を有効にするようにプロセッサを設定する。
例9は、マスク不可割り込み(NMI)ハンドラ内に取り入れられなかった第1例外に対応する例外ハンドラからの復帰に使用されている第1例外ハンドラ復帰命令を受信する工程を含むプロセッサの方法である。方法は、第1例外ハンドラ復帰命令に応答して次に受信されるNMIの配信を有効にするようにプロセッサを設定する工程を含む。方法はまた、NMIハンドラ内に取り入れられた第2例外に対応する例外ハンドラからの復帰に使用されている第2例外ハンドラ復帰命令を受信する工程を含む。方法は、第2例外ハンドラ復帰命令に応答して次に受信されるNMIの配信を有効にするようにプロセッサを設定しない工程を含む。
例13は、例9の方法を含み、任意で、第1例外ハンドラ復帰命令に応答して次に受信されるNMIの配信を有効にするようにプロセッサを設定する工程は、NMI無効制御を変更する工程を含む。NMI無効制御はまた、NMIハンドラに配信されるNMIに応答するプロセッサによって変更される。
実施例21は、相互接続と、この相互接続と結合されるプロセッサとを含む命令を処理するシステムである。プロセッサは、例外ハンドラ復帰命令を受信する。プロセッサは、例外ハンドラ復帰命令に応答して、例外ハンドラ復帰命令に対応する例外がNMIハンドラ内に取り入れられた場合、次に受信されるマスク不可割り込み(NMI)のNMIハンドラへの配信を延期するように設定されるプロセッサを保持する。プロセッサは、命令に応答して、例外がNMIハンドラ内に取り入れられなかった場合、次に受信されるNMIをNMIハンドラに配信するようにプロセッサを設定する。システムはまた、相互接続と結合されたダイナミックランダムアクセスメモリ(DRAM)を含む。
Claims (17)
- 例外ハンドラ復帰命令をデコードするデコードユニットと、
前記デコードユニットと結合された例外ハンドラ復帰実行ユニットとを備えたプロセッサであって、
前記例外ハンドラ復帰実行ユニットは、前記例外ハンドラ復帰命令に応答して、例外が、マスク不可割り込み(NMI)ハンドラ内に取り入れられたかどうかの指示に基づいて、
前記例外ハンドラ復帰命令に対応する例外が、前記NMIハンドラ内に取り入れられたと判定した場合、次に受信されるNMIの前記NMIハンドラへの配信を有効にするように前記プロセッサを設定せず、
前記例外が、前記NMIハンドラ内に取り入れられなかったと判定した場合、前記次に受信されるNMIの前記NMIハンドラへの前記配信を有効にするように前記プロセッサを設定する、
プロセッサ。 - 保存されたNMI指示チェッカユニットをさらに備え、
前記例外ハンドラ復帰命令に応答して、前記例外が、メモリから取り出された前記例外に対応する例外フレームにおいて、前記例外がNMIハンドラ内に取り入れられたかどうかの保存された指示をチェックし、
前記保存された指示に部分的に基づいて前記次に受信されるNMIの前記配信を有効にするように前記プロセッサを設定するかどうかを判定する、
請求項1に記載のプロセッサ。 - 前記例外ハンドラ復帰命令に応答して、保存されたNMI指示チェッカユニットは、前記保存された指示が第1値を有する場合、前記次に受信されるNMIの前記配信を有効にするように前記プロセッサを設定しないことを判定し、または、前記保存された指示が第2の異なる値を有する場合、前記次に受信されるNMIの前記配信を有効にするように前記プロセッサを設定することを判定する、
請求項2に記載のプロセッサ。 - 前記保存された指示は、前記プロセッサのフラグレジスタにおける1または複数の相手ビットに対応しない前記例外フレームの位置を有する、
請求項2に記載のプロセッサ。 - 前記保存された指示は、前記プロセッサのフラグレジスタにおける1または複数のリザーブされたビットに対応する前記例外フレームの位置を有するが、前記プロセッサは、前記フラグレジスタに前記1または複数のリザーブされたビットをまだリザーブする、
請求項2に記載のプロセッサ。 - 前記例外ハンドラ復帰実行ユニットは、
前記例外ハンドラ復帰命令に応答して、前記プロセッサのNMI無効制御の保存されたコピーであり、NMIの配信を交互に有効および延期にするように使用される、保存されたNMI無効制御をチェックし、
前記プロセッサの前記NMI無効制御を変更することにより、例外が前記NMIハンドラ内に取り入れられなかった場合、前記次に受信されるNMIの前記NMIハンドラへの前記配信を有効にするように前記プロセッサを設定する、
請求項1に記載のプロセッサ。 - ネスト型NMI防止有効制御をチェックするネスト型NMI防止有効制御チェッカユニットをさらに備え、
前記ネスト型NMI防止有効制御は、前記例外ハンドラ復帰命令に応答して、ネスト型NMI防止機構を選択的に有効および無効にし、ネスト型NMI防止機構は、有効にされた場合、前記例外が前記NMIハンドラ内に取り入れられたかどうかに基づいて前記次に受信されたNMIの前記配信の前記有効を条件付けする前記例外ハンドラ復帰実行ユニットを含む、
請求項1から6のうちのいずれか一項に記載のプロセッサ。 - 前記例外ハンドラ復帰命令は、NMIハンドラからの復帰にも使用されるオペコードを有する、請求項1から6のうちのいずれか一項に記載のプロセッサ。
- プロセッサにおいて、例外が、マスク不可割り込み(NMI)ハンドラ内に取り入れられたかどうかの指示に基づいて、NMIハンドラ内に取り入れられなかったと判定された第1例外に対応する例外ハンドラからの復帰に使用されている第1例外ハンドラ復帰命令を受信する段階と、
前記第1例外ハンドラ復帰命令に応答して次に受信されるNMIの配信を有効にするように前記プロセッサを設定する段階と、
前記指示に基づいて、NMIハンドラ内に取り入れられたと判定された第2例外に対応する例外ハンドラからの復帰に使用されている第2例外ハンドラ復帰命令を受信する段階と、
前記第2例外ハンドラ復帰命令に応答して前記次に受信されるNMIの前記配信を有効にするように前記プロセッサを設定しない段階と
を備える方法。 - 前記第2例外ハンドラ復帰命令に応答して、メモリから取り出された例外フレームにおいて、第2例外がNMIハンドラ内に取り入れられるとの保存された指示をチェックする段階をさらに備える、
請求項9に記載の方法。 - 前記保存された指示をチェックする段階は、前記プロセッサのフラグレジスタの1または複数のビットの相手セットを有しない前記例外フレームの1または複数のビットのセットの前記保存された指示をチェックする段階を有する、
請求項10に記載の方法。 - 前記保存された指示をチェックする段階は、プロセッサのフラグレジスタの1または複数のリザーブされたビットのセットに対応する前記例外フレームの1または複数のビットのセットの前記保存された指示をチェックする段階を有する、請求項10に記載の方法。
- 前記第1例外ハンドラ復帰命令に応答して前記次に受信されるNMIの前記配信を有効にするように前記プロセッサを設定する段階は、NMI無効制御を変更する段階を有し、前記NMI無効制御はまた、NMIハンドラに配信されるNMIに応答する前記プロセッサによって変更される、
請求項9に記載の方法。 - 請求項9から13のうちのいずれか一項に記載の方法を実行するための手段を備える装置。
- 機械によって実行される場合、請求項9から13のうちのいずれか一項に記載の方法を前記機械に実行させる命令を格納する非一時的機械可読記憶媒体を備える製造品。
- 相互接続を備えた電子デバイスであって、請求項1から6のうちのいずれか一項に記載のプロセッサは前記相互接続と結合され、ダイナミックランダムアクセスメモリ(DRAM)は前記相互接続と結合される、電子デバイス。
- 例外ハンドラ復帰命令をデコードするための手段と、
前記例外ハンドラ復帰命令に応答して、例外が、マスク不可割り込み(NMI)ハンドラ内に取り入れられたかどうかの指示に基づいて、前記例外ハンドラ復帰命令に対応する例外が、前記NMIハンドラ内に取り入れられたと判定した場合、次に受信されるNMIの前記NMIハンドラへの配信を有効にせず、前記例外が、前記NMIハンドラ内に取り入れられなかったと判定した場合、前記次に受信されるNMIの前記NMIハンドラへの前記配信を有効にするための手段と、
を含む装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/498,884 | 2014-09-26 | ||
US14/498,884 US9740644B2 (en) | 2014-09-26 | 2014-09-26 | Avoiding premature enabling of nonmaskable interrupts when returning from exceptions |
PCT/US2015/047735 WO2016048591A1 (en) | 2014-09-26 | 2015-08-31 | Avoiding premature enabling of nonmaskable interrupts when returning from exceptions |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017527902A JP2017527902A (ja) | 2017-09-21 |
JP2017527902A5 true JP2017527902A5 (ja) | 2018-10-18 |
JP6508851B2 JP6508851B2 (ja) | 2019-05-08 |
Family
ID=55581783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017509003A Expired - Fee Related JP6508851B2 (ja) | 2014-09-26 | 2015-08-31 | 例外からの復帰時のマスク不可割り込みの早期有効化の回避 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9740644B2 (ja) |
EP (1) | EP3198402B1 (ja) |
JP (1) | JP6508851B2 (ja) |
KR (1) | KR102262176B1 (ja) |
CN (1) | CN106663000B (ja) |
TW (1) | TWI556109B (ja) |
WO (1) | WO2016048591A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2530050B (en) * | 2014-09-10 | 2021-07-21 | Advanced Risc Mach Ltd | Debugging in a data processing apparatus |
US9740644B2 (en) | 2014-09-26 | 2017-08-22 | Intel Corporation | Avoiding premature enabling of nonmaskable interrupts when returning from exceptions |
US20160210069A1 (en) * | 2015-01-21 | 2016-07-21 | Bitdefender IPR Management Ltd. | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine |
US9769169B2 (en) * | 2015-09-25 | 2017-09-19 | Intel Corporation | Secure sensor data transport and processing |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US10146606B2 (en) * | 2016-04-06 | 2018-12-04 | Dell Products, Lp | Method for system debug and firmware update of a headless server |
US10061722B2 (en) | 2016-10-17 | 2018-08-28 | Qualcomm Incorporated | Method to handle concurrent fatal events in a multicore execution environment |
GB2563884B (en) * | 2017-06-28 | 2020-01-08 | Advanced Risc Mach Ltd | Exception return instruction |
CN109828932B (zh) * | 2019-02-18 | 2020-12-18 | 华夏芯(北京)通用处理器技术有限公司 | 一种地址微调加速系统 |
CN109918251A (zh) * | 2019-03-20 | 2019-06-21 | 浪潮商用机器有限公司 | 处理器中断的触发方法及装置 |
US11386518B2 (en) | 2019-09-24 | 2022-07-12 | Advanced Micro Devices, Inc. | Exception handler for sampling draw dispatch identifiers |
US11392521B2 (en) * | 2020-04-13 | 2022-07-19 | Tcl China Star Optoelectronics Technology Co., Ltd. | Heterogeneous computing system and heterogeneous computing method using the system |
US20230195470A1 (en) * | 2021-12-22 | 2023-06-22 | Vmware, Inc. | Behavioral implementation of a double fault stack in a computer system |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5920053A (ja) * | 1982-07-26 | 1984-02-01 | Toshiba Corp | マイクロコンピユ−タシステム |
JPS61121136A (ja) * | 1984-11-19 | 1986-06-09 | Toshiba Corp | 演算処理装置 |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5303378A (en) * | 1991-05-21 | 1994-04-12 | Compaq Computer Corporation | Reentrant protected mode kernel using virtual 8086 mode interrupt service routines |
JP3176093B2 (ja) | 1991-09-05 | 2001-06-11 | 日本電気株式会社 | マイクロプロセッサの割込み制御装置 |
JPH06175860A (ja) * | 1992-12-08 | 1994-06-24 | Toshiba Corp | マイクロプロセッサ応用装置 |
JP3672634B2 (ja) | 1994-09-09 | 2005-07-20 | 株式会社ルネサステクノロジ | データ処理装置 |
JP2625402B2 (ja) * | 1995-05-24 | 1997-07-02 | 日本電気株式会社 | マイクロプロセッサ |
US5987258A (en) * | 1997-06-27 | 1999-11-16 | Lsi Logic Corporation | Register reservation method for fast context switching in microprocessors |
US6880030B2 (en) * | 2000-12-13 | 2005-04-12 | Wind River Systems, Inc. | Unified exception handling for hierarchical multi-interrupt architectures |
US6829719B2 (en) | 2001-03-30 | 2004-12-07 | Transmeta Corporation | Method and apparatus for handling nested faults |
US6928582B2 (en) | 2002-01-04 | 2005-08-09 | Intel Corporation | Method for fast exception handling |
US7043582B2 (en) * | 2002-09-06 | 2006-05-09 | Intel Corporation | Self-nesting interrupts |
GB2403822B (en) | 2003-07-07 | 2006-05-10 | Advanced Risc Mach Ltd | Data processing apparatus and method for handling interrupts |
US7200742B2 (en) * | 2005-02-10 | 2007-04-03 | International Business Machines Corporation | System and method for creating precise exceptions |
CN100543645C (zh) * | 2006-06-21 | 2009-09-23 | 国际商业机器公司 | 对中断等待影响最小的热调节控制方法、系统 |
EP2150889A1 (en) | 2007-04-10 | 2010-02-10 | Cambridge Consultants Limited | Data processing apparatus |
JP2008262437A (ja) | 2007-04-13 | 2008-10-30 | Renesas Technology Corp | プロセッサシステムおよび例外処理方法 |
US8103816B2 (en) | 2008-10-28 | 2012-01-24 | Intel Corporation | Technique for communicating interrupts in a computer system |
US8688964B2 (en) | 2009-07-20 | 2014-04-01 | Microchip Technology Incorporated | Programmable exception processing latency |
US8135894B1 (en) * | 2009-07-31 | 2012-03-13 | Altera Corporation | Methods and systems for reducing interrupt latency by using a dedicated bit |
US8707433B1 (en) | 2011-05-03 | 2014-04-22 | Symantec Corporation | Fake exception handler detection |
US9483426B2 (en) * | 2012-01-31 | 2016-11-01 | Hewlett-Packard Development Company, L.P. | Locking a system management interrupt (SMI) enable register of a chipset |
US9740644B2 (en) | 2014-09-26 | 2017-08-22 | Intel Corporation | Avoiding premature enabling of nonmaskable interrupts when returning from exceptions |
-
2014
- 2014-09-26 US US14/498,884 patent/US9740644B2/en active Active
-
2015
- 2015-08-20 TW TW104127158A patent/TWI556109B/zh not_active IP Right Cessation
- 2015-08-31 WO PCT/US2015/047735 patent/WO2016048591A1/en active Application Filing
- 2015-08-31 JP JP2017509003A patent/JP6508851B2/ja not_active Expired - Fee Related
- 2015-08-31 EP EP15843881.2A patent/EP3198402B1/en active Active
- 2015-08-31 KR KR1020177005435A patent/KR102262176B1/ko active IP Right Grant
- 2015-08-31 CN CN201580045894.9A patent/CN106663000B/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017527902A5 (ja) | ||
JP6508851B2 (ja) | 例外からの復帰時のマスク不可割り込みの早期有効化の回避 | |
US7529914B2 (en) | Method and apparatus for speculative execution of uncontended lock instructions | |
US20120110562A1 (en) | Synchronized firmware update | |
JP2006510117A (ja) | 高信頼性プロセッサ用オンダイ機構 | |
US6301655B1 (en) | Exception processing in asynchronous processor | |
US20070239917A1 (en) | Interrupt routing within multiple-processor system | |
US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
US9372702B2 (en) | Non-disruptive code update of a single processor in a multi-processor computing system | |
JP5703378B2 (ja) | アラインメント制御 | |
US6553512B1 (en) | Method and apparatus for resolving CPU deadlocks | |
JP4893427B2 (ja) | マイクロコンピュータシステム | |
US6968410B2 (en) | Multi-threaded processing of system management interrupts | |
KR20190020036A (ko) | 레지스터 복구 분기 명령 | |
EP2817714B1 (en) | Hiding logical processors from an operating system on a computer | |
US6842812B1 (en) | Event handling | |
US6725362B2 (en) | Method for encoding an instruction set with a load with conditional fault instruction | |
JP5215655B2 (ja) | データ処理装置及びデータ処理装置におけるバスアクセス制御方法 | |
US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
JP3519047B2 (ja) | レジスタ・ビット更新処理方法,プロセッサ及びデータ処理システム | |
US7558946B2 (en) | Breaking a lock situation in a processor without detection of the lock situation using a multi-level approach | |
US20020078336A1 (en) | Extended processor reset | |
JP3767539B2 (ja) | 補助演算装置、中央演算装置及び情報処理装置 | |
JPH03149621A (ja) | マイクロプロセッサ | |
JP2009205351A (ja) | マイクロコンピュータ |