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
Links
Landscapes
- Read Only Memory (AREA)
Abstract
(57)【要約】
【課題】 フラッシュ・メモリの寿命の向上。
【解決手段】 フラッシュ・メモリの各ユニットのイレ
ーズ回数をサーチする(S402)。これは、フラッシ
ュ・メモリの各ユニットに格されているイレーズ回数を
読み取る処理である。そして、そのイレーズ回数を昇順
もしくは降順にソートする(S404)。そして、ソー
トした結果に従って、イレーズ回数の多いユニットと少
ないユニットを交換する(S406)。フラッシュ・メ
モリのデータ領域とフリー領域のみではなく、コード領
域を含めてイレーズ回数の均一化を行うことができ、フ
ラッシュ・メモリの寿命を延ばすことができる。
ーズ回数をサーチする(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などの書き換え可能なメモリである。
はキーボードやディジタイザなどの入力部、4はROM
などの読み取り専用のメモリ、5はフラッシュ・メモ
リ、6はRAMなどの書き換え可能なメモリである。
【0017】ROMなどの読み取り専用メモリ4には、
OS(オペレーティングシステム)、BIOSなど、特
に書き換えの必要のないものを格納する。フラッシュ・
メモリで構成したメモリ5には、アプリケーションプロ
グラムや各種データなど、特に書き換えがあまり発生し
ないものや、保存したいものを格納する。RAMなどの
書き換え自由なメモリ6には、実行するプログラムやデ
ータ等を格納する。
OS(オペレーティングシステム)、BIOSなど、特
に書き換えの必要のないものを格納する。フラッシュ・
メモリで構成したメモリ5には、アプリケーションプロ
グラムや各種データなど、特に書き換えがあまり発生し
ないものや、保存したいものを格納する。RAMなどの
書き換え自由なメモリ6には、実行するプログラムやデ
ータ等を格納する。
【0018】図2は、本実施実施形態のフラッシュ・メ
モリの一構成例であり、7はフラッシュ・メモリ、8は
フラッシュ・メモリ内のユニットであり、フラッシュ・
メモリを構成する物理的にイレーズ可能な最小単位であ
る。
モリの一構成例であり、7はフラッシュ・メモリ、8は
フラッシュ・メモリ内のユニットであり、フラッシュ・
メモリを構成する物理的にイレーズ可能な最小単位であ
る。
【0019】さて、ユニット番号について説明する。N
ブロックが存在している場合、ユニット番号は0〜N−
1まで存在している。フラッシュ・メモリへのアクセス
は、論理的ユニット番号を用いて行う。これは、イレー
ズの回数を均一にするために、ユニットの入れ替えが発
生するからである。このため、各ユニットに論理的に割
り振った番号を用いて、フラッシュ・メモリのアクセス
を制御する。しかし、本実施形態で使用しているユニッ
ト番号は、ロー・アドレスにあるユニットから順に割り
振った物理的ユニット番号である。以下の説明で特別に
断らない場合、ユニット番号は物理的ユニット番号であ
る。
ブロックが存在している場合、ユニット番号は0〜N−
1まで存在している。フラッシュ・メモリへのアクセス
は、論理的ユニット番号を用いて行う。これは、イレー
ズの回数を均一にするために、ユニットの入れ替えが発
生するからである。このため、各ユニットに論理的に割
り振った番号を用いて、フラッシュ・メモリのアクセス
を制御する。しかし、本実施形態で使用しているユニッ
ト番号は、ロー・アドレスにあるユニットから順に割り
振った物理的ユニット番号である。以下の説明で特別に
断らない場合、ユニット番号は物理的ユニット番号であ
る。
【0020】さて、フラッシュ・メモリ7のユニット8
の先頭部分には、そのユニットを制御するために必要な
制御情報が記憶されているユニット制御ブロック9があ
る。このユニット制御ブロック9に記憶されている制御
情報には、少なくともイレーズ回数が含まれている。そ
して、後で説明するが、このユニット制御ブロックは、
ユニットが交換されても交換されず、少なくても対応す
る物理ユニットのイレーズ回数を保持している。
の先頭部分には、そのユニットを制御するために必要な
制御情報が記憶されているユニット制御ブロック9があ
る。このユニット制御ブロック9に記憶されている制御
情報には、少なくともイレーズ回数が含まれている。そ
して、後で説明するが、このユニット制御ブロックは、
ユニットが交換されても交換されず、少なくても対応す
る物理ユニットのイレーズ回数を保持している。
【0021】フラッシュ・メモリの各ユニットのイレー
ズ回数を均一化して、フラッシュ・メモリの耐久性を向
上させる処理について、図3および図4〜図7を用いて
詳しく説明する。
ズ回数を均一化して、フラッシュ・メモリの耐久性を向
上させる処理について、図3および図4〜図7を用いて
詳しく説明する。
【0022】図3は、本実施形態を実現するためのデー
タ構成の一例である。これは、例えば図1のRAM6に
記憶される。10はユニット番号を格納するunit、
11はユニット番号に対応するイレーズ回数を格納する
countである。これらの格納場所は、ユニット数分
のデータを格納するサイズを持つ。この実施形態の場合
は、N個分の格納場所を有し、各格納場所をcount
やunitの[]の番号で識別して示す。
タ構成の一例である。これは、例えば図1のRAM6に
記憶される。10はユニット番号を格納するunit、
11はユニット番号に対応するイレーズ回数を格納する
countである。これらの格納場所は、ユニット数分
のデータを格納するサイズを持つ。この実施形態の場合
は、N個分の格納場所を有し、各格納場所をcount
やunitの[]の番号で識別して示す。
【0023】図4〜図7は本実施例を実現するイレーズ
回数の均一化する処理のフローチャートである。
回数の均一化する処理のフローチャートである。
【0024】まず、イレーズ回数の均一化処理の概要を
図4のフローチャートを用いて説明する。
図4のフローチャートを用いて説明する。
【0025】図4において、フラッシュ・メモリの各ユ
ニットのイレーズ回数をサーチする(S402)。これ
は、図2において、各ユニット8のユニット制御ブロッ
ク9に格されているイレーズ回数を、図3のイレーズ回
数の格納場所であるcountに入れる処理である。そ
して、そのイレーズ回数を昇順もしくは降順にソートす
る(S404)。本実施形態では、降順にソートしてい
るが、どちらでも構わない。そして、ソートした結果に
従って、イレーズ回数の多いユニットと少ないユニット
を交換する(S406)。
ニットのイレーズ回数をサーチする(S402)。これ
は、図2において、各ユニット8のユニット制御ブロッ
ク9に格されているイレーズ回数を、図3のイレーズ回
数の格納場所であるcountに入れる処理である。そ
して、そのイレーズ回数を昇順もしくは降順にソートす
る(S404)。本実施形態では、降順にソートしてい
るが、どちらでも構わない。そして、ソートした結果に
従って、イレーズ回数の多いユニットと少ないユニット
を交換する(S406)。
【0026】次に図4の各ステップの処理を詳細に説明
する。
する。
【0027】まず、イレーズ回数のサーチの処理(S4
02)の詳細に関して、図5のフローチャートを用いて
説明する。
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へ行き、次のユニット
をサーチする。サーチ済みの場合はリターンする。
号を格納するためのポインタとなる変数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]にはユニット番号が昇順に格納されたことにな
る。
はイレーズ回数がユニット番号順に格納され、unit
[n]にはユニット番号が昇順に格納されたことにな
る。
【0030】次は、図4のイレーズ回数のソートの処理
(S404)に関して、図6のフローチャートを用いて
説明する。
(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である。
変数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に格納されているイレーズ回数に対応する
ように格納されたことになる。
ズ回数が降順に格納され、unit10にユニット番号
がcountに格納されているイレーズ回数に対応する
ように格納されたことになる。
【0034】次は、図4のユニットの交換処理(S40
6)に関して図7を用いて説明する。
6)に関して図7を用いて説明する。
【0035】変数iはイレーズ回数の多いユニットを示
すために0に初期化し、変数jは少ないユニットを示す
ために最大ユニット番号に初期化する(S702)。ユ
ニット番号[i]のユニットと[j]のユニットを交換
する(S704)。実際には、転送のために、RAM等
の書き換え可能のメモリにユニットと同じ容量の領域を
バッファとして用意しておき、そのメモリを介してコピ
ーを行う必要がある。次のユニットを交換するために、
変数iをインクリメントし、変数jをデクリメントする
(S706)。全てのユニットが交換済みかどうかを判
断する(S708)。未交換の場合はS704へ行き、
次のユニットを交換する。交換済みの場合はリターンす
る。
すために0に初期化し、変数jは少ないユニットを示す
ために最大ユニット番号に初期化する(S702)。ユ
ニット番号[i]のユニットと[j]のユニットを交換
する(S704)。実際には、転送のために、RAM等
の書き換え可能のメモリにユニットと同じ容量の領域を
バッファとして用意しておき、そのメモリを介してコピ
ーを行う必要がある。次のユニットを交換するために、
変数iをインクリメントし、変数jをデクリメントする
(S706)。全てのユニットが交換済みかどうかを判
断する(S708)。未交換の場合はS704へ行き、
次のユニットを交換する。交換済みの場合はリターンす
る。
【0036】ここで、このユニットの交換の処理に関し
て補足説明する。ユニット同士の交換の際、ユニット内
の全領域を交換するのではない。前述したように各ユニ
ットには、ユニットの先頭にイレーズ回数等のユニット
制御ブロックが格納されている。このユニット制御ブロ
ックまでも交換すると、各物理ユニットのイレーズ回数
が分からなくなるので、これは交換しない。さらに、上
位のソフトウェア・レイヤであるBIOS、OSによっ
ては、交換してはいけないユニットが存在することもあ
る。このため、使用するBIOSやOS依存して、ユニ
ット交換を行う必要がある。
て補足説明する。ユニット同士の交換の際、ユニット内
の全領域を交換するのではない。前述したように各ユニ
ットには、ユニットの先頭にイレーズ回数等のユニット
制御ブロックが格納されている。このユニット制御ブロ
ックまでも交換すると、各物理ユニットのイレーズ回数
が分からなくなるので、これは交換しない。さらに、上
位のソフトウェア・レイヤであるBIOS、OSによっ
ては、交換してはいけないユニットが存在することもあ
る。このため、使用するBIOSやOS依存して、ユニ
ット交換を行う必要がある。
【0037】さて、この入れ替えは、この入れ替え処理
によりイレーズ回数が増えることになるので、必要最小
限に行う必要がある。このため、例えば、イレーズ回数
の最大と最小がある所定の数以上となったときに、説明
した入れ替え処理を行うようにする。
によりイレーズ回数が増えることになるので、必要最小
限に行う必要がある。このため、例えば、イレーズ回数
の最大と最小がある所定の数以上となったときに、説明
した入れ替え処理を行うようにする。
【0038】本発明は、複数の機器から構成されるシス
テムに適用しても、1つの機器からなる装置に適用して
もよい。また、本発明は、システムあるいは装置にプロ
グラムを供給することによって達成される場合にも適用
されることは言うまでもない。この場合、本発明を達成
するためのプログラムを格納した記憶媒体をシステムあ
るいは装置が読み出すことによって、上記説明した本発
明の機能を実現し、本発明の効果を享受することができ
る。
テムに適用しても、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
単位であるユニット 9 ユニット制御ブロック 10 物理的ユニット番号のunit 11 イレーズ回数のcount
Claims (7)
- 【請求項1】 フラッシュ・メモリを用いた情報処理シ
ステムにおいて、 前記システム上の制約により入れ替えできないユニット
を除き、ユニットのイレーズ回数に応じて、フラッシュ
・メモリ全体のユニットを対象に入れ替え処理を行うこ
とを特徴とするフラッシュ・メモリ制御装置。 - 【請求項2】 前記イレーズ回数は、前記フラッシュ・
メモリのユニット毎に格納されていることを特徴とする
請求項1記載のフラッシュ・メモリ制御装置。 - 【請求項3】 前記入れ替え処理は、 フラッシュ・メモリのユニット毎に格納されている前記
イレーズ回数を読み取り、 読み取った前記イレーズ回数をソートし、 ソートしたイレーズ回数に応じて、大きいイレーズ回数
のユニットの情報を、イレーズ回数の少ないユニットの
情報と入れ替えて行うことを特徴とする請求項2記載の
フラッシュ・メモリ制御装置。 - 【請求項4】 フラッシュ・メモリを用いた情報処理シ
ステムにおけるフラッシュ・メモリ制御方法において、 前記システム上の制約により入れ替えできないユニット
を除き、ユニットのイレーズ回数に応じて、フラッシュ
・メモリ全体のユニットを対象に入れ替え処理を行うこ
とを特徴とするフラッシュ・メモリ制御方法。 - 【請求項5】 前記イレーズ回数は、前記フラッシュ・
メモリのユニット毎に格納されていることを特徴とする
請求項4記載のフラッシュ・メモリ制御方法。 - 【請求項6】 前記入れ替え処理は、 フラッシュ・メモリのユニット毎に格納されている前記
イレーズ回数を読み取り、 読み取った前記イレーズ回数をソートし、 ソートしたイレーズ回数に応じて、大きいイレーズ回数
のユニットの情報を、イレーズ回数の少ないユニットの
情報と入れ替えて行うことを特徴とする請求項5記載の
フラッシュ・メモリ制御方法。 - 【請求項7】 フラッシュ・メモリを用いた情報処理シ
ステムにおけるフラッシュ・メモリ制御方法を行うプロ
グラムを格納した記録媒体において、 前記システム上の制約により入れ替えできないユニット
を除き、ユニットのイレーズ回数に応じて、フラッシュ
・メモリ全体のユニットを対象に入れ替え処理を行うこ
とを特徴とするフラッシュ・メモリ制御のプログラムを
格納した記録媒体。
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)
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 | 記憶装置およびメモリ制御方法 |
-
1996
- 1996-05-17 JP JP12382796A patent/JPH09306186A/ja active Pending
Cited By (3)
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 |