説明

メモリ書き込み確認装置、メモリ書き込み確認方法およびプログラム

【課題】データの正常性だけでなく、書き込みアドレスの正常性も確認する。
【解決手段】書き込み部11は、メモリ12にデータを書き込み、計算部13は、書き込み部11がメモリ12に書き込んだデータのデータ・チェックサム値とデータを書き込んだアドレスのアドレス・チェックサム値とを計算し、データ・チェックサム値とアドレス・チェックサム値を合計したチェックサム合計値を計算する。表示部14は、データ・チェックサム値とチェックサム合計値を表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリに書き込んだデータの正常性を確認するメモリ書き込み確認装置、メモリ書き込み確認方法およびプログラムに関する。
【背景技術】
【0002】
不揮発性メモリにデータを書き込むデバイスプログラマを使って、不揮発性メモリに書き込んだデータに対して、データの正常性を確認する手段として、チェックサム値を算出する方法がある。例えば、あるマスタデータのコピーを準備する必要があった場合、あらかじめマスタデータのチェックサム値が提示されていれば、利用者はデバイスプログラマでコピーした後に表示されるチェックサム値との比較をおこない、コピーしたデータの正常性を確認することが可能である。
【0003】
特許文献1には、フラッシュメモリのデータを読み出すのと同時にチェックサム算出を平行して行うフラッシュメモリ制御装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−337759号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のチェックサム計算方法は、アドレスを意識することなく単純に不揮発性メモリサイズ全域を積み上げて計算するだけであるため、データの正常性を確認することはできても、データが書き込まれたアドレスの正常性までは確認することはできなかった。
【0006】
特許文献1に記載のフラッシュメモリ制御装置は、書き込みアドレスの正常性を確認するものではない。
【0007】
本発明は、上述のような事情に鑑みてなされたもので、データの正常性だけでなく、書き込みアドレスの正常性も確認できるメモリ書き込み確認装置、メモリ書き込み確認方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の観点に係るメモリ書き込み確認装置は、
記憶媒体にデータを書き込む書き込み手段と、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段と、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段と、
を備えることを特徴とする。
【0009】
本発明の第2の観点に係るメモリ書き込み確認方法は、
メモリ書き込み確認装置が実行する
記憶媒体にデータを書き込む書き込みステップと、
前記書き込みステップで前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算ステップと、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示ステップと、
を備えることを特徴とする。
【0010】
本発明の第3の観点に係るプログラムは、コンピュータを、
記憶媒体にデータを書き込む書き込み手段、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段、および、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段、 として機能させることを特徴とする。
【発明の効果】
【0011】
本発明によれば、データの正常性だけでなく、書き込みアドレスの正常性も確認できる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施の形態1に係るメモリ書き込み確認装置の構成例を示すブロック図である。
【図2】実施の形態1に係るメモリに1つのデータが書き込まれた場合の例を示す図である。
【図3】実施の形態1に係るメモリに1つのデータが誤ったアドレスに書き込まれた場合の例を示す図である。
【図4】実施の形態1に係るメモリ書き込み確認の動作の一例を示すフローチャートである。
【図5】実施の形態1に係るメモリに複数のデータが書き込まれた場合の例を示す図である。
【図6】複数のデータが書き込まれた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。
【図7】本発明の実施の形態2に係るメモリ書き込み確認装置の構成例を示すブロック図である。
【図8】実施の形態2に係るメモリ書き込み確認の動作の一例を示すフローチャートである。
【図9】実施の形態3を実施の形態2と組み合わせた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。
【図10】本発明の実施の形態に係るメモリ書き込み確認装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0013】
本発明において、チェックサムとは、誤り検出符号である。データ・チェックサム値は、データを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の所定の単位の値である。アドレス・チェックサム値は、データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の所定の単位の値である。データを区切る所定の単位とアドレスを区切る所定の単位は同一でなくてよい。
【0014】
以下、本発明を実施するための形態について図を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【0015】
(実施の形態1)
図1は、実施の形態1に係るメモリ書き込み確認装置の構成例を示すブロック図である。メモリ書き込み確認装置1は、書き込み部11、メモリ12、計算部13および表示部14を備える。
【0016】
書き込み部11は、データをメモリ12に書き込むデバイスプログラマである。
【0017】
メモリ12は、不揮発性メモリであって、書き込み部11によって書き込まれたデータを記憶する。
【0018】
計算部13は、メモリ12に書き込まれたデータのデータ・チェックサム値と、書き込まれたアドレスのアドレス・チェックサム値とを計算する。また、計算部13は、データ・チェックサム値とアドレス・チェックサム値とを合計したチェックサム合計値を計算する。本実施の形態では、データ・チェックサム値は、ブランク状態の部分も含めてメモリ全域を1バイト(8ビット)単位に区切って加算して求める。アドレス・チェックサム値は、データの先頭アドレスを1バイト(8ビット)単位に区切って加算して求める。計算部13は、算出したチェックサム合計値を表示部14に送る。
【0019】
なお、データを1バイト単位に区切って加算して求めた値が1バイト以上であった場合、その値の下位の1バイトの値をデータ・チェックサム値としてもよい。同様に、データの先頭アドレスを1バイト単位に区切って加算して求めた値が1バイト以上であった場合、その値の下位の1バイトの値をアドレス・チェックサム値としてもよい。
【0020】
表示部14は、計算部13から受け取ったチェックサム合計値を表示する。ユーザは、表示部14に表示されたチェックサム合計値が期待した値であったとき、データの書き込みが正常に行われたことが確認できる。ユーザは、表示部14に表示されたチェックサム合計値が期待した値でなかったとき、書き込まれたデータおよび書き込まれたアドレスの少なくとも一方に誤りがあることを確認できる。
【0021】
なお、計算部13は、データ・チェックサム値およびアドレス・チェックサム値を表示部14に送って表示させてもよい。この場合、データ・チェックサム値が期待した値でなかったとき、ユーザは、書き込まれたデータに誤りがあることを確認できる。アドレス・チェックサム値が期待した値でなかったとき、ユーザは、書き込まれたアドレスに誤りがあることを確認できる。
【0022】
図2は、実施の形態1に係るメモリに1つのデータが書き込まれた場合の例を示す図である。図2の例では、512メガバイトのメモリ12に64メガバイトのデータが書き込まれている。データおよびアドレスは16進法の数字で表現されており、1桁は4ビットである。アドレスは、32ビット(8桁)の数字列である。1アドレスには、32ビット(8桁)のデータが記憶されている。データはアドレス0x05000000から0x08FFFFFFに書き込まれており、それ以外の領域(0x00000000から0x04FFFFFF、0x09000000から0x1FFFFFFF)は、データが何も書き込まれていないブランク状態(値としては全て1)である。
【0023】
図2の例では、ブランク状態の部分も含めてメモリ全域を1バイト単位で区切って、加算して求めたデータ・チェックサム値は、0x1FE7000000であるとする。一方、データの先頭アドレスを1バイト単位で区切って、加算して求めたアドレス・チェックサム値は、0x05となる。したがって、チェックサム合計値は、データ・チェックサム値0x1FE7000000とアドレス・チェックサム値0x05を合計した0x1FE7000005となる。
【0024】
図3は、実施の形態1に係るメモリに1つのデータが誤ったアドレスに書き込まれた場合の例を示す図である。図2の書き込みアドレスが正しいアドレスとし、図3は、図2と同じデータが誤ったアドレスに書き込まれた例である。64メガバイトのデータは、アドレス0x00000000からアドレス0x03FFFFFFまでに書き込まれ、アドレス0x04000000以降はブランク状態となる。
【0025】
この条件でデータ・チェックサム値を計算すると0x1FE7000000となり、これは図2の例と同じデータ・チェックサム値となる。すなわち、データ・チェックサム値だけでは、書き込まれたアドレスの誤りを検出することはできない。本実施の形態では、計算部13は、アドレス・チェックサム値0x00を計算し、アドレス・チェックサム値とデータ・チェックサム値との合計値0x1FE7000000を計算する。この合計値は、正しいアドレスにデータを書き込んだ図1の例のチェックサム合計値0x1FE7000005と一致しないので、データを書き込むアドレスに誤りがあることを検出できる。
【0026】
図4は、実施の形態1に係るメモリ書き込み確認の動作の一例を示すフローチャートである。まず、書き込み部11がメモリ12にデータを書き込む(ステップS11)。計算部13は、メモリ12に書き込まれたデータのデータ・チェックサム値を計算し(ステップS12)、書き込まれたアドレスのアドレス・チェックサム値を計算する(ステップS13)。次に、計算部13は、データ・チェックサム値とアドレス・チェックサム値とを合計し、チェックサム合計値を計算する(ステップS14)。計算部13は、算出したチェックサム合計値を表示部14に送る。表示部14は、受け取ったチェックサム合計値を表示し(ステップS15)、処理を終了する。
【0027】
なお、ステップS14を省略し、計算部13は、算出したデータ・チェックサム値およびアドレス・チェックサム値を表示部14に送り、表示部14は、受け取ったデータ・チェックサム値およびアドレス・チェックサム値を表示してもよい。
【0028】
以上、書き込み部11がメモリ12に1つのデータを書き込む場合について説明した。以下に、書き込み部11がメモリ12に複数のデータを書き込む場合について説明する。
【0029】
図5は、実施の形態1に係るメモリに複数のデータが書き込まれた場合の例を示す図である。図5の例は、512メガバイトのメモリ12に64メガバイトの3つのデータが書き込まれている。データ1はアドレス0x00000000から0x03FFFFFFに書き込まれ、データ2はアドレス0x05000000から0x08FFFFFFに書き込まれ、データ3はアドレス0x1A000000から0x1EFFFFFFに書き込まれている。それ以外の領域(0x04000000から0x04FFFFFF、0x09000000から0x1BFFFFFF、0x1F000000から0x1FFFFFFF)は、データが何も書き込まれていないブランク状態(データとしては全て1)である。
【0030】
図5の例では、ブランク状態の部分も含めてメモリ全域を1バイト単位で区切って、加算して求めたデータ・チェックサム値は、0x13EC900000であるとする。一方、データ1の先頭アドレスを1バイト単位で区切って、加算して求めたアドレス・チェックサム値は、0x00、データ2のアドレス・チェックサム値は、0x05、データ3のアドレス・チェックサム値は、0x1Aとなる。したがって、チェックサム合計値は、データ・チェックサム値0x1FE7000000とアドレス・チェックサム値0x00、0x05および0x1Aを合計した0x13EC90001Fとなる。
【0031】
図6は、複数のデータが書き込まれた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。まず、書き込み部11がメモリ12にデータを書き込む(ステップS21)。計算部13は、メモリ12に書き込まれたデータ1、データ2およびデータ3のデータ・チェックサム値を計算する(ステップS22)。計算部13は、メモリ12に書き込まれたデータ1のアドレス・チェックサム値を計算する(ステップS23)。計算部13は、メモリ12に書き込まれたデータ2のアドレス・チェックサム値を計算する(ステップS24)。計算部13は、書き込まれたデータ3のアドレス・チェックサム値を計算する(ステップS25)。次に、計算部13は、データ・チェックサム値と各アドレス・チェックサム値とを合計し、チェックサム合計値を計算する(ステップS26)。計算部13は、算出したチェックサム合計値を表示部14に送る。表示部14は、受け取ったチェックサム合計値を表示し(ステップS27)、処理を終了する。
【0032】
なお、計算部13は、ステップS26でアドレス・チェックサム値の合計値を計算し、算出したデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示部14に送り、ステップS27で、表示部14は、受け取ったデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示してもよい。
【0033】
以上説明したように、実施の形態1のメモリ書き込み確認装置1によれば、ユーザは、表示部14に表示されたチェックサム合計値、または、データ・チェックサム値およびアドレス・チェックサム値を確認することで、メモリ12に書き込んだデータの正常性だけでなく、書き込みアドレスの正常性も確認できる。
【0034】
表示部14にチェックサム合計値を表示する場合、ユーザは、書き込まれたデータおよび書き込まれたアドレスの少なくとも一方に誤りがあることを確認できる。表示部14にデータ・チェックサム値およびアドレス・チェックサム値を表示する場合、ユーザは、まず、データ・チェックサム値が期待した値でなかった場合、データの書き込みそのものが失敗している可能性があることが判断できる。そして、アドレス・チェックサム値が期待した値でなかった場合、データを書き込むアドレスを間違ってしまった可能性があることが判断できる。
【0035】
なお、メモリ12に複数のデータを書き込んだ場合であって、データ・チェックサム値は期待した値だがアドレス・チェックサム値の合計値が期待した値でなかった場合、ユーザは、メモリ書き込み確認装置1に操作入力し、各アドレス・チェックサム値を表示部14に表示させることができる構成にしてもよい。
【0036】
(実施の形態2)
図7は、本発明の実施の形態2に係るメモリ書き込み確認装置の構成例を示すブロック図である。実施の形態2のメモリ書き込み確認装置1は、実施の形態1のメモリ書き込み確認装置1の構成に加えて、判定部15を備える。判定部15は、書き込み対象のデータのあらかじめ設定されたデータ・チェックサム値およびアドレス・チェックサム値を記憶しており、計算部13が計算したデータ・チェックサム値およびアドレス・チェックサム値と、あらかじめ設定されたデータ・チェックサム値およびアドレス・チェックサム値とそれぞれ比較し、データ・チェックサム値およびアドレス・チェックサム値が一致するか否かを判定する。
【0037】
判定部15は、データ・チェックサム値およびアドレス・チェックサム値のいずれかが一致しないと判定した場合は、エラーを表示部14に表示させる。データ・チェックサム値が一致せず、書き込んだデータそのものに誤りがあると判定した場合は、判定部15は、たとえば、「データの書き込みに失敗しました」というエラーメッセージを表示部14に表示させる。アドレス・チェックサム値が一致せず、書き込んだアドレスに誤りがあると判定した場合は、判定部15は、たとえば、「データの書き込みアドレスに誤りがあります」というエラーメッセージを表示部14に表示させる。判定部15は、どちらも一致すると判定した場合は、「データの書き込みに成功しました」というメッセージを表示部14に表示させてもよい。
【0038】
なお、判定部15は、書き込み対象のデータのあらかじめ設定されたチェックサム合計値を記憶しておいてもよい。この場合、判定部15は、計算部13がデータ・チェックサム値とアドレス・チェックサム値とを合計して算出したチェックサム合計値と、あらかじめ設定されたチェックサム合計値とを比較し、一致するか否かを判定する。判定部15によってチェックサム合計値が一致しないと判定された場合は、エラーを表示部14に表示させる。
【0039】
図8は、実施の形態2に係るメモリ書き込み確認の動作の一例を示すフローチャートである。まず、書き込み部11がメモリ12にデータを書き込む(ステップS31)。計算部13は、メモリ12に書き込まれたデータのデータ・チェックサム値を計算し(ステップS32)、書き込まれたアドレスのアドレス・チェックサム値を計算する(ステップS33)。
【0040】
判定部15は、あらかじめ設定されたデータ・チェックサム値と比較し、計算部13が計算したデータ・チェックサム値が一致するか否かを判定する(ステップS34)。計算したデータ・チェックサム値があらかじめ設定されたデータ・チェックサム値と一致しない場合(ステップS34;NO)、判定部15は、表示部14にデータの誤りを示すエラーを表示させる(ステップS35)。計算したデータ・チェックサム値があらかじめ設定されたデータ・チェックサム値と一致する場合(ステップS34;YES)、判定部15は、あらかじめ設定されたアドレス・チェックサム値と比較し、計算部13が算出したアドレス・チェックサム値が一致するか否かを判定する(ステップS36)。計算したアドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致する場合(ステップS36;YES)、処理を終了する。計算したアドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致しない場合(ステップS36;NO)、判定部15は、表示部14にアドレスの誤りを示すエラーを表示させ(ステップS37)、処理を終了する。
【0041】
なお、計算部13は、ステップS33の後、データ・チェックサム値とアドレス・チェックサム値とを合計してチェックサム合計値を計算し、判定部15は、あらかじめ設定されたチェックサム合計値と比較し、チェックサム合計値があらかじめ設定されたチェックサム合計値と一致しない場合、表示部14にデータおよびアドレスのいずれかに誤りがあることを示すエラーを表示させてもよい。
【0042】
以上説明したように、実施の形態2のメモリ書き込み確認装置1によれば、ユーザは、自分でデータ・チェックサム値およびアドレス・チェックサム値が期待した値と一致するか否かを判断することなく、表示部14に表示されたエラー表示を見るだけで、メモリ12に書き込んだデータの正常性だけでなく、書き込みアドレスの正常性も確認できる。
【0043】
(実施の形態3)
本発明の実施の形態3のメモリ書き込み確認装置1は、実施の形態1のメモリ書き込確認装置11と同様の構成である。実施の形態3のメモリ書き込み確認装置1の計算部13は、データの先頭アドレスと同じ桁数の別のパラメータ値を生成して、パラメータ値を所定の単位で区切った値と、データの先頭アドレスを所定の単位で区切った値とを積算した後に加算して、複合アドレス・チェックサム値を計算する。計算部13が生成するパラメータ値は、所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値である。本実施の形態では、バイト単位で区切った各値がすべて異なるパラメータ値を生成する。
【0044】
計算部13は、データ・チェックサム値と複合アドレス・チェックサム値とを合計したチェックサム合計値を計算し、算出したチェックサム合計値を表示部14に表示させる。あるいは、計算部13は、データ・チェックサム値および複合アドレス・チェックサム値を表示部14に送って表示させてもよい。この場合、ユーザは、データ・チェックサム値が期待した値でなかったとき、書き込まれたデータに誤りがあることを確認でき、複合アドレス・チェックサム値が期待した値でなかったとき、書き込まれたアドレスに誤りがあることを確認できる。
【0045】
アドレス・チェックサム値を、データを書き込んだ先頭アドレスを1バイト単位に区切って加算して求める場合、アドレスは異なるがアドレス・チェックサム値が同じとなる場合が存在する。たとえば、データを書き込む先頭アドレス0x05000000を、0x00050000と間違えてしまった場合、アドレス・チェックサム値は同じ0x05となる。そこで、本実施の形態では、書き込みアドレスの間違いを検出する精度をさらに向上させる。
【0046】
以下、データを書き込む先頭アドレス0x05000000を、先頭アドレス0x00050000と間違えた場合について説明する。
【0047】
データの先頭アドレスが10桁であるので、計算部13は、たとえば、10桁のパラメータ値0x01020304を生成する。データを書き込む先頭アドレスは0x05000000であるので、アドレスとパラメータ値とを1バイト単位で積算して加算すると、上位から0x01*0x05で0x05、0x02*0x00で0x00、0x03*0x00で0x00、0x04*0x00で0x00となり、これらの値を合計した複合アドレス・チェックサム値は0x05となるはずである。
【0048】
一方、データを書き込んだ先頭アドレスは0x00050000であるので、アドレスとパラメータ値とを1バイト単位で積算して加算すると、上位から0x01*0x00で0x00、0x02*0x05で0x0A、0x03*0x00で0x00、0x04+0x00で0x00となり、これらの値を合計した複合アドレス・チェックサム値は0x0Aとなる。
【0049】
このように、複合アドレス・チェックサム値は異なる結果となるため、データを書き込むアドレスを間違ったことを検出することができる。
【0050】
計算部13は、データの先頭アドレスと同じ桁数のパラメータ値を生成して、パラメータ値を1ニブル(4ビット)単位で区切った値と、データの先頭アドレスを1ニブル(4ビット)単位で区切った値と、を積算した後に加算して、複合アドレス・チェックサム値を計算してもよい。
【0051】
データを書き込む先頭アドレス0x05000000を、ドレス・チェックサム値が同じとなるアドレス0x00050000と間違えた場合、計算部13は、たとえば、同じ桁数のパラメータ値0x01234567を生成する。データを書き込むアドレスが0x05000000である場合、アドレスとパラメータ値とを1ニブル単位で積算して加算すると、上位から0x0*0x0で0x0、0x1*0x5で0x5、0x2*0x0で0x0、0x3*0x0で0x0、0x4*0x0で0x0、0x5*0x0で0x0、0x6*0x0で0x0、0x7*0x0で0x0となり、これらの値を合計した複合アドレス・チェックサム値は0x05となるはずである。
【0052】
一方、データを書き込んだアドレスが0x00050000である場合、アドレスとパラメータ値とを1バイト単位で積算して加算すると、上位から0x0*0x0で0x0、0x1*0x0で0x0、0x2*0x0で0x0、0x3*0x5で0xF、0x4*0x0で0x0、0x5*0x0で0x0、0x6*0x0で0x0、0x7*0x0で0x0となり、これらの値を合計した複合アドレス・チェックサム値は0x0Fとなる。
【0053】
1ニブル(4ビット)単位で区切った場合、さらに書き込みアドレスの間違いを検出する精度を上げることができる。
【0054】
なお、実施の形態3を実施の形態2と組み合わせてもよい。この場合、判定部15が、計算部13が算出したアドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致すると判定した場合にのみ、計算部13は、複合アドレス・チェックサム値を計算するとよい。
【0055】
図9は、実施の形態3を実施の形態2と組み合わせた場合のメモリ書き込み確認の動作の一例を示すフローチャートである。ステップS41〜ステップS46は、図8のステップ31〜ステップ36と同じである。アドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致しない場合(ステップS46;NO)、表示部14にアドレスの誤りを示すエラーを表示させ(ステップS49)、処理を終了する。
【0056】
アドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致する場合(ステップS46;YES)、計算部13は、データの先頭アドレスと同じ桁数のパラメータ値を生成して、パラメータ値を所定の単位で区切った値と、データの先頭アドレスを所定の単位で区切った値と、を積算した後に加算して、複合アドレス・チェックサム値を計算する(ステップS47)。
【0057】
計算した複合アドレス・チェックサム値があらかじめ設定された複合アドレス・チェックサム値と一致しない場合(ステップS48;NO)、表示部14にアドレスの誤りを示すエラーを表示させ(ステップS49)、処理を終了する。アドレス・チェックサム値があらかじめ設定されたアドレス・チェックサム値と一致する場合(ステップS48;YES)、処理を終了する。
【0058】
また、実施の形態3において、書き込み部11がメモリ12に複数のデータを書き込む場合、計算部13は、メモリ12に書き込まれた複数のデータのデータ・チェックサム値と、複数のデータそれぞれの複合アドレス・チェックサム値とを計算する。計算部13は、データ・チェックサム値と各複合アドレス・チェックサム値とを合計し、チェックサム合計値を計算し、表示部14に表示させる。あるいは、計算部13は、複数のデータそれぞれの複合アドレス・チェックサム値を合計して複合アドレス・チェックサム合計値を計算し、データ・チェックサム値と複合アドレス・チェックサム合計値とを表示部14に表示させてもよい。
【0059】
なお、計算部13は、ステップS26でアドレス・チェックサム値の合計値を計算し、算出したデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示部14に送り、ステップS27で、表示部14は、受け取ったデータ・チェックサム値およびアドレス・チェックサム値の合計値を表示してもよい。
【0060】
以上説明したように、実施の形態3のメモリ書き込み確認装置1によれば、間違いを検出する精度をさらに向上させることができる。
【0061】
なお、上記の実施の形態では、メモリ書き込み確認装置1の計算部13は、アドレス・チェックサム値の計算を必ず行った。しかし、本発明はこれに限られず、ユーザがアドレス・チェックサム値の計算を有効または無効に選択できるようにしてもよい。この場合、メモリ書き込み確認装置1は、入力部を備え、計算部13は、ソフトウェアスイッチを備える。ユーザが入力部に入力し、アドレス・チェックサム値の計算を有効にすると、計算部13は、ソフトウェアスイッチを「アドレス・チェックサム計算(ON)」に設定する。
【0062】
一方、ユーザが入力部に入力し、アドレス・チェックサム値の計算を無効にすると、ソフトウェアスイッチを「アドレス・チェックサム計算(OFF中)」に設定する。ソフトウェアスイッチが「アドレス・チェックサム計算(ON)」に設定されると、計算部13は、データ・チェックサム値の計算と、アドレス・チェックサム値の計算と、チェックサム合計値の計算とを実行する。ソフトウェアスイッチが「アドレス・チェックサム計算(ON)」に設定されると、計算部13は、データ・チェックサム値の計算のみを実行する。
【0063】
また、実施の形態3では、実施の形態2と組み合わせ可能であることを説明したが、実施の形態3と実施の形態1とを組み合わせてもよい。この場合、計算部13は、データ・チェックサム値と、アドレス・チェックサム値と、複合アドレス・チェックサム値と、を計算し、データ・チェックサム値と、アドレス・チェックサム値と、複合アドレス・チェックサム値とを合計したチェックサム合計値を表示部14に表示させる。あるいは、計算部13は、データ・チェックサム値と、アドレス・チェックサム値と、複合アドレス・チェックサム値とをそれぞれ表示部14に表示させる。
【0064】
図10は、本発明の実施の形態に係るメモリ書き込み確認装置のハードウェア構成の一例を示すブロック図である。メモリ書き込み確認装置1は、図10に示すように、制御部21、主記憶部22、外部記憶部23、操作部24および表示部25を備える。主記憶部22、外部記憶部23、操作部24および表示部25はいずれも内部バス20を介して制御部21に接続されている。
【0065】
制御部21はCPU(Central Processing Unit)等から構成され、外部記憶部23に記憶されている制御プログラム30に従って、書き込み部11、計算部13および判定部15の各処理を実行する。
【0066】
主記憶部22はRAM(Random-Access Memory)等から構成され、外部記憶部23に記憶されている制御プログラム30をロードし、制御部21の作業領域として用いられる。
【0067】
外部記憶部23は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random-Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、メモリ書き込み確認装置1の処理を制御部21に行わせるためのプログラムをあらかじめ記憶し、また、制御部21の指示に従って、このプログラムが記憶するデータを制御部21に供給し、制御部21から供給されたデータを記憶する。メモリ12は、外部記憶部23に構成される。
【0068】
操作部24はキーボードやテンキーなどのポインティングデバイス等と、キーボードやテンキー等を内部バス20に接続するインタフェース装置から構成されている。さらに操作部24は音声入力装置を備えることとしてもよい。ユーザが書き込み部11にデータの書き込み指示を行う場合や、アドレス・チェックサム値の計算の有効または無効を選択する場合などは、操作部24を介して、指示が制御部21に供給される。
【0069】
表示部25は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、制御部21から送られてきた情報を表示する。表示部25は、制御部21から受け取ったデータ・チェックサム値やチェックサム合計値を表示したり、エラーを表示したりする。表示部25は表示部14である。
【0070】
図1または図7に示すメモリ書き込み確認装置1の書き込み部11、計算部13、表示部14および判定部15の処理は、制御プログラム30が、制御部21、主記憶部22、外部記憶部23、操作部24および表示部25などを資源として用いて処理することによって実行する。
【0071】
その他、前記のハードウェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【0072】
制御部21、主記憶部22、外部記憶部23、操作部24、内部バス20などから構成されるメモリ書き込み確認処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するメモリ書き込み確認装置1を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでメモリ書き込み確認装置1を構成してもよい。
【0073】
また、メモリ書き込み確認装置1の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0074】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【0075】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0076】
(付記1)
記憶媒体にデータを書き込む書き込み手段と、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段と、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段と、
を備えることを特徴とするメモリ書き込み確認装置。
【0077】
(付記2)
前記データ・チェックサム値および前記アドレス・チェックサム値をそれぞれあらかじめ設定された値と比較し、前記計算手段が計算した前記データ・チェックサム値および前記アドレス・チェックサム値と、前記あらかじめ設定された値とがそれぞれ一致するか否かを判定する判定手段をさらに備え、
前記表示手段は、前記判定手段によって前記データ・チェックサム値および/または前記アドレス・チェックサム値と前記あらかじめ設定された値とが一致しないと判定された場合、エラーを表示することを特徴とする付記1に記載のメモリ書き込み確認装置。
【0078】
(付記3)
前記計算手段は、前記所定の位置のアドレスと同じ桁数であって、前記所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値を生成し、前記所定の位置のアドレスを前記所定の単位で区切った値と、前記パラメータ値を前記所定の単位で区切った値と、をそれぞれ積算した後に加算した結果の値、または、その結果の値の下位の前記所定の単位の値を複合アドレス・チェックサム値として計算し、
前記表示手段は、前記データ・チェックサム値および前記複合アドレス・チェックサム値を表示することを特徴とする付記1または2に記載のメモリ書き込み確認装置。
【0079】
(付記4)
前記パラメータ値は、前記所定の単位で区切った各値がすべて異なることを特徴とする付記3に記載のメモリ書き込み確認装置。
【0080】
(付記5)
前記書き込み手段が前記記憶媒体に2以上のデータを書き込む場合、
前記計算手段は、前記記憶媒体のメモリ全域の前記データ・チェックサム値と、それぞれの前記アドレス・チェックサム値または前記複合アドレス・チェックサム値を合計したアドレス・チェックサム合計値とを計算し、
前記表示手段は、前記データ・チェックサム値および前記アドレス・チェックサム合計値を表示する、
ことを特徴とする付記1ないし4のいずれかに記載のメモリ書き込み確認装置。
【0081】
(付記6)
前記計算手段は、前記データ・チェックサム値と、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値と、を合計したチェックサム合計値を計算し、
前記表示手段は、前記チェックサム合計値を表示する、
ことを特徴とする付記1ないし5のいずれかに記載のメモリ書き込み確認装置。
【0082】
(付記7)
前記計算手段は、前記データを書き込んだアドレスの先頭アドレスのアドレス・チェックサム値について、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値を計算することを特徴とする付記1ないし6のいずれかに記載のメモリ書き込み確認装置。
【0083】
(付記8)
前記所定の単位は、1バイト単位であることを特徴とする付記1ないし7のいずれかに記載のメモリ書き込み確認装置。
【0084】
(付記9)
前記所定の単位は、1ニブル単位であることを特徴とする付記1ないし7のいずれかに記載のメモリ書き込み確認装置。
【0085】
(付記10)
メモリ書き込み確認装置が実行する
記憶媒体にデータを書き込む書き込みステップと、
前記書き込みステップで前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算ステップと、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示ステップと、
を備えることを特徴とするメモリ書き込み確認方法。
【0086】
(付記11)
前記データ・チェックサム値および前記アドレス・チェックサム値をそれぞれあらかじめ設定された値と比較し、前記計算ステップで計算した前記データ・チェックサム値および前記アドレス・チェックサム値と、前記あらかじめ設定された値とがそれぞれ一致するか否かを判定する判定ステップをさらに備え、
前記表示ステップでは、前記判定ステップで前記データ・チェックサム値および/または前記アドレス・チェックサム値と前記あらかじめ設定された値とが一致しないと判定された場合、エラーを表示することを特徴とする付記10に記載のメモリ書き込み確認方法。
【0087】
(付記12)
前記計算ステップでは、前記所定の位置のアドレスと同じ桁数であって、前記所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値を生成し、前記所定の位置のアドレスを前記所定の単位で区切った値と、前記パラメータ値を前記所定の単位で区切った値と、をそれぞれ積算した後に加算した結果の値、または、その結果の値の下位の前記所定の単位の値を複合アドレス・チェックサム値として計算し、
前記表示ステップでは、前記データ・チェックサム値および前記複合アドレス・チェックサム値を表示することを特徴とする付記10または11に記載のメモリ書き込み確認方法。
【0088】
(付記13)
前記パラメータ値は、前記所定の単位で区切った各値がすべて異なることを特徴とする付記12に記載のメモリ書き込み確認方法。
【0089】
(付記14)
前記書き込みステップで前記記憶媒体に2以上のデータを書き込む場合、
前記計算ステップでは、前記記憶媒体のメモリ全域の前記データ・チェックサム値と、それぞれの前記アドレス・チェックサム値または前記複合アドレス・チェックサム値を合計したアドレス・チェックサム合計値とを計算し、
前記表示ステップでは、前記データ・チェックサム値および前記アドレス・チェックサム合計値を表示する、
ことを特徴とする付記10ないし13のいずれかに記載のメモリ書き込み確認方法。
【0090】
(付記15)
前記計算ステップでは、前記データ・チェックサム値と、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値と、を合計したチェックサム合計値を計算し、
前記表示ステップでは、前記チェックサム合計値を表示する、
ことを特徴とする付記10ないし14のいずれかに記載のメモリ書き込み確認方法。
【0091】
(付記16)
前記計算ステップでは、前記データを書き込んだアドレスの先頭アドレスのアドレス・チェックサム値について、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値を計算することを特徴とする付記10ないし15のいずれかに記載のメモリ書き込み確認方法。
【0092】
(付記17)
前記所定の単位は、1バイト単位であることを特徴とする付記10ないし16のいずれかに記載のメモリ書き込み確認方法。
【0093】
(付記18)
前記所定の単位は、1ニブル単位であることを特徴とする付記10ないし16のいずれかに記載のメモリ書き込み確認方法。
【0094】
(付記19)
コンピュータを、
記憶媒体にデータを書き込む書き込み手段、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0095】
1 メモリ書き込み確認装置
11 書き込み部
12 メモリ
13 計算部
14 表示部
15 判定部
21 制御部
22 主記憶部
23 外部記憶部
24 操作部
25 表示部
30 制御プログラム

