(57)【要約】【課題】実行されている命令コードの格納箇所を、命令実行中のＣＰＵ等以外の機器が監視することが可能な情報処理装置を提供すること。【解決手段】命令実行部は、メモリから命令コードを取得する際のプログラムカウンタを保持しておき、実行する命令コードがバス転送を伴う場合には、物理アドレスの形式で表現された当該命令コードのプログラムカウンタを、バス転送の対象であるアクセス情報と併せて内部バスインターフェース部に転送し、内部バスインターフェース部は、命令実行部から転送された物理アドレス形式のプログラムカウンタを組み込んだプロトコルでバス転送サイクルを生成する。【選択図】図１
2009169511.tif 000002
【特許請求の範囲】
【請求項１】
メモリから命令コードを取得して実行する命令実行部と、内部バスとのインターフェースとなる内部バスインターフェース部と、を有する情報処理装置であって、
前記命令実行部は、
前記メモリから命令コードを取得する際のプログラムカウンタを該命令実行部で保持しておき、
実行する命令コードがバス転送を伴う場合には、物理アドレスの形式で表現された当該命令コードのプログラムカウンタを、バス転送の対象であるアクセス情報と併せて前記内部バスインターフェース部に転送し、
前記内部バスインターフェース部は、前記命令実行部から転送された物理アドレス形式のプログラムカウンタを組み込んだプロトコルでバス転送サイクルを生成する、
ことを特徴とする情報処理装置。
【請求項２】
前記命令実行部は、
前記メモリから取得した命令コードのプログラムカウンタを論理アドレスの形式で保持し、
前記内部バスインターフェース部に転送する際に、前記論理アドレスの形式で表現されたプログラムカウンタを物理アドレスの形式に変換する変換部を有する、
請求項１に記載の情報処理装置。
【請求項３】
前記命令実行部が取得する命令コードを記憶したメモリを更に備え、
該メモリにおいて、命令コードの信頼性に基づいて、命令コードが格納されるアドレスが区分けされていることを特徴とする、請求項１又は２に記載の情報処理装置。
【請求項４】
前記命令実行部以外の機能部であって、バスマスターとして機能するバスマスターデバイスを備え、
該バスマスターデバイスは、
前記命令実行部がバス転送を行なった際に転送されたプログラムカウンタの情報、及び命令元デバイスＩＤを制御用レジスタに保持し、
前記命令実行部からの指示内容に基づき、バスマスターとなってバス転送を実行する際に、前記保持したプログラムカウンタの情報、及び命令元デバイスＩＤを前記アクセス情報に付与してバス転送サイクルを生成することを特徴とする、
請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項５】
前記メモリ及び／又はスレーブ回路を保護するための保護機能部を備え、
該保護機能部は、
前記命令実行部を含む、バスに接続されたバスマスターのそれぞれに固有のデバイスＩＤを設定すると共に、前記メモリのメモリマップが分割されたメモリエリア、及び／又はスレーブ回路毎に前記各デバイスＩＤからのアクセスの許可又は不許可を規定した保護エリア許可を保持しており、
前記命令実行部を含む、バスに接続されたバスマスターが前記メモリエリア及び／又はスレーブ回路にアクセスする際に、前記保護エリア許可テーブルを参照して該アクセスが許可されたものかどうかを判定し、許可されたアクセスである場合にバス転送を実行し、許可されていないアクセスである場合にバス転送の実行を中止してエラー通知を行うことを特徴とする、
請求項１ないし４のいずれかに記載の情報処理装置。
【請求項６】
前記保護エリア許可テーブルは、外部指示により所定のセキュリティチェックを前提に、更新可能に構成される、
請求項５に記載の情報処理装置。
【請求項７】
外部バスとのインターフェースとなる外部バスインターフェース部を備え、
前記命令実行部からの指示内容に基づき、外部バスへのバス転送を実行する際に、プログラムカウンタの情報、及び命令元デバイスＩＤを付与してバス転送サイクルを生成することを特徴とする、
請求項１ないし６のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介して情報の授受を行なう情報処理装置に関する。
【背景技術】
【０００２】
従来、プログラムカウンタの内容をアドレスとしてプログラムメモリからの命令を解読実行するＣＰＵを複数個備えた、マルチＣＰＵのデータ受け渡し装置についての発明が開示されている（例えば、特許文献１参照）。この装置では、メインＣＰＵとサブＣＰＵとの間のデータ授受を、サブＣＰＵに接続されたバスバッファを介して行なうものとしている。また、いずれかのＣＰＵの命令により制御装置が他のＣＰＵに割り込み要求を発し、共有メモリの支配権を移転させるものとしている。
【特許文献１】特開昭６３−２７９３５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＣＰＵが保持するプログラムカウンタは、論理アドレスの形式であるのが通常である。この場合、バス転送を伴うプログラムが実行された際に、当該プログラムを実行するＣＰＵ以外の機器（他のＣＰＵ、システム監視機構等）が、共有メモリのどの領域に格納されたプログラムが実行されているのかを判別できない。従って、システムのセキュリティを適切に確保することができない場合が生じる。
【０００４】
本発明はこのような課題を解決するためのものであり、実行されている命令コードの格納箇所を、命令実行中のＣＰＵ等以外の機器が監視することが可能な情報処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するための本発明の一態様は、
メモリから命令コードを取得して実行する命令実行部と、内部バスとのインターフェースとなる内部バスインターフェース部と、を有する情報処理装置であって、
前記命令実行部は、
前記メモリから命令コードを取得する際のプログラムカウンタを該命令実行部で保持しておき、
実行する命令コードがバス転送を伴う場合には、物理アドレスの形式で表現された当該命令コードのプログラムカウンタを、バス転送の対象であるアクセス情報と併せて前記内部バスインターフェース部に転送し、
前記内部バスインターフェース部は、前記命令実行部から転送された物理アドレス形式のプログラムカウンタを組み込んだプロトコルでバス転送サイクルを生成する、
ことを特徴とする情報処理装置である。
【０００６】
この本発明の一態様によれば、バス転送を伴う命令コードを実行する場合に、物理アドレスの形式で表現された当該命令コードのプログラムカウンタを、バス転送の対象であるアクセス情報と併せて内部バスインターフェース部に転送するため、実行されている命令コードの格納箇所を、命令実行中のＣＰＵ等以外の機器が監視することができる。なお、「論理アドレス」は、「仮想アドレス」と換言できる。
【０００７】
本発明の一態様において、
前記命令実行部は、
前記メモリから取得した命令コードのプログラムカウンタを論理アドレスの形式で保持し、
前記内部バスインターフェース部に転送する際に、前記論理アドレスの形式で表現されたプログラムカウンタを物理アドレスの形式に変換する変換部を有するものとしてもよい。
【０００８】
また、本発明の一態様において、
前記命令実行部が取得する命令コードを記憶したメモリを更に備え、
該メモリにおいて、命令コードの信頼性に基づいて、命令コードが格納されるアドレスが区分けされていることを特徴とするものとしてもよい。
【０００９】
また、本発明の一態様において、
前記命令実行部以外の機能部であって、バスマスターとして機能するバスマスターデバイスを備え、
該バスマスターデバイスは、
前記命令実行部がバス転送を行なった際に転送されたプログラムカウンタの情報、及び命令元デバイスＩＤを制御用レジスタに保持し、
前記命令実行部からの指示内容に基づき、バスマスターとなってバス転送を実行する際に、前記保持したプログラムカウンタの情報、及び命令元デバイスＩＤを前記アクセス情報に付与してバス転送サイクルを生成することを特徴とするものとしてもよい。
【００１０】
また、本発明の一態様において、
前記メモリ及び／又はスレーブ回路を保護するための保護機能部を備え、
該保護機能部は、
前記命令実行部を含む、バスに接続されたバスマスターのそれぞれに固有のデバイスＩＤを設定すると共に、前記メモリのメモリマップが分割されたメモリエリア、及び／又はスレーブ回路毎に前記各デバイスＩＤからのアクセスの許可又は不許可を規定した保護エリア許可を保持しており、
前記命令実行部を含む、バスに接続されたバスマスターが前記メモリエリア及び／又はスレーブ回路にアクセスする際に、前記保護エリア許可テーブルを参照して該アクセスが許可されたものかどうかを判定し、許可されたアクセスである場合にバス転送を実行し、許可されていないアクセスである場合にバス転送の実行を中止してエラー通知を行うことを特徴とするものとしてもよい。
【００１１】
この場合、
前記保護エリア許可テーブルは、外部指示により所定のセキュリティチェックを前提に、更新可能に構成されるものとしてもよい。
【００１２】
また、本発明の一態様において、
外部バスとのインターフェースとなる外部バスインターフェース部を備え、
前記命令実行部からの指示内容に基づき、外部バスへのバス転送を実行する際に、プログラムカウンタの情報、及び命令元デバイスＩＤを付与してバス転送サイクルを生成することを特徴とするものとしてもよい。
【発明の効果】
【００１３】
本発明によれば、実行されている命令コードの格納箇所を、命令実行中のＣＰＵ等以外の機器が監視することが実行されている命令コードの格納箇所を、命令実行中のＣＰＵ等以外の機器が監視することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１５】
［全体構成］
以下、本発明の一実施例に係る情報処理装置１について説明する。図１は、情報処理装置１の全体構成を概念的に示す図である。情報処理装置１は、主要な構成として、マイコン１０と、メインメモリ７０と、外部バス８０と、を備える。マイコン１０は、マルチコア２０と、ＤＭＡ（Direct  Memory  Access）コントローラ３０と、メモリコントローラ４０と、外部バスインターフェース部５０と、が内部バス６０により相互に通信可能に接続された構成となっている。メインメモリ７０は、例えばＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）を含む概念である。なお、情報処理装置１は、図示しない種々のスレーブ回路等を含んでよい。
【００１６】
マルチコア２０は、それぞれが内部バス６０に接続された複数のＣＰＵ（Central  Processing  Unit）＃０、＃１、＃２、＃３…（個数の如何を問わない）を有する。マルチコア２０は、上記各ＣＰＵのうちいずれかがマスターＣＰＵとして機能することにより（或いは命令コード実行中のＣＰＵが自ら機能することにより）、プログラムカウンタ付与機能（図中、ＰＣ付与機能と表記した）を有する。
【００１７】
［ＣＰＵについて］
図２は、上記各ＣＰＵの内部構成の一例を示す図である。図示する如く、各ＣＰＵは、ＡＬＵ（論理演算ユニット）や制御装置、レジスタ、クロックジェネレータ等から構成されるＣＰＵコア２００と、例えば内蔵するフラッシュメモリに記憶された変換テーブルを参照することにより論理アドレスを物理アドレスに変換可能なＭＭＵ（Memory  Management  Unit）２０２と、内部バスインターフェース部２０４と、を有する。なお、ＣＰＵコア２００及びＭＭＵ２０２が、特許請求の範囲における「命令実行部」に相当する。
【００１８】
図３は、各ＣＰＵが命令コードを実行する際に、当該命令コードの実行と併せて行なう処理の流れを示すフローチャートである。本フローは、例えば命令コードの１単位を実行する度に行なわれる。
【００１９】
なお、本フローを開始するのに先立って、ＣＰＵコア２００は、メインメモリ７０から、命令コードを取得する際に該当コードの格納先を示しているプログラムカウンタ（論理アドレス）を保持しておく。
【００２０】
ＣＰＵコア２００は、実行する１単位の命令コードがバス転送を伴う命令か否かを判定する（Ｓ１００）。ここで、「バス転送を伴う命令」とは、例えば、mov命令、store命令、load命令である。バス転送を伴う命令でない場合は、何も処理を行なわずに本フローの１ルーチンを終了し、次の１単位の命令コードを対象として本フローを開始する。
【００２１】
バス転送を伴う命令である場合は、プログラムカウンタ及びアクセス先論理アドレスをＭＭＵ２０２に、デバイスＩＤを内部バスインターフェース部２０４に、それぞれ出力する（Ｓ１０２）。
【００２２】
ここで、デバイスＩＤは、内部バス６０に接続されたバスマスター（本装置の場合、各ＣＰＵ、及びＤＭＡコントローラ３０をいう；以下同じ）のそれぞれに対して予め割り当てられている。デバイスＩＤの割り当ては、例えばシステム構築時に行なわれる。
【００２３】
ＭＭＵ２０２は、入力されたプログラムカウンタ及びアクセス先論理アドレスを、論理アドレスから物理アドレスに変換する（Ｓ１０４）。
【００２４】
内部バスインターフェース部２０４は、アクセス先アドレス及び命令元アドレスを多重化して内部バス用タイミングを生成し（Ｓ１０６）、これを通常サイクルの情報転送と併せて内部バス６０に出力する（Ｓ１０８）。すなわち、ＣＰＵコア２００及びＭＭＵ２０２から転送された物理アドレス形式のプログラムカウンタを組み込んだプロトコルで、バス転送サイクルを生成する。
【００２５】
図４は、内部バスインターフェース部２０４が生成するバス転送サイクルを模式的に示す図である。図示する如く、内部バス６０はＩＤバス、アドレスバス、データバスを転送する子バスが集合した多重通信バスとして構成される。
【００２６】
係る構成及び処理によって、上記命令コードを実行したＣＰＵ以外のＣＰＵや、ＤＭＡコントローラ３０、メモリコントローラ４０その他の機器は、内部バス６０に流れる情報を参照して、バス転送を発生させた命令コードがメインメモリ７０上のどのアドレスに配置されたプログラムコードのものかを容易に識別することができる。これにより、バス転送を発生させたブログラムの性質を識別することができ、例えばメインメモリ７０に対して許可されていないアクセスがなされているか否かを監視することも可能となる。従って、システムのセキュリティを適切に確保することができる。
【００２７】
［ＤＭＡコントローラ等のバスマスターデバイスについて］
ＤＭＡコントローラ３０は、特許請求の範囲における「バスマスターデバイス」に相当し、ＣＰＵ以外の各機器とメインメモリ７０等のメモリとの間でデータ転送を行なう際に、通信の制御を行なう専用装置である。図５は、ＤＭＡコントローラ３０の内部構成の一例を示す図である。図示する如く、ＤＭＡコントローラ３０は、制御装置として機能するシーケンサ３１と、入力側セレクタ３２と、出力側セレクタ３３と、データバッファ３４と、アドレスデコーダ３５と、制御レジスタ３６と、を備える。なお、図５において、両セレクタをＳＥＬと表記した。
【００２８】
図６は、ＤＭＡコントローラ３０により実行される処理の流れを示すフローチャートである。
【００２９】
まず、ＣＰＵコア２００からＤＭＡに必要なパラメータ（転送元アドレス、転送先アドレス、転送サイズ、開始トリガーを含む）が制御レジスタ３６に書き込まれ、シーケンサ３１が、当該ＣＰＵコア２００の命令元論理アドレス（物理アドレス形式のプログラムカウンタ）及びデバイスＩＤを制御レジスタ３６に保持する（Ｓ１２０）。より具体的には、制御レジスタ３６（図５中、下半分の領域）に書き込みが行なわれる際に、内部バス６０に出力されているプログラムカウンタとデバイスＩＤを、制御レジスタ３６にアクセスした命令元アドレス及び命令元ＩＤを保持する領域（図５中、上半分の領域）に保持する。
【００３０】
そして、ＤＭＡ起動指令がなされたか否かを判定する（Ｓ１２２）。ＤＭＡ起動指令がなされると、シーケンサ３１が内部バスタイミングを生成する（Ｓ１２４）。この際に、シーケンサ３１は、アクセス先アドレス、データ、転送モードと共に、Ｓ１２０において保持した命令元アドレス及び命令元ＩＤを付与したバスサイクルを内部バス６０に出力する。より具体的には、制御レジスタ３６内で保有するアクセスアドレスと、データバッファ３４内に保持したＤＭＡ転送用データと、バスプロトコルを制御するシーケンサ３１が生成する制御線を合わせたバス転送を実行する際に、Ｓ１２０において保持した命令元アドレス及び命令元ＩＤを付与したバスサイクルを内部バス６０に出力する。
【００３１】
続いて、ＤＭＡが完了したか否かを判定し（Ｓ１２６）、ＤＭＡが完了したときに１サイクルを終了する。
【００３２】
係る構成及び処理によって、ＤＭＡコントローラ３０のバス転送プロトコルに付与したデバイスＩＤと物理アドレス形式のブログラムカウンタにより、メモリ上のどのアドレスに配置されたプログラムからの指示でバスマスターデバイスがバス転送を実行しているかを識別することができる。
【００３３】
また、ＣＰＵのプログラムの性質（機能、セキュリティ要求、デバイス制御権など）により、プログラムコードを配置するメモリ上のアドレスエリアを区分けすることで、バスに接続されたスレーブ回路や監視回路は、バスマスターデバイスにバス転送を実行させたブログラムの性質を識別することが可能となる。
【００３４】
［メモリコントローラについて］
メモリコントローラ４０は、特許請求の範囲における「保護機能部」に相当する。図７は、メモリコントローラ４０の内部構成の一例を示す図である。図示する如く、ＤＭＡコントローラ４０は、制御装置として機能するシーケンサ４１と、入力側セレクタ４２と、メインメモリ７０とのインターフェースとなるメモリインターフェース４３と、データバッファ４４と、アドレスデコーダ４５と、制御レジスタ４６と、を備える。また、フラッシュメモリ上等において、保護エリア許可テーブル４７を保持している。なお、図７において、入力側セレクタ４２をＳＥＬと表記した。
【００３５】
保護エリア許可テーブル４７は、メインメモリ７０のメモリマップをいくつかのエリアに区分けし、区分けしたエリア毎に、どのデバイスＩＤからのアクセスを許可するか、どのエリアに配置したブログラムからのアクセスを許可するのかを規定している。保護エリア許可テーブル４７は、システム構築時に固定的に決定した内容でハードウエア回路として実現されてもよいし、フラッシュメモリ上等に配置されたテーブルデータを読み込む等の手法により、システム稼働後にユーザーによって指定・変更されてもよいが、後者の場合、指定・変更のためのパスワード等を設定してセキュリティ性を確保することが望ましい。なお、後述する図９及び図１０において、保護エリア許可テーブル４７のデータ例を示している。
【００３６】
図８は、メモリコントローラ４０により実行される処理の流れを示すフローチャートである。
【００３７】
まず、メモリコントローラ４０は、バスマスターから送信されたデバイスＩＤ及び命令元アドレスを制御レジスタ４６に保持する（Ｓ１４０）。
【００３８】
そして、入力側セレクタ４２からアドレスデコーダ４５に入力されたアクセス先のアドレス（制御レジスタアドレス）によって、アクセス先が保護領域か否かを判定する（Ｓ１４２）。アクセス先が保護領域でない場合は、通常アクセスを行なう（Ｓ１４８）。
【００３９】
アクセス先が保護領域である場合は、バスマスターのデバイスＩＤ、命令元アドレスを用いて保護エリア許可テーブル４７を検索し（Ｓ１４４）、デバイスＩＤ及び命令元アドレスが許可されたものか否かを判定する（Ｓ１４６）。
【００４０】
デバイスＩＤ及び命令元アドレスが許可されたものである場合は、通常アクセスを行なう（Ｓ１４８）。一方、デバイスＩＤ及び命令元アドレスが許可されたものでない場合は、アクセスを拒否して、アクセスを行なったバスマスターにエラー通知を行なう（Ｓ１５０）。
【００４１】
図９は、ＣＰＵ＃２からのアクセスが不許可とされる様子を概念的に示す図である。図示する如く、ＣＰＵ＃２はProgramＣを実行しようとしているが、保護エリア許可テーブル４７では、ＣＰＵ＃２によって起動されたProgramＣに対して、（００００  １０００）番地から（００００  Ｆ０００）番地までのアクセスを禁止している。従って、この場合、メモリコントローラ４０がＣＰＵ＃２に対してエラー通知を行なう。図１０に、保護エリア許可テーブル４７の詳細例について示す。
【００４２】
係る構成及び処理によって、セキュリティ要求に違反した不正アクセスによるデータ破壊やデータ漏洩を防止することができる。また、ブログラムの不具合によるデータ破壊を防止することができる。
【００４３】
また、デバイスＩＤによってＣＰＵを識別することにより、例えば特定のＣＰＵで実行されるプログラムにのみアクセスの権限を与えることができる。
【００４４】
また、ＤＭＡコントローラ３０等のバスマスターデバイスのデバイスＩＤを識別することにより、アクセス権のないデバイスからのアクセスを禁止することができる。
【００４５】
また、メモリ上のどのアドレスに配置されたプログラムコードにより実行されたバス転送かをプログラムカウンタにより識別することで、特定のプログラムにアクセス権を与えることができる。同様に、特定のプログラムで制御されたバスマスターデバイスにもアクセス権を与えることができる。
【００４６】
［外部バスインターフェース部について］
外部バスインターフェース部５０は、マイコン１０と外部機器とのインターフェースとなる装置であり、外部バス８０に接続される。外部バスインターフェース部５０は、アクセス元のデバイスＩＤや物理アドレスで表現されたプログラムカウンタを伝達する処理を、外部バス８０まで拡張するためのものである。
【００４７】
図１１は、外部バスインターフェース部５０の内部構成の一例を示す図である。図示する如く、外部バスインターフェース部５０は、制御装置として機能するシーケンサ５１と、入力側セレクタ５２と、出力側セレクタ５３と、データバッファ５４、５５と、暗号化を行なうエンコーダ５６と、復号化を行なうデコーダ５７と、暗号キーテーブル５８と、を備える。なお、図１１において、両セレクタをＳＥＬと表記した。
【００４８】
外部バスインターフェース部５０は、マイコン１０の外部バス８０にデバイスＩＤや物理アドレスで表現されたプログラムカウンタをそのまま出力するスルーモードと、デバイスＩＤや物理アドレスで表現されプログラムカウンタを出力する際に、暗号化してから出力する暗号化モードとを切替えることが可能である。スルーモードと暗号化モードはシステム起動時に静的に指定して選択することができる。
【００４９】
外部バス８０に接続された外部機器では、暗号化モードで情報が出力された場合には、暗号化されたデバイスＩＤやプログラムカウンタを復号化してから使用する。スルーモードで情報が出力された場合には、複合化を行なわずそのままの情報として使用する。
【００５０】
図１２は、マイコン１０内部から外部機器に情報を出力する際に外部バスインターフェース部５０により実行される処理の流れを示すフローチャートである。
【００５１】
まず、現在選択されている制御モードが暗号化モードであるか否かを判定する（Ｓ１６０）。
【００５２】
暗号化モードでない場合は、外部バス８０との調停後、デバイスＩＤや物理アドレスで表現されたプログラムカウンタを含む情報を出力する（Ｓ１６４）。この際に使用する生成サイクルは、一般的な外部バスプロトコルに準拠する。
【００５３】
暗号化モードである場合は、暗号キーテーブル５８を用いてデバイスＩＤや物理アドレスで表現されたプログラムカウンタを暗号化し（Ｓ１６２）、外部バス８０との調停後、デバイスＩＤや物理アドレスで表現されたプログラムカウンタを含む情報を出力する（Ｓ１６４）。
【００５４】
図１３は、外部機器からマイコン１０内部に情報が入力された際の処理に外部バスインターフェース部５０により実行される流れを示すフローチャートである。
【００５５】
まず、現在選択されている制御モードが暗号化モードであるか否かを判定する（Ｓ１８０）。
【００５６】
暗号化モードでない場合は、内部バス６０との調停後、デバイスＩＤや物理アドレスで表現されたプログラムカウンタを含む情報を出力する（Ｓ１８４）。この際に使用する生成サイクルは、一般的な内部バスプロトコルに準拠する。
【００５７】
暗号化モードである場合は、暗号キーテーブル５８を用いてデバイスＩＤや物理アドレスで表現されたプログラムカウンタを復号化し（Ｓ１８２）、内部バス６０との調停後、デバイスＩＤや物理アドレスで表現されたプログラムカウンタを含む情報を出力する（Ｓ１８４）。
【００５８】
図１４は、内部バス６０から外部バス８０に情報を転送する際に暗号化を行なう様子を模式的に示す図である。また、図１５は、外部バス８０から内部バス６０に情報を転送する際に暗号化を行なう様子を模式的に示す図である。
【００５９】
係る構成及び処理によって、外部バス８０に情報が転送された際に付与されたプログラムカウンタの情報を計測器などでモニタリングすることで、マイコンシステムの耐タンパ性が低下する問題を解決することができる。すなわち、内部解析（リバース・エンジニアリング）や改変に対する防護力を高めることができる。
【００６０】
また、製品システムを暗号化モードで動作させることにより、悪意を持った者がバス転送に含まれるデバイスＩＤやプログラムカウンタを元にマイコンシステムの動作メカニズムを解析して流用や製品の改造をすることを防止できる。
【００６１】
また、製品開発時にはスルーモードで動作させることにより、プログラムの動作状況の把握や不具合解析を効率的に行うための開発ツールに使用することができる。
【００６２】
また、外部バスに計測器を接続することで、バス転送がどのプログラムを実行した結果なのかという情報を取得することができる。
【００６３】
［全体処理］
図１６は、情報処理装置１全体の処理の流れを示すフローチャートである。図中の符号は、前述した情報処理装置１の各構成要素がそれぞれ実行する特徴的な処理を示す。各ステップの処理については、既に各構成要素のフローチャートの処理として説明したものの概略であるため、説明を省略する。
【００６４】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【産業上の利用可能性】
【００６５】
本発明は、自動車製造業や自動車部品製造業等に利用可能である。
【図面の簡単な説明】
【００６６】
【図１】情報処理装置１の全体構成を概念的に示す図である。
【図２】各ＣＰＵの内部構成の一例を示す図である。
【図３】各ＣＰＵが命令コードを実行する際に、当該命令コードの実行と併せて行なう処理の流れを示すフローチャートである。
【図４】内部バスインターフェース部２０４が生成するバス転送サイクルを模式的に示す図である。
【図５】ＤＭＡコントローラ３０の内部構成の一例を示す図である。
【図６】ＤＭＡコントローラ３０により実行される処理の流れを示すフローチャートである。
【図７】メモリコントローラ４０の内部構成の一例を示す図である。
【図８】メモリコントローラ４０により実行される処理の流れを示すフローチャートである。
【図９】ＣＰＵ＃２からのアクセスが不許可とされる様子を概念的に示す図である。
【図１０】保護エリア許可テーブル４７のデータ例を示す図である。
【図１１】外部バスインターフェース部５０の内部構成の一例を示す図である。
【図１２】マイコン１０内部から外部機器に情報を出力する際に外部バスインターフェース部５０により実行される処理の流れを示すフローチャートである。
【図１３】外部機器からマイコン１０内部に情報が入力された際に外部バスインターフェース部５０により実行される処理の流れを示すフローチャートである。
【図１４】内部バス６０から外部バス８０に情報を転送する際に暗号化を行なう様子を模式的に示す図である。
【図１５】外部バス８０から内部バス６０に情報を転送する際に暗号化を行なう様子を模式的に示す図である。
【図１６】情報処理装置１全体の処理の流れを示すフローチャートである。
【符号の説明】
【００６７】
１  情報処理装置
１０  マイコン
２０  マルチコア
３０  ＤＭＡ
４０  メモリコントローラ
４７  保護エリア許可テーブル
５０  外部バスインターフェース部
６０  内部バス
７０  メインメモリ
８０  外部バス
２００  ＣＰＵコア
２０２  ＭＭＵ
２０４  内部バスインターフェース部
【図１】
2009169511.tif 000003
【図２】
2009169511.tif 000004
【図３】
2009169511.tif 000005
【図４】
2009169511.tif 000006
【図５】
2009169511.tif 000007
【図６】
2009169511.tif 000008
【図７】
2009169511.tif 000009
【図８】
2009169511.tif 000010
【図９】
2009169511.tif 000011
【図１０】
2009169511.tif 000012
【図１１】
2009169511.tif 000013
【図１２】
2009169511.tif 000014
【図１３】
2009169511.tif 000015
【図１４】
2009169511.tif 000016
【図１５】
2009169511.tif 000017
【図１６】
2009169511.tif 000018