(57)【要約】【課題】  携帯電話のように、世代間でインタフェース仕様が異なっている場合、使用者の使い勝手を考えてどちらも接続できるようにするために両方のインタフェース回路を用意しておかなければならず、その為に回路規模の大きいプログラマブル・ゲートアレイを使うことになり、装置の小型化やコスト低減を図る上で障害になっていた。【解決手段】  プログラマブル・ゲートアレイと、前記プログラマブル・ゲートアレイに入出力特性を設定するためのプログラムを格納したメモリを備えたプログラマブル・ゲートアレイ装置において、新たな周辺デバイスが接続されると周辺デバイスに対応したインタフェース回路を構築するプログラムデータを読み込んでプログラマブル・ゲートアレイ内の所定メモリ領域に格納してコンフィグレーション処理を実行するようにした。【選択図】図５
2006323705.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・ゲートアレイと、前記プログラマブル・ゲートアレイに入出力特性を設定するためのプログラムを格納したメモリを備えたプログラマブル・ゲートアレイ装置のコンフィグレーション方法であって、
新たな周辺デバイスの接続等による割込みを受信した場合には現在の実行状態を示す状態データを外部のメモリに退避させ、
前記割込みの種別を基に新たにロードすべきプログラムデータの格納先から所望のプログラムデータを読み込んでプログラマブル・ゲートアレイ内の所定メモリ領域に格納してコンフィグレーション処理を実行し、  
前記割込みによるコンフィグレーション処理が完了すると前記外部のメモリに退避させていた前記状態データを読み出してプログラム・ゲートアレイ内のもとの領域に格納するようにしたプログラマブル・ゲートアレイ装置のコンフィグレーション方法。
【請求項２】
ＣＰＵとバスを介してアクセス可能で周辺デバイス毎のインタフェース回路を形成するプログラムデータが格納される不揮発性メモリと、前記周辺デバイスが接続されたことを検出すると前記ＣＰＵに対して割込み信号を発生する回路を有したプログラマブル・ゲートアレイ装置において、
前記周辺デバイスが接続されたことにより発生する前記割込み信号を受けて前記プログラマブル・ゲートアレイの状態データを読み出して外部の所定メモリに退避させ、
前記プログラマブル・ゲートアレイを初期化した後に前記割込み信号に基づいて新たに接続された前記周辺デバイスに対応したインタフェース回路を構成するプログラムデータを前記不揮発性メモリから読み出して前記プログラマブル・ゲートアレイ内のコンフィグレーションメモリに書き込んでコンフィグレーション処理を実行し、
前記割込みによるコンフィグレーション処理が完了すると前記外部のメモリに退避させていた前記状態データを読み出してプログラム・ゲートアレイ内のもとの領域に格納するようにしたプログラマブル・ゲートアレイ装置のコンフィグレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中央処理装置がプログラマブル・ゲートアレイを介して周辺装置にアクセスするように構成されたコンピュータを使用した情報処理装置に係り、特にプログラマブル・ゲートアレイの論理及び入出力特性を設定することができるプログラマブル・ゲートアレイのコンフィグレーション方法に関するものである。
【背景技術】
【０００２】
プログラマブル・ゲートアレイは最近ではナビゲーション装置のようなコンピュータを使用した情報処理装置に多く用いられるようになってきている。
中央処理装置から周辺装置にアクセスするためのデバイスとして、一般には論理回路における論理演算を自由にプログラムでき、出力信号を任意に設定することができるプログラマブルロジックデバイス（Programmable Logic Device：ＰＬＤ）が用いられている。
【０００３】
このＰＬＤの一種としてプログラマブル・ゲートアレイ（Field Programmable Gate Array：ＦＰＧＡ）があり、このプログラマブル・ゲートアレイは高速動作及び低消費電力というハードウェア的な特徴を有すると共に、論理回路をソフトウェア的に設計することができるものである。
【０００４】
まず、プログラマブル・ゲートアレイを使用したシステムの主要部の構成を図1に基づき簡単に説明する。
このシステムの主要部はシステム全体を制御するＣＰＵ (Central Processing Unit) １０と、ＲＯＭ(Read Only Memory)１２、ＲＡＭ(Random Access Memory)１４、プログラマブル・ゲートアレイ（Field  Programmable  Gate Array：ＦＰＧＡ）１６、ＰＲＯＭ（Programmable Read Only Memory）１８及びこれらを繋ぐバスライン２０で構成されている。
【０００５】
そして、システムに電源が投入されるとＣＰＵ１０にリセットが掛かってＣＰＵ１０が起動され、ＣＰＵ１０が起動されるとＣＰＵ１０は周辺デバイス４０、４２、４４、４６等の初期化処理を行なうように作動する。
このＣＰＵ１０の作動の過程で、ＣＰＵ１０はプログラマブル・ゲートアレイ１６に対して論理及び入出力特性を設定するためのコンフィグレーション信号１５を送出し、このコンフィグレーション信号によりプログラマブル・ゲートアレイ１６はＰＲＯＭ１８に対して同期クロック２２を送出する。
【０００６】
そして、この同期クロック２２に同期して周辺デバイス４０〜４６とのインタフェース回路データ等のプログラムデータ３０の出力を読み込んでコンフィグレーションメモリ１７に格納し、プログラマブル・ゲートアレイ１６の内部構成や入出力特性を設定する処理（以下、コンフィグレーション処理という）を行なうようになっている。
【特許文献１】特開２００３−４４３０３号公報
【特許文献２】特開平１１−９５９９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このようなプログラマブル・ゲートアレイを使用した情報処理装置として特開２００３−４４３０３号公報（特許文献１）には、システム用プログラムが格納された不揮発性メモリに前述のプログラマブル・ゲートアレイのプログラムデータも格納しておくことでＰＲＯＭを削除するという提案がなされている。
【０００８】
この他にプログラマブル・ゲートアレイを使用した情報処理装置として特開平１１−９５９９４号公報（特許文献２）には、複数のプログラムデータを用意しておき、プログラマブル・ゲートアレイが実装された環境要因に応じて、読み込むプログラムデータを選択してコンフィグレーション処理を行なうものが提案されている。
【０００９】
このような情報処理装置においてコンフィグレーション処理はいずれの場合もシステムの起動時に行なうようになっており、プログラマブル・ゲートアレイの内部構成を変更する場合には一度、内部を初期化してから新しいプログラムデータを読み込まなければならなかった。
【００１０】
そのため、通常ではプログラマブル・ゲートアレイはＣＰＵに接続される周辺装置やデバイスとのインタフェース回路を構成するプログラムデータを全て読み込むようにしており、その規模が大きくなると回路規模の大きいプログラマブル・ゲートアレイを使用したり、複数のプログラマブル・ゲートアレイを使用したりして対応するのが一般的であった。
【００１１】
ところが、実際にシステムが動作している過程ではＣＰＵが周辺装置やデバイスとの間でデータのやりとりを行なうのはその過程の一部である場合が多い。
例えば、ナビゲーション装置のように携帯電話を無線通信装置として接続する場合にはナビゲーション装置の起動後に携帯電話を接続し、使い終わったら携帯電話をナビゲーション装置から外したりする場合である。
【００１２】
更に携帯電話の場合、第２世代と第３世代というように世代間でインタフェース仕様が異なっており、使用者の使い勝手を考えてどちらも接続できるようにするために両方のインタフェース回路を用意しておかなければならず、その為に回路規模の大きいプログラマブル・ゲートアレイを使うことになり、装置の小型化やコスト低減を図る上で障害になっていた。
【００１３】
本発明の目的はこうした問題点を鑑み、少規模のプログラマブル・ゲートアレイを使って、回路規模以上のインタフェース回路としての処理を実現するプログラマブル・ゲートアレイのコンフィグレーション方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の特徴はプログラマブル・ゲートアレイと、前記プログラマブル・ゲートアレイに入出力特性を設定するためのプログラムを格納したメモリを備えたプログラマブル・ゲートアレイ装置のコンフィグレーション方法であって、
新たな周辺デバイスの接続等による割込みを受信した場合には現在の実行状態を示す状態データを外部のメモリに退避させ、
前記割込みの種別を基に新たにロードすべきプログラムデータの格納先から所望のプログラムデータを読み込んでプログラマブル・ゲートアレイ内の所定メモリ領域に格納してコンフィグレーション処理を実行し、  
前記割込みによるコンフィグレーション処理が完了すると前記外部のメモリに退避させていた前記状態データを読み出してプログラム・ゲートアレイ内のもとの領域に格納するようにしたプログラマブル・ゲートアレイ装置のコンフィグレーション方法にある。
【発明の効果】
【００１５】
以上のような方法により、比較的小規模のプログラマブル・ゲートアレイを使って、見かけ上、それよりも大規模な回路を構成することができ、コスト低減やシステムの小型化が図れるようになるものである。
【発明を実施するための最良の形態】
【００１６】
以下、本発明になるプログラマブル・ゲートアレイのコンフィグレーション方法の一実施例を図面に従い詳細に説明するが、この方法に限らず本発明の技術的思想の範囲内で実施できることは言うまでもない。
【実施例１】
【００１７】
図２には本発明のコンフィグレーション方法を実現するシステムの主要部の構成例を示しており、本実施例でのシステムは周辺デバイスとして１６ピンのコネクタを持った第２世代のＰＤＣタイプの携帯電話５０、あるいはＵＳＢ（Universal Serial Bus）端子を持つ第３世代の携帯電話５２を接続して外部の情報サーバとの間でデータ通信を行なうものである。
【００１８】
第２世代のＰＤＣタイプの携帯電話５０或いはＵＳＢ端子を持つ第３世代の携帯電話５２とのインタフェース回路を構成するプログラマブル・ゲートアレイ１６のプログラムデータは、クロックコントローラや割り込みコントローラ等の共通して使用される共通動作回路及びインタフェース回路毎にFlash  ＲＯＭ１３の記憶領域３２、３４、３６に分けて予め格納されている。当然のことであるがこのFlash  ＲＯＭ１３はバスライン２０に接続され、このバスライン２０を介してＲＡＭ１４やコンフィグレーションメモリ１７とデータの送受信が行なわれるものである。
【００１９】
ここで、Flash  ＲＯＭ１３の記憶領域３２には共通動作回路のプログラムデータが格納され、記憶領域３４にはシリアルインタフェース（ＵＡＲＴ）回路のプログラムデータが格納され、記憶領域３６にはユニバーサルシリアルインタフェース（ＵＳＢ）回路のプログラムデータが格納されている。
また、Flash  ＲＯＭ１３の他の記憶領域には後述するプログラマブル・ゲートアレイ１６内の回路構成状態を示す回路構成状態フラグ（図５参照）が格納される記憶領域が前記プログラムデータの格納領域３２、３４、３６とは別に設定されている。
【００２０】
尚、本システムのメインプログラムの中でＲＡＭ１４におけるプログラマブル・ゲートアレイ１６内の状態データを格納する領域１４Ａ及びインタフェース回路のプログラムデータが格納される領域１４Ｂが定義されている。
実際のシステムでは、図２に示す以外にユーザからの指示を取り込むキーボード等の入力回路、ユーザへのメッセージを表示する表示装置やメッセージを音声で通知するスピーカなどが含まれるが、本発明には直接関係しないのでここでは省略する。
【００２１】
次に本発明のコンフィグレーション方法の具体的な処理について図３及び図４を用いて説明するが、図３は本発明におけるプログラマブル・ゲートアレイ１６の内部構成を示す図であり、図４及び図５は本発明のコンフィグレーション方法の流れを示すフローチャートを示す図である。
【００２２】
図３に示すプログラマブル・ゲートアレイ１６は、第２世代の携帯電話用のインタフェース回路としてシリアルインタフェース（ＵＡＲＴ）回路８０が設けられており、この他に共通回路７０として、ＣＰＵ１０から送られてくるアドレスを変換するアドレスデコーダ６０、外部から供給されるクロックからシリアル通信用のクロックなどを生成するクロックコントローラ６２、ＣＰＵ１０からのアクセス要求に対して応答時間を調整するウェイト信号を生成するウェイトコントローラ６４及び周辺デバイスが接続された時や周辺デバイスとの間でのデータ送受信要求に対して調停を行なったり、ＣＰＵ１０に対して割込み信号を生成したりするインターラプトコントローラ６６等が形成されている。
【００２３】
尚、クロックコントローラ６２やウェイトコントローラ６４の内部レジスタの設定値などはＣＰＵ１０によって起動時のコンフィグレーション時には初期化され、システムとして起動している間に逐次更新されていくものである。
【００２４】
次に図４及び図５に基づきコンフィグレーション方法の流れを説明すると、図３のプログラマブル・ゲートアレイ１６においては周辺デバイスとして第２世代の携帯電話との接続に対応するシリアルインタフェース（ＵＡＲＴ）回路８０が設定されているが、第２世代の携帯電話の代わりに第３世代の携帯電話が接続されると、ＵＳＢコネクタの接続により発生する接続検出信号がインターラプトコントローラ６６に対して検出信号ラインのレベル変化として送出される。
【００２５】
インターラプトコントローラ６６はこの接続検出信号を受けて、その時点での割込み処理の状態を確認し、接続検出信号による割込み処理が実行可能かどうか判定して実行可能と判断した時点で、必要なアプリケーションプログラムがFlashＲＯＭ１２から読み出されて図４に示すような回路切換割込み処理が実行される。
【００２６】
図４において、この回路切換割込み処理が起動されるとステップ１０２(以下ステップをＳと略して表記する)でプログラマブル・ゲートアレイ１６内の回路変更が必要かどうか判定するためにFlashＲＯＭ１３内の所定領域に格納されている回路構成状態フラグを確認する。ここで、回路構成状態フラグは図６に示すように２ビットで形成されている。すなわちインタフェースの仕様を表す状態フラグＳ１、Ｓ０は第２世代の携帯電話であると“０”、“０”に設定され、第３世代の携帯電話であると“０”、“１”に設定され、無線通信であるBluetoothであると“１”、“１” に設定されている。
【００２７】
よって、Ｓ１０４でこのアプリケーションが必要とするインタフェース回路（この場合には第３世代の携帯電話とのインタフェース回路であるＵＳＢインタフェース回路）を示すフラグ、つまり、Ｓ１＝“０”、Ｓ０＝“１”が格納されていれば（Ｓ１０４で“Ｎ”の場合）、そのままこのアプリケーションプログラムによる処理が実行される。
【００２８】
ところが、図３の場合のように第２世代の携帯電話が接続された状態になっているので、回路構成状態フラグはＳ１＝“０”、Ｓ０＝“０”と設定されていると（Ｓ１０４で“Ｙ”の場合）、図５に示す再コンフィグレーション処理に移行する。
【００２９】
図５に示す再コンフィグレーション処理に移行すると、Ｓ２０２でクロックコントローラ６２等の内部設定値をＲＡＭ１４内の所定領域５０に退避させる。
次にＳ２０４で図２にあるようにプログラマブル・ゲートアレイ１６はＣＰＵ１０に対してＤＭＡ転送要求１００を実行する。
【００３０】
このＤＭＡ転送要求１００に対してプログラマブル・ゲートアレイ１６はＳ２０６にあるように、ＣＰＵ１０が内部のＤＭＡＣ（Direct Memory Access Controller））に対してバスを開放してＤＭＡ転送の要求元であるプログラマブル・ゲートアレイ１６に対して許可信号１０２を返信してくるのを待機する。
【００３１】
次に、ＣＰＵ１０からＤＭＡ転送許可信号１０２が返信されてくると、Ｓ２０８でこれを受けてプログラマブル・ゲートアレイ１６内部は初期化される。
更に、プログラマブル・ゲートアレイ１６が初期化された後にＳ２１０に進んで、ＤＭＡＣによるＤＭＡ転送処理によってFlashＲＯＭ１３の領域３６からＵＳＢインタフェース回路用のプログラムデータがＲＡＭ１２の所定領域１４Ｂ内のそれまで使用していたインタフェース回路用のプログラムデータが格納されていた領域に上書きされる。
【００３２】
その後、共通回路のプログラムデータとともにＵＳＢインタフェース回路用のプログラムデータがプログラマブル・ゲートアレイ１６内のコンフィグレーションメモリ１７へ転送される。
尚、システム起動時には前回の起動時に設定された回路構成状態フラグに基づいて共通回路及びインタフェース回路のプログラムデータはＲＡＭ１２内の所定領域１４Ｂにロードされるようになっている。
【００３３】
そして、Ｓ２１０でＤＭＡＣによるＤＭＡ転送（コンフィグレーションメモリの書き込み）が終了して内部バスの使用権がＤＭＡＣからＣＰＵに戻されると、Ｓ２１２にあるようにＣＰＵ１０はＲＡＭ１４の所定領域１４Ａに退避させていた状態データをプログラマブル・ゲートアレイ１６内のクロックコントローラ内の各レジスタへ書き込み、回路構成状態フラグを変更して本処理を終了する。
【００３４】
図７に再コンフィグレーション処理後のプログラマブル・ゲートアレイ１６内部の構成を示すが、図３と比較して携帯電話とのインタフェース回路としてユニバーサルシリアルインタフェース９０を使用した構成に設定されている。
【００３５】
以上説明した実施例では接続する携帯電話の種類の変更によりプログラムデータを１つだけ交換する例であったが、同様な方法（回路構成状態フラグのビット数やＲＡＭ内に一時格納領域の拡張などを伴う場合もある）で複数のプログラムデータを交換することもできる。
【００３６】
また、システム起動時に共通回路及び前回使用したインタフェース回路のプログラムデータのみをＲＡＭ１４の所定領域にロードしておくようにしたが、ＲＡＭの容量によっては想定される回路構成すべてのプログラムデータをＲＡＭにロードしておいてもよく、こうすることによって再コンフィグレーション処理に要する時間が短縮されることになる。
【図面の簡単な説明】
【００３７】
【図１】プログラマブル・ゲートアレイを使ったシステムの構成例を示す図である。
【図２】本発明のコンフィグレーション方法を説明する為のシステム構成例を示す図である。
【図３】図２に示すシステムにおけるプログラマブル・ゲートアレイの内部構成を示す図である。
【図４】本発明のコンフィグレーション方法の流れを説明するフローチャート図である。
【図５】本発明のコンフィグレーション方法の流れを説明するフローチャート図である。
【図６】本発明のコンフィグレーション方法における回路構成状態フラグを説明する図である。
【図７】図３に示すプログラマブル・ゲートアレイにおける再コンフィグレーション後の内部構成を示す図である。
【符号の説明】
【００３８】
１０…ＣＰＵ（Central Processing Unit）、１２…ＲＯＭ（Read Only Memory）、１３…FlashＲＯＭ、１４…ＲＡＭ（Random Access Memory）、１５…コンフィグレーション信号、１６…プログラマブル・ゲートアレイ（Field Programmable Gate Array：ＦＰＧＡ）、１７…コンフィグレーションメモリ、１８…ＰＲＯＭ（Programmable Read Only Memory）、２０…バスライン、２４…データバス、２６…アドレスバス、２２…同期クロック、３０、３２、３４、３６…プログラムデータ。
【図１】
2006323705.tif 000003
【図２】
2006323705.tif 000004
【図３】
2006323705.tif 000005
【図４】
2006323705.tif 000006
【図５】
2006323705.tif 000007
【図６】
2006323705.tif 000008
【図７】
2006323705.tif 000009