JP5151957B2 - コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム - Google Patents

コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム Download PDF

Info

Publication number
JP5151957B2
JP5151957B2 JP2008319976A JP2008319976A JP5151957B2 JP 5151957 B2 JP5151957 B2 JP 5151957B2 JP 2008319976 A JP2008319976 A JP 2008319976A JP 2008319976 A JP2008319976 A JP 2008319976A JP 5151957 B2 JP5151957 B2 JP 5151957B2
Authority
JP
Japan
Prior art keywords
fpga
configuration
data
port
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008319976A
Other languages
English (en)
Other versions
JP2010146098A (ja
Inventor
伸一郎 植草
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008319976A priority Critical patent/JP5151957B2/ja
Publication of JP2010146098A publication Critical patent/JP2010146098A/ja
Application granted granted Critical
Publication of JP5151957B2 publication Critical patent/JP5151957B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)

Description

本発明は、複数のプログラマブルデバイスに、対応するコンフィギュレーションデータをロードするコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムに関する。
近年、論理回路等を自由にプログラミングすることが可能なプログラマブルデバイスが広く用いられている。プログラマブルデバイスを用いて論理回路等をプログラミングするためには、コンフィギュレーションデータという設定データを、プログラマブルデバイスの有するコンフィギュレーションメモリにロードする必要がある。プログラマブルデバイスの有するコンフィギュレーションメモリにコンフィギュレーションデータをロードする方法を、コンフィギュレーション方法という。以下、プログラマブルデバイスであるFPGAを搭載するFPGA搭載システムを一例として、従来のコンフィギュレーション方法について具体的に説明する。
図1は、従来のFPGA搭載システムの概略の構成を例示する図(その1)である。図1において、フラッシュメモリ31aは不揮発性メモリであり、コンフィギュレーションデータを格納する機能を有する。制御部32a、32b、32cは例えばプログラム可能な複合論理デバイス(Complex Programmable Logic Device)であり、コンフィギュレーションを制御する機能を有する。より具体的には、制御部32a、32b、32cは、外部装置19からコンフィギュレーションデータを受け取り、フラッシュメモリ31aに格納する機能を有する。又、制御部32a、32b、32cは、フラッシュメモリ31aからFPGA23a、23b、23cの有するコンフィギュレーションメモリにコンフィギュレーションデータをロードする機能を有する。FPGA23a、23b、23cはプログラム可能なゲートアレイ(Field Programmable Gate Array)であり、コンフィギュレーションメモリとしてSRAM(図示せず)を有する。
図1に示すFPGA搭載システム30は、複数のベンダー製のFPGAを搭載したシステムの一例である。
制御部32aとFPGA23a、制御部32bとFPGA23b、及び、制御部32cとFPGA23cとは、各FPGAに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、FPGA搭載システム30では、それぞれのベンダーのFPGAに対応する制御部32a及びフラッシュメモリ31a、制御部32b及びフラッシュメモリ31b、制御部32c及びフラッシュメモリ31cを設ける。そして、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをFPGA23a、FPGA23b及びFPGA23cのそれぞれのコンフィギュレーションメモリにロードする。
図2は、従来のFPGA搭載システムの概略の構成を例示する図(その2)である。図2において、図1と同一構成部分については、同一符号を付し、その説明は省略する場合がある。以下、図1に示すFPGA搭載システム30と異なる部分のみ説明する。
制御部42は、例えばプログラム可能な複合論理デバイス(Complex Programmable Logic Device)であり、コンフィギュレーションを制御する機能を有する。図2に示すFPGA搭載システム40は、複数のベンダー製のFPGAを搭載したシステムの一例である。
制御部42のポート1とFPGA23a、制御部42のポート2とFPGA23b、及び、制御部42のポート3とFPGA23cとは、各FPGAに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、FPGA搭載システム40では、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをFPGA23a、FPGA23b及びFPGA23cのそれぞれのコンフィギュレーションメモリにロードする。
制御部42からは、設定用ピン44a及び44bがFPGA搭載システム40の外部から電気信号を入力可能な態様で引き出されている。フラッシュメモリ11には、例えば図3に示すようにFPGA毎にコンフィギュレーションデータ(FPGA用データ23a、FPGA用データ23b、FPGA用データ23c)が格納されている。
制御部42は、設定用ピン44a及び44bから入力される信号(設定データ)の0(L)か1(H)かの組み合わせにより、フラッシュメモリ11に格納されているどのデータをどのFPGAにロードするかを選択してロードする。例えば、設定用ピン44a=0かつ設定用ピン44b=0なら、フラッシュメモリ11に格納されているFPGA用データ23aを、ポート1に接続されるFPGA23aのコンフィギュレーションメモリに、FPGA用データ23bを、ポート2に接続されるFPGA23bのコンフィギュレーションメモリに、FPGA用データ23cを、ポート3に接続されるFPGA23bのコンフィギュレーションメモリにロードする。
例えば、設定用ピン44a=0かつ設定用ピン44b=1なら、フラッシュメモリ11に格納されているFPGA用データ23aを、ポート2に接続されるFPGA23bのコンフィギュレーションメモリに、FPGA用データ23bを、ポート3に接続されるFPGA23cのコンフィギュレーションメモリに、FPGA用データ23cを、ポート1に接続されるFPGA23aのコンフィギュレーションメモリにロードする。例えば、設定用ピン44a=1かつ設定用ピン44b=0なら、フラッシュメモリ11に格納されているFPGA用データ23aを、ポート3に接続されるFPGA23cのコンフィギュレーションメモリに、FPGA用データ23bを、ポート2に接続されるFPGA23bのコンフィギュレーションメモリに、FPGA用データ23cを、ポート1に接続されるFPGA23aのコンフィギュレーションメモリにロードする。
図4は、従来のFPGA搭載システムの概略の構成を例示する図(その3)である。図4において、図1〜図2と同一構成部分については、同一符号を付し、その説明は省略する場合がある。以下、図1に示すFPGA搭載システム30、図2に示すFPGA搭載システム40と異なる部分のみ説明する。
制御部52は、例えばプログラム可能な複合論理デバイス(Complex Programmable Logic Device)であり、コンフィギュレーションを制御する機能を有する。フラッシュメモリ11と制御部52とは信号伝達可能に接続されている。制御部52は、コネクタ15及びケーブル16を介して、FPGA搭載システム50の外部に配置された外部装置19と信号伝達可能に接続されている。図4に示すFPGA搭載システム50は、複数のベンダー製のFPGAを搭載したシステムの一例である。
制御部52のポート1とFPGA23a、制御部52のポート2とFPGA23b、及び、制御部52のポート3とFPGA23cとは、各FPGAに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、FPGA搭載システム50では、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをFPGA23a、FPGA23b及びFPGA23cのそれぞれのコンフィギュレーションメモリにロードする。制御部52は、図2に示すFPGA搭載システム40の制御部42のような設定用ピンは有していない。
フラッシュメモリ11には、例えば図5に示すようにFPGA毎にコンフィギュレーションデータ及びコンフィギュレーションデータの先頭情報、ポート番号、ベンダー種別等の識別情報が格納されている。例えば、先頭情報を4バイト、ポート番号を1バイト、ベンダー種別を1バイトとすると、識別情報として6バイト=48ビットが必要になる。制御部52は、これらの識別情報に基づいて所定のデータを所定のFPGAのコンフィギュレーションメモリにロードする。
図1〜図5を参照して説明した各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いたコンフィギュレーション方法は、JTAGインターフェースを用いたコンフィギュレーション方法とは異なり、動作クロックも速くシリアルのみならず、パラレルビット幅でもコンフィギュレーションデータをロードできる。従って、FPGA搭載システムに搭載されるFPGAの数が増加しても、コンフィギュレーション時間は数分程度で済むという利点がある。
特開2004−185239号公報 特開2005−259053号公報
しかしながら、図2に示す方法では、制御部に設定用ピンを設け、外部から設定用ピンに入力するデータの組み合わせに応じて、所定のデータを所定のFPGAにロードするので、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いた場合でも、複数の制御部を準備する必要がないという利点がある。しかし、FPGA搭載システムに搭載されるFPGAの数が増加した場合やベンダーの種類が増加した場合に、ロードすべきデータとロードすべきFPGAを選択する設定用ピンの数も増やす必要があり実現が困難であるという問題があった。
又、図4に示す方法では、データ構造を工夫することにより各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いた場合でも、複数の制御部を準備する必要がないという利点がある。しかし、FPGA搭載システムに搭載されるFPGAの数が増加した場合やベンダーの種類が増加した場合に、ロードすべきデータとロードすべきFPGAを選択する識別情報に用いる冗長ビット数が増加し、効率的なデータの持ち方ができないという問題があった。
上記の点に鑑みて、部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することを課題とする。
本コンフィギュレーション方法は、コンピュータが、制御部の各ポートに接続された複数のプログラマブルデバイスに転送する複数のコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与し、前記不揮発性メモリに格納するデータ格納ステップと、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、制御部の各ポートに接続された対応するプログラマブルデバイスに転送するデータ転送ステップと、を有することを要件とする。
本コンフィギュレーション装置は、制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に識別情報を付与して、前記不揮発性メモリに格納するデータ格納手段と、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送手段と、を有することを要件とする。
本コンフィギュレーションプログラムは、コンピュータに、制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、を実行させることを要件とする。
開示の技術によれば、部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することができる。
以下、本発明の実施の形態について説明する。なお、本発明の実施の形態では、プログラマブルデバイスであるFPGAを搭載するFPGA搭載システムを一例として、コンフィギュレーション方法等について具体的に説明する。
[本発明の実施の形態に係るFPGA搭載システムの構成]
始めに、本発明の実施の形態に係るFPGA搭載システムの概略の構成について説明する。図6は、本発明の実施の形態に係るFPGA搭載システムの概略の構成を例示する図である。図6を参照するに、FPGA搭載システム100は、不揮発性メモリ110と、制御部120と、FPGA130aと、FPGA130bと、FPGA130cとを有する。
図6において、不揮発性メモリ110は、例えばパラレルデータでデータ伝送が可能なフラッシュメモリ(パラレルフラッシュメモリ)であり、コンフィギュレーションデータを含むデータを格納する機能を有する。以降、不揮発性メモリに格納される、コンフィギュレーションデータを含むデータをメモリ格納用データという場合がある。
制御部120は、例えばプログラム可能な複合論理デバイス(Complex Programmable Logic Device)であり、コンフィギュレーションを制御する機能を有する。より具体的には、制御部120は、外部装置190からメモリ格納用データを受け取り不揮発性メモリ110に格納する機能を有する。又、制御部120は、不揮発性メモリ110からFPGA130a、FPGA130b及びFPGA130cの有するコンフィギュレーションメモリに、メモリ格納用データに含まれるコンフィギュレーションデータをロードする機能を有する。
FPGA130a、FPGA130b及びFPGA130cはプログラム可能なゲートアレイ(Field Programmable Gate Array)であり、コンフィギュレーションメモリ(図示せず)を有する。コンフィギュレーションメモリは、例えばSRAMである。FPGA130a、FPGA130b及びFPGA130cは、それぞれ異なるベンダー(例えば、ベンダーA、B、C)で製造されたものであり、各ベンダー独自のコンフィギュレーション用のインターフェースを有する。
外部装置190は、例えばパーソナルコンピュータ等であり、FPGA搭載システム100にメモリ格納用データを供給する機能を有する。このように、図6に示すFPGA搭載システム100は、異なるベンダーで製造されたFPGAを搭載したシステムの一例である。
不揮発性メモリ110と制御部120とは信号伝達可能に接続されている。制御部120のポート1とFPGA130a、制御部120のポート2とFPGA130b、及び、制御部120のポート3とFPGA130cとは、各FPGAに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、FPGA搭載システム100では、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをFPGA130a、FPGA130b及びFPGA130cのそれぞれのコンフィギュレーションメモリにロードする。制御部120は、コネクタ150及びケーブル160を介して、FPGA搭載システム100の外部に配置された外部装置190と信号伝達可能に接続されている。
FPGA搭載システム100において、外部装置190の有するメモリ格納用データは、ケーブル160、コネクタ150及び制御部120を介して、不揮発性メモリ110に格納される。不揮発性メモリ110に格納されたメモリ格納用データに含まれるコンフィギュレーションデータは、制御部120の制御に従い、制御部120を介して、FPGA130a、FPGA130b及びFPGA130cの有するコンフィギュレーションメモリにロードされる。
FPGA搭載システム100のように、コンフィギュレーションメモリとしてSRAM等が用いられているFPGAを搭載したシステムでは、FPGA130a、FPGA130b及びFPGA130cに供給される電源をOFFにするとコンフィギュレーションメモリの中身が消去されてしまう。従って、電源をONにする度に不揮発性メモリ110に格納されたメモリ格納用データに含まれるコンフィギュレーションデータをFPGA130a、FPGA130b及びFPGA130cのコンフィギュレーションメモリにロードする必要がある。以上が、本発明の実施の形態に係るFPGA搭載システム100の概略の構成である。
[本発明の実施の形態に係るメモリ格納用データの構造]
続いて、本発明の実施の形態に係るメモリ格納用データの概略の構造について説明する。図7は、本発明の実施の形態に係るメモリ格納用データの概略の構造を例示する図である。図7では8ビット幅のデータを示すが、本発明の実施の形態に係るメモリ格納用データは8ビット幅には限定されない。例えば16ビット幅の不揮発性メモリを用いれば、メモリ格納用データも16ビット幅のデータとなる。
図7を参照するに、本発明の実施の形態に係るメモリ格納用データ200は、従来は不揮発性メモリ110のバンク毎に持たせていたFPGA130a、FPGA130b、FPGA130cに対応するコンフィギュレーションデータであるFPGA130a用データ、FPGA130b用データ及びFPGA130c用データを、不揮発性メモリ110のビット列単位で持たせたことが特徴である。又、各ビット列の先頭にそのビット列が有効か無効かを示す識別情報である有効無効情報ビット210a〜210hを付与したことが特徴である。なお、有効無効情報ビット210a〜210hを一まとめとして有効無効情報ビット群210という場合がある。
例えば、メモリ格納用データ200の第1ビット列にはFPGA130a用のコンフィギュレーションデータであるFPGA130a用データが割り当てられ、第1ビット列の先頭には有効無効情報ビット210aが付与されている。図7の場合には、有効無効情報ビット210aは、有効を示すデータである「1」とされている。メモリ格納用データ200の第2ビット列にはFPGA130b用のコンフィギュレーションデータであるFPGA130b用データが割り当てられ、第2ビット列の先頭には有効無効情報ビット210bが付与されている。図7の場合には、有効無効情報ビット210bは、有効を示すデータである「1」とされている。メモリ格納用データ200の第8ビット列にはFPGA130c用のコンフィギュレーションデータであるFPGA130c用データが割り当てられ、第8ビット列の先頭には有効無効情報ビット210hが付与されている。図7の場合には、有効無効情報ビット210hは、有効を示すデータである「1」とされている。
メモリ格納用データ200の第3ビット列から第7ビット列には無効データ(一例として全て「0」)が割り当てられ、第3ビット列から第7ビット列の先頭には有効無効情報ビット210c〜210gが付与されている。図7の場合には、有効無効情報ビット210c〜210gは、無効を示すデータである「0」とされている。
有効無効情報ビット群210が、なぜ図7に示すようなデータであるのかを以下に説明する。表1は、有効無効情報ビット群210のデータと、ポートとベンダーの組み合わせとの対応関係を例示している。有効無効情報ビット群210は、例えば表1のようなデータであり、「1」と「0」との組み合わせにより、図6に示すFPGA搭載システム100の制御部120のポート1からポート3にどのベンダーのFPGAが接続されているか(以降、ベンダー種別という場合がある)の情報を表す。FPGA搭載システム100では、ポート1にベンダーAのFPGA130aが、ポート2にベンダーBのFPGA130bが、ポート3にベンダーCのFPGA130cが接続されている。従って、図7の有効無効情報ビット群210は、表1の6番目のデータとなっている。例えば、ポート1、2、3の全てにベンダーAのFPGAが接続されていれば、有効無効情報ビット群210は表1の1番目のデータとなる。
Figure 0005151957
このように、予め有効無効情報ビット群210(有効無効情報ビット210a〜210hのデータの組み合わせ)と、ポートとベンダーの組み合わせとの対応関係を決定しておき、メモリ格納用データ200の各ビット列の先頭に有効無効情報ビット210a〜210hを付与する。これにより、制御部120は有効無効情報ビット群210の有効無効情報ビット210a〜210hのデータを読取ることにより、ポート1からポート3にどのベンダーのFPGAが接続されているかを判別することができる。その結果、制御部120は、ポート1からポート3にどのようなベンダーのFPGAが接続された場合でも、接続されたベンダー独自のコンフィギュレーション用のインターフェースに合わせて、それぞれのFPGAのコンフィギュレーションメモリにコンフィギュレーションデータをロードすることができる。
又、図7のようなメモリ格納用データの構造とすることにより、図5に示す先頭情報やポート番号が不要となるため、識別情報として用いる冗長ビットの数を大幅に削減することができ、効率的なデータの持ち方が可能となる。例えば、図5の例では冗長ビットとして48ビット必要であったが、図7の例ではわずか1ビットである。
なお、表1は、制御部120の3つのポートに3つのFPGAが接続された場合(図6参照)の一例を示している。例えば、8ビット幅の不揮発性メモリを用いたFPGA搭載システムの場合には、FPGAのベンダー数=N、制御部120のポート数=Pとすると、式1:N^P ≦ が成立する限り、本発明の実施の形態に係るメモリ格納用データの構造を実現することができる。
図6に示すFPGA搭載システム100の場合には、N=3、P=3であるから、式1の左辺は3^3=27となる。これは、ポートとベンダーとの組み合わせが27通りあることを示す。又、式1の右辺は=56となる。これは、有効無効情報ビット210a〜210hの組み合わせが56通りあることを示す。このように、FPGA搭載システム100の場合には式1を満足するため、本発明の実施の形態に係るメモリ格納用データの構造を実現することができる。
なお、16ビット幅の不揮発性メモリを用いた場合には、FPGAのベンダー数=N、制御部120のポート数=Pとすると、式2:N^P ≦ 16が成立する限り、本発明の実施の形態に係るメモリ格納用データの構造を実現することができる。ポートとベンダーとの組み合わせが多い場合には、16ビット幅の不揮発性メモリを用いればよい。
又、本発明の実施の形態に係るメモリ格納用データ200は、外部装置190により作成することができる。具体的には、始めに表1から該当するポートとベンダーの組み合わせを選択し、外部装置190により各ビット列の先頭に有効無効情報ビット210a〜210hを付与する。次いで、有効であるビット列に対象となるFPGAのコンフィギュレーションデータを割り付け、無効であるビット列に「0」データを割り付ける。その際、有効であるビット列には、若番から順番にポート1に接続されているFPGA130aに対応するコンフィギュレーションデータ(FPGA130a用データ)、ポート2に接続されているFPGA130bに対応するコンフィギュレーションデータ(FPGA130b用データ)、ポート3に接続されているFPGA130cに対応するコンフィギュレーションデータ(FPGA130c用データ)のように割り付ける(図7参照)。以上が、本発明の実施の形態に係るメモリ格納用データ200の概略の構造である。
[本発明の実施の形態に係るコンフィギュレーション方法]
続いて、本発明の実施の形態に係るコンフィギュレーション方法、すなわち、本発明の実施の形態に係るメモリ格納用データ200を用いてコンフィギュレーションを行う際のFPGA搭載システム100の動作について説明する。図8は、図6に示す制御部の概略のブロック構成を例示する図である。図9は、本発明の実施の形態に係るFPGA搭載システムの概略の動作を例示するフローチャートである。図8及び図9を参照しながら、FPGA搭載システム100の動作について説明する。
図8を参照するに、制御部120は、不揮発性メモリアクセス制御部121と、ポート制御部122と、FPGAインターフェース部123aと、FPGAインターフェース部123bと、FPGAインターフェース部123cとを有する。
図9を参照するに、ステップ101において、不揮発性メモリアクセス制御部121は、外部装置190からメモリ格納用データ200を受け取り、不揮発性メモリ110に格納する(S101)。なお、ステップ101は一度だけ行われ、一旦不揮発性メモリ110にメモリ格納用データ200が格納されれば、その後は電源投入時に、後述するステップ102〜ステップ106のみが実行される。
次いでステップ102において、不揮発性メモリアクセス制御部121は、不揮発性メモリ110に格納されているメモリ格納用データ200を1アドレスごとに読み出し、ポート制御部122に転送する(S102)。図7に示すように、メモリ格納用データ200は1アドレス=8ビット(8ビット幅)であるから、メモリ格納用データ200は8ビットごとに読み出される。
次いでステップ103において、ポート制御部122は、不揮発性メモリアクセス制御部121から転送されたメモリ格納用データ200の各ビット列の先頭に付与された有効無効情報ビット210a〜210h(有効無効情報ビット群210)のデータを判別する(S103)。すなわち、制御部120のポート1からポート3にどのベンダーのFPGAが接続されているか(ベンダー種別)を、例えば表1に基づいて判別する。
次いでステップ104において、ポート制御部122は、FPGAインターフェース部123a、123b及び123cにベンダー種別を通知する(S104)。次いでステップ105において、ポート制御部122は、メモリ格納用データ200から各ビット列の先頭に付与された有効無効情報ビット群210を除去する。そして、ポート制御部122は、FPGAインターフェース部123a、123b及び123cに、FPGA130a、FPGA130b及びFPGA130cに対応するコンフィギュレーションデータであるFPGA130a用データ、FPGA130b用データ及びFPGA130c用データを転送する(S105)。
次いでステップ106において、FPGAインターフェース部123a、123b及び123cは、コンフィギュレーションデータであるFPGA130a用データ、FPGA130b用データ及びFPGA130c用データを、接続されているベンダー独自のコンフィギュレーション用のインターフェースに合わせて、ポート1からポート3に接続されているFPGA130a、FPGA130b及びFPGA130cに転送する(S106)。これにより、コンフィギュレーションデータであるFPGA130a用データ、FPGA130b用データ及びFPGA130c用データは、FPGA130a、FPGA130b及びFPGA130cのそれぞれのコンフィギュレーションメモリにロードされる。以上が、メモリ格納用データ200を用いてコンフィギュレーションを行う際のFPGA搭載システム100の動作(本発明の実施の形態に係るコンフィギュレーション方法)である。
このようなFPGA搭載システム100の動作は、予めコンフィギュレーションプログラムとして、パーソナルコンピュータやワークステーション等のコンピュータシステムの有する記憶部に記憶しておき、それを実行することによって実現することができる。
本発明の実施の形態によれば、各FPGAに対応するコンフィギュレーションデータを、不揮発性メモリのビット列単位で持たせ、各ビット列の先頭に有効無効情報ビットを付与したメモリ格納用データを作成する。又、予め有効無効情報ビットのデータの組み合わせと、ポートとベンダーの組み合わせとの対応関係を決定しておく。これにより、制御部は有効無効情報ビットのデータの組み合わせを判別することにより、各ポートにどのベンダーのFPGAが接続されているかを認識することができる。その結果、制御部は、各ポートにどのようなベンダーのFPGAが接続された場合でも、接続されたベンダー独自のコンフィギュレーション用のインターフェースに合わせて、それぞれのFPGAのコンフィギュレーションメモリにコンフィギュレーションデータをロードすることができる。
又、本発明の実施の形態によれば、各ベンダー独自のインターフェースに対応するに際し、図7のようなメモリ格納用データの構造とすることにより、図5に示す先頭情報やポート番号が不要となるため、識別情報として用いる冗長ビットの数を大幅に削減することができ、効率的なデータの持ち方が可能となる。例えば、図5の例では冗長ビットとして48ビット必要であったが、図7の例ではわずか1ビットである。
又、本発明の実施の形態によれば、各ベンダー独自のインターフェースに対応するに際し、図1に例示するように複数の制御部を設ける必要がなく、1個の制御部及び1個の不揮発性メモリで対応することができるため、部品点数の増加をともなうことがない。
又、本発明の実施の形態によれば、各ベンダー独自のインターフェースに対応するに際し、図2に例示するように設定用ピンを設ける必要がないため、FPGAのベンダーの数の増加にも容易に対応することができる。
このように、部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することができる。
以上、本発明の実施の形態について詳述したが、本発明は特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
例えば、本発明の実施の形態では、プログラマブルデバイスであるFPGAを搭載したFPGA搭載システムを例にとりコンフィギュレーション方法等の説明をした。しかしながら、コンフィギュレーションの対象となるデバイスはFPGAには限定されず、プログラマブルデバイスであれば例えばDSP(ディジタル信号処理用プロセッサ)等のどのようなデバイスであっても構わない。もちろん、FPGAやDSPが混在しても構わない。
又、本発明の実施の形態では、制御部の一例としてプログラム可能な複合論理デバイス(Complex Programmable Logic Device)を示した。しかしながら、制御部はプログラム可能な複合論理デバイス(Complex Programmable Logic Device)には限定されず、コンフィギュレーションを制御する機能を有するものであれば例えばマイクロコンピュータやASIC等のどのようなデバイスであっても構わない。
又、本発明の実施の形態では、不揮発性メモリの一例としてパラレルフラッシュメモリを示した。しかしながら、不揮発性メモリはパラレルフラッシュメモリには限定されず、パラレルインターフェースを備えたメモリであればどのようなメモリであっても構わない。
又、本発明の実施の形態では、制御部に3つのプログラマブルデバイス(FPGA)を接続する例を示した。しかしながら、式1又は式2(16ビットよりも大きなビット幅の不揮発性メモリを用いた場合には、これらに相当する式)を満たす限り、制御部に2つ又は4つ以上のプログラマブルデバイスを接続できることはいうまでもない。
又、本発明の実施の形態に係るFPGA搭載システムは、制御部、不揮発性メモリ、FPGA以外にマイクロコンピュータ、論理回路、アナログ回路等を含んでいても構わない。
又、本発明の実施の形態では、不揮発性メモリと制御部とは独立しているが、不揮発性メモリを内蔵する制御部を用いても構わない。
又、本発明の実施の形態では、有効無効情報ビットにおいて、「1」を有効を示すデータ、「0」を無効を示すデータとしたが、「0」を有効を示すデータ、「1」を無効を示すデータとしても構わない。
又、本発明の実施の形態では、メモリ格納用データの無効データをオール「0」としたが、メモリ格納用データの無効データは必ずしもオール「0」である必要はなく、オール「1」その他どのようなデータであっても構わない。
以上の説明に関し、更に以下の項を開示する。
(付記1)
コンピュータが、
制御部の各ポートに接続された複数のプログラマブルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより前記制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
を有するプログラマブルデバイスのコンフィギュレーション方法。
(付記2)
前記ポート別識別情報は前記ビット列各々が有効か無効かの組み合わせにより所定の情報を表す付記1記載のコンフィギュレーション方法。
(付記3)
前記所定の情報は、前記各ポートに接続された前記プログラマブルデバイスのベンダー種別を表す情報である付記2記載のコンフィギュレーション方法。
(付記4)
前記データ転送ステップより前に、前記制御部が、前記所定の情報に基づいて、前記各ポートに接続された前記プログラマブルデバイスの前記ベンダー種別を判別するベンダー種別判別ステップを有する付記3記載のコンフィギュレーション方法。
(付記5)
前記ベンダー種別判別ステップと前記データ転送ステップとの間に、前記識別情報を除去する識別情報除去ステップを有する付記4記載のコンフィギュレーション方法。
(付記6)
前記データ転送ステップより前に、前記不揮発性メモリに格納されたデータを1アドレス毎に読み出すデータ読み出しステップを有する付記1乃至5の何れか一に記載のコンフィギュレーション方法。
(付記7)
前記データ転送ステップにおいて、前記複数のコンフィギュレーションデータを、前記対応するプログラマブルデバイス固有のコンフィギュレーション用のインターフェースに合わせて転送する付記1乃至6の何れか一に記載のコンフィギュレーション方法。
(付記8)
前記識別情報は、1ビットである付記1乃至7の何れか一に記載のコンフィギュレーション方法。
(付記9)
前記複数のプログラマブルデバイスは、ゲートアレイ及び/又はプロセッサを含む付記1乃至8の何れか一に記載のコンフィギュレーション方法。
(付記10)
前記制御部は、プログラム可能な論理デバイスを含む付記1乃至9の何れか一に記載のコンフィギュレーション方法。
(付記11)
コンピュータに、
制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
を実行させるプログラマブルデバイスのコンフィギュレーションプログラム。
(付記12)
制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に識別情報を付与して、前記不揮発性メモリに格納するデータ格納手段と、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送手段と、
を有するプログラマブルデバイスのコンフィギュレーション装置。
従来のFPGA搭載システムの概略の構成を例示する図(その1)である。 従来のFPGA搭載システムの概略の構成を例示する図(その2)である。 従来のメモリ格納用データの概略の構造を例示する図(その1)である。 従来のFPGA搭載システムの概略の構成を例示する図(その3)である。 従来のメモリ格納用データの概略の構造を例示する図(その2)である。 本発明の実施の形態に係るFPGA搭載システムの概略の構成を例示する図である。 本発明の実施の形態に係るメモリ格納用データの概略の構造を例示する図である。 図6に示す制御部の概略のブロック構成を例示する図である。 本発明の実施の形態に係るFPGA搭載システムの概略の動作を例示するフローチャートである。
符号の説明
100 FPGA搭載システム
110 不揮発性メモリ
120 制御部
121 フラッシュメモリアクセス制御部
122 ポート制御部
123a、123b、123c FPGAインターフェース部
130a、130b、130c FPGA
150 コネクタ
160 ケーブル
190 外部装置
200 メモリ格納用データ
210 有効無効情報ビット群
210a、210b、210c、210d、210e、210f、210g、210h 有効無効情報ビット

Claims (7)

  1. コンピュータが、
    制御部の各ポートに接続された複数のプログラマブルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
    前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより前記制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
    を有するプログラマブルデバイスのコンフィギュレーション方法。
  2. 前記ポート別識別情報は前記ビット列各々が有効か無効かの組み合わせにより所定の情報を表す請求項1記載のコンフィギュレーション方法。
  3. 前記所定の情報は、前記各ポートに接続された前記プログラマブルデバイスのベンダー種別を表す情報である請求項2記載のコンフィギュレーション方法。
  4. 前記データ転送ステップより前に、前記制御部が、前記所定の情報に基づいて、前記各ポートに接続された前記プログラマブルデバイスの前記ベンダー種別を判別するベンダー種別判別ステップを有する請求項3記載のコンフィギュレーション方法。
  5. 前記ベンダー種別判別ステップと前記データ転送ステップとの間に、前記識別情報を除去する識別情報除去ステップを有する請求項4記載のコンフィギュレーション方法。
  6. コンピュータに、
    制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
    前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
    を実行させるプログラマブルデバイスのコンフィギュレーションプログラム。
  7. 制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に識別情報を付与して、前記不揮発性メモリに格納するデータ格納手段と、
    前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送手段と、
    を有するプログラマブルデバイスのコンフィギュレーション装置。
JP2008319976A 2008-12-16 2008-12-16 コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム Expired - Fee Related JP5151957B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008319976A JP5151957B2 (ja) 2008-12-16 2008-12-16 コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008319976A JP5151957B2 (ja) 2008-12-16 2008-12-16 コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2010146098A JP2010146098A (ja) 2010-07-01
JP5151957B2 true JP5151957B2 (ja) 2013-02-27

Family

ID=42566516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008319976A Expired - Fee Related JP5151957B2 (ja) 2008-12-16 2008-12-16 コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム

Country Status (1)

Country Link
JP (1) JP5151957B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5774941B2 (ja) * 2011-08-11 2015-09-09 日本信号株式会社 コンフィグレーション装置及びコンフィグレーション方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097211A (en) * 1996-07-18 2000-08-01 Altera Corporation Configuration memory integrated circuit
JP2004185239A (ja) * 2002-12-02 2004-07-02 Nec Commun Syst Ltd コンフィグレーション制御装置、記録媒体、およびfpgaコンフィグレーション方法
JP4257239B2 (ja) * 2004-03-15 2009-04-22 埼玉日本電気株式会社 コンフィグレーションデータ設定方法およびコンピュータシステム

Also Published As

Publication number Publication date
JP2010146098A (ja) 2010-07-01

Similar Documents

Publication Publication Date Title
JP4165990B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
TWI376601B (en) Block addressing for parallel memory arrays
US8001296B2 (en) USB controller and buffer memory control method
KR101354341B1 (ko) 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들
US20080294838A1 (en) Universal boot loader using programmable on-chip non-volatile memory
US7710754B2 (en) Method of simple chip select for memory subsystems
US20110090004A1 (en) Reconfiguring through silicon vias in stacked multi-die packages
JP5624578B2 (ja) メモリシステム
CN110245098B (zh) 自适应接口高可用性存储设备
JP4630643B2 (ja) 半導体メモリおよび半導体メモリのテスト方法
US7822910B2 (en) Method of flexible memory segment assignment using a single chip select
JP5151957B2 (ja) コンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラム
US8918685B2 (en) Test circuit, memory system, and test method of memory system
CN111429958A (zh) 存储器芯片
US8312206B2 (en) Memory module and memory module system
JP2005158074A (ja) 共有eepromを有する周辺コントローラ
US10831963B1 (en) Apparatus and method of parallel architecture for NVDIMM
EP1814037B1 (en) Semiconductor storage device
JP4233213B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7319624B2 (en) Memory built in self test circuit and method for generating a hardware circuit comprising the routing boxes thereof
US20070239959A1 (en) Device for testing the Structural Coverage of a Software Program and a Method Implementing the Device
US8726130B2 (en) Dynamic buffer management in a NAND memory controller to minimize age related performance degradation due to error correction
JP2009176359A (ja) 不揮発性半導体記憶装置
JP2007148622A (ja) インターフェース設定方法
JP2012048277A (ja) 半導体集積回路、デバッグシステム、デバッグ方法、デバッグプログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees