(57)【特許請求の範囲】
【請求項１】
所定のプログラムを格納するメモリエリアが複数設けられたメモリと、
前記プログラムを読み出して、所定の命令にもとづいて演算処理を行うＣＰＵと、
前記プログラムの読み出しに用いられる命令アドレス信号と命令列の読み出しであるフェッチアドレス信号を入力し、同一メモリエリアからの読み出しと判断した場合に読み出し許可信号を生成する判別回路と、
前記判別回路から出力される前記読み出し許可信号にもとづいて、前記メモリエリアに格納されているプログラムを読み出し、他のメモリエリアに格納されているプログラムの読み出しを禁止する読み出し制御手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
所定のプログラムを格納するメモリエリアが複数設けられたメモリと、
前記プログラムを読み出して、所定の命令にもとづいて演算処理を行うＣＰＵと、
前記プログラムの読み出しに用いられる命令アドレス信号と命令列の読み出しであるフェッチアドレス信号を入力し、同一メモリエリアからの読み出しかどうかを判別する判別信号を生成する判別回路と、
前記判別回路から出力される前記判別信号にもとづいて、フェッチアドレスに対応するメモリエリアを選択するセレクト信号を前記メモリに出力し、前記フェッチアドレスに対応するメモリエリアのプログラムの読み出し制御を行う読み出し制御手段と、
を具備することを特徴とする情報処理装置。
【請求項３】
所定のプログラムを格納するメモリエリアが複数設けられたメモリと、
前記プログラムを読み出して、所定の命令にもとづいて演算処理を行うＣＰＵと、
前記プログラムの読み出しに用いられる命令アドレス信号と命令列の読み出しであるフェッチアドレス信号を入力し、同一メモリエリアからの読み出し或いはメモリエリアを跨いでの連続読み出しかどうかを判別する判別信号を生成する判別回路と、
前記判別回路から出力される前記判別信号にもとづいて、フェッチアドレスに対応するメモリエリアを選択するセレクト信号を前記メモリに出力し、前記フェッチアドレスに対応するメモリエリアのプログラム読み出し或いは前記メモリエリアを跨いでの連続読み出しの制御を行う読み出し制御手段と、
を具備することを特徴とする情報処理装置。
【請求項４】
所定のプログラムを格納するメモリエリアが複数設けられたメモリと、前記プログラムを読み出して、所定の命令にもとづいて演算処理を行うＣＰＵと、同一メモリエリアからの読み出しかどうかを判別する判別信号を生成する判別手段と、メモリエリアのプログラムの読み出し制御を行う読み出し制御手段とを有する情報処理装置であって、
前記メモリから読み出された命令を前記ＣＰＵで命令フェッチするステップと、
前記命令フェッチでフェッチされた命令がジャンプ命令かを判別するステップと、
前記命令フェッチでフェッチされた命令がジャンプ命令でない場合、前記読み出された命令のメモリエリアに格納されているプログラムの読み出し実行を行うステップと、
前記命令フェッチでフェッチされた命令がジャンプ命令である場合、読み出し対象が格納されているメモリエリアが同一メモリエリア内かを判別するステップと、
メモリエリアが異なり、ジャンプ読み出しの場合、読み出し不許可信号にもとづいて、プログラムの読み出し実行を行わずにセキュリティ実行を行うステップと、
を具備することを特徴とする情報処理装置を用いたセキュリティ解除プログラムの不正実行禁止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置としてのマイクロコンピュータに係り、特にメモリに書き込まれたデータの読み出しや書き換えの禁止技術に関する。
【背景技術】
【０００２】
フラッシュメモリなどのＰＲＯＭ（Programmable  Read  Only  Memory）を内蔵するマイコンでは、基本的にはセキュリティをかけた後ではセキュリティの解除作業はできないようになっている（例えば、特許文献１参照。）。
【０００３】
しかし、完成したプログラムをフラッシュメモリに書き込んで製品として出荷した後に、プログラムのバグが発見されたり、仕様変更によって固定データを変更する必要が発生する場合がある。このような場合に対応するために、通常、ハードウエアはセキュリティ解除手段を持ち、プログラマはセキュリティ解除プログラムをメモリ領域に埋め込んでいる。このため、例えば特許文献１の場合、セキュリティ解除プログラムへのコールは制限されず、認証を飛ばして解除命令を直接実行することができるという問題点がある。また、オンボードデバッガや外部メモリのような外部から入力されるプログラムによるコールに対しても実質上制限がないので、数万から数十億通りの組み合わせデータを外部から入力することによりセキュリティ解除プログラムを不正実行できるという問題点がある。
【特許文献１】特開２００５−１２９０４１号公報（頁１１、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、特定メモリ領域外からの実行を禁止して、セキュリティ解除プログラムの不正実行を防止する情報処理装置及びそれを用いたセキュリティ解除プログラムの不正実行禁止方法を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の一態様の情報処理装置は、所定のプログラムを格納するメモリエリアが複数設けられたメモリと、前記プログラムを読み出して、所定の命令にもとづいて演算処理を行うＣＰＵと、前記プログラムの読み出しに用いられる命令アドレス信号と命令列の読み出しであるフェッチアドレス信号を入力し、同一メモリエリアからの読み出しと判断した場合に読み出し許可信号を生成する判別回路と、前記判別回路から出力される前記読み出し許可信号にもとづいて、前記メモリエリアに格納されているプログラムを読み出し、他のメモリエリアに格納されているプログラムの読み出しを禁止する読み出し制御手段とを具備することを特徴とする。
【０００６】
更に、上記目的を達成するために、本発明の一態様の情報処理装置を用いたセキュリティ解除プログラムの不正実行禁止方法は、所定のプログラムを格納するメモリエリアが複数設けられたメモリと、前記プログラムを読み出して、所定の命令にもとづいて演算処理を行うＣＰＵと、同一メモリエリアからの読み出しかどうかを判別する判別信号を生成する判別手段と、メモリエリアのプログラムの読み出し制御を行う読み出し制御手段とを有する情報処理装置であって、前記メモリから読み出された命令を前記ＣＰＵで命令フェッチするステップと、前記命令フェッチでフェッチされた命令がジャンプ命令かを判別するステップと、前記命令フェッチでフェッチされた命令がジャンプ命令でない場合、前記読み出された命令のメモリエリアに格納されているプログラムの読み出し実行を行うステップと、前記命令フェッチでフェッチされた命令がジャンプ命令である場合、読み出し対象が格納されているメモリエリアが同一メモリエリア内かを判別するステップと、メモリエリアが異なり、ジャンプ読み出しの場合、読み出し不許可信号にもとづいて、プログラムの読み出し実行を行わずにセキュリティ実行を行うステップとを具備することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、特定メモリ領域外からの実行を禁止して、セキュリティ解除プログラムの不正実行を防止する情報処理装置及びそれを用いたセキュリティ解除プログラムの不正実行禁止方法を提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下本発明の実施例について図面を参照しながら説明する。
【実施例１】
【０００９】
まず、本発明の実施例１に係る情報処理装置について、図面を参照して説明する。図１は情報処理装置を示すブロック図である。本実施例では、メモリ内部にプログラム毎に異なる判別標識が設けられている。
【００１０】
図１に示すように、情報処理装置１には、ＣＰＵ（Central  Processing  Unit）２、メモリ３、及び読み出し制御部４が設けられている。情報処理装置１は、マイクロコンピュータ（マイコンとも呼称される）である。
【００１１】
メモリ３には、１番目の格納用メモリエリア１１、・・・ｎ番目の格納用メモリエリア１２、１番目の判別標識１３、・・・ｎ番目の判別標識１４が設けられている。格納用メモリエリア及び判別標識は、それぞれｎ個設けられ、１番目の判別標識１３は１番目の格納用メモリエリア１１に対応し、ｎ番目の判別標識１４はｎ番目の格納用メモリエリア１２に対応している。メモリ３は、例えば、フラッシュＲＯＭからなり、複数の格納用メモリエリア毎に、それぞれ所定のプログラムを格納している。
【００１２】
読み出し制御部４は、データバス５によりＣＰＵ２の命令列１６に接続されている。そして、メモリ３から出力されるデータ信号を入力し、判別回路１７から出力される読み出し許可信号１〜ｎにもとづいて、メモリ３へのアクセスが許可されたときにメモリ３からのプログラム読み出し(命令フェッチ)を制御し、メモリ３へのアクセスが許可されないときにメモリ３からのプログラム読み出し(命令フェッチ)を禁止する。
【００１３】
ＣＰＵ２には、判別ｂｉｔ１５、命令列１６、及びフェッチアドレス１８が設けられている。ＣＰＵ２は、情報処理装置１全体を指揮・統括し、所定の命令にもとづいて、メモリ３に格納されているプログラムを呼び出し、解読、計算、読み出しなどの演算処理を行う。
【００１４】
命令列１６は、データバス５を介して読み出し制御部４から出力される命令信号ＭＲＳを入力し、次のフェッチアドレスを出力する。判別ｂｉｔ１５は、１番目の判定ｂｉｔからｎ番目の判定ｂｉｔ情報を有し、判別回路１７から出力される判別標識信号ＨＢＳを入力し、例えば、１番目の判別標識１３に格納されている１番目の命令列には１番目の判定ｂｉｔを判別し、ｎ番目の判別標識１４に格納されているｎ番目の命令列にはｎ番目の判定ｂｉｔを判別する。
【００１５】
フェッチアドレス１８は、アドレス線６によりメモリ３に接続されている。そして、命令列１６から出力されるフェッチ先の命令列信号ＭＪＳを入力し、命令列の読み出し先であるフェッチアドレス信号としてのアドレス信号をメモリ３に出力する。
【００１６】
判別回路１７は、判別ｂｉｔ１５から出力される判別ｂｉｔ信号を入力し、判別ｂｉｔに対応した読み出し許可信号を読み出し制御部４に出力する。例えば、読み出し許可信号１は１番目の格納用メモリエリア１１に格納されているプログラムの読み出し制御用、読み出し許可信号ｎはｎ番目の格納用メモリエリア１２に格納されているプログラムの読み出し制御用としてそれぞれ使用される。読み出し許可信号ｍ（ｍは、１以上で（ｎ−１）の整数）では、ｍ番目以外の、例えば、（ｍ＋１）番目などの格納用メモリエリアに格納されているプログラムの読み出し制御はできない（命令フェッチの禁止）。
【００１７】
ここで、それぞれの判別標識に対応するプログラムが判別回路１７で判別されたときのみ、そのプログラムが格納されている格納用メモリエリアへの命令フェッチが許可される。そして、例えば、１番目の格納用メモリエリア１１に認証プログラムが格納され、ｎ番目の格納用メモリエリア１２にセキュリティ解除プログラムが格納されている場合、認証をスキップしてセキュリティ解除命令を直接実行することができなくなる（セキュリティ解除の不正実行の禁止）。
【００１８】
上述したように、本実施例の情報処理装置では、ＣＰＵ２、メモリ３、判別回路１７、及び読み出し制御部４が設けられ、ＣＰＵ２には、判別ｂｉｔ１５、命令列１６、及びフェッチアドレス１８が設けられている。判別回路１７は、判別ｂｉｔ１５から出力される判別ｂｉｔ信号を入力し、判別ｂｉｔに対応した読み出し許可信号を読み出し制御部４に出力する。読み出し制御部４は、データバス５によりＣＰＵ２の命令列１６に接続され、メモリ３から出力されるデータ信号などを入力し、判別回路１７から出力される読み出し許可信号１〜ｎにもとづいて、メモリ３へのアクセスが許可されたときにメモリ３からのプログラムの読み出しを制御する。
【００１９】
このため、それぞれの判別標識に対応するプログラムのものと判別されたときのみ、そのプログラムが格納されている格納用メモリエリアへの命令フェッチが許可される。
【００２０】
したがって、認証をスキップしてセキュリティ解除命令を直接実行することができなくなり、セキュリティ解除の不正実行が禁止される。また、外部から入力されるデータによる内部メモリに記憶されたデータとの比較作業によるセキュリティ解除の不正実行ができなくなる。
【００２１】
なお、本実施例では、情報処理装置１にＣＰＵ７を設けているが、ＣＰＵ７の代わりに、情報処理装置全体を指揮・統括するためのＭＣＵ（Micro  Controller  Units）、プロセッサ、或いはＭＰＵ（Micro  Processor  Unit）などを設けてもよい。
【実施例２】
【００２２】
次に、本発明の実施例２に係る情報処理装置について、図面を参照して説明する。図２は情報処理装置を示すブロック図である。本実施例では、命令アドレスとフェッチアドレスが同一メモリ領域かを判別する判別回路が設けられている。
【００２３】
以下、実施例１と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００２４】
図２に示すように、情報処理装置１ａには、ＣＰＵ２ａ、メモリ３ａ、及び読み出し制御部４ａが設けられている。情報処理装置１ａは、マイクロコンピュータである。
【００２５】
メモリ３ａには、１番目の格納用メモリエリア１１、・・・ｎ番目の格納用メモリエリア１２が設けられている。メモリ３ａは、例えば、フラッシュＲＯＭからなり、複数の格納用メモリエリア毎に、それぞれ所定のプログラムを格納している。
【００２６】
読み出し制御部４ａは、データバス５ａによりメモリ３ａに接続され、データバス５ｂによりＣＰＵ２ａの命令列１６に接続されている。そして、メモリ３ａから出力されるアドレス及びデータ信号などのメモリ出力信号ＭＭＳを入力し、ＣＰＵ２ａの判別回路１７ａから出力される読み出し許可信号にもとづいてプログラムの読み出しを制御する。
【００２７】
ＣＰＵ２ａには、命令列１６、判別回路１７ａ、フェッチアドレス１８、及び命令アドレス１９が設けられている。ＣＰＵ２ａは、情報処理装置１ａ全体を指揮・統括し、所定の命令にもとづいて、メモリ３ａに格納されているプログラムを呼び出し、解読、計算、読み出しなどの演算処理を行う。
【００２８】
命令列１６は、データバス５ｂを介して読み出し制御部４ａから出力される命令信号ＭＲＳを入力し、アクセス実行用の命令列をフェッチアドレス１８に出力する。命令アドレス１９は、命令列が格納されている命令アドレス情報を命令アドレス信号ＭＡＳとして判別回路１７ａに出力する。
【００２９】
フェッチアドレス１８は、アドレス線６によりメモリ３ａに接続されている。そして、命令列１６から出力されるフェッチ先の命令列信号ＭＪＳを入力し、フェッチ先のフェッチアドレス情報をフェッチアドレス信号ＦＡＳとして判別回路１７ａに出力し、命令列の読み出し先であるフェッチアドレス信号としてのアドレス信号をメモリ３ａに出力する。
【００３０】
判別回路１７は、命令アドレス１９から出力される命令アドレス信号ＭＡＳとフェッチアドレス１８から出力されるフェッチアドレス信号ＦＡＳを入力し、同一格納用メモリエリアからの読み出しと判断された場合、読み出し許可信号を読み出し制御部４ａに出力する。同一格納用メモリエリアからの読み出しと判断されない場合、読み出し許可信号は読み出し制御部４ａに出力されない。
【００３１】
読み出し許可信号が出力されると、データバス５ｂを介して命令信号ＭＲＳがＣＰＵ２ａに入力されてプログラム実行される。読み出し許可信号が出力されない場合、正しい命令データがフェッチされず、例えば、セキュリティ解除プログラムの実行がされない。
【００３２】
上述したように、本実施例の情報処理装置では、ＣＰＵ２ａ、メモリ３ａ、及び読み出し制御部４ａが設けられ、ＣＰＵ２ａには、命令列１６、判別回路１７ａ、フェッチアドレス１８、判別回路１７ａが設けられている。判別回路１７ａは、命令アドレスから出力される命令アドレス信号ＭＡＳとフェッチアドレス１８から出力されるフェッチアドレス信号ＦＡＳを入力し、同一格納用メモリエリアからの読み出しと判断された場合のみ読み出し許可信号を読み出し制御部４ａに出力する。読み出し制御部４は、判別回路１７ａから出力される読み出し許可信号にもとづいて、メモリ３ａからのプログラムの読み出しを制御する。
【００３３】
このため、それぞれのアドレスに対応するプログラムのものと判別されたときのみ、そのプログラムが格納されている格納用メモリエリアへの命令フェッチが許可される。
【００３４】
したがって、認証をスキップしてセキュリティ解除命令を直接実行することができなくなり、セキュリティ解除の不正実行が禁止される。また、外部から入力されるデータと内部メモリに記憶されたデータとの比較作業によるセキュリティ解除の不正実行ができなくなる。
【実施例３】
【００３５】
次に、本発明の実施例３に係る情報処理装置について、図面を参照して説明する。図３は情報処理装置を示すブロック図である。本実施例では、メモリエリアのアドレスを管理するアドレスデコーダを設けている。
【００３６】
以下、実施例１と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００３７】
図３に示すように、情報処理装置１ｂには、ＣＰＵ２ａ、メモリ３ａ、読み出し制御部４ａ、及びアドレスデコーダ８が設けられている。情報処理装置１ｂは、マイクロコンピュータである。
【００３８】
ＣＰＵ２ａには、命令列１６、判別回路１７ａ、フェッチアドレス１８、及び命令アドレス１９が設けられている。フェッチアドレス１８は、命令アドレス線７によりメモリ３ａに接続されている。そして、命令列１６から出力されるフェッチ先の命令列信号ＭＪＳを入力し、フェッチ先のフェッチアドレス情報をフェッチアドレス信号ＦＡＳとして判別回路１７ａに出力し、命令列の読み出し先であるフェッチアドレス信号としての命令アドレス信号をメモリ３ａに出力する。
【００３９】
アドレスデコーダ８は、フェッチアドレス１８から出力される命令アドレス信号を入力し、フェッチアドレス情報に対応する格納用メモリエリアを選択するセレクト信号をメモリ３ａに出力してフェッチアドレスからどの格納用メモリエリアを使用するかの判別を行う。このセレクト信号にもとづいて、読み出された格納用メモリエリアに格納されるプログラムの読み出し実行が行われる。
【００４０】
上述したように、本実施例の情報処理装置では、ＣＰＵ２ａ、メモリ３ａ、読み出し制御部４ａ、及びアドレスデコーダ８が設けられ、ＣＰＵ２ａには、命令列１６、判別回路１７ａ、フェッチアドレス１８、判別回路１７ａが設けられている。判別回路１７ａは、命令アドレスから出力される命令アドレス信号ＭＡＳとフェッチアドレス１８から出力されるフェッチアドレス信号ＦＡＳを入力し、同一格納用メモリエリアからの読み出しと判断された場合のみ読み出し許可信号を読み出し制御部４ａに出力する。読み出し制御部４は、判別回路１７ａから出力される読み出し許可信号にもとづいて、メモリ３ａからのプログラムの読み出しを制御する。アドレスデコーダ８は、フェッチアドレスからどの格納用メモリエリアを使用するかの判別を行うためのセレクト信号を出力する。
【００４１】
このため、それぞれのアドレスに対応するプログラムのものと判別されたときのみ、そのプログラムが格納されている格納用メモリエリアへの命令フェッチが許可される。そして、特定メモリエリア外からの実行を禁止できる。
【００４２】
したがって、認証をスキップしてセキュリティ解除命令を直接実行することができなくなり、セキュリティ解除の不正実行が禁止される。また、外部から入力されるデータによって内部メモリに記憶されたデータとの比較作業によるセキュリティ解除の不正実行ができなくなる。
【実施例４】
【００４３】
次に、本発明の実施例４に係る情報処理装置について、図面を参照して説明する。図４は情報処理装置を示すブロック図である。本実施例では、アドレスデコーダに判別回路と読み出し制御回路を設けている。
【００４４】
以下、実施例１と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００４５】
図４に示すように、情報処理装置１ｃには、ＣＰＵ２ｂ、メモリ３ａ、及びアドレスデコーダ２１が設けられている。情報処理装置１ｃは、マイクロコンピュータである。
【００４６】
ＣＰＵ２ｂには、命令列１６及びフェッチアドレス１８が設けられている。ＣＰＵ２ｂは、情報処理装置１ｃ全体を指揮・統括し、所定の命令にもとづいて、メモリ３ａに格納されているプログラムを呼び出し、解読、計算、読み出しなどの演算処理を行う。
【００４７】
命令列１６は、データバス５ｃを介してメモリ３ａに接続され、メモリ３ａから出力される命令信号ＭＲＳを入力し、次の命令アクセス用のアドレスをフェッチアドレス１８に出力する。フェッチアドレス１８は、命令アドレス線７によりメモリ３ａに接続されている。そして、命令列１６から出力されるフェッチ先のアドレス信号としての命令列信号ＭＪＳを入力し、命令列の読み出し先であるフェッチアドレス信号としての命令アドレス信号をメモリ３ａ及びアドレスデコーダ２１に出力する。
【００４８】
アドレスデコーダ２１には、判別回路１７ｂ、フェッチアドレス１８ａ、命令アドレス保持回路２２、及び読み出し制御回路２３が設けられている。
【００４９】
フェッチアドレス１８ａは、命令アドレス信号を入力し、フェッチ先のフェッチアドレス情報をフェッチアドレス信号ＦＡＳとして判別回路１７ｂに出力し、フェッチアドレス信号ＦＡＳＳを命令アドレス保持回路２２に出力する。命令アドレス保持回路２２は、フェッチアドレス信号ＦＡＳＳを入力し、実行中の命令アドレスとして命令アドレス信号ＭＡＳを判別回路１７ｂに出力する。
【００５０】
判別回路１７ｂは、次にフェッチしようとしているフェッチアドレスとしてフェッチアドレス信号ＦＡＳと実行中の命令アドレスとして命令アドレス信号ＭＡＳを入力し、同一格納用メモリエリアからの読み出しかどうかを判別する判別信号ＨＳＳを生成し、読み出し制御回路２３に出力する。読み出し制御回路２３は、判別信号ＨＳＳを入力し、フェッチアドレス情報に対応する格納用メモリエリアを選択するセレクト信号をメモリ３ａに出力する。
【００５１】
次に、情報処理装置の動作について図５乃至図７を参照して説明する。図５は情報処理装置の動作を示すフローチャート、図６は情報処理装置の命令データの読み出し実行を示すタイミングチャート、図７は情報処理装置のセキュリティ実行を示すタイミングチャートである。
【００５２】
図５に示すように、まず、データバス５ｃを介してメモリ３ａから読み出された命令（命令信号ＭＲＳ）がＣＰＵ２ｂでフェッチされる（ステップＳ１）。次に、命令フェッチされた命令がジャンプ命令かどうかを判別する（ステップＳ２）。
【００５３】
続いて、ジャンプ命令でない場合、読み出し制御回路２３から出力されるセレクト信号にもとづいて、読み出された命令の格納用メモリエリアに格納されているプログラムの読み出し実行が行われる（ステップＳ３）。
【００５４】
そして、ジャンプ命令である場合、読み出し対象が格納されているメモリエリアが同一格納用メモリエリア内かどうかの判別を判別回路１７ｂで行う（ステップＳ４）。
【００５５】
次に、同一格納用メモリエリア内の場合、図６に示すように、例えば、情報処理装置１ｃ内部で生成されるクロック信号の立ち上がりエッジ（“Ｌｏｗ”レベルから“Ｈｉｇｈ”レベルに変化）により、例えば、１番目の格納用メモリエリア１１に格納されているブロック１の命令アドレス（ＢＬＫ１（Ａ０）、ＢＬＫ１（Ａ０＋４）、及びジャンプしたＢＬＫ１（Ａ２））と、２番目の格納用メモリエリアに格納されＢＬＫ１（Ａ２）と連続的であるブロック２の命令アドレス（ＢＬＫ２（Ａ２＋４））とがＣＰＵ２ｂから出力される。
【００５６】
出力された命令アドレスは、フェッチアドレス１８からアドレスデコーダ２１とメモリ３ａに入力される。メモリ３ａではこれらの命令アドレス（ＢＬＫ１（Ａ０））が命令１、命令アドレス（ＢＬＫ１（Ａ０＋４））が命令２、命令アドレス（ＢＬＫ１（Ａ２））が命令３、命令アドレス（ＢＬＫ２（Ａ２＋４））が命令４を出力し、それぞれ命令データ信号が生成される。アドレスデコーダ２１では、これらの命令アドレスから、セレクト信号がメモリ３ａに出力される。具体的には、セレクト信号１は、命令アドレスＡ０出力前に“Ｈｉｇｈ”レベルから“Ｌｏｗ”レベルに変化し、命令アドレスＡ０＋４出力後に“Ｌｏｗ”レベルから“Ｈｉｇｈ”レベルに変化し、命令アドレスＡ２出力前に“Ｈｉｇｈ”レベルから“Ｌｏｗ”レベルに変化し、命令アドレスＡ２出力後に“Ｌｏｗ”レベルから“Ｈｉｇｈ”レベルに変化する。一方、セレクト信号２は、命令アドレスＡ２＋４出力前に“Ｈｉｇｈ”レベルから“Ｌｏｗ”レベルに変化し、命令アドレスＡ２＋４出力後に“Ｌｏｗ”レベルから“Ｈｉｇｈ”レベルに変化する。
【００５７】
このため、同一格納用メモリエリア内での連続動作である命令アドレス（ＢＬＫ１（Ａ０））、命令アドレス（ＢＬＫ１（Ａ０＋４））よる判定が行われ、読み出し許可信号は許可信号レベルの“Ｈｉｇｈ”レベル（ｅｎａｂｌｅ信号レベル）となり、正常実行される。そして、格納用メモリエリアを跨いでの連続動作である命令アドレス（ＢＬＫ１（Ａ２））、命令アドレス（ＢＬＫ２（Ａ２＋４））よる判定が行われ、読み出し許可信号は許可信号レベルの“Ｈｉｇｈ”レベルとなり、正常実行される。なお、同一格納用メモリエリア内でのジャンプ動作も正常実行される（ステップＳ５）。
【００５８】
続いて、格納用メモリエリアが異なる場合、図７に示すように、情報処理装置１ｃ内部で生成されるクロック信号の立ち上がりエッジにより、例えば、１番目の格納用メモリエリア１１に格納されているブロック１の命令アドレス（ＢＬＫ１（Ａ４）と、２番目の格納用メモリエリアに格納され、ジャンプされたブロック２の命令アドレス（ＢＬＫ２（Ａ５））とがＣＰＵ２ｂから出力される。
【００５９】
出力された命令アドレスは、フェッチアドレス１８からアドレスデコーダ２１とメモリ３ａに入力される。メモリ３ａではこれらの命令アドレス（ＢＬＫ１（Ａ４））が命令５、命令アドレス（ＢＬＫ２（Ａ５））がダミーを出力し、それぞれ命令データ信号が生成される。ここで、ダミーとは認識されない命令のことである（ステップＳ６）。
【００６０】
アドレスデコーダ２１では、これらの命令アドレスから、セレクト信号がメモリ３ａに出力される。具体的には、セレクト信号１は、命令アドレスＡ４出力前に“Ｈｉｇｈ”レベルから“Ｌｏｗ”レベルに変化し、命令アドレスＡ４出力後に“Ｌｏｗ”レベルから“Ｈｉｇｈ”レベルに変化し、これ以降“Ｈｉｇｈ”レベルを維持する。
【００６１】
一方、セレクト信号２は、“Ｈｉｇｈ”レベルを維持する。即ち、命令アドレスＡ５出力前での“Ｈｉｇｈ”レベルから“Ｌｏｗ”レベル、及びダミーとなる命令アドレスＡ５出力前での“Ｌｏｗ”レベルから“Ｈｉｇｈ”レベルへの変化は発生しない（セレクト信号１がネゲートされる）。
【００６２】
このため、格納用メモリエリアを跨いでのジャンプ動作である命令アドレス（ＢＬＫ１（Ａ４））、命令アドレス（ＢＬＫ２（Ａ５））よる判定が行われ、命令５の開始からダミー開始までの間読み出し許可信号は不許可信号レベルの“Ｌｏｗ”レベル（ｄｉｓａｂｌｅ信号レベル）となり、正常実行の代わりにセキュリティ実行される（ステップＳ７）。
【００６３】
上述したように、本実施例の情報処理装置では、ＣＰＵ２ｂ、メモリ３ａ、及びアドレスデコーダ２１が設けられている。ＣＰＵ２ｂには、命令列１６及びフェッチアドレス１８が設けられ、アドレスデコーダ２１には判別回路１７ｂ、フェッチアドレス１８ａ、命令アドレス保持回路２２、及び読み出し制御回路２３が設けられている。判別回路１７ａは、命令アドレス信号ＭＡＳとフェッチアドレス信号ＦＡＳを入力し、同一格納用メモリエリアからの読み出しかを判別する判別信号ＨＳＳを読み出し制御回路２３に出力する。読み出し制御回路２３は、判別信号ＨＳＳを入力し、フェッチアドレス情報に対応する格納用メモリエリアを選択するセレクト信号をメモリ３ａに出力する。
【００６４】
この場合、同一格納用メモリエリア内とメモリエリアを跨いでの連続動作の場合、そのプログラムが格納されている格納用メモリエリアへの命令フェッチが許可される。
【００６５】
したがって、認証をスキップしてセキュリティ解除命令を直接実行することができなくなり、セキュリティ解除の不正実行が禁止される。また、外部から入力されるデータと内部メモリに記憶されたデータとの比較作業によるセキュリティ解除の不正実行ができなくなる。
【実施例５】
【００６６】
次に、本発明の実施例５に係る情報処理装置について、図面を参照して説明する。図８は情報処理装置を示すブロック図である。本実施例では、プログラム実行アドレス用プログラムカウンタと実行命令用の命令コードが設けられている。
【００６７】
以下、実施例１と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００６８】
図８に示すように、情報処理装置１ｄには、メモリ３ｂ、読み出し制御回路２３ａ、命令コード３１、プログラムカウンタ３２、アドレス比較器３３、加算器３４、加算器３５、及びセレクタ３６が設けられている。情報処理装置１ｄは、マイクロコンピュータである。ここで、読み出し制御回路２３ａ及びアドレス比較器３３以外は、一般的に図示しないＣＰＵ内部に設けられている。
【００６９】
メモリ３ｂには、１番目のメモリエリア１１ａ、・・・ｎ番目のメモリエリア１２ａが設けられている。メモリ３ｂは、例えば、フラッシュＲＯＭからなり、複数の格納用メモリエリア毎に、それぞれ所定のプログラムを格納している。
【００７０】
読み出し制御回路２３ａは、命令データ線１０により命令コード３１に接続されている。そして、メモリ３ｂから出力されるデータ信号などのメモリ出力信号ＭＭＳを入力し、命令データ線１０を介して命令データ信号を命令コード３１に出力し、アドレス比較器３３から出力される読み出し許可信号にもとづいてプログラムの読み出しを制御する。
【００７１】
命令コード３１は、命令データ信号を入力し、命令コード信号ＫＫＳをアドレス比較器３３に出力する。なお、命令コード３１は実施例１乃至４での命令列に該当し、命令コード信号ＫＫＳは実施例１乃至４での命令列信号に該当する。
【００７２】
プログラムカウンタ３２は、命令アドレス線７を介してメモリ３ｂ及びセレクタ３６に接続されている。そして、命令アドレス線７から命令アドレス信号を入力し、プログラム実行アドレス信号ＰＪＡＳをアドレス比較器３３及び加算器３４に出力する。なお、プログラムカウンタ３２は実施例２及び３での命令アドレスに該当し、命令コードが格納されている命令アドレス情報をプログラム実行アドレス信号ＰＪＡＳとして出力する。
【００７３】
アドレス比較器３３は、命令コード信号ＫＫＳ、プログラム実行アドレス信号ＰＪＡＳ、及び加算器３５から出力される命令ジャンプアドレス信号ＭＪＵＳを入力し、読み出し許可信号を出力する。
【００７４】
加算器３４は、プログラム実行アドレス信号ＰＪＡＳと命令アドレス１信号を入力し、加算処理して連続的な命令フェッチのフェッチアドレス信号ＦＡＪＳを加算器３５及びセレクタ３６に出力する。加算器３５は、フェッチアドレス信号ＦＡＪＳと命令ジャンプである命令アドレス２信号を入力し、加算処理して命令ジャンプの命令フェッチのフェッチアドレスとしての命令ジャンプアドレス信号ＭＪＵＳをアドレス比較器３３及びセレクタ３６に出力する。
【００７５】
セレクタ３６は、フェッチアドレス信号ＦＡＪＳと命令ジャンプアドレス信号ＭＪＵＳを入力し、選択された信号を命令アドレス信号としてメモリ３ｂ及びプログラムカウンタ３２に出力する。
【００７６】
命令ジャンプを発生させない命令の場合、プログラムカウンタの値に命令アドレス分を加算器３４で加算し、次のプログラムカウンタの値を生成する。また、命令ジャンプを発生させる命令の場合、次のプログラムカウンタの値にジャンプ分のオフセットを加算器３５で加算し、ジャンプの成立／不成立によりセレクタ３６が切り替わり、連続的なフェッチアドレスかジャンプ先のアドレスかを選択する。
【００７７】
ここで、命令ジャンプを発生させる命令が実行された場合、プログラムカウンタの値と加算器３５から出力される命令ジャンプ信号がアドレス比較器３３に入力され、同一メモリエリアからの読み出し（命令フェッチ）かどうかの判別が行われる。禁止したメモリエリアからの命令フェッチである場合には、読み出し許可信号が読み出し実行が許可されない信号レベル（ｄｉｓａｂｌｅ信号レベル）に変更されセキュリティ実行が行われる。
【００７８】
上述したように、本実施例の情報処理装置では、メモリ３ｂ、読み出し制御回路２３ａ、命令コード３１、プログラムカウンタ３２、アドレス比較器３３、加算器３４、加算器３５、及びセレクタ３６が設けられている。アドレス比較器３３は、命令コード信号ＫＫＳ、プログラム実行アドレス信号ＰＪＡＳ、及び加算器３５から出力される命令ジャンプアドレス信号ＭＪＵＳを入力し、読み出し許可信号を出力する。読み出し制御回路２３ａは、メモリ出力信号ＭＭＳを入力し、命令データ線１０を介して命令データ信号を命令コード３１に出力し、アドレス比較器３３から出力される読み出し許可信号にもとづいてプログラムの読み出しを制御する。
【００７９】
このため、それぞれのアドレスに対応するプログラムのものと判別されたときのみ、そのプログラムが格納されている格納用メモリエリアへの命令フェッチが許可される。
【００８０】
したがって、認証をスキップしてセキュリティ解除命令を直接実行することができなくなり、セキュリティ解除の不正実行が禁止される。また、外部から入力されるデータと内部メモリに記憶されたデータとの比較作業によるセキュリティ解除の不正実行ができなくなる。
【００８１】
本発明は、上記実施例に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更してもよい。
【００８２】
例えば、実施例１乃至３では判別回路をＣＰＵ内部に設けているが、メモリ内部などに設けてもよい。また、実施例４では、読み出し制御回路をアドレスデコーダ内部に設けているが、メモリやＣＰＵ内部などに設けてもよい。更に、実施例５では、読み出し制御回路２３ａ及びアドレス比較器３３をＣＰＵ内部に設けているが、メモリ内部などに設けてもよい。
【００８３】
本発明は、以下の付記に記載されているような構成が考えられる。  
（付記１）  所定のプログラムを格納するメモリエリアが複数設けられたメモリと、前記プログラムの読み出しに用いられる命令アドレス信号にもとづいて命令列信号を生成する命令コードと、前記プログラムの読み出しに用いられる命令アドレス信号を生成するプログラムカウンタと、命令ジャンプ信号を生成する命令ジャンプ生成手段と、前記命令列信号、前記命令アドレス信号、及び前記ジャンプ信号を入力し、命令ジャンプを発生させる命令実行の場合に同一メモリエリアからの読み出しかを判別するアドレス比較器と、前記アドレス比較器から出力される前記読み出し許可信号にもとづいて、同一メモリエリアからの読み出しのときに前記メモリエリアに格納されているプログラムを読み出し、禁止したメモリエリアからの読み出しのときにプログラムの読み出しを禁止する読み出し制御手段とを具備する情報処理装置。
【００８４】
（付記２）  前記命令ジャンプ生成手段は、前記プログラムカウンタから出力される命令アドレス信号と他の命令アドレス信号を加算処理して連続的なフェッチアドレス信号を生成する第１の加算器と、前記フェッチアドレス信号と命令ジャンプである命令アドレス信号を加算処理して命令ジャンプ信号を生成する第２の加算器とを具備する付記１記載の情報処理装置。
【００８５】
（付記３）  所定のプログラムを格納するメモリエリアが複数設けられ、前記メモリエリアの判別に用いられ、それぞれ標識が異なる複数の判別標識を有するメモリと、前記プログラムを読み出して、所定の命令にもとづいて演算処理を行い、前記判別標識にもとづいてメモリエリア判別を行う判別回路を有するＣＰＵと、前記判別回路の前記メモリエリア判別結果にもとづいて、前記判別標識に対応する前記メモリエリアに格納されているプログラムを読み出し、前記判別標識に対応しないメモリエリアに格納されている他のプログラムの読み出しを禁止する読み出し制御部とを具備する情報処理装置。
【００８６】
（付記４）  所定のプログラムを格納するメモリエリアが複数設けられたメモリと、前記プログラムを読み出して、所定の命令にもとづいて演算処理を行い、前記プログラムの読み出しに用いられる命令列信号を生成する命令列と、前記プログラムの読み出しに用いられる命令アドレス信号を生成する命令アドレスと、前記命令列信号を入力して命令列の読み出しであるフェッチアドレス信号を生成するフェッチアドレスと、前記命令アドレス信号と前記フェッチアドレス信号を入力し、同一メモリエリアからの読み出しと判断した場合に読み出し許可信号を生成する判別回路とを有するＣＰＵと、前記判別回路から出力される前記読み出し許可信号にもとづいて、前記メモリエリアに格納されているプログラムを読み出し、他のメモリエリアに格納されているプログラムの読み出しを禁止する読み出し制御部とを具備することを特徴とする情報処理装置。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施例１に係る情報処理装置を示すブロック図。
【図２】本発明の実施例２に係る情報処理装置を示すブロック図。
【図３】本発明の実施例３に係る情報処理装置を示すブロック図。
【図４】本発明の実施例４に係る情報処理装置を示すブロック図。
【図５】本発明の実施例４に係る情報処理装置の動作を示すフローチャート。
【図６】本発明の実施例４に係る情報処理装置の命令データの読み出し実行を示すタイミングチャート。
【図７】本発明の実施例４に係る情報処理装置のセキュリティ実行を示すタイミングチャート。
【図８】本発明の実施例５に係る情報処理装置を示すブロック図。
【符号の説明】
【００８８】
１ａ、１ｂ、１ｃ、１ｄ  情報処理装置
２、２ａ  ＣＰＵ部
３、３ａ、３ｂ  メモリ
４、４ａ  読み出し制御部
５、５ａ、５ｂ、５ｃ  データバス
６  アドレス線
７  命令アドレス線
８、２１  アドレスデコーダ
１０  命令データ線
１１  １番目の格納用メモリエリア
１１ａ  １番目のメモリエリア
１２  ｎ番目の格納用メモリエリア
１２ｂ  ｎ番目のメモリエリア
１３  １番目の判別標識
１４  ｎ番目の判別標識
１５  判別ｂｉｔ
１６  命令列
１７、１７ａ、１７ｂ  判別回路
１８、１８ａ  フェッチアドレス
１９  命令アドレス
２２  命令アドレス保持回路
２３、２３ａ  読み出し制御回路
３１  命令コード
３２  プログラムカウンタ
３３  アドレス比較器
３４、３５  加算器
３６  セレクタ
ＦＡＪＳ  ＦＡＳ、ＦＡＳＳ  フェッチアドレス信号
ＨＢＳ  判別標識信号
ＨＪＳ  判別ｂｉｔ信号
ＨＳＳ  判別信号
ＫＫＳ  命令コード信号
ＭＡＳ  命令アドレス信号
ＭＪＳ  命令列信号
ＭＪＵＳ  命令ジャンプアドレス信号
ＭＭＳ  メモリ出力信号
ＭＲＳ  命令信号
ＰＪＡＳ  プログラム実行アドレス信号
【図１】
0004828996.tif 000002
【図２】
0004828996.tif 000003
【図３】
0004828996.tif 000004
【図４】
0004828996.tif 000005
【図５】
0004828996.tif 000006
【図６】
0004828996.tif 000007
【図７】
0004828996.tif 000008
【図８】
0004828996.tif 000009