[go: up one dir, main page]

JP2010044768A - デバイスの動作モード間の移行を提供するシステム - Google Patents

デバイスの動作モード間の移行を提供するシステム Download PDF

Info

Publication number
JP2010044768A
JP2010044768A JP2009203764A JP2009203764A JP2010044768A JP 2010044768 A JP2010044768 A JP 2010044768A JP 2009203764 A JP2009203764 A JP 2009203764A JP 2009203764 A JP2009203764 A JP 2009203764A JP 2010044768 A JP2010044768 A JP 2010044768A
Authority
JP
Japan
Prior art keywords
privileged
function
mode
application
interrupt
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
Application number
JP2009203764A
Other languages
English (en)
Other versions
JP5006366B2 (ja
Inventor
Brian Harold Kelley
ブライアン・ハロルド・ケレイ
Ramesh Chandrasekhar
ラメシュ・チャンドラセクハー
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010044768A publication Critical patent/JP2010044768A/ja
Application granted granted Critical
Publication of JP5006366B2 publication Critical patent/JP5006366B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

【課題】デバイスの非特権および特権動作モード間の移行に対して、スケジューリングの複雑さを減少し、潜在的なディスパッチャー待ち時間を回避する。
【解決手段】システムは特権310および非特権動作モード304間の移行を提供する方法を含んでいる。方法は、非特権モード304のアプリケーションを実行し、特権機能のサービスを要請するために割り込みを生成し(308)、特権機能を実行するために特権モード310に移行する。そして、特権モードスタックに切り換え(312)、非特権レジスタを保持し特権レジスタを回復して(318)、特権機能を呼び出す(322)。その後、非特権レジスタおよびスタックを回復し(324)、非特権モード304に戻る。このように特権機能はアプリケーションの実行(302)と同じスレッドの一部として実行される。
【選択図】図3

Description

本発明は一般にデバイスの効率的な動作に係り、特にデバイスの非特権および特権動作モード間の効率的な移行を提供するシステムに関する。
技術の進歩は家庭、オフィス、及び個人使用の様々なデバイスの発展をもたらしてきた。例えば、デスクトップ、ノートブック、及びタブレット・コンピュータといったコンピュータ・システムは家庭もしくはオフィス環境における使用に関して強力なツールとなった。無線電話、携帯情報機器(PDA)、及びページング・デバイスのような個人用デバイスもまた強力になり、今や広く使用されている。
多くのデバイスは今やUNIX(登録商標)、LINUX(登録商標)といったオペレーティング・システム、または同様のオペレーティング・システムを動かす複雑なハードウェア及びソフトウェアを含んでいる。一般に、これらのオペレーティング・システムは多数の動作モードを提供する。例えば、大部分のシステムは特権及び非特権動作モードを提供する。特権動作モードにおいて実行するプログラムは無制限にメモリ及びシステムリソースにアクセスすることが可能である。非特権モードにおいて実行するプログラムはあるメモリ領域及び/またはデバイス・システムにアクセスすることを制限される。この構成は重要なメモリまたはデバイス機能に保護レベルを提供する。例えば、非特権モードで第三者のアプリケーションを実行することによって、大切なメモリ領域及びデバイス機能は不許可アクセスから保護される。また、そのような配置はシステムが実行の間に欠陥を分離することを可能にする。
しかしながら、いくつかの状況で、非特権モードで実行するアプリケーションが、特権メモリまたはデバイス機能にアクセスを持たせることを可能にすることが望ましい。例えば、アプリケーションが選択されたシステムファイル、またはデバイス・モデムのようなデバイス・ハードウェアにアクセスすることを可能にすることは望ましいかもしれない。従来方式でこれを遂行するために、個別の特権モード“核(kernel)” タスクが要求された動作を行なっている間、トラップがアプリケーションの実行を中止するように利用される。不運にも、新しい特権モードタスクの提供は付加的なスケジューリングの複雑さおよびオーバーヘッドに帰着する。追加のシステム遅れがさらにディスパッチャー待ち時間の形であるかもしれない。更に、新規タスクは、それが呼び出され、そのために、さらにシステム・スケジューリングおよび動作を複雑にしている非特権アプリケーションとは異なる優先順位で実行するかもしれない。
したがって、必要なことは、デバイスの非特権および特権動作モード間の移行に対するアプリケーションのための方法を提供するシステムであり、ここで移行は新規タスクが作成されることを要求せず、それによって、スケジューリングの複雑さを減少し、潜在的なディスパッチャー待ち時間を回避する。
1つ以上の実施例では、方法と装置を含むシステムはデバイスの動作モード間の移行を提供するように作動することが提供される。例えば、一実施例では、機構は非特権モードで作動するアプリケーションが同じタスク(または実行スレッド)内の特権モード機能を実行することを可能にし、それによって、タスクの生成、スケジューリングおよびディスパッチャー待ち時間を回避するように提供される。したがって、特権モード機能へのアクセスが既存ソフトウェアモデルを変更せずに遂行することができるので、システムは既存ソフトウェアへよく写像する。
1つ以上の実施例では、記憶保護定義域(即ち、非特権対特権モード) 間の移行は、スレッドまたはタスク間の移行に依存しない。したがって、特権モードへの移行がタスク優性順位の変更に帰着しないように、システムは作動する。例えば、従来方式では、特権モードサービスは非特権アプリケーションより異なった優先順位で働く“核”タスクによって扱われる。しかしながら、ここに記述される移行システムは、特権機能がそれを呼出した非特権アプリケーションとして同じタスクおよび優先順位内で作動することを可能にする。
一実施例では、割り込み(ソフトウェアの割り込みのような)は非特権および特権動作モード間の移行を引き起こすために使用される。例えば、その割り込みは特権モード機能またはサービスを要求するために作動する。割り込みは要求されている特権モード機能を示すか識別する関連した機能識別子(即ち、標識または索引)を含む。特権モードへの移行が許可される前に、どんな不法プログラム動作も防がれるように要求が確認される。例えば、標識はそれが信頼された特権モード機能に関係していることを確かめるために検査される。例えば、一実施例では、信頼された特権モード機能は、信頼され品行方正なやり方で所望の機能を行なうであろうと動作システムが決定した機能またはサービスである。更に、非特権アプリケーションから特権モード機能に渡されたパラメータは、特権機能がアプリケーションに与えられた特権を超過しないことを確認するために検査される。例えば、非特権モードアプリケーションは、アプリケーションがアクセス権を持っていないメモリまたは他のリソースにアクセスする特権機能を使用することを妨げられる。したがって、非特権モードアプリケーションは、それが権利を与えられないメモリ領域またはデバイス・レジスタにアクセスするために移行システムを使用することを妨げられる。
一実施例では、非特権モードアプリケーションは、実行(ランタイムかコンパイル時間のいずれか)の前にシステムで登録され、かつその時に、非特権モードアプリケーションのための一組の制限または特権が識別される。例えば、制限は非特権モードアプリケーションに関連した許可リストに基づくかもしれない。移行システムの動作中に、非特権アプリケーションが特権機能を要求するために割り込みを生成するとき、システムは要求された特権機能が信頼された機能であることを確認するように作動し、また要求された特権機能が許可リストによって定義されるような非特権アプリケーションに与えられたアクセス権内で作動するだろうということを検査する。検査が完了した後、機能は特権モードで行なわれる。したがって、特権機能は要求している非特権アプリケーションと同じタスクまたは実行スレッド内で作動し、それによって、タスクの生成、スケジューリングおよびディスパッチャー待ち時間を回避する。
一実施例では、デバイスの動作モード間の移行を提供する方法が提供される。動作モードは特権モードおよび非特権モードを含む。方法は、非特権モードのアプリケーションを実行し、特権機能のサービスを要請するために割り込みを生成し、特権機能を実行するために特権モードに移行することを含み、特権機能はアプリケーションと実行の同じスレッドの一部として実行される。
別の実施例では、デバイスの動作モード間の移行を提供するための装置が提供される。動作モードは特権モードおよび非特権モードを含む。装置は非特権モードのアプリケーションを実行するために作動する処理論理を含む。装置は、また特権機能のサービスを要請する割り込みを受け取るように作動する割り込み論理を含む。装置はさらに、特権機能を実行するため特権モードに移行するように作動する移行論理を含み、特権機能はアプリケーションと同じ実行スレッドの一部として実行される。
別の実施例では、デバイスの動作モード間の移行を提供するための装置が提供される。動作モードは特権モードおよび非特権モードを含む。装置は、非特権モードのアプリケーションを実行する手段、および特権機能のサービスを要請する割り込みを受け取る手段を含む。装置はさらに、特権機能を実行するために特権モードに移行する手段を含み、特権機能はアプリケーションと同じ実行スレッドの一部として実行される。
別の実施例では、デバイスのプロセッサによって実行されるとき、デバイスの動作モード間の移行を提供するように作動する命令を含むコンピュータ可読媒体が提供される。動作モードは非特権モードおよび特権モードを含む。コンピュータ可読媒体は、非特権モードのアプリケーションを実行するための命令、特権機能のサービスを要求する割り込みを生成するための命令、および特権機能を実行するために特権モードに移行するための命令を含み、特権機能はアプリケーションと実行の同じスレッドの一部として実行される。
本発明の他の形態、利点、及び特徴は下記で説明される図面の簡単な説明、発明の詳細な説明、及び請求項の記述から明らかになるであろう。
ここに述べられた実施例の前述の形態及び付随の利点は付属図面と関連して取られるとき以下に始まる詳細な記述からさらに明らかになるであろう。
ここに記述されるようなデバイスの動作モード間の移行を提供するため、移行システムの1つ以上の実施例を実施するのに適切なデバイスを示す。 移行システムの一実施例を含むデバイスの機能ブロック図を示す。 デバイスで使用される移行システムの一実施例の動作を例証するフローダイアグラムを示す。
次の詳細な記述は、デバイスの動作モード間の移行を提供する移行システムについて記述する。例えば、システムはデバイスの非特権および特権動作モード間の速くかつ効率的な移行を提供するように作動し、非特権アプリケーションは、新規タスクを生成させることなく特権機能を行なうことができる。その結果、システムは新規タスク生成、スケジューリングおよびディスパッチャー待ち時間のオーバーヘッドを回避する。
1つ以上の実施例では、移行システムは、デバイスの特定のリソースのための一般化された呼によるような、デバイスの動作を単純化するために使用される、デバイス上で実行するランタイム環境で対話する。そのような1つのランタイム環境はカリフォルニア州サンディエゴ市のQUALCOMM社によって開発された無線のためのバイナリ・ランタイム環境(BREW(登録商標))ソフトウェア・プラットフォームである。下記の説明はBREW(登録商標)ソフトウェア・プラットフォームのようなランタイム環境を実行するデバイスを述べる。しかしながら、1つ以上の実施例では、移行システムは、動作システムまたは制御または監視プログラムを含んでいる様々なデバイスで、速くて効率的な動作モード移行を提供する他のタイプのランタイム環境で使用するのに適している。例えば、デバイスはデスクトップ・コンピュータ、ノートブック・コンピュータ、携帯用コンピュータ、及び無線電話、ポケットベル、PDA、電子メール・デバイス、タブレット・コンピュータ、または他形式の計算デバイスといった可搬式デバイスを含むが、それに限定されない。
図1は、ここに記述されるようなデバイス102の動作モード間の移行を提供する移行システムの1つ以上の実施例を実施するのに適切なデバイス102を示す。デバイス102は、無線電話もしくはPDA、または他形式の計算デバイスのような、家庭用、オフィス用、またはパーソナル・デバイスの一部である。動作の間、1つ以上のアプリケーションはデバイス102上で実行し、情報、機能、及び/またはサービスをデバイス102に提供する。例えば、アプリケーションの一形式はデバイス102が映画、ニュース、または他形式のマルチメディア・コンテンツを表示することを可能にするように動作する視聴アプリケーションである。
一実施例では、デバイス102は、デバイス102で実行しているランタイム環境104、例えばBREW(登録商標)ランタイム環境を含んでいる。ランタイム環境は少なくとも2つの動作モード、すなわち非特権モード(NP)および特権モード(P) を含んでいる。動作の非特権モードはデバイス上で実行するアプリケーションのアクセスを制限するように使用される。例えば、非特権モードにおいて動くアプリケーションは選択メモリ領域に制限され、デバイス・レジスタまたは他のリソースに対するアクセスを拒絶される。特権モード動作はこのモードの下で動くアプリケーションが制限なしでメモリまたはデバイス・リソースにアクセスすることを可能にする。
アプリケーションがデバイス102上で実行するとき、それは所望の機能を提供するランタイム環境の下で動く。例えば、アプリケーション106は非特権モード(NP)の下でデバイス102上で動き、所望の機能を提供する。しかしながら、アプリケーション106は、特権モードにおいてのみ利用可能な機能またはシステムサービスを要求するかもしれない。例えば、アプリケーション106は特権メモリまたはデバイス・ハードウェアリソースにアクセスする必要があるかもしれない。これらの機能またはサービスを得るために、ここに記述された移行システムは、アプリケーション106が適切な検査の後に特権モード機能110に移行制御する(108で示されたように)ことを許可する機構を提供する。機能110は特権モードで作動し、要求された機能またはサービスを行なう。機能110の動作は、非特権アプリケーション106と実行の同じタスクまたはスレッド内にある。特権モードで提供される機能またはサービスが一旦与えられたならば、移行システムは非特権モードアプリケーションに移行する(112で示されたように)制御を許可する。
したがって、移行システムは、ランタイム環境によって実行するために作成およびスケジュールされるべき新規タスクの必要のない、特権モードへ速くかつ効率的な移行を提供し、それによって、スケジューラーの複雑さおよび関連するディスパッチャー待ち時間を除去する。
図2は移行システムの一実施例を含むデバイス102の機能ブロック図を示す。デバイス102は処理論理202と、内部データバス204に接続されるハードウェアリソース226を含む。処理論理202にコード・メモリ206とデータ・メモリ208が接続されている。
1つ以上の実施例では、処理論理202はCPU、プロセッサ、ゲート・アレイ、ハードウェア論理、メモリー素子、仮想計算機、ソフトウェア、I/Oインタフェースおよび/またはハードウェアとソフトウェアの任意の組合せを含む。したがって、処理論理202は一般にマシン可読命令を実行する論理を含む。
デバイスリソース226はハードウェアおよび/またはソフトウェアリソースを含み、それはデバイスインターフェース、大容量記憶装置、ユーザーI/Oおよび他のタイプのデバイスリソースを提供するように作動する。例えば、命令はフロッピー(登録商標)ディスク、CDROM、フラッシュ・メモリのような局部記憶装置システムを介して、またはデバイスリソース226によってデバイス102に接続される他の局部記憶装置を介してデバイス102にロードされるかもしれない。別の実施例では、命令はネットワーク・サーバーのようなネットワークリソース、またはデバイスリソース226によってデバイス102に接続される他のタイプのネットワークリソースからデバイス102へダウンロードされるかもしれない。その命令は、処理論理202によって実行されるとき、ここに記述されるような移行システムの1つ以上の実施例を提供する。
一実施例では、コードメモリ206はRAM、ROM、FLASH、EEROM、他の適切なタイプのメモリ、またはそれらの組合せを含む。コードメモリ206は、特権領域(P)210および非特権領域(NP)212へ区分される。特権領域210は、実行されたときメモリまたはデバイス102の他のシステムに無制限にアクセスをもつプログラムコードを含んでいる。例えば、特権コード領域210は動作システムコード(OS)、ユーザ・インターフェースコード(UI)、検査コードおよび第1と第2特権機能コード(FUNC 1)および(FUNC 2) を含む。特権コード領域210で示されるコードは、デバイス102に含まれているかもしれない特権コードのタイプの代表である。さらに特権コード領域210がデバイス102上で実行のための他のタイプの特権のコードを含むことが可能である。
非特権コード領域212は、実行されたとき選択されたメモリ領域にのみアクセスするように制限されたプログラムコードを含んでいる。例えば、非特権コード領域212はOSコードおよびアプリケーション・コード(Appl)を含む。一実施例では、アプリケーション・コードはデバイス102にダウンロードされるか、デバイス製造時にインストールされるか、または局部メモリかシステムからデバイスに付加されたコードであるかもしれない。またメモリ管理ユニット(MMU)214がコードメモリ206に接続される。MMU214は、非特権コードがコードメモリ206の選択された領域に対しアクセス権を制限されるように、非特権プログラムコードの動作を制限するように作動する。
一実施例では、データメモリ208は特権領域216および非特権領域218を含む。特権領域216は特権プログラムコードによってのみアクセスされるデータ領域を含む。例えば、特権データ領域216は、OS、UI、検査、FUNC 1およびFUNC 2コードによって使用されるデータを含む。非特権データ領域218は、非特権プログラムコードによりアクセスされるデータ領域を含んでいる。例えば、非特権データ領域218は、非特権OSおよびApplプログラムコードによって使用されるデータを含む。さらに、メモリ管理ユニット(MMU)220がデータメモリ208に接続される。MMU 220は非特権および特権データ領域へのアクセスを制限するように作動する。例えば、非特権アプリケーションは、特権データ領域216中のデータ、または非特権データ領域218の他の非特権アプリケーションに属するデータへのアクセスから制限される。
処理論理202はまたモード論理222および割り込み論理224を含む。モード論理222はデバイス102の動作モード間のモード変更を許可するように作動するCPU、プロセッサ、論理、デバイス・レジスタ、ソフトウェアまたはハードウェアおよびソフトウェアの任意の組合せを含む。例えば、一実施例では、モード論理222はそのビットが動作モードを設定するレジスタを含む。例えば、特権モードから非特権モードへ切り換えるため、レジスタの選択されたビットが設定され、それは非特権スタックに回復されかつ非特権モードでプログラムの実行を継続することをもたらす。
割り込み論理224は、処理論理202によって受け取られかつ処理される割り込みを可能にするように作動するCPU、プロセッサ、論理、ソフトウェアまたはハードウェアおよびソフトウェアの任意の組合せを含む。例えば、割り込み論理224は、処理論理202によって実行されたプログラムコードによって生成されるソフトウェアの割り込みを受け取るかもしれない。一実施例において、移行システムはソフトウェアの割り込みを使用し、非特権プログラムコードが同じタスクおよび優先順位内の特権機能を実行することを可能にする。一実施例では、割り込み論理224が移行システムの動作の一部としてソフトウェアの割り込み、ハードウェアの割り込み、プログラム例外または他の任意のタイプの割り込みを処理する。
デバイス102の構成が単に1つの記述された移行システムの実施にふさわしい構成であることは注目されるべきである。また、本発明の範囲内の他のデバイス構成、機能要素または素子構成を使用して、移行システムの1つ以上の実施例を実施することは可能である。
移行システムの動作中に、処理論理202は特権機能(即ち、FUNC 1)のサービスを要求する非特権アプリケーション・コード(即ち、Appl) を実行する。そのアプリケーションは関連する機能索引を持っているソフトウェアの割り込みを生成する。その割り込みは割り込み論理224によって扱われ、割り込みに応じて処理論理202は特権検査コードを働かせ、要求された機能は信頼された機能であること、そして要求された機能はそれが権利を与えられるより多くのアクセス権を非特権コードに提供しないことを確認する。要求が確認された場合、要求された特権機能が処理論理202によって実行される。例えば、Applは行なわれるべき所望の特権機能であるとしてFUNC 1を確認する機能索引でソフトウェアの割り込みを生成するかもしれない。要求が確認された後、処理論理202は特権機能FUNC 1を実行する。FUNC 1の完了で、処理論理202はモード論理222を使用して非特権モードに返り、非特権モードのApplの実行を継続する。
一実施例では、記述された移行システムはコンピュータ可読媒体に格納されたプログラム命令を含み、処理論理202によって実行されたときここに記述されたように作動する移行システムを提供する。1つ以上の実施例では、コンピュータ可読媒体はフロッピー(登録商標)ディスク、CD、メモリーカード、FLASHメモリ・デバイス、RAM、ROMまたは他のタイプのメモリ・デバイスを含む。
図3は、例えばデバイス102のようなデバイスで使用される移行システムの一実施例の動作を例証するフローダイアグラム300を示す。明瞭さのために、フローダイアグラム300は、図2で示されたデバイスに関して記述されるだろう。デバイスが実行302の非特権スレッドを作成するように作動するBREW(登録商標) ランタイムシステムを実行していると仮定する。実行スレッド302は、デバイス上で非特権アプリケーションの実行を表わす。
システムスケジューラー(示されない)は実行302のスレッドを形成するアプリケーションの実行をスケジュールするように作動する。典型的には、スケジューラーは優先順位に基づいた実行をスケジュールするように作動する。ここに記述した移行システムが非特権アプリケーションを呼び出すとき実行の同じスレッド内で実行する特権モード機能を可能にするので、新規タスクは作成されず、結果としてスケジューラー動作は単純化される。
スレッド302の実行中に、非特権アプリケーション304は実行される。アプリケーション304は、デバイスがデバイス使用者へ様々なマルチメディア・コンテンツを表示することを可能にする視聴アプリケーションかもしれない。アプリケーション304が実行されるとき、特権機能のサービスのための要求が生じる。ブロック306では、そのアプリケーションは特権機能に関係している索引を得る。ブロック308では、アプリケーション304は、特権機能が実行することができるように、特権モード310に移行するデバイスの動作モードを要求するように動作する割り込みを生成する。
割り込み308はソフトウェアの割り込み、またはアプリケーション304によって生成されるかもしれない他のタイプの割り込みかもしれない。その割り込みは、行なわれる特権機能を識別する索引を含んでいる。例えば、その割り込みは、図2で示される割り込み論理234によって処理されるかもしれない。
割り込みが受け取られた後、特権モードスタックへのスイッチがブロック312で生じるところで、プログラム実行は特権モード310に流れる。例えば、一実施例では、特権モードスタックは特権モード中にいるとき使用するためのスレッド302に関連したメモリである。
索引が有効かどうか判断するためにブロック314でテストが行なわれる。例えば、索引は行なわれる特権機能を識別する。システムによって信頼される特権機能はそれぞれ索引に関係している。テストは、受信された索引が信頼された特権機能に関係しているかどうか314で判断する。例えば、一実施例では、索引のテーブルは、割り込みによって渡された索引が信頼された機能と関連するかどうか判断するために探索される。索引が信頼された機能を識別しない場合、プログラム実行は316へ流れ、そこで不法のアクセス取り扱いルーチンがエラーを処理する。例えば、取り扱いルーチン316は非特権アプリケーション304にエラーコードを返すかもしれない。
索引が信頼された特権機能を識別する場合、プログラム・フローはブロック318に続き、そこで非特権レジスタ(即ち、レジスタ、メモリ・ポインタなど) が保存され、特権モードに関連したレジスタが回復される。一旦特権モードレジスタが回復されれば、プログラムはブロック320に進み、そこで所望の特権機能が索引に基づいて決定される。例えば、特権機能のテーブルが所望の機能を決定するために索引に基づいて探索される。
一旦特権機能が決定されれば、それはブロック322で呼ばれる。例えば、特権機能は非特権アプリケーション304による使用のためデータを含んでいる特別のシステムファイルを開くように作動するかもしれない。一実施例では、追加のパラメータがアプリケーション304から特権機能に渡される。例えば、パラメータは非特権アプリケーション304によって要求されているタイプのサービスをさらに示すか定義する。例えば、一実施例では、パラメータは[サブシステム][方法]の形にデバイス・レジスタを介して渡され、ここに“サブシステム”は リソースを示し、“方法” はどの機能が行なわれるべきかを示す。
特権機能はこれらのパラメータを検査するように作動し、特権機能の実行がアプリケーション304に与えられた特権を超過しないだろうということを確認する。例えば、機能の実行がアプリケーション304に置かれたメモリ制限を超過しないように、機能はパラメータを検査するように作動する。一実施例では、図2で示される検査プログラムが確認を行なう。検査プログラムはアプリケーションに負わせる権利、特権および制限を識別する許可リストを検索する。例えば、許可リストは、図2で示される特権データ領域226に配置された検査データ領域に格納されるかもしれない。検査プログラムは要求された機能の動作をアプリケーションに関連した許可リストと比較するように作動する。したがって、検査は、検査プログラムが非特権アプリケーションによって渡されたパラメータに基づいてどんな機能が成されるかを試みることを知るという文脈である。
一実施例において、パラメータが有効でない場合、またはパラメータが不法なメモリーアクセスに帰着する場合、特権機能は実行せず、エラーがアプリケーション304に返される。パラメータが有効な場合、特権機能はアプリケーション304に所望のサービスを提供するために実行される。
機能が行なわれた後、プログラム実行はブロック324に流れ、非特権モードレジスタが非特権モードスタックを含めて回復される。プログラム実行は、パス326で示されるような非特権アプリケーション304に返る。例えば、図2で示されるモード論理232が非特権モードに返るために使用されてもよい。したがって、移行システムは非特権アプリケーションが新規タスクを作成せずに特権機能を実行することを可能にするように作動し、それによって、新規タスク生成、スケジューリングおよびディスパッチャー待ち時間のオーバーヘッドを回避する。
プログラム・フロー図300は一つの実施例を例示したものであり、プログラム要素の変更、追加、または再配列は発明の範囲から逸脱することなく行われることは注目すべきである。
従って、移行システムに関する方法及び装置の1つ以上の実施例がここに例示、且つ述べられてきたが、それらの精神または本質的特性から逸脱することなく実施例に対して様々な変更が行われることは理解されるであろう。従って、ここにおける開示及び記述は本発明の範囲の例示であり、限定するものでないことを意図しており、それは請求項において説明される。

Claims (24)

  1. デバイスの動作モード間の移行を提供する方法であって、動作モードは特権モードおよび非特権モードを含み、
    前記非特権モードのアプリケーションを実行し、
    特権機能のサービスを要請する割り込みを生成し、
    前記特権機能を実行するために前記特権モードに移行し、前記特権機能は前記アプリケーションと同じ実行スレッドの一部として実行されることを含む方法。
  2. 前記割り込みはソフトウェアの割り込みである請求項1の方法。
  3. 前記特権機能が信頼された機能であることの確認をさらに含む請求項1の方法。
  4. 前記特権機能の実行は前記アプリケーションに関連したアクセス権を超過しないことの確認をさらに含む請求項1の方法。
  5. 前記特権機能の実行が終わったときに前記アプリケーションを実行するために前記非特権モードに移行することをさらに含む請求項1の方法。
  6. 前記移行するステップは特権モードスタックへの切り換えを含む請求項1の方法。
  7. 前記デバイスは無線デバイスである請求項1の方法。
  8. デバイスの動作モード間の移行を提供する装置であって、前記動作モードは特権モードおよび非特権モードを含み、
    前記非特権モードのアプリケーションを実行するために作動する処理論理と、
    特権機能のサービスを要請する割り込みを受け取るように作動する割り込み論理と、
    前記特権機能を実行するために前記特権モードに移行するように作動する移行論理とを含み、前記特権機能は前記アプリケーションと同じ実行スレッドの一部として実行される装置。
  9. 前記割り込みはソフトウェアの割り込みである請求項8の装置。
  10. 前記特権機能が信頼された機能であることを確認するように作動する確認論理をさらに含む請求項8の装置。
  11. 前記特権機能の実行が前記アプリケーションに関連したアクセス権を超過しないことを確認するように作動する確認論理をさらに含む請求項8の装置。
  12. 前記デバイスは無線デバイスである請求項8の装置。
  13. デバイスの動作モード間の移行を提供する装置であって、前記動作モードは特権モードおよび非特権モードを含み、
    前記非特権モードのアプリケーションを実行する手段と、
    特権機能のサービスを要請する割り込みを受け取る手段と、
    前記特権機能を実行するために前記特権モードに移行する手段とを含み、前記特権機能は前記アプリケーションと同じ実行スレッドの一部として実行される装置。
  14. 前記割り込みはソフトウェアの割り込みである請求項13の装置。
  15. 前記特権機能は信頼された機能であることを確認するための手段をさらに含む請求項13の装置。
  16. 前記特権機能の実行が前記アプリケーションに関連したアクセス権を超過しないことを確認するための手段をさらに含む請求項13の装置。
  17. 前記デバイスは無線デバイスである請求項13の装置。
  18. 命令を含むコンピュータ可読媒体であって、デバイス中のプロセッサによって実行されるとき、デバイスの動作モード間の移行を提供するように作動し、前記動作モードは特権モードおよび非特権モードを含み、
    前記非特権モードのアプリケーションを実行するための命令と、
    特権機能のサービスを要請する割り込みを生成するための命令と、
    前記特権機能を実行するために前記特権モードに移行するための命令とを含み、前記特権機能は前記アプリケーションと同じ実行スレッドの一部として実行されるコンピュータ可読媒体。
  19. 前記割り込みはソフトウェアの割り込みである請求項18のコンピュータ可読媒体。
  20. 前記特権機能が信頼された機能であることを確認するための命令をさらに含む請求項18のコンピュータ可読媒体。
  21. 前記特権機能の実行が前記アプリケーションに関連したアクセス権を超過しないことを確認するための命令をさらに含む請求項18のコンピュータ可読媒体。
  22. 前記特権機能の実行が終わったときに前記アプリケーションを実行するために前記非特権モードに移行するための命令をさらに含む請求項18のコンピュータ可読媒体。
  23. 前記移行するための命令は特権モードスタックに切り換わる命令を含む請求項18のコンピュータ可読媒体。
  24. 前記デバイスが無線デバイスである請求項18のコンピュータ可読媒体。
JP2009203764A 2003-10-29 2009-09-03 デバイスの動作モード間の移行を提供するシステム Expired - Lifetime JP5006366B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/697,592 US7076637B2 (en) 2003-10-29 2003-10-29 System for providing transitions between operating modes of a device
US10/697,592 2003-10-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006538109A Division JP4571644B2 (ja) 2003-10-29 2004-10-22 デバイスの動作モード間の移行を提供するシステム

Publications (2)

Publication Number Publication Date
JP2010044768A true JP2010044768A (ja) 2010-02-25
JP5006366B2 JP5006366B2 (ja) 2012-08-22

Family

ID=34550398

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006538109A Expired - Fee Related JP4571644B2 (ja) 2003-10-29 2004-10-22 デバイスの動作モード間の移行を提供するシステム
JP2009203764A Expired - Lifetime JP5006366B2 (ja) 2003-10-29 2009-09-03 デバイスの動作モード間の移行を提供するシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006538109A Expired - Fee Related JP4571644B2 (ja) 2003-10-29 2004-10-22 デバイスの動作モード間の移行を提供するシステム

Country Status (16)

Country Link
US (1) US7076637B2 (ja)
EP (1) EP1678613B1 (ja)
JP (2) JP4571644B2 (ja)
KR (1) KR100832664B1 (ja)
CN (1) CN100476740C (ja)
AR (1) AR046352A1 (ja)
AT (1) ATE475932T1 (ja)
BR (1) BRPI0416050A (ja)
CA (1) CA2543686A1 (ja)
DE (1) DE602004028389D1 (ja)
IL (1) IL175173A0 (ja)
MY (1) MY130960A (ja)
PE (1) PE20050852A1 (ja)
RU (1) RU2358309C2 (ja)
TW (1) TW200530921A (ja)
WO (1) WO2005045612A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8526963B2 (en) * 2003-10-30 2013-09-03 Qualcomm Incorporated Restrictive reuse for a wireless communication system
US9585023B2 (en) 2003-10-30 2017-02-28 Qualcomm Incorporated Layered reuse for a wireless communication system
CN1886712B (zh) * 2003-11-28 2010-09-08 松下电器产业株式会社 数据处理装置
US8059589B2 (en) * 2004-06-09 2011-11-15 Qualcomm Incorporated Dynamic restrictive reuse scheduler
US7680475B2 (en) 2004-06-09 2010-03-16 Qualcomm Incorporated Dynamic ASBR scheduler
US7669050B2 (en) * 2004-06-24 2010-02-23 International Business Machines Corporation Method to enable user mode process to operate in a privileged execution mode
US8032145B2 (en) 2004-07-23 2011-10-04 Qualcomm Incorporated Restrictive reuse set management algorithm for equal grade of service on FL transmission
US7548752B2 (en) 2004-12-22 2009-06-16 Qualcomm Incorporated Feedback to support restrictive reuse
KR101456489B1 (ko) * 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
JP5491102B2 (ja) * 2009-08-27 2014-05-14 ルネサスエレクトロニクス株式会社 データプロセッサ
US9207968B2 (en) * 2009-11-03 2015-12-08 Mediatek Inc. Computing system using single operating system to provide normal security services and high security services, and methods thereof
GB2482701C (en) * 2010-08-11 2018-12-26 Advanced Risc Mach Ltd Illegal mode change handling
DE102012203521A1 (de) * 2011-03-28 2012-10-04 International Business Machines Corp. Architektur mit zwei Vertrauenswürdigkeitsstufen
US8983960B1 (en) * 2011-03-28 2015-03-17 Google Inc. Opportunistic job processing
US8788863B2 (en) * 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
GB2521607B (en) * 2013-12-23 2016-03-23 Nordic Semiconductor Asa Integrated-Circuit Radio
US9904580B2 (en) * 2015-05-29 2018-02-27 International Business Machines Corporation Efficient critical thread scheduling for non-privileged thread requests
US9785783B2 (en) * 2015-07-23 2017-10-10 Ca, Inc. Executing privileged code in a process
CN105138360A (zh) * 2015-08-19 2015-12-09 惠州Tcl移动通信有限公司 一种可穿戴设备的系统函数调用方法及其可穿戴设备
CN110168549B (zh) * 2016-12-14 2022-11-11 皮沃塔尔软件公司 证书的分布式验证
CN108664772A (zh) * 2018-04-27 2018-10-16 北京可信华泰信息技术有限公司 一种保证系统安全性的方法
US11171983B2 (en) * 2018-06-29 2021-11-09 Intel Corporation Techniques to provide function-level isolation with capability-based security
US11169837B2 (en) * 2019-08-23 2021-11-09 Red Hat, Inc. Fast thread execution transition

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03148735A (ja) * 1989-11-06 1991-06-25 Nec Corp メモリ管理装置
JPH05324353A (ja) * 1992-05-19 1993-12-07 Nippon Telegr & Teleph Corp <Ntt> 軽量プロセス制御方式
US6175916B1 (en) * 1997-05-06 2001-01-16 Microsoft Corporation Common-thread inter-process function calls invoked by jumps to invalid addresses
JP2004171567A (ja) * 2002-11-18 2004-06-17 Arm Ltd 多数のオペレーティングシステムの間のタスクの追従
JP2004199693A (ja) * 2002-01-16 2004-07-15 Texas Instruments Inc 高度機能電話または携帯情報端末用機密保護モード指示器
JP2004530979A (ja) * 2001-04-04 2004-10-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリの一部を保護するための方法および装置
JP2004288155A (ja) * 2002-11-18 2004-10-14 Arm Ltd メモリへのアクセスを管理するための装置および方法
JP2005500608A (ja) * 2001-08-13 2005-01-06 クゥアルコム・インコーポレイテッド コンピュータ装置上の記憶領域へのアプリケーションレベルのアクセス特権

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
SU1621029A1 (ru) * 1988-07-12 1991-01-15 Предприятие П/Я Р-6668 Электронна вычислительна машина дл ускоренной обработки запросов прерываний
US5303378A (en) * 1991-05-21 1994-04-12 Compaq Computer Corporation Reentrant protected mode kernel using virtual 8086 mode interrupt service routines
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
EP0610677A3 (en) * 1993-02-12 1995-08-02 Ibm Communication device management module operating in two modes.
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
US5727211A (en) * 1995-11-09 1998-03-10 Chromatic Research, Inc. System and method for fast context switching between tasks
JP2002342166A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd 情報処理装置及びアクセスレベル制御方法
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03148735A (ja) * 1989-11-06 1991-06-25 Nec Corp メモリ管理装置
JPH05324353A (ja) * 1992-05-19 1993-12-07 Nippon Telegr & Teleph Corp <Ntt> 軽量プロセス制御方式
US6175916B1 (en) * 1997-05-06 2001-01-16 Microsoft Corporation Common-thread inter-process function calls invoked by jumps to invalid addresses
JP2004530979A (ja) * 2001-04-04 2004-10-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリの一部を保護するための方法および装置
JP2005500608A (ja) * 2001-08-13 2005-01-06 クゥアルコム・インコーポレイテッド コンピュータ装置上の記憶領域へのアプリケーションレベルのアクセス特権
JP2004199693A (ja) * 2002-01-16 2004-07-15 Texas Instruments Inc 高度機能電話または携帯情報端末用機密保護モード指示器
JP2004171567A (ja) * 2002-11-18 2004-06-17 Arm Ltd 多数のオペレーティングシステムの間のタスクの追従
JP2004288155A (ja) * 2002-11-18 2004-10-14 Arm Ltd メモリへのアクセスを管理するための装置および方法

Also Published As

Publication number Publication date
RU2006118362A (ru) 2007-12-10
AR046352A1 (es) 2005-12-07
ATE475932T1 (de) 2010-08-15
EP1678613A4 (en) 2008-03-26
PE20050852A1 (es) 2005-11-10
CN1875347A (zh) 2006-12-06
CN100476740C (zh) 2009-04-08
JP4571644B2 (ja) 2010-10-27
US20050097252A1 (en) 2005-05-05
WO2005045612A2 (en) 2005-05-19
IL175173A0 (en) 2006-09-05
RU2358309C2 (ru) 2009-06-10
KR100832664B1 (ko) 2008-05-27
EP1678613B1 (en) 2010-07-28
JP5006366B2 (ja) 2012-08-22
DE602004028389D1 (de) 2010-09-09
JP2007510222A (ja) 2007-04-19
TW200530921A (en) 2005-09-16
US7076637B2 (en) 2006-07-11
BRPI0416050A (pt) 2007-01-02
WO2005045612A3 (en) 2006-01-05
CA2543686A1 (en) 2005-05-19
KR20060096456A (ko) 2006-09-11
MY130960A (en) 2007-07-31
EP1678613A2 (en) 2006-07-12

Similar Documents

Publication Publication Date Title
JP5006366B2 (ja) デバイスの動作モード間の移行を提供するシステム
KR100832274B1 (ko) 디바이스에서 특권함수를 호출하는 시스템
KR100823069B1 (ko) 디바이스에 특권 모드 훅의 다이나믹한 등록을 위한 시스템
US7496958B2 (en) System for selectively enabling operating modes of a device
MXPA06004670A (en) System for providing transitions between operating modes of a device
MXPA06004736A (es) Sistema para invocar una funcion privilegiada en un dispositivo
CN113986715A (zh) 一种处理器的调试方法、系统、系统级芯片
HK1097622A (en) System for providing transitions between operating modes of a device
HK1099865A (en) System for invoking a privileged function in a device
MXPA06004662A (en) System for selectively enabling operating modes of a device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120301

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120524

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5006366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term