[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

TWI566254B - 用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體 - Google Patents

用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體 Download PDF

Info

Publication number
TWI566254B
TWI566254B TW102127494A TW102127494A TWI566254B TW I566254 B TWI566254 B TW I566254B TW 102127494 A TW102127494 A TW 102127494A TW 102127494 A TW102127494 A TW 102127494A TW I566254 B TWI566254 B TW I566254B
Authority
TW
Taiwan
Prior art keywords
flash memory
higher level
memory
information
data
Prior art date
Application number
TW102127494A
Other languages
English (en)
Other versions
TW201413726A (zh
Inventor
陳震剛
吳玉欣
Original Assignee
Lsi公司
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 Lsi公司 filed Critical Lsi公司
Publication of TW201413726A publication Critical patent/TW201413726A/zh
Application granted granted Critical
Publication of TWI566254B publication Critical patent/TWI566254B/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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體 [相關申請案之交叉參考]
隨附申請案資料表、請求函或申請函中(若有,則酌情)對本申請案進行優先權利主張。就本申請案之類型允許之範圍而言,本申請案針對所有目的以引用方式併有下列申請案,在進行本發明時所有下列申請案與本申請案被共同擁有:首次以發明者Zhengang CHEN之名義在2012年8月2日申請且標題為MIXED GRANULARITY HIGHER-LEVEL REDUNDANCY FOR NON-VOLATILE MEMORY之美國非臨時申請案(檔案號碼第L12-0674US1號及第13/565,752號);首次以發明者Jeremy Isaac Nathaniel Werner之名義在2011年11月30日申請且標題為DYNAMIC HIGHER-LEVEL REDUNDANCY MODE MANAGEMENT WITH INDEPENDENT SILICON ELEMENTS之PCT申請案(檔案號碼第SF-10-10PCT號及第PCT/US11/062726號);首次以發明者Jeremy Isaac Nathaniel Werner之名義在2012年1月18日申請且標題為HIGHER-LEVEL REDUNDANCY INFORMATION COMPUTATION之PCT申請案(檔案號碼第SF-10-14PCT號及第PCT/US12/21682號);首次以發明者Jeremy Isaac Nathaniel Werner之名義在2010年12月1日申請且標題為DYNAMIC HIGHER-LEVEL REDUNDANCY MODE MANAGEMENT WITH INDEPENDENT SILICON ELEMENTS之美國臨時申請案(檔案號碼第SF-10-10號及第61/418,846號);首次以發明者Jeremy Isaac Nathaniel Werner之名義在2011年1月18日申請且標題為HIGHER-LEVEL REDUNDANCY INFORMATION COMPUTATION之美國臨時申請案(檔案號碼第SF-10-14號及第61/433,918號);首次以發明者Hao Zhong之名義在2011年3月11日申請且標題為LDPC ERASURE DECODING FOR FLASH MEMORIES之PCT申請案(檔案號碼第SF-10-01PCTB號及第PCT/US11/28244號);及首次以發明者Yan Li之名義在2011年10月26日申請且標題為ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY BASED DATA STORAGE之PCT申請案(檔案號碼第SF-10-03PCT號及第PCT/US11/57914號)。
需要發展儲存技術以提供使用效能、效率及效用之改良。
除非明確地被識別為公開或眾所周知,否則本文中提及之技術及概念(包含內容脈絡、定義或比較目的)不應被解釋為認同此等技術及概念或認同此等技術及概念係先前公開已知或以其他方式為先前技術之部分。本文引用之包含專利、專利申請案及公開案之所有參考文獻(若有)皆係針對所有目的以引用方式全部併入本文,無論是否具體併入。
本發明可以數種方式實施,例如實施為程序、製品、設備、系統、組合物及諸如電腦可讀儲存媒體之電腦可讀媒體(例如,光學及/或磁性大容量儲存裝置(諸如,磁碟)中之媒體或具有諸如快閃記憶體 儲存器之非揮發性儲存器之積體電路)或電腦網路,其中經由光學或電子通信鏈路發送程式指令。【實施方式】提供本發明之一或多項實施例之闡述,該一或多項實施例能夠改良在上文識別領域中之使用成本、利潤、效能、效率及效用。【實施方式】包含<序言>段落,以促進理解【實施方式】之剩餘部分。<序言>包含根據本文描述之概念之系統、方法、製品及電腦可讀媒體之一或多者之例示性實施例。如結論中更詳細地論述,本發明涵蓋所發佈申請專利範圍之範疇內之所有可能修改及變動。
100‧‧‧固態磁碟(SSD)控制器
101‧‧‧固態磁碟
102‧‧‧主機
103‧‧‧(選用)交換機/網狀架構/中間控制器
104‧‧‧中間介面
105‧‧‧作業系統(OS)
106‧‧‧韌體(FW)
107‧‧‧驅動程式
107D‧‧‧虛線箭頭(主機軟體←→輸入/輸出裝置通信)
109‧‧‧應用程式
109D‧‧‧虛線箭頭(經由驅動程式進行應用程式←→輸入/輸出裝置通信)
109V‧‧‧虛線箭頭(經由虛擬函式進行應用程式←→輸入/輸出裝置通信)
110‧‧‧外部介面
111‧‧‧主機介面
112C‧‧‧(選用)卡式記憶體
113‧‧‧標籤追蹤
114‧‧‧多裝置管理軟體
115‧‧‧主機軟體
116‧‧‧輸入/輸出卡
117‧‧‧輸入/輸出卡&儲存裝置/資源
118‧‧‧伺服器
119‧‧‧區域網路/廣域網路
121‧‧‧資料處理
123‧‧‧引擎
131‧‧‧緩衝器
133‧‧‧直接記憶體存取(DMA)
135‧‧‧錯誤校正碼-X(ECC-X)
137‧‧‧記憶體
141‧‧‧映射
143‧‧‧表
151‧‧‧回收器
161‧‧‧錯誤校正碼
171‧‧‧中央處理單元(CPU)
172‧‧‧中央處理單元核心
173‧‧‧命令管理
175‧‧‧緩衝器管理
177‧‧‧轉譯管理
179‧‧‧連貫性管理
180‧‧‧記憶體介面
181‧‧‧裝置管理
182‧‧‧識別管理
190‧‧‧裝置介面
191‧‧‧裝置介面邏輯
192‧‧‧快閃記憶體裝置
193‧‧‧排程
194‧‧‧快閃記憶體晶粒
199‧‧‧非揮發性記憶體(NVM)
211‧‧‧邏輯區塊位址(LBA)
213‧‧‧邏輯頁編號(LPN)
215‧‧‧邏輯位移
221‧‧‧用於邏輯頁編號之映射資訊
223‧‧‧讀取單元位址
225‧‧‧讀取單元之長度
311‧‧‧讀取資料
313‧‧‧第一讀取單元
315‧‧‧最後一個讀取單元
401A‧‧‧讀取單元
401B‧‧‧讀取單元
410B‧‧‧標頭標記(HM)
411A‧‧‧標頭1
411B‧‧‧標頭1
412B‧‧‧標頭2
419A‧‧‧標頭N
419B‧‧‧標頭N
421A‧‧‧資料位元組
421B‧‧‧資料位元組
422B‧‧‧資料位元組
429B‧‧‧資料位元組
431A‧‧‧選用填補位元組
431B‧‧‧選用填補位元組
501‧‧‧標頭
511‧‧‧類型
513‧‧‧最後一個指示符
515‧‧‧旗標
517‧‧‧邏輯頁編號
519‧‧‧長度
521‧‧‧位移
600‧‧‧取出方向
610.0‧‧‧快閃記憶體晶粒
610.1‧‧‧快閃記憶體晶粒
610.61‧‧‧快閃記憶體晶粒
610.62‧‧‧快閃記憶體晶粒
610.63‧‧‧快閃記憶體晶粒
610.64‧‧‧快閃記憶體晶粒
610.65‧‧‧快閃記憶體晶粒
610.0B0‧‧‧區塊
610.0B1‧‧‧區塊
610.0B2‧‧‧區塊
610.0BB‧‧‧區塊
610.1B0‧‧‧區塊
610.1B1‧‧‧區塊
610.1B2‧‧‧區塊
610.1BB‧‧‧區塊
610.63B0‧‧‧區塊
610.63B1‧‧‧區塊
610.63B2‧‧‧區塊
610.63BB‧‧‧區塊
610.64B0‧‧‧區塊
610.64B1‧‧‧區塊
610.64B2‧‧‧區塊
610.64BB‧‧‧區塊
610.65B0‧‧‧區塊
610.65B1‧‧‧區塊
610.65B2‧‧‧區塊
610.65BB‧‧‧區塊
610.0P0‧‧‧頁
610.0P1‧‧‧頁
610.0P2‧‧‧頁
610.0PP‧‧‧頁
610.63P0‧‧‧頁
610.63P1‧‧‧頁
610.63P2‧‧‧頁
610.63PP‧‧‧頁
610.64P0‧‧‧頁
610.64P1‧‧‧頁
610.64P2‧‧‧頁
610.64PP‧‧‧頁
610.65P0‧‧‧頁
610.65P1‧‧‧頁
610.65P2‧‧‧頁
610.65PP‧‧‧頁
610.0R0‧‧‧讀取單元(RU)
610.0R1‧‧‧讀取單元(RU)
610.0RR‧‧‧讀取單元(RU)
610.1R0‧‧‧讀取單元(RU)
610.1R1‧‧‧讀取單元(RU)
610.1RR‧‧‧讀取單元(RU)
610.65R0‧‧‧讀取單元(RU)
610.65R1‧‧‧讀取單元(RU)
610.65RR‧‧‧讀取單元(RU)
660.0‧‧‧R區塊
660.1‧‧‧R區塊
660.2‧‧‧R區塊
660.R‧‧‧R區塊
720‧‧‧快閃記憶體裝置
730‧‧‧介面通道
740‧‧‧另外的快閃記憶體裝置
750‧‧‧另外的介面通道
801‧‧‧開始
802‧‧‧以第一較高位準冗餘模式操作
803‧‧‧失效?
804‧‧‧減小可用空間
805‧‧‧重新配置資料儲存
806‧‧‧恢復/儲存失效的使用者資料
807‧‧‧判定/儲存所修訂之較高位準冗餘資訊
808‧‧‧以第二較高位準冗餘模式操作
809‧‧‧動態轉變操作模式
899‧‧‧結束
911‧‧‧讀取單元
931‧‧‧讀取單元
951‧‧‧讀取單元
971‧‧‧讀取單元
911.E‧‧‧較低位準錯誤校正碼
931.E‧‧‧較低位準錯誤校正碼
951.E‧‧‧較低位準錯誤校正碼
971.E‧‧‧較低位準錯誤校正碼
911.U‧‧‧使用者資料
931.U‧‧‧使用者資料
951.U‧‧‧使用者資料
971.U‧‧‧使用者資料
1001‧‧‧結果
1002‧‧‧結果
1003‧‧‧結果
1010‧‧‧較高位準冗餘資訊之第一部分
1011‧‧‧較高位準冗餘資訊之第二部分
1019‧‧‧資料
1401A‧‧‧開始
1401B‧‧‧開始
1402A‧‧‧發佈讀取操作
1402B‧‧‧頁備妥?
1403A‧‧‧全部發佈?
1403B‧‧‧執行基於頁之計算
1404B‧‧‧頁完成?
1499A‧‧‧結束
1499B‧‧‧結束
1501A‧‧‧開始
1501B‧‧‧開始
1502A‧‧‧發佈寫入操作
1502B‧‧‧寫入正確?
1503A‧‧‧全部發佈?
1503B‧‧‧自冗餘撤銷寫入
1504B‧‧‧寫入完成?
1599A‧‧‧結束
1599B‧‧‧結束
1600‧‧‧R頁
1601‧‧‧R頁
1602‧‧‧R頁
1609‧‧‧R頁
1600.D‧‧‧資料資訊
1601.D‧‧‧資料資訊
1602.D‧‧‧資料資訊
1609.D‧‧‧資料資訊
1610.D‧‧‧資料資訊
1620.D‧‧‧資料資訊
1690.D‧‧‧資料資訊
1600.R‧‧‧冗餘資訊
1601.R‧‧‧冗餘資訊
1602.R‧‧‧冗餘資訊
1609.R‧‧‧冗餘資訊
1610.R‧‧‧冗餘資訊
1620.R‧‧‧冗餘資訊
1690.R‧‧‧冗餘資訊
1700‧‧‧以第一及第二粒度較高位準冗餘模式並行操作
1701‧‧‧開始
1702‧‧‧以第一粒度較高位準冗餘模式操作
1703‧‧‧根據第一粒度較高位準冗餘模式讀取/寫入
1704‧‧‧以第二粒度較高位準冗餘模式操作
1705‧‧‧根據第二粒度較高位準冗餘模式讀取/寫入
1706‧‧‧粒度?
1706.1‧‧‧第一粒度
1706.2‧‧‧第二粒度
1707‧‧‧讀取/寫入請求
圖1A圖解說明包含提供用於非揮發性記憶體(NVM)之混合粒度較高位準冗餘之一固態磁碟(SSD)控制器之一SSD之一實施例之選定細節。
圖1B圖解說明包含圖1A之SSD之一或多個例項之系統之各種實施例之選定細節。
圖2圖解說明映射一邏輯區塊位址(LBA)之一邏輯頁編號(LPN)之一實施例之選定細節。
圖3圖解說明在一讀取單元位址處存取一非揮發性記憶體(NVM)以產生組織為共同地具有以讀取單元配量衡量之一長度之各種讀取單元之讀取資料之一實施例之選定細節。
圖4A圖解說明一讀取單元之一實施例之選定細節。
圖4B圖解說明一讀取單元之另一實施例之選定細節。
圖5圖解說明具有多個欄位之一標頭之一實施例之選定細節。
圖6圖解說明以邏輯切片(slice)及/或區段管理之多個NVM裝置(例如,一或多個快閃記憶體晶粒及/或快閃記憶體晶片)之區塊、頁及讀取單元之一實施例之選定細節。
圖7圖解說明較高位準冗餘技術之各種實施例之選定細節。
圖8圖解說明使用一獨立矽元件冗餘陣列(RASIE)進行動態較高位準冗餘模式管理之一實施例之選定細節。
圖9圖解說明具有受儲存於讀取單元之一或多者中之較高位準冗餘資訊保護之調適性碼率之較低位準冗餘資訊之讀取單元之一實施例。
圖10圖解說明較高位準冗餘資訊結果及資料源對應之一實施例之選定細節。
圖11圖解說明較高位準資訊計算之一實施例之選定細節。
圖12圖解說明自一(較低位準)失效(在單個操作期間)恢復之一實施例之選定細節。
圖13A至圖13D圖解說明自兩個(較低位準)失效(在單個操作期間)恢復之一實施例之選定細節。
圖14A及圖14B圖解說明計算關於接收自NVM之頁之較高位準冗餘資訊之一實施例之選定細節。
圖15A至圖15C圖解說明撤銷關於提供至NVM之一寫入之較高位準冗餘資訊之計算之一實施例之選定細節。
圖16圖解說明混合粒度較高位準冗餘之一實施例之選定細節。
圖17圖解說明以複數個混合粒度較高位準冗餘模式進行並行操作之一實施例之選定細節。
下文連同圖解說明本發明之選定細節之隨附圖式詳細描述本發明之一或多項實施例。本發明係結合該等實施例加以描述。本文之實施例被視為僅僅例示性,本發明明確地並不限於或受限於本文之任何或所有實施例,且本發明涵蓋數種替代、修改及等效物。為避免單調地闡釋,多種字詞標記(包含但不限於:第一、最後、某些、各種、進一步、其他、特定、選定、一些及顯著的)可應用於不同組實施 例;如本文使用,此等標記明確地並不意謂傳達品質或偏好或偏見之任何形式,反而僅僅方便區分該等不同組。所揭示程序之一些操作之順序在本發明之範疇內係可變更的。無論多項實施例在何種情況下用以描述程序、方法及/或程式指令特徵之變動,亦預期根據一預定或經動態判定之準則執行分別對應於複數個該多項實施例之複數個操作模式之一者之靜態及/或動態選擇之其他實施例。下列描述中陳述數種特定細節以提供對本發明之一完全理解。針對實例目的提供該等細節且可根據不具備一些或所有該等細節之申請專利範圍實踐本發明。為簡單起見,並未詳細描述於本發明有關的技術領域中已知之技術材料以免不必要地混淆本發明。
序言
包含此<序言>以僅促進更快速地理解【實施方式】;本發明並不限於<序言>(包含明確的實例,若有)中陳述之概念,這係因為任何<序言>段落一定係整個主題之一簡單的觀點且並不意謂詳盡或限制性描述。例如,接下來的<序言>僅對某些實施例提供受限於空間及組織之概要資訊。遍及說明書之平衡論述許多其他實施例,包含最終將描寫申請專利範圍之實施例。
縮寫字
此處定義之各種速記縮寫(例如,縮寫字)之至少一些指代本文所使用的某些元件。
NAND快閃記憶體使用浮動閘極電晶體之一陣列以儲存資訊。在單位階記憶體胞(SLC)技術中,各位元記憶體胞(例如,浮動閘極電晶體)經啟用以儲存1位元的資訊。在多位階記憶體胞(MLC)技術中,各位元記憶體胞經啟用以儲存多個位元的資訊。隨著製造技術(例如,CMOS技術)尺度減小,各浮動閘極儲存更少的電子。進一步言之,隨著儲存容量及密度增加,各位元記憶體胞儲存更多的位元。因此,儲 存於位元記憶體胞中之值係由較小的電壓範圍加以表示。隨時間所儲存的電子之感測量及/或變化量之不確定性使不正確地儲存或讀取資料之概率增加。(例如,在較低位準下)使用一或多種冗餘及/或ECC技術實現自NAND快閃記憶體正確擷取否則被破壞的資料,從而在一些使用案例中克服一些前述提及的困難。
一些類型的SSD使用快閃記憶體以提供非揮發性儲存(例如,快閃記憶體在未施加電力之情況下留存資訊)。(例如,在較高位準下)使用一或多種ECC及/或冗餘技術實現自快閃記憶體正確擷取否則被破壞的資料及/或實現一SSD即使一或多個快閃記憶體元件間歇或永久失效仍可進行適當系統級操作。
例如,一SSD控制器實現使用獨立矽元件進行動態較高位準冗餘模式管理以提供隨著在部分由控制器實施之一SSD之操作期間一或多個NVM(例如,快閃記憶體)元件失效而平穩降級。讀取NVM之一部分。若發生不可使用較低位準冗餘及/或錯誤校正(諸如根據一或多種ECC技術)來校正之錯誤,則使用較高位準冗餘及/或錯誤校正(諸如根據一或多種RASIE技術及/或動態較高位準冗餘模式管理技術)嘗試校正該錯誤。若藉由較低位準及/或較高位準冗餘及/或錯誤校正及/或藉由其他技術偵測到NVM元件之一者之失效(諸如由NVM元件之一或多者報告之一失效狀態),則將較高位準冗餘及/或錯誤校正自以當前模式操作動態地轉變為以新的模式操作。該轉變包含以下一或多者:減小SSD上的可用可用空間、重新配置SSD之資料儲存、恢復/儲存失效的使用者資料(若可能)及判定/儲存所修訂之較高位準冗餘及/或錯誤校正資訊。接著操作以新的模式繼續進行。若使用現在以新的模式操作之較高位準冗餘及/或錯誤校正偵測到NVM元件之另一者之另一失效,則進行另一轉變而轉變至另一較高位準冗餘及/或錯誤校正模式。根據一較高位準冗餘及/或錯誤校正操作模式寫入NVM,包含根 據該較高位準冗餘及/或錯誤校正操作模式及寫入資料來判定/儲存較高位準冗餘及/或錯誤校正資訊。
若一記憶體區域發生大於臨限次數及/或速率的較低位準錯誤校正及/或一或多個失效,則視需要將該記憶體區域動態地轉變為以新的較高位準冗餘及/或錯誤校正操作模式操作,與當前較高位準冗餘及/或錯誤校正操作模式相比較,該新的較高位準冗餘及/或錯誤校正操作模式經啟用以自更多的錯誤恢復。例如,若不存在當前較高位準冗餘及/或錯誤校正操作模式(例如,未計算及/或未使用較高位準冗餘資訊以自較低位準冗餘之一失效恢復以校正一錯誤),則該新的較高位準冗餘及/或錯誤校正操作模式係實現自不可藉由較低位準冗餘校正之單個失效恢復之一操作模式。對於另一實例,若當前較高位準冗餘及/或錯誤校正操作模式係實現自不可藉由較低位準冗餘校正之單個失效恢復之一操作模式,則該新的較高位準冗餘及/或錯誤校正操作模式係實現自不可藉由較低位準冗餘校正之兩個失效恢復之一操作模式。
在一些實施例及/或使用案例中,根據較高位準冗餘資訊之計算來判定/儲存較高位準冗餘及/或錯誤校正資訊。較高位準冗餘資訊計算使一SSD控制器能夠提供較高位準冗餘能力,以在部分藉由控制器實施之一SSD之操作期間,在非揮發性(例如,快閃記憶體)記憶體元件出現失效的內容脈絡中維持可靠的操作。經由受該較高位準冗餘資訊保護之資料之一部分(例如,等量區(stripe))中之所有頁之一XOR,使用同位編碼來計算較高位準冗餘資訊之一第一部分。使用一加權求和技術來計算較高位準冗餘資訊之一第二部分,在計算加權求和時該部分中之各頁被指派唯一的非零「指數」作為一權重。對有限域(finite field)(例如,伽羅瓦域(Galois Field)或諸如整數按p取模,其中p是一質數)執行算術。
較高位準冗餘資訊之部分可按任何順序(諸如藉由對NVM元件執行之一或多個讀取操作之完成順序或諸如基於自NVM元件傳回資料及/或NVM元件使用資料之順序之一順序)進行計算,從而在各種實施例中實現緩衝減小或消除。在各種實施例中,該任何順序可計算性實現使用相對較少的暫時及/或中間緩衝及/或狀態來計算恢復資料值及/或撤銷一寫入。較高位準冗餘資訊之部分可使用(諸如藉由可用的專用硬體元件判定之)任何平行度計算,從而在各種實施例中實現延時處理減小及/或記憶體(例如,NVM)頻寬使用量減小。
在NVM之各個區域中發生的較低位準錯誤事件(例如,可校正及/或不可校正錯誤)及/或失效之次數及/或速率不同之一些情形中,用於NVM之混合粒度較高位準冗餘實現錯誤恢復更好及/或冗餘資訊額外耗用減小的改良之較高位準冗餘操作。在一些案例中,更好的錯誤恢復導致NVM及/或使用NVM實施之一SSD之可使用壽命增加。
對於一實例,一NVM之所有頁最初具有近似相等速率的較低位準錯誤事件。NVM之所有區塊最初係以一第一較高位準冗餘模式操作,該第一較高位準冗餘模式實現自發生在單個操作期間之單個較低位準不可校正錯誤恢復。接著改變NVM之可靠性,使得NVM之一些頁的可靠性變得較小(例如,開始具有極多個較低位準錯誤事件),並同時使NVM之所有其他頁保持可靠(例如,繼續具有相同或近似相同量的較低位準錯誤事件)。較低位準事件之前述提及的量係(例如)較低位準事件之次數、速率及/或嚴格程度。
在概念上,在改變可靠性之後,NVM具有兩個區域:一第一區域,其係具有僅僅可靠頁之區域;及一第二區域,其係具有至少一不可靠頁之區塊。回應於可靠性的改變,選擇性地將第二區域動態地轉變為部分以一第二較高位準冗餘模式操作,從而實現自發生在單個操作期間之兩個較低位準不可校正錯誤恢復。該轉變具有選擇性及部分 性,其中僅僅將可靠性較小的頁轉變為以第二較高位準冗餘模式操作,而第二區域之可靠的頁繼續以第一較高位準冗餘模式操作。同時,第一區域之所有區塊繼續以第一較高位準冗餘模式操作。
第二區域被描述為以頁粒度較高位準冗餘操作,這係因為較高位準冗餘模式隨頁變化(例如,可靠的頁係以第一較高位準冗餘模式操作且可靠性較小的頁係第二較高位準冗餘模式操作)。相比之下,第一區域被描述為以區塊粒度較高位準冗餘操作,這係因為對於該區域之所有區塊而言較高位準冗餘模式相同(例如,所有區塊係以第一較高位準冗餘模式操作)。若第一區域係一完整的R區塊(本文中其他處描述),則替代地第一區域可描述為以R區塊粒度較高位準冗餘操作,這係因為對於該區域之所有R區塊而言較高位準冗餘模式相同(例如,整個R區塊係以第一較高位準冗餘模式操作)。
實例結束時,與以第一較高位準冗餘模式操作可靠性較小的頁相比較,以第二較高位準冗餘模式操作該等可靠性較小的頁實現更好的錯誤恢復。替代地,與以第二較高位準冗餘模式操作具有不可靠的頁之任一者之所有區塊相比較,以第二較高位準冗餘模式僅僅操作可靠性較小的頁實現冗餘資訊額外耗用減小。
例示性實施例
在結束對【實施方式】的序言之後,接下來收集例示性實施例,包含明確地列舉為「例示性組合」(EC)之至少一些實施例,根據本文中描述之概念對多種實施例類型提供額外描述;此等實例並不意謂相互排斥、詳盡或限制性;且本發明並不限於此等例示性實施例,反而涵蓋所發佈申請專利範圍及其等等效物之範疇內之所有可能的修改及變動。
EC1)一種方法,其包括:以一第一較高位準冗餘模式操作,包括將M個資訊部分儲存在記 憶體之M個各自區域中,該M個各自區域之各者係相同第一大小;以一第二較高位準冗餘模式操作,包括將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC2)如EC1之方法,其中該M個實體裝置之至少一些係該N個實體裝置之至少一些。
EC3)如EC1之方法,其中該M個實體裝置係該N個實體裝置。
EC4)如EC1之方法,其中以該第一較高位準冗餘模式進行之操作及以該第二較高冗餘模式進行之操作同時作用中,使得至少對於一部分時間而言,該記憶體具有對應於該M個資訊部分之儲存之資訊且同時具有對應於該N個資訊部分之儲存之資訊。
EC5)如EC4之方法,其中以該第二較高冗餘模式進行之操作係回應於一製造缺陷、製程變動、不均勻磨損、可靠性或錯誤率明顯變化及失效之任何一或多者。
EC6)如EC1之方法,其進一步包括存取完全包括在一特定區域中之一或多個位置,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該存取包括判定該特定區域之大小。
EC7)如EC1之方法,其中該記憶體包括複數個快閃記憶體裝置。
EC8)如EC7之方法,其中該M個各自區域對應於該複數個快閃記憶體裝置之一或多者之M個各自區塊。
EC9)如EC8之方法,其中該一或多個快閃記憶體裝置係第一一或多個快閃記憶體裝置,且該N個各自區域對應於該複數個快閃記憶體裝置之第二一或多者之N個各自頁。
EC10)如EC9之方法,其中該第一一或多個快閃記憶體裝置之至少一者及該第二一或多個快閃記憶體裝置之至少一者係相同快閃記憶體裝置。
EC11)如EC10之方法,其中該相同快閃記憶體裝置包括具有一或多個快閃記憶體晶粒之一積體電路。
EC12)如EC10之方法,其中該相同快閃記憶體裝置包括單個快閃記憶體晶粒。
EC13)一種方法,其包括:以一第一較高位準冗餘模式操作,包括將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一類型;以一第二較高位準冗餘模式操作,包括將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二類型;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一類型不同於該第二類型;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各 自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC14)如EC13之方法,其中該記憶體包括複數個快閃記憶體裝置;該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,該第一類型係一區塊類型;及該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,該第二類型係一頁類型。
EC15)如EC14之方法,其進一步包括偵測該M個各自區塊之一者之一失效,且作為回應以該第二較高位準冗餘模式操作至少該失效區塊。
EC16)如EC1或EC13之方法,其中J不等於K。
EC17)如EC16之方法,其中M等於N。
EC18)如EC1或EC13之方法,其中M等於N。
EC19)如EC1或EC13之方法,其M不等於N。
EC20)如EC19之方法,其中J不等於K。
EC21)如EC1或EC13之方法,其中記憶體之該等區域之至少一些包括快閃記憶體,且儲存動作之一或多者係至少部分經由耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面而進行。
EC22)如EC1或EC13之方法,其中記憶體之該等區域之至少一些包括快閃記憶體,且該等儲存動作之一或多者係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC23)如EC1或EC13之方法,其中記憶體之該等區域之至少一些包括快閃記憶體,且該等儲存動作之一或多者係至少部分經由耦合至 該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面而進行,且該等儲存動作之至少一者係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC24)如EC23之方法,其中該快閃記憶體介面及該主機介面係共同地實施於單個積體電路(IC)中。
EC25)如EC23之方法,其中該快閃記憶體介面及該主機介面係包括在一固態磁碟(SSD)中。
EC26)如EC23之方法,其進一步包括在快閃記憶體中接收至少部分回應於該等儲存動作之該至少一者產生之一或多個寫入及/或程式化命令。
EC27)如EC23之方法,其進一步包括在該主機中產生該請求。
EC28)一種系統,其包括:用於根據各自第一及第二較高位準冗餘模式管理記憶體之構件;用於回應於該用於管理記憶體之構件儲存至該記憶體之構件;其中該用於管理記憶體之構件經啟用以引導該用於儲存之構件以將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一大小;其中該用於管理記憶體之構件經進一步啟用以引導該用於儲存之構件以將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重 疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC29)如EC28之系統,其中該M個實體裝置之至少一些係該N個實體裝置之至少一些。
EC30)如EC28之系統,其中該M個實體裝置係該N個實體裝置。
EC31)如EC28之系統,其中該用於管理記憶體之構件經啟用以根據該第一較高位準冗餘模式及該第二較高位準冗餘模式並行管理該記憶體,使得至少對於一部分時間而言,該記憶體具有對應於該M個資訊部分之儲存之資訊且同時具有對應於該N個資訊部分之儲存之資訊。
EC32)如EC31之系統,其中該用於管理記憶體之構件經啟用以回應於一製造缺陷、製程變動、不均勻磨損、可靠性或錯誤率明顯變化及失效之任何一或多者,將該記憶體之一部分自以該第一較高位準冗餘模式操作轉變為以該第二較高位準冗餘模式操作。
EC33)如EC28之系統,其進一步包括用於存取完全包括在一特定區域中之一或多個位置之構件,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該用於存取之構件經啟用以判定該特定區域之大小。
EC34)如EC28之系統,其中該記憶體包括複數個快閃記憶體裝置。
EC35)如EC34之系統,其中該M個各自區域對應於該複數個快閃記憶體裝置之一或多者之M個各自區塊。
EC36)如EC35之系統,其中該一或多個快閃記憶體裝置係第一一 或多個快閃記憶體裝置,且該N個各自區域對應於該複數個快閃記憶體裝置之第二一或多者之N個各自頁。
EC37)如EC36之系統,其中該第一一或多個快閃記憶體裝置之至少一者及該第二一或多個快閃記憶體裝置之至少一者係相同快閃記憶體裝置。
EC38)如EC37之系統,其中該相同快閃記憶體裝置包括具有一或多個快閃記憶體晶粒之一積體電路。
EC39)如EC37之系統,其中該相同快閃記憶體裝置包括單個快閃記憶體晶粒。
EC40)一種系統,其包括:用於根據各自第一及第二較高位準冗餘模式管理記憶體之構件;用於回應於該用於管理記憶體之構件儲存至該記憶體之構件;其中該用於管理記憶體之構件經啟用以引導該用於儲存之構件以將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一類型;其中該用於管理記憶體之構件經進一步啟用以引導該用於儲存之構件以將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二類型;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一類型不同於該第二類型;及 其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC41)如EC40之系統,其中該記憶體包括複數個快閃記憶體裝置;該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,該第一類型係一區塊類型;及該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,該第二類型係一頁類型。
EC42)如EC41之系統,其中該用於管理記憶體之構件經啟用以偵測該M個各自區塊之一者之一失效,且回應於該偵測而以該第二較高位準冗餘模式操作至少該失效區塊。
EC43)如EC28或EC40之系統,其中J不等於K。
EC44)如EC43之系統,其中M等於N。
EC45)如EC28或EC40之系統,其中M等於N。
EC46)如EC28或EC40之系統,其中M不等於N。
EC47)如EC46之系統,其中J不等於K。
EC48)如EC28或EC40之系統,其中記憶體之該等區域之至少一些包括快閃記憶體,且該用於儲存之構件包括耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面。
EC49)如EC28或EC40之系統,其中記憶體之該等區域之至少一些包括快閃記憶體,且該儲存之至少一些係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC50)如EC28或EC40之系統,其中記憶體之該等區域之至少一些包括快閃記憶體,該用於儲存之構件包括耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面,且該儲存之 至少一些係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC51)如EC50之系統,其中該快閃記憶體介面及該主機介面係共同地實施於單個積體電路(IC)中。
EC52)如EC50之系統,其中該快閃記憶體介面及該主機介面係包括在一固態磁碟(SSD)中。
EC53)如EC50之系統,其進一步包括快閃記憶體中用於接收至少部分回應於該儲存之該至少一些產生之一或多個寫入及/或程式化命令之構件。
EC54)如EC53之系統,其進一步包括該快閃記憶體之任何部分。
EC55)如EC50之系統,其進一步包括該主機中用於產生該請求之構件。
EC56)如EC55之系統,其進一步包括該主機之任何部分。
EC57)一種設備,其包括:較高位準冗餘控制電路,其經啟用以根據各自第一及第二較高位準冗餘模式來控制記憶體;儲存電路,其回應於該較高位準冗餘控制電路;其中該較高位準冗餘控制電路經啟用以引導該儲存電路將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一大小;其中該較高位準冗餘控制電路經進一步啟用以引導該儲存電路將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保 護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC58)如EC57之設備,其中該M個實體裝置之至少一些係該N個實體裝置之至少一些。
EC59)如EC57之設備,其中該M個實體裝置係該N個實體裝置。
EC60)如EC57之設備,其中該較高位準冗餘控制電路經進一步啟用以根據該第一較高位準冗餘模式及該第二較高位準冗餘模式並行管理該記憶體,使得至少對於一部分時間而言,該記憶體具有對應於該M個資訊部分之儲存之資訊且同時具有對應於該N個資訊部分之儲存之資訊。
EC61)如EC60之設備,其中該較高位準冗餘控制電路經進一步啟用以回應於一製造缺陷、製程變動、不均勻磨損、可靠性或錯誤率明顯變化及失效之任何一或多者,將該記憶體之一部分自以該第一較高位準冗餘模式操作轉變為以該第二較高位準冗餘模式操作。
EC62)如EC57之設備,其進一步包括經啟用以存取完全包括在一特定區域中之一或多個位置之存取電路,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該存取電路經進一步啟用以判定該特定區域之大小。
EC63)如EC57之設備,其中該記憶體包括複數個快閃記憶體裝置。
EC64)如EC63之設備,其中該M個各自區域對應於該複數個快閃 記憶體裝置之一或多者之M個各自區塊。
EC65)如EC64之設備,其中該一或多個快閃記憶體裝置係第一一或多個快閃記憶體裝置,且該N個各自區域對應於該複數個快閃記憶體裝置之第二一或多者之N個各自頁。
EC66)如EC65之設備,其中該第一一或多個快閃記憶體裝置之至少一者及該第二一或多個快閃記憶體裝置之至少一者係相同快閃記憶體裝置。
EC67)如EC66之設備,其中該相同快閃記憶體裝置包括具有一或多個快閃記憶體晶粒之一積體電路。
EC68)如EC66之設備,其中該相同快閃記憶體裝置包括單個快閃記憶體晶粒。
EC69)一種設備,其包括:較高位準冗餘控制電路,其經啟用以根據各自第一及第二較高位準冗餘模式來控制記憶體;儲存電路,其回應於該較高位準冗餘控制電路;其中該較高位準冗餘控制電路經啟用以引導該儲存電路將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一類型;其中該較高位準冗餘控制電路經進一步啟用以引導該儲存電路將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二類型;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重 疊區域;其中該第一類型不同於該第二類型;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC70)如EC69之設備,其中該記憶體包括複數個快閃記憶體裝置;該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,該第一類型係一區塊類型;及該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,該第二類型係一頁類型。
EC71)如EC70之設備,其中該較高位準冗餘控制電路經進一步啟用以偵測該M個各自區塊之一者之一失效,且回應於該偵測而以該第二較高位準冗餘模式操作至少該失效區塊。
EC72)如EC57或EC69之設備,其中J不等於K。
EC73)如EC72之設備,其中M等於N。
EC74)如EC57或EC69之設備,其中M等於N。
EC75)如EC57或EC69之設備,其中M不等於N。
EC76)如EC75之設備,其中J不等於K。
EC77)如EC57或EC69之設備,其中記憶體之該等區域之至少一些包括快閃記憶體,且該儲存電路包括耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面。
EC78)如EC57或EC69之設備,其中記憶體之該等區域之至少一些包括快閃記憶體,且該儲存之至少一些係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC79)如EC57或EC69之設備,其中記憶體之該等區域之至少一 些包括快閃記憶體,該儲存電路包括耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面,且該儲存之至少一些係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC80)如EC79之設備,其中該快閃記憶體介面及該主機介面係共同地實施於單個積體電路(IC)中。
EC81)如EC79之設備,其中該快閃記憶體介面及該主機介面係包括在一固態磁碟(SSD)中。
EC82)如EC79之設備,其中該快閃記憶體經啟用以接收至少部分回應於該儲存之該至少一些產生之一或多個寫入及/或程式化命令。
EC83)如EC82之設備,其進一步包括該快閃記憶體之任何部分。
EC84)如EC79之設備,其中該主機經啟用以產生該請求。
EC85)如EC84之設備,其進一步包括該主機之任何部分。
EC86)一種其中儲存當由一處理元件執行時使該處理元件執行及/或控制操作之一指令集之有形電腦可讀媒體,其包括:以一第一較高位準冗餘模式操作,包括將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一大小;以一第二較高位準冗餘模式操作,包括將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及 其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC87)如EC86之有形電腦可讀媒體,其中該M個實體裝置之至少一些係該N個實體裝置之至少一些。
EC88)如EC86之有形電腦可讀媒體,其中該M個實體裝置係該N個實體裝置。
EC89)如EC86之有形電腦可讀媒體,其中以該第一較高位準冗餘模式進行之操作及以該第二較高冗餘模式進行之操作同時作用中,使得至少對於一部分時間而言,該記憶體具有對應於該M個資訊部分之儲存之資訊且同時具有對應於該N個資訊部分之儲存之資訊。
EC90)如EC89之有形電腦可讀媒體,其中以該第二較高冗餘模式進行之操作係回應於一製造缺陷、製程變動、不均勻磨損、可靠性或錯誤率明顯變化及失效之任何一或多者。
EC91)如EC86之有形電腦可讀媒體,其中該等操作其進一步包括存取完全包括在一特定區域中之一或多個位置,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該存取包括判定該特定區域之大小。
EC92)如EC86之有形電腦可讀媒體,其中該記憶體包括複數個快閃記憶體裝置。
EC93)如EC92之有形電腦可讀媒體,其中該M個各自區域對應於該複數個快閃記憶體裝置之一或多者之M個各自區塊。
EC94)如EC93之有形電腦可讀媒體,其中該一或多個快閃記憶體裝置係第一一或多個快閃記憶體裝置,且該N個各自區域對應於該複數個快閃記憶體裝置之第二一或多者之N個各自頁。
EC95)如EC94之有形電腦可讀媒體,其中該第一一或多個快閃記 憶體裝置之至少一者及該第二一或多個快閃記憶體裝置之至少一者係相同快閃記憶體裝置。
EC96)如EC95之有形電腦可讀媒體,其中該相同快閃記憶體裝置包括具有一或多個快閃記憶體晶粒之一積體電路。
EC97)如EC95之有形電腦可讀媒體,其中相同快閃記憶體裝置包括單個快閃記憶體晶粒。
EC98)一種其中儲存當由一處理元件執行時使該處理元件執行及/或控制操作之一指令集之有形電腦可讀媒體,其包括:以一第一較高位準冗餘模式操作,包括將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係相同第一類型;以一第二較高位準冗餘模式操作,包括將N個資訊部分儲存在記憶體之N個各自區域中,該N個各自區域之各者係相同第二類型;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一類型不同於該第二類型;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中。
EC99)如EC98之有形電腦可讀媒體,其中該記憶體包括複數個快閃記憶體裝置;該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,該第一類型係一區塊類型;及 該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,該第二類型係一頁類型。
EC100)如EC99之有形電腦可讀媒體,其中該等操作進一步包括偵測該M個各自區塊之一者之一失效,且作為回應以該第二較高位準冗餘模式操作至少該失效區塊。
EC101)如EC86或EC98之有形電腦可讀媒體,其中J不等於K。
EC102)如EC101之有形電腦可讀媒體,其中M等於N。
EC103)如EC86或EC98之有形電腦可讀媒體,其中M等於N。
EC104)如EC86或EC98之有形電腦可讀媒體,其中M不等於N。
EC105)如EC104之有形電腦可讀媒體,其中J不等於K。
EC106)如EC86或EC98之有形電腦可讀媒體,其中記憶體之該等區域之至少一些包括快閃記憶體,且該儲存之至少一些係至少部分經由耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面而進行。
EC107)如EC86或EC98之有形電腦可讀媒體,其中記憶體之該等區域之至少一些包括快閃記憶體,且該儲存之至少一些係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC108)如EC86或EC98之有形電腦可讀媒體,其中記憶體之該等區域之至少一些包括快閃記憶體,該儲存之至少一些係至少部分經由耦合至該快閃記憶體且可與至少一快閃記憶體介面標準相容之一快閃記憶體介面而進行,且該儲存之至少一些係至少部分回應於經由可與至少一儲存器介面標準相容之一主機介面接收自一主機之一請求。
EC109)如EC108之有形電腦可讀媒體,其中該快閃記憶體介面及該主機介面係共同地實施於單個積體電路(IC)中。
EC110)如EC108之有形電腦可讀媒體,其中該快閃記憶體介面及 該主機介面係包括在一固態磁碟(SSD)中。
EC111)如EC108之有形電腦可讀媒體,其中該快閃記憶體經啟用以接收至少部分回應於該儲存之該至少一些產生之一或多個寫入及/或程式化命令。
EC112)如EC108之有形電腦可讀媒體,其中該主機經啟用以產生該請求。
EC113)如具有或指代一快閃記憶體介面標準之前述EC中任一項,其中該快閃記憶體介面標準可與以下一或多者相容:一開放式NAND快閃介面(ONFI),一雙態觸發模式介面,一雙倍資料速率(DDR)同步介面,一DDR2同步介面,一同步介面,及一非同步介面。
EC114)如具有或指代一主機之前述EC中任一項,其中該主機包括以下一或多者:一電腦,一工作站電腦,一伺服器電腦,一儲存伺服器,一儲存附接網路(SAN),一網路附接儲存器(NAS)裝置,一直接附接儲存器(DAS)裝置,一儲存器具,一個人電腦(PC),一膝上型電腦, 一筆記型電腦,一小筆電電腦,一平板裝置或電腦,一超輕薄筆記型電腦,一電子閱讀裝置(電子閱讀器),一個人數位助理(PDA),一導航系統,一(手持式)全球定位系統(GPS)裝置,一汽車控制系統,一汽車媒體控制系統或電腦,一印表機、影印機或傳真機或萬用裝置,一銷售點(POS)裝置,一收銀機,一媒體播放器,一電視機,一媒體記錄器,一數位視訊錄音機(DVR),一數位相機,一蜂巢式手機,一無接線電話手機,及一電子遊戲。
EC115)如具有或指代一儲存器介面標準之前述EC中任一項,其中該儲存器介面標準包括以下一或多者:一通用串列匯流排(USB)介面標準,一小型快閃記憶體(CF)介面標準,一多媒體卡(MMC)介面標準, 一嵌入式多媒體卡(eMMC)介面標準,一Thunderbolt介面標準,一UFS介面標準一安全數位(SD)介面標準,一Memory Stick介面標準,一xD-picture卡介面標準,一積體驅動電子器件(IDE)介面標準,一串列進階附接技術(SATA)介面標準,一外部SATA(eSATA)介面標準,一小型電腦系統介面(SCSI)介面標準,一串列附接小型電腦系統介面(SAS)介面標準,一光纖通道介面標準,一乙太網路介面標準,及一快速周邊組件互連(PCIe)介面標準。
EC116)如具有或指代至少一快閃記憶體裝置之前述EC中任一項,其中該至少一快閃記憶體裝置之至少一部分包括以下一或多者:NAND快閃技術儲存記憶體胞,及NOR快閃技術儲存記憶體胞。
EC117)如具有或指代至少一快閃記憶體裝置之前述EC中任一項,其中該至少一快閃記憶體裝置之至少一部分包括以下一或多者:單位階記憶體胞(SLC)快閃技術儲存記憶體胞,及多位階記憶體胞(MLC)快閃技術儲存記憶體胞。
EC118)如具有或指代至少一快閃記憶體裝置之前述EC中任一項,其中該至少一快閃記憶體裝置之至少一部分包括以下一或多者:基於多晶矽技術之電荷儲存記憶體胞,及基於氮化矽技術之電荷儲存記憶體胞。
EC119)如具有或指代至少一快閃記憶體裝置之前述EC中任一項,其中該至少一快閃記憶體裝置之至少一部分包括以下一或多者:基於二維技術之快閃記憶體技術,及基於三維技術之快閃記憶體技術。
系統
在一些實施例中,諸如一SSD之一I/O裝置包含一SSD控制器。SSD控制器用作SSD之主機介面與NVM之間之一橋接器,且執行經由SSD之一主機介面自一計算主機發送之一主機協定之命令。該等命令之至少一些引導SSD以分別使用自計算主機發送及發送至計算主機之資料寫入並讀取NVM。在進一步實施例中,SSD控制器能夠使用一映射以在主機協定之LBA與NVM中之實體儲存位址之間進行轉譯。在進一步實施例中,映射之至少一部分係用於I/O裝置之私有儲存(計算主機不可見)。例如,由I/O裝置使用LBA中計算主機不可存取之一部分以管理對日誌、統計或其他私有資料之存取。
在一些實施例中,在一些使用案例中存取NVM中配量大小變化之壓縮資料提供改良之儲存效率。例如,一SSD控制器自(例如,與一磁碟寫入命令有關)之一計算主機接收(未經壓縮之)資料、壓縮該資料並將壓縮資料儲存至快閃記憶體中。回應於來自(例如,與一磁碟讀取命令有關)之計算主機之一後續請求,SSD控制器自快閃記憶體讀取壓縮資料、解壓縮該壓縮資料並將解壓縮資料提供至計算主機。壓縮資料係根據配量大小變化而儲存在快閃記憶體中,配量大小歸因於(例如)關於各種資料之壓縮演算法、操作模式及壓縮有效性而變化。SSD控制器部分藉由諮詢一所包含映射表來判定標頭儲存於快閃記憶體何處以解壓縮該資料。SSD控制器剖析獲自快閃記憶體之標頭以判定適當的(壓縮)資料儲存於快閃記憶體中何處。SSD控制器解壓縮來自快閃記憶體之適當的資料以產生提供至計算主機之解壓縮資 料。在本申請案中,解壓縮(uncompress及其變化形)與解除壓縮(decompress及其變化形)同義。
在各種實施例中,一SSD控制器包含用於介接一計算主機之一主機介面、用於介接諸如快閃記憶體之NVM之一介面及用於控制介面並執行(及/或控制該執行之各種態樣)壓縮及解壓縮以及較低位準冗餘及/或錯誤校正、較高位準冗餘及/或錯誤校正及使用獨立矽元件進行之動態較高位準冗餘模式管理之電路。
根據各種實施例,一些主機介面可與以下一或多者相容:USB介面標準、CF介面標準、MMC介面標準、eMMC介面標準、Thunderbolt介面標準、UFS介面標準、SD介面標準、Memory Stick介面標準、xD-picture卡介面標準、IDE介面標準、SATA介面標準、SCSI介面標準、SAS介面標準及PCIe介面標準。根據各種實施例,計算主機係以下各者之所有或任何部分:電腦、工作站電腦、伺服器電腦、儲存伺服器、SAN、NAS裝置、DAS裝置、儲存器具、PC、膝上型電腦、筆記型電腦、小筆電電腦、平板裝置或電腦、超輕薄筆記型電腦、電子閱讀裝置(諸如電子閱讀器)、PDA、導航系統、(手持式)GPS裝置、汽車控制系統、汽車媒體控制系統或電腦、印表機、影印機或傳真機或萬用裝置、POS裝置、收銀機、媒體播放器、電視機、媒體記錄器、DVR、數位相機、蜂巢式手機、無接線電話手機及電子遊戲。在一些實施例中,一介接主機(諸如SAS/SATA橋接器)運行為一計算主機及/或一計算主機之一橋接器。
在各種實施例中,SSD控制器包含一或多個處理器。處理器執行韌體以控制及/或執行SSD控制器之操作。SSD控制器與計算主機通信以發送並接收命令及/或狀態以及資料。計算主機執行以下一或多者:作業系統、驅動程式及應用程式。藉由計算主機與SSD控制器進行的通信視需要及/或選擇性地經由驅動程式及/或應用程式而進行。 在一第一實例中,至SSD控制器之所有通信皆係經由驅動程式而進行,且應用程式將較高層級命令提供至驅動程式,該驅動程式將該等命令轉譯為用於SSD控制器之特定命令。在一第二實例中,驅動程式實施略過模式且使應用程式能夠經由驅動程式將特定命令發送至SSD控制器。在一第三實例中,PCIe SSD控制器支援一或多個虛擬函式(VF),使該應用程式(一旦經組態)能夠略過驅動程式而直接與SSD控制器通信。
根據各種實施例,一些SSD可與由磁性及/或光學非揮發性儲存器(諸如HDD、CD碟機及DVD碟機)使用之外觀尺寸、電介面及/或協定相容。在各種實施例中,SSD使用零個或更多個同位碼、零個或更多個RS碼、零個或更多個BCH碼、零個或更多個維特比(Viterbi)或其他格狀碼(trellis code)及零個或更多個LDPC碼之各種組合。
圖1A圖解說明包含提供用於非揮發性記憶體(NVM)之混合粒度較高位準冗餘之一固態磁碟(SSD)控制器之一SSD之一實施例之選定細節。SSD控制器係用於管理諸如經由NVM元件(例如,快閃記憶體)實施之非揮發性儲存器。SSD控制器100經由一或多個外部介面110通信地耦合至一主機(未圖解說明)。根據各種實施例,外部介面110係以下一或多者:一SATA介面;一SAS介面;一PCIe介面;一光纖通道介面;一乙太網路介面(諸如百億位元(Gigabit)乙太網路);任何前述介面之一非標準版本;一自訂介面;或用以互連儲存及/或通信及/或計算裝置之任何其他類型介面。例如,在一些實施例中,SSD控制器100包含一SATA介面及一PCIe介面。
SSD控制器100經由一或多個裝置介面190進一步通信地耦合至包含一或多個儲存裝置(諸如快閃記憶體裝置192之一或多個例項)之NVM 199。根據各種實施例,裝置介面190係以下一或多者:一非同步介面;一同步介面;一單資料速率(SDR)介面;一雙倍資料速率 (DDR)介面;一DRAM可相容DDR或DDR2同步介面;一ONFI可相容介面,諸如一ONFI 2.2或ONFI 3.0可相容介面;一雙態觸發模式可相容快閃介面;任何前述介面之一非標準版本;一自訂介面;或用以連接至儲存裝置之任何其他類型介面。
在一些實施例中,各快閃記憶體裝置192具有一或多個個別快閃記憶體晶粒194。根據快閃記憶體裝置192之一特定者之類型,該特定快閃記憶體裝置192中之複數個快閃記憶體晶粒194可視需要及/或選擇性地平行存取。快閃記憶體裝置192僅僅表示經啟用以通信地耦合至SSD控制器100之一種類型的儲存裝置。在各種實施例中,任何類型的儲存裝置係可用的,諸如一SLC NAND快閃記憶體、MLC NAND快閃記憶體、NOR快閃記憶體、使用多晶矽或基於氮化矽技術之電荷儲存記憶體胞之快閃記憶體、基於二維或三維技術之快閃記憶體、唯讀記憶體、靜態隨機存取記憶體、動態隨機存取記憶體、鐵磁記憶體、相變記憶體、賽道(Racetrack)記憶體、ReRAM或任何其他類型的記憶體裝置或儲存媒體。
根據各種實施例,將裝置介面190組織為:一或多個匯流排,其中每個匯流排具有快閃記憶體裝置192之一或多個例項;一或多個匯流排群組,其中每個匯流排具有快閃記憶體裝置192之一或多個例項,一群組中之匯流排大體上平行存取;或裝置介面190上之快閃記憶體裝置192之一或多個例項之任何其他組織。
繼續圖1A,SSD控制器100具有一或多個模組,諸如主機介面111、資料處理121、緩衝器131、映射141、回收器(recycler)151、ECC 161、裝置介面邏輯191及CPU 171。圖1A中圖解說明之特定模組及互連僅僅表示一實施例,且設想一些或所有該等模組以及未圖解說明之額外模組之許多配置及互連。在一第一實例中,在一些實施例中,存在兩個或更多個主機介面111以提供雙重埠連接(dual porting)。在一第二實例中,在一些實施例中,資料處理121及/或ECC 161與緩衝器131組合。在一第三實例中,在一些實施例中,主機介面111直接耦合至緩衝器131,且資料處理121視需要及/或選擇性地操作儲存於緩衝器131中之資料。在一第四實例中,在一些實施例中,裝置介面邏輯191直接耦合至緩衝器131,且ECC 161視需要及/或選擇性地操作儲存於緩衝器131中之資料。
主機介面111經由外部介面110發送並接收命令及/或資料,且在一些實施例中,經由標籤追蹤113追蹤個別命令之進展。例如,該等命令包含指定待讀取一位址(諸如一LBA)及資料量(諸如LBA配量(例如,區段)之數目)之一讀取命令;作為回應,該SSD提供讀取狀態及/或讀取資料。對於另一實例,該等命令包含指定待寫入一位址(諸如一LBA)及資料量(諸如LBA配量(例如,區段)之數目)之一寫入命令;作為回應,該SSD提供寫入狀態及/或請求寫入資料且視需要隨後提供寫入狀態。對於又一實例,該等命令包含指定不再需要被分配之一或多個位址(諸如一或多個LBA)之一解除分配命令(例如,一修整(trim)命令);作為回應,該SSD相應地修改映射且視需要提供解除分配狀態。在一些內容脈絡中,一ATA可相容之TRIM命令係一例示性解除分配命令。對於又另一實例,該等命令包含一超級電容器測試命令或一資料強化(data hardening)成功查詢;作為回應,該SSD提供適當狀態。在一些實施例中,主機介面111可與一SATA協定相容,且藉由使用NCQ命令,使主機介面111能夠具有多達32個擱置命令,其中各擱置命令具有表示為自0至31之一數字之一唯一標籤。在一些實施例中,啟用標籤追蹤113以使用於經由外部介面110接收之一命令之一外部標籤與用以在藉由SSD控制器100進行之處理期間追蹤該命令之一內部標籤相關聯。
根據各種實施例,資料處理121視需要及/或選擇性地處理在緩 衝器131與外部介面110之間發送之一些或所有資料;且資料處理121視需要及/或選擇性地處理儲存於緩衝器131中之資料。在一些實施例中,資料處理121使用一或多個引擎123以執行以下一或多者:格式化;重新格式化;轉碼;及任何其他資料處理及/或操縱任務。
緩衝器131儲存自裝置介面190發送至外部介面110之資料及自外部介面110發送至裝置介面190之資料。在一些實施例中,緩衝器131額外儲存由SSD控制器100使用以管理快閃記憶體裝置192之一或多個例項之系統資料,諸如,一些或所有映射表。在各種實施例中,緩衝器131具有以下一或多者:用於暫時儲存資料之記憶體137;用以控制移動資料至緩衝器131及/或自緩衝器131移動資料之DMA 133;及用以提供高位準錯誤校正及/或冗餘功能之ECC-X 135;及其他資料移動及/或操縱功能。一較高位準冗餘功能之一實例係一類似RAID能力(例如,RASIE),其中冗餘係處於一快閃記憶體裝置級(例如,快閃記憶體裝置192之多個快閃記憶體裝置)及/或一快閃記憶體晶粒(例如,快閃記憶體晶粒194)級而非一磁碟級。
根據各種實施例,ECC 161視需要及/或選擇性地處理在緩衝器131與裝置介面190之間發送之一些或所有資料;且ECC 161視需要及/或選擇性地處理儲存於緩衝器131中之資料。在一些實施例中,ECC 161係用以提供諸如根據一或多種ECC技術之較低位準錯誤校正及/或冗餘功能。在一些實施例,ECC 161實施以下一或多者:一CRC碼;一漢明碼;一RS碼;一BCH碼;一LDPC碼;一維特比碼;一格狀碼;一硬決策碼;一軟決策碼;一基於抹除之碼;任何錯誤偵測及/或校正碼;及前述碼之任何組合。在一些實施例中,ECC 161包含一或多個解碼器(諸如LDPC解碼器)。
裝置介面邏輯191經由裝置介面190控制快閃記憶體裝置192之例 項。使裝置介面邏輯191能夠根據快閃記憶體裝置192之一協定發送資料至快閃記憶體裝置192之例項/自快閃記憶體裝置192之例項發送資料。裝置介面邏輯191包含排程193以經由裝置介面190選擇性地循序控制快閃記憶體裝置192之例項。例如,在一些實施例中,使排程193能夠將對快閃記憶體裝置192之例項之操作排入佇列,且當快閃記憶體裝置192(或快閃記憶體晶粒194)之例項之個別例項可用時,選擇性地將該等操作發送至快閃記憶體裝置192(或快閃記憶體晶粒194)之例項之個別例項。
映射141使用表143將外部資料位址映射至NVM 199中的位置,以在外部介面110上使用之資料定址與裝置介面190上使用之資料定址之間轉換。例如,在一些實施例中,映射141經由藉由表143提供之映射而將外部介面110上使用之LBA轉換為以一或多個快閃記憶體晶粒194為目標之區塊及/或頁位址。對於自碟機製造或解除分配以來從未被寫入之LBA,映射指向當讀取LBA時所傳回之一預設值。例如,當處理一解除分配命令時,修改該映射使得對應於經解除分配之LBA之項指向該等預設值之一者。在各種實施例中,存在各種預設值,各預設值具有一對應的指標。該複數個預設值使能夠將一些經解除分配之LBA(諸如一第一範圍中)讀取為一預設值,並同時將其他經解除分配之LBA(諸如一第二範圍中)讀取為另一預設值。在各種實施例中,該等預設值係藉由快閃記憶體、硬體、韌體、命令及/或原始引數及/或參數、可程式化暫存器或其等之各種組合加以定義。
在一些實施例中,映射141使用表143以執行及/或查找介於外部介面110上使用之位址與裝置介面190上使用之資料定址之間的轉譯。根據各種實施例,表143係以下一或多者:一單階映射;二階映射;多階映射;一映射快取;一壓縮映射;自一位址空間至另一位址空間之任何類型的映射;及前述之任何組合。根據各種實施例,表143包 含以下一或多者:靜態隨機存取記憶體;動態隨機存取記憶體;NVM(諸如快閃記憶體);快取記憶體;晶片上記憶體;晶片外記憶體;及前述之任何組合。
在一些實施例中,回收器151執行記憶體回收(garbage collection)。例如,在一些實施例中,快閃記憶體裝置192之例項含有必須在可重新寫入區塊之前抹除之區塊。使回收器151能夠藉由諸如掃描由映射141維持之一映射而判定快閃記憶體裝置192之例項之哪些部分正在有效地使用中(例如,分配而非解除分配),且藉由抹除快閃記憶體裝置192之例項之未使用(例如,解除分配)部分而使其可用於寫入。在進一步實施例中,使該回收器151能夠移動儲存於快閃記憶體裝置192之例項內之資料以使快閃記憶體裝置192之例項之更大連續部分可用於寫入。
在一些實施例中,選擇性地及/或動態地組態、管理及/或使用快閃記憶體裝置192之例項,以具有用於儲存不同類型及/或性質之資料之一或多個帶(band)。可動態地改變該等帶之數目、配置、大小及類型。例如,將來自一計算主機之資料寫入至一熱(作用中)帶,同時將來自回收器151之資料寫入至一冷(較不作用)帶。在一些使用案例中,若該計算主機寫入一長循序串流,則熱帶之一大小增長,而若該計算主機進行隨機寫入或較少寫入,則冷帶之一大小增長。
CPU 171控制SSD控制器100之各個部分。CPU 171包含CPU核心172。根據各種實施例,CPU核心172係一或多個單核心或多核心處理器。在一些實施例中,CPU核心172中之個別處理器核心係多執行緒式。CPU核心172包含指令及/或資料快取區及/或記憶體。例如,指令記憶體含有使CPU核心172能夠執行控制SSD控制器100之程式(例如,軟體,有時候稱為韌體)之指令。在一些實施例中,由CPU核心172執行之一些或所有韌體儲存在快閃記憶體裝置192之例項上(如圖解說 明,例如,如圖1B中之NVM 199之韌體106)。
在各種實施例中,CPU 171進一步包含:命令管理173,其用以當經由外部介面110接收之命令正在進行時追蹤並控制該等命令;緩衝器管理175,其用以控制緩衝器131之分配及使用;轉譯管理177,其用以控制映射141;連貫性管理179,其用以控制資料定址之一致性且避免諸如外部資料存取與回收資料存取之間的衝突;裝置管理181,其用以控制裝置介面邏輯191;識別管理182,其用以控制識別資訊之修改及通信;及視需要其他管理單元。根據各種實施例,由CPU 171執行之管理功能中無一者、任一者或全部係藉由硬體、軟體(諸如在CPU核心172上或在經由外部介面110連接之一主機上執行之韌體)或其等之任何組合予以控制及/或管理。
在一些實施例中,使CPU 171能夠執行其他管理任務,諸如以下一或多者:蒐集及/或報告效能統計;實施SMART;控制供電定序(power sequencing)、控制及/或監控及/或調整功率消耗;回應於電源失效;控制及/或監控及/或調整時脈速率;及其他管理任務。
各種實施例包含一計算主機快閃記憶體控制器,其類似於SSD控制器100且可諸如經由主機介面111及/或外部介面110之調適而與各種計算主機之操作相容。各種計算主機包含以下之一或任何組合:電腦、工作站電腦、伺服器電腦、儲存伺服器、SAN、NAS裝置、DAS裝置、儲存器具、PC、膝上型電腦、筆記型電腦、小筆電電腦、平板裝置或電腦、超輕薄筆記型電腦、電子閱讀裝置(諸如電子閱讀器)、PDA、導航系統、(手持式)GPS裝置、汽車控制系統、汽車媒體控制系統或電腦、印表機、影印機或傳真機或萬用裝置、POS裝置、收銀機、媒體播放器、電視機、媒體記錄器、DVR、數位相機、蜂巢式手機、無接線電話手機及電子遊戲。
在各種實施例中,在單個IC、多晶粒IC之單晶粒、多晶粒IC之 複數個晶粒或複數個IC上實施SSD控制器(或計算主機快閃記憶體控制器)之所有或任何部分。例如,在與SSD控制器100之其他元件相同之晶粒上實施緩衝器131。對於另一實例,在不同於SSD控制器100之其他元件之晶粒在實施緩衝器131。
圖1B圖解說明包含圖1A之SSD之一或多個例項之系統之各種實施例之選定細節。SSD 101包含經由裝置介面190耦合至NVM 199之SSD控制器100。圖1B圖解說明各種類別的實施例:直接耦合至主機之單個SSD;分別經由各自外部介面直接耦合至主機之複數個SSD;及經由各種互連元件間接地耦合至主機之一或多個SSD。
作為直接耦合至主機之單個SSD之例示性實施例,SSD 101之例項經由外部介面110(例如,省略、略過或直通交換機/網狀架構/中間控制器103)直接耦合至主機102。作為各自經由各自外部介面直接耦合至主機之複數個SSD之例示性實施例,SSD 101之複數個例項之各者分別經由外部介面110之各自例項直接耦合至主機102(例如,省略、略過或直通交換機/網狀架構/中間控制器103)。作為經由各種互連元件間接地耦合至主機之一或多個SSD之例示性實施例,SSD 101之一或多個例項之各者係分別間接地耦合至主機102。各間接耦合係經由外部介面110之各自例項耦合至交換機/網狀架構/中間控制器103且經由中間介面104耦合至主機102。
包含交換機/網狀架構/中間控制器103之一些實施例亦包含經由記憶體介面180耦合且可藉由SSD存取之卡式記憶體112C。在各種實施例中,該等SSD之一或多者、該交換機/網狀架構/中間控制器103及/或該卡式記憶體係包含於一實體可識別模組、卡或可插入元件(例如,I/O卡116)上。在一些實施例中,SSD 101(或其變體)對應於耦合至運行為主機102之一啟動器之一SAS碟機或一SATA碟機。
使主機102能夠執行主機軟體115之各種元件,諸如OS 105、驅動 程式107、應用程式109及多裝置管理軟體114之各種組合。虛線箭頭107D表示主機軟體←→I/O裝置通信,例如:往返於SSD 101之例項之一或多者發送/接收資料,以及往返於OS 105(經由驅動程式107)、驅動程式107及應用程式109(經由驅動程式107或直接作為VF)之任一或多者發送/接收資料。
OS 105包含及/或經啟用以搭配用於用於介接SSD之驅動程式(概念上藉由驅動程式107圖解說明)操作。各種版本的Windows(例如,95、98、ME、NT、XP、2000、Server、Vista及7)、各種版本的Linux(例如,Red Hat、Debian及Ubuntu)及各種版本的MacOS(例如,8、9及X)係OS 105之實例。在各種實施例中,驅動程式係可在一標準介面及/或協定(諸如SATA、AHCI或快速NVM)下操作之標準及/或泛型(generic)驅動程式(有時候被稱為「現成套裝」(shrink-wrapped)或「預安裝」),或視需要經客製化及/或特定於廠商以能夠使用特定於SSD 101之命令。一些碟機及/或驅動程式具有直通模式以經由最佳化NAND存取(有時候被稱為ONA)或直接NAND存取(有時候被稱為DNA)技術使應用程式層級程式(諸如應用程式109)能夠將命令直接傳送至SSD 101,從而甚至使用一泛型驅動程式,亦使一客製化應用程式能夠使用特定於SSD 101之命令。ONA技術包含以下一或多者:使用非標準修改程式(modifier)(提示);使用廠商特定命令;傳達非標準統計,諸如根據壓縮率之實際NVM使用;及其他技術。DNA技術包含以下一或多者:使用提供對NVM之未映射讀取、寫入及/或抹除存取之非標準命令或廠商特定命令;使用提供更直接存取NVM之非標準命令或廠商特定命令,諸如藉由略過I/O裝置原本進行的資料格式化;及其他技術。驅動程式之實例係無ONA或DNA支援之驅動程式、啟用ONA之驅動程式、啟用DNA之驅動程式及啟用ONA/DNA之驅動程式。驅動程式之進步實例係:廠商提供、廠商開發及/或廠商增強型 驅動程式;及用戶端提供、用戶端開發及/或用戶端增強型驅動程式。
應用程式層級程式之實例係無ONA或DNA支援之應用程式、啟用ONA之應用程式、啟用DNA之應用程式及啟用ONA/DNA之應用程式。虛線箭頭109D表示應用程式←→I/O裝置通信(例如,對於應用程式,經由驅動程式而略過或經由VF而略過),例如啟用ONA之應用程式及啟用ONA之驅動程式與SSD通信,諸如該應用程式未使用OS作為媒介。虛線箭頭109V表示應用程式←→I/O裝置通信(例如,對於應用程式,經由VF而略過),例如啟用DNA之應用程式及啟用DNA之驅動程式(諸如)不需要應用程式使用OS或驅動程式作為媒介情況下與SSD通信,。
在一些實施例中,NVM 199之一或多個部分係用於韌體儲存器,例如韌體106。該韌體儲存器包含一或多個韌體映像(或其部分)。例如,韌體映像具有(例如)藉由SSD控制器100之CPU核心172執行之韌體之一或多個映像。對於另一實例,韌體映像具有(例如)在韌體執行期間由CPU核心參考之常數、參數值及NVM裝置資訊之一或多個映像。韌體之映像對應於(例如)目前的韌體映像及零或更多先前(相對於韌體更新)韌體映像。在各種實施例中,韌體提供泛型、標準、ONA及或DNA操作模式。在一些實施例中,經由視需要藉由一驅動程式傳送及/或提供之密鑰或各種軟體技術來啟用該等韌體操作模式之一或多者(例如,「解鎖」一或多個API)。
在缺少交換機/網狀架構/中間控制器之一些實施例中,SSD經由外部介面110直接耦合至主機。在各種實施例中,SSD控制器100經由其他控制器(諸如RAID控制器)之一或多個中間層級耦合至主機。在一些實施例中,SSD 101(或其變體)對應於SAS碟機或SATA碟機,且交換機/網狀架構/中間控制器103對應於繼而耦合至啟動器之擴展器,或 替代地交換機/網狀架構/中間控制器103對應於經由擴展器間接地耦合至啟動器之橋接器。在一些實施例中,交換機/網狀架構/中間控制器103包含一或多個PCIe交換機及/或網狀架構。
在各種實施例(諸如其中主機102作為計算主機(例如,電腦、工作站電腦、伺服器電腦、儲存伺服器、SAN、NAS裝置、DAS裝置、儲存器具、PC、膝上型電腦、筆記型電腦及/或小筆電電腦)之一些實施例)中,視需要使該計算主機能夠(例如,經由選用I/O及儲存裝置/資源117及選用LAN/WAN 119)與一或多個本端及/或遠端伺服器(例如,選用伺服器118)通信。例如,該通信實現對SSD 101元件之一或多者的本端及/或遠端存取、管理及/或使用。在一些實施例中,該通信係完全或部分經由乙太網路。在一些實施例中,該通信係完全或部分經由光纖通道。在各種實施例中,LAN/WAN 119表示一或多個區域網路及/或廣域網路,諸如伺服器群中之網路、耦合伺服器群之網路、都會區域網路及網際網路之任何一或多者。
在各種實施例中,SSD控制器及/或與一或多個NVM組合之計算主機快閃記憶體控制器被實施為非揮發性儲存器組件,諸如USB儲存器組件、CF儲存器組件、MMC儲存器組件、eMMC儲存器組件、Thunderbolt儲存器組件、UFS儲存器組件、SD儲存器組件、Memory Stick儲存器組件及xD-picture卡儲存器組件。
在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之所有或任何部分或其之功能實施於該控制器待耦合之主機(例如,圖1B之主機102)中。在各種實施例中,經由硬體(例如,邏輯電路)、軟體及/或韌體(例如,驅動程式軟體或SSD控制韌體)或其等之任何組合而實施SSD控制器(或計算主機快閃記憶體控制器)之所有或任何部分或其之功能。例如,經由一主機上之軟體且部分經由SSD控制器中之韌體與硬體之組合而部分實施與ECC單元(諸如類似於圖1A之ECC 161 及/或ECC-X 135)相關聯之功能性。對於另一實例,部分經由主機上之軟體且部分經由計算主機快閃記憶體控制器中之硬體而實施與回收器單元(諸如類似於圖1A之回收器151)相關聯之功能性。
映射操作
圖2圖解說明映射一LBA之一LPN部分之一實施例之選定細節。在一些實施例中,一讀取單元係可獨立讀取之一NVM之一最精細粒度,諸如NVM之一頁之一部分。在進一步實施例中,讀取單元對應於一(較低位準)錯誤校正碼之檢查位元(有時候被稱為冗餘)連同受檢查位元保護之所有資料。例如,圖1A之ECC 161經由檢查位元(諸如經由LDPC碼)實施錯誤校正,且除受LDPC編碼位元保護之資料位元以外,一讀取單元亦對應於實施LDPC碼之編碼位元。
在一些實施例中,映射141諸如經由(如圖1A中圖解說明之)表143將LBA 211之LPN 213部分映射至LPN之映射資訊221。一LPN之映射資訊(諸如LPN之映射資訊221)有時候被稱為一映射輸入項。映射141被視為使一LPN與一對應的映射輸入項相關聯。在各種實施例中,映射係經由一或多次相關聯查找、經由一或多次非相關聯查找及/或經由一或多種其他技術而進行。
在一些實施例中,SSD控制器100對潛在及/或有效使用中之各LPN維持一映射輸入項。
在一些實施例中,LPN之映射資訊221包含各自讀取單元位址223及讀取單元長度225。在一些實施例中,諸如藉由將一長度作為相距一跨度之一位移儲存在(例如)讀取單元長度225之所有或任何部分中來儲存編碼該長度及/或該跨度。在進一步實施例中,一第一LPN與一第一映射輸入項相關聯,一第二LPN(不同於第一LPN,但是參照大小與由第一LPN參照之一邏輯頁相同之一邏輯頁)與一第二映射輸入項相關聯,且第一映射輸入項之各自讀取單元長度不同於第二映射 輸入項之各自讀取單元長度。
在各種實施例中,在相同時間點,一第一LPN與一第一映射輸入項相關聯,一第二LPN(不同於第一LPN)與一第二映射輸入項相關聯,且第一映射輸入項之各自讀取單元位址與第二映射輸入項之各自讀取單元位址相同。在進一步實施例中,與第一LPN相關聯之資料及與第二LPN相關聯之資料皆儲存於NVM 199中之相同裝置之相同實體頁中。
根據各種實施例,讀取單元位址223與以下一或多者相關聯:NVM中之一開始位址;NVM中之一結束位址;開始位址與結束位址中任一者之一位移;及用於識別與LPN 213相關聯之NVM之一部分之任何其他技術。
圖3圖解說明在一讀取單元位址處存取一NVM以產生組織為各種讀取單元之讀取資料之一實施例之選定細節,各種讀取單元共同地具有以讀取單元配量衡量之一長度。根據各種實施例,第一讀取單元313係以下一或多者:讀取資料311中具有NVM之一位址空間中之一最低位址之讀取單元之一者;讀取單元之一固定者;讀取單元之一任意者;讀取單元之一可變者;及由任何其他技術選擇之讀取單元之一者。在各種實施例中,使SSD控制器100能夠以藉由讀取不超過由讀取單元長度225規定之數目個讀取單元來存取NVM 199並產生讀取資料311。
圖4A圖解說明作為讀取單元401A之一讀取單元(諸如圖3之讀取單元313或315)之一實施例之選定細節。在各種實施例及/或使用案例中,標頭1 411A至標頭N 419A係連續的,且由標頭之各者(諸如經由各自位移)識別之各自資料區域連續地緊隨標頭之最後一者。資料區域共同地形成資料位元組421A。資料區域係按匹配儲存標頭之位置順序之一位置順序而儲存。例如,考量一第一標頭,在一讀取單元開 始時,一第二標頭及一第三標頭連續地緊隨該第一標頭。(由第一標頭中之一第一位移識別之)一第一資料區域連續地緊隨第三標頭。(由第二標頭中之一第二位移識別之)一第二資料區域連續地緊隨第一資料區域。類似地,(由第三標頭識別之)一第三資料區域連續地緊隨第二資料區域。
圖4B圖解說明作為讀取單元401B之一讀取單元(諸如圖3之讀取單元313或315)之一實施例之選定細節。在各種實施例及/或使用方案中,標頭標記(HM)410B係一選用初始欄位(諸如1位元組欄位),其指示多個下列連續標頭(標頭1 411B、標頭2 412B、......、標頭N 419B)。資料區域(資料位元組421B、資料位元組422B、......資料位元組429B)係分別藉由標頭(標頭1 411B、標頭2 412B、......、標頭N 419B)加以識別且按與儲存該等標頭之位置順序相反之一位置順序而儲存。標頭開始於一讀取單元開始處,而對應的資料區域開始於一讀取單元結束處。在一些實施例中,一資料區域內之資料位元組(例如,資料位元組421B、資料位元組422B、......資料位元組429B)係按正向順序(匹配位置順序之位元組順序)加以配置,而在其他實施例中,資料位元組係按相反順序(與位置順序相反之位元組順序)加以配置。在一些實施例中,在其中按(例如,如圖4A中圖解說明之)相同位置順序儲存標頭及資料位元組之讀取單元中使用一標頭標記。
在一些實施例中,選用填補位元組431A(或431B)係根據與一特定LPN相關聯之資料粒度。例如,在一些實施例中,若位元組421A(或共同地,資料位元組421B、資料位元組422B、......資料位元組429B)在儲存與標頭1 411A至標頭N 419A(或標頭1 411B、標頭2 412B、......、標頭N 419B)之僅僅最後一者相關聯之資料之後具有小於固定量的剩餘空間(諸如8個位元組),則用於一LPN之與最後一個標頭相關聯之資料開始於一後續讀取單元中。在進一步實施例中,最後 一個標頭中之一特定位移值(例如,所有的1)指示用於該LPN之與最後一個標頭相關聯之資料開始於該後續讀取單元中。
圖5圖解說明具有多個欄位之一標頭(諸如圖4A之標頭1 411A至標頭N 419A或圖4B之標頭1 411B至標頭N 419B之任一者)之一實施例之選定細節。在一些實施例中,標頭長度固定(例如,各標頭的長度係相同多個位元組)。標頭501包含欄位類型511、最後一個指示符513、旗標515、LPN 517、長度519及位移521。類型欄位識別資料位元組之一類別。例如,類型欄位指示資料位元組之類別係主機資料(例如,邏輯頁資料)或系統資料(例如,映射資訊或檢查點資訊)之一者。最後一個欄位指示標頭係該等資料位元組前面的最後一個標頭。在具有一標頭標記之一些實施例中,視需要省略最後一個欄位。LPN欄位係與標頭相關聯之LPN。LPN欄位使能夠剖析標頭,以藉由(例如)搜尋標頭中具有匹配一特定LPN之一LPN欄位之一標頭來判定標頭中與該特定LPN相關聯之一特定標頭。長度欄位係資料位元組之長度(以位元組為單位)(例如,與標頭501相關聯之資料位元組421A中存在的資料位元組之數目)。在一些實施例中,根據一特定粒度(例如,8位元組粒度)取捨位移欄位中之一位移。
在各種實施例中,與一特定LPN相關聯之一些或所有資訊儲存於與該特定LPN相關聯之一映射輸入項、與該特定LPN相關聯之一標頭或其二者中。例如,在一些實施例中,一些或所有長度519儲存於一映射輸入項而非一標頭中。
圖6圖解說明以邏輯切片(slice)及/或區段管理之多個NVM裝置(例如,一或多個快閃記憶體晶粒及/或快閃記憶體晶片)之區塊、頁及讀取單元之一實施例之選定細節。管理功能包含讀取、回收、抹除、程式化/寫入及其他管理功能之任何一或多者。邏輯切片及/或區段有時候被稱為R區塊。圖6圖解說明具有66個快閃記憶體晶粒之一實施 例。明確地圖解說明快閃記憶體晶粒中的三個快閃記憶體晶粒(快閃記憶體晶粒610.65、610.1及610.0)且隱含地圖解說明快閃記憶體晶粒中的63個快閃記憶體晶粒(610.64、......、610.2)。
快閃記憶體晶粒之各者(諸如快閃記憶體晶粒610.65、......、610.1及610.0之任一者)提供組織為區塊(諸如快閃記憶體晶粒610.65之區塊610.65BB、......、610.65B1及610.65B0;快閃記憶體晶粒610.0之區塊610.0BB、......、610.0B1及610.0B0;以此類推)之儲存器。區塊繼而包含頁(諸如區塊610.65B0之頁610.65PP、......、610.65P1及610.65P0;區塊610.0B0之頁610.0PP、......、610.0P1及610.0P0;以此類推)。頁繼而包含讀取單元(諸如頁610.65P0之讀取單元610.65RR、......、610.65R1及610.65R0;頁610.0P0之讀取單元610.0RR、......、610.0R1及610.0R0;以此類推)。
在一些實施例中,各快閃記憶體晶粒包含整數個區塊(例如,N個區塊)且區塊係抹除之最小配量。在一些實施例中,各區塊包含整數個頁且頁係寫入之最小配量。根據各種實施例,讀取單元係讀取及錯誤校正之最小配量;各頁包含整數個讀取單元;兩頁或更多頁之一相關聯群組包含整數個讀取單元;及讀取單元視需要及/或選擇性地跨越頁邊界。
在各種實施例中,以R區塊為單位執行各種NVM管理功能(例如,讀取、回收、抹除及/或程式化/寫入)。一R區塊被例示為跨一快閃記憶體之所有晶粒之一邏輯切片或區段。例如,在具有R個快閃記憶體晶粒(各快閃記憶體晶粒具有N個區塊)之一快閃記憶體中,各R區塊係來自快閃記憶體晶粒之各者之第i個區塊合在一起,總計N個R區塊。對於另一實例,在具有R個快閃記憶體晶粒(各自具有N個區塊)之一快閃記憶體中,各R區塊係來自快閃記憶體晶粒之各者之第i個區塊及第(i+1)個區塊,總計N/2個R區塊。對於又另一實例,在具有複數 個雙平面裝置之一快閃記憶體中,各R區塊係來自該等雙平面裝置之各者之第i個偶數區塊及第(i+1)個奇數區塊。
在成對或以其他相關聯群組視為形成一R區塊之部分之區塊之各種實施例中,來自區塊之一相關聯群組之各區塊之各自頁亦被視為至少用於寫入之一單元,從而形成一較大多區塊頁。例如,繼續前述雙平面實例,偶數區塊之一特定者之一第一頁及奇數區塊之一相關聯者之一第一頁被視為用於寫入之一單元,且視需要及/或選擇性地被視為用於讀取之一單元。類似地,特定偶數區塊之一第二頁及相關聯奇數區塊之一第二頁被視為一單元。根據各種實施例,如本文中使用之NVM之一頁指代以下一或多者:NVM之單頁;NVM之多區塊頁;用於寫入且視需要及/或選擇性地被視為用於讀取之一或多個個別頁之NVM之多區塊頁;及NVM之頁之任何其他分群組或相關聯。
圖6圖解說明複數個闡釋性R區塊,其等中的三個R區塊係明確的(660.0、660.1及660.R)。各闡釋性R區塊係來自快閃記憶體晶粒之各者之第i個區塊合在一起。例如,R區塊660.0係來自快閃記憶體晶粒610.65之區塊610.65B0、來自快閃記憶體晶粒610.64之區塊0(未加以明確圖解說明)(以此類推)直至快閃記憶體晶粒610.1之區塊610.1B0及快閃記憶體晶粒610.0之區塊610.0B0。由於每個快閃記憶體晶粒存在N個區塊,因此總計存在N個R區塊(R區塊660.R、......、R區塊660.1及R區塊660.0)。
一R區塊之另一實例係來自快閃記憶體晶粒之各者之第i個區塊及第(i+1)個區塊合在一起(例如,來自快閃記憶體晶粒610.65之區塊610.65B0及610.65B1、來自快閃記憶體晶粒610.64之區塊0及1(未加以明確圖解說明)(以此類推)、直至來自快閃記憶體晶粒610.1之區塊610.1B0及610.1B1以及來自快閃記憶體晶粒610.0之區塊610.0B0及610.0B1)。若各快閃記憶體晶粒中存在N個區塊,則因此存在N/2個R 區塊。一R區塊之又另一實例係來自複數個雙平面裝置之各者之第(i+1)個偶數及奇數區塊。預期用於管理為R區塊之快閃記憶體晶粒區塊之其他配置,包含即使一些區塊無法操作,亦在虛擬區塊位址與實體區塊位址之間進行映射以確保R區塊具有來自各晶粒之一區塊。在各種實施例中,各快閃記憶體晶粒中之N個區塊之一些被用作備用,使得虛擬區塊位址與實體區塊位址之間的映射具有替換R區塊中之區塊之有缺陷區塊之備用(或未使用之)區塊。
在各種實施例中,根據諸如「以讀取單元為首」順序或「以頁為首」的順序之一順序,執行快閃記憶體晶粒中資訊之讀取及/或寫入。圖6中圖解說明之讀取單元之以讀取單元為首順序之一實例開始於讀取單元610.R0,後續接著610.1R0、......、610.65R0、610.0R1、610.1R1、......、610.65R1,以此類推,結束於610.65RR。圖6中圖解說明之讀取單元之以頁為首順序之一實例開始於讀取單元610.R0,後續接著610.0R1、......、610.0RR、610.1R0、610.1R1、610.1RR、......、610.65R0、610.65R1,以此類推,結束於610.65RR。
在各種實施例中,一R區塊內之資料之寫入及/或取出順序係跨所有裝置(例如,最低至最高編號裝置,如在概念上由取出方向600建議)之以頁為首(例如,最低至最高),接著下一個最高頁(跨所有裝置),以此類推,繼續至R區塊之最後一頁。具體言之關於R區塊660.0,一例示性順序開始於頁610.0P0(快閃記憶體晶粒610.0之第一區塊中之第一頁),後續接著610.1P0(快閃記憶體晶粒610.1之第一區塊中之第一頁),以此類推,繼續至610.65P0(快閃記憶體晶粒610.65之第一區塊及R區塊660.0之最後一個區塊中之第一頁)。該例示性順序以頁610.0P1(快閃記憶體晶粒610.0之第一區塊中之第二頁)繼續,後續接著610.1P1(快閃記憶體晶粒610.1之第一區塊中之第二頁),以 此類推,繼續至610.65P1(快閃記憶體晶粒610.65之第一區塊中之第二頁)。該實例以一相同順序繼續。該例示性順序完成於頁610.0PP(快閃記憶體晶粒610.0之第一區塊中之最後一頁),後續接著610.1PP(快閃記憶體晶粒610.1之第一區塊中之最後一頁),以此類推,結束於610.65PP(快閃記憶體晶粒610.65之第一區塊中之最後一頁及R區塊660.0之最後一個區塊中之最後一頁)。
在各種實施例中,快閃記憶體晶粒610.65、......610.1及610.0對應於圖1A之一或多個個別快閃記憶體晶粒194之各自快閃記憶體晶粒。在一些實施例中,快閃記憶體晶粒610.65、......610.1及610.0係小於所有NVM 199之一部分。例如,在各種實施例中,跨快閃記憶體晶粒之多個群組獨立地取出資料,且可獨立地存取快閃記憶體晶粒之群組之各者。
較高位準冗餘技術
圖7圖解說明較高位準冗餘技術之各種實施例之選定細節。快閃記憶體裝置720包含64個快閃記憶體晶粒(如圖6中明確及隱含圖解說明之快閃記憶體晶粒610.63、610.62、610.61、......610.0)且經由介面通道730進行通信。另外的快閃記憶體裝置740包含多達兩個快閃記憶體晶粒(如圖6中明確及隱含圖解說明之快閃記憶體晶粒610.65、610.64)且經由另外的介面通道750進行通信。快閃記憶體晶粒於一儲存子系統(諸如一SSD中之NVM)中提供用於較高位準冗餘資訊之儲存及資料儲存(例如,使用者資料及/或使用者可用空間)。(在冗餘資訊及資料儲存之內容脈絡中,「使用者資料」之實例包含惟儲存於快閃記憶體上以供隨後擷取之冗餘資訊以外的所有資料,諸如作業系統資料、應用程式資料、SSD管理資料等等)。較高位準冗餘使能夠(例如)自一或多個快閃記憶體晶粒之一或多個部分之間歇或永久失效(諸如(例如,經由較低位準ECC功能)對一讀取操作提供錯誤校正資料之失 效或適當地完成一寫入操作之失效)恢復。
例如,各快閃記憶體晶粒(或替代地各區塊或各區塊內之各頁)係在一獨立矽元件冗餘陣列(RASIE)之內容脈絡中操作。若在一特定快閃記憶體晶粒中偵測到失效(例如,歸因於該特定晶粒之一區塊之一部分之一ECC不可校正之讀取錯誤),則作為回應,使用儲存於快閃記憶體晶粒之其他者中之冗餘資訊以判定將由該特定晶粒提供之資訊。在一些實施例及/或使用案例中,儲存足夠多的冗餘資訊以實現自一快閃記憶體晶粒內之失效(單個操作期間)恢復。在一些實施例中,以實現自單個失效恢復之一模式操作包含分配及管理等效於一快閃記憶體晶粒之用於較高位準冗餘資訊之空間且被稱為「RASIE-1」。在一些實施例中,以實現自兩個失效恢復之一模式操作包含分配及管理等效於兩個快閃記憶體晶粒之用於較高位準冗餘資訊之空間且被稱為「RASIE-2」。在一些實施例中,以實現自三個失效恢復之一模式操作包含分配及管理等效於三個快閃記憶體晶粒之用於較高位準冗餘資訊之空間且被稱為「RASIE-3」。
在一些實施例及/或使用案例中,管理晶粒級失效為目標,且在晶粒之間執行傳播資訊。例如,較高位準冗餘資訊儲存於具體單獨地分配給該較高位準冗餘資訊之一或多個晶粒中。在一些實施例及/或使用案例中,管理區塊級失效為目標,且在一晶粒內之區塊之間執行傳播資訊。例如,較高位準冗餘資訊儲存於分配給該較高位準冗餘資訊之一或多個區塊中,該分配與該等區塊係哪個特定晶粒之部分無關。在一些實施例及/或使用案例中,管理特定實體級失效包含傳播資訊使得該等特定實體之任一者中不超過N個元件(例如,對於RASIE-1,為一個元件;且對於RASIE-2,為兩個元件)。該等實體之實例包含(封裝)裝置、晶粒、R區塊、區塊、(本文中其他處描述之)R頁、頁、與字線相關聯之記憶體胞及一或多個複數個前述實體。
較高位準冗餘資訊係根據寫入至快閃記憶體晶粒之(使用者)資料加以計算及寫入,且因此可用以在偵測到失效時提供資訊。在各種實施例中,在寫入與較高位準冗餘資訊之(使用者)資料之前、之後或並非按關於寫入與較高位準冗餘資訊之(使用者)資料之特定時間順序,將較高位準冗餘資訊寫入至快閃記憶體晶粒。
圖6圖解說明如下列表中總結之RASIE操作模式之各種實施例。
更具體言之,在RASIE-1模式中,將等效於一晶粒之空間分配給較高位準冗餘資訊。在RASIE模式1-0中,並未使用另外的快閃記憶體裝置740,這係因為較高位準冗餘資訊儲存於快閃記憶體裝置720之一晶粒(例如,快閃記憶體晶粒610.63)中,從而使得晶粒中的63個晶粒(快閃記憶體晶粒610.62、......、610.0)可用於資料儲存(例如,使用者資料及/或使用者可用空間)。在RASIE-1模式1-1中,使用另外的快閃記憶體裝置740之一晶粒(例如,快閃記憶體晶粒610.64),從而使得所有快閃記憶體裝置720(64個晶粒)可用於資料儲存。
在RASIE-2模式中,將等效於兩個晶粒之空間分配給較高位準冗餘資訊。在RASIE模式2-0中,並未使用另外的快閃記憶體裝置740, 這係因為較高位準冗餘資訊儲存於快閃記憶體裝置720之兩個晶粒(例如,快閃記憶體晶粒610.63及快閃記憶體晶粒610.62)中,從而使得晶粒中的62個晶粒(快閃記憶體晶粒610.61、......、610.0)可用於資料儲存。在RASIE-2模式2-1中,使用另外的快閃記憶體裝置740之一晶粒(例如,快閃記憶體晶粒610.64),這係因為較高位準冗餘資訊部分儲存於快閃記憶體裝置720之一晶粒(例如,快閃記憶體晶粒610.63)中,從而使得晶粒中的63個晶粒(快閃記憶體晶粒610.62、......、610.0)可用於資料儲存。在RASIE-2模式2-2中,使用另外的快閃記憶體裝置740之兩個晶粒(例如,快閃記憶體晶粒610.65及快閃記憶體晶粒610.64),從而使得所有快閃記憶體裝置720(64個晶粒)可用於資料儲存。
在一些實施例中,所有使用案例中未使用之晶粒未被填入。例如,在僅可以RASIE 2-0模式及RASIE 1-0模式(但是未以其他RASIE模式)操作之一系統中,另外的快閃記憶體裝置740未被填入。
在一些實施例中,較高位準冗餘資訊係全部儲存於「專用」晶粒(例如,RASIE-1模式1-0中之快閃記憶體晶粒610.63或RASIE-2模式2-2中之快閃記憶體晶粒610.65及快閃記憶體晶粒610.64)中。在其他實施例中,較高位準冗餘資訊儲存於任一晶粒中,所以(例如)在RASIE-1模式1-0中,快閃記憶體晶粒610.63係用於較高位準冗餘資訊,而快閃記憶體晶粒610.62及快閃記憶體晶粒610.61、......、610.0係用於資料儲存。在一些實施例及/或使用案例中,較高位準冗餘資訊係隨時間而儲存於不同晶粒(及/或其部分)中,所以(例如)在一第一時間週期中,一第一快閃記憶體晶粒保存較高位準冗餘資訊,而在一第二時間週期中,一第二快閃記憶體晶粒保存較高位準冗餘資訊。
在各種實施例中,取決於可使用的快閃記憶體晶粒之數目而存在複數個RASIE 1-0模式(及複數個RASIE 2-0模式)。例如,在一第一 RASIE 1-0模式中(如上文表中圖解說明),快閃記憶體晶粒610.63儲存較高位準冗餘資訊,且快閃記憶體晶粒610.62、......、610.0可用於資料儲存。在一第二RASIE 1-0模式中,快閃記憶體晶粒610.63不再可用,快閃記憶體晶粒610.62儲存較高位準冗餘資訊,且快閃記憶體晶粒610.61、......、610.0可用於資料儲存,從而使資料儲存之可用量減少一晶粒。其中先前可用於資料儲存之一晶粒(或其之任何部分)歸因於對較高位準冗餘資訊使用該晶粒(或該等部分)而不再可用於資料儲存之RASIE模式有時候被稱為容量減小的RASIE模式。
在一些實施例中,使用與受較高位準冗餘資訊保護之使用者資料相同及/或類似之一較低位準冗餘及/或錯誤校正編碼方案儲存該較高位準冗餘資訊。使用一較低位準冗餘及/或錯誤校正方案以保護該較高位準冗餘資訊實現以判定使用者資料中之一不可校正低位準錯誤之一相同及/或一類似方式判定該較高位準冗餘資訊中是否存在一不可校正錯誤。
在一些實施例中,對於不同的資料部分,較高位準冗餘資訊儲存於不同的晶粒中。例如,在其中依R區塊管理快閃記憶體晶粒之一些實施例中,對於不同的R區塊,較高位準冗餘資訊儲存於不同的快閃記憶體晶粒中。例如,用於包含快閃記憶體晶粒610.0之區塊0之一R區塊之較高位準冗餘資訊儲存於快閃記憶體晶粒610.0中,而用於包含快閃記憶體晶粒610.0之區塊1之一R區塊之較高位準冗餘資訊儲存於快閃記憶體晶粒610.1中,以此類推。在一些實施例(諸如其中依R區塊管理快閃記憶體晶粒之一些實施例)中,在已知及/或寫入較高位準冗餘資訊取決於的資料之後,寫入較高位準冗餘資訊。
在一些使用案例中,一NVM元件之一或多個部分(例如,一裝置之一區塊,諸如圖6之快閃記憶體晶粒610.0之區塊610.0BB)在操作期間係無法操作或變為無法操作。在一些實施例中,經由虛擬區塊位址 及實體區塊位址(例如,經由通過圖1A之映射141及/或表143執行之處理)標出無法操作部分。替代地,略過(而未明確標出)無法操作部分。在一些實施例中,基於R區塊,略過導致一些R區塊具有不同數目個區塊。例如,若區塊610.0B0有缺陷且不可使用,則R區塊660.0具有的區塊比R區塊660.1少一個。較高位準冗餘資訊被寫入在一(按每R區塊之)可變位置(即,各R區塊之最後一個區塊)。
在各種實施例中,圖7之一或多個元件對應於圖1A之一或多個元件。例如,快閃記憶體裝置720及另外的快閃記憶體裝置740共同地對應於NVM 199,且介面通道730及另外的介面通道750共同地對應於裝置介面190。對於另一實例,快閃記憶體晶粒610.65、......、610.0共同地對應於快閃記憶體晶粒194之例項。對於又另一實例,快閃記憶體裝置720及/或另外的快閃記憶體裝置740之快閃記憶體裝置之一或多者對應於快閃記憶體裝置192之例項之一或多者。在各種實施例中,圖1A之一或多個元件根據本文中描述之RASIE操作模式管理較高位準冗餘資訊及/或至少部分基於該較高位準冗餘資訊恢復使用者資料。例如,CPU 171之軟體執行能力之一部分係用以根據各種RASIE操作模式來管理較高位準冗餘資訊之計算。對於另一實例,資料處理121及/或ECC-X 135包含專用於及/或專門針對根據各種RASIE操作模式計算較高位準冗餘資訊及/或恢復使用者資料之硬體元件。對於又另一實例,ECC 161偵測一快閃記憶體晶粒之一部分之一ECC不可校正(較低位準)讀取錯誤,且ECC-X 135偵測一RASIE(較高位準)讀取錯誤及/或實現其校正。
在各種實施例中,介面通道730不同地具有1、4、8或16個通道,且另外的介面通道750不同地具有一個或兩個通道。在各種實施例中,快閃記憶體裝置720被實施為1、2、4、8或16個裝置,各裝置分別具有64、32、16、8及4個快閃記憶體晶粒。在各種實施例中,另 外的快閃記憶體裝置740被實施為具有一個或兩個晶粒之一裝置或各自具有一晶粒之兩個裝置。在一些實施例中,另外的快閃記憶體裝置740之快閃記憶體晶粒係實施於亦實施快閃記憶體裝置720之快閃記憶體晶粒之裝置中。例如,一快閃記憶體裝置實施66個快閃記憶體晶粒(快閃記憶體晶粒610.65、......610.0)。對於另一實例,兩個快閃記憶體裝置各自實施(例如)一第一快閃記憶體裝置(快閃記憶體晶粒610.65、......610.33)及一第二快閃記憶體裝置(快閃記憶體晶粒610.32、......610.0)中之33個快閃記憶體晶粒。預期快閃記憶體晶粒及快閃記憶體裝置之其他配置。在具有實施於亦實施快閃記憶體裝置720之快閃記憶體晶粒之裝置中之另外的快閃記憶體裝置740之一些實施例中,快閃記憶體晶粒經由共用介面通道或替代地經由專用於快閃記憶體晶粒之特定者(或集合)之介面通道進行通信。雖然快閃記憶體裝置720及另外的快閃記憶體裝置740係使用特定數目個快閃記憶體晶粒(分別為2個及64個)加以圖解說明,但是亦預期其他實施例,諸如具有2、4、8、16、32或128個快閃記憶體晶粒之快閃記憶體裝置720及/或具有0、1或4個快閃記憶體晶粒之另外的快閃記憶體裝置740。
圖8圖解說明使用RASIE進行動態較高位準冗餘模式管理(諸如在由藉由圖6及/或圖7圖解說明之各種實施例實現之RASIE模式之間動態地切換)之一實施例之選定細節。在一些實施例及/或使用案例中,提供平穩降級之一形式,其中一儲存子系統(例如,一SSD)自以第一較高位準冗餘模式操作動態地轉變至以一第二較高位準冗餘模式操作。該轉變係回應於失效(諸如整個快閃記憶體晶粒或其之一或多個部分或對整個快閃記憶體晶粒或其之一或多個部分之操作(諸如一讀取或寫入操作)之永久或間歇失效)之偵測。根據各種實施例,該轉變係以下一或多者:SSD全域化;對SSD之一或多個子集加以執行;及對SSD之一或多個R區塊、區塊及/或頁加以執行。例如,若儲存 RASIE-2資訊之NVM裝置之一者之一特定區塊在程式化期間失效,則含有該特定(失效)區塊之R區塊之後續操作轉變至一不同的較高位準冗餘模式(例如,一RASIE-1模式),而SSD中之其他R區塊未受影響且繼續以RASIE-2模式操作。
關於圖8,處理開始於根據一第一較高位準冗餘模式配置於快閃記憶體晶粒中之較高位準冗餘資訊及資料儲存(例如,使用者資料及/或使用者可用空間)(以第一較高位準冗餘模式操作802)。流程接著進行至判定是否偵測到失效(失效?803),諸如一較低位準不可校正讀取錯誤或一寫入/程式化失效。若未偵測到失效,則流程進行返回至繼續以第一較高位準冗餘模式操作。若偵測到失效,則流程進行至自第一較高位準冗餘模式操作切換至以一第二較高位準冗餘模式操作(動態轉變操作模式809)。
該切換開始於(視需要)減少可用於資料儲存之空間(減小可用空間804)以考量失效。若第二較高位準冗餘模式使用的較高位準冗餘資訊充分少於第一較高位準冗餘模式,則省略可用空間之減少。該切換繼續根據第二較高位準冗餘模式重新組織資料儲存(重新配置資料儲存805)。重新組織包含視需要在快閃記憶體晶粒之另一者發生失效時自快閃記憶體晶粒移動所有使用者資料及/或使用者可用空間(在一些實施例中,藉由操縱指標及/或其他資料結構元件完成使用者可用空間移動)。當發生失效時,該切換進一步繼續經由第一較高位準冗餘模式之較高位準冗餘資訊選擇性地還原(若可能)儲存於發快閃記憶體晶粒中之任何使用者資料,且根據第二較高位準冗餘模式將所還原的使用者資料寫入至快閃記憶體晶粒之另一者(恢復/儲存失效使用者資料806)。若失效係寫入/程式化失效,則省略該還原。該切換進一步繼續視需要根據第二較高位準冗餘模式計算較高位準冗餘資訊並將較高位準冗餘資訊寫入至快閃記憶體晶粒(判定/儲存所修訂的較高位準 冗餘資訊807)。若第二較高位準冗餘模式可使用先前歸因於以第一較高位準冗餘模式操作而處於適當位置中之較高位準冗餘資訊操作,則省略計算及寫入。接著操作以第二較高位準冗餘模式開始(以第二較高位準冗餘模式操作808)。
失效偵測(失效?803)係經由以下一或多者而進行:較低位準冗餘及/或錯誤校正(例如,根據一或多種ECC技術);較高位準冗餘及/或錯誤校正(例如,根據一或多種RASIE技術);及由快閃記憶體晶粒之一或多者或快閃記憶體晶粒之部分報告之失效狀態。例如,一特定快閃記憶體晶粒之一特定部分(例如,R區塊、區塊、R頁、頁、讀取單元或與一字線相關聯之記憶體胞)內對讀取進行大於臨限次數之較低位準錯誤校正視需要及/或有條件地導致該特定快閃記憶體晶粒(或該特定部分)被視為失效,且執行一較高位準冗餘模式切換,使得不再使用該失效快閃記憶體晶粒(或部分)。對於另一實例,若一較高位準錯誤校正失效,則快閃記憶體晶粒之一適當晶粒(或其部分)被視為失效,且執行一較高位準冗餘模式切換,使得不再使用失效快閃記憶體晶粒(或部分)。對於又另一實例,若一快閃記憶體晶粒傳回一程式化失效狀態(指示寫入操作不成功),則快閃記憶體晶粒之一適當晶粒之一適當區塊被視為失效,且視需要及/或有條件地執行一較高位準冗餘模式切換,使得不再使用失效快閃記憶體晶粒(或替代地其之一部分)。
在一些實施例中,藉由經由虛擬區塊位址及實體區塊位址(例如,經由通過圖1A之映射141及/或表143執行之處理)進行重映射來替換一失效區塊。映射來自備用區塊之一集池之一備用區塊來代替失效區塊。寫入在失效區塊中之任何內容被複製至替換區塊,且由於失效區塊中發生失效而在備用區塊中進行寫入。
在一些實施例中,略過(而非明確地重映射)一失效區塊,從而導 致「洞(hole)」,當接著抹除其中有洞之R區塊(準備重新寫入)時洞視需要及/或有條件地導致較高位準冗餘模式切換。若洞係在用於資料儲存之位置中,則不切換並保留洞。若洞係在用於較高位準冗餘資訊之位置中,則將較高位準冗餘資訊儲存在另一位置中且視需要切換較高位準冗餘模式。
在一些實施例及/或使用案例中,在發生失效時不可能恢復儲存於快閃記憶體晶粒中之使用者資料。例如,若失效係歸因於經由較高位準冗餘及/或錯誤校正偵測到的一些類型的失效及/或由快閃記憶體晶粒之一或多者或快閃記憶體晶粒之部分報告之一些類型的失效狀態而產生,則損失一些使用者資料。
在一些實施例中,在較高位準冗餘模式之間動態地轉變之內容脈絡中(例如,一SSD控制器)回應於複數個失效執行圖8之處理。具體言之,SSD控制器開始以一第一較高位準冗餘模式操作且回應於一第一失效而動態地轉變至一第二較高位準冗餘模式,且隨後回應於一第二失效自第二較高位準冗餘模式動態地轉變至一第三較高位準冗餘模式,以此類推。例如,一SSD控制器根據RASIE-2模式2-2操作各種快閃記憶體晶粒且回應於一第一失效根據RASIE-2模式2-1動態地轉變該操作。隨後,SSD控制器回應於一第二失效根據RASIE-2模式2-0動態地轉變該操作。進一步隨後,SSD控制器回應於一第三失效根據RASIE-1容量減小模式1-0動態地轉變該操作(容量減小模式1-0類似於RASIE-1模式1-0,但是一快閃記憶體晶粒用於較高位準冗餘資訊及62個快閃記憶體晶粒用於資料儲存)。
作為一特定實例,考量耦合至圖7之元件之一SSD控制器(諸如圖1A之SSD控制器100),其最初以RASIE-2模式2-2操作(例如,快閃記憶體晶粒610.65及快閃記憶體晶粒610.64中之較高位準冗餘資訊及快閃記憶體晶粒610.63、......610.0中之資料儲存),對應於以第一較高 位準冗餘模式操作。接著對快閃記憶體晶粒之一或多者執行讀取或替代地執行寫入。在快閃記憶體晶粒之一特定晶粒之一部分(例如,用於使用者資料及/或使用者可用空間之快閃記憶體晶粒610.62之頁)中,讀取導致不可校正(較低位準)ECC失效,或替代地寫入不成功。作為回應,SSD控制器自RASIE-2模式2-2操作動態地切換至RASIE-2模式2-1,從而不再使用快閃記憶體晶粒610.62之任一者。由於以RASIE-2模式2-1進行的操作提供63個晶粒用於資料儲存(相比之下,RASIE-2模式2-2提供64個晶粒用於資料儲存),可用於資料儲存之空間自64個晶粒減少至63個晶粒,且據此移動使用者資料及/或使用者可用空間。例如,來自快閃記憶體晶粒610.62之所有使用者資料根據使用者可用空間而移動至快閃記憶體晶粒610.63及快閃記憶體晶粒610.61、......、610.0之部分。基於快閃記憶體晶粒610.65及/或快閃記憶體晶粒610.64中之較高位準冗餘資訊恢復該頁中具有不可校正ECC失效之任何使用者資料。在快閃記憶體晶粒610.65及/或快閃記憶體晶粒610.64中計算並儲存基於快閃記憶體晶粒610.63及快閃記憶體晶粒610.61、......、610.0中之資料儲存且根據RASIE-2模式2-1之較高位準冗餘資訊。SSD控制器接著以RASIE-2模式2-1操作(快閃記憶體晶粒610.65及快閃記憶體晶粒610.64中之較高位準冗餘資訊及快閃記憶體晶粒610.63,及快閃記憶體晶粒610.61、......、610.0中之資料儲存)。
雖然前述描述使用配量為整個快閃記憶體晶粒之獨立矽元件進行之動態較高位準冗餘模式管理之若干實施例,但是其他實施例使用為一晶粒之部分(諸如一或多個讀取單元、與記憶體胞相關聯之字線、頁、R頁、區塊或R區塊)之獨立矽元件來實施動態較高位準冗餘模式管理。前述使用R區塊之單粒度來描述並行作用中的較高位準冗餘模式之若干實施例。例如,較高位準冗餘模式基於R區塊而變化(各R區塊係全部以單個各自較高位準冗餘模式操作)。然而,其他實施例 使用複數個(混合)粒度(諸如R區塊粒度組合頁粒度)來實施並行作用中的較高位準冗餘模式。例如,較高位準冗餘模式在一區域中基於R區塊而變化且在另一區域中基於頁而變化(各頁係全部以單個各自較高位準冗餘模式操作)。
在各種實施例中,完全或部分藉由圖1A之一或多個元件(或其等部分)執行圖8之一或多個元件之處理或與該一或多個元件有關的處理。例如,CPU 171之軟體執行能力之一部分係用以(諸如)藉由引導減少可用於資料儲存之空間或引導重新組織資料儲存來管理較高位準冗餘模式之間的動態轉變。對於另一實例,資料處理121及/或ECC-X 135包含專用於及/或專門針對根據一「目標」冗餘模式計算較高位準冗餘資訊之硬體元件。對於又另一實例,ECC 161實施較低位準(例如,ECC)錯誤校正及不可校正錯誤之偵測,而ECC-X 135實施較高位準(例如,RASIE)錯誤校正及不可校正錯誤及/或記憶體元件失效之偵測。對於另一實例,藉由ECC-X 135之一或多個部分執行與(較高位準)冗餘模式之間之動態轉變有關的功能性之所有或任何部分。
較高位準冗餘及調適性較低位準碼率
在一些實施例及/或使用案例中,較低位準冗餘及/或錯誤校正使用一調適性碼率(例如,使用一可變碼率之一調適性ECC技術)。例如,使用一第一碼率管理一第一讀取單元,其提供的可使用資料位元相對多於使用一第二碼率管理之一第二讀取單元。在具有使用一可變碼率之較低位準冗餘及/或錯誤校正之一些實施例及/或使用案例中,較高位準冗餘資訊儲存於獨立矽元件之部分(諸如快閃記憶體晶粒之部分)中,該等部分係使用較低位準冗餘及/或錯誤校正加以管理,相對於受較高位準冗餘資訊保護之資料儲存,較低位準冗餘及/或錯誤校正提供相對較多的可使用資料位元或最多的可使用資料位元。在各種實施例及/或使用案例中,儲存較高位準冗餘資訊之部分基於每個R 區塊、每個晶粒、動態地隨時間或其等之任何組合而變化。在各種實施例中,基於相對於較低位準錯誤校正碼率具有最多的可使用資料,針對較高位準冗餘資料之儲存選擇一或多個晶粒、R區塊、區塊及/或頁。
例如,將較高位準冗餘資訊以每R區塊為基礎儲存於不同位置(諸如區塊位置)處,該等位置(諸如區塊)係具有基於較低位準錯誤校正碼率之最多可使用的資料之位置。在一任意實例中,考量圖7之內容脈絡中之一RASIE-2操作模式案例,其中66個快閃記憶體晶粒之集合被視為多達各自為一區塊高度之M個R區塊之一邏輯「堆疊」,其中M係按每快閃記憶體晶粒的區塊數目。(在最簡單直接概念的情況下,該堆疊中之各R區塊係由來自各晶粒之相同數目個實體區塊組成,但是為容納失效區塊,在至少一些實施例中提升此約束。在又其他實施例中,維持該約束,但是容納對應於失效區塊之「洞」)。因此,各R區塊具有多達66個區塊,其等對應於來自快閃記憶體晶粒610.0至快閃記憶體晶粒610.65之各者之一區塊。(在圖7中,雖然僅明確地列舉範圍610.0至610.65中之一些快閃記憶體晶粒,但是應瞭解藉由使用省略符號,隱含地圖解說明此範圍中之所有快閃記憶體晶粒)。較高位準冗餘資訊被寫入至各R區塊中具有基於較低位準錯誤校正碼率之最多可使用的資料之任何區塊中。例如在一第一R區塊中,若對應於快閃記憶體晶粒610.15及610.49之區塊正好具有基於較低位準錯誤校正碼率之最多可使用的資料,則將較高位準冗餘資訊寫入至該等區塊(對應於快閃記憶體晶粒610.15及610.49)中。而在一第二R區塊中,若對應於快閃記憶體晶粒610.9及610.35之區塊正好具有基於較低位準錯誤校正碼率之最多可使用的資料,則將較高位準冗餘資訊寫入至該等區塊(對應於快閃記憶體晶粒610.9及610.35)中。在一些實施例中,在已知一R區塊中之所有其他資料之後寫入較高位準冗餘資 料。
圖9圖解說明具有受儲存於讀取單元之一或多者中之較高位準冗餘資訊保護之調適性(例如,隨時間及/或位置而不同及/或變化)碼率之較低位準冗餘資訊之讀取單元(911、931、......、951、971)之一實施例。讀取單元之各者具有經啟用及/或經分配以含有使用者資料之一部分(911.U、931.U、......、951.U、971.U)及經啟用及/或經分配以含有較低位準冗餘資訊(諸如如較低位準ECC之一ECC碼之檢查位元)之剩餘部分(911.E、931.E、......、951.E、971.E)。
在圖中,垂直尺寸係相對地按比例繪製且指示相對大小。因此讀取單元911及951係相同第一大小(在一些實施例中,對於所有NVM裝置之所有區塊,所有讀取單元係相同大小),較低位準ECC部分931.E及951.E係相同第二大小,且較低位準ECC部分911.E及971.E係相同第三大小。讀取單元931大於讀取單元911及951,繼而讀取單元911及951大於讀取單元971。使用者資料部分931.U大於使用者資料部分951.U。使用者資料部分951.U大於使用者資料部分911.U。較低位準ECC部分951.E小於較低位準ECC部分911.E。
如圖中圖解說明,各自讀取單元具有各自大小(例如,按NVM之各自區塊),從而使能夠改變如用於各自區塊中之較低位準碼率。更具體言之,讀取單元931及951具有相同量的較低位準冗餘資訊(931.E及951.E係相同大小),但是讀取單元931之一較低位準碼率高於讀取單元951之一較低位準碼率,這係因為讀取單元931含有的使用者資料(931.U)多於讀取單元951(含有使用者資料951.U)。
如圖中圖解說明,各自讀取單元具有各自大小的使用者資料,從而使相同大小之兩個或兩個讀取單元之各者中之使用者資料能夠為各種大小。例如,變更使用者資料之一大小以改變用於一特定讀取單元之一較低位準碼率。更具體言之,讀取單元951及911具有相同大 小,但是具有各自不同量的使用者資料(951.U及911.U),且因此具有各自不同量的較低位準冗餘資訊(951.E及911.E),從而使讀取單元951能夠具有高於讀取單元911之一較低位準碼率。
在一些實施例及/或使用案例中,變更及/或改變一較低位準碼率有利於實現提供足夠多的較低位準ECC資訊,以達成較低位準錯誤校正要求並同時最大化使用者資料的量。
在讀取單元中之使用者資料的量變化之一些實施例中,較高位準冗餘資訊儲存於具有最大量使用者資料之讀取單元之一或多者中。例如在圖9中,使用一RASIE-1模式,較高位準冗餘資訊儲存於使用者資料931.U中,且使用一RASIE-2模式,較高位準冗餘資訊儲存於使用者資料931.U及使用者資料951.U中。將較高位準冗餘資訊儲存於(在受較高位準冗餘資訊保護之讀取單元之中)具有最大量使用者資料之讀取單元中,確保存在足夠多的較高位準冗餘資訊以保護所有其他讀取單元中之使用者資料。
根據各種實施例,使用一或多種技術以判定受較高位準冗餘資訊保護之多個讀取單元之中的一或多個讀取單元中用來儲存較高位準冗餘資訊之讀取單元。在一第一實例中,使用具有最大量使用者資料之最後寫入之一個讀取單元(適用於RASIE-1)或兩個讀取單元(適用於RASIE-2)。在一第二實例中,使用具有最大量使用者資料之最早寫入之一個讀取單元(適用於RASIE-1)或兩個讀取單元(適用於RASIE-2)。類似地,判定地選擇具有最大量使用者資料之一或多個讀取單元以保護其他讀取單元中之所有剩餘使用者資料之任何技術係在本文中考量之技術之範疇內。
較高位準冗餘資訊計算技術
在各種實施例及/或使用案例中,使用多種技術(諸如經由同位、RS及/或加權求和技術)計算較高位準冗餘資訊。例如,在實現自一 (較低位準)失效恢復之一些較高位準冗餘模式(例如,RASIE-1)中,經由同位技術計算較高位準冗餘資訊。對於另一實例,在實現自兩個(較低位準)失效恢復之一些較高位準冗餘模式(例如,RASIE-2)中,經由同位技術與RS技術之一組合計算較高位準冗餘資訊。使用同位編碼計算較高位準冗餘資訊之一第一部分且使用RS編碼計算一第二部分。對於又另一實例,在實現自兩個失效恢復之一些較高位準冗餘模式(例如,RASIE-2)中,經由同位技術與加權求和技術之一組合計算較高位準冗餘資訊。使用同位編碼計算較高位準冗餘資訊之一第一部分且使用加權求和編碼計算一第二部分。使用相同於或類似於用於可用於儲存受較高位準冗餘資訊保護之資料之NVM之頁之較低位準失效偵測技術之較低位準失效偵測技術(諸如ECC),經由(例如)NVM之頁之讀取及寫入來管理較高位準冗餘資訊。
作為用於RASIE-2之一特定實例,經由跨一R區塊之一等量區中之所有第一頁之XOR,使用同位編碼計算較高位準冗餘資訊之一第一頁。更具體言之,對跨該R區塊之等量區中之所有第一頁之所有第一位元組執行XOR,從而導致較高位準冗餘資訊之第一頁之一第一位元組。類似地,藉由XOR運算跨該R區塊之等量區中之所有第一頁之所有第二位元組形成較高位準冗餘資訊之一第二位元組,以此類推,XOR運算該等量區中之所有第一頁之所有位元組。使用如下之一種加權求和技術計算較高位準冗餘資訊之一第二頁。
對諸如伽羅瓦域(用作一實例)之有限域執行算術。實例假定被運算之資料係位元組寬且因此使用諸如CF(256)之域。在各種實施例中,依任何單元運算資料。
一等量區中之各頁被指派唯一的非零「指數」。該等指數之值經選取以簡化實施複雜性,且與多項式產生器之任何形式無關。例如,在一等量區中依晶粒位置(例如,憑藉軟體)自0至N-1標記頁,且用於 該等指數之一合適值係晶粒編號之1的補數(確保為非零,假設N<255)。指數值之另一選擇係最低加權(最少數目個設定位元或最少數目個清零位元)的非零整數,以(例如)減小及/或最小化硬體成本。在一些實施例及/或使用案例中,對該等指數選擇經格雷編碼之值隨著頁被處理而最小化轉變及/或減小電力。
指數值並非根據有限域算術而選擇,而係根據其他原理而選擇。儘管如此,各指數值對應於有限域中之一非零元素。假定頁i具有指數值Ki(且頁j具有指數值Kj)。加權求和冗餘係(對來自各頁i之對應的位元組Pi之)(GF域)求和Ki*Pi,各位元組(在GF域內)乘以其指數值。
因此,對各位元組將加權求和冗餘資訊計算為:R0=對所有對應的位元組Pi求和;R1=對所有對應的位元組Ki*Pi求和;R0係所有對應的位元組之XOR;及R1係位元組之一加權求和,其中選定該等加權作為指數值。對一頁中之對應的位元組之各者反覆前述計算,從而對R0及R1之各者產生對應位元組的頁。為便於闡釋,在下列論述中,R0及R1在一些內容脈絡中分別被描述為單個元素(例如,各自係單個位元組),但是如在前述計算中,各自表示元素之各自頁(例如,各自係位元組之一頁)。
Pi表示頁i中之一位元組,且Pj表示頁j中之一位元組。處理係關於來自各頁之對應的位元組之一等量區加以描述,且對所有對應的位元組執行反覆過程。若一些頁歸因於(例如)具有一不同(較低位準)冗餘碼率而「短於」其他頁,則較短頁被填補零(例如,藉由以相同方式用於編碼及解碼之任何已知值填補)使得經有效處理之所有頁具有相同大小。
可根據各種實施例經由各種串列及/或平行計算按任何順序執行求和以計算R0及R1。頁無須按任何特定順序加以處理,這係因為無論在Kj*Pj之前或之後相加Ki*Pi皆不影響R1中的結果。對應於冗餘資訊之一頁之各個位元組之R0及R1值之計算彼此獨立且可根據各種實施例經由各種串列及/或平行計算按任何順序計算。進一步言之,自R1減去Ki*Pi(及自R0減去Pi)實現撤銷對頁之計算影響。因為在一GF域內,加法及減法皆係XOR(因此減去等效於簡單地第二次相加),所以在一些實施例及/或使用案例中,為「撤銷」一頁,GF域實施方案無需特殊硬體(例如,一邏輯XOR能力已經足夠)。
若較低錯誤不可校正,則較高位準錯誤校正在一些實施例中開始於重新計算R0及R1,但並非開始於省略具有不可校正較低位準錯誤之頁(有時候被稱為行)。校正藉由自原始R0減去經重新計算之R0以產生△R0及自原始R1減去經重新計算之R1以產生△R1而進行。
若不存在不可校正較低位準錯誤,則經重新計算之R0及R1皆係零。若存在不可校正較低位準錯誤,則經重新計算之R0及R1(在減法之後)反映「丟失」的資料(第二次未相加但是存在於原始值中)。
若存在一不可校正較低位準錯誤,則使用經重新計算之R0以校正該錯誤(且無需經重新計算之R1)。
若存在兩個不可校正較低位準錯誤,則使用經重新計算之R0及R1以校正該錯誤。若R0及R1值之頁皆係具有不可校正較低位準錯誤之頁,則無須校正資料儲存頁。若R1值之頁係具有不可校正較低位準錯誤之頁之一者,則經由R0進行校正(經重新計算之R0值係具有不可校正較低位準錯誤之資料儲存頁之值)。
若資料儲存頁中存在兩個不可校正較低位準錯誤或若R0頁係具有不可校正較低位準錯誤之頁之一者,則校正開始於如上文般計算△R0及△R1。若R0頁係具有不可校正較低位準錯誤之頁之一者,則視 需要省略△R0頁之計算。若頁i及頁j係具有不可校正較低位準錯誤之頁,則經重新計算之△R0=Pi+Pj,且經重新計算之△R1=Ki*Pi+Kj*Pj。方程求解產生:Pi=(△R1-Kj*△R0)/(Ki-Kj) Pj=△R0-Pi
若R0係具有不可校正較低位準錯誤之頁之一者,則(因為R0並不包含於R1中),△R1=Ki*Pi或Pi=△R1/Ki;藉由在上文公式中設定Kj=0(省略△R0)獲得相同結果。
在一替代性實施例中,使用藉由整數按p(其中p係一質數)取模定義之一有限域來代替伽羅瓦域。該等計算與上文描述之計算相同,其中加法係按p取模之整數加法且乘法係按p取模之整數乘法。例如,若頁係位元組之頁,則使用整數按257取模之一有限域。所有使用者資料位元組係在一範圍0至255中且係各自依一位元組為單位予以儲存。然而,R1結果具有自0至256範圍內之值,要求一個以上位元組用於表示。存在多種方式以編碼自0至256之值以最小化儲存空間且使能夠在減小額外耗用之情況下儲存R1頁。例如,分別將值0及256儲存作為9位元的序列000000000及000000001,且所有其他值係用8個位元予以儲存。鑑於R1值之一隨機分佈,儲存額外耗用係<0.1%。如關於圖9描述,選擇R1頁以具有最大量的使用者資料,從而在一些使用案例中使能夠隱藏該儲存額外耗用。
圖10圖解說明(例如)如在諸如圖7之內容脈絡中由RASIE-2模式2-2使用且如圖6中進一步圖解說明之較高位準冗餘資訊結果及資料源對應之一實施例之選定細節。圖10明確地圖解說明快閃記憶體晶粒610.0、610.63、610.64及610.65,且藉由省略符號(......)隱含地圖解說明快閃記憶體晶粒610.1、......610.62。圖解說明快閃記憶體晶粒之區塊、頁及之頁內之位元組之選定細節。較高位準冗餘資訊之一第一 部分被圖解說明為R0 1010(儲存於快閃記憶體晶粒610.64中)且係使用同位編碼加以計算。較高位準冗餘資訊之一第二部分被圖解說明為R1 1011(儲存於快閃記憶體晶粒610.65中)且係使用加權求和加以計算。用於資料資訊之儲存被圖解說明為資料1019(儲存於快閃記憶體晶粒610.0、......610.63中)。
虛線箭頭1001基於資料1019之所有第一頁(跨所有快閃記憶體晶粒)之對應的第一位元組在概念上指示兩位元組冗餘計算結果(R0 1010及R1 1011之各者使用一位元組)。如圖解說明,該兩位元組結果係第一R0頁及第一R1頁之各者上之第一位元組。虛線箭頭1002基於資料1019之所有第一頁之對應的最後一個位元組在概念上指示兩位元組冗餘計算結果(R0 1010及R1 1011之各者使用一位元組)。如圖解說明,該兩位元組結果係第一R0頁及第一R1頁之各者上之第一位元組。虛線箭頭1003基於資料1019之第一區塊(跨所有快閃記憶體晶粒)之對應的最後一頁在概念上指示兩位元組冗餘計算結果(R0 1010及R1 1011之各者使用一頁)。
注意,如本文中其他處所述,在一些實施例中,對於不同的資料部分,較高位準冗餘資訊儲存於不同晶粒中。因此,在一些實施例中,如圖10中圖解說明,R0及R1係跨各個晶粒而非兩個「專用」晶粒予以儲存。
圖11圖解說明在根據各種實施例之操作條件下(例如)如在諸如圖7之內容脈絡中由RASIE-2模式2-2使用且如圖6及圖10中進一步圖解說明之較高位準資訊計算之一實施例之選定細節。更具體言之,圖11根據(例如)在概念上由圖10之虛線箭頭1001圖解說明之該兩位元組冗餘計算結果來圖解說明用於R0之一位元組之同位編碼計算及用於R1之一位元組之加權求和編碼計算。操作條件包含以下一或多者:對一有限域(諸如伽羅瓦域)執行算術、指數(對應於圖11中之虛設求和變數 「i」)(係快閃記憶體晶粒編號(或任何其他唯一且非零編號)之1的補數之指數),及對應於有限域中之非零元素之指數。基於對應的資料位元組,對R0及R1之所有位元組重複如圖11中圖解說明之計算。注意,非零指數使R1值能夠包含來自Pi之每個元素之一貢獻。
因此,彼此計算R0之位元組之任一者或R1之位元組之任一者之間不存在相依性。因此預期各種實施例,其中R0及R1值係完全(大量地)平行、部分平行或完全串列加以計算。例如,平行計算一頁之所有R0及/或R1位元組。對於另一實例,平行計算一頁之所有R0位元組,後續接著(或進行)平行計算一頁之所有R1位元組。
進一步言之,相對於彼此或相對於R1之位元組之任一者計算R0之位元組之任一者不存在順序要求。因此,預期各種實施例,其中R0及R1係相對於彼此完全按順序計算,相對於彼此單獨按順序計算(例如,R0計算係相對於彼此按順序進行,但相對於R1並未按順序計算,且反之亦然),或並未按特定順序(例如,完全無序、無順序或隨機順序)進行。例如,按一特定順序(例如,自最低位元組至最高位元組)計算一頁之所有R0位元組,後續接著按該特定順序計算該頁之所有R1位元組。對於另一實例,按特定順序計算一頁之所有R0位元組,且該特定順序獨立地計算該頁之所有R1位元組。對於又另一實例,並未相對於彼此按特定順序計算一頁之所有R0位元組及一頁之所有R1位元組(例如,這係因為資料運算元變得可用)。
對於又另一實例,按藉由完成對一或多個NVM(各自具有(例如)一或多個快閃記憶體晶粒)執行之一或多次讀取操作之一順序判定之一順序來計算一或多頁之所有R0及R1位元組,該等讀取操作用於讀取圖11中圖解說明之求和及加權求和計算參照之資料位元組(Pi)。在一些實施例及/或使用案例中,按藉由完成讀取操作判定之順序執行計算,實現減小或消除NVM與經啟用以執行計算之元件之間的緩 衝。在一些實施例及/或使用案例中,按藉由完成讀取操作判定之順序來執行計算實現減小用以執行計算之記憶體頻寬(諸如NVM之頻寬)。
對於又另一實例,按藉由回應於對一或多個NVM(各自具有(例如)一或多個快閃記憶體晶粒)執行之讀取操作傳回資料及/或可用資料之一順序判定之一順序來計算一或多頁之所有R0及R1位元組,所傳回之資料及/或可用資料對應於圖11中圖解說明之求和及加權求和計算參照之資料位元組(Pi)。在一些實施例及/或使用案例中,按藉由傳回資料及/或使用資料判定之順序來執行計算,實現減小或消除NVM與經啟用以執行計算之元件之間的緩衝。在一些實施例及/或使用案例中,按藉由傳回資料及/或使用資料判定之順序執行計算,實現減小用以執行計算之記憶體頻寬(諸如NVM之頻寬)。在一些實施例中,按一特定順序(例如,自Pi之最低位元組至最高位元組)執行讀取操作,而在其他實施例中,未按特定順序執行讀取操作。
圖12圖解說明(例如)在諸如與圖11相關聯且其中頁j上發生一(較低位準)失效之內容脈絡中自該較低位準失效(在單個操作期間)恢復之一實施例之選定細節。注意,若較低位準失效係在R0或R1頁上,則如藉由圖11所述般重新判定R0(或R1)。圖12圖解說明用於頁j之一恢復值之一位元組之計算(注意,求和省略其中發生失效之頁j)。重複如圖12中圖解說明之計算以基於R0之對應位元組及來自惟頁j以外的所有資料頁之對應位元組來判定頁j之所有位元組之恢復值。
因此,對彼此計算頁j之恢復值之位元組之任一者不存在相依性。因此預期各種實施例,其中類似於對R0及R1值之前述提及的計算,Pj恢復值係自高度平行至高度串列範圍內加以計算。進一步言之,相對於彼此計算頁j之恢復值之任一者不存在順序要求。因此,預期各種實施例,其中類似於對R0及R1值之前述提及的計算,Pj恢 復值係相對於彼此按不同順序加以計算。
一些例示性實施例按至少部分藉由完成對一或多個NVM(各自具有(例如)一或多個快閃記憶體晶粒)執行之一或多次讀取操作之順序判定之順序來執行與判定恢復值有關的計算,讀取操作用於讀取NVM以獲得如圖12中圖解說明之R0及/或Pi值。在一些實施例及/或使用案例中,按完成讀取操作之順序執行計算,實現減小或消除NVM與經啟用以執行計算之元件之間的緩衝。在一些實施例及/或使用案例中,按完成讀取操作之順序執行計算,實現減小用以執行計算之記憶體頻寬(諸如NVM之頻寬)。
一些例示性實施例按至少部分藉由自一或多個NVM(各自具有(例如)一或多個快閃記憶體晶粒)之傳回資料及/或該一或多個NVM使用資料之順序判定之順序來執行與判定恢復值有關的計算,所傳回之資料及/或可用資料係回應於對NVM執行以獲得如圖12中圖解說明之R0及/或Pi值之讀取操作。在一些實施例及/或使用案例中,按自讀取操作傳回資料及/或讀取操作使用資料之順序執行計算,實現減小或消除NVM與經啟用以執行計算之元件之間的緩衝。在一些實施例及/或使用案例中,按自讀取操作傳回資料及/或讀取操作使用資料之順序執行計算,實現減小用以執行計算之記憶體頻寬(諸如NVM之頻寬)。在一些實施例中,按一特定順序(例如,自Pi之最低位元組至最高位元組)執行讀取操作,而在其他實施例中,未按特定順序執行讀取操作。
圖13A至圖13D圖解說明(例如)在諸如與圖11相關聯且其中頁m及n上發生兩個(較低位準)失效之內容脈絡中自該等較低位準失效(在單個操作期間)恢復之一實施例之選定細節。注意若較低位準失效係在R0及R1頁上,則資料恢復無需R0及R1,且不存在恢復資料之處理。否則,注意若較低位準失效之一者係R1頁,則如圖12描述般進行資 料恢復。若較低位準失效皆並非在R0或R1頁上,則如下進行Pm及Pn值之恢復。圖13A圖解說明用於作為R0’之一所修訂的R0之一位元組及作為R1’之一所修訂的R1之一位元組之計算(注意求和省略其中發生失效之頁m及n)。圖13B圖解說明使原始冗餘資訊(R0,R1)之一位元組與所修訂之冗餘資訊(R0’,R1’)相關的方程式,且求和省略之項用以形成所修訂之R0及R1(Pm+Pn及Km*Pm+Kn*Pn)。圖13C圖解說明圖13B之一代數重新排列,且引入項差量R0(△R0)及差量R1(△R1)。圖13D圖解說明圖13C之用於Pn及Pm之一解法,且因此基於R1、R0之對應位元組及來自惟頁m及n以外的所有資料頁之對應位元組,表示用於頁n之一恢復值之一位元組及頁m之一恢復值之一位元組之計算。注意,唯一的指數實現一非零分母,這係因為Kn相對於Km係唯一的。
在各種實施例中,執行如由圖13A至圖13D表示之計算以判定用於頁m之一恢復值之一位元組及用於頁n之一恢復值之一位元組。重複計算以基於R1、R0之對應的位元組及來自惟頁m及n以外的所有資料頁之對應的位元組判定用於頁m及n之位元組之所有者之恢復值。
因此對彼此計算頁m或n之恢復值之位元組之任一者不存在相依性。因此預期各種實施例,其中類似於對Pj恢復值之前述提及的計算,Pm及/或Pn恢復值係自高度平行至高度串列範圍內加以計算。進一步言之,相對於彼此計算頁m及/或頁n之恢復值之任一者不存在順序要求。因此,預期各種實施例,其中類似於對Pj恢復值之前述提及的計算,Pm及/或Pn恢復值係相對於彼此按不同順序加以計算。
一些例示性實施例按至少部分藉由完成對一或多個NVM(各自具有(例如)一或多個快閃記憶體晶粒)執行之一或多次讀取操作之順序判定之順序來執行與判定恢復值有關的計算(諸如用於R0’及R1’之計算),讀取操作獲得圖解說明為用於圖13A至圖13D之任一者中之計算 之來源之值之任何一或多者。在一些實施例及/或使用案例中,按完成讀取操作之順序執行計算,實現減小或消除NVM與經啟用以執行計算之元件之間的緩衝。在一些實施例及/或使用案例中,按完成讀取操作之順序執行計算,實現減小用以執行計算之記憶體頻寬(諸如NVM之頻寬)。
一些例示性實施例按至少部分藉由自一或多個NVM(各自具有(例如)一或多個快閃記憶體晶粒)傳回資料及/或該一或多個NVM使用資料之順序判定之順序來執行與判定恢復值有關的計算(諸如用於R0’及R1’之計算),所傳回之資料及/或可用資料係回應於對NVM執行以獲得圖解說明為用於圖13A至圖13D之任一者中之計算之來源之值之任何一或多者之讀取操作。在一些實施例及/或使用案例中,按自讀取操作傳回資料及/或讀取操作使用資料之順序執行計算,實現減小或消除NVM與經啟用以執行計算之元件之間的緩衝。在一些實施例及/或使用案例中,按自讀取操作傳回資料及/或讀取操作使用資料之順序執行計算,實現減小用以執行計算之記憶體頻寬(諸如NVM之頻寬)。在一些實施例中,按一特定順序(例如,自Pi之最低位元組至最高位元組)執行讀取操作,而在其他實施例中,未按特定順序執行讀取操作。
圖14A及圖14B圖解說明計算關於接收自NVM之頁之較高位準冗餘資訊之一實施例之選定細節。圖14A圖解說明經由發佈將複數個讀取命令發送至一或多個NVM(發佈讀取操作1402A)以檢查是否已發送所有命令(全部發佈?1403A)之一實施例之選定細節,且若否,則廻圈返回至發送命令之另一者。注意預期其他實施例,其中每次發佈複數個命令而非每次發送一個命令。
圖14B圖解說明回應於如圖14A中圖解說明般發送之讀取命令而處理接收自NVM之頁之一實施例之選定細節。檢查以判定頁是否可 用(頁備妥?1402B)。若否,則處理廻圈返回至再次執行該檢查。若頁可用,則實行與頁有關的較高位準冗餘資訊處理(執行基於頁之計算1403B)。接著檢查以判定是否已處理所有頁(頁完成?1404B)。若是,則完成處理(結束1499B),否則流程廻圈返回至判定另一頁是否可用。
圖14B中圖解說明之處理獨立於圖14A中圖解說明之處理,而非回應於如圖14A中圖解說明般發送之命令而接收頁。在各種案例中,頁之到達順序根據NVM類型、狀態、操作環境及其他因素而變化,且在一些境況下不同於對應於到達頁之讀取命令之發送順序或到達順序。由於圖14A之處理獨立於圖14B(而非頁資料到達取決於所發送之一對應的讀取命令),在一些實施例及/或使用案例中,發送讀取命令(圖14A)並同時接收/處理讀取資料(圖14B)。在一些實施例及/或使用案例中,例如,若在發送對一特定頁的一讀取命令之前該特定頁存在於一特定緩衝器中,則經由引導至NVM之讀取命令自一或多個緩衝器提供一些頁,而非請求一些頁。在一些實施例及/或使用案例中,NVM使惟回應於所發送之命令之頁以外的頁混合回應於所發送之命令提供之頁(例如,回應於由於其他活動而發送之讀取命令提供之頁)。
在各種實施例中,至少部分如圖14A及圖14B圖解說明般執行用於如圖11圖解說明之R0及R1之計算。對於一第一實例,將計算對應的R0及R1頁所需之所有資料頁之讀取命令如圖14A圖解說明般發送至一或多個NVM。如接收回應於讀取命令接收之資料頁般處理該等頁,以如圖11圖解說明般計算R0及R1頁。對於一第二實例,將用於一對R0及R1頁(對應於(例如)雙平面NVM之兩個平面)之讀取命令如圖14A圖解說明般發送至一或多個NVM。如接收回應於讀取命令接收之資料頁般處理該等頁,以如圖11中圖解說明般計算R0及R1頁。
在各種實施例中,至少部分如圖14A及圖14B圖解說明般執行用於如圖12圖解說明之Pj之計算。對於一第一實例,將計算一特定Pj頁所需之所有資料頁之讀取命令如圖14A圖解說明般發送至一或多個NVM。如接收回應於讀取命令接收之資料頁般處理該等頁,以如圖12圖解說明般計算Pj頁。對於一第二實例,將用於一對Pj頁(對應於(例如)雙平面NVM之兩個平面)之讀取命令如圖14A圖解說明般發送至一或多個NVM,且如接收般處理所接收之資料頁,以如圖14B圖解說明般計算該對Pj頁。
在各種實施例中,至少部分如圖14A及圖14B圖解說明般執行與如圖13A至圖13D之任一者圖解說明般判定恢復值有關的計算(諸如用於R0’及R1’之計算)。對於一第一實例,將計算一特定R0’頁及一特定R1’頁所需之所有資料頁之讀取命令如圖14A圖解說明般發送至一或多個NVM。如接收回應於讀取命令接收之資料頁般處理該等頁,以如圖13A圖解說明般計算R0’及R1’頁。對於一第二實例,將用於一對R0’及R1’頁(對應於(例如)雙平面NVM之兩個平面)之讀取命令如圖14A圖解說明般發送至一或多個NVM,且如接收般處理所接收之資料頁,以如圖14B圖解說明般計算該對R0’及R1’頁。
圖15A至圖15C圖解說明(例如)在諸如與圖11相關聯之內容脈絡中撤銷關於提供至NVM之一寫入之較高位準冗餘資訊之計算之一實施例之選定細節。圖15A圖解說明經由發佈將複數個寫入命令發送至一或多個NVM(發佈寫入操作1502A)以檢查是否已發送所有命令(全部發佈?1503A)之一實施例之選定細節,且若否,則廻圈返回至發送命令之另一者。注意預期其他實施例,其中每次發佈複數個命令而非每次發送一個命令。
圖15B圖解說明回應於如圖15A中圖解說明般發送之寫入命令而處理接收自NVM之寫入完成及狀態資訊之一實施例之選定細節。檢 查以判定是否完成寫入且無錯誤(寫入正確?1502B)。若是,則檢查以判定是否已完成所有寫入(寫入完成?1504B)。若是,則完成處理(結束1599B)。若完成寫入但是具有一(較低位準)錯誤(諸如一程式化失效),則流程進行至「復原」寫入對較高位準冗餘資訊計算之影響(自冗餘1503B撤銷寫入)。更具體言之,解除由任何對應的較高位準冗餘資訊計算對用於具有較低位準錯誤之寫入之資料的計算(假定在該寫入將會成功之假設下用於該寫入之資料已包含於該對應的較高位準冗餘計算中)。例如,在一特定頁j上偵測到一較低位準寫入失效。作為回應,計算所修訂的R0及R1頁使得頁j資料(Pj)被設定為零。圖15C圖解說明對於一所修訂的R0(nR0)之單個位元組及一所修訂的R1(nR1)之單個位元組之計算之一實施例之選定細節,其中j係較低位準寫入失效之頁。注意在諸如與圖11相關聯之圖12之內容脈絡中,若有限域係伽羅瓦域,則圖15C中圖解說明之減法運算(「-」)等效於邏輯XOR運算。在各種實施例中,執行其他處理(未圖解說明),以儲存具有較低位準寫入失效之頁(Pj)以及所修訂的較高位準冗餘頁(nR0及nR1)。
圖15B中圖解說明之處理獨立於圖15A中圖解說明之處理,而非回應於如圖15A中圖解說明般發送之命令而接收寫入完成及狀態資訊。在各種案例中,寫入完成及狀態資訊之到達順序根據NVM類型、狀態、操作環境及其他因素而變化,且在一些境況下不同於對應於到達寫入完成及狀態資訊之寫入命令之發送順序或到達順序。由於圖15A之處理獨立於圖15B(而非寫入完成及狀態資訊到達取決於所發送之一對應的寫入命令),在一些實施例及/或使用案例中,發送寫入命令(圖15A)並同時接收/處理寫入完成及狀態資訊(圖15B)。
在一些實施例及/或使用案例中,發送寫入命令至NVM與回應於寫入命令而自NVM接收寫入完成及狀態資訊之間發生一相當大的延 時。在一些實施例及/或使用案例中,NVM使惟回應於如圖15A中圖解說明之所發送之命令之頁以外的寫入完成及狀態資訊混合回應於如圖15A中圖解說明之所發送之命令提供之寫入完成及狀態資訊(例如,回應於由於其他活動而發送之寫入命令提供之寫入完成及狀態資訊)。
在一些實施例及/或使用案例中,將否則用於資料資訊之一或多頁未被使用。在各種案例中,一未經使用之頁係一區塊、R區塊、等量區或任何種類的一序列頁之一第一頁、中間頁或最後一頁。在一些境況下,先驗未經使用之頁未被使用(「被忽視」),且在一些境況下,未經使用之頁在一些使用之後未被使用(「撤除服務」)。被忽視之一未經使用之頁之一實例係不正確地製造之一頁。撤除服務之一未經使用之頁之一實例係未能適當寫入(例如,如關於圖15B描述為一較低位準寫入錯誤)之一頁。(例如)與圖10至圖12、圖13A至圖13D、圖14A至圖14B及圖15A至圖15B有關的處理藉由(諸如)完全由計算省略未經使用之頁或藉由執行計算如同未經使用之頁上之所有資料為零而略過任何未經使用之頁(無論省略或撤除服務)。
混合粒度較高位準冗餘
在各種實施例及/或使用案例中,NVM之各自區域係以諸如藉由圖7、圖8及圖10圖解說明且結合圖7、圖8及圖10描述之各自較高位準冗餘模式(例如,RASIE-1及RASIE-2)操作。在各種實施例中,各自較高位準冗餘模式具有相同粒度,例如各自區域各自係相同(例如,大小或類型)元素之整數倍數。例示性元素包含一或多個R區塊及/或區塊、一或多個R頁及/或頁及與一或多個字線相關聯之一或多個記憶體胞。例如,NVM之一第一區域係依單個區塊粒度以RASIE-1模式操作(例如,該第一區域係整數個區塊,諸如該第一區域係一或多個R區塊),且NVM之一第二區域係依單個區塊粒度以RASIE-2模式操作(例 如,該第二區域亦係整數個區塊,諸如該第二區域係一或多個R區塊)。因此該第一區域及該第二區域係以皆係相同粒度(一個區塊)之各自較高位準冗餘模式操作。
在各種其他實施例中,各自較高位準冗餘模式係依各種粒度(例如,各自區域之至少一些係各自不同元素之整數倍數)。例如,NVM之一第一區域係依單頁粒度以RASIE-1模式操作(例如,該第一區域係整數個頁,諸如對應於來自NVM之各晶粒之一頁、本文中其他處描述之一例示性R頁),且NVM之一第二區域係依單個區塊粒度以RASIE-2模式操作(例如,該第二區域亦係整數個區塊,諸如該第二區域係一或多個R區塊)。因此該第一區域及該第二區域係以為相異粒度之各自較高位準冗餘模式操作。對於另一實例,一NVM之各自區域係以相同較高位準冗餘模式且依各自相異粒度操作(例如,一第一區域及一第二區域係以RASIE-1操作,該第一區域係依單頁粒度,且該第二區域係依單個R區塊粒度)。
在各種實施例及/或使用案例中,一較高位準冗餘模式之粒度係基於具有相同大小、相同類型或其二者之元素之整數倍數。例如,在其中歸因於(例如)相同較低位準冗餘編碼率、頁之各者之大小相同(且頁之各者係相同類型(一「頁」))之內容脈絡中,相同大小(及相同類型)之元素包含若干頁。對於另一實例,在其中歸因於(例如)不同的較低位準冗餘編碼率、一些頁大小不同於其他頁但是所有頁係相同類型(一「頁」)之內容脈絡中,相同類型(但大小不同)之元素包含若干頁。
圖16圖解說明在如圖6中圖解說明之快閃記憶體晶粒之一配置之內容脈絡中混合粒度較高位準冗餘之一實施例之選定細節。圖16明確地圖解說明快閃記憶體晶粒610.0、610.63、610.64及610.65,且藉由省略符號(......)隱含地圖解說明快閃記憶體晶粒610.1、......、 610.62。圖解說明區塊及快閃記憶體晶粒之區塊內之頁之選定細節。複數個R區塊被圖解說明為R區塊660.0、660.1、660.2、......及660.R。複數個R頁被圖解說明為R頁1600、1601、1602、......及1609(統稱為R區塊660.0)。
一R頁在概念上對應於來自複數個NVM裝置之頁之一邏輯切片(這係因為R區塊在概念上對應於來自複數個NVM裝置之區塊之一邏輯切片)。一例示性R頁係來自快閃記憶體晶粒之各者之第j個區塊之第i頁合在一起。存在諸如在概念上對應於R區塊之各種實例之其他例示性R頁,諸如來自快閃記憶體晶粒之各者之第j個區塊之第i頁及第(i+1)頁合在一起。
如圖解說明,R頁1600係來自快閃記憶體晶粒之第一區塊之第一頁合在一起(頁610.0P0、......、610.63P0、610.64P0及610.65P0)。R頁1601係來自快閃記憶體晶粒之第一區塊之第二頁合在一起(頁610.0P1、......、610.63P1、610.64P1及610.65P1)。R頁1602係來自快閃記憶體晶粒之第一區塊之第三頁合在一起(頁610.0P2、......、610.63P2、610.64P2及610.65P2)。R頁1609係來自快閃記憶體晶粒之第一區塊之最後一頁合在一起(頁610.0PP、......、610.63PP、610.64PP及610.65PP)。
快閃記憶體晶粒之各個區域被圖解說明為依各種粒度以對應的較高位準冗餘模式如下並行操作。R頁1600係依頁粒度以一RASIE-2模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......、610.63之頁610.0P0、......610.63P0中之資料資訊1600.D及分別儲存於快閃記憶體晶粒610.64及610.65之頁610.64P0及610.65P0中之對應的冗餘資訊1600.R。R頁1601亦係依頁粒度以一RASIE-2模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......、610.63之頁610.0P1、......610.63P1中之資料資訊1601.D及分別儲存於快閃記憶體 晶粒610.64及610.65之頁610.64P1及610.65P1中之對應的冗餘資訊1601.R。R頁1602係依頁粒度以一RASIE-1模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......、610.64之頁610.0P2、......610.64P2中之資料資訊1602.D及儲存於快閃記憶體晶粒610.65之頁610.65P2中之對應的冗餘資訊1602.R。R頁1609係依頁粒度以一RASIE-3模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......、610.62之頁610.0PP、......、610.62PP中之資料資訊1609.D及分別儲存於快閃記憶體晶粒610.63、......、610.65之頁610.63PP、......、610.65PP中之對應的冗餘資訊1609.R。注意,快閃記憶體晶粒610.62(及其中諸如頁610.62PP之頁)係加以隱含而非加以明確圖解說明。
與依相同頁粒度以各自較高位準冗餘模式操作之R頁1600、1601、1602及1609相比,R區塊660.1、660.2及660.R係依相同區塊粒度以各自較高位準冗餘模式操作。具體言之,R區塊660.1係依一區塊粒度以一RASIE-2模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......610.63之區塊610.0B1、......、610.63B1中之資料資訊1610.D及分別儲存於快閃記憶體晶粒610.64及610.65之區塊610.64B1及610.65B1中之對應的冗餘資訊1610.R。R區塊660.2係依一區塊粒度以一RASIE-1模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......610.64之區塊610.0B2、......、610.64B2中之資料資訊1620.D及儲存於快閃記憶體晶粒610.65之區塊610.65B2中之對應的冗餘資訊1620.R。R區塊660.R係依一區塊粒度以一RASIE-3模式操作,且包含分別儲存於快閃記憶體晶粒610.0、......610.62之區塊610.0BB、......、610.62BB中之資料資訊1690.D及分別儲存於快閃記憶體晶粒610.63、......、610.65之區塊610.63BB、......、610.65BB中之對應的冗餘資訊1690.R。
因此,R頁1600、1601、1602及1609係全部依相同之一頁粒度以 各種較高位準冗餘模式並行操作(使得各區域係來自快閃記憶體晶粒610.0、......、610.65之各者之一對應頁)。進一步言之,R區塊660.0、660.1、660.2及660.R係全部依相同之一區塊粒度以各種較高位準冗餘模式並行操作(使得各區域係來自快閃記憶體晶粒610.0、......、610.65之各者之一對應的區塊)。最後,R頁1600、1601、1602及1609之並行操作與R區塊660.0、660.1、660.2及660.R之並行操作係同時的。因此,快閃記憶體晶粒係依各種(混合)粒度以各種較高位準冗餘模式共同且並行操作。
作為依混合粒度以較高位準冗餘模式並行操作之益處之一特定實例,考量以下各者。如圖16中圖解說明,R頁1600、1601及1602係各自完全以一各自較高位準冗餘模式(具體言之,RASIE-2模式、RASIE-2模式及RASIE-1模式)操作。R頁1609係完全以一RASIE-3模式操作。雖然未明確圖解說明,但是假定R區塊660.0之剩餘R頁係完全以一RASIE-1模式操作。因此,所有R區塊660.0係依頁粒度以較高位準冗餘模式操作。如圖解說明,R區塊660.1、660.2及660.R係各自完全以各自較高位準冗餘模式操作。雖然未明確圖解說明,但是假定剩餘的R區塊亦係各自完全以各自較高位準冗餘模式操作。因此,惟R區塊660.0以外的所有R區塊皆係依區塊(或替代地R區塊)粒度以較高位準冗餘模式操作,且R區塊660.0係依頁粒度以較高位準冗餘模式操作。
與實現經由RASIE-2保護R頁1609以防單個操作期間出現兩個失效相比較,招致單頁(例如,頁610.63PP)之冗餘額外耗用成本遞增實現經由RASIE-3保護R頁1609以防單個操作期間出現三個失效。在不具備混合粒度之較高位準冗餘模式之實施方案中,R頁1609之保護招致整個區塊的冗餘額外耗用成本遞增。因此,混合粒度較高位準冗餘模式實現減小用於相同實體(諸如一(封裝)裝置、一晶粒、一R區塊、 一區塊、一R頁、一頁、與一字線相關聯之記憶體胞及一或多個複數前述實體)之相同保護之冗餘資訊額外耗用。
圖17圖解說明以複數個混合粒度較高位準冗餘模式進行並行操作(以第一及第二粒度較高位準冗餘模式進行並行操作1700)之一實施例之選定細節。流程回應於一事件而開始(開始1701)(例如)。流程接著繼續沿兩個並行路徑進行,一路徑用於每一各自粒度之較高位準冗餘模式操作(對應於(例如)NVM之各自區域)。圖左側部分中圖解說明以一第一粒度進行之操作(以第一粒度較高位準冗餘模式進行操作1702),且圖右側部分中圖解說明以一第二粒度進行之操作(以第二粒度較高位準冗餘模式進行操作1704)。如圖解說明,對於該兩種粒度,操作繼續並行(例如,全部或部分平行)進行。雖然未經圖解說明,但是在一些實施例及/或使用案例中,在一些情形中流程自該兩種粒度之並行操作退出,諸如還原至依單種粒度(例如,回應於重新開機)進行之操作或進行至依兩個以上粒度(例如,回應於另一事件)進行之並行操作。進一步言之,雖然圖17圖解說明依兩種粒度之較高位準冗餘模式進行之並行操作,但是各種其他實施例亦實施依各種粒度之較高位準冗餘模式之並行操作。
在起始並行操作之後,回應於諸如來自一主機(例如,圖1B之主機102)或來自一SSD控制器內部之一代理程式(agent)(例如,圖1A之回收器151)之一請求(讀取/寫入請求1707),流程繼續判定該請求所對應的操作粒度(粒度?1706)。若該請求係第一粒度(第一1706.1),則流程進行至根據該第一粒度處理該請求(根據第一粒度較高位準冗餘模式進行寫入/讀取1703)。若該請求係第二粒度(第二1706.2),則流程進行至根據該第二粒度處理該請求(根據第二粒度較高位準冗餘模式進行寫入/讀取1705)。
(例如,經由開始1701)起始經圖解說明之流程之事件及/或起始 依兩種粒度(未明確圖解說明)進行之並行操作之事件之一實例包含失效(例如,一較低位準不可校正讀取錯誤或一寫入/程式化失效)之偵測。在各種實施例中,藉由(例如,經由開始1701)起始經圖解說明之流程及/或起始依兩種以上粒度(未明確圖解說明)進行之操作暗示之轉變對應於操作模式之動態轉變(例如,圖8之動態轉變操作模式809)。
在此處及本文中的其他處應注意,與依複數種粒度較高位準冗餘模式之並行操作有關的描述指代(例如)複數個實體,其等同時用以儲存資訊及/或同時可用於根據該複數種粒度將資訊寫入至該複數個實體/自該複數個實體讀取資訊。該等實體之實例包含一(封裝)裝置、一晶粒、一R區塊、一區塊、一R頁、一頁、與一字線相關聯之記憶體胞及一或多個複數前述實體。在各個時間點,當依該複數種粒度並行操作時,進行以下任何一或多者:僅該等實體之單個實體正在執行(或替代地,藉由(例如)一SSD控制器引導以執行)單個操作(例如,一寫入或一讀取);該等實體之各個實體正在並行執行各種各自操作;且該等實體之一或多者之各個子實體正在並行執行各種各自操作。
例如,考量管理若干快閃記憶體晶粒之一SSD控制器。SSD控制器依各種粒度以各種較高位準冗餘模式如下並行操作快閃記憶體晶粒之各個區域。SSD控制器依一R區塊粒度以一RASIE-1模式操作該等區域之一第一者,且依一R區塊粒度以一RASIE-2模式操作該等區域之一第二者。SSD控制器依一R頁粒度以一RASIE-2模式操作該等區域之一第三者,且依一R頁粒度以一RASIE-3模式操作該等區域之一第四者。在並行操作期間,該等區域之各者同時儲存資訊且同時可用於根據一R區塊或一R頁粒度寫入/讀取資訊。
繼續該實例,在並行操作期間的一段時間內,SSD控制器將一系列寫入命令循序地提供至快閃記憶體晶粒之各者。該系列寫入命令對應於寫入整個該第一區域且係依一R區塊粒度根據該RASIE-1模式。 在一些案例中,該等寫入命令之各者係由SSD控制器每次發出一個至快閃記憶體晶粒。因此,SSD控制器每次執行單個操作,而依各種粒度以各種較高位準冗餘模式並行操作該等區域。在一些案例中,快閃記憶體晶粒在相對較短的時間跨度中接收該等寫入命令,從而使快閃記憶體晶粒之至少兩者或更多者能夠至少部分並行地進行各自頁程式化操作。因此,該至少兩個或更多個快閃記憶體晶粒當依各種粒度以各種較高位準冗餘模式並行操作時並行執行複數個操作。
在一些實施例及/或使用案例中,結合調適性較低位準碼率使用依複數種粒度以較高位準冗餘模式進行之並行操作。例如,最初依一R區塊粒度以一RASIE-1模式且使用一第一調適性較低位準碼率操作一NVM之複數個R區塊。接著該等R區塊之一特定R區塊之頁之一者的可靠性變小。作為回應,使用錯誤校正優於該第一調適性較低位準碼率之一第二調適性較低位準碼率操作可靠性較小的讀取單元之一或多者。隨後,可靠性較小的頁的可靠性進一步變小。作為回應,依一R頁粒度以一第二較高位準冗餘模式(錯誤校正優於該第一較高位準冗餘模式)操作包含可靠性較小的頁之R頁。繼續以該第一較高位準冗餘模式且現在依一R頁(而非一R區塊)粒度操作該特定R區塊之其他R頁。繼續以該第一較高位準冗餘模式且依一R區塊粒度操作除該特定R區塊以外的R區塊。因此,即使可靠性較小的頁變得愈來愈不可靠,(雖然可使用的儲存容量減小,但是)仍可使用該可靠性較小的頁。因此,在一些案例中,結合調適性較低位準碼率依複數種粒度以較高位準冗餘模式進行並行操作實現NVM及/或SSD壽命之改良。
其他實施例資訊
在各種實施例中,完全或部分藉由圖1A之一或多個元件(或其等部分)執行圖8、圖10至圖12、圖13A至圖13D、圖14A至圖14B、圖15A至圖15B及圖17之一或多個元件之處理或與該一或多個元件有關 的處理。例如,使用CPU 171之軟體執行能力之一部分以(諸如)藉由以下各者管理較高位準冗餘處理:如圖8圖解說明般引導操作模式之動態轉變;如圖12及圖13A至圖13D圖解說明般引導資料恢復操作;及/或如圖17圖解說明般引導以較高位準冗餘模式之各種粒度進行之並行操作。對於另一實例,資料處理121包含專用於及/或專門針對根據諸如藉由圖11、圖12、圖13A至圖13D及圖15C之任何一或多者圖解說明之計算來計算較高位準冗餘資訊之硬體元件。
例示性實施技術
在一些實施例中,由與由電腦系統進行的處理相容之規範指定藉由可與實施用於NVM(例如,快閃記憶體)之混合粒度較高位準冗餘之一系統、一計算主機快閃記憶體控制器及/或一SSD控制器(諸如圖1A之SSD控制器100)以及提供前述操作之全部或部分的處理器、微處理器、系統單晶片、特定應用積體電路、硬體加速度計或其他電路之部分執行的操作之全部或部分之各種組合。該規範係根據各種描述,諸如硬體描述語言、電路描述、接線對照表描述、遮罩描述或佈局描述。例示性描述包含:Verilog、VHDL、SPICE、SPICE變體(諸如PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各種實施例中,處理包含解譯、編譯、模擬及合成之任何組合以產生、驗證或指定適用於包含在一或多個積體電路上之邏輯及/或電路。根據各種實施例,可根據多種技術來設計及/或製造各積體電路。該等技術包含一可程式化技術(諸如一場可程式化閘陣列或遮罩可程式化閘陣列積體電路)、一半客製化技術(諸如一完全或部分基於胞之積體電路)及一全半客製化技術(諸如實質上經特殊化之一積體電路)、其等之任何組合或可與積體電路之設計及/或製造相容之任何其他技術。
在一些實施例中,藉由執行及/或解譯一或多個程式指令、解譯及/或編譯一或多個源語言/描述性語言陳述式或實施藉由編譯、轉譯 及/或解譯程式設計及/或描述性語言陳述式中表達之資訊產生之二進位指令來執行如其中儲存一指令集之一電腦可讀媒體描述之操作之所有或部分之任何組合。該等語言可與任何標準程式設計或描述性語言(諸如C、C++、Fortran、Pascal、Ada、Java、VBscript及核心介面程式)相容。該等程式指令、該等語言陳述式或該等二進位指令之一或多者視需要儲存在一或多個電腦可讀儲存媒體元件上。在各種實施例中,該等程式指令之一些、所有或各種部分被視為一或多個函式、常式、副常式、內嵌常式、程序、巨集或其等之部分。
結論
在製備內文及圖式時僅僅為方便起見在該描述中作出某些選擇,且除非指示相反的情形,否則該等選擇本質上不應被解釋為傳達關於所述實施例之結構或操作之額外資訊。該等選擇之實例包含:用於圖式編號之指定符之特定組織或指派及用以識別並參考該等實施例之特徵及元件之元件識別符(例如插圖編號或數字指定符)之特定組織或指派。
字詞「包含」係具體旨在解釋為描述無限制範圍之邏輯集之抽象概念且除非後續明確跟著字詞「在......內」,否則並不意謂傳達實際含有。
雖然已針對描述及理解明瞭之目的在某些細節上描述前述實施例,但是本發明並不限於所提供的細節。本發明存在許多實施例。該等揭示之實施例係例示性且並非限制性。
應瞭解,結構、配置及使用之許多變動可能符合該描述,且係在所發佈專利之範疇及申請專利範圍內。例如,互連及功能單元位元寬度、時脈速度及所使用的技術類型可根據各組件區塊中之各種實施例改變。賦予互連及邏輯之名稱僅僅係例示性,且不應被解釋為限制所述概念。流程及流程圖程序、動作及功能元件之順序及配置可根據 各種實施例改變。又,除非具體說明相反的情況,否則所指定的值範圍、所使用的最大值及最小值或其他特定規範(諸如快閃記憶體技術類型;及暫存器及緩衝器中之輸入項或級之數目)僅僅係所述實施例之值範圍、最大值及最小值或規範,有望追蹤實施技術之改良及變化,且不應被解釋為限制。
可採用此項技術者已知的功能等效的技術來代替經描述以實施各種組件、子系統、操作、函式、常式、副常式、內嵌常式、程序、巨集或其等之部分之技術。亦瞭解,可在硬體(例如,一般專用電路)或軟體(例如,經由程式化控制器或處理器之某種方式)中依據實施例相依設計限制及更快處理之技術趨勢(促進先前在硬體中之功能遷移至軟體中)及更高整合密度(促進先前在軟體中之功能遷移至硬體中)選擇性地使能夠實施例之許多功能態樣。各種實施例中之特定變動包含(但不限於):分區之差;不同的外觀尺寸及組態;不同作業系統及其他系統軟體的使用;不同介面標準、網路協定或通信鏈路的使用;及當實施本文中根據一特定應用之獨特設計及業務限制描述之概念時期望的其他變動。
已就遠遠超出所述實施例之許多態樣之最少實施方案所需的細節及環境內容脈絡描述該等實施例。一般技術者應辨識,一些實施例省略所揭示組件或特徵而不變更剩餘元件之間的基本協作。因此應瞭解,實施所述實施例之各種態樣無需所揭示之大部分細節。就可區分該等剩餘元件與先前技術而言,所省略的組件及特徵並未限制在本文所述之概念上。
所有此等設計變動在藉由所述實施例傳達之教示內並無實質上的變化。亦應瞭解,本文所述之實施例對其他計算及網路連接應用具有廣泛的可適用性,且並不限於所述實施例之特定應用或行業。因此本發明被解釋為包含所發佈專利之申請專利範圍之範疇內涵蓋之所有 可能修改及變動。
801‧‧‧開始
802‧‧‧以第一較高位準冗餘模式操作
803‧‧‧失效?
804‧‧‧減小可用空間
805‧‧‧重新配置資料儲存
806‧‧‧恢復/儲存失效的使用者資料
807‧‧‧判定/儲存所修訂之較高位準冗餘資訊
808‧‧‧以第二較高位準冗餘模式操作
809‧‧‧動態轉變操作模式
899‧‧‧結束

Claims (20)

  1. 一種用於操作一記憶體之方法,其包括:以一第一較高位準冗餘模式操作,包括將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係一相同第一大小;以一第二較高位準冗餘模式操作,包括將N個資訊部分儲存在該記憶體之N個各自區域中,該N個各自區域之各者係一相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中;其中該記憶體包括複數個快閃記憶體裝置;其中該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,且該第一大小對應於一區塊;及其中該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,且該第二大小對應於一頁。
  2. 如請求項1之方法,其中至少一些該M個實體裝置係至少一些該N個實體裝置。
  3. 如請求項1之方法,其進一步包括存取完全包括在一特定區域中之一或多個位置,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該存取包括判定該特定區域之大小。
  4. 如請求項1之方法,其進一步包括偵測該M個各自區塊之一者之一失效,且作為回應以該第二較高位準冗餘模式操作至少該失效區塊。
  5. 如請求項4之方法,其中J不等於K。
  6. 一種記憶體系統,其包括:用於根據各自第一及第二較高位準冗餘模式管理記憶體之構件;用於回應於該用於管理記憶體之構件儲存至該記憶體之構件;其中該用於管理記憶體之構件經啟用以引導該用於儲存至記憶體之構件以將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係一相同第一大小;其中該用於管理記憶體之構件經進一步啟用以引導該用於儲存之構件以將N個資訊部分儲存在該記憶體之N個各自區域中,該N個各自區域之各者係一相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一 各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中;其中該記憶體包括複數個快閃記憶體裝置;其中該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,且該第一大小對應於一區塊;及其中該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,且該第二大小對應於一頁。
  7. 如請求項6之系統,其中至少一些該M個實體裝置係至少一些該N個實體裝置。
  8. 如請求項6之系統,其進一步包括用於存取完全包括在一特定區域中之一或多個位置之構件,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該用於存取之構件經啟用以判定該特定區域之大小。
  9. 如請求項6之系統,其中該用於管理記憶體之構件經啟用以偵測該M個各自區塊之一者之一失效,且回應於該偵測而以該第二較高位準冗餘模式操作至少該失效區塊。
  10. 如請求項9之系統,其中J不等於K。
  11. 一種記憶體設備,其包括:較高位準冗餘控制電路,其經啟用以根據各自第一及第二較高位準冗餘模式控制記憶體;儲存電路,其回應於該較高位準冗餘控制電路;其中該較高位準冗餘控制電路經啟用以引導該儲存電路將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係一相同第一大小;其中該較高位準冗餘控制電路經進一步啟用以引導該儲存電路將N個資訊部分儲存在該記憶體之N個各自區域中,該N個各 自區域之各者係一相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中;其中該記憶體包括複數個快閃記憶體裝置;其中該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,且該第一大小對應於一區塊;及其中該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,且該第二大小對應於一頁。
  12. 如請求項11之設備,其中至少一些該M個實體裝置係至少一些該N個實體裝置。
  13. 如請求項11之設備,其進一步包括經啟用以存取完全包括在一特定區域中之一或多個位置之存取電路,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該存取電路經進一步啟用以判定該特定區域之大小。
  14. 如請求項11之設備,其中該較高位準冗餘控制電路經進一步啟用以偵測該M個各自區塊之一者之一失效,且回應於該偵測而以該第二較高位準冗餘模式操作至少該失效區塊。
  15. 如請求項14之設備,其中J不等於K。
  16. 一種其中儲存當由一處理元件執行時使該處理元件執行及/或控制操作之一指令集之非暫態機器可讀媒體,其包括:以一第一較高位準冗餘模式操作,包括將M個資訊部分儲存在記憶體之M個各自區域中,該M個各自區域之各者係一相同第一大小;以一第二較高位準冗餘模式操作,包括將N個資訊部分儲存在該記憶體之N個各自區域中,該N個各自區域之各者係一相同第二大小;其中該M個資訊部分包括各自M-J個資料資訊部分及經計算以保護該各自M-J個資料資訊部分之各自J個冗餘資訊部分;其中該N個資訊部分包括各自N-K個資料資訊部分及經計算以保護該各自N-K個資料資訊部分之各自K個冗餘資訊部分;其中該M個各自區域及該N個各自區域之各者係該記憶體之非重疊區域;其中該第一大小不同於該第二大小;及其中該M個各自區域之各者係在該記憶體之M個實體裝置之一各自實體裝置中,且其中該N個各自區域之各者係在該記憶體之N個實體裝置之一各自實體裝置中;其中該記憶體包括複數個快閃記憶體裝置;其中該M個各自區域對應於該等快閃記憶體裝置之第一一或多者之M個各自區塊,且該第一大小對應於一區塊;及其中該N個各自區域對應於該等快閃記憶體裝置之第二一或多者之N個各自頁,且該第二大小對應於一頁。
  17. 如請求項16之非暫態機器可讀媒體,其中至少一些該M個實體裝置係至少一些該N個實體裝置。
  18. 如請求項16之非暫態機器可讀媒體,其中該等操作進一步包括 存取完全包括在一特定區域中之一或多個位置,該特定區域係該M個各自區域之任一者或該N個各自區域之任一者,該存取包括判定該特定區域之大小。
  19. 如請求項18之非暫態機器可讀媒體,其中該等操作進一步包括偵測該M個各自區塊之一者之一失效,且作為回應以該第二較高位準冗餘模式操作至少該失效區塊。
  20. 如請求項19之非暫態機器可讀媒體,其中J不等於K。
TW102127494A 2012-08-02 2013-07-31 用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體 TWI566254B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/565,752 US8856431B2 (en) 2012-08-02 2012-08-02 Mixed granularity higher-level redundancy for non-volatile memory

Publications (2)

Publication Number Publication Date
TW201413726A TW201413726A (zh) 2014-04-01
TWI566254B true TWI566254B (zh) 2017-01-11

Family

ID=50026653

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102127494A TWI566254B (zh) 2012-08-02 2013-07-31 用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體

Country Status (7)

Country Link
US (2) US8856431B2 (zh)
EP (1) EP2880533A4 (zh)
JP (1) JP6185993B2 (zh)
KR (1) KR102101650B1 (zh)
CN (1) CN107155358B (zh)
TW (1) TWI566254B (zh)
WO (1) WO2014022159A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646429B (zh) * 2017-02-28 2019-01-01 東芝記憶體股份有限公司 Memory system and control method

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2646922A4 (en) 2010-12-01 2015-11-25 Lsi Corp DYNAMIC MANAGEMENT OF HIGHER LEVEL REDUNDANCY MODE WITH INDEPENDENT SILICON ELEMENTS
EP2666091A2 (en) 2011-01-18 2013-11-27 LSI Corporation Higher-level redundancy information computation
US9495288B2 (en) * 2013-01-22 2016-11-15 Seagate Technology Llc Variable-size flash translation layer
US9524113B2 (en) * 2013-05-24 2016-12-20 Seagate Technology Llc Variable redundancy in a solid state drive
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
TWI550628B (zh) * 2014-07-16 2016-09-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR102249810B1 (ko) 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10402319B2 (en) * 2014-07-25 2019-09-03 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
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
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
US10439650B2 (en) * 2015-05-27 2019-10-08 Quantum Corporation Cloud-based solid state device (SSD) with dynamically variable error correcting code (ECC) system
KR102385138B1 (ko) * 2015-10-08 2022-04-12 삼성전자주식회사 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
US10002042B2 (en) * 2015-10-22 2018-06-19 Sandisk Technologies Llc Systems and methods of detecting errors during read operations and skipping word line portions
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
KR102706994B1 (ko) * 2016-09-07 2024-09-19 에스케이하이닉스 주식회사 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
JP6725375B2 (ja) 2016-09-14 2020-07-15 キオクシア株式会社 メモリシステムおよび方法
JP6553566B2 (ja) * 2016-09-23 2019-07-31 東芝メモリ株式会社 メモリシステムおよび制御方法
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10474527B1 (en) 2017-06-30 2019-11-12 Seagate Technology Llc Host-assisted error recovery
US10585749B2 (en) 2017-08-10 2020-03-10 Samsung Electronics Co., Ltd. System and method for distributed erasure coding
US10705906B2 (en) 2018-02-01 2020-07-07 Toshiba Memory Corporation Apparatus and control method thereof
CN108564981B (zh) * 2018-03-27 2021-10-01 深圳忆联信息系统有限公司 一种存储装置数据安全动态监控方法
KR102495915B1 (ko) 2018-04-30 2023-02-03 삼성전자 주식회사 스토리지 장치 및 상기 스토리지 장치를 포함하는 서버
US20190050161A1 (en) * 2018-06-21 2019-02-14 Intel Corporation Data storage controller
CN109541444B (zh) * 2018-10-18 2021-11-02 天津大学 基于混合粒度奇偶校验的集成电路故障注入检测方法
CN109919826B (zh) * 2019-02-02 2023-02-17 西安邮电大学 一种用于图计算加速器的图数据压缩方法及图计算加速器
CN109948186B (zh) * 2019-02-19 2023-04-28 中国科学院微电子研究所 一种汉明码SRAM时序参数Setup特征化建模方法
US11171671B2 (en) * 2019-02-25 2021-11-09 Samsung Electronics Co., Ltd. Reducing vulnerability window in key value storage server without sacrificing usable capacity
TWI695264B (zh) * 2019-05-20 2020-06-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN110209374B (zh) * 2019-05-23 2021-04-20 浙江大学 一种基于racetrack memory的乘法器及其操作方法
JP7302497B2 (ja) * 2020-02-07 2023-07-04 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
CN111767165B (zh) * 2020-06-30 2024-06-14 杭州海康存储科技有限公司 数据处理方法、装置及控制设备
CN112383314B (zh) * 2021-01-12 2021-04-06 杭州阿姆科技有限公司 一种基于raid信息的ldpc纠错方法
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN114637712B (zh) * 2022-03-18 2023-03-10 无锡众星微系统技术有限公司 一种EDFB模式下SAS2SATA Bridge的错误处理方法和装置
CN114817231B (zh) * 2022-06-30 2022-09-30 深圳中科智能技术有限公司 一种冗余数据识别过滤方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287448A1 (en) * 2009-05-05 2010-11-11 Lite-On It Corp. Flash memory device with rectifiable redundancy bit and method of controlling the same
WO2012075200A2 (en) * 2010-12-01 2012-06-07 Sandforce, Inc. Dynamic higher-level redundancy mode management with independent silicon elements

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099484A (en) 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US5247523A (en) 1989-07-12 1993-09-21 Hitachi, Ltd. Code error correction apparatus
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (zh) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JPH07271672A (ja) 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
JPH10509819A (ja) 1994-10-14 1998-09-22 シリコン グラフィックス インク. インターリーブされるキャッシュメモリアレイのインデッキシングとマルチプレキシング
US5666512A (en) 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5862158A (en) 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
US6557123B1 (en) 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
US6516425B1 (en) * 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US7117397B1 (en) 1999-12-15 2006-10-03 Fujitsu Limited Apparatus and method for preventing an erroneous operation at the time of detection of a system failure
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
US6678823B1 (en) 2000-05-01 2004-01-13 Xtec, Incorporated Methods and apparatus for authenticating data stored in semiconductor memory cells
US6594796B1 (en) 2000-06-30 2003-07-15 Oak Technology, Inc. Simultaneous processing for error detection and P-parity and Q-parity ECC encoding
KR100388208B1 (ko) 2001-05-25 2003-06-19 주식회사 하이닉스반도체 반도체 메모리 장치의 리던던시 회로
US7073115B2 (en) 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7246294B2 (en) 2002-04-01 2007-07-17 Intel Corporation Method for iterative hard-decision forward error correction decoding
JP2004152194A (ja) * 2002-10-31 2004-05-27 Ricoh Co Ltd メモリデータ保護方法
US7372731B2 (en) 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
US20050066226A1 (en) * 2003-09-23 2005-03-24 Adams R. Dean Redundant memory self-test
US7206991B2 (en) * 2003-10-15 2007-04-17 Lsi Logic Corporation Method, apparatus and program for migrating between striped storage and parity striped storage
US7237067B2 (en) 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
JP4551740B2 (ja) 2004-11-08 2010-09-29 株式会社東芝 低密度パリティチェック符号復号器及び方法
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
KR100688549B1 (ko) 2005-05-24 2007-03-02 삼성전자주식회사 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US20070143541A1 (en) 2005-12-19 2007-06-21 Lsi Logic Corporation Methods and structure for improved migration of raid logical volumes
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7809994B2 (en) 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US8069397B2 (en) 2006-07-10 2011-11-29 Broadcom Corporation Use of ECC with iterative decoding for iterative and non-iterative decoding in a read channel for a disk drive
US7739576B2 (en) 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US20080126839A1 (en) 2006-09-19 2008-05-29 Satish Sangapu Optimized reconstruction and copyback methodology for a failed drive in the presence of a global hot spare disc
US8001441B2 (en) 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7904780B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
EP2126680A2 (en) 2006-12-06 2009-12-02 Fusion Multisystems, Inc. Apparatus, system, and method for a front-end, distributed raid
US7505319B2 (en) 2007-01-31 2009-03-17 Taiwan Semiconductor Manufacturing Company, Ltd. Method and apparatus for high efficiency redundancy scheme for multi-segment SRAM
US20100107039A1 (en) 2007-02-01 2010-04-29 Kabushiki Kaisha Toshiba Semiconductor memory with reed-solomon decoder
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US7904793B2 (en) 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US8332574B2 (en) * 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US7873779B2 (en) * 2007-05-14 2011-01-18 Qualcomm Incorporated Memory page size auto detection
KR100888842B1 (ko) 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
WO2009072103A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
WO2009072100A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Systems and methods for temporarily retiring memory portions
US7656707B2 (en) 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
US8443260B2 (en) 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
US20090177943A1 (en) 2008-01-09 2009-07-09 Broadcom Corporation Error correction coding using soft information and interleaving
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
EP2592553B1 (en) 2008-03-11 2015-11-18 Agere Systems, Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US7843725B2 (en) 2008-06-11 2010-11-30 Micron Technology, Inc. M+L bit read column architecture for M bit memory cells
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100017649A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
KR101391362B1 (ko) 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
TWI389127B (zh) * 2008-08-01 2013-03-11 Jmicron Technology Corp 快閃記憶體的配置方法
KR100967004B1 (ko) 2008-08-05 2010-06-30 주식회사 하이닉스반도체 플래시 메모리 장치의 동작 제어 방법
US8041984B2 (en) 2008-10-17 2011-10-18 International Business Machines Corporation Redundancy information for adjusting threshold for component failure in a multi-layer system
KR101059673B1 (ko) 2008-12-26 2011-08-25 서울대학교산학협력단 신뢰도 또는 저장 용량을 동적으로 조절하는 저장 장치 및 그 방법
US8065558B2 (en) 2009-03-24 2011-11-22 Lsi Corporation Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
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
JP2011040124A (ja) 2009-08-07 2011-02-24 Toshiba Corp 半導体記憶装置のデータ読み出し方法
US8074013B2 (en) 2009-09-21 2011-12-06 Skymedi Corporation Uniform coding system for a flash memory
US8315092B2 (en) 2010-01-27 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media
KR101633048B1 (ko) 2010-02-25 2016-06-24 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
KR101541040B1 (ko) 2010-03-12 2015-08-03 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
US9189385B2 (en) 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
KR101635506B1 (ko) 2010-03-29 2016-07-04 삼성전자주식회사 데이터 저장 시스템 및 그것의 읽기 방법
US8667361B1 (en) 2010-10-21 2014-03-04 Marvell International Ltd. Systems and methods for performing bit flipping in an LDPC decoder
WO2012058328A1 (en) 2010-10-27 2012-05-03 Sandforce, Inc. Adaptive ecc techniques for flash memory based data storage
US9727414B2 (en) 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
US8719663B2 (en) 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage
EP2666091A2 (en) * 2011-01-18 2013-11-27 LSI Corporation Higher-level redundancy information computation
CN102436852A (zh) * 2012-01-06 2012-05-02 北京航空航天大学 一种纠正固定错误的数据校验与纠错方法
US8839073B2 (en) 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287448A1 (en) * 2009-05-05 2010-11-11 Lite-On It Corp. Flash memory device with rectifiable redundancy bit and method of controlling the same
WO2012075200A2 (en) * 2010-12-01 2012-06-07 Sandforce, Inc. Dynamic higher-level redundancy mode management with independent silicon elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646429B (zh) * 2017-02-28 2019-01-01 東芝記憶體股份有限公司 Memory system and control method
US10402350B2 (en) 2017-02-28 2019-09-03 Toshiba Memory Corporation Memory system and control method

Also Published As

Publication number Publication date
US20150154070A1 (en) 2015-06-04
JP2015524975A (ja) 2015-08-27
EP2880533A1 (en) 2015-06-10
EP2880533A4 (en) 2016-07-13
TW201413726A (zh) 2014-04-01
CN107155358B (zh) 2020-07-10
JP6185993B2 (ja) 2017-08-23
KR102101650B1 (ko) 2020-04-17
US8856431B2 (en) 2014-10-07
WO2014022159A1 (en) 2014-02-06
KR20150041004A (ko) 2015-04-15
US20140040530A1 (en) 2014-02-06
CN107155358A (zh) 2017-09-12
US9323612B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
TWI566254B (zh) 用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體
US11144389B2 (en) Non-volatile memory program failure recovery via redundant arrays
US10613929B2 (en) Fractional redundant array of silicon independent elements
KR101564569B1 (ko) 상위-레벨 리던던시 정보 계산
US9105305B2 (en) Dynamic higher-level redundancy mode management with independent silicon elements
TWI531902B (zh) 矽獨立元件之部分冗餘陣列

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees