JP2004021867A - Information processing system - Google Patents
Information processing system Download PDFInfo
- Publication number
- JP2004021867A JP2004021867A JP2002179258A JP2002179258A JP2004021867A JP 2004021867 A JP2004021867 A JP 2004021867A JP 2002179258 A JP2002179258 A JP 2002179258A JP 2002179258 A JP2002179258 A JP 2002179258A JP 2004021867 A JP2004021867 A JP 2004021867A
- Authority
- JP
- Japan
- Prior art keywords
- configuration
- data
- fpga
- bus
- cpu
- 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.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
- Stored Programmes (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は情報処理システムに関し、特にFPGA(フィールドプログラマブルゲートアレー)を使用した情報処理システムにおけるコンフィグレーション制御方式に関するものである。
【0002】
【従来の技術】
FPGA(フィールドプログラマブルゲートアレー)は、一種のゲートアレーであり、フィールドにて書き換えられるため、汎用性の高いハードウェアとして情報処理システムや通信システム等に幅広く用いられている。FPGAは、入出力端子および内部の機能回路をデータファイルとして管理できるため、データファイルを更新することはハードウェアを更新するに等しい。データファイルは、コンフィグレーションデータとして外部よりFPGAに書き込まれるため、更新したデータによりFPGAを再コンフィグレーションすることによって、容易にシステムの機能が変更できるという特徴がある。
【0003】
近年、システムは信頼性、連続可用性、機能変更の容易性が要求されてきている。この要請に応えるために、例えば、図13〜15に示すようなFPGAコンフィグレーション制御方法が提案されている。図13を参照すると、CPU2の配下のローカルバス7とコンフィグレーションバス51とを分離して、これ等バスをI/F(バスインタフェース)52を介して接続可能な構成とし、装置初期化時には、ROM(読み取り専用メモリー)53に格納された初期動作用のデータにより、FPGA21をコンフィグレーションして動作・実行させるようになっている。
【0004】
この間に、ハードウェア機能データをメモリー3からI/F52を介してRAM(ランダムアクセスメモリー)55に転送し、再コンフィグレーションする機能を備え、システムの連続可用性、ハードウェア機能変更の容易性を実現している。なお、FPGAダウンロード制御部54は、既にコンフィグレーションされているデータ種別と、新たにコンフィグレーションが依頼されたデータ種別とを比較し、同一のデータと判断された場合は再コンフィグレーションを実行しないことにより、信頼性を高めている。
【0005】
図14を参照すると、FPGA21を、ローカルバス7と、I/O(入出力装置)59に接続するI/Oバス60との間のブリッジ(機能)として使用しており、FPGA21のコンフィグレーション実行時には、CPU2配下のローカルバス7と、コンフィグレーションバス51とをバッファ57により切り離し、CPU2の動作を妨げないようにしてシステムの連続可用性を実現している。また、コンフィグレーションデータのFROM(フィールドプログラマブルROM)58へのダウンロードは、I/Oバス60からFPGA21を介してデータ種別毎に複数のFROM58に格納する。
【0006】
新たに更新されたコンフィグレーションデータにより、FPGA21のコンフィグレーションが失敗した場合には、データ種別毎にFROM58にデータが格納されているため、FPGAダウンロード制御部54が更新前のデータを選択して、FPGA21を再コンフィグレーションすることができる。その結果、システムの信頼性、ハードウェア機能変更の容易性を実現している。
【0007】
図15を参照すると、機能の異なる複数のFPGA21〜2nをデイジーチェーンにて接続し、FROM58に格納されたデータにより、順番にコンフィグレーションを実行する。データの管理は、FPGAダウンロード制御部54と、シリアルケーブル62にて接続されたPC(パーソナルコンピュータ)61にて行い、PC61からFROM58にダウンロードする個々のデータは、付随するCRC(エラーチェックコード)を計算することによって、エラーのあるデータのみを再度PC61からダウンロードすることにより信頼性を実現している。
【0008】
【発明が解決しようとする課題】
近年、さらに高速、大容量FPGAが普及してきており、従来ASIC(専用大規模集積回路)でなければ実現できなかった高速動作、高集積処理がFPGAにて実現可能となってきた。これにより、多数の高速、大容量FPGAを使ったシステムが開発されるようになってきている。
【0009】
一方、近年の通信システムにおいては、ユーザが要求するシステムの多様化が進み、これに素早く応えるためにハードウェアの開発期間の短縮が不可欠となっている。これに対応して、FPGAを使い機能を容易に変更できるように装置を設計しておくことによって、ユーザの要求するシステムを短期間にて提供可能となる。しかし、FPGAは初期設定としてコンフィグレーション処理が必要であるが、このための回路は装置に特化したものではなく、拡張性があり、小規模であることが必要である。
【0010】
また、コンフィグレーションデータは、更新のためのソフトウェアがデータファイルとして扱われる必要がある。従って、コンフィグレーション回路はCPU配下に位置すべきであって、回路はCPUへの負荷を考慮にいれる必要がある。すなわち、FPGAのコンフィグレーション動作自体を回路に委ね、システムを管理するCPUの動作を損ねることのないようにするべきである。
【0011】
また、大規模FPGAを多数使用することによってコンフィグレーションデータ容量が大規模となり、データダウンロードに費やす時間が装置の立ち上げ時間に与える影響は無視できない。さらに、コンフィグレーション処理が異常状態となった場合、その対処が確実に実行できることも重要である。また、コンフィグレーションデータの管理方法も、拡張性に対応できるものでなければならない。のようにコンフィグレーションの方法は、システムの信頼性、連続可用性の確保を考慮する必要がある。
【0012】
図13〜15に示す従来例においては、これらを実現するために幾つかの問題点がある。図13に示す従来例においては、コンフィグレーションデータを、ROM53およびRAM55に格納しなければならない問題がある。すなわち、RAM55を使用しているため、電源投入の度にCPU2はコンフィグレーションデータをRAM55に転送しなければならない。従って、CPU2の処理に負荷がかかることはさけられない。また、ROM53に格納されたデータを更新する場合は、物理的にROM53を交換する必要があって、ハードウェア機能変更の容易性がない。さらに、装置に特化した回路であるため拡張性に欠けている。
【0013】
図14に示す従来例においては、FPGA21がローカルバス7とI/Oバス60とのブリッジとして機能していて、FPGA21のコンフィグレーションバス上に、別のCPU56が配置されている問題がある。すなわち、ローカル(ホスト)バス7上のCPU2への負荷は軽減できるが、コンフィグレーションバス51上にFROM58を配置してるため、メモリーマッピングにFPGAコンフィグレーションデータ領域を確保しなければならない。
【0014】
小規模のFPGAを使用する場合は問題は少ないが、大容量FPGAを多数使用する場合は、容易にメモリーマッピングを変更できない問題がある。また、これによってソフトウェアの流用ができない問題がある。
【0015】
コンフィグレーションは、ハードウェア固有のものとして管理、実行されるべきであり、CPUがアプリケーションプログラムの様に扱うのは管理が複雑となりやすい。また、コンフィグレーションバスが異常となった場合は、CPUが正常に動作しなくなり、このCPUがこれとは別の制御を行っている場合、そこへの影響が発生する。さらに、FROMへの再書き込みができない。すなわち、信頼性に欠ける。さらにまた、CPUがFROMへの書き込み手順を実行しなければならないため、ソフトウェアの流用が困難となる。
【0016】
図15に示す従来例においては、コンフィグレーションデータのダウンロードはシリアルケーブルを使用しており、大規模FPGAにおいてはデータ転送容量が大きいため、ダウンロードに時間がかかり実用的でない問題がある。
【0017】
本発明の目的は、拡張性・汎用性のある小規模なFPGAコンフィグレーション回路を有し、CPUのコンフィグレーションデータの管理を容易にして、システムの信頼性、連続可用性、機能変更の容易性を実現したコンフィグレーション制御装置を有する情報処理システムを提供することである。
【0018】
【課題を解決するための手段】
本発明によれば、CPUと、メモリーと、これ等CPU及びメモリーの配下のバスと、このバス上に配置され、FPGAのコンフィグレーション制御をなすコンフィグレーション制御手段とを含む情報処理システムであって、前記コンフィグレーション制御の開始から終了までの間、前記FPGAを前記バスから切離すためのバススイッチを含むことを特徴とする情報処理システムが得られる。
【0019】
そして、前記コンフィグレーション制御手段は、前記コンフィグレーション制御の開始から終了までの間、前記バススイッチをイネーブル状態に制御する制御信号を生成するようにしたことを特徴とする。また、前記コンフィグレーション制御手段は、予めコンフィグレーション用データを格納すると共に、この格納データの格納位置を示すアドレスをも格納したフラッシュメモリーを有しており、システムの電源投入に応答して前記フラッシュメモリに格納されている前記アドレスをアクセスして、前記コンフィグレーション用データを、このフラッシュメモリーから読み出しつつ前記FPGAのコンフィグレーション制御をなようにしたことを特徴とする。また、前記コンフィグレーション制御手段はシリアルポートを有しており、コンフィグレーション用データをこのシリアルポートを介して入力しつつ前記フラッシュメモリーに格納するようにしたことを特徴とする。
【0020】
本発明の作用は次の通りである。コンフィグレーション制御装置がFPGAのコンフィクレーションの動作制御を行っている間は、CPUの配下のバスとFPGAとを、バススイッチにより分離するよう構成する。これによって、CPUへの負荷を低減するばかりでなく、汎用的なシステムバスインタフェースを適用することによって、装置の拡張性と回路の小規模化をはかることができる。
【0021】
また、コンフィグレーション用のデータを、予めフラッシュメモリーに、その格納位置を示すアドレスと共に格納しておくことにより、システムの電源入力に応答して、コンフィグレーション制御装置が自動的にこのフラッシュメモリーのアドレス部分にアクセス開始するようにしておけば、CPUの介在なしに、またCPUの処理とは全く独立に、自動的にコンフィグレーションの動作制御が行われるという効果もある。
【0022】
【発明の実施の形態】
以下に、本発明の実施例について図面を参照して説明する。図1は本発明の実施例を示す情報処理システムのブロック図であり、図2〜15と同等部分は同一符号にて示している。図1において、本実施例は、システムを制御するCPU2、コンフィグレーション制御用のデータを受け付けるシリアルポート1、CPU2のプログラムやデータを格納する主メモリーであるメモリー3を含む。また、CPU2やメモリー3等を乗せて接続するローカルバス7、ローカルバス7とは独立したシステムバス8、ローカルバス7とシステムバス8とを接続するバスブリッジ4を含む。
【0023】
さらに、システムバス8上に配置されたコンフィグレーション制御部5、コンフィグレーション制御部5によって制御され、FPGA21〜2nのコンフィグレーションデータを格納するフラッシュメモリー6を含む。さらにまた、コンフィグレーション制御部5によって制御されるFPGA21〜2n、コンフィグレーション制御部5と、FPGA21〜2nとをディジーチェーンにて接続するコンフィグレーションバス11を含む。さらにまた、ローカルバス7とシステムバス8とをFPGA21〜2nに接続するバススイッチ9,10を含んで構成される。
【0024】
FPGA21〜2nのコンフィグレーションが完了すると、コンフィグレーション完了信号bがコンフィグレーション制御部5に送られる。また、コンフィグレーション制御部5から、コンフィグレーション完了後のリセット信号aがFPGA21〜2nへ送られると共に、バススイッチ9,10へ送られてイネーブル制御する。
【0025】
なお、ローカルバス7あるいはシステムバス8に接続されているFPGA21〜2nが、コンフィグレーション実行中に、同バス7,8上の信号へ影響及ぼすことを抑制するため、FPGA21〜2nを電気的に分離する目的にてバススイッチ9,10が設けられている。
【0026】
図2,3に、コンフィグレーションバス11をデイジーチェーンにて、FPGA21〜2nに接続する形態を示している。何れの場合も、コンフィグレーション制御部5がマスタとなり、FPGA21〜2nがスレーブとなる。
【0027】
デイジーチェーンには2種のタイプがあり、図2においては、コンフィグレーションバス11をFPGA21,22,…,2nの順にて接続する。この場合、コンフィグレーションは、始めに到着したデータからFPGA21をコンフィグレーションする。
【0028】
FPGA21のコンフィグレーションが完了すると、FPGA21は続いて入力されたデータを次のFPGA22に渡す。この動作を繰り返して、すべてのFPGA21〜2nがコンフィグレーションされる。
【0029】
図3では、コンフィグレーションバス11がFPGA21〜2nに並列に接続される。この場合、コンフィグレーションは、データをすべてのFPGA21〜2nに渡しているが、FPGA21が始めにコンフィグレーションされ、コンフィグレーションが完了すると、FPGA21のコンフィグレーション完了信号bが次のFPGA22に伝えられて、次のコンフィグレーションが行われる。この動作を繰り返して、すべてのFPGA21〜2nのコンフィグレーションが完了する。
【0030】
図4にリセット制御の形態を示す。図4において、FPGA21〜2nへのコンフィグレーションが完了した後、それぞれのFPGA21〜2nが内部的に動作可能となった時に、コンフィグレーション完了信号bを発行する。一方、コンフィグレーション制御部5は、すべてのFPGA21〜2nがコンフィグレーション完了信号bを発行するまで、リセット信号aを出力し続ける。図5に、そのタイミングチャートを示す。ただし、FPGAは21,22,23の3個の場合を示す。
【0031】
すなわち、タイミングt0にコンフィグレーションが開始されて、タイミングt1にFPGA21のコンフィグレーションが終了し、同様にタイミングt2にFPGA22のコンフィグレーション、タイミングt3にFPGA23のコンフィグレーションが終了する。
【0032】
図6に、フラッシュメモリー6のアーキテクチュアであるセクタの応用例を示す。フラッシュメモリー6はセクタ単位にてデータ消去や書込み保護を行う。また、データの書込みには一旦データを消去する必要がある。これらの処理は、そのセクタに該当する一つのアドレスに特定のコマンドを発行することによって行う。従って、データを消去する場合にはコマンドを1回発行すればよく、フラッシュメモリー6ヘのデータ格納方法を工夫することによって消去が簡素化できる。図6においては、例えばセクタ1にFPGA番号、セクタ2にFPGAデータ先頭アドレス、セクタk〜pにFPGAデータを格納することによって、消去処理を簡素化している。
【0033】
図7に、コンフィグレーション順(番)の制御方法を示す。図7において、コンフィグレーション制御部5は、始めにメモリーアドレス00000h(h はヘキサデシマルの数であることを示す)のデータを読み出す。アドレス00000hからはデータ10000hが取得できる。これはFPGAデータAが格納されたセクタの先頭アドレスを指している。制御部5はこの先頭アドレスを基に、FPGAデータAの格納されているセクタからデータを取得して、FPGAのコンフィグレーションバス11に送出して、コンフィグレーションを実行する。FPGAデータの最後は、データのすべてのビットが“1”の時となる。これはFPGAのコンフィグレーションデータに定義されたものである。
【0034】
FPGAデータAがすべてコンフィグレーションされると、制御部5はメモリーアドレス00001hに移り、FPGAデータBの格納先頭アドレスを取得する。このようにして、FPGAデータCまでのコンフィグレーションが終了すると、制御部5は、例えばメモリーアドレス00003hから先頭アドレスとしてALL“1”を取得するため、すべてのFPGAコンフィグレーションデータの転送終了を認識する。ここで、FPGA番号と先頭アドレスとのセクタを区別しているのは、メモリー容量内であれば、機能の異なる複数のFPGAデータを格納できるようにしていて、これらを選択してコンフィグレーションすることができる。
【0035】
図8に、FPGAデータフォーマットを示す。図8において、ソフトウェアが管理するFPGAデータフォーマットは、システム内にて唯一の値を持つFPGA番号31、そのバージョン番号32、コンフィグレーションデータのデータ長33を含む。また、データ34、データの最後を示すALL“1”データ35、データ部分のCRC(エラーチェックコード)(値)35含んで構成される。
【0036】
図9に、コンフィグレーションデータダウンロード方法を示す。図9において、例えばセクタ1内に書かれるFPGA番号と、セクタ2内に書かれる先頭アドレスは、装置内にて使用するFPGA数、データ容量、コンフィグレーション順(番)が既知であるため、シリアルポート1から予めフラッシュメモリー6に書き込んで置く。
【0037】
これによって、ソフトウェアが、メモリーアドレスやコンフィグレーション順(番)を意識することなく、コンフィグレーションデータをFPGA番号とバージョン番号のみにて、管理することができる。また、コンフィグレーション制御部5の回路も汎用的となる。
【0038】
FPGA番号37は、コンフィグレーションデータをダウンロードするアドレスを引く(アクセスする)ために使用される。また、データ長39は、フラッシュメモリーのデータをセクタ単位にて消去するために、セクタ数の計算に使用される。さらに、データ38のバージョン番号、データ等は例えばセクタmに格納される。
【0039】
図10に、コンフィグレーション制御部5内部の形態を示す。図10において、コンフィグレーション制御部5は、システムバス8にインタフェースするシステムバスインタフェース部41、フラッシュメモリー6を制御するメモリー制御部42を含む。また、コンフィグレーションバス11にインタフェースするコンフィグレーションバスインタフェース部43、シリアルポート1とインタフェースするシリアル制御部44、コンフィグレーション制御部5全体を統括する共通部45を含む5つの機能ブロックに分かれている。
【0040】
このうち、システムバスインタフェース部41は、PCIバスやシステムに適したモジュールに置き換え可能である。メモリー制御部42は、使用するフラッシュメモリー6による固有の書込み手順を吸収するためのものであり、他の適したモジュールに置き換え可能である。
【0041】
コンフィグレーションバスインタフェース部43は、図2,3に示すようなバス形態を選択できる。シリアル制御部44と共通部45とは、本発明によるコンフィグレーション制御装置固有のブロックである。また、このブロックは、コンフィグレーションするFPGA21〜2nの順(番)や、フラッシュメモリー6のアドレスを意識することなく、コンフィグレーション動作するために必要な機能を持つ。このように機能ブロック化しておけば、必要なモジュールを組み合わせることによって、システムの拡張性、汎用性が実現できる。さらに、動作異常が発生した場合、CPU2が、どのインタフェースが異常となったのかの原因を特定することが容易となる。
【0042】
本発明の実施例の動作を、図11,12のフローチャートにより説明する。
【0043】
まず、図11によって、FPGA21〜2nをコンフィグレーションする場合の動作を説明する。図11において、電源投入する(ステップS1)と、コンフィグレーション制御部5はリセット信号aを送出する(ステップS2)。制御部5は始めの動作として必ずフラッシュメモリー6のアドレス00000hを読み出す(ステップS3)。
【0044】
アドレス00000hからのセクタには、コンフィグするFPGA番号が順に格納されている(ステップS4)。コンフィグ順番アドレスとして00000hを保持する。コンフィグ順番アドレスはALL“1”でないため(ステップS5がNO)、アドレスからFPGA番号を取得する(ステップS6)。次に、この番号をメモリーアドレスとして、FPGAデータ先頭アドレスを取得する(ステップS19)。ここで、先頭アドレスがALL“1”であれば(ステップS7がYES)、初期設定が行われていないため、CPU2ヘ「コンフィグレーション異常終了」として通知し(ステップS16)、コンフィグレーション作業を終了する(ステップS17)。
【0045】
次に、先頭アドレスがALL“1”でなければ(ステップS7がNO)、先頭アドレスに1を加算し(ステップS8)、データが格納されている次のアドレスを指し示す。このアドレスはALL“1”でないため(ステップS9がNO)、FPGAデータを取得して(ステップS10)、コンフィグレーションバス11ヘ転送する(ステップS11)。さらに、メモリーアドレスに1を加算して次のFPGAデータを取得する(ステップS12)。この動作をデータがALL“1”となる(ステップS7がYES)まで繰り返して、すべてのデータをコンフィグレーションバス11に転送する。
【0046】
ALL“1”はデータの最後を示しているため、制御部5はコンフィグレーションデータの転送が終了したと認識して、コンフィグレーション順番アドレスに1を加算して(ステップS18)、2番目のFPGA番号を取得する(ステップS6)。この動作を、FPGA番号がALL“1”になる(ステップS5がYES)まで繰り返す。コンフィグレーションデータがすべて転送し終った後は、すべてのFPGA21〜2nから、コンフィグレーション完了通知が発行される(ステップS13がYES)まで待つ。
【0047】
完了通知が発行された場合(ステップS13がYES)は、コンフィグレーション正常終了であるため、リセット信号送出解除して(ステップS15)、処理を終了する(ステップS17)。完了通知がタイムアウトした場合(ステップS14がYES)は、CPU2ヘ「コンフィグレーション異常終了」として通知し(ステップS16)、処理を終了する(ステップS17)。
【0048】
次に、図12によって、FPGAコンフィグレーションデータをダウンロードする場合の動作を説明する。図12において、CPU2からFPGAデータをダウンロードするには、CPU2が始めにコンフィグレーション制御部5に対して、ダウンロード開始指示を行う(ステップS21)。その後、CPU2は図8に示したFPGAデータをコンフィグレーション制御部5に転送していくが、このとき制御部5はフラッシュメモリー6ヘの書き込み手順を実行しながら、転送されたデータをメモリーに書き込んでいくため、CPU2は制御部5のステータスを確認しながらデータを転送していく。
【0049】
制御部5は転送されたデータからFPGA番号を取得する(ステップS22)。このFPGA番号は、フラッシュメモリー6の読出しアドレスとして置き替わり(ステップS23)、コンフィグレーション制御部5はこのアドレスを基にFPGAデータを、格納するセクタの先頭アドレスを取得する(ステップS24)。次に、先頭アドレスを読出してメモリーアドレスとして置き換える(ステップS25)。先頭アドレスがALL“1”の場合(ステップS26がYES)は、初期設定が不正であるため、CPU2に通知して(ステップS43)、ダウンロード処理を中断する(ステップS44)。
【0050】
続いて、先頭アドレスがALL“1”でない場合(ステップS26がNO)は、転送データからデータ長を取得する(ステップS27)。このデータ長からデータを書き込む領域分のセクタ数を、後に行うイレーズ処理のために計算しておく(ステップS28)。次に、転送データからダウンロードデータのバージョン番号を取得し(ステップS29)、メモリーに先にダウンロードされているバージョン番号と比較する(ステップS30,S31)。
【0051】
同じバージョンであった場合(ステップS32がYES)は、ダウンロードの必要がないためCPU2に通知して(ステップS43)、ダウンロードを中断する(ステップS44)。バージョンが異なる場合(ステップS32がNO)は、前に計算しておいたセクタをイレーズして(ステップS33)、新バージョン番号をメモリーの先頭アドレスに書き込み(ステップS34)、メモリーアドレスを更新する(ステップS35)。
【0052】
転送データからFPGAデータを取得して(ステップS36)、CRCを計算後(ステップS37)、データをメモリーに書き込む(ステップS38)。この処理を、ALL“1”のデータを取得する(ステップS39がYES)まで繰り返す。ALL“1”でない場合(ステップS39がNO)は、メモリーアドレスに1を加算して(ステップS40)、ステップS36に戻る。ALL“1”はデータの最後を示しているため、転送されるCRC値を取得し(ステップS41)、計算結果と比較する。一致した場合(ステップS42がYES)は、正常にダウンロードが終了する(ステップS44)。
【0053】
【発明の効果】
以上説明したように本発明によれば、コンフィグレーション制御されるFPGAがシステムバス等を収容している場合は、リセット信号をバススイッチのイネーブル信号として使用して、バスから分離することによってシステムの連続可用性を実現させるという効果がある。また、コンフィグレーションデータのフラッシュメモリーヘの格納場所や、書き込み手順をCPUが管理する必要がない効率よい管理方法が得られ、機能変更の容易性、信頼性を実現できるという効果もある。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】コンフィグレーションバスの形態の例を示すブロック図である。
【図3】コンフィグレーションバスの形態の他の例を示すブロック図である。
【図4】コンフィグレーションリセット制御の形態の例を示すブロック図である。
【図5】コンフィグレーションリセット制御のタイミングチャートである。
【図6】フラッシュメモリーのセクタの使用例の説明図である。
【図7】コンフィグレーションの順番制御の例の説明図である。
【図8】FPGAデータフォーマットの例の説明図である。
【図9】コンフィグレーションデータのダウンロード方法の例の説明図である。
【図10】コンフィグレーション制御部の内部機能ブロック図である。
【図11】コンフィグレーション動作のフローチャートである。
【図12】ダウンロード動作のフローチャートである。
【図13】従来のコンフィグレーション制御装置の例を示すブロック図である。
【図14】従来のコンフィグレーション制御装置の他の例を示すブロック図である。
【図15】従来のコンフィグレーション制御装置のさらに他の例を示すブロック図である。
【符号の説明】
1 シリアルポート
2 CPU
3 メモリー
4 バスブリッジ
5 コンフィグレーション制御部
6 フラッシュメモリー
7 ローカルバス
8 システムバス
9,10 バスブリッジ
11 コンフィグレーションバス
21〜2n FPGA[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing system, and more particularly to a configuration control method in an information processing system using an FPGA (field programmable gate array).
[0002]
[Prior art]
FPGA (Field Programmable Gate Array) is a kind of gate array and is widely used in information processing systems and communication systems as hardware with high versatility because it is rewritten in the field. Since the FPGA can manage input / output terminals and internal functional circuits as data files, updating a data file is equivalent to updating hardware. Since the data file is externally written to the FPGA as configuration data, the function of the system can be easily changed by reconfiguring the FPGA with updated data.
[0003]
In recent years, systems have been required to have reliability, continuous availability, and ease of function change. To meet this demand, for example, FPGA configuration control methods as shown in FIGS. 13 to 15 have been proposed. Referring to FIG. 13, the
[0004]
During this time, the function of transferring the hardware function data from the
[0005]
Referring to FIG. 14, the
[0006]
If the configuration of the
[0007]
Referring to FIG. 15, a plurality of
[0008]
[Problems to be solved by the invention]
In recent years, high-speed, large-capacity FPGAs have become widespread, and high-speed operation and high-integration processing that could not be realized by conventional ASICs (dedicated large-scale integrated circuits) can now be realized by FPGAs. As a result, systems using a large number of high-speed, large-capacity FPGAs have been developed.
[0009]
On the other hand, in recent communication systems, systems required by users have been diversified, and shortening of a hardware development period is indispensable in order to respond quickly. In response to this, a system required by a user can be provided in a short period of time by designing an apparatus so that functions can be easily changed using an FPGA. However, the FPGA requires a configuration process as an initial setting, but the circuit for this is not specialized for the device, and needs to be scalable and small.
[0010]
The configuration data requires that software for updating be treated as a data file. Therefore, the configuration circuit should be located under the CPU, and the circuit needs to consider the load on the CPU. That is, the configuration operation itself of the FPGA should be entrusted to the circuit so as not to impair the operation of the CPU that manages the system.
[0011]
In addition, by using a large number of large-scale FPGAs, the configuration data capacity becomes large, and the effect of the time spent for data download on the startup time of the apparatus cannot be ignored. Furthermore, when the configuration processing is in an abnormal state, it is also important that the countermeasure can be executed reliably. In addition, the configuration data management method must be able to cope with extensibility. In the configuration method, it is necessary to consider ensuring system reliability and continuous availability.
[0012]
In the conventional examples shown in FIGS. 13 to 15, there are some problems to realize these. The conventional example shown in FIG. 13 has a problem that the configuration data must be stored in the
[0013]
The conventional example shown in FIG. 14 has a problem that the
[0014]
There are few problems when using small-scale FPGAs, but there is a problem that memory mapping cannot be easily changed when using many large-capacity FPGAs. In addition, there is a problem that the software cannot be used.
[0015]
The configuration should be managed and executed as hardware-specific, and the management of the CPU like an application program tends to be complicated. Further, when the configuration bus becomes abnormal, the CPU does not operate normally, and when the CPU performs another control, the influence is caused. Furthermore, rewriting to FROM cannot be performed. That is, it lacks reliability. Furthermore, since the CPU must execute a procedure for writing to the FROM, it is difficult to divert the software.
[0016]
In the conventional example shown in FIG. 15, the configuration data is downloaded using a serial cable, and in a large-scale FPGA, the data transfer capacity is large.
[0017]
An object of the present invention is to provide a small-scale FPGA configuration circuit having expandability and versatility, to facilitate management of CPU configuration data, and to improve system reliability, continuous availability, and ease of function change. An object of the present invention is to provide an information processing system having a realized configuration control device.
[0018]
[Means for Solving the Problems]
According to the present invention, there is provided an information processing system including a CPU, a memory, a bus under the CPU and the memory, and configuration control means arranged on the bus and configured to control the configuration of the FPGA. And an information processing system including a bus switch for disconnecting the FPGA from the bus from the start to the end of the configuration control.
[0019]
The configuration control means generates a control signal for controlling the bus switch to an enabled state from the start to the end of the configuration control. The configuration control means includes a flash memory which stores configuration data in advance and also stores an address indicating a storage position of the storage data. The configuration control of the FPGA is performed while accessing the address stored in the memory and reading the configuration data from the flash memory. Further, the configuration control means has a serial port, and stores configuration data in the flash memory while inputting configuration data through the serial port.
[0020]
The operation of the present invention is as follows. While the configuration control device controls the operation of the configuration of the FPGA, the bus under the control of the CPU and the FPGA are separated by a bus switch. As a result, not only the load on the CPU can be reduced, but also by applying a general-purpose system bus interface, it is possible to expand the device and reduce the size of the circuit.
[0021]
Also, by storing the configuration data in advance in the flash memory together with the address indicating the storage location, the configuration control device automatically responds to the power input of the system, and the address of the flash memory is automatically stored. If the access to the part is started, there is also an effect that the operation of the configuration is automatically controlled without the intervention of the CPU and completely independently of the processing of the CPU.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram of an information processing system showing an embodiment of the present invention, and the same parts as those in FIGS. 1, this embodiment includes a
[0023]
Further, it includes a
[0024]
When the configuration of the
[0025]
In order to prevent the
[0026]
2 and 3 show a configuration in which the
[0027]
There are two types of daisy chains. In FIG. 2, the
[0028]
When the configuration of the
[0029]
In FIG. 3, the
[0030]
FIG. 4 shows a form of reset control. In FIG. 4, after the configuration of the
[0031]
That is, the configuration starts at the timing t0, the configuration of the
[0032]
FIG. 6 shows an application example of a sector which is an architecture of the
[0033]
FIG. 7 shows a control method in the configuration order (number). In FIG. 7, the
[0034]
When all the FPGA data A is configured, the
[0035]
FIG. 8 shows an FPGA data format. 8, the FPGA data format managed by the software includes an
[0036]
FIG. 9 shows a configuration data download method. In FIG. 9, for example, the FPGA number written in the
[0037]
As a result, the software can manage the configuration data only by the FPGA number and the version number without being aware of the memory address and the configuration order (number). Further, the circuit of the
[0038]
The
[0039]
FIG. 10 shows an internal configuration of the
[0040]
Among them, the system
[0041]
The configuration
[0042]
The operation of the embodiment of the present invention will be described with reference to the flowcharts of FIGS.
[0043]
First, an operation when configuring the
[0044]
FPGA numbers to be configured are stored in the sector starting from the
[0045]
Next, if the head address is not ALL “1” (NO in step S7), 1 is added to the head address (step S8), and the next address where data is stored is indicated. Since this address is not ALL "1" (NO in step S9), the FPGA data is acquired (step S10) and transferred to the configuration bus 11 (step S11). Further, 1 is added to the memory address to acquire the next FPGA data (step S12). This operation is repeated until the data becomes ALL “1” (Step S7: YES), and all data is transferred to the
[0046]
Since ALL “1” indicates the end of the data, the
[0047]
If a completion notification has been issued (YES in step S13), the configuration is normally terminated, so the reset signal transmission is canceled (step S15), and the process ends (step S17). If the completion notification has timed out (YES in step S14), the
[0048]
Next, an operation when downloading FPGA configuration data will be described with reference to FIG. In FIG. 12, to download FPGA data from the
[0049]
The
[0050]
Subsequently, when the head address is not ALL “1” (NO in step S26), the data length is obtained from the transfer data (step S27). From this data length, the number of sectors for the area to which data is to be written is calculated for an erasing process to be performed later (step S28). Next, the version number of the download data is obtained from the transfer data (step S29), and is compared with the version number previously downloaded to the memory (steps S30, S31).
[0051]
If the versions are the same (YES in step S32), the
[0052]
FPGA data is obtained from the transfer data (step S36), and after calculating the CRC (step S37), the data is written to the memory (step S38). This process is repeated until data of ALL “1” is obtained (YES in step S39). If it is not ALL “1” (NO in step S39), 1 is added to the memory address (step S40), and the process returns to step S36. Since ALL "1" indicates the end of the data, the CRC value to be transferred is obtained (step S41) and compared with the calculation result. If they match (YES in step S42), the download ends normally (step S44).
[0053]
【The invention's effect】
As described above, according to the present invention, when an FPGA to be configuration-controlled accommodates a system bus or the like, a reset signal is used as an enable signal of a bus switch and separated from the bus, thereby enabling system configuration. This has the effect of realizing continuous availability. In addition, an efficient management method in which the CPU does not need to manage the storage location of the configuration data in the flash memory and the writing procedure is obtained, and there is an effect that the function can be easily changed and the reliability can be realized.
[Brief description of the drawings]
FIG. 1 is a block diagram of an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an example of a configuration bus.
FIG. 3 is a block diagram showing another example of a configuration bus.
FIG. 4 is a block diagram illustrating an example of a form of configuration reset control.
FIG. 5 is a timing chart of configuration reset control.
FIG. 6 is an explanatory diagram of a usage example of a sector of the flash memory.
FIG. 7 is an explanatory diagram of an example of configuration order control.
FIG. 8 is an explanatory diagram of an example of an FPGA data format.
FIG. 9 is an explanatory diagram of an example of a configuration data download method.
FIG. 10 is an internal functional block diagram of a configuration control unit.
FIG. 11 is a flowchart of a configuration operation.
FIG. 12 is a flowchart of a download operation.
FIG. 13 is a block diagram illustrating an example of a conventional configuration control device.
FIG. 14 is a block diagram illustrating another example of a conventional configuration control device.
FIG. 15 is a block diagram showing still another example of a conventional configuration control device.
[Explanation of symbols]
1 serial port
2 CPU
3 memory
4 Bus bridge
5 Configuration controller
6. Flash memory
7 Local bus
8 System bus
9,10 bus bridge
11 Configuration bus
21-2n FPGA
Claims (4)
前記コンフィグレーション制御の開始から終了までの間、前記FPGAを前記バスから切離すためのバススイッチを含むことを特徴とする情報処理システム。An information processing system comprising a CPU, a memory, a bus under the CPU and the memory, and configuration control means arranged on the bus and configured to control the configuration of an FPGA (field programmable gate array). ,
An information processing system comprising a bus switch for disconnecting the FPGA from the bus from the start to the end of the configuration control.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002179258A JP2004021867A (en) | 2002-06-20 | 2002-06-20 | Information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002179258A JP2004021867A (en) | 2002-06-20 | 2002-06-20 | Information processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004021867A true JP2004021867A (en) | 2004-01-22 |
JP2004021867A5 JP2004021867A5 (en) | 2005-10-06 |
Family
ID=31176689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002179258A Pending JP2004021867A (en) | 2002-06-20 | 2002-06-20 | Information processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004021867A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058288A (en) * | 2005-08-22 | 2007-03-08 | Hitachi Kokusai Electric Inc | Information processing apparatus |
JP2008165285A (en) * | 2006-12-27 | 2008-07-17 | High Energy Accelerator Research Organization | Data collecting device for neutron measurement and program download method |
JP2009301339A (en) * | 2008-06-13 | 2009-12-24 | Canon Inc | Bus control device |
US7795908B2 (en) | 2008-10-27 | 2010-09-14 | Fuji Xerox Co., Ltd. | Electronic device, method for configuring reprogrammable logic element, computer-readable medium, computer data signal and image forming apparatus |
US7857114B2 (en) | 2008-07-07 | 2010-12-28 | Glory, Ltd. | Banknote discrimination apparatus and banknote discrimination method |
JP2012230529A (en) * | 2011-04-26 | 2012-11-22 | Mitsubishi Electric Corp | Remote maintenance system of fpga loaded device |
JP2013038741A (en) * | 2011-08-11 | 2013-02-21 | Nippon Signal Co Ltd:The | Configuration device and configuration method |
JP2014071649A (en) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | Reconfiguration device, and reconfiguration method |
US9870148B2 (en) | 2013-06-12 | 2018-01-16 | Nec Corporation | Configuration control system and configuration control method |
WO2018131065A1 (en) * | 2017-01-10 | 2018-07-19 | 株式会社日立製作所 | Reconfigurable device and electronic device using same |
-
2002
- 2002-06-20 JP JP2002179258A patent/JP2004021867A/en active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058288A (en) * | 2005-08-22 | 2007-03-08 | Hitachi Kokusai Electric Inc | Information processing apparatus |
JP2008165285A (en) * | 2006-12-27 | 2008-07-17 | High Energy Accelerator Research Organization | Data collecting device for neutron measurement and program download method |
JP4538639B2 (en) * | 2006-12-27 | 2010-09-08 | 大学共同利用機関法人 高エネルギー加速器研究機構 | Data collection device and program download method for neutron measurement |
JP2009301339A (en) * | 2008-06-13 | 2009-12-24 | Canon Inc | Bus control device |
US7857114B2 (en) | 2008-07-07 | 2010-12-28 | Glory, Ltd. | Banknote discrimination apparatus and banknote discrimination method |
US7795908B2 (en) | 2008-10-27 | 2010-09-14 | Fuji Xerox Co., Ltd. | Electronic device, method for configuring reprogrammable logic element, computer-readable medium, computer data signal and image forming apparatus |
JP2012230529A (en) * | 2011-04-26 | 2012-11-22 | Mitsubishi Electric Corp | Remote maintenance system of fpga loaded device |
JP2013038741A (en) * | 2011-08-11 | 2013-02-21 | Nippon Signal Co Ltd:The | Configuration device and configuration method |
JP2014071649A (en) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | Reconfiguration device, and reconfiguration method |
US9870148B2 (en) | 2013-06-12 | 2018-01-16 | Nec Corporation | Configuration control system and configuration control method |
WO2018131065A1 (en) * | 2017-01-10 | 2018-07-19 | 株式会社日立製作所 | Reconfigurable device and electronic device using same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5173818B2 (en) | Initializing flash storage via embedded controller | |
JP4527348B2 (en) | Interface device, method of updating firmware in interface device, and program thereof | |
JP4828816B2 (en) | Memory card, semiconductor device, and memory card control method | |
KR20070077463A (en) | Method of system booting with a direct memory access in a new memory architecture | |
CN110941444B (en) | Upgrade configuration logic circuit, method and system and programmable logic device | |
JP2004021867A (en) | Information processing system | |
KR19990011955A (en) | PCI bridge | |
US7644247B2 (en) | System controller for flash memory | |
JP4013040B2 (en) | Download apparatus and download method | |
JPH1063442A (en) | Semiconductor disk device | |
KR100503484B1 (en) | Image forming device | |
JP2907808B1 (en) | Flash memory emulation device and debug system using the same | |
JP4127307B2 (en) | Data storage device, data processing system, data processing method, and data processing device | |
JP3635903B2 (en) | Programmable controller | |
JP4042940B2 (en) | Microcontroller with on-chip programming function | |
JP2853593B2 (en) | Download device | |
CN101526910A (en) | BootRom backup method and device | |
EP1804166A2 (en) | Memory device and information processing apparatus | |
JPH1020906A (en) | Data processor and data processing method | |
JP2006107049A (en) | Semiconductor device and memory card provided with the semiconductor device | |
JP3841056B2 (en) | Computer system | |
JP2011108161A (en) | Information processor | |
JPH11338687A (en) | Program rewriting system | |
JPH06348503A (en) | Device with master and slave control system and its control method | |
CN113590150A (en) | Memory bank control method, program upgrading method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Effective date: 20050513 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A621 | Written request for application examination |
Effective date: 20050513 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Effective date: 20071029 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Effective date: 20071113 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080311 |