TWI528174B - 基於可用記憶體空間選擇冗餘儲存組態 - Google Patents
基於可用記憶體空間選擇冗餘儲存組態 Download PDFInfo
- Publication number
- TWI528174B TWI528174B TW103109237A TW103109237A TWI528174B TW I528174 B TWI528174 B TW I528174B TW 103109237 A TW103109237 A TW 103109237A TW 103109237 A TW103109237 A TW 103109237A TW I528174 B TWI528174 B TW I528174B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- redundant
- storage configuration
- data
- memory space
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Description
本發明大體上係關於記憶體系統,且特別係關於冗餘儲存組態。
非揮發性記憶體系統(諸如,固態硬碟(Solid State Drive,SSD))有時使用冗餘儲存方案來儲存資料,以便確保可在記憶體故障之情況下成功地擷取被寫入至SSD之資料。用於非揮發性記憶體之各種冗餘儲存方案在此項技術中為吾人所知。
舉例而言,揭示內容係以引用方式併入本文中之美國專利申請公開案2010/0017650描述一種非揮發性記憶體資料儲存系統,其包括用於與外部主機通信之主機介面(host interface),及包括第一複數個快閃記憶體器件之主儲存體(main storage)。每一記憶體器件包括第二複數個記憶體區塊。第三複數個第一階段控制器(stage controller)耦接至第一複數個快閃記憶體器件。第二階段控制器經由內部介面而耦接至主機介面及第三複數個第一階段控制器。第二階段控制器經組態以執行獨立磁碟冗餘陣列(Redundant Array of Independent Disk,RAID)操作以用於根據至少一同位之資料復原。
作為另一實例,揭示內容係以引用方式併入本文中之美國專利申請公開案2009/0204872描述一種快閃模組,其具有由控制器經由實
體區塊位址(Physical-Block Address,PBA)匯流排而存取之原始NAND快閃記憶體晶片。控制器將邏輯區塊位址轉換至實體區塊位址。在一些實施例中,可配置資料以提供冗餘儲存(其相似於RAID系統),以便改良系統可靠性。
本文所描述的本發明之一實施例提供一種方法,其包括在控制一記憶體之一記憶體控制器中評估該記憶體中剩餘之一可用記憶體空間以寫入資料。在該記憶體控制器中取決於該可用記憶體空間而選擇一冗餘儲存組態。使用該所選擇冗餘儲存組態而經由該資料來演算冗餘資訊。將該資料及該冗餘資訊寫入至該記憶體中之該可用記憶體空間。
在一些實施例中,選擇該冗餘儲存組態包括基於該可用記憶體空間來選取供演算該冗餘資訊之數個記憶體區塊。在其他實施例中,選擇該冗餘儲存組態包括選取具有取決於該可用記憶體空間之一碼率之一錯誤校正碼(Error Correction Code,ECC),且演算該冗餘資訊包括使用該所選取ECC來計算該冗餘資訊。在再其他實施例中,選擇該冗餘儲存組態包括將一或多個記憶體區塊自儲存該冗餘資訊之一部分重新指派至儲存該資料之一部分。
在一些實施例中,選擇該冗餘儲存組態包括自保護一或多個全部記憶體區塊以防故障的一第一儲存組態切換至保護該等記憶體區塊之僅部分以防故障的一第二儲存組態。在其他實施例中,在回收藉由該第一儲存組態而產生之一冗餘區塊的同時執行自該第一儲存組態至該第二儲存組態之切換。在再其他實施例中,選擇該冗餘儲存組態包括在偵測到該可用記憶體空間低於一預定義臨限值後隨即修改該冗餘儲存組態。
根據本發明之一實施例,另外提供一種裝置,其包括一記憶體
及一記憶體控制器。該記憶體控制器經組態以評估該記憶體中剩餘之一可用記憶體空間以寫入資料、取決於該可用記憶體空間而選擇一冗餘儲存組態、使用該所選擇冗餘儲存組態而經由該資料來演算冗餘資訊,及將該資料及該冗餘資訊寫入至該記憶體中之該可用記憶體空間。
根據本發明之一實施例,另外提供一種記憶體控制器,其包括一介面及一處理器。該介面經組態以與一記憶體通信。該處理器經組態以評估該記憶體中剩餘之一可用記憶體空間以寫入資料、取決於該可用記憶體空間而選擇一冗餘儲存組態、使用該所選擇冗餘儲存組態而經由該資料來演算冗餘資訊,及將該資料及該冗餘資訊寫入至該記憶體中之該可用記憶體空間。
自本發明之實施例之以下詳細描述連同圖式將更充分地理解本發明,在圖式中:
10‧‧‧主機
20‧‧‧記憶體系統
25‧‧‧記憶體控制器
30‧‧‧快閃記憶體器件
35‧‧‧主機介面
40‧‧‧處理器
45‧‧‧隨機存取記憶體(RAM)
50‧‧‧記憶體介面
100‧‧‧評估步驟
110‧‧‧選擇步驟
120‧‧‧演算步驟
130‧‧‧寫入步驟
圖1為根據本發明之一實施例的示意性地說明記憶體系統之方塊圖;及圖2為根據本發明之一實施例的示意性地說明用於選擇冗餘儲存組態之方法之流程圖。
本文所描述的本發明之實施例提供用於保護記憶體系統(諸如,固態硬碟(SSD))以防記憶體故障之改良型冗餘儲存方案。所揭示技術向記憶體控制器賦予如下自由度:基於可用記憶體空間來選擇冗餘儲存組態,以便改良記憶體系統之總效能。
舉例而言,當記憶體控制器評估出可不存在足夠記憶體空間以寫入新資料時,該控制器可將記憶體空間自儲存冗餘資訊重新指派至
儲存資料。作為另一實例,當可用記憶體空間小時,記憶體控制器可選取產生較少冗餘資訊且因此產生較少附加項之冗餘儲存方案。
在一典型實施中,記憶體控制器首先評估當前可用記憶體空間。記憶體控制器接著具有如下靈活性:基於當前可用記憶體空間來選取用於演算新冗餘資訊之方法,以及新冗餘資訊及新資料兩者將佔用之記憶體空間。
在使用本文所描述之所揭示技術的情況下,可按需要而以儲存可靠性換取記憶體空間:當可用記憶體空間准許時,以極高可靠性來儲存資料。當記憶體變滿時,可以某一故障恢復降級為代價來獲得額外記憶體空間。
圖1為根據本發明之一實施例的示意性地說明記憶體系統20之方塊圖。主機10發送用於來自記憶體系統20之儲存體的資料,且相反地接收自來自記憶體系統20之儲存體擷取的資料。系統20可用於各種主機系統及器件中,諸如,用於計算器件、蜂巢式電話或其他通信終端機、可卸除式記憶體模組(有時被稱作「USB隨身碟(USB Flash Drive)」)、固態硬碟(SSD)、數位攝影機、音樂及其他媒體播放器及/或供儲存及擷取資料之任何其他系統或器件中。
記憶體系統20包含記憶體控制器25,記憶體控制器25讀取資料,且將資料寫入至非揮發性記憶體,在本實例中為一或多個快閃記憶體器件30。控制器25包含用於與主機10通信之主機介面35、進行本文所描述之方法之處理器40、隨機存取記憶體(Random Access Memory,RAM)45,及用於與快閃器件30通信之記憶體介面50。
在替代性實施例中,記憶體系統20中之非揮發性記憶體可包含任何其他合適類型之非揮發性記憶體,諸如,NOR快閃、電荷捕獲快閃(Charge Trap Flash,CTF)、相變RAM(Phase Change RAM,
PRAM)、磁阻RAM(Magneto-resistive RAM,MRAM)或鐵電RAM(Ferroelectric RAM,FeRAM)。
每一快閃器件包含多個類比記憶體單元。每一類比記憶體單元儲存表示儲存於該單元中之資訊的類比電壓,亦被稱作儲存值,諸如,電荷或電壓。在快閃記憶體中,可能類比值之範圍被劃分成若干區域,每一區域對應於一或多個資料位元值。藉由寫入對應於該或該等所要位元之標稱類比值而將資料寫入至類比記憶體單元。
通常,每一器件30中之記憶體單元係以記憶體區塊而配置。每一記憶體區塊包含一記憶體單元陣列,其列係與字線相關聯且其行係與位元線相關聯。每一字線通常儲存一或多個資料頁面。通常,以頁面為單位來寫入及讀取資料,且以區塊為單位來抹除資料。系統20之效能可受到各種記憶體故障(例如,區塊故障或字線故障)影響。在本文所描述之一些實施例中,記憶體控制器25應用保護經儲存資料以防此等故障之冗餘儲存組態。
控制器25且尤其是處理器40係可以硬體而實施。替代性地,控制器可包含執行合適軟體或硬體元件與軟體元件之組合的微處理器。
圖1之組態為例示性系統組態,其係純粹地出於概念清晰起見而予以展示。亦可使用任何其他合適記憶體系統組態。出於清晰起見,已自該圖省略對於理解本發明之原理不必要的元件,諸如,各種介面、定址電路、定時及排序電路,及除錯電路。
儘管圖1之實例展示三個記憶體器件30,但系統20可包含由記憶體控制器25控制之任何所要數目個記憶體器件。在圖1所展示之例示性系統組態中,記憶體器件30及記憶體控制器25被實施為兩個分離積體電路(Integrated Circuit,IC)。然而,在替代性實施例中,記憶體器件及記憶體控制器可整合於單一多晶片封裝(Multi-Chip Package,MCP)或系統單晶片(System on Chip,SoC)中之分離半導體晶粒上,且
係可由內部匯流排互連。進一步替代性地,記憶體控制器電路系統中之一些或全部可駐留於被安置有記憶體器件之同一晶粒上。進一步替代性地,記憶體控制器25之功能性中之一些或全部係可以軟體而實施,且由主機系統之處理器或其他元件進行。在一些實施例中,主機10及記憶體控制器25可製造於同一晶粒上,或同一器件封裝中之分離晶粒上。
在一些實施例中,記憶體控制器25包含以軟體而程式化以進行本文所描述之功能的一般用途處理器。可經由(例如)網路而將軟體以電子形式下載至處理器,或替代性地或另外,可將軟體提供及/或儲存於諸如磁性、光學或電子記憶體之非暫時性有形媒體上。
如上文所提到,在器件30中可發生各種類型之記憶體故障。可能之記憶體故障包含(例如)器件30中之一者中之記憶體區塊或字線的故障。為了保護資料以防此等故障,記憶體控制器25使用冗餘儲存組態來儲存資料。
在一些實務狀況下,大多數區塊故障發生於程式化期間,且因此,在彼階段時通常需要較高保護度。2012年8月23日申請之美國專利申請案13/592,561中描述用於保護資料以防程式化故障之實例技術,該專利申請案已讓渡給本專利申請案之受讓人且其揭示內容係以引用方式併入本文中。
通常,記憶體控制器經由某些資料來演算冗餘資訊,且將資料及冗餘資訊儲存於器件30中。冗餘儲存組態經設計成使得在記憶體故障之狀況下,可使用剩餘資料及冗餘資訊來重新建構出故障之記憶體單元中之資料。舉例而言,出於此目的,記憶體控制器可使用RAID方案。
然而,實務上,冗餘儲存之故障恢復係以記憶體空間為代價。
較多冗餘通常改良故障恢復,但另一方面減少可用記憶體空間。在一些實施例中,記憶體控制器25調適冗餘資訊之相對大小(亦即,由冗餘儲存招致之記憶體附加項之量)以匹配於器件30中之可用記憶體空間。
圖2為根據本發明之一實施例的示意性地說明用於選擇冗餘儲存組態之方法之流程圖。在評估步驟100中,記憶體控制器25評估記憶體器件30中之可用記憶體空間以寫入資料。在選擇步驟110中,記憶體控制器25取決於可用記憶體空間而選擇冗餘儲存組態。在演算步驟120中,記憶體控制器25使用所選擇冗餘儲存組態來演算冗餘資訊。在寫入步驟130中,記憶體控制器25將資料及冗餘資訊寫入至記憶體中之可用記憶體空間。
在一個冗餘儲存組態中,可在步驟120中藉由經由資料之多個記憶體區塊而執行逐位元邏輯XOR運算來演算冗餘資訊,以產生在步驟130中儲存於記憶體中之XOR同位區塊。在使用此等RAID XOR技術的情況下,RAID等量磁碟區(stripe)包含N個區塊:N-1個資料區塊,及藉由對N-1個資料區塊之逐位元XOR運算而計算之一同位(冗餘)區塊,其中N為整數。在等量磁碟區中之單一區塊故障之情況下,記憶體控制器可自同位區塊及剩餘區塊重新建構資料。
對於較小N,計算用於給定量之資料之較多同位區塊,且減少SSD中可用之記憶體空間之量。相反地,藉由增加N,自較大數目個資料區塊建立每一同位區塊,因此增加可用記憶體空間。
在一實施例中,若記憶體控制器偵測到在步驟100中可用於新資料之記憶體空間低於預定義臨限值,則該控制器可在步驟110中增加N,以便在步驟120中藉由經由較多資料區塊而演算XOR來建立冗餘資料。增加N會減少同位區塊之數目,或有效地減少由所有冗餘資訊佔用之記憶體空間。舉例而言,可使用剩餘可用記憶體空間以用於儲
存新資料,或用於提供較高過度佈建。
在一替代性冗餘儲存組態中,記憶體控制器25可在步驟120中使用錯誤校正碼(ECC)方案來演算冗餘資訊。換言之,此等實施例中之冗餘資訊包含ECC之冗餘位元。解碼所儲存之經ECC編碼資料可用以擷取遺失資料。通常用於非揮發性記憶體系統中的一種特殊類別之碼為低密度同位檢查(Low Density Parity Check,LDPC)碼。亦可使用其他類別之碼,諸如,博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem,BCH)碼。用於寫碼方案中之冗餘位元可與資料區塊一起抑或與資料區塊分離地儲存於記憶體區塊中。
對於此等類別之ECC碼中每一者,經編碼資料大小對原始資料大小之比率被稱作寫碼速率(coding rate)。一些ECC編碼器及解碼器可經組態以修改碼率,使得若在步驟100中評估之可用記憶體空間低於預定義臨限值,則記憶體控制器可在步驟110中減少記憶體中之經編碼資料之大小。替代性地,記憶體控制器可在步驟110中改變寫碼方案以進行碼率之有效改變,以便回應於步驟100中之可用記憶體空間而改變在步驟130中寫入至記憶體之冗餘資訊之大小。
在基於先前所描述之XOR方案或ECC方案之冗餘儲存組態中任一者中,記憶體控制器可回應於步驟100中記憶體中剩餘之當前可用記憶體空間之初始評定而改變儲存於記憶體中之冗餘資訊之大小以寫入新資料。若可用記憶體低於預定義臨限值,則可在步驟120中使冗餘資訊之大小較小。若剩下很少記憶體可用於新資料,則記憶體控制器可甚至在步驟110中決定不建立任何冗餘資訊。記憶體控制器可在步驟110中決定將總冗餘儲存組態自(例如)ECC改變至XOR,或改變至任何合適冗餘方案。
先前所描述之ECC及XOR之冗餘方案以及圖2所展示之流程圖係作為實例,而非限制本發明之實施例。可使用任何合適冗餘儲存組
態,其中記憶體控制器具有如下靈活性:根據本發明之實施例,回應於評估出已將步驟100中之可用記憶體空間減少至低於預定義臨限值,在步驟110及步驟120中有效地改變儲存於記憶體中之冗餘資訊之大小。
在一些實施例中,記憶體控制器藉由將先前充當同位區塊之記憶體區塊重新指派至充當資料區塊而修改冗餘儲存組態。可(例如)在成功地寫入RAID等量磁碟區之後發生重新指派。此類重新指派有效地將同位區塊改變至資料區塊。因此,當用於新資料之記憶體空間低於預定義臨限值時,動態地改變專用於冗餘之記憶體空間之比例。
在其他實施例中,記憶體控制器將冗餘資訊儲存於專用冗餘等量磁碟區(例如,專用區塊群組)中。隨著記憶體變滿,記憶體控制器可重新指派冗餘等量磁碟區或其部分以用於儲存新資料。
通常,冗餘儲存組態可包含將步驟120中演算之冗餘資訊儲存於同位區塊或等量磁碟區中,該同位區塊或等量磁碟區可在記憶體控制器偵測到步驟100中評估的用於新資料之可用空間過低(例如,低於預定義臨限值)時被重新使用。可在步驟130中將冗餘資訊儲存於第一分離快閃記憶體器件中之可重新使用同位區塊或等量磁碟區中,且將資料寫入至不同於用於冗餘資訊之第一快閃器件之一或多個快閃記憶體器件中的資料區塊中,以便增加重新用於冗餘資訊之區塊的耐久性。
在再其他實施例中,記憶體控制器25可在程式化期間應用完全保護以防區塊故障,且稍後在讀出期間還原至僅保護以防字線故障。在此等實施例中,記憶體控制器最初使用產生保護以防區塊故障之冗餘區塊的冗餘儲存組態來儲存資料。當回收冗餘區塊(例如,作為「廢棄項目收集(garbage collection)」壓縮程序之部分),記憶體控制器可運用保護以防個別字線故障之個別冗餘頁面來替換完全冗餘區塊。舉例而言,後者方案招致較少附加項,此係因為其僅保護有效頁
面而非全部區塊。
儘管本文所描述之實施例主要地處理固態硬碟中之冗餘組態,但本文所描述之方法亦可用於任何其他合適資料儲存系統。
因此應瞭解,作為實例而引用上文所描述之實施例,且本發明不限於上文特定地展示及描述之實施例。實情為,本發明之範疇包括上文所描述之各種特徵的組合及子組合兩者,以及其變化及修改,其將由熟習此項技術者在閱讀前述描述後就想到且未在先前技術中被揭示。以引用方式併入本專利申請案中之文件應被視為本申請案之整體部分,惟如下情形除外:在此等併入式文件中以與本說明書中明確地或隱含地作出之定義相衝突之方式來定義任何術語的程度上,應僅考慮本說明書中之定義。
10‧‧‧主機
20‧‧‧記憶體系統
25‧‧‧記憶體控制器
30‧‧‧快閃記憶體器件
35‧‧‧主機介面
40‧‧‧處理器
45‧‧‧隨機存取記憶體(RAM)
50‧‧‧記憶體介面
Claims (14)
- 一種方法,其包含:在控制一記憶體之一記憶體控制器中評估該記憶體中剩餘之一可用記憶體空間以寫入資料;在該記憶體控制器中取決於該可用記憶體空間而選擇一冗餘儲存組態;使用該所選擇冗餘儲存組態而經由該資料來演算冗餘資訊;及將該資料及該冗餘資訊寫入至該記憶體中之該可用記憶體空間;其中選擇該冗餘儲存組態包含:自保護全部記憶體區塊之一或多個免於故障的一第一儲存組態切換至保護該等記憶體區塊之僅部分免於故障的一第二儲存組態,以回應於判定一程式化操作已完成;及其中自該第一儲存組態切換至該第二儲存組態包含在一壓縮操作期間以一第二冗餘區塊取代一第一冗餘區塊,其中該第一冗餘區塊係使用該第一儲存組態而產生,而該第二冗餘區塊係使用該第二儲存組態而產生。
- 如請求項1之方法,其中選擇該冗餘儲存組態包含:基於該可用記憶體空間來選取供演算該冗餘資訊之數個記憶體區塊。
- 如請求項1之方法,其中選擇該冗餘儲存組態包含選取具有取決於該可用記憶體空間之一碼率之一錯誤校正碼(ECC),且其中演算該冗餘資訊包含使用該所選取ECC來計算該冗餘資訊。
- 如請求項1之方法,其中選擇該冗餘儲存組態包含:將一或多個記憶體區塊自儲存該冗餘資訊之一部分重新指派至儲存該資料 之一部分。
- 如請求項1之方法,其中選擇該冗餘儲存組態包含在偵測到該可用記憶體空間低於一預定義臨限值後隨即修改該冗餘儲存組態。
- 一種裝置,其包含:一記憶體;及一記憶體控制器,其經組態以:評估該記憶體中剩餘之一可用記憶體空間以寫入資料;取決於該可用記憶體空間而選擇一冗餘儲存組態;使用該所選擇冗餘儲存組態而經由該資料來演算冗餘資訊;及將該資料及該冗餘資訊寫入至該記憶體中之該可用記憶體空間;其中為了選擇該冗餘儲存組態,該記憶體控制器進一步經組態以自保護全部記憶體區塊之一或多個免於故障的一第一儲存組態切換至保護該等記憶體區塊之僅部分免於故障的一第二儲存組態,以回應於判定一程式化操作已完成;及其中為了自該第一儲存組態切換至該第二儲存組態,該記憶體控制器進一步經組態以在一壓縮操作期間以一第二冗餘區塊取代一第一冗餘區塊,其中該第一冗餘區塊係使用該第一儲存組態而產生,而該第二冗餘區塊係使用該第二儲存組態而產生。
- 如請求項6之裝置,其中該記憶體控制器經組態以基於該可用記憶體空間來選取供演算該冗餘資訊之數個記憶體區塊。
- 如請求項6之裝置,其中該記憶體控制器經組態以:選取具有取決於該可用記憶體空間之一碼率之一錯誤校正碼(ECC);及使用 該所選取ECC來演算該冗餘資訊。
- 如請求項6之裝置,其中該記憶體控制器經組態以將一或多個記憶體區塊自儲存該冗餘資訊之一部分重新指派至儲存該資料之一部分。
- 如請求項6之裝置,其中該記憶體控制器經組態以在偵測到該可用記憶體空間低於一預定義臨限值後隨即修改該冗餘儲存組態。
- 一種記憶體控制器,其包含:一介面,其用於與一記憶體通信;及一處理器經組態以:評估該記憶體中剩餘之一可用記憶體空間以寫入資料;取決於該可用記憶體空間而選擇一冗餘儲存組態;使用該所選擇冗餘儲存組態而經由該資料來演算冗餘資訊;及將該資料及該冗餘資訊寫入至該記憶體中之該可用記憶體空間;其中為了選擇該冗餘儲存組態,該處理器進一步經組態以自保護全部記憶體區塊之一或多個免於故障的一第一儲存組態切換至保護該等記憶體區塊之僅部分免於故障的一第二儲存組態,以回應於判定一程式化操作已完成;及其中為了自該第一儲存組態切換至該第二儲存組態,該處理器進一步經組態以在一壓縮操作期間以一第二冗餘區塊取代一第一冗餘區塊,其中該第一冗餘區塊係使用該第一儲存組態而產生,而該第二冗餘區塊係使用該第二儲存組態而產生。
- 如請求項11之記憶體控制器,其中該處理器經組態以基於該可用記憶體空間來選取供演算該冗餘資訊之數個記憶體區塊。
- 如請求項11之記憶體控制器,其中該處理器經組態以將一或多個記憶體區塊自儲存該冗餘資訊之一部分重新指派至儲存該資料之一部分。
- 如請求項11之記憶體控制器,其中該處理器經組態以在偵測到該可用記憶體空間低於一預定義臨限值後隨即修改該冗餘儲存組態。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/826,203 US9098445B2 (en) | 2013-03-14 | 2013-03-14 | Selection of redundant storage configuration based on available memory space |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201447562A TW201447562A (zh) | 2014-12-16 |
TWI528174B true TWI528174B (zh) | 2016-04-01 |
Family
ID=50391409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103109237A TWI528174B (zh) | 2013-03-14 | 2014-03-14 | 基於可用記憶體空間選擇冗餘儲存組態 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9098445B2 (zh) |
JP (1) | JP6125087B2 (zh) |
KR (1) | KR101679530B1 (zh) |
CN (2) | CN105051700B (zh) |
DE (1) | DE112014001305B4 (zh) |
TW (1) | TWI528174B (zh) |
WO (1) | WO2014158860A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014032516A (ja) * | 2012-08-02 | 2014-02-20 | Fujitsu Ltd | ストレージ装置、制御装置およびデータ保護方法 |
US9098445B2 (en) * | 2013-03-14 | 2015-08-04 | Apple Inc. | Selection of redundant storage configuration based on available memory space |
CN107713992B (zh) * | 2013-03-15 | 2021-10-26 | 雅培糖尿病护理公司 | 数据处理系统 |
WO2015145724A1 (ja) * | 2014-03-28 | 2015-10-01 | 株式会社日立製作所 | ストレージシステム |
CN104794070B (zh) * | 2015-04-23 | 2017-10-31 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
AU2015383834B2 (en) * | 2015-11-27 | 2018-07-19 | Huawei Technologies Co., Ltd. | Method for storing data by storage device and storage device |
US9940194B2 (en) * | 2016-03-04 | 2018-04-10 | Sandisk Technologies Llc | ECC decoding using raid-type parity |
US11762568B2 (en) | 2017-03-16 | 2023-09-19 | Microsoft Technology Licensing, Llc | Storage system control |
US10901867B2 (en) * | 2018-01-24 | 2021-01-26 | Apple Inc. | Distributed redundant storage system |
JP6960877B2 (ja) | 2018-03-22 | 2021-11-05 | キオクシア株式会社 | メモリシステム |
TWI665550B (zh) * | 2018-04-27 | 2019-07-11 | 威聯通科技股份有限公司 | 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體 |
US11042661B2 (en) * | 2018-06-08 | 2021-06-22 | Weka.IO Ltd. | Encryption for a distributed filesystem |
GB2611575A (en) * | 2021-10-11 | 2023-04-12 | The Sec Dep For Business Energy And Industrial Strategy | Connection of solid-state storage devices |
CN114500567A (zh) * | 2022-01-13 | 2022-05-13 | 骤雨湾(武汉)技术服务有限公司 | 远程附件多冗余存储方法、装置、设备及存储介质 |
US11861181B1 (en) | 2022-08-10 | 2024-01-02 | Bae Systems Information And Electronic Systems Integration Inc. | Triple modular redundancy (TMR) radiation hardened memory system |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884093A (en) * | 1994-09-02 | 1999-03-16 | Rock Solid Systems, Inc. | Hard disk cache for CD-ROM and other slow access time devices |
GB2366014B (en) | 2000-08-19 | 2004-10-13 | Ibm | Free space collection in information storage systems |
US7130973B1 (en) | 2003-08-08 | 2006-10-31 | Sun Microsystems, Inc. | Method and apparatus to restore data redundancy and utilize spare storage spaces |
US20090204872A1 (en) | 2003-12-02 | 2009-08-13 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US7424574B1 (en) * | 2004-04-21 | 2008-09-09 | Sun Microsystems, Inc. | Method and apparatus for dynamic striping |
US20070204028A1 (en) * | 2006-02-24 | 2007-08-30 | Hyun Lee | Method of maximizing the information access rate from/to storage units in wired/wireless networks |
CN101501779B (zh) * | 2006-05-12 | 2013-09-11 | 苹果公司 | 具有自适应容量的存储设备 |
JP4700562B2 (ja) * | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
US20090113235A1 (en) | 2007-10-30 | 2009-04-30 | Selinger Robert D | Raid with redundant parity |
US8627169B2 (en) | 2008-06-20 | 2014-01-07 | Cadence Design Systems, Inc. | Method and apparatus for dynamically configurable multi level error correction |
US20100017650A1 (en) | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
CN101493754B (zh) * | 2009-03-13 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 存储系统及其控制方法 |
CN101847447A (zh) * | 2009-03-27 | 2010-09-29 | 联发科技股份有限公司 | 存储控制器、存储控制方法及数据存取系统 |
US8418021B2 (en) * | 2009-03-27 | 2013-04-09 | Mediatek Inc. | Storage controller with encoding/decoding circuit programmable to support different ECC requirements and related method thereof |
US8499220B2 (en) | 2009-09-08 | 2013-07-30 | Lsi Corporation | Systems and methods for re-designating memory regions as error code corrected memory regions |
US8266501B2 (en) * | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
US8327226B2 (en) | 2010-02-03 | 2012-12-04 | Seagate Technology Llc | Adjustable error correction code length in an electrical storage device |
CN101840377A (zh) * | 2010-05-13 | 2010-09-22 | 上海交通大学 | 基于rs纠删码的数据存储方法 |
JP5388976B2 (ja) | 2010-09-22 | 2014-01-15 | 株式会社東芝 | 半導体記憶制御装置 |
US9348696B2 (en) | 2010-10-01 | 2016-05-24 | Pure Storage, Inc. | Distributed multi-level protection in a raid array based storage system |
WO2012147123A1 (en) * | 2011-04-26 | 2012-11-01 | Hitachi, Ltd. | Storage apparatus and control method therefor |
US8572466B2 (en) | 2011-06-06 | 2013-10-29 | Micron Technology, Inc. | Apparatuses, systems, devices, and methods of replacing at least partially non-functional portions of memory |
JP2013137713A (ja) | 2011-12-28 | 2013-07-11 | Toshiba Corp | メモリコントローラ、メモリシステムおよびメモリ書込み方法 |
JP5378574B1 (ja) * | 2012-06-13 | 2013-12-25 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US9098445B2 (en) * | 2013-03-14 | 2015-08-04 | Apple Inc. | Selection of redundant storage configuration based on available memory space |
-
2013
- 2013-03-14 US US13/826,203 patent/US9098445B2/en active Active
-
2014
- 2014-03-05 WO PCT/US2014/020586 patent/WO2014158860A1/en active Application Filing
- 2014-03-05 JP JP2016500636A patent/JP6125087B2/ja active Active
- 2014-03-05 CN CN201480015235.6A patent/CN105051700B/zh active Active
- 2014-03-05 KR KR1020157025169A patent/KR101679530B1/ko active IP Right Grant
- 2014-03-05 CN CN201710977297.0A patent/CN107678695B/zh active Active
- 2014-03-05 DE DE112014001305.6T patent/DE112014001305B4/de active Active
- 2014-03-14 TW TW103109237A patent/TWI528174B/zh active
-
2015
- 2015-08-03 US US14/816,831 patent/US9465552B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107678695A (zh) | 2018-02-09 |
US9465552B2 (en) | 2016-10-11 |
DE112014001305T5 (de) | 2015-12-31 |
US20140281801A1 (en) | 2014-09-18 |
US20150339073A1 (en) | 2015-11-26 |
JP2016510928A (ja) | 2016-04-11 |
TW201447562A (zh) | 2014-12-16 |
JP6125087B2 (ja) | 2017-05-10 |
WO2014158860A1 (en) | 2014-10-02 |
KR101679530B1 (ko) | 2016-11-24 |
DE112014001305B4 (de) | 2022-04-28 |
CN105051700A (zh) | 2015-11-11 |
US9098445B2 (en) | 2015-08-04 |
CN107678695B (zh) | 2020-08-18 |
KR20150119911A (ko) | 2015-10-26 |
CN105051700B (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI528174B (zh) | 基於可用記憶體空間選擇冗餘儲存組態 | |
US9292382B2 (en) | Codewords that span pages of memory | |
EP2825960B1 (en) | Physical page, logical page, and codeword correspondence | |
CN102023815B (zh) | 在固态存储器中实现raid | |
JP5853040B2 (ja) | ストライプに基づく不揮発性多値メモリ操作 | |
US8862804B2 (en) | System and method for improved parity determination within a data redundancy scheme in a solid state memory | |
US8589761B2 (en) | Apparatus and methods for providing data integrity | |
JP6175684B2 (ja) | Nandフラッシュメモリ上のデータの記憶のためのアーキテクチャ | |
KR101648531B1 (ko) | 불휘발성 메모리 시스템과 이의 동작 방법 | |
US9058288B2 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
US20120311381A1 (en) | Apparatus and methods for providing data integrity | |
US9361036B2 (en) | Correction of block errors for a system having non-volatile memory | |
US10915394B1 (en) | Schemes for protecting data in NVM device using small storage footprint | |
US10339343B2 (en) | Storage system and method for improved generation and storage of data protection information | |
KR20190038964A (ko) | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 | |
US8949686B1 (en) | Protection against word line failure in memory devices | |
JP6491482B2 (ja) | 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置 | |
US9026893B1 (en) | Dynamically assigning inactive pages not used in Reed-Solomon code in non-volatile solid-state storage array | |
US9436547B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
CN102760087B (zh) | 固态存储器中数据冗余方案内改进的奇偶校验值确定的系统和方法 |