[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4774946B2 - 不揮発性メモリ及びそれを用いた電子機器装置 - Google Patents

不揮発性メモリ及びそれを用いた電子機器装置 Download PDF

Info

Publication number
JP4774946B2
JP4774946B2 JP2005335068A JP2005335068A JP4774946B2 JP 4774946 B2 JP4774946 B2 JP 4774946B2 JP 2005335068 A JP2005335068 A JP 2005335068A JP 2005335068 A JP2005335068 A JP 2005335068A JP 4774946 B2 JP4774946 B2 JP 4774946B2
Authority
JP
Japan
Prior art keywords
count
area
management area
data
memory
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 - Fee Related
Application number
JP2005335068A
Other languages
English (en)
Other versions
JP2007035011A (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.)
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 JP2005335068A priority Critical patent/JP4774946B2/ja
Priority to US11/425,276 priority patent/US7818491B2/en
Publication of JP2007035011A publication Critical patent/JP2007035011A/ja
Application granted granted Critical
Publication of JP4774946B2 publication Critical patent/JP4774946B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本発明は、EEPROM等の不揮発性メモリ及びそれを用いた電子機器装置に関する。
従来より、給電が遮断されても記憶内容を保持することができるとともに、電気的に内容を書き換えることが可能なメモリとして、不揮発性メモリ(例えばEEPROMやフラッシュメモリなど)が利用されている。この不揮発性メモリには、書き換え最小単位(例えば2バイト)ごとに書き換え回数に限界があり、その書き換え回数を考慮しつつ、メモリの寿命をできるだけ延ばそうとする様々なメモリ技術の開発が進んでいる。
このようなメモリ技術の中には、書き換え最小単位ごとの書き換え回数を、不揮発性メモリの中にメモリ管理データとして保持し、このメモリ管理データに基づいて更新データを書き換えるメモリ技術がある。
例えば、上述したメモリ管理データに基づき、更新データをどのメモリ領域に記録するかを予め判断して、適切なメモリ領域にデータを書き込むようにする。これにより、メモリ全領域の書き換え回数を均一化してメモリの寿命を延ばすことができる。また、とりあえず一定のメモリ領域でデータ書き換えを継続し、上述したメモリ管理データに基づいて制限回数に到達したら、そこに記録していたデータを別のメモリ領域に切り替えて記録するようにする。これにより、書き換え限界数以上のデータ更新をすることができる(例えば特許文献1参照)。
ところで、不揮発性メモリを、ある事象の発生回数を計数するカウンタとして用いる場合には、上述した2つのメモリ技術のうち後者が利用される。しかし、その事象が発生する(カウントする)度にメモリ管理データを更新する(インクリメントする)となると、結局、メモリ管理データ(書き換え回数)が、ある事象の発生回数たるカウント値そのものになってしまう。そのため、かかる場合には、カウント値そのものをメモリ管理の判断材料として、データを書き込むメモリ領域を切り替えるようにしている。
より具体的に説明すると、カウンタ更新回数が書き換え上限回数に達したら、別のメモリ領域で再びゼロからカウントを始めるようにする。そして、カウンタの総計値を取得するときには、これまでカウンタとして使用してきた全メモリ領域の総和を求めればよい。
特開平8−287697号公報(段落番号[0002])
しかしながら、不揮発性メモリをカウンタとして用いた場合において、上述したメモリ技術を採用すると、空白桁(データがゼロの桁)のメモリ領域において、空白を繰り返し書き換える処理がなされるので、カウンタ機能として未使用であっても寿命は尽きることになり、効率的にメモリを使用することができない。
例えば、書き換え最小単位(1ブロック)が1ワード(2byte)であって、かつ、各ブロックにおける書き換え上限回数が100万回である不揮発性メモリを使って、1600万回までカウントアップしようとした場合には、以下のような手順となる。
まず、この不揮発性メモリにおける1ブロックでは、65,536(=216)回までカウントアップ可能である。すなわち、1ブロックだけでは、書き換え上限回数の100万回までカウントアップすることができない。書き換え上限回数の100万回までカウントアップするためには、1ブロック(2byte)に加えて、4bitのメモリ領域が必要になる(2byte+4bitにより、220回=1,048,576回カウントアップすることが可能である)。
ところが、上述したように、不揮発性メモリの書き換え最小単位を1ブロック(2byte)として考えていることから、結果的には、2ブロックのメモリ領域を確保することが必要となる。
従って、2ブロックのメモリ領域への書き込み(100万回までのカウントアップ)が終了すると、次の2ブロックのメモリ領域でゼロから書き込みを始める、といったような方法で、1600万回までカウントアップしようとすると、2ブロック×16=32ブロックのメモリ領域を確保することが必要であるが、実際は、各2ブロックにおいて、最上位1byteと上位3byte目の上位1nibble(1nibble=4bit)は、カウンタ値のデータが書き込まれることなく、単に消去書き換えが行われ、カウンタ機能としては未使用のまま残される(図10参照)。これでは、メモリを十分かつ有効に使い切っておらず、効率的にメモリを使用しているとはいえない。
本発明は、以上の点に鑑みてなされたものであり、その目的は、カウンタ機能を不揮発性メモリにより実現させる上で、カウンタ値のデータが更新されないまま消去書き換えが行われるメモリ領域をできるだけ減らし、無駄が少なく効率的に使用することが可能な不揮発性メモリ及びそれを用いた電子機器装置を提供することにある。
以上のような課題を解決するために、本発明は、不揮発性メモリのメモリ領域内に、カウントデータ領域と、そのカウントデータ領域がフルカウントされた回数を管理する回数管理領域と、を設けたことを特徴とする。
より詳細には、本発明は、以下のものを提供する。
(1) 更新データに応じてカウントアップされるカウントデータ領域と、
前記カウントデータ領域がフルカウントされた回数を管理する第1回数管理領域と、前記第1回数管理領域がフルカウントされた回数を管理する第2回数管理領域と、をメモリ領域内に有し、前記カウントデータ領域,前記第1回数管理領域及び前記第2回数管理領域は、それぞれ更新データの書き換え最小単位となるブロック単位で構成されることを特徴とする不揮発性メモリ。
本発明によれば、不揮発性メモリにおけるメモリ領域内に、例えばカードリーダにおけるシャッタの開閉回数などの更新データに応じてカウントアップされるカウントデータ領域と、そのカウントデータ領域がフルカウントされた回数を管理する第1回数管理領域と、を設けることとしたので、カウンタ値のデータが更新されないまま消去書き換えが行われるメモリ領域を減らすことができ、ひいてはメモリ領域の無駄をなくし、これを効率的に使用することができる。
ここで、「フルカウント」には、カウントデータ領域におけるカウント回数が所定の制限回数に達したことは勿論のこと、このカウント回数が所定の制限回数近傍に近づいたことも含まれる。例えば、ブロック(=2byte)毎に構成されたカウントデータ領域において、各ブロックで0〜0xFFFFまでカウントすることができると考えた場合、第1回数管理領域(2byte)の各nibbleは、対応する各ブロックが0xFFFFまでフルカウントされた回数を管理することとしてもよいし、対応するブロックが0xFFFF近傍までフルカウントされた回数(ほぼフルカウントされた回数)を管理することとしてもよい。
本発明によれば、不揮発性メモリにおけるメモリ領域内に、第1回数管理領域がフルカウントされた回数を管理する第2回数管理領域を設け、上述したカウントデータ領域,第1回数管理領域,及び第2回数管理領域は、それぞれ更新データの書き換え最小単位となるブロック単位で構成されることとしたので、一部がカウンタ機能として未使用のまま残されていた書き換え最小単位(1ブロック)のメモリ領域は、ブロック単位で構成された回数管理領域の中で効率的に管理されることとなり、その結果、メモリ領域の無駄を少なくして、これを効率的に使用することができる。
) 前記第2回数管理領域は、予め定められた個数のビットからなるビット列を有し、前記ビット列のうちのいずれかのビットが1にセットされ、他のビットが全て0にセットされることによって、前記第1回数管理領域がフルカウントされた回数を管理することを特徴とする不揮発性メモリ。
本発明によれば、上述した第2回数管理領域は、予め定められた個数のビットからなるビット列を有しており、このビット列のうちのいずれかのビットが1にセットされ、他のビットが全て0にセットされることによって(例えば、ビット列が4bitであれば"0001","0010","0100","1000"など)、第1回数管理領域がフルカウントされた回数を管理することとしたので、データ処理の効率化を図ることができる。
すなわち、第2回数管理領域が、第1回数管理領域がフルカウントされた回数を管理するにあたって、"0001"が1回,"0010"が2回,"0011"が3回,"0100"が4回といったような管理をした場合には、第2回数管理領域のデータ内容を認識する際、第2回数管理領域のデータを読み出した後、このデータをソフトウェアによって数値として認識する必要がある。そのため、第2回数管理領域のデータ内容を認識するまでに多少の時間が掛かり、データ処理の効率化に関して改善の余地があった。しかし、本発明によれば、第2回数管理領域が、第1回数管理領域がフルカウントされた回数を管理するにあたって、"0001"が1回,"0010"が2回,"0100"が3回,"1000"が4回といったように、ビット列のうちのいずれか一のビットのみが1にセットされるような管理をするので、第2回数管理領域のデータ内容を認識する際、第2回数管理領域のデータを読み出した後、必要なビットをAND処理で抽出すればよい(マスク処理を施せばよい)。従って、読み出したデータをソフトウェアによって数値として認識する処理が不要となり、短時間で、第2回数管理領域のデータ内容を認識することができ、ひいてはデータ処理の効率化を図ることができる。
) 不揮発性メモリと、前記不揮発性メモリに対してデータの読み書きを行うデータ処理手段と、を有する電子機器装置において、前記不揮発性メモリは、更新データに応じてカウントアップされるカウントデータ領域と、前記カウントデータ領域がフルカウントされた回数を管理する第1回数管理領域と、前記第1回数管理領域がフルカウントされた回数を管理する第2回数管理領域と、を有し、それぞれが更新データの書き換え最小単位となるブロック単位で構成されるとともに、前記第2回数管理領域は、前記データ処理手段の処理内容に基づいて、前記電子機器装置における構成部品の使用回数を管理することを特徴とする電子機器装置。
本発明によれば、不揮発性メモリと、これに対してデータの読み書きを行うデータ処理手段(例えばCPUやメモリ制御回路など)と、を有する電子機器装置(例えばカードリーダなど)において、不揮発性メモリのメモリ領域内に、上述したカウントデータ領域,第1回数管理領域,第2回数管理領域を設け、それぞれが更新データの書き換え最小単位となるブロック単位で構成されるとともに、第2回数管理領域は、データ処理手段の処理内容に基づいて、電子機器装置における構成部品(例えばシャッタ,駆動ローラ,磁気ヘッドなど)の使用回数を管理することとしたので、メモリ領域の無駄をなくし、メモリ資源を有効かつ効率的に使用した電子機器装置を提供することができる。
) 前記第2回数管理領域は、予め定められた個数のビットからなるビット列を有し、前記データ処理手段が、前記ビット列のうちのいずれかのビットを1にセットし、他のビットを全て0にセットすることによって、前記電子機器装置における構成部品の使用回数を管理することを特徴とする電子機器装置。
本発明によれば、上述した第2回数管理領域が、電子機器装置における構成部品の使用回数を管理するに当たって、前記データ処理手段が、予め定められた個数のビットからなるビット列のうちのいずれかのビットを1にセットし、他のビットを全て0にセットすることとしたので、上述したように、第2回数管理領域のデータを読み出した後、必要なビットをAND処理で抽出するだけで(マスク処理を施すだけで)、第2回数管理領域のデータ内容を認識することができる。
特に、第2回数管理領域は、電子機器装置における構成部品(例えばシャッタ,駆動ローラ,磁気ヘッドなど)の使用回数を管理することとしているので、短時間で第2回数管理領域のデータ内容を認識可能になれば、構成部品の寿命検出を高速化することができる。
このように、本発明は、メモリ領域の無駄をなくすことによるメモリ資源の有効化及び効率化と、電子機器装置における構成部品の寿命検出の高速化と、の双方のメリットを併有することができる。
) 前記第2回数管理領域は、前記電子機器装置における複数の構成部品の使用回数に対応して前記ビット列を複数有するとともに、前記データ処理手段は、複数の前記ビット列におけるビットパターンを参照することによって、前記電子機器装置における構成部品の寿命を検出することを特徴とする電子機器装置。
本発明によれば、上述した第2回数管理領域は、電子機器装置における複数の構成部品の使用回数に対応してビット列を複数有するとともに、上述したデータ処理手段によって、複数のビット列におけるビットパターンが参照され、電子機器装置における構成部品の寿命が検出されることとしたので、複数の機能をもつ電子機器装置の総合的な寿命検出を高速化することができる。
すなわち、例えば、電子機器装置がカードリーダである場合には、カードが磁気ヘッド上を往復した回数をカウントするビット列,シャッタ開閉回数をカウントするビット列,IC接点セット回数をカウントするビット列,カード排出回数をカウントするビット列における各ビットパターンを参照して、いずれか1個でも予め定める所定のビットパターンになっている場合(ビット列のうち予め定めるビットが1になっている場合)には、磁気ヘッド,シャッタ,IC接点,カード排出機構のいずれかの構成部品が寿命になったことを高速に検出することができる。また、所定のビット列におけるビットパターンを参照することによって、どの構成部品が寿命になったかも高速に検出することができる。
なお、ここでいう「ビットパターン」とは、例えば"0001","0010","0100","1000"など、ビット列におけるビットの配列態様をいう。
本発明に係る不揮発性メモリ及びそれを用いた電子機器装置によれば、従来カウンタ値のデータが更新されないまま消去書き換えが行われていた不揮発性メモリのメモリ領域を効果的に減らすことができ、ひいてはメモリ資源を有効かつ効率的に使用することができる。また、第2回数管理領域に設けられた複数のビット列におけるビットパターンを参照することで、例えばカードリーダなどの電子機器装置における構成部品の寿命検出を高速化することができる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。なお、本実施形態においては、1ブロックが1ワード(2byte)で、書き換え上限回数が100万回の不揮発性メモリを使って、約1600万回(16,777,215回)までカウントアップすることを考えるが、本発明は、これらのパラメータ以外のパラメータを採用することも、勿論可能である。
[概要]
図1は、本発明の実施の形態に係る不揮発性メモリをカウンタとして用いた場合の概要を説明するための説明図である。特に、図1(a)は、従来の不揮発性メモリを使って約1600万回カウントする概要を説明するための図であって、図1(b)は、本実施形態に係る不揮発性メモリを使って約1600万回カウントする概要を説明するための図である。なお、以下では、本発明の実施の形態に係る不揮発性メモリは、カードリーダに搭載されるものとして説明する。
図1(a)において、本実施形態では、不揮発性メモリの書き換え上限回数を100万回と考えているので、2ブロック(4byte)のメモリ領域を使用して、まずは100万回までカウントアップする。そして、100万回に到達したら、次のメモリ領域(図1(a)における1つ上の2ブロック)に切り替えて、ゼロから再びカウントアップする。このようにして、図1(a)における下方から順々に、1600万回までカウントアップしていく。これより、最終的には計32ブロックのメモリ領域を確保しなければならない。
ところが、使用されたメモリ領域は、図1(a)中に示す斜線部であるので、各2ブロックにおいて、最上位1byteと上位3byte目の上位nibbleは、カウンタ値のデータが更新されないまま消去書き換えのみが行われることになる(図1(a)中に示す空白部分)。
一方で、図1(b)において、本発明の実施の形態に係る不揮発性メモリでは、まず、2ブロック(4byte)のメモリ領域を、上位2byteと下位2byteとに分けて考える。そして、下位2byte(1ブロック)が16個集まってできるメモリ領域を、カウントデータ領域100として、不揮発性メモリ内に設ける(図1(b)参照)。
また、このカウントデータ領域100における各ブロックでフルカウントされた回数を管理するメモリ領域として、1ブロックで構成されるフルカウント回数管理領域200(第1回数管理領域の一例として機能)を不揮発性メモリ内に設ける(図1(b)参照)。
さらに、フルカウント回数管理領域200が0xFFFFに達した回数を管理するメモリ領域として、1ブロックで構成されるトランザクション完了回数管理領域300(第2回数管理領域の一例として機能)を不揮発性メモリ内に設ける(図1(b)参照)。なお、トランザクション完了回数管理領域300は、シャッタ7やモータ9の使用回数,カードと磁気ヘッドの摺動回数など、カードリーダにおける構成部品の使用回数を管理するものである。また、トランザクション完了回数管理領域300は、フルカウント回数管理領域200がフルカウントされた回数を管理するメモリ領域であることから、カードリーダにおける構成部品の使用回数が所定回数になるまでは(フルカウント回数管理領域200が所定回数カウント、つまりフルカウントされるまでは)、カウントアップされない。
本実施形態に係る不揮発性メモリは、計16ブロックから構成されるカウントデータ領域100と、1ブロックで構成されるフルカウント回数管理領域200と、1ブロックで構成されるトランザクション完了回数管理領域300と、を上手く利用して、1600万回までカウントアップするものである。詳細については、[メモリ管理]において説明する。
このように、本実施形態に係る不揮発性メモリによれば、フルカウント回数管理領域200が必要である一方で、図1(a)においては必要であった、上位2byte(1ブロック)が16個集まってできるメモリ領域(図1(b)ではメモリ領域101に相当する)が不要になる(図1(b)参照)。すなわち、1600万回までカウントアップするために確保しなければならない全ブロック数は、図1(a)では32ブロックであったのに対し、図1(b)では18(=16+1+1)ブロックになる。従って、1600万回までカウントアップした場合、メモリ使用領域は従来の約60%で足りることになり、ひいてはメモリを効率的に使用することができる。
[電気的構成]
図2は、本発明の実施の形態に係る不揮発性メモリを含むカードリーダの電気的構成を示すブロック図である。なお、ここでは、不揮発性メモリとしてEEPROM1を用いている。
図2において、総合的な電気的制御を司るCPU2には、磁気カードと磁気データの送受信を行う磁気ヘッド3が、復調回路4を介して接続されている。また、CPU2には、ワーキングエリアとして機能するRAM5が接続されている。また、駆動ローラを回転駆動するモータ7が、モータ制御回路(例えばPWM駆動制御回路)を介して接続されており、カードの出入りを規制するシャッタ9が、アクチュエータ8を介して接続されている。さらに、現在のカード位置を把握するための複数のフォトセンサ10が接続されている。なお、CPU2には、カードリーダを制御する制御プログラムや初期値などの情報を格納するROMが組み込まれている。また、図2では図示しないが、カードリーダには、カード上のIC端子に当接され、CPU2によるデータの読み書きを可能にするIC接点が設けられている。
ここで、CPU2には、給電が遮断されても記憶内容を保持することができるとともに、電気的に内容を書き換えることが可能なEEPROM1が接続されている。このEEPROM1は、アクチュエータ8によって検出されるシャッタ9の開閉回数や、フォトセンサ10によって検出されるカードを排出した(又は取り込んだ)回数などの更新データに応じて、CPU2によりカウントアップされるようになっている。また、EEPROM1は、上述したとおり、メモリ領域内に、カウントデータ領域100とフルカウント回数管理領域200とトランザクション完了回数管理領域300とを有している。なお、CPU2は、EEPROM1に対してデータの読み書きを行うデータ処理手段の一例として機能する。以下、EEPROM1のメモリ管理について、図3を用いて詳述する。
[メモリ管理]
図3は、本発明の実施の形態に係る不揮発性メモリのメモリ領域を示す図である。図3では、各ブロックにおける書き換え上限回数は100万回とし、16,777,215回(=0xFFFFFF回)までカウントアップするカウンタを考える。図1の概念に基づいて、このカウンタを設計すると、カウントデータ領域100は17ブロックで構成されることになるが、ソフトウェアの効率化を考慮し、18ブロック使用するものとする(DB[0][0],DB[0][1],・・・,DB[4][1])。なお、カウントデータ領域100におけるDB[0][0],DB[0][1],DB[0][2],DB[0][3],・・・に示すメモリ領域は、それぞれ書き換え最小単位(1ブロック=2byte)とし、16進数で、それぞれ0〜0xFFFFまでカウントすることが可能なものとする。
また、フルカウント回数管理領域200は、書き換え最小単位(1ブロック=2byte)で構成され、各nibbleがFC[0],FC[1],FC[2],FC[3]として示され、各FC[]がカウントデータ4ブロックに対応しており、それぞれのFC[]が、対応するブロックの0〜0xF回までのフルカウント回数を管理するものとする。さらに、トランザクション完了回数管理領域300も、書き換え最小単位(1ブロック=2byte)で構成され、フルカウント回数管理領域200が0xFFFFに達した回数を管理するものとする。
なお、EEPROM1では、トランザクション完了回数管理領域300の各nibbleを、TR1,TR2,TR3,TR4としている。(各TRがシャッタ7や磁気ヘッド3など、カードリーダにおける各構成部品のカウンタに対するトランザクション完了回数を管理するものとする。)
また、EEPROM1における各FC[]のカウント値をカウントアップする手順としては、まず、該当するFC[]が含まれるブロックのデータを一旦RAM5にまとめて読み込み、ブロックデータをソフトウェアにてbitシフトしたりAND処理したりして、該当するFC[]を抽出してカウントアップする。そして、カウントアップ後のデータを、先に読み込んだブロックデータにソフトウェアにて埋め込んで、新しいブロックデータとし、EEPROM1にまとめて書き込む。
まず、DB[0][0]を使用して、0〜0xFFFF回までカウントする。その次のカウントアップ時にはDB[0][0]に示すメモリ領域をゼロクリアするとともに、FC[0]のカウント値(初期値0)を1だけカウントアップする。そして、再びDB[0][0]を使用して、0xFFFF回までカウントし、0xFFFF回までカウントされたら、その次のカウントアップ時にDB[0][0]に示すメモリ領域をゼロクリアするとともに、FC[0]のカウント値(現在1)を1だけカウントアップする。
このような手順を繰り返し、FC[0]が0xF回までカウントされると、DB[0][0]では、0〜0x10000(=65,536)までのカウントアップが0x0F(=15)回実施されたことを意味するので、Totalで、983040回のカウントアップをしたことになる。すなわち、ほぼ100万回のデータ更新がなされたとして、DB[0][0]におけるカウントアップを中止して、次のDB[0][1]におけるカウントアップを開始する。
次のDB[0][1]では、DB[0][0]と同様に、0xFFFF回までカウントされるたびに、その次のカウントアップ時にFC[1]のカウント値を1だけカウントアップし、FC[1]が0xFまでカウントされると、DB[0][1]におけるカウントアップを中止して、次のDB[0][2]におけるカウントアップを開始する。以下同様にして、DB[0][2],DB[0][3]についても、FC[2],FC[3]によって管理されながらカウントアップされる。
このようにして、DB[0][0]〜DB[0][3]という4ブロックについて処理を繰り返すと、3,932,160(=0x3C0000)回のカウントアップが完了する。
ここで、3,932,160回のカウントアップが終了したとき、フルカウント回数管理領域200におけるFC[0],FC[1],FC[2],FC[3]に示すメモリ領域を全てゼロクリアにする。と同時に、トランザクション完了回数管理領域300におけるTR1のカウント値(初期値0)を1だけカウントアップする。
そして次に、FC[0]〜FC[3]は、DB[1][0]〜DB[1][3]を管理することになる。すなわち、DB[1][0]において0xFFFF回までカウントされるたびに、その次のカウントアップ時にFC[0]のカウント値を1だけカウントアップし、FC[0]が0xFまでカウントされると、DB[1][0]におけるカウントアップを中止して、次のDB[1][1]におけるカウントアップを開始する。以下同様にして、DB[1][1]〜DB[1][3]についても、FC[1]〜FC[3]によって管理されながらカウントアップされる。
このようにして、FC[0]〜FC[3]に示すメモリ領域のゼロクリアと、トランザクション完了回数管理領域300におけるTR1のカウントアップを適宜行いながら、DB[0][0]〜DB[0][3],DB[1][0]〜DB[1][3],DB[2][0]〜DB[2][3],DB[3][0]〜DB[3][3]におけるカウントアップを行う。そして、DB[3][3]におけるカウントアップまで終了すると、TR1のカウント値は4となっており、15,728,640(=0xF00000)回までカウントアップされたことになり、更に処理を繰り返すと、TR1のカウント値が4の場合における2ブロック目(DB[4][1])の処理中に16,777,215回に達することになる。
次に、DB[0][0]〜DB[4][1]に示すメモリ領域によるカウント値の総和を求めるためには、{(トランザクション完了回数管理領域300におけるTR1のカウント値×4)+(現トランザクションのフルカウント0x0F回実行済みブロック数)}×0xF0000+現在更新対象となっているブロックのカウント数、の計算をすればよい。より具体的には、図4に示すフローチャートを用いて説明する。
図4は、本発明の実施の形態に係る不揮発性メモリをカウンタとして用いた場合におけるカウント値の計算方法を示すフローチャートである。なお、各種変数は、RAM5に適宜記憶されるものとし、また、CPU2によって、RAM5に記憶されている変数の値は適宜読み出されるものとする。
図4において、まず、CPU2は、EEPROM1にアクセスし、変数iと変数FnshBlckCntに0を代入する(ステップS1)。次いで、FC[i]が0x0Fであるか否かを判断する(ステップS2)。FC[i]が0x0Fであると判別した場合には、変数iと変数FnshBlckCntをそれぞれ1ずつインクリメントする(ステップS3)。
一方で、FC[i]が0x0Fでないと判別した場合には、変数Current_Block_Countに(FC[i]×0x10000)+DB[TR1][i]を代入する(ステップS4)。そして、最後に、変数Total_Countに{(TR1)×4+FnshBlckCnt}×0xF0000+Current_Block_Countを代入する(ステップS5)。これにより、CPU2は、変数Total_Countを読み出すことによって、DB[0][0]〜DB[4][1]に示すメモリ領域によるカウント値の総和を認識することができる。
以上詳細に説明したように、本発明によれば、カウンタ機能を不揮発性メモリにより実現させる上で、汎用の不揮発性メモリを用いて、カウンタ値のデータが更新されないまま消去書き換えが行われていたメモリ領域をできるだけ減らし、無駄が少なく効率的に使用することが可能になる。
また、本発明におけるフルカウント回数管理領域200は、カウントデータ領域100における各ブロックを書き換えるごとに、管理データを更新しているわけではなく、カウントデータ領域100における各ブロックを複数回書き換えるごとに、管理データを更新している。さらに、このフルカウント回数管理領域200における管理データは、カウントデータ領域100を管理するとともに、自身がカウンタ総計の計算に利用されるものである。
なお、本実施形態では、図3のメモリ領域を示す図において、トランザクション完了回数管理領域300におけるTR1しか用いなかったが、例えば、アクチュエータ8によって検出されるシャッタ9の開閉回数をTR2に対応付け、フォトセンサ10によって検出されるカードを排出した(又は取り込んだ)回数をTR3に対応付けることによって、一部がカウンタ機能として未使用のまま残されるメモリ領域を減らすことができるので、従来のメモリ管理と比べて、より効率的なメモリ管理を実現することができる。
[変形例]
図5は、本発明の他の実施の形態に係る不揮発性メモリのメモリ領域を示す図である。なお、図5に示すメモリ領域のうち、カウントデータ領域100とフルカウント回数管理領域200については、図3に示すものと同様であるので、詳細な説明を省略する。
図5に示すように、本実施形態に係る不揮発性メモリ(EEPROM1)では、トランザクション完了回数管理領域300の各nibble(TR1,TR2,TR3,TR4)が、それぞれ4個のビット(b0〜b3)からなるビット列となっており、フルカウント回数管理領域200がフルカウントされた回数を管理するにあたって、ビット列のうちのいずれかのビットが1にセットされ、他のビットが全て0にセットされるようになっている。
これらのうちTR1に着目して、より具体的に説明すると、フルカウント回数管理領域200がフルカウントされた回数が0回の場合には、TR1のb0〜b3は全て0のまま("0000")である。そして、CPU2は、フルカウント回数管理領域200がフルカウントされた回数が1回の場合には、TR1のb0のみを1にセットする。その結果、TR1のビットパターンは"0001"となる。また、CPU2は、フルカウント回数管理領域200がフルカウントされた回数が2回の場合には、TR1のb1のみを1にセットする。その結果、TR1のビットパターンは"0010"となる。また、CPU2は、フルカウント回数管理領域200がフルカウントされた回数が3回の場合には、TR1のb2のみを1にセットする。その結果、TR1のビットパターンは"0100"となる。最後に、CPU2は、フルカウント回数管理領域200がフルカウントされた回数が4回の場合には、TR1のb3のみを1にセットする。その結果、TR1のビットパターンは"1000"となる。
このようにして、フルカウント回数管理領域200がフルカウントされた回数1回,2回,3回,4回を、4bitのうちいずれか一つのビットのみが1にセットされているビットパターンで表現することができる。TR2,TR3,TR4についても同様に、4bitのうちいずれか一つのビットのみが1にセットされているビットパターンで表現することができる。
ここで、例えばカードリーダにおいて、磁気ヘッド往復回数をTR1に対応付け、シャッタ開閉回数をTR2に対応付け、IC接点セット回数をTR3に対応付け、カード排出回数をTR4に対応付けた場合を考える。そして、磁気ヘッド往復回数が15,728,640回になった場合、すなわちTR1のb3に1がセットされた場合には、磁気ヘッドが寿命になったと判断する。同様に、シャッタ開閉回数が7,864,320回になった場合、すなわちTR2のb1に1がセットされた場合には、シャッタが寿命になったと判断し、IC接点セット回数が3,932,160回になった場合、すなわちTR3のb0に1がセットされた場合には、IC接点が寿命になったと判断し、カード排出回数が11,796,480回になった場合、すなわちTR4のb2に1がセットされた場合には、カード排出機構(例えばモータ7又はフォトセンサ10)が寿命になったと判断する。
CPU2は、トランザクション完了回数管理領域300のTR1〜TR4におけるビットパターンを参照して、TR1が"1000"になっているか、TR2が"0010"になっているか、TR3が"0001"になっているか、TR4が"0100"になっているか、を判断する。具体的には、EEPROM1のトランザクション完了回数管理領域300にアクセスして、TR1〜TR4のビット列をまとめて読み出して、これに対し、"0100000100101000"(0x4128)のAND処理を施す。その結果、AND処理後のデータが0であれば、磁気ヘッド,シャッタ,IC接点,カード排出機構はいずれも寿命になっていないと検出できる一方で、AND処理後のデータが全て0でないならば(即ち、少なくともいずれか一つのデータが1となった場合)、磁気ヘッド,シャッタ,IC接点,カード排出機構のいずれかが寿命であると検出できる。勿論、TR1〜TR4の各ビット列におけるビットパターンを別々に参照することによって、どの構成部品が寿命になったかも高速に検出することができる。
次に、不揮発性メモリをカウンタとして用いた場合におけるカウント値の計算方法について、図6を用いて説明し、磁気ヘッド,シャッタ,IC接点,カード排出機構の寿命検出方法について、図7を用いて説明する。
図6は、本発明の他の実施の形態に係る不揮発性メモリをカウンタとして用いた場合におけるカウント値の計算方法を示すフローチャートである。なお、各種変数は、RAM5に適宜記憶されるものとし、また、CPU2によって、RAM5に記憶されている変数の値は適宜読み出されるものとする。また、ここではTR1に着目して、磁気ヘッド往復回数の計算方法について説明する。
図6において、図4に示すフローチャートと同様に、変数iと変数FnshBlckCntに0を代入し(ステップS11)、FC[i]が0x0Fであるか否かを判断し(ステップS12)、FC[i]が0x0Fであると判別した場合に、変数iと変数FnshBlckCntをそれぞれ1ずつインクリメントし(ステップS13)、FC[i]が0x0Fでないと判別した場合に、変数Current_Block_Countに(FC[i]×0x10000)+DB[TR1][i]を代入する(ステップS14)。
次いで、予め定める決まりに従って、TR1におけるビットパターンを数字に変換する。具体的には、例えば、TR1のビットパターンは"0001"であれば1回、"0010"であれば2回、"0100"であれば3回、"1000"であれば4回、といった具合である。変換後、変換した数字をTR1_Numに代入する(ステップS15)。
最後に、変数Total_Countに、{(TR1_Num)×4+FnshBlckCnt}×0xF0000+Current_Block_Countを代入する(ステップS5)。
これにより、CPU2は、変数Total_Countを読み出すことによって、DB[0][0]〜DB[4][1]に示すメモリ領域によるカウント値の総和を認識することができる。
図7は、本発明の他の実施の形態に係る電子機器装置(カードリーダ)の構成部品の寿命検出方法を示すフローチャートである。なお、各種変数は、RAM5に記憶されるものとする。
まず、CPU2は、EEPROM1のメモリ領域のうち、TR1,TR2,TR3,TR4にアクセスして、1word(2byte)を読み出し、これを変数LifeManageDateに代入する(ステップS21)。
次いで、変数LifeManageDateと、"0100000100101000"(0x4128)とのAND処理を施す(ステップS22)。そして、AND処理後の値を変数Life_Limitに代入する(ステップS22)。そして、このLife_Limitが0になっているか否かを判断し(ステップS23)、0になっていれば、磁気ヘッド,シャッタ,IC接点,カード排出機構の寿命はいずれも尽きておらず、通常処理を継続する(ステップS24)。
一方で、Life_Limitが0になっていなければ、磁気ヘッド,シャッタ,IC接点,カード排出機構のいずれかの寿命が尽きていると判断し、メンテナンスモードに切り替えて、アラーム信号をHOST(例えば銀行のATMなど)に送信する(ステップS25)。なお、この際、先に得られた変数Life_LimitのTR1〜TR4に相当するエリアを検索して、「0でない」エリアに対応する機能(構成部品)の寿命到達をHOSTに送信するようにしてもよい。
このように、トランザクション完了回数管理領域300から1wordのデータ(2byte)を取得し、そのデータの該当ビットにマスクをかけ、その値が「0」か「0でない」か、を判断するだけで、複数の機能をもつカードリーダの総合的な寿命検出を行うことができ、更には、その寿命検出を高速化することができる。
すなわち、トランザクション完了回数管理領域300のTR1〜TR4から4bitのデータをそれぞれ取得し、それらをソフトウェアによって4個の数値として認識し、4個の数値のいずれかが予め定められた数値に達していれば、いずれかの構成部品が寿命と判断する、という寿命検出方法では、高速化が難しい。一方で、本実施形態に係るカードリーダのように、トランザクション完了回数管理領域300のTR1〜TR4のデータをまとめて取得し、そのデータの該当ビットにマスクをかけた値が「0でない」場合には、いずれかの構成部品が寿命と判断する、という寿命検出方法であれば、演算処理回数が少なくて済むので(計算回数としては、約50%で済む)、演算処理時間が短くなり、ひいては高速な寿命検出を行うことが可能なカードリーダを提供することができる。
なお、本明細書では、1,2,3,4という回数値を、それぞれ"0001","0010","0100","1000"という4個のビットパターンで対応付けることとしたが、本発明はこれに限られず、4bitのうちのいずれか一つのビットが1で、それ以外のビットが0となるような4個のビットパターンであれば如何なるものであっても構わない。
また、フルカウント回数管理領域200において、管理するカウントデータ領域100のブロック数を減らすことによって、より少ない回数での寿命検出を実現することができる。具体的には、図3では、フルカウント回数管理領域200では、カウントデータ領域100の4個のブロックを管理することとしているが、例えば図8に示すように2個のブロックを管理するようにしてもよいし、図9に示すように1個のブロック管理するようにしてもよい。
図8の場合、FC[0]及びFC[1]でカウントデータ領域100の2個のブロックを管理し、FC[2]及びFC[3]は未使用のままである。そして、FC[0]及びFC[1]が0xFに達した時点で、トランザクション完了回数管理領域300を1だけインクリメントするような構成とする。これにより、より少ない回数での寿命検出を実現することができる。
また、図9の場合、FC[0]のみでカウントデータ領域100の1個のブロックを管理し、FC[1]〜FC[3]は未使用のままである。そして、FC[0]が0xFに達した時点で、トランザクション完了回数管理領域300を1だけインクリメントするような構成とする。これにより、更により少ない回数での寿命検出を実現することができる。
さらに、より細かい寿命検出を行う方法として、例えば、フルカウント回数管理領域200で、カウントデータ領域100の3個のブロックを管理するとともに、FC[0]及びFC[1]が0xFに達し、かつ、FC[2]が0x3に達した時点で、トランザクション完了回数管理領域300を1だけインクリメントするような構成することもできる。これにより、より細かい回数での寿命検出を行うことができる。同様にして、図9の場合でも、例えばFC[0]が0x4に達した時点で、トランザクション完了回数管理領域300を1だけインクリメントするような構成とすることもできる。
本発明に係る不揮発性メモリ及びそれを用いた電子機器装置は、メモリ資源を無駄が少なく効率的に使用することが可能なものとして有用である。また、電子機器装置における構成部品の寿命検出を高速化することが可能なものとしても有用である。
本発明の実施の形態に係る不揮発性メモリをカウンタとして用いた場合の概要を説明するための説明図である。 本発明の実施の形態に係る不揮発性メモリを含むカードリーダの電気的構成を示すブロック図である。 本発明の実施の形態に係る不揮発性メモリのメモリ領域を示す図である。 本発明の実施の形態に係る不揮発性メモリをカウンタとして用いた場合におけるカウント値の計算方法を示すフローチャートである。 本発明の他の実施の形態に係る不揮発性メモリのメモリ領域を示す図である。 本発明の他の実施の形態に係る不揮発性メモリをカウンタとして用いた場合におけるカウント値の計算方法を示すフローチャートである。 本発明の他の実施の形態に係る電子機器装置(カードリーダ)の構成部品の寿命検出方法を示すフローチャートである。 フルカウント回数管理領域によって、カウントデータ領域の2個のブロックを管理するメモリ領域を示す図である。 フルカウント回数管理領域によって、カウントデータ領域の1個のブロックを管理するメモリ領域を示す図である。 従来の不揮発性メモリにおけるメモリ管理について説明するための説明図である。
符号の説明
1 EEPROM
2 CPU
3 磁気ヘッド
4 磁気ヘッド制御回路
5 RAM
6 モータ制御回路
7 モータ
8 アクチュエータ
9 シャッタ
10 フォトセンサ

