TWI474324B - 平均讀寫記憶元件的方法及記憶體系統 - Google Patents
平均讀寫記憶元件的方法及記憶體系統 Download PDFInfo
- Publication number
- TWI474324B TWI474324B TW97122204A TW97122204A TWI474324B TW I474324 B TWI474324 B TW I474324B TW 97122204 A TW97122204 A TW 97122204A TW 97122204 A TW97122204 A TW 97122204A TW I474324 B TWI474324 B TW I474324B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- group
- logical
- count value
- erase count
- Prior art date
Links
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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
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)
- Read Only Memory (AREA)
Description
本發明是有關於使用快閃記憶體技術的資料儲存系統,以及特別是有關於控制快閃記憶體系統來實質上延長其有效壽命與耐用性。
快閃記憶體(flash memory)通常被分割成多個可單獨抹除(erasable)的區塊(block)。區塊內的所有快閃記憶胞(flash memory cell)通常是一起進行抹除。就快閃記憶胞可重編程(reprogrammed)或抹除的次數而言,每個快閃記憶胞具有有限的有效壽命。這種限制通常可歸因於反復編程過程中電子陷入各別閘極(gate)以及隧道介電層(tunnel dielectric layer)。區塊被反復抹除容易使區塊中的記憶胞被用壞,這會導致區分抹除狀態與編程狀態的能力降低,並且造成抹除區塊所需的時間延長。
快閃記憶元件經得住使用的能力通常稱為“耐用性(endurance)”。耐用性可根據每個快閃區塊在不遭遇明顯失效(failure)的前提下可被抹除的最少次數或平均次數來規定。目前,就單階單元(single level cell,SLC)元件而言,耐用性數量是在數十萬次循環範圍內,而就多階單元(multi level cell,MLC)元件而言,耐用性數量則是在數萬次循環範圍內。對單一區塊或對少量區塊進行反復且頻繁的寫入,會使快閃元件更早地開始失效,且更快地結束快閃元件的有效壽命。
平均讀寫(wear-leveling)是一種使實體區塊的抹除計數值(count)保持平衡以更好地利用(例如)NAND快閃元件之預期壽命的技術,這種技術通常是採用韌體(firmware)方式來實施。如果此快閃元件中的所有區塊能夠更均勻地分配這些寫操作,那麼每個區塊將會更接近它能夠承受的最大抹除次數,而此時其他區塊不會超過最大抹除次數。如此一來,失效的開始可實質上延遲,從而延長快閃記憶元件的有效壽命,增強其耐用性。
快閃記憶體平均讀寫系統及其方法提出了上述及其他問題。提供了實施例。
一種示範性的平均讀寫記憶體系統包括:平均讀寫控制器、與此控制器進行訊號通訊的隨機存取記憶體(random access memory)以及與此控制器進行訊號通訊的另一記憶體。另一記憶體包含多個群組(group),每個群組包含多個第一抹除單元或區塊以及多個第二區塊,其中控制器將一群組中的第一區塊與第二區塊交換,以回應於此群組中的至少一個區塊抹除計數值。
一種示範性的平均讀寫記憶元件的方法包括:接收具有邏輯位址的命令(command);將此邏輯位址轉換成邏輯區塊號;確定包含執行轉換所得到的邏輯區塊號的群組的群組號;以及查核此群組的包含區塊抹除計數值的群組資訊是否被載入隨機存取記憶體,如果沒有,則將此群組資訊載入隨機存取記憶體。
另一示範性的平均讀寫記憶元件的方法包括:將此記憶元件的第一區域分割成多個群組,其中每個群組包含多個抹除單元或區塊;計算每個群組的群組抹除計數值,以回應於此群組中的至少一個區塊抹除計數值;以及替換一個群組中的區塊,以回應於所計算的群組抹除計數值的比較。
為讓本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式,作詳細說明如下。
如圖1所示,一種快閃記憶體系統通常使用元件符號100來表示。此快閃記憶體系統100包括處理器(processor)116、與此處理器進行訊號通訊的快閃記憶體110、與此處理器進行訊號通訊的唯讀記憶體(read-only memory,ROM)112以及與此處理器進行訊號通訊的隨機存取記憶體(random access memory,RAM)114。例如,唯讀記憶體112可包括可由處理器116來執行的程式步驟,以提供讀寫命令來從快閃記憶體110或隨機存取記憶體114讀取資料以及將資料寫入快閃記憶體110或隨機存取記憶體114。快閃記憶體110可包括平均讀寫控制器,在快閃記憶體中執行讀寫操作以回應於這些讀寫命令。可選擇的是,處理器116也可實施平均讀寫控制,例如根據唯讀記憶體112來實施的韌體控制。對應於這些讀寫命令的讀寫操作是在快閃記憶體110中根據本發明的平均讀寫實施例來執
行的。此外,唯讀記憶體112與隨機存取記憶體114可儲存有關的資料結構與/或可藉由處理器116來執行的應用程式步驟。
請參照圖2,一種快閃記憶體控制器通常使用元件符號200來表示。此快閃記憶體控制器200包括邏輯位址單元210,此邏輯位址單元210連接到對映表(mapping table)220,此對映表220再連接到記憶庫(memory bank)230。對映表220包括許多邏輯位址(1ogical)到實體位址(physical)的入口(entry)。在此例中,邏輯位址0、1、2、3、…、10分別對映於實體位址100、110、120、130、…、200。記憶庫230包括許多具有實體位址100、110、120、130、…、200的實體記憶塊,每個實體記憶塊具有相關的抹除計數值(erase count,EC)。在此例中,實體位址100、110、120、130、…、200上的實體記憶塊分別具有8000、5000、3000、1000、…、500的抹除計數值。
操作中,快閃記憶體控制器200藉由對映表220來存取記憶庫230中的對應於邏輯位址(例如,“0”)的實體位址(例如,區塊100),且將從主機(host)接收的資料寫入此實體位址上的區塊。不考慮每個區塊的使用頻率或抹除計數值,將資料無條件地寫入對映表中開頭分配的區塊。在許多情形下,只有少數區塊被頻繁使用,且被磨損。
下面請參照圖3,一種帶主動(active)平均讀寫以及資料塊對資料塊互換(data block to data block interchange)的快閃記憶體控制器通常使用元件符號300來表示。此快
閃記憶體控制器300包括邏輯位址單元310,此邏輯位址單元310連接到對映表320,此對映表320再連接到記憶庫330。對映表320包括許多邏輯位址到實體位址的入口。在此例中,邏輯位址0、1、2、3、…、10分別對映於實體位址200、110、120、130、…、100。記憶庫330包括許多具有實體位址100、110、120、130、…、200的實體記憶塊,每個實體記憶塊具有相關的抹除計數值。在此例中,實體位址100、110、120、130、…、200上的實體記憶塊分別具有8000、5000、3000、1000、…、500的抹除計數值。
操作中,快閃記憶體控制器300執行重對映(remapping)過程,使得每個區塊的寫入次數或抹除計數值之差異不會超過預定數字。對映表320將原邏輯位址對映到更新的實體位址。在此例中,與邏輯位址0、10相關聯的實體位址相互交換。也就是說,邏輯位址0變成與當前抹除計數值為500的實體區塊200相關聯,而邏輯位址10則變成與當前抹除計數值為8000的實體區塊100相關聯。如此一來,這些區塊就能得到更均勻的使用,且增強其耐用性。
如圖4所示,一種帶主動平均讀寫以及資料塊對自由塊互換(data block to free block interchange)的快閃記憶體控制器通常使用元件符號400來表示。此快閃記憶體控制器400包括邏輯位址單元410,此邏輯位址單元410連接到對映表420,此對映表420再連接到記憶庫430。對映
表420包括許多邏輯位址到實體位址的入口。在此例中,邏輯位址0、1、2、3、…、10分別對映於實體位址200、110、120、130、…、300。記憶庫430包括許多具有實體位址100、110、120、130、…、200、300的實體記憶塊,每個實體記憶塊具有相關的抹除計數值。在此例中,實體位址100、110、120、130、…、200、300上的實體記憶塊分別具有8000、5000、3000、1000、…、500、0的抹除計數值。
操作中,快閃記憶體控制器400執行重對映過程,使得每個區塊的寫入次數或抹除計數值之差異不會超過預定數字。對映表420將原邏輯位址對映到更新的實體位址。在此例中,與邏輯位址10相關聯的實體位址被更新為區塊300的實體位址,然後與邏輯位址0相關聯的實體位址被更新為區塊200的實體位址。也就是說,邏輯位址0變成與當前抹除計數值為500的實體區塊200相關聯,而邏輯位址10則變成與當前抹除計數值為0的實體區塊300相關聯。如此一來,這些區塊就可得到更均勻的使用,且增強其耐用性。
請參照圖5,一種平均讀寫快閃記憶體通常使用元件符號500來表示。此平均讀寫快閃記憶體可包括資料塊510、自由塊(free block)或日誌塊(log block)512以及保留塊514,其中每個資料塊510具有備用區(spare area)511。資料塊是用來儲存資料,自由塊起初是不使用的。日誌塊是從自由塊得來的,且用來儲存資料塊的更新。平均
讀寫快閃記憶體500在各別資料塊510的備用區511中保留記憶塊的抹除計數值。也就是說,控制器可在每個區塊的備用區中記錄各別區塊已經歷的抹除次數或其抹除計數值。控制器中的位址轉換器(address translator)可從主機接收邏輯位址,並且將此邏輯位址轉換成實體位址,此實體位址表示快閃記憶體中的將會儲存資料的實際位置。因此,執行重對映可使記憶塊的使用頻率或抹除計數值保持平衡。
在快閃記憶體500的操作中,抹除計數值是被儲存在資料塊510的備用區511中。請返回參照圖4中的控制器400,例如,具有最小抹除計數值的記憶塊(例如,區塊200)中所儲存的資料被轉移到當前備用塊(例如,區塊300)。具有最大抹除計數值的記憶塊(例如,區塊100)中所儲存的資料被轉移到具有最小抹除計數值的記憶塊(例如,區塊200)中。具有最大抹除計數值的記憶塊(例如,區塊100)中的資料被分配到新的備用塊。直到其他區塊的抹除計數值大於新的備用塊(例如,區塊100)的抹除計數值時,才開始使用新的備用塊(例如,區塊100)。當使用新的備用塊時,要相應地更新位址對映或變換表。
下面請參照圖6,一種平均讀寫快閃記憶體通常使用元件符號600來表示。此平均讀寫快閃記憶體可包括資料塊610、自由塊或日誌塊612、保留塊614以及元塊(meta block)616。資料塊目前是用來儲存資料,自由塊起初不使用。日誌塊是從自由塊得來的,且用來儲存資料塊的更
新或元塊的更新。元塊可用來儲存邏輯對實體的對映資訊。此外,平均讀寫快閃記憶體600在元塊616中保存記憶塊的抹除計數值。也就是說,平均讀寫快閃記憶體600是在單獨的元塊中保存資料塊的抹除計數值。如此一來,平均讀寫快閃記憶體600不必將抹除計數值儲存在(例如)資料塊的備用區中,且不必僅僅為了確定其儲存的抹除計數值而單獨存取每個資料塊。例如,存取儲存在元塊中的多個抹除計數值會更快且效率更高。
例如,在由4,096個區塊組成的4G NAND快閃記憶體的操作中,每個區塊的抹除計數值可儲存在元塊中,而不是儲存在每個區塊的備用區中。當接收到資料時,控制器根據此資料的邏輯位址來分配自由塊給日誌塊,且將接收的資料寫入此日誌塊。
如果沒有剩餘的自由塊,則執行合併(merge)操作。合併操作就是將日誌塊與此日誌塊所對應之資料塊中的有效資料合併,且產生新的自由塊。自由塊或日誌塊以及元塊更新最頻繁。平均讀寫技術是在自由塊與資料塊之間以及元塊與自由塊之間執行。
關於基本的自由塊平均讀寫,就是將所有資料塊的抹除計數值相互比較。對所有資料塊的最大與/或最小抹除計數值的元資料進行搜尋。此外,可使用高密度靜態隨機存取記憶體(static random access memory,SRAM)來更快速地掃描所有資料塊的抹除計數值。控制器可包括大約20KB的靜態隨機存取記憶體。在具有4,096個區塊的4G NAND
快閃記憶體中,可使用16KB的靜態隨機存取記憶體來快速比較抹除計數值。靜態隨機存取記憶體也可儲存其他資料,例如對映表。靜態隨機存取記憶體的使用率應保持謹慎的平衡,目的是為了在基本的自由塊平均讀寫中,因所有資料塊的抹除計數值比較而造成的控制器效能降格能夠最小化。
如圖7所示,一種平均讀寫快閃記憶體控制器通常使用元件符號700來表示。根據本發明之實施例,此快閃記憶體控制器700執行自由塊與資料塊之間的平均讀寫。此示範性的快閃記憶體控制器700包括第一記憶塊群組710、第二記憶塊群組720、第三記憶塊群組730以及第四記憶塊群組740。每個記憶塊群組包括多個具有邏輯位址的記憶塊。群組計數值與每個群組有關。
在本實施例中,記憶塊的邏輯位址在這些群組中是相互交錯的。用來對記憶塊進行分組的演算法(algorithm)將群組號確定為區塊號模數(modulo)群組總數。例如,有四個群組,群組號可確定為區塊號模數4。
因此,當模數的餘數是零時,此區塊被分組到第0群組,在本說明書中就是群組710。當模數的餘數是一時,此區塊被分組到第1群組,在本說明書中就是群組720。當模數的餘數是二時,此區塊被分組到第2群組,在本說明書中就是群組730。當模數的餘數是三時,此區塊被分組到第3群組,在本說明書中就是群組740。因此,群組710包括具有邏輯位址0、4、8、12、16、20、24、28、32、
36、40、…的記憶塊,群組720包括具有邏輯位址1、5、9、13、17、21、25、29、33、37、41、…的記憶塊,群組730包括具有邏輯位址2、6、10、14、18、22、26、30、34、38、42、…的記憶塊,以及群組740包括具有邏輯位址3、7、11、15、19、23、27、31、35、39、43、…的記憶塊。在本說明書中,群組710具有相關的群組計數值200,群組720具有相關的群組計數值300,群組730具有相關的群組計數值500,以及群組740具有相關的群組計數值100。
快閃記憶體控制器700更包括日誌塊750與自由塊760。任何自由塊可與任何群組中邏輯位址所指示的任何實體區塊進行交換。此外,任何日誌塊可與任何邏輯位址相關聯。
在平均讀寫快閃記憶體控制器700的操作中,要對每個群組進行群組計數值計算。例如,群組計數值可以是此群組中任何區塊的最大抹除計數值。在此情形下,具有最小群組計數值的群組被選中,例如群組計數值742為100的群組740。接著,掃描此群組來確定此群組中任何區塊的最小抹除計數值。在這裡,與邏輯位址#15相關聯的實體區塊744具有最小抹除計數值3。所有自由塊中具有最大抹除計數值的自由塊(例如,具有抹除計數值32的自由塊760)與群組740中具有最小抹除計數值的區塊744調換。例如,在自由塊與資料塊之間的平均讀寫方案中,資料塊被分割成多個群組,例如上述範例中的四個群組。自
由塊平均讀寫包括:計算群組中區塊的抹除計數值;將群組中所有資料塊的最大抹除計數值保存為此群組的群組計數值;在具有最小群組計數值的群組中選擇資料塊當中具有最小抹除計數值的資料塊;以及將自由塊當中具有最大抹除計數值的自由塊與所選的資料塊進行調換。因此,只有具最小群組計數值的群組中的抹除計數值才被掃描。
在另外的實施例中,資料塊可包括標準資料、元資料與/日誌資料。在另外的實施例中,群組計數值可界定為群組中的最小抹除計數值、群組中的平均抹除計數值等,而不是像當前實施例那樣界定為群組中的最大抹除計數值。在另一實施例中,可考慮採用元塊平均讀寫控制,它是元塊與自由塊之間的平均讀寫方案。只要一寫入資料,就可執行元塊平均讀寫。元塊的數量可小於資料塊的數量。
如果元塊的數量比資料塊的數量少很多,那麼元塊抹除計數值的比較時間可相對較快,因此可不必使用分組方案。
在另一種元塊平均讀寫操作中,此方法包括:找到所有元塊中具有最大抹除計數值的元塊;找到所有自由塊中具有最小抹除計數值的自由塊;以及將找到的元塊與找到的自由塊進行調換。
請參照圖8,一種自由塊平均讀寫快閃記憶體控制通常使用元件符號800來表示。在控制800中,計算群組計數值,且當合併操作的次數超過預定數字時,執行調換。控制800包括起始塊810,傳遞控制到功能塊812。功能塊
812將邏輯位址轉換成邏輯區塊號,且傳遞控制到功能塊814。功能塊814確定此邏輯區塊號所對應的群組號,且傳遞控制到決策塊816。決策塊816判斷群組資訊是否已載入靜態隨機存取記憶體。如果是,則傳遞控制到功能塊820,否則傳遞控制到功能塊818,功能塊818將群組資訊載入靜態隨機存取記憶體,然後再傳遞控制到功能塊820。功能塊820確定邏輯區塊號所對應的實體區塊位址,且傳遞控制到決策塊822。
接著,決策塊822判斷同一邏輯區塊位址所對應的日誌塊是否已存在。如果是,則傳遞控制到功能塊824,功能塊824將資料寫入日誌塊,且傳遞控制到決策塊834。否則,決策塊822傳遞控制到決策塊826,決策塊826判斷當前是否存在任何自由塊。如果是,則傳遞控制到功能塊832,功能塊832將資料寫入此自由塊,且傳遞控制到決策塊834。否則,決策塊826傳遞控制到功能塊828,功能塊828執行合併操作。接著,功能塊828傳遞控制到功能塊830,功能塊830將資料寫入新的自由塊,且傳遞控制到決策塊834。
決策塊834判斷合併操作的次數是否大於預定數字,如果否,則傳遞控制到結束塊842,如果是,則傳遞控制到功能塊836,功能塊836計算群組計數值。接著,功能塊836傳遞控制到功能塊838,功能塊838從具有最小群組計數值的群組中選擇具有最小抹除計數值的資料塊。功能塊838傳遞控制到功能塊840,功能塊840將具有最大
抹除計數值的自由塊與所選的資料塊調換。功能塊840傳遞控制到結束塊842。如此一來,計算群組計數值,且當決策塊834判斷合併操作的次數超過預定數字時,執行調換。下面請參照圖9,另一種自由塊平均讀寫快閃記憶體控制通常使用元件符號900來表示。在控制900中,群組計數值總是在寫操作之後進行計算,且當最小自由塊抹除計數值與最小資料塊抹除計數值之間的差異超過預定數字時,執行調換。控制900包括起始塊910,其傳遞控制到功能塊912。功能塊912將邏輯位址轉換成邏輯區塊號,且傳遞控制到功能塊914。功能塊914確定此邏輯區塊號所對應的群組號,且傳遞控制到決策塊916。決策塊916判斷群組資訊是否被載入靜態隨機存取記憶體,如果是,則傳遞控制到功能塊920,否則傳遞控制到功能塊918。功能塊918將群組資訊載入靜態隨機存取記憶體,然後傳遞控制到功能塊920。功能塊920確定此邏輯區塊號所對應的實體區塊位址,且傳遞控制到決策塊922。
接著,決策塊922判斷同一邏輯區塊位址所對應的日誌塊是否存在,如果是,則傳遞控制到功能塊924,功能塊924將資料寫入日誌塊,且傳遞控制到功能塊932,否則決策塊922傳遞控制到決策塊926。決策塊926判斷當前是否存在任何自由塊,如果是,則傳遞控制到功能塊932,功能塊932計算群組計數值,且傳遞控制到功能塊934,否則決策塊926傳遞控制到功能塊928,功能塊928執行合併操作。接著,功能塊928傳遞控制到功能塊930,
功能塊930產生新的自由塊,且傳遞控制到功能塊932。
功能塊934從具有最小群組計數值的群組中選擇具有最小抹除計數值的資料塊,且傳遞控制到決策塊936。決策塊936判斷最小自由塊抹除計數值減去所選之最小資料塊抹除計數值是否大於預定數字。如果是,則傳遞控制到功能塊938,否則傳遞控制到功能塊940。功能塊938將自由塊與資料塊調換,且傳遞控制到功能塊940。功能塊940將資料寫入自由塊,且傳遞控制到結束塊942。
因此,在控制900中,群組計數值總是在寫操作之後進行計算。當決策塊936判斷最小自由塊抹除計數值與最小資料塊抹除計數值之間的差異超過預定數字時,執行調換。
如圖10所示,一種平均讀寫快閃卡記憶體系統通常使用元件符號1000來表示。此快閃卡記憶體系統包括主機1010與快閃卡(flash card)1020。快閃卡1020包括控制器1030與快閃記憶體1040。控制器1030包括主機介面(interface)1031,在主機1010與匯流排(bus)1032之間進行訊號通訊;快閃介面1033,在匯流排1032與快閃記憶體1040之間進行訊號通訊;緩衝記憶體1035,例如靜態隨機存取記憶體,與匯流排1032進行訊號通訊;處理器或中央處理單元(central process unit,CPU)1037,與匯流排1032進行訊號通訊;以及唯讀記憶體,例如遮罩唯讀記憶體(mask read only memory),與匯流排1032進行訊號通訊。
在系統1000的操作中,例如,平均讀寫韌體可儲存在唯讀記憶體1039或快閃記憶體1040中。每個區塊的抹除計數值是從快閃記憶體1040中的元塊被載入緩衝記憶體1035,且藉由中央處理單元1037來分組。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧快閃記憶體系統
110、1040‧‧‧快閃記憶體
112、1039‧‧‧唯讀記憶體
114‧‧‧隨機存取記憶體
116‧‧‧處理器
200、300、400、700‧‧‧快閃記憶體控制器
210、310、410‧‧‧邏輯位址單元
220、320、420‧‧‧對映表
230、330、430‧‧‧記憶庫
500、600‧‧‧平均讀寫快閃記憶體
510、610‧‧‧資料塊
511‧‧‧備用區
512、612、750、760‧‧‧自由塊或日誌塊
514、614‧‧‧保留塊
616‧‧‧元塊
710~740‧‧‧記憶塊群組
742‧‧‧群組計數值
744‧‧‧實體區塊
800、900‧‧‧自由塊平均讀寫快閃記憶體控制
810~842、910~942‧‧‧步驟
1000‧‧‧平均讀寫快閃卡記憶體系統
1010‧‧‧主機
1020‧‧‧快閃卡
1030‧‧‧控制器
1031‧‧‧主機介面
1032‧‧‧匯流排
1033‧‧‧快閃介面
1035‧‧‧緩衝記憶體
1037‧‧‧中央處理單元
圖1繪示為快閃記憶體系統的區塊示意圖。
圖2繪示為快閃記憶體控制器的區塊示意圖。
圖3繪示為帶資料塊對資料塊互換的平均讀寫快閃記憶體控制器的區塊示意圖。
圖4繪示為帶資料塊對自由塊互換的平均讀寫快閃記憶體控制器的區塊示意圖。
圖5繪示為在記憶塊之備用區中保存各別記憶塊之抹除計數值的平均讀寫快閃記憶體的區塊示意圖。
圖6繪示為在單獨的元塊中保存記憶塊之抹除計數值的平均讀寫快閃記憶體的區塊示意圖。
圖7繪示為依據本發明之實施例的平均讀寫快閃記憶體控制器的區塊示意圖,此平均讀寫快閃記憶體控制器執行自由塊與資料塊之間的平均讀寫。
圖8繪示為依據本發明之實施例的平均讀寫快閃記憶
體控制的區塊示意圖,在此平均讀寫快閃記憶體控制中,要計算群組計數值,且當合併操作的次數超過預定數字時,要執行調換。
圖9繪示為依據本發明之實施例的平均讀寫快閃記憶體控制的流程示意圖,在此平均讀寫快閃記憶體控制中,群組計數值總是在寫操作之後進行計算,且當最小自由塊抹除計數值與最小資料塊抹除計數值之間的差異超過預定數字時,執行調換。
圖10繪示為依據本發明之實施例的快閃卡記憶體系統的區塊示意圖。
800‧‧‧自由塊平均讀寫快閃記憶體控制
810~842‧‧‧步驟
Claims (39)
- 一種平均讀寫記憶元件的方法,包括:將所述記憶元件的第一區域分成多個邏輯群組,每個邏輯群組包括多個邏輯區塊號;查核邏輯群組資訊是否被載入隨機存取記憶體,如果沒有,則將所述邏輯群組資訊載入所述隨機存取記憶體,其中所述邏輯群組資訊包括在邏輯群組中的所述邏輯區塊號的區塊抹除計數值;從所述隨機存取記憶體的所述區塊抹除計數值,計算所述邏輯群組的群組抹除計數值,其中所計算的所述群組抹除計數值是指目前在所述邏輯群組中的所述邏輯區塊號的全部所述區塊抹除計數值的最小值、最大值或平均值;接收具有邏輯位址的命令;將所述邏輯位址轉換成邏輯區塊號;確定目前邏輯群組的邏輯群組號,該群組號包含執行轉換所得到的所述邏輯區塊號;以及查核合併操作的累積次數是否大於預定數字,如果是,則從具有最小群組抹除計數值的另一邏輯群組中,選擇目前被歸類為資料區塊號且具有最小區塊抹除計數值的邏輯區塊號,並且,作為目前被歸類為自由區塊號且具有最大區塊抹除計數值的邏輯區塊號的交換,將所選擇的所述邏輯區塊號從其他邏輯群組調換至目前邏輯群組。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,其中所述命令是寫命令,所述平均讀寫記憶元件的 方法更包括查核相同的所述邏輯區塊號的日誌塊是否已存在,如果是,則複製寫資料到相關的所述日誌塊。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,其中所述命令是寫命令,所述平均讀寫記憶元件的方法更包括:查核是否有可用自由塊,如果沒有閒置的自由塊,則執行合併操作來釋放一區塊;以及複製寫資料到所述自由塊。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,更包括確定所述邏輯區塊號所對應的實體區塊位址。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,其中所述命令是讀命令,所述平均讀寫記憶元件的方法更包括:讀取與所請求的資料相關聯的對映表入口,如果所述對映表入口表明一日誌塊包含所請求的所述資料,則歸還來自所述日誌塊的所請求的所述資料;以及如果與所請求的所述資料相關聯的所述對映表入口表明最新的資料在資料塊中,則自己讀取所述資料塊,且歸還來自所述資料塊的所請求的所述資料。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,更包括:查核一群組中自由塊之抹除計數值與資料塊之抹除計數值之間的差異是否大於預定的差異,如果是,則調換所述自由塊與所述資料塊。
- 如申請專利範圍第6項所述之平均讀寫記憶元件的方法,更包括:只要一使用自由塊,就計算群組抹除計數值。
- 如申請專利範圍第6項所述之平均讀寫記憶元件的方法,其中在所述群組中,所述自由塊的所述抹除計數值是所有自由塊中的最大抹除計數值,所述資料塊的所述抹除計數值是所有資料塊中的最小抹除計數值。
- 如申請專利範圍第8項所述之平均讀寫記憶元件的方法,其中所述群組的所述抹除計數值是所有群組中的最小抹除計數值。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,所述記憶元件是快閃記憶體。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,更包括:查核所述合併操作的累積次數是否大於預定數字,如果是,計算每一多個群組的群組抹除計數值。
- 如申請專利範圍第1項所述之平均讀寫記憶元件的方法,更包括:當資料寫入記憶體區塊或從記憶體區塊讀取時,將邏輯區塊號位址轉換為實體可定址記憶體區塊。
- 如申請專利範圍第12項所述之平均讀寫記憶元件的方法,其中所述實體可定址記憶體區塊包括非揮發性記憶體。
- 如申請專利範圍第1項所述之平均讀寫記憶元件 的方法,其中所述邏輯區塊號在邏輯群組之中是交錯排列。
- 一種平均讀寫記憶元件的方法,包括:將所述記憶元件的第一區域分割成多個邏輯群組,其中每個邏輯群組包括多個抹除單元或區塊;計算每個邏輯群組的群組抹除計數值,以回應於來自所述邏輯群組的至少一個區塊抹除計數值,其中邏輯群組中所計算的所述群組抹除計數值是指在所述邏輯群組中的全部所述區塊抹除計數值的最小值、最大值或平均值;以及當合併操作的累積次數大於預定數字,替換一個邏輯群組中的邏輯區塊,以回應於所計算的所述群組抹除計數值的比較,其中為了來自具有最小群組抹除計數值的邏輯群組中具有最小區塊抹除計數值的邏輯區塊,將具有最大區塊抹除計數值的邏輯區塊調換出去。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,其中所述區塊在多個所述邏輯群組中相互交錯。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,更包括執行合併操作來釋放一區塊,其中當合併操作的次數達到臨界值時,執行所述替換區塊的步驟。
- 如申請專利範圍第17項所述之平均讀寫記憶元件的方法,其中當沒有剩餘的自由塊時,執行所述合併操作的步驟。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,更包括在所述記憶元件中界定包含自由塊的第二 區域。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,更包括對每個群組中的多個所述區塊的至少其中之一進行區塊抹除計數值累積。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,其中計算群組抹除計數值包括:一次將一個群組中的區塊的區塊抹除計數值資訊載入隨機存取記憶體;以及計算所載入的所述群組的群組抹除計數值。
- 如申請專利範圍第19項所述之平均讀寫記憶元件的方法,其中所述第一區域是資料區,且所述第二區域是日誌區或自由區。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,更包括在所述記憶元件內界定保留區,用來儲存為了替換缺陷區塊而保留的區塊。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,更包括在所述記憶元件內界定元區域,用來儲存所有區塊的抹除計數值以及表示區塊與實體區塊位址之間對映的對映資訊至少其中之一。
- 如申請專利範圍第19項所述之平均讀寫記憶元件的方法,更包括:在所述記憶元件內界定元區域;以及將所述第二區域中的區塊與所述元區域中的具有不同區塊抹除計數值的區塊進行交換。
- 如申請專利範圍第15項所述之平均讀寫記憶元件 的方法,更包括在每個區塊中保留備用區,用來儲存所述區塊的抹除計數值。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,其中每個區塊包括多個讀/寫單元或頁面。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,更包括對每個群組中的多個所述區塊的每個區塊進行區塊抹除計數值累積。
- 如申請專利範圍第15項所述之平均讀寫記憶元件的方法,其中所述區塊抹除計數值對應於區塊的抹除總次數。
- 如申請專利範圍第19項所述之平均讀寫記憶元件的方法,更包括計算每個群組的群組抹除計數值,其中將所述第二區域中的區塊與具有不同區塊抹除計數值的區塊進行交換是對所有計算出的所述群組抹除計數值的回應。
- 一種平均讀寫記憶體系統,包括:控制器;隨機存取記憶體,與所述控制器進行訊號通訊;以及另一記憶體,與所述控制器進行訊號通訊,所述另一記憶體包括多個邏輯群組,每個邏輯群組包括多個第一邏輯抹除單元或邏輯區塊以及多個第二邏輯區塊,其中藉由計算每個邏輯群組的群組抹除計數值,以回應於來自所述邏輯群組的至少一個區塊抹除計數值,其中所述群組抹除計數值是指在所述邏輯群組中的全部所述區塊抹除計數值的最小值、最大值或平均值,以及當合併操 作的累積次數大於預定數字,藉由替換一個邏輯群組中的邏輯區塊,以回應於所計算的所述群組抹除計數值的比較,其中為了來自具有最小群組抹除計數值的邏輯群組中具有最小區塊抹除計數值的邏輯區塊,將具有最大區塊抹除計數值的邏輯區塊調換出去,所述控制器經配置以將一群組中的第一邏輯區塊與第二邏輯區塊交換,以回應於所述邏輯群組中的至少一個區塊抹除計數值。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,其中所述隨機存取記憶體的尺寸足以一次儲存一個群組的所有區塊抹除計數值,但是一次儲存所有群組的所有區塊抹除計數值卻不夠。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,其中所述第一區塊包括資料塊,且所述第二區塊包括自由塊。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,其中所述第一區塊包括元塊,且所述第二區塊包括自由塊。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,所述另一記憶體更包括界定所述第一區塊的抹除計數值及實體位址對映資訊至少其中之一的區塊。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,每個所述第一區塊包括資料部分與備用部分,所述備用部分是用來界定所述第一區塊的抹除計數值及實體位址對映資訊至少其中之一。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,其中所述控制器包括儲存在所述另一記憶體中的程式控制步驟。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,更包括與所述控制器進行訊號通訊的唯讀記憶體,其中所述控制器包括儲存在所述唯讀記憶體中的程式控制步驟。
- 如申請專利範圍第31項所述之平均讀寫記憶體系統,其中第一及第二區塊號在所述邏輯群組中按照交錯次序來排列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070058417A KR100857761B1 (ko) | 2007-06-14 | 2007-06-14 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
US11/771,531 US7797481B2 (en) | 2007-06-14 | 2007-06-29 | Method and apparatus for flash memory wear-leveling using logical groups |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200903500A TW200903500A (en) | 2009-01-16 |
TWI474324B true TWI474324B (zh) | 2015-02-21 |
Family
ID=40022860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97122204A TWI474324B (zh) | 2007-06-14 | 2008-06-13 | 平均讀寫記憶元件的方法及記憶體系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7797481B2 (zh) |
KR (1) | KR100857761B1 (zh) |
TW (1) | TWI474324B (zh) |
Families Citing this family (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100504814C (zh) * | 2007-01-17 | 2009-06-24 | 忆正存储技术(深圳)有限公司 | 闪存的区块管理方法 |
TWI366828B (en) * | 2007-09-27 | 2012-06-21 | Phison Electronics Corp | Wear leveling method and controller using the same |
TWI373772B (en) * | 2007-10-04 | 2012-10-01 | Phison Electronics Corp | Wear leveling method and controller using the same |
TWI358068B (en) * | 2007-10-19 | 2012-02-11 | Phison Electronics Corp | Writing method for non-volatile memory and control |
US7948802B2 (en) * | 2007-12-04 | 2011-05-24 | Micron Technology, Inc. | Sensing memory cells |
KR101454817B1 (ko) * | 2008-01-11 | 2014-10-30 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 마모도 관리 방법 |
US8332572B2 (en) * | 2008-02-05 | 2012-12-11 | Spansion Llc | Wear leveling mechanism using a DRAM buffer |
US8352671B2 (en) | 2008-02-05 | 2013-01-08 | Spansion Llc | Partial allocate paging mechanism using a controller and a buffer |
US8275945B2 (en) | 2008-02-05 | 2012-09-25 | Spansion Llc | Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
US20090254729A1 (en) * | 2008-04-07 | 2009-10-08 | Skymedi Corporation | Method of wear leveling for a non-volatile memory |
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 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8140739B2 (en) * | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
JP2010055247A (ja) * | 2008-08-27 | 2010-03-11 | Hitachi Ltd | ストレージシステム及び構成管理方法 |
US8386697B2 (en) * | 2008-09-09 | 2013-02-26 | Phison Electronics Corp. | Memory managing method for non-volatile memory and controller using the same |
US8447913B2 (en) * | 2008-09-16 | 2013-05-21 | International Business Machines Corporation | Method to monitor read/write status of flash memory devices |
TWI364661B (en) * | 2008-09-25 | 2012-05-21 | Silicon Motion Inc | Access methods for a flash memory and memory devices |
KR100974215B1 (ko) | 2008-10-02 | 2010-08-06 | 주식회사 하이닉스반도체 | 반도체 스토리지 시스템 및 그 제어 방법 |
US8001318B1 (en) * | 2008-10-28 | 2011-08-16 | Netapp, Inc. | Wear leveling for low-wear areas of low-latency random read memory |
US8327040B2 (en) | 2009-01-26 | 2012-12-04 | Micron Technology, Inc. | Host controller |
KR20100091544A (ko) * | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 메모리 시스템 및 그 마모도 관리 방법 |
TWI409819B (zh) * | 2009-03-03 | 2013-09-21 | Silicon Motion Inc | 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
KR101038991B1 (ko) * | 2009-03-10 | 2011-06-03 | 주식회사 하이닉스반도체 | 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법 |
KR101586047B1 (ko) * | 2009-03-25 | 2016-01-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US8065469B2 (en) * | 2009-04-20 | 2011-11-22 | Imation Corp. | Static wear leveling |
US8176295B2 (en) | 2009-04-20 | 2012-05-08 | Imation Corp. | Logical-to-physical address translation for a removable data storage device |
US8051241B2 (en) | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US20100318719A1 (en) * | 2009-06-12 | 2010-12-16 | Micron Technology, Inc. | Methods, memory controllers and devices for wear leveling a memory |
TWI405208B (zh) * | 2009-08-06 | 2013-08-11 | Novatek Microelectronics Corp | 快閃記憶體及其存取方法 |
US8463983B2 (en) * | 2009-09-15 | 2013-06-11 | International Business Machines Corporation | Container marker scheme for reducing write amplification in solid state devices |
KR101097438B1 (ko) | 2009-10-29 | 2011-12-23 | 주식회사 하이닉스반도체 | 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법 |
US8341372B2 (en) * | 2010-04-29 | 2012-12-25 | Freescale Semiconductor, Inc. | Emulated electrically erasable (EEE) memory and method of operation |
TWI457941B (zh) * | 2010-06-25 | 2014-10-21 | Macronix Int Co Ltd | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 |
KR101131560B1 (ko) * | 2010-07-15 | 2012-04-04 | 주식회사 하이닉스반도체 | 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
US8612804B1 (en) * | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
KR101180406B1 (ko) | 2011-01-28 | 2012-09-10 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 블럭 관리 방법 |
US20120203993A1 (en) * | 2011-02-08 | 2012-08-09 | SMART Storage Systems, Inc. | Memory system with tiered queuing and method of operation thereof |
US8909851B2 (en) | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
KR101954995B1 (ko) * | 2011-04-27 | 2019-05-31 | 시게이트 테크놀로지 엘엘씨 | 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체 |
US8862902B2 (en) * | 2011-04-29 | 2014-10-14 | Seagate Technology Llc | Cascaded data encryption dependent on attributes of physical memory |
US9396106B2 (en) * | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
KR20120136197A (ko) * | 2011-06-08 | 2012-12-18 | 삼성전자주식회사 | 비휘발성 메모리에 대한 웨어 레벨링 방법 |
US8898373B1 (en) | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US20130019057A1 (en) * | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8868869B2 (en) | 2011-08-08 | 2014-10-21 | International Business Machines Corporation | Enhanced copy-on-write operation for solid state drives |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9417803B2 (en) * | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
US20140189284A1 (en) * | 2011-12-23 | 2014-07-03 | Nevin Hyuseinova | Sub-block based wear leveling |
WO2013095644A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Page miss handler including wear leveling logic |
US9176862B2 (en) | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
US9239781B2 (en) * | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9298252B2 (en) | 2012-04-17 | 2016-03-29 | SMART Storage Systems, Inc. | Storage control system with power down mechanism and method of operation thereof |
CN103377143B (zh) * | 2012-04-27 | 2016-12-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器存储装置 |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9292451B2 (en) | 2013-02-19 | 2016-03-22 | Qualcomm Incorporated | Methods and apparatus for intra-set wear-leveling for memories with limited write endurance |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9348743B2 (en) | 2013-02-21 | 2016-05-24 | Qualcomm Incorporated | Inter-set wear-leveling for caches with limited write endurance |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US9117533B2 (en) * | 2013-03-13 | 2015-08-25 | Sandisk Technologies Inc. | Tracking erase operations to regions of non-volatile memory |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
GB2514354A (en) * | 2013-05-20 | 2014-11-26 | Ibm | Managing storage devices having a lifetime of a finite number of operations |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
JP6213040B2 (ja) * | 2013-08-19 | 2017-10-18 | 富士通株式会社 | 半導体記憶装置および半導体記憶装置の制御方法 |
US9336129B2 (en) | 2013-10-02 | 2016-05-10 | Sandisk Technologies Inc. | System and method for bank logical data remapping |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
TWI548991B (zh) * | 2014-02-14 | 2016-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
JP5858081B2 (ja) * | 2014-03-27 | 2016-02-10 | Tdk株式会社 | メモリコントローラ、メモリシステム及びメモリ制御方法 |
US10365835B2 (en) * | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
US9626289B2 (en) * | 2014-08-28 | 2017-04-18 | Sandisk Technologies Llc | Metalblock relinking to physical blocks of semiconductor memory in adaptive wear leveling based on health |
US9830087B2 (en) * | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
US10055267B2 (en) * | 2015-03-04 | 2018-08-21 | Sandisk Technologies Llc | Block management scheme to handle cluster failures in non-volatile memory |
KR102258126B1 (ko) | 2015-03-19 | 2021-05-28 | 삼성전자주식회사 | 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
KR20170075359A (ko) * | 2015-12-23 | 2017-07-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 콘트롤러의 동작 방법 |
US10031845B2 (en) * | 2016-04-01 | 2018-07-24 | Intel Corporation | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device |
US10019198B2 (en) | 2016-04-01 | 2018-07-10 | Intel Corporation | Method and apparatus for processing sequential writes to portions of an addressable unit |
US9842059B2 (en) * | 2016-04-14 | 2017-12-12 | Western Digital Technologies, Inc. | Wear leveling in storage devices |
CN107301015B (zh) * | 2016-04-15 | 2022-05-13 | 恩智浦美国有限公司 | 用于减少存储器设备上的压力的系统和方法 |
US10579471B2 (en) * | 2017-03-02 | 2020-03-03 | Toshiba Memory Corporation | Storage device and error correction method for storage device |
KR20180123385A (ko) * | 2017-05-08 | 2018-11-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
TWI658471B (zh) * | 2017-05-16 | 2019-05-01 | 華邦電子股份有限公司 | 快閃記憶體儲存裝置及其操作方法 |
KR102340287B1 (ko) * | 2017-09-20 | 2021-12-20 | 삼성전자주식회사 | 멀티캐스트 통신 프로토콜에 따라 호스트와 통신하는 저장 장치 및 호스트의 통신 방법 |
KR102534648B1 (ko) * | 2018-03-08 | 2023-05-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP7020989B2 (ja) | 2018-04-23 | 2022-02-16 | 株式会社メガチップス | 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法 |
US10884889B2 (en) | 2018-06-22 | 2021-01-05 | Seagate Technology Llc | Allocating part of a raid stripe to repair a second raid stripe |
US10761739B2 (en) | 2018-08-23 | 2020-09-01 | Micron Technology, Inc. | Multi-level wear leveling for non-volatile memory |
US11537307B2 (en) * | 2018-08-23 | 2022-12-27 | Micron Technology, Inc. | Hybrid wear leveling for in-place data replacement media |
KR20200118311A (ko) | 2019-04-05 | 2020-10-15 | 삼성전자주식회사 | 데이터를 스왑하기 위한 메모리 장치 및 메모리 장치의 동작 방법 |
KR20210039872A (ko) | 2019-10-02 | 2021-04-12 | 삼성전자주식회사 | 프리 블록의 할당을 관리하는 호스트 시스템, 이를 포함하는 데이터 처리 시스템 및 호스트 시스템의 동작방법 |
US11442631B2 (en) * | 2019-12-26 | 2022-09-13 | Micron Technology, Inc. | Memory operations with consideration for wear leveling |
CN111625187B (zh) * | 2020-05-15 | 2023-09-29 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
US11328778B2 (en) * | 2020-07-09 | 2022-05-10 | Stmicroelectronics S.R.L. | Methods and devices for wear leveling |
TWI775143B (zh) * | 2020-09-09 | 2022-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20230048747A (ko) * | 2021-10-05 | 2023-04-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN114281242B (zh) * | 2021-11-15 | 2024-05-10 | 北京智芯微电子科技有限公司 | 存储器负载均衡的方法、装置和设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5418752A (en) * | 1989-04-13 | 1995-05-23 | Sundisk Corporation | Flash EEPROM system with erase sector select |
US6594183B1 (en) * | 1991-09-13 | 2003-07-15 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US20040083335A1 (en) * | 2002-10-28 | 2004-04-29 | Gonzalez Carlos J. | Automated wear leveling in non-volatile storage systems |
US20040186946A1 (en) * | 2003-03-19 | 2004-09-23 | Jinaeon Lee | Flash file system |
US6938116B2 (en) * | 2001-06-04 | 2005-08-30 | Samsung Electronics Co., Ltd. | Flash memory management method |
US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US7032087B1 (en) * | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
US20060149896A1 (en) * | 2002-10-28 | 2006-07-06 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100297986B1 (ko) * | 1998-03-13 | 2001-10-25 | 김영환 | 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법 |
KR100319598B1 (ko) * | 1998-03-18 | 2002-04-06 | 김영환 | 플래시메모리어레이액세스방법및장치 |
KR100577380B1 (ko) | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
KR100644602B1 (ko) | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
-
2007
- 2007-06-14 KR KR1020070058417A patent/KR100857761B1/ko active IP Right Grant
- 2007-06-29 US US11/771,531 patent/US7797481B2/en active Active
-
2008
- 2008-06-13 TW TW97122204A patent/TWI474324B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5418752A (en) * | 1989-04-13 | 1995-05-23 | Sundisk Corporation | Flash EEPROM system with erase sector select |
US6594183B1 (en) * | 1991-09-13 | 2003-07-15 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US6938116B2 (en) * | 2001-06-04 | 2005-08-30 | Samsung Electronics Co., Ltd. | Flash memory management method |
US20040083335A1 (en) * | 2002-10-28 | 2004-04-29 | Gonzalez Carlos J. | Automated wear leveling in non-volatile storage systems |
US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US20060149896A1 (en) * | 2002-10-28 | 2006-07-06 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US20040186946A1 (en) * | 2003-03-19 | 2004-09-23 | Jinaeon Lee | Flash file system |
US7032087B1 (en) * | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
Non-Patent Citations (1)
Title |
---|
Li-Pin Chang and Tei-Wei Kuo, "Efficient Management for Large-Scale Flash-Memory Storage Systems with Resource Conservation," Nov. 2005,ACM, ACM Transactions on Storage. Jeong-Uk Kang, Heeseung Jo, Jin-Soo Kim, and Joonwon Lee, "A Superblock-based Flash Translation Layer for NAND Flash Memory," Oct. 2006, ACM, EMSOFT'06. * |
Also Published As
Publication number | Publication date |
---|---|
US7797481B2 (en) | 2010-09-14 |
US20080313505A1 (en) | 2008-12-18 |
TW200903500A (en) | 2009-01-16 |
KR100857761B1 (ko) | 2008-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI474324B (zh) | 平均讀寫記憶元件的方法及記憶體系統 | |
US11768610B2 (en) | Storage system having a host that manages physical data locations of a storage device | |
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
US9448868B2 (en) | Data storing method, memory control circuit unit and memory storage apparatus | |
US20190220396A1 (en) | Data Storage Device | |
KR101551584B1 (ko) | 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들 | |
TWI399644B (zh) | 非揮發記憶體區塊管理方法 | |
US11573717B2 (en) | Storage device having a controller configured to select modes as write modes based on received instructions, storage system, and control method | |
US11436136B2 (en) | Memory system including non-volatile buffer and control method thereof | |
WO2010144587A2 (en) | Memory system having persistent garbage collection | |
JP2011203916A (ja) | メモリコントローラ、および半導体記憶装置 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
KR20070046864A (ko) | 플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및시스템 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
JP4666081B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR100845552B1 (ko) | Ftl의 어드레스 매핑 방법 | |
CN112130749A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
US11366751B2 (en) | Storage device and storage control method | |
US20210034541A1 (en) | Memory system, memory control device, and memory control method | |
JP2021071776A (ja) | メモリシステム | |
JP4636005B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR101027687B1 (ko) | 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법 | |
US9507706B2 (en) | Memory system controller including a multi-resolution internal cache |