TWI636396B - 固態硬碟機架構 - Google Patents
固態硬碟機架構 Download PDFInfo
- Publication number
- TWI636396B TWI636396B TW102142296A TW102142296A TWI636396B TW I636396 B TWI636396 B TW I636396B TW 102142296 A TW102142296 A TW 102142296A TW 102142296 A TW102142296 A TW 102142296A TW I636396 B TWI636396 B TW I636396B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash
- data
- flash memory
- memory
- dram
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0018—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- 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/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Retry When Errors Occur (AREA)
Abstract
一種包含DRAM邏輯快閃與快閃記憶體的固態硬碟機,其中系統處理器僅讀取與寫入DRAM邏輯快閃,DRAM邏輯快閃將對於快閃記憶體的寫入最小化。以及一種用於操作固態快閃裝置的方法。包含以CPU藉由使用快閃指令與格式化,傳送指令與資料至DRAM邏輯快閃以寫入固態硬碟機。
Description
本申請案係關於固態硬碟機架構。
計算裝置在非揮發性記憶體中保存程式執行檔與資料。這使得計算裝置在被重啟或電力中斷之後,檔案仍可為計算裝置所用。習知上,對於大型檔案,較佳的非揮發性儲存為硬碟機。硬碟機包含在以馬達驅動的心軸上的旋轉硬磁盤。由漂浮在磁盤上方的空氣薄膜上的磁頭,從磁盤磁性地讀取資料,並將資料磁性地寫入磁盤。這些磁盤通常以每分鐘4,200轉至每分鐘15,000轉(4,200rpm-15,000rpm)的速度旋轉。硬碟機具有數個缺點,包含相關於旋轉碟片與移動磁頭的機械本質的存取時間、高電力消耗、機械失效、以及低抗衝擊性。
固態硬碟機(Solid State Drives;SSDs)為使用積體電路來儲存資料的非揮發性儲存裝置,且因此不包含移動的零組件。SSDs具有優於硬碟機的數個優點,包含較高的抗衝擊性、較低的存取時間、以及更可變的形狀因素。此外,SSDs在作業期間消耗的電力通常比硬碟機要少得多。因此,SSDs
允許了較小、較薄的裝置外形,並在電池充電上允許更長的作業時間。
本發明的一種態樣相關於一種固態硬碟機,包括:DRAM邏輯快閃;以及快閃記憶體;其中系統匯流排讀取與寫入DRAM邏輯快閃且不讀取與寫入快閃記憶體。
本發明的一種態樣相關於一種用於操作固態快閃裝置的方法,包含以下步驟:由CPU藉由使用快閃指令與格式化以傳送指令與資料至DRAM邏輯快閃,來寫入固態硬碟機,其中DRAM邏輯快閃的容量如同在固態裝置中多個個別的快閃記憶體模組的經結合工作區域。
本發明的一種態樣相關於一種在固態硬碟機中的快閃記憶體模組,包含:複數個快閃晶粒;以及快閃記憶體控制器,包含:微處理器;複數個記憶體緩衝器;匯流排DMA介面,匯流排DMA介面將來自外部匯流排的資料直接存入複數個記憶體緩衝器中;以及快閃DMA模組,快閃DMA模組直接存取複數個記憶體緩衝器中的資料,並從第一記憶體緩衝器將資料傳輸至快閃晶粒,且同時匯流排介面正將來自外部匯流排的資料存入第二記憶體緩衝器中。
500‧‧‧寫入作業
505-550‧‧‧步驟
600‧‧‧讀取作業
605-618‧‧‧步驟
700‧‧‧快照作業
705-720‧‧‧步驟
800‧‧‧快載作業
805-825‧‧‧步驟
900‧‧‧回復作業
905-945‧‧‧步驟
1000‧‧‧刪除檔案回復作業
1005-1025‧‧‧步驟
附加圖式圖示說明本文所說明之原則的各種範例,且作為本說明書的部分。所圖示說明的範例僅為範例,且不限制申請專利範圍的範圍。
第1圖為根據本文所說明之原則的一個範例的,說
明性固態硬碟機架構的方塊圖。
第2圖為根據本文所說明之原則的一個範例的,快閃記憶體模組的方塊圖。
第3圖為根據本文所說明之原則的一個範例的,併入第2圖圖示之快閃記憶體模組的說明性固態硬碟機架構的方塊圖。
第4圖為根據本文所說明之原則的一個範例的,發生於CPU/CPU記憶體、DRAM邏輯快閃、以及快閃記憶體之間的各種交易與程序的示意圖。
第5A圖圖示根據本文所說明之原則的一個範例的,在寫入資料至固態硬碟機期間內的資料流。
第5B圖為說明根據本文所說明之原則的一個範例的,寫入資料至固態硬碟機之方法的流程圖。
第6A圖圖示根據本文所說明之原則的一個範例的,在從固態硬碟機讀取資料至CPU記憶體期間內的資料流。
第6B圖為說明根據本文所說明之原則的一個範例的,從固態硬碟機讀取資料至CPU記憶體之方法的流程圖。
第7圖為根據本文所說明之原則的一個範例的,儲存系統狀態的快照的方法的流程圖
第8圖為根據本文所說明之原則的一個範例的,用於從SSD快載程式檔案至CPU記憶體的說明性方法的流程圖。
第9圖為根據本文所說明之原則的一個範例的,用於資料傾印/回復的方法的流程圖。
第10圖為根據本文所說明之原則的一個範例的,用於錯誤處理檔案回復的方法的流程圖。
在所有圖式中,相同的元件編號代表類似的(但不必要為相同的)元件。
固態硬碟機(SSDs)為使用積體電路(諸如NAND快閃記憶體)存取資料的非揮發性儲存裝置。SSDs具有數個優點,諸如高抗衝擊性、低電力需求、較快的存取時間、以及更可變的形狀因素。然而,作為固態硬碟機中記憶體的積體電路具有有限的生命期。NAND快閃的典型規格說明NAND快閃在失效之前僅能可靠地被使用1000-3000個寫入/抹除週期。此生命期限制特別帶來問題,因為在當前的架構中,NAND快閃的區塊必須在每一次區塊包含資料的任何部分被改變時被抹除並重寫。因此,SSD硬碟機被越常使用,SSD硬碟機就會失效得越快。許多作業系統時常要寫入非揮發性記憶體。例如,檔案存取表(FAT表)在每一次檔案改變時被重寫。每一次FAT表更新,包含多個抹除/寫入週期。此外,許多作業系統週期性地將計算裝置當前狀態的「快照」存入非揮發性記憶體。儘管此對於回復計算裝置作業而言可為有益的,慣常地將大型快照存上NAND快閃,可顯著地縮短SSD的生命期。因此,SSDs可無法達到消費者的期望,且SSDs可需要時常的更換。
下文說明允許有效率地將快閃記憶體作為非揮發性儲存,不論快閃記憶體的有限抹除/寫入週期數量的數個原
則。下文所說明的固態硬碟機(SSD)架構,藉由產生DRAM邏輯快閃以作為快閃記憶體之間的中介,且隨後獨立地評估何時需寫入NAND快閃記憶體,來處理NAND快閃記憶體的限制。此顯著地提升了SSD的操作速度與生命期,並允許SSD作為硬碟機的隨插即用(plug and play)替代方案。
計算裝置內的資料使用,通常分為兩類:在資料產生/操縱期間的高使用量,以及在資料被達成或儲存為功能性程式時之要低得多的低使用量。說明性SSD分離了儲存相關於計算裝置暫態狀態與快閃之永久儲存能力的資料的程序。
在計算裝置被關閉電力時,計算裝置的揮發性記憶體儲存的資料遺失。下文說明的SSD,藉由允許在程式或資料檔案產生期間儲存資料,並在計算裝置被關閉電力時保護資料不致遺失,來協助產生資料檔案。
SSD包含管理最佳數量的快閃記憶體裝置的數個快閃介面控制器。在像是USB2裝置的單純系統中,可使用一個中間控制器直接管理快閃。然而在高速系統中,可並行操作數個控制器以更快速地管理資料。下文說明的原則亦可被應用於廣泛的各種匯流排與裝置科技,包含SATA 3(每秒500百萬位元組(megabytes;MB))、USB 3.0“Superspeed”裝置、包含USB 3.0固態硬碟機與儲存裝置。USB 3.0規格規範上至每秒4.8十億位元(gigabits;GB)的傳輸速率、提升的最大匯流排電力、以及更有效率的電力管理。
在下文說明中,為了解釋,揭示數個特定的細節以提供對本系統與方法的通透瞭解。然而在本發明領域中具有
通常知識者將可顯然而知,本設備、系統、與方法的實施可不需要這些特定的細節。說明書中對於「範例」或類似語言的參照,表示連同範例說明的特定特徵、結構、或特性至少被包含在此範例中,但不必需被包含在其他範例中。
在下文的數個實例中,說明包含至少一個微處理器、唯讀記憶體(ROM)、與隨機存取記憶體(RAM)的控制器。微處理器、ROM、與RAM協作以實施控制器的功能。可使用具有不同控制及/硬體實施的不同微處理器,以實施本文所說明的原則。
第1圖圖示包含邏輯快閃與非揮發性快閃記憶體的固態硬碟機的一個實施。邏輯快閃包含獨立控制器與揮發性記憶體節段(segment)。邏輯快閃經配置以實施快閃控制器的所有功能,而使中央處理單元(CPU)以為中央處理單元正讀取與寫入快閃,而此時中央處理單元事實上正讀取與寫入邏輯快閃。邏輯快閃實施快閃記憶體行為,但不具有快閃記憶體的生命期、速度、或處理限制。邏輯快閃儲存檔案的方式與快閃記憶體相同,並回應於快閃指令。再者,邏輯快閃使用FAT表、更新邏輯記錄、結合檔案、並附接於SATA 3匯流排。因為邏輯快閃的揮發性記憶體事實上具有無限的讀/寫週期數量,系統處理器與作業系統可依所需儲存任何數量的更新與快照。再者,邏輯快閃讀取與寫入資料的速度極快。CPU讀取邏輯快閃並專一地寫入邏輯快閃,同時對快閃記憶體的寫入與讀取係由固態硬碟機專一地控制。使用邏輯快閃,允許以全介面速度處理所有快閃指令,並將對快閃記憶
體的寫入最小化。此係不同於快取,因為快取最終將所有資料寫入快閃記憶體,且快閃僅實施以提升速度並處理短讀取與寫入。
SSD內的主控制器獨立決定何時資料需被傳輸至快閃記憶體,或被從快閃記憶體傳輸出。此顯著地減少了快閃記憶體的寫入/抹除週期數量,因為CPU不直接存取快閃記憶體。
快閃記憶體包含數個快閃記憶體模組。每一快閃記憶體模組包含獨立控制器與數個快閃晶粒。藉由使用獨立控制器,SSD可並行執行多個作業。此產生顯著地較快的讀取與寫入時間。
下面的段落說明發展併入邏輯快閃與多個控制器的SSD的各種原則。在當下,就每十億位元組儲存量而言,SSDs比硬碟機要來得貴。此主要係因為用於儲存在SSD中儲存資料的非揮發性記憶體晶粒的成本。記憶體晶粒通常為快閃記憶體,雖然已有其他記憶體類型被提出,包含鐵電隨機存取記憶體(FeRAM)、磁阻性隨機存取記憶體(MRAM)、可編程金屬化單元(PMC)、相位改變記憶體(PCM)、與其他科技。這些非揮發性記憶體類型之每一者具有優點與缺點。然而,快閃記憶體為最成熟的科技,且對於每單位儲存容量具有最低的成本。存在兩個主要的快閃記憶體類型:NOR型與NAND型。NOR快閃與NAND快閃兩者在由浮動閘極電晶體所製成的記憶體細胞元中儲存資料。這些浮動閘極電晶體在消耗開始讓儲存完整性退化之前,具有有限的編程-抹除
週期數量。例如,NOR快閃記憶體可具有100,000個週期的典型耐久額定量,而NAND快閃記憶體可具有1,000至3,000個週期的典型耐久額定量。
NOR型快閃記憶體允許單一位元組被獨立地寫入及/或讀取。然而,此隨機存取特徵使NOR記憶體的每單位面積較不密,並使每單位儲存較昂貴。NAND型快閃是非常高密度的且每單位儲存具有相當低的成本。然而在當前的晶片架構中,NAND型快閃必須被以較大的節段(稱為區塊)來讀取與編程。此限制是顯著的,因為改變區塊中的單一位元,需要將區塊中的整個寫入空間抹除並重寫。為了解釋,在固態硬碟機架構的說明性範例中將使用NAND型快閃。然而,本文所說明的原則可被應用至廣泛的各種非揮發性記憶體類型。
如上面所討論,NAND型快閃不昂貴且緊密,但具有在消耗開始讓儲存完整性退化之前,具有有限的編程-抹除週期數量的缺點。在可由位元層級讀取NAND型快閃的同時,NAND型快閃需被以大節段(「區塊」)寫入並抹除(而非以位元層級)的事實,更加重了此挑戰。因此,在區塊中的任何位元改變時,區塊中的所有資料必需被複製到新的區塊。在複製程序期間內,新的一或多個位元被併入儲存於新區塊上的資料中。隨後,舊區塊被抹除並再次使用。在許多計算裝置上的程式與作業系統時常讀取與寫入硬碟機,此可造成NAND快閃的快速退化。在這些工業標準作業中,改變區塊中的一個位元,即可需要複製與抹除整個區塊。在下文
討論中,說明提供保持區塊直到區塊填滿,且僅更新已被寫入的分頁的原則。
在一些Apple®作業系統中,使用者的檔案被持續寫入硬碟機,以允許使用者將機器回復至先前的狀態。不僅是系統回復至最新的狀態,存在允許將系統回復至任何早至數月前的先前狀態,稱為「時光機器(time machine)」的程式。此程式壓縮快照,並允許回復至某一天,但不是那一天之內的任何時期。然而,可維持快照為可能回復至先前數天內的特定點。此時光機器特徵對於回復被錯誤處理或遺失的檔案而言可非常有用。回復至產生錯誤之前的時間,允許檔案與系統狀態的完整回復。
這些與其他時常發生的寫入作業,可造成快閃記憶體早期失效,因為受限的寫入/抹除週期量可快速地被超過。每一新寫入需要將舊資料複製到新區塊,以增加新資料。如上文討論,NAND記憶體中的每一記憶體位置可僅被更新1,000至3,000次之層級,而不大量提昇失效的可能性。存在許多試著處理此問題的演算法,諸如以備用件將記憶體預留空間(over-provisioning),以及試圖將消耗均等地分散到整個快閃記憶體,而非將消耗集中於相同區塊的平均抹除(wear leveling)演算法。然而,這些技術可提昇成本,並降低固態硬碟機的效能。
下面的範例說明各種固態硬碟機(SSD)架構、方法以及原則。這些SSDs併入快閃記憶體以提供非揮發性儲存,且這些SSDs被設計為具有比習知的SSD長一個量值層
級的生命期,且這些SSDs以全匯流排速度操作而不受快閃記憶體限制的影響。
說明性快閃記憶體模組
第2圖為說明性快閃記憶體模組的簡圖。如上文討論,快閃記憶體為可被電氣抹除並重編程的非揮發性電腦儲存。如上文討論,快閃記憶體具有對機械衝擊的高抵抗性、小足跡、相較於動態隨機存取記憶體(RAM)而言相對快的讀取時間、高能源效率、並可儲存資料數年而不需電力。快閃記憶體被用於各種應用中,包含個人電腦、行動裝置、數位攝影機、電玩遊戲、科學儀器、工業機器人、生醫電子、以及其他裝置。快閃記憶體具有數個限制,包含慢的寫入時間以及受限的生命期。對於快閃記憶體,寫入時間通常比讀取時間大一個量值層級。各種快閃記憶體類型的生命期,通常為1000至3000個抹除週期。抹除快閃記憶體造成遞增性的傷害,而遞增性的傷害終究將導致快閃記憶體中記憶體機制的失效。
第2圖圖示的說明性快閃記憶體模組包含數個NAND快閃晶粒。記憶體控制器包含處理器、少量的隨機存取記憶體(RAM)、少量的唯讀記憶體(ROM)、以及數個記憶體緩衝器。此記憶體控制器的範例揭露於Charles I.Peddle所提出、名為"High Speed USB Controllers"、代理人案件編號為034901-303891的美國專利申請案第61/774,175號,該申請案在此併入全文以作為參照。例如,記憶體控制器可為基於6502處理器、具有20千位元組的處理器可定址
RAM、40千位元組的ROM以儲存作業碼、以及八個記憶體緩衝器。記憶體控制器接受來自外部匯流排的資料、在緩衝器中累積資料、並將資料寫入NAND快閃晶粒。外部匯流排可為USB匯流排或高速內部匯流排。
記憶體控制器亦包含高速直接記憶體存取(DMA)與快閃DMA。一般而言,DMA協定包含位址計數器,位址計數器自動並漸進地在資料傳輸期間內遞增記憶體位址。DMA協定亦包含追蹤所傳輸的位元組數量的計數器。為了開始DMA傳輸,給定兩個指令、記憶體位置開始處、以及告訴DMA要傳輸多少位元組的計數。DMA獨立地從所指定的記憶體位置開始傳輸資料,直到計數耗盡為止。DMA協定的目的,為允許至記憶體(以及自記憶體)的全速度傳輸,而不需要外部輸入(除了記憶體時脈與致能訊號)。此完全消除了對於微處理器直接涉及資料傳輸的需求。此致能了較高的傳輸速度,因為資料傳輸不受限於微處理器速度,亦不受限於在MPU被重導向至不同工作時被中斷。
在此申請案中,存在具有不同功能性的兩個獨立DMAs。高速DMA(「匯流排DMA」)控制從高速匯流排至記憶體緩衝器庫的資料傳輸,而快閃DMA傳輸資料至快閃以及從快閃傳輸資料。在一個具體實施例中,從高速匯流排傳輸至記憶體緩衝器的資料為最高優先度的程序,且為中斷驅動。至快閃(或從快閃)的資料移動係由輪詢(polling)完成,因為程序可被小擾動中斷。再者,輪詢產生對於至快閃記憶體的時序訊號的正控制。
使用兩個個別的DMA模組(高速DMA模組與快閃DMA模組)提供了數個優點。首先,藉由包含兩個個別的DMA模組,可同時將資料寫入記憶體緩衝器並從記憶體緩衝器讀取資料。此外,個別的DMA模組可不同地操作,並可不同地被控制,以協助資料傳輸。例如,高速DMA可以高速時脈操作並寫入資料至一個記憶體緩衝器,同時快閃DMA正以較慢的速度從不同的記憶體讀取出資料。相對而言,快閃DMA可以快閃時脈操作,並可由輪詢操作。此外,快閃記憶體模組產生、儲存、並使用錯誤校正碼(ECC),來自動回復因寫入失效及/或儲存失效而具有有限錯誤數量的資料。除了在高速匯流排上接收到的資料以外,快閃記憶體模組亦寫入額外資訊至快閃記憶體,包含耗損數量、邏輯記錄數量、更新數量、以及其他資料。此程序將於下文更詳細說明。暫存器可以各種時脈速率執行,且可切換於各種功能之間。
上文給予的結構與架構僅為一個快閃記憶體裝置範例。可使用各種其他結構。例如,架構可包含較大的記憶體緩衝器、較大的磁區尺寸、更多記憶體緩衝器、不同數量的記憶體緩衝器、以及不同數量的快閃晶粒。
說明性固態硬碟機架構
第3圖圖示併入數個快閃記憶體模組(諸如上文對於第2圖所說明的模組)的SSD架構的說明性範例。SSD架構能夠保持SATA資料速率,並緩解NAND快閃記憶體受限的生命期。在此範例中,在SSD外部的中央處理單元(CPU)被連接至SATA匯流排。SSD磁碟機經由SATA匯流排接受
資料輸入、指令、並輸出資料。此輸出資料初始地被儲存於DRAM邏輯快閃中。DRAM邏輯快閃包含DRAM控制器以及大動態隨機存取記憶體(DRAM)庫。DRAM邏輯快閃被連接至高速內部匯流排。除了對DRAM邏輯快閃的連結之外,高速內部匯流排被連接至快閃記憶體裝置庫,以及主控制器。在一些具體實施例中,可存在控制高速內部匯流排作業的個別匯流排控制器。或者,主控制器與匯流排控制器的功能性可被結合,使得主控制器執行匯流排控制器的功能。高速內部匯流排允許這些實體之任意者之間的雙向通訊。匯流排控制器(或作為匯流排控制器的主控制器)獨立選擇將要接收或傳送資料的裝置。此允許對每一裝置分別控制(且在一些範例中為循序控制)資料流。例如,DRAM控制器可接受來自SATA匯流排的資料,同時匯流排控制器正將資料傳輸出DRAM並傳輸入快閃記憶體裝置。這些同步的作業允許更有效率的作業,以及較高的總和處理量。快閃作業可具有時間性的變異,所以資料的最終同步化係由管理高速匯流排並與邏輯快閃控制器協作的主/匯流排控制器完成。此平衡化的作法,允許SATA介面或其他介面在讀取SSD或寫入SSD時以全匯流排速度執行。
控制器
SSD架構使用數個控制器來管理內部資料流。主控制器接收來自計算裝置的中央處理單元的指令,並管理固態快閃硬碟機的作業,以執行指令。主控制器導向匯流排的作業、每一快閃記憶體裝置中的快閃記憶體控制器、以及邏輯
快閃控制器。在一個實施中,這些控制器之每一者為如所說明的單純微處理器系統。根據一個說明性範例,控制器之每一者(主控制器與可選的匯流排控制器、DRAM控制器、八個快閃控制器),為完全獨立於控制器自身的微處理器、用於儲存碼的ROM、RAM、與暫存器庫的獨立系統。例如,控制器可基於6502處理器與32千位元組RAM以及24千位元組ROM的結合。邏輯快閃控制器藉由控制DMA傳輸與介接邏輯快閃控制器,來管理出入DRAM的資料傳輸。邏輯快閃控制器在主控制器的指示下管理DRAM邏輯快閃。主控制器管理DRAM與快閃記憶體之間的資料傳輸。個別快閃控制器處理用於快閃記憶體的分頁模式結構、錯誤校正、以及平均抹除。每一快閃記憶體裝置中的記憶體控制器,管理高速內部匯流排與NAND快閃晶粒之間的資料傳輸。
使用多個內部控制器提供數個益處。控制器可執行對控制器所控制的裝置特定調適的專屬功能,同時有彈性地與其他控制器協作。例如,記憶體控制器可以第一時脈速度與高速匯流排介接,並以不同的時脈速度管理正被寫入NAND快閃晶粒的資料。此外,記憶體控制器可在記憶體控制器完成工作時告知主控制器。此允許主控制器智慧型地分配資源,以最大化資料傳輸速率。
直接記憶體存取介面
直接記憶體存取(DMA)介面管理連接至匯流排之每一控制器的資料傳輸。如上文討論,DMA為由硬體實施的協定,DMA允許電腦內的硬體子系統獨立於控制器而存取系
統記憶體。控制器可起始傳輸、在傳輸進行時進行其他工作、並在傳輸完成時接收來自DMA控制器的回饋。例如,SATADMA處理從SATA匯流排至DRAM邏輯快閃的資料傳輸。匯流排DMA處理DRAM邏輯快閃與高速內部匯流排之間的資料傳輸。類似地,高速內部匯流排與每一快閃記憶體裝置之間的DMA介面,管理出入快閃記憶體裝置的資料傳輸。
使用DMA技術,維持寫入快閃以及傳輸資料至/自介面兩者的速度。如上文討論,DMA協定包含位址計數器,位址計數器自動並漸進地在資料傳輸期間內遞增記憶體位址。DMA協定的目的,為允許跨介面的全速度傳輸,而不需外部輸入(除了記憶體時脈與致能訊號)。此完全消除了對於微處理器需直接涉及資料傳輸的需求,並致能較高的傳輸速度,因為資料傳輸不受限於控制的處理器,或在控制的處理器被重導向至不同工作時被中斷。
為了開始DMA傳輸,控制的處理器可載入位址、對於DMA作業數量的計數、以及其他致能功能至控制暫存器。隨後,資料傳輸作為對於控制暫存器中參數的功能而發生。DMA可經配置而使其他資料在傳輸期間內可被加入,諸如錯誤校正資料、邏輯記錄、以及內務處理功能。DMA協定可觸發各種回應,以告知控制的處理器資料傳輸以完成,或提供狀態更新。此允許資料在DMA傳輸完成後即可被存取。此外,使用中斷以告知資料傳輸狀態,允許在SSD內的多個記憶體儲存部件之間的輪詢型資料並行分配。
DRAM邏輯快閃
DRAM邏輯快閃中的DRAM使用電容器陣列以儲存資料。電容器可被充電或放電。這兩個狀態代表位元的兩個值。由於電容器洩漏電荷,電容器的狀態終究會消失,除非電容器的電荷被週期性地更新。此更新以10至100毫秒之層級的時間間隔發生。DRAM非常單純、具有可忽略的讀取/寫入週期消耗、並可被非常密地封裝至晶粒上。此外,DRAM提供極快的寫入時間與讀取時間(為10至100奈秒之層級)。DRAM的作業係由DRAM控制器控制。在此範例中,DRAM具有8GB第三代雙倍資料率同步動態隨機存取記憶體(DDR3SDRAM)的總容量。在其他實施例中,DRAM可具有較大(例如16GB)或較小的記憶體量。考慮電力管理,DRAM可操作於800MHz之時脈速度。然而,設計中可包含任何適合的DRAM時脈速度與DRAM量。DRAM邏輯快閃以與快閃相同的方式儲存檔案,並回應快閃指令。再者,DRAM邏輯快閃使用檔案分配表、更新邏輯記錄、結合檔案、並被附接至SATA匯流排。
因為數個理由,DRAM邏輯快閃不為快取。例如,快取為CPU找尋資料的替代位置。若資料不在快取中,則CPU存取下層的非揮發性記憶體。相對的,DRAM邏輯快閃為SSD中唯一可被CPU直接存取的記憶體。實際的NAND快閃係由主控制器控制,且不可被CPU直接存取。DRAM邏輯快閃作為CPU與NAND快閃之間的守門員。藉由分離NAND快閃與CPU指令,NAND快閃不經受作業系統的數種特質,包含時常的寫入。此允許作業系統不需修改而能執行,同時並保護
NAND快閃的生命期。
資料與檔案僅被儲存在DRAM邏輯快閃中,直到被刪除或未觀察到活動。一般而言,DRAM邏輯快閃中的資料被對於資料的使用者控制的邏輯記錄來組織,並被FAT表參照,以控制各種資料記錄的作業。然而在一些實例中,DRAM邏輯快閃可接收、儲存、並傳輸資料,而不使用邏輯記錄。例如,下文說明的快照(Snapshot)與快載(FastLoad)程序不使用邏輯記錄。然而,將資料移出DRAM邏輯快閃至快閃記憶體的所有資料傳輸模式,係僅由主控制器管理。主控制器可基於數個因素(包含檔案少被使用)來決定何時資料或檔案被移出DRAM邏輯快閃。主控制器所接收的CPU指令可對將資料移出/移入快閃的主控制器有一些影響力,但實際上決定取出資料或寫入資料的是主控制器。例如,若CPU要求資料檔案,則主控制器決定檔案是否在DRAM邏輯快閃中。若所要求的資料不在DRAM邏輯快閃中,則主控制器將資料從快閃取出,並將資料儲存於DRAM邏輯快閃中。
在一些實例中,檔案及/或資料可僅被儲存在DRAM邏輯快閃中,且從未傳輸至快閃記憶體。例如,可對暫態作業(諸如搜尋)產生暫時資料檔案。在其他範例中,可對將傳送至另一系統或由遠端系統儲存的信件或電子郵件產生檔案。在檔案被傳送至遠端系統中時,檔案可被刪除。
快取在CPU看來如具有實際存在於快取中的實體記憶體數量。相對的,DRAM邏輯快閃看來如具有較DRAM邏輯快閃的實體記憶體容量為大的容量。DRAM邏輯快閃看來
具有相等於NAND快閃工作中的總和非揮發性記憶體的容量。
快取在CPU看來如揮發性記憶體。相對的,DRAM邏輯快閃看來為極快的非揮發性記憶體。在CPU寫入資料至快取時,CPU不假定資料實際上位於非揮發性儲存中。CPU持續管理資料流,直到資料實際上被儲存於接續快取之後的非揮發性儲存中。在快取突然未經期望地損失電力時,快取中的資料遺失,且CPU必需在遺失資料的情況下回復。所有快取交易不是失效,就是被寫入非揮發性快閃記憶體中,而提升損耗並使系統延遲。
相對的,CPU與作業系統假定DRAM邏輯快閃為非揮發性記憶體儲存。DRAM邏輯快閃報告寫入至DRAM邏輯快閃的資料係儲存於非揮發性快閃記憶體上,即使資料實際上是儲存在DRAM邏輯快閃中。在對SSD的電力中斷時,CPU正確地假定儲存在DRAM邏輯快閃中的資料是儲存於非揮發性記憶體中。此是正確的,因為SSD具有自包含以及自供電系統,以將DRAM邏輯快閃中的資料傾印至NAND快閃。在一個實施例中,NAND快閃經配置以提供額外的備用件,以容納所有可被儲存在DRAM邏輯快閃中的資料的資料傾印。
快取被設計以最小化對儲存在較慢記憶體中的資料的存取時間。在典型的快取作業中,快取儘快地將資料寫入非揮發性儲存,但快取持續保持所寫入的資料以最小化存取時間。相對的,DRAM邏輯快閃經設計以最小化對下層記憶體的寫入。SSD中的主控制器僅將當前未被使用的資料作為
目標,以從DRAM邏輯快閃傳輸至快閃記憶體。
高速內部匯流排
如上文所討論,高速內部匯流排允許與高速內部匯流排連接的這些部件之任意者之間的雙向通訊。在一個範例中,主控制器個別地在高速內部匯流排上將資料導向至記憶體控制器。為了實施對快閃的寫入傳輸,邏輯快閃控制器/介面將DRAM邏輯快閃連接至高速內部匯流排,並使用DRAMDMA以進行對所指定檔案位置的傳輸。使用此技術,資料可被直接從CPU傳輸通過DRAM邏輯快閃至快閃記憶體。例如,高速內部匯流排的寬度可為8位元,且能夠以至少每秒400百萬位元組(MB)的速度操作。在操作於400MHz(或更高)的8位元匯流排上的資料傳輸速率,將約為每秒400MB。
快閃記憶體裝置
如上文針對第2圖所討論,每一快閃記憶體裝置包含記憶體控制器以及製成快閃記憶體的數個NAND快閃晶粒。快閃記憶體被分成磁區(sectors)、分頁(pages)、區塊(blocks)、以及平面(planes)。在此範例中,磁區約為512位元組,且具有用於標頭與錯誤校正碼(ECC)資訊的額外空間。在其他實施例中磁區可為較大。分頁為一組磁區,區塊為一組分頁,而平面為分頁的集合。在一個範例中,分頁包含用於資料的8192位元組以及用於標頭資訊的額外空間。區塊可為256分頁群組,且平面為2096區塊群組。裝置可包含任何數量的平面。例如,32GB裝置可包含2個平面(8,192個區塊)。256GB裝置可包含16個平面(65,536區
塊)。通常,在不可回復性(或不可維修性)快閃資料錯誤發生於節段中時,整個區塊會被標記為損壞。然而,藉由使用分頁模式控制器,僅有發生錯誤的分頁被標記為損壞且被映射至周圍。此係進一步說明於Charles I.Peddle所提出的美國專利第8,122,319號,該專利在此併入全文以作為參照。
如上文所討論,在習知技術中,在快閃記憶體區塊中的分頁之一者中的單一位元為不可操作時,整個分頁被視為不可使用。因此,缺陷位元可將快閃記憶體的儲存容量減少128KB或更多。在多個缺陷位元分散於許多區塊時快閃記憶體可無法符合容量標準且可被拋棄。然而,每一失效區塊內仍殘留許多能完整作業的分頁。如下文所示,藉由識別不可操作的分頁,而非不可操作的區塊,可重新取回快閃記憶體的許多儲存容量。
使用各種指令以存取快閃記憶體。例如,對快閃記憶體的讀取與寫入指令,可對單一分頁操作。然而抹除指令則影響整個區塊。除了區塊抹除作業之外,幾乎所有作業可對單一分頁執行。一旦區塊中的所有分頁被抹除,則分頁可被選擇性地以避開不可操作分頁的方式來寫入。
雖然快閃記憶體自身可不包含邏輯以僅選擇區塊內的可操作分頁,但記憶體控制器可經配置以僅對可操作分頁進行識別、選擇、與操作。記憶體控制器可被實施為與快閃記憶體分離且相異的半導體晶片。記憶體控制器協調至快閃記憶體與自快閃記憶體的資料傳輸。記憶體控制器藉由傳送適當的指令與記憶體位址至一或更多個快閃裝置,以處理來
自外部裝置的要求。根據一個具體實施例,記憶體控制器可產生晶片選擇訊號、區塊選擇訊號、列選擇訊號、以及行選擇訊號,以發送至一或更多個快閃記憶體。記憶體控制器亦可監測控制訊號、狀態訊號、時序條件、以及至快閃記憶體裝置與自快閃記憶體裝置的資料傳輸的其他觀點。
記憶體控制器可將來自外部系統的虛擬記憶體位址(諸如邏輯紀錄),轉譯成一或更多個快閃記憶體裝置上的實體位址。記憶體控制器可接收來自要求某些資料的處理器的查詢。作為回應,記憶體控制器可決定所要求的資料被實體地儲存在一或更多個快閃記憶體裝置中的對應區塊、分頁、以及位元組。隨後,記憶體控制器可發出正確的控制訊號與記憶體位址值序列至快閃記憶體裝置,以取得所要求的資料。
類似地,記憶體控制器可將寫入要求轉譯成適當的區塊抹除指令、位址選擇指令、以及寫入指令序列,以儲存資料於快閃記憶體裝置上。實際上,記憶體控制器可允許各種系統與部件存取快閃記憶體裝置的儲存,同時隱藏快閃記憶體裝置的分頁模式介面的複雜性。例如,在快閃記憶體裝置中先前所寫入的資料被更新時,舊資料與新資料被寫入新區塊,且舊區塊被抹除。記憶體控制器可產生並執行正確的作業序列,以執行儲存作業。記憶體控制器亦可識別那些區塊包含足以完成作業的可操作分頁數量。在資料被從來源區塊傳輸至目標區塊處,目標區塊被選擇為包含至少與來源區塊相同的儲存空間量,但目標區塊仍可包含一或更多個不可
操作分頁或磁區。
為了追蹤每一區塊內的可操作分頁數量,記憶體控制器可建置「良好分頁」表、「損壞區塊」表、具有對於記憶體每一分頁的「良好」或「損壞」指示的表、或其他指示符。「損壞區塊」表可識別不可操作分頁且因此間接識別可操作分頁。隨後,記憶體控制器或其他元件可經配置以讀取並寫入除了被列為不可操作的分頁以外的任何分頁。可操作分頁的指示,可包含一或更多個參照、指標、位址、表、列表、組、識別符、標籤、符號、標記、碼、或方程式、或其他可允許可操作分頁被識別的資訊。
在一個具體實施例中,可操作分頁表可被儲存於快閃記憶體的經指定的一或更多個區塊中。例如,可在指示不完整、不可讀取、遺失、或受損害時,由記憶體控制器對整個快閃記憶體裝置進行通透測試。此類型的測試可在記憶體控制器及/或快閃記憶體裝置被第一次電力開啟時進行。可在快閃記憶體裝置作業期間內執行額外測試(例如藉由錯誤校正碼(ECC)模組),以偵測在使用期間失效的分頁。在快閃記憶體作業期間內使用的錯誤偵測方法,可包含(但不限於)產生校驗和(checksums)、比較校驗和、執行冗餘校驗、產生同位(parity)值、執行同位校驗、與執行其他錯誤偵測演算法。若在分頁中偵測到失效,則ECC模組可警示快閃控制器已發生失效,或是進度中的作業不成功。隨後,快閃控制器可在新分頁中重複作業,或者校正錯誤。若分頁具有可回復並可重複的錯誤,則此分頁被捨棄。隨後,主控制器採取
適當行動以使這些分頁在表中的指示排除這些分頁。此後,缺陷分頁將不被使用。
在一或更多個指示被更新時,內部作業與資料傳輸可被完成,以對存取快閃記憶體裝置的系統(從而對快閃記憶體裝置的使用人)隱藏失效與重新配置。因此,失效將不會打擾使用者的總體經驗,且將不會需要外部系統的補償。根據一個具體實施例,此可由可在初始化、測試、或其他階段期間內保留下來的備用區塊、分頁、及/或磁區來完成。在失效發生時,可由備用區塊、分頁、及/或磁區來替換失效的區塊、分頁、及/或磁區。隨後,可更新一或更多個指示,以反映資料的新邏輯記憶體位址與實體記憶體位址。
總的來說,在快閃記憶體控制器中以分頁為基礎的失效管理,允許記憶體控制器存取「良好分頁」表,或其他對於快閃記憶體區塊內每一分頁功能性的指示符。隨後,記憶體控制器可使用每一區塊中的可操作分頁執行讀取指令、寫入指令、與抹除指令,即使區塊包含一或更多個不可操作的分頁。使用分頁模式,顯著地延長了快閃記憶體的生命。再者,使用分頁模式允許更有效率地使用具有較低額定生命期及/或較高錯誤數量的快閃記憶體。在實施如上文所說明的分頁模式失效管理的裝置中,這些具有錯誤的快閃記憶體晶片可被有效率地使用且具有被延伸的生命期,而非被捨棄。
記憶體控制器接受來自使用DMA協定的高速內部匯流排、在記憶體控制器內部緩衝器中累積資料、並將資料寫入NAND快閃晶粒。每一快閃記憶體模組經配置以提供每
秒約40MB的資料傳輸速度至快閃晶粒與自快閃晶粒。這些平行快閃記憶體模組可具有數種配置,包含說明於Charles Peddle所提出、名為"High Speed USB Controllers"、代理人案件編號為034901-303891的美國專利申請案第61/774,175號,該申請案在此併入全文以作為參照。例如,可存在平行的8個快閃記憶體模組。在一個實施例中,每一快閃磁碟機包含四個快閃晶粒。每一快閃晶粒包含8GB儲存空間,使得總和快閃儲存空間為256GB。這些磁碟機經配置為平行操作,以對於資料寫入提供每秒約320MB的傳輸速率。從快閃記憶體讀取資料要比寫入資料至快閃記憶體快得多。因此,快閃記憶體模組在讀取作業期間可展示對應的較高資料傳輸速率。
在CPU記憶體、DRAM邏輯快閃、與快閃記憶體之間移動資料
第4圖為圖示用於在CPU記憶體、DRAM邏輯快閃、與快閃記憶體之間傳輸資料的各種方法的綜觀的簡圖。用於傳輸資料之方法之每一者在下面的圖式與說明中更詳細說明。
第4圖圖示的系統包含CPU,CPU可操作地連接至CPU記憶體。如第3圖圖示,CPU與CPU記憶體藉由系統匯流排(SATA匯流排)被連接至固態硬碟機中的DRAM邏輯快閃。DRAM邏輯快閃藉由高速內部匯流排被連接至快閃記憶體。如上文所討論,DRAM邏輯快閃與快閃記憶體之間的資料移動,係由主控制器獨立管理。主控制器可回應於從CPU
接收的指令而作動,但CPU不具有對快閃記憶體的傳輸的直接控制,且不覺察這些傳輸的發生。
系統可實施記憶體之間的各種資料傳輸,以完成特定目標。一般而言,計算裝置傳送關於稱為檔案的資料集合的指令。指令相當單純:讀取此檔案、寫入檔案、或更新已存檔案。指令作為由主控制器解譯的SATA指令而來到SSD。來自外部匯流排的資料被以全速串流入邏輯快閃,且邏輯快閃控制器被導向以儲存或替換相關聯資料檔案的先前版本。外部匯流排可為SATA匯流排、USB匯流排、或任何其他適當的協定或科技。在計算裝置想要讀取回檔案(或檔案部分)時,初始地將讀取指令給予邏輯控制器,邏輯控制器被導向以從儲存在邏輯控制器記憶體中的資料取得所需的資料。若資料不位於DRAM邏輯快閃中,則資料在主控制器的指示下被從快閃裝置儲存至DRAM邏輯快閃,且隨後被以高速傳輸至計算裝置。此資料被維持於DRAM邏輯快閃中,因為此資料很可能會被更新與重載。
第4圖圖示五個不同資料傳輸技術的說明性範例。第一個技術為使用邏輯紀錄的資料傳輸,此於第5A圖、第5B圖、第6A圖、與第6B圖中更詳細說明。處理器處理邏輯記錄,同時控制器處理實體記錄。使用轉譯表以轉換/索引邏輯記錄與實體記錄之間的關係。對SSD使用的轉譯表不同於在硬碟儲存系統中使用的轉譯表。此資料傳輸技術使用邏輯記錄以索引並儲存來自CPU記憶體的資料至DRAM邏輯快閃的工作區域,如由CPU所指示,且隨後在主控制器的指示下
儲存未被使用的資料檔案至快閃記憶體的工作區域。主控制器亦指示將資料從快閃記憶體工作區域取出至DRAM邏輯快閃的工作區域中,以供CPU記憶體直接取得。
第二個資料傳輸技術為快照流程,快照流程允許系統狀態的快照被週期性地儲存,而使系統可被回復至先前狀態。此技術被更詳細地說明於第7圖中。在此實施例中,資料被傳輸至DRAM邏輯快閃內所指定的快照區域,而不需使用邏輯記錄。可使用其他技術(諸如表)以索引並回復快照資料。在一個範例中,快照根據時間來索引。最近的快照對於回復計算裝置狀態最有價值。較舊的快照在系統使用期間被新的快照覆寫。此儲存最新的快照,以供未來的回復作業使用。快照被儲存於DRAM邏輯快閃中,且不被傳輸至快閃記憶體,直到電力關閉。在電力關閉時,僅將所選擇的快照數量儲存至快閃記憶體,作為傾印程序的部分。此可藉由減少對快閃記憶體的寫入次數,顯著地提升快閃記憶體的生命期。相對的,蘋果筆記型電腦直接將快照儲存至快閃記憶體。此快照作業在筆記型電腦使用期間內時常發生,而造成顯著的快閃損耗。
第三個資料傳輸/儲存技術為第8圖中說明的快載程序。快載程序包含在快閃記憶體中儲存程式檔案的經保護程式區域。在此範例中,快閃記憶體中的經保護程式區域具有兩個分區,一個分區用於所儲存的程式,而一個分區用於活動的程式。快載程序係由不為使用DRAM快閃的標準控制器的部分的額外電路系統與邏輯來實施。在使用者獲得准許以
存取所儲存程式時,快載程序可用以將程式檔案移動至DRAM邏輯快閃中的經保護程式區域。隨後,CPU可從經保護程式區域要求程式檔案被傳送至CPU記憶體以供執行。
第四個資料傳輸/儲存技術為在第9圖中更詳細說明的傾印/回復程序。傾印/回復程序發生在電力關閉或電力中斷時。傾印/回復程序將資料從DRAM邏輯快閃移出至快閃記憶體中所指定的傾印區域。為了回復,計算裝置的電力被回復,且傾印區域中的資料被傳輸回DRAM邏輯快閃,且隨後被傳輸至CPU記憶體。
第五個資料傳輸技術為說明於第10圖中的錯誤處理檔案回復技術。「錯誤處理」代表任何對檔案進行了非意圖與非期望的改變的情況。例如,檔案的所有部分(或一部分)可被刪除,或者所需的檔案可被另一檔案覆寫。錯誤處理檔案回復技術,使得CPU被指示從DRAM邏輯快閃中刪除的檔案,能夠被從DRAM邏輯快閃回復。DRAM邏輯快閃具有潛時週期,在潛時週期期間內被錯誤處理的檔案可維持被儲存在DRAM邏輯快閃中。使用受限制的歷史檔案以索引並回復這些被錯誤處理且仍位於DRAM邏輯快閃上的檔案。下文說明這些技術之每一者。
雖然DRAM邏輯快閃被說明為SSD的完整實體部分,然而在一些實施例中DRAM邏輯快閃可被建置在CPU揮發性記憶體中,且CPU提供對於DRAM邏輯快閃的讀取、寫入、與快閃作業的控制。然而,在習知的CPU/CPU記憶體系統中,並沒有在電力關閉時維持電力且同時將資料傾印至揮
發性CPU記憶體的機制。為了成功地實施本文所討論的原則,計算裝置可具有獨立電力源,以允許儲存在CPU記憶體中的資料被從DRAM邏輯快閃傾印至固態硬碟機中的快閃。
此外,DRAM邏輯快閃可被使用或經配置,以僅執行上文所說明的功能的部分。例如,DRAM邏輯快閃可經配置以提供快載作業或快照作業,而不用於邏輯記錄類型資料傳輸。此可顯著地簡化DRAM邏輯快閃的作業。在其他實施例中,DRAM邏輯快閃可被分區為數個特定運算部分。相關聯於微控制器的揮發性記憶體,可被映射入快照/快載節段(區域)與邏輯記錄節段(區域)中。快照/快載節段可儲存被使用特別協定來傳輸至快閃的資料,且可或不可被由邏輯記錄索引。在一些情況中,可提升DRAM邏輯快閃量以容納此對於個別節段/區域的映射。
例如,非邏輯記錄區域可儲存快照資料或快載資料。非邏輯記錄區域中的資料可或不可被載入快閃中。例如,若記憶體的非邏輯記錄區域包含可用於回復計算裝置狀態的4個快照,則實際上僅有一或兩個最新的快照可在電力關閉時被儲存至快閃。其他較舊的快照被單純地捨棄。
在另一範例中,可將快載程式載入揮發性記憶體的非邏輯記錄區域中。這些快載程式為通常在正常作業期間被修改的程式執行檔,且不被寫回快閃記憶體。存在用於更新程式的替代性邏輯路徑。此替代性邏輯路徑允許軟體開發者更新軟體。限制與協定可限制除了軟體供應者與經授權的軟體開發者以外的任何人存取此區域。此係因為一些對於這些
區域的特定指令不能被揭示予任何未經授權的個人或實體。
為了保護軟體被複製,作業系統可不允許經載入快載的碼被複製到使用者埠或任何其他系統中的埠。一般而言,快載對使用者而言為唯讀功能。此防止使用者修改與散布程式。如上文所討論,協定中可存在僅可由軟體發佈者(或其他經授權的使用者)存取的個別指令,使得僅有軟體發佈者(或其他經授權的使用者)可更新軟體。
在其他範例中,可存在多個個別的記憶體控制器。在一個實施例中,可存在對於記憶體裝置所包含的標準揮發性記憶體的一個控制器,以及對於DRAM邏輯快閃的一個控制器。再者,標準揮發性記憶體可被保護,且不能被使用者及/或計算裝置直接定址或存取。在一些實例中,標準揮發性記憶體可具有特別的限制或用途。在一些具體實施例中,記憶體可視為系統揮發性記憶體的延伸。
將檔案寫入固態硬碟機
在通常的作業中,CPU使用與寫入資料至典型硬碟機相同的協定來寫入檔案至SSD。例如,CPU可使用使用邏輯記錄對SSD進行寫入與讀取的技術。SSD磁碟機的內部作業係獨立於CPU作業且對CPU隱藏。如上文所討論,SSD磁碟機接受來自CPU的資料,但以獨特的方式在內部管理並儲存資料而克服NAND快閃記憶體的速度與生命期限制。然而,SSD磁碟機控制SSD磁碟機與CPU之間的介面,使得SSD磁碟機在CPU看來全然像是正對硬碟機或常見的快閃磁碟機寫入般。因此,SSD為隨插即用記憶體儲存裝置,且可
用於各種計算裝置的任意者中,並通透地提供優越的資料傳輸速率、長生命期、與低電力消耗。
第5A圖為圖示流動通過允許極快的資料傳輸速率的SSD架構的說明性資料流的示意圖。資料初始地被由CPU作業在系統匯流排上傳輸。例如,系統匯流排可為SATA匯流排。資料被使用DMA程序從系統匯流排傳輸至DRAM邏輯快閃。如上文所討論,DRAM邏輯快閃儲存資料,以供CPU在爾後取得。CPU僅覺察到DRAM邏輯快閃,且此DRAM邏輯快閃看來像是極快速的非揮發性固態記憶體,且具有快閃記憶體的記憶體容量。
若主控制器決定了這是適當的,則主控制器決定將資料從DRAM邏輯快閃寫入快閃記憶體。SSD內可存在任何數量的快閃記憶體模組。例如,SSD架構可包含8個快閃記憶體模組。為了說明目的,第5A圖僅圖示這些裝置中的四個。如上文參照第3圖所討論,每一快閃記憶體裝置包含記憶體控制器、緩衝器與數個快閃記憶體晶粒。例如,每一快閃記憶體控制器可控制對4個、8個、或16個個別晶粒的分配。在數個快閃記憶體控制器上的資料分配,提供了數個益處,包含同時寫入多個快閃晶粒。此補償了當前快閃記憶體實施例中固有的相對慢的寫入時間。主控制器對於各種快閃記憶體控制器的獨立性,允許由最小的潛時進行平行資料傳輸。為了致能平行寫入與平行讀取作業,檔案被分到各個快閃記憶體晶粒上。第5A圖圖示說明在每一快閃記憶體晶粒中有經編號的方塊。在檔案被寫入時,主控制器循序地定址各
別的快閃記憶體控制器,快閃記憶體控制器相應地循序地定址他們所控制的快閃晶粒。此造成檔案被散佈在晶粒上,且檔案的各個部分被同時寫入至不同的快閃晶粒。在檔案被從快閃晶粒取得時,可從晶粒平行讀取檔案。此係圖示於第6A圖。
第5B圖圖示寫入檔案至SSD的說明性方法。在第一步驟中,CPU傳送寫入指令,並將要寫入SSD的資料放上SATA匯流排(步驟505)。寫入指令被傳輸至主控制器,主控制器指示DRAM控制器接受資料,並將資料傳輸至DRAM記憶體(步驟510)。DRAM控制器可經配置以辨別指令與其他資料,並在個別的匯流排上將指令傳送至主控制器。在此範例中,DRAM控制器傳送寫入指令至主控制器。在主控制器解譯寫入指令時,主控制器警示DRAM控制器將有新資料來到。DRAM控制器尋找指令中的邏輯記錄,並在DRAM控制器的表中尋找邏輯記錄,以決定資料是否已經包含在DRAM邏輯快閃中。例如,當前邏輯記錄可為另一較大檔案的部分。DRAM控制器能夠藉由找尋每一檔案的開始與結束邏輯記錄,來決定資料是否已經在DRAM邏輯快閃中。若當前邏輯記錄位於每一檔案的開始與結束邏輯記錄之間,則資料當前係儲存於DRAM邏輯快閃中並將被覆寫。為了允許如下文所說明的錯誤處理檔案回復,邏輯記錄資料與對於替換檔案之位址的標註被寫入DRAM邏輯快閃中的新空間。然而,若邏輯記錄不位於DRAM邏輯快閃中且代表新資料,則對新邏輯記錄產生新紀錄,且資料被收集於DRAM邏輯快閃
中。在寫入完成時,檔案分配表(FAT)被更新並由CPU在SATA介面上傳送。在一些作業系統中,每一FAT表入口的儲存可涉及多個冗餘的寫入週期。若SSD要求FAT表,則從DRAM邏輯快閃回應要求。FAT表被儲存在DRAM邏輯快閃中,且僅在電力關閉時儲存至快閃記憶體。此可在快閃記憶體中節省數千次抹除/寫入週期。
邏輯快閃控制器設置SATA DMA,並管理進入DRAM邏輯快閃的資料傳輸(步驟515)。如上文討論,DRAM邏輯快閃中使用的DRAM記憶體為極快速的隨機存取記憶體。DMA傳輸、專屬DRAM控制器、與極快速DRAM記憶體的結合,表示儲存在DRAM邏輯快閃中的資料可被簡易且快速地由CPU以通常受限於SATA匯流排的速度來存取。DRAM邏輯快閃被用於儲存時常被存取的資料。此使SSD中的快閃記憶體裝置絕緣自過量的寫入週期。邏輯快閃控制器將DRAM中的資料視為快閃檔案來管理,包含使用快閃技術來合併與更新資料(步驟520)。此允許DRAM邏輯快閃以相同於標準快閃記憶體的方式(但卻是以高得多的速度)與SATA匯流排介面連接。
SATA資料與快閃資料之間不存在時間相關性。快閃記憶體與儲存在快閃記憶體上的資料,不可被CPU直接存取,但係由主控制器控制。CPU僅與DRAM邏輯快閃介面連接,且指令資料被從DRAM邏輯快閃傳輸至主控制器。邏輯快閃控制器週期性地估計資料的利用率,並決定資料是否應被從DRAM邏輯快閃寫入NAND快閃記憶體(步驟525)。
例如,CPU正使用的檔案可被定期寫入SSD磁碟機,在使用者正使用檔案來工作的時間期間內。在使用者完成使用檔案之後,檔案可休眠數天或數月,在檔案再次被存取之前。儲存在DRAM邏輯快閃中的資料被在所指定的儲存點處寫入NAND快閃記憶體。例如,在檔案關閉時或在電腦電力關閉時,儲存在DRAM邏輯快閃中的資料可被傳輸至NAND快閃記憶體。其他儲存點可發生在DRAM邏輯快閃容量幾乎都被使用時。在此情況中,可將較不常被儲存的檔案傳輸至快閃記憶體。
現將說明在主控制器的控制之下,從DRAM邏輯快閃至NAND快閃記憶體的資料傳輸。在主控制器決定將資料從DRAM邏輯快閃寫入快閃記憶體裝置時,主控制器傳送識別要被傳輸之資料的指令至邏輯快閃控制器,且主控制器警示匯流排控制器將發生資料傳輸(步驟530)。主控制器將指令資料放上內部匯流排,指令資料警示/致能快閃控制器,而使快閃控制器可接收/取得所需的資料。邏輯快閃控制器設定適當的暫存器值,以將內部匯流排DMA配置為用於傳輸,且由主控制器所識別的資料被由匯流排DMA放上高速內部匯流排(步驟535)。隨後,主控制器(或替代性地,可選匯流排控制器)使用定址至各別快閃控制器的特定資料節段開始資料傳輸(步驟540)。可使用各種技術來管理高速內部匯流排上的資料傳輸。在一個實施例中,裝載上內部匯流排的資料,包含指示資料序列開始處的標誌、指示資料序列結束處的標誌、以及識別資料所要定址至的部件的結構。每一快閃
控制器在資料串流中觀看快閃控制器的識別符,並將適當的資料節段轉向至快閃控制器的內部儲存。在其他實施例中,可存在連接至記憶體控制器之每一者的個別指令/致能線。在資料意為用於特定快閃記憶體模組時,連接至此記憶體控制器的致能線被確立,同時對於其他記憶體控制器的致能線被除確立。此配置圖示於第3圖。
高速匯流排操作在確保至匯流排與自匯流排的資料傳輸以每秒400MB執行的時脈。匯流排控制器指示以每秒300+MB之全資料速率從DRAM邏輯傳輸資料至快閃記憶體裝置。在資料傳輸期間內,主控制器循序地在第一DMA週期期間將資料導向第一快閃暫存器,且隨後在第二DMA週期期間將資料導向第二快閃暫存器,諸如此類。主控制器循序地將資料分配至8個不同的快閃控制器(步驟545)。資料被以每秒40MB平行地從快閃控制器中的暫存器讀出至快閃晶粒(步驟550)。被裝載的暫存器(快閃記憶體暫存器)的時脈被從匯流排速度切換至快閃速度。平行操作的8個快閃控制器(操作於每秒40MB(對於每一快閃控制器))產生每秒320MB的總和傳輸速率。然而,額外的每秒20MB允許額外的標頭資料(諸如錯誤校正碼(ECC))被寫入快閃記憶體。此外,可存在數個額外作業,諸如在快閃記憶體維護期間執行的額外寫入或讀取。此額外標頭使對於8個平行快閃磁碟機的40至50MB傳輸速率約等於內部匯流排上的每秒400MB傳輸速率。
SSD亦可具有數個額外的特徵。例如,SSD可被分
區為具有不同存取與安全性層級的各種節段。例如,SSD的經保護部分可被指定為軟體程式執行檔。例如,SSD的經保護部分可不能夠被使用者或作業系統直接存取。例如,邏輯記錄編號可不索引SSD的經保護部分。因此,不存在讓使用者或作業系統存取經保護部分的機制。相反的,經保護部分僅可為軟體供應者所用,以裝載新軟體並更新現存的軟體。可由不同的技術,使用專屬於此資料類型的特別指令,來定址經保護部分。例如,可使用均等於邏輯記錄的位址,但卻索引於不同的查找表上。
為了執行包含在經保護部分中的軟體,軟體可被傳輸至第二「唯讀」節段並由作業系統存取。此技術的一個優點為,可獨立於使用者當前的工作來更新軟體程式執行檔。例如,使用者可正在使用Windows®作業系統與Microsoft Office®應用程式以編輯文件。在背景中,軟體供應者可正推出對於儲存在SSD經保護部分中之Windows®作業系統程式執行檔的更新。使用者的工作不會被中斷。在大多數的使用者狀態中(諸如準備文件或存取網際網路),至/自SSD的通訊交通量為很少或無。
因此,新資料可被串流入SSD的經保護部分,而不負面地影響快閃磁碟機的效能。下一次使用者將系統開機時,作業系統的新版本將被從磁碟機的經保護部分載入「唯讀」節段並透過DRAM邏輯快閃傳輸至CPU。在關機或電力中斷時,計算系統不需要試圖儲存這些程式執行檔檔案,因為這些程式執行檔檔案並未被改變且已被儲存在磁碟機的經
保護部分中。
額外或替代地,可存在指定為儲存快照的磁碟機的特別節段。如上文討論,快照為在給定時間點計算裝置完整狀態的記錄。快照允許計算裝置回復至此狀態。
從固態硬碟機取得檔案
第6A圖為計算裝置中的讀取作業的示意圖。如上文所討論,CPU在SATA匯流排與SATA DMA上直接與DRAM邏輯快閃通訊以取得資料。在接收到讀取指令時,主控制器決定資料是否被儲存於DRAM邏輯快閃中。若資料被儲存於DRAM邏輯快閃中,則從DRAM邏輯快閃傳送資料至CPU。若資料不被儲存於DRAM邏輯快閃中,則主控制器決定資料被儲存在快閃記憶體模組上的何處並取得資料。在許多實例中,資料可被分散至多個快閃記憶體模組以及每一模組內的多個晶粒。因此,可藉由使用多個獨立的控制器同時從多個晶粒讀取資料,以快速取得資料檔案。
第6B圖為用於從快閃記憶體讀取資料的說明性方法(600)的流程圖。在需要新檔案或經更新檔案時,CPU經由SATA介面傳送讀取指令至SSD,讀取指令具有對應於所需資料的邏輯記錄編號(步驟605)。讀取指令被接收於DRAM邏輯快閃並傳輸至主控制器(步驟610)。例如,DRAM控制器可經配置以認知指令,並在特別高速匯流排上傳送指令至主控制器,警示主控制器已接收到了新指令。主控制器或DRAM控制器決定所要求的資料是否儲存在DRAM邏輯快閃中(決定612)。在一些實施例中,DRAM控制器追蹤所有檔
案為已讀取或已寫入,使得回應於來自CPU或主控制器的要求,DRAM控制器可傳送正確資料至SATA介面。DRAM控制器在指令中尋找邏輯記錄,並在DRAM控制器的表中尋找邏輯記錄,已決定資料是否已包含在DRAM邏輯快閃中。若所要求的資料位於DRAM邏輯快閃中(「是」),則主控制器指示DRAM控制器將所要求的資料放置在SATA匯流排上(步驟614)。DRAM配置SATA DMA以傳輸資料(步驟616)。資料被放置在SATA匯流排上並由CPU接收(步驟618)。
若所要求的資料未儲存在DRAM邏輯快閃中(「否」),則主控制器傳送指令至各種快閃控制器,以將資料放上內部匯流排。快閃控制器配置他們的各別DMA,以將資料從NAND快閃晶粒傳輸至內部匯流排(步驟620)。邏輯快閃控制器配置匯流排DMA,以接收資料並將資料傳輸入DRAM邏輯快閃。邏輯快閃控制器亦配置SATA DMA,以將資料傳輸出DRAM邏輯快閃並傳輸上SATA匯流排(步驟625)。此發自快閃記憶體的傳輸係以每秒300至400MB的速度進行。隨後對於相同資料的要求係由DRAM邏輯快閃來滿足,而非由快閃記憶體以全SATA速率滿足(步驟630)。在發自快閃記憶體的資料傳輸之後,DRAM邏輯快閃允許所有隨後的交易被以最大SATA速度執行(每秒300至1000MB)。
CPU使用程式作業中的資料,並可週期性地重新寫入資料至SSD(步驟635)。邏輯快閃控制器追蹤對於資料的改變並合併檔案,而使資料可隨時被以單一寫入步驟寫入
NAND快閃裝置(步驟640)。若從CPU接收到新檔案,且新檔案為對於現存在DRAM邏輯快閃中之檔案的更新,則與新檔案相關聯的所有邏輯記錄被寫入DRAM邏輯快閃中的新位置,且新檔案被寫入。舊資料檔案的位置,可為未來的寫入中所包含的資料所用。此表示所有當前檔案位於DRAM中的同一處,使得所有當前檔案可在電力關閉時被有效率地儲存於快閃記憶體中。然而,若DRAM邏輯快閃中的資料未被改變(如具有許多程式執行檔檔案的情況),則不需要將資料寫回NAND快閃記憶體,因為與資料相同的複製本已經被儲存在快閃記憶體中了。可使用「已使用位元(dirty bit)」來指示對於儲存在DRAM邏輯快閃中之資料的改變。若儲存在DRAM邏輯快閃中的資料未被改變,則已使用位元維持為未改變,且在儲存點檔案不被重新寫入快閃記憶體。若資料在位於DRAM邏輯快閃中的同時已被改變,則此由已使用位元指示,且資料在系統電力關閉之前被寫入非揮發性快閃記憶體(步驟645)。使用已使用位元來追蹤對於儲存在DRAM邏輯快閃中之資料的改變,允許系統節省時間與對於NAND快閃記憶體的損耗。上文所說明的程序以邏輯記錄層級處理了所有通訊。此使資料處理程序對於所有控制器與CPU而言為一致且通透的。
快照
第7圖為用於儲存系統狀態的快照的說明性方法的流程圖。如上文討論,將DRAM邏輯快閃併入SSD,允許作業系統執行系統「快照」與其他時常發生的寫入作業,而不
負面地影響快閃記憶體的生命期。快照不被作為邏輯記錄來傳輸/儲存。如上文針對第4圖所討論,使用特別路徑與個別的指令來儲存與取得快照。快照被儲存於DRAM邏輯快閃中的快照區域,且僅在電力關閉時傳輸至快閃記憶體。快照不被使用邏輯記錄儲存。相反的,使用稱為快照記錄的表。使用特別路徑與特別指令來儲存與取得快照。因為使用個別的路徑與指令來管理快照,可儲存快照而不干涉使用邏輯記錄的普通資料串流。大部分的快照不被永久地儲存在非揮發性快閃記憶體中,而是被暫時儲存在DRAM邏輯快閃中。在計算裝置被關閉或損失電力時,所選擇的快照被從DRAM邏輯快閃傳輸至快閃記憶體。此傳輸與回復程序係由作業系統協作。
現在參照第7圖,使用者/作業系統/CPU決定需儲存快照(705)。計算裝置的狀態被儲存至DRAM邏輯快閃上的經保護區域(「快照區域」)。作業系統決定要儲存哪個資料。例如,沒有理由將先前已被儲存至檔案的資料包含於快照中。快照傳輸不被使用邏輯記錄來執行,且資料不被使用邏輯記錄或區塊查找表來儲存。使用與資料儲存在快照區域中的表(「快照記錄」),來索引/組織各種快照。通常,在獲取快照之時組織快照(710)。
在CPU傳送關閉指令或電力電路感測到電力中斷並傳送中斷時,快照儲存序列優先地將最後的兩個快照儲存入快閃記憶體。此程序亦不使用邏輯記錄或區塊查找表。經指定的區塊已準備好要接收快照資料。關於快照組織以及如何
取得快照的相關資料,與快照被儲存在表中(715)。
在系統回復/重啟時,快照回復碼從快閃取得快照至DRAM邏輯快閃並取回CPU記憶體(720)。隨後,計算裝置可從快照儲存的狀態恢復作業。
快載作業
第8圖為用於快載作業的說明性方法(800)的流程圖。在生產/配置期間內,將程式儲存在SSD中快閃記憶體經保護程式區域的儲存部分中。使用者無法直接存取經保護程式區域(805)。在使用者接收到適當的准許以使用特定程式時,將程式從儲存部分傳輸至經保護程式區域的活動部分(810)。
為了準備使用活動區域中的一或更多個程式,程式檔案被移入DRAM邏輯快閃的經保護程式區域中。此傳輸不使用邏輯記錄,而是整塊傳輸。類似地,使用者無法直接存取經保護程式區域(815)。
DRAM邏輯快閃之經保護程式區域中的程式,被傳輸至CPU記憶體以供執行。通常,程式檔案未包含在快照或傾印/回復作業中,因為程式檔案在執行期間內不被改變。由程式檔案所產生的檔案,包含配置與資料檔案,可被包含在快照與傾印/回復作業中(820)。
對於程式檔案的更新(包含使用者尚未具有准許以存取的程式檔案),可被使用背景作業從網路串流至SSD的經保護程式區域(825)。隨後,這些被更新的程式可在付款或使用者發出經授權要求時快速地成為可用。
在電力關閉期間內儲存資料
第9圖為用於在機器關閉電力或電力中斷時,將儲存在DRAM邏輯快閃中的資料儲存入非揮發性快閃記憶體中的說明性方法(700)的流程圖。SSD亦可包含電力電容器電路或其他能量儲存裝置。能量儲存裝置儲存充足的能量,以將所有儲存在揮發性DRAM記憶體中的資料儲存入非揮發性NAND快閃記憶體(步驟905)。在SSD發生電力中斷時,電力供應中的感測器開始電力關閉儲存作業。此外,可由使用者或作業系統觸發電力關閉儲存作業(步驟910)。在電力關閉儲存作業期間內,使用來自電力電容器的能量來更新DRAM以保持資料、操作控制器、傳輸資料至記憶體控制器、以及寫入資料於NAND快閃記憶體中。主控制器建置資料路徑,且DRAM控制器開始經由內部匯流排傳送資料至記憶體控制器。資料被以全速寫入每一記憶體模組。每一資料檔案包含將檔案識別為電力關閉儲存作業之部分的標頭(步驟915)。每一資料節段包含邏輯記錄旗標,邏輯記錄旗標允許傾印與回復程式將邏輯快閃資料回復為與儲存的資料完全相同。8個快閃記憶體控制器之每一者觀察自身的邏輯記錄旗標。在快閃控制器識別自身的邏輯記錄旗標時,控制器將隨後的資料儲存於自身的快閃記憶體中(步驟920)。因為傾印循序裝載整個快閃記憶體,所以不使用抹除週期,且寫入速度可逼近每秒300MB。理論上,可將完整的8GB DRAM記憶體在24秒內傾印入快閃。在DRAM邏輯快閃不是全滿或包含未被改變的檔案時,傳輸時間可顯著地減少。能量儲存裝置
具有電容性電力電路,電容性電力電路經設計以維持對SSD磁碟機的電力,以將DRAM邏輯快閃中的所有資料以最大速度傳輸入快閃記憶體。
在一個具體實施例中,快閃晶粒中的備用區塊被用於在電力關閉儲存作業期間儲存資料。備用區塊已經是空白的,所以不會發生抹除延遲。備用區塊散佈於每一晶粒。因此,快照並不實體位於一個連續的位置中。然而,包含在每一資料節段中的標頭識別下一資料節段。因此,藉由將第一資料節段儲存在已知位置中,主控制器可由相同於寫入資料檔案的順序來回復所有資料檔案(亦即先進先出(first-in,first-out))。
在電容性電力電路耗盡之前,可儲存指標以幫助重啟。在一個實施例中,主處理器累積載入快閃之邏輯記錄的庫存。庫存被寫入快閃記憶體的經保護區域上。在計算裝置重啟時,從經保護區域取得庫存。隨後,主控制器使用表以控制邏輯快閃的作業。
回復程序為電力關閉儲存程序的反向。作業系統感測重啟,並使快照被取得。任何必要的表或其他索引資料,被首先從快閃中的傾印區域取得(935)。這些表可被儲存於主控制器的記憶體中,或儲存於DRAM邏輯快閃中。隨後,主控制器使用這些表以存取快照,並重新建置在電力關閉儲存作業之前的作業系統狀態(940)。在一個實施例中,所儲存的第一資料節段被傳輸回邏輯快閃,接著傳輸第二資料節段,諸如此類,直到所有資料再次被儲存在DRAM邏輯快閃
上。此作業將資料的清淨版本回復至DRAM邏輯快閃。隨後,所回復的作業系統使用邏輯記錄表,以指示主控制器從邏輯快閃取得所需的檔案。
一般而言,回復程序序列將受CPU與作業系統的控制。作業系統將依所需指示對於各種檔案的載入。在一些實施例中,可存在對於已被開啟的程式的傾印參照。若傾印參照為固定的,則這些程式不被重新寫入。主控制器可對每一開啟的程式維持一組麵包屑(bread crumb),而使回復程序可將碼重置至最後執行處。然而,不是所有的程式都將具有麵包屑,但程式將作為回復序列之部分而被載入。
錯誤處理檔案回復
第10圖為用於回復儲存在DRAM邏輯快閃中的錯誤處理資料檔案的說明性方法(1000)的流程圖。例如,使用者可意外地關閉檔案,而沒有適當地儲存檔案。CPU傳送指令至SSD以刪除檔案(1005)。
檔案的刪除被記錄在FAT表中。然而,檔案中的資料在一段時間內維持儲存在DRAM邏輯快閃中,並由受限的檔案歷史索引(1010)。使用者發現到檔案被關閉而沒有適當地儲存檔案,並要求作業系統回復檔案(1015)。作業系統存取受限的檔案歷史,以決定做成「經刪除」檔案的資料是否仍存在於DRAM邏輯快閃上(1020)。若「經刪除」檔案仍存在,則從DRAM邏輯快閃取得「經刪除」檔案並傳送至CPU記憶體(1025)。
結論
總的來說,上文所說明的說明性SSD架構,提供了對硬碟機的隨插即用替代方案。上文說明了數種原則,以允許有效率地將快閃記憶體作為非揮發性儲存來使用,而不論快閃記憶體的有限抹除/寫入週期。DRAM邏輯快閃的使用,模擬快閃行為、允許以全介面速度來處理所有快閃指令、並將對於NAND快閃記憶體的寫入最小化。就系統處理器而言,系統處理器永遠是在寫入SSD內的快閃記憶體。然而,系統處理器是寫入作為邏輯快閃,但不具有NAND快閃記憶體之生命期或定址限制的DRAM。DRAM邏輯快閃以相同於快閃的方式儲存檔案並回應於快閃指令。再者,DRAM邏輯快閃使用FAT表、更新邏輯記錄、結合檔案、並被附接至SATA匯流排。因為DRAM邏輯快閃具有事實上為無限的讀取/寫入週期數量,所以系統處理器與作業系統可依所需儲存任何數量的更新與快照。再者,DRAM邏輯快閃讀取與寫入資料兩者的速度皆極快。SSD儲存足夠的電力,以在外部電力中斷時將儲存在DRAM邏輯快閃中的資料內容整體移動至快閃記憶體。
SSD中的快閃控制器處理邏輯記錄轉譯、錯誤偵測與回覆、以及裝置最佳化。在一些具體實施例中,考量使用的速度與方便性,每一快閃介面裝置可控制2個至4個晶粒。主控制器(且在一些具體實施例中與匯流排控制器)控制DRAM邏輯快閃與每一快閃控制器之間的資料傳輸。
如上文討論,DRAM記憶體與DRAM記憶體的控制器做成DRAM邏輯快閃。DRAM邏輯快閃中的資料由本地微
處理器(DRAM控制器、邏輯快閃控制器、與主控制器)來管理,以完整呈現為快閃磁碟機。對於所有與SATA系統之通訊的所有交易,僅透過此介面來進行。DRAM邏輯快閃總是以全SATA速度讀取與寫入SATA匯流排。因此,DRAM邏輯快閃完全看來像具有顯著較高資料傳輸速率的快閃裝置。此讓SSD作業對於計算裝置為通透的,計算裝置可如正寫入標準快閃或硬碟機裝置般來作業。
DRAM邏輯快閃不是快取,且DRAM邏輯快閃不如快取般作業。DRAM邏輯快閃中的檔案係如在快閃中般被寫入,並使用邏輯記錄至實體位置映射以及檔案管理。DRAM控制器接受快閃指令並實施快閃指令,使CPU總是以為自己正寫入快閃記憶體磁碟機。然而,CPU總是讀取與寫入DRAM邏輯快閃。CPU不直接存取快閃記憶體。快閃僅在由主控制器所決定的特定預定點被寫入。這些點係獨立於CPU指令,且無法被CPU直接觸發。
上文所給定的實施例僅為對於本文說明之原則的說明性範例。可使用各種其他配置與架構。例如,DRAM控制器與邏輯快閃控制器的功能可被結合為單一控制器。在其他實施例中,主控制器與匯流排控制器的功能可被結合。匯流排、揮發性記憶體、與非揮發性記憶體裝置的數量與類型可被改變,以適應各種設計參數與新科技。例如,雖然上文的範例說明了SATA匯流排、DRAM記憶體、與NAND記憶體,但可使用各種其他匯流排與記憶體科技。
此外,說明於上文並圖示於第1圖至第4圖中的架
構僅為範例。可使用數種替代性的架構。雖然上文討論的原則展示了做為CPU與快閃記憶體庫之間之守門員的DRAM邏輯快閃,但DRAM邏輯快閃亦可被插入於CPU與習知的旋轉硬磁盤硬碟機或其他非揮發性記憶體之間。
因此,SSD為對於標準硬碟機的空投替換方案,且SSD不需要對計算裝置進行任何程式化或實體改變。
上文說明僅被呈現以說明與示例所說明之原則的範例。此說明並不意為窮舉性,亦不意為將這些原則限制為任何所揭示的精確形式。根據上文教示內容,可能存在許多修改與變異。
Claims (21)
- 一種固態硬碟機,該固態硬碟機包括:DRAM邏輯快閃;以及快閃記憶體;其中一系統匯流排讀取與寫入該DRAM邏輯快閃且不讀取與寫入該快閃記憶體,及其中該DRAM邏輯快閃藉由以相同於NAND快閃的方式儲存檔案,來模擬快閃記憶體與回應快閃指令。
- 如請求項1所述之固態硬碟機,其中並不是對該硬碟機的所有快閃寫入都寫入至該快閃記憶體。
- 如請求項1所述之固態硬碟機,其中該固態硬碟機在預定點將資料從該DRAM邏輯快閃寫入該快閃記憶體,該等預定點係獨立於該系統處理器所發出的指令。
- 如請求項1所述之固態硬碟機,其中該DRAM邏輯快閃藉由使用一FAT表、更新邏輯記錄、結合檔案、以及直接連接至一SATA匯流排,來模擬快閃記憶體。
- 如請求項1所述之固態硬碟機,該固態硬碟機更包含一能量儲存裝置,該能量儲存裝置儲存足夠的電力,以在對於該固態硬碟機的外部電力中斷時,將儲存在該DRAM邏輯快閃中的資料內容移動至快閃記憶體。
- 如請求項1所述之固態硬碟機,其中該DRAM邏輯快閃以全介面速度實施所有快閃指令。
- 如請求項1所述之固態硬碟機,其中該DRAM邏輯快閃儲存程式追蹤點與作業快照,並將對於該快閃記憶體的寫入最小化。
- 如請求項1所述之固態硬碟機,其中該固態硬碟機經配置以對於任何電力中斷,提供對於一附接計算裝置的一最後狀態的一完整回復。
- 如請求項1所述之固態硬碟機,其中該NAND快閃的分頁被個別地識別為具有錯誤且被從一區塊中消除,同時該區塊中的其他分頁維持被使用。
- 如請求項9所述之固態硬碟機,其中該快閃記憶體包含多重層級細胞元NAND快閃,其中將該NAND快閃的分頁個別地識別為具有錯誤且被從一區塊中消除,同時將該磁區中的其他分頁維持被使用,使該快閃記憶體的生命期提升至少為在於磁區內之一分頁中偵測到錯誤時消除整個磁區的快閃記憶體的生命期的十倍。
- 如請求項1所述之固態硬碟機,其中所有資料被保持在 該DRAM邏輯快閃中,直到該資料被正確地寫入該快閃記憶體。
- 如請求項1所述之固態硬碟機,該固態硬碟機更包含高速DMA,該高速DMA用於對該DRAM邏輯快閃進行獨立的讀取與寫入作業。
- 如請求項1所述之固態硬碟機,該固態硬碟機更包含一高速內部匯流排,其中該DRAM邏輯快閃與該快閃記憶體被個別連接至該高速內部匯流排,該快閃記憶體被分成個別的模組,每一模組由一不同的微處理器控制,該不同的微處理器經配置以獨立地與該高速內部匯流排介面連接。
- 如請求項1所述之固態硬碟機,其中該DRAM邏輯快閃藉由儲存所有對該快閃記憶體的傳輸,並選擇性保持傳輸以將對該快閃記憶體的寫入損耗最小化,來模擬快閃記憶體儲存。
- 如請求項1所述之固態硬碟機,其中一主微處理器從位於該固態硬碟機外部的一中央處理器單元接收一指令,其中該主微處理器藉由傳送子指令至其他微處理器來控制該指令的執行,且該主微處理器不直接管理資料傳輸,其中每一微處理器獨立操作。
- 如請求項1所述之固態硬碟機,該固態硬碟機更包含:一內部匯流排,該內部匯流排可操作地連接該DRAM邏輯快閃與該快閃記憶體;以及一主控制器,該主控制器控制在該DRAM邏輯快閃與該快閃記憶體之間之該內部匯流排上傳送的資料。
- 如請求項1所述之固態硬碟機,該固態硬碟機更包含多個獨立快閃控制器,該多個獨立快閃控制器之每一者位於一個別的快閃記憶體模組內,而使該個別的快閃記憶體模組可被平行寫入。
- 如請求項17所述之固態硬碟機,其中該等快閃記憶體模組之每一者包含:一微處理器;快閃記憶體;可被該微處理器與快閃記憶體直接存取的記憶體緩衝器;一介面,該介面用於直接寫入資料至該等記憶體緩衝器;及一緩衝器開關,該緩衝器開關藉由轉換至一空狀態來切換在一外部匯流排與一內部匯流排之間的該等記憶體緩衝器。
- 如請求項1所述之固態硬碟機,其中該DRAM邏輯快 閃經配置以操作於下列模式之至少一者中:經邏輯記錄索引的資料傳輸,以及未由邏輯記錄索引的資料傳輸。
- 如請求項19所述之固態硬碟機,其中寫入該DRAM邏輯快閃的資料的一部分,不被寫入該快閃記憶體。
- 如請求項20所述之固態硬碟機,其中寫入該DRAM邏輯快閃的該資料的一部分,不被寫入該快閃記憶體。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261728394P | 2012-11-20 | 2012-11-20 | |
US61/728,394 | 2012-11-20 | ||
US201361775327P | 2013-03-08 | 2013-03-08 | |
US61/775,327 | 2013-03-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201435729A TW201435729A (zh) | 2014-09-16 |
TWI636396B true TWI636396B (zh) | 2018-09-21 |
Family
ID=50776495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102142296A TWI636396B (zh) | 2012-11-20 | 2013-11-20 | 固態硬碟機架構 |
Country Status (8)
Country | Link |
---|---|
US (4) | US9941007B2 (zh) |
EP (1) | EP2923358A4 (zh) |
JP (2) | JP6465806B2 (zh) |
CN (1) | CN105103234A (zh) |
CA (1) | CA2891355C (zh) |
MX (1) | MX364783B (zh) |
TW (1) | TWI636396B (zh) |
WO (1) | WO2014081719A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI829378B (zh) * | 2022-02-15 | 2024-01-11 | 威盛電子股份有限公司 | 通用序列匯流排控制裝置及其控制方法 |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
CN104425020A (zh) * | 2013-08-23 | 2015-03-18 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
WO2015089488A1 (en) | 2013-12-12 | 2015-06-18 | Memory Technologies Llc | Channel optimized storage modules |
JP2015185103A (ja) * | 2014-03-26 | 2015-10-22 | ソニー株式会社 | 記憶装置、情報処理装置、データアクセス方法、およびプログラム |
US20150362980A1 (en) * | 2014-06-16 | 2015-12-17 | Apple Inc. | Always-On Processor as a Coprocessor |
US9542118B1 (en) * | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
JP2016103112A (ja) * | 2014-11-27 | 2016-06-02 | 株式会社リコー | データ転送制御装置、情報処理装置、画像形成装置 |
US20160291887A1 (en) * | 2015-03-30 | 2016-10-06 | Kabushiki Kaisha Toshiba | Solid-state drive with non-volatile random access memory |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9442839B1 (en) * | 2015-05-26 | 2016-09-13 | Sandisk Technologies Llc | Nonvolatile storage with automated response to program faults |
US10152413B2 (en) | 2015-06-08 | 2018-12-11 | Samsung Electronics Co. Ltd. | Nonvolatile memory module and operation method thereof |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
EP3332319B1 (en) * | 2015-10-23 | 2023-09-06 | Hewlett-Packard Development Company, L.P. | Write commands filtering |
US20170123991A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer in a storage device |
US9880783B2 (en) | 2015-10-28 | 2018-01-30 | Sandisk Technologies Llc | System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller |
US10474570B2 (en) * | 2015-11-24 | 2019-11-12 | Cisco Technology, Inc. | Flashware usage mitigation |
US10095618B2 (en) | 2015-11-25 | 2018-10-09 | Intel Corporation | Memory card with volatile and non volatile memory space having multiple usage model configurations |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9934090B2 (en) * | 2015-12-22 | 2018-04-03 | Intel Corporation | Apparatus and method for enforcement of reserved bits |
US9990311B2 (en) * | 2015-12-28 | 2018-06-05 | Andes Technology Corporation | Peripheral interface circuit |
CN105677239A (zh) * | 2015-12-30 | 2016-06-15 | 中航网信(北京)科技有限公司 | 数据存储方法、装置和服务器 |
CN105607874B (zh) * | 2015-12-31 | 2017-03-22 | 湖南国科微电子股份有限公司 | Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器 |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
KR20170094674A (ko) * | 2016-02-11 | 2017-08-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
US20170271030A1 (en) * | 2016-03-18 | 2017-09-21 | Alibaba Group Holding Limited | Method and system for using downgraded flash die for cache applications |
US10353813B2 (en) | 2016-06-29 | 2019-07-16 | Western Digital Technologies, Inc. | Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices |
US10175896B2 (en) | 2016-06-29 | 2019-01-08 | Western Digital Technologies, Inc. | Incremental snapshot based technique on paged translation systems |
US10229048B2 (en) | 2016-06-29 | 2019-03-12 | Western Digital Technologies, Inc. | Unified paging scheme for dense and sparse translation tables on flash storage systems |
US10235287B2 (en) | 2016-06-29 | 2019-03-19 | Western Digital Technologies, Inc. | Efficient management of paged translation maps in memory and flash |
US11216361B2 (en) | 2016-06-29 | 2022-01-04 | Western Digital Technologies, Inc. | Translation lookup and garbage collection optimizations on storage system with paged translation table |
US10509592B1 (en) * | 2016-07-26 | 2019-12-17 | Pavilion Data Systems, Inc. | Parallel data transfer for solid state drives using queue pair subsets |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10283215B2 (en) | 2016-07-28 | 2019-05-07 | Ip Gem Group, Llc | Nonvolatile memory system with background reference positioning and local reference positioning |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
CN106294026A (zh) * | 2016-08-19 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种固态盘异常掉电后的映射表恢复方法及其系统 |
US9965356B2 (en) * | 2016-09-02 | 2018-05-08 | Alibaba Group Holding Limited | Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset |
US11586565B2 (en) | 2016-10-03 | 2023-02-21 | Samsung Electronics Co., Ltd. | Non-volatile storage system and data storage access protocol for non-volatile storage devices |
CN106844229B (zh) * | 2017-01-07 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 固态硬盘固件映射表的组织方法、系统及装置 |
CN106815156A (zh) * | 2017-01-22 | 2017-06-09 | 联想(北京)有限公司 | 一种实现固态硬盘交互的装置、方法和和电子设备 |
KR102417107B1 (ko) | 2017-07-07 | 2022-07-05 | 마이크론 테크놀로지, 인크. | 관리되는 nand에 대한 rpmb 개선 |
US20190035445A1 (en) * | 2017-07-31 | 2019-01-31 | CNEX Labs, Inc. a Delaware Corporation | Method and Apparatus for Providing Low Latency Solid State Memory Access |
TWI626541B (zh) * | 2017-08-31 | 2018-06-11 | 慧榮科技股份有限公司 | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
CN108182154A (zh) * | 2017-12-22 | 2018-06-19 | 深圳大普微电子科技有限公司 | 一种基于固态硬盘的日志文件的读写方法及固态硬盘 |
US10402112B1 (en) * | 2018-02-14 | 2019-09-03 | Alibaba Group Holding Limited | Method and system for chunk-wide data organization and placement with real-time calculation |
US10534551B1 (en) | 2018-06-22 | 2020-01-14 | Micron Technology, Inc. | Managing write operations during a power loss |
CN109582523B (zh) * | 2018-11-26 | 2022-03-25 | 深圳忆联信息系统有限公司 | 有效分析SSD前端NVMe模块性能的方法及系统 |
CN109683813B (zh) * | 2018-12-03 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种nvme ssd自动格式化方法、装置、终端及存储介质 |
US20200201566A1 (en) * | 2018-12-19 | 2020-06-25 | Micron Technology, Inc. | Module processing resource |
US11003396B2 (en) * | 2019-03-01 | 2021-05-11 | Micron Technology, Inc. | Dual speed memory |
CN109918352B (zh) * | 2019-03-04 | 2021-11-05 | 北京百度网讯科技有限公司 | 存储器系统和存储数据的方法 |
CN110674608B (zh) * | 2019-06-13 | 2020-08-04 | 深圳市芯天下技术有限公司 | 一种nand闪存存储单元的建模方法及系统 |
US11768613B2 (en) * | 2019-06-25 | 2023-09-26 | Micron Technology, Inc. | Aggregation and virtualization of solid state drives |
CN110427171B (zh) * | 2019-08-09 | 2022-10-18 | 复旦大学 | 可扩展的定点数矩阵乘加运算的存内计算设备和方法 |
TWI715162B (zh) * | 2019-08-26 | 2021-01-01 | 點序科技股份有限公司 | 記憶體驗證方法及記憶體驗證系統 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
CN111158604B (zh) * | 2019-12-31 | 2022-02-11 | 西南科技大学 | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 |
US20210233585A1 (en) * | 2020-01-29 | 2021-07-29 | Micron Technology, Inc. | Multichip memory package with internal channel |
US11580038B2 (en) * | 2020-02-07 | 2023-02-14 | Sunrise Memory Corporation | Quasi-volatile system-level memory |
KR102289937B1 (ko) * | 2020-08-26 | 2021-08-13 | 스톤플라이코리아(주) | 가상 스토리지의 데이터 처리 방법 |
US11714897B2 (en) * | 2020-09-02 | 2023-08-01 | Mobileye Vision Technologies Ltd. | Secure distributed execution of jobs |
CN112286717B (zh) * | 2020-10-28 | 2023-08-01 | 四川效率源信息安全技术股份有限公司 | 一种固态硬盘启用trim命令后的数据恢复方法 |
KR102258139B1 (ko) * | 2021-01-22 | 2021-05-28 | 스톤플라이코리아 주식회사 | 가상 스토리지의 데이터를 효율적으로 처리하는 방법 및 그 시스템 |
US11755237B2 (en) * | 2021-08-31 | 2023-09-12 | Micron Technology, Inc. | Overwriting at a memory system |
US20230075055A1 (en) * | 2021-09-08 | 2023-03-09 | Quanta Computer Inc. | Method and system for providing life cycle alert for flash memory device |
US12013755B2 (en) * | 2022-04-07 | 2024-06-18 | Kioxia Corporation | Method and device for assessing operational effectiveness of solid-state drive (SSD) memory device |
US11789819B1 (en) | 2022-04-29 | 2023-10-17 | Micron Technology, Inc. | Seamless recovery of a hardware-based I/O path in a multi-function NVMe SSD |
US20240160372A1 (en) * | 2022-11-16 | 2024-05-16 | Samsung Electronics Co., Ltd. | Prepopulating commands at a storage device for accelerated host-issued live migration of storage data |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080501A1 (en) * | 2004-10-12 | 2006-04-13 | Hitachi Global Storage Technologies | HDD having both dram and flash memory |
US20080250189A1 (en) * | 2005-05-18 | 2008-10-09 | Ziyi Cheng | Circuit and Method for Improving Operation Life of Memory |
US20090172257A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
TW200941218A (en) * | 2008-03-01 | 2009-10-01 | Toshiba Kk | Memory system |
US20100138591A1 (en) * | 2008-03-01 | 2010-06-03 | Kabushiki Kaisha Toshiba | Memory system |
US20100202238A1 (en) * | 2009-02-11 | 2010-08-12 | Stec, Inc. | Flash backed dram module including logic for isolating the dram |
US20110066837A1 (en) * | 2000-01-06 | 2011-03-17 | Super Talent Electronics Inc. | Single-Chip Flash Device with Boot Code Transfer Capability |
US20120284587A1 (en) * | 2008-06-18 | 2012-11-08 | Super Talent Electronics, Inc. | Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear |
Family Cites Families (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216775A (ja) * | 1991-10-29 | 1993-08-27 | Hitachi Ltd | 半導体記憶装置 |
JPH07201190A (ja) * | 1993-12-28 | 1995-08-04 | Mitsubishi Electric Corp | 不揮発性メモリファイルシステム |
JPH08129509A (ja) * | 1994-11-01 | 1996-05-21 | Canon Inc | メモリ制御装置及び方法 |
JP3239854B2 (ja) * | 1998-08-31 | 2001-12-17 | 松下電器産業株式会社 | 記録再生装置 |
US8631066B2 (en) * | 1998-09-10 | 2014-01-14 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
US8341332B2 (en) * | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US7039074B1 (en) * | 2000-09-14 | 2006-05-02 | Agiletv Corporation | N-way demultiplexer |
US6782410B1 (en) * | 2000-08-28 | 2004-08-24 | Ncr Corporation | Method for managing user and server applications in a multiprocessor computer system |
FR2820850B1 (fr) * | 2001-02-15 | 2003-05-09 | Bull Sa | Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur |
JP2003122644A (ja) * | 2001-10-11 | 2003-04-25 | Hitachi Ltd | 計算機及びその記憶装置 |
JP2003308698A (ja) * | 2002-04-12 | 2003-10-31 | Toshiba Corp | 不揮発性半導体メモリ装置 |
US7003635B2 (en) * | 2002-10-03 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Generalized active inheritance consistency mechanism having linked writes |
TWI240863B (en) * | 2003-09-05 | 2005-10-01 | Megawin Technology Co Ltd | Method for efficiently controlling flash memory read/write |
US20050125607A1 (en) * | 2003-12-08 | 2005-06-09 | International Business Machines Corporation | Intelligent caching of working directories in auxiliary storage |
US20050132128A1 (en) * | 2003-12-15 | 2005-06-16 | Jin-Yub Lee | Flash memory device and flash memory system including buffer memory |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
JP4429780B2 (ja) * | 2004-03-31 | 2010-03-10 | 富士通株式会社 | 記憶制御装置、制御方法、および制御プログラム。 |
US7196942B2 (en) * | 2004-10-20 | 2007-03-27 | Stmicroelectronics Pvt. Ltd. | Configuration memory structure |
US7631219B2 (en) * | 2004-10-22 | 2009-12-08 | Broadcom Corporation | Method and computer program product for marking errors in BIOS on a RAID controller |
KR100578143B1 (ko) * | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템 |
US20090172269A1 (en) * | 2005-02-04 | 2009-07-02 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and associated data merge method |
JP4282612B2 (ja) * | 2005-01-19 | 2009-06-24 | エルピーダメモリ株式会社 | メモリ装置及びそのリフレッシュ方法 |
US7269715B2 (en) * | 2005-02-03 | 2007-09-11 | International Business Machines Corporation | Instruction grouping history on fetch-side dispatch group formation |
US7339591B2 (en) * | 2005-03-10 | 2008-03-04 | Microsoft Corporation | Method to manage graphics address remap table (GART) translations in a secure system |
US7512736B1 (en) * | 2005-05-02 | 2009-03-31 | Nvidia Corporation | System and method for adaptive raid configuration |
US8041881B2 (en) * | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US20080028136A1 (en) * | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8397013B1 (en) * | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US7872892B2 (en) * | 2005-07-05 | 2011-01-18 | Intel Corporation | Identifying and accessing individual memory devices in a memory channel |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
KR100673013B1 (ko) * | 2005-09-21 | 2007-01-24 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템 |
KR100644223B1 (ko) * | 2005-12-06 | 2006-11-10 | 삼성전자주식회사 | 리프레쉬 전류소모를 최소화하는 반도체 메모리 장치 및이에 대한 구동방법 |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US7702843B1 (en) * | 2006-04-27 | 2010-04-20 | Vmware, Inc. | Determining memory conditions in a virtual machine |
JP4768504B2 (ja) * | 2006-04-28 | 2011-09-07 | 株式会社東芝 | 不揮発性フラッシュメモリを用いる記憶装置 |
CN101454745B (zh) * | 2006-05-24 | 2012-09-05 | 克姆佩棱特科技公司 | 用于raid管理、重新分配以及重新分段的系统和方法 |
US7711890B2 (en) * | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
US7716411B2 (en) * | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
WO2008018258A1 (fr) * | 2006-08-09 | 2008-02-14 | Hitachi Ulsi Systems Co., Ltd. | Dispositif de stockage |
US7554855B2 (en) * | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
US8122319B2 (en) | 2007-01-24 | 2012-02-21 | Charles I. Peddle | Page-based failure management for flash memory |
JP4888184B2 (ja) * | 2007-03-26 | 2012-02-29 | ティアック株式会社 | 記憶装置 |
US7535787B2 (en) * | 2007-06-06 | 2009-05-19 | Daniel Elmhurst | Methods and apparatuses for refreshing non-volatile memory |
US8990527B1 (en) * | 2007-06-29 | 2015-03-24 | Emc Corporation | Data migration with source device reuse |
JP4109313B2 (ja) * | 2007-08-27 | 2008-07-02 | オリンパス株式会社 | 医療用カプセル装置 |
CN101398745B (zh) * | 2007-09-29 | 2011-12-21 | 群联电子股份有限公司 | 并行数据存取架构的固态盘存储系统与固态盘控制器 |
US20090094413A1 (en) * | 2007-10-08 | 2009-04-09 | Lehr Douglas L | Techniques for Dynamic Volume Allocation in a Storage System |
US8209465B2 (en) * | 2007-10-30 | 2012-06-26 | Hagiwara Sys-Com Co., Ltd. | Data writing method |
US7945825B2 (en) * | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
US20130086311A1 (en) * | 2007-12-10 | 2013-04-04 | Ming Huang | METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS |
US7822913B2 (en) * | 2007-12-20 | 2010-10-26 | Unity Semiconductor Corporation | Emulation of a NAND memory system |
US8938655B2 (en) * | 2007-12-20 | 2015-01-20 | Spansion Llc | Extending flash memory data retension via rewrite refresh |
US7970994B2 (en) * | 2008-03-04 | 2011-06-28 | International Business Machines Corporation | High performance disk array rebuild |
JP2009301128A (ja) * | 2008-06-10 | 2009-12-24 | Dainippon Printing Co Ltd | 不揮発性メモリの劣化軽減方法 |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US9547589B2 (en) * | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
TWI385516B (zh) * | 2008-08-12 | 2013-02-11 | Phison Electronics Corp | 快閃記憶體儲存系統及其資料寫入方法 |
US8130528B2 (en) * | 2008-08-25 | 2012-03-06 | Sandisk 3D Llc | Memory system with sectional data lines |
US8595449B2 (en) * | 2008-09-02 | 2013-11-26 | Qimonda Ag | Memory scheduler for managing maintenance operations in a resistive memory in response to a trigger condition |
US8103842B2 (en) * | 2008-11-17 | 2012-01-24 | Hitachi, Ltd | Data backup system and method for virtual infrastructure |
KR20100097454A (ko) * | 2009-02-26 | 2010-09-03 | 삼성전자주식회사 | 복수의 상 변화 메모리들, 버퍼램, 및 낸드 플래시 메모리를 구비한 메모리 모듈 |
TWI385518B (zh) * | 2009-03-20 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的資料儲存方法及儲存系統 |
US8478928B2 (en) * | 2009-04-23 | 2013-07-02 | Samsung Electronics Co., Ltd. | Data storage device and information processing system incorporating data storage device |
US8180981B2 (en) * | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
JP5104817B2 (ja) * | 2009-06-30 | 2012-12-19 | 富士通株式会社 | ストレージシステム、ストレージ制御装置及び方法 |
US8291131B2 (en) * | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US8250319B2 (en) * | 2009-09-29 | 2012-08-21 | Freescale Semiconductor, Inc. | Operating an emulated electrically erasable (EEE) memory |
WO2011070611A1 (en) * | 2009-12-08 | 2011-06-16 | Hitachi, Ltd. | Storage system and storage control apparatus provided with cache memory group including volatile memory and nonvolatile memory |
KR20110066697A (ko) * | 2009-12-11 | 2011-06-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블 관리 방법 및 그것을 사용하는 메모리 장치 |
CN102110057B (zh) * | 2009-12-25 | 2013-05-08 | 澜起科技(上海)有限公司 | 存储器模组及存储器模组内的数据交换方法 |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
JP5183650B2 (ja) * | 2010-02-17 | 2013-04-17 | 株式会社日立製作所 | 計算機システム,計算機システムにおけるバックアップ方法及びプログラム |
US9619472B2 (en) * | 2010-06-11 | 2017-04-11 | International Business Machines Corporation | Updating class assignments for data sets during a recall operation |
JP2012063884A (ja) * | 2010-09-14 | 2012-03-29 | Toshiba Corp | 記憶装置、電子機器、および記憶装置の制御方法 |
US8566546B1 (en) * | 2010-09-27 | 2013-10-22 | Emc Corporation | Techniques for enforcing capacity restrictions of an allocation policy |
US8850156B2 (en) * | 2010-11-03 | 2014-09-30 | Huawei Technologies Co., Ltd. | Method and system for managing virtual machine storage space and physical host |
US8478911B2 (en) * | 2011-01-31 | 2013-07-02 | Lsi Corporation | Methods and systems for migrating data between storage tiers |
JP5405513B2 (ja) * | 2011-03-22 | 2014-02-05 | 株式会社東芝 | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム |
KR101717081B1 (ko) * | 2011-03-23 | 2017-03-28 | 삼성전자주식회사 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
JP5792313B2 (ja) * | 2011-06-07 | 2015-10-07 | 株式会社日立製作所 | ストレージシステム |
US20130007373A1 (en) * | 2011-06-30 | 2013-01-03 | Advanced Micro Devices, Inc. | Region based cache replacement policy utilizing usage information |
US10089017B2 (en) | 2011-07-20 | 2018-10-02 | Futurewei Technologies, Inc. | Method and apparatus for SSD storage access |
US8806124B2 (en) * | 2011-09-09 | 2014-08-12 | Lsi Corporation | Methods and structure for transferring ownership of a logical volume by transfer of native-format metadata in a clustered storage environment |
US9098309B2 (en) * | 2011-09-23 | 2015-08-04 | Qualcomm Incorporated | Power consumption optimized translation of object code partitioned for hardware component based on identified operations |
JP5771280B2 (ja) * | 2011-10-28 | 2015-08-26 | 株式会社日立製作所 | 計算機システム及びストレージ管理方法 |
US9329901B2 (en) * | 2011-12-09 | 2016-05-03 | Microsoft Technology Licensing, Llc | Resource health based scheduling of workload tasks |
US20130290605A1 (en) * | 2012-04-30 | 2013-10-31 | Moon J. Kim | Converged memory and storage system |
US8918672B2 (en) * | 2012-05-31 | 2014-12-23 | International Business Machines Corporation | Maximizing use of storage in a data replication environment |
US8885382B2 (en) * | 2012-06-29 | 2014-11-11 | Intel Corporation | Compact socket connection to cross-point array |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10645032B2 (en) | 2013-02-28 | 2020-05-05 | Texas Instruments Incorporated | Packet processing match and action unit with stateful actions |
US9785545B2 (en) | 2013-07-15 | 2017-10-10 | Cnex Labs, Inc. | Method and apparatus for providing dual memory access to non-volatile memory |
JP5811167B2 (ja) * | 2013-12-20 | 2015-11-11 | オンキヨー株式会社 | 電子機器 |
US20160026399A1 (en) * | 2014-07-23 | 2016-01-28 | Lsi Corporation | Block i/o interface for a host bus adapter that utilizes nvdram |
-
2013
- 2013-11-19 CN CN201380070964.7A patent/CN105103234A/zh active Pending
- 2013-11-19 JP JP2015543117A patent/JP6465806B2/ja active Active
- 2013-11-19 CA CA2891355A patent/CA2891355C/en active Active
- 2013-11-19 EP EP13857130.2A patent/EP2923358A4/en not_active Ceased
- 2013-11-19 WO PCT/US2013/070789 patent/WO2014081719A1/en active Application Filing
- 2013-11-19 MX MX2015006298A patent/MX364783B/es active IP Right Grant
- 2013-11-20 TW TW102142296A patent/TWI636396B/zh not_active IP Right Cessation
-
2014
- 2014-10-17 US US14/517,318 patent/US9941007B2/en active Active
-
2018
- 2018-02-26 US US15/905,540 patent/US10796762B2/en active Active
- 2018-02-28 JP JP2018034288A patent/JP2018106746A/ja active Pending
-
2020
- 2020-10-05 US US17/062,945 patent/US20210020245A1/en not_active Abandoned
-
2022
- 2022-01-11 US US17/573,599 patent/US20220139455A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110066837A1 (en) * | 2000-01-06 | 2011-03-17 | Super Talent Electronics Inc. | Single-Chip Flash Device with Boot Code Transfer Capability |
US20060080501A1 (en) * | 2004-10-12 | 2006-04-13 | Hitachi Global Storage Technologies | HDD having both dram and flash memory |
US20080250189A1 (en) * | 2005-05-18 | 2008-10-09 | Ziyi Cheng | Circuit and Method for Improving Operation Life of Memory |
US20090172257A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
TW200941218A (en) * | 2008-03-01 | 2009-10-01 | Toshiba Kk | Memory system |
US20100138591A1 (en) * | 2008-03-01 | 2010-06-03 | Kabushiki Kaisha Toshiba | Memory system |
US20120284587A1 (en) * | 2008-06-18 | 2012-11-08 | Super Talent Electronics, Inc. | Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear |
US20100202238A1 (en) * | 2009-02-11 | 2010-08-12 | Stec, Inc. | Flash backed dram module including logic for isolating the dram |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI829378B (zh) * | 2022-02-15 | 2024-01-11 | 威盛電子股份有限公司 | 通用序列匯流排控制裝置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2016501403A (ja) | 2016-01-18 |
TW201435729A (zh) | 2014-09-16 |
CA2891355A1 (en) | 2014-05-30 |
US9941007B2 (en) | 2018-04-10 |
JP6465806B2 (ja) | 2019-02-06 |
EP2923358A4 (en) | 2016-06-29 |
US20150046625A1 (en) | 2015-02-12 |
CN105103234A (zh) | 2015-11-25 |
US20210020245A1 (en) | 2021-01-21 |
MX2015006298A (es) | 2015-12-09 |
CA2891355C (en) | 2022-04-05 |
US20180182459A1 (en) | 2018-06-28 |
MX364783B (es) | 2019-05-07 |
US10796762B2 (en) | 2020-10-06 |
EP2923358A1 (en) | 2015-09-30 |
JP2018106746A (ja) | 2018-07-05 |
WO2014081719A1 (en) | 2014-05-30 |
US20220139455A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI636396B (zh) | 固態硬碟機架構 | |
US11037625B2 (en) | Solid state drive architectures | |
US9720616B2 (en) | Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED) | |
US9841911B2 (en) | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance | |
KR102168838B1 (ko) | 저장 장치들에 대한 매핑 테이블들 | |
US9405621B2 (en) | Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance | |
TWI424319B (zh) | 用於操作一固態驅動器之方法及固態記憶體裝置 | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US9158700B2 (en) | Storing cached data in over-provisioned memory in response to power loss | |
KR20190016562A (ko) | 저장 클래스 메모리를 위한 웨어 레벨링의 장치 및 방법 | |
JP2010211734A (ja) | 不揮発性メモリを用いた記憶装置 | |
WO2020154352A1 (en) | Solid state drive architectures | |
WO2021242314A1 (en) | Data integrity protection of zns needs | |
WO2021216128A1 (en) | Data parking for ssds with zones | |
US20240256175A1 (en) | Storage device, operation method of storage device, and operation method of storage controller | |
EP4246330A1 (en) | Storage device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |