説明

アクセス許可を決定するための方法および装置

複数のマスタ(12,14)に対応する複数のアクセス要求(84)を受信するステップと、アクセス許可(86)を決定するステップと、状態情報(60)を提供するステップと、アクセス要求(84)に基づいてアクセス許可(86)を決定ステップと、状態情報(90)に基づいてアクセス許可を選択的に修正するステップと、を含むアクセス保護(96)を決定するための方法および装置。状態情報(60)は、デバッグ動作、非セキュアまたは検証されていないメモリからの動作、メモリ・プログラミング、ダイレクト・メモリ・アクセス動作、ブート動作、ソフトウェア・セキュリティ検査、セキュリティ・レベル、セキュリティ監視動作、動作モード、障害監視装置、外部バス・インタフェース等(88)と関連することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクセス許可に関し、特に、例えば、データ処理システムでアクセス許可を決定するためのアクセス許可回路に関する。
【背景技術】
【0002】
システム・オン・チップ(SoC)法の場合には、通常、例えば、メモリのような共有周辺部品およびスレーブ・デバイスを含む複数のマスタが存在する。共有周辺部品およびスレーブ・デバイスのすべてまたはいくつかのコンテンツは、システムを破壊する恐れがあるいくつかのマスタ上で稼働している、正当でないまたはその他の悪意のあるソフトウェアによる不正な変更、複写または問合せから保護しなければならない場合がある。例えば、システムの周辺デバイスおよびスレーブ・デバイス内のセキュア情報にアクセスするために使用することができる、安全保護されていないマスタ上で稼働しているソフトウェアにより、ウイルスが侵入する場合がある。さらに、システム内のいくつかのバス・マスタには安全保護されていると見なせるものもあるし、見なせないものもある。これらの状態は、システムの状態が変化すると変化する場合がある。
【発明の開示】
【発明が解決しようとする課題】
【0003】
それ故、システムの統合性およびセキュリティを確保するために、安全保護されていないマスタ上で稼働している正当でないまたは他の悪意のあるソフトウェアからシステムを保護する必要がある。
【課題を解決するための手段】
【0004】
添付の図面に本発明を示すが、これは例示としてのものであって本発明を制限するものではない。図面中、類似の参照番号は類似の要素を示す。
当業者であれば、図面中の要素は図面を見やすく、分かりやすくするためのものであって、必ずしも正確な縮尺によるものではないことを理解することができるだろう。例えば、本発明の実施形態の理解を助けるために、図の要素のうちのあるものの寸法は他の要素より誇張してある場合がある。
【0005】
本明細書で使用する場合、「バス」という用語は、データ、アドレス、制御または状態のような1つ以上の種々のタイプの情報を転送するのに使用することができる複数の信号または導体を指すために使用される。本明細書で使用する導体は、1本の導体、複数の導体、一方向導体、または二方向導体に関連して説明または記述することができる。しかし、他の実施形態の場合には、異なる導体を使用することができる。例えば、二方向導体の代わりに別々の一方向導体を使用することもできるし、その逆を行うこともできる。また、複数の導体の代わりに、直列にまたは時間多重により複数の信号を転送する1本の導体を使用することができる。同様に、複数の信号を運ぶ1本の導体を、これら信号のサブセットを運ぶ種々の異なる導体に分割することもできる。それ故、信号を転送するのに多くの任意の方法を使用することができる。
【0006】
システムの統合性およびセキュリティを確保するためには、例えば、複数のマスタ・データ処理システムのようなシステムが、安全保護されていないプロセッサまたは他のマスタ上で稼働している正当でないまたは他の悪意のあるソフトウェアにより決して危険にさらされないようにすることが望ましい。例えば、複数のマスタ・システム内の複数のマスタは、例えば、システムの周辺デバイスまたはスレーブ・デバイスのような同じリソースを共有することができる。複数のマスタのうちのいくつかは安全保護されていると見なす
ことができるが、他のものは安全保護されていないと見なすことができる。本明細書で使用する場合には、セキュア・マスタという用語は、一般的によりアクセスし易く、損傷を受けやすい非セキュア・マスタに比べて、一般的にアクセスしにくく、損傷を受けにくいマスタを意味する。例えば、セキュア・マスタは、アクセスしにくく、またはマスタまたはSoCのメーカーにより完全に制御されている命令を実行することができる(すなわち、セキュア・マスタ上で稼働しているソフトウェアは、信頼性の高いソフトウェアまたはセキュア・ソフトウェアであると見なすことができる)。しかし、非セキュア・マスタは、第三者ソフトウェア(例えば、ユーザが開発したソフトウェア)を受信し、実行することができる一般的な用途向けのプロセッサであってもよいし、または任意の他の信頼できないソフトウェア(一般的に、ソフトウェアの内容および機能が分からない)であってもよい。ソフトウェアが信頼できないので、そのソフトウェアは、システムの他の部分を破壊しようとするかもしれないし、またはセキュア情報にアクセスしようとするかもしれない、正当でないかまたは他の悪意のあるソフトウェアである場合がある。さらに、安全保護されている、または安全保護されていない特定のマスタの状態は、データ処理システムが変化すると変化する場合がある。
【0007】
それ故、本発明の一実施形態を使用すれば、例えば、不揮発性メモリのようなスレーブ・デバイスまたは周辺デバイスの内容を安全保護されている状態で動作している場合、プログラムの実行を、不揮発性メモリから続行することができるが、もっと安全保護の薄い状態で動作している場合に、不正なアクセスを防止することができる方法で安全保護状態にすることができる。一実施形態は、システム状態が図1〜図3を参照しながら以下に説明するように、データ処理システムの予めプログラムしたアクセス保護政策を修正または無視することができる方法を提供する。上記無視は、例えば、システムのリソース(例えば、スレーブ・デバイス、周辺デバイス、メモリ、共有リソース等)へのシステム内の各マスタに対して、一緒にまたは別々に、読出しアクセスおよび書込アクセスを制限するために(または逆にこれらのアクセスに対するアクセス許可を緩やかにするために)使用することができる。さらに、これらの無視は、状態情報が変化すると、動的に変化する場合がある。また、さらに以下に説明するように、状態情報は、例えば、デバッグ・モードを使用できるようにすること、安全保護されていないまたは検証されていないメモリ領域からのプログラムの実行、不揮発性メモリの一部の再プログラミング等に関連する情報のようなデータ処理システムの状態に関する任意のタイプの情報を含むことができる。
【発明を実施するための最良の形態】
【0008】
図1は、データ処理システム10の一実施形態である。データ処理システム10は、マスタ12(相互接続またはバス・マスタ12とも呼ばれる)と、マスタ14(相互接続またはバス・マスタ14とも呼ばれる)と、メモリ・コントローラ32と、不揮発性メモリ36と、システム相互接続22と、1/O回路16と、周辺デバイス18と、他のスレーブ・デバイス20とを含む。マスタ12は、導体48を通してシステム相互接続22に二方向で結合していて、マスタ14は、導体50を通してシステム相互接続22に二方向で結合していて、I/O回路は、導体52を介してシステム相互接続22に二方向で結合していて、周辺デバイス18は、導体54を通してシステム相互接続22に二方向で結合していて、他のスレーブ・デバイス20は、導体56を通してシステム相互接続22に二方向で結合していて、メモリ・コントローラ32は、導体24を通してシステム相互接続22に二方向で結合している。導体24は、マスタ識別子26、アドレス/データ30、R/W信号28、および他の信号34を送るための導体を含む。
【0009】
メモリ・コントローラ32は、アクセス保護制御レジスタ38と、アクセス修正回路40と、アクセス制御回路42と、メモリ・アクセス回路44とを含み、導体46を通して不揮発性メモリ36に二方向で結合している。アクセス保護制御レジスタは、アクセス修正回路40へアクセス許可58を提供する。アクセス修正回路40は、データ処理システ
ム10内の情報から導体62を通して、またメモリ・コントローラ32内の情報から導体64を通して状態情報60を受信し、修正したアクセス許可66をアクセス制御回路42に供給する。他の実施形態の場合には、状態情報60は、(導体62を通して)データ処理システム10が供給した情報だけを含むことができるか、またはメモリ・コントローラ32内から供給した情報だけを含むことができることに留意されたい。さらに、状態情報60は、(導体62の何本かのまたはすべてを介して)データ処理システム10の外部のソースから供給された情報を含むことができる。それ故、以下にさらに詳細に説明するように、状態情報60は、アクセス修正回路40に所望の状態情報を提供する任意のタイプの信号またはインジケータを含むことができる。アクセス制御回路42は、メモリ・アクセス回路44にアクセス許可インジケータ68(1つまたは複数のインジケータを含むことができる)を提供する。
【0010】
図1には周辺デバイス18は1つしか図示していないが、データ処理システム10は、システム相互接続22と結合している任意の数の周辺デバイスを含むことができる。同様に、任意の数のマスタおよびスレーブをシステム相互接続22に結合することができ、図1に示すものに限定されない。また、一実施形態の場合には、すべてのデータ処理システム10を、1つの集積回路上または同じデバイス内に位置させることができることに留意されたい。別の方法としては、データ処理システム10は、任意の数の個々の集積回路または相互に接続している個々のデバイスを含むことができる。例えば、一実施形態の場合には、メモリおよびメモリ・コントローラ(例えば、不揮発性メモリ36およびメモリ・コントローラ32など)をデータ処理システム10の残りの部分から独立している1つまたは複数の集積回路上に位置させることができる。
【0011】
一実施形態の場合には、マスタ12およびマスタ14は、マイクロプロセッサ、デジタル信号プロセッサ等のような命令を実行することができるプロセッサであってもよいし、またはダイレクト・メモリ・アクセス(DMA)回路またはデバッグ回路のような任意の他のタイプの相互接続またはバス・マスタを含むことができる。また、図には2つのマスタしか図示していないが、データ処理システム10は、必要に応じて任意の数(1つまたは複数)のマスタを含むことができる。また、任意の所与の動作点において、各マスタ12および14は、異なるレベルのセキュリティを行うことができることに留意されたい。すなわち、例えば、特定の動作点におけるデータ処理システム10の状態に従って、各マスタ12および14は、安全保護されているマスタであってもよいし、安全保護されていないマスタであってもよい。周辺デバイス18は、汎用非同期受信送信機(UART)、リアルタイム・クロック(RTC)、キーボード・コントローラ、任意のタイプのメモリ等のような任意のタイプの周辺デバイスであってもよい。他のスレーブ20が、例えば、マスタ12および14がアクセスすることができるメモリ、および周辺デバイス18のような同じタイプの周辺デバイスを含むシステム・バス上に常駐する任意のタイプの周辺デバイスのような任意のタイプの相互接続スレーブを含むことができることに留意されたい。I/O回路16は、データ処理システム10の内部または外部の情報を受信し、提供する任意のタイプのI/O回路を含むことができる。
【0012】
図の実施形態の場合には、メモリ・コントローラ32および不揮発性メモリ36は、システム相互接続22と結合している他のスレーブ・デバイスに対応する。一実施形態の場合には、不揮発性メモリ36を、システム相互接続22(例えば、マスタ12および14など)と結合している少なくとも2つのマスタにより共有することができることに留意されたい。不揮発性メモリ36は、マスタ12および14として同じ集積回路上に、または別々の集積回路上に位置させることができる。さらに、図のメモリ36は、不揮発性メモリ(フラッシュ・メモリなど)であるが、メモリ36は、例えば、読出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)、不揮発性メモリ(例えば、フラッシュ、MRAM)等の
ような任意のタイプのメモリであってもよい。また、メモリ36は、他の周辺デバイスまたはスレーブ・デバイス内に位置するメモリまたは他の記憶装置であってもよい。さらに他の実施形態の場合には、メモリ36は、メモリ・コントローラ32を、リソースを保護するためのアクセス保護回路を有する任意のタイプのコントローラと置換できる場合に、保護する必要があるセキュア情報を有する任意の他のタイプのリソースであってもよい。
【0013】
システム相互接続22は、マスタ12、マスタ14、I/O回路16、周辺デバイス18、他のスレーブ・デバイス20、およびメモリ・コントローラ32を相互に接続する。一実施形態の場合には、図1に示すように、システム相互接続22は、システム・バス・プロトコルにより動作するシステム・バスとして実施される。別の方法としては、システム相互接続22を、例えば、種々のデバイス間で情報を経路指定するスイッチング回路のような相互接続回路により実施することができる。
【0014】
動作中、マスタ12および14は、メモリ・コントローラ32を介して、他のスレーブ・デバイス20、周辺デバイス18、または不揮発性メモリ36へのアクセスを要求するために、システム相互接続22の使用を要求する。要求を行っているマスタは、システム相互接続22を介して、メモリ・コントローラ32にアクセス要求を供給することができる。アクセス要求は、例えば、データまたは命令に対する読出し要求または書込み要求であってもよい。メモリ・コントローラ32は、読出しアクセス要求に応じて、要求しているマスタが十分なアクセス許可を有しているものと仮定して、システム相互接続22を介して要求しているマスタに要求された情報(データまたは命令)を返送する。一実施形態の場合には、アクセス要求に対して、マスタ識別子26がメモリ・コントローラ32に提供され、メモリ・コントローラはどのマスタが現在のアクセスを要求しているのかを識別する。また、現在のアクセス要求が読出しタイプのアクセスなのか、書込みタイプのアクセスなのかを表示するために、R/W信号28をメモリ・コントローラ32に提供することもできる。メモリ・コントローラ32は、また、現在のアクセス要求に対応するアドレス情報を受信し、アドレス/データ30により要求された情報を提供する。メモリ・コントローラ32へ/から送らなければならない任意の他の信号(状況、制御、データなど)は、他の信号34により提供することができる。
【0015】
マスタ12および14のような各マスタは、不揮発性メモリ36への特定のアクセス要求が許可できるものかどうかを判断するために使用することができる、対応するアクセス許可を有することができる。例えば、特定のマスタは、不揮発性メモリ36に対する書込みアクセスまたは読出しアクセスに対する異なるアクセス許可を有することができる。一実施形態の場合には、これらのアクセス許可は、アクセス保護制御レジスタ38内に記憶される。
【0016】
図2は、図1のアクセス保護制御レジスタ38の一例である。一実施形態の場合には、アクセス保護制御レジスタ38は、データ処理システム10内の各マスタに対する1つのアクセス保護フィールドを含む。例えば、アクセス保護制御レジスタ38は、それぞれマスタ12および14に対応するマスタ12アクセス保護フィールド70およびマスタ14アクセス保護フィールド76を含む。アクセス保護フィールドは、特定のマスタにより不揮発性メモリ36への特定のタイプのアクセスが許可されるかどうかを表示する。例えば、図の実施形態の場合には、各アクセス保護フィールド70および76は、各マスタに対する読出しアクセスおよび書込みアクセスに対する許可を表示するために、読出しアクセス保護フィールドおよび書込アクセス保護フィールドを含む。
【0017】
マスタ12アクセス保護フィールド70は、マスタ12が、不揮発性メモリ36に読出しアクセスを行うことができるかどうかを表示する、マスタ12読出しアクセス保護フィールド72、およびマスタ12が、不揮発性メモリ36に書込みアクセスを行うことがで
きるかどうかを表示する、マスタ12書込みアクセス保護フィールド74を含む。それ故、マスタ12は、不揮発性メモリ36に読出しアクセス、または書込みアクセスの一方だけを行うことを許可することができる。別の方法としては、マスタ12は、フィールド72および74の値に従って、不揮発性メモリ36への読出しおよび書込みアクセスの両方を行うことを許可することもできるし、読出しアクセスおよび書込みアクセスの両方を行うことを許可しないこともできる。一実施形態の場合には、各フィールド72および74は、対応するアクセス・タイプ(読出しまたは書込み)が許可されるかどうかを示すための1ビット・フィールドである。同様に、マスタ14アクセス保護フィールド76は、マスタ14が、不揮発性メモリ36へ読出しアクセスを行うことができるかどうかを示すマスタ14読出しアクセス保護フィールド78、マスタ14が、不揮発性メモリ36に対して書込みアクセスを行うことができるかどうかを示すマスタ14書込みアクセス保護フィールド80を含む。それ故、マスタ14は、不揮発性メモリ36への読出しアクセス、または書込みアクセスの一方だけを行うことを許可することができる。別の方法としては、マスタ14は、フィールド78および80の値に従って、不揮発性メモリ36への読出しおよび書込みアクセスの両方を行うことを許可することもできるし、読出しアクセスおよび書込みアクセスの両方を行うことを許可しないこともできる。一実施形態の場合には、各フィールド78および80は、対応するアクセス・タイプ(読出しまたは書込み)が許可されるかどうかを示すための1ビット・フィールドである。
【0018】
他の実施形態の場合には、アクセス保護制御レジスタ38は、フィールド70および76のような任意の数のアクセス保護フィールドを含むことができることに留意されたい。例えば、アクセス保護制御レジスタ38は、データ処理システム10内の各マスタに対する1つのアクセス保護フィールドを含むこともできるし、データ処理システム10内にマスタのサブセットだけを含むこともできる。また、各アクセス保護フィールド70および76は、読出しおよび書込みアクセス(例えば、バースト・アクセスなど)の代わりにまたはそれに加えて、異なるタイプのアクセスに基づいて、許可を識別するための任意の数のフィールドを含むことができることに留意されたい。さらに、フィールド70、72、74、76、78、および80は、異なるフィールド定義、異なるビット割当て、または異なる数のビットを使用するというような種々の異なる方法で実施することができる。別の方法としては、これらのフィールドは、またはデータ処理システム10の別々のレジスタまたは他のレジスタまたはメモリ位置のような異なる方法で組織化することができる。通常、アクセス保護制御レジスタ38は、セキュア・マスタによりプログラムすることができるソフトウェアである。一実施形態の場合には、アクセス保護制御レジスタ38は、リセットの際にプログラムすることができる。
【0019】
図1に戻って説明すると、アクセス修正回路40は、制御レジスタ38内に記憶しているアクセス許可の1つまたは複数を修正(または無視)するために使用することができる。例えば、状態情報60に従って、アクセス修正回路40は、修正したアクセス許可66を提供するために、アクセス保護制御レジスタ38からアクセス許可58を選択的に修正することができる。すなわち、場合によっては、修正したアクセス許可66を生成するために、すべてのアクセス許可58を修正することができるし、または別の方法としては、修正したアクセス許可66が1つだけまたはいくつかの修正した許可を含むように、アクセス許可58の1つだけまたはいくつかを修正することができる。すなわち、修正したアクセス許可66は、現在修正されていないアクセス保護制御レジスタ38からの許可を含むことができる。また、修正したアクセス許可66は、特定のマスタに対してメモリ36へのもっと広い(または制限がもっと緩やかな)アクセスを供給することができし、または特定のマスタに対してメモリ36へのアクセスを制限することもできることに留意されたい。
【0020】
図1に戻って説明すると、アクセス制御回路42は、修正したアクセス許可66に基づ
いて、現在のアクセス要求が許可されるかどうかを判断することができる。例えば、データ処理システム10内の各マスタ(マスタ12および14など)は、対応するマスタ識別子を有することができる。一実施形態の場合には、各マスタを対応する番号により一意に識別することができるように、マスタ12をマスタ識別子0に対応させることができるし、マスタ14をマスタ識別子1に対応させることができる。他の実施形態の場合には、任意のタイプの識別子を使用することができ、任意の方法で割り当てることができ、0からスタートするまたは1桁の番号からスタートするというような番号順に制限されない。また、他の実施形態の場合には、複数のマスタが同じマスタ識別子を共有することができる。それ故、アクセス制御回路42は、(マスタ識別子26によりアクセス制御回路42に表示された)現在のアクセスをどのマスタが要求しているのかに基づいて、また(修正したアクセス許可66によりアクセス制御回路42に表示された)アクセス許可に基づいて、不揮発性メモリ36へのアクセスが許可されるかどうかを判断することができる。アクセスが許可される場合には、アクセス許可インジケータ68が、メモリ・アクセス回路44が、要求したアクセスを終了(例えば、要求した読出しまたは書込みを終了)するために必要な信号および情報を不揮発性メモリ36に供給することができるように、メモリ・アクセス回路44へのアクセスが許可されることを表示する。しかし、現在要求しているマスタに対する修正したアクセス許可66に基づいて、アクセス制御回路42が、アクセスが許可されないと判断した場合には、アクセス許可インジケータ68は、メモリ・アクセス回路44が要求したアクセスを終了しないように、アクセスが許可されないことを表示する。図3を参照しながら、メモリ・コントローラ32の動作についてさらに説明する。
【0021】
図3は、本発明の一実施形態によるメモリ・コントローラ32の動作に対応する流れ96を示す。流れ96は、スタート82からスタートし、ブロック84に進み、ここでアクセス要求が受信される。例えば、マスタ12または14は、システム相互接続22を介して、不揮発性メモリ36にアクセス要求を供給することができる。アクセス要求は、例えば、R/W信号28で示すように、読出し要求または書込み要求であってもよい。次に、流れはブロック86に進み、ここでアクセス許可が決定される。例えば、これらのアクセス許可は、アクセス保護制御レジスタ38内のフィールド(フィールド70および76など)により提供することができる。次に、流れはブロック88に進み、ここで状態情報(状態情報60など)が受信される。状態情報は、例えば、デバッグ動作、安全保護されていないまたは検証されていないメモリからの動作、メモリ・プログラミング、ダイレクト・メモリ・アクセス(DMA)動作、ブート動作、ソフトウェア・セキュリティ検査、セキュリティ・レベル、セキュリティ監視動作、動作モード、障害監視装置、外部バス動作等と関連することができる。すなわち、情報は、状態情報60により、上記条件、状態または動作の1つまたは複数を表示することができるアクセス修正回路40に提供することもできるし、上記条件、状態または動作の1つまたは複数に関連する情報を表示することもできる。それ故、状態情報60は、メモリ・コントローラ32内の(マスタ12、マスタ14、I/O回路16、周辺デバイス18または他のスレーブ20からのような)データ処理システム10内の種々の場所から、またはデータ処理システム10の外部の場所から、またはこれらの任意の組合わせから受信することができる。
【0022】
例えば、デバッグ動作に関連する状態情報の場合には、状態情報60の信号の1つまたは複数を、別々のユニットとしての、または例えば、マスタ12または14の一部としてのシステム相互接続22と結合しているデバッグ回路(図示せず)から受信することができる。状態情報60内の信号は、また、アクセス修正回路40への2つ以上のリソースに基づいて、結合状態情報または状態情報を提供するための種々の異なる方法で結合することができる。この結合回路は、アクセス修正回路40内、アクセス修正回路40の外部、またはメモリ・コントローラ32の外部にも位置することができる。
【0023】
図3を参照すると、次に、流れはブロック90に進み、ここで受信した状態情報に基づいて、アクセス許可が選択的に修正される。例えば、一実施形態の場合には、状態情報60により送られたいくつかの条件または状況が、アクセス保護制御レジスタ38内に記憶している許可を、ハードウェアにより無視することができるように、アクセス許可を修正するためにハードウェア無視を使用することができる。例えば、一実施形態の場合には、いくつかの条件が満たされた場合に、修正したアクセス許可66のような修正したアクセス許可を生成するために、ハードウェアによりアクセス保護制御レジスタ38の値を修正または置換できるように、状態情報60を必要に応じて結合し、ハードウェア無視回路に入力(または直接入力)することができる。別の方法としては、修正したアクセス許可66を生成するために、他のハードウェア的方法またはソフトウェア的方法のような他の方法で状態情報60に基づいて、アクセス許可58を選択的に修正することができる。
【0024】
次に、流れは、ブロック92に進み、ここで修正したアクセス許可に基づいて、要求したアクセスが選択的に実行される。例えば、マスタ12が不揮発性メモリ36に読出しアクセスを要求し、マスタ12の読出しアクセス保護フィールド72が、マスタ12による読出しアクセスが許可されることを表示した場合には、(それがアクセス修正回路40により修正されていないと仮定して)マスタ12の要求が実行される。しかし、状態情報60が、マスタ12の読出しアクセス許可を(許可ではなく拒否するように)修正すべきであると表示している場合には、要求した読出しアクセスが許可ではなく、拒否され、マスタ12読出しアクセス保護フィールド72を無視するように、アクセス修正回路40は、読出しアクセス許可を修正する(およびそれを修正したアクセス許可66の一部として提供する)ことができる。次に、流れはエンド94のところで終わる。(図3の流れは、メモリ・コントローラ32を介して、メモリ36への各アクセス要求の度に反復することができることに留意されたい。)
それ故、マスタ12または14のようなマスタによる不揮発性メモリ36への各アクセスの場合、アクセス保護制御レジスタ38は、現在のアクセスを許可すべきかどうかを判断するために使用することができるアクセス許可58を提供する。しかし、データ処理システム10の状態情報に従って、これらソフトウェア・プログラマブル・レジスタを無視するのが望ましい(それ故、修正したアクセス許可66になる)状況がある。例えば、アクセス保護制御レジスタ38がソフトウェア・プログラマブルである場合には、アクセス保護制御レジスタ38内に記憶している許可が、非セキュア・ソフトウェアにより、保護しなければならないセキュア情報へのアクセスを間違って許可するように変化している場合がある。それ故、データ処理システム10のある状態情報または条件に従って、セキュア情報へのアクセスを防止するために、アクセス保護制御レジスタ38のアクセス許可を修正するために使用することができる修正(ハードウェア無視など)を行うために、アクセス修正回路40を使用することができる。
【0025】
ある例の場合には、デバッグ動作中アクセスを制限しなければならない場合がある。何故なら、デバッグ中は、一般的に、データ処理システム10にアクセスし易くなるからである。それ故、一実施形態の場合には、状態情報60は、デバッグを行うことができる時を表示するデバッグ回路(図示せず)からの情報を含む。この場合、アクセス保護制御レジスタ38内に記憶しているマスタ12および14のうちのいくつかまたはすべての許可をアクセス修正回路40により修正することができる。
【0026】
他の例の場合には、非セキュアまたは検証されていないメモリからの動作中、データ処理システム10のセキュリティを確保し、例えば、これらの非セキュアまたは検証されていないメモリ内に記憶している正当でないまたは悪意のあるソフトウェアによるものと思われる破壊を防止するために、アクセスを修正しなければならない場合がある。
【0027】
他の例の場合には、メモリがプログラムされている場合には、アクセス許可を修正する
ことができる。例えば、図1を参照すると、不揮発性メモリ36が修正される場合には、不揮発性メモリ36へのアクセス許可を修正することができる。何故なら、不揮発性メモリ36の修正した部分のセキュリティを確保することができないからである。例えば、不揮発性メモリ36が修正されていて、悪いデータ、間違っている情報を含んでいたり、または正当でないまたは悪意のあるソフトウェアを記憶している場合がある。この場合、状態情報60は、例えば、導体64を介して、メモリ・コントローラ32内から提供された情報を含むことができる。
【0028】
さらに他の例の場合には、アクセス許可を、ダイレクト・メモリ・アクセス(DMA)動作のために修正することができる。この例の場合には、状態情報60は、DMA動作(例えば、マスタ12または14がDMAであるか、DMAを含んでいる)の発生を示すために、DMAからの信号を含むことができる。他の例の場合には、セキュア情報を安全保護されている状態のままに確実に維持するために、ブート動作の際にアクセス許可を修正することができる。何故なら、システムが、正当でないファームウェア、ソフトウェアまたは設定のために未知の状態にブートされる場合があるからである。また、アクセス保護制御レジスタ38内に記憶しているアクセス許可が、ソフトウェアを検査することができるまでアクセスを制御することができないように(すなわち、無視または修正されるように)、ソフトウェア・セキュリティ検査に基づいてアクセス許可を修正することができる。アクセス許可は、また、データ処理システム10またはマスタ12および14のセキュリティ・レベルに基づいて修正することができる。例えば、各マスタは、(セキュア状態、非セキュア状態をちょうど超えた)変化するセキュリティ・レベルを有することができる。この場合、特定のアクセス要求中のセキュリティ・レベルに基づいて、制御レジスタ38へのアクセス許可を修正することができる。アクセス許可は、また、セキュリティ監視動作に基づいて修正することもできる。例えば、セキュリティ監視装置(図示せず)を、セキュリティが確実に遵守されるように、データ処理システム10内の動作を監督するデータ処理システム10に内蔵させることができる。それ故、セキュリティ監視装置がある状態を検出した場合には、それに従ってアクセスが修正される。それ故、状態情報60は、アクセス修正回路40へのこれらの状況、条件および動作に関連する情報を提供するために使用することができる。
【0029】
また、他の例の場合には、状態情報60が示すように、データ処理システムまたはメモリ・コントローラ32の動作モードに基づいて、アクセス許可を修正することができる。例えば、データ処理システム10が、(動作の基本的セットしかサポートされない最低動作状態のような)低いレベルの動作状態に入った場合には、低いレベルで動作しながらデータ処理システム10を保護するために、制御レジスタ38のプログラムしたアクセス許可を修正することができる。他の実施形態の場合には、アクセス許可は、データ処理システム10の障害監視装置(図示せず)に基づいて修正することができる。例えば、データ処理システム10の任意の部分の障害を検出する障害監視装置に応じて、制御レジスタ38のアクセス許可を、障害を検出した場合にアクセスを制限するように修正することができる。この例の場合には、障害監視装置からの信号を、状態情報60によりアクセス修正回路40に送ることができる。さらに他の実施形態の場合には、アクセス許可を外部バス動作に基づいて修正することができる。例えば、外部バスの動作中、外部ソースは、セキュア情報にアクセスまたはセキュア情報を修正しようと試みることもできるし、メモリ36またはデータ処理システム10を破壊しようと試みることもできる。それ故、データ処理システム10のセキュリティを確保するために、外部バス動作中、アクセスに対するアクセス許可を制限することができる。
【0030】
制御レジスタ38のアクセス許可を選択的に修正するために、状態情報(例えば、状態情報60により提供された)を使用することができるいくつかの状況に対して多くの例を記述したことに留意されたい。他の実施形態は、上記の例よりももっと多くのまたはもっ
と少ない情報を使用することができる。さらに、データ処理システム10のニーズに従って、アクセス許可を修正しなければならない時を決定するために、任意の種々の方法で状態情報60を組合わせることができる上記状況の組合わせを使用することができる。すなわち、状態情報60は、アクセス修正回路40が、アクセス許可を修正するのかしないのかを正しく判断することができるように、アクセス修正回路40に必要な状態情報を表示するために、メモリ・コントローラ32内からのものを含む種々の異なるリソースまたはソースから取り出すことができる。さらに、状態情報は、データ処理システム10またはその構成要素のうちの任意のものの状態および条件を反映する任意のタイプの情報を含むことができる。また、状態情報は、1つまたは複数のマスタ(マスタ12および14など)の信頼性を表示することができる。また、上記大部分の例は、アクセス許可の制限についてものであったが、アクセス修正回路40は、また、データ処理システム10の設計に従って、アクセス許可を緩和または広くするために状態情報を使用することもできることに留意されたい。
【0031】
それ故、複数のマスタ・データ処理システムを含むデータ処理システムのセキュリティをどのようにして改善できるのかを理解することができるだろう。アクセス修正回路は、種々の異なるタイプの状態情報に基づいて、アクセス許可を選択的に修正するために使用することができる。それ故、データ処理システム10の状態が変化した場合、アクセス毎にアクセス許可を制限したり、緩和したりすることにより、必要に応じてセキュリティを維持することができる。さらに、修正は、マスタ毎におよびアクセス・タイプ毎に行うことができる。状態情報は、メモリ・コントローラ32内の情報を含む、データ処理システム10の種々の部分から受信した情報を含むこともできるし、データ処理システム10の外部のソースから受信した情報も含むことができる。また、アクセス修正回路は、ハードウェア無視機構を使用して、アクセス許可を選択的に修正することができることに留意されたい。別の方法としては、修正したアクセス許可66を生成するために、他のハードウェア、ソフトウェアまたはこれらの組み合わせ、機構を使用することができる。
【0032】
上記説明においては、特定の実施形態を参照しながら本発明を説明してきた。しかし、通常の当業者であれば、添付の特許請求の範囲に記載する本発明の範囲から逸脱することなしに、種々の修正および変更を行うことができることを理解することができるだろう。例えば、データ処理システム10およびメモリ・コントローラ32を、図1の実施形態で説明したのとは別の方法で組織化することができる。さらに、ハードウェア、ソフトウェアおよびファームウェアの任意の組合わせで回路を実施することができる。それ故、明細書および図面は説明のためのものであって、本発明を制限するものではなく、このようなすべての修正は、本発明の範囲内に含まれると解釈すべきである。
【0033】
特定の実施形態を参照しながら、本発明の利益、他の利点および問題の解決方法について説明してきた。しかし、任意の利益、利点または解決方法をもたらしたり、より優れたものにすることができる上記利益、利点、問題の解決方法および任意の要素は、任意のまたはすべての請求項の重要な、必要なまたは本質的な機能または要素と解釈すべきではない。本明細書で使用する場合、ある(「a」または「an」)という用語は、1つまたは複数と定義される。本明細書で使用する場合、「含む」(including)および/または「有する」(having)という用語は、「備える」(すなわち、オープン言語)と定義される。本明細書で使用する場合、「備える」(comprise)、「備えている」(comprising)またはその任意の他の派生語は、要素のリストを備えるプロセス、方法、物品または装置が、これらの要素を含むばかりでなく、リストに明示されていないか、またはこのようなプロセス、方法、物品または装置固有の他の要素を含むことができるように、非排他的な内容を含む。
【図面の簡単な説明】
【0034】
【図1】本発明の一実施形態によるデータ処理システムのブロック図。
【図2】本発明の一実施形態による、図1のデータ処理システムのアクセス保護制御レジスタのブロック図。
【図3】本発明の一実施形態による、図1のデータ処理システムの動作の流れ図。

【特許請求の範囲】
【請求項1】
アクセス許可回路であって、
第1のバス・マスタに対応する第1のアクセス許可情報を記憶する第1のアクセス保護回路と、
第2のバス・マスタに対応する第2のアクセス許可情報を記憶する第2のアクセス保護回路と、
前記第1および第2のアクセス保護回路と結合しているアクセス修正回路と、
前記アクセス修正回路が提供するアクセス許可インジケータと、を備え、
前記第1のバス・マスタによる第1のアクセスに応じて、前記アクセス修正回路が、第1の状態情報を受信し、また前記第1のアクセス許可情報を受信し、
前記第1の状態情報に基づいて、前記アクセス修正回路が、第1の修正したアクセス許可情報を生成するために、前記第1のアクセス許可情報を選択的に修正し、
前記第1の修正したアクセス許可情報が、前記アクセス許可インジケータが、前記第1のアクセスを許可するかどうかを判断するために使用され、
前記第2のバス・マスタによる第2のアクセスに応じて、前記アクセス修正回路が第2の状態情報を受信し、前記第2のアクセス許可情報を受信し、
前記第2の状態情報に基づいて、前記アクセス修正回路が、第2の修正したアクセス許可情報を生成するために、前記第2のアクセス許可情報を選択的に修正し、
前記第2の修正したアクセス許可情報が、前記アクセス許可インジケータが、前記第2のアクセスを許可するかどうかを判断するために使用される、アクセス許可回路。
【請求項2】
前記第1の状態情報が、前記第1のバス・マスタの信頼性を表示する請求項1に記載のアクセス許可回路。
【請求項3】
前記第1の状態情報が、ブート動作に関連する請求項1に記載のアクセス許可回路。
【請求項4】
前記アクセス許可回路が、データ処理システムの一部を備える請求項1に記載のアクセス許可回路。
【請求項5】
前記第1の状態情報を提供するためのデバッグ回路をさらに備える請求項4に記載のデータ処理システム。
【請求項6】
前記第1の状態情報を提供するためのダイレクト・メモリ・アクセス(DMA)をさらに備える請求項4に記載のデータ処理システム。
【請求項7】
前記第1の状態情報を提供するための外部バス・インタフェース回路をさらに備える請求項4に記載のデータ処理システム。
【請求項8】
前記第1のバス・マスタが、命令を実行するマスタ、ダイレクト・メモリ・アクセス(DMA)動作を行うマスタ、およびデバッグ動作を行うマスタのうちの少なくとも1つを備える請求項1に記載の方法。
【請求項9】
アクセス保護を決定するための方法であって、
第1のマスタに対応する第1のアクセス要求を受信するステップと、
前記第1のマスタに対応する第1のアクセス許可を決定するステップと、
第1の状態情報を受信するステップと、
前記第1の状態情報に基づいて、前記第1のアクセス許可を選択的に修正するステップと、
第2のマスタから第2のアクセス要求を受信するステップと、
前記第2のマスタに対応する第2のアクセス許可を決定するステップと、
第2の状態情報を受信するステップと、
前記第2の状態情報に基づいて、前記第2のアクセス許可を選択的に修正するステップと、を含み、
前記第1の状態情報が、前記第2の状態情報とは異なるソースから提供される方法。
【請求項10】
アクセス保護を決定するための方法であって、
第1のマスタに対応する第1のアクセス要求を受信するステップと、
第1の状態情報を提供するステップと、
前記第1のアクセス要求に基づいて、第1のアクセス許可を決定するステップと、
前記第1の状態情報に基づいて、前記第1のアクセス許可を選択的に修正するステップと、
第2のマスタに対応する第2のアクセス要求を受信するステップと、
第2の状態情報を提供するステップと、
前記第2のアクセス要求に基づいて、第2のアクセス許可を決定するステップと、
前記第2の状態情報に基づいて、前記第2のアクセス許可を選択的に修正するステップと、を含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2007−501477(P2007−501477A)
【公表日】平成19年1月25日(2007.1.25)
【国際特許分類】
【出願番号】特願2006−532516(P2006−532516)
【出願日】平成16年4月30日(2004.4.30)
【国際出願番号】PCT/US2004/013369
【国際公開番号】WO2004/107176
【国際公開日】平成16年12月9日(2004.12.9)
【出願人】(504199127)フリースケール セミコンダクター インコーポレイテッド (806)
【Fターム(参考)】