(58)【調査した分野】(Int.Cl.,DB名)
電源消失後もデータの保存を行える不揮発性メモリと、不揮発性メモリにデータを書き込むCPUを持ち、CPUと不揮発性メモリの端子間には複数の配線を接続しており、端子間の配線はアドレス指定するために0又は1の信号を通す複数のアドレス用配線と、データを送るために0又は1の信号を通す複数のデータ用配線からなっており、アドレスとデータをセットにしてCPUから不揮発性メモリへのデータ転送を行うようにしているデータ保存装置において、
転送データのうち、アドレスを2進数で表現した場合にアドレス内に信号1が1個以下である各アドレスには、データではなくそれぞれ異なる値に定めたパスワードを入力しておき、CPUから不揮発メモリへのデータ転送時、データとともに前記パスワードの転送を行い、データの転送後、不揮発メモリの指定アドレスに格納したパスワードを抽出し、抽出したパスワードと設定しておいたパスワードの比較を行うことによってデータ転送時の異常を検出することを特徴とするデータ保存装置。
請求項1に記載のデータ保存装置において、パスワードとして設定しておくデータも、データ内に信号1が1個以下となる値をパスワードとして設定するようにしているものであることを特徴とするデータ保存装置。
【背景技術】
【0002】
揮発性メモリは高速で読み書きが可能であるために一時的な記憶装置として広く普及しており、CPU内のメモリには揮発性メモリを使用している。しかし揮発性メモリは、電源が切れるとデータが消えるため保存の必要なデータは、揮発性メモリから不揮発性メモリに転送し、不揮発性メモリで保存するようにしている。データの転送は、CPUと不揮発性メモリの端子間を複数の配線で接続しておき、各線に0又は1の信号を送ることによって行う。端子間の配線は複数本のアドレス用配線と複数本のデータ用配線としており、0と1からなるアドレスと、0と1からなるデータ値をセットにして送る。CPU1からアドレスとデータを読み出し、不揮発性メモリ2の指定アドレスに対応するデータ値を書き込むことでデータの転送を行う。
【0003】
ここでアドレス用配線やデータ用配線に短絡や断線が発生すると、正しいデータを送ることはできなくなる。このデータ転送時における異常を検出するためには、サムチェックによる検査がよく行われている。サムチェックは、データ転送前にデータを値として合計しておき、合計値をデータと共に転送する。データの受信後にも同様にデータ値の合計を行い、データの転送前後で合計値を比較するものである。この場合、送信側と受信側で合計した値が同じであれば、データは正しく送信されたと判定するが、値を単純に加算するだけであるためにデータが異なっていても偶然同じ数値になる可能性があり、精度の点で問題がある。また、特開平3-255555では、転送データにチェック用のIDコードを付加しておき、転送後のチェックで異なっていれば異常と判定することを行っている。しかしこの場合、異常判定の信頼性を高めるにはチェックのためのIDコードをより多く設定することが必要となるためにデータを保存できる領域が少なくなり、偶然による誤判定の可能性が残ることになっていた。
【図面の簡単な説明】
【0009】
【
図1】本発明の一実施例でのパスワード設定状態を説明する転送データ説明図
【
図2】本発明の第一の実施例でのCPUと不揮発性メモリ間の結線説明図
【
図4】本発明の第一の実施例での転送データチェック手順説明図
【
図5】本発明の第二の実施例でのCPUと不揮発性メモリ間の結線説明図
【
図7】本発明の第二の実施例での転送データチェック手順説明図
【
図8】本発明の第三の実施例でのCPUと不揮発性メモリ間の結線説明図
【
図10】本発明の第三の実施例での転送データチェック手順説明図
【発明を実施するための形態】
【0010】
本発明の一実施例を図面を用いて説明する。
図1は本発明の一実施例でのパスワード設定状態を説明する転送データ説明図であって、CPU側で読み込む正常なデータを示している。
図2、
図5、
図8は、CPUと不揮発性メモリの間での配線状態を説明するブロック図である。CPU1は一時的なデータ保存しか行えず、電源が切れるとデータは消失するため、保存の必要なデータは電源が切れても保存が可能な不揮発性メモリ2に転送する。CPU1と不揮発性メモリ2の間は、アドレス用配線3とデータ用配線4でつないでいる。アドレス用配線3は第0bitから第7bitまでの8本、データ用配線4も第0bitから第7bitまでの8本で接続している。CPU1から不揮発性メモリ2へデータの転送を行う場合、各アドレス用配線3及びデータ用配線4内に0又は1のデータを流すことによってデータの転送を行う。この場合、アドレス用配線3やデータ用配線4に断線や短絡が発生していた場合、異常が発生している配線では、CPU1から送信した信号と不揮発性メモリ2側で受信した信号が異なることがあり、正しいデータの転送が行えなくなる。
【0011】
そのため、CPU1から不揮発性メモリ2へのデータの転送を行う場合に、データとともにパスワードを送るようにしておき、データの転送後にパスワードとの照合を行うようにしている。パスワードは、アドレスを2進数で表現した場合にアドレス内に信号1が1個以下である各アドレスで設定し、それ以外のアドレスには保存すべきデータ値を収納するようにしておく。アドレス内の信号1が1以下となるアドレスとは、具体的には2進数で「00000000」「00000001」「00000010」「00000100」「00001000」「00010000」「00100000」「01000000」「10000000」といったものである。
図1はCPU1から不揮発性メモリ2へ送るデータをアドレスとともに記載したものであり、8bitのデータであってアドレスとデータはNo.1からNo.256の256組ある。そのうち、パスワードを設定しているデータNo.およびその付近を抜粋している。ここでパスワードを設定しているのは、10進数で表している転送データNo.の、1、2、3、5、9、17、33、65、129であり、この部分のデータにはパスワードを設定しておく。この各アドレスに設定するパスワードは、それぞれ異なるものを設定し、パスワードの方もデータ内に信号1が1個以下となる値を設定しておく。つまり、パスワードもアドレスと同じの「00000000」「00000001」「00000010」・・・「10000000」で設定しておく。アドレスとパスワードは同じ値で組み合わせなくてもよいが、同じにした方がわかりやすいため実施例ではアドレスの値とパスワードの値を同じものにしている。
【0012】
CPU1から不揮発性メモリ2へのデータ転送は、転送データのNo.順に行い、アドレス用配線3にて送る0又は1を組み合わせによるアドレスの指定と、指定したアドレスにデータ用配線4を通じて送る0又は1の組み合わせによるデータを格納していく。データが正常に転送された場合、各パスワードを設定しているアドレスには、正しいパスワードが入力される。そのためデータの転送後、不揮発性メモリ2の指定アドレスに格納されているパスワードを読み出し、該当アドレスのパスワードと比較することでパスワードの確認を行い、パスワードが一致する場合には正常と判定する。そしてこの場合において、パスワードが一致しなかった場合には転送データに異常が発生していると判定する。
【0013】
具体例に基づいて説明を行う。
図1において、データはNo.1からNo.256まで順に書き込んでいく。データのNo.1はパスワード1を設定しており、アドレス「00000000」にはパスワード1のデータ「00000000」を設定している。同様にデータNo.2にはアドレス「00000001」にパスワード2のデータ「00000001」、データNo.3にはアドレス「00000010」にパスワード3のデータ「00000010」というように、パスワード9まで設定している。パスワード9はデータNo.129に設定しており、この場合のアドレスは「10000000」でパスワードも「10000000」としている。パスワードを設定するアドレスは、全て0のアドレスとアドレス中の一つのbitにのみ1が入る各アドレスであるため、後側に進むほどパスワードを入力しているデータはまばらになっている。256個のアドレスを持つデータ領域では、パスワードを定めておくアドレスは9箇所となり、残り247個のアドレスには保存するデータが入る。このデータ部分は毎回変化する値であるため、データの部分は「*」で表している。
【0014】
図2以降は、データの転送時に異常が発生した場合のものである。
図2から
図4は、CPU1と不揮発性メモリ2を結ぶ8本のアドレス用配線3のうち、第1bit部分のラインと第2bit部分のラインとの間で短絡が発生した場合におけるデータの転送状況を示したものである。この場合、CPUよりアドレス部分の第1bitのラインで信号1の出力を行うと、信号1のデータは第1bitのラインに加えて第2bitのラインにも送られる。そのため、CPUからのデータ読み出した際には、アドレス部分の第1bitのラインには信号1、第2bitのラインには信号0を出力していても、不揮発性メモリ2に書き込む際には、第1bitのラインと第2bitのラインの両方に信号1を書き込む。逆に、CPUではアドレス部分の第2bitのラインにのみ信号1の出力を行い、第1bitのラインには信号0の出力を行っていた場合も、不揮発性メモリ2では第1bitのラインと第2bitのラインの両方が信号1であると認識する。この状態を示したのが
図3であり、太枠で囲んでいる部分で誤ったデータが送られている。この部分はデータの転送を正常に行えた
図1では信号0となっていたが、短絡の影響によって不揮発性メモリ2には信号1が書き込まれることになっている。
【0015】
この場合、一部のデータは本来とは異なるアドレスに入力されることになる。データNo.2は、本来であればアドレス「00000010」にデータを送るはずであったが、第2bitでの信号が0から1に変化しているため、アドレス「00000110」に送ることになっている。そしてデータNo.5も、本来のアドレス「00000100」ではなく、アドレス「00000110」に送っている。またアドレス「00000110」はデータNo.7が入るアドレスであるため、データNo.7のデータもアドレス「00000110」に送っている。データはNo.1から順に書き込んでいるとすれば、
図4に記載しているように、アドレス「00000110」にはまずNo.3のデータ「0000010」を書き込む。その後、No.5のデータも同じアドレスに書き込むことになっているため、このアドレスには先に書き込んでいたNo.3の「00000010」を消してNo.5のデータ「00000100」を書き込む。更にその後、No.7のデータも同じアドレスに書き込むため、このアドレスにはNo.7のデータ「********」(*は0又は1)を書き込み、最終的にはアドレス「00000110」にはNo.7のデータが入っている。
【0016】
この場合、データの転送後に行う異常のチェック時、パスワード3とパスワード4で不一致が発生することになる。パスワード3のチェックでは、指定アドレスの「00000110」に入っているデータとパスワード3として設定していた「00000010」とを比較し、異なっている場合にはデータ異常の判定を行う。アドレス「00000110」は、データ書き込み時、最初はパスワード3の「00000010」を書き込んでいるが、その後にNo.5のデータを上書きし、さらにNo.7のデータを上書きしているため、最終的にはNo.7のデータが入っている。パスワード3とNo.7のデータを比較することで両者が異なっていることが確認できるとデータ異常と判定する。
【0017】
同様に、パスワード4でもチェックを行う。パスワード4も指定アドレスである「00000110」に入っているNo.7のデータと、パスワード4として設定していた「00000100」とを比較する。パスワード4とNo.7のデータを比較し、両者が異なっていることが確認できるとデータ異常と判定する。異常有無の判定は、複数個設定しているパスワードのうち、一つでも相違するものがあれば異常と判定し、全てのパスワードが一致した場合には正常と判定する。
【0018】
なお、No.7のデータは毎回変化するものであり、偶然パスワードと同じになる可能性がある。例えばNo.7のデータが「00000010」であった場合、これはパスワード3と同じ値であるため、パスワード3との比較を行った際には異常の検出を行うことができない。しかしその場合でも、パスワード4との比較を行った際にはこの値はパスワード4と同じになることはないため、異常の検出を行うことができる。パスワード3とパスワード4は別の値を設定しているため、パスワード3とパスワード4の両方で同じになることはあり得ず、データ異常の判定は確実に検出することができる。
【0019】
図5から
図7は、CPU1と不揮発性メモリ2を結ぶ8本のアドレス用配線3のうち、第3bit部分のラインで断線が発生した場合におけるデータの転送状況を示したものである。この場合、アドレス用配線の第3bitのラインではCPUより信号1の出力を行っても、不揮発性メモリ2の第3bitのラインに信号1は送られず、不揮発性メモリ2の第3bitのラインは常に信号0であると認識する。この状態を示したのが
図6であり、太枠で囲んでいる部分で誤ったデータが送られている。この部分は
図1に記載している正常なデータでは信号1となっていたが、断線の影響によって不揮発性メモリ2には信号0が送られている。
【0020】
この場合も、一部のデータは本来とは異なるアドレスに入力されることになる。データNo.9は、本来であればアドレス「00001000」にデータを送るはずであったが、アドレス「00000000」に送ることになっている。アドレス「00000000」はデータNo.1でパスワード1の「00000000」を入力していたが、データNo.9を上書きすることで「00001000」に書き換えられている。
【0021】
この場合、データの転送後に行う異常のチェック時、パスワード1で不一致が発生することになる。パスワード1のチェックは、アドレス「00000000」に入っているデータとパスワード1として設定していた「00000000」とを比較し、異なっている場合にはデータ異常の判定を行う。アドレス「00000000」は、データ書き込み時、最初はパスワード1の「00000000」を書き込んでいるが、その後にNo.9のデータを上書きしているため、最終的にはNo.9のパスワードである「00001000」が入っている。パスワード1の「00000000」と、指定アドレスに入っている「00001000」を比較すると、両者は異なっているためにデータ異常との判定を行う。
【0022】
図8から
図10は、CPU1と不揮発性メモリ2を結ぶ8本のデータ用配線4のうち、第2bit部分のラインと第3bit部分のラインとの間で短絡が発生した場合におけるデータの転送状況を示したものである。この場合、CPUよりデータ用配線の第2bitのラインで信号1の出力を行うと、信号1のデータは第2bitのラインに加えて第3bitのラインにも送られる。そのため、CPUではデータ部分の第2bitのラインに信号1、第3bitのラインには信号0を出力していても、不揮発性メモリ2には第2bitのラインと第3bitのラインの両方に信号1が送られる。そしてCPUではデータ部分の第3bitのラインに信号1の出力を行い、第2bitのラインには信号0の出力を行っていた場合も、不揮発性メモリ2では第2bitのラインと第3bitのラインの両方が信号1であると認識する。この状態を示したのが
図7であり、太枠で囲んでいる部分で誤ったデータが送られている。この部分は
図1での転送データは信号0となっていたが、短絡の影響によって不揮発性メモリ2には信号1が送られている。
【0023】
この場合、一部のアドレスでは本来とは異なるデータが入力されることになる。No.5のデータを書き込む場合、アドレス「00000100」には、本来であれば「00000100」を送るはずであったが、データの第3bitが0から1に変わっているため、データ「00001100」が送られることになっている。そしてデータNo.9も、本来のデータ「00001000」ではなく、データ「00001100」を送っている。
【0024】
この場合、データの転送後に行う異常のチェック時、パスワード4とパスワード5で不一致が発生することになる。パスワード4のチェックは、アドレス「00000100」に入っているデータとパスワード4として設定していた「00000100」とを比較し、異なっている場合にはデータ異常の判定を行う。アドレス「00000100」は、データ書き込み時に「00001100」を書き込んでため、パスワード4とは異なっている。パスワード4とデータを比較することで両者が異なっていることが確認できるとデータ異常と判定する。
【0025】
また、パスワード5でも同様にチェックを行う。パスワード5もアドレス「00001000」に入っているデータ「00001100」とパスワード5として設定していた「00001000」とを比較する。パスワード5とそのアドレスでのデータを比較し、両者が異なっていることが確認できるとデータ異常と判定する。
【0026】
本発明では転送時に異常が発生した場合に、偶然設定パスワードと同じ値になることで、異常の発生が見逃されるということはないため、データの信頼性を向上させることができる。また、パスワードを設定している部分では保存すべきデータを入力することができないが、パスワード用に使用するアドレスはデータ全体から比べると僅かな量となる。実施例では8bitのデータであって256個のアドレスがあるが、必要なパスワード数は9個となる。そしてbit数が一つ増えると、パスワードを一つ増やすことになるが、データ領域数は倍になっていくため、bit数が増加してデータのアドレス桁が増加するほどパスワードに使用するデータ領域の割合は小さくなっていく。
【0027】
なお、本発明は以上説明した実施例に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。