【特許請求の範囲】
【請求項1】
記憶媒体にデータを書き込む書き込み手段と、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段と、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段と、
を備えることを特徴とするメモリ書き込み確認装置。
【請求項2】
前記データ・チェックサム値および前記アドレス・チェックサム値をそれぞれあらかじめ設定された値と比較し、前記計算手段が計算した前記データ・チェックサム値および前記アドレス・チェックサム値と、前記あらかじめ設定された値とがそれぞれ一致するか否かを判定する判定手段をさらに備え、
前記表示手段は、前記判定手段によって前記データ・チェックサム値および/または前記アドレス・チェックサム値と前記あらかじめ設定された値とが一致しないと判定された場合、エラーを表示することを特徴とする請求項1に記載のメモリ書き込み確認装置。
【請求項3】
前記計算手段は、前記所定の位置のアドレスと同じ桁数であって、前記所定の単位で区切った各値が少なくとも全部同一ではないパラメータ値を生成し、前記所定の位置のアドレスを前記所定の単位で区切った値と、前記パラメータ値を前記所定の単位で区切った値と、をそれぞれ積算した後に加算した結果の値、または、その結果の値の下位の前記所定の単位の値を複合アドレス・チェックサム値として計算し、
前記表示手段は、前記データ・チェックサム値および前記複合アドレス・チェックサム値を表示することを特徴とする請求項1または2に記載のメモリ書き込み確認装置。
【請求項4】
前記パラメータ値は、前記所定の単位で区切った各値がすべて異なることを特徴とする請求項3に記載のメモリ書き込み確認装置。
【請求項5】
前記書き込み手段が前記記憶媒体に2以上のデータを書き込む場合、
前記計算手段は、前記記憶媒体のメモリ全域の前記データ・チェックサム値と、それぞれの前記アドレス・チェックサム値または前記複合アドレス・チェックサム値を合計したアドレス・チェックサム合計値とを計算し、
前記表示手段は、前記データ・チェックサム値および前記アドレス・チェックサム合計値を表示する、
ことを特徴とする請求項1ないし4のいずれか1項に記載のメモリ書き込み確認装置。
【請求項6】
前記計算手段は、前記データ・チェックサム値と、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値と、を合計したチェックサム合計値を計算し、
前記表示手段は、前記チェックサム合計値を表示する、
ことを特徴とする請求項1ないし5のいずれか1項に記載のメモリ書き込み確認装置。
【請求項7】
前記計算手段は、前記データを書き込んだアドレスの先頭アドレスのアドレス・チェックサム値について、前記アドレス・チェックサム値、前記複合アドレス・チェックサム値または前記アドレス・チェックサム合計値を計算することを特徴とする請求項1ないし6のいずれか1項に記載のメモリ書き込み確認装置。
【請求項8】
前記所定の単位は、1ニブル単位であることを特徴とする請求項1ないし7のいずれか1項に記載のメモリ書き込み確認装置。
【請求項9】
メモリ書き込み確認装置が実行する
記憶媒体にデータを書き込む書き込みステップと、
前記書き込みステップで前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算ステップと、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示ステップと、
を備えることを特徴とするメモリ書き込み確認方法。
【請求項10】
コンピュータを、
記憶媒体にデータを書き込む書き込み手段、
前記書き込み手段が前記記憶媒体に書き込んだ前記データのデータ・チェックサム値を計算し、前記データを書き込んだアドレスのうち、先頭から所定の位置のアドレスを2ビット以上の所定の単位に区切って加算した結果の値、または、その結果の値の下位の前記所定の単位の値をアドレス・チェックサム値として計算する計算手段、および、
前記データ・チェックサム値および前記アドレス・チェックサム値を表示する表示手段、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate