(57)【要約】複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持部３１２と、動作モード保持部３１２により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持部３１３と、複数の動作モードのうち動的に指定された動作モードを動作モード保持部３１２に追加し、追加された動作モードに対応する命令を使用可能命令保持部３１３に設定し、さらに動作モード保持部３１２に保持された動作モードに対応し、命令の実行に用いられるファームウェアを外部から取得する命令実行部３１５とを備えている。
2003046715.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持手段と、
前記動作モード保持手段により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持手段と、
前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定する動作モード追加手段と、
前記動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられるファームウェアを外部から取得するファームウェア取得手段と、
を備えたことを特徴とする中央演算装置。
【請求項２】
前記ファームウェア取得手段は、暗号化されたファームウェアを外部から取得した後、該ファームウェアを復号することを特徴とする請求の範囲第１項に記載の中央演算装置。
【請求項３】
前記ファームウェア取得手段は、電子署名付きのファームウェアを外部から取得した後、該ファームウェアを認証することを特徴とする請求の範囲第１項に記載の中央演算装置。
【請求項４】
前記動作モードに応じて、命令の実行に際して利用される各種資源に対するアクセス制御を行うアクセス制御手段を備えたことを特徴とする請求の範囲第１項〜第３項のいずれか一つに記載の中央演算装置。
【請求項５】
前記動作モード追加手段は、前記動的に指定された動作モードの命令数が、動作モード保持手段に既に保持されている動作モードの命令数より多い場合に限り、前記動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定することを特徴とする請求の範囲第１項〜第３項のいずれか一つに記載の中央演算装置。
【請求項６】
前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段から削除する動作モード削除手段と、前記削除された動作モードに対応するファームウェアを削除するファームウェア削除手段とを備えたことを特徴とする請求の範囲第１項〜第３項のいずれか一つに記載の中央演算装置。
【請求項７】
前記動作モード保持手段に保持された動作モードに対応する命令に関してエラーが発生した場合、当該命令の実行を外部のエミュレータに依頼する実行依頼手段を備えたことを特徴とする請求の範囲第１項〜第３項のいずれか一つに記載の中央演算装置。
【請求項８】
複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持手段と、
前記動作モード保持手段により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持手段と、
前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定する動作モード追加手段と、
前記動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられる論理回路を生成するための論理回路データを外部から取得する論理回路データ取得手段と、
を備えたことを特徴とする中央演算装置。
【請求項９】
前記命令の実行に際して、該命令に対応する論理回路データに基づいて、動的に論理回路を生成する論理回路生成手段を備えたことを特徴とする請求の範囲第８項に記載の中央演算装置。
【請求項１０】
コンピュータを、
複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持手段、
前記動作モード保持手段により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持手段、
前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定する動作モード追加手段、
前記動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられるファームウェアを外部から取得するファームウェア取得手段、
として機能させるための演算プログラム。
【発明の詳細な説明】
技術分野
本発明は、例えば、セキュリティ機能を実現するための中央演算装置および演算プログラムに関するものであり、特に、セキュリティを維持しつつ、拡張性を高めることができる中央演算装置および演算プログラムに関するものである。
背景技術
近年、インターネット上での電子商取引が活発化するに従って、より高度なセキュリティが求められている。従って、電子商取引に用いられる計算機には、認証、暗号化／復号、電子署名生成／検証等の各セキュリティ機能が不可欠となる。理想的には、各セキュリティ機能が独立した複数の計算機からなるセキュリティシステムにより実現されることが望ましい。
第４６図は、上述した従来のセキュリティシステムの構成を示すブロック図である。この図において、計算機１０は、インターネット２０およびイントラネット３０に接続されており、上述したセキュリティ機能としての認証を認証用ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算装置）１１により実現するためのものである。この認証用ＣＰＵ１１は、セキュリティを高めるため、認証用の命令群のみを利用可能に構成されている。
計算機４０は、イントラネット３０に接続されており、セキュリティ機能としての暗号化／復号を暗号化／復号用ＣＰＵ４１により実現するためのものである。この暗号化／復号用ＣＰＵ４１も、セキュリティを高めるため、暗号化／復号固有の命令群のみを利用可能に構成されている。
計算機５０は、イントラネット３０に接続されており、セキュリティ機能としての電子署名生成／検証を電子署名生成／検証用ＣＰＵ５１により実現するためのものである。この電子署名生成／検証用ＣＰＵ５１も、セキュリティを高めるため、電子署名生成／検証固有の命令群のみを利用可能に構成されている。
計算機６０は、イントラネット３０に接続されており、セキュリティ機能以外の一般機能を一般用ＣＰＵ６１により実現するためのものである。一般用ＣＰＵ６１は、一般固有の命令群のみを利用可能に構成されている。このように、従来のセキュリティシステムは、各計算機でセキュリティ機能を実現している。
ところで、前述した従来のセキュリティシステムにおいては、セキュリティを高める目的で各計算機で使用可能な命令群が固定的に設定されているため、拡張性に乏しいという問題があった。
特に、セキュリティ技術の進歩が目覚ましい昨今においては、最新のセキュリティ技術が出現する毎に、新規の命令群を組み込んだ計算機にリプレースする必要があるため、コストが高くつくという問題も発生する。
本発明は、上記に鑑みてなされたもので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができる中央演算装置および演算プログラムを提供することを目的としている。
発明の開示
上記目的を達成するために、本発明は、複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持手段と、前記動作モード保持手段により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持手段と、前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定する動作モード追加手段と、前記動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられるファームウェアを外部から取得するファームウェア取得手段とを備えたことを特徴とする。
また、本発明は、コンピュータを、複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持手段、前記動作モード保持手段により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持手段、前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定する動作モード追加手段、前記動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられるファームウェアを外部から取得するファームウェア取得手段として機能させるための演算プログラムである。
かかる発明によれば、複数の動作モードのうち動的に指定された動作モードを動作モード保持手段に追加し、追加された動作モードに対応する命令を使用可能命令保持手段に設定し、さらに、命令の実行に用いられるファームウェアを外部から取得するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができる。
また、本発明は、複数の動作モードのうち単数または複数の動作モードを保持する動作モード保持手段と、前記動作モード保持手段により保持された動作モードに対応する命令を、使用可能命令として保持する使用可能命令保持手段と、前記複数の動作モードのうち動的に指定された動作モードを前記動作モード保持手段に追加し、追加された動作モードに対応する命令を前記使用可能命令保持手段に設定する動作モード追加手段と、前記動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられる論理回路を生成するための論理回路データを外部から取得する論理回路データ取得手段とを備えたことを特徴とする。
この発明によれば、複数の動作モードのうち動的に指定された動作モードを動作モード保持手段に追加し、追加された動作モードに対応する命令を使用可能命令保持手段に設定し、さらに、動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられる論理回路を生成するための論理回路データを外部から取得するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができる。
発明を実施するための最良の形態
以下、図面を参照して本発明にかかる実施の形態１〜８について詳細に説明する。
（実施の形態１）
第１図は、本発明にかかる実施の形態１の構成を示すブロック図である。この図において、サーバ１００は、各種ファームウェアをクライアント３００へインターネット２００を介して提供する。サーバ１００において、ＣＰＵ１１０は、ファームウェア提供に関する制御を行う。
メモリ１２０は、ＣＰＵ１１０での制御に関する各種データを保持するものであり、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等である。ファームウェア格納部１３０は、後述するＣＰＵ３１０での命令実行に用いられるファームウェアを複数格納している。これらのファームウェアは、ファームウェア番号に対応付けられて、ファームウェア格納部１３０に格納されている。
通信部１４０は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルにしたがって、サーバ１００での通信制御を行う。
クライアント３００は、インターネット２００に接続されており、インターネット２００を介して、サーバ１００からファームウェアをダウンロードする機能と、ファームウェアを用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント３００において、ＣＰＵ３１０は、ファームウェアを動的にダウンロードさせるための制御や、後述する動作モードや命令群の設定等を行う。メモリ３２０は、ＣＰＵ３１０での制御に関する各種データを保持するものであり、例えば、ＲＡＭやＲＯＭ等である。ダウンロード部３３０は、ＣＰＵ３１０の制御により、サーバ１００からファームウェアをダウンロードする。入力部３５０は、キーボード、マウス等の入力デバイスである。表示部３６０は、ＣＰＵ３１０での命令の実行結果等を表示するディスプレイである。
第２図は、第１図に示したＣＰＵ３１０の構成を示すブロック図である。この図において、命令入力部３１１は、命令バスを介して命令を入力し、これを命令実行部３１５および命令使用可否判断部３１４にフェッチする。動作モード保持部３１２は、ＣＰＵ３１０の動作モードを保持する。
第３図には、上記動作モードと命令との対応関係を表す動作モード／命令対応表４００が図示されている。この動作モード／命令対応表４００において、動作モードは、「０」〜「ｋ」とされている。使用可能命令数は、動作モード毎に設定されており、当該動作モード時に命令実行部３１５で使用可能な命令の数である。
例えば、動作モード＝０の場合には、使用可能命令数がｎである。すなわち、動作モード０の場合には、命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）という都合ｎ種類の命令が命令実行部３１５で使用可能である。
また、動作モード＝１の場合には、使用可能命令数がｉである。すなわち、動作モード１の場合には、命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）という都合ｉ種類の命令が命令実行部３１５で使用可能である。また、動作モード＝１のみが設定されている場合、命令実行部３１５では、命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）以外の命令が使用できない。
同様にして、動作モード＝ｋの場合には、使用可能命令数が１である。すなわち、動作モードｋの場合には、命令１（０ｘｆｆ）という都合１種類の命令が命令実行部３１５で使用可能である。また、動作モード＝ｋのみが設定されている場合、命令実行部３１５では、命令１（０ｘｆｆ）以外の命令が使用できない。また、動作モード保持部３１２に設定される動作モードは、動的に追加される。
第２図に戻り、使用可能命令保持部３１３は、動作モード保持部３１２に設定された動作モードに対応する使用可能命令を保持する。
例えば、第３図に示した動作モード＝０が動作モード保持部３１２に設定されている場合、使用可能命令保持部３１３には、動作モード＝０に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）が使用可能命令として保持される。
命令使用可否判断部３１４は、命令入力部３１１にフェッチされた命令が、使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、フェッチされた当該命令が、動作モード／命令対応表４００（第３図参照）を参照して、動作モード保持部３１２に設定されている現在の動作モードで使用可能な命令群に含まれている場合、使用可能と判断する。
一方、フェッチされた命令が当該命令群に含まれていない場合、使用不可と判断する。このように、実施の形態１では、動作モードに応じて使用可能な命令を制限している。
命令実行部３１５は、命令使用可否判断部３１４により使用可能と判断された命令を実行する。また、命令実行部３１５は、当該命令の実行に用いられるファームウェアをファームウェア保持部３１６より取得する。
ファームウェア保持部３１６は、動作モード保持部３１２に設定された動作モードでの命令群に対応するファームウェアを保持する。このファームウェアは、サーバ１００（第１図参照）からダウンロードされたものである。また、動作モードが追加されたことにより新規命令が追加された場合、ファームウェア保持部３１６には、新規のファームウェアが保持される。
データ入出力部３１７は、データバスを介して、命令実行部３１５での命令の実行に必要な各種データを入力する機能と、実行結果を出力する機能とを備えている。
つぎに、実施の形態１の動作について、第４図〜第８図に示したフローチャートを参照しつつ説明する。第４図に示したステップＳＡ１では、ＣＰＵ３１０は、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。通常命令は、後述する動作モード追加命令およびファームウェアダウンロード命令以外の命令であって、ＣＰＵ３１０で実行される命令である。
ステップＳＡ２では、ＣＰＵ３１０は、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。動作モード追加命令は、第３図に示した動作モード／命令対応表４００の動作モードを追加するための命令である。
ステップＳＡ３では、ＣＰＵ３１０は、ファームウェアダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とし、ステップＳＡ１の判断を行う。ファームウェアダウンロード命令は、インターネット２００を介して、サーバ１００から取得したファームウェアをＣＰＵ３１０内に設定するための命令である。以後、ＣＰＵ３１０は、ステップＳＡ１〜ステップＳＡ３の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ３１０は、ステップＳＡ１の判断結果を「Ｙｅｓ」とする。ステップＳＡ４では、ＣＰＵ３１０は、通常命令実行処理を実行する。
具体的には、第５図に示したステップＳＢ１では、命令入力部３１１（第２図参照）は、命令バスを介して入力された通常命令を命令使用可否判断部３１４および命令実行部３１５にフェッチする。ステップＳＢ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３へ通知する。ここで通知された動作モードは、第３図に示した「１」であるとする。
ステップＳＢ３では、使用可能命令保持部３１３は、通知された動作モードに対応する命令群を使用可能命令群として命令使用可否判断部３１４へ通知する。この場合の使用可能命令群は、第３図に示した動作モード＝１に対応する命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）である。
ステップＳＢ４では、命令使用可否判断部３１４は、ステップＳＢ１でフェッチされた通常命令が、当該動作モードで使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、ステップＳＢ３で通知された使用可能命令群に、ステップＳＢ１でフェッチされた通常命令が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＢ５では、命令実行部３１５は、ステップＳＢ１でフェッチされた通常命令（使用可能命令）に対応するファームウェアをファームウェア保持部３１６から取得する。ステップＳＢ６では、命令実行部３１５は、データ入出力部３１７より、命令実行に用いられるデータを取得する。ステップＳＢ７では、命令実行部３１５は、ファームウェアおよびデータを用いて通常命令を実行する。ステップＳＢ８では、命令実行部３１５は、通常命令を実行した結果をデータ入出力部３１７を経由して出力する。
一方、ステップＳＢ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＢ１でフェッチされた通常命令が当該動作モード＝１で使用不可である場合、ステップＳＢ９では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
ここで、ＣＰＵ３１０において、第３図に示した動作モード＝１の命令群に含まれない命令ｎ（０ｘｆ８）（動作モード＝０）を実行できるようにする場合には、動作モード＝１を追加すればよい。以下では、動作モード追加処理について説明する。
動作モード追加命令が入力されると、ＣＰＵ３１０は、第４図に示したステップＳＡ２の判断結果を「Ｙｅｓ」とする。ステップＳＡ５では、ＣＰＵ３１０は、動作モード追加処理を実行する。
具体的には、第６図に示したステップＳＣ１では、命令入力部３１１（第２図参照）は、命令バスを介して入力された動作モード追加命令を命令使用可否判断部３１４および命令実行部３１５にフェッチする。ステップＳＣ２では、動作モード保持部３１２は、現時点で設定されている動作モード（この場合、動作モード＝１）を使用可能命令保持部３１３へ通知する。
ステップＳＣ３では、使用可能命令保持部３１３は、通知された動作モード＝１に対応する命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＣ４では、命令使用可否判断部３１４は、ステップＳＣ１でフェッチされた動作モード追加命令が、当該動作モードで使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、ステップＳＣ３で通知された使用可能命令群に、ステップＳＣ１でフェッチされた動作モード追加命令が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＣ５では、命令実行部３１５は、ステップＳＣ１でフェッチされた動作モード追加命令（使用可能命令）に対応するファームウェアをファームウェア保持部３１６から取得する。
ステップＳＣ６では、命令実行部３１５は、データ入出力部３１７より、動作モードデータおよび命令群を取得する。この場合、動作モードデータは、追加すべき動作モードに対応する「０」（第３図参照）である。また、命令群は、第３図に示した動作モード＝０に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）である。
ステップＳＣ７では、命令実行部３１５は、動作モード保持部３１２に追加する動作モード＝０を設定するとともに、使用可能命令保持部３１３に動作モード＝０に対応する命令群を設定する。これにより、動作モード＝０での命令群が使用可能となる。
一方、ステップＳＣ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＣ１でフェッチされた動作モード追加命令が当該動作モード＝１で使用不可である場合、ステップＳＣ８では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
ここで、上述した動作モード追加処理により追加された動作モード＝０に対応する命令群において、命令実行時に必要なファームウェアがファームウェア保持部３１６に保持されていない場合、当該ファームウェアをサーバ１００からダウンロードする必要がある。以下では、ファームウェアダウンロード処理について説明する。
この場合、第８図に示したステップＳＥ１では、第１図に示したダウンロード部３３０は、ＣＰＵ３１０よりダウンロード要求があるか否かを判断し、この場合、判断結果を「Ｎｏ」として同判断を繰り返す。
そして、ＣＰＵ３１０からダウンロード部３３０へ、当該ファームウェアをダウンロードする要求があると、ダウンロード部３３０は、ステップＳＥ１の判断結果を「Ｙｅｓ」とする。ステップＳＥ２では、ダウンロード部３３０は、ファームウェア／ファームウェア番号対応表（図示略）に基づいて、ＣＰＵ３１０から要求されたファームウェアに対応するファームウェア番号を指定する。つぎに、ダウンロード部３３０は、当該ファームウェア番号に基づいて、インターネット２００を介してサーバ１００へファームウェアダウンロード要求を出す。
これにより、ステップＳＥ３では、サーバ１００のＣＰＵ１１０は、ファームウェア番号をキーとして、ファームウェア格納部１３０から当該ファームウェアを読み出し、これをクライアント３００のダウンロード部３３０へ転送する。
当該ファームウェアが転送されると、ステップＳＥ４では、ダウンロード部３３０は、ＣＰＵ３１０に対して、ファームウェアダウンロード命令を発行した後、ステップＳＥ１の判断を行う。
そして、上記ファームウェアダウンロード命令が入力されると、ＣＰＵ３１０は、第４図に示したステップＳＡ３の判断結果を「Ｙｅｓ」とする。ステップＳＡ６では、ＣＰＵ３１０は、ファームウェアダウンロード処理を実行する。
具体的には、第７図に示したステップＳＤ１では、命令入力部３１１（第２図参照）は、命令バスを介して入力されたファームウェアダウンロード命令を命令使用可否判断部３１４および命令実行部３１５にフェッチする。ステップＳＤ２では、動作モード保持部３１２は、現時点で設定されている動作モード（この場合、動作モード＝０、１）を使用可能命令保持部３１３へ通知する。
ステップＳＤ３では、使用可能命令保持部３１３は、通知された動作モード＝０、１に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）、命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＤ４では、命令使用可否判断部３１４は、ステップＳＤ１でフェッチされたファームウェアダウンロード命令が、当該動作モード０、１で使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、ステップＳＤ３で通知された使用可能命令群に、ステップＳＤ１でフェッチされたファームウェアダウンロード命令が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＤ５では、命令実行部３１５は、ステップＳＤ１でフェッチされたファームウェアダウンロード命令（使用可能命令）に対応する実行用のファームウェアをファームウェア保持部３１６から取得する。
ステップＳＤ６では、命令実行部３１５は、ファームウェアダウンロード命令およびこれに対応する実行用のファームウェアに基づいて、データ入出力部３１７およびデータバスを介してダウンロード部３３０から設定用のファームウェアを取得する。
ステップＳＤ７では、命令実行部３１５は、設定用のファームウェアをファームウェア保持部３１６に設定する。これにより、前述した動作モード追加処理により追加された動作モード＝０での命令群が使用可能となる。
一方、ステップＳＤ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＤ１でフェッチされたファームウェアダウンロード命令が当該動作モード＝０、１で使用不可である場合、ステップＳＤ８では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
以上説明したように、実施の形態１によれば、複数の動作モードのうち動的に指定された動作モードを第２図に示した動作モード保持部３１２に追加し、追加された動作モードに対応する命令を使用可能命令保持部３１３に設定し、さらに、命令の実行に用いられるファームウェアを外部のサーバ１００（第１図参照）から取得するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができる。
（実施の形態２）
さて、前述した実施の形態１では、命令実行部３１５（第２図参照）でファームウェアを用いて命令を実行する例について説明したが、ファームウェアに代えて論理回路を用いて命令を実行する構成としてもよい。以下では、この構成例を実施の形態２として説明する。
第９図は、本発明にかかる実施の形態２の構成を示すブロック図である。この図において、第１図の各部に対応する部分には同一の符号を付け、その説明を省略する。サーバ５００は、論理回路データをクライアント６００へインターネット２００を介して提供する。
論理回路データは、実施の形態１におけるファームウェアの機能を実現するための論理回路を生成するためのデータである。サーバ５００において、ＣＰＵ５１０は、論理回路データ提供に関する制御を行う。
論理回路データ格納部５２０は、後述するＣＰＵ６１０での命令実行に用いられる論理回路を生成するための論理回路データを複数格納している。これらの論理回路データは、論理回路データ番号に対応付けられて、論理回路データ格納部５２０に格納されている。
クライアント６００は、インターネット２００に接続されており、インターネット２００を介して、サーバ５００から論理回路データをダウンロードする機能と、論理回路データより論理回路を生成する機能と、該論理回路を用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント６００において、ＣＰＵ６１０は、論理回路データを動的にダウンロードさせるための制御や、後述する動作モードや命令群の設定等を行う。ダウンロード部６２０は、ＣＰＵ６１０の制御により、サーバ５００から論理回路データをダウンロードする。
第１０図は、第９図に示したＣＰＵ６１０の構成を示すブロック図である。この図において、第２図の各部に対応する部分には同一の符号を付け、その説明を省略する。ＣＰＵ６１０において、命令実行部６１１は、動的に生成される論理回路を備えており、命令使用可否判断部３１４により使用可能と判断された命令を論理回路により実行する。また、命令実行部６１１は、当該命令に対応する論理回路データに基づいて、論理回路生成部６１２に論理回路を動的に生成させる。論理回路生成部６１２は、動作モード保持部３１２に設定された動作モードでの命令群に対応する論理回路データを保持しており、命令実行部６１１の制御の下で、命令実行部６１１で実行すべき命令に対応する論理回路を命令実行部６１１内に生成する。
つぎに、実施の形態２の動作について、第１１図〜第１５図に示したフローチャートを参照しつつ説明する。第１１図に示したステップＳＦ１では、ＣＰＵ６１０は、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。通常命令は、実施の形態１で説明した動作モード追加命令および論理回路データダウンロード命令以外の命令であって、ＣＰＵ６１０で実行される命令である。
ステップＳＦ２では、ＣＰＵ６１０は、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。動作モード追加命令は、第３図に示した動作モード／命令対応表４００の動作モードを追加するための命令である。
ステップＳＦ３では、ＣＰＵ６１０は、論理回路データダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とし、ステップＳＦ１の判断を行う。論理回路データダウンロード命令は、インターネット２００を介して、サーバ５００から論理回路データをダウンロードするための命令である。以後、ＣＰＵ６１０は、ステップＳＦ１〜ステップＳＦ３の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ６１０は、ステップＳＦ１の判断結果を「Ｙｅｓ」とする。ステップＳＦ４では、ＣＰＵ６１０は、通常命令実行処理を実行する。
具体的には、第１２図に示したステップＳＧ１では、命令入力部３１１（第１０図参照）は、命令バスを介して入力された通常命令を命令使用可否判断部３１４および命令実行部６１１にフェッチする。ステップＳＧ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３へ通知する。ここで通知された動作モードは、第３図に示した「１」であるとする。
ステップＳＧ３では、使用可能命令保持部３１３は、通知された動作モードに対応する命令群を使用可能命令群として命令使用可否判断部３１４へ通知する。この場合の使用可能命令群は、第３図に示した動作モード＝１に対応する命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）である。
ステップＳＧ４では、命令使用可否判断部３１４は、ステップＳＧ１でフェッチされた通常命令が、当該動作モードで使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、ステップＳＧ３で通知された使用可能命令群に、ステップＳＧ１でフェッチされた通常命令が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＧ５では、命令実行部６１１は、ステップＳＧ１でフェッチされた通常命令（使用可能命令）に対応する論理回路の生成を論理回路生成部６１２に指示する。ステップＳＧ６では、論理回路生成部６１２は、当該通常命令に対応する論理回路データに基づいて、命令実行部６１１に論理回路を生成する。
ステップＳＧ７では、命令実行部６１１は、データ入出力部３１７より、命令実行に用いられるデータを取得する。ステップＳＧ８では、命令実行部６１１は、生成された論理回路およびデータを用いて通常命令を実行する。ステップＳＧ９では、命令実行部６１１は、通常命令を実行した結果をデータ入出力部３１７を経由して出力する。
一方、ステップＳＧ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＧ１でフェッチされた通常命令が当該動作モード＝１で使用不可である場合、ステップＳＧ１０では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
ここで、ＣＰＵ６１０において、第３図に示した動作モード＝１の命令群に含まれない命令ｎ（０ｘｆ８）（動作モード＝０）を実行できるようにする場合には、動作モード＝１を追加すればよい。以下では、動作モード追加処理について説明する。
動作モード追加命令が入力されると、ＣＰＵ６１０は、第１１図に示したステップＳＦ２の判断結果を「Ｙｅｓ」とする。ステップＳＦ５では、ＣＰＵ６１０は、動作モード追加処理を実行する。
具体的には、第１３図に示したステップＳＨ１では、命令入力部３１１（第１２図参照）は、命令バスを介して入力された動作モード追加命令を命令使用可否判断部３１４および命令実行部６１１にフェッチする。ステップＳＨ２では、動作モード保持部３１２は、現時点で設定されている動作モード（この場合、動作モード＝１）を使用可能命令保持部３１３へ通知する。
ステップＳＨ３では、使用可能命令保持部３１３は、通知された動作モード＝１に対応する命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＨ４では、命令使用可否判断部３１４は、ステップＳＣ４（第６図参照）と同様にして、ステップＳＨ１でフェッチされた動作モード追加命令が、当該動作モードで使用可能であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＨ５では、命令実行部６１１は、ステップＳＨ１でフェッチされた動作モード追加命令（使用可能命令）に対応する論理回路の生成を論理回路生成部６１２に指示する。ステップＳＨ６では、論理回路生成部６１２は、当該動作モード追加命令に対応する論理回路データに基づいて、命令実行部６１１に論理回路を生成する。
ステップＳＨ７では、命令実行部６１１は、データ入出力部３１７より、動作モードデータおよび命令群を取得する。この場合、動作モードデータは、追加すべき動作モードに対応する「０」（第３図参照）である。また、命令群は、第３図に示した動作モード＝０に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）である。
ステップＳＨ８では、命令実行部６１１は、動作モード保持部３１２に追加する動作モード＝０を設定するとともに、使用可能命令保持部３１３に動作モード＝０に対応する命令群を設定する。これにより、動作モード＝０での命令群が使用可能となる。
一方、ステップＳＨ４の判断結果が「Ｎｏ」である場合、ステップＳＨ９では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
ここで、上述した動作モード追加処理により追加された動作モード＝０に対応する命令群において、命令実行時に必要な論理回路データが論理回路データ保持部３１６に保持されていない場合、当該論理回路データをサーバ５００からダウンロードする必要がある。以下では、論理回路データダウンロード処理について説明する。
この場合、第１５図に示したステップＳＪ１では、第９図に示したダウンロード部６２０は、ＣＰＵ６１０よりダウンロード要求があるか否かを判断し、この場合、判断結果を「Ｎｏ」として同判断を繰り返す。
そして、ＣＰＵ６１０からダウンロード部６２０へ、当該論理回路データをダウンロードする要求があると、ダウンロード部６２０は、ステップＳＪ１の判断結果を「Ｙｅｓ」とする。ステップＳＪ２では、ダウンロード部６２０は、論理回路データ／論理回路データ番号対応表（図示略）に基づいて、ＣＰＵ６１０から要求された論理回路データに対応する論理回路データ番号を指定する。
つぎに、ダウンロード部６２０は、当該論理回路データ番号に基づいて、インターネット２００を介してサーバ５００へ論理回路データダウンロード要求を出す。
これにより、ステップＳＪ３では、サーバ５００のＣＰＵ５１０は、論理回路データ番号をキーとして、論理回路データ格納部５２０から当該論理回路データを読み出し、これをクライアント６００のダウンロード部６２０へ転送する。
当該論理回路データが転送されると、ステップＳＪ４では、ダウンロード部６２０は、ＣＰＵ６１０に対して、論理回路データダウンロード命令を発行した後、ステップＳＪ１の判断を行う。
そして、上記論理回路データダウンロード命令が入力されると、ＣＰＵ６１０は、第１１図に示したステップＳＦ３の判断結果を「Ｙｅｓ」とする。ステップＳＦ６では、ＣＰＵ６１０は、論理回路データダウンロード処理を実行する。
具体的には、第１４図に示したステップＳＩ１では、命令入力部３１１（第１２図参照）は、命令バスを介して入力された論理回路データダウンロード命令を命令使用可否判断部３１４および命令実行部６１１にフェッチする。ステップＳＩ２では、動作モード保持部３１２は、現時点で設定されている動作モード（この場合、動作モード＝０、１）を使用可能命令保持部３１３へ通知する。
ステップＳＩ３では、使用可能命令保持部３１３は、通知された動作モード＝０、１に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）、命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＩ４では、命令使用可否判断部３１４は、ステップＳＩ１でフェッチされた論理回路データダウンロード命令が、当該動作モード０、１で使用可能であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＩ５では、命令実行部６１１は、ステップＳＩ１でフェッチされた論理回路データダウンロード命令（使用可能命令）に対応する論理回路の生成を論理回路生成部６１２に指示する。ステップＳＩ６では、論理回路生成部６１２は、当該論理回路データダウンロード命令に対応する論理回路データに基づいて、命令実行部６１１に論理回路を生成する。
ステップＳＩ７では、命令実行部６１１は、論理回路データダウンロード命令および生成された論理回路に基づいて、データ入出力部３１７およびデータバスを介してダウンロード部６２０から設定用の論理回路データを取得する。
ステップＳＩ８では、命令実行部６１１は、設定用の論理回路データを論理回路生成部６１２に設定する。これにより、前述した動作モード追加処理により追加された動作モード＝０での命令群が使用可能となる。
一方、ステップＳＩ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＩ１でフェッチされた論理回路データダウンロード命令が当該動作モード＝０、１で使用不可である場合、ステップＳＩ９では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
以上説明したように、実施の形態２によれば、複数の動作モードのうち動的に指定された動作モードを第１０図に示した動作モード保持部３１２に追加し、追加された動作モードに対応する命令を使用可能命令保持部３１３に設定し、さらに、動作モード保持部３１２に保持された動作モードに対応し、命令の実行に用いられる論理回路を命令実行部６１１に生成するための論理回路データを外部のサーバ５００（第９図参照）から取得するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができる。
（実施の形態３）
さて、前述した実施の形態１では、サーバ１００（第１図参照）からダウンロードされるファームウェアのセキュリティについて特に言及しなかったが、暗号化技術を用いてセキュリティを高める構成としてもよい。以下では、この構成例を実施の形態３として説明する。
第１６図は、本発明にかかる実施の形態３の構成を示すブロック図である。この図において、第１図の各部に対応する部分には同一の符号を付け、その説明を省略する。
第１６図に示したサーバ７００は、各種暗号化ファームウェアをクライアント８００へインターネット２００を介して提供する。サーバ７００において、ＣＰＵ７１０は、暗号化ファームウェア提供に関する制御を行う。
平文ファームウェア格納部７２０は、後述するＣＰＵ８１０での命令実行に用いられる平文ファームウェアを複数格納している。これらの平文ファームウェアは、平文ファームウェア番号に対応付けられて、平文ファームウェア格納部７２０に格納されている。ここで、実施の形態３での平文ファームウェアは、実施の形態１でのファームウェアと同一のものである。
暗号化部７３０は、ＣＰＵ７１０の制御の下で、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）暗号化方式や、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号化方式等により、平文ファームウェアを暗号化し、これを暗号化ファームウェアとして出力する。
クライアント８００は、インターネット２００に接続されており、インターネット２００を介して、サーバ７００から暗号化ファームウェアをダウンロードする機能と、暗号化ファームウェアを復号する機能と、復号された平文ファームウェアを用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント８００において、ＣＰＵ８１０は、暗号化ファームウェアを動的にダウンロードさせるための制御や、暗号化ファームウェアの復号、実施の形態１で説明した動作モードや命令群の設定等を行う。
ダウンロード部８２０は、ＣＰＵ８１０の制御により、サーバ７００から暗号化ファームウェアをダウンロードする。
第１７図は、第１６図に示したＣＰＵ８１０の構成を示すブロック図である。この図において、第２図に対応する部分には同一の符号を付け、その説明を省略する。
第１７図に示したＣＰＵ８１０において、命令実行部８１１は、命令使用可否判断部３１４により使用可能と判断された命令を実行する。また、命令実行部８１１は、当該命令の実行に用いられる平文ファームウェアをファームウェア保持部３１６より取得する。復号部８１２は、命令実行部８１１の制御の下で、ダウンロード部８２０（第１６図参照）によりダウンロードされた暗号化ファームウェアを復号し、復号結果を平文ファームウェアとしてファームウェア保持部３１６に保持させる。
実施の形態３において、ファームウェア保持部３１６は、動作モード保持部３１２に設定された動作モードでの命令群に対応する平文ファームウェアを保持する。
この平文ファームウェアは、サーバ７００（第１６図参照）からダウンロードされた暗号化ファームウェアが復号されたものである。また、動作モードが追加された場合、ファームウェア保持部３１６には、新規の平文ファームウェアが保持される。
つぎに、実施の形態３の動作について、第１８図〜第２０図に示したフローチャートを参照しつつ説明する。第１８図に示したステップＳＫ１では、ＣＰＵ８１０は、ステップＳＡ１（第４図参照）と同様にして、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＫ２では、ＣＰＵ８１０は、ステップＳＡ２（第４図参照）と同様にして、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＫ３では、ＣＰＵ８１０は、暗号化ファームウェアダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とし、ステップＳＫ１の判断を行う。暗号化ファームウェアダウンロード命令は、インターネット２００を介して、サーバ７００から暗号化ファームウェアをダウンロードするための命令である。以後、ＣＰＵ８１０は、ステップＳＫ１〜ステップＳＫ３の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ８１０は、ステップＳＫ１の判断結果を「Ｙｅｓ」とする。ステップＳＫ４では、ＣＰＵ８１０は、実施の形態１と同様にして、通常命令実行処理（第５図参照）を実行する。
また、動作モード追加命令が入力されると、ＣＰＵ８１０は、ステップＳＫ２の判断結果を「Ｙｅｓ」とする。ステップＳＫ５では、ＣＰＵ８１０は、実施の形態１と同様にして、動作モード追加処理（第６図参照）を実行する。
ここで、上述した動作モード追加処理により追加された動作モードに対応する命令群において、命令実行時に必要な平文ファームウェアがファームウェア保持部３１６に保持されていない場合、当該平文ファームウェアに対応する暗号化ファームウェアをサーバ７００からダウンロードする必要がある。以下では、暗号化ファームウェアダウンロード処理について説明する。
この場合、第２０図に示したステップＳＭ１では、第１６図に示したダウンロード部８２０は、ＣＰＵ８１０よりダウンロード要求があるか否かを判断し、この場合、判断結果を「Ｎｏ」として同判断を繰り返す。
そして、ＣＰＵ８１０からダウンロード部８２０へ、当該暗号化ファームウェアをダウンロードする要求があると、ダウンロード部８２０は、ステップＳＭ１の判断結果を「Ｙｅｓ」とする。ステップＳＭ２では、ダウンロード部８２０は、ファームウェア／ファームウェア番号対応表（図示略）に基づいて、ＣＰＵ８１０から要求された暗号化ファームウェアに対応するファームウェア番号を指定する。つぎに、ダウンロード部８２０は、当該ファームウェア番号に基づいて、インターネット２００を介してサーバ７００へ暗号化ファームウェアダウンロード要求を出す。
これにより、ステップＳＭ３では、サーバ７００のＣＰＵ７１０は、ファームウェア番号をキーとして、平文ファームウェア格納部７２０から当該平文ファームウェアを読み出し、これを暗号化部７３０へ転送する。ステップＳＭ４では、暗号化部７３０は、ＲＳＡ暗号化方式やＤＥＳ暗号化方式等により、上記平文ファームウェアを暗号化する。
ステップＳＭ５では、ＣＰＵ７１０は、インターネット２００を介して、暗号化部７３０からの暗号化ファームウェアをクライアント８００のダウンロード部８２０へ転送する。
当該暗号化ファームウェアが転送されると、ステップＳＭ６では、ダウンロード部８２０は、ＣＰＵ８１０に対して、暗号化ファームウェアダウンロード命令を発行した後、ステップＳＭ１の判断を行う。
そして、上記暗号化ファームウェアダウンロード命令が入力されると、ＣＰＵ８１０は、第１８図に示したステップＳＫ３の判断結果を「Ｙｅｓ」とする。ステップＳＫ６では、ＣＰＵ８１０は、暗号化ファームウェアダウンロード処理を実行する。
具体的には、第１９図に示したステップＳＬ１では、命令入力部３１１（第１７図参照）は、命令バスを介して入力された暗号化ファームウェアダウンロード命令を命令使用可否判断部３１４および命令実行部８１１にフェッチする。ステップＳＬ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３へ通知する。
ステップＳＬ３では、使用可能命令保持部３１３は、通知された動作モードに対応する命令群を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＬ４では、命令使用可否判断部３１４は、ステップＳＬ１でフェッチされた暗号化ファームウェアダウンロード命令が、当該動作モードで使用可能であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＬ５では、命令実行部８１１は、ステップＳＬ１でフェッチされた暗号化ファームウェアダウンロード命令（使用可能命令）に対応する実行用の平文ファームウェアをファームウェア保持部３１６から取得する。
ステップＳＬ６では、命令実行部８１１は、暗号化ファームウェアダウンロード命令およびこれに対応する実行用の平文ファームウェアに基づいて、データ入出力部３１７およびデータバスを介してダウンロード部８２０から設定用の暗号化ファームウェアを取得する。
ステップＳＬ７では、命令実行部８１１は、復号部８１２へ暗号化ファームウェアの復号を指示する。ステップＳＬ８では、復号部８１２は、暗号化ファームウェアを復号する。ステップＳＬ９では、復号部８１２は、命令実行部８１１の制御の下で、復号された平文ファームウェアをファームウェア保持部３１６に設定する。これにより、動作モード追加処理により追加された動作モードでの命令群が使用可能となる。
一方、ステップＳＬ４の判断結果が「Ｎｏ」である場合、ステップＳＬ１０では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
以上説明したように、実施の形態３によれば、暗号化ファームウェアを外部のサーバ７００（第１６図参照）から取得した後、該暗号化ファームウェアを復号部８１２（第１７図参照）で復号するようにしたので、ファームウェア取得中のセキュリティを高めることができる。
（実施の形態４）
さて、前述した実施の形態３では、ファームウェアを暗号化してセキュリティを高める構成例について説明したが、電子署名技術を用いてセキュリティを高める構成としてもよい。以下では、この構成例を実施の形態４として説明する。
第２１図は、本発明にかかる実施の形態４の構成を示すブロック図である。この図において、第１図の各部に対応する部分には同一の符号を付け、その説明を省略する。
第２１図に示したサーバ９００は、各種電子署名付きファームウェアをクライアント１０００へインターネット２００を介して提供する。サーバ９００において、ＣＰＵ９１０は、電子署名付きファームウェア提供に関する制御を行う。
電子署名部９２０は、ＣＰＵ９１０の制御の下で、電子署名付きのファームウェアを生成する。電子署名は、ファームウェアが正当な発信者から発信され、途中で改竄などが行なわれていないことを示すためのセキュリティ技術である。
クライアント１０００は、インターネット２００に接続されており、インターネット２００を介して、サーバ９００から電子署名付きファームウェアをダウンロードする機能と、電子署名付きファームウェアを認証する機能と、認証されたファームウェアを用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント１０００において、ＣＰＵ１０１０は、電子署名付きファームウェアを動的にダウンロードさせるための制御や、電子署名付きファームウェアの認証、実施の形態１で説明した動作モードや命令群の設定等を行う。
ダウンロード部１０２０は、ＣＰＵ１０１０の制御により、サーバ９００から電子署名付きファームウェアをダウンロードする。
第２２図は、第２１図に示したＣＰＵ１０１０の構成を示すブロック図である。この図において、第２図に対応する部分には同一の符号を付け、その説明を省略する。
第２２図に示したＣＰＵ１０１０において、命令実行部１０１１は、命令使用可否判断部３１４により使用可能と判断された命令を実行する。また、命令実行部１０１１は、当該命令の実行に用いられるファームウェアをファームウェア保持部３１６より取得する。認証部１０１２は、命令実行部１０１１の制御の下で、ダウンロード部１０２０（第２１図参照）によりダウンロードされた電子署名付きファームウェアの認証を行い、認証結果がＯＫである場合、ファームウェアをファームウェア保持部３１６に保持させる。
つぎに、実施の形態４の動作について、第２３図〜第２５図に示したフローチャートを参照しつつ説明する。
第２３図に示したステップＳＮ１では、ＣＰＵ１０１０は、ステップＳＡ１（第４図参照）と同様にして、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＮ２では、ＣＰＵ１０１０は、ステップＳＡ２（第４図参照）と同様にして、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＮ３では、ＣＰＵ１０１０は、電子署名付きファームウェアダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とし、ステップＳＮ１の判断を行う。電子署名付きファームウェアダウンロード命令は、インターネット２００を介して、サーバ９００から電子署名付きファームウェアをダウンロードするための命令である。以後、ＣＰＵ１０１０は、ステップＳＮ１〜ステップＳＮ３の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ１０１０は、ステップＳＮ１の判断結果を「Ｙｅｓ」とする。ステップＳＮ４では、ＣＰＵ１０１０は、実施の形態１と同様にして、通常命令実行処理（第５図参照）を実行する。
また、動作モード追加命令が入力されると、ＣＰＵ１０１０は、ステップＳＮ２の判断結果を「Ｙｅｓ」とする。ステップＳＮ５では、ＣＰＵ１０１０は、実施の形態１と同様にして、動作モード追加処理（第６図参照）を実行する。
ここで、上述した動作モード追加処理により追加された動作モードに対応する命令群において、命令実行時に必要なファームウェアがファームウェア保持部３１６に保持されていない場合、当該ファームウェアに対応する電子署名付きファームウェアをサーバ９００からダウンロードする必要がある。以下では、電子署名付きファームウェアダウンロード処理について説明する。
この場合、第２５図に示したステップＳＰ１では、第２１図に示したダウンロード部１０２０は、ＣＰＵ１０１０よりダウンロード要求があるか否かを判断し、この場合、判断結果を「Ｎｏ」として同判断を繰り返す。
そして、ＣＰＵ１０１０からダウンロード部１０２０へ、当該電子署名付きファームウェアをダウンロードする要求があると、ダウンロード部１０２０は、ステップＳＰ１の判断結果を「Ｙｅｓ」とする。ステップＳＰ２では、ダウンロード部１０２０は、ファームウェア／ファームウェア番号対応表（図示略）に基づいて、ＣＰＵ１０１０から要求されたファームウェアに対応するファームウェア番号を指定する。つぎに、ダウンロード部１０２０は、当該ファームウェア番号に基づいて、インターネット２００を介してサーバ９００へ電子署名付きファームウェアダウンロード要求を出す。
これにより、ステップＳＰ３では、サーバ９００のＣＰＵ９１０は、ファームウェア番号をキーとして、ファームウェア格納部１３０から当該ファームウェアを読み出し、これを電子署名部９２０へ転送する。ステップＳＰ４では、電子署名部９２０は、電子署名付きファームウェアを生成する。
ステップＳＰ５では、ＣＰＵ９１０は、インターネット２００を介して、電子署名部９２０からの電子署名付きファームウェアをクライアント１０００のダウンロード部１０２０へ転送する。
当該電子署名付きファームウェアが転送されると、ステップＳＰ６では、ダウンロード部１０２０は、ＣＰＵ１０１０に対して、電子署名付きファームウェアダウンロード命令を発行した後、ステップＳＰ１の判断を行う。
そして、上記電子署名付きファームウェアダウンロード命令が入力されると、ＣＰＵ１０１０は、第２３図に示したステップＳＮ３の判断結果を「Ｙｅｓ」とする。ステップＳＮ６では、ＣＰＵ１０１０は、電子署名付きファームウェアダウンロード処理を実行する。
具体的には、第２４図に示したステップＳＯ１では、命令入力部３１１（第２２図参照）は、命令バスを介して入力された電子署名付きファームウェアダウンロード命令を命令使用可否判断部３１４および命令実行部１０１１にフェッチする。ステップＳＯ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３へ通知する。
ステップＳＯ３では、使用可能命令保持部３１３は、通知された動作モードに対応する命令群を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＯ４では、命令使用可否判断部３１４は、ステップＳＯ１でフェッチされた電子署名付きファームウェアダウンロード命令が、当該動作モードで使用可能であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＯ５では、命令実行部１０１１は、ステップＳＯ１でフェッチされた電子署名付きファームウェアダウンロード命令（使用可能命令）に対応する実行用のファームウェアをファームウェア保持部３１６から取得する。
ステップＳＯ６では、命令実行部１０１１は、電子署名付きファームウェアダウンロード命令およびこれに対応する実行用のファームウェアに基づいて、データ入出力部３１７およびデータバスを介してダウンロード部１０２０から設定用の電子署名付きファームウェアを取得する。
ステップＳＯ７では、命令実行部１０１１は、認証部１０１２へ電子署名付きファームウェアの認証を指示する。ステップＳＯ８では、認証部１０１２は、電子署名付きファームウェアを認証し、認証結果を命令実行部１０１１へ通知する。ステップＳＯ９では、命令実行部１０１１は、認証部１０１２での認証結果がＯＫであるか否かを判断する。
認証結果がＮＧである場合、すなわち、設定用のファームウェアが改竄等されている場合、命令実行部１０１１は、ステップＳＯ９の判断結果を「Ｎｏ」として、設定を中止し、第２３図に示したメインルーチンへ戻る。
一方、認証結果がＯＫである場合、命令実行部１０１１は、ステップＳＯ９の判断結果を「Ｙｅｓ」とする。ステップＳＯ１０では、認証部１０１２は、命令実行部１０１１の制御の下で、認証されたファームウェアをファームウェア保持部３１６に設定する。これにより、動作モード追加処理により追加された動作モードでの命令群が使用可能となる。
一方、ステップＳＯ４の判断結果が「Ｎｏ」である場合、ステップＳＯ１１では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
以上説明したように、実施の形態４によれば、電子署名付きファームウェアを外部のサーバ９００（第２１図参照）から取得した後、該署名付きファームウェアを認証部１０１２（第２２図参照）で認証するようにしたので、ファームウェア取得中の改竄等を防止することができる。
（実施の形態５）
さて、前述した実施の形態１では、命令実行時に、ＣＰＵ内部に保持されている資源（例えば、暗号鍵、署名鍵、証明書等）へのアクセス制御について特に言及しなかったが、上記アクセス制御を行う構成としてもよい。以下では、この構成例を実施の形態５として説明する。
第２６図は、本発明にかかる実施の形態５の構成を示すブロック図である。この図において、第１図の各部に対応する部分には同一の符号を付け、その説明を省略する。
第２６図に示したクライアント１１００は、インターネット２００に接続されており、インターネット２００を介して、サーバ１００からファームウェアをダウンロードする機能と、ファームウェアを用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント１１００において、ＣＰＵ１１１０は、ファームウェアを動的にダウンロードさせるための制御や、後述する動作モードや命令群の設定、上述したアクセス制御等を行う。
第２７図は、第２６図に示したＣＰＵ１１１０の構成を示すブロック図である。この図において、第２図の各部に対応する部分には同一の符号を付け、その説明を省略する。命令実行部１１１１は、命令使用可否判断部３１４により使用可能と判断された命令を実行する。また、命令実行部１１１１は、当該命令の実行に用いられるファームウェアをファームウェア保持部３１６より取得する。さらに、命令実行部１１１１は、命令の種類によっては、ＣＰＵ１１１０内の資源（暗号鍵、署名鍵等）にアクセスする。例えば、実行命令が暗号化命令の場合には、命令実行部１１１１は、暗号鍵にアクセスし、この暗号鍵を使ってデータを暗号化する。
暗号鍵保持部１１１３１、署名鍵保持部１１１３２、証明書保持部１１１３３、ＣＰＵ・ＩＤ保持部１１１３４、・・・には、資源としての暗号鍵、署名鍵、証明書、ＣＰＵ・ＩＤ、・・・がそれぞれ保持されている。例えば、暗号鍵は、データを暗号化する際に用いられる。署名鍵は、データに電子署名を施す際に用いられる。
アクセス制御部１１１２は、命令実行部１１１１が資源にアクセスする場合に、第２８図に示した動作モード／資源対応表１２００の動作モードに応じて、アクセスの許可／拒絶を判断する。
動作モード／資源対応表１２００において、動作モードは、「０」〜「ｋ」とされており、動作モード／命令対応表４００（第３図参照）の動作モードに対応している。
アクセス可能数は、動作モード毎に設定されており、当該動作モード時に命令実行部１１１１でアクセス可能な資源の数である。
例えば、動作モード＝０の場合には、アクセス可能数がｎである。すなわち、動作モード０の場合には、資源１（暗号鍵）〜資源ｎ（ＣＰＵ・ＩＤ）という都合ｎ種類の資源に命令実行部１１１１がアクセス可能となる。
また、動作モード＝１の場合には、アクセス可能数がｉである。すなわち、動作モード１の場合には、資源１（暗号鍵）〜資源ｉ（ＣＰＵ・ＩＤ）という都合ｉ種類の資源に命令実行部１１１１がアクセス可能である。
同様にして、動作モード＝ｋの場合には、アクセス可能数が１である。すなわち、動作モードｋの場合には、資源１（署名鍵）という都合１種類の資源に命令実行部１１１１がアクセス可能である。また、動作モード＝ｋのみが設定されている場合、命令実行部１１１１は、資源１（署名鍵）以外の資源にアクセスできない。
つぎに、実施の形態５の動作について、第４図、第２９図〜第３１図に示したフローチャートを参照しつつ説明する。第４図に示したステップＳＡ１では、ＣＰＵ１１１０は、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。ステップＳＡ２では、ＣＰＵ１１１０は、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＡ３では、ＣＰＵ１１１０は、ファームウェアダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。以後、ＣＰＵ１１１０は、ステップＳＡ１〜ステップＳＡ３の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ１１１０は、ステップＳＡ１の判断結果を「Ｙｅｓ」とする。ステップＳＡ４では、ＣＰＵ１１１０は、通常命令実行処理を実行する。
具体的には、第２９図に示したステップＳＱ１では、命令入力部３１１（第２７図参照）は、命令バスを介して入力された通常命令を命令使用可否判断部３１４および命令実行部１１１１にフェッチする。ステップＳＱ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３およびアクセス制御部１１１２へ通知する。ここで通知された動作モードは、第３図および第２８図に示した「１」であるとする。
ステップＳＱ３では、使用可能命令保持部３１３は、通知された動作モードに対応する命令群を使用可能命令群として命令使用可否判断部３１４へ通知する。この場合の使用可能命令群は、第３図に示した動作モード＝１に対応する命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）である。
ステップＳＱ４では、命令使用可否判断部３１４は、ステップＳＱ１でフェッチされた通常命令が、当該動作モードで使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、ステップＳＱ３で通知された使用可能命令群に、ステップＳＱ１でフェッチされた通常命令が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＱ５では、命令実行部１１１１から資源（暗号鍵、署名鍵、証明書、ＣＰＵ・ＩＤ等）へのアクセスを制御するためのアクセス制御処理が実行される。具体的には、第３０図に示したステップＳＲ１では、命令実行部１１１１は、通常命令の実行に際して資源へのアクセスが必要であるか否かを判断する。
この場合、通常命令が暗号化であるとし、資源として暗号鍵が必要である。従って、命令実行部１１１１は、ステップＳＲ１の判断結果を「Ｙｅｓ」とする。なお、ステップＳＲ１の判断結果が「Ｎｏ」である場合、命令実行部１１１１は、第２９図に示したステップＳＱ６の処理を実行する。
ステップＳＲ２では、命令実行部１１１１は、アクセス制御部１１１２へ資源（暗号鍵）を通知する。ステップＳＲ３では、アクセス制御部１１１２は、動作モード／資源対応表１２００（第２８図参照）を参照して、現在の動作モード＝１で、ステップＳＲ２で通知された資源（暗号鍵）に対して命令実行部１１１１がアクセス可能であるか否かを判断する。
具体的には、アクセス制御部１１１２は、第２８図に示した動作モード＝１に対応する資源１（暗号鍵）〜資源ｉ（ＣＰＵ・ＩＤ）に、ステップＳＲ２で通知された資源（暗号鍵）が含まれているか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。ステップＳＲ４では、アクセス制御部１１１２は、命令実行部１１１１に対して資源（暗号鍵）へのアクセスを許可する。
一方、ステップＳＲ３の判断結果が「Ｎｏ」である場合、ステップＳＲ５では、アクセス制御部１１１２は、命令実行部１１１１に対して資源（暗号鍵）へのアクセスを拒絶し、権限違反例外割り込み発生（エラー）として処理する。
第２９図に戻り、ステップＳＱ６では、命令実行部１１１１は、ステップＳＱ１でフェッチされた通常命令（使用可能命令）に対応するファームウェアをファームウェア保持部３１６から取得する。
ステップＳＱ７では、命令実行部１１１１は、データ入出力部３１７より、命令実行に用いられるデータを取得する。この場合には、命令実行部１１１１は、アクセス制御部１１１２により許可された資源としての暗号鍵（暗号鍵保持部１１１３１）にアクセスし、暗号鍵も取得する。
ステップＳＱ８では、命令実行部１１１１は、ファームウェア、データ、資源（暗号鍵）を用いて通常命令を実行する。ステップＳＱ９では、命令実行部１１１１は、通常命令を実行した結果をデータ入出力部３１７を経由して出力する。
一方、ステップＳＱ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＱ１でフェッチされた通常命令が当該動作モード＝１で使用不可である場合、ステップＳＱ１０では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
つぎに、動作モード追加処理について説明する。動作モード追加命令が入力されると、ＣＰＵ１１１０は、第４図に示したステップＳＡ２の判断結果を「Ｙｅｓ」とする。ステップＳＡ５では、ＣＰＵ１１１０は、動作モード追加処理を実行する。
具体的には、第３１図に示したステップＳＳ１では、命令入力部３１１（第２７図参照）は、命令バスを介して入力された動作モード追加命令を命令使用可否判断部３１４および命令実行部１１１１にフェッチする。ステップＳＳ２では、動作モード保持部３１２は、現時点で設定されている動作モード（この場合、動作モード＝１）を使用可能命令保持部３１３へ通知する。
ステップＳＳ３では、使用可能命令保持部３１３は、通知された動作モード＝１に対応する命令１（０ｘ１１）〜命令ｉ（０ｘｅ７）を使用可能命令群として命令使用可否判断部３１４へ通知する。
ステップＳＳ４では、命令使用可否判断部３１４は、ステップＳＳ１でフェッチされた動作モード追加命令が、当該動作モードで使用可能であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
なお、ステップＳＳ４の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＳ１でフェッチされた動作モード追加命令が当該動作モード＝１で使用不可である場合、ステップＳＳ１０では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
ステップＳＳ５では、命令実行部１１１１は、ステップＳＳ１でフェッチされた動作モード追加命令（使用可能命令）に対応するファームウェアをファームウェア保持部３１６から取得する。
ステップＳＳ６では、命令実行部１１１１は、データ入出力部３１７より、追加動作モードデータおよび命令群を取得する。この場合、追加動作モードデータは、追加すべき動作モードに対応する「０」（第３図参照）とする。また、命令群は、第３図に示した動作モード＝０に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）である。
ステップＳＳ７では、命令実行部１１１１は、動作モード保持部３１２に現在設定されている動作モード（＝１）を確認する。ステップＳＳ８では、命令実行部１１１１は、追加動作モード（＝０）が現在の動作モード（＝１）より低モードであるか否かを判断する。言い換えれば、命令実行部１１１１は、追加動作モードにより、使用可能命令数が増加するか否かを判断する。
すなわち、命令実行部１１１１は、動的に指定された追加の動作モードの命令数が、動作モード保持部３１２（第２７図参照）に既に保持されている動作モードの命令数より多いか否かを判断する。
この場合、命令実行部１１１１は、ステップＳＳ８の判断結果を「Ｙｅｓ」とする。ステップＳＳ９では、命令実行部１１１１は、動作モード保持部３１２に追加する動作モード＝０を設定するとともに、使用可能命令保持部３１３に動作モード＝０に対応する命令群を設定する。これにより、動作モード＝０での命令群が使用可能となる。
一方、ステップＳＳ８の判断結果が「Ｎｏ」である場合、ステップＳＳ１１では、命令実行部１１１１は、動作モードの追加を中止し、権限違反例外割り込み発生（エラー）として処理する。
また、ファームウェアダウンロード命令が入力された場合、ＣＰＵ１１１０は、第４図に示したステップＳＡ３の判断結果を「Ｙｅｓ」とする。ステップＳＡ６では、ＣＰＵ１１１０は、実施の形態１と同様にして、ファームウェアダウンロード処理（第７図参照）を実行する。
以上説明したように、実施の形態５によれば、動作モードに応じて、命令の実行に際して利用される各種資源（暗号鍵、署名鍵、証明書、ＣＰＵ・ＩＤ等）に対するアクセス制御をアクセス制御部１１１２（第２７図参照）で行うようにしたので、動作モードに応じて動的に資源を割り当てることができる。
また、実施の形態５によれば、動的に指定された追加の動作モードの命令数が、動作モード保持部３１２（第２７図参照）に既に保持されている動作モードの命令数より多い場合に限り、動的に指定された動作モードを動作モード保持部３１２に追加するようにしたので、より厳しい条件での動作モードの追加が可能となり、セキュリティをさらに高めることができる。
（実施の形態６）
さて、前述した実施の形態１では、ＣＰＵ３１０（第１図参照）外部のオペレーティングシステムにより動作モード追加およびファームウェアダウンロードの指示を行うように構成してもよい。以下では、この構成例を実施の形態６として説明する。
第３２図は、本発明にかかる実施の形態６の構成を示すブロック図である。この図において、第１図の各部に対応する部分には同一の符号を付ける。第３２図に示したクライアント１３００は、インターネット２００に接続されており、インターネット２００を介して、サーバ１００からファームウェアをダウンロードする機能と、ファームウェアを用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント１３００において、オペレーティングシステム１３１０は、動作モード追加およびファームウェアダウンロードを指示するためのシステムである。動作モードファイル格納部１３２０には、第３３図に示した動作モードファイル１３２１０〜１３２１ｋが格納されている。これらの動作モードファイル１３２１０〜１３２１ｋは、第３図に示した動作モード／命令対応表４００に対応するファイルである。
動作モードファイル１３２１０は、動作モードデータ１３２２０、使用可能命令数データ１３２３０、および命令／ファームウェア番号データ１３２４０から構成されている。動作モードデータ１３２２０は、第３図に示した動作モード＝０を表すデータである。
使用可能命令数データ１３２３０は、第３図に示した使用可能命令数＝ｎを表すデータである。命令／ファームウェア番号データ１３２４０は、第３図に示した命令１（０ｘ０１）〜命令ｎ（０ｘ８ｆ）、およびこれらに対応するファームウェアを指定するためのファームウェア番号のデータである。
動作モードファイル１３２１１〜１３２１ｋは、上述した動作モードファイル１３２１０と同一のデータ構造とされており、動作モード１〜ｋに関するデータから構成されている。
なお、実施の形態６において、第３２図に示したダウンロード部３３０は、ファームウェアダウンロード命令を発行せず、ダウンロード機能のみを備えている。ファームウェアダウンロード命令は、オペレーティングシステム１３１０により発行される。
第３４図は、第３２図に示したオペレーティングシステム１３１０およびＣＰＵ３１０の構成を示すブロック図である。この図において、第２図および第３２図に対応する部分には同一の符号を付け、その説明を省略する。
第３４図に示したオペレーティングシステム１３１０において、プロセス管理部１３１１は、シェルプロセス１３１２（動作モード追加、ファームウェアダウンロード等）や子プロセス１３１３を管理する。
ファイルシステム１３１４は、プロセス管理部１３１１の制御の下で動作モードファイル格納部１３２０から動作モードファイルを読み出す。動作モード追加指示部１３１５は、プロセス管理部１３１１の制御の下で、ＣＰＵ３１０における動作モード追加を指示する。
ファームウェアダウンロード指示部１３１６は、プロセス管理部１３１１の制御の下でサーバ１００（第３２参照）からのファームウェアのダウンロードを指示する。
つぎに、実施の形態６の動作について、第４図〜第８図および第３５図に示したフローチャートを参照しつつ説明する。第４図に示したステップＳＡ１では、ＣＰＵ３１０は、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＡ２では、ＣＰＵ３１０は、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。ステップＳＡ３では、ＣＰＵ３１０は、ファームウェアダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とし、ステップＳＡ１〜ステップＳＡ３の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ３１０は、ステップＳＡ１の判断結果を「Ｙｅｓ」とする。ステップＳＡ４では、ＣＰＵ３１０は、実施の形態１と同様にして通常命令実行処理（第５図参照）を実行する。
ここで、動作モード（例えば、動作モード＝０）を追加する場合、第３５図に示したステップＳＴ１では、第３４図に示したオペレーティングシステム１３１０のシェルプロセス１３１２は、プロセス管理部１３１１にプロセス起動を指示する。
ステップＳＴ２では、プロセス管理部１３１１は、ファイルシステム１３１４に対して、第３３図に示した動作モードファイル格納部１３２０から、追加すべき動作モード＝０に対応する動作モードファイル１３２１０を読み出すことを指示する。
ステップＳＴ３では、ファイルシステム１３１４は、動作モードファイル格納部１３２０から動作モードファイル１３２１０を読み出す。ステップＳＴ４では、プロセス管理部１３１１は、動作モード追加指示部１３１５へ動作モード＝０の追加を指示する。ステップＳＴ５では、動作モード追加指示部１３１５は、動作モード指示処理として、ＣＰＵ３１０に対して、動作モード追加命令を発行する。
そして、動作モード追加命令が入力されると、ＣＰＵ３１０は、第４図に示したステップＳＡ２の判断結果を「Ｙｅｓ」とする。ステップＳＡ５では、ＣＰＵ３１０は、動作モード追加処理を実行する。
具体的には、第６図に示したステップＳＣ１では、命令入力部３１１（第３４図参照）は、命令バスを介して入力された動作モード追加命令を命令使用可否判断部３１４および命令実行部３１５にフェッチする。
ステップＳＣ２では、動作モード保持部３１２は、現時点で設定されている動作モード（この場合、動作モード＝１）を使用可能命令保持部３１３へ通知する。
ステップＳＣ３では、使用可能命令保持部３１３は、通知された動作モード＝１に対応する使用可能命令群を命令使用可否判断部３１４へ通知する。
ステップＳＣ４では、命令使用可否判断部３１４は、ステップＳＣ１でフェッチされた動作モード追加命令が、当該動作モードで使用可能であるか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＣ５では、命令実行部３１５は、ステップＳＣ１でフェッチされた動作モード追加命令（使用可能命令）に対応するファームウェアをファームウェア保持部３１６から取得する。
ステップＳＣ６では、命令実行部３１５は、データ入出力部３１７より、動作モードデータおよび命令群を取得する。この場合、動作モードデータは、追加すべき動作モードに対応する「０」（第３図参照）である。また、命令群は、第３図に示した動作モード＝０に対応する命令１（０ｘ０１）〜命令ｎ（０ｘｆ８）である。
ステップＳＣ７では、命令実行部３１５は、動作モード保持部３１２に追加する動作モード＝０を設定するとともに、使用可能命令保持部３１３に動作モード＝０に対応する命令群を設定する。これにより、動作モード＝０での命令群が使用可能となる。
第３５図に戻り、ステップＳＴ６では、プロセス管理部１３１１は、ファイルシステム１３１４に対して、第３３図に示した動作モードファイル格納部１３２０から、追加された動作モード＝０に対応する動作モードファイル１３２１０を読み出すことを指示する。
ステップＳＴ７では、ファイルシステム１３１４は、動作モードファイル格納部１３２０から第３３図に示した動作モードファイル１３２１０を読み出す。ステップＳＴ８では、プロセス管理部１３１１は、第３３図に示した動作モードファイル１３２１０の命令／ファームウェア番号データ１３２４０をファームウェアダウンロード指示部１３１６へ渡し、ダウンロードを指示させる。
これにより、ファームウェアダウンロード指示部１３１６は、ＣＰＵ３１０に対して、ファームウェアダウンロード命令を発行するとともに、命令／ファームウェア番号データ１３２４０をデータ入出力部３１７へ出力する。
そして、上記ファームウェアダウンロード命令が入力されると、ＣＰＵ３１０は、第４図に示したステップＳＡ３の判断結果を「Ｙｅｓ」とする。ステップＳＡ６では、ＣＰＵ３１０は、ファームウェアダウンロード処理を実行する。
具体的には、第７図に示したステップＳＤ１では、命令入力部３１１（第３４図参照）は、命令バスを介して入力されたファームウェアダウンロード命令を命令使用可否判断部３１４および命令実行部３１５にフェッチする。ステップＳＤ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３へ通知する。
ステップＳＤ３では、使用可能命令保持部３１３は、通知された動作モードに対応する使用可能命令群を命令使用可否判断部３１４へ通知する。
ステップＳＤ４では、命令使用可否判断部３１４は、ステップＳＤ１でフェッチされたファームウェアダウンロード命令が、当該動作モードで使用可能であるか否かを判断する。具体的には、命令使用可否判断部３１４は、ステップＳＤ３で通知された使用可能命令群に、ステップＳＤ１でフェッチされたファームウェアダウンロード命令が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＤ５では、命令実行部３１５は、ステップＳＤ１でフェッチされたファームウェアダウンロード命令（使用可能命令）に対応する実行用のファームウェアをファームウェア保持部３１６から取得する。
ステップＳＤ６では、命令実行部３１５は、ファームウェアダウンロード命令およびこれに対応する実行用のファームウェアに基づいて、データ入出力部３１７およびデータバスを介してダウンロード部３３０から設定用のファームウェアを取得する。
具体的には、命令実行部３１５は、第３２図に示したダウンロード部３３０へ命令／ファームウェア番号データ１３２４０（第３３図参照）を出力するとともに、ダウンロード要求を出す。これにより、ダウンロード部３３０は、第８図に示したステップＳＥ１の判断結果を「Ｙｅｓ」とする。
ステップＳＥ２では、ダウンロード部３３０は、命令／ファームウェア番号データ１３２４０に基づいて、要求されたファームウェアに対応するファームウェア番号を指定する。つぎに、ダウンロード部３３０は、当該ファームウェア番号に基づいて、インターネット２００を介してサーバ１００へファームウェアダウンロード要求を出す。
これにより、ステップＳＥ３では、サーバ１００のＣＰＵ１１０は、ファームウェア番号をキーとして、ファームウェア格納部１３０から当該ファームウェアを読み出し、これをクライアント１３００のダウンロード部３３０へ転送する。なお、実施の形態６では、ステップＳＥ４がスキップされる。
そして、第３４図に示した命令実行部３１５は、ダウンロード部３３０から設定用のファームウェアを取得する。
第７図に戻り、ステップＳＤ７では、命令実行部３１５は、設定用のファームウェアをファームウェア保持部３１６に設定する。これにより、前述した動作モード追加処理により追加された動作モードでの命令群が使用可能となる。
以上説明したように、実施の形態６によれば、実施の形態１と同様の効果を奏する。
（実施の形態７）
さて、前述した実施の形態６では、ＣＰＵ３１０（第３２図参照）外部のオペレーティングシステムにより動作モード追加の指示、ファームウェアダウンロードの指示を行う構成例について説明したが、動作モードの削除の指示およびファームウェアアンロード指示も行うように構成してもよい。以下では、この構成例を実施の形態７として説明する。
第３６図は、本発明にかかる実施の形態７の構成を示すブロック図である。この図において、第３２図の各部に対応する部分には同一の符号を付ける。第３６図に示したクライアント１４００は、インターネット２００に接続されており、インターネット２００を介して、サーバ１００からファームウェアをダウンロードする機能と、ファームウェアをアンロードする機能と、ファームウェアを用いて各種命令を実行し、結果を出力する機能とを備えている。
クライアント１４００において、オペレーティングシステム１４２０は、動作モード追加、動作モード削除、ファームウェアダウンロードおよびファームウェアアンロードを指示するためのシステムである。
なお、実施の形態７において、第３６図に示したダウンロード部３３０は、ファームウェアダウンロード命令を発行せず、ダウンロード機能のみを備えている。ファームウェアダウンロード命令は、オペレーティングシステム１４２０により発行される。
第３７図は、第３６図に示したオペレーティングシステム１４２０およびＣＰＵ１４１０の構成を示すブロック図である。この図において、第３４図に対応する部分には同一の符号を付け、その説明を省略する。
第３７図に示したオペレーティングシステム１４２０において、プロセス管理部１４２１は、第１のプロセス１４２２や第２のプロセス１４２３を管理する。待避メモリ１４２４は、プロセス管理部１４２１の制御の下で、各種データを一時的に待避させるメモリである。
動作モード追加／削除指示部１４２５は、プロセス管理部１４２１の制御の下で、ＣＰＵ１４１０における動作モード追加および削除を指示する。ファームウェアダウンロード／アンロード指示部１４２６は、プロセス管理部１４２１の制御の下でサーバ１００（第３６参照）からのファームウェアのダウンロード、およびファームウェア保持部３１６に設定されたファームウェアのアンロードを指示する。
コンテキストデータロード／アンロード指示部１４２７は、コンテキストデータ（ＣＰＵ１４１０内部のレジスタ（図示略）の値）のロードおよびアンロードを指示する。
つぎに、実施の形態７の動作について、第３８図〜第４１図に示したフローチャートを参照しつつ説明する。第３８図に示したステップＳＵ１では、ＣＰＵ１４１０は、通常命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＵ２では、ＣＰＵ１４１０は、動作モード追加命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。ステップＳＵ３では、ＣＰＵ１４１０は、ファームウェアダウンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
ステップＳＵ４では、ＣＰＵ１４１０は、動作モード削除命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。この動作モード削除命令は、動作モード保持部３１２（第３７図参照）に設定された動作モードを削除するための命令である。
ステップＳＵ５では、ＣＰＵ１４１０は、ファームウェアアンロード命令が入力されたか否かを判断し、この場合、判断結果を「Ｎｏ」とする。このファームウェアアンロード命令は、ファームウェア保持部３１６に設定されたファームウェアをアンロードするための命令である。以後、ＣＰＵ１４１０は、ステップＳＵ１〜ステップＳＵ５の判断を繰り返す。
そして、通常命令が入力されると、ＣＰＵ１４１０は、ステップＳＵ１の判断結果を「Ｙｅｓ」とする。ステップＳＵ６では、ＣＰＵ１４１０は、実施の形態１と同様にして通常命令実行処理（第５図参照）を実行する。
ここで、動作モード（例えば、動作モード＝０）を追加するとともに、動作モード（例えば、動作モード＝１）を削除する場合、第４１図に示したステップＳＸ１では、第３７図に示したオペレーティングシステム１４２０のプロセス管理部１４２１は、コンテキストデータロード／アンロード指示部１４２７に対して、第１のプロセス１４２２のコンテキストデータのアンロードを指示する。
ステップＳＸ２では、コンテキストデータロード／アンロード指示部１４２７は、ＣＰＵ１４１０から第１のプロセス１４２２のコンテキストデータをアンロードし、これをプロセス管理部１４２１経由で待避メモリ１４２４に待避する。
ステップＳＸ３では、プロセス管理部１４２１は、ファームウェアダウンロード／アンロード指示部１４２６に対して、第１のプロセス１４２２の動作モード（動作モード＝１）に対応するファームウェアのアンロードを指示する。ステップＳＸ４では、ファームウェアダウンロード／アンロード指示部１４２６は、ＣＰＵ１４１０に対してファームウェアアンロード命令を発行する。
そして、上記ファームウェアアンロード命令が入力されると、ＣＰＵ１４１０は、第３８図に示したステップＳＵ５の判断結果を「Ｙｅｓ」とする。ステップＳＵ１０では、ＣＰＵ１４１０は、ファームウェアアンロード処理を実行する。
具体的には、第４０図に示したステップＳＷ１では、命令入力部３１１（第３７図参照）は、命令バスを介して入力されたファームウェアアンロード命令を命令使用可否判断部３１４および命令実行部１４１１にフェッチする。ステップＳＷ２では、動作モード保持部３１２は、現時点で設定されている動作モード＝１を使用可能命令保持部３１３へ通知する。
ステップＳＷ３では、使用可能命令保持部３１３は、通知された動作モードに対応する使用可能命令群を命令使用可否判断部３１４へ通知する。
ステップＳＷ４では、命令使用可否判断部３１４は、ステップＳＷ１でフェッチされたファームウェアアンロード命令が、当該動作モードで使用可能であるか否かを判断する。この判断結果が「Ｎｏ」である場合、ステップＳＷ７では、命令使用可否判断部３１４は、権限違反または未定義命令例外割り込み発生（エラー）として処理する。
この場合、ステップＳＷ４の判断結果が「Ｙｅｓ」であるとすると、ステップＳＷ５では、命令実行部１４１１は、ステップＳＷ１でフェッチされたファームウェアアンロード命令（使用可能命令）に対応する実行用のファームウェアをファームウェア保持部３１６から取得する。
ステップＳＷ６では、命令実行部１４１１は、ファームウェアアンロード命令およびこれに対応する実行用のファームウェアに基づいて、ファームウェアアンロード命令に対応するファームウェアをファームウェア保持部３１６からアンロードし、これをデータ入出力部３１７を経由してファームウェアダウンロード／アンロード指示部１４２６へ出力する。
第４１図に戻り、ステップＳＸ５では、ファームウェアダウンロード／アンロード指示部１４２６は、アンロードされたファームウェアをプロセス管理部１４２１経由で待避メモリ１４２４に待避する。ステップＳＸ６では、プロセス管理部１４２１は、動作モード追加／削除指示部１４２５に対して、第１のプロセス１４２２の動作モード＝１の削除を指示する。ステップＳＸ７では、動作モード追加／削除指示部１４２５は、ＣＰＵ１４１０に対して、動作モード＝１を削除するための動作モード削除命令を発行する。
そして、動作モード削除命令が入力されると、ＣＰＵ１４１０は、第３８図に示したステップＳＵ４の判断結果を「Ｙｅｓ」とする。ステップＳＵ９では、ＣＰＵ１４１０は、動作モード削除処理を実行する。
具体的には、第３９図に示したステップＳＶ１では、命令入力部３１１（第３７図参照）は、命令バスを介して入力された動作モード削除命令を命令使用可否判断部３１４および命令実行部１４１１にフェッチする。
ステップＳＶ２では、動作モード保持部３１２は、現時点で設定されている動作モードを使用可能命令保持部３１３へ通知する。
ステップＳＶ３では、使用可能命令保持部３１３は、通知された動作モードに対応する使用可能命令群を命令使用可否判断部３１４へ通知する。
ステップＳＶ４では、命令使用可否判断部３１４は、ステップＳＶ１でフェッチされた動作モード削除命令が、当該動作モードで使用可能であるか否かを判断する。この判断結果が「Ｎｏ」である場合、ステップＳＶ７では、命令使用可否判断部３１４は、権限違反または未定義命令割り込み発生（エラー）として処理する。
この場合、ステップＳＶ４の判断結果が「Ｙｅｓ」であるとすると、ステップＳＶ５では、命令実行部１４１１は、ステップＳＶ１でフェッチされた動作モード削除命令（使用可能命令）に対応するファームウェアをファームウェア保持部３１６から取得する。
ステップＳＶ６では、命令実行部１４１１は、動作モード保持部３１２に設定されている動作モードのうち動作モード追加／削除指示部１４２５により指示された動作モードを削除する。
第４１図に戻り、ステップＳＸ８では、プロセス管理部１４２１は、動作モード追加／削除指示部１４２５に対して、第２のプロセス１４２３の動作モード＝０の追加を指示する。ステップＳＸ９では、動作モード追加／削除指示部１４２５は、ＣＰＵ１４１０に対して、動作モード＝０を追加するための動作モード追加命令を発行する。
そして、動作モード追加命令が入力されると、ＣＰＵ１４１０は、第３８図に示したステップＳＵ２の判断結果を「Ｙｅｓ」とする。ステップＳＵ７では、ＣＰＵ１４１０は、実施の形態１と同様にして動作モード追加処理（第６図参照）を実行する。これにより、動作モード保持部３１２には、動作モード＝０が追加される。
第４１図に戻り、ステップＳＸ１０では、プロセス管理部１４２１は、ファームウェアダウンロード／アンロード指示部１４２６に対して、第２のプロセス１４２３の動作モード（動作モード＝０）に対応するファームウェアのダウンロードロードを指示する。ステップＳＸ１１では、ファームウェアダウンロード／アンロード指示部１４２６は、ＣＰＵ１４１０に対してファームウェアダウンロード命令を発行する。
そして、上記ファームウェアダウンロード命令が入力されると、ＣＰＵ１４１０は、第３８図に示したステップＳＵ３の判断結果を「Ｙｅｓ」とする。ステップＳＵ８では、ＣＰＵ１４１０は、実施の形態１と同様にしてファームウェアダウンロード処理（第７図参照）を実行する。これにより、ファームウェア保持部３１６には、動作モード＝０に対応するファームウェアが設定される。
第４１図に戻り、ステップＳＸ１２では、第３７図に示したオペレーティングシステム１４２０のプロセス管理部１４２１は、コンテキストデータロード／アンロード指示部１４２７に対して、第２のプロセス１４２３のコンテキストデータのロードを指示する。ステップＳＸ１３では、コンテキストデータロード／アンロード指示部１４２７は、第２のプロセス１４２３のコンテキストデータをＣＰＵ１４１０にロードする。
以上説明したように、実施の形態７によれば、複数の動作モードのうち動的に指定された動作モードを動作モード保持部３１２（第３７図参照）から削除し、さらに削除された動作モードに対応するファームウェアをファームウェア保持部３１６から削除するようにしたので、有限であるＣＰＵ１４１０の資源を有効に活用することができる。
（実施の形態８）
さて、前述した実施の形態１では、ステップＳＢ９（第５図参照）、ステップＳＣ８（第６図参照）またはステップＳＤ８（第７図参照）で未定義命令例外割り込み発生（エラー）の場合、通常命令実行処理、動作モード追加処理またはファームウェアダウンロード処理を中断する例について説明したが、ＣＰＵ３１０（第２図参照）の外部に、ＣＰＵ３１０における各種処理をエミュレートするエミュレート部を設ける構成としてもよい。以下では、この構成例を実施の形態８として説明する。
第４２図は、本発明にかかる実施の形態８の構成を示すブロック図である。この図において、第１図の各部に対応する部分には同一の符号を付け、その説明を省略する。
クライアント１５００は、インターネット２００に接続されており、インターネット２００を介して、サーバ１００からファームウェアをダウンロードする機能と、ファームウェアを用いて各種命令を実行し、結果を出力する機能と、エミュレート機能とを備えている。
クライアント１５００において、ＣＰＵ１５１０は、ファームウェアを動的にダウンロードさせるための制御や、後述する動作モードや命令群の設定等を行う。エミュレート部１５２０は、ＣＰＵ１５１０で未定義命令例外割り込み発生（エラー）の場合、通常命令実行処理、動作モード追加処理またはファームウェアダウンロード処理をエミュレートする。
第４３図は、第４２図に示したＣＰＵ１５１０およびエミュレート部１５２０の構成を示すブロック図である。この図において、第２図の各部に対応する部分には同一の符号を付け、その説明を省略する。
命令実行部１５１１は、命令使用可否判断部３１４により使用可能と判断された命令の実行に用いられるファームウェアをファームウェア保持部３１６より取得し、当該命令を実行する。また、命令実行部１５１１は、命令実行時に未定義命令例外割り込み（エラー）が発生した場合、エミュレート部１５２０のアドレスにジャンプし、エミュレート部１５２０に当該命令に対応する処理をエミュレートさせる。
エミュレート部１５２０において、制御部１５２１は、各部を制御する。動作モード保持部１５２２は、動作モード保持部３１２と同一の機能を備えており、動作モードを保持する。使用可能命令保持部１５２３は、使用可能命令保持部３１３と同一の機能を備えており、動作モード保持部１５２２に設定された動作モードに対応する使用可能命令を保持する。
ジャンプ先アドレス格納部１５２４は、未定義命令例外割り込み発生（エラー）の場合のジャンプ先アドレスを格納している。未定義命令割り込みハンドラ１５２５は、命令実行部１５１１と同一の機能を備えており、未定義命令例外割り込み発生（エラー）の場合に命令実行部１５１１での処理をエミュレートする。
つぎに、実施の形態８の動作について、第５図〜第７図および第４４図に示したフローチャートを参照しつつ説明する。
第４４図に示したステップＳＹ１では、命令実行部１５１１は、第５図、第６図または第７図に示した通常命令実行処理、動作モード追加処理またはファームウェアダウンロード処理で未定義命令例外割り込み（エラー）が発生したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
例えば、第５図に示したステップＳＢ９で未定義命令例外割り込みが発生すると、命令実行部１５１１は、第４４図に示したステップＳＹ１の判断結果を「Ｙｅｓ」とする。ステップＳＹ２では、命令実行部１５１１は、ジャンプ先アドレスにジャンプし、未定義命令割り込みハンドラ１５２５に当該命令（この場合、通常命令）および動作モードを通知する。ステップＳＹ３では、未定義命令割り込みハンドラ１５２５は、未定義命令割り込みハンドラの実行を開始する。
ステップＳＹ４では、未定義命令割り込みハンドラ１５２５は、命令実行部１５１１より通知された当該命令の種別を判断する。ステップＳＹ５では、未定義命令割り込みハンドラ１５２５は、当該命令（この場合、通常命令）が使用可能であるか否かを判断する。
具体的には、未定義命令割り込みハンドラ１５２５は、命令実行部１５１１より通知された動作モードに対応する使用可能命令群を使用可能命令保持部１５２３から取得し、この使用可能命令群に当該命令（この場合通常命令）が存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＹ６では、未定義命令割り込みハンドラ１５２５は、当該命令（この場合、通常命令）の実行をエミュレートするエミュレート処理を実行する。具体的には、未定義命令割り込みハンドラ１５２５は、当該命令（この場合、通常命令）に対応するファームウェアをファームウェア保持部３１６から取得する。
つぎに、未定義命令割り込みハンドラ１５２５は、データバスより命令実行に用いられるデータを取得した後、ファームウェアおよびデータを用いて通常命令を実行する。つぎに、未定義命令割り込みハンドラ１５２５は、通常命令を実行した結果をデータバスへ出力する。
一方、ステップＳＹ５の判断結果が「Ｎｏ」である場合、すなわち、ステップＳＹ７では、未定義命令割り込みハンドラ１５２５は、権限違反例外割り込み通知を命令実行部１５１１へ出す。
以上説明したように、実施の形態８によれば、動作モード保持部３１２（第４３図参照）に保持された動作モードに対応する命令に関して未定義命令例外割り込み（エラー）が発生した場合、当該命令の実行を外部のエミュレート部１５２０に依頼するようにしたので、命令実行の信頼性を高めることができる。
以上本発明にかかる実施の形態１〜８について図面を参照して詳述してきたが、具体的な構成例はこれらの実施の形態１〜８に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
例えば、前述した実施の形態１〜８においては、前述した各種機能を実現するためのプログラムを第４５図に示したコンピュータ読み取り可能な記録媒体１７００に記録して、この記録媒体１７００に記録されたプログラムを同図に示したコンピュータ１６００に読み込ませ、実行することにより各種機能を実現してもよい。
同図に示したコンピュータ１６００は、上記プログラムを実行するＣＰＵ１６１０と、キーボード、マウス等の入力装置１６２０と、各種データを記憶するＲＯＭ１６３０と、演算パラメータ等を記憶するＲＡＭ１６４０と、記録媒体１７００からプログラムを読み取る読取装置１６５０と、ディスプレイ、プリンタ等の出力装置１６６０と、装置各部を接続するバス１６７０とから構成されている。
ＣＰＵ１６１０は、読取装置１６５０を経由して記録媒体１７００に記録されているプログラムを読み込んだ後、このプログラムを実行することにより、前述した各種機能を実現する。なお、記録媒体１７００には、光ディスク、フレキシブルディスク、ハードディスク等の可搬型の記録媒体が含まれることはもとより、ネットワークのようにデータを一時的に記録保持するような伝送媒体も含まれる。
また、実施の形態１〜８においては、それぞれの特徴を組み合わせて構成してもよい。組み合わせの構成も本発明に含まれる。
以上説明したように、本発明によれば、複数の動作モードのうち動的に指定された動作モードを動作モード保持手段に追加し、追加された動作モードに対応する命令を使用可能命令保持手段に設定し、さらに、命令の実行に用いられるファームウェアを外部から取得するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができるという効果を奏する。
また、本発明によれば、暗号化されたファームウェアを外部から取得した後、該ファームウェアを復号するようにしたので、ファームウェア取得中のセキュリティを高めることができるという効果を奏する。
また、本発明によれば、電子署名付きのファームウェアを外部から取得した後、該ファームウェアを認証するようにしたので、ファームウェア取得中の改竄等を防止することができるという効果を奏する。
また、本発明によれば、動作モードに応じて、命令の実行に際して利用される各種資源に対するアクセス制御を行うようにしたので、動作モードに応じて動的に資源を割り当てることができるという効果を奏する。
また、本発明によれば、動的に指定された動作モードの命令数が、動作モード保持手段に既に保持されている動作モードの命令数より多い場合に限り、動的に指定された動作モードを動作モード保持手段に追加するようにしたので、より厳しい条件での動作モードの追加が可能となり、セキュリティをさらに高めることができるという効果を奏する。
また、本発明によれば、複数の動作モードのうち動的に指定された動作モードを動作モード保持手段から削除し、さらに削除された動作モードに対応するファームウェアを削除するようにしたので、有限である中央演算装置の資源を有効に活用することができるという効果を奏する。
また、本発明によれば、動作モード保持手段に保持された動作モードに対応する命令に関してエラーが発生した場合、当該命令の実行を外部のエミュレータに依頼するようにしたので、命令実行の信頼性を高めることができるという効果を奏する。
また、本発明によれば、複数の動作モードのうち動的に指定された動作モードを動作モード保持手段に追加し、追加された動作モードに対応する命令を使用可能命令保持手段に設定し、さらに、動作モード保持手段に保持された動作モードに対応し、命令の実行に用いられる論理回路を生成するための論理回路データを外部から取得するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができるという効果を奏する。
また、本発明によれば、命令の実行に際して、該命令に対応する論理回路データに基づいて、動的に論理回路を生成するようにしたので、セキュリティを維持しつつ拡張性を高めることができ、コストを低減させることができるという効果を奏する。
産業上の利用可能性
以上のように、本発明にかかる中央演算装置および演算プログラムは、暗号化／復号、電子署名等のセキュリティ機能を提供するサーバ、クライアントに対して有用である。
【図面の簡単な説明】
第１図は、本発明にかかる実施の形態１の構成を示すブロック図であり、第２図は、第１図に示したＣＰＵ３１０の構成を示すブロック図であり、第３図は、同実施の形態１における動作モード／命令対応表４００を示す図であり、第４図は、第２図に示したＣＰＵ３１０、第２７図に示したＣＰＵ１１１０、第３４図に示したＣＰＵ３１０および第４３図に示したＣＰＵ１５１０の動作を説明するフローチャートであり、第５図は、第４図、第１８図および第２３図に示した通常命令実行処理を説明するフローチャートであり、第６図は、第４図、第１８図および第２３図に示した動作モード追加処理を説明するフローチャートであり、第７図は、第４図に示したファームウェアダウンロード処理を説明するフローチャートであり、第８図は、同実施の形態１の動作を説明するフローチャートであり、第９図は、本発明にかかる実施の形態２の構成を示すブロック図であり、第１０図は、第９図に示したＣＰＵ６１０の構成を示すブロック図であり、第１１図は、第１０図に示したＣＰＵ６１０の動作を説明するフローチャートであり、第１２図は、第１１図に示した通常命令実行処理を説明するフローチャートであり、第１３図は、第１１図に示した動作モード追加処理を説明するフローチャートであり、第１４図は、第１１図に示した論理回路データダウンロード処理を説明するフローチャートであり、第１５図は、同実施の形態２の動作を説明するフローチャートであり、第１６図は、本発明にかかる実施の形態３の構成を示すブロック図であり、第１７図は、第１６図に示したＣＰＵ８１０の構成を示すブロック図であり、第１８図は、第１７図に示したＣＰＵ８１０の動作を説明するフローチャートであり、第１９図は、第１８図に示した暗号化ファームウェアダウンロード処理を説明するフローチャートであり、第２０図は、同実施の形態３の動作を説明するフローチャートであり、第２１図は、本発明にかかる実施の形態４の構成を示すブロック図であり、第２２図は、第２１図に示したＣＰＵ１０１０の構成を示すブロック図であり、第２３図は、第２１図に示したＣＰＵ１０１０の動作を説明するフローチャートであり、第２４図は、第２３図に示した電子署名付きファームウェアダウンロード処理を説明するフローチャートであり、第２５図は、同実施の形態４の動作を説明するフローチャートであり、第２６図は、本発明にかかる実施の形態５の構成を示すブロック図であり、第２７図は、第２６図に示したＣＰＵ１１１０の構成を示すブロック図であり、第２８図は、同実施の形態５における動作モード／資源対応表１２００を示す図であり、第２９図は、同実施の形態５における通常命令実行処理を説明するフローチャートであり、第３０図は、第２９図に示したアクセス制御処理を説明するフローチャートであり、第３１図は、同実施の形態５における動作モード追加処理を説明するフローチャートであり、第３２図は、本発明にかかる実施の形態６の構成を示すブロック図であり、第３３図は、同実施の形態６における動作モードファイル１３２１０〜１３２１ｋのデータ構造を示す図であり、第３４図は、第３２図に示したオペレーティングシステム１３１０およびＣＰＵ３１０の構成を示すブロック図であり、第３５図は、第３４図に示したオペレーティングシステム１３１０の動作を説明するフローチャートであり、第３６図は、本発明にかかる実施の形態７の構成を示すブロック図であり、第３７図は、第３６図に示したＣＰＵ１４１０およびオペレーティングシステム１４２０の構成を示すブロック図であり、第３８図は、第３７図に示したＣＰＵ１４１０の動作を説明するフローチャートであり、第３９図は、第３８図に示した動作モード削除処理を説明するフローチャートであり、第４０図は、第３８図に示したファームウェアアンロード処理を説明するフローチャートであり、第４１図は、第３７図に示したオペレーティングシステム１４２０の動作を説明するフローチャートであり、第４２図は、本発明にかかる実施の形態８の構成を示すブロック図であり、第４３図は、第４２図に示したＣＰＵ１５１０およびエミュレート部１５２０の構成を示すブロック図であり、第４４図は、第４３図に示したエミュレート部１５２０の動作を説明するフローチャートであり、第４５図は、本発明にかかる実施の形態１〜８の変形例の構成を示すブロック図であり、第４６図は、従来のセキュリティシステムの構成を示すブロック図である。
【図１】
2003046715.tif 000003
【図２】
2003046715.tif 000004
【図３】
2003046715.tif 000005
【図４】
2003046715.tif 000006
【図５】
2003046715.tif 000007
【図６】
2003046715.tif 000008
【図７】
2003046715.tif 000009
【図８】
2003046715.tif 000010
【図９】
2003046715.tif 000011
【図１０】
2003046715.tif 000012
【図１１】
2003046715.tif 000013
【図１２】
2003046715.tif 000014
【図１３】
2003046715.tif 000015
【図１４】
2003046715.tif 000016
【図１５】
2003046715.tif 000017
【図１６】
2003046715.tif 000018
【図１７】
2003046715.tif 000019
【図１８】
2003046715.tif 000020
【図１９】
2003046715.tif 000021
【図２０】
2003046715.tif 000022
【図２１】
2003046715.tif 000023
【図２２】
2003046715.tif 000024
【図２３】
2003046715.tif 000025
【図２４】
2003046715.tif 000026
【図２５】
2003046715.tif 000027
【図２６】
2003046715.tif 000028
【図２７】
2003046715.tif 000029
【図２８】
2003046715.tif 000030
【図２９】
2003046715.tif 000031
【図３０】
2003046715.tif 000032
【図３１】
2003046715.tif 000033
【図３２】
2003046715.tif 000034
【図３３】
2003046715.tif 000035
【図３４】
2003046715.tif 000036
【図３５】
2003046715.tif 000037
【図３６】
2003046715.tif 000038
【図３７】
2003046715.tif 000039
【図３８】
2003046715.tif 000040
【図３９】
2003046715.tif 000041
【図４０】
2003046715.tif 000042
【図４１】
2003046715.tif 000043
【図４２】
2003046715.tif 000044
【図４３】
2003046715.tif 000045
【図４４】
2003046715.tif 000046
【図４５】
2003046715.tif 000047
【図４６】
2003046715.tif 000048
【国際調査報告】
2003046715.tif 000049
2003046715.tif 000050
2003046715.tif 000051