JP3391475B2 - データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置 - Google Patents

データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置

Info

Publication number
JP3391475B2
JP3391475B2 JP21206292A JP21206292A JP3391475B2 JP 3391475 B2 JP3391475 B2 JP 3391475B2 JP 21206292 A JP21206292 A JP 21206292A JP 21206292 A JP21206292 A JP 21206292A JP 3391475 B2 JP3391475 B2 JP 3391475B2
Authority
JP
Japan
Prior art keywords
data
area
sector
code
recording
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
JP21206292A
Other languages
English (en)
Other versions
JPH0635776A (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 JP21206292A priority Critical patent/JP3391475B2/ja
Publication of JPH0635776A publication Critical patent/JPH0635776A/ja
Application granted granted Critical
Publication of JP3391475B2 publication Critical patent/JP3391475B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータの書き込み方法お
よび読み出し方法、特に、1レコード分の実データを複
数のセクタに分けて記録し得るようにした記録方式に用
いるデータの書き込み方法および読み出し方法に関す
る。
【0002】
【従来の技術】通常、デジタルデータをメモリなどに記
録する場合、メモリ空間を細かなセクタ単位に区切り、
このセクタ単位でデータの書き込みや読み出しが行われ
る。このとき、1セクタ内に記録できるデータ長は固定
であるのに対し、意味をもったデータ集合としての1レ
コードのデータ長は可変であるのが一般的である。した
がって、1セクタのデータ長よりも長いレコードを記録
する場合には、レコードを複数のセクタに分けて記録す
る必要がある。また、記録時の誤りを検出するために
は、各セクタごとにエラーチェックコードを記録してお
く必要がある。
【0003】従来、一般的に用いられている記録方式で
は、1つのセクタ内に3つの領域が定義される。第1の
領域には、セクタ間のデータの連結状態を示す制御デー
タが記録され、第2の領域には、複数に分割された実デ
ータが記録され、第3の領域には、制御データおよび実
データに基づいて生成したエラーチェックコードが記録
される。たとえば、1レコードを3つのセクタに分けて
記録する場合を例にとると、1レコードのデータは、D
ATA1,DATA2,DATA3の3つに分割され、
それぞれ、セクタ,セクタ,セクタ、の第2の領
域に実データとして書き込まれる。また、各セクタの第
1の領域には、このレコードが、DATA1,DATA
2,DATA3の順に連結することを示す制御データが
書き込まれる。具体的には、セクタは先頭セクタであ
り、セクタは中間セクタであり、セクタは最終セク
タであることを示す制御データが、各セクタの第1の領
域に書き込まれる。更に、各セクタの第3の領域には、
それぞれのセクタにおける制御データと実データとに基
づいて生成されたエラーチェックコードが書き込まれ
る。
【0004】このように、各セクタの第1の領域に制御
データを記録しておけば、再生時には、各セクタの第2
の領域から読み出した実データを、制御データに基づい
て合成することができ、もとの1レコード分のデータの
再生が可能になる。また、この読み出しの際に、各セク
タごとにエラーチェックコードによるエラーチェックが
可能になり、信頼度の高いデータ再生が可能になる。
【0005】
【発明が解決しようとする課題】しかしながら、上述し
た従来のデータ記録方法には、1レコード分のデータを
書き込む作業が途中で中断するという事故が起こった場
合に、柔軟な対処を行うことができないという問題があ
った。たとえば、1レコードのデータを、DATA1,
DATA2,DATA3の3つに分割し、それぞれ、セ
クタ,セクタ,セクタ、に書き込む作業を実行中
に、何らかの支障が発生し、セクタへの書き込み途中
で、この作業が中断してしまった場合を考える。この場
合、セクタについては正しいエラーチェックコードが
書き込まれていない。したがって、セクタを読み出し
た場合、エラーチェックコードの不一致が検出されるこ
とになり、何らかの異常が発生したことは認識すること
ができる。しかしながら、この異常発生原因が、書き込
み時の中断事故によるものなのか、書き込みデータのデ
ータエラー(ビット化け)によるものなのか、を区別す
ることができないため、それぞれの原因に適した処置を
行うことができないのである。
【0006】最近、磁気カードに代わる新しい情報記録
媒体として、ICカードが脚光を浴びている。このIC
カードでは、データの書き込み/読み出しに用いるバッ
ファが比較的小容量であるため、1セクタのデータ長が
比較的短く、1レコード分のデータをいわば細切れにし
て多数のセクタに分けて記録することになる。したがっ
て、一般的なコンピュータ用のRAMなどの内部記憶装
置や、ハードディスクやフロッピディスクなどの外部記
憶装置にデータを記録する場合に比べて、ICカードに
データを記録する場合は、1レコード分のデータを書き
込む作業が何らかの支障により中断する確率が高い。し
かも、ICカードは、ポケットなどに入れて携帯される
ため、データの入出力端子などの電気的接触が不良にな
りやすく、書き込み作業が中断する確率もかなり高くな
る。したがって、上述の問題は、ICカードでは特に重
要な問題となる。
【0007】そこで本発明は、データ書き込み作業の中
断事故が発生した場合に、柔軟な対処を行うことができ
るデータの書き込み方法および読み出し方法ならびにこ
れらの方法を実施するデータ記録再生装置を提供するこ
とを目的とする。
【0008】
【課題を解決するための手段】
(1) 本願第1の発明は、セクタ間のデータの連結状態
を示す制御データを記録するための第1の領域と、実デ
ータを記録するための第2の領域と、制御データおよび
実データに基づいて生成したエラーチェックコードを記
録するための第3の領域と、を各セクタ内に定義し、1
レコード分の実データを複数のセクタに分けて記録し得
るようにした記録方式に用いるデータの書き込み方法に
おいて、記録すべき1レコード分の実データを、第2の
領域の記録容量に基づいて複数のブロックに分割する第
1の段階と、第1のセクタの第1の領域にレコードの先
頭を示す制御データを、第2の領域に第1の段階で分割
して得られた第1のブロックデータを、それぞれ書き込
む第2の段階と、第2の段階で書き込まれたデータに基
づいて、エラーチェックコードを生成する第3の段階
と、第3の段階で生成されたエラーチェックコードに対
して所定の変換を施し、変換コードを得る第4の段階
と、この変換コードを、第1のセクタの第3の領域に書
き込む第5の段階と、第1のセクタに後続する後続セク
タの第1の領域に所定の制御データを、第2の領域に第
1のブロックデータに後続する後続ブロックデータを、
第3の領域に第1および第2の領域に書き込まれたデー
タに基づいて生成されたエラーチェックコードを、それ
ぞれ書き込む処理を、第1の段階で分割して得られたす
べてのブロックデータについて行う第6の段階と、第6
の段階が終了したら、第1のセクタの第3の領域に書き
込まれていた変換コードを、変換前のエラーチェックコ
ードに書き替える第7の段階と、を行うようにしたもの
である。
【0009】(2) 本願第2の発明は、上述の第1の発
明によるデータの書き込み方法によって記録されたデー
タを読み出す方法において、1レコード分のデータが書
き込まれている先頭セクタのデータを読み出す第1の段
階と、この先頭セクタの第1および第2の領域に書き込
まれていたデータに基づいて生成されるエラーチェック
コードと、第3の領域に書き込まれていたコードとを比
較する第2の段階と、第2の段階における比較結果が一
致を示した場合に、先頭セクタに記録されていたデータ
を正しいデータとして認識する第3の段階と、第2の段
階における比較結果が不一致を示した場合に、エラーチ
ェックコードに対して所定の変換を施して得られる変換
コードと、第3の領域に書き込まれていたコードとを比
較する第4の段階と、第4の段階における比較結果が一
致を示した場合に、この先頭セクタから記録されている
1レコード分のデータについては、データ書き込みを行
っている途中において、書き込み処理の中断があったと
認識する第5の段階と、第4の段階における比較結果が
不一致を示した場合に、この先頭セクタに記録されてい
たデータに誤りがあると認識する第6の段階と、を行う
ようにしたものである。
【0010】(3) 本願第3の発明は、上述の第1およ
び第2の発明による方法を実施するために、セクタ間の
データの連結状態を示す制御データを記録するための第
1の領域と、実データを記録するための第2の領域と、
制御データおよび実データに基づいて生成したエラーチ
ェックコードを記録するための第3の領域と、を有する
複数のセクタが定義され、1レコード分の実データをこ
れらのセクタに分けて記録し得るデータ記録手段と、記
録すべき1レコード分の実データを、第2の領域の記録
容量に基づいて複数のブロックデータに分割する実デー
タ分割手段と、分割された各ブロックデータ相互間にお
ける連結状態を示す制御データを生成する制御データ生
成手段と、各ブロックデータとこれに対応する制御デー
タとに基づいてエラーチェックコードを生成するエラー
チェックコード生成手段と、生成されたエラーチェック
コードに対して所定の変換を施し、変換コードを得るコ
ード変換手段と、制御データを第1の領域に、ブロック
データを第2の領域に、エラーチェックコードまたは変
換コードを第3の領域に、それぞれ書き込む機能を有す
るデータ書き込み手段と、各領域からデータを読み出す
機能を有するデータ読み出し手段と、読み出された各ブ
ロックデータを合成して、1レコード分の実データを生
成する実データ合成手段と、第1の領域から読み出され
たブロックデータおよび第2の領域から読み出された制
御データに基づくエラーチェックコードとして生成され
る第1のコードと、第3の領域から読み出された第2の
コードと、を比較する機能と、前記第1のコードに対し
て前記変換を施して得られる変換コードと、前記第2の
コードと、を比較する機能と、を有するエラーチェック
手段と、によってデータ記録再生装置を構成したもので
ある。
【0011】
【作 用】本発明によれば、1レコード分の実データを
複数のセクタに分けて記録する場合、次のような書き込
み処理が行われる。まず、第1のブロックデータが、こ
のデータがレコードの先頭であることを示す制御データ
とともに、第1のセクタに書き込まれる。続いて、この
第1のセクタについてのエラーチェックコードが書き込
まれるが、このとき、正しいエラーチェックコードの代
わりに、所定の変換処理により得られる変換コードが書
き込まれる。続く、後続セクタについては、従来と同様
に、それぞれ後続するブロックデータが所定の制御デー
タとともに書き込まれ、各セクタごとに正しいエラーチ
ェックコードが書き込まれる。こうして、全実データの
記録が無事完了したら、最後に、第1のセクタに書き込
まれていた変換コードが、正しいエラーチェックコード
に書き替えられる。
【0012】このような書き込み処理を行うと、処理完
了時点での記録状態は、従来の方法と全く同じになる
が、処理が途中で中断した時点での記録状態は、従来の
方法とは若干異なる。すなわち、書き込み処理が中断し
た場合、第1のセクタに書き込まれているエラーチェッ
クコードは、正しいコードではなく、所定の変換コード
となったままである。したがって、読み出し時に、エラ
ーチェックコードが不一致となる異常が発生した場合に
は、読み出したエラーチェックコードが変換コードに一
致するか否かを判断することにより、異常発生原因が、
書き込み処理の中断によるものか否かを認識することが
できる。
【0013】
【実施例】以下、本発明を図示する実施例に基づいて説
明する。ここでは、ICカードに本発明を適用した具体
的な実施例を述べることにする。現在普及している一般
的なICカードはEEPROMを内蔵しており、このE
EPROMのメモリ空間は、多数のエリアに分割され、
更にこの各エリアはいくつかのセクタに分割されてい
る。図1に、一般的なICカードの1セクタの構成を示
す。この例では、1セクタは6バイトから構成されてい
る。第1のバイトRCBには制御データが記録され、第
2〜第5のバイトD1〜D4には実データが記録され、
第6のバイトBCCにはエラーチェックコードが記録さ
れる。別言すれば、1セクタは、制御データを記録する
ための第1の領域と、実データを記録するための第2の
領域と、エラーチェックコードを記録するための第3の
領域と、によって構成されていることになる。
【0014】制御データRCB(Record Control Byte
の頭文字をとったもの)は、セクタ間のデータの連結状
態を示すためのものであり、この例では、この制御デー
タRCBは図2に示すようなビットb0〜b7の8ビッ
トのデータからなる。ここで、ビットb7はこの制御デ
ータRCBが有効(0)か無効(1)かを示すビットで
あり、ビットb6〜b2は予備として未使用のビットで
あり、ビットb1,b0が連結状態を示すためのビット
である。具体的には、ビットb1,b0が「00」であ
れば「連結なし」を示す。すなわち、該当セクタに記録
されている実データは、それ自身で1レコード分のデー
タを構成することを示す。また、ビットb1,b0が
「10」であれば「先頭セクタ」を示す。すなわち、該
当セクタに記録されている実データは、1レコード分の
データの先頭の一部分であることを示す。一方、ビット
b1,b0が「11」であれば「中間セクタ」を示す。
すなわち、該当セクタに記録されている実データは、1
レコード分のデータの中間の一部分であることを示す。
更に、ビットb1,b0が「01」であれば「最終セク
タ」を示す。すなわち、該当セクタに記録されている実
データは、1レコード分のデータの最後の一部分である
ことを示す。結局、有効な制御データRCBを1バイト
で表現すると、該当セクタに記録されている実データ
は、 00:連結なし 02:先頭セクタ 03:中間セクタ 01:最終セクタ という意味を表現することになる。
【0015】以上の取決めは、次のような具体例を参照
すれば、容易に理解できよう。たとえば、図3に示すよ
うな4つのレコードデータを、上述のように定義された
セクタを用いて記録すると、図4に示すように7つのセ
クタ〜に記録されることになる。すなわち、第1レ
コードの実データはセクタに記録され、第2レコード
の実データはセクタ〜に記録され、第3レコードの
実データはセクタ,に記録され、第4レコードの実
データはセクタに記録されている。第1レコードおよ
び第4レコードは、いずれも単一のセクタ内に収まって
しまっているので、制御データRCBとしては、いずれ
も「00:連結なし」が記録されている。ところが、第
2レコードは3つのブロックデータに分割され、第1の
ブロックデータはセクタに、第2のブロックデータは
セクタに、第3のブロックデータはセクタに、それ
ぞれ別々に記録されている。したがって、セクタの制
御データRCBとしては、「02:先頭セクタ」が記録
され、セクタの制御データRCBとしては、「03:
中間セクタ」が記録され、セクタの制御データRCB
としては、「01:最終セクタ」が記録されている。同
様に、第3レコードは2つのブロックデータに分割さ
れ、セクタ,に記録されている。
【0016】また、各セクタの最終バイトには、エラー
チェックコードBCC(Block Check Code の頭文字を
とったもの)が記録されている。このエラーチェックコ
ードBCCは、各セクタについて先行する5バイトのデ
ータ(1バイトの制御データRCBと4バイトの実デー
タ)に対して所定の論理演算処理を施すことにより生成
される1バイトデータである。このようなエラーチェッ
クコードBCCを発生させる論理演算処理としては、種
々のものが公知であり、どのような演算処理を用いても
かまわない。図示する実施例では、ごく一般的な水平パ
リティチェック演算を用いている。このように、5バイ
トのデータに1バイトのエラーチェックコードを付加し
ておけば、この6バイトのデータを読み出したときに、
データエラー(ビット化け)が発生した場合にこれを検
出することができる。たとえば、図5において、セクタ
を読み出したとき、5バイトのデータ「X1 X2
X3 X4 X5」に基づいてエラーチェックコードを
発生させ、これが6バイト目のデータ「XX」に一致す
れば、正常な読み出しが行われたものと認識することが
でき、不一致であれば、何らかの異常が発生したものと
認識することができる。
【0017】しかしながら、前述したように従来の方法
では、この異常発生原因が、書き込み時の中断事故によ
るものなのか、書き込みデータのデータエラー(ビット
化け)によるものなのか、を区別することができないた
め、それぞれの原因に適した処置を行うことができない
のである。たとえば、図5において、セクタを読み出
したときに、5バイトのデータ「X1 X2 X3 X
4 X5」に基づいて発生させたエラーチェックコード
が6バイト目のデータ「XX」に一致しなかった場合、
2とおりの原因が考えられる。第1の原因は、データエ
ラーによるものである。たとえば、3バイト目の「X
3」は、本来は「X6」であるべきところ、ビット化け
により「X3」として読み出されてしまったような場合
である。第2の原因は、書き込み時の中断事故によるも
のである。たとえば、第2レコードの書き込み作業を行
っているとき、セクタの書き込みを終えてセクタの
3バイト目の「X3」まで書き込んだ時点で、何らかの
支障が生じて作業が中断したような場合である。この場
合は、4バイト目〜6バイト目「X4 X5 XX」に
は、本来のデータはまだ書き込まれていないため、エラ
ーチェックコードの不一致が生じるのである。
【0018】ICカードに内蔵されたEEPROMなど
にデータを書き込むような場合、このような書き込み時
の中断事故が発生するおそれがあることは既に述べたと
おりである。ところが、従来の方法では、データエラー
という第1の原因であっても、書き込み時の中断事故と
いう第2の原因であっても、いずれも、エラーチェック
コードの不一致として検出されるだけであり、どちらの
原因かを特定する手掛かりは残されていないのである。
この原因が特定できれば、より柔軟な対処が可能にな
る。すなわち、データエラーが原因である場合には、制
御データ「X1」にデータエラーが生じている可能性が
あるため、この制御データ「X1」を信頼することはで
きない。このため、レコードの境界が不明確になり、誤
ったレコードをアクセスする可能性が出てくるので、該
当するエリア内の全レコード(この例の場合、第1〜第
4レコード)に対してアクセスを禁止する処置をとるの
が一般的である。これに対し、書き込み時の中断事故が
原因である場合には、該当する1レコードだけが誤って
記録されているに過ぎないので、次のレコードについて
の先頭セクタを探し(この例の場合は、第3レコードに
ついての先頭セクタを、制御データが「02」である
最初のセクタとして認識できる)、誤っている当該レコ
ードだけを再度書き込む処理を行えばよい。
【0019】本発明は、エラーチェックコードの不一致
が検出されたときに、その原因が、データエラーによる
ものであるのか、書き込み時の中断事故によるものであ
るのか、を特定し、柔軟な対処が可能になるようにする
ことを目的としてなされたものである。以下、この方法
について詳述する。
【0020】図6は、本発明の方法を実施するためのデ
ータ記録再生装置の基本構成を示すブロック図である。
外部から与えられたデータは、データ書き込み手段10
によってデータ記録手段20に書き込まれ、データ記録
手段20内のデータは、データ読み出し手段30によっ
て読み出される。データ記録手段20内には、多数のエ
リアが定義されており、この実施例では、1エリアはセ
クタ〜の7つのセクタから構成され、1セクタに
は、前述したように、4バイトの実データが記録され
る。まず、外部から与えられた1レコード分のデータ
は、実データ分割手段11によって複数のブロックデー
タDATAに分割される。1つのブロックデータの長さ
は、1セクタに記録可能な実データの長さ、すなわち4
バイトである。制御データ生成手段12は、この分割処
理に応じた制御データRCBを生成する。また、エラー
チェックコード生成手段13は、1セクタ分の制御デー
タRCBおよびブロックデータDATAに基づいて、エ
ラーチェックコードBCCを発生する。この装置の特徴
は、更に、反転手段14を設けた点にある。この反転手
段14は、エラーチェックコード生成手段13によって
生成されたエラーチェックコードBCCに対して、論理
反転演算を施し、反転コードBCCNを生成する機能を
有する。こうして生成されたブロックデータDATA,
制御データRCB,エラーチェックコードBCC,反転
コードBCCNは、データ書き込み手段10によって、
データ記録手段20内の各セクタの所定の領域に書き込
まれる。一方、データ読み出し手段30によって読み出
された各セクタごとの実データは、実データ合成手段3
1によって合成され、1レコード分のデータとして再生
される。また、エラーチェック手段32は、読み出され
たデータに基づいてエラーチェックを行い、チェック結
果を出力する。
【0021】続いて、この記録再生装置によるデータ書
き込み処理およびデータ読み出し処理を詳細に説明す
る。まず、図7の流れ図に基づいて、データ書き込み処
理を説明する。ここでは、説明の便宜上、データ記録手
段20内の所定のエリアに、図4に示すような4つのレ
コードが記録されている状態において、第2レコードを
新たなデータに書き替える処理を行う場合を例にとっ
て、以下に具体的な処理の説明を行うことにする。ま
ず、ステップS1において、書き込みの対象となる1レ
コード分のデータを複数のブロックに分割する処理を行
う。たとえば、図8に示すような新しい第2レコードデ
ータを書き込む場合を考える。この場合、このデータ
は、図9に示すように、3つのブロックデータに分割さ
れることになる。以下のステップにおいて、第1〜第3
のブロックデータは、それぞれセクタ〜に書き込ま
れる。
【0022】続く、ステップS2では、セクタに第1
のブロックデータが書き込まれるが、このとき、このセ
クタがレコードの先頭であることを示す制御データ
「02」が同時に書き込まれる。図10に網掛けをして
示した部分が、このステップS2において書き込まれた
データを示している。
【0023】次のステップS3では、ステップS2で書
き込んだデータに基づいて、エラーチェックコードBC
Cが生成される。具体的には、5バイトのデータ「02
AA AA AA AA」に基づいて、エラーチェッ
クコード「02」が生成される。ただし、このエラーチ
ェックコードは、まだ、セクタには書き込まない(図
10のセクタのBCC欄が「02」となっているの
は、図4に示すように過去に書き込んだデータがたまた
ま同じ「02」であるためである)。
【0024】次に、ステップS4において、ステップS
3で生成したエラーチェックコードBCCに対する反転
コードBCCNを生成する。これは、前述したように、
各ビットごとに論理反転演算を行えばよい。すなわち、
ステップS3で生成したエラーチェックコード「02」
を2進表示すると「00000010」であるから、反
転コードの2進表示は「11111101」となり、1
6進表示では「FD」なる反転コードが生成されること
になる。
【0025】続いて、ステップS5において、セクタ
のBCC欄に、「FD」なる反転コードを書き込む。図
11は、このときの状態を示す。網掛けをして示したデ
ータ「FD」が書き込まれた反転コードである。ここ
で、このデータ「FD」は、セクタの先行する5バイ
トのデータ「02 AA AA AA AA」に基づい
て得られる正しいエラーチェックコード「02」ではな
いが、この正しいエラーチェックコード「02」に1対
1に対応して求められる特有の値である。
【0026】次に、ステップS6において、後続ブロッ
クデータ、これについての制御データRCB、これらに
ついてのエラーチェックコードBCCの書き込みが行わ
れる。具体的には、まず、図12に網掛けをして示した
ように、セクタの各欄への書き込みが行われる。すな
わち、中間セクタであることを示す制御データ「03」
に続いて、4バイトからなる第2のブロックデータ「A
A AA AA AA」が書き込まれ、最後に、これら
5バイトのデータに基づいて生成されたエラーチェック
コード「03」が書き込まれる。更に、ステップS7を
経て再びステップS6が繰り返され、今度は、図13に
網掛けをして示したように、セクタの各欄への書き込
みが行われる。すなわち、最終セクタであることを示す
制御データ「01」に続いて、4バイトからなる第3の
ブロックデータ「AA AA AA AA」が書き込ま
れ、最後に、これら5バイトのデータに基づいて生成さ
れたエラーチェックコード「01」が書き込まれる。
【0027】これで、全ブロックデータの書き込みが完
了したので、ステップS7からステップS8へと進み、
反転コードBCCNの書き替えが行われる。すなわち、
図11に網掛けをして示した反転コード「FD」が、正
しいエラーチェックコード「02」に書き替えられる。
図14は、このときの状態を示す。これで、第2レコー
ドには、新たなデータ「AA AA … AA」が書き
込まれたことになり、6バイト目のBCC欄には、いず
れのセクタにも正しいエラーチェックコードが書き込ま
れた状態となっている。
【0028】以上の書き込み処理の特徴は、セクタに
対する書き込みが完了した後、セクタ,に対する書
き込みが完了するまでの期間は、セクタのBCC欄に
は正しいエラーチェックコード「02」の代わりに、反
転コード「FD」が書き込まれた状態になっている点で
ある。この特徴を利用すれば、書き込み時に中断事故が
発生した場合にその痕跡を残すことができるのである。
たとえば、セクタに対する書き込み作業中に、何らか
の支障が生じて、書き込み作業が3バイト目で中断して
しまった場合を考える。この場合は、図15に示すよう
な状態になる。ここで、網掛けをして示した3バイトが
中断直前に書き込まれたデータであり、セクタのBC
C欄は、反転コード「FD」が書き込まれた状態のまま
である。したがって、セクタについては、「02 A
A AA AA AA」なる5バイトのデータに基づい
て作成されるエラーチェックコード「02」は、6バイ
ト目に書き込まれている反転コード「FD」には一致し
ない。そこで、セクタを読み出したとき、このセクタ
の記録には、何らかの異常が発生したことが認識でき
る。しかも、この6バイト目の反転コード「FD」は、
でたらめなコードではなく、正しいエラーチェックコー
ド「02」を反転することにより得られる特有のコード
であると判断することができ、異常発生原因が、書き込
み時の中断事故によるものであると認識することができ
る。このように、反転コード「FD」は、異常発生がデ
ータエラーによるものであるのか、書き込み時の中断事
故によるものであるのか、を認識する手掛かりとなるの
である。
【0029】図6に示したエラーチェック手段32は、
このような手掛かりに基づいて、エラーチェックコード
の不一致の原因を認識する処理を行う機能を有する。以
下、図17の流れ図を参照しながら、この機能について
説明する。
【0030】まず、ステップS11において、先頭セク
タからのデータ読み出しを行う。たとえば、何ら異常が
発生しなかった場合は、図14におけるセクタから6
バイトのデータ「02 AA AA AA AA 0
2」が読み出される。そして、ステップS12でエラー
チェックコードの比較が行われる。すなわち、先頭から
5バイトのデータ「02 AA AA AA AA」に
基づいて、エラーチェックコード「02」が生成され、
これが6バイト目のデータ「02」と比較される。この
例では、両者は一致するので、ステップS13からステ
ップS14へと分岐し、読み出した先頭セクタの内容を
正しいデータとして認識し、次のステップS15におい
て、後続セクタの読み出しが行われる。すなわち、セク
タ,の読み出しが行われ、図8に示すような第2レ
コードデータが再生される。
【0031】これに対し、書き込み時の中断事故があっ
た場合は、ステップS11において、図15におけるセ
クタから6バイトのデータ「02 AA AA AA
AA FD」が読み出される。そして、ステップS1
2でエラーチェックコードの比較が行われる。すなわ
ち、先頭から5バイトのデータ「02 AA AA A
A AA」に基づいて、エラーチェックコード「02」
が生成され、これが6バイト目のデータ「FD」と比較
される。この例では、両者は不一致となる。そこで、ス
テップS13からステップS16へと分岐し、今度は、
生成されたエラーチェックコード「02」に対して論理
反転演算を行うことにより反転コード「FD」が生成さ
れ、この反転コード「FD」と6バイト目のデータ「F
D」とが比較される。両者は一致するので、ステップS
17からステップS18へと分岐し、書き込み時の中断
事故が生じているという認識が行われ、ステップS19
において、中断したデータの再書き込み処理が行われ
る。具体的には、セクタ〜に対して、正しいレコー
ドデータを再度書き込む処理が行われる。
【0032】一方、書き込みは完了したにもかかわらず
データエラーが生じた場合は、ステップS11におい
て、たとえば図16におけるセクタから6バイトのデ
ータ「02 AA ZZ AA AA 02」が読み出
される。ここで、網掛けをして示したデータ「ZZ」
が、データエラーを生じたバイトである。続く、ステッ
プS12でエラーチェックコードの比較が行われる。す
なわち、先頭から5バイトのデータ「02 AA ZZ
AA AA」に基づいて、エラーチェックコードが生
成され、これが6バイト目のデータ「02」と比較され
るが、両者は不一致となる。そこで、ステップS13か
らステップS16へと分岐し、今度は、生成されたエラ
ーチェックコードに対して論理反転演算を行うことによ
り反転コードが生成され、この反転コードと6バイト目
のデータ「FD」とが比較されるが、両者はやはり不一
致となるので、ステップS17からステップS20へと
分岐し、データエラーが発生したという認識が行われ、
ステップS21において、該当エリアのアクセス禁止と
いう処理がなされる。すなわち、前述したように、デー
タエラーが発生した場合には、レコードの区切りを特定
するための制御コードRCBの信頼性が損なわれるた
め、誤ったレコードをアクセスすることがないように、
関連のあるエリア内のアクセスをすべて禁止するのであ
る。
【0033】このように、エラーチェックコードによる
チェックに異常が発見された場合、本発明の方法によれ
ば、その異常発生原因が、データエラーによるものなの
か、書き込み時の中断事故によるものなのか、を認識す
ることができるため、その原因に適した柔軟な処理を行
うことが可能になる。
【0034】以上、本発明を図示する実施例に基づいて
説明したが、本発明はこの実施例のみに限定されるもの
ではなく、この他にも種々の態様で実施可能である。た
とえば、上述の実施例では、先頭セクタのBCC欄に、
正しいエラーチェックコードの代わりに、この正しいエ
ラーチェックコードを論理反転して得られる反転コード
を書き込むようにしているが、これは必ずしも反転コー
ドにする必要はない。要するに、正しいエラーチェック
コードに対して1対1に対応する所定の変換処理を行
い、その結果得られる何らかの変換コードを書き込むよ
うにしておけばよい。たとえば、所定の固定データを定
義しておき、正しいエラーチェックコードとこの固定デ
ータとの間で論理和や論理積演算などを行い、その結果
得られる論理値を変換コードとして書き込むようにして
もよい。また、上述の実施例は、本発明をICカードへ
のデータ記録に適用したものであるが、本発明はICカ
ードだけに限定されるものではなく、あらゆる情報記録
媒体に対するデータ記録に応用できる。
【0035】
【発明の効果】以上のとおり本発明に係るデータの書き
込み方法および読み出し方法によれば、1レコード分の
データを複数のセクタに分けて書き込む処理の実行中
に、第1のセクタにはエラーチェックコードの代わりに
所定の変換コードを書き込むようにしたため、読み出し
時に異常が検出されたとき、その異常発生原因が、書き
込み処理の中断によるものか否かを認識することができ
るようになり、このような中断事故に対して柔軟な対処
が可能になる。
【図面の簡単な説明】
【図1】一般的なICカード内の記憶素子の1セクタの
構成バイトを示す図である。
【図2】図1に示す制御データRCBを構成する各ビッ
トの意味を定義した図である。
【図3】具体的な4つのレコードデータを示す図であ
る。
【図4】図3に示す4つのレコードデータを、複数のセ
クタ〜に記録した状態を示す図である。
【図5】図4に示す記録において、セクタの記録に異
常が発生した状態を示す図である。
【図6】本発明の方法を実施するためのデータ記録再生
装置の基本構成を示すブロック図である。
【図7】本発明によるデータの書き込み処理の基本手順
を示す流れ図である。
【図8】具体的なレコードデータの一例を示す図であ
る。
【図9】図7のステップS1において、図8に示すデー
タを分割した状態を示す図である。
【図10】図7のステップS2において、セクタの先
頭5バイトへデータの書き込みを行った状態を示す図で
ある。
【図11】図7のステップS5において、反転コードB
CCNの書き込みを行った状態を示す図である。
【図12】図7のステップS6において、セクタへデ
ータの書き込みを行った状態を示す図である。
【図13】図7のステップS6において、セクタへデ
ータの書き込みを行った状態を示す図である。
【図14】図7のステップS8において、反転コードB
CCNの書き替えを行った状態を示す図である。
【図15】書き込み時の中断事故が発生した場合の記録
データの状態を示す図である。
【図16】データエラーが発生した場合の記録データの
状態を示す図である。
【図17】本発明によるデータの読み出し処理の基本手
順を示す流れ図である。
【符号の説明】
10…データ書き込み手段 11…実データ分割手段 12…制御データ生成手段 13…エラーチェックコード生成手段 14…反転手段 20…データ記録手段 30…データ読み出し手段 31…実データ合成手段 32…エラーチェック手段
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/16 G06F 3/06 G06F 11/08 G06K 19/07 - 19/077

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 セクタ間のデータの連結状態を示す制御
    データを記録するための第1の領域と、実データを記録
    するための第2の領域と、前記制御データおよび前記実
    データに基づいて生成したエラーチェックコードを記録
    するための第3の領域と、を各セクタ内に定義し、1レ
    コード分の実データを複数のセクタに分けて記録し得る
    ようにした記録方式に用いるデータの書き込み方法であ
    って、 記録すべき1レコード分の実データを、前記第2の領域
    の記録容量に基づいて複数のブロックに分割する第1の
    段階と、 第1のセクタの第1の領域にレコードの先頭を示す制御
    データを、第2の領域に前記第1の段階で分割して得ら
    れた第1のブロックデータを、それぞれ書き込む第2の
    段階と、 前記第2の段階で書き込まれたデータに基づいて、エラ
    ーチェックコードを生成する第3の段階と、 前記第3の段階で生成されたエラーチェックコードに対
    して所定の変換を施し、変換コードを得る第4の段階
    と、 前記変換コードを、前記第1のセクタの第3の領域に書
    き込む第5の段階と、 前記第1のセクタに後続する後続セクタの第1の領域に
    所定の制御データを、第2の領域に前記第1のブロック
    データに後続する後続ブロックデータを、第3の領域に
    第1および第2の領域に書き込まれたデータに基づいて
    生成されたエラーチェックコードを、それぞれ書き込む
    処理を、前記第1の段階で分割して得られたすべてのブ
    ロックデータについて行う第6の段階と、 前記第6の段階が終了したら、前記第1のセクタの第3
    の領域に書き込まれていた変換コードを、変換前のエラ
    ーチェックコードに書き替える第7の段階と、 を有することを特徴とするデータの書き込み方法。
  2. 【請求項2】 セクタ間のデータの連結状態を示す制御
    データを記録するための第1の領域と、実データを記録
    するための第2の領域と、前記制御データおよび前記実
    データに基づいて生成したエラーチェックコードを記録
    するための第3の領域と、を各セクタ内に定義し、1レ
    コード分の実データを複数のセクタに分けて記録し得る
    ようにした記録方式に用いるデータの読み出し方法であ
    って、 1レコード分のデータが書き込まれている先頭セクタの
    データを読み出す第1の段階と、 前記先頭セクタの第1および第2の領域に書き込まれて
    いたデータに基づいて生成されるエラーチェックコード
    と、第3の領域に書き込まれていたコードとを比較する
    第2の段階と、 前記第2の段階における比較結果が一致を示した場合
    に、前記先頭セクタに記録されていたデータを正しいデ
    ータとして認識する第3の段階と、 前記第2の段階における比較結果が不一致を示した場合
    に、前記エラーチェックコードに対して所定の変換を施
    して得られる変換コードと、前記第3の領域に書き込ま
    れていたコードとを比較する第4の段階と、 前記第4の段階における比較結果が一致を示した場合
    に、前記先頭セクタから記録されている1レコード分の
    データについては、データ書き込みを行っている途中に
    おいて、書き込み処理の中断があったと認識する第5の
    段階と、 前記第4の段階における比較結果が不一致を示した場合
    に、前記先頭セクタに記録されていたデータに誤りがあ
    ると認識する第6の段階と、 を有することを特徴とするデータの読み出し方法。
  3. 【請求項3】 セクタ間のデータの連結状態を示す制御
    データを記録するための第1の領域と、実データを記録
    するための第2の領域と、前記制御データおよび前記実
    データに基づいて生成したエラーチェックコードを記録
    するための第3の領域と、を有する複数のセクタが定義
    され、1レコード分の実データをこれらのセクタに分け
    て記録し得るデータ記録手段と、 記録すべき1レコード分の実データを、前記第2の領域
    の記録容量に基づいて複数のブロックデータに分割する
    実データ分割手段と、 分割された各ブロックデータ相互間における連結状態を
    示す制御データを生成する制御データ生成手段と、 各ブロックデータとこれに対応する制御データとに基づ
    いてエラーチェックコードを生成するエラーチェックコ
    ード生成手段と、 生成されたエラーチェックコードに対して所定の変換を
    施し、変換コードを得るコード変換手段と、 制御データを第1の領域に、ブロックデータを第2の領
    域に、エラーチェックコードまたは変換コードを第3の
    領域に、それぞれ書き込む機能を有するデータ書き込み
    手段と、 各領域からデータを読み出す機能を有するデータ読み出
    し手段と、読み出された各ブロックデータを合成して、
    1レコード分の実データを生成する実データ合成手段
    と、 第1の領域から読み出されたブロックデータおよび第2
    の領域から読み出された制御データに基づくエラーチェ
    ックコードとして生成される第1のコードと、第3の領
    域から読み出された第2のコードと、を比較する機能
    と、前記第1のコードに対して前記変換を施して得られ
    る変換コードと、前記第2のコードと、を比較する機能
    と、を有するエラーチェック手段と、 を備えることを特徴とするデータ記録再生装置。
JP21206292A 1992-07-16 1992-07-16 データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置 Expired - Lifetime JP3391475B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21206292A JP3391475B2 (ja) 1992-07-16 1992-07-16 データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21206292A JP3391475B2 (ja) 1992-07-16 1992-07-16 データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置

Publications (2)

Publication Number Publication Date
JPH0635776A JPH0635776A (ja) 1994-02-10
JP3391475B2 true JP3391475B2 (ja) 2003-03-31

Family

ID=16616238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21206292A Expired - Lifetime JP3391475B2 (ja) 1992-07-16 1992-07-16 データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置

Country Status (1)

Country Link
JP (1) JP3391475B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051883A (ja) * 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
US7299314B2 (en) * 2003-12-31 2007-11-20 Sandisk Corporation Flash storage system with write/erase abort detection mechanism
JP4788117B2 (ja) * 2004-07-27 2011-10-05 アイシン精機株式会社 メモリへのデータ保持方法
JP4691355B2 (ja) * 2004-12-28 2011-06-01 日本電産サンキョー株式会社 不揮発性メモリ
JP5822123B2 (ja) * 2011-10-04 2015-11-24 大日本印刷株式会社 セキュリティトークン、データの更新方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JPH0635776A (ja) 1994-02-10

Similar Documents

Publication Publication Date Title
US4271519A (en) Address mark generation and decoding method
JPS61113166A (ja) デイジタル情報再生装置における時間軸補正装置
JP3391475B2 (ja) データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置
US4521872A (en) Instruction storage
US4912695A (en) Method for recording information including error information on a disk
US20040181736A1 (en) Method of generating error detection codes
US4564941A (en) Error detection system
JPH0544760B2 (ja)
US5893164A (en) Method of tracking incomplete writes in a disk array and disk storage system which performs such method
JPS6129024B2 (ja)
JP3222592B2 (ja) データの検証装置
JP3129865B2 (ja) データの検証方法
JP2864288B2 (ja) Icカードにおけるエラーチェック方法
JPS63197122A (ja) エラ−訂正及びチエツク装置
JP3231448B2 (ja) Icカード
JP3123855B2 (ja) メモリ装置のパトロール制御回路
JPH11163739A (ja) 消失誤り訂正方法とその装置
JPH043525A (ja) 符号誤り訂正装置
JPH04153792A (ja) Icカード
KR100228799B1 (ko) 데이타섹터펄스 발생 방법
JP2937890B2 (ja) Eeprom初期化方法
SU970480A1 (ru) Запоминающее устройство с самоконтролем
JP3246926B2 (ja) 誤り訂正処理装置
SU763975A1 (ru) Запоминающее устройство с обнаружением и исправлением ошибок
JPS60220444A (ja) 交替ビツト制御回路

Legal Events

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

Free format text: PAYMENT UNTIL: 20090124

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090124

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100124

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110124

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110124

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120124

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120124

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130124

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130124

Year of fee payment: 10