JP2006506752A - 安全処理システムにおける例外タイプ - Google Patents
安全処理システムにおける例外タイプ Download PDFInfo
- Publication number
- JP2006506752A JP2006506752A JP2004570294A JP2004570294A JP2006506752A JP 2006506752 A JP2006506752 A JP 2006506752A JP 2004570294 A JP2004570294 A JP 2004570294A JP 2004570294 A JP2004570294 A JP 2004570294A JP 2006506752 A JP2006506752 A JP 2006506752A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- exception
- safety
- safe
- secure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 94
- 231100000279 safety data Toxicity 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims description 156
- 239000013598 vector Substances 0.000 claims description 110
- 230000008859 change Effects 0.000 claims description 15
- 230000001960 triggered effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 114
- 238000005192 partition Methods 0.000 description 93
- 230000008569 process Effects 0.000 description 93
- 238000013519 translation Methods 0.000 description 36
- 238000012544 monitoring process Methods 0.000 description 19
- 230000000694 effects Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 14
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 14
- 238000013507 mapping Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical group [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 102100033265 Integrator complex subunit 2 Human genes 0.000 description 7
- 108050002021 Integrator complex subunit 2 Proteins 0.000 description 7
- 238000013459 approach Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 229910052799 carbon Inorganic materials 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 206010000210 abortion Diseases 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000013481 data capture Methods 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 3
- 230000004224 protection Effects 0.000 description 3
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Abstract
前記安全ドメインにおけるモードである少なくとも1つの安全モードと、
前記非安全ドメインにおけるモードである少なくとも1つの非安全モードとを含み、
前記プロセッサが安全モードでプログラムを実行しているときは、前記プロセッサが非安全モードで実行中にアクセスできない安全データにアクセスし、
前記プロセッサが例外ハンドラーを使用する例外処理をトリガーするための1つ以上の例外条件に応答自在であり、前記プロセッサが前記安全ドメインで作動しているか、または非安全ドメインで作動しているかに応じて、前記プロセッサが複数の可能な例外ハンドラーから前記例外ハンドラーを選択するようになっている、データを処理するための装置が提供される。
Description
前記安全ドメインにおけるモードである少なくとも1つの安全モードと、
前記非安全ドメインにおけるモードである少なくとも1つの非安全モードとを含み、
前記プロセッサが安全モードでプログラムを実行しているときは、前記プロセッサが非安全モードで実行中にアクセスできない安全データにアクセスし、
前記プロセッサが例外ハンドラーを使用する例外処理をトリガーするための1つ以上の例外条件に応答自在であり、前記プロセッサが前記安全ドメインで作動しているか、または非安全ドメインで作動しているかに応じて、前記プロセッサが複数の可能な例外ハンドラーから前記例外ハンドラーを選択するようになっている、データを処理するための装置を提供するものである。
前記安全ドメインにおけるモードである少なくとも1つの安全モードと、
前記非安全ドメインにおけるモードである少なくとも1つの非安全モードとを含み、
前記プロセッサが安全モードでプログラムを実行しているときは、前記プロセッサが非安全モードで実行中にアクセスできない安全データにアクセスし、
1つ以上の例外条件に応答して、例外ハンドラーを使用して例外処理をトリガーするステップを更に備え、前記プロセッサが前記安全ドメインで作動しているか、または非安全ドメインで作動しているかに応じて、前記プロセッサが複数の可能な例外ハンドラーから前記例外ハンドラーを選択するようになっている、データを処理するための方法を提供するものである。
安全ワールドにおける複製モードの代わりに同じモードが安全ドメインおよび非安全ドメインの双方をサポートする(図8参照)。モニタモードは(例えばコプロセッサコンフィギュレーションレジスタから記憶されたSビットを読み出すように)コアの現在のステータスが安全であるか、非安全であるかを知る。
1.スケジューラはスレッド1を開始する。
−Sビットをセットする(安全ステータスフラグ)。
−安全アプリケーションが作動中に例外が生じた場合でも、非安全コンテクストを失うことができないようにスタック内に少なくともR14_monおよびSPSR_monをセーブする。
−開始する新しいスレッド:安全スレッド1があるかどうかをチェックする。(一部の実施例におけるスレッドIDテーブルを介し)手順はスレッド1が安全ワールド内でアクティブであることを表示する。
−IRQ/FIQインターラプトを再イネーブルする。次に安全ユーザーモードで安全アプリケーションがスタートできる。
−安全スレッド1が終了したことを表示する(例えばスレッドIDテーブルの場合、テーブルからスレッド1を除く)。
−スタックから非安全コンテクストをリストアし、必要なレジスタをフラッシングし、非安全ドメインへのリターンが一旦なされると、安全データを読み出しできないようにする。
−次にSUBS命令(この命令はプログラムカウンタを正しいポイントにリストアし、ステータスフラグを更新する)により非安全ドメインへ戻るように分岐し、(リストアされたR14_monからの)PCおよび(SPSR_monからの)CPSRをリストアする。よって、非安全ドメインにおけるポイントへのリターンはスレッド1において前に実行されたSMIに続く命令となる。
上記機能の一部を、特定の実施例によっては、モニタプログラムと安全オペレーティングシステムとに分割できる。
別の実施例では、ユーザーモードではSMIが生じないようにすることが望ましい。
リセット
ハードウェアのリセットが生じると、MMUはディスエーブルされ、ARMコア(プロセッサ)はセットされたSビットにより安全スーパーバイザーモードへ分岐する。一旦、安全ブートが終了されると、モニタモードに進むSMIを実行でき、所望した場合モニタは、非安全ワールド(非安全svcモード)におけるOSへ切り換えできる。遺産(legacy)OSを使用したい場合、このOSは単に安全スーパーバイザーモードへブートでき、安全ステートを無視できる。
この命令(モード切り換えソフトウェアインターラプト命令)は、非安全ドメイン内の非安全モードからコールできる(前に述べたようにSMIを特権モードに制限することが望ましいことがある)が、関連するベクトルによって決定されるターゲット進入ポイントは常に固定されており、モニタモード内にある。これは、実行すべき(例えば命令によってパスされるオペランドによって制御される)適当な安全機能に分岐するためのSMIハンドラーまでである。
−モニタモードへのSMIベクトルへ分岐すること(次にモニタモードに入るので、安全メモリへのアクセスが許可される)。
−PCをR14_monにセーブし、CPSRをSPSR_monにセーブすること。
−モニタプログラムを使ってSビットをセットすること。
−モニタモードでの安全例外ハンドラーの実行をスタートすること(マルチスレッドの場合、コンテクストをリストア、すなわちセーブすること)。
−適当な機能を実行するための安全ユーザーモード(またはSVCモードのような別のモード)への分岐。
−コアがモニタモードとなっている間、IRQおよびFIQをディスエーブルすること(待ち時間(latency)が大きくなる)。
安全ワールドから出る可能性は2つある。すなわち、
−安全機能を終了し、この機能をコールした前の非安全モードに戻ること。
−非安全例外(例えばIRQ/FIQ/SMI)により安全機能をインターラプトすること。
安全機能は正常に終了し、SMIの直後の命令で非安全ワールド内のアプリケーションをレジュームしなければならない。安全ユーザーモードでは、「安全ワールドからのリターン」ルーチンに対応する適当なパラメータにより、モニタモードにリターンするようにSMI命令を実行する。このステージでは、非安全ワールドと安全ワールドとの間のデータの漏れを防止するためにレジスタをフラッシュし、非安全コンテクスト汎用レジスタをリストアし、非安全バンクレジスタが非安全ワールドで持っていた値により、非安全バンクレジスタを更新する。R14_monおよびSPSR_monは「MOVS PC、R14」命令を実行することにより、SMIの後で非安全アプリケーションをレジュームするように適当な値を得る。
この場合、安全機能は終了せず、取り扱いの必要なインターラプトがあれば、非安全例外ハンドラーに進む前に安全コンテクストをセーブしなければならない。
安全インターラプトに対してはいくつかの可能性がある。
次のことに応じて2つの可能な解決案が提案される。
−どんな種類のインターラプトであるか(安全または非安全)。
−(安全ワールドまたは非安全ワールドのいずれかにおいて)IRQが生じたときにコアはどのモードになっているか。
この解決案では、安全インターラプトおよび非安全インターラプトをサポートするのに2つの別個のピンが必要とされる。
非安全ワールド内にある間、
−IRQが生じた場合、コアはARM7のようなARMコアにおけるように、このインターラプトを取り扱うためにIRQモードに進む。
−SRIQが生じた場合、コアはモニタモードに進み、非安全コンテクストをセーブし、次に安全IRQハンドラーに進み、安全インターラプトを取り扱う。
−SIRQが生じた場合、コアは安全IRQハンドラーに進む。コアは安全ワールドから離れない。
−IRQが生じた場合、コアはモニタモードに進み、このモードで安全コンテクストがセーブされ、次に非安全IRQハンドラーに進み、この非安全インターラプトを取り扱う。
図11A参照:
1.スケジューラはスレッド1を開始する。
−Sビットをセットする。
−安全アプリケーションが作動中に例外が生じた場合でも、非安全コンテクストを失うことができないようにスタック内に少なくともR14_monおよびSPSR_monをセーブする(可能な場合には別のレジスタもプッシュする)。
−開始する新しいスレッド:安全スレッド1があるかどうかをチェックする。(スレッドIDテーブルを介し)手順はスレッド1が安全ワールド内でアクティブであることを表示する。
−次に安全ユーザーモードで安全アプリケーションがスタートでき、IRQ/FIQインターラプトを再イネーブルする。
5.安全コンテクストをセーブしなければならず、前の非安全コンテクストをリストアする。モニタハンドラーは適当な値によりR14_IRQ/SPSR_IRQを更新するように、IRQモードとなることができ、次に制御を非安全IRQハンドラーへ移す。
6.IRQハンドラーはIRQをサービスし、次に非安全ワールドでスレッド1へ制御を戻す。CPSRおよびPCにSPRS_IRQおよびR14_IRQをリストアすることにより、次にスレッド1はインターラプトされたSMI命令をポイントする。
8.モニタハンドラーはこのスレッドが前にインターラプトされていると判断し、スレッド1のコンテクストをリストアする。次に、ユーザーモードで安全スレッド1に分岐し、インターラプトされた命令をポイントする。
9.終了するまで安全スレッド1が作動し、モニタモード(専用SMI)で(安全からのリターン)機能に分岐する。
10.(安全からのリターン)機能は次のタスクを行う。
−安全スレッド1が終了したことを表示する(すなわちスレッドIDテーブルの場合、テーブルからスレッド1を除く)。
−スタックから非安全コンテクストをリストアし、必要なレジスタをフラッシングし、非安全ワールドへのリターンが一旦なされた場合に、安全データを読み出しできないようにする。
−SUBS命令により非安全ワールドに戻るように分岐し、(リストアされたR14_monからの)PCおよび(SPRS_monからの)CPSRをリストアする。よって、非安全ワールド内のリターンポイントはスレッド1において前に実行されたSMIに続く命令となるはずである。
11.エンドまでスレッド1が実行され、スケジューラに制御を戻す。
図11B参照:
1.スケジュールがスレッド1を開始する。
2.安全スレッド1の実行中にSIRQが生じる。コアは直接モニタモード(特別ベクトル)にジャンプし、モニタモードでR14_monに現在のPCを記憶し、SPSR_monにCPSRを記憶し、IRQ/FIQをディスエーブルする。
3.非安全コンテクストをセーブしなければならず、次にコアは安全IRQハンドラーに進む。
4.IRQハンドラーはSIRQをサービスし、次に適当なパラメータを有するSMIを使ってモニタモードハンドラーに制御を戻す。
5.モニタハンドラーはSUBS命令がコアを非安全ワールドに戻し、インターラプトされたスレッド1をレジュームするように非安全コンテクストをリストアする。
6.スレッド1はエンドまで実行され、次にスケジューラにハンドを戻す。
この手順(図12参照)では、2つの別個のピンまたは1つのピンだけで安全インターラプトおよび必要がインターラプトをサポートできる。2つのピンを設けることによってインターラプトの待ち時間(latency)を小さくできる。
−IRQが生じた場合、コアはARM7のシステム内と同じようにこのインターラプトを取り扱うように、IRQモードに進む。
−SIRQが生じた場合、コアはIRQハンドラーに進み、ここでSMI命令がコアをモニタモードに分岐させ、非安全コンテクストをセーブし、次に安全IRQハンドラーに進み、安全インターラプトを取り扱う。
−SIRQが生じた場合、コアは安全IRQハンドラーに進む。コアは安全ワールドを離れない。
−IRQが生じた場合、コアは安全IRQハンドラーに進み、ここでSMI命令がコアをモニタモード(ここで安全コンテクストがセーブされる)に分岐させ、次に非安全IRQハンドラーに進み、この非安全インターラプトを取り扱う。
図13A参照:
1.スケジュールがスレッド1を開始する。
−Sビットをセットする。
−安全アプリケーションが作動中に例外が生じた場合でも、非安全コンテクストを失うことができないようにスタック内(最終的には他のレジスタ内)に少なくともR14_monおよびSPSR_monをセーブする。
−ローンチする新しいスレッド:安全スレッド1があるかどうかをチェックする。(スレッドIDテーブルを介し)手順はスレッド1が安全ワールド内でアクティブであることを表示する。
−次に安全ユーザーモードで安全アプリケーションがスタートでき、IRQ/FIQを再イネーブルする。
5.コアはR14_IRQに現在のPCを記憶し、SPRS_IRQにCPSRを記憶する。IRQハンドラーはこれが非安全インターラプトであることを検出し、SMIを実行し、適当なパラメータによりモニタモードに入る。
6.安全コンテクストをセーブしなければならず、前の非安全コンテクストをリストアする。モニタハンドラーはCPSRを読み出すことにより、SMIがどこから来たものであるかを知る。モニタハンドラーはIRQモードに進み、R14_IRQ/SPSR_IRQを読み出し、安全なコンテクストを適当にセーブすることもできる。更に、モニタハンドラーはIRQルーチンが終了した場合、リストアしなければならない非安全コンテクストをこれら同じレジスタにセーブすることもできる。
7.IRQハンドラーはIRQをサービスし、次に非安全ワールドでスレッド1へ制御を戻す。SPRS_IRQおよびR14_IRQをCPSRおよびPCにリストアすることにより、次にコアはインターラプトされたSMI命令をポイントする。
9.モニタハンドラーはこのスレッドが前にインターラプトされていると判断し、スレッド1のコンテクストをリストアする。次に、ユーザーモードで安全スレッド1に分岐し、インターラプトされた命令をポイントする。
10.終了するまで安全スレッド1が作動し、モニタモード(専用SMI)で(安全からのリターン)機能に分岐する。
11.(安全からのリターン)機能は次のタスクを行う。
−安全スレッド1が終了したことを表示する(すなわちスレッドIDテーブルの場合、テーブルからスレッド1を除く)。
−スタックから非安全コンテクストをリストアし、必要なレジスタをフラッシングし、非安全ワールドへのリターンが一旦なされた場合に、安全データを読み出しできないようにする。
−SUBS命令により非安全ワールドに戻るように分岐し、(リストアされたR14_monからの)PCおよび(SPRS_monからの)CPSRをリストアする。よって、非安全ワールド内のリターンポイントはスレッド1において前に実行されたSMIに続く命令となるはずである。
12.エンドまでスレッド1が実行され、スケジューラにハンドを戻す。
図13B参照:
1.スケジュールがスレッド1を開始する。
2.安全スレッド1の実行中にSIRQが生じる。
3.コアは直接irqモードにジャンプし、R14_irqに現在のPCを記憶し、SPSR_irqにCPSRを記憶する。次にIRQをディスエーブルする。IRQハンドラーはこれがSIRQであることを検出し、適当なパラメータによりSMI命令を実行する。
4.一旦モニタモードになると、非安全コンテクストをセーブしなければならず、次にコアは安全IRQハンドラーに進む。
5.安全IRQハンドラーはSIRQサービスルーチンをサービスし、次に適当なパラメータを有するSMIを使ってモニタモードハンドラーに制御を戻す。
6.モニタハンドラーはSUBS命令が非安全コンテクストをリストアし、よってSUBS命令がコアを非安全ワールドに戻し、インターラプトされたIRQハンドラーをレジュームする。
7.IRQハンドラーは次にSUBSを実行することにより、非安全スレッドに戻ることができる。
8.スレッド1はエンドまで実行され、次に制御をスケジューラに戻す。
図12の手順により、入れ子状のインターラプトの場合、SIRQイベントを再作成する必要はないが、安全インターラプトが実行される保証はない。
仮想アドレスの見地から物理的ベクトルテーブルは単一ベクトルテーブルとして見えるが、少なくとも2つの物理的ベクトルテーブルが維持される。一方のテーブルは非安全メモリ内の非安全ワールドのためのものであり、一方は(非安全ワールドからアクセスできない)安全メモリ内の安全ワールドのためのものである。安全ワールドおよび非安全ワールド内に使用される仮想−物理メモリの異なるマッピングによって同じ仮想的メモリアドレスが効果的に物理メモリ内に記憶されている異なるベクトルテーブルにアクセスできるようになる。モニタモードは物理メモリ内の第3ベクトルテーブルを提供するのに常にフラットなメモリマッピングを使用できる。
図1を参照して説明したように、データ処理装置は特にTCM36、キャッシュ38、ROM44、スレーブデバイスのメモリおよび外部メモリ56を含むメモリを有する。例えば図37を参照して説明したように、メモリは安全メモリと非安全メモリに分割されている。製造時にメモリの安全メモリ領域と非安全メモリ領域との間には一般に物理的な区別はないが、その代わり、これら領域は安全ドメインで作動しているときのデータ処理装置の安全オペレーティングシステムによって定められる。従って、メモリデバイスの物理的部分を安全メモリとして割り当て、任意の物理部分を非安全メモリとして割り当てできる。
−Sビット:専用CP15レジスタに含まれる安全ステートビット。
−「安全/非安全ステート」。このステートはSビットの値によって定められ、このステートはコアが安全ワールドにアクセスできる(安全ステートとなっており、すなわちS=1となっているとき)のか、または非安全ワールドだけに制限されている(S=0)のかのいずれかを表示する。モニタモード(更に参照)は、Sビットステータスを無効にすることに留意されたい。
−「安全ワールド」は安全コードを実行するときにしかアクセスできないすべてのハードウェア/ソフトウェア(コア、メモリ....)をグループ分けする。
−モニタモード:安全ステートと非安全ステートとの間でコアを切り換える役割を果たす新しいモードである。
−コアは常に非安全ワールドにアクセスできる。
−コアは安全ステートまたはモニタモードになっているときにしか、安全ワールドにアクセスできない。
−SMI:ソフトウェアモニタインターラプト:専用SMI例外ベクトルによりコアがモニタモードに入るようにする新しい命令である。「スレッドID」は(OSによって制御される)各スレッドに関連した識別子である。OSが非安全ワールドで作動する一部のタイプのOSに対し、安全機能がコールされるごとに現在のスレッドIDをパラメータとして送り、安全機能と、そのコールしている非安全アプリケーションとをリンクしなければならない。従って、安全ワールドはマルチスレッドをサポートできる。
−安全インターラプトは安全周辺機器が発生したインターラプトを定める。
カーボン(Carbon)コアの概観
本技術を使用するプロセッサに対して本明細書で使用する用語であるカーボンアーキテクチャの概念は、2つのワールド、すなわち安全ワールドと非安全ワールドとに分離することから成る。安全ワールドは非安全ワールドにどんなデータもリークしてはならない。
カーボンの新しい特徴
安全または非安全ステート(Sビット)
カーボンコアの主な1つの特徴は、Sビットが存在していることであり、このSビットはコアが安全(S=1)ステートとなっているか、または非安全(S=0)ステートとなっているかのいずれかを表示する。安全ステートとなっているとき、コアは安全ワールドまたは非安全ワールド内のどのデータにもアクセスできる。非安全ステートとなっているときにコアは非安全ワールドだけに限定される。
カーボンシステムの別の重要な特徴は、新しいモード、モニタモードを作成したことである。このモードは安全ステートと非安全ステートとの間のコアの切り換えを制御するのに使用される。このモニタモードは常に安全モードと見なされる。すなわちSビットの値がどんな値であってもコアがモニタモードになっていると、コアは常に外部ワールドへの安全特権アクセスを実行する。
・すべてのインターラプトをマスクする。
・すべてのメモリ例外を無視するか、またはこれら例外によって致命的例外が生じる。
・無定義/Undefined/SWI/SMIを無視するか、またはこれらによって致命的例外が生じる。
この提案は、現在のARM命令セットに1つの新しい命令を追加しなければならない。
前のパラグラフで説明したように、コアでは1つの新しいモード、すなわちモニタモードしか追加されない。現在のすべてのモードは利用できるままであり、安全ステートおよび非安全ステートで存在する。
実際にカーボンユーザーは図21に示された構造を見ることになる。
この実施例は、安全ワールドと非安全ワールドとが同じレジスタバンクを共用することを提案するものである。このことは、あるワールドからモニタモードを通して別のワールドに切り換わるときに、システムモニタは最初にワールドコンテクストをセーブし、第2のワールド内にコンテクストを作成(またはリストア)しなければならないことを意味する。
例外
安全インターラプト
現在の解決案
現在のコア内と同じインターラプトピン、例えばIRQおよびFIQを維持することが現在提案されている。(本明細書の後半で定義する)例外トラップマスクレジスタに関連し、システムが異なる種類のインターラプトを実行し、取り扱いできるようにする十分なフレキシビリティがなければならない。
次のようにVIC(ベクトル化されたインターラプトコントローラ)を強化できる。このVICは各ベクトル化されたアドレスに関連する1つの安全情報ビットを含むことができる。このビットはモニタまたは安全特権モードでしかプログラムできない。このビットは当該インターラプトを安全として取り扱い、従って、安全側で取り扱うべきかどうかを表示する。
Carbonのフレキシビリティを改善するためにCP15に新しいレジスタ、すなわち例外トラップマスクを追加する。このレジスタは次のビットを含む。
−ビット0:Undef例外 (非安全ステート)
−ビット1:SWI例外 (非安全ステート)
−ビット2:プリフェッチアボート例外 (非安全ステート)
−ビット3:データアボート例外 (非安全ステート)
−ビット4:IRQ例外 (非安全ステート)
−ビット5:FIQ例外 (非安全ステート)
−ビット6:SMI例外 (非安全ステート/安全ステートの双方)
−ビット16:Undef例外 (非安全ステート)
−ビット17:SWI例外 (非安全ステート)
−ビット18:プリフェッチアボート例外 (非安全ステート)
−ビット19:データアボート例外 (非安全ステート)
−ビット20:IRQ例外 (非安全ステート)
−ビット21:FIQ例外 (非安全ステート)
別個の安全ワールドと非安全ワールドとが生じるので、別個の安全例外別個の表と非安全例外ベクトルの表も必要となる。
更にモニタは一部の例外をトラップし得るので、モニタ専用の第3の例外ベクトルの表も必要となる。
−1つのベクトルは非安全ステートで生じた例外用のベクトルであり、
−1つのベクトルは安全ステートで生じた例外用のベクトルである。
ステートを切り換える際に、モニタモードはそのモニタスタックに最初のステートのコンテクストをセーブし、モニタスタックからの第2のステートのコンテクストをリストアしなければならない。
−モニタモードに入る。
−Sビットをセットする。
−スーパーバイザーモードに切り換え、 −モニタスタックにスーパーバイザーレジスタをセーブする(当然ながらスーパーバイザーモードはモニタスタックポインタにアクセスしなければならないが、これは例えば共通レジスタ(R0〜R8)を使用することにより容易に行うことができる。
−システムモードに切り換え、 −モニタスタックにレジスタ(ユーザーモードと同じ)をセーブする。
−すべてのモードに対してモニタスタック上のIRQレジスタ....等々。
−すべてのモードのすべてのプライベートレジスタを一旦セーブすると、簡単なMSR命令によりモニタモードへ戻る(=CPSRモードフィールド内にモニタ値を単に書き込む)。
−モニタが自己のスタックに他のモードのプライベートレジスタをセーブできるようにする新しい命令を加えること。
−モニタを新しい「ステート」として実行すること。すなわち(適当なアクセス権を有するように)モニタステートとなり、IRQ(または他の)モードとなり、IRQ(または他の)プライベートレジスタを見ることができるようにすること。
1.スレッド1は非安全ワールドで作動中である(Sビット=0)。このスレッドは安全機能=>SMI命令を実行しなければならない。
2.SMI命令は非安全SMIベクトルを通してコアを入力モードにする。
非安全モードのPCおよびCPSRをセーブするようにLR_monおよびSPSR_monを使用する。
この段階ではSビットは無変更のままであるが、システムはそのときに安全ステートにある。
モニタカーネルはモニタに非安全コンテクストをセーブする。
モニタカーネルはLR_monおよびSPSR_monもプッシュする。
次にモニタカーネルはCP15レジスタに書き込むことによって「S」ビットを変更する。
この実施例ではモニタカーネルは(例えばスレッドIDテーブルを更新することにより)安全ワールドで「安全スレッド1」をスタートするトラックを維持する。
最後に、モニタカーネルはモニタモードから出て安全スーパーモードに切り換わる。「LR_monおよびSPSR_monを更新した後のMOVS命令」
4.安全ユーザーモードで安全機能を実行する。一旦終了すると、安全機能は適当なSWIを実行することによって「出口」機能をコールする。
5.SWI命令は専用SWIベクトルを通してコアを安全SVCモードにし、次に専用SWIベクトルは「出口」機能を実行する。この「出口」機能はモニタモードに戻るように切り換わるよう、「SMI」により終了する。
6.SMI命令は専用安全SMIベクトルを通してコアをモニタモードにする。
安全svcモードのPCおよびCPSRをセーブするのにLR_monおよびSPSR_monを使用する。
Sビットは無変更のままである(すなわち安全ステート)。
モニタカーネルは安全スレッド1が終了した事実を登録する(スレッドIDテーブルから安全スレッド1のIDを除く)。
次にモニタカーネルはCP15レジスタに書き込みをすることにより「S」ビットを変更し、非安全ステートに戻る。
モニタカーネルはモニタスタックから非安全コンテクストをリストアする。
モニタカーネルはステップ2で前にセーブしたLR_monおよびCPSR_monもロードする。
最後に、モニタカーネルはSUBSによりモニタモードから出る。これによってコアは命令時に非安全ユーザーモードに戻る。
7.通常、スレッド1がレジュームできる。
ブート手順は次の特徴を尊重しなければならない。
−遺産OSとのコンパチビリティを維持すること。
−システムのセキュリティを保証するように、最も特権性のあるモードでブートすること。この結果、カーボンコアは安全スーパーバイザーモードでブートすることになる。
次に、異なるシステムは次のようになる。
−遺産OSを作動させたいシステムに対してはSビットを考慮せず、コアはスーパーバイザーモードでブートする
−カーボンの特性を使用したいシステムに対しては(潜在的にモニタモードにスワップした後に)コアはシステム内のすべての安全保護を構成できるようにしなければならない安全特権モードでブートする。
2)MMU1のマイクロTLB内で不一致
3)MMU1のメインTLB内で不一致
ページテーブル1のベースアドレス=8000IA[PA=10000]
4)MMU1内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
IA=8003を発生する。
5)MMU2のマイクロTLB内で不一致
6)MMU2のメインTLB内で不一致
ページテーブル2のベースアドレス=12000PA
7)MMU2内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
PA=12008を発生する。
「8000IA=10000PA」がページテーブルデータとしてリターンされる。
9)MMU2のマイクロTLB内に記憶される。
10)MMU2内のマイクロTLBが一致を有し、
PA=10003を発生する。
「3000VA=5000IA」がページテーブルデータとしてリターンされる。
11)MMU1のメインTLB内に記憶される。
12)MMU1のマイクロTLB内に記憶される。
13)MMU1内のマイクロTLBが一致を有し、
IA=5000を発生しデータアクセスを実行する。
14)MMU2のマイクロTLB内で不一致
15)MMU2のメインTLB内で不一致
16)MMU2内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
PA=12005を発生する。
「5000IA=7000PA」がページテーブルデータとしてリターンされる。
18)MMU2のマイクロTLB内に記憶される。
19)MMU2内のマイクロTLBが一致を有し、
PA=7000を発生し、データアクセスを実行する。
20)物理アドレス7000におけるデータがコアにリターンされる。
1)コアがVA=3001を発生する。
2)MMU1のマイクロTLB内で一致があり、MMU2にリクエストIA5001が発生される。
3)MMU2のマイクロTLB内で一致があり、メモリへPA7001のためのリクエストが発生される。
4)PA7001におけるデータがコアにリターンされる。
2)MMU1のマイクロTLBおよびメインTLB内で不一致。
ページテーブル1のベースアドレス=8000IA [PA=10000]
3)MMU1内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
IA=8003を発生する。
4)MMU2のマイクロTLBおよびメインTLB内でIA8003が不一致。
ページテーブル2のベースアドレス=12000PA
5)MMU2内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
PA=12008を発生する。
「8000IA=10000PA」がページテーブルデータとしてリターンされる。
7)MMU2内のマイクロTLBはステップ(3)カラPA10003までリクエストを変換でき、フェッチを発生する。
ページテーブルデータとして「3000VA=5000IA」がリターンされる。
注: この変換はMMU2によって一時記憶装置に保持されるが、TLBに直接記憶されることはない。
8)MMU2の変換テーブルウォークロジックがIA=5000に対するMMU2にリクエストを発生する。
9)MMU2のマイクロTLBおよびメインTLB内でIA5000が不一致。
10)MMU2内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
PA=12005を発生する。
ページテーブルデータとして「5000IA=7000PA」がリターンされる。
12a)MMU2がメモリへPA=7000アクセスを発生する。
12b)MMU1が「3000VA=5000IA」と「5000IA=7000PA」デスクリプタを組み合わせ、「3000VA=7000PA」デスクリプタを与え、このデスクリプタはmMU1のメインTLBおよびマイクロTLBに記憶される。
13)PA7000におけるデータはコアへリターンされる。
1)コアがVA=3001を発生する。
2)MMU1のマイクロTLB内で一致があり、MMU1がPA7001に対するリクエストを発生する。
4)PA7001におけるデータがコアにリターンされる。
テーブル2は0x00000000における1Mbを0x02000000にマッピングする。
ここで、組み合わせ変換を行うには2つのサイズのうちの小さい方を使用しなければならないので、組み合わせデスクリプタは次のようになる。
0x02081000に対する0x40003000における4Kbとなる。
テーブル1は0xc0000000における1Mbを0x00000000にマッピングする。
テーブル2は0x00042000における4Kbを0x02042000にマッピングする。
次にコアからのアドレス0xc0042010におけるルックアップは次のマッピングを与える。
0x02042000に対する0xc0042000における4Kb
すなわち組み合わせマッピングに対して常に2つのサイズのうちの小さい方を使用する。
侵襲的、かつ観測可能な(トレース)デバッグを別々に制御することにより;
安全ワールドのみ、または安全ワールド全体においてデバッグが安全ユーザーモードに入ることを認めることにより;
安全ユーザーモードにおけるデバッグだけを認め、更にスレッドID(アプリケーション実行中)を考慮することにより、モニタ機能に入ることを制限せんとするものである。
スキャンチェーンおよびJTAGに関する更なる細部を下記に示す。
どの集積回路(IC)も2つの種類のロジックから成る。
・AND、OR、INVゲートのような、組み合わせロジックセル。かかるゲートまたはかかるゲートの組み合わせは1つまたは数個の入力信号に従ってブール式を計算するのに使用される。
・LATCH、FLIP−FLOPのようなレジスタロジックセル。かかるセルは任意の信号値を記憶するのに使用される。図62は正のエッジでトリガーされるFLIP−FLOPの図を示す。
テストまたはデバッグ目的のためには、レジスタロジックセルの機能アクセスをバイパスさせ、レジスタロジックセルのコンテンツに直接アクセスすることが必要である。従って、図63に示されるように、レジスタセルはスキャンチェーンセル内に集積化されている。
図64に示されるように、スキャンチェーンにはすべてのスキャンチェーンセルがチェーン状となっている。
機能モードではSEはクリアされ、通常どおりすべてのレジスタセルにアクセスでき、レジスタセルは回路の他のロジックと相互作用できる。テストまたはデバッグモードではSEはセットされ、スキャンチェーン内ですべてのレジスタは互いにチェーン状となっている。第1スキャンチェーンセルからデータがくることができ、各クロックサイクルのカデンスにおいて、他のスキャンチェーンセルを通してデータをシフトできる。レジスタのコンテンツを見るためにデータをシフトすることもできる。
いくつかのスキャンチェーンを取り扱うのにTAPコントローラが使用される。このTAPコントローラは特定のスキャンチェーンを選択でき、「スキャンイン」および「スキャンアウト」信号を特定のスキャンチェーンに接続する。次に、データをチェーンへスキャン入力し、シフトし、スキャンアウトすることができる。TAPコントローラはJTAGオートインターフェースにより外部から制御できる。図65はTAPコントローラを略図で示す。
セキュリティの理由から、デバッグまたはテストモードでの一部のレジスタに対してスキャンチェーンによりアクセスできない場合がある。JADI(JTAGアクセスディスエーブル)と称される新しい入力信号は、集積回路におけるスキャンチェーンの構造を変えることなく、全スキャンチェーンから1つのスキャンチェーンセルをダイナミックまたはスタティックに除くことを認めることができる。図66AおよびBはこの入力信号を略図で示す。
ボードステージでの侵襲的デバッグ
JSDAENピンが接続されていないときのボードステージでは、ブートセッションをスタートさせる前のどの場所でも、デバッグをイネーブルする能力がある。同様に、安全スーパーバイザーモードにある場合、同様の権利を有する。
SMIベクトルトラッピングイネーブル
安全データアボートベクトルトラッピングイネーブル
安全プリフェッチアボートベクトルトラッピングイネーブル
安全無定義ベクトルトラッピングイネーブル
JSDAENが接続され、デバッグが非安全ワールドに制限されている製造ステージでは、安全スーパーバイザーが判断しないかぎり、図71Bに示されたテーブルは何が生じるかを示す。この場合、SMIは常に自律命令と見なすべきであるので、デバッグステートに入る前に安全機能は常に終了される。
非安全ワールドだけでは外部デバッグリクエストまたは内部デバッグリクエストが考慮される。安全ワールドにある間にEDBGRQ(外部デバッグリクエスト)がアサートされた場合、安全機能が一旦終了すれば、コアはデバッグホールトモードに入り、非安全ワールドでコアがリターンされる。
安全デバッグがイネーブルされなければ、安全ワールドに入るのにSビットを変えることはできない。
デバッグが安全スーパーバイザーモードでしか許可されていない場合、モードビットを変えることはできない。
安全デバッグを制御する専用ビットを変えることはできない。
(システム速度アクセスが)SMIにロードされ、SMIが実行された場合、安全機能が完全に実行されたときにしか、コアはデバッグステートに再進入できない。
モニタモードに入る前に:
非安全ワールドに限りブレークポイントおよびウォッチポイントを考慮する。ビットSがセットされれば、ブレークポイント/ウォッチポイントをバイパスする。ブレークポイント/ウォッチポイントは安全メモリでは効果がないので、セキュリティの問題がないMCR/MRC(CP14)によってウォッチポイントユニットにもアクセスできることに留意されたい。
一旦モニタモード(非安全アボートモード)となると、
非安全アボートハンドラーは非安全ワールドをダンプでき、安全バンク状レジスタだけでなく安全メモリでビジビリティを有しない。
アトミックSMI命令により安全機能を実行する。
安全ワールドへの進入を強制するためにSビットを変更できない。
安全スーパーバイザーモードでしかデバッグが許可されていない場合、モードビットを変更できない。
非安全ワールドではコアはそのときの命令を終了し、即座に(ホールトモードで)デバッグステートに入る。
・D_s_アボートビットはデバッグが安全ワールドでイネーブルされたとき、およびデバッグがホールトデバッグモードで構成されたときに限りセットすべきである。モニタデバッグモードではこのビットをセットしてはならない。安全ワールドにおけるデバッグがディスエーブルされると、このビットはどんな値であっても効果がない。
・P_s_アボートビットはD_s_アボートビットと同じである。
・S_undefビットはデバッグが安全ワールドでイネーブルされているときに限りセットすべきである。安全ワールドにおけるデバッグがディスエーブルされている場合、このビットはどんな値であっても効果がない。
・SMIビットは安全ワールドにおいてデバッグがイネーブルされているときに限りセットすべきである。安全ワールドにおけるデバッグがディスエーブルされている場合、このビットはどんな値であっても効果がない。
・FIQ、IRQ、D_アボート、P_アボート、SWI、undefビットは非安全例外に対応するので、これらビットは安全ワールドにおけるデバッグがディスエーブルされても有効である。モニタモードではD_アボートおよびP_アボートはハイにアサートすべきでない。
・リセットビット:リセットが生じたときに安全ワールドが入るので、このビットは安全ワールドにおけるデバッグがイネーブルされたときにしか有効でなく、そうでない場合は効果がない。
Claims (47)
- 複数のモードおよび複数のドメインで作動できるプロセッサを備え、前記複数のドメインが安全ドメインまたは非安全ドメインを含み、前記複数のモードが、
前記安全ドメインにおけるモードである少なくとも1つの安全モードと、
前記非安全ドメインにおけるモードである少なくとも1つの非安全モードとを含み、
前記プロセッサが安全モードでプログラムを実行しているときは、前記プロセッサが非安全モードで実行中にアクセスできない安全データにアクセスし、
前記プロセッサが例外ハンドラーを使用する例外処理をトリガーするための1つ以上の例外条件に応答自在であり、前記プロセッサが前記安全ドメインで作動しているか、または非安全ドメインで作動しているかに応じて、前記プロセッサが複数の可能な例外ハンドラーから前記例外ハンドラーを選択するようになっている、データを処理するための装置。 - 前記例外のうちの少なくとも1つが非安全モードで作動する非安全例外ハンドラーまたは安全モードで作動する安全例外ハンドラーのうちの選択可能な1つによって取り扱われる選択可能な例外であり、
前記例外のうちの少なくとも1つが安全モードで作動する安全例外ハンドラーによって取り扱われる専用安全例外である請求項1記載の装置。 - 必要なときにトリガーされるドメインの変化により、非安全モードで作動する非安全例外ハンドラーまたは安全モードで作動する安全例外ハンドラーのいずれかをトリガーするように、前記1つ以上の例外条件をプログラム可能に構成できる請求項1記載の装置。
- 専用安全例外信号入力および非安全例外信号入力における信号の1つによって安全例外をトリガーする、前記請求項のいずれかに記載の装置。
- 安全例外と非安全例外との間で共用される例外信号入力と、安全例外ハンドラーまたは非安全例外ハンドラーとをトリガーするかどうかを制御するよう、前記例外信号入力と協働する別の入力信号とを有する、請求項1、2および3のいずれかに記載の装置。
- 前記安全例外ハンドラーが前記安全モードで作動する安全オペレーティングシステムの一部である、前記請求項のいずれかに記載の装置。
- 前記非安全例外ハンドラーが前記非安全モードで作動する非安全オペレーティングシステムの一部である、前記請求項のいずれかに記載の装置。
- 前記プロセッサがモニタモードでも作動でき、例外を取り扱うのに必要とされる安全モードと非安全モードとの間の切り替えが前記モニタモードを介して行われ、前記安全モードと前記非安全モードとの間の切り替えを管理するよう、前記プロセッサがモニタプログラムを実行するための前記モニタモードで少なくとも部分的に作動できる前記請求項のいずれかに記載の装置。
- 例外を取り扱うための安全モードと非安全モードとを切り替えるときに、前記モニタプログラムがプロセッサのステータスを定めるコンテクストデータをセーブし、レストアするように作動する請求項8記載の装置。
- 前記プロセッサがレジスタバンクを含み、前記安全モードから前記非安全モードに切り替えるときに前記モニタプログラムが前記安全モードと前記非安全モードとの間で共用される前記レジスタバンクのうちの少なくとも一部をフラッシュするように作動し、よって前記レジスタバンク内に保持されていた非安全データが前記安全モードから前記モニタプログラムによって許可されるモード以外の前記非安全モードに移行できるようになっている請求項8および9のいずれかに記載の装置。
- 前記例外条件が、
安全インターラプト信号例外、
モード切り替えソフトウェアインターラプト信号、
リセット例外、
インターラプト信号例外、
ソフトウェアインターラプト信号、
無定義命令例外、
プリフェッチアボート例外、
データアボート例外、
高速インターラプト信号例外
のうちの1つ以上を含む、前の請求項のいずれかに記載の装置。 - 前記プロセッサが前記例外条件に関連し、前記例外条件のためのアクティーブ例外ベクトルテーブル内に記憶された例外ベクトル値に応じ、例外ハンドラーを選択するための例外条件に応答自在であり、
前記アクティーブ例外ベクトルテーブルが複数の例外ベクトルテーブルうちの1つである請求項1記載の装置。 - 前記複数の例外ベクトルテーブルが前記安全モードで選択可能な安全例外ベクトルテーブルと、前記非安全モードで選択可能な非安全例外ベクトルとを含む請求項12記載の装置。
- 前記プロセッサがモニタモードでも作動でき、前記複数の例外ベクトルの安全モードと非安全モードとの切り替えが前記モニタモードを介して実行される請求項12および13のいずれかに記載の装置。
- 前記複数の例外ベクトルテーブルがモニタモードの例外ベクトルテーブルを含む請求項14記載の装置。
- 前記モニタモード例外ベクトルテーブルにより前記例外のうちのどの例外を取り扱うべきかを指定する1つ以上のパラメータに前記プロセッサが応答自在である請求項15記載の装置。
- 前記モニタモードのベクトルテーブルが前記例外条件の前記アクティーブベクトルテーブルであることを前記1つ以上のパラメータが指定しない場合、前記安全ベクトルテーブルが前記安全モードにおける前記アクティーブベクトルテーブルであり、前記非安全ベクトルテーブルが前記非安全モードにおける前記アクティーブベクトルテーブルである請求項13および16のいずれかに記載の装置。
- 前記パラメータのうちの少なくとも1つが例外トラップマスク内に記憶されている請求項16記載の装置。
- 前記プロセッサが前記モニタモードであるときに前記例外制御レジスタが書き込み自在であり、前記プロセッサが前記非安全ドメイン内にない場合、前記例外トラップマスクレジスタが書き込み不能である請求項18記載の装置。
- 前記プロセッサが安全モードであるときに前記安全例外ベクトルテーブルが書き込み自在であり、前記プロセッサが非安全モードとなっているときに前記安全例外ベクトルテーブルが書き込み不能である請求項13記載の装置。
- 安全オペレーティングシステムの一部である安全例外ハンドラーが前記安全モード使用される請求項13記載の装置。
- 非安全オペレーティングシステムの一部である非安全例外ハンドラーが前記非安全モード使用される請求項13記載の装置。
- 複数のベクトルテーブルベースアドレスポインタレジスタを備え、各レジスタが前記複数の例外ベクトルテーブルのうちの対応する1つのためのそれぞれのベースアドレス値を記憶する請求項12〜22のうちのいずれかに記載の装置。
- 複数のモードおよび安全ドメインまたは非安全ドメインを含む複数のドメインで作動できるプロセッサにより実行するステップを備え、前記複数のモードが、
前記安全ドメインにおけるモードである少なくとも1つの安全モードと、
前記非安全ドメインにおけるモードである少なくとも1つの非安全モードとを含み、
前記プロセッサが安全モードでプログラムを実行しているときは、前記プロセッサが非安全モードで実行中にアクセスできない安全データにアクセスし、
1つ以上の例外条件に応答して、例外ハンドラーを使用して例外処理をトリガーするステップを更に備え、前記プロセッサが前記安全ドメインで作動しているか、または非安全ドメインで作動しているかに応じて、前記プロセッサが複数の可能な例外ハンドラーから前記例外ハンドラーを選択するようになっている、データを処理するための方法。 - 前記例外のうちの少なくとも1つが非安全モードで作動する非安全例外ハンドラーまたは安全モードで作動する安全例外ハンドラーのうちの選択可能な1つによって取り扱われる選択可能な例外であり、
前記例外のうちの少なくとも1つが安全モードで作動する安全例外ハンドラーによって取り扱われる専用安全例外である請求項24記載の方法。 - 必要なときにトリガーされるドメインの変化により、非安全モードで作動する非安全例外ハンドラーまたは安全モードで作動する安全例外ハンドラーのいずれかをトリガーするように、前記1つ以上の例外条件をプログラム可能に構成できる請求項24記載の方法。
- 専用安全例外信号入力および非安全例外信号入力を有する、請求項24、25および26記載の方法。
- 安全例外と非安全例外との間で共用される例外信号入力と、安全例外ハンドラーまたは非安全例外ハンドラーとをトリガーするかどうかを制御するよう、前記例外信号入力と協働する別の入力信号とを有する、請求項24、25および26記載の方法。
- 前記安全例外ハンドラーが前記安全モードで作動する安全オペレーティングシステムの一部である、請求項24および28のいずれかに記載の方法。
- 前記非安全例外ハンドラーが前記非安全モードで作動する非安全オペレーティングシステムの一部である、請求項24〜29のいずれかに記載の方法。
- 前記プロセッサがモニタモードでも作動でき、例外を取り扱うのに必要とされる安全モードと非安全モードとの間の切り替えが前記モニタモードを介して行われ、前記安全モードと前記非安全モードとの間の切り替えを管理するよう、前記プロセッサがモニタプログラムを実行するための前記モニタモードで少なくとも部分的に作動できる請求項24〜30のいずれかに記載の方法。
- 例外を取り扱うための安全モードと非安全モードとを切り替えるときに、前記モニタプログラムがプロセッサのステータスを定めるコンテクストデータをセーブし、レストアするように作動する請求項31記載の方法。
- 前記プロセッサがレジスタバンクを含み、前記安全モードから前記非安全モードに切り替えるときに前記モニタプログラムが前記安全モードと前記非安全モードとの間で共用される前記レジスタバンクのうちの少なくとも一部をフラッシュするように作動し、よって前記レジスタバンク内に保持されていた非安全データが前記安全モードから前記モニタプログラムによって許可されるモード以外の前記非安全モードに移行できるようになっている請求項31および32のいずれかに記載の方法。
- 前記例外条件が、
安全インターラプト信号例外、
モード切り替えソフトウェアインターラプト信号、
リセット例外、
インターラプト信号例外、
ソフトウェアインターラプト信号、
無定義命令例外、
プリフェッチアボート例外、
データアボート例外、
高速インターラプト信号例外
のうちの1つ以上を含む、請求項24〜33のいずれかに記載の方法。 - 前記プロセッサが前記例外条件に関連し、前記例外条件のためのアクティーブ例外ベクトルテーブル内に記憶された例外ベクトル値に応じ、例外ハンドラーを選択するための例外条件に応答自在であり、
前記アクティーブ例外ベクトルテーブルが複数の例外ベクトルテーブルのうちの1つである請求項24記載の方法。 - 前記複数の例外ベクトルテーブルが前記安全モードで選択可能な安全例外ベクトルテーブルと、前記非安全モードで選択可能な非安全例外ベクトルとを含む請求項35記載の方法。
- 前記プロセッサがモニタモードでも作動でき、前記複数の例外ベクトルの安全モードと非安全モードとの切り替えが前記モニタモードを介して実行される請求項35および36のいずれかに記載の方法。
- 前記複数の例外ベクトルテーブルがモニタモードの例外ベクトルテーブルを含む請求項37記載の方法。
- 前記モニタモード例外ベクトルテーブルにより前記例外のうちのどの例外を取り扱うべきかを指定する1つ以上のパラメータに前記プロセッサが応答自在である請求項37記載の方法。
- 前記モニタモードのベクトルテーブルが前記例外条件の前記アクティーブベクトルテーブルであることを前記1つ以上のパラメータが指定しない場合、前記安全ベクトルテーブルが前記安全モードにおける前記アクティーブベクトルテーブルであり、前記非安全ベクトルテーブルが前記非安全モードにおける前記アクティーブベクトルテーブルである請求項36および39のいずれかに記載の方法。
- 前記パラメータのうちの少なくとも1つが例外トラップマスク内に記憶されている請求項39記載の方法。
- 前記プロセッサが前記モニタモードであるときに前記例外制御レジスタが書き込み自在であり、前記プロセッサが前記非安全ドメイン内にない場合、前記例外トラップマスクレジスタが書き込み不能である請求項41記載の方法。
- 前記プロセッサが安全モードであるときに前記安全例外ベクトルテーブルが書き込み自在であり、前記プロセッサが非安全モードとなっているときに前記安全例外ベクトルテーブルが書き込み不能である請求項36記載の方法。
- 安全オペレーティングシステムの一部である安全例外ハンドラーが前記安全モード使用される請求項36記載の方法。
- 非安全オペレーティングシステムの一部である非安全例外ハンドラーが前記非安全モード使用される請求項36記載の方法。
- 複数のベクトルテーブルベースアドレスポインタレジスタを備え、各レジスタが前記複数の例外ベクトルテーブルのうちの対応する1つのためのそれぞれのベースアドレス値を記憶する請求項35〜45のうちのいずれかに記載の方法。
- 請求項24〜46のいずれかに記載の方法に従いデータ処理装置を制御するようになっているコンピュータプログラムを有するコンピュータプログラム製品。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0226905A GB0226905D0 (en) | 2002-11-18 | 2002-11-18 | Exception tyres within a secure processing system |
GB0226902A GB0226902D0 (en) | 2002-11-18 | 2002-11-18 | Exception vector tables in a secure system |
GB0303449A GB0303449D0 (en) | 2002-11-18 | 2003-02-14 | Task following between multiple operating systems |
PCT/GB2003/004621 WO2004046916A2 (en) | 2002-11-18 | 2003-10-27 | Exception types within a secure processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006506752A true JP2006506752A (ja) | 2006-02-23 |
JP4447471B2 JP4447471B2 (ja) | 2010-04-07 |
Family
ID=32329548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004570294A Expired - Lifetime JP4447471B2 (ja) | 2002-11-18 | 2003-10-27 | 安全処理システムにおける例外タイプ |
Country Status (8)
Country | Link |
---|---|
US (2) | US7661105B2 (ja) |
EP (1) | EP1563376B1 (ja) |
JP (1) | JP4447471B2 (ja) |
KR (1) | KR100941104B1 (ja) |
AU (1) | AU2003278347A1 (ja) |
DE (1) | DE60304602T2 (ja) |
GB (1) | GB2410348B (ja) |
WO (1) | WO2004046916A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015530672A (ja) * | 2012-10-01 | 2015-10-15 | エイアールエム リミテッド | 安全なドメイン及びより安全性の低いドメインを有するデータ処理装置における例外処理 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2005115083A (ru) * | 2002-11-18 | 2006-01-20 | Арм Лимитед (Gb) | Переключение процессора между защищенным и незащищенным режимами |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
GB2410348B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Exception types within a secure processing system |
CN1886712B (zh) * | 2003-11-28 | 2010-09-08 | 松下电器产业株式会社 | 数据处理装置 |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
KR100664922B1 (ko) * | 2004-08-21 | 2007-01-04 | 삼성전자주식회사 | 자바 보안 기능 개선 방법 |
US7480755B2 (en) * | 2004-12-08 | 2009-01-20 | Hewlett-Packard Development Company, L.P. | Trap mode register |
CN101233525A (zh) * | 2005-05-26 | 2008-07-30 | 松下电器产业株式会社 | 数据处理装置 |
CN101189586B (zh) * | 2005-06-01 | 2011-06-15 | 松下电器产业株式会社 | 计算机系统及程序生成装置 |
FR2907930B1 (fr) * | 2006-10-27 | 2009-02-13 | Viaccess Sa | Procede de detection d'une utilisation anormale d'un processeur de securite. |
GB2448149B (en) * | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
GB2448151B (en) * | 2007-04-03 | 2011-05-04 | Advanced Risc Mach Ltd | Memory domain based security control within data processing systems |
JP5049185B2 (ja) * | 2007-04-19 | 2012-10-17 | パナソニック株式会社 | 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法 |
US8209550B2 (en) * | 2007-04-20 | 2012-06-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for protecting SIMLock information in an electronic device |
US7865675B2 (en) | 2007-12-06 | 2011-01-04 | Arm Limited | Controlling cleaning of data values within a hardware accelerator |
US8775824B2 (en) | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US8332660B2 (en) | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
US8127131B2 (en) * | 2008-04-10 | 2012-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient security domain translation and data transfer |
US8555015B2 (en) * | 2008-10-23 | 2013-10-08 | Maxim Integrated Products, Inc. | Multi-layer content protecting microcontroller |
US8321926B1 (en) * | 2008-12-02 | 2012-11-27 | Lockheed Martin Corporation | System and method of protecting a system that includes unprotected computer devices |
KR100897930B1 (ko) * | 2009-02-05 | 2009-05-14 | 주식회사 피앤피시큐어 | 보안장치 장애로부터 네트워크의 안정된 통신상태를 보장하는 통신시스템 |
JP5414057B2 (ja) * | 2009-05-22 | 2014-02-12 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
US8789153B2 (en) * | 2010-01-27 | 2014-07-22 | Authentify, Inc. | Method for secure user and transaction authentication and risk management |
US8789189B2 (en) * | 2010-06-24 | 2014-07-22 | NeurallQ, Inc. | System and method for sampling forensic data of unauthorized activities using executability states |
US9746519B2 (en) * | 2011-03-25 | 2017-08-29 | Nxp B.V. | Circuit for securing scan chain data |
WO2012160760A1 (ja) | 2011-05-25 | 2012-11-29 | パナソニック株式会社 | 情報処理装置および情報処理方法 |
US9262340B1 (en) | 2011-12-29 | 2016-02-16 | Cypress Semiconductor Corporation | Privileged mode methods and circuits for processor systems |
US20130305388A1 (en) * | 2012-05-10 | 2013-11-14 | Qualcomm Incorporated | Link status based content protection buffers |
US8910307B2 (en) | 2012-05-10 | 2014-12-09 | Qualcomm Incorporated | Hardware enforced output security settings |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
US9886595B2 (en) | 2012-12-07 | 2018-02-06 | Samsung Electronics Co., Ltd. | Priority-based application execution method and apparatus of data processing device |
US9183161B2 (en) * | 2012-12-28 | 2015-11-10 | Intel Corporation | Apparatus and method for page walk extension for enhanced security checks |
CN104813279B (zh) | 2012-12-28 | 2018-12-18 | 英特尔公司 | 用于减少具有步幅式访问模式的向量寄存器中的元素的指令 |
US8613090B1 (en) * | 2013-02-21 | 2013-12-17 | Atheer, Inc. | Method for processing a secure system manager |
US8990921B2 (en) | 2013-02-21 | 2015-03-24 | Atheer, Inc. | Apparatus for processing with a secure system manager |
US9330035B2 (en) * | 2013-05-23 | 2016-05-03 | Arm Limited | Method and apparatus for interrupt handling |
US10061940B2 (en) | 2013-07-09 | 2018-08-28 | Andes Technology Corporation | Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event |
US20150052616A1 (en) * | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
US9594704B1 (en) | 2013-12-17 | 2017-03-14 | Google Inc. | User mode interrupts |
US9495311B1 (en) * | 2013-12-17 | 2016-11-15 | Google Inc. | Red zone avoidance for user mode interrupts |
US9225897B1 (en) | 2014-07-07 | 2015-12-29 | Snapchat, Inc. | Apparatus and method for supplying content aware photo filters |
GB2530050B (en) * | 2014-09-10 | 2021-07-21 | Advanced Risc Mach Ltd | Debugging in a data processing apparatus |
US10496410B2 (en) * | 2014-12-23 | 2019-12-03 | Intel Corporation | Instruction and logic for suppression of hardware prefetchers |
GB2540937B (en) * | 2015-07-30 | 2019-04-03 | Advanced Risc Mach Ltd | Graphics processing systems |
US10083134B2 (en) | 2015-11-28 | 2018-09-25 | International Business Machines Corporation | Configurable processor interrupts for allowing an application to independently handle interrupts |
US20170185400A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Mode-specific endbranch for control flow termination |
KR20170105353A (ko) * | 2016-03-09 | 2017-09-19 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
CN105825128B (zh) * | 2016-03-15 | 2020-05-19 | 华为技术有限公司 | 一种数据输入方法、装置及用户设备 |
US20180275731A1 (en) * | 2017-03-21 | 2018-09-27 | Hewlett Packard Enterprise Development Lp | Processor reset vectors |
DE102018212686A1 (de) * | 2018-07-30 | 2020-01-30 | Siemens Aktiengesellschaft | Verfahren zum Betreiben einer Rechenanlage |
US10915457B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory access control through permissions specified in page table entries for execution domains |
US11500665B2 (en) | 2018-08-30 | 2022-11-15 | Micron Technology, Inc. | Dynamic configuration of a computer processor based on the presence of a hypervisor |
US10942863B2 (en) | 2018-08-30 | 2021-03-09 | Micron Technology, Inc. | Security configurations in page table entries for execution domains using a sandbox application operation |
US11481241B2 (en) * | 2018-08-30 | 2022-10-25 | Micron Technology, Inc. | Virtual machine register in a computer processor |
US11914726B2 (en) | 2018-08-30 | 2024-02-27 | Micron Technology, Inc. | Access control for processor registers based on execution domains |
US10915465B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory configured to store predefined set of domain registers for instructions being executed in computer processors |
US11182507B2 (en) * | 2018-08-30 | 2021-11-23 | Micron Technology, Inc. | Domain crossing in executing instructions in computer processors |
GB2577878B (en) * | 2018-10-08 | 2020-11-11 | Advanced Risc Mach Ltd | Transition disable indicator |
US11392698B2 (en) * | 2019-03-15 | 2022-07-19 | Intel Corporation | Active side-channel attack prevention |
TWI751962B (zh) * | 2019-04-07 | 2022-01-01 | 新唐科技股份有限公司 | 安全裝置、安全方法、安全系統以及安全設備 |
CN113486355B (zh) * | 2021-06-29 | 2023-03-14 | 北京紫光展锐通信技术有限公司 | 一种信息保存装置、方法、通信装置、芯片及其模组设备 |
GB2622801A (en) * | 2022-09-28 | 2024-04-03 | Advanced Risc Mach Ltd | Exception control |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60225943A (ja) * | 1984-04-25 | 1985-11-11 | Hitachi Ltd | 例外割込み処理方式 |
JPH0193830A (ja) * | 1987-10-05 | 1989-04-12 | Nec Corp | 仮想計算機システムにおける割り込み制御方式 |
JPH1069393A (ja) * | 1996-06-19 | 1998-03-10 | Hokkaido Nippon Denki Software Kk | 仮想計算機エミュレータ、仮想計算機エミュレート方法 および仮想計算機エミュレートプログラムを記録した記録 媒体 |
JP2001175486A (ja) * | 1999-12-21 | 2001-06-29 | Hitachi Ltd | 計算機システム |
JP2002501248A (ja) * | 1998-01-21 | 2002-01-15 | ノキア モービル フォーンズ リミティド | 埋込みシステム |
JP2002182560A (ja) * | 2000-12-12 | 2002-06-26 | Hitachi Ltd | 暗号処理機能を備えた情報サーバ装置 |
JP2004531788A (ja) * | 2000-12-21 | 2004-10-14 | コネクティクス コーポレイション | エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4825358A (en) * | 1985-04-10 | 1989-04-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
ATE134779T1 (de) * | 1987-06-12 | 1996-03-15 | Bmc Software Inc | Supervisorverfahren für ein rechnerbetriebssystem |
US5122470A (en) | 1988-07-05 | 1992-06-16 | Banes Albert J | Floating cell culture device and method |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5479616A (en) | 1992-04-03 | 1995-12-26 | Cyrix Corporation | Exception handling for prefetched instruction bytes using valid bits to identify instructions that will cause an exception |
US5745770A (en) * | 1993-12-27 | 1998-04-28 | Intel Corporation | Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor |
US5815701A (en) | 1995-06-29 | 1998-09-29 | Philips Electronics North America Corporation | Computer method and apparatus which maintains context switching speed with a large number of registers and which improves interrupt processing time |
US5684948A (en) * | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5974440A (en) * | 1996-03-25 | 1999-10-26 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for interrupt handling during virtual task operation |
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
US5881282A (en) * | 1996-12-10 | 1999-03-09 | Intel Corporation | Controlling ill-behaved computer add-on device through a virtual execution mode |
US5826084A (en) * | 1997-03-25 | 1998-10-20 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for selectively bypassing external interrupts past the monitor program during virtual program operation |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6604123B1 (en) | 1999-02-23 | 2003-08-05 | Lucent Technologies Inc. | Operating system transfer of control and parameter manipulation using portals |
JP3659062B2 (ja) | 1999-05-21 | 2005-06-15 | 株式会社日立製作所 | 計算機システム |
KR100317237B1 (ko) * | 1999-10-01 | 2001-12-22 | 윤종용 | 유사 벡터 방식의 인터럽트 컨트롤러 및 그것의 인터럽트 처리 방법 |
EP1162536A1 (en) | 2000-06-09 | 2001-12-12 | Hitachi, Ltd. | Multiple operating system control method |
US20030031235A1 (en) * | 2001-07-18 | 2003-02-13 | Cyberlane Inc. | PCMCIA CDMA data modem with test code selection switch |
US7487339B2 (en) * | 2001-10-12 | 2009-02-03 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US20030126520A1 (en) * | 2001-12-31 | 2003-07-03 | Globespanvirata | System and method for separating exception vectors in a multiprocessor data processing system |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US7165135B1 (en) * | 2002-04-18 | 2007-01-16 | Advanced Micro Devices, Inc. | Method and apparatus for controlling interrupts in a secure execution mode-capable processor |
US7370193B2 (en) * | 2002-04-27 | 2008-05-06 | Tong Shao | Computing system being able to quickly switch between an internal and an external networks and a method thereof |
US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US7117284B2 (en) * | 2002-11-18 | 2006-10-03 | Arm Limited | Vectored interrupt control within a system having a secure domain and a non-secure domain |
JP4302641B2 (ja) * | 2002-11-18 | 2009-07-29 | エイアールエム リミテッド | デバイスによるメモリへのアクセスの制御 |
WO2004046925A1 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Security mode switching via an exception vector |
GB2410348B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Exception types within a secure processing system |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
US7539853B2 (en) * | 2002-11-18 | 2009-05-26 | Arm Limited | Handling interrupts in data processing of data in which only a portion of a function has been processed |
EP1563380B1 (en) * | 2002-11-18 | 2006-07-19 | ARM Limited | Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain |
RU2005115083A (ru) * | 2002-11-18 | 2006-01-20 | Арм Лимитед (Gb) | Переключение процессора между защищенным и незащищенным режимами |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
-
2003
- 2003-10-27 GB GB0504192A patent/GB2410348B/en not_active Revoked
- 2003-10-27 AU AU2003278347A patent/AU2003278347A1/en not_active Abandoned
- 2003-10-27 WO PCT/GB2003/004621 patent/WO2004046916A2/en active IP Right Grant
- 2003-10-27 KR KR1020057008832A patent/KR100941104B1/ko active IP Right Grant
- 2003-10-27 DE DE60304602T patent/DE60304602T2/de not_active Expired - Lifetime
- 2003-10-27 JP JP2004570294A patent/JP4447471B2/ja not_active Expired - Lifetime
- 2003-10-27 EP EP03769657A patent/EP1563376B1/en not_active Expired - Lifetime
- 2003-11-17 US US10/714,519 patent/US7661105B2/en active Active
-
2009
- 2009-03-20 US US12/382,647 patent/US7949866B2/en not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60225943A (ja) * | 1984-04-25 | 1985-11-11 | Hitachi Ltd | 例外割込み処理方式 |
JPH0193830A (ja) * | 1987-10-05 | 1989-04-12 | Nec Corp | 仮想計算機システムにおける割り込み制御方式 |
JPH1069393A (ja) * | 1996-06-19 | 1998-03-10 | Hokkaido Nippon Denki Software Kk | 仮想計算機エミュレータ、仮想計算機エミュレート方法 および仮想計算機エミュレートプログラムを記録した記録 媒体 |
JP2002501248A (ja) * | 1998-01-21 | 2002-01-15 | ノキア モービル フォーンズ リミティド | 埋込みシステム |
JP2001175486A (ja) * | 1999-12-21 | 2001-06-29 | Hitachi Ltd | 計算機システム |
JP2002182560A (ja) * | 2000-12-12 | 2002-06-26 | Hitachi Ltd | 暗号処理機能を備えた情報サーバ装置 |
JP2004531788A (ja) * | 2000-12-21 | 2004-10-14 | コネクティクス コーポレイション | エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015530672A (ja) * | 2012-10-01 | 2015-10-15 | エイアールエム リミテッド | 安全なドメイン及びより安全性の低いドメインを有するデータ処理装置における例外処理 |
Also Published As
Publication number | Publication date |
---|---|
EP1563376A2 (en) | 2005-08-17 |
US7949866B2 (en) | 2011-05-24 |
GB0504192D0 (en) | 2005-04-06 |
US20040158736A1 (en) | 2004-08-12 |
GB2410348B (en) | 2005-12-07 |
US20090259846A1 (en) | 2009-10-15 |
EP1563376B1 (en) | 2006-04-12 |
AU2003278347A1 (en) | 2004-06-15 |
DE60304602T2 (de) | 2006-12-28 |
WO2004046916A3 (en) | 2004-10-21 |
KR20050085014A (ko) | 2005-08-29 |
KR100941104B1 (ko) | 2010-02-10 |
WO2004046916A2 (en) | 2004-06-03 |
AU2003278347A8 (en) | 2004-06-15 |
GB2410348A (en) | 2005-07-27 |
US7661105B2 (en) | 2010-02-09 |
JP4447471B2 (ja) | 2010-04-07 |
DE60304602D1 (de) | 2006-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4447471B2 (ja) | 安全処理システムにおける例外タイプ | |
JP4302641B2 (ja) | デバイスによるメモリへのアクセスの制御 | |
JP4220476B2 (ja) | 安全ドメインおよび非安全ドメインを有するシステム内での仮想−物理メモリアドレスマッピング | |
JP4423206B2 (ja) | 安全モードと非安全モードとを切り換えるプロセッサ | |
JP4302493B2 (ja) | データ処理装置内のメモリへアクセスするための技術 | |
JP4302492B2 (ja) | メモリへのアクセスを管理するための装置および方法 | |
JP4424973B2 (ja) | マルチドメインプロセッサのためのモニタ制御 | |
JP4302494B2 (ja) | データ処理装置内のメモリへアクセスするための技術 | |
JP4423012B2 (ja) | マルチドメインプロセッサのための診断データ捕捉制御 | |
JP4299107B2 (ja) | サスペンドされたオペレーティングシステムへデータ処理リクエストを送る方法 | |
US7117284B2 (en) | Vectored interrupt control within a system having a secure domain and a non-secure domain | |
US7171539B2 (en) | Apparatus and method for controlling access to a memory | |
US7305712B2 (en) | Security mode switching via an exception vector | |
IL167597A (en) | Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain | |
JP2004171568A (ja) | 多数のオペレーティングシステムを使用するデータ処理システムにおける多数の割り込みの取り扱い | |
IL168336A (en) | Control of access to a memory by a device | |
JP4299108B2 (ja) | 多数のオペレーティングシステムの間のタスクの追従 | |
IL167188A (en) | Exception types within a secure processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080722 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081022 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081029 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081125 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090803 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090903 |
|
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: 20100112 |
|
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: 20100120 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130129 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4447471 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130129 Year of fee payment: 3 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |