JP2004171563A - データ処理装置内のメモリへアクセスするための技術 - Google Patents
データ処理装置内のメモリへアクセスするための技術 Download PDFInfo
- Publication number
- JP2004171563A JP2004171563A JP2003386040A JP2003386040A JP2004171563A JP 2004171563 A JP2004171563 A JP 2004171563A JP 2003386040 A JP2003386040 A JP 2003386040A JP 2003386040 A JP2003386040 A JP 2003386040A JP 2004171563 A JP2004171563 A JP 2004171563A
- Authority
- JP
- Japan
- Prior art keywords
- secure
- memory
- mode
- domain
- data
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 532
- 238000000034 method Methods 0.000 title claims description 116
- 238000005192 partition Methods 0.000 claims description 133
- 230000006870 function Effects 0.000 claims description 121
- 238000012545 processing Methods 0.000 claims description 113
- 238000001514 detection method Methods 0.000 claims description 5
- 208000033748 Device issues Diseases 0.000 claims description 3
- 231100000279 safety data Toxicity 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 83
- 239000013598 vector Substances 0.000 description 69
- 238000013519 translation Methods 0.000 description 43
- 230000014616 translation Effects 0.000 description 43
- 235000019580 granularity Nutrition 0.000 description 21
- 230000007246 mechanism Effects 0.000 description 20
- 230000000694 effects Effects 0.000 description 15
- 238000012544 monitoring process Methods 0.000 description 15
- 238000013507 mapping Methods 0.000 description 14
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 13
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 13
- 230000008859 change Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 10
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical group [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 9
- 102100033265 Integrator complex subunit 2 Human genes 0.000 description 9
- 108050002021 Integrator complex subunit 2 Proteins 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 229910052799 carbon Inorganic materials 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 239000013256 coordination polymer Substances 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 206010000210 abortion Diseases 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 210000003813 thumb Anatomy 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/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
- 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
- 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
- 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/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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
- 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)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】デバイスが発生するメモリアクセスリクエストは、このメモリアクセスリクエストが安全ドメインに関するものか、または非安全ドメインに関するものかを識別するドメイン信号を含む。メモリアクセスリクエストの一部として発生されたこのドメイン信号が存在していることによって、メモリアクセスリクエストが非安全ドメインに関するときにデバイスによって安全メモリ内の安全データにアクセスされないことを保証するようにチェックを実行することが可能となる。
【選択図】図68
Description
アプリケーションのうちの少なくとも1つによって使用されるデータが、プロセッサで実行される他のアプリケーションがアクセス不可能な秘密データとなっている場合が多く生じる。一例として、データ処理装置がスマートカードであり、アプリケーションのうちの1つが有効化、認証、暗号解読などを実行するために、秘密データ、例えば安全キーを使用するセキュリティアプリケーションである場合が挙げられる。かかる状況では、データ処理装置にロードできる他のアプリケーション、例えば安全データにアクセスしようとする目的でデータ処理装置にロードされたハッキング用アプリケーションにより、データにアクセスできないように、かかる秘密データを安全な状態に維持することを保証することは明らかに重要である。
米国特許出願第US2002/0007456A1号および米国特許第US6,282,657B号および同第US6,292,874B号には、秘密データの安全な記憶を行い、有害なプログラムコードから保護しようとするシステム例が記載されている。
従って、データ処理装置のメモリ内に含まれるかかる安全データのセキュリティを保持せんとするための改良された技術を提供することが望ましい。
デバイスバスと、
前記デバイスバスに結合され、前記安全ドメインまたは前記非安全ドメインのいずれかに関するメモリアクセスリクエストを発生するようになっているデバイスと、
前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するようになっているメモリとを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを備え、
前記メモリ内のデータのあるアイテムへのアクセスが必要となったときに、前記デバイスが前記デバイスバスにメモリアクセスリクエストを発生するようになっており、前記メモリアクセスリクエストが前記安全ドメインに関係するか、または前記非安全ドメインに関係するかのいずれかを識別するドメイン信号を、前記デバイスによって発生されるメモリアクセスリクエストが含む、データ処理装置を提供するものである。
メモリ内のデータのあるアイテムへのアクセスが必要とされると、デバイスはデバイスバスにメモリアクセスリクエストを発生する。本発明によれば、デバイスが発生するメモリアクセスリクエストはこのメモリアクセスリクエストが安全ドメインに関するものであるか、または非安全ドメインに関するものであるかのいずれかを識別するドメイン信号を含む。
アプリケーションがデバイスにロードされた場合、このアプリケーションは非安全ドメイン内でデフォルトにより実行される。これと対照的に、安全ドメインは所定の特定の安全機能に対してしか使用されないので、所定の安全アプリケーションを作動させるのにしか使用されない。従って、安全ドメインと非安全ドメインとが存在することによって実際にデバイス内に2つの異なる世界が構成される。すなわち所定のキーとなる安全機能が実行される安全世界と他のすべてのアプリケーションが実行される非安全世界とが構成される。
メモリアクセスリクエスト内にドメイン信号を組み込むことができるようにする方法が多数あることが理解できよう。ドメイン信号はハードウェアのレベルでアサートされるので、安全ドメイン内で実行できるとデバイス自身が証明したアプリケーションによってしかアサートできないことが好ましい。従って、デバイスで実行中の不正アプリケーションがドメイン信号の設定を不正に操作することはできなくなる。より詳細に説明すれば、好ましい実施例ではデバイスはデバイスバスにドメイン信号を出力するための所定のピンを有し、ドメイン信号は、デバイスが非安全モードで作動していることを表示するようにデフォルトにより設定される。従って、一実施例では、デバイスが安全ドメインで安全アプリケーションを実行している場合にしか、デバイスが安全ドメインで作動していることを表示するためのドメイン信号が設定されない。ドメイン信号が設定された場合にしか、パーティションチェックロジックはメモリ内の安全データへのアクセスを許可しない。
好ましい実施例では、前記非安全ドメインではデバイスは非安全オペレーティングシステムの制御により作動でき、前記安全ドメインではデバイスは安全オペレーティングシステムの制御により作動できる。安全オペレーティングシステムは一般に非安全オペレーティングシステムよりもかなり小さく、所定の安全機能を制御するのに設けられた安全カーネルとして見ることができる。このようなアプローチにより、安全ドメインは制御された環境で所定の秘密演算を実行できるようにする安全な世界を構成すると見なすことができる。他のアプリケーションは非安全ドメインに留まる。この非安全ドメインは非安全な世界と見なすことができる。
デバイスは種々の形態をとり得ることが理解できよう。バスに結合されたかかるデバイスは多数存在し得る。バスに多数のデバイスが結合されている場合、安全モードおよび非安全モードの双方で作動できる各々のデバイスは、安全モードで作動しているときにパーティションチェックロジックを独立して制御でき、かかる状況ではパーティションチェックロジックは別個の各デバイス固有のパーティション情報にアクセスする。しかしながら、これらデバイスのうちの1つがパーティションチェックロジックを管理する役割を果たすことが好ましい。
デバイスバスに結合されたメモリは種々の形態、例えばランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスク、所定の周辺デバイス内に設けられたレジスタなどの形態をとり得る。デバイスがプロセッサに関連するシステムバスを備えたプロセッサを内蔵するチップであるときには、かかるメモリの他にシステムバスに接続された所定のメモリ、例えばキャッシュメモリ、密結合メモリ(TCM)などが設けられていてもよい。
デバイスに結合されたパーティションチェックロジックはシステムバスに接続されたメモリに関するパーティションチェック機能を実行できないので、プロセッサが非安全モードで作動しているときに安全メモリシステムの一部はデバイスバスに結合された安全メモリの一部であるか、または安全データを含む別のメモリの一部であるかどうかに係わらず、安全メモリシステムのどの部分にもアクセスできないように保証するために、かかる実施例では別のパーティションチェックロジックが設けられている。
デバイスバスと、前記デバイスバスに結合され、前記安全ドメインまたは前記非安全ドメインのいずれかに関するメモリアクセスリクエストを発生するようになっているデバイスと、前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するようになっているメモリとを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを備えた、データ処理装置におけるメモリにアクセスする方法において、
(i)前記メモリ内のデータのアイテムへのアクセスが必要となったときに、前記デバイスから前記デバイスバスに前記メモリアクセスリクエストを発生する工程と、
(ii)前記メモリアクセスリクエストが前記安全ドメインに関するものか、または非安全ドメインに関するものかのいずれかを識別するドメイン信号を前記メモリアクセスリクエスト内に含ませる工程とを備えたデータ処理装置内のメモリへアクセスする方法を提供するものである。
別の特徴によれば、本発明はデバイスバスと、
前記デバイスバスに結合されており、複数のモードおよび安全ドメインまたは非安全ドメインで作動できるデバイスとを備え、前記複数のモードが非安全ドメインにおける1つのモードである少なくとも1つの非安全モードと、安全ドメインにおける1つのモードである少なくとも1つの安全モードとを含み、
前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するように作動できるメモリを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを含み、
前記メモリにおけるデータのアイテムへのアクセスが必要となったときに、前記デバイスが前記デバイスバスにメモリアクセスリクエストを発生するようになっており、前記デバイスが前記少なくとも1つの安全モードで作動しているか、または前記少なくとも1つの非安全モードで作動しているか否かを識別するドメイン信号を、前記デバイスによって発生される前記メモリアクセスリクエストが含む、データ処理装置を提供するものである。
更に別の特徴によれば、本発明はデバイスバスと、前記デバイスバスに結合されており、複数のモードおよび安全ドメインまたは非安全ドメインで作動できるデバイスとを備え、前記複数のモードが非安全ドメインにおける1つのモードである少なくとも1つの非安全モードと、安全ドメインにおける1つのモードである少なくとも1つの安全モードとを含み、前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するように作動できるメモリを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを含む、データ処理装置におけるメモリにアクセスする方法において、
(i)前記メモリ内のデータのアイテムへのアクセスが必要とされたときに、前記デバイスから前記デバイスバスに前記メモリアクセスリクエストを発生する工程と、
(ii)前記メモリアクセスリクエストが前記安全ドメインに関するものか、または非安全ドメインに関するものかのいずれかを識別するドメイン信号を前記メモリアクセスリクエスト内に含ませる工程とを備えたデータ処理装置内のメモリへアクセスする方法を提供するものである。
安全な世界におけるコピーモードの代わりに、同じモードが安全ドメインと非安全ドメインの双方をサポートしている(図8参照)。モニタモードは(例えばコプロセッサコンフィギュレーションレジスタから記憶されているSビットが読み出されるように)コアのその時のステータスが安全ステータスであるのか、または非安全ステータスであるのかを知る。
ユーザーモードからSMIが許可される図9を参照する:
1.スケジューラはスレッド1を起動する。
2.スレッド1は安全な機能(ファンクション)、=>SMI安全コールを実行しなければならず、コアはモニタモードに入る。ハードウェアの制御によりR14_monおよびSPSR_mon(モニタモードのためのセーブされたプロセッサステータスレジスタ)に現在のPCおよびSPSR(現在のプロセッサステータスレジスタ)が記憶され、IRQ/FIQ割り込みがディスエーブルされる。
3.モニタプログラムは次のタスクを実行する。
−Sビットをセットする(安全ステータスフラグ)
−安全アプリケーションの実行中に例外が生じても、非安全コンテクストが失われないよう、スタック内に少なくともR14_monおよびSPSR_monをセーブする。
−起動すべき新しいスレッド:安全スレッド1があるかどうかをチェックする。安全な世界においてスレッド1がアクティブであることを(一部の実施例におけるスレッドIDテーブルを介した)機構が示す。
−IRQ/FIQ割り込みを再イネーブルする。次に安全ユーザーモードで安全 アプリケーションがスタートできる。
4.スレッド1が終了するまでこれを実行し、モニタプログラムモードの「安全からのリータン」機能へのブランチ(SMI)を実行する。(コアがモニタモードに入ったときに、IRQ/FIQ割り込みをディスエーブルする。
5.「安全からのリータン」機能は次のタスクを実行する。
−スレッド1が終了したことを表示する(例えばスレッドIDテーブルの場合、テーブルからスレッド1を除く)。
−スタックから非安全コンテクストをリストア(復元)し、必要なレジスタをフラッシュし、よって一旦非安全ドメインへのリターンが行われると、安全データを読み出すことができなくなる。
−SUBS命令により非安全ドメインへ戻るように分岐し(これによってプログラムカウンタをカレントポイントにリストアし、ステータスフラグを更新する)、(リストアされたR14_monからの)PCおよび(SPSR_monらの)SPSRをリストアする。よって非安全ドメインにおけるリターンポイントはスレッド1における、前に実行されたSMIに続く命令となる。
6.終了するまでスレッド1が実行され、スケジューラへハンドを戻す。
特定の実施例によってはモニタプログラムと安全オペレーティングシステムとの間で上記機能の一部を分割してもよい。
別の実施例では、ユーザーモードでSMIが生じないようにすることが望ましい。
リセット
ハードウェアのリセットが生じると、MMUはディスエーブルされ、ARMコア(プロセッサ)はSビットの組により安全スーパーバイザーモードへ分岐する。安全ブートが一旦終了すると、モニタモードに進むSMIを実行することができ、モニタは必要な場合に非安全な世界内のOS(非安全svcモード)へ切り替わることができる。これまでのOSを使用することが望ましい場合、このOSを使用することによってスーパーバイザーモードで簡単にブートすることができ、安全ステートを無視できる。
非安全ドメインにおける非安全モード(上記のようにこのモードはSMIを特権モードに制限することが望ましい)からこの命令(モード切り替えソフトウェア割り込み命令)を呼び出すことができるが、関連するベクトルによって決定される目標となる入口ポイントは常に固定されており、モニタモード内にある。これは実行すべき(例えば命令によってパスされたオペランドによって制御される)適当な安全な機能へ分岐するためのSMIハンドラーまでである。
−モニタモードに入るSMIベクトルへのブランチ(モニタモードに入るので安全メモリではアクセスが認められる)。
−R14_monにPCをセーブし、SPSR_monへSPSRをセーブする。
−モニタプログラムを使ってSビットをセットする。
−モニタモードで安全な例外ハンドラーの実行をスタートする(マルチスレッドの場合、コンテクストをリストア/セーブ)。
−安全ユーザーモード(またはsvcモードのような別のモード)への分岐をし、適当な機能を実行する。
−コアがモニタモードにある間、IRQおよびFIQをディスエーブルする(待ち時間が増加する)。
安全な世界から出るのに2つの可能性がある。
−安全な機能を終了し、この機能を呼び出しした前の非安全モードに戻る場合。
−非安全な例外(例えばIRQ−FIQ−SMI)により安全な機能に割り込む。
安全な機能が正常に終了すると、SMIの直後の命令で非安全な世界内のアプリケーションを再開しなければならない。安全ユーザーモードでは「安全な世界からのリターン」ルーチンに対応する適当なパラメータを有するモニタモードへリターンするSMI命令を実行する。この段階では、非安全な世界と安全な世界との間のデータの漏れを防止するようにレジスタをフラッシュし、次に非安全コンテクスト用の汎用レジスタをリストアし、非安全な世界内に持っていた値で非安全バンクレジスタを更新する。従って、R14_monおよびSPSR_monに適当な値が与えられ、「MOVS PC、R14」命令を実行することによってSMIの後で非安全アプリケーションを再開する。
このケースでは、安全な機能を終了せず、非安全例外ハンドラーに進む前に安全コンテクストをセーブしなければならない、どの割り込みもこの要求が処理される。
安全な割り込みに対し、いくつかの可能性がある。
次の場合に応じた2つの可能な解決案が提案される。
−どんな種類の割り込みであるか(安全または非安全)
−IRQが生じたときにコアがどのモードとなっているか(安全な世界内か非安全な世界内か)
この解決案では安全および非安全な割り込みをサポートするのに2つの別個のピンが必要とされる。
非安全な世界内にある間に、
−IRQが生じた場合、コアはARMコア、例えばARM7内のように、この割り込みを処理するのにコアはIRQモードとなる。
−SIRQが生じた場合、コアはモニタモードに進み、非安全コンテクストをセーブし、次に安全なIRQハンドラーに進み、安全な割り込みを取り扱う。
安全な世界内にある間に、
−SIRQが生じた場合、コアは安全IRQハンドラーに進む。コアは安全な世界を離れない。
−IRQが生じた場合、コアは安全コンテクストがセーブされるモニタモードに進み、次に非安全IRQハンドラーに進み、この非安全割り込みを扱う。
換言すれば、現在の世界に属さない割り込みが生じたとき、コアは直接モニタモードとなり、そうでない場合、そのときの世界に留まる(図10参照)。
図11A参照:
1.スケジューラはスレッド1を起動する。
2.スレッド1は安全な機能、=>SMI安全コールを実行しなければならず、コアはモニタモードに入る。R14_monおよびSPSR_monにそのときのPCおよびCPSRが記憶され、IRQ/FRQがディスエーブルされる。
3.モニタハンドラー(プログラム)は次のタスクを実行する:
−Sビットをセットする。
−安全アプリケーションの実行中に例外が生じた場合に、非安全コンテクストが失われることがないよう、スタック(更に可能な場合には他のレジスタもプッシュする)内に少なくともR14_monおよびSPSR_monをセーブする。
−起動する新しいスレッド、例えば安全なスレッド1があるかどうかをチェックする。一つの機構が安全な世界内でスレッド1がアクティブであることを(スレッドIDテーブルを介し)表示する。
−安全ユーザーモードで安全アプリケーションがスタートできる。次にIRQ/FIQをイネーブルし直す。
4.安全なスレッド1が実行されている間にIRQが生じる。コアはモニタモード(特定ベクトル)に直接ジャンプし、モニタモードでR14_monにそのときのPCを記憶し、SPSR_monにCPSRを記憶し(IRQ/FIQを次にディスエーブルする)。
5.安全コンテクストはセーブしなければならず、前の非安全コンテクストをリストアする。R14_IRQ/SPSR_IRQを適当な値で更新するように、モニタハンドラーはIRQモードとなり、次に制御信号を非安全なIRQハンドラーへ送る。
6.IRQハンドラーはIRQにサービスし、次に非安全な世界内で制御信号をスレッド1へ与える。SPSR_IRQおよびR14_IRQをSPSRおよびPCにリストアすることにより、スレッド1は割り込まれたSMI命令を指示する。
7.SMI命令を再実行する(2.と同じ命令)。
8.モニタハンドラーはそのスレッドが以前割り込まれたものであるかどうかを見て、スレッド1のコンテクストをリストアする。次にユーザーモードで安全スレッド1に分岐し、割り込まれた命令をポイントする。
9.安全スレッド1は終了するまで作動し、次にモニタモード(専用SMI)で「安全からのリターン」機能に分岐する。
10.「安全からのリターン」機能は次のタスクを実行する。
−安全なスレッド1が終了したことを表示するタスク(例えばスレッドIDテーブルの場合、このテーブルからスレッド1を除く)。
−スタックから非安全コンテクストをリストアし、必要なレジスタをフラッシュし、よって非安全な世界に一旦リターンすると、非安全データを読み出すことができるようにするタスク。
−SUBS命令で非安全な世界に戻るよう分岐し、(リストアされたR14_monから)PCをリストアし、(SPSR_monから)CPSRをリストアするタスク。従って、非安全な世界内のリターンポイントはスレッド1で前に実行されたSMIに続く命令でなければならない。
11.スレッド1は終了まで実行され、次にスレッド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が実行され、ハンドをスケジューラに戻す。
図11Aの機構は安全な世界に入るための決定方法を与えることができるという利点を有する。しかしながら、割り込み優先権に関連したある問題が生じる。すなわち安全割り込みハンドラー内でSIRQが実行されている間、より高い優先権を有する非安全なIRQが生じることがある。一旦非安全なIRQが終了すると、コアが安全な割り込みを再開できるように、SIRQイベントを再形成する必要が生じる。
この機構(図12参照)では、2つの別個のピンまたは1つのピンだけで、安全な割り込みおよび非安全な割り込みをサポートできる。2つのピンを設けたことにより、割り込み待ち時間が下がる。
非安全な世界にある間に、
−IRQが生じた場合、コアはIRQモードに進み、ARM7システム内と同じようにこの割り込みを処理する。
−SIRQが生じた場合、コアはIRQハンドラーに進み、このハンドラーでSMI命令がコアをモニタモードに分岐させ、非安全コンテクストをセーブし、次に安全なIRQハンドラーに分岐し、安全な割り込みを取り扱う。
安全な世界にある間に、
−SIRQが生じた場合、コアは安全なIRQハンドラーに進む。コアは安全な世界から離れない。
−IRQが生じた場合、コアは安全なIRQハンドラーに進み、ここでSMI命令がコアをモニタモードに分岐させ(このモードで安全コンテクストがセーブされる)、次に非安全なIRQハンドラーに分岐し、この非安全な割り込みを取り扱う。
図13A参照:
1.スケジューラがスレッド1を起動する。
2.スレッド1は安全機能、=>SMI安全コールを実行しなければならず、コアはモニタモードに入る。R14_monおよびSPSR_monにそのときのPCおよびCPSRが記憶され、IRQ/FRQがディスエーブルされる。
3.モニタハンドラーは次のタスクを実行する:
−Sビットをセットする。
−安全なアプリケーションの実行中に例外が生じた場合に、スタック(最終的には他のレジスタ)内に少なくともR14_monおよびSPSR_monをセーブする。
−起動する新しいスレッド、例えば安全なスレッド1があるかどうかをチェックする。一つの機構が安全な世界内でスレッド1がアクティブであることを(スレッドIDテーブルを介し)表示する。
−安全なユーザーモードで安全なアプリケーションがスタートできる。次にIRQ/FIQをイネーブルし直す。
4.安全なスレッド1が実行されている間にIRQが生じる。コアは安全なIRQモードに直接ジャンプする。
5.コアはR14_irqにそのときのPCを記憶し、SPSR_irqにCPSRを記憶する。IRQハンドラーはこれが非安全な割り込みであることを検出し、適当なパラメータを有するモニタモードに入るためのSMIを実行する。
6.安全コンテクストはセーブしなければならず、前の非安全コンテクストをリストアする。モニタハンドラーはCPSRを読み出すことにより、SMIがどこから来たかを知る。モニタハンドラーはIRQモードに進み、R14_irq/SPSR_irqを読み出し、適当な安全なコンテクストをセーブすることもできる。更にIRQルーチンが一旦終了されると、リストアしなければならない非安全コンテクストをこれら同じレジスタにセーブすることもできる。
7.IRQハンドラーはIRQにサービスし、次に非安全な世界内で制御信号をスレッド1へ与える。SPSR_IRQおよびR14_IRQをSPSRおよびPCにリストアすることにより、スレッド1は割り込まれたSMI命令をポイントする。
8.SMI命令を再実行する(2.と同じ命令)。
9.モニタハンドラーはそのスレッドが以前割り込まれたものであるかどうかを見て、スレッド1のコンテクストをリストアする。次にユーザーモードで安全なスレッド1に分岐し、割り込まれた命令をポイントする。
10.安全なスレッド1は終了するまで作動し、次にモニタモード(専用SMI)で「安全からのリターン」機能に分岐する。
11.「安全からのリターン」機能は次のタスクを実行する。
−安全なスレッド1が終了したことを表示するタスク(例えばスレッドIDテーブルの場合、このテーブルからスレッド1を除く)。
−スタックから非安全コンテクストをリストアし、必要なレジスタをフラッシュし、よって非安全な世界に一旦リターンすると、非安全データを読み出すことができるようにするタスク。
−SUBS命令で非安全な世界に戻るよう分岐し、(リストアされたR14_monから)PCをリストアし、(SPSR_monから)CPSRをリストアするタスク。従って、非安全な世界内のリターンポイントはスレッド1で前に実行されたSMIに続く命令でなければならない。
12.スレッド1は終了まで実行され、次にスレッド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命令がコアを非安全な世界にリターンさせ、割り込まれたIRQハンドラーを再開させるように、モニタハンドラーは非安全コンテクストをリストアする。
7.IRQハンドラーはSUBSを実行することにより、非安全なスレッドに戻ることができる。
8.終了点までスレッド1が実行され、ハンドをスケジューラに戻す。
図12の機構を用いると、入れ子式割り込みの場合にSIRQイベントを再形成する必要がなくなるが、安全な割り込みが実行される保証はない。
(仮想アドレスの見地から、物理ベクトルのテーブルは1つのベクトルテーブルとして見えるが)少なくとも2つの物理ベクトルのテーブルが維持され、一方のテーブルは非安全メモリ内の非安全な世界用のものであり、他方のテーブルは(非安全な世界からアクセスできない)安全メモリ内の安全な世界用のものである。安全な世界および非安全な世界で使用される仮想対物理メモリの異なるマッピングによって、同じ仮想メモリアドレスが物理メモリ内に記憶された異なるベクトルテーブルに効果的にアクセスできるようになる。モニタモードは物理メモリ内に第3のベクトルテーブルを提供するように、常にフラットなメモリマッピングを使用することができる。
図1を参照して説明するように、データ処理装置はメモリを有する。このメモリは特にTCM36、キャッシュ38、ROM44、スレーブデバイスのメモリおよび外部メモリ56を含む。例として図37を参照して説明するように、メモリは安全メモリと非安全なメモリとに区分されている。一般には製造時にはメモリの安全メモリ領域と非安全なメモリ領域との物理的な区別はないが、これら領域は安全ドメインで作動する際のデータ処理装置の安全なオペレーティングシステムによって定義されることが理解できよう。従って、メモリデバイスの任意の物理的部分を安全メモリとして割り当て、別の物理的部分を非安全メモリとして割り当てることができる。
−Sビット: 専用CP15レジスタ内に含まれる安全ステートビット
−「安全/非安全ステート」: このステートはSビットの値によって定められ、コアが安全な世界にアクセスできる(安全ステートのときにはS=1)かどうかを表示するか、または非安全な世界だけに制限される(S=0)。モニタモード(更に参照)はSビットのステータスを無効にする。
−「非安全な世界」: セキュリティを必要としない非安全アプリケーションへアクセスできるすべてのハードウェア/ソフトウェアのグループのことである。
−「安全な世界」: 安全コードを実行しているときにしかアクセスできないすべてのハードウェア/ソフトウェア(コア、メモリ...)のグループのことである。
−モニタモード: 安全ステートと非安全ステートとの間でコアを切り替える役割を果たす新しいモードである。
−コアは常に非安全な世界にアクセスできる。
−コアは安全な世界が安全ステートまたはモニタモードとなっているときにしか、安全な世界にアクセスできない。
−SMI: ソフトウェアモニタ割り込みのことであり、専用SMI例外ベクトルを通してコアをモニタモードにさせる新しい命令である。
−「スレッドID」: (OSによって制御される)各スレッドに関連する識別子である。OSが非安全な世界で実行されるあるタイプのOSに対しては、安全機能が呼び出される度に、パラメータとして現在のスレッドIDをパスし、呼び出している非安全アプリケーションに安全機能をリンクさせなければならない。従って、安全な世界は多数のスレッドをサポートできる。
−安全割り込みは安全周辺機器が発生する割り込みを定める。
カーボンコアの概観
本技術を使用するプロセッサのために本明細書で使用する用語である、カーボンアーキテクチャなる概念は、安全な世界と非安全な世界の2つに分離することから成る。安全な世界はどんなデータも非安全な世界にリークしてはならないようになっている。
プロセッサのステートおよびモード
カーボンアーキテクチャの新しい特徴
安全または非安全ステート(Sビット)
カーボンコアの主な特徴は、コアが安全ステート(S=1)または非安全ステート(S=0)にあるかどうかを表示するSビットが存在していることである。安全ステートにあるとき、コアは安全な世界または非安全な世界内のどのデータにもアクセスできる。非安全なステートにあるとき、コアは非安全な世界へのアクセスだけに限定される。
カーボンシステムの別の重要な特徴は、新しいモード、すなわちモニタモードを形成することである。このモードは安全ステートと非安全ステートとの間のコアの切り替えを制御するのに使用される。このモードは常に安全モードと見なされる。すなわちSビットの値がどんな値であっても、コアがモニタモードにあると、外部世界への安全特権アクセスを常に実行する。
・すべての割り込みをマスクする。
・すべてのメモリ例外は無視されるか、または致命的例外を生じさせる。
・無定義/SWI/SMIは無視されるか、または致命的例外を生じさせる。
この提案は現在のARM命令セットに1つの新しい命令を加えることを求める。
モニタモードに入れ、固定SMI例ベクトルで分岐するSMI(ソフトウェアモニタ割り込み)命令が使用される。この命令は主に非安全ステートと安全ステートとの間のスワップをするためのモニタに対する表示をするのに使用される。
前のパラグラフで説明したように、コアには新しい1つのモード、すなわちモニタモードしか追加されない。現在のすべてのモードは利用できる状態のままであり、安全ステートおよび非安全ステートの双方で存在する。
実際にはカーボンユーザーは図21に示される構造を見ることになる。
この実施例は、安全な世界と非安全な世界とが同じレジスタバンクを共用することを提案するものである。このことは、ある世界からモニタモードを通して別の世界に切り替わるときに、システムモニタは第1の世界のコンテクストをセーブし、第2の世界のコンテクストを発生(またはリストア)する必要があることを意味する。
例外
安全な割り込み
現在の解決案
現在のコア内に、例えばIRQおよびFIQと同じ割り込みピンを持たせることが現在提案されている。(本明細書で後に記載する)例外トラップマスクレジスタに関連し、異なる種類の割り込みを実現し、取り扱うシステムのために、フレキシビリティを十分にする必要がある。
次のように、VIC(ベクトル化された割り込みコントローラ)を増強することができる。このVICはベクトル化された各アドレスに関連した1つの安全情報ビットを含むことができる。このビットはモニタまたは安全特権モードでしかプログラムできない。このことは、検討する割り込みを安全として処理し、よって安全サイドで取り扱うべきか否かを示している。
CP15に含まれるSビット情報は新しいVIC入力としてVCIにも利用できる。
カーボンフレキシビリティを改善するためにCP15では新しいレジスタ、例外トラップマスクが追加される。このレジスタは次のビットを含むことになる。
− ビット0:Undef(未定義)例外 (非安全ステート)
− ビット1:SWI例外 (非安全ステート)
− ビット2:プリフェッチアボート例外 (非安全ステート)
− ビット3:データアボート例外 (非安全ステート)
− ビット4:IRQ例外 (非安全ステート)
− ビット5:FIQ例外 (非安全ステート)
− ビット6:SMI例外 (非安全ステートと安全ステ
ートの双方)
− ビット16:未定義例外 (安全ステート)
− ビット17:SWI例外 (安全ステート)
− ビット18:プリフェッチアボート例 (安全ステート)
− ビット19:データアボート例外 (安全ステート)
− ビット20:IRQ例外 (安全ステート)
− ビット21:FIQ例外 (安全ステート)
ビットがセットされると、対応する例外によってコアはモニタモードとなる。そうでない場合、例外が生じた世界内の対応するハンドラー内で例外が処理される。
レジスタはモニタモードでしか見ることができない。その他のモードではこのレジスタにアクセスしようとする命令は無視されることになる。
システムがモニタをサポートしているか否かに応じて、このレジスタはシステム固有の値に初期化しなければならない。この機能はVICによって制御できる。
別個の安全な世界と非安全な世界とが設けられるので、別個の安全例外ベクトルの表と非安全例外ベクトルのテーブルを必要とする。
更にモニタがある例外もトラップできるので、我々はモニタ専用の第3の例外ベクトルテーブルも必要とする。次のテーブルは3つの異なる例外ベクトルのテーブルを要約するものである。
− 非安全ステートで生じる例外用のベクトル
− 安全ステートで生じる例外用のベクトル
モニタカーネルは例外が生じた元のステートをそれ以上検出する必要はないので、このことは例外の時間待ちを少なくする上で有効である。
この特徴は数個の例外に制限されることに注意する必要がある。SMIは安全ステートと非安全ステートとの切り替えを採用する最も適当な候補の1つである。
ステートを切り替える時、モニタモードはそのモニタスタックに最初のステートのコンテクストをセーブし、モニタスタックから第2のステートのコンテクストをリストアしなければならない。
従って、モニタモードはプライベートレジスタ(r14SPSR、....)を含む他のモードのレジスタにアクセスしなければならない。
これを処理するために、提案される解決案はSPSRを書き込むだけで直接モニタモードに切り替える権利を安全ステートにある特権モードに与えることである。
かかるシステムでは、次のように世界間の切り替えが実行される。
− モニタモードに入る。
− Sビットをセットする。
− スーパーモードに切り替え−モニタスタックにスーパーバイザーレジスタをセーブする(当然ながらスーパーバイザーモードはモニタスタックポインタにアクセスしなければならないが、これは例えば共通レジスタ(R0〜R8)を使用することにより容易に実行できる)。
− システムモードへ切り替え−モニタスタックに(ユーザーモードと同じ)レジスタをセーブする。
− すべてのモードに対し、モニタスタックにIRQレジスタをセーブする。
− すべてのモードのすべてのプライベートレジスタがセーブされると、簡単なMSR命令(=CPSRモードフィールドにモニタの値を単に書き込む)によりモニタモードへ戻る。
次のその他の解決案を検討する。
− モニタが自身のスタックに他のモードのプライベートレジスタをセーブできるようにする新しい命令を追加する。
− 例えば(適当なアクセス権を有するために)モニタステートとなり、IRQ(または他の)プライベートレジスタを見るためにIRQ(または他の)モードとなることができる新しい「ステート」としてモニタを実現する。
1.スレッド1が非安全な世界(Sビット=0)で作動中である。
このスレッドは安全な機能、=>SMI命令を実行しなければならない。
2.このSMI命令は非安全SMIベクトルによりコアをモニタモードにする。
LR_monおよびSPSR_monを使用して非安全モードのPCおよびCPSRをセーブする。
システムは安全ステートであるが、この段階ではSビットは変化しないままである。
モニタカーネルがモニタに非安全コンテクストをセーブする。モニタはLR_monおよびSPSR_monもプッシュする。
次にモニタカーネルはCP15レジスタに書き込みをすることにより、「S」ビットを変える。
この実施例では、モニタカーネルは(例えばスレッドIDテーブルを更新することにより)安全な世界で「安全スレッド1」をスタートさせる道を維持する。
最後に、モニタモードから出て安全スーパーバイザーモードに切り替わる(LR_monおよびSPSR_monを更新した後のMOVS命令)。
3.安全カーネルが正しい安全メモリのロケーションへアプリケーションを送り(例えばMOVSを使って)、ユーザーモードに切り替わる。
4.安全ユーザーモードで安全機能が実行される。一旦終了すると安全機能は適当なSWIを実行することにより「退出」機能を呼び出しする。
5.SWI命令は専用SWIベクトルによりコアを安全svcモードにし、次にコアは「退出」機能を実行する。この「退出」機能はモニタモードに戻すよう切り替えるための「SMI」により終了する。
6.SMI命令は専用安全SMIベクトルによりコアをモニタモードにする。
安全SVCモードのPCおよびCPSRをセーブするのにLR_monおよびSPSR_monを使用する。
Sビットは変わらないままである(例えば安全ステート)。
安全なスレッド1が終了した事実をモニタカーネルが登録する(スレッドIDテーブルから安全なスレッド1のIDを除く)。
モニタカーネルがCP15レジスタに書き込むことにより「S」ビットを変え、非安全ステートに戻る。
モニタカーネルがモニタスタックから非安全コンテクストをリストアする。モニタカーネルはステップ2で前にセーブされたLR_monおよびCPSR_monもロードする。
最後に、モニタカーネルはSUBSによりモニタモードから出る。このSUBSは命令時に非安全ユーザーモードにコアを戻す。
7.スレッド1を正常に再開できる。
これとは異なり、再びCP15レジスタ内の制御ビットを書き込むことにより、命令に基づいて命令によるレジスタへのアクセスをディスエーブルしてもよい。CP15レジスタに書き込まれるビットはモードではなくレジスタに明らかに関係しているので、モードはディスエーブルされず、このモードにおけるレジスタへのアクセスがディスエーブルされる。
モニタモードにおいてプロセッサがドメインを切り替える際にすべてのバンク状レジスタがディスエーブルされるようにプロセッサを構成してもよい。これとは異なり、ドメインを切り替える際に共用レジスタの所定の一部がディスエーブルされ、他のレジスタをプログラマーの選択でディスエーブルできるように、レジスタのディスエーブル化を選択的にしてもよい。
図25に示されるように、処理をセキュリティに影響されるようにすべきか、または実際にセキュリティに影響されないようにすべきかに応じて、安全スーパーバイザーモード内の処理をスタートするアドレスを設定するようにリセットが実行される。一旦リセットが実行された場合、ブート機構またはリブート機構に存在する別のタスクが実行される。このブート機構について以下に説明する。
ブート機構は次の特徴を考慮しなければならない。
− 従来のOSとのコンパチビリティを維持すること
− ほとんどの特権モードにおいてシステムのセキュリティを保証するようにブートすること。
結果として安全スーパーバイザーモードでカーボンコアがブートする。
別のシステムは次のようになる。
− 従来のOSを実行するシステムに対してはSビットは考慮されず、コアはスーパーバイザーモードでブートするように見せる。
− カーボンの特徴を利用するシステムに対しては、コアは(潜在的にはモニタモードにスワップした後に)システム内のすべての安全保護を構成できなければならない安全特権モードでブートする。
ステップ4024にて、安全オペレーティングシステムに対して行われたソフトウェア割り込み呼び出しで指定された新しい安全スレッドへの切り替えが行われる。
非安全メモリアクセスの場合、ステップ300からステップ320にプロセスが進み、ステップ320にて非安全デスクリプタからの対応する物理アドレス部分が存在するかどうかの判断をするために、マイクロTLB206内でルックアッププロセスが実行される。存在する場合、プロセスは直接ステップ336に進み、このステップでアクセス許可ロジック202によりアクセス許可権がチェックされる。この時点では、対応する物理アドレス部分がマイクロTLB内にある場合、セキュリティの違反がないと見なすと考えるのが重要である。その理由は情報がマイクロTLB内に記憶される前にパーティションチェッカー222が情報を有効に規制し、よって状況がマイクロTLB内にある場合、この情報は適当な非安全情報であると考えられるからである。ステップ336でアクセス許可がチェックされると、ステップ338へ進み、違反があるかどうかの判断がされ、そこでアクセス許可が違反となると、ステップ316でアボート信号が発生される。違反がなければステップ318に進み、ここで前に述べたようにメモリアクセスの残りの部分が実行される。
1)コアがVA=3000を発生する [IA=5000、PA=7000]
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」
8)MMU2の主TLBに記憶される
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」
17)MMU2の主TLB内に記憶される
18)MMU2のマイクロTLB内に記憶される
19)MMU2内のマイクロTLBで一致し、
データアクセスを実行するのにPA=7000を発生する
20)物理アドレス7000にあるデータがコアに戻される
1)コアがVA=3001を発生する
2)MMU1のマイクロTLB内で一致すると、リクエストIA5001がMMU2に発生される
3)MMU2のマイクロTLBで一致すると、PA7001に対するリクエストがメモリに対して発生される
4)PA7001におけるデータがコアに戻される
上記例では双方のMMUのマイクロTLBおよび主TLBの双方で不一致となるので、この例は最悪ケースのシナリオを示している。一般にマイクロTLBまたは主TLBの少なくとも一方で一致が発見されることが予想されるので、データを検索するのにかかる時間を大幅に短縮できる。
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]
6)MMU2の主およびマイクロTLBに「8000IA=10000PA」がマッピング記憶される
7)MMU2内のマイクロTLBはステップ(3)からPA10003へリクエストを変換でき、フェッチ信号を発生する
ページテーブルとして戻された「3000VA=5000IA」
注: この変換はMMU1によって一時記憶装置内に保持されるが、TLB内には直接記憶されない
8)次にMMU1の変換テーブルウォークロジックはIA=5000に対し、MMU2にリクエストを発生する
9)MMU2のマイクロTLBおよび主TLB内でIA=5000が不一致
10)MMU2内の変換テーブルウォークロジックがページテーブルルックアップを実行し、
PA=12005を発生する
ページテーブルデータとして戻された「5000IA=7000PA」
11)MMU2がマイクロTLBおよび主TLBに「5000IA=7000PA」を記憶する。この変換もMMU1に伝えられる
12a)MMU2がメモリへPA=7000のアクセスを発生する
12b)MMU2が「3000VA=5000IA」デスクリプタと、
「5000IA=7000PA」デスクリプタとを組み合わせ、「3000VA=7000PA」デスクリプタを発生し、このデスクリプタはMMU1の主TLBおよびマイクロTLBに記憶される
13)PA=7000にあるデータがコアに戻される
1)コアがVA=3001を発生する
2)MMU1、MMU2のマイクロTLB内での一致がPA=7001に対するリクエストを発生する
3)PA=7001におけるデータがコアに戻される
上記例と図50Aの例との比較から判るように、主な違いはMMU1が第1テーブルデスクリプタを直接記憶しないステップ7、およびMMU1もIA→PA変換を受信し、組み合わせを行わず、組み合わされたデスクリプタをそのTLBに記憶するステップ12B(ステップ12Aと12Bとは同時に生じ得る)にある。
従って、この別の実施例は仮想アドレスから物理アドレスへの変換をするのにまだページテーブルの2つの組を使用しているが、マイクロTLB2155と主TLB2160が直接仮想アドレス−物理アドレス変換を記憶することにより、マイクロTLB2155または主TLB2160のいずれかで一致が生じたときに、双方のMMUでルックアップを実行する必要がなくなることが理解できよう。かかるケースでは、第1MMUは第2MMUを参照することなく、コアからのリクエストを直接取り扱うことができる。
テーブル1は0x40003000における4Kbを0x00081000にマッピングする。
テーブル2は0x00000000における1Mbを0x02000000にマッピングする。
ここで組み合わせ変換に対しては2つのサイズのうちの小さい方のサイズを使用しなければならないので、組み合わせデスクリプタは0x40003000における4Kbを0x02081000へマッピングする。
しかしながら、(図52を参照して前に説明したように)世界間でデータがスワップされる場合、例えば反対も真となり得る。
テーブル1は0xc0000000から0x00000000への1Mbをマッピングする。
テーブル1は0x00042000から0x02042000への4Kbマッピングする。次に、コアからのアドレス0xc0042010におけるルックアップによって、次のマッピング、すなわち0xc0042000から0x02042000への4Kbのマッピングを生じさせる。
すなわち組み合わせマッピングに対して2つのサイズのうちの小さい方のサイズが常に使用される。
割り込み的なデバッグと観測可能な(トレース)デバッグとを別々に制御することにより;
安全ユーザーモードだけ、または全安全な世界におけるデバッグの進入を認めることにより;
安全ユーザーモードだけのデバッグを認め、更にスレッドID(アプリケーションの実行)を考慮することにより、モニタ機能への進入を制限する。
レジスタロジックセル
どの集積回路(IC)も2つの種類のロジックから成る。
・組み合わせロジックセル;AND、OR、INVゲートに類似する。かかるゲートまたはかかるゲートの組み合わせを使用し、1つまたは複数の入力信号に従い、ブール演算式を計算するのに使用される。
・レジスタロジックセル;ラッチ、フリップフロップに類似する。かかるセルは信号の値を記憶するのに使用される。図62は正のエッジでトリガーされるフリップフロップの図である。
クロック信号(CK)で正のエッジのイベントが生じると、出力(Q)は入力(D)の値を受信し、そうでない場合、出力(Q)はメモリにその状態を維持する。
テストまたはデバッグのためには、レジスタロジックセルの機能アクセスをバイパスさせ、直接レジスタロジックセルの内容にアクセスすることが必要である。従って、レジスタセルは図63に示されるようにスキャンチェーンセル内に集積化されている。
機能モードではSE(スキャンイネーブル)がクリアされ、レジスターセルは単一のレジスターセルとして働く。テストまたはデバッグモードではSEがセットされ、D入力の代わりにSI入力(スキャン入力)から入力データが出ることができる。
図64に示されるように、スキャンチェーンにおいてすべてのスキャンチェーンセルがチェーン化される。
機能モードではSEがクリアされ、すべてのレジスターセルに正常にアクセスすることができ、回路の他のロジックと相互作用することができる。テストまたはデバッグモードではSEがセットされ、スキャンチェーン内ですべてのレジスタが互いにチェーン化される。第1スキャンチェーンセルからデータが出ることができ、各クロックサイクルのカデンスにおいて他のスキャンチェーンシェルを通過するようにシフトできる。レジスタの内容を見るためにデータをシフトして出すこともできる。
いくつかのスキャンチェーンを取り扱うのにデバッグTAPコントローラが使用される。TAPコントローラは特定のスキャンチェーンを選択できる。例えば「スキャンイン」および「スキャンアウト」信号を特定のスキャンチェーンへ送り、データはチェーン内にスキャンし、シフトし、またはスキャンアウトできる。このTAPコントローラはJTAGポートインターフェースにより外部から制御される。図65はTAPコントローラを略図で示す。
セキュリティ上の理由から、デバッグモードまたはテストモードでもスキャンチェーンによって一部のレジスタにはアクセスできないようになっている。JADI(JTAGアクセスディスエーブル)と称される新しい入力信号は集積回路内のスキャンチェーン構造を変えることなく、スキャンチェーン全体からスキャンチェーンセルをダイナミックまたはスタティックに除去することを認めることができる。図66Aおよび66Bはこの入力を略図で示す。
ボード段階における割り込み的デバッグ
ボード段階においてJSDAENピンが結ばれていないときに、ブートセッションをスタートする前のどこでも、デバッグをイネーブルする能力がある。同様に、安全スーパーバイザーモードにある場合、同様な権利を有する。
SMIベクトルトラッピングイネーブル
安全データアボートベクトルトラッピングイネーブル
安全プリフェッチアボートベクトルトラッピングイネーブル
安全未定義ベクトルトラッピングイネーブル
である新しいビットによりベクトルトラップレジスタが拡張される。
安全な世界および非安全な世界における2つのアボートハンドラーは(PCを制御する関連するデバッグでの)デバッガーウィンドーが、安全な世界および非安全な世界の双方におけるレジスタのステートを示すことができるように、それらの情報をデバッガーアプリケーションへ与える。
JSDAENが結ばれ、デバッグが非安全な世界に制限される製造ステージでは、安全スーパーバイザーが判断をしない場合、図71Bに示されたテーブルは、何が生じるかを示す。この場合、SMIは常に原子命令と見なすべきであるので、デバッグステートに入る前に常に安全機能が終了する。
非安全な世界に限り、外部デバッグリクエストまたは内部デバッグリクエストが考慮される。安全な世界にある間、EDBGRQ(外部デバッグリクエスト)がアサートされるた場合、一旦安全機能が終了すれば、コアはデバッグ停止モードに入り、非安全な世界でコアが戻される。
ベクトルトラップレジスタ(この詳細を下記に示す)は非安全例外だけに関係する。前に説明したすべての拡張されたトラッピングイネーブルビットは効果がない。
安全デバッグをイネーブルしなければ、安全な世界への進入を強制するのにSビットを変更できない。
安全スーパーバイザーモードだけでしかデバッグが許可されていない場合、モードビットを変えることはできない。
安全デバッグを制御する専用ビットを変えることはできない。
(システムスピードアクセスにより)SMIをロードし、実行する場合、安全機能が完全に実行された場合にしかコアはデバッグステートに再進入しない。
モニタモードに入る前:
非安全な世界ではブレークポイントおよびウォッチポイントしか考慮しない。ビットSがセットされた場合、ブレークポイントおよびウォッチポイントがバイパスされる。安全メモリではブレークポイント/ウォッチポイントは効果を有しないので、セキュリティの問題ではないMCR/MRC(CP14)によってもウォッチポイントユニットにアクセス可能であることに留意されたい。
ベクトルトラップレジスタは非安全例外にしか関係しない。前に説明したすべての拡張トラッピングイネーブルビットは効果を有しない。データアボートおよびプリフェッチアボートイネーブルビットはプロセッサが強制的に回復不能なステートになるのを防止するためにディスエーブルしなければならない。
JTAGを介し、停止モードに対するのと同じ制限を有する(Sビットは変更できない、など)。
非安全アボートハンドラーは非安全な世界をダンプでき、安全バンクレジスタだけでなく安全メモリにも視覚性を有しない。
原子SMI命令により安全機能を実行。
安全な世界に入ることを強制するためにSビットを変えることはできない。
安全スーパーバイザーモードでしかデバッグが許可されない場合、モードビットを変えることはできない。
非安全な世界ではコアはそのときの命令を終了し、即座に(フォールトモードで)デバッグステートに入る。
安全な世界ではコアはそのときの機能を終了し、非安全な世界に戻ったときにデバッグステートとなる。
・D_s_アボートビット: 安全な世界でデバッグがイネーブルされるとき、およびデバッグがデバッグフォールトモードに構成されたときにしか、このビットをセットしてはならない。モニタデバッグモードではこのビットは決してセットしてはならない。安全な世界内のデバッグがディスエーブルされた場合、このビットはどんな値にも影響しない。
・P_sアボートビット: D_s_アボートビットと同じである。
・S_Undefビット: 安全な世界でデバッグがイネーブルされるときにしか、このビットをセットしてはならない。安全な世界におけるデバッグがディスエーブルされた場合、このビットは値がどんな値でも影響を与えない。
・SMIビット: 安全な世界でデバッグがイネーブルされたときにしか、これをセットしてはならない。安全な世界におけるデバッグがディスエーブルされた場合、このビットはどんな値であっても影響を与えない。
・FIQ、IRQ、D_アボート、P_アボート、SWI、Undefビット: これらビットは非安全例外に対応するので、安全な世界におけるデバッグがディスエーブルされた場合でも有効である。D_アボートおよびP_アボートはモニタモードでハイレベルにアサートしてはならない。
・リセットビット: リセットが生じたときに安全な世界に入る場合、安全な世界におけるデバッグがイネーブルされたときにしかこのビットは有効とならず、有効でない場合、影響を与えない。
14 レジスタバンク
16 演算論理ユニット
18 JTAGコントローラ
20 回路内エミュレータ
21 割り込みコントローラ
22 埋め込みトレースモジュール
24 レジスタ
26 制御レジスタ
30 メモリ管理ロジック
32 ダイレクトメモリアクセスコントローラ
34 制御レジスタ
36 TCM
38 キャッシュ
40 システムバス
42 外部バスインターフェース
44 ブートROM
46 スクリーンドライバ
50 デジタル信号プロセッサ
52 ダイレクトメモリアクセスコントローラ
54 アービッタ/デコーダ
56 外部メモリ
60 I/Oインターフェース
64 キー記憶ユニット
Claims (20)
- 安全ドメインおよび非安全ドメインを有し、前記非安全ドメインでアクセスできない安全データに前記安全ドメインでアクセスするデータ処理装置において、
デバイスバスと、
前記デバイスバスに結合され、前記安全ドメインまたは前記非安全ドメインのいずれかに関するメモリアクセスリクエストを発生するようになっているデバイスと、
前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するようになっているメモリとを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを備え、
前記メモリ内のデータのあるアイテムへのアクセスが必要となったときに、前記デバイスが前記デバイスバスにメモリアクセスリクエストを発生するようになっており、前記メモリアクセスリクエストが前記安全ドメインに関係するか、または前記非安全ドメインに関係するかのいずれかを識別するドメイン信号を、前記デバイスによって発生されるメモリアクセスリクエストが含む、データ処理装置。 - 前記非安全ドメインにおける1つのモードである少なくとも1つの非安全モードと、前記安全ドメインにおける1つのモードである少なくとも1つの安全モードとを含む複数のモードで前記デバイスが作動できるようになっている、請求項1記載のデータ処理装置。
- 前記デバイスが前記ドメイン信号を前記デバイスバスに出力するための所定のピンを有する、請求項1記載のデータ処理装置。
- 前記非安全ドメインでは、前記デバイスが非安全オペレーティングシステムの制御により作動でき、前記安全ドメインでは前記デバイスが安全オペレーティングシステムの制御により作動できる、請求項1記載のデータ処理装置。
- 前記デバイスバスに結合されたパーティションチェックロジックを更に備え、前記デバイスが発生した前記メモリアクセスリクエストが前記非安全ドメインに関するものであるときは、前記メモリアクセスリクエストが前記安全メモリへのアクセスを求めているかどうかを検出するように、前記パーティションチェックロジックが作動でき、かかる検出がされたときに、前記メモリアクセスリクエストが指定するアクセスを防止するようになっている、請求項1記載のデータ処理装置。
- 前記パーティションチェックロジックが前記安全ドメインにおいて所定の安全モードで作動するときに、前記デバイスによって管理される、請求項5記載のデータ処理装置。
- 前記デバイスバスに発生されるメモリアクセスリクエストの間を仲裁するように、前記デバイスバスに結合されたアービッタ内に前記パーティションチェックロジックが設けられている、請求項5記載のデータ処理装置。
- 前記デバイスがプロセッサを内蔵するチップであり、このチップが更にメモリ管理ユニットを含み、前記プロセッサがメモリアクセスリクエストを発生すると、前記メモリ管理ユニットが前記デバイスバスへの前記メモリアクセスリクエストの発生を制御するための1つ以上の所定のアクセス制御機能を実行するようになっている、請求項1記載のデータ処理装置。
- 前記チップが、
システムバスを介して前記プロセッサに結合された別のメモリを更に含み、前記プロセッサが必要とするデータを前記別のメモリが記憶するように作動でき、この別のメモリが安全データを記憶するための別の安全メモリと、非安全データを記憶するための別の非安全メモリとを備え、更に前記デバイスバスに結合された別のパーティションチェックロジックを更に備え、前記デバイスが発生した前記メモリアクセスリクエストが前記非安全ドメインに関するものであるときはいつも、前記メモリアクセスリクエストが前記安全メモリまたは前記別の安全メモリへのアクセスを求めていることを検出するよう前記別のパーティションチェックロジックが作動でき、かかる検出がされたときに、前記メモリアクセスリクエストが指定するアクセスを防止するようになっている、請求項8記載のデータ処理装置。 - 安全ドメインおよび非安全ドメインを有し、前記非安全ドメインでアクセスできない安全データに前記安全ドメインでアクセスするデータ処理装置において、
デバイスバスと、前記デバイスバスに結合され、前記安全ドメインまたは前記非安全ドメインのいずれかに関するメモリアクセスリクエストを発生するようになっているデバイスと、前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するようになっているメモリとを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを備えた、データ処理装置におけるメモリにアクセスする方法において、
(i)前記メモリ内のデータのアイテムへのアクセスが必要となったときに、前記デバイスから前記デバイスバスに前記メモリアクセスリクエストを発生する工程と、
(ii)前記メモリアクセスリクエストが前記安全ドメインに関するものか、または非安全ドメインに関するものかのいずれかを識別するドメイン信号を前記メモリアクセスリクエスト内に含ませる工程とを備えたデータ処理装置内のメモリへアクセスする方法。 - 前記非安全ドメインにおける1つのモードである少なくとも1つの非安全モードと、前記安全ドメインにおける1つのモードである少なくとも1つの安全モードとを含む複数のモードで前記デバイスが作動できるようになっている、請求項10記載の方法。
- 前記デバイスが前記ドメイン信号を前記デバイスバスに出力するための所定のピンを有する、請求項10記載の方法。
- 前記非安全ドメインでは、前記デバイスが非安全オペレーティングシステムの制御により作動でき、前記安全ドメインでは前記デバイスが安全オペレーティングシステムの制御により作動できる、請求項10記載の方法。
- (iii)前記デバイスによって発生された前記メモリアクセスリクエストが前記非安全ドメインに関するものであるときはいつも、前記メモリアクセスリクエストが前記安全メモリへのアクセスを求めているかどうかを検出するように、デバイスバスに結合されたパーティションチェックロジックを使用する工程と、
(iv)かかる検出時に、前記メモリアクセスリクエストが指定するアクセスを防止する工程とを更に備えた、請求項10記載の方法。 - 前記パーティションチェックロジックが前記安全ドメインにおいて所定の安全モードで作動するときに、前記デバイスによって管理される、請求項14記載の方法。
- 前記デバイスバスに発生されるメモリアクセスリクエストの間を仲裁するように、前記デバイスバスに結合されたアービッタ内に前記パーティションチェックロジックが設けられている、請求項14記載の方法。
- 前記デバイスがプロセッサを内蔵するチップであり、該チップが更にメモリ管理ユニットを含む、請求項10記載の方法において、前記プロセッサが前記メモリアクセスリクエストを発生する際に、
前記デバイスバスへの前記メモリアクセスリクエストの発生を制御するための1つ以上の所定のアクセス制御機能を実行するためのメモリ管理ユニットを使用する工程を含む方法。 - 前記チップがシステムバスを介して前記プロセッサに結合された別のメモリを更に含み、前記別のメモリが前記プロセッサが必要とするデータを記憶するようになっており、前記別のメモリが安全データを記憶するための別の安全メモリと、非安全データを記憶するための別の非安全メモリとを含み、前記チップが更にシステムバスに結合された別のパーティションチェックロジックを含み、
前記プロセッサが前記非安全ドメインにおいて非安全モードで作動する際に、前記メモリアクセスリクエストが前記プロセッサによって発生されるときはいつも、前記メモリアクセスリクエストが安全メモリまたは別の安全メモリへのアクセスを求めていることを検出するよう、前記別のパーティションチェックロジックを使用する工程と、
かかる検出時に前記メモリアクセスリクエストが指定するアクセスを防止する工程とを備えた、請求項17記載の方法。 - デバイスバスと、
前記デバイスバスに結合されており、複数のモードおよび安全ドメインまたは非安全ドメインで作動できるデバイスとを備え、前記複数のモードが非安全ドメインにおける1つのモードである少なくとも1つの非安全モードと、安全ドメインにおける1つのモードである少なくとも1つの安全モードとを含み、
前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するように作動できるメモリを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを含み、
前記メモリにおけるデータのアイテムへのアクセスが必要となったときに、前記デバイスが前記デバイスバスにメモリアクセスリクエストを発生するようになっており、前記デバイスが前記少なくとも1つの安全モードで作動しているか、または前記少なくとも1つの非安全モードで作動しているのかどうかを識別するドメイン信号を、前記デバイスによって発生される前記メモリアクセスリクエストが含む、データ処理装置。 - デバイスバスと、前記デバイスバスに結合されており、複数のモードおよび安全ドメインまたは非安全ドメインで作動できるデバイスとを備え、前記複数のモードが非安全ドメインにおける1つのモードである少なくとも1つの非安全モードと、安全ドメインにおける1つのモードである少なくとも1つの安全モードとを含み、前記デバイスバスに結合されており、前記デバイスが必要とするデータを記憶するように作動できるメモリを備え、該メモリが安全データを記憶するための安全メモリと非安全データを記憶するための非安全メモリとを含む、データ処理装置におけるメモリにアクセスする方法において、
(i)前記メモリ内のデータのアイテムへのアクセスが必要とされたときに、前記デバイスから前記デバイスバスに前記メモリアクセスリクエストを発生する工程と、
(ii)前記メモリアクセスリクエストが前記安全ドメインに関するものか、または非安全ドメインに関するものかのいずれかを識別するドメイン信号を前記メモリアクセスリクエスト内に含ませる工程とを備えたデータ処理装置内のメモリへアクセスする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0226886A GB0226886D0 (en) | 2002-11-18 | 2002-11-18 | Technique for accessing memory in a data processing apparatus |
GB0303446A GB0303446D0 (en) | 2002-11-18 | 2003-02-14 | Apparatus and method for controlling access to a memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004171563A true JP2004171563A (ja) | 2004-06-17 |
JP4302493B2 JP4302493B2 (ja) | 2009-07-29 |
Family
ID=29738112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003386040A Expired - Lifetime JP4302493B2 (ja) | 2002-11-18 | 2003-11-17 | データ処理装置内のメモリへアクセスするための技術 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7185159B2 (ja) |
JP (1) | JP4302493B2 (ja) |
GB (1) | GB2396034B (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007249933A (ja) * | 2006-03-16 | 2007-09-27 | Arm Ltd | データ処理装置内コンテンツへのアクセス管理 |
JP2008287706A (ja) * | 2007-04-19 | 2008-11-27 | Panasonic Corp | 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法 |
JP2009163738A (ja) * | 2008-01-02 | 2009-07-23 | Arm Ltd | 非安全アプリケーションへの安全サービスの提供 |
JP2010510584A (ja) * | 2006-11-15 | 2010-04-02 | クゥアルコム・インコーポレイテッド | エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル |
JP2010510583A (ja) * | 2006-11-15 | 2010-04-02 | クゥアルコム・インコーポレイテッド | 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム |
JP2010176630A (ja) * | 2009-02-02 | 2010-08-12 | Ntt Docomo Inc | 携帯端末 |
JP2012195016A (ja) * | 2004-07-23 | 2012-10-11 | Texas Instruments Inc | 計算機システム内のセキュリティ侵害を識別して防ぐためのシステムと方法 |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
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 |
JP2014519639A (ja) * | 2011-05-05 | 2014-08-14 | イーベイ インク. | 取引セキュリティー強化のためのシステムおよび方法 |
JP2020529063A (ja) * | 2017-08-01 | 2020-10-01 | シー−スカイ マイクロシステムズ カンパニー,リミテッド | トラステッドカーネルベースの耐攻撃データプロセッサ |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US20050154910A1 (en) * | 2004-01-12 | 2005-07-14 | Shaw Mark E. | Security measures in a partitionable computing system |
US20050257016A1 (en) * | 2004-05-17 | 2005-11-17 | Brian Boles | Digital signal controller secure memory partitioning |
US7567571B2 (en) * | 2004-05-26 | 2009-07-28 | Samsung Electronics Co., Ltd. | Apparatus and method using vector table indirection to maintain forwarding tables in a router |
JP4575028B2 (ja) * | 2004-05-27 | 2010-11-04 | 株式会社日立製作所 | ディスクアレイ装置およびその制御方法 |
US7424584B2 (en) * | 2004-08-12 | 2008-09-09 | International Business Machines Corporation | Key-controlled object-based memory protection |
US20070266444A1 (en) * | 2004-12-03 | 2007-11-15 | Moshe Segal | Method and System for Securing Data Stored in a Storage Device |
US7620042B2 (en) * | 2004-12-17 | 2009-11-17 | Samsung Electronics Co., Ltd. | Apparatus and method for inter-processor communications in a multiprocessor routing node |
CN101233525A (zh) * | 2005-05-26 | 2008-07-30 | 松下电器产业株式会社 | 数据处理装置 |
JP4850830B2 (ja) * | 2005-06-01 | 2012-01-11 | パナソニック株式会社 | コンピュータシステム及びプログラム生成装置 |
EP1742152B1 (en) * | 2005-07-07 | 2012-09-12 | Texas Instruments Inc. | Method and system for a multi-sharing memory access control |
US8051235B1 (en) * | 2005-11-11 | 2011-11-01 | Ixys Ch Gmbh | Conditional back-to-back interrupt vectoring |
US8429300B2 (en) * | 2006-03-06 | 2013-04-23 | Lg Electronics Inc. | Data transferring method |
US20090133129A1 (en) * | 2006-03-06 | 2009-05-21 | Lg Electronics Inc. | Data transferring method |
EP1992138A4 (en) * | 2006-03-06 | 2014-12-31 | Lg Electronics Inc | DATA TRANSFER CONTROL METHOD, METHOD FOR CONTINUOUS TRANSMISSION CONTROL, METHOD FOR DETECTING CONTENT PROCESSING INFORMATION AND CONTENT TRANSMISSION SYSTEM |
US8010774B2 (en) * | 2006-03-13 | 2011-08-30 | Arm Limited | Breakpointing on register access events or I/O port access events |
US20070226471A1 (en) * | 2006-03-13 | 2007-09-27 | Arm Limited | Data processing apparatus |
US7529916B2 (en) * | 2006-08-16 | 2009-05-05 | Arm Limited | Data processing apparatus and method for controlling access to registers |
KR20080022476A (ko) * | 2006-09-06 | 2008-03-11 | 엘지전자 주식회사 | 논컴플라이언트 컨텐츠 처리 방법 및 디알엠 상호 호환시스템 |
US9189195B2 (en) * | 2006-10-16 | 2015-11-17 | Sandel Avionics, Inc. | Integrity monitoring |
GB2444286B (en) * | 2006-12-01 | 2011-06-08 | Advanced Risc Mach Ltd | Improving processing efficiency on secure systems having a host processor and smart card |
US7778074B2 (en) * | 2007-03-23 | 2010-08-17 | Sigmatel, Inc. | System and method to control one time programmable memory |
EP1986122A1 (fr) * | 2007-04-23 | 2008-10-29 | Stmicroelectronics Sa | Unite de traitement securisee |
US8127131B2 (en) * | 2008-04-10 | 2012-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient security domain translation and data transfer |
US7823019B2 (en) * | 2008-05-08 | 2010-10-26 | Arm Limited | Debug circuitry |
US8051467B2 (en) * | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
JP5414057B2 (ja) * | 2009-05-22 | 2014-02-12 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
WO2012160760A1 (ja) | 2011-05-25 | 2012-11-29 | パナソニック株式会社 | 情報処理装置および情報処理方法 |
GB2499287A (en) * | 2012-02-08 | 2013-08-14 | Advanced Risc Mach Ltd | Exception handling in data processing with different security domains |
US9202071B2 (en) | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
KR101954733B1 (ko) | 2012-10-26 | 2019-03-06 | 삼성전자주식회사 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
GB2515047B (en) | 2013-06-12 | 2021-02-10 | Advanced Risc Mach Ltd | Security protection of software libraries in a data processing apparatus |
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 |
US9268970B2 (en) | 2014-03-20 | 2016-02-23 | Analog Devices, Inc. | System and method for security-aware master |
US9578054B1 (en) * | 2015-08-31 | 2017-02-21 | Newman H-R Computer Design, LLC | Hacking-resistant computer design |
US9772874B2 (en) | 2016-01-29 | 2017-09-26 | International Business Machines Corporation | Prioritization of transactions based on execution by transactional core with super core indicator |
CN108090376B (zh) * | 2016-11-23 | 2021-01-12 | 厦门雅迅网络股份有限公司 | 基于TrustZone的CAN总线数据防护方法及系统 |
GB2577878B (en) * | 2018-10-08 | 2020-11-11 | Advanced Risc Mach Ltd | Transition disable indicator |
US20230244824A1 (en) * | 2022-02-03 | 2023-08-03 | Bae Systems Information And Electronic Systems Integration Inc. | Firewall for on-chip signaling |
Family Cites Families (15)
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 |
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 |
EP0481735A3 (en) | 1990-10-19 | 1993-01-13 | Array Technology Corporation | Address protection circuit |
GB2260004B (en) | 1991-09-30 | 1995-02-08 | Apple Computer | Memory management unit for a computer system |
US5638537A (en) | 1993-01-29 | 1997-06-10 | Mitsubishi Denki Kabushiki Kaisha | Cache system with access mode determination for prioritizing accesses to cache memory |
US5491827A (en) | 1994-01-14 | 1996-02-13 | Bull Hn Information Systems Inc. | Secure application card for sharing application data and procedures among a plurality of microprocessors |
US5845129A (en) | 1996-03-22 | 1998-12-01 | Philips Electronics North America Corporation | Protection domains in a single address space |
JPH10177560A (ja) | 1996-12-17 | 1998-06-30 | Ricoh Co Ltd | 記憶装置 |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US7225333B2 (en) | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
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 |
US8271336B2 (en) * | 1999-11-22 | 2012-09-18 | Accenture Global Services Gmbh | Increased visibility during order management in a network-based supply chain environment |
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7272832B2 (en) * | 2001-10-25 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform |
-
2003
- 2003-10-27 GB GB0325015A patent/GB2396034B/en not_active Expired - Lifetime
- 2003-11-17 US US10/714,520 patent/US7185159B2/en active Active
- 2003-11-17 JP JP2003386040A patent/JP4302493B2/ja not_active Expired - Lifetime
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012195016A (ja) * | 2004-07-23 | 2012-10-11 | Texas Instruments Inc | 計算機システム内のセキュリティ侵害を識別して防ぐためのシステムと方法 |
US9158941B2 (en) | 2006-03-16 | 2015-10-13 | Arm Limited | Managing access to content in a data processing apparatus |
JP2007249933A (ja) * | 2006-03-16 | 2007-09-27 | Arm Ltd | データ処理装置内コンテンツへのアクセス管理 |
JP2010510584A (ja) * | 2006-11-15 | 2010-04-02 | クゥアルコム・インコーポレイテッド | エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル |
JP2010510583A (ja) * | 2006-11-15 | 2010-04-02 | クゥアルコム・インコーポレイテッド | 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
JP2008287706A (ja) * | 2007-04-19 | 2008-11-27 | Panasonic Corp | 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法 |
US8566959B2 (en) | 2007-04-19 | 2013-10-22 | Panasonic Corporation | Information security apparatus, security system, and method for preventing leakage of input information |
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 |
CN101477601B (zh) * | 2008-01-02 | 2013-04-17 | Arm有限公司 | 给非安全应用提供安全业务 |
US8332660B2 (en) | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
JP2009163738A (ja) * | 2008-01-02 | 2009-07-23 | Arm Ltd | 非安全アプリケーションへの安全サービスの提供 |
JP2010176630A (ja) * | 2009-02-02 | 2010-08-12 | Ntt Docomo Inc | 携帯端末 |
JP2014519639A (ja) * | 2011-05-05 | 2014-08-14 | イーベイ インク. | 取引セキュリティー強化のためのシステムおよび方法 |
JP2016106292A (ja) * | 2011-05-05 | 2016-06-16 | ペイパル インコーポレイテッド | 取引セキュリティー強化のためのシステムおよび方法 |
JP2020529063A (ja) * | 2017-08-01 | 2020-10-01 | シー−スカイ マイクロシステムズ カンパニー,リミテッド | トラステッドカーネルベースの耐攻撃データプロセッサ |
JP7113887B2 (ja) | 2017-08-01 | 2022-08-05 | シー-スカイ マイクロシステムズ カンパニー,リミテッド | トラステッドカーネルベースの耐攻撃データプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
GB0325015D0 (en) | 2003-12-03 |
GB2396034A (en) | 2004-06-09 |
US7185159B2 (en) | 2007-02-27 |
GB2396034B (en) | 2006-03-08 |
US20040170046A1 (en) | 2004-09-02 |
JP4302493B2 (ja) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4220476B2 (ja) | 安全ドメインおよび非安全ドメインを有するシステム内での仮想−物理メモリアドレスマッピング | |
JP4302493B2 (ja) | データ処理装置内のメモリへアクセスするための技術 | |
JP4447471B2 (ja) | 安全処理システムにおける例外タイプ | |
JP4302641B2 (ja) | デバイスによるメモリへのアクセスの制御 | |
JP4302492B2 (ja) | メモリへのアクセスを管理するための装置および方法 | |
JP4424973B2 (ja) | マルチドメインプロセッサのためのモニタ制御 | |
JP4302494B2 (ja) | データ処理装置内のメモリへアクセスするための技術 | |
JP4423012B2 (ja) | マルチドメインプロセッサのための診断データ捕捉制御 | |
JP4299107B2 (ja) | サスペンドされたオペレーティングシステムへデータ処理リクエストを送る方法 | |
JP4423206B2 (ja) | 安全モードと非安全モードとを切り換えるプロセッサ | |
US7171539B2 (en) | Apparatus and method for controlling access to a memory | |
US7383587B2 (en) | Exception handling control in a secure processing system | |
US7231476B2 (en) | Function control for a processor | |
WO2004046925A1 (en) | Security mode switching via an exception vector | |
JP2004171568A (ja) | 多数のオペレーティングシステムを使用するデータ処理システムにおける多数の割り込みの取り扱い | |
IL168336A (en) | Control of access to a memory by a device | |
JP4299108B2 (ja) | 多数のオペレーティングシステムの間のタスクの追従 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081030 |
|
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: 4302493 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 |