(57)【要約】【目的】高速に且つ高い信頼性をもって情報データをメモリに書き込むことが可能な情報処理装置、この情報処理装置が形成されている半導体装置、及び情報データのベリファイ方法を提供することを目的とする。【構成】書込命令に応じて、ベリファイ制御部が、複数のメモリの各々に同一の情報データ片を書き込ませた後、これらメモリの各々から情報データ片を読み出す。この際、一致判定部が、メモリ各々から読み出された読出情報データ片が互いに一致しているか否かを判定する第１ベリファイを行ってベリファイ結果信号を外部出力すると同時に、ベリファイ制御部が、読出情報データ片各々の内の１つを情報データ片との一致判定を為す第２ベリファイ用の情報データ片として外部出力する。【選択図】図１
2015011609.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリを含む情報処理装置であって、
書込命令に応じて、前記複数のメモリの各々に同一の情報データ片を書き込ませた後、前記複数のメモリの各々から前記情報データ片を読み出すべく前記複数のメモリを制御するベリファイ制御部と、
前記ベリファイ制御部によって前記複数のメモリの各々から読み出された読出情報データ片が互いに一致しているか否かを判定する第１ベリファイを行いその結果を示すベリファイ結果信号を外部出力する一致判定部と、を有し、
前記ベリファイ制御部は、前記読出情報データ片各々の内の１つを、前記情報データ片との一致判定を為す第２ベリファイ用の情報データ片として外部出力することを特徴とする情報処理装置。
【請求項２】
前記ベリファイ制御部は、前記複数のメモリの各々に同時に前記情報データ片を書き込み、前記複数のメモリの各々から同時に前記情報データ片を読み出すことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報データ片はプログラムを担うプログラムデータであり、
電源投入に応じて、前記複数のメモリ各々の内の１のメモリから前記プログラムデータを読み出し、当該１のメモリから読み出された前記プログラムデータに従った制御を実行するＣＰＵと、
バージョンアップ用のプログラムデータ及びバージョンアップ命令信号を受信する受信部と、を有し、
前記ＣＰＵは、前記バージョンアップ命令信号の受信に応じて、前記バージョンアップ用のプログラムデータを前記複数のメモリ各々の内の１のメモリに書き込ませることを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記ＣＰＵは、前記書込命令に応じてディスエーブル状態に設定されることを特徴とする請求項３記載の情報処理装置。
【請求項５】
複数のメモリが形成されている半導体装置であって、
書込命令に応じて前記複数のメモリの各々に同一の情報データ片を書き込ませた後、前記複数のメモリの各々から前記情報データ片を読み出すべく前記複数のメモリを制御するベリファイ制御部と、
前記ベリファイ制御部によって前記複数のメモリの各々から読み出された読出情報データ片が互いに一致しているか否かを判定する第１ベリファイを行いその結果を示すベリファイ結果信号を外部出力する一致判定部と、を有し、
前記ベリファイ制御部は、前記読出情報データ片各々の内の１つを、前記情報データ片との一致判定を為す第２ベリファイ用の情報データ片として外部出力することを特徴とする半導体装置。
【請求項６】
複数のメモリを含む半導体装置であって、
第１のインタフェースを介して第１の書込データを受信する第１の受信部と、
第２のインタフェースを介して第２の書込データを受信する第２の受信部と、
前記複数のメモリのうち何れかのメモリに格納されているデータを読み出し当該データに従った制御動作を実行する制御部とを備え、
前記制御部は、前記第１の受信部にて前記第１の書込データを受信した場合には、前記データの読み出しを行った前記メモリとは異なるメモリに対して前記第１の書込データを書き込み、
前記第２の受信部は、前記第２の書込データを受信した場合には前記制御部に対して前記複数のメモリに対する並列書込指示と動作停止指示を行うと共に、前記複数のメモリ各々に対して前記第２の書込データの並列書込み処理を行うことを特徴とする半導体装置。
【請求項７】
情報データのベリファイ方法であって、
複数のメモリの各々に同一の情報データ片を書き込ませた後、前記複数のメモリの各々から前記情報データ片を同時に読み出し、
前記複数のメモリの各々から読み出された読出情報データ片が一致しているか否かを判定しその判定結果を第１ベリファイ結果として得ると同時に、前記読出情報データ片各々の内の１つと前記情報データ片とが一致しているか否かを判定してその判定結果を第２ベリファイ結果として得て、
前記第１ベリファイ結果及び前記第２ベリファイ結果が共に一致を示す場合に前記情報データ片の書き込みが成功したと判定することを特徴とする情報データのベリファイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、特に情報データを書き込むメモリを備えた情報処理装置、この情報処理装置が形成されている半導体装置、及び情報データのベリファイ方法に関する。
【背景技術】
【０００２】
電力会社から電力供給を受ける施設で使用された電力の使用量を測定する電力メータとして、測定した電力使用量を電力供給会社側に通知する通信機能を備えたスマートメータが知られている。スマートメータには、このような通信をマイコン制御で行うべく、ＣＰＵ（Central Processing Unit）及びプログラムが格納されているプログラムメモリが搭載されている。この際、プログラムメモリとしては、プログラムデータのバージョンアップに対応すべく、フラッシュメモリ等の不揮発性メモリが用いられる。しかしながら、プログラムのバージョンアップ過程において、新しいプログラムデータをメモリに書き込んでいる最中に停電等が生じると、書き込まれたプログラムデータが破壊されてしまい、スマートメータが動作不能に陥る可能性があった。
【０００３】
そこで、メモリ内の２つのメモリ領域に同一のプログラムデータを格納するようにし、バージョンアップ時には、新しいプログラムデータを、一方のメモリ領域に上書きし、その新プログラムデータが正しく書き込まれたことを確認した場合に、これを他方のメモリ領域にコピーするようにしたプログラム書き換え方法が提案された（例えば特許文献１参照）。このプログラム書き換え方法によれば、バージョンアップ時の停電等に起因して一方のメモリ領域に上書きされた新しいプログラムデータが破壊されてしまっても、他方のメモリ領域に格納されている旧プログラムデータを実行させることによって、動作不能状態を回避することが可能となる。
【０００４】
ところで、かかるプログラム書き換え方法では、プログラムデータが正しく書き込まれたか否かの判定を、チェックサムを用いた誤り検出によって行うようにしているので、その判定の信頼性が低い。
【０００５】
よって、高い信頼性が要求される、製品出荷前の初期バージョンのプログラムデータの書き込み時には、各メモリ領域に同一のプログラムデータを書き込んだ後、各メモリ領域からプログラムデータを読み出し、その読出プログラムデータが上記プログラムデータと同一であるか否かを判定する、いわゆるベリファイを行うことが考えられる。
【０００６】
しかしながら、２つのメモリ領域に対して順にこのようなベリファイを行うと、長大な時間が費やされてしまうという問題があった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−６３０４４号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、高速に且つ高い信頼性をもって情報データをメモリに書き込むことが可能な情報処理装置、この情報処理装置が形成されている半導体装置、及び情報データのベリファイ方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、複数のメモリを含む情報処理装置であって、書込命令に応じて、前記複数のメモリの各々に同一の情報データ片を書き込ませた後、前記複数のメモリの各々から前記情報データ片を読み出すべく前記複数のメモリを制御するベリファイ制御部と、前記ベリファイ制御部によって前記複数のメモリの各々から読み出された読出情報データ片が互いに一致しているか否かを判定する第１ベリファイを行いその結果を示すベリファイ結果信号を外部出力する一致判定部と、を有し、前記ベリファイ制御部は、前記読出情報データ片各々の内の１つを、前記情報データ片との一致判定を為す第２ベリファイ用の情報データ片として外部出力する。
【００１０】
また、本発明に係る半導体装置は、複数のメモリが形成されている半導体装置であって、書込命令に応じて前記複数のメモリの各々に同一の情報データ片を書き込ませた後、前記複数のメモリの各々から前記情報データ片を読み出すべく前記複数のメモリを制御するベリファイ制御部と、前記ベリファイ制御部によって前記複数のメモリの各々から読み出された読出情報データ片が互いに一致しているか否かを判定する第１ベリファイを行いその結果を示すベリファイ結果信号を外部出力する一致判定部と、を有し、前記ベリファイ制御部は、前記読出情報データ片各々の内の１つを、前記情報データ片との一致判定を為す第２ベリファイ用の情報データ片として外部出力する。
【００１１】
また、本発明に係る半導体装置は、複数のメモリを含む半導体装置であって、第１のインタフェースを介して第１の書込データを受信する第１の受信部と、第２のインタフェースを介して第２の書込データを受信する第２の受信部と、前記複数のメモリのうち何れかのメモリに格納されているデータを読み出し当該データに従った制御動作を実行する制御部とを備え、前記制御部は、前記第１の受信部にて前記第１の書込データを受信した場合には、前記データの読み出しを行った前記メモリとは異なるメモリに対して前記第１の書込データを書き込み、前記第２の受信部は、前記第２の書込データを受信した場合には前記制御部に対して前記複数のメモリに対する並列書込指示と動作停止指示を行うと共に、前記複数のメモリ各々に対して前記第２の書込データの並列書込み処理を行う。
【００１２】
また、本発明に係る情報データのベリファイ方法は、情報データのベリファイ方法であって、複数のメモリの各々に同一の情報データ片を書き込ませた後、前記複数のメモリの各々から前記情報データ片を同時に読み出し、前記複数のメモリの各々から読み出された読出情報データ片が一致しているか否かを判定しその判定結果を第１ベリファイ結果として得ると同時に、前記読出情報データ片各々の内の１つと前記情報データ片とが一致しているか否かを判定してその判定結果を第２ベリファイ結果として得て、前記第１ベリファイ結果及び前記第２ベリファイ結果が共に一致を示す場合に前記情報データ片の書き込が成功したと判定する。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る情報処理装置としてのスマートメータ１００の構成を示すブロック図である。
【図２】初期バージョンのプログラムデータをスマートメータ１００に書き込む際のシステム構成を示すブロック図である。
【図３】メモリ書込ベリファイ処理での内部動作を示すタイムチャートである。
【図４】メモリ書込ベリファイルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【００１５】
図１は、本発明に係る情報処理装置としてのスマートメータ１００の構成を示すブロック図である。尚、スマートメータ１００は、電力会社から電力の供給を受ける施設に設置されており、その施設の分電盤（図示せぬ）に設けられている電流センサ（図示せぬ）で検出された電流量に基づき当該施設内で使用された電力量を集計し、その電力使用量を電力会社に通知する（通信モード）。更に、スマートメータ１００は、その施設内で使用された電力量を監視する為の表示、小規模発電設備（例えば、太陽光発電パネル、風力発電機等）からの電力の受け入れ制御、或いは電気自動車の蓄電池に対する充放電制御等の電力管理制御を行う（電力管理モード）。
【００１６】
図１に示すように、スマートメータ１００は、送受信部１０、メモリ１１及び１２、ベリファイ制御部１３、ＣＰＵ（Central Processing Unit）１４、メモリ制御部１５及び１６、セレクタ１７、一致判定部１８、アンドゲート１９及び表示装置２０を含む。尚、これら各モジュール（１０〜１９）は、単一の半導体チップ、又は複数の半導体チップに分散して形成されている。
【００１７】
図１において、送受信部１０は、電力会社側から送信された送信信号を受信し、この送信信号に対して復調処理を施す。送受信部１０は、かかる復調処理によってバージョンアップ用のプログラムデータ及びバージョンアップ命令信号が得られた場合には、このバージョンアップ命令信号に応じて、バージョンアップ用のプログラムデータをプログラムデータＶＰＤとしてメモリ１１及び１２に供給すると共に、バージョンアップ命令信号ＶＰをＣＰＵ１４に供給する。また、送受信部１０は、ＣＰＵ１４から電力使用量を示す電力使用量データＰＷＤが供給された場合には、この電力使用量データＰＷＤに変調処理を施して得られた変調電力使用量信号を電力会社側に送信する。尚、送受信部１０は、上記した如き電力会社側との送受信を、アンテナを介した無線通信、或いはインターネット網等を介した有線通信によって行う。
【００１８】
メモリ１１及び１２は、データの書き換えが可能な、例えば不揮発性のフラッシュメモリからなる。メモリ１１及び１２の各々には、ＣＰＵ１４が実行するプログラム、つまり上記した通信モード及び電力管理モードを実現する為のプログラムを示すプログラムデータが格納される（後述する）。尚、メモリ１１及び１２には、同一のプログラムデータが格納される。
【００１９】
メモリ１１は、メモリ制御部１５から供給された書込信号ＷＲ１に応じて、送受信部１０から供給されたバージョンアップ用のプログラムデータＶＰＤ、又はメモリ制御部１５から供給された初期バージョンのプログラムデータＱＤ１を書き込む。また、メモリ１１は、メモリ制御部１５から供給された読出信号ＲＤ１に応じて、自身に格納されているプログラムデータ（ＶＰＤ、ＱＤ１）を読み出し、これを実行用のプログラムデータＰＤ１として、メモリ制御部１５、セレクタ１７及び一致判定部１８に供給する。
【００２０】
メモリ１２は、メモリ制御部１６から供給された書込信号ＷＲ２に応じて、上記したバージョンアップ用のプログラムデータＶＰＤ、又はメモリ制御部１６から供給された初期バージョンのプログラムデータＱＤ２を書き込む。また、メモリ１２は、メモリ制御部１６から供給された読出信号ＲＤ２に応じて、自身に格納されているプログラムデータ（ＶＰＤ、ＱＤ２）を読み出し、これをプログラムデータＰＤ２として、セレクタ１７及び一致判定部１８に供給する。
【００２１】
ベリファイ制御部１３は、ベリファイ用の入出力外部端子を介してプログラム書込命令信号ＩＰＷ、及び初期バージョンのプログラムを示す初期プログラムデータＩＰＤが供給された場合には、このプログラム書込命令信号ＩＰＷに応じて、以下の如きメモリ書込ベリファイ処理を実行する。メモリ書込ベリファイ処理において、ベリファイ制御部１３は、メモリ書込ベリファイをイネーブルにするベリファイイネーブル信号ＶＥＮをＣＰＵ１４に供給すると共に、プログラム書込信号ＳＷ及び上記した初期プログラムデータＩＰＤをメモリ制御部１５及び１６に供給する。また、メモリ書込ベリファイ処理において、ベリファイ制御部１３は、ベリファイ読出信号ＳＲをメモリ制御部１５及び１６に供給する。また、メモリ書込ベリファイ処理において、セレクタ１７を経由して読出プログラムデータＰＤＤが供給された場合には、ベリファイ制御部１３は、かかる読出プログラムデータＰＤＤをベリファイ用の読出プログラムデータＤＰＤとし、これを上記ベリファイ用の入出力外部端子を介して出力する。尚、メモリ書込ベリファイ処理における詳細なシーケンスについては後述する。
【００２２】
ＣＰＵ１４は、電源投入に応じて、内蔵レジスタ（図示せぬ）に記憶されているプログラム実行メモリ情報を取り込む。そして、ＣＰＵ１４は、このプログラム実行メモリ情報にて示されるメモリ（１１又は１２）を選択し、これをイネーブル状態に設定すべきメモリ選択信号ＭＳＬを、セレクタ１７、メモリ制御部１５及び１６に供給する。例えば、初期状態では、メモリ１１を示すプログラム実行メモリ情報が記憶されているので、ＣＰＵ１４は、メモリ１１を選択することを示す論理レベル１のメモリ選択信号ＭＳＬをセレクタ１７、メモリ制御部１５及び１６に供給する。尚、メモリ１２を示すプログラム実行メモリ情報が記憶されている場合には、ＣＰＵ１４は、メモリ１２を選択することを示す論理レベル０のメモリ選択信号ＭＳＬを、セレクタ１７、メモリ制御部１５及び１６に供給する。更に、電源投入に応じて、ＣＰＵ１４は、プログラムデータを読み出すべきプログラム読出信号ＲＰを、メモリ制御部１５及び１６に供給する。ここで、ＣＰＵ１４は、セレクタ１７を介して供給された読出プログラムデータＰＤＤ、すなわち、メモリ１１から読み出されたプログラムデータに従ってプログラムを実行することにより、上記した通信モード及び電力管理モードを実現する。例えば、ＣＰＵ１４は、分電盤に設けられている電流センサで検出された電流量ＣＳに基づき施設内で使用された電力量を集計し、その電力量を示す電力使用量データＰＷＤを送受信部１０に供給する。これにより、施設内で使用され電力使用量が電力会社側に通知される。また、ＣＰＵ１４は、例えば、上記した電力使用量データＰＷＤに基づき、その施設内で使用された電力量の推移を時間経過に沿って示すグラフ又は表を表示させるべき表示データを表示装置２０に供給する。これにより、表示装置２０は、電力使用量の推移を時間経過に沿って示すグラフ又は表を表示する。更に、スマートメータ１００は、太陽光発電パネル、風力発電機等の小規模発電設備からの電力の受け入れ制御、或いは電気自動車の蓄電池に対する充放電制御等の電力管理制御を行う。
【００２３】
又、ＣＰＵ１４は、送受信部１０からバージョンアップ命令信号ＶＰが供給された場合には、メモリ１１及び１２の内で、上記したプログラム実行メモリ情報にて示されるメモリとは異なる方のメモリを選択させるべきメモリ選択信号ＭＳＬと、プログラム書込信号ＷＰとをメモリ制御部１５及び１６に供給する。
【００２４】
又、ＣＰＵ１４は、ベリファイ制御部１３から、メモリ書込ベリファイをイネーブルにするベリファイイネーブル信号ＶＥＮが供給されると、論理レベル１のメモリ選択信号ＭＳＬをセレクタ１７、メモリ制御部１５及び１６に供給すると共に、同時イネーブル信号ＳＥをメモリ制御部１６及び一致判定部１８に供給する。その後、ＣＰＵ１４は、自身をディスエーブル状態に設定する。このＣＰＵ１４のディスエーブル状態は、メモリ書込ベリファイをイネーブルにするベリファイイネーブル信号ＶＥＮが供給されている間だけ維持される。
【００２５】
メモリ制御部１５は、論理レベル１のメモリ選択信号ＭＳＬに応じてイネーブル状態となる。かかるイネーブル状態において、メモリ制御部１５は、ＣＰＵ１４から供給されたプログラム読出信号ＲＰ又はベリファイ制御部１３から供給されたベリファイ読出信号ＳＲに応じて、読出信号ＲＤ１をメモリ１１に供給する。また、かかるイネーブル状態において、メモリ制御部１５は、ベリファイ制御部１３から供給された初期プログラムデータＩＰＤ及びプログラム書込信号ＳＷに応じて、この初期プログラムデータＩＰＤをプログラムデータＱＤ１としてメモリ１１に供給すると共に、これを書き込ませるべき書込信号ＷＲ１をメモリ１１に供給する。また、かかるイネーブル状態において、メモリ制御部１５は、ＣＰＵ１４からプログラム書込信号ＷＰが供給された場合にも、書込信号ＷＲ１をメモリ１１に供給する。尚、メモリ制御部１５は、論理レベル０のメモリ選択信号ＭＳＬに応じてディスエーブル状態となり、メモリ１１に対する上記読出信号ＲＤ１及び書込信号ＷＲ１の供給を停止する。また、メモリ制御部１５は、ベリファイ読出信号ＳＲに応じた読み出し動作の間だけ、後述する一致判定信号ＳＭによる判定結果を有効化する論理レベル１の一致判定有効化信号ＶＣをアンドゲート１９に供給する。
【００２６】
メモリ制御部１６は、論理レベル０のメモリ選択信号ＭＳＬに応じてイネーブル状態となる。かかるイネーブル状態において、メモリ制御部１６は、ＣＰＵ１４から供給されたプログラム読出信号ＲＰ又はベリファイ制御部１３から供給されたベリファイ読出信号ＳＲに応じて、読出信号ＲＤ２をメモリ１２に供給する。また、かかるイネーブル状態において、メモリ制御部１６は、ベリファイ制御部１３から供給された初期プログラムデータＩＰＤ及びプログラム書込信号ＳＷに応じて、この初期プログラムデータＩＰＤをプログラムデータＱＤ２としてメモリ１２に供給すると共に、これを書き込ませるべき書込信号ＷＲ２をメモリ１２に供給する。また、かかるイネーブル状態において、メモリ制御部１６は、ＣＰＵ１４からプログラム書込信号ＷＰが供給された場合にも、書込信号ＷＲ２をメモリ１２に供給する。尚、メモリ制御部１６は、本来、論理レベル１のメモリ選択信号ＭＳＬに応じてディスエーブル状態となるが、この間、ＣＰＵ１４から同時イネーブル信号ＳＥが供給されている場合には、メモリ選択信号ＭＳＬの状態に拘わらず、イネーブル状態となる。
【００２７】
セレクタ１７は、メモリ１１から読み出されたプログラムデータＰＤ１、及びメモリ１２ら読み出されたプログラムデータＰＤ２の内から、メモリ選択信号ＭＳＬに応じた方を選択し、これを読出プログラムデータＰＤＤとしてベリファイ制御部１３及びＣＰＵ１４に供給する。例えば、メモリ選択信号ＭＳＬが論理レベル１を示す場合、セレクタ１７は、プログラムデータＰＤ１を読出プログラムデータＰＤＤとしてベリファイ制御部１３及びＣＰＵ１４に供給する一方、メモリ選択信号ＭＳＬが論理レベル０を示す場合には、プログラムデータＰＤ２を読出プログラムデータＰＤＤとしてベリファイ制御部１３及びＣＰＵ１４に供給する。
【００２８】
一致判定部１８は、上記したプログラムデータＰＤ１とＰＤ２とが一致しているか否かの判定を第１ベリファイとして行い、両者が一致している場合には論理レベル１、一致していない場合には論理レベル０を有する一致判定信号ＳＭを生成し、これをアンドゲート１９に供給する。アンドゲート１９は、一致判定有効化信号ＶＣ及び一致判定信号ＳＭが共に論理レベル１である場合には論理レベル１、それ以外の場合には論理レベル０の第１ベリファイ結果信号ＶＥＲを生成し、これを外部端子を介して出力する。すなわち、アンドゲート１９は、一致判定有効化信号ＶＣが一致判定の実行タイミングを示す論理レベル１であり、且つ一致判定信号ＳＭがプログラムデータＰＤ１とＰＤ２とが一致していることを示す場合には「良好」を示す論理レベル１の第１ベリファイ結果信号ＶＥＲを外部出力する。一方、一致判定有効化信号ＶＣが一致判定の実行タイミングを示す論理レベル１であるものの、一致判定信号ＳＭがプログラムデータＰＤ１とＰＤ２との不一致を示す場合には、アンドゲート１９は、「不良」を示す論理レベル０の第１ベリファイ結果信号ＶＥＲを外部出力する。
【００２９】
以下に、スマートメータ１００の動作について、電力供給を受ける施設に設置された状態で為される通常動作と、メーカ側において初期バージョンのプログラムデータをメモリ（１１、１２）に書き込むべく為されるメモリ書込ベリファイ動作と、に分けて説明する。
【００３０】
［通常動作］
先ず、電源投入に応じて、ＣＰＵ１４は、メモリ１１に格納されているプログラムデータを読み出し、これをセレクタ１７経由で取り込んで、かかるプログラムデータに従った制御を実行する。これにより、スマートメータ１００は、上記した如き通信モード及び電力管理モードの動作を行う。
【００３１】
ここで、電力会社側から、バージョンアップ用のプログラムデータ及びバージョンアップ命令信号が送信された場合には、これらを送受信部１０において受信する。この際、ＣＰＵ１４は、受信したバージョンアップ用のプログラムデータをメモリ１１及び１２の内で、現時点においてプログラム実行に使用されていない方のメモリに上書きする。その後、ＣＰＵ１４は、プログラムの実行を一時中断し、バージョンアップ用のプログラムデータが上書きされた方のメモリからプログラムデータを読み出し、これを実行する。ここで、不具合が生じていなければ、ＣＰＵ１４は、上記したバージョンアップ用のプログラムデータを他方のメモリにコピーする。かかる一連の処理により、プログラムの自動バージョンアップが完了する。
【００３２】
［メモリ書込ベリファイ動作］
かかるメモリ書込ベリファイ動作を行うにあたり、図２に示すように、ベリファイ機能を有するプログラムライタ２００をスマートメータ１００に接続する。
【００３３】
プログラムライタ２００は、先ず、図３に示すように、プログラムデータの書き込みを命令する論理レベル１のプログラム書込命令信号ＩＰＷ、及び初期バージョンの初期プログラムデータＩＰＤをスマートメータ１００に供給する。プログラム書込命令信号ＩＰＷに応じて、スマートメータ１００のベリファイ制御部１３は、図４に示す如きメモリ書込ベリファイルーチンを実行する。
【００３４】
図４において、先ず、ベリファイ制御部１３は、図３に示す如き、メモリ書込ベリファイをイネーブル状態に設定する論理レベル１のベリファイイネーブル信号ＶＥＮをＣＰＵ１４に供給する（ステップＳ１）。ステップＳ１の実行により、ＣＰＵ１４は、図３に示すように、論理レベル１のメモリ選択信号ＭＳＬをセレクタ１７、メモリ制御部１５及び１６に供給すると共に、同時書き込みを指示する論理レベル１の同時イネーブル信号ＳＥをメモリ制御部１６及び一致判定部１８に供給し、その後、自身をディスエーブル状態に設定する。よって、プログラム書込命令信号ＩＰＷに応じて、ＣＰＵ１４は自身の動作を停止するディスエーブル状態となり、メモリ１１及び１２は共にメモリアクセスが可能なイネーブル状態となる。
【００３５】
次に、ベリファイ制御部１３は、プログラムライタ２００から供給された初期バージョンの初期プログラムデータＩＰＤをメモリ制御部１５及び１６に供給しつつ、書き込みを指示する論理レベル１のプログラム書込信号ＳＷをメモリ制御部１５及び１６に供給する（ステップＳ２）。ステップＳ２の実行により、初期プログラムデータＩＰＤがプログラムデータＱＤ１としてメモリ１１に順次書き込まれて行くと同時に、この初期プログラムデータＩＰＤがプログラムデータＱＤ２としてメモリ１２に順次書き込まれて行く。これにより、メモリ１１及び１２の各々には、同一の初期プログラムデータが書き込まれる。
【００３６】
次に、ベリファイ制御部１３は、初期プログラムデータＩＰＤの全てがメモリ１１及び１２に書き込まれたか否かの判定を、書き込まれたと判定するまで繰り返し実行する（ステップＳ３）。かかるステップＳ３において、初期プログラムデータＩＰＤの全てがメモリ１１及び１２に書き込まれたと判定された場合、ベリファイ制御部１３は、初期のベリファイ読出番地ＡＤとして「０」を設定する（ステップＳ４）。
【００３７】
次に、ベリファイ制御部１３は、ベリファイ読出番地ＡＤに書き込まれているプログラムデータ片の読み出しを行うべきベリファイ読出信号ＳＲをメモリ制御部１５及び１６に供給する（ステップＳ５）。ステップＳ５の実行により、ベリファイ読出番地ＡＤに対応したプログラムデータＰＤ１がメモリ１１から読み出されると共に、このベリファイ読出番地ＡＤに対応したプログラムデータＰＤ２がメモリ１２から読み出される。この際、一致判定部１８による第１ベリファイにより、プログラムデータＰＤ１とＰＤ２とが一致していると判定された場合には「良好」を示す第１ベリファイ結果信号ＶＥＲがプログラムライタ２００に供給される一方、両者が一致していないと判定された場合には「不良」を示す論理レベル０第１ベリファイ結果信号ＶＥＲがプログラムライタ２００に供給される。
【００３８】
次に、ベリファイ制御部１３は、セレクタ１７を経由してメモリ１１から読み出されたプログラムデータＰＤ１をベリファイ用の読出プログラムデータＤＰＤとしてプログラムライタ２００に送出する（ステップＳ６）。
【００３９】
ここで、プログラムライタ２００は、スマートメータ１００に供給した初期バージョンのプログラムデータと、メモリ１１から読み出された第２ベリファイ用の読出プログラムデータＤＰＤとが一致しているか否かの判定、つまり第２ベリファイを実行し、その判定結果を第２ベリファイ結果信号として得る。そして、プログラムライタ２００は、上記したステップＳ５の実行によってスマートメータ１００から供給された第１ベリファイ結果信号ＶＥＲと、上記第２ベリファイ結果信号とが共に一致を示す場合には「良好」、いずれか一方又は両者共に不一致を示す場合には「不良」を表すベリファイ結果を得る。
【００４０】
上記ステップＳ６の実行後、ベリファイ制御部１３は、ベリファイ読出番地ＡＤが、プログラムデータが格納されている最終番地ＡＥより大であるか否かを判定する（ステップＳ７）。かかるステップＳ７において、ベリファイ読出番地ＡＤが最終番地ＡＥより大きくないと判定された場合、ベリファイ制御部１３は、このベリファイ読出番地ＡＤに「１」を加算した番地を新たなベリファイ読出番地ＡＤとして設定する（ステップＳ８）。ステップＳ８の実行後、ベリファイ制御部１３は、上記ステップＳ５の実行に戻って前述した如き動作を繰り返し実行する。
【００４１】
すなわち、上記したステップＳ５〜Ｓ８を繰り返し実行することにより、ベリファイ制御部１３は、図３に示すように、ベリファイ読出番地ＡＤを「１」番地ずつインクリメントしつつ、メモリ１１及び１２の各々から同時に、各ベリファイ読出番地ＡＤに書き込まれているプログラムデータの読み出しを行う。この間、一致判定部１８により、ベリファイ読出番地ＡＤ毎に、メモリ１１及び１２各々から同時に読み出されたプログラムデータ片同士の一致判定が為され、その判定結果が第１ベリファイ結果信号ＶＥＲとしてプログラムライタ２００に供給される。更に、ベリファイ制御部１１は、各ベリファイ読出番地ＡＤ毎に、メモリ１１から読み出されたプログラムデータＰＤ１をベリファイ用の読出プログラムデータＤＰＤとしてプログラムライタ２００に送出する。この際、プログラムライタ２００は、各ベリファイ読出番地ＡＤ毎に、スマートメータ１００に供給した初期バージョンのプログラムデータと、メモリ１１から読み出されたベリファイ用の読出プログラムデータＤＰＤとが一致しているか否かを判定し、その判定結果を第２ベリファイ結果信号として得る。そして、プログラムライタ２００は、全てのベリファイ読出番地ＡＤにおいて、第１ベリファイ結果信号ＶＥＲと、上記第２ベリファイ結果信号とが共に一致を示す場合にだけ「良好」を示すベリファイ結果を得る。従って、この際、プログラムライタ２００は、メモリ１１及び１２に対する初期バージョンのプログラムデータの書き込みが成功したと判定し、書込成功を示す情報を表示する。一方、少なくとも１のベリファイ読出番地ＡＤにおいて、第１ベリファイ結果信号ＶＥＲ及び上記第２ベリファイ結果信号の内のいずれか一方が不一致を示す場合、又は両者共に不一致を示す場合には、プログラムライタ２００は、「不良」示すベリファイ結果を得る。従って、この際、プログラムライタ２００は、メモリ１１及び１２に対する初期バージョンのプログラムデータの書き込みが失敗したと判定し、書込失敗を示す情報を表示する。
【００４２】
この間、上記したステップＳ７において、ベリファイ読出番地ＡＤが最終番地ＡＥより大であると判定されると、ベリファイ制御部１３は、メモリ書込ベリファイをディスエーブル状態に設定すべく、図３に示すようにベリファイイネーブル信号ＶＥＮを論理レベル０の状態に遷移し（ステップＳ９）、このメモリ書込ベリファイ処理を終了する。論理レベル０のベリファイイネーブル信号ＶＥＮに応じて、ＣＰＵ１４は、イネーブル状態となり、上記した通信モード及び電力管理モードを司る制御が為されるようになる。
【００４３】
以上の如く、製品出荷前の段階において、初期プログラムデータ（ＩＰＤ）をスマートメータ１００に取り込むべく、先ず、この初期プログラムデータを、プログラムメモリとしてのメモリ１１及び１２各々に同時に書き込む（Ｓ２）。ここで、初期プログラムデータの書込が終了したら、メモリ１１及び１２の各々から同時に初期プログラムデータを読み出す（Ｓ５）。この間、両メモリから読み出された初期プログラムデータが互いに一致しているか否かを判定する第１ベリファイを行いその判定結果をベリファイ結果信号（ＶＥＲ）として外部出力しつつ、メモリ１１から読み出された初期プログラムデータ（ＰＤ１）を第２ベリファイ用の読出プログラムデータ（ＤＰＤ）として外部出力する（Ｓ６）。
【００４４】
したがって、プログラムライタ２００は、メモリ１１から読み出された読出プログラムデータと、上記した初期プログラムデータとが一致しているか否かを判定する第２ベリファイを行いつつ、第１ベリファイ結果信号により、メモリ１１及び１２の各々に同一のプログラムデータが書き込まれているか否かを知ることが可能となる。これにより、実質的に、メモリ１１に書き込まれたプログラムデータに対するベリファイと同時に、メモリ１２に書き込まれたプログラムデータに対するベリファイが行われることになる。
【００４５】
従って、本発明に係る情報処理装置によれば、プログラムデータを２つのメモリに書き込んだ後、一方のメモリに書き込まれたプログラムデータに対するベリファイを行ってから、他方のメモリに書き込まれたプログラムデータに対するベリファイを行う場合に比して、高速にベリファイ処理を終了させることができる。よって、本発明によれば、高速に且つ高い信頼性をもって同一のプログラムデータを２つのメモリに書き込むことが可能となる。
【００４６】
尚、上記実施例では、メモリ１１及び１２の２つのメモリに同一のプログラムデータを書き込むようにしているが、３つ以上の複数のメモリに同一のプログラムデータを書き込むようにしても良い。つまり、スマートメータ１００に３つ以上の複数のメモリを設け、ベリファイ制御部１３が、各メモリに同一の初期プログラムデータを書き込ませた後、メモリの各々から初期プログラムデータを同時に読み出す。この際、ベリファイ制御部１３は、各メモリから読み出された読出プログラムデータの内の１つを、初期プログラムデータとの一致判定を為す第２ベリファイ用のプログラムデータとして外部出力する。更に、この間、一致判定部１８が、３つ以上の複数のメモリ各々から読み出された読出プログラムデータ同士が一致しているか否かを判定する第１ベリファイを行い、その結果を示すベリファイ結果信号を外部出力するのである。
【００４７】
また、上記実施例では、情報処理装置の一例としてスマートメータ１００を用いて本発明の動作を説明したが、スマートメータ以外の他の情報処理装置にも適用可能である。また、上記実施例では、ＣＰＵ１４が実行するプログラムデータをメモリ１１及び１２に書き込むようにしているが、メモリに書き込むデータの種別はプログラムに限定されない。例えば、音声データ、映像データ、制御用パラメータデータ等の情報データを複数のメモリに書き込むようにしても良い。
【００４８】
要するに、本発明に係る情報処理装置においては、書込命令（ＩＰＷ）に応じて、ベリファイ制御部（１３）が複数のメモリの各々に同一の情報データ片（ＩＰＤ）を書き込ませた後、これらメモリの各々から情報データ片を読み出す。この際、一致判定部（１８）は、メモリ各々から読み出された読出情報データ片が互いに一致しているか否かを判定する第１ベリファイを行ってベリファイ結果信号（ＶＥＲ）を外部出力する。これと同時に、ベリファイ制御部（１８）が、上記した読出情報データ片各々の内の１つを、情報データ片（ＩＰＤ）との一致判定を為す第２ベリファイ用の読出情報データ片（ＤＰＤ）として外部出力する。これにより、複数のメモリの内の１のメモリから読み出された読出情報データ片（ＤＰＤ）と、情報データ片（ＩＰＤ）とが一致しているか否かを判定する第２ベリファイを行いつつ、第１ベリファイの結果（ＶＥＲ）により全てのメモリに同一のプログラムデータが書き込まれているか否かを知ることが可能となる。すなわち、メモリからの１回分の情報データ片の読出期間にて、全てのメモリに同一の情報データ片が書き込まれているか否かの判定（第１ベリファイ）、及びその情報データ片が正しく書き込まれているか否かの判定（第２ベリファイ）が並列に為されるのである。この際、第１及び第２ベリファイの結果により、書込を行うべき情報データ片が正しく全てのメモリに書き込まれたか否かを判定することができるようになる。
【００４９】
よって、本発明によれば、メモリ毎に読み出しを行い、その読み出し毎に情報データ片が正しく書き込まれているか否かの判定（第２ベリファイ）を行う場合に比して、高速にベリファイ処理を終了させることができるので、高速に且つ高い信頼性をもって複数のメモリに同一のプログラムデータを夫々書き込むことが可能となる。
【符号の説明】
【００５０】
１１、１２      メモリ
１３            ベリファイ制御部
１４            ＣＰＵ
１５、１６      メモリ制御部
１８            一致判定部
【図１】
2015011609.tif 000003
【図２】
2015011609.tif 000004
【図３】
2015011609.tif 000005
【図４】
2015011609.tif 000006