TWI820797B - 頁群組讀取電壓臨限校準 - Google Patents

頁群組讀取電壓臨限校準 Download PDF

Info

Publication number
TWI820797B
TWI820797B TW111126221A TW111126221A TWI820797B TW I820797 B TWI820797 B TW I820797B TW 111126221 A TW111126221 A TW 111126221A TW 111126221 A TW111126221 A TW 111126221A TW I820797 B TWI820797 B TW I820797B
Authority
TW
Taiwan
Prior art keywords
calibration
page
page group
controller
block
Prior art date
Application number
TW111126221A
Other languages
English (en)
Other versions
TW202326736A (zh
Inventor
羅門 亞歷山大 普雷特卡
拉度 伊恩 史都依卡
尼可拉斯 伊恩諾
尼可拉奧斯 帕潘德瑞奧
查拉蘭波斯 波茲堤斯
提摩西 J 費雪
亞倫 丹尼爾 佛萊
Original Assignee
美商萬國商業機器公司
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 美商萬國商業機器公司 filed Critical 美商萬國商業機器公司
Publication of TW202326736A publication Critical patent/TW202326736A/zh
Application granted granted Critical
Publication of TWI820797B publication Critical patent/TWI820797B/zh

Links

Classifications

    • 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/26Sensing or reading circuits; Data output circuits
    • 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
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/20Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels
    • H10B41/23Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
    • H10B41/27Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/20EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
    • H10B43/23EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
    • H10B43/27EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

一非揮發性記憶體之一控制器偵測自該非揮發性記憶體之一特定實體頁讀取的資料中之錯誤。基於偵測到該等錯誤,該控制器對包括該特定實體頁及多個其他實體頁之一頁群組執行一讀取電壓臨限校準。執行該讀取電壓臨限校準包括僅基於該頁群組之該特定實體頁而校準讀取電壓臨限。在該控制器執行該讀取電壓臨限校準之後,該控制器視情況驗證該校準。驗證該校準包括判定該頁群組內之位元錯誤率是否發散,且若如此,則減輕該發散。減輕該發散包括將資料自該頁群組再定位至該非揮發性記憶體之另一區塊。

Description

頁群組讀取電壓臨限校準
本公開大體上係有關於資料儲存,且更特定而言,係關於非揮發性記憶體系統。再更特定而言,本公開係有關於非揮發性記憶體系統中之讀取電壓臨限校準。
「反及」(NAND)快閃記憶體為將每記憶體胞元之一或多個資料位元儲存為電晶體之浮動閘極或類似電荷捕獲結構上之電荷的電可程式化及可抹除非揮發性記憶體技術。在典型實施中,NAND快閃記憶體陣列係以記憶體之實體區塊組織,該等區塊中之各者包括儲存於多個記憶體胞元中之多個實體頁。藉助於用以存取記憶體胞元之字線及位元線的配置,快閃記憶體陣列通常可在頁基礎上進行程式化,但在區塊基礎上進行抹除。
如此項技術中已知的,必須在用新資料程式化之前抹除NAND快閃記憶體之區塊。在抹除之後,NAND快閃記憶體胞元可藉由將正的高程式化電壓施加至待程式化之記憶體胞元之字線及將中間導通電壓施加至待抑制程式化之同一串中之記憶體胞元來程式化。施加程式化電壓會導致電子穿隧至記憶體胞元之浮動閘極上以將其狀態自初始經抹除狀態改變至具有淨負電荷之經程式化狀態。與一或多個讀取電壓臨限相關之閘 極的電壓指示儲存於記憶體胞元中之位元值。
由於程式化/抹除循環、資料保持、讀取干擾、程式化干擾及/或其他原因,記憶體胞元之經程式化電壓分佈可在NAND快閃記憶體裝置之操作期間改變。回應於經程式化電壓分佈之改變,控制器可執行校準以調整讀取電壓臨限,從而降低位元錯誤率(BER)。舉例而言,一些先前技術控制器藉由基於兩個永久效應(例如,由於循環耗損)及臨時效應(例如,由於資料保持及讀取干擾)計算與初始讀取電壓臨限之最佳偏移來考慮電壓分佈之永久及臨時改變。可利用反覆演算法來判定此等最佳偏移,該演算法利用不同偏移發出多個頁讀取。為了減少校準額外負荷及讀取電壓臨限後設資料,可將實體頁分組為頁群組,該等群組各自由例如以下各者組成:耦接至共同字線之所有實體頁、在3D NAND快閃記憶體之一或多個豎直堆疊之實體層中的所有實體頁、實體層中具有相同頁類型(亦即,上部頁、下部頁、額外頁或頂部頁)之實體頁之集合,或通常具有類似特性之實體頁。一般而言,每次觸發讀取電壓臨限之校準時,控制器對整個實體區塊執行讀取電壓臨限校準。
本公開瞭解到,習知讀取電壓臨限校準無法提供與所期望一樣良好的效能及錯誤減少。舉例而言,由於讀取失敗而校準整個實體區塊會在主機之效能關鍵讀取路徑中強加顯著延時。另外,在一些先前技術系統中,基於頁群組中之隨機選定實體頁,分開地校準經歷讀取電壓臨限校準之實體區塊內之各頁群組。作為此隨機選擇之結果,觸發讀取電壓臨限校準之實體頁可能不用作校準其自身頁群組之基礎。因此,因為不同實體頁當中之錯誤效應(例如,讀取干擾、列錘、保持、程式化干擾、快閃 記憶體媒體問題等)的不同表達,針對特定頁群組而判定之最佳讀取電壓臨限可能不適用於彼頁群組中之所有實體頁,且甚至可能無法校正觸發讀取電壓臨限校準之實體頁中的錯誤。
在至少一個實施例中,非揮發性記憶體之控制器偵測自非揮發性記憶體之特定實體頁讀取的資料中之錯誤。基於偵測到錯誤,控制器對包括特定實體頁及多個其他實體頁之頁群組執行讀取電壓臨限校準。執行讀取電壓臨限校準包括僅基於頁群組之特定實體頁而校準讀取電壓臨限。在控制器執行讀取電壓臨限校準之後,控制器視情況驗證該校準。驗證該校準包括判定頁群組內之位元錯誤率是否發散,且若如此,則減輕發散。減輕發散包括將資料自頁群組再定位至非揮發性記憶體之另一區塊。
100:資料處理環境
102:處理器系統
104:處理器
106:本端儲存器
108:輸入/輸出(I/O)配接器
110:I/O通道
120:資料儲存系統
122:介面節點
124:廉價磁碟冗餘陣列(RAID)控制器
126:快閃記憶卡
130:閘道器
132:通用處理器(GPP)
134:GPP記憶體
140:快閃記憶體控制器
142:快閃記憶體控制器非揮發性記憶體
144:快閃記憶體控制器揮發性記憶體
146:主機寫入快取記憶體
148:再定位寫入緩衝器
150:NAND快閃記憶體系統
152:邏輯至實體轉譯(LPT)表
154:電壓臨限(Vth)移位資料
156:讀取快取記憶體
158:管理資料結構
400:快閃記憶體模組
500:平面
600:區塊
700:即用(RTU)佇列
702:建置區塊等量區功能
704:資料置放功能
706:開放區塊佇列
708:佔用區塊佇列
710:抹除佇列
712:區塊抹除功能
714:快取引擎
716:轉儲引擎
720:廢棄項目收集器
722:耗損均衡器
724:集區平衡器
730:讀取清除程式
732:錯誤校正碼(ECC)引擎
734:背景健康檢查器
736:校準引擎
800a:電壓分佈
800b:後續電壓分佈
802a:電壓分佈
802b:後續電壓分佈
804a:電壓分佈
804b:後續電壓分佈
806a:電壓分佈
806b:後續電壓分佈
808a:電壓分佈
808b:後續電壓分佈
810a:電壓分佈
810b:後續電壓分佈
812a:電壓分佈
812b:後續電壓分佈
814a:電壓分佈
814b:後續電壓分佈
820a:初始讀取電壓臨限
820b:改良讀取電壓臨限
822a:初始讀取電壓臨限
822b:改良讀取電壓臨限
824a:初始讀取電壓臨限
824b:改良讀取電壓臨限
826a:初始讀取電壓臨限
826b:改良讀取電壓臨限
828a:初始讀取電壓臨限
828b:改良讀取電壓臨限
830a:初始讀取電壓臨限
830b:改良讀取電壓臨限
832a:初始讀取電壓臨限
832b:改良讀取電壓臨限
1000:區塊
1002:區塊
1004:區塊
1006:區塊
1010:決策區塊
1012:區塊
1014:區塊
1016:區塊
1018:區塊
1020:區塊
1022:可選區塊
1024:區塊
1026:區塊
1028:連接點
1030:區塊
1100:區塊
1102:區塊
1104:區塊
1106:區塊
1108:區塊
1120:區塊
1122:區塊
1124:區塊
1126:區塊
1128:區塊
1130:區塊
CE0:晶片啟用
CE1:晶片啟用
CE2:晶片啟用
CE3:晶片啟用
M0a~M19b:快閃記憶體儲存裝置
圖1為根據一個實施例之資料處理環境的高階方塊圖;圖2為根據一個實施例之圖1的資料儲存系統之例示性快閃記憶卡的更詳細方塊圖;圖3至圖6展示根據一個實施例之NAND快閃記憶體系統內的實體記憶體之例示性配置;圖7為根據一個實施例的由NAND快閃記憶體系統之控制器使用的快閃記憶體管理功能及資料結構之高階資料流程圖;圖8描繪例示性三位階胞元(TLC)NAND快閃記憶體之初始及後續經程式化電壓分佈;圖9展示根據一個實施例之由校準引擎實施的不同讀取電壓臨限校準技術;圖10為根據一個實施例之例示性方法的高階邏輯流程圖, 藉由該方法,控制器校準非揮發性記憶體之實體區塊的一或多個頁群組之讀取電壓臨限;及圖11為根據一個實施例之例示性方法的高階邏輯流程圖,藉由該方法,控制器視情況驗證讀取電壓臨限校準之結果。
參看諸圖且特定地參看圖1,展示例示性資料處理環境100之高階方塊圖,該資料處理環境包括資料儲存系統120,如本文中進一步所描述。如所展示,資料處理環境100包括一或多個主機,諸如具有處理指令及資料之一或多個處理器104的處理器系統102。處理器系統102可另外包括本端儲存器106(例如,DRAM或磁碟),該本端儲存器可儲存由處理器104執行之處理的程式碼、運算元及/或執行結果。在各種實施例中,處理器系統102可為例如行動運算裝置(諸如,智慧型手機或平板電腦)、膝上型或桌上型個人電腦系統、伺服器電腦系統(諸如,可自國際商用機器公司購得之POWER®系列中之一者)或大型電腦系統。處理器系統102亦可為使用諸如以下各者之各種處理器的嵌入式處理器系統:ARM®、POWER、Intel x86或與記憶體快取、記憶體控制器、本端儲存器、I/O匯流排集線器等組合之任何其他處理器。
各處理器系統102進一步包括經由I/O通道110直接耦接(亦即,無任何介入裝置)或間接耦接(亦即,經由至少一個中間裝置)至資料儲存系統120之輸入/輸出(I/O)配接器108。在各種實施例中,I/O通道110可使用已知或未來開發之通信協定中之任一者或組合,包括例如光纖通道(FC)、乙太網路FC(FCoE)、網際網路小型電腦系統介面(iSCSI)、InfiniBand、傳送控制協定/網際網路協定(TCP/IP)、周邊組件快速互連 (PCIe)、快速非揮發性記憶體(NVMe)、網狀架構NVMe(NVMe over Fabrics;NVMe-oF)等。經由I/O通道110傳達之I/O命令包括處理器系統102藉以向資料儲存系統120請求資料之主機讀取命令,及處理器系統102藉以請求在資料儲存系統120中儲存資料之主機寫入命令。
在所展示之實施例中,資料儲存系統120包括多個介面節點122,資料儲存系統120經由該等介面節點而經由I/O通道110接收I/O命令且對該等命令作出回應。各介面節點122耦接至多個廉價磁碟冗餘陣列(RAID)控制器124中之各者以便促進容錯及負載平衡。RAID控制器124中之各者又耦接(例如,藉由PCIe匯流排)至多個快閃記憶卡126中之各者,在此實例中包括NAND快閃記憶體儲存媒體。在其他實施例中,可使用其他有損儲存媒體。
圖2描繪根據一個實施例之圖1的資料儲存系統120之快閃記憶卡126的更詳細方塊圖。在此實施例中,快閃記憶卡126包括充當快閃記憶卡126與RAID控制器124之間的介面的閘道器130。閘道器130耦接至通用處理器(GPP)132,該通用處理器可經組態(例如,藉由程式碼)以執行各種管理功能,諸如預處理由閘道器130接收到之I/O命令、排程快閃記憶卡126對I/O命令之服務及/或執行其他管理功能。GPP 132耦接至GPP記憶體134(例如,動態隨機存取記憶體(DRAM)),該記憶體可方便地緩衝由GPP 132在其處理過程中創建、參考及/或修改之資料。
閘道器130進一步耦接至至少一個快閃記憶體控制器140,該至少一個快閃記憶體控制器控制大容量非揮發性記憶體系統,諸如NAND快閃記憶體系統150。快閃記憶體控制器140服務I/O命令,例如藉由存取NAND快閃記憶體系統150以自NAND快閃記憶體系統150讀取所請 求資料或將所請求資料寫入至該快閃記憶體系統中,如下文進一步所論述。在各種實施例中,快閃記憶體控制器140可例如由特殊應用積體電路(ASIC)或場可程式化閘陣列(FPGA)實施。在快閃記憶體控制器140藉由FPGA實施之實施例中,GPP 132可基於GPP記憶體134中之程式碼在資料儲存系統120之起動期間程式化及組態快閃記憶體控制器140
快閃記憶體控制器140耦接至快閃記憶體控制器記憶體,該快閃記憶體控制器記憶體在此實施例中包括快閃記憶體控制器非揮發性記憶體142及快閃記憶體控制器揮發性記憶體144兩者。快閃記憶體控制器非揮發性記憶體142可例如由MRAM、FRAM、PCM、電池備援之DRAM或其他非揮發性記憶體技術實施,且快閃記憶體控制器揮發性記憶體144可由諸如DRAM之相對廉價的揮發性記憶體技術實施。如圖2中進一步所指示,快閃記憶體控制器非揮發性記憶體142可包括主機寫入快取記憶體146,該主機寫入快取記憶體用於緩衝與自諸如處理器系統102之主機接收到之主機寫入命令相關聯的主機寫入資料。
快閃記憶體控制器140實施快閃記憶體轉譯層(FTL),該快閃記憶體轉譯層提供邏輯至實體位址轉譯以使得能夠存取NAND快閃記憶體系統150內之特定記憶體位置。一般而言,由快閃記憶體控制器140自主機裝置(諸如,處理器系統102)接收到之I/O命令含有待存取(讀取或寫入)資料所在的邏輯區塊位址(LBA),且若為主機寫入命令,則將主機寫入資料寫入至資料儲存系統120。I/O命令亦可指定待存取之資料的量(或大小)。取決於由資料儲存系統120所支援之協定及特徵,亦可傳達其他資訊。如熟習此項技術者已知的,在NAND快閃記憶體之一些實施中,可由主機讀取或主機寫入命令存取之最小資料區組為單個碼字,其可為例如8 或16千位元組(kB)。由主機裝置提供之LBA對應於邏輯位址空間內之邏輯頁,該邏輯頁可具有例如4kB或16kB之大小。此邏輯頁可進一步藉由快閃記憶體控制器140壓縮使得各實體頁可儲存一或多個邏輯頁。FTL將LBA轉譯成指派給NAND快閃記憶體系統150中之對應實體位置的實體位址。快閃記憶體控制器140可將邏輯位址與實體位址之間的映射儲存於邏輯至實體轉譯資料結構中,諸如邏輯至實體轉譯(LPT)表152,該資料結構可方便地儲存於快閃記憶體控制器揮發性記憶體144中。
圖2中進一步所展示,在所描繪之實施例中,快閃記憶體控制器揮發性記憶體144另外包括再定位寫入緩衝器148,該再定位寫入緩衝器用於緩衝由廢棄項目收集程序收集之待再定位於NAND快閃記憶體系統150內的資料。此外,快閃記憶體控制器揮發性記憶體144可視情況包括讀取快取記憶體156,該讀取快取記憶體用於緩衝來自NAND快閃記憶體系統150之最近及/或頻繁由主機讀取命令請求的資料。快閃記憶體控制器140亦可在快閃記憶體控制器揮發性記憶體144內儲存電壓臨限(Vth)移位資料154,該移位資料用以校準NAND快閃記憶體系統150之各種子集(例如,頁群組)的讀取電壓臨限,以及其他管理資料結構158,該等管理資料結構儲存管理資料,諸如位元錯誤率(BER)、程式化/抹除(P/E)循環計數、讀取計數以及其他區塊、頁群組及頁統計。
在各種實施例中,NAND快閃記憶體系統150可採取許多形式。現參看圖3至圖6,描繪根據一個實施例之NAND快閃記憶體系統150內的實體記憶體之例示性配置。
圖3中所展示,NAND快閃記憶體系統150可由四十(40)個可個別定址的NAND快閃記憶體儲存裝置形成。在所展示實例中,快閃 記憶體儲存裝置M0a至M19b中之各者採取能夠每胞元儲存兩個或多於兩個位元之板安裝式快閃記憶體模組的形式。在一個特定實施例中,記憶體模組由四位階胞元(QLC)NAND快閃記憶體實施,該快閃記憶體經組態為以混合分層配置操作,該配置包括以QLC模式操作之實體區塊之第一集區及以單位階胞元(SLC)模式操作之實體區塊之第二集區。四十個NAND快閃記憶體模組經配置成兩個模組之二十個群組:(M0a,M0b)至(M19a,M19b)。出於實體定址方案之目的,兩個模組之各群組形成「單工通道」(有時亦被稱作「通道」),使得NAND快閃記憶體系統150包括二十個通道或單工通道(單工通道0至單工通道19)。
在較佳實施例中,個別單工通道中之各者具有將其耦接至相關聯之快閃記憶體控制器140的各別相關聯匯流排。因此,藉由將其通信引導至特定通信匯流排中之一者,快閃記憶體控制器140可將其通信引導至記憶體模組之單工通道中之一者。因為用於給定單工通道之各通信匯流排獨立於用於其他單工通道之通信匯流排,所以快閃記憶體控制器140可跨越各種通信匯流排同時發佈命令且發送或接收資料,從而使得快閃記憶體控制器140能夠同時或幾乎同時存取對應於個別單工通道之快閃記憶體模組。
現參看圖4,展示可用以實施圖3之快閃記憶體模組M0a至M19b中之任一者的快閃記憶體模組400之例示性實施例。如圖4中所展示,由快閃記憶體模組400所提供之實體儲存位置進一步再分成可經由晶片啟用(CE)定址及/或識別之實體位置。在圖4之實例中,將各快閃記憶體晶片400之實體記憶體劃分成四個晶片啟用(CE0、CE1、CE2及CE3),各晶片啟用具有由快閃記憶體控制器140確證以使得能夠存取對應CE內之實 體記憶體位置或自該實體記憶體位置進行存取的各別CE線。各CE又再分成各自具有兩個或四個平面(例如,平面0及平面1)之多個晶粒(例如,晶粒0及晶粒1)。各平面表示實體區塊之集合,因為快閃記憶體晶片之實體佈局,該等實體區塊彼此實體上相關聯且利用共同電路系統(例如,I/O緩衝器)以用於執行各種操作,諸如讀取及寫入操作。
圖5至圖6中進一步所展示,可用以實施圖4之快閃記憶體模組400內的平面中之任一者的例示性平面500包括例如實體記憶體之512、2048或4096個區塊。一些製造商在此標稱區塊計數中包括額外區塊,此係因為一些區塊可能會由於製造缺陷而提前失效。一般而言,區塊為通常以實體方式彼此相關聯之實體頁之集合。此關聯使得區塊被定義為可在NAND快閃記憶體系統150內抹除之實體儲存位置之最小粒度。在圖6之實施例中,各區塊600包括幾百或數千個頁,例如512、1024或4096個實體頁,其中實體頁被定義為用於讀取及寫入存取之最小可個別定址的資料單元。在例示性系統中,資料之各實體頁具有用於資料儲存之共同容量(例如,16kB)加上用於頁後設資料之額外儲存空間。因此,資料通常係在逐頁基礎上寫入至NAND快閃記憶體系統150中或自該系統讀取,但係在逐區塊基礎上抹除。
在至少一些實施例中,區塊600中之各實體頁被指派給含有兩個或多於兩個實體頁之頁群組。由於實體頁屬於相同頁類型(例如,下部頁、上部頁、額外頁、頂部頁等),製造於晶片之同一實體層中等,控制器(例如,GPP 132或快閃記憶體控制器140)可基於實體頁之特性(例如,錯誤特性)的預期類似性而將區塊600之實體頁指派給頁群組。
因為由資料儲存系統120實施之FTL將可用於主機裝置之 邏輯位址空間與NAND快閃記憶體系統150內之實體記憶體隔離,所以NAND快閃記憶體系統150之大小無需等於呈現給主機裝置之邏輯位址空間之大小。在大多數實施例中,呈現大小比總可用實體記憶體小之邏輯位址空間為有益的(亦即,過度佈建NAND快閃記憶體系統150為有益的)。以此方式過度佈建確保了當充分利用邏輯位址空間時,實體記憶體資源為可用的,即使存在如上文所描述之一定量之無效資料亦如此。除容納尚未回收之無效資料以外,即使存在記憶體失敗及由使用資料保護方案(諸如,錯誤校正碼(ECC)、循環冗餘檢查(CRC)及同位檢查)所帶來的記憶體額外負荷,亦可使用過度佈建之空間來確保存在足夠邏輯空間。
在一些實施例中,將資料以一次一個實體頁之方式寫入至NAND快閃記憶體系統150。在需要更穩健之錯誤復原的其他實施例中,將資料寫入至NAND快閃記憶體系統150之相關聯實體頁的群組,其在本文中被稱作「頁等量區(page stripe)」。在一個實施例中,頁等量區之所有頁與不同單工通道相關聯以達成高寫入頻寬。因為在許多實施中,最小抹除單元為區塊,所以可將多個頁等量區分組成區塊等量區,其中區塊等量區中之各區塊與不同單工通道相關聯。當建置區塊等量區時,可選擇單工通道之任何自由區塊,但較佳地,同一區塊等量區內之所有區塊具有相同或類似的健康等級。應注意,區塊選擇可進一步受限於來自同一平面、晶粒及/或晶片啟用。區塊等量區之長度可變化,但在NAND快閃記憶體系統150包括20個單工通道之一個實施例中,各區塊等量區包括兩個至二十個區塊,其中各區塊來自不同單工通道。
一旦已自各單工通道選擇區塊且形成區塊等量區,頁等量區便較佳地由來自區塊等量區中之所有區塊的具有相同頁碼之實體頁形 成。雖然儲存至NAND快閃記憶體系統150中之各種頁等量區的長度可變化,但在一個實施例中,各頁等量區包括寫入資料之一個至二十個資料頁(通常由主機裝置提供)。在另一實施例中,頁等量區包括寫入資料之一個至十九個資料頁以及用以儲存寫入資料之資料保護資訊的一個額外頁(「資料保護頁」)。資料保護頁可置放於含有非淘汰頁之頁等量區之任何單工通道上,但通常針對同一區塊等量區之所有頁等量區而置放於同一單工通道上以最少化後設資料資訊。如所展示,添加資料保護頁需要針對同一區塊等量區之所有頁等量區同時執行廢棄項目收集。在區塊等量區之廢棄項目收集完成之後,區塊等量區可分解,且各區塊可置放至相關即用(RTU)佇列中,如下文所解釋。
在已描述資料儲存系統120之例示性實施例的一般實體結構及操作後,現參看圖7描述資料儲存系統120之某些操作態樣,該圖為展示根據一個實施例之由NAND快閃記憶體系統150(例如,GPP 132及/或快閃記憶體控制器140)之控制器使用的快閃記憶體管理功能及資料結構之高階資料流程圖。
如上文所提到,資料儲存系統120通常不允許外部裝置(例如,主機)直接定址及/或存取NAND快閃記憶體系統150內之實體記憶體位置。實情為,資料儲存系統120通常經組態以向主機裝置呈現一或多個邏輯磁碟區,該一或多個邏輯磁碟區各自具有連續的邏輯位址空間,因此允許主機裝置自邏輯位址空間內之邏輯區塊位址(LBA)讀取資料及將資料寫入至該等邏輯區塊位址,同時准許各種層級之控制器(例如,RAID控制器124、快閃記憶體控制器140及GPP 132)中之一或多者控制與各種LBA相關聯之資料實際上駐留於包含NAND快閃記憶體系統150之實體記憶體 位置中何處。以此方式,可智慧地管理及最佳化NAND快閃記憶體系統150之效能及壽命。在所展示的實施例中,各快閃記憶體控制器140使用邏輯至實體位址轉譯資料結構,諸如邏輯至實體轉譯(LPT)表152,對LBA之相關聯集合執行邏輯至實體位址轉譯,該轉譯資料結構可儲存於相關聯之快閃記憶體控制器揮發性記憶體144中。應注意,供應至快閃記憶體控制器140之邏輯位址可不同於最初供應至資料儲存系統120之邏輯位址,此係因為資料儲存系統120內之各種組件可執行外部裝置與快閃記憶體控制器140之間的位址轉譯操作。
在GPP 132上運行之快閃記憶體管理程式碼追蹤NAND快閃記憶體系統150之準備好用於即用(RTU)佇列700中的經抹除區塊,該等佇列可儲存於例如GPP記憶體134中。在所描繪之實施例中,在GPP 132上運行之快閃記憶體管理程式碼較佳每平面或通道維護一或多個RTU佇列700,且待再使用之各經抹除區塊之識別符被排入佇列於RTU佇列700中對應於其通道之一者中。舉例而言,在一個實施例中,對於各通道,RTU佇列700針對複數個區塊健康等級中之各者包括各別RTU佇列700。在各種實施中,已發現每平面2至8個RTU佇列700(及對應數目個區塊健康等級)足夠。
建置區塊等量區功能702(例如,由在GPP 132上運行之快閃記憶體管理程式碼執行)自排入佇列於RTU佇列700中之經抹除區塊建構新的區塊等量區。如上文所提到,區塊等量區較佳由駐留於不同通道中之具有相同或類似健康狀況(亦即,預期的剩餘使用壽命)之區塊形成,此意謂區塊等量區可方便地藉由建置區塊等量區功能702自不同平面或通道之對應RTU佇列700提取新區塊等量區之各區塊來建構。接著將新區塊等量 區排入佇列至快閃記憶體控制器140以供資料置放功能704進行資料置放。
資料置放功能704包括開放區塊佇列706,該等佇列追蹤由建置區塊等量區功能702建構之區塊等量區中的未經完全程式化區塊之識別符。如圖7中進一步所展示,資料置放功能704另外包括用於將主機寫入資料寫入至主機寫入快取記憶體(HWC)146中且用於將再定位寫入資料寫入至再定位寫入緩衝器148中之快取引擎714。資料置放功能704亦包括用於將資料自主機寫入快取記憶體146及再定位寫入緩衝器148寫入至在開放區塊佇列706中識別之NAND快閃記憶體系統150之開放區塊中的轉儲引擎716
回應於自諸如處理器系統102之主機接收到的主機寫入命令,快閃記憶體控制器140之資料置放功能704藉由參考LPT表152判定在主機寫入命令中指示之目標LBA當前是否映射至NAND快閃記憶體系統150中之實體頁,且若如此,則改變當前與目標LBA相關聯之各資料頁之狀態以指示其不再有效。快取引擎714另外將主機寫入命令之主機寫入資料寫入至主機寫入快取記憶體146中。一旦對主機寫入快取記憶體146之更新完成,快取引擎714便可立即經由I/O通道110將應答訊息(「Ack」)提供至發佈主機。快取引擎714亦針對由主機寫入命令指示之LBA而更新LPT 704中之條目,以指向主機寫入快取記憶體146中之主機寫入資料的位置。
為了服務主機寫入命令,資料置放功能702另外在必要時分配頁等量區以將主機寫入命令之寫入資料及來自為主機寫入命令之目標之現有頁等量區(若存在)的任何未更新資料(亦即,若寫入請求小於邏輯 頁,則仍存在需要以讀取-修改-寫入方式處置之有效資料)儲存,及/或將主機寫入命令之寫入資料及來自為主機寫入命令之目標之現有頁等量區(若存在)的任何未更新(亦即,仍有效)資料儲存至剩有自由空間之已分配頁等量區。可自已分配以保存資料之區塊等量區或自新區塊等量區分配頁等量區。在較佳實施例中,頁等量區分配可基於可用於分配之區塊的健康狀況以及寫入資料之LBA的「熱度」(亦即,所估計或所量測的寫入存取頻率)。資料置放功能704之轉儲引擎716接著針對來自主機寫入快取記憶體146之各碼字將主機寫入資料及相關聯後設資料(例如,CRC及ECC值)寫入至在開放區塊佇列706中識別之已分配頁等量區的頁中,且另外視需要將同位資訊寫入至已分配頁等量區之資料保護頁中。轉儲引擎716亦更新LPT表152以使主機寫入資料之LBA與用以儲存寫入資料之NAND快閃記憶體150中的實體頁之位址相關聯。此後,快閃記憶體控制器140可藉由參考LPT表152存取來自NAND快閃記憶體150之資料以服務主機讀取命令。
一旦區塊等量區中之所有頁皆已被寫入或區塊等量區以其他方式關閉,快閃記憶體控制器140便將區塊等量區之識別符置放於佔用區塊佇列708中之一者上,在GPP 132上運行之快閃記憶體管理程式碼利用該識別符來追蹤區塊以用於廢棄項目收集及其他管理功能。如上文所提到,經由寫入程序,頁無效,且因此NAND快閃記憶體系統150之部分變得未使用。相關聯之快閃記憶體控制器140(及/或GPP 132)最終需要經由廢棄項目收集器720所執行之廢棄項目收集來回收此空間。廢棄項目收集器720基於數個因素選擇用於廢棄項目收集之特定區塊等量區,該等因素包括例如區塊等量區內之實體區塊之健康狀況及實體區塊內有多少資料無 效。在至少一個實施例中,對整個區塊等量區執行廢棄項目收集,且廢棄項目收集器720向資料置放功能704之快取引擎714發佈再定位寫入命令,以將廢棄項目收集之區塊等量區中仍有效的資料再定位至另一區塊等量區。在實施混合分層配置之NAND快閃記憶體系統150中,該混合分層配置包括以較高儲存密度模式(例如,QLC模式)操作之實體區塊之第一集區及以較低儲存密度模式(例如,SLC模式)操作之實體區塊之第二集區,需要准許廢棄項目收集資料自以任一模式操作之舊區塊寫入至以任一模式操作之新區塊。因此,由廢棄項目收集器720發佈之再定位寫入命令可指定目標區塊等量區之所要操作模式,以支援例如QLC至QLC、SLC至QLC、SLC至SLC或QLC至SLC廢棄項目收集。
圖7中進一步所指示,由GPP 132及/或快閃記憶體控制器140執行之快閃記憶體管理功能另外包括:耗損均衡器722,其請求再定位保存於佔用區塊佇列708中之區塊等量區中的資料,以均衡跨越區塊之耗損;及集區平衡器724,其請求再定位保存於某些區塊等量區中之資料以允許重組態構成區塊中之一些或全部,從而以不同操作模式(例如,QLC或SLC)操作。
基於自廢棄項目收集器720、耗損均衡器722及集區平衡器724接收到之再定位寫入命令,快取引擎714將來自舊區塊等量區之再定位寫入資料儲存至快閃記憶體控制器揮發性記憶體144中之再定位寫入緩衝器148中。此外,快取引擎714可更新LPT表152以另外指向再定位寫入緩衝器148中之位置。一旦所有仍有效的資料已自舊區塊等量區移動且寫入至在開放區塊佇列706中識別之已分配頁等量區的新頁,轉儲引擎716便更新LPT表152以移除資料之邏輯位址與實體位址之間的當前關聯,且 使經再定位資料之LBA與用以儲存經再定位資料之NAND快閃記憶體150中的實體頁之位址相關聯。接著,分解舊區塊等量區,因此將區塊解除關聯,且將區塊之識別符重新排入佇列於抹除佇列710中,該等抹除佇列可每通道包括一個抹除佇列710。快閃記憶體控制器140之區塊抹除功能712接著抹除先前形成已分解區塊等量區之各區塊,且在管理資料結構158中遞增該區塊之相關聯程式化/抹除(P/E)循環計數。基於各經抹除區塊之健康量度,各經抹除區塊被淘汰(亦即,不再用以儲存使用者資料)或替代地藉由將區塊之識別符置放於相關聯GPP記憶體134中之適當即用(RTU)佇列700上來準備再使用。
圖7進一步展示GPP 132及/或快閃記憶體控制器140之快閃記憶體管理功能另外包括接收及服務多種不同讀取命令。此等讀取命令包括主機讀取命令,該等主機讀取命令指定藉由參考LPT 152而轉譯為實體位址的LBA。此外,讀取命令包括經發佈以促進廢棄項目收集器720、耗損均衡器722及集區平衡器724之工作的再定位讀取命令,如先前所描述。讀取命令亦可包括由讀取清除程式(scrubber)730起始之讀取命令,該讀取清除程式週期性地遍歷所有佔用區塊中之所有頁以便確保資料在保持之後仍可讀取。
回應於各種讀取命令,快閃記憶體控制器140起始對來自NAND快閃記憶體系統150之相關實體頁的一或多個碼字之讀取。自NAND快閃記憶體系統150讀取之各碼字藉由錯誤校正碼(ECC)引擎732處理,以偵測及校正(若可能)碼字中之位元錯誤(若存在)。ECC引擎732在校正之後將由主機讀取命令讀取之資料轉遞至請求主機(例如,處理器系統102中之一者)。ECC引擎732另外向背景健康檢查器734報告具有高位元 錯誤率(BER)之碼字。基於具有高BER之碼字的報告,背景健康檢查器734選擇性地命令校準引擎736以對含有碼字之區塊的一或多個頁群組執行讀取電壓臨限校準及/或資料驗證,如下文參看圖10至圖11進一步所描述。
如上文所提到,例如由於程式化/抹除循環、資料保持、讀取干擾、程式化干擾、列錘效應及/或其他原因,記憶體胞元之經程式化電壓分佈可在NAND快閃記憶體裝置之操作期間改變。圖8展示例示性三位階胞元(TLC)NAND快閃記憶體之區塊中的記憶體胞元之初始及後續經程式化電壓分佈的一個實例。特定而言,圖8描繪八個電壓分佈800a802a804a806a808a810a812a814a,其各自表示經程式化至TLC NAND快閃記憶體之區塊之記憶體胞元中的不同的各別三位元值。在最初程式化時,藉由參考七個初始讀取電壓臨限820a822a824a826a828a830a832a來區分儲存於個別記憶體胞元中之位元值。
圖8展示以下操作情境:其中隨時間推移,電荷去捕獲導致電壓分佈朝向較低電壓移位,如由後續電壓分佈800b802b804b806b808b810b812b814b所展示。在不校準讀取電壓臨限以適應電壓分佈之移位的情況下,在自記憶體胞元讀取資料中之錯誤可增加至ECC引擎732不再可校正錯誤且儲存於記憶體胞元中之資料不再可讀取的程度。因此,為減少資料錯誤且避免資料丟失,TLC NAND快閃記憶體之控制器較佳執行讀取電壓臨限校準以判定達成後續電壓分佈800b802b804b806b808b810b812b814b之改良讀取電壓臨限820b822b824b826b828b830b832b所需的電壓偏移。
在至少一個實施例中,控制器(例如,GPP 132及/或快閃記 憶體控制器140)實施校準引擎736,該校準引擎在各種校準操作中執行不同範圍之校準。舉例而言,在圖9之實施例中,校準引擎736可執行涵蓋給定區塊中之所有頁群組的「全區塊校準」或僅對區塊之單個頁群組進行的「單頁群組校準」。在此所描繪之實施例中,若校準引擎736選擇執行單頁群組校準,則校準引擎736較佳基於頁群組中之受影響頁的最佳電壓臨限而建立用以讀取頁群組中之所有實體頁的讀取電壓臨限,該受影響頁在讀取時觸發校準。下文參考圖10之區塊1020更詳細地描述此單頁群組校準之實例。在校準被認為代表頁群組中之所有實體頁的單個受影響頁之後,校準引擎736可將針對受影響頁而判定的電壓臨限應用於頁群組中之所有實體頁。校準引擎736亦可視情況驗證該校準,如下文關於圖10圖11之區塊1022至1024所論述。
圖9進一步展示,在一些狀況下,校準引擎736可選擇藉由針對區塊中之各個頁群組反覆地執行頁群組校準來執行全區塊校準。下文參考圖10之區塊10121018更詳細地描述此全區塊校準之實例。在至少一些實施例中,校準引擎736可支援多種不同校準技術,可每頁群組選擇性地應用該等校準技術以獲得在讀取電壓臨限校準過程中執行之讀取之數目與電壓臨限之最佳化程度之間的所要平衡。舉例而言,可利用所謂的「快速」校準來執行任何給定頁群組校準,其中僅針對頁群組之單個樣本實體頁而判定一或多個電壓臨限之偏移且接著將該等偏移應用於頁群組中之所有實體頁。基於特性化資料、操作資料(例如,健康狀況)或循環選擇,樣本頁之選擇可為隨機的。快速校準包括數目實質上低於「正常」校準之校準讀取,在正常校準中,利用電壓偏移之有限範圍(例如,高於及低於各當前讀取電壓臨限之3個電壓偏移)個別地判定頁群組中之所有實體 頁的讀取電壓臨限中之各者的電壓偏移。此正常校準技術又使用少於「擴展」校準技術之校準讀取,在擴展校準技術中,利用電壓偏移之較大範圍(例如,高於及低於各當前讀取電壓臨限之所有可能電壓偏移)個別地判定頁群組中之所有實體頁的讀取電壓臨限中之各者的電壓偏移。在校準各頁群組之後,校準引擎736可視情況驗證彼頁群組之校準,如下文關於圖10圖11之區塊10221024所論述。用於全區塊校準之校準技術,諸如快速、正常或擴展校準,在大多數狀況下為高效校準技術,但在特定狀況下(例如,當頁群組內之可變性大於預期時),可能無法判定使得能夠成功地讀取頁群組中之所有頁的讀取電壓臨限。另外,觸發校準之實體頁可能在不可校正之頁當中。儘管單頁群組校準亦可導致頁群組中之其他頁不可校正,但單頁群組校準具有受影響頁將可讀取之可能性顯著較高的優點。另一方面,若校準引擎736僅使用單頁群組校準,則總的校準額外負荷可隨著頁群組內之較高可變性而顯著增加,此係因為將必須更頻繁地重新校準頁群組。因此,藉由校準引擎736實施之全區塊及單頁群組校準技術為互補的。
現參看圖10,描繪根據一個實施例之例示性方法的高階邏輯流程圖,藉由該方法,控制器校準非揮發性記憶體之實體區塊的一或多個頁群組之讀取電壓臨限。為易於理解而另外參考圖7中展示之實施例所描述的所展示程序可例如藉由圖2之GPP 132及/或快閃記憶體控制器140執行。
圖10之程序開始於區塊1000且接著繼續進行至區塊1002,其展示背景健康檢查器734自ECC引擎732接收回應於讀取命令而自NAND快閃記憶體系統150讀取之碼字的錯誤報告。回應於接收到錯誤報 告,背景健康檢查器734在區塊1004處判定由ECC引擎732針對碼字報告之BER是否滿足(例如,大於或等於)校準臨限。舉例而言,背景健康檢查器734可將校準臨限設定為等於或低於碼字變得不可由ECC引擎732校正之BER。回應於在區塊1004處判定由ECC引擎732報告之BER不滿足校準臨限,圖10之程序在區塊1030處結束,直至背景健康檢查器734接收後續錯誤報告。然而,若背景健康檢查器734在區塊1004處判定BER滿足校準臨限,則背景健康檢查器734選擇待執行之校準之範圍(區塊1006)。
在所展示實例中,在區塊1006處,背景健康檢查器734在執行一或多個頁群組之子區塊頁群組校準(下文假設為含有觸發校準之碼字的頁群組之單頁群組校準,如圖9中所展示)與執行區塊中之所有頁群組的全區塊校準之間進行選擇。背景健康檢查器734可基於諸如以下各者之一或多個準則而進行在區塊1006處所展示之選擇:由ECC引擎732報告之錯誤計數、資料保持持續時間,及/或導致讀取所討論之碼字的讀取命令之類型(例如,主機讀取、再定位讀取、讀取清除程式讀取等)。舉例而言,在一些實施例中,若導致讀取碼字之讀取命令為主機讀取或再定位讀取,則背景健康檢查器734較佳選擇單頁群組校準,且若讀取命令由讀取清除程式730發佈,則較佳選擇全區塊校準。如由決策區塊1010所展示,若背景健康檢查器734在區塊1006處選擇全區塊校準,則校準處理繼續進行至區塊1012及後續區塊。替代地,若背景健康檢查器734在區塊1006處選擇單頁群組校準,則校準處理繼續進行至區塊1020及後續區塊。
現參考區塊1012,為執行全區塊校準,背景健康檢查器734選擇區塊中待校準之第一頁群組(或在後續反覆中,選擇下一頁群組)。背景健康檢查器734可在區塊1012處例如基於減少讀取干擾及/或其 他不期望的頁間干擾效應的頁群組排序而選擇待校準之頁群組。此外,在區塊1014處,背景健康檢查器734選擇待由校準引擎736對選定頁群組執行之技術。所選擇之校準技術可取決於正由GPP 132或快閃記憶體控制器140追蹤之各種狀態資訊。舉例而言,在區塊1014處,背景健康檢查器734可自上文參看圖9所描述之快速、正常及擴展校準技術當中進行選擇。舉例而言,背景健康檢查器734可基於觸發校準之碼字的BER而進行區塊1014處所描繪之選擇,其中對具有較高BER之碼字執行資源較密集類型之校準中之一者且其中對具有較低BER之碼字執行資源較不密集類型之校準中之一者。
在區塊1016處,背景健康檢查器734起始藉由校準引擎736校準選定頁群組之選定技術。在一些實施例中,各實體頁儲存多個碼字,且校準僅對在校準過程中存取之頁群組之各實體頁中的單個碼字執行校準讀取。校準引擎736使用搜尋最佳讀取電壓臨限之反覆程序。在此反覆程序中,校準引擎736利用不同讀取電壓臨限偏移發出多個讀取命令且選擇最小化ECC引擎732偵測到之錯誤的數目的彼等命令。在完成校準頁群組後,校準引擎736用與預設電壓臨限之新偏移更新頁群組之Vth移位資料154。在區塊1016處校準選定頁群組之後,圖10之程序分叉且平行於區塊1018繼續進行,且若實施,則繼續進行至下文所描述之可選區塊1022。區塊1018展示背景健康檢查器734判定區塊中之所有頁群組是否已校準。若否,則程序返回至已經描述之區塊1012。然而,若背景健康檢查器734在區塊1018處判定區塊中之所有頁群組已藉由校準引擎736校準,則程序自區塊1018繼續進行至下文所描述之區塊1026
現參考區塊1020,基於背景健康檢查器734選擇執行單頁 群組校準,背景健康檢查器734起始藉由校準引擎736對含有觸發校準之碼字的頁群組之校準。在較佳實施例中,背景健康檢查器734使校準引擎736選擇儲存觸發校準之受影響碼字的實體頁作為代表頁群組中之所有頁的樣本頁。在每實體頁儲存多個碼字之一些實施例中,背景健康檢查器734可進一步將校準讀取僅限於觸發校準之受影響碼字。校準引擎736可接著使用上文參考區塊1016所描述之相同反覆校準讀取以判定最佳讀取臨限電壓。在一些實施例或操作情境中,在校準受影響碼字或儲存受影響碼字之實體頁的讀取電壓臨限之後,校準引擎736可用指示讀取電壓臨限與預設電壓臨限之偏移的經更新值更新Vth移位資料154,使得利用經更新讀取電壓臨限服務對頁群組之未來讀取命令。在其他實施例或操作情境中,由校準引擎736判定之讀取電壓臨限值可替代地用以滿足讀取命令觸發校準,但不用以更新Vth移位資料154。舉例而言,若頁群組及/或區塊中之資料可能經再定位,則廢棄項目收集器720、耗損均衡器722、集區平衡器724、讀取清除程式730或背景健康檢查器734可判定不用讀取電壓臨限之新偏移更新Vth移位資料154,例如,如下文參考圖11之區塊1122所論述。在區塊1020處校準單個頁群組之後,圖10之程序分叉且平行於區塊1026繼續進行,且若實施,則繼續進行至可選區塊1022
區塊1022描繪背景健康檢查器734判定是否對已在區塊1016或區塊1020處執行校準之頁群組執行驗證。舉例而言,在區塊1022處,背景健康檢查器734可基於諸如以下各者之因素而選擇性地繞過驗證以便減小額外負荷:頁類型(例如,下部頁、上部頁、額外頁、頂部頁等)、由頁群組之校準進行的電壓臨限之改變、區塊健康狀況、P/E循環計數、校準前及校準後BER、區塊中之頁群組的層(字線)位置及/或自程式化 以來已讀取區塊、頁群組或頁之次數。舉例而言,在一個實施例中,背景健康檢查器734可基於觸發校準之碼字可由ECC引擎732校正而判定繞過或放棄驗證。在其他實施例中,即使觸發校準之碼字可藉由ECC引擎732基於一或多個因素來校正,背景健康檢查器734亦可判定執行驗證,該一或多個因素指示給定實體頁之不同碼字或同一頁群組中之不同實體頁中之碼字的最佳讀取電壓臨限值可發散。回應於區塊1022處之否定判定,程序之分支繼續進行至連接點1028。然而,若背景健康檢查器734在區塊1022處判定對頁群組執行驗證,則程序繼續進行至區塊1024,其展示背景健康檢查器734對頁群組執行驗證。下文參看圖11描述用於在區塊1024處執行驗證的例示性程序。在區塊1024之後,程序繼續進行至連接點1028
現參考區塊1026,若觸發讀取電壓臨限之校準的讀取命令為主機讀取命令,則控制器將所請求讀取資料(利用新校準之讀取電壓臨限進行讀取且若需要,則由ECC引擎732校正)傳回至主機。此後,圖10之程序繼續進行至連接點1028,且一旦由校準起始之所有頁群組驗證(若存在)在區塊1024處已完成,則在區塊1030處結束。
現參看圖11,展示根據一個實施例之例示性方法的高階邏輯流程圖,藉由該方法,控制器視情況驗證讀取電壓臨限校準之結果。所展示程序可例如藉由圖2之GPP 132及/或快閃記憶體控制器140執行,且假定各實體頁儲存多個碼字之實施例。
圖11之程序開始於區塊1100,且接著繼續進行至區塊1102,其描繪背景健康檢查器734發佈自相關頁群組之樣本實體頁讀取未用於校準之碼字的讀取命令。舉例而言,若執行單頁群組校準,則在區塊 1102處讀取之碼字為與觸發校準之受影響碼字在同一實體頁中的不同碼字。若在全區塊校準過程中校準頁群組,則碼字可為代表頁群組之樣本頁的未用以校準頁群組之碼字。在區塊1104處,背景健康檢查器734判定用於校準之碼字的校準後BER與在區塊1102處讀取之另一碼字之BER之間的發散是否滿足(例如,大於或等於)第一發散臨限。若如此,則背景健康檢查器734認識到,校準在降低受影響實體頁或樣本實體頁上之BER方面不成功,且因此在區塊1120處執行減輕,如下文所描述。然而,若背景健康檢查器734在區塊1104處判定碼字之BER之間的發散不滿足第一發散臨限,則程序繼續進行至區塊1106
區塊1106描繪背景健康檢查器734發佈自除受影響實體頁或樣本實體頁以外之相關頁群組的實體頁讀取未用於校準之碼字的讀取命令。背景健康檢查器734接著在區塊1108處判定用於校準之碼字的校準後BER與在區塊1106處讀取之另一碼字的BER之間的發散是否滿足(例如,大於或等於)第二發散臨限。在各種實施例中,第二發散臨限可與第一發散臨限相同或不同。回應於在區塊1108處判定BER發散滿足第二發散臨限,背景健康檢查器734認識到,校準在降低頁群組上之BER方面不成功,且因此在區塊1120處執行減輕,如下文所描述。然而,若背景健康檢查器734在區塊1106處判定碼字之BER之間的發散不滿足第二發散臨限,則頁群組之校準被驗證為成功的,且驗證程序在區塊1130處結束。
現參考區塊1120,為了減輕在區塊1104或區塊1108處偵測到之BER發散,背景健康檢查器734可執行多種減輕活動中之任一者。在所描繪之實例中,背景健康檢查器734觸發含有經校準之頁群組的區塊中之所有有效資料的再定位(例如,藉由廢棄項目收集器720)(區塊1122)。 應注意,若受影響頁需要讀取有效資料,則再定位程序可較佳利用單頁群組校準。背景健康檢查器734另外在區塊1124處例如基於在區塊中是否已偵測到臨限數目個BER發散及/或頁群組之樣本頁的校準後BER是否實質上小於ECC引擎732之校正限制而判定是否淘汰區塊。回應於區塊健康檢查器734在區塊1122處判定不淘汰區塊,控制器經由如上文所描述之抹除佇列710、區塊抹除功能712及RTU佇列700再循環區塊(區塊1126)。否則,控制器使區塊退出使用(區塊1128)。在區塊1126或區塊1128之後,圖11之程序在區塊1130處結束。
如已描述,在至少一個實施例中,非揮發性記憶體之控制器偵測自非揮發性記憶體之特定實體頁讀取的資料中之錯誤。基於偵測到錯誤,控制器對包括特定實體頁及多個其他實體頁之頁群組執行讀取電壓臨限校準。執行讀取電壓臨限校準包括僅基於頁群組之特定實體頁而校準讀取電壓臨限。在控制器執行讀取電壓臨限校準之後,控制器視情況驗證該校準。驗證該校準包括判定頁群組內之位元錯誤率是否發散,且若如此,則減輕發散。減輕發散包括將資料自頁群組再定位至非揮發性記憶體之另一區塊。
有利地,所描述之校準技術准許控制器在讀取資料路徑中提供線上校準,且因此更快速地對讀取資料路徑中之錯誤作出回應。此外,所描述之校準技術可保證導致執行校準之實體頁將用作其頁群組之樣本實體頁。
在至少一些實施例中,頁群組校準可併入至亦包括全區塊校準之現有校準架構中。基於一或多個因素,控制器可判定校準之適當範圍。舉例而言,控制器可選擇全區塊校準以用於由讀取清除程式讀取命令 觸發之校準,且可選擇單頁群組校準以用於由再定位讀取命令或主機讀取命令觸發之校準。
本發明可為一種系統、一種方法及/或一種電腦程式產品。該電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上具有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可留存及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為例如但不限於電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶隨身碟、軟碟、經機械編碼裝置(諸如,上面記錄有指令之打孔卡或凹槽中之凸起結構)及前述各者之任何合適組合。如本文中所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由電線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別運算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光學傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。各運算/處理裝置中之網路配接器卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以供儲存於各別運算/處 理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合編寫的組譯器指令、指令集架構(ISA)指令、機器指令、機器相依指令、微碼、韌體指令、狀態設定資料或原始程式碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及習知程序性程式設計語言,諸如「C」程式設計語言或類似程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行、部分地在使用者電腦上執行、作為獨立套裝軟體執行、部分地在使用者電腦上執行且部分地在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在後一情境中,遠端電腦可經由包括區域網路(LAN)或廣域網路(WAN)之任何類型之網路連接至使用者之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA)之電子電路系統可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文中參考根據本發明之實施例的方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖之各區塊,以及流程圖說明及/或方塊圖中之區塊的組合。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理設備之處理器以產生機器,以使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令創建用於實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作的構件。亦可將此等電腦可讀程 式指令儲存於電腦可讀儲存媒體中,該等指令可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在電腦、其他可程式化設備或其他裝置上執行以產生電腦實施程序,使得在電腦、其他可程式化設備或其他裝置上執行之指令實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之各區塊可表示指令之模組、片段或部分,其包含用於實施指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所提到的功能可能不以諸圖中所提到的次序發生。舉例而言,取決於所涉及的功能性,連續展示之兩個區塊實際上可實質上同時執行,或該等區塊可有時以相反次序執行。亦將注意,可藉由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統來實施方塊圖及/或流程圖說明之各區塊,及方塊圖及/或流程圖說明中之區塊之組合。
雖然如參考一或多個較佳實施例所描述已特定地展示了本發明,但熟習此項技術者應理解,在不脫離隨附申請專利範圍之精神及範圍的情況下,可在本發明中進行形式及細節上之各種改變。舉例而言,儘管已關於包括指導某些功能之快閃記憶體控制器的資料儲存系統描述了態樣,但應理解,本發明可替代地實施為包括儲存裝置之程式產品,該儲存 裝置儲存可由處理器處理以執行此等功能或導致執行此等功能的程式碼。如本文中所使用,「儲存裝置」特定地定義為僅包括法定製品且不包括傳輸媒體本身、暫時性傳播信號本身及能量形式本身。
此外,儘管已描述包括使用NAND快閃記憶體之實施例,但應瞭解,本發明之實施例亦可與其他類型之非揮發性隨機存取記憶體(NVRAM)一起使用,包括例如磁阻式RAM(MRAM)、鐵電RAM(FRAM)、相變記憶體(PCM)、電池備援式DRAM或其他非揮發性記憶體技術,及其組合。
上文所描述之諸圖以及特定結構及功能的書面描述並非呈現以限制申請人已發明之內容的範圍或隨附申請專利範圍之範圍。確切而言,提供諸圖及書面描述以教示任何熟習此項技術者製作及使用尋求專利保護的發明。熟習此項技術者將瞭解,為清楚及理解起見,並未描述或展示本發明之商業實施例的所有特徵。熟習此項技術者亦將瞭解,併有本發明之態樣的實際商業實施例之開發將需要眾多實施特定決策以達成開發者對商業實施例之最終目標。此等實施特定決策可包括且可能並不限於符合系統相關、企業相關、政府相關約束及其他約束,該等約束可能因特定實施、位置且不定期地變化。雖然開發者之努力在絕對意義上可能係複雜且耗時的,但對於得益於本公開之熟習此項技術者而言,此類努力將為常規任務。必須理解,本文中所揭示及教示之本發明容易具有眾多及各種修改以及替代形式。最後,諸如但不限於「一」之單數術語的使用並不意欲限制項目之數目。
1000:區塊
1002:區塊
1004:區塊
1006:區塊
1010:決策區塊
1012:區塊
1014:區塊
1016:區塊
1018:區塊
1020:區塊
1022:可選區塊
1024:區塊
1026:區塊
1028:連接點
1030:區塊

Claims (18)

  1. 一種在一非揮發性記憶體中之讀取電壓臨限校準的方法,該方法包含:該非揮發性記憶體之一控制器偵測自該非揮發性記憶體之一特定實體頁讀取的資料中之錯誤;基於偵測到該等錯誤,該控制器對包括該特定實體頁及多個其他實體頁之一頁群組執行一讀取電壓臨限校準,其中執行該讀取電壓臨限校準包括僅基於該頁群組之該特定實體頁而校準讀取電壓臨限;及在該控制器執行該讀取電壓臨限校準之後,該控制器驗證該校準,其中驗證該校準包括:判定該頁群組內之位元錯誤率是否發散;及基於該控制器判定該頁群組內之位元錯誤率是否發散,該控制器減輕該發散,其中該減輕包括該控制器將資料自該頁群組再定位至該非揮發性記憶體之另一區塊。
  2. 如請求項1之方法,其中:該特定實體頁儲存資料之多個碼字,包括偵測到該等錯誤之一第一碼字以及一第二碼字;執行該讀取電壓臨限校準包括基於該第一碼字而非該第二碼字校準讀取電壓臨限。
  3. 如請求項1之方法,其進一步包含: 該控制器自僅校準一單個頁群組之一單頁群組校準及校準非揮發性記憶體之一區塊中的所有多個頁群組之一全區塊校準當中選擇校準之一範圍。
  4. 如請求項3之方法,其中該選擇包括基於回應於由該控制器發起之一讀取清除程式讀取命令而自該非揮發性記憶體讀取該資料,該控制器選擇該全區塊校準。
  5. 如請求項3之方法,其中該選擇包括基於回應於由一主機發起之一主機讀取命令而自該非揮發性記憶體讀取該資料,該控制器選擇該單頁群組校準。
  6. 如請求項1之方法,其中:該頁群組為一第一頁群組;且該方法進一步包含:在該非揮發性記憶體中之一第二頁群組的讀取電壓臨限校準之後,該控制器判定該第二頁群組中之位元錯誤率發散的一可能性;及基於判定該第二頁群組中之位元錯誤率發散的一低可能性,該控制器避免驗證該第二頁群組之該讀取電壓臨限校準。
  7. 一種程式產品,其包含:一儲存裝置;及 程式碼,其儲存於該儲存裝置中且可由一非揮發性記憶體之一控制器執行以使該控制器執行以下操作:偵測自該非揮發性記憶體之一特定實體頁讀取的資料中之錯誤;基於偵測到該等錯誤,對包括該特定實體頁及多個其他實體頁之一頁群組執行一讀取電壓臨限校準,其中執行該讀取電壓臨限校準包括僅基於該頁群組之該特定實體頁而校準讀取電壓臨限;及在該控制器執行該讀取電壓臨限校準之後,驗證該校準,其中驗證該校準包括:判定該頁群組內之位元錯誤率是否發散;及基於該控制器判定該頁群組內之位元錯誤率是否發散,減輕該發散,其中該減輕包括該控制器將資料自該頁群組再定位至該非揮發性記憶體之另一區塊。
  8. 如請求項7之程式產品,其中:該特定實體頁儲存資料之多個碼字,包括偵測到該等錯誤之一第一碼字以及一第二碼字;執行該讀取電壓臨限校準包括基於該第一碼字而非該第二碼字校準讀取電壓臨限。
  9. 如請求項7之程式產品,其中該程式碼進一步使該控制器執行以下操作:自僅校準一單個頁群組之一單頁群組校準及校準非揮發性記憶體之一區塊中的所有多個頁群組之一全區塊校準當中選擇校準之一範圍。
  10. 如請求項9之程式產品,其中該選擇包括基於回應於由該控制器發起之一讀取清除程式讀取命令而自該非揮發性記憶體讀取該資料,該控制器選擇該全區塊校準。
  11. 如請求項9之程式產品,其中該選擇包括基於回應於由一主機發起之一主機讀取命令而自該非揮發性記憶體讀取該資料,該控制器選擇該單頁群組校準。
  12. 如請求項7之程式產品,其中:該頁群組為一第一頁群組;且該程式碼進一步使該控制器執行以下操作:在該非揮發性記憶體中之一第二頁群組的讀取電壓臨限校準之後,判定該第二頁群組中之位元錯誤率發散的一可能性;及基於判定該第二頁群組中之位元錯誤率發散的一低可能性,避免驗證該第二頁群組之該讀取電壓臨限校準。
  13. 一種控制一非揮發性記憶體之方法,該方法包含:一控制器對包括該非揮發性記憶體之多個實體頁的一頁群組執行一讀取電壓臨限校準;在該控制器執行該讀取電壓臨限校準之後,該控制器驗證該校準,其中驗證該校準包括:判定該頁群組內之位元錯誤率是否發散;及 基於該控制器判定該頁群組內之位元錯誤率是否發散,該控制器減輕該發散,其中該減輕包括該控制器將資料自該頁群組再定位至該非揮發性記憶體之另一區塊。
  14. 如請求項13之方法,其中:該頁群組為一第一頁群組;且該方法進一步包含:在該非揮發性記憶體中之一第二頁群組的讀取電壓臨限校準之後,該控制器判定該第二頁群組中之位元錯誤率發散的一可能性;及基於判定該第二頁群組中之位元錯誤率發散的一低可能性,該控制器避免驗證該第二頁群組之該讀取電壓臨限校準。
  15. 如請求項14之方法,其中判定該第二頁群組中之該等位元錯誤率發散的一可能性包括基於以下設定中之至少一者而判定該等位元錯誤率發散的該可能性:用於該第二頁群組之該讀取電壓校準中的該第二頁群組之一樣本頁的一頁類型;含有該樣本頁之一記憶體晶片的一實體層;及包括該第二頁群組之該非揮發性記憶體的一區塊之一健康狀況。
  16. 如請求項13之方法,其中判定該頁群組內之位元錯誤率是否發散包括判定位元錯誤率在該頁群組之一特定頁中的碼字之間是否發散。
  17. 如請求項13之方法,其中判定該頁群組內之位元錯誤率是否發散包括判定位元錯誤率在該頁群組之不同實體頁之間是否發散。
  18. 如請求項13之方法,其中執行該讀取電壓臨限校準包括僅基於回應於一讀取命令而自偵測到錯誤之該頁群組之一特定實體頁讀取的資料而校準該頁群組之讀取電壓臨限。
