(57)【特許請求の範囲】
【請求項１】
機器が備えるメモリ部の診断を行なうメモリ診断装置において、
少なくとも、起動時に上記メモリ部における診断領域を示す診断領域情報をインベントリデータ領域に格納する診断領域格納手段と、
当該機器の起動時に、上記診断領域格納手段のインベントリデータ領域を参照して、上記メモリ部の診断領域を決定する診断領域決定手段と、
上記診断領域決定手段により決定された上記メモリ部の診断領域を診断する診断実行手段と
を備え、
上記診断領域情報が、当該機器の複数の起動要因と、上記複数の起動要因に応じた診断領域とを対応付けたものであり、
当該機器の起動時に、今回の起動要因を判定する起動要因判定手段を更に備え、
上記診断領域決定手段が、上記診断領域情報を参照して、上記起動要因判定手段により判定された起動要因に対応する診断領域を決定する
ことを特徴とするメモリ診断装置。
【請求項２】
上記診断領域実行手段が、上記機器において、プログラムの起動実行後に異常が発生した場合、その発生した異常要因に応じて上記起動要因を変更し、変更後の上記起動要因が当該機器の故障である場合には、当該機器の電源をＯＦＦとし、変更後の上記起動要因が当該機器の故障以外の場合には、当該機器を再起動させて上記メモリ部の診断を行なうものであることを特徴とする請求項１に記載のメモリ診断装置。
【請求項３】
上記複数の起動要因に応じて診断領域が対応付けられた上記診断領域情報は、前記診断領域の内容を任意に設定可能であることを特徴とする請求項１又は請求項２に記載のメモリ診断装置。
【請求項４】
少なくとも、起動時にメモリ部における診断領域を示す診断領域情報をインベントリデータ領域に格納する診断領域格納手段を備える機器のメモリ診断プログラムにおいて、
コンピュータを、
当該機器の起動時に、上記診断領域格納手段のインベントリデータ領域を参照して、上記メモリ部の診断領域を決定する診断領域決定手段、
上記診断領域決定手段により決定された上記メモリ部の診断領域を診断する診断実行手段、
当該機器の起動時に、今回の起動要因を判定する起動要因判定手段
として機能させ、
上記診断領域情報は、当該機器の複数の起動要因と、上記複数の起動要因に応じた診断領域とを対応付けたものであり、
上記診断領域決定手段に、上記診断領域情報を参照して、上記起動要因判定手段により判定させた起動要因に対応する診断領域を決定させる
ことを特徴とするメモリ診断プログラム。
【請求項５】
請求項１〜３のいずれかに記載のメモリ診断装置を備える機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ診断装置、メモリ診断プログラム及び機器に関し、例えば、装置の立ち上げ時に、装置が搭載するＲＡＭ等のメモリを診断するメモリ診断装置、メモリ診断プログラム及び機器に適用し得るものである。
【背景技術】
【０００２】
例えば、局側装置等のようなビジネス向けの通信装置において、故障・障害・停電等の異常が発生した場合、復旧作業が行われるが、近年、事業継続計画（ＢＣＰ：Business  Continuity  Plan）の観点から、復旧時間を短くすることが強く望まれている。
【０００３】
その一方で、通信装置に搭載されているＲＡＭ等のメモリ容量が増大しており、装置立ち上げ時に実施されるメモリの診断時間も長くなってしまうため、復旧時間の短縮が困難であった。
【０００４】
従来、上記のようにメモリ診断に時間がかかってしまい復旧時間が長期化することを防止するために、稼働中に異常が発生した場合、異常メモリ領域に限定してメモリ診断を行うという技術が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２００７−１９６０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術は、異常メモリの発生箇所によっては、期待される時間だけの短縮が困難な場合もある。例えば、異常発生した箇所によっては、装置立ち上げ時の時間にバラツキが生じ得る。また、メモリ診断箇所は異常発生したと疑われるメモリ最大領域の箇所に依存してしまうので、装置立ち上げ時間の保証時間の高速化が困難である。
【０００７】
また、通信装置の出荷前においては、メモリの初期不良を検出するために、メモリの全領域でメモリ診断が行なわれているが、通信装置の出荷後においては、メモリ自体の信頼性を保証することがなされていない場合がある。例えば、通信装置の立ち上げ毎にメモリ診断が行なわれると、メモリ自体の信頼性を保証することができる。しかし、単純な装置ＯＮによる起動や、メモリ再起動、故障発生による再起動など様々な通信装置の起動要因があり、これら起動要因に応じて装置立ち上げ時間の高速化が課題となる。
【０００８】
そのため、起動プログラム稼動時（ブート起動時）に起動要因に基づいてメモリ診断の対象領域を決定することで、最小限のメモリ領域を診断することができるので、立ち上げ時間を短縮することができるメモリ診断装置、メモリ診断プログラム及び機器が求められている。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために、第１の本発明のメモリ診断装置は、機器が備えるメモリ部の診断を行なうメモリ診断装置において、（１）少なくとも、起動時にメモリ部における診断領域を示す診断領域情報をインベントリデータ領域に格納する診断領域格納手段と、（２）当該機器の起動時に、診断領域格納手段のインベントリデータ領域を参照して、メモリ部の診断領域を決定する診断領域決定手段と、（３）診断領域決定手段により決定されたメモリ部の診断領域を診断する診断実行手段とを備え、診断領域情報が、当該機器の複数の起動要因と、上記複数の起動要因に応じた診断領域とを対応付けたものであり、当該機器の起動時に、今回の起動要因を判定する起動要因判定手段を更に備え、診断領域決定手段が、診断領域情報を参照して、起動要因判定手段により判定された起動要因に対応する診断領域を決定することを特徴とするものである。
【００１０】
第２の本発明のメモリ診断プログラムは、少なくとも、起動時にメモリ部における診断領域を示す診断領域情報をインベントリデータ領域に格納する診断領域格納手段を備える機器のメモリ診断プログラムにおいて、コンピュータを、（１）当該機器の起動時に、診断領域格納手段のインベントリデータ領域を参照して、メモリ部の診断領域を決定する診断領域決定手段、（２）診断領域決定手段により決定されたメモリ部の診断領域を診断する診断実行手段、当該機器の起動時に、今回の起動要因を判定する起動要因判定手段として機能させ、診断領域情報は、当該機器の複数の起動要因と、複数の起動要因に応じた診断領域とを対応付けたものであり、診断領域決定手段に、診断領域情報を参照して、起動要因判定手段により判定させた起動要因に対応する診断領域を決定させることを特徴とする。
【００１１】
第３の本発明は、第１の本発明に係るメモリ診断装置を備える機器である。
【発明の効果】
【００１２】
本発明によれば、機器の立ち上げを行う起動要因に基づいてメモリ診断の対象領域を決定することで、最小限のメモリ領域を診断することができるので、立ち上げ時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の通信装置の内部構成を示す内部構成図である。
【図２】実施形態の起動プログラムの主な処理機能を示す機能ブロック図である。
【図３】実施形態のメモリ診断領域を決定するインベントリデータの一例を説明する説明図である。
【図４】実施形態の起動要因を定義するインベントリデータの一例を説明する説明図である。
【図５】実施形態の起動要因値とインベントリ値との対応関係を設定した設定情報の例を説明する説明図である。
【図６】実施形態の装置起動後の通信装置における処理の動作を示すフローチャートである。
【図７】実施形態のプログラム起動後の通信装置の異常発生時のメモリ診断処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
（Ａ）実施形態
以下では、本発明のメモリ診断装置、メモリ診断プログラム及び機器の実施形態について、図面を参照しながら詳細に説明する。
【００１５】
この実施形態では、例えばＲＡＭ等のメモリを搭載し、メモリを使用する通信装置に、本発明を適用する場合を例示する。
【００１６】
（Ａ−１）実施形態の構成
図１は、実施形態の通信装置の内部構成を示す内部構成図である。図１において、実施形態の通信装置１０は、ＣＰＵ３、揮発性メモリ１、不揮発性メモリ２、ウォッチドッグタイマー部４、監視制御部５、電源監視部６、補助電源部７、予備揮発性メモリ８を少なくとも有する。
【００１７】
なお、後述する再起動要因値を不揮発性メモリ２に格納する場合、予備揮発性メモリ８は、必須の構成要件でなくてもよい。
【００１８】
また、図１では、電源監視部６及び補助電源部７が、通信装置１０の内部に搭載される場合を例示するが、通信装置１０の外部に設けられるものであってもよい。
【００１９】
ＣＰＵ３は、不揮発性メモリ２に格納されるプログラムを揮発性メモリ１に展開し、揮発性メモリ１をワーキングエリアとして必要なデータを用いて演算処理を行なう演算処理部である。
【００２０】
ＣＰＵ３は、起動時又は再起動時に、その起動要因を揮発性メモリ１に保持させるものである。
【００２１】
例えば、起動時には、外部からの電源がＣＰＵ３に供給されて、ＣＰＵ３が動作を開始する。このとき、ＣＰＵ３は装置通常起動である旨を揮発性メモリ１に保持させる。また例えば、ＣＰＵ３はウォッチドッグタイマー部４によりＣＰＵ３の内部動作が監視されており、異常が検出されたときにはリセット信号がＣＰＵ３に与えられて、ＣＰＵ３は再起動する。このとき、ＣＰＵ３はウォッチドッグタイマー部４による再起動である旨を不揮発メモリ２あるいは揮発性メモリ１（揮発メモリは再起動時にデータがクリアさせるため、別に揮発メモリ（バックアップメモリ）を用意して、バックアップメモリに保存後、バックアップメモリを給電しつづける必要がある）に保持させる。また、通信装置１０は監視制御部５により異常（例えば、装置故障、障害、停電等）の有無が監視されている。ＣＰＵ３は、監視制御部５から異常発生の旨が与えられると、ＣＰＵ３は異常発生に伴う再起動である旨を揮発性メモリ１に保持させる。
【００２２】
また、ＣＰＵ３は、予備揮発性メモリ８にも、揮発性メモリ１と同様に、汎用エリア８１に起動要因を保持させ、プログラムを保持させる。
【００２３】
揮発性メモリ１は、例えばＲＡＭ等が該当し、起動時又は再起動時にメモリ診断されるものである。揮発性メモリ１は、既存のＲＡＭ等と同様の構成であるが、起動時又は再起動時には、メモリ異常等による再起動時の起動要因が保持される汎用エリア１１、起動プログラム２１により不揮発性メモリ２から転送されるプログラム１２、プログラム１２の実行に必要なデータ１３、プログラム１２が動作する際に使用されるワークメモリ１４、未使用メモリ１５を有して構成される。
【００２４】
不揮発性メモリ２は、例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ不揮発性メモリ等が該当する。不揮発性メモリ２は、起動時に起動される起動プログラム２１、起動プログラム２１により接続インタフェース初期化処理や揮発性メモリ１のメモリ診断後に、揮発性メモリ１に転送されるプログラム２２、プログラム２２の実行に必要なデータ２３、インベントリデータ２４が記憶される。
【００２５】
起動プログラム２１は、起動時に起動処理をＣＰＵ３に実行させるためのものである。起動プログラム２１は、いわゆるブートプログラムに相当する。起動プログラム２１は、通信装置１０の起動毎に、揮発性メモリ１の全領域又は一部領域をメモリ診断するものである。
【００２６】
起動プログラム２１が実行されることにより、装置起動毎にメモリ診断がなされるので、揮発性メモリ１の信頼性を向上させることができる。また、メモリ診断領域は、後述するように、起動した通信装置１０の起動要因に応じて最小限の範囲となるように決定する。その結果、起動要因に応じて、メモリ診断時間を短縮できるので、装置立ち上げ時間が短縮できる。
【００２７】
起動プログラム２１の詳細は、図２を参照して説明する。図２は、起動プログラム２１の主な処理機能を示す機能ブロック図である。
【００２８】
起動プログラム２１は、図２に示すように、初期化処理部２１１、インベントリデータ取得部２１２、起動要因判定部２１３、診断領域決定部２１４、診断実行部２１５、診断結果取得部２１６を少なくとも有する。
【００２９】
初期化処理部２１１は、起動時に、基本的なデバイスの初期化処理を行なうものであり、例えばデバイス間の接続インタフェースのＩ／Ｏ（インプット／アウトプット）等の初期化処理を行なうものである。
【００３０】
インベントリデータ取得部２１２は、不揮発性メモリ２に記憶されるインベントリデータ２４を取得するものである。
【００３１】
起動要因判定部２１３は、起動時に、揮発性メモリ１１に保持される起動要因に基づいて、今回の起動要因を判定するものである。
【００３２】
診断領域決定部２１４は、起動要因判定部２１３により判定された起動要因に基づいて、揮発性メモリ１における診断領域、すなわちメモリチェック領域を決定するものである。つまり、診断領域決定部２１４は、起動時の起動要因に基づいて診断領域を決定することができる。
【００３３】
診断実行部２１５は、診断領域決定部２１４により決定された揮発性メモリ１における診断領域を診断するものである。
【００３４】
診断結果取得部２１６は、診断実行部２１５により診断された診断領域の診断結果を取得するものである。診断結果取得部２１６が取得した診断結果が正常である場合、プログラム２２及びデータ２３が揮発性メモリ１にロードされて起動処理後のプログラム処理が実行されるようにし、一方、診断結果が異常である場合、起動処理を停止する。
【００３５】
インベントリデータ２４は、通信装置１０の起動時の振る舞いを定義したものであり、特に、装置起動時に、揮発性メモリ１の診断領域を決めるためのものである。
【００３６】
インベントリデータ２４の詳細は、図３を参照して説明する。図３は、メモリ診断領域を決定するインベントリデータ２４の一例を説明する説明図である。
【００３７】
インベントリデータ２４は、図３に示すように、インベント値及び内容が対応付けて定義されており、例えば５個のインベントリ値「０」〜「４」のそれぞれには、装置起動時に行うメモリ診断の動作が定義されている。例えば、インベントリ値「０」には「揮発性メモリの全領域をチェックする」ことが定義されており、インベントリ値「１」には「全有効領域をチェックする（未使用領域はチェックしない）」こと等が定義されている。
【００３８】
インベントリデータ２４は、製品情報として不揮発性メモリ２に格納されるものである。インベントリデータ２４は、起動時に、起動プログラム２１と共に、揮発性メモリ１に読み出されものであり、インベントリデータ２４に格納されるインベントリ値に基づいてメモリ領域が決定される。
【００３９】
ここで、インベントリデータ２４は、通信装置１０の製品出荷前には、全領域をメモリ診断することが設定される。すなわち、図３のインベントリ値を用いて説明すると、製品出荷前のインベントリ値は「０」が設定されている。これにより、製品出荷前のメモリの初期不良を検出できる。
【００４０】
また、インベントリデータ２４は、設定変更可能なものであり、製品出荷後のインベントリ値を設定することができる。つまり、製品出荷前は、メモリ初期不良検出のために、メモリ全領域を診断対象となっているインベントリ値を、製品出荷後は、顧客によりインベントリ値を設定変更することができる。これにより、製品出荷後は、顧客側が希望する復旧時間の要求内容に応じて、メモリ診断の診断領域を変更することができる。例えば、製品出荷後に、「０」となっているインベントリ値を「２」に変更することができる。この場合、製品出荷後に起動した場合、有効領域の先頭及びテールのアドレスのみがチェックされるだけなので、メモリ診断時間が短縮される。
【００４１】
さらに、インベントリデータ２４は、起動要因に応じてインベントリ値が変更される。例えば、異常が生じて再起動した場合、揮発性メモリ１にインベントリデータ２４が読み出された後、起動要因に応じて、インベントリ値が「２」から他のインベントリ値に変更される。
【００４２】
ここで、起動要因に応じてどのインベントリ値に変更するかについては、起動要因とインベントリ値とを対応付けることで実現することができる。例えば、図４は、起動要因を定義するインベントリデータ２４の一例を説明する説明図である。図４において、起動要因を定義するインベントリデータ２４は、起動要因値及び内容が定義づけられている。例えば、起動要因値「０」は「装置通常起動」、「１」は「メモリ異常による再起動」等のように定義づけられている。そして、図４に例示する起動要因値と図３に例示するインベントリ値とを対応付けたテーブル等を設定することで起動要因に応じたインベント値の決定ができる。
【００４３】
ウォッチドッグタイマー部４は、ＣＰＵ３が発生する信号のパルス幅を監視して、パルス幅が閾値を超過すると、ＣＰＵ３に対してリセット信号を与えるものである。すなわち、ウォッチドッグタイマー部４は、ＣＰＵ３の異常検出をしたときには、リセット信号をＣＰＵ３に与えて、再起動をさせる。
【００４４】
監視制御部５は、通信装置１０の故障、障害を監視したり、又停電による電源供給の停止などを監視したりし、通信装置１０の故障、障害、停電等が生じると、ＣＰＵ３に対して再起動させるものである。
【００４５】
電源監視部６は、商用電源９からの電源供給を監視するものである。電源監視部６は、商用電源９から給電されているか否かをＣＰＵ３に通知するものである。
【００４６】
補助電源部７は、商用電源９からの給電がない場合に、補助的に電源を供給するものである。例えば、補助電源部７は、プログラム起動後、異常発生検出時に、商用電源９から給電がない場合に、各構成要素に電源を供給する。
【００４７】
予備揮発性メモリ８は、予備的に設けられた揮発性メモリであって、揮発性メモリ１と同様の構成を有するものである。プログラム起動後、異常発生検出時に、商用電源９からの給電が停止した場合に、補助電源部７からの給電を受けて利用可能とするものである。
【００４８】
（Ａ−２）実施形態の動作
次に、実施形態の通信装置１０における処理の動作について図面を参照しながら説明する。
【００４９】
通信装置１０は、製品出荷前に、メモリ初期不良の検出のため、全メモリ領域をメモリ診断するというインベントリ値が設定されている。製品出荷後、顧客は、復旧時間の要求内容に応じて、起動要因に応じたメモリ診断処理を設定する。
【００５０】
図５は、起動要因値とインベントリ値との対応関係を設定した設定情報の例を説明する説明図である。図５に例示する起動要因値及びインベントリ値は図４及び図３に例示するものに対応する。例えば、図５において、製品出荷後、通信装置１０の通常起動時（起動要因値「０」）のインベントリ値を「２」と設定する。また、メモリ異常による再起動時（起動要因値「１」）のインベントリ値「０」と設定するなどのように、顧客はそれぞれの起動要因に応じたインベントリ値を設定する。
【００５１】
図６は、装置起動後の通信装置１０における処理の動作を示すフローチャートである。
【００５２】
まず、通信装置１０において、起動プログラム２１が起動すると、図６に例示するフローチャートが行なわれる。なお、起動プログラム２１は、通常の装置起動だけでなく、異常発生による再起動する場合にも読み出されて実行される。
【００５３】
ブート起動後、接続ＩＯの初期化後（Ｓ１０１）、不揮発性メモリ２に格納されているインベントリデータ２４が揮発性メモリ１に読み出される（Ｓ１０２）。つまり、ブート起動前には、起動プログラム２１及びインベントリデータ２４が揮発性メモリ１にコピーされ、接続インタフェースの初期化後、インベントリデータ２４の読み出しがなされる。
【００５４】
次に、ブート起動要因が判定され、通常の装置起動によるものか、又は異常による再起動によるものか判定される（Ｓ１０３）。起動要因の判定は、起動時に揮発性メモリ１の汎用エリア１１に起動要因が保持される。従って、揮発性メモリ１の汎用エリア１１を参照することにより、起動要因が判定される。なお、上述の通り、起動要因は不揮発性メモリ２に保持されても良い。従って、起動要因が不揮発性メモリ２に保持される場合は、不揮発性メモリ２を参照することにより、起動要因が判定される。
【００５５】
そして、起動要因が通常の装置起動の場合、処理はＳ１０５に移行し、起動要因が異常による再起動の場合、処理はＳ１０４に移行する。
【００５６】
Ｓ１０４では、異常による再起動をした場合、その起動要因に応じて、インベントリ値が変更される（Ｓ１０４）。インベントリ値の変更は、例えば、図５に例示した起動要因値とインベントリ値との対応関係に基づいて行うことができる。具体的には、起動要因が「メモリ異常による再起動」である場合、図５に基づいて、インベントリ値は「０」（すなわち、メモリの全領域をチェックする）というものに変更される。
【００５７】
なお、通常時のインベントリ値は、通常装置起動時（起動要因値「０」）のときの値（すなわち「２」）に設定されている。従って、Ｓ１０３において通常起動であると判定されると、そのままのインベントリ値「２」を使用する。
【００５８】
Ｓ１０５では、インベントリ値に基づいて、揮発性メモリ１における診断領域が決定される（Ｓ１０５）、診断領域を診断する（Ｓ１０６〜Ｓ１１０）。
【００５９】
例えば、揮発性メモリ１の全領域が「０ｘ００００  ００００」から「０ｘＦＦＦＦ  ＦＦＦＦ」であるとする。また、起動時の未使用領域が「０ｘ３０００  ００００」から「０ｘ５ＦＦＦ  ＦＦＦＦ」であり、それ以外がすべて有効領域であるとする。
【００６０】
この場合、読み出したインベントリ値に基づいて、診断領域を決定する。例えば、インベントリ値が「０」であれば、揮発性メモリ１の全領域を診断領域とし、「０ｘ００００  ００００」から「０ｘＦＦＦＦ  ＦＦＦＦ」までをチェックする。
【００６１】
また例えば、インベントリ値が「１」であれば、全有効領域をチェックし、未使用領域はチェックしない。つまり、診断領域は「０ｘ００００  ００００」から「０ｘ２ＦＦＦ  ＦＦＦＦ」までと、「０ｘ６０００  ００００」から「０ｘＦＦＦＦ  ＦＦＦＦ」までとする。
【００６２】
また例えば、インベントリ値が「２」であれば、有効領域の先頭とテールのみチェックする。つまり、有効領域の先頭である「０ｘ００００  ００００」、テールである「０ｘ２ＦＦＦ  ＦＦＦＦ」と、有効領域の先頭「０ｘ６０００  ００００」とそのテールの「０ｘＦＦＦＦ  ＦＦＦＦ」のアドレスのみチェックする。
【００６３】
Ｓ１０６〜Ｓ１１０によるメモリ診断の結果がＯＫであれば、処理はＳ１１２に移行し、プログラム２２、データ２３をメモリ１にロードし（Ｓ１１２）、プログラム２２が起動する（Ｓ１１３）。一方、メモリ診断の結果がＮＧであれば、起動停止する（Ｓ１１４）。
【００６４】
図７は、プログラム起動後の通信装置１０の異常発生時の診断実行部２１５によるメモリ診断処理の動作を示すフローチャートである。
【００６５】
図６のＳ１１３でプログラム２２の起動後、処理は図７のＳ１２１に移行する。Ｓ１２１では、インベントリデータの起動要因値を「０」に設定する（Ｓ１２１）。
【００６６】
その後、通信装置１０において、故障等の異常発生を監視し（Ｓ１２２）、異常が発生すると、電源監視部６が商用電源９からの電源が供給されているか否かを監視する（Ｓ１２３）。
【００６７】
そして、商用電源９から電源が供給されていない場合、補助電源がＯＮとなり（Ｓ１２４）、処理はＳ１２５に移行する。また、Ｓ１２３において、商用電源９から電源が供給されている場合、処理はＳ１２５に移行する。
【００６８】
Ｓ１２５では、発生した異常要因の判定が行なわれ（Ｓ１２５）、判定した異常要因に応じてインベントリデータの起動要因値が変更される。
【００６９】
ここで、発生する異常要因として、メモリ異常、例えばハードウェアの故障など装置異常、ウォッチドッグタイマー部４により検出される異常、その他の要因による異常等がある。
【００７０】
例えば、メモリ異常の場合、インベントリデータの起動要因値を「０」から「１」に変更する（Ｓ１２６、Ｓ１２７）。
【００７１】
例えば、装置異常の場合、インベントリデータの起動要因値を「０」から「２」に変更する（Ｓ１２８、Ｓ１２９）。
【００７２】
例えば、ウォッチドッグタイマー部４により検出される異常の場合、インベントリデータの起動要因値を「０」から「３」に変更する（Ｓ１３０、Ｓ１３１）。
【００７３】
例えば、その他の要因による異常の場合、インベントリデータの起動要因値を「０」から「４」に変更する（Ｓ１３２、Ｓ１３３）。
【００７４】
次に、インベントリデータの起動要因値が「２」であるか否かを判定し（Ｓ１３４）、起動要因値が「２」である場合、シャットダウンが可能か否かを判定し（Ｓ１３５）、シャットダウンが可能であるとき電源（商用電源又は補助用電源部７）をＯＦＦにする（Ｓ１３７）。なお、再び電源がＯＮされれば、図６に示す「起動」処理に戻る。また、シャットダウンが不可能である場合には、例えば報知音の警報や報知灯の点灯等のユーザへの報知を行ない（Ｓ１３６）、処理がＳ１３５に戻る。
【００７５】
一方、Ｓ１３４において、起動要因値が「２」でない場合には、図６に示す「起動」処理に戻る。
【００７６】
なお、図７のメモリ診断処理の動作フローは、電源監視部６及び補助電源７が通信装置１０の構成要件として有する場合を前提とするものである。実運用上では、通信装置１０が電源監視部６及び補助電源７を有しない場合もある。（Ａ−３）実施形態の効果
以上のように、この実施形態によれば、製品出荷前のインベントリデータの初期値を全領域として全メモリをチェックした上で、製品出荷後には、顧客の立ち上げ時間の要求レベルに応じて、メモリ診断領域を決定することができる。これにより、装置起動の要求レベルに応じたメモリ診断時間を適切な範囲に短縮できる。
【００７７】
（Ｂ）他の実施形態
上述した実施形態では、通信装置における揮発性メモリを診断するメモリ診断装置を例示して説明した。しかし、通信装置が備えるメモリに限定するものではなく、通信装置の他に、メモリを有する機器に広く適用することができる。
【００７８】
上述した実施形態において、図３及び図４に例示したインベントリ値及び起動要値のインベントリデータは一例である。従って、機器において発生する異常による起動の種類等に応じて、インベントリ値や起動要因値を種々設定することができる。
【００７９】
上述した実施形態では、図３に例示するインベントリ値の定義を例示した。図３において、インベントリ値が「４」の特定の有効領域は、例えば、処理によっては利用するアドレス領域が決まっている場合に、その特定のアドレス領域を診断領域とするときに利用できる。
【符号の説明】
【００８０】
１０…通信装置、１…揮発性メモリ、２…不揮発性メモリ、２１…起動プログラム、２２…プログラム、２３…データ、２４…インベントリデータ、２１１…初期化処理部、２１２…インベントリデータ取得部、２１３…起動要因判定部、２１４…診断領域決定部、２１５…診断時後部、２１６…診断結果取得部、３…ＣＰＵ、４…ウォッチドッグタイマー部、５…装置制御部。
【図１】
0005825178.tif 000002
【図２】
0005825178.tif 000003
【図３】
0005825178.tif 000004
【図４】
0005825178.tif 000005
【図５】
0005825178.tif 000006
【図６】
0005825178.tif 000007
【図７】
0005825178.tif 000008