TWI490693B - 混合式非揮發固態記憶體系統之疲乏管理系統與方法 - Google Patents

混合式非揮發固態記憶體系統之疲乏管理系統與方法 Download PDF

Info

Publication number
TWI490693B
TWI490693B TW098105888A TW98105888A TWI490693B TW I490693 B TWI490693 B TW I490693B TW 098105888 A TW098105888 A TW 098105888A TW 98105888 A TW98105888 A TW 98105888A TW I490693 B TWI490693 B TW I490693B
Authority
TW
Taiwan
Prior art keywords
volatile semiconductor
semiconductor memory
memory
logical addresses
cycle life
Prior art date
Application number
TW098105888A
Other languages
English (en)
Other versions
TW200937192A (en
Inventor
Pantas Sutardja
Original Assignee
Marvell World Trade 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 Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of TW200937192A publication Critical patent/TW200937192A/zh
Application granted granted Critical
Publication of TWI490693B publication Critical patent/TWI490693B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear 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

混合式非揮發固態記憶體系統之疲乏管理系統與方法
本發明係與固態記憶體(solid state memories)有關,特別是關於一種混合式非揮發固態記憶體(hybrid nonvolatile solid state memories)之系統與方法。
在此所提及之先前技術是為了說明本發明所涉及之技術領域。關於發明人之工作內容、先前技術段落中所闡述之程度,以及在此專利申請時其它不被認為是習知技術的說明方面,皆既不明確亦不隱含地被認為是本發明之習知技術。
快閃記憶體晶片為運用電荷儲存原理之裝置,至今已成為以半導體為設計基礎製成之大量儲存裝置之主要晶片類型。電荷儲存裝置特別適用於資料檔案的儲存,包括音樂與影像類型檔案皆是。然而,電荷儲存裝置僅能維持有限的抹寫循環壽命,而無法長久確實地儲存資料。
有限的抹寫循環壽命在多數應用上是可被接受的,像是可移動的通用序列匯流排,即USB(universal serial bus);MP3(MPEG Layer 3);以及數位相機記憶卡。然而,對於應用在電腦系統中之大容量非揮發儲存裝置,以有限的抹寫循環壽命之儲存裝置取代,則是無法被使用者所接受的。
低密度快閃記憶體中每個儲存單元內儲存一個資訊位元(1bit/cell),傳統上可使用之抹寫循環壽命為10萬次。為了降低成本,快閃記憶體亦可在每個儲存單元內儲存兩個資訊位元(2bit/cell)。然,以此作法將會同時減少記憶體裝置可使用的抹寫循環壽命而降至1萬次。
對於使用在大量儲存方面,快閃記憶體可能無法提供足夠的抹寫循環壽命,尤其在大量儲存時,有部分是使用了虛擬記憶體分頁空間。當作業系統從RAM(random access memory)儲存資料,而可提供之RAM空間不足時,將使用虛擬記憶體分頁空間技術。為了說明之目的,假設一個快閃記憶體晶片有2GB(gigabytes)容量,每個儲存單元可儲存兩個資訊位元,抹寫處理能力大約4MB/s(megabytes per second)。在這樣一個快閃記憶體晶片中,每500秒寫入每個位元一次,理論上是可能達到的(即,2E9bytes/4E6bytes/s)。
理論上,寫入至每資料位元1萬次僅5E6秒是可能的(1E4次循環*5E2秒),而這個所花的時間還少於兩個月長。然而事實上,大多數的儲存裝置無法以100%的工作週期(duty cycle)寫入資料。實際上,當一台電腦(computer)連續運作及執行虛擬記憶體分頁操作下,其實際的工作週期約為10%。在10%的寫入工作週期條件下,快閃記憶體裝置可使用的壽命約為20個月長。相對的,磁性硬碟儲存裝置之使用壽命,標準上則超過10年。
第1圖說明了習知固態硬碟100之功能方塊圖。此固態硬碟100包含控制器102及快閃記憶體104。控制器102從電腦主機(圖未標示)接收指令與資料。當記憶體被要求存取時,控制器102讀取或寫入資料至快閃記憶體104,並且傳送該資訊至電腦主機。
快閃記憶體104的區域(或記憶體區塊)在使用超過預定的寫入及抹除次數之後,儲存上會變得不可靠。預定的次數即關涉於快閃記憶體104之抹寫循環壽命。一旦超過快閃記憶體的抹寫循環壽命,控制器102將無法長久確實地儲存資料於快閃記憶體104中,則固態硬碟100將無法長久的被使用。
本發明揭露一種固態記憶體系統,包含第一非揮發半導體記憶體,第二非揮發半導體記憶體,及疲乏管理模組。第一非揮發半導體記憶體具有第一抹寫循環壽命與第一陣列實體位址,第二非揮發半導體記憶體,具有第二抹寫循環壽命與第二陣列實體位址。其中第一抹寫循環壽命大於第二抹寫循環壽命。疲乏管理模組用以對邏輯位址產生抹寫頻率順序,且根據該抹寫頻率順序映射每一邏輯位址至第一陣列實體位址或第二陣列實體位址。
本發明亦揭露一種固態記憶體系統之疲乏管理方法,其步驟包含:提供第一非揮發半導體記憶體,具有第一抹寫循環壽命與第一陣列實體位址;提供第二非揮發半導體記憶體,具有第二抹寫循環壽命與第二陣列實體位址,其中第一抹寫循環壽命大於第二抹寫循環壽命;及對邏輯位址產生抹寫頻率順序,且根據抹寫頻率順序映射邏輯位址至第一陣列實體位址或第二陣列實體位址。
在其它特徵中,上述之系統與方法可結合於電腦程式運算執行。該電腦程式可常駐於電腦之可讀媒體區域,像是記憶體,非揮發資料儲存區域,及/或其它適當之儲存媒體區域,但亦不以此為限。
關於本發明之其他應用領域,透過以下之詳細說明將更臻明顯。應當理解,以下之詳細說明及具體實施例僅為本發明之較佳實施例而達說明之目的,並非用以限制本發明之權利範圍。
以下說明僅為典範示例性質,其用意並不在於限制本發明、及其應用或使用。為了清楚起見,在此等圖中使用相同之參考號碼,用以辨識類似之元件。如同在此所使用之片語A、B、以及C中的至少一個,應當被認為是使用非互斥邏輯,即“或”的邏輯關係(A或B或C)。而在一種方法步驟中應當被理解為可以按不同的順序執行,而不會改變本發明之原理。在此所使用之用詞,“根據”或“大體上根據”是用於論述某一數值與另一數值具有在功能上,比例對應上,隨之變化關係,及/或某種關係之關連性。同樣的,該數值也可以是與一個或更多其他數值具有在功能上,比例對應上,隨之變化關係,及/或某種關係之關連性。
在此所使用的術語“模組”表示特殊用途之積體電路(ASIC)、電子電路、用於執行一個或更多個軟體或韌體程式的處理器(共用、專用、或組群)與記憶體、組合邏輯電路及/或提供說明所述之功能之其它適當零件。
以電荷儲存原理為基礎之快閃記憶體裝置(charge-storage-based flash device)例如氮化物唯讀記憶體(Nitride Read-Only Memory,NROM)與反及閘快閃記憶體(NAND)在最近幾年其成本已逐漸下降。在這同時,新的高密度記憶體技術亦日益發展中。在此些記憶體技術中,例如相變化記憶體(phase change memory,PCM),即可提供高於以電荷儲存原理為基礎之快閃記憶體裝置之抹寫耐久性。然而,這些較新穎技術之記憶體在儲存容量、存取時間,及/或成本方面考量下,相較於快閃記憶體而言,仍是較不具吸引力的。
為了在低成本的傳統技術上結合較長的抹寫循環壽命,一個包含此兩種記憶體類型之固態記憶體(solid-state memory)系統能夠被建置。由多數低成本的記憶體結合少數高抹寫循環壽命之記憶體。這個具有高抹寫循環壽命之記憶體能夠被使用於儲存時常變動之檔案,例如作業系統的分頁資料。
第2圖描述一種固態記憶體系統之實施例。這個固態記憶體系統可能被使用於電腦系統中之固態硬碟,或是其它需要儲存資料的裝置。例如,手機,機上盒(set top box),汽車元件,無線個人數位助理(personal digital assistant,PDA)之類的裝置。舉例而言,一個PCM晶片,像是大小為2GB左右的PCM晶片,可結合於NAND快閃裝置或是NROM快閃裝置。PCM記憶體的抹寫循環壽命技術上將近可以達到1E13次抹寫循環次數。PCM晶片可提供超過1E7次的抹寫循環次數,因此一個PCM晶片比一個具有1E4次抹寫循環次數之2bit/cell快閃裝置多出一千倍的抹寫循環次數。
PCM晶片可提供比快閃裝置更快速的資料處理能力。例如,一個PCM晶片可提供比快閃裝置快100倍的資料處理能力。即使PCM資料處理能力快於快閃裝置100倍,在大於1000倍的抹寫循環壽命下,仍產生實際上大於快閃裝置10倍久之抹寫循環壽命。舉例而言,在一個10%的寫入工作週期下,即使在PCM晶片提供更快於快閃裝置100倍的資料處理能力的條件下,一個PCM晶片仍將花費15.9年才可竭盡其使用壽命。
第2圖為本發明固態硬碟200具體實施例之功能方塊圖。固態硬碟200包含控制器202及第一非揮發半導體記憶體204和第二非揮發半導體記憶體206。縱觀本發明所揭露者,固態非揮發半導體記憶體以積體電路(integrated circuits,IC)之方式呈現與執行。控制器202從電腦主機220接收存取指令。控制器202指揮存取指令至第一非揮發半導體記憶體204或第二非揮發半導體記憶體206,詳述如下。
例如,第一非揮發半導體記憶體204可能為相對上較不昂貴且具有較大容量之非揮發記憶體陣列。第二非揮發半導體記憶體206則具有一較長之抹寫循環壽命,但較為昂貴且容量小於第一非揮發半導體記憶體204。然,此僅為說明之便,其第一非揮發半導體記憶體204與第二非揮發半導體記憶體206間並無存在必然關係,亦即是兩者可互換其名稱之描述,而不構成本發明所述之權利範圍限制。在各種實施例中,電腦主機220指示控制器202哪些邏輯位址所對應的資料相對上變動較為頻繁,哪些邏輯位址所對應的資料相對上變動較不頻繁。
相對上變動較為頻繁的資料所對應的邏輯位址,控制器202將之映射至第二非揮發半導體記憶體206之實體位址上。相對上變動較不頻繁的資料所對應的邏輯位址,控制器202則將之映射至第一非揮發半導體記憶體204之實體位址上。
第一非揮發半導體記憶體204可能包含單層式單元(single-level cell,SLC)快閃記憶體或多層式單元(multi-level cell,MLC)快閃記憶體。第二非揮發半導體記憶體206亦可能包含單層式單元(single-level cell,SLC)快閃記憶體或多層式單元(multi-level cell,MLC)快閃記憶體。
在詳細說明之前,請先參照第3圖之明確表示。第3圖為本發明固態硬碟250包含平均抹寫儲存區塊模組(wear leveling module)260之功能方塊圖。在此具體實施例中,平均抹寫儲存區塊模組260控制從電腦主機220產生之邏輯位址映射至第一非揮發半導體記憶體204上之實體位址,以及映射至第二非揮發半導體記憶體206上之實體位址。平均抹寫儲存區塊模組260可根據電腦主機220端之資訊執行相應的映射分配。
另外,平均抹寫儲存區塊模組260可量測或計算第一非揮發半導體記憶體204與第二非揮發半導體記憶體206所有區域的抹寫耗損程度,並依此而改變應映射分配至第一或第二非揮發半導體記憶體204,206,盡可能使二者之耗損程度相同。在具體實施例中,平均抹寫儲存區塊模組260之目的即是要使第一非揮發半導體記憶體204與第二非揮發半導體記憶體206所有抹寫區域平均化,而不至使其中之一抹寫過於耗損。
在各種非揮發記憶體中,寫入資料到記憶體區塊會在整體記憶體區塊進行抹除及寫入動作。在記憶體中心區塊,平均抹寫儲存區塊模組260會追蹤每個記憶體區塊已經被抹除或寫入之次數。當從電腦主機220端接收一指令要求時,平均抹寫儲存區塊模組260會選擇可被使用之記憶體區塊中已被進行寫入次數最少之記憶體區塊,來進行該指令之執行與操作。然後平均抹寫儲存區塊模組260將接收之邏輯位址映射至該寫入次數最少之記憶體的實體位址上。隨著時間變化,在這些記憶體區塊間之寫入操作,其分布上將趨於一致。
第4A圖及第4B圖包含其它模組用以輔助控制平均抹寫儲存區塊。在第4A圖中,平均抹寫儲存區塊模組260測定資料寫入到每個邏輯位置上有多頻繁。在這一具體實施例中,目的是為了將相對上抹寫次數較頻繁之邏輯位址映射至未抹寫耗損過多之實體位址上。
參照第4B圖,抹寫映射模組(write mapping module)356會從電腦主機220端接收抹寫頻率資訊。抹寫頻率資訊可用以區辨,預計相對上變動較為頻繁之資料所對應的邏輯位址,及/或預計相對上變動較不頻繁之資料所對應的邏輯位址。另外,抹寫映射模組356可用以判斷資料實際上被寫至邏輯位址上有多頻繁,如第4A圖所示。第5圖為憑藉經驗上的判斷對固態硬碟400的記憶體衰退狀況與剩餘壽命進而測定之。用以取代或是結合根據寫入或抹除次數計算記憶體剩餘的可使用壽命。
第6圖為一固態硬碟450,結合第一非揮發半導體記憶體462與第二非揮發半導體記憶體464,用以儲存資料。在具體實施例中,第一非揮發半導體記憶體462有較大儲存容量(例如,2GB或是更大)。第二非揮發半導體記憶體464有較快於第一非揮發半導體記憶體462的存取速度,但儲存容量則較小於第一非揮發半導體記憶體462(例如,2GB或是更少)。第一非揮發半導體記憶體462與第二非揮發半導體記憶體464都有較長的抹寫循環壽命。
基於存取時間的考量,一個映射模組(mapping module)465被使用於映射電腦主機480端的邏輯位址至第一及第二非揮發半導體記憶體462,464。映射模組465從電腦主機480端接收存取時間資訊,例如對於一陣列位址的快速存取時間是否是令人滿意的。另外,對於映射模組465監控邏輯位址的存取及測定,而用以減少其存取時間是最具實益的。對於邏輯位址而言,當低存取時間是重要的考量時,可映射至第二非揮發半導體記憶體464降低存取時間。
在此所描述存取時間包含,例如有讀取時間,寫入時間,抹除時間及/或任意合併該些時間。例如:該些合併的存取時間會有一個平均讀取,寫入,及抹除時間。電腦主機480會最佳化儲存操作,藉由指揮某些邏輯位址映射至第二非揮發半導體記憶體464,例如針對快速開機時間或是啟動應用程式。映射模組465連接到平均抹寫儲存區塊模組260用以改變映射分配,以防止在第一及第二非揮發半導體記憶體462,464上之任一區域過早耗損。
圖7A7E說明在第4A、4B及第5圖中控制器操作之實施例步驟。第8圖說明在第6圖中控制器操作之實施例步驟。第2圖至第8圖則為本發明之系統與方法的詳細說明。
參照第3圖,固態硬碟250包含控制器252、第一非揮發半導體記憶體204及第二非揮發半導體記憶體206。控制器252連接至電腦主機220。控制器252包含平均抹寫儲存區塊模組260、第一記憶體介面262及第二記憶體介面264。平均抹寫儲存區塊模組260經由第一記憶體介面262及第二記憶體介面264分別與第一非揮發半導體記憶體204及第二非揮發半導體記憶體206連接。
平均抹寫儲存區塊模組260從電腦主機220端接收邏輯位址。邏輯位址被轉換成實體位址與第一記憶體介面262及/或第二記憶體介面264間是具有關聯性的。當進行一寫入操作時,資料會從電腦主機220端經由第一記憶體介面262被寫入至第一非揮發半導體記憶體204,或經由第二記憶體介面264被寫入至第二非揮發半導體記憶體206。當進行讀取操作時,資料是分別從第一非揮發半導體記憶體204經由第一記憶體介面262,或從第二非揮發半導體記憶體206經由第二記憶體介面264提供至電腦主機220。
舉例而言,第一非揮發半導體記憶體204的每百萬位元大小相對上是較不昂貴的,因此基於成本考量,在此可應用為提供較大容量之記憶體選擇。第二非揮發半導體記憶體206有較長的抹寫循環壽命但相對於第一非揮發半導體記憶體204較為昂貴,因此基於成本考量上,第二非揮發半導體記憶體206所提供之記憶體容量相對較少。
第一及第二非揮發半導體記憶體204、206是可能在多數區塊中被寫入及/或是抹除資料。例如,為了抹除在一個記憶體區塊中的一位元資訊,所有記憶體區塊位元資料都需被抹除。除此之外,為了寫入一個記憶體區塊中的一位元資訊,所有記憶體區塊位元資料都需被寫入。平均抹寫儲存區塊模組260可追蹤或是儲存在第一及第二非揮發半導體記憶體204、206記憶體區塊中執行寫入及/或抹除之操作資訊。
平均抹寫存區塊模組260判斷依據是利用一個經標準化型式的寫入及/或抹除循環次數。例如:以在第一非揮發半導體記憶體204的一記憶體區塊上之執行次數除以在第一非揮發半導體記憶體204的一記憶體區塊上之總抹寫循環所能夠忍受的次數。一個在第二非揮發半導體記憶體206上之記憶體區塊的標準化抹寫循環次數,可將在此記憶體區塊上已經執行之抹寫循環次數除以該記憶體所能忍受之總抹寫循環次數。
平均抹寫儲存區塊模組260可將新資料分配寫入經標準化後最低抹寫循環次數的記憶體區塊中。為了避免標準化後呈現以分數表示抹寫循環次數,也可以利用第一非揮發半導體記憶體204之總抹寫循環壽命與第二非揮發半導體記憶體206之總抹寫循環壽命間之比例關係之常數並乘之,用以避免以分數之方式表示。例如,將第一非揮發半導體記憶體204乘以第一與第二非揮發半導體記憶體間之比例常數。此比例常數為第二非揮發半導體記憶體206之抹寫循環壽命除以第一非揮發半導體記憶體204之抹寫循環壽命。
在其它實施例中,對於二個記憶體可能只有其中之一之抹寫循環次數需要經過標準化過程。例如:當第二非揮發半導體記憶體206之抹寫循環壽命明顯高於第一非揮發半導體記憶體204時,在此種情況下,只需針對第一非揮發半導體記憶體204之抹寫循環次數標準化。如此可用以避免平均抹寫儲存區塊模組260將位址分配過多儲存至第二非揮發半導體記憶體206之情形。
標準化的執行可利用一預定乘數達成。例如,應用在固態硬碟250之第一非揮發半導體記憶體204的抹寫循環壽命為1E6,第二非揮發半導體記憶體206的抹寫循環壽命為1E9,因此標準化可以透過乘以乘數1000來執行。此乘數或許僅是概括的計算而非為一絕對精準之倍數值。例如:乘數1000也許使用在相對抹寫循環壽命為4.5E6與6.3E9時。
平均抹寫儲存區塊模組260可包含一資料位移模組(data shifting module)261。在此實施例中,資料位移模組261會辨識一個在第一記憶體區塊上已儲存且超過一預定週期時間(predetermined period of time)仍未變動的資料。這種資料稱之為靜態資料。靜態資料可能會從第一記憶體區塊被移至已經歷較頻繁之抹寫循環之第二記憶體區塊。平均抹寫儲存區塊模組260會將原本應映射至第一記憶體區塊上之實體位址,改映射至第二記憶體區塊上之實體位址。既然靜態資料目前儲存在第二記憶體區塊,則此第二記憶體可能經歷較少之抹寫循環。
另外,靜態資料亦可能會從第二非揮發半導體記憶體206移動至第一非揮發半導體記憶體204。例如,資料位移模組會辨識一個在第二非揮發半導體記憶體206上最少已使用之記憶體區塊(least used memory block,LUB)。假如一個在記憶體區塊上之抹寫操作次數在經過一預定週期後,小於或等於一預定門檻值,此記憶體區塊稱之為LUB。當在第二非揮發半導體記憶體206之可使用或可提供記憶體降至預設門檻時,其平均抹寫儲存區塊模組260會映射該LUB至第一非揮發半導體記憶體204之記憶體區塊上。
另外,在第一非揮發半導體記憶體204之第一記憶體區塊上的寫入操作次數,可能超過一個預定門檻值。此時平均抹寫儲存區塊260會將原先應映射至第一記憶體區塊之邏輯位址,映射至第二非揮發半導體記憶體206之第二記憶體區塊,用以降低在第一非揮發半導體記憶體204上之耗損。
參照第4A圖,固態硬碟300包含控制器302並連接於電腦主機220。控制器302包含平均抹寫儲存區塊模組260,抹寫偵測模組(write monitoring module)306,及第一與第二記憶體介面262,264。抹寫偵測模組306從電腦主機220端接收並偵測該些邏輯位址。抹寫偵測模組306亦接收控制訊號,意指是否有進行讀取或寫入之操作發生。另外,抹寫偵測模組306追蹤該些邏輯位址,藉由量測其寫入頻率判斷哪些資料是經常性被寫入的,哪些資料是已經被寫入至邏輯位址的。這些資訊是被提供至平均抹寫儲存區塊260,用以分配邏輯位址至各實體位址上,例如映射至第二非揮發半導體記憶體206之實體位址。
參照第4B圖,固態硬碟350包含控制器352,連接於電腦主機220。控制器352包含平均抹寫儲存區塊260,抹寫映射模組(write mapping module)356,及第一與第二記憶體介面262,264。抹寫映射模組356從電腦主機220端接收位址資訊,即邏輯位址將會被經常性寫入。此位址資訊提供至平均抹寫儲存區塊260,用以分配哪些邏輯位址映射至第二非揮發半導體記憶體206。
抹寫映射模組356也包含與第4A圖中之抹寫偵測模組306具有相似之功能。抹寫映射模組356根據量測之抹寫頻率資訊更新其儲存之抹寫頻率資訊。另外,抹寫映射模組356可確定從電腦主機端沒有提供之邏輯位址的抹寫頻率。在一具體實施例中,即使一邏輯位址經過一預定週期仍未存取,其抹寫頻率資訊仍可被調整。平均抹寫儲存區塊模組260可儲存所有在第二非揮發半導體記憶體206上頻繁寫入對應之邏輯位址。
假如第二非揮發半導體記憶體206空間已存滿,其抹寫操作會安排映射至第一非揮發半導體記憶體204,反之亦然。資料可以從第二非揮發半導體記憶體206被重新安排並移動至第一非揮發半導體記憶體204,用以在第二非揮發半導體記憶體206產生儲存空間,反之亦然。另外,資料可能單獨被映射至第一或第二非揮發半導體記憶體204,206,當其第一或第二非揮發半導體記憶體204,206之耗損程度大於或等於預設門檻。應該注意其耗損程度之預設門檻對於第一及第二非揮發半導體記憶體204,206有可能是相同地,亦有可能是不相同地。而且,預設門檻在不同時間點亦可能會變化。例如,一旦一定數量之抹寫操作次數已經在第一非揮發半導體記憶體204上執行,其預設門檻也許會隨著其已執行之抹寫操作而做調整。
平均抹寫儲存區塊模組260亦可能實施其抹寫偵測模組306與抹寫映射模組356。因此以下論述,其平均抹寫儲存區塊模組260也可能包含該抹寫偵測模組306與抹寫映射模組356。
參照第5圖,固態硬碟400包含控制器402,用以連接其電腦主機220。控制器402包含平均抹寫儲存區塊模組260,衰退測試模組406,及第一記憶體介面262與第二記憶體介面264。衰退測試模組406檢測第一及第二非揮發半導體記憶體204,206其儲存能力是否已經衰退。
在其他各種實施例中,既然第一非揮發半導體記憶體204之抹寫循環壽命是小於第二非揮發半導體記憶體206(在其中一實施例中),其衰退測試模組406可能會只檢測第一非揮發半導體記憶體204。衰退測試模組406可能會週期性的檢測期衰退狀況。衰退測試模組406會等待其靜止無操作動作時,提供邏輯位址及資料至第一及/或第二記憶體介面262,264。
衰退測試模組406可能會選擇第一及/或第二非揮發半導體記憶204,206之區域寫入然後讀取資料。衰退測試模組406會比對其寫入及讀取之資料。另外,衰退測試模組406會讀取資料資料寫入在先前的重複衰退測試。
另外,衰退測試模組406可能會在第一次及第二次寫入相同資料至相同之實體位址。在這兩次寫入過程中,衰退測試模組406會分別讀回其資料寫入。衰退測試模組406可得針對實體位址之一確定衰退值,藉由比對其二次之資料讀回或者比對寫入資料與第二次之資料讀回。
平均抹寫儲存區塊模組260會根據衰退測試模組406所量測之衰退值而因應其映射分配。例如,衰退測試模組406會根據衰退量來計算在記憶體區塊上之最大抹寫循環次數。然後平均抹寫儲存區塊模組260可利用此最大抹寫循環次數進行標準化。
另外,平均抹寫儲存區塊模組260可利用記憶體區塊上之剩餘抹寫循環次數來做一映射分配決定。假如第一及第二非揮發半導體記憶體204,206其中之一接近可使用之壽命尾端(例如:一預設門檻),其平均抹寫儲存區塊模組260會將新寫入操作安排映射至另一非發揮半導體記憶體。
平均抹寫儲存區塊模組260也可能包含執行衰退測試模組406。以下論述其平均抹寫儲存區塊模組260將包含衰退測試模組406。
參照第6圖,一個具有較快存取時間之小容量固態非揮發記憶體可結合於一個具有較慢存取時間之大容量固態非揮發記憶體。一個固態硬碟450可包含控制器460,第一非揮發半導體記憶體462和第二非揮發半導體記憶體464。控制器460與電腦主機480相連接。控制器460可能包含第一和第二記憶體介面472,474。第一非揮發半導體記憶體462可能較不昂貴,且具有一較大儲存容量與較高抹寫循環壽命,但其讀寫速度則較慢(即存取時間)。第二非揮發半導體記憶體464相對於第一非揮發半導體記憶體462則較為昂貴,亦具有高抹寫循環壽命,存取時間較為快速。
第二非揮發半導體記憶體464具有較快於第一非揮發半導體記憶體462之一寫入時間,讀取時間,抹除時間,程式運作時間,或一累加之存取時間。因此,第二非揮發半導體記憶體可適於使用至儲存資料。控制器460包含平均抹寫儲存區塊模組260及映射模組465。平均抹寫儲存區塊模組260也可能執行映射模組465。映射模組465根據第一非揮發半導體記憶體462及第二非揮發半導體記憶體464之存取時間及/或儲存容量映射邏輯位址至第一及第二非揮發半導體記憶體462,464之實體位置上。
具體來說,映射模組465可從電腦主機220端接收關於頻率及存取時間之資訊,用以判斷哪些資料需要被寫入至邏輯位址。映射模組465可能會映射需要被寫入更頻繁及/或更快速之邏輯位址至第二非揮發半導體記憶體464之實體位址。其它無此需求之邏輯位址則被映射至第一非揮發半導體記憶體462之實體位址。確實的抹寫頻率存取時間可透過當資料寫入時量測其抹寫頻率及/或存取時間用以更新之。如此以來,其映射模組465可使固態硬碟450之讀取/寫入/抹除操作的整體存取時間減到最小化。
根據從電腦主機220端執行之應用,當映射其邏輯位址至第一及第二非揮發半導體記憶體462,464時,其映射模組465亦可能考慮其他因素。該些因素可能會被包括但並不限定其記憶體區塊需要被寫入及存取的時間。
參照第7A-7E圖,方法500提供一個混合式非揮發固態硬碟記憶體系統,並使用不同抹寫循環壽命與儲存容量之第一及第二非揮發半導體記憶體。第一非揮發半導體記憶體有較低於第二非揮發半導體記憶體之抹寫循環壽命及較高之儲存容量。然,此僅為說明之便,其第一非揮發半導體記憶體與第二非揮發半導體記憶體間並無存在必然關係,亦即是兩者可互換其名稱之描述,而不構成本發明所述之權利範圍限制。
參照第7A圖,方法500開始於步驟502。從電腦主機端接收對於邏輯位址的抹寫頻率資訊於步驟504。分配具有較低抹寫頻率之邏輯位址(例如:抹寫頻率低於一預設門檻值)於步驟506,及分配具有較高抹寫頻率之邏輯位址(例如:抹寫頻率高於一預設門檻值)於步驟508。
根據步驟506及步驟508之映射分配判斷,寫入資料至第一及/或第二非揮發半導體記憶體。在步驟512中,量測實際之寫入頻率對於哪些資料在事實上被寫入至邏輯位址並更新其映射關係。
參照第7B圖,在步驟514中執行資料位移分析,判斷是否需進行資料位移。假如在步驟514中判斷結果為”否”,則進行步驟516判斷是否執行衰退分析。假如步驟516判斷結果為”否”,則進行步驟518判斷是否執行耗損程度分析。假如步驟518判斷結果為”否”,則回到步驟510。
參照第7C圖,當步驟514判斷結果為”是”,執行步驟520,判斷寫入至第一非揮發半導體記憶體之記憶區塊經過一預設時間後,其寫入操作次數是否超過或相等於一預設時間之預設門檻值。假如步驟520斷結果為”否”,則回到步驟516。假如步驟520之判斷結果為”是”,則進行步驟522,將符合判斷結果之第一記憶體區塊之邏輯位址映射至第二非揮發半導體記憶體之第二記憶體區塊。
在步驟524判斷在第二非揮發半導體記憶體中可提供之記憶體是否少於一預設門檻。假如步驟524之判斷結果為”否”,則回到到步驟516。假如步驟524之判斷結果為”是”,則進行步驟526,定義第二非揮發半導體記憶體之記憶體區塊為一LUB。進行步驟528,映射符合LUB的邏輯位址到第一非揮發半導體記憶體之記憶體區塊,然後回到步驟516。
參照第7D圖,當步驟516之判斷結果為”是”,進行步驟530,寫入第一次資料至實體位址上。接續在步驟532中從實體位址讀回資料。然後進行步驟534,寫入第二次資料至實體位址上。(即在預定時間、寫入第一次資料之後)。接續在步驟536中從實體位址讀回資料。比對步驟532與步驟536中所讀回之第一次與第二次寫入之資料,並產生一實體位址之衰退值在步驟538中。據此更新此映射關係在步驟540,並回到步驟518。
參照第7E圖,當步驟518之判斷結果為”是”,進行步驟542,根據個別在第一及第二非揮發半導體記憶體之寫入操作執行次數及其抹寫循環壽命順序,產生對於第一非揮發半導體記憶體及第二非揮發半導體記憶體之之耗損程度。步驟544判斷第二非揮發半導體之耗損程度是否大於一預設門檻值。假如步驟544判斷結果為”是”,進行步驟546,映射所有邏輯記憶體區塊至第一非揮發半導體記憶體之實體記憶體區塊,然後回到步驟510。
假如步驟544判斷結果為”否”,則進行步驟548,判斷第一非揮發半導體之耗損程度是否大於一預設門檻值。假如步驟548判斷結果為”是”,進行步驟550,映射所有邏輯記憶體區塊至第二非揮發半導體記憶體之實體記憶體區塊,然後回到步驟510。假如步驟548判斷結果為”否”,回到步驟510。
參照第8圖,提供一種混合式非揮發半導體記憶體系統儲存資料之方法600,其中混合式非揮發記憶體包含有不同存取時間與儲存容量之第一及第二非揮發半導體記憶體。其中第一非揮發半導體記憶體相對於第二非揮發半導體記憶體存取時間較長,容量較大。第一及第二非揮發半導體記憶體皆有較長的抹寫循環壽命。
方法600開始於步驟602。進而於步驟604中,從電腦主機端收受關涉於抹寫頻率及存取時間要求之檔案資料,寫入至邏輯位址。在步驟606中,映射具有較高抹寫頻率(例如:抹寫頻率高於一預設門檻)且/或要求較快存取時間的邏輯位址至第二非揮發半導體記憶體。在步驟608中,映射具有較低抹寫頻率(例如:抹寫頻率高於一預設門檻)且/或要求較慢存取時間的邏輯位址至第一非揮發半導體記憶體。
根據步驟606及步驟608之映射產生結果,分別寫入至第一及/或第二非揮發半導體記憶體中。接下來於步驟612中,對於哪些檔案在事實上是被寫入至邏輯位址而量測其確實之抹寫頻率及/或存取時間,且更新其映射。在步驟614中,回到第7A-7E所示之方法500中之步驟步驟514。
平均抹寫儲存區塊模組根據本發明所揭露之原理,計算出對於一個或更多非揮發半導體記憶體上每個記憶體區塊之耗損程度。記憶體區塊一詞關涉於記憶晶胞群組,而必須被一起寫入且/或抹除。為了說明之目的,記憶體區塊一詞是用於描述記憶晶胞群組,且該記憶晶胞群組是一起被抹除的。同時,一個記憶晶胞的耗損程度將取決於抹除循環次數。
當抹除開始時儘管各別的記憶晶胞可能還沒有被編程,從而沒有經歷大量的耗損,然在一個記憶體區塊中之記憶晶胞仍將會體驗相同之抹除次數。然而,平均抹寫儲存區塊模組可將一個記憶體區塊上之記憶晶胞的耗損程度,透過計算記憶體區塊上已經經歷的抹除次數而獲得。
平均抹寫儲存區快模組能夠經由第一及第二記憶體上之每個記憶體區塊,追蹤其抹除次數。例如:該些次數可能是被儲存在第一及/或第二非揮發半導體記憶體之某個區域,在一個分離運作的記憶體或是伴隨各自的記憶體區塊。舉例而言,一個預設的記憶體區塊區域,非用於儲存使用者資料,而是被使用於儲存記憶體區塊已被抹除的總次數。當一個記憶體區塊將要被抹除時,平均抹寫儲存區塊模組會讀取此數值,然後增加該數值,並在記憶體區塊被抹除後寫入該增加的數值至記憶體區塊。
在同種性質之記憶體結構中,抹除次數可被應用於判斷一個記憶體區塊之耗損程度。然而,第一及第二非發揮半導體記憶體有不同的抹寫循環壽命,意指每個記憶晶胞能夠承受抹除次數程度有所不同。在各種實施例中,第二非發揮半導體記憶體比第一非揮發半導體記憶體有一個較長之抹寫循環壽命。因此在第二非揮發半導體記憶體上之每個記憶體區塊所能承受之抹除次數大於在第一非揮發半導體記憶體。然,此僅為說明之便,其第一非揮發半導體記憶體與第二非揮發半導體記憶體間並無存在必然關係,亦即是兩者可互換其名稱之描述,而不構成本發明所述之權利範圍限制。
比對第一非揮發半導體記憶體及第二非揮發半導體記憶體的記憶體區塊上之抹除次數可能並非是一適切的比對。為了達到較適切的比對方式,其抹除次數亦須經過一標準化過程。標準化的其中之一方法為將抹除次數除以該記憶體所能承受之總抹除次數。舉例而言,第一非揮發半導體記憶體有一抹寫循環壽命1萬次,第二非揮發半導體記憶體有一抹寫循環壽命10萬次。
記憶體區塊在第一非揮發半導體記憶體抹除1000次經標準化後之耗損程度為1/10,第二非揮發半導體記憶體抹除1000次經標準化後之耗損程度為1/100。一旦耗損程度經標準化後,一個耗損程度的演算法能夠被執行在第一及第二記憶體區塊上,好像所有記憶體區塊被規格化為一個單一之記憶體而具有一單一之抹寫循環壽命。在此所使用之耗損程度,除非有其他的提示,不然皆採用此標準化耗損程度之方式。
另一個標準化之方法,為了避免以分數之方式表示,將在第一非揮發半導體記憶體(具有較低抹寫循環壽命)上之抹除次數乘以其二記憶之抹寫循環壽命的比例值。以此例,其比例值為10(100000/10000)。一個在第一非揮發半導體記憶體上之記憶體區塊抹除次數為1000次時,其標準化後之耗損程度為10000次,在第二非揮發半導體記憶體上之記憶體區塊抹除次數為1000次時,其標準化後之耗損程度為1000次。
當一寫入要求至一邏輯位址時,平均抹寫儲存區塊模組會確定邏輯位址是否已經映射至實體位址上。假若如此,其平均抹寫儲存區塊模組會指揮其寫入至實體位置上。假若寫入時或要求抹除其記憶體區塊,其平均抹寫儲存區塊會確定是否有任何未使用且耗損較低之記憶體區塊。假若如此,其平均抹寫儲存區塊模組會指揮其抹寫至該未使用且耗損較低之記憶體區塊。
對於一寫入要求至未映射之邏輯位址,其平均抹寫儲存區塊模組可能會映射此邏輯位址至一未使用且具有較低耗損程度之邏輯位址上。假如平均抹寫儲存區塊模組預期該邏輯位址將被相對較不頻繁地被重複寫入,其平均抹寫儲存區塊模組會映射該邏輯位址至一未使用且具有較高耗損程度之邏輯位址上。
當平均抹寫儲存區塊模組具有較適當之資料用以確定其存取頻率時,其平均抹寫儲存區塊模組會從一已使用的記憶體區塊移動資料使之成為可再重新寫入新資料的狀態。這樣以來,一個新寫入至記憶體區塊相對上較為頻繁之存取指令會被寫至較低耗損之記憶體區塊。另外,一個新寫入至記憶體區塊相對上較不頻繁之存取指令會被寫至較高耗損之記憶體區塊。資料被移動至一未使用之記憶體區塊可根據其被移動之資料在預計上有多頻繁地被重複寫入而做選擇。
在不同的時刻,例如週期性的,其平均抹寫儲存區塊模組會分析其記憶體區塊的耗損程度,並且重新映射其相對較頻繁重複寫入的邏輯位址至較低耗損之記憶體區塊。除此之外,其平均抹寫儲存區塊模組會重新映射其相對較不頻繁重複寫入的邏輯位址至較高耗損之記憶體區塊,即稱之為靜態資料位移。重新映射包含在兩個記憶體區塊交換資料。其交換過程,其資料會從一記憶體區塊儲存至一未使用之記憶體區塊或一暫存區。
平均抹寫儲存區塊模組可用以維持超越其抹寫循環壽命之記憶體陣列的使用。沒有新資料會被寫入至該些記憶體區塊,且原先儲存在該些記憶體區塊的資料,會被寫入至其它記憶體區塊。雖然平均抹寫儲存區塊模組之目的是為了使任一記憶體區塊不至過早耗損,然而,在真實情況下,仍有些許記憶體區塊可能會過早耗損。辨識並除去不可靠的儲存區,在固態硬碟無法再繼續使用之前,充分使用記憶體區塊剩餘之壽命。
應當理解,本發明所揭露者,為達說明之目的,其提及之第一及第二非揮發半導體記憶體204,206僅為本發明校示之作用,當亦可應用於其他型態之記憶體種類。除此之外,其記憶體不會被限制於特定單獨之模組。例如,本發明所揭露者可被應用於一單一記憶體晶片之記憶體區域,或一複合式記憶體晶片。每個記憶體區域可能被使用於儲存資料並與本發明所揭露之校示內容相符。
參照第9圖,為本發明所述之系統裝置900。該系統裝置900能夠為任何儲存裝置,例如:電腦,機上盒,手機(或是其他型態的無線手持裝置),諸如此類的。此系統裝置900包含固態硬碟200用以儲存資料,其運作原理已如先前實施例提及,於此不再贅述。
參照第10圖,為本發明所揭露之固態記憶體系統。該記憶體系統包含固態硬碟1000,並連接於電腦主機1005。固態硬碟亦包含控制器1010,第一非揮發半導體記憶體1001及第二非揮發半導體記憶體1002。舉例而言,第一非揮發半導體記憶體1001為一具有較高耐久性的記憶體裝置(即高抹寫循環壽命),例如單層式單元快閃記憶體。第二非揮發半導體記憶體1002為一具有較低耐久性的記憶體裝置,例如多層式單元快閃記憶體。第一非揮發半導體記憶體1001相較於第二非揮發半導體記憶體1002較為昂貴,並提供較少容量(且/或密度)。如此以來,可在可耐久程度,容量大小,價格考量上取其平衡,而提供一儲存系統之固態硬碟1000。
控制器1010包含第一記憶體介面1011與第二記憶體介面1012,用以分別連結第一及第二非揮發半導體記憶體1001,1002。更進一步論之,其控制器1010包含映射模組1013及疲乏管理模組1014,用以從電腦主機1005映射邏輯位址至實體位址,而呈現在第一及第二非揮發半導體記憶體1001,1002上。經過一寫入操作過程,其資料會從電腦主機端經由第一記憶體介面1011被寫入至第一非揮發固態記憶體1001,經由第二記憶體介面1012被寫入至第二非揮發固態記憶體1002。經過一讀取操作過程,資料會從第一及第二非揮發半導體記憶體1001,1002分別經由第一及第二記憶體介面1011,1012傳送至電腦主機1005。
映射模組1013及疲乏管理模組1014可用以確定一個特定的邏輯位址並映射至第一或第二非揮發半導體記憶體1001,1002。疲乏管理模組1014也可能結合映射模組1013,用以兼具映射模組1013與疲乏管理模組1014之功能。
一般來說,疲乏管理模組1014監控對於從電腦主機端1005接收寫入至邏輯位址上之寫入操作次數及/或頻率。邏輯位址可辨識一個或更多對應的記憶體區塊。疲乏管理模組1014將較常寫入之邏輯位址映射至具有較高耐久性之實體位址之記憶體。為達此目的,疲乏管理模組1014對於每個從電腦主機1005接收之邏輯位址產生一抹寫頻率順序(write frequency ranking)。此抹寫頻率順序針對全部陣列邏輯位址上的每個邏輯位址之抹寫次數,順序地排列表示。另外,抹寫頻率順序可包含對於每個邏輯位址經過一預定週期後之抹寫操作次數。利用預定週期之判斷,會存在有高總抹寫操作次數之邏輯位址,但不會有寫入太過頻繁的情形發生,用以將原先映射較為頻繁之邏輯位址,改變分配至較不頻繁之位址上。
為了產生抹寫頻率順序,疲乏管理模組1014對於電腦主機端1005所進行之寫入操作至每一個邏輯位址,會維持一抹寫次數。當固態硬碟1000首先被使用時,例如作業系統最先被驅動執行,或是在重新格式化的一個重新定義之資料備分交換空間,其疲乏管理模組1014與映射模組1013會先寫入至較高耐久性之非揮發記憶體中。於此例中,如第一非揮發半導體記憶體1001。在預先決定的百分比或第一非揮發半導體記憶體1001所有可用之實體位址皆被使用之後,其下一個邏輯位址會被映射至較低的耐久性之非揮發半導體記憶體。一旦較高耐久性之非揮發半導體記憶體使用至某一確定門檻值,則開始寫入至其它較低耐久性之非揮發半導體記憶體,其疲乏管理模組1014將管理分配映射至此二記憶中。換句話說,較頻繁被寫入至邏輯位址之資料將被映射至較高耐久性之實體位址;較不頻繁被寫入至邏輯位址之資料將被映射至較低耐久性之實體位址。
在另一實施例中,疲乏管理模組1014根據總抹寫次數中已經被使用之狀況,分配其邏輯位址之順序排列。較高優先順序者,被分配至較高耐久性之實體位址,其剩餘的其它邏輯位址被映射至較低耐久性之實體位址。利用邏輯位址之順序分配方式,可替代利用一預定週期下之抹寫操作次數來決定分配之控制方式。在本例中,邏輯位址在被寫入使用較多但在一固定週期時間內寫入較少之情況下,因此所得分配之順序排列可能還後於在最近時間內頻繁的被寫入資料之邏輯位址。因此,與之關聯而運用者,其邏輯位址可能會映射至較高耐久性記憶體,而相較於低耐久性記憶體而具有一較低總寫入操作次數。另一實施例中,亦可組合總抹寫操作次數與每一時間週期內之寫入狀況此二種方式來加以利用。
在另一具體實施例中,對邏輯位址之抹寫頻率可從最後寫入之消耗的時間週期而得以確定。在這樣的方法中,其抹寫頻率順序可隨著消耗的時間週期,從最長者由最底部順序到最高順序一一得以確定。然而值得商榷的是,當固態硬碟1000每一次啟動時不會發生因消耗的時間為依據而儲存邏輯位址完整新抹寫頻率順序之動作。在另一實施例,對於個別邏輯位址抹寫循環間之平均時間,可用以產生對於每一邏輯位址之抹寫頻率順序。因此原先較頻繁寫入至邏輯位址而變成較不頻繁者,會分配給一較低抹寫頻率順序,而儲存至較低耐久性之記憶體中。在進一步實施例中,其抹寫循環間的平均消耗時間可根據較低與較高耐久性記憶體之抹寫循環壽命(或剩餘抹寫循環壽命)而標準化。其標準化之具體說明如先前說明內容,於此不再贅述。
為了確定抹寫頻率,即對於邏輯位址之抹寫頻率順序,一個對於每一邏輯位址之寫入次數的加權時間衰退平均值(時間平均抹寫次數)能夠根據以下的方程式計算可得:
WCA(n+1)=WCA(n)*(1-a)+WE(n)*a, (1)
這裡的WCA(n)是在一時間間格n內的時間平均抹寫次數;WE(n)是在時間間格n內確實的寫入事件次數(實際抹寫事件),寫入執行在時間間隔n時,其值等於1,其它則等於0。a被選擇為一個具有最適切時間衰退的常數。a有時被稱之為”進展速率常數”(attack rate constant),(1-a)則被稱之為”衰退速率常數”(decay rate constant)。或者可選擇使用具有兩個參數之系統,則以上方程式(1)變成
WCA(n+1)=WCA(n)*d+WE(n)*a, (2)
這裡d為”衰退速率常數”,其他變數則與上述方程式(1)相同。
確實映射邏輯位址至實體位址是在第一或是第二非揮發半導體記憶體其中之一範圍內,可能包含耗損程度功能性描述如上。因此安排特定邏輯位址至第一或是第二非揮發半導體記憶體其中之一可經由疲乏管理模組1014而得確定,特定實體位址在選擇的記憶體範圍內可透過平均抹寫儲存區塊模組而得以確定,如上所述。
參照第11圖,本發明揭露一示例性固態記憶體系統,包含一個獨立的平均抹寫儲存區塊模組,用以對於每一記憶體做映射分配。該固態記憶體系統包含一固態硬碟1200並與電腦主機1205相連接。該固態硬碟1200包含控制器1210,第一非揮發半導體記憶體1201及第二非揮發半導體記憶體1202。舉例而言,第一非揮發半導體記憶體1201為一高耐久性(即高抹寫循環壽命)記憶體裝置,例如單層式單元(SLC)快閃記憶體。第一非揮發半導體記憶體1201相較於第二非揮發半導體記憶體1202可能相對上較為昂貴而提供有較小容量(及/或密度)之非揮發記憶體陣列。第二非揮發半導體記憶體1202則提供具有一較低之耐久性及/或高容量(及/或密度)記憶體裝置,例如多層式單元(MLC)快閃記憶體。以這樣的配置下,固態硬碟1200可提供兼具記憶體耐久性,容量大小及成本考量之儲存系統。
控制器1210包含第一記憶體介面1211及第二記憶體介面1212,用以分別連接第一及第二非揮發半導體記憶體1201,1202。控制器1210更包含映射模組1213及疲乏管理模阻1214,用以將從電腦主機1205端接收之邏輯位址映射至實體位址,而呈現在第一及第二非揮發半導體記憶體1201,1202。當進行一寫入操作時,資料會從電腦主機1205端經由第一記憶體介面1211被寫入至第一非揮發半導體記憶體1201,或經由第二記憶體介面1212被寫入至第二非揮發半導體記憶體1202。當進行讀取操作時,資料是分別從第一非揮發半導體記憶體1201經由第一記憶體介面1211,或從第二非揮發半導體記憶體1202經由第二記憶體介面1212提供至電腦主機1205。
映射模組1213及疲乏管理模阻1214可用以確定一特定邏輯位址該映射至第一或第二非揮發半導體記憶體1201,1202。疲乏管理模阻1214結合映射模組1213可兼具有此二模組之功能。映射模組1213可包含第一平均抹寫儲存區塊模組1215及第二平均抹寫儲存區塊模組1216。又第一平均抹寫儲存區塊模組1215及第二平均抹寫儲存區塊模組1216亦可被包含在疲乏管理模阻1214,甚至與映射模組1213及疲乏管理模阻1214分離而獨立存在(圖未顯示)。
第一平均抹寫儲存區塊模組1215及第二平均抹寫儲存區塊模組1216可提每個第一及第二非揮發半導體記憶體1201,1202實體位址之獨立耗損程度。如上所述,平均抹寫儲存區塊模組之目的是用以均衡在非揮發半導體記憶體上所有區域之耗損程度,避免其中某一區域(實體位址)在此記憶體中過早耗損。一個在第一及第二非揮發半導體記憶體1201,1202過於耗損之區域,亦可提供於記憶體實體位址間之資料移動,而善加利用,有時亦稱之為”記憶體回收處理”(garbage collection)。
參照第12圖,為本發明之示例性映射/抹寫頻率順序表800。其映射/抹寫頻率順序表800包含一陣列邏輯位址LA1 -LAn 在欄位802。對於每一邏輯位址LA1 -LAn ,其總抹寫次數之監控與維持呈現在欄位804。總抹寫循環次數WC1 -WCn 為分別對於執行於邏輯位址LA1 -LAn 之抹寫次數。在欄位806,分別呈現儲存對於邏輯位址LA1 -LAn 之抹寫頻率順序WFR1 -WFRn 。抹寫頻率順序WFR1 -WFRn 可經由多種方式而得以確定,其細部說明已於前提及,於此不再贅述。實體位址PA1 -Pan 分別已映射至對應之邏輯位址LA1 -LAn 儲存在欄位808。欄位804-808有必要精確地即時更新其資訊。
參照第13圖,為對於混合式固態儲存裝置之疲乏管理之示例性方法1100。在此例中,其第一非揮發半導體記憶體具有較高之耐久性(或抹寫循環壽命)比第二非揮發半導體記憶體。方法1100開始在步驟1102。接收要被寫入之邏輯位址在步驟1104。接著在步驟1106確定接收的邏輯位址之抹寫頻率。根據步驟1106所確定之抹寫頻率,在步驟1108決定邏輯位址的抹寫頻率順序。
在步驟1110,邏輯位址的抹寫頻率順序與第一非揮發半導體記憶體之最低抹寫頻率順序比對判斷後寫入記憶體。在步驟1112判斷假如邏輯位址的抹寫頻率順序是低於第一非揮發半導體記憶體之最低抹寫頻率順序,則映射邏輯位址至第二非揮發半導體記憶體。在步驟1114,其資料根據其映射關係寫入該被寫入之邏輯位址至第二非揮發半導體記憶體。方法1100結束於步驟1116。
然而,在步驟1110判斷結果為邏輯位址的抹寫頻率順序是高於第一非揮發半導體記憶體之最低抹寫頻率順序,則進行步驟1118。在步驟1118,在第一非揮發半導體記憶體中具有最低抹寫頻率順序之邏輯位址是被改映射於第二非揮發半導體記憶體。在步驟1120,目前在第一非揮發半導體記憶體具有最低抹寫頻率順序邏輯位址之資料,會被移動至第二非揮發半導體記憶體。然後於步驟1122映射邏輯位址至第一非揮發半導體記憶體。然後跳至步驟1114,根據此映射寫入資料。方法1100結束於步驟1116。
綜上所述,該所屬技術領域者可依本發明所揭露之內容,廣泛地理解各種校示執行之形式。例如,方法流程中之多個執行步驟可依不同之排列順序完成,而不影響其結果。因此,雖然本發明列舉特定事例說明,但並不因此而限制本發明之真實權利範圍,這是由於在研究本說明書、圖式、以及申請專利範圍之後,其修正與變換對於熟悉此技術領域者而言將更易於思及。
100、200、250、300、350、400、450、1000、1200...固態硬碟
104...快閃記憶體
102、202、252、302、352、402、460、1010、1210...控制器
204、462、1001、1201...第一非揮發半導體記憶體
206、464、1002、1202...第二非揮發半導體記憶體
220、480、1005、1205...電腦主機
260...平均抹寫儲存區塊模組
261...資料位移模組
262、472、1011、1211...第一記憶體介面
264、474、1012、1212...第二記憶體介面
306...抹寫偵測模組
356...抹寫映射模組
406...衰退測試模組
465、1013、1213...映射模組
900...系統裝置
1014、1214...疲乏管理模組
1215...第一平均抹寫儲存區塊
1216...第二平均抹寫儲存區塊
第1圖為習知固態硬碟之功能方塊圖。
第2圖為本發明固態硬碟之功能方塊圖。
第3圖為本發明固態硬碟包含平均抹寫儲存區塊模組之功能方塊圖。
第4A圖為本發明固態硬碟包含第3圖所述之平均抹寫儲存區塊模組及抹寫偵測模組之功能方塊圖。
第4B圖為本發明固態硬碟包含第3圖所述之平均抹寫儲存區塊模組及抹寫映射模組之功能方塊圖。
第5圖為本發明固態硬碟包含第3圖所述之平均抹寫儲存區塊模組及衰退測試模組之功能方塊圖。
第6圖為本發明固態硬碟包含第3圖所述之平均抹寫儲存區塊模組及映射模組之功能方塊圖。
第7A~7E圖為本發明第2~5圖所述之固態硬碟運作之方法流程圖。
第8圖為本發明第6圖所述之固態硬碟運作之方法流程圖。
第9圖為本發明所述之系統裝置包含固態硬碟之功能方塊圖。
第10圖為本發明固態硬碟包含疲乏管理模組之功能方塊圖。
第11圖為本發明固態硬碟包含對每一記憶體皆具有平均抹寫儲存區塊模組之疲乏管理模組之功能方塊圖。
第12圖為本發明之映射關係及抹寫頻率順序表。
第13圖為本發明第10圖所述之固態硬碟運作之方法流程圖。
1000...固態硬碟
1001...第一非揮發半導體記憶體
1002...第二非揮發半導體記憶體
1005...電腦主機
1010...控制器
1011...第一記憶體介面
1012...第二記憶體介面
1013...映射模組
1014...疲乏管理模組

Claims (16)

  1. 一種固態記憶體系統,包含:一第一非揮發半導體記憶體裝置,具有一第一抹寫循環壽命與一第一陣列實體位址;一第二非揮發半導體記憶體裝置,具有一第二抹寫循環壽命與一第二陣列實體位址,其中該第一抹寫循環壽命大於該第二抹寫循環壽命,其中該第二非揮發半導體記憶體裝置係與該第一非揮發半導體記憶體裝置分開;以及一疲乏管理模組,用以對複數個邏輯位址產生複數個抹寫頻率順序,並用以根據該等抹寫頻率順序映射該複數個邏輯位址的每一個至該第一陣列實體位址或該第二陣列實體位址的一實體位址,其中各該抹寫頻率順序係根據從該複數個邏輯位址各自之一最後抹寫已消耗的經過週期。
  2. 如請求項第1項所述之系統,其中該等抹寫頻率順序其中之一係根據對該複數個邏輯位址其中之對應一者之抹寫操作次數。
  3. 如請求項第1項所述之系統,其中該等抹寫頻率順序其中之一係根據在一預定週期下對該複數個邏輯位址其中之對應一者之抹寫操作次數。
  4. 如請求項第1項所述之系統,其中該等抹寫頻率順序其中之一係根據對該複數個邏輯位址其中之對應一者之抹寫次數的加權時間衰退平均值。
  5. 如請求項第4項所述之系統,其中該抹寫次數的加權時間衰退平均值 是根據:WCA(n+1)=WCA(n)* d+WE(n)* a其中該WCA(n)是在一時間間格n之該時間平均抹寫次數;WE(n)是在該時間間格n之一實際抹寫事件,該實際抹寫事件發生在該時間間格n時等於1,否則則等於0;d為一第一常數,a為一第二常數。
  6. 如請求項第1項所述之系統,更包含:一平均抹寫儲存區塊模組,係根據該第一抹寫循環壽命用以產生對該第一非揮發半導體記憶體裝置之一第一耗損程度,及根據該第二抹寫循環壽命用以產生對該第二非揮發半導體記憶體裝置之一第二耗損程度,並根據該第一耗損程度及該第二耗損程度映射該複數個邏輯位址。
  7. 如請求項第1項所述之系統,其中映射至該第一非揮發半導體記憶體裝置之該等邏輯位址的該等抹寫頻率順序其中之最低者係高於映射至該第二非揮發半導體記憶體裝置之該等邏輯位址的該等抹寫頻率順序其中之最高者。
  8. 如請求項第1項所述之系統,其中各該抹寫頻率順序係根據從該複數個邏輯位址各自之該等抹寫循環之間的平均值所經過的時間。
  9. 如請求項第5項所述之系統,其中該第一常數d為一衰退速率常數、該第二常數a為一進展速率常數,並且第一常數d等於1-a。
  10. 一種固態記憶體系統之疲乏管理方法,包含:提供一第一非揮發半導體記憶體裝置,具有一第一抹寫循環壽命與一第一陣列實體位址; 提供一第二非揮發半導體記憶體裝置,具有一第二抹寫循環壽命與一第二陣列實體位址,其中該第一抹寫循環壽命大於該第二抹寫循環壽命,其中該第二非揮發半導體記憶體裝置係與該第一非揮發半導體記憶體裝置分開;以及對複數個邏輯位址產生複數個抹寫頻率順序,且根據該等抹寫頻率順序映射該複數個邏輯位址的每一個至該第一陣列實體位址或該第二陣列實體位址的一實體位址,其中各該抹寫頻率順序係根據從該複數個邏輯位址各自之一已消耗的經過週期。
  11. 如請求項第10項所述之方法,其中該等抹寫頻率順序其中之一係根據對該複數個邏輯位址其中之對應一者之抹寫操作次數。
  12. 如請求項第10項所述之方法,其中該等抹寫頻率順序其中之一係根據在一預定週期下對該複數個邏輯位址其中之對應一者之抹寫操作次數。
  13. 如請求項第10項所述之方法,其中該等抹寫頻率順序其中之一係根據對該複數個邏輯位址其中之對應一者之抹寫次數的加權時間衰退平均值。
  14. 如請求項第13項所述之方法,其中該抹寫次數的加權時間衰退平均值是根據:WCA(n+1)=WCA(n)* d+WE(n)* a其中該WCA(n)是在一時間間格n之該時間平均抹寫次數;WE(n)是在該時間間格n之一實際抹寫事件,該實際抹寫事件發生在該時間間 格n時等於1,否則則等於0;d為一第一常數,a為一第二常數。
  15. 如請求項第10項所述之方法,更包含:根據該第一抹寫循環壽命產生對該第一非揮發半導體記憶體裝置之一第一耗損程度;及根據該第二抹寫循環壽命用以產生對該第二非揮發半導體記憶體裝置之一第二耗損程度,並根據該第一耗損程度及該第二耗損程度映射該複數個邏輯位址。
  16. 如請求項第10項所述之方法,其中映射至該第一非揮發半導體記憶體裝置之該複數個邏輯位址的該等抹寫頻率順序其中之最低者高於映射至該第二非揮發半導體記憶體裝置之該複數個邏輯位址的該等抹寫頻率順序其中之最高者。
TW098105888A 2008-02-29 2009-02-25 混合式非揮發固態記憶體系統之疲乏管理系統與方法 TWI490693B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3277408P 2008-02-29 2008-02-29
US12/365,455 US9153337B2 (en) 2006-12-11 2009-02-04 Fatigue management system and method for hybrid nonvolatile solid state memory system

Publications (2)

Publication Number Publication Date
TW200937192A TW200937192A (en) 2009-09-01
TWI490693B true TWI490693B (zh) 2015-07-01

Family

ID=40551048

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098105888A TWI490693B (zh) 2008-02-29 2009-02-25 混合式非揮發固態記憶體系統之疲乏管理系統與方法

Country Status (6)

Country Link
US (3) US9153337B2 (zh)
EP (1) EP2248131B1 (zh)
KR (1) KR101576575B1 (zh)
CN (1) CN102047341B (zh)
TW (1) TWI490693B (zh)
WO (1) WO2009108619A1 (zh)

Families Citing this family (278)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US8187100B1 (en) * 2007-03-02 2012-05-29 Dp Technologies, Inc. Shared execution of hybrid states
US7913032B1 (en) * 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US8678925B1 (en) 2008-06-11 2014-03-25 Dp Technologies, Inc. Method and apparatus to provide a dice application
US20090319721A1 (en) * 2008-06-19 2009-12-24 Silicon Motion, Inc. Flash memory apparatus and method for operating the same
US8527690B2 (en) * 2008-06-26 2013-09-03 Microsoft Corporation Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear
KR20100013485A (ko) * 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
US8516203B2 (en) * 2008-08-13 2013-08-20 Sandisk Technologies Inc. Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US8694750B2 (en) * 2008-12-19 2014-04-08 Nvidia Corporation Method and system for data structure management
US9176859B2 (en) * 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4844639B2 (ja) * 2009-02-19 2011-12-28 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US10079048B2 (en) * 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8572443B2 (en) * 2009-04-08 2013-10-29 International Business Machines Corporation System, method, and computer program product for determining a retention behavior for at least one block of a memory device having finite endurance and/or retention
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US20120150527A1 (en) * 2009-08-21 2012-06-14 Tadhg Creedon Storage peripheral device emulation
CN102033756A (zh) * 2009-09-27 2011-04-27 环旭电子股份有限公司 基本输入输出系统支持多种触控屏幕的方法
US8291194B2 (en) * 2009-11-16 2012-10-16 Mediatek Inc. Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof
US9594675B2 (en) 2009-12-31 2017-03-14 Nvidia Corporation Virtualization of chip enables
US8621141B2 (en) 2010-04-01 2013-12-31 Intel Corporations Method and system for wear leveling in a solid state drive
US8700841B2 (en) 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
US20120023144A1 (en) * 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
JP2012033047A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
KR20120032253A (ko) * 2010-09-28 2012-04-05 삼성전자주식회사 데이터 저장 장치들을 시험하는 방법 및 이를 위한 젠더
US9465728B2 (en) 2010-11-03 2016-10-11 Nvidia Corporation Memory controller adaptable to multiple memory devices
EP2643761A1 (en) * 2010-11-24 2013-10-02 Sony Ericsson Mobile Communications AB Dynamically configurable embedded flash memory for electronic devices
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
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9406346B2 (en) 2011-06-30 2016-08-02 Sandisk Technologies Llc Smart bridge for memory core
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management 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
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
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
US20130067289A1 (en) * 2011-09-14 2013-03-14 Ariel Maislos Efficient non-volatile read cache for storage system
EP2761467B1 (en) * 2011-09-30 2019-10-23 Intel Corporation Generation of far memory access signals based on usage statistic tracking
KR101889298B1 (ko) * 2011-11-08 2018-08-20 삼성전자주식회사 불휘발성 메모리를 포함하는 메모리 장치 및 불휘발성 메모리의 제어 방법
US9348741B1 (en) * 2011-12-19 2016-05-24 Western Digital Technologies, Inc. Systems and methods for handling write data access requests in data storage devices
US9208070B2 (en) * 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
WO2013095644A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Page miss handler including wear leveling logic
US9405681B2 (en) * 2011-12-28 2016-08-02 Intel Corporation Workload adaptive address mapping
KR101625777B1 (ko) 2011-12-28 2016-05-30 인텔 코포레이션 휘발성 메모리 및 비휘발성 메모리 간의 코드 및 데이터 저장소들을 분산하기 위한 방법 및 장치
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
WO2014061064A1 (en) * 2012-10-18 2014-04-24 Hitachi, Ltd. Cache control apparatus and cache control method
KR101979713B1 (ko) * 2012-11-12 2019-05-17 삼성전자 주식회사 반도체 장치의 테스트 방법 및 반도체 테스트 장비
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
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9292451B2 (en) 2013-02-19 2016-03-22 Qualcomm Incorporated Methods and apparatus for intra-set wear-leveling for memories with limited write endurance
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
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
EP2972888B1 (en) 2013-03-14 2019-02-06 Micron Technology, INC. Memory systems and methods including training,data organizing,and/or shadowing
US20140281129A1 (en) * 2013-03-15 2014-09-18 Tal Heller Data tag sharing from host to storage systems
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9342389B2 (en) * 2013-04-04 2016-05-17 SK Hynix Inc. Neighbor based and dynamic hot threshold based hot data identification
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management 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
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
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data 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
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
US9330143B2 (en) * 2013-10-24 2016-05-03 Western Digital Technologies, Inc. Data storage device supporting accelerated database operations
US10444998B1 (en) 2013-10-24 2019-10-15 Western Digital Technologies, Inc. Data storage device providing data maintenance services
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
KR102165460B1 (ko) * 2013-11-27 2020-10-14 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
US9928166B2 (en) 2013-12-24 2018-03-27 International Business Machines Corporation Detecting hot spots through flash memory management table snapshots
US9564212B2 (en) 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9760481B2 (en) * 2014-06-13 2017-09-12 Sandisk Technologies Llc Multiport memory
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) * 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9042160B1 (en) * 2014-07-03 2015-05-26 Sandisk Technologies Inc. Memory device with resistive random access memory (ReRAM)
US10528461B2 (en) * 2014-08-04 2020-01-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling wear among flash memory devices based on remaining warranty
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
KR102282962B1 (ko) * 2014-12-22 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10599352B2 (en) * 2015-08-14 2020-03-24 Samsung Electronics Co., Ltd. Online flash resource allocation manager based on a TCO model
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
KR102333746B1 (ko) * 2015-09-02 2021-12-01 삼성전자주식회사 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10228990B2 (en) * 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
JP2017107321A (ja) * 2015-12-08 2017-06-15 京セラドキュメントソリューションズ株式会社 電子機器およびデータアクセス制御プログラム
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US9886324B2 (en) 2016-01-13 2018-02-06 International Business Machines Corporation Managing asset placement using a set of wear leveling data
US10078457B2 (en) * 2016-01-13 2018-09-18 International Business Machines Corporation Managing a set of wear-leveling data using a set of bus traffic
US10095597B2 (en) 2016-01-13 2018-10-09 International Business Machines Corporation Managing a set of wear-leveling data using a set of thread events
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10387303B2 (en) 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
KR102679057B1 (ko) * 2016-08-18 2024-07-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10061524B2 (en) * 2016-09-01 2018-08-28 International Business Machines Corporation Wear-leveling of memory devices
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
KR102630116B1 (ko) * 2016-10-18 2024-01-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10459644B2 (en) 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
GB2559119B (en) * 2017-01-20 2020-12-30 Advanced Risc Mach Ltd Apparatus and methods to prolong lifetime of memories
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
EP3367385B1 (en) 2017-02-28 2020-07-08 ams AG Memory arrangement and method for operating a memory arrangement
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10325668B2 (en) * 2017-04-05 2019-06-18 Micron Technology, Inc. Operation of mixed mode blocks
US10565123B2 (en) 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
FR3070081B1 (fr) * 2017-08-10 2021-04-09 Safran Identity & Security Procede d'ecriture d'un programme dans une memoire non-volatile tenant compte de l'usure de ladite memoire
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
JP7010667B2 (ja) * 2017-11-06 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
JP7279889B2 (ja) * 2017-11-07 2023-05-23 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリブロックリクレーム方法およびメモリブロックリクレーム装置
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
TWI680373B (zh) * 2018-03-29 2019-12-21 大陸商合肥沛睿微電子股份有限公司 固態硬碟及其運作方法
TWI705333B (zh) * 2018-03-29 2020-09-21 大陸商合肥沛睿微電子股份有限公司 控制電路及控制方法
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11537307B2 (en) * 2018-08-23 2022-12-27 Micron Technology, Inc. Hybrid wear leveling for in-place data replacement media
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10831378B2 (en) * 2018-09-24 2020-11-10 International Business Machines Corporation Optimizing data access in a DSN memory for wear leveling
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US10877671B2 (en) * 2018-12-03 2020-12-29 Vast Data Ltd. Techniques for prolonging lifespan of storage drives
KR20200095103A (ko) 2019-01-31 2020-08-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
KR20200117256A (ko) 2019-04-03 2020-10-14 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
KR20200139573A (ko) * 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11080205B2 (en) 2019-08-29 2021-08-03 Micron Technology, Inc. Classifying access frequency of a memory sub-system component
US11320987B2 (en) * 2019-08-29 2022-05-03 Micron Technology, Inc. Scanning techniques for a media-management operation of a memory sub-system
US10902929B1 (en) * 2019-08-29 2021-01-26 Micron Technology, Inc. Zone swapping for wear leveling memory
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11150825B2 (en) * 2019-12-05 2021-10-19 Microsoft Technology Licensing, Llc Adaptive spare block usage in solid state drives
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11200113B2 (en) 2020-01-14 2021-12-14 Intel Corporation Auto-increment write count for nonvolatile memory
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11145376B1 (en) * 2020-03-26 2021-10-12 Macronix International Co., Ltd. Memory system and method capable of performing wear leveling
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
TWI775143B (zh) * 2020-09-09 2022-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN118120016A (zh) * 2021-07-30 2024-05-31 罗伯特·博世有限公司 一种用于延长电子控制单元(ecu)寿命的方法及其ecu
EP4134826A1 (en) * 2021-08-09 2023-02-15 Giesecke+Devrient Mobile Security GmbH Management of memory of a processing device
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
CN115793987B (zh) * 2023-01-09 2023-05-09 苏州浪潮智能科技有限公司 一种磨损均衡的方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5767742A (en) * 1995-09-20 1998-06-16 U.S. Philips Corporation Circuit arrangement comprising a differential amplifier
US6163773A (en) * 1998-05-05 2000-12-19 International Business Machines Corporation Data storage system with trained predictive cache management engine
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 (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638430A (en) 1983-07-15 1987-01-20 United Technologies Corporation EAROM and EEPROM data storage management
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JPH05151097A (ja) 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP3200012B2 (ja) 1996-04-19 2001-08-20 株式会社東芝 記憶システム
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
JP2001067881A (ja) 1999-08-30 2001-03-16 Toshiba Corp 連想記憶装置及び記憶媒体
JP2001266599A (ja) 2000-03-17 2001-09-28 Nec Microsystems Ltd 半導体記憶装置の試験方法および試験装置
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
ATE372578T1 (de) * 2002-10-28 2007-09-15 Sandisk Corp Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem
EP1713085A1 (en) 2002-10-28 2006-10-18 SanDisk Corporation Automated wear leveling in non-volatile storage systems
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7596656B2 (en) 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US9153337B2 (en) * 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory 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
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5767742A (en) * 1995-09-20 1998-06-16 U.S. Philips Corporation Circuit arrangement comprising a differential amplifier
US6163773A (en) * 1998-05-05 2000-12-19 International Business Machines Corporation Data storage system with trained predictive cache management engine
US20060149896A1 (en) * 2002-10-28 2006-07-06 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7032087B1 (en) * 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system

Also Published As

Publication number Publication date
CN102047341A (zh) 2011-05-04
KR101576575B1 (ko) 2015-12-10
CN102047341B (zh) 2014-11-19
US10067866B2 (en) 2018-09-04
US9727455B2 (en) 2017-08-08
US20160019141A1 (en) 2016-01-21
WO2009108619A1 (en) 2009-09-03
EP2248131B1 (en) 2015-02-18
US20170337127A1 (en) 2017-11-23
EP2248131A1 (en) 2010-11-10
US20090138654A1 (en) 2009-05-28
KR20100138896A (ko) 2010-12-31
TW200937192A (en) 2009-09-01
US9153337B2 (en) 2015-10-06

Similar Documents

Publication Publication Date Title
TWI490693B (zh) 混合式非揮發固態記憶體系統之疲乏管理系統與方法
US9298534B2 (en) Memory system and constructing method of logical block
US10114744B2 (en) Memory unit assignment and selection for internal memory operations in data storage systems
JP5728672B2 (ja) ハイブリッドメモリ管理
US7035967B2 (en) Maintaining an average erase count in a non-volatile storage system
US7120729B2 (en) Automated wear leveling in non-volatile storage systems
US8560770B2 (en) Non-volatile write cache for a data storage system
US8200904B2 (en) System and method for clearing data from a cache
US20100325351A1 (en) Memory system having persistent garbage collection
KR101086876B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
WO2008073421A2 (en) Hybrid non-volatile solid state memory system
EP1559015A1 (en) Method and apparatus for managing an erase count block
WO2011022123A1 (en) In-situ memory annealing
EP1713085A1 (en) Automated wear leveling in non-volatile storage systems

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees