TW201303596A - 用於提供資料完整性之裝置及方法 - Google Patents

用於提供資料完整性之裝置及方法 Download PDF

Info

Publication number
TW201303596A
TW201303596A TW101119614A TW101119614A TW201303596A TW 201303596 A TW201303596 A TW 201303596A TW 101119614 A TW101119614 A TW 101119614A TW 101119614 A TW101119614 A TW 101119614A TW 201303596 A TW201303596 A TW 201303596A
Authority
TW
Taiwan
Prior art keywords
data
integrity
segments
post
format
Prior art date
Application number
TW101119614A
Other languages
English (en)
Other versions
TWI468942B (zh
Inventor
Terry Cronin
Joseph M Jeddeloh
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201303596A publication Critical patent/TW201303596A/zh
Application granted granted Critical
Publication of TWI468942B publication Critical patent/TWI468942B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明包含用於提供資料完整性之裝置(例如,計算系統、記憶體系統、控制器等)及方法。一或多種方法可包含(舉例而言):接收待寫入至若干個記憶體器件之若干個資料區段;將對應於該若干個區段且包含第一完整性資料之第一後設資料附加至該若干個區段,該第一後設資料具有一特定格式;產生待提供於第二後設資料中之第二完整性資料,該第二完整性資料對應於該若干個區段中之至少一者(其中該第二後設資料具有一第二格式);及產生待提供於該第二後設資料中之第三完整性資料,該第三完整性資料包含對應於該第二完整性資料及該若干個區段中之該至少一者之錯誤資料。

Description

用於提供資料完整性之裝置及方法
本發明大體而言係關於半導體記憶體器件、方法及系統,且更特定而言係關於用於提供資料完整性之裝置及方法。
記憶體器件通常係提供為電腦或其他電子器件中之內部電路、半導體電路、積體電路。存在諸多不同類型之記憶體,包含揮發性及非揮發性記憶體。揮發性記憶體可需要電力以維持其資料,且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他。非揮發性記憶體可藉由在未供電時留存所儲存資料而提供永久資料,且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可抹除可程式化ROM(EEPROM)、可抹除可程式化ROM(EPROM)及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁阻式隨機存取記憶體(MRAM)以及其他。
記憶體器件可一起組合以形成諸如一固態磁碟機(SSD)之一記憶體系統之一儲存磁碟區。一固態磁碟機可包含非揮發性記憶體,例如NAND快閃記憶體及NOR快閃記憶體,及/或可包含揮發性記憶體,例如DRAM及SRAM,以及各種其他類型之非揮發性及揮發性記憶體。可將包含浮動閘極快閃器件及使用半導體-氧化物-氮化物-氧化物-半 導體及金屬-氧化物-氮化物-氧化物-半導體電容器結構之電荷陷阱快閃(CTF)器件(其將資料儲存於氮化物層中之電荷陷阱中)用作各種各樣的電子應用程式之非揮發性記憶體。快閃記憶體器件通常使用允許高記憶體密度、高可靠性及低電力消耗之一單電晶體記憶體胞。
一SSD可用於取代硬碟機作為一電腦之主儲存器件,此乃因固態磁碟機可就效能、大小、重量、耐用性、操作溫度範圍及電力消耗方面而言具有優於硬碟機之優勢。舉例而言,在與磁碟機相比時,SSD可由於其缺乏移動部件(此可避免搜尋時間、延時及關聯於磁碟機之其他電子機械延遲)而具有較高效能。SSD製造商可使用非揮發性快閃記憶體以形成可不使用一內部電池供電之快閃SSD,因此允許磁碟機更通用及緊湊。
一SSD可包含若干個記憶體器件,例如若干個記憶體晶片。一記憶體器件可包含若干個晶粒及/或邏輯單元(LUN)。每一晶粒可包含若干個記憶體陣列及其上的周邊電路,且記憶體陣列可包含組織成若干個實體頁之若干個記憶體胞區塊。
一SSD可自一主機接收與記憶體操作(諸如讀取及寫入操作)相關聯之命令,以在記憶體器件與主機之間傳送資料(例如,使用者資料及相關聯完整性資料,諸如錯誤資料及位址資料等)。提供在記憶體器件與主機之間傳送之與此等操作相關聯之資料之端對端完整性以便提供(例如)在傳送期間資料並未被破壞之可信度可係有益的。
本發明包含用於提供資料完整性之裝置(例如,計算系統、記憶體系統、控制器等)及方法。一或多個方法實施例可包含(舉例而言):接收待寫入至若干個記憶體器件(例如,一單個記憶體器件)之若干個資料區段;將對應於該若干個區段且包含第一完整性資料之第一後設資料附加至該若干個區段,該第一後設資料具有一特定格式;產生待提供於第二後設資料中之第二完整性資料,該第二完整性資料對應於該若干個區段中之至少一者(其中該第二後設資料具有一第二格式);及產生待提供於該第二後設資料中之第三完整性資料,該第三完整性資料包含對應於該第二完整性資料及該若干個區段中之該至少一者之錯誤資料。
本發明之一或多個實施例提供一種用於(舉例而言)在一記憶體系統內提供端對端資料完整性之靈活架構。例如,一或多個實施例可執行一後設資料格式轉換,此可提供適應於關聯於不同類型之記憶體器件之不同頁大小及或可用後設資料大小之能力,以及其他益處。一或多個實施例包含可根據本文所述之實施例執行錯誤復原操作同時維持資料完整性之一控制器,此可提供諸如減少要做的器件製造測試量之益處(例如,在提供至該領域中之一消費者之前在裝運前執行的測試),以及其他益處。
在本發明之以下詳細說明中,參考形成本發明之一部分 之隨附圖式,且圖式中以圖解說明之方式顯示可如何實踐本發明之一個或多個實施例。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出程序、電及/或結構變化。如本文中所使用,標號「N」(特定而言係關於圖式中之參考編號)指示如此指定之特定特徵之一數目可與本發明之一個或多個實施例包含於一起。如本文中使用,「若干個」某事物可係指一或多個此等事物(例如,若干個記憶體器件可係指一或多個記憶體器件)。
本文中之圖遵循一編號慣例,其中第一個數字或前幾個數字對應於圖式圖編號,且剩餘數字識別該圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數字來識別。舉例而言,108可指代圖1中之元件「108」,且一類似元件可在圖2中指代為208。如將瞭解,可添加、交換及/或消除在本文中各種實施例中展示之元件以提供本發明之若干個額外實施例。另外,如將瞭解,該等圖中所提供之元件之比例及相對比例尺旨在圖解說明本發明之該等實施例,且不應視為一限制意義。
圖1係根據本發明之一或多個實施例包含至少一個記憶體系統104之一計算系統100之一功能方塊圖。記憶體系統104可係(例如)一固態磁碟機(SSD),且可包含一實體主機介面106、一記憶體系統控制器108(例如,一處理器及/或其他控制電路)及提供記憶體系統104之一儲存磁碟區之一 或多個記憶體器件110-1、...、110-N(例如,諸如NAND快閃器件之固態記憶體器件)。
如圖1中圖解說明,實體主機介面106耦合至控制器108且可用於在記憶體系統104與一主機102之間傳遞資料。介面106可係呈一標準化介面之形式。舉例而言,在記憶體系統104係用於一計算系統100中之資料儲存時,實體主機介面106可係一串列進階技術附接(SATA)、高速周邊組件互連(PCIe)或一通用串列匯流排(USB)以及其他連接器及介面。然而,大體而言,實體主機介面106可提供一介面用於在記憶體系統104與具有用於實體主機介面106之相容接受器之一主機102之間傳遞控制、位址、資料及其他信號。
主機102可係一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位相機、一行動電話或一記憶體卡閱讀器以及各種其他類型之主機。主機102可包含一系統母板及/或背板,且可包含一記憶體存取器件(例如,若干個處理器)。
控制器108可與記憶體器件110-1、...、110-N連通以讀取、寫入及抹除資料以及其他操作。舉例而言,控制器108可係可包含若干個組件(例如,一或多個積體電路)之電路及/或韌體。舉例而言,控制器108可包含用於控制跨越記憶體器件110-1、...、110-N之存取之控制電路及用於提供主機102與記憶體系統104之間的一轉譯層之電路。因此,記憶體控制器108可選擇性地耦合一記憶體器件110- 1、...、110-N之一I/O連接(圖1中未展示)以在適當時間處在適當I/O連接處接收適當信號。類似地,主機102與記憶體系統104之間的通信協定可不同於存取一記憶體器件110-1、...、110-N所使用之通信協定。然後控制器108可將自主機102接收之命令轉譯成適當命令以達成對若干個記憶體器件110-1、...、110-N之期望存取。
記憶體器件110-1、...、110-N可包含一或多個記憶體胞(例如,非揮發性記憶體胞)陣列。舉例而言,該等陣列可係具有一NAND架構之快閃陣列。然而,實施例不限於一特定類型之記憶體陣列或陣列架構。
記憶體器件110-1、...、110-N可包含若干個記憶體胞,該等記憶體胞可被編組成(例如)包含若干個實體頁之若干個區塊。若干個區塊可包含於一記憶體胞平面中,且一陣列可包含若干個平面。作為一項實例,一記憶體器件可包含每頁4320個位元組(B)、每區塊128個頁、每平面2048個區塊及每器件16個平面之資料。
在操作中,可將資料作為一資料頁寫入至一記憶體系統之一記憶體器件(例如,系統104之記憶體器件110-1、...、110-N)或自該記憶體器件讀取。因此,一資料頁可稱為記憶體系統之一資料傳送大小。可在一區段基礎上將資料傳送至/自一主機(例如,主機102)。因此,一資料區段可稱為主機之一資料傳送大小。
儘管一資料頁可包含若干個位元組之使用者資料(例如,包含若干個資料區段之一資料有效負載)以及對應於 其之後設資料,但一資料頁之一大小可僅係指用於儲存使用者資料之位元組數目。作為一實例,具有4 KB之一頁大小之一資料頁可包含用於儲存使用者資料之4 KB(例如,8個區段,假設一區段大小為512B)以及用於儲存對應於使用者資料之後設資料之若干個位元組(例如,32B、54B、224B等)。該後設資料可包含完整性資料,諸如錯誤資料(例如,錯誤偵測及/或校正碼資料)及/或位址資料(例如,邏輯位址資料),以及對應於使用者資料之其他後設資料。
不同類型之記憶體器件(例如,器件110-1、...、110-N)可提供不同頁大小及/或可具有可與一所儲存頁相關聯地獲得之不同量的後設資料位元組。而且,不同記憶體器件類型可具有不同位元錯誤率,此可導致用以確保資料頁之完整性所必需之不同量的後設資料(例如,具有一較高位元錯誤率之一記憶體器件可比具有一較低位元錯誤率之一記憶體器件要求更多位元組之錯誤校正碼資料)。作為一實例,一多位階胞(MLC)NAND快閃器件可比一單位階胞(SLC)NAND快閃器件具有一更高的位元錯誤率。因此,MLC器件可比SLC器件使用更多後設資料位元組用於錯誤資料。在某些例項中,用以提供一資料頁之一期望完整性所必需之後設資料量可超過一記憶體器件所提供之後設資料位元組。亦即,後設資料位元組之可用量可小於用以提供對應於該頁之區段(例如,使用者資料)之充分端對端資料完整性所期望之量。
圖2係根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一記憶體控制器208之一功能方塊圖。控制器208可係一記憶體系統之一組件,諸如圖1中圖解說明之記憶體系統104。熟習此項技術者將易於瞭解,除圖2中圖解說明之彼等電路及組件外亦可提供額外電路及組件,且已減少圖2之細節以促進圖解說明之簡易。實施例不限於圖2中圖解說明之實例。例如,控制器208之所圖解說明組件中之一或多者可整合為一單個組件。而且,所圖解說明組件中之一或多者在本發明之若干個實施例中可係選用的。
如圖2中所展示,記憶體控制器208包含用以在一主機介面206與若干個記憶體器件210之間傳送資料之控制電路。記憶體器件210可係諸如圖1中圖解說明之記憶體器件110-1、...、110-N的記憶體器件。
在若干個實施例中,控制電路經組態以調整(例如,改變)一第一格式與一第二格式之間的一後設資料格式以提供在主機介面206與若干個記憶體器件210之間傳送之資料之完整性。作為一實例,一第一後設資料格式可在一每區段基礎上包含完整性資料且一第二後設資料格式可在一多區段基礎上包含完整性資料。如下文進一步闡述,提供所傳送資料之完整性可包含:執行具有一第一格式(例如,圖3中展示之後設資料341)且對應於自一主機接收(例如,連同來自該主機之一寫入請求一起)之若干個區段(例如,位於圖3中所展示之資料欄位348中之一區段)之後設資料 之第一完整性資料(例如,錯誤資料及/或位址資料)之一檢查;產生第二後設資料(例如,在圖4中展示之後設資料447及/或在圖5中展示之後設資料547-0/547-1)之第二完整性資料(例如,在圖4中展示之完整性資料454-0/454-1及/或在圖5中展示之552/554),該第二完整性資料對應於該若干個區段中之至少一者;及產生第二後設資料之第三完整性資料(例如,在圖4中展示之完整性資料458及/或在圖5中展示之558-0/558-1)。第三完整性資料包含對應於第二完整性資料以及該若干個區段中之該至少一者之錯誤資料。
控制器208可寫入自主機接收(例如,回應於來自主機之一寫入請求)之資料(例如,使用者資料)之若干個區段作為一頁。在各種例項中,控制器208所接收之區段數目可小於對應於若干個記憶體器件210之一頁大小之區段數目。於此等例項中,控制器208可執行一部分頁寫入操作,其可包含(舉例而言)藉由合併自主機接收之區段與自記憶體器件210讀取之一頁之區段(例如,藉由用自主機接收之區段取代所讀取頁之區段)而形成一合併頁,且然後將該經合併頁寫入至記憶體器件210。類似地,控制器208可執行一部分頁讀取操作(例如,回應於針對小於對應於記憶體器件210之頁大小之驅動數目之若干個區段之一主機讀取請求)。一部分頁讀取操作可包含自記憶體器件210讀取一資料頁,及僅將所請求之彼等資料區段提供至主機。如下文進一步闡述,本發明之實施例可提供與此等部分頁寫入及/或讀取操作相關聯之所傳送資料之完整性。
如圖2中圖解說明,控制器208可包含一資料完整性(DI)插入組件220。組件220可將具有一特定後設資料格式之後設資料附加至自一主機接收之資料區段。該特定後設資料格式可稱為一主機格式。在圖3中圖解說明一實例性主機後設資料格式,其圖解說明位於資料欄位348(其可稱為區段欄位348)中且具有附加至其之後設資料341之一使用者資料區段。在圖3中展示之實例中,區段欄位348之大小係512B(例如,區段大小係512B)且後設資料341係包含子欄位342、344及346之一8B資料完整性欄位(DIF),提供關聯於對應於區段欄位348之區段之完整性資料。實施例並不限於此實例。例如,區段欄位348之大小可大於或小於512B且後設資料欄位341之大小可大於或小於8B。作為一項實例,一主機區段大小可係4096B,以使得資料欄位348之大小係4096位元組且後設資料欄位341之大小可係128B(例如,每一主機區段可具有關聯於其之128B之後設資料)。在所圖解說明之實例中,欄位346包含對應於使用者資料(其係對應於區段欄位348)之區段之錯誤資料。於此實例中,欄位346之錯誤資料係對應於該區段(其係對應於區段欄位348)之一2B循環冗餘檢查(CRC)。欄位344係可包含進一步完整性資料之一2B應用標籤,且欄位342係可包含關聯於對應於區段欄位348之區段之位址資料之一4B參考欄位。
在若干個實施例中,將後設資料341附加至自主機接收之使用者資料之每一區段(例如,後設資料341之完整性資 料係在一每區段基礎上)。作為一實例,組件220可在一每區段基礎上計算每一區段之錯誤資料346。若干個區段及對應後設資料341中之每一者(例如,若干個資料群組340中之每一者)可被傳送至控制器208之一完整性組件224(例如,經由與一寫入操作相關聯之一資料緩衝器222)。在若干個實施例中,關聯於每一資料群組340之後設資料341可源自主機介面206且可使用組件220以插入額外完整性資料,諸如在圖4中圖解說明之彼等(例如,452、454-0、454-1等)。在若干個實施例中,關聯於後設資料341之欄位342、344及346之資料可被附加至自一主機接收之資料區段(例如,使用組件220),或可在由控制器208接收該資料區段之前將後設資料341附加至該等資料區段。
在圖2中圖解說明之實例中,控制器208包含在資料群組340被傳送至完整性組件224之前可被傳送至之一合併組件228(例如,若區段數目小於對應於一全頁之區段數目以使得寫入操作係一部分頁寫入操作)。在圖2中圖解說明之實例中,關聯於記憶體器件210之一頁大小係4 KB(例如,八個512B區段)。
合併組件228可與一部分頁寫入操作相關聯地接收對應於來自若干個記憶體器件210之一資料頁之第二若干個區段(例如,八個區段)。該第二若干個區段可包含與一第二格式(例如,關聯於記憶體器件210之一格式,且其可在本文中稱為一記憶體後設資料格式或一經調整格式)相一致之對應於其之後設資料。在下文中結合圖4及圖5進一步闡 述實例性經調整格式。在若干個實施例中,合併組件228可藉由用自主機接收之第一若干個區段(例如,對應於區段欄位348之區段)中之至少一者取代對應於自記憶體器件210接收之資料頁之第二若干個區段中之至少一者來形成一合併頁。合併組件228亦可在將該經合併頁之區段提供至完整性組件224之前將關聯於該經合併頁之區段之一後設資料格式自經調整格式改變至主機格式。在若干個實施例中,合併組件228經組態以在用對應於區段欄位348之第一若干個區段中之至少一者取代對應於該資料頁之第二若干個區段中之至少一者之前執行對應於該第二若干個區段之後設資料之錯誤資料之一檢查(例如,一CRC檢查)。
完整性組件224經組態以執行對應於待寫入至器件210作為一頁之若干個區段之第一後設資料341之完整性資料之一檢查。例如,完整性組件224可針對該等區段中之每一者計算錯誤資料(例如,一CRC)並比較其與後設資料341之錯誤資料346,此可提供自組件220傳送至組件224之資料之完整性之一指示。完整性組件224可包含一CRC引擎及/或一錯誤校正碼(ECC)引擎,以及經組態以執行所接收資料之完整性檢查之其他電路。
完整性組件224亦可產生具有一第二後設資料格式(例如,記憶體後設資料格式,諸如圖4及圖5中所圖解說明且關聯於記憶體器件210之彼等)之第二後設資料(例如,在圖4中展示之後設資料447及/或在圖5中展示之後設資料547-0/547-1)。亦即,組件224將關聯於第一若干個區段(例 如,對應於區段欄位348之若干個區段)之後設資料格式改變至一經調整後設資料格式。第二後設資料格式可係諸如圖4及圖5中所圖解說明之彼等格式的一格式,且可取決於記憶體器件210之特定特性(例如,器件類型、錯誤偵測及/或校正特性、頁大小及/或後設資料位元組可用量)以及其他特性。第二後設資料格式可包含對應於第一若干個區段中之至少一者之第二完整性資料(例如,圖4中展示之完整性資料454-0/454-1及/或圖5中展示之552/554)。除第一後設資料(例如,341)之第一完整性資料外,或作為其一替代,第二完整性資料亦可包含錯誤資料及/或位址資料。在若干個實施例中,第二後設資料亦可包含第三完整性資料,其可包含對應於第二完整性資料以及第一若干個區段中之至少一者之錯誤資料。例如,第三完整性資料可係一錯誤校正碼,諸如可防護(例如,保護)使用者資料之一或多個區段以及對應於其之第二完整性資料之一BCH錯誤校正碼(ECC)。完整性組件224可與改變關聯於待寫入至記憶體器件210之使用者資料之後設資料格式相關聯地產生第二後設資料之第二完整性資料。
在若干個實施例中,控制器208包含經組態以產生第二後設資料之第三完整性資料之一組件226。在圖2中圖解說明之實例中,組件226經組態以產生呈一BCHECC碼之形式之對應於第二後設資料之第二完整性資料以及若干個使用者資料區段中之至少一者的第三完整性資料。組件226可包含一ECC引擎或適合於產生錯誤資料之其他組件。
控制器208經組態以將若干個區段及對應第二後設資料寫入至記憶體器件210(例如,作為一資料頁)。如圖2中圖解說明,控制器208可包含一組件230,組件230經組態以與關聯於被寫入至該記憶體器件之若干個區段中之一或多者之一讀取操作相關聯地執行關聯於對應於該一或多個區段之第二後設資料之第三完整性資料之一檢查(例如,對應於該一或多個區段及對應於該一或多個區段之第二完整性資料之BCHECC之一檢查以偵測錯誤資料之存在)。組件230亦可校正關聯於該一或多個區段及/或對應於該一或多個區段之第二完整性資料之若干個錯誤(若存在)。然後,所檢查(且可能經校正)區段及具有經調整後設資料格式之對應第二完整性資料可被提供至控制器208之一第二完整性組件234。若讀取操作係一全頁讀取操作,則可將組件230所接收之資料經由一緩衝器232直接傳送至完整性組件234。若讀取操作係一部分頁讀取操作,則可將組件230所接收之資料在經由緩衝器232傳送至完整性組件234之前傳送至合併組件228。於此實例中,一部分頁讀取操作將係其中由主機請求之512B區段之數目小於八個區段之一讀取操作,此乃因頁大小係4 KB(例如,每一全4 KB頁包含八個512B區段)。組件226可包含一ECC引擎或適合於偵測及/或校正資料中之錯誤之其他組件。
完整性組件234可執行對應於自記憶體器件210讀取之所接收使用者資料區段之第二後設資料之第二完整性資料之一檢查。作為一實例,第二完整性資料可包含呈對應於一 或多個區段之一CRC形式之錯誤資料。完整性組件234可針對該一或多個區段產生一CRC,其可與第二完整性資料(例如,先前由完整性組件224產生並在將一或多個區段寫入至記憶體器件210之前插入第二後設資料中之第二完整性資料)之CRC相比較。如下文進一步闡述,第二完整性資訊可在一多區段基礎上包含錯誤資料(例如,一CRC)。
完整性組件234亦可將關聯於自記憶體器件210讀取之區段之後設資料格式自經調整後設資料格式往回調整(例如,轉換)至主機格式(例如,圖3中展示之格式)。將經調整後設資料格式往回轉換至主機格式可包含用第三後設資料取代對應於自記憶體器件210讀取之若干個區段之第二後設資料。第三後設資料可包含第四完整性資料,諸如對應於完整性組件可在一每區段基礎上產生之若干個區段之錯誤資料(例如,一CRC)。第三後設資料可具有諸如關聯於後設資料341之一格式以使得第四完整性資料可經計算及包含於諸如圖3中圖解說明之欄位346之一資料欄位中。
在若干個實施例中,第二完整性組件234可將具有主機格式之若干個區段提供至一組件236,組件236可在將所請求之若干個區段提供至主機之前執行對應於該若干個區段之第四完整性資料(例如,由組件234產生之CRC)之一檢查。以此方式,可與關聯於將該若干個區段往回提供至主機之一讀取請求相關聯地確認自主機接收並寫入至記憶體器件210之資料(例如,作為對應於區段欄位348之若干個區段)之完整性。在若干個實施例中,組件236可在將關聯 於該讀取請求之區段經由主機介面206往回提供至主機之前移除(例如,剝除)對應於接收至其之區段之後設資料。然而,實施例並不限於此。例如,在若干個實施例中,可將對應於主機格式(例如,圖3中展示之格式)且由組件236接收之後設資料(例如,完整性資料)之一或多個部分發送至主機(例如,經由主機介面206)而不移除。未移除之完整性資料可由主機介面206或由主機自身(例如,在應用程式層級)重新檢查。
圖2中圖解說明之控制器208可調整關聯於不同格式之間的若干個區段之一後設資料格式,同時維持提供關聯於該若干個區段以及對應至其之後設資料之資料完整性之能力。如下文進一步闡述,經調整後設資料格式可取決於該等區段將被寫入至其及/或自其讀取之記憶體器件(例如,記憶體器件210)之類型。
在若干個實施例中,儲存於記憶體器件210中之資料(例如,根據一經調整後設資料格式,諸如在圖4及圖5中圖解說明之經調整後設資料格式)可與並非源自一主機之操作(例如,讀取及/或寫入操作)相關聯地傳送至/自記憶體器件210。例如,關聯於控制器208之一記憶體管理組件(例如,圖6中展示之613)可與一資料重新收回程序相關聯地將資料寫入至記憶體器件210及/或自其讀取資料。於此等例項中,諸如完整性組件224及/或合併組件228之組件可檢查關聯於經調整後設資料格式之完整性資料(例如,替代首先將後設資料自經調整後設資料格式往回轉換至主機 格式且然後檢查關聯於主機格式之完整性資料)。
圖4圖解說明根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一後設資料格式。圖4中所圖解說明之後設資料格式係關聯於一特定記憶體器件(例如,圖2中展示之記憶體器件210)之一後設資料格式。作為一項實例,圖4中圖解說明之後設資料格式可關聯於一SLC NAND記憶體器件。
舉例而言,與圖3中圖解說明之主機後設資料格式相比,圖4中圖解說明之後設資料格式係一經調整後設資料格式。圖4圖解說明可藉由(例如)上文連同圖2一起闡述之控制器208之完整性組件224形成之一資料群組460。資料群組460可係多個資料群組中之一者,該多個資料群組各自包含連同一寫入操作一起自一主機接收(舉例而言,與對應於其之後設資料一起)之若干個區段中之至少一者。資料群組460可在本文中稱為一碼字460。
在圖4中圖解說明之實例中,碼字460包含一有效負載部分445,其包含兩個區段資料欄位448-0及448-1。於此實例中,碼字460包含兩個512B區段(例如使用者區段0對應於欄位448-0且使用者區段1對應於欄位448-1)以及後設資料447。儘管在圖4中未圖解說明,但讀者將易於瞭解,一4KB資料頁可包含四個碼字460(例如,具有包含一第三及第四使用者區段之一第一額外碼字460、包含一第五及第六使用者區段之一第二額外碼字460及包含一第七及第八使用者區段之一第三額外碼字460,與各別對應後設資料 447一起)。於此實例中,後設資料447包含56B之資料。因此,每一碼字460包含一1 KB有效負載(例如,兩個512B區段)及56B之可用後設資料。因此,將一資料頁寫入至記憶體器件可包含寫入4320B之資料(例如,對應於一4 KB頁大小之4 KB之使用者資料,以及320B之後設資料)。
關聯於碼字460之後設資料447包含若干個資料欄位。在圖4中圖解說明之箭頭用於指示哪些資料部分係由特定完整性資料欄位防護。於此實例中,欄位450-0係包含關聯於欄位448-0之使用者區段(例如,區段0 DIF)之8B DIF資料之一完整性資料欄位。亦即,欄位450-0可包含在將區段0提供至完整性組件224之前附加至區段0(例如,經由圖2中展示之插入組件220)之後設資料(例如,341)。類似地,欄位450-1係包含關聯於欄位448-1之使用者區段(例如,區段1 DIF)之8B DIF資料之一完整性資料欄位。亦即,欄位450-1可包含在將區段1提供至完整性組件224之前附加至區段1(例如,經由圖2中展示之插入組件220)之後設資料(例如,341)。
後設資料447之資料欄位452係包含關聯於碼字460對應至其之一資料頁之位址資料之一4B資料完整性欄位。該位址資料(展示為快閃LBA)可係關聯於欄位448-0及448-1之使用者資料區段對應至其之邏輯資料頁之一邏輯區塊位址(LBA)。對應於同一頁之不同碼字460之欄位452可經檢查以判定是否已跨越對應於該頁之若干個碼字來維持位址資料之完整性。
後設資料447之資料欄位454-0係一2B錯誤資料欄位。於此實例中,對應於欄位454-0之錯誤資料(展示為快閃CRC區段0)係防護對應於欄位448-0、450-0及452之資料之一CRC(例如,防護512B之使用者區段0、8B區段0 DIF及區段0對應至其之頁之4B快閃LBA)。類似地,後設資料447之資料欄位454-1係一2B錯誤資料欄位。於此實例中,對應於454-1之錯誤資料(展示為快閃CRC區段1)係防護對應於欄位448-1、450-1及452之資料之一CRC(例如,防護512B之使用者區段1、8B區段1 DIF及區段1對應至其之頁之4B快閃LBA)。在圖4中圖解說明之經調整後設資料格式之資料欄位452、454-0及454-1可包含視為如上文連同圖2所闡述之第二完整性資料之資料。
於此實例中,後設資料447之資料欄位456係一4B保留資料欄位。可出於各種目的而與一記憶體系統內之資料傳送相關聯地使用欄位456(例如,圖1中展示之記憶體系統104)。例如,欄位456可包含額外錯誤資料及/或關聯於有效負載445之其他完整性資料。然而,可出於資料完整性以外的目的來使用欄位456。
後設資料447之資料欄位458係一28B錯誤資料欄位。於此實例中,對應於欄位458之錯誤資料(展示為BCHECC16)係一16位元錯誤校正碼(ECC),其防護對應於有效負載445之1024B之使用者資料(例如,使用者區段0及使用者區段1)以及關聯於其之56B之後設資料447。因此,對應於欄位458之錯誤資料支援每碼字460(例如,每1080B)16位元之 校正。實施例並不限於此實例。圖4中圖解說明之經調整後設資料格式之資料欄位458可視為如上文連同圖2一起闡述之第三完整性資料。
圖4中圖解說明之經調整後設資料格式可經由一控制器實施且可用於提供與諸如如上文連同圖2所闡述之來自一主機之寫入及讀取請求等操作相關聯地提供資料完整性。例如,完整性組件224可將關聯於自一主機接收之區段之一後設資料格式自一第一格式(例如,一主機格式,諸如在圖3中展示之彼格式)轉換成一第二格式(例如,一經調整格式,諸如在圖4中展示之彼格式)。被寫入至記憶體器件210之碼字(例如,460)可包含一錯誤資料欄位(例如,458),該錯誤資料欄位包含由組件226產生之防護其他後設資料(例如,對應於除欄位458外的資料欄位之後設資料447之資料)及碼字之有效負載(例如,445)之錯誤資料。可在自記憶體器件210讀取該等碼字(例如,回應於來自一主機之一讀取請求)時經由組件230檢查防護其他後設資料及有效負載之錯誤資料。無論該讀取請求係一部分頁讀取請求還是一全頁讀取請求,控制器208皆經組態以在將所請求區段遞送至主機之前將關聯於自器件讀取之碼字之後設資料格式自經調整後設資料格式往回轉換成主機格式,同時維持資料區段之資料完整性。
圖5圖解說明根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一後設資料格式。圖5中圖解說明之後設資料格式係關聯於一特定記憶體器件之一後設資料 格式(例如,圖2中展示之記憶體器件210)。作為一項實例,圖5中圖解說明之後設資料格式可關聯於一MLC NAND記憶體器件。
舉例而言,與圖3中圖解說明之主機後設資料格式相比,圖5中圖解說明之後設資料格式係一經調整後設資料格式。圖5圖解說明可藉由(例如)上文連同圖2所述之控制器208之完整性組件224及組件226形成之一第一資料群組560-0及一第二資料群組560-1。資料群組560-0及560-1可稱為碼字560-0及560-1。
在圖5中圖解說明之實例中,碼字560-0及560-1包含各別有效負載部分545-0及545-1,以及各別後設資料547-0及547-1。於此實例中,碼字560-0及560-1中之每一者包含兩個區段資料欄位(例如,碼字560-0包含區段欄位548-0及548-1且碼字560-1包含區段欄位548-2及548-3)。碼字560-0包含兩個512B區段(例如,使用者區段0對應於欄位548-0且使用者區段1對應於欄位548-1)。碼字560-1包含兩個512B區段(例如,使用者區段2對應於欄位548-2且使用者區段3對應於欄位548-3)。儘管在圖5中未圖解說明,但讀者將易於瞭解,一4KB資料頁可包含四個碼字(例如,包含一第五及第六使用者區段之一額外碼字560-0及包含一第七及第八使用者區段之一額外碼字560-1,分別與對應後設資料547-0及547-1一起)。於此實例中,後設資料547-0/547-1包含56B之資料。因此,每一碼字包含一1024B有效負載(例如,兩個512B區段)及56B之可用後設資料。因 此,將一資料頁寫入至記憶體器件可包含寫入4320B之資料(例如,對應於一4KB頁大小之4KB之使用者資料,以及320B之後設資料)。
關聯於碼字560-0之後設資料547-0及關聯於碼字560-1之後設資料547-1各自包含若干個資料欄位。在圖5中圖解說明之實例中,經調整後設資料格式使得關聯於碼字560-0之後設資料547-0之資料欄位不同於關聯於碼字560-1之後設資料547-1之資料欄位(例如,以不同方式使用56B之可用後設資料)。類似於圖4,在圖5中圖解說明之箭頭用於指示資料之哪些部分係由特定完整性資料欄位防護。
後設資料547-0之資料欄位552係包含關聯於碼字560-0及560-1對應於其之一資料頁之位址資料之一4B資料完整性欄位。位址資料(展示為快閃LBA)可係關聯於欄位548-0、548-1、548-2及548-3對應於其之邏輯資料頁之一邏輯區塊位址(LBA)。對應於同一頁之不同碼字560-0之欄位552可經檢查以判定是否跨越對應於該頁之若干個碼字維持位址資料之完整性。
後設資料547-1之資料欄位554係一4B錯誤資料欄位。於此實例中,對應於欄位554之錯誤資料(展示為快閃CRC)係防護對應於欄位548-0、548-1、548-2、548-3及552之資料之一CRC(例如,一32位元CRC)(例如,防護512B之使用者區段0、使用者區段1、使用者區段2及使用者區段3以及該等使用者區段對應於之4B快閃LBA之頁的一CRC)。在圖5中圖解說明之經調整後設資料格式之資料欄位552及 554可包含視為如上文連同圖2所闡述之第二完整性資料之資料。於此實例中,與碼字560-1相關聯之後設資料547-1包含對應於關聯於碼字560-1之區段(例如,使用者區段2及使用者區段3)以及關聯於碼字560-0之區段(例如,使用者區段0及使用者區段1)之第二完整性資料(例如,呈對應於資料完整性欄位554之一CRC之形式之錯誤資料)。關聯於碼字560-0之後設資料547-0亦包含對應於關聯於不同碼字之區段之第二完整性資料(例如,對應於資料完整性欄位552之位址資料)。亦即,後設資料547-0之第二完整性資料552對應於碼字560-0內之區段以及一不同碼字(例如,560-1)內之區段。因此,關聯於碼字560-0/560-1之經調整後設資料格式包含對應於多個區段(例如,於此實例中,區段0至3)之第二完整性資料(例如,對應於欄位552及554之完整性資料)。
後設資料547-0之資料欄位558-0及後設資料547-1之資料欄位558-1各自係一52B錯誤資料欄位。於此實例中,對應於欄位558-0及558-1之錯誤資料(展示為BCHECC29)係一29位元錯誤校正碼(ECC),其防護分別對應於有效負載545-0(例如使用者區段0及使用者區段1)及545-1(例如,使用者區段2及使用者區段3)之1024B之使用者資料以及關聯於其之各別56B之後設資料547-0及547-1。因此,對應於欄位558-0及558-1之錯誤資料支援每碼字(例如,每1080B)29個位元校正。實施例並不限於此實例。圖5中圖解說明之經調整後設資料格式之資料欄位558-0及558-1可 視為如上文連同圖2所闡述之第三完整性資料。
碼字560-0及560-1可與對應於該資料頁之額外碼字一起寫入至一記憶體器件(例如,記憶體器件210)。例如,可回應於一讀取操作來檢查後設資料547-0及547-1之第三完整性資料(例如,完整性資料欄位558-0及558-1之ECC碼)。第三完整性資料之檢查可藉由一組件(諸如圖2中展示之組件230)執行。在若干個實施例中,在執行第三完整性資料之檢查之後,可執行(例如,由完整性組件234)後設資料547-0及547-1之第二完整性資料之一檢查(例如,資料完整性欄位554之CRC)。在若干個實施例中,完整性組件234可在一每區段基礎上產生對應於若干個碼字中之一特定者之至少一個區段(例如,碼字560-0之使用者區段0)之第四完整性資料。如上文所述,組件234可用對應於該至少一個區段(例如,使用者區段0)且包含第四完整性資料(例如,錯誤資料,諸如對應於使用者區段0之一CRC)之經調整後設資料(例如,具有一主機格式之後設資料,諸如圖3中展示之後設資料341)取代關聯於若干個碼字中之特定一者之後設資料(例如,關聯於碼字560-0之後設資料547-0)。
在若干個實施例中,一組件(諸如組件236)可執行對應於該若干個碼字中之該特定一者之至少一個區段之經調整(例如,經修改)後設資料之第四完整性資料之一檢查。該第四完整性資料之檢查可包含比較對應於該若干個碼字中之該特定一者之該至少一個區段之經修改後設資料之第四 完整性資料與對應於該至少一個區段之第一完整性資料。例如,組件236可比較該第四完整性資料(例如,由完整性組件234產生之CRC)與先前產生之一CRC(例如,舉例而言,藉由插入組件220產生且儲存於控制器之一緩衝器中)。在若干個實施例中,可在將該至少一個區段轉發至主機之前移除(例如,經由組件236)對應於該至少一個區段之經調整後設資料。然而,如上文所指示,在若干個實施例中,可將組件236所接收(例如,自組件234)之經修改後設資料中之一或多個部分提供至主機介面206而不移除。
亦可回應於(例如)一部分讀取操作來檢查後設資料547-0及547-1之第三完整性資料(例如,完整性資料欄位558-0及558-1之ECC碼)。在此等實施例中,可藉由一組件(諸如圖2中展示之組件230)執行第三完整性資料之檢查。在若干個實施例中,在執行第三完整性資料之檢查之後,可執行(例如,由合併組件228)後設資料547-0及547-1之第二完整性資料之一檢查(例如,資料完整性欄位554之CRC)。在檢查後設資料547-0及547-1之第二完整性資料之後,合併組件228經組態以將後設資料自圖5中展示之經調整格式轉換成一主機格式(例如,如圖3中所展示,在一每區段基礎上包含完整性資料之一格式)。合併組件228可用與部分讀取操作相關聯地接收之一或多個主機區段取代自記憶體器件210讀取之頁之區段中之一或多者,且可將該資料及相關聯後設資料傳送至完整性組件224,完整性組件224經組態以根據如上文所述之主機格式來接收資料。在若干個部分 讀取操作中,合併組件228可不執行對應於自記憶體器件210讀取之頁之碼字(例如,碼字560-0及560-1,以及對應於所讀取頁之其他碼字)中之每一者之第二完整性資料之一檢查。例如,若部分讀取包含與六個主機區段合併之自記憶體器件讀取之兩個區段(例如,使用者區段0及使用者區段1),則合併組件228可檢查完整性資料欄位554之完整性資料(例如,對應於欄位548-1、548-2、548-3、548-4及552之CRC)。然而,由於對應於所讀取頁之其他碼字不包含待與主機區段合併之區段,因此合併組件228可經組態以不執行關聯於彼等碼字之第二完整性資料之一檢查。類似地,與此部分讀取實例相關聯,合併組件228可經組態以放棄關聯於不包含待與主機區段合併之區段之所讀取頁之彼等碼字之後設資料自經調整格式至主機格式之轉換。放棄不包含關聯於部分讀取操作之區段之彼等碼字之後設資料之轉換及/或放棄關聯於其之第二完整性資料之檢查可節省處理資源以及其他益處。
圖6係根據本發明之一或多個實施例之一記憶體控制器608之一功能方塊圖。控制器608可係諸如連同圖1闡述之控制器108之一控制器,或諸如連同圖2闡述之控制器208之一控制器。
在圖6中圖解說明之實例中,控制器608包含一記憶體管理組件613及一記憶體控制組件611。記憶體管理組件613包含關聯於諸如耗損平均(例如,廢料收集及/或重新收回)、錯誤偵測及/或校正、及/或區塊止用之各種記憶體管 理功能以及與記憶體器件610-1、...、610-N相關聯之各種其他記憶體管理功能之組件(例如,電路及/或韌體)。記憶體管理組件613可將主機命令(例如,經由主機介面606自一主機接收之命令)剖析及/或格式化成器件命令(例如,與操作記憶體器件610-1、...、610-N相關聯之命令)。記憶體管理組件613亦可產生器件命令(例如,以達成各種記憶體管理功能)。記憶體管理組件613經組態以將器件命令提供至記憶體控制組件611。
記憶體控制組件611經組態以控制關聯於將資料寫入至若干個記憶體器件610-1、...、610-N、自記憶體器件610-1、...、610-N讀取資料及抹除記憶體器件610-1、...、610-N內之資料(例如,區塊)之記憶體操作。記憶體操作可係基於主機命令(例如,經由主機介面606接收至控制器608之主機命令)之操作(例如,讀取及/或寫入),及/或可係基於由控制組件611及/或記憶體管理組件613起始之內部產生之器件命令(例如,與損耗平均、錯誤偵測及/或校正等相關聯)。
耦合至控制組件611之記憶體器件610-1、...、610-N可係非揮發性記憶體器件,諸如圖1中所述之器件110-1、...、110-N。在圖6中圖解說明之實例中,記憶體器件610-1、...、610-N係NAND快閃記憶體器件。如上文所述,記憶體器件610-1、...、610-N內之記憶體胞可組織成具有關聯於其之若干個實體頁之若干個區塊。
記憶體控制組件611包含一錯誤校正組件619,該錯誤校 正組件可包含經組態以偵測及/或校正關聯於被寫入至記憶體器件610-1、...、610-N及/或自其讀取之資料之錯誤之一ECC引擎或其他電路。在若干個實施例中,錯誤校正組件619可採用一BCHECC(例如,諸如上文結合圖2、圖4及圖5所闡述)以偵測提供至其之資料中之位元錯誤。所偵測位元錯誤可或可不經由錯誤校正組件619校正(例如,相依於所偵測之錯誤位元數目及所使用之ECC類型等)。若錯誤位元之數目可經由組件619校正,則該操作係組件619可進行至與該特定操作之完成相關聯地校正之一可校正位元錯誤。若該若干個錯誤位元不可經由組件619校正(例如,錯誤位元之數目超出關聯於組件619之可校正位元之一臨限數目),則該操作係一不可校正位元錯誤。記憶體控制組件611可經組態以將可校正位元錯誤以及不可校正位元錯誤報告給記憶體管理組件613。
記憶體管理組件613包含若干個管理表615。表615可維持關聯於記憶體器件610-1、...、610-N之各種資訊。例如,表615可包含關於器件610-1、...、610-N內之區塊之區塊使用壽命及/或區塊抹除計數之資訊。表615可包含關於與關聯於記憶體器件610-1、...、610-N之區塊及/或頁相關聯之錯誤歷史之資訊。例如,表615可維持關聯於器件610-1、...、610-N之若干個錯誤計數(例如,一寫入操作錯誤計數、一讀取位元錯誤計數、一讀取操作錯誤計數及/或一抹除錯誤計數以及其他)。一寫入操作錯誤係指未能執行之一寫入操作(例如,主機起始或器件起始)。一讀取 操作錯誤係指未能執行之一讀取操作(例如,主機起始或器件起始)。一讀取位元錯誤可係指導致偵測到關聯於正讀取之資料(例如,頁)之若干個錯誤位元之一讀取操作。如上文所述,該若干個所偵測錯誤可或可不經由一錯誤校正組件(例如,619)校正。若所偵測錯誤之數目高於經由錯誤校正組件(例如,619)可校正之錯誤之一臨限數目,則將該位元錯誤視為一不可校正位元錯誤。表615可維持由關聯於記憶體器件610-1、...、610-N之區塊經歷之可校正及/或不可校正讀取位元錯誤之一計數。表615亦可包含LBA表以及其他。
控制器608之記憶體管理組件613包含一冗餘管理組件617,其可係一RAID(獨立磁碟冗餘陣列,其中術語「磁碟」僅係自使用硬磁碟機之先前實施方案之一留存物)單元617。RAID單元617可用於透過與將記憶體器件操作為一RAID相關聯之冗餘信息來提供資料可靠性。RAID單元617可包含(舉例而言)RAID互斥或(XOR)電路,以及關聯於各種RAID層級之其他電路。
在若干個實施例中,控制器608經組態以主動偵測及自關聯於各種操作(諸如讀取及寫入操作)之錯誤發生(例如,位元錯誤及/或操作錯誤)中復原,同時維持在主機介面606與記憶體器件610-1、...、610-N之間傳送之資料之完整性。控制器608經組態以自使用中移除失效記憶體資源(例如,頁、區塊及/或器件610-1、...、610-N)以防止未來的不可校正錯誤。
例如,記憶體管理組件613可起始對記憶體控制組件611之抹除命令(例如,以將記憶體器件610-1、...、610-N內之一區塊準備用於寫入)。控制組件611可偵測與該抹除操作相關聯之一抹除錯誤之發生且可將錯誤發生報告給記憶體管理組件613。在一抹除錯誤之情形中,資料復原並非必要的,此乃因區塊內之任何有效資料本應在抹除操作之執行之前被移動至一不同區塊。關聯於該抹除錯誤之區塊可在抹除錯誤之數目達到一臨限數目時被止用。在若干個實施例中,抹除錯誤之臨限數目係一;然而,實施例並不限於此。
在各種實施例中,在控制器608正執行各種器件操作及/或主機操作(例如,讀取及/或寫入操作等)之同時,控制器可執行各種記憶體管理功能,諸如損害平均功能(例如,廢料收集及/或重新收回)、錯誤偵測/校正功能(例如,關聯於ECC)、頁及/或區塊止用功能、及/或RAID功能,以及關聯於記憶體器件610-1、...、610-N之各種其他記憶體管理功能。因此,可在對一使用者無一感知影響之情況下執行各種記憶體管理功能。控制器608根據本文所述之實施例執行錯誤復原操作同時維持資料完整性之能力可減少要做的器件製造測試量(例如,在提供至該領域中之一消費者之前在裝運前執行之測試)。例如,本發明之實施例可減少或防止關聯於判定壞區塊或壞記憶體器件(例如,610-1、...、610-N)之位置之器件製造測試之發生,此乃因此測試可經由諸如圖6中圖解說明之彼等組件(例如,611、 613、615、617及619)之硬體組件而實地執行。亦即,記憶體器件610-1、...、610-N可未進行關於關聯於記憶體器件610-1、...、610-N之壞區塊位置的測試。藉由將記憶體器件(例如,610-1、...、610-N)之裝運前測試移位至控制器608之硬體組件來減少及/或消除此測試可減少關聯於器件之裝運前測試之成本同時對使用者產生極少(若存在)感知影響。
作為一實例,連同一主機讀取操作,可使用錯誤校正組件619來檢查自記憶體器件610-1、...、610-N讀取之資料以判定(例如,偵測)資料中之位元錯誤。若偵測到若干個位元錯誤(例如,若存在)且位元錯誤之數目低於組件619可校正之位元錯誤之臨限數目(例如,位元錯誤係一可校正位元錯誤),則該資料將被校正並提供至主機。將該可校正位元錯誤之發生報告給記憶體管理組件613,記憶體管理組件613可維持關聯於自其讀取該資料之區塊(例如,在一表615中)之一位元錯誤計數(例如,可校正位元錯誤之一計數),且若該位元錯誤計數超過一特定位元錯誤計數臨限值則可止用該區塊。若所偵測位元錯誤之數目高於組件619可校正之位元錯誤之臨限數目(例如,位元錯誤係一不可校正位元錯誤),則可使用RAID單元617自動地復原所請求讀取資料且可將其提供至主機。在若干個實施例中,記憶體管理組件613回應於不可校正位元錯誤之發生之一所接收指示(例如,經由來自錯誤校正組件619之一報告)自動地起始所讀取資料之復原。記憶體管理組件613可維持關 聯於自其讀取該資料之區塊(例如,在一表615中)之一位元錯誤計數(例如,不可校正位元錯誤之一計數),且若該位元錯誤計數超過一特定位元錯誤計數臨限值則可止用該區塊。在止用一區塊(例如,回應於位元錯誤計數超過位元錯誤計數臨限值)之前,可使用RAID單元617復原關聯於該區塊之資料且可將該資料移動至一新區塊(例如,一可用好區塊)。
可類似地處置關聯於一器件讀取操作(例如,由控制組件611起始之一讀取操作與一記憶體管理程序(諸如重新收回)相關聯)之位元錯誤。例如,若組件619偵測到一可校正位元錯誤,則可校正該資料並將其移動至記憶體器件610-1、...、610-N內之一新區塊(與提供至與一主機讀取操作相關聯之主機相反)。將可校正位元錯誤之發生報告給記憶體管理組件613,記憶體管理組件613可維持關聯於自其讀取該資料之區塊之位元錯誤計數,且若該位元錯誤計數超過一特定位元錯誤計數臨限值則可止用該區塊。若所偵測位元錯誤之數目高於組件619可校正之位元錯誤之臨限數目(例如,位元錯誤係一不可校正位元錯誤),則可使用RAID單元617立即復原所請求讀取資料且可將其移動至一新區塊。將不可校正位元錯誤之發生報告給記憶體管理組件613,記憶體管理組件613可維持關聯於自其讀取該資料之區塊之位元錯誤計數,且若該位元錯誤計數超過一特定位元錯誤計數臨限值則可止用該區塊。在止用一區塊(例如,回應於位元錯誤計數超過位元錯誤計數臨限值)之 前,可使用RAID單元617復原關聯於該區塊之資料且可將該資料移動至一新區塊(例如,一可用好區塊)。
可以類似於上文所述方式之一方式連同對應於主機及器件讀取操作之位元錯誤一起處置操作讀取錯誤(例如,操作主機讀取錯誤及操作器件讀取錯誤)。舉例而言,若一讀取請求失敗,則可將該失敗之一指示提供至記憶體管理組件613,記憶體管理組件613可自動起始所請求讀取資料之復原(例如,經由RAID單元617)。
可以類似於上文所述方式之一方式連同對應於主機及器件讀取操作之位元錯誤及/或連同操作讀取錯誤一起處置操作寫入錯誤(例如,操作主機寫入錯誤及操作器件寫入錯誤)。舉例而言,若一寫入請求失敗,則可將該失敗之一指示提供給記憶體管理組件613,記憶體管理組件613可自動起始所請求寫入資料之復原(例如,經由RAID單元617)。在若干個實施例中,記憶體管理組件613回應於寫入錯誤之發生之一所接收指示(例如,經由來自控制組件611之一報告)自動起始寫入資料之復原。記憶體管理組件613可維持關聯於該資料待寫入至其之區塊(例如,在一表615中)之一寫入錯誤計數,且若該寫入錯誤計數超過一特定寫入錯誤計數臨限值則可止用該區塊。連同寫入資料之自動復原(例如,經由RAID單元617)一起,可將經復原之寫入資料移動至一新區塊(例如,一可用好區塊)。
結論
本發明包含用於提供資料完整性之裝置(例如,計算系 統、記憶體系統、控制器等)及方法。一或多個方法實施例可包含(舉例而言):接收待寫入至若干個記憶體器件(例如,一單個記憶體器件)之若干個資料區段;將對應於該若干個區段且包含第一完整性資料之第一後設資料附加至該若干個區段,該第一後設資料具有一特定格式;產生待提供於第二後設資料中之第二完整性資料,該第二完整性資料對應於該若干個區段中之至少一者(其中該第二後設資料具有一第二格式);及產生待提供於該第二後設資料中之第三完整性資料,該第三完整性資料包含對應於該第二完整性資料及該若干個區段中之該至少一者之錯誤資料。
應理解,當稱一元件「在」另一元件上、「連接至」另一元件或與另一元件「耦合」時,其可係直接在該另一元件上、與該另一元件連接或耦合、或可存在介入元件。相比而言,當稱一元件「直接在」另一元件上、「直接連接至」另一元件或與另一元件「直接耦合」時,不存在介入元件或層。如本文中所使用,術語「及/或」包含所列舉之相關聯物項中之一或多者之任一及所有組合。
如本文中所使用,術語「及/或」包括所列舉之相關聯物項中之一或多者之任一及所有組合。如本文中使用,除非另外提及,否則術語「或」意指邏輯包含「或」。亦即,「A或B」可包含(僅A)、(僅B)或(A與B兩者)。換言之,「A或B」可意指「A及/或B」或「A與B中之一或多者」。
應理解,儘管本文中可使用術語第一、第二、第三等來闡述各種元件,但此等元件不應受限於此等術語。此等術語僅用於區分一個元件與另一元件。因此,在不背離本發明之教示之情況下,可將一第一元件稱為一第二元件。
儘管本文中已圖解說明及闡述了具體實施例,但熟習此項技術者應瞭解,經計算以達成相同結果之一配置可替代所展示之具體實施例。本發明意欲防護本發明之一或多個實施例之變更或變化形式。應理解,已以一說明性方式而非一限定性方式作出以上說明。在審閱以上說明後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多個實施例之範疇包含其中使用以上結構及方法之其他應用。因此,本發明之一或多個實施例之範疇應參考隨附申請專利範圍與授權此等申請專利範圍之等效物之全部範圍一起來判定。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起聚集於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一請求項中之特徵更多之特徵的一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,將以下申請專利範圍特此併入實施方式中,其中每一請求項獨立地作為一單獨實施例。
100‧‧‧計算系統
102‧‧‧主機
104‧‧‧記憶體系統/系統
106‧‧‧實體主機介面/介面
108‧‧‧控制器/記憶體控制器/記憶體系統控制器
110-1‧‧‧記憶體器件
110-N‧‧‧記憶體器件
206‧‧‧主機介面
208‧‧‧記憶體控制器/控制器
210‧‧‧記憶體器件/器件
220‧‧‧資料完整性插入組件/組件
222‧‧‧資料緩衝器
224‧‧‧完整性組件/組件
226‧‧‧組件
228‧‧‧合併組件
230‧‧‧組件
232‧‧‧緩衝器
234‧‧‧第二完整性組件/完整性組件
236‧‧‧組件
340‧‧‧資料群組
341‧‧‧後設資料/後設資料欄位
342‧‧‧子欄位/欄位
344‧‧‧子欄位/欄位
346‧‧‧子欄位/欄位/錯誤資料
348‧‧‧資料欄位/區段欄位
445‧‧‧有效負載部分/有效負載
447‧‧‧後設資料
448-0‧‧‧區段資料欄位/使用者區段0
448-1‧‧‧區段資料欄位/使用者區段1
450-0‧‧‧欄位/完整性資料欄位
450-1‧‧‧欄位/完整性資料欄位
452‧‧‧完整性資料/資料欄位/欄位
454-0‧‧‧完整性資料/資料欄位/錯誤資料欄位/快閃循環冗餘檢查區段0
454-1‧‧‧完整性資料/資料欄位/錯誤資料欄位/快閃循環冗餘檢查區段1
456‧‧‧資料欄位/保留資料欄位/欄位
458‧‧‧完整性資料/資料欄位/錯誤資料欄位/欄位/BCHECC16
460‧‧‧資料群組/碼字/第一額外碼字/第二額外碼字/第三額外碼字
545-0‧‧‧有效負載部分/有效負載
545-1‧‧‧有效負載部分/有效負載
547-0‧‧‧後設資料
547-1‧‧‧後設資料
548-0‧‧‧區段資料欄位/區段欄位/欄位
548-1‧‧‧區段資料欄位/區段欄位/欄位
548-2‧‧‧區段資料欄位/區段欄位/欄位
548-3‧‧‧區段資料欄位/區段欄位/欄位
552‧‧‧完整性資料/欄位/資料欄位/資料完整性欄位/第二完整性資料
554‧‧‧完整性資料/資料欄位/錯誤資料/快閃循環冗餘檢查/資料完整性欄位
558-0‧‧‧完整性資料/資料欄位/錯誤資料/BCHECC29/完整性資料欄位
558-1‧‧‧完整性資料/資料欄位/錯誤資料/BCHECC29/完整性資料欄位
560-0‧‧‧第一資料群組/資料群組/碼字/額外碼字
560-1‧‧‧第二資料群組/資料群組/碼字/額外碼字
606‧‧‧主機介面
608‧‧‧記憶體控制器/控制器
610-1‧‧‧記憶體器件
610-N‧‧‧記憶體器件
611‧‧‧記憶體控制組件/控制組件
613‧‧‧記憶體管理組件
615‧‧‧管理表/表
617‧‧‧冗餘管理組件/獨立磁碟冗餘陣列單元
619‧‧‧錯誤校正組件/組件
圖1係根據本發明之一或多個實施例包含至少一個記憶體系統之一計算系統之一功能方塊圖。
圖2係根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一記憶體控制器之一功能方塊圖。
圖3圖解說明根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一後設資料格式。
圖4圖解說明根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一後設資料格式。
圖5圖解說明根據本發明之一或多個實施例關聯於提供所傳送資料之完整性之一後設資料格式。
圖6係根據本發明之一或多個實施例之一記憶體控制器之一功能方塊圖。
206‧‧‧主機介面
208‧‧‧記憶體控制器/控制器
210‧‧‧記憶體器件/器件
220‧‧‧資料完整性插入組件/組件
222‧‧‧資料緩衝器
224‧‧‧完整性組件/組件
226‧‧‧組件
228‧‧‧合併組件
230‧‧‧組件
232‧‧‧緩衝器
234‧‧‧第二完整性組件/完整性組件
236‧‧‧組件

Claims (30)

  1. 一種裝置,其包括經組態以耦合至若干個記憶體器件之一控制器,該控制器經組態以:接收待寫入至該若干個記憶體器件之若干個資料區段;將對應於該若干個區段且包含第一完整性資料之第一後設資料附加至該若干個區段,其中該第一後設資料具有一第一格式;產生待提供於具有一第二格式之第二後設資料中之第二完整性資料,該第二完整性資料對應於該若干個區段中之至少一者;及產生待提供於該第二後設資料中之第三完整性資料,該第三完整性資料包含對應於該第二完整性資料及該若干個區段中之該至少一者之錯誤資料。
  2. 如請求項1之裝置,其中該控制器經組態以在產生該第二完整性資料之前執行該第一完整性資料之一檢查。
  3. 如請求項1之裝置,其中:對應於待寫入至該等記憶體器件之該若干個區段之該第一後設資料之該第一完整性資料在一每區段基礎上包含錯誤資料;且其中對應於第一若干個個區段中之至少一者之該第二後設資料之該第二完整性資料在一多區段基礎上包含錯誤資料。
  4. 如請求項1之裝置,其中該控制器經組態以將該若干個 區段及具有該第二格式之對應第二後設資料寫入至該若干個記憶體器件,且其中該控制器進一步經組態以:與一讀取操作相關聯地自該若干個記憶體器件接收該第一若干個區段及對應第二後設資料;執行該第三完整性資料之該錯誤資料之一檢查;隨後執行該第二完整性資料之錯誤資料及位址資料中之至少一者之一檢查;及在將該若干個區段提供至一主機之前將關聯於該第一若干個區段之該後設資料格式自該第二格式往回調整至該第一格式。
  5. 如請求項4之裝置,其中該控制器經組態以在將該第一若干個區段提供至該主機之前將關聯於該第一若干個區段之該後設資料格式自該第二格式往回調整至該第一格式包括該控制器經組態以:針對該若干個區段在一每區段基礎上產生錯誤資料;及在將該若干個區段提供至該主機之前執行每一區段之該錯誤資料之一檢查。
  6. 如請求項1至5中任一項之裝置,其中該控制器經組態以附加該第一後設資料包括:該控制器經組態以在與一寫入操作相關聯地產生該第二完整性資料之前在一每區段基礎上產生該第一完整性資料之錯誤資料並將該錯誤資料插入至該第一後設資料中。
  7. 如請求項1至5中任一項之裝置,其中該若干個資料區段包括第一若干個資料區段,且其中該控制器進一步經組 態以與一部分頁寫入操作相關聯地:自該若干個記憶體器件接收對應於一資料頁之第二若干個區段,該第二若干個區段係關聯於對應於其且具有該第二格式之後設資料;將關聯於來自該若干個記憶體器件之該頁之該等區段之一後設資料格式自該第二格式調整至該第一格式;及藉由用該第一若干個區段中之至少一者取代對應於該資料頁之該第二若干個區段中之至少一者來形成一經合併頁。
  8. 如請求項7之裝置,其中該控制器經組態以在用該第一若干個區段中之該至少一者取代對應於該資料頁之該第二若干個區段中之該至少一者之前執行對應於該第二若干個區段之該後設資料之錯誤資料之一檢查。
  9. 如請求項1至5中任一項之裝置,其中該若干個區段包括第一若干個區段,且其中該控制器經組態以將該第一若干個區段及具有該第二格式之對應第二後設資料寫入至該若干個記憶體器件作為一資料頁,且其中該控制器進一步經組態以與一部分頁讀取操作相關聯地:自該若干個記憶體器件接收對應於一資料頁之第二若干個區段,該第二若干個區段係關聯於對應於其且具有該第二格式之後設資料;執行對應於關聯於該部分頁讀取操作之該第二若干個區段中之選定一或多者之該後設資料之錯誤資料之一檢查; 將關聯於該第二若干個區段中之該選定一或多者之該後設資料格式調整至該第一格式以使得對應於該等選定區段之該後設資料在一每區段基礎上包含完整性資料;及在將該部分頁中之該等選定區段提供至一主機之前執行對應於該等選定區段之該完整性資料之一檢查。
  10. 如請求項9之裝置,其中該控制器進一步經組態以在執行對應於該等選定區段之該完整性資料之該檢查之前與該部分頁讀取操作相關聯地執行對應於自該若干個記憶體器件接收之該等選定區段之該後設資料之完整性資料之一檢查。
  11. 如請求項1至5中任一項之裝置,其中該控制器包括一固態磁碟機記憶體控制器,且該若干個記憶體器件包括若干個固態記憶體器件。
  12. 一種用於提供資料完整性之方法,其包括:接收待寫入至若干個記憶體器件之若干個資料區段,該若干個區段具有包含關聯於其之第一完整性資料之第一後設資料,其中該第一後設資料具有一特定後設資料格式;產生待提供於具有一經調整後設資料格式之第二後設資料中之第二完整性資料,該第二完整性資料對應於該若干個區段中之至少一者;及產生待提供於該第二後設資料中之第三完整性資料,該第三完整性資料包含對應於該第二完整性資料及該若干個區段中之該至少一者之錯誤資料。
  13. 如請求項12之方法,其中該特定後設資料格式在一每區段基礎上包含該第一完整性資料,且該經調整後設資料格式在一多區段基礎上包含該第二完整性資料。
  14. 如請求項12之方法,其進一步包括用該第二後設資料取代該第一後設資料。
  15. 如請求項12之方法,其中該第二後設資料包含該第一完整性資料。
  16. 如請求項12之方法,其中該第二後設資料不包含該第一完整性資料。
  17. 如請求項12至16中任一項之方法,其包含將該若干個區段及對應第二後設資料寫入至該記憶體器件。
  18. 如請求項12至16中任一項之方法,其中該方法包含與關聯於被寫入至該記憶體器件之該若干個區段中之一或多者之一讀取操作相關聯地執行提供於對應於該一或多個區段之該第二後設資料中之該第三完整性資料之一檢查。
  19. 如請求項18之方法,其中該方法包含與關聯於被寫入至該記憶體器件之該若干個區段中之一或多者之該讀取操作相關聯地:在該第三完整性資料之該檢查之後,執行包含對應於該若干個區段中之該一或多者之錯誤資料之該第二完整性資料之一檢查;及將關聯於該若干個區段中之該一或多者之該經調整後設資料格式往回調整至該特定後設資料格式。
  20. 如請求項19之方法,其中將關聯於該若干個區段中之該一或多者之該經調整後設資料格式往回調整至該特定後設資料格式包含:用第三後設資料取代該第二後設資料,該第三後設資料在一每區段基礎上包含對應於該若干個區段中之該一或多者之第四完整性資料。
  21. 如請求項20之方法,其中該方法包含在將該若干個區段中之該一或多者提供至一主機之前比較對應於該若干個區段中之該一或多者之該第四完整性資料與對應於該若干個區段中之該一或多者之該第一完整性資料。
  22. 如請求項12至16中任一項之方法,其中該方法包含:在產生該第二完整性資料之前,自該記憶體器件讀取一頁,該頁包含多個區段及具有該經調整後設資料格式之對應後設資料;執行關聯於該頁之完整性資料之一檢查;將關聯於該多個區段之該經調整後設資料格式調整至該特定後設資料格式;及在將一寫入頁寫入至該記憶體器件之前藉由用該所接收若干個區段中之一或多者取代關聯於該讀取頁之該多個區段中之一或多者來形成該寫入頁。
  23. 如請求項12至16中任一項之方法,其包含使用耦合至該若干個記憶體器件之一控制器將該第一後設資料之該第一完整性資料附加至該若干個區段。
  24. 一種用於提供資料完整性之方法,其包括:接收待寫入至一記憶體器件之若干個資料區段作為一 資料頁之至少部分,其中該若干個區段中之每一者具有關聯於其之第一完整性資料;形成關聯於該頁之若干個資料群組,其中該若干個群組中之每一者包含該若干個區段中之至少一者及對應於其之後設資料,其中:關聯於該若干個群組中之至少一者之該後設資料包含第二完整性資料,該第二完整性資料對應於該若干個群組中之該至少一者的該若干個區段中之該至少一者以及該若干個群組中之至少一個不同群組的該若干個區段中之至少一個區段;且關聯於該若干個群組中之每一者之該後設資料包含對應於該若干個群組中之該各別至少一者的該若干個區段中之該至少一者之第三完整性資料以及對應於該各別群組自身之該第二完整性資料。
  25. 如請求項24之方法,其中該方法包含:將該若干個群組寫入至該記憶體器件;及回應於關聯於該若干個群組中之一特定一者之該至少一個區段之一讀取操作而執行關聯於該若干個群組中之該特定一者之該後設資料之該第三完整性資料之一檢查。
  26. 如請求項25之方法,其中該方法包含在執行關聯於該若干個群組中之該特定一者之該後設資料之該第三完整性資料之該檢查之後:執行關聯於該若干個群組中之該特定一者之該後設資 料之該第二完整性資料之一檢查;在一每區段基礎上產生對應於該若干個群組中之該特定一者之該至少一個區段之第四完整性資料;及用對應於該若干個群組中之該特定一者之該至少一個區段之經調整後設資料取代關聯於該若干個群組中之該特定一者之該後設資料,該經調整後設資料包含該第四完整性資料。
  27. 如請求項26之方法,其中該方法包含執行對應於該若干個群組中之該特定一者之該至少一個區段的該經調整後設資料之該第四完整性資料之一檢查。
  28. 如請求項27之方法,其中執行該第四完整性資料之該檢查包含:比較對應於該若干個群組中之該特定一者之該至少一個區段的該經調整後設資料之該第四完整性資料與對應於該至少一個區段之該第一完整性資料。
  29. 如請求項28之方法,其中該方法包含在將該至少一個區段提供至一主機之前移除對應於該至少一個區段之該經調整後設資料。
  30. 如請求項24至29中任一項之方法,其中該第一完整性資料包含對應於該各別區段中之每一者之位址完整性資料及錯誤資料,且其中該方法進一步包括針對該若干個區段中之每一者執行該位址完整性資料及該錯誤資料之一檢查。
TW101119614A 2011-05-31 2012-05-31 用於提供資料完整性之裝置及方法 TWI468942B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/149,488 US8589761B2 (en) 2011-05-31 2011-05-31 Apparatus and methods for providing data integrity

Publications (2)

Publication Number Publication Date
TW201303596A true TW201303596A (zh) 2013-01-16
TWI468942B TWI468942B (zh) 2015-01-11

Family

ID=47260250

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101119614A TWI468942B (zh) 2011-05-31 2012-05-31 用於提供資料完整性之裝置及方法

Country Status (7)

Country Link
US (2) US8589761B2 (zh)
EP (1) EP2715550B1 (zh)
JP (1) JP5792380B2 (zh)
KR (1) KR101560077B1 (zh)
CN (1) CN103620565B (zh)
TW (1) TWI468942B (zh)
WO (1) WO2012166725A2 (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4148883B2 (ja) * 2002-12-18 2008-09-10 株式会社パイオラックス グローブボックス用リッドロック装置
US8860117B2 (en) 2011-04-28 2014-10-14 Micron Technology, Inc. Semiconductor apparatus with multiple tiers of memory cells with peripheral transistors, and methods
US9026887B2 (en) * 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
US8964474B2 (en) 2012-06-15 2015-02-24 Micron Technology, Inc. Architecture for 3-D NAND memory
US9015554B2 (en) * 2012-12-20 2015-04-21 Seagate Technology Llc Management of non-valid decision patterns of a soft read retry operation
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9183081B2 (en) * 2013-03-12 2015-11-10 Sandisk Technologies Inc. Systems and methods for performing defect detection and data recovery in a memory system
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US10102060B2 (en) * 2013-08-30 2018-10-16 Hitachi, Ltd. Storage apparatus and data control method of storing data with an error correction code
GB201322075D0 (en) 2013-12-13 2014-01-29 Ibm Device for selecting a level for at least one read voltage
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US8874835B1 (en) * 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US10365966B1 (en) * 2014-03-25 2019-07-30 Marvell lnternational Ltd. Methods and systems for wordline based encoding and decoding in NAND flash
TWI545581B (zh) * 2014-04-15 2016-08-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
US9940193B2 (en) 2014-06-06 2018-04-10 Micron Technology, Inc. Chunk definition for partial-page read
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10073735B1 (en) * 2014-10-28 2018-09-11 Seagate Technology Llc Seeding mechanism for error detection codes
US10339048B2 (en) * 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US10332613B1 (en) * 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
CN105068939A (zh) * 2015-07-21 2015-11-18 广东明阳龙源电力电子有限公司 一种应用于工业级嵌入式软件系统的存储芯片及其方法
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US9679650B1 (en) 2016-05-06 2017-06-13 Micron Technology, Inc. 3D NAND memory Z-decoder
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US20190065303A1 (en) * 2017-08-31 2019-02-28 Hewlett Packard Enterprise Development Lp Processor analysis
DE102017124313B4 (de) * 2017-10-18 2021-03-18 Infineon Technologies Ag Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
TW202001565A (zh) * 2018-06-21 2020-01-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
CN110659151B (zh) 2018-06-28 2023-05-02 阿里巴巴集团控股有限公司 数据校验方法及装置,存储介质
JP7177338B2 (ja) * 2018-09-06 2022-11-24 富士通株式会社 メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法
CN112133362B (zh) * 2019-06-25 2023-05-16 华邦电子股份有限公司 存储器存储装置及其存储器测试方法
US11450381B2 (en) 2019-08-21 2022-09-20 Micron Technology, Inc. Multi-deck memory device including buffer circuitry under array
US11150988B1 (en) * 2020-03-30 2021-10-19 Dell Products L.P. Metadata pattern to detect write loss/inconsistencies of optimized-write-once operations
US20230393930A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Memory sub-system addressing for data and additional data portions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020835B2 (en) * 2000-10-19 2006-03-28 Oracle International Corporation Enhancements to data integrity verification mechanism
US7315976B2 (en) * 2002-01-31 2008-01-01 Lsi Logic Corporation Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US20040153746A1 (en) 2002-04-24 2004-08-05 Talagala Nisha D. Mechanisms for embedding and using integrity metadata
US20040123032A1 (en) * 2002-12-24 2004-06-24 Talagala Nisha D. Method for storing integrity metadata in redundant data layouts
US7577804B2 (en) 2004-10-06 2009-08-18 International Business Machines Corporation Detecting data integrity
JP4953648B2 (ja) * 2006-02-03 2012-06-13 パナソニック株式会社 不揮発性記憶装置およびメモリコントローラ
US20080086615A1 (en) * 2006-10-06 2008-04-10 John Charles Elliott Method and Apparatus to Internalize Non-Volatile Data Function for Sector Size Conversion
US7877665B2 (en) 2006-12-29 2011-01-25 Sandisk Corporation Page by page ECC variation in a memory device
US7873878B2 (en) * 2007-09-24 2011-01-18 International Business Machines Corporation Data integrity validation in storage systems
US8234539B2 (en) 2007-12-06 2012-07-31 Sandisk Il Ltd. Correction of errors in a memory array
JP5166074B2 (ja) 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
US8213229B2 (en) 2008-08-22 2012-07-03 HGST Netherlands, B.V. Error control in a flash memory device
US8468417B2 (en) 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
WO2011019794A2 (en) * 2009-08-11 2011-02-17 Texas Memory Systems, Inc. Method and apparatus for addressing actual or predicted failures in a flash-based storage system

Also Published As

Publication number Publication date
CN103620565B (zh) 2016-08-17
KR101560077B1 (ko) 2015-10-13
JP2014515536A (ja) 2014-06-30
US20120311388A1 (en) 2012-12-06
EP2715550B1 (en) 2015-10-21
WO2012166725A2 (en) 2012-12-06
EP2715550A2 (en) 2014-04-09
US8589761B2 (en) 2013-11-19
CN103620565A (zh) 2014-03-05
JP5792380B2 (ja) 2015-10-14
KR20140018393A (ko) 2014-02-12
TWI468942B (zh) 2015-01-11
US9152512B2 (en) 2015-10-06
US20140101490A1 (en) 2014-04-10
EP2715550A4 (en) 2014-11-12
WO2012166725A3 (en) 2013-01-24

Similar Documents

Publication Publication Date Title
TWI468942B (zh) 用於提供資料完整性之裝置及方法
KR101536853B1 (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
US20230229555A1 (en) Dram assist error correction mechanism for ddr sdram interface
US7599235B2 (en) Memory correction system and method
US8812935B2 (en) Using a data ECC to detect address corruption
US20130304970A1 (en) Systems and methods for providing high performance redundant array of independent disks in a solid-state device
US20230055737A1 (en) Memory controller with read error handling
US9626242B2 (en) Memory device error history bit
US20180203625A1 (en) Storage system with multi-dimensional data protection mechanism and method of operation thereof
JP5908106B2 (ja) 妥当性マスクを記憶する装置および方法ならびに操作装置
US20220342752A1 (en) Detection of Data Discrepancy After XOR Recovery
US10558523B2 (en) Computing system with data protection enhancement mechanism and method of operation thereof
CN115705906A (zh) 具有数据校验电路的数据存储设备