(57)【要約】【課題】本発明は信号処理装置における異常状態処理方式に関し，プロセッサと揮発性メモリ及び不揮発性メモリを備えた信号処理装置の障害発生時に高速な障害処理を可能とすることを目的とする。【解決手段】プロセッサ及びプログラム及び障害処理ルーチンを保持する不揮発性メモリと前記不揮発性メモリからプログラム及び障害処理ルーチンをコピーする揮発性メモリとがシステムバスに接続され，揮発性メモリのプログラムにより処理を行う信号処理装置において，システムバスにバス監視回路と，障害発生時に障害処理ルーチンのジャンプするための割込みベクタを２面設け，バス監視回路によりプログラム破壊を検出すると，不揮発性メモリの障害処理ルーチンの処理を実行することでシステム再開を行い，プログラム破壊以外の障害が検出されると揮発性メモリの障害処理ルーチンの処理を実行するよう構成する。【選択図】図１
2009015757.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及びプログラム及び障害処理ルーチンを保持する不揮発性メモリと前記不揮発性メモリからプログラム及び障害処理ルーチンをコピーする揮発性メモリとをシステムバスに接続され，通常は揮発性メモリのプログラムにより処理を行う信号処理装置における異常状態処理方式において，
前記システムバスにバス監視回路と，障害発生時に障害処理ルーチンのジャンプするための割込みベクタを２面設け，
前記バス監視回路によりプログラム破壊を検出すると，破壊されていない不揮発性メモリの障害処理ルーチンの処理を実行することでシステム再開を行い，プログラム破壊以外の障害が検出されると揮発性メモリの障害処理ルーチンの処理を実行することを特徴とする信号処理装置における異常状態処理方式。
【請求項２】
請求項１において，
前記バス監視回路に揮発性メモリのプログラム破壊を検出する手段を設け，
前記プログラム破壊を検出する手段によるプログラム破壊を検出すると，前記割込みベクタの中から前記不揮発性メモリの障害処理ルーチンを選択して，前記プロセッサに割込み信号を発生し，前記不揮発性メモリの障害処理ルーチンによりシステム再開を行うことを特徴とする信号処理装置における異常状態処理方式。
【請求項３】
請求項１において，
前記バス監視回路に揮発性メモリ以外のデータのパリティエラーを検出する手段を設け，
前記パリティエラーを検出する手段によりエラーを検出すると，前記割込みベクタの中から前記揮発性メモリの障害処理ルーチンを選択して，前記プロセッサに割込み信号を発生すると，前記揮発性メモリによる障害処理を行うことを特徴とする信号処理装置における異常状態処理方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は移動通信の無線基地局のようにリアルタイムの信号処理を行う信号処理装置における異常状態処理方式に関する。
【背景技術】
【０００２】
移動通信の無線基地局のようにリアルタイムの信号処理を行うプロセッサを搭載した信号処理装置において，プロセッサ障害処理に対して割り込みを契機に，システムの停止または復旧を行う機能を備え，異常ログの収集と格納処理を行う機能も備えている。
【０００３】
従来のシステムでは，プロセッサが異常を検出してその要因による障害処理ルーチンの処理を行う場合の従来の制御方法を以下に説明する。
【０００４】
図５は従来例１の構成を示し，図６は従来例１の制御方法を示す。図５において，５０はプロセッサ，５１は一定周期でプロセッサに対して割り込みをかけて応答をチェックしてプロセッサの正常性をチェックするＷＤＴ（ウオッチ・ドッグ・タイマ：Watch Dog Timer)監視部，５２は高速動作を行う揮発性メモリ，５２０はプログラム動作領域，５２１は障害処理ルーチン，５２２は割込みベクタ，５３は低速動作の不揮発性メモリ，５３０はプログラム格納部，５４はシステムバスである。
【０００５】
図５の従来例１の構成における制御方法を図６に示す。最初に，プロセッサ起動処理として，不揮発性メモリ５３のプログラム格納部５３０から揮発性メモリ５２にプログラムをコピーする（図６のＳ１）。これにより，揮発性メモリ５２０のプログラム領域５２０と障害処理ルーチン５２１が設定される。この後，プロセッサ５０は揮発性メモリ５２のプログラムに従って通常処理実行中の状態になる（図６のＳ２）。その後，プログラム破壊（不揮発性メモリ５２のプログラム領域に上書きが行われる等）が発生してＷＤＴ監視部５１でＷＤＴタイムアウトにより障害割込みが発生すると（図６のＳ３），その割込みに対応する障害処理ルーチン用割込みベクタ５２２がリードされる（同Ｓ４）。その割込みベクタにより揮発性メモリ５２上の障害処理ルーチン用へジャンプし（図６のＳ５），揮発性メモリ５２上の障害処理ルーチン５２１を実行し（同Ｓ６），揮発性メモリ５２上のプログラムによりプロセッサ再起動処理を行う（同Ｓ７）。
【０００６】
この従来例１の制御方法によれば，割込み発生による障害処理ルーチンが揮発性メモリ上に展開されているため，プログラム領域が破壊された場合には，正常動作が保証できないという問題がある。
【０００７】
この問題を解決する方法として従来例２の方法があり，図７に従来例２の構成，図８に従来例２の制御方法を示す。図７において，５０〜５４は上記図５の同一符号の各部と同じであり説明を省略する。但し，図７の揮発性メモリ５２内にはプログラム領域５２０だけ設けられ，不揮発性メモリ５３内にプログラム格納部５３０，障害処理ルーチン５３１，割込みベクタ５３２を備える点で図５と相違する。
【０００８】
この従来例２の制御方法を説明すると，最初にプロセッサ起動処理において，不揮発性メモリ５３から揮発性メモリ５２にプログラムをコピーし（図８のＳ１），プロセッサ５０により通常処理実行中の状態になって（同Ｓ２），プログラム破壊によりＷＤＴ監視タイムアウトにより障害割込みが発生すると（同Ｓ３），上記従来例１と異なり不揮発性メモリ５３上で障害処理ルーチン用割込みベクタ５３２をリードをする（同４）。そのため，不揮発性メモリ５３の障害処理ルーチン用へジャンプし（図８のＳ５），その障害処理ルーチンを実行し（同Ｓ６），不揮発性メモリ上でプロセッサ再起動処理を実行する（同Ｓ７）。
【０００９】
この従来例２の制御方法では，障害処理ルーチンが不揮発性メモリ上に展開されているため，プログラム破壊の影響を回避することができるが，不揮発性メモリ（低速メモリ）上での動作となるため障害処理ルーチンの実行時間が長くなり再起動を行うまでのサービス中断時間が長くなる。
【００１０】
一般的に揮発性メモリ（ＳＤＲＡＭ系）のレイテンシ（latency)は５．４ｎｓや６．０ｎｓ程度であり高速であるが，それと比較して不揮発性メモリは６０ｎｓや９０ｎｓが一般的であり，アドレスコントロール等のオーバヘッドを考慮すると，揮発性メモリＳＤＲＡＭは１０倍以上高速となる。
【００１１】
なお，マルチプロセッサシステムの障害情報を記録する技術として，各プロセッサパッケージにプロセッサと不揮発性メモリを備え，不揮発性メモリの中に制御ルーチンを格納し，プロセッサが障害を検出すると当該プロセッサパッケージの不揮発性メモリ内の制御ルーチンにより，障害データを収集し，その不揮発性メモリの中に障害データとして格納し，複数の各プロセッサの障害データはシステム立上げ時に収集されて，メインメモリに格納する技術が存在する（特許文献１参照）。
【００１２】
また，監視プロセッサを含む複数のプロセッサのそれぞれに不揮発性メモリと揮発性メモリとを有し，外部記憶装置の保守対象プログラムを各プロセッサの揮発性メモリにロードして実行するシステムの技術において，保守対象プログラムの実行中にトラブルが発生すると監視プロセッサに通知され，監視プロセッサはトラブルを発生したプロセッサを割り込み禁止にし，不揮発性メモリ上に予め格納されたパッチルーチンを揮発性メモリに展開して処理を開始し，パッチルーチンにより今回のトラブルに関係する保守情報を外部記憶装置をサーチして求め，修正情報を外部記憶装置の保守対象プログラムに投入し，ロギング情報として記録し，プロセッサ上へ保守対象プログラムが展開される際には同一現象となるトラブルのソフトウェアの修正パッチが投入済とする技術が存在する（特許文献２参照）。
【特許文献１】特開平９−２８８６０３号公報
【特許文献２】特開平４−７７９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記した従来例２によれば，揮発性メモリのプログラム破壊が発生しても，不揮発性メモリの障害処理ルーチンによりログ格納処理や，復旧処理を実行することができるが，揮発性メモリの場合に比べて１０倍以上の時間がかかり，処理速度の面で性能的に劣り，再開に向けたシステム瞬断時間（サービス断）が長くなりリアルタイムの信号処理を行うシステムに対する影響が大きいという問題がある。また，上記特許文献１の技術は，マルチプロセッサシステムにおける障害処理を行う場合に，従来例２と同様に不揮発性メモリの制御ルーチンにより処理を行うものであり，高速処理が要求されないシステムに適用するものであり，高速処理を要するリアルタイムの信号処理装置には問題がある。また，特許文献２の技術は障害発生時に不揮発性メモリのパッチルーチンにより障害に関係する情報を外部記憶装置の保守情報をサーチして求め，外部記憶装置に修正パッチを投入する技術であり，障害発生時に高速な障害処理を行うものではない。
【００１４】
本発明はプロセッサと揮発性メモリ及び不揮発性メモリを備えた信号処理装置の障害発生時に高速な障害処理を可能とする信号処理装置における異常状態処理方式を提供することを目的とする。
【課題を解決するための手段】
【００１５】
図１は本発明の原理構成を示す。図中，１はプロセッサ，２はバス監視回路，２ａは揮発性メモリ３のプログラム領域破壊及び揮発性メモリ上のパリティエラーを検出するプログラム破壊監視手段，２ｂは揮発性メモリ３以外のパリティエラー及びプログラム動作中のパラメータ違反等を監視するパリティエラー監視手段，２ｃは割込みベクタ切替手段，３は揮発性メモリ，３ａはプログラム領域，３ｂは障害処理ルーチン，４はプログラムを保持する不揮発性メモリ，４ａはプログラム格納部，４ｂは障害処理ルーチン，５は割込ベクタ用不揮発性メモリ，５ａは第１の割込ベクタ，５ｂは第２の割込ベクタ，６はシステムバスである。
【００１６】
図１において，最初に不揮発性メモリ４のプログラム格納部４ａと第１の障害処理ルーチン４ｂの内容が揮発性メモリ３にコピーされ，プログラム領域３ａ，第２の障害処理ルーチン３ｂとして格納される。また，割込ベクタ用不揮発性メモリ５には第１の割込ベクタ５ａが揮発性メモリ３の障害処理ルーチン３ｂを指定する内容に設定され，第２の割込ベクタ５ｂは不揮発性メモリ４の障害処理ルーチン４ｂを指定する内容に設定される。また，プログラム破壊監視手段２ａとパリティエラー監視手段２ｂに監視対象の範囲が設定される。
【００１７】
この後，プロセッサ１が揮発性メモリ３のプログラム領域３ａのプログラムにより通常処理を実行すると，バス監視回路２はシステムバス６を監視し，プログラム破壊監視手段２ａは揮発性メモリ３上のプログラム領域３ａと障害処理ルーチン３ｂの領域への書込み（破壊）や，揮発性メモリ３上のパリティエラーが発生したかの監視を行い，プログラム破壊等を検出すると，揮発性メモリ３に異常が発生したことになり，不揮発性メモリ４を用いた障害処理を選択し，これに応じて割込みベクタ切替手段２ｃは第２の割込みベクタ５ｂへの切替を含む割込み信号（障害処理起動タイミング）をプロセッサ１に出力する。これにより，プロセッサ１は割込みベクタ用不揮発性メモリ５の第２の割込ベクタ５ｂを読み出し，そのベクタが指定する不揮発性メモリ４の障害処理ルーチン４ｂの処理に移行して，障害処理を実行する。この場合，再開処理において揮発性メモリ３に不揮発性メモリ４からのプログラムのコピーを含む処理を実行する必要がある。
【００１８】
また，バス監視回路２のパリティエラー監視手段２ｂにより揮発性メモリ以外のパリティエラーを検出したり，プログラム動作中のパラメータ違反等を検出すると，揮発性メモリ３に異常が発生していないものとして，揮発性メモリ３を用いた障害処理を選択し，これに応じて割込みベクタ切替手段２ｃは第１の割込みベクタ５ａの切替を含む割込み信号（障害処理起動タイミング）をプロセッサ１に出力する。これにより，プロセッサ１は割込みベクタ用不揮発性メモリ５の第１の割込ベクタ５ａを読み出し，そのベクタが指定する揮発性メモリ３の障害処理ルーチン３ｂの処理に移行して，障害処理を実行する。
【発明の効果】
【００１９】
本発明によれば，プロセッサ内蔵・外付けの揮発性メモリで高速動作を行いながら，高速の揮発性メモリのプログラム破壊や例外処理が発生した場合においても，ログ収集処理及び障害通知処理を確実に行うことが可能になる。また，揮発性メモリが正常で救済可能な例外処理発生時には再開処理フローに移行せずに済み，障害復旧時間の最短化，システム瞬断時間の最小化を実現することができる。
【発明を実施するための最良の形態】
【００２０】
図２は実施例の処理フローであり，上記図１のプロセッサ１においてバス監視回路２や，各メモリと連携して処理が行われる。なお，揮発性メモリ３は例えばＳＤＲＡＭメモリで構成され，不揮発性メモリ４は例えばＦＬＡＳＨメモリにより構成される。
【００２１】
プロセッサ起動処理において，不揮発性メモリ４（プログラム格納部４ａ，障害処理ルーチン４ｂ）から揮発性メモリ３にコピーが行われ（図２のＳ１），プログラムを起動し（同Ｓ２），揮発性メモリ３のプログラムによる通常処理が実行される（同Ｓ３）。この通常処理の実行中，バス監視回路２は監視動作を実行する。以下，ステップＳ４〜Ｓ８はバス監視回路２において実行される。すなわち，通常処理実行中，障害が発生したかを判定（バス監視回路２からの検出出力の有無を検出）して（図２のＳ４），障害が発生した場合は，プログラム破壊であるかの判定をする（同Ｓ５）。この時，その障害がプログラム破壊を起こすか否かの判定を行う（図２のＳ６）。この判定は，揮発性メモリ３内のプログラム領域への書込み（上書き）または揮発性メモリ３上のパリティエラーの検出による揮発性メモリ異常が発生したか，揮発性メモリ２以外のパリティエラーの検出あるいはプログラム動作中のパラメータ違反の検出をしたかの判定をする。揮発性メモリ上のプログラム破壊を含む障害が検出された場合，揮発性メモリが異常なため，不揮発性メモリに処理を選択させるため，第２の割込みベクタ５ｂを選択し（図２のＳ６），揮発性メモリ以外のパリティエラーの検出等の障害である場合は揮発性メモリが正常なため，揮発性メモリに処理を選択させるため，第１の割込みベクタ５ａを選択し（同Ｓ７），ステップＳ６，Ｓ７に続いてバス監視回路２から割込み信号（割込みベクタを含む）と障害処理起動タイミングが発行されプロセッサ１に供給する（同Ｓ８）。
【００２２】
プロセッサ１はこれを受け取ると，障害処理ルーチン用割込みベクタをリードする（図２のＳ８）。すなわち，第１の割込みベクタ５ａまたは第２の割込みベクタ５ｂの何れかの面選択が行われる。これにより，プロセッサ１の処理は揮発性メモリまたは不揮発性メモリの障害処理ルーチンへジャンプし（図２のＳ１０），障害処理ルーチンを実行し（同Ｓ１１），上記のバス監視回路１からの障害検出時の状況として，プログラム破壊があったかを判別し（同Ｓ１２），プログラム破壊がない場合はプロセッサ再起動処理（揮発性メモリ３へのプログラムの展開（コピー）を省略）が行われて，ステップＳ２に戻り，プログラム破壊があった場合は，プロセッサ再起動処理（揮発性メモリ３へのプログラムの再コピー）を実行してステップＳ１に戻る。
【００２３】
図３はバス監視回路におけるプログラム破壊監視の処理フローであり，上記図１のプログラム破壊監視手段２ａにおける処理機能に対応する。
【００２４】
最初にバス監視回路初期設定を行う（図３のＳ１）。この時，プログラム領域として(1) 監視開始（START)アドレスと監視終了（END)アドレスが設定され，その領域は揮発性メモリ（図１の３）上のプログラム動作領域及び障害処理ルーチン領域である。
【００２５】
その後，監視が開始され（同Ｓ２），監視領域に対して書込み（WRITE)動作監視を随時実行し（同Ｓ３），書込み動作か判別する（同Ｓ４）。書込み動作を検出した場合，監視領域に対する書込み（プログラム破壊）であることを検出すると（図３のＳ５），割込みベクタ切替制御にてベクタを設定をする（同Ｓ６）。この場合，不揮発性メモリ（図１の４）側の第２の割込ベクタ（図１の５ｂ）を選択する。次にバス監視回路からプロセッサへ割込みを発行して通知を行う（図３のＳ７）。すなわち，障害処理を起動するため割込信号を起動する。これにより，バス監視回路の監視を停止する（図３のＳ８）。
【００２６】
なお，図３の上記ステップＳ４では，揮発性メモリのプログラム領域と障害処理ルーチン領域への書込みを監視しているが，揮発性メモリ上のパリティエラーを検出した場合にも同様ステップＳ６以下の処理が実行される。
【００２７】
図４はバス監視回路におけるパリティエラー監視の処理フローであり，上記図１のパリティエラー監視手段２ｂにおける処理機能に対応する。
【００２８】
最初にパリティエラー監視初期設定を行う（図４のＳ１）。この時，揮発性メモリ以外の不揮発性メモリ（図１の４のプログラム格納部４ａと障害処理ルーチン４ｂ）のパリティエラー（プログラム動作中の例外処理及び不揮発性メモリのデバイス故障）を監視するための，監視開始（START)アドレスと監視終了(END) アドレス（不揮発性メモリのアドレス）が設定される。続いて，監視が開始され（図４のＳ２），監視領域に対して読出し（READ) 動作監視を随時実行し（同Ｓ３），エラー検出か判別する（同Ｓ４）。エラーを検出して，監視領域に対するエラーであることを検出すると（図４のＳ５），割込みベクタ切替制御にてベクタを設定をする（同Ｓ６）。この場合，揮発性メモリ（図１の３）側の第２の割込ベクタ（図１の５ａ）を選択する。次にプロセッサへ割込みを発行して通知を行う（図４のＳ７）。具体的には，障害処理を起動するため割込信号を起動する。この後，バス監視回路は監視停止をする（図３のＳ８）。
【００２９】
このように，障害処理ルーチンの一部の処理（重要ログ収集処理や復旧検出）のみを不揮発性メモリにも格納し，通常の「プログラム破壊検出」を同時に行うことで，プログラム破壊の発生しない場合の障害処理の高速化（揮発性メモリ処理）を可能にしてプログラム破壊を検出した場合は確実に障害処理（低速処理：不揮発性メモリ）を実行することでシステムの保守性能を保つことが可能になる。
【００３０】
上記の図３に示す処理フローでは揮発性メモリのプログラム破壊と揮発性メモリのパリティエラーを監視し，図４に示す処理フローでは揮発性メモリ以外のパリティエラーとプログラム動作中の例外処理を監視しているが，揮発性メモリについてのその他の障害を検出した場合にも図３に示す処理フローにより同様の制御（第２の割込みベクタを選択）を行い，揮発性メモリ以外の領域についての上記図４に示すエラー以外の障害を検出した場合にも，図４に示す処理フローにより同様の制御（第１の割込みベクタを選択）を行うようにすることができることはいうまでもない。
【００３１】
（付記１）  プロセッサ及びプログラム及び障害処理ルーチンを保持する不揮発性メモリと前記不揮発性メモリからプログラム及び障害処理ルーチンをコピーする揮発性メモリとをシステムバスに接続され，通常は揮発性メモリのプログラムにより処理を行う信号処理装置における異常状態処理方式において，前記システムバスにバス監視回路と，障害発生時に障害処理ルーチンのジャンプするための割込みベクタを２面設け，前記バス監視回路によりプログラム破壊を検出すると，破壊されていない不揮発性メモリの障害処理ルーチンの処理を実行することでシステム再開を行い，プログラム破壊以外の障害が検出されると揮発性メモリの障害処理ルーチンの処理を実行することを特徴とする信号処理装置における異常状態処理方式。
【００３２】
（付記２）  付記１において，前記バス監視回路に揮発性メモリのプログラム破壊を検出する手段を設け，前記プログラム破壊を検出する手段によるプログラム破壊を検出すると，前記割込みベクタの中から前記不揮発性メモリの障害処理ルーチンを選択して，前記プロセッサに割込み信号を発生し，前記不揮発性メモリの障害処理ルーチンによりシステム再開を行うことを特徴とする信号処理装置における異常状態処理方式。
【００３３】
（付記３）  付記１において，前記バス監視回路に揮発性メモリ以外のデータのパリティエラーを検出する手段を設け，前記パリティエラーを検出する手段によりエラーを検出すると，前記割込みベクタの中から前記揮発性メモリの障害処理ルーチンを選択して，前記プロセッサに割込み信号を発生すると，前記揮発性メモリによる障害処理を行うことを特徴とする信号処理装置における異常状態処理方式。
【００３４】
（付記４）  付記１乃至３の何れかにおいて，前記バス監視回路による障害の検出時に，ログ収集処理と障害通知処理を確実に実行することを特徴とする信号処理装置における異常状態処理方式。
【００３５】
（付記５）  付記１乃至４の何れかにおいて，前記信号処理装置は移動通信システムの無線基地局における信号の処理を行うことを特徴とする信号処理装置における異常状態処理方式。
【図面の簡単な説明】
【００３６】
【図１】本発明の原理構成を示す図である。
【図２】実施例の処理フローを示す図である。
【図３】バス監視回路におけるプログラム破壊監視の処理フローを示す図である。
【図４】バス監視回路におけるパリティエラー監視の処理フローを示す図である。
【図５】従来例１の構成を示す図である。
【図６】従来例１の制御方法を示す図である。
【図７】従来例２の構成を示す図である。
【図８】従来例２の制御方法を示す図である。
【符号の説明】
【００３７】
１        プロセッサ
２        バス監視回路
２ａ      プログラム破壊監視手段
２ｂ      パリティエラー監視手段
２ｃ      割込みベクタ切替手段
３        揮発性メモリ
３ａ      プログラム領域
３ｂ      障害処理ルーチン
４        不揮発性メモリ
４ａ      プログラム格納部
４ｂ      障害処理ルーチン
５        割込ベクタ用不揮発性メモリ
５ａ      第１の割込ベクタ
５ｂ      第２の割込ベクタ
６        システムバス
【図１】
2009015757.tif 000003
【図２】
2009015757.tif 000004
【図３】
2009015757.tif 000005
【図４】
2009015757.tif 000006
【図５】
2009015757.tif 000007
【図６】
2009015757.tif 000008
【図７】
2009015757.tif 000009
【図８】
2009015757.tif 000010