TWI514134B - 達成固態硬碟最佳化之移除已刪除資料技術 - Google Patents
達成固態硬碟最佳化之移除已刪除資料技術 Download PDFInfo
- Publication number
- TWI514134B TWI514134B TW097113635A TW97113635A TWI514134B TW I514134 B TWI514134 B TW I514134B TW 097113635 A TW097113635 A TW 097113635A TW 97113635 A TW97113635 A TW 97113635A TW I514134 B TWI514134 B TW I514134B
- Authority
- TW
- Taiwan
- Prior art keywords
- ssd
- file
- invalid
- interface
- data
- 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/0604—Improving or facilitating administration, e.g. storage 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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/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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關移除已刪除資料(remove-on-delete)之技術以達成固態硬碟最佳化。
固態硬碟(solid state drive,“SSD”)用作具開機能力的大量儲存裝置(bootable mass storage device)係愈來愈經濟。一般將SSD製作成包括快閃記憶體裝置,諸如具有反及閘(NotAND,“NAND”)型裝置的非揮發性快閃記憶體裝置。因此,SSD寫入操作具有與典型硬碟(hard disk drive,“HDD”)不同的考量,其可於光碟上相同物理位置處以有效(新的)資料覆寫無效(經刪除)資料。SSD寫入操作一般包括一頁面導向(page-oriented)合併操作,以合併新的資料及屬於同記憶區塊之已存在資料,並存至一新的記憶體區塊。若已存在資料為無效,此一合併操作可能不必要地影響了SSD之效能。此外,為了可靠性原因,SSD一般執行「均勻抹除(“wear leveling”)」操作,以減少記憶體單元壽命延展降低。此種操作一般將資料由一區塊或頁面移至另一區塊或頁面。若在一頁面上之資料為無效,則針對該頁面之均勻抹除操作可能不必要地影響了SSD之效能,且潛在地降低SSD可靠性。此外,典型檔案系統一般會保留狀態資訊,其指示何資料應被視為刪除(無效)而何資料不視為刪除。但此資料一般未依對應所有資料及資料物理儲存
於儲存裝置之位置之方式,移動至相應的儲存裝置(諸如一HDD或SSD),如同例如一或多邏輯區塊位址。因此,與檔案系統相反,儲存裝置一般無法得知何資料為有效而何資料為無效,且因此一般無法確認無效資料,進而能避免對此種資料進行不必要的操作。
以下將對本發明作一簡化摘要說明,以提供讀者一基礎瞭解。此摘要並非本發明之延伸概要,無意指明本發明之關鍵特微或必要元件,亦無意用來決定本發明之範圍。其唯一目的係要簡單地呈現本發明揭露之某些概念,以作為以下「實施方式」之序言。
所揭露之實例提供了一種技術,用於識別儲存在一固態硬碟(“SSD”)裝置上之資料(其對應關於一刪除事件之資料),且將儲存於SSD上之經刪除資料標示為無效,如此可使該SSD避免對該等無效資料進行不必要的操作。包括了可操作用以傳遞無效資料資訊之複數介面,且其提供移除已刪除(remove-on-delete)命令,該命令提供無效資料資訊以識別相應的SSD資料,進而標示為無效。
隨著參照以下「實施方式」與所附圖示,將更加瞭解本發明且將輕易認知到本發明之諸多特徵。
以下所述「實施方式」及所附圖示,係意圖作為對本
發明實例之描述,而無意將本發明實例限制為僅能依文中所述方式進行建構或使用。於說明中提出了多個實例之至少某些功能,及/或用於建構及操作多個實例的一系列步驟。然而,相同或等效功能及步驟可由不同實例實現。
儘管本發明所描述及示出之實例係在一運算環境中實現,然而所描述之環境僅提供作為一實例而非為一限制條件。本領域之習知技藝人士將認知到,本發明所述實例適合應用於各種不同類型之運算環境。
第1圖為一方塊圖,顯示一習知操作系統110a及介面120a,其介接至一固態硬碟130,以及一新的操作系統110b及介面120b,其介接至該固態硬碟(“SSD”)130。習知操作系統110a包括一範例習知檔案系統112a,其經由習知介面113a耦接至一範例習知SSD驅動器114a。介面113a之一例為一輸入/輸出控制(input/output control,“IOCTL”)介面。檔案系統112a通常管理檔案、文書夾、所有物等資料之提取。資料可為任何類型之數位資訊、可執行指令等。此類資料提取一般被SSD驅動器114a轉換成物理性資料存取及儲存建構,SSD驅動器114a經由介面120a與SSD130互動以儲存及存取SSD130上之資料。介面120a之實例包括高技術配置(advanced technology attachment,“ATA”)介面及小型電腦系統介面(small computer system interface,“SCSI”)等。
範例SSD130為一使用固態記憶體裝置或類似物而製成作為儲存媒體的固態儲存裝置,此點與傳統HDD、軟
碟、光碟等的磁性或光學儲存媒體不同。這些固態記憶體裝置可為快閃記憶體、或任何其它類型或組合之固態記憶體、隨機存取記憶體(“RAM”)等。此類SSD裝置可為開機裝置及可考慮作為主要儲存裝置或大量儲存裝置,如第3圖所描述的相關裝置。此類SSD裝置可為複合SSD裝置,其為包括了複數記憶體類型(每一類型具有不同效能特性或存取速度)的SSD裝置。此處對於SSD裝置之功能或其執行動作之敘述,一般係關聯SSD裝置及/或相應的SSD驅動器,如範例驅動器114a及114b。
在另一實例中,SSD130可為一傳統HDD、光學驅動器、儲存區域網路(storage area network,“SAN”)、磁帶儲存裝置及/或其它具有參照第3圖所描述的大量儲存裝置的任何形式儲存裝置,其可能包括被視為無效之資料。本發明可應用於任何此類儲存裝置、系統、機制等。
考慮以下實例,其描述無效資料一般如何表現於一SSD上。諸如一個人或系統之類的使用者,可透過任何適當介面指示:某些資料(如一檔案)應被刪除。檔案系統一般會修改一永久資料結構以指示該檔案已被刪除,如藉由將該經刪除檔案之一參考自一目錄或類似物中移除。此外,檔案系統可將代表SSD上檔案之資料標示為無效。在一實例中,此包括傳送檔案位置資訊至SSD,該任置資訊經由邏輯區塊定址(logical block addressing,“LBA”)指示該檔案之起始位置,且其後跟著該檔案之長度。
用於描述要刪除資料之LBA或資料位置資訊,其一般
係經由一介面藉由命令傳送至SSD裝置。當接收到該命令及相關資料位置資訊時,SSD及/或其驅動器可將儲存於SSD上對應於經刪除檔案之資料標示成無效。在一習知運算系統中,檔案系統可察覺被刪除的檔案,但SSD卻無法察覺。一典型SSD僅能察覺資料寫入其中及自其讀取資料,而無法分辨有效及無效資料。某些SSD及其相關驅動器可執行某些操作,其會受益於得知儲存於其上之資料為無效。例如,一典型SSD寫入操作具有與一典型硬碟驅動器(“HDD”)不同的考量,其可於光碟上相同物理位置處以有效(新的)資料覆寫無效(經刪除)資料。不像典型HDD,SSD寫入操作一般包括一頁面導向合併操作,意圖合併新的資料及一記憶區塊上之已存在資料,並存至一新的記憶體區塊。若已存在資料為無效,此一合併操作可能不必要地影響了SSD之效能。此外,為了可靠性原因,SSD一般執行「均勻抹除(“wear leveling”)」操作,以減少記憶體單元壽命延展降低。此種操作一般將資料由一記憶體區塊移至另一區塊或類似物。若該頁面及/或區塊資料為無效,則針對該頁面/區塊之均勻抹除操作可能不必要地影響了SSD之效能,且潛在地降低SSD可靠性。
如此處所用,無效資料可為儲存在記憶體位置(如SSD記憶體位置)已被一高層系統(如一檔案系統、驅動器、應用程式等)刪除之資料,或未被使用之資料,或其它類似資料。例如,當一檔案被刪除時,關聯該檔案之資料可視為無效。注意到此類經刪除或無效資料一般未被移除或清
除,僅被歸類成無效。在一實例中,此類無效資料仍然儲存在儲存裝置上,在另一實例中,無效資料可被「垃圾收集(“garbage collected”)」或被移除、覆寫等。未歸類為無效之資料,一般被視為有效。一般情況下,一檔案系統或類似機制知道資料被歸類成有效或無效,此點與SSD不同。
新的範例操作系統110b包括新的範例檔案系統112b,其經由習知介面113b及新的介面140耦接至新的範例SSD驅動器114b。一般來說,元件110b、112b及114b之功能對應於具有類似元件符號「1xxa」的對應習知元件之功能,但已加入本發明所述之新功能。範例檔案系統112b可替代地為一應用程式或等同物,以具體實現檔案系統功能。
檔案系統112b使用新介面140,以傳送無效資料資訊至SSD驅動器114b。此類無效資料資訊可包括檔案位置資訊及大小資訊。介面140使檔案系統112b可憑藉該等無效資料資訊,正確指示予SSD驅動器:儲存於SSD130上的資料何者為無效。在一實例中,介面140為一新的IOCTL命令,在另一實例中,介面140為一已存在IOCTL命令之擴充。介面140可符合任何適用於耦接一檔案系統及一SSD驅動器而可傳送無效資料資訊之形式及/或結構。此外,介面140亦可使檔案系統112b可指示予SSD驅動器114b:正寫入SSD130之有效資料為有效,而使得儲存於SSD130上之有效資料不會被標示為無效。
在一實例中,介面120b符合一ATA介面,其具有額
外功能可傳送無效資料資訊。且在另一實例中,介面120b符合一SCSI介面,其具有額外功能可傳送無效資料資訊。介面120b可符合任何適用於耦接一SSD驅動器及一SSD裝置而可傳送無效資料資訊之形式及/或結構。
在特定無效資料資訊情況下,SSD驅動器114b一般經由介面120b與SSD130進行互動,以依據該等無效資料資訊將適當資料、區塊、頁面等標示為無效。因此,寫入合併操作、均勻抹除操作及類似操作可正常執行,而毋需對無效資料進行不必要的操作。此外,最佳化操作可於被標示為含有無效資料之SSD區塊、頁面及等同物上執行。
第2圖為一區塊圖,其顯示一移除已刪除資料之方法200範例。此一方法可將已刪除SSD資料標示為無效,或稱為「移除已刪除資料(“remove-on-delete”)」。因此無效或經移除資料自被一SSD裝置視為有效之資料中移除。如此一來一SSD裝置無需執行任何操作來保存或保留此類資料。
區塊210指示一刪除事件,其影響儲存於一SSD裝置上之資料。此一刪除事件實例為一檔案刪除操作,其由一檔案系統執行,其中該被刪除檔案目前儲存在一SSD裝置上。在另一實例中,任何系統或機制可執行一刪除操作,其顯響儲存在一SSD裝置上之資料。典型地,一對應SSD裝置之SSD驅動器接收及/或偵測該刪除事件。方法200一般接著執行區塊220。
區塊220指示識別儲存於SSD裝置上之哪些資料係對
應於被刪除之資料。在一實例中,此包括將被刪除之檔案之資料映射至儲存於一SSD上之相應資料。此映射產生無效資料資訊,其可識別儲存於SSD上之資料何者需標示成無效。此映射可由執行刪除操作之系統來執行。無效資料資訊可識別儲存於SSD上對應於被刪除檔案且被標示為無效之確切資料。此資料可作為頁面、區塊或等同物被儲存於SSD上。一旦識別對應於刪除操作且儲存於SSD上之無效資料,方法200一般接著執行區塊230。
區塊230指示一移除已刪除資料(remove-on-delete)命令。此命令一般包括無效資料資訊,並命令SSD裝置及/或其驅動器將所指示的資料標示為無效。在一實例中,此一命令係由執行刪除操作之系統所發出,如一檔案系統。一旦發出移除已刪除資料命令,方法200一般接著繼續執行區塊240。
區塊240指示將已刪除資料標示為無效。此一標示可為任何形式,只能識別SSD裝置上之無效資料。此標示可包括將頁面及/或區塊或等同物標示為無效,視SSD建構其資料之方式而定。或者,此標示可包括將一範圍中無效資料移至一無效資料表單或等同物。一旦被刪除資料被標示為無效,SSD裝置即無需執行任何操作來保存、保留(或類似動作)無效資料。注意到資料係被視為由一高層系統(如一檔案系統)刪除,且注意到相應的資料現在已於SSD上標示為無效,使得SSD可將相應的資料確認為無效。例如,若檔案系統刪除檔案“foo.bar”,則儲存於SSD上包
含檔案foo.bar之所有資料將被標示為無效。資訊一詞亦可指資料。一旦將刪除的資料標示為無效,方法200一般即完成。
第3圖為一方塊圖,其顯示一範例運算環境300,其可實施本發明所述技術。一合適的運算環境可利用多種一般目的或特定目的系統來實現。習知系統實例包括(但不限於)行動電話、個人數位助理(“PDA”)、個人電腦(“PC”)、手持或膝上裝置、微處理器系統、多重處理器系統、伺服器、工作站、消費性電子裝置、機上盒等。
運算環境300一般包括一運算裝置301形式之通用目的運算系統,其耦接至諸如週邊裝置302、303、304之類的各種組件。系統300可經由一或多輸入/輸出(“I/O”)介面312耦接至其它各種不同的組件,如輸入裝置303,包括聲音辨識、觸控板、按鈕、鍵盤及/或指向裝置(如滑鼠或軌跡球)。運算裝置301可包括一或多處理器(包括中央處理單元(“CPU”)、圖形處理單元(“GPU”))、微處理器(“μp”)等)307、系統記憶體309及一系統匯流排308(其一般耦接各種組件)。處理器307一般處理或執行各種電腦可執行指令,以控制運算裝置301之操作,且經由各種通訊連結(如一網路連結314等)與其它電子及/或運算裝置、系統或環境(未示出)進行通訊。系統匯流排308代表任意數目的數種匯流排結構,包括記憶體匯流排或記憶體控制器、週邊匯流排、序列匯流排、加進圖形埠、使用多種匯流排結構中任一結構的處理器或區域匯流排等。
系統記憶體309可包括揮發性記憶體形式之電腦可讀媒體,如隨機存取記憶體(“RAM”),及/或非揮發性記憶體形式之電腦可讀媒體,如唯讀記憶體(“ROM”)或快閃記憶體(“FLASH”)。一基礎輸入/輸出系統(“BIOS”)可儲存於非揮發或類似記憶體。系統記憶體309一般儲存資料、電腦可執行指令及/或程式模組(其包含可立即由多個處理器307中之一或多者存取或於其上執行之電腦可執行指令)。
大量儲存裝置304及310可耦接至運算裝置301,或可經由耦接至系統匯流排及/或一儲存匯流排等併入運算裝置301。此大量儲存裝置304及310可包括非揮發性RAM、一磁碟驅動器其讀取或寫入可抽換、非揮發性磁碟(例如一「軟碟」)305、及/或一光碟驅動器其讀取或寫入非揮發性光碟(如CD ROM、DVD ROM)306。或者,一大量儲存裝置(如硬碟)310可包括不可抽換儲存媒體。其它大量儲存裝置可包括記憶卡、記憶棒及磁帶儲存裝置等。
任意數量的電腦程式、檔案、資料結構等可儲存於大量儲存裝置310、其它儲存裝置304、305、306及系統記憶體309(一般被可用空間所限制),其包括(舉例說明而不具限制性)作業系統、應用程式、資料檔案、目錄結構、電腦可執行指令等。
輸出組件或裝置(如顯示裝置302)一般可經由一介面(如一顯示適配器311)耦接至運算裝置301。輸出裝置302可為一液晶顯示(liquid crystal display,“LCD”)。其它範例輸出裝置可包括印表機、音頻輸出、聲音輸出、陰極射線
管(cathode ray tube,“CRT”)顯示、觸覺裝置或其它感測輸出機制等。輸出裝置可使運算裝置301可與人類操作者或其它機械、系統、運算環境等進行互動。使用者可透過任意數量之不同I/O裝置303(如觸控板、按鈕、鍵盤、滑鼠、遊戲搖桿、遊戲板、資料埠等)與運算環境300進行互動。這些及其它I/O裝置可經由耦接至系統匯流排308之I/O介面312而耦接至處理器307,或者藉由其它介面及匯流排結構進行耦接,如藉由平行埠、遊戲埠、通用序列匯流排(“USB”)、火線、紅外線(infrared,“IR”)埠等。
運算裝置301可經由透過一或多行動網路、無線網路、區域網路(“LAN”)、廣域網路(“WAN”)、儲存區域網路(storage area network,“SAN”)、網際網路、無線電連結、光學連結等與一或多遠端運算裝置進行通訊連結,而操作於網路環境。運算裝置301可經由網路適配器313或類似元件耦接至一網路,或者亦可經由一數據機、數位用戶線路(digital subscriber line,“DSL”)、整合服務數位網路(integrated services digital network,“ISDN”)連結、網際網路連結、無線連結等耦接至一網路。
通訊連結314(如一網路連結)一般促進耦接至通訊媒體,如一網路。通訊媒體一般提供電腦可讀及電腦可執行指令、資料結構、檔案、程式模組及其它使用調變資料訊號之資料(如一負載波或其它傳輸機制)。術語「調變資料訊號」是指一訊號,其複數特徵中一或多個特征以某種方式設定或變化,以將資訊編碼到該訊號中。舉例來說(而非
限制),通訊媒體包括有線媒體(如有線網路或直接線路連線等),以及無線媒體(像是聲波、RF、紅外線或其它無線通訊機制)。
電源390(如電池或電力供應)一般提供電力予運算環境300之多部分或所有部分。若運算環境300為行動裝置或可攜式裝置等類似裝置,則電源390可為一電池。或者,若運算環境300為一桌上型電腦或伺服器等類似裝置,則電源390可為一設計用於連結至交流電流(“AC”)的電力供應,如經由牆上電源插座。
某些行動裝置可不包括第3圖所描述的諸多相關組件。例如,一電子證章(electronic badge)可由一線圈及一簡易處理單元307等組成,當鄰近一讀卡裝置或類似物時該線圈係組態作為電源。此一線圈亦可經組態作為一天線耦接至處理單元307或類似物,此線圈天線能夠促進電子證章與讀卡裝置間之連結。此連結不涉及網路,但可經由遙測技術、點對點、RF、IR、音頻或其它方式作為一通用或特定目的連結。一電子卡可不包括顯示302、I/O裝置303或其它第3圖所述相關組件中之許多組件。其它模組裝置可不包括第3圖所述相關組件中之許多組件。舉例說明但不具限制性,其它模組裝置可包括電子手環、電子標籤、植入式裝置等。
本領域之熟習技藝人士將瞭解到,用於提供電腦可讀及電腦可執行指令及資料之儲存裝置,其可分佈於一網路中。例如,一遠端電腦或儲存裝置可儲存軟體應用及資料
形式之電腦可讀及電腦可執行指令。一本機電腦可經由網路存取遠端電腦或儲存裝置,並下載部分或全部之軟體應用或資料,且可執行任何電腦可執行指令。或者,本機電腦依需要可下載軟體或資料片段,或以在本機電腦上執行某些指令及在遠端電腦及/或裝置上執行某些指令的方式,來分佈式處理軟體。
本領域之熟習技藝人士亦將瞭解到,藉由使用習知技術,全部或一部分軟體之電腦可執行指令可由一專用電路承載,如一數位訊號處理器(digital signal processor,“DSP”)、可程式化邏輯陣列(programmable logic array,“PLA”)、離散電路或類似電路。「電子設備」一詞可包括運算裝置或消費性電子裝置(包括任何軟體、韌體等),或電子裝置或電路(不包括軟體、韌體等)。
「韌體」一詞,一般係指維持於一電子裝置(如ROM等)中之可執行指令、程式碼、資料、應用程式、軟體、程式等。「軟體」一詞,一般係指維持於任何形式之電腦可讀媒體中或維持於其上之可執行指令、程式碼、資料、驅動器、應用程式、程式等。「電腦可讀媒體」一詞,一般係指系統記憶體、儲存裝置及其相關媒體等。
本發明原理及前述實例可應用至許多可能的具體實施例上,且應認知此處所述實例僅為例示性,不應視為本發明範圍之限制條件。因此,本發明包含以下申請專利範圍內的所有具體實施例及其任何均等物。
110a‧‧‧作業系統
110b‧‧‧作業系統
112a‧‧‧檔案系統
112b‧‧‧檔案系統
113a‧‧‧介面
113b‧‧‧介面
114a‧‧‧SSD驅動器
114b‧‧‧SSD驅動器
120a‧‧‧介面
120b‧‧‧介面
130‧‧‧SSD
300‧‧‧運算環境
301‧‧‧運算裝置
302‧‧‧顯示裝置
303‧‧‧I/O裝置
304‧‧‧儲存裝置
305‧‧‧磁碟
306‧‧‧光碟
307‧‧‧處理器
308‧‧‧系統匯流排
309‧‧‧系統記憶體
310‧‧‧大量儲存裝置
311‧‧‧顯示適配器
312‧‧‧I/O介面
313‧‧‧網路適配器
314‧‧‧通訊連結
390‧‧‧電源
依據以上「實施方式」之說明及所附圖示,將可更加瞭解本發明,所附圖示中:第1圖為一方塊圖,其顯示一習知操作系統及介面介接至一固態硬碟,以及一新的操作系統及介面接至該固態硬碟。
第2圖為一方塊圖,其顯示一移除已刪除資料之方法例。
第3圖為一方塊圖,其顯示一運算環境例,其中可實現本發明所述技術。
在所附圖示中,相同元件符號係用於指示相同元件。
110a‧‧‧作業系統
110b‧‧‧作業系統
112a‧‧‧檔案系統
112b‧‧‧檔案系統
113a‧‧‧介面
113b‧‧‧介面
114a‧‧‧SSD驅動器
114b‧‧‧SSD驅動器
120a‧‧‧介面
120b‧‧‧介面
130‧‧‧SSD
Claims (15)
- 一種用於將儲存於一固態硬碟(solid state drive,“SSD”)上之資料標示為無效之系統,至少包含:一SSD驅動器,其經由一第一介面耦接至一檔案系統,其中該第一介面包括一命令介面,該命令介面可操作用以將無效資料資訊自該檔案系統傳輸至該SSD驅動器,且其中該無效資料資訊識別儲存於該SSD上對應於由該檔案系統所刪除之資訊之資料,其中所刪除之該資訊為一檔案;及一第二介面,其可操作用以耦接該SSD驅動器至該SSD,進而使該SSD將儲存於該SSD上對應於由該檔案系統所刪除之該資訊之該資料標示為無效,該第二介面可操作以傳送檔案位置資訊至該SSD,該檔案位置資訊經由邏輯區塊定址(logical block addressing,“LBA”)來指示該檔案的起始位置以及其後跟隨之該檔案的長度。
- 如申請專利範圍第1項所述之系統,其中該命令介面係實現為一新的輸入-輸出控制(input-ouput control,“IOCTL”)命令。
- 如申請專利範圍第1項所述之系統,其中該命令介面係實現為一輸入-輸出控制(“IOCTL”)命令之擴充。
- 如申請專利範圍第1項所述之系統,其中將儲存於該SSD上之資料標示為無效之步驟,使該SSD能夠避免對無效資料進行不必要的操作。
- 如申請專利範圍第4項所述之系統,其中使該SSD能夠避免對無效資料進行不必要的操作之步驟,更涉及該SSD驅動器之操作。
- 如申請專利範圍第1項所述之系統,其中該第二介面為一高技術配置(advanced technology attachment,“ATA”)介面。
- 如申請專利範圍第1項所述之系統,其中該第二介面為一小型電腦系統介面(small computer system interface,“SCSI”)。
- 如申請專利範圍第1項所述之系統,其中儲存於該SSD上對應於未被該檔案系統刪除之資訊之有效資料,並未於該SSD上被標示為無效資料。
- 一種將儲存於一固態硬碟(“SSD”)上之資料標示為無效 之方法,該方法至少包含以下步驟:接收一事件,該事件指示資訊被刪除,其中被刪除的該資訊為一檔案;識別儲存於該SSD上對應於被刪除的該資訊的資料;及命令該SSD將所識別的該資料標示為無效,包含傳送檔案位置資訊至該SSD,該檔案位置資訊經由邏輯區塊定址(“LBA”)來指示該檔案的起始位置以及其後跟隨之該檔案的長度。
- 如申請專利範圍第9項所述之方法,其中該事件係接收自一檔案系統。
- 如申請專利範圍第9項所述之方法,其中該事件係經由一輸入-輸出控制(“IOCTL”)命令接收得。
- 如申請專利範圍第9項所述之方法,其中該命令步驟係經由一高技術配置(“ATA”)介面來執行。
- 如申請專利範圍第9項所述之方法,其中該命令步驟係經由一小型電腦系統介面(“SCSI”)來執行。
- 如申請專利範圍第9項所述之方法,其中將所識別的該 資料標示為無效,使該SSD能夠避免對無效資料進行不必要的操作。
- 一種電腦可讀媒體,其包括電腦可讀指令,該等電腦可讀指令實現一種方法,該方法將儲存於一固態硬碟(“SSD”)上之資料標示為無效,該方法包括以下步驟:接收一事件,該事件指示資訊被刪除,其中被刪除的該資訊為一檔案;識別儲存於該SSD上對應於被刪除的該資訊的資料;及命令該SSD將所識別的該資料標示為無效,包含傳送檔案位置資訊至該SSD,該檔案位置資訊經由邏輯區塊定址(“LBA”)來指示該檔案的起始位置以及其後跟隨之該檔案的長度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US91272807P | 2007-04-19 | 2007-04-19 | |
US12/030,193 US9207876B2 (en) | 2007-04-19 | 2008-02-12 | Remove-on-delete technologies for solid state drive optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200900925A TW200900925A (en) | 2009-01-01 |
TWI514134B true TWI514134B (zh) | 2015-12-21 |
Family
ID=39873400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097113635A TWI514134B (zh) | 2007-04-19 | 2008-04-15 | 達成固態硬碟最佳化之移除已刪除資料技術 |
Country Status (9)
Country | Link |
---|---|
US (4) | US9207876B2 (zh) |
EP (1) | EP2135167B1 (zh) |
JP (1) | JP2010525453A (zh) |
KR (1) | KR20100015506A (zh) |
CN (2) | CN106293517B (zh) |
BR (1) | BRPI0809287B1 (zh) |
RU (1) | RU2456664C2 (zh) |
TW (1) | TWI514134B (zh) |
WO (1) | WO2008130799A1 (zh) |
Families Citing this family (249)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719501B2 (en) | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
US20080140724A1 (en) | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8261030B2 (en) * | 2008-11-18 | 2012-09-04 | Microsoft Corporation | Using delete notifications to free related storage resources |
US8255641B2 (en) * | 2008-11-18 | 2012-08-28 | Microsoft Corporation | Modifying delete notifications in a storage stack |
US8156300B2 (en) * | 2008-11-18 | 2012-04-10 | Microsoft Corporation | Delete notifications for an entire storage volume |
US20100185806A1 (en) * | 2009-01-16 | 2010-07-22 | Arvind Pruthi | Caching systems and methods using a solid state disk |
US20100185843A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Hardware encrypting storage device with physically separable key storage device |
MX2011010822A (es) | 2009-04-21 | 2011-10-28 | Internat Bussines Machines Corp | Aparato y metodo para controlar un dispositivo de disco de estado solido (ssd). |
US8402069B2 (en) | 2009-05-04 | 2013-03-19 | Microsoft Corporation | Use of delete notifications by file systems and applications to release storage space |
US9881039B2 (en) * | 2009-05-26 | 2018-01-30 | International Business Machines Corporation | Rebalancing operation using a solid state memory device |
US9330282B2 (en) * | 2009-06-10 | 2016-05-03 | Microsoft Technology Licensing, Llc | Instruction cards for storage devices |
US8321956B2 (en) | 2009-06-17 | 2012-11-27 | Microsoft Corporation | Remote access control of storage devices |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
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 |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US8429436B2 (en) | 2009-09-09 | 2013-04-23 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
JP2011090496A (ja) * | 2009-10-22 | 2011-05-06 | Hitachi Ltd | 半導体記憶装置および制御方法 |
US8638010B2 (en) * | 2010-02-17 | 2014-01-28 | Integrated Device Technology, Inc. | Systems, devices, and methods for providing backup power to a load |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
WO2011143628A2 (en) | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
US8661189B2 (en) * | 2010-08-31 | 2014-02-25 | Apple Inc. | Systems and methods for trimming logical block addresses corresponding to a data structure residing in non-volatile memory |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
KR101893897B1 (ko) * | 2010-10-29 | 2018-08-31 | 삼성전자주식회사 | 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법 |
TWI579692B (zh) * | 2010-10-29 | 2017-04-21 | 三星電子股份有限公司 | 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法 |
JP2012118739A (ja) | 2010-11-30 | 2012-06-21 | Toshiba Corp | 記憶装置、及び制御方法 |
US8527693B2 (en) | 2010-12-13 | 2013-09-03 | Fusion IO, Inc. | Apparatus, system, and method for auto-commit memory |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US9213594B2 (en) | 2011-01-19 | 2015-12-15 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing out-of-service conditions |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
WO2012129191A2 (en) | 2011-03-18 | 2012-09-27 | Fusion-Io, Inc. | Logical interfaces for contextual storage |
GB2489405B (en) * | 2011-03-22 | 2018-03-07 | Advanced Risc Mach Ltd | Encrypting and storing confidential data |
JP5405513B2 (ja) | 2011-03-22 | 2014-02-05 | 株式会社東芝 | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム |
US9189392B1 (en) | 2011-06-30 | 2015-11-17 | Western Digital Technologies, Inc. | Opportunistic defragmentation during garbage collection |
US9158670B1 (en) | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8819375B1 (en) | 2011-11-30 | 2014-08-26 | Western Digital Technologies, Inc. | Method for selective defragmentation in a data storage device |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US8949512B2 (en) | 2012-02-17 | 2015-02-03 | Apple Inc. | Trim token journaling |
JP5659178B2 (ja) | 2012-03-16 | 2015-01-28 | 株式会社東芝 | 不揮発性記憶装置及び不揮発性メモリの制御方法 |
US9774676B2 (en) | 2012-05-21 | 2017-09-26 | Google Inc. | Storing and moving data in a distributed storage system |
US9449006B2 (en) * | 2012-06-04 | 2016-09-20 | Google Inc. | Method and system for deleting obsolete files from a file system |
US8788778B1 (en) | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
US9230000B1 (en) | 2012-06-04 | 2016-01-05 | Google Inc. | Pipelining Paxos state machines |
US9298576B2 (en) | 2012-06-04 | 2016-03-29 | Google Inc. | Collecting processor usage statistics |
WO2013184712A2 (en) | 2012-06-04 | 2013-12-12 | Google Inc. | Systems and methods of increasing database access concurrency using granular timestamps |
US9659038B2 (en) | 2012-06-04 | 2017-05-23 | Google Inc. | Efficient snapshot read of a database in a distributed storage system |
US9195611B2 (en) | 2012-06-04 | 2015-11-24 | Google Inc. | Efficiently updating and deleting data in a data storage system |
JP5586718B2 (ja) | 2012-06-19 | 2014-09-10 | 株式会社東芝 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US8984267B2 (en) | 2012-09-30 | 2015-03-17 | Apple Inc. | Pinning boot data for faster boot |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US9032264B2 (en) | 2013-03-21 | 2015-05-12 | Kabushiki Kaisha Toshiba | Test method for nonvolatile memory |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US9304685B2 (en) | 2013-09-10 | 2016-04-05 | Kabushiki Kaisha Toshiba | Storage array system and non-transitory recording medium storing control program |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
SG11201608791UA (en) | 2014-04-23 | 2016-11-29 | Ensconce Data Technology Llc | Method for completing a secure erase operation |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9747229B1 (en) * | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
CN104731839B (zh) * | 2014-10-08 | 2018-04-27 | 记忆科技(深圳)有限公司 | 一种ssd的前端数据管理加速的方法及一种ssd设备 |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US9880780B2 (en) * | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10235079B2 (en) | 2016-02-03 | 2019-03-19 | Toshiba Memory Corporation | Cooperative physical defragmentation by a file system and a storage device |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US10452532B2 (en) * | 2017-01-12 | 2019-10-22 | Micron Technology, Inc. | Directed sanitization of memory |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
CN114089915B (zh) * | 2017-03-27 | 2022-12-20 | 珠海极海半导体有限公司 | 基于flash存储器的文件追加写操作方法及装置 |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
KR102271502B1 (ko) | 2017-10-25 | 2021-07-01 | 삼성전자주식회사 | 메모리 장치 및 그 제어 방법 |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
FR3077892B1 (fr) * | 2018-02-15 | 2023-12-22 | Idemia | Système et procédé d'enregistrement d'une transaction associée à une mémoire non volatile orientée page |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
CN108920386B (zh) * | 2018-07-20 | 2020-06-26 | 中兴通讯股份有限公司 | 面向非易失性内存的磨损均衡及访问方法、设备和存储介质 |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
CN110780812B (zh) * | 2019-09-27 | 2021-08-24 | 苏州浪潮智能科技有限公司 | 一种硬盘数据置无效方法与装置 |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
EP4085335A1 (en) | 2019-12-31 | 2022-11-09 | Micron Technology, Inc. | Data removal marking in memory device |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
TW200302458A (en) * | 2002-01-11 | 2003-08-01 | Pioneer Corp | Information recording apparatus and method, information reproducing apparatus and method, information recording program and information reproducing program, recording medium and information recording medium |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193184A (en) * | 1990-06-18 | 1993-03-09 | Storage Technology Corporation | Deleted data file space release system for a dynamically mapped virtual data storage subsystem |
US5740395A (en) * | 1992-10-30 | 1998-04-14 | Intel Corporation | Method and apparatus for cleaning up a solid state memory disk storing floating sector data |
US5337275A (en) * | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
US5459850A (en) * | 1993-02-19 | 1995-10-17 | Conner Peripherals, Inc. | Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks |
JP2856621B2 (ja) * | 1993-02-24 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
US5682497A (en) * | 1993-09-28 | 1997-10-28 | Intel Corporation | Managing file structures for a flash memory file system in a computer |
US5535399A (en) * | 1993-09-30 | 1996-07-09 | Quantum Corporation | Solid state disk drive unit having on-board backup non-volatile memory |
US5553261A (en) * | 1994-04-01 | 1996-09-03 | Intel Corporation | Method of performing clean-up of a solid state disk while executing a read command |
US5867641A (en) | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
US5860124A (en) * | 1996-09-30 | 1999-01-12 | Intel Corporation | Method for performing a continuous over-write of a file in nonvolatile memory |
KR100330164B1 (ko) * | 1999-04-27 | 2002-03-28 | 윤종용 | 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법 |
US7660941B2 (en) * | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
KR100365725B1 (ko) * | 2000-12-27 | 2002-12-26 | 한국전자통신연구원 | 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법 |
CN1162782C (zh) * | 2001-08-03 | 2004-08-18 | 华为技术有限公司 | 快速存储器文件的处理方法 |
US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7526598B2 (en) * | 2003-03-03 | 2009-04-28 | Sandisk Il, Ltd. | Efficient flash memory device driver |
RU2280273C2 (ru) * | 2003-07-16 | 2006-07-20 | Открытое акционерное общество "Научно-производственное объединение "Прибор" | Способ структурирования и записи цифровой информации и устройство для его осуществления |
WO2005089339A2 (en) | 2004-03-12 | 2005-09-29 | Netcell Corporation | Disk controller methods and apparatus with improved striping redundancy operations and interfaces |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
KR100684887B1 (ko) | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
US7246195B2 (en) * | 2004-12-30 | 2007-07-17 | Intel Corporation | Data storage management for flash memory devices |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US9104315B2 (en) * | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US7724693B2 (en) * | 2005-07-28 | 2010-05-25 | Qnx Software Systems (Wavemakers), Inc. | Network dependent signal processing |
KR100739722B1 (ko) * | 2005-08-20 | 2007-07-13 | 삼성전자주식회사 | 플래시 메모리 관리 방법 및 플래시 메모리 시스템 |
US8307148B2 (en) * | 2006-06-23 | 2012-11-06 | Microsoft Corporation | Flash management techniques |
KR100771519B1 (ko) * | 2006-10-23 | 2007-10-30 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
US8572310B2 (en) * | 2007-11-06 | 2013-10-29 | Samsung Electronics Co., Ltd. | Invalidating storage area of non-volatile storage medium based on metadata |
-
2008
- 2008-02-12 US US12/030,193 patent/US9207876B2/en active Active
- 2008-04-01 CN CN201610605653.1A patent/CN106293517B/zh active Active
- 2008-04-01 CN CN200880012571A patent/CN101663652A/zh active Pending
- 2008-04-01 JP JP2010504149A patent/JP2010525453A/ja active Pending
- 2008-04-01 WO PCT/US2008/059048 patent/WO2008130799A1/en active Application Filing
- 2008-04-01 RU RU2009138348/08A patent/RU2456664C2/ru active
- 2008-04-01 EP EP08744884.1A patent/EP2135167B1/en active Active
- 2008-04-01 KR KR1020097021257A patent/KR20100015506A/ko not_active Application Discontinuation
- 2008-04-01 BR BRPI0809287-7A patent/BRPI0809287B1/pt active IP Right Grant
- 2008-04-15 TW TW097113635A patent/TWI514134B/zh active
-
2015
- 2015-12-07 US US14/961,809 patent/US9696907B2/en active Active
-
2017
- 2017-06-02 US US15/612,128 patent/US10156988B2/en active Active
-
2018
- 2018-11-12 US US16/186,652 patent/US10976928B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
TW200302458A (en) * | 2002-01-11 | 2003-08-01 | Pioneer Corp | Information recording apparatus and method, information reproducing apparatus and method, information recording program and information reproducing program, recording medium and information recording medium |
Also Published As
Publication number | Publication date |
---|---|
BRPI0809287A2 (pt) | 2014-10-14 |
US20080263305A1 (en) | 2008-10-23 |
US20190146673A1 (en) | 2019-05-16 |
WO2008130799A1 (en) | 2008-10-30 |
RU2456664C2 (ru) | 2012-07-20 |
TW200900925A (en) | 2009-01-01 |
RU2009138348A (ru) | 2011-04-27 |
BRPI0809287B1 (pt) | 2019-11-05 |
EP2135167B1 (en) | 2018-08-22 |
US20170336977A1 (en) | 2017-11-23 |
EP2135167A1 (en) | 2009-12-23 |
EP2135167A4 (en) | 2012-06-20 |
US9207876B2 (en) | 2015-12-08 |
KR20100015506A (ko) | 2010-02-12 |
US9696907B2 (en) | 2017-07-04 |
CN106293517A (zh) | 2017-01-04 |
JP2010525453A (ja) | 2010-07-22 |
US10156988B2 (en) | 2018-12-18 |
US10976928B2 (en) | 2021-04-13 |
CN101663652A (zh) | 2010-03-03 |
CN106293517B (zh) | 2019-09-20 |
US20160162194A1 (en) | 2016-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514134B (zh) | 達成固態硬碟最佳化之移除已刪除資料技術 | |
US10564859B2 (en) | Composite solid state drive identification and optimization technologies | |
US9928167B2 (en) | Information processing system and nonvolatile storage unit | |
TWI507869B (zh) | 虛擬化儲存裝置之系統、設備及方法 | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
CN101271383A (zh) | 操作数据处理系统的系统、方法以及计算机程序产品 | |
KR20140010999A (ko) | 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리 | |
US8751760B2 (en) | Systems and methods for power state transitioning in an information handling system | |
US20170109084A1 (en) | Logical address history management in memory device |