(57)【特許請求の範囲】
【請求項１】
プログラマブルデバイスと、前記プログラマブルデバイスのコンフィグレーションに用いる論理回路情報を記憶する不揮発性メモリと、を備えるコンフィグレーション装置であって、
前記プログラマブルデバイスと前記不揮発性メモリは、それぞれ、中央処理装置にバスで接続され、
前記コンフィグレーション装置が起動した場合に、停止信号を継続して送って前記中央処理装置を停止状態に保ち、前記停止信号の発生を停止することで、前記中央処理装置を作動させる信号部と、
前記プログラマブルデバイスにバスで接続され、前記中央処理装置と前記不揮発性メモリとを接続する前記バスに接続され、前記信号部が前記停止信号を継続して送っている間に、前記不揮発性メモリに記憶された前記論理回路情報を用いて前記プログラマブルデバイスのコンフィグレーションを行う制御部と、
をさらに備え、
前記制御部は、前記プログラマブルデバイスのコンフィグレーション中に異常が生じた場合には異常フラグを設定し、前記プログラマブルデバイスのコンフィグレーションの完了後に、前記異常フラグが設定されていない場合には、前記中央処理装置と前記不揮発性メモリとを接続する前記バスへの当該制御部の接続を切断する、
コンフィグレーション装置。
【請求項２】
前記信号部は、前記コンフィグレーション装置が起動した場合に、リセット信号を前記制御部に継続して送って前記制御部をリセット状態に保ち、また前記停止信号を前記中央処理装置および前記プログラマブルデバイスに継続して送って前記中央処理装置および前記プログラマブルデバイスを停止状態に保ち、その後電源電圧が安定したとみなすことができる所定の基準が満たされた場合には前記リセット信号の発生を停止することで、前記制御部を作動させ、前記制御部が行う前記プログラマブルデバイスのコンフィグレーションが完了したと判定した場合に前記停止信号の発生を停止することで、前記中央処理装置および前記プログラマブルデバイスを作動させる請求項１に記載のコンフィグレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンフィグレーション装置に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field  Programmable  Gate  Array）に代表されるプログラマブルデバイスは、デバイス内部の論理回路をハードウェア記述言語により記述し、回路をフィールド（現場）において書き換えることが可能なデバイスである。近年はプログラマブルデバイスに実装可能な回路規模が増大し、またプログラマブルデバイスの動作速度が改善し、さらに価格も下落しているため、プログラマブルデバイスが用いられる分野が広がっている。
【０００３】
ＦＰＧＡは起動時にＲＯＭ（Read  Only  Memory）などの記憶装置から論理回路情報を読み込み、論理回路を構成するコンフィグレーションと呼ばれる初期動作が必要である。従来は、ＪＴＡＧ（Joint  Test  Action  Group）インタフェース経由で予め論理回路情報を書き込んでおいた専用のコンフィグレーションＲＯＭから、該ＲＯＭにコンフィグレーションバスで接続されたＦＰＧＡに論理回路情報を読み込んでコンフィグレーションを行う方法が主流であった。この方法においては、専用のコンフィグレーションＲＯＭに記憶された論理回路情報を更新するためにＪＴＡＧケーブルや書き込みツールを導入したＰＣが必要であった。
【０００４】
特許文献１に開示される情報処理システムは、論理回路情報を汎用的なフラッシュメモリに格納し、コンフィグレーション制御部がフラッシュメモリから論理回路情報を読み込んでＦＰＧＡのコンフィグレーションを行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２１８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の専用のコンフィグレーションＲＯＭを用いる方法では、一般的にプログラマブルデバイスを備える装置はＣＰＵのブートコードなどのプログラムを記憶するためのフラッシュメモリを備えているにも関わらず、さらに専用のコンフィグレーションＲＯＭを備えることで、必要な実装スペースが増大してしまう。
【０００７】
特許文献１に開示される情報処理システムは、論理回路情報をフラッシュメモリに格納するので、論理回路情報を格納するための専用ＲＯＭを必要としない。しかし、コンフィグレーション中にＦＰＧＡがバス上の信号に影響を及ぼさないようにＦＰＧＡをバスから分離するための回路の実装が必要となり、必要な実装スペースが増大してしまう。
【０００８】
本発明は、上述のような事情に鑑みてなされたものであり、プログラマブルデバイスを備える装置の小型化を可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係るコンフィグレーション装置は、プログラマブルデバイスと、プログラマブルデバイスのコンフィグレーションに用いる論理回路情報を記憶する不揮発性メモリとを備え、プログラマブルデバイスと不揮発性メモリは、それぞれ、中央処理装置にバスで接続される。コンフィグレーション装置は、信号部と、制御部とをさらに備える。コンフィグレーション装置が起動した場合に、信号部は停止信号を継続して送って中央処理装置を停止状態に保ち、停止信号の発生を停止することで、中央処理装置を作動させる。制御部は、プログラマブルデバイスにバスで接続され、中央処理装置と不揮発性メモリとを接続するバスに接続される。制御部は、信号部が停止信号を継続して送っている間に、不揮発性メモリに記憶された論理回路情報を用いてプログラマブルデバイスのコンフィグレーションを行う。制御部は、プログラマブルデバイスのコンフィグレーション中に異常が生じた場合には異常フラグを設定し、プログラマブルデバイスのコンフィグレーションの完了後に、異常フラグが設定されていない場合には、中央処理装置と不揮発性メモリとを接続するバスへの当該制御部の接続を切断する。
【発明の効果】
【００１０】
本発明によれば、プログラマブルデバイスを備える装置の小型化が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るコンフィグレーション装置の構成例を示すブロック図である。
【図２】実施の形態に係るＣＦＧ制御部および信号部の構成例を示すブロック図である。
【図３】実施の形態に係るコンフィグレーション装置が行うコンフィグレーション制御のタイミングチャートである。
【図４】実施の形態に係るコンフィグレーション装置が行う信号制御およびコンフィグレーション制御の動作の一例を示すフローチャートである。
【図５】実施の形態における遅延回路の構成例を示すブロック図である。
【図６】実施の形態における遅延回路における信号を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【００１３】
図１は、本発明の実施の形態に係るコンフィグレーション装置の構成例を示すブロック図である。コンフィグレーション装置１（以下、ＣＦＧ装置１と記す）は、ＣＦＧ制御部１０、信号部２０、ＣＰＵ（Central  Processing  Unit：中央処理装置）３０、ＦＰＧＡ（Field  Programmable  Gate  Array）４０、およびフラッシュ５０を備える。ＣＦＧ装置１は、プログラマブルデバイスとしてＦＰＧＡ４０を用い、不揮発性メモリとしてフラッシュメモリであるフラッシュ５０を用いる。フラッシュ５０は、ＣＰＵ３０がブート時にロードするブートコードなどのプログラムに加え、ＦＰＧＡ４０のコンフィグレーションに用いる論理回路情報を記憶する。
【００１４】
ＣＦＧ制御部１０は、ＣＰＵ３０およびフラッシュ５０とそれぞれローカルバス６０を介して接続されている。またＣＦＧ制御部１０とＦＰＧＡ４０はコンフィグレーションバス（以下、ＣＦＧバスと記す）６１を介して接続されている。ＣＰＵ３０およびＦＰＧＡ４０はＦＰＧＡバス６２を介して接続されている。ＣＦＧ制御部１０は、ローカルバス６０を介してフラッシュ５０から論理回路情報を読み出し、ＣＦＧバス６１を介して論理回路情報をＦＰＧＡ４０に書き込み、ＦＰＧＡ４０のコンフィグレーションを行う。図１において双方向にデータのやり取りが発生し得るものについては矢印を省略した。これは他の図においても同様である。
【００１５】
図１において点線で示すように、信号部２０と、ＣＦＧ制御部１０およびフラッシュ５０とは、パワーオンリセット（以下、ＰＯＲと記す）信号を送るためのＰＯＲ信号線７０で接続されている。信号部２０は、リセット信号であるＰＯＲ信号を継続して送ってＣＦＧ制御部１０およびフラッシュ５０をリセット状態に保ち、リセット信号の発生を停止することでＣＦＧ制御部１０およびフラッシュ５０を作動させる。また信号部２０と、ＣＰＵ３０およびＦＰＧＡ４０とは、ハードウェアリセット（以下、ＨＷＲと記す）信号を送るためのＨＷＲ信号線７１で接続されている。信号部２０は、停止信号であるＨＷＲ信号を継続して送ってＣＰＵ３０およびＦＰＧＡ４０を停止状態に保ち、停止信号の発生を停止することでＣＰＵ３０およびＦＰＧＡ４０を作動させる。ＣＦＧ制御部１０と、信号部２０とは、ＦＰＧＡ４０のコンフィグレーションの完了を示す完了通知信号を送るための完了通知信号線７２で接続されている。
【００１６】
図２は、本発明の実施の形態に係るＣＦＧ制御部および信号部の構成例を示すブロック図である。ＣＦＧ制御部１０は、制御部１０１、ローカルバスＩＦ部１０２、ＣＦＧバスＩＦ部１０３を備える。ローカルバスＩＦ部１０２は、フラッシュ５０からローカルバス６０を介して論理回路情報を読み出すためのバスインタフェース制御を行う。ＣＦＧバスＩＦ部１０３は、ＣＦＧバス６１を介して論理回路情報をＦＰＧＡ４０に書き込むためのバスインタフェース制御を行う。
【００１７】
信号部２０は、ＰＯＲ信号部２０１およびＨＷＲ信号部２０２を備える。図２において点線で示すように、ＰＯＲ信号部２０１と、ＣＦＧ制御部１０内の制御部１０１、ＨＷＲ信号部２０２およびフラッシュ５０とは、ＰＯＲ信号線７０で接続されている。ＨＷＲ信号部２０２とＣＰＵ３０およびＦＰＧＡ４０は、ＨＷＲ信号線７１で接続されている。ＣＦＧ制御部１０内の制御部１０１と、ＨＷＲ信号部２０２とは、完了通知信号線７２で接続されている。
【００１８】
図３は、本発明の実施の形態に係るコンフィグレーション装置が行うコンフィグレーション制御のタイミングチャートである。図１、図２および図３を用いて、ＣＦＧ装置１が行うコンフィグレーション制御の例について以下に説明する。
【００１９】
図３のタイミングＴ１において、ＣＦＧ装置１が起動した場合、ＰＯＲ信号部２０１は、ＰＯＲ信号をアサートすることによりＣＦＧ制御部１０およびフラッシュ５０をリセット状態に保つ。ＣＦＧ装置１の起動とは、電源投入による起動に限られず、再起動も含む。ＨＷＲ信号部２０２は、ＰＯＲ信号がアサートされているまたは完了通知信号がアサートされていない場合には、ＨＷＲ信号をアサートすることによりＣＰＵ３０およびＦＰＧＡ５０を停止状態に保つ。したがって、ＣＦＧ装置１が起動した場合には、ＰＯＲ信号がアサートされ、続いてＨＷＲ信号がアサートされ、ＣＦＧ制御部１０およびフラッシュ５０がリセット状態に保たれ、ＣＰＵ３０およびＦＰＧＡ４０が停止状態に保たれる。
【００２０】
ＰＯＲ信号部２０１は、電源が安定したとみなすことができる所定の基準が満たされた場合に、ＰＯＲ信号をディアサートすることによりＣＦＧ制御部１０およびフラッシュ５０を作動させる。ＰＯＲ信号部２０１は、図３のタイミングＴ２において、例えば図示しない電源監視回路から電源正常信号を受け取り、電源電圧が安定したと判定して、ＰＯＲ信号をディアサートする。ＨＷＲ信号部２０２は、完了通知信号がアサートされていないので、ＰＯＲ信号がディアサートされても、ＨＷＲ信号をアサートした状態を維持する。
【００２１】
ＰＯＲ信号がディアサートされると、ＣＦＧ制御部１０はＦＰＧＡ４０のコンフィグレーションを開始する。この時点ではＨＷＲ信号がアサートされており、ＣＰＵ３０は停止状態に保たれているので、ローカルバス６０においてバスアクセスの競合は発生せず、ＣＦＧ制御部１０がフラッシュ５０から論理回路情報を読み出すことが可能となる。制御部１０１は、論理回路情報の読み出しアドレスを初期化する。論理回路情報が記憶されるフラッシュ５０のアドレスは予め定められているものとする。
【００２２】
制御部１０１は、ローカルバスＩＦ部１０２を制御して、ローカルバス６０を介してフラッシュ５０から論理回路情報ＤＡＴ０を読み出す。そして、ＣＦＧバスＩＦ部１０３を制御して、ＣＦＧバス６１を介して論理回路情報ＤＡＴ０をＦＰＧＡ４０に書き込む。ＦＰＧＡ４０は書き込まれた論理回路情報を用いてコンフィグレーションを行う。
【００２３】
例えばＤＡＴ０が論理回路情報として不正なデータであり、コンフィグレーション中にエラーが発生した場合には、ＦＰＧＡ４０は、ＣＦＧバスＩＦ部１０３を介して制御部１０１にコンフィグレーションエラーを通知する。エラー通知を受け取った制御部１０１は、コンフィグレーションが完了したと判定して、完了通知信号をアサートする。コンフィグレーションの完了とは、コンフィグレーションの正常終了および異常終了を含むものとする。なお制御部１０１は、エラー通知を受け取ると異常フラグを設定する。
【００２４】
制御部１０１は、ＦＰＧＡ４０からコンフィグレーションエラーの通知を受けなかった場合には、全ての論理回路情報がＦＰＧＡ４０に書き込まれてコンフィグレーションが完了したか否かを判定する。制御部１０１は、ＦＰＧＡ４０からコンフィグレーションが完了した旨の通知を受けたか否かに基づき全ての論理回路情報についてコンフィグレーションが完了したか否かを判定する。
【００２５】
全ての論理回路情報についてコンフィグレーションが完了していない場合には、論理回路情報の読み出しアドレスを例えばインクリメントし、次の論理回路情報ＤＡＴ１を読み出す。上述の処理を繰り返し、ＦＰＧＡ４０からコンフィグレーションが完了した旨の通知を受けると、制御部１０１は、コンフィグレーションが完了したと判定して、完了通知信号をアサートする。
【００２６】
また制御部１０１は、コンフィグレーションが完了したと判定した場合であって、異常フラグが設定されていない場合に、ローカルバスＩＦ部１０２を制御してローカルバス６０への接続を切断するよう構成してもよい。ローカルバス６０への接続を切断することで、ＣＰＵ３０の作動後のローカルバス６０上でのＣＰＵ３０とＣＦＧ制御部１０のバスアクセスの競合を防ぐことができる。
【００２７】
図３のタイミングＴ３で完了通知信号がアサートされると、ＨＷＲ信号部２０２は、ＰＯＲ信号がアサートされておらず、完了通知信号がアサートされたので、コンフィグレーションが完了したと判定し、図３のタイミングＴ４でＨＷＲ信号をディアサートする。コンフィグレーション中に何らかの異常が発生してＣＦＧ制御部１０が完了通知信号をアサートしない場合には、ＨＷＲ信号がディアサートされない。そのため、ＰＯＲ信号がディアサートされてから所定の時間が経過しても完了通知信号がアサートされない場合には、ＨＷＲ信号部２０２はコンフィグレーションが完了したと判定してＨＷＲ信号をディアサートするタイムアウト処理を行うよう構成するのが望ましい。所定の時間とは装置の設計において決定される任意の時間である。
【００２８】
ＨＷＲ信号がディアサートされると、ＣＰＵ３０およびＦＰＧＡ４０が作動する。ＣＰＵ３０は図３のタイミングＴ５でフラッシュ５０からブートコードのロードを開始する。ＣＰＵ３０は、ブート後にフラッシュ５０に自由にアクセスすることが可能となり、フラッシュ５０に記憶された論理回路情報を更新することが可能となる。またＣＰＵ３０のブート後にソフトウェアによって、ローカルバス６０およびローカルバスＩＦ部１０２を介して、制御部１０１内に保持されている異常フラグが読み出される。コンフィグレーション中のエラー発生により異常フラグが設定されている場合には、フラッシュ５０内の不正なコンフィグレーションデータを正常なデータに書き換える。
【００２９】
図４は、本発明の実施の形態に係るコンフィグレーション装置が行う信号制御およびコンフィグレーション制御の動作の一例を示すフローチャートである。ＣＦＧ装置１が起動すると、信号部２０は信号制御を開始する。ＰＯＲ信号部２０１はＰＯＲ信号をアサートし、ＨＷＲ信号部２０２はＨＷＲ信号をアサートする（ステップＳ１１０）。ＰＯＲ信号部２０１は、電源監視回路が電源正常信号をアサートしたか否かを確認する（ステップＳ１２０）。電源正常信号がアサートされていない場合には（ステップＳ１３０：Ｎ）、ステップＳ１２０に戻って、上述の処理を繰り返し行う。電源正常信号がアサートされた場合には（ステップＳ１３０：Ｙ）、ＰＯＲ信号部２０１はＰＯＲ信号をディアサートする（ステップＳ１４０）。
【００３０】
ＰＯＲ信号がディアサートされるとＣＦＧ制御部１０が作動し、コンフィグレーション制御を開始する。制御部１０１は、論理回路情報の読み出しアドレスを初期化する（ステップＳ２１０）。制御部１０１は、ローカルバスＩＦ部１０２を制御して、ローカルバス６０を介してフラッシュ５０から論理回路情報を読み出す（ステップＳ２２０）。そして、ＣＦＧバスＩＦ部１０３を制御して、ＣＦＧバス６１を介して論理回路情報をＦＰＧＡ４０に書き込む（ステップＳ２３０）。ＦＰＧＡ４０からコンフィグレーションエラーの通知を受けた場合には（ステップＳ２４０：Ｙ）、制御部１０１は異常フラグを設定する（ステップＳ２７０）。そして、ステップＳ２８０に進む。
【００３１】
制御部１０１は、ＦＰＧＡ４０からコンフィグレーションエラーの通知を受けなかった場合には（ステップＳ２４０：Ｎ）、ＦＰＧＡ４０からコンフィグレーション完了した旨の通知を受けたか否かに基づき、全ての論理回路情報がＦＰＧＡ４０に書き込まれてコンフィグレーションが完了したか否かを判定する。全ての論理回路情報についてコンフィグレーションが完了していない場合には（ステップＳ２５０：Ｎ）、論理回路情報の読み出しアドレスをインクリメントする（ステップＳ２６０）。そしてステップＳ２２０に戻り、上述の処理を繰り返す。上述の処理を繰り返して、全ての論理回路情報についてコンフィグレーションが完了した場合には（ステップＳ２５０：Ｙ）、ステップＳ２８０に進む。
【００３２】
制御部１０１は、完了通知信号をアサートする（ステップＳ２８０）。そして、異常フラグが設定されていない場合には（ステップＳ２９０：Ｎ）、ローカルバスＩＦ部１０２を制御してローカルバス６０への接続を切断し（ステップＳ３００）、処理を終了する。異常フラグが設定されている場合には（ステップＳ２９０：Ｙ）、ステップＳ３００のローカルバス６０への接続の切断は行わずに、処理を終了する。
【００３３】
ステップＳ１４０でＰＯＲ信号部２０１がＰＯＲ信号をディアサートすると、ＨＷＲ信号部２０２は、コンフィグレーションのタイムアウトを判定するためのタイマを起動する（ステップＳ１５０）。ＨＷＲ信号部２０２は、完了通知信号がアサートされたか否かを確認する（ステップＳ１６０）。完了通知信号がアサートされていない場合には（ステップＳ１７０：Ｎ）、タイマの計測時間が所定の時間を経過しているか否かを判定する。タイマの計測時間が所定の時間を経過していない場合には（ステップＳ１８０：Ｎ）、ステップＳ１６０に戻って上述の処理を繰り返す。
【００３４】
上述の処理を繰り返し、ステップＳ１６０で完了通知信号がアサートされたことを確認した場合には（ステップＳ１７０：Ｙ）、コンフィグレーションが完了したと判定し、ステップＳ１９０に進む。また上述の処理を繰り返して完了通知信号がアサートされていないが（ステップＳ１７０：Ｎ）、タイマの計測時間が所定の時間を経過した場合には（ステップＳ１８０：Ｙ）、コンフィグレーションが完了したと判定し、ステップＳ１９０に進む。
【００３５】
ＨＷＲ信号部２０２は、ＨＷＲ信号をディアサートし（ステップＳ１９０）、処理を終了する。ＨＷＲ信号がディアサートされると、ＣＰＵ３０およびＦＰＧＡ４０が作動する。ＣＰＵ３０はフラッシュ５０からブートコードのロードを開始する。
【００３６】
以上説明したように、本実施の形態に係るコンフィグレーション装置は、論理回路情報を格納するための専用ＲＯＭ（Read  Only  Memory）や、コンフィグレーション中にプログラマブルデバイスをバスから切り離すための回路を実装する必要がないので、プログラマブルデバイスを備える装置を小型化することが可能となり、装置のコストの低減も期待できる。またコンフィグレーションの完了後に、ＣＦＧ制御部１０がローカルバス６０への接続を切断するよう構成した場合には、ＣＰＵ３０の作動後にＣＦＧ制御部１０とＣＰＵ３０のバスアクセスの競合を防ぐための回路を実装する必要がないので、さらなる装置の小型化およびコストの低減が可能となる。
【００３７】
また本実施の形態に係るコンフィグレーション装置は、論理回路情報を記憶する専用ＲＯＭをＪＴＡＧ（Joint  Test  Action  Group）インタフェース経由で更新する方法のように専用のケーブルやＰＣを必要としないので、論理回路情報の更新を簡易化することができる。
【００３８】
本発明の実施の形態は上述の実施の形態に限られない。ＣＦＧ制御部１０、ＣＰＵ３０、ＦＰＧＡ４０、およびフラッシュ５０がローカルバス６０で接続され、ＣＦＧ制御部１０およびＦＰＧＡ４０がＣＦＧバスで接続されるよう構成してもよい。ＣＰＵ３０は、ＦＰＧＡ４０およびフラッシュ５０とそれぞれバスで接続されていれば、ＣＦＧ装置１の外部に配置されてもよい。
【００３９】
また例えばＰＯＲ信号部２０１が出力するＰＯＲ信号をＣＰＵ３０およびＦＰＧＡ４０にも送り、図５に示すインバータ８０、８１およびコンデンサ８２を備える遅延回路を用いてＰＯＲ信号をコンフィグレーションに要する時間だけ遅延させた信号をＨＷＲ信号としてＣＰＵ３０およびＦＰＧＡ４０に送るよう構成してもよい。図５の構成により、ＰＯＲ信号が、遅延回路を介してＨＷＲ信号として、ＣＰＵ３０およびＦＰＧＡ４０に送られる。ＰＯＲ信号、遅延信号、およびＨＷＲ信号は図６のタイミングチャートに示すようにディアサートされる。図６に示すようにＰＯＲ信号のディアサートが遅延されてＨＷＲ信号として送られることで、コンフィグレーションを行っている間にＣＰＵ３０を停止状態に保つことが可能となる。
【００４０】
なお論理回路情報はハードウェアの動作に影響するものであるから、アプリケーションが扱うデータとは区別して管理することが望ましい。例えばファイルシステム上の１ファイルとして扱うのではなく専用領域へ格納し、一般的なファイルアクセスとは異なる処理により読み書きが行えるようにすることが望ましい。
【符号の説明】
【００４１】
１  コンフィグレーション装置
１０  ＣＦＧ制御部
２０  信号部
３０  ＣＰＵ
４０  ＦＰＧＡ
５０  フラッシュ
６０  ローカルバス
６１  コンフィグレーションバス
６２  ＦＰＧＡバス
７０  ＰＯＲ信号線
７１  ＨＷＲ信号線
７２  完了通知信号線
８０、８１  インバータ
８２  コンデンサ
１０１  制御部
１０２  ローカルバスＩＦ部
１０３  ＣＦＧバスＩＦ部
２０１  ＰＯＲ信号部
２０２  ＨＷＲ信号部
【図１】
0005804924.tif 000002
【図２】
0005804924.tif 000003
【図３】
0005804924.tif 000004
【図４】
0005804924.tif 000005
【図５】
0005804924.tif 000006
【図６】
0005804924.tif 000007