JPH09167120A - 記憶装置の誤り訂正装置 - Google Patents

記憶装置の誤り訂正装置

Info

Publication number
JPH09167120A
JPH09167120A JP7327424A JP32742495A JPH09167120A JP H09167120 A JPH09167120 A JP H09167120A JP 7327424 A JP7327424 A JP 7327424A JP 32742495 A JP32742495 A JP 32742495A JP H09167120 A JPH09167120 A JP H09167120A
Authority
JP
Japan
Prior art keywords
parity
data
storage area
checksum
error correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7327424A
Other languages
English (en)
Inventor
Takahiro Toyama
孝広 外山
Hiroyuki Sato
宏幸 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP7327424A priority Critical patent/JPH09167120A/ja
Publication of JPH09167120A publication Critical patent/JPH09167120A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 記憶装置に格納されたデータの1ビットに誤
りが発生した場合に、その誤りビットを効率よく検出
し、訂正し得る誤り訂正装置を提供する。 【解決手段】 電源オフ時に、バックアップRAM20
のデータ格納領域22を構成するクラスタa〜xの垂直
・水平パリティ32,34を計算し、パリティ格納領域
26に記憶する。一方、電源オン時には、各クラスタ毎
に、メモリ管理領域24に格納されたチェックサムを用
いて、データの異常判定を行い、データに異常があるク
ラスタについては、垂直・水平パリティを再計算し、そ
の計算結果とパリティ格納領域26内の垂直・水平パリ
ティとから誤りビットを特定して、誤り訂正を行なう。
この結果、CPU10における誤り訂正のための動作を
必要最小限に留め、CPU10の負担を軽減できる。従
って、専用のパリティ演算回路を別途設ける必要はな
く、既存の装置に容易に適用できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子装置への電源
供給が遮断されてもデータを保持可能に内部電源により
バックアップされた記憶装置の誤り訂正装置に関し、特
に、携帯型のバーコードリーダ等,使用する度に電源が
オン・オフされて一日の内の稼動時間が比較的短い電子
装置に搭載されたバックアップRAMのデータの誤り訂
正を行うのに好適な誤り訂正装置に関する。
【0002】
【従来の技術】従来より、記憶装置に格納されたデータ
の誤り検出には、記憶装置内のデータを加算したチェッ
クサムや、所定の単位データ(1バイト,1ワード等)
毎に付加したパリティが用いられるが、こうしたチェッ
クサムやパリティでは、データの誤り訂正を行うことが
できない。また、データの誤り訂正には、ハミング符
号,ファイヤ符号,リード・ソロモン符号等が用いられ
るが、こうした従来の誤り訂正の手法では、データに付
加するビット数が多く、また装置が高価になるという問
題がある。
【0003】一方、こうした問題を解決するために、例
えば特開昭59−110098号公報に開示された装置
では、記憶装置に格納するデータに対して、1ワード単
位でパリティ(横パリティ)を付加すると共に、各ワー
ドを縦に並べた際の各列毎(つまり各ワードのビット
毎)にパリティ(縦パリティ)を付加し、データの読み
出し時には、1ワード毎に横パリティをチェックして、
そのワードが正常かどうかを判定し、ワードが異常であ
れば、縦パリティをチェックして、そのワードの誤りビ
ットを検出し、そのビットを訂正するようにしている。
【0004】つまり、この提案の装置では、記憶装置内
のデータを1ワード単位で縦方向に並べた状態で各行・
各列毎にパリティを付加することにより、データ異常時
に、異常が発生したビットを特定して、誤り訂正を行う
のである。従って、この装置によれば、パリティ計算の
みで記憶装置に格納されたデータの誤り訂正を行うこと
ができ、比較的簡単な装置にて実現できる。
【0005】
【発明が解決しようとする課題】しかし、上記従来装置
では、記憶装置からデータを読み出す時に、データの誤
りチェックを行うようにしているため、記憶装置にデー
タを書込む度に、縦パリティを計算して更新しなければ
ならず、データを更新しながら所定の処理を行う際の所
要時間が長くなるといった問題があった。また、上記公
報の実施例に開示されているように、パリティ計算を行
う演算手段を、高速演算可能な専用の演算回路を用いて
ハード構成とすれば、その演算時間を短縮できるので、
上記問題を抑制できるが、こうした演算回路を備えてい
ない既存の装置に適用するには、別途演算回路を設けな
ければならず、コストアップになるといった問題があっ
た。
【0006】一方、上記提案の装置は、縦・横パリティ
を用いて記憶装置内の誤りビットを特定するものであ
り、誤り訂正可能なビット数は、縦・横パリティを付加
した一つのデータ格納領域に対して1ビットである。従
って、上記提案の装置は、静電気等の外乱ノイズによる
複数ビットに対するデータ誤りに対しては、誤りビット
を特定してデータを訂正することができないが、シング
ルイベントアップセットによる1ビットのデータ誤りに
は有効である。このシングルイベントアップセットは、
主に放射線が記憶装置に侵入することにより発生する
が、記憶装置に充分な電源電圧が供給されている場合に
は、データは記憶装置にしっかりと保持されているの
で、データ誤りが発生する可能性は少なく、1ビットの
データ誤りは、記憶装置が内部電源にてバックアップさ
れ、その供給電圧が電子装置の通常動作時よりも低くな
っているときに発生し易いのである。
【0007】従って、上記提案の装置によれば、記憶装
置に格納されたデータの1ビットの誤り訂正を行うこと
はできるものの、縦・横パリティの計算,誤りチェッ
ク,及び誤り訂正を、記憶装置に対してデータの読み書
きを行う際に実行するので、こうした誤り訂正のための
動作を無駄に行っていることになる。
【0008】本発明は、こうした問題に鑑みなされたも
ので、記憶装置に格納されたデータの1ビットに誤りが
発生した場合に、その誤りビットを効率よく検出し、訂
正し得る誤り訂正装置を提供することにより、その誤り
訂正を、特別な演算回路を用いることなく、所謂ソフト
処理にて実現できるようにすることを目的とする。
【0009】
【課題を解決するための手段】かかる目的を達成するた
めになされた請求項1に記載の発明は、所定の電子装置
内に設けられ、該電子装置への電源供給が遮断されても
データを保持可能に内部電源によりバックアップされた
記憶装置の誤り訂正装置であって、前記電子装置への電
源供給遮断時に、前記記憶装置のデータ格納領域をマト
リクス状に展開した各行・各列毎にパリティを計算する
第1のパリティ演算手段と、該第1のパリティ演算手段
により算出された前記各行・各列のパリティを、垂直・
水平パリティとして、前記記憶装置のパリティ格納領域
に格納するパリティ格納手段と、前記電子装置への電源
投入直後に、前記データ格納領域に格納されたデータが
正常であるか否かを判定する第1の判定手段と、該第1
の判定手段にて前記データが異常であると判定される
と、前記垂直・水平パリティを再計算する第2のパリテ
ィ演算手段と、該第2のパリティ演算手段により算出さ
れた垂直・水平パリティと、前記パリティ格納領域に格
納された垂直・水平パリティとを比較し、該パリティが
一致しない行・列を検索する検索手段と、該検索手段に
よる検索結果に基づき、前記データ格納領域内の異常ビ
ットを特定して、該ビットのデータを正常値に訂正する
誤り訂正手段と、を備えたことを特徴とする。
【0010】このように、請求項1に記載の誤り訂正装
置においては、記憶装置が設けられた電子装置への電源
供給遮断時に、第1のパリティ演算手段が、記憶装置の
データ格納領域をマトリクス状に展開した各行・各列毎
にパリティを計算し、パリティ格納手段が、その算出さ
れた各行・各列のパリティを、垂直・水平パリティとし
て、記憶装置のパリティ格納領域に格納する。
【0011】一方、電子装置に電源が投入されると、第
1の判定手段が、データ格納領域に格納されたデータが
正常であるか否かを判定する。そして、第1の判定手段
にてデータが異常であると判定されると、第2のパリテ
ィ演算手段が、垂直・水平パリティを再計算し、検索手
段が、その算出された垂直・水平パリティと、パリティ
格納領域に格納された垂直・水平パリティとを比較し
て、垂直・水平パリティが一致しない行・列を検索し、
誤り訂正手段が、その検索結果に基づき、データ格納領
域内の異常ビットを特定して、そのビットのデータを正
常値に訂正する。
【0012】即ち、記憶装置のデータ格納領域をマトリ
クス状に展開して、各行・各列毎にパリティ計算を行っ
た場合、その計算結果(つまり垂直・水平パリティ)か
ら誤り訂正を行うことができるのは、データ格納領域に
格納された全データ中、1ビットのデータであり、こう
した1ビットのデータ誤りは、前述のように、電子装置
への電源供給が遮断され、記憶装置が内部電源にてバッ
クアップされているときに発生し易い。
【0013】そこで本発明では、パリティ計算及びその
記憶を電子装置への電源供給遮断時に行い、データの異
常判定及びその誤り訂正は電子装置への電源投入時に行
うことにより、垂直・水平パリティを用いた誤り訂正た
めの動作を、必要最小限に留め、その動作を効率よく行
うことができるようにしているのである。
【0014】そしてこのように、本発明の誤り訂正装置
によれば、第1及び第2のパリティ演算手段による垂直
・水平パリティの計算は、電子装置への電源供給遮断時
と電源投入時とに行えばよく、従来装置のように、記憶
装置に対するデータの読み書きが行われるCPUの処理
動作中に実行する必要がないため、上記各構成要素を、
CPUによるソフト処理にて実現できる。このため、従
来装置のように、垂直・水平パリティの高速演算のため
に専用の演算回路を設ける必要がなく、既存の電子装置
にも容易に適用できる。
【0015】そして、特に、本発明の誤り訂正装置は、
電子装置への電源供給が遮断されているときに発生した
1ビットのデータ誤りを訂正するものであるため、使用
の度に電源がオン・オフされて一日の内の稼動時間が比
較的短く、しかも所謂バックアップRAMにてデータを
保持する必要がある電子装置、例えば、携帯型バーコー
ド読取装置等の携帯型電子装置に適用すれば、その効果
を充分発揮できるようになる。
【0016】なお、垂直・水平パリティは、記憶装置の
データ格納領域をマトリクス状に展開した各行・各列毎
にパリティ計算を行うことにより、求められるが、デー
タ格納領域をマトリクス状に展開するに当たっては、従
来装置のように、1行を1ワードとして展開するように
してもよく、1行を数ワード或は数バイトとして展開す
るようにしてもよい。そして、この場合、マトリクス状
に展開した際の行数及び列数が略同じ数になるように、
1行当たりのワード数或はバイト数を設定すれば、各行
・各列毎のパリティ計算を略同じ時間で行うことがで
き、パリティ計算に要する時間を短くできるので、より
好ましい。
【0017】また、パリティ計算を行うデータ格納領域
の記憶容量が大きい場合には、パリティ計算に要する時
間も長くなり、しかも、データの更新がなされていない
領域に対しても全てパリティ計算を行う必要があるの
で、データ格納領域の記憶容量が大きい場合には、これ
を複数に分割し、その分割したデータ格納領域毎にパリ
ティ計算を行うようにしてもよい。つまり、このように
すれば、電源供給遮断時に第1のパリティ演算手段にて
パリティ計算を行うデータ格納領域を、電源投入後にデ
ータが更新されたデータ格納領域のみに制限することが
でき、また電源投入時に第2のパリティ演算手段にてパ
リティ計算を行うデータ格納領域についても、データに
誤りのあるデータ格納領域のみに制限することができる
ので、第1及び第2のパリティ演算手段にてパリティ計
算に要する時間を短縮することができるようになるので
ある。また、このようにすれば、各データ格納領域毎に
誤り訂正を行うことができるので、誤り訂正可能なデー
タ数を増加することもできる。
【0018】次に、請求項2に記載の発明は、請求項1
に記載の誤り訂正装置において、前記記憶装置は、前記
データ格納領域のデータ更新時に算出された該データ格
納領域のチェックサムを記憶するチェックサム格納領域
を備え、前記第1の判定手段は、該チェックサム格納領
域に格納されたチェックサムに基づき、前記データ格納
領域に格納されたデータが正常であるか否かを判定する
ことを特徴とする。
【0019】即ち、第1の判定手段によりデータ格納領
域のデータの異常を検出するには、垂直パリティ(又は
水平パリティ)を計算して、それとパリティ格納領域に
格納された垂直パリティ(又は水平パリティ)とを比較
する、所謂パリティチェックを行うようにしてもよい
が、これには、データ格納領域のデータが正常であって
も、マトリクス状に展開した各行(又は各列)毎にパリ
ティを計算しなければならず、時間がかかる。
【0020】そこで、請求項2に記載の誤り訂正装置で
は、従来より記憶装置内のデータの誤り検出のために一
般に用いられているチェックサムの計算結果を利用する
ことにより、データ格納領域の異常判定を行うようにし
ているのである。このため、本発明によれば、チェック
サムの計算機能を有する既存の電子装置に対して、より
簡単に適用することができ、しかも、誤り訂正のための
動作時間をより短くして、CPUの負担を低減すること
ができる。
【0021】また次に、請求項3に記載の発明は、請求
項2に記載の誤り訂正装置において、前記誤り訂正手段
が前記データ格納領域内のデータを正常値に訂正する
と、前記チェックサム格納領域に格納されたチェックサ
ムに基づき、該データ格納領域内のデータが正常である
か否かを判定し、該データが異常であれば、所定の報知
手段を動作させて、前記記憶装置のデータ異常を外部に
報知する第2の判定手段、を設けたことを特徴とする。
【0022】つまり、本発明は、垂直・水平パリティを
用いて、データ格納領域内の異常ビットを特定して、そ
のビットデータを正常値に訂正するものであるが、異常
ビットの特定に誤りがあったり、異常ビットが複数存在
する場合には、データ格納領域内のデータを正常値に訂
正できない。
【0023】そこで、請求項3に記載の誤り訂正装置で
は、誤り訂正手段がデータ格納領域内のデータを訂正す
ると、第2の判定手段により、チェックサム格納領域に
格納されたチェックサムを用いてデータ格納領域内のデ
ータを正常値に訂正できたかどうかを確認し、正常値に
訂正できていなければ、もはや誤り訂正は不可能である
ので、その旨を使用者に報知するようにしているのであ
る。この結果、本発明によれば、誤ったデータが正常値
として使用されるのを防止すると共に、データ格納領域
に格納されたデータの信頼性を向上することができる。
【0024】また、請求項4に記載の発明は、請求項2
又は請求項3に記載の誤り訂正装置において、前記パリ
ティ格納手段が前記パリティ格納領域に前記垂直・水平
パリティを格納すると、該パリティ格納領域のチェック
サムを計算し、該計算結果を、前記記憶装置の所定領域
に格納するチェックサム演算手段を備え、前記第1の判
定手段は、前記記憶装置に記憶された前記データ格納領
域のチェックサムと前記パリティ格納領域のチェックサ
ムとから、各格納領域内のデータ及びパリティが夫々正
常であるか否かを判定し、該データ及びパリティが共に
異常である場合には、前記第2のパリティ演算手段によ
りパリティの再計算を実行させることなく、所定の報知
手段を動作させて、前記記憶装置のデータ異常を外部に
報知すること、を特徴とする。
【0025】つまり、本発明において、第1のパリティ
演算手段にて算出された垂直・水平パリティは、パリテ
ィ格納手段によりパリティ格納領域に格納されるが、次
の電源投入時には、このパリティ格納領域に格納された
垂直・水平パリティ自体が異常な値になっている可能性
がある。
【0026】そこで、請求項4に記載の誤り訂正装置で
は、パリティ格納手段がパリティ格納領域に垂直・水平
パリティを格納すると、チェックサム演算手段にて、そ
のパリティ格納領域のチェックサムを計算して、記憶装
置の所定領域に格納することによって、次の電源投入時
には、第1の判定手段にて、データ格納領域内のデータ
だけでなく、パリティ格納領域のチェックサムからパリ
ティ格納領域内のパリティについても異常判定を行うよ
うにし、データ格納領域内のデータ及びパリティ格納領
域内のパリティが共に異常である場合には、データ格納
領域内のデータを用いることができず、またこのデータ
の誤り訂正を行うこともできないので、誤り訂正のため
の第2のパリティ演算手段を動作させることなく、記憶
装置のデータ異常を使用者に報知するようにしているの
である。
【0027】このため、本発明によれば、請求項3に記
載の装置と同様、誤ったデータが正常値として使用され
るのを防止すると共に、データ格納領域に格納されたデ
ータの信頼性を向上することができる。なお、チェック
サム演算手段にて算出されたパリティ格納領域のチェッ
クサムは、垂直・水平パリティと共にパリティ格納領域
に格納してもよく、また、データ格納領域のチェックサ
ムと共にチェックサム格納領域に格納してもよい。
【0028】
【発明の実施の形態】以下に本発明の実施例を図面と共
に説明する。図2は、本発明が適用された携帯型のバー
コード読取装置(所謂バーコードハンディターミナル)
の構成を表わすブロック図である。
【0029】図2に示す如く、バーコード読取装置に
は、バーコードが印刷された読取対象に光を照射してそ
の反射光を受光することにより、バーコードに対応した
画像信号を出力する読取部2、読み取ったバーコードデ
ータや装置の動作状態等を表示するための、液晶表示装
置等からなる表示部4、バーコードの読取指令,表示指
令等の各種指令を入力するための、キーボードからなる
操作部6、及び、当該装置の電源をオン・オフするため
の電源スイッチ(以下、電源SWという)8が備えら
れ、これら各部は、バス16を介してROM12,RA
M20,通信ポート14等に接続されたCPU10の入
・出力ポートに接続されている。
【0030】CPU10は、携帯型のバーコード読取装
置としての機能を実現するための各種処理を実行する。
つまり、CPU10は、例えば、操作部6からバーコー
ド読取指令を受けて読取部2を起動し、その後、読取部
2から出力される画像信号に基づき、バーコードの種類
を認識してバーコードを複号化し、その復号化したバー
コードデータをRAM20に格納する読取処理、操作部
6からの表示指令に従い、RAM20に既に記憶されて
いるバーコードデータや装置の動作状態を表示部4に表
示する表示処理、操作部6からのデータ転送指令に従
い、通信ポート14を介して外部のホストコンピュータ
にRAM20内のデータを転送するデータ転送処理、等
の各種処理を実行する。
【0031】また、本実施例のバーコード読取装置は、
携帯型であるため、バッテリを内蔵した電源回路18を
備えている。この電源回路18は、電源SW8がオン操
作されると、バッテリから電源供給を受けて所定の電源
電圧を生成し、上記各部へ電源供給を行うが、電源回路
18には、この生成した電源電圧により充電される補助
電源が備えられ、上記各部への電源供給を遮断した際に
も、RAM20だけにはこの補助電源から電源供給を行
う。従って、RAM20は、当該装置の電源オフ時にも
電源供給を受けて記憶したデータを保持する、バックア
ップRAMとして機能する。
【0032】また、電源回路18は、電源SW8がオフ
操作されても上記各部への電源供給を継続し、CPU1
0からの指令を受けて電源供給を遮断する。つまり、C
PU10は、電源SW8がオフ操作されると、本発明に
係わる主要な処理である後述のパリティ計算処理等を実
行した後、電源回路18に電源オフ指令を出力し、電源
回路18からの電源供給を遮断させる。
【0033】図1に示す如く、RAM20はクラスタと
いう単位で管理されており、その内の複数のクラスタ
a,b,…,xにより、読取部2を介して読み取ったバ
ーコードデータや操作部6或は通信ポート14を介して
外部から入力されたデータ等の各種データを記憶するた
めのデータ格納領域22が確保されている。また、RA
M20には、データ格納領域22を構成する各クラスタ
a〜x毎のチェックサムや、各クラスタa〜xにおいて
データの更新があったか否かを表わすフラグ等を記憶す
るためのメモリ管理領域24、及び各クラスタa〜x毎
に計算した誤り訂正用の垂直パリティ32,水平パリテ
ィ34を記憶するためのパリティ格納領域26も確保さ
れている。
【0034】そして、CPU10がRAM20にデータ
を書込む際には、データ内容や各クラスタの空き状態に
応じて書込み先となるクラスタ,例えばクラスタxを選
択し、その選択したクラスタxの空き領域にデータを書
込むと共に、そのデータを書込んだクラスタxのチェッ
クサムを演算して、チェックサム格納領域としてのメモ
リ管理領域24内のクラスタxのチェックサムを更新
し、更に、クラスタxに対するフラグをセットしてクラ
スタx内のデータが更新されたことを記憶する。
【0035】なお、このチェックサムは、各クラスタa
〜x毎にデータが正しく格納されているかどうかをチェ
ックするためのものであり、これ自身では誤りの検出し
かできない。また、本実施例において、各クラスタa〜
xの記憶容量は、4k(詳しくは4096)バイトに設
定されている。
【0036】また次に、パリティ格納領域26に各クラ
スタa〜x毎に記憶される垂直・水平パリティ32,3
4は、以下のように設定される。即ち、図1に示す如
く、各クラスタa〜x(図ではクラスタx)の4kバイ
ト分の記憶領域は、先頭アドレスから順に16バイト分
ずつ区切って、それを1行分のデータとする、256行
(=4096バイト/16バイト),128列(=16
バイト×8ビット)のマトリクス状に仮想展開し、その
内の各行毎にパリティ計算を行うことにより、データ容
量32バイト(=256ビット/8ビット)の垂直パリ
ティ32が設定され、また各列毎にパリティ計算を行う
ことにより、データ容量16バイト(=128ビット/
8ビット)の水平パリティ34が設定される。
【0037】また、こうしたパリティ計算は、電源SW
8がオフ操作されて、電源回路18に電源オフ指令を出
力するまでの間に、CPU10の処理により実行され
る。つまり、CPU10は、電源SW8がオフ操作され
ると、読取部2や表示部4の動作の停止等を行なう電源
オフ処理を実行した後、図3に示すパリティ計算処理を
実行して、各クラスタa〜xの垂直・水平パリティ3
2,34を更新し、その後、電源回路18に電源オフ指
令を出力して、当該装置への電源供給を遮断する。以
下、このパリティ計算処理を説明する。
【0038】図3に示す如く、パリティ計算処理では、
まずS110(Sはステップを表わす)にて、RAM2
0のメモリ管理領域24に格納されたフラグを用いて、
データ格納領域22を構成するクラスタaから順に、電
源オン後にデータの書込みがあったかどうかを判定し、
データの書込みがあれば、第1のパリティ演算手段及び
パリティ格納手段としてのS120に移行して、そのク
ラスタに対するパリティ計算を行い、その計算結果を、
RAM20のパリティ格納領域26に記憶した後、S1
30に移行する。また逆に、データの書込みがなけれ
ば、そのままS130に移行する。
【0039】そして、S130では、全クラスタa〜x
全てに対してS110の判定処理を行い必要に応じてパ
リティ計算を実行したかどうか、つまり、電源オン後に
データが書込まれた全てのクラスタに対してパリティ計
算を実行したかどうか、を判定し、データが書込まれた
全クラスタに対するパリティ計算が終了していれば、続
くS140に移行し、そうでなければ、再度S110に
移行して、前回書込み判定を行ったクラスタの次のクラ
スタに関して、前記フラグを用いてデータの書込みがあ
ったか否かを判定する。
【0040】即ち、S110〜S130では、データ格
納領域22を構成する全てのクラスタa〜xに対してパ
リティ計算をするのではなく、当該装置の動作中にデー
タの書込みがあったクラスタに対してのみパリティ計算
を行うことにより、パリティ計算を短時間で終了できる
ようにしているのである。
【0041】なお、上記S120では、パリティ計算の
対象となるクラスタの先頭アドレスから順に16バイト
分ずつデータを読み出し、その読み出した16バイト分
のデータ毎に、そのデータのビットの「1」の数が偶数
になるようにパリティ(1ビット)を計算する、といっ
た手順で、合計256ビット(=32バイト)の垂直パ
リティ32を計算すると共に、この垂直パリティが8ビ
ット(=1バイト)計算される度に、パリティ格納領域
26に格納する。
【0042】また、水平パリティ34については、ま
ず、クラスタの先頭アドレスから16バイト分ずつステ
ップしたアドレスのデータ、すなわちアドレスの下位4
ビットが0のデータ(図1において16進表示で示した
アドレス:xxx000h,xxx010h,…xxx
FF0hのデータ)の最下位ビット0から最上位ビット
7の夫々のビットの「1」の数が偶数になるように、1
バイト分のパリティを計算し、パリティ格納領域26に
格納する。そして、アドレスの下位4ビットが1からF
のデータについても、順次同様の手順でパリティ計算を
行い、その計算結果をパリティ格納領域26に格納す
る。
【0043】次に、S140では、上記S110〜S1
30の処理によって、いずれかのクラスタに対するパリ
ティ計算が行われ、パリティ格納領域26内のパリティ
が更新されたか否かを判断する。そして、パリティが更
新されていなければ、そのまま当該処理を終了し、パリ
ティが更新されていれば、パリティ格納領域26内のパ
リティそのものの整合性を保つために、パリティ格納領
域26のチェックサムを計算し、この計算結果をRAM
20のメモリ管理領域24に格納した後、当該処理を終
了する。
【0044】このようにパリティ計算処理を実行する
と、CPU10は、電源回路18に電源オフ指令を出力
して、当該装置への電源供給を遮断するが、この電源オ
フ時には、RAM20に供給される電源電圧が低くなる
ため、外部から侵入する放射線等の影響を受け易くな
り、RAM20内のデータが1ビット単位で破壊される
ことがある。
【0045】そこで、本実施例では、こうした電源オフ
時に生じるRAM20のデータ誤りを訂正するために、
CPU10において、電源投入直後に図4に示すメモリ
テスト処理を実行するようにされている。このメモリテ
スト処理は、電源SW8がオン操作されて電源回路18
からCPU10に電源供給がなされ、CPU10が、所
定の初期化処理を実行した後に、開始される処理であ
り、図4に示す如く、まずS210にて、電源オフ時に
メモリ管理領域24に格納されたパリティ格納領域26
のチェックサムを用いて、パリティ格納領域26のチェ
ックサムテストを行う。
【0046】なお、このチェックサムテストは、パリテ
ィ格納領域26のチェックサムを再計算して、その値と
メモリ管理領域24に格納されたチェックサムとを比較
し、これら各値が一致していればパリティ格納領域26
内のパリティは正常であり、逆に一致していなければパ
リティ格納領域26内のパリティは異常であると判定す
る、といった手順で行われる。
【0047】そして、続くS220では、このチェック
サムテストの結果、パリティ格納領域26内のパリティ
は正常であったか否かを判断し、正常であれば、S24
0に移行し、異常であれば、S230にて、誤り訂正禁
止フラグをセットした後、S240に移行する。
【0048】次に、S240では、データ格納領域22
を構成するクラスタaから順に、メモリ管理領域24に
格納されている当該クラスタに対するチェックサムを用
いて、クラスタのチェックサムテストを行う、第1の判
定手段としての処理を実行する。なお、このチェックサ
ムテストは、パリティ格納領域26のチェックサムテス
トと同様の手順で行われるが、データが書込まれていな
いクラスタについては、テストの必要がないので、実行
しない。
【0049】こうして、S240にて、データが書込ま
れた所定のクラスタに対するチェックサムテストが行わ
れると、S250にて、チェックサムテストの結果、そ
のクラスタのデータは正常であったか否かを判断し、デ
ータが正常であれば、誤り訂正の必要はないので、その
ままS310に移行し、逆にデータに異常があれば、S
260に移行して、誤り訂正禁止フラグがセットされて
いるか否かを判断する。
【0050】S260にて、誤り訂正禁止フラグがセッ
トされていると判断された場合、つまりパリティ格納領
域26内のパリティに異常があり、しかも今回チェック
サムテストを行ったクラスタのデータにも異常がある場
合には、データの誤り訂正を行うことができず、またそ
のクラスタのデータも利用することができないので、表
示部4にメモリエラーを表わすメッセージを表示して、
使用者にその旨を報知した後、当該処理を終了する。
【0051】一方、S260にて、誤り訂正禁止フラグ
がセットされていないと判断されると、S270に移行
し、パリティ格納領域26に格納されたパリティを用い
て、今回データが異常であると判定したクラスタ内での
誤りビットの検出及び訂正を行う。以下、この手順を図
5を用いて説明する。
【0052】図5に示す如く、まず、チェックサムテス
トの結果、異常と判定したクラスタの垂直パリティ42
と水平パリティ44を計算する、第2のパリティ演算手
段としての処理を実行する。そして、この算出した垂直
・水平パリティ42,44と、パリティ格納領域26に
格納されている当該クラスタに対する垂直・水平パリテ
ィ32,34とを比較し、パリティが不一致となった場
合の次の4つの情報Vp,Vb,Hp,Hbを求める、
検索手段としての処理を実行する。
【0053】(1) 合計32バイトある垂直パリティ3
2,42の内、何バイト目の垂直パリティが不一致にな
ったかを表わす垂直パリティ異常バイト情報Vp(図5
では、第1番目:0h)。 (2) 垂直パリティ異常バイト情報Vpにて特定される垂
直パリティ32,42の1バイトデータの中で、不一致
になっているビット位置を表わす垂直パリティ異常ビッ
ト情報Vb(図5では、ビット7)。
【0054】(3) 合計16バイトある水平パリティ3
4,44の内、何バイト目の水平パリティが不一致にな
ったかを表わす水平パリティ異常バイト情報Hp(図5
では、第16番目:Fh=15)。 (4) 水平パリティ異常バイト情報Hpにて特定される水
平パリティ34,44の1バイトデータの中で、不一致
になっているビット位置を表わす水平パリティ異常ビッ
ト情報Hb(図5では、ビット5)。
【0055】そして最後に、これら4種の情報の内、情
報Vp,Vb,Hpに基づき、次式を用いて、ビット誤
りのあるアドレスを求め、そのアドレスのデータ内の情
報Hbに対応したビット位置を誤りビットとして特定し
て、その値を反転することにより誤りを訂正する、誤り
訂正手段としての処理を実行する。
【0056】ビット誤りアドレス=クラスタの先頭アド
レス+(Vp×垂直パリティ1バイト分のデータ容量)
+(Vb×垂直パリティ1ビット分のデータ容量)+H
p 例えば、図5において、クラスタの先頭アドレスを20
0000h番地とすると、 ビット誤りアドレス=200000h+(0×128バ
イト)+(7×16バイト)+15=20007Fh番
地 となり、このアドレスにて特定される1バイトデータの
中の情報Hb(=5)に対応したビットデータが誤って
いることが判ることから、その値を反転(図5では
「1」から「0」に変更)する。
【0057】このように、S270にて、チェックサム
テストの結果異常となったクラスタに対する誤り訂正が
実行されると、今度はS280に移行して、S270に
て誤り訂正を正常に行えたかどうかを判定する。つま
り、垂直・水平パリティを用いた誤り訂正は、1ビット
の誤り訂正はできるが、クラスタ内で2ビット分以上誤
りが発生していると、誤り訂正は実行できないことか
ら、ここでは、S270の処理にて誤り訂正に成功した
かどうかを判定するのである。そして、誤り訂正に失敗
した場合には、表示部4にメモリエラーを表わすメッセ
ージを表示して、使用者にその旨を報知した後、当該処
理を終了する。
【0058】また、S280にて、S270の処理によ
り誤り訂正に成功したと判断されると、S290に移行
して、その誤り訂正を行ったクラスタに対するチェック
サムテストを再度行い、S300にて、このチェックサ
ムテストの結果、クラスタ内のデータは正常であったか
否か、つまりS270の誤り訂正により、クラスタ内の
データが正常値に復帰したか否か、を判定する。そし
て、S300にて、クラスタ内のデータは異常であると
判断された場合には、もはや誤り訂正は不可能であるの
で、表示部4にメモリエラーを表わすメッセージを表示
して、使用者にその旨を報知した後、当該処理を終了
し、逆に、S300にて、クラスタ内のデータが正常値
に復帰していると判断された場合には、S310に移行
する。
【0059】S310では、S240のチェックサムテ
ストを、データが書込まれた全クラスタに対して行い、
チェックサムテストの結果誤りのあったクラスタについ
ては、S260〜S300の処理により誤り訂正を行っ
たか否か、つまり、データが書込まれた全クラスタに対
するメモリテストを終了したか否かを判定する。そし
て、データが書込まれた全クラスタに対するメモリテス
トを終了していなければ、再度S240に移行して、メ
モリテストの終了していない次のクラスタに対するメモ
リテストを行い、逆に全クラスタに対するメモリテスト
が終了していれば、当該処理を正常に終了し、操作部6
からの指令に対応した各種処理を実行する通常処理に移
行する。
【0060】以上説明したように、本実施例のバーコー
ド読取装置においては、電源オフ時に、RAM20内に
てデータ格納領域22を構成する全クラスタa〜xの
内、データの書込みのあったクラスタ毎に垂直・水平パ
リティを計算して、その結果を、RAM20のパリティ
格納領域26に記憶しておき、次の電源オン時には、デ
ータが書込まれているクラスタ毎に、RAM20のメモ
リ管理領域24に格納されたチェックサムを用いて、デ
ータの異常判定を行い、データに異常があるクラスタに
ついては、垂直・水平パリティを再計算して、その計算
結果とパリティ格納領域26内の垂直・水平パリティと
から、誤りビットを特定して、そのビットデータを訂正
するようにされている。
【0061】従って、本実施例によれば、当該装置が動
作を停止しているときにデータのビット誤りが発生した
場合、1クラスタにつき1ビットの誤り検出及びその訂
正を行うことができる。また、動作中にビット誤りが発
生しても、そのクラスタがデータの書き換えが行われな
かったクラスタであれば、誤り検出及びその訂正を行う
ことができる。
【0062】そして、本実施例では、こうした誤り訂正
のためのパリティ計算処理及びメモリチェック処理を、
電源オフ時及び電源オン時に夫々行い、通常の動作中に
は、データを書込む際にそのクラスタのチェックサムを
更新するだけでよいので、CPU10における誤り訂正
のための動作を必要最小限に留めることができ、CPU
10の負担を軽減できる。このため、従来のように、垂
直・水平パリティを用いて誤り訂正を行うために、専用
の演算回路を別途設けるとか、或は、CPU10に高速
演算可能な高価なものを用いる、といった必要がなく、
こうした誤り訂正機能を持たない既存の装置に容易に適
用できる。
【0063】また、本実施例のバーコード読取装置は、
使用の度に電源SW8がオン・オフされて、一日の内の
稼動時間が比較的短い携帯型であるため、電源オフ時の
1ビットのデータ誤りが発生し易くなるが、こうした1
ビットのデータ誤りについては訂正可能であるため、装
置の信頼性を向上することもできる。
【0064】また更に、本実施例では、各クラスタ毎に
垂直・水平パリティを設定して、各クラスタに発生した
ビット誤りを訂正できるようにするだけでなく、垂直・
水平パリティを記憶したパリティ格納領域26に対する
チェックサムを計算しておき、メモリチェック時には、
このチェックサムを用いてパリティ格納領域26のパリ
ティについても異常判定を行い、また、垂直・水平パリ
ティを用いて誤り訂正を行ったクラスタに対しては、チ
ェックサムチェックを行って誤り訂正の結果を確認し、
パリティの異常によってクラスタ内のデータの誤り訂正
を行うことができなかったり、或は誤り訂正を行ったに
もかかわらずデータに異常がある場合には、その旨を使
用者に報知するようにされているので、誤ったデータが
正常値として使用されるのを防止することができると共
に、各クラスタに格納されたデータの信頼性を向上する
ことができる。
【0065】以上、本発明の一実施例について説明した
が、本発明は上記実施例に限定されるものではなく、種
々の態様をとることができる。例えば、上記実施例で
は、RAM20のデータ格納領域22に対するパリティ
計算及びメモリチェックを、クラスタ単位で行うように
構成したが、データ格納領域22全体でパリティ計算及
びメモリチェックを行うようにしてもよい。この場合、
動作中にデータの書込みがあった場合には、データ格納
領域22全体のパリティ計算を行う必要があるため、そ
の計算時間が長くなるが、RAM20のパリティ格納領
域26を少なくすることができる。
【0066】また、上記実施例では、データ16バイト
に対して、垂直パリティ1ビットを付加するものとして
説明したが、垂直パリティ1ビットに対応したデータ容
量は、1バイトであっても、また16バイト以上であっ
てもよく、任意の値に設定すればよい。但し、パリティ
計算に要する処理時間は、データ格納領域(上記実施例
ではクラスタ)をマトリクス状に展開した際の行・列の
ビット数が近くなる程(換言すればマトリクスが正方形
に近くなる程)、短くなるので、これを考慮して設定す
ることが好ましい。また更に、上記実施例では、垂直・
水平パリティとして、偶数パリティを計算するものとし
て説明したが、奇数パリティを計算するようにしても同
様の効果が得られる。
【0067】また、上記実施例では、携帯型のバーコー
ド読取装置について説明したが、本発明は、装置への電
源供給が遮断されても記憶したデータを保持可能に内部
電源によりバックアップされた記憶装置、つまりバック
アップRAMを備えた電子装置であれば、上記実施例と
同様に適用して、同様の効果を得ることができる。
【図面の簡単な説明】
【図1】 実施例のRAMの構成及びクラスタ毎に設定
される垂直・水平パリティを説明する説明図である。
【図2】 実施例のバーコード読取装置の概略構成を表
わすブロック図である。
【図3】 実施例のCPUにおいて実行されるパリティ
計算処理を表わすフローチャートである。
【図4】 実施例のCPUにおいて実行されるメモリチ
ェック処理を表わすフローチャートである。
【図5】 メモリチェック処理にて実行される誤りビッ
トの検出及びその訂正手順を説明する説明図である。
【符号の説明】
2…読取部 4…表示部 6…操作部 8…電源
SW(スイッチ) 10…CPU 12…ROM 14…通信ポート
16…バス 18…電源回路 20…RAM 22…データ格納
領域 24…メモリ管理領域(クラスタa〜クラスタx) 26…パリティ格納領域 32,42…垂直パリティ 34,44…水平パリティ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 所定の電子装置内に設けられ、該電子装
    置への電源供給が遮断されてもデータを保持可能に内部
    電源によりバックアップされた記憶装置の誤り訂正装置
    であって、 前記電子装置への電源供給遮断時に、前記記憶装置のデ
    ータ格納領域をマトリクス状に展開した各行・各列毎に
    パリティを計算する第1のパリティ演算手段と、 該第1のパリティ演算手段により算出された前記各行・
    各列のパリティを、垂直・水平パリティとして、前記記
    憶装置のパリティ格納領域に格納するパリティ格納手段
    と、 前記電子装置への電源投入直後に、前記データ格納領域
    に格納されたデータが正常であるか否かを判定する第1
    の判定手段と、 該第1の判定手段にて前記データが異常であると判定さ
    れると、前記垂直・水平パリティを再計算する第2のパ
    リティ演算手段と、 該第2のパリティ演算手段により算出された垂直・水平
    パリティと、前記パリティ格納領域に格納された垂直・
    水平パリティとを比較し、該パリティが一致しない行・
    列を検索する検索手段と、 該検索手段による検索結果に基づき、前記データ格納領
    域内の異常ビットを特定して、該ビットのデータを正常
    値に訂正する誤り訂正手段と、 を備えたことを特徴とする記憶装置の誤り訂正装置。
  2. 【請求項2】 前記記憶装置は、前記データ格納領域の
    データ更新時に算出された該データ格納領域のチェック
    サムを記憶するチェックサム格納領域を備え、 前記第1の判定手段は、該チェックサム格納領域に格納
    されたチェックサムに基づき、前記データ格納領域に格
    納されたデータが正常であるか否かを判定することを特
    徴とする請求項1に記載の記憶装置の誤り訂正装置。
  3. 【請求項3】 前記誤り訂正手段が前記データ格納領域
    内のデータを正常値に訂正すると、前記チェックサム格
    納領域に格納されたチェックサムに基づき、該データ格
    納領域内のデータが正常であるか否かを判定し、該デー
    タが異常であれば、所定の報知手段を動作させて、前記
    記憶装置のデータ異常を外部に報知する第2の判定手
    段、を設けたことを特徴とする請求項2に記載の記憶装
    置の誤り訂正装置。
  4. 【請求項4】 前記パリティ格納手段が前記パリティ格
    納領域に前記垂直・水平パリティを格納すると、該パリ
    ティ格納領域のチェックサムを計算し、該計算結果を、
    前記記憶装置の所定領域に格納するチェックサム演算手
    段を備え、 前記第1の判定手段は、前記記憶装置に記憶された前記
    データ格納領域のチェックサムと前記パリティ格納領域
    のチェックサムとから、各格納領域内のデータ及びパリ
    ティが夫々正常であるか否かを判定し、該データ及びパ
    リティが共に異常である場合には、前記第2のパリティ
    演算手段によりパリティの再計算を実行させることな
    く、所定の報知手段を動作させて、前記記憶装置のデー
    タ異常を外部に報知すること、を特徴とする請求項2又
    は請求項3に記載の記憶装置の誤り訂正装置。
JP7327424A 1995-12-15 1995-12-15 記憶装置の誤り訂正装置 Pending JPH09167120A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7327424A JPH09167120A (ja) 1995-12-15 1995-12-15 記憶装置の誤り訂正装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7327424A JPH09167120A (ja) 1995-12-15 1995-12-15 記憶装置の誤り訂正装置

Publications (1)

Publication Number Publication Date
JPH09167120A true JPH09167120A (ja) 1997-06-24

Family

ID=18199016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7327424A Pending JPH09167120A (ja) 1995-12-15 1995-12-15 記憶装置の誤り訂正装置

Country Status (1)

Country Link
JP (1) JPH09167120A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500623A (ja) * 1999-09-22 2004-01-08 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト Ramモジュールにデータ語を記憶する方法と回路装置
JP2005279100A (ja) * 2004-03-30 2005-10-13 Kita Denshi Corp データ送受信システム、データ送受信管理方法及びデータ送受信管理プログラム
CN100353328C (zh) * 2004-09-10 2007-12-05 富士通株式会社 用于控制存储的装置和方法
JP2008093142A (ja) * 2006-10-11 2008-04-24 Maruhon Ind Co Ltd パチンコ遊技機
JP2008276749A (ja) * 2007-03-12 2008-11-13 Secunet Security Networks Ag プログラミング可能なデータ処理装置用の保護ユニット
JP2009168543A (ja) * 2008-01-15 2009-07-30 Panasonic Corp 角速度センサ
US8438457B2 (en) 2009-09-11 2013-05-07 Sony Corporation Nonvolatile memory apparatus, memory controller, and memory system
JP2014182690A (ja) * 2013-03-21 2014-09-29 Stanley Electric Co Ltd メモリ制御装置、メモリ制御方法
JP2015010486A (ja) * 2013-06-27 2015-01-19 日立オートモティブシステムズ株式会社 自動車用電子制御装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500623A (ja) * 1999-09-22 2004-01-08 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト Ramモジュールにデータ語を記憶する方法と回路装置
JP2005279100A (ja) * 2004-03-30 2005-10-13 Kita Denshi Corp データ送受信システム、データ送受信管理方法及びデータ送受信管理プログラム
CN100353328C (zh) * 2004-09-10 2007-12-05 富士通株式会社 用于控制存储的装置和方法
US7395451B2 (en) 2004-09-10 2008-07-01 Fujitsu Limited Apparatus, method and program for the control of storage
JP2008093142A (ja) * 2006-10-11 2008-04-24 Maruhon Ind Co Ltd パチンコ遊技機
JP2008276749A (ja) * 2007-03-12 2008-11-13 Secunet Security Networks Ag プログラミング可能なデータ処理装置用の保護ユニット
JP2009168543A (ja) * 2008-01-15 2009-07-30 Panasonic Corp 角速度センサ
US8438457B2 (en) 2009-09-11 2013-05-07 Sony Corporation Nonvolatile memory apparatus, memory controller, and memory system
JP2014182690A (ja) * 2013-03-21 2014-09-29 Stanley Electric Co Ltd メモリ制御装置、メモリ制御方法
JP2015010486A (ja) * 2013-06-27 2015-01-19 日立オートモティブシステムズ株式会社 自動車用電子制御装置

Similar Documents

Publication Publication Date Title
US5905858A (en) System for method memory error handling
US4608687A (en) Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition
US7328365B2 (en) System and method for providing error check and correction in memory systems
US5502732A (en) Method for testing ECC logic
JPH07191915A (ja) コンピュータ・システム、メモリ・カード、及びその操作方法
KR920001104B1 (ko) 어드레스 라인 오류 테스트 방법
JP2830308B2 (ja) 情報処理装置
JPH05210595A (ja) メモリシステム
JP2004514184A (ja) デジタル・データにおけるソフト・エラーを訂正するための方法および装置
JPH09167120A (ja) 記憶装置の誤り訂正装置
JP3068009B2 (ja) 冗長化メモリのエラー訂正機構
JPH0816488A (ja) 電子ディスク装置
JP2910692B2 (ja) ランダムアクセスメモリの試験の方法
JP2907114B2 (ja) Eepromの1ビット誤り訂正方法とその装置
JPH05108496A (ja) パトロール制御方式
JPH0756816A (ja) メモリの制御装置
JPS59110098A (ja) デ−タ記憶装置の誤り訂正装置
JP2001014226A (ja) Ecc内蔵prom
JP2000099410A (ja) メモリ制御回路と情報処理装置
US7426686B2 (en) System and method for verifying data integrity
JPH0520215A (ja) 情報処理装置
JPH06348516A (ja) 情報処理装置
JP2012022508A (ja) 半導体記憶装置、制御装置、及び半導体記憶装置の制御方法
JPH10143383A (ja) 誤り検出訂正装置
JPH054266U (ja) メモリ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050118