TWI385669B - 用於快閃記憶體的平均磨損方法、儲存系統與控制器 - Google Patents
用於快閃記憶體的平均磨損方法、儲存系統與控制器 Download PDFInfo
- Publication number
- TWI385669B TWI385669B TW097127941A TW97127941A TWI385669B TW I385669 B TWI385669 B TW I385669B TW 097127941 A TW097127941 A TW 097127941A TW 97127941 A TW97127941 A TW 97127941A TW I385669 B TWI385669 B TW I385669B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical block
- value
- count value
- erase count
- wear
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種平均磨損方法,且特別是有關於一種用於快閃記憶體的平均磨損方法及使此方法的儲存系統與其控制器。
數位相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。記憶卡就是一種以反及(NAND)快閃記憶體作為儲存媒體的儲存裝置。由於記憶卡體積小容量大且攜帶方便,所以已廣泛用於個人重要資料的儲存。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,快閃記憶體儲存系統的快閃記憶體會劃分為多個實體區塊並且此些實體區塊會分組為資料區(data area)與備用區(spare area)。歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存系統接受到主機的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存系統會從備用區中提取一實體區塊並且將在資料區中欲寫入的
實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊並且將已寫入新資料的實體區塊關聯為資料區,並且將原本資料區的實體區塊進行抹除並關聯為備用區。為了能夠讓主機能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存系統會提供邏輯區塊給主機。也就是說,快閃記憶體儲存系統會透過在一邏輯-實體對映表中記錄與更新邏輯區塊與資料區的實體區塊之間的對映關係來反映實體區塊的輪替,所以主機僅需要針對所提供邏輯區塊進行寫入而快閃記憶體儲存系統會依據邏輯-實體對映表對所對映的實體區塊進行讀取或寫入資料。
然而,實體區塊的抹除次數是有限的(例如實體區塊抹除一萬次後就會損壞)。倘若一實體區塊僅被程式化(programming)一次,而後未被再程式時,則此區塊的磨損是相對地低,反之,若一實體區塊被重複地程式化與抹除時,則此實體區塊的磨損就會相對地高。因此,所謂的磨損就是每一實體區塊被程式化或抹除的次數。
當實體區塊磨損程度過高而導致損毀時,系統會將損毀的實體區塊放置於壞區塊區而不會再使用。特別是,一旦損毀的實體區塊數超過一定數量而使得實體區塊的數目不足以提供主機對上述邏輯區塊的存取時,即使仍有其他實體區塊磨損程度仍低,此快閃記憶體儲存系統依然會被判定為無法再使用。然而,在儲存系統中往往會存有一些不會經常更動的資料,例如當使用者儲存喜好的音樂檔案
後,往往一段時間內不會更動此檔案。因此,可能造成每一實體區塊的磨損程度有很大的差異。
基此,有需要發展一平均磨損方法,以有效地延長快閃記憶體儲存系統的壽命。
有鑑於此,本發明提供一種平均磨損方法,其能夠有效地平均快閃記憶體的實體區塊的磨損以延長快閃記憶體儲存系統的壽命。
此外,本發明提供一種控制器,其使用上述平均磨損方法來管理快閃記憶體,其能夠有效地平均快閃記憶體的實體區塊的磨損以延長快閃記憶體儲存系統的壽命。
再者,本發明提供一種儲存系統,其使用上述區塊管理方法來管理快閃記憶體,其能夠有效地平均快閃記憶體的實體區塊的磨損以延長快閃記憶體儲存系統的壽命。
本發明提出一種平均磨損方法,適用於儲存系統的快閃記憶體,其中此快閃記憶體包括多個實體區塊且此些實體區塊至少分組為資料區與備用區,此平均磨損方法包括設定第一預設門檻值作為平均磨損啟動值,並且隨機產生一亂數值作為記憶體抹除計數值,其中此亂數值小於上述平均磨損啟動值。此平均磨損方法也包括每當抹除此些實體區塊時計數記憶體抹除計數值,以及判斷記憶體抹除計數值是否小於平均磨損啟動值,其中當記憶體抹除計數值不小於平均磨損啟動值時在資料區與備用區之間執行實體
區塊交換。
在本發明之一實施例中,上述之在資料區與備用區之間執行實體區塊交換的步驟包括分別地從資料區與備用區中選擇一實體區塊並且將從資料區中所選擇的實體區塊的資料複製到從備用區中所選擇的實體區塊中。上述之執行實體區塊交換的步驟還包括將從資料區中所選擇的實體區塊關聯為備用區,以及將從備用區中所選擇的實體區塊關聯為資料區。
在本發明之一實施例中,上述之平均磨損方法更包括記錄每一實體區塊的抹除計數值,以及每當抹除此些實體區塊時計數所抹除的實體區塊的抹除計數值。
在本發明之一實施例中,上述之分別地從該資料區與該備用區中選擇一實體區塊的步驟包括選擇資料區中具有最小抹除次數的實體區塊,以及選擇備用區中具有最大抹除次數的實體區塊。
在本發明之一實施例中,上述之從資料區與備用區中選擇一實體區塊的步驟包括循序地或隨機地從資料區與備用區中選擇一實體區塊。
在本發明之一實施例中,上述之平均磨損方法更包括依據此些實體區塊的抹除計數值計算平均抹除計數值,以及判斷此平均抹除計數值是否大於磨損門檻值,其中當平均抹除計數值大於磨損門檻值時以第二預設門檻值取代第一預設門檻值作為平均磨損啟動值,其中第二預設門檻值小於第一預設門檻值。
在本發明之一實施例中,上述之平均磨損方法更包括當儲存系統開機時調整備用區的實體區塊的抹除計數值。
在本發明之一實施例中,上述之隨機產生亂數值作為記憶體抹除計數值的步驟是在儲存系統開機時執行。
在本發明之一實施例中,上述之平均磨損方法,更包括判斷每一實體區塊的抹除計數值是否大於磨損門檻值以及當至少一個實體區塊的抹除計數值大於磨損門檻值時以第二預設門檻值取代第一預設門檻值作為平均磨損啟動值,其中第二預設門檻值小於第一預設門檻值。
在本發明之一實施例中,上述之調整備用區的實體區塊的抹除計數值的步驟包括將備用區的實體區塊的抹除計數值加一調整數。
本發明亦提供一種儲存系統及其控制器,此儲存系統包括快閃記憶體、連接器以及控制器,其中快閃記憶體具有多個實體區塊且此些實體區塊至少分組為資料區與備用區。此控制器是電性連接至上述快閃記憶體與連接器,並且此控制器包括微處理器單元以及耦接至微處理器單元的快閃記憶體介面模組、緩衝記憶體、主機介面模組與記憶體管理模組。特別是,此記憶體管理模組具有可由微處理器單元執行的多個機器指令以對快閃記憶體完成上述平均磨損方法步驟。
在本發明之一實施例中,上述之儲存系統為隨身碟、快閃記憶卡或固態硬碟。
在本發明之一實施例中,上述之記憶體管理模組是配
置在控制器中的硬體。
在本發明之一實施例中,上述之記憶體管理模組是韌體碼,此韌體碼是儲存在上述快閃記憶體中或上述控制器的程式記憶體中。
本發明因採用以隨機方式產生的一亂數值來設定每次快閃記憶體儲存系統開機時的記憶體抹計數值,因此可以避免實體區塊因快閃記憶體儲存系統開關機而造成長時間未執行實體區塊交換的問題。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
圖1是根據本發明一實施例繪示快閃記憶體儲存系統的概要方塊圖。請參照圖1,快閃記憶體儲存系統100包括控制器(亦稱控制器系統)110、連接器120以及快閃記憶體130。
通常快閃記憶體儲存系統100會與主機200一起使用,以使主機200可將資料寫入至快閃記憶體儲存系統100或從快閃記憶體儲存系統100中讀取資料。在本實施例中,快閃記憶體儲存系統120為固態硬碟(Solid State Drive, SSD)。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存系統100亦可以是記憶卡或隨身碟。
控制器110會執行以硬體型式或韌體型式實作的多個指令以配合連接器120與快閃記憶體130來進行資料的儲
存、讀取與抹除等運作。控制器110包括微處理器單元110a、記憶體管理模組110b、快閃記憶體介面模組110c、緩衝記憶體110d與主機介面模組110e。
微處理器單元110a用以與記憶體管理模組110b、快閃記憶體介面模組110c、緩衝記憶體110d與主機介面模組110e等協同合作以進行快閃記憶體儲存系統100的各種運作。
記憶體管理模組110b是耦接至微處理器單元110a。記憶體管理模組110b具有可由微處理器單元110a執行的多個機器指令以管理快閃記憶體130,例如區塊管理功能、維護邏輯-實體對映表(mapping table)功能等的機器指令。特別是,在本發明實施例中,記憶體管理模組110b包含可完成根據本實施例的平均磨損步驟(如圖3所示)的機器指令。
在本實施例中,記憶體管理模組110b的機械指令是以韌體型式儲存於快閃記憶體130的特定區域(例如,下述的系統區202)中,其中當快閃記憶體儲存系統100運作時,記憶體管理模組110b的多個機械指令會被載入至緩衝記憶體110d中並且由微處理器單元110a來執行以完成根據本實施例的平均磨損步驟。
在本發明另一實施例中,記憶體管理模組110b的機械指令亦可是以一韌體型式實作在控制器110中,例如以程式語言撰寫程式相關機械指令並且儲存於程式記憶體(例如,唯讀記憶體(Read Only Memory, ROM)來實作記憶體
管理模組110b,當快閃記憶體儲存系統100運作時,記憶體管理模組110b的多個機器指令會間接地被載入至緩衝記憶體110d中並且由微處理器單元110a來執行或直接由由微處理器單元110a來執行。此外,在本發明另一實施例中記憶體管理模組110b亦可以一硬體型式實作在控制器110中。
快閃記憶體介面模組110c是耦接至微處理器單元110a並且用以存取快閃記憶體130。也就是,欲寫入至快閃記憶體130的資料會經由快閃記憶體介面模組110c轉換為快閃記憶體130所能接受的格式。
緩衝記憶體110d是耦接至微處理器單元110a並且用以暫時地儲存系統資料(例如邏輯-實體對映表)或者主機200所讀取或寫入的資料。在本實施例中,緩衝記憶體110d為靜態隨機存取記憶體(static random access memory, SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory, DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory, MRAM)、相變化記憶體(Phase Change Random Access Memory, PRAM)或其他適合的記憶體亦可應用於本發明。
主機介面模組110e是耦接至微處理器單元110a並且用以接收與識別主機200所傳送的指令。也就是,主機200所傳送的指令與資料會透過主機介面模組110e來傳送至微處理器單元110a。
此外,雖未繪示於本實施例,但控制器110可更包括錯誤校正模組與電源管理模組等用於控制快閃記憶體的一般功能模組。
連接器120用以透過匯流排300連接主機200。在本實施例中,連接器120為PCI Express介面。然而,必須瞭解的是本發明不限於此,連接器120亦可以是USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面或其他適合的資料傳輸介面。
快閃記憶體130是電性連接至控制器110並且用以儲存資料。快閃記憶體130通常實質上分割為多個實體區塊(physical block)。一般而言,在快閃記憶體中實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁面位址(page)。頁面位址通常為程式化(program)的最小單元。但要特別說明的是於有些不同的快閃記憶體設計,最小的程式化單位也可為一個扇區(sector)。也就是說,一頁面位址中有多個扇區並以一扇區為程式化的最小單元。換言之,頁面位址為寫入資料或讀取資料的最小單元。每一頁面位址通常包括使用者資料區D與冗餘區R。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤校正碼(error correcting code, ECC))。
為對應於磁碟驅動器的扇區(sector)大小,一般而言,使用者資料區D通常為512位元組,而冗餘區R通常為16位元組。也就是,一頁為一個扇區。然而,亦可以多個
扇區形成一頁,例如一頁包括4個扇區。
一般而言,實體區塊可由任意數目的頁面位址所組成,例如64個頁面位址、128個頁面位址、256個頁面位址等。實體區塊通常也可被分組為數個區域(zone),以區域來管理記憶體某種程度上是彼此獨立地操作以增加操作執行的平行程度且簡化管理的複雜度。
圖2A與2B是根據本發明實施例繪示快閃記憶體的實體區塊進行輪替的示意圖。
必須瞭解的是,在此描述快閃記憶體的運作時以"提取"、"搬移"、"交換"、"替換"、"輪替"、"分割"、"劃分"等詞來操作快閃記憶體130的實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。值得一提的是,下述實體區塊的運作藉由控制器110執行記憶體管理模組110b的機械指令所完成。
請參照圖2A,在本發明實施例中,為了有效率地程式化(即,寫入與抹除)快閃記憶體130,控制器110會將快閃記憶體130的實體區塊在邏輯上分組為一系統區202、一資料區204與一備用區206。一般來說,快閃記憶體130中屬於資料區204的實體區塊會佔90%以上。如前所述,快閃記憶體130的實體區塊會以輪替方式提供主機來儲存資料,因此控制器110會提供邏輯區塊210給主機以進行資料存取,並且透過維護邏輯-實體對映表來記錄邏輯區塊所對映的實體區塊。
系統區202中的實體區塊用以記錄系統資料,系統資料例如是關於快閃記憶體130的區域數、每一區域的實體區塊數、每一實體區塊的頁面位址數、記錄邏輯區塊與實體區塊對映關係的邏輯-實體對映表(logical-physical mapping table)等。
資料區204中的實體區塊用以儲存使用者的資料,一般來說就是主機200所存取之邏輯區塊210所對映的區塊。
備用區206中的實體區塊是用以替換資料區204中的實體區塊,因此在備用區206中的實體區塊為空或可使用的區塊,即無記錄資料或標記為已沒用的無效資料。
具體來說,由於在快閃記憶體中每個位址僅能程式化一次,因此若要對已寫過資料位置再次寫入資料時,必須先執行抹除的動作。然而,如前所述快閃記憶體寫入單位為頁面,其小於以實體區塊為單位的抹除單位。因此,若要執行實體區塊的抹除動作時,必須先將欲抹除實體區塊中的有效頁面位址的資料複製至其它實體區塊後才可進行實體區塊的抹除動作。
例如,當主機欲寫入資料至邏輯區塊210之中的邏輯區塊L時,控制器110會透過邏輯-實體對映表得知邏輯區塊L目前是對映資料區204中的實體區塊M。因此,快閃記憶體儲存系統100將對實體區塊M中的資料進行更新,期間,控制器110會從備用區206中提取實體區塊C來取代資料區204的實體區塊M。然而,當將新資料入至實體區塊C的同時,不會立刻將實體區塊M中的所有有效資
料搬移至實體區塊C而抹除實體區塊M。具體來說,控制器110會將實體區塊M中欲寫入頁面位址之前的有效資料(即頁P0與P1)複製至實體區塊C(如圖2B的(a)),並且將新資料(即實體區塊C的頁P2與P3)寫入至C區塊(如圖2B的(b))。此時,將含有部分的有效舊資料與所寫入新資料的實體區塊C暫時地關聯為替換實體區塊208。此是因為實體區塊M中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊M中的所有有效資料搬移至替換實體區塊C可能會造成無謂的搬移。在此案例中,實體區塊M與替換實體區塊C的內容整合起來才是所對映邏輯區塊L的完整內容。此等母子區塊(即,實體區塊M與替換實體區塊C)的暫態關係可依據控制器110中緩衝記憶體110d的大小而定,例如一般會使用五組來實作。暫時地維持此種暫態關係的動作一般可稱為開啟(open)母子區塊。
之後,當需要將實體區塊M與替換實體區塊C的內容真正合併時,控制器110才會將實體區塊M與替換實體區塊C整併為一區塊,由此提升區塊的使用效率,此合併的動作又可稱為關閉(close)母子區塊。例如,如圖2B的(c)所示,當進行關閉母子區塊時,控制器110會將實體區塊M中剩餘的有效資料(即,頁P4~PN)複製至替換實體區塊C,然後將實體區塊M抹除並關聯為備用區206,同時,將替換實體區塊C關聯為資料區204,並且在邏輯-實體對映表中將邏輯區塊L的對映更改為實體區塊C,由此完成
關閉母子區塊的動作。
由於快閃記憶體130的程式化規格要求必須從每一實體區塊的第一頁開始寫入至最後一頁並且在每個位元僅能程式一次(即由僅能"1"變為"0")的條件下,一旦記憶體實體區塊的頁面位址寫入資料後,若欲更新已寫入的資料就必須如圖2A所示從備用區206中提取一實體區塊重新進行圖2B所示的步驟。因此,當實體區塊在未進行圖2B的(c)關閉動作之前(即處於圖2B的(b)所示的暫態),而發生必須更新剛搬移的資料(例如圖2B的P0~P1)時,則所搬移的舊資料就必須再搬移一次,此稱為混亂(Random)寫入模式時。例如,一般在儲存裝置中會使用檔案配置表(File Allocation Table, FAT)來管理儲存媒體,其中FAT資料的存取是非常頻繁。因此,當存取FAT表時可能會因為不斷更新剛搬移的資料而進入混亂寫入模式。在進入上述混亂寫入模式時,控制器110會直接在替換實體區塊C中循序地寫入資料而不進行如圖2B的(a)所述的有效資料搬移動作,以避免在混亂寫入模式下不斷重複執行圖2A與圖2B的動作。並且,當混亂寫入模式結束後再進行有效資料的整併。
一般來說,經常在資料區204與備用區206之間輪替的實體區塊稱為動態實體區塊。另外,在資料區204中往往有一些資料寫入後就長時間未曾更動。例如,當使用者儲存100首喜愛的MP3歌曲後就不曾再去刪除或更新。儲存此類資料的實體區塊一般稱為靜態實體區塊。靜態實體
區塊由於很少更動或更新,因此其抹除次數會相對低(即,磨損程度較低)。在本發明實施中,控制器110會在資料區204與備用區206之間執行實體區塊交換的動作,以使得資料區204中較少輪替的實體區塊有機會進行輪替,由此有效地平均實體區塊的磨損。以下將配合圖式以數個範例實施例說明本發明的平均磨損方法。
圖3是根據本發明第一實施例繪示平均磨損步驟的流程圖,其中此些步驟是控制器110的微處理器單元110a執行記憶體管理模組110b的機械指令所完成。
請參照圖3,當快閃記憶體儲存系統100開機時,首先在步驟S301中會設定第一預設門檻值作為平均磨損啟動值。平均磨損啟動值是代表啟動下述實體區塊交換動作的頻率,其中平均磨損啟動值愈大,啟動實體區塊交換動作的頻率愈低,反之,平均磨損啟動值愈小,啟動實體區塊交換動作的頻率愈高。使用者(例如,儲存系統的製造商)可根據所使用之快閃記憶體的品質以及欲達成平均磨損的效果來自行設定第一預設門檻值。需注意的是,執行實體區塊交換動作的頻率愈高則平均磨損的效果愈佳,但執行實體區塊交換動作所需的時間會影響快閃記憶體儲存系統100的效能。在本範例實施例中第一預設門檻值是設定為500。
在步驟S303中會隨機產生一亂數值作為記憶體抹除
計數值。記憶體抹除計數值是計數快閃記憶體儲存系統100在此次開機運作過程中對實體區塊執行抹除的次數,其用以判斷是否已達到執行實體區塊交換的條件(即,平均磨損啟動值)。因此,記憶體抹除計數值的初始值一般會設為0。然而,在記憶體抹除計數值的初始值設為0的例子中,倘若快閃記憶體儲存系統100在對實體區塊執行抹除的次數已接近平均磨損啟動值的時候關機時,則在快閃記憶體儲存系統100重新開機時記憶體抹除計數值的初始值將重新從0開始計算,此將造成實體區塊實際執行實體區塊交換動作的頻率偏低而使得平均磨損效果不佳而影響快閃記憶體儲存系統的壽命。基此,在本實施例中控制器110會以亂數值作為記憶體抹除計數值的初始值。值得一提的是,控制器110所產生的亂數值必須小於所設定的平均磨損啟動值。例如,在本實施例中步驟S301所設定的平均磨損啟動值為500(即,第一預設門檻值),因此控制器110會在0至500的範圍內隨機產生亂數值。產生亂數的方法可透過軟體或硬體實作一亂數產生器,此為此領域熟知技藝者可輕易瞭解,在此不詳細描述。此外,產生此亂數值的動作是在快閃記憶體儲存系統100執行一開機程序時所執行。
接著,在步驟S305中控制器110會待命並且當實體區塊被執行抹除指令時計數記憶體抹除計數值。例如,將記憶體抹除計數值加1。
之後,在步驟S307中會判斷記憶體抹除計數值是否
小於平均磨損啟動值。倘若在步驟S307中判斷記憶體抹除計數值不小於平均磨損啟動值時,則在步驟S309中會執行實體區塊交換。具體來說,在步驟S309中控制器110會從資料區204中隨機地提取一實體區塊(例如,實體區塊M),並且從備用區206中隨機地提取一實體區塊(例如,實體區塊C),然後將實體區塊M中的資料複製至實體區塊C中。最後,將實體區塊C關聯為資料區204且將實體區塊M抹除後關聯為備用區206。也就是說,實體區塊C會取代實體區塊M作為對映邏輯區塊L的實體區塊。
值得一提的是,在本實施例中是以隨機的方式從資料區204中選擇進行交換的實體區塊。然而,在本發明另一實施例中,亦可以依據在邏輯-實體對映表中邏輯區塊的順序循序地從資料區204中選擇實體區塊,以及依據可用實體區塊表中可用實體區塊的順序來循序地從備用區206中選擇實體區塊。在此,可用實體區塊表是用以記錄在備用區206中可用的實體區塊。
之後,在步驟S311中會將記憶體抹除計數值重置歸零,然後返回步驟S305。在此,平均磨損步驟會在快閃記憶體儲存系統100關機時結束。
基此,在本實施例的平均磨損方法中快閃記憶體儲存系統100在開機時記憶體抹除計數值的初始值會透過一亂數值來設定,因此可使得執行實體區塊交換的頻率更為穩定,以提升平均磨損的效果而延長快閃記憶體儲存系統100的壽命。
圖4是根據本發明第二實施例繪示平均磨損步驟的流程圖,其中此些步驟是控制器110的微處理器單元110a執行記憶體管理模組110b的機械指令所完成。
請參照圖4,當快閃記憶體儲存系統100開機時,首先在步驟S401中會設定第一預設門檻值作為平均磨損啟動值,例如第一預設門檻值是設定為500。在步驟S403中會隨機產生一亂數值作為記憶體抹除計數值。例如,控制器110會在0至500的範圍內隨機產生亂數值。在步驟S405中控制器110會待命並且當當實體區塊被執行抹除指令時計數記憶體抹除計數值。上述步驟S401、S403與S405是相同於S301、S303與S305,在此不再詳細說明。
接著,在步驟S406中會記錄或更新所執行抹除指令之實體區塊的抹除計數值,例如在所執行抹除指令之實體區塊的抹除計數值上加1。具體來說,在本實施例中,控制器110會在邏輯-實體對映表中記錄與更新資料區204的實體區塊的抹除次數,並且此資訊會此些實體區塊程式化時記錄在頁面的冗餘區R中。另外,控制器110會在可用實體區塊表記錄備用區206的實體區塊的抹除次數。特別是,在快閃記憶體儲存系統100運作期間邏輯-實體對映表與可用實體區塊表是在緩衝記憶體110d中進行更新,快閃記憶體儲存系統100會不定期地備份至快閃記憶體130的系統區202中。
然後,在步驟S407中會判斷記憶體抹除計數值是否
小於平均磨損啟動值。倘若在步驟S407中判斷記憶體抹除計數值不小於平均磨損啟動值時,則在步驟S409中會執行實體區塊交換。在本實施例中,在步驟S409中控制器110會依據實體區塊的抹除計數值從資料區204中提取具有最小抹除計數值的實體區塊,並且從備用區206中提取具有最大抹除計數值的實體區塊,然後將從資料區204中提取之實體區塊中的資料複製至從備用區206中提取之實體區塊中。最後,將從備用區206中提取之實體區塊關聯為資料區204且將從資料區204中提取之實體區塊抹除後關聯為備用區206。也就是說,從備用區206中提取之實體區塊會取代從資料區204中提取之實體區塊作為對映邏輯區塊的實體區塊。
接著,在步驟S411中會依據實體區塊的抹除計數值計算一平均抹除計數值,平均抹除計數值是快閃記憶體130中所有實體區塊的平均抹除次數。之後,在步驟S413中會判斷平均抹除計數值是否大於磨損門檻值,其中磨損門檻值由使用者或快閃記憶體儲存系統100的製造商自行設定。在此,磨損門檻值的設定是表示實體區塊已接近損壞的抹除次數,在本實施例中是依據快閃記憶體130規格中所標示可抹除次數的90%來設定。例如,當快閃記憶體130的可抹除次數為10000次時,在本實施例中會將磨損門檻值設定為9000。
在步驟S413中倘若判斷平均抹除計數值大於磨損門檻值時則在步驟S415中會以第二預設門檻值取代第一預
設門檻值作為平均磨損啟動值,其中第二預設門檻值是小於第一預設門檻值。第二預設門檻值亦可由使用者(例如,快閃記憶體儲存系統100的製造商)自行設定。在本實施例中,會將第二預設門檻值設定為第一預設門檻值的15%。例如,第二預設門檻值會設定為75(=500×15%)。在本實施例中,執行步驟S413與步驟S415的目的是要判斷快閃記憶體儲存系統100之實體區塊的使用(或抹除)程度是否已接近損壞程度,並且當快閃記憶體儲存系統100之實體區塊已接近損壞程度時,在本實施例中會提高執行實體區塊交換動作的頻率,以使實體區塊的磨損更為平均以延長快閃記憶體儲存系統的壽命。
之後,在步驟S417中會將記憶體抹除計數值重置歸零,然後返回步驟S405。在此,平均磨損步驟會在快閃記憶體儲存系統100關機時結束。
必須瞭解的是,雖然在本實施例中當快閃記憶體儲存系統100開機時會先以第一預設門檻值作為平均磨損啟動值,然後,在步驟S413與步驟415才會依據目前的平均抹除計數值是否大於磨損門檻值而使用第二預設值作為平均磨損啟動值。然而,在本發明另一實施例中,亦可在快閃記憶體儲存系統100開機時先確認目前的平均抹除計數值是否大於磨損門檻值,或者確認是否有至少一實體區塊之抹除次數到達一磨損門檻值,若平均抹除計數值大於磨損門檻值時則直接使用第二預設門檻值設定作為平均磨損啟動值。
此外,如上所述邏輯-實體對映表與可用實體區塊表是在緩衝記憶體110d中進行更新,並且以不定期的方式備份至快閃記憶體130的系統區202中。因此,在快閃記憶體儲存系統100關機時實體區塊的抹除次數有可能未即時地更新與備份至系統區202中,此將造成所記錄的實體區塊的抹除次數不精準。值得一提的是,由於資料區204的實體區塊的抹除次數會記錄在頁面的冗餘區R中,因此當快閃記憶體儲存系統100重新開機時,可較正確地更新邏輯-實體對映表中所記錄關於資料區204的實體區塊的抹除次數。對於備用區206的實體區塊來說,在本發明另一實施例中的平均磨損方法會更包括當快閃記憶體儲存系統100開機時調整備用區206的實體區塊的抹除計數值,以使備用區206之實體區塊的抹除次數更為精確。例如,當儲存系統開機時會對備用區206的每一實體區塊的抹除計數值隨機地加上一調整數。也就是,以隨機方式對某些實體區塊進行抹除計數值的調整。此外,此調整數是依據平均磨損啟動值除以備用區206之實體區塊數的整數值來設定,例如當平均磨損啟動值為500而備用區206之實體區塊數為384時,則此調整數為1。
綜上所述,本發明的平均抹損方法會以隨機方式產生的一亂數值來設定每次快閃記憶體儲存系統開機時的記憶體抹計數值,以避免實體區塊因快閃記憶體儲存系統頻繁開關機而造成長時間未執行實體區塊交換的問題,由此使實體區塊的磨損程度更為平均以延長快閃記憶體儲存系統
的壽命。再者,在本發明中會根據快閃記憶體目前的使用狀態來重新設定平均磨損啟動值以較高的頻率執行實體區塊交換,由此更平均實體區塊的磨損情形以延長快閃記憶體儲存系統的壽命。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧快閃記憶體儲存系統
110‧‧‧控制器
110a‧‧‧微處理器單元
110b‧‧‧記憶體管理模組
110c‧‧‧快閃記憶體介面模組
110d‧‧‧緩衝記憶體
110e‧‧‧主機介面模組
120‧‧‧連接器
130‧‧‧快閃記憶體
200‧‧‧主機
202‧‧‧系統區
204‧‧‧資料區
206‧‧‧備用區
208‧‧‧替換區塊
210‧‧‧邏輯區塊
300‧‧‧匯流排
M、C‧‧‧區塊
S301、S303、S305、S307、S309、S311‧‧‧平均磨損步驟
S401、S403、S405、S406、S407、S409、S411、S413、S415、S417‧‧‧平均磨損步驟
圖1是根據本發明一實施例繪示快閃記憶體儲存系統的概要方塊圖。
圖2A與2B是根據本發明實施例繪示快閃記憶體的實體區塊進行輪替的示意圖。
圖3是根據本發明第一實施例繪示平均磨損步驟的流程圖
圖4是根據本發明第二實施例繪示平均磨損步驟的流程圖
S301、S303、S305、S307、S309、S311‧‧‧平均磨損步驟
Claims (34)
- 一種平均磨損方法,適用於一儲存系統的一快閃記憶體,其中該快閃記憶體包括多個實體區塊且該些實體區塊至少分組為二資料區與一備用區,該平均磨損方法包括:設定一第一預設門檻值作為一平均磨損啟動值;隨機產生一亂數值作為一記憶體抹除計數值,其中該亂數值小於該平均磨損啟動值;每當抹除該些實體區塊時計數該記憶體抹除計數值;以及判斷該記憶體抹除計數值是否小於該平均磨損啟動值,其中當該記憶體抹除計數值不小於該平均磨損啟動值時在該資料區與該備用區之間執行一實體區塊交換。
- 如申請專利範圍第1項所述之平均磨損方法,其中在該資料區與該備用區之間執行該實體區塊交換的步驟包括:分別地從該資料區與該備用區中選擇一實體區塊;將從該資料區中所選擇的實體區塊的資料複製到從該備用區中所選擇的實體區塊中;將從該資料區中所選擇的實體區塊關聯為該備用區;以及將從該備用區中所選擇的實體區塊關聯為該資料區。
- 如申請專利範圍第2項所述之平均磨損方法,更包括:記錄每一實體區塊的抹除計數值;以及 每當抹除該些實體區塊時計數所抹除的實體區塊的抹除計數值。
- 如申請專利範圍第3項所述之平均磨損方法,其中分別地從該資料區與該備用區中選擇一實體區塊的步驟包括:選擇該資料區中具有最小該抹除次數的實體區塊;以及選擇該備用區中具有最大該抹除次數的實體區塊。
- 如申請專利範圍第2項所述之平均磨損方法,其中從該資料區與該備用區中選擇一實體區塊的步驟包括循序地或隨機地從該資料區與該備用區中選擇一實體區塊。
- 如申請專利範圍第3項所述之平均磨損方法,更包括:依據該些實體區塊的抹除計數值計算一平均抹除計數值;以及判斷該平均抹除計數值是否大於一磨損門檻值,其中當該平均抹除計數值大於該磨損門檻值時以一第二預設門檻值取代該第一預設門檻值作為該平均磨損啟動值,其中該第二預設門檻值小於該第一預設門檻值。
- 如申請專利範圍第3項所述之平均磨損方法,更包括當該儲存系統開機時調整該備用區的實體區塊的抹除計數值。
- 如申請專利範圍第1項所述之平均磨損方法,其中隨機產生該亂數值作為該記憶體抹除計數值的步驟是在該 儲存系統開機時執行。
- 如申請專利範圍第3項所述之平均磨損方法,更包括:判斷每一實體區塊的抹除計數值是否大於一磨損門檻值;以及當至少一個該些實體區塊的抹除計數值大於該磨損門檻值時以一第二預設門檻值取代該第一預設門檻值作為該平均磨損啟動值,其中該第二預設門檻值小於該第一預設門檻值。
- 如申請專利範圍第7項所述之平均磨損方法,其中調整該備用區的實體區塊的抹除計數值的步驟包括將該備用區的實體區塊的抹除計數值加一調整數。
- 一種控制器,適用於具有一快閃記憶體的一儲存系統,其中該快閃記憶體具有多個實體區塊且該些實體區塊至少分組為一資料區與一備用區,該控制器包括:一微處理器單元;一快閃記憶體介面模組,耦接至該微處理器單元;一主機介面模組,耦接至該微處理器單元;一緩衝記憶體,耦接至該微處理器單元;以及一記憶體管理模組,耦接至該微處理器單元且具有可由該微處理器單元執行的多個機器指令以對該快閃記憶體進行多個平均磨損步驟,該些平均磨損步驟包括:設定一第一預設門檻值作為一平均磨損啟動值;隨機產生一亂數值作為一記憶體抹除計數值,其中該 亂數值小於該平均磨損啟動值;每當抹除該些實體區塊時計數該記憶體抹除計數值;以及判斷該記憶體抹除計數值是否小於該平均磨損啟動值,其中當該記憶體抹除計數值不小於該平均磨損啟動值時在該資料區與該備用區之間執行一實體區塊交換。
- 如申請專利範圍第11項所述之控制器,其中在該資料區與該備用區之間執行該實體區塊交換的步驟包括:分別地從該資料區與該備用區中選擇一實體區塊;將從該資料區中所選擇的實體區塊的資料複製到從該備用區中所選擇的實體區塊中;將從該資料區中所選擇的實體區塊關聯為該備用區;以及將從該備用區中所選擇的實體區塊關聯為該資料區。
- 如申請專利範圍第12項所述之控制器,其中該些平均磨損步驟更包括:記錄每一實體區塊的抹除計數值;以及每當抹除該些實體區塊時計數所抹除的實體區塊的抹除計數值。
- 如申請專利範圍第13項所述之控制器,其中分別地從該資料區與該備用區中選擇一實體區塊的步驟包括:選擇該資料區中具有最小該抹除次數的實體區塊;以及選擇該備用區中具有最大該抹除次數的實體區塊。
- 如申請專利範圍第12項所述之控制器,其中分別地從該資料區與該備用區中選擇一實體區塊的步驟包括循序地或隨機地從該資料區與該備用區中選擇一實體區塊。
- 如申請專利範圍第13項所述之控制器,其中該些平均磨損步驟更包括:依據該些實體區塊的抹除計數值計算一平均抹除計數值;以及判斷該平均抹除計數值是否大於一磨損門檻值,其中當該平均抹除計數值大於該磨損門檻值時以一第二預設門檻值取代該第一預設門檻值作為該平均磨損啟動值,其中該第二預設門檻值小於該第一預設門檻值。
- 如申請專利範圍第13項所述之控制器,其中該些平均磨損步驟更包括當該儲存系統開機時調整該備用區的實體區塊的抹除計數值。
- 如申請專利範圍第11項所述之控制器,其中該儲存系統為一隨身碟、一快閃記憶卡或一固態硬碟。
- 如申請專利範圍第11項所述之控制器,其中隨機產生該亂數值作為該記憶體抹除計數值的步驟是在該儲存系統開機時執行。
- 如申請專利範圍第13項所述之控制器,其中該些平均磨損步驟更包括:判斷每一實體區塊的抹除計數值是否大於一磨損門檻值;以及當至少一個該些實體區塊的抹除計數值大於該磨損 門檻值時以一第二預設門檻值取代該第一預設門檻值作為該平均磨損啟動值,其中該第二預設門檻值小於該第一預設門檻值。
- 如申請專利範圍第17項所述之控制器,其中調整該備用區的實體區塊的抹除計數值的步驟包括將該備用區的實體區塊的抹除計數值加一調整數。
- 一種儲存系統,包括:一快閃記憶體,具有多個實體區塊且該些實體區塊至少分組為一資料區與一備用區;一連接器;以及一控制器,電性連接至該快閃記憶體與該連接器,該控制器會執行一記憶體管理模組的多個機器指令以執行多個平均磨損步驟,該些平均磨損步驟包括:設定一第一預設門檻值作為一平均磨損啟動值;隨機產生一亂數值作為一記憶體抹除計數值,其中該亂數值小於該平均磨損啟動值;每當抹除該些實體區塊時計數該記憶體抹除計數值;以及判斷該記憶體抹除計數值是否小於該平均磨損啟動值,其中當該記憶體抹除計數值不小於該平均磨損啟動值時在該資料區與該備用區之間執行一實體區塊交換。
- 如申請專利範圍第22項所述之儲存系統,其中在該資料區與該備用區之間執行該實體區塊交換的步驟包括: 分別地從該資料區與該備用區中選擇一實體區塊;將從該資料區中所選擇的實體區塊的資料複製到從該備用區中所選擇的實體區塊中;將從該資料區中所選擇的實體區塊關聯為該備用區;以及將從該備用區中所選擇的實體區塊關聯為該資料區。
- 如申請專利範圍第23項所述之儲存系統,其中該些平均磨損步驟更包括:記錄每一實體區塊的抹除計數值;以及每當抹除該些實體區塊時計數所抹除的實體區塊的抹除計數值。
- 如申請專利範圍第24項所述之儲存系統,其中分別地從該資料區與該備用區中選擇一實體區塊的步驟包括:選擇該資料區中具有最小該抹除次數的實體區塊;以及選擇該備用區中具有最大該抹除次數的實體區塊。
- 如申請專利範圍第23項所述之儲存系統,其中分別地從該資料區與該備用區中選擇一實體區塊的步驟包括循序地或隨機地從該資料區與該備用區中選擇一實體區塊。
- 如申請專利範圍第24項所述之儲存系統,其中該些平均磨損步驟更包括:依據該些實體區塊的抹除計數值計算一平均抹除計 數值;以及判斷該平均抹除計數值是否大於一磨損門檻值,其中當該平均抹除計數值大於該磨損門檻值時以一第二預設門檻值取代該第一預設門檻值作為該平均磨損啟動值,其中該第二預設門檻值小於該第一預設門檻值。
- 如申請專利範圍第24項所述之儲存系統,其中該些平均磨損步驟更包括當該儲存系統開機時調整該備用區的實體區塊的抹除計數值。
- 如申請專利範圍第22項所述之儲存系統,其中該記憶體管理模組是配置在該控制器中的一硬體。
- 如申請專利範圍第22項所述之儲存系統,其中該記憶體管理模組是一韌體,該韌體儲存在該快閃記憶體中。
- 如申請專利範圍第22項所述之儲存系統,其中該記憶體管理模組是一韌體,該韌體儲存在該控制器的一程式記憶體中。
- 如申請專利範圍第22項所述之儲存系統,其中隨機產生該亂數值作為該記憶體抹除計數值的步驟是在一開機程序期間執行。
- 如申請專利範圍第24項所述之儲存系統,其中該些平均磨損步驟更包括:判斷每一實體區塊的抹除計數值是否大於一磨損門檻值;以及當至少一個該些實體區塊的抹除計數值大於該磨損門檻值時以一第二預設門檻值取代該第一預設門檻值作為 該平均磨損啟動值,其中該第一預設門檻值小於該第一預設門檻值。
- 如申請專利範圍第28項所述之儲存系統,其中調整該備用區的實體區塊的抹除計數值的步驟包括將該備用區的實體區塊的抹除計數值加一謂整數。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW097127941A TWI385669B (zh) | 2008-07-23 | 2008-07-23 | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
| US12/265,973 US8086787B2 (en) | 2008-07-23 | 2008-11-06 | Wear leveling method, and storage system and controller using the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW097127941A TWI385669B (zh) | 2008-07-23 | 2008-07-23 | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201005745A TW201005745A (en) | 2010-02-01 |
| TWI385669B true TWI385669B (zh) | 2013-02-11 |
Family
ID=41569643
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW097127941A TWI385669B (zh) | 2008-07-23 | 2008-07-23 | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8086787B2 (zh) |
| TW (1) | TWI385669B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI548991B (zh) * | 2014-02-14 | 2016-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
| TWI876624B (zh) * | 2023-10-11 | 2025-03-11 | 旺宏電子股份有限公司 | 用於控制記憶裝置的控制裝置及其方法 |
Families Citing this family (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8176295B2 (en) | 2009-04-20 | 2012-05-08 | Imation Corp. | Logical-to-physical address translation for a removable data storage device |
| US8065469B2 (en) | 2009-04-20 | 2011-11-22 | Imation Corp. | Static wear leveling |
| US8453021B2 (en) | 2009-07-29 | 2013-05-28 | Stec, Inc. | Wear leveling in solid-state device |
| US8266481B2 (en) * | 2009-07-29 | 2012-09-11 | Stec, Inc. | System and method of wear-leveling in flash storage |
| US8176284B2 (en) | 2009-08-11 | 2012-05-08 | Texas Memory Systems, Inc. | FLASH-based memory system with variable length page stripes including data protection information |
| US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
| US8930622B2 (en) | 2009-08-11 | 2015-01-06 | International Business Machines Corporation | Multi-level data protection for flash memory system |
| US7818525B1 (en) | 2009-08-12 | 2010-10-19 | Texas Memory Systems, Inc. | Efficient reduction of read disturb errors in NAND FLASH memory |
| US8189379B2 (en) | 2009-08-12 | 2012-05-29 | Texas Memory Systems, Inc. | Reduction of read disturb errors in NAND FLASH memory |
| KR101097438B1 (ko) * | 2009-10-29 | 2011-12-23 | 주식회사 하이닉스반도체 | 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법 |
| TWI455131B (zh) * | 2010-04-16 | 2014-10-01 | Silicon Motion Inc | 記憶體之資料寫入方法及資料儲存裝置 |
| TWI475564B (zh) * | 2010-04-21 | 2015-03-01 | Silicon Motion Inc | 記憶體之資料寫入方法及資料儲存裝置 |
| US8949506B2 (en) * | 2010-07-30 | 2015-02-03 | Apple Inc. | Initiating wear leveling for a non-volatile memory |
| US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
| US8762625B2 (en) * | 2011-04-14 | 2014-06-24 | Apple Inc. | Stochastic block allocation for improved wear leveling |
| KR20120134919A (ko) * | 2011-06-03 | 2012-12-12 | 삼성전자주식회사 | 메모리 장치 |
| US9417894B1 (en) | 2011-06-15 | 2016-08-16 | Ryft Systems, Inc. | Methods and apparatus for a tablet computer system incorporating a reprogrammable circuit module |
| US20120324143A1 (en) * | 2011-06-15 | 2012-12-20 | Data Design Corporation | Methods and apparatus for data access by a reprogrammable circuit module |
| US11047791B2 (en) | 2011-06-17 | 2021-06-29 | Roche Diagnostics Hematology, Inc. | Systems and methods for sample display and review |
| US8898373B1 (en) * | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
| TWI454916B (zh) * | 2012-05-08 | 2014-10-01 | Phison Electronics Corp | 儲存單元管理方法、記憶體控制器與記憶體儲存裝置 |
| US9251056B2 (en) * | 2012-06-01 | 2016-02-02 | Macronix International Co., Ltd. | Bucket-based wear leveling method and apparatus |
| TWI495998B (zh) * | 2012-08-01 | 2015-08-11 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
| US9442838B2 (en) * | 2012-10-22 | 2016-09-13 | Rambus Inc. | Remapping memory cells based on future endurance measurements |
| US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
| KR102060996B1 (ko) * | 2013-01-07 | 2020-02-11 | 삼성전자주식회사 | 단말기의 메모리 주소 및 데이터변환 장치 및 방법 |
| US9026720B2 (en) | 2013-02-07 | 2015-05-05 | Apple Inc. | Non-volatile memory monitoring |
| US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
| US9727493B2 (en) | 2013-08-14 | 2017-08-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
| US9542309B2 (en) | 2013-08-21 | 2017-01-10 | Sandisk Technologies Llc | Relocating data based on matching address sequences |
| US10365835B2 (en) | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
| EP3035195A1 (en) * | 2014-12-16 | 2016-06-22 | SFNT Germany GmbH | A wear leveling method and a wear leveling system for a non-volatile memory |
| US9927987B2 (en) * | 2015-08-28 | 2018-03-27 | Sandisk Technologies Llc | Adaptive multi-phase erase |
| US9779823B2 (en) | 2016-01-06 | 2017-10-03 | Sandisk Technologies Llc | Secure erase of non-volatile memory |
| TWI607448B (zh) * | 2016-09-07 | 2017-12-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
| CN106484323A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种固态存储的损耗均衡方法及系统 |
| KR20180125694A (ko) * | 2017-05-16 | 2018-11-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
| JP7010667B2 (ja) * | 2017-11-06 | 2022-01-26 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| CN108563397B (zh) * | 2018-01-04 | 2021-08-24 | 威盛电子股份有限公司 | 存储装置以及数据保存方法 |
| CN111435403B (zh) * | 2018-12-26 | 2024-05-07 | 深圳市中兴微电子技术有限公司 | 一种闪存系统的磨损均衡方法及装置 |
| CN111949201A (zh) * | 2019-05-17 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种存储设备及其控制方法和控制装置 |
| CN110175385B (zh) * | 2019-05-20 | 2021-01-15 | 山东大学 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
| US11328778B2 (en) | 2020-07-09 | 2022-05-10 | Stmicroelectronics S.R.L. | Methods and devices for wear leveling |
| JP2022147574A (ja) * | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | メモリコントローラ、及びメモリシステム |
| JP2023087561A (ja) | 2021-12-13 | 2023-06-23 | キオクシア株式会社 | メモリシステム |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6081447A (en) * | 1991-09-13 | 2000-06-27 | Western Digital Corporation | Wear leveling techniques for flash EEPROM systems |
| US6985992B1 (en) * | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
| TWI247292B (en) * | 2002-10-28 | 2006-01-11 | Sandisk Corp | Maintaining an average erase count in a non-volatile storage system |
| TWI261168B (en) * | 2002-10-28 | 2006-09-01 | Sandisk Corp | Non-volatile memory system with erase counts stored in an erase count block |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8112574B2 (en) * | 2004-02-26 | 2012-02-07 | Super Talent Electronics, Inc. | Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes |
| US7562202B2 (en) * | 2004-07-30 | 2009-07-14 | United Parcel Service Of America, Inc. | Systems, methods, computer readable medium and apparatus for memory management using NVRAM |
| US7613876B2 (en) * | 2006-06-08 | 2009-11-03 | Bitmicro Networks, Inc. | Hybrid multi-tiered caching storage system |
| DE112006004187B4 (de) * | 2006-12-27 | 2015-09-10 | Intel Corporation | Verfahren, nicht-flüchtige Speichervorrichtung und Computersystem zum initiativen Abnutzungsausgleich für einen nicht-flüchtigen Speicher |
| TWI348163B (en) * | 2007-10-09 | 2011-09-01 | Phison Electronics Corp | Wear leveling method and controller using the same |
| US7937521B2 (en) * | 2008-01-29 | 2011-05-03 | Cadence Design Systems, Inc. | Read disturbance management in a non-volatile memory system |
| US8082384B2 (en) * | 2008-03-26 | 2011-12-20 | Microsoft Corporation | Booting an electronic device using flash memory and a limited function memory controller |
| TWI381390B (zh) * | 2008-04-10 | 2013-01-01 | Phison Electronics Corp | 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器 |
| US8275928B2 (en) * | 2008-05-15 | 2012-09-25 | Silicon Motion, Inc. | Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables |
| TWI373771B (en) * | 2008-06-06 | 2012-10-01 | Phison Electronics Corp | Memory management method for non-volatile memory and controller using the same |
-
2008
- 2008-07-23 TW TW097127941A patent/TWI385669B/zh active
- 2008-11-06 US US12/265,973 patent/US8086787B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6081447A (en) * | 1991-09-13 | 2000-06-27 | Western Digital Corporation | Wear leveling techniques for flash EEPROM systems |
| US6985992B1 (en) * | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
| TWI247292B (en) * | 2002-10-28 | 2006-01-11 | Sandisk Corp | Maintaining an average erase count in a non-volatile storage system |
| TWI261168B (en) * | 2002-10-28 | 2006-09-01 | Sandisk Corp | Non-volatile memory system with erase counts stored in an erase count block |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI548991B (zh) * | 2014-02-14 | 2016-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
| TWI876624B (zh) * | 2023-10-11 | 2025-03-11 | 旺宏電子股份有限公司 | 用於控制記憶裝置的控制裝置及其方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US8086787B2 (en) | 2011-12-27 |
| US20100023675A1 (en) | 2010-01-28 |
| TW201005745A (en) | 2010-02-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI385669B (zh) | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 | |
| CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
| TWI398770B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
| US8103820B2 (en) | Wear leveling method and controller using the same | |
| TWI381274B (zh) | 用於快閃記憶體的區塊管理方法、儲存系統與控制器 | |
| US8037232B2 (en) | Data protection method for power failure and controller using the same | |
| TWI447735B (zh) | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 | |
| TWI379194B (en) | Block management method for flash memory, and storage system and controller using the same | |
| US8291155B2 (en) | Data access method, memory controller and memory storage system | |
| US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
| TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
| US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
| US8214578B2 (en) | Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same | |
| TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
| US20090307413A1 (en) | Data writing method for flash memory and storage system and controller using the same | |
| TWI385667B (zh) | 用於快閃記憶體的資料管理方法、儲存系統與控制器 | |
| TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
| TWI407441B (zh) | 快閃記憶體寫入方法及使用此方法的儲存系統與控制器 | |
| TWI381393B (zh) | 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 | |
| CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
| CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
| CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
| TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
| CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
| TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |