JP4302641B2 - デバイスによるメモリへのアクセスの制御 - Google Patents
デバイスによるメモリへのアクセスの制御 Download PDFInfo
- Publication number
- JP4302641B2 JP4302641B2 JP2004570296A JP2004570296A JP4302641B2 JP 4302641 B2 JP4302641 B2 JP 4302641B2 JP 2004570296 A JP2004570296 A JP 2004570296A JP 2004570296 A JP2004570296 A JP 2004570296A JP 4302641 B2 JP4302641 B2 JP 4302641B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- secure
- mode
- safe
- safety
- 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.)
- Expired - Lifetime
Links
- 238000005192 partition Methods 0.000 claims description 185
- 238000000034 method Methods 0.000 claims description 161
- 230000006870 function Effects 0.000 claims description 143
- 238000012545 processing Methods 0.000 claims description 134
- 230000008569 process Effects 0.000 claims description 96
- 238000013519 translation Methods 0.000 claims description 46
- 231100000279 safety data Toxicity 0.000 claims description 43
- 238000003860 storage Methods 0.000 claims description 36
- 230000004224 protection Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 10
- 239000000872 buffer Substances 0.000 claims description 8
- 238000011010 flushing procedure Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 3
- 239000013598 vector Substances 0.000 description 68
- 230000000694 effects Effects 0.000 description 18
- 238000012544 monitoring process Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000013507 mapping 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
- 230000008859 change Effects 0.000 description 14
- 238000013459 approach Methods 0.000 description 11
- 230000001276 controlling effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical group [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 9
- 230000008901 benefit Effects 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
- 230000002093 peripheral effect Effects 0.000 description 7
- 229910052799 carbon Inorganic materials 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 4
- 206010000210 abortion Diseases 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000013481 data capture Methods 0.000 description 3
- 208000033748 Device issues Diseases 0.000 description 2
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 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
- 238000004590 computer program Methods 0.000 description 1
- 239000013256 coordination polymer Substances 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
- 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
- 230000004044 response 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
-
- 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
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Description
安全ワールドにおける複製モードの代わりに同じモードが安全ドメインおよび非安全ドメインの双方をサポートする(図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 (48)
- 安全ドメインと、非安全ドメインとを有するデータ処理装置であって、該データ処理装置のデバイスが前記安全ドメインにおいて非安全ドメインではアクセスできない安全データにアクセスする前記データ処理装置において、
デバイスバスと、
前記デバイスバスに結合されており、各々が前記安全ドメインまたは前記非安全ドメインに関係するメモリアクセスリクエストを発生するようになっている複数のデバイスであって、該複数のデバイスの少なくとも1つが非安全ドメイン内のモードである少なくとも1つの非安全モードと、安全ドメインにおけるモードである少なくとも1つの安全モードとを備えた複数のモードで作動できる、前記複数のデバイスと、
前記デバイスバスに結合されており、前記複数のデバイスが必要とするデータを記憶するようになっているメモリとを備え、該メモリが安全データを記憶するための安全メモリと、非安全データを記憶するための非安全メモリとを備え、前記メモリ内のあるアイテムのデータへのアクセスが必要とされたときに、前記複数のデバイスがメモリアクセスリクエストをデバイスバスに発生するようになっており、
前記複数のデバイスのいずれかが発生したメモリアクセスリクエストが前記非安全ドメインに関するときはいつも、前記メモリアクセスリクエストが前記安全メモリへのアクセスを求めているかどうかを検出するようになっており、かかる検出時に前記メモリアクセスリクエストが指定するアクセスを防止するようになっている、前記デバイスバスに結合されたパーティションチェックロジックとを更に備えたデータ処理装置。 - 前記複数のデバイスの前記少なくとも1つに対し、前記複数のモードが前記安全ドメインと前記非安全ドメインにおいて存在する、請求項1記載のデータ処理装置。
- 前記安全ドメインにおける所定の安全モードで作動するときに、前記パーティションチェックロジックを前記複数のデバイスの1つによって管理する、請求項1または2記載のデータ処理装置。
- 前記メモリアクセスリクエストが前記安全ドメインに関するものであるか、または前記非安全ドメインに関するものであるかを識別するドメイン信号を、前記複数のデバイスによって発生される前記メモリアクセスリクエストは含み、前記ドメイン信号は前記メモリアクセスリクエストのアクセス対象へのアクセスを進めてよいかを判定するために前記パーティションチェックロジックで使われる、請求項1〜3のいずれかに記載のデータ処理装置。
- 前記複数のデバイスは所定のピン(pin)を有し、該所定のピンを介して前記デバイスバスに前記ドメイン信号を出力する、請求項4記載のデータ処理装置。
- 前記デバイスバスに発生されたメモリアクセスリクエストの間を仲裁するように、前記デバイスバスに結合されたアービッタ内に前記パーティションチェックロジックが設けられている、請求項1〜5のいずれかに記載のデータ処理装置。
- 前記非安全ドメインにおいて、前記複数のデバイスの前記少なくとも1つが非安全オペレーティングシステムの制御によって作動でき、
前記安全ドメインにおいて、前記複数のデバイスの前記少なくとも1つが安全オペレーティングシステムの制御によって作動できる、請求項1〜6のいずれかに記載のデータ処理装置。 - 前記複数のデバイスの前記少なくとも1つがプロセッサを内蔵するチップであり、前記プロセッサがメモリアクセスリクエストを発生するときに1つ以上の所定のアクセス制御機能を奏し、前記デバイスバスへのメモリアクセスリクエストの発生を制御するように作動できるメモリ管理ユニットを前記チップが更に含む、請求項1〜7のいずれかに記載のデータ処理装置。
- 前記チップが更に、
システムバスを介してプロセッサに結合された別のメモリを備え、該別のメモリがプロセッサの必要とするデータを記憶するようになっており、該別のメモリが安全データを記憶するための別の安全メモリと、非安全データを記憶するための別の非安全メモリとを備え、
前記非安全ドメインにおいて、非安全モードで作動中の前記プロセッサによって前記メモリアクセスリクエストが発生されるときはいつも、前記メモリアクセスリクエストが前記安全メモリまたは別の安全メモリのいずれにアクセスしようとしているかを検出するように作動し、かかる検出がなされたときに前記メモリアクセスリクエストが指定するアクセスを防止するように作動する、前記システムバスに結合された別のパーティションチェックロジックを前記チップが含む、請求項8記載のデータ処理装置。 - 前記プロセッサが前記非安全ドメイン内のモードである少なくとも1つの非安全モードと、前記安全ドメインにおけるモードである少なくとも1つの安全モードとを含む複数のモードで作動でき、前記少なくとも1つの非安全モードにおいて、前記プロセッサが非安全オペレーティングシステムの制御によって作動でき、前記少なくとも1つの安全モードでは前記プロセッサが安全オペレーティングシステムの制御によって作動でき、
前記別のパーティションチェックロジックが前記安全オペレーティングシステムによって管理される、請求項9記載のデータ処理装置。 - 前記プロセッサが少なくとも1つの非安全モードで作動するときに、前記メモリアクセスリクエストが仮想アドレスを指定し、前記メモリ管理ユニットが前記非安全オペレーティングシステムによって制御され、前記メモリ管理ユニットが実施する前記所定のアクセス制御機能のうちの1つが前記仮想アドレスから物理アドレスへの変換を含み、前記メモリ管理ユニットが発生すべき前記物理アドレスが前記安全メモリ内にある場合に、前記別のパーティションチェックロジックが前記メモリアクセスリクエストの指定するアクセスを防止するようになっている、請求項10記載のデータ処理装置。
- 前記プロセッサが少なくとも1つの安全モードの1つで作動するときに、前記メモリアクセスリクエストが仮想アドレスを指定し、前記メモリ管理ユニットが前記安全オペレーティングシステムによって制御され、前記メモリ管理ユニットが実施する前記所定のアクセス制御機能のうちの1つが、前記仮想アドレスから物理アドレスへの変換を含み、前記別のパーティションチェックロジックが少なくとも1つの安全モードでは使用されない、請求項10または11記載のデータ処理装置。
- 前記プロセッサのすべての作動モードに対し、前記メモリアクセスリクエストが仮想アドレスを指定し、前記別のパーティションチェックロジックが前記メモリ管理ユニット内に設けられ、前記プロセッサが前記少なくとも1つの非安全モードで作動するときはいつも、前記別のパーティションチェックロジックが作動可能である、請求項12記載のデータ処理装置。
- 前記別のパーティションチェックロジックが内部に設けられたメモリ保護ユニットを更に備え、前記メモリ保護ユニットが前記安全オペレーティングシステムによって管理されており、前記プロセッサが特定の安全モードで作動するときに、前記メモリアクセスリクエストがメモリロケーションに対する物理アドレスを指定し、前記メモリ管理ユニットが使用されず、前記物理アドレスが指定するメモリロケーションが前記特定の安全モードでアクセスできるかどうかを証明するために前記メモリ保護ユニットが少なくともメモリアクセス許可処理を実行するようになっている、請求項11または12記載のデータ処理装置。
- 前記メモリが少なくとも1つのテーブルを含み、該少なくとも1つのテーブルが、多数のメモリ領域の各々毎に、関連するデスクリプタを含み、前記メモリ管理ユニットが、前記メモリアクセスリクエストに対する所定のアクセス制御機能を実行するために前記メモリ管理ユニットが使用する、前記デスクリプタから誘導されたアクセス制御情報を記憶するための内部記憶ユニットを備え、前記プロセッサが前記少なくとも1つの非安全モードで作動するときに前記安全メモリへのアクセスを可能にするアクセス制御情報を前記内部記憶ユニットが記憶しないように、前記別のパーティションチェックロジックが作動するようになっている、請求項10〜14のいずれかに記載のデータ処理装置。
- 前記メモリアクセスリクエストが仮想アドレスを指定し、前記所定のアクセス制御機能のうちの1つが前記仮想アドレスから物理アドレスへの変換を含み、各デスクリプタが対応するメモリ領域に対する少なくとも1つの仮想アドレス部分およびそれに対応する物理アドレス部分を含み、前記プロセッサが前記少なくとも1つの非安全モードで作動するときに、前記仮想アドレスに対して発生される物理アドレスが前記安全メモリ内にある場合に、前記内部記憶ユニットが前記物理アドレス部分をアクセス制御情報として記憶しないように、前記別のパーティションチェックロジックが作動できる、請求項15記載のデータ処理装置。
- 前記内部記憶ユニットが少なくとも1つのテーブルから検索された対応するデスクリプタから得られた対応する物理アドレス部分を多数の仮想アドレス部分に対して記憶するようになっている変換ルックアサイドバッファ(TLB)となっている、請求項16記載のデータ処理装置。
- 前記TLBがマイクロTLBであり、前記内部記憶ユニットが前記メモリ管理ユニットにより前記少なくとも1つのテーブルから検索されたデスクリプタを記憶するためのメインTLBを更に備え、前記メモリアクセスリクエストに対する所定のアクセス制御機能を実行するための前記メモリ管理ユニットによるそのアクセス制御情報の使用前に、前記メインTLBからマイクロTLBへアクセス制御情報が転送され、前記プロセッサが前記少なくとも1つの非安全モードで作動しているときに、前記別のパーティションチェックロジックが前記メインTLBから前記安全メモリへのアクセスを許可するマイクロTLBへのアクセス制御情報の転送を防止するようになっている、請求項17記載のデータ処理装置。
- 前記非安全オペレーティングが発生したデスクリプタを含み、前記プロセッサが前記少なくとも1つの非安全モードで作動しているときに使用するための非安全テーブルを前記少なくとも1つのテーブルが含み、前記非安全テーブル内のデスクリプタが前記安全メモリの一部を少なくとも部分的に内蔵するメモリ領域に関連する場合に、前記プロセッサが非安全モードで作動しているときに、前記仮想アドレスに対して発生される物理アドレスが安全メモリ内にある場合に、前記デスクリプタにより指定される物理アドレス部分をアクセス制御情報として前記内部記憶ユニットが記憶することを前記別のパーティションチェックロジックが防止するように作動できる、請求項16〜18のいずれかに記載のデータ処理装置。
- 前記少なくとも1つのテーブルが前記安全オペレーティングシステムによって発生されたデスクリプタを含む安全メモリ内の安全テーブルを更に備え、そのデスクリプタが前記非安全テーブルからのものであるか、または前記安全テーブルからのものであるかを識別するための、前記メインTLB内に記憶された各デスクリプタに関連するフラグを前記メインTLBが含む、請求項18に記載する場合の、請求項19記載のデータ処理装置。
- 前記プロセッサの作動モードが安全モードと非安全モードとの間で切り替わるときはいつも、前記マイクロTLBがフラッシングされ、前記安全モードにおいて、前記関連するフラグによって安全テーブルからのものである、と示された前記メインTLB内のデスクリプタからマイクロTLBへアクセス制御情報が転送されるだけであり、前記非安全モードにおいて、前記関連するフラグによって前記非安全転送されるからのものである、と示された前記メインTLB内のデスクリプタから前記マイクロTLBへアクセス制御情報が転送されるだけである、請求項20記載のデータ処理装置。
- 前記メモリが少なくとも1つのテーブルを含み、該少なくとも1つのテーブルが、多数のメモリ領域の各々毎に、関連するデスクリプタを含み、前記メモリ管理ユニットが、前記メモリアクセスリクエストに対する所定のアクセス制御機能を実行するために前記メモリ管理ユニットが使用する、前記デスクリプタから誘導されたアクセス制御情報を記憶するための内部記憶ユニットを備え、前記プロセッサが前記少なくとも1つの非安全モードで作動するときに前記安全メモリへのアクセスを可能にするアクセス制御情報を前記内部記憶ユニットが記憶しないように、前記別のパーティションチェックロジックが作動するようになっていて、前記少なくとも1つのテーブルが少なくとも1つのページテーブルを含む、請求項10〜21のいずれかに記載のデータ処理装置。
- 前記別のメモリが前記システムバスに接続された密に結合されたメモリを備え、該密に結合されたメモリに対する物理アドレスレンジが制御レジスタ内で定義され、特権安全モードで作動しているときに限り、プロセッサによって前記密に結合されたメモリを制御できるか、または少なくとも1つの非安全モードで作動中にプロセッサによって制御可能かどうかを示すよう、特権安全モードで作動中のプロセッサによって制御フラグを設定できるようになっている、請求項10〜22のいずれかに記載のデータ処理装置。
- 前記少なくとも1つの非安全モードで作動中の前記プロセッサによって、前記密に結合されたメモリを制御できる場合に、安全データが前記密に結合されたメモリ内に記憶されないようになっている、請求項23記載のデータ処理装置。
- 安全ドメインと非安全ドメインとを有するデータ処理装置におけるメモリへのアクセスを制御する方法であって、該データ処理装置の複数のデバイスが前記安全ドメインでは非安全ドメインでアクセスできない安全データにアクセスするようになっており、前記データ処理装置が、
デバイスバスと、
該デバイスバスに結合され、各々が前記安全ドメインまたは前記非安全ドメインのいずれかに関係するメモリアクセスリクエストを発生するようになっている複数のデバイスであって、該複数のデバイスの少なくとも1つが非安全ドメイン内のモードである少なくとも1つの非安全モードと、安全ドメインにおけるモードである少なくとも1つの安全モードとを含む複数のモードで作動できる、前記複数のデバイスと、
前記デバイスバスに結合されており、前記複数のデバイスが必要とするデータを記憶するようになっているメモリとを備え、
該メモリが安全データを記憶するための安全メモリと、非安全データを記憶するための非安全メモリとを備えた、前記データ処理装置におけるメモリへのアクセスを制御する方法において、
(i)前記メモリ内のデータへのアクセスが求められると、前記複数のデバイスのいずれかから前記デバイスバスにメモリアクセスリクエストを発生するステップと、
(ii)前記いずれかのデバイスが発生した前記メモリアクセスリクエストが前記非安全ドメインに関するものであるときはいつも、そのメモリアクセスリクエストが安全メモリへのアクセスを求めているかどうかを検出するための、前記デバイスバスに結合されたパーティションチェックロジックを使用するステップと、
(iii)かかる検出時に前記メモリアクセスリクエストが指定するアクセスを防止するステップと、を備えた、データ処理装置におけるメモリへのアクセスを制御する方法。 - 前記複数のデバイスの前記少なくとも1つに対し、前記複数のモードが前記安全ドメインと前記非安全ドメインにおいて存在する、請求項25記載の方法。
- 前記安全ドメインにおける所定の安全モードで作動するときに、前記パーティションチェックロジックが前記複数のデバイスの1つによって管理される、請求項25または26記載の方法。
- 前記複数のデバイスによって発生される各メモリアクセスリクエストは該メモリアクセスリクエストが前記安全ドメインに関するものであるか、または前記非安全ドメインに関するものであるかを識別するドメイン信号を含み、該ドメイン信号は前記メモリアクセスリクエストのアクセス対象へのアクセスを進めてよいかを判定するために前記パーティションチェックロジックで使われる、請求項25〜27のいずれかに記載の方法。
- 前記複数のデバイスは所定のピンを有し、該所定のピンを介して前記デバイスバスに前記ドメイン信号を出力する、請求項28記載の方法。
- 前記デバイスバスに発生されたメモリアクセスリクエストの間を仲裁するように、前記デバイスバスに結合されたアービッタ内に前記パーティションチェックロジックが設けられている、請求項25〜29のいずれかに記載の方法。
- 前記非安全ドメインにおいて、前記複数のデバイスの前記少なくとも1つが非安全オペレーティングシステムの制御によって作動でき、
前記安全ドメインにおいて、前記複数のデバイスの前記少なくとも1つが安全オペレーティングシステムの制御によって作動できる、請求項25〜30のいずれかに記載の方法。 - 前記複数のデバイスの少なくとも1つがプロセッサを内蔵するチップであり、該チップが更にメモリ管理ユニットを備え、前記プロセッサがメモリアクセスリクエストを発生するときに、
前記デバイスバスへのメモリアクセスリクエストの発生を制御するための1つ以上の所定のアクセス制御機能を実行するために、前記メモリ管理ユニットを使用するステップを備えた、請求項25〜31のいずれかに記載の方法。 - 前記チップがシステムバスを介して前記プロセッサに結合された別のメモリを更に備え、前記別のメモリがプロセッサが必要とするデータを記憶するようになっており、前記別のメモリが安全データを記憶するための別の安全メモリと、非安全データを記憶するための別の非安全メモリとを備え、前記チップが更に前記システムバスに結合された別のパーティションチェックロジックを備え、
前記非安全ドメインにおいて非安全モードで作動している場合に、前記プロセッサによって前記メモリアクセスリクエストが発生されるときはいつも、前記メモリアクセスリクエストが前記安全メモリまたは前記別の安全メモリのいずれかへのアクセスを求めているかを検出するために前記別のパーティションチェックロジックを使用するステップと、
かかる検出時に前記メモリアクセスリクエストが指定するアクセスを防止するステップとを備えた、請求項32記載の方法。 - 前記プロセッサが前記非安全ドメインにおけるモードである少なくとも1つの非安全モードと、前記安全ドメインにおけるモードである少なくとも1つの安全モードとを含む複数のモードで作動でき、前記少なくとも1つの非安全モードにおいて、前記プロセッサが非安全オペレーティングシステムの制御によって作動でき、前記少なくとも1つの安全モードでは前記プロセッサが安全オペレーティングシステムの制御によって作動でき、
前記別のパーティションチェックロジックが前記安全オペレーティングシステムによって管理される、請求項33記載の方法。 - 前記プロセッサが前記少なくとも1つの非安全モードで作動しているときに、前記ステップ(i)で発生される前記メモリアクセスリクエストが仮想アドレスを指定し、1つ以上の所定のアクセス制御機能を実行するために前記メモリ管理ユニットを使用する前記ステップが、前記非安全オペレーティングシステムによって制御され、実行される前記所定のアクセス制御機能のうちの1つが前記仮想アドレスから物理アドレスへの変換を備え、前記メモリ管理ユニットによって発生される物理アドレスが安全メモリ内にある場合、前記メモリアクセスリクエストが指定するアクセスを前記別のパーティションチェックロジックが前記ステップ(iii)で防止するようになっている、請求項34記載の方法。
- 前記プロセッサが前記少なくとも1つの安全モードのうちの1つで作動しているときに、前記ステップ(i)で発生される前記メモリアクセスリクエストが仮想アドレスを指定し、1つ以上の所定のアクセス制御機能を実行するために前記メモリ管理ユニットを使用する前記ステップが、前記安全オペレーティングシステムによって制御され、実行される前記所定のアクセス制御機能のうちの1つが前記仮想アドレスから物理アドレスへの変換を備え、前記少なくとも1つの安全モードでは前記別のパーティションチェックロジックが使用されない、請求項34または35記載の方法。
- 前記プロセッサのすべての作動モードに対し、前記ステップ(i)で発生される前記メモリアクセスリクエストが仮想アドレスを指定し、前記別のパーティションチェックロジックが前記メモリ管理ユニット内に設けられ、前記プロセッサが前記少なくとも1つの非安全モードで作動するときはいつも、前記別のパーティションチェックロジックが作動可能である、請求項36記載の方法。
- 前記データ処理装置が、前記別のパーティションチェックロジックが内部に設けられたメモリ保護ユニットを更に備え、前記メモリ保護ユニットが前記安全オペレーティングシステムによって管理されており、前記プロセッサが特定の安全モードで作動するときに、前記ステップ(i)で発生される前記メモリアクセスリクエストがメモリロケーションに対する物理アドレスを指定し、1つ以上の所定のアクセス制御機能を実行するために前記メモリ管理ユニットを使用する前記ステップが使用されず、前記物理アドレスで指定されるメモリロケーションが前記特定の安全モードでアクセスできるかどうかを証明するために前記メモリ保護ユニットが少なくともメモリアクセス許可処理を実行するようになっている、請求項35または36記載の方法。
- 前記メモリが多数のメモリ領域の各々に対し、関連するデスクリプタを含む少なくとも1つのテーブルを備え、
前記メモリアクセスリクエストに対し前記所定のアクセス制御機能を実行するために前記メモリ管理ユニットによって使用される、前記デスクリプタから誘導されたアクセス制御情報を記憶するための内部記憶ユニットをメモリ管理ユニット内に設けるステップと、
前記プロセッサが少なくとも1つの非安全モードで作動するときに前記安全メモリへのアクセスを許可するアクセス制御情報を前記内部記憶ユニットが記憶しないようにするために前記別のパーティションチェックロジックを利用するステップとを備えた、請求項34〜38のいずれかに記載の方法。 - 前記ステップ(i)で発生される前記メモリアクセスリクエストが仮想アドレスを指定し、前記メモリ管理ユニットによって実行される前記所定のアクセス制御機能のうちの1つが前記仮想アドレスから物理アドレスへの変換を含み、各デスクリプタが対応するメモリ領域に対する少なくとも1つの仮想アドレス部分およびそれに対応する物理アドレス部分を含み、
前記プロセッサが前記少なくとも1つの非安全モードで作動する場合に、前記仮想アドレスに対して発生される物理アドレスが前記安全メモリ内にあるときに、前記内部記憶ユニットが前記物理アドレス部分をアクセス制御情報として記憶しないように、前記別のパーティションチェックロジックを利用するステップを含む、請求項39記載の方法。 - 前記内部記憶ユニットが、前記少なくとも1つのテーブルから検索された対応するデスクリプタから得られた対応する物理アドレス部分を多数の仮想アドレス部分に対して記憶するようになっている変換ルックアサイドバッファ(TLB)となっている、請求項40記載の方法。
- 前記TLBが、マイクロTLBであり、前記内部記憶ユニットが前記メモリ管理ユニットにより前記少なくとも1つのテーブルから検索されたデスクリプタを記憶するためのメインTLBを更に備え、
前記メモリアクセスリクエストに対する所定のアクセス制御機能を実行するための前記メモリ管理ユニットによるそのアクセス制御情報の使用前に、前記メインTLBからマイクロTLBへ前記アクセス制御情報を転送するステップと、
前記プロセッサが前記少なくとも1つの非安全モードで作動しているときに、前記メインTLBから前記安全メモリへのアクセスを許可するマイクロTLBへのアクセス制御情報の転送を防止するように前記別のパーティションチェックロジックを利用するステップとを備えた、請求項41記載の方法。 - 前記非安全オペレーティングにより発生されたデスクリプタを含みかつ前記プロセッサが前記少なくとも1つの非安全モードで作動しているときに使用するための非安全テーブルを前記少なくとも1つのテーブルが含み、前記非安全テーブル内のデスクリプタが前記安全メモリの一部を少なくとも部分的に内蔵するメモリ領域に関連する場合に、
前記プロセッサが非安全モードで作動しているときに、前記仮想アドレスに対して発生される物理アドレスが安全メモリ内にある場合に、前記デスクリプタにより指定される物理アドレス部分をアクセス制御情報として前記内部記憶ユニットが記憶することを防止するために前記別のパーティションチェックロジックを利用するステップを備えた、請求項40〜42のいずれかに記載の方法。 - 前記少なくとも1つのテーブルが前記安全オペレーティングシステムによって発生されたデスクリプタを含む安全メモリ内の安全テーブルを更に備え、前記メインTLBが前記メインTLB内に記憶された各デスクリプタに関連するフラグを含み、
デスクリプタがメインTLB内に記憶されているときに、そのデスクリプタが前記非安全テーブルからのものであるか、または前記安全テーブルからのものであるかを識別するための前記関連するフラグを前記メインTLBが含む、請求項42に従属した場合に、請求項43記載の方法。 - 前記プロセッサの作動モードが安全モードと非安全モードとの間で切り替わるときはいつも、前記マイクロTLBをフラッシングするステップと、
前記安全モードにおいて、前記関連するフラグによって安全テーブルからのものである、と示された前記メインTLB内のデスクリプタからマイクロTLBへアクセス制御情報を転送するだけのステップと、
前記非安全モードにおいて、前記関連するフラグによって前記非安全テーブルからのものである、と示された前記メインTLB内のデスクリプタから前記マイクロTLBへアクセス制御情報を転送するだけのステップとを備えた、請求項44記載の方法。 - 前記メモリが多数のメモリ領域の各々に対し、関連するデスクリプタを含む少なくとも1つのテーブルを備え、
前記メモリアクセスリクエストに対し前記所定のアクセス制御機能を実行するために前記メモリ管理ユニットによって使用される、前記デスクリプタから誘導されたアクセス制御情報を記憶するための内部記憶ユニットをメモリ管理ユニット内に設けるステップと、
前記プロセッサが少なくとも1つの非安全モードで作動するときに前記安全メモリへのアクセスを許可するアクセス制御情報を前記内部記憶ユニットが記憶しないようにするために前記別のパーティションチェックロジックを利用するステップとを備え、
前記少なくとも1つのテーブルが少なくとも1つのページテーブルを含む、請求項34〜45のいずれかに記載の方法。 - 前記別のメモリが前記システムバスに接続された密に結合されたメモリを備え、
該密に結合されたメモリに対する物理アドレスレンジを制御レジスタ内で定義するステップと、
特権安全モードで作動しているときに限りプロセッサによって前記密に結合されたメモリを制御できるか、または前記少なくとも1つの非安全モードで作動中にプロセッサによって制御可能かどうか、を示すよう、特権安全モードで作動中のプロセッサによって制御フラグを設定するステップと、を備えた請求項34〜46のいずれかに記載の方法。 - 前記少なくとも1つの非安全モードで作動中に前記プロセッサによって前記密に結合されたメモリを制御できる場合に、安全データが前記密に結合されたメモリ内に記憶されることを防止する、請求項47記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0226879A GB0226879D0 (en) | 2002-11-18 | 2002-11-18 | Apparatus and method for controlling access to a memory |
GB0226875A GB0226875D0 (en) | 2002-11-18 | 2002-11-18 | Control of access to a memory by a device |
GB0303446A GB0303446D0 (en) | 2002-11-18 | 2003-02-14 | Apparatus and method for controlling access to a memory |
PCT/GB2003/004629 WO2004046934A2 (en) | 2002-11-18 | 2003-10-27 | Secure memory for protecting against malicious programs |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006506754A JP2006506754A (ja) | 2006-02-23 |
JP2006506754A5 JP2006506754A5 (ja) | 2009-02-26 |
JP4302641B2 true JP4302641B2 (ja) | 2009-07-29 |
Family
ID=32329547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004570296A Expired - Lifetime JP4302641B2 (ja) | 2002-11-18 | 2003-10-27 | デバイスによるメモリへのアクセスの制御 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7305534B2 (ja) |
EP (1) | EP1563388A2 (ja) |
JP (1) | JP4302641B2 (ja) |
KR (1) | KR101015456B1 (ja) |
AU (1) | AU2003278350A1 (ja) |
GB (1) | GB2411027B (ja) |
WO (1) | WO2004046934A2 (ja) |
Families Citing this family (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
KR100941104B1 (ko) * | 2002-11-18 | 2010-02-10 | 에이알엠 리미티드 | 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체 |
CN1717639A (zh) | 2002-11-27 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 芯片集成保护装置 |
US8892878B2 (en) * | 2003-05-09 | 2014-11-18 | Oracle America, Inc. | Fine-grained privileges in operating system partitions |
EP1545131B1 (en) * | 2003-12-19 | 2007-07-18 | STMicroelectronics Limited | Semiconductor circuit for restricting data access |
FR2864658B1 (fr) * | 2003-12-30 | 2006-02-24 | Trusted Logic | Controle d'acces aux donnees par verification dynamique des references licites |
US7249208B2 (en) * | 2004-05-27 | 2007-07-24 | International Business Machines Corporation | System and method for extending the cross-memory descriptor to describe another partition's memory |
JP4447977B2 (ja) | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
JP2006048643A (ja) * | 2004-07-08 | 2006-02-16 | Namco Ltd | 端末装置、プログラム、情報記憶媒体およびデータ処理方法 |
DE102004037590B4 (de) * | 2004-08-03 | 2006-06-14 | Infineon Technologies Ag | Integrierte Schaltung und Verfahren zum Betrieb einer solchen |
CN100489818C (zh) * | 2004-11-26 | 2009-05-20 | 松下电器产业株式会社 | 处理器和安全处理系统 |
US7457960B2 (en) * | 2004-11-30 | 2008-11-25 | Analog Devices, Inc. | Programmable processor supporting secure mode |
US7673345B2 (en) * | 2005-03-31 | 2010-03-02 | Intel Corporation | Providing extended memory protection |
EP1713000A1 (en) * | 2005-04-11 | 2006-10-18 | Jaluna SA | Memory protection system |
JP4886682B2 (ja) * | 2005-05-26 | 2012-02-29 | パナソニック株式会社 | データ処理装置 |
EP1890237A1 (en) * | 2005-06-01 | 2008-02-20 | Matsushita Electric Industrial Co., Ltd. | Computer system and program creating device |
EP1742152B1 (en) * | 2005-07-07 | 2012-09-12 | Texas Instruments Inc. | Method and system for a multi-sharing memory access control |
US9158941B2 (en) * | 2006-03-16 | 2015-10-13 | Arm Limited | Managing access to content in a data processing apparatus |
EP1850256B1 (en) * | 2006-04-24 | 2010-06-09 | Telefonaktiebolaget LM Ericsson (publ) | Authorisation of the installation of a software version |
US8560829B2 (en) * | 2006-05-09 | 2013-10-15 | Broadcom Corporation | Method and system for command interface protection to achieve a secure interface |
US8285988B2 (en) * | 2006-05-09 | 2012-10-09 | Broadcom Corporation | Method and system for command authentication to achieve a secure interface |
US8032761B2 (en) | 2006-05-09 | 2011-10-04 | Broadcom Corporation | Method and system for memory attack protection to achieve a secure interface |
US7836320B2 (en) * | 2006-07-07 | 2010-11-16 | Arm Limited | Power management in a data processing apparatus having a plurality of domains in which devices of the data processing apparatus can operate |
GB0615392D0 (en) * | 2006-08-03 | 2006-09-13 | Wivenhoe Technology Ltd | Pseudo random number circuitry |
US7529916B2 (en) * | 2006-08-16 | 2009-05-05 | Arm Limited | Data processing apparatus and method for controlling access to registers |
GB2440968B (en) * | 2006-08-16 | 2011-02-02 | Advanced Risc Mach Ltd | Protecting system control registers in a data processing apparatus |
US8959311B2 (en) * | 2006-08-25 | 2015-02-17 | Texas Instruments Incorporated | Methods and systems involving secure RAM |
WO2008025036A2 (en) * | 2006-08-25 | 2008-02-28 | Texas Instruments Incorporated | Data processing systems utilizing secure memory |
GB2442023B (en) | 2006-09-13 | 2011-03-02 | Advanced Risc Mach Ltd | Memory access security management |
JP4756603B2 (ja) * | 2006-10-10 | 2011-08-24 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
KR20080067774A (ko) * | 2007-01-17 | 2008-07-22 | 삼성전자주식회사 | 허가되지 않은 메모리 접근으로부터 비밀 영역을 보호하기위한 방법 및 시스템 |
GB2446658B (en) * | 2007-02-19 | 2011-06-08 | Advanced Risc Mach Ltd | Hibernating a processing apparatus for processing secure data |
US8689288B2 (en) | 2007-04-16 | 2014-04-01 | Samsung Electronics Co., Ltd. | Apparatus and method for protecting system in virtualized environment |
KR101405319B1 (ko) * | 2007-04-16 | 2014-06-10 | 삼성전자 주식회사 | 가상화 환경에서의 안전한 시스템 보호 장치 및 방법 |
JP5049185B2 (ja) * | 2007-04-19 | 2012-10-17 | パナソニック株式会社 | 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法 |
GB2448907B (en) | 2007-05-02 | 2011-07-27 | Advanced Risc Mach Ltd | Reducng information leakage between processes sharing a cache |
US8051263B2 (en) | 2007-05-04 | 2011-11-01 | Atmel Corporation | Configurable memory protection |
EP2187314B1 (en) | 2007-09-04 | 2019-10-23 | Nintendo Co., Ltd. | Download security system |
US9176897B2 (en) | 2007-09-04 | 2015-11-03 | Nintendo Co., Ltd. | Writing area security system |
FR2925968B1 (fr) * | 2007-12-26 | 2011-06-03 | Ingenico Sa | Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants |
US9418220B1 (en) | 2008-01-28 | 2016-08-16 | Hewlett Packard Enterprise Development Lp | Controlling access to memory using a controller that performs cryptographic functions |
GB2460393B (en) * | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
US8826037B2 (en) * | 2008-03-13 | 2014-09-02 | Cyberlink Corp. | Method for decrypting an encrypted instruction and system thereof |
US8127131B2 (en) * | 2008-04-10 | 2012-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient security domain translation and data transfer |
WO2009153982A1 (ja) * | 2008-06-20 | 2009-12-23 | パナソニック株式会社 | 複数区分型不揮発性記憶装置およびシステム |
US8726364B2 (en) * | 2008-06-30 | 2014-05-13 | Intel Corporation | Authentication and access protection of computer boot modules in run-time environments |
DE102008051578A1 (de) | 2008-10-14 | 2010-04-15 | Giesecke & Devrient Gmbh | Datenkommunikation mit portablem Endgerät |
DE102010004446A1 (de) | 2010-01-13 | 2011-07-14 | Giesecke & Devrient GmbH, 81677 | Verfahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät |
JP5485055B2 (ja) * | 2010-07-16 | 2014-05-07 | パナソニック株式会社 | 共有メモリシステム及びその制御方法 |
US8539245B2 (en) * | 2010-08-06 | 2013-09-17 | Intel Corporation | Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode |
US20120036308A1 (en) * | 2010-08-06 | 2012-02-09 | Swanson Robert C | Supporting a secure readable memory region for pre-boot and secure mode operations |
JP5541036B2 (ja) * | 2010-09-21 | 2014-07-09 | 富士通株式会社 | メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置 |
US9087196B2 (en) * | 2010-12-24 | 2015-07-21 | Intel Corporation | Secure application attestation using dynamic measurement kernels |
JP2012216101A (ja) * | 2011-04-01 | 2012-11-08 | Sanyo Electric Co Ltd | アクセス制御装置 |
JP5879527B2 (ja) | 2011-05-25 | 2016-03-08 | パナソニックIpマネジメント株式会社 | 情報処理装置および情報処理方法 |
US9465755B2 (en) | 2011-07-18 | 2016-10-11 | Hewlett Packard Enterprise Development Lp | Security parameter zeroization |
US9361305B2 (en) * | 2011-08-09 | 2016-06-07 | Kyocera Document Solutions Inc. | Image forming apparatus having a file system |
GB2498571A (en) | 2012-01-20 | 2013-07-24 | Intellectual Ventures Holding 81 Llc | Base station able to communicate with a second device type on a narrow subset frequency band contained within a first main band |
KR101897605B1 (ko) * | 2012-02-24 | 2018-09-12 | 삼성전자 주식회사 | 휴대 단말기의 무결성 보호 방법 및 장치 |
US8984205B2 (en) * | 2012-03-22 | 2015-03-17 | Raytheon Company | Data filter |
FR2989801B1 (fr) | 2012-04-18 | 2014-11-21 | Schneider Electric Ind Sas | Procede de gestion securisee d'un espace memoire pour microcontroleur |
CN104471587B (zh) * | 2012-05-16 | 2018-01-23 | 诺基亚技术有限公司 | 处理器中的方法,装置和计算机程序产品 |
US9075751B2 (en) * | 2012-08-09 | 2015-07-07 | Intel Corporation | Secure data protection with improved read-only memory locking during system pre-boot |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
JP6106765B2 (ja) * | 2013-02-05 | 2017-04-05 | エイアールエム リミテッド | メモリ保護ユニットを使用して、仮想化をサポートするゲスト・オペレーティング・システム |
JP6158952B2 (ja) * | 2013-02-05 | 2017-07-05 | エイアールエム リミテッド | データ処理装置のメモリ・アクセス動作の操作 |
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 |
JP5911835B2 (ja) * | 2013-09-17 | 2016-04-27 | 株式会社東芝 | 情報処理装置 |
JP6117068B2 (ja) | 2013-09-20 | 2017-04-19 | 株式会社東芝 | 情報処理装置、およびプログラム |
US9436823B1 (en) * | 2013-12-17 | 2016-09-06 | Google Inc. | System and method for detecting malicious code |
US9535856B2 (en) | 2014-02-21 | 2017-01-03 | International Business Machines Corporation | Data access to a storage tier on a client in a multi-tiered storage system |
US9413765B2 (en) * | 2014-03-25 | 2016-08-09 | Intel Corporation | Multinode hubs for trusted computing |
US9952887B2 (en) * | 2014-06-23 | 2018-04-24 | Vmware, Inc. | Device simulation in a secure mode supported by hardware architectures |
EP3029574B1 (en) * | 2014-12-02 | 2019-09-18 | ARM Limited | Memory management |
US20160170405A1 (en) * | 2014-12-10 | 2016-06-16 | General Electric Company | Systems and methods for memory map utilization |
JP6580138B2 (ja) * | 2014-12-15 | 2019-09-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | セキュア・オブジェクトをサポートするプロセッサ、方法およびコンピュータ・プログラム |
US20160224098A1 (en) * | 2015-01-30 | 2016-08-04 | Alexander Gendler | Communicating via a mailbox interface of a processor |
US10664179B2 (en) | 2015-09-25 | 2020-05-26 | Intel Corporation | Processors, methods and systems to allow secure communications between protected container memory and input/output devices |
GB2543096A (en) * | 2015-10-09 | 2017-04-12 | Secure Thingz Ltd | Data Processing Device |
US10776294B2 (en) * | 2015-11-16 | 2020-09-15 | Atmel Corporation | System architecture with secure data exchange |
US9824419B2 (en) * | 2015-11-20 | 2017-11-21 | International Business Machines Corporation | Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other |
DE102015223757A1 (de) * | 2015-11-30 | 2017-06-01 | Robert Bosch Gmbh | Verfahren zum Betreiben eines Mikrocontrollers |
GB2546742B (en) * | 2016-01-26 | 2019-12-11 | Advanced Risc Mach Ltd | Memory address translation management |
FR3047587B1 (fr) | 2016-02-10 | 2023-01-13 | Dolphin Integration Sa | Dispositif de traitement muni d'un mode d'acces a des donnees sensibles. |
KR20170105353A (ko) * | 2016-03-09 | 2017-09-19 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US11379385B2 (en) * | 2016-04-16 | 2022-07-05 | Vmware, Inc. | Techniques for protecting memory pages of a virtual computing instance |
DE102016007690A1 (de) | 2016-06-23 | 2017-12-28 | Giesecke+Devrient Mobile Security Gmbh | Zustandsloses Sicherheitselement |
US10671744B2 (en) * | 2016-06-23 | 2020-06-02 | Intel Corporation | Lightweight trusted execution for internet-of-things devices |
US11442760B2 (en) * | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
KR102668431B1 (ko) | 2017-01-17 | 2024-05-24 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US10796004B1 (en) * | 2017-06-16 | 2020-10-06 | Sequitur Labs Inc. | Split boot for computing devices with secure and insecure states |
US20190042781A1 (en) * | 2017-08-04 | 2019-02-07 | Bitdefender IPR Management Ltd. | Secure Storage Device |
JP6776292B2 (ja) * | 2018-03-20 | 2020-10-28 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
GB2579034B (en) * | 2018-11-15 | 2021-05-05 | Trustonic Ltd | Software installation method |
US11176054B2 (en) | 2019-03-08 | 2021-11-16 | International Business Machines Corporation | Host virtual address space for secure interface control storage |
US11455398B2 (en) * | 2019-03-08 | 2022-09-27 | International Business Machines Corporation | Testing storage protection hardware in a secure virtual machine environment |
US11068310B2 (en) | 2019-03-08 | 2021-07-20 | International Business Machines Corporation | Secure storage query and donation |
US11283800B2 (en) | 2019-03-08 | 2022-03-22 | International Business Machines Corporation | Secure interface control secure storage hardware tagging |
EP3786826A1 (en) * | 2019-08-30 | 2021-03-03 | Barclays Execution Services Limited | Secure validation pipeline in a third party cloud environment |
US11734440B2 (en) * | 2019-09-09 | 2023-08-22 | Arm Limited | Memory access transaction with security check indication |
US11880718B2 (en) | 2020-09-15 | 2024-01-23 | Renesas Electronics Corporation | System and method for generating secure partition regions in open and secure processor environments |
CN115270100A (zh) * | 2021-04-29 | 2022-11-01 | 华为技术有限公司 | 一种安全保护方法、装置及系统 |
US11809332B2 (en) | 2021-12-13 | 2023-11-07 | Micron Technology, Inc. | Prefetch data associated with TLB fill requests |
EP4276633A1 (en) * | 2022-05-13 | 2023-11-15 | Thales Dis France SAS | Secured semiconductor device and method |
US11907559B1 (en) | 2022-08-09 | 2024-02-20 | Winbond Electronics Corporation | Physically secure memory partitioning |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
US4779187A (en) | 1985-04-10 | 1988-10-18 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
GB2176918B (en) | 1985-06-13 | 1989-11-01 | Intel Corp | Memory management for microprocessor system |
JPH02239349A (ja) * | 1989-03-13 | 1990-09-21 | Nec Corp | 仮想計算機の例外検出回路 |
GB2260004B (en) | 1991-09-30 | 1995-02-08 | Apple Computer | Memory management unit for a computer system |
US5845129A (en) | 1996-03-22 | 1998-12-01 | Philips Electronics North America Corporation | Protection domains in a single address space |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
JP2000076087A (ja) * | 1998-08-28 | 2000-03-14 | Hitachi Ltd | マルチオペレーティングシステム制御方法 |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
JP2001175486A (ja) * | 1999-12-21 | 2001-06-29 | Hitachi Ltd | 計算機システム |
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US6820177B2 (en) * | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
-
2003
- 2003-10-27 JP JP2004570296A patent/JP4302641B2/ja not_active Expired - Lifetime
- 2003-10-27 GB GB0507886A patent/GB2411027B/en not_active Expired - Lifetime
- 2003-10-27 AU AU2003278350A patent/AU2003278350A1/en not_active Abandoned
- 2003-10-27 WO PCT/GB2003/004629 patent/WO2004046934A2/en active Application Filing
- 2003-10-27 KR KR1020057008761A patent/KR101015456B1/ko active IP Right Grant
- 2003-10-27 EP EP03769660A patent/EP1563388A2/en not_active Withdrawn
- 2003-11-17 US US10/714,561 patent/US7305534B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2411027B (en) | 2006-03-15 |
WO2004046934A3 (en) | 2005-06-16 |
AU2003278350A8 (en) | 2004-06-15 |
KR20050085000A (ko) | 2005-08-29 |
JP2006506754A (ja) | 2006-02-23 |
US7305534B2 (en) | 2007-12-04 |
GB2411027A (en) | 2005-08-17 |
US20040177261A1 (en) | 2004-09-09 |
AU2003278350A1 (en) | 2004-06-15 |
KR101015456B1 (ko) | 2011-02-22 |
GB0507886D0 (en) | 2005-05-25 |
WO2004046934A2 (en) | 2004-06-03 |
EP1563388A2 (en) | 2005-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4302641B2 (ja) | デバイスによるメモリへのアクセスの制御 | |
JP4447471B2 (ja) | 安全処理システムにおける例外タイプ | |
JP4220476B2 (ja) | 安全ドメインおよび非安全ドメインを有するシステム内での仮想−物理メモリアドレスマッピング | |
JP4423206B2 (ja) | 安全モードと非安全モードとを切り換えるプロセッサ | |
JP4302493B2 (ja) | データ処理装置内のメモリへアクセスするための技術 | |
JP4302492B2 (ja) | メモリへのアクセスを管理するための装置および方法 | |
JP4424973B2 (ja) | マルチドメインプロセッサのためのモニタ制御 | |
JP4302494B2 (ja) | データ処理装置内のメモリへアクセスするための技術 | |
JP4423012B2 (ja) | マルチドメインプロセッサのための診断データ捕捉制御 | |
JP4299107B2 (ja) | サスペンドされたオペレーティングシステムへデータ処理リクエストを送る方法 | |
US7171539B2 (en) | Apparatus and method for controlling access to a memory | |
US7117284B2 (en) | Vectored interrupt control within a system having a secure domain and a non-secure domain | |
US7370210B2 (en) | Apparatus and method for managing processor configuration data | |
WO2004046925A1 (en) | Security mode switching via an exception vector | |
JP2004171568A (ja) | 多数のオペレーティングシステムを使用するデータ処理システムにおける多数の割り込みの取り扱い | |
CN100354829C (zh) | 安全处理系统内的异常类型 | |
JP4299108B2 (ja) | 多数のオペレーティングシステムの間のタスクの追従 | |
IL168336A (en) | Control of access to a memory by a device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060510 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060510 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080729 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081029 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081106 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081128 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081225 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20081225 |
|
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: 20090407 |
|
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: 20090422 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120501 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4302641 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: 20130501 Year of fee payment: 4 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |