TWI424319B - 用於操作一固態驅動器之方法及固態記憶體裝置 - Google Patents
用於操作一固態驅動器之方法及固態記憶體裝置 Download PDFInfo
- Publication number
- TWI424319B TWI424319B TW098136034A TW98136034A TWI424319B TW I424319 B TWI424319 B TW I424319B TW 098136034 A TW098136034 A TW 098136034A TW 98136034 A TW98136034 A TW 98136034A TW I424319 B TWI424319 B TW I424319B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- data
- units
- solid state
- controller
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2087—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Electronic Switches (AREA)
- Control Of El Displays (AREA)
Description
本發明大體而言係關於半導體記憶體裝置、方法及系統,且更特定而言係關於操作一固態驅動器。
記憶體裝置通常提供作為電腦或其他電子裝置中之內部半導體積體電路。存在諸多不同類型之記憶體,其中包含(尤其是)隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、相變隨機存取記憶體(PCRAM)及快閃記憶體。
固態記憶體裝置係用作用於一大範圍電子應用之揮發性及非揮發性記憶體。快閃記憶體僅係一種類型之固態記憶體,其通常使用允許高記憶體密度、高可靠性及低功率消耗之一單電晶體記憶胞。
固態記憶體裝置(包含快閃裝置)可組合在一起以形成一固態驅動器。一固態驅動器可用來替換硬式磁碟機作為一電腦之主儲存裝置,此乃因根據效能、大小、重量、堅固性、操作溫度範圍及功率消耗該等固態驅動器可比硬驅動器具有優勢。舉例而言,當與磁碟驅動器相比時,由於磁碟驅動器缺少移動部件,快閃固態驅動器可具有較高效能,此可改進尋覓時間、等待時間及與磁碟驅動器相關聯之其他機電延遲。
一固態驅動器係使用固態記憶體來儲存持續資料之一資料儲存裝置。一固態驅動器可包含NAND快閃非揮發性記憶體及/或DRAM揮發性記憶體。固態驅動器製造商可使用非揮發性快閃記憶體形成一驅動器,該驅動器不使用一內部電池電源因此允許其更通用且更小型。使用快閃記憶體之固態驅動器(亦稱為快閃驅動器)可使用標準磁碟驅動器形狀因數(例如,尤其是1.8英吋、2.5英吋及3.5英吋)。
對於某些儲存應用,硬驅動器可配置成一冗餘陣列,例如一廉價磁碟冗餘陣列,亦稱作一獨立磁碟冗餘陣列(RAID)。一RAID可係指可在多個硬式磁碟機之間劃分及複製資料之資料儲存系統。此等配置(例如在伺服器中)可意欲在一特定驅動器出現故障之情形下防止資料損失。然而,此實踐可能涉及在系統儲存容量中未實現之對額外容量之一大量投資。舉例而言,在某些儲存應用中,使用少至5-30%之一硬磁碟容量進行儲存以藉由減少與該(等)硬磁碟相關聯之尋覓時間來提高效能。此外,硬驅動器故障率可隨著該驅動器老化而傾向於增加。相反,固態裝置若出現故障則可傾向於在壽命之早期出現故障,且然後正確地操作至其期望服務壽命結束。
本發明包含用於操作一固態驅動器之方法及裝置。一個方法實施例包含反射程式化操作以便將與一程式化操作相關聯之資料程式化至該固態驅動器之記憶體中之兩個或更多個位置。該方法亦包含在一特定事件發生之後停止反射程式化操作。
於本發明之以下詳細闡述中,參照形成本發明之一部分之隨附圖式,且圖式中以圖解說明之方式顯示可如何實踐本發明之一或多個實施例。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可作出製程、電、及/或結構變化,而不背離本發明之範疇。如本文中所使用,標識符「N」(特定而言係參照圖式中之參考數字)指示如此標識之特定特徵之一編號可包含於本發明之一或多個實施例內。
本文中之圖式遵循此一編號慣例,其中第一個數字或前幾個數字對應於圖式編號,且其餘數字識別圖中之一元件或組件。不同圖式之間的類似元件或組件可藉由使用類似數字來識別。舉例而言,在圖1中110可指示元件「10」,且在圖2中一類似元件可指示為210。如將瞭解,可添加、交換及/或去除本文中各種實施例中所顯示之元件以便提供本發明之若干額外實施例。另外,如將瞭解,圖式中所提供之該等元件之比例及相對標度意欲圖解說明本發明之實施例且不應視為一限定意義。
圖1圖解說明根據本發明之一或多個實施例之一固態驅動器120之一區塊圖。圖1之實施例圖解說明一固態驅動器120之一個實施例之組件及架構。在圖1圖解說明之實施例中,固態驅動器120包含一控制器101、一介面103及固態記憶體陣列130-1、...、130-N。在一或多個實施例中,固態驅動器120可包含一外殼來包圍固態驅動器120,但此外殼並非必要。
介面103可用來在固態驅動器120與另一裝置(例如一計算裝置)之間傳送資訊。舉例而言,如圖3中圖解說明,當固態驅動器120係用於一計算裝置中之資料儲存時,介面103可尤其係一序列先進技術附件(SATA)。
控制器101可與固態記憶體陣列130-1、...、130-N通信以讀取、寫入及擦除在固態記憶體陣列130-1、...、130-N上之資料。控制器101可用來管理固態驅動器120中之資料之感測、程式化及擦除。控制器101可具有可係一或多個積體電路及/或離散組件之電路。對於一或多個實施例,控制器101中之電路可包含用於控制跨越若干記憶體陣列之存取及/或用於在一外部主機與固態驅動器120之間提供一轉換層之控制電路。因此,一記憶體控制器可選擇性地耦合一記憶體陣列之一I/O連接(未在圖1中顯示)以在恰當的時間在恰當的I/O連接處接收恰當的信號。同樣,在一主機與固態驅動器120之間的通信協定可不同於存取一記憶體陣列(例如記憶體陣列130-1)所需要之通信協定。然後,記憶體控制器101可將自一主機接收之命令序列轉換為恰當的命令序列以達成對一記憶體陣列之期望存取。除命令序列以外,此轉換可進一步包含信號電壓位準之改變。
控制器101之電路可進一步包含與控制一記憶體陣列(例如陣列130-1)不相關之功能性,例如可由一ASIC執行之邏輯功能。同樣,控制器101之電路可包含用以限制對固態驅動器120之讀取或寫入存取之電路,例如密碼保護、生物統計或諸如此類。控制器101之電路可包含指示固態驅動器120之一狀態之電路。舉例而言,控制器101之電路可包含用以確定是否正向固態驅動器120供電及當前是否正存取固態驅動器120,及顯示其狀態之一指示(例如,當供電時之一固態燈及當正被存取時之一閃爍燈)之功能性。控制器101之電路可進一步包含被動裝置,例如幫助調節固態驅動器120內之功率需求之去耦合電容器。
本發明之實施例可包含若干固態記憶體陣列130-1、...130-N。固態記憶體陣列130-1、...、130-N可係各種類型之揮發性及/或非揮發性記憶體陣列(例如,尤其是快閃陣列或DRAM陣列)。記憶體陣列130-1、...、130-N可包含可依單元分組之若干記憶胞。如本文中使用,一單元可包含一或多個記憶胞,例如一頁、區塊、平面、晶粒、一整個陣列或其他記憶胞群組。舉例而言,某些記憶體陣列可包含構成一記憶胞區塊之若干記憶胞頁。若干區塊可包含於一記憶胞平面中。若干記憶胞平面可包含於一晶粒內。作為一實例,一128GB記憶體裝置可包含每頁4314個位元組資料、每區塊128個頁、每平面2048個區塊,且每裝置16個平面。
固態驅動器可實施耗損平均以控制記憶體陣列130-1、...、130-N上之耗損率。如熟習此項技術者將瞭解,耗損平均可增加一固態記憶體陣列之壽命,此乃因一固態記憶體陣列可能在若干程式化及/或擦除循環之後經歷故障。
耗損平均可包含動態耗損平均以最小化為回收一區塊而移動的有效區塊之量。動態耗損平均可包含稱作垃圾收集(garbage collection)之一技術,其中藉由擦除具有若干無效頁(亦即,具有已被重新寫入至一不同頁及/或在無效頁上不再需要之資料之頁)之區塊而回收該等區塊。靜態耗損平均包含將靜態資料寫入至具有高擦除計數之區塊以延長該區塊之壽命。
可將若干區塊指定為備用區塊以減少與將資料寫入記憶體陣列相關聯之寫入放大之量。一備用區塊可係一記憶體陣列中可指定為其中不可寫入資料之一區塊之一區塊。寫入放大係當將資料寫入至固態記憶體陣列時而發生之一過程。當將資料隨機地寫入一記憶體陣列時,該記憶體陣列在該陣列中掃描空閒空間。一記憶體陣列中之空閒空間可係未經程式化之個別胞、頁及/或記憶胞區塊。若存在足夠空閒空間來寫入資料,則將該資料寫入至該記憶體陣列中之該空閒空間。若在一個位置中不存在足夠空閒空間,則藉由將已存在於記憶體陣列中之資料擦除、移動及重新寫入至一新位置來重新配置該記憶體陣列中之資料,從而為欲寫入該記憶體陣列中之新資料留出空閒空間。在記憶體陣列中重新配置舊資料稱為寫入放大,此乃因該等記憶體陣列為寫入新資料而必須做之寫入量係基於該記憶體陣列中之空閒空間量及將寫入於該記憶體陣列上之該新資料之大小而放大。寫入放大可藉由增加在一記憶體陣列上指定為空閒空間(亦即,將不寫入靜態資料)之空間的量而減小,因此允許由於必須重新配置之資料較少而較少放大必須寫入之資料量。
除了固態驅動器中之耗損平均以外,可監測由固態驅動器執行之主機及/或使用者訊務及/或程式化/擦除循環以改良該固態驅動器之效能。處理器可透過控制器做出主機及/或使用者訊務請求以讀取資料及/或擦除在固態驅動器上之資料/將資料寫入在固態驅動器上。由於僅可擦除及寫入一固態記憶體陣列達一有限數目之時間,因此可監測程式化及/或擦除循環以確定該固態記憶體陣列中之區塊及/或頁之損耗率及預期壽命。可監測及改變主機及/或使用者訊務趨勢以允許驅動器執行達一期望操作壽命(例如,例如小時、天、週、年等等之一時間週期)。固態驅動器可監測及限制由該固態驅動器執行之程式化及/或擦除循環之數目,以便確保該驅動器之一期望操作壽命。固態驅動器亦可監測在一特定時間週期期間所執行之程式化及/或擦除循環之數目以確定在給出空間區塊之數目及驅動器之期望操作壽命之情形下如何計算驅動器之允許程式化及/或擦除循環率。
此外,固態驅動器之固態記憶體陣列中之備用區塊之數目可經控制以確保在一期望操作壽命期間對於每一單元時間之一期望數目之寫入IOP之操作性。備用區塊之百分比可針對正在固態驅動器上接受程式化之資料類型而最優化。具有靜態資料(亦即,儲存在驅動器上達很長時間週期但未被擦除及/或重新寫入之資料)之一固態驅動器可具有一較低百分比之備用區塊,此乃因由於具有較少程式化及/或擦除循環之資料之靜態性質而不太需要回收驅動器中之區塊。在具有動態資料(亦即,較頻繁地程式化及/或擦除之資料)之一固態驅動器中,可使用一較高百分比之備用區塊來減少與必須回收區塊以在記憶體陣列中執行程式化及/或擦除循環相關聯之寫入放大。
圖2A及2B圖解說明根據本發明之一或多個實施例之固態驅動器操作之一區塊圖。圖2A圖解說明一固態驅動器(SSD)之一儲存容量之至少一部分280之第一操作,例如在一第一組條件下之操作。圖2B圖解說明該SSD之該儲存容量之至少一部分280之第二操作,例如在一第二組條件下之操作。該SSD之該儲存容量之該部分280可包含該SSD之全部儲存容量,或其之一較小片段。舉例而言,該SSD之該儲存容量之其他部分可經定址以使得不根據圖2A及2B中圖解說明之實施例(例如,如本文中所闡述之備用區塊)來操作該其他部分。
圖2A圖解說明SSD之儲存容量之邏輯上已隔離成若干第一單元281及若干第二單元282之至少一部分280。例如在SSD上之一控制器中之控制邏輯可經組態以確定(例如)在初始化之後在SSD陣列中之單元之一總數目。該控制器可將第一數目之單元281定址為第一單元,且將第二數目之單元282定址為第二單元。儘管為了便於圖解說明未在圖2A中圖解說明,但SSD之儲存容量之至少一部分可保留且定址為第三單元,例如保留單元。如本文中所述,一單元可包含一或多個記憶胞,例如一頁、區塊、平面、晶粒、一整個陣列、或其他記憶胞群組。儘管將第一數目之單元281及第二數目之單元282圖解說明為彼此毗鄰且具有相同大小,但實施例不僅限於此。第一數目之單元281及第二數目之單元282可具有相同或不同大小,例如,具有相同或不同儲存容量。此外,第一數目之單元281及第二數目之單元282在SSD上之實體位置可(例如)根據一耗損平均演算法散佈於整個SSD中且不必對應於圖2A中之圖解說明。
程式化操作可經反射以便將與一程式化操作相關聯之資料288-A程式化至SSD之記憶體中之兩個或更多個位置。如在圖2A中圖解說明,可將資料288-A之一複本程式化至記憶體位置291處之第一單元281中之一或多者。可將資料288-A之一第二複本程式化至在記憶體位置292處之第二單元282中之一或多者。因此,可將資料288-A冗餘地程式化至SSD之陣列中之若干位置。冗餘地程式化資料288-A可包含將資料288-A之兩個或更多個複本程式化至SSD之儲存容量之部分280。在一或多個實施例中,可將資料同時程式化至兩個或更多個位置以便SSD較不可能引起與此冗餘程式化相關聯之一效能損失。舉例而言,可將資料288-A程式化至SSD上之一第一記憶胞陣列中之位置291,與此同時將資料288-A程式化至SSD上之一第二記憶胞陣列中之位置292。該第一及第二陣列可經組態以同時程式化資料。在一記憶體裝置中同時操作之進一步論述可見於名稱為「Logical Unit Operation」之共同讓與之美國專利申請案第
號(代理檔案號1002.0360001)中,該申請案與本申請案同一日提出申請,且包含至少一個共同發明者Troy Manning。由於可在一單個陣列內冗餘地程式化資料,因此實施例不限於將資料冗餘地程式化至單獨陣列。
在一或多個實施例中,可視情況在SSD上啟用與反射程式化操作相關聯以便冗餘地程式化資料之SSD之功能性。舉例而言,除其他啟用機構以外,反射尤其可由一控制器所發出之一或多個命令、一次可程式化(OTP)命令、SSD上之一實體開關、藉由一使用者介面(例如一圖形使用者介面(GUI))、熔絲、反熔絲、或由可在將SSD運輸至一客戶之前調整之一或多個設置啟用。此反射可比作SSD之一暫時內部RAID。如將在下文中更詳細闡述,由於SSD不必在其使用壽命期間冗餘地程式化資料,且不必針對SSD之使用壽命保留資料之冗餘複本,因此此反射可係暫時的。雖然資料係以冗餘形式儲存,但資料之一或多個額外複本之可用性可降低與資料之一個複本相關聯之一故障(例如一程式化或感測故障)之影響。然而,由於可傾向於在該裝置之早期使用期限內發生及/或偵測到與固態裝置相關聯之故障,因此該裝置可在其早期使用期限內利用「RAID」。隨後,該裝置可單個地儲存資料及/或擦除資料之冗餘複本以為其後期使用期限增加有效容量。「RAID」係在SSD內部,此乃因其不利用多個SSD,而不同於利用多個硬磁碟之一習用RAID。
如將瞭解,一旦已將資料程式化至記憶體中之一「位置」(例如實體位置),則可(例如)根據耗損平均、反寫入放大、或影響SSD上之記憶體管理之其他演算法改變將資料程式化至其中之記憶胞。儘管第一數目之單元281及第二數目之單元282係圖解說明為具有相同數量之已使用空間284及空閒空間286,但實施例不僅限於此。第一單元281中之空閒空間286之數量可以等於或不同於第二單元282中之空閒空間286之數量之一比率改變。同樣,第一單元281中之已使用空間284之數量可以等於或不同於第二單元282中之空閒空間286之數量之一比率改變。
在一或多個實施例中,當儲存容量之部分280隔離開時可對第一單元281執行感測操作。因此,若欲自SSD感測資料288-A,則可自位置291感測到該資料,如在圖2A中圖解說明。亦即,儘管可將資料288-A冗餘地程式化至兩個或更多個位置,但可自一個位置感測到該資料以在感測該資料之多於一個複本期間改良操作效能。在一或多個實施例中,該控制器可經組態以在資料之一第一複本與未由錯誤校正碼(ECC)校正之一錯誤相關聯之後對資料之一第二複本執行感測操作。
欲感測之資料之複本在本文中係稱為主複本,而其他複本係稱為冗餘複本。在一或多個實施例中,若未由ECC校正之一感測錯誤係與感測該資料之主複本相關聯,則可感測該資料之冗餘複本。如本文中所闡述,可同時程式化該資料之多於一個複本。因此,若未由ECC校正之一程式化錯誤與程式化該資料之主複本相關聯,則可感測該資料之冗餘複本。
在一或多個實施例中,可反射擦除操作以便自其中將資料程式化至在SSD之記憶體中之兩個或更多個位置擦除與一擦除操作相關聯之資料。舉例而言,雖然儲存容量之部分280係隔離開的,但可在第一單元281內之位置291處及在對應之第二單元282內之位置292處執行資料288-A之一擦除操作。
在一或多個實施例中,可如參照圖2A中圖解說明之實施例(例如,一暫時內部RAID)所述操作SSD直至一特定事件發生。該特定事件可尤其包含SSD、或達到已使用空間之一臨限值之SSD之一部分、未由ECC校正之一程式化錯誤、或未由ECC校正之一感測錯誤。
在一或多個實施例中,該特定事件可包含儲存容量之部分280達到一臨限值290量之已使用空間284之量。如在圖2A中圖解說明之臨限值290之特定位置不應視為一限制意義。可將臨限值290設定至若干不同的位置,包含在儲存容量之部分280之頂部,以使得當第一單元281及第二單元282之一者或二者構成已使用空間284時可達到該臨限值。在一或多個實施例中,當所有第一單元281構成已使用空間284時,或當所有第二單元282構成已使用空間284時可達到臨限值290。在一或多個實施例中,已使用空間之臨限值290可係儲存容量之部分280之總空間的一半。舉例而言,若儲存容量之部分280等於一太位元組,且該太位元組被平均劃分以使得存在500個十億位元組之第一單元281及500個十億位元組之第二單元282,則臨限值可係500個十億位元組之已使用空間284。當第一單元281及第二單元282之一者或二者構成500個十億位元組之已使用空間284時可達到此一500個十億位元組之臨限值(儲存容量之部分280之總空間的一半)。對於第一單元281及第二單元282,臨限值290無需設定在相同位準處。此外,臨限值290不表示記憶體中之一特定位置,而表示記憶體之一數量,例如記憶體之一百分比。如本文中所述,第一單元281及第二單元282之已使用空間284及空閒空間286之數量可獨立改變且不必如圖2A中所圖解說明係相等。
在一或多個實施例中,該特定事件可包含未由ECC校正之一錯誤。在此等實施例中,可暫停或修改暫時內部RAID之操作。暫停暫時內部RAID可導致如參照圖2B所述之裝置操作,例如,(除其他操作差異以外)對儲存容量之部分280解除隔離且單個地程式化資料。下文闡述修改暫時內部RAID。
在一或多個實施例中,控制器可經組態以存取ECC且若未由ECC校正之一錯誤(例如,如本文中所述,尤其是一感測或程式化錯誤)係與一單元相關聯則將該特定單元定址為無效。將一單元定址為無效可包含將該單元係無效之一指示符程式化至該無效單元中之一或多個位置、自一暫存器移除彼單元之實體或邏輯位址、或將彼單元之實體或邏輯位址添加至無效單元之一表,以使得SSD不再利用(例如程式化、感測、擦除等等)該單元。舉例而言,若與該錯誤相關聯之該特定單元係一特定第一單元,則控制器可對一對應之特定第二單元執行後續操作。在一或多個實施例中,在已將該特定第一單元定址為無效之後,控制器可將該特定第二單元定址為該特定第一單元。亦即,控制器可以與該第二單元相關聯之一位址替換與一無效第一單元相關聯之位址,以使得當SSD試圖利用該第一單元時,其實際上利用該第二單元。在此等實施例中,控制器可將一特定第三單元定址為該特定第二單元。亦即,一冗餘單元可替換一主單元,且一保留單元可替換一冗餘單元。在此等實施例中,一保留單元可程式化有儲存於該冗餘單元中之資料之一複本。
圖2B圖解說明SSD之儲存容量之一部分280,在已將其邏輯地解除隔離以包含單元283之一總數目之後。圖2B中圖解說明之部分280可類似於圖2A中圖解說明之部分280。在一或多個實施例中,單元283之總數目可等於第一單元281之數目與第二單元282之數目。該總數目個單元283可在本文中稱為「第一單元」,此乃因其功能性(例如其係如何由SSD之控制器操作)類似於如上文所述之第一單元281之操作。舉例而言,可將資料程式化至第一單元283且自第一單元283感測資料,例如,單元283可作為主單元而運作。
在一或多個實施例中,儲存容量之部分280可在一特定事件發生後邏輯地解除隔離。此等特定事件之實例闡述於本文中。在一或多個實施例中,可對第一單元281及對應之第二單元282之某些單元或全部單元邏輯地解除隔離。舉例而言,當該特定事件係未由ECC校正之一錯誤時,可將對應於該錯誤之該等單元解除隔離,而將儲存空間之部分280之剩餘部分保持隔離。可在該特定事件發生之後停止反射程式化操作,以便將資料288-B單個地程式化至(例如)若干單元283中之一個位置293。亦即,可程式化資料288-B之一第一(例如,主)複本而不程式化資料288-B之一第二(例如,冗餘)複本。因此,亦可在該特定事件發生後停止反射擦除操作。亦即,對資料288-B執行之一擦除操作可在記憶體之一個位置293中執行。
在一或多個實施例中,先前所隔離之第二單元282可用作用於後續程式化之空閒空間286。亦即,先前所隔離之第二單元282可經擦除及定址為空閒空間286。在一或多個實施例中,其中在特定事件發生之後將第二單元282定址為第一單元281,新定址之第一單元281可定址為空閒空間286。舉例而言,當設定臨限值290以便當第一單元281構成已使用空間時達到該臨限時,可在達到臨限值290之後擦除第二單元282。在此一實例中,可將資料288-B程式化至先前之「第二單元」282,其現在為「總單元」283之一部分。亦即,可暫停暫時內部RAID,且SSD可儲存資料之單個複本而非資料之主複本及冗餘複本。
圖3圖解說明根據本發明之一或多個實施例包含一固態驅動器(SSD)320之一計算系統300之一區塊圖。SSD 320可類似於本文中所述之固態驅動器,例如,圖1之固態驅動器120。SSD 320可具有一介面(例如,對一周邊及匯流排控制305之一SATA介面),該周邊及匯流排控制可鏈接至與一處理器(例如CPU 310)介接之記憶體及匯流排控制335。周邊及匯流排控制305可連接至若干裝置,例如一快閃驅動器315(例如使用一通用串列匯流排(USB)介面),及一非揮發性記憶體主機控制介面(NVMHCI)快閃記憶體325(例如使用一快速周邊組件互連(PCIe)介面)。記憶體及匯流排控制335可連接至若干裝置,例如記憶體(例如,DRAM 345)(例如使用一第三代雙倍資料率(DDR3)介面),及圖形組件355(例如使用一PCIe介面)。如讀者將瞭解,在若干不同計算系統中,可使用一固態驅動器320代替一硬式磁碟機(HDD)。圖3中圖解說明之計算系統300係此一系統之一個實例。
圖4係具有根據本發明之一或多個實施例操作之至少一個固態驅動器之一電子記憶體系統400之一功能性區塊圖。記憶體系統400包含耦合至一固態驅動器420之一處理器410,該固態驅動器包含若干非揮發性記憶胞陣列430。儘管僅圖解說明一個記憶體陣列430,但本發明之實施例可包含在一固態驅動器420上之若干記憶體陣列430,例如,如圖1中圖解說明。記憶體系統400可包含單獨積體電路,或處理器410及固態驅動器420兩者皆可位於同一積體電路上。處理器410可係一微處理器或某一其他類型之控制電路,例如一專用積體電路(ASIC)。
如熟習此項技術者將理解,固態驅動器420包含若干非揮發性記憶胞陣列430,該等非揮發性記憶胞陣列可係具有一NAND架構之浮動閘極快閃記憶胞。此一架構可包含與一字線耦合之一「列」記憶胞之控制閘極,及耦合至位元線之一「行」記憶胞之汲極區域。在此一架構中,該等記憶胞之源極區域可耦合至源極線。如熟習此項技術者將瞭解,將該等記憶胞連接至該等位元線及源極線之方式相依於該陣列係一NAND架構、一NOR架構、一AND架構或是某一其他記憶體陣列架構。
圖4之實施例包含位址電路440以鎖存經由I/O連接462透過I/O電路460而提供之位址信號。位址信號係由一列解碼器444及一行解碼器446接收並解碼以存取記憶體陣列430。根據本發明,熟習此項技術者將瞭解,位址輸入連接之數目相依於記憶體陣列430之密度及架構,且位址之數目隨記憶胞數目之增加與記憶體區塊及陣列數目之增加而增加。
固態驅動器420藉由使用感測/緩衝電路(在此實施例中可係讀取/鎖存電路450)感測各記憶體陣列行中之電壓及/或電流變化來感測記憶體陣列430中之資料。讀取/鎖存電路450可自記憶體陣列430讀取及鎖存一頁(例如一列)資料。包含I/O電路460用於經由I/O連接462與處理器410進行雙向資料通信。包含寫入電路455以將資料寫入至記憶體陣列430。
若干記憶體陣列430可各自包含一或多個單獨之列解碼器444及行解碼器446。在一或多個實施例中,記憶體陣列430可包含單獨之讀取/鎖存電路450、寫入電路455、位址電路440及I/O電路460。在一或多個實施例中,記憶體陣列430可共享讀取/鎖存電路450、寫入電路455、位址電路440及I/O電路460中之一或多者。為便於圖解說明,僅在圖4中顯示每一電路中之一者。
控制電路470解碼由控制連接472自處理器410提供之信號。此等信號可包含用於控制對記憶體陣列430之操作(包含資料感測、資料寫入及資料擦除操作)之碼片信號、寫入啟用信號及位址鎖存信號。在一或多個實施例中,控制電路470負責執行來自處理器410之指令以根據本發明之實施例執行操作。控制電路470可係一狀態機、一定序器或某一其他類型之控制器。圖1中圖解說明之控制器101可包含如參照圖4所述之控制電路470、位址電路440及I/O電路460中之一或多者之功能性。熟習此項技術者將瞭解,可提供額外電路及控制信號,且已簡化圖4之記憶體裝置細節以促進易於圖解說明。
本發明包含用於操作一固態驅動器之方法及裝置。一個方法實施例包含反射程式化操作以便將與一程式化操作相關聯之資料程式化至該固態驅動器之記憶體中之兩個或更多個位置。該方法亦包含在一特定事件發生之後停止反射程式化操作。
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,旨在達成相同結果之一配置可替代所顯示之具體實施例。本發明意欲涵蓋對本發明之一或多個實施例之修改或變化形式。應理解,以上闡述係以一圖解說明方式而非一限制方式做出。
在檢查以上說明後,熟習此項技術者將明瞭上述實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多個實施例之範疇包含其中使用以上結構及方法之其他應用。因此,本發明之一或多個實施例之範疇應參考隨附申請專利範圍連同授權此等申請專利範圍之等效物之全部範圍來確定。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單個實施例中。本發明之此方法不應視為反映本發明之所揭示實施例意欲必須使用比明確陳述於每一申請專利範圍中更多的特徵。而是,如以下專利申請範圍反映:發明標的物在於少於一單個所揭示實施例之所有特徵。因此,將以下申請專利範圍併入發明內容中,其中每一申請專利範圍獨立作為一單獨實施例。
101...控制器
103...介面
120...固態驅動器
130-1...固態記憶體陣列
130-N...固態記憶體陣列
280...儲存容量之部分
281...第一單元
282...第二單元
283...單元
284...已使用空間
286...空閒空間
288-A...資料
288-B...資料
290...臨限值
291...記憶體位置
292...記憶體位置
293...位置
300...計算系統
305...周邊及匯流排控制
310...CPU
315...快閃驅動器
320...固態驅動器(SSD)
325...非揮發性記憶體主機控制介面(NVMHCI)快閃記憶體
335...記憶體及匯流排控制
345...DRAM
355...圖形組件
400...記憶體系統
410...處理器
420...固態驅動器
430...非揮發性記憶胞陣列
440...位址電路
444...列解碼器
446...行解碼器
450...讀取/鎖存電路
455...寫入電路
460...I/O電路
462...I/O連接
472...控制連接
圖1圖解說明根據本發明之一或多個實施例之一固態驅動器之一區塊圖;
圖2A及2B圖解說明根據本發明之一或多個實施例之固態驅動器操作之一區塊圖;
圖3圖解說明根據本發明之一或多個實施例之包含一固態驅動器之一計算系統之一區塊圖;及
圖4係具有根據本發明之一或多個實施例操作之至少一個固態驅動器之一電子記憶體系統之一功能性區塊圖。
300‧‧‧計算系統
305‧‧‧周邊及匯流排控制
310‧‧‧CPU
315‧‧‧快閃驅動器
320‧‧‧固態驅動器(SSD)
325‧‧‧非揮發性記憶體主機控制介面(NVMHCI)快閃記憶體
335‧‧‧記憶體及匯流排控制
345‧‧‧DRAM
355‧‧‧圖形組件
Claims (39)
- 一種用於操作一固態驅動器之方法,包括:反射程式化操作以便將與一程式化操作相關聯之資料程式化至該固態驅動器之記憶體中之兩個或更多個位置;及回應於一特定事件之發生而停止鏡像程式化操作,其中該特定事件包含該固態驅動器達到已使用空間之一臨限值。
- 如請求項1之方法,其中反射程式化操作包含將資料之一第一複本程式化至記憶體中之一第一位置,且將資料之一第二複本程式化至記憶體之一第二位置。
- 如請求項2之方法,其中停止反射程式化操作包含程式化資料之該第一複本而不程式化資料之該第二複本。
- 如請求項1之方法,其中該方法包含:反射擦除操作以便自該固態驅動器之記憶體中之將資料程式化至之兩個或更多個位置擦除與一擦除操作相關聯之資料;且回應於該特定事件之發生停止反射擦除操作。
- 如請求項1之方法,其中該特定事件係由包含以下前導事件之群組中選出之一個事件來前導:未由錯誤校正碼(ECC)校正之一程式化錯誤;未由ECC校正之一感測錯誤;及其中該方法包含回應於該前導事件而停止鏡像程式化操作。
- 如請求項1之方法,其中反射程式化操作包含反射程式化操作以便將與該程式化操作相關聯之該資料同時程式化至該固態驅動器之記憶體中之兩個或更多個位置。
- 一種用於操作一固態驅動器之方法,其包括:將該固態驅動器之一儲存容量之至少一部分邏輯地隔離為一或多個第一單元及一或多個對應之第二單元;將資料之一第一複本程式化至該一或多個第一單元中之一或多者,且將該資料之一第二複本程式化至該一或多個對應之第二單元中之一或多者;且回應於一特定事件之發生而將該一或多個第一單元及該一或多個對應之第二單元中之一或多者邏輯地解除隔離,其中該特定事件包含該固態驅動器達到已使用空間之一臨限值。
- 如請求項7之方法,其中該方法包含在將該儲存容量之該部分隔離開時對該一或多個第一單元中之至少一者執行一感測操作,而不對一對應之第二單元執行一感測操作。
- 如請求項7之方法,其中該方法包含在將該儲存容量之該部分隔離開時對該一或多個第一單元中之至少一者及對一對應之第二單元執行一擦除操作。
- 如請求項7之方法,其中:該方法包含對該一或多個第一單元及該一或多個第二單元之全部邏輯地解除隔離。
- 如請求項10之方法,其中該方法包含使用先前所隔離之 該一或多個第二單元作為用於程式化之空閒空間。
- 如請求項7之方法,其中:該特定事件係由包含以下錯誤之一群組中選出之一錯誤來前導:一程式化錯誤,其未在該一或多個第一單元中之一特定單元中由錯誤校正碼(ECC)校正;及一感測錯誤,其未在該若干第一單元中之一特定第一單元中由ECC校正;且該方法包含對對應於該錯誤之該特定第一單元及對應於該特定第一單元之該一或多個第二單元中之一特定第二單元邏輯地解除隔離。
- 如請求項12之方法,其中該方法包含:停止使用對應於該錯誤之該特定第一單元,其中使用該特定第一單元包含對該特定第一單元執行一感測操作及一程式化操作中之至少一者;且對對應於該特定第一單元之該特定第二單元執行一感測操作。
- 如請求項12之方法,其中該方法包含:保留該儲存容量之至少一部分作為一或多個第三單元;且使用對應於該特定第一單元之該特定第二單元作為該一或多個第一單元中之一新第一單元;且使用該一或多個第三單元中之一特定第三單元作為該一或多個第二單元中之一新第二單元。
- 一種用於操作一固態驅動器之方法,其包括:回應於該固態驅動器之一儲存容量之至少一部分多於一臨限值數量之一總空間構成空閒空間而冗餘地(redundantly)程式化資料;且回應於少於該總空間之該臨限值數量構成空閒空間而單個地(singly)程式化資料。
- 如請求項15之方法,其中該臨限值數量係該總空間之一半。
- 如請求項15之方法,其中:冗餘地程式化資料包含將與一程式化操作相關聯之資料之兩個或更多個複本程式化至該固態驅動器之該儲存容量之該部分;且單個地程式化資料包含程式化與該程式化操作相關聯之資料之一個複本。
- 如請求項15之方法,其中冗餘地程式化資料包含程式化資料之一主複本及資料之一冗餘複本。
- 如請求項18之方法,其中該方法包含:對資料之該主複本執行感測操作;且若未由錯誤校正碼(ECC)校正之一感測錯誤係與感測該主複本相關聯則對資料之該冗餘複本執行感測操作。
- 如請求項18之方法,其中該方法包含若未由ECC校正之一程式化錯誤係與程式化該主複本相關聯則對該冗餘複本執行一感測操作。
- 一種固態記憶體裝置,其包括: 一或多個固態記憶體陣列;及一控制器,其耦合至該一或多個固態記憶體陣列且經組態以:在該等陣列中之已使用空間之一數量達到一特定臨限值之前將資料冗餘地程式化至該等陣列中之一或多個位置;且回應於該等陣列中之已使用空間之該數量達到該特定臨限值將資料單個地程式化至該等陣列中之一位置。
- 如請求項21之裝置,其中該控制器經組態以:藉由程式化資料之一第一複本及資料之一第二複本來冗餘地程式化資料;且藉由程式化資料之一個複本來單個地程式化資料。
- 如請求項22之裝置,其中該控制器經組態以回應於該等陣列中之已使用空間之該數量達到該特定臨限值而將該等陣列中儲存資料之第二複本之該一或多個位置定址為空閒空間。
- 如請求項22之裝置,其中該控制器經組態以對資料之第一複本執行感測操作。
- 如請求項22之裝置,其中若特定資料之一第一複本係與未由錯誤校正碼(ECC)校正之一錯誤相關聯,則該控制器經組態以對該特定資料之一第二複本執行感測操作。
- 如請求項21之裝置,其中視情況啟用在該等陣列中之已使用空間之該數量達到該特定臨限值之前該控制器將資料冗餘地程式化至該等陣列中之該一或多個位置之組 態。
- 一種固態記憶體裝置,其包括:一或多個固態記憶體陣列;及一控制器,其耦合至該一或多個固態記憶體陣列且經組態以:將該等陣列中之一第一數目之單元定址為第一單元且一第二數目之單元為第二單元;在程式化操作期間將資料之一第一複本程式化至該等第一單元之一者且將該資料之一複本程式化至該等第二單元之一者;且回應於該等第一單元及該等第二單元中之其中一者或兩者達到已使用空間之一臨限值而將該等第一及第二單元定址為第一單元。
- 如請求項27之裝置,其中已使用空間之該臨限值係自包含當該等第一單元之全部構成已使用空間時及當該等第二單元之全部構成已使用空間時之一群組選出。
- 如請求項27之裝置,其中該控制器經組態以對第一單元執行感測操作。
- 如請求項27之裝置,其中該控制器經組態以:確定該等陣列中之單元之一總數目;且將該等總數目之單元中之一或多個單元定址為第三單元。
- 如請求項30之裝置,其中該控制器經組態以:存取錯誤校正碼(ECC);且 若未由ECC校正之一錯誤係與一單元相關聯則將該單元定址為無效。
- 如請求項31之裝置,其中該控制器經組態以對對應於已定址為無效之一特定第一單元之一特定第二單元執行操作。
- 如請求項32之裝置,其中該控制器經組態以:若該特定第一單元已定址為無效則將該特定第二單元定址為該特定第一單元;且將一特定第三單元定址為該特定第二單元。
- 如請求項27之裝置,其中該控制器經組態以當將該等第二單元定址為第一單元時擦除該等第二單元。
- 如請求項27之裝置,其中該控制器經組態以在將該等第二單元定址為第一單元時將該等第二單元定址為空閒空間。
- 一種固態記憶體裝置,其包括:一或多個固態記憶體陣列;及一控制器,其耦合至該一或多個固態記憶體陣列且經組態以:將該等記憶體陣列之一者中之一或多個單元之一第一部分定址為一或多個主單元,且將該等記憶體陣列之一者中之該一或多個單元之一第二部分定址為一或多個冗餘單元;將第一資料程式化至一特定主單元及將第一資料程式化至一特定冗餘單元;且 回應於該一或多個主單元構成已使用空間而擦除該特定冗餘單元且將第二資料程式化至該特定冗餘單元。
- 如請求項36之裝置,其中該控制器經組態以:感測來自該特定主單元之第一資料;且若對該特定主單元執行之該感測操作導致一錯誤則感測來自該特定冗餘單元之第一資料。
- 如請求項37之裝置,其中該控制器經組態以:在該固態記憶體陣列中保留至少一個單元;若對該特定主單元執行之一操作導致一錯誤則將該特定冗餘單元定址為該特定主單元;將第一資料程式化至一保留單元;且將該保留單元定址為該特定冗餘單元。
- 如請求項36之裝置,其中該控制器經組態以自該特定主單元及該特定冗餘單元擦除第一資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/259,363 US8291181B2 (en) | 2008-10-28 | 2008-10-28 | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201027347A TW201027347A (en) | 2010-07-16 |
TWI424319B true TWI424319B (zh) | 2014-01-21 |
Family
ID=42118596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098136034A TWI424319B (zh) | 2008-10-28 | 2009-10-23 | 用於操作一固態驅動器之方法及固態記憶體裝置 |
Country Status (3)
Country | Link |
---|---|
US (3) | US8291181B2 (zh) |
TW (1) | TWI424319B (zh) |
WO (1) | WO2010062305A2 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8300825B2 (en) * | 2008-06-30 | 2012-10-30 | Intel Corporation | Data encryption and/or decryption by integrated circuit |
US9727473B2 (en) | 2008-09-30 | 2017-08-08 | Intel Corporation | Methods to communicate a timestamp to a storage system |
US8370712B2 (en) * | 2009-07-23 | 2013-02-05 | International Business Machines Corporation | Memory management in a non-volatile solid state memory device |
US8489804B1 (en) | 2009-09-14 | 2013-07-16 | Marvell International Ltd. | System for using dynamic random access memory to reduce the effect of write amplification in flash memory |
US8745369B2 (en) | 2011-06-24 | 2014-06-03 | SanDisk Technologies, Inc. | Method and memory system for managing power based on semaphores and timers |
US8694719B2 (en) * | 2011-06-24 | 2014-04-08 | Sandisk Technologies Inc. | Controller, storage device, and method for power throttling memory operations |
US20140181437A1 (en) * | 2012-12-26 | 2014-06-26 | Unisys Corporation | Equalizing wear on mirrored storage devices through file system controls |
US20140337598A1 (en) * | 2013-05-07 | 2014-11-13 | Lsi Corporation | Modulation of flash programming based on host activity |
US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
US10114692B2 (en) * | 2015-01-27 | 2018-10-30 | Quantum Corporation | High/low energy zone data storage |
US9952784B2 (en) | 2015-03-11 | 2018-04-24 | Sandisk Technologies Llc | Multichip dual write |
CN105892156B (zh) * | 2016-06-07 | 2019-05-03 | 深圳市华星光电技术有限公司 | 对透明基板进行曝光的方法 |
US10353588B1 (en) * | 2016-06-30 | 2019-07-16 | EMC IP Holding Company LLC | Managing dynamic resource reservation for host I/O requests |
US10318175B2 (en) * | 2017-03-07 | 2019-06-11 | Samsung Electronics Co., Ltd. | SSD with heterogeneous NVM types |
KR102326659B1 (ko) | 2017-07-19 | 2021-11-16 | 삼성전자주식회사 | 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템 |
KR20200068147A (ko) * | 2018-12-04 | 2020-06-15 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US20240020046A1 (en) * | 2022-07-15 | 2024-01-18 | Micron Technology, Inc. | Data Storage Devices having Different Paths for Control Messages and Data Messages |
US11983434B2 (en) | 2022-07-15 | 2024-05-14 | Micron Technology, Inc. | Network-ready storage products with computational storage processors |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453383B1 (en) * | 1999-03-15 | 2002-09-17 | Powerquest Corporation | Manipulation of computer volume segments |
US20050262388A1 (en) * | 2002-11-08 | 2005-11-24 | Dahlen Eric J | Memory controllers with interleaved mirrored memory modes |
TW200723000A (en) * | 2005-08-03 | 2007-06-16 | Sandisk Corp | Mass data storage system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5134584A (en) | 1988-07-22 | 1992-07-28 | Vtc Incorporated | Reconfigurable memory |
US7000069B2 (en) * | 1999-04-05 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks |
EP1376608A1 (fr) | 2002-06-28 | 2004-01-02 | Cp8 | Procédé d'écriture dans une mémoire non volatile et système pour la mise en oeuvre d'un tel procédé |
US7444540B2 (en) | 2005-06-21 | 2008-10-28 | Hewlett-Packard Development Company, L.P. | Memory mirroring apparatus and method |
KR20070074322A (ko) | 2006-01-09 | 2007-07-12 | 삼성전자주식회사 | 메모리 시스템에 있어서 메모리 미러링 방법 |
US7596657B2 (en) | 2006-01-13 | 2009-09-29 | Paul Kaler | Increased storage capacity for solid state disks using data compression |
US7809885B2 (en) | 2006-09-29 | 2010-10-05 | Voom Technologies, Inc. | Scalable hard-drive replicator |
US20080113525A1 (en) | 2006-11-15 | 2008-05-15 | Sandisk Il Ltd. | Compact solid state drive and processor assembly |
US7593973B2 (en) * | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
-
2008
- 2008-10-28 US US12/259,363 patent/US8291181B2/en active Active
-
2009
- 2009-10-14 WO PCT/US2009/005617 patent/WO2010062305A2/en active Application Filing
- 2009-10-23 TW TW098136034A patent/TWI424319B/zh active
-
2012
- 2012-09-14 US US13/618,771 patent/US8578115B2/en active Active
-
2013
- 2013-10-15 US US14/053,831 patent/US9483203B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453383B1 (en) * | 1999-03-15 | 2002-09-17 | Powerquest Corporation | Manipulation of computer volume segments |
US20050262388A1 (en) * | 2002-11-08 | 2005-11-24 | Dahlen Eric J | Memory controllers with interleaved mirrored memory modes |
TW200723000A (en) * | 2005-08-03 | 2007-06-16 | Sandisk Corp | Mass data storage system |
Also Published As
Publication number | Publication date |
---|---|
US20140143479A1 (en) | 2014-05-22 |
WO2010062305A2 (en) | 2010-06-03 |
US20100106889A1 (en) | 2010-04-29 |
WO2010062305A3 (en) | 2010-07-22 |
US20130013981A1 (en) | 2013-01-10 |
TW201027347A (en) | 2010-07-16 |
US8578115B2 (en) | 2013-11-05 |
US9483203B2 (en) | 2016-11-01 |
US8291181B2 (en) | 2012-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI424319B (zh) | 用於操作一固態驅動器之方法及固態記憶體裝置 | |
US20220139455A1 (en) | Solid state drive architectures | |
CN108172262B (zh) | 包含可修复的易失性存储器的存储器件及其操作方法 | |
TWI443671B (zh) | 邏輯單元操作 | |
US8046528B2 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
TWI419161B (zh) | 儲存管理資訊之記憶體系統及控制其之方法 | |
US10558576B2 (en) | Storage device with rapid overlay access | |
KR20200076846A (ko) | 메모리 장치에 저장된 데이터의 에러를 검출하는 장치 및 그 동작 방법 | |
JP4661369B2 (ja) | メモリコントローラ | |
WO2021183167A1 (en) | Storage system and method for implementing an encoder, decoder, and/or buffer using a field programmable gate array | |
US20220187996A1 (en) | Memory controller and storage device including same | |
JPH08115257A (ja) | 磁気ディスク制御装置 | |
US11669266B2 (en) | Memory system and operating method of memory system | |
CN116774913A (zh) | 改善混合读/写操作期间的读取时延的存储系统和方法 | |
CN117642726A (zh) | 用于防止在非正常关机期间发生数据丢失的数据存储设备和方法 | |
CN116932429A (zh) | 存储器系统和存储器系统的操作方法 |