TW201737097A - 用於在資料儲存裝置上管理不可變資料之技術 - Google Patents
用於在資料儲存裝置上管理不可變資料之技術 Download PDFInfo
- Publication number
- TW201737097A TW201737097A TW106104617A TW106104617A TW201737097A TW 201737097 A TW201737097 A TW 201737097A TW 106104617 A TW106104617 A TW 106104617A TW 106104617 A TW106104617 A TW 106104617A TW 201737097 A TW201737097 A TW 201737097A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- immutable
- memory
- data storage
- identified
- 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0674—Disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
用於管理不可變資料之技術包括一資料儲存裝置具有一資料儲存控制器及用於儲存資料的記憶體。該資料儲存控制器可自該資料儲存裝置之一主機接收標示儲存於該記憶體中之資料為不可變之請求。回應於該請求,該資料儲存控制器係經組配以設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變。當被設定時,該不可變旗標提供一該相關聯資料為不可修改之指示。於若干實施例中,該資料儲存裝置也可將該不可變資料壓縮及/或移動至該記憶體之一不可變記憶體區。也揭示用以標示該不可變資料為可變的、寫入至該不可變資料、及刪除或修整該不可變資料的技術。
Description
本發明係有關於用於在資料儲存裝置上管理不可變資料之技術。
發明背景 資料儲存裝置,諸如固態硬碟、硬碟驅動裝置、及記憶體裝置,能夠儲存及提供存取各類型資料。當然,於使用期間,不同類型之資料可比其它類型之資料更常被存取或使用。取決於使用的特定儲存技術,經儲存資料之部分的不同存取頻率可導致跨資料儲存裝置不均勻的或以其它方式非期望的損耗程度。
資料儲存裝置的儲存容量乃由裝置的資料儲存裝置或主機經常監控的另一項考量。為了提高儲存容量,有些資料儲存裝置可壓縮或刪除重複儲存的資料。然而,若相關聯資料頻繁地被存取,則此種壓縮及/或刪除重複可能導致處理器及/或功率需求的增加。此外,當使用動態儲存容量時,資料儲存裝置之主機可被要求追蹤動態儲存容量相關的多塊資訊,諸如報告剩餘儲存容量、直到下次儲存容量檢查前允許的資料寫入總次數、及/或其它相關資訊。
依據本發明之一實施例,係特地提出一種設備,包含:一非依電性記憶體,用以儲存資料於其中;及一資料儲存控制器,用以管理讀/寫存取該記憶體,其中該資料儲存控制器係:自一主機接收一標示由一請求識別且儲存於該記憶體中為不可變的資料之該請求;回應於標示該經識別的資料為不可變的該請求,設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變資料,其中該不可變旗標當被設定時指示該相關聯的不可變資料為不可修改的。
較佳實施例之詳細說明 雖然本文揭示之構想對各種修改及替代形式敏感,但其特定實施例已於附圖中藉舉例顯示及容後詳述。但須瞭解絕非意圖限制本文揭示之構想於所揭示的特定形式,反而相反地,本發明係將涵蓋符合本文揭示及隨附之申請專利範圍的全部修改、相當、及替代。
說明書中述及「一個實施例」、「一實施例」、「一例示性實施例」等指示所描述實施例可包括特定特徵、結構、或特性,但每個實施例可以或可非必然包括該特定特徵、結構、或特性。又復,此等片語並非必然係指相同實施例。又復,當一特定特徵、結構、或特性係連結一實施例描述時,係指於熟諳技藝人士之知識範圍以內可連結其它實施例進行此種特定特徵、結構、或特性而無論其是否明確描述皆係如此。此外,須瞭解以「至少一個A、B、及C」之形式涵括於列表中之項目可表示(A);(B);(C);(A及B);(A及C);(B及C);或(A、B及C)。同理,以「A、B、或C中之至少一者」之形式列舉的項目可表示(A);(B);(C);(A及B);(A及C);(B及C);或(A、B及C)。
於有些情況下,所揭示之實施例可於硬體、韌體、軟體、或其任何組合中實施。所揭示之實施例也可實施為由暫態或非暫態機器可讀取(例如,電腦可讀取)儲存媒體攜載或儲存於其上的指令,該等指令可由一或多個處理器讀取及執行。機器可讀取儲存媒體可被具體實施為以由機器可讀取形式儲存或發射資訊的任何儲存裝置、機構、或其它實體結構(例如,依電性或非依電性記憶體、媒體碟片、或其它媒體裝置)。
於附圖中,有些結構及方法特徵可以特定排列及/或排序顯示。然而,須瞭解可能不需特定排列及/或排序。反而於若干實施例中,於例示圖式中此等特徵可以不同方式及/或排序排列。此外,於特定圖式中涵括結構及方法特徵並非意圖暗示此等特徵為全部實施例所必需,及於若干實施例中可能不涵括或可與其它特徵組合。
如於圖1中顯示,用於管理不可變資料的例示性資料儲存裝置100包括資料儲存控制器102及記憶體或資料儲存裝置110,其例示性地包括非依電性資料儲存裝置/記憶體130及依電性資料儲存裝置/記憶體140。容後詳述,於使用中,資料儲存控制器102係經組配以回應於接收自資料儲存裝置100之主機250(參考圖2)的相關聯請求而標示儲存於資料儲存裝置110中之資料為不可變。為了如此進行,於該例示性實施例中,資料儲存控制器102設定與該請求中識別的資料相關聯的不可變旗標,以將該相關聯資料標示為不可變。一旦標示為不可變,相關聯資料通常為無法修改,但接收自主機250的特定寫入或刪除指令除外,容後詳述。於若干實施例中,資料儲存控制器102也可壓縮(例如,緊壓、刪除重複等)經識別的資料為不可變標示程序的部分。藉由壓縮經識別的資料,資料儲存控制器102可提高資料儲存裝置110的動態儲存容量。此外,因經壓縮資料被標示為不可變(亦即通常為不可修改),與存取經壓縮資料相關聯的典型額外負擔(亦即,解除壓縮資料以寫入資料的要求)被最小化或以其它方式減少。
此外,於若干實施例中,資料儲存控制器102可將經識別的資料自資料儲存裝置110的內定或可變記憶體區移動至資料儲存裝置110的不可變記憶體區作為不可變標示程序的部分。舉例言之,資料儲存裝置110可將資料自資料儲存裝置110之(例如,非依電性記憶體130之)高耐久記憶體區至資料儲存裝置110之(例如,非依電性記憶體130之)相對低耐久記憶體區。須瞭解因經識別的資料通常為無法修改,故因預期較低次數寫入不可變資料,低耐久記憶體區可使用來儲存不可變資料。
資料儲存控制器102也經組配以回應於來自主機(參考圖2)的請求以將不可變資料(亦即,標示為不可變的資料)轉換成可變資料。為了達成該目的,資料儲存控制器102重置與不可變資料相關聯的不可變旗標,以指示該相關聯資料現在為可修改。此外,於其中該不可變資料係經壓縮的實施例中,資料儲存控制器102解壓縮不可變資料作為轉換程序之部分。同理,於其中該不可變資料係被移動至資料儲存裝置110的不可變記憶體區的實施例中,資料儲存控制器102可將不可變資料自資料儲存裝置110的不可變記憶體區(例如,低耐久記憶體區)移動至可變記憶體區(例如,高耐久記憶體區)。
容後詳述,資料儲存控制器102也可回應於來自主機250(參考圖2)與不可變資料相關聯的其它請求,諸如導向不可變資料之不可變寫入請求及/或導向不可變資料之刪除或修整請求。為了輔助來自主機250的請求,資料儲存控制器102可暴露合宜應用程式規劃介面(API)以提供新指令給主機250(例如,「完成」指令以將資料標示為不可變,「未完成」指令以將不可變資料轉換成可變資料,「不可變寫入」指令以寫入成不可變資料,及/或「不可變資料刪除/修整」指令以刪除或修整不可變資料)。
資料儲存裝置100可具體實施為能夠儲存資料及進行本文中描述的功能之任何類型的裝置。於該例示性實施例中,資料儲存裝置100被實施為固態硬碟;然而,於其它實施例中,資料儲存裝置100被實施為硬碟驅動裝置、記憶體模組裝置、快取記憶體裝置、及/或其它資料儲存裝置。
資料儲存裝置100之資料儲存控制器102可被具體實施為任何類型之能夠管理儲存於非依電性記憶體130中之資料的控制裝置、電路、或硬體裝置集合。於該例示性實施例中,資料儲存控制器102包括處理器或處理電路104、本地記憶體106、及主機介面108。當然,於其它實施例中,資料儲存控制器102可包括於固態硬碟之驅動控制器中常見的額外裝置、電路、及/或組件。
處理器104可具體實施為能夠進行本文中描述的功能的任何類型之處理器。舉例言之,處理器104可具體實施為單一或多核心處理器、數位信號處理器、微控制器、或其它處理器或處理/控制電路。同理,本地記憶體106可具體實施為能夠進行本文中描述的功能的任何類型之依電性及/或非依電性記憶體或資料儲存裝置。於該例示性實施例中,本地記憶體106儲存可由處理器104執行的韌體及/或其它指令以進行所描述的資料儲存控制器102之功能。於若干實施例中,處理器104及本地記憶體106可形成單晶片系統(SoC)的部分,且連同資料儲存控制器102之其它組件可結合至單一積體電路晶片上。
主機介面108也可具體實施為任何類型之硬體處理器、處理電路、輸入/輸出電路、及/或能夠輔助資料儲存裝置100與主機裝置或服務(例如,主機應用程式)通訊的組件之集合。換言之,主機介面108具體實施或建立介面用來存取儲存於資料儲存裝置100上(例如,儲存於資料儲存裝置110上)之資料。為了達成該目的,主機介面108可經組配以利用任何合宜通訊協定及/或技術,以取決於資料儲存裝置之類型而輔助與資料儲存裝置100通訊。舉例言之,於若干實施例中,主機介面108可經組配以使用串列進階技術附接(SATA)、周邊組件互連快速(PCIe)、串列附接SCSI(SAS)、通用串列匯流排(USB)、及/或其它通訊協定及/或技術而與主機裝置或服務通訊。
非依電性資料儲存裝置130可具體實施為能夠以持久方式儲存資料的任何類型之資料儲存裝置。舉例言之,於該例示性實施例中,非依電性資料儲存裝置130係被具體實施為非依電性記憶體,且於後文中稱作為非依電性記憶體130,須瞭解於其它實施例中非依電性資料儲存裝置130可被具體實施為其它類型的持久性資料儲存裝置,諸如硬碟。非依電性記憶體130可被具體實施為NAND快閃記憶體、NOR快閃記憶體、相變記憶體(PCM)、電氣可抹除可規劃唯讀記憶體(EEPROM)、電阻式記憶體、奈米線記憶體、三維交叉點記憶體陣列、鐵電電晶體隨機存取記憶體(FeTRAM)、磁阻式隨機存取記憶體(MRAM)、自旋轉移矩(STT)MRAM、及/或其它非依電性記憶體。
依電性資料儲存裝置140可被具體實施為當資料儲存裝置100係在操作中時能夠儲存資料的任何類型之資料儲存裝置。舉例言之,於該例示性實施例中,依電性資料儲存裝置140被具體實施為依電性記憶體且於後文中稱為依電性記憶體140,須瞭解於其它實施例中非依電性資料儲存裝置130可被具體實施為其它類型的非持久性資料儲存裝置。依電性記憶體140可被具體實施為動態隨機存取記憶體(DRAM)或其它類型的依電性記憶體。
於若干實施例中,資料儲存裝置100也可包括斷電回應電路150,其係經組配用以於供應資料儲存裝置100的電力出乎意外地喪失或中斷之情況下,提供備用電力給資料儲存裝置100的某些組件歷經一段時間。為了達成該目的,斷電回應電路150包括能量儲存裝置152,其可被具體實施為任何類型之能量儲存裝置,其能提供電力給資料儲存裝置100的組件歷經一段時間。於該例示性實施例中,能量儲存裝置152被具體實施為一排組之電容器,其於操作期間充電,而於斷電之情況下自其中汲取能源。於其它實施例中,能量儲存裝置152可被具體實施為或以其它方式包括其它類型之能量儲存裝置,諸如備用電池。
現在參考圖2,於使用中,資料儲存裝置100可建立環境200。例示環境200包括不可變性管理模組202、可變性管理模組204、不可變寫入模組206、及不可變刪除模組208。環境200之模組及其它組件中之各者可具體實施為韌體、軟體、硬體、或其組合。舉例言之,環境200之各種模組、邏輯、及其它組件可形成資料儲存控制器102或資料儲存裝置100之其它硬體組件的一部分,或以其它方式由其建立。如此,於若干實施例中,環境200之模組中之任一或多者可被具體實施為任何類型之電氣裝置之電路或集合(例如,不可變性管理模組202、可變性管理模組204、不可變寫入模組206、及不可變刪除模組208等)。
不可變性管理模組202係經組配以處理接收自主機250的不可變性請求,其可被具體實施為應用程式、服務、及/或其它裝置。換言之,不可變性管理模組202處理來自主機250的不可變性請求以將儲存於資料儲存裝置110(例如,儲存於非依電性記憶體130)中之資料標示為不可變資料。容後詳述,基於涵括於請求中之邏輯區塊位址(LBA)範圍、涵括於請求中之資料物件的ID、或涵括於請求中之其它識別資料,此等請求可識別資料被標示為不可變的。雖言如此,回應於此種請求,不可變性管理模組202係經組配以設定與該將該資料標示為不可變的請求中識別的資料相關聯的不可變旗標230。不可變旗標230可被具體實施為能夠提供指示相關聯資料已被標示為不可變的(亦即,不可修改的)任何類型之資料,諸如資料位元、暫存器、或其它資料位置。舉例言之,於該例示性實施例中,如於圖2中顯示,不可變旗標230係維持於依電性記憶體140中於特殊資料結構或表中。於此等實施例中,各個不可變旗標230可與特定一塊資料或與一範圍之資料位置(例如,一範圍之邏輯區塊位址)相關聯。於其它實施例中,不可變旗標230可形成邏輯至實體位址表232的一部分,其係維持於依電性記憶體140中。於任一種情況下,相關聯資料結構可定期或有時及/或回應於電力減低或斷電事件而被拷貝至非依電性記憶體130以維持不可變旗標230之準確性。另外,於若干實施例中,不可變旗標230可被維持於位元組可定址持久性記憶體,諸如非依電性記憶體130中。須瞭解不可變旗標230可被設定至任何合宜值或資料以指示相關聯資料為不可變的(例如,取決於定特實施方式,不可變旗標230可被設定為邏輯高或低)。
容後詳述,於若干實施例中,欲標示為不可變的經識別的資料也可經壓縮及/或移動至資料儲存裝置110的(亦即,非依電性記憶體130的)不可變記憶體區。為了達成該目的,不可變性管理模組202可包括資料壓縮模組210及資料移動模組212。資料壓縮模組210係經組配以壓縮經識別的資料。為了達成該目的,資料壓縮模組210可利用任何合宜壓縮技術或壓縮技術之組合。舉例言之,於若干實施例中,資料壓縮模組210係經組配以使用合宜壓縮演算法或程序而壓縮經識別的資料。此外或另外,資料壓縮模組210可在經識別的資料上施以刪除重複程序,藉由自其中去除重複資料部分而縮小經識別的資料的大小。又,於若干實施例中,此外或另外,資料壓縮模組210可施加內容知曉重新編碼程序至經識別的資料,以縮小經識別的資料的總體大小。
資料移動模組212係經組配以自非依電性記憶體130之可變或內定記憶體區移動經識別的資料至非依電性記憶體130之不可變記憶體區。舉例言之,於若干實施例中,資料移動模組212可將經識別的資料自非依電性記憶體130的高耐久記憶體區220移動至低耐久記憶體區222。高耐久記憶體區220可被具體實施為具有相對低寫入計數的非依電性記憶體130之區,及/或使用「高」耐久記憶體模式於非依電性記憶體130中建立的區。相反地,低耐久記憶體區222可被具體實施為具有相對高寫入計數的非依電性記憶體130之區,及/或使用「低」耐久記憶體於非依電性記憶體130中建立的區。舉例言之,於該例示性實施例中,非依電性記憶體130可被具體實施為植入混成胞元模式的NAND非依電性記憶體130。於此等實施例中,高耐久記憶體區220可被具體實施為以單一層級胞元(SLC)模式組配的NAND依電性記憶體130之一區。此外,於此等實施例中,低耐久記憶體區222可被具體實施為以多層級胞元(MLC)、三層級胞元(TLC)、或四層級胞元(QLC)模式組配的NAND依電性記憶體130之一區。須瞭解雖然SLC模式致能的高耐久記憶體區220具有改良耐久性,但使用MLC、TLC、或QLC模式之低耐久記憶體區222每個胞元可儲存更多個位元(亦即,分別地2位元,3位元,及4位元)。此外,藉由使用「低」耐久記憶體模式以儲存不可變資料,可提高資料儲存裝置100的總容量及儲存經濟學,同時因不可變資料之預期寫入數目低之故,可減少此種「低」耐久記憶體模式的典型缺點。也須瞭解取決於特定實施例,不可變性管理模組202可以任何排序進行各項功能(例如,在壓縮經識別的資料及設定不可變旗標230之前移動經識別的資料至不可變記憶體區,在移動已壓縮的經識別的資料至不可變記憶體區及重置不可變旗標230之前壓縮經識別的資料等)。
可變性管理模組204係經組配以處理接收自主機250的可變性請求。換言之,可變性管理模組204處理來自主機的請求以將不可變資料(亦即,不可變性管理模組202先前已標示為不可變的資料)轉換成可變資料。為了達成該目的,可變性管理模組204可對在資料上進行的不可變性管理模組202之各項功能反向進行。舉例言之,可變性管理模組204可重置與於可變性請求中識別的資料相關聯的不可變旗標230,以指示不可變資料現在是可變的(亦即,現在可經修改)。
此外,於其中不可變資料係經壓縮的實施例中,可變性管理模組204可解壓縮(例如,解除壓縮、解除刪除重複等)不可變資料。當然,非依電性記憶體130可沒有足夠可用容量而以解壓縮態儲存不可變資料。如此,可變性管理模組204可首先確證非依電性記憶體130的容量,及唯若剩餘容量足夠(例如,大於臨界值量)才解壓縮不可變資料。否則,可變性管理模組204可使得可變性請求失效。又,於其中不可變資料儲存於非依電性記憶體130之不可變區的實施例中,可變性管理模組204可將不可變資料自不可變記憶體區移動至可變或內定記憶體區(例如,自低耐久記憶體區222至高耐久記憶體區220)。須瞭解取決於特定實施例,可變性管理模組204可以任何排序進行各項功能(例如,在解壓縮不可變資料及重置不可變旗標230之前移動不可變資料至可變記憶體區,在移動解壓縮的不可變資料至可變記憶體區及重置不可變旗標230之前解壓縮不可變資料等)。
不可變寫入模組206係經組配以對已被標示為不可變(亦即,不可修改的)的資料處理寫入請求。於若干實施例中,不可變寫入模組206係經組配以阻擋典型寫入請求,但允許特殊「不可變寫入」請求至不可變資料。為了達成該目的,不可變寫入模組206可檢查於寫入請求中經識別的資料相關聯的不可變旗標,及拒絕對已經標示為不可變的資料之任何寫入請求。藉此方式,可減少寫入至不可變資料的頻率。
回應於接收自主機250的不可變寫入請求,不可變寫入模組206係經組配以將於不可變寫入請求中識別的不可變資料自不可變資料轉換成可變資料。為了達成該目的,不可變寫入模組206可採用如上討論的可變性管理模組204之功能(例如,解壓縮不可變資料,移動不可變資料至可變記憶體區,及/或重置相關聯不可變旗標230)。在經識別的不可變資料已被轉換成可變資料之後,不可變寫入模組206可以典型方式在已轉換的可變資料上進行所請求的寫入。在可變資料已被寫入之後,不可變寫入模組206使用如上討論的不可變性管理模組202之功能將可變資料轉換回不可變資料(例如,壓縮可變資料,移動可變資料至不可變記憶體區,及/或設定相關聯不可變旗標230)。
不可變刪除模組208係經組配以對已被標示為不可變的資料處理刪除或修整請求。為了達成該目的,不可變刪除模組208可以典型方式在不可變資料上進行刪除或修整功能。然而,因於若干實施例中不可變資料被壓縮,不可變刪除模組208係經組配以基於已刪除的不可變資料之壓縮大小而判定資料儲存裝置110的(例如,非依電性記憶體130的)更新剩餘儲存容量,及報告更新剩餘儲存容量給主機250。藉此方式,主機250可基於剩餘儲存容量監視資料儲存裝置110之動態儲存容量而未同時監視寫入計數。
現在參考圖3,於使用中,資料儲存裝置100的資料儲存控制器102可執行標示資料為不可變的方法300。方法300始於方塊302,其中資料儲存控制器102判定不可變請求是否已接收自主機250。若是,則方法300前進至方塊304,其中資料儲存控制器102識別欲被標示為不可變的資料。於該例示性實施例中,接收自主機250的請求識別欲被標示為不可變的資料。為了達成該目的,請求可包括能夠識別資料的任何類型之識別符。舉例言之,於若干實施例中,於方塊306,基於涵括於接收自主機250的請求中之邏輯區塊位址(LBA)範圍,資料儲存控制器102可識別欲被標示為不可變的資料。另外,於方塊308,基於接收自主機250的請求中涵括的資料物件,資料儲存控制器102可識別欲被標示為不可變的資料。
雖言如此,資料儲存控制器102已識別欲被標示為不可變的資料之後,方法300前進至方塊310,其中資料儲存控制器102判定經識別的資料是否欲被壓縮。舉例言之,於若干實施例中,資料儲存控制器102可分析經識別的資料而判定壓縮經識別的資料是否將獲得大於臨界值量的儲存容量之節省,及若是則進行壓縮。另外,於其它實施例中,欲被標示為不可變的全部資料可經壓縮。於又其它實施例中,只有部分已被識別為高度可壓縮的資料才被壓縮。
若於方塊310中資料儲存控制器102判定經識別的資料係欲被壓縮,則方法300前進至方塊312,其中資料儲存控制器102壓縮經識別的資料。為了達成該目的,資料儲存控制器102可使用任一種或多種壓縮演算法及/或技術以壓縮資料而縮小資料的總體大小。舉例言之,於方塊314,資料儲存控制器102可壓縮經識別的資料。此外或另外,於方塊316,資料儲存控制器102可在經識別的資料上進行刪除重複處理。此外或另外,於方塊318,資料儲存控制器102可在經識別的資料上進行內容知曉重編碼處理。當然,於其它實施例中,資料儲存控制器102可在經識別的資料上進行額外或其它壓縮處理。
若於方塊310中經識別的資料係判定為經壓縮或於方塊312中資料經壓縮後,方法300前進至方塊320。於方塊320,資料儲存控制器102判定經識別的資料是否欲被移動到非依電性記憶體130的不可變記憶體區。於若干實施例中,如上討論,非依電性記憶體130的一區可得用來儲存不可變資料。不可變記憶體區可以是例如,比非依電性記憶體130之其它區具有更低寫入耐外性的記憶體區。於其它實施例中,非依電性記憶體130可不包括用於儲存不可變資料的任何特定區,及於此等實施例中,於非依電性記憶體130內部不可變資料可不移動。然而,若於方塊320資料儲存控制器102判定經識別的資料欲被移動,方法300前進至方塊322,其中資料儲存控制器102將經識別的資料自其內定位置(例如,可變記憶體區)移動至非依電性記憶體130的不可變記憶體區。舉例言之,於方塊324,資料儲存控制器102可將經識別的資料自高耐久記憶體區(例如,具有低寫入計數或經組配用於SLC模式的記憶體區)移動至相對低耐久記憶體區(例如,具有高寫入計數或經組配用於MLC、TLC、或QLC模式的記憶體區)。
於方塊322經識別的資料已經移動之後,或於方塊320若資料儲存控制器102判定經識別的資料不被移動,則方法300前進至方塊326。於方塊326,資料儲存控制器102將該經識別的資料標示為不可變的。為了達成該目的,於該例示性實施例中,於方塊328,資料儲存控制器102設定與經識別的資料相關聯的不可變旗標230。如前文討論,不可變旗標230可被具體實施為任何類型之能夠提供相關聯資料已被標示為不可變的(亦即,不可修改的)指示之資料,諸如資料位元、暫存器、或其它資料位置。舉例言之,於若干實施例中,如於圖2中顯示,不可變旗標230可形成邏輯至實體位址表232的一部分。
須瞭解於方塊312中經識別的資料的壓縮,於方塊322中經識別的資料的移動,及於方塊326中經識別的資料的標示,於其它實施例中可以任何循序排序或實質上彼此並列地進行。舉例言之,於若干實施例中,在經壓縮及標示之前,經識別的資料可被移動至不可變記憶體區。
雖言如此,於若干實施例中,在經識別的資料已被壓縮、移動、及標示之後,方法300前進至方塊330。於方塊330,資料儲存控制器102可以資料儲存裝置110的剩餘動態儲存容量更新主機250。換言之,在經識別的資料已被壓縮、移動、及/或加旗標標示為不可變之後,資料儲存控制器102可判定資料儲存裝置110的(例如,非依電性記憶體130的)剩餘儲存容量,及對主機250報告剩餘儲存容量。但因於傳統意義中不可變資料為不可修改,故在預定寫入次數之後,主機250無需定期查詢資料儲存裝置100用以更新儲存容量,原因在於使用未經壓縮資料寫入於經壓縮資料上方的可能性為較不可能。在資料儲存裝置100的剩餘儲存容量已對主機250報告之後,方法300迴圈返回方塊302,於其中資料儲存裝置100繼續監視來自主機250的不可變請求。
現在參考圖4,於使用中,資料儲存裝置100之資料儲存控制器102可執行用於將不可變資料轉換成可變資料之方法400。方法400始於方塊402,於其中資料儲存控制器102判定是否已自主機250接收可變性請求。若是,則方法400前進至方塊404,於其中資料儲存控制器102識別欲被轉換成可變資料的不可變資料。如前文有關圖3中討論,接收自主機250的請求可藉,例如,涵括於請求中之邏輯區塊位址範圍或涵括於請求中之資料物件而識別不可變資料。
在資料儲存控制器102已識別欲被轉換的不可變資料之後,方法400前進至方塊406,於其中資料儲存控制器102判定經識別的不可變資料是否被壓縮。為了達成該目的,資料儲存控制器102可分析不可變資料,檢查相關聯不可變旗標,或基於相關聯的不可變標記處理而設定壓縮(例如,如於圖3中顯示)。若資料儲存控制器102判定經識別的不可變資料係被壓縮,則方法400前進至方塊408,於其中資料儲存控制器102判定經解壓縮不可變資料的大小。換言之,資料儲存控制器102判定以其解壓縮狀態儲存不可變資料要求的記憶體儲存裝置的大小。隨後,於方塊410,資料儲存控制器102比較所決定的經解壓縮不可變資料之大小與資料儲存裝置110的(例如,非依電性記憶體130的)剩餘可用儲存容量。若於方塊410資料儲存控制器102判定資料儲存裝置110沒有足夠容量以於其解壓縮狀態儲存不可變資料,則方法400前進至方塊412,於其中資料儲存控制器102允許可變資料請求失效(亦即,資料儲存控制器102不會解壓縮不可變資料)。此外,於若干實施例中,於方塊414,資料儲存控制器102可通知主機可變資料請求失效。隨後,方法400迴圈返回方塊402,於其中資料儲存控制器102監視來自主機250的額外可變資料請求。
回頭參考方塊410,若資料儲存控制器102判定資料儲存裝置110確實有足夠容量以於其解壓縮狀態儲存不可變資料,則方法400前進至方塊416,於其中資料儲存控制器102解壓縮已被壓縮的不可變資料。為了達成該目的,取決於不可變資料如何被壓縮,資料儲存控制器102可使用任一或多個壓縮/解壓縮演算法及/或技術以將不可變資料解壓縮。舉例言之,資料儲存控制器102可解壓縮不可變資料,施以不可變資料的逆向刪除重複處理,重編碼不可變資料,及/或在不可變資料上進行額外或其它解壓縮處理器。
於方塊416不可變資料已被解壓縮之後,或若於方塊406資料儲存控制器102判定不可變資料係未經壓縮,則方法400前進至方塊418。於方塊418,資料儲存裝置判定不可變資料是否欲被移動至非依電性記憶體130的內定的或可變記憶體區。若是,則於方塊420,資料儲存控制器102將經識別的不可變資料自不可變記憶體區移動至可變記憶體區。舉例言之,於若干實施例中,資料儲存控制器102可將經識別的不可變資料自相對低耐久記憶體區(例如,具有高寫入計數或經組配用於MLC、TLC、或QLC模式的記憶體區)移動至相對高耐久記憶體區(例如,具有低寫入計數或經組配用於SLC模式的記憶體區)。
於方塊420經識別的不可變資料已被移動之後或若於方塊418資料儲存控制器102判定經識別的不可變資料係不被移動,則方法400前進至方塊422。於方塊422,資料儲存控制器102標示經識別的不可變資料為可變(亦即,可修改)。為了達成該目的,於該例示性實施例中,於方塊424,資料儲存控制器102重置與經識別的不可變資料相關聯的不可變旗標230。再度,如前文討論,不可變旗標230可被具體實施為能夠提供指示相關聯資料已被標示為不可變的(亦即,不可修改的)任何類型之資料,諸如資料位元、暫存器、或其它資料位置。
如前文就圖3討論,須瞭解於方塊416中經識別的不可變資料的解壓縮,於方塊420中經識別的不可變資料的移動,及於方塊422中經識別的不可變資料的標示,於其它實施例中可以任何循序排序或實質上彼此並列地進行。舉例言之,於若干實施例中,在解壓縮及標示之前,經識別的不可變資料可被移動至可變記憶體區。
雖言如此,於若干實施例中,在經識別的可變資料已經解壓縮、移動、及適當標示之後,方法400前進至方塊426。於方塊426,資料儲存控制器102可以資料儲存裝置110之剩餘動態儲存容量更新主機250。換言之,在經識別的不可變資料已經解壓縮、移動、及/或加旗標標示為可變之後,資料儲存控制器102可判定資料儲存裝置110的(例如,非依電性記憶體130的)剩餘儲存容量,及報告剩餘儲存容量給主機250。隨後,方法400迴圈返回方塊402,於其中資料儲存裝置100繼續監視來自主機250的可變性請求。
現在參考圖5,於使用中,資料儲存裝置100之資料儲存控制器102可執行用於寫入至不可變資料之方法500。方法500始於方塊502,於其中資料儲存控制器102判定寫入請求是否接收自主機250。若是,則方法500前進至方塊504,於其中資料儲存控制器102判定被請求的寫入是否寫入至已被標示為不可變的資料。舉例言之,於該例示性實施例中,於方塊506,資料儲存控制器102檢查與欲被寫入的資料相關聯的不可變旗標230。另外,於其它實施例中,資料儲存控制器102可基於資料之位置(例如,寫入請求之目的地位置)判定欲被寫入的資料是否為不可變資料。
於方塊508,若資料儲存控制器102判定被請求的寫入係不寫入至不可變資料,則方法500前進至方塊510,於其中被請求的寫入係作為正常處理(亦即,被請求的寫入係至可變資料)。隨後,方法500迴圈返回方塊502,於其中資料儲存控制器102繼續監視來自主機250的寫入請求。但若於方塊508資料儲存控制器102判定被請求的寫入係至不可變資料,則方法500前進至方塊512。於方塊512,資料儲存控制器102判定被請求的寫入是否為不可變寫入請求。換言之,資料儲存控制器102判定所接收的寫入請求是否為正常寫入請求,或為由主機250可使用以寫入至不可變資料的特殊「不可變寫入請求」。若資料儲存控制器102判定寫入請求不是不可變寫入請求,則方法500前進至方塊514,於其中資料儲存控制器102阻擋至不可變資料的寫入請求。藉此方式,典型的寫入至不可變資料被資料儲存控制器102阻擋,及不可變資料維持實質上不可修改(但特殊不可變寫入請求除外)。隨後,方法500迴圈返回方塊502,於其中資料儲存控制器102繼續監視來自主機250的寫入請求。
回頭參考方塊512,若資料儲存控制器102判定寫入請求為不可變寫入請求,則方法500前進至方塊516。於方塊516,資料儲存控制器102將由寫入請求識別的不可變資料轉換成可變資料。取決於使用來標示資料為不可變的特定程序(參考圖3),資料儲存控制器102可在不可變資料上進行一或多個程序以將不可變資料轉換成可變資料。舉例言之,於該例示性實施例中,於方塊518,資料儲存控制器102可解壓縮不可變資料,於方塊520將不可變資料自不可變記憶體區(例如,低耐久記憶體區)移動至內定的或可變記憶體區(例如,高耐久記憶體區),及/或於方塊522重置與不可變資料相關聯的不可變旗標230。須瞭解於若干實施例中,在解壓縮不可變資料之前,資料儲存控制器102可經組配以確認資料儲存裝置110的儲存容量為足夠,及若否,則以類似圖4中方法400之方塊408-414的前文討論方式讓寫入請求失效。
於方塊516,在資料儲存控制器102已將經識別的不可變資料轉換成可變資料之後,於方塊524,資料儲存控制器102在可變資料上進行所請求的寫入操作。因經識別的資料現在是可變資料,故資料儲存控制器102可以正常方式進行寫入請求。
在資料儲存控制器102已於可變資料上進行寫入請求之後,方法500前進至方塊526,於其中資料儲存控制器102將寫入至可變資料轉換回不可變資料。再度,取決於使用來標示資料為不可變的特定程序(參考圖3),資料儲存控制器102可在可變資料上進行一或多個程序以將可變資料轉換成不可變資料。舉例言之,於該例示性實施例中,於方塊528,資料儲存控制器102可壓縮可變資料,於方塊530將可變資料自內定的或可變記憶體區(例如,高耐久記憶體區)移動至不可變記憶體區(例如,低耐久記憶體區),及/或於方塊532重置與可變資料相關聯的不可變旗標230。於若干實施例中,資料儲存控制器102可延遲壓縮、移動、及/或標示程序達可組配的時間量以減低已壓縮資料與未經壓縮資料間之轉換頻率。此外,於若干實施例中,於方塊534,資料儲存控制器102可以資料儲存裝置110的剩餘動態儲存容量更新主機250。隨後,方法500迴圈返回方塊502,於其中資料儲存裝置100繼續監視來自主機250的寫入請求。
現在參考圖6,於使用中,資料儲存裝置100之資料儲存控制器102可執行用於刪除或修整不可變資料之方法600。方法600始於方塊602,於其中資料儲存控制器102判定刪除請求是否已接收自主機250。若是,則方法600前進至方塊604,於其中資料儲存控制器102判定欲刪除的被請求資料是否被標示為不可變的。舉例言之,於該例示性實施例中,於方塊606,資料儲存控制器102檢查與欲被刪除的資料相關聯的不可變旗標230。另外,於其它實施例中,資料儲存控制器102基於資料之位置可判定欲被刪除的資料是否為不可變資料。
於方塊608,若資料儲存控制器102判定被請求的欲被刪除資料不是不可變資料,則方法600前進至方塊610,於其中被請求的刪除係當作正常來處理(亦即,被請求的刪除係針對可變資料)。隨後,方法600迴圈返回方塊602,於其中資料儲存控制器102繼續監視來自主機250的刪除請求。但若於方塊608資料儲存控制器102判定被請求的欲被刪除資料為不可變資料,則方法600前進至方塊612。於方塊612,資料儲存控制器102自非依電性記憶體130之不可變記憶體區刪除所請求的不可變資料。取決於非依電性記憶體130中使用的特定記憶體技術,刪除處理可進行為刪除或修整處理。
於方塊614,資料儲存控制器102基於被刪除的不可變資料而判定資料儲存裝置110的(例如,非依電性記憶體130的)已更新之剩餘動態儲存容量。舉例言之,於方塊616,資料儲存控制器102可基於被刪除的不可變資料之壓縮大小(而非基於解壓縮大小)判定資料儲存裝置110的已更新之剩餘動態儲存容量。隨後,於方塊618,資料儲存控制器102以資料儲存裝置110的剩餘動態儲存容量更新主機250。方法600隨後迴圈返回方塊602,於其中資料儲存裝置100繼續監視來自主機250的刪除請求。
現在參考圖7,於使用中,主機250(參考圖2)可執行用於管理可變資料之方法700。方法700始於方塊702,於其中主機250判定分析資料是否儲存於資料儲存裝置100中,或欲儲存於資料儲存裝置100中之資料,以識別可被標示為不可變的資料。舉例言之,主機250可定期地或反應性地分析儲存於資料儲存裝置100中之資料。
雖言如此,若主機250判定分析資料,則方法700前進至方塊704。於方塊704,主機識別資料欲被標示為不可變的(亦即,不可修改的)。換言之,主機250識別儲存於資料儲存裝置100中之資料不可能被改變、寫入、或刪除歷經一段時間。為了達成該目的,主機250可利用任何方法以識別欲被標示為不可變的候選者資料。舉例言之,於若干實施例中,於方塊706,主機250可識別可執行檔案為欲被標示為不可變的資料,其典型不隨著時間之推移而被修改。此外或另外,於方塊708,主機250可基於資料的存取或修改頻率而被標示為不可變。舉例言之,主機250可識別欲被標示為不可變的資料為歷經某個臨界值時間未曾被寫入的任何資料。此外或另外,於方塊710,主機250之一或多個應用可宣告特定資料欲被儲存為不可變的資料。換言之,主機250可提供應用程式規劃介面給主機應用程式以允許主機應用程式自行識別任何資料為不可變資料。
於方塊704,在主機250已識別資料欲被標示為不可變之後,方法700前進至方塊712,於其中主機判定是否以資料的不可變標示進行。若是,則方法700前進至方塊714,於其中主機簽發請求給資料儲存裝置100以將該經識別的資料標示為不可變。如前文討論,此等請求可識別欲以各種方式標示的資料。舉例言之,於方塊716,主機250可簽發一請求其識別邏輯區塊位址(LBA)或欲被標示為不可變的資料範圍。此外或另外,於方塊718,主機250可簽發一請求其識別欲被標示為不可變的資料之資料物件。
於方塊714,在主機250簽發標示該經識別的資料為不可變的請求之後,於若干實施例中,方法700前進至方塊720。於方塊720,主機250自資料儲存裝置100接收資料儲存裝置110之已更新的剩餘動態儲存容量。如前文討論,因不可變資料經壓縮而不可能被修改故,主機250無需監視至資料儲存裝置100的寫入請求,及基於所監視的寫入請求,定期查詢資料儲存裝置100有關已更新的動態儲存容量。隨後,方法700迴圈返回方塊702,於其中主機250再度判定是否分析儲存於資料儲存裝置100中之資料,或欲被儲存於資料儲存裝置100中之資料,以識別已被標示為不可變的資料。
現在參考圖8,於若干實施例中,資料儲存裝置100可結合入計算裝置800內或形成其中一部分。計算裝置800可被具體實施為任何類型之計算裝置,於其中可使用資料儲存裝置100者。舉例言之,計算裝置800可被具體實施為智慧型電話、平板電腦、筆記型電腦、膝上型電腦、小筆電、超筆電TM
、穿戴式計算裝置、一副智慧型眼鏡、頭戴式計算裝置、細胞式電路、桌上型電腦、智慧型裝置、個人數位助理器、行動網際網路裝置、伺服器、資料儲存裝置、及/或任何其它計算/通訊裝置。如於圖8中顯示,例示的計算裝置800包括處理器810、輸入/輸出(I/O)子系統812、及主記憶體814。當然,於其它實施例中,計算裝置800可包括其它或額外組件,諸如典型計算裝置中所常見者(例如,各種輸入/輸出裝置及/或其它組件)。此外,於若干實施例中,例示組件中之一或多者可結合入另一組件內或形成其中一部分。舉例言之,於若干實施例中,記憶體814或其部分可結合入處理器810內。
處理器810可被具體實施為任何類型之能夠進行本文中描述的功能之處理器。舉例言之,處理器810可被具體實施為單一或多核心處理器、數位信號處理器、微控制器、或其它處理器或處理/控制電路。同理,記憶體814可被具體實施為任何類型之能夠進行本文中描述的功能之依電性或非依電性記憶體或資料儲存裝置。於操作中,記憶體814可儲存於計算裝置800之操作期間使用的各項資料及軟體,諸如作業系統、應用程式、程式、存庫、及驅動程式。記憶體814透過I/O子系統812通訊式耦合至處理器810,I/O子系統812可具體實施為電路及/或組件以輔助與處理器810、記憶體814、及計算裝置800之其它組件的輸入/輸出操作。舉例言之,I/O子系統812可具體實施為,或以其它方式包括記憶體控制器中樞器、輸入/輸出控制器中樞器、韌體裝置、通訊鏈路(亦即,點對點鏈路、匯流排鏈路、導線、電纜、光導、印刷電路板線跡等)及/或其它組件及子系統以輔助輸入/輸出操作。
如於圖8中顯示,資料儲存裝置100可結合入計算裝置800之一或多個其它組件內或形成其中一部分。舉例言之,舉例言之,資料儲存裝置100可具體實施為主記憶體814,或以其它方式涵括於主記憶體814中。此外或另外,資料儲存裝置100可具體實施為計算裝置800之固態硬碟820,或以其它方式涵括於其中。又,於若干實施例中,資料儲存裝置100可具體實施為計算裝置800之硬碟驅動裝置830,或以其它方式涵括於其中。當然,於其它實施例中,資料儲存裝置100可被涵括於或形成計算裝置800之其它組件的一部分。
述及記憶體裝置可應用至不同記憶體類型,及特別,具有排組群組架構的任何記憶體。記憶體裝置通常係指依電性記憶體技術。依電性記憶體為若至裝置的電力中斷則其狀態(及因而儲存其上的資料)為不確定的記憶體。非依電性記憶體係指即便至裝置的電力中斷其狀態為確定的記憶體。動態依電性記憶體要求再新儲存於裝置內之資料以維持狀態。動態依電性記憶體之一個實例包括動態隨機存取記憶體(DRAM),或若干變化例諸如同步DRAM(SDRAM)。如於本文中描述的記憶體子系統與多種記憶體技術為可相容,諸如DDR4(DDR版本4,初始規格於2012年9月由JEDEC公告)、DDR4E(由JEDEC發展中)、LPDDR4(低功率雙倍資料率(LPDDR)版本4,JESD209-4,原先由JEDEC於2014年8月公告)、WIO2(寬I/O 2(WideIO2),JESD229-2,原先由JEDEC於2014年8月公告)、HBM(高頻寬記憶體DRAM,JESD235,原先由JEDEC於2013年10月公告)、DDR5(DDR版本5,目前由JEDEC討論中)、LPDDR5(目前由JEDEC討論中)、HBM2(HBM版本2),目前由JEDEC討論中)、及/或其它,及基於此等規格之衍生或擴延之技術。
此外,或另外,依電性記憶體,於一個實施例中,述及記憶體裝置可指即便至裝置的電力中斷其狀態為確定的非依電性記憶體裝置,用於具有排組群組架構的此等裝置。於一個實施例中,非依電性記憶體裝置為區塊可定址記憶體裝置,諸如NAND或NOR技術。如此,記憶體裝置也可包括未來世代的非依電性裝置,諸如三維交叉點記憶體裝置或其它位元組可定址非依電性記憶體裝置。於一個實施例中,記憶體裝置可以是或可包括多臨界值層級之NAND快閃記憶體、NOR快閃記憶體、單一或多層總相變記憶體(PCM)、電阻式記憶體、奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、結合憶阻器技術的磁阻式隨機存取記憶體(MRAM)記憶體、或自旋轉移矩(STT)-MRAM、或前述中之任一者的組合、或其它記憶體。 實例
實例1包括一種設備包含一非依電性記憶體以儲存資料於其中;及一資料儲存控制器以管理讀/寫存取該記憶體,其中該資料儲存控制器係用以自一主機,接收一標示資料之請求,該資料由該請求識別且儲存於該記憶體中為不可變的;回應於標示該經識別的資料為不可變的該請求,設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變資料,其中該不可變旗標,當設定時,指示該相關聯的不可變資料為不可修改的。
實例2包括實例1之標的,及其中該資料儲存控制器係進一步用以回應於與該不可變資料相關聯的該不可變旗標經設定而阻擋寫入請求至不可變資料。
實例3包括實例1及2中任一者之標的,及其中該資料儲存控制器係進一步用以回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料。
實例4包括實例1-3中任一者之標的,及其中壓縮該經識別的資料包含壓縮該經識別的資料。
實例5包括實例1-4中任一者之標的,及其中壓縮該經識別的資料包含於該經識別的資料上進行一刪除重複處理。
實例6包括實例1-5中任一者之標的,及其中該資料儲存控制器係進一步用以在該經識別的資料上進行一重編碼處理。
實例7包括實例1-6中任一者之標的,及其中該資料儲存控制器係進一步用以回應於標示該經識別的資料為不可變的該請求,移動該經識別的資料至該記憶體之一不可變記憶體區。
實例8包括實例1-7中任一者之標的,及其中用以移動該經識別的資料包含將該經識別的資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
實例9包括實例1-8中任一者之標的,及其中該資料儲存控制器係進一步用以回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料;及移動該已壓縮經識別的資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
實例10包括實例1-9中任一者之標的,及其中該資料儲存控制器係進一步用以在與該經識別的資料相關聯的該不可變旗標經設定之後,決定該記憶體之一剩餘儲存容量;及以該經決定的剩餘儲存容量更新該主機。
實例11包括實例1-10中任一者之標的,及其中用以接收標示該經識別的資料為不可變之請求包含,自該主機,接收一請求其識別儲存於該記憶體中之資料的一邏輯區塊位址範圍其係欲被標示為不可變。
實例12包括實例1-11中任一者之標的,及其中用以接收標示該經識別的資料為不可變之該請求包含,自該主機,接收一請求其識別儲存於該記憶體中之資料的資料之一資料物件其係欲被標示為不可變。
實例13包括實例1-12中任一者之標的,及其中用以設定與該經識別的資料相關聯的該不可變旗標包含設定與該記憶體相關聯的一依電性記憶體中的一邏輯至實體表的一不可變旗標。
實例14包括實例1-13中任一者之標的,及其中該資料儲存控制器係進一步用以自該主機,接收一標示該不可變資料為可變的請求;及回應於標示該不可變資料為可變的該請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標,當重置時,指示該相關聯的不可變資料為可修改的。
實例15包括實例1-14中任一者之標的,及其中該資料儲存控制器係進一步用以回應於標示該不可變資料為可變的該請求,判定該不可變資料是否被壓縮;回應於一判定該不可變資料係被壓縮,判定該記憶體是否具有一足夠剩餘儲存容量而以一解壓縮狀態儲存該不可變資料;及回應於一判定該記憶體具有一足夠剩餘儲存容量,解壓縮該已壓縮的不可變資料。
實例16包括實例1-15中任一者之標的,及其中該資料儲存控制器係進一步用以回應於標示該不可變資料為可變的該請求,移動該不可變資料至該記憶體之一可變記憶體區。
實例17包括實例1-16中任一者之標的,及其中用以移動該不可變資料至該可變記憶體區包含用以將該不可變資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更高耐久性的該記憶體之一新記憶體區。
實例18包括實例1-17中任一者之標的,及其中該資料儲存控制器係進一步用以回應於與該不可變資料相關聯的該不可變旗標經重置而解除阻擋寫入請求至該不可變資料。
實例19包括實例1-18中任一者之標的,及其中該資料儲存控制器係進一步用以在與該不可變資料相關聯的該不可變旗標經重置之後,判定該記憶體之一剩餘儲存容量;及以經判定的剩餘儲存容量更新該主機。
實例20包括實例1-19中任一者之標的,及其中該資料儲存控制器係進一步用以自該主機,接收一寫入至該不可變資料之寫入請求;回應於該寫入請求,將該不可變資料轉換成可變資料;在該經轉換的可變資料上進行該寫入請求;及回應於該寫入請求之進行,將該可變資料轉換成不可變資料。
實例21包括實例1-20中任一者之標的,及其中用以將該不可變資料轉換成可變資料包含回應於該寫入請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標,當重置時,指示該相關聯的不可變資料為可修改。
實例22包括實例1-21中任一者之標的,及其中用以將該不可變資料轉換成可變資料包含回應於一判定該記憶體具有一足夠儲存容量以儲存該經解壓縮的不可變資料而解壓縮該不可變資料。
實例23包括實例1-22中任一者之標的,及其中用以將該可變資料轉換成不可變資料包含壓縮該可變資料。
實例24包括實例1-23中任一者之標的,及其中用以將該不可變資料轉換成可變資料包含將該不可變資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更高耐久性或更高寫入效能的該記憶體之一新記憶體區。
實例25包括實例1-24中任一者之標的,及其中用以將該可變資料轉換成不可變資料包含將該可變資料自該新記憶體區移動至該原始記憶體區。
實例26包括實例1-25中任一者之標的,及其中用以將該可變資料轉換成不可變資料包含回應於該寫入請求之效能,設定該不可變旗標。
實例27包括實例1-26中任一者之標的,及其中該資料儲存控制器係進一步用以自該主機,接收一刪除請求以刪除該不可變資料;回應於該刪除請求,修整不可變資料;及於該不可變資料經修整之後,判定該記憶體之一剩餘儲存容量;及以經測定的剩餘儲存容量更新該主機。
實例28包括一種方法其包含自一主機及藉一設備之一資料儲存控制器,接收標示由一請求識別且儲存於該設備之一非依電性記憶體中的為不可變資料的該請求;及藉該資料儲存控制器及回應於標示該經識別的資料為不可變的該請求,設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變資料,其中該不可變旗標,當設定時,指示該相關聯的不可變資料為不可修改的。
實例29包括實例28之標的,及進一步包括回應於與該不可變資料被設定相關聯的該不可變旗標,藉該資料儲存控制器,阻擋寫入請求至該不可變資料。
實例30包括實例28及29中任一者之標的,及其中藉該資料儲存控制器及回應於將該經識別的資料標示為不可變之請求,壓縮該經識別的資料。
實例31包括實例28-30中任一者之標的,及其中壓縮該經識別的資料包含壓縮該經識別的資料。
實例32包括實例28-31中任一者之標的,及其中壓縮該經識別的資料包含於該經識別的資料上進行一刪除重複處理。
實例33包括實例28-32中任一者之標的,及進一步包括在該經識別的資料上進行一重編碼處理。
實例34包括實例28-33中任一者之標的,及進一步包括藉該資料儲存控制器及回應於標示該經識別的資料為不可變的該請求,移動該經識別的資料至該記憶體之一不可變記憶體區。
實例35包括實例28-34中任一者之標的,及其中移動該經識別的資料包含將該經識別的資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
實例36包括實例28-35中任一者之標的,及進一步包括藉該資料儲存控制器及回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料;及藉該資料儲存控制器,移動該已壓縮經識別的資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
實例37包括實例28-36中任一者之標的,及進一步包括藉該資料儲存控制器及於與該經識別的資料相關聯的該不可變旗標經設定之後,決定該記憶體之一剩餘儲存容量;及藉該資料儲存控制器,以該經決定的剩餘儲存容量更新該主機。
實例38包括實例28-37中任一者之標的,及其中接收該請求包含自該主機,接收一請求其識別儲存於該記憶體中之資料的一邏輯區塊位址範圍其係欲被標示為不可變。
實例39包括實例28-38中任一者之標的,及其中接收該請求包含自該主機,接收一請求其識別儲存於該記憶體中之資料的資料之一資料物件其係欲被標示為不可變。
實例40包括實例28-39中任一者之標的,及其中設定與該經識別的資料相關聯的該不可變旗標包含設定與該記憶體相關聯的一依電性記憶體中的一邏輯至實體表的一不可變旗標。
實例41包括實例28-40中任一者之標的,及進一步包括藉該資料儲存控制器及自該主機,接收一標示該不可變資料為可變的請求;及藉該資料儲存控制器及回應於標示該不可變資料為可變的該請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標,當重置時,指示該相關聯的不可變資料為可修改的。
實例42包括實例28-41中任一者之標的,及進一步包括藉該資料儲存控制器及回應於標示該不可變資料為可變的該請求,判定該不可變資料是否被壓縮;藉該資料儲存控制器及回應於一判定該不可變資料係被壓縮,判定該記憶體是否具有一足夠剩餘儲存容量而以一解壓縮狀態儲存該不可變資料;及藉該資料儲存控制器及回應於一判定該記憶體具有一足夠剩餘儲存容量,解壓縮該已壓縮的不可變資料。
實例43包括實例28-42中任一者之標的,及進一步包括藉該資料儲存控制器及回應於標示該不可變資料為可變的該請求,移動該不可變資料至該記憶體之一可變記憶體區。
實例44包括實例28-43中任一者之標的,及其中移動該不可變資料至該可變記憶體區包含用以將該不可變資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更高耐久性的該記憶體之一新記憶體區。
實例45包括實例28-44中任一者之標的,及進一步包括藉該資料儲存控制器,回應於與該不可變資料相關聯的該不可變旗標經重置而解除阻擋寫入請求至該不可變資料。
實例46包括實例28-45中任一者之標的,及進一步包括藉該資料儲存控制器及在與該不可變資料相關聯的該不可變旗標經重置之後,判定該記憶體之一剩餘儲存容量;及藉該資料儲存控制器,以該經判定的剩餘儲存容量更新該主機。
實例47包括實例28-46中任一者之標的,及進一步包括藉該資料儲存控制器及自該主機,接收一寫入至該不可變資料之寫入請求;藉該資料儲存控制器及回應於該寫入請求,將該不可變資料轉換成可變資料;藉該資料儲存控制器,在該經轉換的可變資料上進行該寫入請求;及藉該資料儲存控制器及回應於該寫入請求之進行,將該可變資料轉換成不可變資料。
實例48包括實例28-47中任一者之標的,及其中將該不可變資料轉換成可變資料包含回應於該寫入請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標,當重置時,指示該相關聯的不可變資料為可修改。
實例49包括實例28-48中任一者之標的,及其中將該不可變資料轉換成可變資料包含回應於一判定該記憶體具有一足夠儲存容量以儲存該經解壓縮的不可變資料而解壓縮該不可變資料。
實例50包括實例28-49中任一者之標的,及其中將該可變資料轉換成不可變資料包含壓縮該可變資料。
實例51包括實例28-50中任一者之標的,及其中將該不可變資料轉換成可變資料包含將該不可變資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更高耐久性或更高寫入效能的該記憶體之一新記憶體區。
實例52包括實例28-51中任一者之標的,及其中將該可變資料轉換成不可變資料包含將該可變資料自該新記憶體區移動至該原始記憶體區。
實例53包括實例28-52中任一者之標的,及其中將該可變資料轉換成不可變資料包含回應於該寫入請求之效能,設定該不可變旗標。
實例54包括實例28-53中任一者之標的,及進一步包括藉該資料儲存控制器及自該主機,接收一刪除請求以刪除該不可變資料;藉該資料儲存控制器及回應於該刪除請求,修整不可變資料;及藉該資料儲存控制器及於該不可變資料經修整之後,判定該記憶體之一剩餘儲存容量;及藉該資料儲存控制器,以經測定的剩餘儲存容量更新該主機。
實例55包括包含多個指令之一或多個電腦可讀取儲存媒體,該等多個指令當被執行時使得一資料儲存控制器進行實例28至54中之任一者之方法。
實例56包括用於自一主機,接收一標示由一請求識別且儲存於該設備之一記憶體中的資料為不可變之請求的構件;及回應於標示該經識別的資料為不可變的該請求,用於設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變資料的構件,其中該不可變旗標,當設定時,指示該相關聯的不可變資料為不可修改的。
實例57包括實例56之標的,及進一步包括用於回應於與該不可變資料相關聯的該不可變旗標經設定而阻擋寫入請求至不可變資料的構件。
實例58包括實例56及57中任一者之標的,及其中進一步包含回應於標示該經識別的資料為不可變的該請求,用於壓縮該經識別的資料的構件。
實例59包括實例56-58中任一者之標的,及其中用於壓縮該經識別的資料的該構件包含壓縮該經識別的資料的構件。
實例60包括實例56-59中任一者之標的,及其中用於壓縮該經識別的資料的該構件包含用於在該經識別的資料上進行一刪除重複處理的構件。
實例61包括實例56-60中任一者之標的,及進一步包括用於在該經識別的資料上進行一重編碼處理的構件。
實例62包括實例56-61中任一者之標的,及進一步包括回應於標示該經識別的資料為不可變的該請求,用於移動該經識別的資料至該記憶體之一不可變記憶體區的構件。
實例63包括實例56-62中任一者之標的,及其中用於移動該經識別的資料至該不可變記憶體區的構件包含用於將該經識別的資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區的構件。
實例64包括實例56-63中任一者之標的,及進一步包括回應於標示該經識別的資料為不可變的該請求,用於壓縮該經識別的資料的構件;及用於移動該已壓縮經識別的資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區的構件。
實例65包括實例56-64中任一者之標的,及進一步包括在與該經識別的資料相關聯的該不可變旗標經設定之後,用於決定該記憶體之一剩餘儲存容量的構件;及用於以該經決定的剩餘儲存容量更新該主機的構件。
實例66包括實例56-65中任一者之標的,及其中用於接收該請求之該構件包含用於,自該主機,接收一請求其識別儲存於該記憶體中之資料的一邏輯區塊位址範圍其係欲被標示為不可變的構件。
實例67包括實例56-66中任一者之標的,及其中用於接收該請求的該構件包含用於,自該主機,接收一請求其識別儲存於該記憶體中之資料的資料之一資料物件其係欲被標示為不可變的構件。
實例68包括實例56-67中任一者之標的,及其中用於設定與該經識別的資料相關聯的該不可變旗標的構件包含用於設定與該記憶體相關聯的一依電性記憶體中的一邏輯至實體表的一不可變旗標的構件。
實例69包括實例56-68中任一者之標的,及進一步包括用於自該主機,接收一標示該不可變資料為可變之請求的構件;及回應於標示該不可變資料為可變的該請求,用於重置與該不可變資料相關聯的該不可變旗標的構件,其中該不可變旗標,當重置時,指示該相關聯的不可變資料為可修改的。
實例70包括實例56-69中任一者之標的,及進一步包括回應於標示該不可變資料為可變的該請求,用於判定該不可變資料是否被壓縮的構件;回應於一判定該不可變資料係被壓縮,用於判定該記憶體是否具有一足夠剩餘儲存容量而以一解壓縮狀態儲存該不可變資料的構件;及回應於一判定該記憶體具有一足夠剩餘儲存容量,用於解壓縮該已壓縮的不可變資料的構件。
實例71包括實例56-70中任一者之標的,及進一步包括回應於標示該不可變資料為可變的該請求,用於移動該不可變資料至該記憶體之一可變記憶體區的構件。
實例72包括實例56-71中任一者之標的,及其中用於移動該不可變資料至該可變記憶體區的構件包含用於將該不可變資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更高耐久性的該記憶體之一新記憶體區的構件。
實例73包括實例56-72中任一者之標的,及進一步包括用於回應於與該不可變資料相關聯的該不可變旗標經重置而解除阻擋寫入請求至該不可變資料的構件。
實例74包括實例56-73中任一者之標的,及進一步包括在與該不可變資料相關聯的該不可變旗標經重置之後,用於判定該記憶體之一剩餘儲存容量的構件;及用於以經判定的剩餘儲存容量更新該主機的構件。
實例75包括實例56-74中任一者之標的,及進一步包括用於自該主機,接收一寫入至該不可變資料之寫入請求的構件;回應於該寫入請求,用於將該不可變資料轉換成可變資料的構件;用於在該經轉換的可變資料上進行該寫入請求的構件;及回應於該寫入請求之進行,用於將該可變資料轉換成不可變資料的構件。
實例76包括實例56-75中任一者之標的,及其中用於將該不可變資料轉換成可變資料的該構件包含回應於該寫入請求,用於重置與該不可變資料相關聯的該不可變旗標的構件,其中該不可變旗標,當重置時,指示該相關聯的不可變資料為可修改。
實例77包括實例56-76中任一者之標的,及其中用於將該不可變資料轉換成可變資料的該構件包含用於回應於一判定該記憶體具有一足夠儲存容量以儲存該經解壓縮的不可變資料而解壓縮該不可變資料的構件。
實例78包括實例56-77中任一者之標的,及其中用於將該可變資料轉換成不可變資料的該構件包含用於壓縮該可變資料的構件。
實例79包括實例56-78中任一者之標的,及其中用於將該不可變資料轉換成可變資料的該構件包含用於將該不可變資料自該記憶體之一原始記憶體區移動至比較該記憶體之該原始記憶體區具有一更高耐久性或更高寫入效能的該記憶體之一新記憶體區的構件。
實例80包括實例56-79中任一者之標的,及其中用於將該可變資料轉換成不可變資料的該構件包含用於將該可變資料自該新記憶體區移動至該原始記憶體區的構件。
實例81包括實例56-80中任一者之標的,及其中用於將該可變資料轉換成不可變資料的該構件包含回應於該寫入請求之效能,用於設定該不可變旗標的構件。
實例82包括實例56-81中任一者之標的,及進一步包括用於自該主機,接收一刪除請求以刪除該不可變資料的構件;回應於該刪除請求,用於修整不可變資料的構件;及於該不可變資料經修整之後,用於判定該記憶體之一剩餘儲存容量的構件;及用於以經測定的剩餘儲存容量更新該主機的構件。
100‧‧‧資料儲存裝置
102‧‧‧資料儲存控制器
104、810‧‧‧處理器或處理電路
106‧‧‧本地記憶體
108‧‧‧主機介面
110‧‧‧.記憶體或資料儲存裝置
130‧‧‧非依電性資料儲存裝置/記憶體
140‧‧‧依電性資料儲存裝置/記憶體
150‧‧‧斷電回應電路
152‧‧‧能量儲存裝置
200‧‧‧環境
202‧‧‧不可變性管理模組
204‧‧‧可變性管理模組
206‧‧‧不可變寫入模組
208‧‧‧不可變刪除模組
210‧‧‧資料壓縮模組
212‧‧‧資料移動模組
220‧‧‧高耐久記憶體區
222‧‧‧低耐久記憶體區
230‧‧‧不可變旗標
232‧‧‧邏輯至實體位址表
250‧‧‧主機
300、400、500、600、700‧‧‧方法
302-330、402-426、502-534、602-618、702-720‧‧‧方塊
800‧‧‧計算裝置
812‧‧‧輸入/輸出(I/O)子系統
814‧‧‧主記憶體
820‧‧‧固態硬碟
830‧‧‧硬碟驅動裝置
840‧‧‧周邊裝置
102‧‧‧資料儲存控制器
104、810‧‧‧處理器或處理電路
106‧‧‧本地記憶體
108‧‧‧主機介面
110‧‧‧.記憶體或資料儲存裝置
130‧‧‧非依電性資料儲存裝置/記憶體
140‧‧‧依電性資料儲存裝置/記憶體
150‧‧‧斷電回應電路
152‧‧‧能量儲存裝置
200‧‧‧環境
202‧‧‧不可變性管理模組
204‧‧‧可變性管理模組
206‧‧‧不可變寫入模組
208‧‧‧不可變刪除模組
210‧‧‧資料壓縮模組
212‧‧‧資料移動模組
220‧‧‧高耐久記憶體區
222‧‧‧低耐久記憶體區
230‧‧‧不可變旗標
232‧‧‧邏輯至實體位址表
250‧‧‧主機
300、400、500、600、700‧‧‧方法
302-330、402-426、502-534、602-618、702-720‧‧‧方塊
800‧‧‧計算裝置
812‧‧‧輸入/輸出(I/O)子系統
814‧‧‧主記憶體
820‧‧‧固態硬碟
830‧‧‧硬碟驅動裝置
840‧‧‧周邊裝置
本文中描述的構想係於附圖中舉例說明而非限制性。為求例示之簡單及明瞭,圖式中例示的元件無需按比例繪製。若屬適宜,在各幅圖間之元件符號重複以指示對應的或類似的元件。 圖1為用於管理不可變資料之一資料信號之至少一個實施例的簡化方塊圖; 圖2為可藉圖1之資料儲存裝置建立的一環境之至少一個實施例的簡化方塊圖; 圖3為可由圖1及2之資料儲存裝置執行的一種用於標示資料為不可變的方法之至少一個實施例的簡化方塊圖; 圖4可由圖1及2之資料儲存裝置執行的一種用於將不可變資料轉換成可變資料的方法之至少一個實施例的簡化方塊圖; 圖5為可由圖1及2之資料儲存裝置執行的一種用於寫入至不可變資料的方法之至少一個實施例的簡化方塊圖; 圖6為可由圖1及2之資料儲存裝置執行的一種用於刪除/修整不可變資料的方法之至少一個實施例的簡化方塊圖; 圖7為可由與圖1及2之該資料儲存裝置通訊的一主機執行的一種管理可變資料的方法之至少一個實施例的簡化方塊圖;及 圖8為包括圖1及2之資料儲存裝置的一計算裝置之至少一個實施例的簡化方塊圖。
100‧‧‧資料儲存裝置
130‧‧‧非依電性記憶體
140‧‧‧依電性記憶體
200‧‧‧環境
202‧‧‧不可變性管理模組
204‧‧‧可變性管理模組
206‧‧‧不可變寫入模組
208‧‧‧不可變刪除模組
210‧‧‧資料壓縮模組
212‧‧‧資料移動模組
220‧‧‧高耐久性記憶體區域
222‧‧‧低耐久性記憶體區域
230‧‧‧不可變旗標
232‧‧‧邏輯到實體(L2P)位址表
250‧‧‧主機
Claims (25)
- 一種設備,包含: 一非依電性記憶體,用以儲存資料於其中;及 一資料儲存控制器,用以管理讀/寫存取該記憶體,其中該資料儲存控制器係用以: 自一主機接收一標示由一請求識別且儲存於該記憶體中為不可變的資料之該請求; 回應於標示該經識別的資料為不可變的該請求,設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變資料,其中該不可變旗標當被設定時指示該相關聯的不可變資料為不可修改的。
- 如請求項1之設備,其中該資料儲存控制器係進一步用以回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料。
- 如請求項1之設備,其中該資料儲存控制器係進一步回應於標示該經識別的資料為不可變的該請求,移動該經識別的資料至該記憶體之一不可變記憶體區。
- 如請求項3之設備,其中移動該經識別的資料包含將該經識別的資料自該記憶體之一原始記憶體區移動至一比該記憶體之原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
- 如請求項1之設備,其中該資料儲存控制器係進一步用以: 回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料;及 將該已壓縮經識別的資料自該記憶體之一原始記憶體區移動至比該記憶體之原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
- 如請求項1之設備,其中該資料儲存控制器係進一步用以: 自該主機接收標示該不可變資料為可變的一請求;及 回應於標示該不可變資料為可變的該請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標當被重置時指示該相關聯的不可變資料為可修改的。
- 如請求項6之設備,其中該資料儲存控制器係進一步用以: 回應於標示該不可變資料為可變的該請求,判定該不可變資料是否被壓縮; 回應於該不可變資料係被壓縮之一判定,判定該記憶體是否具有一足夠剩餘儲存容量來以一解壓縮狀態儲存該不可變資料;及 回應於該記憶體具有一足夠剩餘儲存容量之一判定,解壓縮該已壓縮的不可變資料。
- 如請求項6之設備,其中該資料儲存控制器係進一步用以回應於標示該不可變資料為可變的該請求,移動該不可變資料至該記憶體之一可變記憶體區。
- 如請求項1之設備,其中該資料儲存控制器係進一步用以: 自該主機接收一寫入至該不可變資料之寫入請求; 回應於該寫入請求,將該不可變資料轉換成可變資料; 對該經轉換的可變資料進行該寫入請求;及 回應於該寫入請求之進行,將該可變資料轉換成不可變資料。
- 一種方法,包含: 自一主機及藉一設備之一資料儲存控制器,接收標示由一請求識別且於該設備之一非依電性記憶體中儲存為不可變的資料之該請求;及 藉該資料儲存控制器且回應於標示該經識別的資料為不可變的該請求,設定與該經識別的資料相關聯的一不可變旗標來標示該經識別的資料為不可變資料,其中該不可變旗標當被設定時指示該相關聯的不可變資料為不可修改的。
- 如請求項10之方法,其中進一步包含藉該資料儲存控制器且回應於標示該經識別的資料為不可變的該請求而壓縮該經識別的資料。
- 如請求項10之方法,進一步包含藉該資料儲存控制器及回應於標示該經識別的資料為不可變的該請求,將該經識別的資料自該記憶體之一原始記憶體區移動至比該記憶體之原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
- 如請求項10之方法,進一步包含: 藉該資料儲存控制器及回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料;及 藉該資料儲存控制器,將該已壓縮經識別的資料自該記憶體之一原始記憶體區移動至比該記憶體之原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
- 如請求項10之方法,進一步包含: 藉該資料儲存控制器及自該主機接收標示該不可變資料為可變的一請求;及 藉該資料儲存控制器及回應於標示該不可變資料為可變的該請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標當被重置時指示該相關聯的不可變資料為可修改的。
- 如請求項14之方法,進一步包含: 藉該資料儲存控制器及回應於標示該不可變資料為可變的該請求,判定該不可變資料是否被壓縮; 藉該資料儲存控制器及回應於該不可變資料係被壓縮之一判定,判定該記憶體是否具有一足夠剩餘儲存容量以一解壓縮狀態儲存該不可變資料;及 藉該資料儲存控制器及回應於該記憶體具有一足夠剩餘儲存容量之一判定,解壓縮該已壓縮的不可變資料。
- 如請求項14之方法,進一步包含藉該資料儲存控制器及回應於標示該不可變資料為可變的該請求,移動該不可變資料至該記憶體之一可變記憶體區。
- 如請求項10之方法,進一步包含: 藉該資料儲存控制器及自該主機接收一寫入至該不可變資料之寫入請求; 藉該資料儲存控制器及回應於該寫入請求,將該不可變資料轉換成可變資料; 藉該資料儲存控制器,對該經轉換的可變資料進行該寫入請求;及 藉該資料儲存控制器及回應於該寫入請求之進行,將該可變資料轉換成不可變資料。
- 一種包含多個指令之一或多個電腦可讀取儲存媒體,該多個指令當被執行時使得一資料儲存控制器用以: 自一主機,接收標示由一請求識別且儲存於該非依電性記憶體中為不可變之資料的該請求; 回應於標示該經識別的資料為不可變的該請求,設定與該經識別的資料相關聯的一不可變旗標以標示該經識別的資料為不可變資料,其中該不可變旗標當被設定時指示該相關聯的不可變資料為不可修改的。
- 如請求項18之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料。
- 如請求項18之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以回應於標示該經識別的資料為不可變的該請求,將該經識別的資料自該記憶體之一原始記憶體區移動至比該記憶體之原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
- 如請求項18之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以: 回應於標示該經識別的資料為不可變的該請求,壓縮該經識別的資料;及 將該已壓縮經識別的資料自該記憶體之一原始記憶體區移動至比該記憶體之原始記憶體區具有一更低耐久性或更低寫入效能的該記憶體之一新記憶體區。
- 如請求項18之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以: 自該主機接收標示該不可變資料為可變的一請求;及 回應於標示該不可變資料為可變的該請求,重置與該不可變資料相關聯的該不可變旗標,其中該不可變旗標當被重置時指示該相關聯的不可變資料為可修改的。
- 如請求項22之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以: 回應於標示該不可變資料為可變的該請求,判定該不可變資料是否被壓縮; 回應於該不可變資料係被壓縮之一判定,判定該記憶體是否具有一足夠剩餘儲存容量來以一解壓縮狀態儲存該不可變資料;及 回應於該記憶體具有一足夠剩餘儲存容量之一判定,解壓縮該已壓縮的不可變資料。
- 如請求項22之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以回應於標示該不可變資料為可變的該請求,移動該不可變資料至該記憶體之一可變記憶體區。
- 如請求項18之一或多個電腦可讀取儲存媒體,其中該多個指令當被執行時進一步使得該資料儲存控制器用以: 自該主機接收寫入至該不可變資料之一寫入請求; 回應於該寫入請求,將該不可變資料轉換成可變資料; 對該經轉換的可變資料進行該寫入請求;及 回應於該寫入請求之進行,將該可變資料轉換成不可變資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/088,955 | 2016-04-01 | ||
US15/088,955 US20170285975A1 (en) | 2016-04-01 | 2016-04-01 | Technologies for managing immutable data on a data storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201737097A true TW201737097A (zh) | 2017-10-16 |
TWI746510B TWI746510B (zh) | 2021-11-21 |
Family
ID=59961499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106104617A TWI746510B (zh) | 2016-04-01 | 2017-02-13 | 用於在資料儲存裝置上管理不可變資料之技術 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170285975A1 (zh) |
TW (1) | TWI746510B (zh) |
WO (1) | WO2017172234A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180127695A (ko) * | 2017-05-22 | 2018-11-30 | 삼성전자주식회사 | 저장 공간 확보를 위한 장치 및 그에 관한 방법 |
US10684958B1 (en) | 2018-12-10 | 2020-06-16 | International Business Machines Corporation | Locating node of named data elements in coordination namespace |
US11288208B2 (en) | 2018-12-12 | 2022-03-29 | International Business Machines Corporation | Access of named data elements in coordination namespace |
US10915460B2 (en) | 2018-12-12 | 2021-02-09 | International Business Machines Corporation | Coordination namespace processing |
US11144231B2 (en) | 2018-12-12 | 2021-10-12 | International Business Machines Corporation | Relocation and persistence of named data elements in coordination namespace |
US10649676B1 (en) | 2018-12-28 | 2020-05-12 | Microsoft Technology Licensing, Llc | Memory compression for immutable data structures |
CN111638837B (zh) * | 2020-05-13 | 2022-03-11 | 维沃移动通信有限公司 | 一种消息处理方法及电子设备 |
US11080264B1 (en) | 2020-10-02 | 2021-08-03 | ActionIQ, Inc. | Mutable data ingestion and storage |
US20220413757A1 (en) * | 2021-06-24 | 2022-12-29 | Western Digital Technologies, Inc. | Write Performance by Relocation During Sequential Reads |
US11797228B2 (en) * | 2021-06-24 | 2023-10-24 | Western Digital Technologies, Inc. | Efficient handling of background operations for improving sustained performance of host reads and writes |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257580B2 (en) * | 2004-02-24 | 2007-08-14 | International Business Machines Corporation | Method, system, and program for restricting modifications to allocations of computational resources |
US8626971B1 (en) * | 2004-10-08 | 2014-01-07 | Seagate Technology Llc | Flash memory method and apparatus with single-press button response |
US8055622B1 (en) * | 2004-11-30 | 2011-11-08 | Symantec Operating Corporation | Immutable data containers in tiered storage hierarchies |
US7631161B2 (en) * | 2005-10-21 | 2009-12-08 | International Business Machines Corporation | Apparatus, system, and method for writing data to protected partitions of storage media |
US8572043B2 (en) * | 2007-12-20 | 2013-10-29 | International Business Machines Corporation | Method and system for storage of unstructured data for electronic discovery in external data stores |
US8695104B2 (en) * | 2010-04-23 | 2014-04-08 | Dell Products, Lp | System and method for creating conditional immutable objects in a storage device |
US8621328B2 (en) * | 2011-03-04 | 2013-12-31 | International Business Machines Corporation | Wear-focusing of non-volatile memories for improved endurance |
WO2012170111A1 (en) * | 2011-06-08 | 2012-12-13 | Lytro, Inc. | Storage and transmission of pictures including multiple frames |
KR101438716B1 (ko) * | 2011-08-09 | 2014-09-11 | 엘에스아이 코포레이션 | I/o 디바이스 및 컴퓨팅 호스팅 상호동작 |
US8745010B2 (en) * | 2012-04-12 | 2014-06-03 | Hewlett-Packard Development Company, L.P. | Data storage and archiving spanning multiple data storage systems |
-
2016
- 2016-04-01 US US15/088,955 patent/US20170285975A1/en not_active Abandoned
-
2017
- 2017-02-13 TW TW106104617A patent/TWI746510B/zh active
- 2017-03-02 WO PCT/US2017/020395 patent/WO2017172234A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20170285975A1 (en) | 2017-10-05 |
WO2017172234A1 (en) | 2017-10-05 |
TWI746510B (zh) | 2021-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI746510B (zh) | 用於在資料儲存裝置上管理不可變資料之技術 | |
US10866797B2 (en) | Data storage device and method for reducing firmware update time and data processing system including the device | |
CN110390979B (zh) | 存储器控制器和具有存储器控制器的存储器系统 | |
TW201839613A (zh) | 數據儲存裝置及其操作方法 | |
US20190317892A1 (en) | Memory system, data processing system, and operating method of memory system | |
US11693768B2 (en) | Power loss data protection in a memory sub-system | |
US9477423B2 (en) | Eliminating or reducing programming errors when programming flash memory cells | |
US10747462B2 (en) | Data processing system and operating method thereof | |
US11875036B2 (en) | Computing system including host and storage system and having increased write performance | |
KR20190054383A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11704048B2 (en) | Electronic device | |
CN109960466B (zh) | 存储器系统及其操作方法 | |
EP3496356A1 (en) | Atomic cross-media writes on storage devices | |
US10642531B2 (en) | Atomic write method for multi-transaction | |
KR20220132026A (ko) | 메모리 디바이스의 다중 핀 구성 | |
CN109656471B (zh) | 数据存储设备及其操作方法 | |
CN113190469B (zh) | 一种存储器、数据写入方法及存储系统 | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
CN109840214B (zh) | 数据存储装置及其操作方法 | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN112783429A (zh) | 数据存储装置、使用其的存储系统及其操作方法 | |
CN112748873A (zh) | 存储器系统和控制器 | |
US11537514B2 (en) | Data storage device and operating method thereof | |
KR102557992B1 (ko) | 메모리 컨트롤러, 저장 장치, 및 저장 장치의 동작 방법 | |
US20230244402A1 (en) | Storage device and operating method of storage device |