説明

周辺装置アクセス保護を有するデータ処理システムおよびその方法

本明細書に開示のデータ処理システム(10,100)内部の柔軟な周辺装置アクセス保護機構によって、よりセキュアな動作環境が可能となる。一実施態様では、データ処理システム(10)内部の各マスタ(14,15)には、対応する権限レベル変更子(70,74)と、特定のバス・アクセスの型(例えば、読取および書込アクセス)に対する対応する信頼属性(71,72,75,76)とが含まれる。また一実施態様では、データ処理システム(10)内部の各周辺装置(22,24)には、対応する信頼属性(80,84)、書込保護標識子(81,85)、および権限保護標識子(82,86)が含まれる。したがって、一実施態様では、バス・マスタによる周辺装置へのバス・アクセスは、周辺装置が要求する適切な権限レベルおよび適切な信頼レベルをバス・マスタが有する時(かつ、バス・アクセスが書込アクセスの場合には、周辺装置が書込保護されていない時)に許可される。また、権限レベル変更子を用いることによって、特定のバス・アクセスに対する特定の権限レベルをバス・マスタに強制することも可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理システムに関し、より詳細には周辺装置アクセス保護を有するデータ処理システムに関する。
【背景技術】
【0002】
システム・オン・チップ(SoC)・ソリューションにおいては、複数のマスタで周辺装置デバイスを共有することが一般的である。SoCにおけるマスタのうちの一部は、信頼済みでない(non−trusted)マスタである場合がある。信頼済みでないマスタによるアクセスはシステムの汚染を生じ得るので、そのようなシステムでは、信頼済みでないマスタによるアクセスから周辺装置の一部または全てを保護する必要があり得る。例えば、信頼済みでないマスタ上で動作するソフトウェアによってウィルスが導入される場合があり、あるいは、システムの周辺装置デバイス内部のセキュアな(secure)情報へのアクセスを得るために、信頼済みでないマスタが用いられる場合がある。また、セキュアなデータ・トランザクションを保証するために、周辺装置の保護が必要な場合もある。
【0003】
一従来技術のソリューションでは、マスタ間で周辺装置が共有されないように、システム内部の各マスタに専用の周辺装置を備える必要がある。しかしながら、専用の周辺装置を用いることにより、場合によっては共有も可能な周辺装置を複数用意する必要が生じるため、チップ面積およびコストの増大が生じる。また、専用の周辺装置を備えるマスタを用いることによって、システム内部の負荷分散処理の活用も妨げられる。例えば、1つのマスタに実行されたプロセスをシステム内部の別のマスタへ転送することは、その別のマスタが転送されたプロセスを実行するために必要な専用の周辺装置を備えない場合には不可能であり、それによってシステムの効率は減少する。
【発明の開示】
【発明が解決しようとする課題】
【0004】
したがって、信頼済みでないマスタによる共有周辺装置デバイスへのアクセスを保護しながら、信頼済み(trusted)マスタおよび信頼済みでないマスタの両方によるデータ処理システム内部の周辺装置デバイスの共有を可能とする、データ処理システムの需要が存在する。
【課題を解決するための手段】
【0005】
本発明の一実施態様では、よりセキュアな動作環境を得るための、データ処理システム内部の柔軟な周辺装置アクセス保護機構を提供する。例えば、データ処理システムには、共有の周辺装置へのアクセスを必要とする信頼済みバス・マスタおよび非信頼(untrusted)バス・マスタの組合せが含まれる。一実施態様では、各バス・マスタに対する権限および信頼属性と、各周辺装置に対するアクセス制御とを、信頼済みバス・マスタが動的に更新することが可能である。したがって、非信頼バス・マスタ上で動作する不正なまたは敵意のある(hostile)ソフトウェアによる汚染からデータ処理システムを保護するため、どのバス・マスタがどの周辺装置へのアクセスのパーミッション(permission)を有するかを信頼済みバス・マスタが確立することが可能である。
【0006】
バス・マスタ識別子、信頼属性、および権限レベルを用いることによって、信頼済みバス・マスタが確立したパーミッションに基づき、要求された周辺装置へのアクセスを許可または拒否することが可能である。例えば、一実施態様では、データ処理システム内部の各マスタには、対応する権限レベル変更子と、特定のバス・アクセスの型(読取アクセスおよび書込アクセスなど)に対する対応する信頼属性とが含まれる。また、一実施態様では、データ処理システム内部の各周辺装置には、対応する信頼属性、書込保護標識子、および権限保護標識子が含まれる。したがって、一実施態様では、バス・マスタによる周辺装置へのバス・アクセスは、周辺装置が要求する適切な権限レベルおよび適切な信頼のレベルをバス・マスタが有する時(かつ、バス・アクセスが書込アクセスの場合には、周辺装置が書込保護されていない時)に許可される。また、権限レベル変更子を用いることによって、特定のバス・アクセスに対する特定の権限レベルをバス・マスタに強制することも可能である。
【発明を実施するための最良の形態】
【0007】
類似の参照番号が類似の要素を示す添付の図面によって本発明を例として示すが、本発明はそれらの図面によって限定されない。
図面における要素は簡潔かつ明瞭に示されており、必ずしも縮尺に応じて描かれていないことを当業者は認めるであろう。例えば、本発明の実施態様の理解を向上させるため、図面における要素の一部の寸法は他の要素に比較して誇張されている場合がある。
【0008】
図1には、一実施態様のデータ処理システム10を示す。データ処理システム10には、バス・スレーブ26、バス・マスタ14、バス・マスタ15、バス調停ロジック28、システム・バス16、バス・インタフェース18、周辺装置バス20、および周辺装置22,24が含まれる。バス・スレーブ26、バス・マスタ14、バス・マスタ15、バス調停ロジック28、およびバス・インタフェース18は全て、システム・バス16に双方向性に接続される。バス・インタフェース18、周辺装置22、および周辺装置24は全て、周辺装置バス20に双方向性に接続される。周辺装置22には、周辺装置回路19および周辺装置レジスタ21が含まれ、周辺装置24には、周辺装置回路23および周辺装置レジスタ25が含まれる。図1には、2つの周辺装置22,24のみを示したが、データ処理システム10には、周辺装置バス20に接続した任意の数の周辺装置が含まれてよい。同じく、図1に示した数に限定されず、任意の数のバス・マスタおよびバス・スレーブがシステム・バス16に接続されてよい。また、図1にはバス調停ロジック28をシステム・バス16に接続した別個のユニットとして示したが、システム・バス16に接続したバス・マスタの各々(またはバス・マスタの一部)にバス調停ロジック28の部分を配置してもよい(バス調停ロジック28は当該技術分野において現在公知の任意のバス調停器として動作してもよい)。
【0009】
一実施態様では、バス・マスタ14およびバス・マスタ15は、マイクロプロセッサ、デジタル信号プロセッサなどのプロセッサであってもよく、ダイレクト・メモリ・アクセス(DMA)ユニットなど、任意の他の型のマスタ・デバイスであってもよい。それらのバス・マスタのうちの1つ以上は、非信頼バス・マスタより汚染されにくい信頼済みバス・マスタであり得る。例えば、信頼済みバス・マスタは、バス・マスタまたはSoCの製造者によって完全に制御された命令を実行する(すなわち、信頼済みマスタ上で動作するソフトウェアを信頼済みソフトウェアと見なすことが可能である)。すなわち、一実施態様では、信頼済みマスタ上で第3者(third party)のソフトウェアを実行することは不可能であり、第3者には信頼済みマスタへのアクセスは許可されない。これに代えて、信頼済みバス・マスタに対する信頼レベル(すなわち、セキュリティのレベル)を、完全に信頼済みから、より低い信頼済みまで変化させてもよく、その場合、信頼レベルはデータ処理システム10の設計に応じるが、一般に非信頼バス・マスタよりも高い。
【0010】
同様に、バス・マスタ14,15のうちの任意の1つ以上は、一般に、よりアクセスし易い、すなわち、汚染を受けやすい非信頼バス・マスタであり得る。一実施態様では、非信頼バス・マスタは、第3者のソフトウェア(例えば、利用者の開発したソフトウェア)または任意の他の非信頼ソフトウェア(ソフトウェアの内容および機能は一般に不明)を受取および実行する、汎用プロセッサであってよい。このソフトウェアは非信頼ソフトウェアなので、データ処理システム10の他の部分(他の信頼済みバス・マスタまたは周辺装置22,24)の汚染を試みたり、データ処理システム10にウィルスを導入したり、あるいは、バス・マスタ14または15、周辺装置22または24、バス・スレーブ26、若しくはデータ処理システム10の内部のいずれかの場所のセキュア化された情報にアクセスしたりするような、不正なソフトウェアまたは敵意のあるソフトウェアであり得る。
【0011】
また、特定のバス・マスタは、一部の型のアクセスに対しては信頼済みと見なされ、他の型のアクセスに対しては非信頼と見なされてもよいことを述べておく。例えば、同一のバス・マスタが、読取に対しては信頼済みと見なされ、書込に対しては非信頼と見なされてもよい。したがって、各マスタは、異なる型のアクセスに対して異なる信頼レベルを有することが可能である。また、各バス・マスタが異なる権限レベルを有することも可能である。例えば、一実施態様では、1つのバス・マスタがより高い権限レベル(管理者モードなど)で動作し、他のバス・マスタがより低い権限レベル(利用者モードなど)で動作してもよい。どのリソースへマスタがアクセス可能かを判定するために、特定の権限レベルが用いられる。
【0012】
したがって、一実施態様では、以下に説明するように、データ処理システム10の内部の各マスタは、特定の型のバス・アクセスに対して、対応するマスタの信頼レベルを判定するために、1組の対応する信頼属性のフィールドを有する。また、各バス・マスタは、特定のバス・アクセスに対して、対応するマスタの権限レベルを選択的に調節することを可能とするような、対応する権限変更子のフィールドを有する。同様に、周辺装置22,24など各周辺装置は、所与の周辺装置がサポートするアクセスのレベルを判定するような、1組の対応するアクセス制御のフィールドを有する。例えば、特定の周辺装置は、信頼済みと識別されたマスタまたは管理者モードで動作するマスタに対して、より多くのアクセスを与えてもよい。バス・マスタに対するそれらの権限および信頼属性のフィールド並びに周辺装置に対するアクセス制御のフィールドを、図2〜5を参照して以下でより詳細に説明する。
【0013】
再び図1を参照すると、バス・スレーブ26は、例えば、バス・マスタ14,15によってアクセス可能なメモリなど、任意のスレーブ・デバイスであってもよく、周辺装置22,24などと同一型の周辺装置を含む、システム・バス上に属する任意の型の周辺装置であってもよい。周辺装置22,24は、ユニバーサル・アシンクロナス・レシーバ・トランスミッタ(UART)、リアルタイム・クロック(RTC)、キーパッド制御装置など、任意の型の周辺装置であってよい。周辺装置回路19によって、周辺装置バス20と周辺装置レジスタ21との間の通信が可能である。同様に、周辺装置回路23によって、周辺装置バス20と周辺装置レジスタ25との間の通信が可能である。代替の一実施態様では、周辺装置22は、周辺装置レジスタ21に代わってメモリ・アドレス・ロケーションが存在する、メモリ・ユニットであってもよい。
【0014】
動作中、バス・マスタ14,15は、バス・スレーブ26など、システム・バス16に接続された他のスレーブ・デバイスへのアクセスを要求するために、または、バス・インタフェース18を介する周辺装置22,24へのアクセスを要求するために、システム・バス16へのアクセスを要求する。バス・インタフェース18は、以下で説明するように、要求、または特定の周辺装置への特定の型の要求が許可されるか否かを判定する。許可されない場合、バス・インタフェース18はシステム・バス16を介してバス・エラー応答を出力し得る。しかしながら、要求が許可された場合、バス・インタフェース18は、要求されたバス・アクセスを完了させるため、任意の必要なバス・プロトコルを出力する。上述のように、各バス・マスタ14,15による周辺装置22,24へのアクセスは、権限レベルおよび信頼レベルと、アクセスされる周辺装置のアクセス制御のフィールドとによる判定に従って、限定されてもよい。
【0015】
図2には、本発明の一実施態様による図1のバス・インタフェース18の一部を示す。バス・インタフェース18には、制御回路44、マスタ権限レジスタ30、および周辺装置アクセス制御レジスタ54が含まれる。制御回路44は、システム・バス16を介して、バス・マスタ識別子36、アドレス42、データ40、制御38、および権限標識子37を出力および受信する。制御回路44には、レジスタ30,54への信頼済みバス・マスタの読取/書込(R/W)アクセス用の回路46が含まれ、この回路46は、マスタ権限レジスタ30および周辺装置アクセス制御レジスタ54の各々に双方向性に接続されている。制御回路44には、周辺装置22,24へアクセスするための回路48も含まれる。回路48には、マスタ権限レジスタ30から情報を受信する、バス・マスタ属性判定回路50が含まれ、周辺装置アクセス制御レジスタ54から情報を受信する周辺装置保護判定回路51も含まれる。制御回路48には、適切な信号を周辺装置22,24へ出力し周辺装置22,24から受信するために、周辺装置バス20に双方向性に接続されている信号ブリッジ回路52も含まれる。また、バス・マスタ属性判定回路50は、調節済み権限標識子57、R/W標識子58、および信頼済み標識子59を周辺装置保護判定回路51へ出力し、周辺装置保護判定回路51からアクセス・エラー信号60を受信する。アクセス・エラー信号60は、システム・バス16を介してバス・マスタ14,15へ通信して戻されてもよいことを述べておく。代替の一実施態様では、アクセス・エラー信号60はシステム・バス16を介して通信され、バス・マスタ属性判定回路50へは出力されない。
【0016】
マスタ権限レジスタ30には、マスタ権限レジスタ32およびマスタ権限レジスタ34が含まれる。一実施態様では、各々のマスタ権限レジスタはシステム・バス16上のマスタに対応する。また、一実施態様では、マスタ権限レジスタ30には単一のレジスタのみが含まれてもよく、これに代えて、図3に関連して以下でさらに説明するように、任意の数のレジスタが含まれてもよい。周辺装置アクセス制御レジスタ54には、周辺装置アクセス制御レジスタ55および周辺装置アクセス制御レジスタ56が含まれる。一実施態様では、各々の周辺装置アクセス制御レジスタは周辺装置バス20上の周辺装置に対応する。また、一実施態様では、周辺装置アクセス制御レジスタ54には単一のレジスタのみが含まれてもよく、これに代えて、図3に関連して以下でさらに説明するように、任意の数のレジスタが含まれてもよい。また、マスタ権限レジスタ30および周辺装置アクセス制御レジスタ54はデータ処理システム10の内部の任意の場所に配置されてよく、バス・インタフェース18の内部に配置される必要はないことを述べておく。本発明の代替の実施態様の一部では、周辺装置アクセス制御レジスタは、各周辺装置22,24、またはバス・スレーブ26の内部に分配されてもよく、マスタ権限レジスタは、分配、または、1つ以上のバス・スレーブ26に属してもよい。
【0017】
動作中、バス・インタフェース18は、バス・マスタ識別子36に基づき、マスタ権限レジスタ30および周辺装置アクセス制御レジスタ54へのアクセスを与える。バス・マスタ識別子36は、どのバス・マスタが現在の要求を制御回路44へ出力しているかを識別する。例えば、一実施態様では、データ処理システム10の各バス・マスタは、対応する識別(ID)番号を有する。例えば、バス・マスタ14は対応するID番号0を有し、バス・マスタ15は対応するID番号1を有する。したがって、データ処理システム10の任意のバス・マスタに、ユニークなID番号を割当てることが可能である。特定のバス・マスタが周辺装置へのアクセスを要求する時、バス・マスタ識別子36として、対応するID番号を制御回路44へ出力することが可能である。この例では、バス・マスタ識別子36が0の場合、バス・マスタ14であることが示される。代替の実施態様では、異なるバス・マスタを区別するために、任意の型の識別システムが用いられてよい。
【0018】
バス・インタフェース18は、回路46を介して、信頼済みバス・マスタのみがマスタ権限レジスタ30および周辺装置アクセス制御レジスタ54へのR/Wアクセスを得ることが可能なことを保証する。回路46は、レジスタ30またはレジスタ54へのR/Wアクセスを要求しているのが信頼済みバス・マスタか否かを判定するために、受信したバス・マスタ識別子36を比較する。一実施態様では、回路46には、どのバス・マスタがレジスタ30,54の変更を許可されているかを識別するリストが含まれる。例えば、一実施態様では、マスタ14,15のうちの1つのみが信頼済みマスタと見なされ、その信頼済みマスタのみがレジスタ30,54を変更する能力を有する。これに代えて、回路46には、信頼済みマスタのみがレジスタ30,54を変更することを保証する他の回路が含まれてもよい。また、回路46が、バス・マスタ識別子36に加えて、またはバス・マスタ識別子36に代えて、他の属性に基づき、この判定を行ってもよい。例えば、代替の一実施態様では、回路46は権限標識子37(現在のバス・アクセスに対する、要求している要求側バス・マスタの権限レベルを示す)を用いて、この判定を行ってもよい。この方式では、信頼済みバス・マスタは、周辺装置22,24におけるアクセスを制御するために、レジスタ30,54のフィールドを設定することが可能である。一実施態様では、起動時、リセット(reset)時、ソフトウェア・アプリケーションの開始時、または任意の他の適切な時に、信頼済みバス・マスタがレジスタ30,54に値をプログラムして組み込んでもよい。このことによって、必要に応じてレジスタ30,54が更新されるような、レジスタ30,54への動的アクセスが可能となる。しかしながら、これに代えて、レジスタ30,54内部の値を単一の時にプログラムして組み込んでもよく(ライト・ワンス・オンリー(write once only)のメモリを用いることなどによって)、限定された量の時にのみプログラムして組み込んでもよく、あるいは、ハードワイヤードで組み込んでもよい。周辺装置22,24へアクセスするための回路48の内部のバス・マスタ属性判定回路50を説明する前に、図3に関連してレジスタ30の内容を説明する。
【0019】
図3には、マスタ権限レジスタ30の一実施態様を示す。例示の実施態様では、マスタ権限レジスタ30には、バス・マスタ14に対応するマスタ権限レジスタ32と、バス・マスタ15に対応するマスタ権限レジスタ34とが含まれる。したがって、この実施態様では、マスタ権限レジスタ30には、各バス・マスタに対して1つのマスタ権限レジスタが含まれる。しかしながら、代替の実施態様では、全てのマスタに対して必要な情報を記憶するために単一のレジスタを用いてもよく、これに代えて、任意の数および組合せのレジスタを用いてもよい。例としてマスタ権限レジスタ32を本明細書で説明するが、しかしながら、マスタ権限レジスタ32に対する説明は、マスタ権限レジスタ34など、マスタ権限レジスタ30の全てのマスタ権限レジスタにも適用されることを述べておく。マスタ権限レジスタ32には、バス・マスタ14に対する権限レベル変更子のフィールド70、バス・マスタ14による書込に対する信頼属性のフィールド71、およびバス・マスタ14による読取に対する信頼属性のフィールド72が含まれる。
【0020】
権限レベル変更子のフィールド70によって、特定のアクセスに対するバス・マスタ14の現在の権限レベルを、フィールド70に記憶された値が示すように、選択的に変更すなわち調節することが可能となる。バス・マスタ14の現在の権限は、一実施態様では、バス・マスタ14がシステム・バス16を介して権限標識子37によって制御回路44へ出力する。一実施態様では、権限標識子37を用いて、バス・アクセスを要求する現在のバス・マスタ(バス・マスタ識別子36で示される)が管理者権限レベルであるか利用者権限レベルであるかが、現在のバス・アクセス中に判定される。すなわち、この実施態様では、権限標識子37は管理者モードまたは利用者モードのうちの1つに対応する権限レベルを示す。したがって、バス・マスタ14がバス・アクセスを行う場合、現在のバス・アクセスに対するバス・マスタ14の権限レベルを調節する必要があるか否かをバス・マスタ属性判定回路50に示すために、権限レベル変更子のフィールド70が用いられてもよい。例えば、管理者モードで動作する場合、権限レベル変更子のフィールド70は、バス・マスタ14の権限レベルを利用者モードに強制するために用いられる。これに代えて、権限レベル変更子のフィールド70は任意の型の権限レベルを示すことが可能であり、管理者または利用者モードのみに限定されない。さらに、権限レベル変更子のフィールド70には、バス・マスタ14の権限レベルを出力するために用いられる1つ以上のビットが含まれてもよい。例えば、一実施態様では、権限レベル変更子のフィールド70の内部の1つのビットは、要求側バス・マスタの権限レベルを変更する必要があるか否かを現在のバス・アクセス中に示すために用いられてもよく、別の1つ以上のビットは、調節されるべき権限レベルを示すために用いられてもよい(一部の実施態様では、現在の権限レベルがフィールド70の示す権限レベルと同一であり、調節が必要でないことを示す場合があることを述べておく)。
【0021】
バス・マスタ14による書込に対する信頼属性のフィールド71は、バス・マスタ14がバス・マスタ14による書込アクセスに対する信頼済みマスタか否かを示すために用いられる。同様に、バス・マスタ14による読取に対する信頼属性のフィールド72は、バス・マスタ14がバス・マスタ14による読取アクセスに対する信頼済みマスタか否かを示すために用いられる。したがって、バス・マスタ14などの各バス・マスタは、読取または書込アクセスに対して異なる信頼属性を有してもよい。例えば、バス・マスタ14が、周辺装置またはバス・スレーブへの読取アクセスの実施においては信頼済みマスタと見なされ、周辺装置またはバス・スレーブへの書込アクセスの実施においては非信頼マスタと見なされてもよい。したがって、フィールド71,72の各々には、書込および読取アクセスに対するバス・マスタ14の信頼レベルを示すために用いられる1つ以上のビットが含まれ得る。代替の一実施態様では、バス・マスタは、単に信頼済みまたは非信頼として分類されるのではなく、特定の型のバス・アクセスに対する、より多くの信頼レベルを有してもよい。例えば、フィールド71,72は、バス・マスタ14に対してN個の信頼レベル(N>2)から選択される1つのレベルを示してもよい。
【0022】
マスタ権限レジスタ32には、例示よりも多いまたは少ないフィールド、若しくは例示とは異なるフィールドが含まれ得ることを述べておく。例えば、バス・マスタ14による書込および読取の両方に対して単一の信頼属性フィールドが用いられてもよく、その場合には、バス・マスタ14は書込および読取の両方に対して信頼済みまたは非信頼と見なされる。これに代えて、他の型のバス・アクセスに対して信頼属性が出力されてもよい。
【0023】
フィールド70〜72に対する上述の説明は、マスタ権限レジスタ34のフィールド74〜76にも適用されることを述べておく。すなわち、バス・マスタ15に対する権限レベル変更子のフィールド74によって、バス・マスタ15の権限レベルを現在のバス・アクセスに対して選択的に調節することが可能となる。バス・マスタ15による書込に対する信頼属性のフィールド75は、書込アクセスに対するバス・マスタ15の信頼レベルを示し、バス・マスタ15による読取に対する信頼属性のフィールド76は、読取アクセスに対するバス・マスタ15の信頼レベルを示す。
【0024】
図2を参照すると、周辺装置22,24へアクセスするための回路48には、バス・マスタ属性判定回路50が含まれる。バス・マスタ属性判定回路50は、アドレス42、制御38、権限標識子37、およびバス・マスタ識別子36を受信し、調節済み権限標識子57、R/W標識子58、および信頼済み標識子59を周辺装置保護判定回路51へ出力する。したがって、バス・マスタ属性判定回路50は、バス・アクセスの型(読取または書込)と、要求された周辺装置と、どのバス・マスタが要求を行っているかの識別と、要求を行っているバス・マスタの権限レベルとを識別するために必要な全ての情報を受信する。マスタ権限レジスタ30に記憶された情報を用いて、上述のように、バス・マスタ属性判定回路50は、調節済み権限標識子57、R/W標識子58、および信頼済み標識子59を判定する。例えば、周辺装置へのアクセスを要求するバス・マスタによって、バス・アクセスが開始されてもよい(このバス・アクセスは、読取または書込バス・アクセスであることが可能である)。バス・アクセスのうちの少なくとも一部の間に、バス・マスタ識別子36が出力される。バス・アクセスに対するマスタ権限レジスタ30から、マスタの権限情報(要求側バス・マスタに対応する)を選択するために、バス・マスタ識別子36が用いられる。続いて、調節済み権限標識子57、R/W標識子58、および信頼済み標識子59に対する値を判定することが可能である。
【0025】
例えば、バス・マスタ14が現在のバス・アクセスを行う一実施態様では、権限標識子37が示す現在の権限レベルと、権限レベル変更子のフィールド70とに基づき、調節済み権限標識子57が決定される。権限レベル変更子のフィールド70が、バス・マスタ14には特定の権限レベルの強制が必要であることを示す場合、その強制される権限レベルを示すように調節済み権限標識子57の値を設定する。権限レベル変更子のフィールド70が、バス・マスタ14には権限の強制の必要がないことを示す場合、権限標識子37と同一の権限レベルを示すように調節済み権限標識子57の値を設定することが可能である。R/W標識子58は、現在のバス・アクセスが読取アクセスかまたは書込アクセスかを示す制御38から判定することが可能である。信頼済み標識子59は、現在のバス・アクセスが読取アクセスかまたは書込アクセスかに基づいて、および信頼属性のフィールド71,72に基づいて判定される。例えば、現在のバス・アクセスがバス・マスタ14による書込アクセスの場合、信頼済み標識子59は、信頼属性のフィールド71が示す信頼レベルを示すように設定される。同様に、現在のバス・アクセスがバス・マスタ14による読取アクセスの場合、信頼済み標識子は、信頼属性のフィールド72が示す信頼レベルを示すように設定される。
【0026】
調節済み権限標識子57、R/W標識子58、および信頼済み標識子59は、周辺装置アクセス制御レジスタ54と共に、続いて、周辺装置保護判定回路51によって、周辺装置に対するアクセスが許可されるか否かを判定するために用いられ、または、一部の場合には、アクセス・エラーが発生したか否か、および、バス・マスタ属性判定回路50、エラーを発生させたアクセス要求を行ったバス・マスタ、またはその両方へ、アクセス・エラー信号60を介してアクセス・エラーが通信されたか否かを判定するために用いられる。周辺装置22,24へアクセスするための回路48の内部の周辺装置保護判定回路51を説明する前に、図4に関連してレジスタ54の内容を説明する。
【0027】
図4には、周辺装置アクセス制御レジスタ54の一実施態様を示す。例示の実施態様では、周辺装置アクセス制御レジスタ54には、周辺装置22に対応する周辺装置アクセス制御レジスタ55と、周辺装置24に対応する周辺装置アクセス制御レジスタ56とが含まれる。したがって、例示の実施態様では、周辺装置アクセス制御レジスタ54には、各周辺装置に対して1つの周辺装置アクセス制御レジスタが含まれる。しかしながら、代替の実施態様では、全ての周辺装置に対して必要な情報を記憶するために単一のレジスタを用いてもよく、これに代えて、任意の数および組合せのレジスタを用いてもよい。本明細書では例として周辺装置アクセス制御レジスタ55を説明するが、しかしながら、周辺装置アクセス制御レジスタ55に対する説明は、周辺装置アクセス制御レジスタ56など、周辺装置アクセス制御レジスタ54の全ての周辺装置アクセス制御レジスタにも適用されることを述べておく。周辺装置アクセス制御レジスタ55には、周辺装置22に対する周辺装置信頼属性のフィールド80、周辺装置22に対する書込保護のフィールド81、および周辺装置22に対する権限保護のフィールド82が含まれる。
【0028】
周辺装置22に対する周辺装置信頼属性のフィールド80は、周辺装置22が非信頼マスタからのアクセス(読取または書込)を許可するか否かを示す。例えば、現在のバス・マスタに対応する信頼属性のフィールド(例えば、フィールド71,72)が、現在のバス・アクセスを行うバス・マスタが非信頼であることを示す場合には、非信頼マスタからのアクセスが許可されることをフィールド80が示す場合にのみ、バス・アクセスは許可される。周辺装置22に対する書込保護のフィールド81は、マスタによる周辺装置22への書込アクセスを周辺装置22が許可するか否かを示す。例えば、現在のバス・マスタ(バス・マスタの信頼レベルにかかわらず)が行う現在のバス・アクセスが周辺装置22への書込アクセスの場合、周辺装置22が書込保護されていることをフィールド81が示す場合には、書込アクセスを行うことは不可能である。周辺装置22に対する権限保護のフィールド82は、現在のバス・アクセスに対して周辺装置22が一定の権限レベルを要求するか否かを示す。したがって、権限保護のフィールド82には、周辺装置22に対するアクセスに要求される最低の権限レベルを示す、任意の数のビットが含まれてよい。一実施態様では、管理者権限が要求されるか否かを示すために、単一のビットが用いられ得る。これに代えて、N個の権限レベル(N>2)のうちの最低の1つが要求されることを示すために、より多くのビットが用いられてもよい。
【0029】
周辺装置アクセス制御レジスタ55には、例示よりも多いまたは少ないフィールド、若しくは例示とは異なるフィールドが含まれ得ることを述べておく。例えば、非信頼マスタからの読取アクセスを許可するか否か、および非信頼マスタからの書込アクセスを許可するか否かを示すために、周辺装置信頼属性のフィールド80など別個の周辺装置信頼属性を用いてもよい。また、読取または書込アクセスを許可するために周辺装置22に必要とされるN個の可能な信頼レベル(N>2)のうちの最低のレベルを示すために、追加のビットまたはフィールドが用いられてもよい。
【0030】
フィールド80〜82に対する上述の説明は、周辺装置アクセス制御レジスタ56のフィールド84〜86にも適用されることを述べておく。すなわち、周辺装置24に対する周辺装置信頼属性のフィールド84は、非信頼マスタからのアクセス(読取または書込)を周辺装置24が許可するか否かを示す。周辺装置24に対する書込保護のフィールド85は、マスタによる周辺装置24への書込アクセスを周辺装置24が許可するか否かを示す。周辺装置24に対する権限保護のフィールド86は、周辺装置24が現在のバス・アクセスに対して一定の権限レベルを要求するか否かを示す。
【0031】
図2を参照すると、周辺装置22,24へアクセスするための回路48には、周辺装置保護判定回路51が含まれる。周辺装置保護判定回路51は、調節済み権限標識子57、R/W標識子58、および信頼済み標識子59を受信し、アクセス・エラー信号60をバス・マスタ属性判定回路50へ出力する(これに代えて、または加えて、システム・バス16を介してエラーを発生させる要求を行ったバス・マスタへ、アクセス・エラー信号60を出力して戻してもよい)。したがって、周辺装置保護判定回路51は、標識子57〜59と、周辺装置アクセス制御レジスタ54に記憶された情報とを用いて、上述のように、要求された周辺装置へのバス・アクセスが許可されるか否かを判定する。例えば、バス・マスタ14が、周辺装置22への書込を行うためのバス・アクセスを開始する場合、周辺装置保護判定回路51は、そのバス・アクセスが許可されるか否かを判定する。例えば、周辺装置保護判定回路51は、調節済み権限標識子57と権限保護のフィールド82とを用いて、周辺装置22がアクセスに対する特定の権限レベル(フィールド82で示される)を要求するか否か、および、バス・マスタ14が要求される権限レベル(調節済み権限標識子57で示される)を有するか否か、を判定する。また、周辺装置保護判定回路51は、R/W標識子58と書込保護のフィールド81とを用いて、現在のバス・アクセスが書込アクセスか否か、かつ書込アクセスの場合には、周辺装置22への書込アクセスが許可されているか否かを判定する。また、周辺装置保護判定回路51は、信頼済み標識子59と周辺装置信頼属性のフィールド80とを用いて、バス・マスタ14が周辺装置22(フィールド80で示される)に要求される適切な信頼レベル(信頼済み標識子59で示される)を有するか否かを判定する。したがって、周辺装置保護判定回路51は、上述の情報の全てを用いて、バス・マスタ14に要求された周辺装置22に対するバス・アクセスが許可されるか否かを判定することが可能である。すなわち、バス・アクセスが許可されるためには、バス・マスタ14が適切な権限レベルおよび適切な信頼レベルを有することが必要であり、かつ、バス・アクセスが書込アクセスの場合には、周辺装置22が書込保護されていないことが必要である。
【0032】
アクセスが許可される場合(要求側バス・マスタが要求される特定の周辺装置に対する適切なアクセス・パーミッションを有することを意味する)、動作が継続され(すなわち、バス・アクセスが継続され)、動作を完了させるために必要なバス・プロトコルが出力される。例えば、信号ブリッジ回路52は、任意の適切なデータ、アドレス、および制御の信号を、制御38、データ40、およびアドレス42に由来する、アクセスされる周辺装置へ出力する。同様に、信号ブリッジ回路52は、制御38、データ40、およびアドレス42を介して、任意の必要な制御、データ、およびアドレスの情報をシステム・バス16へ戻す。また、制御38として、状態の情報が戻されてもよい。
【0033】
しかしながら、アクセスが許可されない場合(要求側バス・マスタが要求される特定の周辺装置に対する適切なアクセス許可を有しないことを意味する)、周辺装置へアクセスする前にバス・アクセスは中断される。また、要求側バス・マスタが周辺装置へのアクセスを拒否されたことを示すために、アクセス・エラー信号60を用いてもよい。また、要求側バス・マスタに、システム・バス16を介してバス・エラーを出力してもよい。バス・エラーは、バス・マスタ・パーミッション判定回路50によって、制御信号38のうちの1つとして出力されることが可能である。応答にて、要求側バス・マスタが、バス・エラーから回復させるための適切な例外処理を行ってもよい。これに代えて、アクセスが許可されない場合、データ処理システム10の全体または一部のリセットが行われてもよい。
【0034】
上述のように、信頼済みバス・マスタは、必要に応じてレジスタ30,54のパーミッションを動的に変化させ得る。一実施態様では、ソフトウェア・アプリケーションの開始に応じて、信頼済みバス・マスタがパーミッションを変化させ得る。例えば、ソフトウェア・アプリケーションの開始を準備することを、非信頼バス・マスタが信頼済みバス・マスタに警告してもよい。応答にて、アプリケーションを完了させるために必要な周辺装置へのアクセスを非信頼バス・マスタに与えるように、信頼済みバス・マスタがレジスタ30,54を更新してもよい。アプリケーション・バイ・アプリケーション・ベーシス(application by application basis)でのみパーミッションが承認されるように、アプリケーションが完了すると、以前に承認されたパーミッションを信頼済みバス・マスタが取消してもよい。
【0035】
代替の一実施態様では、周辺装置22または24は、周辺装置レジスタ21または25がメモリ・ロケーションであるような、メモリ・ユニットであってもよい。この実施態様では、レジスタ30,54は、指定メモリ・ロケーション、すなわち、メモリ・ユニットの部分に対して、各バス・マスタに対応するアクセス・パーミッションを規定することが可能である。
【0036】
また、代替の実施態様では、レジスタ30に記憶された情報をバス・インタフェース18ではなく各対応するマスタ内部に配置することが可能であり、レジスタ54に記憶された情報をバス・インタフェース18ではなく各周辺装置内部に配置することが可能であることを述べておく。さらに、バス・マスタ・パーミッション判定回路をマスタ内またはマスタに続けて配置してもよく、パーミッションが周辺装置に判定されるように、周辺装置保護判定回路を周辺装置内または周辺装置に続けて配置することも可能である。したがって、代替の実施態様では、信頼済みバス・マスタがアクセス可能なレジスタ30,54の情報は、データ処理システム10におけるメモリ・マップ内部の任意の場所に記憶され得る。また、データ処理システム10には、パーミッション情報を更新することが可能な任意の数の信頼済みバス・マスタが含まれてよく、単一のセキュアなバス・マスタに限定されない。
【0037】
図5には、本発明の代替の一実施態様による、データ処理システム100を示す。データ処理システム100には、バス・マスタ101、バス・マスタ102、バス・マスタ属性判定回路およびマスタ権限レジスタ104、バス・マスタ属性判定回路およびマスタ権限レジスタ110、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106、周辺装置保護判定回路および周辺装置アクセス制御レジスタ112、および周辺装置108,114が含まれる。バス・マスタ101は、バス・マスタ属性判定回路およびマスタ権限レジスタ104へ、権限標識子116を出力する。バス・マスタ属性判定回路およびマスタ権限レジスタ104は、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112並びに周辺装置108,114へ、調節済み権限標識子118を出力し、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112へ、信頼済み標識子120を出力する。バス・マスタ101は、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112並びに周辺装置108,114へ、他の情報122も出力する。バス・マスタ102は、バス・マスタ属性判定回路およびマスタ権限レジスタ110へ、権限標識子130を出力する。バス・マスタ属性判定回路およびマスタ権限レジスタ110は、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112並びに周辺装置108,114へ、調節済み権限標識子126を出力し、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112へ、信頼済み標識子128を出力する。バス・マスタ102は、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112並びに周辺装置108,114へ、他の情報124も出力する。
【0038】
動作中、データ処理システム100は、データ処理システム10と同様に動作する。例えば、マスタ101,102はマスタ14,15と同様であり、周辺装置108,114は周辺装置22,24と同様である。また、データ処理システム100には、任意の数のマスタおよび任意の数の周辺装置が含まれてよい。しかしながら、データ処理システム100においては、バス・インタフェース18の部分が異なる場所に分配されている。また、データ処理システム100においては、信頼済み標識子120,128は、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112へ出力される。また、権限標識子116,130は、バス・マスタ属性判定回路およびマスタ権限レジスタ104,110によって、それぞれ選択的に変更され、調節済み権限標識子118,126として、システム・バス103を介して、周辺装置保護判定回路および周辺装置アクセス制御レジスタ106,112並びに周辺装置108,114へ出力される。バス・マスタ属性判定回路およびマスタ権限レジスタ104,110の各々は、図2〜4に関連して上述で説明したマスタ属性判定回路50およびマスタ権限レジスタ30と同様に動作することを述べておく。例えば、マスタ権限レジスタおよび周辺装置アクセス制御レジスタに記憶される情報は、バス・アクセスが許可されるか否かを判定するために、同じ方式で用いられる。他の情報122,124には、制御38、データ40、アドレス42、およびバス・マスタ識別子36などの情報が含まれてもよい。したがって、上述の図1〜4で説明したのと同じ信号が用いられ得るが、しかしながら、信号または一部の信号を発生する回路自体は、異なる場所に配置されてもよく、異なった構造を取ってもよい。
【0039】
図5に示した実施態様では、各バス・マスタ101,102は、対応するバス・マスタ属性判定回路およびマスタ権限レジスタを有するので、図2のバス・マスタ識別子36は随意である。したがって、判定回路およびマスタ権限レジスタは各マスタに分配される。例えば、各判定回路およびマスタ権限レジスタには、対応するバス・マスタに対応する、権限レベルと信頼属性のフィールド(フィールド70〜72,74〜76など)とが含まれ得る。回路と、マスタ権限レジスタに記憶される情報とは、各マスタ内部に配置されることも可能であり、マスタとシステム・バスとの間を連絡して配置されることも可能である。また、周辺装置保護判定回路51および周辺装置アクセス・レジスタ54が、各周辺装置に分配されてもよい。例えば、図5に示したように、各周辺装置108,114は、各周辺装置保護判定回路および周辺装置アクセス制御レジスタが、対応する周辺装置に対応するアクセス制御のフィールド(フィールド80〜82,84〜86など)を含み得るような、対応する周辺装置保護判定回路および周辺装置アクセス制御レジスタを有する。また、データ処理システム10に関連して先に述べたように、周辺装置108,116は任意の型の周辺装置、メモリ・デバイス、またはバス・スレーブであってよく、そのため、特定の機能に範囲が限定されないことを述べておく。
【0040】
図1および2には、双方向性の導線を用いて示したが、代わりに単方向性の導線の組合せが用いられてもよいことが理解されることを述べておく。これに代えて、両方向性および単方向性の導線の組合せが用いられてもよい。信号は、単一の導線を介して直列に転送されてもよく、複数の導線を介して並列に転送されてもよい。これに代えて、単一または複数の導線上で信号が時間多重化されてもよい。また、双方向性の導線として示した信号を単方向性の導線で置き換えてもよく、単方向性の導線を双方向性の導線で置き換えてもよいことを述べておく。
【0041】
本明細書では、特定の実施態様に関連して本発明を説明した。しかしながら、以下の特許請求の範囲に述べる本発明の範囲から逸脱することなく種々の修正および変更がなされ得ることを、当業者は認めるものである。例えば、データ処理システム10,100は、単一のチップすなわち集積回路(IC)またはチップすなわちICの組合せに配置可能な任意の型のデータ処理システムであり得ることが理解される。データ処理システム10,100は、共有の周辺装置を有するネットワーク(ネットワーク・システム・バスを介して接続した)上に配置される種々のマスタおよびスレーブにも適用可能である。したがって、明細書および図面は限定的な意味ではなく例示と見なされるべきであり、そうした修正の全ても本発明の範囲の内に包含されることが意図される。
【0042】
長所、他の利点、および課題の解決法を、特定の実施態様に関して上述にて説明した。しかしながら、長所、利点、および課題の解決法、並びに任意の長所、利点、または解決法を発生またはさらに顕著にし得る任意の要素は、任意の請求項または全ての請求項における、必須、必要、若しくは不可欠な特徴または要素として、構成されるものではない。本明細書では、「含む(comprise)」、「から成る(comprising)」、または、それらの他の変形の語は、一連の要素を含むプロセス、方法、物品、または装置に、それらの要素のみが含まれるのではなく、明示されていない他の要素、若しくは、そのようなプロセス、方法、物品、または装置に固有の他の要素が含まれ得るような、非排他的な包含を覆うことを意図するものである。
【図面の簡単な説明】
【0043】
【図1】本発明の一実施態様によるデータ処理システムのブロック図。
【図2】本発明の一実施態様による図1のバス・インタフェースの一部のブロック図。
【図3】本発明の一実施態様によるマスタ権限レジスタのブロック図。
【図4】本発明の一実施態様による周辺装置アクセス制御レジスタのブロック図。
【図5】本発明の代替の一実施態様によるデータ処理システムのブロック図。

【特許請求の範囲】
【請求項1】
バスを有するデータ処理システム(10)において周辺装置アクセスを保護する方法であって、
周辺装置(22または24)へのアクセスを要求するバス・アクセスを開始するバス・アクセス開始工程と、
バス・アクセスに関連する権限標識子(37)を出力する権限標識子出力工程と、
権限レベル変更子を出力する権限レベル変更子出力工程と、
選択的調節済み権限標識子(57)を生成するために権限レベル変更子の値に基づいて権限標識子を選択的に調節する権限標識子調節工程とから成る方法。
【請求項2】
周辺装置へのバス・アクセスが許可されるか否かを権限標識子ではなく選択的調節済み権限標識子を用いて判定する選択的調節済み権限標識子判定工程をさらに含む請求項1に記載の方法。
【請求項3】
権限レベル変更子は第1のバス・マスタ(14または15)に対応することと、
第1のバス・マスタに対応する複数の信頼属性を出力する信頼属性出力工程と、
バス・アクセスが読取アクセスの場合、複数の信頼属性から第1の信頼属性を選択する第1信頼属性選択工程と、
バス・アクセスが読取アクセスの場合、第1のバス・マスタは読取アクセスに対して信頼済みか否かを第1の信頼属性を用いて判定する第1信頼属性判定工程と、
バス・アクセスが書込アクセスの場合、複数の信頼属性から第2の信頼属性を選択する第2信頼属性選択工程と、
バス・アクセスが書込アクセスの場合、第1のバス・マスタは読取アクセスに対して信頼済みか否かを第2の信頼属性を用いて判定する第2信頼属性判定工程とをさらに含む請求項1に記載の方法。
【請求項4】
周辺装置がアクセスに対して管理者権限レベルを要求するか否かを判定するために周辺装置に対する1つ以上の権限保護ビット(82または86)を出力する権限保護ビット出力工程をさらに含む請求項1に記載の方法。
【請求項5】
第1のバス・マスタに対応する1つ以上の信頼属性を出力する信頼属性出力工程と、
第1のバス・マスタは信頼済みバス・マスタか否かを同1つ以上の信頼属性を用いて判定する信頼属性判定工程とをさらに含む請求項1に記載の方法。
【請求項6】
周辺装置へのアクセスを要求する第2のバス・アクセスを開始する第2バス・アクセス開始工程と、
第2のバス・アクセスに関連する第2の権限標識子を出力する第2権限標識子出力工程と、
第2の権限レベル変更子を出力する第2権限レベル変更子出力工程と、
第2のバス・マスタに対応する第2の権限レベル変更子の値に基づいて第2の権限標識子を選択的に調節する第2権限標識子調節工程とをさらに含む請求項1に記載の方法。
【請求項7】
周辺装置に対する1つ以上の周辺装置信頼属性を出力する周辺装置信頼属性出力工程と、
非信頼バス・マスタから周辺装置へのアクセスが許可される否かを同1つ以上の周辺装置信頼属性を用いて判定する周辺装置信頼属性判定工程とをさらに含む請求項1に記載の方法。
【請求項8】
第1のバス・マスタ(14)、周辺装置(22または24)、権限標識子(37)、調節済み権限標識子(57)、第1の記憶回路(70)、および制御回路(44)から成るデータ処理システムであって、
第1の記憶回路(70)が第1のバス・マスタに対応する第1の権限レベル変更子を記憶することと、
制御回路(44)が第1のバス・マスタ、周辺装置、権限標識子、調節済み権限標識子、および第1の記憶回路に接続され、権限標識子と、第1の権限レベル変更子に基づく選択的調節済み権限標識子とを受信し、かつ、調節済み権限標識子を出力することとを備えるデータ処理システム。
【請求項9】
制御回路に接続された第2のバス・マスタ(15)と、
第2のバス・マスタに対応する第2の権限レベル変更子を記憶し、かつ制御回路に接続された第2の記憶回路(74)と、
第2のバス・マスタがバス・アクセスを開始した時、権限標識子と、第2の権限レベル変更子に基づく選択的調節済み権限標識子とを制御回路が受信することとをさらに備える請求項8に記載のデータ処理システム。
【請求項10】
データ処理システム(10)において周辺装置アクセスを保護する方法であって、
第1のバス・マスタ(14)を設ける工程と、
第2のバス・マスタ(15)を設ける工程と、
周辺装置(22または24)へのアクセスを要求する第1のバス・アクセスを開始する第1バス・アクセス開始工程と、
第1のバス・アクセスに関連する第1の権限標識子(37)を出力する第1権限標識子出力工程と、
第1の権限レベル変更子(70)を出力する第1権限レベル変更子出力工程と、
第1の選択的に調節済み権限標識子(57)を生成するために第1の権限レベル変更子に基づいて第1の権限標識子を選択的に調節する第1権限標識子調節工程と、
周辺装置へのアクセスを要求する第2のバス・アクセスを開始する第2バス・アクセス開始工程と、
第2のバス・アクセスに関連する第2の権限標識子を出力する第2権限標識子出力工程と、
第2の権限レベル変更子(74)を出力する第2権限レベル変更子出力工程と、
第2の選択的調節済み権限標識子を生成するために第2の権限レベル変更子に基づいて第2の権限標識子を選択的に調節する第2権限標識子調節工程とから成る方法。
【請求項11】
バスを有するデータ処理システムにおいて周辺装置アクセスを保護する方法であって、
周辺装置(22または24)へのアクセスを要求するバス・アクセスを開始するバス・アクセス開始工程と、
第1のバス・マスタ(14または15)に対応し、かつ管理者/利用者属性から独立した1つ以上の信頼属性を出力する信頼属性出力工程と、
第1のバス・マスタはバス・アクセスに対する信頼済みバス・マスタか否かを同1つ以上の信頼属性を用いて判定する信頼属性判定工程とから成る方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2006−523347(P2006−523347A)
【公表日】平成18年10月12日(2006.10.12)
【国際特許分類】
【出願番号】特願2006−508658(P2006−508658)
【出願日】平成16年2月4日(2004.2.4)
【国際出願番号】PCT/US2004/003101
【国際公開番号】WO2004/081707
【国際公開日】平成16年9月23日(2004.9.23)
【出願人】(504199127)フリースケール セミコンダクター インコーポレイテッド (806)
【Fターム(参考)】