(57)【要約】【課題】セキュリティ性の高いデータ処理装置を提供することである。【解決手段】本発明にかかるデータ処理装置１０は、第１プロセッサ１１と、セキュリティ機能を備えた第２プロセッサ１２と、第１プロセッサ１１がアクセス可能な第１メモリ領域と第２プロセッサ１２がアクセス可能な第２メモリ領域とを備えた共有メモリ１３と、境界アドレスを格納可能な制御情報格納部１５と、境界アドレスに応じて第１プロセッサ１１および第２プロセッサ１２からの共有メモリへのアクセスを制御するアクセス制御回路１４と、を備える。そして、制御情報格納部１５に格納されている境界アドレスを書き換える際、第２プロセッサが認証処理を実施する。【選択図】図１
2013156760.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、
セキュリティ機能を備えた第２プロセッサと、
前記第１プロセッサがアクセス可能な第１メモリ領域と、前記第２プロセッサがアクセス可能な第２メモリ領域とを備えた共有メモリと、
前記共有メモリの前記第１メモリ領域および前記第２メモリ領域の境界に対応するアドレスである境界アドレスを格納可能な制御情報格納部と、
前記境界アドレスに応じて前記第１プロセッサおよび前記第２プロセッサからの前記共有メモリへのアクセスを制御するアクセス制御回路と、を備え、
前記制御情報格納部に格納されている前記境界アドレスを書き換える際、前記第２プロセッサが認証処理を実施する、
データ処理装置。
【請求項２】
前記制御情報格納部に格納されている前記境界アドレスを書き換える際、前記第１プロセッサは書き換え用の境界アドレスとアクセスコードを取得し、
前記第２プロセッサは、前記第１プロセッサが取得した前記アクセスコードの認証処理を実施し、
前記第２プロセッサが前記アクセスコードが正しいと判断した場合、前記第１プロセッサは前記書き換え用の境界アドレスを用いて前記制御情報格納部に格納されている前記境界アドレスを書き換える、
請求項１に記載のデータ処理装置。
【請求項３】
前記制御情報格納部に格納されている前記境界アドレスを書き換える際、前記第２プロセッサは、書き換え用の境界アドレスとアクセスコードを取得し、当該取得したアクセスコードの認証処理を実施し、当該アクセスコードが正しいと判断した場合、前記書き換え用の境界アドレスを用いて前記制御情報格納部に格納されている前記境界アドレスを書き換える、
請求項１に記載のデータ処理装置。
【請求項４】
前記アクセス制御回路は、前記共有メモリのアクセス先のアドレスと前記境界アドレスとの比較結果に応じて、前記第１プロセッサおよび前記第２プロセッサからの前記共有メモリへのアクセスを制御する、請求項１乃至３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記境界アドレスよりも小さいアドレスの領域を前記第１メモリ領域と、前記境界アドレスよりも大きいアドレスの領域を前記第２メモリ領域とした場合、前記アクセス制御回路は、前記共有メモリへのアクセス元が前記第１プロセッサであり、前記アクセス先のアドレスが前記境界アドレスよりも小さい場合、前記第１プロセッサが前記第１メモリ領域にアクセスすることを許可する、請求項１乃至４のいずれか一項に記載のデータ処理装置。
【請求項６】
前記アクセス制御回路は、前記共有メモリへのアクセス元が前記第２プロセッサであり、前記アクセス先のアドレスが前記境界アドレスよりも大きい場合、前記第２プロセッサが前記第２メモリ領域にアクセスすることを許可する、請求項５に記載のデータ処理装置。
【請求項７】
前記境界アドレスよりも大きいアドレスの領域を前記第１メモリ領域と、前記境界アドレスよりも小さいアドレスの領域を前記第２メモリ領域とした場合、前記アクセス制御回路は、前記共有メモリへのアクセス元が前記第１プロセッサであり、前記アクセス先のアドレスが前記境界アドレスよりも大きい場合、前記第１プロセッサが前記第１メモリ領域にアクセスすることを許可する、請求項１乃至４のいずれか一項に記載のデータ処理装置。
【請求項８】
前記アクセス制御回路は、前記共有メモリへのアクセス元が前記第２プロセッサであり、前記アクセス先のアドレスが前記境界アドレスよりも小さい場合、前記第２プロセッサが前記第２メモリ領域にアクセスすることを許可する、請求項７に記載のデータ処理装置。
【請求項９】
前記制御情報格納部には更に、前記第２プロセッサを起動するためのプログラムが格納されている先頭アドレスを示すリセットベクタが格納されており、
前記制御情報格納部に格納されている前記リセットベクタを書き換える際、前記第２プロセッサが認証処理を実施する、
請求項１乃至８のいずれか一項に記載のデータ処理装置。
【請求項１０】
前記第１メモリ領域に前記第２プロセッサがアクセス可能に構成されている、請求項１乃至９のいずれか一項に記載のデータ処理装置。
【請求項１１】
前記データ処理装置はＮ個のプロセッサを備え、
前記共有メモリは、前記Ｎ個のプロセッサに対応して設けられ、当該Ｎ個のプロセッサが各々アクセス可能なＮ個のメモリ領域を備え、
前記制御情報格納部には、前記Ｎ個のメモリ領域の境界に対応するアドレスであるＮ−１個の境界アドレス情報が格納されており、
前記アクセス制御回路は、前記Ｎ個のプロセッサのそれぞれが、前記Ｎ個のプロセッサのそれぞれに対応したメモリ領域にのみアクセスするように制御する、
請求項１に記載のデータ処理装置。
【請求項１２】
前記制御情報格納部および前記共有メモリが同一のメモリで構成されている、請求項１乃至１１のいずれか一項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関し、特に複数のプロセッサでメモリを共有可能なデータ処理装置に関する。
【背景技術】
【０００２】
単一の共有メモリを複数のプロセッサで共有することができるデータ処理装置が知られている。
【０００３】
特許文献１には、初期化処理におけるプログラムの共通化とプロセッサ間の独立性を両立させることができるマルチプロセッサ型コントローラに関する技術が開示されている。特許文献１に開示されているマルチプロセッサ型コントローラは、複数のプロセッサと、共有メモリと、複数の境界レジスタと、比較器と、メモリ制御部と、複数のマスクレジスタと、割込み制御部と、を備えている。
【０００４】
複数のプロセッサは、電源投入直後に特定のメモリアドレスの初期化プログラムを実行する機能を有する。共有メモリは、複数のプロセッサからアクセスされる。複数の境界レジスタは、共有メモリを複数のプロセッサ毎の領域に分割するアドレスを設定する。比較器は、複数のプロセッサからの共有メモリへのアクセスアドレスと複数の境界レジスタの内容とを比較する。メモリ制御部は、比較器の結果によって共有メモリの領域に対して複数のプロセッサからのアクセスを制限する。複数のマスクレジスタは、割込み要因毎にマスク情報を設定する。割込み制御部は、マスクレジスタからのマスク情報に従い、プロセッサへの割込みをマスクする。
【０００５】
特許文献１に開示されているマルチプロセッサ型コントローラでは、プロセッサ間の共有メモリ領域の独立性は、主に通常時の処理において必要であり、立上げ処理ではプロセッサ間で共通処理を実行するため必要性が少ない。そこで、特許文献１に開示されているマルチプロセッサ型コントローラでは、電源が投入された後プロセッサが最初に読み出しを行う番地に初期化プログラムを配置し、この初期化プログラムをプロセッサ間で共通に実行している。このとき、共有メモリへのアクセスは境界レジスタに境界アドレスが設定され、境界アドレスが有効になるまでは、全てのプロセッサが共有メモリに制限なくアクセスすることができる。
【０００６】
特許文献２には、プロセッサ間通信のスループットを向上させ、送受信するメッセージの優先順位に基づいたプロセッサ間通信を実行することができるマルチプロセッサシステムに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−３３８８３３号公報
【特許文献２】特開２００６−３０９５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
共有メモリを複数のプロセッサで共有しているデータ処理装置では、各プロセッサで実行するためのプログラムが共有メモリに格納されている。そして、プロセッサの中にセキュリティ性の高いプロセッサ（セキュアプロセッサ）が含まれている場合、セキュリティ性の高いプログラムが共有メモリに格納される。
【０００９】
特許文献１に開示されているマルチプロセッサ型コントローラでは、境界レジスタに境界アドレスを設定することで、各プロセッサがアクセス可能な共有メモリの領域を設定している。しかしながら、境界レジスタに設定される境界アドレスを容易に書き換えることができると、セキュアプロセッサ以外のプロセッサがセキュリティ性の高いプログラムにアクセスすることが可能となり、セキュアプロセッサを含むデータ処理装置のセキュリティ性が失われるという問題がある。特に、この問題はセキュアプロセッサ以外のプロセッサが脆弱性を有する場合に顕著となる。
【課題を解決するための手段】
【００１０】
本発明の一態様にかかるデータ処理装置は、第１プロセッサと、セキュリティ機能を備えた第２プロセッサと、前記第１プロセッサがアクセス可能な第１メモリ領域と、前記第２プロセッサがアクセス可能な第２メモリ領域とを備えた共有メモリと、前記共有メモリの前記第１メモリ領域および前記第２メモリ領域の境界に対応するアドレスである境界アドレスを格納可能な制御情報格納部と、前記境界アドレスに応じて前記第１プロセッサおよび前記第２プロセッサからの前記共有メモリへのアクセスを制御するアクセス制御回路と、を備え、前記制御情報格納部に格納されている前記境界アドレスを書き換える際、前記第２プロセッサが認証処理を実施する。
【００１１】
本発明の一態様にかかるデータ処理装置では、制御情報格納部に格納されている境界アドレスを書き換える際、セキュアプロセッサである第２プロセッサが認証処理を実施している。よって、制御情報格納部に格納されている境界アドレスが不正に書き換えられることを抑制することができるため、セキュリティ性の高いデータ処理装置を提供することができる。
【発明の効果】
【００１２】
本発明により、セキュリティ性の高いデータ処理装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかるデータ処理装置を示すブロック図である。
【図２】実施の形態１にかかるデータ処理装置が備える共有メモリのメモリ領域を説明するための図である。
【図３】実施の形態１にかかるデータ処理装置が備えるアクセス制御回路の動作を説明するためのフローチャートである。
【図４】実施の形態１にかかるデータ処理装置における境界アドレス書き換え処理を説明するためのフローチャートである。
【図５】実施の形態１にかかるデータ処理装置における境界アドレス書き換え処理を説明するためのフローチャートである。
【図６】実施の形態２にかかるデータ処理装置を示すブロック図である。
【図７】実施の形態２にかかるデータ処理装置が備える共有メモリのメモリ領域を説明するための図である。
【図８】実施の形態３にかかるデータ処理装置が備えるアクセス制御回路の動作を説明するためのフローチャートである。
【図９】実施の形態３にかかるデータ処理装置が備える共有メモリのメモリ領域を説明するための図である。
【図１０】実施の形態４にかかるデータ処理装置を示すブロック図である。
【図１１】実施の形態４にかかるデータ処理装置が備える共有メモリのメモリ領域を説明するための図である。
【図１２】実施の形態５にかかるデータ処理装置を示すブロック図である。
【図１３】実施の形態５にかかるデータ処理装置が備える共有メモリのメモリ領域を説明するための図である。
【図１４】本発明にかかるデータ処理装置の使用例を説明するための図である。
【図１５】本発明にかかるデータ処理装置の使用例を説明するための図である。
【図１６】本発明にかかるデータ処理装置の使用例を説明するための図である。
【発明を実施するための形態】
【００１４】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明の実施の形態１にかかるデータ処理装置を説明するためのブロック図である。図１に示すように、本実施の形態にかかるデータ処理装置１０は、第１プロセッサ１１、第２プロセッサ１２、共有メモリ１３、アクセス制御回路１４、制御情報格納部１５、およびバス１６を備える。第１プロセッサ１１、第２プロセッサ１２、アクセス制御回路１４、および制御情報格納部１５は、バス１６を介して互いに接続されている。また、共有メモリ１３はアクセス制御回路１４を介してバス１６に接続されている。
【００１５】
第１プロセッサ１１は、共有メモリ１３の第１メモリ領域にアクセスし、第１メモリ領域にデータを格納したり、第１メモリ領域に格納されているデータ（プログラム）を読み出して当該プログラムを実行したりすることができる。第２プロセッサ１２は、共有メモリ１３の第２メモリ領域にアクセスし、第２メモリ領域にデータを格納したり、第２メモリ領域に格納されているデータ（プログラム）を読み出して当該プログラムを実行したりすることができる。例えば、第２プロセッサ１２は、セキュリティ機能を備えたプロセッサ（セキュアプロセッサ）で構成することができる。ここで、セキュアプロセッサとは、アタック耐性やタンパ耐性を備えたプロセッサである。
【００１６】
共有メモリ１３は、第１プロセッサ１１がアクセス可能な第１メモリ領域と、第２プロセッサ１２がアクセス可能な第２メモリ領域とを備える。第１メモリ領域には第１プロセッサ１１で実行されるプログラムが格納されている。第２メモリ領域には第２プロセッサ１２で実行されるプログラムが格納されている。ここで、第２プロセッサ１２はセキュアプロセッサで構成されているので、第２メモリ領域にはセキュリティ性が高いプログラムが格納されている。共有メモリ１３は、例えば同一のメモリ（物理的に単一のメモリ）で構成されており、第１メモリ領域と第２メモリ領域は、境界アドレスを用いて領域が分割されている。また、共有メモリ１３は、例えばフラッシュメモリを用いて構成することができる。
【００１７】
図２は、本実施の形態にかかるデータ処理装置が備える共有メモリ１３のメモリ領域を説明するための図である。図２に示すように、共有メモリ１３のアドレスａｄｄ_ａ〜ａｄｄ_ｂは第１メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ〜ａｄｄ_ｃは第２メモリ領域に対応したアドレスである。ここで、アドレスａｄｄ_ｂは、共有メモリ１３の第１メモリ領域および第２メモリ領域の境界に対応する境界アドレスである。
【００１８】
図２に示す共有メモリ１３では、各アドレスの大小関係がａｄｄ_ａ＜ａｄｄ_ｂ＜ａｄｄ_ｃであってもよく、また、ａｄｄ_ａ＞ａｄｄ_ｂ＞ａｄｄ_ｃであってもよい。各アドレスの大小関係がａｄｄ_ａ＜ａｄｄ_ｂ＜ａｄｄ_ｃである場合、例えば、境界アドレスａｄｄ_ｂは第２メモリ領域の先頭アドレスとすることができる。また、各アドレスの大小関係がａｄｄ_ａ＞ａｄｄ_ｂ＞ａｄｄ_ｃである場合、例えば、境界アドレスａｄｄ_ｂは第１メモリ領域の先頭アドレスとすることができる。
【００１９】
アクセス制御回路１４は、境界アドレスに応じて第１プロセッサ１１および第２プロセッサ１２からの共有メモリ１３へのアクセスを制御する。つまり、アクセス制御回路１４は、共有メモリ１３のアクセス先のアドレスと境界アドレスａｄｄ_ｂとの比較結果に応じて、第１プロセッサ１１および第２プロセッサ１２からの共有メモリ１３へのアクセスを制御することができる。これにより、アクセス制御回路１４は、共有メモリ１３のメモリ領域を第１メモリ領域と第２メモリ領域とに論理的に分割することができる。
【００２０】
例えば、境界アドレスａｄｄ_ｂよりも小さいアドレスの領域を第１メモリ領域と、境界アドレスａｄｄ_ｂよりも大きいアドレスの領域を第２メモリ領域とした場合（ａｄｄ_ａ＜ａｄｄ_ｂ＜ａｄｄ_ｃ）、アクセス制御回路１４は、共有メモリ１３へのアクセス元が第１プロセッサ１１であり、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも小さい場合、第１プロセッサ１１が第１メモリ領域にアクセスすることを許可する。また、アクセス制御回路１４は、共有メモリ１３へのアクセス元が第２プロセッサ１２であり、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも大きい場合（または、アクセス先のアドレスが境界アドレスａｄｄ_ｂ以上である場合）、第２プロセッサ１２が第２メモリ領域にアクセスすることを許可する。
【００２１】
逆に、境界アドレスａｄｄ_ｂよりも大きいアドレスの領域を第１メモリ領域と、境界アドレスａｄｄ_ｂよりも小さいアドレスの領域を第２メモリ領域とした場合、アクセス制御回路１４は、共有メモリ１３へのアクセス元が第１プロセッサ１１であり、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも大きい場合（または、アクセス先のアドレスが境界アドレスａｄｄ_ｂ以上である場合）、第１プロセッサ１１が第１メモリ領域にアクセスすることを許可する。また、アクセス制御回路１４は、共有メモリ１３へのアクセス元が第２プロセッサ１２であり、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも小さい場合、第２プロセッサ１２が第２メモリ領域にアクセスすることを許可する。
【００２２】
制御情報格納部１５は、共有メモリ１３の第１メモリ領域および第２メモリ領域の境界に対応する境界アドレスを格納する。境界アドレスは、第１プロセッサ１１または第２プロセッサ１２が任意のタイミングで書き換えることができる。このように、境界アドレスを書き換えることで、第１メモリ領域および第２メモリ領域の範囲を任意に変更することができる。また、本実施の形態にかかるデータ処理装置では、制御情報格納部１５に格納されている境界アドレスを書き換える際、セキュアプロセッサである第２プロセッサ１２が認証処理を実施する。
【００２３】
制御情報格納部１５に格納されている境界アドレスは、バス１６を介してアクセス制御回路１４に出力される。例えば、制御情報格納部１５は、境界アドレスが書き換えられるタイミング毎に、アクセス制御回路１４に境界アドレスを出力する。これにより、アクセス制御回路１４は最新の境界アドレスを保持することができる。
【００２４】
次に、本実施の形態にかかるデータ処理装置の動作について説明する。まず、第１プロセッサ１１および第２プロセッサ１２が共有メモリ１３にアクセスする場合の動作について説明する。
【００２５】
第１プロセッサ１１および第２プロセッサ１２が共有メモリ１３にアクセスする際、アクセス制御回路１４は、境界アドレスに応じて第１プロセッサ１１および第２プロセッサ１２からの共有メモリ１３へのアクセスを制御する。図３は、アクセス制御回路１４の動作を説明するためのフローチャートである。なお、以下では、各アドレスの大小関係がａｄｄ_ａ＜ａｄｄ_ｂ＜ａｄｄ_ｃである場合を例として説明する。
【００２６】
第１プロセッサ１１および第２プロセッサ１２が共有メモリ１３にアクセス要求（書き込み要求または読み出し要求）する際、第１プロセッサ１１および第２プロセッサ１２はアクセス先のアドレスとアクセス元を示すＩＤ情報を送信する。アクセス制御回路１４は、第１プロセッサ１１および第２プロセッサ１２が送信したＩＤ情報に基づき、共有メモリ１３へアクセスするプロセッサ（つまり、アクセス元）を判定する（ステップＳ１）。共有メモリ１３へアクセスするプロセッサが第１プロセッサ１１である場合（ステップＳ２：Ｙｅｓ）、第１プロセッサ１１がアクセスするアクセス先のアドレスと境界アドレスａｄｄ_ｂとを比較する。そして、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも小さい場合（ステップＳ３：Ｙｅｓ）は、アクセス先のアドレスがアドレスａｄｄ_ａ〜ａｄｄ_ｂの範囲内（第１メモリ領域の範囲内）であるので、第１プロセッサ１１の共有メモリ１３（第１メモリ領域）へのアクセスを許可する（ステップＳ４）。一方、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも大きい（または、アクセス先のアドレスが境界アドレスａｄｄ_ｂ以上である）場合（ステップＳ３：Ｎｏ）は、アクセス先のアドレスがアドレスａｄｄ_ａ〜ａｄｄ_ｂの範囲内（第１メモリ領域の範囲内）にないため、第１プロセッサ１１の共有メモリ１３へのアクセスを禁止する（ステップＳ５）。
【００２７】
また、共有メモリ１３へアクセスするプロセッサが第１プロセッサ１１でない場合（ステップＳ２：Ｎｏ）、つまり、共有メモリ１３へアクセスするプロセッサが第２プロセッサ１２である場合、第２プロセッサ１２がアクセスするアクセス先のアドレスと境界アドレスａｄｄ_ｂとを比較する。そして、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも大きい（または、アクセス先のアドレスが境界アドレスａｄｄ_ｂ以上である）場合（ステップＳ６：Ｙｅｓ）は、アクセス先のアドレスがアドレスａｄｄ_ｂ〜ａｄｄ_ｃの範囲内（第２メモリ領域の範囲内）であるので、第２プロセッサ１２の共有メモリ１３（第２メモリ領域）へのアクセスを許可する（ステップＳ７）。一方、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも小さい場合（ステップＳ６：Ｎｏ）は、アクセス先のアドレスがアドレスａｄｄ_ｂ〜ａｄｄ_ｃの範囲内（第２メモリ領域の範囲内）にないため、第２プロセッサ１２の共有メモリ１３へのアクセスを禁止する（ステップＳ８）。
【００２８】
次に、制御情報格納部１５に格納されている境界アドレスを書き換える場合の動作について説明する。図４は、本実施の形態にかかるデータ処理装置における境界アドレス書き換え処理を説明するためのフローチャートである。図４では、第１プロセッサ１１が制御情報格納部１５に格納されている境界アドレスを書き換える場合の動作を示している。
【００２９】
制御情報格納部１５に格納されている境界アドレスを書き換える際、第１プロセッサ１１は書き換え用の境界アドレスとアクセスコードを取得する（ステップＳ１１）。例えば、第１プロセッサ１１は、バス１６に接続された設定回路（不図示）から書き換え用の境界アドレスとアクセスコードを取得することができる。ここで、アクセスコードは、例えばユーザＩＤとパスワードである。
【００３０】
次に、第２プロセッサ１２は、第１プロセッサ１１が取得したアクセスコードの認証処理を実施する（ステップＳ１２）。例えば、第１プロセッサ１１は、取得したアクセスコードを第２プロセッサ１２に送信する。そして、第２プロセッサ１２は、第１プロセッサ１１から送信されたアクセスコードが正しいか否か判断する。
【００３１】
第２プロセッサ１２は、第１プロセッサ１１から送信されたアクセスコードが正しいと判断した場合（ステップＳ１３：Ｙｅｓ）、第１プロセッサ１１に対して境界アドレスの書き換えを指示する。境界アドレスの書き換えを許可された第１プロセッサ１１は、書き換え用の境界アドレスを用いて制御情報格納部１５に格納されている境界アドレスを書き換える（ステップＳ１４）。
【００３２】
一方、第２プロセッサ１２は、第１プロセッサ１１から送信されたアクセスコードが正しくないと判断した場合（ステップＳ１３：Ｎｏ）、第１プロセッサ１１に対してアクセスコードが正しくない旨を通知する。この場合、第１プロセッサ１１は、制御情報格納部１５に格納されている境界アドレスを書き換えることなく境界アドレス書き換え処理を終了する（ステップＳ１５）。
【００３３】
図５は、本実施の形態にかかるデータ処理装置における境界アドレス書き換え処理を説明するためのフローチャートである。図５では、第２プロセッサ１２が制御情報格納部１５に格納されている境界アドレスを書き換える場合の動作を示している。
【００３４】
制御情報格納部１５に格納されている境界アドレスを書き換える際、第２プロセッサ１２は書き換え用の境界アドレスとアクセスコードを取得する（ステップＳ２１）。例えば、第２プロセッサ２１は、バス１６に接続された設定回路（不図示）から書き換え用の境界アドレスとアクセスコードを取得することができる。ここで、アクセスコードは、例えばユーザＩＤとパスワードである。
【００３５】
次に、第２プロセッサ１２は、取得したアクセスコードの認証処理を実施する（ステップＳ２２）。第２プロセッサ１２は、保持するアクセスコードが正しいと判断した場合（ステップＳ２３：Ｙｅｓ）、書き換え用の境界アドレスを用いて制御情報格納部１５に格納されている境界アドレスを書き換える（ステップＳ２４）。
【００３６】
一方、第２プロセッサ１２は、保持するアクセスコードが正しくないと判断した場合（ステップＳ２３：Ｎｏ）、制御情報格納部１５に格納されている境界アドレスを書き換えることなく境界アドレス書き換え処理を終了する（ステップＳ２５）。
【００３７】
本発明の課題で説明したように、共有メモリを複数のプロセッサで共有しているデータ処理装置では、各プロセッサで実行するためのプログラムが共有メモリに格納されている。そして、プロセッサの中にセキュリティ性の高いプロセッサ（セキュアプロセッサ）が含まれている場合、セキュリティ性の高いプログラムが共有メモリに格納される。
【００３８】
特許文献１に開示されているマルチプロセッサ型コントローラでは、境界レジスタに境界アドレスを設定することで、各プロセッサがアクセス可能な共有メモリの領域を設定している。しかしながら、境界レジスタに設定される境界アドレスを容易に書き換えることができると、セキュアプロセッサ以外のプロセッサがセキュリティ性の高いプログラムにアクセスすることが可能となり、セキュアプロセッサを含むデータ処理装置のセキュリティ性が失われるという問題があった。特に、この問題はセキュアプロセッサ以外のプロセッサが脆弱性を有する場合に顕著となる。
【００３９】
また、特許文献１に開示されているマルチプロセッサ型コントローラでは、電源投入時に初期化プログラムをプロセッサ間で共通に実行しており、全てのプロセッサが共有メモリに制限なくアクセスすることができる。このため、セキュリティ性の高いプログラムが共有メモリに格納されている場合、セキュアプロセッサ以外のプロセッサがセキュリティ性の高いプログラムにアクセス可能となり、セキュアプロセッサを含むデータ処理装置のセキュリティ性が失われるという問題があった。
【００４０】
これに対して本実施の形態にかかるデータ処理装置では、制御情報格納部１５に格納されている境界アドレスを書き換える際、セキュアプロセッサである第２プロセッサ１２が認証処理を実施している。よって、制御情報格納部１５に格納されている境界アドレスが不正に書き換えられることを抑制することができるため、セキュリティ性の高いデータ処理装置を提供することができる。つまり、境界アドレスが不正に書き換えられて、セキュリティ性が高いプログラムが格納されている第２メモリ領域のデータが不正に取得されることを抑制することができる。
【００４１】
また、本実施の形態にかかるデータ処理装置では、アクセス制御回路１４を設けることで、第１プロセッサ１１がセキュリティ性の高い第２メモリ領域へアクセスすることを禁止することができる。よって、第１プロセッサ１１に脆弱性が内在していても、第１プロセッサ１１は共有メモリ１３の第２メモリ領域にアクセスできないため、セキュアプロセッサである第２のプロセッサのセキュリティ性に影響を及ぼすことを抑制することができる。
【００４２】
また、本実施の形態にかかるデータ処理装置では、同一のメモリ（物理的に単一のメモリ）で共有メモリ１３を構成することができるので、各プロセッサに対応した独立したメモリを搭載する必要がないため、半導体チップの面積やコストを削減することができる。  
【００４３】
また、本実施の形態にかかるデータ処理装置では、制御情報格納部１５に格納されている境界アドレスを正規のユーザが任意に書き換えることで、共有メモリ１３の第１メモリ領域および第２メモリ領域の容量を変更することができる。よって、共有メモリのメモリ領域を効率よく利用することができる。
【００４４】
以上で説明した本実施の形態にかかる発明により、セキュリティ性の高いデータ処理装置を提供することができる。
【００４５】
＜実施の形態２＞
次に、本発明の実施の形態２について説明する。図６は、本実施の形態の形態にかかるデータ処理装置を示すブロック図である。本実施の形態の形態にかかるデータ処理装置２０では、制御情報格納部２５に境界アドレスおよび第２プロセッサ用リセットベクタ（ＲＳＶ）が格納されている点、および共有メモリ２３の第２メモリ領域に第２プロセッサ１２を起動するためのプログラムが格納されている点が、実施の形態１で説明したデータ処理装置１０と異なる。これ以外は、実施の形態１で説明したデータ処理装置１０と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は省略する。
【００４６】
図６に示すように、本実施の形態にかかるデータ処理装置２０が備える制御情報格納部２５は、境界アドレスと共に、第２プロセッサ用リセットベクタ（ＲＳＶ）が格納されている。ここで、第２プロセッサ用リセットベクタは、第２プロセッサ１２を起動する際、最初に実行されるプログラムが格納されている先頭アドレスを示している。
【００４７】
図７は、本実施の形態にかかるデータ処理装置が備える共有メモリ２３のメモリ領域を説明するための図である。図７に示すように、共有メモリ２３のアドレスａｄｄ_ａ〜ａｄｄ_ｂは第１メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ〜ａｄｄ_ｃは第２メモリ領域に対応したアドレスである。ここで、アドレスａｄｄ_ｂは、共有メモリ１３の第１メモリ領域および第２メモリ領域の境界に対応する境界アドレスである。
【００４８】
図７に示す共有メモリ２３では、各アドレスの大小関係はａｄｄ_ａ＜ａｄｄ_ｂ＜ａｄｄ_ｃであり、境界アドレスａｄｄ_ｂは第２メモリ領域の先頭アドレスである。そして、本実施の形態にかかるデータ処理装置では、共有メモリ２３の第２メモリ領域に、第２プロセッサ１２を起動するためのプログラムが格納されている。この起動用プログラムの先頭アドレスは、リセットベクタに対応している。
【００４９】
本実施の形態にかかるデータ処理装置２０では、第２プロセッサ１２は、起動（再起動）する際に制御情報格納部２５に格納されているリセットベクタを読み出す。そして、第２プロセッサ１２は、起動用プログラムを読み出すために、リセットベクタで指定された共有メモリのアドレスとアクセス元を示すＩＤ情報をアクセス制御回路１４に送信する。アクセス制御回路１４は、アクセス元が第２プロセッサ１２であり、アクセス先が第２メモリ領域（リセットベクタで指定されたアドレス）であるので、第２プロセッサ１２の共有メモリ２３へのアクセスを許可する。そして、第２プロセッサ１２は、共有メモリ２３から起動用プログラムを読み出して実行する。このような動作により、第２プロセッサ１２が起動する。
【００５０】
また、本実施の形態にかかるデータ処理装置２０では、制御情報格納部２５に格納されているリセットベクタを書き換える際、第２プロセッサ１２が認証処理を実施している。なお、制御情報格納部２５に格納されているリセットベクタを書き換える際の動作については、図４および図５（実施の形態１参照）で説明した制御情報格納部１５に格納されている境界アドレスを書き換える動作と同様であるので、重複した説明は省略する。
【００５１】
本実施の形態にかかるデータ処理装置では、制御情報格納部２５に格納されているリセットベクタを書き換える際、セキュアプロセッサである第２プロセッサ１２が認証処理を実施している。よって、制御情報格納部２５に格納されているリセットベクタが不正に書き換えられることを抑制することができるため、セキュリティ性の高いデータ処理装置を提供することができる。また、制御情報格納部２５にリセットベクタを格納することで、第２プロセッサ１２を起動する際に共有メモリ２３の第２メモリ領域に格納されているプログラムのみで動作を完結することができる。
【００５２】
以上で説明した本実施の形態にかかる発明により、セキュリティ性の高いデータ処理装置を提供することができる。
【００５３】
＜実施の形態３＞
次に、本発明の実施の形態３について説明する。本実施の形態の形態にかかるデータ処理装置では、第２プロセッサ１２が共有メモリ１３の第１メモリ領域にアクセスできる点が、実施の形態１の場合と異なる。これ以外は、実施の形態１で説明したデータ処理装置１０と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は省略する。
【００５４】
図８は、アクセス制御回路１４（図１参照）の動作を説明するためのフローチャートである。なお、以下では、各アドレスの大小関係がａｄｄ_ａ＜ａｄｄ_ｂ＜ａｄｄ_ｃである場合を例として説明する。
【００５５】
第１プロセッサ１１および第２プロセッサ１２が共有メモリ１３にアクセス要求（書き込み要求または読み出し要求）する際、第１プロセッサ１１および第２プロセッサ１２はアクセス先のアドレスとアクセス元を示すＩＤ情報を送信する。アクセス制御回路１４は、第１プロセッサ１１および第２プロセッサ１２が送信したＩＤ情報に基づき、共有メモリ１３へアクセスするプロセッサ（つまり、アクセス元）を判定する（ステップＳ３１）。共有メモリ１３へアクセスするプロセッサが第１プロセッサ１１である場合（ステップＳ３２：Ｙｅｓ）、第１プロセッサ１１がアクセスするアクセス先のアドレスと境界アドレスａｄｄ_ｂとを比較する。そして、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも小さい場合（ステップＳ３３：Ｙｅｓ）は、アクセス先のアドレスがアドレスａｄｄ_ａ〜ａｄｄ_ｂの範囲内（第１メモリ領域の範囲内）であるので、第１プロセッサ１１の共有メモリ１３（第１メモリ領域）へのアクセスを許可する（ステップＳ３４）。一方、アクセス先のアドレスが境界アドレスａｄｄ_ｂよりも大きい（または、アクセス先のアドレスが境界アドレスａｄｄ_ｂ以上である）場合（ステップＳ３３：Ｎｏ）は、アクセス先のアドレスがアドレスａｄｄ_ａ〜ａｄｄ_ｂの範囲内（第１メモリ領域の範囲内）にないため、第１プロセッサ１１の共有メモリ１３へのアクセスを禁止する（ステップＳ３５）。
【００５６】
また、共有メモリ１３へアクセスするプロセッサが第１プロセッサ１１でない場合（ステップＳ３２：Ｎｏ）、つまり、共有メモリ１３へアクセスするプロセッサが第２プロセッサ１２である場合、第２プロセッサ１２がアクセスするアクセス先のアドレスと境界アドレスａｄｄ_ｂとの比較結果にかかわらず、第２プロセッサ１２の共有メモリ１３（第１メモリ領域および第２メモリ領域）へのアクセスを許可する（ステップＳ３６）。
【００５７】
本実施の形態にかかるデータ処理装置では、図９に示すように、第１プロセッサ１１と第２プロセッサ１２のアクセス範囲に差異を設けることができるため、より多様なデータ処理装置を構成することができる。また、共有メモリ１３の第１メモリ領域および第２メモリ領域にアクセスすることができるプロセッサを、セキュアプロセッサである第２プロセッサ１２に限定することで、データ処理装置のセキュリティ性を保つことができる。
【００５８】
＜実施の形態４＞
次に、本発明の実施の形態４について説明する。図１０は、本実施の形態にかかるデータ処理装置を示すブロック図である。図１０に示すデータ処理装置４０では、プロセッサをＮ個（Ｎは３以上の整数）備えている点が、実施の形態１および２で説明したデータ処理装置と異なる。これ以外は、実施の形態１および２で説明したデータ処理装置と同様であるので、適宜、重複した説明は省略する。
【００５９】
図１０に示すように、本実施の形態にかかるデータ処理装置４０は、第１乃至第Ｎプロセッサ４１_１〜４１_Ｎ、共有メモリ４３、アクセス制御回路４４、制御情報格納部４５、およびバス４６を備える。第１乃至第Ｎプロセッサ４１_１〜４１_Ｎ、アクセス制御回路４４、および制御情報格納部４５は、バス４６を介して互いに接続されている。また、共有メモリ４３はアクセス制御回路４４を介してバス４６に接続されている。
【００６０】
第１乃至第Ｎプロセッサ４１_１〜４１_Ｎの構成および動作については、実施の形態１および２で説明した第１プロセッサおよび第２プロセッサと基本的に同様である。図１０に示すデータ処理装置４０では、セキュアプロセッサは第２プロセッサ４１_２のみであるが、セキュアプロセッサの数は１つに限定されることはなく、これ以上であってもよい。
【００６１】
共有メモリ４３は、第１プロセッサ４１_１がアクセス可能な第１メモリ領域、第２プロセッサ４１_２がアクセス可能な第２メモリ領域、第Ｎプロセッサ４１_Ｎがアクセス可能な第Ｎメモリ領域を備える。共有メモリ４３についても、実施の形態１および２で説明した共有メモリと基本的に同様である。
【００６２】
図１１は、本実施の形態にかかるデータ処理装置４０が備える共有メモリ４３のメモリ領域を説明するための図である。図１１に示すように、共有メモリ４３のアドレスａｄｄ_ａ〜ａｄｄ_ｂ_１は第１メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_２は第２メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ_２〜ａｄｄ_ｂ_３は第３メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ_Ｎ−１〜ａｄｄ_ｂ_ｃは第Ｎメモリ領域に対応したアドレスである。ここで、アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_Ｎ−１は、共有メモリ４３の各メモリ領域の境界に対応する境界アドレスである。
【００６３】
アクセス制御回路４４は、境界アドレスに応じて第１乃至第Ｎプロセッサ４１_１〜４１_Ｎからの共有メモリ４３へのアクセスを制御する。つまり、アクセス制御回路４４は、共有メモリ４３のアクセス先のアドレスと境界アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_Ｎ−１との比較結果に応じて、第１乃至第Ｎプロセッサ４１_１〜４１_Ｎからの共有メモリ４３へのアクセスを制御することができる。これにより、アクセス制御回路４４は、共有メモリ４３のメモリ領域を第１乃至第Ｎメモリ領域に論理的に分割することができる。アクセス制御回路４４についても、実施の形態１および２で説明したアクセス制御回路と基本的に同様である。
【００６４】
制御情報格納部４５は、共有メモリ４３の第１乃至第Ｎメモリ領域の境界に対応する境界アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_Ｎ−１を格納している。また、制御情報格納部４５は、第２乃至第Ｎプロセッサ用リセットベクタ（ＲＳＶ）を格納している。境界アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_Ｎ−１およびリセットベクタは、第１乃至第Ｎプロセッサ４１_１〜４１_Ｎのいずれかが任意のタイミングで書き換えることができる。このように、境界アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_Ｎ−１を書き換えることで、第１乃至第Ｎメモリ領域の範囲を任意に変更することができる。また、本実施の形態にかかるデータ処理装置では、制御情報格納部４５に格納されている境界アドレスやリセットベクタを書き換える際、セキュアプロセッサである第２プロセッサ４１_２が認証処理を実施する。なお、本実施の形態にかかるデータ処理装置４０では、制御情報格納部４５がＮ−１個のリセットベクタを備える場合について説明したが、リセットベクタの数は任意に決定することができる。
【００６５】
制御情報格納部４５に格納されている境界アドレスは、バス４６を介してアクセス制御回路４４に出力される。例えば、制御情報格納部４５は、境界アドレスが書き換えられるタイミング毎に、アクセス制御回路４４に境界アドレスを出力する。これにより、アクセス制御回路４４は最新の境界アドレスを保持することができる。
【００６６】
また、本実施の形態にかかるデータ処理装置４０では、第２乃至第Ｎプロセッサ４１_２〜４１_Ｎは、起動（再起動）する際に制御情報格納部４５に格納されているリセットベクタを読み出す。これにより、第２乃至第Ｎプロセッサ４１_２〜４１_Ｎは、共有メモリ４３から各々の起動用プログラムを読み出して実行することができる。
【００６７】
なお、本実施の形態にかかるデータ処理装置４０の動作、つまり第１乃至第Ｎプロセッサ４１_１〜４１_Ｎが共有メモリ４３にアクセスする場合の動作、並びに制御情報格納部４５に格納されている境界アドレスおよびリセットベクタを書き換える場合の動作については、実施の形態１および２で説明した場合と同様であるので重複した説明は省略する。
【００６８】
以上で説明した本実施の形態にかかるデータ処理装置により、プロセッサを多数搭載した場合であっても、各々のプロセッサに対応したメモリ領域を備えたデータ処理装置を提供することができる。また、以上で説明した本実施の形態にかかる発明により、セキュリティ性の高いデータ処理装置を提供することができる。
【００６９】
＜実施の形態５＞
次に、本発明の実施の形態５について説明する。図１２は、本実施の形態にかかるデータ処理装置を示すブロック図である。図１２に示すデータ処理装置５０では、共有メモリ５３が制御情報格納部５５を備えている点が実施の形態１で説明したデータ処理装置と異なる。これ以外は、実施の形態１で説明したデータ処理装置と同様であるので、適宜、重複した説明は省略する。
【００７０】
図１２に示すように、本実施の形態にかかるデータ処理装置５０は、第１プロセッサ５１、第２プロセッサ５２、制御情報格納部５５を含む共有メモリ５３、アクセス制御回路５４、およびバス５６を備える。第１プロセッサ５１、第２プロセッサ５２、およびアクセス制御回路５４は、バス５６を介して互いに接続されている。また、共有メモリ５３はアクセス制御回路５４を介してバス５６に接続されている。
【００７１】
第１プロセッサ５１および第２プロセッサ５２の構成および動作については、実施の形態１で説明した第１プロセッサ１１および第２プロセッサ１２と基本的に同様である。
【００７２】
共有メモリ５３は、第１プロセッサ５１がアクセス可能な第１メモリ領域と、第２プロセッサ５２がアクセス可能な第２メモリ領域と、制御情報格納部５５とを備える。第１メモリ領域には第１プロセッサ５１で実行されるプログラムが格納されている。第２メモリ領域には第２プロセッサ５２で実行されるプログラムが格納されている。ここで、第２プロセッサ５２はセキュアプロセッサで構成されているので、第２メモリ領域にはセキュリティ性が高いプログラムが格納されている。
【００７３】
共有メモリ５３は、例えば同一のメモリ（物理的に単一のメモリ）で構成されており、第１メモリ領域、第２メモリ領域、および制御情報格納部５５は、境界アドレスを用いて領域が分割されている。また、共有メモリ５３は、例えばフラッシュメモリを用いて構成することができる。
【００７４】
共有メモリ５３が備える制御情報格納部５５は、共有メモリ５３の第１メモリ領域、第２メモリ領域、および制御情報格納部５５の領域の各々の境界に対応する境界アドレスを格納する。境界アドレスは、第１プロセッサ５１または第２プロセッサ５２が任意のタイミングで書き換えることができる。このように、境界アドレスを書き換えることで、第１メモリ領域、第２メモリ領域、制御情報格納部５５の領域の範囲を任意に変更することができる。また、本実施の形態にかかるデータ処理装置では、制御情報格納部５５に格納されている境界アドレスを書き換える際、セキュアプロセッサである第２プロセッサ５２が認証処理を実施する。
【００７５】
制御情報格納部５５に格納されている境界アドレスは、アクセス制御回路５４に出力される。例えば、制御情報格納部５５は、境界アドレスが書き換えられるタイミング毎に、アクセス制御回路５４に境界アドレスを出力する。これにより、アクセス制御回路５４は最新の境界アドレスを保持することができる。
【００７６】
図１３は、本実施の形態にかかるデータ処理装置が備える共有メモリ５３のメモリ領域を説明するための図である。図１３に示すように、共有メモリ５３のアドレスａｄｄ_ａ〜ａｄｄ_ｂ_１は第１メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ_１〜ａｄｄ_ｂ_２は第２メモリ領域に対応したアドレスであり、アドレスａｄｄ_ｂ_２〜ａｄｄ_ｂ_ｃは制御情報格納部５５に対応したアドレスである。ここで、アドレスａｄｄ_ｂ_１、ａｄｄ_ｂ_２は、共有メモリ５３の第１メモリ領域、第２メモリ領域、および制御情報格納部５５の領域の境界に対応する境界アドレスである。
【００７７】
図１３に示す共有メモリ５３では、各アドレスの大小関係がａｄｄ_ａ＜ａｄｄ_ｂ_１＜ａｄｄ_ｂ_２＜ａｄｄ_ｃであってもよく、また、ａｄｄ_ａ＞ａｄｄ_ｂ_１＞ａｄｄ_ｂ_２＞ａｄｄ_ｃであってもよい。各アドレスの大小関係がａｄｄ_ａ＜ａｄｄ_ｂ_１＜ａｄｄ_ｂ_２＜ａｄｄ_ｃである場合、例えば、境界アドレスａｄｄ_ｂ_１は第２メモリ領域の先頭アドレス、境界アドレスａｄｄ_ｂ_２は制御情報格納部５５の先頭アドレスとすることができる。また、各アドレスの大小関係がａｄｄ_ａ＞ａｄｄ_ｂ_１＞ａｄｄ_ｂ_２＞ａｄｄ_ｃである場合、例えば、境界アドレスａｄｄ_ｂ_１は第１メモリ領域の先頭アドレス、境界アドレスａｄｄ_ｂ_２は第２メモリ領域の先頭アドレスとすることができる。
【００７８】
アクセス制御回路５４は、境界アドレスに応じて第１プロセッサ５１および第２プロセッサ５２からの共有メモリ５３へのアクセスを制御する。つまり、アクセス制御回路５４は、共有メモリ５３のアクセス先のアドレスと境界アドレスａｄｄ_ｂ_１、ａｄｄ_ｂ_２との比較結果に応じて、第１プロセッサ５１および第２プロセッサ５２からの共有メモリ５３へのアクセスを制御することができる。これにより、アクセス制御回路５４は、共有メモリ５３のメモリ領域を第１メモリ領域、第２メモリ領域、および制御情報格納部５５に論理的に分割することができる。
【００７９】
例えば、境界アドレスａｄｄ_ｂ_１よりも小さいアドレスの領域を第１メモリ領域と、境界アドレスａｄｄ_ｂ_１よりも大きく境界アドレスａｄｄ_ｂ_２よりも小さいアドレスの領域を第２メモリ領域と、境界アドレスａｄｄ_ｂ_２よりも大きいアドレスの領域を制御情報格納部５５とした場合（ａｄｄ_ａ＜ａｄｄ_ｂ_１＜ａｄｄ_ｂ_２＜ａｄｄ_ｃ）、アクセス制御回路５４は、次のように第１プロセッサ５１および第２プロセッサ５２からの共有メモリ５３へのアクセスを制御する。
【００８０】
アクセス制御回路５４は、共有メモリ５３へのアクセス元が第１プロセッサ５１であり、アクセス先のアドレスが境界アドレスａｄｄ_ｂ_１よりも小さい場合、第１プロセッサ５１が第１メモリ領域にアクセスすることを許可する。また、アクセス制御回路５４は、共有メモリ５３へのアクセス元が第２プロセッサ５２であり、アクセス先のアドレスが境界アドレスａｄｄ_ｂ_１よりも大きく境界アドレスａｄｄ_ｂ_２よりも小さい場合（または、アクセス先のアドレスが境界アドレスａｄｄ_ｂ以上で境界アドレスａｄｄ_ｂ_２よりも小さい場合）、第２プロセッサ５２が第２メモリ領域にアクセスすることを許可する。
【００８１】
また、アクセス制御回路５４は、アクセス先のアドレスが境界アドレスａｄｄ_ｂ_２よりも大きい場合、第１プロセッサ５１および第２プロセッサ５２が制御情報格納部５５にアクセスすることを許可する。つまり、第１プロセッサ５１および第２プロセッサ５２は、制御情報格納部５５に格納されている境界アドレスを書き換える際に、共有メモリ５３の制御情報格納部５５に対応するアドレスをアクセス制御回路５４に出力することで、制御情報格納部５５にアクセスすることができる。
【００８２】
なお、本実施の形態にかかるデータ処理装置５０の動作、つまり第１プロセッサ５１および第２プロセッサ５２が共有メモリ５３にアクセスする場合の動作、および制御情報格納部５５に格納されている境界アドレスを書き換える場合の動作については、実施の形態１で説明した場合と同様であるので重複した説明は省略する。また、本実施の形態にかかる発明は、実施の形態２乃至４にかかる発明と、適宜、組み合わせることができる。
【００８３】
本実施の形態にかかるデータ処理装置では、第１メモリ領域、第２メモリ領域、および制御情報格納部を同一のメモリ（物理的に単一のメモリ）で構成することができるので、半導体チップの面積を削減することができる。  
【００８４】
＜実施の形態６＞
次に、本発明の実施の形態６について説明する。実施の形態６では、実施の形態２で説明したデータ処理装置２０の使用例について説明する。本実施の形態では、データ処理装置２０を使用者Ａおよび使用者Ｂが使用する場合の一例について説明する。
【００８５】
本実施の形態では、図６に示すデータ処理装置２０の第１プロセッサ１１をメインプロセッサとし、第２プロセッサ１２をセキュアプロセッサとし、共有メモリ２３の第１メモリ領域をメイン領域とし、第２メモリ領域をセキュア領域としている。
【００８６】
図１４は、本発明にかかるデータ処理装置２０の使用例を説明するための図であり、初期状態における共有メモリ２３のメモリ領域と制御情報格納部２５の状態を示している。初期状態では、共有メモリ２３のメモリ領域は全てメイン領域に設定されており、セキュア領域は設定されていない。このとき、制御情報格納部２５には、境界アドレスおよび第２プロセッサ用リセットベクタとして、共有メモリ２３の最上位アドレスａｄｄ_ｃがそれぞれ設定されている。
【００８７】
図１５は、本発明にかかるデータ処理装置２０の使用例を説明するための図であり、初期状態のデータ処理装置を使用者Ａが使用した際の、共有メモリ２３のメモリ領域と制御情報格納部２５の状態を示している。使用者Ａは、初期状態のデータ処理装置を使用する場合、メインプロセッサ（第１プロセッサ）用のメインプログラムコードＡを、共有メモリ２３のメイン領域の最下位アドレスａｄｄ_ａから書き込む。また、セキュアプロセッサ（第２プロセッサ）用のセキュアプログラムコードＡを、共有メモリ２３の最上位アドレスａｄｄ_ｃから書き込む。ここで、セキュアプログラムコードＡが書き込まれるセキュリティ領域へのアクセスは、使用者Ａのセキュリティ性が保証されたシステムのみが許可される。
【００８８】
このとき、境界アドレスは、使用者ＡのセキュアプログラムコードＡを格納している領域の最下位アドレスａｄｄ_ｂ_１とすることができる。これにより、使用者ＡのセキュアプログラムコードＡを格納している領域ａｄｄ_ｂ_１〜ａｄｄ_ｃをセキュア領域とすることができる。また、第２プロセッサ用リセットベクタは、使用者ＡのセキュアプログラムコードＡを格納している領域の最下位アドレスａｄｄ_ｂ_１とすることができる。これにより、セキュアプロセッサ（第２プロセッサ）は、使用者ＡのセキュアプログラムコードＡからフェッチを開始することができる。また、使用者ＡのメインプログラムコードＡは、メイン領域のａｄｄ_ａ〜ａｄｄ_ｄ_１に格納されている。
【００８９】
図１６は、本発明にかかるデータ処理装置２０の使用例を説明するための図であり、使用者Ａのプログラムコードが格納されたデータ処理装置２０に、更に、使用者Ｂが使用者Ｂのプログラムコードを格納した場合のメモリ領域と制御情報格納部２５の状態を示している。使用者Ｂは、データ処理装置を使用する場合、メインプロセッサ（第１プロセッサ）用のメインプログラムコードＢを、共有メモリ２３のメイン領域のアドレスａｄｄ_ｄ_１から書き込む。このとき、メインプログラムコードＢが書き込まれている領域より上位のアドレス（アドレスａｄｄ_ｄ_２より上位のアドレスの領域）はブランクとなる。また、セキュアプロセッサ（第２プロセッサ）用のセキュアプログラムコードＢを、共有メモリ２３のアドレスａｄｄ_ｂ_１の次のアドレスから書き込む。ここで、セキュアプログラムコードＢが書き込まれるセキュリティ領域へのアクセスは、使用者Ｂのセキュリティ性が保証されたシステムのみが許可される。
【００９０】
このとき、境界アドレスは、使用者ＢのセキュアプログラムコードＢを格納している領域の最下位アドレスａｄｄ_ｂ_２とすることができる。これにより、使用者ＡのセキュアプログラムコードＡを格納している領域ａｄｄ_ｂ_１〜ａｄｄ_ｃ、および使用者ＢのセキュアプログラムコードＢを格納している領域ａｄｄ_ｂ_２〜ａｄｄ_ｂ_１をセキュア領域とすることができる。
【００９１】
なお、第２プロセッサ用リセットベクタは、使用者ＡのセキュアプログラムコードＡを格納している領域の最下位アドレスａｄｄ_ｂ_１のままであるので、セキュアプロセッサ（第２プロセッサ）は、使用者ＡのセキュアプログラムコードＡからフェッチを開始することができる。
【００９２】
以上で説明した使用例により、使用者ＡのセキュアプログラムコードＡと使用者ＢのセキュアプログラムコードＢを、共有メモリ２３のセキュア領域に別々に格納することができる。すなわち、複数の使用者間で相互に干渉することなく、共有メモリのセキュア領域を使用することができる。このセキュア領域はメインプロセッサ（第１プロセッサ）によるアクセスが禁止されている領域であるので、メインプロセッサが何らかの理由により脆弱性を有している場合であっても、セキュアプログラムコードＡ、Ｂが影響を受けることを抑制することができる。
【００９３】
なお、上記使用例では、境界アドレスを境に、共有メモリ２３の上位アドレス側をセキュア領域、下位アドレス側をメイン領域としているが、セキュア領域とメイン領域の配置は任意に決定することができる。例えば、境界アドレスを境に、共有メモリ２３の下位アドレス側をセキュア領域、上位アドレス側をメイン領域としてもよい。また、本実施の形態では、実施の形態２で説明したデータ処理装置２０の使用例について説明したが、他の実施の形態（実施の形態１、３〜５）で説明したデータ処理装置についても適用することができる。
【００９４】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【００９５】
１０  データ処理装置
１１  第１プロセッサ
１２  第２プロセッサ
１３  共有メモリ
１４  アクセス制御回路
１５  制御情報格納部
１６  バス
【図１】
2013156760.tif 000003
【図２】
2013156760.tif 000004
【図３】
2013156760.tif 000005
【図４】
2013156760.tif 000006
【図５】
2013156760.tif 000007
【図６】
2013156760.tif 000008
【図７】
2013156760.tif 000009
【図８】
2013156760.tif 000010
【図９】
2013156760.tif 000011
【図１０】
2013156760.tif 000012
【図１１】
2013156760.tif 000013
【図１２】
2013156760.tif 000014
【図１３】
2013156760.tif 000015
【図１４】
2013156760.tif 000016
【図１５】
2013156760.tif 000017
【図１６】
2013156760.tif 000018