TWI416525B - Nonvolatile memory apparatus and wear leveling method thereof - Google Patents

Nonvolatile memory apparatus and wear leveling method thereof Download PDF

Info

Publication number
TWI416525B
TWI416525B TW98142948A TW98142948A TWI416525B TW I416525 B TWI416525 B TW I416525B TW 98142948 A TW98142948 A TW 98142948A TW 98142948 A TW98142948 A TW 98142948A TW I416525 B TWI416525 B TW I416525B
Authority
TW
Taiwan
Prior art keywords
data
area
volatile memory
storage area
data storage
Prior art date
Application number
TW98142948A
Other languages
Chinese (zh)
Other versions
TW201120895A (en
Inventor
Hiao Wei Chou
Fu Kuo Ou
Original Assignee
Asolid Technology 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 Asolid Technology Co Ltd filed Critical Asolid Technology Co Ltd
Priority to TW98142948A priority Critical patent/TWI416525B/en
Publication of TW201120895A publication Critical patent/TW201120895A/en
Application granted granted Critical
Publication of TWI416525B publication Critical patent/TWI416525B/en

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

A nonvolatile memory wear leveling method is provided. First, divide the nonvolatile memory into a data storage area and an empty queue according a plurality of physical block address. Second, compare the historical programming times of the data blocks of the empty queue. Finally, change the physical block address which corresponding to the data block which is most programmed in the empty queue with one of the physical block addresses corresponding to the data blocks of the data storage area.

Description

非揮發性記憶體裝置及其損耗平均方法Non-volatile memory device and its loss averaging method

本發明是有關於一種非揮發性記憶體,且特別是有關於一種非揮發性記憶體損耗平均(wear leveling)的存取方法。This invention relates to a non-volatile memory, and more particularly to a non-volatile memory wear leveling access method.

快閃記憶體(flash memory)是一種可程式(programmable)的唯讀記憶體(read only memory,ROM),其允許被多次的抹除並更新所儲存的資料。這種快閃記憶體在現今的電子產品中的應用非常廣泛,常見於記憶卡及隨身碟等作為數位電子產品間交換資料的媒介。Flash memory is a programmable read only memory (ROM) that allows multiple erases and updates of stored data. This kind of flash memory is widely used in today's electronic products, and is commonly used as a medium for exchanging data between digital electronic products such as memory cards and flash drives.

通常,快閃記憶體被劃分成多個資料區塊(block),而每一個資料區塊中又被細分為許多容量相同的資料頁(page)。在此,快閃記憶體存在著一個限制,就是在當對快閃記憶體進行資料的更新時,必須需針對要被更新的位址所在的資料區塊進行抹除的動作後,再把新的資料寫入。然而,快閃記憶體中的每一個資料區塊進行資料抹除是有一定的壽命(抹除次數)的限制。為了有效提升快閃記憶體的使用壽命,習知技術提出一種所謂的損耗平均(wear leveling)的技術來使每個資料區塊的抹除次數能夠較為平均。Generally, flash memory is divided into a plurality of data blocks, and each data block is subdivided into a plurality of data pages of the same capacity. Here, there is a limitation in the flash memory, that is, when updating the data of the flash memory, it is necessary to erase the data block in which the address to be updated is located, and then new The data is written. However, data erasure for each data block in the flash memory has a certain lifetime (the number of erasures). In order to effectively increase the service life of the flash memory, the prior art proposes a so-called wear leveling technique to make the number of erasures per data block relatively average.

請參照圖1~圖3,圖1~圖3繪示習知的快閃記憶體的損耗平均存取方法的示意圖。在圖1的繪示中,快閃記憶體110依據其實體區塊位址(physical block address)PBA0~PBA767分成3個分區,其中,實體位址PBA0~PBA255為第一分區DIV0,實體位址PBA256~PBA511為第二分區DIV1,而實體位址PBA512~PBA767為第三分區DIV2。然後,針對第一分區DIV0依據邏輯位址LBA0~LBA255建立對應查找表120。由於第一分區DIV0包括256個資料區塊(每一個實體區塊位址表示對應一個資料區塊)。其中,對應查找表120儲存的資料代表邏輯區塊位址(logical block address)及實體區塊位址的對應關係。在圖1的繪示中,邏輯區塊位址LBA0與實體區塊位址PBA0相對應。Please refer to FIG. 1 to FIG. 3 . FIG. 1 to FIG. 3 are schematic diagrams showing a conventional method for loss average access of a flash memory. In the illustration of FIG. 1, the flash memory 110 is divided into three partitions according to its physical block address PBA0~PBA767, wherein the physical addresses PBA0~PBA255 are the first partition DIV0, and the physical address is PBA256~PBA511 are the second partition DIV1, and the physical addresses PBA512~PBA767 are the third partition DIV2. Then, a corresponding lookup table 120 is established for the first partition DIV0 according to the logical addresses LBA0 L LBA255. Since the first partition DIV0 includes 256 data blocks (each physical block address represents a corresponding data block). The data stored in the corresponding lookup table 120 represents the correspondence between the logical block address and the physical block address. In the illustration of FIG. 1, the logical block address LBA0 corresponds to the physical block address PBA0.

接著請參照圖2,習知的損耗平均技術還包括建立空白佇列區130,空白佇列區130記錄未被寫入資料的資料區塊的實體區塊位址。在圖2的繪示中,圖示左側的對應查找表120皆為空白(未被寫入),而圖示左側的空白佇列區130則記錄出所有的實體區塊位址PBA0~PBAN皆為空白。然而在執行存取命令210後,由於邏輯區塊位址LBA0~LBA2要被寫入,因此,快閃記憶體依據空白佇列區130的記錄提供實體區塊位址PBA0、PBA1、PBA2分別對應邏輯區塊位址LBA0、LBA1、LBA2以儲存資料。也因此,圖2右側的對應查找表120對應邏輯區塊位址LBA0、LBA1、LBA2的儲存欄位分別存入實體區塊位址PBA0、PBA1、PBA2。而圖2右側的空白佇列區130也移除了原先實體區塊位址PBA0、PBA1、PBA2的記錄。Referring to FIG. 2, the conventional wear averaging technique further includes establishing a blank queue region 130, and the blank queue region 130 records the physical block address of the data block to which the data is not written. In the illustration of FIG. 2, the corresponding lookup table 120 on the left side of the figure is blank (not written), and the blank queue area 130 on the left side of the figure records all the physical block addresses PBA0~PBAN. Is blank. However, after the access command 210 is executed, since the logical block addresses LBA0~LBA2 are to be written, the flash memory provides physical block addresses PBA0, PBA1, and PBA2 according to the records of the blank queue area 130, respectively. The logical block addresses LBA0, LBA1, and LBA2 are used to store data. Therefore, the storage fields corresponding to the logical block addresses LBA0, LBA1, and LBA2 of the corresponding lookup table 120 on the right side of FIG. 2 are respectively stored in the physical block addresses PBA0, PBA1, and PBA2. The blank queue area 130 on the right side of FIG. 2 also removes the records of the original physical block addresses PBA0, PBA1, and PBA2.

接著繼續參照圖3,此時執行存取命令310以針對邏輯區塊位址LBA1、LBA2進行資料的更新。依據空白佇列區130(如圖3左側)來提供實體區塊位址PBA3、PBA4來存入要更新至邏輯區塊位址LBA1、LBA2的資料。並且將實體區塊位址PBA0、PBA1清除,並加入空白佇列區130(如圖3右側所示)。Continuing with reference to FIG. 3, access command 310 is executed at this time to update the data for logical block addresses LBA1, LBA2. The physical block addresses PBA3, PBA4 are provided according to the blank queue area 130 (as shown in the left side of FIG. 3) to store the data to be updated to the logical block addresses LBA1, LBA2. And the physical block addresses PBA0, PBA1 are cleared, and the blank queue area 130 is added (as shown on the right side of FIG. 3).

此種習知的損耗平均技術因為對應查找表120與快閃記憶體的實體區塊位址必須一對一存在,而需要相當大的記憶空間,而空白佇列區130也需要多的記憶空間。換言之,此種習知的損耗平均技術是需要較高的成本的。Such a conventional wear averaging technique requires a relatively large memory space because the physical block address corresponding to the lookup table 120 and the flash memory must exist one-to-one, and the blank queue region 130 also requires a large memory space. . In other words, such conventional wear leveling techniques require higher costs.

本發明提供一種非揮發性記憶體裝置及其損耗平均方法,可有效平均非揮發性記憶體中的各區塊的歷史程式化次數,以延長非揮發性記憶體的使用壽命。The invention provides a non-volatile memory device and a loss averaging method thereof, which can effectively average the historical stylization times of each block in the non-volatile memory to prolong the service life of the non-volatile memory.

本發明提出一種非揮發性記憶體的損耗平均方法,首先,將非揮發性記憶體的多數個實體位址分割出一資料儲存區及一空白佇列區。接著,比較空白佇列區中多個資料區塊的歷史程式化次數。之後,將空白佇列區中歷史程式化次數最大的資料區塊改配置於該資料儲存區,以及將資料儲存區中多個資料區塊之一者改配置於該空白佇列區。The invention provides a loss averaging method for non-volatile memory. First, a plurality of physical addresses of the non-volatile memory are segmented into a data storage area and a blank array area. Next, compare the historical stylized times of multiple data blocks in the blank queue area. Then, the data block with the largest number of historical stylizations in the blank queue area is reconfigured in the data storage area, and one of the plurality of data blocks in the data storage area is reconfigured in the blank queue area.

在本發明之一實施例中,當資料儲存區需要被寫入一更新資料時,空白佇列區被用來存放更新資料。In an embodiment of the invention, when the data storage area needs to be written to an update data, the blank queue area is used to store the updated data.

本發明提出一種記憶體裝置,包括一非揮發性記憶體以及一控制器。控制器耦接非揮發性記憶體。控制器將非揮發性記憶體分割出一資料儲存區及一空白佇列區。當控制器進行一損耗平均方法時,所述損耗平均方法包括:比較空白佇列區中多個資料區塊的歷史程式化次數,以將空白佇列區中歷史程式化次數最大的資料區塊改配置於該資料儲存區,以及將資料儲存區中多個資料區塊之一者改配置於該空白佇列區。The invention provides a memory device comprising a non-volatile memory and a controller. The controller is coupled to the non-volatile memory. The controller divides the non-volatile memory into a data storage area and a blank queue area. When the controller performs a wear averaging method, the wear averaging method includes: comparing the historical staging times of the plurality of data blocks in the blank queue area to the data block having the largest number of historical stylizations in the blank queue area The configuration is performed in the data storage area, and one of the plurality of data blocks in the data storage area is configured to be configured in the blank queue area.

基於上述,本發明利用在資料儲存區中一個資料區塊來與空白佇列區中歷史程式化次數最多的資料區塊進行交換,以延長非揮發性記憶體的使用壽命。Based on the above, the present invention utilizes a data block in the data storage area to exchange with the most historically-staffed data blocks in the blank queue area to extend the service life of the non-volatile memory.

為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。The above described features and advantages of the present invention will be more apparent from the following description.

以下請參照圖4,圖4繪示為本發明的非揮發性記憶體的損耗平均方法的一實施例的動作流程圖。並請同時參照圖5A~圖5B以及圖6所繪示的本發明的非揮發性記憶體的損耗平均方法的實施例的動作示意圖。其中,非揮發性記憶體(Non-volatile memory,NVM)例如是光罩唯讀記憶體(Mask Read-Only Memory,Mask ROM)、可編程唯讀記憶體(Programmable Read-Only Memory,PROM)、可擦拭可編程唯讀記憶體(Erasable Programmable Read-Only Memory,EPROM)、電子式擦拭編程唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)或快閃記憶體。Referring to FIG. 4, FIG. 4 is a flow chart showing the operation of an embodiment of the loss averaging method for the non-volatile memory of the present invention. Please refer to FIG. 5A to FIG. 5B and FIG. 6 for a schematic diagram of the operation of the embodiment of the loss averaging method of the non-volatile memory of the present invention. Among them, a non-volatile memory (NVM) is, for example, a Mask Read-Only Memory (Mask ROM) or a Programmable Read-Only Memory (PROM). Erasable Programmable Read-Only Memory (EPROM), Electronically Erasable Programmable Read-Only Memory (EEPROM) or flash memory.

在本實施例中,存取非揮發性記憶體的步驟包括:首先,步驟S410依據非揮發性記憶體的多個實體區塊位址分割出資料儲存區以及空白佇列區。如圖5A的繪示,非揮發性記憶體510具有實體區塊位址PBA0~PBA4095,非揮發性記憶體510被分割為資料儲存區511以及空白佇列區512。其中,在本實施例中的資料儲存區511包括實體區塊位址PBA0~PBA3999,而空白佇列區512則如同圖5B所繪示的包括實體區塊位址PBA4000~PBA4095。在此請注意,圖5A、圖5B繪示的資料儲存區511以及空白佇列區512的劃分僅只是一個範例,並不限制資料儲存區511以及空白佇列區512所包括的實體區塊位址的範圍。事實上,資料儲存區511以及空白佇列區512的分割方式是可以動態調整的。In this embodiment, the step of accessing the non-volatile memory includes: first, in step S410, the data storage area and the blank queue area are segmented according to the plurality of physical block addresses of the non-volatile memory. As shown in FIG. 5A, the non-volatile memory 510 has physical block addresses PBA0~PBA4095, and the non-volatile memory 510 is divided into a data storage area 511 and a blank array area 512. The data storage area 511 in this embodiment includes physical block addresses PBA0~PBA3999, and the blank array area 512 includes physical block addresses PBA4000~PBA4095 as shown in FIG. 5B. It should be noted that the division of the data storage area 511 and the blank array area 512 illustrated in FIG. 5A and FIG. 5B is only an example, and does not limit the physical storage area included in the data storage area 511 and the blank array area 512. The scope of the address. In fact, the manner in which the data storage area 511 and the blank array area 512 are divided can be dynamically adjusted.

另外,可依據非揮發性記憶體510的多個邏輯區塊位址建立對應查找表,其中對應查找表中包括多個儲存欄位,用以儲存資料儲存區511的實體區塊位址。如圖5A的繪示,對應查找表520是依據非揮發性記憶體510的邏輯區塊位址LDIV0的LBA0~LBA249至LDIV15的LBA0~LBA249來建立的。對應查找表520包括儲存欄位ST0~ST3999,其中的每一個儲存欄位都儲存資料儲存區511中的各個實體區塊位址PBA0~PBA3999。舉例來說,對應查找表520中對應邏輯區塊位址LDIV0的LBA0的儲存欄位ST0所儲存的資料為實體區塊位址PBA0,表示邏輯區塊位址LDIV0的LBA0與實體區塊位址PBA0相對應。更表示當要對非揮發性記憶體510的邏輯區塊位址LDIV0的LBA0進行存取時,實際上是對非揮發性記憶體510的實體區塊位址PBA0進行存取。在此,對應查找表520是被建立在一個記憶裝置中,而這個記憶裝置可以是動態記憶體或是靜態記憶體。In addition, a corresponding lookup table may be established according to the plurality of logical block addresses of the non-volatile memory 510, wherein the corresponding lookup table includes a plurality of storage fields for storing the physical block address of the data storage area 511. As shown in FIG. 5A, the corresponding lookup table 520 is established according to LBA0~LBA249 to LBA249 to LBA249 of the logical block address LDIV0 of the non-volatile memory 510. The corresponding lookup table 520 includes storage fields ST0~ST3999, each of which stores each physical block address PBA0~PBA3999 in the data storage area 511. For example, the data stored in the storage field ST0 of the LBA0 corresponding to the logical block address LDIV0 in the lookup table 520 is the physical block address PBA0, indicating the LBA0 and the physical block address of the logical block address LDIV0. PBA0 corresponds. It is further indicated that when the LBA0 of the logical block address LDIV0 of the non-volatile memory 510 is to be accessed, the physical block address PBA0 of the non-volatile memory 510 is actually accessed. Here, the corresponding lookup table 520 is built in a memory device, and the memory device can be dynamic memory or static memory.

接著,請繼續參照圖4,每當接收到一個針對非揮發性記憶體510的目標邏輯區塊位址寫入一更新資料的存取命令時,除了執行該存取命令外,更判斷同一目標邏輯區塊位址是否被重複多次地存取資料。舉例來說,可判斷同一目標邏輯區塊位址被連續存取資料的次數是否達到預設值(例如50次)。當同一目標邏輯區塊位址被重複多次地存取資料時(亦即目標邏輯區塊位址被連續存取資料的次數,或連續進行位址/資料重新排序的次數達到預設值時),則進行一次圖4所繪示損耗平均方法的步驟S420與步驟S430。Next, referring to FIG. 4, each time an access command for writing an update data to the target logical block address of the non-volatile memory 510 is received, the same target is judged besides executing the access command. Whether the logical block address is accessed repeatedly multiple times. For example, it can be determined whether the number of times the same target logical block address is continuously accessed data reaches a preset value (for example, 50 times). When the same target logical block address is repeatedly accessed for data (that is, when the target logical block address is continuously accessed for data, or when the number of consecutive address/data reordering reaches the preset value) Then, step S420 and step S430 of the wear averaging method illustrated in FIG. 4 are performed once.

步驟S420比較空白佇列區512中多個資料區塊的歷史程式化次數EC。非揮發性記憶體510中各個資料區塊的歷史程式化次數EC可分別紀錄在所屬資料區塊的備用區(spare area)中。舉例來說,假設某一個資料區塊分為256個頁面PAG000~PAG255,其中每個頁面皆有8K位元組的儲存空間與一個400位元組備用區。此資料區塊的歷史程式化次數EC可以被儲存於第一個頁面PAG000的備用區中,以記錄此資料區塊被程式化的歷史次數。本實施例雖以頁面PAG000的備用區為例進行記錄歷史程式化次數EC的說明,然不以此為限。Step S420 compares the historical stylized number EC of the plurality of data blocks in the blank queue area 512. The historical stylized number EC of each data block in the non-volatile memory 510 can be recorded in the spare area of the belonging data block, respectively. For example, suppose a certain data block is divided into 256 pages PAG000~PAG255, each of which has 8K bytes of storage space and a 400-byte spare area. The historical stylized number EC of this data block can be stored in the spare area of the first page PAG000 to record the number of times the data block has been programmed. In this embodiment, the backup area of the page PAG000 is taken as an example for recording the history stylization number EC, but is not limited thereto.

歷史程式化次數EC表示了所屬資料區塊曾經被程式化的次數。例如,當抹除(erasing)某一個實體區塊位址所對應的資料區塊時,將記錄於該實體區塊位址對應的資料區塊的備用區中的歷史程式化次數EC加1。因此,歷史程式化次數EC可以表示所屬資料區塊曾經被抹除過的次數值(即抹除計數值)。The historical stylization number EC indicates the number of times the own data block has been programmed. For example, when erasing a data block corresponding to a physical block address, the historical stylization number EC recorded in the spare area of the data block corresponding to the physical block address is incremented by one. Therefore, the historical stylization number EC can indicate the value of the number of times the associated data block has been erased (ie, the erase count value).

