JPH07153285A - 不揮発性フラッシュメモリの制御方法とその装置 - Google Patents

不揮発性フラッシュメモリの制御方法とその装置

Info

Publication number
JPH07153285A
JPH07153285A JP29814993A JP29814993A JPH07153285A JP H07153285 A JPH07153285 A JP H07153285A JP 29814993 A JP29814993 A JP 29814993A JP 29814993 A JP29814993 A JP 29814993A JP H07153285 A JPH07153285 A JP H07153285A
Authority
JP
Japan
Prior art keywords
storage unit
flash memory
data
writing
logical
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
JP29814993A
Other languages
English (en)
Inventor
Hiromasa Yamamoto
博征 山本
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.)
SANSEI DENSHI JAPAN KK
Original Assignee
SANSEI DENSHI JAPAN KK
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 SANSEI DENSHI JAPAN KK filed Critical SANSEI DENSHI JAPAN KK
Priority to JP29814993A priority Critical patent/JPH07153285A/ja
Priority to KR1019940027719A priority patent/KR950015082A/ko
Publication of JPH07153285A publication Critical patent/JPH07153285A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

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

Abstract

(57)【要約】 【目的】 不揮発性フラッシュメモリの使用寿命を長く
することを目的とする。 【構成】 CPU1は、全体の制御を行う。アドレスデ
コードRAM4は、CPU1から出力されるフラッシュ
メモリアドレスのブロック&ページ・アドレス8を、フ
ラッシュメモリ5に対するブロック&ページ・アドレス
10に変換する。フラッシュメモリの下位アドレス9は
フラッシュメモリ5に与えられる。この構成で、CPU
1から与えられるブロック&ページ・アドレス8を、ブ
ロック&ページ・アドレス10に変換しフラッシュメモ
リをアクセスする。RAM3に、フラッシュメモリ5の
各ぺージに対応する書込み頻度計数記憶領域を設定し、
書き込み発生頻度を所定の期間計測する。RAM3の各
ぺージに対応する書込み頻度をチェックし、フラッシュ
メモリの各ブロックに対する書込み回数が一様になるよ
う各ページを割り当て、アドレスデコードRAM4に設
定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、不揮発性フラッシュメ
モリの制御方式とその装置に関する。
【0002】
【従来の技術】一般に、フラッシュメモリやNAND型EEPR
OMと呼ばれる不揮発性メモリ(以下、フラッシュメモリ
と呼ぶ)は、書き込まれたデータの消去単位であるブロ
ックサイズは、書込み単位よりも大きい。この書き込み
単位は、例えば、1バイト〜数百バイトである。以下、
書き込み単位をページと呼ぶ。また、ブロックは、ペー
ジを幾つか集めたものである。一般に、電気的消去可能
なフラッシュメモリでは、書込み時は電荷を格納するゲ
ート領域に高電圧を印加することによって、トンネリン
グ効果を発生させて、そのメモリゲート領域に電荷を移
動させ書込みを行っている。ここで、高電圧の印加を多
く繰り返すことによって、半導体特性の劣化が起こり、
最終的に使用できない状態となるというフラッシュメモ
リ固有の使用上の問題点がある。
【0003】図6は、従来の各ブロックアドレスに対し
て、各ページメモリを割り当てた例である。ここでは、
ブロック数が「3」で、ページ数が「12」のフラッシ
ュメモリの例を示している。また、各ブロックアドレス
60は「1」「2」「3」で、ページアドレス61は
「1」〜「12」まで順に付けれれている。従来、各ブ
ロックに対する各ページの割当は、図6に示すように、
単純に各ブロックアドレス60に、各ページをページア
ドレス順に割り当てていた。
【0004】一般に、消去可能なフラッシュメモリを使
ったシステムでは、そのフラッシュメモリに対する書込
み回数の分布が一様ではなく、特定のメモリセルに対し
て書込みアクセスが集中する場合が多い。例えば、実際
の情報処理システムにフラッシュメモリを搭載して、あ
るアプリケーションを実行させ、各ページアドレス70
に対する書込み回数71をカウントした例を図7に示
す。図7から、各ページアドレス70に対する書込み回
数71は一様分布でないことがわかる。図8は、図7の
結果から各ブロック80に対する書込み回数の合計を計
算した例である。図7から明らかのように、ブロック1
での書込み総数81が「42」と最も多く、ブロック3
での書込み総数81が「10」と最も少ない。このた
め、このフラッシュメモリを適用したシステムは、ブロ
ック1に対する書込みが集中しているので、ブロック1
のメモリセルから寿命を迎える可能性が非常に高い。
【0005】また、フラッシュメモリの一部のページを
書き換える場合は、そのページを含むブロック全体のデ
ータ消去処理が必要であった。
【0006】
【発明が解決しようとする課題】従って、ブロック2、
3はまだ、各メモリセルの使用寿命を迎えていないにも
かかわらず、ブロック1のメモリセルに書込みアクセス
が集中し、早く寿命を迎えるため、結果としてそれがフ
ラッシュメモリ全体の寿命となっていた。
【0007】また、フラッシュメモリの一部のページを
書き換える場合は、そのページを含むブロック全体のデ
ータ消去処理が必要であったため、書込みの処理が低速
であるという問題があった。
【0008】本発明は上記従来例に鑑みてなされたもの
で、フラッシュメモリの寿命を長くする制御方法とその
装置を提供することを目的とする。
【0009】また、別の発明は、フラッシュメモリの書
込み処理を高速に行い、フラッシュメモリの書込み回数
データサイズを最小とするフラッシュメモリの制御方法
とその装置を提供することを目的とする。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明の不揮発性フラッシュメモリの制御方法とそ
の装置は以下の構成を用意する。即ち、不揮発性フラッ
シュメモリの各記憶単位に対する書込み回数を計数する
計数工程と、所定数の記憶単位を含む各ブロックに対す
る書込み回数が一様になるように、各ブロックに対する
前記記憶単位の割当を決定する割当工程と、前記決定さ
れた各記憶単位の割当に基づいて、前記記憶単位の論理
記憶単位アドレスを物理記憶単位アドレスに変換する変
換工程とを備える.また、別の発明は、記憶単位データ
を、未使用の記憶単位に書き込む記憶単位データ書込み
工程と、 前記記憶単位データに対応する論理記憶単位
番号を、所定の記憶単位内の未使用領域に書き込む論理
記憶単位番号書込み工程と、を備える。
【0011】また、別の発明は、記憶単位データと、そ
の記憶単位データに対応する論理記憶単位番号とのペア
データを、未使用の記憶単位に書込む記憶単位データ/
論理記憶単位番号書込み工程を備える。
【0012】また、別の発明は、記憶単位データを、未
使用の記憶単位に書き込む記憶単位データ書込み工程
と、 前記記憶単位データが書込まれた記憶単位の物理
記憶単位番号と、前記物理記憶単位番号に対応する論理
記憶単位番号とのペアデータを、所定の記憶単位の未使
用領域に書込むペアデータ書込み工程とを備える。
【0013】また、別の発明は、不揮発性フラッシュメ
モリの各記憶単位に対する書込み回数を計数する計数手
段と、所定数の記憶単位を含む各ブロックに対する書込
み回数が一様になるように、各ブロックに対する前記記
憶単位の割当を決定する割当手段と、前記決定された各
記憶単位の割当に基づいて、前記記憶単位の論理記憶単
位アドレスを物理記憶単位アドレスに変換する変換手段
とを備える.また、別の発明は、記憶単位データを、未
使用の記憶単位に書き込む記憶単位データ書込み手段
と、前記記憶単位データに対応する論理記憶単位番号
を、所定の記憶単位内の未使用領域に書き込む論理記憶
単位番号書込み手段と、を備える。
【0014】また、別の発明は、記憶単位データと、そ
の記憶単位データに対応する論理記憶単位番号とのペア
データを、未使用の記憶単位に書込む記憶単位データ/
論理記憶単位番号書込み手段を備える。
【0015】また、別の発明は、記憶単位データを、未
使用の記憶単位に書き込む記憶単位データ書込み手段
と、前記記憶単位データが書込まれた記憶単位の物理記
憶単位番号と、前記物理記憶単位番号に対応する論理記
憶単位番号とのペアデータを、所定の記憶単位の未使用
領域に書込むペアデータ書込み手段とを備える。
【0016】
【作用】以上の構成において、本発明の不揮発性フラッ
シュメモリの制御方法とその装置では、不揮発性フラッ
シュメモリの各記憶単位に対する書込み回数を計数し、
所定数の記憶単位を含む各ブロックに対する書込み回数
が一様になるように、各ブロックに対する前記記憶単位
の割当を決定し、前記決定された各記憶単位の割当に基
づいて、前記記憶単位の論理記憶単位アドレスを物理記
憶単位アドレスに変換する.また、別の発明は、記憶単
位データを、未使用の記憶単位に書き込み、前記記憶単
位データに対応する論理記憶単位番号を、所定の記憶単
位内の未使用領域に書き込む。
【0017】また、別の発明は、記憶単位データと、そ
の記憶単位データに対応する論理記憶単位番号とのペア
データを、未使用の記憶単位に書込む。
【0018】また、別の発明は、記憶単位データを、未
使用の記憶単位に書き込み、前記記憶単位データが書込
まれた記憶単位の物理記憶単位番号と、前記物理記憶単
位番号に対応する論理記憶単位番号とのペアデータを、
所定の記憶単位の未使用領域に書込む。
【0019】また、別の発明は、計数手段が、不揮発性
フラッシュメモリの各記憶単位に対する書込み回数を計
数し、所定数の記憶単位を含む各ブロックに対する書込
み回数が一様になるように、各ブロックに対する前記記
憶単位の割当を、割当手段が決定し、前記決定された各
記憶単位の割当に基づいて、前記記憶単位の論理記憶単
位アドレスを物理記憶単位アドレスに、変換手段が変換
する。
【0020】また、別の発明は、記憶単位データを、記
憶単位データ書込み手段が、未使用の記憶単位に書き込
み、前記記憶単位データに対応する論理記憶単位番号
を、論理記憶単位番号書込み手段が、所定の記憶単位内
の未使用領域に書き込む。
【0021】また、別の発明は、記憶単位データと、記
憶単位データ/論理記憶単位番号書込み手段が、その記
憶単位データに対応する論理記憶単位番号とのペアデー
タを、未使用の記憶単位に書込む。
【0022】また、別の発明は、記憶単位データを、記
憶単位データ書込み手段が、未使用の記憶単位に書き込
み、前記記憶単位データが書込まれた記憶単位の物理記
憶単位番号と、前記物理記憶単位番号に対応する論理記
憶単位番号とのペアデータを、所定の記憶単位の未使用
領域に、ペアデータ書込み手段が書込む。
【0023】
【実施例】
(第1の実施例)図1を用いて、本発明の第1の実施例
の概要を説明する。
【0024】1はCPUで、ROM2に格納された制御
プログラムを読みだしながら、解釈・実行することで、
本実施例のフラッシュメモリの処理システムを制御す
る。RAM3は、CPU1の実行用の作業用メモリであ
る。また、バッファメモリ6はフラッシュメモリ5に対
して、データの書込み/読みだしを行うための一時退避
バッファ領域である。ROM2、RAM3、バッファメ
モリ6はCPU1からアドレスバス12を介して、各ア
ドレスが指定されアクセスがなされる。アドレスデコー
ドRAM4は、CPU1から出力されるフラッシュメモ
リアドレスのブロック&ページ・アドレス8を、フラッ
シュメモリ5にたいする実際のブロック&ページ・アド
レス10に変換するRAMである。ここで、残りの下位
のフラッシュメモリアドレス9は直接フラッシュメモリ
5に与えられる。制御線7は、2つの機能を持つ。第1
の機能は、アドレスデコードRAM4にブロック&ペー
ジ・アドレス8を与え、実際のブロック&ページ・アド
レス10に変換するタイミングを与える機能である。第
2の機能は、データバス11を介して、アドレスデコー
ドRAM4自体の格納データの書込み/読みだしのタイ
ミングを与える機能である。アドレスデコードRAM4
を制御線7によって制御するモードは2つある。第1の
モードは、格納データの書込み/読みだしモードであ
る。このモードでは、制御線7を使って、ROM2やR
AM3やバッファメモリ6や不図示のCPU1内の内部
レジスタのデータとの入出力を行う。第2のモードは、
前述したCPU1から与えられるブロック&ページ・ア
ドレス8を、実際のブロック&ページ・アドレス10に
変換するモードである。これら2つのモードはCPU1
によって排他的に選択される。第1のモードは、CPU
1から与えられるブロック&ページ・アドレス8から、
実際のブロック&ページ・アドレス10へ変換する内部
データを設定あるいは変更するために使われる。タイマ
13は、所定の時間ごとにCPU1に対して割り込み要
求を掛ける。その時間間隔は、CPU1によって予め設
定することができる。
【0025】次に、フラッシュメモリ5の構成と機能を
簡潔に説明する。フラッシュメモリは、電気的に書込み
読みだし可能な大規模集積メモリである。このメモリの
各セルのゲート上には、電荷を閉じこめることができ
る”部屋”が作り込まれており、この”部屋”に電荷を
充電させるか否かで”0”、”1”の記憶論理を実現し
ている。このフラッシュメモリにたいする書込みは、各
セルをある単位で集合したページ単位でなされる。ま
た、消去単位は、書込み単位より大きく、幾つかのペー
ジを集めたブロック単位でなされる。読みだしは各セル
のアドレス単位でなされる。書込みは、セルゲートに対
して高電圧を印加することで、例えば、トンネリング効
果を発生させ各セルの”部屋”に電荷を充電することで
なされる。このように書込みは、高電圧を印加しなけれ
ばならないため、現在の半導体の技術レベルでは、フラ
ッシュメモリの寿命はほとんど書込みの累積回数で決め
られ、およそ10の7乗回程度で故障が発生する確率が
高くなる。従って、書込み回数をいかに減らすかが長時
間使用のポイントとなる。
【0026】図2のフローチャートは、この問題を解決
する実施例の処理プロセスを説明するものである。本実
施例での、この問題を解決するポイントは、各ページに
対する書込み頻度分布の一様化を計ることである。すな
わち、書込みが一部のページに集中すれば、そのページ
だけが先に寿命となり、他の使用頻度の低いページがま
だ十分に使用可能であるにもかかわらず、そのシステム
全体が使用できなくなって、全体システムの寿命を短く
していた。ここで、各ページに対する書込み頻度分布の
一様化を計ることできれば、全体システムの寿命が延び
ることになる。
【0027】図2のフローの処理は、所定の一定期間間
隔で実行する。即ち、各ページに対する書込みが発生し
たときに、その書込み累積回数をRAM3に記録するこ
とを続け、所定の一定時間になったら図2の処理を行
う。
【0028】ステップS1では、RAM3に記録されて
いる前記書込み累積回数を回数の大きい順が小さい順に
ソートする。
【0029】図3は、RAM3に記録されている前記書
込み累積回数の例を示す図である。横軸はページ数を示
し、縦軸は書込み回数を示す。そして、これらを大きい
順にソートした結果を図4に示す。ページ数が10、
1、11、3、7、2、6、12、4、9、5、8の順
にソートされている。ソートの手段はCPU1によるソ
ートプログラムの実行によって行う。ソートのアルゴリ
ズムは、例えば、その技術に精通している人には良く知
られているバブルソート・アルゴリズムやクイックソー
ト・アルゴリズムでもよい。
【0030】ソートされたページナンバーは、RAM3
に連続したアドレスに、書込み回数の大きい順に並べら
れる。
【0031】ステップS2以降では、CPU1から与え
られるブロック&ページ・アドレス8から、実際のブロ
ック&ページ・アドレス10へ変換するアドレスデコー
ドRAM4の内部データを設定あるいは変更するアルゴ
リズムである。ここで、使っている変数名を以下に簡単
に説明する。
【0032】P1: 書込み回数の少ないページをさす
ポインタ。
【0033】P2: 書込み回数の大きいページをさす
ポインタ。
【0034】BN: ブロックナンバーを示す。
【0035】ここでは、理解しやすいように、フラッシ
ュメモリ5は、ブロック数は3つで、各ブロックは4ペ
ージから構成されているとする。即ち、ページ数の合計
は12個である。
【0036】ここで、各ブロック毎の書込み回数の合計
が一様になるように、各ブロックに各ページを割当るた
めの基本的考え方は、ソートされたページ数の並びで、
書込み回数の少ないページから順に2つのページを選択
し、そして、書込み回数の大きいページから順に2つの
ページを順に選択し、同じブロック割当てゆくことを、
各ブロックに対し繰り返すことで、各ブロックに割り当
てられたページの書込み回数の合計がおおよそ一様に近
づくことをねらったものである。
【0037】図5は、上記の繰り返し処理を行い、各ブ
ロックに各ページが割り当てられた結果を示す。50は
各ブロック番号を示し、53は各ブロックに割り当てら
れた各ページ番号の並びを示す。そのうち、51は書込
み回数が多い順から連続した2つのページ番号の並びで
あり、他方、52は書込み回数が少ない順から連続した
2つのページ番号の並びを選択したものである。
【0038】次に、図2にもどって、以上説明した処理
を実現するアルゴリズムの各ステップをステップS2か
ら順に説明する。
【0039】ステップS2では、各ブロック毎の書込み
回数の合計が一様になるように、各ブロックに各ページ
を割当るためのアルゴリズムで使用する変数名に対する
初期設定を行う。即ち、書込み回数の少ないページが格
納されているメモリ位置をさすポインタP1に「1」を
設定する。「1」のメモリ位置はソート後、最も書込み
頻度な高いページが格納されているところである。ま
た、書込み回数の多いページが格納されているメモリ位
置をさすポインタP2に「12」を設定する。「12」
のメモリ位置はソート後、最も書込み頻度の少ないペー
ジが格納されているところである。さらに、ブロック番
号を示すBNに「1」を設定する。
【0040】ステップS3では、ブロック番号BNに、
ポインタP2のさすメモリに格納されたページ番号と、
ポインタ(P2―1)のさすメモリに格納されたページ
番号と、ポインタP1のさすメモリに格納されたページ
番号と、ポインタ(P1+1)のさすメモリに格納され
たページ番号とを、割り当てる。そして、アドレスデコ
ードRAM4に、順にそれらのページ番号をデータとし
て書き込む。
【0041】ステップS4では、次のブロック番号BN
に残ったページを割り当てるために、ポインタP2とポ
インタP1にともに「2」を加算する。また、次のブロ
ック番号をポイントするために、ブロック番号BNに
「1」を加算する。
【0042】ステップS5では、ブロック番号BNが3
に等しいか3以下であれば、ステップS3へ戻り、全ブ
ロックに対してページの割当て処理が終わるまで同様の
処理を繰り返す。また、3以上になれば、全てのブロッ
クに対しページの割当が終了したことを示し、割当て処
理を終了する。
【0043】以上の処理により、図5に示すような、各
ブロックに対する各ページの割当てとなるようアドレス
デコードRAM4に設定することができる。そして、次
にまた他の通常の処理にもどり、各ページに対する書込
みが発生したときに、書込みの累積回数をRAM3に記
録することを続け、所定の一定時間になったら再度、図
2の各ブロックに対するページ割当の再設定処理を行
う。
【0044】図8に、第1の実施例を適用した場合の書
込み総数82と従来例での書込み総数81の比較した例
を示す。ここから判るように、第1の実施例を適用した
場合の書込み総数82は、各ブロック共に「26」とな
り、一様分布となっている。従って、特定のブロックに
対する書込みが集中せず、フラッシュメモリ全体の寿命
を延ばすことができる。
【0045】以上説明したように、本実施例によれば以
下のような効果が得られる。即ち、 定期的にフラッ
シュメモリの各ブロックにたいする各ページの割当を、
書込み回数の分布が一様分布になるよう再配置を繰り返
すことにより、フラッシュメモリの書込みアクセスの状
態に合わせて、フラッシュメモリの寿命を常に最長に保
つことができる。この実施例では、特に、フラッシュメ
モリの各ページに対する書込み回数がユーザの使用の仕
方によって動的に変化する場合に有効である。
【0046】(第2の実施例)実施例1では、動的に各
ブロックに対するページ割当の再設定処理を行う例を説
明したが、フラッシュメモリの各ページに対する書込み
回数は、ユーザの使用の仕方がほぼ一定で動的に変化し
ない環境である場合での最適な実施例を次に示す。
【0047】即ち、限られたユーザ・アプリケーション
と処理データの組み合わせで、フラッシュメモリを使用
する場合、その各ページに対する書込み回数の分布をお
およそ推定できる場合がある。そのような場合、予め、
その分布の統計量を実際にシステムを稼働させて求め、
得られた分布から、各ブロックに対する書込み回数が一
様になるように、割当てを行う。割当方法は、図2に示
した同様の方法でよい。一旦、この割当てを決めると、
以後、この割当てのままでフラッシュメモリ5をアクセ
スする。
【0048】この場合、アドレスデコードRAM4は書
込みの必要がなく、ROMで実現してもよいし、プログ
ラマブル・ロジックアレイ(PLA)やランダムロジッ
ク回路で実現してもよい。
【0049】以上説明したように、本実施例によれば以
下のような効果が得られる。即ち、 実際に本実施例
を組み込むシステムのユーザプログラムを動作させ、予
めフラッシュメモリのアクセスの頻度分布を求めた後、
各ブロックへの書込み回数が一様になるように各ページ
を各ブロックへ静的に割り当てておき、本実施例を適用
したシステムを稼働させると、フラッシュメモリに対す
る書込み頻度の一様化が計られ、フラッシュメモリの寿
命が長くなることが期待される。 (第3の実施例)第1の実施例では、書込み回数をRA
M3に記録していたが、現在のフラッシュメモリの技術
では、書込み回数の保証回数は10の6乗〜7乗回であ
り、これをカウントするには、各書込み単位ブロックご
とに3バイト必要になる。一般に、RAM3のようなス
タテイックまたはダイナミックRAMは、フラッシュメ
モリに比べてメモリ容量が少なく、コストが高いため、
効率良く使う必要があり、書込み回数のカウント用に使
用する容量を節減する必要がある。
【0050】そのため、第3の実施例では、フラッシュ
メモリに、各ブロックに対して3バイトの書込み回数の
カウント用領域を確保する。また、書込み回数を書き換
えるときは、必ず書込み前のカウント値を読みだしてか
ら、インクリメントし、そして、再書込み動作が必要で
ある。しかし、一般にフラッシュメモリはアクセスが遅
いため、以上の動作を、必ず書込み回数を書き換えると
きに必要になるため、システム性能を落とす無視できな
いオーバヘッドとなる。そのため、フラッシュメモリ上
の各ブロックに対する書込み回数のカウント用領域に対
応する、RAM3のメモリ領域を確保し、そこにコピー
値を格納する事により、高速なアクセスが可能になる。
但し、フラッシュメモリに格納された各ブロックに対す
る3バイトの書込み回数カウント値のうち、所定の上位
ビットデータのみをRAM3のメモリ領域にコピーす
る。すなわち、フラッシュメモリの書込み保証回数の桁
数に対して、誤差桁と考えられる下位の桁はRAM3に
転送しない。このことにより、RAM3の書込みカウン
ト領域のサイズを小さくすることができる。
【0051】例えば、3バイトのうち、上位1バイトを
有効桁とすれば、RAM3の書込みカウント領域のサイ
ズは1/3となる。
【0052】以下、フラッシュメモリ5に対する書込み
処理方法の説明を、図9〜図13を参照しながら行う。
ここで、図10〜図13は、本第3の実施例のフラッシ
ュメモリ5に対する書込み処理のフローを説明するフロ
ーチャートであり、この処理は、例えば、ROM2に予
め格納されたプログラムによって記述され、CPU1に
よって読み出されて実行される。
【0053】図9は、フラッシュメモリ5の記憶内部デ
ータ構成90とRAM3に割り当てられた書込み回数表
の関係を示す。フラッシュメモリ5の記憶内部データ構
成90は、複数のブロック、即ち、ブロック1(9
1)、ブロック2(92)、ブロック3(93)、・・
・、ブロックn(94)から構成される。そして、各ブ
ロックは、3バイト容量の書込回数データエリア96と
データエリア95から構成される。RAM3に割り当て
られた書込回数表97には、図1に示した情報処理装置
の初期起動時に、各3バイト容量の書込回数データエリ
ア96から、上位の1バイトデータがそれぞれ転送され
る。
【0054】図10は、図1に示した情報処理装置の初
期起動時に実行する初期化処理のフローを説明するフロ
ーチャートである。
【0055】ステップS101では、アドレスデコード
RAM4の初期設定を行う。ここでは、CPU1からフ
ラッシュメモリ5をアクセスする場合に、CPU1から
出されるアドレスを、実際のフラッシュメモリのアクセ
スアドレスに変換する所定の変換パタンを、アドレスデ
コードRAM4に設定する。
【0056】ステップS102では、図9に示した各書
込回数データエリア96の3バイトのうち上位の1バイ
トデータだけを、RAM3に割り当てられた書込回数表
97に転送する。CPU1は、フラッシュメモリ5の各
込回数データエリアをアクセスする代わりに、書込回数
表97にアクセスすることにより、高速にその内容の参
照/変更が可能となる。
【0057】図11は、フラッシュメモリに対してデー
タ書込みが必要になった場合に実行する書込み処理サブ
ルーチンのフローチャートである。CPU1は、フラッ
シュメモリに対してデータ書込みが必要になった場合、
この書込み処理サブルーチンをコールする。
【0058】ステップS110では、書込み要求がフラ
ッシュメモリの使用領域に対するものか、フラッシュメ
モリのフリー領域に書き込む必要のある新規のデータで
あるか、アクセス・アドレスのチェックを行う。そし
て、書込み要求がフラッシュメモリの使用領域に対する
ものであれば、ステップS111へ進む。フラッシュメ
モリのフリー領域に対するものであれば、図12のステ
ップ117へ進む。
【0059】ステップS111では、書込みデータのア
ドレスを含むフラッシュメモリのブロックデータ領域の
データをバッファメモリ6へ転送する。
【0060】ステップS112では、ステップS111
で読み出されたフラッシュメモリのブロックデータ領域
の消去処理を行う。この消去処理は、例えば、ステップ
S111でバッファメモリ6へ転送されたデータの反転
データを生成して、その反転データをステップS111
で読み出されたフラッシュメモリのブロックデータ領域
へ書き込むことによって消去が実行される。その後、ス
テップS111でバッファメモリ6へ転送されたブロッ
クデータの対応領域に、書込みデータを書き込む。
【0061】ステップS113では、ステップS111
でバッファメモリ6へ転送されたブロックデータの中の
書込回数データをインクリメントする。
【0062】ステップS114では、インクリメントさ
れた書込回数データの上位1バイトのデータと、インク
リメント前の書込回数データの上位1バイトのデータと
比較して、値が1増加しているかどうかチェックする。
そして、増加していれば、ステップS115へ進み、R
AM3の書込回数表97の対応する1バイト書込回数デ
ータをインクリメントして、ステップS116へ進む。
【0063】ステップS116では、書込みデータが書
き込まれたバッファメモリ6のブロックデータを、フラ
ッシュメモリに書き込む。このブロックデータは、書込
み回数データを含む。その後、本サブルーチンを呼びだ
した上位処理ルーチンへ戻る。
【0064】ステップS117では、フラッシュメモリ
で現在使用されていないページを含むブロックのうち、
書込み回数が最小のブロックを探索する。この探索方法
を以下説明する。
【0065】図14は、図9に示した書込み回数表97
の詳細を示す図である。140のブロックNO.と、14
1の1バイト書込回数データは、ペアで格納されてい
る。
【0066】図15は、各ブロックのページが使用中で
あるか未使用中であるかを示すページ使用/未使用管理
テーブル150であり、RAM3に割り当てられてい
る。ここで、151はブロックNO.を示し、152はブ
ロック中のページNO.を示す。そして、153は、各ペ
ージが使用中か未使用中であるかを示す「1」または
「0」のフラグを示す。ここで、「1」は対応するペー
ジが使用中であることを示し、「0」であれば、対応す
るページが未使用中であることを示す。CPU1は、フ
ラッシュメモリ5の状態管理をこのページ使用/未使用
管理テーブル150を用いて行い、常に、フラッシュメ
モリに対する最新の状態を示すように更新を行う。
【0067】さて、ステップS117での探索方法は、
図14に示した書込回数表97の1バイト書込回数デー
タ141と、ページ使用/未使用管理テーブル150を
探索して、未使用のページを含んでかつ書込回数最小の
ブロックを選択する。
【0068】ステップS118では、選択されたブロッ
クN0.とページNO.をアドレスデコードRAM4へ新規登
録する。
【0069】ステップS119では、バッファメモリ6
の1ブロック分の領域に、所定の初期化データ、例えば
「0」データを書き込む。そして、ステップS112へ
進み、新規に選択したブロックに書込みデータを書き込
む。
【0070】次に、図13を参照して、フラッシュメモ
リの書込み回数の平均化を行うためのスワップ処理を説
明する。タイマ13には、所定のインターバルでCPU
1に対して割り込み要求を掛けるよう予めプログラムさ
れている。そして、CPU1に対して割り込み要求が掛
かると、CPU1は、図13のスワップ処理ルーチンを
起動する。
【0071】ステップS130では、図4に示した書込
回数表を検索して、1バイト書込回数データ141の最
小のものVminと、最大のものVMaxをピックアップす
る。そして、VmaxからVminを引いた値Vsubを求め
る。
【0072】ステップS131では、Vsubと所定のVt
hを比較して、Vsubが所定のVthより大きければ、ステ
ップS132に進む。また、小さければ、本スワップ処
理ルーチンを呼びだした処理部に戻る。
【0073】ステップS132では、Vmaxのブロック
データとVminのブロックデータのスワップを行う。こ
のスワップは、バッファメモリ6をブロックデータの退
避領域として使用して行う。そして、アドレスデコード
RAM4で、対応するブロックNO.、ページNO.のスワッ
プを行う。そして、本スワップ処理ルーチンを呼びだし
た処理部に戻る。
【0074】尚、このスワップ処理を行うタイミング
は、タイマ13を使った所定のインターバル時間ごとの
割り込みごとに行ったが、これはまた、例えば、フラッ
シュメモリに対する全体の書込み回数をカウントして、
一定の書込み回数ごとにスワップ処理を行ってもよい。
【0075】以上説明したように、第3の実施例によれ
ば以下のような効果が得られる。即ち、書込み回数バイ
トデータのうち、有効な上位バイトだけを、高速なメモ
リにコピーしておくことで、フラッシュメモリに対する
書込み処理ルーチン等からの参照が高速となり、フラッ
シュメモリの書込み処理を高速に行うことができる。 (第4の実施例)第4の実施例では、フラッシュメモリ
に対する書込み処理を高速化する方法の一例を示す。
【0076】上述したフラッシュメモリの制御方法は、
主にフラッシュメモリの寿命を延ばすことが主眼であっ
た。第4の実施例では、フラッシュメモリの書込みの際
に発生するブロック消去の処理を最小化することで、書
込み処理の高速化を計ることを目的とする。
【0077】図16は、フラッシュメモリ5の物理ブロ
ックn160のデータ構造を説明する図である。尚、デ
ータの消去単位は、1つの物理ブロック単位で行われ
る。図16において、物理ブロックn160は物理ペー
ジ1(163)から物理ページn(164)までのデー
タ領域162がデータ格納領域である。また、物理ペー
ジn+1には、アクセスされる各物理ページがどの論理
アドレスに対応しているかを示す物理/論理ページアド
レス表161を配置している。データ領域162には、
書込み要求が発生するたびに、書込みデータを含むペー
ジを物理ページ番号の若い順に順次新規に格納してい
く。
【0078】図17は、物理/論理ページアドレス表1
61の具体例を説明する図である。
【0079】物理/論理ページアドレス表161は、物
理ページ番号部171と論理ページ番号部17lから構
成される。書込みデータが格納されているデータ領域1
62の各物理ページ番号と、対応する論理ページ番号
が、各々物理ページ番号部171と論理ページ番号部1
7lにペアで書き込まれる。図7を参照して、まず、ペ
ア1(173)では、物理ページ番号が「1」で論理ペ
ージ番号が「3」書き込まれており、物理ページ番号が
「1」のページ領域は論理ページ番号が「3」に対応し
ていることを示す。ペア1(173)は、一番始めに書
込みが発生した時に、生成されたデータであり、以下新
たな書込みが発生するごとに、ペア2(174)、ペア
3(175)、ペア4(176)、ペア5(177)、
ペア6(178)が順に生成されている。ここで、ペア
6(178)の領域を参照して、論理ページ番号「3」
に対応する最新の書込みデータは、物理ページ番号6の
領域に格納されていることを示す。また、ペア4(17
6)の領域を参照して、論理ページ番号「1」に対応す
る最新の書込みデータは、物理ページ番号4の領域に格
納されていることを示す。
【0080】次に、図18は、第4の実施例でのフラッ
シュメモリ5に対する書込み処理の手順を示すフローチ
ャートである。フラッシュメモリ5に対する書込み要求
が発生すると、CPU1は、図18の書込み処理ルーチ
ンをコールし、実行する。
【0081】ステップS181では、フラッシュメモリ
5の論理ページアドレス表161を、バッファメモリ6
にロードする。そして、書込み要求のあった物理ブロッ
クに未使用ページが残っているかどうか、ロードされた
物理/論理ページアドレス表161を参照してチェック
する。未使用ページがあれば、ステップS182に進
む。未使用ページがなければ、ステップS191(図1
9)に進む。
【0082】ステップS182では、バッファメモリ6
にロードされた物理/論理ページアドレス表161に新
しい物理/論理ページ番号のペアを書き込む。そして、
追加された物理/論理ページアドレス表161のデータ
をフラッシュメモリに対して書き込む。例えば、図17
を参照して、ペア6(178)までが登録されていると
すると、その次のペア領域に、追加の物理/論理ページ
番号のペアを書き込む。
【0083】ステップS183では、バッファメモリ6
にロードされた物理/論理ページアドレス表161の論
理ページ番号部を、書込みの新しい順に検索して、書込
み要求論理ブロック番号と一致する論理ページ番号を見
つける。そして、見つけられた論理ページ番号とペアの
物理ページ番号のページ領域のデータを、バッファ6に
ロードする。そして、書込みアドレスに対応する領域に
書込みデータを書き込む。その後、最も書込みの新しい
ページの次のページ、即ち、ステップS182で追加し
た物理ページ番号の物理ページに、バッファ6上の新た
に書き込まれたページ領域データを書き込む。そして、
本サブルーチンを呼びだしたルーチンに戻る。
【0084】ステップS191からの処理は、参照され
た物理ブロックに未使用ページがない場合のページスワ
ップ処理である。
【0085】ここで、図20は、書込み要求があった物
理ブロック内の物理/論理ページアドレス表21を示
す。ここでは、物理ブロックは8ページのデータサイズ
をもつものとする。この物理/論理ページアドレス表2
1には、最後まで物理ページ番号と論理ページ番号が書
き込まれており、書込み要求があった物理ブロックの全
てのデータページが使用されていることを示す。以下の
ステップの処理を図20と図21を参照しながら説明す
る。
【0086】ステップS191では、バッファ6へ、参
照されたフラッシュメモリの物理ブロックのデータを全
てロードする。ここで、図21に示す物理/論理ページ
アドレス表21は、ここでロードされたものであるとす
る。
【0087】ステップS192では、ロードされた物理
/論理ページアドレス表21の整理を以下のように行
う。即ち、 [a1] 論理ページ番号部23を参照して、最新の論理
ページ番号を含むペア部を選択する。図20を参照し
て、この選択の結果、論理ページ番号「1」に対しては
27のペア部、論理ページ番号「2」に対しては26の
ペア部、論理ページ番号「3」に対しては23のペア
部、論理ページ番号「4」に対しては25のペア部、論
理ページ番号5」に対しては24のペア部が選択され
る。
【0088】[a2] 選択された論理ページ番号群を、
番号の若い順にソーテイングを行い、ロードされた物理
/論理ページアドレス表21に配置する。この様子を図
21に示す。
【0089】[a3] a2で配置された論理ページ番号群
に対して、物理ページ番号をシリーズにつけなおし、ロ
ードされた物理/論理ページアドレス表21に配置す
る。この様子を図21に示す。
【0090】以上の処理手順で、図21に示すような、
整理された物理/論理ページアドレス表(以下、新物理
/論理ページアドレス表と呼ぶ)が、バッファ6上に生
成する。
【0091】ステップS193では、新物理/論理ペー
ジアドレス表の各ペアに対応するように、データページ
部のデータを、バッファ6上で並べ換える。こうして、
生成されたデータページを、以後「新データページ」と
呼ぶことにする。
【0092】ステップ194では、以上のステップで、
バッファ上に生成された新データページと新物理/論理
ページアドレス表から構成されるブロックデータをフラ
ッシュメモリへ書き込む。そして、そして、本サブルー
チンを呼びだしたルーチンに戻る。
【0093】以上説明したように、第4の実施例によれ
ば以下のような効果が得られる。即ち、フラッシュメモ
リのデータ書き換え時に必要となるブロック消去処理を
減らすことで、高速なデータ書き換えを実行することが
できる。
【0094】(第5の実施例)第4の実施例では、フラ
ッシュメモリの各物理ブロックのデータ構造として、図
16に示すような、データページ部162と物理/論理
ページアドレス表161が分離して構成する例をしめし
たが、これは例えば、図22に示すような各物理ページ
の一部に論理ページアドレス領域220を持たせても良
い。このようなデータ構造であっても、第4の実施例で
説明した書込み処理を同様に適用できることは言うまで
もない。
【0095】以上説明したように、第5の実施例によれ
ば以下のような効果が得られる。即ち、フラッシュメモ
リのブロックの古いページの削除と最新ページの整理を
行う処理を高速に行うことができる。 (第6の実施例)第6の実施例では、第5の実施例で示
したフラッシュメモリの各物理ブロックのデータ構造
に、各物理ページが有効か無効かを示す1ビットの有効
/無効フラグ231を設けた例を示す。物理ブロックが
満杯になり、書込みがさらに発生した場合に必要となる
不要ページの整理を行う処理の際、この有効/無効フラ
グ231を参照することで、高速に有効なページを選択
できる。
【0096】有効/無効フラグ231は、最新に書き込
まれたページに対して「1」が設定され、古いページに
対しては「0」が設定される。
【0097】尚、図16に示した物理/論理ページアド
レス表の物理ページ番号と論理ページ番号の各ペアごと
に、有効/無効フラグ231と同様のフラグを設定して
もよい。
【0098】以上説明したように、第6の本実施例によ
れば以下のような効果が得られる。即ち、フラッシュメ
モリのブロックの古いページの削除と最新ページの整理
を行う処理を高速に行うことができる。
【0099】
【発明の効果】以上説明したように本発明によれば、フ
ラッシュメモリの寿命を長くできる。
【0100】また、別の発明は、フラッシュメモリの書
込み処理を高速に行い、また、フラッシュメモリの書込
み回数データを最小サイズにすることができる。
【0101】
【図面の簡単な説明】
【図1】本発明の1実施例を示すフラッシュメモリの制
御ブロックのハードウエア図である。
【図2】第1の実施例で、フラッシュメモリの書込み回
数を一様化するアルゴリズムのフローを示す図である。
【図3】第1の実施例で、フラッシュメモリの各ページ
の書込み頻度を示す図である。
【図4】図3で示す各ページ番号を書込み頻度順にソー
トした後の図である。
【図5】第1の実施例で、各ブロックに各ページを割り
当てた図である。
【図6】従来のフラッシュメモリのブロックに対するペ
ージの割当ての例を示す図である。
【図7】従来技術でのフラッシュメモリの書込み頻度を
説明する図である。
【図8】フラッシュメモリの各ブロックの従来技術での
書込み頻度と、第1の実施例を適用した場合の書込み頻
度を比較する図である。
【図9】第3の実施例で、フラッシュメモリの3バイト
書込み回数のうち、上位1バイトだけを有効桁として、
RAM3の書込み回数表にコピーした状態を示す図であ
る。
【図10】第3の実施例で、書込み処理のための前処理
を説明するフローチャートである。
【図11】第3の実施例で、書込み処理を説明するフロ
ーチャートである。
【図12】第3の実施例で、書込み処理を説明するフロ
ーチャートである。
【図13】第3の実施例で、スワップ処理を説明するフ
ローチャートである。
【図14】書込み回数表のデータ構造を説明する図であ
る。
【図15】各ページの使用/未使用状態を管理するテー
ブルのデータ構造図である。
【図16】物理ブロックnのデータ構造を示す図であ
る。
【図17】物理/論理ページアドレス表のデータ構造を
示す図である。
【図18】第4の実施例のフラッシュメモリに対する書
込み処理を説明するフローチャートである。
【図19】第4の実施例のフラッシュメモリに対する書
込み処理を説明するフローチャートである。
【図20】第4の実施例のフラッシュメモリのブロック
の整理処理を説明する図である。
【図21】第4の実施例のフラッシュメモリのブロック
の整理処理を行った結果を説明する図である。
【図22】第5の実施例のフラッシュメモリのブロック
のデータ構造を説明する図である。
【図23】第6の実施例のフラッシュメモリのブロック
のデータ構造を説明する図である。
【符号の説明】
1 CPU 2 ROM 3 RAM 4 アドレスデコードRAM 5 フラッシュメモリ 6 バッファメモリ 7 制御線 8 ブロック&ページ・アドレス 9 下位アドレス 10 実際のブロック&ページ・アドレス 11 データバス 12 アドレスバス 13 タイマ

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 不揮発性フラッシュメモリの各記憶単位
    に対する書込み回数を計数する計数工程と、 所定数の記憶単位を含む各ブロックに対する書込み回数
    が一様になるように、各ブロックに対する前記記憶単位
    の割当を決定する割当工程と、 前記決定された各記憶単位の割当に基づいて、前記記憶
    単位の論理記憶単位アドレスを物理記憶単位アドレスに
    変換する変換工程と、を備えることを特徴とする不揮発
    性フラッシュメモリの制御方法。
  2. 【請求項2】 前記記憶単位は、ブロックであることを
    特徴とする請求項1に記載の不揮発性フラッシュメモリ
    の制御方法。
  3. 【請求項3】 前記記憶単位は、ページであることを特
    徴とする請求項1に記載の不揮発性フラッシュメモリの
    制御方法。
  4. 【請求項4】 前記記憶単位は、バイトあるいは複数バ
    イトであることを特徴とする請求項1に記載の不揮発性
    フラッシュメモリの制御方法。
  5. 【請求項5】 前記計数工程と前記割当工程と前記変換
    工程を、所定の周期で繰り返す周期実行工程を、さらに
    備えることを特徴とする請求項1に記載の不揮発性フラ
    ッシュメモリの制御方法。
  6. 【請求項6】 前記割当工程は、前記書込み回数計数工
    程で計数された、各記憶単位に対する書込み回数を昇順
    あるいは降順になるように各記憶単位番号をソーテイン
    グするソーテイング工程と、 前記ソーテイングされた各記憶単位番号の両端から同時
    に、かつ順に所定数の記憶単位番号を選択して、各ブロ
    ックに順次割り当てていく順次割当工程と、を備えるこ
    とを特徴とする請求項1に記載の不揮発性フラッシュメ
    モリの制御方法。
  7. 【請求項7】 前記計数工程は、前記書込み回数のうち
    の上位桁のデータを有効な書込み回数とする、ことを特
    徴とする請求項1に記載の不揮発性フラッシュメモリの
    制御方法。
  8. 【請求項8】 前記割当工程は、前記書込み回数の最大
    値と最小値が所定の閾値以上であれば、前記書込み回数
    が最大の記憶単位と前記書込み回数が最小の記憶単位の
    データを交換することを特徴とする請求項1に記載の不
    揮発性フラッシュメモリの制御方法。
  9. 【請求項9】 不揮発性フラッシュメモリの記憶単位に
    対する書込み制御方法であって、 記憶単位データを、未使用の記憶単位に書き込む記憶単
    位データ書込み工程と、 前記記憶単位データに対応す
    る論理記憶単位番号を、所定の記憶単位内の未使用領域
    に書き込む論理記憶単位番号書込み工程と、を備えるこ
    とを特徴とする不揮発性フラッシュメモリの制御方法。
  10. 【請求項10】 不揮発性フラッシュメモリの記憶単位
    に対する書込み制御方法であって、 記憶単位データと、その記憶単位データに対応する論理
    記憶単位番号とのペアデータを、未使用の記憶単位に書
    込む記憶単位データ/論理記憶単位番号書込み工程を、
    備えることを特徴とする不揮発性フラッシュメモリの制
    御方法。
  11. 【請求項11】 不揮発性フラッシュメモリの記憶単位
    に対する書込み制御方法であって、 記憶単位データを、未使用の記憶単位に書き込む記憶単
    位データ書込み工程と、 前記記憶単位データが書込ま
    れた記憶単位の物理記憶単位番号と、前記物理記憶単位
    番号に対応する論理記憶単位番号とのペアデータを、所
    定の記憶単位の未使用領域に書込むペアデータ書込み工
    程と、を備えることを特徴とする不揮発性フラッシュメ
    モリの制御方法。
  12. 【請求項12】 前記記憶単位は、ブロックであること
    を特徴とする請求項9、あるいは請求項10、あるいは
    請求項11に記載の不揮発性フラッシュメモリの制御方
    法。
  13. 【請求項13】 前記記憶単位は、ページであることを
    特徴とする請求項9、あるいは請求項10、あるいは請
    求項11に記載の不揮発性フラッシュメモリの制御方
    法。
  14. 【請求項14】 前記記憶単位は、バイトあるいは複数
    バイトであることを特徴とする請求項9、あるいは請求
    項10、あるいは請求項11に記載の不揮発性フラッシ
    ュメモリの制御方法。
  15. 【請求項15】 前記論理記憶単位番号書込み工程は、 前記未使用の記憶単位が存在しなければ、前記論理記憶
    単位番号書込み工程で書込まれた各論理記憶単位番号の
    うち、最新の論理記憶単位番号を所定の記憶単位の未使
    用領域に再書込みする論理記憶単位番号再書込み工程
    と、 前記最新の論理記憶単位番号に対応する前記記憶単位デ
    ータを選択して、未使用の記憶単位に順に再書込みする
    記憶単位データ再書込み工程と、をさらに備えることを
    特徴とする請求項9に記載の不揮発性フラッシュメモリ
    の制御方法。
  16. 【請求項16】 前記記憶単位データ/論理記憶単位番
    号書込み工程は、 前記未使用の記憶単位が存在しなければ、前記記憶単位
    データ/論理記憶単位番号書込み工程で書込まれた各ペ
    アデータのうち、最新のペアデータを記憶単位に再書込
    みするペアデータ再書込み工程を、をさらに備えること
    を特徴とする請求項10に記載の不揮発性フラッシュメ
    モリの制御方法。
  17. 【請求項17】 前記ペアデータ書込み工程は、 前記未使用の記憶単位が存在しなければ、前記ペアデー
    タのうち、最新のペアデータを所定の記憶単位に再書込
    みするペアデータ再書込み工程と、 前記最新のペアデータに対応する前記記憶単位データ
    を、記憶単位に順に再書込みする記憶単位データ再書込
    み工程と、をさらに備えることを特徴とする請求項11
    に記載の不揮発性フラッシュメモリの制御方法。
  18. 【請求項18】 不揮発性フラッシュメモリの各記憶単
    位に対する書込み回数を計数する計数手段と、 所定数の記憶単位を含む各ブロックに対する書込み回数
    が一様になるように、各ブロックに対する前記記憶単位
    の割当を決定する割当手段と、 前記決定された各記憶単位の割当に基づいて、前記記憶
    単位の論理記憶単位アドレスを物理記憶単位アドレスに
    変換する変換手段と、を備えることを特徴とする不揮発
    性フラッシュメモリの制御装置。
  19. 【請求項19】 前記記憶単位は、ブロックであること
    を特徴とする請求項18に記載の不揮発性フラッシュメ
    モリの制御装置。
  20. 【請求項20】 前記記憶単位は、ページであることを
    特徴とする請求項18に記載の不揮発性フラッシュメモ
    リの制御装置。
  21. 【請求項21】 前記記憶単位は、バイトあるいは複数
    バイトであることを特徴とする請求項18に記載の不揮
    発性フラッシュメモリの制御装置。
  22. 【請求項22】 前記計数手段と前記割当手段と前記変
    換手段を、所定の周期で繰り返す周期実行手段を、さら
    に備えることを特徴とする請求項18に記載の不揮発性
    フラッシュメモリの制御装置。
  23. 【請求項23】 前記割当手段は、前記書込み回数計数
    手段で計数された、各記憶単位に対する書込み回数を昇
    順あるいは降順になるように各記憶単位番号をソーテイ
    ングするソーテイング手段と、 前記ソーテイングされた各記憶単位番号の両端から同時
    に、かつ順に所定数の記憶単位番号を選択して、各ブロ
    ックに順次割り当てていく順次割当手段と、を備えるこ
    とを特徴とする請求項18に記載の不揮発性フラッシュ
    メモリの制御装置。
  24. 【請求項24】 前記計数手段は、前記書込み回数のう
    ちの上位桁のデータを有効な書込み回数とする、ことを
    特徴とする請求項18に記載の不揮発性フラッシュメモ
    リの制御装置。
  25. 【請求項25】 前記割当手段は、前記書込み回数の最
    大値と最小値が所定の閾値以上であれば、前記書込み回
    数が最大の記憶単位と前記書込み回数が最小の記憶単位
    のデータを交換することを特徴とする請求項18に記載
    の不揮発性フラッシュメモリの制御装置。
  26. 【請求項26】 不揮発性フラッシュメモリの記憶単位
    に対する書込み制御装置であって、 記憶単位データを、未使用の記憶単位に書き込む記憶単
    位データ書込み手段と、 前記記憶単位データに対応す
    る論理記憶単位番号を、所定の記憶単位内の未使用領域
    に書き込む論理記憶単位番号書込み手段と、を備えるこ
    とを特徴とする不揮発性フラッシュメモリの制御装置。
  27. 【請求項27】 不揮発性フラッシュメモリの記憶単位
    に対する書込み制御装置であって、 記憶単位データと、その記憶単位データに対応する論理
    記憶単位番号とのペアデータを、未使用の記憶単位に書
    込む記憶単位データ/論理記憶単位番号書込み手段を、
    備えることを特徴とする不揮発性フラッシュメモリの制
    御装置。
  28. 【請求項28】 不揮発性フラッシュメモリの記憶単位
    に対する書込み制御装置であって、 記憶単位データを、未使用の記憶単位に書き込む記憶単
    位データ書込み手段と、 前記記憶単位データが書込ま
    れた記憶単位の物理記憶単位番号と、前記物理記憶単位
    番号に対応する論理記憶単位番号とのペアデータを、所
    定の記憶単位の未使用領域に書込むペアデータ書込み手
    段と、を備えることを特徴とする不揮発性フラッシュメ
    モリの制御装置。
  29. 【請求項29】 前記記憶単位は、ブロックであること
    を特徴とする請求項26、あるいは請求項27、あるい
    は請求項28に記載の不揮発性フラッシュメモリの制御
    装置。
  30. 【請求項30】 前記記憶単位は、ページであることを
    特徴とする請求項26、あるいは請求項27、あるいは
    請求項28に記載の不揮発性フラッシュメモリの制御装
    置。
  31. 【請求項31】 前記記憶単位は、バイトあるいは複数
    バイトであることを特徴とする請求項26、あるいは請
    求項27、あるいは請求項28に記載の不揮発性フラッ
    シュメモリの制御装置。
  32. 【請求項32】 前記論理記憶単位番号書込み手段は、 前記未使用の記憶単位が存在しなければ、前記論理記憶
    単位番号書込み手段で書込まれた各論理記憶単位番号の
    うち、最新の論理記憶単位番号を所定の記憶単位の未使
    用領域に再書込みする論理記憶単位番号再書込み手段
    と、 前記最新の論理記憶単位番号に対応する前記記憶単位デ
    ータを選択して、未使用の記憶単位に順に再書込みする
    記憶単位データ再書込み手段と、をさらに備えることを
    特徴とする請求項26に記載の不揮発性フラッシュメモ
    リの制御装置。
  33. 【請求項33】 前記記憶単位データ/論理記憶単位番
    号書込み手段は、 前記未使用の記憶単位が存在しなければ、前記記憶単位
    データ/論理記憶単位番号書込み手段で書込まれた各ペ
    アデータのうち、最新のペアデータを記憶単位に再書込
    みするペアデータ再書込み手段を、をさらに備えること
    を特徴とする請求項27に記載の不揮発性フラッシュメ
    モリの制御装置。
  34. 【請求項34】 前記ペアデータ書込み手段は、 前記未使用の記憶単位が存在しなければ、前記ペアデー
    タのうち、最新のペアデータを所定の記憶単位に再書込
    みするペアデータ再書込み手段と、 前記最新のペアデータに対応する前記記憶単位データ
    を、記憶単位に順に再書込みする記憶単位データ再書込
    み手段と、をさらに備えることを特徴とする請求項28
    に記載の不揮発性フラッシュメモリの制御装置。
JP29814993A 1993-11-29 1993-11-29 不揮発性フラッシュメモリの制御方法とその装置 Pending JPH07153285A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29814993A JPH07153285A (ja) 1993-11-29 1993-11-29 不揮発性フラッシュメモリの制御方法とその装置
KR1019940027719A KR950015082A (ko) 1993-11-29 1994-10-27 불휘발성 플래쉬메모리의 제어방법과 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29814993A JPH07153285A (ja) 1993-11-29 1993-11-29 不揮発性フラッシュメモリの制御方法とその装置

Publications (1)

Publication Number Publication Date
JPH07153285A true JPH07153285A (ja) 1995-06-16

Family

ID=17855834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29814993A Pending JPH07153285A (ja) 1993-11-29 1993-11-29 不揮発性フラッシュメモリの制御方法とその装置

Country Status (2)

Country Link
JP (1) JPH07153285A (ja)
KR (1) KR950015082A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100316063B1 (ko) * 1999-12-29 2001-12-12 박종섭 반도체 메모리모듈의 테스트장치
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
KR100506268B1 (ko) * 1997-08-30 2005-09-30 삼성전자주식회사 플래시 메모리를 제어하는 회로
JP2008123314A (ja) * 2006-11-14 2008-05-29 Nec Electronics Corp 半導体記憶装置への情報記録方法及び情報記録システム
JP2009110476A (ja) * 2007-11-01 2009-05-21 Konami Digital Entertainment Co Ltd 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
JP2011060007A (ja) * 2009-09-10 2011-03-24 Toshiba Corp 制御装置
CN102047230A (zh) * 2008-05-28 2011-05-04 美光科技公司 混合式存储器管理
US20110164452A1 (en) * 2010-01-07 2011-07-07 Spansion Llc Memory device
US8949516B2 (en) 2011-10-03 2015-02-03 Hitachi, Ltd. Semiconductor device
US8984209B2 (en) 2011-04-12 2015-03-17 Hitachi, Ltd. Semiconductor device and method of controlling non-volatile memory device
US9355719B2 (en) 2012-07-19 2016-05-31 Hitachi, Ltd. Semiconductor device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990060650A (ko) * 1997-12-31 1999-07-26 윤종용 디지털 전송 디바이스와 그의 제어를 위한 중앙처리장치간의데이터 전송 타이밍 조절회로

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04222997A (ja) * 1990-12-25 1992-08-12 Fuji Photo Film Co Ltd メモリカードにおけるデータ記録方法およびメモリカードシステム
JPH0527924A (ja) * 1991-07-12 1993-02-05 Internatl Business Mach Corp <Ibm> 半導体メモリを用いた外部記憶システム及びその制御方法
JPH0573433A (ja) * 1991-09-12 1993-03-26 Hitachi Ltd 記憶装置
JPH05113858A (ja) * 1991-10-22 1993-05-07 Hokuriku Nippon Denki Software Kk 不揮発性メモリを含むプリンタ装置
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JPH05282880A (ja) * 1992-01-10 1993-10-29 Toshiba Corp 半導体ディスク装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04222997A (ja) * 1990-12-25 1992-08-12 Fuji Photo Film Co Ltd メモリカードにおけるデータ記録方法およびメモリカードシステム
JPH0527924A (ja) * 1991-07-12 1993-02-05 Internatl Business Mach Corp <Ibm> 半導体メモリを用いた外部記憶システム及びその制御方法
JPH0573433A (ja) * 1991-09-12 1993-03-26 Hitachi Ltd 記憶装置
JPH05113858A (ja) * 1991-10-22 1993-05-07 Hokuriku Nippon Denki Software Kk 不揮発性メモリを含むプリンタ装置
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JPH05282880A (ja) * 1992-01-10 1993-10-29 Toshiba Corp 半導体ディスク装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506268B1 (ko) * 1997-08-30 2005-09-30 삼성전자주식회사 플래시 메모리를 제어하는 회로
KR100316063B1 (ko) * 1999-12-29 2001-12-12 박종섭 반도체 메모리모듈의 테스트장치
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
JP2008123314A (ja) * 2006-11-14 2008-05-29 Nec Electronics Corp 半導体記憶装置への情報記録方法及び情報記録システム
JP2009110476A (ja) * 2007-11-01 2009-05-21 Konami Digital Entertainment Co Ltd 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
JP4554660B2 (ja) * 2007-11-01 2010-09-29 株式会社コナミデジタルエンタテインメント 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
US8751733B2 (en) 2008-05-28 2014-06-10 Round Rock Research, Llc Hybrid memory management
CN102047230A (zh) * 2008-05-28 2011-05-04 美光科技公司 混合式存储器管理
JP2011522350A (ja) * 2008-05-28 2011-07-28 マイクロン テクノロジー, インク. ハイブリッドメモリ管理
US9390004B2 (en) 2008-05-28 2016-07-12 Round Rock Research, Llc Hybrid memory management
JP2011060007A (ja) * 2009-09-10 2011-03-24 Toshiba Corp 制御装置
US20110164452A1 (en) * 2010-01-07 2011-07-07 Spansion Llc Memory device
US8325531B2 (en) * 2010-01-07 2012-12-04 Spansion Llc Memory device
US8984209B2 (en) 2011-04-12 2015-03-17 Hitachi, Ltd. Semiconductor device and method of controlling non-volatile memory device
US9069662B2 (en) 2011-04-12 2015-06-30 Hitachi, Ltd. Semiconductor device and method of controlling non-volatile memory device
US9286212B2 (en) 2011-04-12 2016-03-15 Hitachi, Ltd. Semiconductor device and method of controlling non-volatile memory device
US8949516B2 (en) 2011-10-03 2015-02-03 Hitachi, Ltd. Semiconductor device
US9728257B2 (en) 2011-10-03 2017-08-08 Hitachi, Ltd. Semiconductor device having a write prohibited region
US9355719B2 (en) 2012-07-19 2016-05-31 Hitachi, Ltd. Semiconductor device

