(57)【要約】デバイスの動作モード（304,310）間の移行を提供するシステム。システムは特権（310）および非特権動作モード（304）間の移行を提供する方法を含んでいる。方法は、非特権モード（304）のアプリケーションを実行し、特権機能(322)のサービスを要請するために割り込みを生成し、特権機能(322) を実行するために特権モード（310）に移行することを含み、特権機能(322) はアプリケーションと実行(302) の同じスレッドの一部として実行される。【選択図】      図３
2007510222.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの動作モード間の移行を提供する方法であって、動作モードは特権モードおよび非特権モードを含み、
非特権モードのアプリケーションを実行し、
特権機能のサービスを要請するための割り込みを生成し、
特権機能を実行するために特権モードに移行し、特権機能はアプリケーションと実行の同じスレッドの一部として実行されることを含む方法。
【請求項２】
割り込みはソフトウェアの割り込みである請求項1の方法。
【請求項３】
特権機能が信頼された機能であることの確認をさらに含む請求項1の方法。
【請求項４】
特権機能の実行はアプリケーションに関連したアクセス権を超過しないことの確認をさらに含む請求項1の方法。
【請求項５】
特権機能の実行が終わるときに、アプリケーションを実行する非特権モードに移行することをさらに含む請求項1の方法。
【請求項６】
移行するステップは特権モードスタックへの切り換えを含む請求項1の方法。
【請求項７】
デバイスは無線デバイスである請求項1の方法。
【請求項８】
デバイスの動作モード間の移行を提供する装置であって、動作モードは特権モードおよび非特権モードを含み、
非特権モードのアプリケーションを実行するために作動する処理論理と、
特権機能のサービスを要請する割り込みを受け取るように作動する割り込み論理と、
特権機能を実行する特権モードに移行するように作動する移行論理とを含み、特権機能はアプリケーションと同じ実行スレッドの一部として実行される装置。
【請求項９】
割り込みはソフトウェアの割り込みである請求項8の装置。
【請求項１０】
特権機能が信頼された機能であることを確認するように作動する確認論理をさらに含む請求項8の装置。
【請求項１１】
特権機能の実行がアプリケーションに関連したアクセス権を超過しないことを確認するように作動する確認論理をさらに含む請求項8の装置。
【請求項１２】
デバイスは無線デバイスである請求項8の装置。
【請求項１３】
デバイスの動作モード間の移行を提供するための装置であって、動作モードは特権モードおよび非特権モードを含み、
非特権モードのアプリケーションを実行する手段と、
特権機能のサービスを要請する割り込みを受け取る手段と、
特権機能を実行するために特権モードに移行する手段とを含み、特権機能はアプリケーションと同じ実行スレッドの一部として実行される装置。
【請求項１４】
割り込みはソフトウェアの割り込みである請求項13の装置。
【請求項１５】
特権機能は信頼された機能であることを確認するための手段をさらに含む請求項13の装置。
【請求項１６】
特権機能の実行がアプリケーションに関連したアクセス権を超過しないことを確認するための手段をさらに含む請求項13の装置。
【請求項１７】
デバイスは無線デバイスである請求項13の装置。
【請求項１８】
命令を含むコンピュータ可読媒体であって、デバイス中のプロセッサによって実行されるとき、デバイスの動作モード間の移行を提供するように作動し、動作モードは特権モードおよび非特権モードを含み、
非特権モードのアプリケーションを実行するための命令と、
特権機能のサービスを要請するために割り込みを生成するための命令と、
特権機能を実行するために特権モードに移行するための命令とを含み、特権機能はアプリケーションと実行の同じスレッドの一部として実行されるコンピュータ可読媒体。
【請求項１９】
割り込みはソフトウェアの割り込みである請求項18のコンピュータ可読媒体。
【請求項２０】
特権機能が信頼された機能であることを確認するための命令をさらに含む請求項18のコンピュータ可読媒体。
【請求項２１】
特権機能の実行がアプリケーションに関連したアクセス権を超過しないことを確認するための命令をさらに含む請求項18のコンピュータ可読媒体。
【請求項２２】
特権機能の実行が終わったとき、アプリケーションを実行する非特権モードに移行するための命令をさらに含む請求項18のコンピュータ可読媒体。
【請求項２３】
移行のための命令は特権モードスタックに切り換わる命令を含む請求項18のコンピュータ可読媒体。
【請求項２４】
デバイスが無線デバイスである請求項18のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデバイスの効率的な動作に係り、特にデバイスの非特権および特権動作モード間の効率的な移行を提供するシステムに関する。
【背景技術】
【０００２】
技術の進歩は家庭、オフィス、及び個人使用の様々なデバイスの発展をもたらしてきた。例えば、デスクトップ、ノートブック、及びタブレット・コンピュータといったコンピュータ・システムは家庭もしくはオフィス環境における使用に関して強力なツールとなった。無線電話、携帯情報機器（ＰＤＡ）、及びページング・デバイスのような個人用デバイスもまた強力になり、今や広く使用されている。
【０００３】
多くのデバイスは今やＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）といったオペレーティング・システム、または同様のオペレーティング・システムを動かす複雑なハードウェア及びソフトウェアを含んでいる。一般に、これらのオペレーティング・システムは多数の動作モードを提供する。例えば、大部分のシステムは特権及び非特権動作モードを提供する。特権動作モードにおいて実行するプログラムは無制限にメモリ及びシステムリソースにアクセスすることが可能である。非特権モードにおいて実行するプログラムはあるメモリ領域及び／またはデバイス・システムにアクセスすることを制限される。この構成は重要なメモリまたはデバイス機能に保護レベルを提供する。例えば、非特権モードで第三者のアプリケーションを実行することによって、大切なメモリ領域及びデバイス機能は不許可アクセスから保護される。また、そのような配置はシステムが実行の間に欠陥を分離することを可能にする。
【０００４】
しかしながら、いくつかの状況で、非特権モードで実行するアプリケーションが、特権メモリまたはデバイス機能にアクセスを持たせることを可能にすることが望ましい。例えば、アプリケーションが選択されたシステムファイル、またはデバイス・モデムのようなデバイス・ハードウェアにアクセスすることを可能にすることは望ましいかもしれない。従来方式でこれを遂行するために、個別の特権モード“核（kernel）” タスクが要求された動作を行なっている間、トラップがアプリケーションの実行を中止するように利用される。不運にも、新しい特権モードタスクの提供は付加的なスケジューリングの複雑さおよびオーバーヘッドに帰着する。追加のシステム遅れがさらにディスパッチャー待ち時間の形であるかもしれない。更に、新規タスクは、それが呼び出され、そのために、さらにシステム・スケジューリングおよび動作を複雑にしている非特権アプリケーションとは異なる優先順位で実行するかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、必要なことは、デバイスの非特権および特権動作モード間の移行に対するアプリケーションのための方法を提供するシステムであり、ここで移行は新規タスクが作成されることを要求せず、それによって、スケジューリングの複雑さを減少し、潜在的なディスパッチャー待ち時間を回避する。
【課題を解決するための手段】
【０００６】
1つ以上の実施例では、方法と装置を含むシステムはデバイスの動作モード間の移行を提供するように作動することが提供される。例えば、一実施例では、機構は非特権モードで作動するアプリケーションが同じタスク(または実行スレッド)内の特権モード機能を実行することを可能にし、それによって、タスクの生成、スケジューリングおよびディスパッチャー待ち時間を回避するように提供される。したがって、特権モード機能へのアクセスが既存ソフトウェアモデルを変更せずに遂行することができるので、システムは既存ソフトウェアへよく写像する。
【０００７】
1つ以上の実施例では、記憶保護定義域(即ち、非特権対特権モード) 間の移行は、スレッドまたはタスク間の移行に依存しない。したがって、特権モードへの移行がタスク優性順位の変更に帰着しないように、システムは作動する。例えば、従来方式では、特権モードサービスは非特権アプリケーションより異なった優先順位で働く“核”タスクによって扱われる。しかしながら、ここに記述される移行システムは、特権機能がそれを呼出した非特権アプリケーションとして同じタスクおよび優先順位内で作動することを可能にする。
【０００８】
一実施例では、割り込み(ソフトウェアの割り込みのような)は非特権および特権動作モード間の移行を引き起こすために使用される。例えば、その割り込みは特権モード機能またはサービスを要求するために作動する。割り込みは要求されている特権モード機能を示すか識別する関連した機能識別子(即ち、標識または索引)を含む。特権モードへの移行が許可される前に、どんな不法プログラム動作も防がれるように要求が確認される。例えば、標識はそれが信頼された特権モード機能に関係していることを確かめるために検査される。例えば、一実施例では、信頼された特権モード機能は、信頼され品行方正なやり方で所望の機能を行なうであろうと動作システムが決定した機能またはサービスである。更に、非特権アプリケーションから特権モード機能に渡されたパラメータは、特権機能がアプリケーションに与えられた特権を超過しないことを確認するために検査される。例えば、非特権モードアプリケーションは、アプリケーションがアクセス権を持っていないメモリまたは他のリソースにアクセスする特権機能を使用することを妨げられる。したがって、非特権モードアプリケーションは、それが権利を与えられないメモリ領域またはデバイス・レジスタにアクセスするために移行システムを使用することを妨げられる。
【０００９】
一実施例では、非特権モードアプリケーションは、実行(ランタイムかコンパイル時間のいずれか)の前にシステムで登録され、かつその時に、非特権モードアプリケーションのための一組の制限または特権が識別される。例えば、制限は非特権モードアプリケーションに関連した許可リストに基づくかもしれない。移行システムの動作中に、非特権アプリケーションが特権機能を要求するために割り込みを生成するとき、システムは要求された特権機能が信頼された機能であることを確認するように作動し、また要求された特権機能が許可リストによって定義されるような非特権アプリケーションに与えられたアクセス権内で作動するだろうということを検査する。検査が完了した後、機能は特権モードで行なわれる。したがって、特権機能は要求している非特権アプリケーションと同じタスクまたは実行スレッド内で作動し、それによって、タスクの生成、スケジューリングおよびディスパッチャー待ち時間を回避する。
【００１０】
一実施例では、デバイスの動作モード間の移行を提供する方法が提供される。動作モードは特権モードおよび非特権モードを含む。方法は、非特権モードのアプリケーションを実行し、特権機能のサービスを要請するために割り込みを生成し、特権機能を実行するために特権モードに移行することを含み、特権機能はアプリケーションと実行の同じスレッドの一部として実行される。
【００１１】
別の実施例では、デバイスの動作モード間の移行を提供するための装置が提供される。動作モードは特権モードおよび非特権モードを含む。装置は非特権モードのアプリケーションを実行するために作動する処理論理を含む。装置は、また特権機能のサービスを要請する割り込みを受け取るように作動する割り込み論理を含む。装置はさらに、特権機能を実行するため特権モードに移行するように作動する移行論理を含み、特権機能はアプリケーションと同じ実行スレッドの一部として実行される。
【００１２】
別の実施例では、デバイスの動作モード間の移行を提供するための装置が提供される。動作モードは特権モードおよび非特権モードを含む。装置は、非特権モードのアプリケーションを実行する手段、および特権機能のサービスを要請する割り込みを受け取る手段を含む。装置はさらに、特権機能を実行するために特権モードに移行する手段を含み、特権機能はアプリケーションと同じ実行スレッドの一部として実行される。
【００１３】
別の実施例では、デバイスのプロセッサによって実行されるとき、デバイスの動作モード間の移行を提供するように作動する命令を含むコンピュータ可読媒体が提供される。動作モードは非特権モードおよび特権モードを含む。コンピュータ可読媒体は、非特権モードのアプリケーションを実行するための命令、特権機能のサービスを要求する割り込みを生成するための命令、および特権機能を実行するために特権モードに移行するための命令を含み、特権機能はアプリケーションと実行の同じスレッドの一部として実行される。
【００１４】
本発明の他の形態、利点、及び特徴は下記で説明される図面の簡単な説明、発明の詳細な説明、及び請求項の記述から明らかになるであろう。
【００１５】
ここに述べられた実施例の前述の形態及び付随の利点は付属図面と関連して取られるとき以下に始まる詳細な記述からさらに明らかになるであろう。
【発明を実施するための最良の形態】
【００１６】
次の詳細な記述は、デバイスの動作モード間の移行を提供する移行システムについて記述する。例えば、システムはデバイスの非特権および特権動作モード間の速くかつ効率的な移行を提供するように作動し、非特権アプリケーションは、新規タスクを生成させることなく特権機能を行なうことができる。その結果、システムは新規タスク生成、スケジューリングおよびディスパッチャー待ち時間のオーバーヘッドを回避する。
【００１７】
1つ以上の実施例では、移行システムは、デバイスの特定のリソースのための一般化された呼によるような、デバイスの動作を単純化するために使用される、デバイス上で実行するランタイム環境で対話する。そのような１つのランタイム環境はカリフォルニア州サンディエゴ市のＱＵＡＬＣＯＭＭ社によって開発された無線のためのバイナリ・ランタイム環境（ＢＲＥＷ(登録商標）)ソフトウェア・プラットフォームである。下記の説明はＢＲＥＷ(登録商標）ソフトウェア・プラットフォームのようなランタイム環境を実行するデバイスを述べる。しかしながら、1つ以上の実施例では、移行システムは、動作システムまたは制御または監視プログラムを含んでいる様々なデバイスで、速くて効率的な動作モード移行を提供する他のタイプのランタイム環境で使用するのに適している。例えば、デバイスはデスクトップ・コンピュータ、ノートブック・コンピュータ、携帯用コンピュータ、及び無線電話、ポケットベル、ＰＤＡ、電子メール・デバイス、タブレット・コンピュータ、または他形式の計算デバイスといった可搬式デバイスを含むが、それに限定されない。
【００１８】
図１は、ここに記述されるようなデバイス102の動作モード間の移行を提供する移行システムの1つ以上の実施例を実施するのに適切なデバイス102を示す。デバイス102は、無線電話もしくはＰＤＡ、または他形式の計算デバイスのような、家庭用、オフィス用、またはパーソナル・デバイスの一部である。動作の間、１つ以上のアプリケーションはデバイス102上で実行し、情報、機能、及び／またはサービスをデバイス102に提供する。例えば、アプリケーションの一形式はデバイス102が映画、ニュース、または他形式のマルチメディア・コンテンツを表示することを可能にするように動作する視聴アプリケーションである。
【００１９】
一実施例では、デバイス102は、デバイス102で実行しているランタイム環境104、例えばＢＲＥＷ(登録商標）ランタイム環境を含んでいる。ランタイム環境は少なくとも2つの動作モード、すなわち非特権モード(NP)および特権モード(P) を含んでいる。動作の非特権モードはデバイス上で実行するアプリケーションのアクセスを制限するように使用される。例えば、非特権モードにおいて動くアプリケーションは選択メモリ領域に制限され、デバイス・レジスタまたは他のリソースに対するアクセスを拒絶される。特権モード動作はこのモードの下で動くアプリケーションが制限なしでメモリまたはデバイス・リソースにアクセスすることを可能にする。
【００２０】
アプリケーションがデバイス102上で実行するとき、それは所望の機能を提供するランタイム環境の下で動く。例えば、アプリケーション106は非特権モード（NP）の下でデバイス102上で動き、所望の機能を提供する。しかしながら、アプリケーション106は、特権モードにおいてのみ利用可能な機能またはシステムサービスを要求するかもしれない。例えば、アプリケーション106は特権メモリまたはデバイス・ハードウェアリソースにアクセスする必要があるかもしれない。これらの機能またはサービスを得るために、ここに記述された移行システムは、アプリケーション106が適切な検査の後に特権モード機能110に移行制御する(108で示されたように)ことを許可する機構を提供する。機能110は特権モードで作動し、要求された機能またはサービスを行なう。機能110の動作は、非特権アプリケーション106と実行の同じタスクまたはスレッド内にある。特権モードで提供される機能またはサービスが一旦与えられたならば、移行システムは非特権モードアプリケーションに移行する(112で示されたように)制御を許可する。
【００２１】
したがって、移行システムは、ランタイム環境によって実行するために作成およびスケジュールされるべき新規タスクの必要のない、特権モードへ速くかつ効率的な移行を提供し、それによって、スケジューラーの複雑さおよび関連するディスパッチャー待ち時間を除去する。
【００２２】
図２は移行システムの一実施例を含むデバイス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つ以上の実施例を実施するのに適切なデバイスを示す。
【図２】移行システムの一実施例を含むデバイスの機能ブロック図を示す。
【図３】デバイスで使用される移行システムの一実施例の動作を例証するフローダイアグラムを示す。
【図１】
2007510222.tif 000003
【図２】
2007510222.tif 000004
【図３】
2007510222.tif 000005
【国際調査報告】
2007510222.tif 000006