TW201241615A - Higher-level redundancy information computation - Google Patents

Higher-level redundancy information computation Download PDF

Info

Publication number
TW201241615A
TW201241615A TW101102013A TW101102013A TW201241615A TW 201241615 A TW201241615 A TW 201241615A TW 101102013 A TW101102013 A TW 101102013A TW 101102013 A TW101102013 A TW 101102013A TW 201241615 A TW201241615 A TW 201241615A
Authority
TW
Taiwan
Prior art keywords
information
data
order
flash memory
units
Prior art date
Application number
TW101102013A
Other languages
English (en)
Inventor
Jeremy Isaac Nathaniel Werner
Leonid Baryudin
Timothy Lawrence Canepa
Earl T Cohen
Original Assignee
Lsi 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 Lsi Corp filed Critical Lsi Corp
Publication of TW201241615A publication Critical patent/TW201241615A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

Description

201241615 六、發明說明: 【發明所屬之技術領域】 需要快閃記憶體儲存技術的進步以提供在效能效率及 使用之效用方面的改良。 在隨附應用程式資料工作表、請求或傳送件(若存在, 在適用時)中進行本申請案之優先權權利主張。在本申請 案之類型允許之範圍内,出於所有目的,本申請案以引用 之方式併入以下申請案,在進行本發明時,以下所有申請 案與本申請案共同擁有: 在2011年1月18日申請、第一發明人為Jeremy Nathaniel Werner且題為「Higher_Levei Redundancy Information Computation」之美國臨時申請案(檔案號 碼8?-10-14及第 61/433,918號); 在2011年3月11日申請 '第一發明人為Ha〇 zh〇ng且題 為「LDPC Erasure Decoding for Flash Memories」之 PCT申請案(檔案號碼SF-10-01PCTB及第 PCT/US11/28244號);及 在2011年10月26曰申請、第一發明人為Yan Li且題為 Adaptive ECC Techniques for Flash Memory Based
Data Storage」之PCT申請案(檔案號碼SF_10_〇3PCT及 第 PCT/US11/57914號)。 【先前技術】 除非明確地識別為公開已知或熟知,否則技術及概念在 本文中之提及(包括出於内容脈絡(c〇ntext)、定義或比較之 161613.doc 201241615 目的)不應理解為承認此等技術及概念先前公開已知或以 其他方式為先前技術之部分。出於所有目#,本文中引證 之所有參考文獻(若存在)(包括專利、專利中請案及公開 案)的全文以引狀方式併人本文中(無論是特定地併入抑 或未特定地併入)。 【實施方式】 本發明可以眾多方式實施為(例如)程序製品裝置、 系統、物質組成及諸如電腦可讀儲存媒體(例如,光學及/ 或磁性大容量儲存器件(諸如,磁碟)、具有非揮發性儲存 器(諸如’快閃記憶體儲存器)之積體電路中的媒體)之電腦 可讀媒體’或經由光學或電子通信鍵路發送程式指令的電 腦網路Μ實施方式]提供對實現在上文[發明所屬之技術領 域]中識別的在成本、有利性、效能、效率及使用效用方 面之改良的本發明之-或多個實施例的闡述]實施方式] I括促進對[實施方式]之剩餘部分之理解的引言。引言包 括根據本文中描述之概念的系統、方法、製品及電腦可讀 媒體中之-或多者的實例實施例。如結論中較詳細地論 述,本發明涵蓋在所發佈巾請專利範圍之料㈣所有可 能修改及變化。 文連同說明本發明之選定細節的附圖一起提供本發明 之或多個實施例的[實施方式]。結合實施例描述本發 將本文中之實施例理解為僅例示性的,本發明明確地 不限於本文中之實施例中的任一者或全部或受其所限,且 本發月'函蓋眾多替代、修改及等效物。為避免闞述單調’ 161613.doc 201241615 多種詞語標記(包括(但不限於):第―、最後某些各 種另卜其他特定、選擇、一些,及值得注意的)可 應用於實施例之單獨集合;如本文中所使用,此等標記明 確地不意謂傳達品質或任何形式之偏好或偏見,而僅用以 方便地區別該等單獨集合。所揭示程序之一些操作的次序 可在本發明之範嘴内更改。無論在何處多個實施例用以描 述程序方法及/或程式指令特徵之變化,均預期根據預 定或動態判定之準則執行分別對應於複數個該多個實施例 之複數個操作模式中之—者的靜態及/或動態選擇的其他 實施例。在以下描述中陳述眾多特定細節以提供對本發明 ==解。出於舉例之目的而提供該等細節且本發明可 在無該等細節中之―此+入 ☆或全部的,清況下根據申請專利範圍 技術領域巾Γ錢之目的’未詳細料在與本發明有關之 難::已知的技術資料,使得不會不必一 ^ 引言 :括此?丨言僅用以促進對[實施方式】之更快速理解·本 不限於引言(包括明確實例若存 令,舲筏阳达 右存在)令所呈現之概 =係’因為任㈣言段落必定為整個主題之簡略見解且. 不意谓為詳盡或限制性描 於僅某此杳I 平例师。以下弓1言提供關 多其他hi 空間及組織限制的概述資訊。存在許 書 Μ列’包括申請專利範圍最終將描綠 說 明書之剩餘部分争論述的彼等實施例。 在整個說 縮略字 16l6l3.doc 201241615 此處定義之各種速記縮寫(例如,縮略字)中之至少一些 指代本文中所使用之某些元件。 縮略字 描述 AHCI 進階主機控制器介面 API 應用程式介面 ΑΤΑ 進階附接技術(AT附接) BCH 搏斯喬赫里霍克文黑姆(Bose Chaudhuri Hocquenghem) CD 緊密光碟 CF 緊密快閃記憶體 CMOS 互補金氧半導體 CPU 中央處理單元 CRC 循環冗餘檢查 DAS 直接附接儲存 DDR 雙資料速率 DMA 直接記憶體存取 DNA 直接NAM)存取 DRAM 動態隨機存取記憶體 DVD 數位影音/視訊光碟 DVR 數位視訊記錄器 ECC 錯誤校正碼 eMMC 嵌入式多媒體卡 eSATA 外部串列進階附件技術 GPS 全球定位系統 HDD 硬碟機 I/O 輸入/輸出 IC 積體電路 IDE 整合驅動電子裝置 161613.doc 201241615 縮略字 描述 JPEG 聯合圖像專家組 LAN 區域網路 LBA 邏輯區塊位址 LDPC 低密度同位檢查 LPN 邏輯頁號 MLC 多位階晶胞 MMC 多媒體卡 MPEG 動畫專家組 NAS 網路附接儲存 NCQ 原生命令佇列 NVM 非揮發性記憶體 ONA 最佳化NAND存取 ONFI 開放式NAND快閃記憶體介面 OS 作業系統 PC 個人電腦 PCIe 快速周邊組件互連(快速PCI) PDA 個人數位助理 PHY 實體介面 POS 銷售點 RAID 廉價/獨立磁碟冗餘陣列 RASIE 矽獨立元件冗餘陣列 RS 里德-所羅門 SAN 儲存附接網路 SAS 串列附接小型電腦系統介面(串列SCSI) SATA 串列進階附接技術(串列ΑΤΑ) SCSI 小型電腦系統介面 SD 安全數位 161613.doc 201241615 縮略字 描述 SDR 單資料速率 SLC 單位階晶胞 SMART 自我監視分析及報告技術 SRAM 靜態隨機存取記憶體 SSD 固態磁碟/硬碟 UFS 統一快閃記憶體儲存 USB 通用串列匯流排 W 虛擬功能 WAN 廣域網路 NAND快閃記憶體使用浮動閘極電晶體之陣列來儲存資 訊。在SLC技術中,啟用每一位元晶胞(例如,浮動閘極電 晶體)以儲存一個資訊位元。在MLC技術中,啟用每一位 元晶胞以儲存多個資訊位元。隨著製造技術(例如,CMOS 技術)按比例縮小,每一浮動閘極儲存更少電子。此外, 隨著儲存容量及密度增加,每一位元晶胞儲存更多位元。 因此,藉由較小電壓範圍來表示儲存於位元晶胞中之值。 感測之不確定性及/或所儲存電子之量隨時間的改變增加 資料被錯誤儲存或讀取之機率。一或多種冗餘及/或ECC技 術之使用(例如,在較低階層處)使得能夠自NAND快閃記 憶體正確擷取否則會損毀之資料,從而在一些使用情況下 克服前述困難中之一些。 一些類型之SSD使用快閃記憶體來提供非揮發性儲存(例 如,快閃記憶體在不施加電力之情況下留存資訊)。一或 多種ECC及/或冗餘技術之使用(例如,在較高階層處)使得 161613.doc 201241615 能夠自I·夬閃s己憶體正確摘取否則會損毀之資料,及/或甚 至在一或多個快閃記憶體元件間歇地或永久地失敗時實現 SSD之正確系統階層操作。 舉丨而=SSD控制器實現具有獨立矽元件之動態較高 階冗餘模式管理以在一或多個聰(例如,快問記憶體)元 件在。卩刀地由控制器實施之SSD之操作期間失敗時提供柔 陡(graceful)降級。續取NVM之一部分。若使用較低階冗 餘及/或錯誤杈正(諸如,根據一或多種ecc技術)不可校正 之錯誤發生,則較高階錯誤校正(諸如,根據__或多種 RASIE技術及/或動態較高階冗餘模式管理技術)用以嘗試 校正該錯1若财㈣件中之__者的失敗係藉*較低階及/ 或較高階錯誤校正及/或藉由其他技術(諸如’由nvm元件 中之或多者報告的失敗狀態)而偵測到,則較高階錯誤 校正自在當前模式中操作動態地轉變至在新模式中操作。 該轉變包括減少SSD上可得之可用㈣、重新配置ssd之 資料健存、恢復/儲存失敗之使用者資料(若可能),及判定/ 餘存修訂之較高階錯誤校正t訊中之—或多者。操作接著 在新模式中繼續。若藉由現於新模式中操作之較高階錯誤 校正而制到NVM元件令之另一者的另一失敗,則進行至 f 一較高階錯誤校正模式之另一轉變。寫入nvm係根據較 局階錯誤校正操作模式,包括根據較高階錯誤校正操作模 式及寫入資料判定/儲存較高階錯誤校正資訊。 上在-些實施例及/或使用情況下,判定/儲存較高階錯誤 校正資訊係根據較高階冗餘資訊之運算。較高階冗餘資訊 I6I613.doc •10- 201241615 運算使得ssd控制器能夠提供較高階冗餘能力以在非揮發 性咖(例如’快閃記憶體)元件在部分地由控制器實施 之SSD的歸㈣失敗的内容脈絡巾㈣可㈣作。經由 待由較高階冗餘資訊保護之資料(例如,等量區⑽㈣之 :分中的所有頁面之互斥或(職)使用同位編碼來運算較 尚階冗餘資訊之第-部分^用加權和技術運算較高階冗 餘資訊之第二部分,當運算加權和時該部分中之每一頁面 曰派唯一非零「索引」作為權重。在有限域(諸如㈤a 域’或諸如整數模P’纟中P為質數)上執行算術運算。 較高階冗餘資訊之部分可以任何次序(諸如由對nvm元 件執行之或多個讀取操作之完成次序所判定的次序或 諸如基於自NVM元件傳回及/或可得到資料之次序的次序) 運算,從而在各種實施例中使得能夠減少或消除緩衝。在 各種實施财,任何:欠序之可運算性使得㈣使用相對很 少臨時及/或中間緩衝及/或狀態運算恢復資料值及/或自寫 入退出。可藉由(諸如)由可用專用硬體元件判定之任何並 列度運算較而階冗餘資訊之部分,從而在各種實施例中使 得能夠減少延時處理及/或減少記憶體(例如,NVM)頻寬使 用。 在一些實施例中,1/0器件(諸如,SSD)包括SSD控制 器。SSD控制器充當SSD之主機介面與nvm之間的橋接 器’且執行經由SSD之主機介面自計算主機發送之主機協 定之命令。該等命令中之至少一些指導SSD寫入及讀取具 有分別自計算主機發送及發送至計算主機之資料的NVM。 161613.doc 201241615 在其他實施例中,啟用SSD控制器以使用映射來在主機協 定之LBA與NVM之實體儲存位址之間進行轉譯。在其他實 施例中,該映射之至少一部分用於1/〇器件之私用儲存(計 算主機不可見)。舉例而言,不可由計算主機存取之 之部分由I/O器件使用以管理對日誌 '統計資料或其他私 用資料的存取。 在一些實施例中,存取NVM中之變化大小之配量的壓縮 資料在一些使用情況下提供改良之儲存效率。舉例而言, SSD控制器接收來自計算主機之(未壓縮)資料(例如,與磁 碟寫入命令有關),壓縮該資料,且將經壓縮之資料儲存 至快閃記憶體中。回應於來自計算主機之後續請求(例 如’與磁碟讀取命令有關),SSD_器自快閃記憶體讀取 經麼縮之資料’對經壓縮之資料進行解壓縮,且將經解壓 縮之資料提供至計算主機。根據變化大小之配量將經壓縮 之資料儲存於快閃記憶體中,該配量大小歸因於(例如)關 於各種資料之壓縮演算法、操作模式及壓縮效率而變化。 咖控制器部分地藉由查閱(⑶nsuu)所包括之映射表對資 料進行解壓縮以判定標頭儲存於快閃記憶體中之何處。 :D控制器剖析自快閃記憶體獲得之標頭以判定適當(經壓 =)資料儲存於快閃記憶體中之何處。則控制器解壓縮 至^閃記憶體之適當資料來產生經解壓縮之資料以提供 體)與解主壓。在本中請案中,解_ (U_mPreSS)(及其變 兴解壓(decomPress)(及其變趙)同義。 在各種實施例中,咖控制器包括用於與計算主機介接 t6I613.doc 12 201241615 之主機介面、歸與NVM(諸如,快閃記㈣)介接之介 面,及用於控制該等介面且執行(及/或控制執行之各種態 樣)壓縮及解壓縮以及較低階錯誤校正、較高階錯誤校^ 及具有獨立#元件之動態較高階冗餘模式管理的電路。 根據各種實施例,一些主機介面與以下各者中之一或多 者相容·· USB介面標準、(^介面標準、ΜΜ〇介面標準^ eMMC介面料、(Thunderb〇ltM面標準、则介面把 準、SD介面標準、記憶棒介面標準、xD圖像卡介面‘ 準、IDE介面標準、SATA介面標準、scsi介面標準、sas 介面標準,及PCIe介面標準。根據各種實施例,計算主機 為以下各者中之所有或任何部分:電腦、工作站電腦、伺 服器電腦、儲存伺服器、SAN、NAS器件、DAS器件、儲 存設備、PC、膝上型電腦、筆記型電腦、迷你筆記型電 腦、平板型器件或電腦、超輕薄筆記型(ultrabook)電腦' 電子閱讀器件(諸如,電子閱讀器)、PDA、導航系統、(手 持i )GPS器件、’汽車控制系统、、汽車媒體控制系統或電 腦印表機、影印機或傳真機或一體式器件、p〇s器件、 收銀機、媒體播放器、電視、媒體記錄器、DVR、數位相 機、蜂巢式手機、無線電話手機,及電子遊戲機。在一些 實施例中,介接主機(諸如,SAS/SATA橋接器)操作為計算 主機及/或操作為至計算主機之橋接器, 在各種實施例中’ SSD控制器包括一或多個處理器。該 等處理器執行韌體以控制及/或執行SSD控制器之操作。 SSD控制器與計算主機通信以發送及接收命令及/或狀態以 161613.doc 201241615 及資料。計算主機執行作業系統、驅動程式及應用程式中 之一或多者。由計算主機與SSD控制器進行之通信視情況 及/或選擇性地經由驅動程式及/或經由應用程式進行。在 第實例中’至SSD控制器之所有通信係經由驅動程式進 行’且應用程式將較高階命令提供至驅動程式,驅動程式 將該等命令轉譯成用於SSD控制器之特定命令。在第二實 例中,驅動程式實施旁路模式且應用程式經啟用以經由驅 動程式將特定命令發送至SSD控制器。在第三實例中, PCIe SSD控制器支援一或多個虛擬功能(VF),從而使得應 用程式(一旦經組態)能夠繞過驅動程式直接與ssd控制器 通信。 根據各種實施例,一些SSD與由磁性及/或光學非揮發性 儲存器(諸如,HDD、CD光碟機及DVD光碟機)使用之外形 尺寸電介面及/或協定相容。在各種實施例中,SSD使用 零或多個同位碼、零或多個尺8碼、零或多個BCH碼、零或 多個維特比(Viterbi)碼或其他格形碼(tre出s c〇de)及零或多 個LDPC碼之各種組合。 實例實施例 在結束[實施方式]之引言時,以下内容為實例實施例之 集合,包括經明確列舉為「EC」(實例組合)之至少一些實 例貫施例,提供根據本文中描述之概念的多種實施例類型 之額外描述;此等實例不意謂相互排斥、詳盡或限制性 的;且本發明不限於此等實例實施例,而是涵蓋在所發佈 申請專利範圍之範疇内的所有可能修改及變化。 161613.doc • 14 · 201241615 EC1)—種系統,其包含: 用於至少部分地基於資料儲存資訊之複數個單元來運 算較尚階;ή:餘f訊之―或多個單元的構件;且 =用:運算之該構件包含用於累加資料健存資訊之 該广十之母一者的一各別非零唯一怪定值 儲存資訊之該等單元之内容的-加權和作為較高階冗餘 資訊之該等早凡之至少一部分的構件。 、 叫如之系、统’其進一步包含用於將較高階冗餘資 献㈣早疋及貧料儲存資訊之該等單元儲存於—或多個 非揮發性記憶體器件之部分中的構件。 EC3)如EC2之系統,纟中該等部分包含該等非揮發性記 憶體器件之-或多個整數數目個頁面’且該等非揮發性記 憶體器件包含一或多個快閃記憶體。 广4)如EC1之系統’其中該等單元對應於—或多個快閃 記憶體之一或多個整數數目個頁面。 EC5)如EC1之系統,λ中較高階冗餘資訊之該等單元不 可運算為由資料儲存資訊之該等單元的相應位元組之一產 生多項式進行之一多項式除法之一餘項。 EC6)如EC1之系統,纟中用於累加之該構件經啟用以按 增量方式來累加該加權和之至少_部分。 EC7)如EC6之系統,其中用於累加之該構件經進一步啟 用以並列地處理資料儲存資訊之該等單元中的—個以上 者。 EC8)如EC7之系、统,其中該等單元中之該一個以上者對 •15- 161613.doc 201241615 應於一或多個快閃記憶體之一或多個整數數目個頁面。 EC9)如EC1之系統,其中用於累加之該構件經啟用以按 對應於由一或多個快閃記憶體完成讀取操作之一次序的一 次序來累加該加權和之至少一部分。 E C i 0)如E C i之系統,其中用於累加之該構件經啟用以 按對應於自一或多個快閃記憶體傳回資料之一次序的一次 序來累加該加權和之至少一部分。 ECU)如ECU)之系統’其中所傳回之資料之該次序係至 少部分地基於可自該-或多個快閃記憶體得到資料之一次 序。 EC12)如EC1之系統,其中用於累加之該構件經啟用以 並列地累加該加權和之至少_部分。 EC13)如EC1之系統,其中用於累加之該構件經啟用以 並列地累加該加權和之至少—部分,該部分對應於可自一 或多個快閃記憶體之相應頁㈣取的f料儲存資訊之該等 單元的元素。 EC14)如EC13之系統, 該等相應頁面之讀取操作 其中該等元素係至少部分地藉由 之一完成次序來判定。 其進一步包含用於判定該等部分 EC15)如EC2之系統 中之一或多者在被讀Α " 碩取時疋否具有一較低階錯誤校正失敗 的構件。 EC16)如EC2之系統 中之一或多者的構件。 EC17)如EC1之系統 其進一步包含用於讀取該等部分 其中用於累加一加權和之該構件 161613.doc 201241615 經啟用以將資料儲存資訊之該 , 平7^中之至多兩者撰擇,hi 地排除在該加權和之外。 有遊擇r生 EC18)如EC17之系 'w ώ π» π爽理用於累Λσ 之該構件的結果以尋回該資料儲 …、 元的構件。 貪訊之該等經排除之單 EC19)如EC17之系統, 按增量方式及按對應於由 成讀取操作之一次序的一 分。 八中用於累加之該構件經啟用以 或夕個非揮發性記憶體器件完 次序來累加該加權和之至少一部 EC20)如EC17之系統,其中用於 用於累加之該構件經啟用以 按增置方式及按對應於自-或多個非揮發性記憶體器件傳 回資料之一次序的一次序來累加該加權和之至少一部分。 EC21)如EC20之系統’其中所偯问夕签上丨 Τ所得回之貧料之該次序係至 少部分地基於可自該一或多個韭你 飞夕個非揮發性記憶體器件得到資 料之一次序。 EC22)如EC1之系統,其中齡古ρ比” — 敉自几餘資訊之該等單元 及資料儲存資訊之該等單元對庳 .. 平耵應於一或多個記憶體之各別 頁面。 EC23)如EC2m其中該等快閃記憶體係由複數個 晶粒組成,㈣等各別頁面中之每—者係在該等晶粒中之 一唯一者上。 EC24)如奶之系統,其進—步包含詩至少部分地回 應於來自-計算线之請求而將較高階職f訊之該等單 元及資料儲存資訊之該等單讀存於—或多個快閃記憶體 161613.doc •17· 201241615 之部分中的構件。 EC25)如EC24之系統,其進一步包含用於使該等請求與 該計算主機介接之構件。 EC26)如EC25之系統,其中用於使該等請求與該計算主 機介接之該構件與一儲存介面標準相容。 EC27)如EC24之系統,其中用於儲存之該構件包含用於 與該等快閃記憶體介接之構件。 EC28)如EC27之系統,其中用於與該等快閃記憶體介接 之該構件包含一快閃記憶體介面。 EC29)如EC24之系統,其進一步包含: 用於使該等請求與該計算主機介接之構件;且 其中用於儲存之該構件包含用於與該等快閃記憶體介 接之構件。 EC30)如EC29之系統,其中該等構件係共同地實施於一 單一積體電路(1C)中。 EC31)如EC29之系統,其中該等構件係包含於一固態磁 碟(SSD)中。 EC32)如EC24之系統,其進一步包含該計算主機之所有 或任何部分。 EC33)如EC3之系統,其進一步包含該等快閃記憶體中 之至少一者。 EC34)—種方法,其包含: 至少部分地基於資料儲存資訊之複數個單元來運算較 高階冗餘資訊之一或多個單元;且 161613.doc -18 - 201241615 其中料算包含累加資料儲存資訊 一者的—各別非零唯―後定值乘以資料儲存資訊之該等 早几之内容的-加權和作為較高階冗餘資訊之該等單元 之至少一部分。 EC35)如EC34之方法 之該等單元及資料儲存 揮發性記憶體器件之部 ’其進一步包含將較高階冗餘資訊 資訊之該等單元儲存於一或多個非 分中。 其中該等部分包含該等非揮發性 EC36)如EC35之方法, ’且該等非揮發性 記憶體器件之一或多個整數數目個頁面 記憶體器件包含一或多個快閃記憶體。 EC37)如EC34之方法,其中該等單 閃記憶體之一或多個整數數目個頁面 元對應於一或多個快 〇 EC38)如EC34之方法,其中較高階冗餘資訊之該等單元 不可運算為由資料儲存資訊之該等單元的相應位元組之一 產生多項式進行之一多項式除法之一餘項。 EC39)如EC34之方法’其中該累加包含以增量方式來累 加該加權和之至少一部分。 EC40)如EC39之方法,其中該累加進一步包含並列地處 理資料儲存資訊之該等單元中的一個以上者。 EC41)如EC40之方法,其中該等單元中之該一個以上者 對應於一或多個快閃s己憶體之一或多個整數數目個頁面。 EC42)如EC34之方法,其中該累加包含以對應於由一或 多個快閃記憶體完成讀取操作之一次序的一次序來累加該 加權和之至少一部分。 161613.doc -19· 201241615 EC43)如EC34之方法,其中該累加包含以對應於自一或 多個快閃記憶體傳回資料之一次序的一次序來累加該加權 和之至少一部分。 EC44)如EC43之方法,其中所傳回之資料之該次序係至 少部分地基於可自該一或多個快閃記憶體得到資料之一次 序。 EC45)如EC34之方法’其中該累加包含並歹“也累加該加 權和之至少一部分。 EC46)如EC34之方法,其中該累知^ 6人从… T忑系加包含並列地累加該加 權和之至少一部分’該部分對應於可自一. 曰次夕個快閃記憶 體之相應頁面擷取的資料儲存資訊之該等單元的元素。 EC47)如EC46之方法,其中該等元素係至少部分地藉由 該專相應頁面之讀取操作之一完成次序來判定。 EC48)如EC35之方法,其進-步包含判定該 一或多者在被讀取時是否具有一較低階錯誤校正失敗。 EC49)如EC35之方法,其進一步包含讀取該等部分中之 一或多者。 EC50)如EC34之方法,其中該累加—加權和係將資料儲 存資訊之該等單it中之至多_纟選擇性地排除在該加權和 之外。 EC51)如EC50之方法,其進一#包含處理該累加之結果 以尋回該資料儲存資訊之該等經排除之單元。 u EC52)如EC50之方法,其中該累加包含以增量方式及以 對應於由一或多個非揮發性記憶體器件完成讀取操作之j 161613.doc *20· 201241615 次序的一次序來累加該加權和之至少一部分。 EC53)如EC5G之方法’其中該累加包含以增量方式及以 對應於自一或多個非揮發性記憶體器件傳回資料之一次序 的一次序來累加該加權和之至少一部分。 EC54)如EC53之方法’其中所傳回之資料之該次序係至 少部分地基於可自該-或多個非揮發性記憶體器件得到資 料之一次序。 EC55)如EC34之方法’其中較高階冗餘f訊之該等單元 及資料儲存資訊之料單元對應於_或多個快閃記憶體之 各別頁面。 觀)如们5之方法,其中該等快閃記憶體係由複數個 晶粒組成’且該等各別頁面中之每__者係在該等晶粒中之 一唯一者上。 EC57)如EC34之方法,其進一步包含 ’匕s主)部分地回應於 來自-計算主機之請求而將較高階冗餘資訊之該等單元及 資料儲存資訊之該等單元儲存於—或多個快閃記憶體之部 分中。 EC58)如EC57之方法’其進一步包含使該等請求與該計 算主機介接。 EC59)如EC58之方法,其巾該使料請求與該計算主機 介接與一儲存介面標準相容。 快閃記憶 EC60)如EC57之方法,其中該儲存包含與該等 體介接。 Λ 關)如職之方法,其中該與該等快閃記憶體介接包 161613.doc •21· 201241615 含一快閃記憶體介面。 EC62)如EC57之方法,其進一步包含: 至少部分地經由計算主機介面邏輯電路來使該等請求 與該計算主機介接;且 其中該儲存係至少部分地經由經啟用以與該等快閃記 憶體介接之快閃記憶體介面邏輯電路。 EC63)如EC62之方法’其中該計算主機介面邏輯電路及 該快閃記憶體介面邏輯電路係共同地實施於—單一積體 路(1C)中。 EC64)如EC62之方法,其中該計算主機介面邏輯電路及 ^快閃記憶體介面邏輯電路係包含於一固態磁碟(卿 EC65)如EC57之方法’其進__步包含操作 所有或任何部分。 丨异王機之 )如EC36之方法’其進一步包含操作該等快 體中之至少一者。 EC67)—種系統,其包含: 運算邏輯電路,其έ 具4啟用以至少部分地基於 資訊之複數個單元來 了叶儲存 元;且 疋來運异較尚階冗餘資訊之-或多個單 其中該運算邏輯電 電路經啟用以累“ 輯電路,該累加邏輯 電路、!啟用以累加資料儲存㈣㈣ 铒 的一各別非零唯一恆…## 达 中之母一者 之 〜内容的一加權和作Α Μ專單疋 作為較冋階几餘資訊之該等單元之至 161613.doc •22· 201241615 少一部分 步包含經啟用以將較高階 資訊之該等單元儲存於一 分中的邏輯電路。 EC68)如EC67之系統,其進_ 冗餘資訊之該等單元及資料健存 或多個非揮發性記憶體器件之部 EC69)如EC68之系統,其中該等料包含該等非揮發性 記憶體ϋ件之-或多個整數數目個,且料非揮發性 記憶體器件包含一或多個快閃記憶體。 EC70)如EC67之系統,其中該等單元對應於一或多個快 閃記憶體之一或多個整數數目個頁面。 EC71)如EC67之系統’其中較高階冗餘資訊之該等單元 不可運算為由資料儲存資訊之該等單元的相應位元組之— 產生夕項式進行之一多項式除法之一餘項。 EC72)如EC67之系統,其中該累加邏輯電路經進一步啟 用以按增量方式來累加該加權和之至少一部分。 EC73)如EC72之系統,其中該累加邏輯電路經進一步啟 用以並列地處理資料儲存資訊之該等單元中之一個以上 者。 EC74)如EC73之系統,其中該等單元中之該—個以上者 對應於一或多個快閃記憶體之一或多個整數數目個頁面。 EC75)如EC67之系統,其中該累加邏輯電路經進一步啟 用以按對應於由一或多個快閃記憶體完成讀取操作之一次 序的一次序來累加該加權和之至少一部分。 -· EC76)如EC67之系統,其中該累加邏輯電路經進一步啟 用以按對應於自一或多個快閃記憶體傳回資料之—次序的 161613.doc •23- 201241615 一次序累加該加權和之至少一部分β EC77)如EC76之系統,其中所傳回之資料之該次序係至 少部分地基於可自該一或多個快閃記憶體得到資料之一次 序。 EC78)如EC67之系統,其中該累加邏輯電路經進一步啟 用以並列地累加該加權和之至少—部分。 EC79)如EC67之系統,其中該累加邏輯電路經進一步啟 用以並列地累加該加權和之至少一部分,該部分對應於可 自一或多個快閃記憶體之相應頁面擷取的資料儲存資訊之 該等單元的元素。 EC80)如EC79之系統,其中該等元素係至少部分地藉由 該等相應頁面之讀取操作之一完成次序來判定。 EC81)如EC68之系統,其進一步包含經啟用以判定該等 部分中之一或多者在被讀取時是否具有一較低階錯誤校正 失敗的邏輯電路。 EC82)如EC68之系統,其進一步包含經啟用以讀取該等 部分中之一或多者的邏輯電路。 EC83)如EC67之系統,其中該累加邏輯電路經進一步啟 用以將資料儲存資訊之該等單元中的至多兩者選擇性地排 除在該加權和之外。 EC84)如EC83之系統,其進.一步包含經啟用以處理該累 加邏輯電路之結果以尋回該資料儲存資訊之該等經排除之 單元的邏輯電路》 EC85)如EC83之系統,其中該累加邏輯電路經進一步啟 161613.doc •24- 201241615 用以按增量方式及按對應於由一或多個快閃記憶體器件% 成讀取操作之一次序的一次序來累加該加權和、— 夕 部 分0 EC86)如EC83之系統,其中該累加邏輯電路經進一步啟 用以按增量方式及按對應於自一或多個快閃記憶體器件傳 回資料之一次序的一次序來累加該加權和之至少—部八 EC87)如EC86之系統,其中所傳回之資料之該次序係至 少部分地基於可自該-或多個非揮發性記憶體器件得到資 料之一次序。 各別頁面 EC88)如EC67之系統,其中較高階冗餘f訊之該等單元 及資料儲存資訊之該等單元對應於一或多個快閃記憶體之 叫獅之系統,其中該等快閃記憶體係由複數個 晶粒組成,且該等各別頁面中之每—者係在該等晶 一唯一者上。 步包含快閃儲存器邏輯電 用以至少部分地回應於來 冗餘資訊之該等單元及資 或多個快閃記憶體之部分 EC90)如EC67之系統,其進_ 路’該快閃儲存器邏輯電路經啟 自一計算主機之請求而將較高階 料儲存資訊之該等單元儲存於— 中。 删)如職之系統,其進一步包含計算主機介面邏輯 電路,該計算主機介面賴電路經啟Μ使 計算主機介接》 胃表/、該 EC92)如EC91之线,其巾該計算主機介面邏輯電路與 161613.doc •25· 201241615 一儲存介面標準相容。 EC93)如EC90之系統,其中該快閃儲存器邏輯電路包含 經啟用以與該等快閃記憶體介接的快閃記憶體介面邏輯電 路。 EC94)如EC93之纟,统’其中該快閃記憶體介面邏輯電路 包含一快閃記憶體介面。 EC95)如EC90之系統,其進一步包含: 計算主機介面邏輯電路,其經啟用以使該等請求與該 計算主機介接;且 ' ~ 其中該快閃儲存器邏輯電路包含經啟用以與該等快閃 記憶體介接的快閃記憶體介面邏輯電路。 EC96)如EC95之系統,其中呤斗瞀+边人 具中該计算主機介面邏輯電路及 該快閃記憶體介面邏輯電路係共同地實施於一 路(1C)中。 預篮1; EC97)如EC95之系統,其中該計算主機介面邏 ^快閃記憶體介面邏輯電路係包含於-固態磁碟(SSD) EC98)如EC90之系統,t抽 此a a 九其進一步包含該計算主機之所右 或任何部分。 有 EC99)如EC69之系統,其 之至少一者。 …亥等快閃記憶體中 :cioo):儲存有—指令集之有形電腦可讀 指令在I處理元件執行時使該處理元件 = 者之操作: 匕3以下各 161613.doc -26· 201241615 管理至少部分地基於資 算較一資訊之複數個單元來運 =該:算包含累加資料儲存資訊之該等單元中之每 單元之内容的一加權和作為上:資㈣存資訊之該等 之至少一部分。乍為較阿階冗餘資訊之該等單元 一e::ec100之有形電腦可讀媒體,其中該等操作進 'i τ理將較高階冗餘f訊之該等單元及資料健存資 =該等單元儲存於一或多個非揮發性記憶體器件之部分
Ecm)如EC1G1之有形電腦可讀媒體,其中該等部分包 含該等非揮發性記憶體器件之一或多個整數數目個頁面, 且該等非揮發性記憶體器件包含-或多個㈣記憶體。 EC1〇3)如EC1〇〇之有形電腦可讀媒體,其中該^單 應於一或多個快閃記憶體之一或多個整數數目個頁面。 EC104)如EC100之有形電腦可讀媒體,苴 τ衩n階冗餘 資訊之該等單元不可運算為由資料儲存資訊之該等單元、 相應位元組之一產生多項式進行之一多項式除法 _ 、 < 一餘 EC105)如EC100之有形電腦可讀媒體,其中 六 丁 6茨系加包含 以增量方式來累加該加權和之至少一部分。 EC106)如EC105之有形電腦可讀媒體,其中該累加進 步包含並列地處理資料儲存資訊之該等單元中之—個、 者0 161613.doc -27- 201241615 五(:107)如£(:106之有形電腦可讀媒體,其中 、τ必寻單元中 之該一個以上者對應於一或多個快閃記憶體之__ ‘ < —或多個整 數數目個頁面。 EC108)如EC100之有形電腦可讀媒體,其. 穴τ碌系加包含 以對應於由一或多個快閃記憶體完成讀取操作之一 a序 一次序來累加該加權和之至少一部分。 EC109)如EC100之有形電腦可讀媒體,其中該累加包人 以對應於自一或多個快閃記憶體傳回資料一·Α 乃*的一1 序來累加該加權和之至少一部分。 EC110)如EC109之有形電腦可讀媒體,其中所傳回之資 料之該次序係』少部分地基於可自肖—或多㈣閃記憶體 得到資料之一次序。 EC111)如EC100之有形電腦可讀媒體,其中該累加包含 並列地累加該加權和之至少一部分。 EC112)如EC100之有形電腦可讀媒體,其中該累加包含 並列地累加該加權和之至少一部分,該部分對應於可自一 或多個快閃記憶體之相應頁面棟取的資料儲存資訊之該等 單元的元素。 EC113)如EC112之有形電腦可讀媒體,其中該等元素係 至少部分地藉由該等相應頁面之讀取操作之一完成次序來 判定。 EC114)如EC101之有形電腦可讀媒體,其中該等操作進 步包含官理判疋該4部分中之一或多者在被讀取時是否 具有一較低階錯誤校正失敗。 161613.doc •28· 201241615 其中該等操作進 EC115)如EC101之有形電腦可讀媒體, 一步包含管理讀取該等部分中之一或多者 EC116)如EC100之有形電腦 權和係將資料儲存資訊之該等 排除在該加權和之外。 可讀媒體’其中該累加一加 單兀中的至多兩者選擇性地 EC117)如EC116之有形電腦 一步包含管理處理該累加之結 該等經排除之單元。 可讀媒體,其令該等操作進 果以尋回該資料儲存資訊之
Ecm)如EC116之有形電腦可讀媒體,其中該累加包含 以增量方式及以對應於由-或多個非揮發性記憶體器件完 成讀取操作之-次序的-次序來累加該加權和之至少 分0 EC119)如EC116之有形電腦可讀媒體,其_該累加包含 以增量方式及以對應於自-或多個非揮發性記憶體器件傳 回資料之一次序的一次序來累加該加權和之至少一部分。 EC120)如EC119之有形電腦可讀媒體,其甲所傳回L資 料之該次序係至少部分地基於可自該一或多個非揮發性二 憶體器件得到資料之一次序。 ° EC121)如EC100之有形電腦可讀媒體,其中較高階冗餘 資訊之該等單元及資料儲存資訊之該等單元對應於一或多 個快閃記憶體之各別頁面。 EC122)如EC121之有形電腦可讀媒體,其中該等快閃記 憶體係由複數個晶粒組成,且該等各別頁面中之每一者係 在該等晶粒中之一唯一者上。 ' 161613.doc -29- 201241615 EC123)如EC1〇〇之有形電腦可讀媒體,其中該等操作進 •步應於來自—計算主機之請求而 將較高階冗餘資訊之該等單元及資料儲存資訊之該等單元 儲存於一或多個快閃記憶體之部分中。 EC124)如EC123之有形電腦可讀媒體,其中該等操作進 一步包含管理使該等請求與該計算主機介接。 EC125)如EC124之有形電腦可讀媒體,其中該使該等請 求與該計算主機介接與一儲存介面標準相容。 EC126)如EC123之有形電腦可讀媒體,其中該儲存包含 與該等快閃記憶體介接》 EC127)如EC126之有形電腦可讀媒體,其中該與該等快 閃記憶體介接包含一快閃記憶體介面。 EC128)如EC123之有形電腦可讀媒體,其中該等操作進 一步包含: 至少部分地經由管理計算主機介面邏輯電路來管理使 該等請求與該計算主機介接;且 其中該儲存至少部分地經由經啟用以與該等快閃記憶 體介接的快閃記憶體介面邏輯電路。 EC129)如EC128之有形電腦可讀媒體,其中該計算主機 介面邏輯電路及該快閃記憶體介面邏輯電路係共同地實施 於一單一積體電路(1C)中。 EC130)如EC128之有形電腦可讀媒體,其中該計算主機 介面邏輯電路及該快閃記憶體介面邏輯電路係包含於一固 態磁碟(SSD)中。 161613.doc •30· 201241615 EC132)如EC102之有形電腦可讀媒體,其令 一步包含管理操作該等快閃記憶體中之至少— EC133) —種方法,其包含: EC 131)如EC 123之有形電 一步包含管理操作該計算主 腦可讀媒體,其中該等操作進 機之所有或任何部分。 該等操作進 者0 /少部分地基於資料儲存資訊之複數個頁面來運算較 间階几餘資訊之一或多個頁面; 將較高階冗餘資訊之該等頁面及資料儲存資訊之該等 頁面儲存於一或多個快閃記憶體之頁面中;且 其中該運算包含累加資料儲存資訊之該等頁面中之每 -者的-各別非零唯-恆定值乘以資料儲存資訊之該等 頁面之内容的-加權和作為較高階冗餘資訊之該等頁面 之至少一部分》 EC134)如EC133之方法,其中較高階冗餘資訊之該等頁 面不可運算為由資料儲存資訊之該等頁面的相應位元組之 一產生多項式進行之一多項式除法之一餘項。 EC135)如EC133之方法,其中該累加包含以增量方式 累加。 EC136)如EC135之方法,其中該累加進一步包含至少部 分地並列處理資料儲存資訊之該等頁面中之一個以上者。
Ecm)如EC133之方法’其進—步包含讀取儲存於該等 快閃記憶體中之至少一些頁面;及判定所讀取之該等頁面 中之任一者是否不可經由較低階冗餘資訊來校正。 EC138)如EC133之方& ’其進一步包含運算該較高階冗 161613.doc -31 · 201241615 :資《Λ:杈正版本’其中該運算該較高階冗餘資— 校正版本將資料神f訊之料h中之至 - 擇性地排除。 1固頁面選 EC139)如EC138之方法,其進一步 、運戈包含處理該運复 尚階冗餘資訊之-校正版本的結果以尋回該,該較 之該等經排除之頁面。 诸存資訊 EC140)如EC138之方法,其中該累加包含以至^ 由該等快閃記憶體完成讀取操作之次序 乂 °P分地 至少部分地以增量方式累加。 疋、一次序來 EC141)如EC133之方法,其中該等快閃記 個晶粒組成,且該較高階冗餘f訊或該:系由複數 等頁面中之僅一者儲存於該等晶粒之任一者中子資訊之該 EC142)如EC141之方法,其中該較高階 二 頁面係自該等晶粒中之至少—者中排除。、資訊之該等 E⑴3)如阳41之方法,其中 面係自該等晶粒中之至少一者中排除。 凡心茲4頁 EC 144)如具有或參考一儲存介面標 〜 *丄^ 〈則述EC中之任 一者’,、中該儲存介面標準包含以下各者中 一通用串列匯流排(USB)介面標準, 或多者. 一緊密快閃記憶體(CF)介面標準, 一多媒體卡(MMC)介面標準, 一嵌入式MMC(eMMC)介面標準, 一 Thunderbolt介面標準, 一 UF S介面標準, 161613.doc •32· 201241615 一安全數位(SD)介面標準, 一記憶棒介面標準, 一xD圖像卡介面標準, 一整合驅動電子裝置(IDE)介面標準, 一串列進階附接技術(SATA)介面標準, 一外部SATA(eSATA)介面標準’ 一小型電腦系統介面(SCSI)介面標準, 一串列附接小型電腦系統介面(SAS)介面標準, 一光纖通道介面標準, 一乙太網路介面標準,及 一快速周邊組件互連(PCIe)介面標準》 EC 145)如具有或參考一快閃記憶體介面之前述ec中之 任一者,其中該快閃記憶體介面與以下各者中之一或多者 相容: 一開放式NAND快閃記憶體介面(〇NFI), 一雙態觸變模式介面, 一雙資料速率(DDR)同步介面, 一 DDR2同步介面, 一同步介面,及 一非同步介面。 EC146)如具有或參考一計算主機之前述ec中之任_ 者,其中該計算主機包含以下各者中之一或多者: 一電腦, 一工作站電腦, I61613.doc •33· 201241615 一伺服器電腦, 一儲存伺服器, 一儲存附接網路(SAN), 一網路附接儲存(NAS)器件, 一直接附接儲存(DAS)器件, 一儲存設備, 一個人電腦(PC), 一膝上型電腦, 一筆記型電腦, 一迷你筆記型電腦, 一平板型器件或電腦, 一超輕薄筆記型電腦, 一電子閱讀器件(一電子閱讀器), 一個人數位助理(PDA), 一導航系統, 一(手持型)全球定位系統(GPS)器件, 一汽車控制系統, 一汽車媒體控制系統或電腦, 一印表機、影印機或傳真機或一體式器件, 一銷售點POS器件, 一收銀機, 一媒體播放器, 一電視, 一媒體記錄器, 161613.doc •34· 201241615 一數位視訊記錄器(DVR), 一數位相機, 一蜂巢式手機, 一無線電話手機,及 一電子遊戲機。 E C14 7)如具有或參考至少一快閃記憶體^ 任一者,其中該至少一快閃記憶體之至1之前述EC中之 各者中之一或多者: 部分包含以下 NAND快閃記憶體技術儲存晶胞,及 NOR快閃記憶體技術儲存晶胞。 EC148)如具有或參考至 任一者,其令該至少—快 各者中之一或多者: τ…閃記憶體技術儲存曰 多位階晶胞(MLC)快閃記憶體技 曰^,及 EC149)如具有或參考至少-快閃記怜體二。 任一者,其中該至少—快 之刖述£C中 各者中之一或多者:^憶體之至少-部分包h 基於多㈣技術之電荷料“,及 基於氮切技術之電荷儲存晶胞。 EC150)如具有或參考 任一者,其中該至少— 各者中之一或多者: 至少—快閃記憶體之前述EC中之 K閃δ己憶體之至少一部分包含以下 憶體技術,及 基於二維技術之快閃記 161613.doc .35 · 201241615 基於三維技術之快閃記憶體技術。 系統 圖1A說明固態磁碟(SSD)之實施例的選定細節,該固態 磁碟(SSD)包括使用具有獨立矽元件之動態較高階冗餘模 式官理以用於存取及控制非揮發性記憶體(NVM)之s SD控 制器。SSD控制器係用於管理(諸如)經由NVM元件(例如, 快閃記憶體)實施之非揮發性儲存器。SSD控制器丄〇〇經由 一或多個外部介面110以通信方式耦接至一主機(未說明)。 根據各種實施例,外部介面u〇為以下各者中之一或多 者:SATA介面;SAS介面;PCIe介面;光纖通道介面;乙 太網路介面(諸如,10吉位元(Gigabit):太網路);前述介 面中之任一者的非標準版本;定製介面;或用以將儲存及/ 或通信及/或計算器件互連的任何其他類型之介面。舉例 而=,在一些實施例中,SSD控制器1〇〇包括sata介面及 PCIe介面。 SSD控制器100經由一或多個器件介面19〇以通信方式; 接至L括或多個儲存器件(諸如,快閃記憶體器件i 92, 之一或多者)之NVM 199。根據各種實施例,器件介面is 為以下各者中之-或多者:非同步介面;同步介面;單] 料速率(SDR)介面;雙資料速率(DDR)介面;dram相容: DDR_DR2同步介面;〇則相容介面諸如〇丽2上 〇刪3.G相容介面;雙態觸變模式(Toggle-mode)相容之^ 閃記憶體介面;前述介面中之任一者的非標準版本;以 介面;或用以連接至健存器件的任何其他類型之介面。 161613.doc • 36 - 201241615 在一些實施例中’每一快閃記憶體器件192具有一或多 個個別快閃記憶體晶粒194。根據快閃記憶體器件192中之 特定者的類型’特定快閃記憶體器件192中之複數個快閃 記憶體晶粒194可視情況及/或選擇性地並列存取。快閃記 憶體器件192僅表示經啟用以按通信方式耦接至SSD控制 器100之一種類型之儲存器件。在各種實施例中,可使用 任何類型之儲存器件’諸如SLC NAND快閃記憶體、MLC NAND快閃記憶體、N〇R快閃記憶體、使用基於多晶矽或 氮化石夕技術之電荷儲存晶胞的快閃記憶體、基於二維或三 維技術之快閃記憶體、唯讀記憶體、靜態隨機存取記憶 體、動態隨機存取記憶體、鐵磁性記憶體、相變記憶體、 赛道s己憶體或任何其他類型之記憶體器件或儲存媒體。 根據各種實施例,器件介面19〇經組織為:每一匯流排 具有快閃記憶體器件192中之一或多者的一或多個匯流 排,每一匯流排具有快閃記憶體器件192中之一或多者的 一或多個匯流排之群組’其中一群組中之匯流排大體上經 並列地存取;或快閃記憶體器件192中之一或多者至器件 介面19 0上的任何其他組織。 在圖1A中繼續,SSD控制器1〇〇具有一或多個模組,諸 如主機介面ill、資料處理121、緩衝器131、映射141、回 收器151、ECC 161、器件介面邏輯191,及cpu m。圖 1A中說明之特定模組及互連僅表示—個實施例,且設想到 該等模組中之—些或全部以及未說明之額外模組的許多配 置及互連。在第一實例中,在一些實施例中,存在兩個或 161613.doc -37- 201241615 兩個以上主機介面111以提供雙埠。在第二實例中,在一 些實施例中’資料處理121及/或ECC 161與緩衝器131組 合β在第三實例中’在一些實施例中,主機介面η丨直接 耦接至緩衝器131,且資料處理121視情況及/或選擇性地 對儲存於緩衝器131中之資料進行操作。在第四實例中, 在些貫施例中’器件介面邏輯191直接麵接至緩衝器 13 1,且ECC 161視情況及/或選擇性地對儲存於緩衝器i 3 i 中之資料進行操作。 主機介面111經由外部介面11〇發送及接收命令及/或資 料,且在一些實施例中,經由標籤追蹤丨13追蹤個別命令 之進行。舉例而言,該等命令包括指定將進行讀取之位址 (諸如,LBA)及資料量(諸如,LBA配量(例如,磁區)之數 目)的讀取命令;作為回應,SSD提供讀取狀態及/或讀取 資料°對於另-實例’該等命令包括指定將進行寫入之位 址(諸如’ LBA)及資料量(諸>,LBA配量(例如,磁區)之 數目)的寫人命令;作為回應,SSD提供寫人狀態及/或請 求寫入資料且視情況隨後提供寫入狀態。對於另一實例, 該等命令包括指定不再需要被分配之-或多個位址(諸 如 或多個LBA)的解除分配命令(例如,修剪命令);作 為回應’ SSD相應地修改映射且視情況提供解除分配狀 在-些内総絡中,ATA相容TR辦令為例示性解除 人· P 7 S於另實例’該等命令包括超電容器測試命 :或資料硬化成功查詢;作為回冑,ssd提供適當狀態。 -些實施例中,主機介面⑴與嶋協定相容,且使用 1616l3.doc -38- 201241615 NCQ命令’使得主機介面U1能夠具有至多32個未決命 令’每一未決命令具有表示為自〇至31之數字的唯一標 籤。在一些實施例中,啟用標籤追蹤113以使用於經由外 部介面110接枚之命令的外部標籤與用以在由SSD控制器 100處理期間追蹤命令之内部標籤相關聯。 根據各種貫施例,滿足以下情形中之一或多者:資料處 理121視情況及/或選擇性地處理在緩衝器l3 i與外部介面 no之間發送的一些或所有資料;及資料處理121視情況及/ 或選擇性地處理儲存於緩衝器131中之資料。在一些實施 例中,資料處理121使用一或多個引擎123來執行以下各者 中之一或多者:格式化;重新格式化;轉碼;及任何其他 資料處理及/或操縱任務。 緩衝器131儲存自器件介面19〇發送至外部介面11〇/自外 部介面110發送至器件介面19〇的資料。在一些實施例中, 緩衝器131額外地儲存由SSD控制器1〇〇使用以管理快閃記 憶體器件192中之一或多者的系統資料,諸如一些或所有 映射表。在各種實施例中,緩衝器13丨具有以下各者中之 一或多者:用於臨時儲存資料之記憶體137 ;用以控制資 料移動至緩衝器131及/或自緩衝器131移動資料之dma 133 ;及用以提供較高階錯誤校正及/或冗餘功能之 135 ;及其他資料移動及/或操縱功能。較高階冗餘功能之 實例為類似RAID之能力(例如,raSIE),其中冗餘處於快 閃記憶體器件(例如,快閃記憶體器件192中之多者)階層及/ 或快閃記憶體晶粒(例如,快閃記憶體晶粒194)階層而非處 161613.doc -39- 201241615 於磁碟階層。 根據各種實施例’滿足以下情形中之一或多者:ECC 161視情況及/或選擇性地處理在緩衝器ι31與器件介面I% 之間發送的一些或所有資料;及£(:(: 161視情況及/或選擇 性地處理儲存於緩衝器13丨中之資料。在一些實施例中, ECC 161用以(諸如)根據一或多種EC(:技術來提供較低階錯 誤校正及/或冗餘功能。在一些實施例中,ECC 161實施以 下各者中之一或多者:CRC碼;漢明碼;Rs碼;BCH碼; LDPC碼;維特比碼;格形碼;硬式決策碼;軟式決策 碼,基於抹除之碼;任何錯誤偵測及/或校正碼;及前述 各者之任何組合。在一些實施例中,ECC 161包括一或多 個解碼器(諸如’ LDPC解碼器)。 器件介面邏輯191經由器件介面190控制快閃記憶體器件 192之例項。啟用器件介面邏輯191以根據快閃記憶體器件 192之協定將資料發送至快閃記憶體器件192之例項/自快 閃記憶體器件192之例項發送資料。器件介面邏輯191包括 用以經由器件介面190選擇性地順序控制快閃記憶體器件 192之例項的排程193。舉例而言,在一些實施例中’啟用 排程193以將至快間記憶體器件192之例項的操作排入佇 .列,且在快閃記憶體器件192(或快閃記憶體晶粒Μ七之例 項的個別者可用時選擇性地將該等操作發送至快間記憶體 器件192(或快閃記憶體晶粒194)之例項的個別者。 映射141使用將外部資料位址映射至NVM 199中之位置 的表143而在用於外部介面11〇上之資料定址與用於器件介 161613.doc -40. 201241615 面190上之資料定址之間轉換。舉例而言,在一些實施例 中,映射141經由由表143提供之映射將用於外部介面ιι〇 上之LBA轉換成目標為一或多個快閃記憶體晶粒I”之區 塊及/或胃面位址。肖於因為磁碟機製造或解除分配而從 未被寫入之LBA,若讀取該等LBA,則映射指向傳回之預 設值。舉例而言,當處理解除分配命令時,修改映射,使 得對應於經解除分配之LBA的項目指向該等預設值中之一 者。在各種實施例中,存在各種預設值,每一預設值具有 相應指標。該複數個預設值使得能夠將一些經解除分配之 LBA(諸如,在第一範圍内)讀取為一預設值而將其他經 解除分配之LBA(諸如,在第二範圍内)讀取為另一預設 值。在各種實施例中,藉由快閃記憶體、硬體、韌體、命 令及/或原始引數及/或參數、可程式化暫存器或其各種組 合來定義該等預設值。 在一些實施例中,映射141使用表143來執行及/或查找 用於外部介面110上之位址與用於器件介面19〇上之資料定 址之間的轉譯。根據各種實施例,表143為以下各者中之 一或多者:一階映射;二階映射;多階映射;映射快取; 壓縮之映射;自一位址空間至另一位址空間的任何類型之 映射;及前述各者之任何組合。根據各種實施例,表143 包括以下各者中之一或多者:靜態隨機存取記憶體;動態 隨機存取記憶體;NVM(諸如,快閃記憶體);快取記憶 體,晶片上記憶體;晶片外記憶體;及前述各者之任何組 合0 161613.doc •41 - 201241615 在一二實施例中,时^151執行廢棄項 而言,在-些實施例中,快閃記憶體器件⑼之:= 在區塊可重新寫入之前必須被抹除的區塊。啟用有 151以(諸如)藉由掃描由映射 回收器 情……, 射141維持之映射來判定快閃記 隐體器件m之例項之哪些部分正在使用中(例 而非解除分配),且藉由抹除快閃記憶體器件192之例2 未使用(例如’解除分配)部分而使其可用於寫入 實施例中,啟用回收器151以移動儲存於快閃記憶體器件 192之例項中的資料以使快閃記憶體器件192之例項之較大 連續部分可用於寫入。 在一些實施例中,選擇性地及/或動態地組態、管理及/ 或使用快閃記憶體器件192之例項以具有用於儲存不同類 型及/或屬性之資料的一或多個帶(band)。帶之數目、配 置、大小及類型可動態地改變。舉例而言,將來自計算主 機之資料寫入至熱(作用)帶中,而將來自回收器151之資料 寫入至冷(較不作用)帶中。在一些使用情況中,若計算主 機寫入長之順序串流,則熱帶之大小增長,而若計算主機 執行隨機寫入或很少寫入,則冷帶之大小增長。 CPU 171控制SSD控制器1〇〇之各種部分。CPU 171包括 CPU核心172。根據各種實施例,CPU核心172為一或多個 早核心或多核心處理器。在一些實施例中,CPU核心172 中之個別處理器核心為多執行緒的。CPU核心172包括指 令及/或資料快取記憶體及/或記憶體。舉例而言’指令記 憶體含有使得CPU核心172能夠執行程式(例如’軟體(有時 161613.doc -42· 201241615 稱為韌體))以控制SSD控制器100的指令。在一些實施例 中,由CPU核心1 72執行之韌體中的一些或全部儲存於快 閃記憶體器件192之例項(如說明為(例如)圖iB中之NVM 199之韌體1〇6)上。 在各種實施例中,CPU 171進一步包括:命令管理173, 其用以在經由外部介面110接收之命令在進行中的同時追 蹤及控制該等命令;緩衝器管理175,其用以控制緩衝器 131之分配及使用;轉譯管理177,其用以控制映射“I ; 連貫性管理179,其用以控制資料定址之一致性且用以避 免(諸如)在外部資料存取與回收資料存取之間的衝突;器 件管理181 ’其用以控制器件介面邏輯19ι ;識別碼管理 182,其用以控制識別碼資訊之修改及通信;及視情況其 他管理單元。根據各種實施例,由cpu 171執行之管理功 能中無一者、任一者或全部係藉由硬體、藉由軟體(諸 如,在CPU核心172上或在經由外部介面11〇連接之主機上 執行的韌體)或其任何組合來控制及/或管理。 在一些實施例中,啟用CPU 171以執行其他管理任務, 諸如以下各者中之一或多者:搜集及/或報告效能統計資 料;實施SMART ;控制電源定序,控制及/或監視及/或調 整電力消耗;對電源故障作出回應;控制及/或監視及/或 調整時脈速率;及其他管理任務。 各種實施例包括類似於SSD控制器1〇〇且(諸如)經由主機 介面111及/或外部介面11〇之調適與各種計算主機之操作相 容的計算主機快閃記憶體控制器。各種計算主機包括以下 161613.doc -43- 201241615 各者中之—者或任何組合:電腦、工作站電腦、伺服器電 腦、儲存伺服器、SAN、NAS器件、DAS器件、儲存設 備、pC、膝上型電腦、筆記型電腦、迷你筆記型電腦、平 板型器件或電腦、超輕薄筆記型電腦、電子閱讀器件(諸 如’電子閱讀器)、PDA、導航系統、(手持型)GPS器件、 汽車控制系統、汽車媒體控制系統或電腦、印表機、影印 機或傳真機或一體式器件、POS器件、收銀機、媒體播放 器、電視、媒體記錄器、DVR、數位相機、蜂巢式手機、 無線電話手機及電子遊戲機。 在各種實施例中,SSD控制器(或計算主機快閃記憶體控 制器)之所有或任何部分實施於單一 IC、多晶粒IC之單一 晶粒、多晶粒1C之複數個晶粒或複數個ic上《舉例而言, 緩衝器131實施於與SSD控制器1〇〇之其他元件相同的晶粒 上。對於另一實例,緩衝器13丨實施於不同於SSD控制器 100之其他元件的晶粒上。 圖1B說明包括圖1AiSSD之一或多個例項的系統之各種 實施例之選定細節。SSD 101包括經由器件介面i 9〇耦接至 NVM 199之SSD控制器1〇〇。該圖說明各種類別之實施例: 直接耦接至主機之單一 SSD ;各自分別經由各別外部介面 直接麵接至主機之複數個SSD;及經由各種互連元件直接 搞接至主機的一或多個SSD » 作為直接耦接至主機之單一 SSD的實例實施例,SSD ιοί之一例項經由外部介面110直接耦接至主機1〇2(例如, 省略、繞過或透通切換/網狀架構/中間控制器1〇3)。作為 16 ⑹ 3.doc •44· 201241615 各自經由各別外部介面直接耦接至主機之複數個SSD的實 例實施例,SSD 101之複數個例項中的每一者分別經由外 部介面110之各別例項直接耦接至主機1〇2(例如,省略、 繞過或透通切換/網狀架構/中間控制器103)。作為經由各 種互連元件間接地耦接至主機之一或多個SSD的實例實施 例,SSD 10 1之一或多個例項中的每一者分別間接地耦接 至主機102。每一間接耦接係經由耦接至切換/網狀架構/中 間控制器103之外部介面11 〇之各別例項,及耗接至主機 102之中間介面1〇4進行。 包括切換/網狀架構/中間控制器103之實施例中的一些亦 包括經由記憶體介面180耦接且可由SSD存取之卡式記憶 體112C。在各種實施例中,§SD、切換/網狀架構/中間控 制器及/或卡式記憶體中之一或多者包括於實體可識別模 組、卡或可插入元件(例如,I/O卡116)上。在一些實施例 中’ SSD 101(或其變化)對應於耦接至操作為主機ι〇2之啟 動器的SAS磁碟機或SATA磁碟機。 啟用主機102以執行主機軟體U5之各種元件,諸如〇s 105、驅動程式1〇7、應用程式1〇9及多器件管理軟體114之 各種組合。點線箭頭107D表示主機軟體+ + 1/〇器件通 信’例如’將資料發送至SSD 101之例項中的一或多者/自 SSD 101之例項中的一或多者接收資料及自經由驅動程式 107之OS 105、驅動程式ι〇7及應用程式1〇9(經由驅動程式 107或直接作為VF)中之任何一或多者接收資料/將資料發 送至經由驅動程式1〇7之105、驅動程式1〇7及應用程式 I61613.doc •45· 201241615 109(經由驅動程式107或直接作為VF)中之任何一或多者。 OS 105包括驅動程式(由驅動程式107概念性地說明)及/ 或經啟用以與該驅動程式一起操作以用於與SSD介接。 Windows 之各種版本(例如,95、98、ME、NT、XP、 2000、Server、Vista,及 7)、Linux之各種版本(例如,Red Hat、Debian ’ 及 Ubuntu)及 MacOS之各種版本(例如,8、9 及X)為OS 105之實例。在各種實施例中,驅動程式為可與 標準介面及/或協定(諸如,SATA、AHCI或快速NVM)—起 操作之標準及/或通用驅動程式(有時稱為「收縮包裝」或 「預先安裝」)’或視情況經定製及/或供應商特定以使得 能夠使用對SSD 101特定之命令。一些磁碟機及/或驅動程 式具有透通模式以經由最佳化NAND存取(有時稱為〇na) 或直接NAND存取(有時稱為DNA)技術啟用應用階層程式 (諸如’應用程式109)來將命令直接傳達至SSD 101,從而 使得定製應用程式能夠甚至與通用驅動程式一起使用對 SSD 101特定之命令。ONA技術包括以下各者中之一或多 者:非標準修改程式(提示)之使用;供應商特定命令之使 用;非標準統計資料(諸如,根據壓縮率之實際NVM使用) 之傳達;及其他技術。DNA技術包括以下各者中之一或多 者.提供對NVM之未經映射的讀取、寫入及/或抹除存取 的非^準命令或供應商特定命令之使用;提供對NVM之更 直接存取(諸如,藉由繞過I/O器件否則將執行之資料之格 式化)之非標準或供應商特定命令的使用;及其他技術。 驅動程式之實例為無ONA或DNA支援之驅動程式、具備 161613.doc •46- 201241615 ONA能力之驅動程式、具備DNA能力之驅動程式,及具備 ONA/DNA能力之驅動程式。驅動程式之其他實例為供應 商提供、供應商開發及/或供應商增強之驅動程式,以及 用戶端提供、用戶端開發及/或用戶端增強之驅動程式。 應用階層程式之實例為無ONA或DNA支援之應用程式、 具備ONA能力之應用程式、具備DNA能力之應用程式,及 具備ONA/DNA能力之應用程式。點線箭頭109D表示應用 程式令 + 1/O器件通信(例如,經由驅動程式而繞過或經由 用於應用程式之VF而繞過),例如,具備ONA能力之應用 程式及具備ONA能力之驅動程式(諸如)在無使用OS作為中 間物之應用程式的情況下與SSD通信。點線箭頭109V表示 應用程式+">1/0器件通信(例如,經由用於應用程式之VF 而繞過),例如,具備DNA能力之應用程式及具備DNA能 力之驅動程式(諸如)在無使用OS或驅動程式作為中間物之 應用程式的情況下與SSD通信。 在一些實施例中,NVM 199之一或多個部分用於韌體儲 存(例如,韌體106)。韌體儲存包括一或多個韌體影像(或 其部分)。韌體影像(例如)具有(例如)藉由SSD控制器100之 CPU核心172執行之韌體的一或多個影像。對於另一實 例,韌體影像具有(例如)在韌體執行期間藉由CPU核心參 考之常數、參數值及NVM器件資訊之一或多個影像。韌體 之影像(例如)對應於當前韌體影像及零或多個先前(關於韌 體更新)韌體影像。在各種實施例中,韌體提供通用、標 準、ONA及/或DNA操作模式。在一些實施例中,經由視 161613.doc • 47- 201241615 情況由驅動程式傳達及/或提供之密鑰或各種軟體技術來 啟用勃體操作模式中之一或多者(例如,一或多個Apl經 「解除鎖定」)。 在缺乏切換/網狀架構/中間控制器之一些實施例中, SSD經由外部介面UQ直接祕至主機。在各種實施例中, SSD控制器1〇〇經由一或多個中間階層之其他控制器(諸 如,RAID控制器)耦接至主機。在一些實施例中,ssd 1 〇 1 (或其變化)對應於SAS磁碟機或SATA磁碟機且切換/網 狀架構/中間控制器1〇3對應於又耦接至啟動器之擴展器, 或者切換/網狀架構/中間控制器1〇3對應於經由擴展器間接 地耦接至啟動器之橋接器。在一些實施例中,切換/網狀 架構/中間控制器103包括一或多個PCIe切換及/或網狀架 構。 在各種實施例(諸如,主機102為計算主機(例如,電 腦、工作站電腦、伺服器電腦、儲存伺服器、SAn、Nas 器件、DAS器件、儲存設備、PC、膝上型電腦、筆記型電 腦及/或迷4小筆§己型電腦)的實施例種中之一些)中,視情、兄 啟用計算主機以與一或多個本端及/或遠端伺服器(例如, 選用之伺服器118)通信(例如,經由選用之j/o及儲存器件/ 資源117及選用之LAN/WAN 119)。該通信實現(例如)野 SSD 101元件中之任何一或多者的本端及/或遠端存取、管 理及/或使用。在一些實施例中’該通信係完全或部分地 經由乙太網路。在一些實施例中,該通信係完全或部分地 經由光纖通道。在各種實施例中,LAN/WAN 119表示—$ 161613.doc •48· 201241615 多個區域及/或廣域網路,諸如伺服器群中之網路、耦接 伺服器群之網路'都會網路及網際網路中之任何一或多 者。 在各種實施例中,與一或多個NVM結合之SSD控制器及/ 或計算主機快閃記憶體控制器實施為非揮發性儲存組件,
• 諸如USB儲存組件、CF儲存組件、MMC儲存組件、eMMC 儲存組件、Thunderbolt儲存組件、UFS儲存組件、SD儲存 組件、記憶棒儲存組件,及XD圖像卡儲存組件。 在各種實施例中,SSD控制器(或計算主機快閃記憶體控 制器)之所有或任何部分或其功能實施於控制器待耦接之 主機(例如,圖1B之主機1〇2)中。在各種實施例中,SSD控 制器(或計算主機快閃記憶體控制器)之所有或任何部分或 其功能經由硬體(例如,邏輯電路)、軟體及/或韌體(例 如,驅動程式軟體或SSD控制韌體)或其任何組合而實施。 舉例而言,ECC單元(諸如,類似於圖1A2ECC 161及/或 ECC-X 135)之功能性或與其相關聯之功能性部分地經由主 機上之軟體且部分地經由SSD控制器中之韌體與硬體之組 合而實施。對於另一實例,回收器單元(諸如,類似於圖 1A之回收器1 5 1)之功能性或與其相關聯之功能性部分地經 .由主機上之軟體且部分地經由計算主機快閃記憶體控制器 中之硬體而實施。 映射操作 圖2說明映射LBA之LPN部分之實施例的選定細節。在一 些實施例中,讀取單元為可獨立讀取之NVM的最精細之細 161613.doc -49- 201241615 微度,諸如NVM之頁面之一部分。在其他實施例中,讀取 單元對應於(較低階)錯誤校正碼之檢查位元(有時稱為冗 餘)以及受檢查位元保護之所有資料。舉例而言,圖丨八之 ECC 161經由檢查位元(諸如,經*LDpcu^)實施錯誤校 正’且除受LDPC編碼位元保護之資料位元外,讀取單元 亦對應於實施LDPC碼之編碼位元。 在一些實施例中,映射141(諸如)經由表143(如圖丨八中 所說明)將LBA 211之LPN 213部分映射至LPN 221之映射資 訊。LPN之映射資訊(諸如,LPN 221之映射資訊)有時稱為 映射項目。據稱映射141使LPN與相應映射項目相關聯。 在各種實施例中,映射係經由一或多個相關聯查找,經由 一或多個非相關聯查找及/或經由一或多種其他技術進 行0 在一些實施例中,SSD控制器1〇〇維持可能及/或正在使 用中之每一 LPN之映射項目。 在一些實施例中,LPN 221之映射資訊包括各別讀取單 το位址223及讀取單元中之長度225。在一些實施例中,長 度及/或跨距(諸如)藉由將長度作為與跨距之位移儲存而儲 存編碼於讀取單元中之長度225的所有或任何部分中。在 其他實施例中,第一 LPN與第一映射項目相關聯,第二 LPN(不同於第一 LPN,但參考大小與第一 LpN參考之邏輯 頁面相同之邏輯頁面)與第二映射項目相關聯,且第一映 射項目之讀取單元中的各別長度不同於第二映射項目之讀 取單元中的各別長度。 ]616]3.doc •50· 201241615 在各種實施例中,在相同時間點處,第一 LPN與第一映 射項目相關聯,第二LPN(不同於第— LPN)與第二映射項 目相關聯,且第一映射項目之各別讀取單元位址與第二映 射項目之各別讀取單元位址相同。在其他實施例中,與第 一 LPN相關聯之資料及與第二LpN相關聯之資料皆儲存於 NVM 199中之相同器件的相同實體頁面中。 根據各種實施例,讀取單元位址223與以下各者中之— 或多者相關聯:NVM中之開啟位址;NVM中之結束位 址,前述位址中之任一者的位移;及用於識別與LpN 2 U 相關聯之NVM之一部分的任何其他技術。 圖3說明在讀取單元位址處存取NVM以產生經組織為各 種讀取單元(共同地具有以讀取單元之配量來量測之長度) 之讀取資料之實施例的選定細節。根據各種實施例,第一 讀取單元313為以下各者中之一或多者:讀取資料3ιι中之 讀取單元中的具有NVM之位址空間中之最低位址的一者; 讀取單兀中之固定者;讀取單元中之任意者;讀取單元中 之可變者;及由任何其他技術選擇之讀取單元中之一者。 在各種實施例中,啟用SSD控制器1〇〇以藉由僅讀取由讀 取早兀中之長度225指定之數目個讀取單元而存取nvm 199且產生讀取資料3U。 圖4A說明作為讀取單元4〇1A之讀取單元(諸如,圖3之 讀取單元313或315)之實施例的選定細節。在各種實施例 及/或使用情況中,標頭i 4ua至標頭N 419a為連續的, 且由該等標頭中之每一者識別(諸如,經由各別位移)的各 161613.doc -51 · 201241615 別資料區緊跟在該等標頭中之最後者之後連續。該等資料 區共同地形成資料位元組421Α。該等資料區係以匹配儲存 標頭之位置次序的位置次序來儲存。舉例而言,考慮在讀 取單元之開頭處的第一標頭,其中第二標頭及第三標頭連 續地緊跟在第一標頭之後。第一資料區(由第一標頭中之 第一位移識別)連續地緊跟在第三標頭之後。第二資料區 (由第二標頭中之第二位移識別)連續地緊跟在第一資料區 之後。類似地,第三資料區(由第三標頭識別)連續地緊跟 在第一資料區之後。 圖4B說明作為讀取單元401B之讀取單元(諸如,圖3之讀 取單元313或315)之另一實施例的選定細節。在各種實施 例及/或使用情況中,標頭標誌(HM)410B為指示緊跟之連 續標頭(標頭1 411B、標頭2 412B…標頭N 419B)之數目的 選用之初始攔位(諸如,一位元組欄位)。資料區(資料位元 組421B、資料位元組422B…資料位元組429B)分別由標頭 (標頭1 411B、標頭2 412B…標頭N 419B)識別且以與儲存 標頭之位置次序相反的位置次序來儲存。標頭在讀取單元 之開頭處開始’而相應資料區在讀取單元之結束處開始。 在一些實施例中’資料區内之資料位元組(例如,資料位 元組421B、資料位元組422B…資料位元組429B)以前向次 序(位元組次序匹配位置次序)配置,而在其他實施例中, 資料位元組以反向次序(位元組次序相對於位置次序而反 向)配置。在一些實施例中’標頭標誌用於標頭及資料位 元組以相同位置次序(例如,如圖4A中所說明)儲存之讀取 161613.doc -52- 201241615 單元中。 在一些貫施例中’選用之填補位元組43丨a(或43丨B)係根 據與特定LPN相關聯之資料的細微度。舉例而言,在一些 實施例中,若資料位元組421A(或共同地資料位元組 421B、資料位元組422B··.資料位元組429B)在儲存與標頭! 411A至標頭N419A(或標頭1411B、標頭2412B 標頭N 4 19B)中除最後一者外之所有者相關聯的資料之後具有小 於固定量(諸如,8位元組)之剩餘空間,則與最後標頭相關 聯之LPN的資料在後續讀取單元中開始。在其他實施例 中,在最後標頭中之特定位移值(例如,全一)指示與最後 標頭相關聯之LPN的資料在後續讀取單元中起始。
圖5說明具有數個攔位之標頭(諸如,圖4A之標頭1 411A 至軚頭N 419A或圖4B之標頭1 411B至標頭419B)之實施例 的選疋細節。在一些實施例中,標頭為固定長度的(例 如,每一標頭之長度為相同數目個位元組)。標頭5〇1包括 以下攔位.類型511、最後指示符513、旗標515、 長度5 19,及位移52 1。類型欄位識別資料位元組之 種類。舉例而言,類型攔位指示資料位元組之種類為主機 資料(例邏輯頁面資料)或系統資料(例如,映射資訊或 二·’ k Λ )中之一者。最後攔位指示標頭為資料位元組 之前的最後標頭。在具有標頭標钱之_些實施例中,視情 況省略最後攔位。LPN欄位為與標頭相關聯之⑽。LpN 欄位實現對標頭之剖析以藉由(例如)搜尋該等標頭以尋找 具有匹配特SLPN之LPN欄位的—者來敎標頭中之與該 161613.doc -53- 201241615 特定㈣相關聯的特定者。長度爛位為資料位元組之長度 (以位兀組叶)(例如’在與標頭相關聯之資料位元組 421A中存在多J f料位元組)。在—些實施例_,根據特 定細微度(例如’ 8位元組細微度)對位移攔財之位移進行 捨位。 在各種實施例中,與特定LpN相關聯之― 儲存於與特定LPN㈣聯之㈣項目録^所有資訊 τ哪唧又映射項目、與特定lPN相關聯 之標頭’或該兩者令。舉例而言,在一些實施例中,長度 519中之一些或全部儲存於映射項目而非標頭申。 圖6說明多個NVM器件之區塊、頁面及讀取單元之實施 例的選定細節。舉例而言,6〇1、6〇3及6〇9對應於圖】八 之一或多個個別快閃記憶體晶粒194中之各別者。 在一些實施例中,器件601、6〇3··.及6〇9為小於nvm 199之全部的部分。舉例而言,在各種實施例中,跨越多 個器件群組而獨立地使資料等量化,其中可獨立存取該等 器件群組中之每一者。 每一器件(諸如’器件601、603…及609中之任一者)提供 經組織為區塊(諸如,器件601之區塊631、633…及639 ; 器件603之區塊661、663…及669 ;等等)之儲存器。在一 些實施例中,每一器件包括整數數目個區塊且區塊為最小 抹除配量。該等區塊又包括頁面(諸如,區塊63丨之頁面 621、623...及 629 ;區塊 661 之頁面 651、653··.及 659 ;等 等)。在一些實施例中,每一區塊包括整數數目個頁面且 頁面為最小寫入配量。該等頁面又包括讀取單元(諸如, 161613.doc •54- 201241615 頁面621之讀取單元611、613…及619 ;頁面651之讀取軍 元641、643…及649 ;等等)。根據各種實施例,滿足以下 情形中之一或多者:讀取單元為最小讀取及錯誤校正配 量;每一頁面包括整數數目個讀取單元;兩個或兩個以上 頁面之相關聯群組包括整數數目個讀取單元;且讀取單元 視情況及/或選擇性地橫跨頁面邊界。器件中資訊之讀取 及/或寫入係根據一次序(諸如,「讀取單元優先」次序或 「頁面優先」次序)來執行。圖中說明之讀取單元之讀取 單元優先次序的實例以讀取單元611開始,其後接著為 641、…、671、613、643、…、673 等,以 679 結束。圖令 說明之讀取單元之頁面優先次序的實例以讀取單元61J開 始’其後接著為 613、...、619、641、643、…、649、 671、673等,以679結束。 在一些實施例中’各種NVM管理功能係在R區塊之單元 中執行。R區塊之實例為跨越快閃記憶體之所有晶粒的邏 輯片段或區段。舉例而言’在具有R個快閃記憶體晶粒(每 一快閃記憶體晶粒具有N個區塊)之快閃記憶體中,總的看 來,每一 R區塊為來自快閃記憶體晶粒中之每一者的第“固 區塊,總計N個R區塊。對於另一實例,在具有尺個快閃記 憶體晶粒(每一者具有N個區塊)之快閃記憶體中,每一尺區 塊為來自快閃記憶體晶粒中之每一者的第i及第(i+1)個區 塊,總s十N/2個R區塊。對於另一實例,在具有複數個雙平 面器件之快閃記憶體中,每一 R區塊為來自該等雙平面器 件中之每一者的第i個偶數區塊及第i個奇數區塊。 161613.doc •55· 201241615 較高階冗餘技術 圖7A說明較高階冗餘技術之各種實施例之選定細節。快 閃記憶體器件72()包括64個快閃記憶體晶粒(快閃記憶體晶 = 710·63、71〇62、71〇61 71〇〇)且經由介面通道 通 信。額外快閃記憶體器件740包括至多兩個快閃記憶體晶 粒(快閃記憶體晶粒710.65及710.64)且經由額外介面通道 750通信。快閃記憶體晶粒在儲存子系統(諸如,SSD中之 NVM)中提供對較高階冗餘資訊之儲存及資料儲存(例如, 使用者資料及/或使用者可用空間)。(在冗餘資訊及資料錯 存,内容脈絡中的「使用者資料」之實例包括除健存於快 閃記憶體上用於猶後操取之冗餘資訊外的所有資料,諸如 作業系統資料、應用程式f料、SSDf理資料等)。較高階 冗餘使得能夠(例如)自—或多個快閃記憶體晶粒之-或多 ㈣分的間歇或永久失敗(諸如’提供錯誤校正資料(例 如’經由較低階ECC功能)用於讀取操作的失敗或正確地完 成寫入操作的失敗)恢復。 舉例而言,每一快閃記憶體晶粒(或者每-區塊或每一 區塊内。之每一頁面)在石夕獨立元件冗餘陣列(rasie)内容脈 、各中操作。右在特定快閃記憶體晶粒中偵測到失敗(例 如,歸因於特定晶粒之區塊之部分的取不可校正之讀取 錯誤),則作為回應,健左 保存於快閃記憶體晶粒之其他者中 的冗餘資訊用以判定本應由特定晶粒提供之資訊。在一些 實施例及/或使用情況巾,儲存足夠冗餘資訊以使得能夠 自快閃§己憶體晶粒内之—失敗恢復(在單一操作期間)。 161613.doc -56 - 201241615 在一些實施例中,在使得能夠自單一失敗恢復之模式中之 操作包括分配及管理等效於一快閃記憶體晶粒之空間以用 於較高階冗餘資訊,且稱為「RASIE_lje在一些實施例 中’在使得能夠自兩個失敗恢復之模式中之操作包括分配 及管理等效於兩個快閃記憶體晶粒之空間以用於較高階冗 餘資訊,且稱為「RASIE-2」。 在一些實施例及/或使用情況中’管理晶粒階層失敗為 目標,且執行在晶粒間散佈資訊。舉例而纟,較高階冗餘 資訊储存於僅特定分配給較高階冗餘資訊之—或多個晶粒 中。在一些實施例及/或使用情況中,管理區塊階層失敗 為目標,且執行在晶粒内之區塊間散佈資訊。舉例而言, 較向階冗餘資訊儲存於分配給較高階冗餘資訊之一或多個 區塊中,該分配不考慮區塊為哪些特定晶粒之部分。在一 些實施例及/或使用情況中,管理特定實體階層失敗包括 散佈資訊,使得僅N個元件(例如,對於rasie_1*1個且對 於RASIE-2為2個)在特定實體中之任一者中。 根據寫入至快閃記憶體晶粒之(使用者)資料來運算及寫 入較高階冗餘資訊,且因此在偵測到失敗時較高階冗餘資 訊可用於提供資訊。在各種實施例中,在寫入與較高階冗 餘資訊相關聯之(使用者)資料之前、之後或不按關於寫入 與較兩階冗餘資訊相關聯之(使用者)資料的特定時間次 序,將較高階冗餘資訊寫入至快閃記憶體晶粒。 該圖說明作模式之各種實施例,如下表中所概 括。 161613.doc -57- 201241615 使用模式 額外快閃記憶想器件740之使用 快閃記憶體器件720之使用 RASIE-1 1-0 無 710.63(1個晶粒)-冗餘 710.62... 710.0(63個晶粒)-資料儲存 1-1 710.64(1個晶粒)-冗餘 710.63...710.0(64個晶粒)-資料儲存 RASIE-2 2-0 無 710.63、710.62(2個晶粒)-冗餘 710.61... 710.0(62個晶粒)·資料储存 2-1 710.64(1個晶粒)-冗餘 710.63(1個晶粒)-冗餘 710.62... 710.0(63個晶粒)-資料儲存 2-2 710.65、710.64(2個晶粒)-冗餘 710.63...710.0(64個晶粒)-資料儲存 更具體言之,在RASIE-1模式中,將等效於一個晶粒之 空間分配給較高階冗餘資訊》在尺八31丑-1模式1-0中,不使 用額外快閃記憶體器件740,此係因為較高階冗餘資訊儲 存於快閃記憶體器件720之一個晶粒(例如,快閃記憶體晶 粒710.63)中,留下63個晶粒(快閃記憶體晶粒 710.62…710.0)用於資料儲存(例如,使用者資料及/或使用 者可用空間)。在RASIE-1模式1_丨中,使用額外快閃記憶 體器件740之一個晶粒(例如,快閃記憶體晶粒710.64),留 下快閃記憶體器件720之全部(64個晶粒)用於資料儲存。 在RASIE-2模式中,將等效於兩個晶粒之空間分配給較 高階冗餘資訊。在RASIE-2模式2-0中,不使用額外快閃記 憶體器件740,此係因為較高階冗餘資訊儲存於快閃記憶 翘器件720之兩個晶粒(例如,快閃記憶體晶粒7 10.63及快 閃記憶體晶粒710.62)中,留下62個晶粒(快閃記憶體晶粒 710.61…710.0)用於資料儲存。在raSIE-2模式2-1中,使 用額外快閃記憶體器件740之一個晶粒(例如,快閃記憶體 161613.doc •58· 201241615
SB 粒710.64) ’此係因為較高階冗餘資訊部分地儲存於快閃 s己憶體器件720之一個晶粒(例如’快閃記憶體晶粒71〇 〇) 中,留下63個晶粒(快閃記憶體晶粒71〇62· 71〇〇)用於資 料儲存。在RASIE-2模式2_2中,使用額外快閃記憶體器件 740之兩個晶粒(例如,快閃記憶體晶粒7ι〇 65及快閃記憶 體晶粒710.64),留下快閃記憶體器件72〇之全部(料個^ 粒)用於資料儲存。 曰 在一些實施例中,未填入在所有使用情況中均未使用之 晶粒。舉例而言,在可僅在RASIE 2·〇模式及㈣任^模 式中(而非在其他RASIE模式中)操作之系·统中,未填入額 外快閃記憶體器件740。 在-些實施例中,較高階冗餘資訊完全地儲存於「專 二晶粒中(例如’在RASIE_ i模式i -〇中储存於快閃記憶 曰曰粒71 〇·63或在RASIE_2模式2_2中儲存於快閃記憶體晶 ,·65及決閃s己憶體晶粒71〇 64)。在其他實施例中,較 高階冗餘資訊儲存於晶粒中之任一者中,因此(例如)在 模式K〇中’快閃記憶體晶粒710.62用於較高階冗 餘資讯’而快閃記憶體晶粒71〇·63及快閃記憶體晶粒 況中,〇用於資料儲存。在一些實施例及/或使用情 ,^白几餘資訊隨時間儲存於不同晶粒(及/或其部 IS持二此(例如)在第一時間 …持階冗餘資訊’而在第 記憶體晶粒保持較高階冗餘資訊。 第-㈣ 在各種實施例中,取決於多少快閃記憶體晶粒可用’存 161613.doc -59- 201241615 在複數種RASIE 1-0模式(及複數種尺八81£ 2〇模式卜舉例 而言,在第一RASIE i-Ο模式(如上表中所說明)中快閃記 憶體晶粒71G.63儲存較高階冗餘資訊,且快閃記憶體晶粒 710.62...710.0可用於資料健存。在第二RAsm 模式 中,快閃記憶體晶粒710.63不再可用,㈣記憶體晶粒 71〇.62儲存較高階冗餘資訊,且快閃記憶體晶粒 710.61·..71G.G可用於資料儲存,從而將可用之資料儲存量 減小一個晶粒。先前可用於資料儲存之晶粒(或其任何部 分)歸因於該晶粒(或部分)用於較高階冗餘資訊而不再可用 於資料儲存的RASIE模式有時被稱為容量減少之尺八8汨模 式。 在一些實施例中,使用與受較高階冗餘資訊保護之使用 者資料相同及/或類似之較低階錯誤校正編碼方案來儲存 較高階冗餘資訊。使用較低階錯誤校正方案來保護較高階 冗餘資訊使得能夠以與判定使用者資料中之不可校正之較 低階錯誤相同及/或類似的方式來判定在較高階冗餘資訊 中疋否存在不可校正之錯誤。 圖7B說明R區塊之實施例的選定細節。在跨越所有晶粒 之邏輯片段或區段中管理快閃記憶體晶粒(例如,用於回 收及/或抹除)’且片段/區段被稱為R區塊。該圖說明具有 66個快閃記憶體晶粒(快閃記憶體晶粒71〇 65 71〇 〇)之實 施例。說明區塊、頁面及作為R區塊之區塊的管理。將每 I1共閃3己憶體晶粒說明為具有N個區塊(諸如,快閃記憶體 晶粒710.65之區塊710.65B0、區塊710.65B1…區塊 161613.doc -60· 201241615 710.65BB)。總的看來,每一 R區塊為來自快閃記憶體晶粒 中之每一者的第i個區塊(諸如,R區塊760.0為來自快閃記 憶體晶粒710.65之區塊710.65B0、來自快閃記憶體晶粒 710.64之區塊0(未明確地說明),等等,至快閃記憶體晶粒 710.0之區塊710.0B0)。因此’存在總計N個R區塊(R區塊 760.0、R區塊 760.1 ...R區塊 760.R)。 在各種實施例中’ R區塊内之資料的寫入及/或等量化次 序為跨越所有器件(例如,最低至最高編號器件,如圖6之 等量化方向600概念性地建議)之頁面(例如,最低至最高) 優先,接著下一最高頁面(跨越所有器件),等等,繼續直 至R區塊之最後頁面。具體地參看圖7之R區塊760.0,一實 例次序以頁面710.0P0開始,其後接著為快閃記憶體晶粒 710.1之第一區塊中的第一頁面,等等,繼續至頁面 710.65Ρ0。該實例次序以頁面710.0Ρ1繼續,其後接著為快 閃記憶體晶粒710 · 1之第一區塊中的第二頁面,等等,繼 續至頁面710.65Ρ1。該實例次序以頁面71〇.〇ρρ完成,其後 接著為快閃記憶體晶粒710.1之第一區塊中的最後頁面, 等等,以頁面710.65ΡΡ結束。 總的看來’ R區塊之另一實例為來自快閃記憶體晶粒中 之每一者的第i個及第(i+1)個區塊(例如,來自快閃記憶體 a曰粒710.65之區塊0及1、來自快閃記憶體晶粒71〇 64之區 塊0及1,等等,至來自快閃記憶體晶粒71〇〇之區塊〇及 1)。若每一快閃記憶體晶粒中存在N個區塊,則因此存在 N/2個R區塊。R區塊之另—實例為來自複數個雙平面器件 161613.doc • 61 · 201241615 中之每一者的第i個偶數及奇數區塊。預期作為R區塊以用 於管理之快閃記憶體晶粒區塊之其他配置,包括在虛擬區 塊位址與實體區塊位址之間映射以確保R區塊具有來自每 一晶粒之一個區塊,即使一些區塊不可操作亦如此。在各 種實施例中,每一快閃記憶體晶粒中之N個區塊中的一些 用作備用者,使得在虛擬區塊位址與實體區塊位址之間的 映射具有備用(以其他方式未使用)區塊以替代尺區塊中之 區塊中之有缺陷者。 在成對或以其他相關聯群組將區塊視為形成R區塊之部 分的各種實施例中,亦將來自區塊之相關聯群組的每一區 塊之各別頁面視為至少用於寫入之單元,從而形成更大之 多區塊頁面。舉例而言,繼續上述雙平面實例,將偶數區 塊之特定者的第一頁面及奇數區塊之相關聯者的第一頁面 視為用,寫入之單元,且視情況及/或選擇性地視為用於 讀取之單° _地’將特定偶數區塊之第三頁面及相關 聯奇數區塊之第二頁面視為一單元。根據各種實施例,如 本文中使用之NVM之頁面指代以下各者中之一或多者: 画之單-頁面;NVM之多區塊頁面;視情況及/或選擇 性地視為用於讀取之—或多個個別頁面的用於寫人之N物 的多區塊頁面,及NVM之頁面的任何其他群組或關聯。 在一實施例中,較高階冗餘資訊儲存於用於資料之不 同部分的不同晶粒中。舉例而言,在於R區塊中管理快閃 記憶體晶粒之一此音始么1 rU ,. 二實施例中,較高階冗餘資訊儲存於用於 不同R區塊之不同体阴^ J决閃屺憶體晶粒中。舉例而言,用於包 161613.doc •62· 201241615 括快閃記憶體晶粒710.0之區塊〇的R區塊之較高階冗餘資 訊儲存於快閃記憶體晶粒71〇〇中,而用於包括快閃記憶 體晶粒710,0之區塊1的r區塊之較高階冗餘資訊儲存於快
閃s己憶體晶粒71 〇· 1中,等等。在一些實施例(諸如,在R 區塊中管理快閃記憶體晶粒的一些實施例)中,在已知及/ 或寫入較高階冗餘資訊所取決於之資料之後寫入較高階冗 餘資訊。 在一些使用情況中,NVM元件之一或多個部分(例如, 器件之區塊,諸如圖6之器件601的區塊639)為不可操作的 或在操作期間變得不可操作。在一些實施例中,不可操作 刀經由虛擬及貫體區塊位址(例如,經由經圖1A之映射 141及/或表143執行的處理)映射出。或者,跳過(而非明確 地映射出)不可操作部分。在基於R區塊之一些實施例中, 跳過導致一些R區塊具有不同數目個區塊,舉例而言,若 區塊710.0B0為有缺陷及不可用的,則r區塊76〇〇比r區塊 760.1少一個區塊。將較高階冗餘資訊寫入於為(例如)每一 R區塊之最後區塊的(每一r區塊)可變位置中。 在各種實施例中,圖7A之一或多個元件對應於圖丨八之 一或多個元件。舉例而言,快閃記憶體器件72〇及額外快 閃記憶體器件740共同地對應於NVM 199,且介面通道730 及額外介面通道750共同地對應於器件介面19〇。對於另一 實例’快閃記憶體晶粒710.65...710.0共同地對應於快閃記 憶體晶粒194之例項。對於另一實例,快閃記憶體器件72〇 及/或額外快閃記憶體器件740之快閃記憶體器件中的一或 161613.doc •63- 201241615 多者對應於快閃記憶體器件192之例項中的一或多者。在 各種實施例中,圖1Α之一或多個元件根據本文中描述之 RASIE操作模式管理較高階冗餘資訊及/或至少部分地基於 較高階冗餘資訊來恢復使用者資料。舉例而言,Cpu 171 之軟體執行能力之部分用以根據各種RASIE操作模式管理 較同1¾几餘資讯之運算。對於另一實例,資料處理121及/ 或ECC-X 135包括專用於及/或特定用於根據各種11八!5正操 作模式運算較高階冗餘資訊及/或恢復使用者資料的硬體 元件。對於另一實例,ECC 161偵測快閃記憶體晶粒之部 分的ECC不可校正(較低階)之讀取錯誤,且Eccx 135偵 測RASIE(較高階)讀取錯誤及/或實現對其之校正。 在各種實施例中,介面通道73〇變化地具有一個、四 個、八個或16個通道,且額外介面通道75〇變化地具有一 或兩個通道。在各種實施例中,快閃記憶體器件實施 為一個、兩個、四個、八個或16個器件,每一者分別具有 16八及四個快閃記憶體晶粒。在各種實施例 中:額外快閃記憶體器件7 4 〇實施為具有一或兩個晶粒之 器件或實施為各自具有一個晶粒之兩個器件。在一些實 施例中,額外快閃記憶體器件74〇之快閃記憶體晶粒實施 於亦實施快閃記憶體器件72〇之快閃記憶體晶粒的器件 :°舉例^言’—個快閃記憶體器件實施66個快閃記憶體 晶粒(快閃記憶體晶粒71〇·65...71〇 〇)β對於另一實例,兩 個快閃記憶體器件各自實施33個快閃記憶體晶粒,例如, 在第-快閃記憶體器件中實施3 3個快閃記憶體晶粒(快閃 161613.doc • 64 - 201241615 記憶體晶粒710.65 ...710.33)及在第二快閃記憶體器件中實 施33個快閃記憶體晶粒(快閃記憶體晶粒710.32…7 10.0)。 預期快閃記憶體晶粒及快閃記憶體器件之其他配置。在具 有實施於亦實施快閃記憶體器件720之快閃記憶體晶粒的 器件中的額外快閃記憶體器件740之一些實施例中,快閃 a己憶體晶粒經由共用介面通道或者經由專用於快閃記憶體 晶粒中之特定者(或集合)的介面通道來通信。雖然將快閃 記憶體器件720及額外快閃記憶體器件74〇說明為具有特定 數目個快閃s己憶體晶粒(分別為2及64),但預期其他實施 例,諸如具有2、4、8、16、32或128個快閃記憶體晶粒之 快閃記憶體器件720及/或具有〇、個快閃記憶體晶粒 之額外快閃記憶體器件74〇。 圖8說明具有rASIE之動態較高階冗餘模式管理之實施 例的選定細節,諸如在由圖7八及/或圖叩所說明之各種實 施例啟用之RASIE模式之間的動態切換。在—些實施例及/ 或使用情況中,提供一種形式之柔性降級,其中儲存子系 統(例如,SSD)自在第-較高階冗餘模式中操作動態地轉 變至在第二較高階冗餘模式中织乍。該轉變係、回應於失敗 之债測,諸如整個快閃記憶體晶粒或其一或多個部分或對 其之操作(諸如,讀取或寫入操作)的永久或間歇失靈 (malfunction)。根據各種實施例,該轉變為以下各者中 一或多者·· SSD之全體;在SSD之一或多個子集上執行7 及在SSD之一或多個R區塊上執行。舉例而言,若儲存 R勝2資訊之NVM器件中之一者的特定區塊:程式化: 161613.doc -65- 201241615 1失敗則s有該特定(失敗)區塊之R區塊的後續操作轉 變至不同較咼階冗餘模式(例如,RASE」模式),而則中 之其他R區塊未文影響且繼續在rasie_2模式中操作。 參看圖8,處理以柄袖够 从根據第一較高階冗餘模式在快閃記憶 體晶粒中配置較离ptb 7 k淡 _ q Ρό几餘資訊及資料儲存(例如,使用者 資料及/或使用者可用空間)開始(在第—較高階冗餘模式中 操作802)。接著程序進行以判定是否已偵測到失敗(失敗? ’),諸如較低階不可校正之讀取錯誤或寫入,程式化失 ^。^尚㈣測到失敗’則程料回進行以繼續在第一較 门Ρ白几餘模式巾操作^若已偵測到失敗,則程序進行以自 在第":較高階職模式巾㈣切換至在第4高階冗餘模 式中操作。切換藉由(視情況)減小可用於資料儲存之空間 (減少可用空間8G4)以考量該失敗來開始。若第二較高階冗 、模式使用比第-較高階冗餘模式足夠少的較高階冗餘資 訊,則省略可用空間之減小。切換藉由根據第二較高階冗 餘模式重新組織資料儲存(重新配置資料儲存8 q 5 )而繼續。 =新組織包括視情況將所有使用者資料及/或使用者可用 :間自發生失敗之快閃記憶體晶粒移動至快閃記憶體晶粒 另者(在些貫施例中,藉由操縱指標及/或其他資 料結構元素而完成使用者可用空間移動)。切換進」步藉 2下動作:繼續經由第-較高階冗餘模式之較高階冗餘 曰代選擇!·生地尋回(若可能)儲存於發生失敗的快閃記憶體 阳粒中之任何使用者資料,且根據第二較高階冗餘模式將 所尋回之使用者資料寫入至快閃記憶體晶粒中之另一者 161613.doc •66- 201241615 (恢復/儲存失敗之使用去 失敗,則省略尋回。切拖佳)。若失敗為寫入/程式化 一 * 、、 換進一步藉由視情況根據第二較高 曰曰 p:几餘模一式運异較高階冗餘資訊且將其寫入至快閃記憶體 粒(>判疋/儲存修訂之較高階冗餘資訊807)而繼續。若第 較高階冗餘模切料前歸因於在第—較高階冗餘模式 中操作而在適當位置的較高階冗餘資訊一起操作,則省略 運算及f人。接著操作在第:較高階冗餘模式中開始(在 第二較高階冗餘模式中操作8〇8)。 失敗偵測(失敗? 8G3)係經心下各者巾之-或多者進 行:較低階錯誤校正(例如,根據一或多種ECC技術)、較 高階錯誤校正(例如’根據一或多種RASIE技術)及由快閃 記憶體晶粒中之"*或多者或其部分報告的失敗狀態。舉例 而言,特定快閃記憶體晶粒之特定部分内之讀取的多於臨 限數目個較低階校正視情況及/或有條件地導致將特定快 閃記憶體晶粒(或特定部分)視為失敗,且執行較高階冗餘 模式切換使得不再使用該失敗之快閃記憶體晶粒(或部 分)^對於另一實例,若較高階錯誤校正失敗,則將快閃 記憶體晶粒(或其部分)中之適當者視為失敗,且執行較高 階冗餘模式切換使得不再使用該失敗之快閃記憶體晶粒 (或部分)。對於另一實例,若快閃記憶體晶粒返回程式化 失敗狀態(指示寫入操作不成功),則將快閃記憶體晶粒中 之適當者的適當區塊被視為失敗,且視情況及/或有條件 地執行較高階冗餘模式切換使得不再使用該失敗之快閃記 憶體晶粒。 161613.doc • 67· 201241615 在一些實施例中’藉由經由虛擬及實體區塊位址(例 如,經由經圖1A之映射141及/或表143執行的處理)之重新 映射來替代失敗之區塊。替代失敗之區塊而映射來自備用 區塊之集區的備用區塊》將在失敗之區塊中寫入之任何内 容複製至替代區塊,且寫入自在失敗之區塊中發生失敗之 處在備用區塊中進行。. 在一些實施例中,跳過(而非明確地重新映射)失敗之區 塊’從而產生「空洞(h〇ie)」,在該空洞所在之r區塊接下 來被抹除(為重新寫入作準備)時該空洞視情況及/或有條件 地導致較高階冗餘模式切換。若空洞在用於資料儲存之位 置中,則不進行切換,且保留空洞。若空洞在用於較高階 冗餘資訊之位置中,則將較高階冗餘資訊儲存於另一位置 中’且視情況切換較高階冗餘模式。 在一些實施例及/或使用情況中,儲存於發生失敗之快 閃記憶體晶粒中之使用者資料的尋回係不可能的。舉例而 舌,若失敗係歸因於經由較高階錯誤校正所偵測的一些類 型之失敗及/或由快閃記憶體晶粒中之一或多者或其部分 報^的些類型之失敗狀態,則可遺失一些使用者資料。 二實施例中,圖8之處理係在回應於複數個失敗(例 SSD控制器)而在較高階冗餘模式之間動態地轉變之内 令脈絡中執行。具體言之,SSD控制器開始在第—較高階 二餘模式中操作且回應於第一失敗而動態地轉變至第二較 5 餘模式,且隨後回應於第二失敗而自第二較高階冗 餘模式動態地轉變至第三較高階冗餘模式,料。舉例而 161613.doc -68 - 201241615 言’ SSD控制器根據RASIE_2模式2_2操作各種快閃記憶體 曰曰粒且回應於第一失敗而將該操作動態地轉變為根據 RASIE-2模式2-1。隨後,SSD控制器回應於第二失敗而將 操作動態地轉變為根據rASIE_2模式2_〇 ^進一步隨後, SSD控制器回應於第三失敗而將操作動態地轉變為根據 RASIE-1容量減少模式丨·%除一個快閃記憶體晶粒用於較 同階冗餘資訊且62個快閃記憶體晶粒用於資料儲存外,容 量減少模式1-0類似於RASIE-1模式1_〇)。 作為一特定實例,考慮耦接至圖7八之元件的SSD控制器 (諸如,圖1A之SSD控制器100),最初在RASIE_2模式22中 操作(例如,較高階冗餘資訊在快閃記憶體晶粒71〇65及快 閃記憶體晶粒710.64中,且資料儲存在快閃記憶體晶粒 71〇.63...71G.〇中),其對應於在第_較高階冗餘模式中操 作。接著執行對快閃記憶體晶粒中之—或多者㈣取或者 寫入。該讀取導致不可校正(較低階)之ECC失敗,或者在 快閃記憶體晶粒中之特定者之部分(例如,快閃記憶體晶 粒710.62之用於使用者資料及/或使用者可用空間之頁面) 中,寫人為不成功的。作為回應,SSD控制器自在_ΐΕ· 2模式2-2中操作動態地切換至在汉線£_2模式中操作, 不再使用快閃記憶體晶粒71〇 62中之任一者。當RASIES 模式2-1中之操作提供63個晶粒用於資料儲存(與μ 模式2·2中之64個晶粒對比)時,可用於資料儲存之空間自 減小至63個晶粒,且相應地移動使用者資料及/ 或使用者可用空間。例如’根據使用者可用空間而將來自 161613.doc •69- 201241615 快閃記憶體晶粒710.62之所有使用者資料移動至快閃記憶 體晶粒710.63及快閃記憶體晶粒71〇6171〇〇之部分。基 於快閃記憶體晶粒710.65及/或快閃記憶體晶粒71〇 64中之 較尚階冗餘資訊恢復具有不可校正之ECC失敗之頁面中的 任何使用者資料。運算基於快閃記憶體晶粒7丨〇 63及快閃 記憶體晶粒710.61.··710.0中之資料儲存及根據RASIE 2模 式2-1的較高階冗餘資訊且將其儲存於快閃記憶體晶粒 710.65及/或快閃記憶體晶粒71〇 64中。ssd控制器接著在 RASIE-2模式2-1操作(較高階冗餘資訊在快閃記憶體晶粒 710.65及快閃記憶體晶粒71()64中,及資料儲存在快閃記 憶體晶粒710.63及快閃記憶體晶粒7 j 〇 6】7】〇 〇幻中。 雖然前文描述具有整個快閃記憶體晶粒之細微度的獨立 矽元件之動態較高階冗餘模式管理的若干實施例,但其他 實施例實施具有為晶粒之部分(諸如,一或多個頁面、區 塊或R區塊)的獨切元件之動態較高階冗餘模式管理。 在=實施例中,圖8之—或多個元素的處理或關於圖8 之-或多個疋素的處理全部或部分地藉由 元件(或其部分)來執行。舉例而言,cpum =二 能力之部分用以(諸如 軟體執灯 門m “ )藉由心導減小可用於資料儲存之空 間或“導重新組織資料儲 動態轉變。對於另=子而管理較南階冗餘模式之間的 包括專…/實例,資料處理121及/或ECC-Χ 135 -階冗餘f或特定用於根據「目標」冗餘模式運算較 ^几餘資訊之硬體元件1於另— 較低階(例如,^ 161貫施 )錯誤校正及不可校正錯誤之偵測,而 161613.doc 201241615 ECC-X 135實施較高階(例如,rASIE)錯誤校正及不可校正 錯誤及/或記憶體元件失敗之偵測。對於另一實例,藉由 ECC-X 135之一或多個部分來執行與(較高階)冗餘模式之 間的動態轉變有關的功能性之所有或任何部分。 較高階冗餘及適應性較低階碼速率 在一些實施例及/或使用情況中,較低階錯誤校正使用 適應性碼速率(例如,使用可變碼速率之適應性Ecc技 術)。舉例而言,第一讀取單元係以比以第二碼速率管理 之第二讀取單元提供相對更多可用資料位元的第一碼速率 來管理。在使用可變碼速率之較低階錯誤校正之一些實施 例及/或使用情況中,較高階冗餘資訊儲存於以較低階錯 誤校正管理的獨立矽元件之部分(諸如,快閃記憶體晶粒 之部分)中,關於由較高階冗餘資訊保護的資料儲存,較 低階錯誤校正提供相對更多可用資料位元或最多可用資料 位元。在各種實施例及/或使用情況中,儲存較高階冗餘 資訊之部分基於每一R區塊,基於每一晶粒,隨時間動態 地或其任何組合而變化。在各種實施例中,基於關於較低 階錯誤校正碼速率具有最多可用資料而選擇一或多個晶 粒R區塊、區塊及/或頁面以用於較高階冗餘資料之儲 存。 舉例而言,較高階冗餘資訊基於每一尺區塊而儲存於變 化位置(諸如,區塊位置)處,該等位置(諸如,區塊)為基 於較低階錯誤校正碼速率具有最多可用資料的彼等位置。 在任意實财,考錢7A之内容脈絡中gAslE_2操作模 16I613.doc •71 - 201241615 式情況,其中將66個快閃記憶體晶粒之集合視為各自具有 一個區塊之高度之至多Μ個R區塊的邏輯「堆疊」,其中M 為每一快閃記憶體晶粒之區塊數目。(在概念上最簡明狀 況下’堆疊中之每一 R區塊係由來自每一晶粒之編號相同 之實體區塊組成,但為容納失敗之區塊,在至少一些實施 例中解除此約束。在另一實施例中,維持約束,但容納對 應於失敗之區塊之「空洞」)。因此,每一 R區塊具有至多 66個區塊’其對應於來自快閃記憶體晶粒71〇 〇至快閃記 憶體晶粒710.65中之每一者的一區塊。(在圖7八中,雖然 僅明確地列舉在範圍71 〇.〇至710.65中之一些快閃記憶體晶 粒,但應理解,藉由使用省略號而内隱地說明此範圍中之 所有快閃記憶體晶粒)。將較高階冗餘資訊寫入至每一 r區 塊之基於較低階校正碼速率而具有最多可用資料之任一區 塊卜若(例如)在第一 R區塊中,對應於快閃記憶體晶粒 710.15及71G.49之區塊基於較低階錯誤校正碼速率碰巧具 有最多可用資料’則將較高階冗餘資訊寫入至彼等區塊 (對應於快閃記憶體晶粒71〇 15及71〇 49)中。而若在第二r 區塊中,對應於快閃記憶體晶粒71〇9及71〇35之區塊基於 較低階錯誤校正碼速率々 逑早碰巧具有最多可用資料,則將較高 階冗餘資訊寫入至狨笙fK地& 等^塊(對應於快閃記憶體晶粒710.9 及710.35)中。在一此眘尬丨山 二實施例中’在已知R區塊中之所有其 他資料之後寫入較高階冗餘資料。 圖9說明具有受储存於 - 什於項取單70中之一或多者中之較高 階冗餘資訊保護的摘庙Μ ^ , 的適應性(例如,隨時間及/或依據位置而 l6l6\3.doc -72 201241615 不同及/或變化)碼速率之較低階冗餘資訊的讀取單元 (911、931…951、971)之實施例。讀取單元中之每一者具 有經啟用及/或分配以含有使用者資料(911.u、 931.U…951.U、971.U)的部分,及經啟用及/或分配以含有 較低階冗餘資訊(諸如’如較低階ECC(911.E、 931.Ε·.·951_Ε、971.E)之ECC碼之檢查位元)的剩餘部分。 在該圖中,相對地按比例調整垂直尺寸且其指示相對大 小。因此’讀取單元911及951具有相同之第一大小(在一 些實施例中’對於所有NVM器件之所有區塊,所有讀取單 元為相同大小),較低階ECC部分931.Ε及951.Ε具有相同之 第二大小’且較低階ECC部分911.Ε及971.Ε具有相同之第 二大小。讀取單元931大於讀取單元911及951,讀取單元 911及951又大於讀取單元971。使用者資料部分93丨。大於 使用者資料部分951 .U。使用者資料部分95 i.u大於使用者 資料部分911 ·υ。較低階ECC部分95丨·Ε小於較低階ECC部 分 911.E。 如該圖中所說明,各別讀取單元具有各別大小(例如, NVM之每一各別區塊),從而使得能夠變化如各別區塊中 使用之較低階碼速率。更具體言之,讀取單元931及951具 有相同之較低階冗餘資訊量(931丨及951£為相同大小), {讀取單元931之較低階碼速率高於讀取單元95 1之較低階 碼速率,此係因為讀取單元931含有比讀取單元951(含有 使用者資料951.U)多的使用者資料(931卩)。 如該圖中所說明,各別讀取單元具有各別大小之使用者 161613.doc -73- 201241615 資料,從而使得能夠在具有相同大小之兩個或兩個以上讀 取單元中之每一者中具有各種大小之使用者資料β舉例而 言,變化使用者資料之大小以改變用於特定讀取單元中之 較低階碼速率。更具體言之,讀取單元951及911具有相同 大小,但具有不同各別量之使用者資料(951 u&911 , 且因此具有不同各別量之較低階冗餘資訊(951E及 911.E),從而使得讀取單元951能夠具有比讀取單元911高 之較低階碼速率。 在一些實施例及/或使用情況中,變化及/或改變較低階 碼速率有利地使得能夠提供足夠量之較低階ECC資訊以達 成較低階錯誤校正要求,同時最大化使用者資料量。 在讀取單元中具有變化量之使用者資料的一些實施例 中,較1¾]¾几餘資訊儲存於具有最大使用者資料量之讀取 單元中之一或多者中β舉例而言,在圖9中,在使用 RASIE-1模式之情況下,較高階冗餘資訊儲存於使用者資 料931.U中,且在使用RASIE_2模式之情況下,較高階冗餘 資訊儲存於使用者資料931.U及使用者資料9511;中。將較 尚階冗餘資訊儲存於具有最大使用者資料量之讀取單元 (在受較尚階冗餘資訊保護之讀取單&間)中確絲在足夠 之較高階冗餘資訊以保護所有其他讀取單元中之使用者資 料。 根據各種實施例或多種技術用以判定受較高階冗餘 資訊保護之數個讀取單元間之—或多個讀取單元中的哪一 者用以儲存較高階冗餘資訊。在第一實例中,❹具有最 161613.doc •74. 201241615 大使用者資料量的最遲寫入之一個(對於議心)或兩個 (對於RASIE-2)讀取單元H實例中,制具有最大 使用者資料量的最早寫入之-個(對於論心)或兩個(對 於RASIE-2)讀取單心類似地,用以確定性地選擇具有最 大使用者資料量之-或多個讀取單元以便保護其他讀取單 元中之所有剩餘使用♦資料的任何技術在本文中所考慮之 技術的範疇内。 較高階冗餘資訊運算技術 在各種實施例及/或使用情況中,較高階冗餘資訊係藉 由多種技術來運算,諸如經由同位檢查、RSA/或加權和 技術。舉例而t,在使得能夠自一個(較低階)失敗(例如, RASIE-1)恢復的—些較高階冗餘模式中,經由同位檢查技 術來運算較高階冗餘資訊。對於另-實例,在使得能夠自 兩個(較低階)失敗(例如,尺八31£_2)恢復的一些較高階冗餘 模式中,經由同位檢查與尺8技術之組合來運算較高階冗餘 資甙。使用同位編碼來運算較高階冗餘資訊之第一部分且 使用RS編碼來運算第二部分。對於另一實例,在使得能夠 自兩個失敗(例如,RASIE_2)恢復的一些較高階冗餘模式 中,經由同位檢查與加權和技術之組合來運算較高階冗餘 資訊。使用同位編碼來運算較高階冗餘資訊之第—部分且 使用加權和編碼來運算第二部分。較高階冗餘資訊係(例 如)使用較低階失敗偵測技術(諸如,ECC)經由NVM之頁面 的讀取及寫入來管理,該等較低階失敗偵測技術(諸如, ECC)與用於可用於儲存受較高階冗餘資訊保護之資料的 161613.doc •75- 201241615 N V Μ之頁面之較低階失敗偵測技術相同或類似。 作為RASIE-2之特定實例,經由跨越尺區塊之等量區中 的所有第-頁面之义⑽使用同位編碼來運算較高階冗餘資 訊之第-頁面。更具體言之,對跨越&區塊之等量中的所 有第-頁面之所有第—位元組執行x〇R,產生較高階冗餘 資訊之第頁面的第一位元組。類似地,藉由對跨越r區 μ等的所有m之所有第二位元組進行麗 而形成較高階冗餘資訊之m組,且對等量區中之所 有第頁面之所有位元組執行XC)R(^形成較高階冗餘資訊 斤有4元.,且如下使用加權和技術來運算較高階冗餘資 訊之第二頁面。 在有限域(諸如,Galois域(用作一實例))上執行算術驾 算。實例假定正被操作之資料為位元組寬,且因此使用, 如GF(256)之域。在各種實施例中,在任何單元巾對資$ 進行操作。 向等量區中之每一頁面指派唯一非零「索m 引之值以簡化實施複雜性,且該等值不與產生多項式之< =形式相㈤°舉例而言’頁面係由等量區中之自〇至N七 :曰曰粒位置來標記(例如,藉由軟體)’且索引之合適值為彳 粒號(細255,則確保為非零)之戰。索引值之另η 擇為最低權重(設定位元之最少數目或清除位元之最少! ?非零整數’(例如)以減少及/或最小化硬體成本。在-二實施例及/或使用情況中’在處理頁面 碼值以用於素引最小化轉變及/或減少功率。 , 161613.doc -76 - 201241615 不根據有限域算術運算而是根據其他原理來選擇索引 值。儘管如此,但每一索引值對應於有限域中之非零元 素。假定頁面i具有索引值Ki(且頁面】具有索引值Kj)。加 權和冗餘為Ki*Pi(每一位元組(在GF域上)乘以其索引值)之 (GF域)總和(在來自每一頁面i之相應位元組pi範圍内)。 因此,對於每一位元組,將加權和冗餘資訊運算為: R〇=在所有相應位元組Pi範圍内的總和;
Rl=在所有相應位元組Ki*pi範圍内的總和; R0為所有相應位元組之XOR;且 义以為位元組之加權和,其中權重經選擇為索引值。 前述運算針對頁面中的相應位元組中之每一者而反覆,從 ,產生RMR1中之每一者的位元組之相應頁面。在以下 ’述中’為闡述清楚起見,在一些内容脈絡中分別將⑼及 R1描述為單一元素(例如’每-者為單-位元組),但如在 前述運算申,总 4*. * - - * 逆异1f母一者表不凡素之各別頁面(例如,每一者 為位元組之頁面)。
Pi表示頁面i中之位元組,且⑽示頁面j中之位元組。 :述關於來自每一頁之相應位元組的一等量區的處理,且 且:有相應位元組上執行反覆。若_些頁面歸因於(例如) ^不同(較低階)冗餘碼速率π「短於」纟他頁面,則較 :面以零填補(或藉由同樣用於編碼及解碼之任何已知 值填補)’使得經有效處理之所有頁面具有相同大小。 根據各種實施例,箕 舁及尺1之求和可經由各種串列 或並列運算以任何次序執行。頁面不必以任何特定次 161613.doc •77· 201241615 序處理,此係因為Ki*Pi在Kj*Pj之前抑或之後相加對R1之 結果沒有影響。根據各種實施例,對應於冗餘資訊之頁面 的各種位元組之R0及R1值的運算彼此獨立且可經由各種 串列及/或並列運算以任何次序運算。此外,自R1減去 Ki*Pi(及自R〇減去Pi)實現自關於頁面之運算效應「退 出」。因為係在GF域上進行,所以加法及減法皆為x〇R(因 此相減簡單地等效於第二次相加),在一些實施例及/或使 用情況中’無需任何特定硬體用於Gf域實施(例如,邏輯 XOR能力係足夠的)以「退出」頁面。 在不可校正之較低階錯誤的情況下,在一些實施例中, 較高階校正以重新運算R〇& R1但省略具有不可校正之較 低卩白錯誤的頁面(有時稱為欄)開始。校正藉由自原始減 去重新運算之R〇以提供ΔΚΟ,且自原始R1減去重新運算之 R1以提供而進行。 右不存在不可校正之較低階錯誤,則重新運算之R〇及 R1皆為零。若存在不可校正之較低階錯誤,則重新運算之 R0及R1(在進行減法之後)反映「遺失之」資料(其在第二 次未被相加,但存在於原始值中)。 右存在—個不可校正之較低階錯誤,則重新運算之R0用 以校正錯誤(且不需要重新運算之R1)。 a子在兩個不可校正之較低階錯誤,則重新運算之R〇及 R1用以校正錯誤°若則及Ri值之頁©兩者為具有不可校 正之較低階錯誤的頁面,則無需資料儲存頁面之校正。若 R1值之頁而泛θ 馬具有不可校正之較低階錯誤的頁面中之一 161613.doc • 78 · 201241615 者,則校正係經由R〇(重新運算之R〇值為具有不可校正之 較低階錯誤的資料儲存頁面之值)進行。 若在資料儲存頁面中存在兩個不可校正之較低階錯誤, 或若R0頁面為具有不可校正之較低階錯誤的頁面中之一 者,則校正以運算如上述之Δ]ΕΙ〇及ΔΚ1開始。若尺〇頁面為 具有不可校正之較低階錯誤的頁面中之一者,則視情況省 略ARO頁面之運算。若頁面丨及頁面』為具有不可校正之較 低階錯誤之頁面,則重新運算之ΔΙι〇=ρί+ρ』,且重新運算 之△RlsKPPi+KpPj。方程式求解產生以下結果:
Pi=(ARl-Kj*ARO)/(Ki-Kj)
Pj=AR〇-Pi 若R0為具有不可校正之較低階錯誤的頁面中之一者則 (因為R0不包括於尺丨中)ΔΚ1=Κί*ρί,或pi=AR1/Ki ;藉由在 上述公式中設定Kj=0(以忽略^ro)而獲得相同結果。 在替代貫施例中,替代Galois域而使用由整數模p界定之 有限域(其中p為質數)。運算與上文描述之彼等運算相同, 其中加法為整數加法模p,且乘法為整數乘法模p。舉例而 言’若頁面為位元組之頁面,則使用整數模257之有限 域。所有使用者資料位元組均在範圍〇至255中且以每次一 個位元組來儲存。然而,R1結果具有在〇至256之範圍内的 值’從而需要一個以上位元組用於表示。存在編碼自〇至 256之值的許多方式以最小化儲存空間且使得能夠在具有 減少之過度耗用的情況下儲存R1頁面。舉例而言,值〇及 256分別儲存為九位元序列〇〇〇〇〇〇〇〇〇及〇〇〇〇〇〇〇〇ι,且所 161613.doc -79- 201241615 有其他值以八位元儲存。假定R1值隨機分佈,儲存過度耗 用為<0.1%。如參看圖9所描述,選擇ri頁面以且有最大 使用者資料量’從而使得能夠在一些使用情況中隱藏儲存 過度耗用。 圖10說明(例如)如由在諸如圖7A之内容脈絡中的rasie_ 2模式2-2所使用及如圖7B中進一步說明的較高階冗餘資訊 結果及資料來源對應物之實施例的選定細節。圖1〇明確地 說明快閃記憶體晶粒710.0、710.63、710.64及710.65,且 藉由省略號(...)内隱地說明快閃記憶體晶粒 71〇·1…710.62。說明快閃記憶體晶粒之區塊、頁面及頁面 内之位兀組的選定細節。較高階冗餘資訊之第一部分經說 明為R0 1010(儲存於快閃記憶體晶粒71〇 64中),且使用同 位編碼來運算。較高階冗餘資訊之第二部分經說明為R1 101U储存於快閃記憶體晶粒710 65中),且使用加權和編 瑪來運算。用於資料資訊之儲存經說明為資料1G19(储存 於快閃記憶體晶粒71〇〇…71〇 63中)。 虛線箭頭HHH㈣性地指示基於資料聊之所有第一頁 面(跨越所有快閃記憶體晶粒)之相應第-位元組的兩位元
冗餘運算結果(一。及…之每一者一個位I j如所說明’兩位元組結果為第-RG及R1頁面中之每 斜^的卜位元組。虛線箭頭職概純地指示基於資 運篡杜里, 貞由之相應最後位兀組的兩位元組冗餘 運算結果(R0 1010及R1⑻ ea 1中之每一者一個位元組)。如 ° ’兩位元組結果為第頁面中之每-者上 161613.doc 201241615 的最後位元組。虛線箭頭1003概念性地指示基於資料i 〇 19 之第一區塊(跨越所有快閃記憶體晶粒)之相應最後頁面的 兩頁面几餘運算結果(R〇 1〇1〇及R1 中之每一者一個頁 面)。 注意到’如本文中別處所描述,在一些實施例中,較高 階几餘資訊健存於用於資料之不同部分的不同晶粒中。因 此,在一些實施例中,跨越各種晶粒(而非兩個「專用」 晶粒’如圖10中所說明)而儲存灿及尺卜 圖11說明根據各種實施例之在各種操作條件下的(例如) 如由在諸如圖7A之内容脈絡中的尺八81^2模式22所使用及 如圖7B及圖1〇中進一步說明的較高階冗餘資訊運算之實施 例的選定細節。更具體言之,圖丨丨說明根據(例如)由圖j 〇 之虛線箭頭1001概念性地說明之兩位元組冗餘運算結果的 用於R0之位元組的同位編碼運算及用於R1之位元組的加 權和編碼運算。操作條件包括以下各者中之一或多者:在 有限域(諸如,〇^1〇丨3域)上執行算術運算,索引(對應於圖 11巾之虛設求和變數「i」值)為快閃記憶體晶粒號之丨補數 (或任何其他唯一及非零編號),及索引對應於有限域中之 非零元素。針對尺〇及R1之所有位元組而基於相應資料位 元組重複如圖11中所說明之運算。注意到,非零索引使得 R1值能夠包括來自Pi之每一元素的貢獻值(c〇ntributi〇n)。 因此,運算R〇之位元組中之任一者彼此或在R1之位元 組中之任一者之間不存在相依性。因此,預期各種實施 例,其中完全(整體地)並列地、部分並列地或完全_列地 161613.doc -81 - 201241615 運算R0及R1值。舉例而言,並列地運算頁面之所有則及/ 或R1位元組。對於另一實例,並列地運算頁面之所有R〇 位元組’其後接著為(或其之前為)並列地運算頁面之所有 R1位元組》 此外’不存在關於運算R0之位元組中之任一者相對於彼 此或相對於運算R1之位元組中之任一者的排序要求。因 此’預期各種實施例,其中相對於彼此完全按次序、相對 於彼此分離地按次序(例如,R0運算相對於彼此按次序但 相對於R1不按次序,且…運算相對於彼此按次序但相對 於R0不按次序)或無特定排序(例如,完全無次序、非按次 序或隨機排序)來運算R〇及以值。舉例而言,以特定次序 (例如,自最低位元組至最高位元組)來運算頁面之所有r〇 位元組,其後接著為以該特定次序運算頁面之所有尺丨位元 組。對於另-實例,以特定次序運算頁面之所有賺元 組,且獨立地以該特定次序運算頁面之所有Ri位元組。對 於另一實例,以相對於彼此無特定次序(例如,當資料運 算元變得可用時)來運算頁面之所有R〇位元組以I頁面之 所有R1位元組。 對於另一實例,以由對一或多個NVM(每一者具有η —)或夕個陕閃3己憶體晶粒)執行的一或多個讀取操作二 完成次序判定的次序來運算—或多個f面之所有如及只 位疋組’該等讀取操作詩讀取由圖u中所說明之求和』 加權和運算(Pi)參考的資料位元組。在― < 乂由讀取操作之完成判定的次序執行運算使斗 161613.doc •82· 201241615 能夠減少或消除在NVM與經啟用以執行運算之 缓衝。在一些實施例及 疋間的 例及’或使用情況中,以由讀取操作之 完成判定的次序執行運算使得能夠減少用以執行運算 憶體頻寬(諸如,NVM之記憶體頻寬)。 對於另-實例’以由回應於對一或多個nvm(每一者具 有⑼如卜或多個快閃記憶體晶粒)執行的讀取操作而傳= 之資料及/或可得到之資料之次序判定的次序來運算一或 夕個頁面之所有肋及以位元組,傳回之資料及,或可得到 之資料對應於由圖U中所說明之求和及加權和運算⑻)參 考的資料位7L組。在-些實施例及/或使用情況中,以由 傳回之資料及/或可得到之資料判定的次序執行運算減少 或消除在NVM與經啟用以執行運算之元件n緩衝。在 些實施例及/或使用情況中,以由傳回之資料及/或可得 到之資料判定的次序執行運算減少用以執行運算之記憶體 頻寬(諸如,NVM之記憶體頻寬卜在一些實施例中,以特 疋。入序(例如,自Pi之最低位元組至最高位元組)執行讀取 操作,而在其他實施例中,不以特定次序執行讀取操作。 圖12說明(例如)在(諸如)與圖丨丨相關聯且較低階失敗在 頁面j上發生之内容脈絡中自一個(較低階)失敗(單一操作 期間)恢復之實施例的選定細節。注意到,若較低階失敗 係在R0或R1頁面上,則如由圖n所描述而重新判定R〇(或 R1)。圖12說明針對頁面j之恢復值之一位元組的運算(注意 到’求和省略發生失敗之頁面j)。重複如圖12中所說明之 運算以基於R0之相應位元組及來自除頁面j外之所有資料 161613.doc -83 · 201241615 頁面的相應位元組來判定頁面』之所有位元組的恢復值。 因此,運算頁面j之恢復值的位元組中之任一者彼此之 間不存在相依性。因此,預期各種實施例,其中以類似於 針對R0及R1值之前述運算的方式而在高度並列至高度串 列之範圍内運算Pj恢復值。此外,不存在關於運算頁面』之 恢復值中之任一者相對於彼此的次序要求。因此,預期各 種實施例,其中以相對於彼此變化之次序、以類似於針對 R0及R1值之前述運算的方式來運算pj恢復值。 一些例示性實施例以至少部分地由對一或多個nvm(每 一者具有(例如)一或多個快閃記憶體晶粒)執行的一或多個 讀取操作之完成次序判定的次序來執行關於判定恢復值之 運算,該等讀取操作用於讀取NVM以獲得如由圖12所說明 之R0及/或Pi值H實施例及⑼使用情況中,以讀取 操作之完成次序執行運算使得能夠減少或消除在nvm與經 啟用以執行運算之S件之間的緩衝。在—些實施例及/或 使用情況中’以讀取操作之完成次序執行運算使得能夠減 少用以執行運算之記憶體頻寬(諸如,NVM之記憶體頻 寬)。 一些例示性實施例以至少部分地由自一或多個nvm(每 一者具有(例如)一或多個快閃記憶體晶粒)傳回之資料及/ 或可得到之資社次序判定的次序來執行關於判定恢復值 之運算’傳回之資料及/或可得到之資料係回應於對ν· 執行以獲得如由圖12所說明之R0及/或pi值的讀取操作。 在一些實施例及/或使用情況中,以自讀取操作傳回之資 i61613.doc -84 * 201241615 ^及/或可得到之資料的次序執行運算減少或消 ==行運算之元件之間的緩衝。在-些實施例及/ 或使用情況中,以自讀取操作傳回之資料及/或可得到之 資料的次序執行運算減少用以執行運算之記憶體頻寬(諸 如’ NVM之記憶體頻寬在一些實施例中,以特定次序 (例如’自Pi之最低位隸至最高位元⑽執行讀取操作, 而在其他實施例中,不以特定次序執行讀取操作。 圖13A至圖13D說明(例如)在(諸如)與圖u相關聯且較低 階失敗已在頁面爪及n上發生之内容脈絡中自兩個(較低階) 失敗(單一操作期間)恢復之實施例的選定細節《注意到, 若較低階失敗係在R〇4R1頁面上,則R〇4R1無需用於資 料恢復’且不存在用以恢復資料之處理。另外,注意到, 若較低階失敗中之一者為R1頁面,則資料恢復如由圖i 2所 描述而進行。若較低階失敗中無一者係在R0或R1頁面 上’則Pm及Pn值之恢復如下進行。圖13A說明作為R0I的 修訂之R0之一位元組的運算及作為R1,的修訂之旧之一位 元組的運算(注意到,求和省略發生失敗之頁面!„及n)。圖 13 Β說明將原始冗餘資訊(R〇、R1)之一位元組與修訂之冗 餘資訊(R0'、R1')及自用以形成修訂之R0及R1的求和中省 略的項(Pm+Pn及Km*Pm+Kn*Pn)相關的等式》圖13C說明 圖13B之代數重排,其中引入項德耳塔R〇(AR〇)及德耳塔 Rl(ARl)。圖13D說明對於pn及pm之圖13C之解,且因此表 示基於Rl、R0之相應位元組及來自除頁面m及η外之所有 資料頁面的相應位元組的頁面η之恢復值之一位元組的運 161613.doc • 85 · 201241615 算及頁面m之恢復值之一位元組的運算。注意到,唯一索 引實現非零分母’此係因為Κη相對於Km為唯一的。 在各種實施例中,執行如由圖13 A至圖13D所表示之運 算以判定頁面m之恢復值的一位元組及頁面η之恢復值的一 位元組。重複該等運算以基於R1、R〇之相應位元組及來 自除頁面m及η外之所有資料頁面的相應位元組判定頁面m 及η之所有位元組的恢復值。 因此’運算頁面η之恢復值的位元組中之任一者彼 此之間不存在相依性。因此,預期各種實施例,其中以類 似於針對Pj恢復值之前述運算的方式而在高度並列至高度 串列之範圍内運算Pm及/或pn恢復值。此外,不存在關於 運算頁面Pm及/或頁面Pn之恢復值中之任一者相對於彼此 的次序要求。因此,預期各種實施例,其中以相對於彼此 變化之次序、以類似於針對pj恢復值之前述運算的方式運 算Pm及/或Pn恢復值。 一些例示性實施例以至少部分地由對一或多個NVM(每 一者具有(例如)一或多個快閃記憶體晶粒)執行的一或多個 讀取操作之完成次序判定的次序來執行關於判定恢復值之 運算(諸如,針對R0,及R1,之運算),該等讀取操作用以獲 得說明為用於圖13A至圖13D中之任一者中的運算之來源 的值中之一或多者。在一些實施例及/或使用情況中,以 讀取操作之完成次序執行運算使得能夠減少或消除在N v M 與經啟用以執行運算之元件之間的緩衝。在一些實施例及/ 或使用情況中,以讀取操作之完成次序執行運算使得能夠 161613. doc -86 - 201241615 NVM之記憶體頻 減少用以執行運算之記憶體頻寬(諸如 寬)。 一些其他例示性實施例以至少部分地由自一或多個 麗(每-者具有(例如)一或多個快閃記憶體晶 = 資料及/或可㈣之資料之次序判定的次序執行關於判定 恢復值之運算(諸如’針對R〇,及R1•之運算),傳回之資料 及/或可得到之資料係回應於對NVM執行以獲得說明為用 於圖ΠΑ至圖13Dt之任—者_的運算之來源的值中之_ 或多者。在-些實施例及/或使用情況中,以自讀取操作 傳回之資料及/或可得到之資料的次序執行運算減少或消 除在NVM與經啟用以執行運算之元件之間的緩衝。在一些 實施例及/或使用情況中,以自讀取操作傳回之資料及/或 可知到之肓料的次序執行運算減少用以執行運算之記憶體 頻寬(諸如,NVM之記憶體頻寬)。在一些實施例中,以特 疋-人序(例如’自Pi之最低位元組至最高位元組)執行讀取 操作’而在其他實施例中,不以特定次序執行讀取操作。 圖14A及圖14B說明運算關於自NVM接收之頁面之較高 階冗餘資訊的實施例之選定細節。圖MA說明經由以下步 驟將複數個讀取命令發送至一或多個NVM之實施例的選定 細節:發出(發出讀取操作14〇2A),檢查是否已發送所有 讀取命令(所有經發出? 1403A),且若未發送所有讀取命 令’則迴圈返回以發送該等命令中之另一者。注意到,預 期其他實施例,其中同時而非一次一個地發出複數個命 令0 161613.doc -87- 201241615 圖14B說明處理回應於如圖14A中所說明發送之讀取命 令而自NVM接收之頁面的實施例之選定細節。進行檢查以 判定頁面是否可用(頁面就緒? i侧)。若不可用 理迴圈返回轉次執行檢查。若頁面可用,則進行關於頁 面之較高階冗餘資訊處理(執行基於頁面之運算14〇3”。 接著進行檢查以判定是否已處理所有頁面(頁面完結? 14(MB)。若已處理所有頁面,則處理完成(結束μ叩b), 否則程序迴圈返回以判定另一頁面是否可用。 圖14B中所說明之處理獨立於圖14A中所說明之處理, 而非回應於如圖14A中說明發送之命令而接收頁面。在各 種情況中,頁面之到達次序根據NVM類型、狀態、操作環 境及其他因素而變化,且在—些情境中不同於對應於到達 頁面之讀取命令的發送次序或到達次序,在一些實施例及/ 或使用情況中,因為圖14A之處理獨立於圖14B(而非頁面 資料到達取決於正發送之相應讀取命令),所以在接收/處 理讀取資料(圖14B)的同時發送讀取命令(圖14A) ^在一些 實施例及/或使用情況中,(例如)若在將發送針對特定頁面 之讀取命令之前該特定頁面存在於特定緩衝器中,則自一 或多個緩衝器提供一些頁面而非經由指向Nvm之讀取命令 而請求。在一些實施例及/或使用情況中,由NVM而非回 應於發送之命令所提供的頁面與回應於發送之命令而提供 之頁面(例如’回應於針對其他活動發送之讀取命令而提 供的頁面)混合。 在各種實施例中’如由圖14A及圖14B所說明,至少部 161613.doc •88· 201241615 刀地執行如由圖11所說明的R0&R1之運算。對於第一實 例,如圖14Α所說明,將運算相應厌〇及111頁面所必要之所 有資料頁面的讀取命令發送至—或多個NVM。如圖u所說 明,在接收回應於讀取命令而接收之資料頁面時處理該等 頁面Μ運算R0及R1頁面。對於第二實例,如圖UA所說 明,將針對一對(例如,對應於雙平面NVM之兩個平面⑽ 及幻頁面之讀取命令發送至一或多個NVM。如圖丨1所說 明,在接收回應於讀取命令而接收之資料頁面時處理該等 頁面以運算R0及R1頁面。 、在各種實施例中,如由圖14A及圖14B所說明,至少部 刀地執行如由圖12所說明的之運算。對於第一實例,如 圖所說明,將運算特定pj頁面所必要之所有資料頁面 的讀取命令發送至一或多個NVM。如圖12所說明,在接收 回應於讀取命令而接收之資料頁面時處理該等頁面以運算 pj頁面。對於第二實例,如圖14A所說明,將針對一對巧 頁面(例如,對應於雙平面NVM之兩個平面)之讀取命令發 ,至—或多個NVM’且如圖14B所說明,在接收所接收之 貧料頁面時處理該等頁面以運算該對Pj頁面。 在各種實施例中’如圖14A及圖14B所說明,至少部分 執仃如由圖13A至圖13D中之任—者說明的關於判定恢 =值之運算(諸如,針對R〇,及Rr之運算)。對於第一實 Z必如圖14A所說明’將運算特定R〇,頁面及特定Μ,頁面 如 '、所有資料頁面的讀取命令發送至一或多個NVM。 圖13A所說明,在接收回應於讀取命令而接收之資料頁 1616I3.doc -89- 201241615 面時處理該等頁面以運算R0,及R1,頁面。對於第二實例, 如圖14Α所說明,將針對一對R0,&R1,頁面(例如,對應於 雙平面NVM之兩個平面)之讀取命令發送至—或多個 NVM,且如圖14B所說明,在接收所接收之資料頁面時處 理該等頁面以運算該對R〇,及R〗,頁面。 圖15A至圖15C說明(例如)在(諸如)與圖u相關聯之内容 脈絡中自關於提供至NVM之寫入的較高階冗餘資訊之運算 退出之實施例的選定細節。圖15A說明經由以下步驟將複 數個寫入命令發送至一或多個NVM之實施例的選定細節: 發出(發出寫入操作15似),檢查是否已發送所有命令(發 斤有? 1503 A),且若未發送所有命令,則迴圈返回以發 ,該等命令中之另-者。注意到’預期其他實施例,其中 同時而非一次_個地發出複數個命令。 圖⑽說明處理回應於如圖15A中說明發送之寫入命令 :自NVM接收之寫入完成及狀態資訊的實施例之選定細 節;進行檢查以判定是否已完成寫入而無錯誤(寫入正 f ? 1502B)。若已完成寫入而無錯誤,則進行檢查以判定 ^否已完成所有寫入(寫入完結? i屬)。若已完成所有 入則處理完成(結束1599B)。若寫入已完成但具有(較 低階)錯誤(諸如,程式化失敗),則程序進行以「重做」關 於較南階冗餘資訊運算之寫入效應(自冗餘退出寫入 1503B)。更具體言之,自任何相應較高階冗餘資訊運算解 除運:具有較低階錯誤之寫入之資料(假定在寫入將成功 用於寫入之資剩·[包括於相冑車交高階冗餘運算 I61613.doc 201241615 中)舉例而5,在特定頁面j上倘測到較低階寫人失敗。 作為回應,運算修訂之R〇m面,使得將頁㈤資料⑺) 設定為零。圖15C說明用於修訂iRO(nR〇)之單一位元組的 運算及修訂之Rl(nR1)之單一位元組的運算之實施例的選 定細節,其中j為發生較低階寫入失敗之頁面。注意到, 在(諸如)與圖11相關聯之圖12之内容脈絡中,若有限域為 Galois域,則圖15C中所說明之減法運算(「_」)等效於邏 輯XOR運算。在各種實施例中,執行其他處理(未說明)以 儲存具有較低階寫入失敗之頁面(pj )以及修訂之較高階冗 餘頁面(nRO及nRl)。 圖15B中所說明之處理獨立於圖15A中所說明之處理, 而非回應於如圖15A中說明發送之命令而接收寫入完成及 狀態資訊。在各種情況中,寫入完成及狀態資訊之到達次 序根據NVM類型、狀態、操作環境及其他因素而變化,且 在一些情況中不同於對應於到達寫入完成及狀態資訊之寫 入命令的發送次序或到達次序。在一些實施例及/或使用 情況中,因為圖15 A之處理獨立於圖15B(而非寫入完成及 狀態資訊到達取決於正發送之相應寫入命令),所以在接 收/處理寫入完成及狀態資訊(圖15B)的同時發送寫入命令 (圖 15A)。 在一些實施例及/或使用情況中,在正將寫入命令發送 至NVM與回應於該等寫入命令而接收來自nvM之寫入完 成及狀態資訊之間發生顯著延時。在一些實施例及/或使 用情況中,由NVM而非回應於如圖15A中所說明發送之命 161613.doc -91 - 201241615 令所提供的寫入完成及狀態資訊與回應於如圖15A中所說 明發送之命令而提供的寫入完成及狀態資訊(例如,回應 於針對其他活動發送之寫入命令而提供的寫入完成及狀態 資訊)混合。 在各種實施例及/或使用情況中,未使用否則將用於資 料資訊之一或多個頁面。在各種情況中,未使用之頁面為 區塊、R區塊、等量區或任何種類頁面之序列的第一、中 間或最後頁面。在一些情境中,先驗地不使用未使用之頁 面(「省去」)’且在一些情境中,在某一使用後不使用未 使用之頁面(「自服務移除」)。被省去之未使用頁面之實 例為不正確地製造之頁面。自服務移除之未使用頁面之實 例為未能正確寫入之頁面(例如,如參看圖i 5B描述為較低 階寫入錯誤)。(例如)關於圖10至12、圖13A至圖13D、圖 14A至圖14B及圖15A至圖15B的處理(諸如)藉由自運算完 全地省略未使用之頁面或藉由如同未使用之頁面上之所有 資料為零一樣執行運算而跳過任何未使用之頁面(不論是 被省去抑或自服務移除)》 在各種實施例中’圖1〇至圖12、圖13 A至圖13D、圖14A 至圖14B及圖15A至圖15B之一或多個元素的處理或關於該 一或多個元素之處理完全或部分地由圖1A之一或多個元件 (或其部分)執行。舉例而言,CPU 171之軟體執行能力之 部分用以(諸如)藉由指導如由圖12及圖13A至圖13D所說明 之資料恢復運算來管理較高階冗餘處理。對於另一實例, 資料處理121包括專用於及/或特定用於根據(諸如)由圖^ 161613.doc -92· 201241615 所說明之運算來 貫例實施技術 運算較高階冗餘資 訊之硬體元件 在一些實施例中,藉由蛊 規格來指定由統進行之處理相容的 操作中之所有= = : =餘模式管理之系統執行的 :=制_::二== 胃系統單BB>{、特殊應用積體電路、硬體加 速器或提供前述操作之所有或部分之其他電路的部分。該 規格係根據各種描述,諸如硬體描述語言、電路描述、接 線對照表描述、遮罩描述或佈局描述。實例描述包括: Verilog VHDL、SPICE、諸如 PSpice 之 spiCE 變體、 IBIS、LEF、DEF、GDS-II、0ASIS 或其他描述。在各種 實施例中,處理包括解譯、編譯、模擬及合成之任何組合 以產生、驗證或指定適於包括在一或多個積體電路上之邏 輯及/或電路。根據各種實施例,每一積體電路可根據多 種技術來設計及/或製造。該等技術包括可程式化技術(諸 如,場或遮罩可程式化閘陣列積體電路)、半定製技術(諸 如,完全或部分地基於晶胞之積體電路)及全定製技術(諸 如,實質上特定化之積體電路)、其任何組合,或與積體 電路之設計及製造相容的任何其他技術。 在各種實施例中’藉由一或多個程式指令之執行及/或 解譯,藉由一或多個原始程式碼及/或指令碼語言陳述式 的解#及/或編譯’或藉由通過編譯、轉譯及/或解譯以程 I6l613.doc •93· 201241615 式設計及/或指令碼語言㈣式表達之資訊而產生之二進 位指令之執行來執行如由儲存有指令集之電腦可讀媒體描 述之操作的所有或部分之各種組合。陳述式與任何標準程 式設計或指令碼語言(諸如’ C、C++、F_an、卜
Ada、Java、VBscript及Shell)相容。程式指令語言陳述 式或二進位指令中之一或多者視情況儲存於一或多個電腦 可讀儲存媒體元件上。在各種實施例中,程式指令中之一 些、所有或各種部分實現為一或多個函式、常式、副常 式、内嵌常式、程序、巨集或其部分。 結論 僅出於準備文字及圖式方便而在描述中進行某些挑選, 且除非存在相反指否則該等挑選本質上不應理解為傳 達關於所描述之實施例的結構或操作之額外資訊。挑選之 實例包括.用於圖編號之指定符的特定組織或指派及用以 識別及參考實施例之特徵及元件之元件識別符(例如,標 註或數字指定符)的特定組織或指派。 意欲特定地將詞語「包括」理解為描述開放性範疇之邏 輯集合的抽象詞且詞語「包括」並不意謂傳達實體内含項 目’除非其後明確地接著詞語「在…内」。 雖然出於描述及理解清楚起見已相當詳細地描述了前述 實施例,但本發明不限於所提供之細節。存在本發明之許 多貫施例。所揭示之實施例為例示性且非限制性的。 應理解,在結構、配置及使用方面之許多變化與描述可 能一致,且在本發明之申請專利範圍的範疇内。舉例而 I61613.doc -94- 201241615 言,互連及功能單元位元寬度、時脈速度及所使用技術之 類型可根據每一組件區塊中之各種實施例而變化。給予互 連及邏輯之名稱僅為例示性的,且不應理解為限制所描述 之概念。流程圖及流程圖程序、動作及功能元件之次序及 配置可根據各種實施例而變化。又,除非特定地規定為相 反,否則所指定之值範圍、所使用之最大及最小值或其他 特定規格(諸如,快閃記憶體技術類型;及暫存器及緩衝 器中之項目或級的數目)僅為所描述實施例之彼等規格, 預期追蹤實施技術之改良及變化且不應將其理解為限制。 可替代經描述以實施各種組件、子系統、操作、函式、 常式、副常式、内嵌常式、程序、巨集或其部分的彼等技 術而使用此項技術中已知的功能上等效之技術。亦應理 解’依據更快處理(促進先前在硬體中之功能遷移至軟體 中)及更高整合密度(促進先前在軟體中之功能遷移至硬體 中)的實施例相依設計約束及技術趨勢,實施例之許多功 忐性態樣可選擇性地實現於硬體(亦即,通用電路)或軟體 (亦即’經由程式化控制器或處理器之一些方式)中。各種 實施例之特定變化包括(但不限於):分割之不同;不同外 形尺寸及組態;不同作業系統及其他系統軟體之使用;不 同介面標準、網路協定或通信鍵路之使用;及在根據特定 應用之唯一工程及商業約束實施本文中描述之概念時預期 的其他變化。 已藉由遠超過所描述實施例之許多態樣之最小實施所需 範圍的細節及環境内容脈絡描述了實施例。一般熟習此項 161613.doc •95- 201241615 技術者將認識到’一些實施例在不更改剩餘元件間的基本 協作之情況下省略所揭示之組件或特徵。因此,應理解, 無需許多所揭示細節來實施所描述實施例之各種態樣。就 剩餘元件可與先前技術區分而言,被省略之組件及特徵並 非對本文中描述之概念的限制。 所有此等設計變化為由所描述實施例傳達之教示上的非 實質變化。亦應理解,本文中描述之實施例廣泛地適用於 其他運算及網路連接應用’且不限於所描述實施例之特定 應用或產業。因此,本發明應理解為包括涵蓋於所發佈專 利之申請專利範圍之範疇内的所有可能修改及變化。 【圖式簡單說明】 圖1A說明固態磁碟(SSD)之實施例的選定細節,該固態 磁碟(SSD)包括使用具有獨立矽元件之動態較高階冗餘模 式管理以用於存取及控制非揮發性記憶體(NVM)之sSD控 制器。 圖1B說明包括圖1A之SSD之一或多個例項的系統之各種 實施例之選定細節》 圖2說明映射邏輯區塊位址(LBA)之邏輯頁號(LPN)部分 之實施例的選定細節。 圖3說明在讀取單元位址處存取非揮發性記憶體(Nvm) 以產生讀取資料之實施例的選定細節,該讀取資料經組織 為共同地具有以讀取單元之配量來量測之長度的各種讀取 qp 一 单。 圖4A說明讀取單元之實施例的選定細節。 161613.doc -96- 201241615 圖4B說明讀取單元之另—實施例的選定細節。 圖5說明具有數個欄位之標頭之實施例的選定細節。 圖6說明多個NVM器件之區塊、頁面及讀取單元之實施 例的選定細節。 圖7 A說明較高階冗餘技術之各種實施例的選定細節。 . 圖7B說明R區塊之實施例的選定細節。 圖8說明具有矽獨立元件冗餘陣列(RASIE)的動態較高階 几餘模式管理之實施例的選定細節。 圖9說明具有適應性碼速率之較低階冗餘資訊之讀取單 元的貫%例,該較低階冗餘資訊受儲存於讀取單元中之一 或多者中的較高階冗餘資訊保護。 圖1〇說明較高階冗餘資訊結果及資料來源對應物之實施 例的選定細節。 圖11說明較高階冗餘資訊運算之實施例的選定細節。 圖12說明自一(較低階)失敗(單一操作期間)恢復之實施 例的選定細節。 圖13A至圖13D說明自兩個(較低階)失敗(單一操作期間) 恢復之實施例的選定細節。 •圖14A及圖14B說明運算關於自NVM接收之頁面的較高 階冗餘資訊之實施例的選定細節。 圖15A至圖15C說明自關於提供至nvm之寫入的較高階 冗餘資訊之運算退出之實施例的選定細節。 【主要元件符號說明】 100 固態磁碟(SSD)控制器 1616l3.doc -97· 201241615 101 固態磁碟(SSD) 102 主機 103 (選用)切換/網狀架構/中間控制器 104 中間介面 105 作業系統(OS) 106 韌體(FW) 107 驅動程式 107D 點線箭頭(主機軟體<· + Ι/〇器件通信) 109 應用程式 109D 點線箭頭(經由驅動程式之應用程式 4· + Ι/0器件通信) 109V 點線箭頭(經由VF之應用程式((I/O器件通 信) 110 外部介面 111 主機介面 112C (選用)卡式記憶體 113 標籤追蹤 114 多器件管理軟體 115 主機軟體 116 輸入/輸出(I/O)卡 117 輸入/輸出(I/O)及儲存器件/資源 118 伺服器 119 區域網路(LAN)/廣域網路(WAN) 121 資料處理 161613.doc -98- 201241615 123 引擎 125 控制隨機存取記憶體(RAM) 126 按比例調整之資料結構 131 緩衝器 133 直接記憶體存取(DMA) 135 錯誤校正碼(ECC)-X 137 記憶體 141 映射 143 表 151 回收器 161 錯誤校正碼(ECC) 171 中央處理單元(CPU) 172 中央處理單元(CPU)核心 173 命令管理 175 緩衝器管理 177 轉譯管理 179 連貫性管理 180 記憶體介面 181 器件管理 182 識別碼管理 190 器件介面 191 器件介面邏輯 192 快閃記憶體器件 193 排程 -99. 161613.doc 201241615 194 快閃記憶體晶粒 199 非揮發性記憶體(NVM) 211 邏輯區塊位址(LB A) 213 邏輯頁號(LPN) 215 邏輯位移 221 邏輯頁號(LPN)之映射資訊 223 讀取單元位址 225 讀取單元中之長度 311 讀取資料 313 第一讀取單元 315 最後讀取單元 401A 讀取單元 401B 讀取單元 410B 標頭標誌(HM) 411A 標頭1 411B 標頭1 412B 標頭2 419A 標頭N 419B 標頭N 421A 資料位元組 421B 資料位元組 422B 資料位元組 429B 資料位元組 431A •選用之填補位元組 161613.doc -100- 201241615 431B 選用之填補位元組 501 標頭 511 類型 513 最後指示符 515 旗標 517 邏輯頁號(LPN) 519 長度 521 位移 600 等量化方向 601 器件 603 器件 609 器件 611 讀取單元 613 讀取單元 619 讀取單元 621 頁面 623 頁面 629 頁面 631 區塊 633 區塊 639 區塊 641 讀取單元 643 讀取單元 649 讀取單元 161613.doc -101 - 201241615 651 頁面 653 頁面 659 頁面 661 區塊 663 區塊 669 區塊 671 讀取單元 673 讀取單元 679 讀取單元 681 頁面 683 頁面 689 頁面 691 區塊 693 區塊 699 區塊 710.0 快閃記憶體晶粒 710.0B0 區塊 710.OBI 區塊 710.OBB 區塊 710.OPO 頁面 710.0P1 頁面 710.OPP 頁面 710.61 快閃記憶體晶粒 710.62 快閃記憶體晶粒 161613.doc •102· 201241615 710.63 快閃記憶體晶粒 710.63B0 區塊 710.63B1 區塊 710.63BB 區塊 710.63P0 頁面 710.63P1 頁面 710.63PP 頁面 710.64 快閃記憶體晶粒 710.64B0 區塊 710.64B1 區塊 710.64BB 區塊 710.64P0 頁面 710.64P1 頁面 710.64PP 頁面 710.65 快閃記憶體晶粒 710.65B0 區塊 710.65B1 區塊 710.65BB 區塊 710.65P0 頁面 710.65P1 頁面 710.65PP 頁面 720 快閃記憶體器件 730 介面通道 740 額外快閃記憶體器件 •103· 161613.doc 201241615
750 760.0 760.1 760.R 801 802 803 804 805 806 807 808 899 911 911.E 911.U 931 931.E 931.U 951 951.E 額外介面通道 R區塊 R區塊 R區塊 開始 在第一較高階冗餘模式中操作 失敗? 減少可用空間 重新配置資料儲存 恢復/儲存失敗之使用者資料 判定/儲存修訂之較高階冗餘資訊 在第二較高階冗餘模式中操作 結束 讀取單元 較低階冗餘資訊/較低階錯誤校 (ECC)/較低階錯誤校正碼(ECC)部分 使用者資料/使用者資料部分 讀取單元 較低階冗餘資訊/較低階錯誤校 (ECC)/較低階錯誤校正碼(ECC)部分 使用者資料/使用者資料部分 讀取單元 較低階冗餘資訊/較低階錯誤校 (ECC)/較低階錯誤校正碼(ECC)部分 正碼 正碼 正碼 161613.doc -104- 201241615
951.U 971 971.E 971.U 1001 1002 1003 1010 1011 1019 1401A 1401B 1402A 1402B 1403A 1403B 1404B 1499A 1499B 1501A 1501B 1502A 1502B 使用者資料/使用者資料部分 讀取單元 較低階冗餘資訊/較低階錯誤校 (ECC)/較低階錯誤校正碼(ECC)部分 使用者資料/使用者資料部分 結果/虛線箭頭 結果/虛線箭頭 結果/虛線箭頭 R0 R1 資料 開始 開始 發出讀取操作 頁面就緒? 所有經發出? 執行基於頁面之運算 頁面完結? 結束 結束 開始 開始 發出寫入操作 寫入正確(OK)? 正碼 161613.doc -105· 201241615 1503A 所有經發出? 1503B 自冗餘退出寫入 1504B 寫入完結? 1599A 結束 1599B 結束 106- 161613.doc

Claims (1)

  1. 201241615 七、申請專利範園: 1 · 一種系統,其包含: 用於以-第-次序分別處理資料儲存資吼 元中之每-者㈣算較高階 個單 椹杜外鬼.. 買m之一或多個單元的 構件,該第-次序係回應於 元中之每-者分別變得可用;#資訊之該複數個單 用於至少部分地基於與資料儲存資訊之不可校正單元 中之每-者相關聯的各別 #7L 資邻夕低階几餘資訊而將資料儲存 資訊之該複數料元中之特定—或多者判 資訊之該等不可校正單元的盖 ,”、資枓儲存 等不可校正單元之外的資料 貪訊之該 資料健存資訊之可校正單元; 為 用於至少部分地經由用於以一 儲存資訊之該等可校正單元中之:一:序分別處理資料 料儲存資訊之該等不可校正單元 資 埜平70之校正版本的構件,該 一--人序係回應於資料儲存資訊之該等可校正單 母一者分別變得可用;且 其中該第一次序不同於該第二次序。 2·如請求们之系統,其進—步包含一或多個非揮 憶體(NVM)及用於自該等非揮發性 ° 〇 I赞性-己隐體讀取資料儲存 資訊之該等可校正單兀中之至少一 鬼_ κ /二的構件,且其中該 第一:人序係根據該等非揮發性記憶體傳回資料儲 之該等可校正單元中之該至少一些的一次 ° 3.如請求項2之系統’其進一步包含用於將資料健存資訊 161613.doc 201241615 且其:=個單㈣存於料_發性記憶體 “請求項:;ΤΓ該儲存 非揮發性記憶體中之一或多者以實用:部分地管理該等 的構件。 實施—固態磁碟(SSD) 5·如睛求項1之系統,其進一步 憶_VM)且其 3 一或多個非揮發性記 -者對應厶: 資訊之該複數個軍元中之每 ,^該等非揮發性記憶體之_ # &/ 6·如請求項5之系#甘士 或多個各別頁面。 多者為包含於二Γ該等非揮發性記憶體中之-或 7_如請2 碟(SSD)中之快閃記憶體》 項1之系統,其中資料儲存資 單元之—數目為二。 《存資说之該等不可校正 8.如明求項!之系統,其中用於 不可;崎异宵科儲存資訊之該等 =!ΓΓ該等校正版本的該構件進-步至少部分 ▲由用於處理較高階冗餘資 者的構件。 /寻單兀中之至少一 9.:請求項8之系統.其中f料健存,訊之該等不可校正 t…數目等於較高階冗餘資訊之該等單元中之該至 少一者的一數目。 Μ·如請求項1之系統,其中較高階冗餘資訊之該等單元不 可運算為由資料储存資訊之該複數個單元的相應位元, 之一產生多項式進行之-多項式除法之-餘項。、· Ή求項1之系統’其進一步包含一或多個快閃記憶體 及用於將資料儲存資訊之該複數個單元儲存於該等快閃 161613.doc 201241615 記憶體之晶粒之一笛一 餘資訊之該等單^/ &巾的構件、用於將較高階冗 π平疋儲存於該等快 二部分中的構件, 、°、體之晶粒之-第 排斥。 '、中該第-部分與該第二部分相互 12. 如請求項丨之系統,其進一牛 及用於將資料儲存資笊::3或多個快閃記憶體 記憶艘之晶粒二 =::ΓΓ储存於該等快閃 記憶體之所有晶极。 ’該部分小於該等快閃 13. 如請求項1之系統,其進一 及用於將較高㈣餘資訊ζ3 :或多個快閃記憶體 邱莧Λ之該等皁元儲存於 憶體之晶粒之—邹分中的構件,該部 二記 憶體之所有晶粒。 力5該等快閃記 14. 一種方法,其包含: 以第一 人序分別處理資料儲在咨# 之每一者以、軍篁子資讯之複數個單元中 之^者㈣算“階冗餘資訊之—或多個單元 一次序係回應於資料儲存資訊之該複數個單元中之:第 者分別變得可用; 每一 至少部分地基於與資料儲存資訊之不可校正 每-者相關聯的各別較低階冗餘資訊而將資料儲:二之 之該複數個單元中之特I或多者判U資料儲存資二 之該等不可校正單元,除資料储存資訊之 》 單元之外的資料儲存資訊之該複數個單元為儲2 訊之可校正單元; 辉存資 至少部分地經由以一第二次庠八 序-別處理資料儲存資訊 161613.doc 201241615 之該等可校正單元中之每—者來運算資料儲存資訊之該 =校正單元之校正版本’該第二次序係回應於資料 子資訊之該等可校正單元中之每一者分別變得可用;且 其中該第—次序不同於該第二次序。 15、如睛求項14之方法,其進一步包含自一或多個非揮發性 5己憶體(NVM)讀取資料儲存資訊之該等可校正單元中 至少一歧,Η # tb as- 體傳回i二Γ 係根據該等非揮發性記憶 枓儲存資訊之該等可校正單元中 的一次序。 丁至些 如請求項15之方法’其進一步包含將資料儲 複數個單_存於該等非揮發性記憶體中,;^ = 一次序係存之—次序。 其中該第 17=請求項16之方法,其進—步包含部分地f理該 憶體中之-或多者以實施-固態磁磾(SSD) 18·如請求㈣之方法,其中資料館存資訊之:二 中之每一去蚪成 廿貝。孔之該複數個單元 者對應於-或多個非揮發性 或多個各別頁面。 G隐體(NVM)之一 19. 如明求項18之方法,其中該等非揮 多者為包含於-固態磁碟(SSD)中 隐體中之一或 20. 如請求項Η之方冰社 決閃§己憶體。 單元之一數目為二。 Μ之該4不可校正 .如請求項Μ之方法,其t該運算㈣ 可校正單元之該等校正版本進一步 以之該等不 較高階冗餘資訊之該等單元中之至/ ^地經由處理 〇 I6I613.doc 201241615 22. 如請求項21之方法,1 單元之,等於較存“之該等不可校正 少一者的一數目。 ^等早几令之該至 23. 如請求項14之方法 _ 去其中較尚階冗餘資訊之該等 可運算為由資料儲 早凡不 之-產生多項式進複數個單元的相應位元組 夕項式進仃之一多項式除法之-餘項。 24. 如請求項14之方法, 、項 複數個單元針 纟進一步包3將資料儲存資訊之該 -子於一或多個快閃記憶體之晶粒之一 部分中,將較高階冗餘資 第 記憶體之晶粒之―;::^,儲存於該等快閃 第二部分相互㈣第…卩分中,且其中該第—部分與該 25.如請求項14之方法,其進_步包含將資 :數個單元物-或多個快閃記憶體之晶粒= 該部分小於該等快閃記憶體之所有晶粒。 方法’其進一步包含將較高階5^餘資訊之 中’該部分小於該等快閃記憶體之所有晶粒 一種系統,其包含: :處理邏輯電路’其經啟用以按一第一次序分別處 =資料儲存資訊之複數個單元中之每—者以運算較高階 几餘資訊之一或容伽置;斗姑 . 一 ,該第一。人序係回應於資料儲 存資訊之該複數個單元中之每一者分別變得可用; 判定邏輯電路,其經啟用以至少部分地基於與資料儲 存資訊之何校正單元中之每-者相關聯的各別較低階 早讀存於-❹個㈣記憶體之日日日粒之一部分 27 1616I3.doc 201241615 冗餘資訊而將資料健存資 或多者判定為資料儲存杳▲ 1個皁疋中之特定一 料儲存資訊之該等不了校正車兀·,除資 該複數個單元為資料 的貢科錯存資訊之 運算邏輯電路,其 早兀, 邏輯電路來運算資料 ”,由第二處理 硬异資科儲存資訊之該等不 _ 正版本,該第—虑裡、雄l 單疋之校 第-處理邏㈣電路經啟用- 別處理資料儲在咨 第一-人序分 :㈣存資讯之該等可校正單元中之 第-:人料_於#㈣存f訊之 / 每一者分別變得可用;i 技正車兀中之 28. 29. 30. 31. 其中該第-次序不同於該第二次序。 如請求項27之系統,其進— _ 憶體⑽啟用以":或夕個非揮發性記 儲存資自該4非揮發性記憶體讀取資料 條仔貢§孔之該箄可紡卞苗― IT 路,且其中’笛 ①之至少-些的讀取邏輯電 資料序係根據料非揮龍記憶體傳回 =儲存資訊之該等可校正單元中之該至少—些的—次 青求項28之系統’其進—步包含經啟用以將資料儲存 該複數個單元儲存於該等非揮發性記憶體中的儲 子邏輯電路’且其中該第—次序係根據該儲存之一 序。 _人 月长項29之系統,其中該等非揮發性記憶體係包 一固態磁碟(SSD)中。 ; 青求項27之系統,其進一步包含一或多個非揮發性記 161613.doc 201241615 憶體(NVM)且其中資料 者存資訊之該複數個單元φ -者對應於該等非揮發性 ^之每 .〇 4, U Μ之或多個各別百而 32·如-凊求項31之系統,其中該 刃頁面。 多者為 〇X 發性s己憶體中之一戋 爹者為包含於一固態磁磾卩SSEn巾夕& 次 螺(SSD)中之快閃記憶體。 161613.doc
TW101102013A 2011-01-18 2012-01-18 Higher-level redundancy information computation TW201241615A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161433918P 2011-01-18 2011-01-18

Publications (1)

Publication Number Publication Date
TW201241615A true TW201241615A (en) 2012-10-16

Family

ID=46516340

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101102013A TW201241615A (en) 2011-01-18 2012-01-18 Higher-level redundancy information computation

Country Status (7)

Country Link
US (2) US8656101B2 (zh)
EP (1) EP2666091A2 (zh)
JP (1) JP2014507717A (zh)
KR (2) KR101454807B1 (zh)
CN (1) CN103415844B (zh)
TW (1) TW201241615A (zh)
WO (1) WO2012099937A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI570716B (zh) * 2014-06-05 2017-02-11 美光科技公司 記憶體裝置及操作方法
US9582431B2 (en) 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
TWI785702B (zh) * 2021-05-07 2022-12-01 旺宏電子股份有限公司 用於產生識別碼之儲存裝置及識別碼產生方法
US11984166B2 (en) 2021-07-29 2024-05-14 Macronix International Co., Ltd. Storage device for generating identity code and identity code generating method

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2545554A4 (en) 2010-03-12 2015-03-11 Lsi Corp LDPC CLEARANCE DECODING FOR FLASH MEMORY
US9105305B2 (en) 2010-12-01 2015-08-11 Seagate Technology Llc Dynamic higher-level redundancy mode management with independent silicon elements
US9569320B2 (en) * 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
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
JP5346978B2 (ja) * 2011-04-15 2013-11-20 シャープ株式会社 インターフェイス装置、配線基板、及び情報処理装置
JP5346979B2 (ja) * 2011-04-18 2013-11-20 シャープ株式会社 インターフェイス装置、配線基板、及び情報処理装置
KR101438716B1 (ko) 2011-08-09 2014-09-11 엘에스아이 코포레이션 I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US8799598B2 (en) * 2012-02-17 2014-08-05 Spansion Llc Redundancy loading efficiency
US8856431B2 (en) * 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory
EP2898638B1 (en) 2012-09-21 2020-10-28 NYSE Group, Inc. High performance data streaming
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US20140281802A1 (en) * 2013-03-15 2014-09-18 SEAKR Engineering, Inc. Multi-dimensional error detection and correction memory and computing architecture
EP2830226A1 (en) * 2013-07-24 2015-01-28 Pierre Arrigo Encoding and decoding methods and devices
JP5978259B2 (ja) * 2013-08-16 2016-08-24 エルエスアイ コーポレーション 順次読み出し最適化可変サイズフラッシュトランスレーションレイヤ
JP6443794B2 (ja) * 2013-08-16 2018-12-26 エルエスアイ コーポレーション ホストとコントローラとの間でパーティション化された変換レイヤ
US9535628B2 (en) * 2013-10-10 2017-01-03 Apple Inc. Memory system with shared file system
US20150199293A1 (en) * 2013-11-20 2015-07-16 Hangzhou Dianzi University Method and apparatus with interface for redundant array of independent modules
US10652193B2 (en) * 2014-06-18 2020-05-12 Western Digital Technologies, Inc. Managing and accessing data storage systems
CN104050061B (zh) * 2014-07-01 2016-01-20 中国航天科工集团第二研究院七〇六所 一种基于PCIe总线多主控板冗余备份系统
US9766972B2 (en) * 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9575853B2 (en) * 2014-12-12 2017-02-21 Intel Corporation Accelerated data recovery in a storage system
US10162700B2 (en) * 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US9678665B2 (en) * 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
US10275310B2 (en) 2015-03-09 2019-04-30 Western Digital Technologies, Inc. Updating exclusive-or parity data
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
US10191841B2 (en) 2015-07-06 2019-01-29 Shannon Systems Ltd. Host device, access system, and access method
CN106339179B (zh) * 2015-07-06 2020-11-17 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法
US9734009B2 (en) * 2015-10-08 2017-08-15 Sandisk Technologies Llc Data encoding techniques for a device
US9946596B2 (en) 2016-01-29 2018-04-17 Toshiba Memory Corporation Global error recovery system
US10275376B2 (en) 2016-03-02 2019-04-30 Western Digital Technologies, Inc. Efficient cross device redundancy implementation on high performance direct attached non-volatile storage with data reduction
US10275165B2 (en) 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
US10606767B2 (en) * 2017-05-19 2020-03-31 Samsung Electronics Co., Ltd. Ethernet-attached SSD for automotive applications
US10474527B1 (en) 2017-06-30 2019-11-12 Seagate Technology Llc Host-assisted error recovery
TWI651650B (zh) * 2018-02-05 2019-02-21 大陸商深圳大心電子科技有限公司 記憶體管理方法及使用所述方法的儲存控制器
US11204819B2 (en) * 2018-12-21 2021-12-21 Samsung Electronics Co., Ltd. System and method for offloading application functions to a device
CN110572864A (zh) * 2019-08-28 2019-12-13 惠州Tcl移动通信有限公司 驻网频段的存储及调用方法、移动终端、计算机存储介质
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
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN117274027A (zh) * 2023-08-22 2023-12-22 北京辉羲智能科技有限公司 一种硬件安全冗余的图像处理芯片

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US565113A (en) * 1896-08-04 graves
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
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
JPH07271672A (ja) 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
EP1278125A2 (en) * 1994-10-14 2003-01-22 MIPS Technologies, Inc. Indexing and multiplexing of interleaved cache memory arrays
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
JPH10222314A (ja) * 1997-01-31 1998-08-21 Xing:Kk 記憶装置アレイシステム
US6557123B1 (en) 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
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
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 주식회사 하이닉스반도체 반도체 메모리 장치의 리던던시 회로
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
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
US7372731B2 (en) 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7237067B2 (en) 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
WO2007012920A1 (en) * 2005-07-27 2007-02-01 Adaptec, Inc. Method and system for improving the performance of reed-solomon parity operations in redundant array of inexpensive disks
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
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
US7809994B2 (en) 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
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
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
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
WO2008099723A1 (en) 2007-02-01 2008-08-21 Kabushiki Kaisha Toshiba Semiconductor memory with reed- solomon decoder
US8122323B2 (en) 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
US20080276124A1 (en) 2007-05-04 2008-11-06 Hetzler Steven R Incomplete write protection for disk array
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US9152496B2 (en) 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
US8443260B2 (en) 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
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
US8195978B2 (en) * 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US20100017649A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
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 서울대학교산학협력단 신뢰도 또는 저장 용량을 동적으로 조절하는 저장 장치 및 그 방법
US8438455B2 (en) * 2008-12-31 2013-05-07 Intel Corporation Error correction in a solid state disk
US8065558B2 (en) 2009-03-24 2011-11-22 Lsi Corporation Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
CN101882472A (zh) 2009-05-05 2010-11-10 建兴电子科技股份有限公司 具可变动错误校正码机制的快闪储存装置及其控制方法
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
JP4843695B2 (ja) * 2009-06-26 2011-12-21 株式会社東芝 ディスクアレイ制御装置及びディスクアレイ装置
US8176284B2 (en) 2009-08-11 2012-05-08 Texas Memory Systems, Inc. FLASH-based memory system with variable length page stripes including data protection information
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8266501B2 (en) 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
EP2545554A4 (en) 2010-03-12 2015-03-11 Lsi Corp LDPC CLEARANCE DECODING FOR FLASH MEMORY
US9189385B2 (en) 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
CN103329103B (zh) 2010-10-27 2017-04-05 希捷科技有限公司 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
US9569320B2 (en) 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
US9727414B2 (en) * 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
US9105305B2 (en) 2010-12-01 2015-08-11 Seagate Technology Llc Dynamic higher-level redundancy mode management with independent silicon 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
US8595415B2 (en) 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
US8856431B2 (en) 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory
KR20140086223A (ko) 2012-12-28 2014-07-08 주식회사 옵토스타 디스크 어레이의 패리티 재동기화 장치 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582431B2 (en) 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
US9971547B2 (en) 2013-01-22 2018-05-15 Seagate Technology Llc Storage system with application to NVM address, span, and length
US10740011B2 (en) 2013-01-22 2020-08-11 Seagate Technology Llc Storage system with application to NVM address, span, and length
US11449252B2 (en) 2013-01-22 2022-09-20 Seagate Technology Llc Method of writing and reading data in an NVM using Lpage identification headers
TWI570716B (zh) * 2014-06-05 2017-02-11 美光科技公司 記憶體裝置及操作方法
TWI785702B (zh) * 2021-05-07 2022-12-01 旺宏電子股份有限公司 用於產生識別碼之儲存裝置及識別碼產生方法
US11984166B2 (en) 2021-07-29 2024-05-14 Macronix International Co., Ltd. Storage device for generating identity code and identity code generating method

Also Published As

Publication number Publication date
KR20130118370A (ko) 2013-10-29
CN103415844A (zh) 2013-11-27
CN103415844B (zh) 2016-04-20
EP2666091A2 (en) 2013-11-27
JP2014507717A (ja) 2014-03-27
WO2012099937A3 (en) 2012-09-13
WO2012099937A2 (en) 2012-07-26
KR20140094661A (ko) 2014-07-30
KR101564569B1 (ko) 2015-11-03
US20140237166A1 (en) 2014-08-21
US8656101B2 (en) 2014-02-18
US20130290618A1 (en) 2013-10-31
US9183140B2 (en) 2015-11-10
KR101454807B1 (ko) 2014-11-04

Similar Documents

Publication Publication Date Title
US11379301B2 (en) Fractional redundant array of silicon independent elements
US11144389B2 (en) Non-volatile memory program failure recovery via redundant arrays
TW201241615A (en) Higher-level redundancy information computation
TWI566254B (zh) 用於操作一記憶體之方法、記憶體系統、記憶體設備及非暫態機器可讀媒體
US9105305B2 (en) Dynamic higher-level redundancy mode management with independent silicon elements
TWI531902B (zh) 矽獨立元件之部分冗餘陣列