JP2013257640A - コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム - Google Patents

コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム Download PDF

Info

Publication number
JP2013257640A
JP2013257640A JP2012132064A JP2012132064A JP2013257640A JP 2013257640 A JP2013257640 A JP 2013257640A JP 2012132064 A JP2012132064 A JP 2012132064A JP 2012132064 A JP2012132064 A JP 2012132064A JP 2013257640 A JP2013257640 A JP 2013257640A
Authority
JP
Japan
Prior art keywords
data
configuration
circuit data
rom
circuit
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
Application number
JP2012132064A
Other languages
English (en)
Inventor
Katsuyuki Okabe
克行 岡部
Koichi Kinoshita
浩一 木下
Kenichi Oyama
健一 大山
Haruhisa Fukano
晴久 深野
Yuji Shimada
裕二 島田
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 JP2012132064A priority Critical patent/JP2013257640A/ja
Priority to US13/875,700 priority patent/US20130332629A1/en
Publication of JP2013257640A publication Critical patent/JP2013257640A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】利用者の意図しない誤った回路データがポートに書き込まれてしまうことを防止すること。
【解決手段】パーシャルコンフィグレーションが可能なFPGA400のコンフィグレーションを制御するコンフィグレーション制御装置100において、正誤判定部103は、FPGA400の複数のポートのいずれかに展開される回路データが、所望の展開先ポートを指定された所望の回路データであるか否かを、展開される回路データがFPGA400に書き込まれる前に判定し、データストリーム制御部102は、正誤判定部103での判定結果に応じて、展開される回路データのFPGA400への書き込みをするか否かを制御する。
【選択図】図6

Description

本発明は、コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムに関する。
近年、FPGA(Field Programmable Gate Array)に代表される、多くの種類のプログラマブルデバイスが提供されている。論理回路を自由に設計できるFPGAを動作させるために、FPGAに回路データを書き込む「コンフィグレーション」と呼ばれる初期設定がFPGAに対して行われる。
また、FPGAにおいて回路データを書き込み可能な領域(以下では「FPGA領域」と呼ばれることがある)を複数に分割し、各領域毎に互いに異なる回路を組み込む「パーシャルコンフィグレーション」と呼ばれる技術がある。分割された各領域は「ポート(port)」と呼ばれることがある。
パーシャルコンフィグレーションが知られる前は、複数種類の回路が組み込まれたFPGAにおいては、一つの回路を変更する場合でもFPGA全体をコンフィグレーションしていた。このため、回路の変更にあたっては、FPGAのすべての回線接続を一旦切断してFPGAを非運用状態にしていた。
これに対し、パーシャルコンフィグレーションが可能になったことにより、任意のポートの回路を変更したい場合、他のポートへ影響を与えることなく、その任意のポートの回路変更が可能となった。すなわち、パーシャルコンフィグレーションを用いると、任意のポートの回路を変更したい場合、その任意のポートのみコンフィグレーションが行える。よって、パーシャルコンフィグレーションを用いると、FPGAにおいて回路変更対象のポートのみを非運用状態とすればよく、他のポートの運用状態を維持できる。
パーシャルコンフィグレーションでは、複数種類の回路にそれぞれ対応した複数の回路データが複数のポート毎に用意される。また、これら複数の回路データは、FPGAと同一基板上に装着される、例えばフラッシュメモリ等のROMに予め格納される。このため、回路データは「ROMデータ」と呼ばれることがある。
また、従来、ROMへのデータ格納時のエラー等によるROMデータの破壊に備え、コンフィグレーション前後においてCRC等によるデータチェックを行ってROMデータが正常か否か検証することが一般に行われている。
特開2008−236488号公報
図1に、パーシャルコンフィグレーションにおけるFPGA領域の一例を示す。図1には、FPGA領域をポート1〜4の4つの領域に分割した場合を示す。よって、図1に示すFPGAでは、ポート1〜4の各ポート毎にパーシャルコンフィグレーションを行うことができる。
図2に、パーシャルコンフィグレーション用のROMデータ領域マップの一例を示す。ポート1〜4の4つのポートに対しそれぞれ異なる回路(A回路〜D回路)を用意する場合、図2に示すように、16種類のROMデータがROMのアドレスに対応させてROMに格納される。すなわち、A回路をポート1〜4の4つのポートへコンフィグレーションするには、A回路について、各ポートにそれぞれ対応した4種類のROMデータが用意される。B〜D回路についても同様である。
図3に、コンフィグレーション構成の一例を示す。図3では、ポート1にA回路データを、ポート2にB回路データを、ポート3にC回路データを、ポート4にD回路データをそれぞれコンフィグレーションする場合を示す。
FPGAの利用者(以下では「利用者」と省略して呼ぶ)は、実現したい機能に基づいて、各ポートへのコンフィグレーション対象データをROMのアドレスを用いて指定する。これにより、利用者は、任意のポートに対するコンフィグレーションの実行を指示する。この指示に従って、指定されたアドレスに格納されているROMデータがFPGAの各ポートに展開される。各ポートにそれぞれ対応した各ROMデータは、固有の位置情報を有している。固有の位置情報は、例えば、展開先のポート番号、または、展開先の領域を示すアドレス等である。よって、ポート1用のA回路データはFPGAのポート1に、ポート2用のB回路データはFPGAのポート2に展開されコンフィグレーションされる。同様に、ポート3用のC回路データはFPGAのポート3に、ポート4用のD回路データはFPGAのポート4に展開されコンフィグレーションされる。
ここで、ROMへの回路データの格納は、利用者の人為的な操作によって行われる。よって、利用者は、ROMへ回路データを格納する際に、格納したいアドレスに別のポート用の回路データを誤って書き込んでしまう可能性がある。すなわち、各ポート用の回路データと、ROMのアドレスとの対応関係が、利用者の意図とは異なるものになってしまう可能性がある。
上述したCRC等によるデータチェックは、ROMデータが壊れているか否かを検証するものである。よって、このようなデータチェックでは、誤ったアドレスに書き込まれたデータについては、データ自体が壊れていなければ、エラーと判断されない。
図4に、ROMデータの格納の一例を示す。ここでは、ROMにおける正しい格納状態として、ポート3用のB回路データがアドレス0x6000〜0x6FFFに書き込まれ、ポート4用のB回路データがアドレス0x7000〜0x7FFFに書き込まれることを想定する(図4左図)。これに対し、利用者は、ポート4用のB回路データをアドレス0x6000〜0x6FFFに誤って書き込み、ポート3用のB回路データがアドレス0x7000〜0x7FFFに誤って書き込んでしまったとする(図4右図)。
図4右図に示すような誤った書き込みが行われた場合の、ROMデータの展開の一例を図5に示す。図5に示すように、利用者は、ポート3の回路をC回路からB回路に変更したい場合、ROMは正しい格納状態にあると思い込み、アドレス0x6000〜0x6FFFを指定する。しかし、このアドレス0x6000〜0x6FFFには図4右図に示すようにポート4用のB回路データが格納されている。よって、このアドレス指定によるコンフィグレーションがなされると、ポート4用のB回路データが有する固有の位置情報に従って、ポート4用のB回路データがFPGAのポート4に展開される。つまり、ポート4については、利用者が回路の変更を意図しないにもかかわらず、すなわち、変更予定がないのに、D回路からB回路に変更されてしまう。一方で、ポート3については、利用者がC回路からB回路に変更したいにもかかわらず、すなわち、変更予定があるのに、C回路のままとなる。利用者は、ROMは正しい格納状態にあると思い込んでいるため、図5に示すコンフィグレーションを行うに際し、ポート3を非運用状態にする一方で、ポート4の運用状態を継続する。よって、ポート4については、運用状態にあるままコンフィグレーションが実行されてしまう。このため、ポート4の回路データは破壊されてしまい、ポート4において実現されていた機能が中断されてしまう。例えば、ポート4の回路により、WDM、SONETまたイーサネット(登録商標)等の通信機能が実現される場合には、コンフィグレーションが、通信回線の切断等の通信異常の発生の原因となって、回線サービスに大きな影響を与えてしまう。
開示の技術は、上記に鑑みてなされたものであって、利用者の意図しない誤った回路データがFPGAに書き込まれてしまうことを防止できるコンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムを提供することを目的とする。
開示の態様のコンフィグレーション制御装置は、パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御装置において、前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定する判定部と、前記判定部での判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御するデータ制御部と、を具備する。
開示の態様によれば、利用者の意図しない誤った回路データがFPGAに書き込まれてしまうことを防止できる。
図1は、FPGA領域の一例を示す図である。 図2は、ROMデータ領域マップの一例を示す図である。 図3は、コンフィグレーション構成の一例を示す図である。 図4は、ROMデータの格納の一例を示す図である。 図5は、ROMデータの展開の一例を示す図である。 図6は、一実施例のコンフィグレーション制御装置の構成例を示すブロック図である。 図7は、一実施例のROMデータ管理情報の一例を示す図である。 図8は、一実施例のFPGAの領域分割の一例を示す図である。 図9は、一実施例のFPGAの一例を示す機能ブロック図である。 図10は、一実施例のデータストリーム制御部の構成例を示すブロック図である。 図11は、一実施例のコンフィグレーション制御装置の動作の説明に供する図である。
以下に、本願の開示するコンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示するコンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムが限定されるものではない。また、実施例において同一の機能を有する構成には同一の符号を付し、重複する説明は省略される。
[実施例]
図6は、一実施例のコンフィグレーション制御装置の構成例を示すブロック図である。図6において、コンフィグレーション制御装置100は、アドレス制御部101と、データストリーム制御部102と、正誤判定部103とを有する。
コンフィグレーション制御装置100は、監視装置200、ROM300及びFPGA400と接続されて使用される。
FPGA400は、パーシャルコンフィグレーションが可能なFPGAである。すなわち、FPGA400は複数に分割されたFPGA領域を有する。
ROM300には、予め利用者によって、各ポート毎及び各回路毎の複数種類のROMデータがROM300のアドレスに対応させて格納されている。例えばFPGA400がポート1〜4の4つのポートを有する場合、上記図2に示すように、16種類のROMデータがROMのアドレスに対応させてROM300に格納されている。
また、本実施例のROMデータは、図7に示すような「ROMデータ管理情報」を有する。すなわち、本実施例のROMデータは、ROMデータ管理情報と、回路データとを含む。
ROMデータ管理情報は、例えば図7に示すように、回路種別と、ポート番号と、変更版数とを含む。「回路種別」は、回路データの種別を示すものである。「ポート番号」は、ROMデータの展開先領域を示すものである。「変更版数」は、同一種別の回路データの版数を示すものである。
例えば上記図5に示す例では、アドレス0x6000〜0x6FFFに格納された、ポート4用のB回路データは、回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報を有する。また、アドレス0x7000〜0x7FFFに格納された、ポート3用のB回路データは、回路種別「B」,ポート番号「3」,変更版数「YY」のROMデータ管理情報を有する。ここで、ROM300には、上記図4右図に示すような誤った書き込みが行われているとする。すなわち、本来アドレス0x6000〜0x6FFFに格納されるべきポート3用のROMデータが誤って0x7000〜0x7FFFに格納されている。また、本来アドレス0x7000〜0x7FFFに格納されるべきポート4用のROMデータが誤って0x6000〜0x6FFFに格納されている。
なお、ROM300は、例えばフラッシュメモリ等の書き換え可能なメモリである。
監視装置200は、利用者がFPGA400の各ポートに対してコンフィグレーションを行う場合に、所望のポートに対するコンフィグレーションの実行を指示するためのものである。利用者は、所望のポートと、その所望のポートに展開したい所望の回路種別とを監視装置200を用いて指定することにより、コンフィグレーションの実行を指示する。所望のポートは、例えばポート1〜4のいずれか一つのポートである。また、所望の回路種別は、例えばA回路〜D回路のいずれか一つの回路である。
なお、コンフィグレーション制御装置100、ROM300及びFPGA400は同一基板上に配置される。
監視装置200は、利用者からコンフィグレーションの実行指示を受け付けると、コンフィグレーション開始要求をアドレス制御部101に出力する。このコンフィグレーション開始要求には、所望のポートと所望の回路種別との組み合わせを示すモード情報、及び、コンフィグレーション開始トリガが含まれる。
また、監視装置200は、ROM300に格納されている各ROMデータのROMデータ管理情報を記憶している。監視装置200は、利用者からコンフィグレーションの実行指示を受け付けると、所望のポートと所望の回路種別との組み合わせに対応するROMデータ管理情報を正誤判定部103に出力する。
例えば利用者が所望のポートをポート3、所望の回路種別をB回路と指定すると、監視装置200は、回路種別「B」,ポート番号「3」,変更版数「YY」のROMデータ管理情報を正誤判定部103に出力する。
アドレス制御部101は、上記図2に示すようなROMデータ領域マップを有する。アドレス制御部101は、入力されたコンフィグレーション開始トリガに従って、入力されたモード情報に基づいてROMデータ領域マップを参照する。そして、アドレス制御部101は、ROM300に格納されているROMデータのうち、所望のポート及び所望の回路種別に対応する特定のROMデータの先頭アドレスを判別する。
例えば所望のポートがポート3、所望の回路種別がB回路である場合、アドレス制御部101は、上記図2に示すROMデータ領域マップにおいて、ポート3用のB回路データの先頭アドレスを「0x6000」と判別する。
そして、アドレス制御部101は、判別した先頭アドレスを初期値として、指定アドレスを順次インクリメントしながら、リード信号及び指定アドレスを読み出し要求としてROM300に出力する。
また、アドレス制御部101は、データストリーム制御部102からFPGA400へのデータの出力を制御するための「コンフィグレーション停止信号」をデータストリーム制御部102に出力する。コンフィグレーション停止信号は通常イネーブル状態にある。アドレス制御部101は、監視装置200からコンフィグレーション開始トリガが入力されると、コンフィグレーション停止信号をディセーブル状態にする。
ROM300は、入力される読み出し要求に従って、ROMデータのうち指定アドレスに対応するデータをデータストリーム制御部102に出力する。
データストリーム制御部102は、アドレス制御部101から入力されるコンフィグレーション停止信号に従って、FPGA400へのデータ出力を制御する。すなわち、コンフィグレーション停止信号が「イネーブル」のときは、データストリーム制御部102は、ROM300から入力されるデータのFPGA400への出力を停止する。一方で、コンフィグレーション停止信号が「ディセーブル」のときは、データストリーム制御部102は、ROM300から入力されるデータをコンフィグレーションデータストリームとしてFPGA400へ出力する。
また、データストリーム制御部102は、ROMデータのうちROMデータ管理情報をFPGA400に出力した時点で、アドレス制御部101に対し、コンフィグレーション停止信号をイネーブル状態にするとともに、指定アドレスのインクリメントを一旦停止するように要求する。この要求に従って、アドレス制御部101は、コンフィグレーション停止信号をイネーブル状態にするとともに、指定アドレスのインクリメントを一旦停止する。指定アドレスのインクリメントの停止により、ROM300からデータストリーム制御部102へのデータ出力も停止する。つまり、ROMデータのうち、ROMデータ管理情報がFPGA400に出力された時点で、回路データがFPGA400に出力される前に、データストリーム制御部102からFPGA400へのデータ出力が一旦停止する。
ここで、ROMデータのフレーム構成について説明する。図8は、一実施例のFPGA400の領域分割の一例を示す図である。
本実施例では、図8に示すように、FPGA400内の領域は、ポート1〜4の4つのコンフィグレーション対象領域と、インタフェース部5の1つのコンフィグレーション対象外領域とに分けられる。また、ポート1〜4の各コンフィグレーション対象領域はそれぞれN個のフレームで構成される。1個のフレームはパーシャルコンフィグレーションを行なえる最小回路単位である。各ポートに大きな回路が構成される場合は、最小回路単位であるフレームが複数個連結してコンフィグレーションが実行される。
また、本実施例では、1つのコンフィグレーション対象領域は、先頭フレーム群と、残フレーム群とに分けられる。例えば、ポート1を構成するN個のフレームは、第一〜第三フレームからなる先頭フレーム群11と、第四〜第Nフレームからなる残フレーム群12とに分けられる。同様に、ポート2を構成するN個のフレームは先頭フレーム群21と残フレーム群22とに分けられ、ポート3を構成するN個のフレームは先頭フレーム群31と残フレーム群32とに分けられ、ポート4を構成するN個のフレームは先頭フレーム群41と残フレーム群42とに分けられる。
先頭フレーム群11,21,31,41には、ROMデータのうちのROMデータ管理情報が展開される。すなわち、ポート1の先頭フレーム群11には、ポート番号「1」を有するROMデータ管理情報が展開される。同様に、ポート2の先頭フレーム群21には、ポート番号「2」を有するROMデータ管理情報が展開される。また、ポート3の先頭フレーム群31には、ポート番号「3」を有するROMデータ管理情報が展開される。また、ポート4の先頭フレーム群41には、ポート番号「4」を有するROMデータ管理情報が展開される。つまり、先頭フレーム群には、ROMデータのうちFPGA400の運用に影響を与えないROMデータ管理情報が展開される。一方で、残フレーム群12,22,32,42には、ROMデータのうちFPGA400の運用に影響を与える回路データが展開される。
例えば所望のポートがポート3、所望の回路種別がB回路である場合、上述したように、ポート3用のB回路データの先頭アドレスは「0x6000」と判別される。また、上述したように、ROM300のアドレス0x6000〜0x6FFFには、誤ってポート4用のROMデータが格納されている。よって、先頭フレーム群11,21,31,41のうち、先頭フレーム群41に回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報が展開される。
FPGA400において、ポート1〜4の各コンフィグレーション対象領域は、インタフェース部5を介して、データストリーム制御部102及び正誤判定部103と接続される。インタフェース部5は、正誤判定部103からのROMデータ管理情報読み出し要求に応じて、先頭フレーム群11,21,31,41のいずれかからROMデータ管理情報を読み出して正誤判定部103に出力する。
データストリーム制御部102は、先頭フレーム群のデータ、すなわち、ROMデータ管理情報をFPGA400にコンフィグレーションデータストリームとして出力した時点で、情報取得要求を正誤判定部103に出力する。データストリーム制御部102は、ROMデータ管理情報を展開した先頭フレーム群に対応するFPGA400内のアドレス(以下では「ROMデータ管理情報展開アドレス」と呼ばれることがある)を情報取得要求に含めて正誤判定部103に通知する。
正誤判定部103は、入力される情報取得要求に従って、ROMデータ管理情報読み出し要求をFPGA400に出力する。このROMデータ管理情報読み出し要求には、データストリーム制御部102から通知されたROMデータ管理情報展開アドレスが含まれる。
例えば上述したように、先頭フレーム群41に回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報が展開された場合、ROMデータ管理情報展開アドレスは、先頭フレーム群41に対応するアドレスとなる。
FPGA400は、入力されるROMデータ管理情報読み出し要求に従って、ROMデータ管理情報展開アドレスにあるROMデータ管理情報を読み出して正誤判定部103に出力する。
例えば上述したように、ROMデータ管理情報展開アドレスが先頭フレーム群41に対応するアドレスである場合、正誤判定部103には、回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報が出力される。
図9は、一実施例のFPGA400の一例を示す機能ブロック図である。図9には、ROMデータ管理情報の読み出しに関係する機能のみを図示する。
図9に示すように、ポート1〜4の各ポートの各先頭フレーム群11,21,31,41には、バッファとデコーダとを有する読み出し回路が構成される。また、インタフェース部5には、OR回路51が構成される。
デコーダ13,23,33,43は、ROMデータ管理情報読み出し要求に含まれるROMデータ管理情報展開アドレスをデコードして判定する。すなわち、デコーダ13は、入力されるROMデータ管理情報展開アドレスが先頭フレーム群11に対応するアドレスか否か判定する。同様に、入力されるROMデータ管理情報展開アドレスに対し、デコーダ23は先頭フレーム群21に対応するアドレスか否か判定し、デコーダ33は先頭フレーム群31に対応するアドレスか否か判定し、デコーダ43は先頭フレーム群41に対応するアドレスか否か判定する。
例えば、入力されるROMデータ管理情報展開アドレスが先頭フレーム群41に対応するアドレスである場合、デコーダ43はバッファ44に対して読み出し要求を出力する。
バッファ14,24,34,44は、デコーダ13,23,33,43から読み出し要求が入力された場合、対応するROMデータ管理情報を先頭フレーム群から読み出してOR回路51に出力する。
例えば、デコーダ43から読み出し要求を入力されたバッファ44は、先頭フレーム群41に展開されたROMデータ管理情報、すなわち、回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報を先頭フレーム群41から読み出してOR回路51に出力する。
バッファ14,24,34,44のいずれかが読み出したROMデータ管理情報は、OR回路51を介して、FPGA400から正誤判定部103に出力される。これにより、正誤判定部103は、ROMデータ管理情報がFPGA400の先頭フレーム群に展開された時点で、その展開されたROMデータ管理情報を取得することができる。
例えば、ROMデータ管理情報展開アドレスが先頭フレーム群41に対応するアドレスである場合、正誤判定部103は、FPGA400から、回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報を取得する。
正誤判定部103は、監視装置200から入力された第1のROMデータ管理情報と、FPGA400から取得した第2のROMデータ管理情報とを比較して正誤判定を行う。正誤判定部103は、判定結果をデータストリーム制御部102及び監視装置200に出力する。
例えば上述した例では、第1のROMデータ管理情報は回路種別「B」,ポート番号「3」,変更版数「YY」のROMデータ管理情報である。一方で、第2のROMデータ管理情報は回路種別「B」,ポート番号「4」,変更版数「XX」のROMデータ管理情報である。
このように第1のROMデータ管理情報と第2のROMデータ管理情報とが相違する場合、正誤判定部103は、判定結果を「誤」としてデータストリーム制御部102に通知する。一方で、第1のROMデータ管理情報と第2のROMデータ管理情報とが一致する場合、正誤判定部103は、判定結果を「正」としてデータストリーム制御部102及び監視装置200に通知する。
すなわち、上記図4右図に示すように、利用者が、ポート4用のB回路データをアドレス0x6000〜0x6FFFに誤って書き込み、ポート3用のB回路データがアドレス0x7000〜0x7FFFに誤って書き込んでしまった場合、すなわち、ROM300が誤った格納状態にある場合には、正誤判定部103での判定結果は「誤」になる。一方で、上記図4左図に示すように、ポート3用のB回路データがアドレス0x6000〜0x6FFFに書き込まれ、ポート4用のB回路データがアドレス0x7000〜0x7FFFに書き込まれた場合、すなわち、ROM300が正しい格納状態にある場合には、正誤判定部103での判定結果は「正」になる。
データストリーム制御部102は、判定結果が「正」のとき、アドレス制御部101に対しコンフィグレーション停止信号を再びディセーブル状態にするとともに、指定アドレスのインクリメントを再開するように要求する。この要求に従って、アドレス制御部101は、コンフィグレーション停止信号をディセーブル状態にするとともに、指定アドレスのインクリメントを再開する。よって、正誤判定部103での判定結果が「正」のときは、ROMデータのうち回路データがROMデータ管理情報に続いてROM300から読み出され、データストリーム制御部102を介してFPGA400にコンフィグレーションデータストリームとして出力される。よって、正誤判定部103での判定結果が「正」のときは、所望のポートの残フレーム群に回路データが展開されて、残フレーム群のコンフィグレーションが実行される。これにより、所望のポートのコンフィグレーションが正常終了する。
一方で、正誤判定部103は、判定結果が「誤」のときは、判定結果を「誤」としてデータストリーム制御部102及び監視装置200に通知するとともに、コンフィグレーションを強制的に終了させる。
なお、監視装置200に対し判定結果が「誤」と通知されると、利用者は、ROM300へROMデータを格納した際に、格納したいアドレスに別のポート用のROMデータを誤って書き込んでしまったと認識できる。そこで、利用者は、ROM300でのROMデータの格納状態を見直して、各ポート用のROMデータと、ROM300のアドレスとの対応関係が利用者の意図と一致するように、ROMデータの格納状態を修正することができる。
図10は、一実施例のデータストリーム制御部の構成例を示すブロック図である。図10において、データストリーム制御部102は、CRC演算部501と、エンドフレーム生成部502と、選択部503と、インタフェース部504とを有する。
CRC演算部501及び選択部503には、ROM300からROMデータが入力される。
CRC演算部501は、ROMデータのうち先頭フレーム群のデータ、すなわち、ROMデータ管理情報に対しCRC演算を行って、CRC演算値をエンドフレーム生成部502に出力する。
エンドフレーム生成部502は、CRC演算値を含むエンドフレームデータを生成し、生成したエンドフレームデータを選択部503に出力する。
選択部503は、ROMデータのうち先頭フレーム群のデータをインタフェース部504に出力する。また、選択部503は、ROMデータのうち残フレーム群のデータ、すなわち、回路データについては、正誤判定部103での判定結果に応じて、残フレーム群のデータまたはエンドフレームデータのいずれかを選択してインタフェース部504に出力する。すなわち、選択部503は、正誤判定部103での判定結果が「正」のときは、残フレーム群のデータを選択してインタフェース部504に出力する。一方で、選択部503は、正誤判定部103での判定結果が「誤」のときは、エンドフレームデータを選択してインタフェース部504に出力する。
インタフェース部504は、アドレス制御部101から入力されるコンフィグレーション停止信号がディセーブル状態にあるとき、選択部503で選択されたデータをコンフィグレーションデータストリームとしてFPGA400に出力する。
図11は、一実施例のコンフィグレーション制御装置の動作の説明に供する図である。図11には、ROMデータがN個のフレームで構成される場合を示す。図11(1)には、ROM300でのROMデータ格納時のフレーム状態を示す。図11(2)には、ROM300からデータストリーム制御部102へのROMデータ転送時のフレーム状態を示す。図11(3)には、コンフィグレーション停止信号の状態を示す。図11(4)には、FPGA400のコンフィグレーション状態信号の状態を示す。
図11(1)に示すように、ROMデータは、フレーム末尾にエンドフレームを付加して構成される。また、第一〜第三フレームにより先頭フレーム群が構成され、第四〜第Nフレームにより残フレーム群が構成される。先頭フレーム群には、ROMデータのうちのROMデータ管理情報が含まれる。残フレーム群には、ROMデータのうちの回路データが含まれる。
図11(3)に示すように、先頭フレーム群に対しては、コンフィグレーション停止信号はディセーブル状態をとる。よって、先頭フレーム群はFPGA400に書き込まれて展開される。すなわち、第一段階のコンフィグレーションとして、ROMデータ管理情報がFPGA400の第一〜第三フレーム(先頭フレーム群)に展開される。
ROMデータ管理情報のコンフィグレーションが実行された後、コンフィグレーション停止信号はディセーブル状態からイネーブル状態に変化する。よって、ROMデータ管理情報がFPGA400の先頭フレーム群に展開された時点で、ROM300からデータストリーム制御部102へのROMデータの転送は停止する。これにより、ROMデータのFPGA400への書き込みも停止する。つまり、第一段階のコンフィグレーションが終了した時点では、未だ、回路データのFPGA400への書き込みは行われていない。
ここで、FPGA400では、エンドフレームを待つことなく、各フレームの書き込み順に回路が順次構成される。このため、FPGA400は、コンフィグレーションの完了(DONE)前に、第一〜第Nフレームのうち一部のフレームのROMデータが書き込まれた時点で回路を動作させることができる。よって、回路データがコンフィグレーションされる前でも、ROMデータ管理情報がコンフィグレーションされた時点で、FPGA400からROMデータ管理情報を読み出すことができる。
そこで、ROMデータのFPGA400への書き込みが停止している間、すなわち、WAIT期間に、ROMデータ管理情報に対して、正誤判定部103での上述した一連の正誤判定が行われる。すなわち、WAIT期間に、正誤判定部103は、入力される情報取得要求に従って、ROMデータ管理情報読み出し要求をFPGA400に出力する。FPGA400は、入力されるROMデータ管理情報読み出し要求に従って、ROMデータ管理情報展開アドレスにある第2のROMデータ管理情報を読み出して正誤判定部103に出力する。正誤判定部103は、監視装置200から入力された第1のROMデータ管理情報と、FPGA400から取得した第2のROMデータ管理情報とを比較して正誤判定を行う。正誤判定部103は、判定結果をデータストリーム制御部102及び監視装置200に出力する。
正誤判定部103での判定結果が「正」のとき、コンフィグレーション停止信号はイネーブル状態からディセーブル状態に変化する。よって、判定結果が「正」のとき、WAIT期間は終了し、ROM300からデータストリーム制御部102へのROMデータの転送が再開する。これにより、ROMデータのFPGA400への書き込みも再開する。すなわち、第二段階のコンフィグレーションとして、回路データがFPGA400の第四〜第Nフレーム(残フレーム群)に展開される。そして、ROM300に格納されていたエンドフレームがデータストリーム制御部102を介してFPGA400に出力される。これにより、判定結果が「正」のときは、第二段階のコンフィグレーションが終了した時点、すなわち、回路データがFPGA400の残フレーム群に展開された時点で、コンフィグレーションは正常終了する。
正誤判定部103での判定結果が「誤」のとき、コンフィグレーション停止信号はイネーブル状態を維持する。また、エンドフレーム生成部502で生成されたエンドフレームがFPGA400に出力される。これにより、判定結果が「誤」のときは、第一段階のコンフィグレーションが終了した時点、すなわち、ROMデータ管理情報がFPGA400の先頭フレーム群に展開された時点で、コンフィグレーションは強制終了する。
FPGA400は、エンドフレームを入力された時点で、コンフィグレーションを完了する。FPGA400は、コンフィグレーション状態になるとコンフィグレーション状態信号(DONE)をアサートし、コンフィグレーションが完了するとコンフィグレーション状態信号をデアサートする。コンフィグレーションの完了は、FPGA400へのエンドフレームの入力によってなされる。正誤判定部103での判定結果が「誤」のときは、ROM300に格納されているエンドフレームはFPGA400に入力されない。そこで、判定結果が「誤」のときは、エンドフレーム生成部502がエンドフレームを生成する。
上述した実施例において説明した各種の処理は、予め用意されたプログラムをCPU(図示せず)に実行させることによっても実現できる。すなわち、アドレス制御部101、データストリーム制御部102、正誤判定部103、CRC演算部501、エンドフレーム生成部502、選択部503、及び、インタフェース部504の少なくとも一つによって実行される処理に対応するプログラムが予めメモリに記憶され、各プログラムがCPUへ読み出されてプロセスとして機能してもよい。また、各プログラムは、必ずしも予めメモリに記憶される必要はない。すなわち、例えば、CPUと接続可能なフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカード、メモリカード等の可搬の記録媒体に各プログラムが予め記録され、各プログラムがCPUへ読み出されてプロセスとして機能してもよい。また例えば、インターネット、LAN、WAN等を介して無線または有線によりCPUに接続されるコンピュータまたはサーバ等に各プログラムが予め記憶され、各プログラムがCPUへ読み出されてプロセスとして機能してもよい。
以上のように上記実施例によれば、パーシャルコンフィグレーションが可能なFPGA400のコンフィグレーションを制御するコンフィグレーション制御装置100において、正誤判定部103は、FPGA400の複数のポートのいずれかに展開される回路データが、所望の展開先ポートを指定された所望の回路データであるか否かを、展開される回路データがFPGA400に書き込まれる前に判定する。データストリーム制御部102は、正誤判定部103での判定結果に応じて、展開される回路データのFPGA400への書き込みをするか否かを制御する。これにより、利用者が所望する回路データと異なる誤った回路データ、すなわち、利用者の意図しない誤った回路データがFPGA400に書き込まれてしまうことを防止できる。
また、上記実施例によれば、正誤判定部103は、展開される回路データの展開先領域を示すポート番号と、所望の回路データの展開先領域を示すポート番号とを比較することにより、展開される回路データが所望の回路データであるか否かを判定する。これにより、回路の変更予定がないポートの回路データが変更されてしまうことを防止できる。
また、上記実施例によれば、FPGA400の複数の領域の各々は、先頭フレーム群と、先頭フレーム群に後続する残フレーム群とを含む。また、データストリーム制御部102が、第1書込処理として、展開先ポート番号を先頭フレーム群に書き込んだ後で、かつ、第2書込処理として、展開される回路データを残フレーム群に書き込む前に、正誤判定部103は、展開先ポート番号を先頭フレーム群から取得する。これにより、FPGA400の運用に影響を与えない第1書込処理が行われた時点で、回路データの正誤判定を行うことができる。換言すれば、FPGA400の運用に影響を与える第2書込処理が行われる前に、回路データの正誤判定を行うことができる。
また、上記実施例によれば、データストリーム制御部102は、展開される回路データが所望の回路データであると判定された場合には、第1書込処理後に第2書込処理を実行し、展開される回路データが所望の回路データでないと判定された場合には、第1書込処理後の第2書込処理を中止する。これにより、FPGA400の運用に影響を与える誤った回路データがROM300から読み出される場合でも、その誤った回路データがFPGA400に書き込まれてしまうことを防止できる。また、展開される回路データが利用者が所望する回路データである場合には、その回路データを所望のポートにコンフィグレーションすることができる。
なお、上記実施例では、プログラマブルデバイスの一例としてFPGAについて説明した。しかし、開示の技術は、FPGA以外のプログラマブルデバイスに対しても上記同様にして実施可能である。
また、上記実施例では、ROMデータ管理情報は、回路種別と、ポート番号と、変更版数とを含むものとして説明した(図7)。しかし、利用者が、コンフィグレーションの際に、変更版数の正誤判断を不要とする場合には、ROMデータ管理情報から変更版数を除いてもよい。
100 コンフィグレーション制御装置
101 アドレス制御部
102 データストリーム制御部
103 正誤判定部
200 監視装置
300 ROM
400 FPGA
501 CRC演算部
502 エンドフレーム生成部
503 選択部
504 インタフェース部

