TWI511151B - 用於獲得及使用非揮發性記憶體健康資訊之系統及方法 - Google Patents
用於獲得及使用非揮發性記憶體健康資訊之系統及方法 Download PDFInfo
- Publication number
- TWI511151B TWI511151B TW101136079A TW101136079A TWI511151B TW I511151 B TWI511151 B TW I511151B TW 101136079 A TW101136079 A TW 101136079A TW 101136079 A TW101136079 A TW 101136079A TW I511151 B TWI511151 B TW I511151B
- Authority
- TW
- Taiwan
- Prior art keywords
- nvm
- health information
- address
- memory
- controller
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
Description
本文件係關於用於獲得及使用非揮發性記憶體健康資訊之系統及方法。
諸如快閃記憶體(例如,NAND快閃記憶體及NOR快閃記憶體)之各種類型之非揮發性記憶體(「NVM」)可用於大量儲存。舉例而言,消費型電子器件(例如,攜帶型媒體播放器)使用快閃記憶體來儲存資料,該資料包括音樂、視訊、影像及其他媒體或其他類型之資訊。
在一些快閃記憶體系統中,主機系統請求針對邏輯區塊位址(LBA)之讀取及程式化操作,該等邏輯區塊位址經映射至或經轉譯至快閃記憶體之實體區塊位址。此映射允許主機作業系統以類似於磁碟機之方式存取快閃記憶體。儘管可以隨機存取方式每次對快閃記憶體讀取或程式化一位元組或一字,但通常每次一區塊地抹除快閃記憶體。以剛抹除之區塊開始,可程式化彼區塊內之任何位元組。一旦已程式化一位元組,則在抹除該整個區塊以前通常無法重新程式化該位元組。因為快閃記憶體具有有限數目個抹除-程式化循環,所以需要最小化抹除-程式化循環之數目以延長快閃記憶體之壽命。
歸因於上文所描述之快閃記憶體的獨特特性,需要可有效地獲得及使用快閃記憶體及其他NVM之健康資訊之系統、方法及裝置。
揭示用於獲得及使用非揮發性記憶體(「NVM」)健康資訊之系統及方法。本發明之實施例可在具有一主機及一非揮發性記憶體封裝之系統中操作。該主機可包括揮發性記憶體且執行非揮發性記憶體功能,諸如維護邏輯至實體映射、將程式化、讀取或抹除命令發出至NVM封裝,及執行磨損均衡(wear leveling)及記憶體回收操作。根據本發明之實施例,該主機亦可維護一健康資料庫。該NVM封裝可互換地耦接至該主機且可包括一記憶體控制器及非揮發性記憶體(例如,NAND快閃記憶體)。在一些實施例中,該NVM封裝亦可包括一錯誤校正碼引擎。
該健康資料庫可儲存與NVM有關之資訊。亦即,對於NVM中之每一實體位置(例如,頁或區塊),特定針對彼實體位置之健康資訊儲存於該資料庫中。儲存於該資料庫中之該健康資訊可為規定用於在彼特定位址位置處存取該NVM的各種軟體及/或硬體參數之位址特定健康資訊。舉例而言,該健康資訊可包括頁正確性、臨限電壓、讀取、程式化或抹除所要求之時間及/或循環數目、所使用之錯誤校正碼等。健康資訊可由記憶體控制器產生,但儲存於由主機維護之資料庫中。儘管健康資訊可儲存於主機上,但主機不會以任何方式解譯、修改或使用該健康資訊來管理NVM。
當主機希望存取NVM時,該主機可組譯包括一存取命令(例如,一讀取或程式化命令)、一位址及位址特定健康資
訊之一命令封包,且將彼命令封包提供至記憶體控制器。該主機基於該位址存取該健康資訊資料庫以擷取位址特定健康資訊以便包括於該命令封包內。當記憶體控制器接收到該命令封包時,該記憶體控制器可提取該健康資訊,且根據針對該NVM中正被存取之實體位置規定的軟體及/或硬體參數執行存取請求。
在執行該命令之後,記憶體控制器接著可判定是否要求在該等操作參數中之一或多者中進行改變以便執行該存取請求。若要求一改變,則該記憶體控制器可更新該健康資訊且將經更新健康資訊及NVM位址傳輸至主機裝置。主機接著可將經更新健康資訊儲存於資料庫中。
在結合隨附圖式考慮以下詳細描述之後,本發明之以上及其他態樣、其本質及各種特徵將變得更顯而易見,相同參考字元貫穿隨附圖式指代相同部分。
圖1為描繪包括NVM封裝104及主機102之系統100的圖。主機102可經組態以將健康資訊提供至NVM封裝104,NVM封裝104可包括記憶體控制器106、主機介面110及具有對應NVM 128a至128n之記憶體晶粒112a至112n。舉例而言,如實例系統100中所描繪,主機102可將健康資訊提供至NVM封裝104,NVM封裝104可使用健康資訊執行存取請求(例如,讀取、程式化及抹除操作)及可改良系統100之效能、可靠性及/或電力使用的記憶體管理功能(例如,磨損均衡及記憶體回收)。NVM封裝104亦可更新健康資訊
且將其傳送回至主機102以供儲存於健康資訊資料庫中。
主機102可為諸如攜帶型媒體播放器、蜂巢式電話、袖珍式個人電腦、個人數位助理(「PDA」)、桌上型電腦、膝上型電腦及/或平板計算裝置之多種主機裝置及/或系統中的任一者。NVM封裝104可包括NVM 128a至128n(例如,在記憶體晶粒112a至112n中)且可為球狀柵格陣列封裝或其他合適類型之積體電路(「IC」)封裝。NVM封裝104可為主機102之部分及/或與主機102分離。舉例而言,主機102可為板級裝置且NVM封裝104可為安裝於板級裝置上之記憶體子系統。在其他實施例中,NVM封裝104可藉由有線(例如,SATA)或無線(例如,BluetoothTM
)介面耦接至主機102。
主機102可包括經組態以與NVM封裝104互動之主機控制器114。舉例而言,主機102可將諸如讀取、程式化及抹除操作之各種存取請求傳輸至NVM封裝104。主機控制器114可包括經組態以基於軟體及/或韌體指令之執行而執行操作的一或多個處理器及/或微處理器。額外地及/或替代性地,主機控制器114可包括經組態以執行各種操作之基於硬體之組件,諸如特殊應用積體電路(「ASIC」)。主機控制器114可根據在主機102與NVM封裝104之間共用的通信協定來格式化傳輸至NVM封裝104之資訊(例如,命令、資料)。
主機102可包括儲存組件134,儲存組件134包括揮發性記憶體108。揮發性記憶體108可為諸如快取記憶體或RAM
之多種揮發性記憶體類型中的任一者。主機102可使用揮發性記憶體108執行記憶體操作及/或暫時地儲存自NVM封裝104讀取及/或寫入至NVM封裝104之資料。舉例而言,揮發性記憶體108可暫時地儲存待發送至NVM封裝104之記憶體操作的佇列,或儲存自NVM封裝104接收之資料。另外,根據本發明之實施例,揮發性記憶體108可儲存健康資訊資料庫。主機控制器114可存取健康資訊資料庫以擷取位址特定健康資訊以便包括於發出至記憶體控制器106之命令中。在主機102上之揮發性記憶體而非NVM封裝104上之揮發性記憶體中維護健康資訊資料庫通常為必要的,此係因為充分量之揮發性記憶體太昂貴以致不能在NVM封裝104中保留。
主機102可使用主機介面110及記憶體控制器106經由通信頻道116與NVM封裝104通信。通信頻道116可為適合於雙向通信之任何匯流排。通信頻道116可為固定的、可卸離的或無線的。通信頻道116可為(例如)通用串列匯流排(USB)、串列進階技術(SATA)匯流排或任何其他合適的匯流排。
記憶體控制器106可包括經組態以基於軟體及/或韌體指令之執行而執行操作的一或多個處理器及/或微處理器120。額外地及/或替代性地,記憶體控制器106可包括經組態以執行各種操作之基於硬體之組件,諸如ASIC。記憶體控制器106可執行多種操作,諸如執行由主機102發出之命令。
主機控制器114及記憶體控制器106可單獨地或組合地執行各種記憶體管理功能,諸如記憶體回收及磨損均衡。在記憶體控制器106經組態以執行至少一些記憶體管理功能之實施中,NVM封裝104可被稱作「受管理之NVM」(或針對NAND快閃記憶體的「受管理之NAND」)。此情形可與「原始NVM」(或針對NAND快閃記憶體之「原始NAND」)相對比,在「原始NVM」中,在NVM封裝104外部的主機控制器114執行針對NVM封裝104之記憶體管理功能。
在一些實施例中,記憶體控制器106可與記憶體晶粒112a至112n併入至相同之封裝中。在其他實施例中,記憶體控制器106可實體上位於單獨封裝中或與主機102位於相同之封裝中。在一些實施例中,可省略記憶體控制器106,且通常由記憶體控制器106執行之所有記憶體管理功能(例如,記憶體回收及磨損均衡)可由主機控制器(例如,主機控制器114)執行。
記憶體控制器106可包括揮發性記憶體122。揮發性記憶體122可為諸如快取記憶體或RAM之多種揮發性記憶體類型中的任一者。記憶體控制器106可使用揮發性記憶體122來執行存取請求及/或暫時地儲存正從記憶體晶粒112a至112n中之NVM 128a至128n讀取及/或正寫入至記憶體晶粒112a至112n中之NVM 128a至128n的資料。舉例而言,揮發性記憶體122可儲存韌體且記憶體控制器106可使用韌體來對NVM封裝104執行操作(例如,讀取/程式化操作)。揮
發性記憶體122亦可暫時地儲存與NVM封裝104中之NVM相關聯的健康資訊。記憶體控制器106可使用NVM 128a至128n來持續性地儲存NVM封裝104用以進行操作之多種資訊,諸如除錯日誌、指令及韌體。
記憶體控制器106可使用共用之內部匯流排126來存取可用於持續性資料儲存之NVM 128a至128n。儘管在NVM封裝104中僅描繪一個共用之內部匯流排126,但NVM封裝可包括一個以上共用之內部匯流排。每一內部匯流排可連接至如關於記憶體晶粒112a至112n所描繪之多個(例如,2、3、4、8、32等個)記憶體晶粒。記憶體晶粒112a至112n可實體上以包括堆疊組態的多種組態配置,且根據一些實施例,可為積體電路(「IC」)晶粒。
NVM 128a至128n可為多種NVM中的任一者,諸如基於浮動閘極或電荷捕捉技術之NAND快閃記憶體、NOR快閃記憶體、可抹除可程式化唯讀記憶體(「EPROM」)、電可抹除可程式化唯讀記憶體(「EEPROM」)、鐵電RAM(「FRAM」)、磁阻式RAM(「MRAM」)、相變記憶體(「PCM」),或其任何組合。
圖2說明電子裝置200之方塊圖,其可更詳細說明根據各種實施例之系統100(圖1)的韌體、軟體及/或硬體組件中之一些。電子裝置200可具有上文結合圖1所描述之特徵及功能性中的任一者,且反之亦然(系統100可具有結合圖2所描述之特徵及功能性中的任一者)。如圖所示,虛線將層劃界。應理解,對哪些組件落在劃界線內的描繪僅為說明
性的,且一或多個組件可隸屬於不同層。
電子裝置200可包括檔案系統210、主機控制器212、NVM匯流排控制器216、記憶體控制器220及NVM 230。在一些實施例中,檔案系統210及主機控制器212可為軟體或韌體模組,且NVM匯流排控制器216、記憶體控制器220及NVM 230可為硬體模組。因此,在此等實施例中,主機控制器212可表示NVM介面218之軟體或韌體態樣,且NVM匯流排控制器216可表示NVM介面218之硬體態樣。
檔案系統210可包括任何合適類型之檔案系統(諸如檔案配置表(「FAT」)檔案系統或擴展階層式檔案系統(「HFS+」)),且可為電子裝置200之作業系統的部分(例如,圖1之SoC控制電路112的部分)。在一些實施例中,檔案系統210可包括快閃檔案系統,快閃檔案系統提供頁之邏輯至實體映射。在此等實施例中,檔案系統210可執行下文所論述之主機控制器212的功能性中之一些或所有,且因此檔案系統210及主機控制器212可為或可不為單獨模組。
檔案系統210可管理用於應用程式及作業系統之檔案及資料夾結構。檔案系統210可在電子裝置200上執行之應用程式或作業系統的控制之下操作,且可在應用程式或作業系統請求自NVM 230讀取資訊或在NVM 230中儲存資訊時將寫入及讀取命令提供至主機控制器212。連同每一讀取或寫入命令一起,檔案系統210可提供用以指示應自何處讀取使用者資料或應將使用者資料寫入至何處之邏輯位
址,諸如邏輯頁位址或具有頁偏移之LBA。
檔案系統210可將不直接與NVM 230相容之讀取及寫入請求提供至主機控制器212。舉例而言,邏輯位址可使用典型地用於基於硬碟機之系統的慣例或協定。不同於快閃記憶體,基於硬碟機之系統可在不首先執行區塊抹除的情況下覆寫記憶體位置。此外,硬碟機可無需用磨損均衡來增加裝置之壽命。因此,NVM介面218可執行記憶體特定、供應商特定或兩者之任何功能以處置檔案系統請求,且以適合於NVM 230之方式執行其他管理功能。
主機控制器212可包括轉譯層214。在一些實施例中,轉譯層214可為或包括快閃轉譯層(「FTL」)。對於寫入命令,轉譯層214可將經提供邏輯位址映射至NVM 230上之未使用的經抹除之實體位置。對於讀取命令,轉譯層214可使用經提供邏輯位址以判定儲存所請求資料之實體位址。因為每一NVM可取決於NVM之大小或供應商而具有不同佈局,所以此映射操作可為記憶體特定的及/或供應商特定的。除執行邏輯至實體位址映射外,轉譯層214亦可執行任何其他合適功能。舉例而言,轉譯層214可執行可為快閃轉譯層的典型功能之其他功能(諸如,記憶體回收(「GC」)及磨損均衡)中的任一者。
舉例而言,轉譯層214可執行記憶體回收以釋放NVM 230之經程式化區塊以用於抹除。舉例而言,一旦被釋放及抹除,便可使用該等記憶體位置來儲存自檔案系統210接收之新使用者資料。在一些狀況下,GC程序可涉及將
有效資料自經程式化區塊複製至具有經抹除之記憶體位置的另一區塊,藉此使經程式化區塊中之有效資料失效。一旦已使經程式化區塊中之所有記憶體位置失效,轉譯層214便可指引NVM匯流排控制器216來對經程式化區塊執行抹除操作。如本文中所使用,「有效資料」可指代已回應於對應於一或多個邏輯位址(例如,LBA)之最近寫入請求而被程式化的使用者資料,且因此可為該一或多個邏輯位址之使用者資料的有效版本。
主機控制器212可包括用於儲存位址特定健康資訊之健康資料庫215。健康資料庫215可包括對應於NVM 230內之實體位置的資訊之查找表。當檔案系統210將命令及邏輯位址發送至主機控制器212時,轉譯層214判定在NVM 230中之實體位置,且主機控制器212使用此實體位置自健康資料庫215獲得位址特定健康資訊。在一些實施例中,主機控制器212將自健康資料庫215獲得之健康資訊包括於將提供至記憶體控制器220之命令封包中。在此實施例中,主機控制器212充當資料擷取代理(data retrieval agent)且不使用健康資訊來進行任何NVM管理決策。主機控制器212亦可藉由用自記憶體控制器220接收之健康資訊來更新健康資料庫215而充當資料填入(data populating agent)代理。
記憶體控制器220產生儲存於健康資料庫215中之健康資訊。結果,僅記憶體控制器220能夠解譯及使用健康資訊。儘管主機控制器212可將健康資訊儲存於資料庫215
中,但主機控制器212不能夠使用其以進行NVM管理決策。
儲存於健康資料庫(其可駐留於圖1之揮發性記憶體108中)中之資訊可為使得在NVM介面218或主機介面110下游的軟體及/或硬體組件能夠更有效地處理關於NVM 230之任何特定實體位置的命令請求之資訊。舉例而言,健康資訊可規定駐留於(例如)NVM封裝104上之ECC引擎應實施哪一錯誤校正碼。作為另一實例,健康資訊可儲存記憶體控制器硬體設定,諸如程式化電壓、程式化/驗證循環之數目及對於NVM內之特定實體位置而言所需要之程式化解析度。
健康資訊可包括指示NVM之部分的降級及/或故障之可能性之任何資料。一般而言,健康資訊可涵蓋可用以進行關於NVM之有效及可靠使用之決策的關於NVM之任何資料。藉由儲存關鍵效能及校準參數,記憶體控制器106或220可變更其執行命令請求之方式以避免不必要的潛時及資料損毀。
在一特定實例中,健康資訊可用以預先補償由主機起始之讀取操作。主機可起始針對NVM之特定部分(例如,區塊)的讀取操作。記憶體控制器可接收讀取操作且檢查與NVM之實體位址(例如,區塊或頁)相關聯之健康資訊。健康資訊可指示上次讀取該區塊之時間且指示讀取操作要求一個以上讀取循環。舉例而言,讀取操作可已佔用八個讀取循環,其中所使用之每一讀取循環逐漸地變更讀取條件
(例如,逐漸地偏移之臨限電壓值)。基於健康資訊,記憶體控制器可決定使用最近已知的成功讀取條件來對實體位置執行所請求之讀取操作。若讀取操作成功,則記憶體控制器可將關於彼實體位置(例如,區塊)之健康資訊不改變地傳回至主機。然而,若讀取操作要求額外讀取循環,則記憶體控制器可更新關於彼實體位置(例如,區塊)之健康資訊且將經更新健康資訊傳回至主機。
在另一實例中,健康資訊可用以在主機起始程式化操作時更有效地程式化NVM之部分。NVM(例如,NAND快閃記憶體)傾向於隨時間、使用(例如,讀取/程式化循環之數目)及操作溫度而降級。舉例而言,彼降級可表現為記憶體胞之臨限電壓的移位。因此,健康資訊可追蹤NVM之部分的此等關鍵參數。當記憶體控制器106接收到來自主機102之將資料程式化至NVM 128a至128n之特定部分的請求時,記憶體控制器106可參考與記憶體之彼部分相關聯的健康資訊且判定經程式化記憶體胞可能降級的程度及速度。舉例而言,若主機102起始針對可能快速地降級(例如,如由健康資訊中之時間、溫度及循環資料所指示)之記憶體部分的程式化操作,則記憶體控制器106可決定變更程式化電壓以補償預期之臨限電壓漂移。
根據一些實施例之可獲得及使用的健康資訊之額外實例可包括位元錯誤率資料(位元錯誤率反映NVM之部分中的壞位元之數目)、DLL時序設定,及/或程式化或讀取資料所要求之時間或循環數目。亦可編譯關於頁正確性的健康
資訊,頁正確性可指示記憶體裝置校正偵測到的錯誤之容量。舉例而言,校正錯誤所要求之錯誤校正碼(「ECC」)循環之數目或所使用的ECC技術(例如,高位元轉換ECC、低位元轉換ECC、軟體ECC等)可指示NVM之一部分的健康。
主機控制器212可與NVM匯流排控制器216介接以完成NVM存取命令(例如,程式化、讀取及抹除命令)。NVM匯流排控制器216可充當至記憶體控制器220之硬體介面,且可使用匯流排協定、資料速率及其他規範與記憶體控制器220通信。
NVM介面218可基於在本文中有時被稱作「後設資料」之記憶體管理資料來管理NVM 230。後設資料可由主機控制器212產生或可由在主機控制器212之控制下操作的模組產生。舉例而言,後設資料可包括用於管理邏輯位址與實體位址之間的映射、壞區塊管理、磨損均衡之任何資訊、用於偵測或校正資料錯誤之錯誤校正碼(「ECC」)資料或其任何組合。後設資料可包括由檔案系統210連同使用者資料一起提供之資料(諸如邏輯位址)。因此,一般而言,「後設資料」可指代關於使用者資料或與使用者資料有關,或大體上用以管理非揮發性記憶體之操作及記憶體位置的任何資訊。在一些實施例中,後設資料及健康資訊為互不相交的。
NVM介面218可經組態以將後設資料儲存於NVM 230中。在一些實施例中,NVM介面218可將與使用者資料相
關聯之後設資料儲存於儲存有使用者資料的相同記憶體位置(例如,頁)處。舉例而言,NVM介面218可將使用者資料、相關聯之邏輯位址及用於使用者資料之ECC資料儲存於NVM 230之一或多個記憶體位置處。NVM介面218亦可將關於使用者資料之其他類型的後設資料儲存於相同記憶體位置中。
NVM介面218亦可將健康資訊儲存於NVM 230中。NVM介面218可週期性地將健康資料庫215之內容儲存於NVM 230中,或NVM介面218可在斷電事件期間(例如,當關閉裝置時)儲存健康資料庫215之內容。若健康資訊儲存於NVM 230中,則可在電力開啟期間擷取健康資訊以填入健康資料庫215。
NVM介面218可儲存邏輯位址,使得在NVM 230電力開啟時或在NVM 230之操作期間,電子裝置200可判定何資料駐留於彼位置處。詳言之,因為檔案系統210可根據使用者資料之邏輯位址而非其實體位址來參考使用者資料,所以NVM介面218可將使用者資料與邏輯位址儲存在一起以維持其關聯性。如此一來,即使在NVM 230中之維護實體至邏輯映射的索引表變得過時,NVM介面218仍可(例如)在電子裝置200之電力開啟或再啟動時判定恰當的映射。
圖3為命令封包300之說明圖,可在主機(例如,圖1之主機102)裝置與記憶體控制器(例如,圖1之記憶體控制器106)之間傳送命令封包300。命令封包300可包括命令存取
請求331、位址333、健康資訊335、資料337及後設資料339。命令存取請求331可為由主機裝置提供至記憶體控制器之任何合適指令,諸如讀取、程式化或抹除請求。位址333可為NVM內之待存取之實體位址。舉例而言,可自轉譯層(例如,轉譯層214)導出位址。
命令封包亦可包括健康資訊335。健康資訊335可與位址333相關聯,且因此可在本文中被稱作位址特定健康資訊。位址特定健康資訊可由主機控制器自健康資料庫(例如,健康資料庫215)擷取,主機控制器將位址特定健康資訊包括於命令封包300中。當命令封包300由記憶體控制器接收到時,記憶體控制器可提取健康資訊335,處理健康資訊335且相應地執行命令存取請求331。根據一些實施例,健康資訊335可包括位址特定NVM健康指示符,諸如頁正確性、臨限電壓、讀取、程式化或抹除NVM之彼部分所要求的時間及/或循環數目。在其他實施例中,健康資訊335可為健康等級,健康等級可為自個別NVM健康指示符計算出的NVM的一般化健康指示。健康資訊335可特定針對記憶體控制器220,且因此僅可由記憶體控制器解譯及使用。因此,不管是哪一製造者生產記憶體控制器及NVM,記憶體控制器皆可接收其可處理及使用之在命令封包300中的健康資訊。此外,主機控制器完全不知曉健康資訊之內容。
資料結構330亦可包括資料337及後設資料339。舉例而言,當存取請求為程式化請求時,資料337可為經程式化
至NVM之資料。資料337可為任何合適類型之資料。在主機裝置為媒體播放器之實施例中,資料337可表示一或多個媒體檔案(例如,歌曲、視訊、影像、電子書等)。後設資料339可包括用於管理邏輯位址與實體位址之間的映射、壞區塊管理、磨損均衡之任何資訊、用於偵測或校正資料錯誤之錯誤校正碼(「ECC」)資料或其任何組合。
在例示性命令程式化請求中,記憶體控制器可在第一匯流排循環中經由通信頻道(例如,圖1之通信頻道116)自主機裝置接收程式化命令封包,且將其儲存於命令暫存器中(例如,在揮發性記憶體122中)。接著可使用一或多個匯流排循環以將位址333輸入至揮發性記憶體中之位址暫存器中。接下來,可將資料337及後設資料339載入至頁緩衝器中且接著在儲存於位址暫存器中之位址處程式化至NVM中。
在例示性命令讀取請求中,記憶體控制器可在第一匯流排循環中經由通信頻道自主機裝置接收命令讀取封包,且將其儲存於命令暫存器中。可使用一或多個匯流排循環以將位址333輸入至位址暫存器中。接下來,可將在位址333處儲存於NVM中之資料傳送至頁緩衝器且在匯流排就緒時傳送至主機。
圖4為根據本發明之實施例之系統如何使用健康資訊的步驟之說明性流程圖。系統可尤其包括主機裝置(例如,主機102)、記憶體控制器(記憶體控制器106)及NVM(例如,NVM 128)。在步驟410處,在至少一儲存組件中維護
NVM之健康資訊資料庫。至少一儲存組件可為與主機裝置相關聯之揮發性記憶體。健康資訊資料庫儲存實體位址特定健康資訊。
在步驟420處,將命令提供至記憶體控制器,且每一命令包括命令存取請求、位址及位址特定健康資訊。主機裝置可藉由自轉譯層(例如,轉譯層214)獲得實體位址且使用彼實體位址來從健康資訊資料庫擷取位址特定健康資訊來封裝命令。由主機組織之命令封包可類似於上文結合圖3所論述之命令封包。
在步驟430處,記憶體控制器可自命令提取位址特定健康資訊。在步驟440處,記憶體控制器可根據位址特定健康資訊執行存取請求。舉例而言,記憶體控制器在執行關於NVM之實體位址的命令時考慮存在於位址特定健康資訊中之任何硬體及/或軟體參數。若正在執行程式化命令,則健康資訊可規定程式化之微調程度,或規定程式化時間或對於給定位置最終程式化電壓位準應為何。使用此資訊,控制器可以最適合於資料之預期位置的方式來程式化資料。
在步驟450處,判定是否根據位址特定健康資訊執行了存取請求。若根據位址特定健康資訊執行了存取請求,則程序在步驟480處結束。若未根據位址特定健康資訊執行存取請求,則程序繼續進行至步驟460。例如,若需要不同於與位址特定健康資訊包括在一起之參數的軟體及/或硬體參數來執行存取請求,則程序可繼續進行至步驟
460。舉例而言,記憶體控制器可將所使用之實際參數與健康資訊建議的參數相比較。
在步驟460處,記憶體控制器可藉由將改變之參數封裝至封包中來更新健康資訊且將該健康資訊提供至主機裝置。封包可包括位址及經更新健康資訊。在步驟470處,主機裝置可使用自記憶體控制器接收之經改變參數來更新健康資訊資料庫中之健康資訊。
應理解,圖4中所展示之步驟僅為說明性的,並可修改或省略現有步驟,可添加額外步驟,且可變更某些步驟之次序。
雖然已描述用於獲得及使用非揮發性記憶體健康資訊之系統及方法,但應理解,可在其中進行許多改變而不偏離本發明之精神及範疇。現已知或稍後設計的如一般熟習此項技術者可見的對所主張之標的物的非實質改變被明顯地預期為等效地處於申請專利範圍之範疇內。因此,將一般熟習此項技術者現今或稍後已知的明顯替代定義為處於所定義要素的範疇內。
呈現了本發明之所描述實施例以用於說明而非限制之目的。
100‧‧‧系統
102‧‧‧主機
104‧‧‧NVM封裝
106‧‧‧記憶體控制器
108‧‧‧揮發性記憶體
110‧‧‧主機介面
112‧‧‧SoC控制電路
112a‧‧‧記憶體晶粒
112b‧‧‧記憶體晶粒
112c‧‧‧記憶體晶粒
112n‧‧‧記憶體晶粒
114‧‧‧主機控制器
116‧‧‧通信頻道
120‧‧‧處理器及/或微處理器
122‧‧‧揮發性記憶體
126‧‧‧內部匯流排
128a‧‧‧非揮發性記憶體(NVM)
128b‧‧‧非揮發性記憶體(NVM)
128c‧‧‧非揮發性記憶體(NVM)
128n‧‧‧非揮發性記憶體(NVM)
134‧‧‧儲存組件
200‧‧‧電子裝置
210‧‧‧檔案系統
212‧‧‧主機控制器
214‧‧‧轉譯層
215‧‧‧健康資料庫
216‧‧‧NVM匯流排控制器
218‧‧‧NVM介面
220‧‧‧記憶體控制器
230‧‧‧非揮發性記憶體(NVM)
300‧‧‧命令封包
331‧‧‧命令存取請求
333‧‧‧位址
335‧‧‧健康資訊
337‧‧‧資料
339‧‧‧後設資料
圖1為描繪根據本發明之各種實施例之包括主機及具有記憶體控制器的NVM封裝之說明性系統之圖;圖2為根據本發明之各種實施例之說明性系統;圖3為根據本發明之各種實施例之說明性資料結構;及
圖4為描繪根據本發明之一些實施例之用於獲得及使用健康資訊的說明性程序之流程圖。
200‧‧‧電子裝置
210‧‧‧檔案系統
212‧‧‧主機控制器
214‧‧‧轉譯層
215‧‧‧健康資料庫
216‧‧‧NVM匯流排控制器
218‧‧‧NVM介面
220‧‧‧記憶體控制器
230‧‧‧非揮發性記憶體(NVM)
Claims (20)
- 一種記憶體系統,其包含:非揮發性記憶體(「NVM」);一記憶體控制器,其經由一第一匯流排通信地耦接至該NVM;及一主機裝置,其具有至少一儲存組件,其中該主機裝置經由一第二匯流排通信地耦接至該記憶體控制器,且其中該主機裝置經組態以:在該至少一儲存組件中維護該NVM之一健康資訊資料庫,該健康資訊資料庫儲存位址特定健康資訊,其中該位址特定健康資訊包括指示該NVM之至少一部分降級之一可能性之資訊;及經由該第二匯流排將一命令提供至該記憶體控制器,其中該命令包括一存取請求、位址及位址特定健康資訊,其中該記憶體控制器經組態以:自該命令提取該位址特定健康資訊;及根據該位址特定健康資訊執行該存取請求。
- 如請求項1之系統,其中該NVM包含NAND快閃記憶體。
- 如請求項1之系統,其中該記憶體控制器進一步經組態以:更新該位址特定健康資訊;及將該經更新位址特定健康資訊提供至該主機裝置。
- 如請求項3之系統,其中該主機裝置進一步經組態以將 該經更新位址特定健康資訊儲存於該健康資訊資料庫中。
- 如請求項1之系統,其中該主機裝置進一步經組態以獨立於儲存於該健康資訊資料庫中之任何位址特定健康資訊而操作。
- 如請求項1之系統,其中該主機裝置被防止獨立地修改該健康資訊資料庫中之任何位址特定健康資訊。
- 如請求項1之系統,其中該位址特定健康資訊包含錯誤校正參數、程式化參數、讀取參數或其任何組合。
- 如請求項1之系統,其中該主機裝置進一步經組態以:自一檔案系統接收一檔案系統命令;自該檔案系統命令判定待存取之一實體位址;存取該健康資訊資料庫以擷取該實體位址之位址特定健康資訊;及將該經擷取位址特定健康資訊及該實體位址併入至提供至該NVM控制器之命令中。
- 一種由與非揮發性記憶體(「NVM」)通信之一記憶體控制器實施之方法,該方法包含:在一記憶體控制器處自一主機裝置接收一命令,該命令包含:一存取請求;一位址;及與該位址相關聯之位址特定健康資訊,其中該位址特定健康資訊包括指示該NVM之至少一部分降級之一 可能性之資訊;處理該位址特定健康資訊以獲得至少一NVM操作參數;及根據該至少一NVM操作參數執行該存取請求。
- 如請求項9之方法,其進一步包含:判定是否要求在該至少一操作參數中進行一改變以便執行該存取請求;回應於要求在該至少一操作參數中之一者中進行一改變以便執行該存取請求之一判定,更新該位址特定健康資訊以包括在該至少一操作參數中之該改變;及將該經更新位址特定健康資訊及該位址傳輸至該主機裝置。
- 如請求項9之方法,其中該至少一NVM操作參數包括一錯誤校正碼(「ECC」)參數。
- 如請求項9之方法,其中該至少一NVM操作參數包括一讀取參數。
- 如請求項9之方法,其中該至少一NVM操作參數包括一程式化參數。
- 如請求項9之方法,其中該存取請求為一讀取請求或一程式化請求。
- 一種非揮發性記憶體封裝,其包含:用於與一主機通信之一介面;非揮發性記憶體(「NVM」);及一控制器,其耦接至該介面及該NVM,該控制器可操 作以:自該介面接收一命令,該命令包括一存取請求、位址及健康資訊,其中該健康資訊包括指示該NVM之至少一部分降級之一可能性之資訊;處理該健康資訊以獲得至少一NVM操作參數;及根據該至少一NVM操作參數執行該存取請求。
- 如請求項15之NVM封裝,其中該控制器可進一步操作以:判定是否要求在該至少一操作參數中進行一改變以便執行該存取請求;回應於要求在該至少一操作參數中之一者中進行一改變以便執行該存取請求之一判定,更新該健康資訊以包括該至少一操作參數中之該改變;及將該經更新健康資訊及該位址傳輸至該介面。
- 如請求項15之NVM封裝,其中該至少一NVM操作參數包括一錯誤校正碼(「ECC」)參數。
- 如請求項15之NVM封裝,其中該至少一NVM操作參數包括一讀取參數。
- 如請求項15之NVM封裝,其中該至少一NVM操作參數包括一程式化參數。
- 如請求項17之NVM封裝,其進一步包含耦接至該控制器之一錯誤校正碼(「ECC」)引擎,其中該控制器指示該ECC引擎使用該ECC參數。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/285,145 US10359949B2 (en) | 2011-10-31 | 2011-10-31 | Systems and methods for obtaining and using nonvolatile memory health information |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201324520A TW201324520A (zh) | 2013-06-16 |
TWI511151B true TWI511151B (zh) | 2015-12-01 |
Family
ID=47044822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101136079A TWI511151B (zh) | 2011-10-31 | 2012-09-28 | 用於獲得及使用非揮發性記憶體健康資訊之系統及方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10359949B2 (zh) |
EP (1) | EP2587362B1 (zh) |
JP (1) | JP5749237B2 (zh) |
KR (1) | KR101394845B1 (zh) |
CN (1) | CN103092764B (zh) |
TW (1) | TWI511151B (zh) |
WO (1) | WO2013066518A1 (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245101B2 (en) | 2007-12-27 | 2012-08-14 | Sandisk Enterprise Ip Llc | Patrol function used in flash storage controller to detect data errors |
US10191742B2 (en) * | 2012-03-30 | 2019-01-29 | Intel Corporation | Mechanism for saving and retrieving micro-architecture context |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
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 |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9921980B2 (en) | 2013-08-12 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for configuring I/Os of memory for hybrid memory modules |
JP6102632B2 (ja) * | 2013-08-14 | 2017-03-29 | ソニー株式会社 | 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法 |
US9639463B1 (en) * | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
WO2015030819A1 (en) * | 2013-08-30 | 2015-03-05 | Hewlett-Packard Development Company, L.P. | Completion packet return |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9612773B2 (en) * | 2013-11-21 | 2017-04-04 | Samsung Electronics Co., Ltd. | User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
GB201322075D0 (en) | 2013-12-13 | 2014-01-29 | Ibm | Device for selecting a level for at least one read voltage |
US9619381B2 (en) * | 2013-12-24 | 2017-04-11 | International Business Machines Corporation | Collaborative health management in a storage system |
US9558107B2 (en) | 2013-12-24 | 2017-01-31 | International Business Machines Corporation | Extending useful life of a non-volatile memory by health grading |
US9418721B2 (en) * | 2014-01-21 | 2016-08-16 | International Business Machines Corporation | Determining and storing bit error rate relationships in spin transfer torque magnetoresistive random-access memory (STT-MRAM) |
US9406368B2 (en) | 2014-01-21 | 2016-08-02 | International Business Machines Corporation | Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (STT-MRAM) |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
KR20150112075A (ko) * | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US20160018998A1 (en) * | 2014-07-17 | 2016-01-21 | Sandisk Enterprise Ip Llc | Methods and Systems for Scalable Reliability Management of Non-Volatile Memory Modules |
US9569120B2 (en) * | 2014-08-04 | 2017-02-14 | Nvmdurance Limited | Adaptive flash tuning |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US9563373B2 (en) | 2014-10-21 | 2017-02-07 | International Business Machines Corporation | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management |
US10365859B2 (en) | 2014-10-21 | 2019-07-30 | International Business Machines Corporation | Storage array management employing a merged background management process |
US9990467B2 (en) * | 2014-10-24 | 2018-06-05 | Samsung Electronics Co., Ltd. | Electronic system with health monitoring mechanism and method of operation thereof |
US10339048B2 (en) | 2014-12-23 | 2019-07-02 | International Business Machines Corporation | Endurance enhancement scheme using memory re-evaluation |
US9990279B2 (en) | 2014-12-23 | 2018-06-05 | International Business Machines Corporation | Page-level health equalization |
US9785570B2 (en) * | 2015-03-09 | 2017-10-10 | Samsung Electronics Co., Ltd. | Memory devices and modules |
KR20160112439A (ko) | 2015-03-19 | 2016-09-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 동작 방법 |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US9891833B2 (en) * | 2015-10-22 | 2018-02-13 | HoneycombData Inc. | Eliminating garbage collection in nand flash devices |
CN106779008A (zh) * | 2015-11-23 | 2017-05-31 | 杭州海康威视数字技术股份有限公司 | Sd卡、摄像机和sd卡可靠性预警系统 |
US10437483B2 (en) | 2015-12-17 | 2019-10-08 | Samsung Electronics Co., Ltd. | Computing system with communication mechanism and method of operation thereof |
KR20170073792A (ko) * | 2015-12-18 | 2017-06-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20180061557A (ko) * | 2016-11-29 | 2018-06-08 | 삼성전자주식회사 | 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치 |
US11003381B2 (en) * | 2017-03-07 | 2021-05-11 | Samsung Electronics Co., Ltd. | Non-volatile memory storage device capable of self-reporting performance capabilities |
US10147475B1 (en) | 2017-05-09 | 2018-12-04 | Micron Technology, Inc. | Refresh in memory based on a set margin |
CN107220185A (zh) * | 2017-05-23 | 2017-09-29 | 建荣半导体(深圳)有限公司 | 基于闪存的数据存储方法、装置以及闪存芯片 |
US10921984B2 (en) * | 2017-06-14 | 2021-02-16 | Western Digital Technologies, Inc. | Protection of user data in data storage devices using preemptive health reporting |
JP6785204B2 (ja) | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10936205B2 (en) | 2017-10-05 | 2021-03-02 | International Business Machines Corporation | Techniques for retention and read-disturb aware health binning |
US10824352B2 (en) | 2017-12-06 | 2020-11-03 | International Business Machines Corporation | Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded |
KR20190068902A (ko) * | 2017-12-11 | 2019-06-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR102507302B1 (ko) * | 2018-01-22 | 2023-03-07 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
KR20190093361A (ko) * | 2018-02-01 | 2019-08-09 | 에스케이하이닉스 주식회사 | 호스트 및 메모리 컨트롤러를 포함하는 전자 시스템 및 이의 동작 방법 |
US10699791B2 (en) | 2018-08-24 | 2020-06-30 | International Business Machines Corporation | Adaptive read voltage threshold calibration in non-volatile memory |
CN110955609A (zh) * | 2018-09-26 | 2020-04-03 | 北京忆恒创源科技有限公司 | 用于多流、开放通道存储设备的演进的自动流跟踪(east) |
KR102589402B1 (ko) | 2018-10-04 | 2023-10-13 | 삼성전자주식회사 | 스토리지 디바이스 및 스토리지 디바이스의 동작 방법 |
US10936456B1 (en) | 2019-02-20 | 2021-03-02 | Apple Inc. | Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns |
KR20210006664A (ko) * | 2019-07-09 | 2021-01-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11150812B2 (en) * | 2019-08-20 | 2021-10-19 | Micron Technology, Inc. | Predictive memory management |
CN111722799B (zh) * | 2020-05-28 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置、设备及可读存储介质 |
US11429480B2 (en) | 2020-08-31 | 2022-08-30 | Micron Technology, Inc. | Method of demand scrubbing by placing corrected data in memory-side cache |
JP7102482B2 (ja) * | 2020-10-23 | 2022-07-19 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN116368470A (zh) * | 2020-11-04 | 2023-06-30 | 阿里巴巴集团控股有限公司 | 用于系统内封装存储架构的错误检测、预测和处理技术 |
US20220238175A1 (en) * | 2021-01-28 | 2022-07-28 | Micron Technology, Inc. | Bit retiring to mitigate bit errors |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180328A1 (en) * | 2006-01-27 | 2007-08-02 | Cornwell Michael J | Monitoring health of non-volatile memory |
US20090182962A1 (en) * | 2008-01-16 | 2009-07-16 | Apple Inc. | Memory Subsystem Hibernation |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0392895B1 (en) * | 1989-04-13 | 1995-12-13 | Sundisk Corporation | Flash EEprom system |
US5127014A (en) * | 1990-02-13 | 1992-06-30 | Hewlett-Packard Company | Dram on-chip error correction/detection |
US5517626A (en) * | 1990-05-07 | 1996-05-14 | S3, Incorporated | Open high speed bus for microcomputer system |
AU2476192A (en) * | 1991-08-16 | 1993-03-16 | Multichip Technology | High-performance dynamic memory system |
US5452418A (en) * | 1992-04-24 | 1995-09-19 | Digital Equipment Corporation | Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation |
US5353256A (en) * | 1993-06-30 | 1994-10-04 | Intel Corporation | Block specific status information in a memory device |
US5488691A (en) * | 1993-11-17 | 1996-01-30 | International Business Machines Corporation | Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes |
US5737744A (en) * | 1995-10-13 | 1998-04-07 | Compaq Computer Corporation | Disk array controller for performing exclusive or operations |
US20080320209A1 (en) * | 2000-01-06 | 2008-12-25 | Super Talent Electronics, Inc. | High Performance and Endurance Non-volatile Memory Based Storage Systems |
US6854121B2 (en) * | 2001-02-16 | 2005-02-08 | Canon U.S.A., Inc. | Command interface to object-based architecture of software components for extending functional and communicational capabilities of network devices |
US7210004B2 (en) * | 2003-06-26 | 2007-04-24 | Copan Systems | Method and system for background processing of data in a storage system |
US20050210304A1 (en) * | 2003-06-26 | 2005-09-22 | Copan Systems | Method and apparatus for power-efficient high-capacity scalable storage system |
KR100555881B1 (ko) | 2004-07-21 | 2006-03-03 | 오준택 | 잠열저장물질을 함유한 마이크로캡슐의 제조방법 |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US20070094445A1 (en) * | 2005-10-20 | 2007-04-26 | Trika Sanjeev N | Method to enable fast disk caching and efficient operations on solid state disks |
US20090070654A1 (en) * | 2006-02-09 | 2009-03-12 | International Business Machines Corporation | Design Structure For A Processor System With Background Error Handling Feature |
US7512847B2 (en) | 2006-02-10 | 2009-03-31 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
US20070214314A1 (en) * | 2006-03-07 | 2007-09-13 | Reuter James M | Methods and systems for hierarchical management of distributed data |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
JP4700562B2 (ja) * | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
JP2008198310A (ja) | 2007-02-15 | 2008-08-28 | Megachips Lsi Solutions Inc | ビットエラーの修復方法および情報処理装置 |
US8706932B1 (en) * | 2007-08-30 | 2014-04-22 | Virident Systems, Inc. | Replaceable non-volatile memory apparatus with a plurality of pluggable electrical connectors |
US8341335B2 (en) * | 2007-12-05 | 2012-12-25 | Densbits Technologies Ltd. | Flash memory apparatus with a heating system for temporarily retired memory portions |
US7805511B1 (en) | 2008-04-30 | 2010-09-28 | Netapp, Inc. | Automated monitoring and reporting of health issues for a virtual server |
DE112009002586B4 (de) | 2008-10-22 | 2022-10-13 | Techtronic Floor Care Technology Ltd. | Handstaubsauger |
JP5134569B2 (ja) * | 2009-02-23 | 2013-01-30 | ラピスセミコンダクタ株式会社 | メモリ装置 |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
JP4843693B2 (ja) | 2009-03-30 | 2011-12-21 | 株式会社東芝 | 記憶装置 |
US8316173B2 (en) * | 2009-04-08 | 2012-11-20 | International Business Machines Corporation | System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention |
US8812770B2 (en) * | 2009-07-13 | 2014-08-19 | Microsoft Corporation | Health reporting from non-volatile block storage device to processing device |
KR101678909B1 (ko) * | 2009-09-17 | 2016-11-23 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법 |
US8255006B1 (en) * | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
US20110252289A1 (en) * | 2010-04-08 | 2011-10-13 | Seagate Technology Llc | Adjusting storage device parameters based on reliability sensing |
US8819503B2 (en) * | 2010-07-02 | 2014-08-26 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
US8737138B2 (en) * | 2010-11-18 | 2014-05-27 | Micron Technology, Inc. | Memory instruction including parameter to affect operating condition of memory |
WO2012112820A2 (en) * | 2011-02-16 | 2012-08-23 | Medicity, Inc. | Sending healthcare information securely |
AU2012315702B2 (en) * | 2011-09-29 | 2015-08-20 | Cognosante Holdings, Llc | Methods and systems for intelligent routing of health information |
-
2011
- 2011-10-31 US US13/285,145 patent/US10359949B2/en active Active
-
2012
- 2012-09-24 WO PCT/US2012/056809 patent/WO2013066518A1/en active Application Filing
- 2012-09-26 EP EP12186068.8A patent/EP2587362B1/en active Active
- 2012-09-28 JP JP2012230293A patent/JP5749237B2/ja active Active
- 2012-09-28 CN CN201210504255.2A patent/CN103092764B/zh active Active
- 2012-09-28 KR KR1020120109551A patent/KR101394845B1/ko active IP Right Grant
- 2012-09-28 TW TW101136079A patent/TWI511151B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180328A1 (en) * | 2006-01-27 | 2007-08-02 | Cornwell Michael J | Monitoring health of non-volatile memory |
US20090182962A1 (en) * | 2008-01-16 | 2009-07-16 | Apple Inc. | Memory Subsystem Hibernation |
Also Published As
Publication number | Publication date |
---|---|
JP5749237B2 (ja) | 2015-07-15 |
EP2587362A3 (en) | 2013-08-28 |
CN103092764B (zh) | 2016-12-21 |
WO2013066518A1 (en) | 2013-05-10 |
JP2013097789A (ja) | 2013-05-20 |
KR101394845B1 (ko) | 2014-05-13 |
CN103092764A (zh) | 2013-05-08 |
US20130111298A1 (en) | 2013-05-02 |
US10359949B2 (en) | 2019-07-23 |
EP2587362B1 (en) | 2018-10-24 |
KR20130047578A (ko) | 2013-05-08 |
TW201324520A (zh) | 2013-06-16 |
EP2587362A2 (en) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI511151B (zh) | 用於獲得及使用非揮發性記憶體健康資訊之系統及方法 | |
US8972776B2 (en) | Partial R-block recycling | |
US11036421B2 (en) | Apparatus and method for retaining firmware in memory system | |
US10838858B2 (en) | Controller and operating method of the same | |
US20130173954A1 (en) | Method of managing bad storage region of memory device and storage device using the method | |
US11921630B2 (en) | Memory system and operating method thereof | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20150052415A1 (en) | Data storage device, operating method thereof and data processing system including the same | |
US11269722B2 (en) | Apparatus for diagnosing memory system and operating method thereof | |
US10901891B2 (en) | Controller and operation method thereof | |
US11656785B2 (en) | Apparatus and method for erasing data programmed in a non-volatile memory block in a memory system | |
US20190347197A1 (en) | Memory system and operating method thereof | |
US10942848B2 (en) | Apparatus and method for checking valid data in memory system | |
US10747664B2 (en) | Memory system and operating method thereof | |
CN113590503B (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
US10678633B2 (en) | Memory system and operating method thereof | |
US10783074B2 (en) | Controller for performing garbage collection, method for operating the same, and memory system including the same | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
CN113590502A (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
TWI783522B (zh) | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |