(57)【要約】【課題】  メモリのメモリ素子故障の故障率を下げ稼働率を上げることができるプラント制御装置を得ることである。【解決手段】  マイクロプロセッサ１２からみて一つのアドレスで実ハード上は複数のメモリにアクセス可能とし、書き込み時はすべてのバンクメモリ１１ａ〜１１ｃに書き込み、読み出しはエラーの発生していないバンクメモリ１１ａ〜１１ｃデータを読み出し使用する。エラーの発生はバンクＥＣＣ生成／照合修正回路１４ａ〜１４ｃの出力信号に基づいて判定する。これにより、メモリ読み出し時に“２ビット以上エラー”が発生しても、複数バンクの同一アドレスに“２ビット以上エラー”が発生しない限り正常運転を継続できる。【選択図】  図１
2006072618.tif 000002
【特許請求の範囲】
【請求項１】
プロセス演算制御に必要なデータの読み書きが行われるバンクメモリと、ＥＣＣデータが記憶されるバンクＥＣＣメモリと、前記バンクメモリと前記バンクＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うバンクＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のバンクゲートと、前記バンクメモリへのデータの入出力を許可するための第２のバンクゲートと、前記バンクＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のバンクゲートを開くバンクゲート制御回路とをそれぞれ三重化し、プロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力するアドレスデコード回路と、前記マイクロプロセッサにクロックを供給するマイクロプロセッサ周辺回路と、三重化されたバンクＥＣＣ生成／照合修正回路の判定結果に基づいて三重化されたバンクメモリのうちエラーの発生していないバンクメモリに対応する第１のバンクゲートを開いてそのバンクメモリと入出力を行うゲート制御回路とを備えたことを特徴とするプラント制御装置。
【請求項２】
プロセス演算制御に必要なデータの読み書きが行われるバンクメモリと、ＥＣＣデータが記憶されるバンクＥＣＣメモリと、前記バンクメモリと前記バンクＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うバンクＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のバンクゲートと、前記バンクメモリへのデータの入出力を許可するための第２のバンクゲートと、前記バンクＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のバンクゲートを開くバンクゲート制御回路とをそれぞれ三重化し、プロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力するアドレスデコード回路と、前記マイクロプロセッサにクロックを供給するマイクロプロセッサ周辺回路と、三重化された第１のバンクゲートと第２のバンクゲートとの間のデータバスから得られるデータを照合し一致するデータのいずれかの第１のバンクゲートを開きそのバンクメモリと入出力を行うゲート制御回路とを備えたことを特徴とするプラント制御装置。
【請求項３】
プロセス演算制御に必要なデータの読み書きが行われるメモリと、ＥＣＣデータが記憶されるＥＣＣメモリと、前記メモリと前記ＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のゲートと、前記メモリへのデータの入出力を許可するための第２のゲートと、前記ＥＣＣ生成／照合修正回路がエラー無しもしくは２ビットエラーを検出したときは第２のゲートを開き１ビットエラーを検出したときは前記第２のゲートを閉じるゲート制御回路と、前記ＥＣＣ生成／照合修正回路が１ビットエラーもしくは２ビットエラーを検出したときは割り込みを発生させるマイクロプロセッサ周辺回路と、プロセス制御演算を行いアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力すると共に前記マイクロプロセッサ周辺回路が１ビットエラーによる割り込み信号を発生させたときはメモリ素子の恒久故障か否かを判定するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力し前記第１のゲートを開くアドレスデコード回路と、前記マイクロプロセッサがメモリ素子の恒久故障であると判定したときはそのメモリ素子恒久故障アドレスを記憶すると共にその代替アドレスを記録するアドレスデコーダマップ情報回路とを備えたことを特徴とするプラント制御装置。
【請求項４】
プロセス演算制御に必要なデータの読み書きが行われるメモリと、ＥＣＣデータが記憶されるＥＣＣメモリと、前記メモリと前記ＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のゲートと、前記メモリへのデータの入出力を許可するための第２のゲートと、前記ＥＣＣ生成／照合修正回路がエラー無しもしくは２ビットエラーを検出したときは第２のゲートを開き１ビットエラーを検出したときは前記第２のゲートを閉じるゲート制御回路と、起動時にメモリスキャン中信号を出力して前記メモリ及び前記ＥＣＣメモリに所定の診断データを書き込む故障メモリ検出回路と、前記故障メモリ検出回路の書き込んだ診断データに基づき前記ＥＣＣ生成／照合修正回路が１ビットエラーもしくは２ビット以上エラーと判定したときはそのアドレスは故障と判定してメモリ素子恒久故障アドレスを記憶すると共にその代替アドレスを記録するアドレスデコーダマップ情報回路と、前記故障メモリ検出回路からのメモリスキャン中信号が継続中にイニシャライズ中信号を出力するイニシャライズ信号生成回路と、前記イニシャライズ信号生成回路がイニシャライズ中信号を出力しているときは動作を停止しイニシャライズ中信号が出力されなくなるとプロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記イニシャライズ信号生成回路がイニシャライズ中信号を出力しているとき及び前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力し前記第１のゲートを開くアドレスデコード回路と、前記マイクロプロセッサにクロックを供給したり周辺回路からの割り込み要求を受けて前記マイクロプロセッサに割り込みを発生させるマイクロプロセッサ周辺回路とを備えたことを特徴とするプラント制御装置。
【請求項５】
プロセス演算制御に必要なデータの読み書きが行われるメモリと、ＥＣＣデータが記憶されるＥＣＣメモリと、前記メモリと前記ＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のゲートと、前記メモリへのデータの入出力を許可するための第２のゲートと、前記ＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のゲートを開くゲート制御回路と、前記ＥＣＣ生成／照合修正回路が１ビットエラーもしくは２ビットエラーを検出したときは割り込みを発生させるマイクロプロセッサ周辺回路と、プロセス制御演算を行いアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力すると共に前記マイクロプロセッサ周辺回路が１ビットエラーによる割り込み信号を発生させたときはメモリ素子の恒久故障か否かを判定するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力し前記第１のゲートを開くアドレスデコード回路とを備え、前記マイクロプロセッサは、前記メモリ素子の恒久故障と判定したときもしくは前記ＥＣＣ生成／照合修正回路が２ビット以上エラーを検出したときは、そのメモリ素子を恒久故障メモリ素子としてメモリ故障テーブルに記憶し、メモリ確保の際に取得されたメモリ領域に前記恒久故障メモリ素子が含まれる場合は再確保することを特徴とするプラント制御装置。
【請求項６】
プロセス演算制御に必要なデータの読み書きが行われるメモリと、ＥＣＣデータが記憶されるＥＣＣメモリと、前記メモリと前記ＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のゲートと、前記メモリへのデータの入出力を許可するための第２のゲートと、前記ＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のゲートを開くゲート制御回路と、プロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力し第１のゲートを開くアドレスデコード回路と、前記マイクロプロセッサにクロックを供給したり周辺回路からの割り込み要求を受けて前記マイクロプロセッサに割り込みを発生させるマイクロプロセッサ周辺回路とを備え、前記マイクロプロセッサは、起動時に恒久故障メモリの情報を記憶するための正常なメモリ領域を確保し、残りのメモリ領域に対してメモリ素子の恒久故障チェックし正常なメモリ領域のみを開放することを特徴とするプラント制御装置。
【請求項７】
プロセス演算制御に必要なデータの読み書きが行われるメモリと、ＥＣＣデータが記憶されるＥＣＣメモリと、前記メモリと前記ＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のゲートと、前記メモリへのデータの入出力を許可するための第２のゲートと、前記ＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のゲートを開くゲート制御回路と、プロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力し第１のゲートを開くアドレスデコード回路と、前記マイクロプロセッサにクロックを供給したり周辺回路からの割り込み要求を受けて前記マイクロプロセッサに割り込みを発生させるマイクロプロセッサ周辺回路とを備え、前記マイクロプロセッサは、前記ＥＣＣ生成／照合修正回路が前記メモリのうちアプリケーションが記憶された領域で１ビットエラーを検出したときは、１ビットエラーが発生した領域に記憶されている内容を前記メモリの予備領域に移すことを特徴とするプラント制御装置。
【請求項８】
プロセス演算制御に必要なデータの読み書きが行われるメモリと、ＥＣＣデータが記憶されるＥＣＣメモリと、前記メモリと前記ＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のゲートと、前記メモリへのデータの入出力を許可するための第２のゲートと、前記ＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のゲートを開くゲート制御回路と、プロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力し第１のゲートを開くアドレスデコード回路と、前記マイクロプロセッサにクロックを供給したり周辺回路からの割り込み要求を受けて前記マイクロプロセッサに割り込みを発生させるマイクロプロセッサ周辺回路とを備え、前記マイクロプロセッサは、前記メモリのＲＯＭに記憶されたＯＳを一旦ＲＡＭに展開して動作させ、前記ＥＣＣ生成／照合修正回路が前記ＯＳの記憶されたメモリ領域で１ビットエラーを検出したときは、１ビットエラーが発生した領域に記憶されている内容を前記メモリの予備領域に移すことを特徴とするプラント制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサを用いてプラントプロセスを制御するプラント制御装置に関する。
【背景技術】
【０００２】
一般に、プラント制御装置においては、マイクロプロセッサ搭載の制御基板が主流となっている。この種の制御基板にはメモリチップも搭載されており、そのメモリ空間上に展開されたプログラムとデータとでプラントプロセスの制御を実行している。
【０００３】
メモリチップはメモリ素子の集合体であり、メモリ素子には確率的にデータ化けが発生するのが常識である。メモリ素子が故障するとマイクロプロセッサが読み出したときに誤った値を読み出すため正常に制御できなくなる。そのためメモリ素子のデータ化けを検出する手段が必要となる。そこで、読み出し時にメモリの１ビット故障が検出可能なパリティ方式が用いられ、以前は、このパリティ方式が主流であったが、近年では、読み出し時には１ビット故障は修正され、２ビット以上故障は検出のみ可能なＥＣＣ（Error correcting code）方式が主流になっている。
【０００４】
ここで、制御パラメータのメモリを常用と二つの比較用とで三重化をして、この相互のメモリ内容を制御周期毎に比較及びリフレッシュし制御演算を実行すると共に、相互のメモリ内容に相違が生じたときに報知するようにしたものがある（例えば、特許文献１参照）。また、ハードエラーが検出されるとハードエラーを有するＳＤＲＡＭメモリバンク行アドレスをＳＤＲＡＭ内のそのバンクにおけるスペア行に再マッピングできるようにするコマンドが発せられ、スペアメモリのために追加のモジュールを必要としない自己回復メモリがある（例えば、特許文献２参照）。
【特許文献１】特開平１１−７３２０２号公報
【特許文献２】特開２００２−２７９７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、現在標準的になっているＥＣＣ方式でも２ビット以上の故障では正常値を読み出すことはできない。メモリ素子でのデータ化けの症状には一過性故障と恒久故障とがあり、一過性故障は再度書き込めば正常状態に復旧できるが、恒久故障の場合は再書き込みしても復旧できない。
【０００６】
メモリにはＲＯＭ／ＲＡＭといった種類があり、ＲＡＭは制御運転中にマイクロプロセッサから何度でも読み書き可能である。ＲＯＭには、製造後は全く書き換え不可能なマスクＲＯＭ、メモリチップを基板から外して特殊装置を使えば消去／書き換え可能なＥＰＲＯＭ、基板上でメモリチップのアドレス単位での消去／書き込みが可能なＥＥＰＲＯＭ、基板上でメモリチップの一区画単位で一括消去／書き込みが可能なフラッシュメモリという種類がある。
【０００７】
一過性故障でも、マスクＲＯＭやＥＰＲＯＭでは、メモリの特性上運転中に基板実装状態で書き込みによる復旧ができない。ＥＥＰＲＯＭやフラッシュメモリでも、基板上に消去／書き換え機能を持たないと書き込みによる復旧ができない。メモリチップ内のメモリ素子の集積度はこれまでも上がり続けており、これからも上がり続けることが予測される。そのため、メモリチップ単位でみると故障の頻度が上がっていくことが予測される。
【０００８】
プラント制御装置は、一般に１０年以上の寿命が要求される。そのため恒久故障の箇所を複数個メモリチップ内に持ったままＥＣＣ機能で修正しながら運用されることが予測される。恒久故障となった箇所に、さらに１ビット一過性故障が発生した場合、２ビット以上データ化けとなりＥＣＣ方式では修正がきかなくなる。メモリチップのみを交換できる構造であれば交換すればよいが、プラント制御装置では対振動／衝撃の対策のためメモリが基板に直付けされているものが多く、一部のメモリ故障により基板単位で交換する必要がある。
【０００９】
本発明の目的は、メモリのメモリ素子故障の故障率を下げ稼働率を上げることができるプラント制御装置を得ることである。
【課題を解決するための手段】
【００１０】
本発明のプラント制御装置は、プロセス演算制御に必要なデータの読み書きが行われるバンクメモリと、ＥＣＣデータが記憶されるバンクＥＣＣメモリと、前記バンクメモリと前記バンクＥＣＣメモリとの照合を行いエラー無しか１ビットエラーか２ビット以上エラーかを判定し１ビットエラーのときはデータ修正を行うバンクＥＣＣ生成／照合修正回路と、前記データバスへのデータの入出力を許可するための第１のバンクゲートと、前記バンクメモリへのデータの入出力を許可するための第２のバンクゲートと、前記バンクＥＣＣ生成／照合修正回路がエラー無しを検出したとき前記第２のバンクゲートを開くバンクゲート制御回路とをそれぞれ三重化し、プロセス制御演算を行うと共にアドレスバス上に使用するアドレス情報を出力しデータバス上のデータを入出力するマイクロプロセッサと、前記マイクロプロセッサからアドレスバス上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号を出力するアドレスデコード回路と、前記マイクロプロセッサにクロックを供給したり周辺回路からの割り込み要求を受けて前記マイクロプロセッサに割り込みを発生させるマイクロプロセッサ周辺回路と、三重化されたバンクＥＣＣ生成／照合修正回路の判定結果に基づいて三重化されたバンクメモリのうちエラーの発生していないバンクメモリに対応する第１のバンクゲートを開いてそのバンクメモリと入出力を行うゲート制御回路とを備えたことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、マイクロプロセッサからみて一つのアドレスが実ハード上は複数のメモリの構成とし、書き込み時はすべてのバンクメモリに書き込み、読み出しはエラーの発生していないデータを使用するので、メモリ読み出し時に２ビット以上エラーが発生しても、複数バンクの同一アドレスに２ビット以上エラーが発生しない限り正常運転を継続できる。従って、プラント制御装置としての故障率を下げ稼働率を上げることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を説明する。図１は本発明の第１の実施の形態に係わるプラント制御装置の構成図である。三重化されたバンクメモリ１１ａ、１１ｂ、１１ｃは、プロセス演算制御に必要なデータが記憶されマイクロプロセッサ１２からのライト／リード信号１ｄにより読み書きが行われる。各々のバンクメモリ１１ａ、１１ｂ、１１ｃに対応してバンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃが設けられている。
【００１３】
各々のバンクメモリ１１ａ、１１ｂ、１１ｃ及びバンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃに対応して、バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃが設けられ、各々のバンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃは、バンクメモリ１１ａ、１１ｂ、１１ｃとバンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃとの照合を行い、“エラー無し”か“１ビットエラー”か“２ビット以上エラー”かを判定し、ＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３を出力する。また、“１ビットエラー”のときはデータ修正を行う。各々のバンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃは、バンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃとバンクＥＣＣデータバス２６ａ、２６ｂ、２６ｃを介して接続されている。
【００１４】
第１のバンクゲート１５ａ、１５ｂ、１５ｃと第２のバンクゲート１６ａ、１６ｂ、１６ｃとは、第１のバンクデータバス１７ａ、１７ｂ、１７ｃで接続され、第１のバンクゲート１５ａ、１５ｂ、１５ｃはデータバス１８へのデータの入出力を許可するものである。第２のバンクゲート１６ａ、１６ｂ、１６ｃは第２のバンクデータバス１９ａ、１９ｂ、１９ｃを介してバンクメモリ１１ａ、１１ｂ、１１ｃに接続され、バンクメモリ１１ａ、１１ｂ、１１ｃへのデータの入出力を許可するものである。
【００１５】
バンクゲート制御回路２０ａ、２０ｂ、２０ｃは、バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃからのＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３に基づいて、第２のバンクゲート１６ａ、１６ｂ、１６ｃを開閉するためのバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３を出力する。例えば、バンクゲート制御回路２０ａ、２０ｂ、２０ｃは、バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃが“エラー無し”を検出したときは、第２のバンクゲート１６ａ、１６ｂ、１６ｃを開く。第２のバンクゲート１６ａ、１６ｂ、１６ｃは、バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃにバンクゲート状態信号１ｖ−１、１ｖ−２、１ｖ−３を出力する。
【００１６】
マイクロプロセッサ１２は、プロセス制御演算を行うと共に、アドレスバス２１上に使用するアドレス情報を出力し、データバス１８上のデータを入出力する。アドレスデコード回路２２は、マイクロプロセッサ１２からアドレスバス２１上に出力されるアドレス情報からアクセス対象を判定したときは、メモリ選択信号１ｇや周辺回路２４への周辺回路選択信号１ｙを出力する。マイクロプロセッサ周辺回路２３はマイクロプロセッサ１２にクロックを供給する。
【００１７】
また、ゲート制御回路２５はバンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃの判定結果であるＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３に基づいて、第１のバンクゲート１５ａ、１５ｂ、１５ｃに対して、バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３を出力する。すなわち、バンクメモリ１１ａ、１１ｂ、１１ｃのうちエラーの発生していないバンクメモリ１１ａ、１１ｂ、１１ｃに対応する第１のバンクゲート１５ａ、１５ｂ、１５ｃを開いてそのバンクメモリ１１ａ、１１ｂ、１１ｃと入出力を行うものである。
【００１８】
次に、動作を説明する。まず、マイクロプロセッサ１２がメモリに書き込む場合について説明する。マイクロプロセッサ１２はアドレスバス２１に書き込み先のバンクメモリ１１ａ、１１ｂ、１１ｃのアドレスを出力すると共に、データバス１８には書き込むデータを出力する。また、ライト／リード信号１ｄとしてライト指令を出力する。アドレスデコード回路２２はアドレスバス２１上のアドレス情報を解析する。いま、バンクメモリ１１ａ、１１ｂ、１１ｃへの書き込みであるのでバンクメモリ１１ａ、１１ｂ、１１ｃへのアクセスと判定し、メモリ選択信号１ｇを選択状態にし、周辺回路選択信号１ｙを非選択状態にする。
【００１９】
ゲート制御回路２５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへの書き込みと判定し、バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３を開状態にする。第１のバンクゲート１５ａ、１５ｂ、１５ｃはバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３をそれぞれ読み込む。バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３は開状態であるのでデータバス１８と第１のバンクデータバス１７ａ、１７ｂ、１７ｃとを接続する。
【００２０】
バンクゲート制御回路２０ａ、２０ｂ、２０ｃはライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへの書き込みであると判定し、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３を開状態にする。第２のバンクゲート１６ａ、１６ｂ、１６ｃはバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３をそれぞれ読み込み、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３が開状態であるので第１のバンクデータバス１７ａ、１７ｂ、１７ｃと第２のバンクデータバス１９ａ、１９ｂ、１９ｃとを接続し、バンクゲート状態信号１ｖ−１、１ｖ−２、１ｖ−３に開状態を出力する。
【００２１】
バンクメモリ１１ａ、１１ｂ、１１ｃは、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、バンクメモリ１１ａ、１１ｂ、１１ｃへの書き込みと判定し、さらにアドレスバス２１からアドレス情報と第２のバンクデータバス１９ａ、１９ｂ、１９ｃから書き込みデータ情報とを読み込み、該当アドレスのバンクメモリ１１ａ、１１ｂ、１１ｃに書き込む。
【００２２】
バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃは、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、バンクメモリ１１ａ、１１ｂ、１１ｃへの書き込みと判定し、さらに第１のバンクデータバス１７ａ、１７ｂ、１７ｃから書き込みデータを読み込み、ＥＣＣデータを生成しバンクＥＣＣデータバス２６ａ、２６ｂ、２６ｃにＥＣＣデータを書き込む。
【００２３】
バンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃは、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへの書き込みと判定し、さらにアドレスバス２１からアドレス情報とバンクＥＣＣデータバス２６ａ、２６ｂ、２６ｃからＥＣＣデータを読み込み、該当アドレスのバンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃに書き込む。周辺回路２４は周辺回路選択信号１ｙを読み込み、周辺回路選択信号１ｙは非選択状態なので周辺回路２４へのアクセスではないと判断する。
【００２４】
次に、マイクロプロセッサ１２がメモリから読み出す場合について説明する。マイクロプロセッサ１２はアドレスバス２１に読み込み元のメモリのアドレスを書き込み、ライト／リード信号１ｄとしてリード指令を出力する。アドレスデコード回路２２は、アドレスバス２１上のアドレス情報を解析し、メモリへのアクセスと判定し、メモリ選択信号１ｇを選択状態に、周辺回路選択信号１ｙを非選択状態にする。
【００２５】
バンクメモリ１１ａ、１１ｂ、１１ｃは、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらにアドレスバス２１からアドレス情報を読み込み、該当アドレスのデータを第２のバンクデータバス１９ａ、１９ｂ、１９ｃに書き込む。
【００２６】
バンクＥＣＣメモリ１３ａ、１３ｂ、１３ｃは、ライト／リード信号１ｄとメモリ選択信号１ｇを読み込み、メモリからの読み出しと判定し、さらにアドレスバス２１からアドレス情報を読み込み、該当アドレスのＥＣＣデータをバンクＥＣＣデータバス２６ａ、２６ｂ、２６ｃに書き込む。
【００２７】
バンクゲート制御回路２０ａ、２０ｂ、２０ｃはライト／リード信号１ｄとメモリ選択信号１ｇを読み込み、メモリからの読み出しと判定し、さらにバンクＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３を読み込み、“エラー無し”もしくは“２ビット以上エラー”の場合はバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３を開状態に、“１ビットエラー”の場合は閉状態にする。
【００２８】
図２は第１の実施の形態におけるバンクゲート制御回路２０ａ、２０ｂ、２０ｃのロジックの一例を示す回路図である。図２において、入力であるメモリ選択信号１ｇは、選択であるときは「０」、非選択であるときは「１」である。ライド／リード信号１ｄは、ライトであるときは「０」、リードであるときは「１」である。ＥＣＣ照合結果信号１ｓは正常であるときは「０」、“１ビットエラー”であるときは「１」、“２ビット以上エラー”であるときは「０」である。出力であるゲート制御信号１ｕは開であるときは「０」、閉であるときは「１」である。従って、“エラー無し”（正常）もしくは“２ビット以上エラー”の場合は、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３を開状態に、“１ビットエラー”の場合は閉状態にする。
【００２９】
次に、第２のバンクゲート１６ａ、１６ｂ、１６ｃはバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３をそれぞれ読み込み、開状態／閉状態にあわせて第１のバンクデータバス１７ａ、１７ｂ、１７ｃと第２のバンクデータバス１９ａ、１９ｂ、１９ｃを接続／分断し、バンクゲート状態信号１ｖ−１、１ｖ−２、１ｖ−３に開状態／閉状態を出力する。
【００３０】
バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃは、ライト／リード信号１ｄとメモリ選択信号１ｇを読み込み、メモリからの読み出しと判定し、さらに第１のバンクデータバス１７ａ、１７ｂ、１７ｃからバンクメモリ１１ａ、１１ｂ、１１ｃのデータを、バンクＥＣＣデータバス２６ａ、２６ｂ、２６ｃからＥＣＣデータを読み込み、ＥＣＣ照合を行い、バンクＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３に照合結果を書き込む。
【００３１】
バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃが“１ビットエラー”を検出した場合、バンクゲート制御回路２０ａ、２０ｂ、２０ｃと第２のバンクゲート１６ａ、１６ｂ、１６ｃとの挙動により、第１のバンクデータバス１７ａ、１７ｂ、１７ｃと第２のバンクデータバス１９ａ、１９ｂ、１９ｃとが分断される。その状態で、バンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃは、バンクゲート状態信号１ｖ−１、１ｖ−２、１ｖ−３が閉状態になったことを読み込んで、修正データを第１のバンクデータバス１７ａ、１７ｂ、１７ｃに書き込む。
【００３２】
ゲート制御回路２５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらにバンクＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３を読み込み、“エラー無し”もしくは“１ビットエラー”のバンクから１つを選択し、バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３の該当するバンクを開状態に、残りの２つのバンクを閉状態にする。全バンクが２ビット以上故障の場合はバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３を３つとも閉状態にする。
【００３３】
図３は、第１の実施の形態におけるゲート制御回路２５のロジックの一例を示す回路図である。図３において、入力であるメモリ選択信号１ｇは、選択であるときは「０」、非選択であるときは「１」である。ライド／リード信号１ｄは、ライトであるときは「０」、リードであるときは「１」である。バンクＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３は正常であるときは「０」、“１ビットエラー”であるときは「０」、“２ビット以上エラー”であるときは「１」である。出力であるバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３は開であるときは「０」、閉であるときは「１」である。
【００３４】
この一例ではバンクメモリ１１ａが正常もしくは“１ビットエラー”であればバンクゲート制御信号１ｔ−１が開状態でバンクゲート制御信号１ｔ−２、１ｔ−３は閉状態、バンクメモリ１１ａが“２ビット以上エラー”でバンクメモリ１１ｂが正常もしくは“１ビットエラー”ならばバンクゲート制御信号１ｔ−２が開状態でバンクゲート制御信号１ｔ−１、１ｔ−３は閉状態、バンクメモリ１１ａ、１１ｂが“２ビット以上エラー”でバンクメモリ１１ｃが正常もしくは“１ビットエラー”ならばバンクゲート制御信号１ｔ−３が開状態でバンクゲート制御信号ｔ１−２、ｔ１−３は閉状態、バンクメモリ１１ａ、１１ｂ、１１ｃが“２ビット以上エラー”ならバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３が閉状態となる。
【００３５】
第１のバンクゲート１５ａ、１５ｂ、１５ｃはバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３をそれぞれ読み込み、開状態／閉状態にあわせてデータバス１８と第１のバンクデータバス１７ａ、１７ｂ、１７ｃを接続／分断する。
【００３６】
マイクロプロセッサ１２はデータバス１８から対象のアドレスのデータを読み込む。周辺回路２４は周辺回路選択信号１ｙを読み込み、周辺回路選択信号１ｙは非選択状態なので周辺回路２４へのアクセスではないと判断する。
【００３７】
次に、マイクロプロセッサ１２がメモリ以外の周辺回路２４にデータを書き込む場合について説明する。マイクロプロセッサ１２はアドレスバス２１に書き込み先の周辺回路２４のアドレスを、データバス１８に書き込むデータを、ライト／リード信号１ｄにライト指令として出力する。アドレスデコード回路２２は、アドレスバス２１上のアドレス情報を解析し、周辺回路２４へのアクセスと判定し、周辺回路選択信号１ｙを選択状態に、メモリ選択信号１ｇを非選択状態にする。
【００３８】
ゲート制御回路２５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへのアクセスではないと判定し、バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３を閉状態にする。
【００３９】
第１のバンクゲート１５ａ、１５ｂ、１５ｃはバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３をそれぞれ読み込み、閉状態であるのでデータバス１８と第１のバンクデータバス１７ａ、１７ｂ、１７ｃとを分断する。バンクゲート制御回路２０ａ、２０ｂ、２０ｃはライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへのアクセスではないと判定し、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３を閉状態にする。
【００４０】
第２のバンクゲート１６ａ、１６ｂ、１６ｃはバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３をそれぞれ読み込み、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３が閉状態であるので第１のバンクデータバス１７ａ、１７ｂ、１７ｃと第２のバンクデータバス１９ａ、１９ｂ、１９ｃとを分断し、バンクゲート状態信号１ｖ−１、１ｖ−２、１ｖ−３に閉状態を出力する。
【００４１】
周辺回路２４は周辺選択信号１ｙとライト／リード信号１ｄを読み込み、周辺回路２４への書き込みと判断する。周辺回路２４はさらにアドレスバス２１からアドレスと、データバス１８からデータとを読み込み、対象の周辺回路２４へデータを書き込む。
【００４２】
次に、マイクロプロセッサ１２がメモリ以外の周辺回路２４からデータを読み出す場合について説明する。マイクロプロセッサ１２はアドレスバス２１に読み出し元の周辺回路２４のアドレスを、ライト／リード信号１ｄにリード指令として出力する。アドレスデコード回路２２は、アドレスバス２１上のアドレス情報を解析し、周辺回路２４へのアクセスと判定し、周辺回路選択信号１ｙを選択状態に、メモリ選択信号１ｇを非選択状態にする。
【００４３】
ゲート制御回路２５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへのアクセスではないと判定し、バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３を閉状態にする。
【００４４】
第１のバンクゲート１５ａ、１５ｂ、１５ｃはバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３をそれぞれ読み込み、閉状態であるのでデータバス１８と第１のバンクデータバス１７ａ、１７ｂ、１７ｃとを分断する。バンクゲート制御回路２０ａ、２０ｂ、２０ｃはライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへのアクセスではないと判定し、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３を閉状態にする。
【００４５】
第２のバンクゲート１６ａ、１６ｂ、１６ｃはバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３をそれぞれ読み込み、バンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３が閉状態であるので第１のバンクデータバス１７ａ、１７ｂ、１７ｃと第２のバンクデータバス１９ａ、１９ｂ、１９ｃとを分断し、バンクゲート状態信号１ｖ−１、１ｖ−２、１ｖ−３に閉状態を出力する。
【００４６】
周辺回路２４は周辺回路選択信号１ｙとライト／リード信号１ｄを読み込み、周辺回路２４からのデータの読み出しと判断する。周辺回路２４はさらにアドレスバス２１からアドレスを読み出し、該当周辺回路２４のデータをデータバス１８に書き込む。マイクロプロセッサ１２はデータバス１８から対象の周辺回路２４のデータを読み込む。
【００４７】
マイクロプロセッサ周辺回路２３はマイクロプロセッサ１２にクロックを供給したり、バンクＥＣＣ照合結果信号１ｓ−１、１ｓ−２、１ｓ−３を読み込んでマイクロプロセッサ１２に割り込み通知したり、周辺回路２４からの割り込み要求を受けてマイクロプロセッサ１２に割り込みを発生させる等の機能を有する。
【００４８】
第１の実施の形態によれば、マイクロプロセッサ１２からみて一つのアドレスが実ハード上は複数のメモリの構成となっており、書き込み時はすべてのバンクメモリ１１ａ、１１ｂ、１１ｃに書き込み、読み出しはエラーの発生していないデータを使用するので、メモリ読み出し時に“２ビット以上エラー”が発生しても、複数バンクの同一アドレスに“２ビット以上エラー”が発生しない限り正常運転を継続できる。従って、プラント制御装置としての故障率を下げ稼働率を上げることができる。
【００４９】
次に、本発明の第２の実施の形態を説明する。図４は本発明の第２の実施の形態に係わるプラント制御装置の構成図である。この第２の実施の形態は、図１に示した第１の実施の形態に対し、ゲート制御回路２５は、三重化されたバンクＥＣＣ生成／照合修正回路１４ａ、１４ｂ、１４ｃの判定結果に基づいて三重化されたバンクメモリ１１ａ、１１ｂ、１１ｃのうちエラーの発生していないバンクメモリ１１ａ、１１ｂ、１１ｃに対応する第１のバンクゲート１５ａ、１５ｂ、１５ｃを開いてそのバンクメモリ１１ａ、１１ｂ、１１ｃと入出力を行うことに代えて、ゲート制御回路２５は、三重化された第１のバンクゲート１５ａ、１５ｂ、１５ｃと第２のバンクゲート１６ａ、１６ｂ、１６ｃとの間のデータバスから得られるデータを照合し一致するデータのいずれかの第１のバンクゲート１５ａ、１５ｂ、１５ｃを開きそのバンクメモリ１１ａ、１１ｂ、１１ｃと入出力を行うようにしたものである。
【００５０】
すなわち、マイクロプロセッサ１２がメモリに書き込む場合と読み出す場合、周辺回路２４に書き込む場合と読み出す場合の動作およびマイクロプロセッサ周辺回路２３の役割は基本的には第１の実施の形態と同じである。第１の実施の形態と異なるのは、マイクロプロセッサ１２がメモリから読み出す場合のゲート制御回路２５の動作である。図１と同一要素には同一符号を付し重複する説明は省略する。
【００５１】
ゲート制御回路２５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらに第１のバンクデータバス１７ａ、１７ｂ、１７ｃのデータを読み込み、２つ以上同値のバンクから１つを選択し、バンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３の該当するバンクを開状態に、残りの２つのバンクを閉状態にする。全バンクが異なる場合はバンクゲート制御信号１ｔ−１、１ｔ−２、１ｔ−３を３つとも閉状態にする。
【００５２】
図５は、第２の実施の形態におけるゲート制御回路２５のロジックの一例を示す回路図である。図５において、入力であるメモリ選択信号１ｇは、“選択”であるときは「０」、“非選択”であるときは「１」である。ライド／リード信号１ｄは、“ライト”であるときは「０」、“リード”であるときは「１」である。バンクデータｄ１−１、ｄ１−２、ｄ１−３は第１のバンクデータバス１７ａ、１７ｂ、１７ｃのデータである。出力であるバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３は“開”であるときは「０」、“閉”であるときは「１」である。
【００５３】
この一例ではバンクデータｄ１−１とバンクデータｄ１−２が同値であればバンクゲート制御信号１ｕ−１が開状態でバンクゲート制御信号１ｕ−２、１ｕ−３は閉状態、バンクデータｄ１−１とバンクデータｄ１−２が非同値でバンクデータｄ１−２とバンクデータｄ１−３が同値ならばバンクゲート制御信号１ｕ−２が開状態でバンクゲート制御信号１ｕ−１、１ｕ−３は閉状態、バンクデータｄ１−１とバンクデータｄ１−２が非同値かつバンクデータｄ１−２とバンクデータｄ１−３が非同値でバンクデータｄ１−１とバンクデータｄ１−３が同値ならばバンクゲート制御信号１ｕ−３が開状態でバンクゲート制御信号１ｕ−１、１ｕ−２は閉状態、バンクデータｄ１−１、ｄ１−２、ｄ１−３が全て非同値ならバンクゲート制御信号１ｕ−１、１ｕ−２、１ｕ−３が閉状態となる。
【００５４】
第２の実施の形態によれば、第１の実施の形態と同様に、メモリ読み出し時に“２ビット以上エラー”が発生しても、２バンクの同一アドレスに“２ビット以上エラー”が発生しない限り正常運転を継続でき、プラント制御装置としての故障率を下げ稼働率を上げることができる。
【００５５】
次に、本発明の第３の実施の形態を説明する。図６は本発明の第３の実施の形態に係わるプラント制御装置の構成図である。メモリ２７は、プロセス演算制御に必要なデータが記憶されマイクロプロセッサ１２からのライト／リード信号１ｄにより読み書きが行われる。メモリ２７に対応してＥＣＣメモリ２８が設けられている。
【００５６】
メモリ２７及びＥＣＣメモリ２８に対応して、バンクＥＣＣ生成／照合修正回路２９が設けられ、ＥＣＣ生成／照合修正回路２９は、メモリ２７とＥＣＣメモリ２８との照合を行い、“エラー無し”か“１ビットエラー”か“２ビット以上エラー”かを判定し、ＥＣＣ照合結果信号３ｓを出力する。また、“１ビットエラー”のときはデータ修正を行う。ＥＣＣ生成／照合修正回路２９は、ＥＣＣメモリ２８とＥＣＣデータバス３０を介して接続されている。
【００５７】
第１のゲート３１と第２のゲート３２とは、第１のデータバス３３で接続され、第１のゲート３１はデータバス１８へのデータの入出力を許可するものである。第２のゲート３２は第２のデータバス３４を介してメモリ２７に接続され、メモリ２７へのデータの入出力を許可するものである。
【００５８】
ゲート制御回路３５は、ＥＣＣ生成／照合修正回路２９からのＥＣＣ照合結果信号３ｓに基づいて、第２のゲート３２を開閉するためのゲート制御信号３ｕを出力する。例えば、ＥＣＣ生成／照合修正回路２９が“エラー無し”もしくは“２ビット以上エラー”を検出したときは第２のゲート３２を開き、“１ビットエラー”を検出したときは第２のゲート３２を閉じる。第２のゲート３２は、ＥＣＣ生成／照合修正回路２９にゲート状態信号３ｖを出力する。
【００５９】
マイクロプロセッサ周辺回路２３は、ＥＣＣ生成／照合修正回路２９が“１ビットエラー”もしくは“２ビット以上エラー”を検出したときは割り込みを発生させる。マイクロプロセッサ１２は、プロセス制御演算を行いアドレスバス２１上に使用するアドレス情報を出力しデータバス１８上のデータを入出力する。また、マイクロプロセッサ周辺回路２３が“１ビットエラー”による割り込み信号を発生させたときは、メモリ素子の恒久故障か否かを判定する。
【００６０】
アドレスデコード回路２２は、マイクロプロセッサ１２からアドレスバス２１上に出力されるアドレス情報からアクセス対象を判定したときは、メモリ選択信号１ｇや周辺回路２４への周辺回路選択信号１ｙを出力する。メモリ選択信号１ｇが出力されたときは第１のゲート３１は開となる。
【００６１】
アドレスデコーダマップ情報回路３６は、マイクロプロセッサ１２がメモリ素子の恒久故障であると判定したときは、そのメモリ素子恒久故障アドレスを記憶すると共にその代替アドレスを記録する。つまり、アドレスデコーダマップ情報回路３６は、アドレスデコード回路２２からアドレスデコードマップ選択信号３ｂｂを入力し、アドレスデコーダマップ情報を更新したときはアドレスデコードマップ情報更新結果信号３ｄｄをマイクロプロセッサ周辺回路２３に出力する。
【００６２】
次に、動作を説明する。まず、マイクロプロセッサ１２がメモリにデータを書き込む場合について説明する。マイクロプロセッサ１２は内部アドレスバス３７に書き込み先のメモリのアドレスを出力し、データバス１８に書き込むデータを出力する。また、ライト／リード信号１ｄとしてライト指令を出力する。
【００６３】
アドレスデコード回路２２は、内部アドレスバス３７上のアドレス情報を解析し、メモリへのアクセスと判定し、メモリ選択信号１ｇを選択状態にし、周辺回路選択信号１ｙとアドレスデコードマップ選択信号３ｂｂを非選択状態にする。アドレスデコード回路２２は、さらにアドレスデコードマップ読み出しバス３８経由でアドレスデコードマップ情報回路３６からアドレスデコードマップ情報を読み出し、マイクロプロセッサ１２からのアドレス情報を変換して、アドレスバス２１に書き込む。第１のゲート３１はメモリ選択信号１ｇを読み込み、メモリ選択状態のときはデータバス１８と第１のデータバス３１とを接続する。
【００６４】
ゲート制御回路３５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへの書き込みと判定し、ゲート制御信号３ｕを開状態にする。第２のゲート３２はゲート制御信号３ｕを読み込み、ゲート制御信号３ｕが開状態であるので第１のデータバス３１と第２のデータバス３４とを接続し、ゲート状態信号３ｖとして開状態を出力する。
【００６５】
メモリ２７は、ライト／リード信号１ｄとメモリ選択信号１ｇを読み込み、メモリへの書き込みと判定し、さらにアドレスバス２１からアドレス情報を読み込み、さらに第２のデータバス３４から書き込みデータ情報を読み込み、該当アドレスのメモリに書き込む。
【００６６】
ＥＣＣ生成／照合修正回路２９は、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込みメモリへの書き込みと判定し、さらに第１のデータバス３１から書き込みデータを読み込み、ＥＣＣデータを生成し、ＥＣＣデータバス３０にＥＣＣデータを書き込む。
【００６７】
ＥＣＣメモリ２８は、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへの書き込みと判定し、さらにアドレスバス２１からアドレス情報とＥＣＣデータバス３０からＥＣＣデータを読み込み、該当アドレスのメモリに書き込む。周辺回路２４は周辺回路選択信号１ｙを読み込み、非選択状態なので周辺回路２４へのアクセスではないと判断する。
【００６８】
次に、マイクロプロセッサ１２がメモリからデータを読み出す場合について説明する。マイクロプロセッサ１２は内部アドレスバス３７に読み込み元のメモリのアドレスを書き込み、ライト／リード信号１ｄとしてリード指令を出力する。アドレスデコード回路２２は、内部アドレスバス３７上のアドレス情報を解析し、メモリへのアクセスと判定し、メモリ選択信号１ｇを選択状態にし、周辺回路選択信号１ｙとアドレスデコードマップ選択信号３ｂｂを非選択状態にする。アドレスデコード回路２２は、さらに、アドレスデコードマップ読み出しバス３８経由でアドレスデコードマップ情報回路３６からアドレスデコードマップ情報を読み出し、マイクロプロセッサ１２からのアドレス情報を変換して、アドレスバス２１に書き込む。
【００６９】
メモリ２７は、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらにアドレスバス２１からアドレス情報を読み込み、該当アドレスのデータを第２のデータバス３４に書き込む。ＥＣＣメモリ２８は、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらにアドレスバス２１からアドレス情報を読み込み、該当アドレスのＥＣＣデータをＥＣＣデータバス３０に書き込む。
【００７０】
ゲート制御回路３５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらにＥＣＣ照合結果信号３ｓを読み込み、“エラー無し”もしくは“２ビット以上エラー”の場合はゲート制御信号３ｕを開状態にし、“１ビットエラー”の場合は閉状態にする。この場合、ゲート制御回路３５の回路構成は、図２に示したバンクゲート制御回路２０と同じ回路構成である。第２のゲート３２はゲート制御信号３ｕを読み込み、ゲート制御信号３ｕの開状態／閉状態にあわせて第１のデータバス３１と第２のデータバス３４との接続／分断を行い、ゲート状態信号３ｖに開状態／閉状態を出力する。
【００７１】
ＥＣＣ生成／照合修正回路２９は、ライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリからの読み出しと判定し、さらに第１のデータバス３１からメモリ２７のデータを読み込み、ＥＣＣデータバス３０からＥＣＣデータを読み込み、ＥＣＣ照合を行い、ＥＣＣ照合結果信号３ｓにその照合結果を書き込む。ＥＣＣ生成／照合修正回路２９が“１ビットエラー”を検出した場合には、ゲート制御回路３５と第２のゲート３２との挙動により、第１のデータバス３１と第２のデータバス３４とが分断される。その状態で、ＥＣＣ生成／照合修正回路２９は、ゲート状態信号３ｖが閉状態になったことを読み込んで、修正データを第１のデータバス３１に書き込む。
【００７２】
第１のゲート３１はメモリ選択信号１ｇを読み込み、開状態／閉状態にあわせてデータバス１８と第１のデータバス３１を接続／分断する。マイクロプロセッサ１２はデータバス１８から対象のアドレスのデータを読み込む。周辺回路２４は周辺回路選択信号１ｙを読み込み、非選択状態なので周辺回路へのアクセスではないと判断する。
【００７３】
マイクロプロセッサ周辺回路２３はＥＣＣ照合結果信号３ｓを読み込み、照合結果が“１ビットエラー”もしくは“２ビット以上エラー”の場合、マイクロプロセッサ１２に対し割り込みを発生させる。“１ビットエラー”の場合、マイクロプロセッサ１２はＥＣＣエラー割り込みを受けると、正常に修正されたデータが読み出されているので、同一アドレスに読み出しデータを再書き込みして、再度読み出す処理を実行する。この再読み出し時に再度ＥＣＣ“１ビットエラー”となったときは、メモリ素子の恒久故障と判断し、ソフトウェアで補正されたデータとアドレスを一時保持しておき、アドレスデコードマップ情報回路３６のアドレスデコードマップ情報の更新を実施する。
【００７４】
以下、アドレスデコードマップ情報の更新について説明する。マイクロプロセッサ１２は内部アドレスバス３７にアドレスデコードマップ情報回路３６のアドレスを出力し、データバス１８に書き込むデータとして故障メモリのアドレスを出力し、ライト／リード信号１ｄとしてライト指令を出力する。アドレスデコード回路２２は、内部アドレスバス３７上のアドレス情報を解析し、アドレスデコードマップ情報回路３６へのアクセスと判定し、アドレスデコードマップ選択信号３ｂｂを選択状態にし、メモリ選択信号１ｇと周辺回路選択信号１ｙとを非選択状態にする。
【００７５】
アドレスデコードマップ情報回路３６は、アドレスデコードマップ選択信号３ｂｂとデータバス１８から故障メモリのアドレスとを読み込み、あらかじめ設けられているメモリ２７中の予備領域から代替アドレスを選択し、自分のアドレスマップ情報を更新する。このとき、あらかじめ設けられているメモリ２７中の予備領域が使い切られていて、それ以上のマップ更新ができないときは、アドレスデコードマップ情報更新結果信号３ｄｄを失敗状態とし、書き込み成功した場合は成功状態とする。
【００７６】
マイクロプロセッサ周辺回路２３はアドレスデコードマップ情報更新結果信号３ｄｄを読み込み、マイクロプロセッサ１２に対し割り込みを発生させる。マイクロプロセッサ１２はアドレスデコードマップ更新結果割り込み受けると、正常更新の場合は、ソフトウェアで保持しておいた恒久故障となったメモリ素子部のアドレスとデータとで再度書き込む。更新失敗の場合、故障情報ログなどの所定の故障処理を実行後、自らをリスタートさせる。“２ビット以上エラー”の場合は、読み出したデータが使用できないので、マイクロプロセッサ１２は故障情報ログなどの所定の故障処理を実行後、自らをリスタートさせる。
【００７７】
次に、マイクロプロセッサ１２がメモリ以外の周辺回路２４に書き込む場合について説明する。マイクロプロセッサ１２は内部アドレスバス３７に書き込み先の周辺回路のアドレスを出力し、データバス１８に書き込むデータを出力する。また、ライト／リード信号１ｄにライト指令を出力する。
【００７８】
アドレスデコード回路２２は、内部アドレスバス３７上のアドレス情報を解析し、周辺回路２４へのアクセスと判定し、周辺回路選択信号１ｙを選択状態にし、メモリ選択信号１ｇを非選択状態にし、内部アドレスバス３７上のアドレス情報をそのままアドレスバス２１に出力する。第１のゲート３１はメモリ選択信号１ｇを読み込み、閉状態であるのでデータバス１８と第１のデータバス３１とを分断する。ゲート制御回路３５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへのアクセスではないと判定し、ゲート制御信号３ｕを閉状態にする。
【００７９】
第２のゲート３２はゲート制御信号３ｕを読み込み、閉状態であるので第１のデータバス３１と第２のデータバス３４とを分断し、ゲート状態信号３ｖに閉状態を出力する。周辺回路２４は周辺回路選択信号１ｙとライト／リード信号１ｄとを読み込み、周辺回路２４への書き込みと判断する。周辺回路２４は、さらにアドレスバス２１からアドレスとデータバス１８からデータとを読み込み、対象の周辺回路２４へデータを書き込む。
【００８０】
次に、マイクロプロセッサ１２がメモリ以外の周辺回路２４から読み出す場合について説明する。マイクロプロセッサ１２は内部アドレスバス３７に読み出し元の周辺回路のアドレスを出力し、ライト／リード信号１ｄにリード指令を出力する。アドレスデコード回路２２は、内部アドレスバス３７上のアドレス情報を解析し、周辺回路２４へのアクセスと判定し、周辺回路選択信号１ｙを選択状態にし、メモリ選択信号１ｇを非選択状態にし、内部アドレスバス３７上のアドレス情報をそのままアドレスバス２１に出力する。
【００８１】
第１のゲート３１はメモリ選択信号１ｇを読み込み、メモリ選択信号１ｇが閉状態であるのでデータバス１８と第１のデータバス３１とを分断する。ゲート制御回路３５はライト／リード信号１ｄとメモリ選択信号１ｇとを読み込み、メモリへのアクセスではないと判定し、ゲート制御信号３ｕを閉状態にする。第２のゲート３２はゲート制御信号３ｕを読み込み、ゲート制御信号３ｕが閉状態であるので第１のデータバス３１と第２のデータバス３４とを分断し、ゲート状態信号３ｖに閉状態を出力する。周辺回路２４は周辺回路選択信号１ｙとライト／リード信号１ｄとを読み込み、周辺回路２４からの読み出しと判断する。周辺回路２４はさらにアドレスバス２１からアドレスを読み出し、該当周辺回路のデータをデータバス１８に書き込む。
【００８２】
マイクロプロセッサ１２はデータバス１８から対象の周辺回路２４のデータを読み込む。マイクロプロセッサ周辺回路２３はＥＣＣ照合結果信号３ｓを読み込み、故障の場合にマイクロプロセッサ１２に対し割り込みを発生させる。その機能の他に、マイクロプロセッサ１２にクロックを供給したり、周辺回路２４からの割り込み要求を受けてマイクロプロセッサ１２に割り込みを発生させる等の機能を有する。
【００８３】
第３の実施の形態によれば、あらかじめメモリ空間を再構築する領域としてマイクロプロセッサ１２に認識させている領域以上の領域を用意しておき、メモリ素子の恒久故障が発生した際に故障ビットを含むメモリ領域を外し、あらかじめ用意しておいた領域に代替するので、メモリ素子の恒久故障が発生してもメモリ空間が再構築され使用可能となり、正常運転を継続できる。従って、プラント制御装置としての故障率を下げ稼働率を上げることができる。
【００８４】
次に、本発明の第４の実施の形態対を説明する。図７は本発明の第４の実施の形態に係わるプラント制御装置の構成図である。この第４の実施の形態は、図６に示した第３の実施の形態に対し、起動時にメモリスキャン中信号４ｇｇを出力してメモリ２７及びＥＣＣメモリ２８に所定の診断データを書き込む故障メモリ検出回路３９と、故障メモリ検出回路３９からのメモリスキャン中信号４ｇｇが継続中にイニシャライズ中信号４ｉｉを出力するイニシャライズ信号生成回路４０とを追加して設け、起動時にメモリのライトリードチェックを行い故障のメモリ素子を検出しながらメモリを再構築するようにしたものである。図６と同一要素には同一符号を付し重複する説明は省略する。
【００８５】
図７において、故障メモリ検出回路３９は起動時にメモリスキャン中信号４ｇｇを出力してメモリ２７及びＥＣＣメモリ２８に所定の診断データを書き込む。イニシャライズ信号生成回路４０は、故障メモリ検出回路３９からのメモリスキャン中信号４ｇｇが継続中にイニシャライズ中信号４ｉｉを出力する。
【００８６】
故障メモリ検出回路３９の書き込んだ診断データに基づきＥＣＣ生成／照合修正回路２９が“１ビットエラー”もしくは“２ビット以上エラー”と判定したときは、故障メモリ検出回路３９及びアドレスでコートマップ書き込みバス４１を介してアドレスデコードマップ情報回路３６にその旨を出力する。アドレスデコードマップ情報回路３６は、そのメモリ素子恒久故障アドレスを記憶すると共にその代替アドレスを記録する。
【００８７】
マイクロプロセッサ１２は、イニシャライズ信号生成回路４０がイニシャライズ中信号を出力しているときは動作を停止し、イニシャライズ中信号４ｉｉが出力されなくなると、プロセス制御演算を行うと共にアドレスバス２１上に使用するアドレス情報を出力しデータバス１８上のデータを入出力する。アドレスデコード回路２２は、イニシャライズ信号生成回路４０がイニシャライズ中信号４ｉｉを出力しているとき、及びマイクロプロセッサ１２からアドレスバス２１上に出力されるアドレス情報からアクセス対象を判定したときはメモリ選択信号１ｇを出力し第１のゲート３１を開く。マイクロプロセッサ周辺回路２３はマイクロプロセッサ１２にクロックを供給したり、周辺回路２４からの割り込み要求を受けてマイクロプロセッサ１２に割り込みを発生させるものである。
【００８８】
次に、動作を説明する。マイクロプロセッサ１２がメモリ２７にデータを書き込む場合と読み出す場合、周辺回路２４にデータを書き込む場合と読み出す場合の動作及びマイクロプロセッサ周辺回路２３の役割は基本的には第３の実施の形態の場合と同じである。第３の実施の形態と異なる点は、アドレスデコード回路２２の挙動と、アドレスデコードマップ情報回路３６のアドレスデコードマップ情報を更新する手段である。
【００８９】
アドレスデコード回路２２は、内部アドレスバス３７からのアドレス情報に加えイニシャライズ中信号４ｉｉを読み込み、イニシャライズ中信号４ｉｉがイニシャライズ中のときはメモリ選択信号１ｇを選択状態にし、周辺回路選択信号１ｙを非選択状態にする。また、イニシャライズ中信号４ｉｉがイニシャライズ完了のときは第３の実施の形態の場合と同じ挙動をする。
【００９０】
アドレスデコードマップ情報回路３６は制御基板の起動時／リスタート時に以下の処理で更新される。第３の実施の形態では、ＥＣＣ“１ビットエラー”で恒久故障と判断したときに、アドレスデコードマップ情報回路３６のマップ更新を実施するが、この第４の実施の形態では、恒久故障と判断したら、マイクロプロセッサ１２は故障情報ログなどの所定の故障処理を実行後に自らをリスタートさせ、起動時処理でアドレスデコードマップ情報回路３６を更新する。
【００９１】
故障メモリ検出回路３９は、ハードリスタート時にメモリスキャン中信号４ｇｇをスキャン中にする。イニシャライズ信号生成回路４０は、ハードリスタート時にイニシャライズ中信号４ｉｉをイニシャライズ中とし、メモリスキャン中信号４ｇｇを読み込み、スキャン終了となったらイニシャライズ中信号４ｉｉをイニシャライズ完了とする。
【００９２】
マイクロプロセッサ１２はイニシャライズ中信号４ｉｉがイニシャライズ中の間は停止しており、イニシャライズ完了となると通常の処理を開始する。故障メモリ検出回路３９はメモリ２７とＥＣＣメモリ２８中のメモリ素子に恒久故障が発生していないかをHigh固定とLow固定とが検出できるように２パターンで書き込んだ値がそのまま読み出せるかのライト／リード診断を実行する。故障メモリ検出回路３９は、メモリ空間をチェックしている間はメモリスキャン中信号４ｇｇをスキャン中とし、チェック完了したらスキャン終了とする。
【００９３】
故障メモリ検出回路３９のメモリ２７とＥＣＣメモリ２８への書き込みと読み出しは、第３の実施の形態３のマイクロプロセッサ１２のメモリ２７とＥＣＣメモリ２８への書き込みと読み出しの挙動とほぼ同じで、異なる点はマイクロプロセッサ１２がアドレスを内部アドレスバス３７に書き込むのに対し、故障メモリ検出回路３９はアドレスバス２１に直接書き込む点である。
【００９４】
故障メモリ検出回路３９は、読み出し時にＥＣＣ照合結果信号３ｓが“１ビットエラー”または“２ビット以上エラー”の場合、該当アドレスは故障として、アドレスデコードマップ書き込みバス４１にアドレスを書き込む。アドレスデコードマップ情報回路３６は、アドレスデコードマップ書き込みバス４１から故障メモリのアドレスを読み込み、あらかじめ設けられているメモリ２７中の予備領域から代替アドレスを選択し、自分のアドレスマップ情報を更新する。このとき、あらかじめ設けられているメモリ２７中の予備領域が使い切られていて、それ以上のマップ更新ができないときは、アドレスデコードマップ情報更新結果信号３ｄｄを失敗状態とし、書き込み成功した場合は成功状態とする。
【００９５】
第４の実施の形態によれば、あらかじめメモリ空間を再構築する領域としてマイクロプロセッサ１２に認識させている領域以上の領域を用意しておき、起動時にメモリの故障チェックを行い、メモリ素子の恒久故障を検出するとそのメモリ領域を外し、あらかじめ用意しておいた領域に代替するので、メモリ素子の恒久故障が発生しても予備空間を使い切るまでは正常運転を継続できる。従って、プラント制御装置としての故障率を下げ稼働率を上げることができる。
【００９６】
次に、本発明の第５の実施の形態対を説明する。図８は本発明の第５の実施の形態に係わるプラント制御装置の構成図である。メモリ２７は、プロセス演算制御に必要なデータが記憶されマイクロプロセッサ１２からのライト／リード信号１ｄにより読み書きが行われる。メモリ２７に対応してＥＣＣメモリ２８が設けられている。
【００９７】
メモリ２７及びＥＣＣメモリ２８に対応して、ＥＣＣ生成／照合修正回路２９が設けられ、ＥＣＣ生成／照合修正回路２９は、メモリ２７とＥＣＣメモリ２８との照合を行い、“エラー無し”か“１ビットエラー”か“２ビット以上エラー”かを判定し、ＥＣＣ照合結果信号３ｓを出力する。また、“１ビットエラー”のときはデータ修正を行う。ＥＣＣ生成／照合修正回路２９は、ＥＣＣメモリ２８とＥＣＣデータバス３０を介して接続されている。
【００９８】
第１のゲート３１と第２のゲート３２とは、第１のデータバス３３で接続され、第１のゲート３１はデータバス１８へのデータの入出力を許可するものである。第２のゲート３２は第２のデータバス３４を介してメモリ２７に接続され、メモリ２７へのデータの入出力を許可するものである。
【００９９】
ゲート制御回路３５は、ＥＣＣ生成／照合修正回路２９からのＥＣＣ照合結果信号３ｓに基づいて、第２のゲート３２を開閉するためのゲート制御信号３ｕを出力する。例えば、ゲート制御回路３５は、ＥＣＣ生成／照合修正回路２９が“エラー無し”を検出したときは、第２のゲート３２を開く。第２のゲート３２は、ＥＣＣ生成／照合修正回路２９にゲート状態信号３ｖを出力する。
【０１００】
マイクロプロセッサ１２は、プロセス制御演算を行うと共に、アドレスバス２１上に使用するアドレス情報を出力し、データバス１８上のデータを入出力する。アドレスデコード回路２２は、マイクロプロセッサ１２からアドレスバス２１上に出力されるアドレス情報からアクセス対象を判定したときは、メモリ選択信号１ｇや周辺回路２４への周辺回路選択信号１ｙを出力する。マイクロプロセッサ周辺回路２３はマイクロプロセッサ１２にクロックを供給したり、ＥＣＣ生成／照合修正回路２９が“１ビットエラー”もしくは“２ビット以上エラー”を検出したときは割り込みを発生させる。
【０１０１】
また、マイクロプロセッサ１２はマイクロプロセッサ周辺回路２３が“１ビットエラー”による割り込み信号を発生させたときはメモリ素子の恒久故障か否かを判定し、メモリ素子の恒久故障と判定したとき、もしくはＥＣＣ生成／照合修正回路２９が“２ビット以上エラー”を検出したときは、そのメモリ素子を恒久故障メモリ素子としてメモリ故障テーブルに記憶し、正常なメモリを確保する。そして、そのメモリ確保の際に取得されたメモリ領域に恒久故障メモリ素子が含まれる場合は再確保する。
【０１０２】
図９は本発明の第５の実施の形態に係わるプラント制御装置のソフトウエアの構成図である。制御対象プラントにより異なるアプリケーションコード５ｄは、複数のアプリケーション５ｒと、そのアプリケーション５ｒの開始アドレスとサイズ等が登録してあるアプリケーションコード管理テーブル５ｑとからなり、アプリケーションデータ５ｅ上の変数を読み書きする。
【０１０３】
アプリケーションコード５ｄやプラント制御装置の標準機能を実現するファームウェア５ｃは、ハードウェア５ａ中のメモリ５ｆから必要なサイズを確保して、規定の処理を実行する。このメモリ確保の処理をＯＳ５ｂのメモリ確保システムコール５ｇを直接使うのではなく、ファームウェア５ｃ中のメモリ確保プログラム５ｋで確保するようにする。メモリ故障テーブル５ｍは、ＯＳ５ｂ及びファームウェア５ｃのインストール直後は空の状態になっている。
【０１０４】
図１０はメモリ確保プログラム５ｋの処理内容の一例を示すフローチャートである。要求されたサイズのメモリをＯＳ５ｂのメモリ確保システムコール５ｇで確保し（Ｓ１）、メモリが確保できたか否かを判定し（Ｓ２）、メモリが確保できなかった場合はそのまま異常終了として終了させる。メモリ確保できたときは、ファームウェアが内部に持つメモリ故障テーブル５ｍ中に登録されている故障アドレスが、確保されたメモリ領域に含まれているかをチェックする（Ｓ３）。故障メモリが含まれている場合は、確保されたメモリ領域を開放しないまま、再度要求されたサイズのメモリをＯＳ５ｂのメモリ確保システムコール５ｇで確保する。故障メモリが含まれていない場合は正常終了する。
【０１０５】
次に、今まで正常であったメモリ素子が故障状態となったときは、メモリ故障の割り込みが入り、ＯＳ５ｂ中の割り込み処理５ｈが呼び出される。メモリＥＣＣ“１ビットエラー”の場合はメモリＥＣＣ“１ビットエラー”割り込み処理５ｉが呼び出され、メモリＥＣＣ“２ビット以上エラー”の場合はメモリＥＣＣ“２ビット以上エラー”割り込み処理５ｊが呼び出される。
【０１０６】
図１１は、メモリＥＣＣ“１ビットエラー”割り込み処理５ｉの処理内容の一例を示すフローチャートである。ＥＣＣ“１ビットエラー”となったアドレスを読み出し（Ｓ１１）、そのアドレスのデータを再度読み出す（Ｓ１２）。そのデータを再度同一アドレスに上書きし（Ｓ１３）、再度同一アドレスを読み出す（Ｓ１４）。そして、ＥＣＣ状態を判定し（Ｓ１５）、この読み出しで再度ＥＣＣエラーとなったときはメモリ素子恒久故障と判断し、メモリ故障テーブル５ｍに故障アドレスを追加する（Ｓ１６）。一方、メモリＥＣＣ“２ビット以上エラー”割り込み処理５ｊでは、ＥＣＣ“２ビット以上エラー”となったアドレスをメモリ故障テーブル５ｍに故障アドレスを追加し、自らリスタートする。
【０１０７】
第５の実施の形態によれば、恒久故障となったメモリ素子のアドレス情報をデータとして持ち、メモリ確保時に取得されたメモリ領域に恒久故障メモリ素子が含まれる場合は再確保することで正常なメモリのみを使用するメモリ確保方法により、メモリ素子の恒久故障が発生しても正常運転を継続でき、プラント制御装置として稼働率を上げることができる。
【０１０８】
次に、本発明の第６の実施の形態対を説明する。図１２は本発明の第６の実施の形態に係わるプラント制御装置のソフトウエアの構成図である。この第６の実施の形態は、図９に示した第５の実施の形態に対し、メモリ確保プログラム５ｋ及びメモリ故障テーブル５ｍに代えて、故障メモリ使用済み処置プログラム６ｎ及びメモリライト／リード診断プログラム６ｐを設けたものである。
【０１０９】
すなわち、メモリ素子の恒久故障と判定したときもしくはＥＣＣ生成／照合修正回路２９が“２ビット以上エラー”を検出したときはそのメモリ素子を恒久故障メモリ素子としてメモリ故障テーブル５ｍに記憶しメモリ確保の際に取得されたメモリ領域に恒久故障メモリ素子が含まれる場合は再確保することに代えて、起動時に恒久故障メモリの情報を記憶するための正常なメモリ領域を確保し、残りのメモリ領域に対してメモリ素子の恒久故障チェックし正常なメモリ領域のみを開放するようにしたものである。図９と同一要素には同一符号を付し重複する説明は省略する。
【０１１０】
図１２において、制御対象プラントにより異なるアプリケーションコード５ｄは、複数のアプリケーション５ｒと、そのアプリケーションの開始アドレスとサイズ等が登録してあるアプリケーションコード管理テーブル５ｑとからなり、アプリケーションデータ５ｅ上の変数を読み書きする。
【０１１１】
プラント制御装置の標準機能を実現するファームウェア５ｃは、ハードウェア５ａ中のメモリ５ｆから必要なサイズを確保して規定の処理を実行する。
【０１１２】
ファームウェア５ｃの起動時に、故障メモリ使用済み処置プログラム６ｎでメモリ全領域を小さな領域に区切って確保し、それぞれの全メモリをメモリライト／リード診断プログラム６ｐで恒久故障が含まれないかをチェックし、恒久故障の無い領域のみを開放する。その後、通常のファームウェア５ｃの通常処理を開始する。
【０１１３】
図１３は、故障メモリ使用済み処置プログラム６ｎの処理内容の一例を示すフローチャートである。まず、このプログラムを実行中であることを示す故障メモリ処理中フラグをＯｎ状態にする（Ｓ２１）。内部変数のメモリブロック番号を０に初期化しておく（Ｓ２２）。そして、メモリ故障箇所を記録するメモリ領域を確保する（Ｓ２３）。システムで決めた故障メモリブロックテーブルサイズ分のメモリをＯＳ５ｂのメモリ確保システムコール５ｇで確保できたか否かを判定し（Ｓ２４）、メモリが確保できなかった場合はそのまま異常終了として終了させる（Ｓ２５）。
【０１１４】
メモリ確保できたときは、ファームウェア５ｃ中のメモリライト／リード診断プログラム６ｐを起動し（Ｓ２６）、メモリ素子恒久故障が発生していないかをチェックする（Ｓ２７）。診断結果が異常の場合はメモリブロック番号を「１」増加させ（Ｓ２８）、所定の最大値と比較する（Ｓ２９）。そして、メモリブロック番号が所定の最大値を超えていないときはステップＳ２３に戻る。一方、メモリブロック番号が所定の最大値を超えていた場合は故障と判断し、このプログラムを実行中であることを示す故障メモリ処理中フラグを“Ｏｆｆ”状態にして異常終了させる（Ｓ２５）。ステップＳ２７の判定で、正常に確保できた場合、そのメモリ診断結果が正常なものだけ残し、診断結果異常のメモリブロックは開放する（Ｓ３０）。これにより、起動時に恒久故障メモリの情報を記憶するための正常なメモリ領域を確保する。
【０１１５】
次に残りの全メモリ領域からメモリ素子の恒久故障をチェックし、正常な箇所のみを使用できるようにする。まず、メモリブロック番号と異常ブロック数を０に初期化する（Ｓ３１）。システムで決めたメモリ診断サイズ分のメモリをＯＳ５ｂのメモリ確保システムコール５ｇで確保する（Ｓ３２）。メモリが確保できたか否かを判定し（Ｓ３３）、メモリが確保できた場合は、ファームウェア５ｃ中のメモリライト／リード診断プログラム６ｐを起動し（Ｓ３４）、メモリ素子恒久故障が発生していないかをチェックする（Ｓ３５）。診断結果が正常の場合はメモリブロック番号を「１」増加させて（Ｓ３６）、ステップＳ３２に戻り次のメモリ確保に移る。
【０１１６】
診断結果が異常の場合は異常ブロック数を「１」増加させ（Ｓ３７）、所定の最大値と比較する（Ｓ３８）。異常ブロック数が所定の最大値を超えていた場合は、故障と判断し、このプログラムを実行中であることを示す故障メモリ処理中フラグをＯｆｆ状態にして異常終了させる（Ｓ２５）。異常ブロック数が所定の最大値を超えていない場合は故障ブロックテーブルにメモリブロック番号を書き込み（Ｓ３９）、メモリブロック番号を「１」増加させて次のメモリ確保に戻る（Ｓ３６）。
【０１１７】
ステップＳ３３でメモリが確保できなかった場合、メモリブロック状態を判定し（Ｓ３７）、メモリブロックが正常のときはメモリブロックを開放し（Ｓ３８）、メモリブロック番号を「１」減少させ（Ｓ３９）、メモリブロック番号が０となったか否かを判定し（Ｓ４０）、０未満となったとき終了ステータスは正常終了とし（Ｓ４１）、このプログラムを実行中であることを示す故障メモリ処理中フラグをＯｆｆ状態にして終了する（Ｓ４２）。
【０１１８】
すなわち、ステップＳ３３でメモリが確保できなかった場合には、そこで全てのメモリを使用したと判断し、その後はステップＳ３７〜ステップＳ４０の処理により、全メモリブロック分、故障ブロックテーブルにメモリブロック番号が登録されているかを判断しながら、異常のあったメモリブロックは開放せず、正常なメモリブロックのみ開放していく。そして、最後に、このプログラムを実行中であることを示す故障メモリ処理中フラグをＯｆｆ状態にして終了する。
【０１１９】
図１４は、メモリライト／リード診断プログラム６ｐの処理内容の一例を示すフローチャートである。ＥＣＣ故障フラグを“エラー無し”にしておく（Ｓ５１）。全メモリ領域を診断データ「５５ｈ」で書き込み（Ｓ５２）、全領域読み出す（Ｓ５３）。ＥＣＣ故障フラグの状態を確認し（Ｓ５４）、“エラー有り”なら異常終了として終了する（Ｓ５５）。ＥＣＣ故障フラグが“エラー無し”なら、引き続き全メモリ領域を診断データ「ＡＡｈ」で書き込み（Ｓ５６）、全領域読み出す（Ｓ５７）。ＥＣＣ故障フラグを確認し（Ｓ５８）、“エラー有り”なら異常終了として終了する（Ｓ５５）。“エラー無し”なら正常終了として終了する（Ｓ５９）。
【０１２０】
メモリライト／リード診断プログラム６ｐでメモリ読み出し中にＥＣＣエラーが発生した場合は、メモリ故障の割り込みが入り、ＯＳ５ｂ中の割り込み処理５ｈが呼び出される。メモリＥＣＣ“１ビットエラー”の場合はメモリＥＣＣ“１ビットエラー”割り込み処理６ｉが、メモリＥＣＣ“２ビット以上エラー”の場合はメモリＥＣＣ“２ビット以上エラー”割り込み処理６ｊが呼び出される。
【０１２１】
図１５はメモリＥＣＣ“１ビットエラー”割り込み処理６ｉの処理内容の一例を示すフローチャートである。故障メモリ使用済み処置が実行中かどうかを故障メモリ処理中フラグで判断する（Ｓ６１）。実行中の場合はＥＣＣ故障フラグを“エラー有り”にし（Ｓ６２）、メモリＥＣＣ“２ビット以上エラー”割り込み処理６ｊでは、自らリスタートする。
【０１２２】
第６の実施の形態によれば、起動時にメモリの全領域を確保しながらライト／リードチェックでメモリ素子の恒久故障チェックし、問題ない部分のみを開放してから通常運転に移行することで、メモリ素子の恒久故障が発生しても正常なメモリのみで正常運転を継続でき、プラント制御装置として稼働率を上げることができる。
【０１２３】
次に、本発明の第７の実施の形態を説明する。図１６は本発明の第７の実施の形態に係わるプラント制御装置の基盤内部の構成図である。この第７の実施の形態は、図８に示した第５の実施の形態に対し、マイクロプロセッサ１２は、ＥＣＣ生成／照合修正回路２９がメモリ２７のうちアプリケーションが記憶された領域で“１ビットエラー”を検出したときは、“１ビットエラー”が発生した領域に記憶されている内容をメモリ２７の予備領域に移すようにしたものである。
【０１２４】
図１６において、メモリ７ａは、ＲＯＭ７ｂとＲＡＭ７ｄとアプリケーション用不揮発性メモリ７ｅとからなる。ＲＯＭ７ｂはＯＳコード７ｆとプラント制御装置の標準機能のファームウェアコード７ｇとからなる。また、ＲＡＭ７ｃはＯＳコード７ｈとファームウェアコード７ｉと、ＯＳワークメモリ７ｊとファームウェアワークメモリ７ｋとからなる。
【０１２５】
実際のＯＳとファームウェアはＲＯＭ上で動作するのではなく、ＲＯＭ７ｂ上のＯＳコード７ｆとファームウェアコード７ｇとを、ＲＡＭ７ｄ上のＯＳコード７ｈとファームウェアコード７ｉとにコピーし、ＯＳコード７ｈはＯＳワークメモリ７ｊを使い、ファームウェアコード７ｉはファームウェアワークメモリ７ｋを使うことでＲＡＭ７ｄ上で動作する。
【０１２６】
アプリケーション５ｒはアプリケーション用不揮発性メモリ７ｅに書き込まれている。アプリケーション用不揮発性メモリ７ｅはアプリケーションコード領域７ｍとアプリケーションデータ領域７ｎとからなり、アプリケーションコード領域７ｍは複数のアプリケーション５ｒとアプリケーション予備領域７ｓとアプリケーション管理コードテーブル５ｑとからなる。
【０１２７】
アプリケーション管理コードテーブル５ｑは各アプリケーションの開始アドレスとサイズ等が記録されている。アプリケーション５ｒにメモリＥＣＣ“１ビット故障”が発生した場合で恒久故障であった場合、アプリケーション５ｒが正常に読み出せるうちに、アプリケーション予備領域７ｓにコピーし、アプリケーション管理コードテーブル５ｑ中の該当アプリケーション５ｒの開始アドレスを書き換え、恒久故障になっていないメモリを使い動作するようにする。
【０１２８】
第７の実施の形態によれば、アプリケーションコード領域７ｍでメモリ素子に恒久故障が発生しても、正常領域に移動することだけで正常運転を継続でき、プラント制御装置として稼働率を上げることができる。
【０１２９】
次に、本発明の第８の実施の形態を説明する。図１７は本発明の第８の実施の形態に係わるプラント制御装置の基盤内部の構成図である。この第８の実施の形態は、図８に示した第５の実施の形態に対し、マイクロプロセッサ１２は、メモリ２７のＲＯＭに記憶されたＯＳを一旦ＲＡＭに展開して動作させ、ＥＣＣ生成／照合修正回路２９がＯＳの記憶されたメモリ領域で“１ビットエラー”を検出したときは、“１ビットエラー”が発生した領域に記憶されている内容をメモリの予備領域に移すようにしたものである。
【０１３０】
図１７において、メモリ７ａは、ＲＯＭ７ｂとＯＳ／ファームウェア用不揮発性メモリ８ｃとＲＡＭ７ｄとアプリケーション用不揮発性メモリ７ｅとからなる。ＲＯＭ７ｂは、ＯＳ／ファームウェア展開機能８ｓとＯＳ／ファームウェア用不揮発性メモリ書き換え機能８ｔとからなる。また、ＯＳ／ファームウェア用不揮発性メモリ８ｃは、ＯＳコード７ｆとプラント制御装置の標準機能のファームウェアコード７ｇと、ＲＡＭ展開テーブル８ｕと予備領域８ｖとからなる。
【０１３１】
ＲＡＭ７ｃはＯＳコード７ｈとファームウェアコード７ｉと、ＯＳワークメモリ７ｊとファームウェアワークメモリ７ｋとからなる。
【０１３２】
実際のＯＳとファームウェアはＲＯＭ上で動作するのではなく、ＯＳ／ファームウェア用不揮発性メモリ８ｃ上のＯＳコード７ｆとファームウェアコード７ｇとを、ＲＡＭ７ｄ上のＯＳコード７ｈとファームウェアコード７ｉとにコピーし、ＯＳコード７ｈはＯＳワークメモリ７ｊを使い、ファームウェアコード７ｉはファームウェアワークメモリ７ｋを使うことでＲＡＭ７ｄ上で動作する。
【０１３３】
アプリケーション５ｒはアプリケーション用不揮発性メモリ７ｅに書き込まれている。アプリケーション用不揮発性メモリ７ｅはアプリケーションコード領域７ｍとアプリケーションデータ領域７ｎとからなり、アプリケーションコード領域７ｍは複数のアプリケーション５ｒとアプリケーション管理コードテーブル５ｑとからなる。アプリケーション管理コードテーブル５ｑは各アプリケーションの開始アドレスとサイズ等が記録されている。
【０１３４】
ＯＳ／ファームウェア用不揮発性メモリ８ｃのＯＳコード７ｆとファームウェアコード７ｇとのＲＡＭ７ｄへの転送処理は、ＲＯＭ７ｂ上のＯＳ／ファームウェア展開機能８ｓが制御基板の起動時／リスタート時に実行する。ＯＳ／ファームウェア用不揮発性メモリ８ｃ上のＲＡＭ展開テーブル８ｕから、ＯＳ／ファームウェア用不揮発性メモリ８ｃ中の転送元アドレスと、転送先のＲＡＭ７ｄ中の転送先アドレスと転送バイト数とを読み出し、それに従い転送する。ＲＡＭ展開テーブル８ｕ中の転送情報は複数ブロックにわかれても良いようにする。
【０１３５】
ＯＳ／ファームウェア用不揮発性メモリ８ｃにメモリＥＣＣ“１ビット故障”が発生した場合で恒久故障であった場合、該当アドレスのデータが正常に読み出せるうちに、ＯＳ／ファームウェア用不揮発性メモリ書き換え機能８ｔを使い予備領域８ｖにコピーし、ＲＡＭ展開テーブル８ｕの該当アドレスを含む転送データを、故障アドレスの前後と故障アドレスの３つに分割した状態にＯＳ／ファームウェア用不揮発性メモリ書き換え機能８ｔを使い更新する。
【０１３６】
第８の実施の形態によれば、基板上で書き換えできないＲＯＭ部分を極小化することでメモリの恒久故障の可能性を低くし、ＯＳ／ファームウェア用不揮発性メモリでメモリ恒久故障が発生しても故障箇所を正常領域に移動させ、ＲＡＭへの転送後は正常状態に構築できるように分割転送することにより、ＯＳコード部やファームウェアコード部にメモリの恒久故障が発生しても正常運転を継続でき、プラント制御装置として稼働率を上げることができる。
【図面の簡単な説明】
【０１３７】
【図１】本発明の第１の実施の形態に係わるプラント制御装置の構成図。
【図２】本発明の第１の実施の形態におけるバンクゲート制御回路のロジックの一例を示す回路図。
【図３】本発明の第１の実施の形態におけるゲート制御回路のロジックの一例を示す回路図。
【図４】本発明の第２の実施の形態に係わるプラント制御装置の構成図。
【図５】本発明の第２の実施の形態におけるゲート制御回路のロジックの一例を示す回路図。
【図６】本発明の第３の実施の形態に係わるプラント制御装置の構成図。
【図７】本発明の第４の実施の形態に係わるプラント制御装置の構成図。
【図８】本発明の第５の実施の形態に係わるプラント制御装置の構成図。
【図９】本発明の第５の実施の形態に係わるプラント制御装置のソフトウエアの構成図。
【図１０】本発明の第５の実施の形態におけるメモリ確保プログラムの処理内容の一例を示すフローチャート。
【図１１】本発明の第５の実施の形態におけるメモリＥＣＣ“１ビットエラー”割り込み処理の処理内容の一例を示すフローチャート。
【図１２】本発明の第６の実施の形態に係わるプラント制御装置のソフトウエアの構成図。
【図１３】本発明の第６の実施の形態における故障メモリ使用済み処置プログラムの処理内容の一例を示すフローチャート。
【図１４】本発明の第６の実施の形態におけるメモリライト／リード診断プログラムの処理内容の一例を示すフローチャート。
【図１５】本発明の第６の実施の形態におけるメモリＥＣＣ“１ビットエラー”割り込み処理の処理内容の一例を示すフローチャート。
【図１６】本発明の第７の実施の形態に係わるプラント制御装置の基盤内部の構成図。
【図１７】本発明の第８の実施の形態に係わるプラント制御装置の基盤内部の構成図。
【符号の説明】
【０１３８】
１１…バンクメモリ、１２…マイクロプロセッサ、１３…バンクＥＣＣメモリ、１４…バンクＥＣＣ生成／照合修正回路、１５…第１のバンクゲート、１６…第２のバンクゲート、１７…第１のバンクデータバス、１８…データバス、１９…第２のバンクデータバス、２０…バンクゲート制御回路、２１…アドレスバス、２２…アドレスデコード回路、２３…マイクロプロセッサ周辺回路、２４…周辺回路、２５…ゲート制御回路、２６…バンクＥＣＣデータバス、２７…メモリ、２８…ＥＣＣメモリ、２９…ＥＣＣ生成／照合修正回路、３０…ＥＣＣデータバス、３１…第１のデータバス、３２…第２のゲート、３３…第１のデータバス、３４…第２のデータバス、３５…ゲート制御回路、３６…アドレスデコードマップ情報回路、３７…内部アドレスバス、３８…アドレスデコードマップ読み出しバス、３９…故障メモリ検出回路、４０…イニシャライズ信号生成回路、４１…コートマップ書き込みバス
【図１】
2006072618.tif 000003
【図２】
2006072618.tif 000004
【図３】
2006072618.tif 000005
【図４】
2006072618.tif 000006
【図５】
2006072618.tif 000007
【図６】
2006072618.tif 000008
【図７】
2006072618.tif 000009
【図８】
2006072618.tif 000010
【図９】
2006072618.tif 000011
【図１０】
2006072618.tif 000012
【図１１】
2006072618.tif 000013
【図１２】
2006072618.tif 000014
【図１３】
2006072618.tif 000015
【図１４】
2006072618.tif 000016
【図１５】
2006072618.tif 000017
【図１６】
2006072618.tif 000018
【図１７】
2006072618.tif 000019