JP2011530758A - フラッシュメモリ制御方法および制御装置 - Google Patents
フラッシュメモリ制御方法および制御装置 Download PDFInfo
- Publication number
- JP2011530758A JP2011530758A JP2011522887A JP2011522887A JP2011530758A JP 2011530758 A JP2011530758 A JP 2011530758A JP 2011522887 A JP2011522887 A JP 2011522887A JP 2011522887 A JP2011522887 A JP 2011522887A JP 2011530758 A JP2011530758 A JP 2011530758A
- Authority
- JP
- Japan
- Prior art keywords
- block
- flash memory
- page
- memory control
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 133
- 238000004064 recycling Methods 0.000 claims abstract description 55
- 230000006870 function Effects 0.000 claims abstract description 31
- 238000004364 calculation method Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 18
- 230000007704 transition Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
フラッシュメモリ制御方法および制御装置が提供される。フラッシュメモリ制御方法は、フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能が支援される環境において、前記多重ブロック消去機能を考慮して使用可能なブロックリサイクル方式それぞれの費用を算出するステップと、前記算出された費用に基づいて前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択するステップと、前記使用可能なブロックリサイクル方式のうち選択された少なくとも1つを用いて少なくとも1つのブロックを管理するステップとを含む。
Description
本発明の実施形態は、フラッシュメモリに存在するブロックに記録されたデータを整理し、前記ブロックをリサイクルする技術に関する。
フラッシュメモリは、データを電気的に消去(erase)したり、プログラムすることのできる非揮発性メモリであって、データの記録および削除が自由なRAMの長所と電源の供給なくても記録されているデータを格納するROMの長所を同時に有する。このようなフラッシュメモリは、デジタルカメラ、PDA、MP3プレーヤー、携帯用電話機、移動式の保存媒体などのように多くのアプリケーションで用いられている。
フラッシュメモリは複数のブロックに構成され、複数のブロックそれぞれは複数のページを含む。
フラッシュメモリにおいて、データはページ単位でプログラムすることができる。すなわち、プログラム動作が行われる場合、データはフラッシュメモリに存在するページに順次記録され得る。また、一般的なフラッシュメモリにおいて実際実現上の問題、設計の複雑度の増加などによってデータはブロック単位に消去される。例えば、1つのブロックが2以上のページを含む場合、一般的なフラッシュメモリはブロック全体(2以上のページ全て)に対して消去動作を行なうことがあるが、2以上のページのうちいずれか1つに対して順次消去動作を行なわない。
また、フラッシュメモリは、本来のその場更新(in−place update)が不可能であるという制約を有する。すなわち、ページAに記録されたデータに対する更新が必要な場合、更新されたデータは再びページAにプログラムされることができず、初期化された状態を有するページBにプログラムされなければならない。
このとき、データの更新回数が増加する場合、過去に用いられたページは無効(invalid)ページになる。したがって、このようなフラッシュメモリを効率的に用いるためには無効ページを適切に収集して初期化することによって、初期化されたブロックを製造しなければならない。無効ページを適切に収集して初期化するために用いられる方式を「ブロックリサイクル方式」という。
本発明の一実施形態に係るフラッシュメモリ制御装置および制御方法は、フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能を支援することによって、ブロックリサイクルに消耗する費用を減少する。
また、本発明の一実施形態に係るフラッシュメモリ制御装置および制御方法は、多重ブロック消去機能を考慮して使用可能なブロックリサイクル方式それぞれの費用を算出し、算出結果に基づいて少なくとも1つのブロックリサイクル方式を選択することによって、ブロックリサイクルに最適化した方式を用いる。
また、本発明の一実施形態に係るフラッシュメモリ制御装置および制御方法は、ブロック単位でないページ単位に基づいて選択的に無効ページに記録された除去対象データを消去することによって、より効率的な新しいブロックリサイクル方式を提供する。
本発明の一実施形態に係る第1ブロックおよび第2ブロックを含むフラッシュメモリ制御方法は、前記第1ブロックに存在する少なくとも1つの無効ページに記録された除去対象データを選択的に消去するステップと、前記除去対象データが消去された前記第1ブロックに存在する少なくとも1つの無効ページに、前記第2ブロックに存在する少なくとも1つの有効ページに記録された有効データを複写するステップと、前記第2ブロックに存在する複数のページに記録されたデータを消去するステップとを含む。
また、本発明の一実施形態に係るフラッシュメモリ制御方法は、フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能が支援される環境において、前記多重ブロック消去機能を考慮して使用可能なブロックリサイクル方式それぞれの費用を算出するステップと、前記算出された費用に基づいて前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択するステップと、前記使用可能なブロックリサイクル方式のうち選択された少なくとも1つを用いて少なくとも1つのブロックを管理するステップとを含む。
また、本発明の一実施形態に係るフラッシュメモリ制御装置は、フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能を支援する消去部と、前記多重ブロック消去機能が支援される環境において、使用可能なブロックリサイクル方式のうち少なくとも1つを用いて少なくとも1つのブロックを管理する管理部とを含む。
本発明の一実施形態に係るフラッシュメモリ制御装置および制御方法は、フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能を支援することによって、ブロックリサイクルに消耗する費用を減少させることができる。
また、本発明の一実施形態に係るフラッシュメモリ制御装置および制御方法は、多重ブロック消去機能を考慮して使用可能なブロックリサイクル方式それぞれの費用を算出し、算出結果に基づいて少なくとも1つのブロックリサイクル方式を選択することによって、ブロックリサイクルに最適化された方式を用いることができる。
また、本発明の一実施形態に係るフラッシュメモリ制御装置および制御方法はブロック単位ではないページ単位に基づいて選択的に無効ページに記録された除去対象データを消去することによって、より効率的な新しいブロックリサイクル方式を提供することができる。
以下、本発明に係る好適な実施形態を添付された図面を参照して詳細に説明する。
(ブロックリサイクル方式)
フラッシュメモリをより効率的に用いるため無効ページを適切に収集して初期化しなければならない。このとき、無効ページを適切に収集して初期化するために用いられる方式を「ブロックリサイクル方式」という。
フラッシュメモリをより効率的に用いるため無効ページを適切に収集して初期化しなければならない。このとき、無効ページを適切に収集して初期化するために用いられる方式を「ブロックリサイクル方式」という。
ブロックリサイクル方式は多様に存在することがあり、より具体的には、併合演算方式、交換演算方式、複写後交換演算方式、または移行演算(migration operation)方式を含んでもよい。以下は、併合演算方式、交換演算方式、複写後交換演算方式および移行演算方式に対して詳細に説明する。
(1)併合演算方式
図1は、本発明の一実施形態に係るブロックに対する併合演算過程を概念的に示す図である。
図1は、本発明の一実施形態に係るブロックに対する併合演算過程を概念的に示す図である。
図1を参照すれば、フラッシュメモリは、データブロックBLK0、ログブロックLOG0、空いているブロックFREE0を含む。ここで、データブロックBLK0、ログブロックLOG0、空いているブロックFREE0はそれぞれ4個のページから構成される。
データブロックBLK0に存在する4個のページには最初に本来のデータが記録され、前記データに対する更新が必要な場合、更新されたデータはログブロックLOG0に存在するページに記録される。また、ログブロックLOG0に存在するページに記録されたデータはログブロックLOG0内で継続的に更新される。
図面符号110を参照すれば、データブロックBLK0で最初のページと3番目のページに記録されたデータは更新されてログブロックLOG0に記録されたため、捨てられるべき意味のないデータである。ここで、データブロックBLK0において最初のページと3番目のページを無効(invalid)ページという。ただし、データブロックBLK0において2番目のページと4番目のページに格納されたデータは意味のあるデータであるため、2番目のページと4番目のページは有効ページである。
また、図面符号110において、ログブロックLOG0の最初のページに記録されたデータは更新されて2番目のページに記録され、3番目のページに記録されたデータは更新されて4番目のページに記録される。結局、ログブロックLOG0の最初のページおよび3番目のページは無効ページであり、2番目のページおよび4番目のページは有効ページである。
併合演算方式によれば、データブロックBLK0およびログブロックLOG0の有効ページに記録されているデータは空いているブロックFREE0のページに複写される。より具体的に、データブロックBLK0の2番目のページおよび4番目のページに記録されたデータはそれぞれ空いているブロックFREE0の2番目のページおよび4番目のページに複写される。また、ログブロックLOG0の2番目のページおよび4番目のページに記録されたデータはそれぞれ空いているブロックFREE0の最初のページおよび3番目のページに複写される。結果的に、空いているブロックFREE0には有効ページに記録されていたデータのみが格納されるのであろう。
図面符号120を参照すれば、図面符号110の空いているブロックFREE0は新しいデータブロックBLK0になる。すなわち、新しいデータブロックBLK0には有効ページに記録されていたデータが整理された状態に記録される。このとき、従来におけるデータブロックBLK0とログブロックLOG0はブロック単位に全体的に消去される。ただし、本発明の一実施形態によれば、ページ単位に消去動作が行われ、これについては以下で詳細に説明する。
図面符号130は従来における(図面符号110の)データブロックBLK0とログブロックLOG0が消去されることによって初期化されたことを表す。また、従来のデータブロックBLK0は、新しいログブロックLOG0になる。また、新しいデータブロックBLK0は、意味のあるデータのみ格納していることが分かる。結局、併合演算過程によれば、図面符号110、120および130に示された過程によってブロックがリサイクルされていることが分かる。
このとき、データを複写するために求められるページ当たり費用がCcpであり、複写されるページの数が1つのブロックに含まれたページの数とNpとして同一であると仮定する。また、ブロックを消去するために求められる費用がCEと仮定する。また、併合演算方式を適用することによって得られる空いているページの数はNpである。したがって、併合演算方式を適用する場合、1つの空いているページを獲得するために求められる費用は数1のように表してもよい。
ただし、以下で説明するが、複数のブロックに対して同時に消去動作を行なうことのできる多重ブロック消去機能が支援される場合、数1は変更されなければならない。これに対しては以下で再び説明する。
(2)交換演算方式
リサイクルされなければならないデータブロックに存在する全てのページが無効ページであり、前記データブロックに対応するログブロックに存在する全てのページが有効ページである場合に交換演算方式が適用され得る。
リサイクルされなければならないデータブロックに存在する全てのページが無効ページであり、前記データブロックに対応するログブロックに存在する全てのページが有効ページである場合に交換演算方式が適用され得る。
図2は、本発明の一実施形態に係るブロックに対する交換演算過程を概念的に示す図である。
図面符号210を参照すれば、データブロックBLK0に存在する4個のページは全て無効ページであり、ログブロックLOG0に存在する4個のページは全て有効ページである。このとき、データブロックBLK0に対して消去が行われる。
図面符号220を参照すれば、図面符号210のデータブロックBLK0は消去されたことが分かる。また、図面符号210のデータブロックBLK0は新しいログブロックLOG0になり、図面符号210のログブロックLOG0が新しいデータブロックBLK0になる。
交換演算方式によって4個の空いているページが獲得される。一般に、交換演算方式を適用する場合、1つの空いているページを獲得するために求められる費用は数2のように表してもよい。
(3)複写後交換演算方式
複写後交換演算方式はリサイクルされなければならないデータブロックに対応するログブロックの全てのページが有効ページである場合に適用され得る。
複写後交換演算方式はリサイクルされなければならないデータブロックに対応するログブロックの全てのページが有効ページである場合に適用され得る。
図3は、本発明の一実施形態に係るブロックに対する複写後交換演算過程を概念的に示す図である。
図面符号310を参照すれば、データブロックBLK0は3つの無効ページと1つの有効ページを含む。また、データブロックBLK0の3つの無効ページに記録されていたデータは更新されてログブロックLOG0に存在する3つのページに記録されている。複写後交換演算方式によれば、データブロックBLK0の4番目のページである有効ページに記録されたデータはログブロックLOG0の空いているページである4番目のページに複写される。
また、図面符号320を参照すれば、データブロックBLK0の4番目のページに記録されたデータがログブロックLOG0の4番目のページに複写されたため、データブロックBLK0の4番目のページは無効ページとなる。このとき、データブロックBLK0は消去される。
また、図面符号330を参照すれば、図面符号310および320のデータブロックBLK0は消去され、図面符号310および320のログブロックLOG0は全て有効ページに構成される。このとき、データブロックBLK0とログブロックLOG0は互いに交換されることによって、図面符号310および320のログブロックLOG0は新しいデータブロックBLK0になり、図面符号310および320のデータブロックBLK0は新しいログブロックLOG0になる。
複写後交換演算方式によれば、Np個の新たに空いているページを獲得するために複写過程においてkCcp(k:複写されるページの数)費用が消耗され、消去過程においてCEの費用が消耗されることが分かる。結局、複写後交換演算方式によって1つの新たに空いているページを獲得するために求められる費用は数3のように表してもよい。
(4)移行演算(migration operation)方式
移行演算方式によれば、リサイクルされなければならないデータブロックに対応するログブロックのk個の有効ページは空いているブロックのページに複写される。その後、ログブロックは消去される。これによって、消去されたログブロックは新たに空いているブロックになる。
移行演算方式によれば、リサイクルされなければならないデータブロックに対応するログブロックのk個の有効ページは空いているブロックのページに複写される。その後、ログブロックは消去される。これによって、消去されたログブロックは新たに空いているブロックになる。
図4は、本発明の一実施形態に係るブロックに対する移行演算過程を概念的に示す図である。
図面符号410を参照すれば、ログブロックLOG0に存在する4個のページのうち3つのページは無効ページであり、1つのページのみが有効ページであることが分かる。このとき、ログブロックLOG0の4番目のページに記録されているデータは空いているブロックFREE0に存在するページに複写される。
また、図面符号420を参照すれば、ログブロックLOG0の4番目のページに記録されているデータが空いているブロックFREE0に存在するページに複写されたため、ログブロックLOG0の4番目のページは無効ページと処理される。このとき、ログブロックLOG0は消去される。
また、図面符号430を参照すれば、図面符号420のログブロックLOG0が消去され、新しく空いているブロックFREE0が製造される。
結局、移行演算方式によれば、Np(1つのブロックに含まれたページの数)−k(複写されたページの数)個の新たに空いているページが製造されることが分かる。すなわち、Np−k個の新たに空いているページを製造するために消去過程においてCEの費用が求められ、複写過程においてkCcpの費用が求められる。したがって、移行演算方式を介して1つの新たに空いているページを獲得するために求められる費用は数4のように表してもよい。
変換演算、交換演算、交換後複写演算、移行演算方式に対する前述した内容はブロック単位に消去動作が行われる場合に関するものである。ただし、複数のブロックに対して同時に消去動作が行われるか、ページ単位に消去動作が行われる場合、前述したブロックリサイクル方式とは異なる方式が提案され得る。
(ページ消去後複写演算方式)
図5は、本発明の一実施形態に係るページ単位消去機能を支援するページ消去後複写演算過程を概念的に示す図である。
図5は、本発明の一実施形態に係るページ単位消去機能を支援するページ消去後複写演算過程を概念的に示す図である。
図面符号510を参照すれば、ページ単位に消去動作が行われることがあるため、ログブロックLOG0に存在する無効ページである3番目のページのみが消去される。すなわち、ログブロックLOG0の有効ページである最初のページ、2番目のページ、4番目のページはそのまま維持され、3番目のページのみが選択的に消去される。
また、図面符号520を参照すれば、データブロックBLK0に存在する有効ページは、ログブロックLOG0の空いているページに複写される。その後、データブロックBLK0に存在する有効ページは無効ページとして取り扱われる。
また、図面符号530を参照すれば、データブロックBLK0は消去される。
また、図面符号540を参照すれば、図面符号530のログブロックLOG0は有効ページのみを含む。すなわち、図面符号530のログブロックLOG0は新しいデータブロックBLK0として取り扱われる。
また、図面符号530のデータブロックBLK0は消去されるため、空いているブロックになり、その後、新しいデータブロックBLK0に対応する新しいログブロックLOG0として取り扱われる。
ただし、ページ単位に消去動作が行われ得る場合であっても、一回の消去動作が行われる時、消去されなければならない最小限のページの数が1よりも大きい場合があり得る。例えば、最小限に2つまたは3つのページに対して消去動作が行われる場合があり得る。このとき、図面符号510のログブロックLOG0に存在する無効ページのみを消去することは不可能であり、図面符号510のログブロックLOG0に存在する無効ページを消去するためには有効ページを消去せざるを得ない場合が発生する。
このような場合、本発明の一実施形態によれば、消去動作を行う前に消去動作が行われるとき、消去せざるを得ない有効ページを他の空いているページに予め複写しておいてもよい。その後、前記他の空いているページに予め複写されたデータを新しいデータブロックLOG0に再び複写することによって、消去せざるを得ない有効ページにあるデータを保存することができる。
結局、ページ消去後複写演算方式によれば、無効ページを消去するためにCPEの費用が求められ、k個の有効ページを複写するためにkCcpの費用が求められる。また、いずれか1つのブロックを消去するためにCEの費用が消耗される。また、ページ消去後複写演算方式によって1つの新たに空いているブロックが獲得されるため、得られるページの数はNpである。
したがって、ページ消去後複写演算方式によって1つの新たに空いているページを獲得するために求められる費用は数5のように表してもよい。
ここで、αは無効ページを消去するためには有効ページを消去せざるを得ない場合、さらに必要な複写過程に対応する費用である。
(多重ブロック消去機能が支援される環境において、ブロックリサイクル方式の費用モデル)
前述した実施形態は、消去動作が1つのブロックに対してのみ行われる場合、ブロックリサイクル方式の動作原理および費用について説明した。ただし、本発明の一実施形態によれば、複数のブロックに格納されたデータ(情報)を同時に消去してもよい。このような場合、ブロックリサイクル方式それぞれに対して1つのページを獲得するために求められる費用は修正しなければならない。
前述した実施形態は、消去動作が1つのブロックに対してのみ行われる場合、ブロックリサイクル方式の動作原理および費用について説明した。ただし、本発明の一実施形態によれば、複数のブロックに格納されたデータ(情報)を同時に消去してもよい。このような場合、ブロックリサイクル方式それぞれに対して1つのページを獲得するために求められる費用は修正しなければならない。
以下は、M個のブロックに対して同時に消去動作が行われると仮定する。
(1)併合演算方式の費用モデル修正
図1と関連する説明および数1において、1つのブロックを消去するために求められる費用がCEと仮定したが、M個のブロックが同時に消去される場合、1つのブロックを消去するために求められる費用はCE/Mに減少する。したがって、数1は数6のように修正しなければならない。
図1と関連する説明および数1において、1つのブロックを消去するために求められる費用がCEと仮定したが、M個のブロックが同時に消去される場合、1つのブロックを消去するために求められる費用はCE/Mに減少する。したがって、数1は数6のように修正しなければならない。
(2)交換演算方式の費用モデル修正
多重ブロック消去機能が支援される環境において、数2は数7のように修正しなければならない。
多重ブロック消去機能が支援される環境において、数2は数7のように修正しなければならない。
(3)複写後交換演算方式の費用モデル修正
多重ブロック消去機能が支援される環境において、数3は数8のように修正しなければならない。
多重ブロック消去機能が支援される環境において、数3は数8のように修正しなければならない。
(4)移行演算方式の費用モデル修正
多重ブロック消去機能が支援される環境において、数4は数9のように修正しなければならない。
多重ブロック消去機能が支援される環境において、数4は数9のように修正しなければならない。
(5)ページ消去後複写演算方式の費用モデル修正
多重ブロック消去機能が支援される環境において、数5は数10のように修正しなければならない。
多重ブロック消去機能が支援される環境において、数5は数10のように修正しなければならない。
図6は、本発明の一実施形態に係るフラッシュメモリ制御方法において用いられるページ消去後複写演算方式を示した動作フローチャートである。
図6を参照すれば、本発明の一実施形態に係るページ消去後複写演算方式は、第1ブロックに存在する少なくとも1つの無効ページに記録された除去対象データを選択的に消去する(S610)。ここで、第1ブロックは、データブロックまたはログブロックのうちのいずれか1つであってもよい。
すなわち、ページ消去後複写演算方式は、ページ消去機能が支援される環境で適用され、消去されるページの数は1以上であってもよい。ただし、前記第1ブロックに存在する少なくとも1つの無効ページに記録された除去対象データを選択的に消去する時、前記第1ブロックに存在する少なくとも1つの有効ページに記録されたデータが消去されることが発生し得る。
このとき、本発明の一実施形態に係るページ消去後複写演算方式は、第3ブロックに存在する少なくとも1つのページに前記第1ブロックに存在する少なくとも1つの有効ページに記録されたデータを複写するステップをさらに含んでもよい(図6に図示せず)。
また、本発明の一実施形態に係るページ消去後複写演算方式は、前記除去対象データが消去された前記第1ブロックに存在する少なくとも1つの無効ページに第2ブロックに存在する少なくとも1つの有効ページに記録された有効データを複写する(S620)。
もし、前記第3ブロックに存在する少なくとも1つのページに第1ブロックの有効ページから複写されたデータが存在すれば、前記データは前記第1ブロックに存在するページに複写されてもよい。
また、本発明の一実施形態に係るページ消去後複写演算方式は、前記第2ブロックに存在する複数のページに記録されたデータを消去する(S630)。このとき、一般的にブロック単位に消去動作が行われるため、第2ブロックに存在する複数のページに対して同時に消去動作が行われてもよい。
これによって、第2ブロックは、初期化されることによって空いているブロックになり、再び第2ブロックにはデータがプログラムされる。
図7は、本発明の他の実施形態に係るフラッシュメモリ制御方法を示した動作フローチャートである。
図7を参照すれば、本発明の他の実施形態に係るフラッシュメモリ制御方法は、フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能が支援される環境において、前記多重ブロック消去機能を考慮して使用可能なブロックリサイクル方式それぞれの費用を算出する(S710)。ここで、使用可能なブロックリサイクル方式は、前述したように併合演算方式、交換演算方式、複写後交換演算方式、移行演算方式、またはページ消去後複写演算方式を含んでもよい。
特に、使用可能なブロックリサイクル方式それぞれの費用を算出するステップ(S710)は、前記同時に消去される複数のブロックの数を考慮して前記使用可能なブロックリサイクル方式それぞれの費用を算出するステップであってもよい。
また、本発明の他の実施形態に係るフラッシュメモリ制御方法は、前記算出された費用に基づいて前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択する(S720)。このとき、前記使用可能なブロックリサイクル方式のうち最小の費用を有する少なくとも1つが選択されてもよい。
また、本発明の他の実施形態に係るフラッシュメモリ制御方法は、前記使用可能なブロックリサイクル方式のうち前記選択された少なくとも1つを用いて前記少なくとも1つのブロックを管理する(S730)。ここで、管理とは、選択された方式を用いてデータブロックまたはログブロックなどに対して「ブロックリサイクル」を行うことを意味する。
本発明に係るフラッシュメモリ制御方法は、多様なコンピュータ手段を介して実行することができるプログラム命令形態に具現され、コンピュータ読取可能な記録媒体に記録されることができる。前記コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。前記媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスクおよび磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。前述したハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するよう構成されることができ、その逆も同様である。
図8は、本発明の一実施形態に係るフラッシュメモリ制御装置を示すブロック図である。
図8を参照すれば、フラッシュメモリ制御装置は、フラッシュメモリ810、消去部820、管理部830、費用算出部840、および選択部850を含む。
フラッシュメモリ810は複数のブロックに構成され、複数のブロックはデータブロックまたはログブロックを含んでもよい。
また、消去部820は、フラッシュメモリ810の複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能を支援する。すなわち、消去対象の複数のブロックは同時に消去されてもよい。前述したように、本発明は、多重ブロック消去機能を支援することによって1つのページを獲得するために求められる費用を減少させることができる。
また、管理部830は、前記多重ブロック消去機能が支援される環境において、使用可能なブロックリサイクル方式のうち少なくとも1つを用いて少なくとも1つのブロックを管理する。
すなわち、管理部830は無効ページのデータを適切に消去し、有効ページのデータを適切に収集して整理することによって、フラッシュメモリ810を構成するブロックの使用効率を向上させる。
また、費用算出部840は、前記多重ブロック消去機能を考慮して前記使用可能なブロックリサイクル方式それぞれの費用を算出する。
すなわち、前述したように本発明によって提案される費用モデルに応じて、費用算出部840は、前記同時に消去される複数のブロックの数を考慮して前記使用可能なブロックリサイクル方式それぞれの費用を算出することができる。
また、選択部840は、前記算出された費用に基づいて前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択する。このとき、前記使用可能なブロックリサイクル方式のうち最小の費用を有する少なくとも1つが選択されてもよい。
以上のように、本発明は、たとえ限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような基材から多様な修正および変形が可能である。
したがって、本発明の範囲は説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどによって定められなければならない。
Claims (18)
- フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能を支援する消去部と、
前記多重ブロック消去機能が支援される環境において、使用可能なブロックリサイクル方式のうち少なくとも1つを用いて少なくとも1つのブロックを管理する管理部と、
を含むことを特徴とするフラッシュメモリ制御装置。 - 前記多重ブロック消去機能を考慮して前記使用可能なブロックリサイクル方式それぞれの費用を算出する費用算出部と、
前記算出された費用に基づいて前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択する選択部と、をさらに含み、
前記管理部は、前記使用可能なブロックリサイクル方式のうち前記選択された少なくとも1つを用いて前記少なくとも1つのブロックを管理することを特徴とする請求項1に記載のフラッシュメモリ制御装置。 - 前記管理部は、前記使用可能なブロックリサイクル方式のうち少なくとも1つを用いて前記少なくとも1つのブロックに含まれた少なくとも1つの無効ページのデータを処理することを特徴とする請求項1に記載のフラッシュメモリ制御装置。
- 前記複数のブロックは、少なくとも1つのデータブロックまたは少なくとも1つのログブロックを含むことを特徴とする請求項1に記載のフラッシュメモリ制御装置。
- 前記費用算出部は、前記同時に消去される複数のブロックの数を考慮して前記使用可能なブロックリサイクル方式それぞれの費用を算出することを特徴とする請求項2に記載のフラッシュメモリ制御装置。
- 前記選択部は、前記使用可能なブロックリサイクル方式のうち最小の費用を有する少なくとも1つを選択することを特徴とする請求項2に記載のフラッシュメモリ制御装置。
- 前記使用可能なブロックリサイクル方式は、併合演算方式、交換演算方式、複写後交換演算方式、移行演算方式、またはページ消去後複写演算方式のうち少なくとも1つを含むことを特徴とする請求項1に記載のフラッシュメモリ制御装置。
- 前記消去部は、前記フラッシュメモリの複数のブロックそれぞれに含まれた複数のページを選択的に消去するページ単位消去機能を支援することを特徴とする請求項1に記載のフラッシュメモリ制御装置。
- 第1ブロックおよび第2ブロックを含むフラッシュメモリ制御方法であって、
前記第1ブロックに存在する少なくとも1つの無効ページに記録された除去対象データを選択的に消去するステップと、
前記除去対象データが消去された前記第1ブロックに存在する少なくとも1つの無効ページに、前記第2ブロックに存在する少なくとも1つの有効ページに記録された有効データを複写するステップと、
前記第2ブロックに存在する複数のページに記録されたデータを消去するステップと、
を含むことを特徴とするフラッシュメモリ制御方法。 - 前記第1ブロックに存在する少なくとも1つの無効ページに記録された除去対象データを選択的に消去するステップは、前記第1ブロックに存在する少なくとも1つの無効ページに記録された除去対象データを選択的に消去する時、前記第1ブロックに存在する少なくとも1つの有効ページに記録されたデータが消去されることがある場合、第3ブロックに存在する少なくとも1つのページに前記第1ブロックに存在する少なくとも1つの有効ページに記録されたデータを複写するステップを含むことを特徴とする請求項9に記載のフラッシュメモリ制御方法。
- 前記除去対象データが消去された前記第1ブロックに存在する少なくとも1つの無効ページに、前記第2ブロックに存在する少なくとも1つのページに記録された有効データを複写するステップは、前記第3ブロックに存在する少なくとも1つのページに複写されたデータを前記第1ブロックに存在する複数のページに複写するステップをさらに含むことを特徴とする請求項10に記載のフラッシュメモリ制御方法。
- 前記第2ブロックに存在する複数のページに記録されたデータを消去するステップは、前記第2ブロックに存在する複数のページに記録されたデータを同時に消去するステップであることを特徴とする請求項9に記載のフラッシュメモリ制御方法。
- フラッシュメモリの複数のブロックに格納されたデータを同時に消去する多重ブロック消去機能が支援される環境において、前記多重ブロック消去機能を考慮して使用可能なブロックリサイクル方式それぞれの費用を算出するステップと、
前記算出された費用に基づいて前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択するステップと、
前記使用可能なブロックリサイクル方式のうち選択された少なくとも1つを用いて少なくとも1つのブロックを管理するステップと、
を含むことを特徴とするフラッシュメモリ制御方法。 - 前記少なくとも1つのブロックを管理するステップは、前記使用可能なブロックリサイクル方式のうち選択された少なくとも1つを用いて前記少なくとも1つのブロックに含まれた少なくとも1つの無効ページのデータを処理するステップであることを特徴とする請求項13に記載のフラッシュメモリ制御方法。
- 前記使用可能なブロックリサイクル方式それぞれの費用を算出するステップは、前記同時に消去される複数のブロックの数を考慮して前記使用可能なブロックリサイクル方式それぞれの費用を算出するステップであることを特徴とする請求項13に記載のフラッシュメモリ制御方法。
- 前記使用可能なブロックリサイクル方式のうち少なくとも1つを選択するステップは、前記使用可能なブロックリサイクル方式のうち最小の費用を有する少なくとも1つを選択するステップであることを特徴とする請求項13に記載のフラッシュメモリ制御方法。
- 前記使用可能なブロックリサイクル方式は、併合演算方式、交換演算方式、複写後交換演算方式、移行演算方式、またはページ消去後複写演算方式のうち少なくとも1つを含むことを特徴とする請求項13に記載のフラッシュメモリ制御方法。
- 請求項9に記載の方法を行うためのプログラムが記録されたコンピュータで読み出し可能な記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080078484A KR100954039B1 (ko) | 2008-08-11 | 2008-08-11 | 플래시 메모리 제어 방법 및 제어 장치 |
KR10-2008-0078484 | 2008-08-11 | ||
PCT/KR2008/005198 WO2010018886A1 (en) | 2008-08-11 | 2008-09-04 | Device and method of controlling flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011530758A true JP2011530758A (ja) | 2011-12-22 |
Family
ID=41669021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011522887A Pending JP2011530758A (ja) | 2008-08-11 | 2008-09-04 | フラッシュメモリ制御方法および制御装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8554986B2 (ja) |
EP (1) | EP2329381A4 (ja) |
JP (1) | JP2011530758A (ja) |
KR (1) | KR100954039B1 (ja) |
CN (1) | CN102177506A (ja) |
WO (1) | WO2010018886A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140129758A1 (en) * | 2012-11-06 | 2014-05-08 | Spansion Llc | Wear leveling in flash memory devices with trim commands |
KR101473837B1 (ko) * | 2013-05-03 | 2014-12-18 | 인하대학교 산학협력단 | Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 |
FR3006804A1 (fr) * | 2013-06-05 | 2014-12-12 | St Microelectronics Rousset | Procede d’effacement par bloc d’une memoire de type eeprom effacable par page |
CN104298606A (zh) * | 2013-07-17 | 2015-01-21 | 光宝科技股份有限公司 | 固态存储装置中垃圾搜集动作的控制方法 |
US10007428B2 (en) * | 2013-08-16 | 2018-06-26 | Micron Technology, Inc. | Data storage management |
US9710198B2 (en) | 2014-05-07 | 2017-07-18 | Sandisk Technologies Llc | Method and computing device for controlling bandwidth of swap operations |
US9633233B2 (en) | 2014-05-07 | 2017-04-25 | Sandisk Technologies Llc | Method and computing device for encrypting data stored in swap memory |
US20150324132A1 (en) * | 2014-05-07 | 2015-11-12 | Sandisk Technologies Inc. | Method and Computing Device for Fast Erase of Swap Memory |
US9928169B2 (en) | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
US9665296B2 (en) | 2014-05-07 | 2017-05-30 | Sandisk Technologies Llc | Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications |
KR101687256B1 (ko) | 2016-07-11 | 2016-12-19 | (주)로빅 | 롱 스트로크형 전동 3조 그립퍼 |
TWI613652B (zh) * | 2017-03-27 | 2018-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0798991A (ja) * | 1993-09-29 | 1995-04-11 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JP2002366423A (ja) * | 2001-06-04 | 2002-12-20 | Samsung Electronics Co Ltd | フラッシュメモリの管理方法 |
JP2006073168A (ja) * | 2004-09-03 | 2006-03-16 | Hynix Semiconductor Inc | フラッシュメモリ素子及びこれを用いたフラッシュメモリセルの消去方法 |
WO2007019155A1 (en) * | 2005-08-03 | 2007-02-15 | Sandisk Corporation | Reclaiming data storage capacity in flash memory systems |
JP2008103071A (ja) * | 2006-10-19 | 2008-05-01 | Samsung Electronics Co Ltd | 不揮発性メモリ装置およびそれを動作させる方法 |
JP2008130088A (ja) * | 2006-11-20 | 2008-06-05 | Samsung Electronics Co Ltd | 不揮発性メモリ管理方法及び装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960029981A (ko) * | 1995-01-27 | 1996-08-17 | 비. 제이. 올슨 | 소량 데이타 저장을 사용한 플래시 메모리 대용량 기억 구조 |
US7620769B2 (en) | 2000-01-06 | 2009-11-17 | Super Talent Electronics, Inc. | Recycling partially-stale flash blocks using a sliding window for multi-level-cell (MLC) flash memory |
US7966462B2 (en) * | 1999-08-04 | 2011-06-21 | Super Talent Electronics, Inc. | Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips |
US7934074B2 (en) * | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
KR100684887B1 (ko) * | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
KR100739722B1 (ko) | 2005-08-20 | 2007-07-13 | 삼성전자주식회사 | 플래시 메모리 관리 방법 및 플래시 메모리 시스템 |
KR100830575B1 (ko) * | 2006-09-26 | 2008-05-21 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 멀티-블록 소거 방법 |
US7903486B2 (en) * | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
-
2008
- 2008-08-11 KR KR1020080078484A patent/KR100954039B1/ko not_active IP Right Cessation
- 2008-09-04 WO PCT/KR2008/005198 patent/WO2010018886A1/en active Application Filing
- 2008-09-04 JP JP2011522887A patent/JP2011530758A/ja active Pending
- 2008-09-04 US US13/058,314 patent/US8554986B2/en active Active
- 2008-09-04 CN CN2008801315124A patent/CN102177506A/zh active Pending
- 2008-09-04 EP EP08793678A patent/EP2329381A4/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0798991A (ja) * | 1993-09-29 | 1995-04-11 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JP2002366423A (ja) * | 2001-06-04 | 2002-12-20 | Samsung Electronics Co Ltd | フラッシュメモリの管理方法 |
JP2006073168A (ja) * | 2004-09-03 | 2006-03-16 | Hynix Semiconductor Inc | フラッシュメモリ素子及びこれを用いたフラッシュメモリセルの消去方法 |
WO2007019155A1 (en) * | 2005-08-03 | 2007-02-15 | Sandisk Corporation | Reclaiming data storage capacity in flash memory systems |
JP2008103071A (ja) * | 2006-10-19 | 2008-05-01 | Samsung Electronics Co Ltd | 不揮発性メモリ装置およびそれを動作させる方法 |
JP2008130088A (ja) * | 2006-11-20 | 2008-06-05 | Samsung Electronics Co Ltd | 不揮発性メモリ管理方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20100019768A (ko) | 2010-02-19 |
EP2329381A4 (en) | 2012-04-25 |
KR100954039B1 (ko) | 2010-04-20 |
US8554986B2 (en) | 2013-10-08 |
CN102177506A (zh) | 2011-09-07 |
US20110145490A1 (en) | 2011-06-16 |
WO2010018886A1 (en) | 2010-02-18 |
EP2329381A1 (en) | 2011-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011530758A (ja) | フラッシュメモリ制御方法および制御装置 | |
JP4185058B2 (ja) | フラッシュメモリのリマッピング方法 | |
JP4495172B2 (ja) | 電源状態に応じて不揮発性メモリのブロック回収を行う装置およびその方法 | |
KR101867282B1 (ko) | 비휘발성 메모리 장치의 가비지 컬렉션 방법 | |
US8645614B2 (en) | Method and apparatus for managing data of flash memory via address mapping | |
JP2008112445A (ja) | 不揮発性メモリを管理する装置及び方法 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
US7971022B2 (en) | Apparatus and method of processing data of non-volatile memory using transaction block | |
KR20090012821A (ko) | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 | |
JP2012234495A (ja) | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム | |
CN110377599A (zh) | 键值存储装置及其操作方法 | |
JP5183662B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
JP5874525B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
US20130111115A1 (en) | Managing write operations in a computerized memory | |
JP6531574B2 (ja) | ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法 | |
CN103678478A (zh) | 信息处理装置、信息处理方法和程序 | |
JP2011227802A (ja) | データ記録装置 | |
US20130061011A1 (en) | Method of managing memory and image forming apparatus to perform the same | |
JP5452735B2 (ja) | メモリコントローラ及びメモリアクセス方法 | |
Lee et al. | RMSS: an efficient recovery management scheme on NAND flash memory based solid state disk | |
JP2006244017A (ja) | データコピー方法 | |
JP2007280443A (ja) | データ処理装置およびデータ処理方法とプログラム | |
JP2013235530A (ja) | 制御装置、記憶装置、記憶制御方法 | |
JP2008299455A (ja) | データ記憶装置及びデータ管理方法 | |
Du et al. | Adaptive garbage collection mechanism for N-log block flash memory storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130402 |