(57)【特許請求の範囲】
【請求項１】
ネットワークを介して転送されるデータの中から処理対象となるデータを処理する情報処理装置であって、
前記処理対象となるデータを受け、所定のプログラムを実行することにより装置全体の動作を制御する演算処理手段と、
入力されるデータに所定の処理を行うために専用に設けられた複数の専用処理手段と、
前記演算処理手段又は前記専用処理手段から出力されるデータを記憶する記憶手段と、
前記専用処理手段の処理状態を示す処理状態情報及び前記記憶手段の記憶状態を示す記憶状態情報を記憶し、記憶した処理状態情報及び記憶状態情報に応じて、前記演算処理手段と前記記憶手段との間の接続状態、及び、前記複数の専用処理手段と前記記憶手段との間の接続状態を切り替える切り替え手段と、
前記専用処理手段ごとに設けられ、前記専用処理手段と前記切り替え手段との間のインターフェースを行う複数の処理用インターフェース手段とを備え、
前記複数の専用処理手段は、
所定の暗号処理を行うために専用に設けられた複数の専用暗号処理手段のみを含むか、或いは、所定の暗号処理を行うために専用に設けられた専用暗号処理手段及び所定の認証処理を行うために専用に設けられた専用認証処理手段の両者を混在して含むか、のいずれかであり、
前記処理用インターフェース手段は、前記切り替え手段側のインターフェースに共通化されたプロトコルを用いることを特徴とする情報処理装置。
【請求項２】
前記記憶手段は、前記演算処理手段又は前記専用処理手段から出力されるデータを記憶する複数の記憶手段を含み、
前記切り替え手段は、前記演算処理手段と前記記憶手段との間の接続状態、及び、前記複数の専用処理手段と前記記憶手段との間の接続状態を切り替えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記記憶手段ごとに設けられ、前記記憶手段と前記切り替え手段との間のインターフェースを行う記憶用インターフェース手段をさらに備え、
前記記憶用インターフェース手段は、前記切り替え手段側のインターフェースに共通化されたプロトコルを用いることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記演算処理手段は、前記記憶手段の中から書き込み可能な記憶手段を前記切り替え手段に問い合わせ、
前記切り替え手段は、前記演算処理手段からの問い合わせに応じて書き込み可能な記憶手段の一つを前記演算処理手段に通知するとともに、通知した記憶手段と前記演算処理手段とを接続することを特徴とする請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
前記切り替え手段は、前記演算処理手段から前記記憶手段に記憶されているデータに対する処理要求を受けた場合、当該データを処理すべき専用処理手段が処理可能な状態になった後に当該専用処理手段と当該記憶手段とを接続することを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
前記専用処理手段ごとに設けられ、当該専用処理手段の処理が終了したことを示す処理終了通知信号を前記切り替え手段へ出力する処理管理手段をさらに備え、
前記切り替え手段は、前記処理終了通知信号により専用処理手段の処理が終了したことを検知した場合、前記処理終了通知信号を取り消すことを指示する処理終了通知取り消し信号を前記処理管理手段へ出力し、
前記処理管理手段は、前記処理終了通知取り消し信号に応じて前記処理終了通知信号を取り消すことを特徴とする請求項１〜５のいずれかに記載の情報処理装置。
【請求項７】
前記切り替え手段は、前記記憶手段ごとに当該記憶手段に記憶されているデータの前記専用処理手段による処理が終了したことを示す処理終了情報を記憶し、記憶されている処理終了情報が処理終了を示す場合、前記演算処理手段に割り込み要求信号を出力し、
前記演算処理手段は、前記割り込み要求信号を受けた場合、当該処理終了情報に対応する記憶手段からデータを読み出し、
前記切り替え手段は、前記演算処理手段が前記記憶手段からのデータの読み出し動作を開始した後に前記割り込み要求信号を取り消すとともに、当該記憶手段に対して記憶されている処理終了情報を取り消し、さらに、前記演算処理手段がデータの読み出し動作を完了した後に、記憶されている他の処理終了情報が処理終了を示す場合、前記演算処理手段に割り込み要求信号を出力することを特徴とする請求項１〜６のいずれかに記載の情報処理装置。
【請求項８】
前記演算処理手段は、前記記憶手段の中から読み出し可能な記憶手段を前記切り替え手段に問い合わせ、
前記切り替え手段は、前記演算処理手段からの問い合わせに応じて読み出し可能な記憶手段の一つを前記演算処理手段に通知するとともに、通知した記憶手段と前記演算処理手段とを接続することを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記切り替え手段は、前記演算処理手段が前記記憶手段に記憶されているデータを読み出して当該データを確認するための確認モードにおいて、前記演算処理手段がデータを読み出した記憶手段に対して記憶している各情報を変化させないことを特徴とする請求項１〜８のいずれかに記載の情報処理装置。
【請求項１０】
前記切り替え手段は、前記専用処理手段が前記記憶手段に記憶されているデータを処理できない場合、前記専用処理手段が前記記憶手段に記憶されているデータを処理できないことを前記演算処理手段に通知し、
前記演算処理手段は、他の専用処理手段が処理可能なデータを前記記憶手段に記憶させることを特徴とする請求項１〜９のいずれかに記載の情報処理装置。
【請求項１１】
前記切り替え手段は、前記専用処理手段が前記記憶手段に記憶されているデータを処理できない場合、他の専用処理手段により現在可能な処理を前記演算処理手段に通知し、
前記演算処理手段は、通知された処理が行われるデータを前記記憶手段に記憶させることを特徴とする請求項１〜１０のいずれかに記載の情報処理装置。
【請求項１２】
前記記憶手段は、前記複数の専用処理手段及び前記切り替え手段とともに一つの集積回路により構成されることを特徴とする請求項１〜１１のいずれかに記載の情報処理装置。
【請求項１３】
前記演算処理手段は、前記複数の専用処理手段及び前記切り替え手段とともに一つの集積回路により構成されることを特徴とする請求項１〜１２のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して転送されるデータの中から処理対象となるデータを処理する情報処理装置に関するものである。
【０００２】
【従来の技術】
近年、インターネット等のネットワークの普及に伴い、ネットワークを用いた種々のサービスが行われている。このようなサービスを利用する際、アクセスするユーザを特定するために認証処理が行われたり、セキュリティーを確保するためにデータを暗号化して転送したり、暗号化されたデータを復号化することが一般に行われるようになっている。
【０００３】
上記の暗号処理及び認証処理を行う従来の暗号認証装置としては、例えば、一つ又は複数のＣＰＵ（中央演算処理装置）と所定のプログラムとを用いてソフトウエアにより暗号処理及び認証処理を行うものがある。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記のようにソフトウエアを用いて暗号処理及び認証処理を行う場合、暗号処理及び認証処理に長時間を要し、データを高速に処理することができない。すなわち、近年では転送技術の進歩によりネットワーク上でデータを高速に転送することができるが、上記のソフトウエアによる暗号処理及び認証処理を用いたのでは、暗号処理及び認証処理がネットワーク上のデータ転送のボトルネックとなることが頻繁に発生し、ネットワーク上でのデータ転送の障害となっている。
【０００５】
本発明の目的は、ネットワーク上で転送されるデータをデータ転送の障害とならないように高速に処理することができる情報処理装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明に係る情報処理装置は、ネットワークを介して転送されるデータの中から処理対象となるデータを処理する情報処理装置であって、処理対象となるデータを受け、所定のプログラムを実行することにより装置全体の動作を制御する演算処理手段と、入力されるデータに所定の処理を行うために専用に設けられた複数の専用処理手段と、演算処理手段又は専用処理手段から出力されるデータを記憶する記憶手段と、前記演算処理手段と前記記憶手段との間の接続状態、及び、前記複数の専用処理手段と前記記憶手段との間の接続状態を切り替える切り替え手段とを備えるものである。
【０００７】
本発明に係る情報処理装置においては、所定のプログラムを実行することにより装置全体の動作を制御する演算処理手段がネットワークを介して転送されるデータの中から処理対象となるデータを受け、切り替え手段が演算処理手段と記憶手段とを接続し、演算処理手段が処理対象となるデータを記憶手段に記憶させることができる。次に、切り替え手段が記憶手段と専用処理手段とを接続し、所定の処理を行うために専用に設けられた専用処理手段が記憶手段に記憶されているデータを処理することができる。
【０００８】
したがって、専用のハードウエアを用いて高速にデータを処理することができるとともに、並列処理が可能な場合は複数の専用処理手段により並列処理することができ、より高速にデータを処理することができる。この結果、ネットワーク上で転送されるデータをデータ転送の障害とならないように高速に処理することができる。
【０００９】
また、本発明によれば、前記複数の専用処理手段は、所定の暗号処理を行うために専用に設けられる専用暗号処理手段及び所定の認証処理を行うために専用に設けられる専用認証処理手段のうち、前記専用暗号処理手段及び前記専用認証処理手段と複数の前記専用暗号処理手段との一方を有するものであるから、複数の専用暗号処理手段を用いて上記のように暗号処理を並列に行ったり、専用暗号処理手段及び専用認証処理手段を用いて暗号処理及び認証処理を並列に行ったりすることができ、その結果、暗号処理を高速に行ったり、より高速にデータを処理したりすることができる。
【００１０】
そして、専用処理手段ごとに設けられ、専用処理手段と切り替え手段との間のインターフェースを行う複数の処理用インターフェース手段をさらに備え、処理用インターフェース手段は、切り替え手段側のインターフェースに共通化されたプロトコルを用いるようにしたので、新たな処理方式等を採用した専用処理手段を用いる場合でも、変更すべき部分が処理用インターフェース手段の切り替え手段側を超えることがなく、専用処理手段の変更を容易に行うことができる。
【００１１】
記憶手段は、演算処理手段又は専用処理手段から出力されるデータを記憶する複数の記憶手段を含み、切り替え手段は、演算処理手段又は複数の専用処理手段と複数の記憶手段との間の接続状態を切り替えることが好ましい。
【００１２】
この場合、複数の記憶手段の一つが使用されている場合でも、他の記憶手段を用いてデータを処理することができるので、より高速にデータを処理することができる。
【００１３】
記憶手段ごとに設けられ、記憶手段と切り替え手段との間のインターフェースを行う記憶用インターフェース手段をさらに備え、記憶用インターフェース手段は、切り替え手段側のインターフェースに共通化されたプロトコルを用いることが好ましい。
【００１４】
この場合、切り替え手段側のインターフェースを共通化しているので、新たなアーキテクチャ等を採用した記憶手段を用いる場合でも、変更すべき部分が記憶用インターフェース手段の切り替え手段側を超えることがなく、記憶手段の変更を容易に行うことができる。
【００１５】
切り替え手段は、専用処理手段の処理状態を示す処理状態情報及び記憶手段の記憶状態を示す記憶状態情報を記憶し、記憶した処理状態情報及び記憶状態情報に応じて前記演算処理手段と前記記憶手段との間の接続状態、及び、前記複数の専用処理手段と前記記憶手段との間の接続状態を切り替えることが好ましい。
【００１６】
この場合、処理状態情報及び記憶状態情報に応じて前記演算処理手段と前記記憶手段との間の接続状態、及び、前記複数の専用処理手段と前記記憶手段との間の接続状態を切り替えているので、正常なデータ処理を妨げることなく、前記演算処理手段と前記記憶手段との間の接続状態、及び、前記複数の専用処理手段と前記記憶手段との間の接続状態を切り替えて高速にデータを処理することができる。
【００１７】
演算処理手段は、記憶手段の中から書き込み可能な記憶手段を切り替え手段に問い合わせ、切り替え手段は、演算処理手段からの問い合わせに応じて書き込み可能な記憶手段の一つを演算処理手段に通知するとともに、通知した記憶手段と演算処理手段とを接続することが好ましい。
【００１８】
この場合、書き込み可能な記憶手段があることを演算処理手段に通知するとともに、通知した記憶手段と演算処理手段とを接続しているので、演算処理手段が一度アクセスするだけで書き込み可能な記憶手段の確認及び切り替え手段の設定を行うことができ、記憶手段へのデータ書き込み処理におけるオーバーヘッドを軽減することができる。
【００１９】
切り替え手段は、演算処理手段から記憶手段に記憶されているデータに対する処理要求を受けた場合、当該データを処理すべき専用処理手段が処理可能な状態になった後に当該専用処理手段と当該記憶手段とを接続することが好ましい。
【００２０】
この場合、演算処理手段から処理要求を受けたデータを処理すべき専用処理手段が処理可能な状態になった後に専用処理手段と記憶手段とを接続しているので、処理要求を受けたときに専用処理手段がすぐに処理できない場合でも、演算処理手段は１回の処理要求を発するだけで、専用処理手段が処理可能な状態になった後に記憶手段から専用処理手段へデータを転送して処理することができ、演算処理手段のソフトウエアによる処理を簡略化することができる。
【００２１】
専用処理手段ごとに設けられ、当該専用処理手段の処理が終了したことを示す処理終了通知信号を切り替え手段へ出力する処理管理手段をさらに備え、切り替え手段は、処理終了通知信号により専用処理手段の処理が終了したことを検知した場合、処理終了通知信号を取り消すことを指示する処理終了通知取り消し信号を処理管理手段へ出力し、処理管理手段は、処理終了通知取り消し信号に応じて処理終了通知信号を取り消すことが好ましい。
【００２２】
この場合、切り替え手段が処理終了通知信号を検知して処理終了通知取り消し信号を処理管理手段へ出力し、処理管理手段が処理終了通知取り消し信号に応じて処理終了通知信号を取り消しているので、切り替え手段が複数の専用処理手段の処理終了を確実に把握することができる。
【００２３】
切り替え手段は、記憶手段ごとに当該記憶手段に記憶されているデータの専用処理手段による処理が終了したことを示す処理終了情報を記憶し、記憶されている処理終了情報が処理終了を示す場合、演算処理手段に割り込み要求信号を出力し、演算処理手段は、割り込み要求信号を受けた場合、当該処理終了情報に対応する記憶手段からデータを読み出し、切り替え手段は、演算処理手段が記憶手段からのデータの読み出し動作を開始した後に割り込み要求信号を取り消すとともに、当該記憶手段に対して記憶されている処理終了情報を取り消し、さらに、演算処理手段がデータの読み出し動作を完了した後に、記憶されている他の処理終了情報が処理終了を示す場合、演算処理手段に割り込み要求信号を出力することが好ましい。
【００２４】
この場合、記憶されている処理終了情報が処理終了を示すときに、切り替え手段が演算処理手段に割り込み要求信号を出力し、演算処理手段が処理終了情報に対応する記憶手段からデータを読み出す。このとき、切り替え手段が割り込み要求信号を取り消すとともに、処理終了情報を取り消す。次に、演算処理手段がデータの読み出し動作を完了した後に、他の処理終了情報が処理終了を示す場合、切り替え手段が演算処理手段に割り込み要求信号を再度出力している。このようにして、演算処理手段の読み出し動作を妨げることなく、処理終了情報ごとに割り込み要求信号を出力することができるので、処理が終了したデータを各記憶手段から演算処理手段へ確実に読み出すことができる。
【００２５】
演算処理手段は、記憶手段の中から読み出し可能な記憶手段を切り替え手段に問い合わせ、切り替え手段は、演算処理手段からの問い合わせに応じて読み出し可能な記憶手段の一つを演算処理手段に通知するとともに、通知した記憶手段と演算処理手段とを接続することが好ましい。
【００２６】
この場合、読み出し可能な記憶手段があることを演算処理手段に通知するとともに、通知した記憶手段と演算処理手段とを接続しているので、演算処理手段が一度アクセスするだけで読み出し可能な記憶手段の確認及び切り替え手段の設定を行うことができ、記憶手段からのデータ読み出し処理におけるオーバーヘッドを軽減することができる。
【００２７】
切り替え手段は、演算処理手段が記憶手段に記憶されているデータを読み出して当該データを確認するための確認モードにおいて、演算処理手段がデータを読み出した記憶手段に対して記憶している各情報を変化させないことが好ましい。
【００２８】
この場合、確認モードにおいて演算処理手段がデータを読み出しても、切り替え手段は読み出した記憶手段に対して記憶している各情報を変化させないので、通常の動作に影響を与えることなく、記憶手段に記憶されているデータを読み出して当該データを確認することができる。
【００２９】
切り替え手段は、専用処理手段が記憶手段に記憶されているデータを処理できない場合、専用処理手段が記憶手段に記憶されているデータを処理できないことを演算処理手段に通知し、演算処理手段は、他の専用処理手段が処理可能なデータを記憶手段に記憶させることが好ましい。
【００３０】
この場合、記憶手段に格納されているデータを処理すべき専用処理手段が空いていない場合でも、記憶手段のデータを他の処理のデータに書き替えることができるので、記憶手段に記憶されている他の処理のデータを他の専用処理手段により処理することができ、専用処理手段を並列に動作させて処理を高速化することができる。
【００３１】
切り替え手段は、専用処理手段が記憶手段に記憶されているデータを処理できない場合、他の専用処理手段により現在可能な処理を演算処理手段に通知し、演算処理手段は、通知された処理が行われるデータを記憶手段に記憶させることが好ましい。
【００３２】
この場合、演算処理手段は、どの処理が現在実行可能であるかを直接知ることができるので、処理可能なデータを記憶手段に転送することができ、処理できないデータの無駄な転送を防止することができるとともに、確実にデータ処理を行うことができる。
【００３３】
記憶手段は、複数の専用処理手段及び切り替え手段とともに一つの集積回路により構成されることが好ましい。
【００３４】
この場合、記憶手段が複数の専用処理手段及び切り替え手段とともに一つの集積回路により構成されているので、記憶手段と切り替え手段との間のインターフェースを高速化することができる。
【００３５】
演算処理手段は、複数の専用処理手段及び切り替え手段とともに一つの集積回路により構成されることが好ましい。
【００３６】
この場合、演算処理手段が複数の専用処理手段及び切り替え手段とともに一つの集積回路により構成されているので、演算処理手段と切り替え手段との間のインターフェースを高速化することができる。
【００３７】
【発明の実施の形態】
以下、本発明の一実施の形態による情報処理装置の一例として暗号認証回路について図面を参照しながら説明する。図１は、本発明の第１の実施の形態による暗号認証回路の構成を示すブロック図である。
【００３８】
図１に示す暗号認証回路は、ＣＰＵ（中央演算処理装置）２、ＡＳＩＣ（Application Specific Integrated Circuit）３及びバンクメモリ４ａ，４ｂを備える。ＣＰＵ２は、メインメモリ２１を含む。ＡＳＩＣ３は、Ｉ／Ｆ（インターフェース）部３１，３３ａ〜３３ｃ，３５ａ，３５ｂ、メインコントローラ３２及び演算エンジン３４ａ〜３４ｃを含む。メインコントローラ３２は、ステートマシン３６及びバススイッチ３７を含む。ステートマシン３６は、レジスタ部３８を含む。
【００３９】
ＣＰＵ２は、ネットワークに接続するためのネットワークインターフェース機能を備えた汎用ネットワークプロセッサ等から構成され、ネットワーク１及びＡＳＩＣ３に接続される。なお、ネットワーク１としては、例えば、インターネット、イントラネット等の種々のネットワークを用いることができる。
【００４０】
ＣＰＵ２は、所定のプログラムを実行することにより、装置全体の動作を制御するとともに、ネットワーク１を介して転送されるデータから暗号処理（暗号化処理及び復号化処理）及び／又は認証処理の対象となるデータを抽出し、抽出したデータをメインメモリ２１に記憶させる。また、ＣＰＵ２は、所定のプログラムを実行することにより、暗号処理及び認証処理の対象とならないデータに対して当該データに対する通常の処理を行う。
【００４１】
ＡＳＩＣ３は、暗号処理及び／又は認証処理の特定用途に対して設計された１チップの集積回路から構成され、ＣＰＵ２の制御の下、ＣＰＵ２から出力されるデータに対して暗号処理及び／又は認証処理を行い、処理後のデータをＣＰＵ２へ出力する。なお、ＡＳＩＣ３内の各ブロックは、上記のように１チップのＡＳＩＣにより構成される例に特に限定されず、各ブロックを個別回路により構成してもよい。
【００４２】
Ｉ／Ｆ部３１は、ＣＰＵ２とメインコントローラ３２との間のインターフェースを行い、ＣＰＵ２とバススイッチ３７との間でのデータ転送を制御したり、ＣＰＵ２とステートマシン３６との間での各制御信号等の入出力を制御する。なお、ＣＰＵ２とメインコントローラ３２とを直接接続できる場合はＩ／Ｆ部３１を省略することも可能である。
【００４３】
メインコントローラ３２は、動作状態に応じて、バンクメモリ４ａ，４ｂに接続されているＩ／Ｆ部３５ａ，３５ｂとＣＰＵ２に接続されているＩ／Ｆ部３１又は演算エンジン３４ａ〜３４ｃに接続されているＩ／Ｆ部３３ａ〜３３ｃとの間の接続状態を切り替えることにより、バンクメモリ４ａ，４ｂとＣＰＵ２又は演算エンジン３４ａ〜３４ｃとの間の接続状態を切り替える。
【００４４】
Ｉ／Ｆ部３３ａ〜３３ｃは、演算エンジン３４ａ〜３４ｃごとに設けられる。Ｉ／Ｆ部３３ａは、メインコントローラ３２と演算エンジン３４ａとの間のインターフェースを行い、メインコントローラ３２と演算エンジン３４ａとの間でのデータ転送を制御したり、メインコントローラ３２との間で各制御信号等を入出力する。Ｉ／Ｆ部３３ｂ，３３ｃも、Ｉ／Ｆ部３３ａと同様に構成され、メインコントローラ３２と各演算エンジン３４ｂ，３４ｃとの間のインターフェースを行う。
【００４５】
また、Ｉ／Ｆ部３３ａ〜３３ｃは、メインコントローラ３２側に同一のプロトコルを用いてメインコントローラ３２側のインターフェースを共通化している。したがって、新たな処理方式等を採用した演算エンジンを用いる場合でも、変更すべき部分がＩ／Ｆ部３３ａ〜３３ｃのメインコントローラ３２側を超えることがなく、演算エンジンの変更を容易に行うことができる。
【００４６】
演算エンジン３４ａ〜３４ｃは、例えば、暗号処理及び／又は認証処理を行うための専用のハードウエアにより構成され、本実施の形態では、例えば、演算エンジン３４ａ，３４ｂは、暗号処理を行うための専用の暗号回路であり、演算エンジン３４ｃは、認証処理を行うための専用の認証回路である。
【００４７】
なお、演算エンジン３４ａ〜３４ｃが行う処理は、上記の暗号処理及び認証処理に特に限定されず、他の処理を行うようにしてもよい。また、演算エンジンの数も、上記の例に特に限定されず、２個又は４個以上の演算エンジンを用いてもよい。また、暗号回路及び認証回路の数も、上記の例に特に限定されず、それぞれ２個以上設けたり、種々の数に変更可能であり、また、暗号回路又は認証回路のみにより構成してもよい。
【００４８】
Ｉ／Ｆ部３５ａ，３５ｂは、バンクメモリ４ａ，４ｂごとに設けられる。Ｉ／Ｆ部３５ａは、メインコントローラ３２とバンクメモリ４ａとの間のインターフェースを行い、メインコントローラ３２とバンクメモリ４ａとの間でのデータ転送等を制御する。Ｉ／Ｆ部３５ｂも、Ｉ／Ｆ部３５ａと同様に構成され、メインコントローラ３２とバンクメモリ４ｂとの間のインターフェースを行う。
【００４９】
また、Ｉ／Ｆ部３５ａ，３５ｂは、メインコントローラ３２側に同一のプロトコルを用いてメインコントローラ３２側のインターフェースを共通化している。したがって、新たなアーキテクチャ等を採用したバンクメモリを用いる場合でも、変更すべき部分がＩ／Ｆ部３５ａ，３５ｂのメインコントローラ３２側を超えることがなく、バンクメモリの変更を容易に行うことができる。
【００５０】
バンクメモリ４ａ，４ｂは、処理対象となるデータ又は処理後のデータを一時的に記憶する処理用メモリである。なお、バンクメモリの数は、上記の例に特に限定されず、１個又は３個以上のバンクメモリを用いてもよい。
【００５１】
ステートマシン３６は、レジスタ部３８に格納されている各種フラグ等を参照して所定のクロック信号に同期して後述する各ステートに順次遷移し、各ステートに応じてバススイッチ３７の接続状態を制御するとともに、演算エンジン３４ａ〜３４ｃ等の動作を制御する。
【００５２】
図２は、図１に示すステートマシン３６の各ステートの一例を示す状態遷移図である。図２に示すＩＤＬＥは、初期状態すなわちＣＰＵ２及びＩ／Ｆ部３３ａ〜３３ｃ（演算エンジン３４ａ〜３４ｃ）等からの制御信号の待ち状態を示している。ＳＵＷＴ＿Ａ１，ＳＵＷＴ＿Ａ２，ＳＵＷＴ＿Ａ３，ＳＵＷＴ＿Ｆは、バンクメモリ４ａ，４ｂの書き込み状態を示す。ＦＵ＿ＲＱ，ＦＵ＿Ａは、データ処理開始状態を示す。ＦＵ＿Ｆ１，ＦＵ＿Ｆ２は、データ処理完了状態を示す。ＳＥＴ＿ＩＲＱは、データ処理完了に伴う割り込み要求信号の発生状態を示す。ＳＵＲＤ＿Ａ１，ＳＵＲＤ＿Ａ２，ＳＵＲＤ＿Ａ３，ＳＵＲＤ＿Ｆは、バンクメモリ４ａ，４ｂの読み出し状態を示す。これらの各ステートが図２に示すように遷移され、各ステートに応じた動作を行うようにステートマシン３６がバススイッチ３７及び演算エンジン３４ａ〜３４ｃ等を制御する。
【００５３】
再び、図１を参照して、バススイッチ３７は、バンクメモリ４ａ，４ｂに接続されているＩ／Ｆ部３５ａ，３５ｂとＣＰＵ２に接続されているＩ／Ｆ部３１又は演算エンジン３４ａ〜３４ｃに接続されているＩ／Ｆ部３３ａ〜３３ｃとの間の接続状態を切り替えるマルチプレクサ（図示省略）等から構成され、ステートマシン３６の制御の下、バンクメモリ４ａ，４ｂとＣＰＵ２又は演算エンジン３４ａ〜３４ｃとの間の接続状態を切り替える。
【００５４】
本実施の形態では、ＣＰＵ２が演算処理手段に相当し、演算エンジン３４ａ〜３４ｃが専用処理手段に相当し、バンクメモリ４ａ，４ｂが記憶手段に相当し、メインコントローラ３２が切り替え手段に相当する。また、演算エンジン（暗号回路）３４ａ，３４ｂが専用暗号処理手段に相当し、演算エンジン（認証回路）３４ｃが専用認証処理手段に相当し、Ｉ／Ｆ部３３ａ〜３３ｃが処理用インターフェース手段及び処理管理手段に相当し、Ｉ／Ｆ部３５ａ，３５ｂが記憶用インターフェース手段に相当する。
【００５５】
次に、上記のように構成された暗号認証回路の動作について説明する。まず、ＣＰＵ２は、ネットワーク１を介して転送されるデータの中から処理対象となるデータを抽出し、抽出したデータをメインメモリ２１に記憶する。次に、ＣＰＵ２は、Ｉ／Ｆ部３１を介してステートマシン３６を参照し、ＡＳＩＣ３に処理させるデータを書き込み可能なバンクメモリを確認する。
【００５６】
ここで、バンクメモリ４ａが書き込み可能なバンクメモリである場合、ステートマシン３６は、バススイッチ３７によりＩ／Ｆ部３１とＩ／Ｆ部３５ａとを接続する。次に、ＣＰＵ２は、処理すべきデータをＩ／Ｆ部３１、バススイッチ３７及びＩ／Ｆ部３５ａを介してバンクメモリ４ａへ転送し、処理すべきデータをバンクメモリ４ａに記憶させる。
【００５７】
処理すべきデータがバンクメモリ４ａに書き込まれた後、ＣＰＵ２は、バンクメモリ４ａに記憶されているデータの処理を開始するようにＩ／Ｆ部３１を介してステートマシン３６に指示する。次に、ステートマシン３６は、バンクメモリ４ａに記憶されているデータを処理可能な演算エンジンを検索する。
【００５８】
例えば、データが暗号化処理を行うべきデータであり、演算エンジン３４ａが当該データを処理可能な場合、ステートマシン３６は、バススイッチ３７の接続状態を切り替えてＩ／Ｆ部３５ａとＩ／Ｆ部３３ａとを接続する。次に、バンクメモリ４ａは、処理すべきデータをＩ／Ｆ部３５ａ、バススイッチ３７及びＩ／Ｆ部３３ａを介して演算エンジン３４ａへ転送し、演算エンジン３４ａは、転送されたデータを順次暗号化処理して処理後のデータをバンクメモリ４ａに記憶させる。
【００５９】
演算エンジン３４ａによる処理が終了すると、ステートマシン３６は、バススイッチ３７の接続状態を切り替えてＩ／Ｆ部３５ａとＩ／Ｆ部３１とを接続する。次に、ＣＰＵ２は、Ｉ／Ｆ部３５ａ、バススイッチ３７及びＩ／Ｆ部３１を介してバンクメモリ４ａから処理後のデータを読み出す。
【００６０】
上記のように、ＣＰＵ２がバンクメモリ４ａ，４ｂの一つへ処理すべきデータを書き込み、演算エンジン３４ａ〜３４ｃの一つがデータを処理し、ＣＰＵ２が処理後のデータをバンクメモリ３４ａ〜３４ｃの一つから読み出すことにより一連の処理が完了する。
【００６１】
上記の処理の場合、バンクメモリに処理すべきデータを書き込み、書き込んだデータが処理されてバンクメモリから処理後のデータが読み出される前に、同じバンクメモリに他のデータを書き込んでしまうと、処理後のデータが失われてしまう。このとき、ＣＰＵにより書き込み可能なバンクメモリを常に監視しようとすると、ＣＰＵのソフトウエアによる処理が煩雑となる。このため、本実施の形態では、以下のようにして、このような問題を解決している。
【００６２】
すなわち、ステートマシン３６は、各バンクメモリ４ａ，４ｂの記憶状態を示す記憶状態情報として、バンクメモリ４ａ，４ｂごとにメモリビジーフラグをレジスタ部３８に格納している。
【００６３】
具体的には、処理すべきデータがバンクメモリ４ａ，４ｂに書き込まれると、ステートマシン３６は、ビジー状態としてメモリビジーフラグを“１”に設定する。また、ステートマシン３６は、書き込まれたデータが処理されて当該バンクメモリから処理後のデータが読み出されるまでメモリビジーフラグを“１”に保持し、処理後のデータが読み出された後、書き込み可能な状態としてメモリビジーフラグを“０”に変更する。
【００６４】
図３は、メモリビジーフラグの一例を示すタイミングチャートである。図３に示すように、ステートマシン３６がクロック信号ＣＬＫに同期してステートＳＴＡＴＥを順次遷移させ、ステートＳＴＡＴＥがバンクメモリ４ａへのデータ書き込み開始を示すＳＵＷＴ＿Ａ１になったときに、ステートマシン３６は、バンクメモリ４ａに対するメモリビジーフラグＳＵ１ＢＵＳＹを“１”に変化させる。次に、ステートＳＴＡＴＥがバンクメモリ４ａからのデータ読み出し完了を示すＳＵＲＤ＿Ｆになったときに、ステートマシン３６は、メモリビジーフラグＳＵ１ＢＵＳＹを“０”に変化させる。
【００６５】
ここで、ステートマシン３６は、メモリビジーフラグＳＵ１ＢＵＳＹが“１”のときにバススイッチ３７の接続をデータ書き込み用の接続に切り替えないようにしている。したがって、ＣＰＵ２からの不正な書き込みによりバンクメモリ４ａ，４ｂに記録されているデータが破壊されることを防止することができる。なお、記憶状態情報は、上記の例に特に限定されず、バンクメモリの記憶状態を示すものであれば、他の情報を用いてもよい。
【００６６】
また、ステートマシン３６は、各演算エンジン３４ａ〜３４ｃの処理状態を示す処理状態情報として、各バンクメモリ４ａ，４ｂのデータが演算エンジン３４ａ〜３４ｃにより演算中であることを示すエンジンビジーフラグをレジスタ部３８に格納している。
【００６７】
具体的には、ステートマシン３６は、演算エンジン３４ａ〜３４ｃがバンクメモリ４ａ，４ｂのデータの処理を開始すると、ビジー状態としてエンジンビジーフラグを“１”に設定する。また、ステートマシン３６は、演算エンジン３４ａ〜３４ｃがバンクメモリ４ａ，４ｂのデータを演算中の場合にエンジンビジーフラグを“１”に保持し、データの処理が完了した後にエンジンビジーフラグを“０”に変更する。
【００６８】
図４は、エンジンビジーフラグの一例を示すタイミングチャートである。図４に示すように、ステートマシン３６のステートＳＴＡＴＥがバンクメモリ４ａのデータ処理開始を示すＦＵ＿Ａになったときに、ステートマシン３６は、バンクメモリ４ａのデータが演算中であることを示すエンジンビジーフラグＳＵ１ＣＡＬＣを“１”に変化させる。次に、ステートＳＴＡＴＥがバンクメモリ４ａのデータ処理完了を示すＦＵ＿Ｆ１になったときに、ステートマシン３６は、エンジンビジーフラグＳＵ１ＣＡＬＣを“０”に変化させる。
【００６９】
ここで、ステートマシン３６は、エンジンビジーフラグＳＵ１ＣＡＬＣが“１”のときにバススイッチ３７の接続をデータ読み出し用の接続に切り替えないようにしている。したがって、ＣＰＵ２からの不正な読み出しアクセスによるバスの不正な切断を防止することができる。
【００７０】
なお、処理状態情報は、上記の例に特に限定されず、種々の情報を用いることができ、本実施の形態では、例えば、各演算エンジン３４ａ〜３４ｃごとに当該演算エンジンがデータを処理中であることを示すフラグ等もレジスタ部３８に格納している。
【００７１】
上記のように、エンジンビジーフラグ及びメモリビジーフラグに応じてバススイッチ３７の設定を切り替えているので、正常なデータ処理を妨げることなく、バススイッチ３７を適切に設定して高速にデータを処理することができる。
【００７２】
次に、ＣＰＵ２のバンクメモリ４ａ，４ｂへのデータ書き込み処理について説明する。ＣＰＵ２は、処理すべきデータをバンクメモリ４ａ，４ｂに書き込む前に上書きしてもよいバンクメモリを確認する必要がある。例えば、ＣＰＵ２は、ステートマシン３６に対して書き込み可能なバンクメモリを問い合わせ（リード（Ｒｅａｄ）アクセス）、ステートマシン３６から書き込み可能なすべてのバンクメモリの番号（例えば、バンクメモリ４ａの番号を“１”、バンクメモリ４ｂの番号を“２”とする）を読み込み、書き込み可能なバンクメモリの中からバンクメモリを選択し、ステートマシン３６に対してバススイッチ３７の接続状態を変更するように指示する（ライト（Ｗｒｉｔｅ）アクセス）ことにより上書きしてもよいバンクメモリを確認することができる。
【００７３】
上記の処理をそのまま用いた場合、ＣＰＵ２からＡＳＩＣ３に対して２回アクセス（リードアクセス及びライトアクセス）することになり、オーバーヘッドが発生する。このため、本実施の形態では、以下のようにして、このオーバーヘッドを軽減している。
【００７４】
すなわち、ＣＰＵ２がステートマシン３６に対して書き込み可能なバンクメモリを問い合わせると（リードアクセス）、ステートマシン３６は、書き込み可能なすべてのバンクメモリの番号を返すのではなく、複数の書き込み可能なバンクメモリの中から１つのバンクメモリ、例えば、番号の最も小さいバンクメモリを選択して当該バンクメモリの番号をＣＰＵ２に通知する。このとき、ステートマシン３６は、バススイッチ３７を通知したバンクメモリのデータ書き込み用の接続状態に設定し、通知したバンクメモリとＣＰＵ２とを接続させる。
【００７５】
なお、書き込み可能なバンクメモリがない場合、ステートマシン３６は、書き込み可能なバンクメモリの番号として“０”を返し、この場合、ステートマシン３６はバススイッチ３７の接続状態を変更せず、ＣＰＵ２は書き込み可能なバンクメモリがないことを認識する。
【００７６】
上記のように、ステートマシン３６が書き込み可能なバンクメモリの番号をＣＰＵ２に通知するとともに、通知したバンクメモリとＣＰＵ２とを接続するようにバススイッチ３７の接続状態を設定しているので、ＣＰＵ２が一度リードアクセスを実行するだけで書き込み可能なバンクメモリの確認及びバススイッチ３７の接続状態の設定を行うことができ、バンクメモリ４ａ，４ｂへのデータ書き込み処理におけるオーバーヘッドを軽減することができる。
【００７７】
次に、演算エンジン３４ａ〜３４ｃの起動時の処理について説明する。図５は、図１に示す演算エンジン３４ａ〜３４ｃの起動時の処理を示すタイミングチャートである。ここで、図５に示すデータ処理開始フラグＳＵ１ＲＱは、バンクメモリ４ａに対するデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴが有ったことを示すフラグであり、レジスタ部３８の所定の領域に格納されている。
【００７８】
図５に示すように、演算エンジン３４ａ〜３４ｃのうちの１つが、例えばバンクメモリ４ａに書き込まれたデータの処理を開始する場合、ステートマシン３６は、ＣＰＵ２から与えられたデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴに応答してステートをＩＤＬＥからＦＵ＿ＲＱへ遷移させ、データ処理開始フラグＳＵ１ＲＱを“１”に変化させる。
【００７９】
このとき、ステートマシン３６は、バンクメモリ４ａのデータを処理できる演算エンジン３４ａ〜３４ｃを検索する。例えば、演算エンジン３４ａ〜３４ｃの各処理に対応した種別コードを予め決定しておき、バンクメモリ４ａ，４ｂにデータを書き込む際に当該データに対応する種別コードも同時に書き込んでおく。この場合、ステートマシン３６は、バンクメモリ４ａから種別コードを読み出し、読み出した種別コードにより特定される処理を行うことができる演算エンジンを検索し、検索した演算エンジンの中からデータを処理中であることを示すフラグが設定されていない演算エンジンを選択することができる。
【００８０】
ステートマシン３６は、データを処理できる演算エンジンが見つかった場合、ステートをＦＵ＿ＲＱからＦＵ＿Ａへ遷移させ、データ処理開始フラグＳＵ１ＲＱを“０”に変化させるとともに、エンジンビジーフラグＳＵ１ＣＡＬＣを“１”に変化させる。このとき、ステートマシン３６は、データ処理開始要求信号ＳＵ＿ＳＴＡＲＴが発行されたバンクメモリに接続されているＩ/Ｆ部とデータを処理できる検索エンジンに接続されているＩ／Ｆ部とをバススイッチ３７により接続し、データを処理する演算エンジンを起動し、ステートをＩＤＬＥに戻す。
【００８１】
ここで、データ処理開始要求信号ＳＵ＿ＳＴＡＲＴが発行されたバンクメモリのデータを処理できる演算エンジンがある場合、上記のように処理が行われるが、データを処理できる演算エンジンがない場合、上記のように処理することができない。
【００８２】
例えば、本実施の形態では、演算エンジン３４ａ〜３４ｃのうち２つの演算エンジン３４ａ，３４ｂがタイプＡの処理である暗号処理を行う暗号回路であり、残りの１つの演算エンジン３４ｃがタイプＡと異なるタイプＢの処理である認証処理を行う認証回路であり、バンクメモリ４ａ，４ｂに暗号処理を行うべきデータが格納されている場合、演算エンジン３４ａ，３４ｂを用いることによりバンクメモリ４ａ，４ｂのデータを並列して処理することができる。
【００８３】
一方、バンクメモリ４ａ，４ｂに認証処理を行うべきデータが格納されている場合、認証処理を行う認証回路は演算エンジン３４ｃの１つしかないため、バンクメモリ４ａ，４ｂのデータを順番に処理しなければならない。すなわち、一方のバンクメモリのデータ処理は演算エンジン３４ｃによる他方のバンクメモリのデータ処理が完了して演算エンジン３４ｃが使用可能になるまで待つ必要がある。
【００８４】
この場合、ＣＰＵ２は演算エンジン３４ｃが使用可能になったか否かを判定するためにＡＳＩＣ３に定期的にアクセスする必要があり、ＣＰＵ２のソフトウエアによる処理が煩雑となる。このため、本実施の形態では、以下のようにして、バンクメモリの数並びに演算エンジンの数及び種類に関わらず、ＣＰＵ２が１回だけデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行することによりデータを処理できるようにしている。
【００８５】
図６は、１回のデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴによりデータを処理する場合の一例を示すタイミングチャートである。図６に示すように、例えば、バンクメモリ４ａに対してデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴが発行された場合、ステートマシン３６は、ステートがＩＤＬＥからＦＵ＿ＲＱへ変化したときに、データ処理開始フラグＳＵ１ＲＱを“１”に変化させる。
【００８６】
このとき、ステートマシン３６がバンクメモリ４ａのデータを処理できる演算エンジン３４ａ〜３４ｃを検索した結果、使用できる演算エンジンがない場合、ステートマシン３６はステートをＩＤＬＥに戻す。
【００８７】
ここで、ステートマシン３６は、ステートがＩＤＬＥでかつデータ処理開始フラグＳＵ１ＲＱが“１”でさらにエンジンビジーフラグＳＵ１ＣＡＬＣが“０”の場合、データ処理開始要求信号ＳＵ＿ＳＴＡＲＴが入力されていなくても、バンクメモリ４ａに対してデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴが与えられたとみなして、ステートをＦＵ＿ＲＱに遷移させ、使用可能な演算エンジンを検索する。
【００８８】
このように、ステートがＦＵ＿ＲＱのときに、ステートマシン３６が使用可能な演算エンジンの検索を自動的に繰り返す。バンクメモリ４ａのデータを処理可能な演算エンジンが使用可能になると、ステートマシン３６は、ステートをＦＵ＿ＲＱからＦＵ＿Ａへ遷移させ、データ処理開始フラグＳＵ１ＲＱを“０”に変化させるとともに、エンジンビジーフラグＳＵ１ＣＡＬＣを“１”に変化させる。このとき、ステートマシン３６は、データ処理開始要求信号ＳＵ＿ＳＴＡＲＴが発行されたバンクメモリ４ａに接続されているＩ/Ｆ部３５ａと使用可能になった検索エンジンに接続されているＩ／Ｆ部とをバススイッチ３７により接続して演算エンジンを起動し、ステートをＩＤＬＥに戻す。
【００８９】
したがって、データ処理開始要求信号ＳＵ＿ＳＴＡＲＴを受けたときに演算エンジン３４ａ〜３４ｃがすぐに処理できない場合でも、ＣＰＵ２は１回のデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行するだけで、演算エンジンが処理可能な状態になった後にバンクメモリから演算エンジンへデータを転送して処理することができ、ＣＰＵ２のソフトウエアによる処理を簡略化することができる。
【００９０】
また、暗号回路又は認証回路の数がバンクメモリの数より少ないとき、上記のようにバンクメモリに格納されているデータを処理すべき演算エンジンが処理中で他の処理を行う演算エンジンが処理を行っていない場合が発生し、この場合に以下の処理を行うようにしてもよい。
【００９１】
例えば、演算エンジン３４ｃのみが認証回路であり、演算エンジン３４ｃがバンクメモリ４ａに格納されているデータを処理しているときに、ＣＰＵ２が認証処理を行うべき他のデータをバンクメモリ４ｂへ転送し、さらに、このデータに対してＣＰＵ２がデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行すると、ステートマシン３６は、演算エンジン３４ｃが処理中で空いていないことをＣＰＵ２へ通知する。なお、ＣＰＵ２はバンクメモリへ転送したデータを保持しているものとする。
【００９２】
次に、演算エンジン３４ｃは、バンクメモリのデータの変更を指示するデータ変更コマンドをＣＰＵ２へ送信する。このとき、ＣＰＵ２は、バンクメモリ４ｂに格納しているデータを処理すべき演算エンジン３４ｃを使用できないため、演算エンジン３４ｃによる処理以外の処理すなわち暗号処理を行うデータをバンクメモリ４ｂへ転送する。
【００９３】
次に、ＣＰＵ２は、バンクメモリ４ｂに格納されているデータに対するデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行する。このとき、暗号処理を行う演算エンジン３４ａ，３４ｂはデータ処理中ではないため、バンクメモリ４ｂに格納されているデータを処理することができる。
【００９４】
このように、バンクメモリに格納されているデータを処理すべき演算エンジンが空いていない場合でも、バンクメモリのデータを他の処理のデータに書き替えることにより、演算エンジンを並列に動作させて処理を高速化することができる。
【００９５】
ここで、上記の処理では、ＣＰＵ２がバンクメモリへ転送したデータを保持しているため、バンクメモリのデータを書き替えても、書き替えられたデータをＣＰＵ２からバンクメモリに再度転送することができるが、ＣＰＵ２がバンクメモリへ転送したデータを保持していない場合、上記の処理をそのまま適用することができない。この場合、下記のように処理を行う。
【００９６】
上記と同様に、演算エンジン３４ｃのみが認証回路であり、演算エンジン３４ｃがバンクメモリ４ａに格納されているデータを処理しているときに、ＣＰＵ２が認証処理を行うべき他のデータをバンクメモリ４ｂへ転送し、さらに、このデータに対してＣＰＵ２がデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行すると、ステートマシン３６は、演算エンジン３４ｃが処理中で空いていないことをＣＰＵ２へ通知する。このとき、ＣＰＵ２はバンクメモリへ転送したデータを保持していない。
【００９７】
次に、演算エンジン３４ｃは、データ変更コマンドをＣＰＵ２へ送信する。このとき、バンクメモリ４ｂは、現在格納しているデータをＣＰＵ２へ転送し、ＣＰＵ２は転送されたデータを保持する。次に、ＣＰＵ２は、演算エンジン３４ｃによる処理以外の処理すなわち暗号処理を行うデータをバンクメモリ４ｂへ転送する。
【００９８】
次に、ＣＰＵ２は、バンクメモリ４ｂに格納されているデータに対するデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行する。このとき、暗号処理を行う演算エンジン３４ａ，３４ｂはデータ処理中ではないため、バンクメモリ４ｂに格納されているデータを処理することができ、ＣＰＵ２がバンクメモリへ転送したデータを保持していない場合でも、上記の同様に、バンクメモリのデータを他の処理のデータに書き替えることができ、演算エンジンを並列に動作させて処理を高速化することができる。
【００９９】
なお、上記の例では、認証回路による処理ができないときに暗号回路による処理を行う場合について説明したが、この例に特に限定されず、暗号回路による処理ができないときに認証回路による処理を行う場合や所定の暗号処理を行う暗号回路による処理ができないときに他の暗号処理を行う他の暗号回路による処理を行う場合等にも、上記の各処理を同様に適用することができる。
【０１００】
また、上記の各処理では、ＣＰＵ２がデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行したときに、演算エンジン３４ｃが処理中で空いていないことをステートマシン３６がＣＰＵ２へ通知したが、他の演算エンジンにより現在可能な処理、具体的には、他の演算エンジン３４ａ，３４ｂにより暗号処理が可能である場合に現在可能な処理が暗号処理であることを通知するようにしてもよい。
【０１０１】
例えば、上記の各処理において、認証回路である演算エンジン３４ｃがバンクメモリ４ａに格納されているデータを処理しているときに、ＣＰＵ２が認証処理を行うべき他のデータをバンクメモリ４ｂへ転送し、さらに、このデータに対してＣＰＵ２がデータ処理開始要求信号ＳＵ＿ＳＴＡＲＴを発行した場合に、ステートマシン３６は、演算エンジン３４ｃが処理中で空いていないことだけでなく又はこの情報に代えて、現在可能な処理が暗号処理であることをＣＰＵ２へ通知し、ＣＰＵ２は暗号処理されるデータを上記の各処理と同様にしてバンクメモリ４ｂへ転送する。
【０１０２】
この場合、ＣＰＵ２は、どの処理が現在実行可能であるかを知ることができるので、処理可能なデータをバンクメモリに転送することができ、処理できないデータを無駄に転送することがなくなってタイムロスを削減することができるとともに、確実にデータ処理を行うことができる。
【０１０３】
次に、演算エンジン３４ａ〜３４ｃの制御信号について説明する。演算エンジン３４ａ〜３４ｃのインターフェースブロックであるＩ／Ｆ部３３ａ〜３３ｃは、ステートマシン３６のクロック信号ＣＬＫと同様のクロック信号により動作するステートマシン（図示省略）を含み、メインコントローラ３２は、各Ｉ／Ｆ部３３ａ〜３３ｃと演算エンジン３４ａ〜３４ｃの起動／停止に関する制御信号をやりとりする。
【０１０４】
まず、演算エンジン３４ａ〜３４ｃの起動に関する制御信号について、演算エンジン３４ａを例に説明する。図７は、図１に示す演算エンジン３４ａの起動／停止に関する制御信号の一例を示すタイミングチャートである。
【０１０５】
図７に示すように、演算エンジン３４ａを起動する起動制御信号ＣＵ１ＳＴＲＱは、メインコントローラ３２からＩ／Ｆ部３３ａへ出力され、ステートマシン３６のステートがＦＵ＿Ａのときに“１”に変化する。起動制御信号ＣＵ１ＳＴＲＱが“１”のときに、Ｉ／Ｆ部３３ａのステートマシンのステートが待ち状態のＩＤＬＥから演算エンジン３４ａを動作させるステートＤＯ１に遷移し、演算エンジン３４ａが起動する。
【０１０６】
このように、Ｉ／Ｆ部３３ａが起動制御信号ＣＵ１ＳＴＲＱを常に監視するとともに、メインコントローラ３６が同時に１つの演算エンジン３４ａだけに起動制御信号ＣＵ１ＳＴＲＱを送信することにより、図７に示すように、起動制御信号ＣＵ１ＳＴＲＱをクロック信号ＣＬＫの１周期分の期間だけ“１”に変化させれば、メインコントローラ３２は、演算エンジン３４ａを正しく起動することができる。
【０１０７】
一方、複数の演算エンジン３４ａ〜３４ｃが同時に処理を終了した場合やメインコントローラ３２がバンクメモリ４ａ，４ｂのデータ読み込み又は書き込み用の動作を行っている場合等には、Ｉ／Ｆ部３３ａ〜３３ｃが演算エンジン３４ａ〜３４ｃの処理終了を通知する制御信号である処理終了通知信号をある程度長い期間だけ“１”に保持しておかなければ、メインコントローラ３２が処理終了通知信号を検知できない可能性がある。また、処理終了通知信号をどの程度の期間だけ“１”に保持すれば、メインコントローラ３２が処理終了通知信号を確実に検知できるかを事前に決定することはできない。
【０１０８】
このため、本実施の形態では、演算エンジン３４ａ〜３４ｃの停止に関する制御信号として、演算エンジン３４ａ〜３４ｃの処理終了を通知する処理終了通知信号と、処理終了通知信号を取り消すことを指示する処理終了通知取り消し信号との２つの制御信号を用いて、以下のようにして演算エンジン３４ａ〜３４ｃの処理終了時の制御を行っている。
【０１０９】
次に、上記の処理終了通知信号及び処理終了通知取り消し信号について、演算エンジン３４ａを例に説明する。図７に示すように、演算エンジン３４ａの処理が終了すると、Ｉ／Ｆ部３３ａからメインコントローラ３２へ出力される処理終了通知信号ＣＵ１ＤＯＮＥが“１”に変化する。メインコントローラ３２が処理終了通知信号ＣＵ１ＤＯＮＥが“１”であることを検知すると、ステートマシン３６のステートはＩＤＬＥを経由してＦＵ＿Ｆ１へ遷移する。
【０１１０】
次に、ステートマシン３６のステートがＦＵ＿Ｆ１のとき、メインコントローラ３２からＩ／Ｆ部３３ａへ出力される処理終了通知取り消し信号ＣＵ１ＥＤＲＱが“１”に変化し、ステートマシン３６のステートがＦＵ＿Ｆ２へ遷移する。
【０１１１】
ここで、処理終了通知取り消し信号ＣＵ１ＥＤＲＱが“１”である期間は、クロック信号ＣＬＫの１周期分の期間となるが、Ｉ／Ｆ部３３ａは、処理終了通知取り消し信号ＣＵ１ＥＤＲＱが“１”であることを問題なく検知することができるので、処理終了通知信号ＣＵ１ＤＯＮＥを“１”から“０”に変化させて処理終了通知信号ＣＵ１ＤＯＮＥを取り下げることができる。
【０１１２】
次に、メインコントローラ３２が処理終了通知信号ＣＵ１ＤＯＮＥを監視し、処理終了通知信号ＣＵ１ＤＯＮＥが“０”に変化したときに、ステートマシン３６のステートがＦＵ＿Ｆ２からＩＤＬＥへ遷移する。
【０１１３】
このように、メインコントローラ３２が処理終了通知信号を検知して処理終了通知取り消し信号をＩ／Ｆ部３３ａ〜３３ｃへ出力し、Ｉ／Ｆ部３３ａ〜３３ｃが処理終了通知取り消し信号を検知して処理終了通知信号を取り消しているので、メインコントローラ３２が処理終了通知信号の到着をすぐに検知することを保証できない場合でも、メインコントローラ３２が演算エンジン３４ａ〜３４ｃの処理終了を確実に把握することができる。
【０１１４】
次に、メインコントローラ３２からＣＰＵ２への割り込み要求信号を発行させる処理について説明する。図８は、図１に示すメインコントローラ３２からＣＰＵ２へ割り込み要求信号を発行させる処理の一例を説明するためのタイミングチャートである。なお、図８に示す例では、バンクメモリ４ａのデータが演算エンジン３４ａにより処理され、当該処理が完了したところを示している。また、複数のバンクメモリ４ａ，４ｂが存在するが、割り込み要求信号ＩＮＴＲＱを１つだけ使用している。
【０１１５】
図８に示すように、演算エンジン３４ａによるデータ処理が終了して処理終了通知信号ＣＵ１ＤＯＮＥが“１”になると、バンクメモリ４ａのデータ処理が終了したことを示す処理終了フラグＳＵ１ＤＯＮＥが“１”に変化する。
【０１１６】
次に、ステートマシン３６は、ステートがＩＤＬＥのときに、すべてのバンクメモリ４ａ，４ｂの処理終了フラグＳＵ１ＤＯＮＥ，ＳＵ２ＤＯＮＥの値を参照する。なお、処理終了フラグＳＵ１ＤＯＮＥ，ＳＵ２ＤＯＮＥは、レジスタ部３８に格納されているフラグである。
【０１１７】
このとき、処理終了フラグＳＵ１ＤＯＮＥ，ＳＵ２ＤＯＮＥのいずれかの値が“１”の場合（図８の場合は処理終了フラグＳＵ１ＤＯＮＥが“１”）、ステートマシン３６は、ステートをＩＤＬＥからＳＥＴ＿ＩＲＱへ遷移させる。ステートがＳＥＴ＿ＩＲＱのとき、メインコントローラ３２はＣＰＵ２へ出力する割り込み要求信号ＩＮＴＲＱを“１”に変化させ、ステートマシン３６はステートをＩＤＬＥに遷移させる。
【０１１８】
次に、ＣＰＵ２が割り込み要求信号ＩＮＴＲＱを検知すると、ＣＰＵ２はＡＳＩＣ３に対してバンクメモリ４ａの読み出し動作（図８中のＳＵ１読み出し）を行う。この読み出し動作においてステートがＳＵＲＤ＿Ａ１のときに、メインコントローラ３２は、割り込み要求信号ＩＮＴＲＱを“０”に変化させるとともに、読み出し動作を行っているバンクメモリ４ａの処理終了フラグＳＵ１ＤＯＮＥを“０”に変化させる。
【０１１９】
次に、複数のバンクメモリ４ａ，４ｂのデータ処理が同時に終了した場合にメインコントローラ３２からＣＰＵ２へ割り込み要求信号を発行させる処理について説明する。図９は、図１に示す複数のバンクメモリ４ａ，４ｂのデータ処理が同時に終了した場合にメインコントローラ３２からＣＰＵ２への割り込み要求信号を発行させる処理の一例を説明するためのタイミングチャートである。
【０１２０】
図９に示すように、複数のバンクメモリ４ａ，４ｂのデータ処理が同時に終了すると、処理終了フラグＳＵ１ＤＯＮＥ，ＳＵ２ＤＯＮＥが“１”に変化する。次に、上記と同様に、割り込み要求信号ＩＮＴＲＱが“１”に変化する。その後、ＣＰＵ２がバンクメモリ４ａの読み出し動作（図９中のＳＵ１読み出し）を開始し、割り込み要求信号ＩＮＴＲＱおよびバンクメモリ４ａの処理終了フラグＳＵ１ＤＯＮＥが“０”に変化する。
【０１２１】
次に、バンクメモリ４ａの読み出し動作が終了し、ステートマシン３６のステートがＩＤＬＥのときに、バンクメモリ４ｂの処理終了フラグＳＵ２ＤＯＮＥがまだ“１”となっているので、割り込み要求信号ＩＮＴＲＱが再び“１”に変化する。その後、ＣＰＵ２がバンクメモリ４ｂの読み出し動作（図９中のＳＵ２読み出し）を開始し、割り込み要求信号ＩＮＴＲＱおよびバンクメモリ４ｂの処理終了フラグＳＵ２ＤＯＮＥが“０”に変化する。
【０１２２】
上記のように、複数の処理終了フラグＳＵ１ＤＯＮＥ，ＳＵ２ＤＯＮＥが処理終了を示すときに、メインコントローラ３２がＣＰＵ２に割り込み要求信号ＩＮＴＲＱを出力し、ＣＰＵ２がバンクメモリ４ａからデータを読み出す。このとき、メインコントローラ３２が割り込み要求信号ＩＮＴＲＱを取り消すとともに、処理終了フラグＳＵ１ＤＯＮＥを取り消し、さらに、ＣＰＵ２がデータの読み出し動作を完了した後に、メインコントローラ３２が処理終了フラグＳＵ２ＤＯＮＥに応答してＣＰＵ２に割り込み要求信号ＩＮＴＲＱを再度出力している。
【０１２３】
したがって、ＣＰＵ２の読み出し動作を妨げることなく、処理終了フラグＳＵ１ＤＯＮＥ，ＳＵ２ＤＯＮＥごとに割り込み要求信号ＩＮＴＲＱを出力することができるので、処理が終了したデータを各バンクメモリ４ａ，４ｂからＣＰＵ２へ確実に読み出すことができる。
【０１２４】
なお、複数のバンクメモリのデータ処理が同時に終了した場合、処理終了フラグの各値の論理和を割り込み要求信号として用いることも考えられるが、図９に示すような場合、バンクメモリ４ａの読み出し動作中にも常に割り込み要求信号が発行され、割り込み要求信号によりバンクメモリの読み出し動作に悪影響を与える場合がある。このため、本実施の形態では、上記のように、ＣＰＵ２がバンクメモリからデータの読み出し動作を開始したときにＣＰＵ２への割り込み要求信号を一度取り下げ、読み出し動作が終了した後に必要に応じて割り込み要求信号を発行するようにしている。
【０１２５】
次に、ＣＰＵ２のバンクメモリ４ａ，４ｂからのデータ読み出し処理について説明する。ＣＰＵ２は、処理後のデータをバンクメモリ４ａ，４ｂから読み出すためには、処理後のデータが格納されているバンクメモリすなわち読み出し可能なバンクメモリを確認する必要がある。この場合、例えば、ＣＰＵ２は、ステートマシン３６からの割り込み要求信号を受け、ステートマシン３６に対して読み出し可能なバンクメモリを問い合わせ（リードアクセス）、ステートマシン３６から読み出し可能なすべてのバンクメモリの番号を読み込み、読み出し可能なバンクメモリの中からバンクメモリを選択し、ステートマシン３６に対してバススイッチ３７の接続状態を変更するように指示する（ライトアクセス）ことにより読み出し可能なバンクメモリを確認することができる。
【０１２６】
上記の処理をそのまま用いた場合、ＣＰＵ２からＡＳＩＣ３に対して２回アクセス（リードアクセス及びライトアクセス）することになり、オーバーヘッドが発生する。このため、本実施の形態では、以下のようにして、このオーバーヘッドを軽減している。
【０１２７】
すなわち、ＣＰＵ２がステートマシン３６に対して読み出し可能なバンクメモリを問い合わせると（リードアクセス）、ステートマシン３６は、読み出し可能なすべてのバンクメモリの番号を返すのではなく、複数の読み出し可能なバンクメモリの中から１つのバンクメモリ、例えば、番号の最も小さいバンクメモリを選択して当該バンクメモリの番号をＣＰＵ２に通知する。このとき、ステートマシン３６は、バススイッチ３７を通知したバンクメモリのデータ読み出し用の接続状態に設定し、通知したバンクメモリとＣＰＵ２とを接続させる。
【０１２８】
なお、読み出し可能なバンクメモリがない場合、ステートマシン３６は、読み出し可能なバンクメモリの番号として“０”を返し、この場合、ステートマシン３６はバススイッチ３７の接続状態を変更せず、ＣＰＵ２は読み出し可能なバンクメモリがないことを認識する。
【０１２９】
上記のように、ステートマシン３６が読み出し可能なバンクメモリの番号をＣＰＵ２に通知するとともに、通知したバンクメモリとＣＰＵ２とを接続するようにバススイッチ３７の接続状態を設定しているので、ＣＰＵ２は一度リードアクセスを実行するだけで読み出し可能なバンクメモリの確認及びバススイッチ３７の接続状態の設定を行うことができ、バンクメモリ４ａ，４ｂからのデータ読み出し処理におけるオーバーヘッドを軽減することができる。
【０１３０】
ところで、上記の各処理に従いバンクメモリ４ａ，４ｂからデータを読み出す場合、処理に応じて各フラグを変更しなければならない。しかしながら、各フラグを変更することなく、ＣＰＵ２がバンクメモリ４ａ，４ｂに記憶されているデータを読み出して当該データを確認するための確認モードとして、デバッグの目的でバンクメモリのデータを参照したい場合がある。
【０１３１】
図１０は、図１に示すステートマシン３６のデバッグ動作を行う場合の各ステートの一例を示す状態遷移図である。図１０に示すように、ステートマシン３８のステートとして、図２に示す各ステートに加え、デバッグ読み出し用のステートＤＢＧＲＤ＿Ａ１，ＤＢＧＲＤ＿Ａ２，ＤＢＧＲＤ＿Ａ３，ＤＢＧＲＤ＿Ｆが新たに設けられている。ＤＢＧＲＤ＿Ａ１に遷移する条件は、ＳＵＷＴ＿Ａ１やＳＵＲＤ＿Ａ１に遷移する条件と同様に、ＣＰＵ２から別途定めたＡＳＩＣ３の領域へのリードアクセスによるデバッグ読み出し要求である。
【０１３２】
上記のデバッグ読み出しを行う場合、ＣＰＵ２は、読み出したいバンクメモリの番号をレジスタ部３８に書き込み、その後、デバッグ読み出し要求（リードアクセス）を行う。次に、メインコントローラ３２は、書き込まれた番号のバンクメモリのデバッグ読み出しに問題がなければ、ＣＰＵ２からのリードアクセスに対して読み出すバンクメモリの番号をＣＰＵ２へ返す。
【０１３３】
なお、読み出すバンクメモリのデータが演算エンジン３４ａ〜３４ｃにより処理中であり、バススイッチ３７の接続状態を読み出し用の接続状態に変更できない場合、メインコントローラ３２は、ＣＰＵ２からのリードアクセスに対して読み出すバンクメモリの番号として“０”を返し、バンクメモリのデータをデバッグ用に読み出すことができないことをＣＰＵ２へ通知し、ステートマシン３６はステートをＩＤＬＥからＤＢＧＲＤ＿Ａ１へ遷移させない。
【０１３４】
上記のようにして、ステートマシン３６のステートがＤＢＧＲＤ＿Ａ１へ遷移した後、図３に示す通常の読み出し動作すなわちＳＵＲＤ＿Ａ１以降の動作と同様の動作が行われる。但し、ステートマシン３６は、読み出すバンクメモリに対するメモリビジーフラグを“０”に変化させない。
【０１３５】
したがって、デバッグ目的でバンクメモリ４ａ，４ｂからデータを読み出しても、ステートマシン３６ではバンクメモリの管理用のフラグを更新しないので、通常の動作に影響を与えることなく、バンクメモリ４ａ，４ｂに記憶されているデータを読み出して当該データを確認することができる。
【０１３６】
上記のような種々の動作を行うことにより、本実施の形態では、ＣＰＵ２がネットワーク１を介して転送されるデータの中から処理対象となるデータを抽出し、ステートマシン３６がバススイッチ３７を用いてＣＰＵ２のＩ／Ｆ部３１とバンクメモリ４ａ，４ｂのＩ／Ｆ部３５ａ，３５ｂとを接続し、処理対象となるデータがバンクメモリ４ａ，４ｂに記憶される。
【０１３７】
次に、ステートマシン３６がバススイッチ３７を用いてバンクメモリ４ａ，４ｂのＩ／Ｆ部３５ａ，３５ｂと演算エンジン３４ａ〜３４ｃのＩ／Ｆ部３３ａ〜３３ｃとを接続し、演算エンジン３４ａ〜３４ｃによりバンクメモリ４ａ，４ｂに記憶されているデータが処理され、処理後のデータがバンクメモリ４ａ，４ｂに記憶される。
【０１３８】
最後に、ステートマシン３６がバススイッチ３７を用いてバンクメモリ４ａ，４ｂのＩ／Ｆ部３５ａ，３５ｂとＣＰＵ２のＩ／とを接続し、処理後のデータがバンクメモリ４ａ，４ｂからＣＰＵ２へ出力され、外部にデータが読み出される。
【０１３９】
このようにして、本実施の形態では、専用のハードウエアである演算エンジン３４ａ〜３４ｃを用いて高速にデータを暗号処理及び認証処理することができるとともに、複数の演算エンジン３４ａ〜３４ｃにより暗号処理及び認証処理を並列処理することができる。この結果、より高速にデータを暗号処理及び認証処理することができ、ネットワーク１上で転送されるデータをデータ転送の障害とならないように高速に暗号処理及び認証処理することができる。
【０１４０】
次に、本発明の第２の実施の形態による暗号認証回路について説明する。図１１は、本発明の第２の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１４１】
図１１に示す暗号認証回路と図１に示す暗号認証回路とで異なる点は、Ｉ／Ｆ部３３ａ〜３３ｃ，３５ａ，３５ｂ、演算エンジン（認証回路）３４ｃ及びバンクメモリ４ｂが省略され、各ブロックが個別の回路により構成されている点であり、その他の点は図１に示す暗号認証回路とほぼ同様であるので同様の部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１４２】
図１１に示す暗号認証回路は、図１に示す暗号認証回路の構成を簡略化したものであり、図１に示す暗号認証回路とほぼ同様に以下のように動作する。すなわち、ネットワーク１上を流れるデータがＣＰＵ２に入力され、ＣＰＵ２は、入力されたデータが暗号化及び復号化されるべきデータであるか否かを判断する。データが暗号化及び復号化されるべきデータである場合、ＣＰＵ２からメインコントローラ３２へ暗号化及び復号化の命令が渡され、ステートマシン３６がバススイッチ３７の接続状態を制御し、データの流れが制御される。
【０１４３】
このとき、ＣＰＵ２から出力されるデータが一旦バンクメモリ４ａに蓄えられ、バンクメモリ４ａに蓄えられたデータが暗号回路３４ａ，３４ｂの一方に出力される。ここで、２つの暗号回路３４ａ，３４ｂのどちらの回路を用いて処理を行うかは、ステートマシン３６が決定する。ステートマシン３６は、決定した暗号回路により処理を行うようにバススイッチ３７に指示し、バススイッチ３７は、バンクメモリ４ａと指示された暗号回路とを接続する。
【０１４４】
上記のように、本実施の形態では、暗号化および復号化処理の専用のハードウエアである暗号回路３４ａ，３４ｂを用いて高速にデータを暗号化および復号化することができるので、ネットワーク上で転送されるデータをデータ転送の障害とならないように高速に暗号化および復号化処理することができる。なお、暗号回路の数は、上記の例に特に限定されず、３つ以上でもよい。
【０１４５】
次に、本発明の第３の実施の形態による暗号認証回路について説明する。図１２は、本発明の第３の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１４６】
図１２に示す暗号認証回路と図１１に示す暗号認証回路とで異なる点は、バンクメモリ４ｂが付加された点であり、その他の点は図１１に示す暗号認証回路とほぼ同様であるので同様の部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１４７】
ＣＰＵとバンクメモリとの間のデータ転送速度及び暗号回路とバンクメモリとの間のデータ転送速度に比べて、暗号回路における暗号化および復号化処理の速度が著しく遅い場合、バンクメモリの数は問題とならない。しかしながら、暗号回路における暗号化および復号化処理の速度が高速になると、バンクメモリからＣＰＵへデータが転送される間又は他の暗号回路とバンクメモリとの間でデータ転送が行われている間、処理が終了した暗号回路は、バンクメモリにデータを転送することができない。
【０１４８】
このため、本実施の形態では、図１２に示すように、第１の実施の形態と同様に、バンクメモリとして２つバンクメモリ４ａ，４ｂを用意し、例えば、バンクメモリ４ａが使用されている場合、暗号回路３４ａ，３４ｂの一方は、空いているバンクメモリ４ｂを使用することができ、データを高速に暗号化及び復号化することができる。なお、暗号回路及びバンクメモリの数は、上記の例に特に限定されず、３つ以上でもよく、また、暗号回路の数とバンクメモリの数とが一致しなくてもよい。
【０１４９】
次に、本発明の第４の実施の形態による暗号認証回路について説明する。図１３は、本発明の第４の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１５０】
図１３に示す暗号認証回路と図１２に示す暗号認証回路とで異なる点は、演算エンジン（暗号回路）３４ｂが演算エンジン（認証回路）３４ｃに変更された点であり、その他の点は図１２に示す暗号認証回路とほぼ同様であるので同様の部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１５１】
図１３に示す暗号認証回路では、第１の実施の形態と同様に、暗号回路３４ａ及び認証回路３４ｃを用意し、ネットワーク１から暗号処理されるべきデータ及び認証処理されるべきデータが連続して入力されると、ＣＰＵ２又はステートマシン３６からの命令により、例えば、暗号化されるべきデータはバンクメモリ４ａに割り当てられ、認証されるべきデータはバンクメモリ４ｂに割り当てられる。各データが一旦バンクメモリ４ａ，４ｂに読み込まれると、ステートマシン３６がバススイッチ３７の接続状態を制御してバンクメモリ４ａと暗号回路３４ａとを接続するとともに、バンクメモリ４ｂと認証回路３４ｃとを接続する。
【０１５２】
この状態において暗号回路３４ａ及びバンクメモリ４ａと認証回路３４ｃ及びバンクメモリ４ｂとが互いに分離されているので、暗号処理および認証処理を同時にすなわち並列に行うことができ、データの処理速度を高速化することができる。なお、暗号回路、認証回路及びバンクメモリの数は、上記の例に特に限定されず、各々図示以上の数でもよく、また、暗号回路と認証回路との合計数とバンクメモリの数とが一致しなくてもよい。
【０１５３】
次に、本発明の第５の実施の形態による暗号認証回路について説明する。図１４は、本発明の第５の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１５４】
図１４に示す暗号認証回路と図１３に示す暗号認証回路とで異なる点は、Ｉ／Ｆ部３３ａ，３３ｂが付加された点であり、その他の点は図１３に示す暗号認証回路とほぼ同様であるので同様の部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１５５】
図１４に示す暗号認証回路では、第１の実施の形態と同様に、暗号回路３４ａ及び認証回路３４ｃとバススイッチ３７との間にＩ／Ｆ部３３ａ，３３ｃが接続されている。Ｉ／Ｆ部３３ａ，３３ｃは、暗号回路３４ａ及び認証回路３４ｃのいずれに接続されているかに関わらず、バススイッチ３７側に同一のプロトコルを用いてバススイッチ３７側のインターフェースを共通化している。
【０１５６】
したがって、暗号回路３４ａ及び認証回路３４ｃのいずれか一方又は双方を新たな方式の回路に入れ替える場合でも、変更すべき部分がＩ／Ｆ部３３ａ，３３ｃを超えることがなく、回路の変更を容易に行うことができる。なお、暗号回路、認証回路及びバンクメモリの数は、上記の例に特に限定されず、各々図示以上の数でもよく、また、暗号回路と認証回路との合計数とバンクメモリの数とが一致しなくてもよい。
【０１５７】
次に、本発明の第６の実施の形態による暗号認証回路について説明する。図１５は、本発明の第６の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１５８】
図１５に示す暗号認証回路と図１３に示す暗号認証回路とで異なる点は、Ｉ／Ｆ部３５ａ，３５ｂが付加された点であり、その他の点は図１３に示す暗号認証回路とほぼ同様であるので同様の部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１５９】
図１５に示す暗号認証回路では、第１の実施の形態と同様に、バンクメモリ４ａ，４ｂとバススイッチ３７との間にＩ／Ｆ部３５ａ，３５ｂが接続されている。Ｉ／Ｆ部３５ａ，３５ｂは、バススイッチ３７側に同一のプロトコルを用いてバススイッチ３７側のインターフェースを共通化している。
【０１６０】
したがって、新たなアーキテクチャを採用したバンクメモリを用いる場合でも、変更すべき部分がＩ／Ｆ部３５ａ，３５ｂを超えることがなく、バンクメモリの変更を容易に行うことができる。なお、暗号回路、認証回路及びバンクメモリの数は、上記の例に特に限定されず、各々図示以上の数でもよく、また、暗号回路と認証回路との合計数とバンクメモリの数とが一致しなくてもよい。
【０１６１】
次に、本発明の第７の実施の形態による暗号認証回路について説明する。図１６は、本発明の第７の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１６２】
図１６に示す暗号認証回路と図１に示す暗号認証回路とで異なる点は、バンクメモリ４ａ，４ｂをＡＳＩＣ３ａ内部に取り込み、バンクメモリ４ａ，４ｂがＩ／Ｆ部３１，３３ａ〜３３ｃ，３５ａ，３５ｂ、演算エンジン３４ａ〜３４ｃ及びメインコントローラ３２とともに一つの集積回路により構成されている点であり、その他の点は図１に示す暗号認証回路とほぼ同様であるので同一部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１６３】
図１６に示す暗号認証回路は、図１に示す暗号認証回路と同様に動作して同様の効果を得ることができるとともに、バンクメモリ４ａ，４ｂをＡＳＩＣ３ａ内部に取り込んでいる。既存のバンクメモリを外付けで使用する場合、各バンクメモリの製造メーカーの仕様に合わせてＩ／Ｆ部３５ａ，３５ｂ等を設計する必要があり、インターフェースにおける動作及び速度が不十分になる場合がある。しかしながら、本実施の形態では、バンクメモリ４ａ，４ｂを取り込んだ一つの集積回路によりＡＳＩＣ３ａが構成されているので、バンクメモリ４ａ，４ｂのインターフェースを高速化することができる。
【０１６４】
次に、本発明の第８の実施の形態による暗号認証回路について説明する。図１７は、本発明の第８の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１６５】
図１７に示す暗号認証回路と図１に示す暗号認証回路とで異なる点は、ＣＰＵ２をＡＳＩＣ３ｂ内部に取り込み、ＣＰＵ２がＩ／Ｆ部３１，３３ａ〜３３ｃ，３５ａ，３５ｂ、演算エンジン３４ａ〜３４ｃ及びメインコントローラ３２とともに一つの集積回路により構成されている点であり、その他の点は図１に示す暗号認証回路とほぼ同様であるので同一部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１６６】
図１７に示す暗号認証回路は、図１に示す暗号認証回路と同様に動作して同様の効果を得ることができるとともに、ＣＰＵ２をＡＳＩＣ３ｂ内部に取り込んでいる。既存のＣＰＵを外付けで使用する場合、各ＣＰＵの製造メーカーの仕様に合わせてＩ／Ｆ部３１等を設計する必要があり、インターフェースにおける動作及び速度が不十分になる場合がある。しかしながら、本実施の形態では、ＣＰＵ２を取り込んだ一つの集積回路によりＡＳＩＣ３ｂが構成されているので、ＣＰＵ２のインターフェースを高速化することができる。
【０１６７】
次に、本発明の第９の実施の形態による暗号認証回路について説明する。図１８は、本発明の第９の実施の形態による暗号認証回路の構成を示すブロック図である。
【０１６８】
図１８に示す暗号認証回路と図１に示す暗号認証回路とで異なる点は、ＣＰＵ２及びバンクメモリ４ａ，４ｂをＡＳＩＣ３ｃ内部に取り込み、ＣＰＵ２及びバンクメモリ４ａ，４ｂがＩ／Ｆ部３１，３３ａ〜３３ｃ，３５ａ，３５ｂ、演算エンジン３４ａ〜３４ｃ及びメインコントローラ３２とともに一つの集積回路により構成されている点であり、その他の点は図１に示す暗号認証回路とほぼ同様であるので同一部分には同一符号を付し、以下本実施の形態の特徴的な点について説明する。
【０１６９】
図１８に示す暗号認証回路は、図１に示す暗号認証回路と同様に動作して同様の効果を得ることができるとともに、ＣＰＵ２及びバンクメモリ４ａ，４ｂをＡＳＩＣ３ｃ内部に取り込んでいる。既存のＣＰＵ及びバンクメモリを外付けで使用する場合、各ＣＰＵ及びバンクメモリの製造メーカーの仕様に合わせてＩ／Ｆ部３１，３５ａ，３５ｂ等を設計する必要があり、インターフェースにおける動作及び速度が不十分になる場合がある。しかしながら、本実施の形態では、ＣＰＵ２及びバンクメモリ４ａ，４ｂを取り込んだ一つの集積回路によりＡＳＩＣ３ｃが構成されているので、ＣＰＵ２及びバンクメモリ４ａ，４ｂのインターフェースを高速化することができる。なお、上記の各実施の形態は、必要に応じて任意に組み合わせることができ、その場合も同様の効果を得ることができる。
【０１７０】
【発明の効果】
本発明によれば、複数の専用処理手段が所定の処理を行うために専用に設けられるとともに、演算処理手段又は複数の専用処理手段と記憶手段との間の接続状態を切り替えることができるので、専用のハードウエアを用いて高速にデータを処理することができるとともに、並列処理が可能な場合は複数の専用処理手段により並列処理することができ、ネットワーク上で転送されるデータをデータ転送の障害とならないように高速に処理することができる。
【０１７１】
また、前記複数の専用処理手段は、所定の暗号処理を行うために専用に設けられた専用暗号処理手段及び所定の認証処理を行うために専用に設けられた専用認証処理手段のうち、複数の前記専用暗号処理手段、または、前記専用暗号処理手段と前記専用認証処理手段とを含むから、複数の専用暗号処理手段を用いて上記のように暗号処理を並列に行ったり、専用暗号処理手段及び専用認証処理手段を用いて暗号処理及び認証処理を並列に行ったりすることができ、その結果、暗号処理を高速に行ったり、より高速にデータを処理したりすることができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態による暗号認証回路の構成を示すブロック図である。
【図２】  図１に示すステートマシンの各ステートの一例を示す状態遷移図である。
【図３】  メモリビジーフラグの一例を示すタイミングチャートである。
【図４】  エンジンビジーフラグの一例を示すタイミングチャートである。
【図５】  図１に示す演算エンジンの起動時の処理を示すタイミングチャートである。
【図６】  １回のデータ処理開始要求信号によりデータを処理する場合の一例を示すタイミングチャートである。
【図７】  図１に示す演算エンジンの起動／停止に関する制御信号の一例を示すタイミングチャートである。
【図８】  図１に示すメインコントローラからＣＰＵへ割り込み要求信号を発行させる処理の一例を説明するためのタイミングチャートである。
【図９】  図１に示す複数のバンクメモリのデータ処理が同時に終了した場合にメインコントローラからＣＰＵへ割り込み要求信号を発行させる処理の一例を説明するためのタイミングチャートである。
【図１０】  図１に示すステートマシンのデバッグ動作を行う場合の各ステートの一例を示す状態遷移図である。
【図１１】  本発明の第２の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１２】  本発明の第３の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１３】  本発明の第４の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１４】  本発明の第５の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１５】  本発明の第６の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１６】  本発明の第７の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１７】  本発明の第８の実施の形態による暗号認証回路の構成を示すブロック図である。
【図１８】  本発明の第９の実施の形態による暗号認証回路の構成を示すブロック図である。
【符号の説明】
２  ＣＰＵ
３，３ａ〜３ｃ  ＡＳＩＣ
４ａ，４ｂ  バンクメモリ
３１，３３ａ〜３３ｃ，３５ａ，３５ｂ  Ｉ／Ｆ部
３２  メインコントローラ
３４ａ，３４ｂ  演算エンジン（暗号回路）
３４ｃ  演算エンジン（認証回路）
３６  ステートマシン
３７  バススイッチ
【図１】
0004477805.tif 000002
【図２】
0004477805.tif 000003
【図３】
0004477805.tif 000004
【図４】
0004477805.tif 000005
【図５】
0004477805.tif 000006
【図６】
0004477805.tif 000007
【図７】
0004477805.tif 000008
【図８】
0004477805.tif 000009
【図９】
0004477805.tif 000010
【図１０】
0004477805.tif 000011
【図１１】
0004477805.tif 000012
【図１２】
0004477805.tif 000013
【図１３】
0004477805.tif 000014
【図１４】
0004477805.tif 000015
【図１５】
0004477805.tif 000016
【図１６】
0004477805.tif 000017
【図１７】
0004477805.tif 000018
【図１８】
0004477805.tif 000019