TWI579692B - 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法 - Google Patents

記憶體系統、資料儲存系統、使用者裝置及其資料管理方法 Download PDF

Info

Publication number
TWI579692B
TWI579692B TW100139384A TW100139384A TWI579692B TW I579692 B TWI579692 B TW I579692B TW 100139384 A TW100139384 A TW 100139384A TW 100139384 A TW100139384 A TW 100139384A TW I579692 B TWI579692 B TW I579692B
Authority
TW
Taiwan
Prior art keywords
data
management unit
trim
data management
file
Prior art date
Application number
TW100139384A
Other languages
English (en)
Other versions
TW201229754A (en
Inventor
鄭曉真
崔永準
李晟熏
朱宰賢
Original Assignee
三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020100106946A external-priority patent/KR101747791B1/ko
Priority claimed from KR1020100106947A external-priority patent/KR101893897B1/ko
Application filed by 三星電子股份有限公司 filed Critical 三星電子股份有限公司
Publication of TW201229754A publication Critical patent/TW201229754A/zh
Application granted granted Critical
Publication of TWI579692B publication Critical patent/TWI579692B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

記憶體系統、資料儲存系統、使用者裝置及其資料管 理方法 【相關申請案的交互參照】
本美國非暫時申請案根據35 U.S.C第119條,主張2010年10月29號提申的韓國申請案第10-2010-0106946號及2010年10月29號提申的韓國申請案第10-2010-0106947號的優先權。該申請案的整體內容在此併入本案以供參考。
本發明是有關於記憶體系統及其資料管理方法,且特別是有關於快閃記憶體系統及及其資料管理方法。
有別於硬碟,由於快閃記憶體不支援覆蓋寫入,所以於重新寫入前必須先進行抹除作業。快閃記憶體的抹除作業是以記憶體區塊為單位來處理。礙於快閃記憶體的這些特性,硬碟對檔案系統的處理方式難以應用於快閃記憶體上。快閃解譯層(Flash Translation Layer,FTL)是一種介於硬碟與快閃記憶體兩者檔案系統間所使用的韌體。快閃解譯層可讓快閃記憶體有如使用硬碟般自由地讀取/寫入。
檔案系統中管理檔案的單位與快閃解譯層單元中管理儲存於快閃記憶體的資料所用的單位並不相同。這兩個管理單位間的不相符(mismatch)可能導致快閃記憶體做出不必要的資料複製作業與大規模的合併作業。這種複製與合併作業可能縮短快閃記憶體的使用壽命。
根據一例示性實施例,提供一種用於資料儲存裝置的資料管理單位與使用者裝置的資料管理單位不同時的資料管理方法。於使用者裝置處接收即將刪除檔案的儲存區域之相關資訊。於即將刪除檔案的儲存區域中選擇與資料儲存裝置的資料管理單位相符的儲存區域。對所選之與資料管理單位相符的儲存區域進行抹除作業。
即將刪除檔案的儲存區域中,與資料儲存裝置的資料管理單位不相符的儲存區域之相關資訊,可被分開管理。
使用者裝置可改變即將刪除檔案的元資料之相關資訊來表示即將刪除檔案已於高階刪除。
資料管理方法更可包括經由資料儲存裝置,將至少兩個即將刪除檔案的儲存區域之相關資訊,於使用者裝置提供至少兩個即將刪除檔案的儲存區域之相關資訊時,儲存於緩衝記憶體中。
儲存區域的選擇方式為,於緩衝記憶體所儲存的至少兩個即將刪除檔案的儲存區域中,選擇與資料儲存裝置的資料管理單位相符的儲存區域。
使用者裝置可以扇區為單位管理資料。資料儲存裝置可以分頁為單位管理資料。每個分頁可細分為多個扇區。
根據一例示性實施例,提供一種用於資料儲存裝置的資料管理單位與使用者裝置的資料管理單位不同時的資料管理方法。於使用者裝置處接收即將刪除檔案的儲存區域之相關資訊。將與資料儲存裝置的資料管理單位相符的儲 存區域標示成無效。資料儲存裝置包括資料儲存單元,經組態來儲存資料,以及緩衝記憶體,經組態來暫時儲存即將寫入資料儲存單元的資料。緩衝記憶體所儲存資料中標示成無效的儲存區域之相關資料將不寫入儲存單元。
資料管理方法,更可包括將即將刪除檔案的儲存區域中與資料儲存裝置的資料管理單位不相符的儲存區域,標示成有效。緩衝記憶體所儲存資料中標示成有效的儲存區域之相關資料可寫入儲存單元。
資料管理方法更可包括產生TRIM管理表,經組態來管理即將刪除檔案的儲存區域中與資料儲存裝置的資料管理單位不相符的儲存區域。
TRIM管理表可儲存於緩衝記憶體中,且TRIM管理表的資訊可以推播機制來控制。
資料管理方法更可包括經由資料儲存裝置,將至少兩個即將刪除檔案的儲存區域之相關資訊,於使用者裝置提供至少兩個即將刪除檔案的儲存區域之相關資訊時,儲存於緩衝記憶體中。
對儲存區域的標示可標示即將刪除檔案的儲存區域中與資料儲存裝置的資料管理單位相符的儲存區域。
根據一例示性實施例記憶體系統包括經組態來產生TRIM指令的主機以及經組態來回應主機的TRIM指令進行抹除作業的資料儲存裝置。資料儲存裝置可根據TRIM指令對標示成即將刪除區域的儲存區域中與資料儲存裝置的資料管理單位相符的儲存區域進行抹除作業。
資料儲存裝置可根據TRIM指令分開管理而標示成即將刪除區域的儲存區域中與資料儲存裝置的資料管理單位不相符的區域之相關資訊。
資料儲存裝置可以分頁為單位管理資料。主機可以扇區為單位管理資料。每個分頁可細分為多個扇區。
資料儲存裝置可包括映射表經組態來將主機提供的邏輯位址,改變成資料儲存裝置的實體位址,且映射表中,即將刪除區域的儲存區域中與資料儲存裝置的資料管理單位相符的儲存區域將標示成無效。
映射表中,即將刪除區域的儲存區域中與資料儲存裝置的資料管理單位不相符的儲存區域將標示成有效。
資料儲存裝置更可包括TRIM管理表經組態來管理標示成即將刪除區域的儲存區域中與資料儲存裝置的資料管理單位不相符的儲存區域之相關資訊。
根據主機的另一個TRIM指令,映射表可於TRIM管理表中管理的儲存區域與資料儲存裝置的資料管理單位相符時,以TRIM管理表為基礎更新寫入狀態資料(WSI)。
映射表的WSI更可新,且與資料儲存裝置的資料管理單位相符並由TRIM管理表所管理的儲存區域之相關資料,將從TRIM管理表中刪除。
資料儲存裝置更可包括緩衝記憶體,經組態來儲存TRIM管理表並以推播機制管理TRIM管理表所儲存之資訊。
資料儲存裝置可包括緩衝記憶體,經組態來儲存主機 所傳輸的至少兩個TRIM指令之相關資訊。
資料儲存裝置更可包括至少兩個快閃記憶體經組態來儲存資料,以及控制單元經組態來控制至少兩個快閃記憶體。控制單元可控制緩衝記憶體所儲存的至少兩個TRIM指令的處理順序讓至少兩個快閃記憶體能平行運作。
根據一例示性實施例,提供一種與使用者裝置連接的資料儲存裝置。儲存單元經組態來儲存資料。緩衝記憶體經組態來暫時儲存即將寫入儲存單元的資料。控制單元經組態來控制儲存單元與緩衝記憶體。標示成即將刪除區域的儲存區域中與儲存單元的資料管理單位相符的儲存區域之資料,根據使用者裝置所傳輸的TRIM指令,不寫入儲存單元。
標示成即將刪除區域的儲存區域中與儲存單元的資料管理單位不相符的儲存區域之資料,可寫入儲存單元。
資料儲存裝置更可包括映射表,經組態來將主機提供的邏輯位址,改變成資料儲存裝置的實體位址。映射表中,標示成即將刪除區域的儲存區域中與儲存單元的資料管理單位相符的儲存區域之寫入狀態資料(WSI)可標示成無效。映射表中,標示成即將刪除區域的儲存區域中與儲存單元的資料管理單位不相符的儲存區域之WSI可標示成有效。
資料儲存裝置更可包括TRIM管理表經組態來管理與資料儲存裝置的資料管理單位不相符且於映射表中標示為 有效的儲存區域。
根據使用者裝置的另一個TRIM指令,映射表可於TRIM管理表中管理的儲存區域與資料儲存裝置的資料管理單位相符時,以TRIM管理表為基礎更新WSI。
資料儲存裝置更可包括緩衝記憶體,經組態來儲存至少兩個TRIM指令之資訊,所述至少兩個TRIM指令傳輸自使用者裝置。
儲存單元可更包括至少兩個快閃記憶體,以及控制單元可控制緩衝記憶體所儲存的至少兩個TRIM指令的處理順序讓至少兩個快閃記憶體能平行運作。
根據一例示性實施例,提供一種用於將檔案之資料儲存於資料儲存裝置且具有與不同於資料儲存裝置的資料管理單位之使用者裝置的資料管理方法。回應檔案刪除請求改變請求刪除檔案之元資料。對請求刪除檔案的儲存區域之資訊是否對應到資料儲存裝置的資料管理單位作出判斷。將請求刪除檔案的儲存區域之資訊中對應到資料儲存裝置的資料管理單位的區域之資訊傳輸到資料儲存裝置。
請求刪除檔案的元資料的改變可代表請求刪除檔案於高階刪除。
TRIM管理表經組態來管理請求刪除檔案的儲存區域之資訊中未對應到資料儲存裝置的資料管理單位的區域之資訊。
請求刪除檔案的儲存區域之資訊可由資料儲存裝置的映射表提供。
根據一例示性實施例,提供一種將檔案之資料儲存於資料儲存裝置的使用者裝置。檔案系統經組態以與資料儲存裝置的資料管理單位不同之單位管理檔案並改變請求刪除檔案的元資料。TRIM管理模組經組態來提供請求刪除檔案的儲存區域之資訊中對應到資料儲存裝置的資料管理單位的儲存區域之資訊。
請求刪除檔案的元資料之資訊的改變可代表請求刪除檔案於高階刪除。
使用者裝置更可包括TRIM管理表,經組態來管理請求刪除檔案的儲存區域之資訊中未對應到資料儲存裝置的資料管理單位的區域之資訊。
使用者裝置更可包括主機記憶體,經組態來儲存TRIM管理表,其中主機記憶體所儲存的TRIM管理表是經由推播方式來管理。
使用者裝置更可包括主機記憶體,經組態來儲存至少兩個請求刪除檔案的儲存區域之資訊。
TRIM管理表提供主機記憶體所儲存的至少兩個請求刪除檔案的儲存區域之資訊中對應到資料儲存裝置的資料管理單位的區域之資訊。
至少兩個請求刪除檔案的儲存區域之資訊可由資料儲存裝置的映射表提供。
根據一例示性實施例,記憶體系統包括經組態來支援TRIM作業的主機,以及經組態來回應主機的TRIM指令進行抹除作業的資料儲存裝置。主機僅提供請求刪除檔案 的儲存區域之資訊中對應到資料儲存裝置的資料管理單位的儲存區域之資訊。
主機可分開管理請求刪除檔案的儲存區域之資訊中未對應到資料儲存裝置的資料管理單位的區域之資訊。
主機可以扇區為單位管理檔案。資料儲存裝置可以分頁為單位管理檔案之資料。每個分頁可細分為多個扇區。
主機可包括檔案系統,經組態以扇區為單位來管理檔案並改變請求刪除檔案的元資料之資訊,以及TRIM管理模組經組態於請求刪除檔案的扇區中,選擇對應到資料儲存裝置的分頁單位的扇區之資訊。
請求刪除檔案的元資料之資訊的改變可代表請求刪除檔案於高階刪除。
主機更可包括TRIM管理表,管理請求刪除檔案的扇區中未對應到分頁單位的不完整扇區之資訊。
TRIM管理表可管理不完整扇區之資訊以及與不完整扇區同一分頁中扇區之資訊。
主機更可包括主機記憶體,經組態來儲存分別於不同時段出現的至少兩個請求刪除檔案的扇區之資訊。
TRIM管理模組可從儲存於主機記憶體中分別於不同時段出現的至少兩個請求刪除檔案的扇區之資訊中,選擇對應到資料儲存裝置的資料管理單位的扇區位址之資訊。
根據一例示性實施例,一種快閃記憶體系統的資料管理抹除方法,所述快閃記憶體系統具有主機檔案系統,經組態來聯繫快閃記憶體儲存裝置。
主機檔案系統將告知快閃記憶體儲存裝置哪一區塊的資料不再視為使用中的TRIM指令提供到快閃記憶體儲存裝置。TRIM指令包括標示請求刪除檔案的扇區位址。 快閃記憶體儲存裝置接收TRIM指令,將扇區位址解譯成分頁位址,並將快閃記憶體儲存裝置中即將刪除的分頁,標示成無效。快閃記憶體儲存裝置對標示成無效的分頁進行抹除作業。
抹除作業可在主機檔案系統沒有送出請求到快閃記憶體儲存裝置時的閒置時間中進行。
主機檔案系統接收到檔案的刪除請求後,主機檔案系統可改變請求刪除的檔案之元資料讓應用程式在隨後存取主機檔案系統的對應檔案時,能提供代表對應檔案已刪除之資訊給應用程式。
為讓本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉多個實施例,並配合所附圖式,作詳細說明如下。圖式中的引用編號各自代表其相關的元件。
以下將配合圖式參考以詳細描述本發明概念之例示性實施例。本發明概念可以不同形式來實施,然而,不該被解釋為限定用於以下實施例。
I.TRIM作業輔助記憶體系統
在電腦領域中,TRIM指令允許作業系統告知固態裝置(Solid State Device,SSD)哪一區塊的資料不再視為使用中的狀態且可將其自內部抹除。「TRIM」雖時常以大寫 來表示,卻不是一個首字母縮略字,而僅是一個指令的名稱。TRIM於SSD開始成為傳統硬碟的平價替代品之後逐漸被重視。由於SSD的低階作業大異於傳統硬碟中由作業系統控制如刪除或格式化等傳統作業(不直接將關聯的扇區/分頁的改變反映到底層的儲存媒介),導致SSD上寫入作業出現非預期的處理效能低落。
圖1與圖2繪示根據本發明概念實施例的記憶體系統10與20之方塊圖。
參見圖1與圖2,儲存裝置12儲存主機11寫入的資料。儲存裝置12提供資料給主機11,該資料由主機11讀取。這時,主機11中管理檔案的單位可能異於儲存裝置12中管理資料的單位。主機11與儲存裝置12管理單位間的不相符可使記憶體系統10的效能降低。
根據本發明概念例示性實施例的記憶體系統包括分開管理不相符區域的元件。一例示性實施例中儲存裝置12可包括如圖1所示之TRIM管理表(TRIM manage table)13。一例示性實施例中,主機11可包括如圖2所示之TRIM管理模組14。
圖1中包括TRIM管理表13的儲存裝置10,將在以下圖3至圖25作更詳細說明。圖2中包括TRIM管理模組14的主機11,將在以下圖26至圖41作更詳細說明。
圖3是一種繪示根據本發明概念實施例的記憶體系統100之方塊圖。
參見圖3,記憶體系統100包括主機110以及儲存裝置120儲存裝置120包括控制單元121以及儲存單元122。
主機110支援TRIM作業。TRIM作業意指使用者在輸入刪除特定檔案的要求時主機110將只處理對應檔案的元資料(Metadata)。這時,由於所處理的是主機110的元資料而不是實質將儲存單元122中所儲存的資料刪除,所以使用者可察覺對應檔案的刪除作業快速地被執行。
主機110提供TRIM指令給儲存裝置120,以實質刪除儲存單元122中所儲存的資料。該TRIM指令包括儲存即將實質刪除區域的資訊(例如,位址資訊)。作為對TRIM指令的回應,控制單元121對儲存單元121所儲存的資料進行抹除作業。TRIM指令也可以被稱為釋放指令(deallocate command)、不寫入指令(unwrite command)、刪除指令(delete command)或檔案刪除指令(file delete command)等不同名稱。
主機110中管理檔案的單位可異於儲存裝置120中管理儲存單元122所儲存資料的單位。舉例來說,主機110可以硬碟中之扇區為單位來管理檔案。在電腦磁碟的儲存中,扇區是磁碟或光碟上軌的子分區。每個扇區儲存著固定數量的使用者資料。另一方面,於快閃記憶體中儲存裝置120可以分頁與/或區塊為單位來管理儲存單元122所儲存的資料。
主機110與儲存裝置120管理單位間的不相符可減低記憶體系統100的效能。舉例來說,當儲存單元122所儲 存的資料回應主機110的TRIM指令進行抹除動作時,兩者管理單位間的不相符可導致有效(valid)資料的複製以及合併或統一資料組這種大規模的合併作業。因此,儲存裝置120的使用壽命會縮短,且儲存裝置120的效能會降低。
根據本發明概念例示性實施例的儲存裝置120包括TRIM模組123。TRIM模組123分開管理儲存單元122根據主機110的TRIM指令標示為即將實質刪除區域中,與儲存裝置120管理單位不相符的區域。在利用TRIM模組123專注於主機110與儲存裝置120間有不相符管理單位的情況,根據本發明概念實施例的記憶體系統100可避免儲存裝置120的使用壽命縮短與儲存裝置120的效能降低。
II.快閃記憶體系統中處理TRIM指令的快閃記憶體裝置。
圖4是一種繪示根據本發明概念例示性實施例的快閃記憶體裝置1000之方塊圖。圖4中,所繪示之儲存裝置1200是圖3中儲存裝置120的例示性實施例。
參見圖4,快閃記憶體裝置1000包括主機1100以及快閃儲存裝置1200。一例示性實施例中,主機1100以扇區為單位管理檔案而快閃儲存裝置1200以分頁為單位管理快閃記憶體1210所儲存的資料。快閃儲存裝置1200利用快閃解譯層(FTL)1232的TRIM管理表來專注於主機1100與快閃儲存裝置1200間管理單位的不相符。
主機1100包括處理單元1110以及驅動單元1120。處理單元1110(例如,CPU)控制著主機1100的整體作業,而驅動單元1120根據處理單元1110的控制來驅動快閃儲存裝置1200。驅動單元1120可與主記憶體組態後驅動主機1100的軟體程式。
驅動單元1120包括應用程式1121、檔案系統1122、裝置驅動程式1123以及主機記憶體1124。
應用程式1121是一個在作業系統(OS)上執行的應用程式軟體。
舉例來說,應用程式1121為了能支援檔案的產生與刪除而編寫。
檔案系統1122管理主機1100所管理的檔案。一例示性實施例中,檔案系統1122以硬碟中的扇區為單位,來管理主機1100使用的檔案。
扇區是應用程式1121可存取之最小資料管理單位,此外,一例示性實施例中,其大小為512B(byte)。當應用程式1121請求刪除特定檔案時,檔案系統1122將改變請求刪除檔案的元資料。接著,當應用程式1121存取對應檔案時,檔案系統1122將根據改變的元資料,提供標示為「此對應檔案已刪除」的資訊。
儲存在快閃記憶體1210中請求刪除檔案的對應資料,因檔案系統1122只改變檔案的元資料(例如,檔案名稱等)而未被刪除。因此,處理單元1110提供TRIM指令給快閃儲存裝置1200,以便後續刪除快閃記憶體1210儲存的資 料。檔案系統1122與其目錄欄位結構將於以下圖5作更詳細說明。
裝置驅動程式1123是允許快閃儲存裝置1200聯繫主機1100的程式。安裝適用於快閃儲存裝置1200的裝置驅動程式1123到主機1100,以使用快閃儲存裝置1200。主機記憶體1124可暫時儲存寫入到或讀取自檔案系統1122的資料。另外,主機記憶體1124可作為驅動應用程式1121、檔案系統1122與裝置驅動程式1123的工作記憶體來使用。
根據本發明概念實施例,快閃儲存裝置1200接收主機1100的TRIM指令。TRIM指令包括儲存標示為即將實質刪除區域的資訊(例如,已請求刪除檔案的位址資訊)。快閃儲存裝置1200將快閃記憶體1210區域中請求刪除之區域,標示成無效(invalid)。
快閃儲存裝置1200於閒置時間(例如,當主機未送出請求時,控制單元1230即獲得閒置時間),進行對標示成無效區域的抹除作業。
仍參見圖4,快閃儲存裝置1200包括快閃記憶體1210、緩衝記憶體1220以及控制單元1230。
快閃記憶體1210根據控制單元1230的控制,進行讀取作業或寫入作業。快閃記憶體1210組態後具有多個記憶體區塊。每個記憶體區塊組態後具有多個記憶體分頁。如圖4之例示性實施例所示,所繪示之記憶體區塊1211、1212與1213中,每個記憶體區塊具有四個分頁。
每個分頁的大小都大於每個扇區的大小。亦即,每個分頁可細分為多個扇區。一例示性實施例中,每個分頁可有2KB(byte)的大小,而每個扇區則有512B(byte)的大小。快閃記憶體1210以記憶體的區塊為單位進行抹除作業,並以分頁為單位進行寫入或讀取作業。
快閃記憶體1210中一個記憶格(Memory Cell)可儲存一或多個bit的資料。儲存1-bit資料的記憶格稱為單層格(Single Level Cell,SLC)或單一位元格。儲存2-bit或以上資料的記憶格稱為多層格(Multi-levelCell,MLC)或複數位元格。
緩衝記憶體1220可暫時儲存讀取自快閃記憶體1210的資料或主機1100所提供之資料。另外,緩衝記憶體1220可作如快閃解譯層的驅動軔體使用。緩衝記憶體1220可選擇動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)、磁電阻式隨機存取記憶體(Magnetoresistive Random Access Memory,MRAM)及相變化隨機存取記憶體(Phase-change Random Access Memory,PRAM)等來使用。
仍參見圖4,控制單元1230包括CPU 1231、快閃解譯層1232、快閃控制器1233以及緩衝控制器1234。CPU 1231分析與處理由主機1100處輸入的訊號。CPU 1231控制著快閃記憶體1200的整體作業。
快閃解譯層1232將主機1100所提供之邏輯位址(Logical Address,LA)解譯成快閃記憶體1210中的實體位址(Physical Address,PA)。舉例來說,快閃解譯層1232將從主機處接收的扇區位址解譯成快閃記憶體1210中的分頁位址。
此外,快閃解譯層1232,舉例來說,是以分頁為單位來管理快閃記憶體1210中的資料。當主機1100的TRIM指令請求刪除某分頁中全部資料時,快閃解譯層1232將對應分頁標示成無效。
當主機1100的TRIM指令請求僅刪除某分頁中部份資料時,快閃解譯層1232將映射表(mapping table)中對應分頁標示成有效。這時,快閃解譯層1232可分開地管理對應之分頁。為此,快閃解譯層1232可包括TRIM管理表。TRIM管理表管理請求刪除部分所儲存資料的分頁。
TRIM管理表可儲存於緩衝記憶體1220。這時,緩衝記憶體1220區域中指派到TRIM管理表區域的大小為一可變數。舉例來說,指派到TRIM管理表區域的大小可限制在一特定大小,來減輕控制單元1230於分頁管理時的負擔。
指派到TRIM管理表區域的大小限制在一特定大小時,TRIM管理表管理的分頁資訊大小可超過被指派區域大小。這時,TRIM管理表中分頁的資訊可由推播機制來管理,其中TRIM管理表所管理分頁資訊中最舊的分頁資訊可被刪除,且新請求分頁之資訊可被管理。
快閃解譯層1232與其分頁的管理方法將於以下圖7至圖11作更詳細說明。
圖5繪示一種根據例示性實施例產生管理圖4中檔案系統1122之檔案的目錄欄位結構。
參見圖5,目錄欄位結構可包括檔案名、副檔名、屬性、建立日期、建立時間、起始扇區資訊以及檔案大小資訊。
當應用程式1121(見圖4)請求刪除特定檔案時,檔案系統1122(見圖4)將改變請求刪除檔案的元資料。舉例來說,檔案系統1122將安排一十六進位位元碼「E5h」到請求刪除的檔案中。另一個例子中,檔案系統1122將檔案的屬性值,於請求刪除時,變更為「0xE5」。「0xE5」即代表「此檔案已刪除」的特別標籤。接著,當應用程式1121存取對應檔案時,檔案系統1122將提供表示該對應檔案已被刪除的資訊。檔案系統1122上的資訊可定期或於閒置時間儲存於非揮發性記憶體(例如,快閃記憶體1210)中。
檔案系統1122可根據快閃記憶體裝置1000(見圖4)的作業系統不同來選擇使用。舉例來說,當快閃記憶體裝置1000的作業系統為磁碟作業系統(DOS)或視窗架構作業系統時,可使用如檔案配置表(File Allocation Table,FAT)檔案系統、虛擬檔案配置表(VFAT)檔案系統、延伸FAT(exFAT)檔案系統或新技術檔案系統(New Technology File System,NTFS)等檔案系統。
根據一例示性實施例,當快閃記憶體裝置1000的作業系統為UNIX架構作業系統時,可使用UNIX檔案系統(UFS)。當快閃記憶體裝置1000的作業系統為LINUX架構作業系統時,可使用LINUX的檔案系統。當快閃記憶體裝置1000的作業系統為行動作業系統,例如,iOS作業系統時(亦即,iPhone/iPad所用的作業系統與安卓作業系統),可選擇使用行動作業系統的檔案系統。UNIX是工業標準聯盟開放群組(The Open Group)的商標。LINUX是李納斯.托沃茲(Linus Torvalds)的商標。iOS是思科(Cisco Systems)的商標。iPhone是思科與蘋果公司(Apple,Inc.)於共用協定下所用的商標。iPad是蘋果公司的商標。
圖6是一種繪示如圖4中快閃記憶體裝置1000的軟體層次結構之方塊圖。
參見圖6,快閃記憶體裝置1000的軟體層次結構是由應用程式1121、檔案系統1122、快閃解譯層1232與快閃記憶體1210所組態而成。主機1100(見圖4)的應用程式1121與檔案系統1122可稱為高階。快閃儲存裝置1200(見圖4)的快閃解譯層1232與快閃記憶體1210可稱為低階。
應用程式1121傳輸檔案刪除請求至檔案系統1122。檔案系統1122改變請求刪除檔案的元資料。舉例來說,檔案系統1122安排「E5h」做為檔案名稱(見圖5)。接著,當應用程式1121存取對應檔案時,檔案系統1122將提供表示對應檔案已被刪除的資訊。應用程式1121的請求刪除 檔案與檔案系統1122的元資料改變可稱為高階的刪除作業。
檔案系統1122提供TRIM指令給快閃解譯層1232,以實質刪除快閃記憶體1210所儲存的檔案。該TRIM指令包括標示請求刪除檔案的扇區位址資訊。快閃解譯層1232將扇區位址解譯成分頁位址,並將快閃記憶體1210中將被刪除的分頁,標示成無效。
快閃記憶體1210於閒置時間,對標示成無效的分頁進行抹除作業。舉例來說,閒置時間意指主機1100(見圖4)無請求送往控制單元1230(見圖4)的時間。眾所皆知,由於快閃記憶體1210是以區塊作為抹除作業的單位,所以快閃記憶體1210中分頁的抹除作業可能帶來資料的複製與合併,以及區塊的抹除作業。快閃解譯層1232的標示作業與快閃記憶體1210的抹除作業可稱為低階的刪除作業。
圖7是一種詳細繪示快閃解譯層1232位址解譯作業之方塊圖。
參見圖7,快閃解譯層1232接收一為邏輯位址的扇區位址,並於快閃記憶體1210中將扇區位址解譯成一為實體位址的分頁位址。
快閃解譯層1232的位址解譯可根據映射表來進行。映射機制通常分成分頁映射機制與區塊映射機制。分頁映射機制以分頁為單位(例如,2KB)進行解譯,而區塊映射機制則以區塊為單位(例如,1MB)進行解譯。
以應用程式1121或檔案系統1122的高階觀點來看,快閃解譯層1232位址解譯允許於快閃記憶體1210中進行的讀取、寫入與抹除作業,可視為在硬碟中進行讀取、寫入與抹除作業。亦即,快閃解譯層1232所進行的是一個模擬功能。
仍參見圖7,快閃解譯層1232可包括TRIM管理表。當對分頁作部份資料刪除請求時,TRIM管理表分開管理各對應分頁。使用映射表與TRIM管理表來處理低階刪除作業將於以下圖9至圖11作更詳細說明。
圖8是一種繪示以映射表進行位址解譯的例示性實施例之方塊圖。圖8中,根據一例示性實施例位址解譯於分頁映射機制中進行。
參見圖8,映射表將一為邏輯位址的扇區位址映射到一為實體位址的分頁位址。根據一例示性實施例,四個扇區映射到一個分頁。例如,如圖8所示,第一至第四扇區(sector1到sector4)映射到第三分頁(page3)中。
映射表以寫入狀態資料(Writing State Information,WSI)來表示該儲存為分頁的資料是否有效。例如,WSI中「v」符號代表該分頁中所儲存資料為有效。
在一例示性實施例中快閃記憶體1210的區塊1211中每個分頁(page0至page3)分為四個子分頁(子分頁0至子分頁3)。根據一例示性實施例各子分頁與各扇區的大小相同,各子分頁對應到各扇區。舉例來說,如圖8所繪示,根據一例示性實施例第三分頁(page3)分為四個子分頁(子 分頁0至子分頁3),其各分別對應到第一至第四扇區(sector1至sector4)。
圖9至圖11中,以及圖8所繪示,在一例示性實施例中為有效資料的三個檔案(file1到file3)儲存於區塊1211的第一至第三分頁(page0至page3)。
圖9是一種繪示根據本發明概念實施例僅使用映射表而不用TRIM管理表來處理TRIM指令之示意圖。根據一例示性實施例,提供包括圖8中第一檔案(file1)位址資訊之TRIM指令。亦即,於低階請求刪除第一檔案(file1)。
參見圖9,主機1100提供TRIM指令。TRIM指令包括將被刪除檔案之扇區位址。所提供之扇區位址資訊可為起始扇區編號與扇區數量。舉例來說,由於第一檔案(file1)對應到第一至第五扇區(sector1至sector5),所以起始扇區編號可為1且扇區數量可為5。
當主機1100提供TRIM指令時,快閃解譯層1232(見圖4)將更新映射表的WSI。亦即,所接收扇區位址之對應分頁的WSI將標示成無效。在圖9例示性實施例的WSI中「x」符號代表對應分頁所儲存資料為無效資料。
圖9中,第一檔案(file1)對應到第一至第五扇區(sector1至sector5)。這時,由於第一檔案(file1)的第一至第四扇區(sector1至sector4)對應到第三分頁(page3),所以映射表上第三分頁(page3)的WSI標示成無效。此外,由於第一檔案(file1)的第五扇區(sector5)對應到第二分頁(page2),所以映射表上第二分頁的WSI標示成 無效。標示成無效的第二分頁與第三分頁(page2與page3)之抹除作業,舉例來說,將於控制單元1230的閒置時間進行(見圖4)。
對應到第一檔案(file5)之第五扇區(sector5)的資料儲存於第二分頁(page2)的子分頁(0)中,且對應到第二檔案(file2)之第六到第八扇區(sector6至sector8)的資料儲存於第二分頁(page2)的子分頁(1至3)中。
因此,當第二分頁(page2)根據第一檔案(file1)的TRIM指令更新成無效時,第二檔案(file2)的有效資料可能一起被刪除。為避免第二檔案(file2)的資料被刪除,快閃記憶體1210將儲存在第二分頁(page2)子分頁(1至3)中的資料,複製到另一個分頁中(例如,其他如區塊1212的分頁中(見圖4))。
這種複製作業可造成寫入次數的增加而縮短快閃記憶體1210的使用壽命。此外,因複製作業而產生用來儲存有效資料的新分頁可能增加因產生空白區塊所造成的合併作業。因此,根據本發明概念例示性實施例快閃儲存裝置1200利用TRIM管理表分開管理第二分頁(page2)。以下圖10與圖11中將有更詳細說明。
圖10與圖11繪示本發明概念實施例中使用映射表與TRIM管理表處理TRIM指令之示意圖。如圖9所示,根據本發明概念例示性實施例提供包括第一檔案(file1)位址資訊之TRIM指令。
參見圖10,快閃儲存裝置1200使用映射表與TRIM管理表來處理主機1100所提供之TRIM指令。映射表管理從主機1100處接收且與快閃記憶體1210分頁單位相符的扇區位址之對應分頁。TRIM管理表管理從主機1100處接收且與快閃記憶體1210分頁單位不相符的扇區位址之對應分頁。
提供包括第一檔案(file1)扇區位址的TRIM指令給快閃儲存裝置1200。這時,第一檔案(file1)的第一至第四扇區(sector1至sector4)與快閃記憶體1210的分頁單位相符。亦即,第一至第四扇區(sector1至sector4)與第三分頁(page3)相符。因此,快閃解譯層1232(見圖4)將映射表中第三分頁(page3)的WSI,更新成無效。
第一檔案(file1)的第五扇區(sector5)與快閃記憶體1210分頁單位不相符。亦即,第五扇區(sector5)只與第二分頁(page2)中子分頁(1至3)裡的子分頁(0)相符。也就是說,第二分頁(page2)子分頁(1至3)所儲存的資料中只有子分頁(0)儲存的資料是有效資料。
這時,快閃解譯層1232將映射表中第二分頁(page2)的WSI,維護成有效。因此,於閒置時間(例如,控制單元1230的閒置時間)不進行標示成有效的第二分頁(page2)之抹除作業,僅進行標示成無效的第三分頁(page3)之抹除作業。第二分頁(page2)由TRIM管理表分開管理。
TRIM管理表分開管理第二分頁(page2)。亦即,TRIM管理表管理從主機1100處接收並與快閃記憶體1210分頁單位不相符的扇區位址之對應分頁。也就是說,TRIM管理表管理的分頁中有包括部份無效資料的分頁。
仍參見圖10,舉例來說,由於第五扇區(Sector5)對應到第二分頁(page2)的子分頁(0),所以第二分頁(page2)子分頁(0)所儲存的資料為無效資料。因此,TRIM管理表將第二分頁(page2)子分頁(0至3)中子分頁(0)的WSI,標示成無效。
當TRIM管理表管理的分頁中全部子分頁都更新成無效時,快閃解譯層1232將映射表中對應的分頁更新成無效。這時,對應分頁的資訊將從TRIM管理表中刪除。以下圖11中將有更詳細說明。
圖11中,根據本發明概念例示性實施例提供包括第二檔案(file2)位址資訊的TRIM指令給快閃儲存裝置1200。亦即,根據本發明概念例示性實施例於低階提供第二檔案(file2)的刪除請求。這時,由於第二檔案(file2)對應到第六至第八扇區(sector6至sector8),所以起始扇區編號可為6以及扇區數量可為3。
當提供處理第二檔案(file2)的TRIM指令時,第二檔案(file2)的第六至第八扇區(sector6至sector8)與快閃記憶體1210的分頁單位不相符。亦即,第六至第八扇區(sector6至sector8)只對應到第二分頁(page2)子分頁(0至3)中的子分頁(1至3)。因此,快閃解譯層1232 將映射表中第二分頁(page2)的WSI,維護成有效。這時,第二分頁(page2)由TRIM管理表分開管理。
由於第二檔案(file2)的第六至第八扇區(sector6至sector8)對應到第二分頁(page2)子分頁(1至3),所以TRIM管理表將第二分頁(page2)子分頁(1至3)的WSI,更新成無效。這時,第二分頁(page2)子分頁(0)儲存的資料已根據處理第一檔案(file1)的TRIM指令進入無效的狀態。因此,第二分頁(page2)的全部資料都將根據處理第一檔案與第二檔案(file1與file2)的TRIM指令進入無效的狀態。
由於第二分頁(page2)的全部資料都處於無效的狀態,所以快閃解譯層1232將映射表中第二分頁(page2)的WSI,更新成無效。因此,第二分頁(page2)的抹除作業將於後續的閒置時閃(例如,在控制單元1230的閒置時間)進行。然而,第二分頁(page2)的資訊將從TRIM管理表中刪除。
如上所述,映射表將包括部分無效資料分頁的WSI維護成有效。因此,不會進行與另一區塊中分頁對應的分頁所儲存之有效資料的複製作業。這代表可避免因有效資料的複製作業所帶來的合併作業。
這時,TRIM管理表管理包括部份無效資料的分頁。當TRIM管理表管理的分頁中全部資料都是無效的狀態下時,映射表中對應分頁的WSI將更新成無效。因此,快閃 記憶體1220可於低階時只對從主機1100處接收的扇區位址中與分頁單位相符的扇區位址進行抹除作業。
緩衝記憶體1220(見圖4)中指派給TRIM管理表的記憶體可選擇限制(restricted)其大小。這時,TRIM管理表管理的分頁位址相關資訊的大小將不會超過快閃記憶體1220的大小。
當TRIM管理表管理的分頁位址相關資訊的大小超過指派給緩衝記憶體1220的大小時,可由推播機制來管理TRIM管理表所管理分頁位址資訊的大小。
舉例來說,根據一例示性實施例第一至第三分頁(page1至page3)的資訊是由TRIM管理表來管理。另外,屬於另一區塊第四分頁(未繪示於圖式中)的資訊需要TRIM管理表的管理,當第四分頁(未繪示於圖式中)受到管理時,根據一例示性實施例TRIM管理表所管理的分頁位址相關資訊的大小將超過指派給TRIM管理表的區域大小。這時,快閃解譯層1232可將TRIM管理表中最舊的第一分頁之資訊刪除,並管理TRIM管理表中第四分頁(未繪示於圖式中)之資訊。
圖12是一種繪示圖4中快閃儲存裝置1200的低階抹除作業之流程圖。
在步驟S11的作業中,主機1100(見圖4)提供TRIM指令給快閃儲存裝置1200。該TRIM指令包括代表區域的資訊(例如,扇區位址資訊),該區域為快閃記憶體1210的區域中,即將進行抹除作業的區域(見圖4)。
在步驟S12的作業中,更新了快閃解譯層1232(見圖4)的映射表與TRIM管理表。舉例來說,當從主機1100處接收的扇區位址與快閃記憶體1210的的分頁單位相符時,對應分頁的映射表中WSI標示成無效。另一個例子中,當從主機1100處接收的扇區位址與快閃記憶體1210的分頁單位不相符時,對應分頁的映射表中WSI將標示成有效,且其對應分頁將由TRIM管理表來管理。
在步驟S13的作業中,根據映射表進行了抹除作業。亦即,映射表的WSI處於無效的狀態時,將進行對應分頁的抹除動作。眾所皆知,快閃記憶體1210的抹除動作是由區塊為單位來進行,於是快閃記憶體1210可為對應分頁帶來複製與/或合併的作業。
圖13是一種繪示快閃解譯層1232(見圖4)於低階進行刪除作業時的作業流程圖。
在步驟S1100的作業中,傳輸即將刪除檔案之扇區位址至快閃解譯層1232。舉例來說,扇區位址提供起始扇區號碼以及扇區數量。
在步驟S1200的作業中,判斷所傳輸之扇區位址是否為不完整扇區位址。這個步驟中,不完整扇區位址意指與快閃記憶體1210的分頁單位不相符之扇區位址(見圖4)。
當所傳輸之扇區位址不是一個不完整扇區位址時(亦即,所傳輸之扇區位址與分頁單位相符),快閃解譯層1232將更新步驟S1300的作業中映射表的WSI。亦即,所傳輸扇區位址之對應分頁的WSI將更新成無效。當所傳輸之扇 區位址是一個不完整扇區位址時(即所傳輸之扇區位址與分頁單位相符),步驟S1400的作業開始進行。
在步驟S1400的作業中,判斷與不完整扇區位址對應的TRIM管理表是否存在。當TRIM管理表不存在時,快閃解譯層1232將於步驟S1500的作業中產生與不完整扇區位址對應的TRIM管理表。
當TRIM管理表存在時,快閃解譯層1232將於步驟S1600的作業中更新TRIM管理表的WSI。亦即,不完整扇區位址之對應子分頁的WSI將更新成無效。
在步驟S1700的作業中,判斷TRIM管理表中全部WSI是否已更新。亦即,判斷某分頁中子分頁的全部WSI是否已更新為無效。當全部WSI都更新成無效時,快閃解譯層1232將於步驟S1800的作業中更新映射表的WSI。亦即,映射表中對應到對應分頁的WSI將更新成無效。
如上所述,根據本發明概念實施例的快閃記憶體裝置1000支援TRIM作業。亦即,當出現刪除某檔案的請求時,主機1100將改變檔案系統1122的元資料並通知使用者對應的檔案已被刪除,且根據TRIM指令於快閃儲存裝置1200中進行後續的刪除作業。
這時,快閃儲存裝置1200利用TRIM管理表,解決了主機1100與快閃儲存裝置1200間管理單位不相符的問題。因此,快閃儲存裝置1200可避免儲存於分頁中的資料因管理單位不相符所產生的複製作業。其結果為,可延長快閃儲存裝置1200的使用壽命以及避免效能低落。
如上所述,根據一例示性實施例,檔案(file1至file3)的資料儲存於快閃記憶體1210的分頁中。當快閃記憶體1200不支援清除作業(flush operation)時,檔案(file1至file3)的資料可儲存於緩衝記憶體1220(見圖4)中。以下,將對快閃儲存裝置1200支援清除作業時,根據本發明概念例示性實施例中TRIM指令的處理方法作更詳細說明。
III.支援清除作業的快閃儲存裝置
一種作業,將全部或部分儲存在緩衝記憶體扇區中的資料各別寫入快閃記憶體的分頁中,通常稱之為清除作業。
圖14至圖16為說明當快閃儲存裝置支援清除功能時TRIM指令的處理方法之示意圖。除了支援清除作業外,以下說明之快閃儲存裝置與圖4的快閃儲存裝置1200相似。因此,以下,將使用相同標號來代表相同元件。
圖14是一種利用映射表於緩衝記憶體1220與快閃記憶體1210間進行位址解譯之示意圖。根據一例示性實施例緩衝記憶體1220中各個扇區的大小與檔案系統1222(見圖4)管理單位的扇區大小相同。
參見圖14,緩衝記憶體1220包括多個扇區。緩衝記憶體1220的扇區暫時性地儲存資料。緩衝記憶體1220扇區中所儲存的資料根據資料控制單元1230(見圖4)的控制分別寫入快閃記憶體1210的區塊1211的分頁中。一種作業,將全部或部分儲存在緩衝記憶體1220扇區中的資料各別寫入快閃記憶體1210的分頁中,可稱之為清除作業。
舉例來說,當緩衝記憶體1220的空間不足時全部或部分儲存在緩衝記憶體1220扇區中的資料可各別寫入快閃記憶體1210的分頁中。在另一例子中,當控制單元1230(見圖4)處於閒置時間(例如,當主機1100未送出請求時所獲得的閒置時間)時全部或部分儲存在緩衝記憶體1220扇區中的資料可各別寫入快閃記憶體1210的分頁中。
快閃記憶體1210的區塊1211每個分頁(page0至page3)分為四個子分頁(子分頁0至子分頁3)。根據一例示性實施例中快閃記憶體1210的每個子分頁的大小與緩衝記憶體1220的扇區的大小相同。亦即,根據一例示性實施例四個扇區對應到一個分頁。
映射表將緩衝記憶體1220的扇區位址映射到快閃記憶體1210的分頁位址。圖14中映射表欄位的「BSA」代表緩衝記憶體1220的扇區位址。舉例來說,緩衝記憶體1220第一至第四扇區(扇區S1至扇區S4)映射到快閃記憶體1210的第三分頁(page3)。根據一例示性實施例緩衝記憶體1220的扇區S1至扇區S12中所儲存的三個檔案(file1至file3),是為有效資料。
當主機1100提供TRIM指令時,根據本發明概念實施例快閃儲存裝置1200將讓從緩衝記憶體1220寫入快閃記憶體1210並將已請求刪除檔案之資料無效化。亦即,快閃儲存裝置1200更新映射表中的WSI,從而避免緩衝記憶體1220所儲存的資料寫入快閃記憶體1210。
避免資料從緩衝記憶體1220寫入快閃記憶體1210中的作業可稱為不寫入(unwriting)作業。這時,TRIM指令包括的位址資訊將指定一區域為不寫入區域。因此,TRIM指令可視為一不寫入指令。本發明概念實施例中關於不寫入作業的進行將在以下圖15與圖16作更詳細說明。
圖15是一種繪示根據本發明概念實施例僅使用映射表而不用TRIM管理表來處理TRIM指令之方塊圖。根據一例示性實施例,提供包括第一檔案(file1)的扇區位址資訊之TRIM指令。此外,根據一例示性實施例主機1100所提供之扇區位址與緩衝記憶體1220的扇區位址相同。
參見圖15,主機1100提供TRIM指令。該TRIM指令包括即將刪除檔案之扇區位址。所提供之扇區位址資訊可為起始扇區編號與扇區數量。舉例來說,由於第一檔案(file1)的資料儲存於緩衝記憶體1220的第一至第五扇區(sector1至sector5),所以起始扇區編號可為1,且扇區數量可為5。
當主機1100提供TRIM指令時,快閃解譯層1232(見圖4)將更新映射表的WSI。亦即,快閃解譯層1232將請求不寫入作業的緩衝記憶體1220中扇區之對應分頁的WSI,標示成無效。舉例來說,由於第一檔案(file1)的資料儲存於緩衝記憶體1220的第一至第五扇區(sector1至sector5)中,快閃解譯層1232將映射表中對應第一至第五扇區(sector1至sector5)的WSI標示成無效。
這時,緩衝記憶體1220的第一至第四扇區(S1至S4)對應到第三分頁(page3),且第五扇區(S5)對應到第二分頁(page2)。因此,映射表中第二與第三分頁(page2與page3)的WSI將標示成無效。標示為無效的第二與第三分頁(page2與page3)並不進行後續的清除作業。亦即,儲存在緩衝記憶體1220第一到第八扇區(S1至S8)中的資料並不寫入快閃記憶體1210的第二與第三分頁(page2與page3)。
第二檔案(file2)的資料儲存於緩衝記憶體1220的第六至第八扇區(S6至S8)中。因此,當第二分頁(page2)根據處理第一檔案(file1)的TRIM指令標示成無效時,第二檔案(file2)的有效資料可不寫入快閃記憶體1210。這代表當快閃記憶體為揮發性記憶體(例如,DRAM)時第二檔案(file2)的資料可能會遺失。
根據本發明概念例示性實施例快閃儲存裝置1200利用TRIM管理表分開管理第二分頁(page2)。以下圖16中將有更詳細說明。
圖16是一種繪示根據本發明概念實施例僅使用映射表與TRIM管理表處理TRIM指令之示意圖。如圖15中,根據一例示性實施例提供包括第一檔案(file1)位址資訊之TRIM指令。
參見圖16,快閃儲存裝置1200使用映射表與TRIM管理表來處理主機1100所提供之TRIM指令。
提供包括第一檔案(file1)扇區位址的TRIM指令給快閃儲存裝置1200。亦即,提供處理緩衝記憶體1220第一至第五扇區(sector1 to sector5)中所儲存資料的不寫入指令給快閃儲存裝置1200。
這時,第一至第四扇區(S1 to S4)與快閃記憶體1210之分頁單位相符。亦即,第一至第四扇區(S1至S4)與第三分頁(page3)相符。因此,快閃解譯層1232(見圖4)將映射表中第三分頁(page3)的WSI,更新成無效。
第五扇區(S5)與快閃記憶體1210的分頁單位不相符。亦即,第五扇區(S5)只對應到第二分頁(page2)子分頁(0至3)中的子分頁(0)。這時,快閃解譯層1232將映射表中第二分頁(page2)的WSI,維護成有效。因此,儲存於第五至第八扇區(S5至S8)且標示成有效的資料將於閒置時間寫入第二分頁(page2)。由於第二分頁(page2)包括部分無效的資料,所以TRIM管理表將分開處理第二分頁(page2)。
仍參見圖16,TRIM管理表管理第二分頁以及第二分頁的子分頁。亦即,由於第二分頁(page2)子分頁(0至3)中子分頁(0)所儲存的資料是無效資料,所以TRIM管理表將子分頁(0)的WSI標示成無效。
處理第二檔案(file2)的TRIM指令可在第一至第四扇區(S1至4)的清除作業進行前提供。參見圖14,第二檔案(file2)儲存於緩衝記憶體1220的第六至第八扇區(S6 至S8),且第六至第八扇區(S6至S8)對應到第二分頁(page2)的子分頁(1至3)。
因此,當提供處理第二檔案(file2)的TRIM指令時,TRIM管理表中第二分頁(page2)的子分頁(0至3)將更新成無效。這時,快閃解譯層1232將映射表中第二分頁(page2)的WSI,更新成無效。其結果為,當後續的清除作業進行時,第一至第八扇區(S1至S8)所儲存的資料可不寫入快閃記憶體1210。
圖17是一種繪示根據本發明概念實施例快閃儲存裝置1200的不寫入作業之流程圖。
在步驟S21的作業中,主機1100提供TRIM指令給快閃儲存記憶體1200。該TRIM指令包括緩衝記憶體1220的扇區中將不寫入快閃記憶體1210的扇區之位址資訊。因此,TRIM指令可視為一不寫入指令。
在步驟S22的作業中,更新了快閃解譯層1232的映射表與TRIM管理表。舉例來說,當TRIM指令所包括的扇區位址與快閃記憶體1210的分頁單位相符時,映射表中對應分頁的WSI將標示為無效。另一個例子中,當TRIM指令所包括的扇區位址與快閃記憶體1210的分頁單位不相符時,映射表中對應分頁的WSI標示為有效,且該對應分頁將由TRIM管理表管理。
在步驟S23的作業中,根據映射表進行了不寫入作業。亦即,當映射表的WSI處於無效狀態,對應之緩衝記憶體扇區中所儲存的資料將不寫入快閃記憶體1210的分頁。映 射表與TRIM管理表的WSI更新方式與圖13之說明相似,因此其詳細說明不再贅述。
如上所述,根據本發明概念實施例快閃記憶體裝置1000支援不寫入作業。這時,快閃儲存裝置1200利用TRIM管理表解決了主機1100與快閃儲存裝置1200管理單位不相符的問題。因此,快閃儲存裝置1200可避免緩衝記憶體1220的有效資料因管理單位間的不相符而進行不寫入作業。
快閃儲存裝置1200可於不同時段接收主機1100的多個TRIM指令。這時,快閃儲存裝置1200可收集TRIM指令並於閒置時間中一併處理所收集的TRIM指令。以下圖18至圖20將有更詳細說明。
IV.快閃儲存裝置的TRIM指令收集
圖18至圖20為說明於不同時段接收TRIM指令並一併處理所收集指令的快閃儲存裝置之示意圖。除了收集TRIM指令外,以下說明之快閃儲存裝置與圖4的快閃儲存裝置1200相似。因此,以下說明將集中在其與圖4中快閃記憶體裝置1200的不同之處。另外,相同的引用編號代表相同的元件。
參見圖18提供第一至第三TRIM指令(TRIM cmd_1、TRIM cmd_2與TRIM cmd_3)給快閃儲存裝置1200的控制單元1230。根據一例示性實施例第一至第三TRIM指令(TRIM cmd_1、TRIM cmd_2與TRIM cmd_3)於不同時段提供給控制單元1230。
緩衝記憶體1220包括一TRIM收集區以收集所提供之TRIM指令。控制單元1230暫時將第一至第三TRIM指令(TRIM cmd_1、TRIM cmd_2與TRIM cmd_3)儲存於緩衝記憶體1220的TRIM收集區,且隨後於控制單元1230的閒置時間(例如,當主機1100未送出請求時的時間)處理第一至第三TRIM指令(TRIM cmd_1、TRIM cmd_2與TRIM cmd_3)。
控制單元1230的CPU 1231分析接收之指令。當接收之指令為TRIM指令時,CPU 1231將TRIM指令所包括的資訊(例如,起始扇區編號)以及扇區數量傳輸到緩衝控制器1234。緩衝控制器1234將TRIM指令所包括的資訊,儲存於緩衝記憶體1220的TRIM收集區。接著,快閃儲存裝置1232根據TRIM收集區所儲存之資訊,於閒置時間更新映射表與TRIM管理表。
圖19是一種將多個TRIM指令儲存於緩衝記憶體之作業流程圖。
在步驟S31的作業中,控制單元1230(見圖18)接收TRIM指令(TRIM cmd)。在步驟S32的作業中,控制單元1230將接收之TRIM指令的資訊儲存於緩衝記憶體1220的TRIM收集區。接著,當接收另一個TRIM指令時,控制單元1230繼續將TRIM指令所包括的資訊,儲存於緩衝記憶體1220的TRIM收集區。
圖20是一種於閒置時間處理收集之TRIM指令之作業流程圖。
在步驟S41的作業中,產生TRIM指令處理(TRIM command processing,TCP)訊號。舉例來說,當主機1100(見圖4)於某一時段未送出指令時,控制單元1230的CPU 1231將產生TRIM指令處理訊號(TCP)。
在步驟S42的作業中,更新了映射表與TRIM管理表。舉例來說,快閃解譯層1232(見圖4)回應TRIM指令處理訊號(TCP),對緩衝控制器1234(見圖4)的TRIM收集區送出對其收集之資訊的請求。
緩衝控制器1234將緩衝記憶體1220的TRIM收集區所收集之TRIM指令的資訊,傳輸到快閃解譯層1232。快閃解譯層1232根據所傳輸之資訊更新映射表與TRIM管理表。映射表與TRIM管理表的WSI更新方式與圖13之說明相似,因此其詳細說明不再贅述。
如上所述,根據本發明概念實施例快閃儲存裝置1200可收集緩衝記憶體1220中TRIM指令的資訊,並於閒置時間一併處理所收集之資訊。
圖4至圖20中,乃假設快閃儲存裝置1200包括一個快閃記憶體。但是,此僅為一範例,本發明的概念並不侷限於所述範例的範圍中。舉例來說,快閃儲存裝置1200可包括多個快閃記憶體。圖21至圖25中,將就包括多個快閃記憶體的快閃儲存裝置作更詳細說明。
V.具有多個快閃記憶體的快閃儲存裝置
圖21至圖25為說明當快閃儲存裝置包括多個快閃記憶體時TRIM指令的處理方法之示意圖。以下說明之快閃 儲存裝置與圖4至圖18中的快閃儲存裝置1200相似。因此,以下說明將集中在其與圖4至圖18中快閃記憶體裝置1200的不同之處。另外,相同的引用編號代表相同的元件。
快閃儲存裝置1200可包括多個快閃記憶體。此外,如以上圖18之說明所述,該快閃儲存裝置1200可收集TRIM指令的資訊。根據本發明概念實施例快閃儲存裝置1200可重設(reset)所收集到TRIM指令的順序,並根據重設之順序處理TRIM指令。因此,快閃儲存裝置1200可平行處理各快閃記憶體的TRIM指令。
圖21是一種繪示具有多個快閃記憶體的快閃儲存裝置1200的例示性實施例之示意圖。圖21中,根據一例示性實施例,快閃記憶體1200包括兩個快閃記憶體1210’與1240。
參見圖21,第一快閃記憶體1210’經由第一通道CH1連接到控制單元1230,且第二快閃記憶體1240經由第二通道CH2連接到控制單元1230。根據一例示性實施例每個快閃記憶體各包括四個分頁。
緩衝記憶體1220,如圖18之說明所述,包括TRIM收集區。多個TRIM指令的資訊儲存於該TRIM收集區。亦即,當提供TRIM指令時,控制單元1230將TRIM指令的資訊儲存於該TRIM收集區。此儲存方式已於以上圖18至圖20詳細說明過,因此其詳細說明不再贅述。
控制單元1230包括TRIM重排模組1235。TRIM重排模組1235重設TRIM收集區中所儲存TRIM指令的處理 順序。亦即,TRIM重排模組1235控制TRIM收集區中所儲存TRIM指令的處理順序比如將於快閃記憶體1210’與1240中平行執行的TRIM指令等。藉由TRIM指令處理順序的重設,快閃儲存裝置1200可縮短處理TRIM指令的時間。
控制單元1230包括CPU 1231、快閃解譯層1232、快閃控制器1233以及緩衝控制器1234。此元件已於以上圖4詳細說明過,因此其詳細說明不再贅述。
圖22至圖24為說明TRIM指令的重排與平行處理之示意圖。根據一例示性實施例,依序提供第一至第四TRIM指令(TRIM cmd_1、TRIM cmd_2、TRIM cmd_3與TRIM cmd_4)。此外,根據一例示性實施例每個TRIM指令的扇區位址與快閃記憶體的分頁單位相符。
參見圖22,第一至第四TRIM指令(TRIM cmd_1、TRIM cmd_2、TRIM cmd_3與TRIM cmd_4)所包括之資訊(例如,起始扇區編號與扇區數量)儲存於緩衝記憶體1220的TRIM收集區。這時,TRIM指令的處理順序將一起儲存於TRIM收集區。如圖22所繪示,根據一例示性實施例TRIM指令的起始處理順序是根據所提供之TRIM指令的順序來排列。
仍參見圖22,第一與第二TRIM指令(TRIM cmd_1與TRIM cmd_2)對應到第二快閃記憶體1240的分頁(分頁7與分頁5),且第三與第四TRIM指令(TRIM cmd_3與TRIM cmd_4)對應到第一快閃記憶體1210’的分頁(分 頁3與分頁1)。因此,當第一至第四TRIM指令(TRIM cmd_1、TRIM cmd_2、TRIM cmd_3與TRIM cmd_4)依序提供時,將處理第二快閃記憶體1240的第一與第二TRIM指令(TRIM cmd_1與TRIM cmd_2),接著,才處理第一快閃記憶體1210’的第三與第四TRIM指令(TRIM cmd_3與TRIM cmd_4)。
處理TRIM指令可能降低快閃儲存裝置1200的效能。舉例來說,第二快閃記憶體1240進行對第五與第七分頁的抹除作業的同時,第一快閃記憶體1210’可能不進行任何作業。這代表TRIM處理的時間將會延長。為避免TRIM指令處理效能的不足,根據本發明概念實施例快閃儲存裝置1200重設TRIM指令的處理順序(processing order of TRIM commands,POT)以便TRIM指令的平行處理。
亦即,如圖23所繪示,TRIM重排模組1235根據映射表將TRIM指令的處理順序(POT)重設如下:第一TRIM指令TRIM cmd_1、第二TRIM指令TRIM cmd_2、第四TRIM指令TRIM cmd_3以及第三TRIM指令TRIM cmd_4。
因此,如圖24所繪示,在第二快閃記憶體1240進行第一TRIM指令TRIM cmd_1處理的同時,第一快閃記憶體1210’也可進行第二TRIM指令TRIM cmd_2的處理。舉例來說,在第二快閃記憶體1240的第七分頁(分頁7)進行抹除作業的同時,第一快閃記憶體1210’的第三分頁(分頁3)可平行進行抹除作業。
同樣地,在第二快閃記憶體1240進行第二TRIM指令TRIM cmd_2處理的同時,第一快閃記憶體1210’也可進行第四TRIM指令TRIM cmd_4的處理。
上述判斷重設TRIM指令(POT)的處理順序之方法僅為一範例,本發明概念並不侷限於其範圍之內。舉例來說,TRIM指令的處理順序(POT)可因應每個快閃記憶體作業狀態的不同來決定。另一個例子中,當第二快閃記憶體1240進行寫入作業(或讀取作業)時,可決定TRIM指令的處理順序(POT)讓第一快閃記憶體1210’的TRIM指令處理得以進行。
圖25為繪示具有多個快閃記憶體的快閃儲存裝置1200對TRIM指令的處理方法之流程圖。
在步驟S51的作業中,產生TRIM指令處理訊號(TCP)。舉例來說,當主機1100(見圖4)於某一時段未送出請求時,控制單元1230的CPU 1231將產生TRIM指令處理訊號(TCP)。
在步驟S52的作業中,重設TRIM指令(儲存於TRIM收集區)的處理順序(POT)。舉例來說,TRIM重排模組1235(見圖21)重設TRIM指令的處理順序(POT)後TRIM指令可於各快閃記憶體中平行進行。這樣,舉例來說,TRIM重排模組1235可根據映射表來重設TRIM指令的處理順序(POT)。另一個例子中,TRIM重排模組1235可因應每個快閃記憶體的作業狀態來重設TRIM指令的處理順序(POT)。這樣,舉例來說,TRIM重排模組1235可決定 TRIM指令的處理順序(POT)以便第一快閃記憶體1210’的TRIM指令進行處理的同時,第二快閃記憶體1240的寫入作業(或讀取作業)也得以進行。
在步驟S53的作業中,更新了快閃解譯層1232(見圖21)的映射表與TRIM管理表。舉例來說,快閃解譯層1232回應TRIM指令的處理訊號(TCP),對緩衝控制器1234(見圖4)的TRIM收集區送出對其所收集之資訊的請求。
緩衝控制器1234將緩衝記憶體1220的TRIM收集區所收集之TRIM指令的資訊,傳輸到快閃解譯層1232。快閃解譯層1232根據所傳輸之資訊更新映射表與TRIM管理表。映射表與TRIM管理表的WSI更新方式與圖13之說明相似,因此其詳細說明不再贅述。
在步驟S54的作業中,根據TRIM指令對標示成無效區域的刪除作業於各快閃記憶體中平行進行。舉例來說,快閃控制器1233(見圖21)根據重設TRIM指令的處理順序(POT)與更新映射表對快閃記憶體送出抹除作業的請求。這時,由於TRIM指令的處理順序(POT)已重設,於是抹除作業可平行於各快閃記憶體中進行。
如上所述,當根據本發明概念實施例快閃記憶體系統1200包括多個快閃記憶體時,TRIM指令處理順序可以重設。因此,TRIM指令處理可於多個快閃記憶體中平行進行。其結果為,處理TRIM指令的時間可被縮短。
V.支援TRIM作業的主機
圖26是一種繪示根據本發明概念實施例的記憶體系統200之方塊圖。參見圖26,記憶體系統200包括主機210與儲存裝置220且儲存裝置220包括控制單元與儲存單元222。
主機210包括處理單元211與驅動單元212。處理單元211控制主機210的整體作業而驅動單元212根據處理單元211的控制來驅動快閃儲存裝置220。
主機100支援TRIM作業。TRIM作業在使用者請求刪除特定檔案時只處理主機210中對應檔案的元資料(Metafile)。這時,由於所處理的是主機210的元資料而不是實質刪除儲存於儲存單元222中的資料,所以使用者可察覺對應檔案的刪除作業快速地執行。
主機210提供TRIM指令給儲存裝置220,以實質刪除儲存單元222中所儲存的資料。該TRIM指令包括儲存即將被實質刪除區域的資訊(例如,位址資訊)。控制單元221回應TRIM指令對儲存單元221所儲存的資料進行抹除作業。TRIM指令也可稱作釋放指令、不寫入指令、刪除指令或檔案刪除指令等不同名稱。
另外,主機210中管理檔案的單位可異於儲存裝置220中管理儲存單元222所儲存資料的單位。舉例來說,主機210可以硬碟中之扇區為單位來管理檔案而儲存裝置220可以快閃記憶體中之分頁與/或區塊為單位來管理儲存單元222所儲存的資料。
主機210與儲存裝置220管理單位間的不相符可使記憶體系統200的效能減低。舉例來說,當儲存單元222所儲存的資料回應主機210的TRIM指令進行抹除動作時,兩者管理單位間的不相符可導致大量資料的複製與合併作業。因此,儲存裝置220的使用壽命將縮短且效能會降低。
主機210包括TRIM管理模組213。當TRIM指令提供給儲存裝置220時,TRIM管理模組213只提供指定刪除區域資訊(例如,扇區位址)中對應到儲存裝置220的管理單位(例如,分頁單位)之資訊。由於TRIM管理模組123解決了主機210與儲存裝置220管理單位間的不相符,儲存系統200可避免儲存裝置220的使用壽命縮短與效能降低。
VI.解決管理單位間不相符問題的快閃記憶體系統之主機
圖27是一種繪示根據本發明概念實施例的快閃記憶體系統2000之方塊圖。圖27中快閃儲存裝置2200是圖26中儲存裝置220的範例。
參見圖27,快閃記憶體系統2000包括主機2100與快閃儲存裝置2200。根據一例示性實施例主機2100以扇區為單位管理檔案而快閃儲存裝置2200以分頁為單位管理快閃記憶體2210所儲存的資料。
主機2100包括TRIM管理模組2124。主機2100利用TRIM管理模組1123解決了主機2100與快閃儲存裝置 2200管理單位間的不相符。參見圖27,主機2100包括處理單元2110以及驅動單元2120。
處理單元(例如,中央處理器(CPU))2110控制著主機2100的整體作業而驅動單元2120根據處理單元2110的控制來驅動快閃儲存裝置2200。驅動單元2120可包括記憶體來驅動主機2100的軟體程式。
驅動單元2120包括應用程式2121、檔案系統2122、裝置驅動程式2123、TRIM管理模組2124,以及主機記憶體2125。應用程式2121也可稱作於作業系統(OS)上執行的應用程式軟體。舉例來說,應用程式2121是為了支援檔案的產生與刪除作業所編寫。
檔案系統2122管理主機2100所使用的檔案。主機2122可以硬碟中之扇區或叢集(cluster)為單位來管理檔案。以下,根據一例示性實施例檔案系統2122以硬碟中的扇區為單位來管理主機2100所用的檔案。此處,扇區是應用程式2121可存取的最小資料管理單位且其大小通常為512Byte(B)。
當應用程式2121送出刪除特定檔案的請求時,檔案系統2122將改變請求刪除檔案的元資料。而後,當應用程式2121存取該對應檔案時,檔案系統2122將根據其所改變的元資料提供標示為「此對應檔案已刪除」的資訊。另外,檔案系統2122傳輸請求刪除檔案的扇區位址到TRIM管理模組2124。檔案系統2122與其目錄欄位結構將於以下圖28作更詳細說明。
TRIM管理模組2124從檔案系統2122處接收請求刪除檔案的扇區位址。TRIM管理模組2124將送達之扇區位址對應到快閃記憶體的分頁單位。亦即,TRIM管理模組2124只從送達之扇區位址中選擇對應到快閃儲存裝置2200分頁單位的扇區位址。TRIM管理模組2124提供對應到分頁單位的扇區位址與TRIM指令給快閃儲存裝置2200,以實質刪除快閃記憶體2210所儲存的資料。另外,TRIM管理模組2124可從送達之扇區位址中分開管理未對應到快閃儲存裝置2200分頁單位的扇區位址。
裝置驅動程式2123是允許快閃儲存裝置2200聯繫主機2100的程式。主機2100需安裝適用於快閃儲存裝置2200的裝置驅動程式2123,方能使用快閃儲存裝置2200。參見圖27,TRIM管理模組2124與裝置驅動程式2123是各自獨立的模組。然而,此僅為一例示性實施例且TRIM管理模組2124可內建於裝置驅動程式2123。
主機記憶體2125可暫時儲存寫入快閃儲存裝置2200的資料或讀取自快閃儲存裝置2200的資料。另外,主機記憶體2125也可作為驅動應用程式2121、檔案系統2122、裝置驅動程式2123與TRIM管理模組2124的工作記憶體來使用。
此外,快閃儲存裝置2200接收主機2100的TRIM指令。該TRIM指令包括即將被刪除區域的資訊(例如,關於刪除請求之扇區位址的資訊)。這時,快閃儲存裝置2200所提供之代表即將被刪除區域的資訊,可利用主機2100 的TRIM管理模組2124將其對應到快閃儲存裝置2200的管理單位(例如,分頁單位)。
快閃儲存裝置2200回應TRIM指令將快閃記憶體2210區域中請求刪除的區域標示成無效。該快閃儲存裝置2200於閒置時間(例如,當主機未送出請求時,控制單元2230所獲得的閒置時間),對標示成無效的區域進行抹除作業。參見圖27,快閃儲存裝置2200包括快閃記憶體2210、緩衝記憶體2220以及控制單元2230。
快閃記憶體2210根據控制單元2230的控制,進行抹除作業、讀取作業與寫入作業。快閃記憶體2210具有多個記憶體區塊。每個記憶體區塊具有多個分頁。一例示性實施例中之三個記憶體區塊2211、2212與2213如圖27所示。根據一例示性實施例每個記憶體區塊各包括四個分頁。
每個分頁的大小都大於每個扇區的大小。舉例來說,每個分頁具有2KB的大小,而每個扇區則具有512B的大小。
快閃記憶體2210以記憶體區塊為單位進行抹除作業,並以分頁為單位進行寫入或讀取作業。此外,快閃記憶體2210中一個記憶格可儲存一或多個bit的資料。儲存1-bit資料的記憶格稱為單層格(SLC)或單一位元格。儲存1-bit資料的記憶格稱為單層格(SLC)或單一位元格。
緩衝記憶體2220可暫時儲存讀取自快閃記憶體2210的資料或主機2100所提供之資料。另外,緩衝記憶體2220 可作為如快閃解譯層的驅動軔體來使用。緩衝記憶體2220可使用DRAM、SRAM、MRAM或PRAM。
控制單元2230包括CPU 1231、快閃解譯層2232、快閃控制器2233以及緩衝控制器2234。CPU 2231分析與處理由主機2100處輸入的訊號。另外,CPU控制快閃儲存裝置2200的整體作業。
快閃解譯層2232將主機2100所提供之邏輯位址(LA)解譯成快閃記憶體2210中的實體位址(PA)。舉例來說,快閃解譯層2232將主機210的扇區位址解譯成快閃記憶體2210中的分頁位址。
此外,快閃解譯層2232以分頁為單位管理快閃記憶體2210所儲存的資料,是為一例。快閃解譯層2232在請求以TRIM指令刪除預定分頁中所儲存的全部資料時將其對應之分頁標示成無效。
快閃控制器2233控制快閃記憶體2210的讀取、寫入,與抹除作業。舉例來說,於控制單元2230的閒置時間內,快閃控制器2233控制快閃記憶體2210以對標示成無效的分頁進行抹除作業。此外,快閃控制器2234控制緩衝記憶體2220的讀取與寫入作業。
圖28是一種繪示如圖27中檔案系統為管理檔案所產生的目錄欄位結構之示意圖。參見圖28,目錄欄位結構可包括檔案名、副檔名、屬性、建立日期與時間、起始扇區與檔案大小。
當圖27的應用程式2121送出刪除特定檔案的請求時,圖27的檔案系統2122將改變請求刪除檔案的元資料。舉例來說,檔案系統2122將安排「E5h」,一種十六進位位元碼,到請求刪除的檔案。另一個例子中,檔案系統1122將請求刪除檔案的屬性值,變更為「0xE5」。這是一個特殊標籤代表著「檔案已被刪除」。因此,之後當應用程式2121存取對應檔案時,檔案系統2122將提供表示該對應檔案已刪除的資訊。檔案系統2122的資訊可定期或於閒置時間儲存於非揮發性記憶體(例如,快閃記憶體2210)中。
此外,檔案系統2122可根據圖27中快閃記憶體系統2000的作業系統不同來選擇使用。舉例來說,當快閃記憶體系統2000使用磁碟作業系統(DOS)或視窗架構作業系統時,其檔案系統包括檔案配置表(FAT)檔案系統、虛擬檔案配置表(VFAT)檔案系統、延伸FAT(exFAT)檔案系統,與新技術檔案系統(NTFS)等檔案系統。Windows是微軟公司(Microsoft Corporation)的商標。
另一個例子中,當快閃記憶體裝置1000的作業系統為LINUX架構作業系統時,可使用LINUX檔案系統(UFS)。當快閃記憶體裝置1000的作業系統為LINUX架構作業系統時,可選擇使用適用於LINUX的檔案系統。當快閃記憶體裝置1000的作業系統為行動作業系統(例如,iOS作業系統(亦即,iPhone/iPad所用的作業系統與安卓作業系統))時,可使用於行動作業系統所用的檔案系統。UNIX是工業標準聯盟開放群組(The Open Group)的 商標。LINUX是李納斯‧托沃茲(Linus Torvalds)的商標。iOS是思科(Cisco Systems)的商標。iPhone是思科與蘋果公司(Apple,Inc.)於共用協定下所用的商標。iPad是蘋果公司的商標。
圖29是一種繪示如圖27中快閃記憶體系統2000的軟體層次結構之方塊圖。參見圖29,快閃記憶體系統2000的軟體層次結構包括應用程式2121、檔案系統2122、TRIM管理模組2124、快閃解譯層2232與快閃記憶體2210。圖27主機2100的應用程式2121、檔案系統2122與TRIM管理模組2124可視為高階。圖27快閃儲存裝置2200的快閃解譯層2232與快閃記憶體2210可視為低階。
應用程式2121傳輸檔案刪除請求到檔案系統2122。檔案系統2122改變請求刪除檔案之元資料。舉例來說,檔案系統2122將「E5h」置入圖28的檔案名稱中。因此,當應用程式2121存取對應檔案時,檔案系統2122可提供表示該對應檔案已刪除的資訊。應用程式2121的檔案刪除請求與檔案系統2122的元資料改變可視為「高階的抹除作業」。
TRIM管理模組2124從檔案系統2122接收請求刪除檔案的扇區位址(Sector ADDR)。TRIM管理模組2124從接收之扇區位址(Sector ADDRs)中選擇對應到快閃記憶體2210分頁單位的扇區位址。快閃記憶體2210對應到快閃記憶體2210分頁單位的扇區位址可視為對齊扇區位址(Aligned Sector ADDR)。
此外,TRIM管理模組2124可利用TRIM管理表從接收之扇區位址中分開管理未對應到圖27的快閃儲存裝置2200分頁單位的扇區位址。
此外,TRIM管理模組2124提供TRIM指令(TRIM cmd)給快閃解譯層2232,以實質刪除儲存於快閃記憶體2210中的資料。TRIM指令(TRIM cmd)包括用於代表請求刪除檔案之對齊扇區位址(Aligned Sector ADDR)。快閃解譯層2232將對齊扇區位址(Aligned Sector ADDR)解譯成分頁位址(Page ADDR),並將快閃記憶體2210中即將刪除的分頁標示成無效。
快閃記憶體2210於閒置時間對被標示成無效的分頁進行抹除作業。閒置時間表示圖27的主機1100未有請求送往控制單元2230時的時間。眾所皆知,由於快閃記憶體2210是以區塊為單位進行抹除作業,所以快閃記憶體2210中分頁的抹除作業可能帶來資料的複製、合併與區塊的抹除作業。快閃解譯層2232的標示作業與快閃記憶體2210的抹除作業可視為「低階的抹除作業」。
圖30是一種更詳細繪示如圖27中TRIM管理模組2124的作業之方塊圖。參見圖30,TRIM管理模組2124接收扇區位址(Sector ADDR)並輸出對應到分頁單位的扇區位址(例如,對齊扇區位址(Aligned Sector ADDR))。扇區位址(Sector ADDR)與對齊扇區位址(Aligned Sector ADDR)的資訊可包括起始扇區編號(Start Sector No)與扇區數量(# of Sectors)。
更詳細說明之,TRIM管理模組2124參照群組資訊,從扇區位址(Sector ADDRs)中選擇對應到分頁單位的扇區位址(例如,對齊扇區位址(Aligned Sector ADDR))。在此,群組資訊代表對應到一分頁之多個扇區的位址資訊。TRIM管理模組2124從快閃解譯層2232的映射表處接收群組資訊。群組資訊與映射表將於以下圖34作更詳細說明。
另外,TRIM管理模組2124可從接收之扇區位址(Sector ADDRs)中分開管理未對應到分頁單位的扇區位址。因此,TRIM管理模組2124包括TRIM管理表。
此外,TRIM管理表的資訊可儲存於圖27的緩衝記憶體2125。這時,緩衝記憶體2125區域中指派到TRIM管理表的區域大小為一可變數。舉例來說,為了減輕圖7中處理單元2110因扇區位址管理的負擔,指派給TRIM管理表的區域可限制為一預定之大小。
指派到TRIM管理表區域的大小限制在預定大小時,TRIM管理表管理的分頁資訊大小可超過被指派到至主機記憶體2125之區域的大小。這時,TRIM管理表中分頁的資訊可由推播方式來管理。TRIM管理模組2124與TRI管理模組的作業將於以下圖34至圖36作更詳細說明。
圖31是一種更詳細繪示如圖27的快閃解譯層2232中位址編譯作業之方塊圖。參見圖31,快閃解譯層2232將對齊扇區位址(Aligned Sector ADDR)(亦即,邏輯位 址)解譯成一分頁位址(Page ADDR)(快閃記憶體2210中的實體位址)。
快閃解譯層2232的位址解譯可經由映射表來進行。映射方法通常包括分頁映射方法與區塊映射方法。分頁映射方法以分頁為單位(例如,2KB)進行解譯,而區塊映射方法則以區塊為單位(例如,1MB)進行解譯。經由映射表進行的位址解譯將於以下圖32作更詳細說明。
快閃解譯層2232的位址解譯可視為高階的應用程式1121但允許實際於快閃記憶體2210中進行讀取、寫入與抹除作業,且看來就像在硬碟裝置中如檔案系統2122進行讀取與寫入作業一般。亦即,快閃解譯層2232所進行的是一個模擬功能。
圖32是一種繪示利用映射表的位址編譯之方塊圖。為求簡潔說明,以下,根據一例示性實施例位址解譯是經由分頁映射方式進行。
參見圖32,映射表將扇區位址(Sector ADDR),即邏輯位址,映射到分頁位址(Page ADDR),即實體位址中。根據一例示性實施例,四個扇區映射到一分頁中。舉例來說,如圖32所示,第一至第四扇區(Sector1、Sector2、Sector3與Sector4)可映射到第三分頁(Page3)中。
映射表以寫入狀態資料(WSI)來顯示該分頁儲存的資料是否為有效。例如,WSI中「v」符號代表該分頁中所儲存之資料為有效。
快閃記憶體2210的區塊2211第零至第三分頁(Page0至Page3)中每個分頁分為四個子分頁(子分頁0至子分頁3)。根據一例示性實施例各個子分頁與各個扇區的大小相同且各個子分頁對應到各個扇區。舉例來說,如圖32所示,第三分頁(Page3)分為四個子分頁(子分頁0至子分頁3)。第三分頁的四個子分頁(子分頁0至子分頁3)分別對應到第一到第四扇區(Sector1至Sector4)。
此外,為了方便說明,如圖32,根據一例示性實施例第一至第三檔案(File1、File 2與File 3)以有效資料的形式儲存於圖33至圖36中區塊2211的第一至第三分頁(Page1、Page2與Page3)中。這時,根據一例示性實施例第一檔案(File1)對應到第一至第五扇區(Sector1、Sector2、Sector3、Sector4與Sector5)而第二檔案(File2)對應到第六至第八扇區(Sector6、Sector7與Sector8),且第三檔案(File3)對應到第九至第十二扇區(Sector9、Sector10、Sector11與Sector12)。
圖33是一種繪示如圖27中快閃記憶體系統2000不使用TRIM管理模組2124來處理TRIM指令之方塊圖。亦即,如圖33中一例示性實施例提供未對應到分頁單位的扇區位址給快閃儲存裝置2200。根據一例示性實施例提供包括第一檔案(File1)的扇區位址資訊之TRIM指令(TRIM cmd)。
參見圖33,主機2100提供TRIM指令(TRIM cmd)。該TRIM指令(TRIM cmd)包括快閃記憶體2210即將實 質刪除區域的扇區位址。如圖33中所示,所提供之扇區位址的資訊可為起始扇區編號(Start Sector No)與扇區數量(# of Sectors)。舉例來說,由於第一檔案(File1)對應到第一至第五扇區(Sector1至Sector5),所以起始扇區編號(Start Sector No)為1且扇區數量(# of Sectors)為5。
當主機2100提供TRIM指令(TRIM cmd)時,圖27的快閃解譯層2232將更新映射表的WSI。亦即,接收之扇區位址的對應分頁WSI將標示成無效。在圖33中的例示性實施例,WSI中「x」符號代表該分頁中所儲存之資料為無效。
更詳細說明之,第一檔案(File1)對應到第一至第五扇區(Sector1、Sector2、Sector3、Sector4與Sector5)。這時,第一檔案(File1)的第一至第四扇區(Sector1、Sector2、Sector3與Sector4)對應到第三分頁(Page3)。因此,映射表中第三分頁(Page3)的WSI將標示成無效。第一檔案(File1)的第五扇區(Sector5)對應到第二分頁(Page2)因此,映射表中第三分頁(Page3)的WSI將標示成無效。標示成無效之第二分頁與第三分頁(page2與page3)的抹除作業,於圖2725中控制單元2230的閒置時間中進行。
另外,對應到第一檔案(File1)之第五扇區(Sector5)的資料儲存於第二分頁(Page2)的子分頁(0)中,且對應到第二檔案(File2)之第六到第八扇區(Sector6至Sector8)的資料儲存於第二分頁(Page2)的子分頁(1至3)中。
因此,當第二分頁(Page2)根據處理第一檔案(file1)的TRIM指令(TRIM cmd)標示成無效時,可一起刪除第二檔案(File2)的有效資料。因此,為避免第二檔案(File2)的資料被刪除,快閃記憶體2210將儲存在第二分頁(Page2)的子分頁(1至3)中的資料,複製到另一分頁中(例如,如圖27區塊2212的其他分頁中)。
這種複製作業可造成寫入次數增加而縮短快閃記憶體2210的使用壽命。另外,因為複製作業而產生的,用來儲存有效資料的新分頁可增加可用區塊之合併作業的產生。
控制單元2100包括圖27的TRIM管理模組2124。由於TRIM管理模組2124提供對應快閃儲存裝置2200管理單元的扇區位址給快閃儲存裝置2200,所以不會發生上述的複製作業。以下圖34至圖36將有更詳細說明。
圖34至圖36繪示快閃記憶體系統2000使用如圖27中TRIM管理模組2124來產生對齊扇區位址(Aligned Sector ADDR)與根據本發明概念實施例中處理包含對齊扇區位址(Aligned Sector ADDR)的TRIM指令之示意圖。
根據本發明概念實施例,主機2100提供對齊扇區位址(Aligned Sector ADDR)給快閃儲存裝置2200。為此,主機2100向快閃儲存裝置2200請求群組資訊。快閃儲存裝置2200從映射表處獲得群組資訊並將之提供給主機2100。接著,當對預定檔案的刪除請求出現時,主機2100的TRIM管理模組2124參照群組資訊來判斷接收之扇區位 址是否對應到分頁單位。TRIM管理模組2124提供對應到分頁單位的扇區位址與TRIM指令給快閃儲存裝置2200。
更詳細說明之,圖34繪示群組資訊從快閃儲存裝置2200的映射表傳輸到主機2100的流程。參見圖34,首先,主機2100向快閃儲存裝置2200請求群組資訊。舉例來說,主機2100的TRIM管理模組2124或圖27的處理單元2110可於開機時向快閃儲存裝置2200請求群組資訊。
快閃儲存裝置2200回應主機2100的群組資訊請求,將群組資訊提供給主機2100。在此,群組資訊代表對應到一分頁之多個扇區的位址資訊。例如,快閃儲存裝置2200可從映射表處獲得群組資訊。
舉例來說,參見映射表,四個扇區對應到一個分頁。亦即,第一至第四扇區(Sector1、Sector2、Sector3與Sector4)對應到第三分頁(Page3)而第六至第八扇區(Sector6、Sector7與Sector8)對應到第二分頁(Page2),且第九至第十二扇區(Sector9、Sector10、Sector11與Sector12)對應到第一分頁(Page1)。
因此,對快閃儲存裝置2200來說,第一至第四扇區、第五至第八扇區,與第九至十二扇區分別構成群組且每個群組中的扇區提供對應到一個分頁的資訊(亦即,群組資訊)給主機2100。送達主機2100的群組資訊可儲存於圖27的主機記憶體1124。
圖35與圖36繪示當請求刪除預定檔案時TRIM管理模組2124與快閃轉譯層2232的作業。參見圖35中,根據 一例示性實施例TRIM管理模組2124接收第一檔案的扇區位址(Sector ADDR)。亦即,根據一例示性實施例第一檔案(File1)進行高階的抹除作業後,圖27的檔案系統2122將提供第一檔案(File1)的扇區位址(Sector ADDR)。
TRIM管理模組2124從檔案系統2122處接收第一檔案(File1)的扇區位址(Sector ADDR)。由於第一檔案(File1)對應到第一至第五扇區(Sector1、Sector2、Sector3、Sector4與Sector5),所以起始扇區編號(Start Sector No)為1且扇區數量(# of Sectors)為5。TRIM管理模組2124參照儲存於主機記憶體2125中的群組資訊來判斷接收之扇區位址是否對應到分頁單位。
更詳細說明之,參見圖34的群組資訊,第一至第四扇區(Sector1、Sector2、Sector3與Sector4)構成一個群組。這時,第一至第四扇區(Sector1、Sector2、Sector3與Sector4)對應到一個分頁單位,亦即,快閃儲存裝置2200的管理單位。另一方面,第五扇區(Sector5)未對應至一個分頁單位。
這時,TRIM管理模組2124產生TRIM管理表來管理未對應到分頁單位的第五扇區(Sector5)。TRIM管理表,如圖35所示,包括第五扇區(Sector5)的群組資訊與WSI。由於對應到第五扇區(Sector5)的資料於高階時刪除,TRIM管理模組2124將TRIM管理表中第五扇區(Sector5)的WSI標示成無效。
此外,第一至第四扇區(Sector1、Sector2、Sector3與Sector4)對應到分頁單位。因此,TRIM管理模組2124提供第一至第四扇區(Sector1、Sector2、Sector3與Sector4)的扇區位址(亦即,起始扇區編號(Start Sector No)為1與扇區數量(# of Sectors)為4)與TRIM指令(TRIM cmd)給快閃儲存裝置2200。
由於第一至第四扇區(Sector1、Sector2、Sector3與Sector4)映射到第三分頁中,快閃轉譯層2232將映射表中第三分頁的WSI標示成無效。標示成無效的第三分頁(Page3)的抹除作業,於圖27控制單元2230的閒置時間中進行。這時,由於抹除作業進行時第三分頁(Page3)儲存的全部資料都是無效,所以將不進行如圖33的複製作業。
此外,為回應對後續另一個檔案的刪除請求,TRIM管理表管理的群組之WSI可更新成無效。這時,由於映射群組的扇區對應到分頁單位,TRIM管理模組2124可提供對應扇區的扇區位址給快閃儲存裝置。以下圖36中將有更詳細說明。
參見圖36,根據一例示性實施例TRIM管理模組2124接收第二檔案(File2)的扇區位址(Sector ADDR)。亦即,對第二檔案(File2)進行高階的抹除作業後,根據一例示性實施例檔案系統2122將提供第二檔案(File2)的扇區位址(Sector ADDR)。
TRIM管理模組2124從檔案系統2122處接收第二檔案(File2)的扇區位址(Sector ADDR)。由於第二檔案(File2)對應到第六至第八扇區(Sector6、Sector7與Sector8),所以起始扇區編號(Start Sector No)為6且扇區數量(# of Sectors)為3。TRIM管理模組2124參照主機記憶體2125所儲存的群組資訊來判斷的扇區位址是否對應到分頁單位。
更具體來說,參見圖34,第六至第八扇區(Sector6、Sector7與Sector8)未對應到分頁單位。因此,TRIM管理模組利用TRIM管理表分開管理第六至第八扇區(Sector6、Sector7與Sector8)。這時,TRIM管理表的第五至第八扇區(Sector5、Sector6、Sector7與Sector8)將於第一檔案(File1)的刪除請求出現時產生。因此,TRIM管理模組2124,如圖36所示,將第六至第八扇區(Sector6至Sector8)的WSI更新成無效。
這時,同群組中第五至第八扇區(Sector5、Sector6、Sector7與Sector8)的WSI全部為無效。亦即,第五至第八扇區(Sector5、Sector6、Sector7與Sector8)對應到分頁單位且對應到於高階刪除的檔案。因此,TRIM管理模組2124提供第五至第八扇區(Sector5、Sector6、Sector7與Sector8)的扇區位址(即扇區起始編號(Start Sector No)為5與扇區數量(# of Sectors)為4)與TRIM指令(TRIM cmd)給快閃儲存裝置220。這時,TRIM管理表將刪除第 五至第八扇區(Sector5、Sector6、Sector7與Sector8)的資訊。
此外,由於第五至第八扇區(Sector5、Sector6、Sector7與Sector8)映射到第二分頁(Page2)中,所以快閃轉譯層2232將映射表中第二分頁(Page2)的WSI標示成無效。標示成無效的第二分頁(Page2)的抹除作業,例如,將於圖27控制單元2230的閒置時間中進行。因此,第二分頁(page2)的抹除作業開始於閒置時間(例如,在控制單元2230的閒置時間)進行。
如上所述,主機2100的TRIM管理模組2124只提供從檔案系統2122送達快閃儲存裝2200的扇區位址中對應到分頁單位的扇區位址。因此,快閃儲存裝置2200將不會進行如圖33中不必要的複製作業。這代表其可避免因有效資料的複製作業而產生的合併作業。亦即,主機2100的TRIM管理模組2124解決了主機1110與快閃儲存裝置1120管理單位間的不相符,從而避免快閃儲存裝置220的使用壽命縮短與效能降低。
此外,指派給TRIM管理表的記憶體(即圖27的主機記憶體2125)可限制在一預定的大小。這時,TRIM管理表管理的扇區位址資訊的大小將不會超過主機記憶體2125的大小。
TRIM管理表管理的扇區位址資訊的大小超過指派給主機記憶體2125的大小時,可由推播方式來管理TRIM管理表所管理扇區位址資訊的大小。亦即,這時,TRIM管 理表所管理扇區資訊中最舊的扇區資訊可被刪除,且新請求分頁之資訊可被管理。
舉例來說,根據一例示性實施例中分別屬於不同群組的第一(Sector1)、第五(Sector5)與第九扇區(Sector9)的資訊是由TRIM管理表來管理。另外,屬於另一群組的第十三扇區(Sector13)資訊需要由TRIM管理表管理且如果十三扇區(Sector13)受到管理時,根據一例示性實施例中TRIM管理表所管理的扇區位址資訊的大小將超過指派給TRIM管理表的區域大小。這時,TRIM管理模組2124可將最舊的第一扇區(Sector1)資訊從TRIM管理表中刪除且第十三扇區(Sector13)的資訊可由TRIM管理表管理。
圖37是一種繪示將群組資訊從快閃儲存裝置2200的映射表送達主機2100之流程圖。
在步驟S110的作業中,主機2100向快閃儲存裝置2200請求群組資訊。舉例來說,主機2100可於開機時向快閃儲存裝置2200請求群組資訊。快閃儲存裝置2200回應主機2100的請求從映射表處獲得每個扇區的群組資訊。
在步驟S120的作業中,群組資訊儲存於主機2100的主機記憶體2125中。亦即,快閃儲存裝置2200提供由映射表處獲得的群組資訊給主機2100,而主機2100將送達之群組資料儲存於主機記憶體2125中。
圖38是一種繪示如圖27中TRIM管理模組2124的作業流程圖。
在步驟S210的作業中,TRIM管理模組2124從如圖27檔案系統2122中接收扇區位址(Sector ADDR)。亦即,對預定檔案進行高階的抹除作業後,檔案系統2122提供對應檔案的扇區位址(Sector ADDR)給TRIM管理模組2124。
在步驟S220的作業中,TRIM管理模組2124根據群組資訊判斷送達之扇區位址是否為不完整扇區位址(Partial Sector ADDR)。這個步驟中,不完整扇區位址(Partial Sector ADDR)代表未對應到圖27快閃記憶體2210中分頁單位之扇區位址。
如果送達之扇區位址不是不完整扇區位址(例如,送達之扇區位址對應到一分頁單位),TRIM管理模組2124會提供對應分頁的扇區位址資訊(例如,對齊扇區位址(Aligned Sector ADDR))給快閃儲存裝置2200。當送達之扇區位址是不完整扇區位址時(即送達之扇區位址未對應分頁單位),則開始進行步驟S240的作業。
在步驟S240的作業中,判斷對應到不完整扇區位址(Partial Sector)的TRIM管理表是否存在。如果TRIM管理表不存在,TRIM管理模組2124將產生TRIM管理表來管理步驟S250作業中的不完整扇區位址。如果TRIM管理表存在,TRIM管理模組2124將更新步驟S260作業中TRIM管理表的WSI。
在步驟S270的作業中,判斷TRIM管理表中全部WSI是否已更新。亦即,TRIM管理模組2124將判斷同一群組中扇區是否全部更新成無效。如果WSI全部都更新成無 效,TRIM管理模組2124會提供對應群組(例如,對齊扇區位址(Aligned Sector ADDR))的扇區位址與及TRIM指令(TRIM cmd)給步驟S280作業中的快閃儲存裝置2200。
如上所述,快閃記憶體系統2000支援TRI作業。意即,當請求刪除預定檔案時,主機2100改變檔案系統2122的元資料並通知使用者對應的檔案已被刪除,且根據TRIM指令(TRIM cmd)於快閃儲存裝置2200中進行實質的刪除作業。這時,主機2100利用TRIM管理模組2124解決了主機2100與快閃儲存裝置2200管理單位間的不相符。
另外,當於高階進行多個檔案的抹除作業時,TRI管理模組2124可於不同時段接收扇區位址。這時,TRIM管理模組2124收集請求刪除的扇區位址資訊且可於閒置時間同時處理收集到的位址資訊。以下圖29與圖30中將有更詳細說明。
Ⅶ.收集請求刪除扇區位址資訊的主機
圖39是一種繪示主機收集於不同時段所提供之扇區位址資訊並處理所收集之扇區位址資訊之示意圖。除了收集扇區位址資訊外,主機2100與圖27的主機2100相似。因此,以下,將討論其與圖27中主機2100的不同之處另外,相同的引用編號代表相同的元件。
參見圖39,提供第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)給TRIM管理模組2124。在此,第一至第三扇區位址(Sector ADDR_1、 Sector ADDR_2與Sector ADDR_3)代表於高階刪除不同檔案時各別的扇區位址。另外,根據一例示性實施例第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)各自於不同時段提供給TRIM管理模組2124。
主機記憶體2125包括TRIM收集區以收集所提供之TRIM指令。TRIM管理模組2124暫時將第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)儲存於主機記憶體2125的扇區收集區。在閒置時間內(例如,於圖27處理單元2110的閒置時間內),TRIM管理模組2124提供所收集之第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)中對應到分頁單位的扇區位址給圖27的快閃儲存裝置2200。
為了方便說明,如圖32所示,根據一例示性實施例第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)分別對應到第一至第三檔案(File1至File3)。這時,由於第一至第三檔案(File1至File3)對應到第一至第十二扇區(Sector1、Sector2、Sector3、Sector4、Sector5、Sector6、Sector7、Sector8、Sector9、Sector 10、Sector 11與Sector 12),第一至第十二扇區(Sector1、Sector2、Sector3、Sector4、Sector5、Sector6、Sector7、Sector8、Sector9、Sector 10、Sector 11與Sector 12)的位址資訊將儲存於扇區收集區。
此外,第一至第十二扇區(Sector1、Sector2、Sector3、Sector4、Sector5、Sector6、Sector7、Sector8、Sector9、 Sector 10、Sector 11與Sector 12)對應到一個分頁單位。亦即,由第一至第四扇區(Sector1、Sector2、Sector3與Sector4)、第六至第八扇區(Sector6、Sector7與Sector8),以及第九至第十二扇區(Sector9、Sector10、Sector11與Sector12)分別構成之群組對應到每個分頁。
因此,於閒置時間內,TRIM管理模組2124可提供第一至第十二扇區(Sector1、Sector2、Sector3、Sector4、Sector5、Sector6、Sector7、Sector8、Sector9、Sector 10、Sector 11與Sector 12)的扇區位址(即扇區起始編號(Start Sector No)為1與扇區數量(# of Sectors)為12)與TRIM指令(TRIM cmd)給快閃儲存裝置2200。由於第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)為同時被處理,相較於第一至第三扇區位址(Sector ADDR_1、Sector ADDR_2與Sector ADDR_3)的分開處理,可減少從主機2100將TRIM指令傳輸到快閃儲存裝置2200的時間。
圖40是一種繪示如圖39中扇區收集區收集之不同檔案的扇區位址的作業流程圖。
在步驟S310的作業中,提供扇區位址(Sector ADDR)給圖39的TRIM管理模組2124。在步驟S320的作業中,TRIM管理模組2124將接收之扇區位址(Sector ADDR)儲存於圖39主機記憶體2125的扇區收集區。之後當接收另一個扇區時,TRIM管理模組2124將繼續儲存扇區位址於扇區收集區中。
圖41是一種繪示如圖39中扇區收集區於閒置時間處理收集之扇區位址的作業流程圖。
在步驟S410的作業中,出現扇區位址處理(Sector Address Process,SAP)訊號。舉例來說,當主機1000於某一時段(如圖27處理單元1000的閒置時間)未送出請求時,控制單元2110的CPU 1231將產生SAP訊號。
在步驟S420的作業中,TRIM管理模組2124提供所收集之扇區位址中對應到分頁單位的扇區位址(亦即,對齊扇區位址(Aligned Sector ADDR))與TRIM指令給圖27的快閃儲存裝置2200。由於所收集的扇區位址為同時處理,可減少從主機2100將TRIM指令傳輸到快閃儲存裝置2200的時間。由於TRIM管理模組2124處理扇區位址的方法與圖38相似,因此其詳細說明不再贅述。
如上所述,當於高階進行多個檔案的抹除作業時,主機記憶體1124的扇區收集區可收集請求刪除檔案的扇區位址。由於所收集的扇區位址為同時處理,可減少從主機2100將TRIM指令傳輸到快閃儲存裝置2200的時間。
Ⅷ..快閃記憶體系統處理TRIM指令的應用範例
記憶體系統100與200以及根據本發明概念實施例的快閃記憶體裝置1000與2000可應用於多種產品上。主機2100可包括電腦、數位相機、行動電話、MP3播放器、點對多點(PMP)通訊裝置以及遊戲控制器。快閃儲存裝置2200可包括採用快閃記憶體的固態硬碟(SSD)、快閃記憶卡或快閃記憶體模組。主機2100與快閃儲存裝置2200 可經由規格化的介面如ATA、SATA、PATA、USB、SCSI、ESDI、PCI express或IDE等介面來互相連接。
圖42是一種繪示根據本發明概念實施例當快閃記憶系統應用於記憶卡時的示意圖。記憶卡系統3000包括主機3100與記憶卡2200。主機3100包括主機控制器3110與主機連接單元3120。記憶卡2200包括記憶卡連接單元3210、記憶卡控制器3220以及快閃記憶體3230。
主機連接單元3120與記憶卡連接單元具有多個針腳(pin)。該多個針腳包括指令針腳、資料針腳、時脈針腳以及電力針腳。針腳的數量可依記憶卡2200的種類而有所不同。例如,SD記憶卡包括九隻針腳。
主機3100將資料寫入記憶卡2200或從記憶卡2200處讀取資料。主機控制器3110將指令(例如,寫入指令)、主機3100的時脈產生器(未繪示)所產生之時脈訊號(CLK)以及資料(DAT),經由主機連接單元3120傳輸到記憶卡2200。
記憶卡控制器3220回應經由記憶卡連接單元3220接收之寫入指令,並與記憶卡控制器3220的時脈產生器(未繪示)產生之時脈訊號的時間同步,將資料儲存到記憶體3230。記憶體3230儲存主機3100所傳輸的資料。舉例來說,如果主機3100是一台數位相機,則其所儲存的是影像資料。
圖42中,主機控制器3110可包括支援TRIM作業與TRIM管理模組的應用程式與檔案系統。記憶卡控制器 3220可經由快閃解譯層處理記憶卡2200中的TRIM指令。如圖42所示之記憶卡系統可支援TRIM作業且其管理單位與TRIM管理模組相符。
圖43是一種繪示根據本發明概念實施例當快閃記憶系統應用於SSD時的示意圖。參見圖43,SSD系統4000包括主機4100以及SSD 4200。SSD 4200經由訊號連接器3231與主機4100來交換訊號並經由電力連接器3221來接收電力。SSD 4200包括多個非揮發性記憶體裝置4201、4202、…420n、SSD控制器4210,以及輔助電源供應器4220。
多個非揮發性記憶體裝置4201、4202、…420n是作為儲存媒介所用。多個非揮發性記憶體裝置4201、4202、…420n可使用具有大容量儲存能力的快閃記憶體裝置。根據一例示性實施例SSD 4200使用快閃記憶體。
多個非揮發性記憶體裝置4201、4202、…420n可經由多個通道CH1、CH2、…CHn與SSD控制器4210連接。一個通道可連接至少一個記憶體裝置。連接到一個通道的多個記憶體裝置可連接到相同的資料匯流排(data bus)。
這時,可將多個記憶體區塊連接成一個超級區塊或將多個記憶體分頁連接成一個超級分頁來進行快閃重組(亦即,實際將用於儲存資料的大容量儲存裝置之內容重新整理成最小數量的連續區域)。SSD控制器4210經由訊號連接器3231與主機4100交換訊號SGL。在此,訊號SGL可包括指令、位址以及資料。SSD控制器4210根據主機 4100的指令將資料寫入對應的記憶體裝置或從對應的記憶體裝置讀取資料。SSD控制器4210的內部組態將於以下圖44作更詳細說明。
如圖43所示,輔助電源供應器4220經由電力連接器3221與主機4100連接。輔助電源供應器4220接收主機4100的電力PWR時可同時充電。此外,輔助電源供應器4220可置放於SSD 4200的內部或外部。舉例來說,輔助電源供應器4220可置放於主機板並提供輔助電力給SSD 4200。
圖44是一種繪示如圖43中SSD控制器4210的組態之方塊圖。參見圖44,SSD控制器4210包括非揮發性記憶體(nonvolatile memory,NVM)介面4211、主機介面4212、錯誤修正碼(error correction code,ECC)單元4213、中央處理器(CPU)4214,以及緩衝記憶體4215。
NVM介面4211將從緩衝記憶體4215送達之資料散播於通道CH1、CH2、…CHn之每一個中。另外,NVM介面4211將從非揮發性記憶體4201、4202、420n讀取的資料傳輸到緩衝記憶體4215中。在此,NVM介面4211可使用NAND快閃記憶體中的介面方法。亦即,SSDE控制器4210可根據NAND快閃記憶體介面方法進行編程、讀取或抹除作業。
主機介面4212對應主機4100所用之協定提供一個主機4100與SSD 4200間的介面。主機介面4212可經由USB、SCSI、PCT express、ATA、PATA、SATA以及SAS介面來 與主機4100連繫。此外,主機記憶體4212可進行磁碟模擬功能允許SSD 4200被識別成硬碟(HDD)。
CPU 4214分析與處理由主機4100輸入的訊號SGL。CPU 4214經由主機介面4212或NVM介面4211來控制主機4100或非揮發性記憶裝置4201、4202、…420n。CPU 4214根據SSD 4200的驅動軔體來控制非揮發性記憶裝置4200、4202、_420n的作業。
緩衝記憶體4215暫時儲存主機4100所提供之資料或從非揮發性記憶裝置處所讀取之資料。另外,緩衝記憶體4215可儲存即將儲存於非揮發性記憶裝置(4201至420n)的元資料或快取資料。遇上突然的關機作業時,緩衝記憶體4215所儲存的元資料或快取資料將儲存到非揮發性記憶裝置4200、4202、…420n中。快閃記憶體可包括DRAM與SRAM。圖43與圖44的SSD可應用於上述的主機。
圖45是一種繪示根據本發明概念實施例實際使用快閃記憶體模組的快閃記憶系統之方塊圖。在此,主機如PC、行動電話、PDA以及數位相機等可於連接快閃記憶體模組5100後開始使用。
參見圖45,快閃記憶體模組5000可包括記憶體系統5100、電源供應器5200、輔助電源供應器5250、CPU5300、RAM 5400以及使用者界面5500。圖45中快閃記憶體模組5100可於連接上述主機後開始使用。
此外,如上所述,根據一例示性實施例圖27的主機2100以扇區為單位管理檔案而圖27的快閃儲存裝置2200 以分頁為單位管理快閃記憶體2210所儲存的資料。然而,當理解此僅為一例示性實施例。
舉例來說,主機2100可以叢集為單位來管理檔案而快閃儲存裝置2200可以快閃記憶體中之區塊與或包括多個分頁的超級分頁為單位來管理儲存單元2210所儲存的資料。主機2100的管理單位與快閃儲存裝置2200可依照系統設計者的需要或按照特定的資料管理協定以多種方式來實行。
此外,如上所述,根據一例示性實施例TRIM管理表可儲存於圖27的主機記憶體2125。如果主機記憶體2125實際使用的是揮發性記憶體(例如,DRAM),TRIM管理表內的資訊可能在突然關機時遺失。這時,由於TRIM管理表中區域的資料已於高階刪除,無論TRIM管理表的資訊是否遺失,使用者都將接收「對應資料已刪除」的資訊。此外,顯然TRIM管理表可儲存於非揮發性記憶體(例如,快閃記憶體)。
根據本發明概念實施例的記憶體系統專注於硬碟與快閃記憶體中管理單位的不相符,以避免因管理單位不相符造成有效資料的大量複製與合併作業。因此,根據本發明概念實施例的記憶體系統專注於快閃記憶體使用壽命減短與記憶體系統整體效能。此外,記憶體系統支援專注於快閃記憶體對主機指令回應速度的TRIM作業。
以上揭露之例示性實施例當視為繪示之範例而非對其範圍之限制,且隨附之申請專利範圍意在涵蓋所有例示性實施例、對其之變換與改良,以及其他例示性實施例。
10、20、100、200‧‧‧記憶體系統
11、210、1100、2100、3100、4100‧‧‧主機
12、220‧‧‧儲存裝置
13、123‧‧‧TRIM管理表
14、213、2124‧‧‧TRIM管理模組
121、221、1230、2124、2230‧‧‧控制單元
122、222‧‧‧儲存單元
1000‧‧‧快閃記憶體裝置
2000‧‧‧快閃記憶體系統
211、1110、2110‧‧‧處理單元
212、1120、2120‧‧‧驅動單元
1121、2121‧‧‧應用程式
1122、2122‧‧‧檔案系統
1123、2123‧‧‧裝置驅動
1124、2125‧‧‧主機記憶體
1200、2200‧‧‧快閃儲存裝置
1210、1210’、2210‧‧‧快閃記憶體
1211、1212、1213‧‧‧記憶體區塊
1220、2220、4215‧‧‧緩衝記憶體
1231、2231、4214、5300‧‧‧CPU
1232、2232‧‧‧快閃解譯層
1233、2233‧‧‧快閃控制器
1234、2234‧‧‧緩衝控制器
2125‧‧‧主機記憶體
3110‧‧‧主機控制器
3120‧‧‧主機連接器
3210‧‧‧記憶卡連接器
3220‧‧‧記憶卡控制器
3230‧‧‧記憶體
4000‧‧‧SSD系統
4201‧‧‧NVM_1
4202‧‧‧NVM_2
420n‧‧‧NVM_n
4211‧‧‧NVM I/F
4212‧‧‧主機I/F
4213‧‧‧ECC
4220、5250‧‧‧輔助電源供應器
5000‧‧‧快閃記憶體模組
5110‧‧‧快閃記憶體
5120‧‧‧記憶體控制器
5200‧‧‧電源供應器
5400‧‧‧RAM
5500‧‧‧使用者介面
為讓本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉多個實施例,並配合所附圖式,作詳細說明如下。圖式繪示本發明概念中之實施例,配合圖示說明,以闡述本發明之概念。圖式中的引用編號各自代表其相關的元件。
圖1與圖2繪示根據本發明概念實施例的記憶體系統之方塊圖。
圖3是一種繪示根據本發明概念實施例的記憶體系統之方塊圖。
圖4是一種繪示根據本發明概念例示性實施例的快閃記憶體系統之方塊圖。
圖5繪示一種根據例示性實施例產生管理圖4中檔案系統之檔案的目錄欄位結構。
圖6是一種繪示如圖4中快閃記憶體系統的軟體層次結構之方塊圖。
圖7是一種詳細繪示快閃解譯層位址解譯作業之方塊圖。
圖8是一種繪示以映射表進行位址解譯的例示性實施例之方塊圖。
圖9是一種繪示根據本發明概念實施例僅使用映射表而不用TRIM管理表來處理TRIM指令之示意圖。
圖10與圖11繪示本發明概念實施例中使用映射表與TRIM管理表處理TRIM指令之示意圖。
圖12是一種繪示圖4中快閃儲存裝置的低階抹除作業之流程圖。
圖13是一種繪示快閃解譯層於低階進行刪除作業時的作業流程圖。
圖14至圖16為說明當快閃儲存裝置支援清除功能時TRIM指令的處理方法之示意圖。
圖17是一種繪示根據本發明概念實施例快閃儲存裝置的不寫入作業之流程圖。
圖18至圖20為說明於不同時段接收TRIM指令並一併處理所收集指令的快閃儲存裝置之示意圖。
圖21至圖25為說明當快閃儲存裝置包括多個快閃記憶體時TRIM指令的處理方法之示意圖。
圖26是一種繪示根據本發明概念實施例的記憶體系統之方塊圖。
圖27是一種繪示根據本發明概念實施例的快閃記憶體系統之方塊圖。
圖28是一種繪示如圖27中檔案系統為管理檔案所產生的目錄欄位結構之示意圖。
圖29是一種繪示如圖27中快閃記憶體系統的軟體層次結構之方塊圖。
圖30是一種更詳細繪示如圖27中TRIM管理模組的作業之方塊圖。
圖31是一種更詳細繪示如圖27的快閃解譯層中位址編譯作業之方塊圖。
圖32是一種繪示利用映射表的位址編譯之方塊圖。
圖33是一種繪示如圖27中快閃記憶體系統不使用TRIM管理模組來處理TRIM指令之方塊圖。
圖34至圖36繪示快閃記憶體系統使用如圖27中TRIM管理模組來產生對齊扇區位址(Aligned Sector ADDR)與根據本發明概念實施例中處理包含對齊扇區位址的TRIM指令之示意圖。
圖37是一種繪示將群組資訊從快閃儲存裝置的映射表送達主機之流程圖。
圖38是一種繪示如圖27中TRIM管理模組的作業流程圖。
圖39是一種繪示主機收集於不同時段送出之扇區位址資訊並處理所收集的扇區位址資訊之示意圖。
圖40是一種繪示如圖39中扇區收集區收集之不同檔案的扇區位址的作業流程圖。
圖41是一種繪示如圖39中扇區收集區於閒置時間處理收集之扇區位址的作業流程圖。
圖42是一種繪示根據本發明概念實施例當快閃記憶系統應用於記憶卡時的示意圖。
圖43是一種繪示根據本發明概念實施例當快閃記憶系統應用於SSD時的示意圖。
圖44是一種繪示如圖43中SSD控制器的組態之方塊圖。
圖45是一種繪示根據本發明概念實施例實際使用快閃記憶體模組的快閃記憶系統之方塊圖。
1000‧‧‧快閃記憶體裝置
1100‧‧‧主機
1120‧‧‧驅動單元
1121‧‧‧應用程式
1122‧‧‧檔案系統
1123‧‧‧裝置驅動
1124‧‧‧主機記憶體
1110‧‧‧處理單元
1200‧‧‧快閃儲存裝置
1230‧‧‧控制單元
1231‧‧‧CPU
1232‧‧‧快閃解譯層
1233‧‧‧快閃控制器
1234‧‧‧緩衝控制器
1220‧‧‧緩衝記憶體
1210‧‧‧快閃記憶體
1213、1212、1211‧‧‧記憶體區塊

Claims (40)

  1. 一種用於記憶體系統之資料管理方法,所述記憶體系統包括一主機與一資料儲存裝置,所述主機具有不同於所述資料儲存裝置的一資料管理單位,所述資料管理方法包括:產生所述記憶體系統中不再需要的一第一檔案的一扇區位址區間,所述第一檔案的資料被儲存在所述資料儲存裝置的一第一管理單位與只有一部分的一第二管理單位;依據從所述資料儲存裝置接收的一映射表的資訊,分配所述第一檔案的所述扇區位址區間到一第一扇區位址區間與一第二扇區位址區間,所述第一扇區位址區間與所述第二扇區位址區間各別的對應到所述第一管理單位與所述只有一部分的所述第二管理單位;傳輸包括所述第一扇區位址區間的一指令給所述資料儲存裝置,使得在所述資料儲存裝置裡的所述映射表中,所述第一管理單位的寫入狀態資料被標示成無效,而所述第二管理單位的寫入狀態資料仍保持為有效;以及使用所述主機中的一TRIM管理表來管理所述第二扇區位址區間,使得所述只有一部分的所述第二管理單位在所述TRIM管理表中被指示為無效,所述TRIM管理表與所述映射表分別被所述主機與所述資料儲存裝置分開管理,所述TRIM管理表的內容與所述映射表的內容並不相同。
  2. 如申請專利範圍第1項所述之資料管理方法,其中,所述資料儲存裝置的資料管理單位的大小大於所述主機的資 料管理單位的大小。
  3. 如申請專利範圍第2項所述之資料管理方法,其中,所述主機的資料管理單位的大小是一扇區的大小,所述資料儲存裝置的資料管理單位的大小是分頁的大小,所述分頁包括多數個子分頁,每一所述子分頁相當於一扇區的大小。
  4. 如申請專利範圍第3項所述之資料管理方法,其中,在所述第二管理單位中,所述只有一部分的所述第二管理單位對應到至少一個所述子分頁,但不會對應到所有所述子分頁。
  5. 如申請專利範圍第1項所述之資料管理方法,其中,所述TRIM管理表包括指示所述主機的每一資料管理單位是否為有效的寫入狀態資料。
  6. 如申請專利範圍第5項所述之資料管理方法,其中,所述TRIM管理表標示對應到所述只有一部分的所述第二管理單位的一第一寫入狀態資料為無效,且,標示對應到所述只有一部分的所述第二管理單位之外的其他部分的一第二寫入狀態資料為有效。
  7. 如申請專利範圍第1項所述之資料管理方法,更包括:改變一檔案系統中所述第一檔案的元資料。
  8. 如申請專利範圍第7項所述之資料管理方法,其中,改變所述第一檔案的所述元資料,代表所述第一檔案在所述主機中不再需要,且在高階刪除。
  9. 如申請專利範圍第1項所述之資料管理方法,其中,在所述資料儲存裝置裡,對所述第一管理單位進行抹除作業 是優先於對所述第二管理單位進行抹除作業。
  10. 如申請專利範圍第9項所述之資料管理方法,其中,對所述第二管理單位進行抹除作業會被推遲,直到所述只有一部分的所述第二管理單位之外的其他部分在所述主機中的所述TRIM管理表中被標示成無效之後。
  11. 一種記憶體系統,包括:一主機:以及一資料儲存裝置,其中:所述主機配置用來驅動一檔案系統,以經由不同於所述資料儲存裝置的一資料管理單位的一單位來管理一檔案,並且改變所述記憶體系統中不再需要的一第一檔案的元資料,所述第一檔案的資料被儲存在所述資料儲存裝置的一第一管理單位與只有一部分的一第二管理單位,所述主機更配置用來傳輸包括所述第一檔案的一第一扇區位址區間的一指令給所述資料儲存裝置,使得在所述資料儲存裝置裡的一映射表中對應到所述第一扇區位址區間的寫入狀態資料被標示成無效,並且使用所述主機中的一TRIM管理表來管理所述第一檔案的所述第二扇區位址區間,使得所述只有一部分的所述第二管理單位在所述TRIM管理表中被指示為無效,所述第一扇區位址區間與所述第二扇區位址區間各別的對應到所述第一管理單位與所述只有一部分的所述第二管理單位,且所述資料儲存裝置配置用來保持所述映射表中對應到所 述第二扇區位址區間的寫入狀態資料為有效,所述TRIM管理表與所述映射表分別被所述主機與所述資料儲存裝置分開管理,所述TRIM管理表的內容與所述映射表的內容並不相同。
  12. 如申請專利範圍第11項所述之記憶體系統,其中,所述資料儲存裝置的資料管理單位的大小大於所述主機的資料管理單位的大小。
  13. 如申請專利範圍第12項所述之記憶體系統,其中,所述主機的資料管理單位的大小是一扇區的大小,所述資料儲存裝置的資料管理單位的大小是分頁的大小,所述分頁包括多數個子分頁,每一所述子分頁相當於一扇區的大小。
  14. 如申請專利範圍第13項所述之記憶體系統,其中,在所述第二管理單位中,所述只有一部分的所述第二管理單位對應到至少一個所述子分頁,但不會對應到所有所述子分頁。
  15. 如申請專利範圍第11項所述之記憶體系統,其中,經由所述檔案系統改變的所述第一檔案的所述元資料,代表所述第一檔案在高階被刪除。
  16. 如申請專利範圍第15項所述之記憶體系統,其中,所述主機儲存對應到至少兩個檔案的扇區位址區間的資訊,所述至少兩個檔案在所述記憶體系統中已不再需要。
  17. 如申請專利範圍第16項所述之記憶體系統,其中,在所述記憶體系統中已不再需要的所述至少兩個檔案被要求在各別不同的時間裡刪除。
  18. 如申請專利範圍第15項所述之記憶體系統,其中,所述主機配置用來儲存從所述資料儲存裝置的所述映射表接收的群組資訊,所述群組資訊包括所述主機的資料管理單位與所述資料儲存裝置的資料管理單位之間的映射資訊。
  19. 如申請專利範圍第11項所述之記憶體系統,其中,在所述資料儲存裝置裡,對所述第一管理單位進行的抹除作業是優先於對所述第二管理單位進行的抹除作業。
  20. 如申請專利範圍第19項所述之記憶體系統,其中,對所述第二管理單位進行的抹除作業會被推遲,直到所述只有一部分的所述第二管理單位之外的其他部分在所述主機中的所述TRIM管理表中被標示成無效。
  21. 一種資料管理方法,其使用一資料儲存裝置的一資料管理單位,所述資料儲存裝置包括用來儲存一第一檔案的資料的一非揮發性記憶體以及一控制器,所述資料管理方法包括:該控制器從一外部裝置接收一指令,所述指令包含在所述外部裝置中不再需要的所述第一檔案的一扇區位址區間,所述第一檔案的所述資料被儲存在所述非揮發性記憶體的一第一資料管理單位與只有一部分的一第二資料管理單位;使用一映射表分配所述第一檔案的所述扇區位址區間到所述第一資料管理單位與所述第二資料管理單位;在所述映射表中將所述第一資料管理單位的寫入狀態標示成無效,所述第一資料管理單位的大小是所述資料管理單位的大小的一或多倍; 管理所述第二資料管理單位的寫入狀態,包括在所述映射表中為有效的部分,所述部分的大小是小於所述資料管理單位的大小;以及使用一TRIM管理表來管理所述第二資料管理單位,使得所述第二資料管理單位中的所述部分,在所述TRIM管理表中被標示成無效,所述TRIM管理表與所述映射表被所述控制器分開管理,所述TRIM管理表的內容與所述映射表的內容並不相同。
  22. 如申請專利範圍第21項所述之資料管理方法,其中,所述資料管理單位的大小大於所述外部裝置的資料管理單位的大小。
  23. 如申請專利範圍第22項所述之資料管理方法,其中,所述外部裝置的資料管理單位的大小是一扇區的大小,所述資料儲存裝置的所述資料管理單位的大小是分頁的大小,所述分頁包括多數個子分頁,每一所述子分頁相當於一扇區的大小。
  24. 如申請專利範圍第23項所述之資料管理方法,其中,所述映射表包括一第一寫入狀態資料,其指示所述映射表中每一資料管理單位是否有效。
  25. 如申請專利範圍第24項所述之資料管理方法,其中,所述TRIM管理表包括一第二寫入狀態資料並且經由所述子分頁的一單位來管理所述第二資料管理單位,其中所述第二資料管理單位的所述部分應到所述第二資料管理單位中的至少一個所述子分頁,但不會對應到所有所述子分頁。
  26. 如申請專利範圍第25項所述之資料管理方法,其中,所述第二資料管理單位的所述部分之外的其他部分在所述TRIM管理表中被保持在有效。
  27. 如申請專利範圍第26項所述之資料管理方法,其中,所述非揮發性記憶體包括多數個記憶體區塊,且所述多數個記憶體區塊的每一者可獨立抹除,更包括:從儲存所述第一檔案的所述資料的一第一記憶體區塊複製所述第二資料管理單位的資料到一第二記憶體區塊;之後抹除在所述第一記憶體區塊中的所述第一資料管理單位的資料。
  28. 如申請專利範圍第25項所之述資料管理方法,其中,包括所述部分的所述第二資料管理單位在所述映射表中保持有效,直到所述第二資料管理單位中的所有所述子分頁被所述第二寫入狀態資料設為無效。
  29. 如申請專利範圍第26項所述之資料管理方法,其中,所述非揮發性記憶體更儲存一第二檔案的資料到所述第二資料管理單位的至少其他部分,所述資料管理方法更包括:接收包括所述第二檔案的一第二扇區位址區間的一第二指令,所述第二檔案在所述外部裝置中已不再需要;使用所述TRIM管理表將所述第二資料管理單位的全部子分頁標示為無效;之後將所述第二資料管理單位的所述第一寫入狀態資料改變為無效,所述第二資料管理單位的資料包括所述第一檔案的所述部分的資料以及所述第二檔案的所述其他部分的資料。
  30. 如申請專利範圍第21項所述之資料管理方法,其中,如果所述第二資料管理單位的所述部分的資料被所述外部裝置要求,所述第二資料管理單位的所述部分的資料可被所述外部裝置存取。
  31. 一種資料管理方法,其使用一資料儲存裝置的一資料管理單位,其中該資料儲存裝置包括一非揮發性記憶體、一控制器與一緩衝記憶體,所述緩衝記憶體依據一外部裝置的扇區大小與所述資料儲存裝置的所述資料管理單位的大小暫時性儲存一第一檔案的資料,所述資料管理方法包括:從所述外部裝置接收一指令,所述指令包含在所述外部裝置中不再需要的所述第一檔案的一扇區位址區間,所述第一檔案的所述資料被對應到所述非揮發性記憶體中的一第一資料管理單位與只有一部分的一第二資料管理單位;使用一映射表分配所述第一檔案的所述扇區位址區間到所述第一資料管理單位與所述第二資料管理單位;在所述映射表中將所述第一資料管理單位的寫入狀態標示成無效,所述第一資料管理單位的大小是所述資料管理單位的大小的一或多倍;管理所述第二資料管理單位的寫入狀態,包括在所述映射表中為有效的部分,所述部分的大小是小於所述資料管理單位的大小;使用一TRIM管理表來管理所述第二資料管理單位,使得所述第二資料管理單位中的所述部分,在所述TRIM管理表中被標示成無效,所述TRIM管理表與所述映射表被所述 控制器分開管理,所述TRIM管理表的內容與所述映射表的內容並不相同;以及回應清除作業的要求,將對應到在所述映射表中被保持為有效的所述第二資料管理單位的資料寫入所述非揮發性記憶體。
  32. 如申請專利範圍第31項所述之資料管理方法,其中,所述資料管理單位的大小大於所述外部裝置的資料管理單位的大小,其中所述外部裝置的資料管理單位的大小是一扇區大小,且所述資料儲存裝置的所述資料管理單位的大小是一分頁的大小,所述分頁包括多數個子分頁,每一所述子分頁相當於一扇區的大小。
  33. 如申請專利範圍第32項所述之資料管理方法,其中,所述映射表包括一第一寫入狀態資料,其指示所述映射表中每一所述資料管理單位是否有效,且其中所述TRIM管理表包括一第二寫入狀態資料並且經由所述子分頁的一單位來管理所述第二資料管理單位,其中所述第二資料管理單位的所述部分對應到所述第二資料管理單位中的至少一個所述子分頁,但不會對應到所有所述子分頁。
  34. 如申請專利範圍第33項所述之資料管理方法,其中,所述第二資料管理單位的所述部分之外的其他部分在所述TRIM管理表中被保持在有效。
  35. 如申請專利範圍第34項所述之資料管理方法,其中,包括所述部分的所述第二資料管理單位在所述映射表中保持有效,直到所述第二資料管理單位中的所有所述子分頁 被所述第二寫入狀態資料設為無效。
  36. 如申請專利範圍第35項所述之資料管理方法,其中,所述緩衝記憶體更儲存一第二檔案的資料到所述第二資料管理單位的至少其他部分,所述資料管理方法更包括:接收包括所述第二檔案的一第二扇區位址區間的一第二指令,所述第二檔案在所述外部裝置中已不再需要;使用所述TRIM管理表將所述第二資料管理單位標示為無效;之後將所述第二資料管理單位的所述寫入狀態改變為無效,所述第二資料管理單位包括所述第一檔案的所述資料的所述部分以及所述第二檔案的所述資料的所述其他部分。
  37. 如申請專利範圍第36項所述之資料管理方法,其中,如果包括所述第二檔案的所述第二扇區位址區間的所述第二指令是在所述清除作業的要求之前接收到,則寫入對應到所述第二資料管理單位的寫入資料步驟可被略過。
  38. 一種資料儲存裝置,包括:一非揮發性記憶體,儲存一第一檔案的資料;以及一控制器,控制所述非揮發性記憶體,並且從一外部裝置接收一指令,所述指令包含在所述外部裝置中不再需要的所述第一檔案的一扇區位址區間,其中所述第一檔案的所述資料被儲存在所述非揮發性記憶體的一第一資料管理單位與只有一部分的一第二資料管理單位,且其中所述控制器經配置使用一映射表分配所述第一檔案 的所述扇區位址區間到所述第一資料管理單位與所述第二資料管理單位,在所述映射表中將所述第一資料管理單位的寫入狀態標示成無效,管理所述第二資料管理單位的寫入狀態,包括在所述映射表中為有效的部分,使用一TRIM管理表來管理所述第二資料管理單位,使得所述第二資料管理單位中的所述部分,在所述TRIM管理表中被標示成無效,所述TRIM管理表與所述映射表被所述控制器分開管理,所述TRIM管理表的內容與所述映射表的內容並不相同,其中所述第一資料管理單位的大小是所述資料管理單位的大小的一或多倍,且所述部分的大小是小於所述資料儲存裝置的所述資料管理單位的大小。
  39. 如申請專利範圍第38項所述之資料儲存裝置,其中,所述資料儲存裝置的所述資料管理單位的大小大於所述外部裝置的資料管理單位的大小,且其中所述外部裝置的資料管理單位的大小是一扇區的大小,所述資料儲存裝置的所述資料管理單位的大小是分頁的大小,所述分頁包括多數個子分頁,每一所述子分頁相當於一扇區的大小。
  40. 如申請專利範圍第38項所述之資料儲存裝置,其中,所述非揮發性記憶體包括多數個記憶體區塊,且所述多數個記憶體區塊的每一者可獨立抹除,且其中所述控制器更經配置在抹除所述第一記憶體區塊中的所述第一資料管理單位的資料之前,從儲存所述第一檔案的資料的一第一記憶體區塊複製所述第二資料管理單位的資料到一第二記憶體區塊。
TW100139384A 2010-10-29 2011-10-28 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法 TWI579692B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100106946A KR101747791B1 (ko) 2010-10-29 2010-10-29 메모리 시스템 및 데이터 저장 장치 그리고 그것의 데이터 관리 방법
KR1020100106947A KR101893897B1 (ko) 2010-10-29 2010-10-29 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법

Publications (2)

Publication Number Publication Date
TW201229754A TW201229754A (en) 2012-07-16
TWI579692B true TWI579692B (zh) 2017-04-21

Family

ID=45997943

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100139384A TWI579692B (zh) 2010-10-29 2011-10-28 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法

Country Status (3)

Country Link
US (6) US11232022B2 (zh)
CN (1) CN102467455B (zh)
TW (1) TWI579692B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI773371B (zh) * 2021-06-09 2022-08-01 宇瞻科技股份有限公司 固態硬碟

Families Citing this family (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
TWI579692B (zh) 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
KR101844346B1 (ko) * 2010-11-05 2018-04-02 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
JP2012123499A (ja) 2010-12-07 2012-06-28 Toshiba Corp メモリシステム
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9213632B1 (en) * 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
US9026887B2 (en) * 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
US9443591B2 (en) * 2013-01-23 2016-09-13 Seagate Technology Llc Storage device out-of-space handling
US20130326113A1 (en) * 2012-05-29 2013-12-05 Apple Inc. Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory
US8996768B2 (en) 2012-05-31 2015-03-31 Sandisk Technologies Inc. Method and storage device for assessing execution of trim commands
TWI493339B (zh) * 2012-06-13 2015-07-21 Silicon Motion Inc 資料儲存裝置及資料清除方法
JP5802804B2 (ja) * 2012-06-19 2015-11-04 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
CN102999442B (zh) * 2012-11-16 2015-12-02 成都索贝数码科技股份有限公司 面向媒体应用的存储系统及方法
US9235344B2 (en) * 2012-11-28 2016-01-12 International Business Machines Corporation Identifying redundant data for disk image streaming
US9257182B2 (en) 2012-12-21 2016-02-09 Micron Technology, Inc. Memory devices and their operation having trim registers associated with access operation commands
US20140201167A1 (en) * 2013-01-17 2014-07-17 Dell Products L.P. Systems and methods for file system management
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
US9015353B2 (en) 2013-03-14 2015-04-21 DSSD, Inc. Method and system for hybrid direct input/output (I/O) with a storage device
KR20150015764A (ko) * 2013-08-01 2015-02-11 삼성전자주식회사 스토리지 디바이스 및 이를 포함하는 스토리지 시스템
CN104424991A (zh) * 2013-08-30 2015-03-18 北京兆易创新科技股份有限公司 一种串行接口nand闪存单元
US9304685B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Storage array system and non-transitory recording medium storing control program
KR102252419B1 (ko) * 2014-01-09 2021-05-14 한국전자통신연구원 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
TWI599881B (zh) 2014-01-22 2017-09-21 群暉科技股份有限公司 用來適應性地管理一固態硬碟之方法、裝置、與計算機程式產品
US9811458B2 (en) * 2014-03-19 2017-11-07 Htc Corporation Mobile electronic device and method for clearing memory blocks based on processor determination of physical block to erase in response to GUI input from user specified time and directing controller to erase within the specified time
US9984007B2 (en) 2014-03-28 2018-05-29 Samsung Electronics Co., Ltd. Storage system and method for performing and authenticating write-protection thereof
KR102196971B1 (ko) 2014-03-28 2020-12-31 삼성전자주식회사 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법
KR102289919B1 (ko) 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
CN103984641B (zh) * 2014-05-22 2017-12-22 华为技术有限公司 一种基于精简配置技术的存储空间回收方法及其装置
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 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
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
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
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in 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
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
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring 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
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
KR102282006B1 (ko) * 2014-08-19 2021-07-28 삼성전자주식회사 컴퓨터 장치 및 저장 장치
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
KR20160070920A (ko) * 2014-12-10 2016-06-21 에스케이하이닉스 주식회사 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US10282096B1 (en) 2014-12-17 2019-05-07 Western Digital Technologies, Inc. Identification of data with predetermined data pattern
KR102506135B1 (ko) * 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
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
CN105446655A (zh) * 2015-04-23 2016-03-30 北京天诚盛业科技有限公司 对Nand Flash进行操作的方法和装置
CN105630405B (zh) * 2015-04-29 2018-09-14 上海磁宇信息科技有限公司 一种存储系统及采用该存储系统的读写方法
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9507711B1 (en) * 2015-05-22 2016-11-29 Sandisk Technologies Llc Hierarchical FTL mapping optimized for workload
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US11042328B2 (en) * 2015-06-01 2021-06-22 Samsung Electronics Co., Ltd. Storage apparatus and method for autonomous space compaction
US10216418B2 (en) * 2015-06-01 2019-02-26 Samsung Electronics Co., Ltd. Storage apparatus and method for autonomous space compaction
KR102316198B1 (ko) * 2015-06-12 2021-10-25 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
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
US9880770B2 (en) * 2015-09-02 2018-01-30 SK Hynix Inc. Supporting invalidation commands for non-volatile memory
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
TWI537728B (zh) * 2015-09-23 2016-06-11 群聯電子股份有限公司 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN106557432B (zh) * 2015-09-29 2019-08-06 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
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
US10705952B2 (en) 2015-11-04 2020-07-07 Sandisk Technologies Llc User space data storage management
CN106843742A (zh) * 2015-12-03 2017-06-13 广明光电股份有限公司 固态硬盘及其执行删除命令的方法
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10360108B2 (en) * 2016-01-05 2019-07-23 Acronis International Gmbh System and method of using performance-maintaining commands for generating a backup of unsupported file systems
CN105760311B (zh) * 2016-02-17 2019-08-30 珠海全志科技股份有限公司 trim命令响应方法和系统及操作系统
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
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
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
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
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
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
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
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
CN106293521B (zh) * 2016-08-02 2019-04-12 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10853233B2 (en) * 2016-10-18 2020-12-01 Toshiba Memory Corporation Reconstruction of address mapping in a host of a storage system
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
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
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
TWI643067B (zh) * 2017-04-14 2018-12-01 國立臺灣科技大學 三維非及閘快閃記憶體及其記憶體管理方法
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
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
TWI634424B (zh) * 2017-05-08 2018-09-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10521375B2 (en) * 2017-06-22 2019-12-31 Macronix International Co., Ltd. Controller for a memory system
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
JP6883740B2 (ja) * 2017-08-22 2021-06-09 パナソニックIpマネジメント株式会社 情報記録装置及びデータ消去方法
KR20190023247A (ko) * 2017-08-28 2019-03-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
KR20190044968A (ko) * 2017-10-23 2019-05-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
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
US10649656B2 (en) 2017-12-28 2020-05-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
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
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
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
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
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
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10909030B2 (en) * 2018-09-11 2021-02-02 Toshiba Memory Corporation Enhanced trim command support for solid state drives
US20200104384A1 (en) * 2018-10-02 2020-04-02 Nutanix, Inc. Systems and methods for continuous trim commands for memory systems
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
KR20200071282A (ko) * 2018-12-11 2020-06-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200088713A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
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
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
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
US11481335B2 (en) * 2019-07-26 2022-10-25 Netapp, Inc. Methods for using extended physical region page lists to improve performance for solid-state drives and devices thereof
US11144448B2 (en) * 2019-08-05 2021-10-12 Micron Technology, Inc. Memory sub-system for managing flash translation layers table updates in response to unmap commands
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
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
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
CN111462805B (zh) * 2020-03-11 2022-10-18 苏州浪潮智能科技有限公司 一种全面快速测试NVME SSD Trim功能的方法及装置
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
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
JP7500311B2 (ja) 2020-07-13 2024-06-17 キオクシア株式会社 メモリシステム及び情報処理システム
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
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
CN112799591A (zh) * 2021-01-21 2021-05-14 北京鼎普科技股份有限公司 文件擦除方法、装置及电子设备
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
JP2023001494A (ja) * 2021-06-21 2023-01-06 キオクシア株式会社 メモリシステムおよび制御方法
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
CN114168082B (zh) * 2021-12-10 2023-07-04 深圳忆联信息系统有限公司 避免ssd空闲块耗尽的方法、装置、计算机设备及存储介质
CN114296642A (zh) * 2021-12-15 2022-04-08 合肥大唐存储科技有限公司 一种固态硬盘中trim指令的处理方法和固态硬盘
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
TWI813362B (zh) * 2022-06-30 2023-08-21 群聯電子股份有限公司 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263305A1 (en) * 2007-04-19 2008-10-23 Microsoft Corporation Remove-on-delete technologies for solid state drive optimization
US20100211737A1 (en) * 2006-12-06 2010-08-19 David Flynn Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US20100217927A1 (en) * 2004-12-21 2010-08-26 Samsung Electronics Co., Ltd. Storage device and user device including the same

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7180798B2 (en) 2001-04-12 2007-02-20 Fuji Electric Co., Ltd. Semiconductor physical quantity sensing device
JP4510498B2 (ja) 2004-04-05 2010-07-21 セイコーインスツル株式会社 半導体集積回路
KR100876084B1 (ko) 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
KR100578143B1 (ko) 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
KR101404083B1 (ko) 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
JP5067836B2 (ja) 2005-12-19 2012-11-07 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置及びその動作方法
KR100845530B1 (ko) 2007-07-02 2008-07-10 삼성전자주식회사 플래시 메모리 장치 및 그것의 동작 방법
KR101078287B1 (ko) 2007-12-14 2011-10-31 한국전자통신연구원 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법
US8762620B2 (en) * 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8275933B2 (en) 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US8261030B2 (en) 2008-11-18 2012-09-04 Microsoft Corporation Using delete notifications to free related storage resources
KR20100094862A (ko) 2009-02-19 2010-08-27 삼성전자주식회사 스토리지 장치 및 그것의 데이터 관리 방법
JP5341584B2 (ja) 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
JP2011128998A (ja) * 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
US20110208898A1 (en) * 2010-02-23 2011-08-25 Samsung Electronics Co., Ltd. Storage device, computing system, and data management method
TWI579692B (zh) 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100217927A1 (en) * 2004-12-21 2010-08-26 Samsung Electronics Co., Ltd. Storage device and user device including the same
US20100211737A1 (en) * 2006-12-06 2010-08-19 David Flynn Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US20080263305A1 (en) * 2007-04-19 2008-10-23 Microsoft Corporation Remove-on-delete technologies for solid state drive optimization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI773371B (zh) * 2021-06-09 2022-08-01 宇瞻科技股份有限公司 固態硬碟

Also Published As

Publication number Publication date
US11640353B2 (en) 2023-05-02
US20220129373A1 (en) 2022-04-28
US20120110249A1 (en) 2012-05-03
CN102467455A (zh) 2012-05-23
TW201229754A (en) 2012-07-16
US20220129374A1 (en) 2022-04-28
US11232022B2 (en) 2022-01-25
US11636032B2 (en) 2023-04-25
CN102467455B (zh) 2017-03-01
US20230273876A1 (en) 2023-08-31
US20140372685A1 (en) 2014-12-18
US20220129375A1 (en) 2022-04-28

Similar Documents

Publication Publication Date Title
TWI579692B (zh) 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
KR101638061B1 (ko) 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US9904490B2 (en) Solid-state mass storage device and method for persisting volatile data to non-volatile media
US8166258B2 (en) Skip operations for solid state disks
US8166233B2 (en) Garbage collection for solid state disks
KR20110119408A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20210223979A1 (en) On-ssd-copy techniques using copy-on-write
KR101893897B1 (ko) 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법
US20190188130A1 (en) Data Storage Device and Non-Volatile Memory Control Method
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR20200016075A (ko) 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
US10120583B2 (en) Performance penalty avoidance for solid state drive
KR101747791B1 (ko) 메모리 시스템 및 데이터 저장 장치 그리고 그것의 데이터 관리 방법
KR20130040486A (ko) 저장 장치 및 그것을 이용하는 사용자 장치
TW201941061A (zh) 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法
US20220269602A1 (en) Storage device and storage system including the same
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
KR20090046568A (ko) 플래시 메모리 시스템 및 그것의 쓰기 방법
TWI795680B (zh) 主機效能加速模式的資料讀取方法及裝置
CN118302740A (zh) 使用写时复制的固态驱动器上复制技术