Claims (6)

  1. パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御装置において、
    前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定する判定部と、
    前記判定部での判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御するデータ制御部と、
    を具備するコンフィグレーション制御装置。
  2. 前記判定部は、前記展開される回路データの展開先領域を示す第1情報と、前記所望の回路データの展開先領域を示す第2情報とを比較することにより、前記展開される回路データが前記所望の回路データであるか否かを判定する、
    請求項1に記載のコンフィグレーション制御装置。
  3. 前記複数の領域の各々は、第1フレーム群と、前記第1フレーム群に後続する第2フレーム群とを含み、
    前記判定部は、前記データ制御部が前記第1情報を前記第1フレーム群に書き込む第1書込処理を行った後で、かつ、前記データ制御部が前記展開される回路データを前記第2フレーム群に書き込む第2書込処理を行う前に、前記第1情報を前記第1フレーム群から取得する、
    請求項2に記載のコンフィグレーション制御装置。
  4. 前記データ制御部は、
    前記展開される回路データが前記所望の回路データであると判定された場合には、前記第1書込処理後に前記第2書込処理を実行し、
    前記展開される回路データが前記所望の回路データでないと判定された場合には、前記第1書込処理後の前記第2書込処理を中止する、
    請求項3に記載のコンフィグレーション制御装置。
  5. パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御方法において、
    前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定し、
    判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御する、
    コンフィグレーション制御方法。
  6. パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御プログラムにおいて、
    前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定し、
    判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御する、
    処理をプロセッサに実行させるコンフィグレーション制御プログラム。
JP2012132064A 2012-06-11 2012-06-11 コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム Pending JP2013257640A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012132064A JP2013257640A (ja) 2012-06-11 2012-06-11 コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム
US13/875,700 US20130332629A1 (en) 2012-06-11 2013-05-02 Configuration controller and configuration control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012132064A JP2013257640A (ja) 2012-06-11 2012-06-11 コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム

Publications (1)

Publication Number Publication Date
JP2013257640A true JP2013257640A (ja) 2013-12-26

Family

ID=49716203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012132064A Pending JP2013257640A (ja) 2012-06-11 2012-06-11 コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム

Country Status (2)

Country Link
US (1) US20130332629A1 (ja)
JP (1) JP2013257640A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020004429A (ja) * 2019-08-08 2020-01-09 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150095465A1 (en) * 2013-09-27 2015-04-02 Syncomm Technology Corporation Method for setting system configuration of a computer connected with a one-to-many wireless device group during booting of the computer
US10326651B1 (en) 2017-04-18 2019-06-18 Amazon Technologies, Inc. Client configurable hardware logic and corresponding signature
KR20190029316A (ko) * 2017-09-12 2019-03-20 에스케이하이닉스 주식회사 마이크로 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작방법
US11481296B2 (en) * 2018-09-10 2022-10-25 International Business Machines Corporation Detecting configuration errors in multiport I/O cards with simultaneous multi-processing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
JP2004259343A (ja) * 2003-02-25 2004-09-16 Renesas Technology Corp 半導体記憶装置
JP4616855B2 (ja) * 2007-03-22 2011-01-19 株式会社トヨタIt開発センター 再構成可能演算装置およびコンフィギュレーションデータの検査方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020004429A (ja) * 2019-08-08 2020-01-09 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Also Published As

