(57)【要約】  データ処理装置とアクセス要求を発生する方法とが提供される。バスマスターの外部から受け取った信号に応じて、データ処理装置の安全ドメインまたは非安全ドメインのどちらかで動作可能なバスマスターが提供される。バスマスターの通常動作時には固定されている信号が発生される。バスマスター装置が安全ドメインで動作している時に、デフォールトのメモリマップまたは安全に定義されたメモリ領域記述子のどちらかに依存して、安全または非安全アクセスのどちらかであることを示すバスマスター・コアにより発生されたアクセス要求と関係するドメイン指定信号を発生するよう動作する制御論理が提供される。従って、安全ドメインで動作しているバスマスターは、それ自体が安全及び非安全動作間を切り替え可能であることなしに、安全及び非安全アクセスの両方を発生可能である。
2010503909.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置であって、前記複数個のドメインは少なくとも１つの非安全ドメインと少なくとも１つの安全ドメインとを有し、安全ドメインでは前記装置は非安全ドメインからアクセス不能な安全データへのアクセスを有し、
特定のドメインに固定されデータへのアクセスが必要な時に前記データへのアドレスを指定するアクセス要求を発行するよう動作するバスマスター装置と、
前記アクセス要求をスレーブ装置へ運ぶバスであって、バス上に流れる各アクセス要求は当該アクセス要求と関係するドメインを識別する当該アクセス要求に関係したドメイン安全信号を有する前記バスと、
前記バスマスター装置が固定されているドメインを識別するためバスマスター装置の外部から発生されたドメイン指定信号を受取るよう動作するドメイン制御論理部を有する前記バスマター装置であって、当該ドメイン指定信号がバスマスター装置は安全ドメインに固定されていることを示す場合に、前記アクセス要求により指定された前記アドレスに依存して、ドメイン制御論理部は、前記アクセス要求と関係する非安全ドメイン安全信号を選択的に発生するよう動作可能である、前記バスマスター装置と、
を含む、データ処理装置。
【請求項２】
請求項１記載のデータ処理装置において、ドメイン制御論理部は、多数のメモリ領域の各々のアクセス制御情報を識別するメモリマップへのアクセスと、安全ドメインでの動作時にバスマスター装置によりアクセス要求が発行された場合にメモリ領域内のアドレスを指定するアクセス要求と関連して発行されなければならないドメイン安全信号の指示とを有する、データ処理装置。
【請求項３】
請求項１及至２いずれか記載のデータ処理装置において、前記ドメイン制御論理部は領域記述子へのアクセスを有し、各領域記述子はメモリ領域と関係して当該メモリ領域の領域安全性指示を提供し、前記領域記述子は安全ドメインで実行している所定のソフトウェアによりプログラム可能であり、前記ドメイン制御論理部は、前記領域指示信号とアクセス要求により指定されたアドレスを含むメモリ領域の領域記述子の前記領域安全指示との組み合わせから各アクセス要求の前記領域安全信号を得るよう動作可能であるデータ処理装置。
【請求項４】
請求項３記載のデータ処理装置において、前記ドメイン制御論理部は、前記ドメイン指定信号がバスマスター装置は安全ドメインに固定されていることを示す時に前記領域安全指示に依存した前記ドメイン安全信号を発生するよう動作する、データ処理装置。
【請求項５】
請求項３または請求項４記載のデータ処理装置において、請求項２に依存する時、前記アドレスが領域記述子を有するメモリ領域にある場合、前記ドメイン安全信号は前記領域安全指示と前記ドメイン指定信号の前記組み合わせから得られるが、一方その他の場合には前記ドメイン安全信号は前記メモリマップから得られた前記アクセス制御情報から得られる、データ処理装置。
【請求項６】
請求項１及至５いずれか記載のデータ処理装置において、前記ドメイン指定信号がバスマスター装置は非安全ドメインに固定されていることを示している時、前記ドメイン制御論理部は非安全として前記ドメイン安全信号を常に発生するよう動作する、データ処理装置。
【請求項７】
請求項１及至６いずれか記載のデータ処理装置において、前記ドメイン指定信号は前記バスマスター装置への静的入力である、データ処理装置。
【請求項８】
請求項１及至７いずれか記載のデータ処理装置において、前記ドメイン指定信号を発生するよう動作可能な安全制御論理部をさらに含む、データ処理装置。
【請求項９】
請求項１及至８いずれか記載のデータ処理装置において、前記ドメイン指定信号が前記バスマスター装置のリセットによってのみ変更可能である、データ処理装置。
【請求項１０】
請求項８記載のデータ処理装置において、前記バスマスター装置は起動時に安全ドメインで動作を開始し、前記安全制御論理部は以後のブート過程で非安全ドメイン指定信号を発生するよう切り替えて動作可能であり、前記安全制御論理部は以後再起動が発生するまで非安全ドメイン指定信号のみを発生するよう動作可能である、データ処理装置。
【請求項１１】
データ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置であって、前記複数個のドメインは少なくとも１つの非安全ドメインと少なくとも１つの安全ドメインとを有し、安全ドメインでは前記装置は非安全ドメインからアクセス不能な安全データへのアクセスを有し、
特定のドメインに固定されデータへのアクセスが必要な時に前記データへのアドレスを指定するアクセス要求を発行するバスマスター装置と、
前記アクセス要求をスレーブ装置へ運ぶバス装置であって、バス装置上に流れる各アクセス要求は当該アクセス要求と関係するドメインを識別するアクセス要求に関係したドメイン安全信号を有する前記バス装置と、
バスマスター装置が固定されているドメインを識別するためバスマスター装置の外部から発生されたドメイン指定信号を受取るドメイン制御論理部を有する前記バスマター装置であって、当該ドメイン指定信号がバスマスター装置は安全ドメインに固定されていることを示す場合に、前記アクセス要求により指定された前記アドレスに依存して、ドメイン制御論理部は、前記アクセス要求と関係する非安全ドメイン安全信号を選択的に発生する前記バスマスター装置と、を含む、データ処理装置。
【請求項１２】
データ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置でアクセス要求を発生する方法であって、前記複数個のドメインは少なくとも１つの非安全ドメインと少なくとも１つの安全ドメインとを有し、安全ドメインでは前記装置は非安全ドメインからアクセス不能な安全データへのアクセスを有し、
バスマスター装置が固定されているドメインを識別するためバスマスター装置の外部からドメイン指定信号を発生する段階と、
前記バスマスター装置からデータへのアクセスが必要な時にアクセス要求を発行する段階であって、前記アクセス要求は前記データのアドレスを指定する前記発行段階と、
ドメイン安全信号に前記アクセス要求を関連付け、当該アクセス要求と関係するドメインを識別する段階と、
前記ドメイン指定信号が前記バスマスター装置が前記安全ドメインに固定されていることを示す場合に、前記アドレスに依存して、前記アクセス要求と関係される非安全ドメイン安全信号を選択的に発生する段階と、を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置とその方法に関係し、特にメモリ中の安全及び非安全データへのアクセスの管理と関係する。
【背景技術】
【０００２】
あるプロセッサ上で実行している少なくとも１つのアプリケーションにより使用されているデータ項目（例えば、命令またはデータ値）が、プロセッサ上で実行可能であるその他のアプリケーションによりアクセス不能でなければならない重要データ項目であることがしばしばある。実例は、データ処理装置がスマートカードであり、アプリケーションの１つが、例えば安全キーのような極秘データを使用して、検証、認証、解読等を実行する安全アプリケーションの場合である。このような状況では、このような極秘データは安全に保持され、その他のアプリケーション、例えばこれらの安全データへのアクセスを探る目的でデータ処理装置にロードされたハッキング・アプリケーションによりアクセス不能となるようにすることが明らかに重要である。
【０００３】
既存のシステムでは、あるアプリケーションの安全データがオペレーティングシステムの制御下で実行しているその他のアプリケーションによりアクセス不可能となることを保証するようオペレーティングシステムが十分な安全性を提供することを保障するのは、通常オペレーティングシステムの開発者の仕事であった。しかしながら、システムがより複雑になるにつれて、オペレーティングシステムの一般的傾向はより大きくより複雑になっていき、このような状況下では、オペレーティングシステム自体の中で十分な安全性を保障することは非常に困難となってきている。
【０００４】
結果として、オペレーティングシステム安全性への依存を軽減しようとするため、データ処理装置に別のドメインを設け、これらのドメインがハードウェアレベルで安全性を処理する機構を提供するシステムを設けることが知られている。このようなシステムは、引用により本明細書に含まれる、共通して譲渡された共願の米国特許出願第１０／７１４，５６１号に例えば記載され、この出願は安全なドメインと非安全なドメインとを有するシステムを記載する。このシステムでは、非安全及び安全ドメインは事実上別の世界を確立し、安全なドメインは他の実行空間からハードウェア強制の境界により分離された信頼実行空間を提供し、同様に非安全ドメインは非信頼実行空間を提供する。特定の非安全ドメインで実行するプログラムは安全として識別されるデータへのアクセスを有していない。各アクセス要求は、アクセスが安全なアクセスかまたは非安全なアクセスであるかを識別するこれと関係するドメイン安全信号を有する。
【０００５】
安全なまたは非安全なドメインのどちらかで実行するプログラムでアクセス可能である記憶装置（例えば、キャッシュ）をデータ処理装置が含んでいる場合、安全ドメインで実行するプログラムによりアクセスされる前記装置中に記憶されたデータが非安全ドメインで動作するプログラムにアクセス不能であることを保障するためその機構を適所に入れる必要がある。引用により本明細書に含まれる共通して譲渡された米国特許出願第１０／７１４、４８１号は、対応するデータの安全性を指示する、追加的なフラグをキャッシュラインに設定するデータ処理装置を記載している。キャッシュラインの価値あるデータがキャッシュに書き込まれた時（通常ラインフィル過程の一部として）、関連するフラグがセットされてデータが安全なメモリ・アクセスと、または非安全メモリ・アクセスと関係しているのかを識別する。キャッシュ中のデータ項目へのアクセスは、そのドメイン安全信号が安全なアクセスであることを指示しているアクセス要求のみが関連するフラグにより指示されるような安全なキャッシュラインを参照可能であり、同様にそのドメイン安全信号が非安全アクセスであることを指示しているアクセス要求は関連するフラグにより指示されるような非安全キャッシュラインのみを参照可能であるように、フラグへの参照により制限される。このような方式は、非安全ドメインで動作しているプロセスが、その関連フラグが安全データを含んでいることを指示しているキャッシュ中の何らかの項目をアクセスすることをこれにより防止する。この設備は、安全ドメイン動作から非安全ドメイン動作へ遷移しようとするアクセスを有するプロセッサの前にキャッシュをフラッシュする必要性を回避する。
【０００６】
このようなシステムは安全データの安全性を保護する役割を果たすが、実際上安全及び非安全ドメイン間でデータの共有が望ましい場合もある。この１例は暗号解読過程であり、これ自体は安全ドメインで動作しなければならないが、非安全プロセスにアクセス可能であることが適切である解読済みデータを発生する。このようなデータは非安全メモリ領域に書き込まれ、そこから非安全プロセスによりアクセス可能である。
【０００７】
安全及び非安全ドメインの両方で動作可能なプロセッサを提供することは公知である（あるドメインから他方への遷移を管理するために使用される特殊なモニタ・コードにより）。このようなシステムでは、安全ドメインで動作するプログラムは非安全メモリへのアクセス要求を発行可能であり、たとえ安全ドメインから発行されてもこのデータ・アクセス要求を非安全とマークする。これはデータを非安全メモリ位置へ書き込むための安全なプロセスを可能とし、このデータがキャッシュに保持される場合、プロセッサ上で（または実際には異なるプロセッサ上で）実行する以後の非安全プロセスがキャッシュからこれへのアクセスを有するように、適切なキャッシュラインのフラグが非安全にマークされる。
【０００８】
しかしながら、安全及び非安全ドメインの両方をサポートするプロセッサの複雑度は多くのアプリケーションにとって不必要であるばかりでなく、安全または非安全ドメインのどちらかでプロセスを実行するその能力がハッキング攻撃を受けるかもしれないため、安全性脆弱性の可能性を与えるであろう。さらに、プロセッサが安全及び非安全ドメインの両方で動作する能力と関連する余分な論理部を提供することを避けることが有利であろう。しかしながら、一方の安全ドメイン（例えば、安全ドメイン）に固定されたプロセッサは異なるドメインの安全信号を発生する能力を有さず、実際システム内の複数ドメインを通常知らない。従って、この固定ドメイン・プロセッサにより使用されたデータを他のドメインで動作する他のプロセッサと共有する場合に問題が発生する。一例として、固定ドメイン・プロセッサが安全ドメインで動作しており、これから派生する全てのアクセス要求は外部的には安全アクセスとしてタグ付けされているものとする。データを非安全プロセスと共有する場合、このような安全なアクセスは非安全なメモリ領域をアクセス可能とする必要がある。しかしながら、たとえこのようなアクセスを許容した場合でも、キャッシュを使用していると問題が生じる、何故なら固定した安全なプロセッサの活動の結果としてキャッシュに記憶された何らかのデータは安全にマークされた対応するキャッシュラインフラグを有し、従って非安全なプロセスには見えないからである。この問題への１つの可能な解決法は、安全かつ非安全アクセスの両方を許容する非安全メモリの非キャッシュ可能域をこのプロセッサに使用させることであるが、この解決法はキャッシュを使用することの速度利得と電力節約の利点を犠牲にする。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従って、それ自体安全ドメイン間を遷移する能力なしに、かつ安全かつ非安全ドメインとデータの両方が存在するデータ処理装置内で柔軟な操作を保持できる簡単化されたプロセッサを動作可能とする技術を提供することが望ましい。
【課題を解決するための手段】
【００１０】
第１の観点から見ると、本発明はデータ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置であって、前記複数個のドメインは少なくとも１つの非安全ドメインと少なくとも１つの安全ドメインとを有し、安全ドメインでは前記装置は非安全ドメインからアクセス不能な安全データへのアクセスを有し、特定のドメインに固定されデータへのアクセスが必要な時に前記データへのアドレスを指定するアクセス要求を発行するよう動作するバスマスター装置と、前記アクセス要求がスレーブ装置へ向かうバスであって、バス上に流れる各アクセス要求は当該アクセス要求と関係するドメインを識別するそれに関係したドメイン安全信号を有する前記バスと、バスマスター装置が固定されているドメインを識別するためバスマスター装置に外部的に発生されたドメイン指定信号を受取るよう動作するドメイン制御論理部を有する前記バスマスター装置であって、当該ドメイン指定信号がバスマスター装置は安全ドメインに固定されていることを指示した場合に、前記アクセス要求により指定された前記アドレスに依存して、ドメイン制御論理部は、前記アクセス要求と関係する非安全ドメイン安全信号を選択的に発生するよう動作可能である、前記バスマスター装置と、を含む、データ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置を提供する。
【００１１】
本発明によると、データ処理装置は少なくとも１つの安全及び１つの非安全ドメインを有し、安全とラベル付けされたデータ処理装置内のデータは非安全ドメインで実行しているプロセスにはアクセス不能である。バスマスター装置は、これが安全または非安全ドメインのどちらで動作しているかを決定する外部線路上の信号を受取る。この信号はバスマスターが安全または非安全ドメインのどちらで動作しているかを「固定する」。バスマスター装置がバスを介してスレーブ装置へ向けられるアクセス要求を発行する時、ドメイン制御論理部はアクセス要求と関連するドメイン指定信号を発生するよう動作する。バスマスター装置が安全ドメインで動作している場合、ドメイン制御論理部は、アクセス要求により指定されたアドレスに応じて、非安全ドメイン指定信号を発生可能である。
【００１２】
外部信号により指定されたその安全ドメインを有することはバスマスター装置内に設けられなければならない論理部を簡略化する。さらに、その安全ドメインはバスマスター装置にとって内部的に指定されないため、バスマスター装置はシステム設計者が意図した通りに振舞うよう信頼可能である、何故ならどのような悪意あるコードをハッカーがバスマスター装置上で実行しようとしても、安全性ドメインの切り替え（特に非安全から安全へ）は選択肢にないからである。また、そのドメイン制御論理部により、安全な（それ故信頼された）プロセスにとって、選択されたアクセス要求は、安全なドメインから発生されたにも係わらず、アドレス依存の方法で、非安全としてラベル付け可能である。これは、安全なプロセスがデータを非安全位置として定義された記憶域に書き込む、またはキャッシュのような共有リソースにデータを記憶し、以後非安全プロセスが当該データをアクセスするように非安全データとしてこれをラベル付けすることも可能である。
【００１３】
１実施例では、ドメイン制御論理部は、多数のメモリ領域の各々のアクセス制御情報を識別するメモリマップへのアクセスと、安全ドメインでの動作時にバスマスター装置によりアクセス要求が発行された場合にメモリ領域内のアドレスを指定するアクセス要求と関連して発行されなければならないドメイン安全信号の指示とを有する。
【００１４】
従って、バスマスター装置が安全ドメインで動作している時、バスマスターがメモリマップの全ての領域の適切な安全性を「知る」ことを可能とする、メモリマップへの参照により、安全と指定されたメモリの領域のみならず、非安全と指定された領域へのアクセス要求も成功裏に発行される。
【００１５】
他の実施例では、ドメイン制御論理部は領域記述子へのアクセスを有し、各領域記述子はメモリ領域と関係し、当該メモリ領域の領域安全性指示を提供し、前記領域記述子は安全ドメインで実行している所定のソフトウェアによりプログラム可能であり、前記ドメイン制御論理部は、前記領域指示信号とアクセス要求により指定されたアドレスを含むメモリ領域の領域記述子の前記領域安全指示との組み合わせから各アクセス要求の前記領域安全信号を得るよう動作可能である。
【００１６】
このように、メモリの特定領域は、信頼ソフトウェアにより編集可能な、対応する領域記述子により指定されたそのアクセス許可と領域属性とを有することが可能である。特定のメモリ領域の領域記述子は、例えば当該領域へのアクセスはキャッシュ可能であるか、バッファ可能であるか、等を識別する１つ以上の領域属性を通常提供し、さらに例えば、プロセッサ・コアが特定の動作モードにある時にのみ問題の領域をアクセス可能であるかどうかを識別し、アクセス可能であるならば読み取り及び書き込みアクセスが可能であるか、または読み取りアクセスのみが可能であるか、等の１つ以上のアクセス許可を通常指定する。このようにして、メモリの特定領域の安全状態は、データ処理装置の動作時に必要に応じて動的に変更可能となる。
【００１７】
望ましい実施例では、ドメイン制御論理部は、前記ドメイン指定信号がバスマスター装置は安全ドメインに固定されていることを指示している時に前記領域安全指示に依存した前記ドメイン安全信号を発生するよう動作する。このようにして、対応する領域記述子に従ってそのアクセス要求に伴うドメイン安全信号の安全性を適合させるバスマスター装置の能力は、安全ドメインで動作している時にのみ起動される。
【００１８】
ドメイン安全信号を発生する前述の機構の相対的優先度は変更可能であることが認められるが、望ましい実施例で前記アドレスが領域記述子を有するメモリ領域にある場合、前記ドメイン安全信号は前記領域安全指示と前記ドメイン指定信号の前記組み合わせから得られるが、一方その他の場合には前記ドメイン安全信号は前記メモリマップから得られた前記アクセス制御情報から得られる。
【００１９】
望ましい実施例では、前記ドメイン指定信号がバスマスター装置は非安全ドメインに固定されていることを指示している時、前記ドメイン制御論理部は非安全として前記ドメイン安全信号を常に発生するよう動作する。従って、安全ドメインで動作しているバスマスター装置のみがそのアクセス要求に伴うドメイン安全信号の安全性を調節可能である。
【００２０】
１実施例では、ドメイン指定信号は前記バスマスター装置への静的入力である。この場合、バスマスター装置はある特定の安全ドメインに永久的に固定配線され、他の安全ドメインには切り替え不能である。
【００２１】
ドメイン指定信号を発生する多くの方法があることが認められるが、１実施例では、データ処理装置が前記ドメイン指定信号を発生するよう動作可能な安全制御論理部をさらに含む。このように、安全制御論部は、バスマスター装置が固定されて動作し、信頼されたシステム設計者指定の規則に従ってこの安全ドメインの定義を指向可能とする安全ドメインへの制御を有する。このような信頼された規則は、ドメイン指定信号が前記バスマスター装置のリセットによってのみ変更可能である１実施例で実証される。
【００２２】
特定の安全ドメインに固定されているバスマスター装置は、その動作中に安全及び非安全ドメイン間を遷移できないことを意味することが認められる。しかしながら、安全ドメインから非安全ドメインへの単一の遷移が可能である非常に限定された環境もある。特に１実施例では、バスマスター装置は起動時に安全ドメインで動作を開始し、前記安全制御論理部は以後のブート過程で非安全ドメイン指定信号を発生するよう切り替えて動作可能であり、前記安全制御論理部は以後再起動が発生するまで非安全ドメイン指定信号のみを発生するよう動作可能である。
【００２３】
このようにして、データ処理装置が起動する時、バスマスター装置は安全ドメインで一時的に動作し、信頼された起動コードが動作している間、しかし起動コードが完了する時またはその前に、バスマスター装置非安全モードに設定され、再起動なしには安全モードに切り替え不能である。バスマスター装置が安全ドメインで動作を許可されている間、これは起動時に設定用に一時的に許可することが有用であり、信頼された起動コードのみが実行され、バスマスター装置はその起動コードが完了する前に非安全ドメインに不可逆的に切り替えられるため、これは脆弱性を提示しないことを保障する。
【００２４】
１実施例では、バスマスター装置自体がシステム内のいくつかの信頼された要素を介して（例えば、安全ドメイン内のプロセッサで実行されるコード）再起動過程を開始可能としてもよい。これらの限定された環境では、バスマスター装置は認証された再起動を開始して非安全ドメインから安全ドメインへ遷移させることが可能である。バスマスター装置が認証する信頼されたコードを使用して、この機能は有効なハックされていないコードによってのみ開始可能であることが保障できる。
【００２５】
第２の観点から見ると、本発明はデータ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置であって、前記複数個のドメインは少なくとも１つの非安全ドメインと少なくとも１つの安全ドメインとを有し、安全ドメインでは前記装置は非安全ドメインからアクセス不能な安全データへのアクセスを有し、特定のドメインに固定されデータへのアクセスが必要な時に前記データへのアドレスを指定するアクセス要求を発行するバスマスター装置と、前記アクセス要求をスレーブ装置へ運ぶバス装置であって、バス装置上に流れる各アクセス要求は当該アクセス要求と関係するドメインを識別するそれに関係したドメイン安全信号を有する前記バス装置と、バスマスター装置が固定されているドメインを識別するためバスマスター装置の外部から発生されたドメイン指定信号を受取るドメイン制御論理部を有する前記バスマター装置であって、当該ドメイン指定信号がバスマスター装置は安全ドメインに固定されていることを指示した場合に、前記アクセス要求により指定された前記アドレスに依存して、ドメイン制御論理部は、前記アクセス要求と関係する非安全ドメイン安全信号を選択的に発生する前記バスマスター装置と、を含むデータ処理装置を提供する。
【００２６】
第３の観点から見ると、本発明はデータ処理装置の装置が動作可能な複数個のドメインを有するデータ処理装置でアクセス要求を発生する方法であって、前記複数個のドメインは少なくとも１つの非安全ドメインと少なくとも１つの安全ドメインとを有し、安全ドメインでは前記装置は非安全ドメインからアクセス不能な安全データへのアクセスを有し、バスマスター装置が固定されているドメインを識別するためバスマスター装置の外部からドメイン指定信号を発生する段階と、前記バスマスター装置からデータへのアクセスが必要な時にアクセス要求を発行する段階であって、前記アクセス要求は前記データのアドレスを指定する前記発行段階と、ドメイン安全信号に前記アクセス要求を関連付け、当該アクセス要求と関係するドメインを識別する段階と、前記ドメイン指定信号が前記バスマスター装置は前記安全ドメインに固定されていることを指示した場合に、前記アドレスに依存して、前記アクセス要求に関係する非安全ドメイン安全信号を選択的に発生する段階と、を含む方法を提供する。
【実施例】
【００２７】
図１は本発明の１実施例によるデータ処理装置のブロック線図である。バス１０はデータ処理装置の各種の部品を接続し、特にマスター装置からスレーブ装置へのデータ・アクセス要求を渡すことにより、マスター装置からスレーブ装置へ書き込まれるデータ項目を渡すかまたはスレーブ装置からマスター装置へ要求された読み取りデータ項目を返すかのどちらかにより、互いに通信することを可能とする。切り替え可能な安全プロセッサ２０は、アクセス要求を発行可能なバスマスター装置の例である。さらに、切り替え可能な安全プロセッサ２０は安全ドメインまたは非安全ドメインのどちらかで動作可能である。安全ドメインで動作している時、これは安全データとしてラベル付けされたデータ処理装置内のデータへのアクセスを有する。データ処理装置中のデータ項目の主記憶位置は、システム・キャッシュ４０を介してバス１０に接続されたメモリ３０である。「固定された」安全バスマスター５０も安全ドメインまたは非安全ドメインのどちらかで動作可能である。しかしながら、このバスマスター自体はこれが動作する安全ドメインに対しては制御を有さず、安全制御論理部６０から受け取る、信号ＴＺ＿ＮＳ＿ＣＴＬにより定義されるその安全ドメインを有する。
【００２８】
安全制御論理部６０はバスマスター５０の通常動作時はＴＺ＿ＮＳ＿ＣＴＬ信号が一定であることを保証し、実際１実施例ではＴＺ＿ＮＳ＿ＣＴＬ信号は高または低状態のどちらかに「ハード的に配線される」（すなわち、永久的に非安全ドメインであるかまたは安全ドメイン動作である）。より一般的には、安全制御論理部６０は、路７５を通して安全制御論理６０に信号を送るシステム制御器７０により制御される。
【００２９】
１例では、バスマスター５０は暗号コード化またはデコードのような、他の「マスター」プロセッサへのサービスを提供する「ヘルパ」プロセッサでもよい。この例では、バスマスターは安全ドメインで連続的に動作する、何故ならこれは暗号キーのような重要なデータを処理するからである。従って、安全制御論理部６０は連続的なＴＺ＿ＮＳ＿ＣＴＬ＝０（安全）信号を提供する。
【００３０】
他の例では、バスマスター５０の安全ドメインはその通常動作時は固定されるが、バスマスター５０の単一の一方向安全ドメイン遷移を可能とすることが有用である非常に限定された環境がある。例えば、バスマスター５０はデータ処理装置の起動時に安全ドメインで動作するが、以後データ処理装置の通常動作時は非安全ドメインでの動作を継続する。このような遷移が一方向であることを保証するため、この例では安全制御論理部６０は、安全から非安全への遷移を指示する、起動時の路７５上で受け取った唯一の安全ドメイン遷移信号にのみ応答し、以後安全制御論理部６０はシステム制御器７０から路８０上のリセット信号を受け取るまで、路７５上の信号の変化に係わらず連続した不変の非安全ＴＺ＿ＮＳ＿ＣＴＬ信号を発生するよう配置される。
【００３１】
バスマスター５０が安全ドメインで動作している時（例えばデータ処理装置起動ルーティン時）、バスマスター５０を非安全ドメインへそれ自身が遷移するように信号を送る事を可能とすることも有用であろう。このため、起動時のみ一時路８５が利用可能で、バスマスター５０が安全制御論理部６０からＴＺ＿ＮＳ＿ＣＴＬ信号の変化を直接トリガすることができる。このように、バスマスター５０がもはや安全ドメインで動作する必要がなくなると直ちに（例えばこれがその起動ルーティンを完了すると）、これは直ちに非安全動作に切り替え可能である。システム制御器７０が安全制御論理部６０とバスマスター５０の両方をリセットするまで安全な操作への切り替えは不可能となる。
【００３２】
図２は図１のシステム・キャッシュ４０のようなキャッシュを図示する。このようなキャッシュは通常いくつかのウェイ（ｗａｙ）（１００、１１０、１２０等）に分割される。各ウェイはＴＡＧアレイ１３０とデータアレイ１４０とに共通に分割されるアレイにデータを記憶する。メモリ３０に記憶されたデータ項目のコピーがデータアレイ１４０の項に記憶され、一方これらのデータ項目と関係する追加情報がＴＡＧアレイ１３０に記憶される。これらの関連情報の要素は、ＴＡＧ１５０、ダーティ（ｄｉｒｔｙ）ビット１６０、有効（ｖａｌｉｄ）ビット１７０及びＮＳビット１８０を通常含む。ＴＡＧはデータアレイ１４０の対応するデータ項目のメモリアドレスの一部に対応する。ダーティビット１６０と有効ビット１７０は対応するデータ項目がこのキャッシュラインに最初に記憶されてから更新されたかどうかと、このキャッシュラインのデータ項目が依然として有効であるかどうかを各々示す。ＮＳビットはこのキャッシュラインと関係する安全ドメインに対応する。従って、安全アクセスの目的であるデータにより充填されたキャッシュラインは０にセットされたＮＳビットを有し、非安全アクセスの目的であるデータにより充填されたキャッシュラインは１にセットされたＮＳビットを有する。これにより、非安全プロセスが安全データをアクセスする危険性なしで、安全ドメインと非安全ドメインの両方によりキャッシュを共有可能とする。これは、特定の安全ドメインからのデータ・アクセス要求は、そのＮＳビットが当該安全ドメインと整合するキャッシュのキャッシュラインへのアクセスのみが可能となるからである。
【００３３】
図３はバスマスター５０内のＣＰＵ２００を図示する。ＣＰＵ２００内で、プロセッサ・コア２１０がアクセス要求を発行し、アクセス要求の目的のデータを送受信する。プロセッサ・コア２１０からのアクセス要求はメモリ保護装置（ＭＰＵ）２２０内の制御論理部２３０に渡される。安全制御論理部６０により発生されたＴＺ＿ＮＳ＿ＣＴＬ信号は制御論理部２３０により受け取られる。ＭＰＵ２２０内で、記述子テーブル２４０はまたプロセッサ・コア２１０により発行されたアクセス要求を渡される。プロセッサ・コア２１０はドメイン指定信号ＴＺ＿ＮＳ＿ＣＴＬを受け取らないため、プロセッサ・コア自体は安全ドメインを認知しておらず、そうではなくドメイン安全指示は、プロセッサ・コア２１０から受け取ったアクセス要求、ドメイン指定信号ＴＺ＿ＮＳ＿ＣＴＬ、及び記述子テーブル２４０に記憶された情報に依存してＭＰＵ２２０により作成される。ドメイン安全指示（ＮＳ保護）を発生する論理は表１に要約されている。
【００３４】
表１に図示した論理によると、非安全＝０で安全＝１である。ＴＺ＿ＮＳ＿ＣＴＬ＝１（すなわち、ＣＰＵ２００が非安全ドメインで動作するように設定されている）時、発生される安全指示（ＮＳ保護）は常に１で、非安全ドメインで動作しているコアは非安全アクセスのみを発生可能であることを意味している。または、コアが安全ドメインで動作している（ＴＺ＿ＮＳ＿ＣＴＬ＝０）間でメモリ保護装置がイネーブル（ｅｎａｂｌｅ）されていない（ＭＰＵイネーブル＝０）である場合、安全指示ＮＳ保護は表２（以下に記載）に図示するようなデフォールトのメモリマップに応じて決定される。しかしながら、ＣＰＵが安全ドメインで動作し（ＴＺ＿ＮＳ＿ＣＴＬ＝０）、ＭＰＵがイネーブルされている（ＭＰＵイネーブル＝１）場合、安全指示ＮＳ保護は量ＮＳ領域の値により決定される。
【表１】
2010503909.tif 000003
【００３５】
記述子テーブル２４０はメモリアドレス領域のリストとその対応するＮＳ領域値を記憶する。特定のメモリアドレス領域内に該当するアドレスに対応するデータ・アクセス要求は記述子テーブル２４０にリストに記憶されたそれに対応するＮＳ領域の値を発生させる。記述子テーブル２４０に記憶されたリストは各種の形式を取り得ることが認められるが、１実施例ではＮＳ領域はＭＰＵ領域アクセス制御レジスタの属性である。これらのレジスタは０の論理値にリセットされるよう構成され、すなわちデフォールトで安全ドメインでの動作は安全アクセスを発生する。１実施例では、表１に定めたＮＳ保護の切り替えはデータ・アクセス要求にのみ適用されることに注意すべきである。このような実施例では、命令アクセス要求は常に安全ドメインの安全に整合する。これは、安全及び非安全ドメイン間でデータのみが共有され命令はされないことを保証する。従って、制御論理部２３０はＮＳ保護の適切な値を添加したバス１０へのプロセッサ・コア２１０からのアクセス要求を渡す。制御論理部２３０は領域属性とアクセス認可をアクセス要求に渡す、及び／または添加する（例えば、適切に、読み取り／書き込み認可、（非）キャッシュ可能、等）。
【００３６】
図１に示すように、ＣＰＵ２００は、レベル１キャッシュ２５０、それは統合した命令及びデータ・キャッシュでもよく、または別の命令及びデータ・キャッシュでもよい、を含んでもよい。通常、キャッシュ可能なアクセス要求に対しては、制御論理２３０は、アクセス要求がバス１０上を伝播する前にレベル１キャッシュ２５０でもルックアップ処理を実行させ、レベル１キャッシュ２５０がアクセス要求の目的であるデータ項目または複数のデータ項目を含んでいる場合、アクセス要求をバス１０に伝播させる必要性なしにアクセス要求はレベル１キャッシュ２５０への参照に進む。アクセス要求により指定されたアドレスがメモリのライトバック領域と関係している場合、同時にシステム・キャッシュ４０及び／またはメモリ３０での更新を実行することなくレベル１キャッシュで更新が発生可能であるが、ダーティビット（図２のダーティビット１６０と同様）がセットされてキャッシュのエントリーによりシステム・キャッシュ４０／メモリ３０のエントリーの以後の更新が必要であることを指示する。しかしながら、アドレスがライトスルー領域と関係している場合、更新はレベル１キャッシュ２５０で通常発生し、同時にアクセス要求はバス１０を介してシステム・キャッシュ４０／メモリ３０に伝播されてシステム・キャッシュ／メモリでの更新を発生させる。
【００３７】
表２は例示のデフォールトのメモリマップを図示する。このようなデフォールトのメモリマップは、ＴＺ＿ＮＳ＿ＣＴＬ＝０（すなわち、安全ドメイン動作）時に、メモリの特定領域へのアクセス要求の安全状態がどうあるべきか、かつその他のアクセス属性（以下を参照）を定義する。デフォールトのメモリマップは、ＭＰＵを実装しないＣＰＵまたはディスエーブル（ｄｉｓａｂｌｅ）された（表１の第１行を参照）またはアドレスが領域記述子によってカバーされない（従ってＮＳ領域の値が定義されないもの）アクセス要求のＭＰＵを有するＣＰＵに使用してもよい。
【表２】
2010503909.tif 000004
【００３８】
上記表２で、１実施例では非安全のＮＳ保護値は論理１値を与えられ、安全のＮＳ保護値は論理０値を与えられる。
【００３９】
表２の例示メモリマップでは、上部の６メモリアドレス範囲はデータ記憶にのみ割り当てられ、下部の６メモリアドレス領域は命令記憶またはデータ記憶のどちらかに割り当てられる。データ専用メモリでは、記憶したデータ項目の実行は不能であり、この領域のアドレスへの命令アクセス要求はアボートされる。データ専用メモリは強力に整列（すなわち、キャッシュされない）ものと共有／非共有（すなわち、マルチプロセッサ装置内でハードウェア・コヒーレンシ方式の対象となることが可能か不能か）の領域に副分割される。
【００４０】
下部の６メモリアドレス領域は命令実行を許容する。これらのメモリ領域は、共有／非共有及びキャッシュ不能、ライトスルー（ＷＴ）キャッシュ可能またはライトバックライトアロケート（ＷＢＷＡ）キャッシュ可能のようなその他のアクセス属性を有する。
【００４１】
図４は、記述子テーブル２４０に記憶された領域記述子が存在するアドレス３１０、３２０及び３３０の３つの副領域が定義されているメモリアドレス空間３００の領域を概略的に図示する。メモリアドレス空間３００の残りは、領域記述子が存在しない（すなわち、ＮＳ領域の値が定義されていない）ものとデフォールトのメモリマップ（表２）を使用する（またはこのような領域へのアクセスはアボートを発生）もののメモリアドレス領域から構成される。
【００４２】
図５は本発明の１実施例による図３の制御論理部２３０の動作を図示する流れ図である。段階４００で制御論理部２３０はプロセッサ・コア２１０から受け取るデータ・アクセス要求を待機する。段階４１０でデータ・アクセス要求を受け取ると、記述子テーブル２４０でのルックアップが実行される。段階４２０でヒットが発生しなかったことが確立した場合、段階４３０で対応するアドレスにデフォールトのメモリマップ項目が利用可能であるかどうか検査される。そうではない場合、アボートが発行される（段階４４０）。このアドレスのデフォールトのメモリマップ項目がある場合、当該情報よりＮＳ保護が発生され（段階４５０）、アドレスはＮＳ保護値と所要の認可と共に出力される。段階４２０でヒットが有った場合、記述子テーブルで１つ以上のヒットが発生したかどうかを検査される（段階４６０）。本実施例では、複数の重なり合った領域記述子が可能である。これは例えば特定のメモリ装置での全てのアドレスに定義された共通の領域記述子と当該装置内のあるアドレスに定義された特定の領域記述子である。段階４７０で１つ以上のヒットが有る場合、優先度基準が適用されて最高の優先度ヒットを選択する、すなわち特定のアドレスに定義された全ての領域記述子の中で、最高の優先度のものが取られる。段階４８０で、制御論理部２３０は、選択した領域記述子のＴＺ＿ＮＳ＿ＣＴＬの受け取った値とＮＳ領域値に従ってＮＳ保護の値を発生する。最後に、段階４９０でデータ・アクセス要求が関連するＮＳ保護値と必要に応じて許可と共にバス１０またはレベル１キャッシュ２５０へ直接に出力される。
【００４３】
要約すると、本発明の実施例の以上の説明から、データ処理装置とアクセス要求を発生する方法とが提供されることが認められる。バスマスターの外部から受け取った信号に応じて、データ処理装置の安全ドメインまたは非安全ドメインのどちらかで動作可能なバスマスターが提供される。バスマスターの通常動作時には固定されている信号が発生される。バスマスター装置が安全ドメインで動作している時に、デフォールトのメモリマップまたは安全に定義されたメモリ領域記述子のどちらかに依存して、安全または非安全アクセスのどちらかであることを示すバスマスター・コアにより発生されたアクセス要求と関係するドメイン指定信号を発生するよう動作する制御論理が提供される。従って、安全ドメインで動作しているバスマスターは、それ自体が安全及び非安全動作間を切り替え可能であることなしに、安全及び非安全アクセスの両方を発生可能である。
【００４４】
本明細書で特定の実施例を記述してきたが、本発明はこれに限定されるものではなく、発明の範囲内で多くの変更とこれへの追加が出来ることが認められる。例えば、本発明の範囲から逸脱することなく独立請求項の機能と以下の従属の請求項の機能の各種の組み合わせが可能である。
【図面の簡単な説明】
【００４５】
本発明を、単なる一例として、添付の図面に図示したその実施例を参照して以下にさらに記述する。
【図１】本発明の１実施例によるデータ処理装置のブロック線図。
【図２】本発明の１実施例によるデータ・キャッシュを概略的に図示する。
【図３】本発明の１実施例によるバスマスター装置のブロック線図。
【図４】本発明の１実施例によるメモリアドレス空間の一部を概略的に図示する。
【図５】本発明の１実施例による図３の制御論理の動作を図示する流れ図。
【図１】
2010503909.tif 000005
【図２】
2010503909.tif 000006
【図３】
2010503909.tif 000007
【図４】
2010503909.tif 000008
【図５】
2010503909.tif 000009
【国際調査報告】
2010503909.tif 000010
2010503909.tif 000011