(57)【要約】【課題】  制御プログラムの書き換えの効率化を図る。【解決手段】  従来の計算機システムは制御プログラムが実行中に、この制御プログラムを書き換える要求があったとき、該制御プログラムの実行が終了するまで待たなければならないため、必ずしも制御プログラムを一定時間内に書き換えることが出来ない。このような課題を解決するために、実行中の制御プログラムに対して書き換え要求があった場合に、時間監視を開始し、この時間がタイムアウトした時、まだプログラムが実行中ならば、制御プログラムを強制停止させて要求された書き換えを完了させる。【選択図】図４
2004310798.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を備えた計算機において、前記記憶装置に記憶しているプログラムを実行中に、このプログラムを書き換える要求があったとき、このプログラムの実行終了を監視し、前記書き換え要求のあったときからあらかじめ定めた所定時間を経過してもなお上記プログラムが実行中であると、そのプログラムの実行を停止して前記プログラムの書き換えを行う手段を備えたことを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御プログラムを実行してプラントの制御などを行う計算機、および、複数の計算機からなる計算機システムに関するもので、特に処理性能の向上、メンテナンス性の向上などの性能の向上を図るものである。
【背景技術】
【０００２】
従来の技術１．
図３７は例えば、特許文献１に示された従来の計算機システムを示す構成図である。
図において、１はプロセッサ（計算機）１０の実行に必要な制御プログラム５ａ及び制御データや起動管理テーブル等の制御情報の開発と保守を行う保守ツールで、通常はパソコンなどの端末器が用いられる。
【０００３】
１ａは制御プログラム等の制御情報を格納するハードディスク装置である。
２はシステムバス、３はシステムバス２によりプロセッサ１０と接続されたＩＯインタフェース、４は制御対象機器のプラントシステムである。
【０００４】
１０はプロセッサ（計算機）であり次に示す構成からなる。
５はプロセッサ１０のメモリ、５ａは制御プログラム、５ｂは制御プログラム５ａをメモリ５上に格納するときの管理情報を保持するページ管理テーブル、５ｃは分岐先論理アドレスを格納する分岐ブロックであり、保守ツール１からの制御プログラム５ａ書き換え要求で指定される分岐ブロック情報を保持する。
【０００５】
分岐ブロック情報は、制御プログラムの先頭からの命令ステップ数を分岐先論理アドレスとして一つまたは複数の分岐先論理アドレスを保持する情報である。
６は保守ツール１から送られてきた制御情報をプロセッサ１０に登録する要求処理部、６ａは保守ツール１からの制御情報を受信する受信部、６ｂは制御情報を処理した結果を保守ツール１に送信する送信部である。
【０００６】
６ｃは保守ツール１からの制御情報を制御プログラム５ａとして格納するための処理をするプログラム書き換え処理部、７は制御プログラム５ａを実行するプログラム実行部である。
【０００７】
また、図４０は、従来の計算機システムのページ管理テーブル５の構成例であり、モジュール分割された個々の制御プログラムの置かれているアドレス（メモリ先頭からの物理オフセットアドレス）をプログラム番号に対応させて保持する。
【０００８】
図４１は、従来の計算機システムの分岐命令の構成を示しており、そのオペランド部には、分岐ブロックから分岐先論理アドレスを得るための識別子である分岐先ブロック番号を保持している。
【０００９】
図４２は、分岐処理を説明する図で、分岐命令に基づいて分岐処理する場合を示している。図の左のプログラム５がこの場合の処理対象の制御プログラムを表し、このプログラムが図３７に示すメモリ５上の制御プログラム５ａに格納される。
【００１０】
次に動作について図３８及び図３９のフローに従って説明する。
先ず、図３８のプログラム書き換えが要求された際の処理のフローを説明する。（１）保守ツール１から送られてきたプログラム書き換え処理要求を、要求処理部６の受信部６ａが受信し、プログラム書き換え処理部６ｃに送る。
【００１１】
（２）プログラム書き換え処理部６ｃは、指定されたモジュールの制御プログラム（図４２では、プログラム５）をメモリ部５の制御プログラム５ａ領域に書き込むと共に（ＳＴ０００）、
【００１２】
（３）制御プログラム５ａへの書き込み位置をメモリ部５の先頭からのオフセットアドレスである物理アドレスで表現し、指定されたプログラム番号に対応させてページ管理テーブル５ｂに登録する（ＳＴ００１）。
即ち、図４２のようにページ管理テーブル５ｂは、「プログラム１、プログラム２、・・・」の順に制御プログラム５の各プログラムの先頭からの物理アドレスが「アドレス１、アドレス２、・・アドレス５、・・・」と格納される。
【００１３】
（４）次に、指定されたモジュールの分岐ブロック情報をメモリ部５の分岐ブロック５ｃ領域に書き込む（ＳＴ００２）。
分岐ブロック５ｃは、図４２のように制御プログラム（プログラム５）内に「分岐命令３」があると、その物理アドレスを分岐ブロック５ｃの３番目にアドレス４として格納する。
そして、このアドレス４とページ管理プログラム５ｂのプログラム５の先頭アドレス５とを加えたもの（図４２のａ）が「分岐先物理アドレス」となり、制御プログラム５ａの分岐先の分岐プログラムの位置となる。
【００１４】
図３９の分岐命令実行時の分岐命令処理のフローを説明する。
（１）プログラム実行部７は、メモリ部５の制御プログラム５ａから命令を抽出し（ＳＴ００５）、
（２）分岐命令であれば、例えば、図４２の分岐命令３であれば（ＳＴ００６）、
（３）図４１に示すオペランド部の分岐先ブロック番号を識別子として使用し、分岐ブロック５ｃ（図４２のアドレス４）を参照して分岐先論理アドレスを取り出す（ＳＴ００７）。
【００１５】
（３）ページ管理テーブル５ｂの情報（図４２のアドレス５）を参照して分岐先論理アドレスを物理アドレスに変換する（ＳＴ００８）。
（４）変換された物理アドレス（図４２のａ）を用いてプログラム実行部７は、分岐先の命令を実施する（ＳＴ００９）。
【００１６】
従来の技術２．
制御プログラムの実行の際、トレースを行いそのトレース情報を収集する場合を説明する。
図３７において、プログラム実行部７は、この中に図４３の制御プログラム実行のトレース機能を有している。
【００１７】
図４３において、４００はトレース情報を格納するトレースメモリであり、４０１のトレースデータ収集部で収集されたトレースデータを格納する。
【００１８】
４０１のトレースデータ収集部は、４０１ａのトレース履歴レジスタにトレースした履歴を記録しながら、トレースデータを収集する。
４０２は制御プログラム実行のための制御プログラムアドレスで、実行した制御プログラムのアドレスが格納されている。この制御アドレスはプログラムカウンタが用いられる。
【００１９】
４０３はアドレス一致検出部であり、４０２の制御プログラムアドレスを監視する。
４０３ａはアドレス一致開始レジスタ、４０３ｂはアドレス一致終了レジスタである。
４０４は、アドレス一致開始レジスタ４０３ａとアドレス一致終了レジスタ４０３ｂの間に制御プログラムアドレス４０２があることを検出すると出力するトレース要求信号である。
【００２０】
また、図４４はトレース履歴レジスタ４０１ａの構造図であり、トレース完了情報（この場合「１」の情報）は、アドレス一致開始アドレスからの相対番号に対応したビット位置に順次格納される。
【００２１】
次に図３７の従来の計算機システムがトレースデータを収集する動作について
図４５のフローチャートに従って説明する。
（１）アドレス一致検出部４０３は、制御プログラムアドレス４０２を監視し、トレース開始アドレス４０３ａとトレース終了アドレス４０３ｂの間であると云うトレースデータ収集条件を満たした時、トレース要求信号４０４を出力する。（ＳＴ４００）
【００２２】
（２）トレース要求信号４０４が出力されると、トレースデータ収集部４０１がこれを検知し（ＳＴ４０１）、
（３）トレース履歴レジスタ４０１ａからトレースデータ収集済みか否かを判定する（ＳＴ４０２）。
【００２３】
（４）トレースデータ収集済みなら、その回のトレース収集処理を終了し、トレースデータ未収集なら、制御プログラムの実行結果、アクセスデータなどのトレースデータを、トレースメモリ４００の中の制御プログラムアドレス４０２に対応した位置に格納する（ＳＴ４０３）。
（５）トレースデータの収集完了後、トレース完了の情報を、トレース履歴レジスタ４０１ａ内の制御プログラムアドレス４０２に対応した位置に格納する（ＳＴ４０４）。
（６）この一連の動作を、検出されたアドレスがトレース終了アドレスか否かを判定し、アドレス一致終了レジスタ４０３ｂに設定されたトレース終了アドレスのトレースデータ収集が完了するまで行う（ＳＴ４０５）。
【００２４】
従来の技術３．
従来の計算機システムの制御プログラム書き換え処理の動作について図４６のフローチャートを用いて説明する。
なお、構成は図３７と同一である。
（１）保守ツール１から新たな制御プログラムが出力されると、要求処理部６がこれを検知し（ＳＴ５００）、
【００２５】
（２）プログラム実行部７に検知した旨を知らせると共に、受信部６ａがその新たな制御プログラムを受信する（ＳＴ５０１）。
（３）受信部６ａが変更に関わる制御プログラムが実行中であるか否かを判定し（ＳＴ５０２）、
【００２６】
（４）実行停止ならプログラム書き換え処理部６ｃに制御プログラム５ａの書き換えを指示する（ＳＴ５０３）。
（５）プログラム書き換え処理部６ｃは、指示を受けて新たな制御プログラム及び管理情報に更新する（ＳＴ５０４）。
【００２７】
（６）必要であれば変更されたプログラムを実行可能にする（ＳＴ５０５）。
（７）制御プログラムが実行途中で他の処理に一時移っている等の実行中であれば実行完了まで待って（ＳＴ５０６）、制御プログラムが停止した後、制御プログラム５ａを書き換える。
【００２８】
従来の技術４．
計算機システムの割込処理について説明する。
図４７は、例えば特許文献２に示された従来の計算機システムを示すブロック図である。
【００２９】
図において、３はプラントシステム４に接続されている入出力インタフェース（ＩＯインタフェース）である。
６０５はプラントシステム４からの割込を検出する割込検出部であり、６０２は割込検出部６０５が正常検出時に割込番号をセットする割込番号、６０３は異常検出時にエラー番号をセットするエラー番号、６０１はＩＯ割込またはエラーをプロセッサ１０に通知する割込通知部である。
【００３０】
６０４は制御対象であるプラントシステム４とプロセッサ１０との間で入出力が行われるプラントデータである。
６００はＩＯインタフェース３からの割込通知を受信するＩＯ割込・エラー受信であり、プログラム実行部７に、割込もしくはエラーに対応する制御プログラム５ａの起動を指示する。
【００３１】
従来の計算機システムにおけるＩＯ割込通知の動作について説明する。
図４８と図４９は、従来のＩＯインタフェース３の割込通知処理およびプロセッサ１０の割込受信処理のフローチャートであり、このフローチャートに従って説明する。
【００３２】
（１）割込検出部６０５がプラントシステム４からの割込検出を行う（ＳＴ７００）。
（２）割込が正常検出であれば（ＳＴ７０１）、
（３）割込番号６０２をセットし（ＳＴ７０２）、
【００３３】
（４）割込通知部６０１がプロセッサ１０にＩＯ割込を通知する（ＳＴ７０３）。
（５）一方割込検出が正常検出でなければ、エラー番号６０３をセットし（ＳＴ７０４）、
（６）割込通知部６０１がプロセッサ１０にＩＯエラーを通知する（ＳＴ７０５）。
【００３４】
（７）プロセッサ１０では、ＩＯ割込・エラー受信６００がＩＯインタフェース３からの通知を受信する（ＳＴ７１０）。
（８）ＩＯ割込通知であれば（ＳＴ７１１）、
（９）割込番号６０２の読み込みを行い（ＳＴ７１２）、
【００３５】
（１０）読み出した割込番号の制御プログラム５ａを起動する（ＳＴ７１３）。
（１１）一方ＩＯ割込通知でなければ（ＳＴ７１１）、エラー番号６０３の読み込みを行い（ＳＴ７１４）、
（１２）読み出したエラー番号の制御プログラム５ａを起動する（ＳＴ７１５）。
【００３６】
従来の技術５．
図５０は、例えば、特許文献３に示された従来の故障監視プロセッサの故障処理制御部である。
図において、２は各プロセッサ間を接続するシステムバス、１１は計算機システム全体の故障監視を行い外部へ故障処理出力を行うと共にエラー履歴を残す故障監視プロセッサ、１０ー１〜１０−Ｎは、演算を主機能とするプロセッサである。
【００３７】
２０は現在のシステムバスに接続されたカード構成情報がある構成テーブル部であり図５２にその詳細を示す。
２１は書き換え可能な不揮発性メモリにマッピングされた現在のシステムバスに接続されているカード分の故障処理設定テーブル部であり各カードでの故障発生時の処理方法を規定している。
【００３８】
２２はプロセッサ１０ー１〜１０ーＮからシステムバス２経由で通知される故障情報、２３は２２の故障情報を元に故障状態を外部に出力する故障出力部、２４は構成テーブル部２０の生成及び故障処理設定テーブル部２１の生成及び故障情報２２の受信及び故障出力部２３を制御を処理する故障監視部である。
【００３９】
図５１は従来の故障処理設定テーブル部２１の内部構造である。
図において、３０−１はシステムバス２に接続されたカード枚数、  ３１−１〜３１−Ｎはプロセッサ１０ー１〜１０ーＮが挿入されているスロット番号、
【００４０】
３２−１〜３２−Ｎはスロット番号３１ー１〜３１ーＮに示されるスロットに挿入されているカードの種類を判別するカード種別コード、  ３３−１〜３３−Ｎはそのカードの故障処理の設定内容で構成されており、スロットに挿入されているカード枚数分のみのテーブルに圧縮される。
【００４１】
図５２は従来の構成テーブル部２０の内部構造である。
図において、３０−１ｂはシステムバス２に接続されたカード枚数、  ３２−０ｂ〜３２−Ｎｂはスロット０〜Ｎに対応したカードの種類を判別するカード種別コードで構成されており、カード種別コードにデータ（０以外、例えば「１」）が入っていれば、そのスロット番号が有効となる。
【００４２】
次に動作について説明する。
あるプロセッサのカードにパリティエラー等の不具合があり、不良カードを抜き取って、再立ち上げを行った場合、故障監視部２４の初期化処理において、現在のシステム構成と再立ち上げ前のシステム構成に変更があるかをチェックする。
【００４３】
このチェックを行うために、構成テーブル部２０と前回まで使用されていた故障処理設定テーブル部２１のカード構成とを比較する。
比較時に、カードを抜き取りを行っている場合、現在の構成テーブル部２０と故障処理設定テーブル部２１の情報が異なっているので、故障監視部２４はシステムの再構築が行われたと判断し、どの設定内容で稼働すればよいか判断できない。
【００４４】
この場合、前回されていた設定内容は無視して、新規に予め用意していた、例えば、プロセッサの状態が重故障であれば計算機システム状態も重故障といったような標準の故障処理設定データ情報を故障処理設定テーブル部２１に上書きして動作していた。
【００４５】
構成テーブル部２０と故障処理設定テーブル部２１との比較は、故障処理設定テーブル部内部の全カード枚数３０ー１と、挿入されているカードのスロット番号３１ー１〜３１ーＮと、カード枚数番号毎のカード種別コード３２ー１〜３２−Ｎが構成テーブル部の情報と整合性が取れているかにより判断する。
従来の比較方法を以下図５３のフローチャートに従って説明する。
【００４６】
（１）現在のシステムを構成するカード構成が再立ち上げ前のシステムと同じ構成かをチェックするために、構成テーブル部２０の全カード枚数３０ー１ｂを読み取り（ＳＴ７００）、
（２）現在のシステム構成カード枚数が立ち上げ前のシステム構成のカード枚数を示す故障処理設定テーブル部２１内の全カード枚数３０ー１と一致するかどうか比較する（ＳＴ７０１）。
【００４７】
（３）不一致であれば（ＳＴ７０２）、
（４）システム構成に変更があるため、予め用意していた標準の設定を故障処理設定テーブル部２１に書き込む（ＳＴ７０７）。
【００４８】
（５）システム構成カード枚数が一致していれば（ＳＴ７０２）、
（６）次に現在挿入されている有効スロット番号をチェックするために、構成テーブル部２０の有効カードのスロット番号が故障処理設定テーブル部２１のスロット番号３１ー１と一致するか比較する（ＳＴ７０３）。
【００４９】
（７）不一致であれば（ＳＴ７０４）、
（８）標準値を故障処理設定テーブル部２１に書き込む（ＳＴ７０７）。
【００５０】
（９）一致していれば（ＳＴ７０４）、
（１０）現在そのスロットに挿入されているカードの種類をチェックするために、構成テーブル部２０のカード種別コード３１ー２ｂが以前そのスロットに挿入されていたカードの種類を示す故障処理設定テーブル部２１のカード種別コード３２ー１と一致するか比較する（ＳＴ７０５）。
【００５１】
（１１）不一致であれば（ＳＴ７０６）、
（１２）予め用意していた標準値を、故障処理設定テーブル部２１に書き込む（ＳＴ７０７）。
【００５２】
（１３）一致すれば（ＳＴ７０６）、
（１４）そのスロット番号に対してカード構成に変更がないため故障処理設定テーブル部２１の設定内容３３ー１は書き換えない。
（１５）上記処理を現在の全カード枚数３０ー１ｂ分繰り返し行う（ＳＴ７０８）。
【００５３】
現在のシステム構成と再立ち上げ前のシステム構成に変更がなければ、故障処理設定テーブル部２１を書き換えず、前回の値そのまま使用され、計算機システムの重／軽故障等の外部への故障出力を制御する条件として使用される。
【特許文献１】特開平４−３３２００２号公報
【特許文献２】特開平７−１４１２２８号公報
【特許文献３】特開平５−１２２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００５４】
従来の計算機システムは、以上のように構成されているので、制御プログラムが実行中にあるとき制御プログラムを新たなものに書き換える要求があった場合、該制御プログラムが実行完了し、停止するまで待たなければならないため、制御プログラムを一定時間内に書き換えることが出来ないという問題点があった。
【００５５】
この発明は上記のような課題を解決するためになされたものであり、実行中の制御プログラムに対して制御プログラムの書き換え要求が出された場合に、時間監視を開始し、タイムアウトした時、実行中の制御プログラムを強制エラー停止させて、要求された書き換えを完了させる計算機を得ることを目的とする。
【課題を解決するための手段】
【００５６】
この発明の計算機は、実行中のプログラムに対し書き換え要求があったとき、所定時間経過しても上記プログラムが実行中であると、そのプログラムの実行を停止してプログラム書き換えを行う手段を備えたものである。
【発明の効果】
【００５７】
プログラム実行の時間監視を行い、一定時間内に完了しない時は、強制エラー停止させてプログラム書き換え可能な状態にしてからプログラムを書き換えるようにしたので、長時間待たされることなく一定時間内にプログラムの書き換えを行い、メンテナンス性を向上させる効果がある。
【発明を実施するための最良の形態】
【００５８】
関連技術説明１．
以下、この発明の一関連技術を図について説明する。
図１はこの発明に関連した計算機システムのプログラム書換え時を示す構成図であり、従来のものと同一符号は説明を省略する。
図２及び図３はフローチャートで、図４は命令オペランド構成図、図５は制御プログラム実行時のアドレス変換処理を例示した図で、図６は制御プログラムの分岐処理を実行時の説明図である。
図５について説明する。プログラム１，２，３，・・・は、それぞれ複数のブロックから構成されており、プログラム１では４ブロックに分けられ、それぞれのブロックは、例えば１２８ステップの固定長にしている。
各ブロックの先頭アドレスに対応する物理アドレスの対象表をページ管理テーブル５ｂに登録し、この内容によりプログラム１では、制御プログラムの０，３，５，６の物理アドレスを先頭アドレスとするプログラムを実行する。
プログラム実行の際は、分岐アドレスを従来の図３７、図４２に示す分岐ブロック５ｃを必要としない。但し、プログラム書き換え時には、分岐ブロックを必要とする。
【００５９】
図６で分岐処理実行時について説明する。従来の図４２と対比すると分かるように、プログラム実行時は、分岐ブロックを無くして、プログラム５の「分岐３」には図４のオペランドに直接プログラム先頭からのステップ数を記述しておき、ページ管理テーブル５ｂを参照してプログラム５の開始アドレスである「アドレス５」に、上記オペランドのステップ数を加えたものが分岐先物理アドレス（ａ）を表し、制御プログラム５ａのａ番目のアドレスが分岐先となり、その位置のプログラムから実行する。
【００６０】
次に動作について図２及び図３のフローチャートと共に説明する。
図２は分岐命令が含まれるプログラム書換え処理の動作フローを示したものである。
（１）保守ツール１から送られてきたプログラム書き換え処理要求を、要求処理部６の受信部６ａが受信し、プログラム書き換え処理部６ｃに送る（ＳＴ１００）。
（２）プログラム書き換え処理部６ｃは、制御プログラムをメモリ部５の制御プログラム５ａ領域に書き込むと共に（ＳＴ１０１）、
（３）制御プログラム５ａへの書き込み位置をメモリ部５の先頭からのオフセットアドレスである物理アドレスで表現し、指定されたプログラム番号に対応させてページ管理テーブル５ｂに登録する（ＳＴ１０２）。
（４）前記プログラム書き込みが完了すると、プログラム書き換え処理部６ｃは、プログラム書き換え処理要求のあったプログラムから分岐命令の分岐先を抽出し、オペランドに保持されている分岐ブロック番号を識別子として用いて分岐ブロック情報を参照し、プログラムの先頭からの命令ステップ数である分岐先論理アドレスを獲得する（ＳＴ１０３）。
（５）獲得した前記分岐先論理アドレスを、分岐命令実行時に分岐先として知る必要があるため、図４に示すように前記分岐命令のオペランドとして登録する（ＳＴ１０４）。
（６）上記ＳＴ１０３〜ＳＴ１０４をプログラム中の分岐命令全てに対して行う（ＳＴ１０５）。
【００６１】
図３は分岐命令実行時の分岐命令処理の動作フローを示したものである。
（１）プログラム実行部７は、メモリ部５の制御プログラム５ａから命令を抽出し（ＳＴ１０６）、
（２）分岐命令であれば（ＳＴ１０７）、図６では、プログラム５の「分岐３」。
（３）ページ管理テーブル５ｂを参照して、該プログラム番号に相当するメモリ５の先頭からの物理オフセットアドレス（図６のアドレス５）と、図４に示す前記分岐命令オペランドに格納された分岐先論理アドレス（図６の分岐３の論理アドレス）とを加算し、分岐先物理アドレスを得る（ＳＴ１０８）。
（４）プログラム実行部７は、算出した分岐先物理アドレスに分岐し実行する（ＳＴ１０９）。
（５）ＳＴ１０６にて抽出した命令が分岐命令でなければ（ＳＴ１０７）、
（６）各命令に従い実行する（ＳＴ１１０）。
（７）プログラム中の全ての命令の実行が完了すれば（ＳＴ１１１）、プログラム実行を終了する。
【００６２】
以上のように、命令実行時には分岐ブロックを参照することなく、分岐先論理アドレスを物理アドレスに変換し、指定された物理アドレスへ制御プログラムの制御移行を行うことができるため、プログラム書き換え後は分岐ブロック情報を保持する必要がなくなり、分岐ブロックの削除により命令実行時に必要なバックアップメモリサイズが大幅に削減できるので、計算機のコストを低下させ、制御プログラムの実行性能が向上する。
従って計算機処理の性能向上が図れる。
【００６３】
なお、バックアップメモリは、通常、電源ＯＦＦしても別電源がバックアップするメモリであるが、電源がバックアップしないメモリにも適用できる。
また、メモリの削減は、例えば２５％程度削減できる。
【００６４】
関連技術説明２．
図７は、プログラム実行時にページ管理テーブル５ｂを参照し、分岐先論理アドレスを分岐先物理アドレスに変換する処理を行う図１に対し、プログラム書き換え時に、分岐先論理アドレスを分岐先物理アドレスに変換する処理を行い、分岐命令実行時には、ページ管理テーブルを参照せず直接プログラムに記述された分岐先物理アドレスに基づいて分岐処理を行うものである。
【００６５】
図７において、従来のものと同一符号は説明を省略する。
図８及び図９はフローチャートで、図１０は命令オペランド構成図である。
図１１は分岐処理の実行時の説明図である。
【００６６】
次に動作について図８及び図９のフローチャートと共に説明する。
図８は分岐命令が含まれるプログラム書き換え処理の動作フローを示したものである。
（１）保守ツール１から送られてきたプログラム書き換え処理要求を、要求処理部６の受信部６ａが受信し、プログラム書き換え処理部６ｃに送る（ＳＴ２００）。
【００６７】
（２）プログラム書き換え処理部６ｃは、制御プログラムをメモリ部５の制御プログラム５ａ領域に書き込むと共に（ＳＴ２０１）、
（３）制御プログラム５ａへの書き込み位置をメモリ部５の先頭からのオフセットアドレスである物理アドレスで表現し、指定されたプログラム番号に対応させてページ管理テーブル５ｂに登録する（ＳＴ２０２）。
【００６８】
（４）前記プログラム書き込みが完了すると、プログラム書き換え処理部６ｃは、プログラム書き換え処理要求のあったプログラムから分岐命令の分岐先を抽出し、オペランドに保持されている分岐ブロック番号を識別子として用いて分岐ブロック情報を参照し、プログラムの先頭からの命令ステップ数である分岐先論理アドレスを獲得する（ＳＴ２０３）。
【００６９】
（５）分岐先論理アドレスを獲得すると、プログラム書換え部６ｃは、前記ページ管理テーブル５ｂを参照して、該プログラム番号に相当するメモリ５の先頭からの物理オフセットアドレスに分岐先論理アドレスを加算し、分岐先物理アドレスを得る（ＳＴ２０４）。
【００７０】
（６）分岐先物理アドレスを図１０に示すように前記分岐命令オペランドに書き込む（ＳＴ２０５）。
（７）上記ＳＴ２０３〜ＳＴ２０５をプログラム中の分岐命令全てに対して行う（ＳＴ２０６）。
【００７１】
図９は分岐命令実行時の分岐命令処理の動作フローを示したものである。
（１）プログラム実行部７は、メモリ部５の制御プログラム５ａ（図１１ではプログラム５で説明）から命令を抽出し（ＳＴ２０７）、
【００７２】
（２）分岐命令であれば（ＳＴ２０８）、例えば図１１の「分岐３」であれば、
（３）図１０に示す分岐命令オペランドに格納された分岐先物理アドレスに分岐実行する（ＳＴ２０９）。
【００７３】
（４）抽出した命令が前記分岐命令でなければ、各命令に従い実行する（ＳＴ２１１）。
（５）プログラム中の全ての命令の実行が完了すれば（ＳＴ２１０）、プログラム実行を終了する。
【００７４】
以上のように、命令実行時には分岐ブロック及びページ管理テーブル共に参照することなく、指定された物理アドレスへ制御プログラムの制御移行を行うことができるため、プログラム書き換え後は分岐ブロック情報およびページ管理テーブルを保持する必要がなくなり、分岐ブロックおよびページ管理テーブルの削除により命令実行時に必要なバックアップメモリサイズが大幅に削減できて、計算機のコストを低下させ、また、制御プログラムの実行性能が向上する。
【００７５】
更に、命令実行時に論理アドレスから物理アドレスへ変換する処理が削除されるため、命令実行速度を向上させるという効果がある。
従って、計算機の処理性能が向上する。
【００７６】
関連技術説明３．
この関連技術はメンテナンス処理を効率的に行うものである。
図１２はその構成図で、６ｄは受信部６ａで受信した要求を処理するメンテナンス処理部、６ｆはメンテナンス処理をキャンセルするキャンセル処理部、５ｄはメンテナンス要求処理で使用する処理バッファである。
図１３、図１４、図１５は処理動作のフローチャートである。
【００７７】
ここでメンテナンスとは、プログラムの変更・修正、制御情報の変更や、トレース開始、トレースデータの読み出し等種々のものがある。キャンセルもメンテナンスの一つであが、ここではキャンセルはメンテナンスとは別にして説明する。
また、パソコン等の保守ツールからのメンテナンス要求は、メンテナンス要求それ自身がプログラムの変更・修正内容である場合が多いが、保守ツールからのメンテナンス要求（指令）に応じて、計算機側で所定のメンテナンス処理をする場合もある。
【００７８】
次に動作について説明する。
図１３は関連技術説明３の計算機における要求受信処理の動作の流れを示すフローチャートである。
（１）保守ツール１からのメンテナンス処理要求を受信部６ａが受信するとキャンセル要求かどうかを判定する（ＳＴ３００）。
【００７９】
（２）判定結果がキャンセル要求でなく、メンテナンス処理要求であれば受信部６ａはメンテナンス処理部６ｄに受信データを送り（ＳＴ３０１）、
（３）メンテナンス処理部６ｄは処理バッファ５ｄに受信データを登録する（ＳＴ３０２）。
（４）判定結果がキャンセル要求であれば、キャンセル処理部６ｆに受信データを送る（ＳＴ３０３）。
【００８０】
（５）キャンセル処理部６ｆは、図１５のフローチャートのように、処理バッファ５ｄで処理中のメンテナンス処理が該保守ツール１からのコマンドかどうかを判定し（ＳＴ３０４）、
（６）該保守ツール１からのコマンドであれば、該保守ツール１のメンテナンス処理を登録している処理バッファ５ｄを削除する（ＳＴ３０５）。
【００８１】
また、図１４は送信処理の流れを示すフローチャートである。
（１）メンテナンス処理の応答受信待ち状態（ＳＴ３０６）で、メンテナンス処理部６ｄからのメンテナンス処理応答が無い場合は、受信待ちを続ける。
（２）メンテナンス処理部６ｄからの応答が来ると、保守ツール１に対し応答を送る（ＳＴ３０７）。
【００８２】
（３）前記応答処理でタイムアウト等の保守ツール１の接続断のエラーが検出されると（ＳＴ３０８）、
（４）再び応答をリトライし、規定されたリトライ回数を越えるとリトライオーバ（ＳＴ３０９）として応答を中止する（ＳＴ３１０）。
【００８３】
（５）このとき同じ保守ツール１からの他の要求を終了させるためキャンセル要求のコマンドを生成し、受信部６ａに要求を送る（ＳＴ３１１）。
（６）受信部６ａはこのキャンセル要求を受けて、該保守ツールからの受けているコマンド処理のキャンセル処理を図１５のフローチャートで行う。
【００８４】
以上のように、保守ツールの接続が断となった場合、この保守ツールからのメンテナンス要求に対する応答時のエラーが検出されるので、エラーが検出された保守ツールからの一つまたは複数のメンテナンス要求に対応するメンテナンス処理が全てキャンセル処理されるため、既に受け付けている他の保守ツールからのメンテナンス処理はキャンセルされず、接続断となった保守ツールのみのメンテナンスをキャンセルするので、他の保守ツールからのメンテナンス処理要求が受け付け可能となりメンテナンス処理を効率的に行える。
従って計算機処理の性能向上が図れる。
【００８５】
関連技術説明４．
この関連技術は、制御プログラムのトレース処理の効率化を図るものである。
図１６はこの発明の計算機システムの関連技術説明４を示すブロック図である。
図において、４００はトレースメモリ、４０１はトレースデータ収集部、４０２は制御プログラムアドレスで、実行した制御プログラムのアドレスが格納される。この制御アドレスはプログラムカウンタが用いられる。
【００８６】
４０３はアドレス一致検出部、４０４はトレース要求信号である。
４０５はアドレス書き換え部であり、次の制御プログラムアドレスを新たなアドレス一致開始アドレスとして、アドレス一致開始レジスタ４０３ａに格納する。
【００８７】
次に動作について図１７のフローチャートを用いて説明する。
（１）アドレス一致検出部４０３が制御プログラムアドレス（プログラムカウンタ）４０２と、アドレス一致開始レジスタ４０３ａとのアドレス一致を検出し、トレース要求信号４０４をトレースデータ収集部４０１へ出力する（ＳＴ４１０）。
【００８８】
（２）トレースデータ収集部４０１はトレース要求信号４０４を検知し（ＳＴ４１１）、
（３）アドレス一致が検出されたアドレスはトレースデータ未収集であるか否かをトレース履歴レジスタ４０１ａによって判定する（ＳＴ４１２）。
【００８９】
（４）トレースデータ未収集の場合はトレースデータを収集する（ＳＴ４１３）。
（５）トレースデータ収集完了後、トレース完了の情報を、トレース履歴レジスタ４０１ａ内の制御プログラムアドレス４０２に対応した位置に格納する（ＳＴ４１４）。
【００９０】
（６）アドレス書き換え部４０５が、制御プログラムアドレス４０２に１加算したアドレスを新しいトレース開始アドレスとして、アドレス一致検出部４０３のアドレス一致開始レジスタ４０３ａに設定する（ＳＴ４１５）。
【００９１】
（７）トレース収集後検出されたアドレスが、トレース終了アドレスか否かを判定し、トレース終了アドレスのデータ収集が完了するまで実行する（ＳＴ４１６）。
【００９２】
従来のアドレス一致開始レジスタ４０３ａは、図４４のようにトレースすべきアドレスを全て登録しているが、この関連技術説明では、図４４のアドレス一致開始レジスタ４０３ａのトレース終了した開始アドレスは次のトレースすべき開始アドレスに書き換えられるので、トレース終了のアドレスまでトレースの要否を判断する必要がなくなる。
【００９３】
以上のように、一度トレースデータを収集した制御プログラムをトレース対象範囲から外すことにより、トレースデータ収集済みの制御プログラムアドレスでアドレス一致を検出しないので無駄な判定処理をしなくてよく、ループ制御などの繰り返し実行する部分でのトレースデータ収集のオーバーヘッドが削減され、計算機システムの負荷を軽減する。
従って計算機処理の性能向上が図れる。
【００９４】
実施の形態１．
この実施の形態は、制御プログラムの書き換えを効率的に行うものである。
図１８は、この発明の実施の形態１を示す計算機システムの構成図である。
図において、従来のものと同一符号は同一又は相当部分を示し説明を省略する。
【００９５】
６ｅは制御プログラムの実行完了を時間監視する時間監視部で、他の処理を行うため一時処理を移行している等の、実行中となっているモジュールに対して実行完了までの時間監視を行う。
時間監視部６ｅが実行完了のタイムアウトを出力すると、６ｇのプログラム強制停止部がタイムアウトとなったプログラムを強制エラー停止させる。
【００９６】
次に動作について図１９のフローチャートを用いて説明する。
（２）保守ツール１から新たな制御プログラムが出力されると、要求処理部６がこれを検知し（ＳＴ５１０）、
（３）プログラム実行部７に検知した旨を知らせると共に受信部６ａがその新たな制御プログラムを受信する（ＳＴ５１１）。
【００９７】
（４）受信部６ａが更新に関わる制御プログラムが実行中であるか否かを判定し（ＳＴ５１２）、
（５）実行停止なら、プログラム書き換え処理部６ｃに制御プログラムの書き換えを指示する（ＳＴ５１３）。
【００９８】
（６）プログラム書き換え処理部６ｃは、指示を受けて新たな制御プログラムに更新する（ＳＴ５１４）。
（７）制御プログラムが実行中であれば、時間監視部６ｅに、例えば実行周期の３倍の時間の時間監視を指示し、変更に係る制御プログラムの実行完了を監視する（ＳＴ５１６）。
【００９９】
（８）一定時間経過しても実行完了しない場合は、プログラム強制停止部６ｇがプログラム実行部７に強制エラー停止を指示し、プログラムを停止させる（ＳＴ５１７）。
制御プログラムが停止した後、制御プログラム５ａを書き換える。
【０１００】
以上のように、実行中の制御プログラムに対して書き換え要求があった場合、プログラム実行完了までの時間監視を行い、一定時間内に完了しない時は、強制エラー停止させて、プログラム書き換え可能な状態にしてからプログラムを書き換えるようにしたので、長時間待たされることなく一定時間内に制御プログラムの書き換えを行い、メンテナンス性を向上させる効果がある。
従って計算機処理の性能向上が図れる。
【０１０１】
関連技術説明５．
この関連技術は複数の計算機で構成された計算機システムにおいて、割込処理を効率的に行うものである。
図２０は、この発明の関連技術説明５を示す計算機システムの構成を示すブロック図である。図において、図４７に同一符号を付した従来のそれと同一、あるいは相当部分の詳細な説明は省略する。
【０１０２】
図２０において、１０−１〜１０−Ｎはプロセッサ（計算機）である。これらのプロセッサ１０−１〜１０−Ｎはシステムバス２によって接続されている。
また、システムバス２によって各プロセッサ１０−１〜１０−ＮはそれぞれＩＯインタフェース３に接続される。そして４はＩＯインタフェース３により接続されるプラントシステムである。
なお、ここでは各プロセッサ１０−１〜１０−ＮおよびＩＯインタフェース 
【０１０３】
３はスロットに挿入されるカードとして実現する場合を例にとる。
各プロセッサ１０−２〜１０−Ｎもプロセッサ１０−１と同一の構成であり、従来の図４７のプロセッサ１０とも同一の構成をとる。
６０６はプラントシステム４からの各割込毎に、通知先プロセッサへの関係付け情報を保持する割込対応情報であり詳細のデータ構造は図２１に示す。
【０１０４】
図２１の割込対応情報の例では、
割込番号の値が０の時にはプロセッサ１０−１へ通知し、割込番号の値が１の時には何れのプロセッサにも通知しない、割込番号の値が２の時にはプロセッサ１０−Ｎへ通知することを示す情報である。
【０１０５】
次に動作について説明する。
図２２と図２３は、ＩＯインタフェース３の割込通知処理およびプロセッサ１０−１〜１０−Ｎの割込受信処理のフローチャートであり、図２２および図２３のフローに従って説明する。
（１）割込検出部６０５がプラントシステム４からの割込検出を行う（ＳＴ６００）。
【０１０６】
（２）割込が正常検出であれば（ＳＴ６０１）、ステップＳＴ６０２へ行く。
割込が正常か否かは、例えば、割込番号の範囲をチェックして、範囲内であれば正常、範囲外であれば異常と判定する。
（３）割込通知部６０１が割込対応情報６０６の割込番号に対応するプロセッサに、例えば、割込対応情報６０６の割込番号がプロセッサ１０−１であれば、そのプロセッサに割込番号を通知する（ＳＴ６０２）。
【０１０７】
（４）一方割込検出が正常検出でなければ、エラー番号６０３をセットし（ＳＴ６０４）、
（５）割込通知部６０１が、例えば、プロセッサ１０−１にＩＯエラーを通知する（ＳＴ６０５）。
【０１０８】
（６）図２３で、プロセッサ１０では、ＩＯ割込・エラー受信６００がＩＯインタフェース３からの通知を受信する（ＳＴ６１０）。
（７）ＩＯ割込通知であれば（ＳＴ６１１）、
（８）通知された割込番号の制御プログラム５ａを起動する（ＳＴ６１２）。
【０１０９】
（９）一方ＩＯ割込通知でなければ（ＳＴ６１１）、
（１０）エラー番号６０３の読み込みを行い（ＳＴ６１４）、
（１１）読み出したエラー番号の制御プログラム５ａを起動し、エラーに対応した処理を実行する（ＳＴ６１５）。
【０１１０】
以上のように、計算機システムのＩＯインタフェースは、割込を検出すると、割込対応情報に指定されたプロセッサのみに割込を通知し、指定されていないプロセッサには割込を通知しないため、割込の通知を必要としないプロセッサのオーバヘッドが削減され、計算機システムのスループットを向上させる。従って、計算機システムの性能低下を防ぐことができる。
【０１１１】
関連技術説明６．
この関連技術は複数の計算機で構成された計算機システムにおいて、関連技術５と同様の割込処理を効率的に行うものである。
図２４は、この発明の関連技術説明６を示す計算機システムの構成を示すブロック図である。
【０１１２】
図２４において、６０８はプラントシステム４からの各割込毎に、通知先プロセッサへの関係付け情報を保持する複数割込対応情報であり、その詳細は図２５に示す。
また、関連技術５の図２０と同一符号は詳細な説明は省略する。
【０１１３】
図２５は、割込対応情報のデータ構造を例示するもので、割込番号の値が０の時にはプロセッサ１０−１とプロセッサ１０−５へ、割込番号の値が１の時には何れのプロセッサにも通知せず、割込番号の値が２の時にはプロセッサ１０−２とプロセッサ１０−３とプロセッサ１０−Ｎへ通知することを示す情報である。
【０１１４】
次に動作について説明する。
図２６は、ＩＯインタフェース３の割込通知処理のフローチャートである。
プロセッサ１０−１〜１０−Ｎの割込受信処理のフローチャートは、関連技術説明説明５の図２３と同一であるため省略する。
【０１１５】
図２６のフローに従って説明する。
（１）割込検出部６０５がプラントシステム４からの割込検出を行う（ＳＴ６２０）。
（２）割込が正常検出であれば（ＳＴ６２１）、
【０１１６】
（３）割込通知部６０１が、複数割込対応情報６０８の割込番号に対応する一つまたは複数のプロセッサに割込番号を通知する（ＳＴ６２２）。
（４）一方割込検出が正常検出でなければ、エラー番号６０３をセットし（ＳＴ６２４）、
（５）割込通知部６０１がプロセッサにＩＯエラーを通知する（ＳＴ６２５）。
以降の処理は、図２３と同一である。
【０１１７】
以上のように、計算機システムのＩＯインタフェースは、割込を検出すると、割込対応情報に指定された１つまたは複数のプロセッサへ割込を通知し、指定されていないプロセッサには割込を通知しないため、計算機システムの性能低下を防ぐことができる。
また、適切な設定により各プロセッサへの最適な負荷分散が可能になるという効果がある。
従って計算機処理の性能向上が図れる。
【０１１８】
関連技術説明７．
この関連技術説明は複数の計算機で構成された計算機システムにおいて、割込処理を効率的に行うものである。
図２７は、この関連技術を示す計算機システムの構成を示すブロック図である。
図において、従来の図４７と同一符号を付したものは同一部分であるので詳細な説明は省略する。
【０１１９】
図において、１０−１〜１０−Ｎはプロセッサである。これらのプロセッサ１０−１〜１０−Ｎはシステムバス２によって接続されている。
また、システムバス２によって各プロセッサ１０−１〜１０−ＮはそれぞれＩＯインタフェース３に接続される。
そして、ＩＯインタフェース３はプラントシステム４に接続されている。
【０１２０】
なお、ここでは各プロセッサ１０−１〜１０−ＮおよびＩＯインタフェース３はスロットに挿入されるカードとして実現する場合を例にとる。
各プロセッサ１０−２〜１０−Ｎもプロセッサ１０−１と同一の構成であり、従来の図４７のプロセッサ１０とも同一の構成をとる。
【０１２１】
６０７はエラー番号毎に、通知先プロセッサへの関係付け情報を保持するエラー対応情報である。
【０１２２】
また、図２８は、例えば関連技術説明７のエラー対応情報のデータ構造を例示したもので、
エラー番号の値が０の時には、プロセッサ１０−１とプロセッサ１０−５へ、エラー番号の値が１の時には、何れのプロセッサにも通知せず、エラー番号の値が２の時には、プロセッサ１０−２とプロセッサ１０−３とプロセッサ１０−Ｎへ通知することを示す情報である。
【０１２３】
次に動作について説明する。
図２９と図３０は、ＩＯインタフェース３の割込通知処理およびプロセッサ１０−１〜１０−Ｎの割込受信処理のフローチャートである。
図２９および図３０のフローに従って説明する。
【０１２４】
（１）割込検出部６０５がプラントシステム４からの割込検出を行う（ＳＴ６３０）。
（２）割込が正常検出であれば（ＳＴ６３１）、割込通知部６０１が、例えば図２８に示す割込対応情報６０６の割込番号に対応する、一つまたは複数のプロセッサに割込番号（図２１または図２５に示すプロセッサ）を通知する（ＳＴ６３２）。
【０１２５】
（３）一方割込検出が正常検出でなければ、割込通知部６０１がエラー対応情報６０７のエラー番号に対応する一つまたは複数のプロセッサにエラー番号を通知する（ＳＴ６３４）。
（４）プロセッサ１０では、ＩＯ割込・エラー受信６００がＩＯインタフェース３からの通知を受信する（ＳＴ６４０）。
【０１２６】
（５）ＩＯ割込通知であれば（ＳＴ６４１）、
（６）通知された割込番号の制御プログラム５ａを起動する（ＳＴ６４２）。
（７）一方ＩＯ割込通知でなければ（ＳＴ６４１）、
（８）通知されたエラー番号の制御プログラム５ａを起動し、エラーに対応した処理を実行する（ＳＴ６４４）。
【０１２７】
以上のように、計算機システムのＩＯインタフェースは、割込検出動作でエラー検出時に、割込を通知する代わりに、エラー要因毎のエラー対応情報で指定された１つまたは複数のプロセッサにエラーを通知し、指定されていないプロセッサにはエラーを通知しないため、計算機システムの性能低下を防ぐことができる。
【０１２８】
また、プラントからの割込検出処理での各エラーを、単一のプロセッサに通知することも、要因毎に各プロセッサへ通知することも、全てのプロセッサへ通知することも可能であり、このため、単一のプロセッサに通知することにより他のプロセッサにエラーの影響を及ぼさないシステムや、全てのプロセッサへ通知することにより同一の異常処理を行わせるシステム等の多様なシステムの構築が可能になるという効果がある。
従って計算機処理の性能向上が図れる。
【０１２９】
関連技術説明８．
この関連技術説明は複数の計算機で構成された計算機システムにおいて、故障に対するバックアップを行うものである。
図３１は、この関連技術を示す計算機システムの構成を示すブロック図である。
【０１３０】
図において、６５３はプロセッサ内で発生するエラーを検出し、このエラー情報を他プロセッサやＩＯインタフェース３に通知する故障検出部、６５０はプロセッサ１０−１〜１０−Ｎからの故障発生通知を受けるプロセッサカード故障検出部、６５１はプロセッサの故障発生により、割込対応情報６０６やエラー対応情報６０７を変更する割込／エラー対応情報更新部である。
【０１３１】
６５２は割込／エラー対応情報部６５１が、故障プロセッサの変更の参照にするプロセッサ変更カードテーブルであり、図３３に詳細を示す。
図３３は、例えばＩＯインタフェース３に接続される保守ツールにより設定される。
【０１３２】
次に動作について説明する。
図３２は、プロセッサに故障が発生した場合の動作を示すフローチャートである。
（１）プロセッサ１０−１にメモリのパリティエラー等の故障が発生したとすると、故障検出部６５３が認識し（ＳＴ６７０）、
【０１３３】
（２）他プロセッサ及びＩＯインタフェース３に故障が発生したことを通知する（ＳＴ６７１）。
（３）ＩＯインタフェース３のプロセッサカード故障検出部６５０はプロセッサからの故障通知を認識する。（ＳＴ６７２）
【０１３４】
（４）プロセッサ故障カード検出部６５０は割込／エラー対応情報更新部６５１に割込対応情報６０６とエラー対応情報６０７の通知先プロセッサの変更が必要なことを通知する（ＳＴ６７３）。
（５）割込／エラー対応情報更新部６５１は、例えば図３３に示すプロセッサ変更カードテーブル６５２を参照し（ＳＴ６７４）、
【０１３５】
（６）故障となったプロセッサの変更プロセッサを得る（ＳＴ６７５）。
図３３では、例として、プロセッサ１０−１が故障の時はプロセッサ１０−２、プロセッサ１０−（Ｎ−１）が故障の時は、プロセッサ１０−Ｎが対応する場合を示している。
【０１３６】
（７）割込／エラー対応情報更新部６５１は、割込対応情報６０６とエラー対応情報６０７を検索し、故障となったプロセッサ番号が含まれているか否かを調べる（ＳＴ６７６）。
【０１３７】
（８）プロセッサ番号が含まれていれば（ＳＴ６７７）、
（９）そのプロセッサ番号に対応する変更プロセッサ番号により、割込対応情報６０６とエラー対応情報６０７の故障となったプロセッサ番号を変更する（ＳＴ６７８）。
（１０）プロセッサ番号が含まれていなければ（ＳＴ６７７）、割込対応情報６０６とエラー対応情報６０７はそのままとしておく（ＳＴ６７９）。
【０１３８】
以上のように、この計算機システムは、要求先プロセッサが故障状態になった場合でも、該故障状態を認識するプロセッサカード故障認識部と、割込検出時／エラー検出時に、その通知先を変更する割込／エラー対応処理更新部により、要求先プロセッサを変更するので、プロセッサ故障時でもプラントシステムからの要求を処理できる。
従って計算機システムの性能向上が図れる。
【０１３９】
関連技術説明９．
この関連技術説明は複数の計算機（プロセッサ）の各々が各カード単位で構成された計算機システムにおいて、計算機（プロセッサ）の故障などでカードを差し替えたり、新たにカードを取り付けたりした場合に、カードの設定内容を自動的に設定するものである。
【０１４０】
図３４はこの関連技術を示す図であり、この図は従来の図５０の故障監視プロセッサ１１内にバックアップデータ情報エリア２５を加えたものである。
このバックアップデータ情報エリア２５は、故障監視プロセッサ１１内の書き換え可能な不揮発性メモリに設けられ、前回設定された故障処理設定テーブル部の内容を格納するものである。
【０１４１】
図３５は、バックアップデータ情報エリア２５の詳細情報である。
図において、３２−０ａ〜３２−Ｎａはカードの枚数の枚数番号に対応したカードの種類を判別するカード種別コード、３３−０ａ〜３３−Ｎａはそのカードの設定内容で構成され、スロット毎の設定情報となるためスロットに挿入されるカード枚数に係わらずバックアップデータ情報エリアは固定長としている。
【０１４２】
また、構成テーブル部２０のデータ構造は従来の図５２のデータ構造であり、また、故障処理設定テーブル部２１のデータ構造は従来の図５１のデータ構造である。
図３６は、故障監視部２４の故障処理設定テーブル部２１の初期化処理における動作のフローチャートである。
【０１４３】
次に動作について説明する。
（１）図３４のように構成された故障監視プロセッサ１１において、故障監視部２４の初期化処理において、現在のシステム構成が再立ち上げ前のシステム構成と同じかどうかチェックするために、構成テーブル部２０からカード種別コード３２ー０ｂ〜３２−Ｎｂ（図５２で図示）が０以外であれば有効スロット番号とし、その有効スロット番号に相当するカード種別コード３２ー０ｂ〜３２−Ｎｂを読み取る（ＳＴ７１０）。
【０１４４】
（２）前記のＳＴ７１０で得た有効スロット番号と再立ち上げ前のシステム構成で前回まで使用されていた故障処理設定テーブル部２１のスロット番号３１ー１とが一致するかどうか比較する（ＳＴ７１３）。
【０１４５】
（３）一致する場合（ＳＴ７１４）、
（４）そのスロットに挿入されているカードの種類をチェックするために、ＳＴ７１０で得た該有効スロットのカード種別コード３２ー１ｂ（図５２で図示）が故障処理設定テーブル部２１（図５１で図示）のカード種別コード３２ー１と比較し、立ち上げ前のカード種別かを判断する（ＳＴ７１５）。
【０１４６】
（５）一致する場合（ＳＴ７１６）、カード構成に変更がないと判断し、前回設定された設定内容３３ー１がそのまま使用される。
【０１４７】
（６）一方、図５２の構成テーブル部２０の有効スロット番号と図５３の故障処理設定テーブル部２１のスロット番号３１ー１の比較（ＳＴ７１３）にて、
（７）不一致が発生すると（ＳＴ７１４）、
【０１４８】
（８）再立ち上げ前の設定で稼働させるため、以前設定されていた故障処理設定テーブル部２１を保存したバックアップデータ情報エリア２５から設定内容を採取するが、そのバックアップデータ情報エリア２５の内容が現在のシステム構成を満たしているかをチェックする。
まず、該当スロットに対応する図３５のバックアップデータ情報エリア２５のカード種別コード３２−０ａと図５２の構成テーブル２０のカード種別コードを比較する（ＳＴ７１９）。
【０１４９】
（１０）一致する場合（ＳＴ７２０）、
（１１）該当スロットのバックアップデータ情報エリア２５の設定内容３３−０ａが前回設定されていた設定であるため、そのデータを故障処理設定テーブル部２１の該当カード設定情報の設定内容３３ー１に書き込む（ＳＴ７２２）。
【０１５０】
（１２）一致しない場合（ＳＴ７２０）、
（１３）以前にその該当スロットに設定したことのないカードの種類が新規に挿入されたと判断し、予め用意していた設定内容の標準値をバックアップデータ情報エリア２５の設定内容３３−０ａと、故障処理設定テーブル部２１の設定内容３３ー１にそれぞれ書き込む（ＳＴ７２１）。
【０１５１】
（１４）上記処理をカード枚数分繰り返し（ＳＴ７２３）行うことにより故障処理設定テーブル部が有効となる。
【０１５２】
例えば、あるプロセッサにてパリティエラーが発生し、そのプロセッサを抜き取り、再立ち上げを行った場合、抜き取った以外の挿入されている他のプロセッサに対しては、構成テーブル部２０の有効スロット番号のカード種別コード３２ー１ｂとそのスロットに該当する故障処理設定テーブル部２１のカード種別コードは一致するので、設定内容は変わらず処理される。
【０１５３】
再び、不具合プロセッサと同じカード種別を持つプロセッサをスロットに差し再立ち上げを行うと、新たにスロットに差し込んだプロセッサの設定内容のみをバックアップデータ情報エリア２５から読み取り、その設定内容を故障処理設定テーブルの該当エリアに書き込む。
【０１５４】
よって、新規カードに伴う人手による新たな設定なしで不具合発生前の設定内容で、計算機システムが稼働することができる。
【０１５５】
一方、バックアップデータ情報エリア２５は、メンテナンスツール等から故障処理設定テーブルを書き換えるときに、同時に設定された内容を各スロット別に分類して書き込まれるため、設定値はその設定時点で保存される。
また、バックアップデータ情報エリア２５にデータが全く設定されていない場合、予め用意している標準値をバックアップメモリデータ情報エリアに書き込み立ち上げを行う。
【０１５６】
なお、故障処理プロセッサ１１は、プロセッサ１０ー１〜１０ーＮのいずれかにその機能を持たせるようにしてもよい。
【０１５７】
以上のように、この計算機システムは、故障監視プロセッサにバックアップデータ情報エリアを設け、カード構成の変更が発生しても故障処理設定テーブル部の内容は前回使用されていた設定内容を使用でき、また、現状あるＳ／Ｗとのインタフェースの互換を保つ事ができ、Ｈ／Ｗの変更なしで実現できる。
【０１５８】
それ故、スロットから一旦カードを抜き、立ち上げ直しても、他のカードに設定されていた故障処理設定テーブル部の変更はなく、また、同一カードを同一スロットに差すと、前回そのカードに設定されていた設定内容で動作可能となり、また、前回設定されていなかったカードを差した場合、あるいは、前回設定されていなかったスロットにカードを差した場合、標準値等の所定の設定データが故障処理設定テーブル部に格納され、その設定データを使用して外部出力、及び、ユニット制御を行うことが可能となる。
【０１５９】
関連技術説明１０．
前記関連技術説明９の変形例として、故障処理設定テーブル部２１にバックアップデータ情報エリア２５の機能を持たせる例を説明する。
【０１６０】
上記の関連技術説明９では、例えば、現在設定されている故障処理設定テーブル２１の内容を保守ツール等を用いて変更した後、トラブルなどによりカードを抜き取って再立ち上げした時、故障処理設定テーブル部２１には、その抜き取ったカードの設定内容は削除される。
【０１６１】
その後、カードの修理、交換などにより再びスロットに挿入して立ち上げると、前回設定していた内容は、故障処理設定テーブル部２１に入っていないため、バックアップエリアから前回の設定内容を取ってくるようにしている。
【０１６２】
この関連技術説明１０では、故障処理設定テーブル部２１のデータにフラグを設け、カードを抜き取った場合は、「カードなし」のフラグを立てて、その設定内容が削除されないようにする。そしてカードが挿入された場合に、「カードあり」としてフラグを下ろして、故障処理設定テーブル部２１の設定内容で挿入されたカードを設定する。
【０１６３】
このように関連技術説明１０は、関連技術説明９と同様の効果を有する。
【産業上の利用可能性】
【０１６４】
この発明の計算機および計算機システムは、鉄鋼所、発電所、その他の産業プラントを制御する計算機および計算機システム、鉄道や道路の交通管理計算機、および計算機システム、として利用することができる。
【図面の簡単な説明】
【０１６５】
【図１】この発明の関連技術説明１による計算機システムを示す構成図である。
【図２】図１の計算機システムのプログラム書換え部の動作を示すフローチャートである。
【図３】図１の計算機システムのプログラム実行部の動作を示すフローチャートである。
【図４】図１の計算機システムのオペランド構成図である。
【図５】この発明の関連技術説明１による制御プログラム実行時のアドレス変換処理を説明する図である。
【図６】この発明の関連技術説明１による分岐処理実行時の説明図である。
【図７】この発明の関連技術説明２による計算機システムを示す構成図である。
【図８】図７の計算機システムのプログラム書換え部の動作を示すフローチャートである。
【図９】図７の計算機システムのプログラム実行部の動作を示すフローチャートである。
【図１０】図７の計算機システムのオペランド作成の図である。
【図１１】この発明の関連技術説明２による分岐処理実行時の説明図である。
【図１２】この発明の関連技術説明３による計算機システムを示す構成図である。
【図１３】図１２の計算機システムの受信部の動作を示すフローチャートである。
【図１４】図１２の計算機システムの送信部の動作を示すフローチャートである。
【図１５】図１２の計算機システムのキャンセルコマンド構造例である。
【図１６】この発明の関連技術説明４による計算機システムを示す構成図である。
【図１７】図１６の計算機システムの動作を示すフローチャートである。
【図１８】この発明の実施の形態１による計算機システムを示す構成図である。
【図１９】図１８の計算機システムのプログラム書き換え処理部の動作を示すフローチャートである。
【図２０】この発明の関連技術説明５による計算機システムを示すブロック図である。
【図２１】この発明の関連技術説明５による割込対応情報である。
【図２２】関連技術説明５のＩＯインタフェースの割込通知処理の流れを示すフローチャートである。
【図２３】この発明の関連技術説明５によるプロセッサの割込受信処理の流れを示すフローチャートである。
【図２４】この発明の関連技術説明６による計算機システムを示すブロック図である。
【図２５】この発明の関連技術説明６による割込対応情報の図である。
【図２６】この発明の関連技術説明６によるＩＯインタフェースの割込通知処理の流れを示すフローチャートである。
【０１６６】
【図２７】この発明の関連技術説明７による計算機システムを示すブロック図である。
【図２８】この発明の関連技術説明７によるエラー対応情報の図である。
【図２９】この発明の関連技術説明７によるＩＯインタフェースの割込通知処理の流れを示すフローチャートである。
【図３０】この発明の関連技術説明７によるプロセッサの割込受信処理の流れを示すフローチャートである。
【図３１】この発明の関連技術説明８による計算機システムを示すブロック図である。
【図３２】この発明の関連技術説明８による処理を示すフローチャートである。
【図３３】この関連技術説明８によるプロセッサ変更カードテーブルの構成図である。
【図３４】この発明の関連技術説明９による計算機システムの構成図である。
【図３５】この発明の関連技術説明９によるバックアップデータエリアの構成図である。
【図３６】この発明の関連技術説明９による故障処理設定テーブルの管理手段を示すフローチャートである。
【図３７】従来の計算機システムのブロック図である。
【図３８】従来の計算機システムの書換処理部の動作を示すフローチャートである。
【図３９】従来の計算機システムの命令実行部の動作を示すフローチャートである。
【図４０】従来の計算機システムのページ管理テーブルの構成図である。
【図４１】従来の計算機システムのオペランド構成図である。
【図４２】従来の計算機システムの分岐処理の説明図である。
【図４３】従来の計算機システムのプログラム実行部のトレース機能のブロック図である。
【図４４】図４３のトレース履歴レジスタのデータの構成図である。
【図４５】従来の計算機システムのプログラム実行部のトレース機能のフローチャートである。
【図４６】従来の計算機システムのプログラム書き換え処理部の動作を示すフローチャートである。
【図４７】従来の計算機システムのＩＯ割込通知機能のブロック図である。
【図４８】図４７のＩＯインタフェースの割込通知処理の流れを示すフローチャートである。
【図４９】図４７のプロセッサの割込受信処理の流れを示すフローチャートである。
【図５０】従来の計算機システムの構成図である。
【図５１】従来の故障処理設定テーブルの構成図である。
【図５２】従来の構成テーブル部の構成図である。
【図５３】従来の故障処理設定テーブルの管理手段を示すフローチャートである。
【符号の説明】
【０１６７】
１  保守ツール、１ａ  ハードディスク、２  システムバス、
４  プラント、  ３  ＩＯインタフェース、４  プラントシステム、
５  メモリ、  ５ａ  制御プログラム、５ｂ  ページ管理テーブル、
５ｃ  分岐ブロック、６  要求処理部、６ａ  受信部、６ｂ  送信部、
６ｃ  プログラム書換え部、６ｄ  メンテナンス処理部、
６ｅ  時間監視部、  ６ｆ  キャンセル処理部、
６ｇ  プログラム強制停止部、  ７  プログラム実行部、
８  ＩＯ割込受信、
１０、１０−１〜１０−Ｎ  プロセッサ、２０  構成テーブル部、
２１  故障処理設定テーブル部、２２  各カードの故障情報、
２３  故障処理出力部、２４  故障処理故障監視部、
２５  バックアップデータ情報エリア、
４００  トレースメモリ、４０１  トレースデータ収集部、
４０１ａ  トレース履歴レジスタ、４０２  制御プログラムアドレス、
４０３  アドレス一致検出部、４０３ａ  アドレス一致開始レジスタ、
４０３ｂ  アドレス一致終了レジスタ、４０４  トレース信号、
４０５  アドレス書き換え部、
６００  ＩＯ割込・エラー受信、６０１  割込通知部、６０２  割込番号、
６０３  エラー番号、６０４ プラントデータ、６０５  割込検出部、
６０６  割込対応情報、６０７  エラー対応情報、
６０８  複数割込対応情報、６５０  プロセッサカード故障検出部、
６５１  割込／エラー対応情報更新部、
６５２  プロセッサ変更カードテーブル、６５３  故障検出部。
【図１】
2004310798.tif 000003
【図２】
2004310798.tif 000004
【図３】
2004310798.tif 000005
【図４】
2004310798.tif 000006
【図５】
2004310798.tif 000007
【図６】
2004310798.tif 000008
【図７】
2004310798.tif 000009
【図８】
2004310798.tif 000010
【図９】
2004310798.tif 000011
【図１０】
2004310798.tif 000012
【図１１】
2004310798.tif 000013
【図１２】
2004310798.tif 000014
【図１３】
2004310798.tif 000015
【図１４】
2004310798.tif 000016
【図１５】
2004310798.tif 000017
【図１６】
2004310798.tif 000018
【図１７】
2004310798.tif 000019
【図１８】
2004310798.tif 000020
【図１９】
2004310798.tif 000021
【図２０】
2004310798.tif 000022
【図２１】
2004310798.tif 000023
【図２２】
2004310798.tif 000024
【図２３】
2004310798.tif 000025
【図２４】
2004310798.tif 000026
【図２５】
2004310798.tif 000027
【図２６】
2004310798.tif 000028
【図２７】
2004310798.tif 000029
【図２８】
2004310798.tif 000030
【図２９】
2004310798.tif 000031
【図３０】
2004310798.tif 000032
【図３１】
2004310798.tif 000033
【図３２】
2004310798.tif 000034
【図３３】
2004310798.tif 000035
【図３４】
2004310798.tif 000036
【図３５】
2004310798.tif 000037
【図３６】
2004310798.tif 000038
【図３７】
2004310798.tif 000039
【図３８】
2004310798.tif 000040
【図３９】
2004310798.tif 000041
【図４０】
2004310798.tif 000042
【図４１】
2004310798.tif 000043
【図４２】
2004310798.tif 000044
【図４３】
2004310798.tif 000045
【図４４】
2004310798.tif 000046
【図４５】
2004310798.tif 000047
【図４６】
2004310798.tif 000048
【図４７】
2004310798.tif 000049
【図４８】
2004310798.tif 000050
【図４９】
2004310798.tif 000051
【図５０】
2004310798.tif 000052
【図５１】
2004310798.tif 000053
【図５２】
2004310798.tif 000054
【図５３】
2004310798.tif 000055