(57)【要約】【課題】対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置において、ユーザが不正なコンフィグレーションデータを書込んだ場合にもユーザが対処可能とする。【解決手段】ＣＰＵ１００は、ユーザがＣＰＵ１００自身からコンフィグレーションデータを書換えるための書換データ入力部１０４を含む。ＲＯＭ１４４は、ＣＰＵ１００に設定可能なコンフィグレーションデータの複数の設定値を記憶するとともに、ＣＰＵ１００が作動可能な訂正用コンフィグレーションデータを記憶する。正誤判定部１４２は、ＲＯＭ１１０から受けるコンフィグレーションデータを複数の設定値と比較することによってデータの正誤判定を実行し、データに誤りがある場合に、訂正用コンフィグレーションデータをＣＰＵ１００に設定する。【選択図】図１
2018194992.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアの動作を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能に構成されたコンフィグレーション対象デバイスに前記コンフィグレーションデータを設定するコンフィグレーションデータ設定装置であって、
前記コンフィグレーション対象デバイスは、ユーザが前記コンフィグレーション対象デバイス自身から前記コンフィグレーションデータ設定装置を通じて前記コンフィグレーションデータを書換えるためのデータ入力部を含み、
前記コンフィグレーション対象デバイスに設定可能なコンフィグレーションデータの複数の設定値を記憶するとともに、前記コンフィグレーション対象デバイスが作動可能な訂正用コンフィグレーションデータを記憶する記憶部と、
前記データ入力部からユーザにより入力された前記コンフィグレーションデータの書換データを前記複数の設定値と比較することによって前記書換データの正誤判定を実行し、前記書換データに誤りがある場合に、前記訂正用コンフィグレーションデータを前記コンフィグレーション対象デバイスに設定する正誤判定部とを備える、コンフィグレーションデータ設定装置。
【請求項２】
前記正誤判定部は、前記書換データに誤りがある場合に、前記訂正用コンフィグレーションデータが前記コンフィグレーション対象デバイスに設定されたことを前記コンフィグレーション対象デバイスへ通知するための処理を実行し、
前記コンフィグレーション対象デバイスは、前記コンフィグレーションデータ設定装置から前記通知を受けると、前記訂正用コンフィグレーションデータが前記コンフィグレーション対象デバイスに設定されたことをユーザに報知するための処理を実行する、請求項１に記載のコンフィグレーションデータ設定装置。
【請求項３】
前記データ入力部からユーザにより入力された前記書換データに対してビット誤り判定が行なわれ、
前記正誤判定部は、前記ビット誤り判定において正常と判定された書換データを前記複数の設定値と比較することによって前記書換データの正誤判定を実行する、請求項１又は請求項２に記載のコンフィグレーションデータ設定装置。
【請求項４】
前記コンフィグレーション対象デバイスは、ＣＰＵである、請求項１から請求項３のいずれか１項に記載のコンフィグレーションデータ設定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンフィグレーションデータ設定装置に関し、特に、ハードウェアの動作を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能に構成されたコンフィグレーション対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置に関する。
【背景技術】
【０００２】
ハードウェアの動作（たとえばＣＰＵ（Central  Processing  Unit）におけるＣＰＵコアやメモリの動作周波数等）を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能なデバイスが知られている（以下、このようなデバイスを「コンフィグレーション対象デバイス」、或いは単に「対象デバイス」とも称する。）。このような対象デバイスにおいては、設定されたコンフィグレーションデータに誤りがあると対象デバイスが作動しなくなる可能性があるので、不正なコンフィグレーションデータについては適切な対処が必要である。
【０００３】
たとえば、特許文献１（特開２００８−２３６４８８号公報）には、コンフィグレーションデータを検査する技術が開示されている。この文献には、コンフィグレーションデータに基づいて回路論理が変更可能な再構成可能論理デバイス（対象デバイス）と、再構成可能論理デバイスの入出力部の入出力属性を予め記憶する記憶部と、コンフィグレーションデータを検証する検証部とを備える再構成可能演算装置が開示されている。検証部は、コンフィグレーションデータにおける上記入出力部に関する情報を、記憶部に記憶された入出力属性と比較して、コンフィグレーションデータを検証する。このような構成により、簡易な方法でコンフィグレーションデータを検査することができるものとされる（特許文献１参照）。
【０００４】
また、特許文献２（特開２０１３−２５４３７号公報）には、コンフィグレーションデータに基づいてハードウェアの動作設定を変更可能なＦＰＧＡ（Field  Programmable  Gate  Array）システムが開示されている。このＦＰＧＡシステムでは、ＦＰＧＡに書込まれているコンフィグレーションデータにビット誤りが生じた場合に、第２記憶装置に保存されている置換用のコンフィグレーションデータが取得され、その置換用のコンフィグレーションデータによりビット誤りが訂正される（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２３６４８８号公報
【特許文献２】特開２０１３−２５４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
対象デバイスへのコンフィグレーションデータの書込（書換）方法としては、システムの外部から対象デバイスに書込むための外部接続ツールを用いてメーカー等において書込みを行なうか、又は、対象デバイスにソフトウェア的に実装された機能により対象デバイス自身からユーザが書込みを行なう手法があり得る。
【０００７】
後者の手法は、たとえば、コンフィグレーションデータによって対象デバイス（ＣＰＵ等）の動作周波数を変更可能であって、ユーザが対象デバイスの消費電力を抑制したい場合に、コンフィグレーションデータによって動作周波数をユーザが変更（低減）できるので、外部接続ツールを用いてメーカー等でデータを書込む必要がある前者の手法よりも利便性が高い。しかしながら、後者の手法は、ユーザが誤って不正なコンフィグレーションデータに書換えてしまう可能性がある。この場合、対象デバイスは、不正なコンフィグレーションデータに従ってハードウェアの再構成が行なわれた結果、正常に作動しなくなる可能性がある。そうすると、ユーザはコンフィグレーションデータを書換える手段を失い、故障ではないにも拘わらず復旧できないという事態が生じ得る。
【０００８】
上記の特許文献１，２では、対象デバイス自身からユーザがコンフィグレーションデータを書込可能な対象デバイスについて、上記のような問題及びその解決手段については特に検討されていない。
【０００９】
本開示は、かかる問題を解決するためになされたものであり、その目的は、対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置において、ユーザが不正なコンフィグレーションデータを書込んだ場合にもユーザが対処可能とすることである。
【課題を解決するための手段】
【００１０】
本開示に従うコンフィグレーションデータ設定装置は、ハードウェアの動作を規定するコンフィグレーションデータに基づいてハードウェアの動作設定を変更可能に構成された対象デバイスにコンフィグレーションデータを設定するコンフィグレーションデータ設定装置である。対象デバイスは、ユーザが対象デバイス自身からコンフィグレーションデータ設定装置を通じてコンフィグレーションデータを書換えるためのデータ入力部を含む。コンフィグレーションデータ設定装置は、記憶部と、正誤判定部とを備える。記憶部は、対象デバイスに設定可能なコンフィグレーションデータの複数の設定値を記憶するとともに、対象デバイスが作動可能な訂正用コンフィグレーションデータを記憶する。正誤判定部は、データ入力部からユーザにより入力されたコンフィグレーションデータの書換データを複数の設定値と比較することによって書換データの正誤判定を実行し、書換データに誤りがある場合に、訂正用コンフィグレーションデータを対象デバイスに設定する。
【発明の効果】
【００１１】
このコンフィグレーションデータ設定装置においては、対象デバイスのデータ入力部からユーザにより入力されたコンフィグレーションデータの書換データについて、対象デバイスに設定可能なコンフィグレーションデータの複数の設定値を用いて正誤判定が実行される。そして、不正な書換データに対しては、対象デバイスが作動可能な訂正用コンフィグレーションデータが対象デバイスに設定される。これにより、不正な書換データがユーザにより入力されたとしても、対象デバイスの作動が確保され、ユーザがコンフィグレーションデータを書換える手段を失うことはない。したがって、このコンフィグレーションデータ設定装置によれば、ユーザが不正なコンフィグレーションデータを書込んだとしても、ユーザは再度コンフィグレーションデータを書換えることができる。
【図面の簡単な説明】
【００１２】
【図１】本開示の実施の形態に従うコンフィグレーションデータ設定装置が適用されるコンフィグレーションシステムの全体構成図である。
【図２】図１に示すコンフィグレーションデータ設定装置の詳細な構成図である。
【図３】コンフィグレーションシステムにおいて用いられるコンフィグレーションデータ列を示した図である。
【図４】訂正用コンフィグレーションデータ格納用ＲＯＭに格納されているテーブル管理テーブルの一例を示した図である。
【図５】訂正用コンフィグレーションデータ格納用ＲＯＭに格納されている機能設定用テーブル群の一例を示した図である。
【図６】訂正用コンフィグレーションデータ格納用ＲＯＭに格納されている起動用データテーブルの一例を示した図である。
【図７】図１に示すコンフィグレーションデータ設定装置により実行される処理の手順を説明する第１のフローチャートである。
【図８】図１に示すコンフィグレーションデータ設定装置により実行される処理の手順を説明する第２のフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一又は相当部分には同一符号を付してその説明は繰返さない。
【００１４】
図１は、本開示の実施の形態に従うコンフィグレーションデータ設定装置が適用されるコンフィグレーションシステムの全体構成図である。図１を参照して、コンフィグレーションシステム１は、ＣＰＵ１００と、コンフィグレーションデータ格納用ＲＯＭ（Read  Only  Memory）１１０と、外部書込用ポート１２０と、書換データ正誤判定部１３０と、コンフィグレーションデータ設定装置１４０と、報知用コンソール１５０とを備える。
【００１５】
ＣＰＵ１００は、コンフィグレーションデータ設定装置１４０により設定されるコンフィグレーションデータに基づいてハードウェア（以下「ＨＷ（Hardware）」と記載することがある。）の動作設定を変更可能に構成されたコンフィグレーション対象デバイスである。具体的には、ＣＰＵ１００は、図示しないＣＰＵコアや、ＤＤＲ（Double  Data  Rate）メモリ、ＳｅｒＤｅｓ（Serializer/Deserializer）、Ｆｌａｓｈバス等を備えており、コンフィグレーションデータ設定装置１４０により設定されるコンフィグレーションデータに従ってハードウェアが再構成されることにより、ＣＰＵコアの動作周波数や、ＤＤＲメモリの動作周波数、ＳｅｒＤｅｓの動作、Ｆｌａｓｈバスの動作等が規定される。
【００１６】
コンフィグレーションデータ設定装置１４０は、コンフィグレーションデータ格納用ＲＯＭ１１０に格納されたコンフィグレーションデータを受け、コンフィグレーションデータの正誤判定を行なう。そして、コンフィグレーションデータ設定装置１４０は、不正なコンフィグレーションデータ（ＣＰＵ１００が作動し得ないようなコンフィグレーションデータ）に対しては、ＣＰＵ１００が作動可能なコンフィグレーションデータに訂正してＣＰＵ１００に設定する。
【００１７】
コンフィグレーションデータ格納用ＲＯＭ１１０は、データを消去／再書込可能な不揮発性のメモリであり、ＣＰＵ１００のＨＷ動作を規定するためのコンフィグレーションデータを一時的に記憶する。このコンフィグレーションデータ格納用ＲＯＭ１１０には、以下に示す２通りの手法でコンフィグレーションデータを書込むことができる。
【００１８】
第１の方法は、コンフィグレーションデータ格納用ＲＯＭ１１０にコンフィグレーションデータを書込むための外部接続ツール（図示せず）を外部書込用ポート１２０に接続し、コンフィグレーションシステム１の外部から外部書込用ポート１２０を通じてコンフィグレーションデータ格納用ＲＯＭ１１０にコンフィグレーションデータを書込む方法である。この第１の方法は、一般的には、外部接続ツールを有するメーカー等において実行される。
【００１９】
第２の方法は、コンフィグレーションの対象デバイスであるＣＰＵ１００からユーザがコンフィグレーションデータ格納用ＲＯＭ１１０にコンフィグレーションデータを書込む方法である。この第２の方法は、第１の方法のような外部接続ツールを用いることなく、ソフトウェア的な手法によってＣＰＵ１００からユーザがコンフィグレーションデータを書込むことができるので、ユーザにとっては利便性が高い。
【００２０】
そして、コンフィグレーションデータ格納用ＲＯＭ１１０は、上記の第１及び第２の方法のいずれかによって書込まれたコンフィグレーションデータを、バス１６０を通じてコンフィグレーションデータ設定装置１４０へ出力することができる。
【００２１】
書換データ正誤判定部１３０は、上記の第２の方法においてユーザによりＣＰＵ１００から書込まれたコンフィグレーションデータの書換データのビット誤りを検出する。書換データ正誤判定部１３０は、たとえば公知のＣＲＣ（Cyclic  Redundancy  Check）回路によって構成され、ＣＰＵ１００から受けるコンフィグレーションデータの書換データから生成されるＣＲＣデータと、ＣＰＵ１００から受ける書換データに付与されたＣＲＣデータとを比較することによって、ＣＰＵ１００から受けた書換データのビット誤りの有無を判定する。
【００２２】
上記のように、コンフィグレーションシステム１では、コンフィグレーションデータ格納用ＲＯＭ１１０からコンフィグレーションデータ設定装置１４０を通じてＣＰＵ１００（対象デバイス）へコンフィグレーションデータを設定可能であるところ、コンフィグレーションデータの書込（書換）方法としては、外部書込用ポート１２０に接続される外部接続ツールを用いてメーカー等において書込みを行なう上記第１の方法と、ＣＰＵ１００にソフトウェア的に実装された機能によりＣＰＵ１００からユーザが書込みを指示する上記第２の方法とがある。
【００２３】
ＣＰＵ１００自身からユーザが書込み（書換え）を指示する第２の方法は、たとえば、ユーザがＣＰＵ１００の消費電力を抑制したい場合に、コンフィグレーションデータによってＣＰＵ１００の動作周波数をユーザが変更（低減）することができるので、メーカー等に持ち込んでデータを書換える必要がある第１の方法よりもユーザにとって利便性が高い。しかしながら一方で、この方法は、ユーザが誤って不正なコンフィグレーションデータに書換えてしまう可能性がある。この場合、ＣＰＵ１００は、不正なコンフィグレーションデータに従ってハードウェアの再構成が行なわれる結果、正常に作動しなくなる可能性がある。
【００２４】
より詳しくは、ユーザによってコンフィグレーションデータが書換えられる場合、データの破損はなく書換データ正誤判定部１３０によって書換データのビット誤りは検出されないものの、不正なデータが入力される場合がある。たとえば、上述のように、ＣＰＵ１００はコンフィグレーションデータに従ってＣＰＵコアの動作周波数を規定可能であるところ、ＣＰＵコアの動作周波数として規定可能な周波数と異なる周波数が書換データとしてユーザにより入力される場合があり得る。この場合、データ構造自体の破損はないので、書換データ正誤判定部１３０ではデータの誤りは検出されない。そして、このような不正なコンフィグレーションデータがＣＰＵ１００に設定されると、ＣＰＵ１００が作動できなくなる。
【００２５】
その結果、ＣＰＵ１００からコンフィグレーションデータを書換えることができなくなり、ユーザは、コンフィグレーションデータを書換える手段を失う。すなわち、ハードウェアの故障ではないにも拘わらずユーザが復旧できない事態となり、この場合は、メーカー等において外部接続ツールを用いた上記第１の方法によってコンフィグレーションデータを再設定せざるを得なくなる。
【００２６】
そこで、この実施の形態に従うコンフィグレーションデータ設定装置１４０では、対象デバイスのＣＰＵ１００に設定されるコンフィグレーションデータについて、ＣＰＵ１００に設定可能なコンフィグレーションデータの複数の設定値を用いてコンフィグレーションデータの正誤判定が実行される。そして、不正なコンフィグレーションデータ（書換データ）に対しては、ＣＰＵ１００が作動可能な訂正用コンフィグレーションデータがＣＰＵ１００に設定される。これにより、不正な書換データがユーザにより入力されたとしても、ＣＰＵ１００の作動が確保され、ユーザがコンフィグレーションデータを書換える手段を失うことはない。したがって、この実施の形態によれば、ユーザによりＣＰＵ１００から不正なコンフィグレーションデータが入力されたとしても、ユーザは、再度コンフィグレーションデータを書換えることができる。以下、コンフィグレーションシステム１の構成についてさらに詳しく説明する。
【００２７】
ＣＰＵ１００は、ＨＷ設定部１０２と、書換データ入力部１０４と、訂正情報報知部１０６とを含む。ＨＷ設定部１０２は、バス１６２を通じてコンフィグレーションデータ設定装置１４０の正誤判定部１４２（後述）からコンフィグレーションデータを受け、その受けたコンフィグレーションデータに従ってＣＰＵ１００のＨＷ設定を実行する。具体的には、上述のように、ＣＰＵ１００は、図示しないＣＰＵコアや、ＤＤＲメモリ、ＳｅｒＤｅｓ、Ｆｌａｓｈバス等を備えており、ＨＷ設定部１０２は、正誤判定部１４２から受けるコンフィグレーションデータに従って予め定められた処理を実行することにより、ＣＰＵコアやＤＤＲメモリの各動作周波数や、ＳｅｒＤｅｓやＦｌａｓｈバスの各動作を規定する。
【００２８】
書換データ入力部１０４は、ユーザがＣＰＵ１００からコンフィグレーションデータ格納用ＲＯＭ１１０にコンフィグレーションデータを書込む（書換える）ための処理を実行する。書換データ入力部１０４は、ユーザによって入力されたコンフィグレーションデータの書換データを書換データ正誤判定部１３０へ出力する。この書換データ入力部１０４は、コンフィグレーションデータ格納用ＲＯＭ１１０にコンフィグレーションデータを書込む上記第２の方法を実現するものである。
【００２９】
訂正情報報知部１０６は、コンフィグレーションデータ設定装置１４０からＨＷ設定部１０２にコンフィグレーションデータが設定されると、バス１６４を通じてコンフィグレーションデータ設定装置１４０の訂正情報格納部１４６（後述）を参照し、設定されたコンフィグレーションデータが訂正されたことを示す訂正情報の有無を確認する。そして、訂正情報格納部１４６に訂正情報が格納されている場合には、訂正情報報知部１０６は、訂正情報格納部１４６からバス１６４を通じて訂正情報を取得し、取得された訂正情報をユーザへの報知用としての報知用コンソール１５０に出力する。
【００３０】
コンフィグレーションデータ設定装置１４０は、正誤判定部１４２と、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４と、訂正情報格納部１４６とを含む。正誤判定部１４２は、コンフィグレーションデータ格納用ＲＯＭ１１０からＣＰＵ１００に設定されるコンフィグレーションデータの正誤判定を実行する。より詳しくは、正誤判定部１４２は、コンフィグレーションデータ格納用ＲＯＭ１１０から取得されるコンフィグレーションデータ（書換データ）を、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４に予め記憶されている、ＣＰＵ１００に設定可能なコンフィグレーションデータの複数の設定値（詳細は後述）と比較する。そして、正誤判定部１４２は、その比較結果に基づいて、書換データ正誤判定部１３０のような従来のＣＲＣ等では判定できない不正なコンフィグレーションデータ（データ欠陥ではない不正な設定等）を検知する。
【００３１】
また、正誤判定部１４２は、コンフィグレーションデータ格納用ＲＯＭ１１０から取得されたコンフィグレーションデータに誤りがある場合（不正なコンフィグレーションデータの場合）には、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４に予め記憶されている、ＣＰＵ１００が作動可能な訂正用コンフィグレーションデータをＣＰＵ１００に設定する。さらに、正誤判定部１４２は、訂正用コンフィグレーションデータをＣＰＵ１００に設定するとともに、訂正情報格納部１４６に格納されている、コンフィグレーションデータが訂正されたことを示すフラグ（訂正情報）をオンにする。この正誤判定部１４２については、後ほどさらに詳しく説明する。
【００３２】
訂正用コンフィグレーションデータ格納用ＲＯＭ１４４は、データを消去／再書込可能な不揮発性のメモリであり、コンフィグレーションデータとしてＣＰＵ１００に設定可能な各種設定値を予め記憶している。一例として、この実施の形態では、ＣＰＵ１００のＣＰＵコアは、コンフィグレーションデータによってその動作周波数を切替可能であり、切替可能なＣＰＵコアの動作周波数（複数の設定値）が予め訂正用コンフィグレーションデータ格納用ＲＯＭ１４４に記憶されている。
【００３３】
また、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４は、正誤判定部１４２によってコンフィグレーションデータに誤り（不正なコンフィグレーションデータ）があると判定された場合に正誤判定部１４２によりＣＰＵ１００に設定される訂正用コンフィグレーションデータを予め記憶している。訂正用コンフィグレーションデータとしては、ＣＰＵ１００が作動可能な一のコンフィグレーションデータが設定される。この訂正用コンフィグレーションデータ格納用ＲＯＭ１４４についても、後ほどさらに詳しく説明する。
【００３４】
訂正情報格納部１４６は、正誤判定部１４２によりコンフィグレーションデータが訂正されたか否かを示すフラグ（訂正情報）を格納する。上述のように、正誤判定部１４２によりコンフィグレーションデータに誤りがあると判定されて訂正用コンフィグレーションデータがＣＰＵ１００に設定された場合に、正誤判定部１４２により当該フラグがオンにされる。当該フラグがオンであることは、訂正情報が存在することを示す。そして、訂正情報格納部１４６は、ＣＰＵ１００の訂正情報報知部１０６からの求めに応じて訂正情報をＣＰＵ１００へ出力する。
【００３５】
図２は、図１に示したコンフィグレーションデータ設定装置１４０の詳細な構成図である。図２を参照して、正誤判定部１４２は、ビット位置検出部２００と、テーブル管理部２１０と、データ正誤判定部２２０とを含む。訂正用コンフィグレーションデータ格納用ＲＯＭ１４４には、テーブル管理テーブル３００と、機能設定用テーブル群３１０と、起動用データテーブル３２０とが記憶されている。
【００３６】
ビット位置検出部２００は、コンフィグレーションデータ格納用ＲＯＭ１１０からコンフィグレーションデータのデータ列（以下「コンフィグレーションデータ列」とも称する。）を受ける。そして、ビット位置検出部２００は、コンフィグレーションデータ列から、データ列の先頭から数えたビット数（データ列先頭からのビット位置）とビットサイズのデータを取得し、取得したデータをテーブル管理部２１０へ出力する。
【００３７】
図３は、コンフィグレーションシステム１において用いられるコンフィグレーションデータ列を示した図である。図３を参照して、たとえば、コンフィグレーションデータ列の先頭からの６ビットには、ＣＰＵコアの動作周波数の設定値が格納される。ＣＰＵコアの動作周波数の設定値に続いて、コンフィグレーションデータ列の１４ビット目までの８ビットには、ＤＤＲメモリの動作周波数の設定値が格納される。さらに続いて、ＳｅｒＤｅｓやＦｌａｓｈバスの動作設定値等が格納され、コンフィグレーションデータ列の１０１７ビット目から最後尾の１０２４ビット目までの８ビットには、ＣＲＣデータが格納される。
【００３８】
図３とともに再び図２を参照して、ビット位置検出部２００は、具体的には、たとえば、コンフィグレーションデータ列の先頭から数えたビット数（０）とビットサイズ（６）のデータを取得してテーブル管理部２１０へ出力する。続いて、ビット位置検出部２００は、データ列の先頭から数えたビット数（６）とビットサイズ（８）のデータを取得してテーブル管理部２１０へ出力する。
【００３９】
テーブル管理部２１０は、ビット位置検出部２００によって取得された上記データを受けると、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４からテーブル管理テーブル３００を読出す。そして、テーブル管理部２１０は、テーブル管理テーブル３００を参照して、ビット位置検出部２００から受ける上記データ（データ列の先頭から数えたビット数及びビットサイズ）に該当するテーブル番号を取得する。そして、テーブル管理部２１０は、取得されたテーブル番号に対応するテーブルを訂正用コンフィグレーションデータ格納用ＲＯＭ１４４の機能設定用テーブル群３１０から読出す。
【００４０】
図４は、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４に格納されているテーブル管理テーブル３００の一例を示した図である。図４を参照して、テーブル管理テーブル３００には、図３に示したコンフィグレーションデータ列についての、先頭から数えたビット数及びビットサイズと、テーブル番号と、コンフィグレーションデータ列に含まれる各設定値に対応する機能設定用テーブル（後述）との対応関係が規定されている。たとえば、データ列の先頭からのビット数（ビット位置）が０でビットサイズが６の領域は、ＣＰＵコアの動作周波数の設定を示す領域であり（図３）、テーブル番号「１」が割り当てられるとともに、テーブル名称「ＣＰＵコア動作周波数」の機能設定用テーブルと対応付けられている。
【００４１】
同様に、たとえば、データ列の先頭からのビット数（ビット位置）が６でビットサイズが８の領域は、ＤＤＲメモリの動作周波数の設定を示す領域であり（図３）、テーブル番号「２」が割り当てられるとともに、テーブル名称「ＤＤＲメモリ動作周波数」の機能設定用テーブルと対応付けられている。
【００４２】
図５は、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４に格納されている機能設定用テーブル群３１０の一例を示した図である。図５を参照して、機能設定用テーブル群３１０は、図３に示したコンフィグレーションデータ列に含まれる各設定にそれぞれ対応する複数のテーブルを含む。各テーブルには、テーブル管理テーブル３００で対応付けられたテーブル番号が付与されている。そして、各テーブルには、当該テーブルに対応する設定について、ＣＰＵ１００に設定可能な複数の設定値が格納されている。
【００４３】
たとえば、テーブル番号「１」のＣＰＵコア動作周波数テーブルには、ＣＰＵ１００のＣＰＵコアに設定可能な複数の動作周波数（この例では５段階）が格納されており、各設定値に設定値番号が付与されている。同様に、テーブル番号「２」のＤＤＲメモリ動作周波数テーブルには、ＣＰＵ１００のＤＤＲメモリに設定可能な複数の動作周波数（この例では３段階）が格納されており、各設定値に設定値番号が付与されている。このＣＰＵコア動作周波数テーブルやＤＤＲメモリ動作周波数テーブルに格納されている各動作周波数以外の周波数がＣＰＵ１００に設定されると、ＣＰＵ１００が作動しない可能性がある。
【００４４】
再び図２を参照して、テーブル管理部２１０によって、ビット位置検出部２００により取得されたデータ（データ列の先頭から数えたビット数及びビットサイズ）に対応するテーブルが機能設定用テーブル群３１０から読出されると、データ正誤判定部２２０は、ビット位置検出部２００により取得されたデータで示されるデータ列の領域に格納されている設定値を、読出されたテーブルの各設定値と比較する。
【００４５】
データ正誤判定部２２０は、機能設定用テーブル群３１０から読出されたテーブル内にコンフィグレーションデータ列の設定値と一致するものがない場合には、テーブル管理部２１０を通じて、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４の起動用データテーブル３２０からＣＰＵ１００が作動可能な訂正用コンフィグレーションデータを取得する。そして、データ正誤判定部２２０は、該当するコンフィグレーションデータ列の設定値を起動用データテーブル３２０から取得されたデータ（設定値）に置き換える。データ正誤判定部２２０は、このような正誤判定及び必要に応じたデータの置き換えをコンフィグレーションデータ列の設定値毎に実施する。
【００４６】
図６は、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４に格納されている起動用データテーブル３２０の一例を示した図である。図６を参照して、起動用データテーブル３２０には、各テーブル番号に対して設定値番号が対応付けられて格納されている。この設定値番号は、図５に示した機能設定用テーブル群３１０の各テーブルにおいて設定値毎に対応付けられているものである。
【００４７】
たとえば、データ正誤判定部２２０によって、テーブル番号「１」のＣＰＵコア動作周波数テーブル内にコンフィグレーションデータ列のＣＰＵコア動作周波数設定値と一致するものがないと判定されると、テーブル管理部２１０により起動用データテーブル３２０が参照され、テーブル番号「１」に対応する設定値番号「１」が取得される。そして、テーブル管理部２１０によって、さらに、テーブル番号「１」のＣＰＵコア動作周波数テーブル（図５）が参照され、起動用データテーブル３２０から取得された設定値番号「１」に対応するＣＰＵコア動作周波数設定値（この例では８００ＭＨｚ）が訂正用データとして取得される。
【００４８】
再び図２を参照して、データ正誤判定部２２０は、コンフィグレーションデータ列の全ての設定値に対して、上述のような正誤判定及び誤り判定時の訂正用データへの置き換えを行なうと、コンフィグレーションデータ列をＣＰＵ１００へ出力する。また、正誤判定の結果、訂正用データへの置き換えが行なわれた場合には、データ正誤判定部２２０は、訂正情報格納部１４６に格納されているフラグ（訂正情報）をオンにする。
【００４９】
図７及び図８は、図１に示したコンフィグレーションデータ設定装置１４０により実行される処理の手順を説明するフローチャートである。まず、図７とともに図１及び図２を参照して、コンフィグレーションデータ設定装置１４０は、コンフィグレーションデータ格納用ＲＯＭ１１０からコンフィグレーションデータ列を読出す（ステップＳ１０）。
【００５０】
次いで、コンフィグレーションデータ設定装置１４０は、ビット位置検出部２００により、コンフィグレーションデータ列の先頭から数えたビット数（データ列の先頭からのビット位置）とビットサイズのデータを取得する（ステップＳ２０）。たとえば、後述のステップＳ１３０からの戻りでない初回処理の場合は、先頭からのビット数及びビットサイズとしてそれぞれ「０」「６」が取得され、ステップＳ１３０から戻った後の２回目の処理においては、先頭からのビット数及びビットサイズとしてそれぞれ「６」「８」が取得される。
【００５１】
続いて、コンフィグレーションデータ設定装置１４０は、ステップＳ２０において取得されたデータを用いて、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４のテーブル管理テーブル３００を参照する（ステップＳ３０）。そして、コンフィグレーションデータ設定装置１４０は、ステップＳ２０において取得された上記データに該当するテーブル番号を検出し、検出したテーブル番号に対応するテーブルを訂正用コンフィグレーションデータ格納用ＲＯＭ１４４の機能設定用テーブル群３１０から読込む（ステップＳ４０）。
【００５２】
次いで、コンフィグレーションデータ設定装置１４０は、ステップＳ４０において読込まれたテーブルに格納されている複数の設定値のうちの１つを読込む（ステップＳ５０）。さらに、コンフィグレーションデータ設定装置１４０は、ステップＳ１０において読出されたコンフィグレーションデータ列から、ビット位置検出部２００において検出されたビット位置及びビットサイズの領域に格納されているデータを取得し、コンフィグレーションデータとして設定された設定値を検出する（ステップＳ６０）。
【００５３】
次いで、コンフィグレーションデータ設定装置１４０は、ステップＳ６０において検出されたコンフィグレーションデータ列の設定値と、ステップＳ５０（後述のステップＳ１００から処理が戻されたときはステップＳ９０）で読込まれた設定値とを比較する（ステップＳ７０）。そして、コンフィグレーションデータ設定装置１４０は、両設定値が互いに一致するか否かを判定する（ステップＳ８０）。
【００５４】
両設定値が互いに一致するものと判定されると（ステップＳ８０においてＹＥＳ）、コンフィグレーションデータ設定装置１４０は、ステップＳ１３０（後述）へ処理を移行する。一方、ステップＳ８０において両設定値は互いに一致しないと判定されると（ステップＳ８０においてＮＯ）、コンフィグレーションデータ設定装置１４０は、ステップＳ５０において読込まれたテーブルに格納されている複数の設定値から別の設定値を１つ読込む（ステップＳ９０）。このとき、コンフィグレーションデータ設定装置１４０は、ステップＳ５０において読込まれたテーブルにおいて未読込の設定値が存在するか否かを判定する（ステップＳ１００）。
【００５５】
未読込の設定値が存在すると判定されると（ステップＳ１００においてＹＥＳ）、コンフィグレーションデータ設定装置１４０は、ステップＳ７０へ処理を戻す。一方、ステップＳ５０において未読込の設定値は存在しないと判定されると（ステップＳ１００においてＮＯ）、コンフィグレーションデータ設定装置１４０は、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４の起動用データテーブル３２０を参照し、正しい設定値（ＣＰＵ１００の作動が保証される設定値）を読込む。そして、コンフィグレーションデータ設定装置１４０は、ステップＳ６０において検出されたコンフィグレーションデータ列の設定値を、その読出された設定値に差替える（ステップＳ１１０）。
【００５６】
すなわち、ステップＳ６０において検出されたコンフィグレーションデータ列の設定値が、ステップＳ５０において読込まれたテーブルに格納されている複数の設定値のいずれとも一致しない場合は、ユーザによって不正なコンフィグレーションデータが書込まれたものであり、起動用データテーブル３２０を参照して、ＣＰＵ１００が作動可能な正しい設定値に差替えられる。
【００５７】
さらに、コンフィグレーションデータ設定装置１４０は、設定値の差替えとともに、訂正情報格納部１４６に格納されている、コンフィグレーションデータが訂正されたことを示すフラグを立てる（ステップＳ１２０）。
【００５８】
ステップＳ１２０に続いて、又はステップＳ８０において設定値の一致が確認された場合に（ステップＳ８０においてＹＥＳ）、コンフィグレーションデータ設定装置１４０は、コンフィグレーションデータ列の先頭からのビット数が全データに一致したか否かを判定する（ステップＳ１３０）。すなわち、このステップＳ１３０では、ビット位置検出部２００により検出されるビット位置がコンフィグレーションデータ列の末尾に到達したか否かが判定される。
【００５９】
データ列の先頭からのビット数が全データに一致しない場合には、正誤判定すべき他の設定値がまだ存在することから、コンフィグレーションデータ設定装置１４０は、ステップＳ２０へ処理を戻す。一方、ステップＳ１３０において、コンフィグレーションデータ列の先頭からのビット数が全データに一致したものと判定されると（ステップＳ１３０においてＹＥＳ）、図８に示されるステップＳ１４０へと処理が移行される。
【００６０】
なお、特に図示しないが、ステップＳ１３０においてＹＥＳと判定されると、コンフィグレーションデータについてＣＲＣデータの再計算が行なわれる。そして、再計算後のＣＲＣデータが元のコンフィグレーションデータに格納されたＣＲＣデータと不一致であれば、ＣＰＵ１００へ出力されるコンフィグレーションデータが訂正される。コンフィグレーションデータの差替えが行なわれなかった場合には、再計算後のＣＲＣデータは、コンフィグレーションデータ格納用ＲＯＭ１１０から読出されたコンフィグレーションデータに格納されたＣＲＣデータと一致するので、コンフィグレーションデータ格納用ＲＯＭ１１０から読出されたコンフィグレーションデータがＣＰＵ１００へ出力される。
【００６１】
図８を参照して、図７のステップＳ１３０に続いて、コンフィグレーションデータ設定装置１４０は、コンフィグレーションデータをバス１６２へ出力する（ステップＳ１４０）。図７のステップＳ１１０においてデータの差替えが行なわれた場合には、訂正されたコンフィグレーションデータがバス１６２を通じてＣＰＵ１００へ出力される。一方、図７のステップＳ１１０においてデータの差替えが行なわれなかった場合には、コンフィグレーションデータ格納用ＲＯＭ１１０から読出されたコンフィグレーションデータがＣＰＵ１００へそのまま出力される。
【００６２】
次いで、コンフィグレーションデータ設定装置１４０は、ＣＰＵ１００からコンフィグレーションデータの訂正情報の参照依頼があるか否かを判定する（ステップＳ１５０）。ＣＰＵ１００から訂正情報の参照依頼がないときは（ステップＳ１５０においてＮＯ）、コンフィグレーションデータ設定装置１４０は、以降の処理を実行することなくエンドへと処理を移行する。
【００６３】
ステップＳ１５０においてＣＰＵ１００から訂正情報の参照依頼があったものと判定されると（ステップＳ１５０においてＹＥＳ）、コンフィグレーションデータ設定装置１４０は、訂正情報格納部１４６に格納されている、コンフィグレーションデータの差替えを示す上記フラグをチェックする（ステップＳ１６０）。
【００６４】
そして、ステップＳ１７０において上記フラグがＯＮとなっていることが検出されると（ステップＳ１７０においてＹＥＳ）、コンフィグレーションデータ設定装置１４０は、コンフィグレーションデータに誤りがあった旨、及びコンフィグレーションデータが訂正された旨をＣＰＵ１００へ通知する（ステップＳ１８０）。これにより、コンフィグレーションデータが訂正されたことを示す訂正情報が報知用コンソール１５０に表示される。
【００６５】
以上のように、この実施の形態においては、コンフィグレーション対象デバイスのＣＰＵ１００に設定されるコンフィグレーションデータについて、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４の機能設定用テーブル群３１０を用いて、コンフィグレーションデータの正誤判定が実行される。そして、不正なコンフィグレーションデータ（書換データ）に対しては、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４の起動用データテーブル３２０を用いて、ＣＰＵ１００が作動可能な訂正用コンフィグレーションデータがＣＰＵ１００に設定される。これにより、不正な書換データがユーザにより入力されたとしても、ＣＰＵ１００の作動が確保され、ユーザがコンフィグレーションデータを書換える手段を失うことはない。したがって、この実施の形態によれば、ユーザによりＣＰＵ１００から不正なコンフィグレーションデータが入力されたとしても、ユーザは、再度コンフィグレーションデータを書換えることができる。
【００６６】
また、この実施の形態においては、ユーザによりＣＰＵ１００から不正なコンフィグレーションデータが入力された場合に、ＣＰＵ１００が作動可能な訂正用コンフィグレーションデータがＣＰＵ１００に設定されるとともに、その旨が報知用コンソール１５０によってユーザに報知される。したがって、この実施の形態によれば、ユーザは、報知用コンソール１５０を確認後、所望のコンフィグレーションデータを書込むことができる。
【００６７】
なお、上記において、ＣＰＵ１００は、本開示における「コンフィグレーション対象デバイス」の一実施例に対応し、書換データ入力部１０４は、本開示における「データ入力部」の一実施例に対応する。また、訂正用コンフィグレーションデータ格納用ＲＯＭ１４４は、本開示における「記憶部」の一実施例に対応し、正誤判定部１４２は、本開示における「正誤判定部」の一実施例に対応する。
【００６８】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６９】
１  コンフィグレーションシステム、１００  ＣＰＵ、１０２  ＨＷ設定部、１０４  書換データ入力部、１０６  訂正情報報知部、１１０  コンフィグレーションデータ格納用ＲＯＭ、１２０  外部書込用ポート、１３０  書換データ正誤判定部、１４０  コンフィグレーションデータ設定装置、１４２  正誤判定部、１４４  訂正用コンフィグレーションデータ格納用ＲＯＭ、１４６  訂正情報格納部、１５０  報知用コンソール、１６０，１６２，１６４  バス、２００  ビット位置検出部、２１０  テーブル管理部、２２０  データ正誤判定部、３００  テーブル管理テーブル、３１０  機能設定用テーブル群、３２０  起動用データテーブル。
【図１】
2018194992.tif 000003
【図２】
2018194992.tif 000004
【図３】
2018194992.tif 000005
【図４】
2018194992.tif 000006
【図５】
2018194992.tif 000007
【図６】
2018194992.tif 000008
【図７】
2018194992.tif 000009
【図８】
2018194992.tif 000010