TWI449051B - 固態硬碟中之改良型錯誤校正技術 - Google Patents

固態硬碟中之改良型錯誤校正技術 Download PDF

Info

Publication number
TWI449051B
TWI449051B TW098144758A TW98144758A TWI449051B TW I449051 B TWI449051 B TW I449051B TW 098144758 A TW098144758 A TW 098144758A TW 98144758 A TW98144758 A TW 98144758A TW I449051 B TWI449051 B TW I449051B
Authority
TW
Taiwan
Prior art keywords
data
memory
solid state
written
ecc
Prior art date
Application number
TW098144758A
Other languages
English (en)
Other versions
TW201030760A (en
Inventor
Andrew Wayne Vogan
Richard Coulson
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201030760A publication Critical patent/TW201030760A/zh
Application granted granted Critical
Publication of TWI449051B publication Critical patent/TWI449051B/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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

固態硬碟中之改良型錯誤校正技術 發明領域
本發明大體上係有關固態大量儲存體產品上之經改良的可靠度。
發明背景
固態硬碟(SSD)是不含有移動部件的一種高效能儲存體裝置。SSD的速度比具有傳統旋轉磁性媒體的典型硬碟驅動器要快得多,並且典型上會包括一個控制器,以管理資料儲存。此控制器管理SSD之操作,包括資料儲存與存取,以及此SSD和一個主機裝置之通訊。此控制器亦執行錯誤校正碼(ECC),來確保寫在SSD上之資料的完整性。ECC辨識並校正在SSD與主機間通訊的資料中之錯誤。然而,儲存媒體的某些失效(故障)機制超出ECC引擎之校正能力,導致無法修復的資料或資料漏失。例如,毀滅性晶粒失效。
於2006年3月31日提出申請並名為「改良對非依電性記憶體之寫入操作的可靠度之技術」的美國專利申請案第11/396,262號藉由在最後的程式操作成功之前保有一份寫入一個拭除區塊之資料的拷貝,來對付程式失效。此專利申請案對付程式故障議題,而非ECC失效議題或晶粒失效議題。因此,興起對付ECC失效及/或晶粒失效之需求。
發明概要
依據本發明之一實施例,係特地提出一種固態硬碟,其包含:一個非依電性記憶體;以及一個控制器,用以對儲存在該非依電性記憶體上的資料執行ECC,並於該ECC無法校正該資料時對該資料執行一個同位運算。
依據本發明之一實施例,亦特地提出一種系統,其包含:一個主機;以及一個固態硬碟,其包括:一個非依電性記憶體;以及一個控制器,用以對儲存在該非依電性記憶體上的主機資料執行ECC,並於該ECC無法校正該資料時對該資料執行一個同位運算。
依據本發明之一實施例,尚特地提出一種方法,其包含下列步驟:對儲存在一個固態硬碟的一個非依電性記憶體上之資料執行ECC;以及於該ECC無法校正該資料或於發生一個程式失效時,對該資料執行一個同位運算。
圖式簡單說明
本發明將從下文中所給予的詳細說明以及本發明一些實施例的隨附圖式,而得到更完全的瞭解,然而,此等圖示不應被拿來將本發明限制於所說明的特定實施例,而僅係用於解釋與闢明。
第1圖繪示依據本發明之一些實施例的一個系統。
第2圖繪示依據本發明之一些實施例的一個流序。
較佳實施例之詳細說明
本發明之一些實施例係有關固態硬碟中之改良型錯誤校正。
在一些實施例中,一個固態硬碟(SSD)包括一個非依電性記憶體以及一個控制器。此控制器在儲存於此非依電性記憶體上的資料上執行ECC(錯誤校正碼),並且在此ECC無法校正此資料時,於此資料上執行一種同位運算。
在一些實施例中,ECC係於儲存於固態硬碟之非依電性記憶體的資料上執行。若ECC無法校正資料,則在此資料上執行一種同位運算。
在一些實施例中,互斥或閘(XOR)錯誤校正碼(ECC)技術係用來保護一個固態硬碟(SSD)免於組件級失效、規劃失效(例如NAND規劃失效)及/或來自於主要ECC系統的不可校正錯誤。例如,在一些實施例中,可於SSD的非依電性記憶體環境中,實施類似於用於大量儲存體環境中的同位技術(例如獨立碟或RAID實作的冗餘陣列)。在一些實施例中,來自於主機的寫入資料流過一個XOR同位位元產生器,並且主機資料加上同位位元被寫入此非依電性記憶體。在SSD的主要ECC引擎無法校正一個主機分區的狀況下,或是在已有一個晶粒(例如一個NAND晶粒)失效的狀況下,為了獲得正確資料,依據一些實施例的一種第二階錯誤校正被實施。
在一些實施例中,除了不可校正的分區以外,同位位元與主機資料從媒體中被讀取,且利用一種XOR運算而修復遺失的資料。在先前寫入一個拭除區塊的資料已在相同拭除區塊中接下來的一個寫入/程式上發生程式失效時被中斷的一種程式失效情況中,諸如NAND程式失效等,此拭除區塊中先前寫入但目前被中斷的各個頁面係利用一種XOR運算而一次一頁地修復。相同類型的XOR運算可用於主要ECC失效或程式失效的情況中。
因為單一個SSD可含有大約80個NAND晶粒,所以由於容忍一個NAND晶粒失效與無資料漏失地續行操作之能力,依據某些實施例,一個SSD產品的失效前平均時間(MTTF)可增加接近六倍長的時間。這樣的MTTF改善係非常顯著的。此外,依據一些實施例,與利用主要ECC之實作態樣有關的資料可靠度可增加數個數量級。這是因為在讀取時,若ECC校正失效係由於比ECC可校正的更多個錯誤位元所引起的,則可將冗餘XOR資料用來重建原始資料。同樣的,當寫入時,若發生中斷相同拭除區塊上之其他資料的程式失效,則可依據一些實施例來執行被中斷的資料之重建。對於SSD以及對於NAND記憶體來說,這些是關鍵性的改善,特別是在NAND記憶體變成基於較佳微影術時。
第1圖依據一些實施例,繪示一個系統100。在一些實施例中,系統100包括一個主機102與一個SSD 104。在一些實施例中,並不將SSD 104限制於指稱SSD,而可包括任何類型的非依電性記憶體。SSD 104包括一個控制器106以及記憶體108。在一些實施例中,記憶體108為諸如NAND記憶體等的非依電性記憶體。在一些實施例中,控制器106包括一個ECC引擎(並未繪示於第1圖中),以執行ECC,來確保寫在SSD 104之記憶體108上之資料的完整性。ECC辨識並校正在SSD 101與主機102間通訊的資料中之錯誤。然而,有的時候,控制器106中之ECC引擎無法校正資料的一個主機分區,並且一個晶粒失效(例如包括在SSD 104之記憶體108中的一個NAND晶粒)可能會導致資料完整性的問題。因此,在一些實施例中,舉例來說,控制器106更包括例如一個XOR同位位元產生器,來在主要ECC引擎無法校正一個主機分區的狀況下,或是在記憶體108中的一個晶粒已失效的狀況下執行XOR技術。
第2圖依據一些實施例,繪示一個非依電性記憶體的圖形表示200。圖形表示200包括在垂直軸上的第00到127頁以及在水平軸上的第00至79槽區。第2圖中的各頁包括示範性的八個分區。這些槽區,例如在一些實施例中,以圖形繪示在一個SSD上的80個記憶體晶粒,且/或為一個記憶體通道及/或一個晶片致能的一個抽象概念。在一些實施例中,第00到79槽區各表示能夠和其他槽區並行作業的一個引擎。
如於第2圖中所繪示的,來自於主機之內容按照時間順序被寫入記憶體(例如一個NAND記憶體)。內容在第00頁與第00槽區填滿一個八個分區的頁面,然後下一個內容被寫在第00頁的下一個第01槽區,以此類推,如在圖200頂端,由穿過第00頁的這些箭頭所示出的。XOR同位位元在主機內容被接收時趕緊產生。當對一個頁面來說,主機內容已經填滿除了最後一個槽區的所有槽區時(即,已填滿例如第00到78槽區),一個同位頁面便被插入例如第79槽區的流序中,並佔據此頁面的最後一個槽區。也就是說,於此範例中,寫入第79槽區的這個同位頁面的第0分區便為此頁面的第00到78槽區的所有第0分區內容之XOR,而同樣的,寫入第79槽區的這個同位頁面的第1分區便為此頁面的第00到78槽區的所有第1分區內容之XOR,以此類推。在一些實施例中,這些同位分區為主機內容與元資料之XOR,而非ECC領域。在這種方式下,同位頁面的各分區皆包括特定於其內容的一個ECC。
第2圖示出寫至一部分頁面的內容與同位位元之範例。四個分區被寫入第01槽區的第二到五分區,然後四個分區被寫入第01槽區的第六和七分區,以及第02槽區的第一和二分區。然後四個分區被寫入第02槽區的第三到第六分區,且一個分區被寫入第02槽區的第七分區。然後八個分區被寫入第02槽區的第八分區,以及第03槽區的第一到第七分區。八個同位分區,例如利用XOR以一個分區接一個分區的基礎被計算,並在之後被寫入第79槽區的第八分區作為同位資料。
在具有如上文所述的一個同位槽區第79槽區的數個實施例中,在第00到78槽區的任何頁面之任何分區中有無法校正的錯誤之狀況中,SSD可從除了發生錯誤的頁面以外的所有頁面讀取分區號碼,並以第79槽區中所對應的同位分區來XOR那些分區的內容,以修復遺失內容。在一些實施例中,諸如博斯-喬赫里(BCH)校正的ECC係在各個分區上發生,包括同位,並使用一個無法修復狀態來觸發藉由XOR內容所作的第二階的ECC修復。
在上文中以一個同位槽區第79槽區所論述的這些實施例中,第00到78槽區之每個陣列的單一個同位頁面將免於硬件錯誤與毀滅性晶粒失效,在對抗取出多於一個槽區的組件失效之防護的數個實施例中,可依據一些實施例而獲得其他實作態樣。例如,為了對抗要取出兩個槽區的組件失效,可對每個槽區陣列(例如在第39與79槽區)插入兩個同位頁面。在一些實施例中,第39槽區的同位位元可用來遮蓋第00至38槽區,而第79槽區的同位位元可用來遮蓋第40至78槽區。可如斯調整槽區陣列,以使一個封包錯誤會從第00至39槽區的同位條取出一個槽區,並從第40至79槽區的同位條取出第二個槽區。例如,若係以兩個CE將第5個封包映射到第5與45槽區,那麼所說明的同位條會以2.5%的容量成本來防護組件失效。若並沒有要防護晶粒失效(及非封包失效),則可將容量成本減半。
當先前已在多個大量儲存裝置環境中使用XOR時,依據一些實施例,可獲得防護內容免於單一個儲存裝置(例如SSD)情形下的毀滅性組件失效的一種技術。在間接容許寫入必須相繼的一個SSD環境中,並沒有與隨機寫入操作相關連的懲罰。此外,SSD所特有的問題,諸如導致先前所寫資料之漏失的NAND規劃失效,係可依據一些實施例來解決。在一些實施例中,程式失效係以一種低成本方式來對付,並額外對付晶粒失效與ECC失效。
雖然已於本文中,以於特定方式中實施來說明一些實施例,但依據一些實施例,亦可不需這些特定實作態樣。例如,雖然第1圖繪示並說明一個控制器,以執行ECC與XOR運算,但請注意,依據一些實施例,係可使用分開的數個控制器(及/或專屬控制器)。
雖然已參考特定實作態樣來說明一些實施例,但依據一些實施例,其他實作態樣係有可能的。此外,繪示於圖示中及/或於本文中所說明的電路元件或其他特徵之配置及/或順序並不需要以所繪示與說明的特定方式來配置。依據一些實施例,許多其他配置係有可能的。
在示於一個圖式中的各個系統中,在一些情況中之數個元件可各擁有相同的參考號碼或不同的參考號碼,以暗示所呈現的這些元件可為不同及/或相似的。然而,一個元件可具有足夠的彈性,以具有不同的實作態樣,並與於本文中所示出或所說明的一些或所有系統共事。示於這些圖示中之多樣元件可為相同或不同的。將哪個指稱為第一元件而哪個指稱為第二元件係任意的。
在說明書與申請專利範圍中,可係使用「耦接」與「連接」等詞語及其衍生。應瞭解,這些詞語並非意為其彼此之同義詞。反而,在特定實施例中,可將「連接」用來表示二或多個元件彼此成直接實體上或電氣上接觸。「耦接」可指二或多個元件成直接實體上或電氣上接觸。然而,「耦接」可能亦指二或多個元件並非成彼此直接接觸,而係指彼此協同操作或相互作用。
於此,且通常,會將一個演算法考慮為導向所欲結果的動作或操作的自我相容序列。這些包括物理量的物理操縱。通常,雖然並非必須,這些量額係採取能夠被儲存、傳送、組合、比較及以其他方式操縱的電氣或磁性信號之形式。已間或為人證實,主要係由於普遍使用的原因,將這些信號以位元、值、元件、符號、特性、項、數字或諸如此類者來指稱係方便有利的。然而,應瞭解,所有的這些詞與與相似詞與係要與適當物理量相關連的,並僅係應用在這些量額上的便利標籤。
可在一個硬體、韌體與軟體,或是硬體、韌體與軟體的組合中實施一些實施例。亦可將一些實施例以儲存在機器可讀媒體上的指令來實施,其可由運算平台讀取並執行,以執行於本文中所說明的操作。一個機器可讀媒體可包括用來以可由機器(如電腦)讀取的形式來儲存或發送資訊的任何機構。舉例而言,機器可讀媒體可包括唯讀記憶體(ROM);隨機存取記憶體(RAM;磁碟儲存媒體;光學儲存媒體;快閃記憶體裝置;電氣式、光學、聲學或其他形式的傳播信號(例如載波、紅外線信號、數位信號、發送及/或接收信號的介面等等)及其他。
一個實施例為本發明之實作態樣或範例。於說明書中,對「實施例」、「一個實施例」、「一些實施例」或「其他實施例」之指稱,意指所說明的與此等實施例相關的一個特定的特徵、結構或特性係被包括在本發明的至少一些實施例中,但不一定要在所有實施例中。「實施例」、「一個實施例」或「一些實施例」的多次出現並不需要全係指稱相同實施例。
並非於本文中所說明與繪示的所有的組件、特徵、結構、特性等等都需要被包括在一個特定實施例或數個實施例中。舉例來說,若說明書陳述一個組件、特徵、結構或特性「可」、「可會」、「可係」或「可能」被包括,那麼此特定組件、特徵、結構或特性就並非一定要被包括在內。若說明書或申請專利範圍指涉「一」或「一個」元件,這並不代表只有一個這種元件。若說明書或申請專利範圍指涉「一個額外的」元件,這並不排除可有多於此額外元件的元件。
雖然本文可能已使用流程圖及/或狀態圖來說明數個實施例,但本發明並不受限於這些圖表或本文中之對應說明。例如,並不需要使流程以和本文中所例示與說明的完全相同的順序來經過所例示的各方塊或狀態。
本發明並不侷限於本文中所列出的特定細節。確實,得利於本文之披露的熟於此技者將會識出,可於本發明之範疇中做出源於前述說明與圖式之許多其他變異體。因而,本發明之範疇係由後文包括對其所作之任何修改的申請專利範圍來界定。
100‧‧‧系統
102‧‧‧主機
104‧‧‧SSD
106‧‧‧控制器
108‧‧‧記憶體
200‧‧‧圖形表示
第1圖繪示依據本發明之一些實施例的一個系統。
第2圖繪示依據本發明之一些實施例的一個流序。
100...系統
102...主機
104...SSD
106...控制器
108...記憶體

Claims (12)

  1. 一種固態硬碟,其包含:由多個記憶體晶粒組成的一個非依電性記憶體,其中,各個記憶體晶粒包括多個分區,並且其中,係有多個頁面由該等多個記憶體晶粒中之各者的該等多個分區的一個子集形成;以及一個控制器,用以進行下列步驟:將資料寫入至該非依電性記憶體,其中,該資料係按照經過該等多個記憶體晶粒的時間順序而被寫入到一個頁面中,並且係以一個分區接一個分區的方式被寫入至該記憶體晶粒,針對被寫入到該非依電性記憶體的該資料產生錯誤校正碼(ECC),對在該等多個記憶體晶粒之所對應分區中所含有的該資料進行同位運算,及在一個對應分區中將該同位資料寫入至該等多個記體晶粒中之至少一者中。
  2. 如申請專利範圍第1項之固態硬碟,其中,該同位運算包含XOR運算。
  3. 如申請專利範圍第1項之固態硬碟,其中,該控制器進一步可進行下列步驟:針對含有錯誤且無法利用ECC校正的資料,自同位資料產生出替代資料。
  4. 如申請專利範圍第1項之固態硬碟,其中,該等多個記 憶體晶粒中之一或多者係針對同位資訊而保留。
  5. 一種用於固態硬碟中之錯誤校正的系統,該系統包含:一個主機;以及一個固態硬碟,其包括:由多個記憶體晶粒組成的一個非依電性記憶體,其中,各個記憶體晶粒包括多個分區,並且其中,係有多個頁面由該等多個記憶體晶粒中之各者的該等多個分區的一個子集形成;以及一個控制器,用以進行下列步驟:將資料寫入至該非依電性記憶體,其中,該資料係按照經過該等多個記憶體晶粒的時間順序而被寫入到一個頁面中,並且係以一個分區接一個分區的方式被寫入至該記憶體晶粒,針對被寫入到該非依電性記憶體的該資料產生錯誤校正碼(ECC),對在該等多個記憶體晶粒之所對應分區中所含有的該資料進行同位運算,及在一個對應分區中將該同位資料寫入至該等多個記體晶粒中之至少一者中。
  6. 如申請專利範圍第5項之系統,其中,該同位運算包含XOR運算。
  7. 如申請專利範圍第5項之系統,其中,該控制器進一步可進行下列步驟:針對含有錯誤且無法利用ECC校正的資料,自同位資料產生出替代資料。
  8. 如申請專利範圍第5項之系統,其中,該等多個槽區中之一或多者係針對同位資訊而保留。
  9. 一種用於固態硬碟中之錯誤校正的方法,其包含下列步驟:將資料寫入至該固態硬碟的一個非依電性記憶體,其中,該非依電性記憶體包括多個記憶體晶粒,其中,各個記憶體晶粒包括多個分區,其中,係有多個頁面由該等多個記憶體晶粒中之各者的該等多個分區的一個子集形成,並且其中,該資料係按照經過該等多個記憶體晶粒的時間順序而被寫入到一個頁面中,並且係以一個分區接一個分區的方式被寫入至該記憶體晶粒;針對被寫入到該固態硬碟之該非依電性記憶體的該資料產生錯誤校正碼(ECC);對在該等多個記憶體晶粒之所對應分區中所含有的該資料進行同位運算;以及在一個對應分區中將同位資訊寫入至該等多個記體晶粒中之至少一者中。
  10. 如申請專利範圍第9項之方法,其中,該同位運算包含XOR運算。
  11. 如申請專利範圍第9項之方法,其進一步包含下列步驟:針對含有錯誤且無法利用ECC校正的資料,自同位資料產生出替代資料。
  12. 如申請專利範圍第9項之方法,其進一步包含下列步驟:針對同位資訊而保留該等多個槽區中之一或多者。
TW098144758A 2008-12-31 2009-12-24 固態硬碟中之改良型錯誤校正技術 TWI449051B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/319,208 US8438455B2 (en) 2008-12-31 2008-12-31 Error correction in a solid state disk

Publications (2)

Publication Number Publication Date
TW201030760A TW201030760A (en) 2010-08-16
TWI449051B true TWI449051B (zh) 2014-08-11

Family

ID=42286406

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098144758A TWI449051B (zh) 2008-12-31 2009-12-24 固態硬碟中之改良型錯誤校正技術

Country Status (8)

Country Link
US (1) US8438455B2 (zh)
EP (1) EP2382542B1 (zh)
JP (1) JP2012514274A (zh)
KR (1) KR101298827B1 (zh)
CN (1) CN102301340B (zh)
BR (1) BRPI0923759A2 (zh)
TW (1) TWI449051B (zh)
WO (1) WO2010078167A2 (zh)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) * 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
EP2297742B1 (en) 2008-05-16 2013-07-24 Fusion-io, Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8438455B2 (en) 2008-12-31 2013-05-07 Intel Corporation Error correction in a solid state disk
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
KR20100091379A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 반도체 디스크 장치 및 그것의 프로그램 페일 처리 방법
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8924601B2 (en) 2009-04-06 2014-12-30 Intel Corporation Apparatus and method for defect revectoring in a multi-channel mass storage device
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8327224B2 (en) * 2009-04-16 2012-12-04 Micron Technology, Inc. Data recovery in a solid state storage system
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US9069687B2 (en) * 2010-01-29 2015-06-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Memory read-channel with selective transmission of error correction data
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9105305B2 (en) * 2010-12-01 2015-08-11 Seagate Technology Llc Dynamic higher-level redundancy mode management with independent silicon elements
US8656101B2 (en) 2011-01-18 2014-02-18 Lsi Corporation Higher-level redundancy information computation
US8949686B1 (en) * 2011-02-13 2015-02-03 Apple Inc. Protection against word line failure in memory devices
US9058288B2 (en) * 2011-04-03 2015-06-16 Apple Inc. Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
CN104220991B (zh) 2012-03-16 2017-08-29 马维尔国际贸易有限公司 用于允许数据在nand闪存上的有效存储的架构
US9632866B2 (en) 2012-09-28 2017-04-25 Duke University Systems for and methods of extending lifetime of non-volatile memory
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9424946B2 (en) 2013-02-08 2016-08-23 Seagate Technology Llc Non-volatile buffering to enable sloppy writes and fast write verification
KR102050896B1 (ko) * 2013-02-19 2019-12-02 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법
US9069695B2 (en) * 2013-03-14 2015-06-30 Apple Inc. Correction of block errors for a system having non-volatile memory
JP2015018451A (ja) * 2013-07-11 2015-01-29 株式会社東芝 メモリコントローラ、記憶装置およびメモリ制御方法
US9262267B2 (en) 2013-12-02 2016-02-16 Intel Corporation Error correction in solid state drives (SSD)
US9015561B1 (en) * 2014-06-11 2015-04-21 Sandisk Technologies Inc. Adaptive redundancy in three dimensional memory
US9619326B2 (en) 2014-12-09 2017-04-11 Western Digital Technologies, Inc. Methods and systems for implementing redundancy in memory controllers
CN104461397A (zh) * 2014-12-19 2015-03-25 上海新储集成电路有限公司 一种固态硬盘及其读写方法
US10275310B2 (en) 2015-03-09 2019-04-30 Western Digital Technologies, Inc. Updating exclusive-or parity data
US9530442B1 (en) * 2015-09-23 2016-12-27 Western Digital Technologies, Inc. Enhanced low overhead data protection in data storage drives
US10198313B2 (en) 2016-03-11 2019-02-05 Western Digital Technologies, Inc. Redundancy of error correction encoded data in a storage system
US10606775B1 (en) 2018-12-28 2020-03-31 Micron Technology, Inc. Computing tile
US10949101B2 (en) 2019-02-25 2021-03-16 Micron Technology, Inc. Storage device operation orchestration
US10983795B2 (en) 2019-03-27 2021-04-20 Micron Technology, Inc. Extended memory operations
US11016765B2 (en) 2019-04-29 2021-05-25 Micron Technology, Inc. Bit string operations using a computing tile
US10990389B2 (en) 2019-04-29 2021-04-27 Micron Technology, Inc. Bit string operations using a computing tile
US11176065B2 (en) 2019-08-12 2021-11-16 Micron Technology, Inc. Extended memory interface
JP2021047527A (ja) 2019-09-17 2021-03-25 キオクシア株式会社 メモリシステム
US11531590B2 (en) * 2019-09-17 2022-12-20 Western Digital Technologies, Inc. Method and system for host-assisted data recovery assurance for data center storage device architectures
CN110956997B (zh) * 2019-11-08 2022-05-10 苏州浪潮智能科技有限公司 一种固态硬盘ber的测试方法、测试装置及测试设备
US11144203B2 (en) 2019-12-03 2021-10-12 Micron Technology, Inc. Selectively operable memory device
JP7443774B2 (ja) * 2020-01-14 2024-03-06 ソニーグループ株式会社 符号化装置、および符号化方法、復号装置、および復号方法、並びにプログラム
US10910048B1 (en) 2020-01-16 2021-02-02 Micron Technology, Inc. Extended memory communication
US11275581B2 (en) 2020-06-19 2022-03-15 Micron Technology, Inc. Expended memory component
US11625591B2 (en) 2020-06-26 2023-04-11 Micron Technology, Inc. Extended memory neuromorphic component
US11481317B2 (en) 2020-06-26 2022-10-25 Micron Technology, Inc. Extended memory architecture
US11455254B2 (en) * 2020-12-10 2022-09-27 Macronix International Co., Ltd. Flash memory system and flash memory device thereof
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US20040163028A1 (en) * 2003-02-18 2004-08-19 Olarig Sompong P. Technique for implementing chipkill in a memory system
US20040168101A1 (en) * 2002-04-09 2004-08-26 Atsushi Kubo Redundant memory system and memory controller used therefor
US20080028133A1 (en) * 2003-07-23 2008-01-31 Jeong-Mi Kwon Flash memory system and data writing method thereof
US7380179B2 (en) * 2003-04-14 2008-05-27 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20080155379A1 (en) * 2002-05-22 2008-06-26 International Business Machines Corporation Data Storage Device And Data Processing Method
US20080168319A1 (en) * 2007-01-08 2008-07-10 Samsung Electronics Co., Ltd. Flash memory Device Error Correction Code Controllers and Related Methods and Memory Systems
US20080250270A1 (en) * 2007-03-29 2008-10-09 Bennett Jon C R Memory management system and method
US20080288814A1 (en) * 2007-05-16 2008-11-20 Jun Kitahara Apparatus for detecting and recovering from data destruction caused in an unaccessed memory cell by read, and method therefor

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623506A (en) * 1994-01-28 1997-04-22 International Business Machines Corporation Method and structure for providing error correction code within a system having SIMMs
US6981196B2 (en) * 2001-07-25 2005-12-27 Hewlett-Packard Development Company, L.P. Data storage method for use in a magnetoresistive solid-state storage device
JP4034949B2 (ja) * 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7543218B2 (en) * 2004-01-31 2009-06-02 Samsung Electronics Co., Ltd. DVD decoding method and apparatus using selective po-correction
CN1649019A (zh) * 2004-01-31 2005-08-03 三星电子株式会社 使用选择性奇偶外部码校正的dvd解码方法和装置
US7536625B2 (en) * 2004-06-30 2009-05-19 Seagate Technology Llc Maintaining data integrity in a data storage system
JP2006048783A (ja) * 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US20070233937A1 (en) * 2006-03-31 2007-10-04 Coulson Richard L Reliability of write operations to a non-volatile memory
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
KR101254185B1 (ko) * 2006-08-03 2013-04-18 삼성전자주식회사 엑스트라 ecc가 적용된 정보 저장 매체에 데이터를기록하거나 상기 매체로부터 데이터를 재생하는 장치 및방법
US20080313364A1 (en) * 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device
KR100845529B1 (ko) * 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
KR100921748B1 (ko) * 2007-06-04 2009-10-15 삼성전자주식회사 Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법
US8037398B2 (en) * 2007-07-02 2011-10-11 Seagate Technology System for precoding parity bits to meet predetermined modulation constraints
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8261124B2 (en) * 2007-12-21 2012-09-04 Spansion Llc System and method for optimized error correction in flash memory arrays
EP2297742B1 (en) * 2008-05-16 2013-07-24 Fusion-io, Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8276028B2 (en) * 2008-05-23 2012-09-25 Intel Corporation Using error information from nearby locations to recover uncorrectable data in non-volatile memory
WO2010000020A1 (en) 2008-06-30 2010-01-07 Cathrx Ltd A catheter
KR101529880B1 (ko) * 2008-10-31 2015-06-19 삼성전자주식회사 에러 추정 방법 및 정정 방법
WO2010054410A2 (en) * 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
US8438455B2 (en) 2008-12-31 2013-05-07 Intel Corporation Error correction in a solid state disk
US8726126B2 (en) * 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US20040168101A1 (en) * 2002-04-09 2004-08-26 Atsushi Kubo Redundant memory system and memory controller used therefor
US20080155379A1 (en) * 2002-05-22 2008-06-26 International Business Machines Corporation Data Storage Device And Data Processing Method
US20040163028A1 (en) * 2003-02-18 2004-08-19 Olarig Sompong P. Technique for implementing chipkill in a memory system
US7380179B2 (en) * 2003-04-14 2008-05-27 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20080028133A1 (en) * 2003-07-23 2008-01-31 Jeong-Mi Kwon Flash memory system and data writing method thereof
US20080168319A1 (en) * 2007-01-08 2008-07-10 Samsung Electronics Co., Ltd. Flash memory Device Error Correction Code Controllers and Related Methods and Memory Systems
US20080250270A1 (en) * 2007-03-29 2008-10-09 Bennett Jon C R Memory management system and method
US20080288814A1 (en) * 2007-05-16 2008-11-20 Jun Kitahara Apparatus for detecting and recovering from data destruction caused in an unaccessed memory cell by read, and method therefor

Also Published As

Publication number Publication date
WO2010078167A3 (en) 2010-09-30
US20100169743A1 (en) 2010-07-01
EP2382542A2 (en) 2011-11-02
EP2382542B1 (en) 2018-11-14
KR101298827B1 (ko) 2013-08-23
JP2012514274A (ja) 2012-06-21
BRPI0923759A2 (pt) 2016-01-26
CN102301340B (zh) 2015-07-08
TW201030760A (en) 2010-08-16
US8438455B2 (en) 2013-05-07
KR20110089452A (ko) 2011-08-08
EP2382542A4 (en) 2012-08-22
CN102301340A (zh) 2011-12-28
WO2010078167A2 (en) 2010-07-08

Similar Documents

Publication Publication Date Title
TWI449051B (zh) 固態硬碟中之改良型錯誤校正技術
US10656993B2 (en) Apparatus, system, and method to increase data integrity in a redundant storage system
JP5220185B2 (ja) 故障したデータ記憶機構を検出し、置き換えるための装置、システム及び方法
US9292382B2 (en) Codewords that span pages of memory
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
US8495460B2 (en) Apparatus, system, and method for reconfiguring an array of storage elements
US9424128B2 (en) Method and apparatus for flexible RAID in SSD
US8156392B2 (en) Apparatus, system, and method for bad block remapping
JP5341896B2 (ja) 自己回復形不揮発性メモリ
US11531590B2 (en) Method and system for host-assisted data recovery assurance for data center storage device architectures
US9158675B2 (en) Architecture for storage of data on NAND flash memory
TWI528174B (zh) 基於可用記憶體空間選擇冗餘儲存組態
US20120131381A1 (en) Operating a Data Storage System
US20090113235A1 (en) Raid with redundant parity
KR102572357B1 (ko) Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20090129416A (ko) 메모리 관리 시스템 및 방법
US20150082124A1 (en) Spatially decoupled redundancy schemes for a solid state drive (ssd)
TW202026874A (zh) 用來進行關於容錯式磁碟陣列的動態復原管理之方法與裝置以及依據該方法來運作之儲存系統
US20100138603A1 (en) System and method for preventing data corruption after power failure
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
WO2013023564A9 (en) Method and apparatus for flexible raid in ssd