(57)【要約】【課題】データの正常性だけでなく、書き込みアドレスの正常性も確認する。【解決手段】書き込み部１１は、メモリ１２にデータを書き込み、計算部１３は、書き込み部１１がメモリ１２に書き込んだデータのデータ・チェックサム値とデータを書き込んだアドレスのアドレス・チェックサム値とを計算し、データ・チェックサム値とアドレス・チェックサム値を合計したチェックサム合計値を計算する。表示部１４は、データ・チェックサム値とチェックサム合計値を表示する。【選択図】図１
2012194976.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体にデータを書き込む書き込み手段と、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段と、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段と、
を備えることを特徴とするメモリ書き込み確認装置。
【請求項２】
前記データ・チェックサム値および前記アドレス・チェックサム値をそれぞれあらかじめ設定された値と比較し、前記計算手段が計算した前記データ・チェックサム値および前記アドレス・チェックサム値と、前記あらかじめ設定された値とがそれぞれ一致するか否かを判定する判定手段をさらに備え、
前記表示手段は、前記判定手段によって前記データ・チェックサム値および／または前記アドレス・チェックサム値と前記あらかじめ設定された値とが一致しないと判定された場合、エラーを表示することを特徴とする請求項１に記載のメモリ書き込み確認装置。
【請求項３】
前記計算手段は、前記所定の位置のアドレスと同じ桁数であって、前記所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値を生成し、前記所定の位置のアドレスを前記所定の単位で区切った値と、前記パラメータ値を前記所定の単位で区切った値と、をそれぞれ積算した後に加算した結果の値、または、その結果の値の下位の前記所定の単位の値を複合アドレス・チェックサム値として計算し、
前記表示手段は、前記データ・チェックサム値および前記複合アドレス・チェックサム値を表示することを特徴とする請求項１または２に記載のメモリ書き込み確認装置。
【請求項４】
前記パラメータ値は、前記所定の単位で区切った各値がすべて異なることを特徴とする請求項３に記載のメモリ書き込み確認装置。
【請求項５】
前記書き込み手段が前記記憶媒体に２以上のデータを書き込む場合、
前記計算手段は、前記記憶媒体のメモリ全域の前記データ・チェックサム値と、それぞれの前記アドレス・チェックサム値または前記複合アドレス・チェックサム値を合計したアドレス・チェックサム合計値とを計算し、
前記表示手段は、前記データ・チェックサム値および前記アドレス・チェックサム合計値を表示する、
ことを特徴とする請求項１ないし４のいずれか１項に記載のメモリ書き込み確認装置。
【請求項６】
前記計算手段は、前記データ・チェックサム値と、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値と、を合計したチェックサム合計値を計算し、
前記表示手段は、前記チェックサム合計値を表示する、
ことを特徴とする請求項１ないし５のいずれか１項に記載のメモリ書き込み確認装置。
【請求項７】
前記計算手段は、前記データを書き込んだアドレスの先頭アドレスのアドレス・チェックサム値について、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値を計算することを特徴とする請求項１ないし６のいずれか１項に記載のメモリ書き込み確認装置。
【請求項８】
前記所定の単位は、１ニブル単位であることを特徴とする請求項１ないし７のいずれか１項に記載のメモリ書き込み確認装置。
【請求項９】
メモリ書き込み確認装置が実行する
記憶媒体にデータを書き込む書き込みステップと、
前記書き込みステップで前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算ステップと、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示ステップと、
を備えることを特徴とするメモリ書き込み確認方法。
【請求項１０】
コンピュータを、
記憶媒体にデータを書き込む書き込み手段、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段、および、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに書き込んだデータの正常性を確認するメモリ書き込み確認装置、メモリ書き込み確認方法およびプログラムに関する。
【背景技術】
【０００２】
不揮発性メモリにデータを書き込むデバイスプログラマを使って、不揮発性メモリに書き込んだデータに対して、データの正常性を確認する手段として、チェックサム値を算出する方法がある。例えば、あるマスタデータのコピーを準備する必要があった場合、あらかじめマスタデータのチェックサム値が提示されていれば、利用者はデバイスプログラマでコピーした後に表示されるチェックサム値との比較をおこない、コピーしたデータの正常性を確認することが可能である。
【０００３】
特許文献１には、フラッシュメモリのデータを読み出すのと同時にチェックサム算出を平行して行うフラッシュメモリ制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３３７７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のチェックサム計算方法は、アドレスを意識することなく単純に不揮発性メモリサイズ全域を積み上げて計算するだけであるため、データの正常性を確認することはできても、データが書き込まれたアドレスの正常性までは確認することはできなかった。
【０００６】
特許文献１に記載のフラッシュメモリ制御装置は、書き込みアドレスの正常性を確認するものではない。
【０００７】
本発明は、上述のような事情に鑑みてなされたもので、データの正常性だけでなく、書き込みアドレスの正常性も確認できるメモリ書き込み確認装置、メモリ書き込み確認方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の観点に係るメモリ書き込み確認装置は、
記憶媒体にデータを書き込む書き込み手段と、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段と、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段と、
を備えることを特徴とする。
【０００９】
本発明の第２の観点に係るメモリ書き込み確認方法は、
メモリ書き込み確認装置が実行する
記憶媒体にデータを書き込む書き込みステップと、
前記書き込みステップで前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算ステップと、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示ステップと、
を備えることを特徴とする。
【００１０】
本発明の第３の観点に係るプログラムは、コンピュータを、
記憶媒体にデータを書き込む書き込み手段、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段、および、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段、  として機能させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、データの正常性だけでなく、書き込みアドレスの正常性も確認できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１に係るメモリ書き込み確認装置の構成例を示すブロック図である。
【図２】実施の形態１に係るメモリに１つのデータが書き込まれた場合の例を示す図である。
【図３】実施の形態１に係るメモリに１つのデータが誤ったアドレスに書き込まれた場合の例を示す図である。
【図４】実施の形態１に係るメモリ書き込み確認の動作の一例を示すフローチャートである。
【図５】実施の形態１に係るメモリに複数のデータが書き込まれた場合の例を示す図である。
【図６】複数のデータが書き込まれた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。
【図７】本発明の実施の形態２に係るメモリ書き込み確認装置の構成例を示すブロック図である。
【図８】実施の形態２に係るメモリ書き込み確認の動作の一例を示すフローチャートである。
【図９】実施の形態３を実施の形態２と組み合わせた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。
【図１０】本発明の実施の形態に係るメモリ書き込み確認装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
本発明において、チェックサムとは、誤り検出符号である。データ・チェックサム値は、データを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の所定の単位の値である。アドレス・チェックサム値は、データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の所定の単位の値である。データを区切る所定の単位とアドレスを区切る所定の単位は同一でなくてよい。
【００１４】
以下、本発明を実施するための形態について図を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【００１５】
（実施の形態１）
図１は、実施の形態１に係るメモリ書き込み確認装置の構成例を示すブロック図である。メモリ書き込み確認装置１は、書き込み部１１、メモリ１２、計算部１３および表示部１４を備える。
【００１６】
書き込み部１１は、データをメモリ１２に書き込むデバイスプログラマである。
【００１７】
メモリ１２は、不揮発性メモリであって、書き込み部１１によって書き込まれたデータを記憶する。
【００１８】
計算部１３は、メモリ１２に書き込まれたデータのデータ・チェックサム値と、書き込まれたアドレスのアドレス・チェックサム値とを計算する。また、計算部１３は、データ・チェックサム値とアドレス・チェックサム値とを合計したチェックサム合計値を計算する。本実施の形態では、データ・チェックサム値は、ブランク状態の部分も含めてメモリ全域を１バイト（８ビット）単位に区切って加算して求める。アドレス・チェックサム値は、データの先頭アドレスを１バイト（８ビット）単位に区切って加算して求める。計算部１３は、算出したチェックサム合計値を表示部１４に送る。
【００１９】
なお、データを１バイト単位に区切って加算して求めた値が１バイト以上であった場合、その値の下位の１バイトの値をデータ・チェックサム値としてもよい。同様に、データの先頭アドレスを１バイト単位に区切って加算して求めた値が１バイト以上であった場合、その値の下位の１バイトの値をアドレス・チェックサム値としてもよい。
【００２０】
表示部１４は、計算部１３から受け取ったチェックサム合計値を表示する。ユーザは、表示部１４に表示されたチェックサム合計値が期待した値であったとき、データの書き込みが正常に行われたことが確認できる。ユーザは、表示部１４に表示されたチェックサム合計値が期待した値でなかったとき、書き込まれたデータおよび書き込まれたアドレスの少なくとも一方に誤りがあることを確認できる。
【００２１】
なお、計算部１３は、データ・チェックサム値およびアドレス・チェックサム値を表示部１４に送って表示させてもよい。この場合、データ・チェックサム値が期待した値でなかったとき、ユーザは、書き込まれたデータに誤りがあることを確認できる。アドレス・チェックサム値が期待した値でなかったとき、ユーザは、書き込まれたアドレスに誤りがあることを確認できる。
【００２２】
図２は、実施の形態１に係るメモリに１つのデータが書き込まれた場合の例を示す図である。図２の例では、５１２メガバイトのメモリ１２に６４メガバイトのデータが書き込まれている。データおよびアドレスは１６進法の数字で表現されており、１桁は４ビットである。アドレスは、３２ビット（８桁）の数字列である。１アドレスには、３２ビット（８桁）のデータが記憶されている。データはアドレス０ｘ０５００００００から０ｘ０８ＦＦＦＦＦＦに書き込まれており、それ以外の領域（０ｘ００００００００から０ｘ０４ＦＦＦＦＦＦ、０ｘ０９００００００から０ｘ１ＦＦＦＦＦＦＦ）は、データが何も書き込まれていないブランク状態（値としては全て１）である。
【００２３】
図２の例では、ブランク状態の部分も含めてメモリ全域を１バイト単位で区切って、加算して求めたデータ・チェックサム値は、０ｘ１ＦＥ７００００００であるとする。一方、データの先頭アドレスを１バイト単位で区切って、加算して求めたアドレス・チェックサム値は、０ｘ０５となる。したがって、チェックサム合計値は、データ・チェックサム値０ｘ１ＦＥ７００００００とアドレス・チェックサム値０ｘ０５を合計した０ｘ１ＦＥ７０００００５となる。
【００２４】
図３は、実施の形態１に係るメモリに１つのデータが誤ったアドレスに書き込まれた場合の例を示す図である。図２の書き込みアドレスが正しいアドレスとし、図３は、図２と同じデータが誤ったアドレスに書き込まれた例である。６４メガバイトのデータは、アドレス０ｘ００００００００からアドレス０ｘ０３ＦＦＦＦＦＦまでに書き込まれ、アドレス０ｘ０４００００００以降はブランク状態となる。
【００２５】
この条件でデータ・チェックサム値を計算すると０ｘ１ＦＥ７００００００となり、これは図２の例と同じデータ・チェックサム値となる。すなわち、データ・チェックサム値だけでは、書き込まれたアドレスの誤りを検出することはできない。本実施の形態では、計算部１３は、アドレス・チェックサム値０ｘ００を計算し、アドレス・チェックサム値とデータ・チェックサム値との合計値０ｘ１ＦＥ７００００００を計算する。この合計値は、正しいアドレスにデータを書き込んだ図１の例のチェックサム合計値０ｘ１ＦＥ７０００００５と一致しないので、データを書き込むアドレスに誤りがあることを検出できる。
【００２６】
図４は、実施の形態１に係るメモリ書き込み確認の動作の一例を示すフローチャートである。まず、書き込み部１１がメモリ１２にデータを書き込む（ステップＳ１１）。計算部１３は、メモリ１２に書き込まれたデータのデータ・チェックサム値を計算し（ステップＳ１２）、書き込まれたアドレスのアドレス・チェックサム値を計算する（ステップＳ１３）。次に、計算部１３は、データ・チェックサム値とアドレス・チェックサム値とを合計し、チェックサム合計値を計算する（ステップＳ１４）。計算部１３は、算出したチェックサム合計値を表示部１４に送る。表示部１４は、受け取ったチェックサム合計値を表示し（ステップＳ１５）、処理を終了する。
【００２７】
なお、ステップＳ１４を省略し、計算部１３は、算出したデータ・チェックサム値およびアドレス・チェックサム値を表示部１４に送り、表示部１４は、受け取ったデータ・チェックサム値およびアドレス・チェックサム値を表示してもよい。
【００２８】
以上、書き込み部１１がメモリ１２に１つのデータを書き込む場合について説明した。以下に、書き込み部１１がメモリ１２に複数のデータを書き込む場合について説明する。
【００２９】
図５は、実施の形態１に係るメモリに複数のデータが書き込まれた場合の例を示す図である。図５の例は、５１２メガバイトのメモリ１２に６４メガバイトの３つのデータが書き込まれている。データ１はアドレス０ｘ００００００００から０ｘ０３ＦＦＦＦＦＦに書き込まれ、データ２はアドレス０ｘ０５００００００から０ｘ０８ＦＦＦＦＦＦに書き込まれ、データ３はアドレス０ｘ１Ａ００００００から０ｘ１ＥＦＦＦＦＦＦに書き込まれている。それ以外の領域（０ｘ０４００００００から０ｘ０４ＦＦＦＦＦＦ、０ｘ０９００００００から０ｘ１ＢＦＦＦＦＦＦ、０ｘ１Ｆ００００００から０ｘ１ＦＦＦＦＦＦＦ）は、データが何も書き込まれていないブランク状態（データとしては全て１）である。
【００３０】
図５の例では、ブランク状態の部分も含めてメモリ全域を１バイト単位で区切って、加算して求めたデータ・チェックサム値は、０ｘ１３ＥＣ９０００００であるとする。一方、データ１の先頭アドレスを１バイト単位で区切って、加算して求めたアドレス・チェックサム値は、０ｘ００、データ２のアドレス・チェックサム値は、０ｘ０５、データ３のアドレス・チェックサム値は、０ｘ１Ａとなる。したがって、チェックサム合計値は、データ・チェックサム値０ｘ１ＦＥ７００００００とアドレス・チェックサム値０ｘ００、０ｘ０５および０ｘ１Ａを合計した０ｘ１３ＥＣ９０００１Ｆとなる。
【００３１】
図６は、複数のデータが書き込まれた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。まず、書き込み部１１がメモリ１２にデータを書き込む（ステップＳ２１）。計算部１３は、メモリ１２に書き込まれたデータ１、データ２およびデータ３のデータ・チェックサム値を計算する（ステップＳ２２）。計算部１３は、メモリ１２に書き込まれたデータ１のアドレス・チェックサム値を計算する（ステップＳ２３）。計算部１３は、メモリ１２に書き込まれたデータ２のアドレス・チェックサム値を計算する（ステップＳ２４）。計算部１３は、書き込まれたデータ３のアドレス・チェックサム値を計算する（ステップＳ２５）。次に、計算部１３は、データ・チェックサム値と各アドレス・チェックサム値とを合計し、チェックサム合計値を計算する（ステップＳ２６）。計算部１３は、算出したチェックサム合計値を表示部１４に送る。表示部１４は、受け取ったチェックサム合計値を表示し（ステップＳ２７）、処理を終了する。
【００３２】
なお、計算部１３は、ステップＳ２６でアドレス・チェックサム値の合計値を計算し、算出したデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示部１４に送り、ステップＳ２７で、表示部１４は、受け取ったデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示してもよい。
【００３３】
以上説明したように、実施の形態１のメモリ書き込み確認装置１によれば、ユーザは、表示部１４に表示されたチェックサム合計値、または、データ・チェックサム値およびアドレス・チェックサム値を確認することで、メモリ１２に書き込んだデータの正常性だけでなく、書き込みアドレスの正常性も確認できる。
【００３４】
表示部１４にチェックサム合計値を表示する場合、ユーザは、書き込まれたデータおよび書き込まれたアドレスの少なくとも一方に誤りがあることを確認できる。表示部１４にデータ・チェックサム値およびアドレス・チェックサム値を表示する場合、ユーザは、まず、データ・チェックサム値が期待した値でなかった場合、データの書き込みそのものが失敗している可能性があることが判断できる。そして、アドレス・チェックサム値が期待した値でなかった場合、データを書き込むアドレスを間違ってしまった可能性があることが判断できる。
【００３５】
なお、メモリ１２に複数のデータを書き込んだ場合であって、データ・チェックサム値は期待した値だがアドレス・チェックサム値の合計値が期待した値でなかった場合、ユーザは、メモリ書き込み確認装置１に操作入力し、各アドレス・チェックサム値を表示部１４に表示させることができる構成にしてもよい。
【００３６】
（実施の形態２）
図７は、本発明の実施の形態２に係るメモリ書き込み確認装置の構成例を示すブロック図である。実施の形態２のメモリ書き込み確認装置１は、実施の形態１のメモリ書き込み確認装置１の構成に加えて、判定部１５を備える。判定部１５は、書き込み対象のデータのあらかじめ設定されたデータ・チェックサム値およびアドレス・チェックサム値を記憶しており、計算部１３が計算したデータ・チェックサム値およびアドレス・チェックサム値と、あらかじめ設定されたデータ・チェックサム値およびアドレス・チェックサム値とそれぞれ比較し、データ・チェックサム値およびアドレス・チェックサム値が一致するか否かを判定する。
【００３７】
判定部１５は、データ・チェックサム値およびアドレス・チェックサム値のいずれかが一致しないと判定した場合は、エラーを表示部１４に表示させる。データ・チェックサム値が一致せず、書き込んだデータそのものに誤りがあると判定した場合は、判定部１５は、たとえば、「データの書き込みに失敗しました」というエラーメッセージを表示部１４に表示させる。アドレス・チェックサム値が一致せず、書き込んだアドレスに誤りがあると判定した場合は、判定部１５は、たとえば、「データの書き込みアドレスに誤りがあります」というエラーメッセージを表示部１４に表示させる。判定部１５は、どちらも一致すると判定した場合は、「データの書き込みに成功しました」というメッセージを表示部１４に表示させてもよい。
【００３８】
なお、判定部１５は、書き込み対象のデータのあらかじめ設定されたチェックサム合計値を記憶しておいてもよい。この場合、判定部１５は、計算部１３がデータ・チェックサム値とアドレス・チェックサム値とを合計して算出したチェックサム合計値と、あらかじめ設定されたチェックサム合計値とを比較し、一致するか否かを判定する。判定部１５によってチェックサム合計値が一致しないと判定された場合は、エラーを表示部１４に表示させる。
【００３９】
図８は、実施の形態２に係るメモリ書き込み確認の動作の一例を示すフローチャートである。まず、書き込み部１１がメモリ１２にデータを書き込む（ステップＳ３１）。計算部１３は、メモリ１２に書き込まれたデータのデータ・チェックサム値を計算し（ステップＳ３２）、書き込まれたアドレスのアドレス・チェックサム値を計算する（ステップＳ３３）。
【００４０】
判定部１５は、あらかじめ設定されたデータ・チェックサム値と比較し、計算部１３が計算したデータ・チェックサム値が一致するか否かを判定する（ステップＳ３４）。計算したデータ・チェックサム値があらかじめ設定されたデータ・チェックサム値と一致しない場合（ステップＳ３４；ＮＯ）、判定部１５は、表示部１４にデータの誤りを示すエラーを表示させる（ステップＳ３５）。計算したデータ・チェックサム値があらかじめ設定されたデータ・チェックサム値と一致する場合（ステップＳ３４；ＹＥＳ）、判定部１５は、あらかじめ設定されたアドレス・チェックサム値と比較し、計算部１３が算出したアドレス・チェックサム値が一致するか否かを判定する（ステップＳ３６）。計算したアドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致する場合（ステップＳ３６；ＹＥＳ）、処理を終了する。計算したアドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致しない場合（ステップＳ３６；ＮＯ）、判定部１５は、表示部１４にアドレスの誤りを示すエラーを表示させ（ステップＳ３７）、処理を終了する。
【００４１】
なお、計算部１３は、ステップＳ３３の後、データ・チェックサム値とアドレス・チェックサム値とを合計してチェックサム合計値を計算し、判定部１５は、あらかじめ設定されたチェックサム合計値と比較し、チェックサム合計値があらかじめ設定されたチェックサム合計値と一致しない場合、表示部１４にデータおよびアドレスのいずれかに誤りがあることを示すエラーを表示させてもよい。
【００４２】
以上説明したように、実施の形態２のメモリ書き込み確認装置１によれば、ユーザは、自分でデータ・チェックサム値およびアドレス・チェックサム値が期待した値と一致するか否かを判断することなく、表示部１４に表示されたエラー表示を見るだけで、メモリ１２に書き込んだデータの正常性だけでなく、書き込みアドレスの正常性も確認できる。
【００４３】
（実施の形態３）
本発明の実施の形態３のメモリ書き込み確認装置１は、実施の形態１のメモリ書き込確認装置１１と同様の構成である。実施の形態３のメモリ書き込み確認装置１の計算部１３は、データの先頭アドレスと同じ桁数の別のパラメータ値を生成して、パラメータ値を所定の単位で区切った値と、データの先頭アドレスを所定の単位で区切った値とを積算した後に加算して、複合アドレス・チェックサム値を計算する。計算部１３が生成するパラメータ値は、所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値である。本実施の形態では、バイト単位で区切った各値がすべて異なるパラメータ値を生成する。
【００４４】
計算部１３は、データ・チェックサム値と複合アドレス・チェックサム値とを合計したチェックサム合計値を計算し、算出したチェックサム合計値を表示部１４に表示させる。あるいは、計算部１３は、データ・チェックサム値および複合アドレス・チェックサム値を表示部１４に送って表示させてもよい。この場合、ユーザは、データ・チェックサム値が期待した値でなかったとき、書き込まれたデータに誤りがあることを確認でき、複合アドレス・チェックサム値が期待した値でなかったとき、書き込まれたアドレスに誤りがあることを確認できる。
【００４５】
アドレス・チェックサム値を、データを書き込んだ先頭アドレスを１バイト単位に区切って加算して求める場合、アドレスは異なるがアドレス・チェックサム値が同じとなる場合が存在する。たとえば、データを書き込む先頭アドレス０x０５００００００を、０x０００５００００と間違えてしまった場合、アドレス・チェックサム値は同じ０x０５となる。そこで、本実施の形態では、書き込みアドレスの間違いを検出する精度をさらに向上させる。
【００４６】
以下、データを書き込む先頭アドレス０x０５００００００を、先頭アドレス０x０００５００００と間違えた場合について説明する。
【００４７】
データの先頭アドレスが１０桁であるので、計算部１３は、たとえば、１０桁のパラメータ値０ｘ０１０２０３０４を生成する。データを書き込む先頭アドレスは０ｘ０５００００００であるので、アドレスとパラメータ値とを１バイト単位で積算して加算すると、上位から０ｘ０１＊０ｘ０５で０ｘ０５、０ｘ０２＊０ｘ００で０ｘ００、０ｘ０３＊０ｘ００で０ｘ００、０ｘ０４＊０ｘ００で０ｘ００となり、これらの値を合計した複合アドレス・チェックサム値は０ｘ０５となるはずである。
【００４８】
一方、データを書き込んだ先頭アドレスは０ｘ０００５００００であるので、アドレスとパラメータ値とを１バイト単位で積算して加算すると、上位から０ｘ０１＊０ｘ００で０ｘ００、０ｘ０２＊０ｘ０５で０ｘ０Ａ、０ｘ０３＊０ｘ００で０ｘ００、０ｘ０４＋０ｘ００で０ｘ００となり、これらの値を合計した複合アドレス・チェックサム値は０ｘ０Ａとなる。
【００４９】
このように、複合アドレス・チェックサム値は異なる結果となるため、データを書き込むアドレスを間違ったことを検出することができる。
【００５０】
計算部１３は、データの先頭アドレスと同じ桁数のパラメータ値を生成して、パラメータ値を１ニブル（４ビット）単位で区切った値と、データの先頭アドレスを１ニブル（４ビット）単位で区切った値と、を積算した後に加算して、複合アドレス・チェックサム値を計算してもよい。
【００５１】
データを書き込む先頭アドレス０x０５００００００を、ドレス・チェックサム値が同じとなるアドレス０x０００５００００と間違えた場合、計算部１３は、たとえば、同じ桁数のパラメータ値０ｘ０１２３４５６７を生成する。データを書き込むアドレスが０ｘ０５００００００である場合、アドレスとパラメータ値とを１ニブル単位で積算して加算すると、上位から０ｘ０＊０ｘ０で０ｘ０、０ｘ１＊０ｘ５で０ｘ５、０ｘ２＊０ｘ０で０ｘ０、０ｘ３＊０ｘ０で０ｘ０、０ｘ４＊０ｘ０で０ｘ０、０ｘ５＊０ｘ０で０ｘ０、０ｘ６＊０ｘ０で０ｘ０、０ｘ７＊０ｘ０で０ｘ０となり、これらの値を合計した複合アドレス・チェックサム値は０ｘ０５となるはずである。
【００５２】
一方、データを書き込んだアドレスが０ｘ０００５００００である場合、アドレスとパラメータ値とを１バイト単位で積算して加算すると、上位から０ｘ０＊０ｘ０で０ｘ０、０ｘ１＊０ｘ０で０ｘ０、０ｘ２＊０ｘ０で０ｘ０、０ｘ３＊０ｘ５で０ｘＦ、０ｘ４＊０ｘ０で０ｘ０、０ｘ５＊０ｘ０で０ｘ０、０ｘ６＊０ｘ０で０ｘ０、０ｘ７＊０ｘ０で０ｘ０となり、これらの値を合計した複合アドレス・チェックサム値は０ｘ０Ｆとなる。
【００５３】
１ニブル（４ビット）単位で区切った場合、さらに書き込みアドレスの間違いを検出する精度を上げることができる。
【００５４】
なお、実施の形態３を実施の形態２と組み合わせてもよい。この場合、判定部１５が、計算部１３が算出したアドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致すると判定した場合にのみ、計算部１３は、複合アドレス・チェックサム値を計算するとよい。
【００５５】
図９は、実施の形態３を実施の形態２と組み合わせた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。ステップＳ４１〜ステップＳ４６は、図８のステップ３１〜ステップ３６と同じである。アドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致しない場合（ステップＳ４６；ＮＯ）、表示部１４にアドレスの誤りを示すエラーを表示させ（ステップＳ４９）、処理を終了する。
【００５６】
アドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致する場合（ステップＳ４６；ＹＥＳ）、計算部１３は、データの先頭アドレスと同じ桁数のパラメータ値を生成して、パラメータ値を所定の単位で区切った値と、データの先頭アドレスを所定の単位で区切った値と、を積算した後に加算して、複合アドレス・チェックサム値を計算する（ステップＳ４７）。
【００５７】
計算した複合アドレス・チェックサム値があらかじめ設定された複合アドレス・チェックサム値と一致しない場合（ステップＳ４８；ＮＯ）、表示部１４にアドレスの誤りを示すエラーを表示させ（ステップＳ４９）、処理を終了する。アドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致する場合（ステップＳ４８；ＹＥＳ）、処理を終了する。
【００５８】
また、実施の形態３において、書き込み部１１がメモリ１２に複数のデータを書き込む場合、計算部１３は、メモリ１２に書き込まれた複数のデータのデータ・チェックサム値と、複数のデータそれぞれの複合アドレス・チェックサム値とを計算する。計算部１３は、データ・チェックサム値と各複合アドレス・チェックサム値とを合計し、チェックサム合計値を計算し、表示部１４に表示させる。あるいは、計算部１３は、複数のデータそれぞれの複合アドレス・チェックサム値を合計して複合アドレス・チェックサム合計値を計算し、データ・チェックサム値と複合アドレス・チェックサム合計値とを表示部１４に表示させてもよい。
【００５９】
なお、計算部１３は、ステップＳ２６でアドレス・チェックサム値の合計値を計算し、算出したデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示部１４に送り、ステップＳ２７で、表示部１４は、受け取ったデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示してもよい。
【００６０】
以上説明したように、実施の形態３のメモリ書き込み確認装置１によれば、間違いを検出する精度をさらに向上させることができる。
【００６１】
なお、上記の実施の形態では、メモリ書き込み確認装置１の計算部１３は、アドレス・チェックサム値の計算を必ず行った。しかし、本発明はこれに限られず、ユーザがアドレス・チェックサム値の計算を有効または無効に選択できるようにしてもよい。この場合、メモリ書き込み確認装置１は、入力部を備え、計算部１３は、ソフトウェアスイッチを備える。ユーザが入力部に入力し、アドレス・チェックサム値の計算を有効にすると、計算部１３は、ソフトウェアスイッチを「アドレス・チェックサム計算（ＯＮ）」に設定する。
【００６２】
一方、ユーザが入力部に入力し、アドレス・チェックサム値の計算を無効にすると、ソフトウェアスイッチを「アドレス・チェックサム計算（ＯＦＦ中）」に設定する。ソフトウェアスイッチが「アドレス・チェックサム計算（ＯＮ）」に設定されると、計算部１３は、データ・チェックサム値の計算と、アドレス・チェックサム値の計算と、チェックサム合計値の計算とを実行する。ソフトウェアスイッチが「アドレス・チェックサム計算（ＯＮ）」に設定されると、計算部１３は、データ・チェックサム値の計算のみを実行する。
【００６３】
また、実施の形態３では、実施の形態２と組み合わせ可能であることを説明したが、実施の形態３と実施の形態１とを組み合わせてもよい。この場合、計算部１３は、データ・チェックサム値と、アドレス・チェックサム値と、複合アドレス・チェックサム値と、を計算し、データ・チェックサム値と、アドレス・チェックサム値と、複合アドレス・チェックサム値とを合計したチェックサム合計値を表示部１４に表示させる。あるいは、計算部１３は、データ・チェックサム値と、アドレス・チェックサム値と、複合アドレス・チェックサム値とをそれぞれ表示部１４に表示させる。
【００６４】
図１０は、本発明の実施の形態に係るメモリ書き込み確認装置のハードウェア構成の一例を示すブロック図である。メモリ書き込み確認装置１は、図１０に示すように、制御部２１、主記憶部２２、外部記憶部２３、操作部２４および表示部２５を備える。主記憶部２２、外部記憶部２３、操作部２４および表示部２５はいずれも内部バス２０を介して制御部２１に接続されている。
【００６５】
制御部２１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部２３に記憶されている制御プログラム３０に従って、書き込み部１１、計算部１３および判定部１５の各処理を実行する。
【００６６】
主記憶部２２はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部２３に記憶されている制御プログラム３０をロードし、制御部２１の作業領域として用いられる。
【００６７】
外部記憶部２３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、メモリ書き込み確認装置１の処理を制御部２１に行わせるためのプログラムをあらかじめ記憶し、また、制御部２１の指示に従って、このプログラムが記憶するデータを制御部２１に供給し、制御部２１から供給されたデータを記憶する。メモリ１２は、外部記憶部２３に構成される。
【００６８】
操作部２４はキーボードやテンキーなどのポインティングデバイス等と、キーボードやテンキー等を内部バス２０に接続するインタフェース装置から構成されている。さらに操作部２４は音声入力装置を備えることとしてもよい。ユーザが書き込み部１１にデータの書き込み指示を行う場合や、アドレス・チェックサム値の計算の有効または無効を選択する場合などは、操作部２４を介して、指示が制御部２１に供給される。
【００６９】
表示部２５は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、制御部２１から送られてきた情報を表示する。表示部２５は、制御部２１から受け取ったデータ・チェックサム値やチェックサム合計値を表示したり、エラーを表示したりする。表示部２５は表示部１４である。
【００７０】
図１または図７に示すメモリ書き込み確認装置１の書き込み部１１、計算部１３、表示部１４および判定部１５の処理は、制御プログラム３０が、制御部２１、主記憶部２２、外部記憶部２３、操作部２４および表示部２５などを資源として用いて処理することによって実行する。
【００７１】
その他、前記のハードウェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００７２】
制御部２１、主記憶部２２、外部記憶部２３、操作部２４、内部バス２０などから構成されるメモリ書き込み確認処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するメモリ書き込み確認装置１を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでメモリ書き込み確認装置１を構成してもよい。
【００７３】
また、メモリ書き込み確認装置１の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００７４】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【００７５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７６】
（付記１）
記憶媒体にデータを書き込む書き込み手段と、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段と、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段と、
を備えることを特徴とするメモリ書き込み確認装置。
【００７７】
（付記２）
前記データ・チェックサム値および前記アドレス・チェックサム値をそれぞれあらかじめ設定された値と比較し、前記計算手段が計算した前記データ・チェックサム値および前記アドレス・チェックサム値と、前記あらかじめ設定された値とがそれぞれ一致するか否かを判定する判定手段をさらに備え、
前記表示手段は、前記判定手段によって前記データ・チェックサム値および／または前記アドレス・チェックサム値と前記あらかじめ設定された値とが一致しないと判定された場合、エラーを表示することを特徴とする付記１に記載のメモリ書き込み確認装置。
【００７８】
（付記３）
前記計算手段は、前記所定の位置のアドレスと同じ桁数であって、前記所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値を生成し、前記所定の位置のアドレスを前記所定の単位で区切った値と、前記パラメータ値を前記所定の単位で区切った値と、をそれぞれ積算した後に加算した結果の値、または、その結果の値の下位の前記所定の単位の値を複合アドレス・チェックサム値として計算し、
前記表示手段は、前記データ・チェックサム値および前記複合アドレス・チェックサム値を表示することを特徴とする付記１または２に記載のメモリ書き込み確認装置。
【００７９】
（付記４）
前記パラメータ値は、前記所定の単位で区切った各値がすべて異なることを特徴とする付記３に記載のメモリ書き込み確認装置。
【００８０】
（付記５）
前記書き込み手段が前記記憶媒体に２以上のデータを書き込む場合、
前記計算手段は、前記記憶媒体のメモリ全域の前記データ・チェックサム値と、それぞれの前記アドレス・チェックサム値または前記複合アドレス・チェックサム値を合計したアドレス・チェックサム合計値とを計算し、
前記表示手段は、前記データ・チェックサム値および前記アドレス・チェックサム合計値を表示する、
ことを特徴とする付記１ないし４のいずれかに記載のメモリ書き込み確認装置。
【００８１】
（付記６）
前記計算手段は、前記データ・チェックサム値と、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値と、を合計したチェックサム合計値を計算し、
前記表示手段は、前記チェックサム合計値を表示する、
ことを特徴とする付記１ないし５のいずれかに記載のメモリ書き込み確認装置。
【００８２】
（付記７）
前記計算手段は、前記データを書き込んだアドレスの先頭アドレスのアドレス・チェックサム値について、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値を計算することを特徴とする付記１ないし６のいずれかに記載のメモリ書き込み確認装置。
【００８３】
（付記８）
前記所定の単位は、１バイト単位であることを特徴とする付記１ないし７のいずれかに記載のメモリ書き込み確認装置。
【００８４】
（付記９）
前記所定の単位は、１ニブル単位であることを特徴とする付記１ないし７のいずれかに記載のメモリ書き込み確認装置。
【００８５】
（付記１０）
メモリ書き込み確認装置が実行する
記憶媒体にデータを書き込む書き込みステップと、
前記書き込みステップで前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算ステップと、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示ステップと、
を備えることを特徴とするメモリ書き込み確認方法。
【００８６】
（付記１１）
前記データ・チェックサム値および前記アドレス・チェックサム値をそれぞれあらかじめ設定された値と比較し、前記計算ステップで計算した前記データ・チェックサム値および前記アドレス・チェックサム値と、前記あらかじめ設定された値とがそれぞれ一致するか否かを判定する判定ステップをさらに備え、
前記表示ステップでは、前記判定ステップで前記データ・チェックサム値および／または前記アドレス・チェックサム値と前記あらかじめ設定された値とが一致しないと判定された場合、エラーを表示することを特徴とする付記１０に記載のメモリ書き込み確認方法。
【００８７】
（付記１２）
前記計算ステップでは、前記所定の位置のアドレスと同じ桁数であって、前記所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値を生成し、前記所定の位置のアドレスを前記所定の単位で区切った値と、前記パラメータ値を前記所定の単位で区切った値と、をそれぞれ積算した後に加算した結果の値、または、その結果の値の下位の前記所定の単位の値を複合アドレス・チェックサム値として計算し、
前記表示ステップでは、前記データ・チェックサム値および前記複合アドレス・チェックサム値を表示することを特徴とする付記１０または１１に記載のメモリ書き込み確認方法。
【００８８】
（付記１３）
前記パラメータ値は、前記所定の単位で区切った各値がすべて異なることを特徴とする付記１２に記載のメモリ書き込み確認方法。
【００８９】
（付記１４）
前記書き込みステップで前記記憶媒体に２以上のデータを書き込む場合、
前記計算ステップでは、前記記憶媒体のメモリ全域の前記データ・チェックサム値と、それぞれの前記アドレス・チェックサム値または前記複合アドレス・チェックサム値を合計したアドレス・チェックサム合計値とを計算し、
前記表示ステップでは、前記データ・チェックサム値および前記アドレス・チェックサム合計値を表示する、
ことを特徴とする付記１０ないし１３のいずれかに記載のメモリ書き込み確認方法。
【００９０】
（付記１５）
前記計算ステップでは、前記データ・チェックサム値と、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値と、を合計したチェックサム合計値を計算し、
前記表示ステップでは、前記チェックサム合計値を表示する、
ことを特徴とする付記１０ないし１４のいずれかに記載のメモリ書き込み確認方法。
【００９１】
（付記１６）
前記計算ステップでは、前記データを書き込んだアドレスの先頭アドレスのアドレス・チェックサム値について、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値を計算することを特徴とする付記１０ないし１５のいずれかに記載のメモリ書き込み確認方法。
【００９２】
（付記１７）
前記所定の単位は、１バイト単位であることを特徴とする付記１０ないし１６のいずれかに記載のメモリ書き込み確認方法。
【００９３】
（付記１８）
前記所定の単位は、１ニブル単位であることを特徴とする付記１０ないし１６のいずれかに記載のメモリ書き込み確認方法。
【００９４】
（付記１９）
コンピュータを、
記憶媒体にデータを書き込む書き込み手段、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを２ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【００９５】
１  メモリ書き込み確認装置
１１  書き込み部
１２  メモリ
１３  計算部
１４  表示部
１５  判定部
２１  制御部
２２  主記憶部
２３  外部記憶部
２４  操作部
２５  表示部
３０  制御プログラム
【図１】
2012194976.tif 000003
【図２】
2012194976.tif 000004
【図３】
2012194976.tif 000005
【図４】
2012194976.tif 000006
【図５】
2012194976.tif 000007
【図６】
2012194976.tif 000008
【図７】
2012194976.tif 000009
【図８】
2012194976.tif 000010
【図９】
2012194976.tif 000011
【図１０】
2012194976.tif 000012