(57)【要約】【課題】より細かくアクセス制限を行うことを可能にした情報処理装置を提供すること。【解決手段】主記憶である不揮発性メモリと、前記主記憶にアクセスする複数のバスマスターと、前記複数のバスマスター毎に独立して前記不揮発性メモリへのアクセスを制限するアクセス制限手段を有し、前記アクセス制限手段が、アクセス制限の情報を保持したアクセス制限情報保持手段と、前記アクセス制限情報保持手段を参照し、アクセス制限情報を出力するアクセス制限設定手段と、前記アクセス制限設定手段から出力されるアクセス制限情報と前記バスマスターにより出力されるコマンド・アドレス信号に応じて前記不揮発性メモリへのアクセスの許可、禁止を判定し、判定結果を出力するアクセス判定手段と、を備えることを特徴とする。【選択図】図１
2017156789.tif 000002
【特許請求の範囲】
【請求項１】
主記憶である不揮発性メモリと、
前記主記憶にアクセスする複数のバスマスターと、
前記複数のバスマスター毎に独立して前記不揮発性メモリへのアクセスを制限するアクセス制限手段を有し、
前記アクセス制限手段が、アクセス制限の情報を保持したアクセス制限情報保持手段と、
前記アクセス制限情報保持手段を参照し、アクセス制限情報を出力するアクセス制限設定手段と、
前記アクセス制限設定手段から出力されるアクセス制限情報と前記バスマスターにより出力されるコマンド・アドレス信号に応じて前記不揮発性メモリへのアクセスの許可、禁止を判定し、判定結果を出力するアクセス判定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
装置の動作モードを保持するモード保持部を備え、前記アクセス制限情報保持手段がモードごとのアクセス制限の情報を持ち、前記アクセス制限設定手段が前記モード保持部の出力するモードに応じたアクセス制限情報を出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
主記憶である不揮発性メモリと、
前記主記憶にアクセスする複数のバスマスターと、
前記複数のバスマスターからのアクセスを調停する調停手段と、
前記調停手段と前記主記憶間で送受信の制御を行うメモリーコントローラーと、
前記調停手段によってメモリとアクセスを行うと決定したバスマスターのＩＤを前記主記憶に対し送信するバスマスターＩＤ送信手段と、
前記主記憶内に前記不揮発性メモリへのアクセスを制限するアクセス制限手段とを有し、
前記アクセス制限手段が、
アクセス制限の情報を保持したアクセス制限情報保持手段と、
前記アクセス制限情報保持手段がバスマスターごとのアクセス制限の情報を持ち、
前記アクセス制限情報保持手段を参照し、前記バスマスターＩＤ送信手段が送信するバスマスターのＩＤに応じたアクセス制限情報を出力するアクセス制限設定手段と、
前記アクセス制限設定手段から出力されるアクセス制限情報と前記バスマスターにより出力されるコマンド・アドレス信号に応じて前記不揮発性メモリへのアクセスの許可、禁止を判定し、判定結果を出力するアクセス判定手段と、
を備えることを特徴とする情報処理装置。
【請求項４】
装置の動作モードを保持するモード保持部と前記メモリーコントローラーに前記モード保持手段の保持内容を前記主記憶に対し送信するモード送信手段と、を備え、
前記アクセス制限情報保持手段がバスマスターおよびモードごとのアクセス制限の情報を持ち、
前記アクセス制限設定手段が前記モード送信手段から出力されるモードと
前記バスマスターにより出力されるコマンド・アドレス信号に応じたアクセス制限情報を出力することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記不揮発性メモリをアドレス毎に複数の領域に分け、
前記複数の領域が、一時記憶するデータを格納するためのワーク領域、機密情報を格納するためのセキュア領域、ファームウエアを格納するためのファーム領域、であり、
前記モードが、通常動作のノーマルモードと、機密情報を扱うセキュアモードと、ファームウエアのアップデートを行うファームウエアアップデートモードと、開発中に使用するデバッグモードと、製品形態時に使用する製品モードである
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記モードをノーマルモードからセキュアモードに切り替えることにより、特定のバスマスターからの前記セキュア領域へのアクセス制限を切り替えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記モードをノーマルモードからファームウエアアップデートモードに切り替えることにより、特定のバスマスターからの前記ファーム領域へのアクセス制限を切り替えることを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記モードがデバッグモードの場合に特定のバスマスターからの前記不揮発性メモリの前記セキュア領域への読み出しおよび書き込みを許可し、前記モードが製品モードに切り替えた場合には、特定のバスマスターからの前記セキュア領域への読み出しおよび書き込みを禁止することを特徴とする請求項５に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
メモリ上に格納されているプログラムが、外部からのアクセス、適切でないプログラム、プログラム自身の暴走等の要因により破壊されてしまうと動作不良を起こすおそれがある。
【０００３】
この問題に対し、特許文献１には、ＣＰＵ、主記憶および複数の周辺装置がバスを介して互いに接続された構成で、ＤＭＡ転送で転送可能なメモリの領域を指定する手段を持ち、ＤＭＡ転送のアクセスを制限しデータの破壊を防ぐ手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１４８６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では主記憶に対してアクセスを行うのが、ＣＰＵであるか周辺装置であるかの判別がつかない。そのため、接続先に応じたアクセス制限を細かく設定することが出来ない。
【０００６】
さらに別の観点として、従来フラッシュＲＯＭをプログラム領域、ＤＲＡＭをワーク領域と別々のデバイスに分かれていたが、ＭＲＡＭのような不揮発性メモリを用いた場合、１つのデバイスにプログラム領域とワーク領域を構成することが可能となる。
【０００７】
従来のようにプログラム領域とワーク領域が別々のデバイス、かつ、フラッシュＲＯＭのように書き込みの際に所定の手続きが必要であれば、不適切なプログラムやプログラムの暴走等によりプログラム領域が破壊される可能性は低い。
【０００８】
しかし、１つのデバイスにプログラム領域とワーク領域を構成した場合、不適切なプログラムやプログラムの暴走等の要因によりプログラム領域が破壊される可能性が高まる。また、プログラム領域はファームウエアのアップデートやアプリケーションプログラムの追加を行う際には、特定のバスマスター（ＣＰＵやＤＭＡ）については書き込み権限が必要になるが、その他のバスマスターに書き込みの権限は不要である。それにくわえて、ファームウエアのアップデートやアプリケーションプログラムの追加時以外は、特定のＣＰＵもしくはＤＭＡからも書き込み権限は不要である。
【０００９】
ところが、現状のシステムでは、細かくアクセス制限を行いプログラム領域の保護を行う仕組みが無いため、プログラム領域が破壊される可能性が高まる。
【００１０】
そこで、本発明の目的は、より細かくアクセス制限を行うことを可能にした情報処理装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明に係る情報処理装置は、
主記憶である不揮発性メモリと、前記主記憶にアクセスする複数のバスマスターと、前記複数のバスマスター毎に独立して前記不揮発性メモリへのアクセスを制限するアクセス制限手段とを有し、前記アクセス制限手段が、アクセス制限の情報を保持したアクセス制限情報保持手段と、前記アクセス制限情報保持手段を参照し、アクセス制限情報を出力するアクセス制限設定手段と、前記アクセス制限設定手段から出力されるアクセス制限情報と前記バスマスターにより出力されるコマンド・アドレス信号に応じて前記不揮発性メモリへのアクセスの許可、禁止を判定し、判定結果を出力するアクセス判定手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明に係る情報処理装置によれば、機器の動作モードおよび接続するバスマスターに応じたアクセス制限を細かく行うことが可能となる。これにより、不揮発性メモリへの不要なアクセスを防ぐことが可能となり、プログラムの保護やセキュリティの向上させた情報処理装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施例の構成図である。
【図２】第１の実施例のアクセス制御設定部である。
【図３】第１の実施例のアクセス制御部である。
【図４】第１の実施例のフローチャートである。
【図５】第２の実施例の構成図である。
【図６】第２の実施例のフローチャートである。
【図７】第２の実施例のアクセス制御部である。
【図８】第１の実施例のアクセス制御設定部である。
【図９】第１の実施例のアクセス制御設定部である。
【図１０】第１の実施例のアクセスプロトコルである。
【図１１】第１の実施例のアクセスプロトコルである。
【図１２】第１の実施例のアクセスプロトコルである。
【図１３】第１の実施例のアクセスプロトコルである。
【図１４】第２の実施例のアクセス制御設定部である。
【図１５】第２の実施例のアクセス制御設定部である。
【図１６】第２の実施例のアクセスプロトコルである。
【図１７】第２の実施例のアクセスプロトコルである。
【図１８】第２の実施例のアクセスプロトコルである。
【図１９】第２の実施例のアクセスプロトコルである。
【図２０】第２の実施例のアクセス制御設定部である。
【発明を実施するための形態】
【００１４】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【００１５】
［実施例１］
図１は本発明の実施例にかかわる情報処理装置の一例であるデジタルカメラの構成を示すブロック図である。なお、第１の実施形態では、情報処理装置の一例としてデジタルカメラを採用した場合を説明するが、第１の実施形態に係る情報処理装置はデジタルビデオカメラ、デジタルカメラ付き装置（デジタルカメラ付き携帯電話を含む）等に於いても同様に構成することが可能である。
【００１６】
図１において、１０６はＭａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（以下ＭＲＡＭと略す）、ＲｅＲＡＭ(Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（以下ＲｅＲＡＭと略す）、Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（以下ＰＲＡＭと略す）のような従来のＤＲＡＭに匹敵するアクセス速度を備えた不揮発性メモリであり、プログラムの格納領域と、各処理の途中結果を格納するワーク領域の双方を兼ねる。１００は第１のバスマスターであり、本実施例では各ブロックへの制御を行うＣＰＵである。
【００１７】
１０１は第２のバスマスターであり、本実施例ではＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）レシーバーのような、現在位置を取得し、取得した位置情報を不揮発性メモリ１０６に記録する機能を持つ位置情報取得部である。１０２は第３のバスマスターであり、本実施例では可搬記録媒体１４１への読み出し、書き込みおよび不揮発性メモリ１０６への読み出し、書き込みの制御を行う可搬記録媒体制御部である。
【００１８】
１２０は機器の動作モードおよびＣＰＵ１００が出力するコマンド・アドレスに応じて、ＣＰＵ１００と不揮発性メモリ１０６とのアクセス制御を行う第１のバスマスター用アクセス制御部である。第１のバスマスター用アクセス制御部１２０の動作の詳細は後述する。
【００１９】
１２１は機器の動作モードおよび位置情報取得部１０１が出力するコマンド・アドレスに応じて、位置情報取得部１０１と不揮発性メモリ１０６とのアクセス制御を行う第２のバスマスター用アクセス制御部である。１２２は機器の動作モードおよび可搬記録媒体制御部１０２が出力するコマンド・アドレスに応じて、可搬記録媒体制御部１０２と不揮発性メモリ１０６とのアクセス制御を行う第３のバスマスター用アクセス制御部である。
【００２０】
１０４は不揮発性メモリ１０６に対する複数のバスマスターからのアクセスの調停を行う調停部である。１０５はメモリーコントローラーである。各バスマスターから不揮発性メモリ１０６へは、各バスマスターに対応するアクセス制御部、調停部１０４およびメモリーコントローラー１０５を介してアクセスを行う。１０３は機器の動作モードを保持しているモード保持部である。
【００２１】
機器の動作モードの例としては、通常動作であるノーマルモード、機密情報を扱うセキュアモード、ファームウエアアップデートやアプリケーションプログラムを追加するファームアップモードが挙げられる。１４２はレバースイッチ等からなる操作部である。本実施例においては位置情報の取得を行うか否かを示す。続いて、各バスマスターのアクセス制御部の詳細について、第１のバスマスター用アクセス制御部１２０を例にして説明する。第１のバスマスター用アクセス制御部１２０のインターフェースおよび内部についてブロック図である図３を用いて説明する。
【００２２】
まず、第１のバスマスター用アクセス制御部１２０のインターフェースについて説明する。第１のバスマスター用アクセス制御部１２０とＣＰＵ１００のインターフェースは下記である。３５２はＣＰＵ１００が不揮発性メモリ１０６にアクセスする際に、読み出しまたは書き込みを示すコマンド信号と不揮発性メモリ１０６のアドレスを示す第１のコマンド・アドレス信号Ａである。本実施例においては、Ｈｉｇｈが許可、Ｌｏｗが禁止を示すとする。
【００２３】
３５３は第１のバスマスター用アクセス制御部１２０がＣＰＵ１００からのアクセスを機器の動作モードおよびアドレスから判定してアクセスの可否を示す第１の許可・禁止信号Ａである。３５４はＣＰＵ１００が送信する第１の送信データＡである。３５５はＣＰＵ１００が受信する第１の受信データＡである。
【００２４】
第１のバスマスター用アクセス制御部１２０と調停部１０４のインターフェースは下記である。３６０は第１のバスマスター用アクセス制御部１２０が許可した場合に、調停部１０４に送信される第１のコマンド・アドレスＢである。３６１は第１のバスマスター用アクセス制御部１２０が許可した場合に、調停部１０４に送信される第１の送信データＢである。３６２は調停部１０４から第１のバスマスター用アクセス制御部１２０に送信される第１の受信データＢである。
【００２５】
続いて、第１のバスマスター用アクセス制御部１２０の内部について説明する。図３において、３００はモードに応じたアクセス制限情報を出力する第１のアクセス制限設定部である。３０１はモードに応じたアクセス制限情報をテーブル状に保持する第１のアクセス制限情報保持部である。
【００２６】
第１のアクセス制限設定部３００は、モード保持部１０３から現在のモード情報を取得し、第１のアクセス制限設定部３００内部にある第１のアクセス制限設定保持部３０１保持されている該当モードにおける各セグメントのアクセス制限情報を出力する。
【００２７】
ここで、図２は第１のアクセス制限情報保持部３０１の例である。図２を用いて第１のアクセス制限情報保持部３０１について説明する。図２において、縦軸のＳｅｇ１、Ｓｅｇ２、・・・、Ｓｅｇ８は不揮発性メモリ１０６の領域を示し、横軸は機器の動作モードを示している。
【００２８】
Ｓｅｇ１、Ｓｅｇ２、Ｓｅｇ３，Ｓｅｇ４は処理途中の情報を一時的に格納するワーク領域である。Ｓｅｇ５は位置情報や個人情報等の機密情報を格納するセキュア領域である。Ｓｅｇ６はユーザーがダウンロード等の行為によりアプリケーションプログラムを追加する際に使用するアプリ領域である。Ｓｅｇ７、８は機器を動作させる為のファームウエアを格納するファーム領域である。これらの各セグメントに対して、ある機器の動作モードにおけるアクセス制限をテーブル状に保持している。
【００２９】
第１のアクセス制限情報保持部３０１の例である図２では、ノーマルモードにおけるＣＰＵ１００のアクセス権限情報は、ワーク領域であるＳｅｇ１〜４は読み出し許可、書き込み許可、セキュア領域であるＳｅｇ５は読み出し禁止、書き込み禁止、アプリ領域であるＳｅｇ６は読み出し許可、書き込み禁止、ファーム領域であるＳｅｇ７〜８は読み出し許可、書き込み禁止であることを示している。
【００３０】
同様に、セキュアモードにおけるＣＰＵ１００のアクセス権限情報は、ワーク領域であるＳｅｇ１〜４は読み出し許可、書き込み許可、セキュア領域であるＳｅｇ５は読み出し禁止、書き込み禁止、アプリ領域であるＳｅｇ６は読み出し許可、書き込み禁止、ファーム領域であるＳｅｇ７〜８は読み出し許可、書き込み禁止であることを示している。
【００３１】
３１０はアクセス判定部である。アクセス判定部３１０は、第１のアクセス制限設定部３００から指示される各セグメントのアクセス制限情報と第１のコマンド・アドレスＡを入力とする。入力されたコマンド・アドレスＡの対象となるセグメントのアクセス制御情報にもとづき、許可されたアクセスなのか、禁止されたアクセスなのかを判定し、判定信号を出力する。
【００３２】
ノーマルモードにおいて、コマンドとして書き込み、アドレスとしてＳｅｇ４の場合には、図２にあるとおり判定結果は許可である。判定の結果、判定信号として許可を出力する。それに対し、ノーマルモードにおいて、コマンドとして書き込み、アドレスとしてＳｅｇ５の場合には、図２にあるとおり、判定結果は禁止である。判定の結果、判定信号として禁止を出力する。
【００３３】
３４０はメモリーコントローラー１０５を介して不揮発性メモリ１０６にコマンド・アドレスを送信するコマンド・アドレス送信部である。アクセス判定部３１０からの判定信号に基づいて、調停部１０４へのコマンド・アドレスの送信のゲートを行う。
【００３４】
３２０はメモリーコントローラー１０５を介して不揮発性メモリ１０６にデータを送信するデータ送信部である。アクセス判定部３１０からの判定信号に基づいて、調停部１０４へのデータの送信のゲートを行う。
【００３５】
３３０はメモリーコントローラー１０５を介して不揮発性メモリ１０６からデータを受信するデータ受信部である。
【００３６】
以上が第１のバスマスター用アクセス制御部１２０の構成の説明である。
【００３７】
第２のバスマスター用アクセス制御部、第３のバスマスター用アクセス制御部の構成はほぼ同じであるが、第１のアクセス制限情報保持部のみがそれぞれ異なる。図８が第２のバスマスター用アクセス制御部１２１の内部の第２のバスマスター用アクセス制御情報保持部、図９が第３のバスマスター用アクセス制御部１２２の内部の第３のバスマスター用アクセス制御情報保持部である。
【００３８】
第２のアクセス制限情報保持部の例である図８では、ノーマルモードにおける位置情報取得部１０１のアクセス権限情報は、ワーク領域であるＳｅｇ１〜４は読み出し許可、書き込み許可、セキュア領域であるＳｅｇ５は読み出し禁止、書き込み禁止、アプリ領域であるＳｅｇ６は読み出し許可、書き込み禁止、ファーム領域であるＳｅｇ７〜８は読み出し許可、書き込み禁止であることを示している。
【００３９】
同様に、セキュアモードにおける位置情報取得部１０１のアクセス権限情報は、ワーク領域であるＳｅｇ１〜４は読み出し許可、書き込み許可、セキュア領域であるＳｅｇ５は読み出し許可、書き込み許可、アプリ領域であるＳｅｇ６は読み出し許可、書き込み禁止、ファーム領域であるＳｅｇ７〜８は読み出し許可、書き込み禁止であることを示している。セキュアモードの際にセキュア領域であるＳｅｇ５の読み出し、書き込みを共に許可する。
【００４０】
第３のアクセス制限情報保持部の例である図９では、ノーマルモードにおける可搬記録媒体制御部１０２のアクセス権限情報は、ワーク領域であるＳｅｇ１〜４は読み出し許可、書き込み許可、セキュア領域であるＳｅｇ５は読み出し禁止、書き込み禁止、アプリ領域であるＳｅｇ６は読み出し許可、書き込み禁止、ファーム領域であるＳｅｇ７〜８は読み出し許可、書き込み禁止であることを示している。
【００４１】
同様に、セキュアモードにおける可搬記録媒体制御部１０２のアクセス権限情報は、ワーク領域であるＳｅｇ１〜４は読み出し許可、書き込み許可、セキュア領域であるＳｅｇ５は読み出し許可、書き込み禁止、アプリ領域であるＳｅｇ６は読み出し許可、書き込み禁止、ファーム領域であるＳｅｇ７〜８は読み出し許可、書き込み禁止であることを示している。セキュアモードの際にセキュア領域であるＳｅｇ５の読み出しを許可する。
【００４２】
次にアクセス制御部のアクセスプロトコルについて説明する。
【００４３】
アクセスのパターンとしては、書き込みが許可されている領域に書き込み動作、書き込みが禁止されている領域に書き込み動作、読み出しが許可されている領域に読み出し動作、読み出しが禁止されている領域に読み出し動作の４通りがある。
【００４４】
以下、タイミングチャートを用いて、ＣＰＵ１００、第１のバスマスター用のアクセス制御部および調停部１０４のハンドシェイクについて説明する。
【００４５】
書き込みが許可されている領域に書き込み動作を行った場合のタイミングチャートが図１０である。
【００４６】
Ｔ１０２０において、ＣＰＵ１００は、コマンドとして書き込み信号とメモリのアドレスとしてＳＥＧ１を第１のバスマスター用アクセス制御部１２０に送信する。
【００４７】
Ｔ１０３０において、コマンドとアドレスを受信した第１のバスマスター用アクセス制御部１２０は、内部のアクセス判定部３１０において機器の動作モードおよびアドレスに応じたアクセスの可否の判定を行う。
【００４８】
Ｔ１０４０において、Ｔ１０２０から所定の期間後、ＣＰＵ１００は、第１のバスマスター用アクセス制御部１２０にデータ信号を送信する。
【００４９】
Ｔ１０５０において、アクセス判定部３１０の判定結果が書き込み許可と判定され、第１のバスマスター用アクセス制御部１２０はＣＰＵ１００に対し第１の許可・禁止信号Ａを「許可」である旨を通知する。
【００５０】
Ｔ１０６０において、第１のバスマスター用アクセス制御部１２０は調停部１０４にコマンドとアドレスの送信を行う。
【００５１】
Ｔ１０７０において、データ信号を受信した第１のバスマスター用アクセス制御部１２０は調停部１０４にデータ信号の送信を行う。書き込みが禁止されている領域に書き込み動作を行った場合のタイミングチャートが図１１である。
【００５２】
Ｔ１１２０において、ＣＰＵ１００は、コマンドとして書き込み信号とメモリのアドレスを第１のバスマスター用アクセス制御部１２０に送信する。
【００５３】
Ｔ１１３０において、コマンドとアドレスを受信した第１のバスマスター用アクセス制御部１２０はアクセス判定部３１０で、機器の動作モードおよびアドレスに応じた判定を行う。
【００５４】
Ｔ１１４０において、Ｔ１１２０から所定の期間後、ＣＰＵ１００は、第１のバスマスター用アクセス制御部１２０にデータ信号を送信する。
【００５５】
Ｔ１１５０において、アクセス判定部３１０の判定結果が書き込み禁止と判定された場合、第１のバスマスター用アクセス制御部１２０はＣＰＵ１００に第１の許可・禁止信号Ａを１パルス分ネゲートして「禁止」であることを示す。また、コマンド・アドレス送信部３４０およびデータ送信部３２０にも同時に送信することにより、禁止の場合はコマンド・アドレスおよびデータの送信を行わない。
【００５６】
読み出しが許可されている領域に読み出し動作を行った場合のタイミングチャートが図１２である。
【００５７】
Ｔ１２２０において、ＣＰＵ１００は、コマンドとして読み出し信号とメモリのアドレスを第１のバスマスター用アクセス制御部１２０に送信する。
【００５８】
Ｔ１２３０において、コマンドとアドレスを受信した第１のバスマスター用アクセス制御部１２０はアクセス判定部３１０で、機器の動作モードおよびアドレスに応じた判定を行う。
【００５９】
Ｔ１２４０において、アクセス判定部３１０の判定結果が読み出し可と判定された場合、第１のバスマスター用アクセス制御部１２０はＣＰＵ１００に対し第１の許可・禁止信号Ａを「許可」である旨を通知する。
【００６０】
Ｔ１２５０において、Ｔ１２４０で許可と判定された第１のバスマスター用アクセス制御部１２０は調停部１０４にコマンドとアドレスの送信を行う。
【００６１】
Ｔ１２７０において、調達部１０４は不揮発性メモリ１０６から渡されてきたデータを第１のバスマスター用アクセス制御部１２０に送信する。
【００６２】
Ｔ１２８０において、第１のバスマスター用アクセス制御部１２０はＣＰＵ１００にデータを送信する。
【００６３】
読み出しが禁止されている領域に読み出し動作を行った場合のタイミングチャートが図１３である。
【００６４】
Ｔ１３２０において、ＣＰＵ１００は、コマンドとして読み出し信号とメモリのアドレスを第１のバスマスター用アクセス制御部１２０に送信する。
【００６５】
Ｔ１３３０において、コマンドとアドレスを受信した第１のバスマスター用アクセス制御部１２０はアクセス判定部３１０で、機器の動作モードおよびアドレスに応じた判定を行う。
【００６６】
Ｔ１３４０において、アクセス判定部３１０の判定結果が読み出し禁止と判定された場合、第１のバスマスター用アクセス制御部１２０はＣＰＵ１００に対し第１の許可・禁止信号Ａを１パルス分ネゲートして「禁止」であることを示す。また、コマンド・アドレス送信部３４０にも同時に送信することにより、禁止の場合はコマンド・アドレスの送信を行わない。
【００６７】
以上が第１のバスマスター用アクセス制御部１２０を例とした各バスマスターのアクセス制御部の詳細である。このような構成およびアクセスのプルトコルを用いることにより、必要なアクセスは出来、不要なアクセスを防ぐ。
【００６８】
ここからは、これまでに説明してきた構成およびアクセスのプロトコルを用いた具体例として、位置情報を取得し、一旦不揮発性メモリ１０６のＳｅｇ５に格納し、その後可搬記録媒体１４１に書きこむ処理を図４のフローチャートを用いて記述する。
【００６９】
その際、第２のバスマスター用アクセス制限部１２１の内部にある第２のアクセス制限設定部の内容は図８、第３のバスマスター用アクセス制限部１２２の内部にある第３のアクセス制限設定部の内容は図９である。
【００７０】
スタート状態として、モード保持部１０３にはノーマルモードが保持されているとする。
【００７１】
Ｓ４１０において、ＣＰＵ１００は操作部１４２の状態を取得し、位置情報を記録するもしくは記録しないかの判定を行う。判定を行い、記録すると判定した場合はＳ４１５に遷移し、記録しないと判定した場合は終了する。
【００７２】
Ｓ４１５において、ＣＰＵ１００はモード保持部１０３をセキュアモードに切り替える。
【００７３】
Ｓ４２０において、ＣＰＵ１００は位置情報取得部１０１に位置情報の取得を指示する。指示を受けた位置情報取得部１０１は位置情報を取得し、不揮発性メモリ１０６のＳＥＧ５に書きこむ。
【００７４】
Ｓ４２５において、位置情報の不揮発性メモリ１０６のＳＥＧ５への書きこみ完了待ちを行う。書き込みが完了した場合、位置情報取得部１０１からＣＰＵ１００へ完了通知を送信し、Ｓ４３０に遷移する。
【００７５】
Ｓ４３０において、ＣＰＵ１００は可搬記録媒体制御部１０２に位置情報の可搬記録媒体１４１への書き込みを指示する。Ｓ４３５において、位置情報の可搬記録媒体への書きこみ完了待ちを行う。書き込みが完了した場合、可搬記録媒体制御部１０２からＣＰＵ１００へ完了通知を送信し、Ｓ４４０に遷移する。
【００７６】
Ｓ４４０において、ＣＰＵ１００はモード保持部１０３をノーマルモードに切り替える。
【００７７】
上述したように、本実施例の構成を用いて接続先や機器の動作モードに応じてアクセス権限を細かく設定することにより、位置情報などのセキュアな情報が格納されている領域に対して不要なアクセスを防ぐことが可能となる。これによりセキュリティの向上を図ることが可能となる。
【００７８】
［実施例２］
以下、本発明の第２の実施例について説明する。第１の実施例はコントローラー側でバスマスターを識別しアクセス制限を行う構成であった。それに対し、本実施例では、不揮発性メモリ側でバスマスターを識別しアクセス制限を行う構成について記す。
【００７９】
図５は本実施例の情報処理装置の構成図である。
【００８０】
図５において、５０６はＭＲＡＭ、ＲｅＲＡＭ、ＰＲＡＭのような従来のＤＲＡＭに匹敵するアクセス速度を備えた不揮発性メモリであり、プログラムの格納領域と、各処理の途中結果を格納するワーク領域の双方を兼ねる。
【００８１】
５１０は、不揮発性メモリ５０６の中にあり、バスマスターのＩＤ、コマンド・アドレス、機器の動作モードに応じてアクセス制御を行うアクセス制御部である。アクセス制御部５１０の詳細については後述する。
【００８２】
５３０は、不揮発性メモリ５０６の内部にあり、記憶する値を保持するメモリーアレイである。
【００８３】
５０１は第２のバスマスターであり、本実施例では可搬記録媒体５４１からリードをするための可搬記録媒体である。
【００８４】
５０２は第３のバスマスターであり、本実施例ではファームウエアアップデート処理の制御を行うファームウエアアップデート制御部である。
【００８５】
５０４は不揮発性メモリ１０６に対する複数のバスマスターからのアクセスの調停を行う調停部である。
【００８６】
５４０は、調停部５０４の内部にあり、モード保持部１０３に保持されている内容をメモリーコントローラー経由で不揮発性メモリに送信するモード送信部である。
【００８７】
５５０は、調停部５０４の内部にあり、複数のバスマスターが接続されている場合に、不揮発性メモリ５０６と接続する調停を行い、調停されたバスマスターのＩＤを不揮発性メモリ５０６に送信するバスマスターＩＤ送信部である。
【００８８】
５０５はメモリーコントローラーである。各バスマスターから不揮発性メモリ１０６へは、各バスマスターに対応するアクセス制御部、調停部１０４およびメモリーコントローラー１０５を介してアクセスを行う。
【００８９】
５４２はレバースイッチ等からなる操作部である。本実施例においてはファームウエアアップデートを行うか否かを示す。
【００９０】
次に図７はアクセス制御部５１０の接続および内部を示すブロック図である。図７を用いてアクセス制御部５１０について説明する。
【００９１】
７４０は、アクセス制御部５１０の入力信号であり、機器のモードを示すモード信号Ｃである。
【００９２】
７４１は、アクセス制御部５１０の入力信号であり、不揮発性メモリ５０６にアクセスするバスマスターを示すバスマスターＩＤ信号Ｃである。
【００９３】
７４２は、アクセス制御部５１０の入力信号であり、コマンド・アドレスを示すコマンド・アドレス信号Ｃである。７４３は、アクセス制御部５１０の入出力信号であり、データを示すデータ信号Ｃである。
【００９４】
７６０は、アクセス制御部５１０の出力信号であり、コマンド・アドレスを示すコマンド・アドレス信号Ｄである。
【００９５】
７６１は、アクセス制御部５１０の入出力信号であり、データを示すデータ信号Ｄである。
【００９６】
７００はモード信号Ｃ７４０とバスマスターＩＤ信号７４１を入力として、アクセス制限情報Ｃ信号７５０を出力するアクセス制限設定部７００である。アクセス制限設定部７００の内部には、第１のバスマスター用のアクセス制限情報保持部２００１、第２のバスマスター用のアクセス制限情報保持部１４０１、第３のバスマスター用のアクセス制限情報保持部１５０１がある。
【００９７】
第１のアクセス制限情報保持部２００１の例が図２０、第２のアクセス制限情報保持部１４０１の例が図１４、第３のアクセス制限情報保持部１５０１の例が図１５である。
【００９８】
７１０はアクセス判定部である。アクセス判定部７１０は、アクセス制限設定部７００から指示される各セグメントのアクセス制限情報Ｃ信号７５０とコマンド・アドレス信号Ｃ７４２を入力とする。入力されたコマンド・アドレスＣの対象となるセグメントのアクセス制御情報にもとづき、許可されたアクセスなのか、禁止されたアクセスなのかを判定し、判定信号である許可・禁止信号７５１を出力する。
【００９９】
７２０はコマンド・アドレス信号Ｃ７４２と許可・禁止信号７５１を入力とし、許可・禁止信号７５１が許可の場合、アクセスを許可しコマンド・アドレス信号Ｄ７６０を出力する。それに対し、禁止の場合、コマンド・アドレス信号Ｄ７６０を出力しない。
【０１００】
７３０はコマンド・アドレス信号Ｃ７４３と許可・禁止信号７５１を入力とし、許可・禁止信号７５１が許可の場合、コマンド・アドレス信号Ｄ７６０を出力する。それに対し、禁止の場合、コマンド・アドレス信号Ｄ７６０を出力しない。
【０１０１】
次にアクセス制御部のアクセスプロトコルについて説明する。
【０１０２】
アクセスのパターンとしては、書き込みが許可されている領域に書き込み動作、書き込みが禁止されている領域に書き込み動作、読み出しが許可されている領域に読み出し動作、読み出しが禁止されている領域に読み出し動作の４通りがある。
【０１０３】
以下、タイミングチャートを用いて、メモリーコントローラー５０５、アクセス制御部５１０、メモリーアレイ５３０のハンドシェイクについて説明する。
【０１０４】
書き込みが許可されている領域に書き込み動作を行った場合のタイミングチャートが図１６である。
【０１０５】
Ｔ１６００において、メモリーコントローラー５０５は、バスマスターＩＤ信号Ｃをアクセス制御部１５１０に送信する。
【０１０６】
Ｔ１６１０において、バスマスターＩＤ信号Ｃの変化をきっかけとして、モード信号Ｃ７４０とバスマスターＩＤ信号Ｃ７４１を入力として、アクセス制限情報Ｃ信号７５０を変更する。
【０１０７】
Ｔ１６３０において、Ｔ１６００から一定時間の経過後、メモリーコントローラー５０５は、コマンド・アドレス信号Ｃ７４２をアクセス制御部５１０に送信する。
【０１０８】
Ｔ１６５０において、コマンド・アドレス信号Ｃ７４２とアクセス制限情報Ｃ信号７５０を入力として、アクセス判定部７１０で判定を行う。許可の旨をコマンド・アドレス送信部７２０およびデータ送受信部７３０に送信する。
【０１０９】
Ｔ１６７０において、Ｔ１６３０から一定時間の経過後、メモリーコントローラー５０５は、データＣ７４３をアクセス制御部５１０に送信する。
【０１１０】
Ｔ１６７５において、アクセス制御部５１０は、コマンド・アドレス信号Ｄ７６０をメモリーアレイ６３０に送信する。
【０１１１】
Ｔ１６８０において、アクセス制御部５１０は、データ信号Ｄ７６１をメモリーアレイ６３０に送信する。
【０１１２】
書き込みが禁止されている領域に書き込み動作を行った場合のタイミングチャートが図１７である。
【０１１３】
Ｔ１７００において、メモリーコントローラー５０５は、バスマスターＩＤ信号Ｃをアクセス制御部５１０に送信する。
【０１１４】
Ｔ１７１０において、バスマスターＩＤ信号Ｃの変化をきっかけとして、モード信号Ｃ７４０とバスマスターＩＤ信号Ｃ７４１を入力として、アクセス制限情報Ｃ信号７５０を変更する。
【０１１５】
Ｔ１７３０において、Ｔ１７００から一定時間の経過後、メモリーコントローラー５０５は、コマンド・アドレス信号Ｃ７４２をアクセス制御部５１０に送信する。
【０１１６】
Ｔ１７５０において、コマンド・アドレス信号Ｃ７４２とアクセス制限情報Ｃ信号７５０を入力として、アクセス判定部７１０で判定を行う。禁止の旨をコマンド・アドレス送信部７２０およびデータ送受信部７３０に送信する。
【０１１７】
Ｔ１７６０において、Ｔ１７３０から一定時間の経過後、メモリーコントローラー５０５は、データＣ７４３をアクセス制御部５１０に送信する。
【０１１８】
読み出しが許可されている領域に読み出し動作を行った場合のタイミングチャートが図１８である。
【０１１９】
Ｔ１８００において、メモリーコントローラー５０５は、バスマスターＩＤ信号Ｃをアクセス制御部５１０に送信する。
【０１２０】
Ｔ１８１０において、バスマスターＩＤ信号Ｃの変化をきっかけとして、モード信号Ｃ７４０とバスマスターＩＤ信号Ｃ７４１を入力として、アクセス制限情報Ｃ信号７５０を変更する。
【０１２１】
Ｔ１８３０において、Ｔ１８００から一定時間の経過後、メモリーコントローラー５０５は、コマンド・アドレス信号Ｃ７４２をアクセス制御部５１０に送信する。
【０１２２】
Ｔ１８４０において、コマンド・アドレス信号Ｃ７４２とアクセス制限情報Ｃ信号７５０を入力として、アクセス判定部７１０で判定を行う。許可の旨をコマンド・アドレス送信部７２０およびデータ送受信部７３０に送信する。
【０１２３】
Ｔ１８５０において、アクセス制御部５１０は、コマンド・アドレス信号Ｄ７６０をメモリーアレイ６３０に送信する。
【０１２４】
Ｔ１８６０において、Ｔ１８５０から一定時間の経過後、アクセス制御部５１０は、メモリーアレイ６３０からデータ信号Ｄ７６１を受信する。
【０１２５】
Ｔ１８７０において、Ｔ１８５０から一定時間の経過後、メモリーコントローラー５０５はアクセス制御部５１０からデータ信号Ｃ７４３を受信する。
【０１２６】
読み出しが禁止されている領域に読み出し動作を行った場合のタイミングチャートが図１９である。
【０１２７】
Ｔ１９００において、メモリーコントローラー５０５は、バスマスターＩＤ信号Ｃをアクセス制御部５１０に送信する。
【０１２８】
Ｔ１９１０において、バスマスターＩＤ信号Ｃの変化をきっかけとして、モード信号Ｃ７４０とバスマスターＩＤ信号Ｃ７４１を入力として、アクセス制限情報Ｃ信号７５０を変更する。
【０１２９】
Ｔ１９３０において、Ｔ１９００から一定時間の経過後、メモリーコントローラー５０５は、コマンド・アドレス信号Ｃ７４２をアクセス制御部５１０に送信する。
【０１３０】
Ｔ１９５０において、コマンド・アドレス信号Ｃ７４２とアクセス制限情報Ｃ信号７５０を入力として、アクセス判定部７１０で判定を行う。禁止の旨をコマンド・アドレス送信部７２０およびデータ送受信部７３０に送信する。
【０１３１】
ここからは、これまでに説明してきた構成およびアクセスのプロトコルを用いた具体例を説明する。
【０１３２】
更新用のファームウエアを可搬記録媒体に格納し、一旦不揮発性メモリ１０６のＳｅｇ１に格納し、その後ファームアップ制御部がＳＥＧ７に書きこみファームウエアのアップデート処理を図６のフローチャートを用いて記述する。
【０１３３】
スタート状態として、モード保持部１０３にはノーマルモードが保持されているとする。また、可変記録媒体５４１に更新用のファームウエアが格納されているとする。
【０１３４】
Ｓ６０５において、ＣＰＵ１００は操作部５４２の状態を取得し、ファームウエアのアップデートを行うかもしくは行わないかの判定を行う。判定を行い、ファームウエアのアップデートを行うと判定した場合はＳ６１０に遷移し、ファームウエアのアップデートを行わないと判定した場合はＳ６０５を繰り返す。
【０１３５】
Ｓ６１０において、ＣＰＵ１００はモード保持部１０３をファームアップモードに切り替える。
【０１３６】
Ｓ６１５において、ＣＰＵ１００は可変記録媒体制御部５０１に可変記録媒体５４１に格納されている更新用のファームウエアの取得を指示する。指示を受けた可変記録媒体制御部５０１は更新用のファームウエアを取得し、不揮発性メモリ１０６のワーク領域であるＳＥＧ１に書きこむ。
【０１３７】
Ｓ６２０において、更新用のファームウエアの不揮発性メモリ１０６のワーク領域であるＳＥＧ１への書きこみ完了待ちを行う。書き込みが完了した場合、可変記録媒体制御部５０１からＣＰＵ１００へ完了通知を送信し、Ｓ６２５に遷移する。
【０１３８】
Ｓ６２５において、ＣＰＵ１００はファームウエアアップデート制御部５０２に不揮発性メモリ５０６のワーク領域であるＳＥＧ１に一時的に格納された更新用ファームウエアを不揮発性メモリ５０６のファーム領域であるＳＥＧ７への書き込みを指示する。
【０１３９】
Ｓ６３０において、更新用のファームウエアの不揮発性メモリ１０６のファーム領域であるＳＥＧ７への書きこみ完了待ちを行う。書き込みが完了した場合、ファームウエアアップデート制御部５０２からＣＰＵ１００へ完了通知を送信し、Ｓ６３５に遷移する。
【０１４０】
Ｓ６３５において、ＣＰＵ１００はモード保持部１０３をノーマルモードに切り替える。
【０１４１】
上述したように、接続先や機器の動作モードに応じてアクセス権限を細かく設定することにより、ファームウエアなどの機器を動作させるプログラムが格納されている領域に対して不要なアクセスを防ぐことが可能となる。これによりプログラムの保護やセキュリティの向上を図ることが可能となる。
【０１４２】
以上説明したように、上記の第１および第２の実施例によれば、機器の動作モードおよび接続するバスマスターに応じてアクセス制限を細かく行うことにより、不揮発性メモリへの不要なアクセスを防ぐことが可能となる。これによりプログラムの保護やセキュリティの向上を図ることが可能となる。
【０１４３】
第１および第２の実施例においてはノーマルモード、セキュアモード、ファームアップモードのモードによりアクセス制限を切り替えることを説明したが、モードとして開発中に使用するデバッグモードと販売される製品形態時に使用する製品モードを設け、アクセス制限を切り替えても良い。
【０１４４】
具体的には、デバッグモードにおいては、バスマスターであるＣＰＵ１００からのアクセス制限を、不揮発性メモリ５０６のワーク領域であるＳｅｇ１〜４に対しては読み出し、書き込みを共に許可、セキュア領域であるＳｅｇ５、に対しては読み出し、書き込みを共に許可、プログラム領域であるアプリ領域であるＳｅｇ６およびファーム領域であるＳｅｇ７，８に対しては読み出しを許可、書き込みを禁止とする。
【０１４５】
製品モードにおいては、バスマスターであるＣＰＵ１００からのアクセス制限を、不揮発性メモリ５０６のワーク領域であるＳｅｇ１〜４に対しては読み出し、書き込みをともに許可、セキュア領域であるＳｅｇ５に対しては読み出し、書き込みをともに禁止、プログラム領域であるアプリ領域であるＳｅｇ６およびファーム領域であるＳｅｇ７，８に対しては読み出しを許可、書き込みを禁止とする。このようにデバッグモードおよび製品モードというモード毎のアクセス制限情報を保持し、開発時においてはデバッグモード、製品形態においては製品モードを用いることにより、開発時にはＣＰＵ１００からのアクセスが許可されるのでデバッグを可能にし、製品形態においてはＣＰＵ１００からのアクセスが禁止されるので不適切な解析を困難にすることが可能である。
【符号の説明】
【０１４６】
１００  第１のバスマスター、１０１  第２のバスマスター、
１０２  第３のバスマスター、１０６  不揮発性メモリ、
１２０  第１のバスマスター用アクセス制御部、
１２１  第２のバスマスター用アクセス制御部、
１２２  第３のバスマスター用アクセス制御部、１４１  可搬記録媒体
【図１】
2017156789.tif 000003
【図２】
2017156789.tif 000004
【図３】
2017156789.tif 000005
【図４】
2017156789.tif 000006
【図５】
2017156789.tif 000007
【図６】
2017156789.tif 000008
【図７】
2017156789.tif 000009
【図８】
2017156789.tif 000010
【図９】
2017156789.tif 000011
【図１０】
2017156789.tif 000012
【図１１】
2017156789.tif 000013
【図１２】
2017156789.tif 000014
【図１３】
2017156789.tif 000015
【図１４】
2017156789.tif 000016
【図１５】
2017156789.tif 000017
【図１６】
2017156789.tif 000018
【図１７】
2017156789.tif 000019
【図１８】
2017156789.tif 000020
【図１９】
2017156789.tif 000021
【図２０】
2017156789.tif 000022