專利名稱:非易失性存儲器裝置及其損耗平均方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種非易失性存儲器,且特別涉及一種非易失性存儲器裝置及其損耗 平均(wear leveling)方法。
背景技術(shù):
快閃存儲器(flash memory)是一種可編程(programmable)的只讀存儲器(read only memory, ROM),其允許被多次的抹除并更新所存儲的數(shù)據(jù)。這種快閃存儲器在現(xiàn)今的 電子產(chǎn)品中的應用非常廣泛,常見在存儲卡及隨身盤等作為數(shù)字電子產(chǎn)品間交換數(shù)據(jù)的媒 介。通常,快閃存儲器被劃分成多個數(shù)據(jù)塊(block),而每一個數(shù)據(jù)塊中又被細分為許 多容量相同的數(shù)據(jù)頁(page)。在此,快閃存儲器存在著一個限制,就是在當對快閃存儲器進 行數(shù)據(jù)的更新時,必須需針對要被更新的地址所在的數(shù)據(jù)塊進行抹除的動作后,再把新的 數(shù)據(jù)寫入。然而,快閃存儲器中的每一個數(shù)據(jù)塊進行數(shù)據(jù)抹除是有一定的壽命(抹除次數(shù)) 的限制。為了有效提升快閃存儲器的使用壽命,現(xiàn)有技術(shù)提出一種所謂的損耗平均(wear leveling)的技術(shù)來使每個數(shù)據(jù)塊的抹除次數(shù)能夠較為平均。請參照圖1 圖3,圖1 圖3現(xiàn)有的快閃存儲器的損耗平均存取方法的示意圖。 在圖1中,快閃存儲器110依據(jù)其實體塊地址(physical block address) PBAO PBA767分 成3個分區(qū),實體塊地址亦稱為實體地址或者物理地址。其中,實體塊地址PBAO PBA255 為第一分區(qū)DIV0,實體塊地址PBA256 PBA511為第二分區(qū)DIVl,而實體塊地址PBA512 PBA767為第三分區(qū)DIV2。然后,針對第一分區(qū)DIVO依據(jù)邏輯塊地址LBAO LBA255建立 對應查找表120。由于第一分區(qū)DIVO包括256個數(shù)據(jù)塊(每一個實體塊地址表示對應一 個數(shù)據(jù)塊)。其中,對應查找表120存儲的數(shù)據(jù)代表邏輯塊地址(logical block address) 及實體塊地址的對應關(guān)系。在圖1中,邏輯塊地址LBAO與實體塊地址PBAO相對應。接著請參照圖2,現(xiàn)有的損耗平均技術(shù)還包括建立空白陣列區(qū)130,空白陣列區(qū) 130記錄未被寫入數(shù)據(jù)的數(shù)據(jù)塊的實體塊地址。在圖2中,圖中左側(cè)的對應查找表120皆為 空白(未被寫入),而圖中左側(cè)的空白陣列區(qū)130則記錄出所有的實體塊地址PBAO PBAN 皆為空白。然而在執(zhí)行存取命令210后,由于邏輯塊地址LBAO LBA2要被寫入,因此,快閃 存儲器依據(jù)空白陣列區(qū)130的記錄提供實體塊地址PBA0、PBA1、PBA2分別對應邏輯塊地址 LBAO, LBAU LBA2以存儲數(shù)據(jù)。也因此,圖2右側(cè)的對應查找表120對應邏輯塊地址LBA0、 LBAU LBA2的存儲欄位分別存入實體塊地址ΡΒΑ0、PBAU PBA2。而圖2右側(cè)的空白陣列區(qū) 130也移除了原先實體塊地址PBAO、PBA 1、PBA2的記錄。接著繼續(xù)參照圖3,此時執(zhí)行存取命令310以針對邏輯塊地址LBAl、LBA2進行數(shù) 據(jù)的更新。依據(jù)空白陣列區(qū)130(如圖3左側(cè))來提供實體塊地址PBA3、PBA4來存入要更 新至邏輯塊地址LBA1、LBA2的數(shù)據(jù)。并且將實體塊地址ΡΒΑ0、PBAl清除,并加入空白陣列 區(qū)130(如圖3右側(cè)所示)。此種現(xiàn)有的損耗平均技術(shù)因為對應查找表120與快閃存儲器的實體塊地址必須一對一存在,而需要相當大的存儲空間,而空白陣列區(qū)130也需要多的存儲空間。換言之, 此種現(xiàn)有的損耗平均技術(shù)是需要較高的成本的。
發(fā)明內(nèi)容
本發(fā)明提供一種非易失性存儲器裝置及其損耗平均方法,可有效平均非易失性存 儲器中的各塊的歷史程序化次數(shù),以延長非易失性存儲器的使用壽命。本發(fā)明提出一種非易失性存儲器的損耗平均方法,首先,將非易失性存儲器的多 個實體塊地址分割出一數(shù)據(jù)存儲區(qū)及一空白陣列區(qū)。接著,比較空白陣列區(qū)中多個數(shù)據(jù)塊 的歷史程序化次數(shù)。之后,將空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù)據(jù)塊改配置在該數(shù)據(jù) 存儲區(qū),以及將數(shù)據(jù)存儲區(qū)中多個數(shù)據(jù)塊之的一改配置在該空白陣列區(qū)。在本發(fā)明的一實施例中,當數(shù)據(jù)存儲區(qū)需要被寫入一更新數(shù)據(jù)時,空白陣列區(qū)被 用來存放更新數(shù)據(jù)。本發(fā)明提出一種存儲器裝置,包括一非易失性存儲器以及一控制器??刂破黢罱?非易失性存儲器??刂破鲗⒎且资源鎯ζ鞣指畛鲆粩?shù)據(jù)存儲區(qū)及一空白陣列區(qū)。當控制 器進行一損耗平均方法時,所述損耗平均方法包括比較空白陣列區(qū)中多個數(shù)據(jù)塊的歷史 程序化次數(shù),以將空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù)據(jù)塊改配置在該數(shù)據(jù)存儲區(qū),以 及將數(shù)據(jù)存儲區(qū)中多個數(shù)據(jù)塊的一者改配置在該空白陣列區(qū)?;谏鲜觯景l(fā)明利用在數(shù)據(jù)存儲區(qū)中一個數(shù)據(jù)塊來與空白陣列區(qū)中歷史程序化 次數(shù)最多的數(shù)據(jù)塊進行交換,以延長非易失性存儲器的使用壽命。為讓本發(fā)明的上述特征和優(yōu)點能還明顯易懂,下面特舉實施例,并配合附圖作詳 細說明如下。
圖1 圖3現(xiàn)有的快閃存儲器的損耗平均存取方法的示意圖。圖4為本發(fā)明的非易失性存儲器的損耗平均方法的一實施例的操作流程圖。圖5A 圖5B以及圖6為本發(fā)明的非易失性存儲器的損耗平均方法的實施例的操 作示意圖。圖7為本發(fā)明的一實施例的非易失性存儲器控制裝置的方塊圖。主要元件符號說明110:快閃存儲器;120、520 對應查找表;130、512 空白陣列區(qū); 210、310 存取命令;510,740 非易失性存儲器;511 數(shù)據(jù)存儲區(qū);610 損耗平均方法;700 存儲器控制裝置;710 控制器;720 存儲裝置;730:傳輸接口;STO ST3999 存儲欄位;EC 歷史程序化次數(shù); DIVO 第一分區(qū);DIVl 第二分區(qū);DIV2 第三分區(qū);PAG000 PAG255 頁面;PBAO PBA4095、PBAN 實體塊地址;
S410 S430 存儲器損耗平均方法的步驟;LBAO LBA245、LBAN、LBAM、LDIVO, LDIV15 邏輯塊地址。
具體實施例方式以下請參照圖4,圖4為本發(fā)明的非易失性存儲器的損耗平均方法的一實施例的 操作流程圖。并請同時參照圖5A 圖5B以及圖6所的本發(fā)明的非易失性存儲器的損耗平 均方法的實施例的操作示意圖。其中,非易失性存儲器(Non-volatile memory, NVM)例如 是掩模只讀存儲器(Mask Read-OnlyMemory,Mask ROM)、可編程只讀存儲器(Programmable Read-Only Memory,PROM)、可擦除可編程只讀存儲器(Erasable Programmable Read-Only Memory, EPR0M)、電子式可擦除可編程只讀存儲器(Electrically ErasableProgrammable Read-Only Memory, EEPR0M)或快閃存儲器。在本實施例中,存取非易失性存儲器的步驟包括首先,步驟S410依據(jù)非易失性 存儲器的多個物理地址即實體塊地址分割出數(shù)據(jù)存儲區(qū)以及空白陣列區(qū),實體塊地址亦可 稱之為實體地址。如圖5A所示,非易失性存儲器510具有實體塊地址PBAO PBA4095,非 易失性存儲器510被分割為數(shù)據(jù)存儲區(qū)511以及空白陣列區(qū)512。其中,在本實施例中的數(shù) 據(jù)存儲區(qū)511包括實體塊地址PBAO PBA3999,而空白陣列區(qū)512則如同圖5B所示的包括 實體塊地址PBA4000 PBA4095。在此請注意,圖5A、圖5B所示的數(shù)據(jù)存儲區(qū)511以及空 白陣列區(qū)512的劃分僅只是一個范例,并不限制數(shù)據(jù)存儲區(qū)511以及空白陣列區(qū)512所包 括的實體塊地址的范圍。事實上,數(shù)據(jù)存儲區(qū)511以及空白陣列區(qū)512的分割方式是可以 動態(tài)調(diào)整的。另外,可依據(jù)非易失性存儲器510的多個邏輯塊地址建立對應查找表,其中對應 查找表中包括多個存儲欄位,用以存儲數(shù)據(jù)存儲區(qū)511的實體塊地址。如圖5A所示,對應查 找表520是依據(jù)非易失性存儲器510的邏輯塊地址LDIVO的LBAO LBA249至LDIV 15的 LBAO LBA249來建立的。對應查找表520包括存儲欄位STO ST3999,其中的每一個存 儲欄位都存儲數(shù)據(jù)存儲區(qū)511中的各個實體塊地址PBAO PBA3999。舉例來說,對應查找 表520中對應邏輯塊地址LDIVO的LBAO的存儲欄位STO所存儲的數(shù)據(jù)為實體塊地址ΡΒΑ0, 表示邏輯塊地址LDIVO的LBAO與實體塊地址PBAO相對應。還表示當要對非易失性存儲器 510的邏輯塊地址LDIVO的LBAO進行存取時,實際上是對非易失性存儲器510的實體塊地 址PBAO進行存取。在此,對應查找表520是被建立在一個存儲裝置中,而這個存儲裝置可 以是動態(tài)存儲器或是靜態(tài)存儲器。接著,請繼續(xù)參照圖4,每當接收到一個針對非易失性存儲器510的目標邏輯塊地 址寫入一更新數(shù)據(jù)的存取命令時,除了執(zhí)行該存取命令外,還判斷同一目標邏輯塊地址是 否被重復多次地存取數(shù)據(jù)。舉例來說,可判斷同一目標邏輯塊地址被連續(xù)存取數(shù)據(jù)的次數(shù) 是否達到預設(shè)值(例如50次)。當同一目標邏輯塊地址被重復多次地存取數(shù)據(jù)時(亦即目 標邏輯塊地址被連續(xù)存取數(shù)據(jù)的次數(shù),或連續(xù)進行地址/數(shù)據(jù)重新排序的次數(shù)達到預設(shè)值 時),則進行一次圖4所示的損耗平均方法的步驟S420與步驟S430。步驟S420比較空白陣列區(qū)512中多個數(shù)據(jù)塊的歷史程序化次數(shù)EC。非易失性存 儲器510中各個數(shù)據(jù)塊的歷史程序化次數(shù)EC可分別記錄在所屬數(shù)據(jù)塊的備用區(qū)(spare area)中。舉例來說,假設(shè)某一個數(shù)據(jù)塊分為256個頁面PAG000 PAG255,其中每個頁面皆有8K字節(jié)的存儲空間與一個400字節(jié)備用區(qū)。此數(shù)據(jù)塊的歷史程序化次數(shù)EC可以被存 儲在第一個頁面PAG000的備用區(qū)中,以記錄此數(shù)據(jù)塊被程序化的歷史次數(shù)。本實施例雖以 頁面PAG000的備用區(qū)為例進行記錄歷史程序化次數(shù)EC的說明,但不以此為限。歷史程序化次數(shù)EC表示了所屬數(shù)據(jù)塊曾經(jīng)被程序化的次數(shù)。例如,當抹除 (erasing)某一個實體塊地址所對應的數(shù)據(jù)塊時,將記錄在該實體塊地址對應的數(shù)據(jù)塊的 備用區(qū)中的歷史程序化次數(shù)EC加1。因此,歷史程序化次數(shù)EC可以表示所屬數(shù)據(jù)塊曾經(jīng)被 抹除過的次數(shù)值(即抹除計數(shù)值)。在另一實施例中,當將數(shù)據(jù)寫入某一個實體塊地址所對應的數(shù)據(jù)塊時,將記錄在 該實體塊地址對應的數(shù)據(jù)塊的備用區(qū)中的歷史程序化次數(shù)EC加1。因此,歷史程序化次數(shù) EC也可以表示所屬數(shù)據(jù)塊曾經(jīng)被寫入數(shù)據(jù)的次數(shù)值(即寫入計數(shù)值)。完成步驟S420之后,便可獲知空白陣列區(qū)512的所有數(shù)據(jù)塊中,歷史程序化次數(shù) EC最大的數(shù)據(jù)塊是哪一個。當數(shù)據(jù)存儲區(qū)511的某一個數(shù)據(jù)塊需要被寫入更新數(shù)據(jù)時,會 從空白陣列區(qū)512中選擇一個數(shù)據(jù)塊來存放更新數(shù)據(jù),而不會直接對數(shù)據(jù)存儲區(qū)511的數(shù) 據(jù)塊進行數(shù)據(jù)更新(包含讀取舊數(shù)據(jù)、抹除以及寫回更新后的數(shù)據(jù))。待數(shù)據(jù)存儲區(qū)511需 要做重新排序(resorting)的操作,或是數(shù)據(jù)存儲區(qū)511對應的實體塊地址已無法再寫入 數(shù)據(jù)時,則從空白陣列區(qū)512中選擇出來用以存放更新數(shù)據(jù)的數(shù)據(jù)塊會被抹除以備下次存 放更新數(shù)據(jù)。所以,空白陣列區(qū)512的數(shù)據(jù)塊會是非易失性存儲器510所有數(shù)據(jù)塊中,進行 程序化(programming)最頻繁的數(shù)據(jù)塊。因此,步驟S430便可以將空白陣列區(qū)512中歷史程序化次數(shù)EC最大的數(shù)據(jù)塊所 對應的實體塊地址與數(shù)據(jù)存儲區(qū)511中多個數(shù)據(jù)塊所對應的多個實體塊地址之一者進行 交換。也就是說,將空白陣列區(qū)512中歷史程序化次數(shù)EC最大的數(shù)據(jù)塊改配置在數(shù)據(jù)存 儲區(qū)511,以及將數(shù)據(jù)存儲區(qū)511的多個數(shù)據(jù)塊選擇其中一個數(shù)據(jù)塊改配置在空白陣列區(qū) 512。當然,數(shù)據(jù)存儲區(qū)511的數(shù)據(jù)塊與空白陣列區(qū)512的數(shù)據(jù)塊進行交換時,此二個數(shù)據(jù) 塊所存放的內(nèi)容也要對應地進行交換。另外,在某些應用例中,當數(shù)據(jù)塊因要存儲新的數(shù)據(jù)而需抹除先前存儲的數(shù)據(jù)時, 此數(shù)據(jù)塊的歷史程序化次數(shù)EC也將會被抹除,因此須先將此數(shù)據(jù)塊的歷史程序化次數(shù)EC 先讀出后,再進行數(shù)據(jù)塊的抹除,之后便可將讀出的歷史程序化次數(shù)EC加1后再寫回此數(shù) 據(jù)塊。由于數(shù)據(jù)存儲區(qū)511中數(shù)據(jù)塊被存取的頻率較小,而空白陣列區(qū)512中數(shù)據(jù)塊被存取 的頻率較大,將兩區(qū)的數(shù)據(jù)塊進行交換可使非易失性存儲器510的數(shù)據(jù)塊平均地被存取, 避免少數(shù)數(shù)據(jù)塊被集中地反復存取而減短非易失性存儲器510的使用壽命。舉例來說,請參照圖6,在接收存取命令前,數(shù)據(jù)存儲區(qū)511中各數(shù)據(jù)塊的實體 塊地址為PBAO PBA3999,而空白陣列區(qū)512中各數(shù)據(jù)塊的實體塊地址為PBA4000 PBA4095。當接收到存取命令后,便先判斷該存取命令所存取的邏輯塊地址是否被連續(xù)存取 數(shù)據(jù)達到50次。若發(fā)現(xiàn)同一邏輯塊地址確已連續(xù)被存取達50次,則進行一次損耗平均方 法610(參照圖4與相關(guān)說明)。在進行損耗平均方法610的過程中,自空白陣列區(qū)512的所有數(shù)據(jù)塊中選出歷史 程序化次數(shù)EC最大的一個數(shù)據(jù)塊。圖6所示實施例中,實體塊地址PBA4000的數(shù)據(jù)塊,其 歷史程序化次數(shù)EC最大(為100次),因此選擇將實體塊地址PBA4000的數(shù)據(jù)塊改配置在 數(shù)據(jù)存儲區(qū)511。另外,將數(shù)據(jù)存儲區(qū)511多個數(shù)據(jù)塊中選擇一個數(shù)據(jù)塊(例如實體塊地址PBAO的數(shù)據(jù)塊)改配置在空白陣列區(qū)512。圖6所示范例中,實體塊地址PBAO的數(shù)據(jù)塊, 其歷史程序化次數(shù)EC為10次。上述從數(shù)據(jù)存儲區(qū)511中選擇數(shù)據(jù)塊的方法,可以視系統(tǒng)設(shè)計需求而采取不同的 選擇手段。例如,可以在數(shù)據(jù)存儲區(qū)511中選擇具有最小歷史程序化次數(shù)EC的數(shù)據(jù)塊。然 而,要在數(shù)據(jù)存儲區(qū)511為數(shù)量大的數(shù)據(jù)塊中搜尋出最小歷史程序化次數(shù)EC的數(shù)據(jù)塊,其 搜尋過程可能會耗占太多時間。在一些實施例中,上述從數(shù)據(jù)存儲區(qū)511改配置在空白陣 列區(qū)512的數(shù)據(jù)塊,是從數(shù)據(jù)存儲區(qū)511的多個數(shù)據(jù)塊中隨機選出的。在另一些實施例中,上述從數(shù)據(jù)存儲區(qū)511改配置在空白陣列區(qū)512的數(shù)據(jù)塊,是 依據(jù)數(shù)據(jù)存儲區(qū)511中多個數(shù)據(jù)塊的實體塊地址的次序所選出的。例如以圖6為例,在這 次進行損耗平均方法610的過程,從數(shù)據(jù)存儲區(qū)511的多個數(shù)據(jù)塊中選擇實體塊地址最小 者(例如ΡΒΑ0),而在下一次進行損耗平均方法的過程,從數(shù)據(jù)存儲區(qū)511中選擇實體塊地 址次小者(例如PBA1),以此類推。完成損耗平均方法610后,對應邏輯塊地址LDIVO的LBAO的實體塊地址會從PBAO 改為PBA4000。依此類推,當下一次又有邏輯塊地址被連續(xù)存取超過50次時(例如邏輯塊 地址LBA3),可以照上述說明再一次進行損耗平均方法,而將空白陣列區(qū)512中歷史程序化 次數(shù)EC最高的數(shù)據(jù)塊(即實體塊地址PBA4001的數(shù)據(jù)塊,其為90次)與數(shù)據(jù)存儲區(qū)511 的一個數(shù)據(jù)塊(例如實體塊地址PBAl的數(shù)據(jù)塊)進行交換。由上述說明不難發(fā)現(xiàn),本實施例有效的平均分散各實體塊地址的塊的存取動作, 達成損耗平均的需求。以下則針對本發(fā)明的用以存取非易失性存儲器的存儲器控制裝置提出一實施例 來加以說明,期使本領(lǐng)域具通常知識者都可以輕易了解本發(fā)明并具以實施。請參照圖7,圖7為本發(fā)明的一實施例的非易失性存儲器裝置的方塊圖。存儲器控 制裝置700耦接非易失性存儲器740,并對非易失性存儲器740進行存取控制。存儲器控制 裝置700包括控制器710、存儲裝置720以及傳輸接口 730。其中,控制器710耦接至非易 失性存儲器740。控制器710將非易失性存儲器740分割出數(shù)據(jù)存儲區(qū)511及空白陣列區(qū) 512。存儲裝置720則耦接控制器710。存儲裝置720用以依據(jù)非易失性存儲器740的 多個邏輯塊地址建立對應查找表,其中的對應查找表中包括多個存儲欄位。這些存儲欄位 則用來存儲數(shù)據(jù)存儲區(qū)的實體塊地址。此外,當控制器710接收到針對目標邏輯塊地址寫入更新數(shù)據(jù)的存取命令時,控 制器710判斷目標邏輯塊地址是否被重復多次地存取數(shù)據(jù)。當控制器710判斷出目標邏輯 塊地址被重復多次地存取數(shù)據(jù)時,控制器710進行一次上述損耗平均方法。當控制器710 進行損耗平均方法時,所述損耗平均方法包括比較空白陣列區(qū)512中多個數(shù)據(jù)塊的歷史 程序化次數(shù)EC,以將空白陣列區(qū)512中歷史程序化次數(shù)EC最大的數(shù)據(jù)塊改配置在數(shù)據(jù)存儲 區(qū)511,以及將數(shù)據(jù)存儲區(qū)511中多個數(shù)據(jù)塊的一者改配置在空白陣列區(qū)512。。上述相關(guān) 在存儲器控制裝置700的動作細節(jié)相信在本發(fā)明的非易失性存儲器存取方法的實施例的 說明中已經(jīng)有詳細的介紹。因此,此處不再對存儲器控制裝置700的動作細節(jié)進行重復說 明。值得注意的是,存儲器控制裝置700還包括有傳輸接口 730。傳輸接口 730耦接控制器710,用以接收使用者對非易失性存儲器740所傳送的存取命令。當然,傳輸接口 730 也可以用來傳輸存入非易失性存儲器740或由非易失性存儲器740讀出的數(shù)據(jù)。這種傳輸 接口的功能及建構(gòu)方式,為本領(lǐng)域技術(shù)人員所熟知的技術(shù),在此不多詳述。綜上所述,本發(fā)明利用記錄每一塊的歷史程序化次數(shù),并將數(shù)據(jù)存儲區(qū)中數(shù)據(jù)塊 的實體塊地址與空白陣列區(qū)中被歷史程序化次數(shù)最多的數(shù)據(jù)塊的實體塊地址交換,以有效 的平均分配非易失性存儲器的各塊的歷史程序化次數(shù),延長非易失性存儲器的使用壽命。 并且,不需要與非易失性存儲器的總?cè)萘肯嗟鹊膶檎冶?,也不需要額外的存儲器來建 立空白陣列區(qū)。有效的在最小的電路面積下,達成非易失性存儲器的損耗平均的存取動作。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解其依然 可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替 換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精 神和范圍。
權(quán)利要求
1.一種非易失性存儲器的損耗平均方法,包括將該非易失性存儲器分割出一數(shù)據(jù)存儲區(qū)及一空白陣列區(qū);以及比較該空白陣列區(qū)中多個數(shù)據(jù)塊的歷史程序化次數(shù);以及將該空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù)據(jù)塊改配置在該數(shù)據(jù)存儲區(qū),以及將該數(shù) 據(jù)存儲區(qū)中多個數(shù)據(jù)塊之一改配置在該空白陣列區(qū)。
2.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,其中當該數(shù)據(jù)存儲區(qū)需要 被寫入一更新數(shù)據(jù)時,該空白陣列區(qū)被用來存放該更新數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的非易失性存儲器的損耗平均方法,其中寫入該更新數(shù)據(jù)前的 步驟包括接收一存取命令,其中該存取命令針對一目標邏輯塊地址寫入該更新數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的非易失性存儲器的損耗平均方法,所述寫入該更新數(shù)據(jù)的步 驟包括在寫入該更新數(shù)據(jù)至一實體塊地址對應的數(shù)據(jù)塊時,將記錄在該實體塊地址對應的數(shù) 據(jù)塊的備用區(qū)中的歷史程序化次數(shù)加1。
5.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,其中當抹除一實體塊地址 對應的數(shù)據(jù)塊時,將記錄在該實體塊地址對應的數(shù)據(jù)塊的備用區(qū)中的歷史程序化次數(shù)加1。
6.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,還包括當同一邏輯塊地址被連續(xù)存取的次數(shù)達一預設(shè)值時,進行一次所述比較該空白陣列區(qū) 中多個數(shù)據(jù)塊的歷史程序化次數(shù),以將該空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù)據(jù)塊改配 置在該數(shù)據(jù)存儲區(qū),以及將該數(shù)據(jù)存儲區(qū)中多個數(shù)據(jù)塊之一改配置在該空白陣列區(qū)。
7.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,還包括當一邏輯塊地址連續(xù)進行數(shù)據(jù)重新排序的次數(shù)達一預設(shè)值時,進行一次所述比較該空 白陣列區(qū)中多個數(shù)據(jù)塊的歷史程序化次數(shù),以將該空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù) 據(jù)塊改配置在該數(shù)據(jù)存儲區(qū),以及將該數(shù)據(jù)存儲區(qū)中多個數(shù)據(jù)塊之一改配置在該空白陣列 區(qū)。
8.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,其中從該數(shù)據(jù)存儲區(qū)改配 置在該空白陣列區(qū)的數(shù)據(jù)塊,是從該數(shù)據(jù)存儲區(qū)的所述多個數(shù)據(jù)塊中隨機選出的。
9.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,其中從該數(shù)據(jù)存儲區(qū)改配 置在該空白陣列區(qū)的數(shù)據(jù)塊,是依據(jù)該數(shù)據(jù)存儲區(qū)中所述多個數(shù)據(jù)塊的實體塊地址的次序 所選出的。
10.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,還包括依據(jù)該非易失性存儲器的多個邏輯塊地址建立一對應查找表,其中該對應查找表中包 括多個存儲欄位,用以存儲該數(shù)據(jù)存儲區(qū)的多個實體塊地址。
11.根據(jù)權(quán)利要求10所述的非易失性存儲器的損耗平均方法,其中該對應查找表建立 在靜態(tài)存儲器或動態(tài)存儲器。
12.根據(jù)權(quán)利要求1所述的非易失性存儲器的損耗平均方法,還包括動態(tài)調(diào)整該數(shù)據(jù)存儲區(qū)及該空白陣列區(qū)的存儲容量。
13.一種存儲器裝置,包括一非易失性存儲器;以及一控制器,耦接該非易失性存儲器,將該非易失性存儲器分割出一數(shù)據(jù)存儲區(qū)及一空白陣列區(qū),其中當該控制器進行一損耗平均方法時,所述損耗平均方法包括比較該空白陣 列區(qū)中多個數(shù)據(jù)塊的歷史程序化次數(shù),以將該空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù)據(jù)塊 改配置在該數(shù)據(jù)存儲區(qū),以及將該數(shù)據(jù)存儲區(qū)中多個數(shù)據(jù)塊之一改配置在該空白陣列區(qū)。
14.根據(jù)權(quán)利要求13所述的存儲器裝置,其中當該數(shù)據(jù)存儲區(qū)需要被寫入一更新數(shù)據(jù) 時,該空白陣列區(qū)被用來存放該更新數(shù)據(jù)。
15.根據(jù)權(quán)利要求14所述的存儲器裝置,其中該控制器還接收一存取命令,其中該存 取命令針對一目標邏輯塊地址寫入該更新數(shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的存儲器裝置,其中還包括一傳輸接口,耦接該控制器,用以接收該存取命令。
17.根據(jù)權(quán)利要求14所述的存儲器裝置,其中該控制器還在寫入該更新數(shù)據(jù)至一實體 塊地址對應的數(shù)據(jù)塊時,將記錄在該實體塊地址對應的數(shù)據(jù)塊的備用區(qū)中的歷史程序化次 數(shù)加1。
18.根據(jù)權(quán)利要求13所述的存儲器裝置,其中當一實體塊地址對應的數(shù)據(jù)塊被抹除 時,該控制器將記錄在該實體塊地址對應的數(shù)據(jù)塊的備用區(qū)中的歷史程序化次數(shù)加1。
19.根據(jù)權(quán)利要求13所述的存儲器裝置,其中當同一邏輯塊地址被連續(xù)存取的次數(shù)達 一預設(shè)值時,該控制器進行一次所述損耗平均方法。
20.根據(jù)權(quán)利要求13所述的存儲器裝置,其中當一邏輯塊地址連續(xù)進行數(shù)據(jù)重新排序 的次數(shù)達一預設(shè)值時,該控制器進行一次所述損耗平均方法。
21.根據(jù)權(quán)利要求13所述的存儲器裝置,其中該控制器在進行所述損耗平均方法時, 是從該數(shù)據(jù)存儲區(qū)的所述多個數(shù)據(jù)塊中隨機選出一數(shù)據(jù)塊以改配置在該空白陣列區(qū)。
22.根據(jù)權(quán)利要求13所述的存儲器裝置,其中該控制器在進行所述損耗平均方法時, 是依據(jù)實體塊地址的次序而在該數(shù)據(jù)存儲區(qū)中所述多個數(shù)據(jù)塊中選出一數(shù)據(jù)塊以改配置 在該空白陣列區(qū)。
23.根據(jù)權(quán)利要求13所述的存儲器裝置,還包括一存儲裝置,耦接該控制器,用以依據(jù)該非易失性存儲器的多個邏輯塊地址建立一對 應查找表,其中該對應查找表中包括多個存儲欄位,用以存儲該數(shù)據(jù)存儲區(qū)的多個實體塊 地址。
24.根據(jù)權(quán)利要求23所述的存儲器控制裝置,其中該存儲裝置為靜態(tài)存儲器或動態(tài)存 儲器。
25.根據(jù)權(quán)利要求13所述的存儲器裝置,其中該控制器還動態(tài)調(diào)整該數(shù)據(jù)存儲區(qū)及該 空白陣列區(qū)的存儲容量。
全文摘要
本發(fā)明提供一種非易失性存儲器裝置及其損耗平均方法。其中損耗平均方法包括首先,依據(jù)非易失性存儲器的多個實體塊地址分割出一數(shù)據(jù)存儲區(qū)及一空白陣列區(qū)。接著,比較空白陣列區(qū)中多個數(shù)據(jù)塊的歷史程序化次數(shù)。最后,將空白陣列區(qū)中歷史程序化次數(shù)最大的數(shù)據(jù)塊對應的實體塊地址與數(shù)據(jù)存儲區(qū)中多個數(shù)據(jù)塊所對應的多個實體塊地址之一進行交換。
文檔編號G06F12/02GK102096637SQ200910254040
公開日2011年6月15日 申請日期2009年12月15日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者周曉薇, 歐富國 申請人:點序科技股份有限公司