TW201314437A - 快閃碟陣列及控制器 - Google Patents
快閃碟陣列及控制器 Download PDFInfo
- Publication number
- TW201314437A TW201314437A TW101125052A TW101125052A TW201314437A TW 201314437 A TW201314437 A TW 201314437A TW 101125052 A TW101125052 A TW 101125052A TW 101125052 A TW101125052 A TW 101125052A TW 201314437 A TW201314437 A TW 201314437A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- block
- raid
- written
- Prior art date
Links
Classifications
-
- 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
-
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/061—Improving I/O performance
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
描述一種資料儲存陣列,該資料儲存陣列具有經配置成為一磁碟陣列群集之複數個固態磁碟。由該控制器將使用者資料映射至一頁面大小規模上並進行管理,而由該固態磁碟將該資料映射至一區塊大小規模上。資料係被寫入該磁碟陣列群集之該等固態磁碟,因此足以重建一磁碟陣列分段之資料讀取係不因該正被寫入資料之磁碟的清除操作而被禁止。
Description
本發明與在非揮發性媒體之數位資料儲存有關。
計算系統之資料或程式儲存容量可以層形式進行組織,以利用目前使用之各種儲存技術效能與經濟屬性的優點。各種儲存技術之間的平衡與由於該效能與經濟因素之互動所需求的時間有關。
除了將揮發性半導體記憶體(像是靜態隨機存取記憶體(SRAM))與該處理器聯繫成為快取記憶體之外,揮發性半導體記憶體(像是動態隨機存取記憶體(DRAM))也可用於暫時儲存該作用程式及所述程式所處理之資料。預期額外的記憶體層將變得更慢,像是轉動磁性媒體(磁碟)與磁帶。然而,與處理器聯繫之DRAM數量時常不足以提供實際執行之計算工作的服務,而可能需要從磁碟擷取該資料或程式。此處理是一種資料庫系統及相關應用程式中的已知瓶頸。然而,雖然隱含成本的解決方式已經使此應用程式的使用者不再抱怨,但其仍為普通個人電腦中的瓶頸。在此時機,時常利用磁帶系統以執行該等磁碟上之資料的備份。
最近,出現電子可抹除可規劃唯讀記憶體(EEPROM,Electrical Erasable Programmable Read-Only Memory),其通常被稱為快閃記憶體。此記憶體類型具有固態記憶體的特徵,在電力移除之後具有保存寫入至
該記憶體之資料一段顯著時間的能力。在此概念中,快閃記憶體可以具有磁碟或磁帶記憶體的持久性。可以組織該記憶體作為固態裝置,因此可部份避免磁帶的序列存取態樣或磁碟系統轉動延遲的問題。
目前製造兩種普遍的快閃記憶體類型:非或記憶體(NOR,Not or Flash)與非及記憶體(NAND,Not and Flash)。後者在大量資料儲存上較受到喜愛,並引導記憶模組模擬工業標準磁碟介面通訊協定,同時具有較低延遲的資料讀取及寫入。這兩種快閃記憶體甚至被封裝為硬碟般的相同形式因子並具有相同的連接器介面,而預期用以取代硬碟。這種模擬磁碟的固態記憶體也使用相同的軟體通訊協定,像是高技術配置(ATA,Advanced Technology Attachment)。然而,可利用多種實體格式與介面通訊協定,並包括這些部分以適用於膝上電腦、CF卡(CF,Compact Flash)、SD卡(SD,Secure Digital)與其他地方。
雖然以快閃記憶模組(時常稱為固態磁碟(SSD)或固態裝置)為基礎的引入已經造成系統效能上的某些改進,且該等系統包括從個人電腦、資料庫系統及其他網路連結系統的各種範圍,但該NAND快閃記憶體技術的某些特性仍造成效能限制。特別是快閃記憶體在寫入資料至記憶體的方法及該記憶體的生命期上有所限制,這在產品設計時需要考慮。
快閃記憶體電路,也可稱為晶元或晶片,可以包含許多資料區塊(例如每一區塊具有128KB),而每一區
塊都組織成複數個相連頁面(例如每頁面4KB)。所以32個4KB頁面將構成一實體記憶區塊。根據產品不同,該頁面數量與頁面大小也可不同。與磁碟類比下,一頁面可包含許多區段(例如每頁面8 x 512B)。
該區塊、頁面與區段的大小為一特定記憶體電路設計的特徵,並可以隨涉及之技術或根據不同製造商的產品而不同及改變。所以在此係考量頁面與區段代表一種於邏輯概念中使用的資料結構,而(實體)頁面與(記憶區塊)區塊係代表以實體概念儲存該資料的位置。邏輯區塊位址(LBA,Logical Block Address)的用詞可能有所混淆,因為可以代表資料之區段或頁面的邏輯識別,且不與具有複數個頁面之大小的實體資料區塊等價。所以為了避免引用其他的新穎用詞,要注意該邏輯及實體用詞之間缺乏一致性,不過仍在本申請規格書中採用。相關領域技術人員將了解到這些文字使用時於其上下文中的意義。
實質上,快閃記憶體的一種特別特徵係為該實體區塊之頁面只可被寫入一次,而在該區塊的另一次寫入(「程式化」)操作之前需要執行重置(「清除」)該(實體)區塊該等頁面的介入操作。此外,可以群集方式清除快閃記憶體整體區塊之該等頁面,而該區塊可以包含複數個頁面。現有裝置構造的另一種結果為預計以序列順序寫入一實體記憶區塊之該等頁面。資料寫入可與資料讀取明顯不同,其中可對個別頁面定址,並以類比於像是DRAM的隨機存取形式讀取資料。
在另一態樣中,一般而言寫入資料至記憶體頁面的時間係明顯長於從記憶體頁面讀取資料的時間,而在該資料被寫入頁面的期間,禁止對該區塊或該晶片的讀取存取。清除一記憶體區塊的時間甚至比寫入頁面(雖然少於以序列方式寫入資料至該區塊所有頁面的時間)的時間長,而在清除操作期間也阻止讀取在一晶片其他區塊中所儲存的資料。一般而言頁面寫入時間為頁面讀取時間的5至20倍長,一般而言區塊清除為頁面寫入時間的約5倍長;然而,因為清除操作可以攤分至一般具有約32至256個頁面的區塊中,因此一般而言清除操作僅消耗清除及寫入一完整區塊總時間的5%以下。然而,當面臨清除操作時,將產生明顯的短期過度讀取延遲。此為超過該記憶體電路特定效能下,回應讀取請求的時間。
快閃記憶體電路具有耗損特性,其係指一實體記憶區塊(PMB,Physical Memory Block)之該等頁面的某些頁面變不可靠,且在讀取資料時發生錯誤而無法由一般使用之強化錯誤檢核碼(ECC,Extensive Error Correcting Codes)所改正之前,該實體記憶區塊上可執行的清除操作次數。單層式儲存(SLC,Single-Level-Cell)電路的市售元件具有每一記憶單元儲存一位元的能力,並具有大約100,000次清除操作的生命期,而具有雙層式儲存(MLC,Multi-Level-Cell)電路的元件每一記憶單元可儲存兩位元,係具有大約10,000次清除操作的生命期。應可預期當該等電路在較
精密晶粒處理幾何及在每一記憶單元儲存較多位元的情況下,其操作生命期便會下降。這些效能的趨勢則因希望降低該儲存裝置之成本而驅動。
已經發展各種解決方式,以使該快閃記憶體電路至少某些不希望存在或限制系統效能的特徵得以削減。這些解決方式的一廣泛用詞為「快閃記憶體轉換層(FTL,Flash Translation Layer)」。一般而言,這種解決方式可以包括邏輯至實體的位址映射、垃圾收集與耗損平均技術。
執行邏輯至實體位址(L2P,Logical to Physical Address)映射以克服實體記憶體位址在被清除之前只能被寫入一次的限制,而實際邏輯位址的「熱點」也是在大量活動下的遭遇的問題,特別是進行資料修改的活動。在不具備邏輯至實體位址轉換下,當讀取一資料頁面且該頁面上的資料被修改時,便無法在不對該實體位置先執行清除操作的情況下,將資料再次儲存於相同的實體位址。這種寫入位置要求包括將被寫入或被修改的頁面之該頁面完整區塊係被暫時儲存、該對應記憶區塊被清除,以及包括該修改資料之該區塊所有暫時儲存資料寫入至該已清除記憶區塊。除了耗時的懲罰之外,清除活動也過度造成耗損。
FTL的態樣為一種將被寫入資料之邏輯位址映射係映射至實體記憶體位址,以滿足將資料序列寫入實體記憶區塊之該等自由頁面(先前已被清除但尚未寫入的頁面)的要求。在邏輯位址的資料將被修改的情況下,接
著將該資料儲存至新映射的實體位址,而儲存無效資料的實體記憶體位置將在FTL詮釋資料中被標示為無效資料。任何後續的讀取操作則被引導至已儲存該修改資料的新實體記憶體儲存位置。最後,該快閃記憶體的所有實體記憶區塊將以新的或已修改的資料所填滿,然而,分散於該記憶體各實體區塊之記憶體的許多實體頁面在儲存於其中的資料已經被修改、已經被寫入另一位置時,便被標示為具有無效資料。在此時機,將不具有可被寫入之新的或已修改資料的其他實體記憶體位置。執行FTL操作可避免此情況發生,其稱為「垃圾收集」。「耗損平均」的處理執行可為該垃圾收集處理的部分,或是分別執行。
垃圾收集是將具有無效資料頁面(但其可能也具有需要被保存的有效資料頁面)的實體記憶區塊再生的處理,因此在一或多個這種實體記憶區塊中的結果可被完全清除,因此便具有接受新的或已修改資料的容量。基本上,此處理利用以下方式統一複數個實體記憶區塊之仍然有效的資料,像是利用序列寫入的方式將該有效資料移動至先前已清除(或未曾使用)區塊,重新進行邏輯至實體位置的映射並標示該來源實體記憶體頁面為具有無效資料,以呈現該可利用於清除之等實體記憶區塊係完全包含無效資料。這種區塊也可以因為該區塊的最新清除處理而具有某些並未寫入資料的自由頁面。接著可以清除該等區塊。耗損平均通常為垃圾收集處理的部分,當由FTL使用已清除區塊時,便選擇利用可用於
資料寫入之該已清除區塊之最不常清除的條件。此動作對於在一段間內清除多次該記憶體電路之該等區塊的情況更加有效。在另一態樣中,當需要清除一區塊時,可以選擇目前使用於儲存資料之複數個區塊的最少清除部分。也可以使用其他耗損管理與生命期相關的方法。
此討論已經被簡化,以形成瞭解本規格說明書的基礎,且並未涵蓋與讀取及寫入資料至快閃記憶體所關聯的完整活動範疇,像是包括錯誤偵測及改正、壞死區塊偵測及其他類似活動。
磁碟陣列(RAID,Redundant Arrays of Independent((or Inexpensive))Disks)的概念至少最早可追溯到David Patterson、Garth Gibson及Randy H.Katz於1988年所發表的文章。RAID允許布置磁碟記憶體系統,以藉由增加冗贅性的方式避免損失所包含之資料。在適當配置的RAID化儲存構造中,例如在任何單一磁碟中的錯誤並不對存取或重建該已儲存資料的能力造成影響。在不具備RAID之磁碟陣列的平均故障間隔時間(MTBF,Mean Time Between Failure)係等於在該陣列中由許多磁碟所劃分之個別磁碟的MTBF,因為任何磁碟的損失都造成資料的損失。因此,磁碟陣列的MBTF對於許多應用需求而言過低。然而,磁碟陣列可以利用許多方式的冗贅儲存資訊達成錯誤容忍性。所以,RAID避免因失敗磁碟造成的資料損失,並能置換失敗磁碟及進行資料重建。也就是說,傳統的RAID係欲避免因磁
碟陣列之磁碟失敗所形成的已儲存資料損失。
例如,RAID-3、RAID-4、RAID-5與RAID-6係為此主題的變化。該主題係以對等性為基礎之RAID。取代如在RAID-1中保存完全複製(「鏡向複製」)的資料複製方式,利用額外增加的磁碟將該資料本身散佈至數個磁碟。該額外磁碟上的資料則可根據該等其他磁碟上的資料所計算(利用布林非運算子)。如果在該包含散佈於複數個磁碟之資料之磁碟組中,任何單一磁碟遺失時,便可以透過執行該等其他磁碟上之資料計算的方式復原在該已失敗磁碟上的儲存資料。RAID-6具有多個分散的對等性位元,並可在遺失兩個磁碟後復原資料。這些實作相對於RAID-1而言較不昂貴,因為其不像RAID-1般用以鏡向複製該資料而需要100%的額外磁碟空間。然而,因為該等磁碟上的某些資料會被計算,因此便產生與寫入及修改資料以及在磁碟遺失後復原資料有關的效能影響。許多對等性RAID的商業實作係使用快取記憶體以減緩某些效能議題。
注意在文章中有時候使用RAID 0;然而因為在該布置中並不存在冗贅性,因此在磁碟失敗的情況下便無法避免資料損失。
RAID的基礎是「分段」,一種將多數磁碟(記憶體單元)連結成為一邏輯儲存單元(RAID群集)的方法。分段技術與將RAID群集之每一磁碟的儲存空間區分為「分段」(也稱為「子區塊」或「磁記憶塊」)有關。接著這些分段係經布置,因此該資料的整合儲存空間係由
來自資料邏輯區塊之分段中的每一磁碟分段所構成,其受到對等性資料對應分段的保護。應用環境的類型、I/O或資料強度都是設計上的考量,而其決定了使用大型或小型的分段。
因為在不同背景中,「區塊」、「頁面」及「區段」具有不同意義,此處討論將嘗試分辨在邏輯概念與實體概念使用時其之間的差異。在此背景中,可同時被清除的實體記憶體位置的最小群集係為「實體記憶區塊(PMB)」。PMB係由複數個「實體記憶體頁面(PMP,Physical Memory Pages)」構成,每一PMP都具有一「實體記憶體位址(PMA,Physical Memory Address)」,而該等頁面可以用於儲存使用者資料、錯誤改正碼(ECC)資料、詮釋資料或其他類似資料。詮釋資料,包括ECC係儲存於該快閃記憶體構造為了「輔助資料」所提供之該頁面的額外記憶體位置中。可以假設與該相關使用者資料一同管理該輔助資料。該PMP可以具有以位元組為單位的頁面大小(PS),其與一邏輯頁面的大小相等,並可以具有相關邏輯區塊位址(LBA)。例如,PMP可以具有標稱為4K位元組資料的邏輯頁面儲存容量,而PMB可包含32個PMP。該等邏輯位址與該已儲存資料之實體位置之間的對應性則透過像是邏輯至實體(L2P)位址表格的資料結構所保存。該關係則稱為「映射」。在快閃記憶體系統中,所述資料及其他的資料管理功能則合併於「快閃記憶體轉換層(FTL)」中。
當從記憶體讀取資料時,透過該詮釋資料之相關
ECC資料驗證該資料的完整性,並根據所運用之ECC偵測並改正一或多個錯誤。一般而言,多數錯誤的偵測及改正係為該ECC的一項功能,而該ECC的選擇則根據所需要之資料完整性程度、處理時間及其他成本。也就是說,每一「磁碟」都假設偵測並改正其上產生的錯誤,並在該裝置介面處報告無法改正的錯誤。實際上,該磁碟不是回傳該改正請求資料就是報告錯誤。
稱為「固態磁碟(SSD)」的產品種類已來到商業市場中。此用詞並非明確,而某些包含非轉動媒介、非揮發性儲存的任何記憶體電路也被稱為SSD。在此,SSD係考量為一種優越的非揮發性記憶體電路,其具現於一固態裝置中,像是快閃記憶體或是其他功能相似之已被發展或後續發展的固態電路,以及具有相似效能的物件。SSD可以包括一些揮發性記憶體以做為資料緩衝、快取或其他類似功能,而SSD可以經設計因此在電力損失的情況下在該電路卡上或相關電力來源中仍有足夠儲存的電力,以將揮發性記憶體中的資料轉至非揮發性記憶體之中。或者,SSD可具有利用紀錄檔案、小型備份磁碟或其他類似方式從該揮發性資料的損失進行復原的能力。所儲存的電力可來自於小型電池、超電容器或是類似裝置。或者,所儲存之電力可來自於SSD所附加的裝置,像是電腦或設備框架,並發布配置該SSD進行正常關機的命令。已經使用各種實體、電力與軟體介面通訊協定,並對其他方面進行發展及標準化。然而也可以使用特殊目的的介面。
在一態樣中,SSDs時常欲在各種應用中取代傳統的轉動媒介(硬碟),像是個人媒體裝置(iPods與智慧手機)、個人電腦、大型資料中心或網際網路雲端。在某些應用中,係考量SSD為一種硬碟的形式、安裝與功能置換。這種硬碟在長期下來已變為標準化,特別是形式因子、連接器與電力介面及通訊協定,因此可在許多應用中互換。某些SSDs係欲完整適用於取代硬碟。歷史上該磁碟趨勢係變為具有更大的儲存容量、較低的延遲以及更低的成本。SSDs特別處理了硬碟中轉動延遲的缺點,且目前可從大量的供應商取得。
雖然對現有系統提供一種方便的升級方式,且不論其為個人電腦或是大型資料中心,但SSDs所使用之舊有介面通訊協定及其他操作型態可能無法完全發揮下層儲存媒體的潛在效能。
本發明主張2011年7月15日所申請之美國申請案號61/508,177的優先權,其係藉由引用形式而整體併入本文。
揭露一種資料儲存系統,該資料儲存系統包括複數個記憶模組,每一記憶模組都具有複數個記憶區塊,以及一第一控制器,其經配置以執行從一第二控制器所接收之資料的邏輯位址與一被選擇記憶區塊之實體位址之間的映射。該第二控制器係經配置以介接該複數個記
憶模組之該等記憶模組的一群集,每一群集都包含一磁碟陣列(RAID)群集,且該第二控制器係執行使用者資料之邏輯位址與該磁碟陣列(RAID)群集記憶模組群集之該等記憶模組之每一記憶模組之邏輯位址之間的映射,因此該使用者資料便被寫入每一記憶模組之該被選擇記憶區塊。
在一態樣中,該記憶區塊係由非揮發性記憶體所構成,其可為NAND快閃記憶體電路。
揭露一種儲存資料的方法,該方法包括:提供一記憶體系統,該記憶體系統具有複數個記憶模組;選擇該記憶模組群集之一記憶模組群集,以構成一磁碟陣列(RAID)群集;以及提供一磁碟陣列(RAID)控制器。
由該記憶體系統接收來自一使用者之資料,並藉由將使用者資料一已接收頁面之一邏輯位址映射至該磁碟陣列(RAID)群集該等記憶模組之每一記憶模組之一邏輯位址空間的方式處理該資料,以儲存於該記憶體系統之一磁碟陣列(RAID)群集中。選擇該等記憶模組之每一記憶模組之一記憶區塊,該記憶區塊係已被預先清除,且將該等記憶模組之每一記憶模組之該邏輯位址空間映射至該等每一記憶模組之該被選擇區塊中的一實體位址空間。在將資料映射至另一記憶區塊之前,將該被映射使用者資料寫入每一記憶模組之該被映射區塊,直到填滿該區塊為止。
參考該等圖式可對示例具體實施例獲得較佳了解,但並不係欲這些示例具有限制性質。在相同或不同圖式中相同編號的元件執行等價功能。元件可以編號或是利用字首所指定,或是以兩者方式進行,且在呈現之間的選擇係只為了清楚陳述的目的,因此在此基礎上由一編號所指定之元件以及由一字首或文數字指示器所指定之相同元件不應該有所區別。
當描述一特定示例時,該示例可以包括一特定特徵、結構或特性,但每一示例並不需都包括該特定特徵、結構或特性。除了明顯排除這樣結合的情況下,否則不應該將二或多個示例之特徵、結構或特性視為不應被或無法被結合的建議或意涵。當連結一示例描述一特定特徵、結構或特性時,相關領域技術人員應該知道不管是否有明顯描述,上述特徵、結構或特性係可與其他示例實行連結。
當使用SSDs群集儲存資料時,可以配置一RAID化構造,因此避免因任何單一SSD失敗或該資料本身的失敗形成資料損失。在更複雜的RAID構造(像是雙重對等性)中,可以容忍多於一個模組的失敗。但是,該舊有介面的性質(例如序列ATA(SATA,Serial ATA)與快閃記憶體轉換層(FTL)的結合)時常造成折衷效能。特別是當在SSD之PMB上執行垃圾收集(包括清除操作)時,因為清除或寫入操作所形成的一段顯著時間,時常禁止或阻擋從該SSD讀取資料頁面的程序。此阻擋例如可能是大於40毫秒,但被期待的是讀取該資
料頁面只需要大約500微秒。當該資料頁面係為RAID群集之資料的部份時,RAID群集的分段讀取可能需要至少40毫秒,而並非大約500微秒。這些「延遲故障」可能對相關資料庫系統的效能造成明顯影響。所以,雖然SSDs可以改進效能,但使用SSD並無法避免延遲問題。
在一態樣中,每一SSD在第一次提供服務時,都具有特定數量的實體記憶區塊PMB可為外部使用者提供服務並進行分配。在此最初狀態中,在對該SSD介面處之該SSD邏輯空間鄰近區塊(例如,128KB範圍)可以與該相同儲存容量之實體記憶區塊(PMB)相關(映射)。雖然在此時機時,LBAs對PMB的最初關係係為唯一,但是該PMBs可能不需要相鄰。該邏輯與實體位址的關係係由FTL所調解。
我們就假設已經分配用於使用者資料之該SSD記憶體係已經利用序列寫入資料至LBAs的方式所填滿,該LBAs則透過該SSD之FTL映射至該實際實體儲存位置。在32個4KB的LBAs已經被寫入該SSD之區塊連續PMPs之後,該複數個PMB的第一區塊便已經以128KB的資料所填滿。接著該FTL分配第二可利用PMB給該次32個LBAs以供寫入,並依序進行直到一特定數量的PMBs已經被完全利用連續PMP資料所寫入。該SSD中剩餘的PMBs則被視作為備用區塊(被清除或準備被寫入)、壞死區塊或是供系統資料、詮釋資料或其他類似資料所使用。
我們就假設欲執行的次一操作係為修改操作,其中從對應於先前寫入使用者LBA之記憶體位置讀取先前已儲存資料,並以程式加以修改,而該LBA之已修改資料也欲被再次儲存於相同LBA處。該FTL便將用於已被修改資料之該PMB先前相關PMP之PMA標示為無效(因為該資料已被修改),並嘗試分配新的PMP給該已修改資料,因此進行儲存。但是,現在在該局部PMB中可能不具有自由空間,而該資料可能需要被寫至具有自由PMPs的另一區塊。這可以是一種從已清除或備用區塊儲存區中進行的區塊選擇。也就是說,可以保持該儲存區內的記憶區塊為已清除狀態,因此該記憶區塊可被立即寫入。所以,在可能只有該SSD之PMB之PMPs之一係被標示為無效之後,該SSD現在係為「全滿」,而需要使用備用區塊以接收並儲存該已修改資料。為了保持該備用區塊儲存區,可以對具有有效與無效資料兩者的PMB進行垃圾收集,因此可將其清除。也就說,該有效資料將被移動至另一實體記憶區塊,因此該可在不造成資料損失下清除所有的原始記憶區塊。
目前在一般的情況中,已經有許多儲存在該SSD中的資料係從個別PMPs所讀取、由一使用程式所修改,並再次儲存至該SSD之PMBs之PMPs中的情況。所以,在該SSD之PMBs預定數量已經填滿(不管是以資料填滿或標示為無效)的時候,該PMBs之至少一PMB將具有被標示為無效的一些PMPs(但非全部的PMPs)。例如,可以選擇具有最大數量無效PMPs的PMB以進行
垃圾收集。接著將所有的有效資料移動至備用區塊,或是填入至一部分已寫入之區塊而由該FTL所決定之剩餘空間。在這些移動完成之後,有效資料將已經從該來源區塊所移出。該來源區塊現在可被清除,或被宣告成為「備用」區塊,而該目的區塊上的自由PMPs便可供來自其他位置之已修改或已移動資料所使用。可以達到耗損平均,例如以根據策略藉由選擇被使用之備用區塊的方式,該策略可以是選擇具有最少清除次數之該備用區塊以做為資料寫入之次一區塊。
FTL可以經配置,因此對於一LBA的任何寫入操作都被分配有一自由的PMP,一般而言係以PMB中的序列次序分配。當該已被修改之資料的來源係為該先前已儲存資料之LBA時(相同的邏輯位址),該相關來源之PMP便被標示為無效。但是儲存該LBA已修改資料之該PMP係在PMB中以序列次序所分配,而已被修改之資料可以以隨機型態所讀取。所以在一段時間之後,該SSD處該使用者LBA與該儲存資料之PMP介接的關係則由該FTL的操作所遮蔽。因此,不管一特定寫入操作是否填滿一PMB,都可以觸發並非立即事先決定的垃圾收集操作。所以該垃圾收集操作可以隨機出現啟動,並隨著「忙碌」的SSD垃圾收集或清除操作期間引起「延遲尖峰訊號」。
快閃記憶體轉換層(FTL)的一項屬性係為邏輯區塊位址(LBA)至記憶體中該資料實際位置(PMA)之間的映射。一般而言,吾人了解該「位址」為該LBA
或對應PMA處開始之資料定義範圍的基本位址。例如,PMA可以與快閃記憶體之一區段、頁面或區塊一致。在此討論中,我們就假設其與快閃記憶體之頁面相關。
當放置快閃記憶體SSD以提供服務或被格式化時,其不具有已儲存的使用者資料。該SSD可以具有由該製造商所提供之壞死區塊或頁面清單,該清單係於該裝置工廠測試期間所獲得。這種壞死區域係排除於可用於資料儲存的空間之外,且不為使用者所見。FTL考慮此資訊,同時考慮在格式化或操作期間所發現的任何其他壞死區塊。
第一圖顯示一記憶體系統100之簡化方塊圖,記憶體系統100使用複數個SSD型模組。記憶體系統100具有一記憶體控制器120與一記憶體陣列140,記憶體陣列140可為一快閃記憶體磁碟(SSD)之均等物或相似的記憶模組裝置。如第二圖所示,該記憶體系統之記憶體控制器120透過一介面121與該使用者環境通訊,其在第一圖中以「主機」10所表現,該介面121可為工業標準介面,像是PCIe、SATA、SCSI或可為一特殊目的介面的其他介面。
記憶體控制器120也具有本身的控制器124,用以管理記憶體系統100的整體活動,或是該控制器功能可與一RAID引擎123之計算元件結合,該計算元件之功能將進一步描述。可以提供一緩衝記憶體122,因此可有效率的在該記憶體系統100之間分配資料及命令,並可具備一非揮發性記憶體區域,在該區域上可進行暫時
資料或快取資料的儲存。可以提供一暫時性備用電力來源,像是超電容器或電池(未顯示)。與該等SSD之間的一介面125可為該等工業標準介面之一或為一目的設計介面,介面125包含記憶體系統100之非揮發性記憶體。
如第三圖所示,記憶體陣列140可為複數個記憶體單元141,其例如利用一或多個匯流排連接而與記憶體控制器120通訊。如果該系統設計的目標是使用低成本的SSD記憶模組作為記憶體陣列140之元件模組141,那麼與該等模組之間的介面可以是目前至少模擬一舊有硬碟的介面,像是ATA或SATA通訊協定,或是小型PCIe卡。最後,可以使用更適用於快閃記憶體特性的其他通訊協定。
快閃記憶模組1411至141n之每一快閃記憶模組都可以操作為獨立裝置。也就是說,可由該製造商設計以操作成為獨立的擬硬碟裝置,該記憶模組可以在不管被執行之特定操作為何的情況下,於任何其他記憶體裝置141上操作,記憶體裝置141係由記憶體系統控制器120所存取。
根據該設計細節,記憶體系統100可以透過介面121提供接收的服務並從「主機」10讀取請求,例如,該主機預定之該請求資料LBA係由該主機中之裝置驅動器軟體傳輸至記憶體系統100。同樣的,可以藉由接收寫入至主機預定之LBA的寫入命令,並從主機10負荷相關資料的方式提供寫入請求的服務。
記憶體系統100可以進入忙碌狀態,例如當該讀取及寫入請求的數量填滿記憶體系統100之輸入緩衝時。此狀態可能在該主機以超過記憶體系統100之短期或長期資料處理能力的比例請求資料或寫入資料的情況下存在一段時間。
或者,記憶體系統100可以請求主機10提供序列讀取與寫入的命令群集,以及請求任何的相關負荷資料量,該負荷資料量係用於填入記憶體系統100之緩衝記憶體122中的分配記憶體空間。
在記憶體系統100之緩衝記憶體122於電力損失時具有足夠將其內容儲存至一非揮發性媒介之持久性情況下,可以確認該讀取及寫入命令與相關資料係為該主機在接收該命令及相關資料之後所等待啟動的操作。
第三圖係被標示以分配記憶模組141至一RAID化儲存陣列之各個RAID群集,包括為該等RAID群集之每一RAID群集所使用之對等性SSD模組的準備。這只是一例證示例,而該等SSD 141的數量、位置與設計在不同系統設計中都可不同。在一態樣中,記憶體系統100可經配置以使用雙重對等性或其他更高量級的對等性結構。由記憶模組141於一特定時期所執行的操作係以讀取(R)或寫入(W)所標註。同樣也執行一清除操作(E)。
第四圖所顯示之一典型記憶模組141可以具有一介面142,其與記憶體控制器120之介面125相容,以接收命令、資料與狀態資訊,並用於輸出資料與狀態資
訊。此外,該SSD模組141可以具有一揮發性記憶體144,像是SRAM或DRAM用以暫時儲存局部資料及做為資料的快取,並暫時儲存被傳輸至記憶體控制器120或從其所接收的命令與狀態資訊。一局部控制器143可以管理SSD 141的操作,以執行該被請求的使用者起始操作、包括詮釋資料維護的管理操作其他類似操作,局部控制器143也可以包括該FTL以管理SSD 141之資料空間邏輯區塊位址(LBA)至其記憶體147中所儲存之資料之實體位置(PBA,Physical Location)之間的映射。
第三圖配置的讀取延遲,在每一RAID群集之該等SSD模組中只有一SSD模組係以不同於隨時進行之讀取操作的RAID群集SSD模組操作方式下可以獲得改善,其中該SSD模組儲存有一RAID資料分段的分段。如果在RAID群集(總數為M+1個頁面)之一分段中存在M個資料頁面(分段)與對等性頁面(分段),那麼來自在該RAID群集之分段中儲存之M+1個頁面之資料分段的M個分段(包括對等性資料),便總是可用於讀取,即使該等SSD模組之一在由記憶體控制器124執行讀取請求時正在進行垃圾收集寫入或清除操作。第五圖顯示4個SSD 141的序列操作示例,其包含第三圖所示該記憶體陣列之RAID群集1。該等SSD 141之每一SSD都具有執行寫入/清除/管理(W/E)操作的期間,以及執行讀取(R)操作的另一期間。如同所示,該4個SSD的W/E操作期間於時間上並不重疊。
如在2012年6月12日所發布之US 8,200,887
「Memory Management System and Method」中所描述,其係藉由引用形式而整體併入本文並共同擁有,一RAID群集之對等性(parity)與M+1個頁面資料的任何M個頁面都可以用來復原該已儲存資料。例如,如果可以利用M1、M2及M3但無法利用Mp,那麼其本身的資料便已復原。如果可以利用M1、M3及Mp但無法利用M2,便可利用對等性資訊重建該資料,其中M2為M1、M3及Mp的運算子(XOR)。同樣的,如果M1或M3係不可利用但可利用剩餘的M個頁面,便可立即獲得該最新或遺失的資料。此處理可稱為「隱藏清除」或「隱藏寫入」。也就是說,一分段之該等資料元素(分段)之任一資料元素的不可利用性,並不妨礙該已儲存資料的立即擷取。
在一態樣中,由SSD所執行的垃圾收集操作啟動係可例如由每次執行一資料寫入操作時,寫入該資料之一完全整體的資料區塊大小(例如,32個4KB資料頁面最初係與一實體記憶區塊的基本位址對齊,其中該實體區塊大小為128個頁面)所管理。例如,這可以利用累計寫入操作於記憶體控制器120之緩衝記憶體122中,直到被寫入至該等SSD之每一SSD的資料量累積至實體區塊(最小清除單元)之容量為止的方式所完成。所以,從先前空白或已清除PMB開始,緩衝122中該等資料頁面可以連續並序列寫入一SSD 141。隨著該寫入操作結束,該PMB中該等PMA之每一PMA將被寫入資料,且該PMB將為全滿。根據由該SSD製造商所採
用之特定演算法,完成寫入完整PMB可觸發垃圾收集操作,以提供新的「備用」區塊用於進一步的寫入。在某些SSD設計中,垃圾收集演算法可以等到直到下次嘗試寫入該SSD時才執行垃圾收集。為了說明目的,我們就假設如果需要垃圾收集操作以提供該已清除區塊儲存區新的已清除區塊,那麼PMB的完全填滿情況將引起單一垃圾收集操作的啟動。垃圾收集操作的完成將使該已進行垃圾收集之區塊處於已清除的情況,並視為「備用」或「已清除」區塊。
某些FTL實作邏輯式地合併二或多個實體區塊以進行垃圾收集管理。在具有此特性的SSD裝置中,使用在此描述的技術執行該垃圾收集操作的啟動控制,藉由考量該技術在大小上將該「區塊」視為是實體區塊的整體數量。該「區塊」中的頁面數量將與該「區塊」中的區塊數量一樣,相同於一區塊的整體多數頁面數量。在該系統被初始化而因此該資料寫入於區塊邊界上開始,且該寫入操作的數量係經控制以完全填滿區塊的情況下,同樣可以控制垃圾收集的啟動。
第六A圖及第六B圖顯示一快閃記憶體電路141之晶片上,記憶體實體區塊160的連續狀態。該等區塊之狀態係顯示為:準備進行垃圾收集(X)、先前已清除(E)及備用(S)。有效資料與無效資料可以儲存於標記X的區塊中,而存在有自由頁面。當已經選擇一PMB進行垃圾收集時,該PMB上剩餘的有效資料便被移動至具有可利用的多個PMP之另一記憶區塊,而接著該來
源記憶區塊隨後便可被清除。該等區塊之一係於被寫入的處理中,這以箭頭所表示。
在第六A圖中該區塊係顯示為部分填滿。在之後,在第六A圖中之區塊被填入之區塊將變為完全填滿。利用耗損平均條件所選擇之該區塊或是另一填滿區塊可以如以上提及再生,並成為已清除區塊。這在第六B圖中顯示,其中該先前已清除或備用區塊現在正在被寫入。如同所示,該等實體記憶區塊160於該實體記憶體中可以不按照順序布置,但以區塊本身中的序列方式將資料寫入區塊160之中。
新的、等待中的寫入資料可以被累計於記憶體控制器120之緩衝122中。該資料可以被累計直到緩衝122保持被寫入之多個LBA的數量以及該等LBA的整體大小係等於在該RAID群集中該等SSD之每一SSD中的整體PMB數量。來自記憶體控制器120的資料接著被寫入該RAID群集的每一SSD中,因此一PMB可被正確填入,並可再次觸發垃圾收集操作。儲存於該緩衝中的資料也可以包括因垃圾收集之理由被重新定位的資料。
在一替代中,該寫入操作係於記憶體控制器120緩衝122中進行佇列。初始化一計數器,因此可知道已經被寫入至PMB的LBA頁面數量(n<Nmax,其中Nmax為PMB中的頁面數量)。當產生寫入至該SSD的機會且該資料係序列寫入至該SSD時,該計數器n便相對增加。在該計數器數值n等於該被填入之PMB中資料頁
面數量的某點處,n=Nmax。此填入動作將啟動垃圾收集操作。是否於一特定寫入操作序列期間發生該區塊填入動作,係根據該等待寫入的資料總量、在該寫入期間開始時的計數器數值n以及該寫入期間的長度。因此便可管理垃圾收集操作的發生。
在一例證示例中,我們就考慮記憶體控制器120為該陣列中該等SSD之每一SSD提供具有Nmax頁面的緩衝記憶體容量,其中Nmax為每一SSD之PMB中的頁面數量。在具有M個SSD的RAID化系統中,令M=4;其中三個SSD將用於儲存使用者資料,而該第四個SSD則用於儲存該使用者資料之對等性資料。該對等性資料可以在該資料儲存於記憶體控制器120之緩衝記憶體122的時間點被預先計算,或可以在該資料從該緩衝記憶體122讀取的時間點進行計算,以儲存於該等SSD之中。
對每區塊具有約128頁面,且頁面程式化(寫入)時間約為頁面讀取時間之10倍的典型快閃裝置而言,該SSD在垃圾收集期間將無法用於讀取,該垃圾收集期間由該RAID群集中其他SSD 141的每一SSD執行約1,280次的讀取。假設清除PMB的時間約為頁面寫入時間的5倍(約為一頁面讀取時間的50倍),垃圾收集清除操作便可進行約1,330的一般頁面讀取次數。此時間可被減少,因為並非進行垃圾收集之該PMB的所有PMA都為有效資料,而無效資料並不需要被重新定位。在一示例中,或許一區塊中的一半資料係為有效資料,
而一區塊的平均垃圾收集時間將等於約50+640=690次的讀取。在此期間該SSD將無法回應讀取請求。
在不損失一般性下,一或多個頁面,最多至PMB中的複數個PMA的最大數量係可由該控制器所組織,並以循環的形式寫入至一RAID群集之該等SSD中。因為在該寫入與垃圾收集期間,主機電腦10可能正在傳送資料至記憶體控制器120,在記憶體控制器120中便需要額外的緩衝。
可以以循環的形式操作構成RAID群集之該四個SSD,如第五圖所示。由SSD 11開始,定義一寫入(或清除)資料期間Tw。此期間的時間長度為可變,其係根據於目前在RAID緩衝122中欲被寫入至該SSD的資料量,並受到一最大時間限制。在此寫入期間,該資料被寫入至SSD 11,但沒有資料被寫入SSD 12、13或14。因此,在資料被寫入至SSD 11的期間可以從SSD 12、13、14讀取資料,而如先前描述已經被儲存在SSD 11中的資料可以從SSD 12-14所接收的資料進行重建。當SSDs 12、13、14的讀取操作不受SSD 11寫入操作的阻擋時,此資料為立即可得。在資料寫入至SSD 11造成n等於Nmax(PMB的容量)的情況中,該寫入可以繼續至該時間點並終止,並啟動垃圾收集操作。SSD 11將繼續保持不可進行讀取操作利用(忙碌),直到完成SSD 11的垃圾收集操作。所以,可以以少於某最大時間(Twmax)或需要用於填滿目前正被寫入之該PMB的時間,將資料寫入至SSD 11。
不管該寫入操作已經到達Twmax期間或是直到n=Nmax為止,在資料可以被寫入取代SSD 11之SSD 12之前,啟動垃圾收集操作並使該操作完成。SSD 11之垃圾收集操作的完成可以利用例如:(a)以推算為基礎(最大垃圾收集時間);(b)以週期性對該SSD發布假讀取或狀態檢查,直到可執行讀取操作為止;(c)等待該匯流排上該SSD確認寫入完成(現有的消費性SSD元件可以在已經完成所有寫入(也包括相關讀取)相關工作進行寫入);或(d)可被解譯的任何其他狀態指示器,以指示垃圾收集完成的方式所決定。如果尚未啟動垃圾收集操作,該裝置便可在寫入操作完成時供讀取利用,並可以開始寫入至該RAID群集之另一SSD。
當該標記傳遞至SSD 12時,被寫入至SSD 11且儲存在對應於RAID群集分段之該等LBA之緩衝中的資料,現在將寫入SSD 12,直到該資料也被完全寫入的時間為止。當與該SSD 11一樣,該對應PMB應該具有與該相同主機的多個LBA相關的資料,並因此具有相同的區塊填入狀態時,SSD 12基本上應該與SSD 11的行為相同。在此時,該標記便傳遞至SSD 13,而該程序便以循環的形式繼續。該循環的形式不一定需要以序列方式進行。
SSD模組141的循環操作允許在SSD不造成寫入或垃圾收集的阻擋下,於該RAID分段之任何LBA上執行讀取操作,而該SSD則因進行讀取操作而呈現忙碌狀態。
該系統也經配置以提供來自記憶體控制器120或SSD快取對於該處可利用資料進行讀取請求的服務,而不是執行像是對實際儲存頁面的讀取操作。在某些情況中,該資料係尚未被儲存。對於正在等待對該等SSD進行寫入操作之LBA請求讀取操作時,該資料便回到該記憶體控制器120中作為寫入快取的緩衝122中,而此資料為該請求LBA的目前資料。同樣的,對於正在等待該等SSD141同意之LBA的寫入請求可以以新的資料取代無效資料,而避免不需要的寫入。對於LBA的寫入操作將繼續至該RAID群集中該所有SSD都完成,以保持該資料與其對等性資料的一致性。
當資料係來自於組成記憶體陣列140該RID分段之四個快閃記憶模組141之任三個時,如以上描述RAID群集之SSD模組141的操作滿足需要用於執行「隱藏清除」或「隱藏寫入」的情況,其係足以用來復原所希望的使用者資料(也就是說,最少兩個使用者資料分段與一對等性分段,或是三個使用者資料分段)。因此,讀取的延遲時間便不會過大,而如果該SSD模組係以非組織的方式操作,便可能造成某種不可預期的延遲事件。
在一態樣中,當並未等待讀取操作時,可以對任何快閃記憶模組建構寫入操作,並注意在此期間並未完全填滿該等其他快閃記憶模組中之區塊,以及注意由於執行單一頁面寫入命令形成的延遲係為可接受的效能妥協。每一SSD中記憶區塊之最後PMA可以以循環的方式輪流寫入至每一SSD,因此較長的清除時間及垃圾收
集時間便不影響潛在的讀取請求。對於在極短期間內利用潛在高頻寬寫入而實質上不影響使用者經驗的讀取延遲效能,可使該系統具有極少或不具有讀取活動。
此討論一般而言與組織成單一RAID群集之四個SSD群集有關。然而,第三圖顯示之RAID化陣列係具有五個RAID群集。在該LBA活動合理平均分散於該等RAID群集下,整體讀取或寫入頻寬便可以大約增加5倍。
採用該RAID化記憶體系統的高階視角,該使用者可看到該RAID化記憶體系統係為單一「磁碟」,其具有等於該等SSD 141整體之使用者記憶體空間的容量,而對主機10之介面係為SATA介面。或者,可從平面記憶體空間檢視該RAID化記憶體,其具有一基本位址與一相鄰記憶體範圍,並透過PCIe介面與該使用者介接。其僅為可能之介面及使用的示例。
所以在一示例中,使用者可以視該RAID化記憶體系統為邏輯單元(LUN,Logical Unit),且該LUN之實體呈現係為附加有SATA介面的裝置。在這種情況中,由記憶體控制器120接收該使用者(邏輯)位址並進行緩衝。該已緩衝資料係被解除佇列,並轉換至構成RAID群集之該等磁碟之每一磁碟上該分段之分段局部LBA之中(包括對等性)。該RAID群集之該等SSD之一SSD可以進行一段期間Twmax的寫入,或直到一計數器指示用於該SSD之完整PMB資料已被寫入至該SSD。如果寫入一完整PMB,該SSD可以自主啟動垃圾收集操作,
在此期間一般而言回應該PMB最後PMA的寫入係受到延遲。當該SSD上之垃圾收集操作完成(也包括清除操作),便可完成該寫入操作,而該SSD便可再次用於資料讀取。該RAID分段之該第二分段的資料現在便被寫入至該第二SSD。在此期間可從該第一、第三與第四個SSD讀取資料,所以可以執行任何讀取操作,而該RAID分段資料便如US 8,200,887教導般重建。此處理以該RAID群集之其他SSD依序進行。
因此,傳統的多個SSD的操作係可有效同步並排序,以避免NAND快閃記憶體技術或其他具有相似屬性的記憶體技術中,因為所需要的垃圾收集操作或耗損平均操作所造成的延遲尖峰訊號。具有舊有介面(像是SATA)以及簡單的垃圾收集結構之多個SSD模組可用於儲存陣列並具有低讀取延遲。在另一態樣中,商業可得多個SSD之SSD控制器模擬轉動磁碟,其中以圓柱及區段方式編列位址。雖然硬碟存在轉動及搜尋的延遲性,但其具有該磁碟每一區段可被個別定址進行讀取及寫入,且該區段在空間上可被覆寫的性質。但是這些性質與NAND快閃記憶體的實體本質不一致,快閃記憶體轉換層(FTL)嘗試管理快閃記憶體的寫入以模擬硬碟。正如已描述的,此管理方式在該快閃記憶體在執行垃圾收集而無法用於讀取操作時可能需要較長時間。
每一SSD控制器製造商都以不同方式處理這些問題,且這種控制器的細節通常係為專有資訊而當該硬碟模擬器介面係有效提供該產品時,仍不供該控制器與快
閃記憶體之購買者所得。然而,許多這些控制器係以連續寫入至該快閃記憶體實體區塊的方式管理此程序。該記憶體之某些區塊係邏輯上為該使用者可利用,同時該快閃記憶體裝置具有額外一些用於執行垃圾收集與耗損平均的可分配區塊。其他的「隱藏」區塊可能出現並用於取代耗損或具有其他失敗的區塊。從這些隱藏與已清除區塊便形成「自由區塊儲存區」。
許多用於消費性產品之快閃記憶體裝置係用於像是儲存影像及視頻的應用程式,其只能寫入或修改完整的區塊。這使得該SSD控制器保持一有限數目的狀態資訊(因此造成成本降低),而實際上該相關控制器並不需要執行任何垃圾收集或追蹤一區塊之中的資料有效性。只有已經被程式化(寫入)該區塊最高頁面編號的指標需要被保存,如果該指標少於一區塊便允許被寫入。當該資料係準備被丟棄時,該占據一或多個區塊的完整物件便被清除。
當該使用者嘗試寫入之該SSD邏輯區塊位址所映射之實體區塊已被填滿時,欲被寫入之資料將被引導至從該自由區塊儲存區所選擇之自由區塊,並將該資料寫入至該自由區塊。所以,該已修改(或新的)資料之邏輯區塊位址便被重新映射至新的實體區塊位址。具有該舊資料的完整頁面則被標示為「無效」。最後該自由區塊儲存區中的自由區塊數量則落至需要由垃圾收集再生具有無效資料之實體區塊或區塊的數量。
在一態樣中,當需要該資料更詳細的管理時,配置
一高階控制器120以管理該某些程序。在一示例中,「垃圾收集」處理可區分為兩個步驟:識別並重新定位在該區塊被清除時一實體區塊欲保存之有效資料,並將其保存在其他位置;以及,清除目前只具有無效資料之實體區塊的步驟。該程序可經布置,因此在該系統的操作過程讀取及寫入期間完成該資料重新定位處理,而該清除操作則為「垃圾收集」步驟。因此,雖然該讀取及寫入可能需要準備一區塊而能引起單一操作或脈衝操作,但其時脈可由控制器120所管理,以避免阻擋使用者讀取請求。可透過FTL管理垃圾收集的重新定位構想管理,FTL為RAID引擎123之一部分,因此SSD 141之FTL引擎146管理該完全區塊,而非管理該資料的個別頁面。
該SSD可以是一種與現有硬碟之間具有形式相符與功能相容的模組,並具有一相對複雜的FTL,或是可在較不麻煩的封裝中得到該電子產品。包含該記憶體部分與電子控制及其介面之該電子組件,以及具有較少功能之FTL的簡易控制器係可於一或多種電子封裝類型中利用,像是一球閘陣列固定裝置或其他類似裝置,而複數個這種SSD電子等價裝置也可固定至印刷電路板上,以成為更緊密且較不昂貴的非揮發性儲存陣列。
簡易控制器係為與快閃記憶體產品普遍相關的類型,該快閃記憶體係欲用於儲存大量非結構化資料,像是典型的錄製音樂、視頻或數位照片。儲存大量的資料連續區塊。單一資料物件時常被儲存於該記憶體之每一實體區塊上,像是照片或是電影的畫面,所以該記憶體
的管理便以區塊的基礎所執行,而非以個別頁面或頁面群集的基礎執行。所以,不管一區塊中的資料係為有效資料或是無效資料,該使用者都傾向於將其丟棄。
簡易快閃記憶體SSD的行為特徵係根據該製造商與已被討論之具體部分而不同。為了簡單起見,寫入該SSD的資料可以叢集方式群集化,其等於將填入一單一區塊之該頁面數量(等於該資料物件)。如果想要寫入填滿單一實體區塊的更多資料,便假設該資料係被寫入具有一記憶區塊相同大小的叢集之中。目前被寫入之該資料是否不應該包含一整體區塊、被寫入之該資料整體區塊以及該其他區塊,係少於具有已被標註為寫入頁面數量之被寫入資料區塊,或是該資料係由該控制器保存在緩衝中直到可利用一完整資料區塊進行寫入,則是根據該控制器設計而有所不同。
該RAID控制器FTL負責管理該使用者LBA與該記憶模組邏輯空間中該儲存位置(在SSD的局部LBA)之間的實際對應。
藉由在所描述方法中操作記憶體控制器120,便可訓練何時在該SSD上執行垃圾收集(對一簡易控制器而言為清除操作),並可避免讀取阻擋。
利用第七圖圖示此程序。當由記憶體控制器120執行對該記憶體系統之寫入請求時,便由該FTL 1解譯該寫入請求之LBA,以決定該LBA是否具有欲被修改之現存資料。如果該LBA處並無資料,那麼FTL 1可以指定該使用者LBA至一記憶模組局部LBA,其與緩衝122
中所收集之資料的LBA對應,用以最後將其寫入成為完整區塊(步驟710)。此指定過程被記錄於L2P表格等價表中,除非在此階段該指定係被指定至另一邏輯位址(該記憶模組之邏輯位址空間),此時可稱該表格為L2L表格。
當該主機LBA請求對應於已經寫入資料之一LBA時,執行虛擬垃圾收集形式。此可透過標示在該L2L表格中對應記憶體系統LBA係為無效的方式完成。映射至該SSD中其他可利用局部LBA之該LBA的已修改資料係落於該被組合之資料區塊中,以寫入至該SSD。此為虛擬垃圾收集處理(步驟720)的一部份。該新映射資料則被累計於緩衝記憶體122中(步驟730)。
當一資料完整區塊等於在該緩衝中所累計之SSD記憶模組區塊的大小時,便將該資料寫入該SSD。在該SSD處,FTL 2接收此資料並透過該L2P表格決定該區塊中的資料是否要被覆寫(步驟750)。根據該具體演算法,FTL 2可以簡單清除該區塊,並在該空間中寫入新的資料區塊。然而,FTL 2時常引致一種耗損平均處理,並從自由區塊儲存區選擇一已清除區塊,並指定該新的實體區塊給該新資料之邏輯位址區塊(步驟760)。此指定過程保存在FTL 2之L2P表格中。當該指定已經建立,便可將該資料完整區塊寫入記憶模組141(步驟770)。FTL 2之耗損平均處理可以清除該等已被識別為可用於清除之區塊之一區塊。例如,指出該實體區塊係為已被邏輯覆寫之該最後實體區塊(步驟780)。
實質上,FTL 1管理LBA資料的頁面大小程度,而FTL 2管理具有等於該SSD實體區塊大小之分段的LBAs群集。此允許複數個記憶體電路141的活動組織,如同該RAID控制器決定在何時將何者資料寫入至記憶體電路141時、一區塊於何時變得全滿,以及一清除操作的預期發生情況。
在一態樣中,已經從一主機10所接收用於儲存的資料係可累計於不同資料區域中,該不同資料區域係不同於垃圾收集處理部分所被重新定位的資料儲存區域。或者,該垃圾收集處理部分所被重新定位的資料可與由主機10所新建立或新修改的資料混合。此兩者皆為主機10的有效資料。然而,保存用於被重新定位資料之不同緩衝區域分配可能造成來自主機10之新寫入或已修改資料的大量區塊,係被寫入該記憶模組之一區塊連續位置中。當來自該區塊而被進行重新定位處理之資料滿足如其他區塊般並未經常被清除的條件時,或是其具有已被標示為大多數的無效區塊頁面時,現有準備用於清除操作而重新定位之資料便可為在一可觀期間中尚未被修改的資料。所以,由於該資料已經被修改而變得具有分散散佈之有效資料的多數區塊將可被聯合在一起,而在一可觀期間中並未被存取之多數區塊將被更新。
理想的是在快閃記憶體中更新該資料,以消減已經長期儲存之資料可能的錯誤率增加。相關領域技術人員應可了解該用詞「長期」代表一種中等期間,一般而言
介於天與年之間,其根據該特定記憶模組部分類型、先前清除循環的數量、溫度歷程與其他類似因素有關。
先前討論係針對於該RAID群集之該等SSD之一SSD。但是,因為其他該RAID群集分段係隨一邏輯位址偏移之該第一欄位中的資料有關,因此欲被進行清除之該等區塊之該等無效頁面、映射與選擇係以上述之L2P表格的偏移所執行。該等偏移可為該記憶體陣列中該等SSD的索引。該RAID群集每一欄位中的區塊填入,係允許以某種序列方式進行,因此垃圾收集的清除操作也可以序列方式進行。當記憶體控制器120保持追蹤該SSD中每一區塊的填入情況時,如以上所述,一區塊何時變為全滿以及該SSD中另一區塊何時被清除以進行垃圾收集便可受到控制。
在另一示例中,該記憶體系統可以包含複數個記憶模組MM0-MM4。由該RAID控制器從主機110所接收之一資料頁面(例如4KB)係被劃分為四個相等區段(每個1KB),而透過該四個區段計算對等性區段。該四個區段與該對等性區段可視為一RAID分段的分段。該RAID分段的分段欲被寫入至構成該RAID群集之該MM0-MM4記憶模組的不同記憶模組。
在SSD 141與記憶體控制器120之間的介面處,可以呈現該使用者可利用的記憶體空間,例如當複數個邏輯區塊的大小等於該記憶模組中一或多個記憶體實體區塊之大小時。用於一邏輯區塊之該記憶體實體區塊的數量可以等於一單一實體區塊大小或是為了管理目的
被視為群集的複數個實體區塊。可被合併以形成一邏輯區塊之晶片的該等實體區塊可能並不為序列;然而,使用者並不知道這件事情。
記憶體控制器120可以接收大小為4KB的使用者資料頁面,並分配此頁面中的1KB給該RAID群集中該等SSD之每一SSD的頁面,以形成分段。還可以分配三個使用者資料頁面給該頁面以在該SSD邏輯空間中形成一4KB的頁面。或者,可以在緩衝121中累計等於該SSD之實體區塊大小的資料頁面數量。
先前描述之示例將一4KB使用者資料頁面分解為四個1KB分段以進行儲存。使用寫入命令所儲存的資料實際大小可能根據該製造商與使用的通訊協定而不同。例如,當該實際儲存頁面大小為4KB時,代表四個使用者頁面之最前面1K部分之分段,便可用於組合形成一資料頁面,以寫入記憶模組之頁面中。
在此示例中,等於該邏輯頁面之邏輯儲存大小的資料量係被緩衝,因此當資料被寫入一晶片時,可以同時寫入一完整邏輯頁面。相同數量的頁面係被寫入該等記憶模組之每一記憶模組,而一RAID分段中該等記憶模組之每一記憶模組都包含一資料分段或該資料之對等性資料。
第八圖顯示以圓圈中的數字表示之寫入操作序列而在申請規格書中則以[#]表示。資料寫入可於一RAID分段之記憶模組MM群集(SSD)之任何記憶模組開始,只要該RAID分段之所有記憶模組係在一記憶模組被寫
入第二次之前進行寫入。在此,以線性方式顯示該程序的進行。
當已經累計足夠資料而被寫入之邏輯區塊大小等於該實體區塊大小時,便開始寫入程序。該第一分段之資料可寫入MM1,因此用於該實體區塊中所有頁面之該RAID分段之該第一分段的所有資料係被寫入MM1。接著,該寫入前進至MM2[1],而用於該實體區塊中所有頁面之該RAID分段之該第二分段的所有資料係被寫入MM2,並依序向前[MM2、MM3、MM4]直到該對等性資料寫入至MM5,因此完成將用於該資料之邏輯區塊的所有資料寫入至非揮發性記憶體中的實行。在此示例中,使用該MMs之每一個記憶模組之局部邏輯區塊0,但如該局部FTL所選擇該MM1中之實體區塊則例如為3。
當已經累計一第二資料邏輯區塊時,該新的資料頁面便寫入[步驟5-9]另一組構成指定給該MM中RAID群集之該等實體區塊(22、5、15、6、2)的記憶區塊(在此情況中為局部邏輯區塊1)。
在此示例中所描述之操作序列係於任何同時只有該RAID分段之一分段被寫入資料。所以,在一記憶模組上該RAID群集之其他實體區塊上的資料,對該模組而言該資料於此時並未被寫入,因此讀取上不造成延遲,而使用者資料可透過該使用者資料之該等分段的資料,或是少於該等使用者分段之所有資料並包括足以重建該使用者資料之對等性資料進行復原。
在該邏輯區塊與該實體區塊對齊時,可以在該寫入序列開始處或結束處對該完整邏輯區塊進行清除操作。所以,根據為該晶片控制器所進行之詳細的設計選擇,例如可在寫入動作從MM1轉換至MM2之步驟[1]結束時進行一清除操作,或是在寫入動作從MM2轉換至MM3之步驟[2]開始時進行一清除操作。
用於寫入快閃記憶體之通訊協定時常係從舊有系統介面規格所推衍,像是ATA與其變化及後續規格。寫入操作之請求與被寫入至邏輯位址之資料係被傳送至該裝置。該請求裝置等到該記憶體裝置確認接收回應為止,該回應指示在發布另一寫入請求之前將資料寫入至一非揮發性記憶體位置的實行。所以一般而言,一寫入請求會被確認以具有大約是將該分段寫入至該快閃記憶體之時間的延遲時間。在該記憶體控制器正在執行管理動作的情況中,將延遲該寫入確認直到完成該管理操作及任何的等待寫入請求。
第八圖的方法描繪一示例,其中一完整資料邏輯頁面被序列寫入該等記憶模組之每一記憶模組中。第九圖描繪一類似方法,其中使用者資料頁面的數量係少於可被寫入至該等記憶模組之完整實體區塊的大小。該序列控制可類比於第五圖所示,除了頁面數量K係少於可被儲存在該邏輯區塊中之頁面數量Nmax,而K個頁面則被寫入一記憶模組,且接著該寫入活動係傳遞至該RAID群集之另一記憶模組141。同樣的,該RAID群集之該等所有分段都被寫入,以儲存該所有使用者資料與
該資料之對等性資料。
藉由寫入少於N之K個頁面數的方式,便可減少需要被儲存在緩衝122之中的資料量。在所有記憶模組141儲存相同分段數量,且該資料及該資料之對等性資料係在寫入另一組資料至該等區塊之前提交至該非揮發性儲存器的情況下,對於任何頁面組而言所被儲存之頁面數K可以是不同的數量。
儲存於緩衝記憶體122中之資料可以是代表FTL 1的詮釋資料、使用者資料、管理資料、為了垃圾收集、記憶體更新、耗損平均操作而被重新定位的資料,或是其他類似資料。在RAID控制器階之FTL 1管理該使用者邏輯區塊位址至該記憶體裝置局部邏輯區塊位址的指定。在此方法中,如先前所述快閃記憶體裝置141與其記憶體控制器143及FTL 2可以利用在其他位置如由FTL 1所執行之較低階管理功能(逐頁),在一實體區塊階(例如128個頁面)處理自由區塊的管理與耗損平均。
於該記憶體控制器階處之緩衝記憶體122也可作為一快取記憶體。雖然被寫入之資料在被寫入該非揮發性記憶體之前係保存於該快取之中,但是可由該快取提供該資料的讀取請求服務,因為該快取中的資料為該資料的最新數值。在該快取中也可以提供對一使用者LBA的寫入請求服務,但是該程序將與該LBA資料分段之資料是否正在進行寫入至該非揮發性記憶體而有所不同。一旦為一特定LBA之該LBA分段資料寫入至該非揮發性記憶體的程序已經開始時(如第八圖或第九
圖),具有一相關計算對等性資料之該特定LBA便需要被完全儲存在該非揮發性記憶體中,以確保資料連慣性。所以,一旦標示一快取LBA以指示其正在或已經寫入至該記憶體時,對該LBA的新寫入請求將被視為對一已儲存資料之LBA位置的寫入請求,並將其放置於緩衝之中進行執行。然而,對在該緩衝中但尚未開始進行寫入至該非揮發性記憶體之LBA的寫入請求,可能受到以新的資料取代用於該LBA之緩衝中的資料方式所影響。此新的資料係為最新的使用者資料,且沒有任何理由將該無效資料寫入該揮發性記憶體之中。
當一SSD陣列係於RAID配置中利用一傳統RAID控制器操作時,使用者可在回應一讀取請求時偶發的大量延遲時,看到與管理操作有關之延遲期間尖峰訊號的發生。已知此偶發延遲係為降低系統效能的一重要因素,而該在以上描述該等示例中的記憶模組控制方式係欲避免於各種配置中所隱藏因清除/寫入所產生的問題。
在利用某些對該模組進行之寫入操作構想立即開始管理操作的啟動下,也可以所描述之類似方式操作使用傳統的多個SSD之系統。也就是說,當寫入一第一SSD時,便決定該SSD的狀態,例如利用等待該寫入操作之確認方式加以決定。如以上所述,資料係無法被寫入至一RAID群集之其他多個SSD,直到該第一個SSD係處於不再禁止讀取操作的狀態為止。所以,如果對該RAID群集執行讀取操作,可利用足夠的資料或少於所有資料但足夠之對等性資料,立即回報所希望的資料。
一特定SSD無法利用的時間長度可能並不確定,但藉由使用該SSD的狀態決定何者磁碟可被寫入的方式,可以獲得隱藏寫入/清除的形式。一旦為該RAID分段中該等所有SSD建立寫入至該SSD之LBAs數量與執行清除操作之時間的關係之後,該SSD陣列便可如先前描述所管理。
第十圖為描述使用此SSD行為以管理一RAID化記憶體操作以提供隱藏清除(及寫入)的流程圖。該方法1000包含決定該緩衝記憶體中是否有可利用於將一完整資料實體區塊寫入該RAID群集之足夠資料(步驟1010)。一資料區塊被寫入至該SSD,係儲存在該RAID分段之分段「0」處(步驟1020)。該控制器等到該SSD「0」報告成功完成該寫入操作為止(步驟1030)。此時間可以包括資料寫入以及所需要的任何管理操作,像是清除區塊。在執行寫入至SSD「0」的期間,資料並不寫入至該RAID群集的任何其他SSD。因此,對該RAID群集進行之讀取操作便可以從SSDs「1」至「P」擷取資料,其已經儲存有足以重建該資料的資料。因為此資料並不受到寫入或清除操作的阻擋便可利用,因此在回應該使用者請求時不產生寫入或清除延遲。
一旦該控制器已經接收成功完成對SSD「0」的區塊寫入,便開始寫入用於SSD「1」的資料(步驟1040),並依序進行直到該對等性資料寫入至SSD「P」(步驟1070)。無論該緩衝中是否有足夠寫入一RAID群集之資料都可以執行該程序1000,或是該程序可以逐步執行。
如果並未執行清除操作,則此操作將可更快完成。
除了可能在初始化或錯誤復原期間之外,此調節寫入一RAID分段操作的方法使其適應於該等SSD操作執行該等功能所需的速度,且不需要對該個別SSDs操作進行了解。藉由刺激該SSD的方式可決定一區塊的開始處,其係藉由一頁面序列寫入直到觀察到發生一清除操作為止,該清除操作係因清除會比寫入操作具有更長的延遲時間而顯露。接著,可在區塊基礎上調節此操作。
在使用該用詞SSD時,並不欲將該裝置限制為一種與現有形式因子、工業標準、硬體或軟體通訊協定或其他類似因素一致的裝置。同樣的,複數個所述SSDs與記憶模組可以被組合成為一系統模組,該系統模組可以是印刷電路板或其他類似模組,並可以是一種多數晶片模組或方便的其他封裝形式。這些組件的規格尺寸與所牽涉之技術有關,在此並不欲對其演進造成限制。
將可認知所描述之該等方法與顯示在該等圖式中之該等裝置可經配置或具現於機器可執行指令中,像是軟體或硬體中,或是其兩者組合。該等機器可執行指令可以用於使一般目的電腦、特殊目的處理器或其他類似裝置以該等指令動作而執行在此描述之功能,特殊目的處理器則像是數位訊號處理器(DSP,Digital Signal Processing)或陣列處理器。或者,該等操作可由特定硬體元件所執行,該特定硬體元件可具有邏輯硬體或韌體指令,以執行所描述之操作,或可由程式化電腦元件與可包括類比電路之客製化硬體元件的任何組合執行。
可以至少部分提供該等方法成為一電腦程式產品,該電腦程式產品包括一非揮發性機器可讀媒介,該媒介上有儲存指令,該指令用於將一電腦(或其他電子裝置)程式化,以執行該等方法。為了此具體規格之目的,該用詞「機器可讀媒介」應該包括任何具有儲存或編碼指令序列或資料序列之能力的媒介,而能由一計算機器或特殊目的硬體執行該指令或資料,並可以使該機器或特殊目的硬體執行本發明之該等方法或功能之任一項方法或功能。據此,該用詞「機器可讀媒介」應該包括固態記憶體、光學與磁性碟片、磁性記憶體與光學記憶體,以及任何為所述目的所發展等價裝置,但「機器可讀媒介」並不限制於此。
例如,機器可讀媒介可以包括唯讀記憶體(ROM,Read-Only Memory);任何形式的隨機存取記憶體(RAM,Random Access Memory)(例如S-RAM、D-RAM、P-RAM);可程式化唯讀記憶體(PROM,Programmable Read Only Memory);電改寫唯讀記憶體(EAROM,Electronically Alterable Read Only memory);磁性隨機存取記憶體;磁碟儲存媒體;可為NAND或NOR配置之快閃記憶體;記憶電阻器;或是電子、光學、聲學資料儲存媒介或其他類似裝置,但並不限制於此。像是DRAM之揮發性記憶體裝置可以用於儲存該電腦程式產品,而該揮發性記憶體裝置係為具有一電力來源之系統的部分,而該電力來源或電池則在該電腦程式產品被儲存於該揮發性記憶體裝置上的期間
提供電力至該電路。
此外,該領域通常在談到軟體時就其形式而言(例如程式、步驟、程序、應用程式、模組、演算法或邏輯)係可採取動作或造成結果。這種說明只是方便說明如相關領域技術人員所習知般由一電腦或等價裝置執行該軟體指令時會引起該電腦或等價裝置之處理器執行動作或產生結果。
雖然以上只詳細描述本發明之一些示例具體實施例,但相關領域技術人員將可立即體會在該等示例具體實施例中在無重大背離本發明新穎教導與優點下可進行許多修改。據此,將欲所有此類的修改都包括於本發明範疇中。
10‧‧‧主機
100‧‧‧記憶體系統
120‧‧‧記憶體控制器
121‧‧‧介面
122‧‧‧緩衝記憶體
123‧‧‧磁碟陣列引擎
124‧‧‧記憶體控制器
125‧‧‧固態磁碟匯流排介面
140‧‧‧記憶體陣列,固態磁碟陣列
141‧‧‧記憶體單元,元件模組,記憶體裝置
141‧‧‧記憶模組,快閃記憶體電路
142‧‧‧介面
143‧‧‧局部控制器
144‧‧‧揮發性記憶體,緩衝
145‧‧‧緩衝
146‧‧‧快閃記憶體轉換層引擎
147‧‧‧記憶體
160-1‧‧‧實體區塊
160-n‧‧‧實體區塊
700‧‧‧方法
710‧‧‧步驟
720‧‧‧步驟
730‧‧‧步驟
740‧‧‧步驟
750‧‧‧步驟
760‧‧‧步驟
770‧‧‧步驟
780‧‧‧步驟
1000‧‧‧方法
1010‧‧‧步驟
1020‧‧‧步驟
1030‧‧‧步驟
1040‧‧‧步驟
1050‧‧‧步驟
1060‧‧‧步驟
1070‧‧‧步驟
1080‧‧‧步驟
10‧‧‧主機
100‧‧‧記憶體系統
120‧‧‧記憶體控制器
140‧‧‧記憶體陣列,固態磁碟陣列
Claims (16)
- 一種資料儲存系統,包含:複數個記憶模組,每一記憶模組都具有:複數個記憶區塊;一第一控制器,其經配置以執行從一第二控制器所接收之資料的邏輯位址與一被選擇記憶區塊之實體位址之間的映射;以及該第二控制器係經配置以介接該複數個記憶模組之該等記憶模組群集,每一群集都包含一磁碟(RAID)陣列群集;其中該第二控制器係進一步經配置以執行使用者資料之邏輯位址與該磁碟(RAID)陣列記憶模組群集之該等記憶模組之每一記憶模組之邏輯位址之間的映射,因此該使用者資料便被寫入每一記憶模組之該被選擇記憶區塊。
- 如申請專利範圍第1項之系統,其中該資料係以每次一頁面的方式被寫入該磁碟(RAID)陣列群集之記憶模組群集。
- 如申請專利範圍第1項之系統,其中該資料係被寫入該磁碟(RAID)陣列群集之記憶模組群集,因此同時被寫入之資料頁面的數量係等於或少於該被選擇記憶區塊的頁面數量。
- 如申請專利範圍第1項之系統,其中該資料係被寫入該磁碟(RAID)陣列群集之記憶模組群集,因此同時被寫入之資料頁面的數量係等於該記憶區塊的頁 面數量。
- 如申請專利範圍第1項之系統,其中被寫入該磁碟(RAID)陣列群集之一記憶模組的資料量,填滿一部分已填充的記憶區塊。
- 如申請專利範圍第1項之系統,其中該第一控制器解譯一寫入操作為一種指示,該寫入操作為寫入至該記憶模組位置之一預先寫入邏輯記憶體,該指示為目前映射至該邏輯記憶體位置之該實體記憶區塊可被清除。
- 如申請專利範圍第1項之系統,其中該記憶模組在執行一寫入或清除操作時,報告一忙碌狀態。
- 如申請專利範圍第7項之系統,其中寫入至該磁碟(RAID)陣列群集之另一記憶模組的寫入操作係被禁止,直到該最後寫入之記憶模組不再報告一忙碌狀態。
- 如申請專利範圍第1項之系統,其中利用對該模組詢問的方式決定一被寫入模組之狀態。
- 如申請專利範圍第1項之系統,其中利用回應一測試訊息的方式決定一被寫入模組之狀態。
- 如申請專利範圍第10項之系統,其中該測試訊息為一讀取請求。
- 一種儲存資料的方法,該方法包含:提供一記憶體系統,該記憶體系統具有複數個記憶模組;選擇該記憶模組之一記憶模組群集,以構成一磁 碟(RAID)陣列群集;提供一磁碟(RAID)陣列控制器;以及接收來自一使用者之資料,並利用以下方式處理該資料以儲存於該磁碟(RAID)陣列群集中:將使用者資料一已接收頁面之一邏輯區塊位址映射至該磁碟(RAID)陣列群集該等記憶模組之每一記憶模組之一邏輯位址空間;選擇該等記憶模組之每一記憶模組之一記憶區塊,該記憶區塊係已經被預先清除;將該等記憶模組之每一記憶模組之該邏輯位址空間映射至該等記憶模組之該被選擇區塊中的一實體位址空間;在將資料映射至該磁碟(RAID)陣列群集每一記憶模組之另一記憶區塊之前,將該被映射資料寫入每一記憶模組之該被選擇區塊,直到填滿該區塊為止。
- 如申請專利範圍第12項之方法,其中該區塊係藉由複數次地寫入少於該區塊之資料容量的資料量填滿。
- 如申請專利範圍第13項之方法,其中在任何已映射區塊被寫入第二次之前,於第一次以相同的頁面數量寫入至該等映射區塊之每一映射區塊。
- 如申請專利範圍第12項之方法,其中當被寫入至該等映射區塊之每一映射區塊的頁面數量係等於一區塊之頁面最大數量時,另一區塊被用以映射。
- 一種電腦程式產品,該電腦程式產品儲存於一非暫時 性電腦可讀媒介上,該電腦程式產品包含指令以使一控制器進行:選擇包含一磁碟(RAID)陣列群集之一記憶模組群集;以及接收來自一使用者之資料,並利用以下方式處理該資料以儲存於該磁碟(RAID)陣列群集中:將使用者資料一已接收頁面之一邏輯區塊位址映射至該磁碟(RAID)陣列群集之該等記憶模組之每一記憶模組之一邏輯位址空間;選擇該等記憶模組之每一記憶模組之一記憶區塊,該記憶區塊係已經被預先清除;將該等記憶模組之每一記憶模組之該邏輯位址空間映射至該等記憶模組之該被選擇區塊中的一實體位址空間;在將資料映射至該磁碟(RAID)陣列群集每一記憶模組之另一記憶區塊之前,將該被映射資料寫入每一記憶模組之該被選擇區塊,直到填滿該區塊為止。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161508177P | 2011-07-15 | 2011-07-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201314437A true TW201314437A (zh) | 2013-04-01 |
Family
ID=47519626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101125052A TW201314437A (zh) | 2011-07-15 | 2012-07-12 | 快閃碟陣列及控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130019057A1 (zh) |
TW (1) | TW201314437A (zh) |
WO (1) | WO2013012673A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI638263B (zh) * | 2017-07-26 | 2018-10-11 | 大陸商深圳大心電子科技有限公司 | 資料備份方法、資料恢復方法以及儲存控制器 |
TWI661298B (zh) * | 2016-12-01 | 2019-06-01 | 美商美光科技公司 | 記憶體協定 |
CN109885506A (zh) * | 2017-12-06 | 2019-06-14 | 慧荣科技股份有限公司 | 数据储存装置、主机装置、以及数据写入方法 |
TWI670624B (zh) * | 2014-06-04 | 2019-09-01 | 美商L3賀利實科技公司 | 用於動態資料儲存之系統及方法 |
US10534540B2 (en) | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10545862B2 (en) | 2017-09-21 | 2020-01-28 | Toshiba Memory Corporation | Memory system and method for controlling nonvolatile memory |
US10678441B2 (en) | 2016-05-05 | 2020-06-09 | Micron Technology, Inc. | Non-deterministic memory protocol |
TWI708258B (zh) * | 2017-08-16 | 2020-10-21 | 英業達股份有限公司 | 硬碟模擬器 |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
CN102710305A (zh) * | 2012-04-19 | 2012-10-03 | 惠州Tcl移动通信有限公司 | 一种基于太赫兹无线通信的数据传输方法及系统 |
US9495308B2 (en) | 2012-05-22 | 2016-11-15 | Xockets, Inc. | Offloading of computation for rack level servers and corresponding methods and systems |
US9558351B2 (en) | 2012-05-22 | 2017-01-31 | Xockets, Inc. | Processing structured and unstructured data using offload processors |
KR102147359B1 (ko) * | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
US9286002B1 (en) | 2012-12-28 | 2016-03-15 | Virident Systems Inc. | Dynamic restriping in nonvolatile memory systems |
US9842660B1 (en) | 2012-12-28 | 2017-12-12 | Virident Systems, Llc | System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory |
US9250954B2 (en) | 2013-01-17 | 2016-02-02 | Xockets, Inc. | Offload processor modules for connection to system memory, and corresponding methods and systems |
US9378161B1 (en) | 2013-01-17 | 2016-06-28 | Xockets, Inc. | Full bandwidth packet handling with server systems including offload processors |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
US9135164B2 (en) | 2013-03-15 | 2015-09-15 | Virident Systems Inc. | Synchronous mirroring in non-volatile memory systems |
US9021188B1 (en) | 2013-03-15 | 2015-04-28 | Virident Systems Inc. | Small block write operations in non-volatile memory systems |
US10073626B2 (en) | 2013-03-15 | 2018-09-11 | Virident Systems, Llc | Managing the write performance of an asymmetric memory system |
US9405672B2 (en) | 2013-06-25 | 2016-08-02 | Seagate Technology Llc | Map recycling acceleration |
US9304906B2 (en) * | 2013-09-10 | 2016-04-05 | Kabushiki Kaisha Toshiba | Memory system, controller and control method of memory |
CA2867585A1 (en) * | 2013-10-15 | 2015-04-15 | Coho Data Inc. | Methods, devices and systems for coordinating network-based communication in distributed server systems with sdn switching |
US9400745B2 (en) | 2013-11-06 | 2016-07-26 | International Business Machines Corporation | Physical address management in solid state memory |
US10067829B2 (en) | 2013-12-13 | 2018-09-04 | Intel Corporation | Managing redundancy information in a non-volatile memory |
US9723054B2 (en) | 2013-12-30 | 2017-08-01 | Microsoft Technology Licensing, Llc | Hierarchical organization for scale-out cluster |
US9430508B2 (en) * | 2013-12-30 | 2016-08-30 | Microsoft Technology Licensing, Llc | Disk optimized paging for column oriented databases |
US9898398B2 (en) | 2013-12-30 | 2018-02-20 | Microsoft Technology Licensing, Llc | Re-use of invalidated data in buffers |
US9170746B2 (en) | 2014-01-07 | 2015-10-27 | Netapp, Inc. | Clustered raid assimilation management |
US9405480B2 (en) | 2014-01-13 | 2016-08-02 | Seagate Technology Llc | Interleaving codewords over multiple flash planes |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US9483349B2 (en) | 2014-01-17 | 2016-11-01 | Netapp, Inc. | Clustered raid data organization |
US20150212744A1 (en) * | 2014-01-26 | 2015-07-30 | Haim Helman | Method and system of eviction stage population of a flash memory cache of a multilayer cache system |
US9798620B2 (en) * | 2014-02-06 | 2017-10-24 | Sandisk Technologies Llc | Systems and methods for non-blocking solid-state memory |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
KR20160138448A (ko) | 2014-03-08 | 2016-12-05 | 다이아만티 인코포레이티드 | 통합 네트워크 및 스토리지를 위한 방법 및 시스템 |
US10628353B2 (en) | 2014-03-08 | 2020-04-21 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
US11921658B2 (en) | 2014-03-08 | 2024-03-05 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
US10635316B2 (en) * | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US9454551B2 (en) * | 2014-03-13 | 2016-09-27 | NXGN Data, Inc. | System and method for management of garbage collection operation in a solid state drive |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9891826B1 (en) * | 2014-09-24 | 2018-02-13 | SK Hynix Inc. | Discard command support in parity based redundant array of flash memory disk |
WO2016046970A1 (ja) * | 2014-09-26 | 2016-03-31 | 株式会社日立製作所 | ストレージ装置 |
KR102248207B1 (ko) | 2014-10-30 | 2021-05-06 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
CN106339179B (zh) * | 2015-07-06 | 2020-11-17 | 上海宝存信息科技有限公司 | 主机装置、存取系统、以及存取方法 |
US10191841B2 (en) | 2015-07-06 | 2019-01-29 | Shannon Systems Ltd. | Host device, access system, and access method |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9785525B2 (en) | 2015-09-24 | 2017-10-10 | Netapp, Inc. | High availability failover manager |
US9891833B2 (en) | 2015-10-22 | 2018-02-13 | HoneycombData Inc. | Eliminating garbage collection in nand flash devices |
US9836366B2 (en) | 2015-10-27 | 2017-12-05 | Netapp, Inc. | Third vote consensus in a cluster using shared storage devices |
US9804787B2 (en) * | 2015-11-03 | 2017-10-31 | Samsung Electronics Co., Ltd. | Mitigating GC effect in a raid configuration |
CN106802867B (zh) * | 2015-11-25 | 2020-12-01 | 建兴储存科技(广州)有限公司 | 固态储存装置及其数据编程方法 |
US10235059B2 (en) | 2015-12-01 | 2019-03-19 | Netapp, Inc. | Technique for maintaining consistent I/O processing throughput in a storage system |
US10229009B2 (en) | 2015-12-16 | 2019-03-12 | Netapp, Inc. | Optimized file system layout for distributed consensus protocol |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US11100044B2 (en) * | 2016-04-28 | 2021-08-24 | Netapp, Inc. | Browsable data and data retrieval from a data archived image |
US9952767B2 (en) | 2016-04-29 | 2018-04-24 | Netapp, Inc. | Consistency group management |
US10114694B2 (en) | 2016-06-07 | 2018-10-30 | Storart Technology Co. Ltd. | Method and controller for recovering data in event of program failure and storage system using the same |
US10430081B2 (en) * | 2016-06-28 | 2019-10-01 | Netapp, Inc. | Methods for minimizing fragmentation in SSD within a storage system and devices thereof |
TWI634418B (zh) * | 2016-07-13 | 2018-09-01 | 大陸商深圳衡宇芯片科技有限公司 | 用於程式化失敗時回復資料的方法與控制器及使用該方法與控制器的系統 |
CN107797756B (zh) * | 2016-09-05 | 2021-01-12 | 上海宝存信息科技有限公司 | 固态硬盘系统的优先写入方法以及使用该方法的装置 |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
JP2018073312A (ja) | 2016-11-04 | 2018-05-10 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR20180051706A (ko) | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
US11069418B1 (en) | 2016-12-30 | 2021-07-20 | EMC IP Holding Company LLC | Method and system for offline program/erase count estimation |
US10338983B2 (en) | 2016-12-30 | 2019-07-02 | EMC IP Holding Company LLC | Method and system for online program/erase count estimation |
US10289550B1 (en) | 2016-12-30 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for dynamic write-back cache sizing in solid state memory storage |
JP6765322B2 (ja) | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP6765321B2 (ja) | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP6709180B2 (ja) | 2017-02-28 | 2020-06-10 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10290331B1 (en) | 2017-04-28 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for modulating read operations to support error correction in solid state memory |
US10403366B1 (en) * | 2017-04-28 | 2019-09-03 | EMC IP Holding Company LLC | Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors |
KR20180128588A (ko) * | 2017-05-24 | 2018-12-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN109213695B (zh) * | 2017-06-30 | 2023-07-21 | 伊姆西Ip控股有限责任公司 | 缓存管理方法、存储系统以及计算机程序产品 |
CN109582215B (zh) * | 2017-09-29 | 2020-10-09 | 华为技术有限公司 | 硬盘操作命令的执行方法、硬盘及存储介质 |
US10852966B1 (en) * | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for creating mapped RAID group during expansion of extent pool |
US10437476B2 (en) | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
US10915440B2 (en) * | 2017-11-16 | 2021-02-09 | Micron Technology, Inc. | Namespace mapping optimization in non-volatile memory devices |
US10877898B2 (en) * | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10678703B2 (en) | 2017-11-16 | 2020-06-09 | Micron Technology, Inc. | Namespace mapping structual adjustment in non-volatile memory devices |
CN110321061A (zh) * | 2018-03-31 | 2019-10-11 | 深圳忆联信息系统有限公司 | 数据存储方法及装置 |
US10733098B2 (en) | 2018-12-31 | 2020-08-04 | Western Digital Technologies, Inc. | Incomplete write group journal |
CN110196687B (zh) * | 2019-05-20 | 2023-02-03 | 杭州宏杉科技股份有限公司 | 数据读写方法、装置、电子设备 |
KR20210004613A (ko) * | 2019-07-05 | 2021-01-13 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
KR20210017401A (ko) * | 2019-08-08 | 2021-02-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법과, 이를 위한 컨트롤러 |
CN113299333A (zh) | 2020-02-21 | 2021-08-24 | 硅存储技术股份有限公司 | 由闪存单元构成的eeprom仿真器中的损耗均衡 |
US11995316B2 (en) | 2022-06-15 | 2024-05-28 | Samsung Electronics Co., Ltd. | Systems and methods for a redundant array of independent disks (RAID) using a decoder in cache coherent interconnect storage devices |
US20230409245A1 (en) * | 2022-06-21 | 2023-12-21 | Samsung Electronics Co., Ltd. | Method and system for solid state drive (ssd)-based redundant array of independent disks (raid) |
US20240061786A1 (en) * | 2022-08-22 | 2024-02-22 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for accessing data in versions of memory pages |
CN117311647B (zh) * | 2023-11-30 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种基于ZNS固态硬盘Raid实现方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774575B2 (en) * | 2004-09-21 | 2010-08-10 | Intel Corporation | Integrated circuit capable of mapping logical block address data across multiple domains |
US7685400B2 (en) * | 2004-12-15 | 2010-03-23 | International Business Machines Corporation | Storage of data blocks of logical volumes in a virtual disk storage subsystem |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US8200887B2 (en) * | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US7739444B2 (en) * | 2006-12-26 | 2010-06-15 | Sandisk Corporation | System using a direct data file system with a continuous logical address space interface |
JP4939234B2 (ja) * | 2007-01-11 | 2012-05-23 | 株式会社日立製作所 | フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法 |
US9632870B2 (en) * | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
JP2009181314A (ja) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | 情報記録装置およびその制御方法 |
US7945752B1 (en) * | 2008-03-27 | 2011-05-17 | Netapp, Inc. | Method and apparatus for achieving consistent read latency from an array of solid-state storage devices |
JP2009282678A (ja) * | 2008-05-21 | 2009-12-03 | Hitachi Ltd | フラッシュメモリモジュール及びストレージシステム |
US20100023740A1 (en) * | 2008-07-23 | 2010-01-28 | Seagate Technology Llc | Diagnostic utility and method for a data storage device |
US8862817B2 (en) * | 2010-06-09 | 2014-10-14 | Taejin Info Tech Co., Ltd. | Switch-based hybrid storage system |
US8732426B2 (en) * | 2010-09-15 | 2014-05-20 | Pure Storage, Inc. | Scheduling of reactive I/O operations in a storage environment |
US8468318B2 (en) * | 2010-09-15 | 2013-06-18 | Pure Storage Inc. | Scheduling of I/O writes in a storage environment |
WO2012083308A2 (en) * | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
WO2012106362A2 (en) * | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
-
2012
- 2012-07-11 US US13/546,179 patent/US20130019057A1/en not_active Abandoned
- 2012-07-12 TW TW101125052A patent/TW201314437A/zh unknown
- 2012-07-12 WO PCT/US2012/046448 patent/WO2013012673A2/en active Application Filing
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI670624B (zh) * | 2014-06-04 | 2019-09-01 | 美商L3賀利實科技公司 | 用於動態資料儲存之系統及方法 |
US11422705B2 (en) | 2016-05-05 | 2022-08-23 | Micron Technology, Inc. | Non-deterministic memory protocol |
US11740797B2 (en) | 2016-05-05 | 2023-08-29 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10963164B2 (en) | 2016-05-05 | 2021-03-30 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10678441B2 (en) | 2016-05-05 | 2020-06-09 | Micron Technology, Inc. | Non-deterministic memory protocol |
US11947796B2 (en) | 2016-06-06 | 2024-04-02 | Micron Technology, Inc. | Memory protocol |
US10534540B2 (en) | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US11340787B2 (en) | 2016-06-06 | 2022-05-24 | Micron Technology, Inc. | Memory protocol |
US10585624B2 (en) | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
US12093565B2 (en) | 2016-12-01 | 2024-09-17 | Lodestar Licensing Group Llc | Memory protocol |
TWI661298B (zh) * | 2016-12-01 | 2019-06-01 | 美商美光科技公司 | 記憶體協定 |
US11226770B2 (en) | 2016-12-01 | 2022-01-18 | Micron Technology, Inc. | Memory protocol |
TWI638263B (zh) * | 2017-07-26 | 2018-10-11 | 大陸商深圳大心電子科技有限公司 | 資料備份方法、資料恢復方法以及儲存控制器 |
TWI708258B (zh) * | 2017-08-16 | 2020-10-21 | 英業達股份有限公司 | 硬碟模擬器 |
US10545862B2 (en) | 2017-09-21 | 2020-01-28 | Toshiba Memory Corporation | Memory system and method for controlling nonvolatile memory |
US11144451B2 (en) | 2017-09-21 | 2021-10-12 | Toshiba Memory Corporation | Memory system and method for controlling nonvolatile memory |
US11797436B2 (en) | 2017-09-21 | 2023-10-24 | Kioxia Corporation | Memory system and method for controlling nonvolatile memory |
TWI684098B (zh) * | 2017-09-21 | 2020-02-01 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制非揮發性記憶體之控制方法 |
CN109885506B (zh) * | 2017-12-06 | 2022-11-11 | 慧荣科技股份有限公司 | 数据储存装置、主机装置、以及数据写入方法 |
CN109885506A (zh) * | 2017-12-06 | 2019-06-14 | 慧荣科技股份有限公司 | 数据储存装置、主机装置、以及数据写入方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130019057A1 (en) | 2013-01-17 |
WO2013012673A2 (en) | 2013-01-24 |
WO2013012673A3 (en) | 2013-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201314437A (zh) | 快閃碟陣列及控制器 | |
EP3800554B1 (en) | Storage system managing metadata, host system controlling storage system, and storage system operating method | |
US10241877B2 (en) | Data storage system employing a hot spare to proactively store array data in absence of a failure or pre-failure event | |
EP2942713B1 (en) | Storage system and storage apparatus | |
US9152332B2 (en) | Storage system and method for reducing energy consumption | |
US10082965B1 (en) | Intelligent sparing of flash drives in data storage systems | |
US9811288B1 (en) | Managing data placement based on flash drive wear level | |
CN102483686B (zh) | 数据存储系统和用于操作数据存储系统的方法 | |
US10082959B1 (en) | Managing data placement in storage systems | |
US8694724B1 (en) | Managing data storage by provisioning cache as a virtual device | |
US9304685B2 (en) | Storage array system and non-transitory recording medium storing control program | |
JP6062060B2 (ja) | ストレージ装置、ストレージシステム、及びストレージ装置制御方法 | |
US20150378613A1 (en) | Storage device | |
US9122629B2 (en) | Elastic cache with single parity | |
US8495295B2 (en) | Mass storage system and method of operating thereof | |
US10545684B2 (en) | Storage device | |
JP2016506585A (ja) | データストレージのための方法及びシステム | |
US20180275894A1 (en) | Storage system | |
US20120260035A1 (en) | Zero rebuild extensions for raid | |
US10579540B2 (en) | Raid data migration through stripe swapping | |
US9760296B2 (en) | Storage device and method for controlling storage device | |
JP6817340B2 (ja) | 計算機 | |
US20240329853A1 (en) | Data regeneration and storage in a raid storage system |