JPH09306186A - フラッシュ・メモリ制御装置および方法 - Google Patents

フラッシュ・メモリ制御装置および方法

Info

Publication number
JPH09306186A
JPH09306186A JP12382796A JP12382796A JPH09306186A JP H09306186 A JPH09306186 A JP H09306186A JP 12382796 A JP12382796 A JP 12382796A JP 12382796 A JP12382796 A JP 12382796A JP H09306186 A JPH09306186 A JP H09306186A
Authority
JP
Japan
Prior art keywords
flash memory
unit
erase count
erase
count
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.)
Pending
Application number
JP12382796A
Other languages
English (en)
Inventor
Genshin Tadaki
源真 只木
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP12382796A priority Critical patent/JPH09306186A/ja
Publication of JPH09306186A publication Critical patent/JPH09306186A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Read Only Memory (AREA)

Abstract

(57)【要約】 【課題】 フラッシュ・メモリの寿命の向上。 【解決手段】 フラッシュ・メモリの各ユニットのイレ
ーズ回数をサーチする(S402)。これは、フラッシ
ュ・メモリの各ユニットに格されているイレーズ回数を
読み取る処理である。そして、そのイレーズ回数を昇順
もしくは降順にソートする(S404)。そして、ソー
トした結果に従って、イレーズ回数の多いユニットと少
ないユニットを交換する(S406)。フラッシュ・メ
モリのデータ領域とフリー領域のみではなく、コード領
域を含めてイレーズ回数の均一化を行うことができ、フ
ラッシュ・メモリの寿命を延ばすことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フラッシュ・メモ
リの制御に関し、特にフラッシュ・メモリの寿命をのば
すことのできる制御に関する。
【0002】
【従来の技術】従来から、電源がオフしても記憶が消え
ないフラッシュ・メモリを、例えばディスク記憶装置の
ようなブロック型記憶装置と同様の役割で用いている。
そして、フラッシュ・メモリへのアクセスを制御してい
るソフトウェアにより、フラッシュメモリへのインタフ
ェースを、見かけ上ブロック型記憶装置と同様にしてい
る。
【0003】さて、フラッシュ・メモリの寿命は、その
ユニット(ブロック)毎のイレーズ(消去)回数により
定まる。このため、上記フラッシュ・メモリへのアクセ
スを制御するソフトウェアは、フラッシュ・メモリの内
容をコード領域、データ領域、フリー領域に分け、デー
タ領域とフリー領域のユニット毎のイレーズ回数を均一
にするように制御することにより、フラッシュ・メモリ
の寿命の向上していた。
【0004】この制御は、フラッシュ・メモリへのアク
セスを制御するプログラムにより行われている。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来例では、コード領域がフラッシュ・メモリの大半を占
める場合や、データ領域によってアクセス頻度に大差が
ある場合には、データ領域とフリー領域のみのイレーズ
回数を均一にしても、その領域のイレーズの回数が耐久
回数を超えてしまうと、フラッシュ・メモリ全体の平均
イレーズ回数がまだそれほどではない場合でも、フラッ
シュ・メモリの全体の寿命がつきてしまうという欠点が
あった。
【0006】本発明の目的は、フラッシュ・メモリを使
用するシステムにおいて、フラッシュ・メモリを制御す
る際、フラッシュ・メモリの寿命を向上することであ
る。
【0007】
【課題を解決するための手段及び作用】上記目的を達成
するために、本発明のフラッシュ・メモリ制御装置およ
び方法は、フラッシュ・メモリを用いた情報処理システ
ムにおいて、システム上の制約により入れ替えできない
ユニットを除き、ユニットのイレーズ回数に応じて、フ
ラッシュ・メモリ全体のユニットを対象に入れ替え処理
を行う。
【0008】そして、前記イレーズ回数は、前記フラッ
シュ・メモリのユニット毎に格納されている。
【0009】前記入れ替え処理は、フラッシュ・メモリ
のユニット毎に格納されている前記イレーズ回数を読み
取り、読み取った前記イレーズ回数をソートし、ソート
したイレーズ回数に応じて、大きいイレーズ回数のユニ
ットの情報を、イレーズ回数の少ないユニットの情報と
入れ替えて行っている。
【0010】本発明はフラッシュ・メモリのデータ領域
とフリー領域のみではなく、コード領域を含めてイレー
ズ回数の均一化を行うことができ、フラッシュ・メモリ
の寿命を延ばすことができる。
【0011】また、本発明は、フラッシュ・メモリの各
ユニットのイレーズ回数をサーチし、その回数の多いユ
ニットと少ないユニットの内容を順に入れ替えている。
【0012】そのため、均一化がきわめて精緻にでき
る。
【0013】そして、フラッシュ・メモリを用いた情報
処理システムにおけるフラッシュ・メモリ制御方法を行
うプログラムを格納した記録媒体を用いることにより、
情報処理システムに簡単に実装することができる。
【0014】
【発明の実施の形態】図面を用いて本発明の実施形態を
説明する。
【0015】図1は、本発明の実施形態を実施するため
の情報処理装置の一構成例である。
【0016】1はCPU、2はLCDなどの表示部、3
はキーボードやディジタイザなどの入力部、4はROM
などの読み取り専用のメモリ、5はフラッシュ・メモ
リ、6はRAMなどの書き換え可能なメモリである。
【0017】ROMなどの読み取り専用メモリ4には、
OS(オペレーティングシステム)、BIOSなど、特
に書き換えの必要のないものを格納する。フラッシュ・
メモリで構成したメモリ5には、アプリケーションプロ
グラムや各種データなど、特に書き換えがあまり発生し
ないものや、保存したいものを格納する。RAMなどの
書き換え自由なメモリ6には、実行するプログラムやデ
ータ等を格納する。
【0018】図2は、本実施実施形態のフラッシュ・メ
モリの一構成例であり、7はフラッシュ・メモリ、8は
フラッシュ・メモリ内のユニットであり、フラッシュ・
メモリを構成する物理的にイレーズ可能な最小単位であ
る。
【0019】さて、ユニット番号について説明する。N
ブロックが存在している場合、ユニット番号は0〜N−
1まで存在している。フラッシュ・メモリへのアクセス
は、論理的ユニット番号を用いて行う。これは、イレー
ズの回数を均一にするために、ユニットの入れ替えが発
生するからである。このため、各ユニットに論理的に割
り振った番号を用いて、フラッシュ・メモリのアクセス
を制御する。しかし、本実施形態で使用しているユニッ
ト番号は、ロー・アドレスにあるユニットから順に割り
振った物理的ユニット番号である。以下の説明で特別に
断らない場合、ユニット番号は物理的ユニット番号であ
る。
【0020】さて、フラッシュ・メモリ7のユニット8
の先頭部分には、そのユニットを制御するために必要な
制御情報が記憶されているユニット制御ブロック9があ
る。このユニット制御ブロック9に記憶されている制御
情報には、少なくともイレーズ回数が含まれている。そ
して、後で説明するが、このユニット制御ブロックは、
ユニットが交換されても交換されず、少なくても対応す
る物理ユニットのイレーズ回数を保持している。
【0021】フラッシュ・メモリの各ユニットのイレー
ズ回数を均一化して、フラッシュ・メモリの耐久性を向
上させる処理について、図3および図4〜図7を用いて
詳しく説明する。
【0022】図3は、本実施形態を実現するためのデー
タ構成の一例である。これは、例えば図1のRAM6に
記憶される。10はユニット番号を格納するunit、
11はユニット番号に対応するイレーズ回数を格納する
countである。これらの格納場所は、ユニット数分
のデータを格納するサイズを持つ。この実施形態の場合
は、N個分の格納場所を有し、各格納場所をcount
やunitの[]の番号で識別して示す。
【0023】図4〜図7は本実施例を実現するイレーズ
回数の均一化する処理のフローチャートである。
【0024】まず、イレーズ回数の均一化処理の概要を
図4のフローチャートを用いて説明する。
【0025】図4において、フラッシュ・メモリの各ユ
ニットのイレーズ回数をサーチする(S402)。これ
は、図2において、各ユニット8のユニット制御ブロッ
ク9に格されているイレーズ回数を、図3のイレーズ回
数の格納場所であるcountに入れる処理である。そ
して、そのイレーズ回数を昇順もしくは降順にソートす
る(S404)。本実施形態では、降順にソートしてい
るが、どちらでも構わない。そして、ソートした結果に
従って、イレーズ回数の多いユニットと少ないユニット
を交換する(S406)。
【0026】次に図4の各ステップの処理を詳細に説明
する。
【0027】まず、イレーズ回数のサーチの処理(S4
02)の詳細に関して、図5のフローチャートを用いて
説明する。
【0028】図5において、イレーズ回数とユニット番
号を格納するためのポインタとなる変数nを0に初期化
する(S502)。ユニットnをサーチする(S50
4)。すなわち、フラッシュ・メモリ中のイレーズ回数
を格納しているアドレスを作成する等の処理を行う。そ
して、作成したアドレスを用いて、フラッシュメモリ中
のユニットnのユニット制御ブロック9のイレーズ回数
格納場所から、そのユニットのイレーズ回数をリードす
る(S506)。リードしたイレーズ回数を図3に示し
たcount[n]に格納する(S508)。格納した
イレーズ回数に対応するユニット番号をunit[n]
に格納する(S510)。次のユニットをサーチするた
めにポインタnをインクリメントする(S512)。全
てのユニットをサーチ済みかどうかを判断して(S51
4)、未サーチの場合はS504へ行き、次のユニット
をサーチする。サーチ済みの場合はリターンする。
【0029】これで、図3に示したcount[n]に
はイレーズ回数がユニット番号順に格納され、unit
[n]にはユニット番号が昇順に格納されたことにな
る。
【0030】次は、図4のイレーズ回数のソートの処理
(S404)に関して、図6のフローチャートを用いて
説明する。
【0031】さて、図6において、ループの最後を示す
変数boundをユニットの数に合わせる(S60
2)。次に入れ替え(swap)が行われたかを示す変
数tを0(入れ替えが行われない)に初期化する(S6
04)。各countとunitのポインタを示す変数
iを0に初期化する(S606)。イレーズ回数を降順
にソートするために、count[i]と隣のcoun
t[i+1]を比較している(S607)。count
[i]が大きい場合にはS614に行き、小さい場合は
S608に行く。S608ではcountに格納されて
いるイレーズ回数を入れ替えている。転送用のバッファ
work1を使用して、count[i]とcount
[i+1]とを入れ替えている。そして、その入れ替え
と対応するようにするため、対応するユニット番号であ
るunit[i]とunit[i+1]とを入れ替えて
いる(S610)。転送用のバッファwork2を使用
している。入れ替えが生じたので、入れ替えが生じたこ
とを示すために、tにiの値を代入する(S612)。
そして、次の隣同士のユニットのイレーズ回数を比較す
るために、ポインタiをインクリメントする(S61
4)。ループの最後であるかどうかを判断するため、i
とboundとを比較する(S616)。最後でない場
合はS606に行き、次の隣同士のユニットと比較を行
う。ループの最後である場合はS618に行く。S61
8では、boundにtを代入する。これを入れ替え
(swap)が起こらなくなるまで行う(S620)。
入れ替えが生じなくなるとtは0である。
【0032】図6に示したソートは、バブルソートを用
いているが、それは例示であり、どのようなアルゴリズ
ムのソート処理でも用いることができるのはいうまでも
ない。
【0033】これで、図3のcount11にはイレー
ズ回数が降順に格納され、unit10にユニット番号
がcountに格納されているイレーズ回数に対応する
ように格納されたことになる。
【0034】次は、図4のユニットの交換処理(S40
6)に関して図7を用いて説明する。
【0035】変数iはイレーズ回数の多いユニットを示
すために0に初期化し、変数jは少ないユニットを示す
ために最大ユニット番号に初期化する(S702)。ユ
ニット番号[i]のユニットと[j]のユニットを交換
する(S704)。実際には、転送のために、RAM等
の書き換え可能のメモリにユニットと同じ容量の領域を
バッファとして用意しておき、そのメモリを介してコピ
ーを行う必要がある。次のユニットを交換するために、
変数iをインクリメントし、変数jをデクリメントする
(S706)。全てのユニットが交換済みかどうかを判
断する(S708)。未交換の場合はS704へ行き、
次のユニットを交換する。交換済みの場合はリターンす
る。
【0036】ここで、このユニットの交換の処理に関し
て補足説明する。ユニット同士の交換の際、ユニット内
の全領域を交換するのではない。前述したように各ユニ
ットには、ユニットの先頭にイレーズ回数等のユニット
制御ブロックが格納されている。このユニット制御ブロ
ックまでも交換すると、各物理ユニットのイレーズ回数
が分からなくなるので、これは交換しない。さらに、上
位のソフトウェア・レイヤであるBIOS、OSによっ
ては、交換してはいけないユニットが存在することもあ
る。このため、使用するBIOSやOS依存して、ユニ
ット交換を行う必要がある。
【0037】さて、この入れ替えは、この入れ替え処理
によりイレーズ回数が増えることになるので、必要最小
限に行う必要がある。このため、例えば、イレーズ回数
の最大と最小がある所定の数以上となったときに、説明
した入れ替え処理を行うようにする。
【0038】本発明は、複数の機器から構成されるシス
テムに適用しても、1つの機器からなる装置に適用して
もよい。また、本発明は、システムあるいは装置にプロ
グラムを供給することによって達成される場合にも適用
されることは言うまでもない。この場合、本発明を達成
するためのプログラムを格納した記憶媒体をシステムあ
るいは装置が読み出すことによって、上記説明した本発
明の機能を実現し、本発明の効果を享受することができ
る。
【0039】
【発明の効果】以上説明したように、本発明によれば、
フラッシュ・メモリのデータ領域とフリー領域のみでは
なく、コード領域を含めてイレーズ回数の均一化を行う
手段を設けることにより、フラッシュ・メモリ全体のイ
レーズ回数の均一化を図ることができる。
【0040】また、他の発明によれば、フラッシュ・メ
モリの各ユニットのイレーズ回数をサーチし、その回数
の多いユニットと少ないユニットの内容を順に入れ替え
るようにする手段を設けることにより、フラッシュ・メ
モリ全体のイレーズ回数の均一化を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施形態を適用する情報処理装置の一
構成例を示す図である。
【図2】本発明の実施形態を適用するフラッシュ・メモ
リの一構成例を示す図である。
【図3】本発明の実施形態を実現するデータ構成の一例
を示す図である。
【図4】本発明の実施形態を実現するイレーズ回数の均
一にする処理の概略を示すのフローチャートである。
【図5】本発明の実施形態のサーチ処理を示すフローチ
ャートである。
【図6】本発明の実施形態のソート処理を示すフローチ
ャートである。
【図7】本発明の実施形態のユニットの交換処理を示す
フローチャートである。
【符号の説明】
1 CPU 2 表示部 3 入力部 4 ROMなどの読み取り専用メモリ 5 フラッシュ・メモリ 6 RAMなどの書き換え可能メモリ 7 フラッシュ・メモリ 8 フラッシュ・メモリを構成するイレーズ可能な最小
単位であるユニット 9 ユニット制御ブロック 10 物理的ユニット番号のunit 11 イレーズ回数のcount

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 フラッシュ・メモリを用いた情報処理シ
    ステムにおいて、 前記システム上の制約により入れ替えできないユニット
    を除き、ユニットのイレーズ回数に応じて、フラッシュ
    ・メモリ全体のユニットを対象に入れ替え処理を行うこ
    とを特徴とするフラッシュ・メモリ制御装置。
  2. 【請求項2】 前記イレーズ回数は、前記フラッシュ・
    メモリのユニット毎に格納されていることを特徴とする
    請求項1記載のフラッシュ・メモリ制御装置。
  3. 【請求項3】 前記入れ替え処理は、 フラッシュ・メモリのユニット毎に格納されている前記
    イレーズ回数を読み取り、 読み取った前記イレーズ回数をソートし、 ソートしたイレーズ回数に応じて、大きいイレーズ回数
    のユニットの情報を、イレーズ回数の少ないユニットの
    情報と入れ替えて行うことを特徴とする請求項2記載の
    フラッシュ・メモリ制御装置。
  4. 【請求項4】 フラッシュ・メモリを用いた情報処理シ
    ステムにおけるフラッシュ・メモリ制御方法において、 前記システム上の制約により入れ替えできないユニット
    を除き、ユニットのイレーズ回数に応じて、フラッシュ
    ・メモリ全体のユニットを対象に入れ替え処理を行うこ
    とを特徴とするフラッシュ・メモリ制御方法。
  5. 【請求項5】 前記イレーズ回数は、前記フラッシュ・
    メモリのユニット毎に格納されていることを特徴とする
    請求項4記載のフラッシュ・メモリ制御方法。
  6. 【請求項6】 前記入れ替え処理は、 フラッシュ・メモリのユニット毎に格納されている前記
    イレーズ回数を読み取り、 読み取った前記イレーズ回数をソートし、 ソートしたイレーズ回数に応じて、大きいイレーズ回数
    のユニットの情報を、イレーズ回数の少ないユニットの
    情報と入れ替えて行うことを特徴とする請求項5記載の
    フラッシュ・メモリ制御方法。
  7. 【請求項7】 フラッシュ・メモリを用いた情報処理シ
    ステムにおけるフラッシュ・メモリ制御方法を行うプロ
    グラムを格納した記録媒体において、 前記システム上の制約により入れ替えできないユニット
    を除き、ユニットのイレーズ回数に応じて、フラッシュ
    ・メモリ全体のユニットを対象に入れ替え処理を行うこ
    とを特徴とするフラッシュ・メモリ制御のプログラムを
    格納した記録媒体。
