(57)【要約】【課題】コンフィギュレーションデータの更新時間を短縮する。【解決手段】ＦＰＧＡ９０２は、（i）バスコントローラ９０６を介して、情報処理装置１００８からのデータを受信する内部インタフェース部９２０と、（ii）バウンダリスキャンレジスタＲ１と、（iii）所定形式の制御ファイルＦ１にもとづき、バウンダリスキャンレジスタＲ１のうち不揮発性メモリ９０４に接続される複数の入出力ピンに対応するレジスタ群９１２の値を制御するレジスタアクセス回路９２４と、を有する。所定形式の制御ファイルＦ１は、情報処理装置１００８からバスコントローラ９０６へ、複数ワードを含む所定データ量を単位として伝送される。プログラマブル領域９３０には、所定データ量より大きい記憶領域を有し、当該記憶領域に制御ファイルＦ１を所定データ量ごとに格納し、順次、レジスタアクセス回路９２４に受け渡すデータバッファ部９２４が形成される。【選択図】図２
2013250955.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置との間で外部バスを介してデータを双方向に送受信可能なバスコントローラと、
コンフィギュレーションデータを格納する不揮発性メモリと、
（i）内部バスを介して前記バスコントローラと接続され、前記バスコントローラを介して、前記情報処理装置からのデータを受信する内部インタフェース部と、（ii）バウンダリスキャンレジスタと、（iii）所定形式のファイルにもとづき、前記バウンダリスキャンレジスタのうち前記不揮発性メモリに接続される複数の入出力ピンに対応するレジスタ群の値を制御するレジスタアクセス回路と、（iv）前記不揮発性メモリに格納された前記コンフィギュレーションデータに応じて回路構成がプログラム可能なプログラマブル領域と、を有するプログラマブルデバイスと、
を備え、
前記所定形式のファイルは、前記情報処理装置から前記バスコントローラへ、複数ワードを含む所定データ量を単位として伝送され、
前記プログラマブル領域には、前記所定データ量より大きい記憶領域を有し、当該記憶領域に前記所定形式のファイルを前記所定データ量ごとに格納し、順次、前記レジスタアクセス回路に受け渡すデータバッファ部が形成されることを特徴とするハードウェア機器。
【請求項２】
前記バスコントローラは、ＵＳＢ（Universal Serial Bus）に準拠していることを特徴とする請求項１に記載のハードウェア機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア機器に関する。
【背景技術】
【０００２】
近年、さまざまな電子機器、産業機器、計測機器（以下、ハードウェア機器と総称する）に、ＦＰＧＡ（Field Programmable Gate Array）をはじめとするプログラマブルデバイスが利用される。ＦＰＧＡは、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）やフラッシュメモリなどの不揮発性メモリに格納されたコンフィギュレーションデータに応じて、内部の回路構成がプログラム可能となっている。
【０００３】
通常、ＦＰＧＡのプログラミングは、以下の手順でなされる。まずハードウェア機器の設計者は、ハードウェア記述言語（ＨＤＬ）を用いてＦＰＧＡの動作を定義する。そしてＨＤＬで記述された設計情報を、ネットリストと呼ばれる回路情報に変換する。そしてＦＰＧＡのベンダーが供給する設計ツールを用いて、ネットリストを、ＦＰＧＡがアクセス可能な形式であるバイナリファイルに変換し、不揮発性メモリに書き込む。このバイナリファイルが、コンフィギュレーションデータである。
【０００４】
図１は、従来のＦＰＧＡを含むハードウェア機器の構成を示すブロック図である。ハードウェア機器９００ｒは、ＦＰＧＡ９０２と、不揮発性メモリ９０４とを備える。
【０００５】
ＦＰＧＡ９０２は、データ線や制御線（単に制御線という）９０３を介して不揮発性メモリ９０４と接続される。ＦＰＧＡ９０２は、不揮発性メモリ９０４に格納されたコンフィギュレーションデータに応じて、その内部構成がプログラム可能である。ＦＰＧＡ９０２は、ＪＴＡＧ規格に準拠しており、バウンダリスキャンレジスタＲ１、インストラクションレジスタＲ２、ＴＡＰ（Test Access Port）コントローラ９１０を有する。
【０００６】
バウンダリスキャンレジスタＲ１は直列に接続された複数のレジスタを含み、各レジスタは、ＦＰＧＡ９０２のＩ／Ｏピンごとに設けられる。ＦＰＧＡ９０２のＩ／Ｏピンのいくつかは、制御線９０３を介して不揮発性メモリ９０４と接続されている。
【０００７】
テストアクセスポート（ＴＡＰ）は、ＴＤＩ端子、ＴＣＫ端子、ＴＭＳ端子、およびＴＤＯ端子を含む。ＪＴＡＧコントローラ１０００は、専用のダウンロードケーブル１００２を介してＦＰＧＡ９０２のＴＡＰと接続される。ＪＴＡＧコントローラ１０００は、ＴＤＩ端子を経由してバウンダリスキャンレジスタＲ１にデータを送り込む。そして、バウンダリスキャンレジスタＲ１のうち、信号線９０３に対応するレジスタ９１２の値を制御することにより、不揮発性メモリ９０４に対するアクセスを制御する。具体的には、レジスタ９１２にライト命令を書き込むと、不揮発性メモリ９０４に値が書き込まれ、レジスタ９１２にリード命令を書き込むと、不揮発性メモリ９０４から値が読み出される。ＴＡＰコントローラ９１０は、ＴＭＳ端子に入力された信号に応じて状態遷移するステートマシンであり、ＴＡＰコントローラ９１０によって、シフトレジスタＲ１、Ｒ２の状態が制御される。
【０００８】
ＪＴＡＧコントローラ１０００の動作は、制御ファイルにより制御される。制御ファイルは、レジスタ９１２に書き込むべきデータを記述する。ＪＴＡＧコントローラ１０００は、制御ファイルを参照し、制御ファイルに記述されるライト命令、リード命令を順にレジスタ９１２に格納する。かくして不揮発性メモリ９０４には、制御ファイルに応じたコンフィギュレーションデータが書き込まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ハードウェア機器の出荷後に、バグフィックスや、機能の追加、変更を目的として、ハードウェア機器の手にユーザによって、不揮発性メモリにコンフィギュレーションデータを書き込みさせたい状況が想定される。
【００１０】
しかしながら、ユーザに専用のＪＴＡＧコントローラ１０００および専用のダウンロードケーブル１００２の購入を強いることは現実的に困難である。したがって出荷後において、専用のＪＴＡＧコントローラ１０００および専用のダウンロードケーブル１００２を用いて、コンフィギュレーションデータの変更、更新を行うことはむずかしい。かかる事情から、ハードウェア機器は、汎用的な情報処理端末および汎用的なバスの組み合わせで、コンフィギュレーションデータを変更、更新することが望ましい。
【００１１】
本発明者は、ＵＳＢ（Universal Serial Bus）などの汎用バスを用いた、製品出荷後のコンフィギュレーションデータの書き込みについて検討した結果、以下の課題を認識するに至った。
【００１２】
上述のように、コンフィギュレーションデータを記述する制御データの実体は、レジスタ９１２に書き込まれる、リード命令、ライト命令、その他命令の組み合わせであり、各命令は適切な順序で実行されなければならない。ライト命令とリード命令が混在する命令群は、情報処理装置からハードウェア機器に対して一括送信することはできず、命令単位での送受信が必要となる。
【００１３】
ＵＳＢは、１つのパケットのデータ容量が大きいほど伝送速度は高くなるが、小さなパケットを繰り返し送受信する場合、ハンドシェイクの回数が増えるため、伝送速度が低下する。かかる理由から、汎用的な情報処理装置と汎用的なバスの組み合わせで、ＪＴＡＧを制御して不揮発性メモリにコンフィギュレーションデータを書き込むには、非常に長い時間を要する。
【００１４】
なおここで説明した課題を当業者の一般的な技術認識ととらえてはならず、これらは本発明者らが独自に検討したものである。
【００１５】
本発明は係る課題に鑑みてされたものであり、そのある態様の例示的な目的のひとつは、プログラマブルデバイスを搭載するハードウェア機器におけるコンフィギュレーションデータの更新時間の短縮にある。
【課題を解決するための手段】
【００１６】
本発明のある態様は、ハードウェア機器に関する。ハードウェア機器は、情報処理装置との間で外部バスを介してデータを双方向に送受信可能なバスコントローラと、コンフィギュレーションデータを格納する不揮発性メモリと、プログラマブルデバイスと、を備える。プログラマブルデバイスは、（i）内部バスを介してバスコントローラと接続され、バスコントローラを介して、情報処理装置からのデータを受信する内部インタフェース部と、（ii）バウンダリスキャンレジスタと、（iii）所定形式のファイルにもとづき、バウンダリスキャンレジスタのうち不揮発性メモリと接続される複数の入出力ピンに対応するレジスタ群の値を制御するレジスタアクセス回路と、（iv）不揮発性メモリに格納されたコンフィギュレーションデータに応じて回路構成がプログラム可能なプログラマブル領域と、を有するプログラマブルデバイスと、を備える。所定形式のファイルは、情報処理装置からバスコントローラへ、複数ワードを含む所定データ量を単位として伝送され、プログラマブル領域には、所定データ量より大きい記憶領域を有し、当該記憶領域に所定形式のファイルを所定データ量ごとに格納し、順次、レジスタアクセス回路に受け渡すデータバッファ部が形成される。
【００１７】
この態様によると、バウンダリスキャンレジスタのうち、不揮発性メモリの入出力ピンに対応するレジスタ群の値を制御するレジスタアクセス回路を設け、このレジスタアクセス回路を制御するための制御ファイルを、情報処理装置からある程度まとまったデータ単位で伝送し、データバッファ部にバッファリングしてレジスタアクセス回路に引き渡すことにより、情報処理装置とハードウェア機器の間のデータ伝送を効率化でき、コンフィギュレーションデータの更新時間を短縮できる。
【００１８】
バスコントローラは、ＵＳＢ（Universal Serial Bus）に準拠していてもよい。
【００１９】
なお、以上の構成要素を任意に組み合わせたもの、あるいは本発明の表現を、方法、装置などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２０】
本発明のある態様によれば、ＦＰＧＡを搭載するハードウェア機器におけるコンフィギュレーションデータの更新時間を短縮できる。
【図面の簡単な説明】
【００２１】
【図１】従来のＦＰＧＡを含むハードウェア機器の構成を示すブロック図である。
【図２】実施の形態に係るハードウェア機器の構成を示す回路図である。
【図３】図２のハードウェア機器の動作を示す波形図である。
【図４】第１の変形例に係るハードウェア機器の一部を示す回路図である。
【発明を実施するための形態】
【００２２】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２３】
図２は、実施の形態に係るハードウェア機器の構成を示す回路図である。ハードウェア機器９００は、ＦＰＧＡ９０２、不揮発性メモリ９０４、バスコントローラ９０６、を備える。
【００２４】
ハードウェア機器９００は、電子機器、産業機器、計測機器、などであり、その内部にコンフィギュレーションデータに応じてその機能、処理内容がプログラム可能なプログラマブルデバイスであるＦＰＧＡ９０２を有する。
【００２５】
ハードウェア機器９００は、汎用的な外部バス１００６、たとえばＵＳＢなどを介して情報処理装置１００８と接続される。コンフィギュレーションデータに関するファイル（以下、制御ファイルＦ１という）は、一旦、情報処理装置１００８の記憶装置に格納され、外部バス１００６を介してハードウェア機器９００に伝送される。そして制御ファイルＦ１に応じて不揮発性メモリ９０４が書き換えられ、ＦＰＧＡ９０２ひいてはハードウェア機器９００全体の機能が変更される。
【００２６】
バスコントローラ９０６は、情報処理装置１００８との間で外部バス１００６を介してデータを双方向に送受信可能に構成される。
不揮発性メモリ９０４は、フラッシュメモリやＥＥＰＲＯＭなどであり、コンフィギュレーションデータを格納する。
【００２７】
ＦＰＧＡ９０２は、内部インタフェース部９２０、データバッファ部９２２、レジスタアクセス回路９２４、を備える。
内部インタフェース部９２０は、内部バス９２６を介してバスコントローラ９０６と接続される。内部インタフェース部９２０は、バスコントローラ９０６を介して、情報処理装置１００８からのデータを受信する。
【００２８】
ＦＰＧＡ９０２は、ＪＴＡＧ規格に準拠しており、バウンダリスキャンレジスタＲ１、インストラクションレジスタＲ２、ＴＡＰ（Test Access Port）コントローラ９１０を有する。
【００２９】
バウンダリスキャンレジスタＲ１は直列に接続された複数のレジスタを含み、各レジスタは、ＦＰＧＡ９０２のＩ／Ｏピンごとに設けられる。ＦＰＧＡ９０２のＩ／Ｏピンのいくつかは、制御線９０３を介して不揮発性メモリ９０４と接続されている。
【００３０】
テストアクセスポート（ＴＡＰ）は、ＴＤＩ端子、ＴＣＫ端子、ＴＭＳ端子、およびＴＤＯ端子を含む。ＴＡＰコントローラ９１０は、外部からＴＤＩ端子に入力されたデータを、バウンダリスキャンレジスタＲ１、インストラクションレジスタＲ２に送り込む。ＴＡＰコントローラ９１０は、ＴＭＳ端子に入力された信号に応じて状態遷移するステートマシンであり、ＴＡＰコントローラ９１０によって、シフトレジスタＲ１、Ｒ２の状態が制御される。
【００３１】
レジスタアクセス回路９２４は、所定形式のファイルにもとづき、少なくともバウンダリスキャンレジスタＲ１のうち不揮発性メモリ９０４に接続される複数の入出力ピンに対応するレジスタ群９１２の値を制御可能に構成される。
【００３２】
内部インタフェース部９２０、データバッファ部９２２、レジスタアクセス回路９２４のうち、少なくともデータバッファ部９２２は、不揮発性メモリ９０４に格納されたコンフィギュレーションデータに応じて、回路構成がプログラム可能なプログラマブル領域９３０に構成される。つまり、データバッファ部９２２に関する回路情報は、コンフィギュレーションデータに含まれている。
【００３３】
内部インタフェース部９２０、レジスタアクセス回路９２４は、コンフィギュレーションデータにもとづいてプログラマブル領域９３０内に構成されてもよいし、コンフィギュレーションデータに無関係に、ＦＰＧＡ９０２に標準で提供される回路ブロックであってもよい。
【００３４】
レジスタアクセス回路９２４が参照する所定形式の制御ファイルＦ１は、情報処理装置１００８からバスコントローラ９０６へ、所定データ量を単位として伝送される。所定データ量は、複数ワードを含み、データバッファ部９２２のバッファ領域が許容する範囲でなるべく大きくすることが好ましく、たとえば６４Ｂｙｔｅ、１２８Ｂｙｔｅあるいは２５６Ｂｙｔｅとしてもよい。制御ファイルＦ１の形式は、特に限定されず、レジスタアクセス回路９２４が解釈できる形式であればよい。
【００３５】
プログラマブル領域９３０に形成されるデータバッファ部９２２は、所定データ量より大きい記憶領域を有する。プログラマブル領域９３０は、当該記憶領域に制御ファイルＦ１を所定データ量ごとに格納し、順次、レジスタアクセス回路９２４に受け渡す。データバッファ部９２２は、ＦＩＦＯ（First In First Out）回路で構成することができる。
【００３６】
レジスタアクセス回路９２４は、データバッファ部９２２から順次受け渡される制御ファイルＦ１のセグメントにもとづき、レジスタ群９１２の値を制御することにより、不揮発性メモリ９０４にコンフィギュレーションデータを書き込む。
【００３７】
以上がハードウェア機器９００の構成である。続いてその動作を説明する。
図３は、図２のハードウェア機器９００の動作を示す波形図である。上段は、外部バス１００６を介した制御ファイルＦ１の伝送の様子を、下段はレジスタアクセス回路９２４によるレジスタ群９１２の値の制御の様子を示す。
【００３８】
情報処理装置１００８は、制御ファイルＦ１を、所定データ量を単位として複数のセグメントＦ１＿１、Ｆ１＿２、・・・に分割し、セグメントごとに、外部バス１００６を介して送信する。上述のように１つのデータパケットは、複数ワード（Ｎワード）を含んでいる。
【００３９】
セグメントＦ１＿ｉを受信したデータバッファ部９２２は、それをバッファリングし、レジスタアクセス回路９２４に受け渡す。レジスタアクセス回路９２４は、データバッファ部９２２にバッファリングされたセグメントＦ１＿ｉを参照し、それに含まれる複数の制御命令を順に実行し、レジスタ群９１２の値を制御する。たとえばひとつの制御命令が１ワードで構成される場合、ＮワードのセグメントにはＮ個の命令が含まれることになる。図３の下段では、ポジティブエッジのタイミングで、レジスタ群９１２の値が変化し、不揮発性メモリ９０４へのデータ書き込み、データ読み出しが制御される。
【００４０】
以上がハードウェア機器９００の動作である。
このハードウェア機器９００によれば、制御ファイルＦ１は、複数ワード単位で情報処理装置１００８からハードウェア機器９００に伝送される。したがって、１ワード単位でのデータ伝送を行う場合に比べて、ハンドシェイクの回数を低減できる。その結果、不揮発性メモリ９０４内のコンフィギュレーションデータの更新時間を大幅に短くできる。
【００４１】
以上、本発明について、いくつかの実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【００４２】
（第１の変形例）
図２のレジスタアクセス回路９２４は、不揮発性メモリ９０４が接続される入出力ピンに対応するレジスタ群９１２の値を直接制御するものであったが、本発明はそれには限定されない。
図４は、第１の変形例に係るハードウェア機器９００ａの一部を示す回路図である。レジスタアクセス回路９２４は、図１のＪＴＡＧコントローラ１０００と同等の機能を有する回路ブロックであり、データバッファ部９２２に格納される制御ファイルＦ１のセグメントを参照し、そのデータを、バウンダリスキャンレジスタＲ１に流し込むとともに、インストラクションレジスタＲ２、ＴＡＰコントローラ９１０の状態を制御する。
【００４３】
この変形例によっても、制御ファイルＦ１をある程度大きなデータパケットとして送信できるため、コンフィギュレーションデータの更新時間を大幅に短縮できる。
【００４４】
実施の形態にもとづき本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【００４５】
９００…ハードウェア機器、９０２…ＦＰＧＡ、９０３…制御線、…、９０４…不揮発性メモリ、９０６…バスコントローラ、Ｒ１…バウンダリスキャンレジスタ、Ｒ２…インストラクションレジスタ、９１０…ＴＡＰコントローラ、９１２…レジスタ群、９２０…内部インタフェース部、９２２…データバッファ部、９２４…レジスタアクセス回路、９３０…プログラマブル領域、１００６…外部バス、１００８…情報処理装置。
【図１】
2013250955.tif 000003
【図２】
2013250955.tif 000004
【図３】
2013250955.tif 000005
【図４】
2013250955.tif 000006