JP2000330850A - フラッシュメモリ制御方法 - Google Patents

フラッシュメモリ制御方法

Info

Publication number
JP2000330850A
JP2000330850A JP13876899A JP13876899A JP2000330850A JP 2000330850 A JP2000330850 A JP 2000330850A JP 13876899 A JP13876899 A JP 13876899A JP 13876899 A JP13876899 A JP 13876899A JP 2000330850 A JP2000330850 A JP 2000330850A
Authority
JP
Japan
Prior art keywords
sector
data
block
flash memory
management
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
JP13876899A
Other languages
English (en)
Inventor
Takeshi Imamura
剛 今村
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP13876899A priority Critical patent/JP2000330850A/ja
Publication of JP2000330850A publication Critical patent/JP2000330850A/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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】小容量のデータを高い頻度で書換えてもその管
理が負担とならず、システム負荷を軽微なものにする。 【解決手段】フラッシュメモリを複数のセクタ11に分割
設定し、各セクタ11それぞれに、そのセクタの親番号、
セクタのアクセス状態を示すセクタ管理領域、複数のデ
ータブロックからなるブロックデータ部、及び各データ
ブロック毎のアクセス状態を示すブロック管理領域を設
け、上記セクタ管理領域とブロック管理領域とに対応し
てセクタの一括消去を含むアクセス制御を行なう。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フラッシュメモリ
に対して比較的小容量のデータの書換えを行なうフラッ
シュメモリ制御方法に関する。
【0002】
【従来の技術】近時、非常に多くの電子機器、例えばパ
ーソナルコンピュータ等のデータ処理装置のみならず、
電子スチル/ビデオカメラやデジタル携帯電話、電子ゲ
ーム機等で、フラッシュメモリ(フラッシュEEPRO
M)が広く使用されている。このフラッシュメモリは、
メモリ全体あるいはブロック単位で大量のデータを一括
して電気的に消去することが可能で、且つ書込みに要す
る速度がRAMとほぼ同等と言えるほど速いなど、一般
的な不揮発性メモリであるEEPROMとは異なる使い
方がされている。
【0003】
【発明が解決しようとする課題】しかしながら、上記の
ようなフラッシュメモリは、大量のデータをメモリに効
率的に格納することを目的として、データをファイル単
位で書換えるようにしているため、一度に消去するデー
タ領域が大きい。
【0004】そのため、画像データなどのサイズの大き
なデータファイルを一括して書換えるような使用には適
している反面、比較的サイズの小さなデータを高い頻度
で書換えるものとすると、管理領域や管理方式の負担が
大きすぎるものとなってしまうという不具合を生じる。
【0005】本発明は上記のような実情に鑑みてなされ
たもので、その目的とするところは、小容量のデータを
高い頻度で書換えてもその管理が負担とならず、システ
ム負荷が軽微なフラッシュメモリ制御方法を提供するこ
とにある。
【0006】
【発明が解決しようとする課題】請求項1記載の発明
は、フラッシュメモリを複数のセクタに分割設定し、上
記複数のセクタそれぞれに、そのセクタの識別情報を記
憶する領域と、セクタのアクセス状態を示すセクタ管理
情報を記憶する領域と、複数のデータブロックからなる
データ領域と、このデータ領域内の各データブロック毎
のアクセス状態を示すブロック管理情報からなるブロッ
ク管理領域とを設け、上記セクタ管理情報とブロック管
理情報とに基づいてブロック単位でのデータの書込み、
及びセクタ単位でのデータの一括消去を含むアクセス制
御を行なうことを特徴とする。
【0007】このような方法とすれば、セクタ単位での
一括消去を含むアクセス制御を実行することにより、小
容量のデータを高い頻度で書換えてもその管理が負担と
ならず、システム負荷を軽微なものにできる上、書込み
途中での中断に対してもデータを破壊せずに保護するこ
とも可能となる。
【0008】請求項2記載の発明は、請求項1記載の発
明において、上記複数のセクタそれぞれに、そのセクタ
の消去回数を積算記憶するセクタ消去回数を記憶する領
域をさらに設け、上記アクセス制御は、上記セクタ消去
回数に基づいてデータの書込みを行なうセクタを選択す
ることを特徴とする。
【0009】このような方法とすれば、上記請求項1記
載の発明の作用に加えて、消去回数が制限されるフラッ
シュメモリにあって、全てのセクタを平均的に使用する
ように管理することで、特定のセクタのみを繰返し消去
して先に寿命が尽きてしまうようなことがなく、メモリ
全体を有効に活用することができる。
【0010】
【発明の実施の形態】以下図面を参照して本発明の実施
の一形態を説明する。
【0011】図1は同実施の形態に係るフラッシュメモ
リ10の構成を示すもので、同図に示す如くフラッシュ
メモリ10は複数のセクタ11,11,‥‥から構成さ
れる。
【0012】図2は、このフラッシュメモリ10を構成
する1つのセクタ11内の領域構成を示すものである。
同図に示す如く1つのセクタ11は、セクタ管理領域
(16ビット)、親セクタ番号(16ビット)、セクタ
消去回数(32ビット)、及びブロック管理領域(nワ
ード(nは自然数,1ワード=16ビット))からなる
ヘッダ領域と、ブロックデータ部(64×nバイト)、
及び必要により未使用領域からなるデータ領域とから構
成される。
【0013】各領域のサイズは、本来セクタサイズや使
用目的等により最適値が存在するものであるが、ここで
は例えばセクタ全体を8Kバイト、ブロックデータサイ
ズを64バイトとし、図示した未使用領域を生じないも
のとして、n=124に設定するものとする。
【0014】ヘッダ領域のセクタ管理領域は、そのセク
タ全体の状態を管理するフラグで構成されるもので、図
3に示すように上位15〜5の11ビットが未使用で全
て“1”であり、4〜0の下位5ビットが実際のセクタ
管理フラグとなる。
【0015】これらセクタ管理フラグは、その遷移状態
を図示する如く、素子の構造上、5ビット全てが“1”
となった最も安定したフラッシュ後の初期状態で「物理
的に消去されたセクタ」を表わし、以後先頭側から1ビ
ットずつ“0”に書換えることで「未使用セクタ(スペ
アセクタ)」「ガーベッジコレクション中」「親セクタ
消去中」「有効セクタ」及び「削除セクタ」の計6つの
状態を表わすものとする。
【0016】親セクタ番号は、そのセクタの内容が存在
する物理セクタ番号が記述されるもので、図4に示すよ
うに上位15〜8の8ビットが予約領域で全て“1”と
なり、7〜0の下位8ビットが実際の親セクタ番号とな
る。この親セクタ番号は、「0」から順に割り当てられ
る。
【0017】セクタ消去回数は、図5に示す如く31〜
0の全32ビットでそのセクタの累積した消去回数を記
述する。ここでは、「00000001(H)」〜「F
FFFFFFE(H)」の範囲の値をとり、「0000
0000(H)」,「FFFFFFFF(H)」の2つ
の値は使用しないものとする。これは、何かの理由によ
りオール「0」あるいはオール「1」に成ったときに、
データがオール「0」あるいはオール「1」なのか、別
の理由によりオール「0」あるいはオール「1」に成っ
たのか分からなくなるためである。
【0018】ブロック管理領域は、1ワード×n個が一
次配列され、各1ワードで対応するブロックデータ部の
データ1ブロックに関する管理情報を記述するもので、
各ワードにおいては、図6に示す如く上位15〜12の
4ビットでブロックフラグを、11〜8の4ビットで予
約領域を、7〜0の下位8ビットでベースアドレスを表
現する。
【0019】このうち、ブロックフラグは、その遷移状
態を図示する如く、メモリ素子の構造上、4ビット全て
がフラッシュにより“1”となった初期状態で「未使用
領域」を表わし、以後先頭側から1ビットずつ“0”に
書換えることで「書込み途中」「元データ削除中」「有
効データ」及び「削除データ」の計5つの状態を表わす
ものとする。
【0020】また予約領域は、データエリア領域の拡大
時の予約領域であり、総データサイズがブロックサイズ
×256以上になった場合に使用する。
【0021】ベースアドレスは、そのブロックのベース
アドレスの数値をブロックサイズの数値を除数として除
算した商で記述する。
【0022】ブロックデータ部は、図7に示すようにデ
ータサイズ(各ブロック64バイト)×nブロックの一
次配列でデータがブロック化されて書込まれるもので、
各要素は、対応するブロック管理領域のベースアドレス
×ブロックサイズ(64バイト)+0から+63までの
アドレスアドレスのデータに相当する。本実施形態で
は、ブロックを124として説明しているので、第0ブ
ロックから第123ブロックと成っている。
【0023】次に上記セクタ管理領域のセクタ管理フラ
グとブロック管理領域のブロック管理フラグの各遷移状
態を説明する。
【0024】図8はそのセクタ全体の状態を管理するセ
クタ管理フラグの循環的な遷移状態を示すもので、その
セクタにすでにデータを記憶させており、任意にデータ
を読出し可能な状態が「有効セクタ(00001)」と
なる。 その後、当該セクタに記憶されているデータを
読出して他のセクタに転送し、該転送が完了してこのセ
クタに記憶していたデータが他のセクタに確保される
と、このセクタに記憶しているデータはもう必要ないの
で、「セクタ消去開始(削除セクタ)(00000)」
の状態を介して「セクタ消去中…消去終了」として当該
セクタ全体をフラッシュ(オール「1」に)することに
より初期状態である「物理的に消去されたセクタ(11
111)」の状態とする。
【0025】その後、フラッシュを完全に終了した時点
で、セクタ管理フラグの第1(先頭)ビットを“0”に
書換えることで新たなデータの書込みに備えた「未使用
セクタ(スペアセクタ)(01111)」の状態とす
る。
【0026】次いで、セクタ管理フラグの第2ビットも
“0”に書換えることで、このセクタへ他のセクタから
読出した有効データを書込む「ガーベッジコレクション
中(00111)」の状態とする。 さらに、このセク
タへの書込みを終了した時点でセクタ管理フラグの第3
ビットも“0”に書換えることで、上記書込むべきデー
タを読出した他のセクタに対する後処理として「元セク
タ削除中(00011)」の状態とし、セクタ管理フラ
グの第4ビットも“0”に書換えることで、再び上述し
た「有効セクタ(00001)」の状態に移行する。
【0027】上記処理を繰り返すことにより、セクタの
フラッシュが行われる。しかし、これらの処理の途中
で、例えば電源の切断など何らかの要因による処理中断
が発生すると、処理の再開時にセクタ管理フラグ値に基
づいてセクタの状態を判断して、セクタの修復を行う。
【0028】すなわち、図8に示すように、フラグ値
「有効セクタ(00001)」及び「未使用セクタ(0
1111)」は、処理が完了しているので、再開時にも
その内容はそのままとして変更はしない。
【0029】また、フラグ値「セクタ消去開始(000
00)」、「セクタ消去中(11111)」及び「ガー
ベッジコレクション中(00111)」は、セクタのデ
ータの処理途中であり、データの真偽性が定かでないの
で、セクタのブロックデータ部の内容を再度消去しま
す。さらに、フラグ値「元セクタ削除中(0001
1)」もセクタのデータ処理途中であるが、当該セクタ
の処理は完了しているので、元セクタを消去した後、当
該セクタのフラグ値を「有効セクタ(00001)」へ
変更する。
【0030】また、図9は対応するブロックデータ部の
データに関する管理情報を記述する上記ブロック管理領
域のブロック管理フラグの循環的な遷移状態を示すもの
で、そのデータブロックにデータを記憶させている状態
で「有効ブロック(0001)」とする。 その後、当
該ブロックに記憶されているデータを読出して他のデー
タブロックに転送(書込み)すると(例えば、該ブロッ
クのデータの一部を訂正する場合等)、その転送が完了
した時点でこのブロック自体を「削除データ(000
0)」の状態とする。
【0031】その後、当該セクタ全体をフラッシュする
と、このブロック管理フラグも初期状態である「未使用
ブロック(1111)」となる。
【0032】次いで、このデータブロックに他のブロッ
クから読出してきたデータを書込む場合には、新たにブ
ロック管理フラグの先頭の第1ビットを“0”に書換え
ることで「書込み途中(0111)」の状態として、上
記「書込み途中」の状態から書込みが完了すると、ブロ
ック管理フラグの第2ビットを“0”に書換えることで
「元データ削除中(0011)」の状態とし、元ブロッ
クデータを削除したすると、ブロック管理フラグの第3
ビットを”0”に書き換えることで「有効ブロック(0
001)」の状態とする。
【0033】また、セクタ同様、例えば電源の切断など
何らかの要因により処理中断すると、このブロック管理
フラグに基づいてブロックを処理する。
【0034】すなわち、ブロック管理フラグの状態が
「有効ブロック(0001)」、「削除データ(000
0)」及び「未使用ブロック(1111)」であるとき
は、データの処理が完了しているので、処理再開時にも
ブロックデータの内容はそのままとして変更はしない。
【0035】また、ブロック管理フラグの状態が「書込
み途中(0111)」であるときは、当該ブロックへの
データの書き込みが完了しておらず、このブロックのデ
ータの真偽性が不明であるので、当該ブロックを削除デ
ータとする。さらに、ブロック管理フラグの状態が「元
データ削除中(0011)」であるときは、当該ブロッ
クへのデータの書き込みは完了しているので、元ブロッ
クを削除データとした後、当該ブロックのブロック管理
フラグを「有効ブロック(0001)」とする。
【0036】次に本実施の形態の動作として、このフラ
ッシュメモリ上の任意のセクタでの各種データアクセス
の手順を説明する。
【0037】図10はフラッシュメモリ10の任意のセ
クタからランダムにデータを読出す場合の処理手順を示
すものである。なお、このデータの読出しを行なってい
るセクタにあっては、上記図8でも説明した如くそのセ
クタ管理フラグが「有効セクタ(00001)」となっ
ている状態でデータの読出し処理を実行する。
【0038】その当初には、まず読出したいデータが書
込まれているブロックデータ部のアドレスをベースアド
レスとそのベースアドレスに対応するオフセット分とに
分解し(ステップA1)、次いで、当該セクタのブロッ
ク管理領域中に、ブロックフラグが「有効ブロック(0
001)」となっているワードで、該当するベースアド
レスが設定されているものがあるか否かを判断する(ス
テップA2)。
【0039】ここで、該当するベースアドレスがないと
判断した場合には、データの読出しを行なうことができ
ないため、アクセスに異常が生じたものとしてこの処理
を一旦終了し、適宜必要により回復処理を実行する。
【0040】また、ステップA2で該当するベースアド
レスがあると判断すると、次に当該セクタのブロックデ
ータ部の上記ベースアドレス+オフセット分に該当する
位置からこのシステムの所定容量だけデータを読出して
転送する(ステップA3)。
【0041】その後、必要な全データの読出しが完了し
たか否かを判断し(ステップA4)、完了していない場
合には再び上記ステップA1に戻る。
【0042】以後、このセクタ内でのアドレスを更新設
定しながら、同様の処理を繰返し実行し、その後にステ
ップA4で最終的に必要な全データの読出しが完了とし
たと判断すると、以上でこのフラッシュメモリ10から
のデータの読出しを正常に終了したものとして処理す
る。
【0043】次に図11によりフラッシュメモリ10の
任意のセクタに、他のセクタから読出してきたデータを
その一部の内容を変更してランダムに書込む場合の処理
手順を説明する。
【0044】なお、このデータの書込みに際しては、そ
のセクタ管理フラグが「未使用セクタ(スペアセクタ)
(01111)」となっている状態のセクタを選択し、
その第2ビットを“0”に書換えて「ガーベッジコレク
ション中(00111)」の状態とした後に書込み処理
を実行する。
【0045】その当初には、まず内容を変更するデータ
部分のブロックデータ部のアドレスをベースアドレスと
そのベースアドレスに対応するオフセット分とに分解し
(ステップB1)、次いで、当該セクタのブロック管理
領域中に、該当するベースアドレスが設定されているも
のがあるか否かを判断する(ステップB2)。
【0046】ここで、該当するベースアドレスがないと
判断した場合には、データの書込みを行なうことができ
ないため、アクセスに異常が生じたものとしてこの処理
を一旦終了し、適宜必要により回復処理を実行する。
【0047】また、該当するベースアドレスがあると判
断した場合には、次に当該セクタの上記ベースアドレス
に対応するブロック管理領域のブロック管理フラグが
「未使用ブロック」を示す値「1111」であるか否か
により、ブロックデータ部の該当する当該ブロック位置
に直ちにデータを書込むことができるか否かを判断する
(ステップB3)。
【0048】ここで該ブロック管理フラグが「未使用ブ
ロック(1111)」であると判断すると、上記ベース
アドレス+オフセットの位置までのデータを他のセクタ
から上記図10で示した方法により読出してこのセクタ
の当該アドレス位置に書込むことでコピーし(ステップ
B6)、そのコピーの成功を確認する(ステップB
7)。
【0049】その後、変更する内容のデータを上記ベー
スアドレス+オフセットのアドレス位置から適宜範囲に
渡って転送して書込み設定し(ステップB8)、その転
送の成功を確認する(ステップB9)。
【0050】さらに、上記転送を行なった次のアドレス
位置から当該ブロックデータの末端までのデータを再び
他のセクタから上記図10で示した方法により読出して
このセクタの当該アドレス位置に書込むことでコピーし
(ステップB10)、そのコピーの成功を確認する(ス
テップB11)。
【0051】その後、当該セクタへの全データの書込み
を完了したか否か判断し(ステップB12)、完了して
おらず、まだ書込むべきデータがあると判断すると、再
び上記ステップB1からの処理に戻り、同様の処理を繰
返し実行する。
【0052】しかるに、上記ステップB3で、データを
書込もうとするデータブロックのブロック管理フラグが
「未使用ブロック(1111)」ではないと判断した場
合には、そのデータブロックにすでに何らかのデータが
書込まれていることとなるので、このセクタへのさらな
る書込みを中断し、データの書込みを行なうセクタを他
に変更するためのガーベッジコレクション処理を実行し
(ステップB4)、実行後に該コレクションが成功した
ことを確認した上で(ステップB5)、その新たなセク
タにて書込み動作を続行するべく、上記ステップB3か
らの処理に戻る。
【0053】なお、上記ステップB7,B11でデータ
のコピーが失敗したと判断した場合、あるいは上記ステ
ップB9でデータの転送が失敗したと判断した場合、あ
るいは上記ステップB5でガーベッジコレクションが失
敗したと判断した場合には、このセクタへのアクセスに
異常が生じたものとして、この処理を一旦終了する。
【0054】続いて上記ステップB4で述べたガーベッ
ジコレクション処理の詳細について図12により説明す
る。
【0055】すなわち、同図は上記ステップB4のサブ
ルーチンとなるものであり、その当初には、このガーベ
ッジコレクションを実施する対象となるセクタを選択す
る(ステップC1)。
【0056】このとき、対応するブロック管理フラグが
「削除データ(0000)」となっているデータブロッ
クが存在するセクタの中で、上記「セクタ消去回数」の
値が最も小さいものを対象のセクタとして選択すること
で、消去回数に制限があるフラッシュメモリを構成する
各セクタが偏りなく平均的に消去されるようにしてい
る。
【0057】その後、このガーベッジコレクション処理
により転送データを記憶させる未使用セクタ(スペアセ
クタ)を選択する(ステップC2)。
【0058】この未使用セクタ(スペアセクタ)の選択
に際しても、セクタ管理フラグの内容が「01111」
であるセクタの中で、上記「セクタ消去回数」の値が最
も小さいものを選択することで、消去回数に制限がある
フラッシュメモリを構成する各セクタが偏りなく平均的
に消去されるようにしている。
【0059】こうして選択したガーベッジコレクション
セクタの内容を全て読出して未使用セクタ(スペアセク
タ)に書込むことで有効データの転送を実行する(ステ
ップC3)。
【0060】そして、転送終了後に該転送が成功したこ
とを確認し(ステップC4)、その上で、データを読出
し終えた上記ガーベッジコレクションセクタに記憶して
いるデータはもう必要ないので、セクタ管理フラグを
「セクタ消去開始(削除セクタ)(00000)」の状
態を介して「セクタ消去中…消去終了」として当該セク
タ全体をフラッシュすることにより初期状態である「物
理的に消去されたセクタ(11111)」の状態とし、
さらにフラッシュを完全に終了した時点で、その第1ビ
ットを“0”に書換えて「未使用セクタ(スペアセク
タ)(01111)」の状態に変更する(ステップC
5)。
【0061】その後、このセクタの変更が成功したこと
を確認し(ステップC6)、以上でこのガーベッジコレ
クションに関する処理を正常に終了し、上記図11の処
理に戻る。
【0062】なお、上記ステップC4でデータの転送が
成功しなかったと判断した場合、またはステップC6で
セクタの変更に成功しなかったと判断した場合には、こ
のガーベッジコレクション処理を失敗したものとして上
記図11の処理に戻る。
【0063】次に、例えば電源の切断などの要因により
セクタまたはブロックにエラーを生じた際の修復手順を
図13により説明する。
【0064】同図に示すように、エラー修復に際して
は、まずセクタ単位でのエラーの修復を実行する(ステ
ップD1)。この場合、セクタのエラーとして考えられ
るのは、 (1)セクタ消去動作途中の異常終了 (2)ガーベッジコレクション途中の異常終了 (3)元セクタ消去途中の異常終了 の3つのケースである。
【0065】その後、今度は各セクタ内のデータブロッ
クのエラーの修復を実行する(ステップD2)。この場
合、ブロックデータのエラーとして考えられるのは、 (1)書込み途中の異常終了 (2)元のブロックデータ消去中の異常終了 の2つのケースである。
【0066】こうして、セクタ及びデータブロックの修
復を終了すると、以上でエラー修復に関する処理を終了
する。
【0067】以上詳述した如く、フラッシュメモリにお
いて i) 小容量データのランダム読出し ii) 小容量データのランダム書込み iii)自動ガーベッジコレクション iv) 自動エラー修復 v) Wear-Levelling(書換え回数レベル)管理 の各機能を実現したもので、従来のフラッシュメモリの
アクセス制御ではなしえなかった上記i),ii)の機
能を可能とし、また一般的なEEPROMのアクセス制
御では存在しない上記iii)〜v)の各機能を実行す
るものである。特に、これらiii)〜v)の各機能は
自動制御されるために、ユーザは意識する必要がない。
【0068】なお、上記実施の形態では、フラッシュメ
モリを構成する各セクタのサイズを8K、ブロックデー
タのサイズを64バイト、ブロックデータ部に記憶され
るデータブロックの数nを124とした場合について例
示したが、本発明はこれに限るものではなく、これらの
数値は任意に設定することができる。
【0069】その他、本発明はその要旨を逸脱しない範
囲内で種々変形して実施することが可能であるものとす
る。
【0070】
【発明の効果】請求項1記載の発明によれば、セクタ単
位での一括消去を含むアクセス制御を実行することによ
り、小容量のデータを高い頻度で書換えてもその管理が
負担とならず、システム負荷を軽微なものにできる上、
書込み途中での中断に対してもデータを破壊せずに保護
することも可能となる。
【0071】請求項2記載の発明によれば、上記請求項
1記載の発明の効果に加えて、消去回数が制限されるフ
ラッシュメモリにあって、全てのセクタを平均的に使用
するように管理することで、特定のセクタのみを繰返し
消去して先に寿命が尽きてしまうようなことがなく、メ
モリ全体を有効に活用することができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係るフラッシュメモリ
全体の構成を示す図。
【図2】同実施の形態に係るフラッシュメモリの1セク
タ内の構成を示す図。
【図3】図2のセクタ管理領域のビット構成とセクタ管
理フラグの内容とを説明する図。
【図4】図2の親セクタ番号のビット構成を説明する
図。
【図5】図2のセクタ消去回数のビット構成を説明する
図。
【図6】図2のブロック管理領域中の1ワードのビット
構成を説明する図。
【図7】図2のブロックデータ部のデータブロックの構
成を示す図。
【図8】図3のセクタ管理フラグの遷移状態を説明する
図。
【図9】図6のブロック管理フラグの遷移状態を説明す
る図。
【図10】同実施の形態に係るデータ読出し時の処理内
容を示すフローチャート。
【図11】同実施の形態に係るデータ書込み時の処理内
容を示すフローチャート。
【図12】同実施の形態に係るガーベッジコレクション
の処理内容を示すフローチャート。
【図13】同実施の形態に係るエラー修復の処理内容を
示すフローチャート。
【符号の説明】
10…フラッシュメモリ 11…セクタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】フラッシュメモリを複数のセクタに分割設
    定し、 上記複数のセクタそれぞれに、そのセクタの識別情報を
    記憶する領域と、セクタのアクセス状態を示すセクタ管
    理情報を記憶する領域と、複数のデータブロックからな
    るデータ領域と、このデータ領域内の各データブロック
    毎のアクセス状態を示すブロック管理情報からなるブロ
    ック管理領域とを設け、 上記セクタ管理情報とブロック管理情報とに基づいてブ
    ロック単位でのデータの書込み、及びセクタ単位でのデ
    ータの一括消去を含むアクセス制御を行なうことを特徴
    とするフラッシュメモリ制御方法。
  2. 【請求項2】上記複数のセクタそれぞれに、そのセクタ
    の消去回数を積算記憶するセクタ消去回数を記憶する領
    域をさらに設け、 上記アクセス制御は、上記セクタ消去回数に基づいてデ
    ータの書込みを行なうセクタを選択することを特徴とす
    る請求項1記載のフラッシュメモリ制御方法。
JP13876899A 1999-05-19 1999-05-19 フラッシュメモリ制御方法 Pending JP2000330850A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13876899A JP2000330850A (ja) 1999-05-19 1999-05-19 フラッシュメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13876899A JP2000330850A (ja) 1999-05-19 1999-05-19 フラッシュメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2000330850A true JP2000330850A (ja) 2000-11-30

Family

ID=15229753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13876899A Pending JP2000330850A (ja) 1999-05-19 1999-05-19 フラッシュメモリ制御方法

Country Status (1)

Country Link
JP (1) JP2000330850A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003219A1 (en) * 2001-06-28 2003-01-09 Matsushita Electric Industrial Co., Ltd. Non-volatile memory control method
US7383431B2 (en) 2002-06-11 2008-06-03 Seiko Epson Corporation Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory
US7545414B2 (en) 2005-02-08 2009-06-09 Olympus Imaging Corp. Image recording apparatus with memory partitioned and password protected for multiple users
JP2015125598A (ja) * 2013-12-26 2015-07-06 キヤノン株式会社 メモリ制御装置、メモリ制御方法、およびプログラム
JP2017027387A (ja) * 2015-07-23 2017-02-02 株式会社東芝 メモリシステム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003219A1 (en) * 2001-06-28 2003-01-09 Matsushita Electric Industrial Co., Ltd. Non-volatile memory control method
US6879528B2 (en) 2001-06-28 2005-04-12 Matsushita Electric Industrial Co., Ltd. Control method of nonvolatile memory
US7383431B2 (en) 2002-06-11 2008-06-03 Seiko Epson Corporation Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory
CN100407177C (zh) * 2002-06-11 2008-07-30 精工爱普生株式会社 闪存存储器的改写控制系统及存储器改写控制方法
US7545414B2 (en) 2005-02-08 2009-06-09 Olympus Imaging Corp. Image recording apparatus with memory partitioned and password protected for multiple users
JP2015125598A (ja) * 2013-12-26 2015-07-06 キヤノン株式会社 メモリ制御装置、メモリ制御方法、およびプログラム
JP2017027387A (ja) * 2015-07-23 2017-02-02 株式会社東芝 メモリシステム
CN110321247A (zh) * 2015-07-23 2019-10-11 东芝存储器株式会社 内存系统

Similar Documents

Publication Publication Date Title
JP4268396B2 (ja) 1回プログラム可能な不揮発性メモリデバイスのファイル管理
JP4399029B2 (ja) 半導体不揮発性大容量記憶メモリ内の自動摩耗レベリングによるシステム・データ制御の方法およびアーキテクチャ
EP1036364B1 (en) Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US8086787B2 (en) Wear leveling method, and storage system and controller using the same
KR100847506B1 (ko) 기억 장치, 메모리 관리 방법 및 프로그램
JP4031190B2 (ja) メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置
US20080282024A1 (en) Management of erase operations in storage devices based on flash memories
US20030229753A1 (en) Flash memory file system
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
US20100088482A1 (en) Process and Method for Erase Strategy in Solid State Disks
JP2007241576A (ja) 不揮発性記憶装置およびそのデータ書込み方法
KR20040038712A (ko) 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭
JPWO2002054247A1 (ja) データ記録装置及びフラッシュメモリに対するデータ書き込み方法
US20060059297A1 (en) Memory control apparatus, memory control method and program
US20010054129A1 (en) Method, system and computer program
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
JP5183662B2 (ja) メモリ制御装置及びメモリ制御方法
KR20070006502A (ko) 데이터 저장장치, 데이터 저장방법, 및 그 기록매체
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
JP2008123314A (ja) 半導体記憶装置への情報記録方法及び情報記録システム
EP1659497A1 (en) Non-volatile storage device and write method thereof
JP2000330850A (ja) フラッシュメモリ制御方法
CN103389943A (zh) 控制装置、存储装置及存储控制方法