(57)【要約】  処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置を提供することを目的とする。  複数のＣＰＵを搭載したシステムＬＳＩ１００において、ＣＰＵ−１  １０２が保護モードへ遷移する場合、先ず、ＣＰＵ−１  １０２とＣＰＵ−２  １０３にリセットを行う。保護モード実行中には、ＣＰＵ−１  １０２のみで保護プログラムを実行し、ＣＰＵ−２  １０３にはリセット信号を投入し続けることでＣＰＵ−２  １０３の動作を停止させる。
2008078564.tif 000002
【特許請求の範囲】
【請求項１】
保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスと、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、
保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、
保護すべき処理の期間、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アクセス制御部は、
前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記少なくとも１のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第１の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第２の割込ベクタを有効にすることにより、前記少なくとも１のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を
備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも１のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、
前記情報処理装置は、さらに、
前記切替プログラムの指示に従って、前記少なくとも１のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備える
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも１のプロセッサに対してリセット信号の出力を解除する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、
前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも１のプロセッサに対して、前記第２の割込ベクタに代えて、前記第１の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替える
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、
前記情報処理装置は、さらに、
前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、
比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段と
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項９】
前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１１】
前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１２】
前記アクセス制御部は、
前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも１のプロセッサがセキュアメモリを参照するように制御する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１３】
前記制御手段は、さらに、
前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現する
ことを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記制御手段は、前記他のメモリと前記バスとの接続を切断する
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記複数のプロセッサは、それぞれ固有の識別子によって識別され、
前記制御手段は、
前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、
前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、
取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、
比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部と
を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項１７】
前記少なくとも１以上のプロセッサそれぞれは、
前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、
前記制御手段は、
前記１以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、
処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、
前記制御手段は、
アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項１９】
前記複数のプロセッサそれぞれは、
処理情報を記憶する情報記憶手段と、
前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含む
ことを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記情報処理装置は、
前記セキュアメモリとは異なり、他の処理の期間において使用される他のメモリと、
前記セキュアメモリと、前記複数のプロセッサと、前記バスと、前記スイッチ手段と、前記制御手段とを含む集積回路とから構成されている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項２１】
保護すべき処理と他の処理とを切り換えて動作する集積回路であって、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスと、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
を備えることを特徴とする集積回路。
【請求項２２】
保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられる方法であって、
前記情報処理装置は、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスとを備え、
前記方法は、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
含むことを特徴とする方法。
【請求項２３】
保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられるコンピュータ読み取り可能な記録媒体に記録されたプログラムであって、
前記情報処理装置は、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスとを備え、
前記プログラムは、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理能力が高い装置等で、保護されるべきプログラムやデータを安全に取り扱う技術に関するものである。
【背景技術】
【０００２】
近年、民生機器では、音楽データをディジタル化して記憶装置に取り込み、音楽を楽しむということが行われるようになっている。また、音楽データの取り扱いのみならずＨＤ画像など、より表現能力が高いコンテンツの取り扱いが民生機器に求められるようになっている。
上述したＨＤ画像等の表現能力が高いコンテンツを処理するには、民生機器の処理能力の向上が必要である。処理能力を向上させる手法としては、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）の分野では、マルチＣＰＵ（マルチプロセッサとも呼ばれる）が用いられている。マルチＣＰＵとは、従来１つのＣＰＵで行っていた処理を複数のＣＰＵに分担させることで、処理時間を短縮させる技術である。【０００３】
一方で、ディジタル化された音楽データや上記ＨＤ画像等は、劣化なしで複製することが可能である。そこで、著作権者の利益を保護するために、これらのデータは不正利用されない環境で取り扱われなければならない。
このような、複数のＣＰＵを搭載した機器において、保護されるべきデータの不正利用を抑制する技術が、特許文献１に開示されている。特許文献１に記載の技術（以下、第１の従来技術という。）では、以下の技術が開示されている。各ＣＰＵには、それぞれのＣＰＵに固有の鍵が割り当てられており、保護すべきプログラムやデータは、そのプログラムやデータを取り扱うＣＰＵと対応する鍵を用いて暗号化された状態で外部メモリに記憶されている。各ＣＰＵが、外部メモリに記憶されているデータやプログラムを利用しようとするとき、そのＣＰＵに対応する鍵を用いて、バス暗号回路が復号処理を施して、復号後のデータ又はプログラムをＣＰＵへ出力する。【０００４】
しかし、プログラムやデータがコンテンツの再生許可回数などの権利情報を含む場合に、外部メモリの内容を丸ごとバックアップした上で、権利を消費し、その後、バックアップしておいた権利情報を元に戻すという不正利用（以下、バックアップ・リストア攻撃と呼ぶ）を防止することができない。この場合、元に戻した権利情報もバス暗号回路で正しく復号されてしまうので、消費したはずの権利を元に戻すことができる。そのため、第１の従来技術では、保護されるべき情報を安全に扱うことはできない。【０００５】
そこで、より確実にデータやプログラムを保護するために、別の技術として、１つのＣＰＵ（シングルプロセッサ）を搭載した機器において、保護すべきデータに関する処理と、保護を必要としないデータに関する処理とを切り替えて処理を行う技術がある（以下、第２の従来技術という。）。
第２の従来技術の前記機器において、保護すべきデータに関する処理を行う実行環境をシステムＬＳＩ内部の内部メモリとＣＰＵの専用モードとで実現している。なお、以下ではこのような実行環境を保護モードと呼ぶ。第２の従来の技術では、システムＬＳＩが保護モードでないモードで動作している時（以下、通常モードと呼ぶ）には、内部メモリへのアクセスが遮断される。ここで、通常モードから保護モードへの切り替えが起こると、ＣＰＵはリセットされたのち、システムＬＳＩ内部の保護されたプログラムを起動させる。この保護されたプログラムは、システムＬＳＩ内部のＲＯＭ等に記録されており、外部からの改竄は困難なプログラムである。また、システムＬＳＩは保護モードへの切り替えが起こると、内部メモリへのアクセスが許可される。このような制御を行うことで、システムＬＳＩが通常モードで動作している間は、内部メモリへのアクセスができない。また、保護モードへ切り替わると、内部メモリへのアクセスが許可されるが、ここで内部メモリへアクセスできるプログラムは、専用モードに遷移したＣＰＵが動作させている改竄困難なプログラム（もしくは改竄困難なプログラムが呼び出した他のプログラム）であるので、内部メモリ上のデータを取り扱うプログラムを安全なものに限ることができる。【０００６】
このように、１つのＣＰＵを搭載した機器において、保護すべきデータに関する処理と保護を必要としないデータに関する処理とを切り替えることにより、セキュアメモリへの不正なアクセスを防止して、内部メモリ上のデータを安全に利用することができる。
【特許文献１】特開２００５−９９９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
第１の従来技術では、ＨＤ画像等の表現能力が高いコンテンツを処理するための処理能力は高いが、バックアップ・リストア攻撃を防止することができない。そのため、第１の従来技術では、保護されるべき情報を安全に扱うことはできない。
一方、第２の従来技術では、保護されるべき情報を安全に扱うことができるが、プロセッサが１つであるので、ＨＤ画像等の表現能力が高いコンテンツを処理するための処理能力は低い。【０００８】
つまり、第１及び第２の技術それぞれは、ＨＤ画像等の表現能力が高いコンテンツを処理するための処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができない。
そこで、本発明は、処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置、集積回路、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、保護すべき情報を記憶するためのセキュアメモリと、それぞれプログラムに従って動作する複数のプロセッサと、前記複数のプロセッサを相互に接続するバスと、保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段とを備えることを特徴とする。
【発明の効果】
【００１０】
上記の構成によると、情報処理装置は、保護すべき処理の期間において少なくとも１のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させ又は他のプロセッサに対してセキュアメモリへのアクセスを禁止している。これにより、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においては、全てのプロセッサに対して、セキュアメモリへのアクセスを禁止しているので、各プロセッサからセキュアメモリへのアクセスはできない。つまり、本発明の情報処理装置は、複数のプロセッサを備えることにより処理能力の向上を図ることができ、且つ保護すべき処理の期間においては前記他のプロセッサによって、又他の処理の期間においては全てのプロセッサによって保護されるべきプログラムやデータが利用されることがないので、保護されるべきプログラムやデータを安全に扱うことができる。【００１１】
ここで、前記制御手段は、保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、保護すべき処理の期間、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部とを備えるとしてもよい。【００１２】
この構成によると、情報処理装置は、保護すべき処理の期間において、セキュアメモリとバスとを接続し、少なくとも１のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させるので、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においてセキュアメモリとバスとの接続を切断するので、他の処理の期間において各プロセッサに対してセキュアメモリへのアクセスを確実に禁止することができる。【００１３】
ここで、前記アクセス制御部は、前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してリセット信号を出力し続けることで、前記他のプロセッサを停止することができる。これにより、リセット信号を処理する機構さえ備えているプロセッサであれば従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。【００１４】
ここで、前記情報処理装置は、さらに、前記少なくとも１のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第１の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第２の割込ベクタを有効にすることにより、前記少なくとも１のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。【００１５】
この構成によると、情報処理装置の切替手段は、前記少なくとも１のプロセッサに対して、参照する割込ベクタとして、通常モード割込ベクタの代わりに保護モード割込ベクタを有効とするので、前記少なくとも１のプロセッサは確実にセキュアメモリ内を参照することができる。
ここで、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも１のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、前記情報処理装置は、さらに、前記切替プログラムの指示に従って、前記少なくとも１のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。【００１６】
この構成によると、情報処理装置は、切替プログラムを実行することにより、前記少なくとも１のプロセッサに対して保護すべき処理の期間において確実にセキュアメモリ内を参照するように参照先を切り替えることができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも１のプロセッサに対してリセット信号の出力を解除するとしてもよい。【００１７】
この構成によると、情報処理装置は、他の処理から保護すべき処理へと切り替える際に、複数のプロセッサのレジスタ内容を退避した後に、前記少なくとも１のプロセッサの参照先をセキュアメモリ内へと切り替えるので、処理が切り替えられる直前のレジスタ内容を保証することができる。
ここで、前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも１のプロセッサに対して、前記第２の割込ベクタに代えて、前記第１の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替えるとしてもよい。【００１８】
この構成によると、情報処理装置は、保護すべき処理から他の処理へと復帰する際に、前記少なくとも１のプロセッサの参照先を前記他のメモリへと切り替えるので、セキュアメモリへの参照を防止することができ、さらには、退避していたレジスタの内容を復帰させるので、レジスタの内容を保護すべき処理への切替前の状態へと確実に復元することができる。【００１９】
ここで、前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、前記情報処理装置は、さらに、前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段とを備えるとしてもよい。【００２０】
この構成によると、情報処理装置は、他の処理の期間中において実行中のプログラムであるが重要なプログラムが実行されている場合に、当該プログラムの優先度よりも低い保護モード用のプログラムの処理に占有されることなく、実行中の重要なプログラムの処理を優先して行うことができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。【００２１】
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してクロック信号を停止するように制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。【００２２】
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して電源供給を遮断するよう制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。【００２３】
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して、参照するアドレスとして、何も処理しない命令が記述されたアドレスを参照するよう制御するので、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも１のプロセッサがセキュアメモリを参照するように制御するとしてもよい。【００２４】
この構成によると、情報処理装置は、前記少なくとも１のプロセッサに対して参照先をセキュアメモリへと切り替えることができる。
ここで、前記制御手段は、さらに、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止するとしてもよい。【００２５】
この構成によると、情報処理装置は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された１以上のプロセッサがアクセスできる範囲を当該セキュアメモリに限定することができる。したがって、セキュアメモリとは異なる他のメモリに不正なプログラムが存在したとしても、保護すべき処理を行っている１以上のプロセッサにより実行されることはないので、不正なプログラムによるセキュアメモリへの不正なアクセスを防止することができる。【００２６】
ここで、前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサと前記他のメモリとの接続を切断するので、前記１以上のプロセッサがアクセスできる範囲をセキュアメモリに確実に限定することできる。【００２７】
ここで、前記制御手段は、前記他のメモリと前記バスとの接続を切断するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、バスと前記他のメモリとの接続を切断するので、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサに限らず、前記他のプロセッサに対しても前記他のメモリへのアクセスを防止することができる。【００２８】
ここで、前記複数のプロセッサは、それぞれ固有の識別子によって識別され、前記制御手段は、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部とを含むとしてもよい。【００２９】
この構成によると、情報処理装置の制御手段は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された１以上のプロセッサの識別子を記憶しているので、前記セキュアメモリへのアクセスしようとするプロセッサが保護すべき処理を行っているプロセッサであるか否かを判断することができ、前記セキュアメモリへのアクセスが禁止されたプロセッサからのアクセスを防ぐことができる。【００３０】
ここで、前記少なくとも１以上のプロセッサそれぞれは、前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、前記制御手段は、前記１以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去するとしてもよい。【００３１】
この構成によると、情報処理装置は、保護すべき処理から他の処理へ切り替わる場合に、記憶している前記セキュアメモリへのアクセスが許可された１以上のプロセッサそれぞれに対応する識別子を識別子記憶部から消去するので、他の処理の期間において、前記１以上のプロセッサからのセキュアメモリへのアクセスを確実に禁止することができる。
ここで、前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、前記制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否するとしてもよい。【００３２】
この構成によると、情報処理装置の制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、要求元のプロセッサに対してセキュアメモリへのアクセスを許可するので、保護すべき処理の実行していないプロセッサからの不正なアクセスを防ぐことができる。
ここで、前記複数のプロセッサそれぞれは、処理情報を記憶する情報記憶手段と、前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含むとしてもよい。【００３３】
この構成によると、情報処理装置は、切替手段により参照先の切替を確実に行うとともに、情報記憶手段の内容を保護すべき処理の実行中であることを示す処理情報に変更することができる。
【図面の簡単な説明】
【００３４】
【図１】実施の形態１の組み込み装置１１７のハードウェア構成を示すブロック図である。
【図２】切替機構１０５の詳細を示すブロック図である。
【図３】各ＣＰＵへ出力されるリセット信号と時間の経過の関係を示す図である。
【図４】実施の形態１の組み込み装置１１７の動作を示すフローチャートである。
【図５】保護モードへの遷移動作を示すフローチャートである。図４のステップＳ１０５の詳細を示す。
【図６】通常モードへの遷移動作を示すフローチャートである。図４のステップＳ１０７の詳細を示す。
【図７】実施の形態２の組み込み装置１９７のハードウェア構成を示すブロック図である。
【図８】実施の形態３の組み込み装置２１７のハードウェア構成を示すブロック図である。
【図９】実施の形態４の組み込み装置２３７のハードウェア構成を示すブロック図である。
【符号の説明】
【００３５】
１００    システムＬＳＩ
１０１    外部メモリ
１０２    ＣＰＵ−１
１０３    ＣＰＵ−２
１０４    内部メモリ
１０５    切替機構
１０６    アクセス制限回路
１０７    内部バス
１１０    バンク切替部
１１７    組み込み装置
１２１    切替レジスタ
１２２    信号出力部
１２３    通常モード割込ベクタ
１２４    保護モード割込ベクタ
１２５    ＣＰＵレジスタ退避／復帰部
【発明を実施するための最良の形態】
【００３６】
１．  実施の形態１
以下に、本発明の実施の形態１について、図面を参照しながら説明を行う。
１．１  概要
本実施の形態に関わる組み込み装置１１７は、図１に示すように、システムＬＳＩ１００と外部メモリ１０１とを搭載しており、システムＬＳＩ１００は、複数のＣＰＵ（ここでは、ＣＰＵ−１  １０２とＣＰＵ−２  １０３）と、耐タンパ性を有する内部メモリ１０４と、切替機構１０５と、アクセス制限回路１０６とを含んでいる。【００３７】
なお、以下の説明では、組み込み装置１１７は、一例として、保護すべきデータである音楽データ等の録音、再生を実行する携帯可能な民生機器であるものとして説明を行う。
組み込み装置１１７は、保護すべきデータ（例えば、音楽コンテンツの再生やコピーに関する権利情報、復号鍵データなどが該当する。以下、保護データと呼ぶ）に関する処理を、システムＬＳＩ１００上の内部メモリ１０４上を用いて実行する装置である。この際に、保護データを処理するためのＣＰＵは、実行環境がシステムＬＳＩ内部の内部メモリとＣＰＵの専用モードとから実現されるモード（以下、保護モードと呼ぶ。また、これに対して、保護モードでないモードを通常モードと呼ぶ。）に遷移して必要な処理を実行し、保護モードに遷移したＣＰＵ以外のＣＰＵを停止させることにより、内部メモリ１０４に対して通常モードのＣＰＵがアクセスすることを禁止する。【００３８】
なお、システムＬＳＩ１００内の各ＣＰＵは、起動直後及び初期化直後は通常モードで動作するものとする。また、組み込み装置１１７が保護データを処理する場合には、説明の便宜上、本実施の形態では、ＣＰＵ−１  １０２が保護モードに遷移して、保護されるべき処理を実行し、ＣＰＵ−１  １０２が保護モードで動作している間、ＣＰＵ−２  １０３は停止しているとするように設定されているものとする。【００３９】
以下、組み込み装置１１７の概要を説明するため、各構成要素の概略を説明する。より詳細な説明については、後ほどそれぞれの構成要素についての説明で行う。
システムＬＳＩ１００は、図示していない外部フラッシュメモリ等から読み込まれた音楽データの再生を行う。音楽データの再生手順は、アプリケーション１１４ａ及び１１４ｂに記述されているとする。ここで、本実施の形態では、外部フラッシュメモリ内の音楽データには暗号化が施されているものとし、アプリケーション１１４ａ及１１４ｂは、切替プログラム１１５を介して、保護プログラム１１１へ秘匿すべき処理（保護すべき処理）を依頼する。ここで、秘匿すべき処理とは、例えば、暗号化音楽データの復号、復号鍵の生成、再生を許可されている期限や回数の確認などである。アプリケーション１１４の依頼により、保護プログラム１１１は、システムＬＳＩ１００に配置され、外部からのアクセスが困難な内部メモリ１０４を用いて前述の秘匿すべき処理を行う。この処理は、保護モードに遷移したＣＰＵ−１が、保護プログラム１１１を実行することで実現され、その間、ＣＰＵ−２は、停止している。そのため、当該組み込み装置１１７は、音楽データの復号および再生に関連する処理を安全に、実行することができる。【００４０】
外部メモリ１０１は、システムＬＳＩ１００の外部に設けられたメモリであり、セキュリティ面から見て重要度の低いプログラム等の実行に用いる。なお、本実施の形態では、この外部メモリは、大きな容量を持つものの、特に不正アクセスを防止する機構は設けられていないメモリであると想定しているが、何らかの機構により不正アクセスを防止するように構成して良いことは言うまでもない。【００４１】
１．２  構成
以下、組み込み装置１１７が備える各構成要素の詳細について説明を行っていく。
なお、通常、組み込み装置１１７は、さらに、図１に図示されていないユーザからの入出力を受け付ける入出力部や、着脱可能な外部メモリへのインタフェース、音声の出力機構などを備えているが、これらは本発明の本質ではないので説明を省略する。【００４２】
＜システムＬＳＩ１００の説明＞
システムＬＳＩ１００が備えるＣＰＵ−１  １０２とＣＰＵ−２  １０３と、切替機構１０５と、アクセス制限回路１０６とは、内部バス１０７を介して互いに接続されている。さらに、内部メモリ１０４とアクセス制限回路１０６とが専用線を介して接続されている。【００４３】
本実施の形態では、内部メモリ１０４とアクセス制限回路１０６を専用線を介して接続しているので、各ＣＰＵは、アクセス制限回路１０６を介さずに内部バス１０７から内部メモリ１０４へアクセスできない構造になっている。
従って、アクセス制限回路１０６によってアクセスが認められないＣＰＵ等による内部メモリ１０４のデータの盗み取りを防ぐ事が出来る。【００４４】
（１）ＣＰＵ−１  １０２及びＣＰＵ−２  １０３
ＣＰＵ−１  １０２とＣＰＵ−２  １０３は、外部メモリ１０１または内部メモリ１０４に格納されたプログラム等に含まれる命令コードを解読し実行することにより、システムＬＳＩ１００全体の動作、および、組み込み装置１１７全体の動作を制御する。なお、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とは、後述するリセット信号を受信している間は、何も動作を行わない。また、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とは、リセット信号の受信後に、後述する割込ベクタ中のリセット割込を参照することで、システムＬＳＩ１００および組み込み装置１１７に対する制御を再開する。リセット割込とは、リセット信号が解除された直後に実行されるハンドラ（プログラム）の記憶されているメモリ領域の先頭アドレスである。【００４５】
（２）内部メモリ１０４
内部メモリ１０４は、ＲＡＭ、ＲＯＭなどから構成され、図１に示すように、保護プログラム１１１や保護データ１１２を記憶する。
内部メモリ１０４内の保護プログラム１１１は、保護モードにおいて、ＣＰＵ−１  １０２により実行されるプログラム群である。具体的には、保護モード用のオペレーティングシステム、保護モードにおいて、保護データ１１２を取り扱うアプリケーションプログラムなどが該当する。この保護プログラム１１１を構成するプログラムは、単独で、または必要に応じて他のプログラムと連携し、保護されるべき処理（例えば、暗号化された音楽データの復号、復号鍵の生成、音楽データに付随する権利情報のチェック）を行う。これらの処理が終了すると、保護プログラム１１１は、切替機構１０５内の切替レジスタ１２１（後述する）に通常モードを意味する値「０」を書き込む。【００４６】
保護データ１１２は、不正なアクセスから保護されるべきデータであり、例えば、保護プログラム１１１により復号された音楽データや、音楽データを再生することができる回数などの権利情報、音楽データの復号に用いる復号鍵などである。
なお、図１では説明を簡単にするため、保護プログラム１１１と保護データ１１２とが内部メモリ１０４上に格納された後の状態を示しているが、これらのプログラム及びデータは、システムＬＳＩ１００の起動直後に内部メモリ１０４へ格納されるとしても良いし、必要に応じて後から格納されるとしても良い。この場合、外部からの改竄を防止するため、これらのデータは、システムＬＳＩ１００の内部の図示しない耐タンパ性を有するＲＯＭや、何らかのセキュリティ機構を備えた記録領域に記録されており、システムＬＳＩ１００の起動時や保護プログラム１１１の実行開始時に内部メモリ１０４に格納される。【００４７】
（３）切替機構１０５
図１に示すように、切替機構１０５は、信号線１０８、１０９を介して、それぞれ、ＣＰＵ−１  １０２、ＣＰＵ−２  １０３と接続されている。また、信号線１１８を介して、アクセス制限回路１０６とも接続されている。
図２は、切替機構１０５の詳細な構成を示すブロック図である。図２に示すように、切替機構１０５は、切替レジスタ１２１、信号出力部１２２、ＣＰＵレジスタ退避／復帰部１２５及びバンク切替部１１０から構成されており、２つのＣＰＵの動作モードを切り替える構成を備える。【００４８】
（３−１）切替レジスタ１２１
切替レジスタ１２１は、数ビット長のデータを記憶することができるレジスタであって、記憶しているデータは、ＣＰＵ−１  １０２の状態を示す。例えば、切替レジスタ１２１に記憶されているデータ「０」は、通常モードを示し、データ「１」は、保護モードを示す。【００４９】
（３−２）ＣＰＵレジスタ退避／復帰部１２５
ＣＰＵレジスタ退避／復帰部１２５は、切替プログラム１１５の指示に従ってＣＰＵ−１  １０２及びＣＰＵ−２  １０３のレジスタ内容や処理途中のデータを外部メモリ１０１へ退避し、また、退避したレジスタ内容などを各ＣＰＵに復帰する。
また、ＣＰＵレジスタ退避／復帰部１２５は、予め、復帰アドレスを記憶している。復帰アドレスは、外部メモリ１０１内において、切替プログラム１１５が記憶されている領域内の所定の位置を示す。切替プログラム１１５内において、復帰アドレスの指す位置以降の部分には、退避したレジスタ内容などを各ＣＰＵに復帰させる手順、保護プログラム１１１による処理結果をアプリケーション１１４へ通知する手順が含まれる。【００５０】
なお、ＣＰＵレジスタ退避／復帰部１２５は、予め、復帰アドレスを記憶しているとしたが、各ＣＰＵのレジスタ内容の退避指示と共に、切替プログラム１１５から通知されるとしてもよい。
また、ＣＰＵ−１  １０２が保護モードから通常モードに遷移する際、ＣＰＵレジスタ退避／復帰部１２５は、信号出力部１２２の指示により、内部バス１０７を介して、ＣＰＵ−１  １０２のプログラムカウンタへ、前述の復帰アドレスを書き込む。【００５１】
また、レジスタ退避／復帰部１２５は、切替プログラム１１５の指示により、各ＣＰＵに退避していたレジスタ内容などを復帰する。
（３−３）信号出力部１２２
信号出力部１２２は、切替レジスタ１２１の値を常時監視している。
切替レジスタ１２１に「１」が書き込まれると、信号線１０８及び１０９を介して、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３へリセット信号を出力する。これにより、２つのＣＰＵのレジスタ値などが初期化される。【００５２】
所定時間経過後、信号出力部１２２は、ＣＰＵ−１  １０２へのリセット信号を解除し、ＣＰＵ−２  １０３へはリセット信号を出力し続ける。
また、信号出力部１２２は、アクセス制限回路１０６へアクセス許可信号を出力する。
また、切替レジスタ１２１に「０」が書き込まれると、信号出力部１２２は、ＣＰＵレジスタ退避／復帰部１２５へ、復帰アドレスの書き込みを指示する。【００５３】
次に、信号出力部１２２は、アクセス制限回路１０６へ、アクセス禁止信号を出力する。次に、ＣＰＵ−２  ２０３へのリセット信号を解除する。
図３は、時間の経過と各ＣＰＵへのリセット信号の出力の関係とを示している。以下、図３を用いて、時間の経過と、信号出力部１２２によるリセット信号出力及び停止の動作について説明する。【００５４】
時刻ｔ１において、切替レジスタ１２１に「１」が書き込まれると、信号出力部１２２は、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３の両方にリセット信号を出力を開始する。
時刻ｔ２において、信号出力部１２２はアクセス許可信号をアクセス制限回路１０６へ出力するとともに、ＣＰＵ−１  １０２へのリセット信号の出力を解除するが、ＣＰＵ−２  １０３へのリセット信号の出力は継続する。【００５５】
時刻ｔ３において、切替レジスタ１２１に「０」が書き込まれると、信号出力部１２２は、アクセス制限回路１０６へ、アクセス禁止信号を出力した後、時刻ｔ４に、ＣＰＵ−２  １０３へのリセット信号の出力を停止する。
（３−４）バンク切替部１１０
図２に示すようにバンク切替部１１０は、２種類の割込ベクタを保持している。【００５６】
これらは、組み込み装置１１７の製造時に記録されたものであって、販売後に改竄することはできない構造になっている。
通常モード割込ベクタ１２３は、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを含む。ここで、通常モード割込ベクタ１２３に含まれるアドレスは、何れも外部メモリ１０１及び組み込み装置１１７の保持するメモリ（図示されていないものも含む）の何れかの位置を示す。【００５７】
保護モード割込ベクタ１２４も同様に、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを記憶している。保護モード割込ベクタに含まれるアドレスは、何れも、内部メモリ１０４内の何れかの位置を示す。
特に、保護モード割込ベクタ１２４に含まれるリセット割込は、内部メモリ１０４内において、保護プログラム１１１の記憶されている領域の先頭を示すアドレスである。【００５８】
組み込み装置１１７の起動時において、バンク切替部１１０は通常モード割込ベクタ１２３を、有効な割り込みベクタとして指定する。
信号出力部１２２からアクセス許可信号が出力されると、バンク切替部１１０は、通常モード割込ベクタ１２３に代えて、保護モード割込ベクタ１２４を、有効な割込ベクタに指定する。【００５９】
また、信号出力部１２２からアクセス禁止信号が出力されると、バンク切替部１１０は、通常モード割込ベクタ１２３を有効な割込ベクタに指定する。
有効な割込ベクタの指定の方法は任意であるが、例えば、２つの割込ベクタのうち、有効な一方の先頭にフラグを立てる方法などが考えられる。
従って、割り込み発生時には、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３は、２つの割込ベクタのうち、有効な割込ベクタを参照して割込処理を行う。【００６０】
（４）アクセス制限回路１０６
アクセス制限回路１０６は、信号線１１８を介して、切替機構１０５内の信号出力部１２２と接続されており、アクセス許可信号及びアクセス禁止信号を受け取る。
アクセス制限回路１０６は、アクセス許可信号を受け取ると、内部バス１０７と内部メモリ１０４とを接続し、アクセス禁止信号を受け取ると、内部バス１０７と内部メモリ１０４とを遮断する。【００６１】
なお、組み込み装置１１７の起動時には、アクセス制限回路１０６は、内部バス１０７と内部メモリ１０４とを遮断している。
（５）システムＬＳＩ１００の構成のまとめ
このようにすることで、保護を必要としない処理において、通常モードである２つのＣＰＵが内部メモリ１０４内のデータを参照することはない。また、保護を必要とする処理において、保護モードであるＣＰＵ−１  １０２は、内部メモリ１０４内のデータ、プログラムを参照して処理を行い、システムＬＳＩ１００内で処理が完結するため、システムＬＳＩ１００の外に不正なプログラムが存在したとしても、このプログラムが実行されることはない。【００６２】
また、切替機構１０５は、ＣＰＵ−１  １０２が保護モードで動作している間は、ＣＰＵ−２  １０３に対してリセット信号を送り続けることでＣＰＵ−２  １０３の動作を停止させる。そのため、ＣＰＵ−２  １０３は、システムＬＳＩ１００が保護モードで動作している間は何の処理も行えなくなるので、外部メモリに書き込まれた悪意あるプログラムを読み込むこともなく、内部メモリ１０４のデータを奪うような動作も行えない。【００６３】
さらに、切替機構１０５は、ＣＰＵ−１  １０２を保護モードから通常モードに遷移させる場合に、ＣＰＵ−１  １０２のプログラムカウンタに前述の復帰アドレスを書き込み、ＣＰＵ−２  １０３のリセットを解除し、アクセス制限回路１０６にアクセス禁止を通知する。
さらに、バンク切替部１１０は、ＣＰＵの動作モードが切り替わるときに、割込ベクタを各モード用のものに変更する。そのため、通常モードでは、割込発生時に、各ＣＰＵが、内部メモリ１０４を参照することはないし、保護モードでは、ＣＰＵ−１  １０２は、内部メモリ１０４を参照し、外部メモリ１０１等を参照することはない。【００６４】
従って、外部メモリ１０１などに不正なプログラムが存在しても、システムＬＳＩ１００が保護モードで動作している間は、実行されることはないので、内部メモリ１０４に記憶されているデータ及びプログラムを、不正なプログラムの実行によって改竄したり、抜き取ったりすることは困難である。
＜システムＬＳＩ１００以外の部分についての説明＞
続いて、組み込み装置１１７の他の部分について説明を行う。【００６５】
外部メモリ１０１は、ＲＡＭ、ＲＯＭを含んで構成され、一例として、図１に示すように、アプリケーション１１４ａと、アプリケーション１１４ｂと、切替プログラム１１５と、オペレーティングシステム１１６とが格納されている。なお、これらのプログラムについてもシステムＬＳＩ１００の起動時から外部メモリ１０１に格納されていてもよいし、ＲＯＭやＨＤＤ等の他の記録媒体から必要に応じて読み出されて外部メモリ１０１に格納されるものとしてもよい。【００６６】
また、図示されていないが、外部メモリ１０１内には、その他のプログラムや、各プログラムの用いるデータなどが記憶されている。
（１）アプリケーション１１４ａ及び１１４ｂ
アプリケーション１１４ａ及び１１４ｂは、いずれも組み込み装置１１７全体の制御を行うためのプログラムである。本実施の形態では、具体的には、図示されていないフラッシュメモリなどから音楽データを取得し、再生、複製などを実行する手順を含む。２つのアプリケーションは、それぞれ、データ形式の異なる音楽データを再生する手順を含んでいる。以後、これらを特に区別する必要がない場合、単にアプリケーション１１４と記載する。【００６７】
また、アプリケーション１１４は、切替プログラム１１５を介して、保護プログラム１１１へ保護されるべき処理を依頼する手順が含まれる。
アプリケーション１１４は、随時ＣＰＵ−１  １０２またはＣＰＵ−２  １０３により参照されて実行される。このアプリケーション１１４は、セキュリティ面から見た重要度が比較的低く、また、組み込み装置１１７全体の制御を行う関係上サイズが大きいため、大きさに制限がある内部メモリ１０４ではなく、外部メモリ１０１に格納されている。【００６８】
（２）切替プログラム１１５
切替プログラム１１５は、切替機構１０５を制御して、システムＬＳＩ１００内のＣＰＵのモード遷移を開始させる手順を含むプログラムである。
具体的には、アプリケーション１１４から、呼び出しを受けると、切替機構１０５内の切替レジスタ１２１に「１」を書き込手順を含む。【００６９】
また、前述の通り、切替プログラム１１５のうち、復帰アドレス以降の領域に記載されている部分には、退避している各ＣＰＵのレジスタ内容などを、それぞれのＣＰＵに復帰させる手順、保護プログラム１１１による処理結果をアプリケーション１１４へ通知する手順を含む。
なお、切替プログラム１１５は、他のプログラムから不定期に発生する要求を受け付ける必要がある。従って、本実施の形態における切替プログラム１１５は、システムＬＳＩ１００上の全てのＣＰＵが通常モードで動作している間はＣＰＵ−１  １０２にてバックグラウンドで動作し続けているものとする。【００７０】
（３）オペレーティングシステム１１６
オペレーティングシステム１１６は、アプリケーション１１４などに対して動作環境を提供するプログラムである。なお、オペレーティングシステム１１６は、基本ソフト、オペレーションシステムやＯＳと呼ばれる場合もある。
１．３  動作
（１）組み込み装置１１７の動作
ここでは、組み込み装置１１７の動作について、図４にて示すフローチャートを用いて説明する。【００７１】
利用者の操作により、組み込み装置１１７の電源がＯＮになると、組み込み装置１１７の起動が行われる。
組み込み装置１１７が起動するとシステムＬＳＩ１００に電源が投入される（ステップＳ１００）。
システムＬＳＩ１００が起動すると、オペレーティングシステム１１６が起動される（ステップＳ１０１）。オペレーティングシステム１１６は、アプリケーション１１４や切替プログラム１１５を起動させる。本実施の形態において、切替プログラム１１５は、アプリケーション１１４から呼び出しを受けるまで、ＣＰＵ−１  １０２で、待機する（ステップＳ１０２）。【００７２】
ここで、ユーザが図示していないボタン等を用いた入力などを行うことで、組み込み装置１１７に音楽の再生が指示されると、アプリケーション１１４は、音楽の再生に関連する保護すべき処理を行うために、切替プログラム１１５に保護プログラム１１１の呼び出しを依頼する（ステップＳ１０３）。
切替プログラム１１５は、アプリケーション１１４から依頼を受け付けると、切替機構１０５へ各ＣＰＵのレジスタ内容などの退避を指示する。【００７３】
この指示を受けると切替機構１０５内のＣＰＵレジスタ退避／復帰部１２５が、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３内のレジスタ内容や、処理途中のデータを、外部メモリ１０１へ退避する（ステップＳ１０４）。
次に、切替プログラム１１５の制御により、切替機構１０５は、ＣＰＵ−１  １０２を保護モードへ遷移させ、ＣＰＵ−２  １０３を停止させる（ステップＳ１０５）。保護モードへの遷移の詳細に関しては、後述する。【００７４】
続いて、保護モードに遷移したＣＰＵ−１  １０２が保護プログラム１１１を実行する（ステップＳ１０６）。以降、保護プログラム１１１は、必要に応じて他のプログラムと連携し、例えば、音楽データの再生回数のチェックを行い、再生可能ならば暗号化された音楽データを復号化するなどの処理を行う。このチェック処理や復号化処理については、本発明の本質ではないので、省略する。なお、この間、ＣＰＵ−２  １０３は、切替機構１０５からリセット信号が入力し続けられているため何の動作も行わない。【００７５】
依頼された処理が終了すると、保護プログラム１１１は、切替機構１０５内の切替レジスタに「０」を書き込み、これを契機として、ＣＰＵ−１  １０２は、通常モードに遷移する（ステップＳ１０７）。保護モードから通常モードへ遷移させる処理の詳細に関しては、後述する。
通常モードに復帰したＣＰＵ−１  １０２は、切替プログラム１１５の実行を再開し、切替プログラム１１５は、切替機構１０５へ、２つのＣＰＵのレジスタ内容の復帰を指示する。【００７６】
この指示を受け、切替機構１０５内のＣＰＵレジスタ退避／復帰部１２５は、外部メモリ１０１に退避している各ＣＰＵのレジスタ内容などを、それぞれ、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３に復帰する（ステップＳ１０８）。
次に、切替プログラム１１５は、保護プログラム１１１による処理結果を、アプリケーション１１４に通知する（ステップＳ１０９）。【００７７】
アプリケーション１１４は、通知された処理結果、利用者の操作に応じて、音楽の再生などの処理を続行する（ステップＳ１１０）。
（２）保護モードへの遷移動作
図４のステップＳ１０５にて行われる保護モードの遷移動作では、アプリケーション１１４から保護されるべき処理が要求されると、切替プログラム１１５は、切替機構１０５を制御して、ＣＰＵ−１  １０２を通常モードから保護モードに遷移させ、ＣＰＵ−２  １０３を停止させる。【００７８】
以下、保護モードへの遷移に係るシステムＬＳＩ１００の詳細な動作について、図５にて示すフローチャートを用いて説明する。
切替プログラム１１５は、切替機構１０５内の切替レジスタ１２１に「１」を書き込む（ステップＳ１２１）。
切替レジスタ１２１に「１」が書き込まれたことを検出すると、切替機構１０５内の信号出力部１２２は、信号線１０８と信号線１０９を介して、ＣＰＵ−１  １０２とＣＰＵ−２  １０３にリセット信号を入力する（ステップＳ１２３）。【００７９】
次に、切替機構１０５内のバンク切替部１１０は、通常モード割込ベクタ１２３に代えて、保護モード割込ベクタ１２４を有効にする（ステップＳ１２４）。
割込ベクタの変更（ステップＳ１２４）が終了すると、信号出力部１２２は、ＣＰＵ−１  １０２へのリセット信号を解除する（ステップＳ１２６）。この操作によって、ＣＰＵ−１  １０２は動作することが可能となる。【００８０】
また、ＣＰＵ−１  １０２へのリセット信号の解除とともに、信号出力部１２２は、信号線１１８を介して、アクセス制限回路１０６へアクセス許可信号を出力する（ステップＳ１２７）。
アクセス許可信号を受け取ると、アクセス制限回路１０６は、内部バス１０７と内部メモリ１０４とを接続する（ステップＳ１２８）。【００８１】
ＣＰＵ−１  １０２へのリセット信号が解除されたことにより、ＣＰＵ−１  １０２は、保護モード割込ベクタ１２４に含まれる、リセット割込を参照し、内部メモリ１０４に格納された保護プログラム１１１の実行を開始する（ステップＳ１２９）。
（３）通常モードへの遷移動作
図４のステップＳ１０７にて行われる通常モードへの遷移動作は、保護プログラム１１１による保護すべき処理が終了した場合や、ユーザからのキー入力などの保護プログラム１１１の実行よりも優先すべき通常モードの処理を行う場合など、保護プログラム１１１の処理を中断もしくは終了する必要が生じると、開始される。【００８２】
以下、通常モードへの遷移に係るシステムＬＳＩ１００の動作について、図６にて示すフローチャートを用いて説明する。
ＣＰＵ−１  １０２により実行されている保護プログラム１１１は、切替機構１０５内の切替レジスタ１２１に「０」を書き込む（ステップＳ１３１）。
切替レジスタ１２１に「０」が書き込まれたことを検出すると、切替機構１０５内の信号出力部１２２は、ＣＰＵレジスタ退避／復帰部１２５へ、復帰アドレスの設定を指示し、ＣＰＵレジスタ退避／復帰部１２５は、記憶している復帰アドレスを、ＣＰＵ−１  １０２のプログラムカウンタに書き込む（ステップＳ１３２）。【００８３】
次に、信号出力部１２２は、アクセス制限回路１０６へアクセス禁止信号を出力する（ステップＳ１３３）。
アクセス禁止信号を受けて、アクセス制限回路１０６は、内部バス１０７と内部メモリ１０４とを遮断する（ステップＳ１３４）。
また、切替機構１０５内のバンク切替部１１０は、保護モード割込ベクタ１２４に代えて通常モード割込ベクタ１２３を有効にする（ステップＳ１３６）。この操作によって、割込ベクタは、保護モード遷移前と同様の設定に戻る。【００８４】
割込ベクタの変更（ステップＳ１３６）がなされた後に、信号出力部１２２は、ＣＰＵ−２  １０３へのリセット信号を解除する（ステップＳ１３７）。この操作によって、保護モード中には停止していたＣＰＵ−２  １０３が動作を再開する。
なお、音楽再生中にユーザからの入力があった場合など、保護モードで動作中の保護プログラム１１１の動作を中断させる形で復帰処理が行われる場合には、遅くともステップＳ１３２の処理が行われるまでに、ＣＰＵレジスタ退避／復帰部１２５は、ＣＰＵ−１  １０２のレジスタ内容や処理途中のデータなどを、内部メモリ１０４に格納する。その後、保護プログラム１１１の動作を再開する場合に、内部メモリ１０４に格納してあった、レジスタ内容や処理途中のデータをＣＰＵ−１  １０２に戻すことで、保護プログラム１１１の動作を再開させることができる。【００８５】
１．４  まとめ
以上で述べたように、実施の形態１における組み込み装置１１７では、システムＬＳＩ１００内のＣＰＵ−１  １０２が保護モードに切り替わると、保護モードで動作するＣＰＵ−１  １０２のみを動作させ、他のＣＰＵであるＣＰＵ−２  １０３については、リセット信号を入力し続けることによって動作を停止させる。これにより、保護モードで動作しているＣＰＵ−１  １０２が内部メモリ１０４を使って、保護されるべき処理を行っている間には、ＣＰＵ−２  １０３はいかなる処理も実行できなくなるので、内部メモリ１０４内の保護プログラム１１１及び保護データ１１２を奪われる危険性を低減できる。すなわち、内部メモリ１０４内のデータなどの不正な取得や書き込みを目的とした不正なプログラムを外部メモリ１０１に書き込み、ＣＰＵ−２  １０３に実行させようとしても、ＣＰＵ−２  １０３は何の動作も行えない状態にあるので、マルチＣＰＵ環境下でも安全に保護プログラム１１１及び保護データ１１２の処理を行うことができる。【００８６】
また、ＣＰＵ−２  １０３を停止させる方法として、リセット信号を送り続ける手法を取っているので、リセット信号を処理する機構さえ備えているＣＰＵであれば従来のＣＰＵに手を加えることなくシステムを構築することができ、比較的安価にシステムを実現することができる。
なお、上記の実施の形態では、ＣＰＵ−１  １０２のみが保護モードで動作するとしたがＣＰＵ−２  １０３のみが動作するとしても構わないことは言うまでもない。すなわち、保護モードに切り替わっているＣＰＵのみを動作可能とすればよいのであって、どちらのＣＰＵを動作させてどちらのＣＰＵを停止させるかは、その時々の組み込み装置１１７の処理状況に応じて随時変更してもよい。組み込み装置１１７の状況の具体例としては、通常モードから保護モードへの切り替えが開始した時点でどちらのＣＰＵに大きな負荷がかかっているかなどである。また、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とで異なるアーキテクチャや処理能力を持つ場合には、保護すべき処理を行う場合にどちらのＣＰＵの方が適しているかを判断して、より適していると判断された方のＣＰＵのみを動作させるとしても良い。また、このような場合、実行が中断された保護プログラム１１１を再開するＣＰＵも、ＣＰＵ−１  １０２である必要はなくなる。すなわち、ＣＰＵ−２  １０３がＣＰＵ−１  １０２と同等の機能を持ち、保護プログラム１１１をＣＰＵ−２  １０３でも実行することができる場合には、再開時にＣＰＵ−２  １０３に対して退避していたＣＰＵ−１  １０２の状態を復帰させ、ＣＰＵ−２  １０３が保護プログラム１１１の実行を再開するとしてもよい。【００８７】
また、通常モードから保護モードへ遷移したＣＰＵと、保護モードが終了した時に通常モードの処理を再開するＣＰＵとは同一でなくてもよい。この変形例は、ＣＰＵレジスタ退避／復帰部１２５によって、外部メモリ１０１に退避したデータやレジスタの内容を、退避対象のＣＰＵとは異なるＣＰＵに復帰させることで実現できる。
もちろん、一方のＣＰＵを保護モードにおいて動作するＣＰＵとして予め定めておき、他方を保護モードでの動作を許可しないＣＰＵであると予め定めておくとしておいてもよい。【００８８】
２．  実施の形態２
以下に、本発明の実施の形態２について図面を用いて説明する。なお、実施の形態１と同様の構成については説明を省略し、実施の形態２の特徴部分を中心に述べる。
２．１  構成
図７は、本発明の実施の形態２に関わる組み込み装置１９７のハードウェア構成を示すブロック図である。なお、実施の形態１と同様の構成要素については、同じ符号を付している。【００８９】
実施の形態１の組み込み装置１１７と実施の形態２の組み込み装置１９７との構成の差異は以下の通りである。
実施の形態１の組み込み装置１１７では、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とは内部バス１０７を介してアクセス制限回路に接続していたが、実施の形態２の組み込み装置１９７では、ＣＰＵ−１  １８２とＣＰＵ−２  １８３が、アクセス制限回路１８６に信号線１８９及び１８８を介して、直接接続している。【００９０】
アクセス制限回路１８６は切替機構１８５からではなく、信号線１８８又は１８９を介して保護モードへ切り替わったＣＰＵからアクセス許可信号を受けて内部メモリ１０４と内部バス１０７とを接続する。
同様に、保護モードで動作しているＣＰＵによる保護プログラム１１１の実行が終了したとき、保護モードで動作しているＣＰＵからアクセス制限回路１８６へアクセス禁止信号が入力される。【００９１】
また、切替機構１８５の内部構成は、切替機構１０５と同様であるが、信号出力部とアクセス制限回路１８６は直接は接続されておらず、信号出力部は、アクセス制限回路１８６へアクセス許可／禁止信号を出力しない。
２．２  動作
また、実施の形態１と実施の形態２の動作の違いは以下の通りである。【００９２】
実施の形態１では、切替機構１０５からの制御によって、アクセス制限回路１０６が内部メモリ１０４へのアクセス許可、禁止を実現していた。
それに対して、実施の形態２では、保護モードに遷移したＣＰＵからの制御によって、アクセス制限回路１８６が内部メモリ１０４へのアクセス許可、禁止を実現する。
例えば、ＣＰＵ−１  １８２が保護モードに遷移した場合、ＣＰＵ−１  １８２は、アクセス制限回路１８６にアクセス許可信号を出力する。アクセス制限回路１８６は、アクセス許可信号を受け取ると、内部メモリ１０４と内部バス１０７とを接続する。ＣＰＵ−１  １８２が保護モードから通常モードに遷移すると、ＣＰＵ−１  １８２は、アクセス制限回路１８６にアクセス禁止信号を出力する。アクセス制限回路１８６は、アクセス禁止信号を受け取ると、内部メモリ１０４と内部バス１０７との接続を遮断する。【００９３】
また、ＣＰＵ−２  １８３が保護モードに遷移した場合には、ＣＰＵ−２  １８３は、アクセス制限回路１８６にアクセス許可信号を出力する。アクセス制限回路１８６は、アクセス許可信号を受け取ると、内部メモリ１０４と内部バス１０７とを接続する。ＣＰＵ−２  １８３が保護モードから通常モードに遷移すると、ＣＰＵ−２  １８３は、アクセス制限回路１８６にアクセス禁止信号を出力する。アクセス制限回路１８６は、アクセス禁止信号を受け取ると、内部メモリ１０４と内部バス１０７との接続を遮断する。【００９４】
上記の差異以外は、実施の形態１と実施の形態２は同一であるため、説明は省略する。
３．実施の形態３
以下に、本発明の実施の形態３について図面を用いて説明する。なお、実施の形態１又は２と同様の構成については説明を省略し、実施の形態３の特徴部分を中心に述べる。
３．１  概要
本発明の実施の形態３に関わる組み込み装置２１７は、図８にて示すように、システムＬＳＩ２００と、外部メモリ１０１とを搭載している。システムＬＳＩ２００は、プロセッサ２０１と、ＣＰＵ−２  ２０３と、アクセス制限回路２０６と、内部メモリ１０４とを含んでおり、プロセッサ２０１は、ＣＰＵ−１  ２０２と切替機構２０５とを含んでいる。【００９５】
なお、実施の形態１と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ２０１、ＣＰＵ−２  ２０３、切替機構２０５、アクセス制限回路２０６が実施の形態１とは異なる。
本実施の形態では、各ＣＰＵは自身を識別する識別子（以下、ＩＤと呼ぶ）を記憶している。【００９６】
アクセス制限回路２０６は、システムＬＳＩ２００が保護モードで動作している間、保護モードにて動作しているＣＰＵのＩＤを記憶しており、記憶しているＩＤを用いて、内部メモリ１０４へのアクセスを要求するＣＰＵが保護モードで動作しているＣＰＵであるか否かを判断し、内部メモリ１０４へのアクセスを要求するＣＰＵが保護モードで動作していると判断する場合にのみ、アクセスの要求元のＣＰＵに対してアクセスを許可する。【００９７】
なお、説明の便宜上、ここでは、ＣＰＵ−１  ２０２のみが保護モードに遷移することができるものとして説明する。
また、実施の形態１では、内部バス１０７と内部メモリ１０４との間は、保護モードによる動作中のみアクセス制限回路１０６を介して接続されていたが、本実施の形態では、内部バス１０７と内部メモリ１０４との間は、アクセス制限回路２０６を介して常時接続されているものとする。【００９８】
３．２  構成
以下、組み込み装置２１７に含まれる構成要素うち、ＣＰＵ−１  ２０２、切替機構２０５、ＣＰＵ−２  ２０３、及びアクセス制限回路２０６について説明する。
（１）ＣＰＵ−１  ２０２
ＣＰＵ−１  ２０２は、自身に固有のＩＤ「ＩＤ１」２０４を、記憶している。ＩＤ２０４は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。【００９９】
ＣＰＵ−１  ２０２は、内部メモリ１０４へアクセスしようとする際には、記憶しているＩＤ「ＩＤ１」２０４を読み出し、アクセス要求と共に読み出した「ＩＤ１」をアクセス制限回路２０６へ出力する。
（２）切替機構２０５
切替機構２０５は、切替プログラム１１５からの要求に応じて、ＣＰＵ−１  ２０２を保護モードに切り替える。【０１００】
切替機構２０５の内部構成は実施の形態１において説明した切替機構１０５とほぼ同様であるが、信号出力部は、ＣＰＵ−１  ２０２を示す「ＩＤ１」を含むアクセス許可信号及びアクセス禁止信号を、内部バス１０７を介して、アクセス制限回路２０６へ出力する。
また、実施の形態１の切替機構１０５とは異なり、ＣＰＵ−１  ２０２が通常モードから保護モードへ遷移する際、及び、保護モードで動作している間、ＣＰＵ−２  ２０３へリセット信号を出力しない。【０１０１】
また、ＣＰＵレジスタ退避／復帰部は、ＣＰＵ−１  ２０２のレジスタ内容のみを退避及び復帰し、ＣＰＵ−２  ２０３のレジスタ内容の退避及び復帰は行わない。
また、バンク切替部は、ＣＰＵごとに何れの割込ベクタを用いるかを管理する。
具体的には、バンク切替部は、ＣＰＵ−２  ２０３については、常に、通常モード割込ベクタを使用するように設定する。ＣＰＵ−１  ２０１については、保護モードに遷移する際に、保護モード割込ベクタを使用するように設定し、通常モードに遷移する際に、通常モード割込ベクタを使用するように設定する。【０１０２】
（３）ＣＰＵ−２  ２０３
ＣＰＵ−２  ２０３は、自身に固有のＩＤ「ＩＤ２」２０７を記憶している。ＩＤ２０７は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
ＣＰＵ−２  ２０３は、内部メモリ１０４へのアクセス要求を送信する際に、アクセス制限回路２０６へ、自身のＩＤ「ＩＤ２」も送信する。【０１０３】
ＣＰＵ−２  ２０３は、常に通常モードで動作しているため、切替機構２０５の保持する２つの割込ベクタのうち通常モード割込ベクタを使用する。
また、ＣＰＵ−１  ２０２が保護モードで動作中であっても、リセット信号を入力されないので、ＣＰＵ−２  ２０３は、通常モードで動作することができる。
（４）アクセス制限回路２０６
アクセス制限回路２０６は、内部にメモリ２０８を含んで構成される。【０１０４】
アクセス制限回路２０６は、切替機構２０５からＩＤを含むアクセス許可信号及びアクセス禁止信号を受け取る。
アクセス許可信号を受け取った場合、アクセス許可信号に含まれるＩＤをメモリ２０８に記憶する。なお、本実施の形態では、アクセス制限回路２０６は、メモリ２０８にＣＰＵ−１  ２０２を示す「ＩＤ１」を記憶する。【０１０５】
アクセス禁止信号を受け取った場合、アクセス制限回路２０６は、アクセス禁止信号に含まれるＩＤをメモリ２０８から削除する。
また、アクセス制限回路２０６は、ＣＰＵ−１  ２０２又はＣＰＵ−２  ２０３から当該ＣＰＵのＩＤと共にアクセス要求を受け取る。
次に、アクセス制限回路２０６は、受け取ったアクセス要求と共に送られてきたＩＤがメモリ２０８の記憶しているＩＤと一致するか否かを確認する。【０１０６】
確認の結果、ＩＤが一致した場合には、アクセス制限回路２０６は、そのアクセス要求は保護モードで動作しているＣＰＵから出力されたものであると分かるので、内部メモリ１０４へのアクセスを許可する。
ＩＤが一致しなかった場合及びメモリ２０８にいずれのＩＤも記憶されていない場合は、アクセス制限回路２０６は、受け取ったアクセス要求が保護モードで動作していないＣＰＵによるアクセス要求であるとして、アクセス要求を拒否する。【０１０７】
３．３  動作
以下に、組み込み装置２１７の動作について、実施の形態１と比較しながら説明する。
アプリケーション１１４からの呼び出されると切替プログラムは、切替機構２０５に、レジスタ内容の退避を指示する。
この指示を受けて、切替機構２０５は、ＣＰＵ−１  ２０２のレジスタ内容のみを退避する。【０１０８】
実施の形態１では、切替機構１０５からの制御によって、アクセス制限回路１０６が、内部バス１０７と内部メモリ１０４とを接続又は遮断することで、内部メモリ１０４へのアクセスを許可又は禁止を実現していた。
それに対して、実施の形態３では、ＣＰＵ−１  ２０２を保護モードへ遷移させる際に、切替機構２０５は、ＣＰＵ−１  ２０２を示すＩＤ「ＩＤ１」２０４を読み出し、読み出した「ＩＤ１」を含むアクセス許可信号を、アクセス制限回路２０６へ出力する。【０１０９】
アクセス制限回路２０６は、アクセス許可信号を切替機構２０５から受け取ると、受け取ったアクセス許可信号に含まれるＩＤ「ＩＤ１」を、メモリ２０８に記憶する。
次に、切替機構２０５は、実施の形態１とは異なり、ＣＰＵ−１  ２０２のみに所定時間リセット信号を入力し、ＣＰＵ−２  ２０３へリセット信号を出力しない。
次に切替機構２０５は、ＣＰＵ−１のリセットベクタを保護モードリセットベクタに設定する。これにより、ＣＰＵ−１  ２０２の保護モードへの状態遷移は完了する。【０１１０】
各ＣＰＵは、動作中において、内部メモリ１０４へアクセス使用とする際には、先ず、自身の保持するＩＤを読み出し、読み出したＩＤと共にアクセス要求を、内部バス１０７を介して、アクセス制限回路２０６へ通知する。
アクセス制限回路２０６は、アクセス要求と共に受け取ったＩＤと、メモリ２０８に記憶している「ＩＤ１」とを比較する。【０１１１】
アクセス制限回路２０６は、両者が一致する場合、要求元のＣＰＵに対してアクセスを許可し、一致しない場合には、要求元のＣＰＵに対してアクセスを拒否する。
より具体的には、保護モードで動作しているＣＰＵ−１  ２０２が内部メモリ１０４にアクセスを行おうとする場合、ＣＰＵ−１  ２０２は、アクセス要求と共にＣＰＵ−１  ２０２を示すＩＤ「ＩＤ１」２０４もアクセス制限回路２０６に通知される。アクセス制限回路２０６は、メモリ２０８に記憶されている「ＩＤ１」とアクセス要求と共に届いた「ＩＤ１」とを比較し、両者が一致することを確認する。これにより、アクセス要求を許可し、ＣＰＵ−１  ２０２は、内部メモリ１０４へアクセスする。【０１１２】
一方、ＣＰＵ−２  ２０３が内部メモリ１０４にアクセスを行おうとする場合、ＣＰＵ−２  ２０３は、アクセス要求と共にＣＰＵ−２  ２０３を示すＩＤ「ＩＤ２」２０７も内部バス１０７を介して、アクセス制限回路２０６に通知される。アクセス制限回路２０６は、アクセス要求と共に受け取った「ＩＤ２」とメモリ２０８の記憶している「ＩＤ１」を比較し、両者が一致しないことを確認する。これにより、アクセス要求を却下する。【０１１３】
ＣＰＵ−１  ２０２は、保護プログラム１１１を実行し、保護すべき処理を行う。保護すべき処理が終了すると、保護プログラム１１１は、切替機構２０５内の切替レジスタに「０」を書き込む。これを契機として、ＣＰＵ−１  ２０２は、保護モードから通常モードへ遷移する。
通常モードへの遷移の処理中において、切替機構２０５は、ＣＰＵ−１  ２０２のＩＤ「ＩＤ１」２０４を含むアクセス禁止信号をアクセス制限回路２０６へ出力する。【０１１４】
アクセス制限回路２０６は、アクセス禁止信号を受け取り、受け取ったアクセス禁止信号に含まれる「ＩＤ１」をメモリ２０８から削除する。
以後、アクセス制限回路２０６内のメモリには、いずれのＩＤも記憶されていないため、アクセス制限回路２０６は、何れのＣＰＵからのアクセス要求も却下する。
３．４  まとめ
実施の形態３では、実施の形態１や２と同様、保護モードに切り替わっていない（もしくは切り替わることのできない）ＣＰＵによる内部メモリ１０４へのアクセスを制限することができるので、保護プログラム１１１や保護データ１１２が不正にアクセスされる危険性を低減することができる。【０１１５】
さらに、実施の形態３では、ＣＰＵ−２  ２０３は、ＣＰＵ−１  ２０２が保護モードで動作中であっても停止しないので、ＣＰＵ−１  ２０２が保護プログラムや保護データを処理している最中であっても、通常モード用のプログラムやデータ（保護を必要としないプログラムやデータ）を処理するＣＰＵとして動作する事が可能である。これにより、システム全体の処理を高速化することができる。【０１１６】
上記の差異以外は、実施の形態１と実施の形態３は同一であるため、説明は省略する。
なお、上記の実施の形態３では、切替機構２０５は、ＩＤを含むアクセス許可信号及びアクセス禁止信号を、内部バス１０７を介して、アクセス制限回路２０６へ出力するとしたが、これに限定されない。切替機構２０５は、ＩＤを含むアクセス許可信号及びアクセス禁止信号を、信号線を介してアクセス制限回路２０６へ出力するとしてもよい。【０１１７】
また、上記の実施の形態３では、内部バス１０７と内部メモリ１０４との間は、アクセス制限回路２２７を介して常時接続されているものとしたが、これに限定されない。実施の形態１と同様に、アクセス制限回路２２７は、切替機構から受け取ったアクセス許可／禁止信号に基づいて、内部バス１０７と内部メモリ１０４との間を接続／遮断を行ってもよい。【０１１８】
また、保護モードで動作できるＣＰＵが１つしかない場合は、切替機構２０５に予めそのＣＰＵのＩＤを格納しておいてもよい。
この場合、アクセス許可信号やアクセス禁止信号を受け取る度にＩＤを格納したり削除したりするのではなく、アクセス許可信号を受け取った後、アクセス禁止信号を受け取るまでの間は、そのＩＤに対応するＣＰＵによるアクセスを許可するようにしてもよい。【０１１９】
４．  実施の形態４
以下に、本発明の実施の形態４について図面を用いて説明する。なお、実施の形態１〜３と同様の構成については説明を省略し、実施の形態４の特徴部分を中心に述べる。
４．１  概要
本発明の実施の形態４に関わる組み込み装置２３７は、図９にて示すように、システムＬＳＩ２２０と、外部メモリ１０１とを搭載している。システムＬＳＩ２２０は、プロセッサ１  ２２１と、プロセッサ２  ２２８と、アクセス制限回路２２７と、内部メモリ１０４とを含んでいる。【０１２０】
なお、実施の形態３と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ１  ２２１、プロセッサ２  ２２８及びアクセス制限回路２２７が実施の形態３とは異なる。
各プロセッサは、当該プロセッサにおける動作モードを示すモード情報を記憶しており、内部メモリ１０４へアクセス要求を行う際に、記憶しているモード情報をもアクセス制限回路２２７へ出力する。【０１２１】
アクセス制限回路２２７は、アクセス要求と共に受け取ったモード情報により、アクセスを許可するか否かを決定する。
なお、本実施の形態では、実施の形態３と同様に、内部バス１０７と内部メモリ１０４とは、アクセス制限回路２２７を介して常時接続されているものとする。
４．２構成
以下、組み込み装置２３７に含まれる構成要素のうちプロセッサ１  ２２１、プロセッサ２  ２２８及びアクセス制限回路２２７について説明する。【０１２２】
（１）プロセッサ１  ２２１及びプロセッサ２  ２２８
プロセッサ１  ２２１とプロセッサ２  ２２８の構成は同様であるのでここでは、プロセッサ１  ２２１についてのみ説明する。
図９に示すように、プロセッサ１  ２２１は、ＣＰＵ−１  ２２２と切替機構２２５とを含んで構成される。【０１２３】
（１−１）ＣＰＵ−１  ２２２
ＣＰＵ−１  ２２２は、ステータスレジスタ２２４を含む。ステータスレジスタ２２４は、ＣＰＵ−１  ２２２の現在の動作モードを示すモード情報を記憶している。具体的に、モード情報「１」は保護モードを示し、モード情報「０」は通常モードを示す。
内部メモリ１０４へアクセス使用とする場合、ＣＰＵ−１  ２２２は、ステータスレジスタ２２４の記憶しているモード情報を読み出し、内部バス１０７を介して、アクセス要求と共に読み出したモード情報をアクセス制限回路２２７へ出力する。【０１２４】
なお、ＣＰＵ−１  ２２２は、ステータスレジスタ２２４にモード情報を記憶しているとしたが、アクセスの度に、切替機構内の切替レジスタを参照してモード情報を生成し、アクセス要求と共に出力しても良い。
（１−２）切替機構２２５
切替機構２２５は、ＣＰＵ−１  ２２２のモード切替のみを実行する。切替機構２２５内部の詳細な構成は、実施の形態１において説明した切替機構２２５とほぼ同様であるが、信号出力部は、ＣＰＵ−１  ２２２のみへリセット信号を出力する。【０１２５】
また、信号出力部は、アクセス制限回路２２７へのアクセス禁止信号、アクセス許可信号の出力は行わない。
また、バンク切替部は、ＣＰＵ−１  ２２２の参照する割込ベクタのみを管理し、ＣＰＵ−１  ２２２のみが２つの割込ベクタのうち有効な一方を参照する。
また、切替機構２２５内の信号出力部は、ＣＰＵ−１  ２２２が保護モードに遷移すると、ＣＰＵ−１  ２２２内のステータスレジスタ２２４にモード情報「１」を書き込む。【０１２６】
逆に、ＣＰＵ−１  ２２２が保護モードから通常モードへ遷移すると、信号出力部は、ステータスレジスタ２２４にモード情報「０」を書き込む。
（２）アクセス制限回路２２７
アクセス制限回路２２７は、ＣＰＵ−１  ２２２またはＣＰＵ−２  ２２３からのアクセス要求とモード情報とを受け取る。【０１２７】
これらを受け取ると、受け取ったモード情報が保護モード及び通常モードの何れを示しているかを確認する。
受け取ったモード情報が、保護モードを示す「１」である場合、アクセス制限回路２２７は、内部メモリ１０４へのアクセスを許可する。逆に、受け取ったモード情報が、通常モードを示す「０」である場合は、アクセス要求を拒否する。【０１２８】
４．３  動作
続いて、実施の形態４の組み込み装置２３７の動作について、実施の形態３と比較しながら説明する。
実施の形態３では、切替機構が保護モードに遷移したＣＰＵのＩＤを含むアクセス許可信号及びアクセス禁止信号をアクセス制限回路に事前に出力し、アクセス制限回路は、切替機構から受け取ったアクセス許可信号及びアクセス禁止信号に含まれるＩＤを基に、保護モードで動作しているＣＰＵのＩＤを記憶していた。【０１２９】
また、実施の形態３では、アクセス制限回路は、記憶しているＩＤを基に、各ＣＰＵからのアクセス要求を許可又は禁止していた。
それに対して、実施の形態４では、プロセッサ１に含まれる切替機構２２５は、ＣＰＵ−１  ２２２の動作モードを切り替えるが、その切り替えに当たって他の構成部へ信号を出力したりはしない。その代わり、切替機構２２５は、ＣＰＵ−２２２内部のステータスレジスタ２２４にモード情報を書き込む。【０１３０】
プロセッサ１に含まれるＣＰＵ−１  ２２２は、内部メモリ１０４へアクセスする場合には、ステータスレジスタ２２４からモード情報を読み出し、アクセス要求と共に読み出したモード情報をアクセス制限回路２２７に出力する。
アクセス制限回路２２７は、ＣＰＵ−１  ２２２からアクセス要求と共にモード情報を受け取る。受け取ったモード情報が「１」であれば、内部メモリ１０４へのアクセスを許可し、「０」であればアクセスを拒否する。【０１３１】
プロセッサ２の動作もプロセッサ１と同様であるので、ここでは説明を省略する。
４．４  まとめ
実施の形態４でも他の実施の形態と同様、保護モードに切り替わっていない（もしくは切り替わることのできない）ＣＰＵによる内部メモリ１０４へのアクセスを制限することができるので、保護プログラム１１１や保護データ１１２が不正にアクセスされる危険性を低減することができる。【０１３２】
さらに、ＣＰＵ−２  ２２３はＣＰＵ−１  ２２２とは独立に保護モードに遷移する事が可能である。そのため、実施の形態４では、ＣＰＵ−１  ２２２とＣＰＵ−２  ２２３が同時に保護モードで処理を行うことにより、保護すべき処理をマルチＣＰＵ化することができる。すなわち、保護モードにおける処理についても高速化する事が可能である。
上記の差異以外は、実施の形態３と実施の形態４は同一であるため、説明は省略する。【０１３３】
なお、上記の実施の形態４では、内部バス１０７と内部メモリ１０４との間は、アクセス制限回路２２７を介して常時接続されているものとしたが、これに限定されない。実施の形態１と同様に、通常モードから保護モードへの切り替えを行った切替機構は、アクセス許可／禁止信号をアクセス制限回路２２７へ出力し、アクセス制限回路２２７は、切替機構から受け取ったアクセス許可／禁止信号に基づいて、内部バス１０７と内部メモリ１０４との間を接続／遮断を行ってもよい。【０１３４】
５．  その他の変形例
なお、本発明を上記の実施の形態１〜４に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）上記の実施の形態では、切替プログラムは、各ＣＰＵの保護モードへの遷移を常に実行していたが、これに限られるものではない。例えば、アプリケーションからの依頼の優先度に従って、保護モードに遷移しない制御を行なってもよい。【０１３５】
より具体的な例を示すと、ユーザの操作によるデータの入出力中には、保護モードへの遷移を開始しない場合が考えられる。
また、ＣＰＵ−１で実行中のプログラムとＣＰＵ−２で実行中のプログラムの優先度を比較し、比較結果に応じて保護モードへ切り替える／切り替えないの制御を行っても良い。例えば、ＣＰＵ−１で通常モード用のプログラム（保護を必要としないプログラム）であるが重要なプログラムを実行中である場合に保護モードへ切り替えを行うと、ＣＰＵ−１が保護モード用の処理に占有されてしまい、ＣＰＵ−１で実行中の通常モード用の重要なプログラムの処理が中断されてしまう。【０１３６】
ここで、この変形例を適応すると、切替プログラムは、ＣＰＵ−１で実行中のプログラムの優先度が低い場合は、上記の実施の形態同様に、ＣＰＵ−１を保護モードに遷移させる制御を開始する。
ＣＰＵ−１で実行中のプログラムの優先度が高い場合、切替プログラムは、優先度の高いプログラムの実行を優先し、このプログラムの処理が終了した後、ＣＰＵ−１を保護モードに遷移させる制御を開始する。【０１３７】
（２）上記の実施の形態では、ＣＰＵ−１が保護モードで保護プログラムを実行中に、割込などの中断が生じた場合に、ＣＰＵ−１の状態を内部メモリへと退避させ、また、内部メモリから復帰させる操作を、どのようにして行うかを述べていなかったが、例えば、保護プログラムによって実現されるとしてよい。
若しくは、割込の種類に応じて、保護モード割込ベクタに含まれるアドレスの示す領域に格納されているハンドラ（例えば、内部メモリに格納された中断プログラム）により実現されるとしてもよい。【０１３８】
（３）上記の実施の形態１及び２において、切替プログラムが、ＣＰＵ−２をリセット信号によって停止する前に、図示していない周辺回路からのＣＰＵ−２への割り込みの通知先をＣＰＵ−１へ変更し、また、ＣＰＵ−２をリセット状態から解除する前に変更前の状態に周辺回路からの割り込みの通知先を戻すとしてもよい。このようにすることで、ＣＰＵ−２が停止している間にＣＰＵ−２に向けられた割り込みが発生した場合、この割り込みの処理をＣＰＵ−１が代わりに行うことができる。なお、上記の割り込みの通知先を変更する処理は、切替プログラムが行っても良いし、切替プログラム以外のプログラム、例えば、保護プログラムが行ってもよい。【０１３９】
（４）上記の実施の形態２において、ＣＰＵ−１  １８２およびＣＰＵ−２  １８３からのアクセス許可を示す信号の通知は、命令単位で行われてもよいし、各ＣＰＵが保護モードへ遷移した直後に「常にアクセス許可を与える」旨を通知して、保護モードから通常モードへ遷移する際に「以後は常にアクセス禁止である」旨を通知するとしてもよい。
さらに、プログラム単位でアクセス許可／禁止を通知したりしてもよい。すなわち、ＣＰＵのモード遷移のタイミングと異なるタイミングで許可／禁止の通知を行ってもよい。【０１４０】
（５）上述の実施の形態では、ＣＰＵ−１とＣＰＵ−２とが異なる命令コードを実行可能なＣＰＵであってもよい。この場合、保護モードにおいて動作するＣＰＵとしては、保護プログラムの実行が可能なＣＰＵが選ばれる。
（６）上記の実施の形態では、切替プログラムはＣＰＵ−１で動作していたが、ＣＰＵ−２で動作してもよい。さらに、上記の実施の形態では、切替プログラムと保護プログラムが同一のＣＰＵで動作していたが、異なるＣＰＵで動作するとしてもよい。【０１４１】
（７）上記の実施の形態では、保護プログラムの起動を、組み込み装置１１７の起動直後に行っているが、これに限られるものではない。例えば、保護プログラムを実行する直前に起動してもよい。
（８）上記の実施の形態１では、ステップＳ１３２において、切替プログラム１１５の復帰アドレスをＣＰＵ−１のプログラムカウンタに設定していたが、これに限られるものではない。例えば、切替機構が復帰アドレスを格納するレジスタを備えており、切替機構がリセット信号を出力する前に、切替プログラムが、そのレジスタに自身の復帰アドレスを書き込むとしてもよい。【０１４２】
（９）上記実施の形態では、２つのＣＰＵを搭載したシステムＬＳＩを用いて説明したが、これに限られるものでない。３つ以上のＣＰＵを搭載したシステムＬＳＩであってもよい。その場合に、保護モードに遷移することができるＣＰＵが複数あってもよい。
保護モードに遷移することができるＣＰＵが複数ある場合、同時に複数のＣＰＵが保護モードで動作できる構成であっても良いし、１個のＣＰＵが保護モードで動作している間、他のＣＰＵは保護モードに遷移できない構成であってもよい。【０１４３】
例えば、保護プログラムの大きさが小さく、１つのＣＰＵで十分に動作させることが可能である場合には、１つのＣＰＵが保護モードで動作すれば十分である。この場合、実施の形態１または２のように他のＣＰＵを停止させれば、消費電力を節減できる。このときに動作を停止させるＣＰＵには、保護モードに遷移可能なＣＰＵも含まれてもよい。また、保護モードで動作するＣＰＵを１つのＣＰＵのみとした場合には、従来の１つのＣＰＵ向けに開発されたプログラム資産を、そのまま利用することができる。【０１４４】
逆に、保護プログラムが大きく、負荷の高い処理を実行しなければならない場合は、同時に複数のＣＰＵを保護モードで動作させられることで、保護プログラムによる処理を高速化することができる。
また、実施の形態３または４のように保護プログラムを実行しているＣＰＵ以外のＣＰＵが通常モード用の処理を実行できる場合には、通常モード用の処理をより多くのＣＰＵで処理させることで、システム全体の処理性能を向上させることができる。【０１４５】
一方、保護モードで動作するＣＰＵを１つのみとする場合には、従来の１つのＣＰＵ向けに開発されたプログラム資産を、そのまま利用することができる。
（１０）上記実施の形態１および２では、リセット信号を投入し続けることによってＣＰＵ−２を停止していたが、他のＣＰＵが保護モードで動作している間は停止するような特殊なＣＰＵを用いて本発明を実現しても良いことは言うまでもない。例えば、このような特殊なＣＰＵをＣＰＵ−２として用いる場合、切替機構からＣＰＵ−２に対して、ＣＰＵ−１の現在のモードが通常モードであるか保護モードであるかの通知を送り、その通知を受けてＣＰＵ−２は停止したり動作を再開したりする。【０１４６】
また、ＣＰＵを停止させる方法もリセット信号を投入し続けるものに限らない。例えば、ＣＰＵに対するクロック信号を停止したり、電源供給を遮断したりするなどでも同様の効果が得られる。さらに、ＣＰＵごとに割込ベクタを設定できる場合には、ＣＰＵ−１が保護モードへ遷移する時に、ＣＰＵ−２の割込ベクタに含まれるリセット割込を、何の処理も行わない命令を記述したアドレスに書替えることなどによってもＣＰＵ−２を停止させることができる。【０１４７】
（１１）上記の実施の形態４では、すべてのＣＰＵが、自身の動作モードを通知するとしたが、一部のＣＰＵについては通知しなくても良い。この場合、アクセス制限回路２２７は、モード情報とアクセス要求とを受け取ると、受け取ったモード情報を基にアクセスの可否の判定を行うが、モード情報を伴わないアクセス要求は、無条件に拒否する。
この構成では、モード情報を保持及び通知する機能を持つＣＰＵと、そのような特殊な機能を持たない通常のＣＰＵとを混在させてシステムを構築することができるので、全てのＣＰＵにモード情報を通知する機能を持たせるよりも安価に本発明を実施できる。【０１４８】
また、ＣＰＵは、動作モードが保護モードである場合にのみ、モード情報を通知するとしても良い。この場合、アクセス制限回路２２７は、モード情報と共に受け取ったアクセス要求のみを受け付ける。
（１２）上記の実施の形態では、通常モードで動作するプログラムおよびデータは、外部メモリ１０１に格納されていたが、これに限られるものではない。暗号化技術等を用いて、保護プログラム及び保護データに通常モードのＣＰＵがアクセスできないような処理が施されていれば、通常モードのＣＰＵが内部メモリを用いて通常モードで動作するプログラムおよびデータに対する処理を行っても構わない。【０１４９】
（１３）上記の実施の形態３では、システムＬＳＩ２００は、ＣＰＵ−１  ２０２に対応する切替機構２０５を備えていたが、ＣＰＵ−２  ２０３に対応する切替機構も別途備えるとしてもよい。この場合、ＣＰＵが保護モードに遷移すると、対応する切替機構から保護モードに遷移したＣＰＵのＩＤを含むアクセス許可通知がアクセス制限回路２０６に出力される。ＣＰＵ−１  ２０２とＣＰＵ−２  ２０３との両方が保護モードに遷移した場合、アクセス制限回路２０６は、内部のメモリ２０８に、ＣＰＵ−１  ２０２とＣＰＵ−２  ２０３との両方のＩＤを記憶しておき、アクセス要求とともに通知されたＣＰＵのＩＤが、記憶しているＩＤのいずれかに一致する場合には内部メモリ１０４へのアクセスを許可する。このようにすると、実施の形態３においても、保護モード用の処理をマルチＣＰＵ化できるので、システム全体の高速化を図ることができる。【０１５０】
また、この場合、各切替機構は、対応するＣＰＵの割込ベクタの管理のみを行えばよい。
（１４）また、上記の実施の形態３および４では、切替機構はＣＰＵのプロセッサ内部にあるものとしたが、これに限られるものではなく、例えば、専用線を介して各ＣＰＵに接続されているものとしてもよい。【０１５１】
（１５）上記の実施の形態１〜４及び変形例において、組み込み装置は、音楽データ等の再生が可能な携帯可能な民生機器であるものとして説明を行ったが、これに限られるものではない。
例えば、上記の実施の形態と同様の保護プログラムの実行方法を持ったＤＶＤプレイヤー等の動画再生装置等であってもよいし、パーソナルコンピュータ、携帯電話、デジタルカメラ、ゲーム機など、様々な機器であることが考えられる。すなわち、本発明の組み込み装置は、保護されるべきプログラム又は保護されるべきデータを取り扱う処理装置であれば、どのようなものであってもよい。【０１５２】
（１６）上記の実施の形態では、保護モード割込ベクタに含まれるリセット割込は、内部メモリ上の保護プログラムのアドレスを示していたが、これに限られるものではない。例えば、組み込み装置は、ＣＰＵのモードの切り替えが起こるたびに、保護プログラム及び保護データが内部メモリから消去されるようなシステムであって、保護プログラム及び保護データは、図示されていないＲＯＭなどに安全に記憶されているとする。【０１５３】
この場合、保護モード割込ベクタに含まれるリセット割込は、保護プログラム及び保護データを前述のＲＯＭ等から内部メモリへと読み込むプログラムの記憶されているアドレスを指す。
また、上記の実施の形態では、バンク切替部の保持する保護モード割込ベクタに含まれるリセット割込を用いて、保護モードへの遷移時に保護プログラムを実行するよう制御していた。しかし、上記の制御に替えて、例えば、いずれかのＣＰＵが保護モードで動作している最中には、保護モードで動作しているＣＰＵからの外部メモリへのアクセス要求を却下するような機構を設けてもよい。例えば、外部メモリと内部バス間を接続したり、遮断したりするスイッチ機構を設けることで実現できる。このとき、切替機構の信号出力部は、切替レジスタに「１」が書き込まれると、外部メモリと内部バス間を遮断する旨の遮断信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記遮断信号を受け取ると、外部メモリと内部バス間を遮断する。また、信号出力部は、切替レジスタに「０」が書き込まれると、外部メモリと内部バス間を接続する旨の接続信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記接続信号を受け取ると、外部メモリと内部バス間を接続する。【０１５４】
この場合、ＣＰＵがアクセスできる範囲がシステムＬＳＩ内部の記録領域に確実に限定される。従って、外部メモリに不正なプログラムが存在したとしても、保護モードのＣＰＵにより実行されることはないので、不正なプログラムにより保護プログラム及び保護データが抜き取られたり改竄されたりする危険性をより低減することができる。
さらに、ＣＰＵ自体に、切替機構からの信号線を介して保護モードへの切り替えを指示する切り替え信号を受信する構成を持たせ、この切り替え信号を受信すると、システムＬＳＩ内部（つまり内部メモリ）に記録されたプログラムを起動または実行するように構成することで、ＣＰＵの保護モードを実現しても構わない。例えば、切替機構は、モードの切り替え対象となるＣＰＵに対してのみ当該切り替え信号を出力し、他のＣＰＵに対しては停止するように制御する（保護モードの間は当該他のＣＰＵに対してリセット信号を出力し続ける）。【０１５５】
すなわち、保護モードへ遷移したＣＰＵのみが、保護プログラム及び保護データにアクセスし、それによって保護プログラム及び保護データを改竄や盗聴から保護しつつ、秘匿されるべき処理を実行する方法であれば、どのような方法で保護モードを実現しても構わない。
（１７）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に実装しなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。【０１５６】
（１８）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でハードウェアとして実装してもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。このような実装は、特に退避処理や復帰処理等、ユーザの利便性のために高速化が求められる処理などにおいて有用である。
（１９）システムＬＳＩは集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもあるが、上記の各実施のシステムＬＳＩを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。【０１５７】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（２０）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙＤｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。【０１５８】
（２１）また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと改竄から保護されたプログラムを用いた処理を行う保護モードとを有する集積回路であって、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、少なくとも１つの実行手段に前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えることを特徴とする集積回路でもある。【０１５９】
このような構成により、本発明に関する集積回路は、複数の実行手段を用いてマルチプロセス処理を行うことができる。さらに、集積回路が保護モードにある場合に保護されたプログラムを実行させた実行手段のみに保護されたプログラム等を格納している内部メモリへのアクセスを許可するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。【０１６０】
（２２）変形例（２１）の集積回路において、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへの切り替えの際に、前記少なくとも１つの実行手段に前記保護されたプログラムを実行させ、かつ、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段を除いた実行手段を停止させる切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。【０１６１】
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行させていない実行手段を停止するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
（２３）前記変形例（２２）の集積回路において、切り替え部は、さらに、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段以外の実行手段に対して、前記実行手段をリセット状態にするリセット信号を通知することで、前記実行手段を停止させるとしてもよい。【０１６２】
（２４）また、変形例（２３）の集積回路において、前記切り替え部は、さらに、前記リセット信号を前記実行手段に通知し続けることで前記実行手段を停止させるとしてもよい。
このような構成により、本発明に関する集積回路は、リセット信号のみを利用して実行手段を停止させることができるので、特殊な構成を持たない汎用的な実行手段を用いて実現することができる。【０１６３】
（２５）また、変形例（２４）の集積回路において、の前記切り替え部は、さらに、前記集積回路の外部にある外部メモリに格納された切り替えプログラムによって制御されるとしても良い。
（２６）また、前記変形例（２５）の集積回路において、前記切り替え部は、さらに、前記保護されたプログラムの優先度が、前記保護の不要なプログラムの優先度より低い場合に、前記切り替えプログラムによって制御されるとしてもよい。【０１６４】
このような構成により、保護されたプログラムを実行させていない実行手段が、保護は不要なものの優先度の高い処理を実行中の場合に、その実行手段を、保護されたプログラムの実行への切り替えることを遅らせることができ、保護が不要なプログラム等の性能低下を低減することができる。
（２７）また、変形例（２６）の集積回路において、前記切り替え機構は、さらに、前記通常モードから前記保護モードへの切り替えの際に、前記複数の実行手段の状態を退避し、前記保護モードから前記通常モードへの切り替えの際に、前記退避した前記複数の実行手段の状態を復帰する、前記切り替えプログラムによって制御されるとしてもよい。【０１６５】
このような構成により、本発明に関する集積回路は、保護モードへの遷移前後であっても、処理を継続して行うことができる。
（２８）また、変形例（２７）の集積回路において、前記アクセス制限部は、前記切り替え部からの通知によって制御され、前記切り替え部は、前記保護モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを許可するよう通知し、前記切り替え部は、前記通常モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを不許可するよう通知するとしてもよい。【０１６６】
（２９）また、変形例（２７）の集積回路において、前記アクセス制限部は、前記実行手段からの通知によって制御され、前記実行手段は、前記保護されたプログラムを実行すると、前記アクセス制御部に、前記内部メモリへのアクセスを許可するよう通知し、前記保護されたプログラムの実行を停止すると、前記アクセス制御部に、前記内部メモリへのアクセスを禁止するよう通知するとしても良い。【０１６７】
（３０）また、上記の変形例（２８）及び（２９）の集積回路において、前記アクセス制御部は、前記通常モードにおいては、前記内部メモリへのアクセスを禁止し、前記内部メモリは、さらに、前記実行手段によって実行されている保護されたプログラムの状態を保持するとしてもよい。
（３１）上記の変形例（３０）の集積回路において、実行されている前記保護されたプログラムの状態は、前記保護モードから前記通常モードへの切り替えの際に、前記保護されたプログラムを実行させた実行手段から取得され、前記通常モードから前記保護モードへの切り替えの際に、前記保護されたプログラムを実行する実行手段に復帰されるとしても良い。【０１６８】
このような構成により、保護されるべきプログラムの中断した状態を、通常モードではアクセスできない内部メモリに格納するため、安全に保護モードの動作を中断し、安全に再開することができる。
（３２）また、上記の変形例（２１）の集積回路において、前記複数の実行手段のうち、前記少なくとも１つの実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて前記保護されたプログラムを実行し、前記複数の実行手段のうち、前記少なくとも１つの実行手段を除く実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて自身の動作を停止し、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへ切り替えの際に、前記保護モードへの切り替えの通知を前記複数の実行手段に送信する切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。【０１６９】
このような構成により、本発明に関する集積回路では、保護されたプログラムを実行していない実行手段は保護モードへの遷移時に停止するため、保護されたプログラムを実行していない実行手段による保護されたプログラム等への不正なアクセスを防止することができる。
（３３）上記の変形例（２１）の集積回路において、前記複数の実行手段は、それぞれ、前記内部メモリへのアクセス要求とともに自身を識別する識別情報を通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段の識別情報を通知する切り替え部と、前記切り替え部から前記保護されたプログラムを実行させた実行手段の識別情報の通知を受け取り、前記実行手段のうち、前記アクセス要求とともに通知された識別情報が、通知された識別情報と一致する場合に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。【０１７０】
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
（３４）上記の変形例（２１）の集積回路において、前記実行手段は、自身の前記内部メモリへのアクセス要求とともに自身が前記保護されたプログラムを実行したか否かを通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記１つ以上の処理手段に保護されたプログラムを実行させる切り替え部と、前記実行手段から、前記アクセス要求とともに前記保護されたプログラムを実行した旨が通知されると前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしても良い。【０１７１】
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
（３５）また、本発明は、外部メモリと、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路とを備えた処理装置であって、前記外部メモリは、前記保護が不要なプログラムを格納し、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも１つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えるとしても良い。【０１７２】
（３６）また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられる方法であって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記方法は、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも１つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしても良い。【０１７３】
（３７）また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられるプログラムであって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記プログラムは、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも１つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしてもよい。【０１７４】
（３８）これらの実施の形態および変形例の組合せであってもよい。
【産業上の利用可能性】
【０１７５】
本発明は、複数のＣＰＵを搭載し、保護すべき情報を取り扱うシステムＬＳＩを製造及び販売する産業、前記システムＬＳＩを搭載した機器を製造販売する産業、また、これらの機器を用いて保護されるべき情報を使用したサービスを提供する産業において、経営的、継続的、反復的に利用可能である。
【図１】
2008078564.tif 000003
【図２】
2008078564.tif 000004
【図３】
2008078564.tif 000005
【図４】
2008078564.tif 000006
【図５】
2008078564.tif 000007
【図６】
2008078564.tif 000008
【図７】
2008078564.tif 000009
【図８】
2008078564.tif 000010
【図９】
2008078564.tif 000011
【手続補正書】
【提出日】平成20年12月11日(2008.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスと、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、
保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、
保護すべき処理の期間、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アクセス制御部は、
前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記少なくとも１のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第１の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第２の割込ベクタを有効にすることにより、前記少なくとも１のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を
備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも１のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、
前記情報処理装置は、さらに、
前記切替プログラムの指示に従って、前記少なくとも１のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備える
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも１のプロセッサに対してリセット信号の出力を解除する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、
前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも１のプロセッサに対して、前記第２の割込ベクタに代えて、前記第１の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替える
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、
前記情報処理装置は、さらに、
前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、
比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段と
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項９】
前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１１】
前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１２】
前記アクセス制御部は、
前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも１のプロセッサがセキュアメモリを参照するように制御する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１３】
前記制御手段は、さらに、
前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現する
ことを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記制御手段は、前記他のメモリと前記バスとの接続を切断する
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記複数のプロセッサは、それぞれ固有の識別子によって識別され、
前記制御手段は、
前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、
前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、
取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、
比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部と
を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項１７】
前記少なくとも１以上のプロセッサそれぞれは、
前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、
前記制御手段は、
前記１以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、
処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去する
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、
前記制御手段は、
アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項１９】
前記複数のプロセッサそれぞれは、
処理情報を記憶する情報記憶手段と、
前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含む
ことを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記情報処理装置は、
前記セキュアメモリとは異なり、他の処理の期間において使用される他のメモリと、
前記セキュアメモリと、前記複数のプロセッサと、前記バスと、前記スイッチ手段と、前記制御手段とを含む集積回路とから構成されている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項２１】
保護すべき処理と他の処理とを切り換えて動作する集積回路であって、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスと、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
を備えることを特徴とする集積回路。
【請求項２２】
保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられる方法であって、
前記情報処理装置は、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスとを備え、
前記方法は、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
含むことを特徴とする方法。
【請求項２３】
保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられるコンピュータ読み取り可能な記録媒体に記録されたプログラムであって、
前記情報処理装置は、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスとを備え、
前記プログラムは、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
含むことを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理能力が高い装置等で、保護されるべきプログラムやデータを安全に取り扱う技術に関するものである。
【背景技術】
【０００２】
近年、民生機器では、音楽データをディジタル化して記憶装置に取り込み、音楽を楽しむということが行われるようになっている。また、音楽データの取り扱いのみならずＨＤ画像など、より表現能力が高いコンテンツの取り扱いが民生機器に求められるようになっている。
上述したＨＤ画像等の表現能力が高いコンテンツを処理するには、民生機器の処理能力の向上が必要である。処理能力を向上させる手法としては、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）の分野では、マルチＣＰＵ（マルチプロセッサとも呼ばれる）が用いられている。マルチＣＰＵとは、従来１つのＣＰＵで行っていた処理を複数のＣＰＵに分担させることで、処理時間を短縮させる技術である。
【０００３】
一方で、ディジタル化された音楽データや上記ＨＤ画像等は、劣化なしで複製することが可能である。そこで、著作権者の利益を保護するために、これらのデータは不正利用されない環境で取り扱われなければならない。
このような、複数のＣＰＵを搭載した機器において、保護されるべきデータの不正利用を抑制する技術が、特許文献１に開示されている。特許文献１に記載の技術（以下、第１の従来技術という。）では、以下の技術が開示されている。各ＣＰＵには、それぞれのＣＰＵに固有の鍵が割り当てられており、保護すべきプログラムやデータは、そのプログラムやデータを取り扱うＣＰＵと対応する鍵を用いて暗号化された状態で外部メモリに記憶されている。各ＣＰＵが、外部メモリに記憶されているデータやプログラムを利用しようとするとき、そのＣＰＵに対応する鍵を用いて、バス暗号回路が復号処理を施して、復号後のデータ又はプログラムをＣＰＵへ出力する。
【０００４】
しかし、プログラムやデータがコンテンツの再生許可回数などの権利情報を含む場合に、外部メモリの内容を丸ごとバックアップした上で、権利を消費し、その後、バックアップしておいた権利情報を元に戻すという不正利用（以下、バックアップ・リストア攻撃と呼ぶ）を防止することができない。この場合、元に戻した権利情報もバス暗号回路で正しく復号されてしまうので、消費したはずの権利を元に戻すことができる。そのため、第１の従来技術では、保護されるべき情報を安全に扱うことはできない。
【０００５】
そこで、より確実にデータやプログラムを保護するために、別の技術として、１つのＣＰＵ（シングルプロセッサ）を搭載した機器において、保護すべきデータに関する処理と、保護を必要としないデータに関する処理とを切り替えて処理を行う技術がある（以下、第２の従来技術という。）。
第２の従来技術の前記機器において、保護すべきデータに関する処理を行う実行環境をシステムＬＳＩ内部の内部メモリとＣＰＵの専用モードとで実現している。なお、以下ではこのような実行環境を保護モードと呼ぶ。第２の従来の技術では、システムＬＳＩが保護モードでないモードで動作している時（以下、通常モードと呼ぶ）には、内部メモリへのアクセスが遮断される。ここで、通常モードから保護モードへの切り替えが起こると、ＣＰＵはリセットされたのち、システムＬＳＩ内部の保護されたプログラムを起動させる。この保護されたプログラムは、システムＬＳＩ内部のＲＯＭ等に記録されており、外部からの改竄は困難なプログラムである。また、システムＬＳＩは保護モードへの切り替えが起こると、内部メモリへのアクセスが許可される。このような制御を行うことで、システムＬＳＩが通常モードで動作している間は、内部メモリへのアクセスができない。また、保護モードへ切り替わると、内部メモリへのアクセスが許可されるが、ここで内部メモリへアクセスできるプログラムは、専用モードに遷移したＣＰＵが動作させている改竄困難なプログラム（もしくは改竄困難なプログラムが呼び出した他のプログラム）であるので、内部メモリ上のデータを取り扱うプログラムを安全なものに限ることができる。
【０００６】
このように、１つのＣＰＵを搭載した機器において、保護すべきデータに関する処理と保護を必要としないデータに関する処理とを切り替えることにより、セキュアメモリへの不正なアクセスを防止して、内部メモリ上のデータを安全に利用することができる。
【特許文献１】特開２００５−９９９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
第１の従来技術では、ＨＤ画像等の表現能力が高いコンテンツを処理するための処理能力は高いが、バックアップ・リストア攻撃を防止することができない。そのため、第１の従来技術では、保護されるべき情報を安全に扱うことはできない。
一方、第２の従来技術では、保護されるべき情報を安全に扱うことができるが、プロセッサが１つであるので、ＨＤ画像等の表現能力が高いコンテンツを処理するための処理能力は低い。
【０００８】
つまり、第１及び第２の技術それぞれは、ＨＤ画像等の表現能力が高いコンテンツを処理するための処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができない。
そこで、本発明は、処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置、集積回路、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、保護すべき情報を記憶するためのセキュアメモリと、それぞれプログラムに従って動作する複数のプロセッサと、前記複数のプロセッサを相互に接続するバスと、保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段とを備えることを特徴とする。
【発明の効果】
【００１０】
上記の構成によると、情報処理装置は、保護すべき処理の期間において少なくとも１のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させ又は他のプロセッサに対してセキュアメモリへのアクセスを禁止している。これにより、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においては、全てのプロセッサに対して、セキュアメモリへのアクセスを禁止しているので、各プロセッサからセキュアメモリへのアクセスはできない。つまり、本発明の情報処理装置は、複数のプロセッサを備えることにより処理能力の向上を図ることができ、且つ保護すべき処理の期間においては前記他のプロセッサによって、又他の処理の期間においては全てのプロセッサによって保護されるべきプログラムやデータが利用されることがないので、保護されるべきプログラムやデータを安全に扱うことができる。
【００１１】
ここで、前記制御手段は、保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、保護すべき処理の期間、前記複数のプロセッサのうち少なくとも１のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部とを備えるとしてもよい。
【００１２】
この構成によると、情報処理装置は、保護すべき処理の期間において、セキュアメモリとバスとを接続し、少なくとも１のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させるので、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においてセキュアメモリとバスとの接続を切断するので、他の処理の期間において各プロセッサに対してセキュアメモリへのアクセスを確実に禁止することができる。
【００１３】
ここで、前記アクセス制御部は、前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してリセット信号を出力し続けることで、前記他のプロセッサを停止することができる。これにより、リセット信号を処理する機構さえ備えているプロセッサであれば従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
【００１４】
ここで、前記情報処理装置は、さらに、前記少なくとも１のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第１の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第２の割込ベクタを有効にすることにより、前記少なくとも１のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
【００１５】
この構成によると、情報処理装置の切替手段は、前記少なくとも１のプロセッサに対して、参照する割込ベクタとして、通常モード割込ベクタの代わりに保護モード割込ベクタを有効とするので、前記少なくとも１のプロセッサは確実にセキュアメモリ内を参照することができる。
ここで、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも１のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、前記情報処理装置は、さらに、前記切替プログラムの指示に従って、前記少なくとも１のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
【００１６】
この構成によると、情報処理装置は、切替プログラムを実行することにより、前記少なくとも１のプロセッサに対して保護すべき処理の期間において確実にセキュアメモリ内を参照するように参照先を切り替えることができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも１のプロセッサに対してリセット信号の出力を解除するとしてもよい。
【００１７】
この構成によると、情報処理装置は、他の処理から保護すべき処理へと切り替える際に、複数のプロセッサのレジスタ内容を退避した後に、前記少なくとも１のプロセッサの参照先をセキュアメモリ内へと切り替えるので、処理が切り替えられる直前のレジスタ内容を保証することができる。
ここで、前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも１のプロセッサに対して、前記第２の割込ベクタに代えて、前記第１の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替えるとしてもよい。
【００１８】
この構成によると、情報処理装置は、保護すべき処理から他の処理へと復帰する際に、前記少なくとも１のプロセッサの参照先を前記他のメモリへと切り替えるので、セキュアメモリへの参照を防止することができ、さらには、退避していたレジスタの内容を復帰させるので、レジスタの内容を保護すべき処理への切替前の状態へと確実に復元することができる。
【００１９】
ここで、前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、前記情報処理装置は、さらに、前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段とを備えるとしてもよい。
【００２０】
この構成によると、情報処理装置は、他の処理の期間中において実行中のプログラムであるが重要なプログラムが実行されている場合に、当該プログラムの優先度よりも低い保護モード用のプログラムの処理に占有されることなく、実行中の重要なプログラムの処理を優先して行うことができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
【００２１】
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してクロック信号を停止するように制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
【００２２】
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して電源供給を遮断するよう制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
【００２３】
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して、参照するアドレスとして、何も処理しない命令が記述されたアドレスを参照するよう制御するので、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも１のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも１のプロセッサがセキュアメモリを参照するように制御するとしてもよい。
【００２４】
この構成によると、情報処理装置は、前記少なくとも１のプロセッサに対して参照先をセキュアメモリへと切り替えることができる。
ここで、前記制御手段は、さらに、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止するとしてもよい。
【００２５】
この構成によると、情報処理装置は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された１以上のプロセッサがアクセスできる範囲を当該セキュアメモリに限定することができる。したがって、セキュアメモリとは異なる他のメモリに不正なプログラムが存在したとしても、保護すべき処理を行っている１以上のプロセッサにより実行されることはないので、不正なプログラムによるセキュアメモリへの不正なアクセスを防止することができる。
【００２６】
ここで、前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも１のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサと前記他のメモリとの接続を切断するので、前記１以上のプロセッサがアクセスできる範囲をセキュアメモリに確実に限定することできる。
【００２７】
ここで、前記制御手段は、前記他のメモリと前記バスとの接続を切断するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、バスと前記他のメモリとの接続を切断するので、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサに限らず、前記他のプロセッサに対しても前記他のメモリへのアクセスを防止することができる。
【００２８】
ここで、前記複数のプロセッサは、それぞれ固有の識別子によって識別され、前記制御手段は、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された１以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部とを含むとしてもよい。
【００２９】
この構成によると、情報処理装置の制御手段は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された１以上のプロセッサの識別子を記憶しているので、前記セキュアメモリへのアクセスしようとするプロセッサが保護すべき処理を行っているプロセッサであるか否かを判断することができ、前記セキュアメモリへのアクセスが禁止されたプロセッサからのアクセスを防ぐことができる。
【００３０】
ここで、前記少なくとも１以上のプロセッサそれぞれは、前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、前記制御手段は、前記１以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去するとしてもよい。
【００３１】
この構成によると、情報処理装置は、保護すべき処理から他の処理へ切り替わる場合に、記憶している前記セキュアメモリへのアクセスが許可された１以上のプロセッサそれぞれに対応する識別子を識別子記憶部から消去するので、他の処理の期間において、前記１以上のプロセッサからのセキュアメモリへのアクセスを確実に禁止することができる。
ここで、前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、前記制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否するとしてもよい。
【００３２】
この構成によると、情報処理装置の制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、要求元のプロセッサに対してセキュアメモリへのアクセスを許可するので、保護すべき処理の実行していないプロセッサからの不正なアクセスを防ぐことができる。
ここで、前記複数のプロセッサそれぞれは、処理情報を記憶する情報記憶手段と、前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含むとしてもよい。
【００３３】
この構成によると、情報処理装置は、切替手段により参照先の切替を確実に行うとともに、情報記憶手段の内容を保護すべき処理の実行中であることを示す処理情報に変更することができる。
【発明を実施するための最良の形態】
【００３４】
１．  実施の形態１
以下に、本発明の実施の形態１について、図面を参照しながら説明を行う。
１．１  概要
本実施の形態に関わる組み込み装置１１７は、図１に示すように、システムＬＳＩ１００と外部メモリ１０１とを搭載しており、システムＬＳＩ１００は、複数のＣＰＵ（ここでは、ＣＰＵ−１  １０２とＣＰＵ−２  １０３）と、耐タンパ性を有する内部メモリ１０４と、切替機構１０５と、アクセス制限回路１０６とを含んでいる。
【００３５】
なお、以下の説明では、組み込み装置１１７は、一例として、保護すべきデータである音楽データ等の録音、再生を実行する携帯可能な民生機器であるものとして説明を行う。
組み込み装置１１７は、保護すべきデータ（例えば、音楽コンテンツの再生やコピーに関する権利情報、復号鍵データなどが該当する。以下、保護データと呼ぶ）に関する処理を、システムＬＳＩ１００上の内部メモリ１０４上を用いて実行する装置である。この際に、保護データを処理するためのＣＰＵは、実行環境がシステムＬＳＩ内部の内部メモリとＣＰＵの専用モードとから実現されるモード（以下、保護モードと呼ぶ。また、これに対して、保護モードでないモードを通常モードと呼ぶ。）に遷移して必要な処理を実行し、保護モードに遷移したＣＰＵ以外のＣＰＵを停止させることにより、内部メモリ１０４に対して通常モードのＣＰＵがアクセスすることを禁止する。
【００３６】
なお、システムＬＳＩ１００内の各ＣＰＵは、起動直後及び初期化直後は通常モードで動作するものとする。また、組み込み装置１１７が保護データを処理する場合には、説明の便宜上、本実施の形態では、ＣＰＵ−１  １０２が保護モードに遷移して、保護されるべき処理を実行し、ＣＰＵ−１  １０２が保護モードで動作している間、ＣＰＵ−２  １０３は停止しているとするように設定されているものとする。
【００３７】
以下、組み込み装置１１７の概要を説明するため、各構成要素の概略を説明する。より詳細な説明については、後ほどそれぞれの構成要素についての説明で行う。
システムＬＳＩ１００は、図示していない外部フラッシュメモリ等から読み込まれた音楽データの再生を行う。音楽データの再生手順は、アプリケーション１１４ａ及び１１４ｂに記述されているとする。ここで、本実施の形態では、外部フラッシュメモリ内の音楽データには暗号化が施されているものとし、アプリケーション１１４ａ及１１４ｂは、切替プログラム１１５を介して、保護プログラム１１１へ秘匿すべき処理（保護すべき処理）を依頼する。ここで、秘匿すべき処理とは、例えば、暗号化音楽データの復号、復号鍵の生成、再生を許可されている期限や回数の確認などである。アプリケーション１１４の依頼により、保護プログラム１１１は、システムＬＳＩ１００に配置され、外部からのアクセスが困難な内部メモリ１０４を用いて前述の秘匿すべき処理を行う。この処理は、保護モードに遷移したＣＰＵ−１が、保護プログラム１１１を実行することで実現され、その間、ＣＰＵ−２は、停止している。そのため、当該組み込み装置１１７は、音楽データの復号および再生に関連する処理を安全に、実行することができる。
【００３８】
外部メモリ１０１は、システムＬＳＩ１００の外部に設けられたメモリであり、セキュリティ面から見て重要度の低いプログラム等の実行に用いる。なお、本実施の形態では、この外部メモリは、大きな容量を持つものの、特に不正アクセスを防止する機構は設けられていないメモリであると想定しているが、何らかの機構により不正アクセスを防止するように構成して良いことは言うまでもない。
【００３９】
１．２  構成
以下、組み込み装置１１７が備える各構成要素の詳細について説明を行っていく。
なお、通常、組み込み装置１１７は、さらに、図１に図示されていないユーザからの入出力を受け付ける入出力部や、着脱可能な外部メモリへのインタフェース、音声の出力機構などを備えているが、これらは本発明の本質ではないので説明を省略する。
【００４０】
＜システムＬＳＩ１００の説明＞
システムＬＳＩ１００が備えるＣＰＵ−１  １０２とＣＰＵ−２  １０３と、切替機構１０５と、アクセス制限回路１０６とは、内部バス１０７を介して互いに接続されている。さらに、内部メモリ１０４とアクセス制限回路１０６とが専用線を介して接続されている。
【００４１】
本実施の形態では、内部メモリ１０４とアクセス制限回路１０６を専用線を介して接続しているので、各ＣＰＵは、アクセス制限回路１０６を介さずに内部バス１０７から内部メモリ１０４へアクセスできない構造になっている。
従って、アクセス制限回路１０６によってアクセスが認められないＣＰＵ等による内部メモリ１０４のデータの盗み取りを防ぐ事が出来る。
【００４２】
（１）ＣＰＵ−１  １０２及びＣＰＵ−２  １０３
ＣＰＵ−１  １０２とＣＰＵ−２  １０３は、外部メモリ１０１または内部メモリ１０４に格納されたプログラム等に含まれる命令コードを解読し実行することにより、システムＬＳＩ１００全体の動作、および、組み込み装置１１７全体の動作を制御する。なお、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とは、後述するリセット信号を受信している間は、何も動作を行わない。また、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とは、リセット信号の受信後に、後述する割込ベクタ中のリセット割込を参照することで、システムＬＳＩ１００および組み込み装置１１７に対する制御を再開する。リセット割込とは、リセット信号が解除された直後に実行されるハンドラ（プログラム）の記憶されているメモリ領域の先頭アドレスである。
【００４３】
（２）内部メモリ１０４
内部メモリ１０４は、ＲＡＭ、ＲＯＭなどから構成され、図１に示すように、保護プログラム１１１や保護データ１１２を記憶する。
内部メモリ１０４内の保護プログラム１１１は、保護モードにおいて、ＣＰＵ−１  １０２により実行されるプログラム群である。具体的には、保護モード用のオペレーティングシステム、保護モードにおいて、保護データ１１２を取り扱うアプリケーションプログラムなどが該当する。この保護プログラム１１１を構成するプログラムは、単独で、または必要に応じて他のプログラムと連携し、保護されるべき処理（例えば、暗号化された音楽データの復号、復号鍵の生成、音楽データに付随する権利情報のチェック）を行う。これらの処理が終了すると、保護プログラム１１１は、切替機構１０５内の切替レジスタ１２１（後述する）に通常モードを意味する値「０」を書き込む。
【００４４】
保護データ１１２は、不正なアクセスから保護されるべきデータであり、例えば、保護プログラム１１１により復号された音楽データや、音楽データを再生することができる回数などの権利情報、音楽データの復号に用いる復号鍵などである。
なお、図１では説明を簡単にするため、保護プログラム１１１と保護データ１１２とが内部メモリ１０４上に格納された後の状態を示しているが、これらのプログラム及びデータは、システムＬＳＩ１００の起動直後に内部メモリ１０４へ格納されるとしても良いし、必要に応じて後から格納されるとしても良い。この場合、外部からの改竄を防止するため、これらのデータは、システムＬＳＩ１００の内部の図示しない耐タンパ性を有するＲＯＭや、何らかのセキュリティ機構を備えた記録領域に記録されており、システムＬＳＩ１００の起動時や保護プログラム１１１の実行開始時に内部メモリ１０４に格納される。
【００４５】
（３）切替機構１０５
図１に示すように、切替機構１０５は、信号線１０８、１０９を介して、それぞれ、ＣＰＵ−１  １０２、ＣＰＵ−２  １０３と接続されている。また、信号線１１８を介して、アクセス制限回路１０６とも接続されている。
図２は、切替機構１０５の詳細な構成を示すブロック図である。図２に示すように、切替機構１０５は、切替レジスタ１２１、信号出力部１２２、ＣＰＵレジスタ退避／復帰部１２５及びバンク切替部１１０から構成されており、２つのＣＰＵの動作モードを切り替える構成を備える。
【００４６】
（３−１）切替レジスタ１２１
切替レジスタ１２１は、数ビット長のデータを記憶することができるレジスタであって、記憶しているデータは、ＣＰＵ−１  １０２の状態を示す。例えば、切替レジスタ１２１に記憶されているデータ「０」は、通常モードを示し、データ「１」は、保護モードを示す。
【００４７】
（３−２）ＣＰＵレジスタ退避／復帰部１２５
ＣＰＵレジスタ退避／復帰部１２５は、切替プログラム１１５の指示に従ってＣＰＵ−１  １０２及びＣＰＵ−２  １０３のレジスタ内容や処理途中のデータを外部メモリ１０１へ退避し、また、退避したレジスタ内容などを各ＣＰＵに復帰する。
また、ＣＰＵレジスタ退避／復帰部１２５は、予め、復帰アドレスを記憶している。復帰アドレスは、外部メモリ１０１内において、切替プログラム１１５が記憶されている領域内の所定の位置を示す。切替プログラム１１５内において、復帰アドレスの指す位置以降の部分には、退避したレジスタ内容などを各ＣＰＵに復帰させる手順、保護プログラム１１１による処理結果をアプリケーション１１４へ通知する手順が含まれる。
【００４８】
なお、ＣＰＵレジスタ退避／復帰部１２５は、予め、復帰アドレスを記憶しているとしたが、各ＣＰＵのレジスタ内容の退避指示と共に、切替プログラム１１５から通知されるとしてもよい。
また、ＣＰＵ−１  １０２が保護モードから通常モードに遷移する際、ＣＰＵレジスタ退避／復帰部１２５は、信号出力部１２２の指示により、内部バス１０７を介して、ＣＰＵ−１  １０２のプログラムカウンタへ、前述の復帰アドレスを書き込む。
【００４９】
また、レジスタ退避／復帰部１２５は、切替プログラム１１５の指示により、各ＣＰＵに退避していたレジスタ内容などを復帰する。
（３−３）信号出力部１２２
信号出力部１２２は、切替レジスタ１２１の値を常時監視している。
切替レジスタ１２１に「１」が書き込まれると、信号線１０８及び１０９を介して、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３へリセット信号を出力する。これにより、２つのＣＰＵのレジスタ値などが初期化される。
【００５０】
所定時間経過後、信号出力部１２２は、ＣＰＵ−１  １０２へのリセット信号を解除し、ＣＰＵ−２  １０３へはリセット信号を出力し続ける。
また、信号出力部１２２は、アクセス制限回路１０６へアクセス許可信号を出力する。
また、切替レジスタ１２１に「０」が書き込まれると、信号出力部１２２は、ＣＰＵレジスタ退避／復帰部１２５へ、復帰アドレスの書き込みを指示する。
【００５１】
次に、信号出力部１２２は、アクセス制限回路１０６へ、アクセス禁止信号を出力する。次に、ＣＰＵ−２  ２０３へのリセット信号を解除する。
図３は、時間の経過と各ＣＰＵへのリセット信号の出力の関係とを示している。以下、図３を用いて、時間の経過と、信号出力部１２２によるリセット信号出力及び停止の動作について説明する。
【００５２】
時刻ｔ１において、切替レジスタ１２１に「１」が書き込まれると、信号出力部１２２は、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３の両方にリセット信号を出力を開始する。
時刻ｔ２において、信号出力部１２２はアクセス許可信号をアクセス制限回路１０６へ出力するとともに、ＣＰＵ−１  １０２へのリセット信号の出力を解除するが、ＣＰＵ−２  １０３へのリセット信号の出力は継続する。
【００５３】
時刻ｔ３において、切替レジスタ１２１に「０」が書き込まれると、信号出力部１２２は、アクセス制限回路１０６へ、アクセス禁止信号を出力した後、時刻ｔ４に、ＣＰＵ−２  １０３へのリセット信号の出力を停止する。
（３−４）バンク切替部１１０
図２に示すようにバンク切替部１１０は、２種類の割込ベクタを保持している。
【００５４】
これらは、組み込み装置１１７の製造時に記録されたものであって、販売後に改竄することはできない構造になっている。
通常モード割込ベクタ１２３は、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを含む。ここで、通常モード割込ベクタ１２３に含まれるアドレスは、何れも外部メモリ１０１及び組み込み装置１１７の保持するメモリ（図示されていないものも含む）の何れかの位置を示す。
【００５５】
保護モード割込ベクタ１２４も同様に、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを記憶している。保護モード割込ベクタに含まれるアドレスは、何れも、内部メモリ１０４内の何れかの位置を示す。
特に、保護モード割込ベクタ１２４に含まれるリセット割込は、内部メモリ１０４内において、保護プログラム１１１の記憶されている領域の先頭を示すアドレスである。
【００５６】
組み込み装置１１７の起動時において、バンク切替部１１０は通常モード割込ベクタ１２３を、有効な割り込みベクタとして指定する。
信号出力部１２２からアクセス許可信号が出力されると、バンク切替部１１０は、通常モード割込ベクタ１２３に代えて、保護モード割込ベクタ１２４を、有効な割込ベクタに指定する。
【００５７】
また、信号出力部１２２からアクセス禁止信号が出力されると、バンク切替部１１０は、通常モード割込ベクタ１２３を有効な割込ベクタに指定する。
有効な割込ベクタの指定の方法は任意であるが、例えば、２つの割込ベクタのうち、有効な一方の先頭にフラグを立てる方法などが考えられる。
従って、割り込み発生時には、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３は、２つの割込ベクタのうち、有効な割込ベクタを参照して割込処理を行う。
【００５８】
（４）アクセス制限回路１０６
アクセス制限回路１０６は、信号線１１８を介して、切替機構１０５内の信号出力部１２２と接続されており、アクセス許可信号及びアクセス禁止信号を受け取る。
アクセス制限回路１０６は、アクセス許可信号を受け取ると、内部バス１０７と内部メモリ１０４とを接続し、アクセス禁止信号を受け取ると、内部バス１０７と内部メモリ１０４とを遮断する。
【００５９】
なお、組み込み装置１１７の起動時には、アクセス制限回路１０６は、内部バス１０７と内部メモリ１０４とを遮断している。
（５）システムＬＳＩ１００の構成のまとめ
このようにすることで、保護を必要としない処理において、通常モードである２つのＣＰＵが内部メモリ１０４内のデータを参照することはない。また、保護を必要とする処理において、保護モードであるＣＰＵ−１  １０２は、内部メモリ１０４内のデータ、プログラムを参照して処理を行い、システムＬＳＩ１００内で処理が完結するため、システムＬＳＩ１００の外に不正なプログラムが存在したとしても、このプログラムが実行されることはない。
【００６０】
また、切替機構１０５は、ＣＰＵ−１  １０２が保護モードで動作している間は、ＣＰＵ−２  １０３に対してリセット信号を送り続けることでＣＰＵ−２  １０３の動作を停止させる。そのため、ＣＰＵ−２  １０３は、システムＬＳＩ１００が保護モードで動作している間は何の処理も行えなくなるので、外部メモリに書き込まれた悪意あるプログラムを読み込むこともなく、内部メモリ１０４のデータを奪うような動作も行えない。
【００６１】
さらに、切替機構１０５は、ＣＰＵ−１  １０２を保護モードから通常モードに遷移させる場合に、ＣＰＵ−１  １０２のプログラムカウンタに前述の復帰アドレスを書き込み、ＣＰＵ−２  １０３のリセットを解除し、アクセス制限回路１０６にアクセス禁止を通知する。
さらに、バンク切替部１１０は、ＣＰＵの動作モードが切り替わるときに、割込ベクタを各モード用のものに変更する。そのため、通常モードでは、割込発生時に、各ＣＰＵが、内部メモリ１０４を参照することはないし、保護モードでは、ＣＰＵ−１  １０２は、内部メモリ１０４を参照し、外部メモリ１０１等を参照することはない。
【００６２】
従って、外部メモリ１０１などに不正なプログラムが存在しても、システムＬＳＩ１００が保護モードで動作している間は、実行されることはないので、内部メモリ１０４に記憶されているデータ及びプログラムを、不正なプログラムの実行によって改竄したり、抜き取ったりすることは困難である。
＜システムＬＳＩ１００以外の部分についての説明＞
続いて、組み込み装置１１７の他の部分について説明を行う。
【００６３】
外部メモリ１０１は、ＲＡＭ、ＲＯＭを含んで構成され、一例として、図１に示すように、アプリケーション１１４ａと、アプリケーション１１４ｂと、切替プログラム１１５と、オペレーティングシステム１１６とが格納されている。なお、これらのプログラムについてもシステムＬＳＩ１００の起動時から外部メモリ１０１に格納されていてもよいし、ＲＯＭやＨＤＤ等の他の記録媒体から必要に応じて読み出されて外部メモリ１０１に格納されるものとしてもよい。
【００６４】
また、図示されていないが、外部メモリ１０１内には、その他のプログラムや、各プログラムの用いるデータなどが記憶されている。
（１）アプリケーション１１４ａ及び１１４ｂ
アプリケーション１１４ａ及び１１４ｂは、いずれも組み込み装置１１７全体の制御を行うためのプログラムである。本実施の形態では、具体的には、図示されていないフラッシュメモリなどから音楽データを取得し、再生、複製などを実行する手順を含む。２つのアプリケーションは、それぞれ、データ形式の異なる音楽データを再生する手順を含んでいる。以後、これらを特に区別する必要がない場合、単にアプリケーション１１４と記載する。
【００６５】
また、アプリケーション１１４は、切替プログラム１１５を介して、保護プログラム１１１へ保護されるべき処理を依頼する手順が含まれる。
アプリケーション１１４は、随時ＣＰＵ−１  １０２またはＣＰＵ−２  １０３により参照されて実行される。このアプリケーション１１４は、セキュリティ面から見た重要度が比較的低く、また、組み込み装置１１７全体の制御を行う関係上サイズが大きいため、大きさに制限がある内部メモリ１０４ではなく、外部メモリ１０１に格納されている。
【００６６】
（２）切替プログラム１１５
切替プログラム１１５は、切替機構１０５を制御して、システムＬＳＩ１００内のＣＰＵのモード遷移を開始させる手順を含むプログラムである。
具体的には、アプリケーション１１４から、呼び出しを受けると、切替機構１０５内の切替レジスタ１２１に「１」を書き込手順を含む。
【００６７】
また、前述の通り、切替プログラム１１５のうち、復帰アドレス以降の領域に記載されている部分には、退避している各ＣＰＵのレジスタ内容などを、それぞれのＣＰＵに復帰させる手順、保護プログラム１１１による処理結果をアプリケーション１１４へ通知する手順を含む。
なお、切替プログラム１１５は、他のプログラムから不定期に発生する要求を受け付ける必要がある。従って、本実施の形態における切替プログラム１１５は、システムＬＳＩ１００上の全てのＣＰＵが通常モードで動作している間はＣＰＵ−１  １０２にてバックグラウンドで動作し続けているものとする。
【００６８】
（３）オペレーティングシステム１１６
オペレーティングシステム１１６は、アプリケーション１１４などに対して動作環境を提供するプログラムである。なお、オペレーティングシステム１１６は、基本ソフト、オペレーションシステムやＯＳと呼ばれる場合もある。
１．３  動作
（１）組み込み装置１１７の動作
ここでは、組み込み装置１１７の動作について、図４にて示すフローチャートを用いて説明する。
【００６９】
利用者の操作により、組み込み装置１１７の電源がＯＮになると、組み込み装置１１７の起動が行われる。
組み込み装置１１７が起動するとシステムＬＳＩ１００に電源が投入される（ステップＳ１００）。
システムＬＳＩ１００が起動すると、オペレーティングシステム１１６が起動される（ステップＳ１０１）。オペレーティングシステム１１６は、アプリケーション１１４や切替プログラム１１５を起動させる。本実施の形態において、切替プログラム１１５は、アプリケーション１１４から呼び出しを受けるまで、ＣＰＵ−１  １０２で、待機する（ステップＳ１０２）。
【００７０】
ここで、ユーザが図示していないボタン等を用いた入力などを行うことで、組み込み装置１１７に音楽の再生が指示されると、アプリケーション１１４は、音楽の再生に関連する保護すべき処理を行うために、切替プログラム１１５に保護プログラム１１１の呼び出しを依頼する（ステップＳ１０３）。
切替プログラム１１５は、アプリケーション１１４から依頼を受け付けると、切替機構１０５へ各ＣＰＵのレジスタ内容などの退避を指示する。
【００７１】
この指示を受けると切替機構１０５内のＣＰＵレジスタ退避／復帰部１２５が、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３内のレジスタ内容や、処理途中のデータを、外部メモリ１０１へ退避する（ステップＳ１０４）。
次に、切替プログラム１１５の制御により、切替機構１０５は、ＣＰＵ−１  １０２を保護モードへ遷移させ、ＣＰＵ−２  １０３を停止させる（ステップＳ１０５）。保護モードへの遷移の詳細に関しては、後述する。
【００７２】
続いて、保護モードに遷移したＣＰＵ−１  １０２が保護プログラム１１１を実行する（ステップＳ１０６）。以降、保護プログラム１１１は、必要に応じて他のプログラムと連携し、例えば、音楽データの再生回数のチェックを行い、再生可能ならば暗号化された音楽データを復号化するなどの処理を行う。このチェック処理や復号化処理については、本発明の本質ではないので、省略する。なお、この間、ＣＰＵ−２  １０３は、切替機構１０５からリセット信号が入力し続けられているため何の動作も行わない。
【００７３】
依頼された処理が終了すると、保護プログラム１１１は、切替機構１０５内の切替レジスタに「０」を書き込み、これを契機として、ＣＰＵ−１  １０２は、通常モードに遷移する（ステップＳ１０７）。保護モードから通常モードへ遷移させる処理の詳細に関しては、後述する。
通常モードに復帰したＣＰＵ−１  １０２は、切替プログラム１１５の実行を再開し、切替プログラム１１５は、切替機構１０５へ、２つのＣＰＵのレジスタ内容の復帰を指示する。
【００７４】
この指示を受け、切替機構１０５内のＣＰＵレジスタ退避／復帰部１２５は、外部メモリ１０１に退避している各ＣＰＵのレジスタ内容などを、それぞれ、ＣＰＵ−１  １０２及びＣＰＵ−２  １０３に復帰する（ステップＳ１０８）。
次に、切替プログラム１１５は、保護プログラム１１１による処理結果を、アプリケーション１１４に通知する（ステップＳ１０９）。
【００７５】
アプリケーション１１４は、通知された処理結果、利用者の操作に応じて、音楽の再生などの処理を続行する（ステップＳ１１０）。
（２）保護モードへの遷移動作
図４のステップＳ１０５にて行われる保護モードの遷移動作では、アプリケーション１１４から保護されるべき処理が要求されると、切替プログラム１１５は、切替機構１０５を制御して、ＣＰＵ−１  １０２を通常モードから保護モードに遷移させ、ＣＰＵ−２  １０３を停止させる。
【００７６】
以下、保護モードへの遷移に係るシステムＬＳＩ１００の詳細な動作について、図５にて示すフローチャートを用いて説明する。
切替プログラム１１５は、切替機構１０５内の切替レジスタ１２１に「１」を書き込む（ステップＳ１２１）。
切替レジスタ１２１に「１」が書き込まれたことを検出すると、切替機構１０５内の信号出力部１２２は、信号線１０８と信号線１０９を介して、ＣＰＵ−１  １０２とＣＰＵ−２  １０３にリセット信号を入力する（ステップＳ１２３）。
【００７７】
次に、切替機構１０５内のバンク切替部１１０は、通常モード割込ベクタ１２３に代えて、保護モード割込ベクタ１２４を有効にする（ステップＳ１２４）。
割込ベクタの変更（ステップＳ１２４）が終了すると、信号出力部１２２は、ＣＰＵ−１  １０２へのリセット信号を解除する（ステップＳ１２６）。この操作によって、ＣＰＵ−１  １０２は動作することが可能となる。
【００７８】
また、ＣＰＵ−１  １０２へのリセット信号の解除とともに、信号出力部１２２は、信号線１１８を介して、アクセス制限回路１０６へアクセス許可信号を出力する（ステップＳ１２７）。
アクセス許可信号を受け取ると、アクセス制限回路１０６は、内部バス１０７と内部メモリ１０４とを接続する（ステップＳ１２８）。
【００７９】
ＣＰＵ−１  １０２へのリセット信号が解除されたことにより、ＣＰＵ−１  １０２は、保護モード割込ベクタ１２４に含まれる、リセット割込を参照し、内部メモリ１０４に格納された保護プログラム１１１の実行を開始する（ステップＳ１２９）。
（３）通常モードへの遷移動作
図４のステップＳ１０７にて行われる通常モードへの遷移動作は、保護プログラム１１１による保護すべき処理が終了した場合や、ユーザからのキー入力などの保護プログラム１１１の実行よりも優先すべき通常モードの処理を行う場合など、保護プログラム１１１の処理を中断もしくは終了する必要が生じると、開始される。
【００８０】
以下、通常モードへの遷移に係るシステムＬＳＩ１００の動作について、図６にて示すフローチャートを用いて説明する。
ＣＰＵ−１  １０２により実行されている保護プログラム１１１は、切替機構１０５内の切替レジスタ１２１に「０」を書き込む（ステップＳ１３１）。
切替レジスタ１２１に「０」が書き込まれたことを検出すると、切替機構１０５内の信号出力部１２２は、ＣＰＵレジスタ退避／復帰部１２５へ、復帰アドレスの設定を指示し、ＣＰＵレジスタ退避／復帰部１２５は、記憶している復帰アドレスを、ＣＰＵ−１  １０２のプログラムカウンタに書き込む（ステップＳ１３２）。
【００８１】
次に、信号出力部１２２は、アクセス制限回路１０６へアクセス禁止信号を出力する（ステップＳ１３３）。
アクセス禁止信号を受けて、アクセス制限回路１０６は、内部バス１０７と内部メモリ１０４とを遮断する（ステップＳ１３４）。
また、切替機構１０５内のバンク切替部１１０は、保護モード割込ベクタ１２４に代えて通常モード割込ベクタ１２３を有効にする（ステップＳ１３６）。この操作によって、割込ベクタは、保護モード遷移前と同様の設定に戻る。
【００８２】
割込ベクタの変更（ステップＳ１３６）がなされた後に、信号出力部１２２は、ＣＰＵ−２  １０３へのリセット信号を解除する（ステップＳ１３７）。この操作によって、保護モード中には停止していたＣＰＵ−２  １０３が動作を再開する。
なお、音楽再生中にユーザからの入力があった場合など、保護モードで動作中の保護プログラム１１１の動作を中断させる形で復帰処理が行われる場合には、遅くともステップＳ１３２の処理が行われるまでに、ＣＰＵレジスタ退避／復帰部１２５は、ＣＰＵ−１  １０２のレジスタ内容や処理途中のデータなどを、内部メモリ１０４に格納する。その後、保護プログラム１１１の動作を再開する場合に、内部メモリ１０４に格納してあった、レジスタ内容や処理途中のデータをＣＰＵ−１  １０２に戻すことで、保護プログラム１１１の動作を再開させることができる。
【００８３】
１．４  まとめ
以上で述べたように、実施の形態１における組み込み装置１１７では、システムＬＳＩ１００内のＣＰＵ−１  １０２が保護モードに切り替わると、保護モードで動作するＣＰＵ−１  １０２のみを動作させ、他のＣＰＵであるＣＰＵ−２  １０３については、リセット信号を入力し続けることによって動作を停止させる。これにより、保護モードで動作しているＣＰＵ−１  １０２が内部メモリ１０４を使って、保護されるべき処理を行っている間には、ＣＰＵ−２  １０３はいかなる処理も実行できなくなるので、内部メモリ１０４内の保護プログラム１１１及び保護データ１１２を奪われる危険性を低減できる。すなわち、内部メモリ１０４内のデータなどの不正な取得や書き込みを目的とした不正なプログラムを外部メモリ１０１に書き込み、ＣＰＵ−２  １０３に実行させようとしても、ＣＰＵ−２  １０３は何の動作も行えない状態にあるので、マルチＣＰＵ環境下でも安全に保護プログラム１１１及び保護データ１１２の処理を行うことができる。
【００８４】
また、ＣＰＵ−２  １０３を停止させる方法として、リセット信号を送り続ける手法を取っているので、リセット信号を処理する機構さえ備えているＣＰＵであれば従来のＣＰＵに手を加えることなくシステムを構築することができ、比較的安価にシステムを実現することができる。
なお、上記の実施の形態では、ＣＰＵ−１  １０２のみが保護モードで動作するとしたがＣＰＵ−２  １０３のみが動作するとしても構わないことは言うまでもない。すなわち、保護モードに切り替わっているＣＰＵのみを動作可能とすればよいのであって、どちらのＣＰＵを動作させてどちらのＣＰＵを停止させるかは、その時々の組み込み装置１１７の処理状況に応じて随時変更してもよい。組み込み装置１１７の状況の具体例としては、通常モードから保護モードへの切り替えが開始した時点でどちらのＣＰＵに大きな負荷がかかっているかなどである。また、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とで異なるアーキテクチャや処理能力を持つ場合には、保護すべき処理を行う場合にどちらのＣＰＵの方が適しているかを判断して、より適していると判断された方のＣＰＵのみを動作させるとしても良い。また、このような場合、実行が中断された保護プログラム１１１を再開するＣＰＵも、ＣＰＵ−１  １０２である必要はなくなる。すなわち、ＣＰＵ−２  １０３がＣＰＵ−１  １０２と同等の機能を持ち、保護プログラム１１１をＣＰＵ−２  １０３でも実行することができる場合には、再開時にＣＰＵ−２  １０３に対して退避していたＣＰＵ−１  １０２の状態を復帰させ、ＣＰＵ−２  １０３が保護プログラム１１１の実行を再開するとしてもよい。
【００８５】
また、通常モードから保護モードへ遷移したＣＰＵと、保護モードが終了した時に通常モードの処理を再開するＣＰＵとは同一でなくてもよい。この変形例は、ＣＰＵレジスタ退避／復帰部１２５によって、外部メモリ１０１に退避したデータやレジスタの内容を、退避対象のＣＰＵとは異なるＣＰＵに復帰させることで実現できる。
もちろん、一方のＣＰＵを保護モードにおいて動作するＣＰＵとして予め定めておき、他方を保護モードでの動作を許可しないＣＰＵであると予め定めておくとしておいてもよい。
【００８６】
２．  実施の形態２
以下に、本発明の実施の形態２について図面を用いて説明する。なお、実施の形態１と同様の構成については説明を省略し、実施の形態２の特徴部分を中心に述べる。
２．１  構成
図７は、本発明の実施の形態２に関わる組み込み装置１９７のハードウェア構成を示すブロック図である。なお、実施の形態１と同様の構成要素については、同じ符号を付している。
【００８７】
実施の形態１の組み込み装置１１７と実施の形態２の組み込み装置１９７との構成の差異は以下の通りである。
実施の形態１の組み込み装置１１７では、ＣＰＵ−１  １０２とＣＰＵ−２  １０３とは内部バス１０７を介してアクセス制限回路に接続していたが、実施の形態２の組み込み装置１９７では、ＣＰＵ−１  １８２とＣＰＵ−２  １８３が、アクセス制限回路１８６に信号線１８９及び１８８を介して、直接接続している。
【００８８】
アクセス制限回路１８６は切替機構１８５からではなく、信号線１８８又は１８９を介して保護モードへ切り替わったＣＰＵからアクセス許可信号を受けて内部メモリ１０４と内部バス１０７とを接続する。
同様に、保護モードで動作しているＣＰＵによる保護プログラム１１１の実行が終了したとき、保護モードで動作しているＣＰＵからアクセス制限回路１８６へアクセス禁止信号が入力される。
【００８９】
また、切替機構１８５の内部構成は、切替機構１０５と同様であるが、信号出力部とアクセス制限回路１８６は直接は接続されておらず、信号出力部は、アクセス制限回路１８６へアクセス許可／禁止信号を出力しない。
２．２  動作
また、実施の形態１と実施の形態２の動作の違いは以下の通りである。
【００９０】
実施の形態１では、切替機構１０５からの制御によって、アクセス制限回路１０６が内部メモリ１０４へのアクセス許可、禁止を実現していた。
それに対して、実施の形態２では、保護モードに遷移したＣＰＵからの制御によって、アクセス制限回路１８６が内部メモリ１０４へのアクセス許可、禁止を実現する。
例えば、ＣＰＵ−１  １８２が保護モードに遷移した場合、ＣＰＵ−１  １８２は、アクセス制限回路１８６にアクセス許可信号を出力する。アクセス制限回路１８６は、アクセス許可信号を受け取ると、内部メモリ１０４と内部バス１０７とを接続する。ＣＰＵ−１  １８２が保護モードから通常モードに遷移すると、ＣＰＵ−１  １８２は、アクセス制限回路１８６にアクセス禁止信号を出力する。アクセス制限回路１８６は、アクセス禁止信号を受け取ると、内部メモリ１０４と内部バス１０７との接続を遮断する。
【００９１】
また、ＣＰＵ−２  １８３が保護モードに遷移した場合には、ＣＰＵ−２  １８３は、アクセス制限回路１８６にアクセス許可信号を出力する。アクセス制限回路１８６は、アクセス許可信号を受け取ると、内部メモリ１０４と内部バス１０７とを接続する。ＣＰＵ−２  １８３が保護モードから通常モードに遷移すると、ＣＰＵ−２  １８３は、アクセス制限回路１８６にアクセス禁止信号を出力する。アクセス制限回路１８６は、アクセス禁止信号を受け取ると、内部メモリ１０４と内部バス１０７との接続を遮断する。
【００９２】
上記の差異以外は、実施の形態１と実施の形態２は同一であるため、説明は省略する。
３．実施の形態３
以下に、本発明の実施の形態３について図面を用いて説明する。なお、実施の形態１又は２と同様の構成については説明を省略し、実施の形態３の特徴部分を中心に述べる。
３．１  概要
本発明の実施の形態３に関わる組み込み装置２１７は、図８にて示すように、システムＬＳＩ２００と、外部メモリ１０１とを搭載している。システムＬＳＩ２００は、プロセッサ２０１と、ＣＰＵ−２  ２０３と、アクセス制限回路２０６と、内部メモリ１０４とを含んでおり、プロセッサ２０１は、ＣＰＵ−１  ２０２と切替機構２０５とを含んでいる。
【００９３】
なお、実施の形態１と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ２０１、ＣＰＵ−２  ２０３、切替機構２０５、アクセス制限回路２０６が実施の形態１とは異なる。
本実施の形態では、各ＣＰＵは自身を識別する識別子（以下、ＩＤと呼ぶ）を記憶している。
【００９４】
アクセス制限回路２０６は、システムＬＳＩ２００が保護モードで動作している間、保護モードにて動作しているＣＰＵのＩＤを記憶しており、記憶しているＩＤを用いて、内部メモリ１０４へのアクセスを要求するＣＰＵが保護モードで動作しているＣＰＵであるか否かを判断し、内部メモリ１０４へのアクセスを要求するＣＰＵが保護モードで動作していると判断する場合にのみ、アクセスの要求元のＣＰＵに対してアクセスを許可する。
【００９５】
なお、説明の便宜上、ここでは、ＣＰＵ−１  ２０２のみが保護モードに遷移することができるものとして説明する。
また、実施の形態１では、内部バス１０７と内部メモリ１０４との間は、保護モードによる動作中のみアクセス制限回路１０６を介して接続されていたが、本実施の形態では、内部バス１０７と内部メモリ１０４との間は、アクセス制限回路２０６を介して常時接続されているものとする。
【００９６】
３．２  構成
以下、組み込み装置２１７に含まれる構成要素うち、ＣＰＵ−１  ２０２、切替機構２０５、ＣＰＵ−２  ２０３、及びアクセス制限回路２０６について説明する。
（１）ＣＰＵ−１  ２０２
ＣＰＵ−１  ２０２は、自身に固有のＩＤ「ＩＤ１」２０４を、記憶している。ＩＤ２０４は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
【００９７】
ＣＰＵ−１  ２０２は、内部メモリ１０４へアクセスしようとする際には、記憶しているＩＤ「ＩＤ１」２０４を読み出し、アクセス要求と共に読み出した「ＩＤ１」をアクセス制限回路２０６へ出力する。
（２）切替機構２０５
切替機構２０５は、切替プログラム１１５からの要求に応じて、ＣＰＵ−１  ２０２を保護モードに切り替える。
【００９８】
切替機構２０５の内部構成は実施の形態１において説明した切替機構１０５とほぼ同様であるが、信号出力部は、ＣＰＵ−１  ２０２を示す「ＩＤ１」を含むアクセス許可信号及びアクセス禁止信号を、内部バス１０７を介して、アクセス制限回路２０６へ出力する。
また、実施の形態１の切替機構１０５とは異なり、ＣＰＵ−１  ２０２が通常モードから保護モードへ遷移する際、及び、保護モードで動作している間、ＣＰＵ−２  ２０３へリセット信号を出力しない。
【００９９】
また、ＣＰＵレジスタ退避／復帰部は、ＣＰＵ−１  ２０２のレジスタ内容のみを退避及び復帰し、ＣＰＵ−２  ２０３のレジスタ内容の退避及び復帰は行わない。
また、バンク切替部は、ＣＰＵごとに何れの割込ベクタを用いるかを管理する。
具体的には、バンク切替部は、ＣＰＵ−２  ２０３については、常に、通常モード割込ベクタを使用するように設定する。ＣＰＵ−１  ２０１については、保護モードに遷移する際に、保護モード割込ベクタを使用するように設定し、通常モードに遷移する際に、通常モード割込ベクタを使用するように設定する。
【０１００】
（３）ＣＰＵ−２  ２０３
ＣＰＵ−２  ２０３は、自身に固有のＩＤ「ＩＤ２」２０７を記憶している。ＩＤ２０７は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
ＣＰＵ−２  ２０３は、内部メモリ１０４へのアクセス要求を送信する際に、アクセス制限回路２０６へ、自身のＩＤ「ＩＤ２」も送信する。
【０１０１】
ＣＰＵ−２  ２０３は、常に通常モードで動作しているため、切替機構２０５の保持する２つの割込ベクタのうち通常モード割込ベクタを使用する。
また、ＣＰＵ−１  ２０２が保護モードで動作中であっても、リセット信号を入力されないので、ＣＰＵ−２  ２０３は、通常モードで動作することができる。
（４）アクセス制限回路２０６
アクセス制限回路２０６は、内部にメモリ２０８を含んで構成される。
【０１０２】
アクセス制限回路２０６は、切替機構２０５からＩＤを含むアクセス許可信号及びアクセス禁止信号を受け取る。
アクセス許可信号を受け取った場合、アクセス許可信号に含まれるＩＤをメモリ２０８に記憶する。なお、本実施の形態では、アクセス制限回路２０６は、メモリ２０８にＣＰＵ−１  ２０２を示す「ＩＤ１」を記憶する。
【０１０３】
アクセス禁止信号を受け取った場合、アクセス制限回路２０６は、アクセス禁止信号に含まれるＩＤをメモリ２０８から削除する。
また、アクセス制限回路２０６は、ＣＰＵ−１  ２０２又はＣＰＵ−２  ２０３から当該ＣＰＵのＩＤと共にアクセス要求を受け取る。
次に、アクセス制限回路２０６は、受け取ったアクセス要求と共に送られてきたＩＤがメモリ２０８の記憶しているＩＤと一致するか否かを確認する。
【０１０４】
確認の結果、ＩＤが一致した場合には、アクセス制限回路２０６は、そのアクセス要求は保護モードで動作しているＣＰＵから出力されたものであると分かるので、内部メモリ１０４へのアクセスを許可する。
ＩＤが一致しなかった場合及びメモリ２０８にいずれのＩＤも記憶されていない場合は、アクセス制限回路２０６は、受け取ったアクセス要求が保護モードで動作していないＣＰＵによるアクセス要求であるとして、アクセス要求を拒否する。
【０１０５】
３．３  動作
以下に、組み込み装置２１７の動作について、実施の形態１と比較しながら説明する。
アプリケーション１１４からの呼び出されると切替プログラムは、切替機構２０５に、レジスタ内容の退避を指示する。
この指示を受けて、切替機構２０５は、ＣＰＵ−１  ２０２のレジスタ内容のみを退避する。
【０１０６】
実施の形態１では、切替機構１０５からの制御によって、アクセス制限回路１０６が、内部バス１０７と内部メモリ１０４とを接続又は遮断することで、内部メモリ１０４へのアクセスを許可又は禁止を実現していた。
それに対して、実施の形態３では、ＣＰＵ−１  ２０２を保護モードへ遷移させる際に、切替機構２０５は、ＣＰＵ−１  ２０２を示すＩＤ「ＩＤ１」２０４を読み出し、読み出した「ＩＤ１」を含むアクセス許可信号を、アクセス制限回路２０６へ出力する。
【０１０７】
アクセス制限回路２０６は、アクセス許可信号を切替機構２０５から受け取ると、受け取ったアクセス許可信号に含まれるＩＤ「ＩＤ１」を、メモリ２０８に記憶する。
次に、切替機構２０５は、実施の形態１とは異なり、ＣＰＵ−１  ２０２のみに所定時間リセット信号を入力し、ＣＰＵ−２  ２０３へリセット信号を出力しない。
次に切替機構２０５は、ＣＰＵ−１のリセットベクタを保護モードリセットベクタに設定する。これにより、ＣＰＵ−１  ２０２の保護モードへの状態遷移は完了する。
【０１０８】
各ＣＰＵは、動作中において、内部メモリ１０４へアクセス使用とする際には、先ず、自身の保持するＩＤを読み出し、読み出したＩＤと共にアクセス要求を、内部バス１０７を介して、アクセス制限回路２０６へ通知する。
アクセス制限回路２０６は、アクセス要求と共に受け取ったＩＤと、メモリ２０８に記憶している「ＩＤ１」とを比較する。
【０１０９】
アクセス制限回路２０６は、両者が一致する場合、要求元のＣＰＵに対してアクセスを許可し、一致しない場合には、要求元のＣＰＵに対してアクセスを拒否する。
より具体的には、保護モードで動作しているＣＰＵ−１  ２０２が内部メモリ１０４にアクセスを行おうとする場合、ＣＰＵ−１  ２０２は、アクセス要求と共にＣＰＵ−１  ２０２を示すＩＤ「ＩＤ１」２０４もアクセス制限回路２０６に通知される。アクセス制限回路２０６は、メモリ２０８に記憶されている「ＩＤ１」とアクセス要求と共に届いた「ＩＤ１」とを比較し、両者が一致することを確認する。これにより、アクセス要求を許可し、ＣＰＵ−１  ２０２は、内部メモリ１０４へアクセスする。
【０１１０】
一方、ＣＰＵ−２  ２０３が内部メモリ１０４にアクセスを行おうとする場合、ＣＰＵ−２  ２０３は、アクセス要求と共にＣＰＵ−２  ２０３を示すＩＤ「ＩＤ２」２０７も内部バス１０７を介して、アクセス制限回路２０６に通知される。アクセス制限回路２０６は、アクセス要求と共に受け取った「ＩＤ２」とメモリ２０８の記憶している「ＩＤ１」を比較し、両者が一致しないことを確認する。これにより、アクセス要求を却下する。
【０１１１】
ＣＰＵ−１  ２０２は、保護プログラム１１１を実行し、保護すべき処理を行う。保護すべき処理が終了すると、保護プログラム１１１は、切替機構２０５内の切替レジスタに「０」を書き込む。これを契機として、ＣＰＵ−１  ２０２は、保護モードから通常モードへ遷移する。
通常モードへの遷移の処理中において、切替機構２０５は、ＣＰＵ−１  ２０２のＩＤ「ＩＤ１」２０４を含むアクセス禁止信号をアクセス制限回路２０６へ出力する。
【０１１２】
アクセス制限回路２０６は、アクセス禁止信号を受け取り、受け取ったアクセス禁止信号に含まれる「ＩＤ１」をメモリ２０８から削除する。
以後、アクセス制限回路２０６内のメモリには、いずれのＩＤも記憶されていないため、アクセス制限回路２０６は、何れのＣＰＵからのアクセス要求も却下する。
３．４  まとめ
実施の形態３では、実施の形態１や２と同様、保護モードに切り替わっていない（もしくは切り替わることのできない）ＣＰＵによる内部メモリ１０４へのアクセスを制限することができるので、保護プログラム１１１や保護データ１１２が不正にアクセスされる危険性を低減することができる。
【０１１３】
さらに、実施の形態３では、ＣＰＵ−２  ２０３は、ＣＰＵ−１  ２０２が保護モードで動作中であっても停止しないので、ＣＰＵ−１  ２０２が保護プログラムや保護データを処理している最中であっても、通常モード用のプログラムやデータ（保護を必要としないプログラムやデータ）を処理するＣＰＵとして動作する事が可能である。これにより、システム全体の処理を高速化することができる。
【０１１４】
上記の差異以外は、実施の形態１と実施の形態３は同一であるため、説明は省略する。
なお、上記の実施の形態３では、切替機構２０５は、ＩＤを含むアクセス許可信号及びアクセス禁止信号を、内部バス１０７を介して、アクセス制限回路２０６へ出力するとしたが、これに限定されない。切替機構２０５は、ＩＤを含むアクセス許可信号及びアクセス禁止信号を、信号線を介してアクセス制限回路２０６へ出力するとしてもよい。
【０１１５】
また、上記の実施の形態３では、内部バス１０７と内部メモリ１０４との間は、アクセス制限回路２２７を介して常時接続されているものとしたが、これに限定されない。実施の形態１と同様に、アクセス制限回路２２７は、切替機構から受け取ったアクセス許可／禁止信号に基づいて、内部バス１０７と内部メモリ１０４との間を接続／遮断を行ってもよい。
【０１１６】
また、保護モードで動作できるＣＰＵが１つしかない場合は、切替機構２０５に予めそのＣＰＵのＩＤを格納しておいてもよい。
この場合、アクセス許可信号やアクセス禁止信号を受け取る度にＩＤを格納したり削除したりするのではなく、アクセス許可信号を受け取った後、アクセス禁止信号を受け取るまでの間は、そのＩＤに対応するＣＰＵによるアクセスを許可するようにしてもよい。
【０１１７】
４．  実施の形態４
以下に、本発明の実施の形態４について図面を用いて説明する。なお、実施の形態１〜３と同様の構成については説明を省略し、実施の形態４の特徴部分を中心に述べる。
４．１  概要
本発明の実施の形態４に関わる組み込み装置２３７は、図９にて示すように、システムＬＳＩ２２０と、外部メモリ１０１とを搭載している。システムＬＳＩ２２０は、プロセッサ１  ２２１と、プロセッサ２  ２２８と、アクセス制限回路２２７と、内部メモリ１０４とを含んでいる。
【０１１８】
なお、実施の形態３と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ１  ２２１、プロセッサ２  ２２８及びアクセス制限回路２２７が実施の形態３とは異なる。
各プロセッサは、当該プロセッサにおける動作モードを示すモード情報を記憶しており、内部メモリ１０４へアクセス要求を行う際に、記憶しているモード情報をもアクセス制限回路２２７へ出力する。
【０１１９】
アクセス制限回路２２７は、アクセス要求と共に受け取ったモード情報により、アクセスを許可するか否かを決定する。
なお、本実施の形態では、実施の形態３と同様に、内部バス１０７と内部メモリ１０４とは、アクセス制限回路２２７を介して常時接続されているものとする。
４．２構成
以下、組み込み装置２３７に含まれる構成要素のうちプロセッサ１  ２２１、プロセッサ２  ２２８及びアクセス制限回路２２７について説明する。
【０１２０】
（１）プロセッサ１  ２２１及びプロセッサ２  ２２８
プロセッサ１  ２２１とプロセッサ２  ２２８の構成は同様であるのでここでは、プロセッサ１  ２２１についてのみ説明する。
図９に示すように、プロセッサ１  ２２１は、ＣＰＵ−１  ２２２と切替機構２２５とを含んで構成される。
【０１２１】
（１−１）ＣＰＵ−１  ２２２
ＣＰＵ−１  ２２２は、ステータスレジスタ２２４を含む。ステータスレジスタ２２４は、ＣＰＵ−１  ２２２の現在の動作モードを示すモード情報を記憶している。具体的に、モード情報「１」は保護モードを示し、モード情報「０」は通常モードを示す。
内部メモリ１０４へアクセス使用とする場合、ＣＰＵ−１  ２２２は、ステータスレジスタ２２４の記憶しているモード情報を読み出し、内部バス１０７を介して、アクセス要求と共に読み出したモード情報をアクセス制限回路２２７へ出力する。
【０１２２】
なお、ＣＰＵ−１  ２２２は、ステータスレジスタ２２４にモード情報を記憶しているとしたが、アクセスの度に、切替機構内の切替レジスタを参照してモード情報を生成し、アクセス要求と共に出力しても良い。
（１−２）切替機構２２５
切替機構２２５は、ＣＰＵ−１  ２２２のモード切替のみを実行する。切替機構２２５内部の詳細な構成は、実施の形態１において説明した切替機構２２５とほぼ同様であるが、信号出力部は、ＣＰＵ−１  ２２２のみへリセット信号を出力する。
【０１２３】
また、信号出力部は、アクセス制限回路２２７へのアクセス禁止信号、アクセス許可信号の出力は行わない。
また、バンク切替部は、ＣＰＵ−１  ２２２の参照する割込ベクタのみを管理し、ＣＰＵ−１  ２２２のみが２つの割込ベクタのうち有効な一方を参照する。
また、切替機構２２５内の信号出力部は、ＣＰＵ−１  ２２２が保護モードに遷移すると、ＣＰＵ−１  ２２２内のステータスレジスタ２２４にモード情報「１」を書き込む。
【０１２４】
逆に、ＣＰＵ−１  ２２２が保護モードから通常モードへ遷移すると、信号出力部は、ステータスレジスタ２２４にモード情報「０」を書き込む。
（２）アクセス制限回路２２７
アクセス制限回路２２７は、ＣＰＵ−１  ２２２またはＣＰＵ−２  ２２３からのアクセス要求とモード情報とを受け取る。
【０１２５】
これらを受け取ると、受け取ったモード情報が保護モード及び通常モードの何れを示しているかを確認する。
受け取ったモード情報が、保護モードを示す「１」である場合、アクセス制限回路２２７は、内部メモリ１０４へのアクセスを許可する。逆に、受け取ったモード情報が、通常モードを示す「０」である場合は、アクセス要求を拒否する。
【０１２６】
４．３  動作
続いて、実施の形態４の組み込み装置２３７の動作について、実施の形態３と比較しながら説明する。
実施の形態３では、切替機構が保護モードに遷移したＣＰＵのＩＤを含むアクセス許可信号及びアクセス禁止信号をアクセス制限回路に事前に出力し、アクセス制限回路は、切替機構から受け取ったアクセス許可信号及びアクセス禁止信号に含まれるＩＤを基に、保護モードで動作しているＣＰＵのＩＤを記憶していた。
【０１２７】
また、実施の形態３では、アクセス制限回路は、記憶しているＩＤを基に、各ＣＰＵからのアクセス要求を許可又は禁止していた。
それに対して、実施の形態４では、プロセッサ１に含まれる切替機構２２５は、ＣＰＵ−１  ２２２の動作モードを切り替えるが、その切り替えに当たって他の構成部へ信号を出力したりはしない。その代わり、切替機構２２５は、ＣＰＵ−２２２内部のステータスレジスタ２２４にモード情報を書き込む。
【０１２８】
プロセッサ１に含まれるＣＰＵ−１  ２２２は、内部メモリ１０４へアクセスする場合には、ステータスレジスタ２２４からモード情報を読み出し、アクセス要求と共に読み出したモード情報をアクセス制限回路２２７に出力する。
アクセス制限回路２２７は、ＣＰＵ−１  ２２２からアクセス要求と共にモード情報を受け取る。受け取ったモード情報が「１」であれば、内部メモリ１０４へのアクセスを許可し、「０」であればアクセスを拒否する。
【０１２９】
プロセッサ２の動作もプロセッサ１と同様であるので、ここでは説明を省略する。
４．４  まとめ
実施の形態４でも他の実施の形態と同様、保護モードに切り替わっていない（もしくは切り替わることのできない）ＣＰＵによる内部メモリ１０４へのアクセスを制限することができるので、保護プログラム１１１や保護データ１１２が不正にアクセスされる危険性を低減することができる。
【０１３０】
さらに、ＣＰＵ−２  ２２３はＣＰＵ−１  ２２２とは独立に保護モードに遷移する事が可能である。そのため、実施の形態４では、ＣＰＵ−１  ２２２とＣＰＵ−２  ２２３が同時に保護モードで処理を行うことにより、保護すべき処理をマルチＣＰＵ化することができる。すなわち、保護モードにおける処理についても高速化する事が可能である。
上記の差異以外は、実施の形態３と実施の形態４は同一であるため、説明は省略する。
【０１３１】
なお、上記の実施の形態４では、内部バス１０７と内部メモリ１０４との間は、アクセス制限回路２２７を介して常時接続されているものとしたが、これに限定されない。実施の形態１と同様に、通常モードから保護モードへの切り替えを行った切替機構は、アクセス許可／禁止信号をアクセス制限回路２２７へ出力し、アクセス制限回路２２７は、切替機構から受け取ったアクセス許可／禁止信号に基づいて、内部バス１０７と内部メモリ１０４との間を接続／遮断を行ってもよい。
【０１３２】
５．  その他の変形例
なお、本発明を上記の実施の形態１〜４に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）上記の実施の形態では、切替プログラムは、各ＣＰＵの保護モードへの遷移を常に実行していたが、これに限られるものではない。例えば、アプリケーションからの依頼の優先度に従って、保護モードに遷移しない制御を行なってもよい。
【０１３３】
より具体的な例を示すと、ユーザの操作によるデータの入出力中には、保護モードへの遷移を開始しない場合が考えられる。
また、ＣＰＵ−１で実行中のプログラムとＣＰＵ−２で実行中のプログラムの優先度を比較し、比較結果に応じて保護モードへ切り替える／切り替えないの制御を行っても良い。例えば、ＣＰＵ−１で通常モード用のプログラム（保護を必要としないプログラム）であるが重要なプログラムを実行中である場合に保護モードへ切り替えを行うと、ＣＰＵ−１が保護モード用の処理に占有されてしまい、ＣＰＵ−１で実行中の通常モード用の重要なプログラムの処理が中断されてしまう。
【０１３４】
ここで、この変形例を適応すると、切替プログラムは、ＣＰＵ−１で実行中のプログラムの優先度が低い場合は、上記の実施の形態同様に、ＣＰＵ−１を保護モードに遷移させる制御を開始する。
ＣＰＵ−１で実行中のプログラムの優先度が高い場合、切替プログラムは、優先度の高いプログラムの実行を優先し、このプログラムの処理が終了した後、ＣＰＵ−１を保護モードに遷移させる制御を開始する。
【０１３５】
（２）上記の実施の形態では、ＣＰＵ−１が保護モードで保護プログラムを実行中に、割込などの中断が生じた場合に、ＣＰＵ−１の状態を内部メモリへと退避させ、また、内部メモリから復帰させる操作を、どのようにして行うかを述べていなかったが、例えば、保護プログラムによって実現されるとしてよい。
若しくは、割込の種類に応じて、保護モード割込ベクタに含まれるアドレスの示す領域に格納されているハンドラ（例えば、内部メモリに格納された中断プログラム）により実現されるとしてもよい。
【０１３６】
（３）上記の実施の形態１及び２において、切替プログラムが、ＣＰＵ−２をリセット信号によって停止する前に、図示していない周辺回路からのＣＰＵ−２への割り込みの通知先をＣＰＵ−１へ変更し、また、ＣＰＵ−２をリセット状態から解除する前に変更前の状態に周辺回路からの割り込みの通知先を戻すとしてもよい。このようにすることで、ＣＰＵ−２が停止している間にＣＰＵ−２に向けられた割り込みが発生した場合、この割り込みの処理をＣＰＵ−１が代わりに行うことができる。なお、上記の割り込みの通知先を変更する処理は、切替プログラムが行っても良いし、切替プログラム以外のプログラム、例えば、保護プログラムが行ってもよい。
【０１３７】
（４）上記の実施の形態２において、ＣＰＵ−１  １８２およびＣＰＵ−２  １８３からのアクセス許可を示す信号の通知は、命令単位で行われてもよいし、各ＣＰＵが保護モードへ遷移した直後に「常にアクセス許可を与える」旨を通知して、保護モードから通常モードへ遷移する際に「以後は常にアクセス禁止である」旨を通知するとしてもよい。
さらに、プログラム単位でアクセス許可／禁止を通知したりしてもよい。すなわち、ＣＰＵのモード遷移のタイミングと異なるタイミングで許可／禁止の通知を行ってもよい。
【０１３８】
（５）上述の実施の形態では、ＣＰＵ−１とＣＰＵ−２とが異なる命令コードを実行可能なＣＰＵであってもよい。この場合、保護モードにおいて動作するＣＰＵとしては、保護プログラムの実行が可能なＣＰＵが選ばれる。
（６）上記の実施の形態では、切替プログラムはＣＰＵ−１で動作していたが、ＣＰＵ−２で動作してもよい。さらに、上記の実施の形態では、切替プログラムと保護プログラムが同一のＣＰＵで動作していたが、異なるＣＰＵで動作するとしてもよい。
【０１３９】
（７）上記の実施の形態では、保護プログラムの起動を、組み込み装置１１７の起動直後に行っているが、これに限られるものではない。例えば、保護プログラムを実行する直前に起動してもよい。
（８）上記の実施の形態１では、ステップＳ１３２において、切替プログラム１１５の復帰アドレスをＣＰＵ−１のプログラムカウンタに設定していたが、これに限られるものではない。例えば、切替機構が復帰アドレスを格納するレジスタを備えており、切替機構がリセット信号を出力する前に、切替プログラムが、そのレジスタに自身の復帰アドレスを書き込むとしてもよい。
【０１４０】
（９）上記実施の形態では、２つのＣＰＵを搭載したシステムＬＳＩを用いて説明したが、これに限られるものでない。３つ以上のＣＰＵを搭載したシステムＬＳＩであってもよい。その場合に、保護モードに遷移することができるＣＰＵが複数あってもよい。
保護モードに遷移することができるＣＰＵが複数ある場合、同時に複数のＣＰＵが保護モードで動作できる構成であっても良いし、１個のＣＰＵが保護モードで動作している間、他のＣＰＵは保護モードに遷移できない構成であってもよい。
【０１４１】
例えば、保護プログラムの大きさが小さく、１つのＣＰＵで十分に動作させることが可能である場合には、１つのＣＰＵが保護モードで動作すれば十分である。この場合、実施の形態１または２のように他のＣＰＵを停止させれば、消費電力を節減できる。このときに動作を停止させるＣＰＵには、保護モードに遷移可能なＣＰＵも含まれてもよい。また、保護モードで動作するＣＰＵを１つのＣＰＵのみとした場合には、従来の１つのＣＰＵ向けに開発されたプログラム資産を、そのまま利用することができる。
【０１４２】
逆に、保護プログラムが大きく、負荷の高い処理を実行しなければならない場合は、同時に複数のＣＰＵを保護モードで動作させられることで、保護プログラムによる処理を高速化することができる。
また、実施の形態３または４のように保護プログラムを実行しているＣＰＵ以外のＣＰＵが通常モード用の処理を実行できる場合には、通常モード用の処理をより多くのＣＰＵで処理させることで、システム全体の処理性能を向上させることができる。
【０１４３】
一方、保護モードで動作するＣＰＵを１つのみとする場合には、従来の１つのＣＰＵ向けに開発されたプログラム資産を、そのまま利用することができる。
（１０）上記実施の形態１および２では、リセット信号を投入し続けることによってＣＰＵ−２を停止していたが、他のＣＰＵが保護モードで動作している間は停止するような特殊なＣＰＵを用いて本発明を実現しても良いことは言うまでもない。例えば、このような特殊なＣＰＵをＣＰＵ−２として用いる場合、切替機構からＣＰＵ−２に対して、ＣＰＵ−１の現在のモードが通常モードであるか保護モードであるかの通知を送り、その通知を受けてＣＰＵ−２は停止したり動作を再開したりする。
【０１４４】
また、ＣＰＵを停止させる方法もリセット信号を投入し続けるものに限らない。例えば、ＣＰＵに対するクロック信号を停止したり、電源供給を遮断したりするなどでも同様の効果が得られる。さらに、ＣＰＵごとに割込ベクタを設定できる場合には、ＣＰＵ−１が保護モードへ遷移する時に、ＣＰＵ−２の割込ベクタに含まれるリセット割込を、何の処理も行わない命令を記述したアドレスに書替えることなどによってもＣＰＵ−２を停止させることができる。
【０１４５】
（１１）上記の実施の形態４では、すべてのＣＰＵが、自身の動作モードを通知するとしたが、一部のＣＰＵについては通知しなくても良い。この場合、アクセス制限回路２２７は、モード情報とアクセス要求とを受け取ると、受け取ったモード情報を基にアクセスの可否の判定を行うが、モード情報を伴わないアクセス要求は、無条件に拒否する。
この構成では、モード情報を保持及び通知する機能を持つＣＰＵと、そのような特殊な機能を持たない通常のＣＰＵとを混在させてシステムを構築することができるので、全てのＣＰＵにモード情報を通知する機能を持たせるよりも安価に本発明を実施できる。
【０１４６】
また、ＣＰＵは、動作モードが保護モードである場合にのみ、モード情報を通知するとしても良い。この場合、アクセス制限回路２２７は、モード情報と共に受け取ったアクセス要求のみを受け付ける。
（１２）上記の実施の形態では、通常モードで動作するプログラムおよびデータは、外部メモリ１０１に格納されていたが、これに限られるものではない。暗号化技術等を用いて、保護プログラム及び保護データに通常モードのＣＰＵがアクセスできないような処理が施されていれば、通常モードのＣＰＵが内部メモリを用いて通常モードで動作するプログラムおよびデータに対する処理を行っても構わない。
【０１４７】
（１３）上記の実施の形態３では、システムＬＳＩ２００は、ＣＰＵ−１  ２０２に対応する切替機構２０５を備えていたが、ＣＰＵ−２  ２０３に対応する切替機構も別途備えるとしてもよい。この場合、ＣＰＵが保護モードに遷移すると、対応する切替機構から保護モードに遷移したＣＰＵのＩＤを含むアクセス許可通知がアクセス制限回路２０６に出力される。ＣＰＵ−１  ２０２とＣＰＵ−２  ２０３との両方が保護モードに遷移した場合、アクセス制限回路２０６は、内部のメモリ２０８に、ＣＰＵ−１  ２０２とＣＰＵ−２  ２０３との両方のＩＤを記憶しておき、アクセス要求とともに通知されたＣＰＵのＩＤが、記憶しているＩＤのいずれかに一致する場合には内部メモリ１０４へのアクセスを許可する。このようにすると、実施の形態３においても、保護モード用の処理をマルチＣＰＵ化できるので、システム全体の高速化を図ることができる。
【０１４８】
また、この場合、各切替機構は、対応するＣＰＵの割込ベクタの管理のみを行えばよい。
（１４）また、上記の実施の形態３および４では、切替機構はＣＰＵのプロセッサ内部にあるものとしたが、これに限られるものではなく、例えば、専用線を介して各ＣＰＵに接続されているものとしてもよい。
【０１４９】
（１５）上記の実施の形態１〜４及び変形例において、組み込み装置は、音楽データ等の再生が可能な携帯可能な民生機器であるものとして説明を行ったが、これに限られるものではない。
例えば、上記の実施の形態と同様の保護プログラムの実行方法を持ったＤＶＤプレイヤー等の動画再生装置等であってもよいし、パーソナルコンピュータ、携帯電話、デジタルカメラ、ゲーム機など、様々な機器であることが考えられる。すなわち、本発明の組み込み装置は、保護されるべきプログラム又は保護されるべきデータを取り扱う処理装置であれば、どのようなものであってもよい。
【０１５０】
（１６）上記の実施の形態では、保護モード割込ベクタに含まれるリセット割込は、内部メモリ上の保護プログラムのアドレスを示していたが、これに限られるものではない。例えば、組み込み装置は、ＣＰＵのモードの切り替えが起こるたびに、保護プログラム及び保護データが内部メモリから消去されるようなシステムであって、保護プログラム及び保護データは、図示されていないＲＯＭなどに安全に記憶されているとする。
【０１５１】
この場合、保護モード割込ベクタに含まれるリセット割込は、保護プログラム及び保護データを前述のＲＯＭ等から内部メモリへと読み込むプログラムの記憶されているアドレスを指す。
また、上記の実施の形態では、バンク切替部の保持する保護モード割込ベクタに含まれるリセット割込を用いて、保護モードへの遷移時に保護プログラムを実行するよう制御していた。しかし、上記の制御に替えて、例えば、いずれかのＣＰＵが保護モードで動作している最中には、保護モードで動作しているＣＰＵからの外部メモリへのアクセス要求を却下するような機構を設けてもよい。例えば、外部メモリと内部バス間を接続したり、遮断したりするスイッチ機構を設けることで実現できる。このとき、切替機構の信号出力部は、切替レジスタに「１」が書き込まれると、外部メモリと内部バス間を遮断する旨の遮断信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記遮断信号を受け取ると、外部メモリと内部バス間を遮断する。また、信号出力部は、切替レジスタに「０」が書き込まれると、外部メモリと内部バス間を接続する旨の接続信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記接続信号を受け取ると、外部メモリと内部バス間を接続する。
【０１５２】
この場合、ＣＰＵがアクセスできる範囲がシステムＬＳＩ内部の記録領域に確実に限定される。従って、外部メモリに不正なプログラムが存在したとしても、保護モードのＣＰＵにより実行されることはないので、不正なプログラムにより保護プログラム及び保護データが抜き取られたり改竄されたりする危険性をより低減することができる。
さらに、ＣＰＵ自体に、切替機構からの信号線を介して保護モードへの切り替えを指示する切り替え信号を受信する構成を持たせ、この切り替え信号を受信すると、システムＬＳＩ内部（つまり内部メモリ）に記録されたプログラムを起動または実行するように構成することで、ＣＰＵの保護モードを実現しても構わない。例えば、切替機構は、モードの切り替え対象となるＣＰＵに対してのみ当該切り替え信号を出力し、他のＣＰＵに対しては停止するように制御する（保護モードの間は当該他のＣＰＵに対してリセット信号を出力し続ける）。
【０１５３】
すなわち、保護モードへ遷移したＣＰＵのみが、保護プログラム及び保護データにアクセスし、それによって保護プログラム及び保護データを改竄や盗聴から保護しつつ、秘匿されるべき処理を実行する方法であれば、どのような方法で保護モードを実現しても構わない。
（１７）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に実装しなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
【０１５４】
（１８）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でハードウェアとして実装してもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。このような実装は、特に退避処理や復帰処理等、ユーザの利便性のために高速化が求められる処理などにおいて有用である。
（１９）システムＬＳＩは集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもあるが、上記の各実施のシステムＬＳＩを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１５５】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（２０）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙＤｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
【０１５６】
（２１）また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと改竄から保護されたプログラムを用いた処理を行う保護モードとを有する集積回路であって、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、少なくとも１つの実行手段に前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えることを特徴とする集積回路でもある。
【０１５７】
このような構成により、本発明に関する集積回路は、複数の実行手段を用いてマルチプロセス処理を行うことができる。さらに、集積回路が保護モードにある場合に保護されたプログラムを実行させた実行手段のみに保護されたプログラム等を格納している内部メモリへのアクセスを許可するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
【０１５８】
（２２）変形例（２１）の集積回路において、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへの切り替えの際に、前記少なくとも１つの実行手段に前記保護されたプログラムを実行させ、かつ、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段を除いた実行手段を停止させる切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
【０１５９】
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行させていない実行手段を停止するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
（２３）前記変形例（２２）の集積回路において、切り替え部は、さらに、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段以外の実行手段に対して、前記実行手段をリセット状態にするリセット信号を通知することで、前記実行手段を停止させるとしてもよい。
【０１６０】
（２４）また、変形例（２３）の集積回路において、前記切り替え部は、さらに、前記リセット信号を前記実行手段に通知し続けることで前記実行手段を停止させるとしてもよい。
このような構成により、本発明に関する集積回路は、リセット信号のみを利用して実行手段を停止させることができるので、特殊な構成を持たない汎用的な実行手段を用いて実現することができる。
【０１６１】
（２５）また、変形例（２４）の集積回路において、の前記切り替え部は、さらに、前記集積回路の外部にある外部メモリに格納された切り替えプログラムによって制御されるとしても良い。
（２６）また、前記変形例（２５）の集積回路において、前記切り替え部は、さらに、前記保護されたプログラムの優先度が、前記保護の不要なプログラムの優先度より低い場合に、前記切り替えプログラムによって制御されるとしてもよい。
【０１６２】
このような構成により、保護されたプログラムを実行させていない実行手段が、保護は不要なものの優先度の高い処理を実行中の場合に、その実行手段を、保護されたプログラムの実行への切り替えることを遅らせることができ、保護が不要なプログラム等の性能低下を低減することができる。
（２７）また、変形例（２６）の集積回路において、前記切り替え機構は、さらに、前記通常モードから前記保護モードへの切り替えの際に、前記複数の実行手段の状態を退避し、前記保護モードから前記通常モードへの切り替えの際に、前記退避した前記複数の実行手段の状態を復帰する、前記切り替えプログラムによって制御されるとしてもよい。
【０１６３】
このような構成により、本発明に関する集積回路は、保護モードへの遷移前後であっても、処理を継続して行うことができる。
（２８）また、変形例（２７）の集積回路において、前記アクセス制限部は、前記切り替え部からの通知によって制御され、前記切り替え部は、前記保護モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを許可するよう通知し、前記切り替え部は、前記通常モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを不許可するよう通知するとしてもよい。
【０１６４】
（２９）また、変形例（２７）の集積回路において、前記アクセス制限部は、前記実行手段からの通知によって制御され、前記実行手段は、前記保護されたプログラムを実行すると、前記アクセス制御部に、前記内部メモリへのアクセスを許可するよう通知し、前記保護されたプログラムの実行を停止すると、前記アクセス制御部に、前記内部メモリへのアクセスを禁止するよう通知するとしても良い。
【０１６５】
（３０）また、上記の変形例（２８）及び（２９）の集積回路において、前記アクセス制御部は、前記通常モードにおいては、前記内部メモリへのアクセスを禁止し、前記内部メモリは、さらに、前記実行手段によって実行されている保護されたプログラムの状態を保持するとしてもよい。
（３１）上記の変形例（３０）の集積回路において、実行されている前記保護されたプログラムの状態は、前記保護モードから前記通常モードへの切り替えの際に、前記保護されたプログラムを実行させた実行手段から取得され、前記通常モードから前記保護モードへの切り替えの際に、前記保護されたプログラムを実行する実行手段に復帰されるとしても良い。
【０１６６】
このような構成により、保護されるべきプログラムの中断した状態を、通常モードではアクセスできない内部メモリに格納するため、安全に保護モードの動作を中断し、安全に再開することができる。
（３２）また、上記の変形例（２１）の集積回路において、前記複数の実行手段のうち、前記少なくとも１つの実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて前記保護されたプログラムを実行し、前記複数の実行手段のうち、前記少なくとも１つの実行手段を除く実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて自身の動作を停止し、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへ切り替えの際に、前記保護モードへの切り替えの通知を前記複数の実行手段に送信する切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
【０１６７】
このような構成により、本発明に関する集積回路では、保護されたプログラムを実行していない実行手段は保護モードへの遷移時に停止するため、保護されたプログラムを実行していない実行手段による保護されたプログラム等への不正なアクセスを防止することができる。
（３３）上記の変形例（２１）の集積回路において、前記複数の実行手段は、それぞれ、前記内部メモリへのアクセス要求とともに自身を識別する識別情報を通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段の識別情報を通知する切り替え部と、前記切り替え部から前記保護されたプログラムを実行させた実行手段の識別情報の通知を受け取り、前記実行手段のうち、前記アクセス要求とともに通知された識別情報が、通知された識別情報と一致する場合に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
【０１６８】
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
（３４）上記の変形例（２１）の集積回路において、前記実行手段は、自身の前記内部メモリへのアクセス要求とともに自身が前記保護されたプログラムを実行したか否かを通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記１つ以上の処理手段に保護されたプログラムを実行させる切り替え部と、前記実行手段から、前記アクセス要求とともに前記保護されたプログラムを実行した旨が通知されると前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしても良い。
【０１６９】
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
（３５）また、本発明は、外部メモリと、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路とを備えた処理装置であって、前記外部メモリは、前記保護が不要なプログラムを格納し、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも１つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えるとしても良い。
【０１７０】
（３６）また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられる方法であって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記方法は、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも１つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしても良い。
【０１７１】
（３７）また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられるプログラムであって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記プログラムは、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも１つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしてもよい。
【０１７２】
（３８）これらの実施の形態および変形例の組合せであってもよい。
【産業上の利用可能性】
【０１７３】
本発明は、複数のＣＰＵを搭載し、保護すべき情報を取り扱うシステムＬＳＩを製造及び販売する産業、前記システムＬＳＩを搭載した機器を製造販売する産業、また、これらの機器を用いて保護されるべき情報を使用したサービスを提供する産業において、経営的、継続的、反復的に利用可能である。
【図面の簡単な説明】
【０１７４】
【図１】実施の形態１の組み込み装置１１７のハードウェア構成を示すブロック図である。
【図２】切替機構１０５の詳細を示すブロック図である。
【図３】各ＣＰＵへ出力されるリセット信号と時間の経過の関係を示す図である。
【図４】実施の形態１の組み込み装置１１７の動作を示すフローチャートである。
【図５】保護モードへの遷移動作を示すフローチャートである。図４のステップＳ１０５の詳細を示す。
【図６】通常モードへの遷移動作を示すフローチャートである。図４のステップＳ１０７の詳細を示す。
【図７】実施の形態２の組み込み装置１９７のハードウェア構成を示すブロック図である。
【図８】実施の形態３の組み込み装置２１７のハードウェア構成を示すブロック図である。
【図９】実施の形態４の組み込み装置２３７のハードウェア構成を示すブロック図である。
【符号の説明】
【０１７５】
１００    システムＬＳＩ
１０１    外部メモリ
１０２    ＣＰＵ−１
１０３    ＣＰＵ−２
１０４    内部メモリ
１０５    切替機構
１０６    アクセス制限回路
１０７    内部バス
１１０    バンク切替部
１１７    組み込み装置
１２１    切替レジスタ
１２２    信号出力部
１２３    通常モード割込ベクタ
１２４    保護モード割込ベクタ
１２５    ＣＰＵレジスタ退避／復帰部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008078564.tif 000012
【図２】
2008078564.tif 000013
【図３】
2008078564.tif 000014
【図４】
2008078564.tif 000015
【図５】
2008078564.tif 000016
【図６】
2008078564.tif 000017
【図７】
2008078564.tif 000018
【図８】
2008078564.tif 000019
【図９】
2008078564.tif 000020
【国際調査報告】
2008078564.tif 000021
2008078564.tif 000022
2008078564.tif 000023
2008078564.tif 000024