(57)【要約】  本発明における一実施形態は、データプロセッシングシステム１０内においてより安全な操作環境を確保するため、柔軟な周辺素子アクセス保護機構を提供する。例えば、データプロセッシングシステムは、共有された周辺素子２２, ２４へアクセスを要求している安全なバスマスタ１２と安全でないバスマスタ１４, １５を組み合わせて含んでいる。一実施形態では、安全なバスマスタ１２により、各周辺素子に対するそれぞれの安全でないバスマスタに対応する、アクセス許可の動的更新を考える。従って、安全なバスマスタは、どの安全でないバスマスタがどの周辺素子へのアクセス許可を持っているのか明らかにすることができ、安全でないバスマスタ上で動作している正常でない、または敵意のあるソフトウェアによる破壊からデータプロセッシングシステムを保護する。バスマスタ識別子３６の使用を通して、安全なバスマスタによって確立した許可に基づき、要求された周辺素子へのアクセスが許可、または拒否される。
2005520231.tif 000002
【特許請求の範囲】
【請求項１】
データプロセッシングシステムにおける周辺素子へのアクセス保護を提供する方法であって、
周辺素子（２２，２４）へのアクセスを要求するバスサイクルを開始することと、
前記バスサイクルの少なくとも一部分の間において、バスマスタ識別子（３６）を提供することと、
バスマスタ識別子を使用して、バスサイクルのアクセス制御情報を選択することと、
アクセス制御情報が、そのバスマスタによる周辺素子へのアクセスを許可するかを判定することとを備える方法。
【請求項２】
請求項１記載の方法において、
周辺素子へのアクセスを要求する第二バスサイクルを開始することと、
第二バスサイクルの少なくとも一部分の間において、第二バスマスタ識別子を提供することと、
第二バスマスタ識別子を使用して、第二バスサイクルの第二アクセス制御情報を選択することと、
第二アクセス制御情報が、第二バスマスタによる周辺素子へのアクセスを許可するかを判定することとを更に備える方法。
【請求項３】
請求項１記載の方法において、
アクセス制御情報がバスマスタによる周辺素子へのアクセスを許可する場合には、バスサイクルを継続し、周辺素子へアクセスすることと、
アクセス制御情報がバスマスタによる周辺素子へのアクセスを許可しない場合には、周辺素子へアクセスする前にバスサイクルを終了させることとを更に備える方法。
【請求項４】
請求項１記載の方法において、
アクセス制御情報を保存する記憶回路へのアクセスを要求する第二バスサイクルを開始することと、
第二バスサイクルの少なくとも一部分の間において、第二バスマスタ識別子を提供することと、
第二バスマスタ識別子が、アクセス制御情報を保存する記憶回路へのアクセスを許可するかを判定することとを更に備える方法。
【請求項５】
請求項１記載の方法において、
周辺素子へのアクセスを要求する第二バスサイクルを開始することと、
バスサイクルの少なくとも一部分の間において、バスマスタ識別子を提供することと、
バスマスタ識別子を使用して、第二バスサイクルの第二アクセス制御情報を選択することと、
第二アクセス制御情報がバスマスタによる周辺素子へのアクセスを許可するかを判定することとを更に備え、
第一バスサイクルは読み取りバスサイクルであり、第二バスサイクルは書き込みバスサイクルである方法。
【請求項６】
請求項１記載の方法において、
前記周辺素子の別の部分へのアクセスを要求する第二バスサイクルを開始することと、
第二バスサイクルの少なくとも一部分の間において、バスマスタ識別子を提供することと、
バスマスタ識別子と少なくとも一つのアドレス信号を使用して、第二バスサイクルの第二アドレス制御情報を選択することと、
第二アクセス制御情報が、第二バスマスタによる前記周辺素子の別の部分へのアクセスを許可するかを判定することとを更に備える方法。
【請求項７】
アドレス部分（４２）、データ部分（４０）、およびバスマスタ識別子部分（３６）を備えるシステムバス（１６）と、
システムバスに接続された、第一バスマスタ（１４）と、
システムバスに接続された、第二バスマスタ（１５）と、
周辺バス（２０）と、
周辺バスに接続された周辺素子（２２，２４）と、
システムバスと周辺バスとを接続するためのインターフェース回路（１８）と、
第一バスマスタに対応する第一アクセス制御値を保存する第一記憶回路（６０）と、
第二バスマスタに対応する第二アクセス制御値を保存する第二記憶回路（６２）と、
システムバスに接続され、かつ第一記憶回路および第二記憶回路に接続された、バスマスタ許可判定回路とを備え、前記バスマスタ許可判定回路は、バスマスタ識別子部分を使用して、現在の周辺素子へのアクセスが、第一バスマスタによってなされていることを示すバスマスタ識別子部分に応じて第一アクセス制御値を選択し、前記バスマスタ許可判定回路は、第一アクセス制御値により、第一バスマスタによる周辺素子へのアクセスが拒否されるかを判定するデータプロセッシングシステム（１０）。
【請求項８】
請求項７記載のデータプロセッシングシステムにおいて、第一記憶回路および第二記憶回路は、データプロセッシングシステムのメモリマップ内であって、周辺素子とは異なる場所に位置するレジスタの少なくとも一部分を備えるデータプロセッシングシステム。
【請求項９】
請求項７記載のデータプロセッシングシステムにおいて、システムバスは、
バスマスタ許可判定回路に接続されたシグナルを更に備え、該シグナルは、第一バスマスタによる周辺素子へのアクセス拒否を示すために使用されるデータプロセッシングシステム。
【請求項１０】
データプロセッシングシステムで周辺素子へのアクセス保護を提供する方法において
第一バスマスタ（１４，１２）を提供することと、
第二バスマスタ（１５）を提供することと
周辺素子（２２, ２４）へのアクセスを要求する第一バスサイクルを開始することと、
第一バスサイクルの少なくとも一部分の間において、第一バスマスタに対応する第一バスマスタ識別子を提供することと、
第一バスマスタ識別子を使用して、第一バスサイクルの第一アクセス制御情報を選択することと、
第一アクセス制御情報を使用して、第一バスマスタが周辺素子へのアクセスを許可されないために、第一バスサイクルが終了されるかを判定することと、
周辺素子へのアクセスを要求する第二バスサイクルを開始することと、
第二バスサイクルの少なくとも一部分の間において、第二バスマスタに対応する第二バスマスタ識別子を提供することと、
第二バスマスタ識別子を使用して、第二バスサイクルの第二アクセス制御情報を選択することと、
第二アクセス制御情報を使用して、第二バスマスタが周辺素子へのアクセスを許可されないために、第二バスサイクルが終了されるかを判定することとを備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータプロセッシングシステムに関連する。さらに特定すると、周辺素子へのアクセス保護を含むデータプロセッシングシステムに関連する。
【背景技術】
【０００２】
システムオンチップ（ＳｏＣ）では、通常、共通の周辺素子を有する複数のマスタを備える。ＳｏＣにおけるマスタのいくつかは、信用できない（ｎｏｎ−ｔｒｕｓｔｅｄ）マスタであることがある。そのようなシステムでは、いくつかの、または全ての周辺素子を信用できないマスタによるアクセスから保護する必要がある。これは、そのようなアクセスがシステムの破壊を招く恐れがあるためである。例えば、信用できないマスタ上で動作しているソフトウェアからウィルスが取り込まれたり、または信用できないマスタは、システムの周辺素子にある安全な情報へのアクセスに使用されたりする。周辺素子の保護はまた、安全なデータ処理を確保するため必要とされる。
【０００３】
一つの従来技術の解決策では、周辺素子がマスタ間では共有されないように、システム内の各マスタはそれぞれのマスタに専属の周辺素子を所有することが必要とされる。しかしながら、専属周辺素子の使用は、共有されるであろう多くの周辺素子の複製が必要になり、結果として、チップ面積、コストの増加を招く。専属周辺素子を有するマスタの使用はまた、システム内の負荷分散処理の使用を妨げる。例えば、マスタが転送されたプロセスを処理するのに必要な専属周辺素子を所有していない場合には、あるマスタで実行されているプロセスは、そのシステム内の別のマスタへ転送することができない。その結果、システムの効率が下がることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、信用できないマスタによる共有の周辺素子へのアクセスを防ぎながらも、信用できるマスタおよび信用できないマスタの双方がデータプロセッシングシステム内において、周辺素子を共有することが可能であるデータプロセッシングシステムが必要とされている。
【課題を解決するための手段】
【０００５】
本発明の一実施形態は、データプロセッシングシステム内においてより安全な操作環境を確保するため、柔軟な周辺素子アクセス保護機構を提供する。例えば、データプロセッシングシステムは、共有周辺素子へのアクセスを必要とする安全なバスマスタと安全でないバスマスタとを組み合わせて含んでいる。一実施形態では、安全なバスマスタによる、各周辺素子に対するそれぞれの安全でないバスマスタに対応するアクセス許可の動的更新が可能となる。従って、安全でないバスマスタ上で動作している正常でない、または敵意のあるソフトウェアによる破壊からデータプロセッシングシステムを保護するために、安全なバスマスタは、どの安全でないバスマスタがどの周辺素子へのアクセス許可を有しているのか明らかにすることができる。バスマスタ識別子の使用を通して、安全なバスマスタによって確立した許可に基づき、要求された周辺素子へのアクセスが許可、または拒否される。
【発明を実施するための最良の形態】
【０００６】
本発明は、例として、添付の図面によって図示されるが、これに限定されるものではな
い。添付図面中、同一の参照符号は同様の要素を示すものとする。
当業者であれば、各図面の要素が単純かつ明瞭に表され、必ずしも実際の寸法に即して描かれていないことが認識されよう。例えば、図面中にあるいくつかの要素の寸法は、本発明の実施形態を理解しやすくするように、他の要素に比べ誇張して描かれている。
【０００７】
図１は、データプロセッシングシステム１０の一実施形態を表す。データプロセッシングシステム１０は、安全なバスマスタ１２、バススレーブ２６、安全でないバスマスタ１４、安全でないバスマスタ１５、バスアービトレイションロジック２８、システムバス１６、バスインターフェース１８、周辺バス２０、および周辺素子２２, ２４を含む。安全なバスマスタ１２、バススレーブ２６、安全でないバスマスタ１５、バスアービトレイションロジック２８、およびバスインターフェース１８は、全て双方向によりシステムバス１６に接続されている。バスインターフェース１８、周辺素子２２および周辺素子２４は、全て双方向で周辺バス２０に接続されている。周辺素子２２は、周辺回路１９および周辺レジスタ２１を含み、周辺素子２４は、周辺回路２３および周辺レジスタ２５を含む。図１では周辺素子２２, ２４の二つのみが表されているが、データプロセッシングシステム１０は、周辺バス２０に接続されている任意の数の周辺素子を含んでよい。同様に、任意の数の安全なバスマスタ、安全でないバスマスタ、およびスレーブ装置をシステムバス１６に接続してよく、図１に示されている内容に限定されるものではない。また、図１は、バスアービトレイションロジック２８をシステムバス１６に接続されている独立したユニットとして表しているが、バスアービトレイションロジック２８の部分は、システムバス１６に接続されている各バスマスタの中に（または、バスマスタの一部分の中に）あってもよい。（バスアービトレイションロジック２８は、今日の技術においてよく知られているバスアービタとして動作し得る。）
一実施形態では、安全なバスマスタ１２、安全でないバスマスタ１４、および安全でないバスマスタ１５は、マイクロプロセッサ、デジタルシグナルプロセッサ等のようなプロセッサであるか、またはダイレクトメモリアクセス（DMA)ユニットのような、その他のタイプのマスタ装置であることもある。ある実施形態では、安全なバスマスタ１２は、安全でないバスマスタ１４および安全でないバスマスタ１５よりも破壊されにくいプロセッサである。例えば、安全なバスマスタ１２は、安全なバスマスタ１２の製造業者によって完全に制御されている命令を実行する。（即ち、安全なバスマスタ１２上で動作しているソフトウェアは、信用できるソフトウェアであると認められている。）つまり、この例では、第三者によるソフトウェアは、安全なバスマスタ１２上では実行不可能であり、第三者による安全なバスマスタ１２へのアクセスは許されない。或いは、安全なバスマスタ１２のセキュリティレベルは、完全に安全なレベルから、あまり信用できないレベルまで変えることができ、そのセキュリティレベルはデータプロセッシングシステム１０の設計によるが、安全なバスマスタ１２は、通常、安全でないバスマスタ１４、および安全でないバスマスタ１５よりも安全である。
【０００８】
安全でないバスマスタ１４および安全でないバスマスタ１５は、通常、よりアクセス可能である。一実施形態では、安全でないバスマスタ１４、および安全でないバスマスタ１５は汎用アプリケーションプロセッサであり、第三者によるソフトウェア（例えば、ユーザにより開発されたソフトウェア）、または、その他の信用できないソフトウェア（その内容やそのソフトウェアの機能は、通常、未知である。）を受け取り、実行する。信用できないソフトウェアであるため、そのソフトウェアは、安全なバスマスタ１２、または周辺素子２２および周辺素子２４を破壊しようと試みるかもしれない。または、そのソフトウェアは、データプロセッシングシステム１０の中へウィルスを送り込んだり、安全なバスマスタ１２、周辺素子２２、および周辺素子２４、またはデータプロセッシングシステム１０にある安全な情報にアクセスしようと試みる可能性がある。
【０００９】
バススレーブ２６は、例えば、安全なバスマスタ１２および安全でないバスマスタ１４
, １５によるアクセス可能なメモリのような、任意のスレーブ装置であってもよい。周辺素子２２, ２４は、万能非同期送受信機（UART) 、リアルタイムクロック（RTC)、キーボード制御装置等のような、いかなる周辺素子でもよい。周辺回路１９は、周辺バス２０と周辺レジスタ２１との間の通信を許可する。同様に、周辺回路２３は周辺バス２０と周辺レジスタ２５との間の通信を許可する。代替実施形態では、代わりに、周辺素子２２は記憶装置であり、周辺レジスタ２１は、特定のメモリアドレスとなることもある。
【００１０】
動作中、安全なバスマスタ１２、安全でないバスマスタ１４および安全でないバスマスタ１５は、システムバス１６にアクセス要求を行い、システムバス１６に接続している他のスレーブ装置にアクセス要求を行う。または、安全なバスマスタ１２、安全でないバスマスタ１４および安全でないバスマスタ１５は、バスインターフェース１８を介して、周辺素子２２, ２４にアクセス要求を行う。バスインターフェース１８は、下記に記述されるように、特定の周辺素子または特定のレジスタ（またはレジスタ一式）への要求が許可されるかを判定する。アクセス要求が許可されなければ、バスインターフェース１８はシステムバス１６を介して、バスエラー応答を返すことになる。一方、その要求が許可されると、バスインターフェース１８は、全ての必要なバスプロトコルを提供し、その要求を完了する。一実施形態では、安全なバスマスタ１２は、通常、信頼できるプロセッサのため、周辺素子２２, ２４への無制限のアクセスを有する。しかしながら、安全でないバスマスタ１４, １５はそれぞれ周辺レジスタ２１、および周辺レジスタ２５に対し、安全なバスマスタ１２によって確立されるような、限られたアクセス権のみを有し得る。安全でないバスマスタは、データプロセッシングシステム１０の効率的な動作のために、周辺素子のリソースの一部にアクセスを要求することも可能である。しかしながら、信頼できるバスマスタによる周辺素子へのアクセスに限定することにより、高度なシステムの完全性および安全性を維持することが可能である。
【００１１】
図２は本発明における一実施形態に即した、図１におけるバスインターフェース１８の一部分を表す。バスインターフェース１８は、制御回路４４およびアクセス制御レジスタ３０を含む。制御回路４４はシステムバス１６を介して、アドレス４２、データ４０および制御３８を提供し、受け取りもする。制御回路４４はまた、システムバス１６を介して、バスマスタ識別子３６を受け取る。制御回路４４は、安全なバスマスタによるレジスタ３０への読み書きアクセスを行うため、アクセス制御レジスタ３０に双方向に接続された回路４６を含む。制御回路４４はまた、周辺素子２２, ２４にアクセスするための回路４８を含む。回路４８はアクセス制御レジスタ３０からの情報を受け取る、バスマスタ許可判定回路５０を含む。制御回路４８はまた、シグナルブリッジ回路５２を含み、周辺素子２２, ２４から、または周辺素子２２, ２４への適切なシグナルを受け取る、または提供するために、双方向に周辺バス２０に接続されている。アクセス制御レジスタ３０は、アクセス制御レジスタ３２、およびアクセス制御レジスタ３４を含む。一実施形態では、アクセス制御レジスタ３０は、図３および図４を参照して以下に記述されるように、唯一つのレジスタを含んでもよいし、或いは、任意の数のレジスタを含んでもよい。
【００１２】
動作中、バスインターフェース１８は、バスマスタ識別子３６に基づき、アクセス制御レジスタ３０へのアクセスを提供する。バスマスタ識別子３６は、どのバスマスタが、現在、アクセス要求を行っているのか、制御回路４４に知らせる。例えば、一実施形態では、データプロセッシングシステム１０の各バスマスタは、対応する識別番号（ID）を所有する。例えば、安全なバスマスタ１２は、対応する識別番号を０とし、安全でないバスマスタ１４は対応する識別番号を１とし、さらに安全でないバスマスタ１５は対応する識別番号を２とする。従って、データプロセッシングシステム１０のどのバスマスタも、唯一の識別番号が割り当てられる。ある特定のバスマスタが周辺素子へのアクセスを要求すると、そのバスマスタに対応する識別番号がバスマスタ識別子３６として制御回路４４に提供される。この例では、バスマスタ識別子３６が０ならば、安全なバスマスタ１２が示さ
れる。代わりの実施形態では、どのタイプの識別システムでも、安全なバスマスタ（または複数の安全なバスマスタ）と安全でないバスマスタの識別、および異なるバスマスタ間での識別に使用可能である。
【００１３】
回路４６を介するバスインターフェース１８は、安全なバスマスタのみがアクセス制御レジスタ３０への読み書きアクセスが取得可能であることを保証する。回路４６は送られてくるバスマスタ識別子３６を比較し、安全なバスマスタ１２がアクセス制御レジスタ３０への読み書きアクセスを要求しているのか、または安全でないバスマスタ（安全でないバスマスタ１４、または安全でないバスマスタ１５のような）がアクセス制御レジスタ３０への読み書きアクセスを要求しているのかを判定する。従って、前段落で記述した例では、回路４６は、バスマスタ識別子３６を０と比較し、アクセス制御レジスタ３０への読み書きアクセスが許可されるかを判定する。安全なバスマスタ１２がアクセス制御レジスタ３０への読み書きアクセスを要求するならば、安全なバスマスタ１２はそのアクセスを認められ、自由にアクセス制御レジスタ３０の読み取り、およびアクセス制御レジスタ３０への書き込みが可能となる。このような方法で、安全なバスマスタ１２は、アクセス制御レジスタ３０にプログラムすることにより、それぞれの安全でないバスマスタに対して認められるアクセス許可を設定することができる。安全なバスマスタ１２は、システムの起動の際、システムの初期化の際、ソフトウェアアプリケーションの起動に応答して、またはその他の適切な時間に、アクセス制御レジスタ３０へ前記値をプログラムしてもよい。これはアクセス制御レジスタ３０が必要に応じて更新される、アクセスレジスタ３０への動的なアクセスを可能にする。或いは、代わりの方法としては、アクセス制御レジスタ３０にある値は、一回のみプログラムされるか（例えばライトワンスメモリの使用により）、限られた回数内でプログラムされるか、またはその値は固定とすることである。周辺素子２２, ２４にアクセスするための回路４８について議論する前に、アクセス制御レジスタ３０の内容について図３および図４を参照しながら説明する。
【００１４】
図３は、アクセス制御レジスタ３０内にあるアクセス制御レジスタの一実施形態を表したものである。例えば、図３は、安全でないバスマスタ１４による周辺素子へのアクセス制御ビット６０、および安全でないバスマスタ１５による周辺素子へのアクセス制御ビット６２を有する、アクセス制御レジスタ３２を表す。この例では、アクセス制御レジスタ３０は、図３のアクセス制御レジスタ３２のような唯一つのレジスタのみ必要とし得る。アクセス制御レジスタ３２において、周辺素子へのアクセス制御ビット（制御ビット６０および制御ビット６２のような）が、各安全でないバスマスタに提供される。各組の周辺素子へのアクセス制御ビットは、１ビット以上を有することが可能であり、アクセス制御ビットは、対応する安全でないバスマスタのアクセス制御情報を提供する。一実施形態では、各組の周辺素子へのアクセス制御ビットは、周辺素子につき１ビットを有し、その１ビットは、対応する安全でないバスマスタによる、対応する周辺素子への読み書きアクセスが許可されるか否かを示す。或いはまた、各組の周辺素子へのアクセス制御ビットは、周辺素子につき２ビットを含むこともある。その２ビットの内の１ビットは、対応する安全でないバスマスタによる、対応する周辺素子への読み取りアクセスが許可されるか否かを示し、他の１ビットは、対応する安全でないバスマスタによる、対応する周辺素子への書き込みアクセスが許可されるか否かを示す。
【００１５】
さらに別の実施形態では、各周辺素子内の周辺レジスタは下位の組（または部分）に分割されることが可能で、各下位の組は、一つ以上の周辺レジスタを含むことができ、アクセス要求しているバスマスタ、およびアクセスのタイプにより、特定の下位の組、またはレジスタの部分へのアクセスが許可、または拒否される。この実施形態は、図４を参照することにより、より理解しやすくなる。例えば、図４は安全でないバスマスタ１４による周辺素子への制御ビット６０を表し、制御ビット６０は、周辺レジスタ２１の異なる部分にアクセスするため、読み取り、および書き込みの両方のアクセス制御ビットを含む。例
えば、周辺レジスタ２１の読み取りアクセス制御ビット第一部分６４、および周辺レジスタ２１の書き込みアクセス制御ビット第一部分６６は、それぞれ安全なマスタ１２により認められている読み取りおよび書き込みアクセス制御情報を、安全でないマスタ１４が周辺素子２２にある周辺レジスタ２１の第一部分にアクセスするために、安全でないマスタ１４に提供する。同様に、周辺レジスタ２１の読み取りアクセス制御ビット第二部分６８、および周辺レジスタ２１による書き込みアクセス制御ビット第二部分７０は、それぞれ安全なマスタ１２により認められている読み取り、および書き込みアクセス制御情報を、安全でないマスタ１４が周辺素子２２にある周辺レジスタ２１の第二部分にアクセスするために、安全でないマスタ１４に提供する。従って、周辺レジスタの一部分のみ、アクセスが認められることとなる。また、周辺レジスタ２１の第一部分、および周辺レジスタ２１の第二部分はレジスタ２１内の重複する部分であってもよいし、またはレジスタ２１内の全く異なる部分であってもよい。さらにレジスタ２１の各部分に対する、個々の読み取りアクセス制御ビットおよび書き込みアクセス制御ビットが、レジスタ２１の特定の部分に対して、読み取りアクセスおよび書き込みアクセスの両方とも許可される、または両方とも拒否されるということは要求されなくてもよい。
【００１６】
安全でないバスマスタ１４による周辺素子へのアクセス制御ビット６０は、必要に応じて任意の数の制御ビットを含む。例えば、制御ビット６４, ６６, ６８, ７０に加えて、周辺レジスタ２５（または周辺レジスタ２５の部分）への特定の読み取りアクセス許可、および書き込みアクセス許可のための制御ビットは、制御ビット６０の部分として含まれることが可能である。つまり制御ビット６０は、安全でないバスマスタ１４の周辺バス２０上の周辺素子への読み取りアクセス許可、および書き込みアクセス許可を定義するのに必要な制御ビットを含む。上述したこれらの許可は、安全なバスマスタ１２によって完全に制御可能であり、安全なバスマスタ１２のみ、許可の値を変えることができる。安全でないバスマスタ１５に対応する制御ビット６２は、図４で定義された安全でないバスマスタ１４の場合と同様であろう。つまり、制御ビット６２は、安全でないバスマスタ１５による周辺バス２０上の周辺素子への読み取りアクセス許可、および書き込みアクセス許可を定義するのに必要な制御ビットを含むことが可能である。また、図３のアクセス制御レジスタ３２は、安全なバスマスタ１２による周辺素子へのアクセス制御ビットを含むことが可能である。しかしながら、安全なバスマスタ１２は、通常全ての周辺素子への完全なアクセスを有するため、安全なバスマスタ１２による周辺素子へのアクセス制御ビットは、通常、必要ではない。
【００１７】
アクセス制御レジスタ３０の別の実施形態では、各安全でないバスマスタに対応するレジスタを含むことが可能であり、各安全でないバスマスタは各周辺素子へのアクセス許可を定義する。或いは、アクセス制御レジスタ３０は各周辺素子に対応するレジスタを含むことも可能であり、各周辺素子は各安全でないバスマスタに対するアクセス許可を定義する。更にこの実施形態では、各レジスタは周辺素子内のレジスタの各部分に対する異なるビット群およびそれに対応する各安全でないバスマスタに対するレジスタ各部分への許可を含むことも可能である。従って、各周辺素子に対する各安全でないバスマスタの読み取り、および書き込み許可は、バスインターフェース１８、またはデータプロセッシングシステム１０内に様々な方法で定義され、保存されることが可能である。そして、その方法はレジスタの使用に限定されない。
【００１８】
図３に戻ると、周辺素子２２, ２４にアクセスするための回路４８は、バスマスタ許可判定回路５０を含む。回路５０は、アドレス４２、制御３８、およびバスマスタ識別子３６を受け取る。従って、回路５０はアクセスタイプ（読み取りまたは書き込み）、要求された周辺素子（および要求された特定のレジスタ）、および要求しているバスマスタの識別という必要な全ての情報を受け取る。上記で説明された、アクセス制御レジスタ３０に保存された情報を使用し、回路５０は現在要求している安全でないバスマスタが、要求さ
れた特定の周辺レジスタ、またはレジスタ群に対して必要なアクセス許可を所有しているかを判定する。例えば、バスマスタによりバスサイクルが開始され、周辺素子へのアクセスを要求する（このバスサイクルは読み取りバスサイクル、または書き込みバスサイクルのどちらかになり得る）。少なくともバスサイクルの一部分の間において、バスマスタ識別子３６が提供される。バスマスタ識別子３６は、バスサイクルのアクセス制御レジスタ３０から（要求しているバスマスタに対応する）アクセス制御情報を選択するために使用される。その後、アクセス制御情報は、要求しているバスマスタに対して要求された周辺素子へのアクセスを許可するかということが判定される。
【００１９】
アクセスが許可されると（つまり、要求している安全でないバスマスタが、特定の周辺レジスタ、または要求されているレジスタ群に対し適切なアクセス許可を所有している）、動作を継続し（つまり、バスサイクルは継続し）、必要なバスプロトコルが提供され、動作を完了する。例えば、シグナルブリッジング回路５２は、制御３８、データ４０、およびアドレス４２から得られる、任意の適切なデータ、アドレス、および制御シグナルをアクセスされた周辺素子へ提供する。同様に、シグナルブリッジング回路５２は、任意の必要な制御、データ、およびアドレス情報を、制御３８、データ４０、およびアドレス４２を介してシステムバス１６へ返す。
【００２０】
しかしながら、アクセスが許可されない（つまり、要求している安全でないバスマスタは、特定の周辺レジスタ、または要求されているレジスタ群に対し、適切なアクセス許可を所有していない）場合には、バスサイクルは周辺素子へアクセスする前に終了する。また、要求している安全でないバスマスタが周辺素子へのアクセスを拒否されることを示す信号は、システムバス１６を介して提供されることもある。例えば、バスエラーはシステムバス１６を介して、要求している安全でないバスマスタに提供される。そのバスエラーは、制御シグナル３８の一つとして、バスマスタ許可判定回路５０によって提供される。それに応じて、安全でないバスマスタは適切な例外処理を実行し、バスエラーから回復することもある。或いは、アクセスが許可されないと、全てのデータプロセッシングシステム１０、またはデータプロセッシングシステム１０の一部の初期化が実行されることもある。
【００２１】
上記で説明されたように、安全なバスマスタ１２は、必要に応じてアクセス制御レジスタ３０内で、動的に許可を変更する。一実施形態では、安全なバスマスタ１２は、ソフトウェアアプリケーションの起動に応答して許可を変更し得る。例えば、安全でないバスマスタ１４は、ソフトウェアアプリケーションの開始を準備していることを、安全なバスマスタ１２に警告する。それに応じて、安全なバスマスタ１２は、ソフトウェアアプリケーションを完了するため、安全でないバスマスタ１４によるアクセスに必要な周辺レジスタを提供するために、アクセス制御レジスタ３０を更新する。アプリケーションを完了するにあたり、安全なバスマスタ１２は、アプリケーション上でのみ認められた許可のような、以前に認められた許可をアプリケーションレベルで破棄する。
【００２２】
代わりの実施形態では、周辺素子２２または周辺素子２４は、記憶装置であり、周辺レジスタ２１、または周辺レジスタ２５は記憶域となる。アクセス制御レジスタ３０は、この実施形態では、各安全でないバスマスタのためのアクセス許可を、特定の記憶域または記憶装置の部分に定義する。
【００２３】
また、代わりの実施形態では、各周辺素子に対応するアクセス制御レジスタ（即ち、許可情報）は、バスインターフェース１８内よりもむしろ、周辺素子内に存在可能なことに留意されたい。更に、バスマスタ許可判定回路は、例えば周辺レジスタへのアクセスを許可する前に、許可が周辺素子によって判定されるように周辺素子内に存在してもよい。従って、代わりの実施形態では、データプロセッシングシステム１０のメモリマップ内にあ
るどの場所にでも、安全なバスマスタ１２によってアクセス可能な許可情報を保存できる。また、データプロセッシングシステム１０は、許可情報を更新できる安全なバスマスタをいくらでも所有することが可能であり、一つの安全なバスマスタに限定されることではない。
ここで、システムのセキュリティ要件が満たされることを保証するにあたり、どのようにしてデータプロセッシングシステム１０が周辺素子インターフェースユニット（例えば、バスインターフェース１８）に対し、柔軟性のある保護機構を提供することが可能であるのか、理解されるだろう。本発明における実施形態は、周辺素子インターフェースユニット内部（アクセス制御レジスタ３０内部のような）の許可の動的更新を可能にしている。従って、安全なバスマスタ１２は、安全でないバスマスタ上で動作している正常でない、または敵意のあるソフトウェアによる破壊からデータプロセッシングシステム１０を保護するために、どの安全でないバスマスタがどの周辺レジスタへのアクセス許可を所有しているのかを確認することが可能である。バスマスタ識別子の使用により、要求した周辺レジスタへのアクセスは、安全なバスマスタ１２によって確立された許可に基づいて、許可または拒否される。
【００２４】
図１、および図２は双方向性導線の使用を表しているが、代わりに一方向性導線の組み合わせも使用可能であることが理解されるべきであり、注意されたい。或いは、双方向性導線と一方向性導線との組み合わせも使用可能である。信号はまた一つの導線を介して、連続的に転送されるか、または複数の導線を介して同時に転送される。或いは、信号は一つの導線、または複数の導線上で、時分割されることもある。
【００２５】
上記明細書において、本発明について特定の実施形態を参照しながら説明してきた。しかしながら、当業者には、以下の特許請求の範囲に記載されている本発明の範囲を逸脱することなく、様々な変更および変形をなし得ることが認識されるであろう。例えば、データプロセッシングシステム１０は、どのようなタイプのデータプロセッシングシステムでもよく、一つのチップ、または集積回路（IC）に設置可能であり、一つのチップまたは集積回路の組み合わせでも可能である。データプロセッシングシステム１０はまた、共有された周辺素子を有するネットワーク上の（ネットワークシステムバスを介して接続されている）様々なマスタおよびスレーブに応用可能である。従って、仕様および形態は、限定的な意味よりはむしろ具体的意味と見なされ、全てのそのような変更は本発明の範囲内に含まれることとなる。
【００２６】
利益、他の効果、および問題への解決方法は特定の実施形態を示しながら、上記にて説明されてきた。しかしながら、その利益、効果、問題への解決方法、およびその他の全ての利益、効果をもたらす如何なる要素、または偶然生じる、またはより顕著に現れる解決方法は、重要であり、必要であると説明されていない。或いは本質的な特長、またはどの特許請求の範囲、または全ての特許請求の範囲の要素としても説明されていない。本願では、用語「備える」、「備えている」、またはその用語に関する様々な用法は、構成要素のリストを備える過程、方法、論文、または装置がそれら要素のみを含むだけでなく、明確に記載されていない他の要素、またはそのような過程、方法、論文、または装置に本来備わっている要素をも含むように、非排他的包含性を補うことを意図している。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態に基づくデータプロセッシングシステムブロック図。
【図２】本発明の実施形態に基づく、図１のバスインターフェース部分ブロック図。
【図３】本発明の実施形態に基づく、アクセス制御レジスタブロック図。
【図４】本発明の実施形態に基づく、図３のアクセス制御レジスタ部分ブロック図。
【図１】
2005520231.tif 000003
【図２】
2005520231.tif 000004
【図３】
2005520231.tif 000005
【図４】
2005520231.tif 000006
【国際調査報告】
2005520231.tif 000007
2005520231.tif 000008