(57)【要約】  診断対象のＲＡＭ２００をｎ個（ｎは３以上の整数）のベース領域に分割し、ＲＡＭ２００が搭載されているシステムで行われる周期処理の空き時間において、分割されたベース領域から２つのベース領域を選出し、選出された２つのベース領域に対して、カップリングフォルトを検出できる診断方式にて診断を行い、以降、周期処理の空き時間ごとに、未選出のベース領域のペアを選出して、選出されたペアに診断を行う動作を繰り返し、全てのペアに対して診断を実施する。
2012111135.tif 000002
【特許請求の範囲】
【請求項１】
診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分する領域区分部と、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行う診断実行部とを有することを特徴とするメモリ診断装置。
【請求項２】
前記領域区分部は、
部分領域ごとの領域サイズを変化させて、前記メモリの領域をｎ個の部分領域に区分し、
前記診断実行部は、
異なる領域サイズの２つの部分領域を選択することを特徴とする請求項１に記載のメモリ診断装置。
【請求項３】
前記診断実行部は、
１回の空き時間において、部分領域の複数のペアの診断を行うことを特徴とする請求項１に記載のメモリ診断装置。
【請求項４】
診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分し、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行うことを特徴とするメモリ診断方法。
【請求項５】
診断対象のメモリの領域をｎ（ｎは３以上の整数）個の処理分領域に区分する領域区分処理と、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の処理分領域から２つの処理分領域を選択し、選択した２つの処理分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行う診断実行処理とをプロセッサ装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの故障の有無を診断する技術に関する。
【背景技術】
【０００２】
従来の診断方法では、メモリ（以下、ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙとも表記する）全体を診断単位とし、メモリ全体に対して読み書きを実施し期待値と比較することでメモリの故障を検出していた（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｒ．  Ｎａｉｒ，  Ｓ．  Ｍ．  Ｔｈａｔｔｅ  ａｎｄ  Ｊ．  Ｃ．  Ａｂｒａｈａｍ．：  Ｅｆｆｉｃｉｅｎｔ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｔｅｓｔｉｎｇ  ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｉｅｓ．  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ，  Ｃ−２７，  ｐｐ．５７２−５７６  （１９７８）．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１の方法は、ソフトウェアによるＲＡＭ診断方法の１つである。
非特許文献１の方法では、ＲＡＭを読み書きし期待値と比較することで、ＲＡＭの故障を検出する。
そのため、アプリケーションが利用するスタック領域を侵害してしまうため、他のアプリケーションの動作に影響を与えるという特徴がある。
また、ＲＡＭ全体を読み書きするため処理量が多いという特徴がある。
これらの特徴により、組み込みシステムに適用しようとした場合、非特許文献１の方法は処理時間が長く時分割処理を考慮していないため、組み込みシステム特有の周期処理に適用することができない。
そのため、アプリケーションを実行する時間とは別にＲＡＭ診断に専用の時間が必要となり、アプリケーションの稼働率に多大な影響を与えるという課題がある。【０００５】
本発明では、上記のような課題を解決することを主な目的の一つとしており、カップリングフォルトが検出でき、アプリケーションの稼働率に影響を与えないメモリ診断を実施することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るメモリ診断装置は、
診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分する領域区分部と、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行う診断実行部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、診断対象のメモリが搭載されているシステムにおいて行われる周期処理の空き時間に診断を行うので、システムにおけるアプリケーションの稼働率に影響を与えることがない。
また、カップリングフォルトを検出できる診断方式による診断を、すべての部分領域のペアに対して行うため、カップリングフォルトを有効に検出すことができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るメモリ診断方法の概要を示す図。
【図２】実施の形態１に係るメモリ診断方法を実現する構成例を示す図。
【図３】実施の形態１に係るメモリ診断装置の処理手順を示すフローチャート図。
【図４】実施の形態１に係る診断処理のタイミング例を示す図。
【図５】実施の形態１に係るメモリ診断装置のモジュール構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、従来技術の課題を解決するために、時分割処理可能なメモリ診断方法を説明する。
より具体的には、本実施の形態に係るメモリ診断方法は、診断処理量が多大なＲＡＭ診断の処理を時分割し、診断対象のＲＡＭが搭載されているシステム（例えば、組み込みシステム）において行われる周期処理の空き時間にＲＡＭ診断の時分割処理を実行する。
これにより、診断処理のための専用の時間が必要なくなり、ＲＡＭが搭載されているシステムにおけるアプリケーションの稼働率に与える影響をなくすことができる。
また、時分割処理を行う場合には、診断対象のＲＡＭの領域を単純に分割することが考えられるが、ＲＡＭ領域を分割したのみでは、分割された領域のメモリセルに対しての読み書きしか実施できないため、カップリングフォルトを検出できない場合がある。
カップリングフォルトとは、ＲＡＭの故障モデルの一つであり、あるメモリセルに対して読み書きを行ったときに他のメモリセルのデータ値が変化するという故障である。
カップリングフォルトを検出するためには、あるメモリセルに注目し、他のメモリセルすべてに読み書きを実施した後に、着目したメモリセルの内容が変化してないか検査する必要がある。
単純にＲＡＭ領域を分割するのみでは、分割した範囲内のみしか読み書きを実施できないので、分割範囲を跨いだカップリングフォルトは検出できない。
本実施の形態では、診断対象のＲＡＭが搭載されているシステムにおいて行われる周期処理の空き時間に診断を行い、システムにおけるアプリケーションの稼働率に与える影響をなくすとともに、カップリングフォルトを検出できるメモリ診断方法を説明する。
【００１０】
まず、本実施の形態に係るメモリ診断方法の原理を説明する。
本実施の形態に係る診断方式では、診断対象のＲＡＭ（Ｍ）をｎ個の部分領域に分割する（Ｍ＝｛ｍ１、ｍ２、…、ｍｎ｝：ｍをベース領域と呼ぶ）（なお、ｎは３以上の整数）。
そして、分割されたベース領域から２つのベース領域の組を選出し、選出された領域に対して非特許文献１に記載の診断方法（以下、Ａｂｒａｈａｍと表記する）を実施する。
次に、他のベース領域の組を選出しＡｂｒａｈａｍを実施していき、全ての組に対してＡｂｒａｈａｍを実施するまで繰り返す。
これにより、全てのＲＡＭ領域に対してＡｂｒａｈａｍを実施したのと同等の処理を、ＲＡＭの各セルに対して実施することができる。
また、ＲＡＭを分割し診断範囲を小さくすることで処理時間を短くすることができる。
つまり、診断を組み込みシステムの周期処理の空き時間に実行することができる。
【００１１】
ベース領域のサイズに関しては、診断対象のシステムに合わせて変更することができる。
ベース領域を小さくした場合、ベース領域のペアごとの処理時間が短くなり空き時間の短いシステムに適用可能となるが、ベース領域のペア数が増えるため、ＲＡＭ全体の診断が完了するまでの時間は長くなる。
一方で、ベース領域を大きくした場合、ベース領域のペアごとの処理時間が長くなり空き時間の大きいシステムにのみ適用可能であるが、ベース領域のペア数が減るため、ＲＡＭ全体の診断が完了するまでの時間は短くなる。
このように、システムが求める診断完了までの時間や周期時間に合わせてベース領域を設定できることは、本実施の形態に係る診断方法の特徴の一つである。
【００１２】
なお、本実施の形態ではベース領域に対してＡｂｒａｈａｍを実行する例を説明するが、カップリングフォルトが検出できるのであれば、他の診断手法を適用してもよい。
【００１３】
本実施の形態に係る診断方法の概要を、例を用いて図１に示す。
図１では、ＲＡＭ２００を３つのベース領域に分けて診断する例を示す（Ｍ＝｛ｍ１、ｍ２、ｍ３｝）。
まず、周期１では、診断対象のベース領域ｍ１とｍ２を選出し、２つのベース領域を１つのＲＡＭと見立ててＡｂｒａｈａｍを実行する。
なお、診断対象として選出されたペース領域を、ターゲット領域１とターゲット領域２と呼ぶ。
図１及び図２では、破線の枠で囲んでいる範囲が診断対象の領域を意味し、また、ターゲット領域１をハッチングで表現し、ターゲット領域２を塗りつぶしで表現する。
次に、周期２では、診断対象としてベース領域ｍ１とｍ３を選出し、２つの領域を１つのＲＡＭと見立ててＡｂｒａｈａｍを実行する。
次に、周期３は、診断対象としてベース領域ｍ２とｍ３を選出し、２つの領域を１つのＲＡＭと見立ててＡｂｒａｈａｍを実行する。
これで、全てのペアに対してＡｂｒａｈａｍの実行が完了する。
【００１４】
本実施の形態に係るメモリ診断方法を実現する構成例を図２に示し、処理手順を図３に示す。
なお、それぞれの図におけるステップ番号（Ｓ１〜Ｓ６）は相互に対応付けられている。
なお、図２において、１００はメモリ診断装置として動作するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１５】
本実施の形態に係るメモリ診断方法はＣＰＵ１００上で動作するソフトウェアとして実装される。
ＣＰＵ１００は、バス３００を経由してＲＡＭ２００に読み書きを実施し、診断を実行する。
なお、本方式と同等の機能をＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのハードウェアに実装してもよい。
【００１６】
ＲＡＭ２００上のある領域には、診断情報と呼ばれるデータが格納されている。
診断情報とは、具体的に、ターゲット領域１の先頭アドレス、ターゲット領域２の先頭アドレス、ターゲット領域のサイズ、ＲＡＭのサイズを示す。
【００１７】
図５は、図２のＣＰＵ１００（メモリ診断装置）のモジュール構成例を示す。
図５において、領域区分部１０１、診断実行部１０２はプログラムで実現される。
レジスタ１０３は、ターゲット領域のデータを格納するために用いられる。
【００１８】
領域区分部１０１は、診断対象のＲＡＭの領域をｎ（ｎは３以上の整数）個のベース領域（部分領域）に区分する。
診断実行部１０２は、ＲＡＭ２００が搭載されている組み込みシステムにおいて行われる周期処理の空き時間ごとに、ｎ個のベース領域から２つのベース領域をターゲット領域として選択し、選択した２つのターゲット領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類のベース領域のペアに対して診断を行う。
診断実行部１０２は、１回の空き時間において、複数ペアの診断を行うようにしてもよい。
【００１９】
次に、本実施の形態に係るＣＰＵ１００の動作シーケンスを示す。
なお、このシーケンスは、組み込みシステムの処理周期にて実行され、アプリケーションが実行されない空き時間に実施される（図４参照）。
【００２０】
まず、ある周期ｎにて診断処理が開始される（Ｓ１）。
次に、診断実行部１０２が、診断情報をＲＡＭ２００から取得し、ＣＰＵ１００のレジスタ１０３に保存する（Ｓ２）。
次に、診断実行部１０２は、診断情報に記述されているターゲット領域１の先頭アドレス、ターゲット領域２の先頭アドレス、ターゲット領域のサイズを用いて診断範囲を決定し（ターゲット領域１とするベース領域及びターゲット領域２とするベース領域を選択し）、診断範囲に対してＡｂｒａｈａｍを実行する（Ｓ３）。
次に、診断実行部１０２は、診断情報のターゲット領域１の先頭アドレス、ターゲット領域２の先頭アドレス、ターゲット領域のサイズ、ＲＡＭの全体サイズを用いて、次の周期ｎ−１に診断するターゲット領域を選出する（Ｓ４）。
この選出のアルゴリズムは、順次ペアを選定するような単純な方式でも、他の方式でもよい。
次に、診断実行部１０２は、Ｓ４で決定した診断情報全てを、ＲＡＭ２００に格納する（Ｓ５）。
以上で、周期ｎの診断処理を完了する（Ｓ６）。
【００２１】
診断前と診断後のＲＡＭ２００のデータを同じにする場合は、診断前にバックアップ用のＲＡＭやターゲット領域とは異なるＲＡＭ２００の領域にターゲット領域のデータ内容をバックアップし、診断後にバックアップしたデータを戻すという機能を追加してもよい。
【００２２】
また、ターゲット領域１とターゲット領域２のサイズは等しくなくともよい。
つまり、領域区分部１０１は、ベース領域ごとの領域サイズを変化させて、ＲＡＭ２００をｎ個のベース領域に区分してもよい。
この場合は、診断実行部１０２は、異なる領域サイズのベース領域をターゲット領域として選択することがある。
また、ベース領域ごとのサイズが一定でない場合は、診断情報の作成時に、次の周期で診断対象となるターゲット領域１とターゲット領域２のサイズを特定し、診断情報にターゲット領域１とターゲット領域２のサイズを記述する必要がある。
【００２３】
なお、本実施の形態では、ＲＡＭ２００が搭載されているシステムが組み込みシステムである例を説明したが、ＲＡＭ２００が搭載されているシステムがどのようなものであって、本実施の形態で示したメモリ診断装置及びメモリ診断方式は適用可能である。
【００２４】
以上、本実施の形態によれば、診断対象のＲＡＭが搭載されているシステムにおいて行われる周期処理の空き時間に診断を行うので、システムにおけるアプリケーションの稼働率に与える影響をなくすことができる。
また、カップリングフォルトを検出できる診断方式による診断を、すべての部分領域のペアに対して行うため、カップリングフォルトを有効に検出すことができる。
【符号の説明】
【００２５】
１００  ＣＰＵ、１０１  領域区分部、１０２  診断実行部、１０３  レジスタ、２００  ＲＡＭ、３００  バス。
【図１】
2012111135.tif 000003
【図２】
2012111135.tif 000004
【図３】
2012111135.tif 000005
【図４】
2012111135.tif 000006
【図５】
2012111135.tif 000007
【手続補正書】
【提出日】平成25年5月31日(2013.5.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分する領域区分処理と、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行う診断実行処理とをプロセッサ装置に実行させることを特徴とするプログラム。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2012111135.tif 000008
【手続補正書】
【提出日】平成25年8月30日(2013.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
部分領域ごとの領域サイズを変化させて、診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分する領域区分部と、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から異なる領域サイズの２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行う診断実行部とを有することを特徴とするメモリ診断装置。
【請求項２】
前記診断実行部は、
１回の空き時間において、部分領域の複数のペアの診断を行うことを特徴とする請求項１に記載のメモリ診断装置。
【請求項３】
部分領域ごとの領域サイズを変化させて、診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分し、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から異なる領域サイズの２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行うことを特徴とするメモリ診断方法。
【請求項４】
部分領域ごとの領域サイズを変化させて、診断対象のメモリの領域をｎ（ｎは３以上の整数）個の部分領域に区分する領域区分処理と、
前記メモリが搭載されているシステムにおいて行われる周期処理の空き時間ごとに、ｎ個の部分領域から異なる領域サイズの２つの部分領域を選択し、選択した２つの部分領域をカップリングフォルトが検出される診断方式により診断する動作を繰り返して、全種類の部分領域のペアに対して診断を行う診断実行処理とをプロセッサ装置に実行させることを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本実施の形態に係る診断方法の概要を、例を用いて図１に示す。
図１では、ＲＡＭ２００を３つのベース領域に分けて診断する例を示す（Ｍ＝｛ｍ１、ｍ２、ｍ３｝）。
まず、周期１では、診断対象のベース領域ｍ１とｍ２を選出し、２つのベース領域を１つのＲＡＭと見立ててＡｂｒａｈａｍを実行する。
なお、診断対象として選出されたベース領域を、ターゲット領域１とターゲット領域２と呼ぶ。
図１及び図２では、破線の枠で囲んでいる範囲が診断対象の領域を意味し、また、ターゲット領域１をハッチングで表現し、ターゲット領域２を塗りつぶしで表現する。
次に、周期２では、診断対象としてベース領域ｍ１とｍ３を選出し、２つの領域を１つのＲＡＭと見立ててＡｂｒａｈａｍを実行する。
次に、周期３は、診断対象としてベース領域ｍ２とｍ３を選出し、２つの領域を１つのＲＡＭと見立ててＡｂｒａｈａｍを実行する。
これで、全てのペアに対してＡｂｒａｈａｍの実行が完了する。
【国際調査報告】
2012111135.tif 000009
2012111135.tif 000010
2012111135.tif 000011