JP2006185261A - 不揮発性メモリ - Google Patents

不揮発性メモリ Download PDF

Info

Publication number
JP2006185261A
JP2006185261A JP2004379233A JP2004379233A JP2006185261A JP 2006185261 A JP2006185261 A JP 2006185261A JP 2004379233 A JP2004379233 A JP 2004379233A JP 2004379233 A JP2004379233 A JP 2004379233A JP 2006185261 A JP2006185261 A JP 2006185261A
Authority
JP
Japan
Prior art keywords
data
stored
block
blocks
area
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.)
Granted
Application number
JP2004379233A
Other languages
English (en)
Other versions
JP4691355B2 (ja
Inventor
Tsutomu Baba
勉 馬場
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.)
Nidec Instruments Corp
Original Assignee
Nidec Sankyo 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 Nidec Sankyo Corp filed Critical Nidec Sankyo Corp
Priority to JP2004379233A priority Critical patent/JP4691355B2/ja
Priority to US11/321,360 priority patent/US7353348B2/en
Publication of JP2006185261A publication Critical patent/JP2006185261A/ja
Application granted granted Critical
Publication of JP4691355B2 publication Critical patent/JP4691355B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】 データを複数のブロックに分割して格納する場合に、当該ブロック間に分割して格納されたデータの相関関係を判断できる手段を備えた不揮発性メモリを提供すること。
【解決手段】 新鍵データXの書き込みや消去を行なう単位となるブロックB1、B2・・・・Bnが複数設けられ、各ブロックB1、B2・・・・Bnに新鍵データXを格納する不揮発性メモリ5において、ブロックB1、B2・・・・Bnには、新鍵データX(X1、X2)が書き込まれて格納される書込みデータ領域B1a、B2aと、各ブロックB1、B2の書込みデータ領域B1a、B2aに書き込まれた鍵データX1、X2間の相関関係を示す相関符号C1、C2を格納する相関符号領域B1b、B2bと、各ブロックB1、B2に格納されている新鍵データX1、X2の正当性を検査し、検査で求めた検査データR1、R2を格納する検査データ領域B1c、B2cとを備えている。
【選択図】 図1

Description

本発明は、データの書き込みや消去を行なう単位となるブロックが複数設けられ、各ブロックにデータを格納する不揮発性メモリに関する。
不揮発性メモリは、電力の供給が絶たれた場合であっても格納されているデータが保持されているものであり、いわゆる内容保持型メモリと呼ばれている。不揮発性メモリは、一般的に、データの書き込みや消去を行なう単位となるブロックが複数設けられており、各ブロックは、主としてデータを格納する書込みデータ領域と、上記書込みデータ領域に書き込まれたデータの正当性を検査し、検査で求めた検査データを格納する検査データ領域とから構成されている。
また、例えば不揮発性メモリの中でもEEPROMの場合、1ブロックは16バイトの容量で構成されているものが多く、そのうち、検査データ領域に1〜2バイト、その残りを書込みデータ領域として割り当てられている。また、各バイトにはその場所を特定するアドレスが付記されている。
さらに、検査データ領域は、具体的にはBCC(Block Check Character)やフラグが設けられ、書込みデータ領域に格納されたデータが正しく格納されたかどうかを、すなわち格納されたデータの正当性を判断するようになっている。
このような不揮発性メモリにおいて、例えば、特許文献1に示すフラッシュメモリには、各ブロック内において、更新処理の各ステップが終了するごとに、終了したことを示す履歴をフラグ領域に記録させるようにしている。このフラグ領域は、例えば、「書き換え開始フラグ」、「書き換え終了フラグ」、「ベリファイエラーフラグ」、「ベリファイ終了フラグ」、「消去終了フラグ」等である。これら各フラグを設け、プログラム起動時にはフラグ領域を確認し、所定の位置で、更新処理が正常に行なわれたかどうかを確認するとともに、どの段階の処理で中断したのかを検出し、各ブロックの上書き処理におけるエラーを防止するようになっている。そのため、フラグ領域に記録された履歴から、更新処理のエラーを複数の個所でチェックできるため、プログラムの誤動作が防止されている。
特開2000−105694号公報
しかしながら、例えば、カードリーダのような金融端末で取り扱われるデータは重要なデータであり、ホストコンピュータから送信されるデータの中には、そのセキュリティ性を高めるために、暗号処理がなされる場合があり、暗号処理で使用される鍵データも不揮発性メモリに格納されるケースがある。近年、よりセキュリティ性を高めるため、鍵データのデータ長も長くなってきている。このため、容量が増加されたデータは、上記書込みデータ領域の容量より大きくなる場合があり、1つのブロックだけでは格納しきれない状態となっている。そのため、上記データは、複数のブロックに分割されて格納されるようになっている。
上記データが複数のブロックに分割されて格納される場合、そのデータを更新中に、例えば停電等のトラブルが発生し、更新が分断された場合には、全てのブロックが更新されていないというおそれがある。詳しくは、
1)各ブロックにおいて、データが書き換えられている途中で更新が分断される場合
2)ブロックとブロックとの間で更新が分断される場合、すなわち、一方のブロックには新データが
更新されたが、他方(残り)のブロックには旧データのままとなった場合
があり、どちらの場合であっても更新処理のエラーとなる。
上述した特許文献1に示すフラッシュメモリでは、上述した1)各ブロックにおいて、データが書き換えられている途中で更新が分断される場合は、エラーであることを検出することができるようになっている。
しかしながら、1つのブロック内で、更新処理の各ステップが終了するごとに、それぞれのステップが終了したことを示す履歴をフラグ領域に記録させているだけであるので、各ブロックに格納しているデータが新データであるか、旧データであるか検知することはできないという問題がある。
換言すれば、データを複数のブロックに分割して格納する場合において、上述した2)更新済みのブロックと、次に更新されるブロックとの谷間で更新が分断される場合については検出することができないという問題は残っている。
すなわち、更新処理中に停電等が発生した場合、新データが更新されたブロックと、旧データが格納されたままのブロックとが混在しているというおそれがある。
さらに、特許文献1に示すフラッシュメモリを備えたカードリーダでは、上述したとおり、新データと旧データとが混在した複数のブロックを検知することができないため、そのままカードリーダが起動してしまう。そのため、カードリーダにカードが挿入され、実際に動作してはじめて異常に気づくことなる。このため、カードリーダを含めシステム全体を停止しなければならず、ユーザおよびカード保有者に迷惑をかけるという問題が生じる。
そこで本発明では、データを複数のブロックに分割して格納する場合に、当該ブロック間に分割して格納されたデータの相関関係を判断できる手段を備えた不揮発性メモリを提供することを目的とする。
本発明は、データの書き込みや消去を行なう単位となるブロックが複数設けられ、各ブロックに前記データを格納する不揮発性メモリにおいて、前記ブロックには、データが書き込まれて格納される書込みデータ領域と、各ブロックの書込みデータ領域に書き込まれたデータ間の相関関係を示す相関符号を格納する相関符号領域と、前記各ブロックに格納されているデータの正当性を検査し、検査で求めた検査データを格納する検査データ領域とを備えていることを特徴とする。
この発明によれば、上記不揮発性メモリは、上記各ブロックに格納されているデータの正当性を検査し、この検査で求めた検査データを格納する検査データ領域を備えているので、例えば、停電等によって前記データの更新が分断された場合であっても、上記検査データ領域に格納された検査データを検査することによって、各ブロック内の前記書込みデータ領域に書き込まれたデータが、正しく更新されているかを確実に検出することができる。
さらに、上記不揮発性メモリは、各ブロックの書込みデータ領域に書き込まれたデータ間の相関関係を示す相関符号を格納する相関符号領域を備えているので、例えば、各ブロックにおける前記書込みデータ領域よりも大きな容量をもつデータを、複数のブロックの書込みデータ領域に分割して格納する際、停電等によって前記データの更新が分断された場合であっても、複数のブロック間の相関関係を検知することができる。すなわち、複数のブロックに分割して格納されたデータが、例えば、先のブロックに格納された新データと、分断により更新されていない旧データが後のブロックに格納されたままとなった場合でも、上記相関符号を検査することにより、複数のブロック間の相関関係を検知することができる。そのため、上記相関符号を検査するので、前記格納されたデータが全て更新されて新データとなっているかを判断することができ、上述したような新データと旧データが混在したままで格納される場合でも確実に検出することができる。
また、本発明は、前記相関符号領域は、カウンタで構成してなることが好ましい。これにより、相関符号を求めるのに複雑なプログラムを必要とせず、予め決められた数字を増加または減少させて相関符号を計算するという処理だけでよいので、簡単にかつ速く処理することができる。
さらに、本発明は、前記不揮発性メモリがカードリーダに備えられていることが好ましい。
この発明によれば、上記カードリーダが、上記検査データ領域と上記相関符号領域を有する不揮発性メモリを備えているので、上記検査データ領域に格納された検査データを検査することで、各ブロック内の上記書込みデータ領域に書き込まれたデータが、正しく更新されているかを確実に検出することができる。
さらに、上記相関符号領域が備えられているので、例えば、各ブロックにおける前記書込みデータ領域よりも大きな容量をもつデータを、複数のブロックの書込みデータ領域に分割して格納する際、停電等によって前記データの更新が分断された場合であっても、上記相関符号を検査して複数のブロック間の相関関係を検知することができる。すなわち、複数のブロックに分割して格納されたデータが、例えば、先のブロックに格納された新データと、分断により更新されていない旧データが後のブロックに格納されたままとなった場合でも、上記カードリーダの始動時等で上記相関符号を検査することにより、複数のブロック間の相関関係を検知することができる。これにより、カードリーダ使用者が実際にカードを挿入する前に、カードリーダの異常を検知することができるので、カードリーダを含めシステム全体を停止することもなく、カードリーダ使用者等に迷惑をかけることもない。
本発明は、データの書き込みや消去を行なう単位となるブロックが複数設けられ、各ブロックに前記データを格納する不揮発性メモリにおいて、前記ブロックには、データが書き込まれて格納される書込みデータ領域と、各ブロックの書込みデータ領域に書き込まれたデータ間の相関関係を示す相関符号を格納する相関符号領域と、前記各ブロックに格納されているデータの正当性を検査し、検査で求めた検査データを格納する検査データ領域とを備えていることを特徴とする。
この発明によれば、上記不揮発性メモリは、上記各ブロックに格納されているデータの正当性を検査し、この検査で求めた検査データを格納する検査データ領域を備えているので、例えば、停電等によって前記データの更新が分断された場合であっても、上記検査データ領域に格納された検査データを検査することによって、各ブロック内の前記書込みデータ領域に書き込まれたデータが、正しく更新されているかを確実に検出することができる。
さらに、上記不揮発性メモリは、各ブロックの書込みデータ領域に書き込まれたデータ間の相関関係を示す相関符号を格納する相関符号領域を備えているので、例えば、各ブロックにおける前記書込みデータ領域よりも大きな容量をもつデータを、複数のブロックの書込みデータ領域に分割して格納する際、停電等によって前記データの更新が分断された場合であっても、複数のブロック間の相関関係を検知することができる。すなわち、複数のブロックに分割して格納されたデータが、例えば、先のブロックに格納された新データと、分断により更新されていない旧データが後のブロックに格納されたままとなった場合でも、上記相関符号を検査することにより、複数のブロック間の相関関係を検知することができる。そのため、上記相関符号を検査するので、前記格納されたデータが全て更新されて新データとなっているかを判断することができ、上述したような新データと旧データが混在したままで格納される場合でも確実に検出することができる。
(不揮発性メモリの構成)
図1には、不揮発性メモリ5の構成図を示す。
不揮発性メモリ5は、本実施の形態では、EEPROM(Electrically Erasable Programmable Read Only Memory)であり、このEEPROM5は、消去可能な1つの単位であるブロックが複数設けられており、例えば、ブロックB1、B2・・・Bnからなる、所定のn個のブロックで構成されている。
次に、各ブロックの構成について説明する。
各ブロックB1、B2・・・Bnには、順番に、データが書き込まれて格納される書込みデータ領域B1a、B2a・・・・Bnaと、各ブロックの書込みデータ領域B1a、B2a・・・・Bnaに書き込まれたデータ間の相関関係を示す符号(以下、「相関符号」という)を格納する相関符号領域B1b、B2b・・・・Bnbと、前記書込みデータ領域B1a、B2a・・・・Bnaに書き込まれたデータ及び相関符号の正当性を検査し、検査で求めた検査データを格納する検査データ領域B1c、B2c・・・・Bncとが備えられている。
また、本実施例の不揮発性メモリ5において、1つのブロックは16バイトの容量で構成され、相関符号領域B1b、B2b・・・・Bnbに1バイト、検査データ領域B1c、B2c・・・・Bncに2バイトを割り当て、残りの容量を書込みデータ領域100に割り当てられている。
なお、各領域の位置、順番、またその容量は限定されるものではなく、適宜必要により設計上で変更できるようになっている。また、各バイトにはその場所を特定するアドレスが付記されている。
(不揮発性メモリに形成された各領域の機能)
書込みデータ領域B1a、B2a・・・・Bnaは、ホストコンピュータまたはCPU等の制御装置からの命令にしたがいデータが格納されるようになっている。このデータとしては、例えば、プログラムを実行するのに必要なデータや、ホストコンピュータから送信されるデータを暗号化/復号化の処理を行うための鍵データ等がある。
つぎに、相関符号領域B1b、B2b・・・・Bnbには、書込みデータ領域B1a、B2a・・・・Bnaにデータが書き込まれた際、各ブロック間に格納されているデータの相関符号Cが書き込まれるようになっている。なお、相関符号Cは、符号に限定されることなく、数字を用いてもよい。
具体的には、同一のデータが、複数のブロックに分割されて格納される場合には、格納されたブロックの相関符号領域B1b、B2b・・・・Bnbには、相関関係があるとして、例えば、同一の符号Rが格納されるようになっている。
本実施の形態では、この相関符号領域B1b、B2b・・・・Bnbは、カウンタが構成されており、このカウンタには、相関符号Rとして0〜255までの数字がCPU4で求められて格納されるようになっている。なお、相関符号Rが255とカウントされた後、次のカウントアップではリセットされ、相関符号Rは0に戻るようになっている。
また、各ブロックB1、B2・・・Bnの最後部の領域には、検査データ領域B1c、B2c・・・・Bncを割り当てており、この検査データ領域B1c、B2c・・・・Bncは、各ブロックの書込みデータ領域B1a、B2a・・・・Bnaに書き込まれた(更新された)データ及び相関符号の正当性を検査し、検査で求めた検査データを格納するようにしている。すなわち、書込みデータ領域B1a、B2a・・・・Bnaに格納されたデータ及び相関符号が正しく格納されたかどうかを判断するようになっている。
この検査データとしては、各ブロックについてのBCC(Block Check Character)を求めるようにしており、本実施の形態では、BCCとして既知の巡回冗長検査(CRC:Cyclic Redundancy Check)を利用し、検査データとしてのCRC値Rが書き込まれるようになっている。
(カードリーダの構成)
図2は、上述した不揮発性メモリを備えたカードリーダのシステムを示す構成図である。
カードリーダ1は、このカードリーダ1を構成する各部を制御するCPU4と、CPU4内に備えられ、カードリーダ1が実行するプログラム等を格納するROM4aと、CPU4が実行するプログラムに用いるデータを一時的に格納するRAM6と、ホストコンピュータ2から送信されるデータを格納する不揮発性メモリ5と、ホストコンピュータ2から送信されるデータを受信したりホストコンピュータ2へデータを送信したりする通信コントローラ8とにより構成されている。
また、本実施の形態では、ROM4aには、カードリーダ1の出荷時のデータ、すなわち、一般的にデフォルト値と呼ばれるデータを格納しており、新たにデータを更新する際エラーが発生した場合、このデフォルト値を用いてカードリーダ1を復旧するようにしている。
カードリーダ1は、ホストコンピュータ2に接続され、ホストコンピュータ2と、インターフェイス3を介してデータの送受信を行なうようになっている。
不揮発性メモリ5は、内容保持型メモリであり、電力の供給が絶たれた場合であっても、格納されているデータが保持されている。本実施の形態においては、EEPROM(Electrically Erasable Programmable Read Only Memory)を用いている。
そのため、この不揮発性メモリ5には、ホストコンピュータ2との通信において必要なデータ等が、ホストコンピュータ2から送信されて各ブロックB1、B2・・・・Bnにそれぞれ格納されるようになっている。
RAM6は、電力の供給が一旦絶たれた場合には書き込まれているデータが全て消去される揮発性メモリであり、このRAM6にはCPU4が実行するプログラムに用いるデータを、一時的に格納するようになっている。
本実施の形態では、RAM6には、不揮発性メモリとしてのEEPROM5のブロックB1、B2・・・Bnに対応して新データ格納領域61と旧データ格納領域62とがそれぞれ形成されている。
新データ格納領域61は、複数のブロックb11、b12・・・・・b1nが形成されており、ホストコンピュータ2から送信された新データが書き込まれるようになっている。
一方、旧データ格納領域62は、複数のブロックb21、b22・・・・・b2nが形成されており、不揮発性メモリ5内にすでに格納されていた旧データが書き込まれるようになっている。
なお、RAM6の新データ格納領域61及び旧データ格納領域62に書き込まれた全データは、電源が絶たれることによって、全て消去されるようになっている。
(データを書き込み格納する手順)
図3は、ホストコンピュータ2から送信されるデータをカードリーダ1内の不揮発性メモリ5に上書きされて格納することを示すフローチャートである。
本実施の形態では、この不揮発性メモリ5に格納されるデータは、例えば、暗号化/復号化の処理を行うのに使用する鍵データである。
この鍵データは、ホストコンピュータ2とカードリーダ1の間で送受信するデータを暗号化/復号化の処理を行うためのものであり、送受信されるデータのセキュリティ性を高めるために用いられている。
具体的には、カードリーダ1は、この鍵データを、ホストコンピュータ2から受信し、不揮発性メモリ5内に格納しておくことで、その後にホストコンピュータ2から送信されてくる所定のデータを復号化することができる。
また、本実施の形態では、不揮発性メモリ5の各ブロックB1、B2・・・Bnのうち、ブロックB1とブロックB2が大容量データ格納ブロックとなっており、ブロックB1だけではデータ全てを格納できずに、連続して次のブロックB2に分割して格納するようになっている。
さらに、例えば、ホストコンピュータ2から送信される鍵データは16バイトのデータであり、この16バイトの鍵データは、ブロックB1の書込みデータ領域B1aに8バイトの容量が格納され、残りの8バイトの容量がブロックB2の書込みデータ領域B2aに格納されるようになっている。
なお、8バイト、8バイトと同数に分割することに限定されるものではなく、ブロックB1の書込みデータ領域B1aに13バイトのデータを書き込み、残り3バイトをブロックB2の書込みデータ領域B2aに書き込むようにしてもよい。
また、本実施の形態では、2つのブロックの書込みデータ領域にまたがって書き込み格納する鍵データを新鍵データXと表わし、新鍵データXのうち、一方のブロックの書込みデータ領域に格納される8バイト分のデータを新鍵データX1として表わしている。そして、他方のブロックの書込みデータ領域に格納される残りの8バイト分のデータを新鍵データX2として表している。
同様に、2つのブロックの書込みデータ領域にすでに格納されている鍵データを旧鍵データYとして表わし、旧鍵データYのうち、一方のブロックに格納されている8バイト分のデータを旧鍵データY1として表わしている。そして、他方のブロックの書込みデータ領域に格納されている残りの8バイト分のデータを旧鍵データY2として表わしている。
図3に示すフローチャートに戻り、まず、ホストコンピュータ2から16バイトの新鍵データXが、インターフェース3及び通信コントローラ8を介して、カードリーダ1内のCPU4に送信される。
CPU4は、ROM4aに格納されているプログラムを実行し、16バイトの新鍵データXは、RAM6に形成されている新データ格納領域61の2つのブロックb11、b12にそれぞれ分割されて、書き込まれて一時的に格納される(ステップS50)。
本実施の形態では、16バイトの新鍵データXは、新鍵データXの8バイト分の新鍵データX1がブロックb11の書込みデータ領域b11aに格納され、残りの8バイト分の新鍵データX2はブロックb12の書込みデータ領域b12aに一時的に格納される。
CPU4は、不揮発性メモリ5のブロックB1に格納されている旧鍵データY1の全データを、RAM6の旧データ格納領域62のブロックb21に一時的に格納する(ステップS51)。
上述したブロック62内の書込みデータ領域b21aに書き込まれていた旧鍵データY1に、新データ格納領域61のブロック61の書込みデータ領域b11aに書き込まれている新鍵データX1を上書きして一時的に格納する(ステップS52)。
同様に、ブロック62内の相関符号領域b21bに格納された相関符号c1に、現在のc1に「1」を加算した数字を上書きして一時的に格納する。(ステップS53)。
続いて、ステップS52およびステップS53で更新されたb21のブロックデータのうち、検査データ領域を除く全データをもとに、CPU4が、新しいCRC値R1を算出する。算出されたCRC値R1を、ブロックb21に形成されている検査データ領域b21bに格納されているCRC値r1に上書きする。すなわち、検査データ領域b21bには、算出された新しいCRC値R1が一時的に格納される(ステップS54)。
更新され一時的に格納されたブロックb21のブロックデータは、CPU4を介して不揮発性メモリ5のブロックB1に上書きされて格納される(ステップS55)。
次に、ブロックB2についても同様に行なわれる。
CPU4は、不揮発性メモリ5のブロックB2に格納されている旧鍵データY2の全データを、RAM6の旧データ格納領域62のブロックb22に一時的に格納する(ステップS510)。
上述したブロック62内の書込みデータ領域b22aに書き込まれていた旧鍵データY2に、新データ格納領域61のブロック61の書込みデータ領域b12aに書き込まれている新鍵データX2を上書きして一時的に格納する(ステップS520)。
ブロック62内の相関符号領域b22bに格納された相関符号c2に、現在のc2に「1」を加算した数字を上書きして一時的に格納する(ステップS530)。
ブロックB1とブロックB2が大容量データ格納ブロックとなっているので、ブロックb22の相関符号C2は、上述したブロックb12の相関符号C1と同じ数字(符号)となっている。
続いて、ステップS520およびステップS530で更新されたb21のブロックデータのうち、検査データ領域を除く全データをもとに、CPU4が、新しいCRC値R2を算出する。算出されたCRC値R2を、ブロックb22に形成されている検査データ領域b22bに格納されているCRC値r2に上書きする。すなわち、検査データ領域b22bには、算出された新しいCRC値R2が一時的に格納される(ステップS540)。
更新され一時的に格納された新鍵データX2、相関符号C2及びCRC値R2は、CPU4を介して不揮発性メモリ5のブロックB2に送信され、書込みデータ領域B2a、相関符号領域B2b、検査データ領域B2cにそれぞれ書き込まれて格納される(ステップS550)。
次に、図4は、カードリーダ1の暗号化/復号化実行時におけるフローチャートである。
まず、図3に示すフローチャートのステップS54で算出されたブロックB1のCRC値R1が、CPU4によって読み出され、そのCRC値R1が正常であるかを検査する(ステップS57)。なお、検査方法は、公知の技術であるので、ここでの説明は省略する。
検査結果において、CRC値R1が正常である(Yes)と判断されると、次のステップに進む。
もし、CRC値R1が異常である(No)と判断されると、本実施の形態では、ステップS64に進み、出荷時のデフォルト鍵データDがブロックB1の書込みデータ領域B1a、ブロックB2の書込みデータ領域B2aにそれぞれ上書きされる。
同様に、ステップS540によって算出されたブロックB2のCRC値R2をCPU4によって読み出し、その値が正常であるかを検査する(ステップS58)。
ステップS58において、CRC値R2が正常である(Yes)と判断されると、次のステップに進む。もし、CRC値R2が異常である(No)と判断されると、本実施の形態では、ステップS64に進み、出荷時のデフォルト鍵データDがブロックB1の書込みデータ領域B1a、ブロックB2の書込みデータ領域B2aに上書きされる。
ブロックB1のCRC値R1及びブロックB2のCRC値R2が正常と判断されると、次に、ステップS53で格納されたブロックB1の相関符号C1をCPU4によって読み出す(ステップS59)。
同様にして、ステップS530で格納されたブロックB2の相関符号C2をCPU4によって読み出す(ステップS60)。
読み出された相関符号C1、C2は、その相関関係が判断される。
本実施の形態では、ブロックB1とブロックB2とは大容量収納ブロックとなっているので、ブロックB1bの相関符号C2は、上述したブロックB2bの相関符号C1と同じ数値で格納されている。したがって、ここでは、相関符号C1、C2が同じ値を示しているかを検査する(ステップS61)。
ステップS61において、相関値C1=C2である(Yes)と判断されると、次のステップに進む。
もし、相関値C1≠C2の場合には、異常である(No)と判断され、本実施の形態では、ステップS64に進む。
上述したように、ブロックB1に格納されたCRC値R1及び相関符号C1と、ブロックB2に格納されたCRC値R2及び相関符号C2が正常であると判断されると、更新された新鍵データXは、鍵データとしてCPU4を介してRAM6に一時的に格納される(ステップS62)。
格納された鍵データを用いて、ホストコンピュータ2とカードリーダ1との間で送受信される所定のデータが暗号化/復号化の処理が実施される(ステップS63)。
次に、ブロックB1及びB2に格納された新鍵データXにエラーが発生した場合を説明する。
ステップS57、S58、S61において、格納された鍵データにエラーが発生しており、異常である(No)と判断されると、これに伴い、カードリーダ1が通常に行なわれている業務に支障をきたすことになる。
そこで、予めホストコンピュータ2とカードリーダ1との間でエラー状態となった場合に使用する鍵データを決めている。
本実施の形態では、エラー状態となったときでも、復旧作業により新鍵データXが格納されるまでの間、予めCPU4内のROM4aに格納されていたデフォルト値としてのデフォルト鍵データDを使用するようにしている。
具体的には、エラー状態が発生した場合、CPU4は、ROM4aに格納されているデフォルト鍵データD(D1、D2)が読み出され、RAM6の新データ格納領域61に形成されているブロックb1、b2にそれぞれ一時的に格納される(ステップS64)。
すなわち、ブロックb1の書込みデータ領域b1aには、デフォルト鍵データD1のうちデフォルト鍵データD1aが格納され、ブロックb2の書込みデータ領域b2aにはデフォルト鍵データD2aが格納される。
次に、ブロックb1の相関符号領域b1bに格納されている相関符号C1dと、ブロックb2の相関符号領域b2bに格納されている相関符号C2dを同一値とする(ステップS65)。
デフォルト鍵データD及び相関符号Cが更新されたブロックb1のデータのうち、検査データ領域を除く全データからブロックb1のCRC値R1dを計算し、計算したCRC値R1dを検査データ領域B1cに格納する。
同様に、デフォルト鍵データD及び相関符号Cが更新されたブロックb2のデータのうち、検査データ領域を除く全データからブロックb2のCRC値R2dを計算する。計算したCRC値R2dを検査データ領域b2cに一時的に格納する。(ステップS66)。
これにより、カードリーダ1は、復旧したことになる。
また、ホストコンピュータ2には、新鍵データXの書き込みに失敗したことを通知する(ステップS67)。
上述のことより、本実施の形態では、「1.各ブロック内のデータが書き換えられている途中で更新が分断される場合」、「2.更新済みのブロックと、次に更新されるブロックとの谷間で更新が分断される場合」のどちらの場合も検知することができるようになっている。
すなわち、上記ステップS57において、ブロックB1の検査データ領域B1cに格納されているCRC値R1を判断することで、新鍵データX1は正当であることを検知することができる。
同様に、ステップS58において、ブロックB2の検査データ領域B2cに格納されているCRC値R2を判断することで、新鍵データX2は正当であることを検知することができる。
これらのことにより、ブロックB1及びブロックB2にそれぞれ確実に格納されたことを検知することができる。
また、上記ステップS61において、ブロックB1の相関符号領域B1bに格納されている相関符号C1と、ブロックB2の相関符号領域B2bに格納されている相関符号C2とが同じ値であることが示される。これにより、ブロックB1の書込みデータ領域B1aに格納されたデータとブロックB2の書込みデータ領域B2aに格納されたデータとは関係しており一連のデータであることを検知することができる。
(本実施例の効果)
不揮発性メモリ5は、新鍵データXの書き込みや消去を行なう単位となるブロックB1、B2・・・・Bnが複数設けられ、各ブロックB1、B2・・・・Bnに新鍵データXを格納しているが、ブロックB1、B2・・・・Bnには、例えば、新鍵データX(X1、X2)が書き込まれて格納される書込みデータ領域B1a、B2aと、各ブロックB1、B2の書込みデータ領域B1a、B2aに書き込まれた鍵データX1、X2間の相関関係を示す相関符号C1、C2を格納する相関符号領域B1b、B2bと、各ブロックB1、B2に格納されている新鍵データX1、X2の正当性を検査し、検査で求めた検査データR1、R2を格納する検査データ領域B1c、B2cとを備えている。
これにより、不揮発性メモリ5は、各ブロックB1、B2に格納されている新鍵データX1、X2の正当性を検査し、この検査で求めた検査データR1、R2を格納する検査データ領域B1c、B2cを備えているので、例えば、停電等によって新鍵データX1、X2の更新が分断された場合であっても、検査データ領域B1c、B2cに格納された検査データR1、R2を検査することによって、ブロックB1、B2内の書込みデータ領域B1a、B2aに書き込まれた新鍵データX1、X2が、正しく更新されているかを確実に検出することができる。
さらに、不揮発性メモリ5は、例えば、ブロックB1、B2の書込みデータ領域B1a、B2aに書き込まれた新鍵データX1、X2間の相関関係を示す相関符号C1、C2を格納する相関符号領域B1b、B2bを備えているので、例えば、ブロックB1、B2における書込みデータ領域B1a、B2aよりも大きな容量をもつ新鍵データX(X1、X2)を、複数のブロックB1、B2の書込みデータ領域B1a、B2aに分割して格納する際、停電等によって新鍵データX(X1、X2)の更新が分断された場合であっても、複数のブロックB1、B2間の相関関係を検知することができる。すなわち、複数のブロックB1、B2に分割して格納された新鍵データX(X1、X2)が、例えば、先のブロックB1に格納された新鍵データX1と、分断により更新されていない旧鍵データY2が後のブロックB2に格納されたままとなった場合でも、相関符号Cを検査することにより、複数のブロックB1、B2間の相関関係を検知することができる。そのため、相関符号Cを検査するので、格納された鍵データX(Y)が全て更新されて新鍵データX(X1、X2)となっているかを判断することができ、上述したような新鍵データXと旧鍵データYが混在したままで格納される場合でも確実に検出することができる。
また、相関符号領域B1b、B2bは、カウンタで構成しているので、相関符号C1、C2を求めるのに複雑なプログラムを必要とせず、予め決められた数字を増加または減少させて相関符号C1、C2を計算するという処理だけでよいので、簡単にかつ速く処理することができる。なお、本実施の形態では、「1」を増加した数字を用いている。
さらに、不揮発性メモリ5がカードリーダ1に備えられており、相関符号領域B1b、B2bと検査データ領域B1c、B2cとを備えているので、検査データ領域B1c、B2cに格納された検査データとしてのCRC値R1、R2を検査することで、ブロックB1、B2内の書込みデータ領域B1a、B2aに書き込まれた新鍵データX1、X2が、正しく更新されているかを確実に検出することができる。
さらに、不揮発性メモリ5には相関符号領域B1b、B2bが備えられているので、例えば、ブロックB1、B2における書込みデータ領域B1a、B2aよりも大きな容量をもつ鍵データを、2つのブロックB1、B2の書込みデータ領域B1a、B2aに分割して格納する際、停電等によって新鍵データX1、X2の更新が分断された場合であっても、相関符号C1、C2を検査してブロックB1、B2間の相関関係を検知することができる。すなわち、ブロックB1、B2に分割して格納された新鍵データX1,X2が、例えば、先のブロックB1に格納された新鍵データX1と、分断により更新されていない旧鍵データY2が後のブロックB2に格納されたままとなった場合でも、カードリーダ1の始動時等で相関符号C1、C2を検査することにより、ブロックB1、B2間の相関関係を検知することができる。これにより、カードリーダ使用者が実際にカードを挿入する前に、カードリーダ1の異常を検知することができるので、カードリーダを含めシステム全体を停止することもなく、カードリーダ使用者等に迷惑をかけることもない。
さらに、カードリーダ1において、不揮発性メモリ5内の相関符号領域B1b、B2b・・・・Bnbにおいて、ブロックB1、B2・・・・Bnの中で関連するブロック間の相関符号Cが一致しなかった場合、すなわち、新鍵データXの更新が分断され、一部の情報のみしか更新されなかったとCPU4から判断された場合には、出荷時にROM4aに格納したデフォルト鍵データDを書込みデータ領域B1a、B2a・・・・Bnaに置換することによって、エラーのある鍵データX(Y)を使用可能なデフォルト鍵データDに書き換えてカードリーダ1を簡単に短時間で復旧させることができる。そのため、エラー状態が回避され、カードリーダ1の通常に行なわれる業務を妨げることなく作業を続けることができる。
(他の実施例)
本実施の形態では、データとして鍵データX、Yを用いたがこれに限定されものではなく、さらには鍵データXの容量を16バイトとして説明したが、これより大きい容量であっても、小さい容量であってもよい。
また、関連するブロックB1、B2の書込みデータ領域B1a、B2aに、均等に8バイトづつ格納したが、更に複数のブロックに細分化して格納してもよいし、不均等の容量で格納してもよい。
また、各ブロックB1、B2・・・・Bnの鍵データXの正当性を判断するための検査データとしてCRC値Rを使用したが、これに限らず、チェックサム等の検査方法を使用してもよい。
また、不揮発性メモリ5としてEEPROMを用いたが、他の書き換え可能な不揮発性メモリであるフラッシュメモリ、およびFRAM(強誘電性メモリ)、バックアップ付RAM等を用いてもよい。
また、相関符号領域B1b、B2b・・・・Bnbは、カウンタで構成しているが、これに限定されることはなく、フラグ等を用いて相関関係を示す符号を作成してもよい。
また、相関関係を示す符号は、数字以外に文字で示してもよい。さらに、本実施の形態では、相関関係を示す相関符号Cは、「1」ずつ増加したが、増加量は限定されるものではない。
また、相関符号領域B1b、B2b・・・・Bnbは、更新値の数を予め書き込んでおき、データ書き込み領域100が更新されるたびに減算してもよい。
また、カードリーダ1内において、不揮発性メモリ5にバックアップ用のデータ格納領域を設けて、旧鍵データYのデータから新鍵データXに上書きして格納する作業がなされる前に、旧鍵データYを上記バックアップ用のデータ格納領域に保存してもよい。この場合、新鍵データXの更新に失敗した場合には、デフォルト鍵データDを用いる代わりに、旧鍵データYを用いて復旧作業を行ってもよい。
さらに、上述した不揮発性メモリは、カードリーダに用いることに限定されるものではなく、これ以外のシステムに用いてもよい。また、本実施の形態では、カードリーダ1とホストコンピュータ2との間で、離れた場所同士でデータを送受信する場合を説明したが、例えば、カードリーダ内またはホストコンピュータ内において適用してもよい。例えば、カードリーダ内において、データの運用履歴情報を不揮発性メモリの一連のデータとして記録するような場合に適用できる。
本発明を適用したEEPROMを示す構成図である。 本発明を適用したEEPROMを備えたカードリーダのシステムを示す構成図である。 本発明を適用したEEPROMのデータを上書きする動作を示すフローチャートである。 本発明を適用したEEPROMを備えたカードリーダのシステムの動作を示すフローチャートである。
符号の説明
1 カードリーダ
5 EEPROM(不揮発性メモリ)
B1、B2・・・・Bn ブロック
B1a、B2a・・・・Bna 書込みデータ領域
B1b、B2b・・・・Bnb 相関符号領域
B1c、B2c・・・・Bnc 検査データ領域
X(X1、X2) 新鍵データ(データ)

