JP2001249848A - 先行特権レベルに基づく特権昇格 - Google Patents

先行特権レベルに基づく特権昇格

Info

Publication number
JP2001249848A
JP2001249848A JP2001030729A JP2001030729A JP2001249848A JP 2001249848 A JP2001249848 A JP 2001249848A JP 2001030729 A JP2001030729 A JP 2001030729A JP 2001030729 A JP2001030729 A JP 2001030729A JP 2001249848 A JP2001249848 A JP 2001249848A
Authority
JP
Japan
Prior art keywords
privilege level
privilege
instruction
current
memory
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.)
Withdrawn
Application number
JP2001030729A
Other languages
English (en)
Other versions
JP2001249848A5 (ja
Inventor
Dale C Morris
デイル・シー・モリス
James M Hull
ジェイムス・エム・ヒュル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMERGING ARCHITECTURES LLC
Original Assignee
EMERGING ARCHITECTURES LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMERGING ARCHITECTURES LLC filed Critical EMERGING ARCHITECTURES LLC
Publication of JP2001249848A publication Critical patent/JP2001249848A/ja
Publication of JP2001249848A5 publication Critical patent/JP2001249848A5/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】 コンピュータシステム(30)におけるプロセッ
サ(32)のカレント特権レベル(52)を昇格させる安全な特
権昇格機構を提供すること。 【解決手段】 カレント特権レベルは、システムリソー
スへのアクセス可能性を制御することによりコンピュー
タシステムにおけるアプリケーション命令の実行を制御
する。オペレーティングシステムは特権昇格命令(62)を
実行し、該特権昇格命令は、第1の特権レベルでのアプ
リケーション命令による書き込みが不能な第1のメモリ
ページ(58)に格納される。特権昇格命令は、格納されて
いる先行特権レベル状態の読み出し、該読み出した先行
特権レベル状態とカレント特権レベルとを比較し、先行
特権レベル状態にカレント特権レベルと同じであるか又
はそれよりも低い特権が付与されている場合に、カレン
ト特権レベルを第1の特権レベルよりも高位の第2の特
権レベルへと昇格させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムにおける特権昇格に関し、特に、命令実行のために
プロセッサのカレント特権レベルを昇格させる前に、格
納されている先行特権レベル状態をチェックする、オペ
レーティングシステムにより行われる特権昇格命令に関
する。
【0002】
【従来の技術】コンピュータシステムは、少なくとも1
つのプロセッサ及びメモリを含む。メモリは、アプリケ
ーションプログラム命令、データ、及びオペレーティン
グシステムを格納する。オペレーティングシステムは、
システム動作及びアプリケーションプログラム命令の実
行のために、プロセッサ及びメモリを制御する。プロセ
ッサは、カレント(即ち現在の)特権レベルを有するこ
とが多く、該カレント特権レベルは、システムレジス
タ、システム命令、及びシステムメモリページといった
システムリソースへのアクセス可能性を制御することに
より、コンピュータシステムにおけるアプリケーション
命令の実行を制御するものである。カレント特権レベル
は、2つ又はそれ以上の実行特権レベル間で変化する。
【0003】典型的なコンピュータシステムは、アプリ
ケーションプログラムがオペレーティングシステムの関
数を呼び出してより高位の特権コードに入ってより高位
の特権ルーチンを直接実行できるようにする機構を持た
ない。この種の典型的なコンピュータシステムでは、オ
ペレーティングシステムは、より高位の特権ルーチンに
対する呼び出しを行うには、特権レベルを上げなければ
ならない。この種の典型的なコンピュータシステムで
は、アプリケーションプログラムは、オペレーティング
システムへの割り込みを行ってコンピュータシステムの
プロセッサを最高の特権レベルにする命令を実行する。
プロセッサが最高の特権レベルにある間、オペレーティ
ングシステムは、割込みの解決に何が必要かを評価し、
必要とされるより高位の特権ルーチンを実行し、命令制
御フローをアプリケーションプログラムに返す。この割
り込み及びオペレーティングシステムの動作は、プロセ
ッサ時間及びリソースにとって極めて不経済なものとな
る。
【0004】従来のコンピュータシステムの中には、ア
プリケーションプログラムが直接オペレーティングシス
テムの関数を呼び出してより高位の特権コードに入り、
アプリケーションプログラム自体がより高位の特権ルー
チンを直接実行できるようにする機構を備えたものもあ
る。例えば、かかる機構の1つとして、プロセッサのカ
レント特権レベルをより高位の特権レベルに昇格させる
ためにオペレーティングシステムによって行われる特別
特権昇格命令が挙げられる。この特別特権昇格命令は、
典型的には、後に元の特権レベルへの特権の降格を可能
とするために、先行する特権レベル(以下、先行特権レ
ベルと称す)を含む幾つかの状態情報を記録する。かか
る特別特権昇格命令の1つとしてPA-RISCゲートウェイ
命令が挙げられる。特権昇格命令が真正なものある場合
には、該特権昇格命令により記録される先行特権レベル
状態は信頼できるものである。典型的には、特権昇格命
令は、通常の仮想記憶保護機構(virtual memory protec
tion mechanisms)を使用して、より下位の特権レベルで
は書き込むことができないメモリページに該特権昇格命
令を格納することを確実にすることにより、真正なもの
であることが保証される。
【0005】より下位の特権レベルで記録された情報
が、何れも信頼することができないものであり、及びよ
り高位の特権レベルでチェックされなければならないも
のであっても、より下位の特権レベルでは書き込むこと
のできないメモリページに配置されている特権昇格命
令、及び先行特権レベル状態を記録している特権昇格命
令は、先行特権レベル状態を信頼できるものとすること
が可能である。しかし、先行特権レベル状態を書き込む
特権昇格命令は、典型的には、他の目的には必要とされ
ない特別なプロセッサデータパス及び制御論理を必要と
する。更に、特権昇格命令によってではなくより下位の
特権レベルで書き込まれた特権昇格に関する状態はいず
れも、より下位の特権レベルで書き込まれた状態の妥当
性をチェックするために、より高位の特権レベルで実行
される余分なシステム命令を必要とし、このため特権昇
格の性能が低下することになる。
【0006】
【発明の解決しようとする課題】上記の理由及び本書の
発明の実施の形態の欄でより詳細に示す他の理由によ
り、コンピュータシステムにおけるプロセッサのカレン
ト特権レベルを昇格させる特権昇格命令であって、特権
昇格の性能を改善すると共に該特権昇格命令の実行のた
めに特別なプロセッサデータパス及び制御論理を必要と
しない特権昇格命令を採用した、コンピュータシステム
が望まれている。
【0007】
【課題を解決するための手段】本発明は、オペレーティ
ングシステムによって制御される、コンピュータシステ
ムにおけるプロセッサのカレント特権レベルを昇格させ
るためのコンピュータシステム及び方法を提供する。カ
レント特権レベルは、システムリソースへのアクセス可
能性を制御することにより、コンピュータシステムにお
けるアプリケーション命令の実行を制御する。オペレー
ティングシステムは特権昇格命令を実行する。特権昇格
命令は、第1の特権レベルにおいてアプリケーション命
令により書き込むことのできない第1のメモリページに
格納される。特権昇格命令は、格納されている先行特権
レベル状態の読み出しと、該読み出した先行特権レベル
状態とカレント特権レベルとの比較とを含む。先行特権
レベル状態が、カレント特権レベルと同じであるか又は
それよりも低い特権が付与されている場合には、特権昇
格命令は、カレント特権レベルを第1の特権レベルより
も高位の第2の特権レベルへと昇格させる。
【0008】一実施形態では、特権昇格命令は、先行特
権レベル状態がカレント特権レベルよりも高い特権を付
与されている場合に不正処理違反(illegal operation f
ault)を選択する。
【0009】一実施形態では、システムリソースは、シ
ステムレジスタ、システム命令、及びメモリページを含
む。一実施形態では、第1の特権レベルにあるアプリケ
ーション命令による、特権昇格命令を含む第1のメモリ
ページへの書き込みが不可能であることを確実にするた
めに、仮想記憶保護機構が採用される。
【0010】本発明の一実施形態は、オペレーティング
システムによって制御される、コンピュータシステムに
おける安全な特権昇格/降格機構を提供する。コンピュ
ータシステムのプロセッサは、第1の特権レベルに等し
いプロセッサのカレント特権レベルでアプリケーション
命令を実行する。該アプリケーション命令は第1のメモ
リページに格納される。該カレント特権レベルは、シス
テムリソースへのアクセス可能性を制御することによ
り、コンピュータシステムにおけるアプリケーション命
令の実行を制御する。該アプリケーション命令は、第1
の特権レベルにあるアプリケーション命令により書き込
むことのできない第2のメモリページに対する呼び出し
命令を実行する。該呼び出し命令は、第1のメモリペー
ジへの戻りアドレスの格納、及び先行特権レベル状態で
の第1の特権レベルの格納を含む。オペレーティングシ
ステムは特権昇格命令を実行する。該特権昇格命令は第
2のメモリページに格納される。該特権昇格命令は、格
納されている先行特権レベル状態の読み出し、及び該読
み出した先行特権レベル状態とカレント特権レベルとの
比較を含む。先行特権レベル状態がカレント特権レベル
と同じであるか又はそれよりも低い特権が付与されてい
る場合、特権昇格命令は、カレント特権レベルを、第1
の特権レベルよりも高位の第2の特権レベルへと昇格さ
せる。また、先行特権レベル状態がカレント特権レベル
よりも高い特権を付与されている場合には、特権昇格命
令は不正処理違反を選択する。戻り命令は、第1のメモ
リページに対する格納されている戻りアドレスへと命令
制御フローを移し、格納されている先行特権レベル状態
へとカレント特権レベルを降格させる。
【0011】本発明によるコンピュータシステムは、格
納されている先行特権レベル状態のチェックに基づきコ
ンピュータシステムにおけるプロセッサのカレント特権
レベルを昇格させる特権昇格命令を採用し、これにより
本書の従来の技術の欄に記載した従来の特権昇格機構よ
りも特権昇格性能が大幅に改善される。更に、本発明に
よる特権昇格は、特権昇格命令自体が先行特権レベル状
態を記録する従来の特権昇格機構の場合に必要とされた
特別なプロセッサデータパス及び制御論理を必要とする
ことなく特権昇格命令を実行するものとなる。
【0012】
【発明の実施の形態】本実施形態の以下の詳細な説明で
は、本書の一部をなすと共に本発明を実施することが可
能な特定の実施形態を例示する添付図面を参照する。他
の実施形態を用いることも可能であり、本発明の範囲か
ら逸脱することなく構造的又は論理的な変更を加えるこ
とが可能であることが理解されよう。したがって、以下
の詳細な説明は、制限的な意味で解釈されるべきではな
く、本発明の範囲は特許請求の範囲によって規定される
ものである。
【0013】図1に本発明によるコンピュータシステム
を全体的に符号30で示す。該コンピュータシステム30
は、一連の論理演算を行う少なくとも1つのプロセッサ
(プロセッサ32等)を含む。該コンピュータシステム30
はまた、プロセッサ32によって使用される命令及びデー
タを格納するメモリ34を含む。オペレーティングシステ
ム36は、メモリ34に格納され、システム動作及びメモリ
34に格納されているアプリケーションプログラム命令の
実行のために、プロセッサ32及びメモリ34を制御する。
メモリ34は、典型的には、ランダムアクセスメモリ(RA
M)、不揮発性メモリ、及びハードディスクドライブを
含むが、任意の既知のタイプの記憶装置を含むことが可
能である。
【0014】プロセッサ32は、アプリケーションレジス
タセット38及びシステムレジスタセット40を含む。コン
ピュータシステム30のアーキテクチャ的な状態は、アプ
リケーションレジスタセット38、システムレジスタセッ
ト40、及びメモリ34によって表されている。アプリケー
ションレジスタセット38は、メモリ34に格納されたアプ
リケーションプログラムにより使用可能なレジスタを含
む。システムレジスタセット40は、プロセス制御、割り
込み操作、保護、デバッグ、及び性能監視等のために、
システムレジスタリソースを提供する。システムレジス
タセット40は、一般に、オペレーティングシステム36に
のみ可視なものである。
【0015】アプリケーションレジスタセット38に含み
得るレジスタの例としては、汎用レジスタ、浮動小数点
レジスタ、結果比較レジスタ、分岐情報レジスタ、命令
ポインタ、カレントフレームマーカ、プロセス識別子、
及びユーザマスクが含まれる。アプリケーションレジス
タセット38は、特に、アプリケーションレジスタファイ
ル42を含む。該アプリケーションレジスタファイル42
は、アプリケーション命令のためのアプリケーションか
ら可視であるプロセッサ機能のための、特殊用途データ
レジスタ及び制御レジスタを含む。アプリケーションレ
ジスタファイル42は特に、複数のフィールドを有する先
行機能状態(PFS)レジスタ44を含む。該複数のフィー
ルドは、手順の呼び出しを加速させるためにカレントフ
レームマーカレジスタからの呼び出し命令で自動的にコ
ピーされる値を表すものである。
【0016】システムレジスタセット40に含みうるレジ
スタの例としては、領域レジスタ、保護キーレジスタ、
デバックブレークポイントレジスタ、マシン固有レジス
タ、及び制御レジスタが含まれる。システムレジスタセ
ット40は特に、現在実行中のプロセッサ32のプロセスに
関する現在の実行環境を規定するための制御情報を維持
するプロセッサ状態レジスタ(PSR)46を含む。
【0017】システムレジスタセット40はまた、最近使
用された仮想メモリアドレスから物理メモリアドレスへ
のマッピングをメモリ34に保持する変換ルックアサイド
(look-aside)バッファ(TLB)48も含む。該TLB48は、仮
想データアドレスから物理的データアドレスへのマッピ
ングを保持するデータTLB48aと、仮想命令アドレスから
物理命令アドレスへのマッピングを保持する命令TLB48b
とに分けられている。仮想メモリページは、オペレーテ
ィングシステム36により制御されるデータ構造(ページ
テーブル50と呼ばれる)によって物理メモリページへと
マッピングされる。該ページテーブル50は、メモリ34内
に格納され、メモリ34の1つのメモリページをそれぞれ
マッピングする複数のエントリを含む。該ページテーブ
ル50は、命令及びデータ(典型的には同一ページを共有
しない命令及びデータ)の双方を含むページをマッピン
グする。TLB48は、ページテーブル50のエントリをプロ
セッサ32にキャッシュすることにより性能を改善する。
【0018】プロセッサ32は、PSR46中のカレント特権
レベルフィールド(PSR.cpl)により表されるカレント
特権レベルを有する。PSR.cplフィールド52に格納され
るカレント特権レベルは、プロセッサ32中のシステムリ
ソース、例えば、システムレジスタセット40中のシステ
ムレジスタ、システム命令、及びシステムメモリページ
に対するアクセス可能性を制御する。PSR.cplフィール
ド52に格納されるカレント特権レベルは、2つ又はそれ
以上の実行特権レベル間で変化する。
【0019】プロセッサ32における実行のための命令を
含むプログラムは、仮想アドレス空間内に制限されたメ
モリページ中に格納される。仮想メモリページの例とし
て、アプリケーション命令を有するアプリケーションプ
ログラム56を格納するためのメモリページ54、及びより
高位の特権を有するルーチン60を格納するためのメモリ
ページ58が挙げられる。メモリページ58はまた、本発明
による特権昇格命令62を格納する。
【0020】TLB48中のエントリは、アクセス権フィー
ルド(TLB.ar)64及び特権レベルフィールド(TLB.pl)
66を含む。コンピュータシステム30の一実施形態では、
メモリページの粗(granular)アクセス制御は、4つの
レベルの特権を採用する。該実施形態の一形態では、特
権レベル0が最も高い特権レベル(特権を有する全ての
命令へのアクセスを有する)であり、特権レベル3が最
も低い特権レベルである。コンピュータシステム30の一
実施形態では、メモリページへのアクセスは、TLB.arフ
ィールド64、TLB.plフィールド66、及びPSR.cplフィー
ルド52に格納されているカレント特権レベルによって決
定される。TLB.arフィールド64により仮想メモリページ
について規定される8レベルのアクセス権、TLB.plフィ
ールド66により仮想メモリページについて規定される4
レベルの特権、及びPSR.cplフィールド52によりプロセ
ッサ32について規定される4レベルの特権を有するコン
ピュータシステム30の一実施形態の場合、ページアクセ
ス権は、次の表1により規定される。
【0021】
【表1】
【0022】上記表1の各項目において、「-」はアク
セスが存在しないことを示し、「R」は読み出しアクセ
スを示し、「W」は書き込みアクセスを示し、「X」は実
行アクセスを示し、「Pn」は本発明による特権昇格命令
(例えば特権昇格命令62)の実行時にPSR.cplフィール
ド52を特権レベル「n」に昇格させることを示してい
る。
【0023】一実施形態では、プロセッサ32は、特権レ
ベルと、ページレベルの呼び出し及び書き込み許可と、
保護キー読み出し及び書き込み許可とを検査することに
より、所与の仮想ページに対するページレベル許可を検
査する。
【0024】上記表1を参照すると、実行のみのページ
(例えば、TLB.ar=7)は、エントリ上のPSR.cplフィー
ルド52に格納されたカレント特権レベルをオペレーティ
ングシステム36に昇格させるために使用することができ
る。より下位の特権コード(アプリケーションプログラ
ム56等)は、オペレーティングシステム36により制御さ
れる昇格メモリページ(メモリページ58等)中に呼び出
すことが可能である。オペレーティングシステム36は、
PSR.cplフィールド52に格納されているカレント特権レ
ベルを昇格させるために、本発明による特権昇格命令62
等の特権昇格命令を実行する。特権昇格命令が、PSR.cp
lフィールド52に格納されているカレント特権レベルの
昇格に成功すると、より高位の特権ルーチン(より高位
の特権ルーチン60等)を、オペレーティングシステム36
への割り込みといったオーバヘッドを必要とすることな
く、アプリケーションプログラムにより直接実行するこ
とができる。手順戻り分岐命令は、より高位の特権ルー
チンの実行が完了した後、PSR.cplフィールド52に格納
されているカレント特権レベルを元のより下位の特権レ
ベルへと降格させる。
【0025】コンピュータシステム30で実行される安全
な特権昇格/降格機構の動作の一実施形態を図2のフロ
ーチャートで全体的に符号100で示す。ステップ102で、
プロセッサ32は、メモリページ54から、低いカレント特
権レベル(例えば、PSR.cpl=3)におけるアプリケーシ
ョンプログラム56を実行する。PSR.cplフィールド52に
格納されているカレント特権レベルは、システムレジス
タセット40中のシステムレジスタ、システム命令、及び
メモリ34のメモリページといったシステムリソースへの
アクセス可能性を制御することにより、コンピュータシ
ステム30におけるアプリケーションプログラム56の命令
実行を制御する。
【0026】ステップ104で、より高位の特権ルーチン6
0及び特権昇格命令62を含むメモリページ58に対する呼
び出し命令が行われる。該読み出し命令104は、メモリ
ページ54への戻りアドレスを格納するステップ106を含
む。該呼び出し命令104はまた、戻りアドレス以外の他
の状態情報を格納する(例えばカレントフレームマーカ
をPFSレジスタ44の先行フレームマーカフィールド(PF
S.pfm)68に保存する)ステップ108も含む。ステップ11
0で、呼び出し命令104は、PSR.cplフィールド52からの
カレント特権レベルをPFSレジスタ44の先行特権レベル
フィールド(PFS.ppl)70に格納する。
【0027】ステップ112で、オペレーティングシステ
ム36は、PSR.cplフィールド52に格納されているプロセ
ッサ32のカレント特権レベルを昇格させるために特権昇
格命令62を実行する。該特権昇格命令62の実行には、PF
S.pplフィールド70に格納されている先行特権レベル状
態を読み出すステップ114が含まれる。該特権昇格命令6
2の実行にはまた、PFS.pplフィールド70中の先行特権レ
ベル状態とPSR.cplフィールド52中のカレント特権レベ
ルとを比較するステップ116も含まれる。PFS.pplフィー
ルド70に格納されている先行特権レベル状態に、PSR.cp
lフィールド52に格納されているカレント特権レベルと
同じであるか又はそれよりも低い特権が付与されている
場合には、ステップ118で、オペレーティングシステム3
6がPSR.cplに格納されているカレント特権レベルを昇格
させて、アプリケーションプログラム56がより高位の特
権ルーチン60を直接実行できるようにする。また、PFS.
pplフィールド70に格納されている先行特権レベル状態
が、PSR.cplフィールド52に格納されているカレント特
権レベルよりも高い特権を付与されている場合には、ス
テップ120で、先行昇格命令62は不正処理違反を選択す
る。
【0028】ステップ122で、より高位の特権ルーチン6
0は、その機能であってアプリケーションプログラム56
により呼び出された機能を実行した後、戻り命令を実行
する。ステップ124で、戻り命令122が、呼び出し命令10
4のステップ106で格納されたメモリページ54への戻りア
ドレスへと命令制御フローを移す。ステップ126で、戻
り命令122は、PSR.cplフィールド52中のカレント特権レ
ベルを、呼び出し命令104のステップ110でPFS.pplフィ
ールド70に格納された先行特権レベル状態へと降格させ
る。
【0029】特権昇格命令62の実行中に、PSR.cplフィ
ールド52中のカレント特権レベルを昇格させるステップ
118の一実施形態が、図3にフローチャートで示されて
いる。ステップ200で、プロセッサ32は、特権昇格命令6
2を含むメモリページ58がTLB.arフィールド64において
実行のみのアクセス権を有し、かつTLB.plフィールド66
においてメモリページ58に割り当てられた特権レベルが
PSR.cplフィールド52中のカレント特権レベルよりも高
いか否かを決定する。ステップ202で、特権昇格命令62
を含むメモリページ58が、実行のみ以外のアクセス権を
有する場合、又はメモリページ58に割り当てられた特権
レベルがPSR.cplフィールド52中のカレント特権レベル
と同じであるか又はそれよりも低い場合には、昇格は行
われない(即ち、PSR.cplフィールド52中のカレント特
権レベルは変更されない)。しかし、特権昇格命令62を
含むメモリページ58が実行のみのアクセス権を有し、か
つメモリページ58に割り当てられた特権レベルがPSR.cp
lフィールド52中のカレント特権レベルよりも高い場合
には、フローはステップ204に渡される。
【0030】ステップ204で、プロセッサ32は、命令ア
ドレス変換がイネーブルされているか否かを決定する。
命令アドレス変換がディセーブルされている場合、ステ
ップ206で、PSR.cplフィールド52中のカレント特権レベ
ルが最高特権レベルにセットされる(例えば、PSR.cpl
=0)。命令アドレス変換がイネーブルされている場合
には、ステップ208で、PSR.cplフィールド52中のカレン
ト特権レベルが、メモリページ58の変換における特権レ
ベルフィールド(即ち、TLB.plフィールド66)にセット
される。
【0031】上述のコンピュータシステム30の特権昇格
/降格機構、及び本発明による特権昇格命令62を介して
プロセッサ32のカレント特権レベルを昇格させる特定の
実施形態は、特権昇格の安全かつ効率的な方法である。
アプリケーションプログラム56によって行われる呼び出
し命令は、特権昇格命令62を含むメモリページ58に対し
て行われ、該メモリページ58は、通常の仮想メモリ保護
機構により、より下位の特権レベルにおけるアプリケー
ションプログラム56による書き込みから保護される。特
権昇格命令が成功すれば、より高位の特権ルーチン60
は、呼び出し命令によって保存された特権情報が信頼で
きるものであることが保証される。これは、オペレーテ
ィングシステム36により実行される特権昇格命令が、カ
レント特権レベルを昇格させる前に、PFS.pplフィール
ド70中の先行特権レベル状態がPSR.cplフィールド52中
のカレント特権レベルと同じであるか又はそれよりも低
いか否かをチェックするからである。
【0032】反対に、本書の従来の技術の欄に記載した
従来の機構は、それ自体が先行特権レベル状態を記録す
る特権昇格命令を採用している。本発明による特権昇格
命令は、先行特権レベル状態を書き込まないため、本発
明による特権昇格機構には、特別なデータパスや制御論
理は必要ない。更に、本発明による特権昇格命令が、ア
プリケーションプログラム56によってより下位の特権レ
ベルで書き込まれた先行特権レベル状態の妥当性をチェ
ックするため、これらチェックを行うために、より高位
の特権レベルのルーチン60において追加の命令を必要と
せず、その結果として性能が改善される。
【0033】ステップ110における呼び出し命令104によ
る先行特権レベル状態のPFS.pplフィールド70への保存
は、呼び出し命令104が既に他の状態情報(戻りアドレ
ス等)を保存しているため、最小限の複雑性しか追加さ
れない。例えば、カレントフレームマーカのコピーは、
先行フレームマーカとしてPFS.pfmフィールド68に保存
される。同様に、戻り命令122は、PSR.cplフィールド52
中のカレント特権レベルをPFS.pplフィールド70に格納
されている先行特権レベル状態に降格させる際に、該PF
S.pplフィールド70に格納されている先行特権レベル状
態の読み出しに追加される複雑性を最小限とするように
他の状態情報(戻りアドレス等)を読み出さなければな
らない。例えば、PFS.pfmフィールド68における先行フ
レームマーカは、戻り命令122におけるカレントフレー
ムマーカとして格納される。
【0034】好適実施形態の説明を目的として特定の実
施形態について本書で図示及び説明を行ってきたが、当
業者には、広範な代替及び/又は同じ目的を達成するた
めに計算された同等の実施が、本発明の範囲から逸脱せ
ずに、図示し、かつ説明した特定の実施形態に代わりう
ることが理解されよう。化学、機械、電子機械、電気、
及びコンピュータの分野における熟練者は、本発明は、
非常に広範な実施形態で実施可能であることを容易に理
解しよう。本出願は、本明細書において考察した好まし
い実施形態の任意の適合又は変形を網羅するものであ
る。したがって、本発明は、特許請求の範囲及びその等
価物によってのみ制限されるものと明白に意図される。
【0035】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。 1.コンピュータシステム(30)であって、システムリソ
ースへのアクセス可能性を制御することにより該コンピ
ュータシステムにおけるアプリケーション命令の実行を
制御するカレント特権レベル(52)を有すると共に先行特
権レベル状態(70)を有するプロセッサ(32)と、特権昇格
命令(62)を格納する第1のメモリページ(58)を含む複数
のメモリページを有するメモリ(34)であって、該第1の
メモリページ(58)が第1の特権レベルにあるアプリケー
ション命令による書き込みが不可能なものである、メモ
リ(34)と、前記メモリに格納され、前記プロセッサ及び
前記メモリを制御する、オペレーティングシステム(36)
であって、前記先行特権レベル状態を読み出し、該読み
出した先行特権レベル状態を前記カレント特権レベルと
比較し、前記先行特権レベル状態に前記カレント特権レ
ベルと同じか又はそれよりも低い特権が付与されている
場合に、前記カレント特権レベルを前記第1の特権レベ
ルよりも高位の第2の特権レベルへと昇格させる、とい
う処理により前記特権昇格命令を実行する、オペレーテ
ィングシステムとを備えている、コンピュータシステム
(30)。 2.前記メモリページが、アプリケーション命令(56)を
格納する第2のメモリページ(54)を含み、及び前記第1
のメモリページが、より高位の特権ルーチン(60)を格納
し、前記プロセッサが、前記第1の特権レベルと等しい
カレント特権レベルを有するアプリケーション命令を実
行し、該アプリケーション命令が、前記第2のメモリペ
ージへの戻りアドレスを格納し、前記第1の特権レベル
を前記先行特権レベル状態に格納する、という処理によ
り前記第1のメモリページに対する呼び出し命令(104)
を実行する、前項1に記載のコンピュータシステム。 3.格納されている前記第2のメモリページへの戻りア
ドレスへ命令制御フローを移し、格納されている前記先
行特権レベル状態へカレント特権レベルを降格させる、
という処理により、前記プロセッサがより高位の特権ル
ーチンを介して戻り命令(122)を実行する、前項2に記
載のコンピュータシステム。 4.特権昇格命令を実行する前記オペレーティングシス
テムが、前記先行特権レベル状態に前記カレント特権レ
ベルよりも高位の特権が付与されている場合に不正処理
違反を選択する、という処理を更に含む、前項1ないし
前項3の何れか一項に記載のコンピュータシステム。 5.複数のシステムレジスタを更に備えており、システ
ムリソースが、システムレジスタ(40)、システム命令、
及びメモリのうちの少なくとも1つを含む、前項1ない
し前項3の何れか一項に記載のコンピュータシステム。 6.オペレーティングシステム(36)により制御されるコ
ンピュータシステム(30)において命令を実行する方法で
あって、第1の特権レベルに等しいプロセッサ(32)のカ
レント特権レベル(52)で前記コンピュータシステムの前
記プロセッサ(32)においてアプリケーション命令(56)を
実行し、該アプリケーション命令が第1のメモリページ
(54)に格納され、及び前記カレント特権レベルが、シス
テムリソースへのアクセス可能性を制御することにより
前記コンピュータシステムにおけるアプリケーション命
令の実行を制御するものであり、前記オペレーティング
システムにより特権昇格命令(62)を実行し、該特権昇格
命令が、第2のメモリページ(58)に格納され、及び前記
第1の特権レベルでのアプリケーション命令による書き
込みが不可能となっており、前記特権昇格命令が、格納
されている先行特権レベル状態(70)を読み出し、該読み
出した先行特権レベル状態を前記カレント特権レベルと
比較し、前記先行特権レベル状態に前記カレント特権レ
ベルと同じかそれよりも低い特権が付与されている場合
に、前記カレント特権レベルを、前記第1の特権レベル
よりも高位の第2の特権レベルへ昇格させる、という各
ステップを含む、オペレーティングシステム(36)により
制御されるコンピュータシステム(30)において命令を実
行する方法。 7.前記第2のメモリページに対する呼び出し命令(10
4)を実行し、該呼び出し命令が、前記第1のメモリペー
ジへの戻りアドレスを格納し、前記第1の特権レベルを
前記先行特権レベル状態に格納する、という各ステップ
を含む、前項6に記載の方法。 8.格納されている前記第1のメモリページへの戻りア
ドレスへ命令制御フローを移し、格納されている前記先
行特権レベル状態へカレント特権レベルを降格させる、
という各ステップを有する戻り命令(122)を実行するこ
とを更に含む、前項7に記載の方法。 9.前記特権昇格命令を実行する前記ステップが、前記
先行特権レベル状態に前記カレント特権レベルよりも高
位の特権が付与されている場合に不正処理違反を選択す
る、というステップを更に含む、前項6ないし前項8の
何れか一項に記載の方法。 10.前記システムリソースが、システムレジスタ(40)、
システム命令、及びメモリページのうちの少なくとも1
つを含む、前項6ないし前項8の何れか一項に記載の方
法。
【図面の簡単な説明】
【図1】先行特権レベル状態のチェックに基づいて特権
昇格を行う、本発明によるコンピュータシステムのブロ
ック図である。
【図2】図1のコンピュータシステムにおいて行われる
安全な特権昇格/降格機構の動作を示す流れ図である。
【図3】本発明による特権昇格命令の実行中に、図1の
コンピュータシステムにおけるプロセッサのカレント特
権レベルを昇格させる方法の一実施形態を示す流れ図で
ある。
【符号の説明】
30 コンピュータシステム 32 プロセッサ 34 メモリ 36 オペレーティングシステム 38 アプリケーションレジスタセット 40 システムレジスタセット 42 アプリケーションレジスタファイル 46 プロセッサ状態レジスタ(PSR) 48 変換ルックアサイドバッファ(TLB) 50 ページテーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デイル・シー・モリス アメリカ合衆国カリフォルニア州94025, メンロパーク,ポープ・ストリート・399 (72)発明者 ジェイムス・エム・ヒュル アメリカ合衆国カリフォルニア州95070, サラトガ,キャニオン・ビュー・ドライ ブ・21283

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】コンピュータシステム(30)であって、 システムリソースへのアクセス可能性を制御することに
    より該コンピュータシステムにおけるアプリケーション
    命令の実行を制御するカレント特権レベル(52)を有する
    と共に先行特権レベル状態(70)を有するプロセッサ(32)
    と、 特権昇格命令(62)を格納する第1のメモリページ(58)を
    含む複数のメモリページを有するメモリ(34)であって、
    該第1のメモリページ(58)が第1の特権レベルにあるア
    プリケーション命令による書き込みが不可能である、メ
    モリ(34)と、 前記メモリに格納され、前記プロセッサ及び前記メモリ
    を制御する、オペレーティングシステム(36)であって、 前記先行特権レベル状態を読み出し、 該読み出した先行特権レベル状態を前記カレント特権レ
    ベルと比較し、 前記先行特権レベル状態に前記カレント特権レベルと同
    じか又はそれよりも低い特権が付与されている場合に、
    前記カレント特権レベルを前記第1の特権レベルよりも
    高位の第2の特権レベルへと昇格させる、という処理に
    より前記特権昇格命令を実行する、オペレーティングシ
    ステムとを備えている、コンピュータシステム(30)。
JP2001030729A 2000-02-08 2001-02-07 先行特権レベルに基づく特権昇格 Withdrawn JP2001249848A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/499,720 US7680999B1 (en) 2000-02-08 2000-02-08 Privilege promotion based on check of previous privilege level
US09/499720 2000-02-08

Publications (2)

Publication Number Publication Date
JP2001249848A true JP2001249848A (ja) 2001-09-14
JP2001249848A5 JP2001249848A5 (ja) 2008-03-27

Family

ID=23986419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001030729A Withdrawn JP2001249848A (ja) 2000-02-08 2001-02-07 先行特権レベルに基づく特権昇格

Country Status (4)

Country Link
US (1) US7680999B1 (ja)
EP (1) EP1124184A3 (ja)
JP (1) JP2001249848A (ja)
KR (1) KR100791815B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542498A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド データ処理装置のデバッグ

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007040228A1 (ja) * 2005-10-04 2009-04-16 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
US9307179B1 (en) 2007-11-13 2016-04-05 Nvidia Corporation Method and system for protecting content in graphics memory
US8478959B1 (en) * 2007-11-13 2013-07-02 Nvidia Corporation Method and system for protecting content in graphics memory
US8782380B2 (en) 2010-12-14 2014-07-15 International Business Machines Corporation Fine-grained privilege escalation
GB2538091B (en) * 2015-05-07 2018-03-14 Advanced Risc Mach Ltd Verifying correct code execution context
US9785783B2 (en) * 2015-07-23 2017-10-10 Ca, Inc. Executing privileged code in a process
US10713177B2 (en) * 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US11886605B2 (en) * 2019-09-30 2024-01-30 Red Hat, Inc. Differentiated file permissions for container users

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62100852A (ja) * 1985-10-28 1987-05-11 Yokogawa Hewlett Packard Ltd 機密保護方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703417A (en) 1985-06-27 1987-10-27 Honeywell Information Systems Inc. Call instruction for ring crossing architecture
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
US5941977A (en) 1997-06-25 1999-08-24 Sun Microsystems, Inc. Apparatus for handling register windows in an out-of-order processor
US5968159A (en) * 1997-09-12 1999-10-19 Infineon Technologies Corporation Interrupt system with fast response time
WO1999019795A1 (en) 1997-10-13 1999-04-22 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for optimizing execution of load and store instructions
US6393556B1 (en) * 1998-10-30 2002-05-21 Intel Corporation Apparatus and method to change processor privilege without pipeline flush
US6272533B1 (en) * 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
US6363336B1 (en) * 1999-10-13 2002-03-26 Transmeta Corporation Fine grain translation discrimination

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62100852A (ja) * 1985-10-28 1987-05-11 Yokogawa Hewlett Packard Ltd 機密保護方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542498A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド データ処理装置のデバッグ
US8874883B2 (en) 2010-09-24 2014-10-28 Arm Limited Debugging of a data processing apparatus

Also Published As

Publication number Publication date
KR100791815B1 (ko) 2008-01-04
EP1124184A2 (en) 2001-08-16
US7680999B1 (en) 2010-03-16
KR20010078371A (ko) 2001-08-20
EP1124184A3 (en) 2003-04-02

Similar Documents

Publication Publication Date Title
US7213125B2 (en) Method for patching virtually aliased pages by a virtual-machine monitor
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US8301856B2 (en) Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
US9218302B2 (en) Page table management
US20060036830A1 (en) Method for monitoring access to virtual memory pages
US20060026383A1 (en) Method for efficient virtualization of physical memory in a virtual-machine monitor
JPH0738160B2 (ja) 機密保護方法
US7130977B1 (en) Controlling access to a control register of a microprocessor
US10650136B2 (en) Apparatus and method for controlling use of bounded pointers
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
US5873124A (en) Virtual memory scratch pages
CN110622133B (zh) 用于管理能力域的设备及方法
JP2001249848A (ja) 先行特権レベルに基づく特権昇格
US20060026389A1 (en) Method for providing scratch registers for use by a virtual-machine monitor
US20230409494A1 (en) Technique for constraining access to memory using capabilities
JP7369720B2 (ja) アクションをトリガするための装置及び方法
US20240202139A1 (en) Technique for constraining access to memory using capabilities
US7269830B2 (en) Methods and hardware for safe memory allocation in arbitrary program environments
TW202318210A (zh) 用於處理密封能力之技術
TW202319913A (zh) 用於使用能力限制對記憶體存取之技術
TW202340955A (zh) 使用能力約束記憶體存取之技術
EP4334819A1 (en) Technique for constraining access to memory using capabilities

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080207

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090318

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20090630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101221