(57)【特許請求の範囲】
【請求項１】
メモリに故障が発生しているか否かを診断するメモリ診断装置であって、
前記メモリを複数の領域に分割し、該分割した複数の領域の中から診断対象とするベース領域を二つ以上選んで読み出しテスト及び書き込みテストを含むメモリ診断を実行し、同じベース領域に対する２回目以降のメモリ診断時には前記書き込みテストのみを行う診断実行部を有することを特徴とするメモリ診断装置。
【請求項２】
前記診断実行部から前記ベース領域に対しての前記メモリ診断が完了したことの通知を受け取り、前記メモリの分割された複数の領域の各々に対してメモリ診断が実行されたか否かを管理し、かつ、前記診断実行部から問い合わせをされた領域がメモリ診断を実行済みか否かを前記診断実行部に回答するベース領域診断管理部と、
前記メモリ診断を実行する領域であるベース領域を選択して前記診断実行部に伝えるベース領域選択部と、
を有し、
前記診断実行部は、前記ベース領域選択部から伝えられたベース領域に対してメモリ診断が実行されたか否かを前記ベース領域診断管理部に問い合わせ、該問い合わせに対する回答に基づいて、前記ベース領域選択部から伝えられたベース領域にメモリ診断を行うことを特徴とする請求項１に記載のメモリ診断装置。
【請求項３】
メモリに故障が発生しているか否かを診断する処理をプログラマブルロジックコントローラに実行させるメモリ診断プログラムであって、
前記プログラマブルロジックコントローラに、
前記メモリを複数の領域に分割する処理と、
前記分割した複数の領域の中から診断対象とするベース領域を二つ以上選んで読み出しテスト及び書き込みテストを含むメモリ診断を実行し、同じベース領域に対する２回目以降のメモリ診断時には前記書き込みテストのみを行う処理とを行わせることを特徴とするメモリ診断プログラム。
【請求項４】
前記プログラマブルロジックコントローラを、
前記ベース領域に対して前記メモリ診断を行う診断実行部と、
前記診断実行部から前記ベース領域に対しての前記メモリ診断が完了したことの通知を受け取り、前記メモリの分割された複数の領域の各々に対してメモリ診断が実行されたか否かを管理し、かつ、前記診断実行部から問い合わせをされた領域がメモリ診断を実行済みか否かを前記診断実行部に回答するベース領域診断管理部と、
前記メモリ診断を実行する領域であるベース領域を選択して前記診断実行部に伝えるベース領域選択部と、
として機能させ、
前記診断実行部は、前記ベース領域選択部から伝えられたベース領域に対してメモリ診断が実行されたか否かを前記ベース領域診断管理部に問い合わせ、該問い合わせに対する回答に基づいて、前記ベース領域選択部から伝えられたベース領域にメモリ診断を行うことを特徴とする請求項３に記載のメモリ診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの故障を検出するメモリ診断装置及びメモリ診断プログラムに関する。
【背景技術】
【０００２】
従来、特許文献１に開示されるように、診断対象となるメモリを複数の領域に分割して、分割された領域の組合せに対して、公知の２種類のメモリ診断を組み合わせて実行することで、メモリの故障を検出する技術が知られている。【０００３】
一般に、安全機器に適用されるメモリの診断では、カップリング故障及び退縮故障と呼ばれる二種類の故障を検出することが求められる。カップリング故障とは、メモリ中のあるセルの値によって、他のセルが勝手に変化する故障である。退縮故障は、メモリ中のあるセルの値が０又は１に固定されてしまい、変化しなくなる故障である。【０００４】
カップリング故障及び退縮故障を検出するために必要な手順は、非特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１５４１０５号公報
【非特許文献】
【０００６】
【非特許文献１】ＲＡＶＩＮＤＲＡ  ＮＡＩＲ，  ＳＡＴＩＳＨ．  Ｍ．  ＴＨＡＴＴＥ，  ＡＮＤ  ＪＡＣＯＢ  Ａ．  ＡＢＲＡＨＡＭ：  Ｅｆｆｉｃｉｅｎｔ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｔｅｓｔｉｎｇ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｉｅｓ．  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＣＯＭＰＵＴＥＲＳ，  ＶＯＬ．  ｃ−２７，  Ｎｏ．６，ＪＵＮＥ  １９７８  ｐｐ．５７２−５７６
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に開示される発明は、メモリを複数の領域に分割し、分割した領域の組合せに対して同じ処理を行って故障を診断しているため、メモリの故障を検出する上で省略可能な手順が繰り返し行われ、処理時間が長くなってしまうという問題があった。【０００８】
本発明は、上記に鑑みてなされたものであって、診断率を下げずにメモリ診断に要する処理時間を短縮するメモリ診断装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、メモリに故障が発生しているか否かを診断するメモリ診断装置であって、メモリを複数の領域に分割し、分割した複数の領域の中から診断対象とするベース領域を二つ以上選んで読み出しテスト及び書き込みテストを含むメモリ診断を全ての組に対して実行し、同じベース領域に対しての２回目以降のメモリ診断時には書き込みテストのみを行う診断実行部を有することを特徴とする。
【発明の効果】
【００１０】
本発明にかかるメモリ診断装置は、診断率を下げずにメモリ診断に要する処理時間を短縮できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるメモリ診断装置の機能構成を示す図
【図２】実施の形態１にかかるメモリ診断装置を実現するプログラマブルロジックコントローラのハードウェア構成を示す図
【図３】実施の形態１にかかるメモリ診断装置の構成を示す図
【図４】実施の形態１にかかるメモリ診断装置の動作の流れを示すフローチャート
【図５】実施の形態１にかかるメモリ診断装置の動作の一例を模式的に示す図
【図６】実施の形態１にかかるメモリ診断装置の動作の別の一例を模式的に示す図
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態にかかるメモリ診断装置及びメモリ診断プログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、実施の形態１にかかるメモリ診断装置の機能構成を示す図である。メモリ診断装置１０は、メモリの複数に分割された領域のいずれかに対してメモリ診断が完了したことの通知を、後述する診断実行部１３から受け取り、分割された領域の各々に対してメモリ診断を実行済か否かを管理し、かつ診断実行部１３から問い合わせをされた領域がメモリ診断を実行済かを診断実行部１３に回答するベース領域診断管理部１１を備える。また、メモリ診断装置１０は、複数の領域に分割されたメモリの一部であり、メモリ診断を実行する基本単位となる領域であるベース領域を選択して診断実行部１３に伝えるベース領域選択部１２を備える。また、メモリ診断装置１０は、ベース領域選択部１２から伝えられたベース領域が診断済か否かをベース領域診断管理部１１に問い合わせ、ベース領域選択部１２から伝えられたベース領域に読み出しテスト及び書き込みテストを実行してメモリ診断を行う診断実行部１３を備える。診断実行部１３は、ベース領域内のセルごとに読み出しテスト及び書き込みテストを行う。
【００１４】
図２は、実施の形態１にかかるメモリ診断装置を実現するプログラマブルロジックコントローラのハードウェア構成を示す図である。以下、プログラマブルロジックコントローラをＰＬＣ（Programmable  Logic  Controller）と表記する。ＰＬＣ５０は、制御対象機器８０を制御する装置である。ＰＬＣ５０は、メモリ診断プログラムを実行してソフトウェア処理を行う処理回路である演算装置５１、演算装置５１がワークエリアに用いるメモリ５２、情報を記憶する記憶装置５３及び制御対象機器８０との通信用の通信装置５４を備えている。演算装置５１には、中央処理装置（Central  Processing  Unit：  ＣＰＵ）又はシステムＬＳＩ（Large  Scale  Integration）を用いることができる。メモリ５２は、ランダムアクセスメモリ（Random  access  memory：  ＲＡＭ）を用いることができる。記憶装置５３は、ハードディスクドライブ又はソリッドステートドライブを用いることができる。
【００１５】
図３は、実施の形態１にかかるメモリ診断装置の構成を示す図である。メモリ診断装置１０は、ＰＬＣ５０がメモリ診断プログラムを実行してソフトウェア処理を行うことによって実現されている。すなわち、インストールされたメモリ診断プログラム６０を演算装置５１で実行中のＰＬＣは、メモリ診断装置１０となっている。ベース領域診断管理部１１、ベース領域選択部１２及び診断実行部１３は、記憶装置５３に記憶されたメモリ診断プログラム６０を実行する処理回路である演算装置５１により、実現される。また、複数の処理回路が連携して上記機能を実行してもよい。
【００１６】
メモリ診断プログラム６０は、ＰＬＣ５０が制御対象機器８０を制御するために実行する制御プログラム７０のバックグラウンドで実行される。すなわち、演算装置５１は、制御プログラム７０を実行して制御対象機器の制御を行いつつ、メモリ診断プログラム６０を実行してメモリ５２のメモリ診断を行う。
【００１７】
実施の形態１にかかるメモリ診断装置１０は、診断対象となるメモリ５２を複数の領域に分割し、分割した領域の中から診断対象とする領域を二つ以上選び、公知のメモリ診断を実行する。なお、以下の説明では、メモリ５２の分割された複数の領域のうち、診断対象とする領域を「ベース領域」と言う。メモリ診断装置１０は、ベース領域にする領域の組合せを変えてメモリ診断を繰り返し行い、分割された領域の全ての組合せをベース領域とする。上記のようにして、メモリ診断装置１０は、メモリ５２の全てのセル間でのカップリング故障を検出する。
【００１８】
メモリ診断の際には、診断実行部１３は、ベース領域に対してメモリ診断を実行したことがあれば、メモリ診断を実行したことのあるベース領域内に対する読み出しテストは省略する。退縮故障及びカップリング故障を検出できる診断手順は非特許文献１に開示されているように決まっており、メモリ診断を実行済の領域に対しての読み出しテストを省略しても、全てのセルを対象にして退縮故障及びカップリング故障を検出できる必要手順は満たされる。メモリ診断を実行済の領域に対しての読み出しテストを省略することにより、読み出しテストを省略しない場合と比較して短い時間でカップリング故障を検出可能なメモリ診断を完了できる。
【００１９】
なお、以下の動作の説明では、メモリの分割された領域から二つを選んでベース領域とする場合を例にするが、後述するように分割された領域の三つ以上を選んでベース領域にしても良い。
【００２０】
図４は、実施の形態１にかかるメモリ診断装置の動作の流れを示すフローチャートである。ステップＳ１０１において、メモリ診断装置１０は、メモリの分割された領域の中から診断対象であるベース領域とする領域を二つ選択する。具体的には、診断実行部１３は、ベース領域選択部１２にメモリ診断の対象とするベース領域を問い合わせる。ベース領域選択部１２は、診断対象とするベース領域を選択し、診断実行部１３に伝える。なお、ベース領域の選択の順序は特定の順序に限定されることはなく、メモリ５２の分割された領域の全ての組合せが最終的に選択されるのであればどのような順序であっても構わない。
【００２１】
ステップＳ１０２において、メモリ診断装置１０は、選択したベース領域に対してメモリ診断を実行したことがあるかを判定する。具体的には、診断実行部１３は、ベース領域選択部１２から伝えられたベース領域がメモリ診断を実行済であるかをベース領域診断管理部１１に問い合わせて、選択したベース領域が診断済であるかを確認する。
【００２２】
ベース領域選択部１２が選択したベース領域に以前にメモリ診断を実行していなければ、ステップＳ１０２でＮｏとなり、ステップＳ１０３において、診断実行部１３は、ベース領域診断管理部１１からの回答に基づいて、ベース領域選択部１２が選択したベース領域に対してメモリ診断を実行する。ここでのメモリ診断は、読み出し診断及び書き込み診断を行う一般的なメモリ診断である。ステップＳ１０３が終了したら、ステップＳ１０５に進む。
【００２３】
ベース領域選択部１２が選択したベース領域に以前にメモリ診断を実行していれば、ステップＳ１０２でＹｅｓとなり、ステップＳ１０４において、診断実行部１３は、ベース領域診断管理部１１からの回答に基づいて、メモリ診断を実行したことのあるベース領域に対して書き込みテストのみを実行する。ステップＳ１０４が終了したら、ステップＳ１０５に進む。
【００２４】
ステップＳ１０５において、メモリ診断装置１０は、メモリ診断を実行したベース領域を診断済みに設定する。具体的には、診断実行部１３は、ベース領域に対してのメモリ診断の実行完了後、診断を終えたベース領域をベース領域診断管理部１１に伝える。ベース領域診断管理部１１は、診断実行部１３から伝えられたベース領域が診断実行済であることを記憶する。
【００２５】
ステップＳ１０６において、メモリ診断装置１０は、次に診断すべき領域があるか否かを判断する。具体的には、診断実行部１３は、ベース領域診断管理部１１に対してメモリ５２の分割された領域の中で次に診断すべき領域を問い合わせる。ベース領域診断管理部１１から次に診断するベース領域が返ってこなければ、診断実行部１３は分割されたメモリ５２の全ての領域の組合せに対してメモリ診断を実行しており、次に診断すべきベース領域は無いと判断し（ステップＳ１０６でＮｏ）、メモリ診断を終了する。診断実行部１３は、次に診断すべき領域がベース領域診断管理部１１から返ってきた場合は、次に診断すべきベース領域はあると判断し（ステップＳ１０６でＹｅｓ）、ステップＳ１０１に進む。
【００２６】
図５は、実施の形態１にかかるメモリ診断装置の動作の一例を模式的に示す図である。本例では、メモリ５２を領域ｍ１、ｍ２及びｍ３の三つの領域に分割している。図５において、破線で囲まれた領域がベース領域である。
【００２７】
メモリ診断装置１０は、周期ｔでは、領域ｍ１及びｍ２をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋１では、領域ｍ１及びｍ３をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋２では、領域ｍ２及びｍ３をベース領域にして公知のメモリ診断を行う。ここでの公知のメモリ診断とは、メモリ５２のセルに対して読み出しテスト及び書き込みテストを実行し、期待値と一致するかを判定することによってメモリの故障を検出するメモリ診断である。公知のメモリ診断には、Ａｂｒａｈａｍ及びＭａｒｃｈを挙げることができ、これらの公知のメモリ診断とは、「メモリのセルに対して値を書き込み及び読み出しを実施し、読み出した値が書き込んだ値と一致するかどうか確認する」という処理を、診断の処理時間及び診断率にあわせて、処理を実施するセルの順序及びその組合せが異なる様々なアルゴリズムで実施する診断手法を示す。
【００２８】
周期ｔでは、メモリ診断を実行済の領域はないため、診断実行部１３は、ベース領域である領域ｍ１及びｍ２に対して読み出しテスト及び書き込みテストを行う。
【００２９】
周期ｔ＋１では、周期ｔにて領域ｍ１に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ１を対象とした読み出しテストは省略し、書き込みテストのみを行う。一方、診断実行部１３は、ベース領域である領域ｍ３に対して読み出しテスト及び書き込みテストを行う。
【００３０】
周期ｔ＋２では、周期ｔにて領域ｍ２に対して、周期ｔ＋１にて領域ｍ３に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ２及びｍ３を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００３１】
図６は、実施の形態１にかかるメモリ診断装置の動作の別の一例を模式的に示す図である。本例では、メモリ５２をｍ１からｍ５の五つの領域に分割している。また、本例では、メモリ診断装置１０は、分割された領域のうちの三つを選択してベース領域とする。図６において、破線で囲まれた領域がベース領域である。
【００３２】
メモリ診断装置１０は、周期ｔでは、領域ｍ１、ｍ２及びｍ３をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋１では、領域ｍ１、ｍ２及びｍ４をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋２では、領域ｍ１、ｍ２及びｍ５をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋３では、領域ｍ１、ｍ３及びｍ４をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋４では、領域ｍ１、ｍ３及びｍ５をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋５では、領域ｍ１、ｍ４及びｍ５をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋６では、領域ｍ２、ｍ３及びｍ４をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋７では、領域ｍ２、ｍ３及びｍ５をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋８では、領域ｍ２、ｍ４及びｍ５をベース領域にして公知のメモリ診断を行う。メモリ診断装置１０は、周期ｔ＋９では、領域ｍ３、ｍ４及びｍ５をベース領域にして公知のメモリ診断を行う。
【００３３】
周期ｔでは、メモリ診断を実行済の領域はないため、診断実行部１３は、ベース領域である領域ｍ１、ｍ２及びｍ３に対して読み出しテスト及び書き込みテストを行う。
【００３４】
周期ｔ＋１では、周期ｔで領域ｍ１及びｍ２に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ１及びｍ２を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００３５】
周期ｔ＋２では、周期ｔで領域ｍ１及びｍ２に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ１及びｍ２を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００３６】
周期ｔ＋３では、周期ｔで領域ｍ１及びｍ３に対して、周期ｔ＋１で領域ｍ４に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ１、ｍ３及びｍ４を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００３７】
周期ｔ＋４では、周期ｔで領域ｍ１及びｍ３に対して、周期ｔ＋２で領域ｍ５に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ１、ｍ３及びｍ５を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００３８】
周期ｔ＋５では、周期ｔで領域ｍ１に対して、周期ｔ＋１で領域ｍ４に対して、周期ｔ＋２で領域ｍ５に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ１、ｍ４及びｍ５を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００３９】
周期ｔ＋６では、周期ｔで領域ｍ２及びｍ３に対して、周期ｔ＋１で領域ｍ４に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ２、ｍ３及びｍ４を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００４０】
周期ｔ＋７では、周期ｔで領域ｍ２及びｍ３に対して、周期ｔ＋２で領域ｍ５に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ２、ｍ３及びｍ５を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００４１】
周期ｔ＋８では、周期ｔで領域ｍ２に対して、周期ｔ＋１で領域ｍ４に対して、周期ｔ＋２で領域ｍ５に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ２、ｍ４及びｍ５を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００４２】
周期ｔ＋９では、周期ｔでｍ３に対して、周期ｔ＋１で領域ｍ４に対して、周期ｔ＋２で領域ｍ５に対してメモリ診断を実行済であるため、診断実行部１３は、領域ｍ３、ｍ４及びｍ５を対象とした読み出しテストは省略し、書き込みテストのみを行う。
【００４３】
実施の形態１にかかるメモリ診断装置１０は、読み出しテストを実行済の領域をベース領域とするメモリ診断時には、読み出しテストを実行済のベース領域に対しての読み出しテストを省略することにより冗長な処理を省く。これにより、実施の形態１にかかるメモリ診断装置１０は、診断率を下げずに処理時間を短縮することができる。
【００４４】
上記の説明においては、ＰＬＣ５０の演算装置５１が制御プログラム７０のバックグラウンドでメモリ診断プログラム６０を実行してメモリ５２のメモリ診断を実行する場合を例に説明したが、ＰＬＣ５０の外部にコンピュータを接続し、コンピュータにメモリ診断プログラムを実行させてメモリ診断を行うこともできる。ＰＬＣ５０の外部に接続したコンピュータにメモリ診断プログラムを実行させてメモリ診断を行うことにより、ＰＬＣ５０の演算装置５１の負荷を低減することができ、ＰＬＣ５０による制御対象機器８０の制御動作を確実に行うことが可能となる。
【００４５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００４６】
１０  メモリ診断装置、１１  ベース領域診断管理部、１２  ベース領域選択部、１３  診断実行部、５０  ＰＬＣ、５１  演算装置、５２  メモリ、５３  記憶装置、６０  メモリ診断プログラム、７０  制御プログラム、８０  制御対象機器。
【要約】
メモリに故障が発生しているか否かを診断するメモリ診断装置（１０）であって、メモリを複数の領域に分割し、分割した複数の領域の中から診断対象とするベース領域を二つ以上選んで読み出しテスト及び書き込みテストを含むメモリ診断を実行し、同じベース領域に対する２回目以降のメモリ診断時には書き込みテストのみを行う診断実行部（１３）を有する。診断実行部（１３）は、記憶装置に記憶されたメモリ診断プログラムを実行する処理回路である演算装置により、実現される。【図１】
0006042046.tif 000002
【図２】
0006042046.tif 000003
【図３】
0006042046.tif 000004
【図４】
0006042046.tif 000005
【図５】
0006042046.tif 000006
【図６】
0006042046.tif 000007