JP3129865B2 - データの検証方法 - Google Patents

データの検証方法

Info

Publication number
JP3129865B2
JP3129865B2 JP04339613A JP33961392A JP3129865B2 JP 3129865 B2 JP3129865 B2 JP 3129865B2 JP 04339613 A JP04339613 A JP 04339613A JP 33961392 A JP33961392 A JP 33961392A JP 3129865 B2 JP3129865 B2 JP 3129865B2
Authority
JP
Japan
Prior art keywords
data
length
check code
crc check
writing
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.)
Expired - Lifetime
Application number
JP04339613A
Other languages
English (en)
Other versions
JPH06161795A (ja
Inventor
和義 入澤
博嗣 針間
輝明 城
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP04339613A priority Critical patent/JP3129865B2/ja
Publication of JPH06161795A publication Critical patent/JPH06161795A/ja
Application granted granted Critical
Publication of JP3129865B2 publication Critical patent/JP3129865B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータの検証方法、特
に、CRCチェックコードを用いたデータの検証方法に
関する。
【0002】
【従来の技術】半導体メモリの集積度の向上とともに、
種々の情報記録媒体が普及している。たとえば、磁気カ
ードに代わる新たな情報記録媒体として、最近ではIC
カードが脚光を浴びている。このICカードには、薄型
のRAM、ROM、EEPROMなどのメモリ素子が内
蔵されている。このような携帯型の情報記録媒体には、
非常に重要な個人データが保存されることが多く、書き
込んだデータを読み出すときに、データエラーが生じて
いないかどうかを検証することは非常に重要である。こ
のため、データを書き込むときには、このデータにエラ
ーチェックコードを付加するのが一般的である。ICカ
ードにおいて一般的に用いられているエラーチェックコ
ードは、ISO−CCITTの規格に基づくCRC(Cy
clic Redundancy Check )チェックコードである。たと
えば、データDを書き込むときには、このデータDに基
づいて所定のアルゴリズムの論理演算を行い、CRCチ
ェックコードXを発生させ、データDとともにコードX
をメモリに書き込んでおく。そして、データDを読み出
すときには、コードXも一緒に読み出すようにし、この
コードXがデータDに基づく所定の論理演算によって発
生された正しいコードであるか否かを検証するのであ
る。コードXがデータDに対する正しいコードでない場
合には、データDかコードXがデータ化けを起こし、デ
ータエラーが生じているものと判断することができる。
通常は、書き込みを行った後に直ちに読み出しを行って
データエラーの有無を判断するベリファイ処理が行われ
ている。
【0003】
【発明が解決しようとする課題】種々のデータをメモリ
に書き込む場合、各データのデータ長が固定であると、
取扱いが便利である。特に、ICカードに内蔵されたE
EPROMに対する書込処理は、所定の書込単位(たと
えば、32バイト)ごとに行われるため、EEPROM
に書き込むべき単位データの長さをこの書込単位に揃え
ておくと効率良い処理が可能になる。しかしながら、実
際には、種々のデータをすべて同じ長さにすることは困
難であり、各データごとに長さに違いが生じる。このよ
うに、異なる長さのデータに対して固定長の取扱いをす
るためには、実質的な意味をもたない余分なデータを付
加する必要がある。すなわち、実質的な意味をもった実
際のデータのデータ長が所定の固定長に満たない場合に
は、その不足分のデータ長をもった余分なデータを付加
することにより、全体として所定の固定長となるように
するのである。しかしながら、このような余分なデータ
を付加した場合、CRCチェックコードはこの余分なデ
ータについても作成されることになる。このような実質
的な意味をもたない余分なデータに対してもCRCチェ
ックコードによる検証を行う作業は、意味のない無駄な
作業であり、演算時間を無用に長引かせることになる。
【0004】そこで本発明は、固定長データについて無
駄のない検証を行うことのできるデータの検証方法を提
供することを目的とする。
【0005】
【課題を解決するための手段】本発明は、データをメモ
リに書き込む時に、このデータについてのCRCチェッ
クコードを発生させ、このCRCチェックコードをデー
タとともに書き込むようにし、データを読出す時に、こ
のデータをCRCチェックコードとともに読出し、読出
したCRCチェックコードが読出したデータについての
正しいコードであるか否かを調べるデータの検証方法に
おいて、実質的な意味をもった第1の部分データに実質
的な意味をもたない第2の部分データを付加し、第1の
部分データの長さと第2の部分データの長さとの和が所
定の固定長となるようにして固定長のデータを書込単位
とする書き込みを行うようにし、かつ、第2の部分デー
タとして、全桁が0であるようなデータを用いるように
したものである。
【0006】
【作 用】本発明に係るデータの検証方法では、実質的
な意味をもたない第2の部分データとして、全桁が0で
あるようなデータが用いられる。もともと、この第2の
部分データは、全体の長さを固定長に揃えるために付加
する意味のないデータであるから、全桁が0であっても
支障はない。一方、CRCチェックコードは、書込対象
となるデータを所定の値で割り算したときの余りとして
定義される。したがって、書込対象となるデータに0の
桁が多く含まれていれば、CRCチェックコードを求め
る演算を高速化することができ、無駄な演算を排除した
検証が可能になる。
【0007】
【実施例】以下、本発明を図示する実施例に基づいて説
明する。ここでは、ICカードに内蔵されているEEP
ROMに、固定長データを保存する場合を例にとって説
明する。いま、ICカード内のEEPROMに、図1に
示すように、データD1〜D4を書き込む処理を考え
る。ここで、データD1〜D4は、いずれも実質的な意
味をもったデータであり、それぞれ異なるデータ長をも
っている。しかしながら、ここでは、これらのデータを
固定長データとして取扱い、EEPROM内に保存する
ようにしている。一般に、EEPROMへのデータ書き
込みには、数msのオーダの時間を必要とする。このた
め、書込対象となるデータは、一旦、書込レジスタに転
送され、この書込レジスタからEEPROMの所定アド
レスへの書き込みが行われる。したがって、EEPRO
Mへの書込処理は、この書込レジスタのデータ長に相当
する書込単位ごとに行われることになる。このような理
由から、このEEPROMへの書込単位に応じた固定長
を定義しておき、この固定長ごとにデータの保存を行う
のが効率的である。
【0008】図1に示す例は、EEPROMへの書込単
位(すなわち、書込レジスタのデータ長)が32バイト
の場合の例である。ISO−CCITTの規格によるC
RCチェックコードは、2バイトの長さをもつ。そこ
で、このCRCチェックコードのためのコード領域CR
Cを含めた上での長さを32バイトとするためには、デ
ータのための領域を30バイトの固定長にする必要があ
る。そこで、実質的な意味のあるデータ領域DATA
に、実質的な意味のないデータ領域RFU(Reserved f
or Future Use の意味)を付加して、領域DATAと領
域RFUとの合計の長さが固定長30バイトとなるよう
にしている。具体的には、実質的な意味のあるデータD
1〜D4に、それぞれ実質的な意味のないデータd1〜
d4を付加して、固定長30バイトのデータを作成し、
CRCチェックコードE1〜E4は、この固定長30バ
イトのデータに対して生成するようにしている。
【0009】このようにして生成したCRCチェックコ
ードE1〜E4を、データD1〜D4(およびd1〜d
4)とともに書き込んでおくようにすれば、書込時にデ
ータ化けが生じた場合であっても、これをデータエラー
として検出することができる。すなわち、データD1〜
D4を読み出す場合には、意味のないデータd1〜d4
およびCRCチェックコードE1〜E4も一緒に読み出
すようにし、書込時と同じ手法によってCRCチェック
コードを発生させ、このCRCチェックコードが読み出
したCRCチェックコードE1〜E4と一致するか否か
を判定すればよい。不一致の場合には、いずれかにデー
タ化けが生じたものと判断することができる。
【0010】ISO−CCITTの規格に基づくCRC
チェックコードは、書込対象となるデータQを所定の値
P(具体的には、2進数表示で「1000100000
0100001」なる17ビットの数)で割ったときの
余りとして定義されている。したがって、たとえば、図
1におけるデータD1についての書き込みを行う場合に
は、RFU領域のデータd1を含めた「D1・d1」な
る値をデータQとし、これを値Pで割ったときの余りと
して、CRCチェックコードE1が生成されることにな
る。このように、CRCチェックコードE1は、実質的
な意味のないデータd1の情報までも考慮して生成され
ることになる。同様に、CRCチェックコードE2,E
3,E4は、それぞれ実質的な意味のないデータd2,
d3,d4の情報までも考慮して生成される。したがっ
て、このようなCRCチェックコード発生演算には、実
質的には無駄な演算が含まれていることになる。
【0011】本発明は、このような無駄な演算を次のよ
うな方法により解消したものである。すなわち、図2に
示すように、実質的な意味のあるデータ(領域DATA
内に示す*印のデータ)に実質的な意味のないデータ
(領域RFU内のデータ)を付加して、全データ長を3
0バイトにする場合に、実質的な意味のないデータとし
て、全桁が「0」であるようなデータを用いるのであ
る。領域RFU内のデータは、データ長を30バイトに
するためのいわば桁合わせの目的のために付加されるデ
ータであるから、どのような値のデータであってもかま
わない。したがって、全桁が「0」であるようなデータ
であってもかまわないことになる。このように、領域R
FU内のバイトがすべて0であると、CRCチェックコ
ードを発生させる演算が非常に簡単になる。前述のよう
に、CRCチェックコードは、図2に示す30バイトの
長さのデータ全体に対して、所定の値P(具体的には、
2進数表示で「10001000000100001」
なる17ビットの数)による割り算を実施し、そのとき
の余りとして定義されている。このような割り算は、実
際には2進数の形式で行われ、被除数に0がある場合に
は、シフトレジスタ上で1ビットだけシフトする動作を
行えばよい。このような理由により、被除数に0が多く
含まれていれば、それだけこの除算の演算時間を短縮さ
せることができる。したがって、図2に示すように、領
域RFU内のデータとして、全桁が「0」であるような
データを採用することは、CRCチェックコードを生成
する演算を効率化し、演算時間を短縮させる効果を奏す
ることになる。結局、本発明によれば、図1において、
実質的な意味のない付加データd1〜d4は、いずれも
全桁が「0」であるようなデータということになる。
【0012】以上、本発明をICカードのEEPROM
に対するデータ書き込みを例にとって説明したが、本発
明はICカード以外についても広く適用可能である。
【0013】
【発明の効果】以上のとおり、本発明に係るデータの検
証方法によれば、全体の長さを固定長に揃えるために、
実質的な意味をもたないデータを付加する場合に、全桁
が0であるようなデータを付加するようにしたため、C
RCチェックコードを求める演算を高速化することがで
き、無駄な演算を排除した検証が可能になる。
【図面の簡単な説明】
【図1】ICカードに内蔵されたEEPROMに4つの
データD1〜D4を、付加データd1〜d4およびCR
CチェックコードE1〜E4とともに書き込んだ状態を
示す図である。
【図2】本発明により固定長のデータを保存する場合の
データ構造を示す図である。
【符号の説明】
D1〜D4…書き込むべきデータ(実質的な意味のある
データ) d1〜d4…固定長に揃えるための付加データ(実質的
な意味のないデータ) E1〜E4…CRCチェックコード
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−244216(JP,A) 特開 平4−329494(JP,A) 実開 平1−155566(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 11/08 - 11/10 G06F 12/16 G06K 19/00 - 19/07 G06K 17/00 H03M 13/00 - 13/09 H04L 1/00

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 データをメモリに書き込む時に、このデ
    ータについてのCRCチェックコードを発生させ、この
    CRCチェックコードをデータとともに書き込むように
    し、データを読出す時に、このデータをCRCチェック
    コードとともに読出し、読出したCRCチェックコード
    が読出したデータについての正しいコードであるか否か
    を調べるデータの検証方法において、実質的な意味をも
    った第1の部分データに実質的な意味をもたない第2の
    部分データを付加し、第1の部分データの長さと第2の
    部分データの長さとの和が所定の固定長となるようにし
    て固定長のデータを書込単位とする書き込みを行うよう
    にし、かつ、前記第2の部分データとして、全桁が0で
    あるようなデータを用いるようにしたことを特徴とする
    データの検証方法。
JP04339613A 1992-11-26 1992-11-26 データの検証方法 Expired - Lifetime JP3129865B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04339613A JP3129865B2 (ja) 1992-11-26 1992-11-26 データの検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04339613A JP3129865B2 (ja) 1992-11-26 1992-11-26 データの検証方法

Publications (2)

Publication Number Publication Date
JPH06161795A JPH06161795A (ja) 1994-06-10
JP3129865B2 true JP3129865B2 (ja) 2001-01-31

Family

ID=18329152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04339613A Expired - Lifetime JP3129865B2 (ja) 1992-11-26 1992-11-26 データの検証方法

Country Status (1)

Country Link
JP (1) JP3129865B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287511A (ja) * 2007-05-17 2008-11-27 Dainippon Printing Co Ltd Icカード及びicカード発行機及びicカード利用端末機

Also Published As

Publication number Publication date
JPH06161795A (ja) 1994-06-10

Similar Documents

Publication Publication Date Title
JP4417629B2 (ja) ビット変更を可能にする、フラッシュメモリにおける使用のための、改良されたエラー修正方式
US4800520A (en) Portable electronic device with garbage collection function
JP2537199B2 (ja) Icカ―ド
US5963970A (en) Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US7954039B2 (en) Memory card and memory controller
US6353910B1 (en) Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage
US20080282128A1 (en) Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
JP2557838B2 (ja) Icカ−ド
EP0383899B1 (en) Failure detection for partial write operations for memories
JP3129865B2 (ja) データの検証方法
JPH01152589A (ja) 携帯可能なデータ担体
JP3471842B2 (ja) データ管理装置、データ記憶装置およびデータ管理方法
US4564941A (en) Error detection system
US6754857B2 (en) Method of testing cache memory
JP3222592B2 (ja) データの検証装置
JP2002244932A (ja) 制御装置
JP3391475B2 (ja) データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置
JP3130588B2 (ja) 記憶媒体
JP2864288B2 (ja) Icカードにおけるエラーチェック方法
JP2808358B2 (ja) Icカード
JP3231448B2 (ja) Icカード
JPS61199141A (ja) 記憶装置
JP2537198B2 (ja) 携帯可能電子装置
CN116431527A (zh) 一种地址重映射的数据读写方法、系统、设备和介质
JPS5845735B2 (ja) 情報処理装置の誤り検査方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071117

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081117

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 13