Claims (5)

  1. 更新データに応じてカウントアップされるカウントデータ領域と、
    前記カウントデータ領域がフルカウントされた回数を管理する第1回数管理領域と、
    前記第1回数管理領域がフルカウントされた回数を管理する第2回数管理領域と、
    をメモリ領域内に有し、
    前記カウントデータ領域,前記第1回数管理領域及び前記第2回数管理領域は、それぞれ更新データの書き換え最小単位となるブロック単位で構成されることを特徴とする不揮発性メモリ。
  2. 前記第2回数管理領域は、予め定められた個数のビットからなるビット列を有し、
    前記ビット列のうちのいずれかのビットが1にセットされ、他のビットが全て0にセットされることによって、前記第1回数管理領域がフルカウントされた回数を管理することを特徴とする請求項記載の不揮発性メモリ。
  3. 不揮発性メモリと、
    前記不揮発性メモリに対してデータの読み書きを行うデータ処理手段と、を有する電子機器装置において、
    前記不揮発性メモリは、更新データに応じてカウントアップされるカウントデータ領域と、前記カウントデータ領域がフルカウントされた回数を管理する第1回数管理領域と、前記第1回数管理領域がフルカウントされた回数を管理する第2回数管理領域と、を有し、それぞれが更新データの書き換え最小単位となるブロック単位で構成されるとともに、
    前記第2回数管理領域は、前記データ処理手段の処理内容に基づいて、前記電子機器装置における構成部品の使用回数を管理することを特徴とする電子機器装置。
  4. 前記第2回数管理領域は、予め定められた個数のビットからなるビット列を有し、
    前記データ処理手段が、前記ビット列のうちのいずれかのビットを1にセットし、他のビットを全て0にセットすることによって、前記電子機器装置における構成部品の使用回数を管理することを特徴とする請求項記載の電子機器装置。
  5. 前記第2回数管理領域は、前記電子機器装置における複数の構成部品の使用回数に対応して前記ビット列を複数有するとともに、
    前記データ処理手段は、複数の前記ビット列におけるビットパターンを参照することによって、前記電子機器装置における構成部品の寿命を検出することを特徴とする請求項記載の電子機器装置。
