JPWO2008078564A1 - 情報処理装置、集積回路、方法、およびプログラム - Google Patents

情報処理装置、集積回路、方法、およびプログラム Download PDF

Info

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
Application number
JP2008551030A
Other languages
English (en)
Other versions
JP5161791B2 (ja
Inventor
伊藤 孝幸
孝幸 伊藤
前田 学
学 前田
好克 井藤
好克 井藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2008551030A priority Critical patent/JP5161791B2/ja
Publication of JPWO2008078564A1 publication Critical patent/JPWO2008078564A1/ja
Application granted granted Critical
Publication of JP5161791B2 publication Critical patent/JP5161791B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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

処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置を提供することを目的とする。複数のCPUを搭載したシステムLSI100において、CPU−1 102が保護モードへ遷移する場合、先ず、CPU−1 102とCPU−2 103にリセットを行う。保護モード実行中には、CPU−1 102のみで保護プログラムを実行し、CPU−2 103にはリセット信号を投入し続けることでCPU−2 103の動作を停止させる。

Description

本発明は、処理能力が高い装置等で、保護されるべきプログラムやデータを安全に取り扱う技術に関するものである。
近年、民生機器では、音楽データをディジタル化して記憶装置に取り込み、音楽を楽しむということが行われるようになっている。また、音楽データの取り扱いのみならずHD画像など、より表現能力が高いコンテンツの取り扱いが民生機器に求められるようになっている。
上述したHD画像等の表現能力が高いコンテンツを処理するには、民生機器の処理能力の向上が必要である。処理能力を向上させる手法としては、Personal Computer(PC)の分野では、マルチCPU(マルチプロセッサとも呼ばれる)が用いられている。マルチCPUとは、従来1つのCPUで行っていた処理を複数のCPUに分担させることで、処理時間を短縮させる技術である。
一方で、ディジタル化された音楽データや上記HD画像等は、劣化なしで複製することが可能である。そこで、著作権者の利益を保護するために、これらのデータは不正利用されない環境で取り扱われなければならない。
このような、複数のCPUを搭載した機器において、保護されるべきデータの不正利用を抑制する技術が、特許文献1に開示されている。特許文献1に記載の技術(以下、第1の従来技術という。)では、以下の技術が開示されている。各CPUには、それぞれのCPUに固有の鍵が割り当てられており、保護すべきプログラムやデータは、そのプログラムやデータを取り扱うCPUと対応する鍵を用いて暗号化された状態で外部メモリに記憶されている。各CPUが、外部メモリに記憶されているデータやプログラムを利用しようとするとき、そのCPUに対応する鍵を用いて、バス暗号回路が復号処理を施して、復号後のデータ又はプログラムをCPUへ出力する。
しかし、プログラムやデータがコンテンツの再生許可回数などの権利情報を含む場合に、外部メモリの内容を丸ごとバックアップした上で、権利を消費し、その後、バックアップしておいた権利情報を元に戻すという不正利用(以下、バックアップ・リストア攻撃と呼ぶ)を防止することができない。この場合、元に戻した権利情報もバス暗号回路で正しく復号されてしまうので、消費したはずの権利を元に戻すことができる。そのため、第1の従来技術では、保護されるべき情報を安全に扱うことはできない。
そこで、より確実にデータやプログラムを保護するために、別の技術として、1つのCPU(シングルプロセッサ)を搭載した機器において、保護すべきデータに関する処理と、保護を必要としないデータに関する処理とを切り替えて処理を行う技術がある(以下、第2の従来技術という。)。
第2の従来技術の前記機器において、保護すべきデータに関する処理を行う実行環境をシステムLSI内部の内部メモリとCPUの専用モードとで実現している。なお、以下ではこのような実行環境を保護モードと呼ぶ。第2の従来の技術では、システムLSIが保護モードでないモードで動作している時(以下、通常モードと呼ぶ)には、内部メモリへのアクセスが遮断される。ここで、通常モードから保護モードへの切り替えが起こると、CPUはリセットされたのち、システムLSI内部の保護されたプログラムを起動させる。この保護されたプログラムは、システムLSI内部のROM等に記録されており、外部からの改竄は困難なプログラムである。また、システムLSIは保護モードへの切り替えが起こると、内部メモリへのアクセスが許可される。このような制御を行うことで、システムLSIが通常モードで動作している間は、内部メモリへのアクセスができない。また、保護モードへ切り替わると、内部メモリへのアクセスが許可されるが、ここで内部メモリへアクセスできるプログラムは、専用モードに遷移したCPUが動作させている改竄困難なプログラム(もしくは改竄困難なプログラムが呼び出した他のプログラム)であるので、内部メモリ上のデータを取り扱うプログラムを安全なものに限ることができる。
このように、1つのCPUを搭載した機器において、保護すべきデータに関する処理と保護を必要としないデータに関する処理とを切り替えることにより、セキュアメモリへの不正なアクセスを防止して、内部メモリ上のデータを安全に利用することができる。
特開2005−99984号公報
第1の従来技術では、HD画像等の表現能力が高いコンテンツを処理するための処理能力は高いが、バックアップ・リストア攻撃を防止することができない。そのため、第1の従来技術では、保護されるべき情報を安全に扱うことはできない。
一方、第2の従来技術では、保護されるべき情報を安全に扱うことができるが、プロセッサが1つであるので、HD画像等の表現能力が高いコンテンツを処理するための処理能力は低い。
つまり、第1及び第2の技術それぞれは、HD画像等の表現能力が高いコンテンツを処理するための処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができない。
そこで、本発明は、処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置、集積回路、方法及びプログラムを提供することを目的とする。
上記目的を達成するために、本発明は、保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、保護すべき情報を記憶するためのセキュアメモリと、それぞれプログラムに従って動作する複数のプロセッサと、前記複数のプロセッサを相互に接続するバスと、保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段とを備えることを特徴とする。
上記の構成によると、情報処理装置は、保護すべき処理の期間において少なくとも1のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させ又は他のプロセッサに対してセキュアメモリへのアクセスを禁止している。これにより、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においては、全てのプロセッサに対して、セキュアメモリへのアクセスを禁止しているので、各プロセッサからセキュアメモリへのアクセスはできない。つまり、本発明の情報処理装置は、複数のプロセッサを備えることにより処理能力の向上を図ることができ、且つ保護すべき処理の期間においては前記他のプロセッサによって、又他の処理の期間においては全てのプロセッサによって保護されるべきプログラムやデータが利用されることがないので、保護されるべきプログラムやデータを安全に扱うことができる。
ここで、前記制御手段は、保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、保護すべき処理の期間、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部とを備えるとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、セキュアメモリとバスとを接続し、少なくとも1のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させるので、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においてセキュアメモリとバスとの接続を切断するので、他の処理の期間において各プロセッサに対してセキュアメモリへのアクセスを確実に禁止することができる。
ここで、前記アクセス制御部は、前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してリセット信号を出力し続けることで、前記他のプロセッサを停止することができる。これにより、リセット信号を処理する機構さえ備えているプロセッサであれば従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記情報処理装置は、さらに、前記少なくとも1のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第1の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第2の割込ベクタを有効にすることにより、前記少なくとも1のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
この構成によると、情報処理装置の切替手段は、前記少なくとも1のプロセッサに対して、参照する割込ベクタとして、通常モード割込ベクタの代わりに保護モード割込ベクタを有効とするので、前記少なくとも1のプロセッサは確実にセキュアメモリ内を参照することができる。
ここで、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも1のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、前記情報処理装置は、さらに、前記切替プログラムの指示に従って、前記少なくとも1のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
この構成によると、情報処理装置は、切替プログラムを実行することにより、前記少なくとも1のプロセッサに対して保護すべき処理の期間において確実にセキュアメモリ内を参照するように参照先を切り替えることができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも1のプロセッサに対してリセット信号の出力を解除するとしてもよい。
この構成によると、情報処理装置は、他の処理から保護すべき処理へと切り替える際に、複数のプロセッサのレジスタ内容を退避した後に、前記少なくとも1のプロセッサの参照先をセキュアメモリ内へと切り替えるので、処理が切り替えられる直前のレジスタ内容を保証することができる。
ここで、前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも1のプロセッサに対して、前記第2の割込ベクタに代えて、前記第1の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替えるとしてもよい。
この構成によると、情報処理装置は、保護すべき処理から他の処理へと復帰する際に、前記少なくとも1のプロセッサの参照先を前記他のメモリへと切り替えるので、セキュアメモリへの参照を防止することができ、さらには、退避していたレジスタの内容を復帰させるので、レジスタの内容を保護すべき処理への切替前の状態へと確実に復元することができる。
ここで、前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、前記情報処理装置は、さらに、前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段とを備えるとしてもよい。
この構成によると、情報処理装置は、他の処理の期間中において実行中のプログラムであるが重要なプログラムが実行されている場合に、当該プログラムの優先度よりも低い保護モード用のプログラムの処理に占有されることなく、実行中の重要なプログラムの処理を優先して行うことができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してクロック信号を停止するように制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して電源供給を遮断するよう制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して、参照するアドレスとして、何も処理しない命令が記述されたアドレスを参照するよう制御するので、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも1のプロセッサがセキュアメモリを参照するように制御するとしてもよい。
この構成によると、情報処理装置は、前記少なくとも1のプロセッサに対して参照先をセキュアメモリへと切り替えることができる。
ここで、前記制御手段は、さらに、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された1以上のプロセッサがアクセスできる範囲を当該セキュアメモリに限定することができる。したがって、セキュアメモリとは異なる他のメモリに不正なプログラムが存在したとしても、保護すべき処理を行っている1以上のプロセッサにより実行されることはないので、不正なプログラムによるセキュアメモリへの不正なアクセスを防止することができる。
ここで、前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサと前記他のメモリとの接続を切断するので、前記1以上のプロセッサがアクセスできる範囲をセキュアメモリに確実に限定することできる。
ここで、前記制御手段は、前記他のメモリと前記バスとの接続を切断するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、バスと前記他のメモリとの接続を切断するので、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサに限らず、前記他のプロセッサに対しても前記他のメモリへのアクセスを防止することができる。
ここで、前記複数のプロセッサは、それぞれ固有の識別子によって識別され、前記制御手段は、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部とを含むとしてもよい。
この構成によると、情報処理装置の制御手段は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された1以上のプロセッサの識別子を記憶しているので、前記セキュアメモリへのアクセスしようとするプロセッサが保護すべき処理を行っているプロセッサであるか否かを判断することができ、前記セキュアメモリへのアクセスが禁止されたプロセッサからのアクセスを防ぐことができる。
ここで、前記少なくとも1以上のプロセッサそれぞれは、前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、前記制御手段は、前記1以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理から他の処理へ切り替わる場合に、記憶している前記セキュアメモリへのアクセスが許可された1以上のプロセッサそれぞれに対応する識別子を識別子記憶部から消去するので、他の処理の期間において、前記1以上のプロセッサからのセキュアメモリへのアクセスを確実に禁止することができる。
ここで、前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、前記制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否するとしてもよい。
この構成によると、情報処理装置の制御手段は、アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、要求元のプロセッサに対してセキュアメモリへのアクセスを許可するので、保護すべき処理の実行していないプロセッサからの不正なアクセスを防ぐことができる。
ここで、前記複数のプロセッサそれぞれは、処理情報を記憶する情報記憶手段と、前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含むとしてもよい。
この構成によると、情報処理装置は、切替手段により参照先の切替を確実に行うとともに、情報記憶手段の内容を保護すべき処理の実行中であることを示す処理情報に変更することができる。
実施の形態1の組み込み装置117のハードウェア構成を示すブロック図である。 切替機構105の詳細を示すブロック図である。 各CPUへ出力されるリセット信号と時間の経過の関係を示す図である。 実施の形態1の組み込み装置117の動作を示すフローチャートである。 保護モードへの遷移動作を示すフローチャートである。図4のステップS105の詳細を示す。 通常モードへの遷移動作を示すフローチャートである。図4のステップS107の詳細を示す。 実施の形態2の組み込み装置197のハードウェア構成を示すブロック図である。 実施の形態3の組み込み装置217のハードウェア構成を示すブロック図である。 実施の形態4の組み込み装置237のハードウェア構成を示すブロック図である。
符号の説明
100 システムLSI
101 外部メモリ
102 CPU−1
103 CPU−2
104 内部メモリ
105 切替機構
106 アクセス制限回路
107 内部バス
110 バンク切替部
117 組み込み装置
121 切替レジスタ
122 信号出力部
123 通常モード割込ベクタ
124 保護モード割込ベクタ
125 CPUレジスタ退避/復帰部
1. 実施の形態1
以下に、本発明の実施の形態1について、図面を参照しながら説明を行う。
1.1 概要
本実施の形態に関わる組み込み装置117は、図1に示すように、システムLSI100と外部メモリ101とを搭載しており、システムLSI100は、複数のCPU(ここでは、CPU−1 102とCPU−2 103)と、耐タンパ性を有する内部メモリ104と、切替機構105と、アクセス制限回路106とを含んでいる。
なお、以下の説明では、組み込み装置117は、一例として、保護すべきデータである音楽データ等の録音、再生を実行する携帯可能な民生機器であるものとして説明を行う。
組み込み装置117は、保護すべきデータ(例えば、音楽コンテンツの再生やコピーに関する権利情報、復号鍵データなどが該当する。以下、保護データと呼ぶ)に関する処理を、システムLSI100上の内部メモリ104上を用いて実行する装置である。この際に、保護データを処理するためのCPUは、実行環境がシステムLSI内部の内部メモリとCPUの専用モードとから実現されるモード(以下、保護モードと呼ぶ。また、これに対して、保護モードでないモードを通常モードと呼ぶ。)に遷移して必要な処理を実行し、保護モードに遷移したCPU以外のCPUを停止させることにより、内部メモリ104に対して通常モードのCPUがアクセスすることを禁止する。
なお、システムLSI100内の各CPUは、起動直後及び初期化直後は通常モードで動作するものとする。また、組み込み装置117が保護データを処理する場合には、説明の便宜上、本実施の形態では、CPU−1 102が保護モードに遷移して、保護されるべき処理を実行し、CPU−1 102が保護モードで動作している間、CPU−2 103は停止しているとするように設定されているものとする。
以下、組み込み装置117の概要を説明するため、各構成要素の概略を説明する。より詳細な説明については、後ほどそれぞれの構成要素についての説明で行う。
システムLSI100は、図示していない外部フラッシュメモリ等から読み込まれた音楽データの再生を行う。音楽データの再生手順は、アプリケーション114a及び114bに記述されているとする。ここで、本実施の形態では、外部フラッシュメモリ内の音楽データには暗号化が施されているものとし、アプリケーション114a及114bは、切替プログラム115を介して、保護プログラム111へ秘匿すべき処理(保護すべき処理)を依頼する。ここで、秘匿すべき処理とは、例えば、暗号化音楽データの復号、復号鍵の生成、再生を許可されている期限や回数の確認などである。アプリケーション114の依頼により、保護プログラム111は、システムLSI100に配置され、外部からのアクセスが困難な内部メモリ104を用いて前述の秘匿すべき処理を行う。この処理は、保護モードに遷移したCPU−1が、保護プログラム111を実行することで実現され、その間、CPU−2は、停止している。そのため、当該組み込み装置117は、音楽データの復号および再生に関連する処理を安全に、実行することができる。
外部メモリ101は、システムLSI100の外部に設けられたメモリであり、セキュリティ面から見て重要度の低いプログラム等の実行に用いる。なお、本実施の形態では、この外部メモリは、大きな容量を持つものの、特に不正アクセスを防止する機構は設けられていないメモリであると想定しているが、何らかの機構により不正アクセスを防止するように構成して良いことは言うまでもない。
1.2 構成
以下、組み込み装置117が備える各構成要素の詳細について説明を行っていく。
なお、通常、組み込み装置117は、さらに、図1に図示されていないユーザからの入出力を受け付ける入出力部や、着脱可能な外部メモリへのインタフェース、音声の出力機構などを備えているが、これらは本発明の本質ではないので説明を省略する。
<システムLSI100の説明>
システムLSI100が備えるCPU−1 102とCPU−2 103と、切替機構105と、アクセス制限回路106とは、内部バス107を介して互いに接続されている。さらに、内部メモリ104とアクセス制限回路106とが専用線を介して接続されている。
本実施の形態では、内部メモリ104とアクセス制限回路106を専用線を介して接続しているので、各CPUは、アクセス制限回路106を介さずに内部バス107から内部メモリ104へアクセスできない構造になっている。
従って、アクセス制限回路106によってアクセスが認められないCPU等による内部メモリ104のデータの盗み取りを防ぐ事が出来る。
(1)CPU−1 102及びCPU−2 103
CPU−1 102とCPU−2 103は、外部メモリ101または内部メモリ104に格納されたプログラム等に含まれる命令コードを解読し実行することにより、システムLSI100全体の動作、および、組み込み装置117全体の動作を制御する。なお、CPU−1 102とCPU−2 103とは、後述するリセット信号を受信している間は、何も動作を行わない。また、CPU−1 102とCPU−2 103とは、リセット信号の受信後に、後述する割込ベクタ中のリセット割込を参照することで、システムLSI100および組み込み装置117に対する制御を再開する。リセット割込とは、リセット信号が解除された直後に実行されるハンドラ(プログラム)の記憶されているメモリ領域の先頭アドレスである。
(2)内部メモリ104
内部メモリ104は、RAM、ROMなどから構成され、図1に示すように、保護プログラム111や保護データ112を記憶する。
内部メモリ104内の保護プログラム111は、保護モードにおいて、CPU−1 102により実行されるプログラム群である。具体的には、保護モード用のオペレーティングシステム、保護モードにおいて、保護データ112を取り扱うアプリケーションプログラムなどが該当する。この保護プログラム111を構成するプログラムは、単独で、または必要に応じて他のプログラムと連携し、保護されるべき処理(例えば、暗号化された音楽データの復号、復号鍵の生成、音楽データに付随する権利情報のチェック)を行う。これらの処理が終了すると、保護プログラム111は、切替機構105内の切替レジスタ121(後述する)に通常モードを意味する値「0」を書き込む。
保護データ112は、不正なアクセスから保護されるべきデータであり、例えば、保護プログラム111により復号された音楽データや、音楽データを再生することができる回数などの権利情報、音楽データの復号に用いる復号鍵などである。
なお、図1では説明を簡単にするため、保護プログラム111と保護データ112とが内部メモリ104上に格納された後の状態を示しているが、これらのプログラム及びデータは、システムLSI100の起動直後に内部メモリ104へ格納されるとしても良いし、必要に応じて後から格納されるとしても良い。この場合、外部からの改竄を防止するため、これらのデータは、システムLSI100の内部の図示しない耐タンパ性を有するROMや、何らかのセキュリティ機構を備えた記録領域に記録されており、システムLSI100の起動時や保護プログラム111の実行開始時に内部メモリ104に格納される。
(3)切替機構105
図1に示すように、切替機構105は、信号線108、109を介して、それぞれ、CPU−1 102、CPU−2 103と接続されている。また、信号線118を介して、アクセス制限回路106とも接続されている。
図2は、切替機構105の詳細な構成を示すブロック図である。図2に示すように、切替機構105は、切替レジスタ121、信号出力部122、CPUレジスタ退避/復帰部125及びバンク切替部110から構成されており、2つのCPUの動作モードを切り替える構成を備える。
(3−1)切替レジスタ121
切替レジスタ121は、数ビット長のデータを記憶することができるレジスタであって、記憶しているデータは、CPU−1 102の状態を示す。例えば、切替レジスタ121に記憶されているデータ「0」は、通常モードを示し、データ「1」は、保護モードを示す。
(3−2)CPUレジスタ退避/復帰部125
CPUレジスタ退避/復帰部125は、切替プログラム115の指示に従ってCPU−1 102及びCPU−2 103のレジスタ内容や処理途中のデータを外部メモリ101へ退避し、また、退避したレジスタ内容などを各CPUに復帰する。
また、CPUレジスタ退避/復帰部125は、予め、復帰アドレスを記憶している。復帰アドレスは、外部メモリ101内において、切替プログラム115が記憶されている領域内の所定の位置を示す。切替プログラム115内において、復帰アドレスの指す位置以降の部分には、退避したレジスタ内容などを各CPUに復帰させる手順、保護プログラム111による処理結果をアプリケーション114へ通知する手順が含まれる。
なお、CPUレジスタ退避/復帰部125は、予め、復帰アドレスを記憶しているとしたが、各CPUのレジスタ内容の退避指示と共に、切替プログラム115から通知されるとしてもよい。
また、CPU−1 102が保護モードから通常モードに遷移する際、CPUレジスタ退避/復帰部125は、信号出力部122の指示により、内部バス107を介して、CPU−1 102のプログラムカウンタへ、前述の復帰アドレスを書き込む。
また、レジスタ退避/復帰部125は、切替プログラム115の指示により、各CPUに退避していたレジスタ内容などを復帰する。
(3−3)信号出力部122
信号出力部122は、切替レジスタ121の値を常時監視している。
切替レジスタ121に「1」が書き込まれると、信号線108及び109を介して、CPU−1 102及びCPU−2 103へリセット信号を出力する。これにより、2つのCPUのレジスタ値などが初期化される。
所定時間経過後、信号出力部122は、CPU−1 102へのリセット信号を解除し、CPU−2 103へはリセット信号を出力し続ける。
また、信号出力部122は、アクセス制限回路106へアクセス許可信号を出力する。
また、切替レジスタ121に「0」が書き込まれると、信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの書き込みを指示する。
次に、信号出力部122は、アクセス制限回路106へ、アクセス禁止信号を出力する。次に、CPU−2 203へのリセット信号を解除する。
図3は、時間の経過と各CPUへのリセット信号の出力の関係とを示している。以下、図3を用いて、時間の経過と、信号出力部122によるリセット信号出力及び停止の動作について説明する。
時刻t1において、切替レジスタ121に「1」が書き込まれると、信号出力部122は、CPU−1 102及びCPU−2 103の両方にリセット信号を出力を開始する。
時刻t2において、信号出力部122はアクセス許可信号をアクセス制限回路106へ出力するとともに、CPU−1 102へのリセット信号の出力を解除するが、CPU−2 103へのリセット信号の出力は継続する。
時刻t3において、切替レジスタ121に「0」が書き込まれると、信号出力部122は、アクセス制限回路106へ、アクセス禁止信号を出力した後、時刻t4に、CPU−2 103へのリセット信号の出力を停止する。
(3−4)バンク切替部110
図2に示すようにバンク切替部110は、2種類の割込ベクタを保持している。
これらは、組み込み装置117の製造時に記録されたものであって、販売後に改竄することはできない構造になっている。
通常モード割込ベクタ123は、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを含む。ここで、通常モード割込ベクタ123に含まれるアドレスは、何れも外部メモリ101及び組み込み装置117の保持するメモリ(図示されていないものも含む)の何れかの位置を示す。
保護モード割込ベクタ124も同様に、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを記憶している。保護モード割込ベクタに含まれるアドレスは、何れも、内部メモリ104内の何れかの位置を示す。
特に、保護モード割込ベクタ124に含まれるリセット割込は、内部メモリ104内において、保護プログラム111の記憶されている領域の先頭を示すアドレスである。
組み込み装置117の起動時において、バンク切替部110は通常モード割込ベクタ123を、有効な割り込みベクタとして指定する。
信号出力部122からアクセス許可信号が出力されると、バンク切替部110は、通常モード割込ベクタ123に代えて、保護モード割込ベクタ124を、有効な割込ベクタに指定する。
また、信号出力部122からアクセス禁止信号が出力されると、バンク切替部110は、通常モード割込ベクタ123を有効な割込ベクタに指定する。
有効な割込ベクタの指定の方法は任意であるが、例えば、2つの割込ベクタのうち、有効な一方の先頭にフラグを立てる方法などが考えられる。
従って、割り込み発生時には、CPU−1 102及びCPU−2 103は、2つの割込ベクタのうち、有効な割込ベクタを参照して割込処理を行う。
(4)アクセス制限回路106
アクセス制限回路106は、信号線118を介して、切替機構105内の信号出力部122と接続されており、アクセス許可信号及びアクセス禁止信号を受け取る。
アクセス制限回路106は、アクセス許可信号を受け取ると、内部バス107と内部メモリ104とを接続し、アクセス禁止信号を受け取ると、内部バス107と内部メモリ104とを遮断する。
なお、組み込み装置117の起動時には、アクセス制限回路106は、内部バス107と内部メモリ104とを遮断している。
(5)システムLSI100の構成のまとめ
このようにすることで、保護を必要としない処理において、通常モードである2つのCPUが内部メモリ104内のデータを参照することはない。また、保護を必要とする処理において、保護モードであるCPU−1 102は、内部メモリ104内のデータ、プログラムを参照して処理を行い、システムLSI100内で処理が完結するため、システムLSI100の外に不正なプログラムが存在したとしても、このプログラムが実行されることはない。
また、切替機構105は、CPU−1 102が保護モードで動作している間は、CPU−2 103に対してリセット信号を送り続けることでCPU−2 103の動作を停止させる。そのため、CPU−2 103は、システムLSI100が保護モードで動作している間は何の処理も行えなくなるので、外部メモリに書き込まれた悪意あるプログラムを読み込むこともなく、内部メモリ104のデータを奪うような動作も行えない。
さらに、切替機構105は、CPU−1 102を保護モードから通常モードに遷移させる場合に、CPU−1 102のプログラムカウンタに前述の復帰アドレスを書き込み、CPU−2 103のリセットを解除し、アクセス制限回路106にアクセス禁止を通知する。
さらに、バンク切替部110は、CPUの動作モードが切り替わるときに、割込ベクタを各モード用のものに変更する。そのため、通常モードでは、割込発生時に、各CPUが、内部メモリ104を参照することはないし、保護モードでは、CPU−1 102は、内部メモリ104を参照し、外部メモリ101等を参照することはない。
従って、外部メモリ101などに不正なプログラムが存在しても、システムLSI100が保護モードで動作している間は、実行されることはないので、内部メモリ104に記憶されているデータ及びプログラムを、不正なプログラムの実行によって改竄したり、抜き取ったりすることは困難である。
<システムLSI100以外の部分についての説明>
続いて、組み込み装置117の他の部分について説明を行う。
外部メモリ101は、RAM、ROMを含んで構成され、一例として、図1に示すように、アプリケーション114aと、アプリケーション114bと、切替プログラム115と、オペレーティングシステム116とが格納されている。なお、これらのプログラムについてもシステムLSI100の起動時から外部メモリ101に格納されていてもよいし、ROMやHDD等の他の記録媒体から必要に応じて読み出されて外部メモリ101に格納されるものとしてもよい。
また、図示されていないが、外部メモリ101内には、その他のプログラムや、各プログラムの用いるデータなどが記憶されている。
(1)アプリケーション114a及び114b
アプリケーション114a及び114bは、いずれも組み込み装置117全体の制御を行うためのプログラムである。本実施の形態では、具体的には、図示されていないフラッシュメモリなどから音楽データを取得し、再生、複製などを実行する手順を含む。2つのアプリケーションは、それぞれ、データ形式の異なる音楽データを再生する手順を含んでいる。以後、これらを特に区別する必要がない場合、単にアプリケーション114と記載する。
また、アプリケーション114は、切替プログラム115を介して、保護プログラム111へ保護されるべき処理を依頼する手順が含まれる。
アプリケーション114は、随時CPU−1 102またはCPU−2 103により参照されて実行される。このアプリケーション114は、セキュリティ面から見た重要度が比較的低く、また、組み込み装置117全体の制御を行う関係上サイズが大きいため、大きさに制限がある内部メモリ104ではなく、外部メモリ101に格納されている。
(2)切替プログラム115
切替プログラム115は、切替機構105を制御して、システムLSI100内のCPUのモード遷移を開始させる手順を含むプログラムである。
具体的には、アプリケーション114から、呼び出しを受けると、切替機構105内の切替レジスタ121に「1」を書き込手順を含む。
また、前述の通り、切替プログラム115のうち、復帰アドレス以降の領域に記載されている部分には、退避している各CPUのレジスタ内容などを、それぞれのCPUに復帰させる手順、保護プログラム111による処理結果をアプリケーション114へ通知する手順を含む。
なお、切替プログラム115は、他のプログラムから不定期に発生する要求を受け付ける必要がある。従って、本実施の形態における切替プログラム115は、システムLSI100上の全てのCPUが通常モードで動作している間はCPU−1 102にてバックグラウンドで動作し続けているものとする。
(3)オペレーティングシステム116
オペレーティングシステム116は、アプリケーション114などに対して動作環境を提供するプログラムである。なお、オペレーティングシステム116は、基本ソフト、オペレーションシステムやOSと呼ばれる場合もある。
1.3 動作
(1)組み込み装置117の動作
ここでは、組み込み装置117の動作について、図4にて示すフローチャートを用いて説明する。
利用者の操作により、組み込み装置117の電源がONになると、組み込み装置117の起動が行われる。
組み込み装置117が起動するとシステムLSI100に電源が投入される(ステップS100)。
システムLSI100が起動すると、オペレーティングシステム116が起動される(ステップS101)。オペレーティングシステム116は、アプリケーション114や切替プログラム115を起動させる。本実施の形態において、切替プログラム115は、アプリケーション114から呼び出しを受けるまで、CPU−1 102で、待機する(ステップS102)。
ここで、ユーザが図示していないボタン等を用いた入力などを行うことで、組み込み装置117に音楽の再生が指示されると、アプリケーション114は、音楽の再生に関連する保護すべき処理を行うために、切替プログラム115に保護プログラム111の呼び出しを依頼する(ステップS103)。
切替プログラム115は、アプリケーション114から依頼を受け付けると、切替機構105へ各CPUのレジスタ内容などの退避を指示する。
この指示を受けると切替機構105内のCPUレジスタ退避/復帰部125が、CPU−1 102及びCPU−2 103内のレジスタ内容や、処理途中のデータを、外部メモリ101へ退避する(ステップS104)。
次に、切替プログラム115の制御により、切替機構105は、CPU−1 102を保護モードへ遷移させ、CPU−2 103を停止させる(ステップS105)。保護モードへの遷移の詳細に関しては、後述する。
続いて、保護モードに遷移したCPU−1 102が保護プログラム111を実行する(ステップS106)。以降、保護プログラム111は、必要に応じて他のプログラムと連携し、例えば、音楽データの再生回数のチェックを行い、再生可能ならば暗号化された音楽データを復号化するなどの処理を行う。このチェック処理や復号化処理については、本発明の本質ではないので、省略する。なお、この間、CPU−2 103は、切替機構105からリセット信号が入力し続けられているため何の動作も行わない。
依頼された処理が終了すると、保護プログラム111は、切替機構105内の切替レジスタに「0」を書き込み、これを契機として、CPU−1 102は、通常モードに遷移する(ステップS107)。保護モードから通常モードへ遷移させる処理の詳細に関しては、後述する。
通常モードに復帰したCPU−1 102は、切替プログラム115の実行を再開し、切替プログラム115は、切替機構105へ、2つのCPUのレジスタ内容の復帰を指示する。
この指示を受け、切替機構105内のCPUレジスタ退避/復帰部125は、外部メモリ101に退避している各CPUのレジスタ内容などを、それぞれ、CPU−1 102及びCPU−2 103に復帰する(ステップS108)。
次に、切替プログラム115は、保護プログラム111による処理結果を、アプリケーション114に通知する(ステップS109)。
アプリケーション114は、通知された処理結果、利用者の操作に応じて、音楽の再生などの処理を続行する(ステップS110)。
(2)保護モードへの遷移動作
図4のステップS105にて行われる保護モードの遷移動作では、アプリケーション114から保護されるべき処理が要求されると、切替プログラム115は、切替機構105を制御して、CPU−1 102を通常モードから保護モードに遷移させ、CPU−2 103を停止させる。
以下、保護モードへの遷移に係るシステムLSI100の詳細な動作について、図5にて示すフローチャートを用いて説明する。
切替プログラム115は、切替機構105内の切替レジスタ121に「1」を書き込む(ステップS121)。
切替レジスタ121に「1」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、信号線108と信号線109を介して、CPU−1 102とCPU−2 103にリセット信号を入力する(ステップS123)。
次に、切替機構105内のバンク切替部110は、通常モード割込ベクタ123に代えて、保護モード割込ベクタ124を有効にする(ステップS124)。
割込ベクタの変更(ステップS124)が終了すると、信号出力部122は、CPU−1 102へのリセット信号を解除する(ステップS126)。この操作によって、CPU−1 102は動作することが可能となる。
また、CPU−1 102へのリセット信号の解除とともに、信号出力部122は、信号線118を介して、アクセス制限回路106へアクセス許可信号を出力する(ステップS127)。
アクセス許可信号を受け取ると、アクセス制限回路106は、内部バス107と内部メモリ104とを接続する(ステップS128)。
CPU−1 102へのリセット信号が解除されたことにより、CPU−1 102は、保護モード割込ベクタ124に含まれる、リセット割込を参照し、内部メモリ104に格納された保護プログラム111の実行を開始する(ステップS129)。
(3)通常モードへの遷移動作
図4のステップS107にて行われる通常モードへの遷移動作は、保護プログラム111による保護すべき処理が終了した場合や、ユーザからのキー入力などの保護プログラム111の実行よりも優先すべき通常モードの処理を行う場合など、保護プログラム111の処理を中断もしくは終了する必要が生じると、開始される。
以下、通常モードへの遷移に係るシステムLSI100の動作について、図6にて示すフローチャートを用いて説明する。
CPU−1 102により実行されている保護プログラム111は、切替機構105内の切替レジスタ121に「0」を書き込む(ステップS131)。
切替レジスタ121に「0」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの設定を指示し、CPUレジスタ退避/復帰部125は、記憶している復帰アドレスを、CPU−1 102のプログラムカウンタに書き込む(ステップS132)。
次に、信号出力部122は、アクセス制限回路106へアクセス禁止信号を出力する(ステップS133)。
アクセス禁止信号を受けて、アクセス制限回路106は、内部バス107と内部メモリ104とを遮断する(ステップS134)。
また、切替機構105内のバンク切替部110は、保護モード割込ベクタ124に代えて通常モード割込ベクタ123を有効にする(ステップS136)。この操作によって、割込ベクタは、保護モード遷移前と同様の設定に戻る。
割込ベクタの変更(ステップS136)がなされた後に、信号出力部122は、CPU−2 103へのリセット信号を解除する(ステップS137)。この操作によって、保護モード中には停止していたCPU−2 103が動作を再開する。
なお、音楽再生中にユーザからの入力があった場合など、保護モードで動作中の保護プログラム111の動作を中断させる形で復帰処理が行われる場合には、遅くともステップS132の処理が行われるまでに、CPUレジスタ退避/復帰部125は、CPU−1 102のレジスタ内容や処理途中のデータなどを、内部メモリ104に格納する。その後、保護プログラム111の動作を再開する場合に、内部メモリ104に格納してあった、レジスタ内容や処理途中のデータをCPU−1 102に戻すことで、保護プログラム111の動作を再開させることができる。
1.4 まとめ
以上で述べたように、実施の形態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−2 103を停止させる方法として、リセット信号を送り続ける手法を取っているので、リセット信号を処理する機構さえ備えているCPUであれば従来のCPUに手を加えることなくシステムを構築することができ、比較的安価にシステムを実現することができる。
なお、上記の実施の形態では、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レジスタ退避/復帰部125によって、外部メモリ101に退避したデータやレジスタの内容を、退避対象のCPUとは異なるCPUに復帰させることで実現できる。
もちろん、一方のCPUを保護モードにおいて動作するCPUとして予め定めておき、他方を保護モードでの動作を許可しないCPUであると予め定めておくとしておいてもよい。
2. 実施の形態2
以下に、本発明の実施の形態2について図面を用いて説明する。なお、実施の形態1と同様の構成については説明を省略し、実施の形態2の特徴部分を中心に述べる。
2.1 構成
図7は、本発明の実施の形態2に関わる組み込み装置197のハードウェア構成を示すブロック図である。なお、実施の形態1と同様の構成要素については、同じ符号を付している。
実施の形態1の組み込み装置117と実施の形態2の組み込み装置197との構成の差異は以下の通りである。
実施の形態1の組み込み装置117では、CPU−1 102とCPU−2 103とは内部バス107を介してアクセス制限回路に接続していたが、実施の形態2の組み込み装置197では、CPU−1 182とCPU−2 183が、アクセス制限回路186に信号線189及び188を介して、直接接続している。
アクセス制限回路186は切替機構185からではなく、信号線188又は189を介して保護モードへ切り替わったCPUからアクセス許可信号を受けて内部メモリ104と内部バス107とを接続する。
同様に、保護モードで動作しているCPUによる保護プログラム111の実行が終了したとき、保護モードで動作しているCPUからアクセス制限回路186へアクセス禁止信号が入力される。
また、切替機構185の内部構成は、切替機構105と同様であるが、信号出力部とアクセス制限回路186は直接は接続されておらず、信号出力部は、アクセス制限回路186へアクセス許可/禁止信号を出力しない。
2.2 動作
また、実施の形態1と実施の形態2の動作の違いは以下の通りである。
実施の形態1では、切替機構105からの制御によって、アクセス制限回路106が内部メモリ104へのアクセス許可、禁止を実現していた。
それに対して、実施の形態2では、保護モードに遷移したCPUからの制御によって、アクセス制限回路186が内部メモリ104へのアクセス許可、禁止を実現する。
例えば、CPU−1 182が保護モードに遷移した場合、CPU−1 182は、アクセス制限回路186にアクセス許可信号を出力する。アクセス制限回路186は、アクセス許可信号を受け取ると、内部メモリ104と内部バス107とを接続する。CPU−1 182が保護モードから通常モードに遷移すると、CPU−1 182は、アクセス制限回路186にアクセス禁止信号を出力する。アクセス制限回路186は、アクセス禁止信号を受け取ると、内部メモリ104と内部バス107との接続を遮断する。
また、CPU−2 183が保護モードに遷移した場合には、CPU−2 183は、アクセス制限回路186にアクセス許可信号を出力する。アクセス制限回路186は、アクセス許可信号を受け取ると、内部メモリ104と内部バス107とを接続する。CPU−2 183が保護モードから通常モードに遷移すると、CPU−2 183は、アクセス制限回路186にアクセス禁止信号を出力する。アクセス制限回路186は、アクセス禁止信号を受け取ると、内部メモリ104と内部バス107との接続を遮断する。
上記の差異以外は、実施の形態1と実施の形態2は同一であるため、説明は省略する。
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とを含んでいる。
なお、実施の形態1と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ201、CPU−2 203、切替機構205、アクセス制限回路206が実施の形態1とは異なる。
本実施の形態では、各CPUは自身を識別する識別子(以下、IDと呼ぶ)を記憶している。
アクセス制限回路206は、システムLSI200が保護モードで動作している間、保護モードにて動作しているCPUのIDを記憶しており、記憶しているIDを用いて、内部メモリ104へのアクセスを要求するCPUが保護モードで動作しているCPUであるか否かを判断し、内部メモリ104へのアクセスを要求するCPUが保護モードで動作していると判断する場合にのみ、アクセスの要求元のCPUに対してアクセスを許可する。
なお、説明の便宜上、ここでは、CPU−1 202のみが保護モードに遷移することができるものとして説明する。
また、実施の形態1では、内部バス107と内部メモリ104との間は、保護モードによる動作中のみアクセス制限回路106を介して接続されていたが、本実施の形態では、内部バス107と内部メモリ104との間は、アクセス制限回路206を介して常時接続されているものとする。
3.2 構成
以下、組み込み装置217に含まれる構成要素うち、CPU−1 202、切替機構205、CPU−2 203、及びアクセス制限回路206について説明する。
(1)CPU−1 202
CPU−1 202は、自身に固有のID「ID1」204を、記憶している。ID204は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
CPU−1 202は、内部メモリ104へアクセスしようとする際には、記憶しているID「ID1」204を読み出し、アクセス要求と共に読み出した「ID1」をアクセス制限回路206へ出力する。
(2)切替機構205
切替機構205は、切替プログラム115からの要求に応じて、CPU−1 202を保護モードに切り替える。
切替機構205の内部構成は実施の形態1において説明した切替機構105とほぼ同様であるが、信号出力部は、CPU−1 202を示す「ID1」を含むアクセス許可信号及びアクセス禁止信号を、内部バス107を介して、アクセス制限回路206へ出力する。
また、実施の形態1の切替機構105とは異なり、CPU−1 202が通常モードから保護モードへ遷移する際、及び、保護モードで動作している間、CPU−2 203へリセット信号を出力しない。
また、CPUレジスタ退避/復帰部は、CPU−1 202のレジスタ内容のみを退避及び復帰し、CPU−2 203のレジスタ内容の退避及び復帰は行わない。
また、バンク切替部は、CPUごとに何れの割込ベクタを用いるかを管理する。
具体的には、バンク切替部は、CPU−2 203については、常に、通常モード割込ベクタを使用するように設定する。CPU−1 201については、保護モードに遷移する際に、保護モード割込ベクタを使用するように設定し、通常モードに遷移する際に、通常モード割込ベクタを使用するように設定する。
(3)CPU−2 203
CPU−2 203は、自身に固有のID「ID2」207を記憶している。ID207は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
CPU−2 203は、内部メモリ104へのアクセス要求を送信する際に、アクセス制限回路206へ、自身のID「ID2」も送信する。
CPU−2 203は、常に通常モードで動作しているため、切替機構205の保持する2つの割込ベクタのうち通常モード割込ベクタを使用する。
また、CPU−1 202が保護モードで動作中であっても、リセット信号を入力されないので、CPU−2 203は、通常モードで動作することができる。
(4)アクセス制限回路206
アクセス制限回路206は、内部にメモリ208を含んで構成される。
アクセス制限回路206は、切替機構205からIDを含むアクセス許可信号及びアクセス禁止信号を受け取る。
アクセス許可信号を受け取った場合、アクセス許可信号に含まれるIDをメモリ208に記憶する。なお、本実施の形態では、アクセス制限回路206は、メモリ208にCPU−1 202を示す「ID1」を記憶する。
アクセス禁止信号を受け取った場合、アクセス制限回路206は、アクセス禁止信号に含まれるIDをメモリ208から削除する。
また、アクセス制限回路206は、CPU−1 202又はCPU−2 203から当該CPUのIDと共にアクセス要求を受け取る。
次に、アクセス制限回路206は、受け取ったアクセス要求と共に送られてきたIDがメモリ208の記憶しているIDと一致するか否かを確認する。
確認の結果、IDが一致した場合には、アクセス制限回路206は、そのアクセス要求は保護モードで動作しているCPUから出力されたものであると分かるので、内部メモリ104へのアクセスを許可する。
IDが一致しなかった場合及びメモリ208にいずれのIDも記憶されていない場合は、アクセス制限回路206は、受け取ったアクセス要求が保護モードで動作していないCPUによるアクセス要求であるとして、アクセス要求を拒否する。
3.3 動作
以下に、組み込み装置217の動作について、実施の形態1と比較しながら説明する。
アプリケーション114からの呼び出されると切替プログラムは、切替機構205に、レジスタ内容の退避を指示する。
この指示を受けて、切替機構205は、CPU−1 202のレジスタ内容のみを退避する。
実施の形態1では、切替機構105からの制御によって、アクセス制限回路106が、内部バス107と内部メモリ104とを接続又は遮断することで、内部メモリ104へのアクセスを許可又は禁止を実現していた。
それに対して、実施の形態3では、CPU−1 202を保護モードへ遷移させる際に、切替機構205は、CPU−1 202を示すID「ID1」204を読み出し、読み出した「ID1」を含むアクセス許可信号を、アクセス制限回路206へ出力する。
アクセス制限回路206は、アクセス許可信号を切替機構205から受け取ると、受け取ったアクセス許可信号に含まれるID「ID1」を、メモリ208に記憶する。
次に、切替機構205は、実施の形態1とは異なり、CPU−1 202のみに所定時間リセット信号を入力し、CPU−2 203へリセット信号を出力しない。
次に切替機構205は、CPU−1のリセットベクタを保護モードリセットベクタに設定する。これにより、CPU−1 202の保護モードへの状態遷移は完了する。
各CPUは、動作中において、内部メモリ104へアクセス使用とする際には、先ず、自身の保持するIDを読み出し、読み出したIDと共にアクセス要求を、内部バス107を介して、アクセス制限回路206へ通知する。
アクセス制限回路206は、アクセス要求と共に受け取ったIDと、メモリ208に記憶している「ID1」とを比較する。
アクセス制限回路206は、両者が一致する場合、要求元のCPUに対してアクセスを許可し、一致しない場合には、要求元のCPUに対してアクセスを拒否する。
より具体的には、保護モードで動作しているCPU−1 202が内部メモリ104にアクセスを行おうとする場合、CPU−1 202は、アクセス要求と共にCPU−1 202を示すID「ID1」204もアクセス制限回路206に通知される。アクセス制限回路206は、メモリ208に記憶されている「ID1」とアクセス要求と共に届いた「ID1」とを比較し、両者が一致することを確認する。これにより、アクセス要求を許可し、CPU−1 202は、内部メモリ104へアクセスする。
一方、CPU−2 203が内部メモリ104にアクセスを行おうとする場合、CPU−2 203は、アクセス要求と共にCPU−2 203を示すID「ID2」207も内部バス107を介して、アクセス制限回路206に通知される。アクセス制限回路206は、アクセス要求と共に受け取った「ID2」とメモリ208の記憶している「ID1」を比較し、両者が一致しないことを確認する。これにより、アクセス要求を却下する。
CPU−1 202は、保護プログラム111を実行し、保護すべき処理を行う。保護すべき処理が終了すると、保護プログラム111は、切替機構205内の切替レジスタに「0」を書き込む。これを契機として、CPU−1 202は、保護モードから通常モードへ遷移する。
通常モードへの遷移の処理中において、切替機構205は、CPU−1 202のID「ID1」204を含むアクセス禁止信号をアクセス制限回路206へ出力する。
アクセス制限回路206は、アクセス禁止信号を受け取り、受け取ったアクセス禁止信号に含まれる「ID1」をメモリ208から削除する。
以後、アクセス制限回路206内のメモリには、いずれのIDも記憶されていないため、アクセス制限回路206は、何れのCPUからのアクセス要求も却下する。
3.4 まとめ
実施の形態3では、実施の形態1や2と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
さらに、実施の形態3では、CPU−2 203は、CPU−1 202が保護モードで動作中であっても停止しないので、CPU−1 202が保護プログラムや保護データを処理している最中であっても、通常モード用のプログラムやデータ(保護を必要としないプログラムやデータ)を処理するCPUとして動作する事が可能である。これにより、システム全体の処理を高速化することができる。
上記の差異以外は、実施の形態1と実施の形態3は同一であるため、説明は省略する。
なお、上記の実施の形態3では、切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、内部バス107を介して、アクセス制限回路206へ出力するとしたが、これに限定されない。切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、信号線を介してアクセス制限回路206へ出力するとしてもよい。
また、上記の実施の形態3では、内部バス107と内部メモリ104との間は、アクセス制限回路227を介して常時接続されているものとしたが、これに限定されない。実施の形態1と同様に、アクセス制限回路227は、切替機構から受け取ったアクセス許可/禁止信号に基づいて、内部バス107と内部メモリ104との間を接続/遮断を行ってもよい。
また、保護モードで動作できるCPUが1つしかない場合は、切替機構205に予めそのCPUのIDを格納しておいてもよい。
この場合、アクセス許可信号やアクセス禁止信号を受け取る度にIDを格納したり削除したりするのではなく、アクセス許可信号を受け取った後、アクセス禁止信号を受け取るまでの間は、そのIDに対応するCPUによるアクセスを許可するようにしてもよい。
4. 実施の形態4
以下に、本発明の実施の形態4について図面を用いて説明する。なお、実施の形態1〜3と同様の構成については説明を省略し、実施の形態4の特徴部分を中心に述べる。
4.1 概要
本発明の実施の形態4に関わる組み込み装置237は、図9にて示すように、システムLSI220と、外部メモリ101とを搭載している。システムLSI220は、プロセッサ1 221と、プロセッサ2 228と、アクセス制限回路227と、内部メモリ104とを含んでいる。
なお、実施の形態3と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ1 221、プロセッサ2 228及びアクセス制限回路227が実施の形態3とは異なる。
各プロセッサは、当該プロセッサにおける動作モードを示すモード情報を記憶しており、内部メモリ104へアクセス要求を行う際に、記憶しているモード情報をもアクセス制限回路227へ出力する。
アクセス制限回路227は、アクセス要求と共に受け取ったモード情報により、アクセスを許可するか否かを決定する。
なお、本実施の形態では、実施の形態3と同様に、内部バス107と内部メモリ104とは、アクセス制限回路227を介して常時接続されているものとする。
4.2構成
以下、組み込み装置237に含まれる構成要素のうちプロセッサ1 221、プロセッサ2 228及びアクセス制限回路227について説明する。
(1)プロセッサ1 221及びプロセッサ2 228
プロセッサ1 221とプロセッサ2 228の構成は同様であるのでここでは、プロセッサ1 221についてのみ説明する。
図9に示すように、プロセッサ1 221は、CPU−1 222と切替機構225とを含んで構成される。
(1−1)CPU−1 222
CPU−1 222は、ステータスレジスタ224を含む。ステータスレジスタ224は、CPU−1 222の現在の動作モードを示すモード情報を記憶している。具体的に、モード情報「1」は保護モードを示し、モード情報「0」は通常モードを示す。
内部メモリ104へアクセス使用とする場合、CPU−1 222は、ステータスレジスタ224の記憶しているモード情報を読み出し、内部バス107を介して、アクセス要求と共に読み出したモード情報をアクセス制限回路227へ出力する。
なお、CPU−1 222は、ステータスレジスタ224にモード情報を記憶しているとしたが、アクセスの度に、切替機構内の切替レジスタを参照してモード情報を生成し、アクセス要求と共に出力しても良い。
(1−2)切替機構225
切替機構225は、CPU−1 222のモード切替のみを実行する。切替機構225内部の詳細な構成は、実施の形態1において説明した切替機構225とほぼ同様であるが、信号出力部は、CPU−1 222のみへリセット信号を出力する。
また、信号出力部は、アクセス制限回路227へのアクセス禁止信号、アクセス許可信号の出力は行わない。
また、バンク切替部は、CPU−1 222の参照する割込ベクタのみを管理し、CPU−1 222のみが2つの割込ベクタのうち有効な一方を参照する。
また、切替機構225内の信号出力部は、CPU−1 222が保護モードに遷移すると、CPU−1 222内のステータスレジスタ224にモード情報「1」を書き込む。
逆に、CPU−1 222が保護モードから通常モードへ遷移すると、信号出力部は、ステータスレジスタ224にモード情報「0」を書き込む。
(2)アクセス制限回路227
アクセス制限回路227は、CPU−1 222またはCPU−2 223からのアクセス要求とモード情報とを受け取る。
これらを受け取ると、受け取ったモード情報が保護モード及び通常モードの何れを示しているかを確認する。
受け取ったモード情報が、保護モードを示す「1」である場合、アクセス制限回路227は、内部メモリ104へのアクセスを許可する。逆に、受け取ったモード情報が、通常モードを示す「0」である場合は、アクセス要求を拒否する。
4.3 動作
続いて、実施の形態4の組み込み装置237の動作について、実施の形態3と比較しながら説明する。
実施の形態3では、切替機構が保護モードに遷移したCPUのIDを含むアクセス許可信号及びアクセス禁止信号をアクセス制限回路に事前に出力し、アクセス制限回路は、切替機構から受け取ったアクセス許可信号及びアクセス禁止信号に含まれるIDを基に、保護モードで動作しているCPUのIDを記憶していた。
また、実施の形態3では、アクセス制限回路は、記憶しているIDを基に、各CPUからのアクセス要求を許可又は禁止していた。
それに対して、実施の形態4では、プロセッサ1に含まれる切替機構225は、CPU−1 222の動作モードを切り替えるが、その切り替えに当たって他の構成部へ信号を出力したりはしない。その代わり、切替機構225は、CPU−222内部のステータスレジスタ224にモード情報を書き込む。
プロセッサ1に含まれるCPU−1 222は、内部メモリ104へアクセスする場合には、ステータスレジスタ224からモード情報を読み出し、アクセス要求と共に読み出したモード情報をアクセス制限回路227に出力する。
アクセス制限回路227は、CPU−1 222からアクセス要求と共にモード情報を受け取る。受け取ったモード情報が「1」であれば、内部メモリ104へのアクセスを許可し、「0」であればアクセスを拒否する。
プロセッサ2の動作もプロセッサ1と同様であるので、ここでは説明を省略する。
4.4 まとめ
実施の形態4でも他の実施の形態と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
さらに、CPU−2 223はCPU−1 222とは独立に保護モードに遷移する事が可能である。そのため、実施の形態4では、CPU−1 222とCPU−2 223が同時に保護モードで処理を行うことにより、保護すべき処理をマルチCPU化することができる。すなわち、保護モードにおける処理についても高速化する事が可能である。
上記の差異以外は、実施の形態3と実施の形態4は同一であるため、説明は省略する。
なお、上記の実施の形態4では、内部バス107と内部メモリ104との間は、アクセス制限回路227を介して常時接続されているものとしたが、これに限定されない。実施の形態1と同様に、通常モードから保護モードへの切り替えを行った切替機構は、アクセス許可/禁止信号をアクセス制限回路227へ出力し、アクセス制限回路227は、切替機構から受け取ったアクセス許可/禁止信号に基づいて、内部バス107と内部メモリ104との間を接続/遮断を行ってもよい。
5. その他の変形例
なお、本発明を上記の実施の形態1〜4に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の実施の形態では、切替プログラムは、各CPUの保護モードへの遷移を常に実行していたが、これに限られるものではない。例えば、アプリケーションからの依頼の優先度に従って、保護モードに遷移しない制御を行なってもよい。
より具体的な例を示すと、ユーザの操作によるデータの入出力中には、保護モードへの遷移を開始しない場合が考えられる。
また、CPU−1で実行中のプログラムとCPU−2で実行中のプログラムの優先度を比較し、比較結果に応じて保護モードへ切り替える/切り替えないの制御を行っても良い。例えば、CPU−1で通常モード用のプログラム(保護を必要としないプログラム)であるが重要なプログラムを実行中である場合に保護モードへ切り替えを行うと、CPU−1が保護モード用の処理に占有されてしまい、CPU−1で実行中の通常モード用の重要なプログラムの処理が中断されてしまう。
ここで、この変形例を適応すると、切替プログラムは、CPU−1で実行中のプログラムの優先度が低い場合は、上記の実施の形態同様に、CPU−1を保護モードに遷移させる制御を開始する。
CPU−1で実行中のプログラムの優先度が高い場合、切替プログラムは、優先度の高いプログラムの実行を優先し、このプログラムの処理が終了した後、CPU−1を保護モードに遷移させる制御を開始する。
(2)上記の実施の形態では、CPU−1が保護モードで保護プログラムを実行中に、割込などの中断が生じた場合に、CPU−1の状態を内部メモリへと退避させ、また、内部メモリから復帰させる操作を、どのようにして行うかを述べていなかったが、例えば、保護プログラムによって実現されるとしてよい。
若しくは、割込の種類に応じて、保護モード割込ベクタに含まれるアドレスの示す領域に格納されているハンドラ(例えば、内部メモリに格納された中断プログラム)により実現されるとしてもよい。
(3)上記の実施の形態1及び2において、切替プログラムが、CPU−2をリセット信号によって停止する前に、図示していない周辺回路からのCPU−2への割り込みの通知先をCPU−1へ変更し、また、CPU−2をリセット状態から解除する前に変更前の状態に周辺回路からの割り込みの通知先を戻すとしてもよい。このようにすることで、CPU−2が停止している間にCPU−2に向けられた割り込みが発生した場合、この割り込みの処理をCPU−1が代わりに行うことができる。なお、上記の割り込みの通知先を変更する処理は、切替プログラムが行っても良いし、切替プログラム以外のプログラム、例えば、保護プログラムが行ってもよい。
(4)上記の実施の形態2において、CPU−1 182およびCPU−2 183からのアクセス許可を示す信号の通知は、命令単位で行われてもよいし、各CPUが保護モードへ遷移した直後に「常にアクセス許可を与える」旨を通知して、保護モードから通常モードへ遷移する際に「以後は常にアクセス禁止である」旨を通知するとしてもよい。
さらに、プログラム単位でアクセス許可/禁止を通知したりしてもよい。すなわち、CPUのモード遷移のタイミングと異なるタイミングで許可/禁止の通知を行ってもよい。
(5)上述の実施の形態では、CPU−1とCPU−2とが異なる命令コードを実行可能なCPUであってもよい。この場合、保護モードにおいて動作するCPUとしては、保護プログラムの実行が可能なCPUが選ばれる。
(6)上記の実施の形態では、切替プログラムはCPU−1で動作していたが、CPU−2で動作してもよい。さらに、上記の実施の形態では、切替プログラムと保護プログラムが同一のCPUで動作していたが、異なるCPUで動作するとしてもよい。
(7)上記の実施の形態では、保護プログラムの起動を、組み込み装置117の起動直後に行っているが、これに限られるものではない。例えば、保護プログラムを実行する直前に起動してもよい。
(8)上記の実施の形態1では、ステップS132において、切替プログラム115の復帰アドレスをCPU−1のプログラムカウンタに設定していたが、これに限られるものではない。例えば、切替機構が復帰アドレスを格納するレジスタを備えており、切替機構がリセット信号を出力する前に、切替プログラムが、そのレジスタに自身の復帰アドレスを書き込むとしてもよい。
(9)上記実施の形態では、2つのCPUを搭載したシステムLSIを用いて説明したが、これに限られるものでない。3つ以上のCPUを搭載したシステムLSIであってもよい。その場合に、保護モードに遷移することができるCPUが複数あってもよい。
保護モードに遷移することができるCPUが複数ある場合、同時に複数のCPUが保護モードで動作できる構成であっても良いし、1個のCPUが保護モードで動作している間、他のCPUは保護モードに遷移できない構成であってもよい。
例えば、保護プログラムの大きさが小さく、1つのCPUで十分に動作させることが可能である場合には、1つのCPUが保護モードで動作すれば十分である。この場合、実施の形態1または2のように他のCPUを停止させれば、消費電力を節減できる。このときに動作を停止させるCPUには、保護モードに遷移可能なCPUも含まれてもよい。また、保護モードで動作するCPUを1つのCPUのみとした場合には、従来の1つのCPU向けに開発されたプログラム資産を、そのまま利用することができる。
逆に、保護プログラムが大きく、負荷の高い処理を実行しなければならない場合は、同時に複数のCPUを保護モードで動作させられることで、保護プログラムによる処理を高速化することができる。
また、実施の形態3または4のように保護プログラムを実行しているCPU以外のCPUが通常モード用の処理を実行できる場合には、通常モード用の処理をより多くのCPUで処理させることで、システム全体の処理性能を向上させることができる。
一方、保護モードで動作するCPUを1つのみとする場合には、従来の1つのCPU向けに開発されたプログラム資産を、そのまま利用することができる。
(10)上記実施の形態1および2では、リセット信号を投入し続けることによってCPU−2を停止していたが、他のCPUが保護モードで動作している間は停止するような特殊なCPUを用いて本発明を実現しても良いことは言うまでもない。例えば、このような特殊なCPUをCPU−2として用いる場合、切替機構からCPU−2に対して、CPU−1の現在のモードが通常モードであるか保護モードであるかの通知を送り、その通知を受けてCPU−2は停止したり動作を再開したりする。
また、CPUを停止させる方法もリセット信号を投入し続けるものに限らない。例えば、CPUに対するクロック信号を停止したり、電源供給を遮断したりするなどでも同様の効果が得られる。さらに、CPUごとに割込ベクタを設定できる場合には、CPU−1が保護モードへ遷移する時に、CPU−2の割込ベクタに含まれるリセット割込を、何の処理も行わない命令を記述したアドレスに書替えることなどによってもCPU−2を停止させることができる。
(11)上記の実施の形態4では、すべてのCPUが、自身の動作モードを通知するとしたが、一部のCPUについては通知しなくても良い。この場合、アクセス制限回路227は、モード情報とアクセス要求とを受け取ると、受け取ったモード情報を基にアクセスの可否の判定を行うが、モード情報を伴わないアクセス要求は、無条件に拒否する。
この構成では、モード情報を保持及び通知する機能を持つCPUと、そのような特殊な機能を持たない通常のCPUとを混在させてシステムを構築することができるので、全てのCPUにモード情報を通知する機能を持たせるよりも安価に本発明を実施できる。
また、CPUは、動作モードが保護モードである場合にのみ、モード情報を通知するとしても良い。この場合、アクセス制限回路227は、モード情報と共に受け取ったアクセス要求のみを受け付ける。
(12)上記の実施の形態では、通常モードで動作するプログラムおよびデータは、外部メモリ101に格納されていたが、これに限られるものではない。暗号化技術等を用いて、保護プログラム及び保護データに通常モードのCPUがアクセスできないような処理が施されていれば、通常モードのCPUが内部メモリを用いて通常モードで動作するプログラムおよびデータに対する処理を行っても構わない。
(13)上記の実施の形態3では、システムLSI200は、CPU−1 202に対応する切替機構205を備えていたが、CPU−2 203に対応する切替機構も別途備えるとしてもよい。この場合、CPUが保護モードに遷移すると、対応する切替機構から保護モードに遷移したCPUのIDを含むアクセス許可通知がアクセス制限回路206に出力される。CPU−1 202とCPU−2 203との両方が保護モードに遷移した場合、アクセス制限回路206は、内部のメモリ208に、CPU−1 202とCPU−2 203との両方のIDを記憶しておき、アクセス要求とともに通知されたCPUのIDが、記憶しているIDのいずれかに一致する場合には内部メモリ104へのアクセスを許可する。このようにすると、実施の形態3においても、保護モード用の処理をマルチCPU化できるので、システム全体の高速化を図ることができる。
また、この場合、各切替機構は、対応するCPUの割込ベクタの管理のみを行えばよい。
(14)また、上記の実施の形態3および4では、切替機構はCPUのプロセッサ内部にあるものとしたが、これに限られるものではなく、例えば、専用線を介して各CPUに接続されているものとしてもよい。
(15)上記の実施の形態1〜4及び変形例において、組み込み装置は、音楽データ等の再生が可能な携帯可能な民生機器であるものとして説明を行ったが、これに限られるものではない。
例えば、上記の実施の形態と同様の保護プログラムの実行方法を持ったDVDプレイヤー等の動画再生装置等であってもよいし、パーソナルコンピュータ、携帯電話、デジタルカメラ、ゲーム機など、様々な機器であることが考えられる。すなわち、本発明の組み込み装置は、保護されるべきプログラム又は保護されるべきデータを取り扱う処理装置であれば、どのようなものであってもよい。
(16)上記の実施の形態では、保護モード割込ベクタに含まれるリセット割込は、内部メモリ上の保護プログラムのアドレスを示していたが、これに限られるものではない。例えば、組み込み装置は、CPUのモードの切り替えが起こるたびに、保護プログラム及び保護データが内部メモリから消去されるようなシステムであって、保護プログラム及び保護データは、図示されていないROMなどに安全に記憶されているとする。
この場合、保護モード割込ベクタに含まれるリセット割込は、保護プログラム及び保護データを前述のROM等から内部メモリへと読み込むプログラムの記憶されているアドレスを指す。
また、上記の実施の形態では、バンク切替部の保持する保護モード割込ベクタに含まれるリセット割込を用いて、保護モードへの遷移時に保護プログラムを実行するよう制御していた。しかし、上記の制御に替えて、例えば、いずれかのCPUが保護モードで動作している最中には、保護モードで動作しているCPUからの外部メモリへのアクセス要求を却下するような機構を設けてもよい。例えば、外部メモリと内部バス間を接続したり、遮断したりするスイッチ機構を設けることで実現できる。このとき、切替機構の信号出力部は、切替レジスタに「1」が書き込まれると、外部メモリと内部バス間を遮断する旨の遮断信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記遮断信号を受け取ると、外部メモリと内部バス間を遮断する。また、信号出力部は、切替レジスタに「0」が書き込まれると、外部メモリと内部バス間を接続する旨の接続信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記接続信号を受け取ると、外部メモリと内部バス間を接続する。
この場合、CPUがアクセスできる範囲がシステムLSI内部の記録領域に確実に限定される。従って、外部メモリに不正なプログラムが存在したとしても、保護モードのCPUにより実行されることはないので、不正なプログラムにより保護プログラム及び保護データが抜き取られたり改竄されたりする危険性をより低減することができる。
さらに、CPU自体に、切替機構からの信号線を介して保護モードへの切り替えを指示する切り替え信号を受信する構成を持たせ、この切り替え信号を受信すると、システムLSI内部(つまり内部メモリ)に記録されたプログラムを起動または実行するように構成することで、CPUの保護モードを実現しても構わない。例えば、切替機構は、モードの切り替え対象となるCPUに対してのみ当該切り替え信号を出力し、他のCPUに対しては停止するように制御する(保護モードの間は当該他のCPUに対してリセット信号を出力し続ける)。
すなわち、保護モードへ遷移したCPUのみが、保護プログラム及び保護データにアクセスし、それによって保護プログラム及び保護データを改竄や盗聴から保護しつつ、秘匿されるべき処理を実行する方法であれば、どのような方法で保護モードを実現しても構わない。
(17)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に実装しなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
(18)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でハードウェアとして実装してもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。このような実装は、特に退避処理や復帰処理等、ユーザの利便性のために高速化が求められる処理などにおいて有用である。
(19)システムLSIは集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもあるが、上記の各実施のシステムLSIを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(20)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−rayDisc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
(21)また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと改竄から保護されたプログラムを用いた処理を行う保護モードとを有する集積回路であって、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、少なくとも1つの実行手段に前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えることを特徴とする集積回路でもある。
このような構成により、本発明に関する集積回路は、複数の実行手段を用いてマルチプロセス処理を行うことができる。さらに、集積回路が保護モードにある場合に保護されたプログラムを実行させた実行手段のみに保護されたプログラム等を格納している内部メモリへのアクセスを許可するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
(22)変形例(21)の集積回路において、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへの切り替えの際に、前記少なくとも1つの実行手段に前記保護されたプログラムを実行させ、かつ、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段を除いた実行手段を停止させる切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行させていない実行手段を停止するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
(23)前記変形例(22)の集積回路において、切り替え部は、さらに、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段以外の実行手段に対して、前記実行手段をリセット状態にするリセット信号を通知することで、前記実行手段を停止させるとしてもよい。
(24)また、変形例(23)の集積回路において、前記切り替え部は、さらに、前記リセット信号を前記実行手段に通知し続けることで前記実行手段を停止させるとしてもよい。
このような構成により、本発明に関する集積回路は、リセット信号のみを利用して実行手段を停止させることができるので、特殊な構成を持たない汎用的な実行手段を用いて実現することができる。
(25)また、変形例(24)の集積回路において、の前記切り替え部は、さらに、前記集積回路の外部にある外部メモリに格納された切り替えプログラムによって制御されるとしても良い。
(26)また、前記変形例(25)の集積回路において、前記切り替え部は、さらに、前記保護されたプログラムの優先度が、前記保護の不要なプログラムの優先度より低い場合に、前記切り替えプログラムによって制御されるとしてもよい。
このような構成により、保護されたプログラムを実行させていない実行手段が、保護は不要なものの優先度の高い処理を実行中の場合に、その実行手段を、保護されたプログラムの実行への切り替えることを遅らせることができ、保護が不要なプログラム等の性能低下を低減することができる。
(27)また、変形例(26)の集積回路において、前記切り替え機構は、さらに、前記通常モードから前記保護モードへの切り替えの際に、前記複数の実行手段の状態を退避し、前記保護モードから前記通常モードへの切り替えの際に、前記退避した前記複数の実行手段の状態を復帰する、前記切り替えプログラムによって制御されるとしてもよい。
このような構成により、本発明に関する集積回路は、保護モードへの遷移前後であっても、処理を継続して行うことができる。
(28)また、変形例(27)の集積回路において、前記アクセス制限部は、前記切り替え部からの通知によって制御され、前記切り替え部は、前記保護モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを許可するよう通知し、前記切り替え部は、前記通常モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを不許可するよう通知するとしてもよい。
(29)また、変形例(27)の集積回路において、前記アクセス制限部は、前記実行手段からの通知によって制御され、前記実行手段は、前記保護されたプログラムを実行すると、前記アクセス制御部に、前記内部メモリへのアクセスを許可するよう通知し、前記保護されたプログラムの実行を停止すると、前記アクセス制御部に、前記内部メモリへのアクセスを禁止するよう通知するとしても良い。
(30)また、上記の変形例(28)及び(29)の集積回路において、前記アクセス制御部は、前記通常モードにおいては、前記内部メモリへのアクセスを禁止し、前記内部メモリは、さらに、前記実行手段によって実行されている保護されたプログラムの状態を保持するとしてもよい。
(31)上記の変形例(30)の集積回路において、実行されている前記保護されたプログラムの状態は、前記保護モードから前記通常モードへの切り替えの際に、前記保護されたプログラムを実行させた実行手段から取得され、前記通常モードから前記保護モードへの切り替えの際に、前記保護されたプログラムを実行する実行手段に復帰されるとしても良い。
このような構成により、保護されるべきプログラムの中断した状態を、通常モードではアクセスできない内部メモリに格納するため、安全に保護モードの動作を中断し、安全に再開することができる。
(32)また、上記の変形例(21)の集積回路において、前記複数の実行手段のうち、前記少なくとも1つの実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて前記保護されたプログラムを実行し、前記複数の実行手段のうち、前記少なくとも1つの実行手段を除く実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて自身の動作を停止し、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへ切り替えの際に、前記保護モードへの切り替えの通知を前記複数の実行手段に送信する切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
このような構成により、本発明に関する集積回路では、保護されたプログラムを実行していない実行手段は保護モードへの遷移時に停止するため、保護されたプログラムを実行していない実行手段による保護されたプログラム等への不正なアクセスを防止することができる。
(33)上記の変形例(21)の集積回路において、前記複数の実行手段は、それぞれ、前記内部メモリへのアクセス要求とともに自身を識別する識別情報を通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段の識別情報を通知する切り替え部と、前記切り替え部から前記保護されたプログラムを実行させた実行手段の識別情報の通知を受け取り、前記実行手段のうち、前記アクセス要求とともに通知された識別情報が、通知された識別情報と一致する場合に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
(34)上記の変形例(21)の集積回路において、前記実行手段は、自身の前記内部メモリへのアクセス要求とともに自身が前記保護されたプログラムを実行したか否かを通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記1つ以上の処理手段に保護されたプログラムを実行させる切り替え部と、前記実行手段から、前記アクセス要求とともに前記保護されたプログラムを実行した旨が通知されると前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしても良い。
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
(35)また、本発明は、外部メモリと、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路とを備えた処理装置であって、前記外部メモリは、前記保護が不要なプログラムを格納し、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えるとしても良い。
(36)また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられる方法であって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記方法は、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしても良い。
(37)また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられるプログラムであって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記プログラムは、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしてもよい。
(38)これらの実施の形態および変形例の組合せであってもよい。
本発明は、複数のCPUを搭載し、保護すべき情報を取り扱うシステムLSIを製造及び販売する産業、前記システムLSIを搭載した機器を製造販売する産業、また、これらの機器を用いて保護されるべき情報を使用したサービスを提供する産業において、経営的、継続的、反復的に利用可能である。
本発明は、処理能力が高い装置等で、保護されるべきプログラムやデータを安全に取り扱う技術に関するものである。
近年、民生機器では、音楽データをディジタル化して記憶装置に取り込み、音楽を楽しむということが行われるようになっている。また、音楽データの取り扱いのみならずHD画像など、より表現能力が高いコンテンツの取り扱いが民生機器に求められるようになっている。
上述したHD画像等の表現能力が高いコンテンツを処理するには、民生機器の処理能力の向上が必要である。処理能力を向上させる手法としては、Personal Computer(PC)の分野では、マルチCPU(マルチプロセッサとも呼ばれる)が用いられている。マルチCPUとは、従来1つのCPUで行っていた処理を複数のCPUに分担させることで、処理時間を短縮させる技術である。
一方で、ディジタル化された音楽データや上記HD画像等は、劣化なしで複製することが可能である。そこで、著作権者の利益を保護するために、これらのデータは不正利用されない環境で取り扱われなければならない。
このような、複数のCPUを搭載した機器において、保護されるべきデータの不正利用を抑制する技術が、特許文献1に開示されている。特許文献1に記載の技術(以下、第1の従来技術という。)では、以下の技術が開示されている。各CPUには、それぞれのCPUに固有の鍵が割り当てられており、保護すべきプログラムやデータは、そのプログラムやデータを取り扱うCPUと対応する鍵を用いて暗号化された状態で外部メモリに記憶されている。各CPUが、外部メモリに記憶されているデータやプログラムを利用しようとするとき、そのCPUに対応する鍵を用いて、バス暗号回路が復号処理を施して、復号後のデータ又はプログラムをCPUへ出力する。
しかし、プログラムやデータがコンテンツの再生許可回数などの権利情報を含む場合に、外部メモリの内容を丸ごとバックアップした上で、権利を消費し、その後、バックアップしておいた権利情報を元に戻すという不正利用(以下、バックアップ・リストア攻撃と呼ぶ)を防止することができない。この場合、元に戻した権利情報もバス暗号回路で正しく復号されてしまうので、消費したはずの権利を元に戻すことができる。そのため、第1の従来技術では、保護されるべき情報を安全に扱うことはできない。
そこで、より確実にデータやプログラムを保護するために、別の技術として、1つのCPU(シングルプロセッサ)を搭載した機器において、保護すべきデータに関する処理と、保護を必要としないデータに関する処理とを切り替えて処理を行う技術がある(以下、第2の従来技術という。)。
第2の従来技術の前記機器において、保護すべきデータに関する処理を行う実行環境をシステムLSI内部の内部メモリとCPUの専用モードとで実現している。なお、以下ではこのような実行環境を保護モードと呼ぶ。第2の従来の技術では、システムLSIが保護モードでないモードで動作している時(以下、通常モードと呼ぶ)には、内部メモリへのアクセスが遮断される。ここで、通常モードから保護モードへの切り替えが起こると、CPUはリセットされたのち、システムLSI内部の保護されたプログラムを起動させる。この保護されたプログラムは、システムLSI内部のROM等に記録されており、外部からの改竄は困難なプログラムである。また、システムLSIは保護モードへの切り替えが起こると、内部メモリへのアクセスが許可される。このような制御を行うことで、システムLSIが通常モードで動作している間は、内部メモリへのアクセスができない。また、保護モードへ切り替わると、内部メモリへのアクセスが許可されるが、ここで内部メモリへアクセスできるプログラムは、専用モードに遷移したCPUが動作させている改竄困難なプログラム(もしくは改竄困難なプログラムが呼び出した他のプログラム)であるので、内部メモリ上のデータを取り扱うプログラムを安全なものに限ることができる。
このように、1つのCPUを搭載した機器において、保護すべきデータに関する処理と保護を必要としないデータに関する処理とを切り替えることにより、セキュアメモリへの不正なアクセスを防止して、内部メモリ上のデータを安全に利用することができる。
特開2005−99984号公報
第1の従来技術では、HD画像等の表現能力が高いコンテンツを処理するための処理能力は高いが、バックアップ・リストア攻撃を防止することができない。そのため、第1の従来技術では、保護されるべき情報を安全に扱うことはできない。
一方、第2の従来技術では、保護されるべき情報を安全に扱うことができるが、プロセッサが1つであるので、HD画像等の表現能力が高いコンテンツを処理するための処理能力は低い。
つまり、第1及び第2の技術それぞれは、HD画像等の表現能力が高いコンテンツを処理するための処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができない。
そこで、本発明は、処理能力の向上を図りつつ、保護されるべきプログラムやデータを安全に扱うことができる情報処理装置、集積回路、方法及びプログラムを提供することを目的とする。
上記目的を達成するために、本発明は、保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、保護すべき情報を記憶するためのセキュアメモリと、それぞれプログラムに従って動作する複数のプロセッサと、前記複数のプロセッサを相互に接続するバスと、保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段とを備えることを特徴とする。
上記の構成によると、情報処理装置は、保護すべき処理の期間において少なくとも1のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させ又は他のプロセッサに対してセキュアメモリへのアクセスを禁止している。これにより、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においては、全てのプロセッサに対して、セキュアメモリへのアクセスを禁止しているので、各プロセッサからセキュアメモリへのアクセスはできない。つまり、本発明の情報処理装置は、複数のプロセッサを備えることにより処理能力の向上を図ることができ、且つ保護すべき処理の期間においては前記他のプロセッサによって、又他の処理の期間においては全てのプロセッサによって保護されるべきプログラムやデータが利用されることがないので、保護されるべきプログラムやデータを安全に扱うことができる。
ここで、前記制御手段は、保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、保護すべき処理の期間、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部とを備えるとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、セキュアメモリとバスとを接続し、少なくとも1のプロセッサに対してセキュアメモリへのアクセスを許可し、他のプロセッサを停止させるので、本発明の情報処理装置は、保護すべき処理の期間において、前記他のプロセッサからセキュアメモリへ不正なアクセスはできない。また、他の処理の期間においてセキュアメモリとバスとの接続を切断するので、他の処理の期間において各プロセッサに対してセキュアメモリへのアクセスを確実に禁止することができる。
ここで、前記アクセス制御部は、前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してリセット信号を出力し続けることで、前記他のプロセッサを停止することができる。これにより、リセット信号を処理する機構さえ備えているプロセッサであれば従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記情報処理装置は、さらに、前記少なくとも1のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第1の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第2の割込ベクタを有効にすることにより、前記少なくとも1のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
この構成によると、情報処理装置の切替手段は、前記少なくとも1のプロセッサに対して、参照する割込ベクタとして、通常モード割込ベクタの代わりに保護モード割込ベクタを有効とするので、前記少なくとも1のプロセッサは確実にセキュアメモリ内を参照することができる。
ここで、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも1のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、前記情報処理装置は、さらに、前記切替プログラムの指示に従って、前記少なくとも1のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備えるとしてもよい。
この構成によると、情報処理装置は、切替プログラムを実行することにより、前記少なくとも1のプロセッサに対して保護すべき処理の期間において確実にセキュアメモリ内を参照するように参照先を切り替えることができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも1のプロセッサに対してリセット信号の出力を解除するとしてもよい。
この構成によると、情報処理装置は、他の処理から保護すべき処理へと切り替える際に、複数のプロセッサのレジスタ内容を退避した後に、前記少なくとも1のプロセッサの参照先をセキュアメモリ内へと切り替えるので、処理が切り替えられる直前のレジスタ内容を保証することができる。
ここで、前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも1のプロセッサに対して、前記第2の割込ベクタに代えて、前記第1の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替えるとしてもよい。
この構成によると、情報処理装置は、保護すべき処理から他の処理へと復帰する際に、前記少なくとも1のプロセッサの参照先を前記他のメモリへと切り替えるので、セキュアメモリへの参照を防止することができ、さらには、退避していたレジスタの内容を復帰させるので、レジスタの内容を保護すべき処理への切替前の状態へと確実に復元することができる。
ここで、前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、前記情報処理装置は、さらに、前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段とを備えるとしてもよい。
この構成によると、情報処理装置は、他の処理の期間中において実行中のプログラムであるが重要なプログラムが実行されている場合に、当該プログラムの優先度よりも低い保護モード用のプログラムの処理に占有されることなく、実行中の重要なプログラムの処理を優先して行うことができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対してクロック信号を停止するように制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して電源供給を遮断するよう制御することで、前記他のプロセッサを停止することができる。これにより、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させるとしてもよい。
この構成によると、情報処理装置のアクセス制御部は、前記他のプロセッサに対して、参照するアドレスとして、何も処理しない命令が記述されたアドレスを参照するよう制御するので、従来のプロセッサに手を加えることなく当該情報処理装置を構築することができ、比較的安価に情報処理装置を実現することができる。
ここで、前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも1のプロセッサがセキュアメモリを参照するように制御するとしてもよい。
この構成によると、情報処理装置は、前記少なくとも1のプロセッサに対して参照先をセキュアメモリへと切り替えることができる。
ここで、前記制御手段は、さらに、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された1以上のプロセッサがアクセスできる範囲を当該セキュアメモリに限定することができる。したがって、セキュアメモリとは異なる他のメモリに不正なプログラムが存在したとしても、保護すべき処理を行っている1以上のプロセッサにより実行されることはないので、不正なプログラムによるセキュアメモリへの不正なアクセスを防止することができる。
ここで、前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサと前記他のメモリとの接続を切断するので、前記1以上のプロセッサがアクセスできる範囲をセキュアメモリに確実に限定することできる。
ここで、前記制御手段は、前記他のメモリと前記バスとの接続を切断するとしてもよい。
この構成によると、情報処理装置は、保護すべき処理の期間において、バスと前記他のメモリとの接続を切断するので、保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサに限らず、前記他のプロセッサに対しても前記他のメモリへのアクセスを防止することができる。
ここで、前記複数のプロセッサは、それぞれ固有の識別子によって識別され、前記制御手段は、前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部とを含むとしてもよい。
この構成によると、情報処理装置の制御手段は、保護すべき処理の期間において前記セキュアメモリへのアクセスが許可された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は、一例として、保護すべきデータである音楽データ等の録音、再生を実行する携帯可能な民生機器であるものとして説明を行う。
組み込み装置117は、保護すべきデータ(例えば、音楽コンテンツの再生やコピーに関する権利情報、復号鍵データなどが該当する。以下、保護データと呼ぶ)に関する処理を、システムLSI100上の内部メモリ104上を用いて実行する装置である。この際に、保護データを処理するためのCPUは、実行環境がシステムLSI内部の内部メモリとCPUの専用モードとから実現されるモード(以下、保護モードと呼ぶ。また、これに対して、保護モードでないモードを通常モードと呼ぶ。)に遷移して必要な処理を実行し、保護モードに遷移したCPU以外のCPUを停止させることにより、内部メモリ104に対して通常モードのCPUがアクセスすることを禁止する。
なお、システムLSI100内の各CPUは、起動直後及び初期化直後は通常モードで動作するものとする。また、組み込み装置117が保護データを処理する場合には、説明の便宜上、本実施の形態では、CPU−1 102が保護モードに遷移して、保護されるべき処理を実行し、CPU−1 102が保護モードで動作している間、CPU−2 103は停止しているとするように設定されているものとする。
以下、組み込み装置117の概要を説明するため、各構成要素の概略を説明する。より詳細な説明については、後ほどそれぞれの構成要素についての説明で行う。
システムLSI100は、図示していない外部フラッシュメモリ等から読み込まれた音楽データの再生を行う。音楽データの再生手順は、アプリケーション114a及び114bに記述されているとする。ここで、本実施の形態では、外部フラッシュメモリ内の音楽データには暗号化が施されているものとし、アプリケーション114a及114bは、切替プログラム115を介して、保護プログラム111へ秘匿すべき処理(保護すべき処理)を依頼する。ここで、秘匿すべき処理とは、例えば、暗号化音楽データの復号、復号鍵の生成、再生を許可されている期限や回数の確認などである。アプリケーション114の依頼により、保護プログラム111は、システムLSI100に配置され、外部からのアクセスが困難な内部メモリ104を用いて前述の秘匿すべき処理を行う。この処理は、保護モードに遷移したCPU−1が、保護プログラム111を実行することで実現され、その間、CPU−2は、停止している。そのため、当該組み込み装置117は、音楽データの復号および再生に関連する処理を安全に、実行することができる。
外部メモリ101は、システムLSI100の外部に設けられたメモリであり、セキュリティ面から見て重要度の低いプログラム等の実行に用いる。なお、本実施の形態では、この外部メモリは、大きな容量を持つものの、特に不正アクセスを防止する機構は設けられていないメモリであると想定しているが、何らかの機構により不正アクセスを防止するように構成して良いことは言うまでもない。
1.2 構成
以下、組み込み装置117が備える各構成要素の詳細について説明を行っていく。
なお、通常、組み込み装置117は、さらに、図1に図示されていないユーザからの入出力を受け付ける入出力部や、着脱可能な外部メモリへのインタフェース、音声の出力機構などを備えているが、これらは本発明の本質ではないので説明を省略する。
<システムLSI100の説明>
システムLSI100が備えるCPU−1 102とCPU−2 103と、切替機構105と、アクセス制限回路106とは、内部バス107を介して互いに接続されている。さらに、内部メモリ104とアクセス制限回路106とが専用線を介して接続されている。
本実施の形態では、内部メモリ104とアクセス制限回路106を専用線を介して接続しているので、各CPUは、アクセス制限回路106を介さずに内部バス107から内部メモリ104へアクセスできない構造になっている。
従って、アクセス制限回路106によってアクセスが認められないCPU等による内部メモリ104のデータの盗み取りを防ぐ事が出来る。
(1)CPU−1 102及びCPU−2 103
CPU−1 102とCPU−2 103は、外部メモリ101または内部メモリ104に格納されたプログラム等に含まれる命令コードを解読し実行することにより、システムLSI100全体の動作、および、組み込み装置117全体の動作を制御する。なお、CPU−1 102とCPU−2 103とは、後述するリセット信号を受信している間は、何も動作を行わない。また、CPU−1 102とCPU−2 103とは、リセット信号の受信後に、後述する割込ベクタ中のリセット割込を参照することで、システムLSI100および組み込み装置117に対する制御を再開する。リセット割込とは、リセット信号が解除された直後に実行されるハンドラ(プログラム)の記憶されているメモリ領域の先頭アドレスである。
(2)内部メモリ104
内部メモリ104は、RAM、ROMなどから構成され、図1に示すように、保護プログラム111や保護データ112を記憶する。
内部メモリ104内の保護プログラム111は、保護モードにおいて、CPU−1 102により実行されるプログラム群である。具体的には、保護モード用のオペレーティングシステム、保護モードにおいて、保護データ112を取り扱うアプリケーションプログラムなどが該当する。この保護プログラム111を構成するプログラムは、単独で、または必要に応じて他のプログラムと連携し、保護されるべき処理(例えば、暗号化された音楽データの復号、復号鍵の生成、音楽データに付随する権利情報のチェック)を行う。これらの処理が終了すると、保護プログラム111は、切替機構105内の切替レジスタ121(後述する)に通常モードを意味する値「0」を書き込む。
保護データ112は、不正なアクセスから保護されるべきデータであり、例えば、保護プログラム111により復号された音楽データや、音楽データを再生することができる回数などの権利情報、音楽データの復号に用いる復号鍵などである。
なお、図1では説明を簡単にするため、保護プログラム111と保護データ112とが内部メモリ104上に格納された後の状態を示しているが、これらのプログラム及びデータは、システムLSI100の起動直後に内部メモリ104へ格納されるとしても良いし、必要に応じて後から格納されるとしても良い。この場合、外部からの改竄を防止するため、これらのデータは、システムLSI100の内部の図示しない耐タンパ性を有するROMや、何らかのセキュリティ機構を備えた記録領域に記録されており、システムLSI100の起動時や保護プログラム111の実行開始時に内部メモリ104に格納される。
(3)切替機構105
図1に示すように、切替機構105は、信号線108、109を介して、それぞれ、CPU−1 102、CPU−2 103と接続されている。また、信号線118を介して、アクセス制限回路106とも接続されている。
図2は、切替機構105の詳細な構成を示すブロック図である。図2に示すように、切替機構105は、切替レジスタ121、信号出力部122、CPUレジスタ退避/復帰部125及びバンク切替部110から構成されており、2つのCPUの動作モードを切り替える構成を備える。
(3−1)切替レジスタ121
切替レジスタ121は、数ビット長のデータを記憶することができるレジスタであって、記憶しているデータは、CPU−1 102の状態を示す。例えば、切替レジスタ121に記憶されているデータ「0」は、通常モードを示し、データ「1」は、保護モードを示す。
(3−2)CPUレジスタ退避/復帰部125
CPUレジスタ退避/復帰部125は、切替プログラム115の指示に従ってCPU−1 102及びCPU−2 103のレジスタ内容や処理途中のデータを外部メモリ101へ退避し、また、退避したレジスタ内容などを各CPUに復帰する。
また、CPUレジスタ退避/復帰部125は、予め、復帰アドレスを記憶している。復帰アドレスは、外部メモリ101内において、切替プログラム115が記憶されている領域内の所定の位置を示す。切替プログラム115内において、復帰アドレスの指す位置以降の部分には、退避したレジスタ内容などを各CPUに復帰させる手順、保護プログラム111による処理結果をアプリケーション114へ通知する手順が含まれる。
なお、CPUレジスタ退避/復帰部125は、予め、復帰アドレスを記憶しているとしたが、各CPUのレジスタ内容の退避指示と共に、切替プログラム115から通知されるとしてもよい。
また、CPU−1 102が保護モードから通常モードに遷移する際、CPUレジスタ退避/復帰部125は、信号出力部122の指示により、内部バス107を介して、CPU−1 102のプログラムカウンタへ、前述の復帰アドレスを書き込む。
また、レジスタ退避/復帰部125は、切替プログラム115の指示により、各CPUに退避していたレジスタ内容などを復帰する。
(3−3)信号出力部122
信号出力部122は、切替レジスタ121の値を常時監視している。
切替レジスタ121に「1」が書き込まれると、信号線108及び109を介して、CPU−1 102及びCPU−2 103へリセット信号を出力する。これにより、2つのCPUのレジスタ値などが初期化される。
所定時間経過後、信号出力部122は、CPU−1 102へのリセット信号を解除し、CPU−2 103へはリセット信号を出力し続ける。
また、信号出力部122は、アクセス制限回路106へアクセス許可信号を出力する。
また、切替レジスタ121に「0」が書き込まれると、信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの書き込みを指示する。
次に、信号出力部122は、アクセス制限回路106へ、アクセス禁止信号を出力する。次に、CPU−2 203へのリセット信号を解除する。
図3は、時間の経過と各CPUへのリセット信号の出力の関係とを示している。以下、図3を用いて、時間の経過と、信号出力部122によるリセット信号出力及び停止の動作について説明する。
時刻t1において、切替レジスタ121に「1」が書き込まれると、信号出力部122は、CPU−1 102及びCPU−2 103の両方にリセット信号を出力を開始する。
時刻t2において、信号出力部122はアクセス許可信号をアクセス制限回路106へ出力するとともに、CPU−1 102へのリセット信号の出力を解除するが、CPU−2 103へのリセット信号の出力は継続する。
時刻t3において、切替レジスタ121に「0」が書き込まれると、信号出力部122は、アクセス制限回路106へ、アクセス禁止信号を出力した後、時刻t4に、CPU−2 103へのリセット信号の出力を停止する。
(3−4)バンク切替部110
図2に示すようにバンク切替部110は、2種類の割込ベクタを保持している。
これらは、組み込み装置117の製造時に記録されたものであって、販売後に改竄することはできない構造になっている。
通常モード割込ベクタ123は、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを含む。ここで、通常モード割込ベクタ123に含まれるアドレスは、何れも外部メモリ101及び組み込み装置117の保持するメモリ(図示されていないものも含む)の何れかの位置を示す。
保護モード割込ベクタ124も同様に、割込の種類毎に、割込が発生した場合に動作するハンドラの記憶されているアドレスを記憶している。保護モード割込ベクタに含まれるアドレスは、何れも、内部メモリ104内の何れかの位置を示す。
特に、保護モード割込ベクタ124に含まれるリセット割込は、内部メモリ104内において、保護プログラム111の記憶されている領域の先頭を示すアドレスである。
組み込み装置117の起動時において、バンク切替部110は通常モード割込ベクタ123を、有効な割り込みベクタとして指定する。
信号出力部122からアクセス許可信号が出力されると、バンク切替部110は、通常モード割込ベクタ123に代えて、保護モード割込ベクタ124を、有効な割込ベクタに指定する。
また、信号出力部122からアクセス禁止信号が出力されると、バンク切替部110は、通常モード割込ベクタ123を有効な割込ベクタに指定する。
有効な割込ベクタの指定の方法は任意であるが、例えば、2つの割込ベクタのうち、有効な一方の先頭にフラグを立てる方法などが考えられる。
従って、割り込み発生時には、CPU−1 102及びCPU−2 103は、2つの割込ベクタのうち、有効な割込ベクタを参照して割込処理を行う。
(4)アクセス制限回路106
アクセス制限回路106は、信号線118を介して、切替機構105内の信号出力部122と接続されており、アクセス許可信号及びアクセス禁止信号を受け取る。
アクセス制限回路106は、アクセス許可信号を受け取ると、内部バス107と内部メモリ104とを接続し、アクセス禁止信号を受け取ると、内部バス107と内部メモリ104とを遮断する。
なお、組み込み装置117の起動時には、アクセス制限回路106は、内部バス107と内部メモリ104とを遮断している。
(5)システムLSI100の構成のまとめ
このようにすることで、保護を必要としない処理において、通常モードである2つのCPUが内部メモリ104内のデータを参照することはない。また、保護を必要とする処理において、保護モードであるCPU−1 102は、内部メモリ104内のデータ、プログラムを参照して処理を行い、システムLSI100内で処理が完結するため、システムLSI100の外に不正なプログラムが存在したとしても、このプログラムが実行されることはない。
また、切替機構105は、CPU−1 102が保護モードで動作している間は、CPU−2 103に対してリセット信号を送り続けることでCPU−2 103の動作を停止させる。そのため、CPU−2 103は、システムLSI100が保護モードで動作している間は何の処理も行えなくなるので、外部メモリに書き込まれた悪意あるプログラムを読み込むこともなく、内部メモリ104のデータを奪うような動作も行えない。
さらに、切替機構105は、CPU−1 102を保護モードから通常モードに遷移させる場合に、CPU−1 102のプログラムカウンタに前述の復帰アドレスを書き込み、CPU−2 103のリセットを解除し、アクセス制限回路106にアクセス禁止を通知する。
さらに、バンク切替部110は、CPUの動作モードが切り替わるときに、割込ベクタを各モード用のものに変更する。そのため、通常モードでは、割込発生時に、各CPUが、内部メモリ104を参照することはないし、保護モードでは、CPU−1 102は、内部メモリ104を参照し、外部メモリ101等を参照することはない。
従って、外部メモリ101などに不正なプログラムが存在しても、システムLSI100が保護モードで動作している間は、実行されることはないので、内部メモリ104に記憶されているデータ及びプログラムを、不正なプログラムの実行によって改竄したり、抜き取ったりすることは困難である。
<システムLSI100以外の部分についての説明>
続いて、組み込み装置117の他の部分について説明を行う。
外部メモリ101は、RAM、ROMを含んで構成され、一例として、図1に示すように、アプリケーション114aと、アプリケーション114bと、切替プログラム115と、オペレーティングシステム116とが格納されている。なお、これらのプログラムについてもシステムLSI100の起動時から外部メモリ101に格納されていてもよいし、ROMやHDD等の他の記録媒体から必要に応じて読み出されて外部メモリ101に格納されるものとしてもよい。
また、図示されていないが、外部メモリ101内には、その他のプログラムや、各プログラムの用いるデータなどが記憶されている。
(1)アプリケーション114a及び114b
アプリケーション114a及び114bは、いずれも組み込み装置117全体の制御を行うためのプログラムである。本実施の形態では、具体的には、図示されていないフラッシュメモリなどから音楽データを取得し、再生、複製などを実行する手順を含む。2つのアプリケーションは、それぞれ、データ形式の異なる音楽データを再生する手順を含んでいる。以後、これらを特に区別する必要がない場合、単にアプリケーション114と記載する。
また、アプリケーション114は、切替プログラム115を介して、保護プログラム111へ保護されるべき処理を依頼する手順が含まれる。
アプリケーション114は、随時CPU−1 102またはCPU−2 103により参照されて実行される。このアプリケーション114は、セキュリティ面から見た重要度が比較的低く、また、組み込み装置117全体の制御を行う関係上サイズが大きいため、大きさに制限がある内部メモリ104ではなく、外部メモリ101に格納されている。
(2)切替プログラム115
切替プログラム115は、切替機構105を制御して、システムLSI100内のCPUのモード遷移を開始させる手順を含むプログラムである。
具体的には、アプリケーション114から、呼び出しを受けると、切替機構105内の切替レジスタ121に「1」を書き込手順を含む。
また、前述の通り、切替プログラム115のうち、復帰アドレス以降の領域に記載されている部分には、退避している各CPUのレジスタ内容などを、それぞれのCPUに復帰させる手順、保護プログラム111による処理結果をアプリケーション114へ通知する手順を含む。
なお、切替プログラム115は、他のプログラムから不定期に発生する要求を受け付ける必要がある。従って、本実施の形態における切替プログラム115は、システムLSI100上の全てのCPUが通常モードで動作している間はCPU−1 102にてバックグラウンドで動作し続けているものとする。
(3)オペレーティングシステム116
オペレーティングシステム116は、アプリケーション114などに対して動作環境を提供するプログラムである。なお、オペレーティングシステム116は、基本ソフト、オペレーションシステムやOSと呼ばれる場合もある。
1.3 動作
(1)組み込み装置117の動作
ここでは、組み込み装置117の動作について、図4にて示すフローチャートを用いて説明する。
利用者の操作により、組み込み装置117の電源がONになると、組み込み装置117の起動が行われる。
組み込み装置117が起動するとシステムLSI100に電源が投入される(ステップS100)。
システムLSI100が起動すると、オペレーティングシステム116が起動される(ステップS101)。オペレーティングシステム116は、アプリケーション114や切替プログラム115を起動させる。本実施の形態において、切替プログラム115は、アプリケーション114から呼び出しを受けるまで、CPU−1 102で、待機する(ステップS102)。
ここで、ユーザが図示していないボタン等を用いた入力などを行うことで、組み込み装置117に音楽の再生が指示されると、アプリケーション114は、音楽の再生に関連する保護すべき処理を行うために、切替プログラム115に保護プログラム111の呼び出しを依頼する(ステップS103)。
切替プログラム115は、アプリケーション114から依頼を受け付けると、切替機構105へ各CPUのレジスタ内容などの退避を指示する。
この指示を受けると切替機構105内のCPUレジスタ退避/復帰部125が、CPU−1 102及びCPU−2 103内のレジスタ内容や、処理途中のデータを、外部メモリ101へ退避する(ステップS104)。
次に、切替プログラム115の制御により、切替機構105は、CPU−1 102を保護モードへ遷移させ、CPU−2 103を停止させる(ステップS105)。保護モードへの遷移の詳細に関しては、後述する。
続いて、保護モードに遷移したCPU−1 102が保護プログラム111を実行する(ステップS106)。以降、保護プログラム111は、必要に応じて他のプログラムと連携し、例えば、音楽データの再生回数のチェックを行い、再生可能ならば暗号化された音楽データを復号化するなどの処理を行う。このチェック処理や復号化処理については、本発明の本質ではないので、省略する。なお、この間、CPU−2 103は、切替機構105からリセット信号が入力し続けられているため何の動作も行わない。
依頼された処理が終了すると、保護プログラム111は、切替機構105内の切替レジスタに「0」を書き込み、これを契機として、CPU−1 102は、通常モードに遷移する(ステップS107)。保護モードから通常モードへ遷移させる処理の詳細に関しては、後述する。
通常モードに復帰したCPU−1 102は、切替プログラム115の実行を再開し、切替プログラム115は、切替機構105へ、2つのCPUのレジスタ内容の復帰を指示する。
この指示を受け、切替機構105内のCPUレジスタ退避/復帰部125は、外部メモリ101に退避している各CPUのレジスタ内容などを、それぞれ、CPU−1 102及びCPU−2 103に復帰する(ステップS108)。
次に、切替プログラム115は、保護プログラム111による処理結果を、アプリケーション114に通知する(ステップS109)。
アプリケーション114は、通知された処理結果、利用者の操作に応じて、音楽の再生などの処理を続行する(ステップS110)。
(2)保護モードへの遷移動作
図4のステップS105にて行われる保護モードの遷移動作では、アプリケーション114から保護されるべき処理が要求されると、切替プログラム115は、切替機構105を制御して、CPU−1 102を通常モードから保護モードに遷移させ、CPU−2 103を停止させる。
以下、保護モードへの遷移に係るシステムLSI100の詳細な動作について、図5にて示すフローチャートを用いて説明する。
切替プログラム115は、切替機構105内の切替レジスタ121に「1」を書き込む(ステップS121)。
切替レジスタ121に「1」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、信号線108と信号線109を介して、CPU−1 102とCPU−2 103にリセット信号を入力する(ステップS123)。
次に、切替機構105内のバンク切替部110は、通常モード割込ベクタ123に代えて、保護モード割込ベクタ124を有効にする(ステップS124)。
割込ベクタの変更(ステップS124)が終了すると、信号出力部122は、CPU−1 102へのリセット信号を解除する(ステップS126)。この操作によって、CPU−1 102は動作することが可能となる。
また、CPU−1 102へのリセット信号の解除とともに、信号出力部122は、信号線118を介して、アクセス制限回路106へアクセス許可信号を出力する(ステップS127)。
アクセス許可信号を受け取ると、アクセス制限回路106は、内部バス107と内部メモリ104とを接続する(ステップS128)。
CPU−1 102へのリセット信号が解除されたことにより、CPU−1 102は、保護モード割込ベクタ124に含まれる、リセット割込を参照し、内部メモリ104に格納された保護プログラム111の実行を開始する(ステップS129)。
(3)通常モードへの遷移動作
図4のステップS107にて行われる通常モードへの遷移動作は、保護プログラム111による保護すべき処理が終了した場合や、ユーザからのキー入力などの保護プログラム111の実行よりも優先すべき通常モードの処理を行う場合など、保護プログラム111の処理を中断もしくは終了する必要が生じると、開始される。
以下、通常モードへの遷移に係るシステムLSI100の動作について、図6にて示すフローチャートを用いて説明する。
CPU−1 102により実行されている保護プログラム111は、切替機構105内の切替レジスタ121に「0」を書き込む(ステップS131)。
切替レジスタ121に「0」が書き込まれたことを検出すると、切替機構105内の信号出力部122は、CPUレジスタ退避/復帰部125へ、復帰アドレスの設定を指示し、CPUレジスタ退避/復帰部125は、記憶している復帰アドレスを、CPU−1 102のプログラムカウンタに書き込む(ステップS132)。
次に、信号出力部122は、アクセス制限回路106へアクセス禁止信号を出力する(ステップS133)。
アクセス禁止信号を受けて、アクセス制限回路106は、内部バス107と内部メモリ104とを遮断する(ステップS134)。
また、切替機構105内のバンク切替部110は、保護モード割込ベクタ124に代えて通常モード割込ベクタ123を有効にする(ステップS136)。この操作によって、割込ベクタは、保護モード遷移前と同様の設定に戻る。
割込ベクタの変更(ステップS136)がなされた後に、信号出力部122は、CPU−2 103へのリセット信号を解除する(ステップS137)。この操作によって、保護モード中には停止していたCPU−2 103が動作を再開する。
なお、音楽再生中にユーザからの入力があった場合など、保護モードで動作中の保護プログラム111の動作を中断させる形で復帰処理が行われる場合には、遅くともステップS132の処理が行われるまでに、CPUレジスタ退避/復帰部125は、CPU−1 102のレジスタ内容や処理途中のデータなどを、内部メモリ104に格納する。その後、保護プログラム111の動作を再開する場合に、内部メモリ104に格納してあった、レジスタ内容や処理途中のデータをCPU−1 102に戻すことで、保護プログラム111の動作を再開させることができる。
1.4 まとめ
以上で述べたように、実施の形態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−2 103を停止させる方法として、リセット信号を送り続ける手法を取っているので、リセット信号を処理する機構さえ備えているCPUであれば従来のCPUに手を加えることなくシステムを構築することができ、比較的安価にシステムを実現することができる。
なお、上記の実施の形態では、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レジスタ退避/復帰部125によって、外部メモリ101に退避したデータやレジスタの内容を、退避対象のCPUとは異なるCPUに復帰させることで実現できる。
もちろん、一方のCPUを保護モードにおいて動作するCPUとして予め定めておき、他方を保護モードでの動作を許可しないCPUであると予め定めておくとしておいてもよい。
2. 実施の形態2
以下に、本発明の実施の形態2について図面を用いて説明する。なお、実施の形態1と同様の構成については説明を省略し、実施の形態2の特徴部分を中心に述べる。
2.1 構成
図7は、本発明の実施の形態2に関わる組み込み装置197のハードウェア構成を示すブロック図である。なお、実施の形態1と同様の構成要素については、同じ符号を付している。
実施の形態1の組み込み装置117と実施の形態2の組み込み装置197との構成の差異は以下の通りである。
実施の形態1の組み込み装置117では、CPU−1 102とCPU−2 103とは内部バス107を介してアクセス制限回路に接続していたが、実施の形態2の組み込み装置197では、CPU−1 182とCPU−2 183が、アクセス制限回路186に信号線189及び188を介して、直接接続している。
アクセス制限回路186は切替機構185からではなく、信号線188又は189を介して保護モードへ切り替わったCPUからアクセス許可信号を受けて内部メモリ104と内部バス107とを接続する。
同様に、保護モードで動作しているCPUによる保護プログラム111の実行が終了したとき、保護モードで動作しているCPUからアクセス制限回路186へアクセス禁止信号が入力される。
また、切替機構185の内部構成は、切替機構105と同様であるが、信号出力部とアクセス制限回路186は直接は接続されておらず、信号出力部は、アクセス制限回路186へアクセス許可/禁止信号を出力しない。
2.2 動作
また、実施の形態1と実施の形態2の動作の違いは以下の通りである。
実施の形態1では、切替機構105からの制御によって、アクセス制限回路106が内部メモリ104へのアクセス許可、禁止を実現していた。
それに対して、実施の形態2では、保護モードに遷移したCPUからの制御によって、アクセス制限回路186が内部メモリ104へのアクセス許可、禁止を実現する。
例えば、CPU−1 182が保護モードに遷移した場合、CPU−1 182は、アクセス制限回路186にアクセス許可信号を出力する。アクセス制限回路186は、アクセス許可信号を受け取ると、内部メモリ104と内部バス107とを接続する。CPU−1 182が保護モードから通常モードに遷移すると、CPU−1 182は、アクセス制限回路186にアクセス禁止信号を出力する。アクセス制限回路186は、アクセス禁止信号を受け取ると、内部メモリ104と内部バス107との接続を遮断する。
また、CPU−2 183が保護モードに遷移した場合には、CPU−2 183は、アクセス制限回路186にアクセス許可信号を出力する。アクセス制限回路186は、アクセス許可信号を受け取ると、内部メモリ104と内部バス107とを接続する。CPU−2 183が保護モードから通常モードに遷移すると、CPU−2 183は、アクセス制限回路186にアクセス禁止信号を出力する。アクセス制限回路186は、アクセス禁止信号を受け取ると、内部メモリ104と内部バス107との接続を遮断する。
上記の差異以外は、実施の形態1と実施の形態2は同一であるため、説明は省略する。
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とを含んでいる。
なお、実施の形態1と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ201、CPU−2 203、切替機構205、アクセス制限回路206が実施の形態1とは異なる。
本実施の形態では、各CPUは自身を識別する識別子(以下、IDと呼ぶ)を記憶している。
アクセス制限回路206は、システムLSI200が保護モードで動作している間、保護モードにて動作しているCPUのIDを記憶しており、記憶しているIDを用いて、内部メモリ104へのアクセスを要求するCPUが保護モードで動作しているCPUであるか否かを判断し、内部メモリ104へのアクセスを要求するCPUが保護モードで動作していると判断する場合にのみ、アクセスの要求元のCPUに対してアクセスを許可する。
なお、説明の便宜上、ここでは、CPU−1 202のみが保護モードに遷移することができるものとして説明する。
また、実施の形態1では、内部バス107と内部メモリ104との間は、保護モードによる動作中のみアクセス制限回路106を介して接続されていたが、本実施の形態では、内部バス107と内部メモリ104との間は、アクセス制限回路206を介して常時接続されているものとする。
3.2 構成
以下、組み込み装置217に含まれる構成要素うち、CPU−1 202、切替機構205、CPU−2 203、及びアクセス制限回路206について説明する。
(1)CPU−1 202
CPU−1 202は、自身に固有のID「ID1」204を、記憶している。ID204は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
CPU−1 202は、内部メモリ104へアクセスしようとする際には、記憶しているID「ID1」204を読み出し、アクセス要求と共に読み出した「ID1」をアクセス制限回路206へ出力する。
(2)切替機構205
切替機構205は、切替プログラム115からの要求に応じて、CPU−1 202を保護モードに切り替える。
切替機構205の内部構成は実施の形態1において説明した切替機構105とほぼ同様であるが、信号出力部は、CPU−1 202を示す「ID1」を含むアクセス許可信号及びアクセス禁止信号を、内部バス107を介して、アクセス制限回路206へ出力する。
また、実施の形態1の切替機構105とは異なり、CPU−1 202が通常モードから保護モードへ遷移する際、及び、保護モードで動作している間、CPU−2 203へリセット信号を出力しない。
また、CPUレジスタ退避/復帰部は、CPU−1 202のレジスタ内容のみを退避及び復帰し、CPU−2 203のレジスタ内容の退避及び復帰は行わない。
また、バンク切替部は、CPUごとに何れの割込ベクタを用いるかを管理する。
具体的には、バンク切替部は、CPU−2 203については、常に、通常モード割込ベクタを使用するように設定する。CPU−1 201については、保護モードに遷移する際に、保護モード割込ベクタを使用するように設定し、通常モードに遷移する際に、通常モード割込ベクタを使用するように設定する。
(3)CPU−2 203
CPU−2 203は、自身に固有のID「ID2」207を記憶している。ID207は、製造時に書き込まれたものであって書き替えることができない記憶領域に記憶されている。
CPU−2 203は、内部メモリ104へのアクセス要求を送信する際に、アクセス制限回路206へ、自身のID「ID2」も送信する。
CPU−2 203は、常に通常モードで動作しているため、切替機構205の保持する2つの割込ベクタのうち通常モード割込ベクタを使用する。
また、CPU−1 202が保護モードで動作中であっても、リセット信号を入力されないので、CPU−2 203は、通常モードで動作することができる。
(4)アクセス制限回路206
アクセス制限回路206は、内部にメモリ208を含んで構成される。
アクセス制限回路206は、切替機構205からIDを含むアクセス許可信号及びアクセス禁止信号を受け取る。
アクセス許可信号を受け取った場合、アクセス許可信号に含まれるIDをメモリ208に記憶する。なお、本実施の形態では、アクセス制限回路206は、メモリ208にCPU−1 202を示す「ID1」を記憶する。
アクセス禁止信号を受け取った場合、アクセス制限回路206は、アクセス禁止信号に含まれるIDをメモリ208から削除する。
また、アクセス制限回路206は、CPU−1 202又はCPU−2 203から当該CPUのIDと共にアクセス要求を受け取る。
次に、アクセス制限回路206は、受け取ったアクセス要求と共に送られてきたIDがメモリ208の記憶しているIDと一致するか否かを確認する。
確認の結果、IDが一致した場合には、アクセス制限回路206は、そのアクセス要求は保護モードで動作しているCPUから出力されたものであると分かるので、内部メモリ104へのアクセスを許可する。
IDが一致しなかった場合及びメモリ208にいずれのIDも記憶されていない場合は、アクセス制限回路206は、受け取ったアクセス要求が保護モードで動作していないCPUによるアクセス要求であるとして、アクセス要求を拒否する。
3.3 動作
以下に、組み込み装置217の動作について、実施の形態1と比較しながら説明する。
アプリケーション114からの呼び出されると切替プログラムは、切替機構205に、レジスタ内容の退避を指示する。
この指示を受けて、切替機構205は、CPU−1 202のレジスタ内容のみを退避する。
実施の形態1では、切替機構105からの制御によって、アクセス制限回路106が、内部バス107と内部メモリ104とを接続又は遮断することで、内部メモリ104へのアクセスを許可又は禁止を実現していた。
それに対して、実施の形態3では、CPU−1 202を保護モードへ遷移させる際に、切替機構205は、CPU−1 202を示すID「ID1」204を読み出し、読み出した「ID1」を含むアクセス許可信号を、アクセス制限回路206へ出力する。
アクセス制限回路206は、アクセス許可信号を切替機構205から受け取ると、受け取ったアクセス許可信号に含まれるID「ID1」を、メモリ208に記憶する。
次に、切替機構205は、実施の形態1とは異なり、CPU−1 202のみに所定時間リセット信号を入力し、CPU−2 203へリセット信号を出力しない。
次に切替機構205は、CPU−1のリセットベクタを保護モードリセットベクタに設定する。これにより、CPU−1 202の保護モードへの状態遷移は完了する。
各CPUは、動作中において、内部メモリ104へアクセス使用とする際には、先ず、自身の保持するIDを読み出し、読み出したIDと共にアクセス要求を、内部バス107を介して、アクセス制限回路206へ通知する。
アクセス制限回路206は、アクセス要求と共に受け取ったIDと、メモリ208に記憶している「ID1」とを比較する。
アクセス制限回路206は、両者が一致する場合、要求元のCPUに対してアクセスを許可し、一致しない場合には、要求元のCPUに対してアクセスを拒否する。
より具体的には、保護モードで動作しているCPU−1 202が内部メモリ104にアクセスを行おうとする場合、CPU−1 202は、アクセス要求と共にCPU−1 202を示すID「ID1」204もアクセス制限回路206に通知される。アクセス制限回路206は、メモリ208に記憶されている「ID1」とアクセス要求と共に届いた「ID1」とを比較し、両者が一致することを確認する。これにより、アクセス要求を許可し、CPU−1 202は、内部メモリ104へアクセスする。
一方、CPU−2 203が内部メモリ104にアクセスを行おうとする場合、CPU−2 203は、アクセス要求と共にCPU−2 203を示すID「ID2」207も内部バス107を介して、アクセス制限回路206に通知される。アクセス制限回路206は、アクセス要求と共に受け取った「ID2」とメモリ208の記憶している「ID1」を比較し、両者が一致しないことを確認する。これにより、アクセス要求を却下する。
CPU−1 202は、保護プログラム111を実行し、保護すべき処理を行う。保護すべき処理が終了すると、保護プログラム111は、切替機構205内の切替レジスタに「0」を書き込む。これを契機として、CPU−1 202は、保護モードから通常モードへ遷移する。
通常モードへの遷移の処理中において、切替機構205は、CPU−1 202のID「ID1」204を含むアクセス禁止信号をアクセス制限回路206へ出力する。
アクセス制限回路206は、アクセス禁止信号を受け取り、受け取ったアクセス禁止信号に含まれる「ID1」をメモリ208から削除する。
以後、アクセス制限回路206内のメモリには、いずれのIDも記憶されていないため、アクセス制限回路206は、何れのCPUからのアクセス要求も却下する。
3.4 まとめ
実施の形態3では、実施の形態1や2と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
さらに、実施の形態3では、CPU−2 203は、CPU−1 202が保護モードで動作中であっても停止しないので、CPU−1 202が保護プログラムや保護データを処理している最中であっても、通常モード用のプログラムやデータ(保護を必要としないプログラムやデータ)を処理するCPUとして動作する事が可能である。これにより、システム全体の処理を高速化することができる。
上記の差異以外は、実施の形態1と実施の形態3は同一であるため、説明は省略する。
なお、上記の実施の形態3では、切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、内部バス107を介して、アクセス制限回路206へ出力するとしたが、これに限定されない。切替機構205は、IDを含むアクセス許可信号及びアクセス禁止信号を、信号線を介してアクセス制限回路206へ出力するとしてもよい。
また、上記の実施の形態3では、内部バス107と内部メモリ104との間は、アクセス制限回路227を介して常時接続されているものとしたが、これに限定されない。実施の形態1と同様に、アクセス制限回路227は、切替機構から受け取ったアクセス許可/禁止信号に基づいて、内部バス107と内部メモリ104との間を接続/遮断を行ってもよい。
また、保護モードで動作できるCPUが1つしかない場合は、切替機構205に予めそのCPUのIDを格納しておいてもよい。
この場合、アクセス許可信号やアクセス禁止信号を受け取る度にIDを格納したり削除したりするのではなく、アクセス許可信号を受け取った後、アクセス禁止信号を受け取るまでの間は、そのIDに対応するCPUによるアクセスを許可するようにしてもよい。
4. 実施の形態4
以下に、本発明の実施の形態4について図面を用いて説明する。なお、実施の形態1〜3と同様の構成については説明を省略し、実施の形態4の特徴部分を中心に述べる。
4.1 概要
本発明の実施の形態4に関わる組み込み装置237は、図9にて示すように、システムLSI220と、外部メモリ101とを搭載している。システムLSI220は、プロセッサ1 221と、プロセッサ2 228と、アクセス制限回路227と、内部メモリ104とを含んでいる。
なお、実施の形態3と同様の構成要素については、同じ符号を付している。すなわち、プロセッサ1 221、プロセッサ2 228及びアクセス制限回路227が実施の形態3とは異なる。
各プロセッサは、当該プロセッサにおける動作モードを示すモード情報を記憶しており、内部メモリ104へアクセス要求を行う際に、記憶しているモード情報をもアクセス制限回路227へ出力する。
アクセス制限回路227は、アクセス要求と共に受け取ったモード情報により、アクセスを許可するか否かを決定する。
なお、本実施の形態では、実施の形態3と同様に、内部バス107と内部メモリ104とは、アクセス制限回路227を介して常時接続されているものとする。
4.2構成
以下、組み込み装置237に含まれる構成要素のうちプロセッサ1 221、プロセッサ2 228及びアクセス制限回路227について説明する。
(1)プロセッサ1 221及びプロセッサ2 228
プロセッサ1 221とプロセッサ2 228の構成は同様であるのでここでは、プロセッサ1 221についてのみ説明する。
図9に示すように、プロセッサ1 221は、CPU−1 222と切替機構225とを含んで構成される。
(1−1)CPU−1 222
CPU−1 222は、ステータスレジスタ224を含む。ステータスレジスタ224は、CPU−1 222の現在の動作モードを示すモード情報を記憶している。具体的に、モード情報「1」は保護モードを示し、モード情報「0」は通常モードを示す。
内部メモリ104へアクセス使用とする場合、CPU−1 222は、ステータスレジスタ224の記憶しているモード情報を読み出し、内部バス107を介して、アクセス要求と共に読み出したモード情報をアクセス制限回路227へ出力する。
なお、CPU−1 222は、ステータスレジスタ224にモード情報を記憶しているとしたが、アクセスの度に、切替機構内の切替レジスタを参照してモード情報を生成し、アクセス要求と共に出力しても良い。
(1−2)切替機構225
切替機構225は、CPU−1 222のモード切替のみを実行する。切替機構225内部の詳細な構成は、実施の形態1において説明した切替機構225とほぼ同様であるが、信号出力部は、CPU−1 222のみへリセット信号を出力する。
また、信号出力部は、アクセス制限回路227へのアクセス禁止信号、アクセス許可信号の出力は行わない。
また、バンク切替部は、CPU−1 222の参照する割込ベクタのみを管理し、CPU−1 222のみが2つの割込ベクタのうち有効な一方を参照する。
また、切替機構225内の信号出力部は、CPU−1 222が保護モードに遷移すると、CPU−1 222内のステータスレジスタ224にモード情報「1」を書き込む。
逆に、CPU−1 222が保護モードから通常モードへ遷移すると、信号出力部は、ステータスレジスタ224にモード情報「0」を書き込む。
(2)アクセス制限回路227
アクセス制限回路227は、CPU−1 222またはCPU−2 223からのアクセス要求とモード情報とを受け取る。
これらを受け取ると、受け取ったモード情報が保護モード及び通常モードの何れを示しているかを確認する。
受け取ったモード情報が、保護モードを示す「1」である場合、アクセス制限回路227は、内部メモリ104へのアクセスを許可する。逆に、受け取ったモード情報が、通常モードを示す「0」である場合は、アクセス要求を拒否する。
4.3 動作
続いて、実施の形態4の組み込み装置237の動作について、実施の形態3と比較しながら説明する。
実施の形態3では、切替機構が保護モードに遷移したCPUのIDを含むアクセス許可信号及びアクセス禁止信号をアクセス制限回路に事前に出力し、アクセス制限回路は、切替機構から受け取ったアクセス許可信号及びアクセス禁止信号に含まれるIDを基に、保護モードで動作しているCPUのIDを記憶していた。
また、実施の形態3では、アクセス制限回路は、記憶しているIDを基に、各CPUからのアクセス要求を許可又は禁止していた。
それに対して、実施の形態4では、プロセッサ1に含まれる切替機構225は、CPU−1 222の動作モードを切り替えるが、その切り替えに当たって他の構成部へ信号を出力したりはしない。その代わり、切替機構225は、CPU−222内部のステータスレジスタ224にモード情報を書き込む。
プロセッサ1に含まれるCPU−1 222は、内部メモリ104へアクセスする場合には、ステータスレジスタ224からモード情報を読み出し、アクセス要求と共に読み出したモード情報をアクセス制限回路227に出力する。
アクセス制限回路227は、CPU−1 222からアクセス要求と共にモード情報を受け取る。受け取ったモード情報が「1」であれば、内部メモリ104へのアクセスを許可し、「0」であればアクセスを拒否する。
プロセッサ2の動作もプロセッサ1と同様であるので、ここでは説明を省略する。
4.4 まとめ
実施の形態4でも他の実施の形態と同様、保護モードに切り替わっていない(もしくは切り替わることのできない)CPUによる内部メモリ104へのアクセスを制限することができるので、保護プログラム111や保護データ112が不正にアクセスされる危険性を低減することができる。
さらに、CPU−2 223はCPU−1 222とは独立に保護モードに遷移する事が可能である。そのため、実施の形態4では、CPU−1 222とCPU−2 223が同時に保護モードで処理を行うことにより、保護すべき処理をマルチCPU化することができる。すなわち、保護モードにおける処理についても高速化する事が可能である。
上記の差異以外は、実施の形態3と実施の形態4は同一であるため、説明は省略する。
なお、上記の実施の形態4では、内部バス107と内部メモリ104との間は、アクセス制限回路227を介して常時接続されているものとしたが、これに限定されない。実施の形態1と同様に、通常モードから保護モードへの切り替えを行った切替機構は、アクセス許可/禁止信号をアクセス制限回路227へ出力し、アクセス制限回路227は、切替機構から受け取ったアクセス許可/禁止信号に基づいて、内部バス107と内部メモリ104との間を接続/遮断を行ってもよい。
5. その他の変形例
なお、本発明を上記の実施の形態1〜4に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の実施の形態では、切替プログラムは、各CPUの保護モードへの遷移を常に実行していたが、これに限られるものではない。例えば、アプリケーションからの依頼の優先度に従って、保護モードに遷移しない制御を行なってもよい。
より具体的な例を示すと、ユーザの操作によるデータの入出力中には、保護モードへの遷移を開始しない場合が考えられる。
また、CPU−1で実行中のプログラムとCPU−2で実行中のプログラムの優先度を比較し、比較結果に応じて保護モードへ切り替える/切り替えないの制御を行っても良い。例えば、CPU−1で通常モード用のプログラム(保護を必要としないプログラム)であるが重要なプログラムを実行中である場合に保護モードへ切り替えを行うと、CPU−1が保護モード用の処理に占有されてしまい、CPU−1で実行中の通常モード用の重要なプログラムの処理が中断されてしまう。
ここで、この変形例を適応すると、切替プログラムは、CPU−1で実行中のプログラムの優先度が低い場合は、上記の実施の形態同様に、CPU−1を保護モードに遷移させる制御を開始する。
CPU−1で実行中のプログラムの優先度が高い場合、切替プログラムは、優先度の高いプログラムの実行を優先し、このプログラムの処理が終了した後、CPU−1を保護モードに遷移させる制御を開始する。
(2)上記の実施の形態では、CPU−1が保護モードで保護プログラムを実行中に、割込などの中断が生じた場合に、CPU−1の状態を内部メモリへと退避させ、また、内部メモリから復帰させる操作を、どのようにして行うかを述べていなかったが、例えば、保護プログラムによって実現されるとしてよい。
若しくは、割込の種類に応じて、保護モード割込ベクタに含まれるアドレスの示す領域に格納されているハンドラ(例えば、内部メモリに格納された中断プログラム)により実現されるとしてもよい。
(3)上記の実施の形態1及び2において、切替プログラムが、CPU−2をリセット信号によって停止する前に、図示していない周辺回路からのCPU−2への割り込みの通知先をCPU−1へ変更し、また、CPU−2をリセット状態から解除する前に変更前の状態に周辺回路からの割り込みの通知先を戻すとしてもよい。このようにすることで、CPU−2が停止している間にCPU−2に向けられた割り込みが発生した場合、この割り込みの処理をCPU−1が代わりに行うことができる。なお、上記の割り込みの通知先を変更する処理は、切替プログラムが行っても良いし、切替プログラム以外のプログラム、例えば、保護プログラムが行ってもよい。
(4)上記の実施の形態2において、CPU−1 182およびCPU−2 183からのアクセス許可を示す信号の通知は、命令単位で行われてもよいし、各CPUが保護モードへ遷移した直後に「常にアクセス許可を与える」旨を通知して、保護モードから通常モードへ遷移する際に「以後は常にアクセス禁止である」旨を通知するとしてもよい。
さらに、プログラム単位でアクセス許可/禁止を通知したりしてもよい。すなわち、CPUのモード遷移のタイミングと異なるタイミングで許可/禁止の通知を行ってもよい。
(5)上述の実施の形態では、CPU−1とCPU−2とが異なる命令コードを実行可能なCPUであってもよい。この場合、保護モードにおいて動作するCPUとしては、保護プログラムの実行が可能なCPUが選ばれる。
(6)上記の実施の形態では、切替プログラムはCPU−1で動作していたが、CPU−2で動作してもよい。さらに、上記の実施の形態では、切替プログラムと保護プログラムが同一のCPUで動作していたが、異なるCPUで動作するとしてもよい。
(7)上記の実施の形態では、保護プログラムの起動を、組み込み装置117の起動直後に行っているが、これに限られるものではない。例えば、保護プログラムを実行する直前に起動してもよい。
(8)上記の実施の形態1では、ステップS132において、切替プログラム115の復帰アドレスをCPU−1のプログラムカウンタに設定していたが、これに限られるものではない。例えば、切替機構が復帰アドレスを格納するレジスタを備えており、切替機構がリセット信号を出力する前に、切替プログラムが、そのレジスタに自身の復帰アドレスを書き込むとしてもよい。
(9)上記実施の形態では、2つのCPUを搭載したシステムLSIを用いて説明したが、これに限られるものでない。3つ以上のCPUを搭載したシステムLSIであってもよい。その場合に、保護モードに遷移することができるCPUが複数あってもよい。
保護モードに遷移することができるCPUが複数ある場合、同時に複数のCPUが保護モードで動作できる構成であっても良いし、1個のCPUが保護モードで動作している間、他のCPUは保護モードに遷移できない構成であってもよい。
例えば、保護プログラムの大きさが小さく、1つのCPUで十分に動作させることが可能である場合には、1つのCPUが保護モードで動作すれば十分である。この場合、実施の形態1または2のように他のCPUを停止させれば、消費電力を節減できる。このときに動作を停止させるCPUには、保護モードに遷移可能なCPUも含まれてもよい。また、保護モードで動作するCPUを1つのCPUのみとした場合には、従来の1つのCPU向けに開発されたプログラム資産を、そのまま利用することができる。
逆に、保護プログラムが大きく、負荷の高い処理を実行しなければならない場合は、同時に複数のCPUを保護モードで動作させられることで、保護プログラムによる処理を高速化することができる。
また、実施の形態3または4のように保護プログラムを実行しているCPU以外のCPUが通常モード用の処理を実行できる場合には、通常モード用の処理をより多くのCPUで処理させることで、システム全体の処理性能を向上させることができる。
一方、保護モードで動作するCPUを1つのみとする場合には、従来の1つのCPU向けに開発されたプログラム資産を、そのまま利用することができる。
(10)上記実施の形態1および2では、リセット信号を投入し続けることによってCPU−2を停止していたが、他のCPUが保護モードで動作している間は停止するような特殊なCPUを用いて本発明を実現しても良いことは言うまでもない。例えば、このような特殊なCPUをCPU−2として用いる場合、切替機構からCPU−2に対して、CPU−1の現在のモードが通常モードであるか保護モードであるかの通知を送り、その通知を受けてCPU−2は停止したり動作を再開したりする。
また、CPUを停止させる方法もリセット信号を投入し続けるものに限らない。例えば、CPUに対するクロック信号を停止したり、電源供給を遮断したりするなどでも同様の効果が得られる。さらに、CPUごとに割込ベクタを設定できる場合には、CPU−1が保護モードへ遷移する時に、CPU−2の割込ベクタに含まれるリセット割込を、何の処理も行わない命令を記述したアドレスに書替えることなどによってもCPU−2を停止させることができる。
(11)上記の実施の形態4では、すべてのCPUが、自身の動作モードを通知するとしたが、一部のCPUについては通知しなくても良い。この場合、アクセス制限回路227は、モード情報とアクセス要求とを受け取ると、受け取ったモード情報を基にアクセスの可否の判定を行うが、モード情報を伴わないアクセス要求は、無条件に拒否する。
この構成では、モード情報を保持及び通知する機能を持つCPUと、そのような特殊な機能を持たない通常のCPUとを混在させてシステムを構築することができるので、全てのCPUにモード情報を通知する機能を持たせるよりも安価に本発明を実施できる。
また、CPUは、動作モードが保護モードである場合にのみ、モード情報を通知するとしても良い。この場合、アクセス制限回路227は、モード情報と共に受け取ったアクセス要求のみを受け付ける。
(12)上記の実施の形態では、通常モードで動作するプログラムおよびデータは、外部メモリ101に格納されていたが、これに限られるものではない。暗号化技術等を用いて、保護プログラム及び保護データに通常モードのCPUがアクセスできないような処理が施されていれば、通常モードのCPUが内部メモリを用いて通常モードで動作するプログラムおよびデータに対する処理を行っても構わない。
(13)上記の実施の形態3では、システムLSI200は、CPU−1 202に対応する切替機構205を備えていたが、CPU−2 203に対応する切替機構も別途備えるとしてもよい。この場合、CPUが保護モードに遷移すると、対応する切替機構から保護モードに遷移したCPUのIDを含むアクセス許可通知がアクセス制限回路206に出力される。CPU−1 202とCPU−2 203との両方が保護モードに遷移した場合、アクセス制限回路206は、内部のメモリ208に、CPU−1 202とCPU−2 203との両方のIDを記憶しておき、アクセス要求とともに通知されたCPUのIDが、記憶しているIDのいずれかに一致する場合には内部メモリ104へのアクセスを許可する。このようにすると、実施の形態3においても、保護モード用の処理をマルチCPU化できるので、システム全体の高速化を図ることができる。
また、この場合、各切替機構は、対応するCPUの割込ベクタの管理のみを行えばよい。
(14)また、上記の実施の形態3および4では、切替機構はCPUのプロセッサ内部にあるものとしたが、これに限られるものではなく、例えば、専用線を介して各CPUに接続されているものとしてもよい。
(15)上記の実施の形態1〜4及び変形例において、組み込み装置は、音楽データ等の再生が可能な携帯可能な民生機器であるものとして説明を行ったが、これに限られるものではない。
例えば、上記の実施の形態と同様の保護プログラムの実行方法を持ったDVDプレイヤー等の動画再生装置等であってもよいし、パーソナルコンピュータ、携帯電話、デジタルカメラ、ゲーム機など、様々な機器であることが考えられる。すなわち、本発明の組み込み装置は、保護されるべきプログラム又は保護されるべきデータを取り扱う処理装置であれば、どのようなものであってもよい。
(16)上記の実施の形態では、保護モード割込ベクタに含まれるリセット割込は、内部メモリ上の保護プログラムのアドレスを示していたが、これに限られるものではない。例えば、組み込み装置は、CPUのモードの切り替えが起こるたびに、保護プログラム及び保護データが内部メモリから消去されるようなシステムであって、保護プログラム及び保護データは、図示されていないROMなどに安全に記憶されているとする。
この場合、保護モード割込ベクタに含まれるリセット割込は、保護プログラム及び保護データを前述のROM等から内部メモリへと読み込むプログラムの記憶されているアドレスを指す。
また、上記の実施の形態では、バンク切替部の保持する保護モード割込ベクタに含まれるリセット割込を用いて、保護モードへの遷移時に保護プログラムを実行するよう制御していた。しかし、上記の制御に替えて、例えば、いずれかのCPUが保護モードで動作している最中には、保護モードで動作しているCPUからの外部メモリへのアクセス要求を却下するような機構を設けてもよい。例えば、外部メモリと内部バス間を接続したり、遮断したりするスイッチ機構を設けることで実現できる。このとき、切替機構の信号出力部は、切替レジスタに「1」が書き込まれると、外部メモリと内部バス間を遮断する旨の遮断信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記遮断信号を受け取ると、外部メモリと内部バス間を遮断する。また、信号出力部は、切替レジスタに「0」が書き込まれると、外部メモリと内部バス間を接続する旨の接続信号を前記スイッチ機構へ出力する。前記スイッチ機構は、前記接続信号を受け取ると、外部メモリと内部バス間を接続する。
この場合、CPUがアクセスできる範囲がシステムLSI内部の記録領域に確実に限定される。従って、外部メモリに不正なプログラムが存在したとしても、保護モードのCPUにより実行されることはないので、不正なプログラムにより保護プログラム及び保護データが抜き取られたり改竄されたりする危険性をより低減することができる。
さらに、CPU自体に、切替機構からの信号線を介して保護モードへの切り替えを指示する切り替え信号を受信する構成を持たせ、この切り替え信号を受信すると、システムLSI内部(つまり内部メモリ)に記録されたプログラムを起動または実行するように構成することで、CPUの保護モードを実現しても構わない。例えば、切替機構は、モードの切り替え対象となるCPUに対してのみ当該切り替え信号を出力し、他のCPUに対しては停止するように制御する(保護モードの間は当該他のCPUに対してリセット信号を出力し続ける)。
すなわち、保護モードへ遷移したCPUのみが、保護プログラム及び保護データにアクセスし、それによって保護プログラム及び保護データを改竄や盗聴から保護しつつ、秘匿されるべき処理を実行する方法であれば、どのような方法で保護モードを実現しても構わない。
(17)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に実装しなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
(18)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でハードウェアとして実装してもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。このような実装は、特に退避処理や復帰処理等、ユーザの利便性のために高速化が求められる処理などにおいて有用である。
(19)システムLSIは集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもあるが、上記の各実施のシステムLSIを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(20)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−rayDisc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
(21)また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと改竄から保護されたプログラムを用いた処理を行う保護モードとを有する集積回路であって、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、少なくとも1つの実行手段に前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えることを特徴とする集積回路でもある。
このような構成により、本発明に関する集積回路は、複数の実行手段を用いてマルチプロセス処理を行うことができる。さらに、集積回路が保護モードにある場合に保護されたプログラムを実行させた実行手段のみに保護されたプログラム等を格納している内部メモリへのアクセスを許可するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
(22)変形例(21)の集積回路において、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへの切り替えの際に、前記少なくとも1つの実行手段に前記保護されたプログラムを実行させ、かつ、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段を除いた実行手段を停止させる切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行させていない実行手段を停止するため、保護されたプログラムを実行させていない実行手段による、内部メモリ上のデータ等への不正なアクセスを防止することができる。
(23)前記変形例(22)の集積回路において、切り替え部は、さらに、前記複数の実行手段のうち、前記保護されたプログラムを実行させた実行手段以外の実行手段に対して、前記実行手段をリセット状態にするリセット信号を通知することで、前記実行手段を停止させるとしてもよい。
(24)また、変形例(23)の集積回路において、前記切り替え部は、さらに、前記リセット信号を前記実行手段に通知し続けることで前記実行手段を停止させるとしてもよい。
このような構成により、本発明に関する集積回路は、リセット信号のみを利用して実行手段を停止させることができるので、特殊な構成を持たない汎用的な実行手段を用いて実現することができる。
(25)また、変形例(24)の集積回路において、の前記切り替え部は、さらに、前記集積回路の外部にある外部メモリに格納された切り替えプログラムによって制御されるとしても良い。
(26)また、前記変形例(25)の集積回路において、前記切り替え部は、さらに、前記保護されたプログラムの優先度が、前記保護の不要なプログラムの優先度より低い場合に、前記切り替えプログラムによって制御されるとしてもよい。
このような構成により、保護されたプログラムを実行させていない実行手段が、保護は不要なものの優先度の高い処理を実行中の場合に、その実行手段を、保護されたプログラムの実行への切り替えることを遅らせることができ、保護が不要なプログラム等の性能低下を低減することができる。
(27)また、変形例(26)の集積回路において、前記切り替え機構は、さらに、前記通常モードから前記保護モードへの切り替えの際に、前記複数の実行手段の状態を退避し、前記保護モードから前記通常モードへの切り替えの際に、前記退避した前記複数の実行手段の状態を復帰する、前記切り替えプログラムによって制御されるとしてもよい。
このような構成により、本発明に関する集積回路は、保護モードへの遷移前後であっても、処理を継続して行うことができる。
(28)また、変形例(27)の集積回路において、前記アクセス制限部は、前記切り替え部からの通知によって制御され、前記切り替え部は、前記保護モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを許可するよう通知し、前記切り替え部は、前記通常モードの場合に、前記アクセス制御部に、前記実行手段による内部メモリへのアクセスを不許可するよう通知するとしてもよい。
(29)また、変形例(27)の集積回路において、前記アクセス制限部は、前記実行手段からの通知によって制御され、前記実行手段は、前記保護されたプログラムを実行すると、前記アクセス制御部に、前記内部メモリへのアクセスを許可するよう通知し、前記保護されたプログラムの実行を停止すると、前記アクセス制御部に、前記内部メモリへのアクセスを禁止するよう通知するとしても良い。
(30)また、上記の変形例(28)及び(29)の集積回路において、前記アクセス制御部は、前記通常モードにおいては、前記内部メモリへのアクセスを禁止し、前記内部メモリは、さらに、前記実行手段によって実行されている保護されたプログラムの状態を保持するとしてもよい。
(31)上記の変形例(30)の集積回路において、実行されている前記保護されたプログラムの状態は、前記保護モードから前記通常モードへの切り替えの際に、前記保護されたプログラムを実行させた実行手段から取得され、前記通常モードから前記保護モードへの切り替えの際に、前記保護されたプログラムを実行する実行手段に復帰されるとしても良い。
このような構成により、保護されるべきプログラムの中断した状態を、通常モードではアクセスできない内部メモリに格納するため、安全に保護モードの動作を中断し、安全に再開することができる。
(32)また、上記の変形例(21)の集積回路において、前記複数の実行手段のうち、前記少なくとも1つの実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて前記保護されたプログラムを実行し、前記複数の実行手段のうち、前記少なくとも1つの実行手段を除く実行手段は、前記メモリアクセス制御手段から保護モードへの切り替えの通知を受けて自身の動作を停止し、前記メモリアクセス制御手段は、前記通常モードから前記保護モードへ切り替えの際に、前記保護モードへの切り替えの通知を前記複数の実行手段に送信する切り替え部と、前記実行手段に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
このような構成により、本発明に関する集積回路では、保護されたプログラムを実行していない実行手段は保護モードへの遷移時に停止するため、保護されたプログラムを実行していない実行手段による保護されたプログラム等への不正なアクセスを防止することができる。
(33)上記の変形例(21)の集積回路において、前記複数の実行手段は、それぞれ、前記内部メモリへのアクセス要求とともに自身を識別する識別情報を通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段の識別情報を通知する切り替え部と、前記切り替え部から前記保護されたプログラムを実行させた実行手段の識別情報の通知を受け取り、前記実行手段のうち、前記アクセス要求とともに通知された識別情報が、通知された識別情報と一致する場合に前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしてもよい。
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
(34)上記の変形例(21)の集積回路において、前記実行手段は、自身の前記内部メモリへのアクセス要求とともに自身が前記保護されたプログラムを実行したか否かを通知し、前記アクセス制限手段は、前記通常モードから前記保護モードへの切り替え時に、前記1つ以上の処理手段に保護されたプログラムを実行させる切り替え部と、前記実行手段から、前記アクセス要求とともに前記保護されたプログラムを実行した旨が通知されると前記内部メモリへのアクセスを許可するアクセス制御部とを備えるとしても良い。
このような構成により、本発明に関する集積回路は、保護されたプログラムを実行していない実行手段を停止させなくとも、内部メモリへのアクセスが禁止する。したがって、保護されたプログラムを実行していない実行手段により、保護が不要なプログラムまたはデータの処理を続行することができ、システム全体を高速化することができる。
(35)また、本発明は、外部メモリと、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路とを備えた処理装置であって、前記外部メモリは、前記保護が不要なプログラムを格納し、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段と、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制御手段とを備えるとしても良い。
(36)また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられる方法であって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記方法は、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしても良い。
(37)また、本発明は、保護が不要なプログラムを用いた処理を行う通常モードと保護されたプログラムまたはデータを用いた処理を行う保護モードとを有する集積回路で用いられるプログラムであって、前記集積回路は、前記保護されたプログラムの実行に用いる内部メモリと、プログラムを用いた処理を行う複数の実行手段とを備え、前記プログラムは、前記集積回路の、前記通常モードから前記保護モードへの切り替えの際に、前記実行手段の少なくとも1つに保護されたプログラムを実行させ、前記保護されたプログラムを実行させた実行手段のみに前記内部メモリへのアクセスを許可するメモリアクセス制限ステップを含むとしてもよい。
(38)これらの実施の形態および変形例の組合せであってもよい。
本発明は、複数のCPUを搭載し、保護すべき情報を取り扱うシステムLSIを製造及び販売する産業、前記システムLSIを搭載した機器を製造販売する産業、また、これらの機器を用いて保護されるべき情報を使用したサービスを提供する産業において、経営的、継続的、反復的に利用可能である。
実施の形態1の組み込み装置117のハードウェア構成を示すブロック図である。 切替機構105の詳細を示すブロック図である。 各CPUへ出力されるリセット信号と時間の経過の関係を示す図である。 実施の形態1の組み込み装置117の動作を示すフローチャートである。 保護モードへの遷移動作を示すフローチャートである。図4のステップS105の詳細を示す。 通常モードへの遷移動作を示すフローチャートである。図4のステップS107の詳細を示す。 実施の形態2の組み込み装置197のハードウェア構成を示すブロック図である。 実施の形態3の組み込み装置217のハードウェア構成を示すブロック図である。 実施の形態4の組み込み装置237のハードウェア構成を示すブロック図である。
符号の説明
100 システムLSI
101 外部メモリ
102 CPU−1
103 CPU−2
104 内部メモリ
105 切替機構
106 アクセス制限回路
107 内部バス
110 バンク切替部
117 組み込み装置
121 切替レジスタ
122 信号出力部
123 通常モード割込ベクタ
124 保護モード割込ベクタ
125 CPUレジスタ退避/復帰部

Claims (23)

  1. 保護すべき処理と他の処理とを切り換えて動作する情報処理装置であって、
    保護すべき情報を記憶するためのセキュアメモリと、
    それぞれプログラムに従って動作する複数のプロセッサと、
    前記複数のプロセッサを相互に接続するバスと、
    保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
    を備えることを特徴とする情報処理装置。
  2. 前記制御手段は、
    保護すべき処理の期間において前記セキュアメモリと前記バスとを接続し、他の処理の期間において前記セキュアメモリと前記バスとの接続を切断するスイッチ部と、
    保護すべき処理の期間、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記セキュアメモリへのアクセスを許可し、他のプロセッサを停止させるアクセス制御部と
    を備えることを特徴とする請求項1に記載の情報処理装置。
  3. 前記アクセス制御部は、
    前記他のプロセッサにリセット信号を出力し続けることにより、前記他のプロセッサを停止させる
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記情報処理装置は、さらに、
    前記少なくとも1のプロセッサに対して、前記セキュアメモリとは異なる他のメモリ内のいずれかの位置を示すアドレスからなる第1の割込ベクタに代えて、前記セキュアメモリ内の何れかの位置を指すアドレスからなる第2の割込ベクタを有効にすることにより、前記少なくとも1のプロセッサの参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を
    備えることを特徴とする請求項3に記載の情報処理装置。
  5. 前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのうち、何れかのプロセッサは、前記少なくとも1のプロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える指示を含む切替プログラムを実行し、
    前記情報処理装置は、さらに、
    前記切替プログラムの指示に従って、前記少なくとも1のプロセッサに対して、参照先を前記他のメモリから前記セキュアメモリへと切り替える切替手段を備える
    ことを特徴とする請求項3に記載の情報処理装置。
  6. 前記アクセス制御部は、前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記複数のプロセッサのレジスタ内容を退避し、退避が完了した後、全てのプロセッサへリセット信号を出力し、所定時間経過後、前記少なくとも1のプロセッサに対してリセット信号の出力を解除する
    ことを特徴とする請求項4に記載の情報処理装置。
  7. 前記アクセス制御部は、前記セキュアメモリの利用後、退避していたレジスタ内容それぞれを、対応するプロセッサに復帰させ、前記他のプロセッサへのリセット信号の出力を解除し、
    前記切替手段は、前記他のプロセッサへのリセット信号の出力の解除に先立って、前記保護すべき処理を行っている少なくとも1のプロセッサに対して、前記第2の割込ベクタに代えて、前記第1の割込ベクタを有効にすることにより、参照先を前記セキュアメモリから前記他のメモリへと切り替える
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記セキュアメモリは、保護すべき処理手順を含んだ保護プログラムを記憶しており、
    前記情報処理装置は、さらに、
    前記他の処理から前記保護すべき処理へと切り替える場合において、前記他の処理の期間において実行中のプログラムと前記保護プログラムとの優先度を比較する比較手段と、
    比較の結果、前記保護プログラム優先度が高い場合、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替える切替手段と
    を備えることを特徴とする請求項3に記載の情報処理装置。
  9. 前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサのクロック信号を停止するよう制御することにより、前記他のプロセッサを停止させる
    ことを特徴とする請求項2に記載の情報処理装置。
  10. 前記アクセス制御部は、前記他のプロセッサに対して当該プロセッサへの電源供給を遮断するよう制御することにより、前記他のプロセッサを停止させる
    ことを特徴とする請求項2に記載の情報処理装置。
  11. 前記アクセス制御部は、前記他のプロセッサに対して、何も処理しない命令を記述したアドレスを参照するよう制御することにより、前記他のプロセッサを停止させる
    ことを特徴とする請求項2に記載の情報処理装置。
  12. 前記アクセス制御部は、
    前記他の処理から前記保護すべき処理への切り替えが行われる際に、前記少なくとも1のプロセッサに対して、参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへの切り替えを指示する信号を出力することで、前記少なくとも1のプロセッサがセキュアメモリを参照するように制御する
    ことを特徴とする請求項2に記載の情報処理装置。
  13. 前記制御手段は、さらに、
    前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサによる、前記セキュアメモリとは異なる他のメモリへのアクセスを禁止する
    ことを特徴とする請求項1に記載の情報処理装置。
  14. 前記制御手段は、前記セキュアメモリへのアクセスが許可された少なくとも1のプロセッサと前記他のメモリとの接続を切断することにより、前記禁止を実現する
    ことを特徴とする請求項13に記載の情報処理装置。
  15. 前記制御手段は、前記他のメモリと前記バスとの接続を切断する
    ことを特徴とする請求項14に記載の情報処理装置。
  16. 前記複数のプロセッサは、それぞれ固有の識別子によって識別され、
    前記制御手段は、
    前記保護すべき処理の期間において、前記セキュアメモリへのアクセスが許可された1以上のプロセッサそれぞれに対応する識別子を記憶する識別子記憶部と、
    前記セキュアメモリにアクセスを要求するプロセッサの識別子を取得する取得部と、
    取得した識別子と識別子記憶部の記憶している識別子それぞれとを比較する比較部と、
    比較の結果、取得した識別子が識別子記憶部の記憶している識別子の何れとも一致しない場合に前記要求元のプロセッサによるアクセスを拒否し、一致する場合に前記要求元のプロセッサによるアクセスを許可するアクセス判定部と
    を含むことを特徴とする請求項1に記載の情報処理装置。
  17. 前記少なくとも1以上のプロセッサそれぞれは、
    前記他の処理から前記保護すべき処理への切り替えが行われる際に、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、当該切り替え時に当該プロセッサに対応する識別子を前記制御手段に出力する切替手段を含み、
    前記制御手段は、
    前記1以上のプロセッサに含まれる前記切替手段それぞれから識別子を受け取ると、受け取った各識別子を前記識別子記憶部へ書き込み、
    処理対象が前記保護すべき処理から前記他の処理へと切り替えられる場合に、記憶している各識別子を前記識別子記憶部から消去する
    ことを特徴とする請求項16に記載の情報処理装置。
  18. 前記複数のプロセッサそれぞれは、前記セキュアメモリにアクセスする際に、当該プロセッサが保護すべき処理の実行中であるか否かを示す処理情報をアクセス要求とともに前記制御手段に出力し、
    前記制御手段は、
    アクセス要求とともに保護すべき処理の実行中であることを示す処理情報を受け取った場合にのみ、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを許可し、他の処理情報を受け取った場合には、アクセスの要求元であるプロセッサに対して、前記セキュアメモリへのアクセスを拒否する
    ことを特徴とする請求項1に記載の情報処理装置。
  19. 前記複数のプロセッサそれぞれは、
    処理情報を記憶する情報記憶手段と、
    前記他の処理から前記保護すべき処理へと切り替えが行われる場合、当該プロセッサの参照先を前記セキュアメモリとは異なる他のメモリから前記セキュアメモリへと切り替え、参照先の切り替え時に前記処理記憶手段にて記憶している内容を、保護すべき処理の実行中であることを示す処理情報へと変更する切替手段とを含む
    ことを特徴とする請求項18に記載の情報処理装置。
  20. 前記情報処理装置は、
    前記セキュアメモリとは異なり、他の処理の期間において使用される他のメモリと、
    前記セキュアメモリと、前記複数のプロセッサと、前記バスと、前記スイッチ手段と、前記制御手段とを含む集積回路とから構成されている
    ことを特徴とする請求項1に記載の情報処理装置。
  21. 保護すべき処理と他の処理とを切り換えて動作する集積回路であって、
    保護すべき情報を記憶するためのセキュアメモリと、
    それぞれプログラムに従って動作する複数のプロセッサと、
    前記複数のプロセッサを相互に接続するバスと、
    保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御手段と
    を備えることを特徴とする集積回路。
  22. 保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられる方法であって、
    前記情報処理装置は、
    保護すべき情報を記憶するためのセキュアメモリと、
    それぞれプログラムに従って動作する複数のプロセッサと、
    前記複数のプロセッサを相互に接続するバスとを備え、
    前記方法は、
    保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
    含むことを特徴とする方法。
  23. 保護すべき処理と他の処理とを切り換えて動作する情報処理装置に用いられるコンピュータ読み取り可能な記録媒体に記録されたプログラムであって、
    前記情報処理装置は、
    保護すべき情報を記憶するためのセキュアメモリと、
    それぞれプログラムに従って動作する複数のプロセッサと、
    前記複数のプロセッサを相互に接続するバスとを備え、
    前記プログラムは、
    保護すべき処理の期間において、前記複数のプロセッサのうち少なくとも1のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを許可し、且つ他のプロセッサを停止させ又は他のプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止し、他の処理の期間において、全てのプロセッサに対して前記バスを介する前記セキュアメモリへのアクセスを禁止する制御ステップを
    含むことを特徴とするプログラム。
JP2008551030A 2006-12-22 2007-12-13 情報処理装置、集積回路、方法、およびプログラム Active JP5161791B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置

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