JP12382796A 1996-05-17 1996-05-17 フラッシュ・メモリ制御装置および方法 Pending JPH09306186A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12382796A JPH09306186A (ja) 1996-05-17 1996-05-17 フラッシュ・メモリ制御装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12382796A JPH09306186A (ja) 1996-05-17 1996-05-17 フラッシュ・メモリ制御装置および方法

Publications (1)

Publication Number Publication Date
JPH09306186A true JPH09306186A (ja) 1997-11-28

Family

ID=14870355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12382796A Pending JPH09306186A (ja) 1996-05-17 1996-05-17 フラッシュ・メモリ制御装置および方法

Country Status (1)

Country Link
JP (1) JPH09306186A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963474A (en) * 1998-05-11 1999-10-05 Fujitsu Limited Secondary storage device using nonvolatile semiconductor memory
US6687815B1 (en) * 2000-02-01 2004-02-03 Sun Microsystems, Inc. Method and apparatus for storing non-volatile configuration information
JP2010079860A (ja) * 2008-09-29 2010-04-08 Hitachi Ltd 記憶装置およびメモリ制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963474A (en) * 1998-05-11 1999-10-05 Fujitsu Limited Secondary storage device using nonvolatile semiconductor memory
US6687815B1 (en) * 2000-02-01 2004-02-03 Sun Microsystems, Inc. Method and apparatus for storing non-volatile configuration information
JP2010079860A (ja) * 2008-09-29 2010-04-08 Hitachi Ltd 記憶装置およびメモリ制御方法

Similar Documents

Publication Publication Date Title
CN101154189B (zh) 支持不同存储单元类型的非易失性存储器的设备和方法
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
US5717886A (en) Semiconductor disk device and memory management method
KR100319598B1 (ko) 플래시메모리어레이액세스방법및장치
US7788441B2 (en) Method for initializing and operating flash memory file system and computer-readable medium storing related program
US20080235306A1 (en) Garbage collection in nonvolatile memories using data attributes, computer program products and methods of operating the same
US20080250220A1 (en) Memory system
EP0544252A2 (en) Data management system for programming-limited type semiconductor memory and IC memory card having the data management system
KR20110056424A (ko) 비-휘발성 저장 시스템의 소모 레벨링
KR20070015521A (ko) 메모리 할당
US20050216687A1 (en) Data managing method and data access system for storing all management data in management bank of non-volatile memory
JP2010015591A (ja) 不揮発性記憶システムにおける最高頻度消去ブロックの追跡
KR20190079672A (ko) 정보 처리 장치, 메모리 액세스 방법 및 컴퓨터 프로그램
JPH1185609A (ja) 半導体記憶装置及びそのデータ管理方法
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
US6757806B2 (en) Method for converting addresses in a semiconductor memory device and apparatus therefor
US7525870B2 (en) Methods for optimizing page selection in flash-memory devices
JP2007141376A (ja) 半導体記憶装置及びその制御方法
US5748537A (en) Method and apparatus for storing items in flash memory
US8060680B2 (en) Method of allocating memory
JPH09306186A (ja) フラッシュ・メモリ制御装置および方法
US20200012599A1 (en) Apparatus and method and computer program product for controlling data access
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
JP4661566B2 (ja) アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060828