(57)【特許請求の範囲】
【請求項１】
集積回路（１０）であって：
バス（２０）；
前記バスに結合された処理ユニット（１２）；
メモリ（１４）；および
前記バスと前記メモリとの間に結合されたアクセス保護回路（１１）；
から成り、
前記アクセス保護回路は：
前記メモリへのアクセス要求（７０）を受信する第１入力；
前記アクセス要求の受信アクセス属性（６８）を受信する第２入力；
前記メモリの少なくとも一部の格納アクセス属性を格納する記憶回路（５１）；
前記記憶回路に結合され、前記アクセス要求の受信に応答して比較動作を行い、かつ比較動作に応答してアクセス・フォールト信号（５２）を選択的にアサートする比較回路（４２）；
ハードウェア・リセットをする第１メモリ保護モードおよびソフトウェアによって処理する第２メモリ保護モードの少なくとも１つを選択する選択回路（４８）；および
前記比較回路に結合されてアクセス・フォールト信号を受信し、かつ前記選択回路に結合された信号発生回路（４４）であって、前記アクセス・フォールト信号がアサートされ、かつ前記第１メモリ保護モードが選択されている場合に、リセット信号（５８）をアサートし、ハードウェア・リセットを開始する信号発生回路（４４）；
からなる集積回路（１０）。
【請求項２】
保護対象の情報を格納するメモリ（１４）を有する集積回路（１０）であって：
アクセス要求を転送する少なくとも１つの第１導体（７０）であって、前記アクセス要求が前記メモリに対するアクセスを要求する第１導体（７０）；
前記アクセス要求のアクセス属性を転送する少なくとも１つの第２導体（６８）；
前記メモリの少なくとも一部分のアクセス属性を格納する記憶回路（５１）；
前記少なくとも１つの第１導体に結合され、かつ前記少なくとも１つの第２導体に結合され、更に前記記憶回路に結合された比較回路（４２）であって、前記アクセス要求の受信に応答して比較動作を行い、かつ前記比較動作に応答してアクセス・フォールト信号（５２）を選択的にアサートする比較回路（４２）；
ハードウェア・リセットをする第１メモリ保護モードおよびソフトウェアによって処理する第２メモリ保護モードの少なくとも１つを選択する選択回路（４８）；および
前記比較回路に結合され、更に前記選択回路に結合された信号発生回路（４４）であって、前記アクセス・フォールト信号がアサートされ、かつ前記第１メモリ保護モードが選択されている場合、リセット信号をアサートし、ハードウェア・リセットを開始する信号発生回路（４４）；
からなる集積回路（１０）。
【請求項３】
集積回路（１０）においてメモリ（１４）のアクセス保護を与える方法であって：
ハードウェア・リセットをする第１メモリ保護モードおよびソフトウェアによって処理する第２メモリ保護モードの少なくとも１つを選択する段階（４８）；
前記メモリの少なくとも一部分の格納アクセス属性を格納する段階（５１）；
前記メモリに対するアクセス要求が受信されたか否かについて判定を行う段階（８６）；
前記メモリに対するアクセス要求が受信された場合、前記アクセス要求に対応する受信アクセス属性を受信する段階（６８）；
前記メモリに対するアクセス要求が受信された場合、前記格納アクセス属性を前記受信アクセス属性と比較する段階（９６）；および
前記格納アクセス属性が前記受信アクセス属性と一致せず、かつ、前記第１メモリ保護モードが選択されている場合（８９）、リセット信号をアサートし、ハードウェア・リセットを開始する段階（５８）；
からなる方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に、集積回路に関し、更に特定すれば、集積回路においてアクセス保護を備える方法および装置に関するものである。
【０００２】
【従来の技術】
セキュリティは、集積回路の開発における重要な問題である。これら集積回路内のコンポーネントおよび情報には、何らかの方法でアクセス保護を備え、これらのシステムの保全性(integrity) を保護する必要がある。データ処理システムのコンポーネント（例えばメモリ）のような、集積回路の特定の場所に対する無許可のアクセスを防止するために、通常ある形態のセキュリティ・システムが実施されている。委託を受けたソフトウエア開発者は、データ処理システムのような集積回路上の全てのアプリケーションに対する責任を負う、公認のユーザである。彼らは、データ処理システム内部のあらゆるコンポーネントおよび構造の存在，位置，および使用法について知っている。通常、データ処理システムが公衆に発売される場合、その構造全ての完全な開示を一般公衆に与えることはない。一般公衆には、当該集積回路に対する彼らの必要性および使用に適用される要素についてのみ情報が与えられる。したがって、これらの公認のソフトウエア開発者は、システムに対する完全なアクセスを有することによってデータ・プロセッサ内のアプリケーション全てに責任を負うのに対し、一般ユーザには限られた情報だけが与えられる。
【０００３】
【発明が解決しようとする課題】
無許可のユーザが、一般公衆には使用できないシステムの部分にアクセスした場合に、問題が発生する。これによって、無許可のユーザが重要なコンポーネントへのアクセスを達成し、システムのセキュリティを犯す可能性がある。この違反によって、無許可のユーザには、システム内部のデータまたは機能に関する重要な情報が得られ、この情報がデータ処理システムのような集積回路に損害を与える可能性がある。データ処理システムの部分のセキュリティ保護に用いられる技法に、アクセス・フォールトが検出された場合にはいつでも、例外フォールト(exception fault) を発生するというものがある。この例外フォールトは、次に、従来技術の手法でソフトウエア例外ハンドラによって処理される。ソフトウエアの例外ハンドラを用いる際、無許可のユーザがこのソフトウエア・セキュリティ構造を検出すると、ハンドラ内のソフトウエアを辿っていく可能性があるので、重大な問題が発生する。無許可のユーザは、無限のアクセスを得ることができ、更にハンドラを無視して、データ・プロセッサまたはその他の集積回路の保護されたコンポーネントにまでアクセスすることが可能となる。ソフトウエアの例外ハンドラは侵入を受ける可能性が非常に高く、そのために、集積回路内に格納されている情報に対する無許可のアクセスを防止する一層確実な方法が必要とされている。
【０００４】
【発明の実施の形態】
図１は、データ・プロセッサ１０を示す。一実施例では、データ・プロセッサ１０は、中央演算装置（ＣＰＵ）１２，メモリ１４，システム統合モジュール１６，およびその他のモジュール１８を含み、バス２０によって互いに双方向的に結合されている。システム統合モジュール１６は、外部バス２６を介して、データ・プロセッサ１０の外部に結合してもよい。他のモジュール１８は、オプションとして、１つ以上の集積回路端子２８を介して、データ・プロセッサ１０の外部に結合される。メモリ１４は、オプションとして、１つ以上の集積回路端子２４を介してデータ・プロセッサ１０の外部に結合される。中央演算装置１２は、オプションとして、１つ以上の集積回路端子２２を介してデータ・プロセッサ１０の外部に結合される。本発明の一実施例では、アクセス保護回路１１をバス２０とメモリ１４との間に挿入し、メモリ１４へのアクセスの監視および制御を行う。本発明の代替実施例では、アクセス保護回路１１は、オプションの集積回路端子２４およびメモリ１４との間に挿入してもよい。
【０００５】
更に図１を参照して、本発明の代替実施例では、いずれのタイプの構造をデータ・プロセッサ１０に用いてもよい。加えて、データ・プロセッサ１０は多種多様の機能を実行するものとしてもよい。例えば、データ・プロセッサ１０は、ＲＩＳＣ(Reduced Instruction Set Computer)アーキテクチャを用いてもよく、ハーバード・アーキテクチャ(Harvard architecture)を用いてもよく、ベクトル・プロセッサとしてもよく、ＳＩＤＭ(Single Instruction Multiple Data)プロセッサとしてもよく、浮動小数点算術演算を実行するものとしてもよく、デジタル信号処理計算を実行するものとしてもよい等があげられる。
【０００６】
図２は、アクセス保護回路１１の一部分の一実施例を示す。図示の実施例では、アクセス保護回路１１は、レジスタ４０，比較回路４２，信号発生回路４４，およびメモリ・イネーブル回路４６を含む。アドレス６６，アクセス属性（ａｃｃｅｓｓ  ａｔｔｒｉｂｕｔｅ）６８，およびその他の制御信号７０が、バス２０を通じて比較回路４２に供給される。他の制御信号７０は、バス２０を通じて信号発生回路４４にも供給される。アドレス６６，他の制御信号７０，およびデータ７２は全て、バス２０を通じて、メモリ・イネーブル回路４６に供給される。レジスタ４０は、多数の導体６２を介して比較回路４２に結合され、更に多数の導体６４を介して信号発生回路４４に結合されている。比較回路４２は、アクセス・フォールト信号５２およびその他のオプションの信号５４を介して、信号発生回路４４に結合されている。信号発生回路４４は、イネーブル信号５６を介して、メモリ・イネーブル回路４６にも結合されている。信号発生回路４４は、リセット信号５８および例外発生信号６０をバス２０に出力する。メモリ・イネーブル回路４６の出力は、多数の導体７４を介してメモリ１４に供給される。
【０００７】
図３は、図１のデータ・プロセッサ１０においてアクセス保護を行うためのプロセスの一実施例を、フロー・チャート形態で示す。図３を参照すると、平らな楕円８０，８１はプロセスの開始点および終点を表し、菱形８６ないし８９はプロセスにおける判断点を表し、長方形９５ないし９８はプロセスの間に実行されるステップを表す。
【０００８】
これより本発明の動作について説明する。尚、信号，ステータス・ビット，または同様の機構(apparatus) をそれぞれ論理真状態または論理虚状態にすることに言及する場合には、「アサート」および「ニゲート」という用語を用いることにする。論理真状態が論理レベル１である場合、論理虚状態は論理レベル０となる。また、論理真状態が論理レベル０である場合、論理虚状態は論理レベル１となる。
【０００９】
次に、本発明の動作について説明する。図３は、本発明の一実施例を実行する方法を示す。アクセス保護イネーブル・ビット５０は、公認のソフトウエア開発者がソフトウエアによってプログラム可能し、メモリにアクセスする前に、アクセス特権をチェックするか否かについて判定を行うことができる。このビットがアサートされている場合、メモリ・アクセスを許可する前に、アクセス特権のチェックを行う。したがって、図３に示すように、ステップ８６におけるようにメモリ・アクセスが要求され、アクセス保護イネーブル・ビット５０がアサートされている場合、メモリ・アクセスを許可する前に、アクセス特権をチェックする。一方、メモリ・アクセスが要求されたが、アクセス保護イネーブル・ビット５０がアサートされていない場合、アクセス特権には無関係に、ステップ９５におけるように、メモリ・アクセスを許可する。
【００１０】
本発明の一実施例では、アクセス保護イネーブル・ビット５０および選択的リセット・ビット４８がレジスタ４０内に配置されている。これらのビットは、プログラマのモデルにおける位置を参照し、ソフトウエアによるプログラムが可能である。代替実施例では、これらのビットは様々な方法で実施可能であり、例えば、マスク・プログラム可能ビット，ライト・ワンス・ビット(write once bits) ，またはライト・ワンス・アウト・オブ・リセット・ビット(write once out of reset bits)を含む。これらのビットまたはレジスタの表現は、例えば、マスク・メモリ，再プログラム可能ＥＥＰＲＯＭ（電気的消去可能プログラム可能リード・オンリ・メモリ），ＲＡＭ（ランダム・アクセス・メモリ），またはその他のあらゆるタイプのメモリ，ラッチ，あるいは記憶回路のような、種々の記憶回路内に配置することができる。
【００１１】
一旦メモリ・アクセスが要求され、アクセス保護イネーブル・ビット５０がアサートされていると判定されたなら、図２に示すようなレジスタ４０内に見られるアクセス属性ビット５１に対して、アクセス属性６８をチェックする。アクセス属性ビット５１は、どのアクセスまたは動作が許可されるのかに関する情報を提供する。これらの属性は、スーパーバイザまたはユーザ・ モード，リード，ライト，または実行，プログラムまたはデータ，先の選択肢のあらゆる組み合わせ、あるいは記憶回路内に格納されている情報のその他のあらゆるタイプの属性を含むことができる。
【００１２】
本発明の一実施例では、図２に示すように、比較回路４２がバス２０からのアクセス属性ビット５１，アクセス属性６８，および他の制御信号７０を用いて、ソフトウエアが、要求されたメモリ領域にアクセスするために必要なアクセス特権を有するか否かについて判定を行う。本発明の一実施例では、他の制御信号７０には、メモリ１４に対するアクセスを要求するために用いられる１つ以上の信号が含まれる。アクセス・フォールトが検出されない場合、ソフトウエアは必要なアクセス特権を有することを意味し、メモリ・アクセスは許可される。アクセス・フォールトが検出された場合、比較回路４２はアクセス・フォールト信号５２をアサートし、信号発生回路４４にこれを供給する。信号発生回路４４はレジスタ４０にアクセスし、選択的リセット・ビット４８がアサートされているか否かについて判定を行う。本発明の一実施例では、選択的リセット・ビット４８はメモリ保護モードを選択するために用いられ、一方代替実施例では、複数のメモリ保護モードの１つを選択するために、１つ以上の選択リセット・ビットまたはその他のビットを用いることができる。本発明の一実施例では、第１メモリ保護モードを用いてハードウエア割り込みを発生することができ、一方他のメモリ保護モードを用いてソフトウエアによってアクセス・フォールトを処理することができる。更に、代替実施例は、メモリのみではなく、集積回路内部の他のコンポーネントまたは回路に関係する複数の保護モードを含むことができる。
【００１３】
選択的リセット・ビット４８がアサートされている場合、信号発生回路４４はリセット信号５８をアサートし、ハードウエア・リセットを開始する。この選択的リセット・ビット４８がアサートされておらず、アクセス・フォールトが検出された場合、信号発生回路４４は、単に例外発生信号６０を出力するので、従来技術のようにソフトウエア例外ハンドラがアクセス・フォールトを処理することができる。代替実施例では、ソフトウエア例外ハンドラの代わりに、例外フォールトを処理する他の方法を利用することができる。更に、選択的リセット・ビット４８は、２つの選択肢のみに限定される訳ではない。例えば、選択的リセットに２ビット以上を用いることができ、その場合複数の選択肢の１つをハードウエア・リセットとする。
【００１４】
公認のソフトウエア開発者は、アクセス保護イネーブル・ビット５０を通じて、アクセス保護回路をイネーブルする選択肢を有する。このビット５０がアサートされている場合、アクセス保護回路１１は、要求されたメモリ・アクセスが許可されたものか否かについてチェックする。逆に、ビット５０がアサートされていない場合、アクセス特権には無関係に、データ７２，アドレス６６，およびその他の制御信号７０は、メモリ・イネーブル回路４６によってアクセス保護回路１１を迂回し、直接メモリ１４に向かう。アクセス保護回路１１がイネーブルされている場合、公認のソフトウエア開発者は、選択的リセット・ビット４８を用いてメモリ保護モードを選択する選択肢を有する。この選択的リセット・ビット４８がアサートされていない場合、いずれのアクセス・フォールトが生じても、例外発生信号６０を通じて、単にソフトウエア例外フォールトのきっかけになるだけである。例外フォールトは、ソフトウエア例外ハンドラによって処理することができる。
【００１５】
再び、代替実施例では、ソフトウエア例外ハンドラの他に異なる一連のイベントを実施し、選択的リセット・ビット４８がアサートされていない場合に、アクセス・フォールトに対処することができる。一実施例では、選択的リセット・ビット４８をアサートしないというオプションがシステムに維持されている。何故なら、ソフトウエア例外ハンドラの使用は、ソフトウエア・アプリケーションの開発部分において、ソフトウエアのデバッグに役立つからである。代替実施例には、公認のソフトウエア開発者に、ハードウエア・リセットを使用するか否かの選択肢を提示しない場合もある。この場合、ハードウエア・リセットは、アクセス・フォールトが検出される毎に発生する。
【００１６】
本発明の一実施例では、公認の開発者が選択的リセット・ビット４８をアサートすることを決定した場合、これはライト・ワンス制御ビットであるので、変更することはできない。したがって、通常、全てのデバッグが完了し、製品が市場に出荷する用意が整うまで、このビットをアサートしない。この選択的リセット・ビット４８がアサートされている場合、比較回路４２によって検出され信号発生回路４４によって処理されたいずれかのアクセス・フォールトが、システム全体のハードウエア・リセットを誘発する(initiate)リセット信号５８をアサートする。本発明の一実施例では、ハードウエア・リセットは、データ・プロセッサ１０の現状態のみならず、データ・プロセッサ１０の全てのレジスタに収容されているあらゆるステータス情報もクリアする。代替実施例では、ハードウエア・リセットが、データ・プロセッサ１０を含むデータ処理システム（図示せず）のいくつかまたは全てのコンポーネントから電力を除去し、揮発性メモリをクリアすることにより、無許可のユーザが頼ろうとするあらゆる情報の痕跡を殆どまたは全く残さない。更に別の代替実施例では、ハードウエア・リセットが集積回路１０内部の全てまたはいくつかの回路の電力供給を停止することができ、あるいは、集積回路１０外部の回路の全てまたはいくつかの電力供給を停止することもできる。集積回路１０の設計要件に応じて、ハードウエア・リセットを実施する多種多様の方法がある。
【００１７】
本発明は、セキュリティを保証するために現在用いられている技術に対して、多くの利点を有する。選択的リセット・ビット４８はハードウエア・リセットを誘発することができ、データプロセッサ１０の現状態だけでなく他のステータス情報をクリアするので、このアクセス・フォールトに至る一連のイベントを逆に追跡するのは非常に難しい。したがって、無許可のユーザが、アクセス・フォールトに至る一連の命令を遡って調べるのは、非常に困難である。更に、この選択的リセット・ビット４８は、単一レジスタ内の単一ビットであることから、検出が困難であるため、このビットの位置を突き止めること、およびその機能性を判断することが困難となっている。代替実施例では、選択的リセットは、設計対象の特定の集積回路に要求される事項に応じて、単一ビット以上にすることが可能である。公認のユーザのみが、このビットの位置および機能を開示するあらゆる情報に対するアクセスを有する。また、上述のように、ハードウエア・リセットはシステムを再起動し、格納されていた情報を全てクリアする。
【００１８】
本発明の実施例は、公認のソフトウエア開発者には実施が非常に簡単である。また、必要なハードウエアも最少で済むので、低コスト，簡略性が得られ、経費も少なくてすむ。アクセス保護回路１１全体でも、コストおよび空間に関する経費を殆ど集積回路１０に追加することはなく、しかも、本発明の一実施例に記載したようなメモリ・アクセスだけでなく、データ・プロセッサ１０を含むデータ処理システムにおいて見られるあらゆるタイプのデータ記憶装置に対して適用可能な、効果的なセキュリティ方法を提供する。尚、データ・プロセッサ１０は、本発明の実施例によっては、データ処理システム全体でもあり得ることを注記しておく。更に、公認の開発者が一般ユーザおよび無許可のユーザに対してアクセスを制限したい場合、代替実施例を用いることにより、所定の機能を実行するいずれかの回路ブロックを保護することも可能である。代替実施例では、アクセス保護回路１１は、アクセス・フォールトの検出時にハードウエア・リセットを可能にするために必要な回路を単に含んでいればよく、または種々のその他のオプションを実施する他の回路を含んでいてもよい。例えば、他のタイプの障害が検出された場合に、ハードウエア・リセットを発生するように、追加の回路を設計することができる。
【００１９】
以上、具体的な実施例を参照しながら本発明を図示し説明したが、更に別の変更や改良も当業者には想起されよう。したがって、本発明は図示した特定形態に限定されるのではなく、本発明の精神および範囲から逸脱しない全ての変更は、特許請求の範囲に包含されることを意図するものであることは理解されよう。
【図面の簡単な説明】
【図１】本発明の一実施例によるデータ・プロセッサ１０をブロック図形態で示す図。
【図２】本発明の一実施例による、図１のアクセス保護回路１１の一部分をブロック図形態で示す図。
【図３】本発明の一実施例による集積回路内のアクセス保護を実行するプロセスを、フロー・チャート形態で示す図。
【符号の説明】
１０    データ・プロセッサ
１１    アクセス保護回路
１２    中央演算装置
１４    メモリ
１６    システム統合モジュール
１８    その他のモジュール
２０    バス
２２，２４，２８    集積回路端子
２６    外部バス
４０    レジスタ
４２    比較回路
４４    信号発生回路
４６    メモリ・イネーブル回路
４８    選択的リセット・ビット
５０    アクセス保護イネーブル・ビット
５１    アクセス属性ビット
５６    イネーブル信号
５８    リセット信号
６０    例外発生信号
６２，６４    導体
６６    アドレス
６８    アクセス属性
７０    制御信号
７２    データ
７４    導体
【図１】
0004319712.tif 000002
【図２】
0004319712.tif 000003
【図３】
0004319712.tif 000004