JP6618505B2 - コンフィグレーションデータ設定装置 - Google Patents

コンフィグレーションデータ設定装置 Download PDF

Info

Publication number
JP6618505B2
JP6618505B2 JP2017097098A JP2017097098A JP6618505B2 JP 6618505 B2 JP6618505 B2 JP 6618505B2 JP 2017097098 A JP2017097098 A JP 2017097098A JP 2017097098 A JP2017097098 A JP 2017097098A JP 6618505 B2 JP6618505 B2 JP 6618505B2
Authority
JP
Japan
Prior art keywords
configuration data
data
configuration
target device
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.)
Active
Application number
JP2017097098A
Other languages
English (en)
Other versions
JP2018194992A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2017097098A priority Critical patent/JP6618505B2/ja
Publication of JP2018194992A publication Critical patent/JP2018194992A/ja
Application granted granted Critical
Publication of JP6618505B2 publication Critical patent/JP6618505B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本開示は、コンフィグレーションデータ設定装置に関し、特に、ハードウェアの動作を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能に構成されたコンフィグレーション対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置に関する。
ハードウェアの動作(たとえばCPU(Central Processing Unit)におけるCPUコアやメモリの動作周波数等)を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能なデバイスが知られている(以下、このようなデバイスを「コンフィグレーション対象デバイス」、或いは単に「対象デバイス」とも称する。)。このような対象デバイスにおいては、設定されたコンフィグレーションデータに誤りがあると対象デバイスが作動しなくなる可能性があるので、不正なコンフィグレーションデータについては適切な対処が必要である。
たとえば、特許文献1(特開2008−236488号公報)には、コンフィグレーションデータを検査する技術が開示されている。この文献には、コンフィグレーションデータに基づいて回路論理が変更可能な再構成可能論理デバイス(対象デバイス)と、再構成可能論理デバイスの入出力部の入出力属性を予め記憶する記憶部と、コンフィグレーションデータを検証する検証部とを備える再構成可能演算装置が開示されている。検証部は、コンフィグレーションデータにおける上記入出力部に関する情報を、記憶部に記憶された入出力属性と比較して、コンフィグレーションデータを検証する。このような構成により、簡易な方法でコンフィグレーションデータを検査することができるものとされる(特許文献1参照)。
また、特許文献2(特開2013−25437号公報)には、コンフィグレーションデータに基づいてハードウェアの動作設定を変更可能なFPGA(Field Programmable Gate Array)システムが開示されている。このFPGAシステムでは、FPGAに書込まれているコンフィグレーションデータにビット誤りが生じた場合に、第2記憶装置に保存されている置換用のコンフィグレーションデータが取得され、その置換用のコンフィグレーションデータによりビット誤りが訂正される(特許文献2参照)。
特開2008−236488号公報 特開2013−25437号公報
対象デバイスへのコンフィグレーションデータの書込(書換)方法としては、システムの外部から対象デバイスに書込むための外部接続ツールを用いてメーカー等において書込みを行なうか、又は、対象デバイスにソフトウェア的に実装された機能により対象デバイス自身からユーザが書込みを行なう手法があり得る。
後者の手法は、たとえば、コンフィグレーションデータによって対象デバイス(CPU等)の動作周波数を変更可能であって、ユーザが対象デバイスの消費電力を抑制したい場合に、コンフィグレーションデータによって動作周波数をユーザが変更(低減)できるので、外部接続ツールを用いてメーカー等でデータを書込む必要がある前者の手法よりも利便性が高い。しかしながら、後者の手法は、ユーザが誤って不正なコンフィグレーションデータに書換えてしまう可能性がある。この場合、対象デバイスは、不正なコンフィグレーションデータに従ってハードウェアの再構成が行なわれた結果、正常に作動しなくなる可能性がある。そうすると、ユーザはコンフィグレーションデータを書換える手段を失い、故障ではないにも拘わらず復旧できないという事態が生じ得る。
上記の特許文献1,2では、対象デバイス自身からユーザがコンフィグレーションデータを書込可能な対象デバイスについて、上記のような問題及びその解決手段については特に検討されていない。
本開示は、かかる問題を解決するためになされたものであり、その目的は、対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置において、ユーザが不正なコンフィグレーションデータを書込んだ場合にもユーザが対処可能とすることである。
本開示に従うコンフィグレーションデータ設定装置は、ハードウェアの動作を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能に構成された対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置である。対象デバイスは、ユーザが対象デバイス自身からコンフィグレーションデータ設定装置を通じてコンフィグレーションデータを書換えるためのデータ入力部を含む。コンフィグレーションデータ設定装置は、記憶部と、正誤判定部とを備える。記憶部は、対象デバイスに設定可能なコンフィグレーションデータの複数の設定値を記憶するとともに、対象デバイスが作動可能な訂正用コンフィグレーションデータを記憶する。正誤判定部は、データ入力部からユーザにより入力されたコンフィグレーションデータの書換データを複数の設定値と比較することによって書換データの正誤判定を実行し、書換データに誤りがある場合に、訂正用コンフィグレーションデータを対象デバイスに設定する。
このコンフィグレーションデータ設定装置においては、対象デバイスのデータ入力部からユーザにより入力されたコンフィグレーションデータの書換データについて、対象デバイスに設定可能なコンフィグレーションデータの複数の設定値を用いて正誤判定が実行される。そして、不正な書換データに対しては、対象デバイスが作動可能な訂正用コンフィグレーションデータが対象デバイスに設定される。これにより、不正な書換データがユーザにより入力されたとしても、対象デバイスの作動が確保され、ユーザがコンフィグレーションデータを書換える手段を失うことはない。したがって、このコンフィグレーションデータ設定装置によれば、ユーザが不正なコンフィグレーションデータを書込んだとしても、ユーザは再度コンフィグレーションデータを書換えることができる。
本開示の実施の形態に従うコンフィグレーションデータ設定装置が適用されるコンフィグレーションシステムの全体構成図である。 図1に示すコンフィグレーションデータ設定装置の詳細な構成図である。 コンフィグレーションシステムにおいて用いられるコンフィグレーションデータ列を示した図である。 訂正用コンフィグレーションデータ格納用ROMに格納されているテーブル管理テーブルの一例を示した図である。 訂正用コンフィグレーションデータ格納用ROMに格納されている機能設定用テーブル群の一例を示した図である。 訂正用コンフィグレーションデータ格納用ROMに格納されている起動用データテーブルの一例を示した図である。 図1に示すコンフィグレーションデータ設定装置により実行される処理の手順を説明する第1のフローチャートである。 図1に示すコンフィグレーションデータ設定装置により実行される処理の手順を説明する第2のフローチャートである。
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一又は相当部分には同一符号を付してその説明は繰返さない。
図1は、本開示の実施の形態に従うコンフィグレーションデータ設定装置が適用されるコンフィグレーションシステムの全体構成図である。図1を参照して、コンフィグレーションシステム1は、CPU100と、コンフィグレーションデータ格納用ROM(Read Only Memory)110と、外部書込用ポート120と、書換データ正誤判定部130と、コンフィグレーションデータ設定装置140と、報知用コンソール150とを備える。
CPU100は、コンフィグレーションデータ設定装置140により設定されるコンフィグレーションデータに基づいてハードウェア(以下「HW(Hardware)」と記載することがある。)の動作設定を変更可能に構成されたコンフィグレーション対象デバイスである。具体的には、CPU100は、図示しないCPUコアや、DDR(Double Data Rate)メモリ、SerDes(Serializer/Deserializer)、Flashバス等を備えており、コンフィグレーションデータ設定装置140により設定されるコンフィグレーションデータに従ってハードウェアが再構成されることにより、CPUコアの動作周波数や、DDRメモリの動作周波数、SerDesの動作、Flashバスの動作等が規定される。
コンフィグレーションデータ設定装置140は、コンフィグレーションデータ格納用ROM110に格納されたコンフィグレーションデータを受け、コンフィグレーションデータの正誤判定を行なう。そして、コンフィグレーションデータ設定装置140は、不正なコンフィグレーションデータ(CPU100が作動し得ないようなコンフィグレーションデータ)に対しては、CPU100が作動可能なコンフィグレーションデータに訂正してCPU100に設定する。
コンフィグレーションデータ格納用ROM110は、データを消去/再書込可能な不揮発性のメモリであり、CPU100のHW動作を規定するためのコンフィグレーションデータを一時的に記憶する。このコンフィグレーションデータ格納用ROM110には、以下に示す2通りの手法でコンフィグレーションデータを書込むことができる。
第1の方法は、コンフィグレーションデータ格納用ROM110にコンフィグレーションデータを書込むための外部接続ツール(図示せず)を外部書込用ポート120に接続し、コンフィグレーションシステム1の外部から外部書込用ポート120を通じてコンフィグレーションデータ格納用ROM110にコンフィグレーションデータを書込む方法である。この第1の方法は、一般的には、外部接続ツールを有するメーカー等において実行される。
第2の方法は、コンフィグレーションの対象デバイスであるCPU100からユーザがコンフィグレーションデータ格納用ROM110にコンフィグレーションデータを書込む方法である。この第2の方法は、第1の方法のような外部接続ツールを用いることなく、ソフトウェア的な手法によってCPU100からユーザがコンフィグレーションデータを書込むことができるので、ユーザにとっては利便性が高い。
そして、コンフィグレーションデータ格納用ROM110は、上記の第1及び第2の方法のいずれかによって書込まれたコンフィグレーションデータを、バス160を通じてコンフィグレーションデータ設定装置140へ出力することができる。
書換データ正誤判定部130は、上記の第2の方法においてユーザによりCPU100から書込まれたコンフィグレーションデータの書換データのビット誤りを検出する。書換データ正誤判定部130は、たとえば公知のCRC(Cyclic Redundancy Check)回路によって構成され、CPU100から受けるコンフィグレーションデータの書換データから生成されるCRCデータと、CPU100から受ける書換データに付与されたCRCデータとを比較することによって、CPU100から受けた書換データのビット誤りの有無を判定する。
上記のように、コンフィグレーションシステム1では、コンフィグレーションデータ格納用ROM110からコンフィグレーションデータ設定装置140を通じてCPU100(対象デバイス)へコンフィグレーションデータを設定可能であるところ、コンフィグレーションデータの書込(書換)方法としては、外部書込用ポート120に接続される外部接続ツールを用いてメーカー等において書込みを行なう上記第1の方法と、CPU100にソフトウェア的に実装された機能によりCPU100からユーザが書込みを指示する上記第2の方法とがある。
CPU100自身からユーザが書込み(書換え)を指示する第2の方法は、たとえば、ユーザがCPU100の消費電力を抑制したい場合に、コンフィグレーションデータによってCPU100の動作周波数をユーザが変更(低減)することができるので、メーカー等に持ち込んでデータを書換える必要がある第1の方法よりもユーザにとって利便性が高い。しかしながら一方で、この方法は、ユーザが誤って不正なコンフィグレーションデータに書換えてしまう可能性がある。この場合、CPU100は、不正なコンフィグレーションデータに従ってハードウェアの再構成が行なわれる結果、正常に作動しなくなる可能性がある。
より詳しくは、ユーザによってコンフィグレーションデータが書換えられる場合、データの破損はなく書換データ正誤判定部130によって書換データのビット誤りは検出されないものの、不正なデータが入力される場合がある。たとえば、上述のように、CPU100はコンフィグレーションデータに従ってCPUコアの動作周波数を規定可能であるところ、CPUコアの動作周波数として規定可能な周波数と異なる周波数が書換データとしてユーザにより入力される場合があり得る。この場合、データ構造自体の破損はないので、書換データ正誤判定部130ではデータの誤りは検出されない。そして、このような不正なコンフィグレーションデータがCPU100に設定されると、CPU100が作動できなくなる。
その結果、CPU100からコンフィグレーションデータを書換えることができなくなり、ユーザは、コンフィグレーションデータを書換える手段を失う。すなわち、ハードウェアの故障ではないにも拘わらずユーザが復旧できない事態となり、この場合は、メーカー等において外部接続ツールを用いた上記第1の方法によってコンフィグレーションデータを再設定せざるを得なくなる。
そこで、この実施の形態に従うコンフィグレーションデータ設定装置140では、対象デバイスのCPU100に設定されるコンフィグレーションデータについて、CPU100に設定可能なコンフィグレーションデータの複数の設定値を用いてコンフィグレーションデータの正誤判定が実行される。そして、不正なコンフィグレーションデータ(書換データ)に対しては、CPU100が作動可能な訂正用コンフィグレーションデータがCPU100に設定される。これにより、不正な書換データがユーザにより入力されたとしても、CPU100の作動が確保され、ユーザがコンフィグレーションデータを書換える手段を失うことはない。したがって、この実施の形態によれば、ユーザによりCPU100から不正なコンフィグレーションデータが入力されたとしても、ユーザは、再度コンフィグレーションデータを書換えることができる。以下、コンフィグレーションシステム1の構成についてさらに詳しく説明する。
CPU100は、HW設定部102と、書換データ入力部104と、訂正情報報知部106とを含む。HW設定部102は、バス162を通じてコンフィグレーションデータ設定装置140の正誤判定部142(後述)からコンフィグレーションデータを受け、その受けたコンフィグレーションデータに従ってCPU100のHW設定を実行する。具体的には、上述のように、CPU100は、図示しないCPUコアや、DDRメモリ、SerDes、Flashバス等を備えており、HW設定部102は、正誤判定部142から受けるコンフィグレーションデータに従って予め定められた処理を実行することにより、CPUコアやDDRメモリの各動作周波数や、SerDesやFlashバスの各動作を規定する。
書換データ入力部104は、ユーザがCPU100からコンフィグレーションデータ格納用ROM110にコンフィグレーションデータを書込む(書換える)ための処理を実行する。書換データ入力部104は、ユーザによって入力されたコンフィグレーションデータの書換データを書換データ正誤判定部130へ出力する。この書換データ入力部104は、コンフィグレーションデータ格納用ROM110にコンフィグレーションデータを書込む上記第2の方法を実現するものである。
訂正情報報知部106は、コンフィグレーションデータ設定装置140からHW設定部102にコンフィグレーションデータが設定されると、バス164を通じてコンフィグレーションデータ設定装置140の訂正情報格納部146(後述)を参照し、設定されたコンフィグレーションデータが訂正されたことを示す訂正情報の有無を確認する。そして、訂正情報格納部146に訂正情報が格納されている場合には、訂正情報報知部106は、訂正情報格納部146からバス164を通じて訂正情報を取得し、取得された訂正情報をユーザへの報知用としての報知用コンソール150に出力する。
コンフィグレーションデータ設定装置140は、正誤判定部142と、訂正用コンフィグレーションデータ格納用ROM144と、訂正情報格納部146とを含む。正誤判定部142は、コンフィグレーションデータ格納用ROM110からCPU100に設定されるコンフィグレーションデータの正誤判定を実行する。より詳しくは、正誤判定部142は、コンフィグレーションデータ格納用ROM110から取得されるコンフィグレーションデータ(書換データ)を、訂正用コンフィグレーションデータ格納用ROM144に予め記憶されている、CPU100に設定可能なコンフィグレーションデータの複数の設定値(詳細は後述)と比較する。そして、正誤判定部142は、その比較結果に基づいて、書換データ正誤判定部130のような従来のCRC等では判定できない不正なコンフィグレーションデータ(データ欠陥ではない不正な設定等)を検知する。
また、正誤判定部142は、コンフィグレーションデータ格納用ROM110から取得されたコンフィグレーションデータに誤りがある場合(不正なコンフィグレーションデータの場合)には、訂正用コンフィグレーションデータ格納用ROM144に予め記憶されている、CPU100が作動可能な訂正用コンフィグレーションデータをCPU100に設定する。さらに、正誤判定部142は、訂正用コンフィグレーションデータをCPU100に設定するとともに、訂正情報格納部146に格納されている、コンフィグレーションデータが訂正されたことを示すフラグ(訂正情報)をオンにする。この正誤判定部142については、後ほどさらに詳しく説明する。
訂正用コンフィグレーションデータ格納用ROM144は、データを消去/再書込可能な不揮発性のメモリであり、コンフィグレーションデータとしてCPU100に設定可能な各種設定値を予め記憶している。一例として、この実施の形態では、CPU100のCPUコアは、コンフィグレーションデータによってその動作周波数を切替可能であり、切替可能なCPUコアの動作周波数(複数の設定値)が予め訂正用コンフィグレーションデータ格納用ROM144に記憶されている。
また、訂正用コンフィグレーションデータ格納用ROM144は、正誤判定部142によってコンフィグレーションデータに誤り(不正なコンフィグレーションデータ)があると判定された場合に正誤判定部142によりCPU100に設定される訂正用コンフィグレーションデータを予め記憶している。訂正用コンフィグレーションデータとしては、CPU100が作動可能な一のコンフィグレーションデータが設定される。この訂正用コンフィグレーションデータ格納用ROM144についても、後ほどさらに詳しく説明する。
訂正情報格納部146は、正誤判定部142によりコンフィグレーションデータが訂正されたか否かを示すフラグ(訂正情報)を格納する。上述のように、正誤判定部142によりコンフィグレーションデータに誤りがあると判定されて訂正用コンフィグレーションデータがCPU100に設定された場合に、正誤判定部142により当該フラグがオンにされる。当該フラグがオンであることは、訂正情報が存在することを示す。そして、訂正情報格納部146は、CPU100の訂正情報報知部106からの求めに応じて訂正情報をCPU100へ出力する。
図2は、図1に示したコンフィグレーションデータ設定装置140の詳細な構成図である。図2を参照して、正誤判定部142は、ビット位置検出部200と、テーブル管理部210と、データ正誤判定部220とを含む。訂正用コンフィグレーションデータ格納用ROM144には、テーブル管理テーブル300と、機能設定用テーブル群310と、起動用データテーブル320とが記憶されている。
ビット位置検出部200は、コンフィグレーションデータ格納用ROM110からコンフィグレーションデータのデータ列(以下「コンフィグレーションデータ列」とも称する。)を受ける。そして、ビット位置検出部200は、コンフィグレーションデータ列から、データ列の先頭から数えたビット数(データ列先頭からのビット位置)とビットサイズのデータを取得し、取得したデータをテーブル管理部210へ出力する。
図3は、コンフィグレーションシステム1において用いられるコンフィグレーションデータ列を示した図である。図3を参照して、たとえば、コンフィグレーションデータ列の先頭からの6ビットには、CPUコアの動作周波数の設定値が格納される。CPUコアの動作周波数の設定値に続いて、コンフィグレーションデータ列の14ビット目までの8ビットには、DDRメモリの動作周波数の設定値が格納される。さらに続いて、SerDesやFlashバスの動作設定値等が格納され、コンフィグレーションデータ列の1017ビット目から最後尾の1024ビット目までの8ビットには、CRCデータが格納される。
図3とともに再び図2を参照して、ビット位置検出部200は、具体的には、たとえば、コンフィグレーションデータ列の先頭から数えたビット数(0)とビットサイズ(6)のデータを取得してテーブル管理部210へ出力する。続いて、ビット位置検出部200は、データ列の先頭から数えたビット数(6)とビットサイズ(8)のデータを取得してテーブル管理部210へ出力する。
テーブル管理部210は、ビット位置検出部200によって取得された上記データを受けると、訂正用コンフィグレーションデータ格納用ROM144からテーブル管理テーブル300を読出す。そして、テーブル管理部210は、テーブル管理テーブル300を参照して、ビット位置検出部200から受ける上記データ(データ列の先頭から数えたビット数及びビットサイズ)に該当するテーブル番号を取得する。そして、テーブル管理部210は、取得されたテーブル番号に対応するテーブルを訂正用コンフィグレーションデータ格納用ROM144の機能設定用テーブル群310から読出す。
図4は、訂正用コンフィグレーションデータ格納用ROM144に格納されているテーブル管理テーブル300の一例を示した図である。図4を参照して、テーブル管理テーブル300には、図3に示したコンフィグレーションデータ列についての、先頭から数えたビット数及びビットサイズと、テーブル番号と、コンフィグレーションデータ列に含まれる各設定値に対応する機能設定用テーブル(後述)との対応関係が規定されている。たとえば、データ列の先頭からのビット数(ビット位置)が0でビットサイズが6の領域は、CPUコアの動作周波数の設定を示す領域であり(図3)、テーブル番号「1」が割り当てられるとともに、テーブル名称「CPUコア動作周波数」の機能設定用テーブルと対応付けられている。
同様に、たとえば、データ列の先頭からのビット数(ビット位置)が6でビットサイズが8の領域は、DDRメモリの動作周波数の設定を示す領域であり(図3)、テーブル番号「2」が割り当てられるとともに、テーブル名称「DDRメモリ動作周波数」の機能設定用テーブルと対応付けられている。
図5は、訂正用コンフィグレーションデータ格納用ROM144に格納されている機能設定用テーブル群310の一例を示した図である。図5を参照して、機能設定用テーブル群310は、図3に示したコンフィグレーションデータ列に含まれる各設定にそれぞれ対応する複数のテーブルを含む。各テーブルには、テーブル管理テーブル300で対応付けられたテーブル番号が付与されている。そして、各テーブルには、当該テーブルに対応する設定について、CPU100に設定可能な複数の設定値が格納されている。
たとえば、テーブル番号「1」のCPUコア動作周波数テーブルには、CPU100のCPUコアに設定可能な複数の動作周波数(この例では5段階)が格納されており、各設定値に設定値番号が付与されている。同様に、テーブル番号「2」のDDRメモリ動作周波数テーブルには、CPU100のDDRメモリに設定可能な複数の動作周波数(この例では3段階)が格納されており、各設定値に設定値番号が付与されている。このCPUコア動作周波数テーブルやDDRメモリ動作周波数テーブルに格納されている各動作周波数以外の周波数がCPU100に設定されると、CPU100が作動しない可能性がある。
再び図2を参照して、テーブル管理部210によって、ビット位置検出部200により取得されたデータ(データ列の先頭から数えたビット数及びビットサイズ)に対応するテーブルが機能設定用テーブル群310から読出されると、データ正誤判定部220は、ビット位置検出部200により取得されたデータで示されるデータ列の領域に格納されている設定値を、読出されたテーブルの各設定値と比較する。
データ正誤判定部220は、機能設定用テーブル群310から読出されたテーブル内にコンフィグレーションデータ列の設定値と一致するものがない場合には、テーブル管理部210を通じて、訂正用コンフィグレーションデータ格納用ROM144の起動用データテーブル320からCPU100が作動可能な訂正用コンフィグレーションデータを取得する。そして、データ正誤判定部220は、該当するコンフィグレーションデータ列の設定値を起動用データテーブル320から取得されたデータ(設定値)に置き換える。データ正誤判定部220は、このような正誤判定及び必要に応じたデータの置き換えをコンフィグレーションデータ列の設定値毎に実施する。
図6は、訂正用コンフィグレーションデータ格納用ROM144に格納されている起動用データテーブル320の一例を示した図である。図6を参照して、起動用データテーブル320には、各テーブル番号に対して設定値番号が対応付けられて格納されている。この設定値番号は、図5に示した機能設定用テーブル群310の各テーブルにおいて設定値毎に対応付けられているものである。
たとえば、データ正誤判定部220によって、テーブル番号「1」のCPUコア動作周波数テーブル内にコンフィグレーションデータ列のCPUコア動作周波数設定値と一致するものがないと判定されると、テーブル管理部210により起動用データテーブル320が参照され、テーブル番号「1」に対応する設定値番号「1」が取得される。そして、テーブル管理部210によって、さらに、テーブル番号「1」のCPUコア動作周波数テーブル(図5)が参照され、起動用データテーブル320から取得された設定値番号「1」に対応するCPUコア動作周波数設定値(この例では800MHz)が訂正用データとして取得される。
再び図2を参照して、データ正誤判定部220は、コンフィグレーションデータ列の全ての設定値に対して、上述のような正誤判定及び誤り判定時の訂正用データへの置き換えを行なうと、コンフィグレーションデータ列をCPU100へ出力する。また、正誤判定の結果、訂正用データへの置き換えが行なわれた場合には、データ正誤判定部220は、訂正情報格納部146に格納されているフラグ(訂正情報)をオンにする。
図7及び図8は、図1に示したコンフィグレーションデータ設定装置140により実行される処理の手順を説明するフローチャートである。まず、図7とともに図1及び図2を参照して、コンフィグレーションデータ設定装置140は、コンフィグレーションデータ格納用ROM110からコンフィグレーションデータ列を読出す(ステップS10)。
次いで、コンフィグレーションデータ設定装置140は、ビット位置検出部200により、コンフィグレーションデータ列の先頭から数えたビット数(データ列の先頭からのビット位置)とビットサイズのデータを取得する(ステップS20)。たとえば、後述のステップS130からの戻りでない初回処理の場合は、先頭からのビット数及びビットサイズとしてそれぞれ「0」「6」が取得され、ステップS130から戻った後の2回目の処理においては、先頭からのビット数及びビットサイズとしてそれぞれ「6」「8」が取得される。
続いて、コンフィグレーションデータ設定装置140は、ステップS20において取得されたデータを用いて、訂正用コンフィグレーションデータ格納用ROM144のテーブル管理テーブル300を参照する(ステップS30)。そして、コンフィグレーションデータ設定装置140は、ステップS20において取得された上記データに該当するテーブル番号を検出し、検出したテーブル番号に対応するテーブルを訂正用コンフィグレーションデータ格納用ROM144の機能設定用テーブル群310から読込む(ステップS40)。
次いで、コンフィグレーションデータ設定装置140は、ステップS40において読込まれたテーブルに格納されている複数の設定値のうちの1つを読込む(ステップS50)。さらに、コンフィグレーションデータ設定装置140は、ステップS10において読出されたコンフィグレーションデータ列から、ビット位置検出部200において検出されたビット位置及びビットサイズの領域に格納されているデータを取得し、コンフィグレーションデータとして設定された設定値を検出する(ステップS60)。
次いで、コンフィグレーションデータ設定装置140は、ステップS60において検出されたコンフィグレーションデータ列の設定値と、ステップS50(後述のステップS100から処理が戻されたときはステップS90)で読込まれた設定値とを比較する(ステップS70)。そして、コンフィグレーションデータ設定装置140は、両設定値が互いに一致するか否かを判定する(ステップS80)。
両設定値が互いに一致するものと判定されると(ステップS80においてYES)、コンフィグレーションデータ設定装置140は、ステップS130(後述)へ処理を移行する。一方、ステップS80において両設定値は互いに一致しないと判定されると(ステップS80においてNO)、コンフィグレーションデータ設定装置140は、ステップS50において読込まれたテーブルに格納されている複数の設定値から別の設定値を1つ読込む(ステップS90)。このとき、コンフィグレーションデータ設定装置140は、ステップS50において読込まれたテーブルにおいて未読込の設定値が存在するか否かを判定する(ステップS100)。
未読込の設定値が存在すると判定されると(ステップS100においてYES)、コンフィグレーションデータ設定装置140は、ステップS70へ処理を戻す。一方、ステップS50において未読込の設定値は存在しないと判定されると(ステップS100においてNO)、コンフィグレーションデータ設定装置140は、訂正用コンフィグレーションデータ格納用ROM144の起動用データテーブル320を参照し、正しい設定値(CPU100の作動が保証される設定値)を読込む。そして、コンフィグレーションデータ設定装置140は、ステップS60において検出されたコンフィグレーションデータ列の設定値を、その読出された設定値に差替える(ステップS110)。
すなわち、ステップS60において検出されたコンフィグレーションデータ列の設定値が、ステップS50において読込まれたテーブルに格納されている複数の設定値のいずれとも一致しない場合は、ユーザによって不正なコンフィグレーションデータが書込まれたものであり、起動用データテーブル320を参照して、CPU100が作動可能な正しい設定値に差替えられる。
さらに、コンフィグレーションデータ設定装置140は、設定値の差替えとともに、訂正情報格納部146に格納されている、コンフィグレーションデータが訂正されたことを示すフラグを立てる(ステップS120)。
ステップS120に続いて、又はステップS80において設定値の一致が確認された場合に(ステップS80においてYES)、コンフィグレーションデータ設定装置140は、コンフィグレーションデータ列の先頭からのビット数が全データに一致したか否かを判定する(ステップS130)。すなわち、このステップS130では、ビット位置検出部200により検出されるビット位置がコンフィグレーションデータ列の末尾に到達したか否かが判定される。
データ列の先頭からのビット数が全データに一致しない場合には、正誤判定すべき他の設定値がまだ存在することから、コンフィグレーションデータ設定装置140は、ステップS20へ処理を戻す。一方、ステップS130において、コンフィグレーションデータ列の先頭からのビット数が全データに一致したものと判定されると(ステップS130においてYES)、図8に示されるステップS140へと処理が移行される。
なお、特に図示しないが、ステップS130においてYESと判定されると、コンフィグレーションデータについてCRCデータの再計算が行なわれる。そして、再計算後のCRCデータが元のコンフィグレーションデータに格納されたCRCデータと不一致であれば、CPU100へ出力されるコンフィグレーションデータが訂正される。コンフィグレーションデータの差替えが行なわれなかった場合には、再計算後のCRCデータは、コンフィグレーションデータ格納用ROM110から読出されたコンフィグレーションデータに格納されたCRCデータと一致するので、コンフィグレーションデータ格納用ROM110から読出されたコンフィグレーションデータがCPU100へ出力される。
図8を参照して、図7のステップS130に続いて、コンフィグレーションデータ設定装置140は、コンフィグレーションデータをバス162へ出力する(ステップS140)。図7のステップS110においてデータの差替えが行なわれた場合には、訂正されたコンフィグレーションデータがバス162を通じてCPU100へ出力される。一方、図7のステップS110においてデータの差替えが行なわれなかった場合には、コンフィグレーションデータ格納用ROM110から読出されたコンフィグレーションデータがCPU100へそのまま出力される。
次いで、コンフィグレーションデータ設定装置140は、CPU100からコンフィグレーションデータの訂正情報の参照依頼があるか否かを判定する(ステップS150)。CPU100から訂正情報の参照依頼がないときは(ステップS150においてNO)、コンフィグレーションデータ設定装置140は、以降の処理を実行することなくエンドへと処理を移行する。
ステップS150においてCPU100から訂正情報の参照依頼があったものと判定されると(ステップS150においてYES)、コンフィグレーションデータ設定装置140は、訂正情報格納部146に格納されている、コンフィグレーションデータの差替えを示す上記フラグをチェックする(ステップS160)。
そして、ステップS170において上記フラグがONとなっていることが検出されると(ステップS170においてYES)、コンフィグレーションデータ設定装置140は、コンフィグレーションデータに誤りがあった旨、及びコンフィグレーションデータが訂正された旨をCPU100へ通知する(ステップS180)。これにより、コンフィグレーションデータが訂正されたことを示す訂正情報が報知用コンソール150に表示される。
以上のように、この実施の形態においては、コンフィグレーション対象デバイスのCPU100に設定されるコンフィグレーションデータについて、訂正用コンフィグレーションデータ格納用ROM144の機能設定用テーブル群310を用いて、コンフィグレーションデータの正誤判定が実行される。そして、不正なコンフィグレーションデータ(書換データ)に対しては、訂正用コンフィグレーションデータ格納用ROM144の起動用データテーブル320を用いて、CPU100が作動可能な訂正用コンフィグレーションデータがCPU100に設定される。これにより、不正な書換データがユーザにより入力されたとしても、CPU100の作動が確保され、ユーザがコンフィグレーションデータを書換える手段を失うことはない。したがって、この実施の形態によれば、ユーザによりCPU100から不正なコンフィグレーションデータが入力されたとしても、ユーザは、再度コンフィグレーションデータを書換えることができる。
また、この実施の形態においては、ユーザによりCPU100から不正なコンフィグレーションデータが入力された場合に、CPU100が作動可能な訂正用コンフィグレーションデータがCPU100に設定されるとともに、その旨が報知用コンソール150によってユーザに報知される。したがって、この実施の形態によれば、ユーザは、報知用コンソール150を確認後、所望のコンフィグレーションデータを書込むことができる。
なお、上記において、CPU100は、本開示における「コンフィグレーション対象デバイス」の一実施例に対応し、書換データ入力部104は、本開示における「データ入力部」の一実施例に対応する。また、訂正用コンフィグレーションデータ格納用ROM144は、本開示における「記憶部」の一実施例に対応し、正誤判定部142は、本開示における「正誤判定部」の一実施例に対応する。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 コンフィグレーションシステム、100 CPU、102 HW設定部、104 書換データ入力部、106 訂正情報報知部、110 コンフィグレーションデータ格納用ROM、120 外部書込用ポート、130 書換データ正誤判定部、140 コンフィグレーションデータ設定装置、142 正誤判定部、144 訂正用コンフィグレーションデータ格納用ROM、146 訂正情報格納部、150 報知用コンソール、160,162,164 バス、200 ビット位置検出部、210 テーブル管理部、220 データ正誤判定部、300 テーブル管理テーブル、310 機能設定用テーブル群、320 起動用データテーブル。

Claims (4)

  1. ハードウェアの動作を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能に構成されたコンフィグレーション対象デバイスに前記コンフィグレーションデータを設定するコンフィグレーションデータ設定装置であって、
    前記コンフィグレーション対象デバイスは、ユーザが前記コンフィグレーション対象デバイス自身から前記コンフィグレーションデータ設定装置を通じて前記コンフィグレーションデータを書換えるためのデータ入力部を含み、
    前記コンフィグレーション対象デバイスに設定可能なコンフィグレーションデータの複数の設定値を記憶するとともに、前記コンフィグレーション対象デバイスが作動可能な訂正用コンフィグレーションデータを記憶する記憶部と、
    前記データ入力部からユーザにより入力された前記コンフィグレーションデータであって、先頭からのビット数及びビットサイズにより区分されたデータ列ごとに書換用の設定値が格納された書換データの正誤判定を、前記先頭からのビット数及び前記ビットサイズを前記書換データから参照して、前記先頭からのビット数及び前記ビットサイズごとに規定された前記複数の設定値と、前記書換用の設定値とを比較することによって、実行し、前記書換データに誤りがある場合に、前記訂正用コンフィグレーションデータを前記コンフィグレーション対象デバイスに設定する正誤判定部とを備える、コンフィグレーションデータ設定装置。
  2. 前記正誤判定部は、前記書換データに誤りがある場合に、前記訂正用コンフィグレーションデータが前記コンフィグレーション対象デバイスに設定されたことを前記コンフィグレーション対象デバイスへ通知するための処理を実行し、
    前記コンフィグレーション対象デバイスは、前記コンフィグレーションデータ設定装置から前記通知を受けると、前記訂正用コンフィグレーションデータが前記コンフィグレーション対象デバイスに設定されたことをユーザに報知するための処理を実行する、請求項1に記載のコンフィグレーションデータ設定装置。
  3. 前記データ入力部からユーザにより入力された前記書換データに対してビット誤り判定が行なわれ、
    前記正誤判定部は、前記ビット誤り判定において正常と判定された書換データを前記複数の設定値と比較することによって前記書換データの正誤判定を実行する、請求項1又は請求項2に記載のコンフィグレーションデータ設定装置。
  4. 前記コンフィグレーション対象デバイスは、CPUである、請求項1から請求項3のいずれか1項に記載のコンフィグレーションデータ設定装置。
JP2017097098A 2017-05-16 2017-05-16 コンフィグレーションデータ設定装置 Active JP6618505B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017097098A JP6618505B2 (ja) 2017-05-16 2017-05-16 コンフィグレーションデータ設定装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017097098A JP6618505B2 (ja) 2017-05-16 2017-05-16 コンフィグレーションデータ設定装置

Publications (2)

Publication Number Publication Date
JP2018194992A JP2018194992A (ja) 2018-12-06
JP6618505B2 true JP6618505B2 (ja) 2019-12-11

Family

ID=64570435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017097098A Active JP6618505B2 (ja) 2017-05-16 2017-05-16 コンフィグレーションデータ設定装置

Country Status (1)

Country Link
JP (1) JP6618505B2 (ja)

Also Published As

Publication number Publication date
JP2018194992A (ja) 2018-12-06

Similar Documents

Publication Publication Date Title
EP3037967B1 (en) Fault-tolerant startup method and apparatus and computer system
JP4868216B2 (ja) ファームウェア更新回路およびファームウェア更新方法
US8661306B2 (en) Baseboard management controller and memory error detection method of computing device utilized thereby
US9405612B2 (en) Fault repair apparatus, fault repair method and storage medium storing fault repair program
KR101606289B1 (ko) 프로그래머블 컨트롤러
KR20060133892A (ko) 메모리 미러링 장치 및 방법
JP2006134310A (ja) データ信頼性を向上させることができるメモリ管理方法
JP2005242797A (ja) エラー訂正回路
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
US20160364280A1 (en) Circuitry and method for testing an error-correction capability
JP2018025925A (ja) 電子回路システム及び制御装置の起動方法
US8037275B2 (en) Memory module system using a partitioned serial presence detect memory
JP2005235074A (ja) Fpgaのソフトエラー補正方法
US11003531B2 (en) Memory system and operating method thereof
JP5486139B2 (ja) ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和
JP5413595B2 (ja) 集積回路装置、電子機器
JP6618505B2 (ja) コンフィグレーションデータ設定装置
KR20100031402A (ko) 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
US10877837B2 (en) Method for recovering EEPROM of slave device by PLC communication module
US10042712B2 (en) Numerical controller
CN109491951B (zh) 一种配置数据的方法以及计算设备
JP5868563B1 (ja) 分散型制御システム用制御機器及びユニット
CN103389921A (zh) 信号处理电路以及使用了该信号处理电路的试验装置
JP2012212415A (ja) 無線基地局装置
JP6398390B2 (ja) エラー検出方法及びエラー検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190729

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: 20191015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191112

R150 Certificate of patent or registration of utility model

Ref document number: 6618505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250