TW202536660A - 記憶體系統中之動態隨機存取記憶體中毒物表的引入 - Google Patents
記憶體系統中之動態隨機存取記憶體中毒物表的引入Info
- Publication number
- TW202536660A TW202536660A TW113149792A TW113149792A TW202536660A TW 202536660 A TW202536660 A TW 202536660A TW 113149792 A TW113149792 A TW 113149792A TW 113149792 A TW113149792 A TW 113149792A TW 202536660 A TW202536660 A TW 202536660A
- Authority
- TW
- Taiwan
- Prior art keywords
- mapping entry
- memory
- data
- mapping
- entry
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申請案係關於管理記憶體裝置上之錯誤。該記憶體裝置包括儲存資料之非揮發性記憶體(NVM)以及儲存一邏輯至實體(L2P)表及一毒物表之動態隨機存取記憶體(DRAM)。該記憶體裝置獲得用以存取儲存於該NVM中之一資料項目之一資料存取請求,且該資料存取請求包括該資料項目的一邏輯位址。該記憶體裝置在該L2P表中識別對應於該資料項目之該邏輯位址之一映射條目,且該映射條目將該資料項目之該邏輯位址映射至該NVM內的該資料項目之一實體位址,且判定該映射條目具有一不可校正錯誤。根據該判定,該記憶體裝置在該毒物表中添加識別該L2P表中之該映射條目的索引。
Description
本申請案大體上係關於記憶體管理,包括但不限於用於管理儲存於記憶體系統(例如,固態硬碟(SSD))中之資料中存在的資料故障或錯誤的方法、系統及非暫時性電腦可讀儲存媒體。
記憶體應用於電腦系統中以儲存指令及資料。資料由電腦系統之一或多個處理器根據儲存於記憶體中之指令進行處理。在電腦系統之不同部分中使用多個記憶體單元以服務於不同功能。具體而言,電腦系統包括非揮發性記憶體,其充當輔助記憶體以在電腦系統自電源解耦時保持儲存於其上之資料。輔助記憶體之實例包括但不限於硬碟機(HDD)及固態硬碟(SSD)。SSD故障及錯誤常常導致SSD斷言且導致使用者資料之部分或完全丟失。實例為不可校正動態隨機存取記憶體(DRAM)錯誤。當SSD經歷不可校正DRAM錯誤時,啟用SSD斷言,且經斷言之磁碟可導致使用者資料之大量或完全丟失,此需要SSD客戶花費數小時自冗余備份重建SSD,或在不存在冗餘複本之情況下面臨關鍵使用者資料之丟失。開發一種在記憶體系統(特定言之,在輔助記憶體之DRAM中)中有效管理資料故障或錯誤的解決方案將為有益的。
本申請案之各種實施例係關於用於管理儲存於記憶體系統(例如,一或多個SSD)之DRAM中的資料中存在之資料故障或錯誤的方法、系統、裝置、非暫時性電腦可讀儲存媒體。DRAM儲存邏輯至實體(L2P)映射表,該映射表包括將與可執行程式相關聯之複數個邏輯位址轉譯為記憶體系統中之複數個實體位址的複數個映射條目。L2P映射表中之資料錯誤常常導致通常藉由持續數小時之磁碟斷言操作修復之致命資料丟失。本申請案引入毒物表(poison table)以有效管理L2P表中之資料故障或錯誤。具體而言,毒物表追蹤L2P表中之資料故障或錯誤且允許基於對應資料之不同使用而自適應地修復此等故障或錯誤,藉此避免實施可持續數小時之磁碟斷言操作。換言之,本申請案之一些實施係關於應用毒物表來控制位於記憶體系統之DRAM中的L2P表中之資料錯誤。若主機消耗資料,則耦接至主機之記憶體裝置系統除了毒物表中標記之中毒資料(poisoned data)之外保持可用,且主機被給予覆寫或修整中毒資料之選項。基於毒物表,記憶體系統藉由避免由未消耗之不可校正錯誤引起之靜默資料損毀(silent data corruption)及磁碟斷言來增強其可靠性、可服務性、可用性及ARF。
在一個態樣中,實施一種用於管理儲存於記憶體裝置之DRAM中之資料中存在的資料故障或錯誤的方法。該記憶體裝置包括儲存資料之非揮發性記憶體(NVM)以及儲存一邏輯至實體(L2P)表及一毒物表之動態隨機存取記憶體(DRAM)。該方法包括獲得用以存取儲存於該NVM中之一資料項目之一資料存取請求。該資料存取請求包括該資料項目之一邏輯位址。該方法進一步包括在該L2P表中識別對應於該資料項目之該邏輯位址之一映射條目。該映射條目將該資料項目之該邏輯位址映射至該NVM內的該資料項目之一實體位址。該方法進一步包括判定該映射條目具有一不可校正錯誤,及根據該映射條目具有該不可校正錯誤之一判定,在一毒物表中添加識別該L2P表中之該映射條目的一索引。
在一些實施例中,該方法進一步包括根據該映射條目具有該不可校正錯誤之一判定,將儲存於該DRAM中之該L2P表中的該映射條目標記為無效。在一些實施例中,該方法進一步包括經由一毒物指示訊息將該映射條目之該不可校正錯誤報告至耦接至該記憶體裝置之一主機裝置。
本申請案之一些實施包括電子裝置或記憶體系統。該電子裝置或記憶體系統包括:一控制器;一記憶體裝置,其耦接至該控制器且包括局部控制電路系統;及記憶體,其上儲存有指令,該等指令在由該記憶體裝置執行時使得該記憶體裝置執行以上方法中之任一者。
本申請案之一些實施包括一種記憶體裝置,該記憶體裝置包括控制電路系統及其上儲存有指令之記憶體,該等指令在由該控制電路系統執行時使得該控制電路系統執行以上方法中之任一者。
一些實施包括一種非暫時性電腦可讀儲存媒體,其儲存一或多個程式。該一或多個程式包括指令,該等指令在由一記憶體裝置執行時使得該記憶體裝置實施以上方法中之任一者。
提及此等說明性實施例及實施並非為了限制或限定本揭示,而是提供實例以輔助理解本揭示。在實施方式中論述額外實施例且在彼處提供進一步描述。
相關申請案
本申請案為2023年12月22日申請之名稱為「Introduction of Poison Table in Dynamic Random Access Memory in a Memory System」之美國專利申請案第18/395,284號之部分接續專利申請案且主張該申請案之優先權,該申請案特此以全文引用之方式併入。
現將詳細參考特定實施例,其實例繪示於隨附圖式中。在以下詳細描述中,闡述眾多非限制性特定細節以便協助理解本文中所呈現之主題。但一般熟習此項技術者將顯而易見,可在不脫離申請專利範圍之範疇的情況下使用各種替代方案,且可在無此等特定細節之情況下實踐主題。舉例而言,一般熟習此項技術者將顯而易見,本文中所呈現之主題可使用輔助儲存器實施於許多類型之電子裝置上。
本申請案之各種實施例係關於用於管理儲存於記憶體系統(例如,一或多個SSD)之DRAM中的資料中存在之資料故障或錯誤的方法、系統、裝置、非暫時性電腦可讀儲存媒體。DRAM儲存邏輯至實體(L2P)映射表及毒物表。L2P映射表包括將與可執行程式相關聯之複數個邏輯位址轉譯為記憶體系統中之複數個實體位址的複數個映射條目。本申請案之一些實施係關於應用毒物表來控制位於記憶體系統之DRAM中的L2P表中之資料錯誤,藉此增強關於資料丟失及恢復時間之記憶體效能。資料恢復事件經實施以使用毒物表基於DRAM中之錯誤位置來校正資料錯誤。此等資料恢復事件持續幾毫秒,此與執行斷言恢復及磁碟重建之SSD斷言模式或狀態另外所花費之幾個小時相比顯著縮短。
本申請案之一些實施藉由通過引入毒物表將與錯誤相關聯之主機資料標記為中毒來解決與不可校正錯誤(例如,與L2P表相關聯之DRAM錯誤)相關聯的問題。若主機消耗資料,則除如毒物表中標記之中毒資料之外,儲存於記憶體系統中之資料保持對主機可用。主機被給予覆寫或修整中毒資料之選項。基於毒物表,記憶體系統避免由未消耗不可校正錯誤引起之靜默資料損毀及磁碟斷言,且改良處置所消耗DRAM錯誤之效率。藉由此等手段,毒物表有助於改良記憶體系統(例如,一或多個SSD)之可靠性、可服務性、可用性及年故障率(AFR),藉此增加未中毒資料之磁碟可用性。
圖1為根據一些實施例的典型電子系統中之實例系統模組100的方塊圖。此電子系統中之系統模組100至少包括:處理器模組102;記憶體模組104,其用於儲存程式、指令及資料;輸入/輸出(I/O)控制器106;一或多個通信介面,諸如網路介面108;及一或多個通信匯流排140,其用於將此等組件互連。在一些實施例中,I/O控制器106允許處理器模組102經由通用串列匯流排介面與I/O裝置(例如,鍵盤、滑鼠或觸控板)通信。在一些實施例中,網路介面108包括用於Wi-Fi、乙太網路及藍牙網路之一或多個介面,各自允許電子系統與例如伺服器或另一電子系統之外部源交換資料。在一些實施例中,通信匯流排140包括電路系統(有時被稱為晶片組),該電路系統將包括於系統模組100中之各種系統組件互連且控制其間的通信。
在一些實施例中,記憶體模組104包括高速隨機存取記憶體,諸如靜態隨機存取記憶體(SRAM)、雙資料速率(DDR)動態隨機存取記憶體(DRAM)或其他隨機存取固態記憶體裝置。在一些實施例中,記憶體模組104包括非揮發性記憶體,諸如一或多個磁碟儲存裝置、光碟儲存裝置、快閃記憶體裝置或其他非揮發性固態儲存裝置。在一些實施例中,記憶體模組104或替代地記憶體模組104內之一或多個非揮發性記憶體裝置包括非暫時性電腦可讀儲存媒體。在一些實施例中,在系統模組100上保留記憶體槽以用於收納記憶體模組104。一旦插入至記憶體槽中,記憶體模組104便整合至系統模組100中。
在一些實施例中,系統模組100進一步包括選自記憶體控制器110、一或多個SSD 112、HDD 114、功率管理積體電路(PMIC) 118、圖形模組120及聲音模組122之一或多個組件。記憶體控制器110經組態以控制電子系統中的處理器模組102與包括記憶體模組104之記憶體組件之間的通信。一或多個SSD 112經組態以應用積體電路總成以將資料儲存於電子系統中,且在許多實施例中係基於NAND或NOR記憶體組態。HDD 114為用於基於機電磁碟來儲存及擷取數位資訊之習知資料儲存裝置。電源連接器116經電耦接以接收外部電源。PMIC 118經組態以視電子系統內之各種組件或電路(例如,處理器模組102)的需要而將所接收之外部電源調變至其他所要DC電壓位準,例如5 V、3.3 V或1.8 V。圖形模組120經組態以根據一或多個顯示裝置之期望影像/視訊格式而產生輸出影像至該一或多個顯示裝置之饋送。聲音模組122經組態以促進在電腦程式之控制下將音訊信號輸入至電子系統及自電子系統輸出音訊信號。
替代地或另外,在一些實施例中,系統模組100進一步包括直接耦接至I/O控制器106之一或多個SSD 112'。相對而言,SSD 112耦接至通信匯流排140。在一實例中,通信匯流排140遵照快速周邊組件互連(PCIe或PCI-E)操作,該快速周邊組件互連為用於將處理器模組102互連至一或多個周邊裝置及包括組件110至122之各種系統組件且控制該一或多個周邊裝置及各種系統組件的串列擴展匯流排標準。
此外,熟習此項技術者知曉可使用其他非暫時性電腦可讀儲存媒體,此係因為新的資料儲存技術經開發以用於將資訊儲存於記憶體模組104、一或多個SSD 112及112'以及HDD 114中之非暫時性電腦可讀儲存媒體中。此等新的非暫時性電腦可讀儲存媒體包括但不限於由生物材料、奈米線、碳奈米管及個別分子製成之媒體,即使各別資料儲存技術當前處於開發中且尚未商業化。
圖2為根據一些實施例的具有一或多個記憶體存取佇列之實例電子裝置之記憶體系統200的方塊圖。記憶體系統200耦接至主機裝置220 (例如,圖1中之處理器模組102),且經組態以長時間地儲存指令及資料,例如當電子裝置睡眠、休眠或關機時。主機裝置220經組態以存取儲存於記憶體系統200中之指令及資料,且處理指令及資料以運行作業系統並執行使用者應用程式。記憶體系統200包括一或多個記憶體裝置240 (例如,一或多個SSD)。各記憶體裝置240進一步包括控制器202及複數個記憶體通道204 (例如,通道204A、204B及204N)。各記憶體通道204包括複數個記憶體胞元。控制器202經組態以執行韌體層級軟體以將複數個記憶體通道204橋接至主機裝置220。在一些實施例中,各記憶體裝置240形成於印刷電路板(PCB)上。
各記憶體通道204包括一或多個記憶體封裝206 (例如,兩個記憶體晶粒)。在一實例中,各記憶體封裝206 (例如,記憶體封裝206A或206B)對應於記憶體晶粒。各記憶體封裝206包括複數個記憶體平面208,且各記憶體平面208進一步包括複數個記憶體頁面210。各記憶體頁面210包括記憶體胞元之有序集合,且各記憶體胞元由各別實體位址識別。在一些實施例中,記憶體裝置240包括複數個超級區塊。各超級區塊包括複數個記憶體區塊,其中之各者進一步包括複數個記憶體頁面210。對於各超級區塊,複數個記憶體區塊經組態以經由記憶體輸入/輸出(I/O)介面並行地寫入至記憶體系統中及自該記憶體系統讀取。視情況,各超級區塊對分佈於複數個記憶體平面208、複數個記憶體通道204及複數個記憶體晶粒206上之記憶體胞元進行分組。在一實例中,各超級區塊包括記憶體頁面之至少一個集合,其中各頁面分佈於複數個記憶體晶粒206中之相異者上,具有相同晶粒、平面、區塊及頁面名稱,且經由相異記憶體晶粒206之相異通道被存取。在另一實例中,各超級區塊包括記憶體區塊之至少一個集合,其中各記憶體區塊分佈於複數個記憶體晶粒206中之相異者上,包括複數個頁面,具有相同晶粒、平面及區塊名稱,且經由相異記憶體晶粒206之相異通道被存取。記憶體裝置240將超級區塊之有序清單的資訊儲存於記憶體裝置240之快取記憶體中。在一些實施例中,快取記憶體藉由主機裝置220之主機驅動器管理,且被稱為主機管理快取記憶體(HMC)。
在一些實施例中,記憶體裝置240包括單層級胞元(SLC) NAND快閃記憶體晶片,且各記憶體胞元儲存單一資料位元。在一些實施例中,記憶體裝置240包括多層級胞元(MLC) NAND快閃記憶體晶片,且MLC NAND快閃記憶體晶片之各記憶體胞元儲存2個資料位元。在一實例中,三層級胞元(TLC) NAND快閃記憶體晶片之各記憶體胞元儲存3個資料位元。在另一實例中,四層級胞元(QLC) NAND快閃記憶體晶片之各記憶體胞元儲存4個資料位元。在又另一實例中,五層級胞元(PLC) NAND快閃記憶體晶片之各記憶體胞元儲存5個資料位元。在一些實施例中,各記憶體胞元可儲存任何合適數目個資料位元。相比於非SLC NAND快閃記憶體晶片(例如,MLC SSD、TLC SSD、QLC SSD、PLC SSD),具有SLC NAND快閃記憶體晶片之SSD以較高速度、較高可靠性及較長使用壽命操作,然而,具有較低裝置密度及較高價格。
各記憶體通道204耦接至各別通道控制器214 (例如,控制器214A、214B或214N),該各別通道控制器經組態以控制用以存取各別記憶體通道204中之記憶體胞元的內部及外部請求。在一些實施例中,各記憶體封裝206 (例如,各記憶體晶粒)對應於記憶體存取請求之各別佇列216 (例如,佇列216A、216B或216N)。在一些實施例中,各記憶體通道204對應於記憶體存取請求之各別佇列216。另外,在一些實施例中,各記憶體通道204對應於記憶體存取請求之相異且不同的佇列216。在一些實施例中,複數個記憶體通道204之子集(少於全部)對應於記憶體存取請求之相異佇列216。在一些實施例中,記憶體裝置240之所有複數個記憶體通道204對應於記憶體存取請求之單一佇列216。各記憶體存取請求視情況在內部自記憶體裝置240接收以管理各別記憶體通道204,或在外部自主機裝置220接收以寫入或讀取儲存於各別通道204中之資料。具體而言,各記憶體存取請求包括以下中之一者:系統寫入請求,其自記憶體裝置240接收以寫入至各別記憶體通道204;系統讀取請求,其自記憶體裝置240接收以自各別記憶體通道204讀取;主機寫入請求,其源自主機裝置220以寫入至各別記憶體通道204;及主機讀取請求,其自主機裝置220接收以自各別記憶體通道204讀取。應注意,系統讀取請求(亦被稱為背景讀取請求或非主機讀取請求)及系統寫入請求由記憶體控制器分派以實施內部記憶體管理功能,包括但不限於廢料收集、耗損均衡、讀取干擾緩解、記憶體快照捕獲、記憶體鏡像處理、快取及記憶體備用。
在一些實施例中,除了通道控制器214以外,控制器202進一步包括局部記憶體處理器218、主機介面控制器222、SRAM緩衝器224及DRAM控制器226。局部記憶體處理器218基於記憶體存取請求之一或多個佇列216而存取複數個記憶體通道204。在一些實施例中,局部記憶體處理器218基於記憶體區塊而寫入至複數個記憶體通道204中及自該複數個記憶體通道讀取。一或多個記憶體區塊之資料被聯合地寫入至複數個通道中或自複數個通道讀取。同一記憶體區塊中之資料不會經由多於一個操作被並行地寫入。各記憶體區塊視情況對應於一或多個記憶體頁面。在一實例中,待聯合地在複數個記憶體通道204中寫入或讀取之各記憶體區塊具有16 KB之大小(例如,一個記憶體頁面)。在另一實例中,待聯合地在複數個記憶體通道204中寫入或讀取之各記憶體區塊具有64 KB之大小(例如,四個記憶體頁面)。在一些實施例中,各頁面具有16 KB使用者資料及2 KB後設資料。另外,可針對系統讀取、主機讀取、系統寫入及主機寫入操作中之各者組態待聯合地存取之記憶體區塊之數目及各記憶體區塊之大小。
在一些實施例中,局部記憶體處理器218將待寫入至複數個記憶體通道204中之各記憶體區塊中或自該各記憶體區塊讀取的資料儲存於控制器202之SRAM緩衝器224中。替代地,在一些實施例中,局部記憶體處理器218例如藉助於DRAM控制器226將待寫入至複數個記憶體通道204中之各記憶體區塊中或自該各記憶體區塊讀取的資料儲存於包括於記憶體裝置240中之DRAM緩衝器228A中。替代地,在一些實施例中,局部記憶體處理器218將待寫入至複數個記憶體通道204中之各記憶體區塊中或自該各記憶體區塊讀取的資料儲存於DRAM緩衝器228B中,該DRAM緩衝器為由處理器模組102 (圖1)使用之主記憶體。控制器202之局部記憶體處理器218經由主機介面控制器222存取DRAM緩衝器228B。
在一些實施例中,複數個記憶體通道204中之資料經分組為編碼區塊,且各編碼區塊稱為碼字(例如,圖3中之302)。舉例而言,各碼字包括
n個位元,其中
k個位元對應於使用者資料,且(
n–
k)對應於使用者資料之完整性資料,其中
k及
n為正整數。在一些實施例中,記憶體裝置240包括完整性引擎230 (例如,LDPC引擎)及包括複數個暫存器或SRAM胞元或正反器且耦接至完整性引擎230之暫存器232。完整性引擎230經由通道控制器214及SRAM緩衝器224耦接至記憶體通道204。具體而言,在一些實施例中,完整性引擎230具有至SRAM緩衝器224之資料路徑連接,該SRAM緩衝器進一步經由由局部記憶體處理器218控制之資料路徑連接至通道控制器214。完整性引擎230經組態以驗證資料完整性且校正記憶體通道204之各編碼區塊的位元錯誤。
在本申請案之一些實施中,記憶體裝置240包括儲存資料之NVM (例如,記憶體通道204)以及儲存邏輯至實體(L2P)表234及毒物表236之DRAM 228A兩者。記憶體裝置240自主機220獲得資料存取請求以存取儲存於記憶體通道204之記憶體頁面210中之資料項目,且資料存取請求包括資料項目的邏輯位址。L2P表234包括對應於資料項目之邏輯位址之映射條目,且映射條目將資料項目之邏輯位址映射至記憶體通道204之記憶體頁面210內的資料項目之實體位址。記憶體裝置240判定映射條目具有不可校正錯誤。根據映射條目具有不可校正錯誤之判定,記憶體裝置240在毒物表236中添加識別L2P表234中之映射條目的索引。換言之,毒物表236儲存於記憶體裝置240之DRAM 228A中,且應用於追蹤L2P表234之具有不可校正錯誤的一或多個映射條目。儲存於毒物表236中之資訊進一步用於以自適應性方式促進記憶體操作,藉此阻止記憶體裝置240進入中斷記憶體裝置240之正常操作的斷言模式或狀態,且可持續延長之持續時間(例如,在一些情形下為數小時)。
圖3為根據一些實施例的包括記憶體控制器202之DRAM 228A中之毒物表236之實例記憶體裝置240的方塊圖。記憶體裝置240耦接至主機220 (例如,記憶體模組100之處理器模組102),且包括控制器202、非揮發性記憶體(NVM) 302及DRAM 228A。NVM 302包括複數個記憶體通道204,該複數個記憶體通道中之各者進一步包括複數個記憶體頁面210,且若記憶體裝置240自電源解耦,則保持儲存于NVM 302之資料。控制器202進一步包括運行用於記憶體裝置240之韌體程式的一或多個處理器核心218、暫時儲存由一或多個處理器核心218使用之指令及資料的末級快取記憶體304以及控制DRAM 228A以提供由一或多個處理器核心218使用之指令、資料或相關聯資訊的DRAM控制器226。在一些實施例中,DRAM 228A具有單獨基板,且控制器202包括機械及電耦接至DRAM 228A之系統單晶片(SoC)。
耦接至記憶體裝置240之控制器202之DRAM 228A儲存L2P表234及毒物表236。記憶體裝置240接收資料存取請求306以存取儲存於NVM 302上(例如,NVM 302之記憶體頁面210上)之資料項目308。資料存取請求306包括邏輯位址310,自由主機220或控制器202執行之程式之視角來看,儲存資料項目308之記憶體頁面210顯現為駐存於該邏輯位址處。資料存取請求306之實例包括對需要基於邏輯位址310而自NVM 302提取之資料項目308之相關聯記憶體操作的讀取請求、寫入請求及資料驗證請求。基於邏輯位址310,控制器202在L2P表234中識別對應於資料項目308之邏輯位址310之映射條目312。映射條目312將資料項目308之邏輯位址310映射至NVM 302內的資料項目306之實體位址314。控制器202判定映射條目312具有不可校正錯誤。根據映射條目312具有不可校正錯誤之判定,控制器202在毒物表236中添加識別L2P表234中之映射條目312的索引316。
在一些實施例中,根據映射條目312具有不可校正錯誤之判定,記憶體裝置240將儲存於DRAM中之L2P表中的映射條目312標記為無效。映射條目312包括複數個位元(例如,32個位元),且複數個位元之子集經應用以指示映射條目312是否中毒。舉例而言,映射條目312之32個位元中之最後一個位元用於指示映射條目312的有效性狀態,且等於兩個相異值中之一者,例如,「0」(例如,指示映射條目312有效)及「1」(例如,指示映射條目312無效)。在一些實施例中,根據映射條目312具有不可校正錯誤之判定,記憶體裝置240中止斷言不可校正錯誤及重建映射條目312兩者。實情為,具有不可校正錯誤之映射條目312係由毒物表236追蹤,且映射條目312視情況經標記,藉此允許記憶體裝置基於後續記憶體操作自適應地管理不可校正錯誤。
在一些實施例中,回應於資料存取請求306,控制器202將儲存於L2P表234之映射條目312中之資料載入至資料快取記憶體304A (例如,包括於末級快取記憶體304中)中。在判定映射條目312具有不可校正錯誤之後,控制器202在錯誤快取記憶體304B (例如,包括於末級快取記憶體304中)記錄不可校正錯誤之包括L2P表234中之錯誤位址及錯誤類型之資訊。儲存於映射條目312中之資料自資料快取記憶體304A逐出,而不進行資料回寫。基於記錄於錯誤快取記憶體304B中之不可校正錯誤之資訊而將索引316添加至毒物表236中。
在一些實施例中,在偵測到映射條目312中之不可校正錯誤後,控制器202經由毒物指示訊息318將映射條目312之不可校正錯誤報告至耦接至記憶體裝置340之主機220。此外,在一些實施例中,回應於毒物指示訊息318,主機220發出錯誤校正指令320,且控制器接收錯誤校正指令320,重寫NVM 302中之資料項目308,且藉由用於經重寫資料項目308之經更新映射條目更新L2P表234。下文參考圖4解釋關於錯誤校正之更多細節。
在一些實施例中,DRAM 228A之一部分對應於將邏輯位址映射至記憶體頁面210之實體位址的L2P表234。該部分大於L2P大小臨限值(例如,80%)。DRAM 228A之大小隨記憶體裝置240之大小(例如,由多個記憶體頁面210量測)而增加。在一實例中,DRAM 228A之對應於L2P表234之部分(例如,具有1 GB)的大小比DRAM 228A之用於儲存韌體程式碼及資料之其餘部分(例如,具有1 MB)的大小高三個數量級。
在一些實施例中,具有不可校正錯誤之映射條目312經應用以識別未由主機220消耗之資料項目308之實體位址314。韌體程式經實施以將具有不可校正錯誤之映射條目312之資訊記錄於毒物表236中。記憶體裝置240並不即刻開始對不可校正錯誤之斷言操作。記憶體裝置240視情況覆寫映射條目312,同時至少表示映射條目312丟失或損毀。此狀態被定義為「中毒」。如上文所解釋,根據映射條目312具有不可校正錯誤之判定,記憶體裝置240在毒物表236中添加識別L2P表234中之映射條目312的索引316。在一些實施例中,記憶體裝置240亦在儲存於DRAM 228A中之L2P表234中將映射條目312自身標記為無效。
在一實例中,儲存於DRAM 228A中之64位元資料塊藉由8位元錯誤校正碼(例如,使用單錯誤校正及雙錯誤偵測(SECDED)方法形成)保護。各映射條目312具有32個位元,且表示4 KB記憶體頁面210。各64位元資料塊包括識別兩個4 KB記憶體頁面210 (亦即,總共儲存8 KB資料)的兩個映射條目。
在一些實施例中,與映射條目312相關聯之資料項目308未被消耗,且映射條目312被標記為中毒及無效。寫入操作(例如,與寫入請求322相關聯)在儲存於DRAM 228A中之映射條目312上實施,以覆寫不可校正錯誤,藉此消除DRAM 228A中之不可校正錯誤在額外位元翻轉之後轉換為靜默資料損毀的可能性。更有效的機制係將映射條目312標記為無效且維持識別毒物表236中之映射條目312的索引316。在一些實施例中,回應於讀取請求324,記憶體裝置240基於將其自身標記為無效之映射條目312之一或多個位元而判定映射條目312無效,且根據映射條目312無效之判定來檢查毒物表。記憶體裝置240進一步偵測識別毒物表236中之映射條目312的索引316,且判定映射條目312具有不可校正錯誤。另外,在一些實施例中,根據在毒物表236中識別到之索引316,記憶體裝置240視情況回應於寫入請求322而將寫入或修整操作應用於映射條目312以清除不可校正錯誤。寫入操作運用下一映射條目312覆寫L2P表中之具有不可校正錯誤之映射條目312,且自毒物表236清除識別具有不可校正錯誤之映射條目312的索引316。
圖4為繪示根據一些實施例的儲存毒物表236之實例DRAM 228A之資料結構的圖。DRAM 228A包括除毒物表236之外的L2P表234。毒物表236被添加至DRAM 228A中以追蹤L2P表234之具有不可校正錯誤之映射條目。在一些實施例中,L2P表234儲存將複數個邏輯位址310轉譯為複數個實體位址314之複數個映射條目402。對於各映射條目402,各別邏輯位址310包括自由主機220或控制器202執行之程式之視角來看儲存各別資料項目308之記憶體頁面210顯現為駐存於其中的位址,且各別實體位址314指示各別資料項目308實體上儲存於記憶體裝置240之NVM 302中的位置。在一實例中,實體位址314大於資料位元組長度(例如,具有16個位元),且對應映射條目402包括至少兩個資料位元組。另外,DRAM 228A儲存毒物表236,該毒物表包括一或多個索引316且識別具有不可校正錯誤之複數個映射條目402的子集(例如,圖3中之映射條目312)。舉例而言,複數個映射條目402之子集包括分別由第一索引316A及第二索引316B識別的第一映射條目312A及第二映射條目312B。映射條目312A及312B中之各者具有至少一個錯誤位元。
在一些實施例中,在毒物表236中識別且追蹤具有不可校正錯誤之映射條目312 (例如,312A)之後,記憶體裝置240之控制器202接收錯誤校正指令320。記憶體裝置240之控制器202重寫NVM 302中之資料項目308,且藉由用於經重寫資料項目308之經更新映射條目402N更新L2P表234。具體而言,在一些實施例中,重寫資料項目308之複本且將其儲存於NVM 302之新實體位址314R中。新實體位址314R視情況相同於或不同於具有不可校正錯誤之映射條目312的實體位址314。針對映射條目312之邏輯位址310產生新映射條目402N以將邏輯位址310映射至資料項目308之經重寫複本之新實體位址314R。新映射條目402N儲存於L2P表234中。控制器202清除(操作404)與對應於毒物表236中之資料項目308之邏輯位址310的映射條目312 (例如,312A)相關聯之索引316 (例如,316A)。在一些實施例中,此錯誤校正指令320係在資料存取請求306之後實施,該資料存取請求已導致偵測到具有不可校正錯誤之映射條目312。在一些實施例中,此錯誤校正指令320係在資料讀取請求324之後實施。
在一些實施例中,記憶體裝置240自主機220接收用以存取儲存於NVM 302中之資料項目308的資料存取請求306,且資料項目308由主機220消耗且可即刻或延遲地導致資料中止操作(例如,斷言操作)。在一些情形下,斷言操作導致儲存於記憶體裝置240中之使用者資料完全或部分丟失。在本申請案之各種實施例中,韌體程式包括經組態以啟用將具有不可校正錯誤之映射條目312標記為中毒(亦即,無效)之資料中止操作的資料中止處理常式。
在一些實施例中,資料存取請求306包括寫入請求。映射條目312在L2P表234中被讀取,但根據映射條目312在毒物表236中經標記為中毒之判定,將不使用該映射條目。在一些實施例中,參考圖4,記憶體頁面210 (例如,具有4 KB之大小)之寫入請求包括對應於一個映射條目312A的邏輯位址310。偵測到不可校正錯誤,例如影響兩個條目312A及402A。字條目402A與未寫入之實體位址相關聯。兩個條目中之一者(亦即,映射條目312A)具有不可校正錯誤,且在毒物表236中被標記為中毒。兩個條目中之另一者(亦即,字條目402A)具有不可校正錯誤且不用於位址映射,且因此,字條目402A不在毒物表236中被追蹤。在一些實施例中,回應於寫入請求,即刻將不可校正錯誤報告至主機220。
相對而言,在一些實施例中,回應於資料存取請求306 (例如,其包括寫入請求),不即刻將不可校正錯誤報告至主機220。韌體程式之執行繼續。具有不可校正錯誤之映射條目312在L2P表234、毒物表236或兩者中被標記為中毒。具體而言,在L2P表234中標記映射條目,且毒物表236添加有識別映射條目之索引。另外,在一些實施例中,後續寫入操作(例如,與圖3中之寫入請求322相關聯)覆寫在自主機220接收到另一資料存取請求之前標記的映射條目以使用對應資料項目308。不需要報告L2P表234中之映射條目312中毒。換言之,在主機220使用無效映射條目312及相關聯資料項目308之前,L2P表234已回應於後續寫入請求322而更新以清除L2P表234中之映射條目312的不可校正錯誤。
圖5A為根據一些實施例的存取經由L2P表234之具有不可校正錯誤之映射條目定址的未消耗資料之實例程序500的流程圖。自主機220接收到之資料存取請求306包括用以讀取與邏輯位址310相關聯且儲存於記憶體裝置240中之資料項目308的資料讀取請求324 (操作502)。L2P表234儲存對應於所請求資料項目308之邏輯位址310之映射條目312,且映射條目312將資料項目308之邏輯位址310映射至記憶體裝置240內的資料項目308之實體位址314。記憶體裝置240之控制器202判定映射條目312具有不可校正錯誤。在一些情形下,資料項目308並未由主機220消耗。映射條目312之不可校正錯誤不需要在偵測到錯誤後即刻清除,只要其可在與資料項目308相關聯之下一記憶體請求實施之前得到校正即可。
在一些實施例中,回應於資料存取請求306,在判定映射條目312具有不可校正錯誤之後,記憶體裝置240之控制器202記錄(操作504)不可校正錯誤之包括L2P表234中之錯誤位址及錯誤類型的資訊。控制器202將資料(例如,儲存於L2P表234之映射條目312中之資料、不可校正錯誤之資訊)載入(操作506)至末級快取記憶體304中。儲存於映射條目312中之資料自快取記憶體304逐出(操作508),而不進行資料回寫。韌體程式避免(操作510)斷言操作之實施。實情為,在一些實施例中,韌體程式判定(操作512)錯誤位址,且使L2P表234中之映射條目312無效(操作514)。基於記錄於錯誤快取記憶體304B中之不可校正錯誤之資訊而將索引316添加(操作516)至毒物表236中。
在一些實施例中,在讀取請求324之前,對應於具有不可校正錯誤之映射條目312的資料項目306已重寫(操作518),且映射條目312自毒物表236清除。換言之,包括於讀取請求324中之映射條目402並不具有任何不可校正錯誤,且有效(操作520)。
相對而言,在一些實施例中,在讀取請求324之前,對應於具有不可校正錯誤之映射條目312的資料項目306尚未被校正。控制器202檢查(操作522)毒物表236。根據映射條目312具有不可校正錯誤之判定,記憶體裝置240之控制器202將指示對應於所請求資料項目308之邏輯位址310的映射條目312中毒(例如,具有不可校正錯誤)之訊息318發送(操作524)至主機220。此外,在一些實施例中,回應於接收到指示不可校正錯誤之訊息,主機220發送(操作526)請求320或指令322以寫入或修整資料項目308以清除映射條目312之不可校正錯誤。
圖5B為根據一些實施例的寫入經由L2P表234之具有不可校正錯誤之映射條目312定址的資料項目308之實例程序550的流程圖。資料項目308與邏輯位址310相關聯且儲存於記憶體裝置240之實體位址314中。L2P表234儲存將資料項目308之邏輯位址310映射至記憶體裝置240內的資料項目308之實體位址314之映射條目312。記憶體裝置240之控制器202判定映射條目312具有不可校正錯誤,且添加識別DRAM 228A之毒物表236中之映射條目312的索引316。在一些情形下,在記憶體裝置240之控制器202接收存取及使用資料項目308之請求之前,重寫資料項目308以清除映射條目312之不可校正錯誤。舉例而言,重寫資料項目308且緊接在偵測及標記錯誤之後在毒物表236中清除索引316。
在一些實施例中,自主機220接收到之資料存取請求306包括(操作552)用以寫入之資料寫入請求322,或用以校正之錯誤校正指令320,且資料項目308具有邏輯位址310 (例如,對應於具有4 KB之大小的記憶體頁面210)。L2P表234儲存對應於資料項目308之邏輯位址310之映射條目312,且映射條目312將資料項目308之邏輯位址310映射至資料項目將儲存於記憶體裝置240內之實體位址314。在一些情形下,控制器202獲得(操作554)一或多個映射條目402 (例如,包括映射條目312)及相關聯錯誤校正碼(ECC)。在一實例中,每兩個映射條目402 (例如,總共具有64個位元)共用同一ECC (例如,具有8個位元)。控制器202判定映射條目312具有不可校正錯誤,藉此導致控制器202之DRAM控制器226及一或多個處理器核心218均中止(操作556及558)使用具有不可校正錯誤之映射條目312。韌體程式識別(操作560)與寫入請求322相關聯之邏輯位址310,且經由寫入請求322追蹤不可校正錯誤以用於進一步錯誤清除操作(操作562)。在一些實施例中,控制器202例如藉由將映射條目312之一或多個位元設定為指示映射條目312之有效性狀態的預定義值來標記(操作564)映射條目312。索引316經添加(操作566)至毒物表236,從而指示與邏輯位址310相關聯之映射條目312具有不可校正錯誤。
在一些實施例中,根據映射條目312具有不可校正錯誤之判定,記憶體裝置240之控制器202實施(操作568)背景處理程序以清理儲存於記憶體裝置240中用於程式之後設資料,且該後設資料將因具有不可校正錯誤之映射條目312之丟失而受到損害。舉例而言,在一些情形下,後設資料包括與實體位址314相關聯之記憶體頁面210所在之記憶體通道204的頻帶。在映射條目312被標記為中毒(例如,具有不可校正錯誤)之後,清理記憶體通道204之此頻帶。
在一些實施例中,映射條目312由不具有不可校正錯誤之新位址映射資訊覆寫(操作570)以在L2P表234之相同位置處產生新映射條目402,而與新映射條目402是否包括映射條目312之邏輯位址310無關。映射條目402經標記(操作572)為有效,例如藉由將映射條目402之一或多個位元設定為指示映射條目402之有效狀態的第一預定義值(例如,「0」)。表示映射條目312之索引316自毒物表236清除(操作574)。替代地,在一些實施例中,資料項目308在與新映射條目402N (圖4)相關聯之新實體位址402N (圖4)處重寫。映射條目312保持標記為無效,例如,藉由將映射條目402之一或多個位元設定為指示映射條目312之無效狀態的第二預定義值(例如,「1」)。表示映射條目312之索引316自毒物表236清除(操作574)。
在一實例中,儲存於DRAM 228A中之64位元資料塊藉由8位元錯誤校正碼(例如,使用單錯誤校正及雙錯誤偵測(SECDED)方法形成)保護。各映射條目402具有32個位元,且表示4 KB記憶體頁面210。64位元資料塊包括兩個條目312A及402A (圖4)。映射條目312A用於將邏輯位址310映射至實體位址314。兩個條目312及402A經判定為聯合地具有不可校正錯誤,且聯合地標記為無效(操作576),例如藉由將條目312A及402A中之各者的一或多個位元設定為第二預定義值(例如,「1」)。在一些實施例中,字條目402A用於位址映射,且字條目402A亦在毒物表236中運用字索引406追蹤。針對映射條目402A之後續讀取請求324導致(操作576)發送至主機220之警報訊息,且在字索引406自毒物表236清除之後實施。相對而言,在一些實施例中,字條目402A不用於位址映射,且字條目402A不在毒物表236中運用字索引追蹤且可直接用於儲存新位址映射資訊。
根據毒物表236包括識別映射條目312之索引316的判定,控制器202判定映射條目無效,且將資料之複本重寫於記憶體裝置240之新實體位址中(例如,識別新記憶體頁面210)。控制器202產生用於邏輯位址之新映射條目,以將邏輯位址映射至資料之經重寫複本之新實體位址,且將新映射條目儲存於L2P表234中。在毒物表234中清除與對應於資料之邏輯位址之映射條目相關聯的索引。在一些實施例中,新實體位址與由具有不可校正錯誤之映射條目識別之實體位址相同,且在將資料寫入至實體位址之前,對實體位址實施L2P檢查。替代地,在一些實施例中,新實體位址與由具有不可校正錯誤之映射條目識別之實體位址相同。
圖6為根據一些實施例的用於管理記憶體系統200中之錯誤之實例方法的流程圖。記憶體系統200包括耦接至主機220且具有記憶體控制器202 (圖2)之記憶體裝置240。方法600由記憶體裝置240實施。在一實例中,記憶體裝置240包括SSD,該SSD進一步包括記憶體控制器202且經組態以實施方法600。記憶體裝置240 (例如,圖2中之記憶體裝置240的控制器202)包括(操作602)儲存資料之非揮發性記憶體(NVM 302) 302以及儲存邏輯至實體(L2P)表234及毒物表236之動態隨機存取記憶體(DRAM) 228A。記憶體裝置240獲得(操作604)用以存取儲存於NVM 302中之資料項目308的資料存取請求306,其中資料存取請求306包括資料項目308之邏輯位址310。記憶體裝置240在L2P表234中識別(操作606)對應於資料項目308之邏輯位址之映射條目312。映射條目312將資料項目308之邏輯位址310映射(操作608)至NVM 302內的資料項目308之實體位址314。記憶體裝置240判定(操作610)映射條目312具有不可校正錯誤,且根據映射條目312具有不可校正錯誤之判定,在毒物表236中添加(操作612)識別L2P表234中之映射條目312的索引316。
在一些實施例中,根據映射條目312具有不可校正錯誤之判定,記憶體裝置240將儲存於DRAM中之L2P表234中之映射條目312標記(614)為無效。此外,在一些實施例中,記憶體裝置240接收包括資料項目308之邏輯位址310的資料讀取請求。回應於資料讀取請求,記憶體裝置240自L2P表234提取對應於資料項目308之邏輯位址310之映射條目312。根據映射條目312無效之判定,記憶體裝置240檢查毒物表236且識別毒物表236中之索引316。根據在毒物表236中識別到之索引316,記憶體裝置240判定映射條目312具有不可校正錯誤。
在一些實施例中,記憶體裝置240經由毒物指示訊息將映射條目312之不可校正錯誤報告至耦接至記憶體裝置240之主機裝置。此外,在一些實施例中,回應於毒物指示訊息,記憶體裝置240接收記憶體裝置240之錯誤校正指令。回應於錯誤校正指令,記憶體裝置240重寫儲存於NVM 302之新實體位址314中之資料項目308的複本,且產生用於邏輯位址310之新映射條目312以將邏輯位址310映射至資料項目308之經重寫複本之新實體位址314。記憶體裝置240將新映射條目312儲存於L2P表234中,且清除與對應於毒物表236中之資料項目308之邏輯位址310之映射條目312相關聯的索引316。
在一些實施例中,回應於資料存取請求306,記憶體裝置240將儲存於L2P表234之映射條目312中之資料載入至資料快取記憶體中。在判定映射條目312具有不可校正錯誤之後,記憶體裝置240在錯誤快取記憶體中記錄不可校正錯誤之包括L2P表234中之錯誤位址及錯誤類型的資訊。記憶體裝置240自資料快取記憶體逐出儲存於映射條目312中之資料,而不進行資料回寫。基於記錄於錯誤快取記憶體中之不可校正錯誤之資訊而將索引316添加至毒物表236中。
在一些實施例中,記憶體裝置240藉由回應於資料存取請求306而存取資料項目308來實施程式,且根據映射條目312具有不可校正錯誤之判定,實施背景處理程序以清理儲存於記憶體裝置240中用於程式之後設資料。
在一些實施例中,根據映射條目312無效之判定,記憶體裝置240覆寫L2P表234中之映射條目312,將映射條目312標記為有效,且自毒物表236清除識別L2P表234中之映射條目312之索引316。
在一些實施例中,映射條目312包括第一映射條目312A,且索引316包括識別第一映射條目312之第一索引316A。記憶體裝置240根據第一映射條目312與一或多個字條目402A (例如,一個字條目)之組合具有不可校正錯誤之判定而判定映射條目312具有不可校正錯誤。
此外,在一些實施例中,記憶體裝置240使用各別字條目之子集(例如,最後一個位元)將L2P表234中之一或多個字條目402A中的各者標記為無效。在一些實施例中,記憶體裝置240在毒物表236中添加一或多個字索引406,且各字索引406識別L2P表234中之一或多個字條目402A中之各別者。在一些實施例中,對於一或多個字條目402A中之各者,根據各別字條目402A用於位址映射之判定,記憶體裝置240在毒物表236中添加識別L2P表234中之一或多個字條目402A中之各別者的字索引406。根據各別字條目402A不用於位址映射之判定,記憶體裝置240中止在毒物表236中添加字索引406。在一些實施例中,第一映射條目312及一或多個字條目中之各者具有32個位元,且第一映射條目312與一或多個字條目402A之組合具有64個位元且被聯合地驗證。
在一些實施例中,記憶體裝置240將新位址映射資訊寫入(操作616)至L2P表234中之映射條目312中,標記(操作618)映射條目312中之一或多個位元(例如,最後一個位元)以指示映射條目312有效,且自毒物表236清除(操作620)識別映射條目312之索引316。
在一些實施例中,實體位址314大於資料位元組長度,且映射條目312包括至少2個資料位元組。
在一些實施例中,L2P表234包括將複數個邏輯位址310轉譯為複數個實體位址314之複數個映射條目312,且毒物表236識別具有不可校正錯誤之複數個映射條目402之子集。
在一些實施例中,根據映射條目312具有不可校正錯誤之判定,記憶體裝置240中止斷言不可校正錯誤且重建映射條目312。
在一些實施例中,控制器具有DRAM控制器226、一或多個處理核心218及快取記憶體304,且形成系統單晶片(SoC)。
在一些實施例中,根據偵測到DRAM 228A中之不可校正錯誤,記憶體裝置240之控制器202啟用立即磁碟斷言操作。在一實例中,磁碟斷言操作包括斷言恢復及SSD重建,且花費多於10小時。相對而言,在一些實施例中,根據偵測到DRAM 228A中之不可校正錯誤,記憶體裝置240之控制器202並不啟用任何磁碟斷言操作,且將索引添加至毒物表236中,從而識別與L2P表中之不可校正錯誤相關聯之映射條目。此外,在一些情形下,根據包括不可校正錯誤之資料實際上由鏡頭消耗之判定,選擇性地重寫資料。經重寫資料具有數千拜資料之大小,且重寫操作需要1至1000毫秒,且不造成或造成極少資料丟失。因而,毒物表236之應用顯著地增強記憶體裝置240 (例如,SSD)的可靠性及可服務性。
記憶體亦用於儲存與方法600相關聯之指令及資料,且包括高速隨機存取記憶體,諸如SRAM、DDR DRAM或其他隨機存取固態記憶體裝置;且視情況包括非揮發性記憶體,諸如一或多個磁碟儲存裝置、一或多個光碟儲存裝置、一或多個快閃記憶體裝置或一或多個其他非揮發性固態儲存裝置。記憶體視情況包括位於一或多個處理單元遠端之一或多個儲存裝置。記憶體或替代地為記憶體內之非揮發性記憶體包括非暫時性電腦可讀儲存媒體。在一些實施例中,記憶體或記憶體之非暫時性電腦可讀儲存媒體儲存用於實施方法600之程式、模組及資料結構或子集或超集。替代地,在一些實施例中,電子系統至少部分地基於ASIC實施方法600。電子系統之記憶體系統200包括資料中心或用戶端裝置中之SSD。
上文所識別之元件中之各者可儲存於先前所提及之記憶體裝置中之一或多者中,且對應於用於執行上文所描述之功能的指令集。上文所識別之模組或程式(亦即,指令集)無需實施為單獨的軟體程式、程序、模組或資料結構,且因此在各種實施例中,可組合或以其他方式重新配置此等模組之各種子集。在一些實施例中,記憶體視情況儲存上文所識別之模組及資料結構之子集。此外,記憶體視情況儲存上文未描述之額外模組及資料結構。
本文中之各種所描述實施之描述中所使用之術語僅出於描述特定實施之目的且不欲為限制性的。如各種所描述實施及隨附申請專利範圍之描述中所使用,除非上下文另外清楚地指示,否則單數形式「一(a)」、「一(an)」及「該」意欲亦包括複數形式。亦應理解,如本文中所使用之術語「及/或」係指且涵蓋相關聯列出項目中之一或多者的任何及所有可能組合。應進一步理解,術語「包括(includes)」、「包括(including)」、「包含(comprises)」及/或「包含(comprising)」在用於本說明書中時指定所陳述特徵、整數、步驟、操作、元件及/或組件之存在,但並不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。另外,應理解,儘管術語「第一」、「第二」等在本文中可用於描述各種元件,但此等元件不應受此等術語限制。此等術語僅用於將一個元件與另一元件區分開來。
如本文中所使用,取決於上下文,術語「若」視情況解釋為意謂「當……時」或「在……後」或「回應於判定」或「回應於偵測」或「根據……之判定」。類似地,取決於上下文,片語「若判定」或「若偵測到[所陳述條件或事件]」視情況解釋為意謂「在判定......後」或「回應於判定」或「在偵測到[所陳述條件或事件]後」或「回應於偵測到[所陳述條件或事件]」或「根據偵測到[所陳述條件或事件]之判定」。
出於解釋之目的,已參考特定實施例描述了前述描述。然而,上文之說明性論述不意欲為詳盡的或將申請專利範圍限於所揭示之精確形式。鑒於以上教示,許多修改及變化為可能的。選擇及描述該等實施例以便最佳地解釋操作原理及實際應用,以藉此使熟習此項技術者能夠理解。
儘管各種圖式以特定次序繪示多個邏輯階段,但不依賴次序之階段可被重新排序且其他階段可被組合或分解。雖然具體地提及一些重新排序或其他分組,但其他重新排序或分組對一般熟習此項技術者將為顯而易見的,因此本文中呈現之排序及分組並非替代方案之詳盡清單。此外,應認識到,該等階段可以硬體、韌體、軟體或其任何組合進行實施。
100:系統模組/記憶體模組
102:處理器模組
104:記憶體模組
106:I/O控制器
108:網路介面
110:記憶體控制器
112:SSD
112':SSD
114:HDD
116:電源連接器
118:功率管理積體電路
120:圖形模組
122:聲音模組
140:通信匯流排
200:記憶體系統
202:控制器
204:記憶體通道
204A:通道
204B:通道
204N:通道
206:記憶體封裝/記憶體晶粒
206A:記憶體封裝
206B:記憶體封裝
208:記憶體平面
210:記憶體頁面
214:通道控制器
214A:控制器
214B:控制器
214N:控制器
216:佇列
216A:佇列
216B:佇列
216N:佇列
218:局部記憶體處理器/處理器核心
220:主機裝置/主機
222:主機介面控制器
224:SRAM緩衝器
226:DRAM控制器
228A:DRAM緩衝器/DRAM
228B:DRAM緩衝器
230:完整性引擎
232:暫存器
234:L2P表
236:毒物表
240:記憶體裝置
302:NVM
304:末級快取記憶體
304A:資料快取記憶體
304B:錯誤快取記憶體
306:資料存取請求/資料項目
308:資料項目
310:邏輯位址
312:映射條目
312A:第一映射條目
312B:第二映射條目
314:實體位址
314R:新實體位址
316:索引
316A:第一索引
316B:第二索引
318:毒物指示訊息
320:錯誤校正指令
322:寫入請求
324:讀取請求
402:映射條目
402A:字條目
402N:新映射條目
404:操作
406:字索引
500:程序
502:操作
504:操作
506:操作
508:操作
510:操作
512:操作
514:操作
516:操作
518:操作
520:操作
522:操作
524:操作
526:操作
550:程序
552:操作
554:操作
556:操作
558:操作
560:操作
562:操作
564:操作
566:操作
568:操作
570:操作
572:操作
574:操作
576:操作
600:方法
602:操作
604:操作
606:操作
608:操作
610:操作
612:操作
614:操作
616:操作
618:操作
620:操作
為了更好地理解各種所描述實施,下文應結合以下圖式來參考實施方式,其中貫穿諸圖,類似元件符號係指對應部分。
圖1為根據一些實施例的典型電子裝置中之實例系統模組的方塊圖。
圖2為根據一些實施例的具有一或多個記憶體存取佇列之實例電子裝置之記憶體系統的方塊圖。
圖3為根據一些實施例的包括記憶體控制器之DRAM中之毒物表之實例記憶體裝置的方塊圖。
圖4為繪示根據一些實施例的儲存毒物表之實例DRAM之資料結構的圖。
圖5A為根據一些實施例的存取經由L2P表之具有不可校正錯誤之映射條目定址的未消耗資料之實例程序的流程圖。
圖5B為根據一些實施例的寫入經由L2P表之具有不可校正錯誤之映射條目定址的資料項目之實例程序的流程圖。
圖6為根據一些實施例的用於管理記憶體系統中之錯誤之實例方法的流程圖。
貫穿圖式之數個視圖,類似元件符號係指對應部分。
202:控制器
210:記憶體頁面
218:局部記憶體處理器/處理器核心
220:主機裝置/主機
226:DRAM控制器
228A:DRAM緩衝器/DRAM
234:L2P表
236:毒物表
240:記憶體裝置
302:NVM
304:末級快取記憶體
304A:資料快取記憶體
304B:錯誤快取記憶體
308:資料項目
310:邏輯位址
312:映射條目
314:實體位址
316:索引
318:毒物指示訊息
320:錯誤校正指令
322:寫入請求
324:讀取請求
Claims (20)
- 一種在一記憶體裝置處實施之方法,其包含: 在包括儲存資料之非揮發性記憶體(NVM)以及儲存一邏輯至實體(L2P)表及一毒物表(poison table)之動態隨機存取記憶體(DRAM)的一記憶體裝置處: 獲得用以存取儲存於該NVM中之一資料項目之一資料存取請求,該資料存取請求包括該資料項目的一邏輯位址; 在該L2P表中識別對應於該資料項目之該邏輯位址之一映射條目,其中該映射條目將該資料項目之該邏輯位址映射至該NVM內的該資料項目之一實體位址; 判定該映射條目具有一不可校正錯誤;及 根據該映射條目具有該不可校正錯誤之一判定,在該毒物表中添加識別該L2P表中之該映射條目的一索引。
- 如請求項1之方法,其進一步包含: 根據該映射條目具有該不可校正錯誤之一判定,將儲存於該DRAM中之該L2P表中的該映射條目標記為無效。
- 如請求項2之方法,其進一步包含: 接收包括該資料項目之該邏輯位址的一資料讀取請求;及 回應於該資料讀取請求: 自該L2P表提取對應於該資料項目之該邏輯位址的該映射條目; 根據該映射條目無效之一判定,檢查該毒物表且識別該毒物表中之該索引;及 根據在該毒物表中識別到之該索引,判定該映射條目具有該不可校正錯誤。
- 如請求項1至3中任一項之方法,其進一步包含: 經由一毒物指示訊息將該映射條目之該不可校正錯誤報告至耦接至該記憶體裝置之一主機裝置。
- 如請求項4之方法,其進一步包含: 回應於該毒物指示訊息,由該記憶體裝置接收一錯誤校正指令;及 回應於該錯誤校正指令: 重寫儲存於該NVM之一新實體位址中之該資料項目的一複本; 產生用於該邏輯位址之一新映射條目以將該邏輯位址映射至該資料項目之經重寫複本的該新實體位址; 將該新映射條目儲存於該L2P表中;及 清除與對應於該毒物表中之該資料項目之該邏輯位址的該映射條目相關聯之該索引。
- 如請求項1至5中任一項之方法,該方法進一步包含,回應於該資料存取請求: 將儲存於該L2P表之該映射條目中之資料載入至一資料快取記憶體中; 在判定該映射條目具有該不可校正錯誤之後,在一錯誤快取記憶體中記錄該不可校正錯誤之包括該L2P表中之一錯誤位址及一錯誤類型之資訊;及 自該資料快取記憶體逐出儲存於該映射條目中之該資料,而不進行資料回寫; 其中基於記錄於該錯誤快取記憶體中之該不可校正錯誤之該資訊而將該索引添加至該毒物表中。
- 如請求項1至6中任一項之方法,其進一步包含: 實施一程式,包括回應於該資料存取請求而存取該資料項目;及 根據該映射條目具有該不可校正錯誤之一判定,實施一背景處理程序以清理儲存於該記憶體裝置中用於該程式之後設資料。
- 如請求項1至7中任一項之方法,其進一步包含: 根據該映射條目無效之一判定,覆寫該L2P表中之該映射條目; 將該映射條目標記為有效;及 自該毒物表清除識別該L2P表中之該映射條目之該索引。
- 如請求項1至8中任一項之方法,其中該實體位址大於一資料位元組長度,且該映射條目包括至少2個資料位元組。
- 如請求項1至9中任一項之方法,其中該L2P表包括將複數個邏輯位址轉譯為複數個實體位址之複數個映射條目,且該毒物表識別具有不可校正錯誤之該複數個映射條目之一子集。
- 如請求項1至10中任一項之方法,其中: 該映射條目包括一第一映射條目,且該索引包括識別該第一映射條目之一第一索引;且 判定該映射條目具有該不可校正錯誤進一步包括判定該第一映射條目與一或多個字條目之一組合具有該不可校正錯誤。
- 如請求項11之方法,其進一步包含: 使用該各別字條目之一子集將該L2P表中之該一或多個字條目中的各者標記為無效。
- 如請求項11或12之方法,其進一步包含: 在該毒物表中添加一或多個字索引,各字索引識別該L2P表中之該一或多個字條目中之一各別者。
- 如請求項11至13中任一項之方法,其進一步包含,對於該一或多個字條目中之各者: 根據該各別字條目係用於位址映射之一判定,在該毒物表中添加識別該L2P表中之該一或多個字條目中之一各別者的一字索引;及 根據該各別字條目不用於位址映射之一判定,中止在該毒物表中添加該字索引。
- 如請求項11至14中任一項之方法,其中各映射條目具有32個位元,且該第一映射條目與一或多個字條目之該組合具有64個位元且被聯合地驗證。
- 如請求項1至15中任一項之方法,其中控制器進一步包括一DRAM控制器、一或多個處理核心及一快取記憶體,且形成一系統單晶片(SoC)。
- 如請求項1至16中任一項之方法,其進一步包含: 將新位址映射資訊寫入至該L2P表中之該映射條目中; 標記該映射條目中之一或多個位元以指示該映射條目有效;及 自該毒物表清除識別該映射條目之該索引。
- 如請求項1至17中任一項之方法,其進一步包含: 根據該映射條目具有該不可校正錯誤之一判定,中止斷言該不可校正錯誤且重建該映射條目。
- 一種記憶體裝置,其包含 非揮發性記憶體(NVM),其儲存資料; 動態隨機存取記憶體(DRAM),其儲存一邏輯至實體(L2P)表及一毒物表;及 一控制器,其耦接至該NVM及該DRAM,該控制器經組態以執行包括用於實施如請求項1至18中任一項之方法之指令的一或多個程式。
- 一種非暫時性電腦可讀儲存媒體,其儲存一或多個程式以供一或多個處理器執行,該一或多個程式進一步包含用於實施如請求項1至18中任一項之方法之指令。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/395,284 | 2023-12-22 | ||
| US18/395,284 US12493565B2 (en) | 2023-12-22 | 2023-12-22 | Introduction of poison table in dynamic random access memory in a memory system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202536660A true TW202536660A (zh) | 2025-09-16 |
Family
ID=96095723
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW113149792A TW202536660A (zh) | 2023-12-22 | 2024-12-20 | 記憶體系統中之動態隨機存取記憶體中毒物表的引入 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12493565B2 (zh) |
| TW (1) | TW202536660A (zh) |
| WO (1) | WO2025137629A1 (zh) |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9092361B2 (en) * | 2005-07-15 | 2015-07-28 | Panasonic Intellectual Property Management Co., Ltd. | Nonvolatile storage device, memory controller, and defective region detection method |
| US7478285B2 (en) * | 2005-12-30 | 2009-01-13 | Silicon Graphics, Inc. | Generation and use of system level defect tables for main memory |
| US20090259806A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using bad page tracking and high defect flash memory |
| US9507675B2 (en) * | 2014-04-15 | 2016-11-29 | Qualcomm Incorporated | Systems and methods for recovering from uncorrected DRAM bit errors |
| US9547449B2 (en) * | 2014-11-12 | 2017-01-17 | International Business Machines Corporation | Performance optimization of read functions in a memory system |
| US11232848B2 (en) * | 2015-04-30 | 2022-01-25 | Hewlett Packard Enterprise Development Lp | Memory module error tracking |
| US20170147499A1 (en) * | 2015-11-25 | 2017-05-25 | Sandisk Technologies Llc | Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device |
| US10127103B2 (en) * | 2016-09-07 | 2018-11-13 | Sandisk Technologies Llc | System and method for detecting and correcting mapping table errors in a non-volatile memory system |
| KR102781499B1 (ko) * | 2017-02-06 | 2025-03-17 | 삼성전자주식회사 | 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
| TWI639917B (zh) * | 2017-04-25 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及映射表重建方法 |
| KR102599188B1 (ko) * | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
| US11210186B2 (en) * | 2019-03-07 | 2021-12-28 | Arm Limited | Error recovery storage for non-associative memory |
| US11500782B2 (en) * | 2020-12-18 | 2022-11-15 | Micron Technology, Inc. | Recovery of logical-to-physical table information for a memory device |
| US11663081B2 (en) * | 2021-05-10 | 2023-05-30 | Western Digital Technologies, Inc. | Storage system and method for data recovery after detection of an uncorrectable error |
-
2023
- 2023-12-22 US US18/395,284 patent/US12493565B2/en active Active
-
2024
- 2024-12-20 WO PCT/US2024/061549 patent/WO2025137629A1/en active Pending
- 2024-12-20 TW TW113149792A patent/TW202536660A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| US20250209011A1 (en) | 2025-06-26 |
| WO2025137629A1 (en) | 2025-06-26 |
| US12493565B2 (en) | 2025-12-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8156392B2 (en) | Apparatus, system, and method for bad block remapping | |
| TWI437431B (zh) | 記憶體系統及控制記憶體系統的方法 | |
| US8448018B2 (en) | Stripe-based memory operation | |
| JP5585919B2 (ja) | 電源遮断管理 | |
| US9684468B2 (en) | Recording dwell time in a non-volatile memory system | |
| US8122193B2 (en) | Storage device and user device including the same | |
| US8055834B2 (en) | Method for preventing read-disturb happened in non-volatile memory and controller thereof | |
| US8285955B2 (en) | Method and apparatus for automatic solid state drive performance recovery | |
| US10262754B2 (en) | Fine grained online remapping to handle memory errors | |
| JP2015201204A (ja) | データ記憶装置におけるデータ保全性管理 | |
| US10922234B2 (en) | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive | |
| KR20200038723A (ko) | 스토리지 디바이스 및 스토리지 디바이스의 동작 방법 | |
| EP1659494A2 (en) | Method and apparatus for classifying memory errors | |
| KR101596833B1 (ko) | 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치 | |
| US12493565B2 (en) | Introduction of poison table in dynamic random access memory in a memory system | |
| US9128887B2 (en) | Using a buffer to replace failed memory cells in a memory component | |
| US11829228B2 (en) | Storage devices of performing metadata management and methods of operating the same | |
| US11875062B1 (en) | Proactive hardening of data storage system | |
| US20250130896A1 (en) | Memory system for performing read reclaim |