Claims (3)

  1. データの書き込みや消去を行なう単位となるブロックが複数設けられ、各ブロックに前記データを格納する不揮発性メモリにおいて、
    前記ブロックには、データが書き込まれて格納される書込みデータ領域と、各ブロックの書込みデータ領域に書き込まれたデータ間の相関関係を示す相関符号を格納する相関符号領域と、前記各ブロックに格納されているデータの正当性を検査し、検査で求めた検査データを格納する検査データ領域とを備えていることを特徴とする不揮発性メモリ。
  2. 前記相関符号領域は、カウンタで構成してなることを特徴とする請求項1記載の不揮発性メモリ。
  3. 前記不揮発性メモリは、カードリーダに備えられていることを特徴とする請求項1または2記載の不揮発性メモリ。

JP2004379233A 2004-12-28 2004-12-28 不揮発性メモリ Expired - Fee Related JP4691355B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004379233A JP4691355B2 (ja) 2004-12-28 2004-12-28 不揮発性メモリ
US11/321,360 US7353348B2 (en) 2004-12-28 2005-12-28 Nonvolatile memory and card reader provided with the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004379233A JP4691355B2 (ja) 2004-12-28 2004-12-28 不揮発性メモリ

Publications (2)

Publication Number Publication Date
JP2006185261A true JP2006185261A (ja) 2006-07-13
JP4691355B2 JP4691355B2 (ja) 2011-06-01

Family

ID=36613113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004379233A Expired - Fee Related JP4691355B2 (ja) 2004-12-28 2004-12-28 不揮発性メモリ

Country Status (2)

Country Link
US (1) US7353348B2 (ja)
JP (1) JP4691355B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5491411B2 (ja) * 2008-11-26 2014-05-14 パナソニック株式会社 情報更新装置とその集積回路、情報更新方法、および、記録装置とその集積回路

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765426B2 (en) 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
KR102154187B1 (ko) 2014-08-07 2020-09-09 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635776A (ja) * 1992-07-16 1994-02-10 Dainippon Printing Co Ltd データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置
JP2001051889A (ja) * 1999-05-31 2001-02-23 Sharp Corp 不揮発性半導体記憶装置を用いたファイルシステム
JP2004213263A (ja) * 2002-12-27 2004-07-29 Ricoh Co Ltd 情報処理装置、フラッシュrom管理方法およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3448051B2 (ja) * 1990-03-31 2003-09-16 株式会社東芝 不揮発性半導体記憶装置
JPH06275098A (ja) * 1993-03-24 1994-09-30 Mitsubishi Electric Corp 半導体記憶装置
JP3216449B2 (ja) * 1994-10-31 2001-10-09 安藤電気株式会社 半導体メモリの故障自己診断装置
JP2990181B1 (ja) 1998-09-28 1999-12-13 日本電気アイシーマイコンシステム株式会社 フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635776A (ja) * 1992-07-16 1994-02-10 Dainippon Printing Co Ltd データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置
JP2001051889A (ja) * 1999-05-31 2001-02-23 Sharp Corp 不揮発性半導体記憶装置を用いたファイルシステム
JP2004213263A (ja) * 2002-12-27 2004-07-29 Ricoh Co Ltd 情報処理装置、フラッシュrom管理方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5491411B2 (ja) * 2008-11-26 2014-05-14 パナソニック株式会社 情報更新装置とその集積回路、情報更新方法、および、記録装置とその集積回路

Also Published As

Publication number Publication date
US7353348B2 (en) 2008-04-01
JP4691355B2 (ja) 2011-06-01
US20060143369A1 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US6851015B2 (en) Method of overwriting data in nonvolatile memory and a control apparatus used for the method
KR20000023497A (ko) 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시메모리에 프로그램을 저장하는 방법
US20060219796A1 (en) Integrated circuit chip card capable of determining external attack
CN114721602B (zh) 一种基于FreeRTOS的Nor Flash滚动存储方法及装置
CN111459708B (zh) 坏块处理方法及装置
KR102276774B1 (ko) 비휘발성 메모리들을 위한 안티-테어링 보호 시스템
WO2017162049A1 (zh) 驱动模块内存数据监测方法及装置
US7657795B2 (en) Method and apparatus for writing to a target memory page of a memory
US7496822B2 (en) Apparatus and method for responding to data retention loss in a non-volatile memory unit using error checking and correction techniques
US6941413B2 (en) Nonvolatile memory, its data updating method, and card reader equipped with such nonvolatile memory
JP4691355B2 (ja) 不揮発性メモリ
US20230359523A1 (en) Memory integrity check
JP5660521B2 (ja) 不揮発性半導体記憶装置およびメモリ管理方法
CN101470666B (zh) 一种数据存储方法
JP4863472B2 (ja) メモリ管理方法
JP6314859B2 (ja) 電子制御装置及びソフトウェア書き換えシステム
JP4266742B2 (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
US20070274302A1 (en) Data Storage Device, Memory Managing Method, and Program
US7313648B2 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
JP3314719B2 (ja) フラッシュeepromとその試験方法
CN114115755B (zh) 用于数据写入的方法及装置、存储介质
US20230315318A1 (en) Monotonic counters and counting methods by monotonic counter
JP2010134822A (ja) 半導体メモリ装置
JP4601968B2 (ja) データ整合性検査を省けるicカードおよびicカード用プログラム
JP2016048443A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100802

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: 20110209

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: 20110221

R150 Certificate of patent or registration of utility model

Ref document number: 4691355

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: 20140225

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees