JPWO2008078564A1 - 情報処理装置、集積回路、方法、およびプログラム - Google Patents
情報処理装置、集積回路、方法、およびプログラム Download PDFInfo
- Publication number
- JPWO2008078564A1 JPWO2008078564A1 JP2008551030A JP2008551030A JPWO2008078564A1 JP WO2008078564 A1 JPWO2008078564 A1 JP WO2008078564A1 JP 2008551030 A JP2008551030 A JP 2008551030A JP 2008551030 A JP2008551030 A JP 2008551030A JP WO2008078564 A1 JPWO2008078564 A1 JP WO2008078564A1
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- access
- program
- processor
- switching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
上述したHD画像等の表現能力が高いコンテンツを処理するには、民生機器の処理能力の向上が必要である。処理能力を向上させる手法としては、Personal Computer(PC)の分野では、マルチCPU(マルチプロセッサとも呼ばれる)が用いられている。マルチCPUとは、従来1つのCPUで行っていた処理を複数のCPUに分担させることで、処理時間を短縮させる技術である。
このような、複数のCPUを搭載した機器において、保護されるべきデータの不正利用を抑制する技術が、特許文献1に開示されている。特許文献1に記載の技術(以下、第1の従来技術という。)では、以下の技術が開示されている。各CPUには、それぞれのCPUに固有の鍵が割り当てられており、保護すべきプログラムやデータは、そのプログラムやデータを取り扱うCPUと対応する鍵を用いて暗号化された状態で外部メモリに記憶されている。各CPUが、外部メモリに記憶されているデータやプログラムを利用しようとするとき、そのCPUに対応する鍵を用いて、バス暗号回路が復号処理を施して、復号後のデータ又はプログラムをCPUへ出力する。
第2の従来技術の前記機器において、保護すべきデータに関する処理を行う実行環境をシステムLSI内部の内部メモリとCPUの専用モードとで実現している。なお、以下ではこのような実行環境を保護モードと呼ぶ。第2の従来の技術では、システムLSIが保護モードでないモードで動作している時(以下、通常モードと呼ぶ)には、内部メモリへのアクセスが遮断される。ここで、通常モードから保護モードへの切り替えが起こると、CPUはリセットされたのち、システムLSI内部の保護されたプログラムを起動させる。この保護されたプログラムは、システムLSI内部のROM等に記録されており、外部からの改竄は困難なプログラムである。また、システムLSIは保護モードへの切り替えが起こると、内部メモリへのアクセスが許可される。このような制御を行うことで、システムLSIが通常モードで動作している間は、内部メモリへのアクセスができない。また、保護モードへ切り替わると、内部メモリへのアクセスが許可されるが、ここで内部メモリへアクセスできるプログラムは、専用モードに遷移したCPUが動作させている改竄困難なプログラム(もしくは改竄困難なプログラムが呼び出した他のプログラム)であるので、内部メモリ上のデータを取り扱うプログラムを安全なものに限ることができる。
一方、第2の従来技術では、保護されるべき情報を安全に扱うことができるが、プロセッサが1つであるので、HD画像等の表現能力が高いコンテンツを処理するための処理能力は低い。
そこで、本発明は、処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置、集積回路、方法及びプログラムを提供することを目的とする。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してリセット信号を出力し続けることで、前記他のプロセッサを停止することができる。これにより、リセット信号を処理する機構さえ備えているプロセッサであれば従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも1のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、前記情報処理装置は、さらに、前記切替プログラムの指示に従って、前記少なくとも1のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも1のプロセッサに対してリセット信号の出力を解除するとしてもよい。
ここで、前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも1のプロセッサに対して、前記第2の割込ベクタに代えて、前記第1の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替えるとしてもよい。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
ここで、前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも1のプロセッサがセキュアメモリを参照するように制御するとしてもよい。
ここで、前記制御手段は、さらに、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサと前記他のメモリとの接続を切断するので、前記1以上のプロセッサがアクセスできる範囲をセキュアメモリに確実に限定することできる。
この構成によると、情報処理装置は、保護すべき処理の期間において、バスと前記他のメモリとの接続を切断するので、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサに限らず、前記他のプロセッサに対しても前記他のメモリへのアクセスを防止することができる。
ここで、前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、前記制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否するとしてもよい。
ここで、前記複数のプロセッサそれぞれは、処理情報を記憶する情報記憶手段と、前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含むとしてもよい。
101 外部メモリ
102 CPU−1
103 CPU−2
104 内部メモリ
105 切替機構
106 アクセス制限回路
107 内部バス
110 バンク切替部
117 組み込み装置
121 切替レジスタ
122 信号出力部
123 通常モード割込ベクタ
124 保護モード割込ベクタ
125 CPUレジスタ退避/復帰部
以下に、本発明の実施の形態1について、図面を参照しながら説明を行う。
1.1 概要
本実施の形態に関わる組み込み装置117は、図1に示すように、システムLSI100と外部メモリ101とを搭載しており、システムLSI100は、複数のCPU(ここでは、CPU−1 102とCPU−2 103)と、耐タンパ性を有する内部メモリ104と、切替機構105と、アクセス制限回路106とを含んでいる。
組み込み装置117は、保護すべきデータ(例えば、音楽コンテンツの再生やコピーに関する権利情報、復号鍵データなどが該当する。以下、保護データと呼ぶ)に関する処理を、システムLSI100上の内部メモリ104上を用いて実行する装置である。この際に、保護データを処理するためのCPUは、実行環境がシステムLSI内部の内部メモリとCPUの専用モードとから実現されるモード(以下、保護モードと呼ぶ。また、これに対して、保護モードでないモードを通常モードと呼ぶ。)に遷移して必要な処理を実行し、保護モードに遷移したCPU以外のCPUを停止させることにより、内部メモリ104に対して通常モードのCPUがアクセスすることを禁止する。
システムLSI100は、図示していない外部フラッシュメモリ等から読み込まれた音楽データの再生を行う。音楽データの再生手順は、アプリケーション114a及び114bに記述されているとする。ここで、本実施の形態では、外部フラッシュメモリ内の音楽データには暗号化が施されているものとし、アプリケーション114a及114bは、切替プログラム115を介して、保護プログラム111へ秘匿すべき処理(保護すべき処理)を依頼する。ここで、秘匿すべき処理とは、例えば、暗号化音楽データの復号、復号鍵の生成、再生を許可されている期限や回数の確認などである。アプリケーション114の依頼により、保護プログラム111は、システムLSI100に配置され、外部からのアクセスが困難な内部メモリ104を用いて前述の秘匿すべき処理を行う。この処理は、保護モードに遷移したCPU−1が、保護プログラム111を実行することで実現され、その間、CPU−2は、停止している。そのため、当該組み込み装置117は、音楽データの復号および再生に関連する処理を安全に、実行することができる。
以下、組み込み装置117が備える各構成要素の詳細について説明を行っていく。
なお、通常、組み込み装置117は、さらに、図1に図示されていないユーザからの入出力を受け付ける入出力部や、着脱可能な外部メモリへのインタフェース、音声の出力機構などを備えているが、これらは本発明の本質ではないので説明を省略する。
システムLSI100が備えるCPU−1 102とCPU−2 103と、切替機構105と、アクセス制限回路106とは、内部バス107を介して互いに接続されている。さらに、内部メモリ104とアクセス制限回路106とが専用線を介して接続されている。
従って、アクセス制限回路106によってアクセスが認められないCPU等による内部メモリ104のデータの盗み取りを防ぐ事が出来る。
CPU−1 102とCPU−2 103は、外部メモリ101または内部メモリ104に格納されたプログラム等に含まれる命令コードを解読し実行することにより、システムLSI100全体の動作、および、組み込み装置117全体の動作を制御する。なお、CPU−1 102とCPU−2 103とは、後述するリセット信号を受信している間は、何も動作を行わない。また、CPU−1 102とCPU−2 103とは、リセット信号の受信後に、後述する割込ベクタ中のリセット割込を参照することで、システムLSI100および組み込み装置117に対する制御を再開する。リセット割込とは、リセット信号が解除された直後に実行されるハンドラ(プログラム)の記憶されているメモリ領域の先頭アドレスである。
内部メモリ104は、RAM、ROMなどから構成され、図1に示すように、保護プログラム111や保護データ112を記憶する。
内部メモリ104内の保護プログラム111は、保護モードにおいて、CPU−1 102により実行されるプログラム群である。具体的には、保護モード用のオペレーティングシステム、保護モードにおいて、保護データ112を取り扱うアプリケーションプログラムなどが該当する。この保護プログラム111を構成するプログラムは、単独で、または必要に応じて他のプログラムと連携し、保護されるべき処理(例えば、暗号化された音楽データの復号、復号鍵の生成、音楽データに付随する権利情報のチェック)を行う。これらの処理が終了すると、保護プログラム111は、切替機構105内の切替レジスタ121(後述する)に通常モードを意味する値「0」を書き込む。
なお、図1では説明を簡単にするため、保護プログラム111と保護データ112とが内部メモリ104上に格納された後の状態を示しているが、これらのプログラム及びデータは、システムLSI100の起動直後に内部メモリ104へ格納されるとしても良いし、必要に応じて後から格納されるとしても良い。この場合、外部からの改竄を防止するため、これらのデータは、システムLSI100の内部の図示しない耐タンパ性を有するROMや、何らかのセキュリティ機構を備えた記録領域に記録されており、システムLSI100の起動時や保護プログラム111の実行開始時に内部メモリ104に格納される。
図1に示すように、切替機構105は、信号線108、109を介して、それぞれ、CPU−1 102、CPU−2 103と接続されている。また、信号線118を介して、アクセス制限回路106とも接続されている。
図2は、切替機構105の詳細な構成を示すブロック図である。図2に示すように、切替機構105は、切替レジスタ121、信号出力部122、CPUレジスタ退避/復帰部125及びバンク切替部110から構成されており、2つのCPUの動作モードを切り替える構成を備える。
切替レジスタ121は、数ビット長のデータを記憶することができるレジスタであって、記憶しているデータは、CPU−1 102の状態を示す。例えば、切替レジスタ121に記憶されているデータ「0」は、通常モードを示し、データ「1」は、保護モードを示す。
CPUレジスタ退避/復帰部125は、切替プログラム115の指示に従ってCPU−1 102及びCPU−2 103のレジスタ内容や処理途中のデータを外部メモリ101へ退避し、また、退避したレジスタ内容などを各CPUに復帰する。
また、CPUレジスタ退避/復帰部125は、予め、復帰アドレスを記憶している。復帰アドレスは、外部メモリ101内において、切替プログラム115が記憶されている領域内の所定の位置を示す。切替プログラム115内において、復帰アドレスの指す位置以降の部分には、退避したレジスタ内容などを各CPUに復帰させる手順、保護プログラム111による処理結果をアプリケーション114へ通知する手順が含まれる。
また、CPU−1 102が保護モードから通常モードに遷移する際、CPUレジスタ退避/復帰部125は、信号出力部122の指示により、内部バス107を介して、CPU−1 102のプログラムカウンタへ、前述の復帰アドレスを書き込む。
(3−3)信号出力部122
信号出力部122は、切替レジスタ121の値を常時監視している。
切替レジスタ121に「1」が書き込まれると、信号線108及び109を介して、CPU−1 102及びCPU−2 103へリセット信号を出力する。これにより、2つのCPUのレジスタ値などが初期化される。
また、信号出力部122は、アクセス制限回路106へアクセス許可信号を出力する。
また、切替レジスタ121に「0」が書き込まれると、信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの書き込みを指示する。
図3は、時間の経過と各CPUへのリセット信号の出力の関係とを示している。以下、図3を用いて、時間の経過と、信号出力部122によるリセット信号出力及び停止の動作について説明する。
時刻t2において、信号出力部122はアクセス許可信号をアクセス制限回路106へ出力するとともに、CPU−1 102へのリセット信号の出力を解除するが、CPU−2 103へのリセット信号の出力は継続する。
(3−4)バンク切替部110
図2に示すようにバンク切替部110は、2種類の割込ベクタを保持している。
通常モード割込ベクタ123は、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを含む。ここで、通常モード割込ベクタ123に含まれるアドレスは、何れも外部メモリ101及び組み込み装置117の保持するメモリ(図示されていないものも含む)の何れかの位置を示す。
特に、保護モード割込ベクタ124に含まれるリセット割込は、内部メモリ104内において、保護プログラム111の記憶されている領域の先頭を示すアドレスである。
信号出力部122からアクセス許可信号が出力されると、バンク切替部110は、通常モード割込ベクタ123に代えて、保護モード割込ベクタ124を、有効な割込ベクタに指定する。
有効な割込ベクタの指定の方法は任意であるが、例えば、2つの割込ベクタのうち、有効な一方の先頭にフラグを立てる方法などが考えられる。
従って、割り込み発生時には、CPU−1 102及びCPU−2 103は、2つの割込ベクタのうち、有効な割込ベクタを参照して割込処理を行う。
アクセス制限回路106は、信号線118を介して、切替機構105内の信号出力部122と接続されており、アクセス許可信号及びアクセス禁止信号を受け取る。
アクセス制限回路106は、アクセス許可信号を受け取ると、内部バス107と内部メモリ104とを接続し、アクセス禁止信号を受け取ると、内部バス107と内部メモリ104とを遮断する。
(5)システムLSI100の構成のまとめ
このようにすることで、保護を必要としない処理において、通常モードである2つのCPUが内部メモリ104内のデータを参照することはない。また、保護を必要とする処理において、保護モードであるCPU−1 102は、内部メモリ104内のデータ、プログラムを参照して処理を行い、システムLSI100内で処理が完結するため、システムLSI100の外に不正なプログラムが存在したとしても、このプログラムが実行されることはない。
さらに、バンク切替部110は、CPUの動作モードが切り替わるときに、割込ベクタを各モード用のものに変更する。そのため、通常モードでは、割込発生時に、各CPUが、内部メモリ104を参照することはないし、保護モードでは、CPU−1 102は、内部メモリ104を参照し、外部メモリ101等を参照することはない。
<システムLSI100以外の部分についての説明>
続いて、組み込み装置117の他の部分について説明を行う。
(1)アプリケーション114a及び114b
アプリケーション114a及び114bは、いずれも組み込み装置117全体の制御を行うためのプログラムである。本実施の形態では、具体的には、図示されていないフラッシュメモリなどから音楽データを取得し、再生、複製などを実行する手順を含む。2つのアプリケーションは、それぞれ、データ形式の異なる音楽データを再生する手順を含んでいる。以後、これらを特に区別する必要がない場合、単にアプリケーション114と記載する。
アプリケーション114は、随時CPU−1 102またはCPU−2 103により参照されて実行される。このアプリケーション114は、セキュリティ面から見た重要度が比較的低く、また、組み込み装置117全体の制御を行う関係上サイズが大きいため、大きさに制限がある内部メモリ104ではなく、外部メモリ101に格納されている。
切替プログラム115は、切替機構105を制御して、システムLSI100内のCPUのモード遷移を開始させる手順を含むプログラムである。
具体的には、アプリケーション114から、呼び出しを受けると、切替機構105内の切替レジスタ121に「1」を書き込手順を含む。
なお、切替プログラム115は、他のプログラムから不定期に発生する要求を受け付ける必要がある。従って、本実施の形態における切替プログラム115は、システムLSI100上の全てのCPUが通常モードで動作している間はCPU−1 102にてバックグラウンドで動作し続けているものとする。
オペレーティングシステム116は、アプリケーション114などに対して動作環境を提供するプログラムである。なお、オペレーティングシステム116は、基本ソフト、オペレーションシステムやOSと呼ばれる場合もある。
1.3 動作
(1)組み込み装置117の動作
ここでは、組み込み装置117の動作について、図4にて示すフローチャートを用いて説明する。
組み込み装置117が起動するとシステムLSI100に電源が投入される(ステップS100)。
システムLSI100が起動すると、オペレーティングシステム116が起動される(ステップS101)。オペレーティングシステム116は、アプリケーション114や切替プログラム115を起動させる。本実施の形態において、切替プログラム115は、アプリケーション114から呼び出しを受けるまで、CPU−1 102で、待機する(ステップS102)。
切替プログラム115は、アプリケーション114から依頼を受け付けると、切替機構105へ各CPUのレジスタ内容などの退避を指示する。
次に、切替プログラム115の制御により、切替機構105は、CPU−1 102を保護モードへ遷移させ、CPU−2 103を停止させる(ステップS105)。保護モードへの遷移の詳細に関しては、後述する。
通常モードに復帰したCPU−1 102は、切替プログラム115の実行を再開し、切替プログラム115は、切替機構105へ、2つのCPUのレジスタ内容の復帰を指示する。
次に、切替プログラム115は、保護プログラム111による処理結果を、アプリケーション114に通知する(ステップS109)。
(2)保護モードへの遷移動作
図4のステップS105にて行われる保護モードの遷移動作では、アプリケーション114から保護されるべき処理が要求されると、切替プログラム115は、切替機構105を制御して、CPU−1 102を通常モードから保護モードに遷移させ、CPU−2 103を停止させる。
切替プログラム115は、切替機構105内の切替レジスタ121に「1」を書き込む(ステップS121)。
切替レジスタ121に「1」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、信号線108と信号線109を介して、CPU−1 102とCPU−2 103にリセット信号を入力する(ステップS123)。
割込ベクタの変更(ステップS124)が終了すると、信号出力部122は、CPU−1 102へのリセット信号を解除する(ステップS126)。この操作によって、CPU−1 102は動作することが可能となる。
アクセス許可信号を受け取ると、アクセス制限回路106は、内部バス107と内部メモリ104とを接続する(ステップS128)。
(3)通常モードへの遷移動作
図4のステップS107にて行われる通常モードへの遷移動作は、保護プログラム111による保護すべき処理が終了した場合や、ユーザからのキー入力などの保護プログラム111の実行よりも優先すべき通常モードの処理を行う場合など、保護プログラム111の処理を中断もしくは終了する必要が生じると、開始される。
CPU−1 102により実行されている保護プログラム111は、切替機構105内の切替レジスタ121に「0」を書き込む(ステップS131)。
切替レジスタ121に「0」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの設定を指示し、CPUレジスタ退避/復帰部125は、記憶している復帰アドレスを、CPU−1 102のプログラムカウンタに書き込む(ステップS132)。
アクセス禁止信号を受けて、アクセス制限回路106は、内部バス107と内部メモリ104とを遮断する(ステップS134)。
また、切替機構105内のバンク切替部110は、保護モード割込ベクタ124に代えて通常モード割込ベクタ123を有効にする(ステップS136)。この操作によって、割込ベクタは、保護モード遷移前と同様の設定に戻る。
なお、音楽再生中にユーザからの入力があった場合など、保護モードで動作中の保護プログラム111の動作を中断させる形で復帰処理が行われる場合には、遅くともステップS132の処理が行われるまでに、CPUレジスタ退避/復帰部125は、CPU−1 102のレジスタ内容や処理途中のデータなどを、内部メモリ104に格納する。その後、保護プログラム111の動作を再開する場合に、内部メモリ104に格納してあった、レジスタ内容や処理途中のデータをCPU−1 102に戻すことで、保護プログラム111の動作を再開させることができる。
以上で述べたように、実施の形態1における組み込み装置117では、システムLSI100内のCPU−1 102が保護モードに切り替わると、保護モードで動作するCPU−1 102のみを動作させ、他のCPUであるCPU−2 103については、リセット信号を入力し続けることによって動作を停止させる。これにより、保護モードで動作しているCPU−1 102が内部メモリ104を使って、保護されるべき処理を行っている間には、CPU−2 103はいかなる処理も実行できなくなるので、内部メモリ104内の保護プログラム111及び保護データ112を奪われる危険性を低減できる。すなわち、内部メモリ104内のデータなどの不正な取得や書き込みを目的とした不正なプログラムを外部メモリ101に書き込み、CPU−2 103に実行させようとしても、CPU−2 103は何の動作も行えない状態にあるので、マルチCPU環境下でも安全に保護プログラム111及び保護データ112の処理を行うことができる。
なお、上記の実施の形態では、CPU−1 102のみが保護モードで動作するとしたがCPU−2 103のみが動作するとしても構わないことは言うまでもない。すなわち、保護モードに切り替わっているCPUのみを動作可能とすればよいのであって、どちらのCPUを動作させてどちらのCPUを停止させるかは、その時々の組み込み装置117の処理状況に応じて随時変更してもよい。組み込み装置117の状況の具体例としては、通常モードから保護モードへの切り替えが開始した時点でどちらのCPUに大きな負荷がかかっているかなどである。また、CPU−1 102とCPU−2 103とで異なるアーキテクチャや処理能力を持つ場合には、保護すべき処理を行う場合にどちらのCPUの方が適しているかを判断して、より適していると判断された方のCPUのみを動作させるとしても良い。また、このような場合、実行が中断された保護プログラム111を再開するCPUも、CPU−1 102である必要はなくなる。すなわち、CPU−2 103がCPU−1 102と同等の機能を持ち、保護プログラム111をCPU−2 103でも実行することができる場合には、再開時にCPU−2 103に対して退避していたCPU−1 102の状態を復帰させ、CPU−2 103が保護プログラム111の実行を再開するとしてもよい。
もちろん、一方のCPUを保護モードにおいて動作するCPUとして予め定めておき、他方を保護モードでの動作を許可しないCPUであると予め定めておくとしておいてもよい。
以下に、本発明の実施の形態2について図面を用いて説明する。なお、実施の形態1と同様の構成については説明を省略し、実施の形態2の特徴部分を中心に述べる。
2.1 構成
図7は、本発明の実施の形態2に関わる組み込み装置197のハードウェア構成を示すブロック図である。なお、実施の形態1と同様の構成要素については、同じ符号を付している。
実施の形態1の組み込み装置117では、CPU−1 102とCPU−2 103とは内部バス107を介してアクセス制限回路に接続していたが、実施の形態2の組み込み装置197では、CPU−1 182とCPU−2 183が、アクセス制限回路186に信号線189及び188を介して、直接接続している。
同様に、保護モードで動作しているCPUによる保護プログラム111の実行が終了したとき、保護モードで動作しているCPUからアクセス制限回路186へアクセス禁止信号が入力される。
2.2 動作
また、実施の形態1と実施の形態2の動作の違いは以下の通りである。
それに対して、実施の形態2では、保護モードに遷移したCPUからの制御によって、アクセス制限回路186が内部メモリ104へのアクセス許可、禁止を実現する。
例えば、CPU−1 182が保護モードに遷移した場合、CPU−1 182は、アクセス制限回路186にアクセス許可信号を出力する。アクセス制限回路186は、アクセス許可信号を受け取ると、内部メモリ104と内部バス107とを接続する。CPU−1 182が保護モードから通常モードに遷移すると、CPU−1 182は、アクセス制限回路186にアクセス禁止信号を出力する。アクセス制限回路186は、アクセス禁止信号を受け取ると、内部メモリ104と内部バス107との接続を遮断する。
3.実施の形態3
以下に、本発明の実施の形態3について図面を用いて説明する。なお、実施の形態1又は2と同様の構成については説明を省略し、実施の形態3の特徴部分を中心に述べる。
3.1 概要
本発明の実施の形態3に関わる組み込み装置217は、図8にて示すように、システムLSI200と、外部メモリ101とを搭載している。システムLSI200は、プロセッサ201と、CPU−2 203と、アクセス制限回路206と、内部メモリ104とを含んでおり、プロセッサ201は、CPU−1 202と切替機構205とを含んでいる。
本実施の形態では、各CPUは自身を識別する識別子(以下、IDと呼ぶ)を記憶している。
また、実施の形態1では、内部バス107と内部メモリ104との間は、保護モードによる動作中のみアクセス制限回路106を介して接続されていたが、本実施の形態では、内部バス107と内部メモリ104との間は、アクセス制限回路206を介して常時接続されているものとする。
以下、組み込み装置217に含まれる構成要素うち、CPU−1 202、切替機構205、CPU−2 203、及びアクセス制限回路206について説明する。
(1)CPU−1 202
CPU−1 202は、自身に固有のID「ID1」204を、記憶している。ID204は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
(2)切替機構205
切替機構205は、切替プログラム115からの要求に応じて、CPU−1 202を保護モードに切り替える。
また、実施の形態1の切替機構105とは異なり、CPU−1 202が通常モードから保護モードへ遷移する際、及び、保護モードで動作している間、CPU−2 203へリセット信号を出力しない。
また、バンク切替部は、CPUごとに何れの割込ベクタを用いるかを管理する。
具体的には、バンク切替部は、CPU−2 203については、常に、通常モード割込ベクタを使用するように設定する。CPU−1 201については、保護モードに遷移する際に、保護モード割込ベクタを使用するように設定し、通常モードに遷移する際に、通常モード割込ベクタを使用するように設定する。
CPU−2 203は、自身に固有のID「ID2」207を記憶している。ID207は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
CPU−2 203は、内部メモリ104へのアクセス要求を送信する際に、アクセス制限回路206へ、自身のID「ID2」も送信する。
また、CPU−1 202が保護モードで動作中であっても、リセット信号を入力されないので、CPU−2 203は、通常モードで動作することができる。
(4)アクセス制限回路206
アクセス制限回路206は、内部にメモリ208を含んで構成される。
アクセス許可信号を受け取った場合、アクセス許可信号に含まれるIDをメモリ208に記憶する。なお、本実施の形態では、アクセス制限回路206は、メモリ208にCPU−1 202を示す「ID1」を記憶する。
また、アクセス制限回路206は、CPU−1 202又はCPU−2 203から当該CPUのIDと共にアクセス要求を受け取る。
次に、アクセス制限回路206は、受け取ったアクセス要求と共に送られてきたIDがメモリ208の記憶しているIDと一致するか否かを確認する。
IDが一致しなかった場合及びメモリ208にいずれのIDも記憶されていない場合は、アクセス制限回路206は、受け取ったアクセス要求が保護モードで動作していないCPUによるアクセス要求であるとして、アクセス要求を拒否する。
以下に、組み込み装置217の動作について、実施の形態1と比較しながら説明する。
アプリケーション114からの呼び出されると切替プログラムは、切替機構205に、レジスタ内容の退避を指示する。
この指示を受けて、切替機構205は、CPU−1 202のレジスタ内容のみを退避する。
それに対して、実施の形態3では、CPU−1 202を保護モードへ遷移させる際に、切替機構205は、CPU−1 202を示すID「ID1」204を読み出し、読み出した「ID1」を含むアクセス許可信号を、アクセス制限回路206へ出力する。
次に、切替機構205は、実施の形態1とは異なり、CPU−1 202のみに所定時間リセット信号を入力し、CPU−2 203へリセット信号を出力しない。
次に切替機構205は、CPU−1のリセットベクタを保護モードリセットベクタに設定する。これにより、CPU−1 202の保護モードへの状態遷移は完了する。
アクセス制限回路206は、アクセス要求と共に受け取ったIDと、メモリ208に記憶している「ID1」とを比較する。
より具体的には、保護モードで動作しているCPU−1 202が内部メモリ104にアクセスを行おうとする場合、CPU−1 202は、アクセス要求と共にCPU−1 202を示すID「ID1」204もアクセス制限回路206に通知される。アクセス制限回路206は、メモリ208に記憶されている「ID1」とアクセス要求と共に届いた「ID1」とを比較し、両者が一致することを確認する。これにより、アクセス要求を許可し、CPU−1 202は、内部メモリ104へアクセスする。
通常モードへの遷移の処理中において、切替機構205は、CPU−1 202のID「ID1」204を含むアクセス禁止信号をアクセス制限回路206へ出力する。
以後、アクセス制限回路206内のメモリには、いずれのIDも記憶されていないため、アクセス制限回路206は、何れのCPUからのアクセス要求も却下する。
3.4 まとめ
実施の形態3では、実施の形態1や2と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
なお、上記の実施の形態3では、切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、内部バス107を介して、アクセス制限回路206へ出力するとしたが、これに限定されない。切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、信号線を介してアクセス制限回路206へ出力するとしてもよい。
この場合、アクセス許可信号やアクセス禁止信号を受け取る度にIDを格納したり削除したりするのではなく、アクセス許可信号を受け取った後、アクセス禁止信号を受け取るまでの間は、そのIDに対応するCPUによるアクセスを許可するようにしてもよい。
以下に、本発明の実施の形態4について図面を用いて説明する。なお、実施の形態1〜3と同様の構成については説明を省略し、実施の形態4の特徴部分を中心に述べる。
4.1 概要
本発明の実施の形態4に関わる組み込み装置237は、図9にて示すように、システムLSI220と、外部メモリ101とを搭載している。システムLSI220は、プロセッサ1 221と、プロセッサ2 228と、アクセス制限回路227と、内部メモリ104とを含んでいる。
各プロセッサは、当該プロセッサにおける動作モードを示すモード情報を記憶しており、内部メモリ104へアクセス要求を行う際に、記憶しているモード情報をもアクセス制限回路227へ出力する。
なお、本実施の形態では、実施の形態3と同様に、内部バス107と内部メモリ104とは、アクセス制限回路227を介して常時接続されているものとする。
4.2構成
以下、組み込み装置237に含まれる構成要素のうちプロセッサ1 221、プロセッサ2 228及びアクセス制限回路227について説明する。
プロセッサ1 221とプロセッサ2 228の構成は同様であるのでここでは、プロセッサ1 221についてのみ説明する。
図9に示すように、プロセッサ1 221は、CPU−1 222と切替機構225とを含んで構成される。
CPU−1 222は、ステータスレジスタ224を含む。ステータスレジスタ224は、CPU−1 222の現在の動作モードを示すモード情報を記憶している。具体的に、モード情報「1」は保護モードを示し、モード情報「0」は通常モードを示す。
内部メモリ104へアクセス使用とする場合、CPU−1 222は、ステータスレジスタ224の記憶しているモード情報を読み出し、内部バス107を介して、アクセス要求と共に読み出したモード情報をアクセス制限回路227へ出力する。
(1−2)切替機構225
切替機構225は、CPU−1 222のモード切替のみを実行する。切替機構225内部の詳細な構成は、実施の形態1において説明した切替機構225とほぼ同様であるが、信号出力部は、CPU−1 222のみへリセット信号を出力する。
また、バンク切替部は、CPU−1 222の参照する割込ベクタのみを管理し、CPU−1 222のみが2つの割込ベクタのうち有効な一方を参照する。
また、切替機構225内の信号出力部は、CPU−1 222が保護モードに遷移すると、CPU−1 222内のステータスレジスタ224にモード情報「1」を書き込む。
(2)アクセス制限回路227
アクセス制限回路227は、CPU−1 222またはCPU−2 223からのアクセス要求とモード情報とを受け取る。
受け取ったモード情報が、保護モードを示す「1」である場合、アクセス制限回路227は、内部メモリ104へのアクセスを許可する。逆に、受け取ったモード情報が、通常モードを示す「0」である場合は、アクセス要求を拒否する。
続いて、実施の形態4の組み込み装置237の動作について、実施の形態3と比較しながら説明する。
実施の形態3では、切替機構が保護モードに遷移したCPUのIDを含むアクセス許可信号及びアクセス禁止信号をアクセス制限回路に事前に出力し、アクセス制限回路は、切替機構から受け取ったアクセス許可信号及びアクセス禁止信号に含まれるIDを基に、保護モードで動作しているCPUのIDを記憶していた。
それに対して、実施の形態4では、プロセッサ1に含まれる切替機構225は、CPU−1 222の動作モードを切り替えるが、その切り替えに当たって他の構成部へ信号を出力したりはしない。その代わり、切替機構225は、CPU−222内部のステータスレジスタ224にモード情報を書き込む。
アクセス制限回路227は、CPU−1 222からアクセス要求と共にモード情報を受け取る。受け取ったモード情報が「1」であれば、内部メモリ104へのアクセスを許可し、「0」であればアクセスを拒否する。
4.4 まとめ
実施の形態4でも他の実施の形態と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
上記の差異以外は、実施の形態3と実施の形態4は同一であるため、説明は省略する。
なお、本発明を上記の実施の形態1〜4に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の実施の形態では、切替プログラムは、各CPUの保護モードへの遷移を常に実行していたが、これに限られるものではない。例えば、アプリケーションからの依頼の優先度に従って、保護モードに遷移しない制御を行なってもよい。
また、CPU−1で実行中のプログラムとCPU−2で実行中のプログラムの優先度を比較し、比較結果に応じて保護モードへ切り替える/切り替えないの制御を行っても良い。例えば、CPU−1で通常モード用のプログラム(保護を必要としないプログラム)であるが重要なプログラムを実行中である場合に保護モードへ切り替えを行うと、CPU−1が保護モード用の処理に占有されてしまい、CPU−1で実行中の通常モード用の重要なプログラムの処理が中断されてしまう。
CPU−1で実行中のプログラムの優先度が高い場合、切替プログラムは、優先度の高いプログラムの実行を優先し、このプログラムの処理が終了した後、CPU−1を保護モードに遷移させる制御を開始する。
若しくは、割込の種類に応じて、保護モード割込ベクタに含まれるアドレスの示す領域に格納されているハンドラ(例えば、内部メモリに格納された中断プログラム)により実現されるとしてもよい。
さらに、プログラム単位でアクセス許可/禁止を通知したりしてもよい。すなわち、CPUのモード遷移のタイミングと異なるタイミングで許可/禁止の通知を行ってもよい。
(6)上記の実施の形態では、切替プログラムはCPU−1で動作していたが、CPU−2で動作してもよい。さらに、上記の実施の形態では、切替プログラムと保護プログラムが同一のCPUで動作していたが、異なるCPUで動作するとしてもよい。
(8)上記の実施の形態1では、ステップS132において、切替プログラム115の復帰アドレスをCPU−1のプログラムカウンタに設定していたが、これに限られるものではない。例えば、切替機構が復帰アドレスを格納するレジスタを備えており、切替機構がリセット信号を出力する前に、切替プログラムが、そのレジスタに自身の復帰アドレスを書き込むとしてもよい。
保護モードに遷移することができるCPUが複数ある場合、同時に複数のCPUが保護モードで動作できる構成であっても良いし、1個のCPUが保護モードで動作している間、他のCPUは保護モードに遷移できない構成であってもよい。
また、実施の形態3または4のように保護プログラムを実行しているCPU以外のCPUが通常モード用の処理を実行できる場合には、通常モード用の処理をより多くのCPUで処理させることで、システム全体の処理性能を向上させることができる。
(10)上記実施の形態1および2では、リセット信号を投入し続けることによってCPU−2を停止していたが、他のCPUが保護モードで動作している間は停止するような特殊なCPUを用いて本発明を実現しても良いことは言うまでもない。例えば、このような特殊なCPUをCPU−2として用いる場合、切替機構からCPU−2に対して、CPU−1の現在のモードが通常モードであるか保護モードであるかの通知を送り、その通知を受けてCPU−2は停止したり動作を再開したりする。
この構成では、モード情報を保持及び通知する機能を持つCPUと、そのような特殊な機能を持たない通常のCPUとを混在させてシステムを構築することができるので、全てのCPUにモード情報を通知する機能を持たせるよりも安価に本発明を実施できる。
(12)上記の実施の形態では、通常モードで動作するプログラムおよびデータは、外部メモリ101に格納されていたが、これに限られるものではない。暗号化技術等を用いて、保護プログラム及び保護データに通常モードのCPUがアクセスできないような処理が施されていれば、通常モードのCPUが内部メモリを用いて通常モードで動作するプログラムおよびデータに対する処理を行っても構わない。
(14)また、上記の実施の形態3および4では、切替機構はCPUのプロセッサ内部にあるものとしたが、これに限られるものではなく、例えば、専用線を介して各CPUに接続されているものとしてもよい。
例えば、上記の実施の形態と同様の保護プログラムの実行方法を持ったDVDプレイヤー等の動画再生装置等であってもよいし、パーソナルコンピュータ、携帯電話、デジタルカメラ、ゲーム機など、様々な機器であることが考えられる。すなわち、本発明の組み込み装置は、保護されるべきプログラム又は保護されるべきデータを取り扱う処理装置であれば、どのようなものであってもよい。
また、上記の実施の形態では、バンク切替部の保持する保護モード割込ベクタに含まれるリセット割込を用いて、保護モードへの遷移時に保護プログラムを実行するよう制御していた。しかし、上記の制御に替えて、例えば、いずれかのCPUが保護モードで動作している最中には、保護モードで動作しているCPUからの外部メモリへのアクセス要求を却下するような機構を設けてもよい。例えば、外部メモリと内部バス間を接続したり、遮断したりするスイッチ機構を設けることで実現できる。このとき、切替機構の信号出力部は、切替レジスタに「1」が書き込まれると、外部メモリと内部バス間を遮断する旨の遮断信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記遮断信号を受け取ると、外部メモリと内部バス間を遮断する。また、信号出力部は、切替レジスタに「0」が書き込まれると、外部メモリと内部バス間を接続する旨の接続信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記接続信号を受け取ると、外部メモリと内部バス間を接続する。
さらに、CPU自体に、切替機構からの信号線を介して保護モードへの切り替えを指示する切り替え信号を受信する構成を持たせ、この切り替え信号を受信すると、システムLSI内部(つまり内部メモリ)に記録されたプログラムを起動または実行するように構成することで、CPUの保護モードを実現しても構わない。例えば、切替機構は、モードの切り替え対象となるCPUに対してのみ当該切り替え信号を出力し、他のCPUに対しては停止するように制御する(保護モードの間は当該他のCPUに対してリセット信号を出力し続ける)。
(17)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に実装しなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
(19)システムLSIは集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもあるが、上記の各実施のシステムLSIを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
(20)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−rayDisc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
(23)前記変形例(22)の集積回路において、切り替え部は、さらに、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段以外の実行手段に対して、前記実行手段をリセット状態にするリセット信号を通知することで、前記実行手段を停止させるとしてもよい。
このような構成により、本発明に関する集積回路は、リセット信号のみを利用して実行手段を停止させることができるので、特殊な構成を持たない汎用的な実行手段を用いて実現することができる。
(26)また、前記変形例(25)の集積回路において、前記切り替え部は、さらに、前記保護されたプログラムの優先度が、前記保護の不要なプログラムの優先度より低い場合に、前記切り替えプログラムによって制御されるとしてもよい。
(27)また、変形例(26)の集積回路において、前記切り替え機構は、さらに、前記通常モードから前記保護モードへの切り替えの際に、前記複数の実行手段の状態を退避し、前記保護モードから前記通常モードへの切り替えの際に、前記退避した前記複数の実行手段の状態を復帰する、前記切り替えプログラムによって制御されるとしてもよい。
(28)また、変形例(27)の集積回路において、前記アクセス制限部は、前記切り替え部からの通知によって制御され、前記切り替え部は、前記保護モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを許可するよう通知し、前記切り替え部は、前記通常モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを不許可するよう通知するとしてもよい。
(31)上記の変形例(30)の集積回路において、実行されている前記保護されたプログラムの状態は、前記保護モードから前記通常モードへの切り替えの際に、前記保護されたプログラムを実行させた実行手段から取得され、前記通常モードから前記保護モードへの切り替えの際に、前記保護されたプログラムを実行する実行手段に復帰されるとしても良い。
(32)また、上記の変形例(21)の集積回路において、前記複数の実行手段のうち、前記少なくとも1つの実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて前記保護されたプログラムを実行し、前記複数の実行手段のうち、前記少なくとも1つの実行手段を除く実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて自身の動作を停止し、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへ切り替えの際に、前記保護モードへの切り替えの通知を前記複数の実行手段に送信する切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
(33)上記の変形例(21)の集積回路において、前記複数の実行手段は、それぞれ、前記内部メモリへのアクセス要求とともに自身を識別する識別情報を通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段の識別情報を通知する切り替え部と、前記切り替え部から前記保護されたプログラムを実行させた実行手段の識別情報の通知を受け取り、前記実行手段のうち、前記アクセス要求とともに通知された識別情報が、通知された識別情報と一致する場合に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
(34)上記の変形例(21)の集積回路において、前記実行手段は、自身の前記内部メモリへのアクセス要求とともに自身が前記保護されたプログラムを実行したか否かを通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記1つ以上の処理手段に保護されたプログラムを実行させる切り替え部と、前記実行手段から、前記アクセス要求とともに前記保護されたプログラムを実行した旨が通知されると前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしても良い。
(35)また、本発明は、外部メモリと、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路とを備えた処理装置であって、前記外部メモリは、前記保護が不要なプログラムを格納し、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えるとしても良い。
上述したHD画像等の表現能力が高いコンテンツを処理するには、民生機器の処理能力の向上が必要である。処理能力を向上させる手法としては、Personal Computer(PC)の分野では、マルチCPU(マルチプロセッサとも呼ばれる)が用いられている。マルチCPUとは、従来1つのCPUで行っていた処理を複数のCPUに分担させることで、処理時間を短縮させる技術である。
このような、複数のCPUを搭載した機器において、保護されるべきデータの不正利用を抑制する技術が、特許文献1に開示されている。特許文献1に記載の技術(以下、第1の従来技術という。)では、以下の技術が開示されている。各CPUには、それぞれのCPUに固有の鍵が割り当てられており、保護すべきプログラムやデータは、そのプログラムやデータを取り扱うCPUと対応する鍵を用いて暗号化された状態で外部メモリに記憶されている。各CPUが、外部メモリに記憶されているデータやプログラムを利用しようとするとき、そのCPUに対応する鍵を用いて、バス暗号回路が復号処理を施して、復号後のデータ又はプログラムをCPUへ出力する。
第2の従来技術の前記機器において、保護すべきデータに関する処理を行う実行環境をシステムLSI内部の内部メモリとCPUの専用モードとで実現している。なお、以下ではこのような実行環境を保護モードと呼ぶ。第2の従来の技術では、システムLSIが保護モードでないモードで動作している時(以下、通常モードと呼ぶ)には、内部メモリへのアクセスが遮断される。ここで、通常モードから保護モードへの切り替えが起こると、CPUはリセットされたのち、システムLSI内部の保護されたプログラムを起動させる。この保護されたプログラムは、システムLSI内部のROM等に記録されており、外部からの改竄は困難なプログラムである。また、システムLSIは保護モードへの切り替えが起こると、内部メモリへのアクセスが許可される。このような制御を行うことで、システムLSIが通常モードで動作している間は、内部メモリへのアクセスができない。また、保護モードへ切り替わると、内部メモリへのアクセスが許可されるが、ここで内部メモリへアクセスできるプログラムは、専用モードに遷移したCPUが動作させている改竄困難なプログラム(もしくは改竄困難なプログラムが呼び出した他のプログラム)であるので、内部メモリ上のデータを取り扱うプログラムを安全なものに限ることができる。
一方、第2の従来技術では、保護されるべき情報を安全に扱うことができるが、プロセッサが1つであるので、HD画像等の表現能力が高いコンテンツを処理するための処理能力は低い。
そこで、本発明は、処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置、集積回路、方法及びプログラムを提供することを目的とする。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してリセット信号を出力し続けることで、前記他のプロセッサを停止することができる。これにより、リセット信号を処理する機構さえ備えているプロセッサであれば従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも1のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、前記情報処理装置は、さらに、前記切替プログラムの指示に従って、前記少なくとも1のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも1のプロセッサに対してリセット信号の出力を解除するとしてもよい。
ここで、前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも1のプロセッサに対して、前記第2の割込ベクタに代えて、前記第1の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替えるとしてもよい。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
ここで、前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも1のプロセッサがセキュアメモリを参照するように制御するとしてもよい。
ここで、前記制御手段は、さらに、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサと前記他のメモリとの接続を切断するので、前記1以上のプロセッサがアクセスできる範囲をセキュアメモリに確実に限定することできる。
この構成によると、情報処理装置は、保護すべき処理の期間において、バスと前記他のメモリとの接続を切断するので、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサに限らず、前記他のプロセッサに対しても前記他のメモリへのアクセスを防止することができる。
ここで、前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、前記制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否するとしてもよい。
ここで、前記複数のプロセッサそれぞれは、処理情報を記憶する情報記憶手段と、前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含むとしてもよい。
以下に、本発明の実施の形態1について、図面を参照しながら説明を行う。
1.1 概要
本実施の形態に関わる組み込み装置117は、図1に示すように、システムLSI100と外部メモリ101とを搭載しており、システムLSI100は、複数のCPU(ここでは、CPU−1 102とCPU−2 103)と、耐タンパ性を有する内部メモリ104と、切替機構105と、アクセス制限回路106とを含んでいる。
組み込み装置117は、保護すべきデータ(例えば、音楽コンテンツの再生やコピーに関する権利情報、復号鍵データなどが該当する。以下、保護データと呼ぶ)に関する処理を、システムLSI100上の内部メモリ104上を用いて実行する装置である。この際に、保護データを処理するためのCPUは、実行環境がシステムLSI内部の内部メモリとCPUの専用モードとから実現されるモード(以下、保護モードと呼ぶ。また、これに対して、保護モードでないモードを通常モードと呼ぶ。)に遷移して必要な処理を実行し、保護モードに遷移したCPU以外のCPUを停止させることにより、内部メモリ104に対して通常モードのCPUがアクセスすることを禁止する。
システムLSI100は、図示していない外部フラッシュメモリ等から読み込まれた音楽データの再生を行う。音楽データの再生手順は、アプリケーション114a及び114bに記述されているとする。ここで、本実施の形態では、外部フラッシュメモリ内の音楽データには暗号化が施されているものとし、アプリケーション114a及114bは、切替プログラム115を介して、保護プログラム111へ秘匿すべき処理(保護すべき処理)を依頼する。ここで、秘匿すべき処理とは、例えば、暗号化音楽データの復号、復号鍵の生成、再生を許可されている期限や回数の確認などである。アプリケーション114の依頼により、保護プログラム111は、システムLSI100に配置され、外部からのアクセスが困難な内部メモリ104を用いて前述の秘匿すべき処理を行う。この処理は、保護モードに遷移したCPU−1が、保護プログラム111を実行することで実現され、その間、CPU−2は、停止している。そのため、当該組み込み装置117は、音楽データの復号および再生に関連する処理を安全に、実行することができる。
以下、組み込み装置117が備える各構成要素の詳細について説明を行っていく。
なお、通常、組み込み装置117は、さらに、図1に図示されていないユーザからの入出力を受け付ける入出力部や、着脱可能な外部メモリへのインタフェース、音声の出力機構などを備えているが、これらは本発明の本質ではないので説明を省略する。
システムLSI100が備えるCPU−1 102とCPU−2 103と、切替機構105と、アクセス制限回路106とは、内部バス107を介して互いに接続されている。さらに、内部メモリ104とアクセス制限回路106とが専用線を介して接続されている。
従って、アクセス制限回路106によってアクセスが認められないCPU等による内部メモリ104のデータの盗み取りを防ぐ事が出来る。
CPU−1 102とCPU−2 103は、外部メモリ101または内部メモリ104に格納されたプログラム等に含まれる命令コードを解読し実行することにより、システムLSI100全体の動作、および、組み込み装置117全体の動作を制御する。なお、CPU−1 102とCPU−2 103とは、後述するリセット信号を受信している間は、何も動作を行わない。また、CPU−1 102とCPU−2 103とは、リセット信号の受信後に、後述する割込ベクタ中のリセット割込を参照することで、システムLSI100および組み込み装置117に対する制御を再開する。リセット割込とは、リセット信号が解除された直後に実行されるハンドラ(プログラム)の記憶されているメモリ領域の先頭アドレスである。
内部メモリ104は、RAM、ROMなどから構成され、図1に示すように、保護プログラム111や保護データ112を記憶する。
内部メモリ104内の保護プログラム111は、保護モードにおいて、CPU−1 102により実行されるプログラム群である。具体的には、保護モード用のオペレーティングシステム、保護モードにおいて、保護データ112を取り扱うアプリケーションプログラムなどが該当する。この保護プログラム111を構成するプログラムは、単独で、または必要に応じて他のプログラムと連携し、保護されるべき処理(例えば、暗号化された音楽データの復号、復号鍵の生成、音楽データに付随する権利情報のチェック)を行う。これらの処理が終了すると、保護プログラム111は、切替機構105内の切替レジスタ121(後述する)に通常モードを意味する値「0」を書き込む。
なお、図1では説明を簡単にするため、保護プログラム111と保護データ112とが内部メモリ104上に格納された後の状態を示しているが、これらのプログラム及びデータは、システムLSI100の起動直後に内部メモリ104へ格納されるとしても良いし、必要に応じて後から格納されるとしても良い。この場合、外部からの改竄を防止するため、これらのデータは、システムLSI100の内部の図示しない耐タンパ性を有するROMや、何らかのセキュリティ機構を備えた記録領域に記録されており、システムLSI100の起動時や保護プログラム111の実行開始時に内部メモリ104に格納される。
図1に示すように、切替機構105は、信号線108、109を介して、それぞれ、CPU−1 102、CPU−2 103と接続されている。また、信号線118を介して、アクセス制限回路106とも接続されている。
図2は、切替機構105の詳細な構成を示すブロック図である。図2に示すように、切替機構105は、切替レジスタ121、信号出力部122、CPUレジスタ退避/復帰部125及びバンク切替部110から構成されており、2つのCPUの動作モードを切り替える構成を備える。
切替レジスタ121は、数ビット長のデータを記憶することができるレジスタであって、記憶しているデータは、CPU−1 102の状態を示す。例えば、切替レジスタ121に記憶されているデータ「0」は、通常モードを示し、データ「1」は、保護モードを示す。
CPUレジスタ退避/復帰部125は、切替プログラム115の指示に従ってCPU−1 102及びCPU−2 103のレジスタ内容や処理途中のデータを外部メモリ101へ退避し、また、退避したレジスタ内容などを各CPUに復帰する。
また、CPUレジスタ退避/復帰部125は、予め、復帰アドレスを記憶している。復帰アドレスは、外部メモリ101内において、切替プログラム115が記憶されている領域内の所定の位置を示す。切替プログラム115内において、復帰アドレスの指す位置以降の部分には、退避したレジスタ内容などを各CPUに復帰させる手順、保護プログラム111による処理結果をアプリケーション114へ通知する手順が含まれる。
また、CPU−1 102が保護モードから通常モードに遷移する際、CPUレジスタ退避/復帰部125は、信号出力部122の指示により、内部バス107を介して、CPU−1 102のプログラムカウンタへ、前述の復帰アドレスを書き込む。
(3−3)信号出力部122
信号出力部122は、切替レジスタ121の値を常時監視している。
切替レジスタ121に「1」が書き込まれると、信号線108及び109を介して、CPU−1 102及びCPU−2 103へリセット信号を出力する。これにより、2つのCPUのレジスタ値などが初期化される。
また、信号出力部122は、アクセス制限回路106へアクセス許可信号を出力する。
また、切替レジスタ121に「0」が書き込まれると、信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの書き込みを指示する。
図3は、時間の経過と各CPUへのリセット信号の出力の関係とを示している。以下、図3を用いて、時間の経過と、信号出力部122によるリセット信号出力及び停止の動作について説明する。
時刻t2において、信号出力部122はアクセス許可信号をアクセス制限回路106へ出力するとともに、CPU−1 102へのリセット信号の出力を解除するが、CPU−2 103へのリセット信号の出力は継続する。
(3−4)バンク切替部110
図2に示すようにバンク切替部110は、2種類の割込ベクタを保持している。
通常モード割込ベクタ123は、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを含む。ここで、通常モード割込ベクタ123に含まれるアドレスは、何れも外部メモリ101及び組み込み装置117の保持するメモリ(図示されていないものも含む)の何れかの位置を示す。
特に、保護モード割込ベクタ124に含まれるリセット割込は、内部メモリ104内において、保護プログラム111の記憶されている領域の先頭を示すアドレスである。
信号出力部122からアクセス許可信号が出力されると、バンク切替部110は、通常モード割込ベクタ123に代えて、保護モード割込ベクタ124を、有効な割込ベクタに指定する。
有効な割込ベクタの指定の方法は任意であるが、例えば、2つの割込ベクタのうち、有効な一方の先頭にフラグを立てる方法などが考えられる。
従って、割り込み発生時には、CPU−1 102及びCPU−2 103は、2つの割込ベクタのうち、有効な割込ベクタを参照して割込処理を行う。
アクセス制限回路106は、信号線118を介して、切替機構105内の信号出力部122と接続されており、アクセス許可信号及びアクセス禁止信号を受け取る。
アクセス制限回路106は、アクセス許可信号を受け取ると、内部バス107と内部メモリ104とを接続し、アクセス禁止信号を受け取ると、内部バス107と内部メモリ104とを遮断する。
(5)システムLSI100の構成のまとめ
このようにすることで、保護を必要としない処理において、通常モードである2つのCPUが内部メモリ104内のデータを参照することはない。また、保護を必要とする処理において、保護モードであるCPU−1 102は、内部メモリ104内のデータ、プログラムを参照して処理を行い、システムLSI100内で処理が完結するため、システムLSI100の外に不正なプログラムが存在したとしても、このプログラムが実行されることはない。
さらに、バンク切替部110は、CPUの動作モードが切り替わるときに、割込ベクタを各モード用のものに変更する。そのため、通常モードでは、割込発生時に、各CPUが、内部メモリ104を参照することはないし、保護モードでは、CPU−1 102は、内部メモリ104を参照し、外部メモリ101等を参照することはない。
<システムLSI100以外の部分についての説明>
続いて、組み込み装置117の他の部分について説明を行う。
(1)アプリケーション114a及び114b
アプリケーション114a及び114bは、いずれも組み込み装置117全体の制御を行うためのプログラムである。本実施の形態では、具体的には、図示されていないフラッシュメモリなどから音楽データを取得し、再生、複製などを実行する手順を含む。2つのアプリケーションは、それぞれ、データ形式の異なる音楽データを再生する手順を含んでいる。以後、これらを特に区別する必要がない場合、単にアプリケーション114と記載する。
アプリケーション114は、随時CPU−1 102またはCPU−2 103により参照されて実行される。このアプリケーション114は、セキュリティ面から見た重要度が比較的低く、また、組み込み装置117全体の制御を行う関係上サイズが大きいため、大きさに制限がある内部メモリ104ではなく、外部メモリ101に格納されている。
切替プログラム115は、切替機構105を制御して、システムLSI100内のCPUのモード遷移を開始させる手順を含むプログラムである。
具体的には、アプリケーション114から、呼び出しを受けると、切替機構105内の切替レジスタ121に「1」を書き込手順を含む。
なお、切替プログラム115は、他のプログラムから不定期に発生する要求を受け付ける必要がある。従って、本実施の形態における切替プログラム115は、システムLSI100上の全てのCPUが通常モードで動作している間はCPU−1 102にてバックグラウンドで動作し続けているものとする。
オペレーティングシステム116は、アプリケーション114などに対して動作環境を提供するプログラムである。なお、オペレーティングシステム116は、基本ソフト、オペレーションシステムやOSと呼ばれる場合もある。
1.3 動作
(1)組み込み装置117の動作
ここでは、組み込み装置117の動作について、図4にて示すフローチャートを用いて説明する。
組み込み装置117が起動するとシステムLSI100に電源が投入される(ステップS100)。
システムLSI100が起動すると、オペレーティングシステム116が起動される(ステップS101)。オペレーティングシステム116は、アプリケーション114や切替プログラム115を起動させる。本実施の形態において、切替プログラム115は、アプリケーション114から呼び出しを受けるまで、CPU−1 102で、待機する(ステップS102)。
切替プログラム115は、アプリケーション114から依頼を受け付けると、切替機構105へ各CPUのレジスタ内容などの退避を指示する。
次に、切替プログラム115の制御により、切替機構105は、CPU−1 102を保護モードへ遷移させ、CPU−2 103を停止させる(ステップS105)。保護モードへの遷移の詳細に関しては、後述する。
通常モードに復帰したCPU−1 102は、切替プログラム115の実行を再開し、切替プログラム115は、切替機構105へ、2つのCPUのレジスタ内容の復帰を指示する。
次に、切替プログラム115は、保護プログラム111による処理結果を、アプリケーション114に通知する(ステップS109)。
(2)保護モードへの遷移動作
図4のステップS105にて行われる保護モードの遷移動作では、アプリケーション114から保護されるべき処理が要求されると、切替プログラム115は、切替機構105を制御して、CPU−1 102を通常モードから保護モードに遷移させ、CPU−2 103を停止させる。
切替プログラム115は、切替機構105内の切替レジスタ121に「1」を書き込む(ステップS121)。
切替レジスタ121に「1」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、信号線108と信号線109を介して、CPU−1 102とCPU−2 103にリセット信号を入力する(ステップS123)。
割込ベクタの変更(ステップS124)が終了すると、信号出力部122は、CPU−1 102へのリセット信号を解除する(ステップS126)。この操作によって、CPU−1 102は動作することが可能となる。
アクセス許可信号を受け取ると、アクセス制限回路106は、内部バス107と内部メモリ104とを接続する(ステップS128)。
(3)通常モードへの遷移動作
図4のステップS107にて行われる通常モードへの遷移動作は、保護プログラム111による保護すべき処理が終了した場合や、ユーザからのキー入力などの保護プログラム111の実行よりも優先すべき通常モードの処理を行う場合など、保護プログラム111の処理を中断もしくは終了する必要が生じると、開始される。
CPU−1 102により実行されている保護プログラム111は、切替機構105内の切替レジスタ121に「0」を書き込む(ステップS131)。
切替レジスタ121に「0」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの設定を指示し、CPUレジスタ退避/復帰部125は、記憶している復帰アドレスを、CPU−1 102のプログラムカウンタに書き込む(ステップS132)。
アクセス禁止信号を受けて、アクセス制限回路106は、内部バス107と内部メモリ104とを遮断する(ステップS134)。
また、切替機構105内のバンク切替部110は、保護モード割込ベクタ124に代えて通常モード割込ベクタ123を有効にする(ステップS136)。この操作によって、割込ベクタは、保護モード遷移前と同様の設定に戻る。
なお、音楽再生中にユーザからの入力があった場合など、保護モードで動作中の保護プログラム111の動作を中断させる形で復帰処理が行われる場合には、遅くともステップS132の処理が行われるまでに、CPUレジスタ退避/復帰部125は、CPU−1 102のレジスタ内容や処理途中のデータなどを、内部メモリ104に格納する。その後、保護プログラム111の動作を再開する場合に、内部メモリ104に格納してあった、レジスタ内容や処理途中のデータをCPU−1 102に戻すことで、保護プログラム111の動作を再開させることができる。
以上で述べたように、実施の形態1における組み込み装置117では、システムLSI100内のCPU−1 102が保護モードに切り替わると、保護モードで動作するCPU−1 102のみを動作させ、他のCPUであるCPU−2 103については、リセット信号を入力し続けることによって動作を停止させる。これにより、保護モードで動作しているCPU−1 102が内部メモリ104を使って、保護されるべき処理を行っている間には、CPU−2 103はいかなる処理も実行できなくなるので、内部メモリ104内の保護プログラム111及び保護データ112を奪われる危険性を低減できる。すなわち、内部メモリ104内のデータなどの不正な取得や書き込みを目的とした不正なプログラムを外部メモリ101に書き込み、CPU−2 103に実行させようとしても、CPU−2 103は何の動作も行えない状態にあるので、マルチCPU環境下でも安全に保護プログラム111及び保護データ112の処理を行うことができる。
なお、上記の実施の形態では、CPU−1 102のみが保護モードで動作するとしたがCPU−2 103のみが動作するとしても構わないことは言うまでもない。すなわち、保護モードに切り替わっているCPUのみを動作可能とすればよいのであって、どちらのCPUを動作させてどちらのCPUを停止させるかは、その時々の組み込み装置117の処理状況に応じて随時変更してもよい。組み込み装置117の状況の具体例としては、通常モードから保護モードへの切り替えが開始した時点でどちらのCPUに大きな負荷がかかっているかなどである。また、CPU−1 102とCPU−2 103とで異なるアーキテクチャや処理能力を持つ場合には、保護すべき処理を行う場合にどちらのCPUの方が適しているかを判断して、より適していると判断された方のCPUのみを動作させるとしても良い。また、このような場合、実行が中断された保護プログラム111を再開するCPUも、CPU−1 102である必要はなくなる。すなわち、CPU−2 103がCPU−1 102と同等の機能を持ち、保護プログラム111をCPU−2 103でも実行することができる場合には、再開時にCPU−2 103に対して退避していたCPU−1 102の状態を復帰させ、CPU−2 103が保護プログラム111の実行を再開するとしてもよい。
もちろん、一方のCPUを保護モードにおいて動作するCPUとして予め定めておき、他方を保護モードでの動作を許可しないCPUであると予め定めておくとしておいてもよい。
以下に、本発明の実施の形態2について図面を用いて説明する。なお、実施の形態1と同様の構成については説明を省略し、実施の形態2の特徴部分を中心に述べる。
2.1 構成
図7は、本発明の実施の形態2に関わる組み込み装置197のハードウェア構成を示すブロック図である。なお、実施の形態1と同様の構成要素については、同じ符号を付している。
実施の形態1の組み込み装置117では、CPU−1 102とCPU−2 103とは内部バス107を介してアクセス制限回路に接続していたが、実施の形態2の組み込み装置197では、CPU−1 182とCPU−2 183が、アクセス制限回路186に信号線189及び188を介して、直接接続している。
同様に、保護モードで動作しているCPUによる保護プログラム111の実行が終了したとき、保護モードで動作しているCPUからアクセス制限回路186へアクセス禁止信号が入力される。
2.2 動作
また、実施の形態1と実施の形態2の動作の違いは以下の通りである。
それに対して、実施の形態2では、保護モードに遷移したCPUからの制御によって、アクセス制限回路186が内部メモリ104へのアクセス許可、禁止を実現する。
例えば、CPU−1 182が保護モードに遷移した場合、CPU−1 182は、アクセス制限回路186にアクセス許可信号を出力する。アクセス制限回路186は、アクセス許可信号を受け取ると、内部メモリ104と内部バス107とを接続する。CPU−1 182が保護モードから通常モードに遷移すると、CPU−1 182は、アクセス制限回路186にアクセス禁止信号を出力する。アクセス制限回路186は、アクセス禁止信号を受け取ると、内部メモリ104と内部バス107との接続を遮断する。
3.実施の形態3
以下に、本発明の実施の形態3について図面を用いて説明する。なお、実施の形態1又は2と同様の構成については説明を省略し、実施の形態3の特徴部分を中心に述べる。
3.1 概要
本発明の実施の形態3に関わる組み込み装置217は、図8にて示すように、システムLSI200と、外部メモリ101とを搭載している。システムLSI200は、プロセッサ201と、CPU−2 203と、アクセス制限回路206と、内部メモリ104とを含んでおり、プロセッサ201は、CPU−1 202と切替機構205とを含んでいる。
本実施の形態では、各CPUは自身を識別する識別子(以下、IDと呼ぶ)を記憶している。
また、実施の形態1では、内部バス107と内部メモリ104との間は、保護モードによる動作中のみアクセス制限回路106を介して接続されていたが、本実施の形態では、内部バス107と内部メモリ104との間は、アクセス制限回路206を介して常時接続されているものとする。
以下、組み込み装置217に含まれる構成要素うち、CPU−1 202、切替機構205、CPU−2 203、及びアクセス制限回路206について説明する。
(1)CPU−1 202
CPU−1 202は、自身に固有のID「ID1」204を、記憶している。ID204は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
(2)切替機構205
切替機構205は、切替プログラム115からの要求に応じて、CPU−1 202を保護モードに切り替える。
また、実施の形態1の切替機構105とは異なり、CPU−1 202が通常モードから保護モードへ遷移する際、及び、保護モードで動作している間、CPU−2 203へリセット信号を出力しない。
また、バンク切替部は、CPUごとに何れの割込ベクタを用いるかを管理する。
具体的には、バンク切替部は、CPU−2 203については、常に、通常モード割込ベクタを使用するように設定する。CPU−1 201については、保護モードに遷移する際に、保護モード割込ベクタを使用するように設定し、通常モードに遷移する際に、通常モード割込ベクタを使用するように設定する。
CPU−2 203は、自身に固有のID「ID2」207を記憶している。ID207は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
CPU−2 203は、内部メモリ104へのアクセス要求を送信する際に、アクセス制限回路206へ、自身のID「ID2」も送信する。
また、CPU−1 202が保護モードで動作中であっても、リセット信号を入力されないので、CPU−2 203は、通常モードで動作することができる。
(4)アクセス制限回路206
アクセス制限回路206は、内部にメモリ208を含んで構成される。
アクセス許可信号を受け取った場合、アクセス許可信号に含まれるIDをメモリ208に記憶する。なお、本実施の形態では、アクセス制限回路206は、メモリ208にCPU−1 202を示す「ID1」を記憶する。
また、アクセス制限回路206は、CPU−1 202又はCPU−2 203から当該CPUのIDと共にアクセス要求を受け取る。
次に、アクセス制限回路206は、受け取ったアクセス要求と共に送られてきたIDがメモリ208の記憶しているIDと一致するか否かを確認する。
IDが一致しなかった場合及びメモリ208にいずれのIDも記憶されていない場合は、アクセス制限回路206は、受け取ったアクセス要求が保護モードで動作していないCPUによるアクセス要求であるとして、アクセス要求を拒否する。
以下に、組み込み装置217の動作について、実施の形態1と比較しながら説明する。
アプリケーション114からの呼び出されると切替プログラムは、切替機構205に、レジスタ内容の退避を指示する。
この指示を受けて、切替機構205は、CPU−1 202のレジスタ内容のみを退避する。
それに対して、実施の形態3では、CPU−1 202を保護モードへ遷移させる際に、切替機構205は、CPU−1 202を示すID「ID1」204を読み出し、読み出した「ID1」を含むアクセス許可信号を、アクセス制限回路206へ出力する。
次に、切替機構205は、実施の形態1とは異なり、CPU−1 202のみに所定時間リセット信号を入力し、CPU−2 203へリセット信号を出力しない。
次に切替機構205は、CPU−1のリセットベクタを保護モードリセットベクタに設定する。これにより、CPU−1 202の保護モードへの状態遷移は完了する。
アクセス制限回路206は、アクセス要求と共に受け取ったIDと、メモリ208に記憶している「ID1」とを比較する。
より具体的には、保護モードで動作しているCPU−1 202が内部メモリ104にアクセスを行おうとする場合、CPU−1 202は、アクセス要求と共にCPU−1 202を示すID「ID1」204もアクセス制限回路206に通知される。アクセス制限回路206は、メモリ208に記憶されている「ID1」とアクセス要求と共に届いた「ID1」とを比較し、両者が一致することを確認する。これにより、アクセス要求を許可し、CPU−1 202は、内部メモリ104へアクセスする。
通常モードへの遷移の処理中において、切替機構205は、CPU−1 202のID「ID1」204を含むアクセス禁止信号をアクセス制限回路206へ出力する。
以後、アクセス制限回路206内のメモリには、いずれのIDも記憶されていないため、アクセス制限回路206は、何れのCPUからのアクセス要求も却下する。
3.4 まとめ
実施の形態3では、実施の形態1や2と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
なお、上記の実施の形態3では、切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、内部バス107を介して、アクセス制限回路206へ出力するとしたが、これに限定されない。切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、信号線を介してアクセス制限回路206へ出力するとしてもよい。
この場合、アクセス許可信号やアクセス禁止信号を受け取る度にIDを格納したり削除したりするのではなく、アクセス許可信号を受け取った後、アクセス禁止信号を受け取るまでの間は、そのIDに対応するCPUによるアクセスを許可するようにしてもよい。
以下に、本発明の実施の形態4について図面を用いて説明する。なお、実施の形態1〜3と同様の構成については説明を省略し、実施の形態4の特徴部分を中心に述べる。
4.1 概要
本発明の実施の形態4に関わる組み込み装置237は、図9にて示すように、システムLSI220と、外部メモリ101とを搭載している。システムLSI220は、プロセッサ1 221と、プロセッサ2 228と、アクセス制限回路227と、内部メモリ104とを含んでいる。
各プロセッサは、当該プロセッサにおける動作モードを示すモード情報を記憶しており、内部メモリ104へアクセス要求を行う際に、記憶しているモード情報をもアクセス制限回路227へ出力する。
なお、本実施の形態では、実施の形態3と同様に、内部バス107と内部メモリ104とは、アクセス制限回路227を介して常時接続されているものとする。
4.2構成
以下、組み込み装置237に含まれる構成要素のうちプロセッサ1 221、プロセッサ2 228及びアクセス制限回路227について説明する。
プロセッサ1 221とプロセッサ2 228の構成は同様であるのでここでは、プロセッサ1 221についてのみ説明する。
図9に示すように、プロセッサ1 221は、CPU−1 222と切替機構225とを含んで構成される。
CPU−1 222は、ステータスレジスタ224を含む。ステータスレジスタ224は、CPU−1 222の現在の動作モードを示すモード情報を記憶している。具体的に、モード情報「1」は保護モードを示し、モード情報「0」は通常モードを示す。
内部メモリ104へアクセス使用とする場合、CPU−1 222は、ステータスレジスタ224の記憶しているモード情報を読み出し、内部バス107を介して、アクセス要求と共に読み出したモード情報をアクセス制限回路227へ出力する。
(1−2)切替機構225
切替機構225は、CPU−1 222のモード切替のみを実行する。切替機構225内部の詳細な構成は、実施の形態1において説明した切替機構225とほぼ同様であるが、信号出力部は、CPU−1 222のみへリセット信号を出力する。
また、バンク切替部は、CPU−1 222の参照する割込ベクタのみを管理し、CPU−1 222のみが2つの割込ベクタのうち有効な一方を参照する。
また、切替機構225内の信号出力部は、CPU−1 222が保護モードに遷移すると、CPU−1 222内のステータスレジスタ224にモード情報「1」を書き込む。
(2)アクセス制限回路227
アクセス制限回路227は、CPU−1 222またはCPU−2 223からのアクセス要求とモード情報とを受け取る。
受け取ったモード情報が、保護モードを示す「1」である場合、アクセス制限回路227は、内部メモリ104へのアクセスを許可する。逆に、受け取ったモード情報が、通常モードを示す「0」である場合は、アクセス要求を拒否する。
続いて、実施の形態4の組み込み装置237の動作について、実施の形態3と比較しながら説明する。
実施の形態3では、切替機構が保護モードに遷移したCPUのIDを含むアクセス許可信号及びアクセス禁止信号をアクセス制限回路に事前に出力し、アクセス制限回路は、切替機構から受け取ったアクセス許可信号及びアクセス禁止信号に含まれるIDを基に、保護モードで動作しているCPUのIDを記憶していた。
それに対して、実施の形態4では、プロセッサ1に含まれる切替機構225は、CPU−1 222の動作モードを切り替えるが、その切り替えに当たって他の構成部へ信号を出力したりはしない。その代わり、切替機構225は、CPU−222内部のステータスレジスタ224にモード情報を書き込む。
アクセス制限回路227は、CPU−1 222からアクセス要求と共にモード情報を受け取る。受け取ったモード情報が「1」であれば、内部メモリ104へのアクセスを許可し、「0」であればアクセスを拒否する。
4.4 まとめ
実施の形態4でも他の実施の形態と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
上記の差異以外は、実施の形態3と実施の形態4は同一であるため、説明は省略する。
なお、本発明を上記の実施の形態1〜4に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の実施の形態では、切替プログラムは、各CPUの保護モードへの遷移を常に実行していたが、これに限られるものではない。例えば、アプリケーションからの依頼の優先度に従って、保護モードに遷移しない制御を行なってもよい。
また、CPU−1で実行中のプログラムとCPU−2で実行中のプログラムの優先度を比較し、比較結果に応じて保護モードへ切り替える/切り替えないの制御を行っても良い。例えば、CPU−1で通常モード用のプログラム(保護を必要としないプログラム)であるが重要なプログラムを実行中である場合に保護モードへ切り替えを行うと、CPU−1が保護モード用の処理に占有されてしまい、CPU−1で実行中の通常モード用の重要なプログラムの処理が中断されてしまう。
CPU−1で実行中のプログラムの優先度が高い場合、切替プログラムは、優先度の高いプログラムの実行を優先し、このプログラムの処理が終了した後、CPU−1を保護モードに遷移させる制御を開始する。
若しくは、割込の種類に応じて、保護モード割込ベクタに含まれるアドレスの示す領域に格納されているハンドラ(例えば、内部メモリに格納された中断プログラム)により実現されるとしてもよい。
さらに、プログラム単位でアクセス許可/禁止を通知したりしてもよい。すなわち、CPUのモード遷移のタイミングと異なるタイミングで許可/禁止の通知を行ってもよい。
(6)上記の実施の形態では、切替プログラムはCPU−1で動作していたが、CPU−2で動作してもよい。さらに、上記の実施の形態では、切替プログラムと保護プログラムが同一のCPUで動作していたが、異なるCPUで動作するとしてもよい。
(8)上記の実施の形態1では、ステップS132において、切替プログラム115の復帰アドレスをCPU−1のプログラムカウンタに設定していたが、これに限られるものではない。例えば、切替機構が復帰アドレスを格納するレジスタを備えており、切替機構がリセット信号を出力する前に、切替プログラムが、そのレジスタに自身の復帰アドレスを書き込むとしてもよい。
保護モードに遷移することができるCPUが複数ある場合、同時に複数のCPUが保護モードで動作できる構成であっても良いし、1個のCPUが保護モードで動作している間、他のCPUは保護モードに遷移できない構成であってもよい。
また、実施の形態3または4のように保護プログラムを実行しているCPU以外のCPUが通常モード用の処理を実行できる場合には、通常モード用の処理をより多くのCPUで処理させることで、システム全体の処理性能を向上させることができる。
(10)上記実施の形態1および2では、リセット信号を投入し続けることによってCPU−2を停止していたが、他のCPUが保護モードで動作している間は停止するような特殊なCPUを用いて本発明を実現しても良いことは言うまでもない。例えば、このような特殊なCPUをCPU−2として用いる場合、切替機構からCPU−2に対して、CPU−1の現在のモードが通常モードであるか保護モードであるかの通知を送り、その通知を受けてCPU−2は停止したり動作を再開したりする。
この構成では、モード情報を保持及び通知する機能を持つCPUと、そのような特殊な機能を持たない通常のCPUとを混在させてシステムを構築することができるので、全てのCPUにモード情報を通知する機能を持たせるよりも安価に本発明を実施できる。
(12)上記の実施の形態では、通常モードで動作するプログラムおよびデータは、外部メモリ101に格納されていたが、これに限られるものではない。暗号化技術等を用いて、保護プログラム及び保護データに通常モードのCPUがアクセスできないような処理が施されていれば、通常モードのCPUが内部メモリを用いて通常モードで動作するプログラムおよびデータに対する処理を行っても構わない。
(14)また、上記の実施の形態3および4では、切替機構はCPUのプロセッサ内部にあるものとしたが、これに限られるものではなく、例えば、専用線を介して各CPUに接続されているものとしてもよい。
例えば、上記の実施の形態と同様の保護プログラムの実行方法を持ったDVDプレイヤー等の動画再生装置等であってもよいし、パーソナルコンピュータ、携帯電話、デジタルカメラ、ゲーム機など、様々な機器であることが考えられる。すなわち、本発明の組み込み装置は、保護されるべきプログラム又は保護されるべきデータを取り扱う処理装置であれば、どのようなものであってもよい。
また、上記の実施の形態では、バンク切替部の保持する保護モード割込ベクタに含まれるリセット割込を用いて、保護モードへの遷移時に保護プログラムを実行するよう制御していた。しかし、上記の制御に替えて、例えば、いずれかのCPUが保護モードで動作している最中には、保護モードで動作しているCPUからの外部メモリへのアクセス要求を却下するような機構を設けてもよい。例えば、外部メモリと内部バス間を接続したり、遮断したりするスイッチ機構を設けることで実現できる。このとき、切替機構の信号出力部は、切替レジスタに「1」が書き込まれると、外部メモリと内部バス間を遮断する旨の遮断信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記遮断信号を受け取ると、外部メモリと内部バス間を遮断する。また、信号出力部は、切替レジスタに「0」が書き込まれると、外部メモリと内部バス間を接続する旨の接続信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記接続信号を受け取ると、外部メモリと内部バス間を接続する。
さらに、CPU自体に、切替機構からの信号線を介して保護モードへの切り替えを指示する切り替え信号を受信する構成を持たせ、この切り替え信号を受信すると、システムLSI内部(つまり内部メモリ)に記録されたプログラムを起動または実行するように構成することで、CPUの保護モードを実現しても構わない。例えば、切替機構は、モードの切り替え対象となるCPUに対してのみ当該切り替え信号を出力し、他のCPUに対しては停止するように制御する(保護モードの間は当該他のCPUに対してリセット信号を出力し続ける)。
(17)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に実装しなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
(19)システムLSIは集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもあるが、上記の各実施のシステムLSIを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
(20)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−rayDisc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
(23)前記変形例(22)の集積回路において、切り替え部は、さらに、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段以外の実行手段に対して、前記実行手段をリセット状態にするリセット信号を通知することで、前記実行手段を停止させるとしてもよい。
このような構成により、本発明に関する集積回路は、リセット信号のみを利用して実行手段を停止させることができるので、特殊な構成を持たない汎用的な実行手段を用いて実現することができる。
(26)また、前記変形例(25)の集積回路において、前記切り替え部は、さらに、前記保護されたプログラムの優先度が、前記保護の不要なプログラムの優先度より低い場合に、前記切り替えプログラムによって制御されるとしてもよい。
(27)また、変形例(26)の集積回路において、前記切り替え機構は、さらに、前記通常モードから前記保護モードへの切り替えの際に、前記複数の実行手段の状態を退避し、前記保護モードから前記通常モードへの切り替えの際に、前記退避した前記複数の実行手段の状態を復帰する、前記切り替えプログラムによって制御されるとしてもよい。
(28)また、変形例(27)の集積回路において、前記アクセス制限部は、前記切り替え部からの通知によって制御され、前記切り替え部は、前記保護モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを許可するよう通知し、前記切り替え部は、前記通常モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを不許可するよう通知するとしてもよい。
(31)上記の変形例(30)の集積回路において、実行されている前記保護されたプログラムの状態は、前記保護モードから前記通常モードへの切り替えの際に、前記保護されたプログラムを実行させた実行手段から取得され、前記通常モードから前記保護モードへの切り替えの際に、前記保護されたプログラムを実行する実行手段に復帰されるとしても良い。
(32)また、上記の変形例(21)の集積回路において、前記複数の実行手段のうち、前記少なくとも1つの実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて前記保護されたプログラムを実行し、前記複数の実行手段のうち、前記少なくとも1つの実行手段を除く実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて自身の動作を停止し、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへ切り替えの際に、前記保護モードへの切り替えの通知を前記複数の実行手段に送信する切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
(33)上記の変形例(21)の集積回路において、前記複数の実行手段は、それぞれ、前記内部メモリへのアクセス要求とともに自身を識別する識別情報を通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段の識別情報を通知する切り替え部と、前記切り替え部から前記保護されたプログラムを実行させた実行手段の識別情報の通知を受け取り、前記実行手段のうち、前記アクセス要求とともに通知された識別情報が、通知された識別情報と一致する場合に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
(34)上記の変形例(21)の集積回路において、前記実行手段は、自身の前記内部メモリへのアクセス要求とともに自身が前記保護されたプログラムを実行したか否かを通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記1つ以上の処理手段に保護されたプログラムを実行させる切り替え部と、前記実行手段から、前記アクセス要求とともに前記保護されたプログラムを実行した旨が通知されると前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしても良い。
(35)また、本発明は、外部メモリと、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路とを備えた処理装置であって、前記外部メモリは、前記保護が不要なプログラムを格納し、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えるとしても良い。
101 外部メモリ
102 CPU−1
103 CPU−2
104 内部メモリ
105 切替機構
106 アクセス制限回路
107 内部バス
110 バンク切替部
117 組み込み装置
121 切替レジスタ
122 信号出力部
123 通常モード割込ベクタ
124 保護モード割込ベクタ
125 CPUレジスタ退避/復帰部
Claims (23)
- 保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスと、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
を備えることを特徴とする情報処理装置。 - 前記制御手段は、
保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、
保護すべき処理の期間、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部と
を備えることを特徴とする請求項1に記載の情報処理装置。 - 前記アクセス制御部は、
前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させる
ことを特徴とする請求項2に記載の情報処理装置。 - 前記情報処理装置は、さらに、
前記少なくとも1のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第1の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第2の割込ベクタを有効にすることにより、前記少なくとも1のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を
備えることを特徴とする請求項3に記載の情報処理装置。 - 前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも1のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、
前記情報処理装置は、さらに、
前記切替プログラムの指示に従って、前記少なくとも1のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備える
ことを特徴とする請求項3に記載の情報処理装置。 - 前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも1のプロセッサに対してリセット信号の出力を解除する
ことを特徴とする請求項4に記載の情報処理装置。 - 前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、
前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも1のプロセッサに対して、前記第2の割込ベクタに代えて、前記第1の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替える
ことを特徴とする請求項6に記載の情報処理装置。 - 前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、
前記情報処理装置は、さらに、
前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、
比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段と
を備えることを特徴とする請求項3に記載の情報処理装置。 - 前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項2に記載の情報処理装置。 - 前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項2に記載の情報処理装置。 - 前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させる
ことを特徴とする請求項2に記載の情報処理装置。 - 前記アクセス制御部は、
前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも1のプロセッサがセキュアメモリを参照するように制御する
ことを特徴とする請求項2に記載の情報処理装置。 - 前記制御手段は、さらに、
前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現する
ことを特徴とする請求項13に記載の情報処理装置。 - 前記制御手段は、前記他のメモリと前記バスとの接続を切断する
ことを特徴とする請求項14に記載の情報処理装置。 - 前記複数のプロセッサは、それぞれ固有の識別子によって識別され、
前記制御手段は、
前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、
前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、
取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、
比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部と
を含むことを特徴とする請求項1に記載の情報処理装置。 - 前記少なくとも1以上のプロセッサそれぞれは、
前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、
前記制御手段は、
前記1以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、
処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去する
ことを特徴とする請求項16に記載の情報処理装置。 - 前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、
前記制御手段は、
アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記複数のプロセッサそれぞれは、
処理情報を記憶する情報記憶手段と、
前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含む
ことを特徴とする請求項18に記載の情報処理装置。 - 前記情報処理装置は、
前記セキュアメモリとは異なり、他の処理の期間において使用される他のメモリと、
前記セキュアメモリと、前記複数のプロセッサと、前記バスと、前記スイッチ手段と、前記制御手段とを含む集積回路とから構成されている
ことを特徴とする請求項1に記載の情報処理装置。 - 保護すべき処理と他の処理とを切り換えて動作する集積回路であって、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスと、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
を備えることを特徴とする集積回路。 - 保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられる方法であって、
前記情報処理装置は、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスとを備え、
前記方法は、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
含むことを特徴とする方法。 - 保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられるコンピュータ読み取り可能な記録媒体に記録されたプログラムであって、
前記情報処理装置は、
保護すべき情報を記憶するためのセキュアメモリと、
それぞれプログラムに従って動作する複数のプロセッサと、
前記複数のプロセッサを相互に接続するバスとを備え、
前記プログラムは、
保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
含むことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008551030A JP5161791B2 (ja) | 2006-12-22 | 2007-12-13 | 情報処理装置、集積回路、方法、およびプログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006346714 | 2006-12-22 | ||
JP2006346714 | 2006-12-22 | ||
JP2008551030A JP5161791B2 (ja) | 2006-12-22 | 2007-12-13 | 情報処理装置、集積回路、方法、およびプログラム |
PCT/JP2007/074006 WO2008078564A1 (ja) | 2006-12-22 | 2007-12-13 | 情報処理装置、集積回路、方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008078564A1 true JPWO2008078564A1 (ja) | 2010-04-22 |
JP5161791B2 JP5161791B2 (ja) | 2013-03-13 |
Family
ID=39562358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008551030A Active JP5161791B2 (ja) | 2006-12-22 | 2007-12-13 | 情報処理装置、集積回路、方法、およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8060716B2 (ja) |
EP (1) | EP2040192A4 (ja) |
JP (1) | JP5161791B2 (ja) |
WO (1) | WO2008078564A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5040859B2 (ja) * | 2008-08-28 | 2012-10-03 | 富士通株式会社 | 情報漏洩防止プログラムおよび情報漏洩防止方法 |
US8108908B2 (en) * | 2008-10-22 | 2012-01-31 | International Business Machines Corporation | Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor |
US8555089B2 (en) * | 2009-01-08 | 2013-10-08 | Panasonic Corporation | Program execution apparatus, control method, control program, and integrated circuit |
JP5106432B2 (ja) * | 2009-01-23 | 2012-12-26 | 株式会社東芝 | 画像処理装置、方法、及びプログラム |
US8219772B2 (en) * | 2009-07-02 | 2012-07-10 | Stmicroelectronics (Research & Development) Limited | Loading secure code into a memory |
US20120054773A1 (en) * | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Processor support for secure device driver architecture |
US8797414B2 (en) | 2010-12-23 | 2014-08-05 | Samsung Electronics Co., Ltd. | Digital image stabilization device |
US9087196B2 (en) * | 2010-12-24 | 2015-07-21 | Intel Corporation | Secure application attestation using dynamic measurement kernels |
JP2012174228A (ja) * | 2011-02-24 | 2012-09-10 | Kyocera Corp | プログラム保護装置および通信装置 |
US8713262B2 (en) * | 2011-09-02 | 2014-04-29 | Nvidia Corporation | Managing a spinlock indicative of exclusive access to a system resource |
JP5541275B2 (ja) * | 2011-12-28 | 2014-07-09 | 富士通株式会社 | 情報処理装置および不正アクセス防止方法 |
US9171170B2 (en) * | 2012-08-17 | 2015-10-27 | Broadcom Corporation | Data and key separation using a secure central processing unit |
US9881161B2 (en) * | 2012-12-06 | 2018-01-30 | S-Printing Solution Co., Ltd. | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof |
EP3506143B1 (en) * | 2017-12-27 | 2024-02-14 | Siemens Aktiengesellschaft | Interface for a hardware security module |
TWI741271B (zh) * | 2018-10-02 | 2021-10-01 | 智微科技股份有限公司 | 資料保護方法以及相關儲存裝置 |
US11144217B2 (en) * | 2018-10-02 | 2021-10-12 | Jmicron Technology Corp. | Data protection method and associated storage device |
JP7210238B2 (ja) * | 2018-11-15 | 2023-01-23 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及び、プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938164B1 (en) * | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7603551B2 (en) * | 2003-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
AU2003231070A1 (en) * | 2002-04-18 | 2003-11-03 | Advanced Micro Devices Inc. | A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path |
DE60311441T2 (de) * | 2002-04-18 | 2007-11-08 | Advanced Micro Devices Inc., Sunnyvale | Initialisierung eines rechnersystems mit einem für einen sicheren ausführungsmodus geeigneten prozessor |
CN1322385C (zh) * | 2002-08-13 | 2007-06-20 | 诺基亚有限公司 | 用于提供数据安全性的电路系统和方法 |
EP1535124B1 (en) * | 2002-08-13 | 2011-02-02 | Nokia Corporation | Computer architecture for executing a program in a secure of insecure mode |
US7503049B2 (en) | 2003-05-29 | 2009-03-10 | Panasonic Corporation | Information processing apparatus operable to switch operating systems |
JP2005011336A (ja) | 2003-05-29 | 2005-01-13 | Matsushita Electric Ind Co Ltd | オペレーティングシステム切り替え可能な情報処理装置 |
JP4263976B2 (ja) | 2003-09-24 | 2009-05-13 | 株式会社東芝 | オンチップマルチコア型耐タンパプロセッサ |
US7793083B2 (en) | 2004-11-26 | 2010-09-07 | Panasonic Corporation | Processor and system for selectively disabling secure data on a switch |
JP4601557B2 (ja) | 2005-02-07 | 2010-12-22 | 株式会社ソニー・コンピュータエンタテインメント | マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置 |
-
2007
- 2007-12-13 WO PCT/JP2007/074006 patent/WO2008078564A1/ja active Application Filing
- 2007-12-13 JP JP2008551030A patent/JP5161791B2/ja active Active
- 2007-12-13 US US12/375,977 patent/US8060716B2/en active Active
- 2007-12-13 EP EP07850527A patent/EP2040192A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2040192A1 (en) | 2009-03-25 |
WO2008078564A1 (ja) | 2008-07-03 |
US8060716B2 (en) | 2011-11-15 |
JP5161791B2 (ja) | 2013-03-13 |
EP2040192A4 (en) | 2011-03-30 |
US20100005264A1 (en) | 2010-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5161791B2 (ja) | 情報処理装置、集積回路、方法、およびプログラム | |
EP2113860B1 (en) | Rights object moving method and corresponding content player | |
JP4157595B2 (ja) | セキュア処理装置、方法、プログラム | |
US8689212B2 (en) | Information processing device for controlling an application able to access a predetermined device, and control method using an information processing device for controlling an application able to access a predetermined device | |
US7761717B2 (en) | Memory device with data security in a processor | |
JP4886682B2 (ja) | データ処理装置 | |
JP4294083B2 (ja) | 電子機器、コンテンツ再生制御方法、プログラム、記憶媒体、集積回路 | |
EP2397958B1 (en) | Computing system providing normal security and high security services | |
EP2062191B1 (en) | System and method for securely restoring a program context from a shared memory | |
JP2007035057A (ja) | 記録装置、制御装置、及び記録装置の記録方法 | |
US20100058066A1 (en) | Method and system for protecting data | |
US20110035783A1 (en) | Confidential information leak prevention system and confidential information leak prevention method | |
JP2004240536A (ja) | 情報処理装置 | |
JP2006079449A (ja) | 記憶媒体アクセス制御方法 | |
JP2008524754A (ja) | イン−ストリームデータの暗号化/復号およびエラー訂正の機能を有するメモリシステム | |
JP4255470B2 (ja) | デジタルコンテンツ録画装置及び耐タンパモジュール | |
US8752205B2 (en) | Apparatus and method for managing digital rights management contents in portable terminal | |
JP2006065503A (ja) | 権利情報を格納した記録媒体、情報処理装置及び権利情報の管理方法 | |
JP4972692B2 (ja) | Dma制御装置およびデータ転送方法 | |
JP2013137717A (ja) | 不揮発性記憶装置、アクセス制御プログラムおよび記憶制御方法 | |
JPWO2008136187A1 (ja) | 記録装置、記録方法、集積回路、及び記録プログラム | |
JP2001249804A (ja) | 情報処理装置及び記録媒体 | |
US20060007738A1 (en) | Area management type memory system, area management type memory unit and area management type memory controller | |
WO2010073510A1 (ja) | 情報処理装置およびそのメモリ制御方法 | |
JP2003223362A (ja) | メモリ保護回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121009 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121024 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5161791 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151221 Year of fee payment: 3 |