JP2002268914A - 特権命令の実行を監視する方法 - Google Patents
特権命令の実行を監視する方法Info
- Publication number
- JP2002268914A JP2002268914A JP2002027962A JP2002027962A JP2002268914A JP 2002268914 A JP2002268914 A JP 2002268914A JP 2002027962 A JP2002027962 A JP 2002027962A JP 2002027962 A JP2002027962 A JP 2002027962A JP 2002268914 A JP2002268914 A JP 2002268914A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- privilege level
- instruction
- trap
- privileged
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012544 monitoring process Methods 0.000 title claims description 14
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000003028 elevating effect Effects 0.000 claims 1
- 239000013598 vector Substances 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 複雑なソフトウェアエミュレータを構築する
必要なく、特権所望アプリケーションにおける特権命令
の実行を監視し、計数し、追跡するための単純化した解
決策を提供する。 【解決手段】 プロセッサは現行特権レベルを含み、プ
ロセッサの前記現行特権レベルよりも高位の特権レベル
を必要とする命令の実行が試行される場合に、自動的に
障害を発生させ、方法は、第1の障害命令によって発生
する障害に応答して、プロセッサの現行特権レベルを上
昇させるステップ(228)と、第1の障害命令を実行
するステップ(204)と、第1の障害命令を実行する
ことでトラップを発生させるステップ(206)と、ト
ラップに応答して、プロセッサの現行特権レベルを低下
させるステップ(210)とを含む。
必要なく、特権所望アプリケーションにおける特権命令
の実行を監視し、計数し、追跡するための単純化した解
決策を提供する。 【解決手段】 プロセッサは現行特権レベルを含み、プ
ロセッサの前記現行特権レベルよりも高位の特権レベル
を必要とする命令の実行が試行される場合に、自動的に
障害を発生させ、方法は、第1の障害命令によって発生
する障害に応答して、プロセッサの現行特権レベルを上
昇させるステップ(228)と、第1の障害命令を実行
するステップ(204)と、第1の障害命令を実行する
ことでトラップを発生させるステップ(206)と、ト
ラップに応答して、プロセッサの現行特権レベルを低下
させるステップ(210)とを含む。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムにおける特権命令実行の監視に関し、特に、シング
ルステップのハードウェアを用いるコンピュータシステ
ムにおける特権命令の実行の監視に関する。
テムにおける特権命令実行の監視に関し、特に、シング
ルステップのハードウェアを用いるコンピュータシステ
ムにおける特権命令の実行の監視に関する。
【0002】
【従来の技術】コンピュータシステムは少なくとも1つ
のプロセッサおよびメモリを備える。メモリは、アプリ
ケーションプログラム命令、データ、およびオペレーテ
ィングシステムを格納する。オペレーティングシステム
は、システム動作およびアプリケーションプログラム命
令の実行のために、プロセッサおよびメモリを制御す
る。プロセッサは、現行特権レベルを有することが多
く、その現行特権レベルは、システムレジスタ、システ
ム命令、およびシステムメモリページ等のシステムリソ
ースへのアクセス可能性を制御することにより、コンピ
ュータシステムにおけるアプリケーション命令の実行を
制御するものである。現行特権レベルは、2つまたはそ
れ以上の実行特権レベル間で変化する。
のプロセッサおよびメモリを備える。メモリは、アプリ
ケーションプログラム命令、データ、およびオペレーテ
ィングシステムを格納する。オペレーティングシステム
は、システム動作およびアプリケーションプログラム命
令の実行のために、プロセッサおよびメモリを制御す
る。プロセッサは、現行特権レベルを有することが多
く、その現行特権レベルは、システムレジスタ、システ
ム命令、およびシステムメモリページ等のシステムリソ
ースへのアクセス可能性を制御することにより、コンピ
ュータシステムにおけるアプリケーション命令の実行を
制御するものである。現行特権レベルは、2つまたはそ
れ以上の実行特権レベル間で変化する。
【0003】時に、元々は特権アプリケーションとして
実行することを意図されていたプログラムを、特権のな
いアプリケーションとして実行することが望ましいこと
がある。本明細書において、このようなアプリケーショ
ンは特権所望アプリケーション(privilege desiring a
pplication)と呼ばれる。特権所望アプリケーションに
おける特権命令の実行を監視し、計数し、追跡すること
が望ましい。プログラムにおける命令の実行を監視する
現在の1つの解決策は、ソフトウェアエミュレータを構
築し、障害が発生しても実行を継続できるように障害命
令を処理するというものである。しかし、この解決策は
非常に複雑であり、障害命令が実行されたかのようにプ
ロセッサ状態を更新することのできるソフトウェアを開
発する必要がある。
実行することを意図されていたプログラムを、特権のな
いアプリケーションとして実行することが望ましいこと
がある。本明細書において、このようなアプリケーショ
ンは特権所望アプリケーション(privilege desiring a
pplication)と呼ばれる。特権所望アプリケーションに
おける特権命令の実行を監視し、計数し、追跡すること
が望ましい。プログラムにおける命令の実行を監視する
現在の1つの解決策は、ソフトウェアエミュレータを構
築し、障害が発生しても実行を継続できるように障害命
令を処理するというものである。しかし、この解決策は
非常に複雑であり、障害命令が実行されたかのようにプ
ロセッサ状態を更新することのできるソフトウェアを開
発する必要がある。
【0004】ソフトウェアデバッガもまた、プログラム
命令の実行を監視するために開発されている。ソフトウ
ェアデバッガは、通常、シングルステップ機能を利用す
る。シングルステップ機能は、ソフトウェアで実施され
る場合もあり、またはプロセッサにより提供されるハー
ドウェアの機能である場合もある。シングルステップ機
能は、ソフトウェアデバッガにより一度に1つの命令ず
つプログラムを通して進み、各命令後にプロセッサ状態
がどのように変化するかを監視し、プロセッサ状態の変
化に基づいてエラーを識別するために用いられている。
ハードウェアシングルステップ機能は、従来、特権所望
アプリケーションにおける特権命令の実行を監視し、計
数し、および追跡するための解決策の一環として使用さ
れていなかった。
命令の実行を監視するために開発されている。ソフトウ
ェアデバッガは、通常、シングルステップ機能を利用す
る。シングルステップ機能は、ソフトウェアで実施され
る場合もあり、またはプロセッサにより提供されるハー
ドウェアの機能である場合もある。シングルステップ機
能は、ソフトウェアデバッガにより一度に1つの命令ず
つプログラムを通して進み、各命令後にプロセッサ状態
がどのように変化するかを監視し、プロセッサ状態の変
化に基づいてエラーを識別するために用いられている。
ハードウェアシングルステップ機能は、従来、特権所望
アプリケーションにおける特権命令の実行を監視し、計
数し、および追跡するための解決策の一環として使用さ
れていなかった。
【0005】
【発明が解決しようとする課題】複雑なソフトウェアエ
ミュレータを構築する必要なく、特権所望アプリケーシ
ョンにおける特権命令の実行を監視し、計数し、追跡す
るための単純化した解決策を提供することが望ましい。
ミュレータを構築する必要なく、特権所望アプリケーシ
ョンにおける特権命令の実行を監視し、計数し、追跡す
るための単純化した解決策を提供することが望ましい。
【0006】
【課題を解決するための手段】本発明は、コンピュータ
システムのプロセッサによって特権命令の実行を監視す
るコンピュータシステムおよび方法を提供する。プロセ
ッサは、現行特権レベルを含む。プロセッサは、プロセ
ッサの現行特権レベルよりも高位の特権レベルを必要と
する命令の実行が試行される場合に、自動的に障害を発
生させる。第1の障害命令によって発生される障害に応
答して、プロセッサの現行特権レベルが上昇される。第
1の障害命令が実行される。第1の障害命令の実行によ
り、トラップが発生される。トラップに応答して、プロ
セッサの現行特権レベルが低下される。
システムのプロセッサによって特権命令の実行を監視す
るコンピュータシステムおよび方法を提供する。プロセ
ッサは、現行特権レベルを含む。プロセッサは、プロセ
ッサの現行特権レベルよりも高位の特権レベルを必要と
する命令の実行が試行される場合に、自動的に障害を発
生させる。第1の障害命令によって発生される障害に応
答して、プロセッサの現行特権レベルが上昇される。第
1の障害命令が実行される。第1の障害命令の実行によ
り、トラップが発生される。トラップに応答して、プロ
セッサの現行特権レベルが低下される。
【0007】一実施形態において、プロセッサの現行特
権レベルは、命令を実行する前に低下される。
権レベルは、命令を実行する前に低下される。
【0008】一実施形態において、障害ハンドラが障害
を処理するために呼び出される。現行特権レベルを上昇
させるステップは、障害ハンドラによって行われる。
を処理するために呼び出される。現行特権レベルを上昇
させるステップは、障害ハンドラによって行われる。
【0009】一実施形態において、トラップハンドラが
トラップを処理するために呼び出される。現行特権レベ
ルを低下させるステップは、トラップハンドラによって
行われる。
トラップを処理するために呼び出される。現行特権レベ
ルを低下させるステップは、トラップハンドラによって
行われる。
【0010】一実施形態において、障害に応答してプロ
セッサのシングルステップモードがイネーブルされる。
シングルステップモードは、プロセッサのシステムレジ
スタ内のフィールドを設定することによってイネーブル
される。
セッサのシングルステップモードがイネーブルされる。
シングルステップモードは、プロセッサのシステムレジ
スタ内のフィールドを設定することによってイネーブル
される。
【0011】一実施形態において、障害に応答して状態
情報が格納される。状態情報は、障害を引き起こした命
令の数、および障害を引き起こした命令の識別を含む。
情報が格納される。状態情報は、障害を引き起こした命
令の数、および障害を引き起こした命令の識別を含む。
【0012】本発明の一形態は、オペレーティングシス
テムにより制御されるコンピュータシステムのプロセッ
サによって命令を実行する方法を提供する。プロセッサ
は、現行特権レベルを有する。第1の命令の実行試行に
基づいて、特権動作障害を発生させる。プロセッサの現
行特権レベルは、特権動作障害に応答して上昇される。
特権動作障害に応答して、シングルステップモードがイ
ネーブルされる。第1の命令が実行され、それによって
シングルステップトラップを発生させる。プロセッサの
現行特権レベルは、シングルステップトラップに応答し
て低下される。シングルステップトラップに応答して、
シングルステップモードがディセーブルされる。
テムにより制御されるコンピュータシステムのプロセッ
サによって命令を実行する方法を提供する。プロセッサ
は、現行特権レベルを有する。第1の命令の実行試行に
基づいて、特権動作障害を発生させる。プロセッサの現
行特権レベルは、特権動作障害に応答して上昇される。
特権動作障害に応答して、シングルステップモードがイ
ネーブルされる。第1の命令が実行され、それによって
シングルステップトラップを発生させる。プロセッサの
現行特権レベルは、シングルステップトラップに応答し
て低下される。シングルステップトラップに応答して、
シングルステップモードがディセーブルされる。
【0013】本発明の一形態は、コンピュータシステム
におけるアプリケーション命令の実行を制御する現行特
権レベルを有するプロセッサを備えるコンピュータシス
テムを提供する。メモリは、アプリケーション命令を有
する特権所望アプリケーションプログラムを格納する。
メモリに格納されたオペレーティングシステムがプロセ
ッサを制御する。オペレーティングシステムは、障害ハ
ンドラおよびトラップハンドラを含む。障害ハンドラ
は、特権動作障害に応答して、現行特権レベルを上昇さ
せると共に、シングルステップモードをイネーブルす
る。トラップハンドラは、シングルステップトラップに
応答して、現行特権レベルを低下すると共に、シングル
ステップモードをディセーブルする。
におけるアプリケーション命令の実行を制御する現行特
権レベルを有するプロセッサを備えるコンピュータシス
テムを提供する。メモリは、アプリケーション命令を有
する特権所望アプリケーションプログラムを格納する。
メモリに格納されたオペレーティングシステムがプロセ
ッサを制御する。オペレーティングシステムは、障害ハ
ンドラおよびトラップハンドラを含む。障害ハンドラ
は、特権動作障害に応答して、現行特権レベルを上昇さ
せると共に、シングルステップモードをイネーブルす
る。トラップハンドラは、シングルステップトラップに
応答して、現行特権レベルを低下すると共に、シングル
ステップモードをディセーブルする。
【0014】本発明の一形態は、特権命令の実行を監視
する方法を実行するようにコンピュータシステムのプロ
セッサを制御するオペレーティングシステムを含むコン
ピュータ読み取り可能媒体を提供する。プロセッサは、
コンピュータシステムにおける命令の実行を制御する現
行特権レベルを有する。この方法は、第1の障害命令に
よって発生する障害に応答して、プロセッサの現行特権
レベルを上昇させるステップを含む。第1の障害命令が
実行される。第1の障害命令の実行によってトラップが
発生する。トラップに応答して、プロセッサの現行特権
レベルが低下される。
する方法を実行するようにコンピュータシステムのプロ
セッサを制御するオペレーティングシステムを含むコン
ピュータ読み取り可能媒体を提供する。プロセッサは、
コンピュータシステムにおける命令の実行を制御する現
行特権レベルを有する。この方法は、第1の障害命令に
よって発生する障害に応答して、プロセッサの現行特権
レベルを上昇させるステップを含む。第1の障害命令が
実行される。第1の障害命令の実行によってトラップが
発生する。トラップに応答して、プロセッサの現行特権
レベルが低下される。
【0015】本発明は、特権所望アプリケーションプロ
グラムにおける特権命令の実行を監視し、計数し、追跡
する単純化した解決策を提供する。一実施形態におい
て、プロセッサのハードウェアシングルステップ機能を
用いて、特定の命令に対して特権を一時的に認める。特
権命令は、ハードウェア自体によって「エミュレート」
されるため、複雑なソフトウェアエミュレータを構築す
る必要がなくなる。
グラムにおける特権命令の実行を監視し、計数し、追跡
する単純化した解決策を提供する。一実施形態におい
て、プロセッサのハードウェアシングルステップ機能を
用いて、特定の命令に対して特権を一時的に認める。特
権命令は、ハードウェア自体によって「エミュレート」
されるため、複雑なソフトウェアエミュレータを構築す
る必要がなくなる。
【0016】
【発明の実施の形態】以下の好ましい実施形態の詳細な
説明において、本明細書の一部をなすと共に、例示とし
て、本発明を実施しうる特定の実施形態が示される添付
図面を参照する。他の実施形態も利用可能であり、ま
た、本発明の特許請求の範囲から逸脱せずに、構造的ま
たは論理的な変更を行いうることを理解されたい。した
がって、以下の詳細な説明は、限定する意味でとられる
べきではなく、本発明の範囲は特許請求項の範囲によっ
て定義される。
説明において、本明細書の一部をなすと共に、例示とし
て、本発明を実施しうる特定の実施形態が示される添付
図面を参照する。他の実施形態も利用可能であり、ま
た、本発明の特許請求の範囲から逸脱せずに、構造的ま
たは論理的な変更を行いうることを理解されたい。した
がって、以下の詳細な説明は、限定する意味でとられる
べきではなく、本発明の範囲は特許請求項の範囲によっ
て定義される。
【0017】図1に、本発明によるコンピュータシステ
ムを包括的に30で示す。コンピュータシステム30
は、プロセッサ32等、一連の論理演算を行う少なくと
も1つのプロセッサを含む。また、コンピュータシステ
ム30は、プロセッサ32によって使用される、命令お
よびデータを格納するメモリ52も含む。オペレーティ
ングシステム60は、メモリ52に格納され、システム
動作およびメモリ52に格納されているアプリケーショ
ンプログラム命令の実行のために、プロセッサ32およ
びメモリ52を制御する。メモリ52は、通常、ランダ
ムアクセスメモリ(RAM)、不揮発性メモリ、および
ハードディスクドライブを含むが、任意の既知のタイプ
の記憶装置を含むことが可能である。
ムを包括的に30で示す。コンピュータシステム30
は、プロセッサ32等、一連の論理演算を行う少なくと
も1つのプロセッサを含む。また、コンピュータシステ
ム30は、プロセッサ32によって使用される、命令お
よびデータを格納するメモリ52も含む。オペレーティ
ングシステム60は、メモリ52に格納され、システム
動作およびメモリ52に格納されているアプリケーショ
ンプログラム命令の実行のために、プロセッサ32およ
びメモリ52を制御する。メモリ52は、通常、ランダ
ムアクセスメモリ(RAM)、不揮発性メモリ、および
ハードディスクドライブを含むが、任意の既知のタイプ
の記憶装置を含むことが可能である。
【0018】プロセッサ32は、アプリケーションレジ
スタセット34およびシステムレジスタセット44を含
む。コンピュータシステム30のアーキテクチャとして
の状態は、アプリケーションレジスタセット34、シス
テムレジスタセット44、およびメモリ52で表され
る。アプリケーションレジスタセット34は、メモリ5
2に格納されたアプリケーションプログラムにより利用
可能なレジスタを含む。システムレジスタセット44
は、プロセス制御、割り込み処理、保護、デバッグ、性
能監視等のために、システムレジスタリソースを提供す
る。システムレジスタセット44は、一般に、オペレー
ティングシステム60にのみ可視なものである。
スタセット34およびシステムレジスタセット44を含
む。コンピュータシステム30のアーキテクチャとして
の状態は、アプリケーションレジスタセット34、シス
テムレジスタセット44、およびメモリ52で表され
る。アプリケーションレジスタセット34は、メモリ5
2に格納されたアプリケーションプログラムにより利用
可能なレジスタを含む。システムレジスタセット44
は、プロセス制御、割り込み処理、保護、デバッグ、性
能監視等のために、システムレジスタリソースを提供す
る。システムレジスタセット44は、一般に、オペレー
ティングシステム60にのみ可視なものである。
【0019】アプリケーションレジスタセット34に含
めることのできるレジスタの例としては、汎用レジス
タ、浮動小数点レジスタ、結果比較レジスタ、分岐情報
レジスタ、命令ポインタ、現行フレームマーカ、プロセ
ス識別子、およびユーザマスクが挙げられる。アプリケ
ーションレジスタセット34は、アプリケーションレジ
スタファイル36を含む。アプリケーションレジスタフ
ァイル36は、アプリケーション命令のためのアプリケ
ーションに対して可視のプロセッサ機能のための、特定
用途データレジスタおよび制御レジスタを含む。アプリ
ケーションレジスタファイル36は、手順の呼び出しを
加速するため、現行フレームマーカレジスタからの呼び
出し命令で自動的にコピーされる値を表す複数のフィー
ルドを有する先行機能状態(PFS)レジスタ38を含
む。PFSレジスタ38は、先行特権レベルフィールド
(PFS.ppl)38Aを含む。
めることのできるレジスタの例としては、汎用レジス
タ、浮動小数点レジスタ、結果比較レジスタ、分岐情報
レジスタ、命令ポインタ、現行フレームマーカ、プロセ
ス識別子、およびユーザマスクが挙げられる。アプリケ
ーションレジスタセット34は、アプリケーションレジ
スタファイル36を含む。アプリケーションレジスタフ
ァイル36は、アプリケーション命令のためのアプリケ
ーションに対して可視のプロセッサ機能のための、特定
用途データレジスタおよび制御レジスタを含む。アプリ
ケーションレジスタファイル36は、手順の呼び出しを
加速するため、現行フレームマーカレジスタからの呼び
出し命令で自動的にコピーされる値を表す複数のフィー
ルドを有する先行機能状態(PFS)レジスタ38を含
む。PFSレジスタ38は、先行特権レベルフィールド
(PFS.ppl)38Aを含む。
【0020】アプリケーションレジスタセット34は、
汎用レジスタファイル39も含む。汎用レジスタファイ
ル39は、複数の汎用レジスタを含む。汎用レジスタフ
ァイル39は汎用レジスタ40、41、および42を含
む。汎用レジスタ40、41、および42は、汎用計算
にリソースを提供する。一実施形態において、汎用レジ
スタ40および41はスタック汎用レジスタであり、こ
れは各手順に対してそれぞれローカルであり、プログラ
ム可能な数のローカルレジスタおよび出力レジスタから
なるレジスタスタックフレームを割り当てることで利用
可能になる。一実施形態において、汎用レジスタ42は
静的汎用レジスタであり、すべての手順にとって可視で
ある。
汎用レジスタファイル39も含む。汎用レジスタファイ
ル39は、複数の汎用レジスタを含む。汎用レジスタフ
ァイル39は汎用レジスタ40、41、および42を含
む。汎用レジスタ40、41、および42は、汎用計算
にリソースを提供する。一実施形態において、汎用レジ
スタ40および41はスタック汎用レジスタであり、こ
れは各手順に対してそれぞれローカルであり、プログラ
ム可能な数のローカルレジスタおよび出力レジスタから
なるレジスタスタックフレームを割り当てることで利用
可能になる。一実施形態において、汎用レジスタ42は
静的汎用レジスタであり、すべての手順にとって可視で
ある。
【0021】システムレジスタセット44に含めること
のできるレジスタの例としては、領域レジスタ、保護キ
ーレジスタ、デバッグブレークポイントレジスタ、マシ
ン固有レジスタ、および制御レジスタが挙げられる。シ
ステムレジスタセット44は、プロセッサ32の現在実
行中のプロセスに関する現在の実行環境を定義するため
の制御情報を維持するプロセッサ状態レジスタ(PS
R)46を含む。
のできるレジスタの例としては、領域レジスタ、保護キ
ーレジスタ、デバッグブレークポイントレジスタ、マシ
ン固有レジスタ、および制御レジスタが挙げられる。シ
ステムレジスタセット44は、プロセッサ32の現在実
行中のプロセスに関する現在の実行環境を定義するため
の制御情報を維持するプロセッサ状態レジスタ(PS
R)46を含む。
【0022】プロセッサ32は、PSR46中の現行特
権レベルフィールド(PSR.cpl)46Aで表され
る現行特権レベルを有する。PSR.cplフィールド
46Aに格納される現行特権レベルは、プロセッサ32
内のシステムリソース、たとえば、システムレジスタセ
ット44中のシステムレジスタ、システム命令、および
システムメモリページに対するアクセス可能性を制御す
る。PSR.cplフィールド46Aに格納される現行
特権レベルは、2つ以上の実行特権レベル間で変化す
る。コンピュータシステム30の一実施形態では、4レ
ベルの特権が採用され、特権レベル0が最も高い特権レ
ベルであり、すべての特権命令に対してアクセスを提供
し、特権レベル3が最も低い特権レベルである。呼び出
し命令は、現行特権レベルをPSR.cplフィールド
46AからPFSレジスタ38のPFS.ppl38A
に格納する。
権レベルフィールド(PSR.cpl)46Aで表され
る現行特権レベルを有する。PSR.cplフィールド
46Aに格納される現行特権レベルは、プロセッサ32
内のシステムリソース、たとえば、システムレジスタセ
ット44中のシステムレジスタ、システム命令、および
システムメモリページに対するアクセス可能性を制御す
る。PSR.cplフィールド46Aに格納される現行
特権レベルは、2つ以上の実行特権レベル間で変化す
る。コンピュータシステム30の一実施形態では、4レ
ベルの特権が採用され、特権レベル0が最も高い特権レ
ベルであり、すべての特権命令に対してアクセスを提供
し、特権レベル3が最も低い特権レベルである。呼び出
し命令は、現行特権レベルをPSR.cplフィールド
46AからPFSレジスタ38のPFS.ppl38A
に格納する。
【0023】プロセッサ32は、PSR46のシングル
ステップフィールド(PSR.ss)46Bをイネーブ
ルすることで、アプリケーション命令を通して一度に1
ステップずつ実行することができる。シングルステップ
がイネーブルされる場合、命令が首尾良く実行される
と、シングルステップトラップを発生させる。
ステップフィールド(PSR.ss)46Bをイネーブ
ルすることで、アプリケーション命令を通して一度に1
ステップずつ実行することができる。シングルステップ
がイネーブルされる場合、命令が首尾良く実行される
と、シングルステップトラップを発生させる。
【0024】システムレジスタセット44は制御レジス
タ47を含む。制御レジスタ47は、割り込み状態レジ
スタ(ISR)48、割り込みベクトルアドレス(IV
A)レジスタ50、および割り込みプロセッサ状態レジ
スタ(IPSR)51を含む。ISR48は、割り込み
の性質に関連する情報をプロセッサ32から受信する。
ISR48は、例外命令およびその属性についての情
報、たとえば例外命令が読み出し動作、書き込み動作、
実行動作、投機的(speculative)動作、または非アク
セス動作を実行していたか否か等を含む。障害およびト
ラップに固有の情報は、ISR48のコードフィールド
(ISR.code)48Aに格納される。IVAレジ
スタ50は、割り込みベクトルテーブル(IVT)62
のベースアドレス(後述)を特定する。IPSR51
は、割り込み時のPSR46の値を受信する。IPSR
51は、割り込みから戻った後にPSR46を更新する
ために用いられる。PSR46のように、IPSR51
は、現行特権レベル(cpl)フィールド51Aおよび
シングルステップ(ss)フィールド51Bを含む。
タ47を含む。制御レジスタ47は、割り込み状態レジ
スタ(ISR)48、割り込みベクトルアドレス(IV
A)レジスタ50、および割り込みプロセッサ状態レジ
スタ(IPSR)51を含む。ISR48は、割り込み
の性質に関連する情報をプロセッサ32から受信する。
ISR48は、例外命令およびその属性についての情
報、たとえば例外命令が読み出し動作、書き込み動作、
実行動作、投機的(speculative)動作、または非アク
セス動作を実行していたか否か等を含む。障害およびト
ラップに固有の情報は、ISR48のコードフィールド
(ISR.code)48Aに格納される。IVAレジ
スタ50は、割り込みベクトルテーブル(IVT)62
のベースアドレス(後述)を特定する。IPSR51
は、割り込み時のPSR46の値を受信する。IPSR
51は、割り込みから戻った後にPSR46を更新する
ために用いられる。PSR46のように、IPSR51
は、現行特権レベル(cpl)フィールド51Aおよび
シングルステップ(ss)フィールド51Bを含む。
【0025】メモリ52は、アプリケーション命令を有
する特権所望アプリケーションプログラム54を格納す
る。一実施形態において、アプリケーションプログラム
54はオペレーティングシステムである。メモリ52
は、特権昇格プロセス56および特権降格プロセス58
も格納する。メモリ52に格納されるオペレーティング
システム60は、IVT62を含む。IVT62は、複
数の割り込みハンドラを格納する。IVT62は、汎用
例外ハンドラ62Aおよびシングルステップトラップハ
ンドラ62Bを格納する。IVT62を用いて特定の割
り込みを処理することに加え、他の割り込みは他のプロ
セスによって処理することが可能である。
する特権所望アプリケーションプログラム54を格納す
る。一実施形態において、アプリケーションプログラム
54はオペレーティングシステムである。メモリ52
は、特権昇格プロセス56および特権降格プロセス58
も格納する。メモリ52に格納されるオペレーティング
システム60は、IVT62を含む。IVT62は、複
数の割り込みハンドラを格納する。IVT62は、汎用
例外ハンドラ62Aおよびシングルステップトラップハ
ンドラ62Bを格納する。IVT62を用いて特定の割
り込みを処理することに加え、他の割り込みは他のプロ
セスによって処理することが可能である。
【0026】割り込みは、ハードウェアに現行命令スト
リームの実行を自動的に停止させ、その割り込みの割り
込みハンドラに対応する命令アドレスにおいて実行を開
始させるイベントである。割り込みは障害およびトラッ
プを含む。障害は、現行命令の実行が可能になる前に、
オペレーティングシステムの介入が必要である場合に発
生する。トラップは、現行命令が完了した後に、オペレ
ーティングシステムの介入が必要な場合に発生する。割
り込みは、オペレーティングシステム60により、IV
T62のベースロケーション(IVAレジスタ50によ
って特定される)を、発生した特定の割り込みに基づい
た量だけオフセットさせることによって決定されるアド
レスで処理される。各割り込みは、各自設計されたIV
T62に対するオフセットを有する。
リームの実行を自動的に停止させ、その割り込みの割り
込みハンドラに対応する命令アドレスにおいて実行を開
始させるイベントである。割り込みは障害およびトラッ
プを含む。障害は、現行命令の実行が可能になる前に、
オペレーティングシステムの介入が必要である場合に発
生する。トラップは、現行命令が完了した後に、オペレ
ーティングシステムの介入が必要な場合に発生する。割
り込みは、オペレーティングシステム60により、IV
T62のベースロケーション(IVAレジスタ50によ
って特定される)を、発生した特定の割り込みに基づい
た量だけオフセットさせることによって決定されるアド
レスで処理される。各割り込みは、各自設計されたIV
T62に対するオフセットを有する。
【0027】割り込みが発生すると、プロセッサ32が
現行命令ポインタ(IP)における実行を停止し、現行
特権レベルを0に設定し(PSR.cpl46A=
0)、発生した特定の割り込みに関するIVT62にお
ける割り込みハンドラに対するエントリポイントのアド
レスから命令をフェッチし始める。割り込みハンドラ
は、全体的にIVT62内に含まれてもよく、より多く
のスペースが必要な場合にはIVT62外のコードに分
岐してもよい。
現行命令ポインタ(IP)における実行を停止し、現行
特権レベルを0に設定し(PSR.cpl46A=
0)、発生した特定の割り込みに関するIVT62にお
ける割り込みハンドラに対するエントリポイントのアド
レスから命令をフェッチし始める。割り込みハンドラ
は、全体的にIVT62内に含まれてもよく、より多く
のスペースが必要な場合にはIVT62外のコードに分
岐してもよい。
【0028】IVT62内の割り込みハンドラの場所
は、割り込みベクトルによって特定される。一実施形態
では、IVT62内の割り込みベクトルよりも多くの割
り込みがある。したがって、割り込みと割り込みベクト
ルの間には多対一の関係がある。特定の割り込みベクト
ルに関連するハンドラは、ISR.code48Aを読
むことで発生した特定の命令を決定することができる。
割り込みが割り込みハンドラによって処理された後、割
り込みから戻る(rfi)命令がプロセッサ32によっ
て実行され、先に格納されていたプロセッサ状態情報を
用いてプロセッサ状態を回復する。
は、割り込みベクトルによって特定される。一実施形態
では、IVT62内の割り込みベクトルよりも多くの割
り込みがある。したがって、割り込みと割り込みベクト
ルの間には多対一の関係がある。特定の割り込みベクト
ルに関連するハンドラは、ISR.code48Aを読
むことで発生した特定の命令を決定することができる。
割り込みが割り込みハンドラによって処理された後、割
り込みから戻る(rfi)命令がプロセッサ32によっ
て実行され、先に格納されていたプロセッサ状態情報を
用いてプロセッサ状態を回復する。
【0029】一実施形態において、プロセッサ32は、
特権動作障害が発生すると汎用例外割り込みベクトルを
発生させる。IVAレジスタ50内に含まれるIVT6
2のベースアドレスおよび汎用例外割り込みベクトルに
関連するオフセットに基づいて、プロセッサ32は汎用
例外ハンドラ62Aにジャンプし、特権動作障害を処理
する。汎用例外ハンドラ62Aについては、さらに詳細
に後述する。
特権動作障害が発生すると汎用例外割り込みベクトルを
発生させる。IVAレジスタ50内に含まれるIVT6
2のベースアドレスおよび汎用例外割り込みベクトルに
関連するオフセットに基づいて、プロセッサ32は汎用
例外ハンドラ62Aにジャンプし、特権動作障害を処理
する。汎用例外ハンドラ62Aについては、さらに詳細
に後述する。
【0030】一実施形態において、プロセッサ32は、
シングルステップトラップが発生すると、シングルステ
ップトラップ割り込みベクトルを発生させる。IVAレ
ジスタ50内に含まれるIVT62のベースアドレスお
よびシングルステップトラップ割り込みベクトルに関連
するオフセットに基づいて、プロセッサ32はシングル
ステップトラップハンドラ62Bにジャンプし、シング
ルステップトラップを処理する。シングルステップトラ
ップハンドラ62Bについては、さらに詳細に後述す
る。
シングルステップトラップが発生すると、シングルステ
ップトラップ割り込みベクトルを発生させる。IVAレ
ジスタ50内に含まれるIVT62のベースアドレスお
よびシングルステップトラップ割り込みベクトルに関連
するオフセットに基づいて、プロセッサ32はシングル
ステップトラップハンドラ62Bにジャンプし、シング
ルステップトラップを処理する。シングルステップトラ
ップハンドラ62Bについては、さらに詳細に後述す
る。
【0031】プロセッサ32は、通常、アプリケーショ
ンプログラム54等の特権所望アプリケーションプログ
ラムを低い現行特権レベル(たとえば、PSR.cpl
=2)で実行する。PSR.cplフィールド46Aに
格納される現行特権レベルは、システムリソース、たと
えばシステムレジスタセット44中のシステムレジス
タ、システム命令、およびメモリ52のメモリページ等
に対するアクセス可能性を制御することで、コンピュー
タシステム30におけるアプリケーションプログラム5
4の命令の実行を制御する。プロセッサ32がより高位
の特権レベル(たとえばPSR.cpl=0)が必要
な、アプリケーションプログラム54における命令の実
行を試みる場合、特権動作障害が発生する。
ンプログラム54等の特権所望アプリケーションプログ
ラムを低い現行特権レベル(たとえば、PSR.cpl
=2)で実行する。PSR.cplフィールド46Aに
格納される現行特権レベルは、システムリソース、たと
えばシステムレジスタセット44中のシステムレジス
タ、システム命令、およびメモリ52のメモリページ等
に対するアクセス可能性を制御することで、コンピュー
タシステム30におけるアプリケーションプログラム5
4の命令の実行を制御する。プロセッサ32がより高位
の特権レベル(たとえばPSR.cpl=0)が必要
な、アプリケーションプログラム54における命令の実
行を試みる場合、特権動作障害が発生する。
【0032】図2は、本発明による特権所望アプリケー
ションプログラム54における特権命令の実行を監視す
るプロセス200の流れ図を示す。プロセス200のス
テップ202において、プロセッサ32は現行特権レベ
ルを低下させる。一実施形態において、プロセッサ32
は、特権降格プロセス58を実行することで現行特権レ
ベルを低下させる。本発明における特権レベルの「低
下」は、PSR.cpl46Aの値を上昇することを含
む。これは、PSR.cpl46Aにおける数が高いほ
ど、低い特権レベルに対応するためである。
ションプログラム54における特権命令の実行を監視す
るプロセス200の流れ図を示す。プロセス200のス
テップ202において、プロセッサ32は現行特権レベ
ルを低下させる。一実施形態において、プロセッサ32
は、特権降格プロセス58を実行することで現行特権レ
ベルを低下させる。本発明における特権レベルの「低
下」は、PSR.cpl46Aの値を上昇することを含
む。これは、PSR.cpl46Aにおける数が高いほ
ど、低い特権レベルに対応するためである。
【0033】図3は、特権降格プロセス58を実行中の
一実施形態におけるプロセッサ32によって行われるス
テップを示す。ステップ302において、プロセッサ3
2は、2つのスタック汎用レジスタ40および41を含
む汎用レジスタスタックにスタックフレームを割り当て
る。割り当て中、プロセッサ32は、PFSレジスタ3
8の内容をスタック汎用レジスタ40にコピーする。ス
テップ304において、プロセッサ32は、スタック汎
用レジスタ40からpplフィールド38Aを抽出し、
抽出されたpplフィールド38Aを静的汎用レジスタ
42に配置する。一実施形態において、静的汎用レジス
タ42はすべての手順にとって可視であるため、他の手
順が汎用レジスタ42にアクセスし、そこで特定されて
いる特権レベルを決定することができる。汎用レジスタ
42の内容は、特権降格プロセス58を呼び出したプロ
セスに戻される。次に、ステップ306において、プロ
セッサ32は、所望のより低い特権レベルに対応する選
択ビットを、スタック汎用レジスタ41からスタック汎
用レジスタ40に配置する。一実施形態において、特権
レベル2に対応するビットが汎用レジスタ41に格納さ
れ、スタック汎用レジスタ40に配置される。他の特権
レベルに対応する他のビット組み合わせをスタック汎用
レジスタ41に格納し、スタック汎用レジスタ40に配
置してもよい。所望の特権レベルに対応するビットは、
所望の特権レベルを特定する特権降格プロセス58に対
する呼び出しにより、スタック汎用レジスタ41に格納
される。ステップ308において、プロセッサ32は、
新しく設定された特権レベルビットを含むスタック汎用
レジスタ40の内容をPFSレジスタ38に移動する。
移動した後、PFS.ppl38Aは所望のより低い特
権レベルに対応するビットを含んでいる。ステップ31
0において、プロセッサ32は、分岐リターン命令を実
行する。分岐リターン命令中、プロセッサ32は、PS
R.cpl46AをPFS.ppl38Aからの値を用
いて更新することにより、所望のより低い特権レベルを
PSR.cpl46Aに設定する。
一実施形態におけるプロセッサ32によって行われるス
テップを示す。ステップ302において、プロセッサ3
2は、2つのスタック汎用レジスタ40および41を含
む汎用レジスタスタックにスタックフレームを割り当て
る。割り当て中、プロセッサ32は、PFSレジスタ3
8の内容をスタック汎用レジスタ40にコピーする。ス
テップ304において、プロセッサ32は、スタック汎
用レジスタ40からpplフィールド38Aを抽出し、
抽出されたpplフィールド38Aを静的汎用レジスタ
42に配置する。一実施形態において、静的汎用レジス
タ42はすべての手順にとって可視であるため、他の手
順が汎用レジスタ42にアクセスし、そこで特定されて
いる特権レベルを決定することができる。汎用レジスタ
42の内容は、特権降格プロセス58を呼び出したプロ
セスに戻される。次に、ステップ306において、プロ
セッサ32は、所望のより低い特権レベルに対応する選
択ビットを、スタック汎用レジスタ41からスタック汎
用レジスタ40に配置する。一実施形態において、特権
レベル2に対応するビットが汎用レジスタ41に格納さ
れ、スタック汎用レジスタ40に配置される。他の特権
レベルに対応する他のビット組み合わせをスタック汎用
レジスタ41に格納し、スタック汎用レジスタ40に配
置してもよい。所望の特権レベルに対応するビットは、
所望の特権レベルを特定する特権降格プロセス58に対
する呼び出しにより、スタック汎用レジスタ41に格納
される。ステップ308において、プロセッサ32は、
新しく設定された特権レベルビットを含むスタック汎用
レジスタ40の内容をPFSレジスタ38に移動する。
移動した後、PFS.ppl38Aは所望のより低い特
権レベルに対応するビットを含んでいる。ステップ31
0において、プロセッサ32は、分岐リターン命令を実
行する。分岐リターン命令中、プロセッサ32は、PS
R.cpl46AをPFS.ppl38Aからの値を用
いて更新することにより、所望のより低い特権レベルを
PSR.cpl46Aに設定する。
【0034】次に、図2に示すように、ステップ202
において現行特権レベルが所望の値に低下された後、プ
ロセッサ32は、ステップ204において、特権所望ア
プリケーションプログラム54からの命令をフェッチ
し、復号化し、その命令の実行を試みる。ステップ20
6において、シングルステップトラップフィールド(P
SR.ss46B)がイネーブルされている場合、命令
を首尾よく実行するとシングルステップトラップが発生
し、ステップ208において、シングルステップトラッ
プハンドラ62Bが呼び出される(後述)。命令の実行
を試行した結果により汎用例外割り込みベクトルが発生
する場合、ステップ216において、汎用例外ハンドラ
62Aが呼び出される。シングルステップトラップも汎
用例外割り込みベクトルも発生しない場合、プロセス2
00はステップ204にジャンプし、次の命令がフェッ
チされて復号化され、その命令の実行が試みられる。
において現行特権レベルが所望の値に低下された後、プ
ロセッサ32は、ステップ204において、特権所望ア
プリケーションプログラム54からの命令をフェッチ
し、復号化し、その命令の実行を試みる。ステップ20
6において、シングルステップトラップフィールド(P
SR.ss46B)がイネーブルされている場合、命令
を首尾よく実行するとシングルステップトラップが発生
し、ステップ208において、シングルステップトラッ
プハンドラ62Bが呼び出される(後述)。命令の実行
を試行した結果により汎用例外割り込みベクトルが発生
する場合、ステップ216において、汎用例外ハンドラ
62Aが呼び出される。シングルステップトラップも汎
用例外割り込みベクトルも発生しない場合、プロセス2
00はステップ204にジャンプし、次の命令がフェッ
チされて復号化され、その命令の実行が試みられる。
【0035】汎用例外ハンドラ62Aは、ステップ21
6において呼び出されると、ステップ218において、
特権動作障害により汎用例外割り込みベクトルが発生し
たか否かを決定する。一実施形態において、汎用例外ハ
ンドラ62Aは、ISR.code48Aを読むことに
よって決定を行う。ISR.code48Aが、汎用例
外割り込みベクトルが特権動作障害により発生しなかっ
たことを示す場合、ステップ220において、汎用例外
ハンドラ62Aは汎用例外を通常通りに処理する。IS
R.code48Aが、汎用例外割り込みベクトルが特
権動作障害により発生したことを示す場合、プロセス2
00はステップ222にジャンプする。
6において呼び出されると、ステップ218において、
特権動作障害により汎用例外割り込みベクトルが発生し
たか否かを決定する。一実施形態において、汎用例外ハ
ンドラ62Aは、ISR.code48Aを読むことに
よって決定を行う。ISR.code48Aが、汎用例
外割り込みベクトルが特権動作障害により発生しなかっ
たことを示す場合、ステップ220において、汎用例外
ハンドラ62Aは汎用例外を通常通りに処理する。IS
R.code48Aが、汎用例外割り込みベクトルが特
権動作障害により発生したことを示す場合、プロセス2
00はステップ222にジャンプする。
【0036】ステップ222において、汎用例外ハンド
ラ62Aが現行命令を「エミュレート」すべきか否かを
決定する。この文脈における「エミュレート」という語
は、従来のソフトウェアベースのエミュレーションを表
すものではない。むしろ、プロセッサ32は本質的に、
特権レベルを一時的に変更し実際に命令を実行すること
で、命令のエミュレーションと同等のことを実行する。
一実施形態において、汎用例外ハンドラ62Aは、ユー
ザモードがオペレーティングシステム60によって特定
されているか否かに基づいて、現行命令をエミュレート
すべきか否かを決定する。一実施形態において、ユーザ
モードは、アプリケーションプログラムが特権レベル3
(すなわちPSR.cpl=3)で実行されていること
を示す。ユーザモードが特定されていない場合、ステッ
プ224において、汎用例外ハンドラ62Aが特権動作
障害を通常通り処理する。ユーザモードが特定されてい
る場合、汎用例外ハンドラ62Aはステップ226にジ
ャンプする。ステップ226において、汎用例外ハンド
ラ62Aは状態情報64をメモリ52に格納する。一実
施形態において、状態情報64は、PSR46において
特定されるプロセッサ状態情報を含む。また、状態情報
64は、どの命令が障害を引き起こしたか、特権障害が
発生したときのプロセッサ32の状態はどうであった
か、特権所望アプリケーションプログラム54の実行中
に発生した特権障害の数、ならびに他の情報を含む、後
に特権動作障害を分析する助けとなりうる任意の情報も
含むことが好ましい。
ラ62Aが現行命令を「エミュレート」すべきか否かを
決定する。この文脈における「エミュレート」という語
は、従来のソフトウェアベースのエミュレーションを表
すものではない。むしろ、プロセッサ32は本質的に、
特権レベルを一時的に変更し実際に命令を実行すること
で、命令のエミュレーションと同等のことを実行する。
一実施形態において、汎用例外ハンドラ62Aは、ユー
ザモードがオペレーティングシステム60によって特定
されているか否かに基づいて、現行命令をエミュレート
すべきか否かを決定する。一実施形態において、ユーザ
モードは、アプリケーションプログラムが特権レベル3
(すなわちPSR.cpl=3)で実行されていること
を示す。ユーザモードが特定されていない場合、ステッ
プ224において、汎用例外ハンドラ62Aが特権動作
障害を通常通り処理する。ユーザモードが特定されてい
る場合、汎用例外ハンドラ62Aはステップ226にジ
ャンプする。ステップ226において、汎用例外ハンド
ラ62Aは状態情報64をメモリ52に格納する。一実
施形態において、状態情報64は、PSR46において
特定されるプロセッサ状態情報を含む。また、状態情報
64は、どの命令が障害を引き起こしたか、特権障害が
発生したときのプロセッサ32の状態はどうであった
か、特権所望アプリケーションプログラム54の実行中
に発生した特権障害の数、ならびに他の情報を含む、後
に特権動作障害を分析する助けとなりうる任意の情報も
含むことが好ましい。
【0037】次に、ステップ228において、汎用例外
ハンドラ62Aは、特権昇格プロセス56を実行するこ
とでPSR.cplフィールド46Aに格納されている
プロセッサ32の現行特権レベルを上昇させる。図4
は、特権昇格プロセス56の一実施形態の流れ図を示
す。特権昇格プロセス56は、IPSR.cpl51A
の値をデータ構造に格納するステップ402を含む。ス
テップ404において、IPSR.cpl51Aを表す
データ構造における値が所望のより高い特権レベル値
(たとえば0)に変更される。ステップ406におい
て、IPSR51は、データ構造に格納されているデー
タに基づいて更新される。更新が行われた後、IPS
R.cpl51Aは、所望のより高い特権レベル(たと
えばIPSR.cpl51A=0)を含む。ステップ4
08において、割り込みから戻る(rfi)ように実行
される。割り込みから戻ると、PSR46がIPSR5
1から更新される。したがって、割り込みから戻った
後、PSR.cpl46Aは所望のより高い特権レベル
(たとえばPSR.cpl46A=0)を含む。
ハンドラ62Aは、特権昇格プロセス56を実行するこ
とでPSR.cplフィールド46Aに格納されている
プロセッサ32の現行特権レベルを上昇させる。図4
は、特権昇格プロセス56の一実施形態の流れ図を示
す。特権昇格プロセス56は、IPSR.cpl51A
の値をデータ構造に格納するステップ402を含む。ス
テップ404において、IPSR.cpl51Aを表す
データ構造における値が所望のより高い特権レベル値
(たとえば0)に変更される。ステップ406におい
て、IPSR51は、データ構造に格納されているデー
タに基づいて更新される。更新が行われた後、IPS
R.cpl51Aは、所望のより高い特権レベル(たと
えばIPSR.cpl51A=0)を含む。ステップ4
08において、割り込みから戻る(rfi)ように実行
される。割り込みから戻ると、PSR46がIPSR5
1から更新される。したがって、割り込みから戻った
後、PSR.cpl46Aは所望のより高い特権レベル
(たとえばPSR.cpl46A=0)を含む。
【0038】最後に、図2に示すように、ステップ23
0において、汎用例外ハンドラ62Aがシングルステッ
プモードをイネーブルする。汎用例外ハンドラ62A
は、PSR46におけるシングルステップフィールドP
SR.ss46Bをイネーブルすることで、シングルス
テップモードをイネーブルする。一実施形態において、
汎用例外ハンドラ62Aは、汎用例外ハンドラ62Aが
PSR.cplフィールド46Aを変更する(図4を参
照して上述)のと同じ方法および同じプロセスで、シン
グルステップフィールドPSR.ss46Bをイネーブ
ルする。具体的には、ステップ402において、汎用例
外ハンドラ62Aが、IPSR.ss51Bの値をデー
タ構造に格納する。次に、ステップ404において、I
PSR.ss51Bを表すデータ構造における値が変更
され、シングルステップをイネーブルする。ステップ4
06において、IPSR51が、データ構造に格納され
ているデータに基づいて更新される。更新が行われた
後、IPSR.ss51B=1である。ステップ408
において、割り込みから戻る(rfi)ように実行され
る。割り込みから戻ると、PSR46がIPSR51か
ら更新される。したがって、割り込みから戻った後、P
SR.ss46Bは所望の値(たとえばPSR.ss4
6B=1)を有する。
0において、汎用例外ハンドラ62Aがシングルステッ
プモードをイネーブルする。汎用例外ハンドラ62A
は、PSR46におけるシングルステップフィールドP
SR.ss46Bをイネーブルすることで、シングルス
テップモードをイネーブルする。一実施形態において、
汎用例外ハンドラ62Aは、汎用例外ハンドラ62Aが
PSR.cplフィールド46Aを変更する(図4を参
照して上述)のと同じ方法および同じプロセスで、シン
グルステップフィールドPSR.ss46Bをイネーブ
ルする。具体的には、ステップ402において、汎用例
外ハンドラ62Aが、IPSR.ss51Bの値をデー
タ構造に格納する。次に、ステップ404において、I
PSR.ss51Bを表すデータ構造における値が変更
され、シングルステップをイネーブルする。ステップ4
06において、IPSR51が、データ構造に格納され
ているデータに基づいて更新される。更新が行われた
後、IPSR.ss51B=1である。ステップ408
において、割り込みから戻る(rfi)ように実行され
る。割り込みから戻ると、PSR46がIPSR51か
ら更新される。したがって、割り込みから戻った後、P
SR.ss46Bは所望の値(たとえばPSR.ss4
6B=1)を有する。
【0039】次に、フローはステップ204に戻り、現
行命令を実行する。現行命令を実行した後、シングルス
テップトラップフィールドPSR.ss46Bがイネー
ブルされているため、ステップ206において、シング
ルステップトラップを発生させ、ステップ208におい
て、シングルステップトラップハンドラ62Bが呼び出
される。ステップ210において、シングルステップト
ラップハンドラ62Bが、図3に示し上述した特権降格
プロセス58を用いて、PSR.cplフィールド46
Aに格納されている現行特権レベルを低下させる。ステ
ップ212において、シングルステップトラップハンド
ラ62Bがシングルステップをディセーブルする。一実
施形態において、シングルステップトラップハンドラ6
2Bは、上記PSR.ss46Bがイネーブルされたの
と同じ方法でPSR46におけるシングルステップトラ
ップフィールドPSR.ss46Bをディセーブルする
ことで、シングルステップをディセーブルする。また、
一実施形態において、シングルステップトラップハンド
ラ62は、シングルステップトラップハンドラ62Bに
よるあらゆる変更前のPSR46の現行状態を含む、状
態情報64を格納する。次に、フローはステップ204
に戻り、ここで次の命令がフェッチされて復号化され、
その命令の実行が試みられる。
行命令を実行する。現行命令を実行した後、シングルス
テップトラップフィールドPSR.ss46Bがイネー
ブルされているため、ステップ206において、シング
ルステップトラップを発生させ、ステップ208におい
て、シングルステップトラップハンドラ62Bが呼び出
される。ステップ210において、シングルステップト
ラップハンドラ62Bが、図3に示し上述した特権降格
プロセス58を用いて、PSR.cplフィールド46
Aに格納されている現行特権レベルを低下させる。ステ
ップ212において、シングルステップトラップハンド
ラ62Bがシングルステップをディセーブルする。一実
施形態において、シングルステップトラップハンドラ6
2Bは、上記PSR.ss46Bがイネーブルされたの
と同じ方法でPSR46におけるシングルステップトラ
ップフィールドPSR.ss46Bをディセーブルする
ことで、シングルステップをディセーブルする。また、
一実施形態において、シングルステップトラップハンド
ラ62は、シングルステップトラップハンドラ62Bに
よるあらゆる変更前のPSR46の現行状態を含む、状
態情報64を格納する。次に、フローはステップ204
に戻り、ここで次の命令がフェッチされて復号化され、
その命令の実行が試みられる。
【0040】本発明は1つのタイプのプロセッサに限定
されず、むしろ、IA―64プロセッサアーキテクチャ
を含むがこれに限定されない、シングルステップおよび
割り込み機能性を提供する任意のプロセッサに適用され
る。
されず、むしろ、IA―64プロセッサアーキテクチャ
を含むがこれに限定されない、シングルステップおよび
割り込み機能性を提供する任意のプロセッサに適用され
る。
【0041】好ましい実施形態を説明するという目的
で、特定の実施形態を本明細書において図示し説明した
が、当業者は、本発明の特許請求の範囲から逸脱せず
に、同じ目的を達成するように予想される多種多様な代
替および/または均等の実施を、図示し説明した特定の
実施形態と置き換えてもよいことを理解するであろう。
化学、機械、電気機械、電子、およびコンピュータの分
野における知識を有する者は、本発明を多種多様な実施
形態で実施しうることを容易に理解するであろう。この
出願は、本明細書に述べられる好ましい実施形態のあら
ゆる適合または変更を網羅することが意図される。した
がって、本発明は特許請求の範囲およびその均等物によ
ってのみ制限されるものと明白に意図されるものであ
る。
で、特定の実施形態を本明細書において図示し説明した
が、当業者は、本発明の特許請求の範囲から逸脱せず
に、同じ目的を達成するように予想される多種多様な代
替および/または均等の実施を、図示し説明した特定の
実施形態と置き換えてもよいことを理解するであろう。
化学、機械、電気機械、電子、およびコンピュータの分
野における知識を有する者は、本発明を多種多様な実施
形態で実施しうることを容易に理解するであろう。この
出願は、本明細書に述べられる好ましい実施形態のあら
ゆる適合または変更を網羅することが意図される。した
がって、本発明は特許請求の範囲およびその均等物によ
ってのみ制限されるものと明白に意図されるものであ
る。
【0042】本発明の実施態様を以下に例示する。
【0043】1.コンピュータシステム(30)のプロ
セッサ(32)により特権命令の実行を監視する方法で
あって、前記プロセッサ(32)は現行特権レベルを含
み、前記プロセッサ(32)の前記現行特権レベルより
も高位の特権レベルを必要とする命令の実行が試行され
る場合に、自動的に障害を発生させ、前記方法は、第1
の障害命令によって発生する障害に応答して、前記プロ
セッサ(32)の前記現行特権レベルを上昇させるステ
ップ(228)と、前記第1の障害命令を実行するステ
ップ(204)と、前記第1の障害命令を実行すること
でトラップを発生させるステップ(206)と、前記ト
ラップに応答して、前記プロセッサ(32)の前記現行
特権レベルを低下させるステップ(210)とを含む方
法。
セッサ(32)により特権命令の実行を監視する方法で
あって、前記プロセッサ(32)は現行特権レベルを含
み、前記プロセッサ(32)の前記現行特権レベルより
も高位の特権レベルを必要とする命令の実行が試行され
る場合に、自動的に障害を発生させ、前記方法は、第1
の障害命令によって発生する障害に応答して、前記プロ
セッサ(32)の前記現行特権レベルを上昇させるステ
ップ(228)と、前記第1の障害命令を実行するステ
ップ(204)と、前記第1の障害命令を実行すること
でトラップを発生させるステップ(206)と、前記ト
ラップに応答して、前記プロセッサ(32)の前記現行
特権レベルを低下させるステップ(210)とを含む方
法。
【0044】2.前記命令を実行する前に、前記プロセ
ッサ(32)の前記現行特権レベルを低下させるステッ
プ(202)をさらに含む、上記1記載の方法。
ッサ(32)の前記現行特権レベルを低下させるステッ
プ(202)をさらに含む、上記1記載の方法。
【0045】3.障害ハンドラ(62A)を呼び出して
前記障害を処理するステップ(216)をさらに含む、
上記1記載の方法。
前記障害を処理するステップ(216)をさらに含む、
上記1記載の方法。
【0046】4.前記現行特権レベルを上昇させるステ
ップ(228)は、前記障害ハンドラ(62A)によっ
て行われる、上記3記載の方法。
ップ(228)は、前記障害ハンドラ(62A)によっ
て行われる、上記3記載の方法。
【0047】5.トラップハンドラ(62B)を呼び出
して前記トラップを処理するステップ(208)をさら
に含む、上記1記載の方法。
して前記トラップを処理するステップ(208)をさら
に含む、上記1記載の方法。
【0048】6.前記現行特権レベルを低下させるステ
ップ(210)は、前記トラップハンドラ(62B)に
よって行われる、上記5記載の方法。
ップ(210)は、前記トラップハンドラ(62B)に
よって行われる、上記5記載の方法。
【0049】7.前記障害に応答して、前記プロセッサ
(32)のシングルステップモードをイネーブルするス
テップ(230)をさらに含む、上記1記載の方法。
(32)のシングルステップモードをイネーブルするス
テップ(230)をさらに含む、上記1記載の方法。
【0050】8.前記シングルステップモードをイネー
ブルするように前記プロセッサ(32)のシステムレジ
スタ(46)におけるフィールド(46B)を設定する
ステップをさらに含む、上記7記載の方法。
ブルするように前記プロセッサ(32)のシステムレジ
スタ(46)におけるフィールド(46B)を設定する
ステップをさらに含む、上記7記載の方法。
【0051】9.オペレーティングシステム(60)に
より制御されるコンピュータシステム(30)のプロセ
ッサ(32)によって命令を実行する方法であって、前
記プロセッサ(32)は現行特権レベルを有し、前記方
法は、第1の命令の実行試行(204)に基づいて特権
動作障害を発生させるステップ(218)と、前記特権
動作障害に応答して、前記プロセッサ(32)の前記現
行特権レベルを上昇させるステップ(228)と、前記
特権動作障害に応答して、シングルステップモードをイ
ネーブルするステップ(230)と、前記第1の命令を
実行し、それによってシングルステップトラップを発生
させるステップ(206)と、前記シングルステップト
ラップに応答して、前記プロセッサ(32)の前記現行
特権レベルを低下させるステップ(210)と、前記シ
ングルステップトラップに応答して、前記シングルステ
ップモードをディセーブルするステップ(212)とを
含む方法。
より制御されるコンピュータシステム(30)のプロセ
ッサ(32)によって命令を実行する方法であって、前
記プロセッサ(32)は現行特権レベルを有し、前記方
法は、第1の命令の実行試行(204)に基づいて特権
動作障害を発生させるステップ(218)と、前記特権
動作障害に応答して、前記プロセッサ(32)の前記現
行特権レベルを上昇させるステップ(228)と、前記
特権動作障害に応答して、シングルステップモードをイ
ネーブルするステップ(230)と、前記第1の命令を
実行し、それによってシングルステップトラップを発生
させるステップ(206)と、前記シングルステップト
ラップに応答して、前記プロセッサ(32)の前記現行
特権レベルを低下させるステップ(210)と、前記シ
ングルステップトラップに応答して、前記シングルステ
ップモードをディセーブルするステップ(212)とを
含む方法。
【0052】10.コンピュータシステム(30)にお
けるアプリケーション命令の実行を制御する現行特権レ
ベルを有するプロセッサ(32)と、アプリケーション
命令を有する特権所望アプリケーションプログラム(5
4)を格納するメモリ(52)と、該メモリ(52)に
格納され、前記プロセッサ(32)を制御するオペレー
ティングシステム(60)であって、該オペレーティン
グシステム(60)は障害ハンドラ(62A)およびト
ラップハンドラ(62B)を含み、前記障害ハンドラ
(62A)は特権動作障害(218)に応答して、前記
現行特権レベルを上昇させる(228)と共にシングル
ステップモードをイネーブルし(230)、前記トラッ
プハンドラ(62B)は、シングルステップトラップ
(206)に応答して、前記現行特権レベルを低下させ
る(210)と共に前記シングルステップモードをディ
セーブルする(212)、オペレーティングシステム
(60)とを備えるコンピュータシステム。
けるアプリケーション命令の実行を制御する現行特権レ
ベルを有するプロセッサ(32)と、アプリケーション
命令を有する特権所望アプリケーションプログラム(5
4)を格納するメモリ(52)と、該メモリ(52)に
格納され、前記プロセッサ(32)を制御するオペレー
ティングシステム(60)であって、該オペレーティン
グシステム(60)は障害ハンドラ(62A)およびト
ラップハンドラ(62B)を含み、前記障害ハンドラ
(62A)は特権動作障害(218)に応答して、前記
現行特権レベルを上昇させる(228)と共にシングル
ステップモードをイネーブルし(230)、前記トラッ
プハンドラ(62B)は、シングルステップトラップ
(206)に応答して、前記現行特権レベルを低下させ
る(210)と共に前記シングルステップモードをディ
セーブルする(212)、オペレーティングシステム
(60)とを備えるコンピュータシステム。
【図1】 特権命令の実行を監視する、本発明によるコ
ンピュータシステムのブロック図である。
ンピュータシステムのブロック図である。
【図2】 本発明による特権所望アプリケーションプロ
グラムにおける特権命令の実行を監視するプロセスを示
す流れ図である。
グラムにおける特権命令の実行を監視するプロセスを示
す流れ図である。
【図3】 特権降格プロセスの一実施形態を示す流れ図
である。
である。
【図4】 特権昇格プロセスの一実施形態を示す流れ図
である。
である。
30 コンピュータシステム 32 プロセッサ 46 システムレジスタ 52 メモリ 54 特権所望アプリケーションプログラム 60 オペレーティングシステム 62A 障害ハンドラ 62B トラップハンドラ
Claims (1)
- 【請求項1】 コンピュータシステムのプロセッサによ
り特権命令の実行を監視する方法であって、前記プロセ
ッサは現行特権レベルを含み、前記プロセッサの前記現
行特権レベルよりも高位の特権レベルを必要とする命令
の実行が試行される場合に、自動的に障害を発生させ、
前記方法は、 第1の障害命令によって発生する障害に応答して、前記
プロセッサの前記現行特権レベルを上昇させるステップ
と、 前記第1の障害命令を実行するステップと、 前記第1の障害命令を実行することでトラップを発生さ
せるステップと、 前記トラップに応答して、前記プロセッサの前記現行特
権レベルを低下させるステップとを含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/799,999 | 2001-03-06 | ||
US09/799,999 US6694457B2 (en) | 2001-03-06 | 2001-03-06 | System and method for monitoring execution of privileged instructions |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002268914A true JP2002268914A (ja) | 2002-09-20 |
Family
ID=25177260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002027962A Pending JP2002268914A (ja) | 2001-03-06 | 2002-02-05 | 特権命令の実行を監視する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6694457B2 (ja) |
JP (1) | JP2002268914A (ja) |
DE (1) | DE10206422A1 (ja) |
GB (1) | GB2375200A (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065504B2 (en) | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
US8127121B2 (en) * | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6851006B2 (en) * | 2001-08-25 | 2005-02-01 | International Business Machines Corporation | Interruption handler-operating system dialog for operating system handling of hardware interruptions |
US20040064723A1 (en) * | 2001-10-31 | 2004-04-01 | Barnes Brian C. | Method and apparatus for physical address-based security to determine target security |
US6745307B2 (en) * | 2001-10-31 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method and system for privilege-level-access to memory within a computer |
US7698522B1 (en) | 2002-01-11 | 2010-04-13 | Global Foundries | Method and apparatus for linear address based page level security scheme to determine current security context |
US7739498B2 (en) * | 2002-01-15 | 2010-06-15 | GlobalFoundries, Inc. | Method and apparatus for multi-table accessing of input/output devices using target security |
US6968547B2 (en) * | 2002-01-29 | 2005-11-22 | Sun Microsystems, Inc. | Dynamic trap table interposition for efficient collection of trap statistics |
US7210144B2 (en) * | 2002-08-02 | 2007-04-24 | Microsoft Corporation | Method for monitoring and emulating privileged instructions of programs in a virtual machine |
US7434264B2 (en) * | 2003-03-07 | 2008-10-07 | Freescale Semiconductor, Inc. | Data processing system with peripheral access protection and method therefor |
US7444547B2 (en) | 2003-06-19 | 2008-10-28 | International Business Machines Corproation | Method, system, and product for programming in a simultaneous multi-threaded processor environment |
US7149929B2 (en) * | 2003-08-25 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Method of and apparatus for cross-platform core dumping during dynamic binary translation |
US20050138263A1 (en) * | 2003-12-23 | 2005-06-23 | Mckeen Francis X. | Method and apparatus to retain system control when a buffer overflow attack occurs |
US7613951B2 (en) * | 2005-05-13 | 2009-11-03 | Texas Instruments Incorporated | Scaled time trace |
US8984636B2 (en) * | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US7895651B2 (en) * | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US20070028291A1 (en) * | 2005-07-29 | 2007-02-01 | Bit 9, Inc. | Parametric content control in a network security system |
US8272058B2 (en) * | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8051247B1 (en) | 2005-09-28 | 2011-11-01 | Oracle America, Inc. | Trace based deallocation of entries in a versioning cache circuit |
US7953961B1 (en) | 2005-09-28 | 2011-05-31 | Oracle America, Inc. | Trace unit with an op path from a decoder (bypass mode) and from a basic-block builder |
US7949854B1 (en) | 2005-09-28 | 2011-05-24 | Oracle America, Inc. | Trace unit with a trace builder |
US8037285B1 (en) * | 2005-09-28 | 2011-10-11 | Oracle America, Inc. | Trace unit |
US7987342B1 (en) | 2005-09-28 | 2011-07-26 | Oracle America, Inc. | Trace unit with a decoder, a basic-block cache, a multi-block cache, and sequencer |
US8499293B1 (en) | 2005-09-28 | 2013-07-30 | Oracle America, Inc. | Symbolic renaming optimization of a trace |
US8015359B1 (en) | 2005-09-28 | 2011-09-06 | Oracle America, Inc. | Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit |
US8024522B1 (en) | 2005-09-28 | 2011-09-20 | Oracle America, Inc. | Memory ordering queue/versioning cache circuit |
US7606975B1 (en) * | 2005-09-28 | 2009-10-20 | Sun Microsystems, Inc. | Trace cache for efficient self-modifying code processing |
US7966479B1 (en) | 2005-09-28 | 2011-06-21 | Oracle America, Inc. | Concurrent vs. low power branch prediction |
US8370576B1 (en) | 2005-09-28 | 2013-02-05 | Oracle America, Inc. | Cache rollback acceleration via a bank based versioning cache ciruit |
US8032710B1 (en) | 2005-09-28 | 2011-10-04 | Oracle America, Inc. | System and method for ensuring coherency in trace execution |
US7937564B1 (en) | 2005-09-28 | 2011-05-03 | Oracle America, Inc. | Emit vector optimization of a trace |
US7877630B1 (en) | 2005-09-28 | 2011-01-25 | Oracle America, Inc. | Trace based rollback of a speculatively updated cache |
US8019944B1 (en) | 2005-09-28 | 2011-09-13 | Oracle America, Inc. | Checking for a memory ordering violation after a speculative cache write |
US7870369B1 (en) | 2005-09-28 | 2011-01-11 | Oracle America, Inc. | Abort prioritization in a trace-based processor |
GB2447154B (en) * | 2005-10-04 | 2009-05-27 | Nec Corp | Information processing device, information processing method, and program |
US7797681B2 (en) * | 2006-05-11 | 2010-09-14 | Arm Limited | Stack memory selection upon exception in a data processing system |
US8010745B1 (en) | 2006-09-27 | 2011-08-30 | Oracle America, Inc. | Rolling back a speculative update of a non-modifiable cache line |
US8370609B1 (en) | 2006-09-27 | 2013-02-05 | Oracle America, Inc. | Data cache rollbacks for failed speculative traces with memory operations |
JP5215655B2 (ja) * | 2007-12-27 | 2013-06-19 | ルネサスエレクトロニクス株式会社 | データ処理装置及びデータ処理装置におけるバスアクセス制御方法 |
US10503662B2 (en) * | 2012-06-29 | 2019-12-10 | Intel Corporation | Systems, apparatuses, and methods for implementing temporary escalated privilege |
US9785783B2 (en) * | 2015-07-23 | 2017-10-10 | Ca, Inc. | Executing privileged code in a process |
GB201807589D0 (en) * | 2018-05-10 | 2018-06-27 | Nordic Semiconductor Asa | Memory access |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809160A (en) * | 1985-10-28 | 1989-02-28 | Hewlett-Packard Company | Privilege level checking instruction for implementing a secure hierarchical computer system |
US5134701A (en) | 1989-02-10 | 1992-07-28 | Hewlett-Packard Co. | Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities |
US5201043A (en) * | 1989-04-05 | 1993-04-06 | Intel Corporation | System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking |
WO1992017839A1 (en) * | 1991-04-01 | 1992-10-15 | Cray Research, Inc. | Privileged instruction trap for operating system control |
US5450586A (en) | 1991-08-14 | 1995-09-12 | Hewlett-Packard Company | System for analyzing and debugging embedded software through dynamic and interactive use of code markers |
EP0537721B1 (en) | 1991-10-15 | 1998-11-25 | Hewlett-Packard Company | Hardware-configured operating system kernel for a multitasking processor |
US5596717A (en) * | 1995-06-07 | 1997-01-21 | Texas Instruments Incorporated | Four state token passing alignment fault state circuit for microprocessor address misalignment fault generation |
US5859991A (en) * | 1995-06-07 | 1999-01-12 | Advanced Micro Devices, Inc. | Parallel and scalable method for identifying valid instructions and a superscalar microprocessor including an instruction scanning unit employing the method |
US5742755A (en) * | 1996-02-20 | 1998-04-21 | Cyrix Corporation | Error-handling circuit and method for memory address alignment double fault |
US5815702A (en) * | 1996-07-24 | 1998-09-29 | Kannan; Ravi | Method and software products for continued application execution after generation of fatal exceptions |
US5915114A (en) | 1997-02-14 | 1999-06-22 | Hewlett-Packard Company | Dynamic trace driven object code optimizer |
US5889978A (en) * | 1997-04-18 | 1999-03-30 | Intel Corporation | Emulation of interrupt control mechanism in a multiprocessor system |
US6199181B1 (en) * | 1997-09-09 | 2001-03-06 | Perfecto Technologies Ltd. | Method and system for maintaining restricted operating environments for application programs or operating systems |
US5991856A (en) * | 1997-09-30 | 1999-11-23 | Network Associates, Inc. | System and method for computer operating system protection |
US6516395B1 (en) * | 1997-11-20 | 2003-02-04 | Advanced Micro Devices, Inc. | System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
-
2001
- 2001-03-06 US US09/799,999 patent/US6694457B2/en not_active Expired - Fee Related
-
2002
- 2002-02-05 JP JP2002027962A patent/JP2002268914A/ja active Pending
- 2002-02-15 DE DE10206422A patent/DE10206422A1/de not_active Withdrawn
- 2002-03-01 GB GB0204895A patent/GB2375200A/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
DE10206422A1 (de) | 2002-09-19 |
GB0204895D0 (en) | 2002-04-17 |
US20020129299A1 (en) | 2002-09-12 |
GB2375200A (en) | 2002-11-06 |
US6694457B2 (en) | 2004-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002268914A (ja) | 特権命令の実行を監視する方法 | |
EP2668578B1 (en) | Controlling generation of debug exceptions | |
KR100726317B1 (ko) | 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이 | |
US5659679A (en) | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system | |
US8230399B2 (en) | Method for system call interception in user space | |
US5621886A (en) | Method and apparatus for providing efficient software debugging | |
US5740413A (en) | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping | |
US7185183B1 (en) | Atomic update of CPO state | |
US20070006200A1 (en) | Microprocessor instruction that allows system routine calls and returns from all contexts | |
US20220366036A1 (en) | An apparatus and method for handling exceptions | |
US20040098639A1 (en) | Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems | |
US10884782B1 (en) | Virtual machine exit processing accelerator | |
KR920003044B1 (ko) | 가상 머신 시스템용의 게스트 머신 실행 제어 시스템 | |
US6772372B2 (en) | System and method for monitoring unaligned memory accesses | |
US11216280B2 (en) | Exception interception | |
JPH03240831A (ja) | 割り込み処理方式 | |
GR20180200121U (el) | Διαχειριση εξαιρεσεων σε συναλλαγες | |
KR20200020926A (ko) | 콘텍스트 데이터 관리 | |
JPH02187831A (ja) | 仮想計算機システムにおける例外処理方式 | |
JPH07134665A (ja) | 情報処理装置 | |
JPH0784826A (ja) | マイクロプロセッサ |