TW111126221A 2021-12-27 2022-07-13 頁群組讀取電壓臨限校準 TWI820797B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/562,772 2021-12-27
US17/562,772 US11875831B2 (en) 2021-12-27 2021-12-27 Page group read voltage threshold calibration

Publications (2)

Publication Number Publication Date
TW202326736A TW202326736A (zh) 2023-07-01
TWI820797B true TWI820797B (zh) 2023-11-01

Family

ID=84487542

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111126221A TWI820797B (zh) 2021-12-27 2022-07-13 頁群組讀取電壓臨限校準

Country Status (3)

Country Link
US (1) US11875831B2 (zh)
TW (1) TWI820797B (zh)
WO (1) WO2023126111A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201438015A (zh) * 2013-03-26 2014-10-01 Phison Electronics Corp 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
US20190066802A1 (en) * 2017-08-29 2019-02-28 Ashutosh Malshe Read voltage calibration based on host io operations
TWI686804B (zh) * 2019-04-26 2020-03-01 大陸商深圳大心電子科技有限公司 資料讀取方法、儲存控制器與儲存裝置
US20200118620A1 (en) * 2018-10-12 2020-04-16 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251909B1 (en) 2014-09-29 2016-02-02 International Business Machines Corporation Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory
US10365859B2 (en) * 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US10453537B1 (en) 2018-05-10 2019-10-22 International Business Machines Corporation Techniques for reducing read voltage threshold calibration in non-volatile memory
US10552063B2 (en) 2018-06-21 2020-02-04 International Business Machines Corporation Background mitigation reads in a non-volatile memory system
US10614881B2 (en) 2018-08-13 2020-04-07 International Business Machines Corporation Calibration of open blocks in NAND flash memory
US10699791B2 (en) 2018-08-24 2020-06-30 International Business Machines Corporation Adaptive read voltage threshold calibration in non-volatile memory
US10983847B2 (en) 2019-02-15 2021-04-20 Red Hat, Inc. Dynamically loadable unikernel binaries
US11513879B2 (en) * 2019-02-20 2022-11-29 Seagate Technologies Llc Detection and mitigation for solid-state storage device read failures due to weak erase
US11107550B2 (en) 2019-07-12 2021-08-31 Micron Technology, Inc. Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates
US11056199B2 (en) 2019-10-30 2021-07-06 International Business Machines Corporation Updating corrective read voltage offsets in non-volatile random access memory
US11086717B2 (en) 2019-10-31 2021-08-10 Seagate Technology Llc Random selection of code words for read voltage calibration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201438015A (zh) * 2013-03-26 2014-10-01 Phison Electronics Corp 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
US20190066802A1 (en) * 2017-08-29 2019-02-28 Ashutosh Malshe Read voltage calibration based on host io operations
US20200118620A1 (en) * 2018-10-12 2020-04-16 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
TWI686804B (zh) * 2019-04-26 2020-03-01 大陸商深圳大心電子科技有限公司 資料讀取方法、儲存控制器與儲存裝置

Also Published As

Publication number Publication date
TW202326736A (zh) 2023-07-01
US11875831B2 (en) 2024-01-16
WO2023126111A1 (en) 2023-07-06
US20230207023A1 (en) 2023-06-29

Similar Documents

Publication Publication Date Title
US10082962B2 (en) Wear leveling of a memory array
US10236067B2 (en) State-dependent read voltage threshold adaptation for nonvolatile memory
US10235283B2 (en) Techniques for supporting in-place updates with a log-structured array controller
US10824352B2 (en) Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
US10496293B2 (en) Techniques for selecting storage blocks for garbage collection based on longevity information
US10884914B2 (en) Regrouping data during relocation to facilitate write amplification reduction
US10592110B2 (en) Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
US10552288B2 (en) Health-aware garbage collection in a memory system
US10170195B1 (en) Threshold voltage shifting at a lower bit error rate by intelligently performing dummy configuration reads
JP6855102B2 (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
US10365859B2 (en) Storage array management employing a merged background management process
US10956317B2 (en) Garbage collection in non-volatile memory that fully programs dependent layers in a target block
US9898215B2 (en) Efficient management of page retirement in non-volatile memory utilizing page retirement classes
US10254981B2 (en) Adaptive health grading for a non-volatile memory
US9524116B1 (en) Reducing read-after-write errors in a non-volatile memory system using an old data copy
US10489086B1 (en) Reducing read errors by performing mitigation reads to blocks of non-volatile memory
US9740609B1 (en) Garbage collection techniques for a data storage system
US10936205B2 (en) Techniques for retention and read-disturb aware health binning
US20190391746A1 (en) Background mitigation reads in a non-volatile memory system
TWI792892B (zh) 鏡像資料至非揮發性記憶體之控制器之寫入快取中
US20170115900A1 (en) Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
US10115472B1 (en) Reducing read disturb effect on partially programmed blocks of non-volatile memory
US9417809B1 (en) Efficient management of page retirement in non-volatile memory utilizing page retirement classes
US20190391752A1 (en) Block health estimation for wear leveling in non-volatile memories
TWI820797B (zh) 頁群組讀取電壓臨限校準