在另一實施例中,當將資料寫入某一個實體區塊位址所對應的資料區塊時,將記錄於該實體區塊位址對應的資料區塊的備用區中的歷史程式化次數EC加1。因此,歷史程式化次數EC也可以表示所屬資料區塊曾經被寫入資料的次數值(即寫入計數值)。In another embodiment, when the data is written into the data block corresponding to a physical block address, the historical stylized number recorded in the spare area of the data block corresponding to the physical block address is recorded. EC plus 1. Therefore, the historical stylization number EC can also indicate the number of times the data block has been written to the data (ie, the write count value).

完成步驟S420之後,便可獲知空白佇列區512的所有資料區塊中,歷史程式化次數EC最大的資料區塊是哪一個。當資料儲存區511的某一個資料區塊需要被寫入更新資料時,會從空白佇列區512中選擇一個資料區塊來存放更新資料,而不會直接對資料儲存區511的資料區塊進行資料更新(包含讀取舊資料、抹除以及寫回更新後的資料)。待資料儲存區511需要做重新排序(resorting)的操作,或是資料儲存區511對應的實體區塊位址已無法再寫入資料時,則從空白佇列區512中選擇出來用以存放更新資料的資料區塊會被抹除以備下次存放更新資料。所以,空白佇列區512的資料區塊會是非揮發性記憶體510所有資料區塊中,進行程式化(programming)最頻繁的資料區塊。After step S420 is completed, it can be known which of the data blocks of the blank queue area 512 has the largest number of historical stylized times EC. When a certain data block of the data storage area 511 needs to be written into the update data, a data block is selected from the blank queue area 512 to store the updated data, and the data block of the data storage area 511 is not directly used. Update the data (including reading old data, erasing and writing back updated data). If the data storage area 511 needs to be resorted, or the physical block address corresponding to the data storage area 511 can no longer be written, the blank storage area 512 is selected for storing the update. The data block of the data will be erased for the next update. Therefore, the data block of the blank queue area 512 will be the most frequently programmed data block in all the data blocks of the non-volatile memory 510.

因此,步驟S430便可以將空白佇列區512中歷史程式化次數EC最大的資料區塊所對應的實體位址與資料儲存區511中多個資料區塊所對應的多個實體位址之一者進行交換。也就是說,將空白佇列區512中歷史程式化次數EC最大的資料區塊改配置於資料儲存區511,以及將資料儲存區511的多個資料區塊選擇其中一個資料區塊改配置於空白佇列區512。當然,資料儲存區511的資料區塊與空白佇列區512的資料區塊進行交換時,此二個資料區塊所存放的內容也要對應地進行交換。Therefore, in step S430, one of the physical addresses corresponding to the data block having the largest number of historical stylizations EC in the blank queue area 512 and one of the plurality of physical addresses corresponding to the plurality of data blocks in the data storage area 511 can be Exchange. That is, the data block having the largest number of historical stylizations EC in the blank queue area 512 is relocated to the data storage area 511, and one of the plurality of data blocks of the data storage area 511 is selected and configured. The blank queue area 512. Of course, when the data block of the data storage area 511 is exchanged with the data block of the blank queue area 512, the contents of the two data blocks are also exchanged correspondingly.

另外,在某些應用例中,當資料區塊因要儲存新的資料而需抹除先前儲存的資料時,此資料區塊的歷史程式化次數EC也將會被抹除,因此須先將此資料區塊的歷史程式化次數EC先讀出後,再進行資料區塊的抹除,之後便可將讀出的歷史程式化次數EC加1後再寫回此資料區塊。由於資料儲存區511中資料區塊被存取的頻率較小,而空白佇列區512中資料區塊被存取的頻率較大,將兩區的資料區塊進行交換可使非揮發性記憶體510的資料區塊平均地被存取,避免少數資料區塊被集中地反覆存取而減短非揮發性記憶體510的使用壽命。In addition, in some applications, when the data block needs to erase the previously stored data due to the need to store new data, the historical stylized number EC of the data block will also be erased, so After the history stylization number EC of the data block is read first, the data block is erased, and then the read history number of programmed ECs is increased by one and then written back to the data block. Since the frequency of the data block in the data storage area 511 is small, and the frequency of the data block in the blank queue area 512 is accessed, the data blocks of the two areas are exchanged to make the non-volatile memory The data blocks of the volume 510 are accessed on average, avoiding a small number of data blocks being repeatedly accessed repeatedly to reduce the useful life of the non-volatile memory 510.

舉例來說,請參照圖6,在接收存取命令前,資料儲存區511中各資料區塊的實體區塊位址為PBA0~PBA3999,而空白佇列區512中各資料區塊的實體區塊位址為PBA4000~PBA4095。當接收到存取命令後,便先判斷該存取命令所存取的邏輯區塊位址是否被連續存取資料達到50次。若發現同一邏輯位址確已連續被存取達50次,則進行一次損耗平均方法610(參照圖4與相關說明)。For example, referring to FIG. 6, before receiving the access command, the physical block address of each data block in the data storage area 511 is PBA0~PBA3999, and the physical area of each data block in the blank queue area 512. The block address is PBA4000~PBA4095. After receiving the access command, it is first determined whether the logical block address accessed by the access command is continuously accessed for 50 times. If it is found that the same logical address has been continuously accessed for 50 times, then a loss averaging method 610 is performed (refer to FIG. 4 and related description).

在進行損耗平均方法610的過程中,自空白佇列區512的所有資料區塊中選出歷史程式化次數EC最大的一個資料區塊。圖6所示範例中,實體區塊位址PBA4000的資料區塊,其歷史程式化次數EC最大(為100次),因此選擇將實體區塊位址PBA4000的資料區塊改配置於資料儲存區511。另外,將資料儲存區511多個資料區塊中選擇一個資料區塊(例如實體區塊位址PBA0的資料區塊)改配置於空白佇列區512。圖6所示範例中,實體區塊位址PBA0的資料區塊,其歷史程式化次數EC為10次。In the process of performing the wear averaging method 610, one data block having the largest history stylization number EC is selected from all the data blocks of the blank queue area 512. In the example shown in FIG. 6, the data block of the physical block address PBA4000 has the largest number of historical programming times EC (100 times), so the data block of the physical block address PBA4000 is selected and configured in the data storage area. 511. In addition, one of the plurality of data blocks of the data storage area 511 is selected to be configured in the blank queue area 512 by the data block (for example, the data block of the physical block address PBA0). In the example shown in FIG. 6, the data block of the physical block address PBA0 has a history stylization number EC of 10 times.

上述從資料儲存區511中選擇資料區塊的方法,可以視系統設計需求而採取不同的選擇手段。例如,可以在資料儲存區511中選擇具有最小歷史程式化次數EC的資料區塊。然而,要在資料儲存區511為數量大的資料區塊中搜尋出最小歷史程式化次數EC的資料區塊,其搜尋過程可能會耗占太多時間。在一些實施例中,上述從資料儲存區511改配置於空白佇列區512的資料區塊,是自資料儲存區511的多個資料區塊中隨機選出的。The above method of selecting a data block from the data storage area 511 can take different selection means depending on system design requirements. For example, a data block having the smallest history stylization number EC may be selected in the data storage area 511. However, if the data storage area 511 searches for a data block with a minimum number of historical staging times EC for a large number of data blocks, the search process may take too much time. In some embodiments, the data block configured from the data storage area 511 and disposed in the blank queue area 512 is randomly selected from the plurality of data blocks of the data storage area 511.

在另一些實施例中,上述從資料儲存區511改配置於空白佇列區512的資料區塊,是依據資料儲存區511中多個資料區塊的實體區塊位址的次序所選出的。例如以圖6為例,在這次進行損耗平均方法610的過程,從資料儲存區511的多個資料區塊中選擇實體區塊位址最小者(例如PBA0),而在下一次進行損耗平均方法的過程,從資料儲存區511中選擇實體區塊位址次小者(例如PBA1),以此類推。In other embodiments, the data block configured from the data storage area 511 and configured in the blank queue area 512 is selected according to the order of the physical block addresses of the plurality of data blocks in the data storage area 511. For example, in FIG. 6 , in the process of performing the wear averaging method 610, the smallest physical block address (for example, PBA0) is selected from the plurality of data blocks of the data storage area 511, and the loss average method is performed next time. In the process, the physical block address is selected from the data storage area 511 to be the second smallest (for example, PBA1), and so on.

完成損耗平均方法610後,對應邏輯位址LDIV0的LBA0的實體區塊位址會從PBA0改為PBA4000。依此類推,當下一次又有邏輯區塊位址被連續存取超過50次時(例如邏輯區塊位址LBA3),可以照上述說明再一次進行損耗平均方法,而將空白佇列區512中歷史程式化次數EC最高的資料區塊(即實體區塊位址PBA4001的資料區塊,其為90次)與資料儲存區511的一個資料區塊(例如實體區塊位址PBA1的資料區塊)進行交換。After the loss averaging method 610 is completed, the physical block address of the LBA0 corresponding to the logical address LDIV0 is changed from PBA0 to PBA4000. And so on, when the next logical block address is accessed more than 50 times (for example, the logical block address LBA3), the wear averaging method can be performed again as described above, and the blank queue area 512 is used. The data block with the highest number of historical stylizations EC (ie, the data block of the physical block address PBA4001, which is 90 times) and one data block of the data storage area 511 (for example, the data block of the physical block address PBA1) ) to exchange.

由上述說明不難發現,本實施例有效的平均分散各實體位址的區塊的存取動作,達成損耗平均的需求。From the above description, it is not difficult to find that the access operation of the block in which the physical addresses are distributed on the average of the present embodiment is effective, and the demand for the wear level is achieved.

以下則針對本發明的用以存取非揮發性記憶體的記憶體控制裝置提出一實施例來加以說明,期使本領域具通常知識者都可以輕易瞭解本發明並具以實施。In the following, an embodiment of the memory control device for accessing non-volatile memory of the present invention is described, and the present invention can be easily understood and implemented by those skilled in the art.

請參照圖7,圖7繪示為本發明的一實施例的非揮發性記憶體裝置的方塊圖。記憶體控制裝置700耦接非揮發性記憶體740,並對非揮發性記憶體740進行存取控制。記憶體控制裝置700包括控制器710、記憶裝置720以及傳輸介面730。其中,控制器710耦接至非揮發性記憶體740。控制器710將非揮發性記憶體740分割出資料儲存區511及空白佇列區512。Please refer to FIG. 7. FIG. 7 is a block diagram of a non-volatile memory device according to an embodiment of the present invention. The memory control device 700 is coupled to the non-volatile memory 740 and performs access control on the non-volatile memory 740. The memory control device 700 includes a controller 710, a memory device 720, and a transmission interface 730. The controller 710 is coupled to the non-volatile memory 740. The controller 710 divides the non-volatile memory 740 into the data storage area 511 and the blank queue area 512.

記憶裝置720則耦接控制器710。記憶裝置720用以依據非揮發性記憶體740的多個邏輯位址建立對應查找表,其中的對應查找表中包括多個儲存欄位。這些儲存欄位則用來儲存資料儲存區的實體位址。The memory device 720 is coupled to the controller 710. The memory device 720 is configured to establish a corresponding lookup table according to the plurality of logical addresses of the non-volatile memory 740, wherein the corresponding lookup table includes a plurality of storage fields. These storage fields are used to store the physical address of the data storage area.

此外,當控制器710接收到針對目標邏輯位址寫入更新資料的存取命令時,控制器710判斷目標邏輯位址是否被重複多次地存取資料。當控制器710判斷出目標邏輯位址被重複多次地存取資料時,控制器710進行一次上述損耗平均方法。當控制器710進行損耗平均方法時,所述損耗平均方法包括:比較空白佇列區512中多個資料區塊的歷史程式化次數EC,以將空白佇列區512中歷史程式化次數EC最大的資料區塊改配置於資料儲存區511,以及將資料儲存區511中多個資料區塊之一者改配置於空白佇列區512。。上述相關於記憶體控制裝置700的動作細節相信在本發明的非揮發性記憶體存取方法的實施例的說明中已經有詳細的介紹。因此,此處不再對記憶體控制裝置700的動作細節進行重複說明。Further, when the controller 710 receives an access command to write update data for the target logical address, the controller 710 determines whether the target logical address is accessed repeatedly multiple times. When the controller 710 determines that the target logical address is repeatedly accessed for data, the controller 710 performs the above-described wear averaging method. When the controller 710 performs the wear averaging method, the wear averaging method includes: comparing the historical stylized number EC of the plurality of data blocks in the blank queue area 512 to maximize the EC stylized number of times in the blank queue area 512 The data block is configured to be configured in the data storage area 511, and one of the plurality of data blocks in the data storage area 511 is configured to be disposed in the blank queue area 512. . The above-described details of the operation related to the memory control device 700 are believed to have been described in detail in the description of the embodiment of the non-volatile memory access method of the present invention. Therefore, the details of the operation of the memory control device 700 will not be repeatedly described herein.

值得注意的是,記憶體控制裝置700還包括有傳輸介面730。傳輸介面730耦接控制器710,用以接收使用者對非揮發性記憶體740所傳送的存取命令。當然,傳輸介面730也可以用來傳輸存入非揮發性記憶體740或由非揮發性記憶體740讀出的資料。這種傳輸介面的功能及建構方式,為本領域具通常知識者所熟知的技術,在此不多詳述。It should be noted that the memory control device 700 further includes a transmission interface 730. The transmission interface 730 is coupled to the controller 710 for receiving an access command transmitted by the user to the non-volatile memory 740. Of course, the transmission interface 730 can also be used to transfer data stored in or read from the non-volatile memory 740. The function and construction of such a transmission interface are well known to those skilled in the art and will not be described in detail herein.

綜上所述,本發明利用記錄每一區塊的歷史程式化次數,並將資料儲存區中資料區塊的實體位址與空白佇列區中被歷史程式化次數最多的資料區塊的實體位址交換,以有效的平均分配非揮發性記憶體的各區塊的歷史程式化次數,延長非揮發性記憶體的使用壽命。並且,不需要與非揮發性記憶體的總容量相等的對應查找表,也不需要額外的記憶體來建立空白佇列區。有效的在最小的電路面積下,達成非揮發性記憶體的損耗平均的存取動作。In summary, the present invention utilizes the record of the number of historical stylizations of each block, and the entity address of the data block in the data storage area and the entity of the data block with the most stylized times in the blank queue area. Address exchange, to effectively distribute the historical stylized times of each block of non-volatile memory, and prolong the service life of non-volatile memory. Also, there is no need for a corresponding lookup table that is equal to the total capacity of the non-volatile memory, and no additional memory is needed to create a blank queue. Effectively achieves a loss-average access operation of non-volatile memory at a minimum circuit area.

雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。Although the present invention has been disclosed in the above embodiments, it is not intended to limit the invention, and any one of ordinary skill in the art can make some modifications and refinements without departing from the spirit and scope of the invention. The scope of the invention is defined by the scope of the appended claims.

110...快閃記憶體110. . . Flash memory

120、520...對應查找表120, 520. . . Corresponding lookup table

130、512...空白佇列區130, 512. . . Blank area

210、310...存取命令210, 310. . . Access command

510、740...非揮發性記憶體510, 740. . . Non-volatile memory

511...資料儲存區511. . . Data storage area

610...損耗平均方法610. . . Loss averaging method

700...記憶體控制裝置700. . . Memory control device

710...控制器710. . . Controller

720...儲存裝置720. . . Storage device

730...傳輸介面730. . . Transmission interface

ST0~ST3999...儲存欄位ST0~ST3999. . . Storage field

PBA0~PBA4095、PBAN...實體位址PBA0~PBA4095, PBAN. . . Physical address

DIV0~DIV2...分區DIV0~DIV2. . . Partition

LBA0~LBA245、LBAN、LBAM、LDIV0、LDIV15...邏輯位址LBA0~LBA245, LBAN, LBAM, LDIV0, LDIV15. . . Logical address

EC...歷史程式化次數EC. . . Historical stylization times

S410~S430...記憶體損耗平均方法的步驟S410~S430. . . Steps in the memory loss averaging method

圖1~圖3繪示習知的快閃記憶體的損耗平均存取方法的示意圖。1 to 3 are schematic diagrams showing a conventional method of loss average access of a flash memory.

圖4繪示為本發明的非揮發性記憶體的損耗平均方法的一實施例的動作流程圖。4 is a flow chart showing the operation of an embodiment of the loss averaging method of the non-volatile memory of the present invention.

圖5A~圖5B以及圖6繪示為本發明的非揮發性記憶體的損耗平均方法的實施例的動作示意圖。5A-5B and FIG. 6 are schematic diagrams showing operations of an embodiment of a loss averaging method for a non-volatile memory according to the present invention.

圖7繪示為本發明的一實施例的非揮發性記憶體控制裝置的方塊圖。FIG. 7 is a block diagram of a non-volatile memory control device according to an embodiment of the present invention.

S410~S430...記憶體損耗平均方法的步驟S410~S430. . . Steps in the memory loss averaging method

Claims (25)

一種非揮發性記憶體的損耗平均方法,包括:將該非揮發性記憶體分割出一資料儲存區及一空白佇列區;以及比較該空白佇列區中多個資料區塊的歷史程式化次數;以及將該空白佇列區中歷史程式化次數最大的資料區塊改配置於該資料儲存區,以及將該資料儲存區中多個資料區塊之一者改配置於該空白佇列區。A method for loss averaging of a non-volatile memory, comprising: dividing the non-volatile memory into a data storage area and a blank queue area; and comparing historical programming times of the plurality of data blocks in the blank array area And arranging the data block having the largest number of historical stylizations in the blank queue area in the data storage area, and configuring one of the plurality of data blocks in the data storage area to be configured in the blank queue area. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,其中當該資料儲存區需要被寫入一更新資料時,該空白佇列區被用來存放該更新資料。The loss averaging method for non-volatile memory according to claim 1, wherein the blank queue area is used to store the update data when the data storage area needs to be written into an update data. 如申請專利範圍第2項所述之非揮發性記憶體的損耗平均方法,其中寫入該更新資料前的步驟包括接收一存取命令,其中該存取命令針對一目標邏輯位址寫入該更新資料。The method for loss averaging of non-volatile memory according to claim 2, wherein the step of writing the update data comprises receiving an access command, wherein the access command writes the target data address Updates. 如申請專利範圍第2項所述之非揮發性記憶體的損耗平均方法,所述寫入該更新資料的步驟包括:於寫入該更新資料至一實體位址對應的資料區塊時,將記錄於該實體位址對應的資料區塊的備用區中的歷史程式化次數加1。The method for averaging non-volatile memory according to claim 2, wherein the step of writing the update data comprises: when writing the update data to a data block corresponding to a physical address, The number of historical stylizations recorded in the spare area of the data block corresponding to the physical address is incremented by one. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,其中當抹除一實體區塊位址對應的資料區塊時,將記錄於該實體區塊位址對應的資料區塊的備用區中的歷史程式化次數加1。The loss averaging method for non-volatile memory according to claim 1, wherein when the data block corresponding to a physical block address is erased, the data area corresponding to the physical block address is recorded. The number of historical stylizations in the spare area of the block is increased by one. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,更包括:當同一邏輯區塊位址被連續存取的次數達一預設值時,進行一次所述損耗平均方法。The method for averaging the non-volatile memory according to claim 1 further includes: performing the wear averaging method when the number of consecutive accesses of the same logical block address reaches a preset value . 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,更包括:當一邏輯區塊位址連續進行資料重新排序的次數達一預設值時,進行一次所述損耗平均方法。The method for averaging the non-volatile memory as described in claim 1 further includes: performing the average loss when the number of consecutive data reordering of a logical block address reaches a preset value method. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,其中從該資料儲存區改配置於該空白佇列區的資料區塊,是自該資料儲存區的所述多個資料區塊中隨機選出的。The method for loss averaging of a non-volatile memory according to claim 1, wherein the data block configured from the data storage area to be disposed in the blank queue area is the plurality of data storage areas Randomly selected in the data block. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,其中從該資料儲存區改配置於該空白佇列區的資料區塊,是依據該資料儲存區中所述多個資料區塊的實體區塊位址的次序所選出的。The loss average method for non-volatile memory according to claim 1, wherein the data block configured from the data storage area in the blank queue area is based on the plurality of data storage areas. The order of the physical block addresses of the data block is selected. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,更包括:依據該非揮發性記憶體的多數個邏輯位址建立一對應查找表,其中該對應查找表中包括多數個儲存欄位,用以儲存該資料儲存區的多個實體位址。The method for averaging the non-volatile memory according to claim 1, further comprising: establishing a corresponding lookup table according to a plurality of logical addresses of the non-volatile memory, wherein the corresponding lookup table includes a plurality of A storage field for storing a plurality of physical addresses of the data storage area. 如申請專利範圍第10項所述之非揮發性記憶體的損耗平均方法,其中該對應查找表建立在靜態記憶體或動態記憶體。The loss average method for non-volatile memory according to claim 10, wherein the corresponding lookup table is established in static memory or dynamic memory. 如申請專利範圍第1項所述之非揮發性記憶體的損耗平均方法,更包括:動態調整該資料儲存區及該空白佇列區的記憶容量。The method for averaging the non-volatile memory as described in claim 1 further includes: dynamically adjusting the memory capacity of the data storage area and the blank queue area. 一種記憶體裝置,包括:一非揮發性記憶體;以及一控制器,耦接該非揮發性記憶體,將該非揮發性記憶體分割出一資料儲存區及一空白佇列區,其中當該控制器進行一損耗平均方法時,所述損耗平均方法包括比較該空白佇列區中多個資料區塊的歷史程式化次數,以將該空白佇列區中歷史程式化次數最大的資料區塊改配置於該資料儲存區,以及將該資料儲存區中多個資料區塊之一者改配置於該空白佇列區。A memory device includes: a non-volatile memory; and a controller coupled to the non-volatile memory, the non-volatile memory is segmented into a data storage area and a blank array area, wherein the control When performing a wear averaging method, the wear averaging method includes comparing a historical stylized number of a plurality of data blocks in the blank queue region to change a data block having the largest number of historical stylization times in the blank queue region. And configured in the data storage area, and one of the plurality of data blocks in the data storage area is configured in the blank queue area. 如申請專利範圍第13項所述之記憶體裝置,其中當該資料儲存區需要被寫入一更新資料時,該空白佇列區被用來存放該更新資料。The memory device of claim 13, wherein the blank queue area is used to store the update data when the data storage area needs to be written with an update data. 如申請專利範圍第14項所述之記憶體裝置,其中該控制器更接收一存取命令,其中該存取命令針對一目標邏輯位址寫入該更新資料。The memory device of claim 14, wherein the controller further receives an access command, wherein the access command writes the update data for a target logical address. 如申請專利範圍第15項所述之記憶體裝置,其中更包括:一傳輸介面,耦接該控制器,用以接收該存取命令。The memory device of claim 15, further comprising: a transmission interface coupled to the controller for receiving the access command. 如申請專利範圍第14項所述之記憶體裝置,其中該控制器更在寫入該更新資料至一實體位址對應的資料區塊時,將記錄於該實體位址對應的資料區塊的備用區中的歷史程式化次數加1。The memory device of claim 14, wherein the controller further records the data block corresponding to the physical address when the update data is written to the data block corresponding to the physical address. The number of historical stylizations in the spare area is increased by one. 如申請專利範圍第13項所述之記憶體裝置,其中當一實體區塊位址對應的資料區塊被抹除時,該控制器將記錄於該實體區塊位址對應的資料區塊的備用區中的歷史程式化次數加1。The memory device of claim 13, wherein when a data block corresponding to a physical block address is erased, the controller records the data block corresponding to the physical block address. The number of historical stylizations in the spare area is increased by one. 如申請專利範圍第13項所述之記憶體裝置,其中當同一邏輯區塊位址被連續存取的次數達一預設值時,該控制器進行一次所述損耗平均方法。The memory device of claim 13, wherein the controller performs the wear averaging method when the number of consecutive accesses of the same logical block address reaches a preset value. 如申請專利範圍第13項所述之記憶體裝置,其中當一邏輯區塊位址連續進行資料重新排序的次數達一預設值時,該控制器進行一次所述損耗平均方法。The memory device of claim 13, wherein the controller performs the wear averaging method when the number of consecutive data reordering of a logical block address reaches a preset value. 如申請專利範圍第13項所述之記憶體裝置,其中該控制器在進行所述損耗平均方法時,是自該資料儲存區的所述多個資料區塊中隨機選出一資料區塊以改配置於該空白佇列區。The memory device of claim 13, wherein the controller randomly selects a data block from the plurality of data blocks of the data storage area when the loss averaging method is performed. Configured in this blank queue area. 如申請專利範圍第13項所述之記憶體裝置,其中該控制器在進行所述損耗平均方法時,是依據實體區塊位址的次序而於該資料儲存區中所述多個資料區塊中選出一資料區塊以改配置於該空白佇列區。The memory device of claim 13, wherein the controller performs the wear averaging method according to the order of the physical block addresses and the plurality of data blocks in the data storage area. A data block is selected to be configured in the blank queue area. 如申請專利範圍第13項所述之記憶體裝置,更包括:一記憶裝置,耦接該控制器,用以依據該非揮發性記憶體的多數個邏輯位址建立一對應查找表,其中該對應查找表中包括多數個儲存欄位,用以儲存該資料儲存區的多個實體位址。The memory device of claim 13 further comprising: a memory device coupled to the controller for establishing a corresponding lookup table according to a plurality of logical addresses of the non-volatile memory, wherein the corresponding The lookup table includes a plurality of storage fields for storing a plurality of physical addresses of the data storage area. 如申請專利範圍第22項所述之記憶體控制裝置,其中該記憶裝置為靜態記憶體或動態記憶體。The memory control device of claim 22, wherein the memory device is a static memory or a dynamic memory. 如申請專利範圍第13項所述之記憶體裝置,其中該控制器更動態調整該資料儲存區及該空白佇列區的記憶容量。The memory device of claim 13, wherein the controller dynamically adjusts the memory capacity of the data storage area and the blank queue area.
TW98142948A 2009-12-15 2009-12-15 Nonvolatile memory apparatus and wear leveling method thereof TWI416525B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW98142948A TWI416525B (en) 2009-12-15 2009-12-15 Nonvolatile memory apparatus and wear leveling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW98142948A TWI416525B (en) 2009-12-15 2009-12-15 Nonvolatile memory apparatus and wear leveling method thereof

Publications (2)

Publication Number Publication Date
TW201120895A TW201120895A (en) 2011-06-16
TWI416525B true TWI416525B (en) 2013-11-21

Family

ID=45045356

Family Applications (1)

Application Number Title Priority Date Filing Date
TW98142948A TWI416525B (en) 2009-12-15 2009-12-15 Nonvolatile memory apparatus and wear leveling method thereof

Country Status (1)

Country Link
TW (1) TWI416525B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI703567B (en) * 2020-01-15 2020-09-01 點序科技股份有限公司 Data memory search method in data storage device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI656531B (en) * 2018-04-11 2019-04-11 群聯電子股份有限公司 Average wear method, memory control circuit unit and memory storage device

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567334B2 (en) * 1991-11-26 2003-05-20 Hitachi, Ltd. Storage device employing a flash memory
US7107389B2 (en) * 2002-08-29 2006-09-12 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device and method for writing data into flash memory
US7353326B2 (en) * 2005-04-01 2008-04-01 Samsung Electronics Co., Ltd. Flash memory device supporting cache read operation
US20080147998A1 (en) * 2006-12-18 2008-06-19 Samsung Electronics Co., Ltd. Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device
CN101231617A (en) * 2008-01-21 2008-07-30 中兴通讯股份有限公司 Method for processing data of flash memory equipment
US20080195800A1 (en) * 2007-02-08 2008-08-14 Samsung Electronics Co., Ltd. Flash Memory Device and Flash Memory System Including a Buffer Memory
TW200915324A (en) * 2007-09-27 2009-04-01 Phison Electronics Corp Wear leveling method and controller using the same
TW200917270A (en) * 2007-10-04 2009-04-16 Phison Electronics Corp Wear leveling method and controller using the same
TW200917021A (en) * 2007-01-17 2009-04-16 Memoright Memoritech Corp Method for managing flash memory block
TW200917261A (en) * 2007-10-09 2009-04-16 Phison Electronics Corp Wear leveling method and controller using the same
US20090150597A1 (en) * 2007-12-07 2009-06-11 Phison Electronics Corp. Data writing method for flash memory and controller using the same
US20090216936A1 (en) * 2008-02-21 2009-08-27 Phison Electronics Corp. Data reading method for flash memory and controller and storage system using the same

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567334B2 (en) * 1991-11-26 2003-05-20 Hitachi, Ltd. Storage device employing a flash memory
US7107389B2 (en) * 2002-08-29 2006-09-12 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device and method for writing data into flash memory
US7353326B2 (en) * 2005-04-01 2008-04-01 Samsung Electronics Co., Ltd. Flash memory device supporting cache read operation
US20080147998A1 (en) * 2006-12-18 2008-06-19 Samsung Electronics Co., Ltd. Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device
TW200917021A (en) * 2007-01-17 2009-04-16 Memoright Memoritech Corp Method for managing flash memory block
US20080195800A1 (en) * 2007-02-08 2008-08-14 Samsung Electronics Co., Ltd. Flash Memory Device and Flash Memory System Including a Buffer Memory
TW200915324A (en) * 2007-09-27 2009-04-01 Phison Electronics Corp Wear leveling method and controller using the same
TW200917270A (en) * 2007-10-04 2009-04-16 Phison Electronics Corp Wear leveling method and controller using the same
TW200917261A (en) * 2007-10-09 2009-04-16 Phison Electronics Corp Wear leveling method and controller using the same
US20090150597A1 (en) * 2007-12-07 2009-06-11 Phison Electronics Corp. Data writing method for flash memory and controller using the same
CN101231617A (en) * 2008-01-21 2008-07-30 中兴通讯股份有限公司 Method for processing data of flash memory equipment
US20090216936A1 (en) * 2008-02-21 2009-08-27 Phison Electronics Corp. Data reading method for flash memory and controller and storage system using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI703567B (en) * 2020-01-15 2020-09-01 點序科技股份有限公司 Data memory search method in data storage device

Also Published As

Publication number Publication date
TW201120895A (en) 2011-06-16

Similar Documents

Publication Publication Date Title
US7383375B2 (en) Data run programming
US7433993B2 (en) Adaptive metablocks
US7441067B2 (en) Cyclic flash memory wear leveling
KR100914089B1 (en) Maintaining erase counts in non-volatile storage systems
JP6016137B2 (en) Solid state drive and method of operation thereof
EP1561168B1 (en) Method and apparatus for splitting a logical block
EP1559018B1 (en) Wear leveling in non-volatile storage systems
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
US20050144363A1 (en) Data boundary management
US8108589B2 (en) Wear leveling method and controller using the same
US8239612B2 (en) Memory controller, flash memory system with memory controller, and control method of flash memory
US8239619B2 (en) Method and apparatus for high-speed byte-access in block-based flash memory
US20130311705A1 (en) Data storage device and method for flash block management
US20110087832A1 (en) Wear leveling in storage devices based on flash memories and related circuit, system, and method
WO2009096180A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
KR20090077538A (en) Semiconductor memory devices and wear leveling methods thereof
US20190079676A1 (en) System and method for channel time management in solid state memory drives
JP2010015591A (en) Tracking of most frequently erased block in non-volatile storage system
JP2008529130A (en) Scheduling housekeeping operations in flash memory systems
US7426605B2 (en) Method and apparatus for optimizing flash device erase distribution
KR100624973B1 (en) An Efficient Wear-leveling Scheme for Flash MemoryK-leveling
JP4829202B2 (en) Storage device and memory control method
TWI416525B (en) Nonvolatile memory apparatus and wear leveling method thereof
CN102096637A (en) Nonvolatile memory device and wear leveling method thereof
JP4334331B2 (en) Flash memory access control method