TWI599946B - 記憶體中之條紋映射 - Google Patents

記憶體中之條紋映射 Download PDF

Info

Publication number
TWI599946B
TWI599946B TW105118205A TW105118205A TWI599946B TW I599946 B TWI599946 B TW I599946B TW 105118205 A TW105118205 A TW 105118205A TW 105118205 A TW105118205 A TW 105118205A TW I599946 B TWI599946 B TW I599946B
Authority
TW
Taiwan
Prior art keywords
stripe
map
stripes
memory
memory devices
Prior art date
Application number
TW105118205A
Other languages
English (en)
Other versions
TW201709044A (zh
Inventor
愛德華 麥可葛洛林
約瑟夫M 傑德羅
Original Assignee
美光科技公司
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 美光科技公司 filed Critical 美光科技公司
Publication of TW201709044A publication Critical patent/TW201709044A/zh
Application granted granted Critical
Publication of TWI599946B publication Critical patent/TWI599946B/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/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

記憶體中之條紋映射
本發明大體而言係關於半導體記憶體裝置、方法及系統,且更特定而言係關於記憶體中之條紋映射。
記憶體裝置通常經提供為電腦或其他電子裝置中之內部積體電路、半導體積體電路。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要電力以維持其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他記憶體。非揮發性記憶體可藉由在不被供電時仍存留所儲存資訊而提供持久資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可抹除可程式化ROM(EEPROM)、可抹除可程式化ROM(EPROM)及相變隨機存取記憶體(PCRAM)以及其他記憶體。
記憶體裝置可經組合在一起以形成一固態磁碟機(SSD)。一固態磁碟機可包含非揮發性記憶體(例如,NAND快閃記憶體及NOR快閃記憶體)及/或可包含揮發性記憶體(例如,DRAM及SRAM),以及各種其他類型之非揮發性及揮發性記憶體。快閃記憶體裝置可作為非揮發性記憶體而用於一寬廣範圍之電子應用,該等快閃記憶體裝置包含使用將資訊儲存於氮化物層中之電荷陷阱中之半導體-氧化物-氮化物-氧化物-半導體及金屬-氧化物-氮化物-氧化物-半導體電容器結構的浮動 閘極快閃裝置及電荷捕獲式快閃(CTF)裝置。快閃記憶體裝置通常使用允許高記憶體密度、高可靠性及低電力消耗之一單電晶體記憶體胞元。
一SSD可用於替換硬碟機而作為一電腦之主要儲存裝置,此乃因固態磁碟機可在效能、大小、重量、耐用性、操作溫度範圍及電力消耗方面具有優於硬碟機之優勢。舉例而言,當與磁碟機相比時,SSD由於其缺乏移動零件而可具有優越效能,此可避免與磁碟機相關聯之尋覓時間、延時及其他機電延遲。SSD製造商可使用非揮發性快閃記憶體來形成可不使用一內部電池供應之快閃SSD,因此允許磁碟機係更加多功能且更壓縮的。
一SSD可包含若干個記憶體裝置,例如,若干個記憶體晶片(如本文中所使用,「若干個」某物可係指此等事物中之一或多者,例如,若干個記憶體裝置可係指一或多個記憶體裝置)。如熟習此項技術者將瞭解,一記憶體晶片可包含若干個晶粒及/或邏輯單元(LUN)。每一晶粒可包含若干個記憶體陣列及記憶體陣列上之周邊電路。該等記憶體陣列可包含組織成若干個實體頁之若干個記憶體胞元,且該等實體頁可組織成若干個區塊。
一獨立磁碟冗餘陣列(RAID)係在多個記憶體裝置當中劃分及/或複製資料之電腦資料儲存方案之一涵蓋性術語。對使用者及一電腦之作業系統而言,一RAID陣列中之多個記憶體裝置可呈現為一單個記憶體裝置,例如,磁碟。在歷史上,一RAID與多個硬碟機(HDD)一起操作。
100‧‧‧計算系統
102‧‧‧主機/主機系統
104‧‧‧記憶體系統
106‧‧‧主機介面/實體主機介面
108‧‧‧記憶體控制器/共同記憶體控制器/通道控制器
110-1至110-N‧‧‧記憶體裝置/單磁區或多磁區記憶體裝置/固態記憶體裝置
120‧‧‧第一條紋映圖
122‧‧‧第二條紋映圖
210‧‧‧記憶體裝置/NAND快閃記憶體裝置
260-0...260-M‧‧‧實體區塊
270-0...270-R‧‧‧列
280-0...280-S‧‧‧磁區
340‧‧‧儲存磁碟區
342-1...342-N‧‧‧記憶體通道/通道
344-1...344-P‧‧‧條紋
346‧‧‧寫入資訊
348‧‧‧第一層級錯誤校正資訊
350‧‧‧同位資訊
420‧‧‧條紋映圖
430‧‧‧條紋索引行
432-1...432-V‧‧‧條紋索引
434‧‧‧頁識別符行
436-1‧‧‧頁識別符
436-2‧‧‧頁識別符
436-3‧‧‧頁識別符
436-4‧‧‧頁識別符
436-5‧‧‧頁識別符
436-6‧‧‧頁識別符
436-7‧‧‧頁識別符
436-8‧‧‧頁識別符
436-W‧‧‧頁識別符
522‧‧‧條紋映圖
532-1...532-V‧‧‧條紋化索引/條紋索引
534‧‧‧頁識別符行
536-1...536-W‧‧‧頁識別符
圖1係根據本發明之若干項實施例之呈包含至少一個記憶體系統之一計算系統形式之一設備之一功能方塊圖。
圖2圖解說明根據本發明之若干項實施例之一記憶體裝置之一部 分之一圖式。
圖3圖解說明在一條紋基礎上操作之一儲存磁碟區之一方塊圖。
圖4圖解說明根據本發明之若干項實施例之一條紋映圖。
圖5圖解說明根據本發明之若干項實施例之一條紋映圖。
本發明包含用於記憶體中之獨立磁碟冗餘陣列(RAID)條紋映射之方法及設備。一項方法實施例包含:根據一條紋映圖跨越複數個記憶體裝置之一儲存磁碟區在若干個條紋中寫入資料;其中該若干個條紋中之每一者包含若干個元素;且其中該條紋映圖包含用以識別該若干個條紋之若干個條紋索引及用以識別包含於該若干個條紋中之每一者中之元素之若干個元素識別符。
在若干項實施例中,可形成藉由條紋加索引之一條紋映圖。該條紋映圖可包含針對將在把資料寫入至若干個記憶體裝置時使用之每一條紋之條紋索引。該條紋映圖亦可識別將包含於條紋中的若干個記憶體裝置上之每一元素(例如,頁)。舉例而言,條紋化映圖可運用一第一條紋之一條紋索引來識別該第一條紋且亦識別將包含於該第一條紋中之若干個元素(例如,頁)。一條紋可包含若干個頁且一條紋之該若干個頁中之每一者可耦合至一記憶體系統之不同通道。
在若干項實施例中,一條紋映圖可用於定義一記憶體系統中之條紋,使得每一條紋具有擁有變化之位元錯誤率之諸多元素。擁有具有變化之位元錯誤率之元素之記憶體系統可減少當讀取一特定條紋時,一條紋將具有返回錯誤之多個元素之可能性。
在本發明之以下詳細說明中,參考形成本發明之一部分之附圖且其中以圖解方式展示可如何實踐本發明之一或多項實施例。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之實施例,且應理解,在不背離本發明之範疇之情況下可利用其他實施例且可做 出程序、電及/或結構改變。如本文中所使用,特定而言關於圖式中之元件符號之指定符「N」、「M」、「P」、「R」、「S」、「W」及「V」指示本發明之一或多項實施例可包含經如此指定之若干個特定特徵。
本文中之各圖遵循一編號慣例,其中第一個數字或前幾個數字對應於圖式圖編號且剩餘數字識別圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數字而識別。舉例而言,108可在圖1中指代元件「08」,且在圖2中一類似元件可稱為「208」。如將瞭解,在本文中之各種實施例中展示之元件可經添加、交換及/或消除以便提供本發明之若干項另外實施例。另外,如將瞭解,圖中所提供之元件之比例及相對尺度意欲圖解說明本發明之實施例,且不應在一限制意義上解讀。
圖1係根據本發明之若干項實施例之呈包含至少一個記憶體系統之一計算系統形式之一設備之一功能方塊圖。如本文中所使用,一主機102、一記憶體裝置104、一記憶體陣列、控制器及/或感測電路亦可單獨視為一「設備」。在圖1中所圖解說明之實施例中,記憶體系統104(例如,一固態磁碟機(SSD))可包含一主機介面106、一記憶體控制器108(其可實施於硬體(例如,控制電路)、韌體及/或軟體中)及若干個記憶體裝置110-1、...、110-N(例如,包含非揮發性多位階記憶體胞元之固態記憶體裝置)。記憶體裝置110-1、...、110-N可(例如)運用經格式化之一檔案系統而將用於記憶體系統之一儲存磁碟區提供至記憶體裝置。在若干項實施例中,記憶體控制器108可係耦合至包含實體主機介面106及記憶體裝置110-1、...、110-N之一印刷電路板之一特殊應用積體電路(ASIC)。
如圖1中所圖解說明,記憶體控制器108可藉由複數個通道耦合至主機介面106及記憶體裝置110-1、...、110-N。除如熟習此項技術 者將瞭解之其他記憶體操作之外,記憶體控制器108亦可經組態以執行本文中所闡述之操作。主機介面106可用於在記憶體系統104與另一裝置(諸如一主機102)之間傳遞資訊。主機102可包含一記憶體存取裝置,例如,一處理器。熟習此項技術者將瞭解,一「處理器」可意指若干個處理器(諸如,一並行處理系統)、若干個共處理器等。主機之實例包含膝上型電腦、個人電腦、數位相機、數位記錄及回放裝置、行動電話、PDA、記憶卡讀取器、介面集線器及諸如此類。針對若干項實施例,主機介面106可呈一標準化介面形式。舉例而言,當記憶體系統104在一計算系統100中用於資訊儲存時,實體主機介面106可係一串列進階技術附接(SATA)、高速周邊組件互連(PCIe)或一通用串列匯流排(USB)以及其他連接器及介面。然而,大體而言,主機介面106可提供用於在記憶體系統104與具有用於主機介面106之相容接收器之一主機系統102之間傳遞控制、位址、資訊及其他信號的一介面。
記憶體控制器108可包含可耦合至主機介面106及/或與主機介面106合併之主機介面電路。主機介面電路可透過若干個層(例如,一實體層、一鏈路層及/或一輸送層)與主機系統102介接。熟習此項技術者將瞭解,用於一特定主機介面之該若干個層可由一介面標準(諸如,串列進階技術附接(SATA)、高速周邊組件互連(PCIe)、通用串列匯流排(USB)等)定義。如本文中所使用,一輸送層可指示至少一輸送層(作為一SATA標準之一部分)及/或一交易層(作為一PCIe標準之一部分)。熟習此項技術者將瞭解,根據一SATA標準之一輸送層可類似於根據一PCIe標準之一交易層。實施例並不限於一特定標準。
大體而言,主機介面電路可將自主機系統(例如,自一PCIe匯流排)接收之命令封包轉換成命令指令以用於將主機-記憶體轉譯回應轉換成主機系統命令以供傳輸至請求之主機。舉例而言,主機介面電路 可自基於PCIe之交易層封包建構SATA命令封包。主機介面電路可經組態以自主機系統102接收與複數個位址相關聯之資訊。
記憶體控制器108可包含主機-記憶體轉譯電路,該主機-記憶體轉譯電路經組態以將主機位址轉譯成記憶體位址(例如,與諸如一讀取及/或寫入命令之一所接收命令相關聯之位址)。主機-記憶體轉譯電路可(舉例而言)將主機磁區讀取及寫入操作轉換成針對於記憶體裝置110-1、...、110-N之特定部分之命令。每一主機操作可經轉譯成單磁區或多磁區記憶體裝置110-1、...、110-N操作。舉例而言,主機讀取及寫入命令可經轉譯成記憶體裝置110-1、...、110-N讀取及寫入命令。
根據本發明之若干項實施例,可跨越至(例如)與一RAID操作相關聯之若干個固態記憶體裝置之複數個通道而將寫入資訊條紋化。如熟習此項技術者將瞭解,條紋化包含分割資訊,使得該等資訊跨越複數個通道而儲存(舉例而言)於一個以上裝置上。儲存經分割資訊之一個以上裝置之部分統稱為一條紋。相比而言,鏡射(mirroring)可包含將資訊之複製複本儲存於一個以上裝置上。
記憶體控制器108可維持一LBA表及/或一區塊表(未展示)。LBA表可儲存該若干個記憶體裝置110-1、...、110-N中之頁之實體頁位址且包含對應邏輯位址。LBA表可藉由含於一相關聯命令(例如,一相關聯SATA命令)中之LBA加索引。LBA表可用於查找對應於可儲存對應資訊之邏輯區塊位址之實體頁位址。區塊表可儲存用於該若干個記憶體裝置110-1、...、110-N中之可抹除區塊之資訊。儲存於區塊表中之資訊可包含有效頁資訊、抹除計數及其他狀態資訊。自區塊表存取之資訊可藉由實體區塊位址加索引。
記憶體控制器108可與記憶體裝置110-1、...、110-N通信以讀取、寫入及抹除資訊以及進行其他操作。儘管記憶體裝置110- 1、...、110-N經圖解說明為耦合至一共同記憶體控制器108,但本發明之若干項實施例可包含用於每一記憶體通道之一離散非揮發性記憶體控制器。一記憶體裝置110-1、...、110-N可包含若干個記憶體胞元(例如,非揮發性記憶體胞元)陣列。舉例而言,該等陣列可係具有一NAND架構之快閃陣列。在一NAND架構中,一「列」之記憶體胞元之控制閘極可與一存取線(例如,字線)耦合,同時記憶體胞元可源極至汲極地串聯耦合成一選擇閘極源極電晶體與一選擇閘極汲極電晶體之間的一「串」。該串可藉由選擇閘極汲極電晶體連接至一資料線(例如,位元線)。術語「列」及「串」之使用既不暗示記憶體胞元之一線性配置又不暗示記憶體胞元之一正交配置。如熟習此項技術者將瞭解,記憶體胞元至位元線及源極線之連接之方式取決於陣列是一NAND架構、一NOR架構還是某一其他記憶體陣列架構。
記憶體裝置110-1、...、110-N可包含可經分群之若干個記憶體胞元。如本文中所使用,一群組可包含若干個記憶體胞元,諸如,一頁、區塊、平面、晶粒,一整個陣列或其他記憶體胞元群組。舉例而言,某些記憶體陣列可包含組成一記憶體胞元區塊之若干個記憶體胞元頁。若干個區塊可包含於一記憶體胞元平面中。若干個記憶體胞元平面可包含於一晶粒上。作為一實例,一128GB記憶體裝置可包含每頁4314個位元組之資訊(例如,4096個位元組之寫入資訊加上218個位元組之附加資訊)、每區塊128個頁、每平面2048個區塊及每裝置16個平面。
在若干項實施例中,記憶體控制器108可包含一第一條紋映圖120及一第二條紋映圖122。在若干項實施例中,第一條紋映圖120之至少一部分及/或第二條紋映圖122之至少一部分亦可儲存於記憶體裝置110-1、...、110-N中、主機系統102中及/或一單獨儲存位置(未展示)中。一第二條紋映圖122可係第一條紋映圖120之一逆映圖,其中 第一條紋映圖120及第二條紋映圖122兩者皆包含相同資訊,但第一條紋映圖120係藉由條紋索引來加索引且第二條紋映圖122係藉由頁識別符加索引。因此,第一條紋映圖120可用於使若干個頁與一特定條紋相關聯且第二條紋映圖122可用於使若干個條紋與一特定頁相關聯。第一條紋映圖120可係將記憶體裝置110-1、...、110-N中之特定頁關聯至特定條紋之一資料結構。第一條紋映圖120可包含若干個條紋索引,其中該若干個條紋索引中之每一者識別記憶體裝置110-1、...、110-N中之一條紋。第一條紋映圖120可使記憶體裝置110-1、...、110-N之特定頁與藉由第一條紋映圖120之條紋索引識別之條紋相關聯。
在若干項實施例中,記憶體控制器108可基於記憶體裝置110-1、...、110-N內之一特定頁及/或一特定頁之一實體位置之位元錯誤率來選擇與條紋映圖中之特定條紋相關聯之特定頁。舉例而言,記憶體控制器108可選擇在條紋中包含具有較低位元錯誤率之某些頁及具有較高位元錯誤率之某些頁,使得條紋中之每一者將包含具有變化之位元錯誤率之頁。包含具有變化之位元錯誤率之頁的條紋不太可能具有不可校正ECC錯誤,因此可在讀取條紋時使用一ECC操作來校正錯誤。
此外,記憶體控制器108可基於記憶體裝置110-1、...、110-N上之頁的實體位置來選擇頁。舉例而言,記憶體控制器108可選擇接近一陣列之邊緣定位之某些頁(例如,「邊緣頁」)及朝向一陣列之中心定位之某些頁,使得條紋中之每一者將包含在記憶體裝置110-1、...、110-N上具有變化之實體位置之頁。記憶體控制器108可在條紋映圖中包含具有變化數目個頁之條紋。舉例而言,一個條紋可包含6個頁且另一條紋可包含5個頁。此外,一特定頁可包含於記憶體裝置110-1、...、110-N上之一個以上條紋中。
頁識別符可包含通道、裝置、區塊及/或頁資訊以識別記憶體裝置110-1、...、110-N中之一特定頁之位置。頁識別符可包含該頁之一實體位址。頁識別符可供通道控制器108使用以在執行一讀取及/或寫入操作時定位該頁。
主機-記憶體轉譯電路可包含第一層級及/或第二層級錯誤偵測電路(圖1中未展示)。儘管稱為錯誤偵測電路,但錯誤偵測電路亦可執行錯誤校正。如熟習此項技術者將理解,第一層級錯誤偵測電路可經組態以施加錯誤校正(諸如BCH錯誤校正)以偵測及/或校正與儲存於記憶體裝置110-1、...、110-N中之資訊相關聯之錯誤。舉例而言,第一層級錯誤偵測電路可提供對一1080位元碼字之29個位元之錯誤校正。第二層級錯誤偵測電路可(諸如)藉由判定存在多於可校正錯誤之一臨限量來偵測不可藉由第一層級錯誤偵測校正之錯誤,例如,不可校正錯誤校正碼(UECC)錯誤。第二層級錯誤偵測電路可包含RAID「互斥或」(XOR)電路。該RAID XOR電路可基於自主機介面電路接收之資訊而計算同位資訊。針對寫入至若干個記憶體裝置110-1、...、110-N之每一位元,一同位位元可藉由RAID XOR電路計算且經寫入至記憶體裝置110-1、...、110-N中之一特定者。
第二條紋映圖122可係將記憶體裝置110-1、...、110-N中之特定條紋關聯至記憶體裝置110-1、...、110-N中之特定頁之一資料結構。第二條紋映圖122可藉由頁加索引且包含若干個頁識別符,其中該若干個頁識別符中之每一者識別記憶體裝置110-1、...、110-N中之一頁。第二條紋映圖122可指示哪些條紋係與在第二條紋映圖122中加索引之頁相關聯。藉由頁加索引之第二條紋映圖122可係藉由條紋加索引之第一條紋映圖120之逆映圖。
在若干項實施例中,第二條紋映圖122可由第二層級錯誤偵測電路使用以執行一RAID讀取錯誤恢復操作。可在出現一UECC錯誤時執 行一RAID讀取錯誤恢復操作且可將來自係記憶體裝置110-1、...、110-N中之一或多個條紋之一部分的一毀壞頁之資料移動至不同頁。一毀壞頁可係其中在執行一讀取操作時出現一UECC錯誤之一頁。RAID讀取錯誤恢復操作可藉由定位第二條紋映圖122中之毀壞頁之頁識別符而使用第二條紋映圖122且判定包含該毀壞頁之記憶體裝置110-1、...、110-N中之條紋。藉由第二條紋映圖122識別為包含毀壞頁之條紋可經更新,使得來自毀壞頁之資料使用同位資料經恢復且該資料經移動至記憶體裝置110-1、...、110-N中之一不同頁。第一條紋映圖120然後可經更新以使不同頁之頁識別符與記憶體裝置110-1、...、110-N中之經更新條紋相關聯。
圖1之實施例可包含額外電路,該額外電路未經圖解說明以免模糊本發明之實施例。舉例而言,記憶體系統104可包含用以鎖存通過I/O電路經由I/O連接提供之位址信號之位址電路。位址信號可經接收且由一列解碼器及一行解碼器解碼以存取記憶體裝置110-1、...、110-N。熟習此項技術者將瞭解,位址輸入連接之數目可取決於記憶體裝置110-1、...、110-N之密度及架構。
圖2圖解說明根據本發明之若干項實施例之一記憶體裝置210之一部分之一圖式。記憶體裝置210可係諸如圖1中所展示之記憶體裝置110-1至110-N之一裝置。
如圖2中所展示,記憶體裝置210可包含記憶體胞元之若干個實體區塊260-0(區塊0)、260-1(區塊1)、...、260-M(區塊M)。在圖2中所展示之實例中,指示符「M」用於指示記憶體裝置210可包含若干個實體區塊。作為一實例,記憶體裝置210中之實體區塊之數目可係128個區塊、4,096個區塊或32,768個區塊,然而,實施例並不限於一記憶體裝置中之實體區塊之一特定數目或特定倍數。在圖2中所圖解說明之實施例中,記憶體裝置210可係(舉例而言)一NAND快閃記憶體 裝置210,使得(舉例而言)每一實體區塊260-0、260-1、...、260-M中之記憶體胞元可作為一單元一起被抹除,例如,每一實體區塊中之胞元可以一實質上同步方式被抹除。舉例而言,每一實體區塊中之胞元可在一單個抹除操作中一起被抹除。
指示符「R」用於指示一實體區塊(例如,260-0、260-1、...、260-M)可包含若干個列。在某些實施例中,每一實體區塊中之列(例如,字線)之數目可係32,但實施例並不限於每實體區塊一特定數目個列270-0、270-1、...、270-R。如熟習此項技術者將瞭解,每一列270-0、270-1、...、270-R可包含一或多個實體頁,例如,一偶數頁及一奇數頁。一實體頁係指一寫入及/或讀取單元,例如,一起經寫入及/或讀取或作為記憶體胞元之一功能群組之若干個胞元。因此,可運用單獨寫入及/或讀取操作來寫入及/或讀取一偶數頁及一奇數頁。
在本發明之若干項實施例中,且如圖2中所展示,一頁可將資訊儲存於若干個磁區280-0、280-1、...、280-S中。指示符「S」用於指示一頁可包含若干個磁區。資訊可包含系統資料及/或使用者資料。每一磁區280-0、280-1、...、280-S可儲存系統資料及/或使用者資料且可包含附加資訊,例如,錯誤校正碼(ECC)資訊及邏輯區塊位址(LBA)資訊。如熟習此項技術者將瞭解,邏輯區塊定址係可由一主機用於識別一資訊磁區之一方案,例如,每一磁區可對應於一唯一LBA。在若干項實施例中,一磁區係一儲存磁碟區之最小可定址部分。作為一實例,一資訊磁區可係若干個資訊位元組,例如,256個位元組、512個位元組或1,024個位元組。舉例而言,一SSD可在一頁中具有4個、8個或16個磁區,其中一磁區可係512個位元組,且一SSD可具有每實體區塊128個、256個或512個頁,因此實體區塊大小係131072個位元組、262144個位元組及524288個位元組。實施例並不 限於此等實例。
應注意,針對實體區塊260-0、260-1、...、260-M,列270-0、270-1、...、270-R,磁區280-0、280-1、...、280-S及頁之其他組態係可能的。舉例而言,實體區塊260-0、260-1、...、260-M之列270-0、270-1、...、270-R可各自儲存對應於一單個磁區之資訊,該磁區可包含(舉例而言)多於或少於512個位元組之資訊。
圖3圖解說明在一條紋基礎上操作之一儲存磁碟區340之一方塊圖。儲存磁碟區340可由經格式化之一檔案系統而提供至一記憶體系統(例如,圖1中之記憶體系統104)中之若干個固態記憶體裝置(例如,圖1中之固態記憶體裝置110-1、...、110-N)。如本文中所闡述,每一固態記憶體裝置可與一記憶體通道342-1、...、342-(N-1)、342-N相關聯。然而,實施例並不限於每記憶體裝置(例如,記憶體晶片)一個通道,如某些實施例可包含每裝置多個通道。一個記憶體晶片可藉由一個以上通道耦合至一記憶體控制器,例如,在一記憶體晶片包含記憶體胞元之一個以上實體平面之情形中。可跨越由該若干個固態記憶體裝置提供之儲存磁碟區340而在若干個條紋344-1、344-2、...、344-P中寫入資訊。
一記憶體系統可自一主機系統(例如,圖1中所展示之主機102)接收寫入資訊。記憶體系統(例如,與圖1中之記憶體控制器108相關聯之RAID XOR電路)可計算針對寫入資訊之同位資訊。在若干項實施例中,寫入資訊及同位資訊可跨越儲存磁碟區340經條紋化,使得寫入資訊可跨越該若干個可用通道之一子集(例如,通道342-1、...、342-(N-1))經寫入且同位資訊可跨越該若干個可用通道之一第二子集(例如,通道342-N)經寫入。舉例而言,一記憶體系統可包含八個通道,其中七個通道用於寫入寫入資訊且一個通道用於寫入同位資訊。如本文中所闡述,可針對不同條紋跨越不同通道寫入同位資訊。然而,實 施例並不限於將N個通道中之N-1者用於寫入資料且將一單個通道用於同位資料。根據本發明之若干項實施例,RAID結構及/或條紋大小可係可程式化選項。
一RAID結構可表示經設計以跨越多個記憶體裝置劃分及/或複製資訊之一RAID儲存方案之一實施方案。舉例而言,可跨越兩個或兩個以上裝置而使資訊條紋化及/或鏡射資訊。條紋化可包含將寫入資訊劃分成若干元素且將至少一個元素儲存於若干個記憶體裝置中之每一者中。鏡射可包含將寫入資訊之一複本冗餘地儲存於至少兩個記憶體裝置中。條紋化及鏡射兩者皆可包含使用錯誤偵測。同位資訊可儲存於與寫入資訊相同之記憶體裝置中及/或儲存於與儲存寫入資訊之裝置分離之一裝置中。根據本發明之若干項實施例,待由一記憶體系統實施之特定RAID結構可係一可程式化選項。
如本文中所使用,一條紋大小可係指跨越其使資訊條紋化之通道之數目。根據本發明之若干項實施例,用於一記憶體系統之一條紋大小可係一可程式化選項,使得可用於記憶體系統之任何數目個通道皆可用於一條紋。舉例而言,包含32個通道及若干個對應記憶體裝置之一記憶體系統可具有自2個至32個通道之任何條紋大小。某些實施例可包含將一非揮發性記憶體邏輯地隔離成至少兩個部分,每一部分包含與該非揮發性記憶體相關聯之該若干個通道之一子集。此等實施例可包含在一條紋基礎上針對至少兩個部分中之每一者單獨地操作該非揮發性記憶體系統。舉例而言,可在每一條紋中寫入若干個頁之寫入資訊及同位資訊,其中一第一條紋係跨越記憶體系統之該若干個通道之僅一個子集而寫入且一第二條紋係跨越該記憶體系統之該若干個通道之僅一不同子集而寫入。此外,一條紋大小可在操作記憶體系統之操作期間改變。一區塊表可用於跟蹤記憶體系統之哪些部分對應於哪些條紋。
與圖1中之記憶體控制器108相關聯之ECC電路可計算寫入資訊之元素之第一層級錯誤校正資訊及/或儲存於記憶體裝置中之第二層級校正資訊(例如,同位資訊)。圖3包含以下內容之一圖解:與通道342-1、...、342-(N-1)相關聯儲存之寫入資訊346及第一層級錯誤校正資訊348以及與通道342-N相關聯儲存之同位資訊350及第一層級錯誤校正資訊348。當一條紋經寫入時,寫入資訊及錯誤校正資訊可一起經寫入。若在資訊(無論是寫入資訊還是同位資訊)中偵測到一錯誤,則可使用第一層級錯誤校正資訊以試圖在實施一第二層級之錯誤校正(例如,與上文所闡述之同位資訊相關聯之校正)之前或在不實施該第二層級之錯誤校正之情況下校正該錯誤。一記憶體系統可儲存足夠的第一層級錯誤校正資訊以使臨限數目個錯誤位元能夠被校正。若在一寫入操作期間偵測到包含比可運用第一層級錯誤校正資訊校正之位元錯誤多之位元錯誤之一錯誤(例如,一UECC錯誤),則可實施(例如)使用上文所闡述之第二條紋映圖及同位資訊進行之第二層級錯誤校正,例如,可使用同位資訊及寫入資訊之一剩餘部分重新形成與該(等)錯誤相關聯之資訊。
圖4圖解說明根據本發明之若干項實施例之一條紋映圖420。儘管在此實例中提及「頁」,但條紋亦可包括除頁之外的元素。
在圖4中所展示之實例中,條紋映圖420係包含一條紋索引行430及若干個頁識別符行434之一表。在圖4中,藉由條紋索引432-1、432-2、432-3、...、432-V指示若干個條紋。條紋索引432-1、432-2、432-3、...、432-V中之每一者與若干個頁相關聯。舉例而言,條紋索引432-1與頁識別符436-1、436-2、436-3及436-4相關聯;條紋索引432-2與頁識別符436-5、436-3、436-6及436-4相關聯;條紋索引432-3與頁識別符436-2、436-7、436-4及436-1相關聯;且條紋索引432-V與頁識別符436-8、436-7、436-4及436-W相關聯。兩個或兩個以上條 紋可包含共同頁。舉例而言,條紋索引432-1、432-2及432-3全部與頁識別符436-4相關聯。此外,條紋可與不同數目個頁相關聯。舉例而言,條紋索引432-1與四個頁相關聯且條紋索引432-V與三個頁相關聯。
可根據條紋映圖將資料寫入至記憶體裝置,使得當資料經寫入至藉由一條紋索引識別之一條紋時,資料亦將經寫入至如條紋映圖中所指示之相關聯頁。舉例而言,當寫入藉由條紋索引432-1指示之條紋時,資料將經寫入至藉由頁識別符436-1、436-2、436-3及436-4識別之頁。頁識別符可包含通道、裝置、區塊及/或頁資訊。此外,每一條紋可包含一同位頁且每一條紋之同位頁可藉由條紋映圖之行中之一者中之頁識別符指示。舉例而言,每一條紋之同位頁可藉由條紋映圖之第二行中之頁識別符識別。
圖5圖解說明根據本發明之若干項實施例之一條紋映圖522。儘管在此實例中提及「頁」,但條紋亦可包括除頁之外的元素。條紋映圖522可係上文與圖4相關聯闡述之條紋映圖420之一逆映圖。在圖5中所展示之實例中,條紋映圖522係包含若干個條紋索引行530及一頁識別符行534之一表。在圖5中,藉由頁識別符536-1、536-2、536-3、536-4、536-5、536-6、536-7、536-8...、536-W指示若干個頁。頁識別符536-1、536-2、536-3、536-4、536-5、536-6、536-7、536-8...、532-V中之每一者與藉由條紋化索引532-1、532-2、532-3、...、532-V指示之若干個條紋相關聯。舉例而言,頁識別符536-3與由條紋索引532-1及532-2指代之條紋相關聯。因此,回應於一UECC錯誤,條紋映圖表522可用於執行一RAID讀取錯誤恢復操作。一RAID讀取錯誤恢復操作可包含將資料自係一或多個條紋之一部分之一毀壞頁移動至不同頁。RAID讀取錯誤恢復操作可使用條紋映圖522來定位條紋映圖522中之毀壞頁之頁識別符且判定包含該毀壞頁之條紋。藉由條紋映 圖522識別為包含毀壞頁之條紋可經更新,使得來自毀壞頁之資料使用同位資料經恢復且該資料經移動至一不同頁。來自圖4之條紋映圖420然後可經更新以使不同頁之頁識別符與經更新條紋相關聯。
本發明包含用於記憶體中之RAID條紋映射之方法及裝置。一項方法實施例包含:根據一條紋映圖跨越複數個記憶體裝置之一儲存磁碟區在若干個條紋中寫入資料;其中該若干個條紋中之每一者包含若干個元素;且其中該條紋映圖包含用以識別該若干個條紋之若干個條紋索引及用以識別包含於該若干個條紋中之每一者中之元素之若干個元素識別符。
儘管本文中已圖解說明且闡述了特定實施例,但熟習此項技術者將瞭解,經計算以達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之若干項實施例之調適或變化。應理解,已以一說明性方式而非一限制性方式做出以上說明。熟習此項技術者在審閱以上說明後旋即將明瞭上文實施例之組合及本文中未具體闡述之其他實施例。本發明之若干項實施例之範疇包含其中使用上文結構及方法之其他應用。因此,應參考隨附申請專利範圍以及授權此申請專利範圍之等效內容之全部範圍來判定本發明之若干項實施例之範疇。
在前述實施方式中,出於簡化本發明之目的而將某些特徵共同分群於一單個實施例中。本發明之此方法不應解釋為反映以下之一意圖:本發明之所揭示實施例必須使用比在每一請求項中明確陳述之特徵更多之特徵。而是,如以下申請專利範圍反映,發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將以下申請專利範圍併入至實施方式中,其中每一請求項獨立地作為一單獨實施例。
100‧‧‧計算系統
102‧‧‧主機/主機系統
104‧‧‧記憶體系統
106‧‧‧主機介面/實體主機介面
108‧‧‧記憶體控制器/共同記憶體控制器/通道控制器
110-1至110-N‧‧‧記憶體裝置/單磁區或多磁區記憶體裝置/固態記憶體 裝置
120‧‧‧第一條紋映圖
122‧‧‧第二條紋映圖

Claims (29)

  1. 一種用於條紋映射之方法,其包括:根據一第一條紋映圖(stripe map)跨越複數個記憶體裝置之一儲存磁碟區在若干個條紋中寫入資料;其中該若干個條紋中之每一者包含若干個元素;其中該第一條紋映圖包含用以識別該若干個條紋之若干個條紋索引及用以識別包含於該若干個條紋中之每一者中之元素之若干個元素識別符;儲存一第二條紋映圖,其中該第二條紋映圖係該第一條紋映圖之一逆條紋映圖(inverse stripe map);使用該第二條紋映圖執行一獨立磁碟冗餘陣列(redundant array of independent disks,RAID)讀取錯誤恢復操作以識別包含一或多個毀壞元素(bad element)之一或多個條紋;且更新該第一條紋映圖中包含該一或多個毀壞元素之該一或多個條紋。
  2. 如請求項1之方法,其中該方法包含藉由使該若干個條紋索引中之每一者與該複數個記憶體裝置中之該等元素之一部分相關聯而形成該第一條紋映圖。
  3. 如請求項1之方法,其中該方法包含藉由使該若干個條紋中之每一者與一同位元素識別符相關聯而形成該第一條紋映圖。
  4. 如請求項1之方法,其中該方法包含藉由基於與該等元素相關聯之一位元錯誤率來選擇包含於該若干個條紋中之該等元素而形成該第一條紋映圖。
  5. 如請求項1之方法,其中該方法包含藉由基於該複數個記憶體裝置內之頁之一位置來選擇包含於該若干個條紋中之該等頁而形 成該第一條紋映圖。
  6. 如請求項1之方法,其中在該若干個條紋中寫入資料包含將該資料分割成該若干個元素且將該若干個元素寫入至該複數個記憶體裝置。
  7. 如請求項6之方法,其中將該若干個元素寫入至該複數個記憶體裝置包含將至少一個元素寫入至該複數個記憶體裝置中之每一者。
  8. 如請求項6之方法,其中將該若干個元素寫入至該複數個記憶體裝置包含將至少一個元素寫入至該複數個記憶體裝置之一子集中之每一者。
  9. 如請求項8之方法,其中將至少一個元素寫入至該複數個記憶體裝置之一子集中之每一者包含將寫入資料之一各別頁寫入至該複數個記憶體裝置之一子集中之每一者。
  10. 一種用於條紋映射之方法,其包括:儲存包含與記憶體中之若干個條紋相關聯之每一元素之元素識別符資訊之一第一條紋映圖,其中與該若干個條紋相關聯之每一元素基於在一特定元素中出現一讀取錯誤之一可能性而包含於一特定條紋中;將資料寫入至該記憶體中之該若干個條紋,其中該資料係基於該第一條紋映圖之該元素識別符資訊跨越該記憶體而條紋化;儲存一第二條紋映圖,其中該第二條紋映圖係該第一條紋映圖之一逆條紋映圖;使用該第二條紋映圖執行一讀取錯誤恢復操作以識別包含一或多個毀壞元素(bad element)之一或多個條紋;及更新該第一條紋映圖中包含該一或多個毀壞元素之該一或多 個條紋。
  11. 如請求項10之方法,其中儲存該第一條紋映圖包含提供用於該若干個條紋中之每一者之一特定條紋索引。
  12. 如請求項10之方法,其中儲存該第一條紋映圖包含提供用於與該若干個條紋相關聯之每一元素之一實體位址。
  13. 如請求項12之方法,其中用於與該若干個條紋相關聯之每一元素之該實體位址包含通道、裝置、區塊及頁資訊。
  14. 如請求項10之方法,其中該方法包含儲存該第二條紋映圖,其中該第二條紋映圖係藉由元素加索引且識別與每一特定元素相關聯之每一條紋。
  15. 如請求項10之方法,其中該方法包含藉由用一不同元素之元素識別符替換毀壞元素之元素識別符來更新該第一條紋映圖。
  16. 如請求項10之方法,其中該第一條紋映圖包含與一特定條紋相關聯之一特定數目個元素,其中元素之該特定數目係可變的。
  17. 如請求項10之方法,其中該第一條紋映圖包含一同位元素識別符,該同位元素識別符包含於該若干個條紋中之每一者中。
  18. 一種用於條紋映射之方法,其包括:儲存一第一條紋映圖,其中該第一條紋映圖係藉由元素加索引且識別與複數個記憶體裝置中之若干個元素之每一特定元素相關聯之每一條紋;及藉由使用一第二條紋映圖定位該第一條紋映圖中之一毀壞元素來執行一讀取錯誤恢復操作並更新與該第一條紋映圖中之該毀壞元素相關聯之若干個條紋中之每一者,該第二條紋映圖係該第一條紋映圖之一逆條紋映圖。
  19. 如請求項18之方法,其中更新該若干個條紋中之每一者包含用一新元素替換一元素頁。
  20. 如請求項18之方法,其中該方法包含回應於一錯誤校正碼(ECC)操作失敗而執行該讀取錯誤恢復操作。
  21. 如請求項18之方法,其中該方法包含藉由自該第一條紋映圖移除毀壞元素之元素識別符而更新該第一條紋映圖。
  22. 一種設備,其包括:若干個記憶體裝置;一控制器,其耦合至該若干個記憶體裝置且經組態以:在該若干個記憶體裝置中儲存包括用於若干個條紋之每一元素之元素識別符之一第一條紋映圖,其中該第一條紋映圖定義特定條紋之特定元素;將資料寫入至該若干個記憶體裝置,其中將該資料寫入至藉由該第一條紋映圖定義之該若干個條紋之元素;儲存包括該第一條紋映圖之一逆條紋映圖之一第二條紋映圖,其中該第二條紋映圖被用以執行一讀取錯誤恢復操作以識別包含一或多個毀壞元素(bad element)之一或多個條紋;且更新該第一條紋映圖中包含該一或多個毀壞元素之該一或多個條紋。
  23. 如請求項22之設備,其中用於每一元素之該等元素識別符包含通道、裝置、區塊及頁資訊。
  24. 如請求項22之設備,其中若干個元素中之任一元素可包含於一特定條紋中。
  25. 如請求項22之設備,其中特定條紋之該等特定元素係基於該若干個記憶體裝置中之實體位置而被選擇。
  26. 如請求項25之設備,其中該等變化之實體位置係基於與該等實體位置相關聯之位元錯誤率而選擇。
  27. 一種設備,其包括: 若干個記憶體裝置;一控制器,其耦合至該若干個記憶體裝置且經組態以:儲存識別特定頁及與每一特定頁相關聯之若干個條紋之一第一條紋映圖;儲存一第二條紋映圖,其中該第二條紋映圖係該第一條紋映圖之一逆條紋映圖;且藉由定位該第一條紋映圖中之一毀壞頁且更新與如藉由該第一條紋映圖指示之該毀壞頁相關聯之該若干個條紋中之每一者來使用該第二條紋映圖以執行一RAID讀取錯誤恢復操作。
  28. 如請求項27之設備,其中該第一條紋映圖運用一頁識別符來識別該等特定頁中之每一者。
  29. 如請求項27之設備,其中與該毀壞頁相關聯之該若干個條紋中之每一者係藉由在該若干個條紋中之每一者中包含一新頁而更新。
TW105118205A 2015-06-10 2016-06-08 記憶體中之條紋映射 TWI599946B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/735,838 US9766837B2 (en) 2015-06-10 2015-06-10 Stripe mapping in memory

Publications (2)

Publication Number Publication Date
TW201709044A TW201709044A (zh) 2017-03-01
TWI599946B true TWI599946B (zh) 2017-09-21

Family

ID=57504083

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105118205A TWI599946B (zh) 2015-06-10 2016-06-08 記憶體中之條紋映射

Country Status (7)

Country Link
US (3) US9766837B2 (zh)
EP (1) EP3289441B1 (zh)
JP (1) JP6422600B2 (zh)
KR (1) KR101874290B1 (zh)
CN (1) CN107743617B (zh)
TW (1) TWI599946B (zh)
WO (1) WO2016200764A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529672B2 (en) * 2014-09-25 2016-12-27 Everspin Technologies Inc. ECC word configuration for system-level ECC compatibility
US10073621B1 (en) * 2016-03-31 2018-09-11 EMC IP Holding Company LLC Managing storage device mappings in storage systems
US10545825B2 (en) * 2016-04-29 2020-01-28 Synamedia Limited Fault-tolerant enterprise object storage system for small objects
CN107870730B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和系统
US10365983B1 (en) * 2017-04-27 2019-07-30 EMC IP Holding Company LLC Repairing raid systems at per-stripe granularity
US10719399B2 (en) 2018-01-08 2020-07-21 International Business Machines Corporation System combining efficient reliable storage and deduplication
US10901840B2 (en) * 2018-06-28 2021-01-26 Western Digital Technologies, Inc. Error correction decoding with redundancy data
US11017112B2 (en) * 2018-07-03 2021-05-25 Tyson York Winarski Distributed network for storing a redundant array of independent blockchain blocks
US10747614B2 (en) * 2018-07-23 2020-08-18 Micron Technology, Inc. Hybrid iterative error correcting and redundancy decoding operations for memory sub-systems
CN111124269B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机可读存储介质
CN111124262B (zh) * 2018-10-31 2023-08-22 伊姆西Ip控股有限责任公司 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
US11204716B2 (en) 2019-01-31 2021-12-21 EMC IP Holding Company LLC Compression offloading to RAID array storage enclosure
US11055188B2 (en) * 2019-04-12 2021-07-06 EMC IP Holding Company LLC Offloading error processing to raid array storage enclosure
TWI708260B (zh) * 2019-08-15 2020-10-21 華邦電子股份有限公司 儲存裝置及存取方法
US10970170B2 (en) * 2019-08-29 2021-04-06 Micron Technology, Inc. Shared parity protection
KR20220023476A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20220072242A (ko) * 2020-11-25 2022-06-02 삼성전자주식회사 비휘발성 메모리 장치의 데이터 기입 방법 및 이를 수행하는 비휘발성 메모리 장치
KR20220077573A (ko) * 2020-12-02 2022-06-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11520656B2 (en) 2021-03-19 2022-12-06 Micron Technology, Inc. Managing capacity reduction and recovery due to storage device failure
US11520500B2 (en) 2021-03-19 2022-12-06 Micron Technology, Inc. Managing capacity reduction when downshifting multi-level memory cells
US11892909B2 (en) 2021-03-19 2024-02-06 Micron Technology, Inc. Managing capacity reduction due to storage device failure
US11733884B2 (en) 2021-03-19 2023-08-22 Micron Technology, Inc. Managing storage reduction and reuse with failing multi-level memory cells
US11307931B1 (en) * 2021-03-19 2022-04-19 Micron Technology, Inc. Using zones to manage capacity reduction due to storage device failure
US11650881B2 (en) 2021-03-19 2023-05-16 Micron Technology, Inc. Managing storage reduction and reuse in the presence of storage device failures
US11605439B2 (en) * 2021-03-31 2023-03-14 Micron Technology, Inc. Remapping bad blocks in a memory sub-system
US11822814B2 (en) * 2022-02-28 2023-11-21 Western Digital Technologies, Inc. Dynamic XOR bin mapping in memory devices
US12001685B2 (en) * 2022-03-31 2024-06-04 Cohesity, Inc. Performing an in-line erasure coding process using a write-ahead log

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5570376A (en) * 1994-10-05 1996-10-29 Sun Microsystems, Inc. Method and apparatus for identifying faults within a system
US6513093B1 (en) * 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US6902882B2 (en) * 2000-05-23 2005-06-07 Kerong Gu Methods of monitoring production of gene products and uses thereof
US6996742B2 (en) * 2000-11-28 2006-02-07 Sedna Patent Services, Llc Method for regenerating and streaming content from a video server using RAID 5 data striping
JP3682256B2 (ja) * 2001-11-30 2005-08-10 株式会社東芝 ディスクアレイ装置及び同装置におけるパリティ処理方法
JP3702231B2 (ja) * 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
JP4238514B2 (ja) 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
US7386663B2 (en) * 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
US7380157B2 (en) * 2004-10-27 2008-05-27 Pillar Data Systems, Inc. Staggered writing for data storage systems
US7386758B2 (en) * 2005-01-13 2008-06-10 Hitachi, Ltd. Method and apparatus for reconstructing data in object-based storage arrays
TWI350526B (en) 2005-11-21 2011-10-11 Infortrend Technology Inc Data access methods and storage subsystems thereof
JP5242264B2 (ja) * 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
TWI497293B (zh) 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
IT1399634B1 (it) * 2010-04-26 2013-04-26 G S G Srl Macchina per il trattamento di miscele alimentari ad attivazione centralizzata
US8898206B1 (en) * 2010-04-28 2014-11-25 Netapp, Inc. Mechanism for distributed inode to path traversal in a striped volume system
US8417877B2 (en) * 2010-08-31 2013-04-09 Micron Technology, Inc Stripe-based non-volatile multilevel memory operation
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
CN103348330B (zh) 2010-12-01 2017-05-24 希捷科技有限公司 采用独立硅元件的动态较高级冗余模式管理
KR101732030B1 (ko) 2010-12-22 2017-05-04 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US9251059B2 (en) * 2011-09-23 2016-02-02 Avalanche Technology, Inc. Storage system employing MRAM and redundant array of solid state disk
US8694849B1 (en) * 2011-12-19 2014-04-08 Pmc-Sierra Us, Inc. Shuffler error correction code system and method
WO2013119074A1 (ko) 2012-02-09 2013-08-15 Noh Sam Hyuk 신뢰성 있는 ssd를 위한 효율적인 raid 기법
US8327185B1 (en) 2012-03-23 2012-12-04 DSSD, Inc. Method and system for multi-dimensional raid
JP6039699B2 (ja) * 2012-07-23 2016-12-07 株式会社日立製作所 ストレージシステム及びデータ管理方法
US9348758B2 (en) 2012-09-24 2016-05-24 Sk Hynix Memory Solutions Inc. Virtual addressing with multiple lookup tables and RAID stripes
US8862818B1 (en) 2012-09-27 2014-10-14 Emc Corporation Handling partial stripe writes in log-structured storage
US8977594B2 (en) 2012-12-21 2015-03-10 Zetta Inc. Systems and methods for state consistent replication
GB2517435A (en) * 2013-08-19 2015-02-25 Ibm Fast data back-up and restore between volatile and flash memory
US9405783B2 (en) 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
US9274888B2 (en) * 2013-11-15 2016-03-01 Qualcomm Incorporated Method and apparatus for multiple-bit DRAM error recovery
US20150363118A1 (en) * 2014-06-17 2015-12-17 Netapp, Inc. Techniques for harmonic-resistant file striping
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9639268B2 (en) * 2014-08-21 2017-05-02 Datrium, Inc. Distributed data storage system with key-based addressing
KR20160083762A (ko) * 2015-01-02 2016-07-12 삼성전자주식회사 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템

Also Published As

Publication number Publication date
US9766837B2 (en) 2017-09-19
CN107743617A (zh) 2018-02-27
CN107743617B (zh) 2019-06-04
US10339005B2 (en) 2019-07-02
EP3289441A4 (en) 2018-09-05
WO2016200764A1 (en) 2016-12-15
EP3289441A1 (en) 2018-03-07
US20170357467A1 (en) 2017-12-14
EP3289441B1 (en) 2020-04-29
US11042441B2 (en) 2021-06-22
US20160364181A1 (en) 2016-12-15
KR20180005284A (ko) 2018-01-15
KR101874290B1 (ko) 2018-07-03
JP2018517213A (ja) 2018-06-28
US20190324847A1 (en) 2019-10-24
TW201709044A (zh) 2017-03-01
JP6422600B2 (ja) 2018-11-14

Similar Documents

Publication Publication Date Title
TWI599946B (zh) 記憶體中之條紋映射
US8266501B2 (en) Stripe based memory operation
US9298545B2 (en) Data protection across multiple memory blocks
US9235503B2 (en) Stripe-based non-volatile multilevel memory operation
US20220283728A1 (en) Method for redundant array of independent disks striping against programming failures and apparatus thereof
US9274883B2 (en) Apparatuses and methods for storing validity masks and operating apparatuses