JP4596602B2 - 不揮発性メモリのデータ管理方法 - Google Patents
不揮発性メモリのデータ管理方法 Download PDFInfo
- Publication number
- JP4596602B2 JP4596602B2 JP2000135833A JP2000135833A JP4596602B2 JP 4596602 B2 JP4596602 B2 JP 4596602B2 JP 2000135833 A JP2000135833 A JP 2000135833A JP 2000135833 A JP2000135833 A JP 2000135833A JP 4596602 B2 JP4596602 B2 JP 4596602B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- nonvolatile memory
- area
- backup
- ram
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、ICカードのような携帯可能な情報処理装置に使用される不揮発性メモリを有するICモジュールにおける不揮発性メモリのデータ管理方法に関する。
【0002】
【従来の技術】
まず、ICモジュールが装填される例として、ICカードの機能について説明すると、図7に示すように、リーダ/ライタ1からICカード2に対してコマンド(命令)を送信し、これを受信したICカードは、命令を解釈して書き込み/読み出し等の処理を実行し、処理結果をレスポンスとしてリーダ/ライタ1へ返すようになっている。
【0003】
図8に示すように、ICカード2は、CPU11、RAM12、ROM13、不揮発性メモリ14を有しており、ROM12に記憶されているプログラムをCPU11に読み込んでリーダ/ライタ1から送信される命令をI/Oポートを通して受信すると、命令とともに送信されたデータを読み込み、不揮発性メモリ14内に格納されているデータを読み出して処理し、データ更新してI/Oポートを通してリーダ/ライタ1に対してレスポンスを出力する。
【0004】
ICカード内の不揮発性メモリにデータを記憶させる場合には、通常、データの整合性を確認するためのチェックコードも同様にメモリ上に記憶させる。そして、データの読み出し/書き込みの前には必ずこのチェックコードとの整合性を確認し、整合がとれなかった場合には、読み出し/書き込みを中止し、メモリ上のデータに異常が発生していることをリーダ/ライタへ知らせている。
【0005】
【発明が解決しようとする課題】
従来、新規の書き込みやデータの一部更新などデータをメモリへ書き込む際、次の2段階に処理を分割している。
▲1▼当該データを書き込む。
▲2▼書き込んだデータのチェックコードを算出して所定の位置に書き込む。
このようにメモリへのデータの書き込みを2回に分けて行っているため、処理▲1▼と処理▲2▼の間で、供給電源が断たれる等の事象が発生した場合には、データとそのチェックコードの整合性が保たれなくなる。特に、非接触式ICカードの場合にはリーダ/ライタに対して電波の領域外に外れて供給電源が断たれるケースが起こる可能性が大きい。このようなデータとチェックコードの整合性が保たれていない場合は、データが信用できないため、場合によっては読み出し/書き込みを中止する。
【0006】
本発明は上記課題を解決するためのもので、データとチェックコードの不一致というデータ破壊の確率を低く抑えるとともに、壊れる前のデータを復元できるようにすることを目的とする。
【0007】
【課題を解決するための手段】
本発明は、図7、図8で説明したICカード等に装填されるICモジュールに使用される不揮発性メモリにおけるデータ管理方法であり、元のデータに上書きしてデータを記憶する際、不揮発性メモリへの書き込み回数を減らして処理速度を向上させ、データとチェックコードの不一致というデータ破壊が起こる確率を低く抑え、さらにデータの破壊を検出した際には、壊れる前のデータを復元できるようにしたものである。
【0008】
そのためのデータ管理方法を以下に説明する。
(a)不揮発性メモリ上のデータを書き換える際には、揮発性メモリ(RAM)上に不揮発性メモリ上のデータを一旦コピーし、以下の手順で処理する。
▲1▼RAM上のデータを更新し、チェックコードを算出する。さらに、算出したチェックコードもデータとともにRAM上に格納する。
▲2▼RAM上の更新したデータとチェックコードをまとめて不揮発性メモリ上に書き込み、データを1回の書き込み処理で更新する。
この方法によれば、データの書き込み処理が1回になるため不揮発性メモリ上のデータの更新時間は従来に比して半分になり、データ破壊の確率を低く抑えることができる。
(b)不揮発性メモリの異なる領域に同じデータを格納してデータをバックアップする。データの持つ意味に応じて次のミラー機能、バックアップ機能の2通りのバックアップ方法を使い分ける。例えば、ミラー機能は常に同じデータを2つもつため長いデータに使用するとメモリ容量を多く必要とするので、比較的短いデータに適用し、バックアップ機能は長いデータに適用する。
(bー1)ミラー機能(同じデータを常に二重化する)
▲1▼データの整合性が確認できなかった場合、バックアップデータを利用して不整合の発生しているデータを修正する。
▲2▼データの整合性が確認できなかった場合、バックアップデータを参照する。
▲3▼上記▲1▼または▲2▼が発生している場合、データの書き換えに際しては「不整合の発生しているデータ領域→整合性のとれているデータ領域」の順で書き換えを行い、まず壊れているデータから書き換え、壊れていないデータはなるべく 書き換えずに読み出せることを優先する。
(bー2)バックアップ機能(メモリ上の特定作業領域を利用する)
(イ)データ書き込み方法
▲1▼不揮発性メモリ上のデータを書き換える前に不揮発性メモリの作業領域(バックアップ領域)にデータ(古いデータ)をコピーする。
▲2▼RAM上の新しいデータをRAMから不揮発性メモリ(書き込みデータ領域)にコピーしてデータを書き換える。
▲3▼不揮発性メモリの作業領域を初期化して古いデータを消去する。
(ロ)データ復元方法
▲1▼不揮発性メモリの作業領域が初期化されていない(古いデータが残っている)場合、(イ)のデータ書き込みが完了していないため、作業領域の古いデータを利用して復元する。
▲2▼不揮発性メモリの作業領域が初期化されている場合は何もしない。
(c)上記(b)に示したミラー機能、バックアップ機能は、それぞれの機能の有効/無効をメモリ上の設定によって使い分けられるようにする。具体的には、メモリ上に有効/無効を示すフラグ領域を設け、処理に先立ってこのフラグを参照して有効/無効を判断する。これは、ミラー機能の場合にはメモリを多く必要とし、バックアップ機能の場合は書き換え回数が多くなるので、必要に応じてこの機能を使ったり、使わなかったりできるようにするためである。
【0009】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。
図1は不揮発性メモリにおける基本的なEF(Elementary File )のデータ構造を示す図、図2は不揮発性メモリの領域構造を説明する図である。
ICカード内のデータは図1に示すようなEFとして不揮発性メモリ上に格納される。図1に示すディレクトリ情報は、データの記憶位置(アドレス)を示すポインタPやファイル識別子等の集まりを表し、この情報の正当性を保つブロック・チェック・コード(BCC1)とで構成される。データは、ICカードを利用したシステムがICカード内に格納しておきたい場所に格納され、格納されたデータはブロック・チェック・コード(BCC2)で正当性を保っている。
【0010】
通常、ICカードは、BCC2に不整合が生じた場合は、上位システム(図7のリーダ/ライタ)側に「データに間違いがあるかもしれない。」という警告とともにデータを返送し、BCC1に不整合が生じた場合は、ポインタの値も保障できないため「データが壊れている」を意味するエラーを返送する。
【0011】
そこで、ICカードの持つメモリ領域を図2に示すような構造とする。このとき、図1のディレクトリ情報を図2のPrimary 領域とSecondary 領域の2箇所に書き込み、ミラー機能を実現する。つまり、Primary 領域とSecondary 領域の2箇所に同じディレクトリ情報を格納してバックアップできるようにしておく。ディレクトリ情報は比較的短いため、このように2箇所の領域を使っても多くのメモリ容量を必要とすることはない。
【0012】
さらに、図1のデータを図2の書き込みデータ領域に格納し、データを書き換えるときは、それに先立ってデータをバックアップ領域にコピーした後、RAM上のデータで上書きすることにより、バックアップ機能を実現する。
【0013】
次に、図3によりミラー機能における処理フローを説明する。この処理は、ディレクトリ情報にアクセスした際に実行される。
まず、Primary 領域のEFを検索し(ステップS1)、EFがあるか否か判断する(ステップS2)。そして、EFを発見すると、Primary にBCCエラーがあるか否か判断する(ステップS3)。BCCエラーがなくディレクトリ情報に正当性がある場合には、それをRAM上にコピーする(ステップS4)。そして、ミラー機能を確認し(ステップS5)、ミラー機能が有効の場合、Primary の情報からSecondary のアドレスを算出し(ステップS6)、次いでSecondary にBCCエラーがあるか否か判断する(ステップS7)。Secondary にBCCエラーがある場合、RAMからSecondary にデータをコピーしてデータを復元する(ステップS8)。ステップS5においてミラー機能が無効の場合、ステップS7においてSecondary にBCCエラーが無い場合、リターンし以降RAMを参照することになる。
ステップS3において、Primary にBCCエラーが有る場合、Primary のBCCエラーフラグをセットし(ステップS9)、ステップS2において、Primary のEFが発見できなかった場合、Primary のBCCエラーフラグをクリアし(ステップS10)、ミラー機能を確認する(ステップS11)。ミラー機能が有効の場合、Secondary のEFを検索し(ステップS12)、EFがあるか否か判断する(ステップS13)。Secondary にBCCエラーが無い場合、Secondary のディレクトリ情報をRAMにコピーして(ステップS15)、Secondary の情報からPrimary のアドレスを算出し、RAMからPrimary にデータをコピーしてデータを復元する(ステップS17)。ステップS11においてミラー機能が無効の場合、ステップS13においてEFが発見できなかった場合、ステップS14においてSecondary にBCCエラーが有る場合、Primary にBCCエラーが有るか否か判断し(ステップS18)、BCCエラーが無い場合(ステップS10でフラグクリア)はEFが存在しないことになり、エラーがある場合はディレクトリ情報が破壊されたことになる。
【0014】
図4はミラー機能の処理フローを示す図である。この処理は、RAM上に更新された新しいデータがあり、これをメモリに書き込む際に行われる。
まず、ミラー機能を確認し(ステップS21)、有効の場合はPrimary のLRC(Longitudinal redundancy check )エラーがあるか否か判断する(ステップS22)。エラーがなくPrimary のデータが正しい場合は、RAM上のデータをSecondary 領域に書き込んで更新する(ステップS23)。そして、Secondary 領域への書き込みエラーが有るか否か判断し(ステップS24)、書き込みエラーがない場合、Secondary に正しいデータが格納されたので、Primary 領域も同じRAM上のデータで更新する(ステップS25)。また、ステップS21でミラー機能が無効の場合も、RAM上のデータでPrimary 領域を更新する。さらに、Primary 領域への書き込みエラーが有るか否か判断し(ステップS26)、無ければ正常終了する(ステップS27)。
ステップS22において、Primary にLRCエラーがある場合、Primary のデータが壊れているのでRAM上のデータでPrimary 領域を更新し(ステップS28)、Primary 領域への書き込みエラーが有るか否か判断する(ステップS29)。書き込みエラーがなければ、Primary に正しいデータが格納されたので、Secondary 領域も同じRAM上のデータで更新する(ステップS30)。そしてSecondary 領域への書き込みエラーがあるか否か判断し(ステップS31)、無ければ正常終了する。また、ステップS24、ステップS26、ステップS29、ステップS31のいずれかで書き込みエラーがあった場合は異常終了となる(ステップS32)。
【0015】
図5はバックアップ機能におけるデータ書き込み方法の処理フローを示す図である。この処理は、バックアップするデータの不揮発性メモリ上のアドレスと長さは引数として与えられる。
まず、バックアップ機能を確認し(ステップS41)、有効である場合、保存するデータの先頭アドレスと長さをRAMにセットする(ステップS42)。次いで保存するデータをRAMへコピーし(ステップS43)、RAMへコピーしたデータのLRCを求める(ステップS44)。次いで、バックアップデータをRAMから不揮発性メモリのバックアップ領域へ書き込み(ステップS45)、書き込みエラーがあるか否か判断する(ステップS46)。書き込みエラーが無い場合、また、ステップS41でバックアップ機能が無効の場合、書き込みデータ領域のデータをRAM上のデータで更新する(ステップS47)。このとき書き込みエラーがあるか否か判断し(ステップS48)、無ければバックアップ機能を確認し(ステップS49)、バックアップ機能が有効であればバックアップ領域を初期化し(ステップS50)、また、ステップS49でバックアップ機能が無効であれば、正常終了となる(ステップS51)。ステップS46、ステップS48で書き込みエラーがあった場合、異常終了となる(ステップS52)。
【0016】
図6はバックアップ機能におけるデータ復元方法の処理フローを説明する図である。
まず、バックアップ機能を確認し(ステップS61)、有効の場合、バックアップ領域が初期化状態か否か判断する(ステップS62)。初期化状態でない場合、不揮発性メモリのデータ書き換えが完了していないので、バックアップデータで復帰する必要がある。そこで、バックアップ領域に残っているデータにLRCエラーがあるか否か判断する(ステップS63)。LRCエラーがない場合、このバックアップデータは正当であり、これをRAMにセットし(ステップS64)、バックアップデータのLRCを算出する(ステップS65)。次いで、RAM上のバックアップデータで不揮発性メモリのデータを書き換える(ステップS66)。このとき書き込みエラーがあるか否か判断し(ステップS67)、書き込みエラーが無ければ、不揮発性メモリのデータ領域のデータが復帰したので、バックアップ領域を初期化する。ステップS61でバックアップ機能が無効のとき、ステップS62でバックアップ領域が初期化状態のとき、ステップS63でバックアップ領域にLRCエラーがあるとき、ステップS67で書き込みエラーがあるとき、いずれも処理は終了する。
【0017】
【発明の効果】
以上のように本発明によれば、不揮発性メモリ上のデータを書き換える際には、RAM上に不揮発性メモリ上のデータを一旦コピーし、RAM上のデータを更新し、チェックコードを算出した後、まとめて不揮発性メモリ上に書き込むようにしたので、データを1回の書き込み処理で更新することができ、不揮発性メモリ上のデータの更新時間は従来に比して半分になり、データ破壊の確率を低く抑えることができる。
また、同じデータを常に二重化するミラー機能、メモリ上の特定作業領域を利用するバックアップ機能を備え、これらの機能を適宜使いわけることにより、壊れる前のデータを復元することができる。
【図面の簡単な説明】
【図1】不揮発性メモリにおけるEFのデータ構造を説明する図である。
【図2】不揮発性メモリの領域を説明する図である。
【図3】ミラー機能の処理フローを説明する図である。
【図4】ミラー機能の処理フローを説明する図である。
【図5】バックアップ機能のデータ書き込み方法を説明する図である。
【図6】バックアップ機能のデータ復元方法を説明する図である。
【図7】リーダ/ライタとICカードの通信を説明する図である。
【図8】ICカードの構成を説明する図である。
【符号の説明】
1…リーダ/ライタ、2…ICカード、11…CPU、12…RAM、13…ROM、14…不揮発性メモリ、P…ポインタ。
Claims (5)
- 不揮発性メモリに格納されたデータを書き換える際、不揮発性メモリ上のデータを揮発性メモリ(RAM)上にコピーして更新した後チェックコードを算出し、RAM上の更新したデータとチェックコードをまとめて不揮発性メモリ上に書き込むことによりデータ書き換えを行い、不揮発性メモリの異なる領域に同じデータを格納してデータのバックアップを行う不揮発性メモリのデータ管理方法であって、
同じデータを常に二重化してもつミラー機能と、不揮発性メモリ上のデータを書き換える前にバックアップ領域にデータをコピーするバックアップ機能とをデータの長さに応じて使い分けてデータのバックアップを行うことを特徴とする不揮発性メモリのデータ管理方法。 - 前記ミラー機能におけるデータ修正は、異なる領域に格納された一方の領域のデータに不整合が発生したとき、他方の領域のデータをRAM上にコピーした後、該RAM上のデータを不整合が発生した領域にコピーすることにより不整合の発生したデータを修正することを特徴とする請求項1記載の不揮発性メモリのデータ管理方法。
- 前記データはディレクトリ情報であることを特徴とする請求項2記載の不揮発性メモリのデータ管理方法。
- 前記バックアップ機能において不揮発性メモリのデータを書き換える際、書き換え前のデータをバックアップ領域にコピーし、RAM上の新しいデータで不揮発性メモリのデータを更新し、更新が正常に行われたことを条件にバックアップ領域を初期化することを特徴とする請求項1記載の不揮発性メモリのデータ管理方法。
- 前記バックアップ領域が初期化されていないとき、バックアップ領域のデータにより不揮発性メモリのデータを復元することを特徴とする請求項4記載の不揮発性メモリのデータ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000135833A JP4596602B2 (ja) | 2000-05-09 | 2000-05-09 | 不揮発性メモリのデータ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000135833A JP4596602B2 (ja) | 2000-05-09 | 2000-05-09 | 不揮発性メモリのデータ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001318836A JP2001318836A (ja) | 2001-11-16 |
JP4596602B2 true JP4596602B2 (ja) | 2010-12-08 |
Family
ID=18643863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000135833A Expired - Lifetime JP4596602B2 (ja) | 2000-05-09 | 2000-05-09 | 不揮発性メモリのデータ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4596602B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100565807B1 (ko) * | 2003-06-18 | 2006-03-29 | 삼성전자주식회사 | 전자장치의 초기화방법 |
DE10346144A1 (de) * | 2003-10-01 | 2005-04-28 | Bosch Rexroth Ag | Verfahren zur Istwertspeicherung |
JP5760556B2 (ja) * | 2011-03-18 | 2015-08-12 | 富士通株式会社 | ストレージ装置、制御装置およびストレージ装置制御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07122087A (ja) * | 1993-10-25 | 1995-05-12 | Hitachi Ltd | Eepromエラーチェック方式 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2675429B2 (ja) * | 1990-10-08 | 1997-11-12 | 富士写真フイルム株式会社 | メモリカードにおけるデータ管理方式 |
JP3268130B2 (ja) * | 1994-07-20 | 2002-03-25 | 株式会社東芝 | フラッシュeepromを用いたデータ処理装置 |
JPH08190510A (ja) * | 1995-01-12 | 1996-07-23 | Hitachi Ltd | 不良部分を含む半導体メモリを搭載可能な情報処理装置 |
-
2000
- 2000-05-09 JP JP2000135833A patent/JP4596602B2/ja not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07122087A (ja) * | 1993-10-25 | 1995-05-12 | Hitachi Ltd | Eepromエラーチェック方式 |
Also Published As
Publication number | Publication date |
---|---|
JP2001318836A (ja) | 2001-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
JP3918195B2 (ja) | 不揮発性メモリへのデータ書込み | |
JP3078946B2 (ja) | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 | |
US7694094B2 (en) | Transaction method for managing the storing of persistent data in a transaction stack | |
KR970062904A (ko) | 이중면 비휘발성 메모리를 이용한 데이타베이스 회복 장치 및 그 방법 | |
US6606683B2 (en) | Information recording apparatus and control method thereof | |
CN101344868B (zh) | 数据备份和获取的方法和装置 | |
JP4701618B2 (ja) | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム | |
JP4704574B2 (ja) | リングメモリ用ポインタの安全書込方法 | |
US6483746B2 (en) | Electronic apparatus | |
JP2000090011A (ja) | メモリ書き換え方法及びコンピュ―タシステム | |
JP3003619B2 (ja) | 装置内部設定情報バックアップ装置及び方法並びに装置内部設定情報バックアップ制御プログラムを記憶した記憶媒体 | |
US5421003A (en) | Disk storage system with fault tolerant media maintenance | |
CN114756178A (zh) | 一种数据存储方法、系统及计算机可读存储介质 | |
JP4596602B2 (ja) | 不揮発性メモリのデータ管理方法 | |
JP3376331B2 (ja) | フラッシュメモリを用いる記憶方法及び記憶制御プログラムを記録した記録媒体 | |
US7849279B2 (en) | Method for the secure updating data areas in non volatile memory, device to perform such a method | |
CN114356653A (zh) | 一种工控防火墙掉电保护方法及装置 | |
JPH06180674A (ja) | データ記憶装置 | |
CN115698975A (zh) | 设备、执行文件事务的方法和执行访问操作的方法 | |
JPH0594356A (ja) | メモリ上テーブルデータ障害時復旧方式 | |
JPH04307643A (ja) | 高信頼性ファイルシステム | |
JP2744247B2 (ja) | データ保全処理方式 | |
JPH08171621A (ja) | Icカード | |
CN117075804A (zh) | 数据预置方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100709 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100830 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100917 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100921 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4596602 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 3 |
|
EXPY | Cancellation because of completion of term |