TW201413736A - 使用錯誤率之損耗平衡記憶體 - Google Patents
使用錯誤率之損耗平衡記憶體 Download PDFInfo
- Publication number
- TW201413736A TW201413736A TW102122430A TW102122430A TW201413736A TW 201413736 A TW201413736 A TW 201413736A TW 102122430 A TW102122430 A TW 102122430A TW 102122430 A TW102122430 A TW 102122430A TW 201413736 A TW201413736 A TW 201413736A
- Authority
- TW
- Taiwan
- Prior art keywords
- groups
- memory
- program loop
- memory cells
- error rate
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000004044 response Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001568 sexual effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- 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
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明係關於使用錯誤率之損耗平衡記憶體。諸多實施例包括:至少部分基於對應於某數目個記憶體胞群組之一選定群組之一程序循環計數而將資料程式化至該選定群組;判定對應於該選定群組之一錯誤率;及至少部分基於對應於該選定群組之該所判定錯誤率而調整對應於該選定群組之該程序循環計數。
Description
本發明大體上係關於半導體記憶體及方法,且更特定言之,本發明係關於使用錯誤率之損耗平衡記憶體。
記憶體器件通常用作為電腦或其他電子器件中之內部半導體積體電路。存在諸多不同類型之記憶體,其包含揮發性記憶體及非揮發性記憶體。揮發性記憶體需要電力來保存其資料,且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM),以及其他。非揮發性記憶體可在被斷電時藉由保存所儲存之資料而提供持久資料,且可包含反及快閃記憶體、反或快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、電阻隨機存取記憶體(RRAM)及磁阻隨機存取記憶體(MRAM)),以及其他。
記憶體器件可被組合在一起以形成一記憶體系統之一儲存容量,諸如一固態硬碟(SSD)。一固態硬碟可包含非揮發性記憶體(例如反及快閃記憶體及反或快閃記憶體)及/或可包含揮發性記憶體(例如DRAM及SRAM),以及各種其他類型之非揮發性及揮發性記憶體。
一SSD可用於代替硬碟機作為一電腦之主儲存容量,此係因為固態硬碟可在效能、大小、重量、耐用性、操作溫度範圍及功率消耗方
面優於硬碟機。例如,SSD可歸因於其缺乏移動部件而具有比磁碟機優異之效能,其可避免與磁碟機相關聯之搜尋時間、延時及其他機電延遲。
歸因於與程式化及擦除操作相關聯而使電子移動穿過(例如經由量子力學穿隧)隧道氧化物層而使隧道氧化物層受損,快閃記憶體胞經歷損耗。因而,一SSD之記憶體胞可隨器件壽命縮短而經歷資料保存問題。作為一實例,可預期,在一SSD達到一持續時間極限(其可涉及程式化/擦除(P/E)循環之次數,若超過該次數,則該SSD不再可靠)之前,一些快閃記憶體胞(例如多位階記憶體胞(MLC))維持每記憶體胞10,000個P/E循環。
可例如基於一SSD之最弱記憶體器件(例如晶粒)而判定該SSD之壽命。作為一實例,在一SSD之一記憶體器件內之記憶體胞之個別群組(例如區塊及/或實體頁)開始出現增加位元錯誤(例如無法由一錯誤偵測/校正組件校正之位元錯誤量)之後,整個SSD可被視為已達到其壽命終點。
為在一SSD之記憶體胞群組之間擴散損耗,可使用被稱為損耗平衡之一程序。此損耗平衡可防止特定記憶體胞經歷比其他記憶體胞明顯更多之損耗,其可延長一SSD之壽命。SSD控制器可實施具有變動複雜性及/或精緻性之損耗平衡演算法以在該SSD之記憶體胞之間維持均勻損耗。作為一實例,一些損耗平衡演算法可導致記憶體胞區塊之間之小於0.5%或更小之損耗差異。
100‧‧‧計算系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧主機介面
108‧‧‧控制器
110-1至110-N‧‧‧記憶體器件
114‧‧‧記憶體管理組件
116‧‧‧損耗平衡組件
118‧‧‧錯誤偵測/校正組件
210‧‧‧記憶體器件
219-1至219-B‧‧‧實體區塊
220-1至220-R‧‧‧實體列
222-1至222-S‧‧‧區段
560‧‧‧表
562‧‧‧記憶體胞群組
563‧‧‧判定錯誤率
564‧‧‧程序循環計數
565‧‧‧選定群組
567‧‧‧程序循環計數
569‧‧‧程序循環計數
570‧‧‧表
圖1係根據本發明之諸多實施例之呈包含至少一記憶體系統之一計算系統之形式之一裝置之一方塊圖。
圖2繪示根據本發明之諸多實施例之具有組織為某數目個實體區塊之記憶體胞群組之一記憶體器件之一部分之一圖式。
圖3繪示根據本發明之諸多實施例之操作一記憶體之一方法。
圖4繪示根據本發明之諸多實施例之操作一記憶體之一方法。
圖5繪示根據本發明之諸多實施例之操作一記憶體之一方法之一功能流程圖。
本發明係關於使用錯誤率之損耗平衡記憶體。諸多實施例包括:至少部分基於對應於某數目個記憶體胞群組之一選定群組之一程序循環計數而將資料程式化至該選定群組;判定對應於該選定群組之一錯誤率;及至少部分基於對應於該選定群組之該所判定錯誤率而調整對應於該選定群組之該程序循環計數。
本發明之諸多實施例可相較於前述技術而改良損耗平衡,其可例如延長一記憶體裝置(例如一SSD)之有用壽命。如本文中進一步所描述,諸多實施例可提供相較於前述損耗平衡方法之益處(諸如減小預留空間(over provisioning)、減少功率消耗及改良資料可靠性及/或完整性),以及其他益處。
在本發明之以下詳細描述中,參考構成本發明之一部分之附圖,且在附圖中以繪示方式展示可如何實踐本發明之諸多實施例。此等實施例被足夠詳細地描述以使一般技術者能夠實踐本發明之該等實施例,且應瞭解:可利用其他實施例;及可在不脫離本發明之範疇之情況下作出程序、電性及/或結構變化。
如本文中所使用,「某數目個」事物可意指一或多個此事物。例如,某數目個記憶體器件可意指一或多個記憶體器件。另外,如本文中所使用,標示符「N」、「B」、「R」及「S」(尤其相對於圖式中之參考數字)指示:本發明之諸多實施例中可包含某數目個如此標示之特定特徵。
本文中之圖遵循一編號慣例,其中首位或前幾位數字對應於圖
式圖號且剩餘數字識別圖式中之一元件或組件。可藉由使用類似數字而識別不同圖之間之類似元件或組件。例如,110可意指圖1中之元件「10」,且一類似元件可在圖2中標示為210。應瞭解,本文各種實施例中所展示之元件可被添加、交換及/或消除以便提供本發明之諸多額外實施例。另外,應瞭解,圖中所提供元件之比例及相對尺度意欲繪示本發明之實施例,而不應被視為意指限制。
圖1係根據本發明之諸多實施例之呈包含至少一記憶體系統104之一計算系統100之形式之一裝置之一方塊圖。如本文中所使用,一記憶體系統104、一控制器108或一記憶體器件110亦可被單獨視為一「裝置」。記憶體系統104可例如為一固態硬碟(SSD),且可包含一主機介面106、一控制器108(例如一處理器及/或其他控制電路)及某數目個記憶體器件110-1至110-N(例如固態記憶體器件,諸如反及快閃器件)(其等提供記憶體系統104之一儲存容量)。在諸多實施例中,控制器108、一記憶體器件110-1至110-N及/或主機介面106可實體地位於一單一晶粒上或一單一封裝內(例如一管理反及應用)。此外,在諸多實施例中,一記憶體(例如記憶體器件110-1至110-N)可包含一單一記憶體器件。
如圖1中所繪示,控制器108可經由複數個通道而耦合至主機介面106及記憶體器件110-1至110-N,且可用於在記憶體系統104與一主機102之間傳送資料。介面106可呈一標準化介面之形式。例如,當記憶體系統104在一計算系統100中用於資料儲存時,介面106可為串列進階附接技術(SATA)、周邊組件互連快速(PCIe)或通用串列匯流排(USB),以及其他連接器及介面。然而,一般而言,介面106可提供一介面以在記憶體系統104與一主機102(其具有用於介面106之相容接受器)之間傳遞控制信號、位址信號、資料信號及其他信號。
主機102可為一主機系統,諸如一個人膝上型電腦、一桌上型電
腦、一數位相機、一行動電話或一記憶體卡讀取器,以及各種其他類型之主機。主機102可包含一系統主機板及/或背板,且可包含某數目個記憶體存取器件(例如某數目個處理器)。
記憶體器件110-1至110-N可包含記憶體胞(例如,非揮發性記憶體胞)之某數目個陣列。該等陣列可為例如具有一反及架構之快閃陣列。然而,實施例不受限於特定類型之記憶體陣列或陣列架構。如下文結合圖2進一步所描述,記憶體胞可例如群組為包含記憶體胞之某數目個實體頁之某數目個區塊。在諸多實施例中,一區塊意指作為一單元一起被擦除之記憶體胞之一群組。某數目個區塊可包含於記憶體胞之一平面中且一陣列可包含某數目個平面。作為一實例,一記憶體器件可經組態以儲存每頁8KB(千位元組)之使用者資料、每區塊128頁之使用者資料、每平面2048個區塊及每器件16個平面。
在操作中,資料可被寫入至及/或讀取自一記憶體系統之一記憶體器件(例如系統104之記憶體器件110-1至110-N)作為例如一頁資料。因而,一頁資料可被稱為該記憶體系統之一資料傳送大小。資料可以被稱為區段(例如主機區段)之資料段形式傳送至/傳送自一主機(例如主機102)。因而,資料之一區段可被稱為該主機之一資料傳送大小。
控制器108可與記憶體器件110-1至110-N通信以控制資料讀取、寫入及擦除操作,以及其他操作。控制器108可例如包含呈硬體及/或韌體(例如一或多個積體電路)及/或軟體形式之某數目個組件以控制至該數目個記憶體器件110-1至110-N之存取及/或促進主機102與記憶體器件110-1至110-N之間之資料傳送。例如,在圖1所繪示之實例中,控制器108包含一記憶體管理組件114,其包括一損耗平衡組件116及一錯誤偵測/校正組件118。實施例不受限於圖1中所展示之實例。例如,控制器108可包含與控制各種記憶體操作相關聯而使用之其他組件(圖中未展示)。
記憶體管理組件114可實施損耗平衡以控制記憶體器件110-1至110-N上之損耗率。損耗平衡可藉由在一整個陣列及/或器件上更均勻地擴展循環而減少對記憶體胞之一特定群組執行之程序循環(例如程式化及/或擦除循環)之數量。損耗平衡可包含動態損耗平衡以最小化經移動以回收(reclaim)一區塊之有效區塊之數量。動態損耗平衡可包含被稱為廢棄項目收集(garbage collection)之一技術。廢棄項目收集可包含回收(例如擦除且可用於程式化)具有最多無效頁之區塊(例如根據一「貪婪演算法」)。替代地,廢棄項目收集可包含回收具有超過臨限量(例如數量)之無效頁之區塊。若存在足夠自由區塊用於一程式化操作,則可不發生一廢棄項目收集操作。例如,一無效頁可為已被更新至一不同頁之一頁資料。靜態損耗平衡可包含將靜態資料寫入至具有高程式化/擦除計數之區塊以延長區塊之壽命。
控制器108可經組態以根據本文中所描述之諸多實施例而控制使用錯誤率之損耗平衡(例如經由記憶體管理組件114)。例如,錯誤偵測/校正組件118可用於偵測及/或校正與自記憶體器件110-1至110-N讀取資料相關聯之錯誤位元。作為一實例,錯誤偵測/校正組件118可採用錯誤校正碼(ECC),諸如低密度同位檢查(LDPC)碼及漢明(Hamming)碼,以及其他。在諸多實施例中且如下文結合圖3至圖5進一步所描述,控制器108可經組態以判定對應於記憶體胞群組(例如區塊及/或頁)之錯誤率。如本文中所使用,一錯誤率(例如一位元錯誤率(ber))可意指對應於讀取自一記憶體(例如記憶體器件110-1至110-N)之資料量之錯誤位元量除以所讀取資料之總量。在諸多實施例中,損耗平衡組件116可用於判定例如由記憶體胞之個別區塊及/或頁經歷之程序循環(例如程式化及/或擦除循環)之數量。此等程序循環計數可儲存於控制器108上之記憶體(圖中未展示)中及/或儲存於記憶體器件110-1至110-N中。在諸多實施例中,可與損耗平衡記憶體(如本文中所描
述)相關聯地追蹤及使用對應於記憶體胞群組之程序循環計數及/或錯誤率。
圖2繪示根據本發明之諸多實施例之具有組織為某數目個實體區塊219-1至219-B之記憶體胞群組之一記憶體器件210之一部分之一圖式。記憶體器件210可為諸如圖1中所描述之記憶體器件110-1至110-N之一記憶體器件。器件210之記憶體胞可例如為具有一反及架構之非揮發性浮動閘極快閃記憶體胞。然而,本發明之實施例不受限於一特定類型之記憶體器件。例如,記憶體器件210可包含除浮動閘極快閃記憶體胞之外之記憶體胞,且可具有諸如(例如)一反或架構之一陣列架構。
如圖2中所展示,記憶體器件210包括記憶體胞之某數目個實體區塊219-1(區塊1)至219-B(區塊B)。該等記憶體胞可為單位階記憶體胞及/或多位階記憶體胞。作為一實例,器件210之一陣列中之實體區塊之數目可為128個區塊、512個區塊或1,024個區塊,但實施例不受限於特定數目個實體區塊。
在圖2所展示之實例中,各實體區塊219-1至219-B包含可作為一單元一起被擦除之記憶體胞(例如,各實體區塊中之記憶體胞可以一實質上同時之方式被擦除)。例如,各實體區塊中之記憶體胞可在一單一擦除操作中一起被擦除,如本文中進一步所描述。
如圖2中所展示,各實體區塊219-1至219-B含有記憶體胞之某數目個實體列220-1至220-R,其等可各耦合至一各自存取線(例如字線)。各實體區塊中之列之數目可為32,但實施例不受限於每區塊之特定數目個列220-1至220-R。
如一般技術者所瞭解,各列220-1至220-R可包括記憶體胞之一或多個實體頁。記憶體胞之一實體頁可意指一起或作為一功能群組被程式化及/或讀取之某數目個記憶體胞。在圖2所展示之實施例中,各列
220-1至220-R可包括記憶體胞之一實體頁。然而,本發明之實施例不受限於此。例如,在本發明之一或多項實施例中,各列可包括記憶體胞之多個實體頁(例如與偶數位元線相關聯之一或多個偶數頁及與奇數位元線相關聯之一或多個奇數頁)。另外,對於包含多位階記憶體胞之實施例,一實體頁可例如在邏輯上被分成一上資料頁及一下資料頁,其中一列中之各記憶體胞促成一或多個位元朝向一上資料頁及一或多個位元朝向一下資料頁。
在圖2所展示之實例中,對應於一列之一實體頁可儲存資料之某數目個區段222-1至222-S(例如對應於一主機區段之資料量)。區段222-1至222-S可包括使用者資料以及附加資料,諸如錯誤校正碼(ECC)資料及邏輯區塊位址(LBA)資料。應注意,實體區塊219-1至219-B,列220-1至220-R及區段222-0至222-S之其他組態係可行的。例如,列220-1至220-R可各儲存對應於一單一區段之資料,該區段可例如包含512個以上或512個以下位元組之資料。
記憶體器件(諸如記憶體器件210)可具有與其相關聯之一有限壽命。例如,記憶體器件210之記憶體胞可在已對其執行特定數量個程序循環(例如程式化及/或擦除(P/E)循環)之後變為不可靠。使一記憶體器件變為不可靠之特定程序循環計數可變動且可取決於各種因素,諸如器件之間之製造差異、與記憶體器件相關聯之操作溫度及/或儲存溫度及與一記憶體器件相關聯之錯誤偵測/校正能力,以及其他因數。在各種例項中,一產品規格會指示一程序循環計數,若低於該程序循環計數,則「保證」記憶體胞維持可靠性。此等保證程序循環計數可例如取決於諸如記憶體胞是否為單位階記憶體胞或多位階記憶體胞之因素,且可為諸如1,000個循環、5,000個循環、10,000個循環或100,000個循環之值。
一些記憶體系統採用預留空間(OP)來延長例如一SSD之壽命。OP
可將被控制器(例如圖1中所展示之控制器108)允許之記憶體可存取量限制至小於一器件中存在之記憶體之實體量。例如,具有64GB之實體記憶體之一SSD可經預留空間以僅允許其記憶體空間之80%被使用,使得該SSD之記憶體空間(例如至一主機)似乎為51GB。記憶體之13GB預留空間可能無法由一主機直接存取,但可作為備用空間且由與損耗平衡、廢棄項目收集等等相關聯之控制器使用。例如,經預留空間之記憶體可用於替代可由該主機存取之該SSD之部分內之壞區塊(例如被判定為不可靠之區塊)。可例如基於對應於一區塊之一所判定錯誤率而判定該區塊為一壞區塊(例如經由錯誤偵測/校正組件,諸如圖1中所展示之118)。作為另一實例,在對應於一區塊之一程序循環計數達到或超過一臨限循環計數之後,該區塊亦可被判定為一壞區塊。
在一些例項中,在至一SSD(例如至一SSD之記憶體器件)之總寫入位元組(TBW)已達到一臨限位準之後,該SSD可被視為已達到其壽命終點,該臨限位準可指示為例如由器件製造者提供之產品規格之部分。
在一些前述方法中,一SSD之區塊在其等達到或超過一臨限程式化及/或擦除(P/E)循環計數時被停用。為在該SSD之該等區塊之間擴散損耗,可基於程式化及/或擦除(P/E)循環計數而執行損耗平衡。例如,基於一區塊具有對應於其之一最低P/E循環計數之一判定而選擇該區塊以接收與一程式化操作相關聯之資料。然而,記憶體胞之一些群組(例如區塊及/或頁)甚至在達到或超過該臨限P/E循環計數之後仍然可靠。例如,無論記憶體胞之一區塊是否已達到或超過由損耗平衡演算法用於判定區塊將何時被停用之臨限P/E循環計數,對應於該區塊之一錯誤率均可完全低於一可靠臨限錯誤率。因此,停用此等記憶體胞群組可不必要地減少一SSD之有用壽命。
圖3繪示根據本發明之諸多實施例之操作一記憶體之一方法。一控制器(諸如圖1中所展示之控制器108)可經組態以控制圖3中所繪示之該方法。在330中,該方法包含選擇記憶體胞之一群組用於程式化。該群組可為記憶體胞之一區塊(例如圖2中所展示之區塊219-1至219-B)或記憶體胞之一頁,以及記憶體胞之其他實體群組。可與例如一損耗平衡程序相關聯地選擇待程式化(例如程式化至與一程式化操作相關聯之接收資料)之該群組。
在諸多實施例中,至少部分基於對應於選定群組之一程序循環計數而選擇待程式化之群組。例如,可選擇具有對應於其之一最低循環計數之群組。對應於各自群組之程序循環計數可保存於控制器上之記憶體中及/或記憶體胞自身之群組中。諸多實施例包含:基於所保存之程序循環計數而判定記憶體胞之各自群組之何者將接收與一程式化操作相關聯之資料,直至達到或超過一臨限程序循環計數;其後(例如,在達到該臨限程序循環計數之後),基於對應於記憶體胞之各自群組之所判定錯誤率而判定記憶體胞之各自群組之何者將接收與一程式化操作相關聯之資料。
在332中,方法包含:判定是否已達到或超過一臨限程序循環計數(Tpcc)。該Tpcc可為例如對群組執行之程式化及/或擦除循環之臨限量(例如數量)。可例如基於由一器件製造者提供之一產品規格而判定該Tpcc。例如,該Tpcc可為由該產品規格保證之程序循環量之一特定占比。作為一實例,若一SSD產品規格指示該SSD之記憶體胞被保證高達10,000個P/E循環,則該Tpcc可為該保證量之1/4(例如2,500個循環)、該保證量之1/2(例如5,000個循環)或該保證量之3/4(例如7,500個循環)。在諸多實施例中,圖3中所展示之方法可包含:判定是否已達到或超過某數目個不同臨限程序循環計數之一者(例如在332中)。
在圖3所展示之實例中,若判定尚未達到或超過選定群組之
Tpcc,則程式化選定群組(例如在334中)。若判定已達到或超過選定群組之Tpcc,則在336中判定對應於選定群組之一錯誤率。
在338中,圖3之方法包含:判定是否已達到或超過對應於記憶體胞之選定群組之一臨限錯誤率(Tber)。在諸多實施例中,僅在已達到或超過Tpcc時判定對應於選定群組之錯誤率。回應於尚未達到或超過選定群組之Tber之一判定,程式化選定群組(例如在334中)。回應於已達到或超過選定群組之Tber之一判定,可判定記憶體胞之選定群組已達到其有用壽命之終點。因而,停用選定群組(例如在340中)。Tber可例如由一錯誤偵測/校正組件(例如圖1中所展示之組件118)判定,且可為無法由該錯誤偵測/校正組件校正之一錯誤率。然而,實施例不受限於一特定Tber。
圖4繪示根據本發明之諸多實施例之操作一記憶體之一方法。一控制器(諸如圖1中所展示之控制器108)可經組態以控制圖4中所繪示之方法。在450中,該方法包含:維持對應於記憶體胞之某數目個各自群組之各者之程序循環計數。該等群組可為記憶體胞之一區塊(例如圖2中所展示之區塊219-1至219-B)或記憶體胞之頁,以及記憶體胞之其他實體群組。程序循環計數可為P/E循環計數,且可儲存於控制器上之記憶體(例如DRAM)中及/或記憶體胞自身之群組中(例如,記憶體胞之一區塊可儲存對應於複數個區塊之各者之程序循環計數或各區塊可儲存對應於自身之程序循環計數)。
在諸多實施例中且如452中所繪示,可基於對應於各自群組之所判定錯誤率而調整對應於記憶體胞之各自群組之所維持程序循環計數。可例如回應於程序循環計數達到或超過一或多個臨限計數而判定對應於記憶體胞之群組之錯誤率。然而,實施例不受限於此。例如,在諸多實施例中,可經由一背景取樣程序而判定對應於記憶體胞之各自群組之錯誤率。例如,控制器可用於在各種時間(例如,當資料被
程式化至記憶體、被讀取自記憶體、被擦除時及/或當一SSD無法主動地處理記憶體命令時)判定各自群組之錯誤率。
在諸多實施例中且如下文結合圖5進一步所描述,基於所判定之錯誤率而調整程序循環計數可包含:將對應於記憶體胞之至少一群組之程序循環計數自對該群組執行之程序循環之一實際量調整至除程序循環之該實際量之外之一程序循環量。例如,若對應於記憶體胞之一特定群組之一錯誤率被判定為高於對應於其他群組之錯誤率,則程序循環計數可自實際程序循環計數增大至一更高程序循環計數。類似地,若對應於記憶體胞之一特定群組之一錯誤率被判定為低於對應於其他群組之錯誤率,則程序循環計數可自實際程序循環計數減小至一更低程序循環計數。以此方式,基於程序循環計數而選擇群組用於程式化之一損耗平衡程序(例如選擇具有最低程序循環計數之群組之一損耗平衡演算法)可選擇具有一更高實際程序循環計數之一記憶體胞群組,此係因為程序循環計數歸因於對應於特定群組之一低錯誤率而降低。
在諸多實施例中,可(例如經由一控制器)追蹤TBW(例如程式化至一SSD之資料總量)。作為一實例,可基於程序循環計數而對記憶體執行損耗平衡,直至一臨限資料量寫入至記憶體,其後,可基於錯誤率而對記憶體執行損耗平衡。因而,具有高程序循環計數之記憶體胞群組(其可歸因於不可靠及/或失效之一可能性而被停用(例如不被使用))可歸因於該記憶體胞群組具有一可接受之低錯誤率而在一延長時間段內(例如超過一程序循環計數臨限)仍然可用。
如454中所展示,若尚未達到或超過臨限總寫入位元組(Ttbw),則圖4之方法基於程序循環計數而選擇記憶體胞之一群組用於程式化。若已達到或超過Ttbw,則基於錯誤率而選擇待程式化之記憶體胞之群組,如456中所展示。雖然Ttbw可為記憶體之一壽命規格(例如根據一
產品規格之一保證TBW),但實施例不受限於此。例如,Ttbw(在Ttbw之後,一系統基於錯誤率而執行損耗平衡)可為可相關於或可不相關於由(例如一SSD之)一產品規格提供之一TBW之各種值。
圖5繪示根據本發明之諸多實施例之操作一記憶體之一方法之一功能流程圖。表560包含記憶體胞之某數目個群組562(例如群組1至群組G)及對應於該等群組之程序循環計數564。群組562可為記憶體胞之區塊或記憶體胞之頁,諸如(例如)圖2中所描述之記憶體胞之區塊或記憶體胞之頁。程序循環計數564可為P/E循環計數,且可保存於記憶體中及隨著群組經歷後續P/E循環而更新。
在諸多實施例中,一控制器(例如圖1中所展示之控制器108)可經組態以基於所保存之程序循環計數564而控制對群組562執行損耗平衡。在此實例中,基於程序循環計數之損耗平衡包含:選擇具有一最低程序循環計數之一待程式化群組。如表560中所繪示,群組3係選定群組565,此係因為對應於群組3之程序循環計數567(例如「X」)小於對應於其他群組之程序循環計數(例如「X+1」)。
在諸多實施例中且如563中所繪示,可判定對應於各自群組562之錯誤率。如表570中所繪示,可基於對應於群組之所判定錯誤率而調整對應於各自群組562之程序循環計數564。可回應於程序循環達到或超過某數目個臨限程序循環計數之一者而判定對應於群組562之錯誤率。例如,可僅在群組已經歷某數目個特定臨限程序循環計數之各者之後(例如在1,000個P/E循環之後,在2,000個P/E循環之後,在5,000個P/E循環之後,及在7,500個P/E循環之後)判定對應於群組562之錯誤率。然而,實施例不受限於此。例如,在諸多實施例中,可經由一背景取樣程序而判定對應於該數目個群組562之錯誤率。
表570繪示選定群組565(例如群組3)之程序循環計數569回應於對應於選定群組565之所判定錯誤率之一調整。在此實例中,對應於選
定群組565之程序循環計數569自「X」調整至「X+Y」。數量「Y」可為正值或負值。即,可回應於563中之所判定錯誤率而增大或減小所維持之程序循環計數569。因而,在諸多實施例中,對應於記憶體胞群組562之所維持程序循環計數564可自一實際值(例如「X」)調整(例如改變)至一不同值(例如除該實際值之外之一值,諸如「X+Y」)。調整程序循環計數564之實際值會影響基於對應於群組(與群組相關聯)之程序循環計數而選擇待程式化群組(例如藉由導致群組歸因於程序循環計數之調整而更頻繁或更不頻繁地被程式化)之一損耗平衡演算法。
在諸多實施例中,對記憶體胞之群組(例如562)執行之損耗平衡可包含:基於程序循環計數(例如564)而選擇待程式化之群組,直至達到或超過一臨限程序循環計數;其後,基於對應於群組之所判定錯誤率而選擇待程式化之群組。即,損耗平衡可基於程序循環計數,直至達到或超過一臨限程序循環計數,接著,損耗平衡可基於其後(例如在達到或超過一臨限程序循環計數之後)之錯誤率。
藉由比前述損耗平衡方法更佳地解決器件間(例如晶粒間)之可變性,使用與如上文所描述之損耗平衡相關聯之錯誤率可增加一記憶體(例如一SSD)之有用壽命,以及其他益處。例如,本發明之諸多實施例可相較於前述損耗平衡方法而減少預留空間及改良可靠性、資料完整性及/或SSD效能。
本發明係關於使用錯誤率之損耗平衡記憶體。諸多實施例包括:至少部分基於對應於記憶體胞之某數目個群組之一選定群組之一程序循環計數而將資料程式化至該選定群組;判定對應於該選定群組之一錯誤率;及至少部分基於對應於該選定群組之該所判定錯誤率而調整對應於該選定群組之該程序循環計數。
雖然已在本文中繪示及描述具體實施例,但一般技術者應瞭
解,經計算以達成相同結果之一配置可代替所展示之該等具體實施例。本發明意欲涵蓋本發明之諸多實施例之調適或變動。應瞭解,已以一繪示方式而一非限制方式給出上述描述。熟習此項技術者在檢閱上述描述之後明白上述實施例與本文中未具體描述之其他實施例之組合。本發明之諸多實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附申請專利範圍以及此等申請專利範圍所主張之等效物之全部範圍而判定本發明之諸多實施例之範疇。
在【實施方式】中,為了簡化本發明,一些特徵在一單一實施例中群組在一起。本發明之方法不應被解譯為反映以下意圖:本發明之所揭示實施例必須使用比各請求項中明確敘述之特徵多之特徵。相反,如以下申請專利範圍所反映,本發明之標的在於比一單一所揭示實施例之所有特徵少。因此,以下申請專利範圍特此併入至【實施方式】中,其中各請求項自身獨立作為一單獨實施例。
Claims (32)
- 一種用於操作一記憶體之方法,其包括:至少部分基於對應於記憶體胞之某數目個群組之一選定群組之一程序循環計數而將資料程式化至該選定群組;判定對應於該選定群組之一錯誤率;及至少部分基於對應於該選定群組之該所判定錯誤率而調整對應於該選定群組之該程序循環計數。
- 如請求項1之方法,其包含:回應於對應於該選定群組之該程序循環計數達到或超過某數目個臨限程序循環計數之一者而判定對應於該選定群組之該錯誤率。
- 如請求項1之方法,其中該方法包含:僅在對應於該選定群組之該程序循環計數已達到或超過一臨限程序循環計數時判定對應於該選定群組之該錯誤率。
- 如請求項1之方法,其中該方法包含:維持記憶體胞之該數目個群組之各個群組之一程序循環計數。
- 如請求項1之方法,其包含:使用耦合至該記憶體之一錯誤偵測/校正組件來判定該錯誤率。
- 如請求項1之方法,其中該程序循環計數係一程式化/擦除循環計數。
- 如請求項1之方法,判定對應於該選定群組之一錯誤率包括:執行對應於記憶體胞之該各自數目個群組之錯誤率之一背景取樣。
- 一種用於操作一記憶體之方法,其包括:判定各對應於記憶體胞之某數目個群組之一各自者之某數目個錯誤率;及 回應於該所判定數目個錯誤率而調整對應於記憶體胞之該數目個群組之至少一者之一所維持程序循環計數。
- 如請求項8之方法,其包含:回應於已達到或超過某數目個臨限程序循環計數之一臨限程序循環計數而判定各對應於記憶體胞之該數目個群組之一各自者之該數目個錯誤率。
- 如請求項8之方法,其包含:僅回應於已達到或超過某數目個臨限程序循環計數之一臨限程序循環計數而調整對應於記憶體胞之該數目個群組之該至少一者之該所維持程序循環計數。
- 如請求項8之方法,其包含:維持對應於記憶體胞之該等各自群組之各者之程序循環計數;基於該所維持之程序循環計數而判定記憶體胞之該等各自群組之何者將接收與一程式化操作相關聯之資料,直至達到或超過一臨限程序循環計數;及在達到或超過該臨限程序循環計數之後,基於對應於記憶體胞之該等各自群組之所判定錯誤率而判定記憶體胞之該等各自群組之何者將接收與一程式化操作相關聯之資料。
- 如請求項8之方法,其中判定各對應於記憶體胞之某數目個群組之一各自者之該數目個錯誤率包含:僅判定特定臨限程序循環計數處之該數目個錯誤率。
- 一種用於操作一記憶體之方法,其包括:基於各對應於記憶體胞之某數目個群組之一各自者之某數目個程序循環計數而對該記憶體執行損耗平衡;判定各對應於記憶體胞之該數目個群組之一各自者之某數目個錯誤率;至少部分基於對應於該等各自群組之該等所判定錯誤率而調 整對應於該等各自群組之該數目個程序循環計數。
- 如請求項13之方法,其包含:藉由使用一控制器而判定該數目個錯誤率,該控制器經組態以控制經由一背景取樣方法而判定該數目個錯誤率。
- 如請求項13之方法,其中執行損耗平衡包含:選擇記憶體胞之該數目個群組之一特定群組來接收與一程式化操作相關聯之資料,該特定群組係具有對應於其之一最低程序循環計數之一群組。
- 如請求項13之方法,其中調整該數目個程序循環計數包含:將該數目個程序循環計數之至少一者自對該數目個群組之一各自者執行之一實際程序循環量調整至除該實際程序循環量之外之一程序循環量。
- 如請求項16之方法,其中將該數目個程序循環計數之該至少一者自對該數目個群組之該各自者執行之該實際程序循環量調整至除該實際程序循環量之外之該程序循環量包含:回應於對應於該數目個群組之該各自者之該所判定錯誤率而減小該數目個程序循環計數之該至少一者。
- 如請求項16之方法,其中將該數目個程序循環計數之該至少一者自對該數目個群組之該各自者執行之該實際程序循環量調整至除該實際程序循環量之外之該程序循環量包含:回應於對應於該數目個群組之該各自者之該所判定錯誤率而增大該數目個程序循環計數之該至少一者。
- 一種裝置,其包括:一記憶體,其包括記憶體胞之某數目個群組;及一控制器,其耦合至該記憶體且經組態以控制:基於各對應於記憶體胞之該數目個群組之一各自者之某數 目個程序循環計數而對該記憶體執行損耗平衡;及至少部分基於對應於該數目個群組之一選定群組之一所判定錯誤率而調整對應於該選定群組之該程序循環計數。
- 如請求項19之裝置,其中記憶體胞之該數目個群組為經組態以與一擦除操作相關聯而一起被擦除之記憶體胞之某數目個區塊。
- 如請求項19之裝置,其中記憶體胞之該數目個群組為經組態以與一程式化操作相關聯而一起被程式化之記憶體胞之某數目個頁。
- 如請求項19之裝置,其中該控制器經組態以控制:維持對應於記憶體胞之該等各自群組之各者之程序循環計數;基於該所維持之程序循環計數而判定記憶體胞之該等各自群組之何者將接收與一程式化操作相關聯之資料,直至達到或超過一臨限程序循環計數;及在達到或超過該臨限程序循環計數之後,基於對應於記憶體胞之該等各自群組之所判定錯誤率而判定記憶體胞之該等各自群組之何者將接收與一程式化操作相關聯之資料。
- 如請求項19之裝置,其中該控制器經組態以控制經由一取樣方法而判定對應於該各自數目個群組之錯誤率,該取樣方法將與一程式化操作相關聯之資料程式化至該記憶體時及/或在與一讀取操作相關聯而自該記憶體讀取資料時被執行。
- 一種裝置,其包括:一記憶體,其包括記憶體胞之某數目個群組;及一控制器,其耦合至該記憶體且經組態以控制:判定對應於該數目個群組之一各自者之一程序循環計數已 達到或超過一臨限程序循環計數;判定對應於該數目個群組之該各自者之一錯誤率;及回應於該所判定之錯誤率達到或超過一臨限錯誤率而停用記憶體胞之該數目個群組之該各自者。
- 如請求項24之裝置,其中該控制器經組態以控制:追蹤程式化至該記憶體之一資料總量;及僅在程式化至該記憶體之該資料總量達到或超過一臨限資料總量時基於對應於該各自數目個群組之錯誤率而對該記憶體執行損耗平衡。
- 如請求項25之裝置,其中該控制器經組態以控制:基於對應於該各自數目個群組之程序循環計數而對該記憶體執行損耗平衡,直至程式化至該記憶體之該資料總量達到或超過該臨限資料總量。
- 如請求項26之裝置,其中該臨限資料總量對應於該記憶體之一壽命規格。
- 如請求項24之裝置,其中該程序循環計數對應於對記憶體胞之該數目個群組之該各自者執行之程式化/擦除(P/E)循環之數量。
- 如請求項24之裝置,其中該控制器經組態以控制回應於該數目個群組之該各自者達到或超過該臨限程序循環計數而判定對應於該數目個群組之該各自者之該錯誤率。
- 一種用於操作一記憶體之方法,其包括:若尚未達到或超過程式化至該記憶體之一臨限資料總量,則基於程序循環計數而選擇記憶體胞之一群組用於程式化;及若已達到或超過程式化至該記憶體之該臨限資料總量,則基於錯誤率而選擇記憶體胞之一群組被程式化。
- 一種用於操作一記憶體之方法,其包括: 使損耗平衡基於程序循環計數,直至達到或超過一臨限程序循環計數;及在達到或超過該臨限程序循環計數之後,使損耗平衡基於錯誤率。
- 一種用於操作一記憶體之方法,其包括:判定對應於記憶體胞之某數目個群組之一各自者之一程序循環計數已達到或超過一臨限程序循環計數;判定對應於該數目個群組之該各自者之一錯誤率;及回應於該所判定之錯誤率達到或超過一臨限錯誤率而停用記憶體胞之該數目個群組之該各自者。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/531,139 US20130346812A1 (en) | 2012-06-22 | 2012-06-22 | Wear leveling memory using error rate |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201413736A true TW201413736A (zh) | 2014-04-01 |
Family
ID=49769440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102122430A TW201413736A (zh) | 2012-06-22 | 2013-06-24 | 使用錯誤率之損耗平衡記憶體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130346812A1 (zh) |
TW (1) | TW201413736A (zh) |
WO (1) | WO2013192552A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI699647B (zh) * | 2016-06-20 | 2020-07-21 | 南韓商三星電子股份有限公司 | 形態儲存裝置及其分配方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832506B2 (en) * | 2012-01-20 | 2014-09-09 | International Business Machines Corporation | Bit error rate based wear leveling for solid state drive memory |
US20130262942A1 (en) * | 2012-03-27 | 2013-10-03 | Yung-Chiang Chu | Flash memory lifetime evaluation method |
US9147486B2 (en) | 2013-09-05 | 2015-09-29 | Micron Technology, Inc. | Continuous adjusting of sensing voltages |
KR102085127B1 (ko) * | 2013-11-13 | 2020-04-14 | 삼성전자주식회사 | 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치 |
US9411669B2 (en) * | 2014-09-11 | 2016-08-09 | Sandisk Technologies Llc | Selective sampling of data stored in nonvolatile memory |
US10127157B2 (en) * | 2014-10-06 | 2018-11-13 | SK Hynix Inc. | Sizing a cache while taking into account a total bytes written requirement |
US9336136B2 (en) | 2014-10-08 | 2016-05-10 | HGST Netherlands B.V. | Apparatus, systems, and methods for providing wear leveling in solid state devices |
US10078546B2 (en) * | 2014-10-24 | 2018-09-18 | Micron Technology, Inc. | Temperature related error management |
CN104615503B (zh) * | 2015-01-14 | 2018-10-30 | 广东华晟数据固态存储有限公司 | 降低对存储器接口性能影响的闪存错误检测方法及装置 |
KR102393323B1 (ko) | 2015-08-24 | 2022-05-03 | 삼성전자주식회사 | 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법 |
KR102456104B1 (ko) | 2015-08-24 | 2022-10-19 | 삼성전자주식회사 | 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법 |
KR102333746B1 (ko) | 2015-09-02 | 2021-12-01 | 삼성전자주식회사 | 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법 |
US11385797B2 (en) | 2015-10-05 | 2022-07-12 | Micron Technology, Inc. | Solid state storage device with variable logical capacity based on memory lifecycle |
US9837153B1 (en) | 2017-03-24 | 2017-12-05 | Western Digital Technologies, Inc. | Selecting reversible resistance memory cells based on initial resistance switching |
US10325668B2 (en) * | 2017-04-05 | 2019-06-18 | Micron Technology, Inc. | Operation of mixed mode blocks |
US10976936B2 (en) | 2017-08-23 | 2021-04-13 | Micron Technology, Inc. | Sensing operations in memory |
US11768617B2 (en) * | 2021-07-02 | 2023-09-26 | SK Hynix Inc. | Managing method for flash storage and storage system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101464255B1 (ko) * | 2008-06-23 | 2014-11-25 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것을 포함한 시스템 |
US8595572B2 (en) * | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
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 |
US20100332894A1 (en) * | 2009-06-30 | 2010-12-30 | Stephen Bowers | Bit error threshold and remapping a memory device |
US8479080B1 (en) * | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8489966B2 (en) * | 2010-01-08 | 2013-07-16 | Ocz Technology Group Inc. | Solid-state mass storage device and method for failure anticipation |
US8391073B2 (en) * | 2010-10-29 | 2013-03-05 | Taiwan Semiconductor Manufacturing Company, Ltd. | Adaptive control of programming currents for memory cells |
US8806106B2 (en) * | 2010-11-12 | 2014-08-12 | Seagate Technology Llc | Estimating wear of non-volatile, solid state memory |
US8745318B2 (en) * | 2011-06-28 | 2014-06-03 | Seagate Technology Llc | Parameter tracking for memory devices |
US8832506B2 (en) * | 2012-01-20 | 2014-09-09 | International Business Machines Corporation | Bit error rate based wear leveling for solid state drive memory |
US9058281B2 (en) * | 2012-06-01 | 2015-06-16 | Seagate Technology Llc | Allocating memory usage based on quality metrics |
US9846641B2 (en) * | 2012-06-18 | 2017-12-19 | International Business Machines Corporation | Variability aware wear leveling |
-
2012
- 2012-06-22 US US13/531,139 patent/US20130346812A1/en not_active Abandoned
-
2013
- 2013-06-21 WO PCT/US2013/047115 patent/WO2013192552A1/en active Application Filing
- 2013-06-24 TW TW102122430A patent/TW201413736A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI699647B (zh) * | 2016-06-20 | 2020-07-21 | 南韓商三星電子股份有限公司 | 形態儲存裝置及其分配方法 |
TWI708143B (zh) * | 2016-06-20 | 2020-10-21 | 南韓商三星電子股份有限公司 | 固態驅動機及其分配方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130346812A1 (en) | 2013-12-26 |
WO2013192552A1 (en) | 2013-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201413736A (zh) | 使用錯誤率之損耗平衡記憶體 | |
US10621081B2 (en) | Storage device and global garbage collection method of data storage system including the same | |
US9753653B2 (en) | High-priority NAND operations management | |
KR101655306B1 (ko) | 메모리 시스템 및 그것의 액세스 방법 | |
KR102337160B1 (ko) | 혼합 모드 블록들의 동작 | |
WO2015057458A1 (en) | Biasing for wear leveling in storage systems | |
US10254979B1 (en) | Relocating or aborting a block of data by a host, based on media policies managed by a storage device | |
US11726869B2 (en) | Performing error control operation on memory component for garbage collection | |
US11934268B2 (en) | Memory sub-system using partial superblocks | |
CN107924700B (zh) | 自适应多阶段擦除 | |
US11455107B2 (en) | Managing sequential write performance consistency for memory devices | |
CN111309654B (zh) | 存储装置及操作存储装置的方法 | |
US20220043713A1 (en) | Meta Data Protection against Unexpected Power Loss in a Memory System | |
US11693767B2 (en) | Performing a media management operation based on changing a write mode of a data block in a cache | |
US11733892B2 (en) | Partial superblock memory management | |
CN112328508A (zh) | 多层存储器中的层交错 | |
US11404133B1 (en) | Valid translation unit count-based memory management | |
US20240176532A1 (en) | Data reordering at a memory subsystem | |
US20240134788A1 (en) | Selective single-level memory cell operation | |
CN115641899A (zh) | 用于监测混合模式块的存储器子系统 |