(57)【要約】【課題】ＣＰＵ装置内にＦＰＧＡ書き換え用データを保存する不揮発性メモリを内包すると、複数の不揮発性メモリ若しくは容量の大きな不揮発性メモリを使用することとなり、製品単価の高騰を免れることはできない。また、ネットワークからＦＰＧＡ書き換え用データをダウンロードする構成を取るとセキュリティ上の問題が生じる可能性がある。【解決手段】、回線インターフェイスを備えたＣＰＵ装置において、装置内部を大規模なＦＰＧＡ回路によって構成する場合でも、装置起動時に小さな容量のＦＰＧＡ回路配置データを使用して通信インターフェイスを構成し、該通信インターフェイスを使用して他のモジュールの回路配置データをダウンロードすること、及び、外部からのアクセス可能なメモリにそれらの回路配置データを残さないことでセキュリティの向上を図る。【選択図】  図２
2004326143.tif 000002
【特許請求の範囲】
【請求項１】
２以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含むＣＰＵ装置であって、
ＣＰＵと、
通信インターフェイスを含む若しくは通信インターフェイスと接続された１つの通信用ＦＰＧＡと、
汎用ＦＰＧＡを含み、
起動時に前記ＣＰＵ装置内に格納された通信用ＦＰＧＡ回路配置データを使用して前記通信用ＦＰＧＡに通信回路の配置を行い、
前記通信回路を用いて得た汎用ＦＰＧＡ回路配置データを用いて汎用ＦＰＧＡの回路配置を行う初期化処理をすることを特徴とするＣＰＵ装置。
【請求項２】
請求項１記載のＣＰＵ装置であって、
通信用ＦＰＧＡと汎用ＦＰＧＡは直接接続され、
汎用ＦＰＧＡ回路配置データを通信用ＦＰＧＡから直接汎用ＦＰＧＡに送信することを特徴とするＣＰＵ装置。
【請求項３】
更にタイマを含み、
通信用ＦＰＧＡの回路配置終了からタイマは計時を開始することを特徴とする請求項１記載のＣＰＵ装置。
【請求項４】
前期計時の開始から一定期間中に前記初期化処理が終了しないと、前記初期化処理に変わる処理を行うことを特徴とする請求項３記載のＣＰＵ装置。
【請求項５】
更に前記通信用ＦＰＧＡ及び前記汎用ＦＰＧＡの回路配置の状態を表すレジスタを含み、
前記レジスタの状態で前記ＦＰＧＡの回路配置の終了を判断することを特徴とする請求項４記載のＣＰＵ装置。
【請求項６】
前記通信用ＦＰＧＡ回路配置データをＲＯＭに格納する請求項１記載のＣＰＵ装置。
【請求項７】
更に不揮発性メモリを含み、
前記通信用ＦＰＧＡ回路配置データを前記不揮発性メモリに格納する請求項１記載のＣＰＵ装置。
【請求項８】
前記初期化処理後、前記不揮発性メモリ内に格納された前記通信用ＦＰＧＡ回路配置データを書き換え可能な請求項７記載のＣＰＵ装置。
【請求項９】
前記通信回路を用いて前記汎用ＦＰＧＡの回路配置データをモジュール毎に取りこみ、
各モジュールを異なる外部サイトに要求することを特徴とする請求項１記載のＣＰＵ装置。
【請求項１０】
通信用ＦＰＧＡと汎用ＦＰＧＡを含むＣＰＵ装置に対し、通信用ＦＰＧＡに通信用インターフェイス回路の配置を行うステップと、
前記通信用インターフェイス回路を用いて、汎用ＦＰＧＡの回路配置を行うステップと、
汎用ＦＰＧＡの回路配置後、通信用ＦＰＧＡの前記通信用インターフェイス回路の再配置を行うステップからなることを特徴とするＣＰＵ装置の初期化方法。
【請求項１１】
通信用ＦＰＧＡと汎用ＦＰＧＡを含むＣＰＵ装置に対し、
通信用ＦＰＧＡの通信用インターフェイス回路の配置を行うステップと、
前記通信用ＦＰＧＡに配置された通信用インターフェイス回路を用いて、汎用ＦＰＧＡの回路配置を行うステップと、
前記汎用ＦＰＧＡの回路の動作確認を行うステップと、
前記汎用ＦＰＧＡの回路配置後、前記通信用ＦＰＧＡの前記通信用インターフェイス回路の再配置を行うステップ及び
前記再配置された通信用インターフェイス回路の動作確認を行うステップからなることを特徴とするＣＰＵ装置の初期化方法。
【請求項１２】
通信用ＦＰＧＡと汎用ＦＰＧＡを含み、通信用ＦＰＧＡと汎用ＦＰＧＡが直接接続されているＣＰＵ装置に対して、
通信用ＦＰＧＡの通信用インターフェイス回路の配置を行うステップと、
前記通信用ＦＰＧＡに配置された通信用インターフェイス回路を用いて、通信用ＦＰＧＡから直接汎用ＦＰＧＡに汎用ＦＰＧＡの回路配置を行うステップと、前記汎用ＦＰＧＡの回路配置後、前記通信用ＦＰＧＡの前記通信用インターフェイス回路の再配置を行うステップ及び
前記再配置された通信用インターフェイス回路の動作確認を行うステップからなることを特徴とするＣＰＵ装置の初期化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、装置の内部回路を大規模なＦＰＧＡ（フィールドプログラマブルゲートアレイ）によって構成されるＣＰＵ装置に関する。
【０００２】
【従来の技術】
ＦＰＧＡはロジック回路の一種である。
【０００３】
従来の回線インターフェイス機能を具備するＣＰＵ装置において、規模の大きいＦＰＧＡで回路を構成する場合には、ＦＰＧＡの回路配置データの容量が大きいため、専用の大容量ＲＯＭ（回路配線データを書きかえる必要がある場合には不揮発性メモリ）に保存しておく必要があった。
【０００４】
図１１は従来の回線インターフェイス機能を具備するＣＰＵ装置の構成例である。ＣＰＵ装置はＦＰＧＡ６０１とＦＰＧＡ６０２、コンフィグレーション回路６０３、ＦＰＧＡの回路配置データを保存する専用のＥＥＰＲＯＭ６０４、ＣＰＵ６０７、ＣＰＵ６０７が動作するためのプログラムを保存するＲＯＭ６０５、ＣＰＵ６０７が動作する際の一時記憶領域となるＲＡＭ６０６、これらを繋ぐバス６０９及びネットワーク入出力回路６２０を具備する。なおＦＰＧＡ６０１は外部回線インターフェイスと接続されている点若しくはネットワーク入出力回路６２０と接続されている点でＦＰＧＡ６０２と相違する。
【０００５】
次に図１２を利用して、ＣＰＵ装置の起動時の操作を説明する。
【０００６】
ＣＰＵ装置起動時、ＦＰＧＡ６０１とＦＰＧＡ６０２に関する回路配置データをコンフィグレーション回路６０３がＥＥＰＲＯＭ６０４もしくはＲＯＭ６０５から読み出し、それぞれのＦＰＧＡへ転送する（Ｓ７０１）。
【０００７】
データを送信された各ＦＰＧＡは、送信されたデータに基づき、その構造にしたがって内部配線を変更する（Ｓ７０２）。例えばＳＲＡＭ型ＦＰＧＡを使用している際にはＬＵＴ（ルックアップテーブル）を使用して、内部配線を変更する。
【０００８】
図１３はＥＥＰＲＯＭ６０４中のＦＰＧＡ用回路配置データを更新する際の手順を表すフローチャートである。
【０００９】
ＦＰＧＡの内部回路を変更する必要が生じた場合は、ＦＰＧＡ６０１の回線インターフェイスを経由して新たなＦＰＧＡの回路配置データを受信し、データをＲＡＭ６０６に書き込む（Ｓ７１１）。ＣＰＵ６０７はサムチェック等の手段で受け取ったデータの正当性評価を行い（Ｓ７１２）、データが妥当なものであればＣＰＵ６０７がＲＡＭ６０６内のデータにＥＥＰＲＯＭ６０４のデータを書き換える（Ｓ７１３）。これにより、次回のＣＰＵ装置起動時から新しい回路配置データによってＦＰＧＡの内部回路が形成される。一方データが不当なものであれば、受け取ったＲＡＭ６０６内のデータを破棄し、ＲＡＭ６０６の領域を開放する。
【００１０】
しかし、この従来技術は次のような問題がある。
【００１１】
第１の問題点は、ＣＰＵ装置が実現しようとする回路規模が大きくなるとＦＰＧＡ用の回路配置データを保存する部品のコストが増加することである。その理由は、ＦＰＧＡの回路規模が大きいほど、回路配置データの容量も大きくなり、それを保存するＥＥＰＲＯＭ等の必要容量が増加し、複数のＲＯＭを使用したり、容量の大きい高価なＲＯＭを使用したりするからである。
【００１２】
第２の問題点は、ＥＥＰＲＯＭ等の書き換え可能な不揮発性メモリを使用した際に、何らかの原因でＦＰＧＡの回路配置データを失い、ＣＰＵ装置が起動不能になる危険性があることである。その理由は、ＦＰＧＡの回路を変更する際、ＣＰＵによってＥＥＰＲＯＭの回路配置データを書き換えるが、ソフトのバグや突然の電源断などによりＥＥＰＲＯＭの書き換えを失敗する可能性があるからである。
【００１３】
第３の問題点として、回路配置データがＥＥＰＲＯＭやＲＯＭに残ることである。回路配置データは単独で商取引の対象となるため、ＣＰＵ装置を分解してまで情報取得を欲する者もいると考えられる為である。
【００１４】
第１の問題点を解決する先行技術として、特開２００１−３０６３４３号公報が挙げられる。即ち、ＣＰＵ、メモリ、ネットワーク機能と共にＦＰＧＡを有する開発用装置、及び、ＣＰＵ、メモリ、ネットワーク機能を有する管理装置からなるシステム上でネットワークを介して管理装置上から開発用装置のＦＰＧＡのコンフィグレーション及びバージョンアップを可能にするものである。よって、各開発装置毎に用意すべきＲＯＭを管理装置上に用意できる為、装置原価の面で優位である。
【００１５】
第２の問題点を解決する先行技術としては、特開２００２−１７６３５２号公報のように、データの誤り自体を防ぐ為にデータ転送時にクロックのタイミングを調整するようなものがある。
【００１６】
第３の問題点の解決には、暗号化した状態でＥＥＰＲＯＭに配置し、ＲＡＭ上に一旦展開して、解読してからＦＰＧＡに回路配置データを送るなどの手法も考えられるが、この場合も解読用のソフトウェアのアルゴリズムを解析されれば暗号化された回路配置データも解読されてしまう点が問題であった。
【００１７】
【特許文献１】
特開２００１−３０６３４３号公報（段落（００１９）―（００８１））
【特許文献２】
特開２００２−１７６３５２号公報（段落（００２８）―（００３８））
【００１８】
【発明が解決しようとする課題】
しかし、上記従来技術においても解決し得ない問題があった。
【００１９】
特開２００１−３０６３４３号公報においては開発用装置の外部に存在する管理装置上からデータを送りこむ為、管理装置から開発用装置へのアクセスが不可欠となり、セキュリティの面から問題があった。
【００２０】
また、特開２００２−１７６３５２号公報もＲＯＭの保存失敗の防止を目的とするものであって、失敗した際にどのようにリカバーするかを目的とした発明ではない。
【００２１】
更に近年のセキュリティ意識の高まりによって、起動直後、ハードウェアの回路配置データがそのままＲＡＭ上に残置することは好ましいことではない。また、必ず一定の外部サイトにアクセスしていれば、長期的にデータの内容を解析される怖れが付きまとった。
【００２２】
本発明では、回線インターフェイスを備えたＣＰＵ装置において、装置内部を大規模なＦＰＧＡ回路によって構成する場合でも、装置起動時に小さな容量のＦＰＧＡ回路配置データを使用して通信インターフェイスを構成し、該通信インターフェイスを使用して他のモジュールの回路配置データをダウンロードすること、及び、外部からのアクセス可能なメモリにそれらの回路配置データを残さないことでセキュリティの向上を図る。
【００２３】
【課題を解決するための手段】
本発明に係わるＣＰＵ装置は、２以上のＦＰＧＡを含むＣＰＵ装置であって、ＣＰＵと、通信インターフェイスを含む１つの通信用ＦＰＧＡと、汎用ＦＰＧＡを含み、起動時に前記ＣＰＵ装置内に格納された通信用ＦＰＧＡ回路配置データを使用して前記通信用ＦＰＧＡに通信回路の配置を行い、前記通信回路を用いて得た汎用ＦＰＧＡ回路配置データを用いて汎用ＦＰＧＡの回路配置を行う初期化処理をするものとする。
【００２４】
なお、通信用ＦＰＧＡと汎用ＦＰＧＡは直接接続され、汎用ＦＰＧＡ回路配置データを通信用ＦＰＧＡから直接汎用ＦＰＧＡに送信してもよい。
【００２５】
また、更にタイマを含み、通信用ＦＰＧＡの回路配置終了からタイマは計時を開始してもよく、一定期間中に前記初期化処理が終了しないと、前記初期化処理に変わる処理を行ってもよい。
【００２６】
更に、前記通信用ＦＰＧＡ及び前記汎用ＦＰＧＡの回路配置の状態を表すレジスタを内蔵するコンフィグレーション回路を含み、ＣＰＵは前記レジスタの状態で前記初期化処理の終了の判断を行ってもよい。
【００２７】
なお、前記通信用ＦＰＧＡ回路配置データはＲＯＭに格納しても、不揮発性メモリに格納しても良い。不揮発性メモリに格納した場合は、初期化処理後、前記不揮発性メモリ内に格納された前記通信用ＦＰＧＡ回路配置データを書き換え可能としても良い。
【００２８】
また、前記通信回路を用いて前記汎用ＦＰＧＡの回路配置データをモジュール毎に取りこみ、各モジュールを異なる外部サイトに要求しても良い。
【００２９】
本発明に係わるＣＰＵ装置の初期化方法は、通信用ＦＰＧＡの通信用インターフェイス回路の配置を行うステップと、前記通信用インターフェイス回路を用いて、汎用ＦＰＧＡの回路配置を行うステップと、汎用ＦＰＧＡの回路配置後通信用ＦＰＧＡの前記通信用インターフェイス回路の再配置を行うステップからなることを特徴とする
また、通信用ＦＰＧＡの通信用インターフェイス回路の配置を行うステップと、前記通信用ＦＰＧＡに配置された通信用インターフェイス回路を用いて、汎用ＦＰＧＡの回路配置を行うステップと、前記汎用ＦＰＧＡの回路の動作確認を行うステップと、前記汎用ＦＰＧＡの回路配置後、前記通信用ＦＰＧＡの前記通信用インターフェイス回路の再配置を行うステップ及び前記再配置された通信用インターフェイス回路の動作確認を行うステップから構成されても良い。
【００３０】
通信用ＦＰＧＡと汎用ＦＰＧＡが直接接続されているＣＰＵ装置に対して、通信用ＦＰＧＡの通信用インターフェイス回路の配置を行うステップと、前記通信用ＦＰＧＡに配置された通信用インターフェイス回路を用いて、通信用ＦＰＧＡから直接汎用ＦＰＧＡに汎用ＦＰＧＡの回路配置を行うステップと、前記汎用ＦＰＧＡの回路配置後、前記通信用ＦＰＧＡの前記通信用インターフェイス回路の再配置を行うステップ及び前記再配置された通信用インターフェイス回路の動作確認を行うステップから構成されても良い。
【００３１】
【発明の実施の形態】
（第１の実施の形態）
以下に本発明の実施の形態を図面に基づき説明する。
【００３２】
図１は本発明に係るＣＰＵ装置１の第１の実施の形態を表すブロック図である。
【００３３】
ＣＰＵ装置１はＦＰＧＡ１１、ＦＰＧＡ１２、コンフィグレーション回路１３、タイマ回路１４、ＲＯＭ１５、ＲＡＭ１６、ＣＰＵ１７、ＲＯＭ１８とアドレス／データバス１９、ネットワーク入出力回路２０及び他の制御信号先から構成される。
【００３４】
ＦＰＧＡ１１（通信用ＦＰＧＡ）は、コンフィグレーション回路１３によってＲＯＭ１５から回路配置データが転送され、内部回路を形成する。ＦＰＧＡ１１は外部回線インターフェイスを含む。
【００３５】
ＦＰＧＡ１２（汎用ＦＰＧＡ）もコンフィグレーション回路１３によってＲＡＭ１６から回路配置データが転送され、内部回路を形成する。
【００３６】
本発明においては、ＦＰＧＡ１１は最小限の回線インターフェイス回路を構成できる最小の容量を、ＦＰＧＡ１２は上記最小限の回線インターフェイス回路以外の回路を構成する大きな容量を有することを想定しているが、必ずしもこれに拘るものではない。
【００３７】
コンフィグレーション回路１３はＦＰＧＡ１１及びＦＰＧＡ１２それぞれに回路配置データを送信する機能を含み、各種制御信号線がＦＰＧＡ１１等に配置される。また、ＦＰＧＡ１１及びＦＰＧＡ１２の回路配置が完了したことを示す配置完了レジスタ１３ｂを内包する。
【００３８】
タイマ回路１４はＦＰＧＡ１１への回線データ送信完了後からの時間をカウントアップする。一定の時間経過後ＦＰＧＡ１２への回路配置が終了しないとＦＰＧＡ１２回路配置失敗信号を出力する。
【００３９】
ＲＯＭ１５には、ＦＰＧＡ１１が最初に機能するための最小限の回路配置データが格納されている不揮発性メモリである。
【００４０】
ＲＡＭ１６はＣＰＵ１７の一次記憶領域たる揮発性メモリである。
【００４１】
ＣＰＵ１７はシステム全体を制御する中央処理装置のことである。汎用性が高く、電源投入後初期化したＣＰＵ装置１はＣＰＵ１７の制御下で動作する。
【００４２】
ＲＯＭ１８はＣＰＵ装置１の動作の為に必要な内部プログラムを格納する不揮発性メモリである。なお、便宜上、本明細書ではＲＯＭ１５とＲＯＭ１８に分けてはいるが、これらを１つのメモリに格納しても良い。
【００４３】
アドレス／データバス１９はＣＰＵ１７及び他の周辺回路との間でアドレス情報／データをやり取りするための内部バス及びその制御信号群のことである。
【００４４】
ネットワーク入出力回路２０はネットワークから送信されるデータをアナログデジタル変換してＦＰＧＡ１１に送信し、またＦＰＧＡ１１から送信されるデータをデジタル／アナログ変換してネットワークに送信する。また、本実施の形態ではデータリンク層に関するプロトコルヘッダの解析処理も行う。
【００４５】
アドレス／データバス１９以外にも上記構成の間を各種信号線が各構成部品間を接続している。
【００４６】
コンフィグレーション回路１３からＦＰＧＡ１１及びＦＰＧＡ１２のそれぞれに対し、回路データを送信する為の信号線が接続されている（１ａ、１ｂ）。この信号線はシリアルインターフェイスであってもパラレルインターフェイスであっても良い。
【００４７】
また、コンフィグレーション回路１３からタイマ１４及びＣＰＵ１７に対してコンフィグレーション完了信号が接続される（１ｃ）。これはＦＰＧＡ１１及びＦＰＧＡ１２の回路形成が全て完了したことを表す信号が送信される。
【００４８】
ＦＰＧＡ１１からはタイマ回路１４及びコンフィグレーション回路１３に対して回路構成の完了を表すＦＰＧＡ１１回路構成完了信号線１ｄが接続される。これは、タイマ回路１４のカウント開始を意味すると共に、ＦＰＧＡ１２への回路配置データの転送が可能になったことを表す。
【００４９】
タイマ回路１４からもコンフィグレーション回路１３に対してＦＰＧＡ回路配置失敗信号１ｅが接続される。
【００５０】
更にＦＰＧＡ１２からコンフィグレーション回路１３に対してＦＰＧＡ１２回路構成完了信号線１ｆが接続され、ＦＰＧＡ１２の回路配置が終了したことを表す配置完了レジスタ１３ｂのセット条件となる。
【００５１】
ＦＰＧＡ１１からネットワーク入出力回路２０に対しては送信するデータをシリアル送信し、ネットワーク入出力回路２０からＦＰＧＡ１１に対して受信したデータをアナログ／デジタル変換した後のデジタルデータを送信する為の信号線群１ｇが接続されている。
【００５２】
次に、図２を用いて正常動作時の初期化処理の流れについて説明する。
【００５３】
ＣＰＵ装置の電源が投入されると、図示しない各構成の初期化を行う。ＣＰＵ１７が各構成の初期化の完了を確認したら、ＣＰＵ１７がコンフィグレーション回路１３をアクティブにする。その後ＣＰＵ１７は配置完了レジスタ１３ｂを一定周期でチェックする。
【００５４】
コンフィグレーション回路１３がアクティブになった後ＣＰＵ１７のコマンドの発行を待って、コンフィグレーション回路１３がＲＯＭ１５からアドレス／データバス１９を経由してＦＰＧＡ１１用回路配置データを読み出し始める。この際読み出されるＦＰＧＡ１１用回路配置データは外部サイトからＦＰＧＡ１１用回路再配置データを読み出すのに必要な最小限の回路配置を表したものである。
【００５５】
その後コンフィグレーション回路１３は読みこんだＦＰＧＡ１１用回路配置データを逐次ＦＰＧＡ１１にデータ送信線１ａ経由で送信する（Ｓ２０１）。送信されたＦＰＧＡ１１用回路配置データを使って、ＦＰＧＡ１１の内部回路構成（すなわち暫定的な回線インターフェイス回路形成）が行われる（Ｓ２０２）。内部回路構成が行われると、外部からのアクセスが可能になったことを表す為、回路構成完了をタイマ１４及びコンフィグレーション回路１３に回路構成完了信号線１ｄを用いて通知する。
【００５６】
タイマ１４は回路構成完了信号線１ｄがアクティブになったことを確認すると、カウントアップを開始する（Ｓ２０３）。一定の時間経過後ＦＰＧＡ１２への回路配置が終了しないとＦＰＧＡ回路配置失敗信号１ｅを出力する。また、回路構成完了信号線１ｄがアクティブになるとコンフィグレーション回路１３内の配置完了レジスタ１３ｂがセットされる。
【００５７】
ＦＰＧＡ１１用回路配置データによりＦＰＧＡ１１の暫定的な回線インターフェイス回路の配置完了を確認したら、ＣＰＵ１７はＦＰＧＡ１１に展開された暫定の回線インターフェイス回路を用いて外部サイトからＦＰＧＡ１１用回路再配置データ（完成された回線インターフェイス回路形成のための配置データ）をダウンロードする（Ｓ２０４）。なお、この際、ＣＰＵ１７側からはデータ要求を行う旨のコマンドを送出できるのみで、実際の送信は全てＦＰＧＡ１１内で処理される。ＣＰＵ１７はデータ要求の結果送付されてくるデータの着信を行うだけである。
【００５８】
ＥＥＰＲＯＭから送信されるＦＰＧＡ１１用回路配置データと異なり、外部サイトからのダウンロードとなるため、ＦＰＧＡ１１用回路再配置データを受け取ったら、ＣＰＵ１７は受け取ったデータの妥当性を検証する（Ｓ２０５）。この際、受信したＦＰＧＡ１１回路再配置データにはハミングコードやＣＲＣと言った誤り訂正符号化がなされている可能性があるがこれらの訂正処理も同時に行い、ＦＰＧＡ１１に送信可能な状態にすべきである。
【００５９】
ＦＰＧＡ１１用回路再配置データが妥当でなければ（Ｓ２０５：ｉｎｖａｌｉｄ）、ＣＰＵ１７はＦＰＧＡ１１用回路再配置データを再度ダウンロードする。一方、正常であればＣＰＵ１７がコマンドを発行した後、コンフィグレーション回路１３はＦＰＧＡ１１用回路再配置データを逐次ＦＰＧＡ１１にデータ送信線１ａ経由で送信しＦＰＧＡ１１の回路を再構成する（Ｓ２０６）。即ち、これによって完成された回線インターフェイス回路の形成を実行する。再構成中は回路構成完了信号線１ｄがインアクティブとなり、それに伴い配置完了レジスタ１３ｂの対応するビットもインアクティブとなる。
【００６０】
回路配置が完了すると回路構成完了信号線１ｄ及び配置完了レジスタ１３ｂの双方がアクティブになる。
【００６１】
配置完了レジスタ１３ｂがアクティブになったことをＣＰＵ１７が検知すると、ＦＰＧＡ１１に構成された回路が外部回線インターフェイスとして機能するかの動作チェックを行う（Ｓ２０７）。動作チェック時に不具合が発生したら、ＦＰＧＡ１１の内部回路構成をリトライする（Ｓ２０１）。なお、一定の回数内部回路構成を行っても、正常動作しなかった場合は不良表示を行い故障であることを操作者に表示して処理の停止を行っても良い。また、タイマ１４のタイムアウト発生までリトライをするようにしても構わないが設計事項であるので詳細は省略する。
【００６２】
外部回線インターフェイスの正常動作を確認すると、ＣＰＵ１７はＦＰＧＡ１２回路配置データを特定のサイトからダウンロードする（Ｓ２０８）。この際、Ｓ２０４のようにＦＰＧＡ１１に構成された暫定の回線インターフェイス回路に頼るのではなく、ＣＰＵ１７の制御下において処理を行う。即ち、ＦＰＧＡ１１の完成した回線インターフェイス回路及びＲＯＭ１８等に格納されたソフトウェアモジュールを使用してＦＰＧＡ１２回路配置データの格納されているサイトを指定して通信を行う。
【００６３】
ダウンロードしたＦＰＧＡ１２回路配置データはＲＡＭ１６に一次的に記憶される。この際、ＦＰＧＡ１２回路配置データをダウンロードできなければ、タイマ１４のタイムアウト発生までリトライを掛けても良い。
【００６４】
ＥＥＰＲＯＭから送信されるＦＰＧＡ１１用回路配置データと異なり、外部サイトからのダウンロードとなるため受信したＦＰＧＡ１２回路配置データにはハミングコードやＣＲＣと言った誤り訂正符号化がなされているが、これらの処理に付いては本発明と直接的な関係は無い為、符号化等についてはここでは詳述しない。
【００６５】
ＦＰＧＡ１１回路再配置データ同様、ＦＰＧＡ１２回路配置データのダウンロードが完了したらした、ＣＰＵ１７は受信したデータの検証を行う（Ｓ２０９）。受信したデータが正当なものであって、書き換えても動作に支障が無い場合には（Ｓ２０９：ｖａｌｉｄ）、ＦＰＧＡ１２回路配置データの格納領域アドレスをコンフィグレーション回路１３に送信する。一方、受信したデータに問題がある場合（Ｓ２０９：ｉｎｖａｌｉｄ）、ダウンロードのリトライ若しくはエラー処理を行うが、本発明においては特定しない。図２上ではリトライを行っているがこれに限定されるものではない。
【００６６】
ＦＰＧＡ１２回路配置データが送信されたらＦＰＧＡ１２の回路配置を実行する（Ｓ２１０）。問題無く、回路配置が終了したら、ＦＰＧＡ１２回路構成完了信号線１ｆがアクティブになり、これをトリガとして配置完了レジスタ１３ｂが再度セットされる。
【００６７】
配置完了レジスタ１３ｂによってＦＰＧＡ１２の回路配置が完了したことをＣＰＵ１７が確認すると、ＦＰＧＡ１２が提供する諸機能が実行可能か否かの動作チェックをＣＰＵ１７が行う（Ｓ２１１）。
【００６８】
ＦＰＧＡ１２の回路配置が適切に行われていることを確認したら（Ｓ２１１：ｖａｌｉｄ）、ＣＰＵ１７はタイマ１４のカウントを停止するとともに（Ｓ２１２）、配置完了レジスタ１３ｂの定期的なチェックを終了する。
【００６９】
次に、図３を用いて外部サイトとＣＰＵ装置との関係を説明する。
【００７０】
ＣＰＵ装置１はネットワーク２を通じて外部サイト３ａ及び３ｂに接続する。ＣＰＵ装置１がＦＰＧＡ１１の回路配置を終えると、外部サイトにＦＰＧＡ１２回路配置データを要求する旨は先ほど述べた通りである。ＣＰＵ装置１がＦＰＧＡ１２回路配置データを要求する際、ＣＰＵ１はＲＯＭ１５に記録されたアドレス情報も同時に読み出す。この際アドレス情報はネットワーク２の通信用プロトコルに応じて相違する。例えば、ＴＣＰ／ＩＰを用いる場合にはこのアドレス情報はＩＰアドレス及びポート番号となるだろう。
【００７１】
ＣＰＵ装置１がＦＰＧＡ１２回路配置データを要求する際、要求時に使用するネットワーク２の伝送方式は如何様なものでも良い。例えばＡＤＳＬなどによって接続されているパソコンや携帯電話であればＷＡＮで用いられるＡＴＭ（非同期転送モード）によって構成されるだろうが、速度的に問題があるＳＴＭ（同期転送モード）を用いても構わない。
【００７２】
ＣＰＵ装置１はネットワーク２を介して要求信号を外部サイト３ａのサーバα３１に送信する。サーバα３１は受け取ったデータ形式が適切なものであればデータベースα３２からＦＰＧＡ１２回路配置データを読み出し、ネットワーク２経由でＣＰＵ装置１に送信する。この際、ＡＴＭを用いるのであればＶＣＩ（ヴァーチャルチャンネルアイデンティフィア）やＶＰＩ（ヴァーチャルパスアイデンティフィア）といったデータリンク層の属性とＩＰアドレス等のネットワーク層の属性との間でインターフェイスを設けて一意的に相手が特定できるようにしてやる必要がある。
【００７３】
また外部サイト側で複数のモジュールについて、複数のサーバを用いても良い。サーバβ３３に対してＣＰＵ装置１は個々の機能にかかわるモジュール別に複数のＦＰＧＡ１２回路構成データを要求する構成を取っていたとする。サーバβ３３はＣＰＵ装置１の要求に応じてデータベースβ’３４かデータベースβ”３５から要求された個々の機能にかかわるＦＰＧＡ１２回路構成データを読み出し、ＣＰＵ装置１にデータを送信するようにしても良い。
【００７４】
図２でも表しているが、ＦＰＧＡ１１は逐次的に回路構成が変化することが本発明の前提である。図４及び図５はＦＰＧＡ１１の変化を表したものであり、それについて説明する。
【００７５】
図４は、ＦＰＧＡ１１がＲＯＭ１５から読み出したＦＰＧＡ１１回路配置データに基づき、どのような回路を構成するかを表している。以下この段階での回路を「暫定回路」（既述の暫定的な回線インターフェイス回路）と言う。これは前述の暫定的な回線インターフェイス回路と同じものである。
【００７６】
ＦＰＧＡ１１上はＦＰＧＡ１１回路配置データを受け取った後、ネットワーク受信インターフェイス回路４１、ネットワーク層・トランスポート層解析回路４２、バスインターフェイス回路４３、ネットワーク層・トランスポート層処理回路４４及びネットワーク送信インターフェイス回路４５から構成なる回路を構成する。
【００７７】
ネットワーク受信インターフェイス回路４１は、ネットワーク入出力回路２０が受信したデータをデータ抽出回路４２に対し送信する回路である。
【００７８】
ネットワーク層・トランスポート層解析回路４２はネットワーク受信インターフェイス回路４１から送られたデータのネットワーク層及びトランスポート層に関するプロトコルヘッダの切り出し及びデータ品質の保証処理を行う。トランスポート層において保証する品質のデータが生成される目処が立てば、バスインターフェイス回路４３に逐次データを送信する。
【００７９】
バスインターフェイス回路４３はネットワーク層・トランスポート層解析回路４２から送られたデータをアドレス／データバス１９に送信し、また、アドレス／データバス１９から送信されてくるネットワーク向けの送信データをネットワーク層・トランスポート層処理回路４４に送信する機能を有する。また、それらの処理に関係する制御信号のコントロールを行う。
【００８０】
ネットワーク層・トランスポート層処理回路４４は、ＦＰＧＡ１１回路再配置データを保持する外部サイトに要求する際のデータ及びプロトコルヘッダ（要求データ）をネットワーク送信インターフェイス回路４５に送る直前の状態で保持しており、それをネットワーク送信インターフェイス回路４５に送る機能しか持たない。ＣＰＵ１７からのコマンドを受け取ると、ネットワーク層・トランスポート層処理回路４４は要求データをネットワーク送信インターフェイス回路４５に送る。
【００８１】
ネットワーク送信インターフェイス回路４５は、ネットワーク入出力回路２０に対し、ネットワーク層・トランスポート層処理回路４４が有する要求データを送信する回路である。
【００８２】
なお、ネットワーク受信インターフェイス回路４１及びネットワーク送信インターフェイス回路４５は本実施の形態においてはＦＰＧＡのＩ／Ｏ  ＬＯＧＩＣ回路を想定している。したがって、実動作の上では特に必要はないがＦＰＧＡ外部との論理的接続の為に欠かせない。また、この部分は回路配置データによっても変更できない部分である。
【００８３】
図５は外部サイトからＦＰＧＡ１１回路再配置データを読み出して回路構成を再度行った後（図２のＳ２０６）の回路構成である。以下、この段階での回路を「恒常回路」という。
【００８４】
本図においては、ネットワーク層・トランスポート層データ管理部４６が図４の構成に加えて追加されている。またネットワーク層・トランスポート層処理回路４４はその構成を大きく異にする構成を取る。
【００８５】
ネットワーク層・トランスポート層解析回路４２はネットワーク受信インターフェイス回路４１から送られたデータのネットワーク層及びトランスポート層に関するプロトコルヘッダの切り出し及びデータ品質の保証処理を行う点で図４と同様の機能を有するが、ネットワーク層・トランスポート層データ管理回路４６と接続される点で相違する。
【００８６】
恒常回路において、ネットワーク層・トランスポート層処理回路４４はネットワーク層・トランスポート層データ管理回路４６の管理下でデータの送受信を行う。即ち、ネットワーク層・トランスポート層データ管理回路４６がシーケンスナンバーを適宜割り当て、ネットワーク層・トランスポート層処理回路４４がプロトコルヘッダを作り、データとセットでネットワーク送信インターフェイス回路４５に送る。また、送信先や送信するデータをＣＰＵ１７が指定できる点でも汎用性を有する。
【００８７】
ネットワーク層・トランスポート層データ管理回路４６はネットワーク層、トランスポート層におけるデータの制御情報を統合的に管理する回路である。例えば、ネットワーク層・トランスポート層のプロトコルとしてＴＣＰ／ＩＰを使用した場合には、シーケンスナンバーやウィンドウサイズなどの管理を行う。具体的にはネットワーク層・トランスポート層のプロトコルとしてＴＣＰ／ＩＰを使用する場合、ネットワーク層・トランスポート層解析回路４２で切り出されたプロトコルヘッダデータからＡＣＫナンバーを切り出し、ネットワーク層・トランスポート層処理回路４４から送信した際のシーケンスナンバーと対比しデータとしての整合性が取れているかを確認し、取れていないようであれば再送処理に移行するなどを行う。
【００８８】
次に図４と図５の回路における目的の相違点を記載する。
【００８９】
図４の回路は外部サイトにＦＰＧＡ１１回路再配置データを読み出す為に構成される回路である。したがって、データの要求先である当該データを有する外部サイトを最低限有して、そこにアクセスできれば良い。また、送信されるデータ要求も定型化できるため、そのデータを送る為に必要最低限の回路構成で良く、また、回路構成後、ＣＰＵ１７から発するコマンドも必要最低限のもので済む。
【００９０】
一方、図５の回路は外部サイトにＦＰＧＡ１２回路配置データを要求する以外に、ＣＰＵ装置１の初期化が終了したのちも、不特定の外部サイトにアクセスする機能が求められるため汎用的な機能が必要である。したがって、ネットワーク層・トランスポート層のプロトコルで定められたデータの誤り訂正・再送要求といった機能まで必要となる。
【００９１】
掛かる相違により、各モジュールの機能も相違する。
【００９２】
暫定回路のネットワーク層・トランスポート層解析回路４２と恒常回路のネットワーク層・トランスポート層解析回路４２では、送られたデータからプロトコルヘッダを切り出すと言う点では同一である。しかし、暫定回路においては、切り出したプロトコルヘッダからデータの保証に関する最低限の情報（例えば、ＴＣＰ／ＩＰを使用する場合においてはアックナンバーの整合性を取る）を判断して各プロトコルに適合していなければ破棄する処理を行うようにすれば良い。なお、データが破棄された場合にはＣＰＵ１７によって、送信コマンドを再発行するようにすれば、ＦＰＧＡ１１への回路配置は最小限で済む。
【００９３】
一方、恒常回路においては切り出したプロトコルヘッダをネットワーク層・トランスポート層データ管理回路４６に送信し、プロトコル整合性に関する処理はネットワーク層・トランスポート層データ管理回路４６に任す。
【００９４】
ただし、暫定回路および恒常回路のいずれの場合にも受信したデータはバスインターフェイス回路４３及びバス１９を介してＲＡＭ１６に書きこまれる。
【００９５】
暫定回路におけるネットワーク層・トランスポート層処理回路４４は、既述の通り、特定の外部サイトに対して、特定のデータ要求リクエストを送信する単機能のモジュールに過ぎない。また、ネットワーク層・トランスポート層解析回路４２と協調して動作する際には（例えばＴＣＰ／ＩＰのシーケンスナンバーが可変の場合など）にはネットワーク層・トランスポート層解析回路４２との間でデータのやり取りが必要となる。
【００９６】
一方、恒常回路のネットワーク層・トランスポート層処理回路４４はＣＰＵ１７から設定される送信先に対し、ＣＰＵ１７から送られるデータを送信する。したがって、送信先を設定するレジスタや一時的に送信データを滞留させるバッファも持つ場合がある。また、ネットワーク層・トランスポート層データ管理回路４６に対し、ＴＣＰ／ＩＰにおけるシーケンスナンバーを送信したり、現時点におけるウィンドウサイズを指定されたりする為の送受信を行う必要がある。
【００９７】
暫定回路に存在しないネットワーク層・トランスポート層データ管理回路４６はネットワーク層・トランスポート層解析回路４２及びネットワーク層・トランスポート層処理回路４４からのデータを参照し、通信管理をおこなう。したがって、暫定回路では行わなかった再送処理等も行えるようになる。
【００９８】
なお本実施の形態では、ＦＰＧＡ１１にネットワーク層及びトランスポート層の機能を付与し、より下層のデータリンク層の処理はネットワーク入出力回路２０で行うようにしている。しかし、ＦＰＧＡが物理層に対応するデジタル・アナログ変換回路及びアナログ・デジタル変換回路のインターフェイスを有していればネットワーク入出力回路２０をＦＰＧＡ１１の中に取り込んでも良い。この場合ＶＰＩやＶＣＩと言った相手先特定情報を含むＡＴＭプロトコルヘッダの作成及び解釈もＦＰＧＡ１１で行われる。これに伴い、ネットワーク層・トランスポート層解析回路４２ではデータリンク層のプロトコルヘッダの切り出しを、ネットワーク層・トランスポート層処理回路４４ではプロトコルヘッダの付加を、ネットワーク層・トランスポート層データ管理回路４６ではデータリンク層に係わる端末間のデータ保証処理（ＡＴＭプロトコルのＨＥＣなど）を行う。
【００９９】
なお、図２ではＦＰＧＡ１２回路配置データを一括して読み込んでいるが、機能毎にモジュール化して、モジュール毎に読み出しても良い。掛かる場合には、ＣＰＵ１７からのコマンドが増加するが、モジュール毎に複数のサーバーを利用できる。したがって、サーバー側の負荷を分散できる為、数多くのＣＰＵ装置に対応できるメリットがある。なお図２のＳ２０８からＳ２１１を反復して行うことも、モジュール毎にＦＰＧＡ１２回路配置データを読みこんだ後、一括してＳ２１１の動作確認を行っても良い。
【０１００】
（第２の実施の形態）
第２の実施の形態を表す図６においては、第１の実施の形態に係わる図１とほぼ同一の回路を用いるが、ＲＯＭ１５の代わりにＥＥＰＲＯＭ２１が用いられている点が相違する。よって、図１と重複する事項に付いては説明を省略する。
【０１０１】
ＥＥＰＲＯＭ２１には第１の実施の形態同様、ＦＰＧＡ１１回路再配置データが格納されている。ＥＥＰＲＯＭは不揮発性のメモリではあるが、書き換え可能な点でＲＯＭと相違する。この特性を利用して、図７を参照して第２の実施の形態の処理を説明する。
【０１０２】
図２に記載された全ての初期化処理が終わると、ＣＰＵ１７はＦＰＧＡ１１回路配置データの更新があったか確認するため外部サイトにアクセスする（Ｓ７０１）。この際アクセスする外部サイトはＦＰＧＡ１１回路再配置データにアクセスする為の外部サイトと同じサイトでも異なるサイトでも良い。
【０１０３】
ＦＰＧＡ１１回路配置データの更新があるか否かは、外部サイトは更新されたＦＰＧＡ１１回路再配置データを有する外部サイトのアドレスの有無等で行われる。外部サイトのアドレスがあれば、更新がなされたとして該アドレスに対してＦＰＧＡ１１回路配置データの要求を行う（Ｓ７０２：Ｙｅｓ）。外部サイトのアドレスが無ければ、更新も無かったものとして処理は終了する（Ｓ７０２：Ｎｏ）。
【０１０４】
更新されたＦＰＧＡ１１回路配置データを受け取るとＲＡＭ１６に受信する（Ｓ７０３）。受け取ったデータをＣＰＵ１７が妥当なものであるかを検証し（Ｓ７０４）、妥当なものであれば、受け取ったデータをＥＥＰＲＯＭ２１に書き込みを行い（Ｓ７０５）。一方、妥当なもので無ければ再度ＦＰＧＡ１１回路配置データを要求する（Ｓ７０３）。
【０１０５】
ＥＥＰＲＯＭ２１上のＦＰＧＡ１１回路配置データが書き変えられると、次回起動時には、その書き変えられたＦＰＧＡ１１回路配置データで初期化処理が行われる。これにより、速やかに最新のＦＰＧＡ１１回路配置データに更新することが出来る。
【０１０６】
（第３の実施の形態）
次に第３の実施の形態について説明する。この発明は、ＲＡＭ１６に回路配置データを残さないことで、秘匿性を高めるという目的も有している。
【０１０７】
近年のＦＰＧＡは、内部にＲＡＭを有する場合が多い。このＦＰＧＡの内部ＲＡＭを利用して、ＦＰＧＡ１１からＦＰＧＡ１２に対しデータを転送し、その後、ＦＰＧＡ１１を再構成することによって、ＦＰＧＡ内のＲＡＭへのアクセスを封じ、回路配置データの秘匿性を向上させるのが本実施の形態の狙いである。図８乃至１０を用いて本実施の形態の動作を説明する。
【０１０８】
図８は本発明の第３の実施の形態を表すブロック図である。基本的には第１の実施の形態と同じ回路構成を取るが、ＦＰＧＡ１２とＦＰＧＡ１１が直接接されている点が相違する。したがって、これ以外の構成の説明に付いては図１と同様である為省略する。
【０１０９】
ＦＰＧＡ１１とＦＰＧＡ１２を結ぶデータ信号線群１ｈは、ＦＰＧＡ１１から直接ＦＰＧＡ１２に対してＦＰＧＡ１２回路配置データを送信する為の信号線群である。この信号線群を使用してＦＰＧＡ１１からＦＰＧＡ１２にＦＰＧＡ１２回路配置データを送信する。
【０１１０】
図９は第３の実施の形態の動作を表すフローチャートである。
【０１１１】
図１０はＦＰＧＡ１１がＲＯＭ１５上の回路配置データを読み込んだ直後（図２Ｓ２０２相当時）の回路配置を表すブロック図である。第１の実施の形態と異なり、ＦＰＧＡ１２用のインターフェイスをつかさどるＦＰＧＡ１２送信部４７がＦＰＧＡ１２との間を結ぶ信号線群１ｈ、第１の実施の形態でＦＰＧＡ１２回路構成完了信号線１ｆに相当するＦＰＧＡ１２回路構成完了信号線１ｉ、ＦＰＧＡ１２の回路配置が終わったことをコンフィグレーション回路１３に送信するＦＰＧＡ１２回路構成完了信号線１ｊ及びネットワーク層・トランスポート層解析回路４２とに接続されている。
【０１１２】
また、ネットワーク層・トランスポート層送信回路４４は、基本機能は図２Ｓ２０２相当時における第１の実施の形態のそれと変わらないが、ＦＰＧＡ１１回路再配置データの要求に加え、ＦＰＧＡ１２回路配置データの要求も行えるようになり、またＦＰＧＡ１２回路配置データの要求用のコマンドも追加されている。
【０１１３】
次に、図９を用いて、正常動作時の初期化の流れについて説明する。
【０１１４】
ＣＰＵ端末の電源が投入されると。ＣＰＵ１７はＲＯＭ１５から、ＦＰＧＡ１１回路配置データを読み出し（Ｓ９０１）、ＦＰＧＡ１１の回路配置を実行する（Ｓ９０２）。この際、図１０に表されるＦＰＧＡ１１の回路が構成される。ＦＰＧＡ１１の回路の構成をトリガとして、初期化の成否を判断する所定の期間をカウントするタイマのカウントを開始する（Ｓ９０３）。
【０１１５】
図１０の回路が構成されたことを配置完了レジスタ１３ｂによってＣＰＵ１７が確認すると、ＣＰＵ１７はネットワーク層・トランスポート層送信回路４４に対して、外部サイトにＦＰＧＡ１２回路配置データの要求を行う旨のコマンドを発行する（Ｓ９０４）。要求に対してＦＰＧＡ１２回路配置データが戻ってきたら、ネットワーク層・トランスポート層解析回路４２が誤り訂正や妥当性の検証を行う（Ｓ９０５）。検証の結果、ＦＰＧＡ１２回路配置データが妥当なものであれば（Ｓ９０５：ｖａｌｉｄ）、ＦＰＧＡ１２送信部４７に対して誤り訂正後のＦＰＧＡ１２回路配置データを送信する。これらの誤り訂正やＦＰＧＡ１２送信部４７への送信の際にバッファが必要となる場合も考えられる。これらに対してはＦＰＧＡ内部のＲＡＭを用いることでＲＡＭ１６への書きこみを避け、秘匿性を高める。一方、ＦＰＧＡ１２回路配置データが不当なものであれば（Ｓ９０５：ｉｎｖａｌｉｄ）、再度ＦＰＧＡ１２回路配置データを読み出す（Ｓ９０４）。
【０１１６】
ＦＰＧＡ１２送信部４７にＦＰＧＡ１２回路配置データが送信されると、ＦＰＧＡ１２へデータが送信される（Ｓ９０６）。ＦＰＧＡ１２回路構成完了信号線１ｉによってＦＰＧＡ１２送信部４７が通知されると、ＦＰＧＡ１２送信部４７はＦＰＧＡ１２回路構成完了信号線１ｊをセットしてコンフィグレーション回路１３にＦＰＧＡ１２の回路構成が完了したことを通知する。
【０１１７】
コンフィグレーション回路１３中の配置完了レジスタ１３ｂによってＣＰＵ１７がＦＰＧＡ１２の回路配置が完了したことを確認したら、ＦＰＧＡ１２の動作チェックをする（Ｓ９０７）。動作チェックに失敗したら（Ｓ９０７：ｉｎｖａｌｉｄ）、再度ＦＰＧＡ１２回路配置データの読みこみをする（Ｓ９０４）。
【０１１８】
動作チェックが成功したら（Ｓ９０７：ｖａｌｉｄ）、次にＣＰＵ１７は、ＦＰＧＡ１１回路再配置データを要求するコマンドをネットワーク層・トランスポート層送信回路４４に発行する（Ｓ９０８）。コマンドを受けて、ネットワーク層・トランスポート層送信回路４４はネットワーク送信インターフェイス回路４５、ネットワーク入出力回路２０を介して、外部サイトにＦＰＧＡ１１回路再配置データのリクエストを送信する。外部サイトがＦＰＧＡ１１回路再配置データを送信すると、ネットワーク入出力回路２０、ネットワーク受信インターフェイス回路４１を介して、ネットワーク層・トランスポート層解析回路４２にデータが送信される。このＦＰＧＡ１１回路再配置データの誤り訂正（Ｓ９０９）は、ＦＰＧＡ１２回路配置データの誤り訂正の際に使用した回路をそのまま使用して妥当性の検証後ＲＡＭ１６に送信しても構わないし、誤り訂正を行わずＲＡＭ１６に書きこみ、ＣＰＵ１７が誤り訂正やデータの検証を行っても良い。
【０１１９】
データが妥当でなければ（Ｓ９０９：ｉｎｖａｌｉｄ）、再度ＦＰＧＡ１１回路再配置データを要求すべくＣＰＵ１７はコマンドを発行する（Ｓ９０８）。一方ＦＰＧＡ１１回路再配置データが妥当なものであれば（Ｓ９０９：ｖａｌｉｄ）、ＦＰＧＡ１１にＦＰＧＡ１１回路再配置データを送信する（Ｓ９１０）。回路再配置が終了すると、図５のブロック図の回路が完成する。コンフィグレーション回路１３中の配置完了レジスタ１３ｂによってＣＰＵ１７が確認すると、ＦＰＧＡ１１の動作をチェックする（Ｓ９１１）。動作が妥当なものであれば（Ｓ９１１：ｖａｌｉｄ）、タイマ１４を停止し、初期化は終了し、ＣＰＵ装置１は正常動作に移行する。一方、動作が不当なものであれば（Ｓ９１１：ｉｎｖａｌｉｄ）、再度、ＦＰＧＡ１１回路再配置データを要求する（Ｓ９０８）。
【０１２０】
以上のような処理を行うことで、ＲＡＭ１６中にはＦＰＧＡ回路再配置データのみしか残置しないため、ＦＰＧＡ１２回路配置データは完全に秘匿することが可能になる。
【０１２１】
なお、本書におけるＣＰＵ装置とはパソコンや携帯電話、各種家電等のＣＰＵを搭載したものだけでなく、より単機能化したＤＳＰ（デジタルシグナルプロセッサ）を使用したものであっても良い。
【０１２２】
また、ネットワークに接続する方法は有線であっても、無線であっても良い。
【０１２３】
【発明の効果】
以上述べた発明により、次の効果が得られる。
【０１２４】
第一に、回路配置データのほとんどをネットワーク上に置くことが出来る為、インターフェイスに係わる最小限の回路配置データを格納するＲＯＭにかかわる部品コストしか要さず、また、誤り訂正、データの妥当性の確認と言った、一時的にしか使用しない回路をＦＰＧＡ化することで、バグの生じる余地を減じることが可能となる。
【０１２５】
第二に、回路配置データのほとんどをネットワーク上に置くことによって、ＣＰＵ装置側にはストレスを感じさせること無く、ＣＰＵ装置にかかわるソフトウェアを更新することが可能なことである。近年において、ソフトウェアの高機能化が進むことで、バグ無きソフトウェアを当初から出荷することは困難であるが、外部サイトの回路配置データを更新することで、ソフトウェアに従う形でハードウェアを修正すると言う手段が提供できることである。ソフトウェアの更新と併用することで、ＣＰＵ装置の堅牢性が向上する。
【０１２６】
第三に、ＦＰＧＡ１１回路配置データ自体を更新させることで同時にＦＰＧＡ１１回路配置データ要求先の外部サイトを変更し、結果クラッカー等からネットワーク上でデータを監視されることを防ぐことが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係わるＣＰＵ装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係わるＣＰＵ装置の初期化処理の手順を表すフローチャートである。
【図３】本発明のＣＰＵ装置と外部サイトとの接続の概念を示すイメージ図である。
【図４】ＦＰＧＡ１１回路配置データを読みこんだ直後の本発明の第１の実施の形態に係わるＦＰＧＡ１１の回路配置を表すブロック図である。
【図５】ＦＰＧＡ１１回路再配置データを読みこんだ後の本発明の第１の実施の形態に係わるＦＰＧＡ１１の回路配置を表すブロック図である。
【図６】本発明の第２の実施の形態に係わるＣＰＵ装置の構成を示すブロック図である。
【図７】本発明の第２の実施の形態に係わるＦＰＧＡ１１回路配置データの更新処理の手順を表すフローチャートである。
【図８】本発明の第３の実施の形態に係わるＣＰＵ装置の構成を示すブロック図である。
【図９】本発明の第３の実施の形態に係わるＣＰＵ装置の初期化処理の手順を表すフローチャートである。
【図１０】ＦＰＧＡ１１回路配置データを読みこんだ直後の本発明の第３の実施の形態に係わるＦＰＧＡ１１の回路配置を表すブロック図である。
【図１１】既存のＣＰＵ装置の構成を表すブロック図である。
【図１２】既存のＣＰＵ装置の起動処理を表すフローチャートである。
【図１３】既存のＣＰＵ装置の回路配置データ
【符号の説明】
１  ＣＰＵ装置
２  ネットワーク
３ａ  外部サイトα
３ｂ  外部サイトβ
１１  ＦＰＧＡ（通信用ＦＰＧＡ）
１２  ＦＰＧＡ（汎用ＦＰＧＡ）
１３  コンフィグレーション回路
１３ｂ  配置完了レジスタ
【図１】
2004326143.tif 000003
【図２】
2004326143.tif 000004
【図３】
2004326143.tif 000005
【図４】
2004326143.tif 000006
【図５】
2004326143.tif 000007
【図６】
2004326143.tif 000008
【図７】
2004326143.tif 000009
【図８】
2004326143.tif 000010
【図９】
2004326143.tif 000011
【図１０】
2004326143.tif 000012
【図１１】
2004326143.tif 000013
【図１２】
2004326143.tif 000014
【図１３】
2004326143.tif 000015