Also Published As

Publication number Publication date
KR950015082A (ko) 1995-06-16

Similar Documents

Publication Publication Date Title
CN113138713B (zh) 存储器系统
US5598370A (en) Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same
US7779226B2 (en) Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
US9298606B2 (en) Statistical wear leveling for non-volatile system memory
US7409490B2 (en) Method of flash memory management
US9734911B2 (en) Method and system for asynchronous die operations in a non-volatile memory
EP3176688B1 (en) Method and system for asynchronous die operations in a non-volatile memory
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US20080148002A1 (en) Method and Apparatus for Allocating A Dynamic Data Structure
US9501392B1 (en) Management of a non-volatile memory module
EP1619584A1 (en) Memory allocation
JP2001175529A (ja) メモリ制御回路
EP0722585A1 (en) Flash memory with reduced erasing and overwriting
JPH07153285A (ja) 不揮発性フラッシュメモリの制御方法とその装置
WO2013048413A1 (en) Cache and/or socket sensitive multi-processor cores breadth-first traversal
US6401182B1 (en) Method and apparatus for memory management
JP2019046238A (ja) メモリシステム
US7792880B2 (en) Method and apparatus for efficient implementation of discontiguous objects
US11023374B2 (en) Apparatus and method and computer program product for controlling data access
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KjelsØ et al. Memory management in flash-memory disks with data compression
JP3940409B2 (ja) メモリコントローラ、フラッシュメモリシステム及び制御方法
US20240176531A1 (en) Non-volatile memory
JP2013254357A (ja) 情報処理装置および方法、並びにプログラム
US20230115296A1 (en) System and Method for Centralized Management of Workload and Parallel Service of Prioritized Requests

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040420