Publication number Publication date
US20130332629A1 (en) 2013-12-12

Similar Documents

Publication Publication Date Title
TWI269965B (en) Methods and apparatuses for reducing burn in within semiconductor devices utilizing static random access memory (SRAM)
US7900036B2 (en) System and method for implementing boot/recovery on a data processing sysem
JP2008052389A (ja) プログラマブル論理回路更新装置、更新方法、データ処理装置およびネットワーク装置
US20070067520A1 (en) Hardware-assisted device configuration detection
JP2013257640A (ja) コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム
JP6312550B2 (ja) 半導体装置
US20080016415A1 (en) Evaluation system and method
KR100633827B1 (ko) 멀티 노드 컴퓨터 시스템의 목록화를 위한 방법 및 장치
JP6341795B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
CN103475514B (zh) 无bmc的节点、集群系统及bios修复和升级方法
US20140181496A1 (en) Method, Apparatus and Processor for Reading Bios
WO2015068285A1 (ja) プログラマブルデバイス及びこれを用いた電子システム装置
US10509746B2 (en) Information processing apparatus, storage medium and information processing method
JP2008310896A (ja) 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
JP2011154459A (ja) コンピュータシステムのプログラム異常動作検出装置
US8151176B2 (en) CPU instruction RAM parity error procedure
US11822930B2 (en) Electrically programmable application-specific integrated circuit initialization engine
US20200067508A1 (en) Integrated circuit system, startup control method for integrated circuit system, and startup control program
JP2008140124A (ja) データ処理装置
US20150052386A1 (en) Technique for repairing memory modules in different power regions
JP2009003557A (ja) 装置起動時診断方法、診断プログラム及び起動時診断装置
US8661289B2 (en) Systems and methods for CPU repair
JP5774941B2 (ja) コンフィグレーション装置及びコンフィグレーション方法
JP2017102887A (ja) 情報処理装置、起動方法および起動プログラム
US20230057698A1 (en) Physically distributed control plane firewalls with unified software view