TWI533152B - 資料儲存裝置及方法 - Google Patents
資料儲存裝置及方法 Download PDFInfo
- Publication number
- TWI533152B TWI533152B TW103134922A TW103134922A TWI533152B TW I533152 B TWI533152 B TW I533152B TW 103134922 A TW103134922 A TW 103134922A TW 103134922 A TW103134922 A TW 103134922A TW I533152 B TWI533152 B TW I533152B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- information
- storage
- host
- file
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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/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/0661—Format or protocol conversion 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
-
- 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
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
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)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明大體上係關於資料儲存,且特別係關於用於非揮發性記憶體中之儲存管理的方法及系統。
一些儲存系統包含執行檔案系統(File System,FS)之主機,及供該主機儲存資料之儲存器件。舉例而言,Mylavarapu等人在2009年4月之歐洲會議會展中設計、自動化與測試第399頁至第404頁的「FSAF:File System Aware Flash Translation Layer for NAND Flash Memories」中描述FS感知快閃轉譯層(Flash Translation Layer,FTL),該文獻係以引用方式併入本文中。FSAF監視對FAT32表之寫入請求以動態地解譯任何經刪除資料,從而相應地隨後最佳化廢棄項目收集(garbage collection,GC)及耗損均衡(wear leveling,WL)演算法。又,取決於失效內容(dead content)之大小及快閃利用率(Flash utilization),進行主動式失效資料回收。
作為另一實例,Rajimwale等人在2009年6月之USENIX年度技術會議學報(USENIX'09)的「Block Management in Solid-State Devices」中描述檔案系統之間的分工以及儲存,該文獻係以引用方式併入本文中。作者確證出,在硬碟機(HDD)上,附近邏輯區塊編號(LBN)良好地轉譯至實體近接。然而,此技術在SSD上失敗。此情形進一步激發檔案系統存取應依據物件(或物件之部分)且SSD應處置低層級扇區特
定排程的結論。
作為又一實例,在以引用方式併入本文中的IEEE第17次高效能電腦架構國際研討會學報(HPCA-17)第301頁至第311頁的「Beyond Block I/O:Rethinking Traditional Storage Primitives」中,Ouyang等人描述高效能固態儲存體應支援的超出簡單區塊I/O之一類高階儲存基元。一種此類基元(不可部分完成寫入(atomic-write))將多個I/O操作批次處理成將被整體上持續或在失敗後就回復之單一邏輯群組。藉由沿著堆疊將寫入不可部分完成性移動至儲存器件中,有可能縮減在應用程式、檔案系統或作業系統層處需要之工作量以保證資料之一致性及完整性。
揭示內容以引用方式併入本文中的美國專利7,873,782描述檔案系統感知儲存系統,該儲存系統定位及分析主機檔案系統資料結構,以便判定主機檔案系統之儲存使用狀況。為此,儲存系統可能定位作業系統分割區、剖析作業系統分割區以定位其資料結構,且剖析作業系統資料結構以定位主機檔案系統資料結構。儲存系統基於主機檔案系統之儲存使用狀況來管理資料儲存。儲存系統可使用儲存使用狀況資訊以識別不再由主機檔案系統使用之儲存區域,且回收彼等區域以用於額外資料儲存容量。又,儲存系統可識別由主機檔案系統儲存之資料類型,且基於該等資料類型來管理資料儲存,諸如,基於資料類型來選擇儲存佈局及/或用於資料之編碼方案。
本發明之一實施例提供一種裝置,其包括一非揮發性記憶體及一處理器。該處理器經組態以:自一主機接收用於將資料儲存於該非揮發性記憶體中之命令;自該主機進一步接收檔案系統(FS)資訊以供儲存於該非揮發性記憶體中,該FS資訊指定該資料在該主機之一FS中的組織;自該主機接收向該處理器授予用以存取及修改該FS資訊之
權限及能力的一指示詞;及使用該指示詞來存取該FS資訊,以便管理該資料在該非揮發性記憶體中之該儲存。
在一些實施例中,該主機之該FS使用該FS之一邏輯位址空間中的邏輯區塊位址(LBA)來儲存該資料,該FS資訊包括指示該等LBA中之哪些用於儲存有效資料的使用狀況資訊,且該處理器經組態以存取該使用狀況資訊。在其他實施例中,該處理器經組態以在該邏輯位址空間中分配該等LBA中之一或多者,及修改該FS資訊中之該使用狀況資訊以指示該等經分配LBA。在又其他實施例中,該處理器經組態以在該邏輯位址空間中解除分配該等LBA中之一或多者,及修改該FS資訊中之該使用狀況資訊以指示該等經解除分配LBA。
在一實施例中,該裝置進一步包括用於快取該經接收資料之一揮發性記憶體,且該經快取資料包括一或多個資料群組,且該處理器經組態以藉由使用該FS資訊來選擇該等經快取資料群組中之一或多者且僅將該等經選擇資料群組自該揮發性記憶體清空至該非揮發性記憶體而儲存該資料。在另一實施例中,該等資料群組包括關於一特定檔案之資料,且該處理器經組態以僅選擇及清空關於該特定檔案之該資料。在又一實施例中,該等資料群組包括關於一特定儲存命令之資料,且該處理器經組態以僅選擇及清空關於該特定儲存命令之該資料。
在一些實施例中,該等資料群組中之一或多者被指派各別儲存優先權,且該處理器經組態以藉由使用該FS資訊來識別該等經指派資料群組及該等各別優先權且根據該等優先權來清空該等經識別資料群組而儲存該資料。在其他實施例中,該處理器經組態以藉由執行一各別儲存操作而對該等經接收命令中之每一者作出回應、修改該FS資訊同時執行該儲存操作,及在終結執行該儲存操作後就將一終結訊息發送至該主機。在又其他實施例中,該資料包括第一資料群組及第二資
料群組,該第一資料群組具有一第一儲存重要性,且該第二資料群組具有低於該第一儲存重要性之一第二儲存重要性,且該處理器經組態以藉由以各別第一儲存可靠性位準及第二儲存可靠性位準來儲存該第一資料群組及該第二資料群組而管理該資料之該儲存,該第二可靠性位準低於該第一可靠性位準。
在一實施例中,該處理器經組態以運用邏輯區塊位址(LBA)來接收該等命令、使該等LBA與供儲存該資料的該非揮發性記憶體之各別實體位址相關聯,及藉由將新資料儲存於一或多個新實體位址中且僅在寫入所有該新資料之後才使該新資料之該等LBA與該等新實體位址重新相關聯而運用該新資料來更新一先前經儲存檔案。在另一實施例中,該處理器經組態以在未能讀取一給定檔案之至少部分後就自該FS資訊擷取該給定檔案之一備份複本的一或多個位址,及使用該等位址而自該備份複本讀取至少該部分。
根據本發明之一實施例,另外提供一種方法,其包括:在一儲存器件中自一主機接收用於將資料儲存於一非揮發性記憶體中之命令;在該儲存器件中自該主機接收檔案系統(FS)資訊以供儲存於該非揮發性記憶體中,該FS資訊指定該資料在該主機之一FS中的組織;在該儲存器件中自該主機接收向該儲存器件授予用以存取及修改該FS資訊之權限及能力的一指示詞;及由該儲存器件使用該指示詞來存取該FS資訊,以便管理該資料在該非揮發性記憶體中之該儲存。
根據本發明之一實施例,另外提供一種裝置,其包括一主機及一儲存器件,該儲存器件包括一非揮發性記憶體。該主機經組態以執行用於儲存資料之一檔案系統(FS)。該儲存器件經組態以:自該主機接收用於將該資料儲存於該非揮發性記憶體中之命令;自該主機進一步接收檔案系統(FS)資訊以供儲存於該非揮發性記憶體中,該FS資訊指定該資料在該主機之該FS中的組織;自該主機接收向該儲存器件授
予用以存取及修改該FS資訊之權限及能力的一指示詞;及使用該指示詞來存取該FS資訊,以便管理該資料在該非揮發性記憶體中之該儲存。
在連同圖式進行考慮時,將自本發明之實施例的以下詳細描述更充分地理解本發明。
20‧‧‧電腦
24‧‧‧固態硬碟(SSD)
26‧‧‧中央處理單元(CPU)
30‧‧‧SSD控制器
34‧‧‧NAND快閃記憶體器件
38‧‧‧主機介面
42‧‧‧處理器
46‧‧‧記憶體介面
50‧‧‧隨機存取記憶體(RAM)
60‧‧‧記憶體管理器程式
64‧‧‧檔案系統(FS)
68‧‧‧經儲存資料區域
72‧‧‧虛擬至實體(V2P)表
76‧‧‧FS資訊
100‧‧‧FS儲存步驟
104‧‧‧授予步驟
108‧‧‧操作起始步驟
112‧‧‧讀取LBA步驟
116‧‧‧標記LBA步驟
120‧‧‧更新V2P表步驟
124‧‧‧應答步驟
128‧‧‧LBA分配步驟
132‧‧‧儲存於快閃中步驟
136‧‧‧資料群組識別步驟
140‧‧‧清空步驟
200‧‧‧FS儲存步驟
204‧‧‧授予步驟
208‧‧‧起始選擇性清空操作步驟
212‧‧‧選擇步驟
216‧‧‧檔案清空步驟
220‧‧‧步驟
224‧‧‧步驟
圖1為根據本發明之一實施例的示意性地說明記憶體系統之方塊圖;圖2為根據本發明之一實施例的展示記憶體系統中之儲存及控制模組之間的資料流程之圖解;及圖3及圖4為根據本發明之兩個實施例的示意性地說明用於儲存管理之方法的流程圖。
本文所描述的本發明之實施例提供用於非揮發性記憶體中之資料儲存的改良型方法及系統。在所揭示實施例中,主機執行檔案系統(FS)以將以檔案形式而組織之資料儲存於固態磁碟(Solid state disk,SSD)中。SSD包含SSD控制器及一或多個快閃記憶體器件。
主機之FS通常將一或多個FS資料結構(亦被稱作FS資訊)儲存於快閃器件中且管理該一或多個FS資料結構。FS資訊指定資料在主機之FS中的組織。舉例而言,FS資訊可包含邏輯區塊位址(LBA)清單,其中經分配成(或未)用於儲存有效資料之LBA被標記有各別指示。在一些所揭示實施例中,主機向SSD控制器授予用以存取及修改FS資訊之權限及能力。
描述若干實施例,其中允許SSD控制器有明確權限來存取及修改FS資訊會引起有利實施。在一實例實施例中,當主機刪除檔案時,
SSD控制器變得立即感知經刪除LBA。因此,主機無需釋放SSD中的經刪除檔案之LBA(例如,消除針對TRIM命令之需要,TRIM命令通常比刪除命令長得多)。
在另一實施例中,當主機將新檔案儲存於SSD中或將資料添加至現有檔案時,所揭示技術使SSD控制器(而非主機)能夠選擇哪些LBA將被分配給該資料。由於SSD控制器處置邏輯位址空間及實體位址空間兩者,故SSD控制器可最佳地分配邏輯位址及實體位址以最小化兩個空間中之片段。藉由縮減儲存空間片段,SSD可較有效地且以縮減之延時利用儲存空間。
在一些實施例中,SSD進一步包含揮發性記憶體,通常為隨機存取記憶體(Random Access Memory,RAM)。在一實施例中,主機向SSD控制器發送用以清空某一檔案或一檔案之部分的命令,或關於自RAM至快閃器件之特定儲存命令(例如,執行緒或標籤)的資料。與RAM之整個內容的非選擇性清空相對,此能力實現對即將進行之電力關斷的快速且有效之反應。
作為另一實例,在一些實施例中,RAM中之經快取資料包含被指派不同儲存優先權之多個資料群組。舉例而言,在斷電事件時,應在清空檔案資料之前將包含FS資訊之資料群組自RAM清空至快閃器件。藉由使用FS資訊來識別RAM中之資料群組及各別儲存優先權,SSD控制器可根據各別優先權來清空經識別資料群組。
在一些實施例中,儲存於快閃器件中或快取於RAM中之資料包含具有不同儲存重要性之資料群組。舉例而言,由於FS資訊結構之完整性及一致性對於儲存器件之適當操作係關鍵的,故包含FS資訊或其區段之資料群組相較於檔案資料通常應以較高可靠性予以儲存。在使用對FS資訊之存取能力的情況下,SSD控制器可識別具有較高重要性之經儲存資料群組,且將此等群組儲存於提供較高可靠性及/或縮減
之延時(例如,使用每記憶體單元小數目個位元及/或較強錯誤校正碼(Error Correcting Code,ECC)而進行)的快閃器件中。
在一些實施例中,SSD控制器使用用以存取FS資訊之能力以實現自可在更新先前經儲存檔案期間發生之失敗的恢復。檔案之原始資料被假定為儲存於非揮發性記憶體之實體位址中,該等實體位址係與FS之邏輯位址空間中的各別LBA相關聯。SSD控制器自主機接受檔案更新命令,該檔案更新命令包括新資料及各別LBA(在用於儲存原始資料之相同LBA範圍內)。SSD控制器首先將所有新資料寫入至新分配之實體位址,且僅接著使新資料之LBA與新實體位址相關聯。接著,SSD控制器在FS資訊中寫入將檔案標記為經成功更新之指示。由於SSD控制器保持原始邏輯位址與實體位址之間的關聯直至新資料被完全地寫入為止,故可在更新操作期間發生之失敗(例如,藉由電力關斷而產生)不會損毀原始檔案。
在一實例實施例中,FS儲存給定檔案連同該檔案之一或多個備份複本。在FS資訊中,FS或SSD控制器在給定檔案之LBA與其備份複本之LBA之間進行關聯。若SSD控制器在讀取給定檔案之至少部分方面失敗,則SSD控制器存取FS資訊以擷取各別備份複本之LBA,且對FS透通地自備份複本讀取資料之至少失敗部分。
圖1為根據本發明之一實施例的示意性地說明記憶體系統之方塊圖。在本實例中,記憶體系統包含將資料儲存於固態硬碟(Solid state Drive,SSD)24中之電腦20。電腦20可包含(例如)行動電腦、平板電腦或個人電腦。電腦包含充當主機之中央處理單元(Central Processing Unit,CPU)26。在以下描述中,可互換地使用術語CPU及主機。
在替代實施例中,主機可包含任何其他合適處理器或控制器,且儲存器件可包含任何其他合適器件。舉例而言,主機可包含企業儲
存系統之儲存控制器,且儲存器件可包含SSD或SSD陣列。將資料儲存於非揮發性儲存器件中之主機的其他實例包含行動電話、數位攝影機、媒體播放器,及抽取式記憶體卡或器件。
SSD 24將用於CPU 26之資料儲存於非揮發性記憶體中,在本實例中儲存於一或多個NAND快閃記憶體器件34中。在替代實施例中,SSD 24中之非揮發性記憶體可包含任何其他合適類型之非揮發性記憶體,諸如,NOR快閃、電荷陷阱快閃(CTF)、相變RAM(PRAM)、磁阻性RAM(MRAM)或鐵電性RAM(FeRAM)。
SSD控制器30執行SSD之各種儲存及管理任務。SSD控制器通常亦被稱作記憶體控制器。SSD控制器30包含用於與CPU 26通信之主機介面38、用於與快閃器件34通信之記憶體介面46,及進行SSD之各種處理任務的處理器42。
SSD 24進一步包含揮發性記憶體,在本實例中為隨機存取記憶體(RAM)50。在圖1之實施例中,RAM 50被展示為SSD控制器30之部分,但該RAM可替代地與該SSD控制器分離。RAM 50可包含(例如)靜態RAM(SRAM)、動態RAM(DRAM)、該兩種RAM類型之組合,或任何其他合適類型之揮發性記憶體。
在一些實施例中,存取RAM 50快於存取快閃記憶體34。在此等實施例中,CPU 26及/或處理器42可在RAM 50中儲存應以最小延時而存取之資料。儲存於RAM 50中之資料可包含自主機26接收且尚未經遞送以供儲存於快閃器件34中之資料。另外或替代地,儲存於RAM 50中之資料可包含已經儲存於快閃器件34中且快取回於RAM 50中之資料。
SSD控制器30且尤其是處理器42可以硬體予以實施。替代地,SSD控制器可包含執行合適軟體之微處理器,或硬體元件與軟體元件之組合。
圖1之組態為純粹地出於概念清楚起見而展示之例示性組態。亦可使用任何其他合適SSD或其他記憶體系統組態。已出於清楚起見而自該圖省略對於理解本發明之原理不必要的元件,諸如,各種介面、定址電路、定時及定序電路,以及除錯電路。在一些應用(例如,非SSD應用)中,SSD控制器30之功能係由合適記憶體控制器進行。
在圖1所展示之例示性系統組態中,記憶體器件34及SSD控制器30被實施為分離積體電路(IC)。然而,在替代實施例中,記憶體器件及SSD控制器可整合於單一多晶片封裝(MCP)或系統單晶片(SoC)中之分離半導體晶粒上,且可藉由內部匯流排而互連。進一步替代地,SSD控制器電路系統之一些或全部可駐留於同一晶粒上,記憶體器件34中之一或多者安置於該晶粒上。進一步替代地,SSD控制器30之功能性的一些或全部可以軟體予以實施,且由電腦中之CPU 26或其他處理器進行。在一些實施例中,CPU 26及SSD控制器30可製造於同一晶粒上,或製造於同一器件封裝中之分離晶粒上。
在一些實施例中,處理器42及/或CPU 26包含一般用途處理器,其係以軟體予以程式化以進行本文所描述之功能。軟體可(例如)經由網路而以電子形式下載至處理器,或替代地或另外,軟體可提供及/或儲存於諸如磁性、光學或電子記憶體之非暫時性有形媒體上。
電腦20之CPU 26通常執行檔案系統(以下圖2中之FS 64),該檔案系統將一或多個檔案儲存於SSD 24中。FS使用邏輯定址方案而將檔案儲存於SSD中。在此方案中,FS向每一檔案指派一或多個邏輯位址之群組(亦被稱作邏輯區塊位址-LBA),且將檔案資料發送至SSD 24以供根據LBA而儲存。
SSD控制器30之處理器42通常維持邏輯至實體位址轉譯,該轉譯使由主機指定之邏輯位址與快閃器件34中之各別實體儲存位置(亦被稱作實體位址)相關聯,且將資料儲存於適當實體儲存位置中。邏輯
至實體位址轉譯(亦被稱作虛擬至實體映射-V2P)可儲存於RAM 50、儲存於快閃器件34中,或儲存於此兩者中。
圖2為根據本發明之一實施例的展示記憶體系統20中之儲存及控制模組之間的資料流程之圖解。在圖2所展示之實例中,CPU 26執行FS 64以處置檔案之儲存,且SSD控制器30執行記憶體管理器程式60以處置資料在快閃器件34中之儲存。上文所提及之檔案轉譯層(FTL)為此記憶體管理器程式之實例。為了管理檔案之儲存,CPU 26經由FS 64而儲存及管理被共同地稱作FS資訊76之一或多個資料結構。在圖2之實例中,CPU 26將FS資訊76儲存於快閃器件34中。在一實例實施例中,FS資訊76包含一資料結構(例如,點陣圖),該資料結構指定FS 64之邏輯位址空間中的哪些LBS實際上用於儲存有效資料。在替代實施例中,FS資訊76之至少一些可儲存於RAM 50中。舉例而言,當FS 64儲存、刪除或更新某一檔案時,對應於彼檔案之儲存的FS資訊76之部分可快取於RAM 50中以縮減存取延時。
如上文所描述,FS 64使用邏輯定址方案(亦即,LBA)來儲存檔案。舉例而言,FS資訊76可每檔案包含經分配成用於儲存彼檔案的各別LBA之清單。SSD控制器30中之記憶體管理器60維持虛擬至實體(V2P)表72,表72使LBA與快閃器件34中之實體儲存位置相關聯。在圖2之實施例中,SSD控制器30將實際檔案資料儲存於經儲存資料區域68中。
在下文所揭示之實施例中,主機26向SSD控制器發送用以向SSD控制器授予用以存取及修改FS資訊76之權限及能力的指示詞。在對SSD控制器之明確修改權限的情況下在SSD控制器30與FS 64之間共享FS資訊76係有利的,如下文在實例實施例中進一步所描述。
由主機發送之授予指示詞可包含(例如)FS資訊在記憶體中之位
置,及用以使SSD控制器30能夠剖析FS資訊之格式化資訊。該格式化資訊可包含執行FS之作業系統(OS)的類型,及/或FS自身之類型。在替代實施例中,可使用任何其他合適授予指示詞組態。
在一些狀況下,SSD控制器30能夠重新建構FS資訊76或其部分之鏡像結構。舉例而言,SSD控制器30可掃描記憶體器件34以識別FS資訊之部分,或監視主機介面38以攔截由CPU 26執行之儲存操作,同時執行FS 64,以便建置FS資訊76之鏡像結構。然而,應注意,在無來自CPU 26之用以存取FS資訊76之明確權限的情況下,不允許SSD控制器30修改任何FS資訊。因此,獨立於CPU 26而重新建構FS資訊76可使SSD控制器30能夠存取FS資訊76以僅供讀取,而非供修改。此外,掃描記憶體或監視儲存操作以便產生FS資訊之鏡像結構會對SSD控制器30造成顯著處理耗用。
現在描述記憶體系統20之若干實例實施例,其中主機26向SSD控制器30授予(使用任何合適授予指示詞)用以存取及修改FS資訊76之權限。當FS最初建置及儲存FS資訊76時,主機26可發送授予指示詞。另外或替代地,主機26可在FS資訊之某些修改後或在任何其他合適時機時就週期性地發送授予指示詞連同儲存命令或作為儲存命令之部分。
現在假定系統20被要求刪除先前使用FS 64而儲存之檔案。由於該檔案係使用FS 64而儲存,故FS資訊76以及V2P表72指定經分配成用於儲存彼檔案之各別LBA。為了刪除檔案,系統20應自FS資訊76及V2P表72兩者移除對應LBA,使得經移除LBA可用於儲存其他資料。為了自FS資訊移除LBA,SSD控制器將FS資料結構中之LBA標記為未使用LBA。
原則上,主機26可自FS資訊76移除檔案LBA,且向SSD控制器30
發送列出此等LBA作為待自V2P表72移除之LBA的TRIM命令。由於由FS 64處置之邏輯位址空間常常隨著時間過去而變得成片段,故分配給某一檔案之LBA通常不會在邏輯位址空間中形成連續範圍之位址,且各別TRIM命令可包含長LBA清單,因此對主機介面38強加顯著通信耗用。此外,藉由使用TRIM命令,主機26及SSD控制器30兩者需要在刪除檔案時管理LBA。
在一實例實施例中,主機向SSD控制器授予用以存取及修改FS資訊之權限,主機26向SSD控制器僅發送FS資料結構中用以存取待刪除檔案之處置,而非發送完全LBA清單。該處置可包含(例如)僅對清單中之第一LBA的存取資訊。SSD控制器30藉由剖析FS資訊來存取完全LBA清單、自FS資訊76及自V2P表72移除各別LBA,且向主機通知刪除何時完成。因此,由於發送包含長LBA清單之TRIM命令的通信耗用縮減,故所揭示實施例相較於使用TRIM命令係有利的。此外,主機免除自FS資訊76移除LBA之任務。
考慮主機26被要求儲存新檔案或更新已經儲存於SSD中之檔案的實施例。當儲存新檔案時,系統20應針對新檔案分配邏輯位址空間中之LBA,及快閃器件34中之各別實體位址。當更新經儲存檔案時,系統20應類似地在新資料被添加至該檔案時分配儲存空間,或在資料自該檔案移除時解除分配儲存空間。當儲存空間高度地成片段時,將檔案儲存於SSD中或更新SSD中之檔案可另外涉及邏輯及/或實體位址之重新分配。在一些實施例中,主機26處置邏輯位址空間,且SSD控制器30獨立地處置實體位址空間。由於邏輯位址空間及實體位址空間兩者可隨著時間過去而變得成片段,故此等實施例中的儲存系統之效率顯著地降級。
在一實施例中,FS資訊76中用於儲存新或經更新檔案之LBA分配係由SSD控制器30執行,而非由主機26執行。由於SSD控制器及主
機共享FS資訊,故主機變得立即感知LBA分配。LBA分配可由主機執行抑或由SSD控制器執行的混合式實施亦係可行的。舉例而言,在一實施例中,基礎FS資訊之LBA(例如,檔案目錄及檔案分配表(FAT))係僅由主機判定,而用於使用者檔案之儲存的LBA之分配係由SSD控制器進行。
由於在所揭示實施例中SSD控制器30處置邏輯位址空間及實體位址空間兩者,故SSD控制器30可聯合地分配邏輯位址及實體位址以最小化兩個空間中之片段。舉例而言,SSD控制器30可掃描實體位址空間以在快閃器件34中之一或多者中尋找配合新檔案之大小的連續儲存區域,且在FS資訊76中分配各別連續LBA範圍。作為另一實例,SSD控制器30可首先在FS資訊76中分配連續LBA範圍,且接著在多個快閃器件34中分配各別連續儲存空間,以實現對檔案之多個部分的並行存取。用於聯合邏輯及實體位址分配之方法被描述於(例如)2012年12月19日申請之美國專利申請案13/720,024中,該專利申請案之揭示內容係以引用方式併入本文中。
在一些實施例中,SSD控制器30管理資料在快閃器件34中之儲存,但未感知相較於其他資料項目可較重要或敏感的資料項目。在一所揭示實施例中,需要區分具有不同儲存重要性之資料。舉例而言,由於FS資訊76中之甚至單一錯誤亦可引起對FS之重大損害及對大(或甚至所有)儲存區域之存取損失,故FS資訊76相較於檔案資料通常應以較高可靠性予以儲存。
由於SSD控制器30具有用以存取/修改FS資訊76之權限,故SSD控制器可使用每記憶體單元較小數目個位元(例如,使用單位階記憶體單元(SLC)組態而非多位階記憶體單元(MLC)組態)來儲存FS資訊76或其部分,以增加儲存可靠性且縮減存取延時。另外或替代地,SSD控制器30可使用錯誤校正碼(ECC)來儲存及保護FS資訊76,該ECC相較於
用於檔案資料之ECC具有較高錯誤校正能力。
由主機26發送以向SSD控制器30授予用以存取/修改FS資訊76之權限的指示詞或(可能地)每經儲存資料之分離專用指示詞可包含重要性位準指示符。基於重要性指示符,SSD控制器30針對各別資料指派合適的各別儲存及保護資源。替代地或另外,藉由存取FS資訊,SSD控制器直接地識別哪一資料較敏感,且可決定如何儲存該資料。
在一些實施例中,檔案資料68、FS資訊76或其部分快取於RAM 50中。舉例而言,主機26可快取待更新檔案連同FS資訊76之各別部分以供快速存取。在接收到清空請求後,例如,當系統20辨識或起始接近斷電事件時,SSD控制器30就通常將RAM 50之內容清空至快閃器件34。另外或替代地,清空請求可由主機26、SSD控制器30或此兩者發起。進一步另外或替代地,清空請求可週期性地或在任何其他合適時機時發出。
在一所揭示實施例中,SSD控制器30使用用以存取及修改FS資訊76之經授予權限以自快取於RAM 50中之資料當中僅清空經選擇資料群組。經快取資料群組可包含(例如)檔案資料、檔案資料之經更新區段,或FS資訊76之區段。快取於RAM 50中之不同資料群組可被指派不同儲存優先權。舉例而言,由於FS資訊76之完整性及一致性對儲存系統20之操作係關鍵的,故應以最高優先權來清空FS資訊76之經快取區段。在能夠存取FS資訊76的情況下,SSD控制器30可識別FS資訊76之經快取區段,且在其他經快取資料之前清空此等區段。
作為另一實例,不可部分完成寫入操作涉及應作為單元被寫入或以其他方式被捨棄之資料群組。換言之,若出於某一原因而未成功地終結整個資料群組之清空,則應在該資料群組皆未被成功地清空的假定下進行後續儲存及/或管理操作。舉例而言,在斷電事件時,應作為單元而寫入FS資訊76之經更新部分,以便維持FS資訊之完整性
及一致性。因此,以較高優先權來清空作為單元之某些資料群組(例如,一起包含FS資訊之對應於某一檔案之儲存之區段的資料群組之單元)會改良SSD控制器之不可部分完成寫入操作,且輔助維持FS資訊76之完整性及一致性。
在一些實施例中,SSD控制器30使用用以存取FS資訊之能力以執行選擇性清空操作。在一實施例中,選擇性清空命令包含對選擇性地清空關於特定檔案、指定檔案集合及/或檔案區段之資料的請求。類似地,選擇性清空命令可指示SSD清空關於特定儲存命令(例如,執行緒或標籤,此取決於適用儲存協定)之資料。在一些實施例中,選擇性清空優於整個RAM 50內容之習知清空。舉例而言,在斷電事件時,選擇性清空使能夠根據理想次序來清空經快取資訊。
當主機運用新資料來更新先前經儲存檔案時,主機將檔案更新或重寫命令發送至SSD,該檔案更新或重寫命令通常包括新資料及各別LBA。該等LBA係與供儲存檔案之原始資料的各別實體位址相關聯。SSD控制器針對新資料分配新實體位址,且將新資料儲存於新實體位址中。
原則上,一旦成功地儲存每一LBA之資料,SSD控制器就有可能使此LBA與新各別實體位址重新相關聯(亦即,更新邏輯至實體位址映射)。然而,若操作在成功地寫入所有新資料且使所有LBA(亦即,在更新命令中與新資料一起接收之LBA)與新實體位址相關聯之前失敗(例如,若在操作期間發生電力關斷),則所談論之檔案可變得損毀。
因此,在一些實施例中,系統20使用被稱作「寫入時複製(copy-on-write)」之方法來實現自在檔案更新期間之失敗的安全恢復。在接收到重寫命令(包括新資料及各別LBA)後,SSD就首先將所有新資料寫入至新分配之實體位址。在此階段期間,SSD控制器不會使實體位
址與邏輯位址重新相關聯,且因此保持LBA與原始資料之各別實體位址之間的關聯。僅在完全成功地寫入新資料之後,SSD控制器才使LBA與新實體位址重新相關聯。SSD控制器接著使用用以存取FS資訊之能力以在FS資訊中寫入將檔案標記為經成功更新之指示。由於LBA與原始資料之實體位址之間的關聯未被更新直至寫入新資料完成為止,故可在寫入所有新資料之前發生的失敗不會損毀原始檔案。
當FS將給定檔案儲存於SSD 24中時,FS有時亦將彼檔案之一或多個備份複本儲存於該SSD中。原則上,FS可管理原始檔案之LBA與FS資訊中之備份複本之間的關聯,使得若原始檔案出於某一原因而變得損毀,則FS可代替地讀取各別備份複本。在一實例實施例中,SSD控制器能夠存取FS資訊,且對FS透通地管理備份複本之LBA。因此,若SSD控制器未能自某一檔案讀取資料,則SSD控制器(對FS透通地)存取此檔案之備份複本中的對應資料、讀取該資料,且將該檔案資料提供至FS。
圖3及圖4為根據本發明之兩個實施例的示意性地說明用於儲存管理之方法的流程圖。圖3及圖4所描述之方法中的每一者係由主機26及SSD控制器30聯合地實施,其中該主機經由主機介面38而與該SSD控制器通信。
圖3之方法以主機26在FS儲存步驟100處將FS 64之FS資料結構儲存於快閃器件34中而開始。經儲存資料結構指定資料在FS 64中之組織。在本實例中,在步驟100處儲存之FS資料結構包含圖2之FS資訊76。主機26在授予步驟104處將授予指示詞發送至SSD控制器30。授予指示詞包含資料結構在記憶體中之位置,及用以使SSD控制器能夠剖析資料結構之格式化資訊。在某一時間點時,主機26在操作起始步驟108處起始儲存操作。在本實例中,主機26藉由將各別命令發送至SSD控制器30來起始三個儲存操作中之一者。可能儲存操作集合包含
刪除檔案、寫入新檔案,及清空。由於讀取檔案不會修改FS資訊76,故自描述省略此操作。
在自主機26接收到命令後,SSD控制器30就在讀取LBA步驟112處剖析先前儲存之FS資料結構以讀取針對彼檔案分配哪些LBA。「刪除檔案(DELETE A FILE)」命令包含對檔案之處置,其指定資料結構中之各別剖析開始點。SSD控制器30掃描在步驟112處讀取之LBA,且在標記LBA步驟116處將此等LBA標記為未使用。SSD控制器30接著在更新V2P表步驟120處自FS資訊76及自V2P轉譯表72移除經標記LBA。SSD控制器30在應答步驟124處向主機26通知藉由發送應答訊息而終結刪除操作。該方法循環回至步驟108,其中主機26起始另一儲存操作。
當系統20將新檔案儲存於SSD 24中時,主機26將「寫入至檔案(WRITE TO A FILE)」命令發送至SSD控制器30。「寫入(WRITE)」命令可包含檔案資料及大小。在自主機26接收到「寫入至檔案」命令後,SSD控制器30就在LBA分配步驟128處使用對FS資訊之存取能力(由主機授予)以分配LBA,且將經分配LBA標記為FS資料結構中之已使用LBA。「寫入」命令可指寫入新LBA集合應被分配的新檔案,或更新檔案LBA應被重新分配的已儲存檔案。SSD控制器30可使用用於在FS資料結構中分配LBA之任何合適方法。舉例而言,SSD控制器30可最佳地分配LBA以最小化在邏輯位址空間中、在實體位址空間中抑或聯合地在此兩者中之片段,如上文所描述。SSD控制器30在儲存於快閃中步驟132中根據經分配LBA而將資料檔案儲存於快閃器件34中。SSD控制器30接著在步驟120處更新V2P表72以映射用於新分配或重新分配之LBA的邏輯至實體位址轉譯。SSD控制器30在步驟124處向主機26應答寫入/更新檔案操作終結。該方法循環回至步驟108以由主機26起始另一儲存命令。
在接收到「清空RAM(FLUSH RAM)」命令後,SSD控制器30就在資料群組識別步驟136處掃描RAM 50以識別經快取資料群組及各別儲存優先權。SSD控制器30可使用任何合適準則以識別資料群組及優先權。舉例而言,SSD控制器30可將RAM 50中之FS資料結構的經快取區段識別為具有最高儲存優先權之區段。SSD控制器30在清空步驟140處根據經識別優先權而將快取於RAM 50中之資料群組清空至快閃器件34。SSD控制器30分別在步驟120及124處更新V2P表72且將應答訊息發送至主機26。SSD控制器30接著循環回至步驟108,其中主機26起始另一儲存操作。
圖4之方法以主機26在FS儲存步驟200處儲存FS 64之FS資料結構而開始。主機26在授予步驟204處向SSD控制器30通知FS資料結構在記憶體中之位置及格式化資訊。步驟200及204分別類似於圖3之步驟100及104,如上文所描述。主機26在起始選擇性清空操作步驟208處起始「選擇性清空(SELECTIVE FLUSH)」命令。步驟208處之「選擇性清空」命令指定何種資料將被清空,且可包含對待自RAM 50清空至快閃器件34之一或多個檔案的處置。另外或替代地,「選擇性清空」命令可包含對可使用FS資訊進行區分之任何合適資料群組的處置。
在使用FS資料結構的情況下,SSD控制器30在選擇步驟212處選擇RAM 50中包含待清空資料之資料群組。SSD控制器30接著在檔案清空步驟216處將經選擇資料群組(例如,在「清空(FLUSH)」命令中指定之檔案)清空至快閃器件34。SSD控制器30在類似於以上圖3之步驟120及124的步驟220及224處更新V2P表72且發送應答以向主機26通知選擇性清空操作終結。該方法循環回至步驟208,其中主機26起始另一清空操作。
以上圖3及圖4所描述之方法為例示性方法,且在替代實施例中
可使用其他方法。舉例而言,在圖3中,在步驟108處由主機26起始儲存操作。在替代實施例中,SSD控制器30可起始諸如經儲存檔案之邏輯/實體位址空間的重新分配的儲存操作,或清空RAM 50。
應瞭解,上文所描述之實施例係作為實例予以敍述,且本發明不限於上文已特定地展示及描述之內容。確切而言,本發明之範疇包括上文所描述之各種特徵的組合及子組合兩者,以及其變化及修改,該等變化及修改將由熟習此項技術者在閱讀前述描述後就想到且未揭示於先前技術中。以引用方式併入本專利申請案中的文件應被視為本申請案之整體部分,惟如下情形除外:在此等所併入文件中以與本說明書中明確地或隱含地作出之定義衝突的方式定義任何術語的程度上,應僅考慮本申請案中之定義。
20‧‧‧電腦
26‧‧‧中央處理單元(CPU)
30‧‧‧SSD控制器
34‧‧‧NAND快閃記憶體器件
60‧‧‧記憶體管理器程式
64‧‧‧檔案系統(FS)
68‧‧‧經儲存資料區域
72‧‧‧虛擬至實體(V2P)表
76‧‧‧FS資訊
Claims (16)
- 一種資料儲存裝置,其包含:一非揮發性記憶體;一處理器,其經組態以:自一主機接收用於將資料儲存於該非揮發性記憶體中之命令;自該主機進一步接收檔案系統(FS)資訊以供儲存於該非揮發性記憶體中,該FS資訊指定該資料在該主機之一FS中的組織;自該主機接收向該處理器授予用以存取及修改該FS資訊之權限(permission)及能力的一指示詞(directive);及使用該指示詞來存取該FS資訊,以便管理該資料在該非揮發性記憶體中之該儲存;及一揮發性記憶體,其用於快取經接收資料,其中該經快取資料包含一或多個資料群組;其中該處理器經組態以:藉由使用該FS資訊來選擇該等經快取資料群組中之一或多者而儲存該經接收資料;及僅將該等經選擇資料群組自該揮發性記憶體清空(flush)至該非揮發性記憶體,其中該等資料群組包含關於一特定檔案之資料,且其中該處理器經組態以僅選擇及清空關於該特定檔案之該經接收資料。
- 如請求項1之裝置,其中該主機之該FS使用該FS之一邏輯位址空間中的邏輯區塊位址(LBA)來儲存該資料,其中該FS資訊包含指示該等LBA中之哪些用於儲存有效資料的使用狀況資訊,且其中 該處理器經組態以存取該使用狀況資訊。
- 如請求項2之裝置,其中該處理器經組態以在該邏輯位址空間中分配該等LBA中之一或多者,及修改該FS資訊中之該使用狀況資訊以指示該等經分配LBA。
- 如請求項2之裝置,其中該處理器經組態以在該邏輯位址空間中解除分配該等LBA中之一或多者,及修改該FS資訊中之該使用狀況資訊以指示該等經解除分配LBA。
- 如請求項1之裝置,其中該等資料群組包含關於一特定儲存命令之資料,且其中該處理器經組態以僅選擇及清空關於該特定儲存命令之該經接收資料。
- 如請求項1之裝置,其中該等資料群組中之一或多者被指派各別儲存優先權,且其中該處理器經組態以藉由使用該FS資訊來識別該等經指派資料群組及該等各別儲存優先權且根據該等優先權來清空該等經識別資料群組而儲存該經接收資料。
- 如請求項1之裝置,其中該處理器經組態以藉由執行一各別儲存操作而對該等經接收命令中之每一者作出回應、修改該FS資訊同時執行該各別儲存操作,及在終結執行該各別儲存操作後就將一終結訊息發送至該主機。
- 如請求項1之裝置,其中該資料包含第一資料群組及第二資料群組,其中該第一資料群組具有一第一儲存重要性,且該第二資料群組具有低於該第一儲存重要性之一第二儲存重要性,且其中該處理器經組態以藉由以各別第一儲存可靠性位準及第二儲存可靠性位準來儲存該第一資料群組及該第二資料群組而管理該資料之該儲存,其中該第二可靠性位準低於該第一可靠性位準。
- 如請求項1之裝置,其中該處理器經組態以運用邏輯區塊位址 (LBA)來接收該等命令,且使該等LBA與供儲存該資料的該非揮發性記憶體之各別實體位址相關聯,及藉由將新資料儲存於一或多個新實體位址中且僅在寫入所有該新資料之後才使該新資料之該等LBA與該等新實體位址重新相關聯而運用該新資料來更新一先前經儲存檔案。
- 如請求項1之裝置,其中該處理器經組態以在未能讀取一給定檔案之至少部分後就自該FS資訊擷取該給定檔案之一備份複本的一或多個位址,及使用該等位址而自該備份複本讀取至少該部分。
- 一種資料儲存方法,其包含:在一儲存器件中自一主機接收用於將資料儲存於一非揮發性記憶體中之命令;在該儲存器件中自該主機接收檔案系統(FS)資訊以供儲存於該非揮發性記憶體中,該FS資訊指定該資料在該主機之一FS中的組織;在該儲存器件中自該主機接收向該儲存器件授予用以存取及修改該FS資訊之權限及能力的一指示詞;由該儲存器件使用該指示詞來存取該FS資訊,以便管理該資料在該非揮發性記憶體中之該儲存;其中該儲存器件包含用於快取經接收資料之一揮發性記憶體,其中該經快取資料包含一或多個資料群組,且其中管理該經接收資料之該儲存包含使用該FS資訊來選擇該等經快取資料群組中之一或多者,及僅將該等經選擇資料群組自該揮發性記憶體清空至該非揮發性記憶體;及其中該等資料群組包含關於一特定檔案之資料,且其中管理該經接收資料之該儲存包含僅選擇及清空關於該特定檔案之該 經接收資料。
- 如請求項11之方法,其中該主機之該FS使用該FS之一邏輯位址空間中的邏輯區塊位址(LBA)來儲存該資料,其中該FS資訊包含指示該等LBA中之哪些用於儲存有效資料的使用狀況資訊,且其中存取該FS資訊包含存取該使用狀況資訊。
- 如請求項12之方法,其中存取該FS資訊包含:在該邏輯位址空間中分配該等LBA中之一或多者;及修改該FS資訊中之該使用狀況資訊以指示該等經分配LBA。
- 如請求項12之方法,其中存取該FS資訊包含:在該邏輯位址空間中解除分配該等LBA中之一或多者;及修改該FS資訊中之該使用狀況資訊以指示該等經解除分配LBA。
- 如請求項11之方法,其中該等資料群組包含關於一特定儲存命令之資料,且其中管理該經接收資料之該儲存包含僅選擇及清空關於該特定儲存命令之該經接收資料。
- 如請求項11之方法,其中該等資料群組中之一或多者被指派各別儲存優先權,且其中管理該經接收資料之該儲存包含使用該FS資訊來識別該等經指派資料群組及該等各別優先權,及根據該等優先權來清空該等經識別資料群組。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/050,737 US9535628B2 (en) | 2013-10-10 | 2013-10-10 | Memory system with shared file system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201520793A TW201520793A (zh) | 2015-06-01 |
TWI533152B true TWI533152B (zh) | 2016-05-11 |
Family
ID=51688475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103134922A TWI533152B (zh) | 2013-10-10 | 2014-10-07 | 資料儲存裝置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9535628B2 (zh) |
TW (1) | TWI533152B (zh) |
WO (1) | WO2015053966A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160291887A1 (en) * | 2015-03-30 | 2016-10-06 | Kabushiki Kaisha Toshiba | Solid-state drive with non-volatile random access memory |
US9946496B2 (en) | 2015-07-27 | 2018-04-17 | Elastifile Ltd. | SSD with non-blocking flush command |
CN108139904B (zh) | 2015-10-23 | 2022-07-05 | 惠普发展公司,有限责任合伙企业 | 写入命令过滤 |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
TWI582611B (zh) * | 2015-11-27 | 2017-05-11 | 宇瞻科技股份有限公司 | 具揮發性之資料還原裝置、資料儲存裝置及其控制方法 |
US10466907B2 (en) * | 2016-03-22 | 2019-11-05 | Toshiba Memory Corporation | Method to efficiently store object data of an object storage service on a magnetic disk drive and magnetic SMR disk drive |
US10430081B2 (en) | 2016-06-28 | 2019-10-01 | Netapp, Inc. | Methods for minimizing fragmentation in SSD within a storage system and devices thereof |
CN108959108B (zh) * | 2017-05-26 | 2021-08-24 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
US20180364937A1 (en) * | 2017-06-20 | 2018-12-20 | Samsung Electronics Co., Ltd. | System and method for managing memory device |
US10474527B1 (en) | 2017-06-30 | 2019-11-12 | Seagate Technology Llc | Host-assisted error recovery |
US11409451B2 (en) * | 2018-10-19 | 2022-08-09 | Veriblock, Inc. | Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device |
US11188231B2 (en) * | 2019-03-01 | 2021-11-30 | International Business Machines Corporation | Data placement on storage devices |
KR20210134997A (ko) * | 2019-03-29 | 2021-11-11 | 마이크론 테크놀로지, 인크. | 연산 스토리지 및 네트워크 기반 시스템 |
US11113188B2 (en) * | 2019-08-21 | 2021-09-07 | Microsoft Technology Licensing, Llc | Data preservation using memory aperture flush order |
US20240143227A1 (en) * | 2022-10-26 | 2024-05-02 | Western Digital Technologies, Inc. | Data Storage Device and Method for Reducing Flush Latency |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823417B2 (en) * | 2001-10-01 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Memory controller for memory card manages file allocation table |
US7873782B2 (en) | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
US20060184719A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7698495B2 (en) * | 2005-07-01 | 2010-04-13 | QNZ Software Systems GmbH & Co. KG | Computer system having logically ordered cache management |
US7464219B2 (en) * | 2005-08-01 | 2008-12-09 | International Business Machines Corporation | Apparatus, system, and storage medium for data protection by a storage device |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
WO2008013229A1 (fr) * | 2006-07-26 | 2008-01-31 | Panasonic Corporation | dispositif de stockage non volatil, système de stockage non volatil et unité d'hôte |
KR100858241B1 (ko) * | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법 |
US7900118B2 (en) * | 2007-02-12 | 2011-03-01 | Phison Electronics Corp. | Flash memory system and method for controlling the same |
US20100180072A1 (en) * | 2007-06-22 | 2010-07-15 | Shigekazu Kogita | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program |
IL187040A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Caching for structural integrity schemes |
US8572310B2 (en) | 2007-11-06 | 2013-10-29 | Samsung Electronics Co., Ltd. | Invalidating storage area of non-volatile storage medium based on metadata |
US8200904B2 (en) | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
KR101497074B1 (ko) | 2008-06-17 | 2015-03-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
US9122579B2 (en) * | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
WO2011031903A2 (en) | 2009-09-09 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for allocating storage |
WO2012051600A2 (en) | 2010-10-15 | 2012-04-19 | Kyquang Son | File system-aware solid-state storage management system |
US8656101B2 (en) * | 2011-01-18 | 2014-02-18 | Lsi Corporation | Higher-level redundancy information computation |
WO2012109677A2 (en) | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for managing operations for data storage media |
KR101790165B1 (ko) | 2011-08-09 | 2017-11-20 | 삼성전자 주식회사 | 메모리 시스템 및 그것의 메타 데이터 관리 방법 |
JP2013041634A (ja) * | 2011-08-11 | 2013-02-28 | Fujitsu Ltd | 不揮発性半導体記憶装置 |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US8935475B2 (en) * | 2012-03-30 | 2015-01-13 | Ati Technologies Ulc | Cache management for memory operations |
WO2014024350A1 (ja) * | 2012-08-07 | 2014-02-13 | パナソニック株式会社 | 記録装置、アクセス装置、記録システム、及び記録方法 |
WO2015035343A1 (en) * | 2013-09-06 | 2015-03-12 | Lyve Minds, Inc. | Electronic device data distribution |
-
2013
- 2013-10-10 US US14/050,737 patent/US9535628B2/en active Active
-
2014
- 2014-09-29 WO PCT/US2014/057965 patent/WO2015053966A1/en active Application Filing
- 2014-10-07 TW TW103134922A patent/TWI533152B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2015053966A1 (en) | 2015-04-16 |
US20150106410A1 (en) | 2015-04-16 |
TW201520793A (zh) | 2015-06-01 |
US9535628B2 (en) | 2017-01-03 |
WO2015053966A9 (en) | 2015-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533152B (zh) | 資料儲存裝置及方法 | |
US20220083278A1 (en) | Storage system, information processing system and method for controlling nonvolatile memory | |
US20220327050A1 (en) | Storage system and information processing system for controlling nonvolatile memory | |
US10353612B2 (en) | Storage system, information processing system and method for controlling nonvolatile memory | |
TWI709073B (zh) | 分佈式儲存系統、分佈式儲存方法及分佈式設施 | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
JP6076506B2 (ja) | ストレージ装置 | |
JP7315130B2 (ja) | システムガベージコレクションの方法およびソリッドステートディスクにおけるガベージコレクションの方法 | |
KR20150105323A (ko) | 데이터 스토리지 방법 및 시스템 | |
US10649891B2 (en) | Storage device that maintains mapping data therein | |
JP6455900B2 (ja) | ストレージシステムおよびシステムガベージコレクション方法 | |
JP2022173454A (ja) | メモリシステム | |
JP7392080B2 (ja) | メモリシステム | |
WO2016056104A1 (ja) | ストレージ装置、及び、記憶制御方法 | |
US11340820B2 (en) | Storage system and data migration method of migrating group of volume and logical resources of the volume | |
KR102276912B1 (ko) | 스토리지 시스템 및 이의 동작 방법 | |
CN107562639B (zh) | 擦除块读请求处理方法与装置 | |
CN107562654B (zh) | Io命令处理方法与装置 | |
WO2018041258A1 (zh) | 去分配命令处理的方法与存储设备 | |
KR20230166803A (ko) | 높은 퍼지 성능을 제공하는 스토리지 장치 및 그것의 메모리 블록 관리 방법 | |
JP2024043063A (ja) | メモリシステムおよび制御方法 |