(57)【要約】【課題】記憶装置に搭載されるメモリが間欠的に故障し、その後、復旧し再現しない場合には継続して装置を使用し続け、かつ、ハードウェア要因の故障も検出する。【解決手段】メモリのプログラム領域およびデータ領域をそれぞれ複数の領域に分割すると共に管理領域および予備領域を備え、プログラム領域およびデータ領域の複数に分割した領域のそれぞれについてメモリの正常性を確認し、メモリの異常を検出した回数をそれぞれの領域について記録し、記録された回数が閾値を越えた領域が有るときにはメモリの障害発生と判断し、記録された回数が閾値以下の領域についてはその領域に格納されている情報を予備領域に移動させると共に当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、この移動回数が閾値を越えたときにもメモリの障害発生と判断する。【選択図】図１
2009015553.tif 000002
【特許請求の範囲】
【請求項１】
プログラム領域とデータ領域とを有するメモリを備えた記憶装置において、
前記メモリのプログラム領域およびデータ領域をそれぞれ複数の領域に分割すると共に管理領域および予備領域を備え、
プログラム領域およびデータ領域の複数に分割した領域のそれぞれについてメモリの正常性を確認するメモリ正常性確認処理手段と、
このメモリ正常性確認処理手段がメモリの異常を検出した回数をそれぞれの領域について記録するメモリ異常カウント手段と、
このメモリ異常カウント手段に記録された回数が閾値を越えた領域が有るときにはメモリの障害発生と判断する障害検出手段と、
前記メモリ異常カウント手段に記録された回数が閾値以下の領域についてはその領域に格納されている情報を予備領域に移動させると共に当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録するメモリ故障救済処理手段と
を備え、
前記障害検出手段は、前記移動回数が閾値を越えたときにもメモリの障害発生と判断する
ことを特徴とする記憶装置。
【請求項２】
前記管理領域を前記メモリの中に一元的に設け、各領域に関する前記異常を検出した回数および前記情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録する請求項１記載の記憶装置。
【請求項３】
前記管理領域を領域毎にそれぞれ設け、自己の領域に格納されている情報について当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、
前記異常を検出した回数については前記メモリの中に別途領域を設けて一元的に記録する
請求項１記載の記憶装置。
【請求項４】
前記管理領域を領域毎にそれぞれ設け、自己の領域に格納されている情報について当該情報の移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、
前記異常を検出した回数については前記メモリの中に別途領域を設けて一元的に記録し、
前記情報の移動回数については前記情報の移動元の領域のアドレスに対応する移動先の予備領域のアドレスを順次検索することにより取得する手段を備えた
請求項１記載の記憶装置。
【請求項５】
汎用の記憶装置にインストールすることにより、その汎用の記憶装置に、請求項１ないし４のいずれかに記載の記憶装置における前記メモリ正常性確認処理手段、前記メモリ異常カウント手段、前記障害検出手段、前記メモリ故障救済処理手段、前記取得する手段に相応する機能を有するファームウェアを実現させるプログラム。
【請求項６】
プログラム領域とデータ領域とを有するメモリを備えた記憶装置が行うメモリ故障救済方法において、
前記メモリのプログラム領域およびデータ領域をそれぞれ複数の領域に分割すると共に管理領域および予備領域を備え、
プログラム領域およびデータ領域の複数に分割した領域のそれぞれについてメモリの正常性を確認し、
メモリの異常を検出した回数をそれぞれの領域について記録し、
記録された回数が閾値を越えた領域が有るときにはメモリの障害発生と判断し、
記録された回数が閾値以下の領域についてはその領域に格納されている情報を予備領域に移動させると共に当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、
前記移動回数が閾値を越えたときにはメモリの障害発生と判断する
ことを特徴とするメモリ故障救済方法。
【請求項７】
前記管理領域を前記メモリの中に一元的に設け、各領域に関する前記異常を検出した回数および前記情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録する請求項６記載のメモリ故障救済方法。
【請求項８】
前記管理領域を領域毎にそれぞれ設け、自己の領域に格納されている情報について当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、
前記異常を検出した回数については前記メモリの中に別途領域を設けて一元的に記録する
請求項６記載のメモリ故障救済方法。
【請求項９】
前記管理領域を領域毎にそれぞれ設け、自己の領域に格納されている情報について当該情報の移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、
前記異常を検出した回数については前記メモリの中に別途領域を設けて一元的に記録し、
前記情報の移動回数については前記情報の移動元の領域のアドレスに対応する移動先の予備領域のアドレスを順次検索することにより取得する
請求項６記載のメモリ故障救済方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの異常検出に利用する。特に、一時的で軽微なメモリ異常についてはメモリを継続使用するメモリ故障救済方法に関する。
【背景技術】
【０００２】
記憶装置に搭載されたファームウェアによりメモリの故障を検出した場合に、その対応方法として、故障部位の交換、故障部位の非使用化、または、被疑箇所が特定できる場合は修理などの対応方法があるが、その場で被疑箇所が特定できない場合には、故障部位交換後に故障被疑箇所調査を実施しても、問題が再現せず故障原因や被疑箇所が不明となる場合が多い。
【０００３】
また、昨今のメモリは超微細なゲート間隔となっているため、外部からの電磁波等の影響により間欠的にリーク電流が発生することがあり、それが原因でメモリ故障を検出することがあるが、このような場合には、一時的なメモリ故障に留まるため、メモリ内の他の箇所が誘発して故障する可能性は低いので、メモリ故障個所を非使用化することにより、継続してメモリを使用することが可能であると考えられる。
【０００４】
しかしながら、従来、メモリチェックを行う際、メモリの正常性確認を行い、メモリ異常を検出した場合は障害通知を行うなどの方法で、ハードウェア交換を含む物理的な対処が必要であった。
【０００５】
さらに、メモリにパリティビットを付与してハードウェア的にメモリ故障を検出するアルゴリズムの場合は、そのメモリ故障がハードウェア的に故障し他の部位にも波及するものなのか、間欠故障のため他の部位に波及しないものなのかを検出できないため、一様に障害とする必要があり、ハードウェア的な交換を行う必要があった。
【０００６】
図１２に従来のメモリの構成を示す。従来のメモリ４０は大きくプログラム領域４１とデータ領域４２とに分けられている。図１３に従来のメモリチェック処理を示す。従来のメモリチェック処理は、メモリの正常性確認処理（Ｓ３０）と、その処理結果からメモリが正常か否かを判断する処理（Ｓ３１）と、メモリが異常だった場合にメモリ障害を検出する処理（Ｓ３２）とを備えている。
【０００７】
従来のメモリチェック処理では、メモリ正常性確認処理によりメモリが異常と検出された場合には、その異常原因が一時的な間欠故障なのか、物理的に故障しておりハードウェア交換以外に復旧方法が無いのかを判断できない。そのため、メモリ異常の原因が間欠的なもの、部分的なものに限られていても、装置全体の障害として検出してしまいハードウェア交換などが必要であった。
【０００８】
このような課題を解決するために、一時的なメモリの間欠故障が発生した場合に、それをハードウェア交換により解決するのではなく、ファームウェア処理によりメモリを復旧させることで解決する方法が提案されている（例えば、特許文献１〜４参照）。
【０００９】
【特許文献１】再特ＷＯ２００１０２２２３２号公報
【特許文献２】特開２００４−３１０７７０号公報
【特許文献３】特開平１１−１７５４０９号公報
【特許文献４】特表２００１−５０１０００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記特許文献１〜４の方法は、一時的で軽微なメモリ異常が発生した場合には、そのメモリ領域毎に発生回数をカウントしておき、発生回数が閾値を越えた場合には、そのメモリ領域に記憶されている内容を予備のメモリ領域に複写し、複写元のメモリ領域を非使用にするというものである。
【００１１】
これによれば、一時的で軽微なメモリ異常についてはハードウェア交換をせずにそのまま継続使用できる利点がある。しかしその一方で、このまま継続使用することに何ら問題がないのか、あるいは、このまま継続使用することは可能ではあるが、なるべく近い内にハードウェア交換した方が良い状態であるのかなどの詳細な分析は行っていない。これにより、ハードウェア交換を行うべき適切な時期を見落とす可能性が否めなかった。
【００１２】
本発明は、このような課題を解決するために行われたものであって、記憶装置に搭載されるメモリが間欠的に故障し、その後、復旧して再現しない場合には継続して装置を使用し続けることができ、かつ、ハードウェア要因の故障とファームウェア原因の故障とを分けて判定することができる記憶装置およびプログラムおよびメモリ故障救済方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、プログラム領域とデータ領域とを有するメモリを備えた記憶装置であって、本発明の特徴とするところは、前記メモリのプログラム領域およびデータ領域をそれぞれ複数の領域に分割すると共に管理領域および予備領域を備え、プログラム領域およびデータ領域の複数に分割した領域のそれぞれについてメモリの正常性を確認するメモリ正常性確認処理手段と、このメモリ正常性確認処理手段がメモリの異常を検出した回数をそれぞれの領域について記録するメモリ異常カウント手段と、このメモリ異常カウント手段に記録された回数が閾値を越えた領域が有るときにはメモリの障害発生と判断する障害検出手段と、前記メモリ異常カウント手段に記録された回数が閾値以下の領域についてはその領域に格納されている情報を予備領域に移動させると共に当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録するメモリ故障救済処理手段とを備え、前記障害検出手段は、前記移動回数が閾値を越えたときにもメモリの障害発生と判断するところにある。
【００１４】
また、本発明は、汎用の記憶装置にインストールすることにより、その汎用の記憶装置に、本発明の記憶装置における前記メモリ正常性確認処理手段、前記メモリ異常カウント手段、前記障害検出手段、前記メモリ故障救済処理手段、前記取得する手段に相応する機能を有するファームウェアを実現させるプログラムとしての観点から観ることもできる。
【００１５】
また、本発明は、プログラム領域とデータ領域とを有するメモリを備えた記憶装置が行うメモリ故障救済方法としての観点から観ることもできる。これによれば、本発明は、前記メモリのプログラム領域およびデータ領域をそれぞれ複数の領域に分割すると共に管理領域および予備領域を備え、プログラム領域およびデータ領域の複数に分割した領域のそれぞれについてメモリの正常性を確認し、メモリの異常を検出した回数をそれぞれの領域について記録し、記録された回数が閾値を越えた領域が有るときにはメモリの障害発生と判断し、記録された回数が閾値以下の領域についてはその領域に格納されている情報を予備領域に移動させると共に当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録し、前記移動回数が閾値を越えたときにはメモリの障害発生と判断することを特徴とするメモリ故障救済方法である。
【発明の効果】
【００１６】
第一の効果は、メモリのハードウェア交換頻度を低減できることにある。その理由は、メモリのハードウェア交換をせずに、メモリ内の領域の交換を実施することで、メモリ故障が他の領域に影響を与えるか否かの確認を行って、他の箇所にも障害があることが判明してから装置としての障害を検出するためである。
【００１７】
第二の効果は、ハードウェアの設計変更をすることなく、本発明のアルゴリズムを起用したファームウェアへの更新でメモリ故障を低減できることにある。その理由は、本発明がファームウェアによるアルゴリズムのみで提案しているためである。
【００１８】
第三の効果は、ハードウェア要因によるメモリ障害の検出回数と、ファームウェア要因によるメモリ障害の検出回数とを分けて閾値判定させることができるため、障害を検出した場合でもその後の調査が容易になることである。
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態の記憶装置を図１を参照して説明する。図１は本実施形態の記憶装置の構成図である。
【００２０】
本実施形態の記憶装置は、図１に示すように、プログラム領域１１とデータ領域１２とを有するメモリ１０を備え、メモリ１０のプログラム領域１１およびデータ領域１２をそれぞれ複数の領域に分割すると共に管理領域１３および予備領域１４を備え、プログラム領域１１およびデータ領域１２の複数に分割した領域のそれぞれについてメモリ１０の正常性を確認するメモリ正常性確認処理部１と、このメモリ正常性確認処理部１がメモリの異常を検出した回数をそれぞれの領域について記録するメモリ異常カウント部２と、このメモリ異常カウント部２に記録された回数が閾値を越えた領域が有るときにはメモリ１０の障害発生と判断する障害検出部３と、メモリ異常カウント部２に記録された回数が閾値以下の領域についてはその領域に格納されている情報を予備領域１４に移動させると共に当該情報の移動回数および移動元の領域のアドレスに対応する移動先の予備領域のアドレスをそれぞれ記録するメモリ故障救済処理部４とを備え、障害検出部３は、前記移動回数が閾値を越えたときにもメモリ１０の障害発生と判断することを特徴とする。なお、以下では、この移動回数を無効回数カウンタ値と呼ぶ。
【００２１】
管理領域１３は、メモリ異常カウント部２によるカウンタ値が記録される。また、メモリ故障救済処理部４による無効回数カウンタ値および予備領域アドレスが記録される。
【００２２】
なお、図１に示すメモリ正常性確認処理部１、メモリ異常カウント部２、障害検出部３、メモリ故障救済処理部４は、ファームウェアの有する機能として実現される。また、当該ファームウェアは、汎用の記憶装置にインストールすることにより、その汎用の記憶装置に、本実施形態の記憶装置におけるメモリ正常性確認処理部１、メモリ異常カウント部２、障害検出部３、メモリ故障救済処理部４などに相応する機能を有するファームウェアを実現させるプログラムによって実現することができる。
【００２３】
このプログラムは記録媒体に記録されることにより、前記汎用の記憶装置は、この記録媒体を用いてこのプログラムをインストールすることができる。あるいは、このプログラムを保持するサーバからネットワークを介して直接前記汎用の記憶装置にこのプログラムをインストールすることもできる。
【００２４】
これにより、汎用の記憶装置を用いて、本実施形態の記憶装置の機能に相応する機能を実現することができる。
【００２５】
なお、このプログラムは、汎用の記憶装置によって直接実行可能なものだけでなく、ハードディスクなどにインストールすることによって実行可能となるものも含む。また、圧縮されたり、暗号化されたりしたものも含む。
【００２６】
このように、本実施形態の記憶装置では、図１に示すように、プログラム領域１１とデータ領域１２とに大きく２種に分けられていたメモリ領域を、複数の領域に分割して設定する。その上で、分割して設定したメモリの一部が故障した場合に、分割した領域単位で予備領域と機能を交換することにより、メモリの部分故障や間欠故障を救済する。
【００２７】
すなわち、プログラム領域１１とデータ領域１２と管理領域１３と予備領域１４とが等間隔に分割されて定義されている。このように分割してメモリを定義することで、プログラム領域１１やデータ領域１２でメモリ異常を検出した場合に、その領域単位で予備領域１４と機能を交換することにより、メモリ故障を救済することができる。
【００２８】
また、管理領域１３は、プログラム領域１１およびデータ領域１２の各メモリ領域が有効であるか無効であるかの管理やメモリ故障により予備領域と機能が交換されているか否か、および、移動先の予備領域１４のアドレスを管理している。
【００２９】
本処理により、障害領域を使用しないで済むため、メモリ１０の部分故障が起きた際、ハードウェア交換をせずにメモリを使用し続けることができる。さらに、ハードウェア要因によるメモリ障害の検出回数と、ファームウェア要因によるメモリ障害の検出回数とを分けて閾値判定させることができるため、障害を検出した場合でもその後の調査が容易になる。
【００３０】
（第一実施例）
本発明の第一実施例について図面を参照して詳細に説明する。図２を参照すると、不揮発データ記憶部２０と演算機２１と外部メモリ２３とを有する装置３０があり、演算機２１は内部メモリ２２を有する。装置３０は各種ＩＦ２４を介して外部２５と接続されている。不揮発データ記憶部２０および外部メモリ２３は演算機２１と接続されている。
【００３１】
本実施例は、図２で定義されている内部メモリ２２および外部メモリ２３でのメモリ故障について救済を行う。すなわち、内部メモリ２２および外部メモリ２３は、上述した図１の本実施形態の記憶装置により構成されている。
【００３２】
図３に、図２で定義される内部メモリ２２および外部メモリ２３の構成を示す。図３に示すように、メモリ１０はプログラム領域１１、データ領域１２、管理領域１３−１、予備領域１４で構成されている。プログラム領域１１、データ領域１２、および、予備領域１４は、それぞれ同じサイズに区切られた領域で構成されている。
【００３３】
プログラム領域１１はプロセッサを動作させるためのプログラム等を格納しており、データ領域１２はプログラム内の各処理が使用するデータ・パラメータ等を格納している。
【００３４】
図４に、管理領域１３−１に格納されている各領域のアドレスに対応する管理パラメータの概要を示す。図４に示すように、ある領域ａに対応する管理領域１３−１には「無効回数カウンタ値」および「予備領域アドレス」が格納されている。
【００３５】
管理領域１３−１は、図４に示す管理パラメータをメモリ上のプログラム領域１１、データ領域１２、予備領域１４の分のリスト形式で格納したものと、メモリ異常カウンタ値とを格納している。
【００３６】
図５に本実施例でのメモリチェック処理のフローを示す。この処理は、メモリ１０の障害を検出し、その障害がハードウェア交換を必要とするか否かを判断する。メモリチェック処理は、ハードウェア交換が必要な場合はメモリ障害を検出し、ハードウェア交換が必要ではない場合はメモリの故障を救済する「メモリ故障救済処理」をコールする。
【００３７】
すなわち、図１に示すメモリ正常性確認処理部１によりメモリ１０のプログラム領域１１およびデータ領域１２の各分割された領域毎にメモリ正常性確認処理（Ｓ１）を行う。いずれかの領域が正常ではないときには（Ｓ２）、その領域についてのメモリ異常カウンタ値に“１”を加算する（Ｓ３）。これは、メモリ故障救済処理にて、使用するメモリ領域が移動し、故障領域に格納されていたメモリ機能が救済された後、別の領域で再度メモリ故障が繰り返す場合など、メモリ全体で起きたメモリ異常の延べ回数を検出するためのものである。
【００３８】
このとき、メモリ異常カウンタ値が閾値より大きければ（Ｓ４）、障害検出部３は、メモリ障害検出（Ｓ５）として障害通知を行う。また、メモリ異常カウンタ値が閾値以下であれば（Ｓ４）、メモリ故障救済処理をコールする（Ｓ６）。
【００３９】
ここで、閾値以下の場合にメモリ故障救済処理をコールすると説明したが、例えば、閾値が“３”に設定されていた場合には、閾値が“１”、“２”、“３”のいずれの時点であってもメモリ故障救済処理をコールすることができることになる。このような場合に、いずれの時点でメモリ故障救済処理をコールするかはメモリ１０の設置環境に応じて管理者が適宜設定すればよい。
【００４０】
例えば、一時的に軽微なメモリ異常が頻発するが直ぐに正常に復旧するような設置環境下であるならば最大値“３”になった時点でメモリ故障救済処理をコールするように設定すればよい。あるいは、１回でもメモリ異常が発生した場合には安全性を重視して直ちにメモリ故障救済処理をコールしたいならば最小値“１”になった時点でメモリ故障救済処理をコールするように設定すればよい。
【００４１】
本処理では、図３で示すプログラム領域１１、データ領域１２、予備領域１４の全ての領域で起きたメモリ障害の延べ回数をカウントし、その回数を閾値判定しメモリ障害を検出している。そのため、外的要因でのメモリ故障など、メモリの部位に左右されないメモリ障害や、ファームウェアがメモリ障害を誤検出している場合や、ファームウェアがメモリ破壊をしている場合などのように内部要因によるメモリ障害を、分けて検出することができる。
【００４２】
図６に本実施例でのメモリ故障救済処理のフローを示す。この処理は、メモリ故障を検出した領域を非使用化し、予備領域１４に機能を移す機能を持つ。すなわち、図５のフローのステップＳ６においてメモリ故障救済処理がコールされたときには、メモリ故障救済処理部４は、無効回数カウンタ値を“１”加算する（Ｓ１０）。無効回数カウンタ値は、それぞれの領域についてメモリ故障救済処理がコールされた回数を示し、同時に予備領域１４への移動回数を示す。
【００４３】
無効回数カウンタ値が閾値よりも大きければ（Ｓ１１）、障害検出部３は、障害通知を行う。また、無効回数カウンタ値が閾値以下であれば（Ｓ１１）、予備領域１４のアドレスを障害検出元の「予備領域アドレス」に設定する（Ｓ１２）。
【００４４】
障害検出元のメモリ領域に格納されている情報を予備領域１４にコピーする（Ｓ１３）。障害検出元のメモリ領域の「無効回数カウンタ値」を、予備領域の「無効回数カウンタ値」に設定する（Ｓ１４）。
【００４５】
メモリ救済処理は、図５のメモリチェック処理でメモリ異常を検出した場合に、その領域に対応する管理領域（例えば図３の「ａ」でメモリ異常検出した場合それに対応する管理領域の「アドレス“ａ”に対応」するパラメータ）の「無効回数カウンタ値」を“１”加算する。その後、無効回数カウンタが閾値以下の場合は、メモリの救済を実施する。
【００４６】
本処理により、障害が発生した領域では「予備領域アドレス」が初期値から実アドレスへ設定されるので「予備領域アドレス」が初期値か設定済みかを判断することで、その領域が有効であるか否かの判断をすることができる。
【００４７】
本処理により、障害が発生した領域の代わりとして取得された予備領域１４でも障害を検出した場合には、予備領域１４の「無効回数カウンタ値」は障害検出元の「無効回数カウンタ値」をさらにカウントアップした値が設定されることになる。これは、同じ機能を持つメモリ領域で検出した障害の延べ回数を示すことになるので、ファームウェア不具合のように同一処理によるメモリ破壊などが障害の要因となっている場合など、メモリに格納されている機能に依存するメモリ障害を検出することができる。
【００４８】
図７に本実施例でのメモリ読み出し処理のフローを示す。この処理は、図６で説明したメモリ故障救済処理により故障領域のメモリ機能が予備領域１４に移された場合に、移動先のメモリから情報を読み取る機能を持つ。
【００４９】
すなわち、メモリを読み出すときには、読み出し先のメモリアドレスを取得し（Ｓ２０）、そのメモリアドレスに対応する管理領域１３−１を参照する（Ｓ２１）。このときに、予備領域アドレスが未設定であれば（Ｓ２２）、取得したアドレスからデータを読み出す（Ｓ２５）。また、予備アドレスが設定済みであれば（Ｓ２２）、メモリアドレスを予備領域アドレスに読み替えて（Ｓ２３）、メモリを読み出す（Ｓ２４）。
【００５０】
このように本実施例では、図５に示す処理により、メモリ故障を検出し、図６に示す処理により、メモリの故障部位に格納されている機能を救済し、図７に示す処理により、救済されたメモリの機能を使用する。
【００５１】
すなわち本実施例では、メモリチェック処理での「メモリ異常カウンタ値」閾値判定と、メモリ救済処理での「無効回数カウンタ値」閾値判定の２種類の判定を行うことで「メモリ異常カウンタ値」閾値判定では、メモリ全体で起きたメモリ障害を検出し、「無効回数カウンタ値」閾値判定では、機能に依存したメモリ障害を検出することができる。
【００５２】
そのため、外的要因やハードウェアの故障などメモリ内に格納されている機能に依存しないメモリ障害を「メモリ異常カウンタ値」閾値判定で検出し、ファームウェア不具合などのようにメモリの機能に依存したメモリ障害を「無効回数カウンタ値」閾値判定で検出することができる。
【００５３】
一方で、ハードウェア故障でもファームウェア不具合でもないメモリ故障（例えば間欠的な故障）は、メモリ全体で頻発するわけではないので「メモリ異常カウンタ値」閾値判定で検出されず、また、ファームウェアに依存することも無いので「無効回数カウンタ値」閾値判定でも検出されない。このことから、間欠的故障を本実施例のメモリ救済処理で救うことができるため、無用な障害検出やハードウェア交換を回避することができる。
【００５４】
（第二実施例）
本発明の第二実施例のメモリについて図８を参照して説明する。図８の例では、分割したメモリ領域の各領域の先頭に管理領域１３−２をそれぞれ設定し、その管理領域１３−２の中に、無効回数カウンタ値と予備領域アドレスとを設定している。実施例の動作の説明は、第一実施例の動作の説明と同様になるので省略する。
【００５５】
図９に本実施例での管理領域１３−２を拡大したものを示す。各プログラム領域１１およびデータ領域１２内の先頭部に管理領域１３−２を設定し、その中に、無効回数カウンタ値と予備領域アドレスとを設定している。
【００５６】
（第三実施例）
本発明の第三実施例のメモリについて図１０を参照して説明する。図１０の例では、各領域に設定する管理領域１３−３に無効回数カウンタ値を設けていない。本実施例では、予備領域のアドレスが設定されているか否かを基に、対象となる領域が有効であるか否かを判断し、予備領域１４のアドレスが設定されている場合に、領域が無効と判断されて予備領域１４を参照することとなる。
【００５７】
図１１に本実施例での管理領域１３−３を拡大したものを示す。各プログラム領域１１およびデータ領域１２内の先頭部に管理領域１３−３を設定し、その中に、予備領域アドレスを設定している。
【００５８】
すなわち、他実施例において無効回数カウンタ値によって示される情報の移動回数については情報の移動元の領域のアドレスに対応する移動先の予備領域のアドレスを順次検索することにより取得する。
【００５９】
例えば、図１０の例で、プログラム領域１１の領域♯１の情報が予備領域１４の領域♯ｎにコピーされて移動した時点で他実施例における無効回数カウンタ値は“１”となる。また、予備領域１４の領域♯ｎに移動した情報が再度、予備領域１４の領域♯（ｎ＋１）にコピーされて移動した場合には他実施例における無効回数カウンタ値は“２”となる。
【００６０】
本実施例では、無効回数カウンタ値の設定を行わないが
領域♯１→領域♯ｎ→領域♯ （ｎ−１）
と情報の移動履歴を検索することにより無効回数カウンタ値に相応する値を取得する。これによれば、管理領域１３−３に割当てるメモリ量を他実施例と比較して少なくすることができる利点がある。
【００６１】
（第四実施例）
図６で説明した障害検出元のメモリ領域に設定されている情報を予備領域１４にコピーする処理で、障害検出元のデータが既に破壊されている場合は、図２に示す不揮発データ記憶部２０からデータのコピーを行うことができる。
【産業上の利用可能性】
【００６２】
本発明によれば、メモリのハードウェア交換頻度を低減でき、また、ハードウェアの設計変更をすることなく、本発明のアルゴリズムを起用したファームウェアへの更新でメモリ故障を低減でき、また、ハードウェア要因によるメモリ障害の検出回数と、ファームウェア要因によるメモリ障害の検出回数とを分けて閾値判定させることができるため、障害を検出した場合でもその後の調査が容易になるので、メモリの運用効率の改善に利用することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施形態の記憶装置の構成図。
【図２】本発明の実施形態の記憶装置が適用される装置の例を示す図。
【図３】第一実施例のメモリ構成を示す図。
【図４】第一実施例のメモリ構成における管理領域を示す図。
【図５】第一実施例のメモリチェック処理のフローチャート。
【図６】第一実施例のメモリ故障救済処理のフローチャート。
【図７】第一実施例のメモリ読み出し処理のフローチャート。
【図８】第二実施例のメモリ構成を示す図。
【図９】第二実施例のメモリ構成における管理領域を示す図。
【図１０】第三実施例のメモリ構成を示す図。
【図１１】第三実施例のメモリ構成における管理領域を示す図。
【図１２】従来のメモリ構成を示す図。
【図１３】従来のメモリチェック処理のフローチャート。
【符号の説明】
【００６４】
１  メモリ正常性確認処理部
２  メモリ異常カウント部
３  障害検出部
４  メモリ故障救済処理部
１０、４０  メモリ
１１、４１  プログラム領域
１２、４２  データ領域
１３、１３−１〜３  管理領域
１４  予備領域
１５  メモリ異常カウンタ値
２０  不揮発データ記憶部
２１  演算機
２２  内部メモリ
２３  外部メモリ
２４  各種ＩＦ
２５  外部
３０  装置
【図１】
2009015553.tif 000003
【図２】
2009015553.tif 000004
【図３】
2009015553.tif 000005
【図４】
2009015553.tif 000006
【図５】
2009015553.tif 000007
【図６】
2009015553.tif 000008
【図７】
2009015553.tif 000009
【図８】
2009015553.tif 000010
【図９】
2009015553.tif 000011
【図１０】
2009015553.tif 000012
【図１１】
2009015553.tif 000013
【図１２】
2009015553.tif 000014
【図１３】
2009015553.tif 000015