JP2006331025A - データ管理方法 - Google Patents

データ管理方法 Download PDF

Info

Publication number
JP2006331025A
JP2006331025A JP2005152870A JP2005152870A JP2006331025A JP 2006331025 A JP2006331025 A JP 2006331025A JP 2005152870 A JP2005152870 A JP 2005152870A JP 2005152870 A JP2005152870 A JP 2005152870A JP 2006331025 A JP2006331025 A JP 2006331025A
Authority
JP
Japan
Prior art keywords
data
written
buffer
address
buffers
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.)
Granted
Application number
JP2005152870A
Other languages
English (en)
Other versions
JP4105179B2 (ja
Inventor
Nobuko Hosoya
信子 細谷
Masanobu Nojiri
昌伸 野尻
Yoshinori Matsuo
嘉典 松尾
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.)
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Original Assignee
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
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 NTT Electronics Corp, Nippon Telegraph and Telephone Corp filed Critical NTT Electronics Corp
Priority to JP2005152870A priority Critical patent/JP4105179B2/ja
Publication of JP2006331025A publication Critical patent/JP2006331025A/ja
Application granted granted Critical
Publication of JP4105179B2 publication Critical patent/JP4105179B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 フラッシュメモリにおいてデータの更新回数によらず最新データヘのアクセス時間をほぼ一定にすることができるデータ管理方法を得る。
【解決手段】 フラッシュメモリ内に複数個のバッファーを配列状に並べ、データを書き込む際は、複数個のバッファーの先頭のバッファーから順番に、書き込むべきデータを書き込み、次のバッファーに、データを書き込んだバッファーの全アドレスを順番に書き込み、古いデータを新たなデータに書き換える際は、書き込み済みのバッファー群の次にある空きバッファーに新たなデータを書き込み、更に次のバッファーに、読み出すべきデータを書き込んだバッファーの全アドレスを順番に書き込み、その際、古いデータを書き込んだバッファーのアドレスの書込場所に、新たなデータを書き込んだバッファーのアドレスを替わりに書き込む。
【選択図】 図1

Description

本発明は、フラッシュメモリのデータ管理方法に関し、特に、データの更新回数によらず最新データヘのアクセス時間をほぼ一定にすることができるデータ管理方法に関するものである。
データを記録する媒体としてフラッシュメモリがある。フラッシュメモリには、一般に、消去されている状態の論理値は1、書き込まれている場合の論理値は0と記載される。
データを更新する際には、一旦消去(0→1)し、書き込み(1→0)を行なう必要がある。しかし、消去には書き込みの100倍以上の時間を要するため、データを消去してから新たに書き込む作業には時間がかかる。
そこで、データを更新する際に古いデータの消去を伴わない技術が提案されている(例えば、特許文献1又は特許文献2)。この技術においては、データを更新した際に古いデータに「次の物理アドレス部」を添付し、「次の物理アドレス部」が示す箇所に更新データを書き込む。再度更新する場合はその処理を繰り返す。また、読み出し時には、「次の物理アドレス部」に記載されているアドレスを最初から追跡していくことで最新のデータを見つけ、データの読み出しを行なう。これにより、データの変更時にデータ消去を伴わなくなるため、変更時間を短縮することができる。
特開2002−196976号公報 特開2003−122646号公報
しかし、従来技術では、データを更新する度に追跡すべきアドレスの数が増えるため、最新データヘのアクセスに時間がかかるという問題があった。
本発明は、上述のような課題を解決するためになされたもので、その目的は、フラッシュメモリにおいてデータの更新回数によらず最新データヘのアクセス時間をほぼ一定にすることができるデータ管理方法を得るものである。
本発明に係るデータ管理方法は、フラッシュメモリ内に複数個のバッファーを配列状に並べ、データを書き込む際は、複数個のバッファーの先頭のバッファーから順番に、書き込むべきデータを書き込み、次のバッファーに、データを書き込んだバッファーの全アドレスを順番に書き込み、古いデータを新たなデータに書き換える際は、書き込み済みのバッファー群の次にある空きバッファーに新たなデータを書き込み、更に次のバッファーに、読み出すべきデータを書き込んだバッファーの全アドレスを順番に書き込み、その際、古いデータを書き込んだバッファーのアドレスの書込場所に、新たなデータを書き込んだバッファーのアドレスを替わりに書き込む。本発明のその他の特徴は以下に明らかにする。
本発明により、読み出すべきデータの全アドレスは書き込み済みのバッファー群の端に常にあることになるため、フラッシュメモリにおいてデータの更新回数によらず最新データヘのアクセス時間をほぼ一定にすることができる。
実施の形態1.
以下、本発明の実施の形態1に係るデータ管理方法について図1を参照しながら説明する。
まず、フラッシュメモリ内に、図1(a)に示すように、書き込みが可能な領域であるバッファーA,B,C・・・を複数個、配列状に並べて設ける。次に、1個のデータを書き込む場合は、例えば、アドレスαにあるバッファーAにデータ1を書き込む。そして、次のバッファーBの1番目の書込場所にアドレスαを書き込む。これにより、読み出し時には、バッファーBにアクセスすることによりアドレスαに書き込んでいるデータ1を読み出すことができる。
また、複数個のデータを書き込む場合は、複数個のバッファーの先頭のバッファーから順番に、書き込むべきデータを1個のバッファーにつき1個ずつ書き込む。書き込むべきデータのサイズが1つのバッファーサイズよりも大きい場合は、1個のデータを複数個のバッファーに書き込むことも可能である。この場合は、書き込んだデータの先頭のアドレスを書き込めばよい。ただし、既にアドレスを書き込んだバッファーが他にあれば、そこから全アドレスをコピーして書き込む。例えば、図1(b)に示すように、アドレスαのバッファーAにデータ1、アドレスβのバッファーBにデータ2を書き込む。そして、次のバッファーCの1番目の書込場所にアドレスαを書き込み、2番目の書込場所にアドレスβを書き込む。
このように複数個のデータを書き込む場合は、次のバッファーに、データを書き込んだバッファーの全アドレスを順番に書き込む。これにより、データを読み出す際に、アドレスを書き込んだバッファーにアクセスすることにより、目的のデータを読み出すことができる。
次に、バッファーAに書き込まれた古いデータ1を新たなデータ11に書き換える場合について説明する。まず、図1(c)に示すように、書き込み済みのバッファー群A〜Cの次にある空きバッファーDに新たなデータ11を書き込む。そして、更に次のバッファーEに、読み出すべきデータを書き込んだバッファーの全アドレスを順番に書き込む。
その際、古いデータ1を書き込んだバッファーAのアドレスαの書込場所(1番目)に、新たなデータ11を書き込んだバッファーDのアドレスγを替わりに書き込む。これにより、データ11がデータ1に書き換えられたことを判断することができる。
また、データが新しくなっていないデータ2については、バッファーCの2番目の書込場所に書き込んであるアドレスβをバッファーEの2番目の書込場所にそのままコピーする。
これにより、読み出すべきデータの全アドレスは書き込み済みのバッファー群の端に常にあることになるため、フラッシュメモリにおいてデータの更新回数によらず最新データヘのアクセス時間をほぼ一定にすることができる。
実施の形態2.
以下、本発明の実施の形態2に係るデータ管理方法について図面を参照しながら説明する。
まず、図2に示すように、複数個のバッファーA,B,C・・・と同数の複数個のフラッグa,b,c・・・を一定のサイズで設け、複数個のフラッグを複数個のバッファーと1対1で対応させる。そして、各フラッグに、対応するバッファーの状態が分かる値を入れる。少なくとも何れかのフラッグに、読み出すべきデータの全アドレスが書き込まれたバッファーの場所を示す値を入れる。
また、書き込み時や読み出し時にフラッグの値を検索する際に二分探索を行う。これによって、更新回数が多くなっても、最新データヘのアクセス時間がほぼ一定となる。
データを書き込む際の流れについて図3を参照しながら説明する。ただし、フラッグは2ビットとし、対応するバッファーに書き込みされていない状態のフラッグの値を「11」(未使用)とし、バッファーにデータが書き込まれている状態のフラッグの値を「10」(使用済)とし、バッファーにアドレスが書き込まれている状態のフラッグの値を「00」(アドレス格納済)とする。
まず、フラッグを二分探索し、書き込み可能なバッファーに対応するフラッグを検索する。ここでは、探索条件を「未使用で、先頭にあるフラッグ」とする。図3(a)に示すようにフラッグaが「11」(未使用)の場合、フラッグaに対応するバッファーAは書き込みが可能である。
次に、図3(b)に示すように、フラッグaを「11」から「10」に変更する。そして、図3(c)に示すように、フラッグaに対応するバッファーA(アドレスα)にデータを書き込む。1つのバッファーに書き込むデータの数は1個なので、複数のデータを書き込む場合には、次のバッファーに同様の手順でデータを書き込む。ここでは、フラッグbを「11」から「10」にし、バッファーB(アドレスβ)にデータ2を書き込む。
全てのデータが書き込まれた後に、データが書き込まれたバッファーの次のバッファーにアドレスを書き込む。ここでは、フラッグcを「11」から「10」にした後、データ1を書き込んだバッファーA、データ2を書き込んだバッファーBのそれぞれのアドレスα、βを、バッファーCに順番に書き込む。このとき、各アドレスは、バッファーCのどこに書き込まれたかが分かるようにする。ここでは、図3(d)に示すように、アドレスαをバッファーCの1番目の書込場所に書き込み、アドレスβをバッファーCの2番目の書込場所に書き込む。全てのアドレスの書き込みが終わった後に、図3(e)に示すように、フラッグcを「10」から「00」にして、バッファーCにアドレスが書き込まれていることを表示する。
次に、古いデータを新たなデータに書き換える際の流れについて図4を参照しながら説明する。まず、書き換え前は、図4(a)に示すように、バッファーA(アドレスα)にデータ1が書き込まれ、バッファーB(アドレスβ)にデータ2が書き込まれ、バッファーCの1番目にアドレスα、2番目にアドレスβが書き込まれている。そして、バッファーAに書き込まれた古いデータ1を新たなデータ11に書き換えるには以下のようにする。
まず、書き込み時と同様に二分探索を行ない、書き込み可能なバッファーに対応しているフラッグを検索する(ここではフラッグd)。そして、図4(b)に示すように、フラッグdの値を「11」から「10」にして、対応するバッファーD(アドレスγ)にデータ11を書き込む。
次に、図4(c)に示すように、データの書き込み後、次のバッファーEに対応するフラッグeを「11」から「10」にする。そして、バッファーEの1番目の書込場所にアドレスγを書き込み、2番目の書込場所にアドレスβを書き込む。即ち、バッファーCにおいてアドレスαを書き込んでいた書込場所(1番目)にアドレスγを書き込む。また、書き換えられていないバッファーBのアドレスβは、バッファーEにおいても、バッファーCにおいてアドレスが書き込まれた書込場所(2番目)に書き込む。その後、図4(d)に示すように、フラッグeの値を「10」から「00」に変更し、アドレスを書き込んでいることを表示する。
次に、データを読み出す際の流れについて図5を参照しながら説明する。フラッシュメモリには、図5(a)に示すように、バッファーA(アドレスα)にデータ1、バッファーB(アドレスβ)にデータ2、バッファーCにアドレスαとアドレスβ、バッファーD(アドレスγ)にデータ1を書き換えたデータ11、バッファーEにアドレスγとアドレスβが書き込まれている。
データの書き込みと同様に、フラッグを二分探索し、書き込み可能なフラッグを検索する。ここでは、図5(b)に示すように、フラッグfが未使用で先頭にあるフラッグである。そこで、フラッグeから先頭に向かってフラッグの値が「00」であるフラッグを1つずつ検索する。そして、図5(c)に示すように、値が「00」のフラッグeに対応するバッファーEに書き込んであるアドレスγとアドレスβにアクセスすることで、最新データのデータ11とデータ2を読み出す。
これにより、実施の形態1と同様に、読み出すべきデータの全アドレスは書き込み済みのバッファー群の端に常にあることになるため、フラッシュメモリにおいてデータの更新回数によらず最新データヘのアクセス時間をほぼ一定にすることができる。また、フラッグの値を検索する際に二分探索を行うことにより、検索時間はフラッグの値の場所によらず一定時間内に収まる。
具体的には、1kのバイナリーデータの読み出しに要する時間は、従来技術では55.4msだったのに対し、本発明では17.4msに短縮することができる。また、1kのバイナリーデータの書き込みに要する時間は、従来技術では575.4msだったのに対し、本発明では49.2msに短縮することができる。
なお、フラッグは、フラッシュメモリの中に設置するのに限らず、フラッシュメモリ外に設置してもよい。この場合、書き込み処理の完了後に、フラッシュメモリ外にあるフラッグをフラッシュメモリ内に書き写すことによって、バッファーをどこまで使用したのか、という情報を継続的に保持することができる。また、フラッグの状態は2ビットで表示する必要はなく、3段階の状態が表示できればよい。
実施の形態3.
実施の形態1及び2では、データが書き込まれているバッファーのアドレスを参照することによって、最新のデータが書き込まれているバッファーにアクセスしていた。これに対し、実施の形態3では、図6に示すように、バッファーGにアドレスεとアドレスζを書き込む。このアドレスεにはアドレスαとアドレスβが書き込まれ、アドレスζにはアドレスγとアドレスδが書き込まれている。即ち、読み出すべきデータのアドレスが書き込まれたバッファーC,Fのアドレスε,ζをバッファーGに書き込む。これにより、更に多くのデータを参照することができる。
なお、図6では、フラッグcとフラッグfの値を「10」としていている。これはバッファーCとFに情報をアドレス情報としてではなく通常の情報として書き込んだ場合である。一方、バッファーCとFに情報をアドレス情報として書き込む場合は、対応するフラッグの値を「00」とする。この場合、バッファーに書き込むアドレス情報にアドレスの階層情報を含めることで、アドレス情報が上位層なのか、下位層なのかが分かるようにすればよい。
本発明の実施の形態1に係るデータ管理方法を説明するための図である。 本発明の実施の形態2に係るデータ管理方法で用いるバッファー及びフラッグを示す図である。 本発明の実施の形態2に係るデータ管理方法におけるデータを書き込む際の流れを説明するための図である。 本発明の実施の形態2に係るデータ管理方法における古いデータを新たなデータに書き換える際の流れを説明するための図である。 本発明の実施の形態2に係るデータ管理方法におけるデータを読み出す際の流れを説明するための図である。 本発明の実施の形態3に係るデータ管理方法を説明するための図である。

Claims (3)

  1. フラッシュメモリ内に複数個のバッファーを配列状に並べ、
    データを書き込む際は、前記複数個のバッファーの先頭のバッファーから順番に、書き込むべきデータを書き込み、次のバッファーに、前記データを書き込んだバッファーの全アドレスを順番に書き込み、
    古いデータを新たなデータに書き換える際は、書き込み済みのバッファー群の次にある空きバッファーに前記新たなデータを書き込み、更に次のバッファーに、読み出すべきデータを書き込んだバッファーの全アドレスを順番に書き込み、その際、前記古いデータを書き込んだバッファーのアドレスの書込場所に、前記新たなデータを書き込んだバッファーのアドレスを替わりに書き込むことを特徴とするデータ管理方法。
  2. 前記複数個のバッファーと同数の複数個のフラッグを一定のサイズで設け、
    前記複数個のフラッグを前記複数個のバッファーと1対1で対応させ、
    前記複数個のフラッグの何れかに、読み出すべきデータの全アドレスが書き込まれたバッファーの場所を示す値を入れることを特徴とする請求項1に記載のデータ管理方法。
  3. 前記フラッグの値を検索する際に二分探索を行うことを特徴とする請求項2に記載のデータ管理方法。
JP2005152870A 2005-05-25 2005-05-25 データ管理方法 Active JP4105179B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005152870A JP4105179B2 (ja) 2005-05-25 2005-05-25 データ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005152870A JP4105179B2 (ja) 2005-05-25 2005-05-25 データ管理方法

Publications (2)

Publication Number Publication Date
JP2006331025A true JP2006331025A (ja) 2006-12-07
JP4105179B2 JP4105179B2 (ja) 2008-06-25

Family

ID=37552659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005152870A Active JP4105179B2 (ja) 2005-05-25 2005-05-25 データ管理方法

Country Status (1)

Country Link
JP (1) JP4105179B2 (ja)

Also Published As

Publication number Publication date
JP4105179B2 (ja) 2008-06-25

Similar Documents

Publication Publication Date Title
JP5328020B2 (ja) メモリ装置及びメモリアクセス方法
JP4948793B2 (ja) バッドブロック管理部を含むフラッシュメモリシステム
KR100871027B1 (ko) 데이터 기록 장치 및 플래시 메모리에 대한 데이터 기입방법
US6871259B2 (en) File system including non-volatile semiconductor memory device having a plurality of banks
JP2007280428A (ja) メモリ管理
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
US7610436B2 (en) Semiconductor device having flash memory with a data length table
JP2008130088A (ja) 不揮発性メモリ管理方法及び装置
KR100370893B1 (ko) 일괄 소거형 비휘발성 메모리 장치
US20100306447A1 (en) Data updating and recovering methods for a non-volatile memory array
US8156278B2 (en) Non-volatile data storage system and method thereof
CN107045423B (zh) 存储器装置及其数据存取方法
TWI450271B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
KR20050079991A (ko) 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
TWI413984B (zh) 快閃記憶體裝置以及資料更新方法
JPH11282765A (ja) フラッシュメモリを使用した外部記憶装置
JP4105179B2 (ja) データ管理方法
JP4468342B2 (ja) データ管理方法
TW201621668A (zh) 資料儲存裝置及其資料寫入方法
JP3646679B2 (ja) 不揮発性メモリのデータ書き換え方法
US10559359B2 (en) Method for rewriting data in nonvolatile memory and semiconductor device
JP2004206615A (ja) 記憶装置
KR20050009045A (ko) 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080229

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080326

R150 Certificate of patent or registration of utility model

Ref document number: 4105179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140404

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350