JP2005335068A 2005-06-21 2005-11-19 不揮発性メモリ及びそれを用いた電子機器装置 Expired - Fee Related JP4774946B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005335068A JP4774946B2 (ja) 2005-06-21 2005-11-19 不揮発性メモリ及びそれを用いた電子機器装置
US11/425,276 US7818491B2 (en) 2005-06-21 2006-06-20 Nonvolatile memory and electronic device for use therewith

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005180638 2005-06-21
JP2005180638 2005-06-21
JP2005335068A JP4774946B2 (ja) 2005-06-21 2005-11-19 不揮発性メモリ及びそれを用いた電子機器装置

Publications (2)

Publication Number Publication Date
JP2007035011A JP2007035011A (ja) 2007-02-08
JP4774946B2 true JP4774946B2 (ja) 2011-09-21

Family

ID=37695695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005335068A Expired - Fee Related JP4774946B2 (ja) 2005-06-21 2005-11-19 不揮発性メモリ及びそれを用いた電子機器装置

Country Status (2)

Country Link
US (1) US7818491B2 (ja)
JP (1) JP4774946B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2847695B1 (fr) * 2002-11-25 2005-03-11 Oberthur Card Syst Sa Entite electronique securisee integrant la gestion de la duree de vie d'un objet
US20100310456A1 (en) * 2009-06-04 2010-12-09 General Electric Company Imaging of myelin basic protein
US8658129B2 (en) * 2009-06-04 2014-02-25 General Electric Company Agents and methods for the imaging of myelin basic protein
US8617515B2 (en) * 2009-06-04 2013-12-31 General Electric Company Imaging of myelin basic protein

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6049218A (ja) * 1983-08-30 1985-03-18 Nippon Denso Co Ltd 車両用走行距離計
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JPH07211089A (ja) * 1994-01-11 1995-08-11 Tamura Electric Works Ltd メモリ書込制御方式
JPH08287697A (ja) 1995-04-18 1996-11-01 Nippondenso Co Ltd メモリ装置
JPH1021146A (ja) * 1996-06-28 1998-01-23 Oki Electric Ind Co Ltd 度数カウント装置

Also Published As

Publication number Publication date
US20070028032A1 (en) 2007-02-01
JP2007035011A (ja) 2007-02-08
US7818491B2 (en) 2010-10-19

Similar Documents

Publication Publication Date Title
US6839823B1 (en) Increased reliability of data stored on flash memory in applications sensitive to power-loss
JP3692313B2 (ja) 不揮発性メモリの制御方法
TWI449049B (zh) 具有動態的多種模式操作的非揮發性記憶體
JP3178909B2 (ja) 半導体メモリ装置
KR19990023469A (ko) 불휘발성 반도체 메모리의 제어방법
CN102890656A (zh) 提高flash使用寿命的方法
JP2003532222A (ja) 記憶媒体上のデータ管理のための方法、システム、及びコンピュータプログラム
JP5259513B2 (ja) 携帯可能電子装置、icカードおよび携帯可能電子装置の制御方法
JP4774946B2 (ja) 不揮発性メモリ及びそれを用いた電子機器装置
CN115129262A (zh) 一种固态硬盘垃圾回收方法、装置、设备及介质
KR100542175B1 (ko) 정보 기억 장치
JP2008123314A (ja) 半導体記憶装置への情報記録方法及び情報記録システム
KR102142675B1 (ko) Eeprom 제어장치 및 이를 이용한 eeprom의 데이터 기록 방법
CN105706067B (zh) 内置闪存的微型计算机和向内置于微型计算机的闪存的数据写入方法
JP2003036209A (ja) 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法
JP4460850B2 (ja) Icカードとicカードの処理方法
JP2006126919A (ja) フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法
JP4602387B2 (ja) メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
JP2015049722A (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
JP2013003655A (ja) フラッシュメモリにデータの書き込みを行う制御装置
KR20070018986A (ko) 난수 생성 장치, 생성 방법, 생성기 평가 방법 및 난수사용 방법
JP2000330850A (ja) フラッシュメモリ制御方法
JP2002312253A (ja) 携帯情報端末装置
JP6015461B2 (ja) 情報記録媒体、データ読み書き方法、及びデータ読み書きプログラム
JP2007219793A (ja) フラッシュメモリの書き込み方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110421

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4774946

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees