JP5410083B2 - 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法 - Google Patents

不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法 Download PDF

Info

Publication number
JP5410083B2
JP5410083B2 JP2008318099A JP2008318099A JP5410083B2 JP 5410083 B2 JP5410083 B2 JP 5410083B2 JP 2008318099 A JP2008318099 A JP 2008318099A JP 2008318099 A JP2008318099 A JP 2008318099A JP 5410083 B2 JP5410083 B2 JP 5410083B2
Authority
JP
Japan
Prior art keywords
value
address
nonvolatile memory
count
addresses
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
JP2008318099A
Other languages
English (en)
Other versions
JP2010140580A (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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2008318099A priority Critical patent/JP5410083B2/ja
Publication of JP2010140580A publication Critical patent/JP2010140580A/ja
Application granted granted Critical
Publication of JP5410083B2 publication Critical patent/JP5410083B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、ソフトウェアカウンタの処理を行う不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法に関する。
フラッシュメモリのように書換え回数が制限される不揮発性メモリでは、特定領域に頻繁に書き込みを行うと、メモリ全体の寿命がこの特定領域の寿命で決定される。
そこで、下記特許文献1では、カウント値が巡回するN進カウンタを用い、ブロックへの書き込みを行う際にこのカウント値を変化させ、該カウンタ値をフラッシュメモリ内のブロックアドレスと対応させて、複数のメモリブロックを巡回的に使用することにより、フラッシュメモリ全体としての延命を図っている。
特開平11−144478号公報
しかしながら、フラッシュメモリの外部にバッテリーバックアップしたメモリを、ソフトウェアカウンタとして用いていたので、このようなメモリが電子機器に備えられていない場合には、適用することができないか、或いは新たにハードウェア構成を追加しなければならないという問題点があった。
このカウンタをフラッシュメモリ内のソフトウェアカウンタで構成すると、このカウンタが上記特定領域となり、フラッシュメモリ全体の寿命がこのカウンタにより決定される。
このような問題は、例えば画像形成装置の印刷カウンタとして、フラッシュメモリ内にソフトウェアカウンタを構成する場合にも生ずる。
本発明の目的は、このような問題点に鑑み、内部カウンタを備えた不揮発性メモリを延命させる不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法を提供することにある。
本発明による不揮発性メモリドライバの第1態様では、書換回数が制限される不揮発性メモリとオペレーティングシステムとの間のインターフェイスとして機能するメモリドライバにおいて、プロセッサに対し、
書込み又は読出しのアドレスが、複数のカウンタのアドレスのうち特定のアドレスであるか否かを判定させ、
(a)書込みアドレスが該特定のアドレスであると判定した場合には、該複数のアドレスに対応した複数のアドレスのそれぞれに格納されているカウント値のうち最小値が格納されているアドレスに、該複数のカウント値の最大値をインクリメントした値を書き込ませ、
(b)読出しアドレスが該特定のアドレスであると判定した場合には、該複数のアドレスのそれぞれに格納されているカウント値のうち最大値を読み出させ、
該最小値及び該最大値の判定において、該プロセッサに対し、該複数のカウンタのアドレスの範囲内で所定順にカウント値を読み出させ、今回読み出したカウント値が前回読み出したカウント値よりも減少した場合には、今回読み出したカウント値を該最小値とみなさせ、前回読み出したカウント値を該最大値とみなさせ、この減少がない場合には、該特定のアドレスのカウンタのカウント値を最小値とみなさせ、
該複数のカウンタの初期値は互いに同一値である
本発明による不揮発性メモリドライバの第2態様では、第1態様において、該複数のカウント値のそれぞれは、規則的に変化するアドレスのそれぞれに格納されている。
本発明による不揮発性メモリドライバの第3態様では、第1又は2態様において、該プロセッサに対し、ステップ(a)において、該最大値が所定値である場合、該複数のアドレスのそれぞれにカウント範囲の最小値を書き込ませる。
上記第1態様の構成によれば、書込みアドレスが所定値であると判定した場合には、書き込みアドレスに対応した複数nのアドレスのそれぞれに格納されているカウント値のうち最小値が格納されているアドレスに、これらカウント値の最大値をインクリメントした値を書き込ませ、読出しアドレスが該所定値であると判定した場合には、これらアドレスのそれぞれに格納されているカウント値のうち最大値を読み出させるので、それぞれのアドレスに対する書込回数が、1つのアドレスを用いた従来のそれの1/nとなり、これにより、内部カウンタを備えた不揮発性メモリを延命させることができるという効果を奏する。
上記第2態様の構成によれば、アドレスを規則的に変化させてカウント値を読出させることができるので、容易迅速にカウンタ処理を行うことができるという効果を奏する。
上記第3態様の構成によれば、該最大値が所定値である場合、該複数のアドレスのそれぞれにカウント範囲の最小値を書き込ませるので、上記のような複数カウンタを用いても、N進カウンタを容易に構成できるという効果を奏する。
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
図4は、本発明が適用された電子機器10のハードウェア構成を示す概略ブロック図である。電子機器10は、例えば画像形成装置、電子カメラ又は携帯端末などである。
この電子機器10では、MPU11がインターフェイス12を介して不揮発性メモリ13、RAM14、入力装置15、表示装置16およびNIC17に結合されている。図11では、簡単化のために複数種のインターフェイスを1つのブロック12で表している。
不揮発性メモリ13は、補助記憶装置として用いられ、これには、ブートローダと、オペレーティングシステム(OS)と、OSの上層で動作するアプリケーションと、このOSと各種デバイスとの間のインターフェイスとして機能するドライバと、データとが格納されている。
このアプリケーションは、例えばプリンタアプリを含む。このデータは、電子機器10の各種設定値及び状態情報を含み、この状態情報には印刷枚数を示すカウント値を含む。ドライバには、不揮発性メモリ13自体のそれを含む。
RAM14は、主記憶装置として用いられる。また、ネットワークインターフェイス17は、ネットワーク18に結合されている。
図3は、不揮発性メモリ13のアクセスに関係したソフトウェア構成を示すブロック図である。
アプリケーション20は、オペレーティングシステム21のファイルシステム210及びメモリドライバ22を介して入力装置15をアクセスする。このファイルシステム210は、ファイルアクセス関数を含んでおり、ファイルに関してはデバイス非依存のアドレスを用いて処理を行う。メモリドライバ22は、不揮発性メモリ13に依存した処理を行うことにより、オペレーティングシステム21と入力装置15との間のインターフェイスとして機能する。
図2(A)は、不揮発性メモリ13の一部概略メモリマップを示しており、電子機器10の設定値及び状態は、設計段階で予め定められたアドレスに割り当てられる。
この状態には、上記カウント値が含まれ、このカウント値は、図2(B)に示すようなアドレス変動カウンタ30に格納される。アドレス変動カウンタ30は、4つの連続するワードアドレスA0〜A0+3で指定される一時カウンタ31〜34を備えている。
アプリケーション20のプログラミングを容易にするために、アプリケーション20からは、アドレス変動カウンタ30がカウンタ31のみで構成されている場合と同様の処理を行えるようにしている。これを実現するために、メモリドライバ22は、アドレス変動カウンタ30に関し、図1に示すような概略フローチャートに従った処理を行っている。以下、括弧内は図1中のステップ識別符号である。
(S0)命令のオペランドに一時カウンタ31のアドレスA0が含まれていればステップS1へ進み、そうでなければ図1の処理から抜けて他の処理へ移る。
(S1)この命令が、カウンタ31に値をセットするものであればステップS2へ進み、カウンタ31をインクリメントするものであればステップS3へ進み、カウンタ31の内容であるカウント値を読み出すものであればステップS5へ進む。
(S2)一時カウンタ31〜34の内容を消去した後、命令で指定された値を一時カウンタ31〜34のそれぞれに書き込み、図1の処理を終了する。この値が0である場合、図2(C)の左端に示す状態となる。
(S3)(Ai)minを消去する。ここに(Ai)minは、一時カウンタ31〜34のカウント値のうち最小値を示す。最小値が複数ある場合、(Ai)minはそれらのいずれであってもよい。
(S4)(Ai)minのカウンタに、最大値(Aj)maxを1だけインクリメントしたものを代入し、図1の処理を終了する。ここに(Aj)maxは、一時カウンタ31〜34のカウント値のうち最大値を示す。この(Aj)maxが、アドレス変動カウンタ30のカウント値である。
(S5)(Aj)maxを読み出す。
図2(C)は、アドレス変動カウンタ30の内容の変化を示し、この変化は、アドレス変動カウンタ30をステップS2でゼロクリアした後、ステップS3でアドレス変動カウンタ30を1だけインクリメントし、ステップS30の処理を繰り返した場合に対応している。
上記最小値及び最大値は、一般的なアルゴリズムを用いて決定することもできるが、本実施例の場合には、次のようにして簡単に求めることができる。
すなわち、アドレスA0〜A0+3の範囲内で、アドレスA0から順にカウント値を読み出し、今回読み出したカウント値が前回読み出したカウント値よりも減少した場合には、今回読み出したカウント値を最小値(Ai)minとみなし、前回読み出したカウント値を最大値(Aj)maxとみなす。この減少がない場合、すなわち一時カウンタ31〜34の値が互いに等しい場合には、一時カウンタ31のカウント値を最小値(Ai)minとする。
本実施例1によれば、書換回数が制限される不揮発性メモリ13とオペレーティングシステム21との間のインターフェイスとして機能するメモリドライバ22において、プロセッサ11に対し、書込み又は読出しのアドレスが所定値A0であるか否かを判定させ、書込みアドレスがA0であると判定した場合には(S0、S1)、このアドレスA0に対応したアドレスA0〜A3のそれぞれに格納されているカウント値のうち最小値(Ai)minが格納されているアドレスに、カウント値の最大値(Aj)maxを1だけインクリメントしたものを書き込ませ、読出しアドレスがA0であると判定した場合には、アドレスA0〜A3のそれぞれに格納されているカウント値のうち最大値(Aj)maxを読み出させるので、特定領域(本実施例では一時カウンタ31〜34の任意の1ワード)に対する書き込み回数が従来の1/4となり、アドレス変動カウンタ30により不揮発性メモリ13の寿命が決定されるのを防止することができる。
また、外部バッテリーバックアップカウンタを用いる必要がないので、電子機器10のハードウェア構成が簡単となる。
さらに、メモリドライバ22で図1に示すような処理をアドレス変動カウンタ30に対して行うので、アプリケーション20のプログラミングが容易となる。
図5は、図2(B)のアドレス変動カウンタ30をN進カウンタとする場合の、メモリドライバ22による処理を示すフローチャートである。図1と異なる点は、図1のステップS3とステップS4との間に、ステップS6とステップS7とを追加した点である。
(S6)最大値(Aj)maxが、予め設定された値(N−1)に等しければ、ステップS7へ進み、そうでなければステップS4へ進む。
(S7)一時カウンタ31〜34のカウント値をゼロクリアする。すなわち、一時カウンタ31〜34のカウント値を消去し、消去した値が0でない場合には、一時カウンタ31〜34のそれぞれに0を書き込む。
他の点は上記実施例1と同一である。
なお、本発明には外にも種々の変形例が含まれる。
例えば、アドレス変動カウンタ30を構成する複数の一時カウンタ31〜34は、連続したアドレスとする必要性はなく、図6に示すように互いに離れたアドレスAm0、Am1、Am2及びAm3で識別される記憶部をそれぞれ一時カウンタ31〜34としてもよい。この場合、これらアドレスが規則的に変化したものとすることにより、例えば、これらアドレスの下位部を同一値にして上位部を連続した値にすることにより、アドレスを規則的に変化させてカウント値を読出させることができるので、容易迅速にカウンタ処理を行うことができる。
また、実施例2のN進カウンタを用い、図7に示すように、カウント値で識別されるブロック、例えばセクタ又はページに、データを書き込み、カウント値を更新することにより、ブロックを変化させて不揮発性メモリ13を延命させる構成であってもよい。
さらに、図1の処理をメモリドライバ22に備える替わりに、アプリケーション20に含ませる構成であってもよい。この場合、カウンタ30のアドレスA0〜A3が、OS21により動的に変動する構成であってもよい。
本発明の実施例1に係るメモリドライバによる、アドレス変動カウンタに関する処理を示す概略フローチャートである。 (A)は不揮発性メモリの一部概略メモリマップを示す説明図、(B)はアドレス変動カウンタの記憶領域を示す説明図、(C)は図1の処理によるアドレス変動カウンタの変化説明図である。 不揮発性メモリのアクセスに関するソフトウェア概略構成ブロック図である。 本発明が適用された電子機器のハードウェア構成を示す概略ブロック図である。 本発明の実施例2に係るメモリドライバによる、アドレス変動カウンタに関する処理を示すフローチャートである。 本発明の実施例の変形例として、複数の一時カウンタが散在してアドレス変動カウンタを構成する場合を示す説明図である。 本発明の実施例の他の変形例として、カウント値で識別されるメモリ上ブロックを変化させて不揮発性メモリを延命させる場合を示す説明図である。
符号の説明
10 電子機器
11 MPU
12 インターフェイス
13 不揮発性メモリ
14 RAM
15 入力装置
16 表示装置
17 ネットワークインターフェイス
18 ネットワーク
20 アプリケーション
21 オペレーティングシステム
210 ファイルシステム
22 メモリドライバ
30 アドレス変動カウンタ
31〜34 一時カウンタ

Claims (4)

  1. 書換回数が制限される不揮発性メモリとオペレーティングシステムとの間のインターフェイスとして機能するメモリドライバにおいて、プロセッサに対し、
    書込み又は読出しのアドレスが、複数のカウンタのアドレスのうち特定のアドレスであるか否かを判定させ、
    (a)書込みアドレスが該特定のアドレスであると判定した場合には、該複数のアドレスのそれぞれに格納されているカウント値のうち最小値が格納されているアドレスに、該複数のカウント値の最大値をインクリメントした値を書き込ませ、
    (b)読出しアドレスが該特定のアドレスであると判定した場合には、該複数のアドレスのそれぞれに格納されているカウント値のうち最大値を読み出させ、
    該最小値及び該最大値の判定において、該プロセッサに対し、該複数のカウンタのアドレスの範囲内で所定順にカウント値を読み出させ、今回読み出したカウント値が前回読み出したカウント値よりも減少した場合には、今回読み出したカウント値を該最小値とみなさせ、前回読み出したカウント値を該最大値とみなさせ、この減少がない場合には、該特定のアドレスのカウンタのカウント値を最小値とみなさせ、
    該複数のカウンタの初期値は互いに同一値であることを特徴とする不揮発性メモリドライバ。
  2. 該複数のカウント値のそれぞれは、規則的に変化するアドレスのそれぞれに格納されていることを特徴とする請求項1に記載の不揮発性メモリドライバ。
  3. 該プロセッサに対し、ステップ(a)において、該最大値が所定値である場合、該複数のアドレスのそれぞれにカウント範囲の最小値を書き込ませる、
    ことを特徴とする請求項1又は2に記載の不揮発性メモリドライバ。
  4. プロセッサと、書換回数が制限されるメモリと、請求項1乃至3のいずれか1つに記載の不揮発性メモリドライバが格納された記憶手段と、を有することを特徴とする電子機器。
JP2008318099A 2008-12-15 2008-12-15 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法 Expired - Fee Related JP5410083B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008318099A JP5410083B2 (ja) 2008-12-15 2008-12-15 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008318099A JP5410083B2 (ja) 2008-12-15 2008-12-15 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法

Publications (2)

Publication Number Publication Date
JP2010140580A JP2010140580A (ja) 2010-06-24
JP5410083B2 true JP5410083B2 (ja) 2014-02-05

Family

ID=42350585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008318099A Expired - Fee Related JP5410083B2 (ja) 2008-12-15 2008-12-15 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法

Country Status (1)

Country Link
JP (1) JP5410083B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6931936B2 (ja) * 2016-01-25 2021-09-08 株式会社ユピテル 装置およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4227149B2 (ja) * 2006-04-19 2009-02-18 三菱電機株式会社 電子制御装置の情報記憶方法
JP2008146255A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
JP2008181203A (ja) * 2007-01-23 2008-08-07 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法

Also Published As

Publication number Publication date
JP2010140580A (ja) 2010-06-24

Similar Documents

Publication Publication Date Title
US8055859B2 (en) Apparatus and method for providing atomicity with respect to request of write operation for successive sector
WO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
KR20040076589A (ko) 메모리 카드
US7904674B2 (en) Method for controlling semiconductor memory device
CN109918024B (zh) 存储管理方法、装置、单片机设备和可读存储介质
US9971682B2 (en) Wear-leveling system and method for reducing stress on memory device using erase counters
JP2006003966A (ja) フラッシュメモリの書込方法
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP5410083B2 (ja) 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4710056B2 (ja) 情報処理装置、フラッシュメモリ管理方法およびフラッシュメモリ管理プログラム
JP5521437B2 (ja) 携帯端末装置、ソフトウェア更新方法及びプログラム
JP2010256944A (ja) Nand型フラッシュメモリ保守装置及びnand型フラッシュメモリ保守プログラム及びnand型フラッシュメモリ保守方法
JP4910402B2 (ja) 不揮発性メモリの書き換え装置及び書き換え方法
JP4888333B2 (ja) フラッシュディスク装置
JP2004296014A (ja) 不揮発性メモリの消去回数平準化方法
JP5787095B2 (ja) 不揮発性メモリへのデータ記憶方法
JP2009271848A (ja) ファイルシステム及びデータ管理方法
JP2019074797A (ja) 不揮発性メモリのデータ書換方法及び半導体装置
JP4213166B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JPH04372224A (ja) 電気的に書き込み消去可能な不揮発性メモリを備えたカウンタ
CN111274168A (zh) 处理装置和更改脚位功能方法
JP2005276288A (ja) 不揮発性記憶装置の寿命管理方法
JP2024084972A (ja) ファイルの創生方法、セキュアエレメントおよびicカード
JP2007334915A (ja) メモリカード

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20130426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130830

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131106

R150 Certificate of patent or registration of utility model

Ref document number: 5410083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees