(57)【要約】【課題】低コストでソフト処理も少なく、ＦＬＡＳＨメモリ等のデータ化けを精度良く検出することができる不揮発性メモリのデータ化け検出方法を提供すること。【解決手段】ステップ３００では、総和（調整総和）の値が、ＳＵＭ規定値に一致するか否かを判定する。ステップ３４０では、調整総和とＳＵＭ規定値が一致しないので、データ化けが発生しており、よってＦＬＡＳＨ異常が発生したとみなす。ステップ３１０では、正側差分総和の値が、正側差分規定値に一致するか否かを判定する。ステップ３２０では、負側差分総和の値が、負側差分規定値に一致するか否かを判定する。ステップ３３０では、前記ステップ３００〜３２０にて、調整総和とＳＵＭ規定値が一致し、正側差分総和が正側差分規定値とが一致し、負側差分総和と負側差分規定値と一致すると判定されたので、データ化けが発生しておらず、ＦＬＡＳＨ正常とみなす。【選択図】図５
2004021527.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリの検出領域のデータ化けを検出する検出方法において、
前記検出領域における異なるアドレス間のデータの差分のうち、正側の差分の総和を求め、該正側の差分の総和に基づいて前記データ化けの検出を行うことを特徴とする不揮発性メモリのデータ化け検出方法。
【請求項２】
不揮発性メモリの検出領域のデータ化けを検出する検出方法において、
前記検出領域における異なるアドレス間のデータの差分のうち、負側の差分の総和を求め、該負側の差分の総和に基づいて前記データ化けの検出を行うことを特徴とする不揮発性メモリのデータ化け検出方法。
【請求項３】
不揮発性メモリの検出領域のデータ化けを検出する検出方法において、
前記検出領域における異なるアドレス間のデータの差分のうち、正側の差分の総和及び負側の差分の総和をそれぞれ求め、該正側の差分の総和及び負側の差分の総和に基づいて前記データ化けの検出を行うことを特徴とする不揮発性メモリのデータ化け検出方法。
【請求項４】
前記異なるアドレスが、隣り合うアドレスであることを特徴とする前記請求項１〜３のいずれかに記載の不揮発性メモリのデータ化け検出方法。
【請求項５】
前記総和と所定の規定値とを比較し、前記総和が規定値と異なっている場合には、前記データ化けが発生していると判定することを特徴とする前記請求項１〜４のいずれかに記載の不揮発性メモリのデータ化け検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＦＬＡＳＨメモリ等のデータ化けを精度良く検出することができる不揮発性メモリのデータ化け検出方法に関する。
【０００２】
【従来の技術】
従来より、不揮発性メモリ（特にＦＬＡＳＨメモリ）に記憶されているデータの化けを検出する方法として、ＳＵＭ検査が実施されている（例えば特開平９−２１２３７９号公報参照）。
【０００３】
このＳＵＭ検査は、不揮発性メモリの記憶領域において、その全体又は部分のデータを全て加算し、この加算した値に調整値を加えた演算値と予め設定された規定値（比較値）とを比較し、演算値が比較値と異なる場合には、データ化けが発生していると判定する検査方法である。
【０００４】
具体的には、図７の例えば▲１▼に示す様に、各アドレスのデータ（数値）を順次加算して合計値を求め、この合計値に調整値を加えて演算値を求め、この演算値と比較値とを比較し、演算値と比較値とが一致した場合には、データ化けが無い（ＯＫ）としている。
【０００５】
一方、図７の例えば▲２▼に示す様に、各アドレスのデータから同様に演算値を求め、この演算値と比較値とを比較し、演算値と比較値とが一致しない場合には、データ化けが発生している（ＮＧ）としている。
尚、図７では、メッシュの部分がデータが化けが発生している箇所である。
【０００６】
【発明が解決しようとする課題】
しかしながら、上述したＳＵＭ検査を実施した場合でも、データ化けを完全には検出できず、より高い精度のデータ化けの検出方法が望まれていた。
つまり、従来のＳＵＭ検査では、図７の例えば▲３▼及び▲４▼に示す様に、複数の箇所（アドレス）でデータ化けが発生した場合、変化したデータの値によっては、データの演算値が比較値と一致してしまい、データ化けの発生を検出できないことがある。
【０００７】
この対策として、例えばデータを記憶した不揮発性メモリと同様な記憶領域を持つ他の不揮発性メモリを用いて、同様なデータを記憶し、ＢＹＴＥ単位もしくはＷＯＲＤ単位で比較するという方法が考えられるが、その場合には、コストが上がりソフト処理も増加してしまうという問題があり、好ましくない。
【０００８】
本発明は、前記課題を解決するためになされたものであり、低コストでソフト処理も少なく、ＦＬＡＳＨメモリ等のデータ化けを精度良く検出することができる不揮発性メモリのデータ化け検出方法を提供することである。
【０００９】
【課題を解決するための手段及び発明の効果】
（１）請求項１の発明は、不揮発性メモリの検出領域のデータ化けを検出する検出方法に関するものであり、本発明では、検出領域における異なるアドレス間のデータの差分のうち、正側の差分の総和を求め、その正側の差分の総和に基づいてデータ化けの検出を行うことを特徴としている。
【００１０】
不揮発性メモリの検査領域には多数のデータが記憶されており、データ化けのチェックが必要であるが、各アドレスにおいて正側及び負側にデータが化けた場合には、従来のＳＵＭ検査では十分にデータ化けを検出できないことがある。
本発明では、異なるアドレス間のデータの正側の差分の総和を求め、この正側の差分の総和に基づいてデータ化けを検出するので、上述した複数のアドレスにおけるデータ化けの様に、ＳＵＭ検査で検出できないデータ化けをも検出することができる。
【００１１】
つまり、複数のアドレスにてデータが化けた場合でも、正側の差分の総和をとることにより、正側にデータが化けた状態を把握できるので、一層正確にデータ化けを検出することができる。
また、本発明では、データ化けの検出のために別な不揮発性メモリを使用する必要がなく、コスト的に有利であり、しかも、そのためのソフト処理も大きく増加しないという利点がある。
【００１２】
尚、本発明のデータ化けの検出方法は、従来のＳＵＭ検査と組み合わせることにより、一層正確にデータ化けを検出することができる（以下同様）。
（２）請求項２の発明は、不揮発性メモリの検出領域のデータ化けを検出する検出方法に関するものであり、本発明では、検出領域における異なるアドレス間のデータの差分のうち、負側の差分の総和を求め、その負側の差分の総和に基づいてデータ化けの検出を行うことを特徴としている。
【００１３】
本発明は、前記請求項１の発明とは、負側の差分の総和を用いることが異なっている。
本発明でも、複数のアドレスにてデータが化けた場合でも、負側の差分の総和をとることにより、負側にデータが化けた状態を把握できるので、一層正確にデータ化けを検出することができる。
【００１４】
また、本発明でも、別な不揮発性メモリ及び大きなソフト処理が不要である。
（３）請求項３の発明は、不揮発性メモリの検出領域のデータ化けを検出する検出方法に関するものであり、検出領域における異なるアドレス間のデータの差分のうち、正側の差分の総和及び負側の差分の総和をそれぞれ求め、その正側の差分の総和及び負側の差分の総和に基づいてデータ化けの検出を行うことを特徴としている。
【００１５】
本発明は、前記請求項１及び請求項２の発明を組み合わせたものである。
本発明では、複数のアドレスにて例えば正側及び負側にデータが化けた場合でも、正側及び負側の差分の総和をそれぞれとることにより、正側及び負側にデータが化けた状態を把握できるので、より一層正確にデータ化けを検出することができる。
【００１６】
また、本発明でも、別な不揮発性メモリ及び大きなソフト処理が不要である。
（４）請求項４の発明では、異なるアドレスが、隣り合うアドレスであることを特徴としている。
本発明は、差分をとる場合の異なるアドレスの関係を例示したものである。
【００１７】
この隣り合うアドレスのデータの差分をとる場合には、演算処理が最も容易であるので好ましい。尚、隣り合うアドレスとは、所定の配列で配置された多数のアドレスのうち、その順序に沿った隣り合うアドレスのことである。
また、隣り合うアドレス以外にも、各種の異なるアドレスを採用することができる。例えば、あるアドレスを基準とし、その基準となるアドレスのデータと他のアドレスのデータの差分をとる方法など、各種の方法を採用できる。
【００１８】
（５）請求項５の発明では、総和と所定の規定値（比較値）とを比較し、総和が規定値と異なっている場合には、データ化けが発生していると判定する。
本発明は、データ化けの判定方法を例示したものである。
尚、データを合計した総和に調整値を加えて演算値を求め、この演算値と規定値とを比較してもよい。
【００１９】
【発明の実施の形態】
次に、本発明の不揮発性メモリのデータ化け検出方法の実施の形態の例（実施例）について、図面に基づいて説明する。
（実施例）
ａ）まず、本実施例の不揮発性メモリのデータ化け検出方法を実施するハード構成について説明する。
【００２０】
本実施例の不揮発性メモリのデータ化け検出方法は、例えば車両の制御を行う電子制御装置にて、その不揮発性メモリ（特にＦＬＡＳＨメモリ）のデータ化けを検出する場合に用いられる方法である。
図１に示す様に、前記電子制御装置（ＥＣＵ）１は、周知のＣＰＵ３、ＲＯＭ５、ＲＡＭ７、ＦＬＡＳＨメモリ９、ＥＥＰＲＯＭ１１、入力ポート１３、出力ポート１５等を備えており、本実施例では、ＦＬＡＳＨメモリ９のデータ化けを、ＳＵＭ検査及び以下に詳述するデータの差分の総和を利用した検査方法により検出する。
【００２１】
ｂ）次に、前記ＦＬＡＳＨメモリ９のデータ化け検出方法の手順について説明する。
ここでは、図２（ａ）に示す様に、ＦＬＡＳＨメモリ９のデータが▲１▼〜▲８▼のアドレス順に並んでいる場合を考える。また、図２（ｂ）に示すｉ〜ｉｖのデータは、ＦＬＡＳＨメモリ９のデータ化け（ＦＬＡＳＨ化け）の検査対象外のエリアである例えばＥＥＰＲＯＭ１１に記憶されているものとする。
【００２２】
尚、図２（ｂ）において、ｉはＳＵＭ検査用の調整データ（調整値）、ｉｉはＳＵＭ規定値（ＳＵＭ検査用の正しい値である比較値）、ｉｉｉは正側差分規定値（正側の差分の総和の正しい値である比較値）、ｉｖは負側差分規定値（負側の差分の総和の正しい値である比較値）である。
【００２３】
・まず、本実施例では、図２（ｃ）に示す様に、ＳＵＭ検査を実施する。
具体的には、図２（ａ）の▲１▼〜▲８▼の各アドレスのデータを合計して、その総和（単純総和：２８０）を求めるとともに、単純総和に調整値（２０）を加えて演算値（即ち調整総和：３００）を求める。
【００２４】
そして、データ化けが無い場合には、この実際の演算によって求めた調整総和と、正しい値であるＳＵＭ規定値とが一致するはずであるので、両値が一致しない場合には、データ化けが発生しているとみなす。尚、ここでは、データ化けは無い場合を挙げているので、調整総和とＳＵＭ規定値とは一致している。
【００２５】
・次に、図２（ｄ）に示す様に、データの差分の総和を利用した検査を行う。具体的には、図２（ａ）のデータを用いて、隣り合うアドレスの差分を求める。つまり、後のアドレスのデータから前のアドレスのデータを引いて差分を求める処理を、アドレスの順番に沿って順次実施する。これにより、正側及び負側の差分の値が得られる。
【００２６】
このうち、正側の差分同士を合計して正側の差分の合計（正側差分総和：１１０）を求めるとともに、負側の差分同士を合計して負側の差分の合計（負側差分総和：−１１０）を求める。
そして、データ化けが無い場合には、この実際の演算によって求めた正側差分総和と、正しい値である正側差分規定値とが一致するはずであるので、両値が一致しない場合には、データ化けが発生しているとみなす。同様に、実際の演算によって求めた負側差分総和と、正しい値である負側差分規定値とが一致しない場合には、データ化けが発生しているとみなす。尚、ここでは、データ化けは無い場合を挙げているので、正側差分総和と正側差分規定値とが一致するとともに、負側差分総和と負側差分規定値とが一致している。
【００２７】
この様に、本実施例では、ＳＵＭ検査の調整総和がＳＵＭ規定値に一致し、正側差分総和が正側差分規定値に一致し、負側差分総和が負側差分規定値が一致した場合には、データ化けが発生していないと判定するのである。
ｃ）次に、上述したＦＬＡＳＨメモリ９のデータ化け検出方法の手順を、図３〜図５のフローチャートに基づいて、より詳細に説明する。
【００２８】
▲１▼ＳＵＭ検査処理
図３にＳＵＭ検査処理の手順を示す様に、まず、ステップ１００では、データ化けの検査領域のアドレスである対象エリアアドレスを、検査の最初のアドレスである対象エリア開始アドレス（例えば図２（ａ）の▲１▼）に設定する。
【００２９】
続くステップ１１０では、加算を行う総和を０に設定する。
続くステップ１２０では、総和に対象エリアアドレスの内容（データ）を加算して更新する。
続くステップ１３０では、対象エリアアドレスをインクリメント（１だけ増加）する。
【００３０】
続くステップ１４０では、対象エリアアドレスが、検査の最後のアドレスである対象エリア終了アドレス（例えば図２（ａ）の▲８▼）以上か否かを判定し、ここで肯定判断されるとステップ１５０に進み、一方否定判断されると前記ステップ１２０に戻る。
【００３１】
ステップ１５０では、検査領域の全てのアドレスのデータの加算が終了したので、その総和（単純総和）に調整値を加算した値を、新たな総和（調整総和）として設定（更新）し、一旦本処理を終了する。
本処理により、ＳＵＭ検査に用いる実際の演算値である調整総和を求めることができる。
【００３２】
▲２▼正負差分演算処理
図４に正負差分演算処理の手順を示す様に、ステップ２００では、対象エリアアドレスを、対象エリア開始アドレスに設定する。
続くステップ２１０では、正側差分総和及び負側差分総和を、それぞれ０に設定する。
【００３３】
続くステップ２２０では、対象エリアアドレスをインクリメントする。
続くステップ２３０では、対象エリアアドレスの内容から（対象エリアアドレス−１）の内容を引いた値、即ち、隣り合うアドレスのうち、順序の後のアドレスのデータから順序の前のアドレスのデータを引いた値を、差分として設定する。
【００３４】
続くステップ２４０では、その差分が０以上か否か、即ち正（但し０を含む）か負かを判定する。ここで、差分が正であると判定されるとステップ２５０に進み、一方負であると判定されるとステップ２６０に進む。
ステップ２５０では、差分が正であるので、正側差分総和にその差分を加えて、正側差分総和を更新する。
【００３５】
一方、ステップ２６０では、差分が負であるので、負側差分総和にその差分を加えて、負側差分総和を更新する。
続くステップ２７０では、対象エリアアドレスをインクリメントする。
続くステップ２８０では、対象エリアアドレスが対象エリア終了アドレス以上か否かを判定し、ここで肯定判断されると一旦本処理し、一方否定判断されると前記ステップ２３０に戻る。
【００３６】
本処理により、正側差分総和及び負側差分総和をそれぞれ求めることができる。
▲３▼データ化け検出処理
図５にデータ化け検出処理の手順を示す様に、ステップ３００では、総和（調整総和）の値が、ＳＵＭ規定値に一致するか否かを判定する。ここで肯定判断されるとステップ３１０に進み、一方否定判断されるとステップ３４０に進み。
【００３７】
ステップ３４０では、調整総和とＳＵＭ規定値が一致しないので、データ化けが発生しており、よってＦＬＡＳＨ異常が発生したとみなして、一旦本処理を終了する。
尚、この場合には、例えばＦＬＡＳＨ異常を記憶するとともに、以後このＦＬＡＳＨメモリ９のデータを使用しないようにする等の対策をとることができる。
【００３８】
一方、ステップ３１０では、正側差分総和の値が、正側差分規定値に一致するか否かを判定する。ここで肯定判断されるとステップ３２０に進み、一方否定判断されると前記ステップ３４０に進み、同様な処理を行う。つまり、正側差分総和と正側差分規定値とが一致しない場合には、ＦＬＡＳＨ異常が発生したとみなす。
【００３９】
ステップ３２０では、負側差分総和の値が、負側差分規定値に一致するか否かを判定する。ここで肯定判断されるとステップ３３０に進み、一方否定判断されると前記ステップ３４０に進み、同様な処理を行う。つまり、負側差分総和と負側差分規定値とが一致しない場合には、ＦＬＡＳＨ異常が発生したとみなす。
【００４０】
ステップ３３０では、前記ステップ３００〜３２０にて、調整総和とＳＵＭ規定値とが一致し、正側差分総和と正側差分規定値とが一致し、負側差分総和と負側差分規定値とが一致すると判定されたので、データ化けが発生しておらず、ＦＬＡＳＨ正常とみなして、一旦本処理を終了する。
【００４１】
この様に、本実施例では、調整総和とＳＵＭ規定値とが一致し、正側差分総和と正側差分規定値とが一致し、負側差分総和と負側差分規定値とが一致した場合には、ＦＬＡＳＨメモリ９が正常とみなし、一方、そのいずれか一つでも一致しない場合には、ＦＬＡＳＨメモリ９が異常とみなすので、ＦＬＡＳＨメモリ９におけるデータ化けの検出を、従来より一層精度良く行うことができる。
【００４２】
ｄ）次に、本実施例のＦＬＡＳＨメモリ９のデータ化け検出方法を適用した具体例について説明する。
図６に示す様に、データ化けが無い状態▲１▼から４箇所にデータ化けがある状態▲６▼までを考える。ここでは、図のメッシュの部分がデータ化けの箇所である。
【００４３】
図６から明らかな様に、従来方法でも、データ化けが１箇所の場合には、ＳＵＭ検査にて、最終判定がＮＧ（ＦＬＡＳＨ異常）となり、データ化けの発生を検出できるが、データ化けが２箇所以上となると、データ化けした数値によっては、最終判定がＯＫ（ＦＬＡＳＨ正常）となり、データ化けを精度良く検出することができないことがある。例えば従来方法の▲３▼〜▲６▼参照。
【００４４】
それに対して、本実施例の場合には、ＳＵＭ検査だけでなく、正側差分総和による検査と負側差分総和による検査とを行うので、データ化けの箇所が複数ある場合でも、正側差分総和による検査か負側差分総和による検査のいずれかにより、データ化けを精度良く検出することができる。例えば本実施例の検査方法の▲３▼〜▲６▼参照。
【００４５】
この様に、従来のＳＵＭ検査だけでは、複数のアドレスにデータ化けがある場合には、データ化けを検出できないことがあるが、本実施例によれば、複数のアドレスにデータ化けがある場合でも、そのデータ化けを精度良く検出できるという顕著な効果がある。
【００４６】
また、本実施例では、データ化けの検出のために別な不揮発性メモリを使用する必要がなく、コスト的に有利であり、しかも、そのためのソフト処理も大きく増加しないという利点もある。
尚、本発明は前記実施例になんら限定されるものではなく、本発明を逸脱しない範囲において種々の態様で実施しうることはいうまでもない。
【００４７】
（１）例えば前記実施例では、不揮発性メモリとしてＦＬＡＳＨメモリを挙げたが、それに限らず、本発明は、ＥＥＰＲＯＭ等の他のメモリのデータ化けの検出にも適用できる。
（２）また、本発明の不揮発性メモリのデータ化け検出方法は、上述した処理を実行させる手段（プログラム）及びその手段を実施する電子制御装置（例えばマイコン）並びにその手段を記憶している記録媒体にも適用できる。
【００４８】
例えば不揮発性メモリのデータ化け検出方法を実施するプログラムの処理を実行する電子制御装置により、上述したデータ化けを検出できる。また、不揮発性メモリのデータ化け検出方法を実施するプログラムは、記録媒体に記憶することができる。
【００４９】
この記録媒体としては、マイクロコンピュータとして構成される電子制御装置、マイクロチップ、フレキシブルディスク、ハードディスク、光ディスク等の各種の記録媒体が挙げられる。つまり、上述した不揮発性メモリのデータ化け検出方法の処理を実行させることができる例えばプログラム等の手段を記憶したものであれば、特に限定はない。
【図面の簡単な説明】
【図１】実施例の不揮発性メモリのデータ化け検出方法を実施する電子制御装置の概略構成を表すブロック図である。
【図２】実施例の不揮発性メモリのデータ化け検出方法を説明する説明図である。
【図３】実施例のＳＵＭ検査処理を示すフローチャートである。
【図４】実施例の正負差分演算処理を示すフローチャートである。
【図５】実施例のデータ化け検出処理を示すフローチャートである。
【図６】実施例のデータ化け検出方法の適用例を示す説明図である。
【図７】従来技術の説明図である。
【符号の説明】
１…電子制御装置（ＥＣＵ）
３…ＣＰＵ
９…ＦＬＡＳＨメモリ
１１…ＥＥＰＲＯＭ
【図１】
2004021527.tif 000003
【図２】
2004021527.tif 000004
【図３】
2004021527.tif 000005
【図４】
2004021527.tif 000006
【図５】
2004021527.tif 000007
【図６】
2004021527.tif 000008
【図７】
2004021527.tif 000009