(57)【特許請求の範囲】
【請求項１】
特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別する発生領域判別手段と、
前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別するパターンコード判別手段と、
例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰する一方、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させる例外処理実行手段と
を具備することを特徴とする特権命令実行制御装置。
【請求項２】
前記特殊なパターンコードは、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードであることを特徴とする請求項１記載の特権命令実行制御装置。
【請求項３】
前記特殊なパターンコードは、前記特権命令のコードに基づいて生成された値を含むことを特徴とする請求項２記載の特権命令実行制御装置。
【請求項４】
前記特殊なパターンコードは、前記特権命令のアドレスに基づいて生成された値を含むことを特徴とする請求項２記載の特権命令実行制御装置。
【請求項５】
特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別し、
前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別し、
例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰し、
例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させることを特徴とする特権命令実行制御方法。
【請求項６】
前記特殊なパターンコードは、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードであることを特徴とする請求項５記載の特権命令実行制御方法。
【請求項７】
前記特殊なパターンコードは、前記特権命令のコードに基づいて生成された値を含むことを特徴とする請求項６記載の特権命令実行制御方法。
【請求項８】
前記特殊なパターンコードは、前記特権命令のアドレスに基づいて生成された値を含むことを特徴とする請求項６記載の特権命令実行制御方法。
【請求項９】
前記特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別するステップと、
前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別するステップと、
例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰するステップと、
例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させるステップと
をコンピュータに実行させることを特徴とする特権命令実行制御プログラム。
【請求項１０】
前記特殊なパターンコードは、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードであることを特徴とする請求項９記載の特権命令実行制御プログラム。
【請求項１１】
前記特権命令のコードに基づいて生成した値と、前記特殊なパターンコードとを比較することにより、前記特殊なパターンコードが付加されているか否かを判別するステップをコンピュータに実行させることを特徴とする請求項１０記載の特権命令実行制御プログラム。
【請求項１２】
前記特権命令のアドレスに基づいて生成した値と、前記特殊なパターンコードとを比較することにより、前記特殊なパターンコードが付加されているか否かを判別するステップをコンピュータに実行させることを特徴とする請求項１０記載の特権命令実行制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、特権命令実行制御装置、特権命令実行制御方法、および特権命令実行制御プログラムに関する。
【０００２】
【従来の技術】
ＰＤＡ、携帯電話などの情報端末においては、オーバヘッドやリソースを軽減するため、ＲＴＯＳ（リアルタイムＯＳ）と一般のアプリケーションとの区別がなく、全てのコードをスーパーバイザ（Supervisor）モードで動作せることがある。このような環境にて、コンテンツ保護を目的としたＤＲＭ（Digital Right Management）を実現するためには、（ａ）ＤＲＭ鍵を扱うハードウェアへのアクセスの制限をかける、（ｂ）ＤＲＭ鍵を扱うハードウェアのドライバコードの解読を防止する、（ｃ）情報端末のシステムの改竄に制限を付ける、などが要求される。
【０００３】
上記ＤＲＭを実装する方法として、（ａ）で述べたＤＲＭ鍵を管理するハードウェアに対するアクセスを制限し、一般のアプリケーションからのアクセスが行なわれないようにすることを考える。この場合、ＣＰＵに、ユーザ／スーパーバイザモードと呼ばれる２つのモードを用意し、ユーザモードで動作している状態では、ＤＲＭ鍵を管理するハードウェアに対するアクセスに制限をかければよい。
【０００４】
【発明が解決しようとする課題】
ところで、上述した情報端末において、ユーザ／スーパーバイザモードを導入し、一般のアプリケーションにユーザモードでの動作権限のみを与えた場合であっても、通常であればスーパーバイザ権限で用いる特権命令、例えば、ＤＲＭ鍵を扱うハードウェアに対しての命令（ＭＭＵ、キャッシュの制御、コプロセッサへの命令）がアプリケーションに含まれていることがある。この場合、一般のアプリケーションから呼び出していた特権命令を実行すると、例外処理が発生してしまう。このため、単にユーザモードを導入し、特権命令の呼び出しに制限をかけてしまうと、一般のアプリケーションの実行に不具合が生じてしまう。
【０００５】
この場合、特権命令を呼び出すコードを修正してＲＴＯＳのシステムコール経由で特権命令を実行すればよいが、バイナリライセンスを受けて容易にその部分を修正することができない場合には問題解決とならない。
【０００６】
そこで本発明は、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができる特権命令実行制御装置、特権命令実行制御方法、および特権命令実行制御プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的達成のため、請求項１記載の発明による特権命令実行制御装置は、特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別する発生領域判別手段と、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別するパターンコード判別手段と、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰する一方、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させる例外処理実行手段とを具備することを特徴とする。
【０００８】
また、好ましい態様として、例えば請求項２記載のように、請求項１記載の特権命令実行制御装置において、前記特殊なパターンコードは、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードであってもよい。
【０００９】
また、好ましい態様として、例えば請求項３記載のように、請求項２記載の特権命令実行制御装置において、前記特殊なパターンコードは、前記特権命令のコードに基づいて生成された値を含むようにしてもよい。
【００１０】
また、好ましい態様として、例えば請求項４記載のように、請求項２記載の特権命令実行制御装置において、前記特殊なパターンコードは、前記特権命令のアドレスに基づいて生成された値を含むようにしてもよい。
【００１１】
また、上記目的達成のため、請求項５記載の発明による特権命令実行制御方法は、特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別し、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別し、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰し、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させることを特徴とする。
【００１２】
また、好ましい態様として、例えば請求項６記載のように、請求項５記載の特権命令実行制御方法において、前記特殊なパターンコードは、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードであってもよい。
【００１３】
また、好ましい態様として、例えば請求項７記載のように、請求項６記載の特権命令実行制御方法において、前記特殊なパターンコードは、前記特権命令のコードに基づいて生成された値を含むようにしてもよい。
【００１４】
また、好ましい態様として、例えば請求項８記載のように、請求項６記載の特権命令実行制御方法において、前記特殊なパターンコードは、前記特権命令のアドレスに基づいて生成された値を含むようにしてもよい。
【００１５】
また、上記目的達成のため、請求項９記載の発明による特権命令実行制御プログラムは、前記特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別するステップと、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別するステップと、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰するステップと、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させるステップとをコンピュータに実行させることを特徴とする。
【００１６】
また、好ましい態様として、例えば請求項１０記載のように、請求項９記載の特権命令実行制御プログラムにおいて、前記特殊なパターンコードは、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードであってもよい。
【００１７】
また、好ましい態様として、例えば請求項１１記載のように、請求項１０記載の特権命令実行制御プログラムにおいて、前記特権命令のコードに基づいて生成した値と、前記特殊なパターンコードとを比較することにより、前記特殊なパターンコードが付加されているか否かを判別するステップをコンピュータに実行させるようにしてもよい。
【００１８】
また、好ましい態様として、例えば請求項１２記載のように、請求項１０記載の特権命令実行制御プログラムにおいて、前記特権命令のアドレスに基づいて生成した値と、前記特殊なパターンコードとを比較することにより、前記特殊なパターンコードが付加されているか否かを判別するステップをコンピュータに実行させるようにしてもよい。
【００１９】
この発明では、発生領域判別手段により、特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別する。また、パターンコード判別手段により、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別する。そして、例外処理実行手段により、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰する一方、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させる。したがって、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することが可能となる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
Ａ．実施形態の構成
図１は、本発明の実施形態による特権命令実行制御方法を適用したＰＤＡの外観を示す斜視図である。図において、ＰＤＡ３０は、片手で把持、および操作が可能な大きさに、その筐体が形成されている。ＰＤＡ３０の上部には、半導体メモリが内蔵されているメモリスティック（商標）３１が挿入されるスロットが設けられている。また、ＰＤＡ３０の下面には、クレードル３５と接続するためのＵＳＢ（Universal Serial Bus）ポート（図示せず）等が設けられており、自身の下面とクレードル３５の上面に接するようにクレードル３５に装着される。
【００２１】
また、ＰＤＡ３０には、表示部３２、キー３３、およびジョグダイヤル３４などが設けられている。表示部３２は、液晶表示装置などの薄型の表示装置で構成され、アイコンや、サムネイル、テキスト（メールを含む）などの画像を表示する。表示部３２の上面には、タッチパッドが設けられており、該タッチパッドを指またはペンなどで押圧することにより、ＰＤＡ３０に所定のデータまたは動作指示が入力される。
【００２２】
キー３３は、入力キーなどから構成され、表示部３２に表示されたアイコンまたはサムネイルの選択などを入力する。ジョグダイヤル３４は、回転操作または本体側への押圧操作に対応して、表示部３２に表示されたアイコンまたはサムネイルの選択などを入力する。
【００２３】
次に、図２は、上記ＰＤＡ３０の構成を示すブロック図である。ＣＰＵ（Central Processing Unit）４０は、発振器４１から供給されるクロック信号に同期して、フラッシュＲＯＭ（Read-only Memory）４２またはＥＤＯ  ＤＲＡＭ（Extended Data Out Dynamic Random-Access Memory）４３に格納されているＲＴＯＳ、または開発されたアプリケーションプログラムなどの各種のプログラムを実行する。
【００２４】
特に、本実施形態では、ＣＰＵ４０は、特権命令を実行して例外処理が発生した際、そのときのアドレスが後述するフラッシュＲＯＭ４２領域であれば、無条件に特権命令を実行して例外から復帰する。一方、そのときのアドレスが後述するＤＲＡＭ４３領域であり、一般のアプリケーションから呼び出し可能な特権命令を呼び出すコードに特殊なパターンコードが付加されている場合には、この特権命令を呼び出すコードは、ＤＲＭ鍵のハードウェアのドライバではなく、システムパッチであると認識して特権命令を実行した後、例外処理から復帰する。さらに、特殊なパターンコードでない場合には、特権命令違反としてエラーを発生させるようになっている。これらについては動作において詳細に説明する。
【００２５】
フラッシュＲＯＭ４２は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）の一種であるフラッシュメモリで構成され、一般的には、ＣＰＵ４０が使用するプログラムや演算用のパラメータのうち、基本的に固定のデータを格納する。ＥＤＯ  ＤＲＡＭ４３は、ＣＰＵ４０の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。
【００２６】
メモリスティックインターフェース４４は、ＰＤＡ３０に装着されているメモリスティック３１からデータを読み出すとともに、ＣＰＵ４０から供給されたデータをメモリスティック３１に書き込む。
【００２７】
ＵＳＢ（Universal Serial Bus）インターフェース４５は、発振器４６から供給されるクロック信号に同期して、接続されているＵＳＢ機器であるドライブ４７からデータまたはプログラムを入力するとともに、ＣＰＵ４０から供給されたデータをドライブ４７に供給する。ＵＳＢインターフェース４５は、発振器４６から供給されるクロック信号に同期して、接続されているＵＳＢ機器であるクレードル３５からデータまたはプログラムを入力するとともに、ＣＰＵ４０から供給されたデータをクレードル３５に供給する。
【００２８】
ドライブ４７は、装着されている磁気ディスク６１、光ディスク６２、光磁気ディスク６３、または半導体メモリ６４に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、ＵＳＢインターフェース４５を介して、接続されているＣＰＵ４０またはＥＤＯ  ＤＲＡＭ４３に供給する。また、ドライブ４７は、装着されている磁気ディスク６１、光ディスク６２、光磁気ディスク６３、または半導体メモリ６４にデータまたはプログラムを記録させる。
【００２９】
上述したフラッシュＲＯＭ４２，ＥＤＯ  ＤＲＡＭ４３、メモリスティックインターフェース４４、およびＵＳＢインターフェース４５は、アドレスバスおよびデータバスを介して、ＣＰＵ４０に接続されている。
【００３０】
表示部４８は、ＬＣＤバスを介して、ＣＰＵ４０からデータを受信し、受信したデータに対応する画像または文字などを表示する。タッチパッド制御部４９は、表示部４８の上面に設けられたタッチパッドが操作されたとき、操作に対応したデータ（例えば、タッチされた座標を示す）を表示部４８から受信し、受信したデータに対応する信号を、シリアルバスを介してＣＰＵ４０に供給する。ＥＬ（Electro Luminescence）ドライバ５０は、表示部４８の液晶表示部の裏側に設けられている電界発光素子を動作させ、表示部４８の表示の明るさを制御する。
【００３１】
赤外線通信部５１は、ＵＡＲＴ（Universal asynchronous receiver-transmitter）を介して、ＣＰＵ４０から受信したデータを、赤外線を媒体として、図示せぬ他の機器に送信するとともに、他の機器から送信された赤外線を媒体とするデータを受信して、ＣＰＵ４０に供給する。また、ＰＤＡ３０は、ＵＡＲＴを介して、他の機器と通信することができる。
【００３２】
音声再生部５２は、スピーカ、および音声のデータの復号回路などから構成され、予め記憶している音声のデータ、またはネットワーク４を介して受信した音声のデータなどを復号して、再生し、音声を出力する。例えば、音声再生部５２は、バッファ５３を介して、ＣＰＵ４０から供給された音声のデータを再生して、データに対応する音声を出力する。
【００３３】
キー５４は、入力キーなどで構成され、ＣＰＵ４０に各種の指令を入力するとき、使用者により操作される。ジョグダイヤル３４は、回転操作または本体側への押圧操作に対応するデータをＣＰＵ４０に供給する。
【００３４】
電源回路５５は、装着されているバッテリ５６または接続されているＡＣ（Alternating current）アダプタ５７から供給される電源の電圧を変換して、電源をＣＰＵ４０ないし音声再生部５２のそれぞれに供給する。
【００３５】
Ｂ．実施形態の動作
次に、上述した実施形態の動作について説明する。
上述したＰＤＡ３０において、ユーザ／スーパーバイザモードの導入した場合、特権命令を実行した時点で例外処理が発生し、従来通りの処理が行なわれなくなる。これをアプリケーションのコードを修正することなく対応させるためには、この例外処理にて実行しようとしていた特権命令を処理し、例外処理が発生した場所へ復帰すれば、対応することが可能となる。
【００３６】
しかしながら、ここで、問題となるのは、ＤＲＭ鍵のハードウェアへのアクセスに関しては、特定のＲＴＯＳのシステムコール経由でのみ実行可能とし、例外処理のハンドリングで処理してはいけないということである。そのため、特権命令がシステムに付随のコードから呼ばれているか、ユーザが後から追加したコードから呼ばれているかのチェックが必要となる。これは、特権命令のアドレスがフラッシュＲＯＭ４２の領域であるか、ＤＲＡＭ４３の領域であるかを調べることでチェック可能である。
【００３７】
システムに不具合があった場合、機能拡張を行なう場合には、システムにパッチを当てて対処することが可能である。このシステムパッチは、ＤＲＡＭ４３上に読み込まれるが、このシステムパッチから特権命令を呼び出す可能性がある。そのため、ＤＲＡＭ４３の領域に置かれた特権命令に対して呼び出されてもよい特権命令とそうでないものとを区別して、ＤＲＭ鍵のハードウェアへのアクセスのみ禁止する必要がある。
【００３８】
そこで、ＤＲＡＭ４３上に配置される一般のアプリケーションから呼び出し可能な特権命令を呼び出すコードに特殊なパターンを付加することにより、ＤＲＭ鍵のハードウェアへアクセス可能な特権命令と区別させる。例えば、図３に示すように、ＤＲＭ鍵のハードウェアへアクセスする手段を提供しない特権命令（ＭＳＲ  ＣＰＳＲ，ＲＯ）の直前に、ＮＯＰ命令を挿入する。
【００３９】
例えば、ＣＰＵ４０にＡＲＭ（商標登録）を利用している場合、ユーザモードにて上記特権命令（ＭＳＲ  ＣＰＳＲ，ＲＯ）を実行すると、例外処理が発生する。この時点で、レジスタＲ１４は、特権命令のアドレス＋４を指している。このアドレスがフラッシュＲＯＭ４２領域であれば、無条件に特権命令（ＭＳＲ  ＣＰＳＲ，ＲＯ）を実行して例外処理から復帰する。一方、ＤＲＡＭ４３領域であっても、レジスタＲ１４−８が指す命令がＮＯＰ命令であれば、このコードは、ＤＲＭ鍵のハードウェアのドライバではなく、システムパッチであると認識して特権命令（ＭＳＲ  ＣＰＳＲ，ＲＯ）を実行して例外処理から復帰する。一方、ＤＲＡＭ４３領域であり、レジスタＲ１４−８が指す命令がＮＯＰ命令でない場合には、特権命令違反としてエラーを発生させる。
【００４０】
Ｃ．変形例
次に、本発明の変形例について説明する。上述した実施形態では、単純に特権命令の直前にＮＯＰ命令を挿入したが、単純にＮＯＰ命令を挿入するだけであれば、システムパッチのコードを解読した場合、容易に模擬することが可能である。そこで、本変形例では、さらに、耐タンパー性を加えるべく、ＮＯＰ命令の代わりに、ＣＰＵ４０の実行に影響を与えないコードを付加し、そのコードを、一意に想定できないように工夫する。
【００４１】
ＣＰＵ４０としてＡＲＭを用いた場合、ＡＲＭの命令セットには、ＭＳＢ４ビットに条件を付け、その条件が満たされた場合にのみ実行させることができるものがある。以下の例では、直前のＣＭＰ命令により必ずＺフラグがセットされるため、ＡＲＭ命令のＭＳＢ４ビットが０００１ｂであれば、その命令を実行しない。そのため、その命令の２８ビットには、自由な値を設定することが可能である。
【００４２】
そこで、図４に示すように、ＭＳＲ命令のコードから導かれる値や、ＭＳＲ命令のアドレスなどから得られる、２８ビットを作成してＣＭＰ命令の次に挿入する（図示の「ＸＸＸＮＥ  ＸＸＸＸＸ」）。これによって、ＤＲＡＭ４３上に置かれたシステムパッチ以外からユーザモードで特権命令を実行することが困難となる。
【００４３】
ここで、図５は、本変形例の動作を説明するためのフローチャートである。まず、ユーザモードにおいて、一般のアプリケーションが特権命令（ＭＳＲ  ＣＰＳＲ，Ｒ０）を実行し、例外処理が発生すると、フラッシュＲＯＭ４２の領域であるか否かを判断する（ステップＳ１０）。ここで、フラッシュＲＯＭ４２の領域である場合には、特権命令（ＭＳＲ  ＣＰＳＲ，Ｒ０）を実行して復帰する（ステップＳ２０）。
【００４４】
一方、フラッシュＲＯＭ４２の領域でない場合には、Ｒ１４−１２がＣＭＰ  Ｒ０，Ｒ０であるか否かを判断する（ステップＳ１２）。そして、Ｒ１４−１２がＣＭＰ  Ｒ０，Ｒ０でない場合には、通常の例外処理を実行する（ステップＳ１８）。
【００４５】
一方、Ｒ１４−１２がＣＭＰ  Ｒ０，Ｒ０である場合には、特権命令（ＭＳＲＣＰＳＲ，Ｒ０）とそのアドレスから２８ビットを生成し（ステップＳ１４）、Ｒ１４−８の命令の下位２８ビットと等しいか否かを判断する（ステップＳ１６）。そして、双方が等しければ、特権命令（ＭＳＲ  ＣＰＳＲ，Ｒ０）を実行して復帰する（ステップＳ２０）。一方、双方が等しくなければ、通常の例外処理を実行する（ステップＳ１８）。
【００４６】
上述した実施形態によれば、ユーザ／スーパーバイザモードを想定しないシステムにおいて、ＤＲＭの実装に必要な機構を提供することができる。また、一般のアプリケーションおよびシステムの書き換えを最低限に抑えることができる。さらに、ある程度の耐タンパー性を実現しつつ、例外処理で特権命令を実行するか否かを容易にチェックすることができる。
【００４７】
【発明の効果】
請求項１記載の発明によれば、発生領域判別手段により、特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別し、パターンコード判別手段により、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別し、例外処理実行手段により、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰する一方、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させるようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００４８】
また、請求項２記載の発明によれば、前記特殊なパターンコードを、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードとしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００４９】
また、請求項３記載の発明によれば、前記特殊なパターンコードに前記特権命令のコードに基づいて生成された値を含むようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５０】
また、請求項４記載の発明によれば、前記特殊なパターンコードに前記特権命令のアドレスに基づいて生成された値を含むようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５１】
また、請求項５記載の発明によれば、特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別し、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別し、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰し、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させるようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５２】
また、請求項６記載の発明によれば、前記特殊なパターンコードを、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードとしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５３】
また、請求項７記載の発明によれば、前記特殊なパターンコードに前記特権命令のコードに基づいて生成された値を含むようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５４】
また、請求項８記載の発明によれば、前記特殊なパターンコードに前記特権命令のアドレスに基づいて生成された値を含むようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５５】
また、請求項９記載の発明によれば、前記特権命令を実行して例外処理が発生した際、そのときのアドレスがＲＯＭ領域、あるいはＲＡＭ領域であるかを判別するステップと、前記特権命令を呼び出すコードに対応付けて特殊なパターンコードが付加されているか否かを判別するステップと、例外処理が発生した際のアドレスがＲＯＭ領域である場合、あるいはＲＡＭ領域であっても、前記特殊なパターンコードが付加されている場合には、前記特権命令を実行した後、例外処理から復帰するステップと、例外処理が発生した際のアドレスがＲＡＭ領域であって、前記特殊なパターンコードが付加されていない場合には、特権命令違反としてエラーを発生させるステップとをコンピュータに実行させるようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５６】
また、請求項１０記載の発明によれば、前記特殊なパターンコードを、前記特権命令の直前に挿入されたＣＰＵの実行に影響を与えないコードとしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５７】
また、請求項１１記載の発明によれば、前記特権命令のコードに基づいて生成した値と、前記特殊なパターンコードとを比較することにより、前記特殊なパターンコードが付加されているか否かを判別するステップをコンピュータに実行させるようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【００５８】
また、請求項１２記載の発明によれば、前記特権命令のアドレスに基づいて生成した値と、前記特殊なパターンコードとを比較することにより、前記特殊なパターンコードが付加されているか否かを判別するステップをコンピュータに実行させるようにしたので、アプリケーション実行時に特権命令の実行による例外処理発生時に、ＤＲＭを侵さない範囲の実行可能な特権命令であるか否かを容易に判別することができるという利点が得られる。
【図面の簡単な説明】
【図１】本発明の実施形態による特権命令実行制御方法を適用したＰＤＡの外観を示す斜視図である。
【図２】ＰＤＡ３０の構成を示すブロック図である。
【図３】本発明の実施形態による特権命令実行制御方法を説明するための概念図である。
【図４】本発明の変形例による特権命令実行制御方法を説明するための概念図である。
【図５】本変形例の動作を説明するためのフローチャートである。
【符号の説明】
３１……メモリスティック、４０……ＣＰＵ（発生領域判別手段、パターンコード判別手段、例外処理実行手段）、４２……フラッシュＲＯＭ、４３……ＥＤＯ  ＤＲＡＭ、４４……メモリスティックＩ／Ｆ
【図１】
0003763142.tif 000002
【図２】
0003763142.tif 000003
【図３】
0003763142.tif 000004
【図４】
0003763142.tif 000005
【図５】
0003763142.tif 000006