TWI424316B - 控制器、資料儲存裝置、及程式產品 - Google Patents

控制器、資料儲存裝置、及程式產品 Download PDF

Info

Publication number
TWI424316B
TWI424316B TW100105520A TW100105520A TWI424316B TW I424316 B TWI424316 B TW I424316B TW 100105520 A TW100105520 A TW 100105520A TW 100105520 A TW100105520 A TW 100105520A TW I424316 B TWI424316 B TW I424316B
Authority
TW
Taiwan
Prior art keywords
unit
data
write
block
log
Prior art date
Application number
TW100105520A
Other languages
English (en)
Other versions
TW201205286A (en
Inventor
Kazuhiro Fukutomi
Kenichiro Yoshii
Shinichi Kanno
Shigehiro Asano
Original Assignee
Toshiba Kk
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
Application filed by Toshiba Kk filed Critical Toshiba Kk
Publication of TW201205286A publication Critical patent/TW201205286A/zh
Application granted granted Critical
Publication of TWI424316B publication Critical patent/TWI424316B/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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/7202Allocation control and policies
    • 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
    • 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/0608Saving storage space on storage systems
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

控制器、資料儲存裝置、及程式產品
本文所述實施例大體而言係關於一種控制器、一種資料儲存裝置及一種程式。
本申請案基於並主張2010年3月18日提出申請的第2010-063191號日本專利申請案之優先權之利益,該申請案之全部內容以引用方式併入本文中。
在相關技術中,在資料儲存裝置(例如一硬碟驅動機(HDD)或一固態驅動機(SSD))中,使用各種管理資訊來管理儲存媒體之使用狀態,例如一轉換表,其中一邏輯位址(LBA:邏輯區塊位址)與一實體位址(PBA:實體區塊位址)彼此相關聯。該邏輯位址係可由一主機裝置(例如一伺服器電腦、一儲存系統之一控制器或一個人電腦)辨識的一儲存媒體之一邏輯位址。該實體位址係指示該儲存媒體之一實體儲存位置之一位址。
作為該資料儲存裝置之儲存媒體之一實例,已知一半導體儲存元件,例如一NAND型快閃記憶體。此儲存媒體無法實現一隨機資料讀取/寫入操作,且需要以稱為一頁之一單元讀取/寫入資料,構建稱為一區塊之一單元之一儲存區域,該區塊中收集複數個頁。為將新的資料寫入已寫入資料之頁或區塊中,需要以一區塊單元擦除已寫入資料。亦即,可關於在彼處尚未寫入資料之已擦除資料之區塊之若干頁以一頁單元順序地寫入資料且關於已寫入資料之頁無法實現資料之覆寫。
主機裝置關於資料儲存裝置執行一資料讀取/寫入操作時之一讀取/寫入單元稱為一區段且係不相依於一頁單元或一區塊單元確定。舉例而言,一區塊大小確定為512千位元組,一頁大小確定為4千位元組且一區段大小確定為512位元組。
在使用具有上文所提及約束之儲存媒體之資料儲存裝置中,採用一種區塊管理方法,該方法在管理資訊中使用一區塊大小之整倍數之一大小作為一資料管理大小。當在該區塊管理方法中自該主機裝置請求隨機寫入時,該資料儲存裝置將以下資料讀取至一暫時儲存區域中,該資料未被該寫入請求更新且包含於儲存於對應於一邏輯位址區域之一個或多個區塊中之資料中,該邏輯位址區域係該主機裝置請求寫入之一系列邏輯位址。該資料儲存裝置將該資料與寫入物件資料合併。該資料儲存裝置執行擦除一個或多個新的寫入物件區塊之一程序,寫入該經合併資料且更新該管理資訊以使得該邏輯位址區域與一個或多個新的寫入物件區塊對應於彼此。
如上文所述,在該區塊管理方法中,由於該資料儲存裝置中之一資料已寫入大小及一資料讀取大小明顯大於自該主機裝置所請求之一資料寫入所請求大小,因此一處理時間可增加且隨機寫入效能可明顯劣化。
出於此原因,在使用具有上文所提及約束之儲存媒體之資料儲存裝置中,隨機寫入效能可使用一日誌結構化方法來改良(舉例而言,參考Mendel Rosenblum and John K. Ousterhout,「The LFS Storage Manager」,1990 Summer Usenix之學報,阿納海姆、加利福尼亞,1990年6月第315至324頁),該方法由一作業系統(OS)記憶體管理或一檔案系統執行。
在使用該日誌結構化方法之資料儲存裝置中,以頁之升序順序地寫入寫入物件資料,而不論由來自該主機裝置之寫入請求所指定之一邏輯位址如何。若自該主機裝置做出再次指定一先前所指定邏輯位址之一寫入請求,則該資料儲存裝置將新的寫入物件資料寫入其中完成一擦除程序之一區塊之一未經寫入頁中。該資料儲存裝置在該管理資訊中使對應於該邏輯位址之頁(當過去指定對應邏輯位址時寫入資料之頁)無效,使在彼處寫入新的寫入物件資料之一頁有效,且使該頁與該對應邏輯位址相關聯。
在具有日誌結構化方法之資料儲存裝置中,若無效頁之數目增加,則可寫入資料且完成一擦除程序之新區塊之數目(亦即,在擦除程序之後未寫入資料之空閒區塊之數目)增加且不可執行新的資料寫入。出於此原因,在適當時間執行壓縮(對應於垃圾收集)。
在執行該壓縮中,該資料儲存裝置收集儲存於若干區塊當中未無效(包含無效頁)之實體位址中之有效資料,將該有效資料複製至一空閒區塊中以移動該有效資料,且對自其進行複製之該等區塊執行一擦除程序以產生一新的空閒區塊。該資料儲存裝置可藉由執行該壓縮自一無法實現寫入之區塊產生一空閒區塊。甚至在有效資料係藉由移動來寫入彼處之一區塊中,若存在一未經寫入頁,則能夠實現關於該頁之新的寫入。
根據此日誌結構化方法,由於該資料儲存裝置中之一已寫入資料大小及一已讀取資料大小並未變得如此大於自該主機裝置所請求之一資料寫入所請求大小,因此可獲得高隨機寫入效能。半導體儲存元件之壽命通常相依於一擦除計數或一寫入計數。為增加該資料儲存裝置之設計壽命,該資料儲存裝置中之已寫入資料大小較佳地小於自該主機裝置所請求之資料寫入所請求大小。
同時,在關於該資料儲存裝置之一存取型樣中,通常存在位址局部性。在上文所述日誌結構化方法中,由於未考量該存取型樣之位址局部性,因此不能有效地改良一般使用效能。
實施例之一目標係提供一種控制器、一種資料儲存裝置及一種可改良其一般使用效能之程式產品。
一般而言,根據一個實施例,一寫入指示單元指示一資料存取單元將寫入物件資料寫入一資料儲存單元之由一第一實體位址指示之一儲存區域中,指示一管理資訊存取單元更新位址轉換資訊,且指示一第一存取單元更新該第一實體位址。一壓縮單元擷取壓縮物件資料之一實體位址,指示該資料存取單元讀取儲存於該資料儲存單元之由該實體位址指示之一儲存區域中之該壓縮物件資料,指示該資料存取單元將該壓縮物件資料寫入該資料儲存單元之由一第二實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該位址轉換資訊,且指示一第二存取單元更新該第二實體位址。
根據上文所述該實施例,可改良一般使用效能。
下文中,將參考附圖詳細闡述根據若干實施例之一種控制器、一種資料儲存裝置及一種程式。在以下實施例中,將一SSD例示為該資料儲存裝置,但本發明並不限於此。在以下實施例中,例示其中該資料儲存裝置中之一資料管理單元具有等於一頁大小之一大小之情況,但本發明並不限於此。舉例而言,一個頁可儲存複數個資料管理單元(資料管理單元可具有小於該頁大小之一大小)或複數個連續頁可儲存一個資料管理單元(資料管理單元可具有大於該頁大小之一大小)。
第一實施例
在該第一實施例中,例示以下情況:獨立地保證用以儲存(添加)針對一主機寫入請求之寫入物件資料之一儲存區域及用以添加針對壓縮之壓縮物件資料之一儲存區域。
首先,將闡述根據該第一實施例之該資料儲存裝置之組態。
圖1係顯示根據該第一實施例之一資料儲存裝置100之硬體組態之一實例之一方塊圖。如圖1中所示,資料儲存裝置100包含一處理器51、一開機唯讀記憶體(ROM)52、一記憶體介面53、一動態隨機存取記憶體(DRAM)54、一SATA/SAS介面55、NAND介面57A至57F、NAND(半導體儲存媒體)58A至58F及連接此等元件之一匯流排56。在下文說明中,當NAND介面57A至57F不需要彼此區分時,NAND介面57A至57F可簡單地稱為NAND介面57。同樣地,當NAND 58A至58F不需要彼此區分時,NAND 58A至58F可簡單地稱為NAND 58。
開機ROM 52儲存當將電力供應至資料儲存裝置100時執行之一程式。NAND 58儲存各種系統程式。SATA/SAS介面55在處理器51之控制下控制與一主機裝置(圖式中未顯示)之通信。
處理器51在供應電力時自開機ROM 52讀取一程式並執行該程式且根據對應程式將儲存於NAND 58中之各種系統程式傳送至DRAM 54。處理器51執行傳送至DRAM 54之該等系統程式以控制整個資料儲存裝置100且實現各種功能。具體而言,處理器51執行傳送至DRAM 54之該等系統程式,解譯透過SATA/SAS介面55自該主機裝置發射之一命令且根據所解譯命令控制關於NAND 58之資料寫入或自NAND 58之資料讀取。處理器51根據需要控制一壓縮程序。該等各種程式中之全部或部分可由實現由該等各種系統程式實現之程序中之全部或部分之一電路替換。
記憶體介面53控制DRAM 54。DRAM 54儲存各種資料或程式。NAND介面57控制NAND 58且包含一錯誤校正電路。NAND 58由一NAND型快閃記憶體中所使用之一儲存元件構成。
在圖1中所示之一實例中,NAND 58之數目為6。此乃因一存取速度可藉由連接複數個NAND 58且共同執行一存取而增加。然而,NAND之數目並不限於6。在該第一實施例中,例示以一區塊單元進行之一程序。然而,當連接複數個NAND 58且執行一存取時,該程序可以稱為一邏輯區塊之一單元執行,在該邏輯區塊中連接該複數個區塊。
圖2係顯示根據該第一實施例之資料儲存裝置100之功能組態之概要之一實例之一方塊圖。如圖2中所示,資料儲存裝置100包含一接收器110、一管理資訊儲存單元120、一管理資訊存取單元121、一第一儲存單元130、一第一存取單元131、一第二儲存單元140、一第二存取單元141、一寫入指示單元150、一讀取指示單元160、一壓縮單元170、一資料儲存單元105及一資料存取單元106。
接收器110自主機裝置接收一寫入請求。該寫入請求包含對應於該主機裝置請求將資料寫入彼處之一系列邏輯位址之一邏輯位址區域之資訊及規定寫入物件資料之寫入資料規定資訊。該邏輯位址係可由該主機裝置辨識的資料儲存裝置100之一邏輯位址。寫入資料規定資訊係該寫入物件資料之資訊或包含該寫入物件資料之一儲存地點之資訊的資訊。
接收器110自該主機裝置接收一讀取請求。該讀取請求包含對應於該主機裝置請求讀取在彼處之資料之一系列邏輯位址之一邏輯位址區域之資訊。該讀取請求可包含指示讀取資料之一儲存地點之儲存地點資訊。
接收器110之一功能係藉由由處理器51執行各種系統程式及SATA/SAS介面55之一功能來實現。
管理資訊儲存單元120儲存管理資訊。為操作資料儲存裝置100所需之資訊之管理資訊包含其中一實體位址與一邏輯位址彼此相關聯之位址轉換資訊。該實體位址指示儲存於資料儲存單元105中之資料之一實體儲存位置。
第一儲存單元130儲存下文欲闡述之寫入指示單元150將其指定為資料寫入目的地之一實體位址。
第二儲存單元140儲存下文欲闡述之壓縮單元170將其指定為資料寫入目的地之一實體位址。
所有管理資訊儲存單元120、第一儲存單元130及第二儲存單元140由DRAM 54之預定區域來實現。
管理資訊存取單元121自寫入指示單元150、讀取指示單元160或壓縮單元170接收一讀取指令,自管理資訊儲存單元120讀取管理資訊且將該所讀取管理資訊提供給一讀取指令源(寫入指示單元150、讀取指示單元160或壓縮單元170)。管理資訊存取單元121自寫入指示單元150或壓縮單元170接收一寫入指令且將指示寫入之管理資訊寫入管理資訊儲存單元120中。
第一存取單元131自寫入指示單元150接收一讀取指令,自第一儲存單元130讀取一實體位址,且將所讀取實體位址提供給寫入指示單元150。第一存取單元131自寫入指示單元150接收一寫入指令且將指示寫入之實體位址寫入第一儲存單元130中。
第二存取單元141自壓縮單元170接收一讀取指令,自第二儲存單元140讀取一實體位址且將所讀取實體位址提供給壓縮單元170。第二存取單元141自壓縮單元170接收一寫入指令且將指示寫入之實體位址寫入第二儲存單元140中。
所有管理資訊存取單元121、第一存取單元131及第二存取單元141係藉由記憶體介面53之一功能來實現。
資料儲存單元105儲存各種資料,例如自該主機裝置要求寫入之使用者資料。資料儲存單元105係藉由NAND 58來實現。
資料存取單元106自寫入指示單元150、讀取指示單元160或壓縮單元170接收一讀取指令,自資料儲存單元105讀取資料且將所讀取資料提供給一讀取指令源(寫入指示單元150、讀取指示單元160或壓縮單元170)。資料存取單元106自寫入指示單元150或壓縮單元170接收寫入指令且將指示寫入之資料寫入資料儲存單元105中。資料存取單元106係藉由NAND介面57之一功能來實現。
寫入指示單元150參考包含於由接收器110所接收之該寫入請求中之寫入資料規定資訊且獲取寫入物件資料。寫入指示單元150指示第一存取單元131讀取儲存於第一儲存單元130中之一實體位址並獲取該實體位址。寫入指示單元150指示資料存取單元106將所獲取寫入物件資料寫入資料儲存單元105之由所獲取實體位址所指示之儲存位置中。寫入指示單元150指示管理資訊存取單元121將寫入資料儲存單元105中之寫入物件資料之位址轉換資訊寫入管理資訊儲存單元120中。寫入指示單元150指示第一存取單元131更新由第一儲存單元130儲存之實體位址並寫入經更新實體位址。
讀取指示單元160擷取包含於由接收器110所接收之該讀取請求中之讀取物件資料之邏輯位址區域資訊。讀取指示單元160指示管理資訊存取單元121讀取儲存於管理資訊儲存單元120中之管理資訊並獲取該管理資訊。讀取指示單元160使用所擷取邏輯位址區域資訊自所獲取管理資訊擷取該實體位址。讀取指示單元160指示資料存取單元106自資料儲存單元105之由所擷取實體位址所指示之儲存位置讀取讀取物件資料並獲取讀取物件資料。讀取指示單元160透過接收器110將一讀取回復發射至該主機裝置。該讀取回復係讀取物件資料之資訊或包含指示該讀取物件資料儲存於由儲存地點資訊所規定之地點中之資訊的資訊。
壓縮單元170指示管理資訊存取單元121讀取儲存於管理資訊儲存單元120中之管理資訊並獲取該管理資訊。壓縮單元170使用所獲取管理資訊擷取壓縮物件資料之一實體位址。當寫入指示單元150關於某一邏輯位址寫入新資料時,其中先前關於指示相同值之該邏輯位址執行寫入的該資料之儲存區域變成一無效儲存區域。壓縮物件資料係儲存於一非無效儲存區域中之資料。
壓縮單元170指示資料存取單元106自資料儲存單元105之由所擷取邏輯位址所指示之儲存位置讀取壓縮物件資料,並獲取該壓縮物件資料。壓縮單元170指示第二存取單元141讀取儲存於第二儲存單元140中之實體位址,並獲取該實體位址。壓縮單元170指示資料存取單元106將所獲取壓縮物件資料寫入資料儲存單元105之由所獲取實體位址所指示之儲存位置中。壓縮單元170指示管理資訊存取單元121將寫入資料儲存單元105中之壓縮物件資料之位址轉換資訊寫入管理資訊儲存單元120中。壓縮單元170指示第二存取單元141更新由第二儲存單元140所儲存之實體位址並寫入經更新實體位址。
寫入指示單元150、讀取指示單元160及壓縮單元170之功能係藉由由處理器51執行各種系統程式來實現。
如上文所述,根據該第一實施例,由於獨立地保證用以儲存(添加)針對主機寫入請求之寫入物件資料之儲存區域及用以添加針對壓縮之壓縮物件資料之儲存區域,因此可考量存取型樣之位址局部性且可改良一般使用效能。
第二實施例
在該第一實施例中,例示以下情況:獨立地保證用以儲存(添加)針對主機寫入請求之寫入物件資料之儲存區域及用以添加針對壓縮之壓縮物件資料之儲存區域。當獨立地執行主機寫入程序及壓縮程序時,關於相同邏輯位址區域之該主機寫入程序及該壓縮程序可彼此重疊,且需要保證管理資訊之一致性。
因此,在該第二實施例中,例示以下情況:當關於相同邏輯位址之該主機寫入程序及該壓縮程序彼此重疊時,管理資訊最後經更新以指示在彼處藉由主機寫入程序寫入資料之一新頁,且保證該管理資訊之一致性。
首先,將闡述用於保證該管理資訊之一致性之一方法。
圖3至6顯示其中關於相同邏輯位址區域之該主機寫入程序及該壓縮程序係重疊之一情形。在此情形中,若該管理資訊最後經更新以指示在彼處藉由該主機寫入程序寫入資料之一新頁,則可保證該管理資訊之一致性。
在圖3中所示之一實例中,該壓縮程序首先開始,該主機寫入程序在該壓縮程序期間開始且該該壓縮程序在該主機寫入程序完成之前完成。在此情況下,該管理資訊係藉由該壓縮程序及該主機寫入程序兩者更新且該管理資訊指示在彼處藉由該主機寫入請求寫入資料之一新頁。
在圖4中所示之一實例中,該壓縮程序首先開始,該主機寫入程序在該壓縮程序期間開始,且該主機寫入程序在該壓縮程序完成之前完成。在此情況下,當該壓縮程序結束時不更新該管理資訊且該管理資訊指示在彼處藉由該主機寫入請求寫入資料之一新頁。
在圖5中所示之一實例中,該主機寫入程序首先開始,該壓縮程序在該主機寫入程序期間開始,且該主機寫入程序在該壓縮程序完成之前完成。在此情況下,當該壓縮程序結束時不更新該管理資訊且該管理資訊指示在彼處藉由該主機寫入請求寫入資料之一新頁。
在圖6中所示之一實例中,該主機寫入程序首先開始,該壓縮程序在該主機寫入程序期間開始,且該壓縮程序在該主機寫入程序完成之前完成。在此情況下,該管理資訊係藉由該壓縮程序及該主機寫入程序兩者更新且該管理資訊指示在彼處藉由該主機寫入請求寫入資料之一新頁。
若該資料儲存裝置丟失該管理資訊,則該資料儲存裝置不能正常運行。出於此原因,需要在任意時間將該管理資訊儲存於該儲存媒體中且根據需要恢復所儲存管理資訊。
每當更新該管理資訊時皆需要儲存該管理資訊。然而,若每當更新該管理資訊時皆所有儲存該管理資訊,則一儲存時間增加且關於該儲存媒體之寫入量亦可增加。因此,在預定時間儲存所有該管理資訊(快照)且每當更新該管理資訊時儲存差異資訊(日誌)。
執行該管理資訊之恢復以使得在恢復儲存於該儲存媒體中之一最新快照之後,在儲存該快照之後所儲存之一日誌按照時間序列之次序順序地應用於所恢復快照。藉此,可恢復當最後記錄一日誌時之一時間點之管理資訊。
若獨立地保證針對主機寫入請求之儲存區域及針對壓縮之儲存區域且獨立地執行該主機寫入程序及該壓縮程序,則基於該主機寫入請求之寫入目的地及該壓縮程序之存取目的地變成該儲存媒體上之離散實體位址。在使用一半導體儲存元件(例如SSD)作為儲存媒體之資料儲存裝置之情況下,即使當對儲存媒體進行存取時對應實體位址係離散實體位址,亦不存在一時間懲罰或可忽略該時間懲罰。因此,當獨立地保證針對主機寫入請求之儲存區域及針對壓縮之儲存區域且獨立地執行該主機寫入程序及該壓縮程序時所獲得之一有利效應增加。在使用一磁碟(例如一HDD)作為儲存媒體之一資料儲存裝置之情況下,若當對該儲存媒體進行存取時對應實體位址係離散實體位址時,一時間懲罰增加,例如一磁頭之一移動程序時間或直至提示該磁碟上之資料之一旋轉等待時間。因此,當獨立地保證針對主機寫入請求之儲存區域及針對壓縮之儲存區域且獨立地執行該主機寫入程序及該壓縮程序時所獲得之一有利效應增加。
接下來,將闡述根據該第二實施例之該資料儲存裝置之組態。
圖7係顯示根據該第二實施例之一資料儲存裝置200之詳細功能組態之一實例之一方塊圖。如圖7中所示,資料儲存裝置200包含一半導體儲存媒體控制單元203、一半導體儲存媒體205、一轉換表控制單元221、一轉換表儲存單元223、一主機寫入日誌結構化指標控制單元232、一主機寫入日誌結構化指標儲存單元230、一壓縮日誌結構化指標控制單元242、一壓縮日誌結構化指標儲存單元240、一區塊使用資訊控制單元226、一區塊使用資訊儲存單元228、一緩衝控制單元207、一緩衝儲存單元209、一主機介面單元210、一命令控制單元215、一寫入指示單元250、一讀取指示單元260、一壓縮單元270、一快照儲存單元282、一日誌儲存單元284、一管理資訊恢復單元290、一快照恢復單元292及一日誌恢復單元294。
半導體儲存媒體控制單元203控制關於半導體儲存媒體205之資料讀取/寫入且對自寫入指示單元250、讀取指示單元260、壓縮單元270、快照儲存單元282、日誌儲存單元284、快照恢復單元292及日誌恢復單元294存取半導體儲存媒體205給予支援。半導體儲存媒體控制單元203之一功能係藉由由處理器51執行各種系統程式及NAND介面57之一功能來實現。
若半導體儲存媒體控制單元203自寫入指示單元250、讀取指示單元260或壓縮單元270接收所指定實體位址區域之一資料讀取請求,則半導體儲存媒體控制單元203自半導體儲存媒體205之所指定實體位址區域讀取資料並將所讀取資料提供給一讀取請求源。若半導體儲存媒體控制單元203自寫入指示單元250、讀取指示單元260或壓縮單元270接收寫入物件資料及關於所指定實體位址區域之一資料寫入請求,則半導體儲存媒體控制單元203將所接收寫入物件資料寫入半導體儲存媒體205之所指定實體位址區域中。
若自寫入指示單元250、讀取指示單元260或壓縮單元270連續發佈一讀取請求或一寫入請求,則半導體儲存媒體控制單元203連續執行所請求程序。現在考量以下一情形:自/已自寫入指示單元250、讀取指示單元260及壓縮單元270當中不同於發佈連續請求之功能單元之一功能單元單獨地或連續地發佈一讀取請求或寫入請求至半導體儲存媒體控制單元203。舉例而言,考量以下一情形:壓縮單元270連續發佈請求以使得半導體儲存媒體控制單元203連續執行該等所請求程序,且自寫入指示單元250發佈一寫入請求或已自寫入指示單元250發佈一寫入請求。在此情況下,半導體儲存媒體控制單元203不執行下一連續請求之一程序,而根據需要執行自不同於發佈該等連續請求之功能單元之功能單元所請求之程序。亦即,半導體儲存媒體控制單元203根據需要切換該程序。若切換之後之程序係完成,則半導體儲存媒體控制單元203根據需要執行下一連續請求之一程序。亦即,半導體儲存媒體控制單元203根據需要重新開始被切換程序。
若半導體儲存媒體控制單元203自寫入指示單元250或壓縮單元270接收所指定區塊之一擦除請求,則半導體儲存媒體控制單元203執行半導體儲存媒體205之所指定區塊之一擦除程序。
若半導體儲存媒體控制單元203接收來自快照儲存單元282或日誌儲存單元284之一資料儲存請求,則半導體儲存媒體控制單元203將請求儲存之資料儲存於半導體儲存媒體205之一預定區域中或可自儲存於半導體儲存媒體205之預定區域中之資訊追蹤之一區域中。
若半導體儲存媒體控制單元203接收來自快照恢復單元292或日誌恢復單元294之一資料讀取請求,則半導體儲存媒體控制單元203自半導體儲存媒體205之一預定區域或自可自儲存於半導體儲存媒體205之預定區域中之資訊追蹤之一區域讀取所請求資料。半導體儲存媒體控制單元203將該所讀取資料提供給快照恢復單元292或日誌恢復單元294。
半導體儲存媒體205對應於資料儲存單元105且由一NAND型快閃記憶體構成。一儲存元件(例如NAND型快閃記憶體)無法實現隨機讀取/寫入,能夠實現以稱為一頁之一單元之讀取/寫入且構建稱為一區塊之一單元之一儲存區域,該區塊中收集複數個頁。半導體儲存媒體205係藉由收集複數個區塊來構建。可連接複數個半導體儲存媒體205。
轉換表控制單元221控制存取由轉換表儲存單元223所儲存之轉換表,且對自寫入指示單元250、讀取指示單元260、壓縮單元270、快照儲存單元282、快照恢復單元292及日誌恢復單元294存取轉換表儲存單元223給予支援。轉換表控制單元221之一功能係藉由由處理器51執行各種系統程式及記憶體介面53之一功能來實現。
轉換表控制單元221自寫入指示單元250、讀取指示單元260、壓縮單元270、快照儲存單元282、快照恢復單元292或日誌恢復單元294接收關於該轉換表之一存取讀取,且根據所接收存取請求執行一程序。
轉換表控制單元221執行該轉換表之一鎖定程序,以使得寫入指示單元250或壓縮單元270執行該轉換表之排他控制。轉換表控制單元221執行該轉換表之一鎖定釋放程序,以使得寫入指示單元250或壓縮單元270結束該轉換表之排他控制。
轉換表儲存單元223對應於管理資訊儲存單元120之一部分且儲存該轉換表。該轉換表包含一正向查找表、一反向查找表、一有效頁旗標及一有效頁計數器。
該正向查找表係指示由資料儲存裝置200所儲存之資料之一邏輯位址與指示對應資料實際上儲存於半導體儲存媒體205中之一實體儲存位置之一實體位址之間的一對應關係之一表且當將位址自邏輯位址轉換成實體位址時使用。圖8顯示正向查找表之資料組態之一實例。如圖8中所示,正向查找表使用邏輯位址作為一索引且包含邏輯位址及實體位址作為一條目。實體位址包含一區塊編號及一頁編號。
該反向查找表係指示由資料儲存裝置200所儲存之資料之一邏輯位址與指示對應資料實際上儲存於半導體儲存媒體205中之一實體儲存位置之一實體位址之間的一對應關係之一表且當將位址自實體位址轉換成邏輯位址時使用,此與正向查找表相反。該有效頁旗標使用一真/假值顯示該區塊中所包含之若干頁當中對應於在彼處寫入有效資料之一頁之一有效頁。該有效頁計數器顯示該區塊中所包含之該等頁當中有效頁之數目。
圖9顯示該反向查找表、該有效頁旗標及該有效頁計數器之資料組態之一實例。如圖9中所示,該反向查找表、該有效頁旗標及該有效頁計數器使用一區塊編號作為一索引且包含該區塊編號、該有效頁計數器、該邏輯位址集及該有效頁旗標集作為一條目。該邏輯位址集及該有效頁旗標集以該等頁設置於該區塊中之次序配置且可規定該邏輯位址或該有效頁旗標之頁。相同區塊之有效頁計數器之一值與有效頁旗標之真值之總數目彼此匹配。相同區塊中,變成索引之區塊編號及變成正向查找表之條目之區塊編號指派有相同編號。
主機寫入日誌結構化指標控制單元232控制存取由主機寫入日誌結構化指標儲存單元230所儲存之主機寫入日誌結構化指標,且對自寫入指示單元250、快照儲存單元282、快照恢復單元292及日誌恢復單元294存取主機寫入日誌結構化指標儲存單元230給予支援。主機寫入日誌結構化指標控制單元232之一功能係藉由由處理器51執行各種系統程式及記憶體介面53之一功能來實現。
主機寫入日誌結構化指標控制單元232自寫入指示單元250、快照儲存單元282、快照恢復單元292或日誌恢復單元294接收關於主機寫入日誌結構化指標之一存取請求,且根據所接收存取請求執行一程序。
主機寫入日誌結構化指標儲存單元230對應於第一儲存單元130且儲存主機寫入日誌結構化指標。圖10顯示主機寫入日誌結構化指標之資料組態之一實例。如圖10中所示,主機寫入日誌結構化指標包含一區塊編號及一頁編號。藉此,可辨識在彼處寫入資料之下一頁之一實體位址。
壓縮日誌結構化指標控制單元242控制存取由壓縮日誌結構化指標儲存單元240所儲存之壓縮日誌結構化指標且對自壓縮單元270、快照儲存單元282、快照恢復單元292及日誌恢復單元294存取壓縮日誌結構化指標儲存單元240給予支援。壓縮日誌結構化指標控制單元242之一功能係藉由由處理器51執行各種系統程式及記憶體介面53之一功能來實現。
壓縮日誌結構化指標控制單元242自壓縮單元270、快照儲存單元282、快照恢復單元292或日誌恢復單元294接收關於壓縮日誌結構化指標之一存取請求,且根據所接收存取請求執行一程序。
壓縮日誌結構化指標儲存單元240對應於第二儲存單元140且儲存壓縮日誌結構化指標。類似於圖10中所示之主機寫入日誌結構化指標,壓縮日誌結構化指標包含一區塊編號及一頁編號。藉此,可辨識在彼處寫入資料之下一頁之一實體位址。
區塊使用資訊控制單元226控制存取由區塊使用資訊儲存單元228所儲存之區塊使用資訊。區塊使用資訊指示半導體儲存媒體205中所包含之每一區塊是一未使用區塊還是一已使用區塊。在此情況下,未使用區塊係在彼處未寫入資料之一區塊或收集為一新的寫入目的地區塊之一區塊,此乃因確定在所有頁中先前寫入之資料係無效。已使用區塊係先前分配為一新寫入目的地區塊之一區塊及未收集為未使用區塊之一區塊,此乃因尚未確定在所有頁中所寫入資料係無效。區塊使用資訊控制單元226對自寫入指示單元250、壓縮單元270、快照儲存單元282、快照恢復單元292及日誌恢復單元294存取區塊使用資訊儲存單元228給予支援。區塊使用資訊控制單元226之一功能係藉由由處理器51執行各種系統程式及記憶體介面53之一功能來實現。
區塊使用資訊控制單元226自寫入指示單元250、壓縮單元270、快照儲存單元282、快照恢復單元292或日誌恢復單元294接收關於區塊使用資訊之一存取請求,並根據所接收存取請求執行一程序。
區塊使用資訊儲存單元228對應於管理資訊儲存單元120之一部分且儲存該區塊使用資訊。在該區塊使用資訊中,指示半導體儲存媒體205中所包含之每一區塊是一未使用區塊還是一已使用區塊之資訊與每一區塊相關聯。關於當製造或操作資料儲存裝置200時確定為有缺陷區塊之區塊,指示有缺陷區塊之資訊可係相關聯。
緩衝控制單元207控制關於緩衝儲存單元209之一資料輸入/輸出,且對自寫入指示單元250、讀取指示單元260及壓縮單元270存取緩衝儲存單元209給予支援。緩衝控制單元207之一功能係藉由由處理器51執行各種系統程式及記憶體介面53之一功能來實現。
緩衝控制單元207自寫入指示單元250、讀取指示單元260或壓縮單元270接收欲輸入之資料及一資料輸入請求,且將所接收資料輸入至緩衝儲存單元209。緩衝控制單元207自寫入指示單元250、讀取指示單元260或壓縮單元270接收一資料輸出請求,自緩衝儲存單元209輸出對應於所接收輸出請求之資料且將該資料提供給該資料輸出請求源。
緩衝儲存單元209作為一緩衝器儲存資料且係藉由DRAM 54之一預定區域來實現。
主機介面單元210對應於接收器110之一部分功能且控制一主機裝置(例如一伺服器電腦、一儲存系統之一控制器及一個人電腦)與資料儲存裝置200之間的通信。
主機介面單元210自該主機裝置接收包含一寫入命令及一讀取命令之一命令且向命令控制單元215發佈一命令執行通知以根據一所接收命令類型執行一程序。該寫入命令包含資料儲存裝置200之一寫入目的地邏輯位址及一寫入資料大小。該讀取命令包含資料儲存裝置200之一讀取目的地邏輯位址及一讀取資料大小。
若主機介面單元210自命令控制單元215接收請求該主機裝置發射資料之一請求,則主機介面單元210發佈該所接收請求該主機裝置發射資料之請求。若主機介面單元210接收自該主機裝置發射且欲由資料儲存裝置200接收之資料,則主機介面單元210將該資料發射至命令控制單元215。
若主機介面單元210自命令控制單元215接收請求該主機裝置接收資料之一請求,則主機介面單元210發佈該所接收請求該主機裝置接收資料之請求。若主機介面單元210自該主機裝置接收一資料接收請求,則主機介面單元210向命令控制單元215發佈所接收來自該主機裝置之資料接收請求,且將該資料(其係自命令控制單元215接收且欲由該主機裝置接收)發射至該主機裝置。
命令控制單元215對應於接收器110之一部分功能。若命令控制單元215自主機介面單元210接收一命令執行通知,則命令控制單元215根據所接收命令之類型將一程序分配給寫入指示單元250或讀取指示單元260。命令控制單元215之一功能係藉由由處理器51執行各種系統程式來實現。
當命令控制單元215自主機介面單元210接收一寫入命令或一讀取命令且針對該命令之一區域跨越一管理大小區域(頁)之一邊界時,命令控制單元215以該管理大小區域之邊界分割該命令。圖11顯示一寫入命令(其一寫入目的地邏輯位址為3且一寫入資料大小為16)之一寫入區域與其中一區段大小為512位元組且一管理大小為4千位元組之組態中該管理大小區域之邊界之間的一關係。在圖11中所示之一實例之情況下,命令控制單元215將其寫入目的地邏輯位址為3且寫入資料大小為16之寫入命令分割為具有一寫入目的地邏輯位址3及一寫入資料大小5之一寫入命令、具有一寫入目的地邏輯位址8及一寫入資料大小8之一寫入命令及具有一寫入目的地邏輯位址16及一寫入資料大小3之一寫入命令。當經分割命令為一寫入命令時命令控制單元215通知寫入指示單元250該經分割命令且當經分割命令為一讀取命令時通知讀取指示單元260該經分割命令。在自主機介面單元210接收之該寫入命令或該讀取命令之區域不跨越該管理大小區域之邊界之情形下,當所接收命令為一寫入命令時,命令控制單元215通知寫入指示單元250該所接收命令且當所接收命令為一讀取命令時,通知讀取指示單元260該所接收命令。
若命令控制單元215自主機介面單元210接收不同於該寫入命令或該讀取命令之一命令之一執行通知時,命令控制單元215執行一適當程序。
若命令控制單元215自寫入指示單元250接收請求該主機裝置發射資料之一請求,命令控制單元215將所接收請求該主機裝置發射資料之請求發射至主機介面單元210。若命令控制單元215自主機介面單元210接收由該主機裝置發射之資料,則命令控制單元215將該所接收資料發射至寫入指示單元250。
若命令控制單元215自讀取指示單元260接收請求該主機裝置接收資料之一請求,則命令控制單元215將所接收請求該主機裝置接收資料之請求發射至主機介面單元210。若命令控制單元215自主機介面單元210接收來自該主機裝置之一資料接收請求,則命令控制單元215將所接收來自該主機裝置之資料接收請求發射至讀取指示單元260。若命令控制單元215自讀取指示單元260接收欲由該主機裝置接收之資料,則命令控制單元215將該所接收資料發射至主機介面單元210。
寫入指示單元250執行對應於該寫入命令之一程序。寫入指示單元250之一功能係藉由由處理器51執行各種系統程式來實現。
寫入指示單元250自命令控制單元215接收一寫入命令(其包含由命令控制單元215分割之若干寫入命令)。
寫入指示單元250向命令控制單元215發佈請求該主機裝置發射資料之一請求。若寫入指示單元250自命令控制單元215接收由該主機裝置發射之資料,則寫入指示單元250向緩衝控制單元207發佈所接收資料之一儲存請求。關於由命令控制單元215分割之該等寫入命令,寫入指示單元250可如上文所述與該主機裝置個別地交換資料或者命令控制單元215或主機介面單元210可收集該資料且同時與該主機裝置交換該資料。
當該寫入命令之一寫入資料大小小於一管理大小時(舉例而言,如圖11中所示之該實例中,作為分割結果變成具有一寫入目的地邏輯位址3及一寫入資料大小5之一寫入命令之一命令:下文中,作為分割結果變成具有寫入目的地邏輯位址3及寫入資料大小5之寫入命令之命令稱為圖11中所示之該實例),寫入指示單元250執行一整墊程序以使得該寫入資料變成對應於該管理大小之資料。具體而言,寫入指示單元250詢問轉換表控制單元221剩餘邏輯位址區域(在圖11中所示之該實例中為一邏輯位址0及一資料大小3之區域)對應之一實體位址區域並獲取該剩餘邏輯位址區域對應之該實體位址區域之資訊。寫入指示單元250向半導體儲存媒體控制單元203發佈所獲取的該剩餘邏輯位址區域對應之實體位址區域之一資料讀取請求,且向緩衝控制單元207發佈所讀取資料之一儲存請求。因此,緩衝控制單元207將對應於該管理大小之資料連同自命令控制單元215接收之資料儲存於緩衝儲存單元209中。
寫入指示單元250詢問主機寫入日誌結構化指標控制單元232一當前主機寫入日誌結構化指標,獲取該主機寫入日誌結構化指標,且獲取該主機寫入日誌結構化指標對應之一實體位址區域之資訊。
寫入指示單元250向緩衝控制單元207發佈所儲存對應於該管理大小之資料之一擷取請求,將所擷取資料及所獲取主機寫入日誌結構化指標對應之實體位址區域之資訊發射至半導體儲存媒體控制單元203,且請求半導體儲存媒體控制單元203將所擷取資料寫入所獲取主機寫入日誌結構化指標對應之該實體位址區域中。當所獲取主機寫入日誌結構化指標指示該區塊之一首頁時,寫入指示單元250在請求半導體儲存媒體控制單元203寫入資料之前請求半導體儲存媒體控制單元203執行一區塊擦除程序。然而,該區塊擦除程序之執行時間並不限於此。舉例而言,該執行時間可係當新分配用於主機寫入之一區塊時之時間、當將一區塊收集為一未使用區塊時之時間或在將該區塊收集為未使用區塊之後直至寫入指示單元250請求半導體儲存媒體控制單元203寫入資料為止之一時間週期期間之任意時間。
寫入指示單元250請求轉換表控制單元221將包含該寫入命令之區域之該管理大小區域之一頭部之一邏輯位址(在圖11中所示之該實例中為邏輯位址0)登記在所獲取主機寫入日誌結構化指標對應之實體位址區域之對應反向查找表中。寫入指示單元250通知日誌儲存單元284經更新轉換表之更新資訊。
寫入指示單元250請求轉換表控制單元221執行該轉換表之一排他控制開始程序(鎖定程序)。
寫入指示單元250在該轉換表之排他控制期間更新該轉換表以指示新寫入之資料。具體而言,寫入指示單元250在接收該寫入命令之前詢問轉換表控制單元221對應於包含該寫入命令之區域之管理大小區域之頭部之一邏輯位址(在圖11中所示之該實例中為邏輯位址0)之一實體位址(更新前之實體位址)。寫入指示單元250請求轉換表控制單元221致使所獲取更新前之實體位址對應之一有效頁旗標變成OFF。寫入指示單元250請求轉換表控制單元221遞減所獲取更新前實體位址對應之一區塊之一有效頁計數器。寫入指示單元250請求轉換表控制單元221致使所獲取主機寫入日誌結構化指標對應之一有效頁旗標變成ON。寫入指示單元250請求轉換表控制單元221遞增所獲取主機寫入日誌結構化指標對應之一區塊之一有效頁計數器。寫入指示單元250請求轉換表控制單元221更新該正向查找表之包含該寫入命令之區域之管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)以指示主機寫入日誌結構化指標對應之實體位址區域之資訊。寫入指示單元250通知日誌儲存單元284經更新轉換表之更新資訊。
寫入指示單元250請求轉換表控制單元221執行該轉換表之一排他控制結束程序(鎖定釋放程序)。
寫入指示單元250請求主機寫入日誌結構化指標控制單元232更新該主機寫入日誌結構化指標以指示下一頁。寫入指示單元250詢問主機寫入日誌結構化指標控制單元232經更新主機寫入日誌結構化指標是否在該區塊之最後一頁上。若寫入指示單元250接收指示該經更新主機寫入日誌結構化指標在該區塊之該最後一頁上之一回復,則寫入指示單元250請求區塊使用資訊控制單元226執行一未使用區塊之一分配程序。因此,更新該區塊使用資訊。寫入指示單元250請求主機寫入日誌結構化指標控制單元232更新該主機寫入日誌結構化指標以指示一新分配區塊之一頭部之一頁。寫入指示單元250通知日誌儲存單元284經更新主機寫入日誌結構化指標之更新資訊及經更新區塊使用資訊之更新資訊。
寫入指示單元250請求日誌儲存單元284提交通知給日誌儲存單元284之更新資訊。
讀取指示單元260執行對應於該讀取命令之一程序。讀取指示單元260之一功能係藉由由處理器51執行各種系統程式來實現。
讀取指示單元260自命令控制單元215接收一讀取命令(其包含由命令控制單元215分割之若干讀取命令)。讀取指示單元260詢問轉換表控制單元221所接收讀取命令之邏輯位址區域對應之一實體位址區域,並獲取該對應實體位址區域之資訊。
讀取指示單元260向半導體儲存媒體控制單元203發佈該所獲取實體位址區域之一資料讀取請求,並向緩衝控制單元207發佈所讀取資料之一儲存請求。
讀取指示單元260向命令控制單元215發佈請求該主機裝置接收資料之一請求。若讀取指示單元260自命令控制單元215接收來自該主機裝置之一資料接收請求,則讀取指示單元260向緩衝控制單元207發佈該所讀取資料之一擷取請求並將所擷取資料遞送至命令控制單元215。關於由命令控制單元215分割之該等讀取命令,讀取指示單元260可如上文所述與該主機裝置個別地交換資料或者命令控制單元215或主機介面單元210可收集資料且同時與該主機裝置交換該資料。
壓縮單元270在需要一壓縮程序時之時間或任意時間執行該壓縮程序。壓縮單元270之功能係藉由由處理器51執行各種系統程式來實現。
壓縮單元270詢問區塊使用資訊控制單元226已使用區塊之一區塊編號並獲取該已使用區塊之該區塊編號。
壓縮單元270詢問轉換表控制單元221該等所獲取區塊當中適於一壓縮物件之區塊,並獲取適於該壓縮物件之該區塊之區塊編號及對應區塊之一有效頁旗標與一有效頁計數器。適於壓縮物件之該區塊係其中該有效頁計數器之一值係最小之一區塊。在此情況下,當選擇其中該有效頁計數器之值為0之區塊作為該壓縮物件時,壓縮單元270請求區塊使用資訊控制單元226將對應區塊登記為一未使用區塊。因此,將該對應區塊收集為該未使用區塊。當將該對應區塊收集為未使用區塊時,壓縮單元270通知日誌儲存單元284經更新區塊使用資訊之更新資訊。
壓縮單元270向半導體儲存媒體控制單元203發佈所獲取壓縮物件區塊編號及有效頁旗標資訊對應之一實體位址區域(複製源頁)之一讀取請求。若壓縮單元270接收該所讀取資料,則壓縮單元270向緩衝控制單元207發佈所接收資料之一儲存請求。
壓縮單元270詢問壓縮日誌結構化指標控制單元242一當前壓縮日誌結構化指標,獲取該壓縮日誌結構化指標且獲取該壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊。
壓縮單元270向緩衝控制單元207發佈該所儲存資料之一擷取請求,將該所擷取資料且所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊發射至半導體儲存媒體控制單元203且請求半導體儲存媒體控制單元203將該所擷取資料寫入所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)中。當所獲取壓縮日誌結構化指標指示該區塊之一首頁時,壓縮單元270在請求半導體儲存媒體控制單元203寫入資料之前請求半導體儲存媒體控制單元203執行一區塊擦除程序。然而,執行該區塊擦除程序之時間並不限於此。舉例而言,該時間可係當新分配用於壓縮之一區塊時之時間、當將一區塊收集為一未使用區塊時之時間或在將該區塊收集為該未使用區塊之後直至壓縮單元270請求半導體儲存媒體控制單元203寫入資料為止之一時間週期期間之任意時間。
壓縮單元270請求轉換表控制單元221將所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之反向查找邏輯位址資訊登記在所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之對應反向查找表中。壓縮單元270通知日誌儲存單元284經更新轉換表之更新資訊。
壓縮單元270請求轉換表控制單元221執行該轉換表之一排他控制開始程序(鎖定程序)。
壓縮單元270在該轉換表之排他控制期間更新該轉換表以指示一壓縮目的地之資料。然而,如上文所述,當與正被複製之資料對應之一邏輯位址區域相同之邏輯位址區域之一寫入程序在該資料之複製程序期間由寫入指示單元250完成時,壓縮單元270不應更新該轉換表。
具體而言,壓縮單元270向轉換表控制單元221發佈使用所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之反向查找邏輯位址資訊的正向查找表之一參考請求,且獲取對應於該反向查找邏輯位址資訊之一實體位址。壓縮單元270確定對應於所獲取反向查找邏輯位址資訊之實體位址及所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)是否彼此匹配。當確定該實體位址與該實體位址區域彼此不匹配時,此意指與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之複製程序期間由寫入指示單元250完成。出於此原因,壓縮單元270在該轉換表之排他控制期間結束該程序且未更新該轉換表。當確定該實體位址與該實體位址區域彼此匹配時,此意指與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之複製程序期間未由寫入指示單元250執行或執行了但未完成。出於此原因,壓縮單元270更新該轉換表。
具體而言,壓縮單元270請求轉換表控制單元221致使所獲取壓縮物件區塊編號及有效頁旗標資訊對應之一實體位址區域(複製源頁)之一有效頁旗標變成OFF。壓縮單元270請求轉換表控制單元221遞減對應於所獲取壓縮物件區塊編號之一區塊之一有效頁計數器。壓縮單元270請求轉換表控制單元221致使所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之一有效頁旗標變成ON。壓縮單元270請求轉換表控制單元221遞增所獲取壓縮日誌結構化指標對應之一區塊之一有效頁計數器。壓縮單元270請求轉換表控制單元221更新該正向查找表的由所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之反向查找邏輯位址所指示之一條目以指示該壓縮日誌結構化指標對應之實體位址區域資訊(複製目的地頁)。壓縮單元270通知日誌儲存單元284經更新轉換表之更新資訊。若所獲取壓縮物件區塊之有效頁計數器之值變為0,則壓縮單元270請求區塊使用資訊控制單元226將對應區塊登記為一未使用區塊。因此,將該對應區塊收集為未使用區塊。當將該對應區塊收集為未使用區塊時,壓縮單元270通知日誌儲存單元284經更新區塊使用資訊之更新資訊。
壓縮單元270請求轉換表控制單元221執行該轉換表之一排他控制結束程序(鎖定釋放程序)。
壓縮單元270請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示下一頁。壓縮單元270詢問壓縮日誌結構化指標控制單元242經更新壓縮日誌結構化指標是否在該區塊之最後一個頁上。若壓縮單元270接收指示該經更新壓縮日誌結構化指標在該區塊之該最後一個頁上之一回復時,壓縮單元270請求區塊使用資訊控制單元226執行一未使用區塊之一分配程序。因此,更新該區塊使用資訊。壓縮單元270請求壓縮日誌結構化指標控制單元242更新該壓縮日誌結構化指標以指示一新分配區塊之一頭部之一頁。壓縮單元270通知日誌儲存單元284經更新壓縮日誌結構化指標之更新資訊及經更新區塊使用資訊之更新資訊。
壓縮單元270請求日誌儲存單元284提交通知給日誌儲存單元284之更新資訊。
快照儲存單元282在當需要一快照儲存程序時之時間或任意時間執行該快照儲存程序。快照儲存單元282之一功能係藉由由處理器51執行各種系統程式來實現。
快照儲存單元282請求日誌儲存單元284儲存指示一快照記錄開始之資訊之一日誌。藉此,可辨識快照與日誌之記錄時間之一次序關係。
快照儲存單元282請求轉換表控制單元221擷取該轉換表,且獲取該轉換表。快照儲存單元282請求主機寫入日誌結構化指標控制單元232擷取主機寫入日誌結構化指標,且獲取該主機寫入日誌結構化指標。快照儲存單元282請求壓縮日誌結構化指標控制單元242擷取壓縮日誌結構化指標,且獲取該壓縮日誌結構化指標。快照儲存單元282請求區塊使用資訊控制單元226擷取區塊使用資訊,且獲取該區塊使用資訊。
快照儲存單元282請求半導體儲存媒體控制單元203儲存所獲取轉換表、所獲取主機寫入日誌結構化指標、所獲取壓縮日誌結構化指標及所獲取區塊使用資訊,並記錄快照。若先前不能辨識半導體儲存媒體205之在彼處記錄該快照或該日誌之一實體位址,則當給資料儲存裝置200供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該快照或該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
快照儲存單元282請求日誌儲存單元284儲存指示一快照記錄結束之資訊之一日誌。藉此,可辨識快照與日誌之記錄時間之一次序關係。
日誌儲存單元284執行一日誌儲存程序。日誌儲存單元284之一功能係藉由由處理器51執行各種系統程式來實現。
日誌儲存單元284自寫入指示單元250或壓縮單元270接收各種資訊之更新資訊之一通知且暫時儲存所接收更新資訊。
日誌儲存單元284自寫入指示單元250或壓縮單元270接收一提交通知,請求半導體儲存媒體控制單元203儲存該暫時儲存之更新資訊且將該暫時儲存之更新資訊記錄為一日誌。日誌儲存單元284自快照儲存單元282接收指示一快照記錄開始之資訊之一日誌之一儲存通知,請求半導體儲存媒體控制單元203儲存所接收指示該快照記錄開始之該資訊之日誌且將該資訊記錄為該日誌。日誌儲存單元284自快照儲存單元282接收指示一快照記錄結束之資訊之一日誌之一儲存通知,請求半導體儲存媒體控制單元203儲存所接收指示該快照記錄結束之資訊之日誌且將該資訊記錄為該日誌。
圖12中顯示日誌儲存單元284透過半導體儲存媒體控制單元203儲存之日誌之一實例。如圖12中所示,日誌儲存單元284以按照日誌提交程序請求之接收次序之時間序列配置日誌。在此情況下,若偵測快照之記錄結束,則由於快照記錄開始之前之日誌(在圖12中所示之一實例中為日誌1及2)及先前所記錄之快照在一管理資訊恢復程序中變得不必要,因此日誌儲存單元284釋放出該快照記錄開始之前之日誌及先前所記錄之快照作為一新的資料儲存區域。
當需要恢復管理資訊時,管理資訊恢復單元290執行一管理資訊恢復程序。管理資訊恢復單元290之一功能係藉由由處理器51執行各種系統程式來實現。管理資訊恢復單元290請求快照恢復單元292恢復一最新快照。管理資訊恢復單元290請求日誌恢復單元294自在儲存該最新快照之後所儲存之一日誌恢復管理資訊。
快照恢復單元292恢復該最新快照。快照恢復單元292之一功能係藉由由處理器51執行各種系統程式來實現。
若快照恢復單元292自管理資訊恢復單元290接收最新快照之一恢復請求,則快照恢復單元292向半導體儲存媒體控制單元203發佈該最新快照之一擷取請求且接收該最新快照。
快照恢復單元292自所接收快照擷取該轉換表,且請求該轉換表控制單元221儲存該所擷取轉換表。快照恢復單元292自所接收快照擷取主機寫入日誌結構化指標,且請求主機寫入日誌結構化指標控制單元232儲存該所擷取主機寫入日誌結構化指標。快照恢復單元292自所接收快照擷取壓縮日誌結構化指標,且請求壓縮日誌結構化指標控制單元242儲存該所擷取壓縮日誌結構化指標。快照恢復單元292自該所接收快照擷取該區塊使用資訊,且請求區塊使用資訊控制單元226儲存該所擷取區塊使用資訊。
日誌恢復單元294自儲存該最新快照之後所儲存之日誌恢復該管理資訊。日誌恢復單元294之一功能係藉由由處理器51執行各種系統程式來實現。
若日誌恢復單元294自管理資訊恢復單元290接收自儲存該最新快照之後所儲存之日誌的該管理資訊之一恢復請求,則日誌恢復單元294向半導體儲存媒體控制單元203發佈在儲存該最新快照之後所儲存之該日誌之一擷取請求,且接收在儲存該最新快照之後所儲存之該日誌。日誌恢復單元294按照記錄次序自該等所接收日誌擷取該等日誌,且請求轉換表控制單元221、主機寫入日誌結構化指標控制單元232、壓縮日誌結構化指標控制單元242或區塊使用資訊控制單元226反應該等日誌中所記錄之各種資訊之更新資訊。
接下來,將闡述根據該第二實施例之該資料儲存裝置之操作。
首先,將參考圖13闡述由資料儲存裝置200根據來自該主機裝置之一寫入命令執行的一寫入程序之一序列。圖13係顯示由資料儲存裝置200執行之該寫入程序之一序列之一流程之一實例的一流程圖。為來自該主機裝置之該寫入命令做準備,資料儲存裝置200先前保證一未使用區塊用於來自該主機裝置之該寫入命令。
在步驟S1中,主機介面單元210自該主機裝置接收該寫入命令且向命令控制單元215發佈一命令執行通知以根據所接收命令類型執行一程序。
在步驟S2中,若命令控制單元215自主機介面單元210接收該寫入命令,則命令控制單元215調查對應命令之一區域是否跨越管理大小區域(頁)之邊界。當該對應命令之區域跨越該管理大小區域(頁)之邊界(在步驟S2中為是)時,則該程序繼續進行至步驟S3。同時,當該對應命令之區域不跨越該管理大小區域(頁)之邊界(在步驟S2中為否)時,則該程序繼續進行至步驟S4。
在步驟S3中,命令控制單元215以該管理大小區域之邊界分割該對應命令。舉例而言,如圖11中所示,命令控制單元215將其一寫入目的地邏輯位址為3且一寫入資料大小為16之一寫入命令分割為具有一寫入目的地邏輯位址3及一寫入資料大小5之一寫入命令、具有一寫入目的地邏輯位址8及一寫入資料大小8之一寫入命令及具有一寫入目的地邏輯位址16及一寫入資料大小3之一寫入命令。
在步驟S4中,命令控制單元215通知寫入指示單元250該等經分割命令。當自主機介面單元210接收之該寫入命令之區域不跨越該管理大小區域之邊界時,命令控制單元215通知寫入指示單元250該所接收命令。因此,當分割該寫入命令時,寫入指示單元250重複地執行以下程序。
在步驟S5中,寫入指示單元250向命令控制單元215發佈請求該主機裝置發射資料之一請求。若命令控制單元215自寫入指示單元250接收請求該主機裝置發射資料之該請求,則命令控制單元215將所接收請求該主機裝置發射資料之請求發射至主機介面單元210。若主機介面單元210自命令控制單元215接收請求該主機裝置發射資料之該請求,則主機介面單元210向該主機裝置發射所接收請求該主機裝置發射資料之請求。若主機介面單元210自該主機裝置接收欲由資料儲存裝置200接收之資料,則主機介面單元210將欲由資料儲存裝置200接收之該資料發射至命令控制單元215。若命令控制單元215自主機介面單元210接收由該主機裝置發射之該資料,則命令控制單元215將該所接收資料發射至寫入指示單元250。若寫入指示單元250自命令控制單元215接收由該主機裝置發射之該資料,則寫入指示單元250向緩衝控制單元207發佈該所接收資料之一儲存請求。關於由命令控制單元215分割之該等寫入命令,寫入指示單元250可如上文所述與該主機裝置個別地交換資料或者命令控制單元215或主機介面單元210可收集該資料且同時與該主機裝置交換該資料。緩衝控制單元207將所指定資料儲存於緩衝儲存單元209中。
在步驟S6中,寫入指示單元250調查該寫入命令之寫入資料大小是否小於該管理大小。當該寫入資料大小小於該管理大小(在步驟S6中為是)時,則該程序繼續進行至步驟S7。當該寫入資料大小不小於該管理大小(等於該管理大小)(在步驟S6中為否)時,則該程序繼續進行至步驟S8。如在圖11中所示之該實例中,其中寫入資料大小小於該管理大小之情況係具有寫入目的地邏輯位址3及寫入資料大小5之寫入命令之情況。
在步驟S7中,寫入指示單元250詢問轉換表控制單元221剩餘邏輯位址區域(在圖11中所示之該實例中為具有邏輯位址0及資料大小3之區域)對應之一實體位址區域。轉換表控制單元221參考由轉換表儲存單元223所儲存之轉換表,且提供對應實體位址區域之資訊。寫入指示單元250獲取所獲取剩餘邏輯位址區域對應之該實體位址區域之資訊,且向半導體儲存媒體控制單元203發佈該剩餘邏輯位址區域對應之該實體位址區域之一資料讀取請求。半導體儲存媒體控制單元203讀取半導體儲存媒體205之所指定實體位址區域之資料且提供該資料。當自寫入指示單元250連續發佈寫入請求或讀取請求並連續執行所請求程序,且自讀取指示單元260或壓縮單元270發佈或已經發佈讀取請求或寫入請求時,半導體儲存媒體控制單元203不執行下一連續請求之一程序而根據需要執行自讀取指示單元260或壓縮單元270請求之一程序。亦即,半導體儲存媒體控制單元203根據需要切換該程序。若切換之後之程序係完成,則半導體儲存媒體控制單元203根據需要執行下一連續請求之一程序。亦即,半導體儲存媒體控制單元203根據需要重新開始被切換程序。寫入指示單元250向緩衝控制單元207發佈該所讀取資料之一儲存請求。因此,緩衝控制單元207將對應於該管理大小之資料連同自命令控制單元215接收之資料儲存於緩衝儲存單元209中。緩衝控制單元207將所指定資料儲存於緩衝儲存單元209中。
在步驟S8中,寫入指示單元250詢問主機寫入日誌結構化指標控制單元232一當前主機寫入日誌結構化指標。主機寫入日誌結構化指標控制單元232提供由主機寫入日誌結構化指標儲存單元230所儲存之主機寫入日誌結構化指標。寫入指示單元250獲取該主機寫入日誌結構化指標且獲取該主機寫入日誌結構化指標對應之實體位址區域之資訊。寫入指示單元250向緩衝控制單元207發佈所儲存對應於該管理大小之資料之一擷取請求。緩衝控制單元207擷取由緩衝儲存單元209所儲存之所指定資料且提供該所指定資料。寫入指示單元250將該所擷取資料及所獲取主機寫入日誌結構化指標對應之實體位址區域資訊發射至半導體儲存媒體控制單元203,且請求半導體儲存媒體控制單元203將該所擷取資料寫入該所擷取主機寫入日誌結構化指標對應之該實體位址區域中。當所獲取主機寫入日誌結構化指標指示該區塊之一首頁時,寫入指示單元250在請求半導體儲存媒體控制單元203寫入資料之前請求半導體儲存媒體控制單元203執行一區塊擦除程序。然而,該區塊擦除程序之執行時間並不限於此。舉例而言,該執行時間可係當新分配用於主機寫入之一區塊時之時間、當將一區塊收集為一未使用區塊時之時間或在將該區塊收集為該未使用區塊之後直至寫入指示單元250請求半導體儲存媒體控制單元203寫入資料為止之一時間週期期間之任意時間。半導體儲存媒體控制單元203將所指定資料寫入該半導體儲存媒體之所指定實體位址區域中。當自寫入指示單元250連續發佈寫入請求或讀取請求並連續執行所請求程序,且自讀取指示單元260或壓縮單元270發佈或已經發佈讀取請求或寫入請求時,半導體儲存媒體控制單元203不執行下一連續請求之一程序而根據需要執行自讀取指示單元260或壓縮單元270請求之一程序。亦即,半導體儲存媒體控制單元203根據需要切換該程序。若切換之後之程序係完成,則半導體儲存媒體控制單元203根據需要執行下一連續請求之一程序。亦即,半導體儲存媒體控制單元203根據需要重新開始被切換程序。
在步驟S9中,寫入指示單元250請求轉換表控制單元221將包含該寫入命令之區域之管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)登記於所獲取主機寫入日誌結構化指標對應之反向查找表中。轉換表控制單元221將包含該寫入命令之區域之管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)登記於為轉換表儲存單元223所儲存之轉換表及所獲取主機寫入日誌結構化指標對應之反向查找表中。寫入指示單元250通知日誌儲存單元284經更新轉換表之更新資訊。日誌儲存單元284接收該經更新轉換表之更新資訊。在步驟S10中,寫入指示單元250請求轉換表控制單元221執行該轉換表之一排他控制開始程序(鎖定程序)。轉換表控制單元221執行該轉換表之該排他控制開始程序(鎖定程序)。
在步驟S11中,寫入指示單元250詢問轉換表控制單元221在接收該寫入命令之前對應於包含該寫入命令之區域之該管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)之一實體位址(更新前實體位址)。轉換表控制單元221參考由轉換表儲存單元223所儲存之轉換表,獲取在接收該寫入命令之前對應於包含該寫入命令之區域之管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)之實體位址(更新前實體位址)且提供該實體位址。寫入指示單元250獲取在接收該寫入命令之前對應於包含該寫入命令之區域之管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)之實體位址(更新前實體位址)。
在步驟S12中,寫入指示單元250請求轉換表控制單元221致使所獲取更新前實體位址對應之一有效頁旗標變成OFF。在步驟S13中,寫入指示單元250請求轉換表控制單元221遞減該所獲取更新前實體位址對應之一區塊之一有效頁計數器。在步驟S14中,寫入指示單元250請求轉換表控制單元221致使所獲取主機寫入日誌結構化指標對應之一有效頁旗標變成ON。在步驟S15中,寫入指示單元250請求轉換表控制單元221遞增所獲取主機寫入日誌結構化指標對應之一區塊之一有效頁計數器。在步驟S16中,寫入指示單元250請求轉換表控制單元221更新正向查找表之包含該寫入命令之區域之管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)以指示該主機寫入日誌結構化指標對應之實體位址區域之資訊。轉換表控制單元221根據一指令更新由轉換表儲存單元223所儲存之該轉換表。寫入指示單元250通知日誌儲存單元284經更新轉換表之更新資訊。
在步驟S17中,寫入指示單元250請求轉換表控制單元221執行該轉換表之一排他控制結束程序(鎖定釋放程序)。轉換表控制單元221執行該轉換表之排他控制結束程序(鎖定釋放程序)。
在步驟S18中,寫入指示單元250請求主機寫入日誌結構化指標控制單元232更新該主機寫入日誌結構化指標以指示下一頁。主機寫入日誌結構化指標控制單元232更新該主機寫入日誌結構化指標以指示下一頁。寫入指示單元250通知日誌儲存單元284經更新主機寫入日誌結構化指標之更新資訊。
在步驟S19中,寫入指示單元250詢問主機寫入日誌結構化指標控制單元232經更新主機寫入日誌結構化指標是否在該區塊之最後一個頁上。主機寫入日誌結構化指標控制單元232調查經更新主機寫入日誌結構化指標是否在該區塊之最後一個頁上且提供該調查結果。若寫入指示單元250接收指示經更新主機寫入日誌結構化指標在該區塊之最後一個頁上之一回復時,該程序繼續進行至步驟S20。否則,該程序繼續進行至步驟S21。
在步驟S20中,寫入指示單元250請求區塊使用資訊控制單元226執行一未使用區塊之一分配程序。因此,更新該區塊使用資訊。區塊使用資訊控制單元226自由區塊使用資訊儲存單元228所儲存之區塊使用資訊選擇未使用狀態之區塊,分配該未使用區塊且更新該區塊使用資訊。寫入指示單元250請求主機寫入日誌結構化指標控制單元232更新主機寫入日誌結構化指標以指示一新分配區塊之一頭部之一頁。主機寫入日誌結構化指標控制單元232更新由主機寫入日誌結構化指標儲存單元230所儲存之該主機寫入日誌結構化指標以指示一新分配區塊之一頭部之一頁。寫入指示單元250通知日誌儲存單元284經更新主機寫入日誌結構化指標之更新資訊及經更新區塊使用資訊之更新資訊。
在步驟S21中,寫入指示單元250請求日誌儲存單元284提交通知給日誌儲存單元284之該更新資訊。日誌儲存單元284自寫入指示單元250接收一提交通知,且請求半導體儲存媒體控制單元203儲存該暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置200供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之預定區域中所記錄之資訊追蹤之一區域。
在步驟S22中,根據需要自步驟S4重複該程序。接下來,將參考圖14闡述由資料儲存裝置200根據來自該主機裝置之一讀取命令執行之一讀取程序之一序列。圖14係顯示由資料儲存裝置200執行之該讀取程序之一序列之一流程之一實例的一流程圖。在此情況下,假設請求讀取之資料先前藉由寫入命令寫入。
在步驟S31中,主機介面單元210自該主機裝置接收一讀取命令且向命令控制單元215發佈一命令執行通知以根據一所接收命令類型執行一程序。
在步驟S32中,若命令控制單元215自主機介面單元210接收該讀取命令,則命令控制單元215調查對應命令之區域是否跨越管理大小區域(頁)之邊界。當該對應命令之區域跨越該管理大小區域(頁)之邊界(在步驟S32中為是)時,則該程序繼續進行至步驟S33。當該對應命令之區域不跨越該管理大小區域(頁)之邊界(在步驟S32中為否)時,則該程序繼續進行至步驟S34。
在步驟S33中,命令控制單元215以管理大小區域之邊界分割對應命令。該命令分割程序與寫入程序之情況下之命令分割程序相同。
在步驟S34中,命令控制單元215通知讀取指示單元260該等經分割命令。當自主機介面單元210接收之該讀取命令之區域不跨越該管理大小區域之邊界時,命令控制單元215通知讀取指示單元260所接收命令。因此,當分割該讀取命令時,讀取指示單元260重複地執行以下程序。
在步驟S35中,讀取指示單元260詢問轉換表控制單元221所接收讀取命令之邏輯位址區域對應之一實體位址區域,且獲取對應實體位址區域之資訊。轉換表控制單元221參考由轉換表儲存單元223所儲存之轉換表,且提供所接收讀取命令之邏輯位址區域對應之該實體位址區域資訊。讀取指示單元260獲取所接收讀取命令之邏輯位址區域對應之實體位址區域資訊。
在步驟S36中,讀取指示單元260向半導體儲存媒體控制單元203發佈所獲取實體位址區域之一資料讀取請求。半導體儲存媒體控制單元203讀取該半導體儲存媒體之所指定實體位址區域之資料且提供該資料。當自讀取指示單元260連續發佈讀取請求並連續執行所請求程序且自寫入指示單元250或壓縮單元270發佈或已經發佈讀取請求或寫入請求時,半導體儲存媒體控制單元203不執行下一連續請求之程序而根據需要執行自寫入指示單元250或壓縮單元270請求之一程序。亦即,半導體儲存媒體控制單元203根據需要切換該程序。若切換之後之程序係完成,則半導體儲存媒體控制單元203根據需要執行下一連續請求之一程序。亦即,半導體儲存媒體控制單元203根據需要重新開始被切換程序。讀取指示單元260向緩衝控制單元207發佈所讀取資料之一儲存請求。緩衝控制單元207將所指定資料儲存於緩衝儲存單元209中。
在步驟S37中,讀取指示單元260向命令控制單元215發佈請求該主機裝置接收資料之一請求。若命令控制單元215自讀取指示單元260接收請求該主機裝置接收資料之該請求,則命令控制單元215將所接收請求該主機裝置接收資料之請求發射至主機介面單元210。若主機介面單元210自命令控制單元215接收請求該主機裝置接收資料之該請求,則主機介面單元210發佈所接收請求該主機裝置接收資料之請求。若主機介面單元210自該主機裝置接收一資料接收請求,則主機介面單元210向命令控制單元215發佈所接收來自該主機裝置之資料接收請求。若命令控制單元215透過主機介面單元210接收來自該主機裝置之資料接收請求,則命令控制單元215將所接收來自該主機裝置之資料接收請求發射至讀取指示單元260。若讀取指示單元260自命令控制單元215接收來自該主機裝置之該資料接收請求,則讀取指示單元260向緩衝控制單元207發佈所讀取資料之一擷取請求。緩衝控制單元207擷取由緩衝儲存單元209所儲存之所指定資料且提供該所擷取資料。讀取指示單元260將該所擷取資料遞送至命令控制單元215。若命令控制單元215自讀取指示單元260接收欲由該主機裝置接收之資料,則命令控制單元215將所接收資料發射至主機介面單元210。主機介面單元210將自命令控制單元215接收且欲由該主機裝置接收之資料發射至該主機裝置。關於由命令控制單元215分割之該等讀取命令,讀取指示單元260可如上文所述與該主機裝置個別地交換資料或者命令控制單元215或主機介面單元210可收集該資料且同時與該主機裝置交換該資料。
在步驟S38中,根據需要自步驟S34重複該程序。接下來,將參考圖15闡述由資料儲存裝置200執行之一壓縮程序之一序列。圖15係顯示由資料儲存裝置200執行之該壓縮程序之一序列之一流程之一實例的一流程圖。資料儲存裝置200在需要該壓縮程序時之時間或任意時間執行該壓縮程序。需要該壓縮程序之時間可藉由確定記錄在區塊使用資訊中之未使用區塊之數目是否小於預定臨限值來確定。
在步驟S41中,壓縮單元270詢問區塊使用資訊控制單元226已使用區塊之一區塊編號。區塊使用資訊控制單元226參考由區塊使用資訊儲存單元228所儲存之該區塊使用資訊,且提供已使用區塊之區塊編號。壓縮單元270獲取已使用區塊之區塊編號。壓縮單元270詢問轉換表控制單元221該等所獲取區塊當中適於一壓縮物件之區塊及該對應區塊之有效頁旗標及有效頁計數器。適於壓縮物件之該區塊係其中該有效頁計數器之一值為最小之一區塊。轉換表控制單元221參考由轉換表儲存單元223所儲存之該轉換表,擷取該等所獲取區塊當中適於該壓縮物件之該區塊且提供適於該壓縮物件之該區塊之區塊編號、該對應區塊之該有效頁旗標及該有效頁計數器。壓縮單元270獲取適於該壓縮物件之該區塊之該區塊編號、該對應區塊之該有效頁旗標及該有效頁計數器。
在步驟S42中,壓縮單元270調查選定為壓縮物件之區塊之該有效頁計數器之值是否為0。當該值為0時,該程序繼續進行至步驟S43。當該值不為0時,該程序繼續進行至步驟S44。
在步驟S43中,壓縮單元270請求區塊使用資訊控制單元226將該對應區塊登記為一未使用區塊。因此,將該對應區塊收集為該未使用區塊。區塊使用資訊控制單元226將該對應區塊作為未使用區塊登記於由區塊使用資訊儲存單元228所儲存之該區塊使用資訊中。因此,將該對應區塊收集為未使用區塊。壓縮單元270通知日誌儲存單元284經更新區塊使用資訊之更新資訊。然後,該程序返回至步驟S41。
在步驟S44中,壓縮單元270暫時儲存所獲取壓縮物件區塊編號及有效頁旗標資訊。在步驟S45中,壓縮單元270關於其中所獲取有效頁旗標資訊為ON之頁重複地執行以下程序。
在步驟S46中,壓縮單元270向半導體儲存媒體控制單元203發佈所獲取壓縮物件區塊編號及有效頁旗標資訊對應之一實體位址區塊(複製源頁)之一讀取請求。半導體儲存媒體控制單元203讀取該半導體儲存媒體之所指定實體位址區塊之資料且提供該資料。當自壓縮單元270連續發佈寫入請求或讀取請求並連續執行所請求程序且自讀取指示單元260或寫入指示單元250發佈或已經發佈讀取請求或寫入請求時,半導體儲存媒體控制單元203不執行下一連續請求之一程序而根據需要執行自讀取指示單元260或寫入指示單元250請求之一程序。亦即,半導體儲存媒體控制單元203根據需要切換該程序。若切換之後之程序係完成,則半導體儲存媒體控制單元203根據需要執行下一連續請求之一程序。亦即,半導體儲存媒體控制單元203根據需要重新開始被切換程序。若壓縮單元270接收該所讀取資料,則壓縮單元270向緩衝控制單元207發佈所接收資料之一儲存請求。緩衝控制單元207將所指定資料儲存於緩衝儲存單元209中。
在步驟S47中,壓縮單元270詢問轉換表控制單元221所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之反向查找邏輯位址資訊。轉換表控制單元221參考由轉換表儲存單元223所儲存之轉換表,且提供所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之反向查找邏輯位址資訊。壓縮單元270獲取所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之反向查找邏輯位址資訊。在步驟S48中,壓縮單元270詢問壓縮日誌結構化指標控制單元242一當前壓縮日誌結構化指標。壓縮日誌結構化指標控制單元242提供由壓縮日誌結構化指標儲存單元240所儲存之壓縮日誌結構化指標。壓縮單元270獲取該壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊。壓縮單元270向緩衝控制單元207發佈所儲存資料之一擷取請求。緩衝控制單元207擷取由緩衝儲存單元209所儲存之所指定資料且提供該所擷取資料。壓縮單元270獲取該儲存資料。壓縮單元270將該所擷取資料及所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊發射至半導體儲存媒體控制單元203,且請求半導體儲存媒體控制單元203將該所擷取資料寫入所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)中。當所獲取壓縮日誌結構化指示區塊之一首頁時,壓縮單元270在請求半導體儲存媒體控制單元203寫入資料之前請求半導體儲存媒體控制單元203執行一區塊擦除程序。然而,執行該區塊擦除程序之時間並不限於此。舉例而言,該時間可係當新分配用於壓縮之一區塊時之時間、當將一區塊收集為一未使用區塊時之時間或在將該區塊收集為該未使用區塊之後直至壓縮單元270請求半導體儲存媒體控制單元203寫入資料為止之一時間週期期間之任意時間。半導體儲存媒體控制單元203將所指定資料寫入半導體儲存媒體205之所指定實體位址區域中。當自壓縮單元270連續發佈寫入請求或讀取請求並連續執行所請求程序且自讀取指示單元260或寫入指示單元250發佈或已經發佈讀取請求或寫入請求時,半導體儲存媒體控制單元203不執行下一連續請求之一程序而根據需要執行自讀取指示單元260或寫入指示單元250所請求之一程序。亦即,半導體儲存媒體控制單元203根據需要切換該程序。若切換之後之程序係完成,則半導體儲存媒體控制單元203根據需要執行下一連續請求之一程序。亦即,半導體儲存媒體控制單元203根據需要重新開始被切換程序。
在步驟S49中,壓縮單元270請求轉換表控制單元221將所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址資訊登記於所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之對應反向查找表中。轉換表控制單元221在由轉換表儲存單元223所儲存之轉換表中將所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址資訊登記於所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之對應反向查找表中。壓縮單元270通知日誌儲存單元284經更新轉換表之更新資訊。
在步驟S50中,壓縮單元270請求轉換表控制單元221執行該轉換表之一排他控制開始程序(鎖定程序)。轉換表控制單元221執行該轉換表之一排他控制開始程序(鎖定程序)。
在步驟S51中,壓縮單元270使用所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址資訊向轉換表控制單元221發佈正向查找表之一參考請求。轉換表控制單元221參考由轉換表儲存單元223所儲存之該轉換表、使用所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址資訊來參考正向查找表,且提供對應於該反向查找邏輯位址資訊之一實體位址區域之資訊。壓縮單元270獲取對應於反向查找邏輯位址資訊之一實體位址區域。
在步驟S52中,壓縮單元270確定對應於所獲取反向查找邏輯位址資訊之實體位址區域與所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)是否彼此匹配。如上文所述,當與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之該複製程序期間由寫入指示單元250完成時,則不更新該轉換表。當確定該等實體位址區域不匹配(在步驟S52中為否)時,此意指與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之該複製程序期間由寫入指示單元250完成。出於此原因,該程序繼續進行至步驟S60且不應更新該轉換表。當確定該等實體位址區域匹配(在步驟S52中為是)時,此意指與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之該複製程序期間未由寫入指示單元250執行或執行了但未完成。出於此原因,該程序繼續進行至步驟S53且更新該轉換表。
在步驟S53中,壓縮單元270請求轉換表控制單元221致使所獲取壓縮物件區塊編號及有效頁旗標資訊對應之一實體位址區域(複製源頁)之一有效頁旗標變成OFF。在步驟S54中,壓縮單元270請求轉換表控制單元221遞減對應於所獲取壓縮物件區塊編號之一區塊之一有效頁計數器。在步驟S56中,若所獲取壓縮物件區塊之有效頁計數器之值變成0(在步驟S55中為是),則壓縮單元270請求區塊使用資訊控制單元226將該對應區塊登記為一未使用區塊。因此 將該對應區塊收集為該未使用區塊。若所獲取壓縮物件區塊之有效頁計數器之值變成0(在步驟S55中為是),則區塊使用資訊控制單元226將該對應區塊作為未使用區塊登記於由區塊使用資訊儲存單元228所儲存之區塊使用資訊中且將該對應區塊收集為未使用區塊。當將該對應區塊收集為未使用區塊時,壓縮單元270通知日誌儲存單元284經更新區塊使用資訊之更新資訊。在步驟S57中,壓縮單元270請求轉換表控制單元221致使所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之一對應有效頁旗標變成ON。在步驟S58中,壓縮單元270請求轉換表控制單元221遞增所獲取壓縮日誌結構化指標對應之一區塊之一有效頁計數器。在步驟S59中,壓縮單元270請求轉換表控制單元221更新該正向查找表之由所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址所指示之一條目以指示壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊。轉換表控制單元221根據一指令更新由轉換表儲存單元223所儲存之轉換表。壓縮單元270通知日誌儲存單元284經更新轉換表之更新資訊。
在步驟S60中,壓縮單元270請求轉換表控制單元221執行該轉換表之一排他控制結束程序(鎖定釋放程序)。轉換表控制單元221執行該轉換表之一排他控制結束程序(鎖定釋放程序)。
在步驟S61中,壓縮單元270請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示下一頁。壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示下一頁。壓縮單元270通知日誌儲存單元284經更新壓縮日誌結構化指標之更新資訊。
在步驟S62中,壓縮單元270詢問壓縮日誌結構化指標控制單元242經更新壓縮日誌結構化指標是否在區塊之最後一個頁上。壓縮日誌結構化指標控制單元242調查經更新壓縮日誌結構化指標是否在區塊之最後一個頁上且提供該調查結果。若壓縮單元270接收到指示經更新壓縮日誌結構化指標在區塊之最後一個頁上之回復,則該程序繼續進行至步驟S63。否則,該程序繼續進行至步驟S64。
在步驟S63中,壓縮單元270請求區塊使用資訊控制單元226執行一未使用區塊之一分配程序。因此,更新該區塊使用資訊。區塊使用資訊控制單元226自由區塊使用資訊儲存單元228所儲存之區塊使用資訊選擇未使用區塊,分配該未使用區塊且更新該區塊使用資訊。壓縮單元270請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示一新分配區塊之一頭部之一頁。壓縮日誌結構化指標控制單元242更新由壓縮日誌結構化指標儲存單元240所儲存之壓縮日誌結構化指標以指示一新分配區塊之一頭部之一頁。壓縮單元270通知日誌儲存單元284經更新壓縮日誌結構化指標之更新資訊及經更新區塊使用資訊之更新資訊。
在步驟S64中,壓縮單元270請求日誌儲存單元284提交通知給日誌儲存單元284之該更新資訊。日誌儲存單元284自壓縮單元270接收一提交通知且請求半導體儲存媒體控制單元203儲存暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之一實體位址,則當給資料儲存裝置200供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
在步驟S65中,根據需要自步驟S45重複該程序。
接下來,將參考圖16闡述由資料儲存裝置200執行之一快照記錄程序之一序列。圖16係顯示由資料儲存裝置200執行之該快照記錄程序之序列之一流程之一實例的一流程圖。資料儲存裝置200在預定時間或任意時間執行該快照儲存程序。
在步驟S71中,快照儲存單元282請求日誌儲存單元284儲存指示一快照記錄開始之資訊之一日誌。藉此,可辨識快照與日誌之記錄時間之一次序關係。日誌儲存單元284請求半導體儲存媒體控制單元203儲存指示該快照記錄開始之資訊。半導體儲存媒體控制單元203將指示該快照記錄開始之資訊記錄為該日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之一實體位址,則當給資料儲存裝置200供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
在步驟S72中,快照儲存單元282請求轉換表控制單元221擷取該轉換表且獲取該轉換表。快照儲存單元282請求主機寫入日誌結構化指標控制單元232擷取主機寫入日誌結構化指標,且獲取該主機寫入日誌結構化指標。快照儲存單元282請求壓縮日誌結構化指標控制單元242擷取壓縮日誌結構化指標,且獲取該壓縮日誌結構化指標。快照儲存單元282請求區塊使用資訊控制單元226擷取區塊使用資訊,且獲取該區塊使用資訊。轉換表控制單元221擷取由轉換表儲存單元223所儲存之該轉換表且提供該轉換表。主機寫入日誌結構化指標控制單元232擷取由主機寫入日誌結構化指標儲存單元230所儲存之該主機寫入日誌結構化指標且提供該主機寫入日誌結構化指標。壓縮日誌結構化指標控制單元242擷取由壓縮日誌結構化指標儲存單元240所儲存之該壓縮日誌結構化指標且提供該壓縮日誌結構化指標。區塊使用資訊控制單元226擷取由區塊使用資訊儲存單元228所儲存之該區塊使用資訊且提供該區塊使用資訊。
在步驟S73中,快照儲存單元282請求半導體儲存媒體控制單元203儲存所獲取轉換表、所獲取主機寫入日誌結構化指標、所獲取壓縮日誌結構化指標及所獲取區塊使用資訊並記錄該快照。半導體儲存媒體控制單元203將所獲取轉換表、所獲取主機寫入日誌結構化指標、所獲取壓縮日誌結構化指標及所獲取區塊使用資訊記錄為該快照。若先前不能辨識半導體儲存媒體205之在彼處記錄該快照或該日誌之一實體位址,則當給資料儲存裝置200供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該快照或該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
在步驟S74中,快照儲存單元282請求日誌儲存單元284儲存指示一快照記錄結束之資訊之一日誌。藉此,可辨識該快照與該日誌之記錄時間之一次序關係。日誌儲存單元284請求半導體儲存媒體控制單元203儲存指示該快照記錄結束之資訊。半導體儲存媒體控制單元203將指示該快照記錄結束之資訊記錄為該日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之一實體位址,則當給資料儲存裝置200供應電力時不能恢復該管理資訊。出於此原因,將半導體儲存媒體205之在彼處記錄該日誌之該實體位址記錄在半導體儲存媒體205之一預定區域中或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域中。日誌儲存單元284透過半導體儲存媒體控制單元203儲存之該等日誌由日誌儲存單元284以按照日誌提交程序請求之接收次序之時間序列配置,如圖12中所示。在此情況下,由於在該快照記錄開始之前之日誌(在圖12中所示之該實例中為日誌1及2)及先前所記錄之快照在一管理資訊恢復程序中變成不必要,因此日誌儲存單元284釋放出該快照記錄開始之前之該等日誌及先前所記錄之快照作為一新的資料儲存區域。
接下來,將參考圖17闡述由資料儲存裝置200執行之一管理資訊恢復程序之一序列。圖17係顯示由資料儲存裝置200執行之該管理資訊恢復程序之該序列之一流程之一實例的一流程圖。當給資料儲存裝置200供應電力時,資料儲存裝置200恢復該管理資訊。資料儲存裝置200可在當需要恢復該管理資訊時(甚至在不同於當給資料儲存裝置200供應電力時之情況下)之時間恢復該管理資訊。舉例而言,當偵測到儲存於DRAM 54中之管理資訊之資料破壞時,資料儲存裝置200可執行該管理資訊恢復程序。
在步驟S81中,管理資訊恢復單元290請求快照恢復單元292恢復一最新快照。若快照恢復單元292自管理資訊恢復單元290接收該最新快照之一恢復請求,則快照恢復單元292向半導體儲存媒體控制單元203發佈該最新快照之一擷取請求。半導體儲存媒體控制單元203自半導體儲存媒體205讀取所請求資料且提供該所讀取資料。快照恢復單元292接收該最新快照。快照恢復單元292自該所接收快照擷取轉換表且請求轉換表控制單元221儲存所擷取轉換表。轉換表控制單元221將該所擷取轉換表儲存於轉換表儲存單元223中。快照恢復單元292自該所接收快照擷取主機寫入日誌結構化指標且請求主機寫入日誌結構化指標控制單元232儲存該所擷取主機寫入日誌結構化指標。主機寫入日誌結構化指標控制單元232將該所擷取主機寫入日誌結構化指標儲存於主機寫入日誌結構化指標儲存單元230中。快照恢復單元292自該所接收快照擷取壓縮日誌結構化指標且請求壓縮日誌結構化指標控制單元242儲存該所擷取壓縮日誌結構化指標。壓縮日誌結構化指標控制單元242將該所擷取壓縮日誌結構化指標儲存於壓縮日誌結構化指標儲存單元240中。快照恢復單元292自該所接收快照擷取區塊使用資訊且請求區塊使用資訊控制單元226儲存該所擷取區塊使用資訊。區塊使用資訊控制單元226將該所擷取區塊使用資訊儲存於區塊使用資訊儲存單元228中。
在步驟S82至S84中,管理資訊恢復單元290請求日誌恢復單元294自在儲存該最新快照之後所儲存之一日誌恢復管理資訊。若日誌恢復單元294自管理資訊恢復單元290接收自在儲存該最新快照之後所儲存之該日誌的該管理資訊之恢復請求,則日誌恢復單元294向半導體儲存媒體控制單元203發佈在儲存該最新快照之後所儲存之該日誌之一擷取請求。半導體儲存媒體控制單元203自半導體儲存媒體205讀取所請求資料且提供該所讀取資料。日誌恢復單元294接收在儲存該最新快照之後所儲存之該日誌。日誌恢復單元294按照記錄次序自該等所接收日誌擷取該等日誌,且請求轉換表控制單元221、主機寫入日誌結構化指標控制單元232、壓縮日誌結構化指標控制單元242或區塊使用資訊控制單元226反應該等日誌中所記錄之各種資訊之更新資訊。轉換表控制單元221、主機寫入日誌結構化指標控制單元232、壓縮日誌結構化指標控制單元242或區塊使用資訊控制單元226將該等日誌中所記錄之各種資訊之更新資訊反應在由轉換表儲存單元223所儲存之轉換表、由主機寫入日誌結構化指標儲存單元230所儲存之主機寫入日誌結構化指標、由壓縮日誌結構化指標儲存單元240所儲存之壓縮日誌結構化指標或由區塊使用資訊儲存單元228所儲存之區塊使用資訊上。
接下來,將闡述根據該第二實施例之資料儲存裝置200之一有利效應。
在該壓縮程序中,作為該壓縮程序之結果,將變成壓縮源之區塊收集為未使用區塊。因此,較佳地,藉由該壓縮複製之頁之數目係小。出於此原因,當偵測到壓縮物件區塊時,較佳地選擇其中有效頁之數目盡可能小之區塊。然而,為改良效率,需要使用位址局部性來降低偵測為壓縮物件區塊之區塊之有效頁之數目。
在關於該資料儲存裝置之一存取型樣中,通常存在位址局部性。若存在位址局部性,則其中更新頻率為高之資料容易因新的寫入變為無效,且其中更新頻率為低之資料很少因新的寫入變為無效。出於此原因,自該主機裝置請求寫入之資料係具有高更新頻率之資料且被壓縮資料係直至區塊被壓縮才更新之資料。因此,被壓縮資料係具有低更新頻率之資料。
在根據該第二實施例之資料儲存裝置200中,由於使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態,因此可個別地收集具有高更新頻率之資料及具有低更新頻率之資料。若收集具有高更新頻率且容易變為無效之資料,則可降低對應區塊之有效頁之數目之一預期值。由於根據該第二實施例之資料儲存裝置200中有效頁之總數目係恆定,因此若收集具有低更新頻率且很少變為無效之資料,則對應區塊之有效頁之數目之一預期值增加。因此,可降低另一區塊之有效頁之數目之一預期值。
同時,在其中不存在位址局部性之隨機寫入時,甚至當使用或不使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態時,偵測為壓縮物件區塊之區塊之有效頁之數目之一預期值係相同。出於此原因,如在該第二實施例中,即使使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態,隨機寫入效能亦未劣化。
如上文所述,在該第二實施例中,可藉由使用存取型樣之位址局部性來降低欲壓縮之一區塊之有效頁之數目之一預期值。因此,與不使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態之情況相比較,可使實際上在該資料儲存裝置中寫入及讀取之資料之大小小於自該主機裝置請求寫入之資料之大小。因此,可獲得該資料儲存裝置之高寫入效能及長設計壽命。
在一正常狀態中,總是執行壓縮。因此,當不使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態時,將自該主機裝置請求寫入之資料寫入於作為壓縮程序執行結果產生之一新的寫入區域中。此時,若未完成(連續)壓縮寫入,則不寫入自該主機裝置請求寫入之資料。出於此原因,該(連續)壓縮寫入阻礙來自該主機裝置之該寫入請求,且不能給該主機裝置提供穩定的寫入效能。
相反,在該第二實施例中,使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態,且獨立地執行該主機寫入程序及該壓縮程序。此外,在半導體儲存媒體控制單元203中,可根據需要切換自寫入指示單元250對半導體儲存媒體205之寫入請求或讀取請求之程序及自壓縮單元270對半導體儲存媒體205之寫入請求或讀取請求之程序。因此,根據該第二實施例,可根據需要以一頁單元切換該主機寫入及該壓縮寫入,且可抑制來自該主機裝置之該寫入請求被該壓縮寫入阻礙。因此,可給該主機裝置提供穩定的寫入效能。
如在該第二實施例中,若使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態,則記錄在資料儲存裝置200中之資料易於藉由來自該主機裝置之操作而按照邏輯位址次序配置。具體而言,自該主機裝置發佈由資料儲存裝置200提供之邏輯位址區域之一全尺寸順序寫入請求,且記錄在該資料儲存裝置中之資料可按照邏輯位址次序配置。下文中,將參考圖18闡述此組態。
若自該主機裝置發佈由資料儲存裝置200提供之邏輯位址區域之全尺寸順序寫入請求,則在執行該全尺寸順序寫入期間在彼處寫入資料之邏輯位址中,在執行該全尺寸順序寫入期間不再次寫入資料。現在考量一區塊,其已係用於該主機寫入之一日誌結構化區塊且針對其在當該全尺寸順序寫入之執行開始時之一時間點之後完成添加。現在將該區塊管理為一已使用區塊。不使此區塊之一頁無效。亦即,不選擇以下區塊作為壓縮物件區塊:其已係用於該主機寫入之日誌結構化區塊,針對其在當該全尺寸順序寫入之執行開始時之一時間點之後完成添加且將其管理為已使用區塊。
同時,在當該全尺寸順序寫入開始時之一時間點已經管理為一已使用區塊之一區塊之一有效頁係尚未藉由該全尺寸順序寫入進行寫入之一邏輯位址之資料。此外,已係用於壓縮之一日誌結構化區塊、針對其在該全尺寸順序寫入之執行開始時之一時間點之後完成添加且將其管理為一已使用區塊之一區塊之一有效頁係尚未藉由該全尺寸順序寫入進行寫入之一邏輯位址之資料。
因此,在未來藉由該全尺寸順序寫入使該等頁無效。如上文所述,使在當該全尺寸順序寫入開始時之一時間點已經管理為一已使用區塊之區塊之有效頁及已係用於壓縮之日誌結構化區塊且針對其在當該全尺寸順序寫入之執行開始時之一時間點之後完成添加以被管理為一已使用區塊之區塊之有效頁一個接著一個地無效。被選擇為壓縮物件區塊的係在當開始該全尺寸順序寫入時之一時間點已經管理為一已使用區塊之區塊或已係用於壓縮之日誌結構化區塊且針對其在當該全尺寸順序寫入之執行開始時之一時間點之後完成添加以被管理為一已使用區塊之區塊。
若該全尺寸順序寫入完成,則按照邏輯位址次序配置記錄在資料儲存裝置200中之資料。相反,若不使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態,則指示該等邏輯位址上之一不一致值之被壓縮資料及指示該等邏輯位址上之一一致值且自該主機裝置請求寫入之資料總是混合在一個區塊中。因此,難以完美地配置按照邏輯位址次序寫入之資料。
如上文所述,在其中完美地配置按照邏輯位址次序寫入之資料及自該主機裝置發射一順序寫入請求且在根據該寫入請求寫入資料中使用一個區塊之一狀態中,藉由一個區塊使在該等實體位址上係連續之資料無效。因此,若在按照邏輯位址次序配置資料之程序之後自該主機裝置發佈該順序寫入請求,則不需要執行基於壓縮之一複製程序。
在該日誌結構化方法中,由於需要先前保證壓縮目的地之區塊,因此資料儲存裝置200使用藉由自安裝在資料儲存裝置200中之儲存媒體之總容量減去預定容量之邊際容量所獲得之容量作為提供給該主機裝置之所宣佈容量。在其中完美配置按照邏輯位址次序寫入之資料之一狀態中,對應於所宣佈容量之所有區塊充滿有效頁,且對應於邊際容量之所有區塊變成空。
出於此原因,甚至當在按照邏輯位址次序配置資料之程序之後自該主機裝置發佈隨機寫入請求時,直至寫入資料量至少變成對應於該邊際容量之寫入資料量才產生基於壓縮之複製程序。
同時,若執行基於壓縮之複製程序,則自該主機裝置請求寫入之資料之寫入效能比關於該儲存媒體之資料寫入效能更劣化。由於在一正常狀態中執行基於壓縮之複製程序,因此當狀態變成該正常狀態時,自該主機裝置請求寫入之資料之寫入效能比關於該儲存媒體之資料寫入效能更劣化。如上文所述,直至在按照邏輯位址次序配置資料之程序之後寫入資料量至少變成對應於該邊際容量之寫入資料量才產生基於壓縮之複製程序。出於此原因,直至寫入資料量至少變成對應於該邊際容量之寫入資料量,自該主機裝置請求寫入之資料之寫入效能才變成關於該儲存媒體之資料寫入效能。因此,使用其中個別地提供主機寫入日誌結構化指標及壓縮日誌結構化指標之組態,且可易於達成其中自該主機裝置請求寫入之資料之寫入效能變成關於該儲存媒體之資料寫入效能之一狀態。在上文說明中,按照邏輯位址次序配置資料之程序係藉由自該主機裝置發佈由該資料儲存裝置所提供之邏輯位址區域之全尺寸順序寫入請求來實現。然而,執行按照邏輯位址次序配置資料之程序之一機制可併入該資料儲存裝置中。
第三實施例
如上文所述,在使用具有約束(例如,關於在彼處尚未寫入資料之已擦除資料之區塊之頁可以一頁單元順序地寫入資料而關於在彼處已經寫入資料之頁無法實現資料之覆寫)之儲存媒體之資料儲存裝置中,對應於該管理資訊之更新資訊之日誌亦需要以一頁單元進行寫入。
此外在該第二實施例中,能夠實現該管理資訊之儲存及恢復程序。然而,當如在該第二實施例中將該資料管理單元設定為頁大小時,每當自該主機裝置請求寫入或每當藉由該壓縮寫入寫入對應於一個頁之資料時皆更新該管理資訊。出於此原因,每當自該主機裝置請求寫入或每當藉由該壓縮寫入寫入對應於一個頁之資料時,需要將日誌寫入一個頁中。此意指僅實現關於該儲存媒體之資料寫入效能之一半且自該儲存媒體之壽命計算之該資料儲存裝置之設計壽命變成1/2。因此 在該第三實施例中,將闡述其中降低一日誌記錄計數之一實例。在下文說明中,主要闡述該第二實施例與該第三實施例之差異,且具有與該第二實施例之彼等功能相同之功能之組件藉由與該第二實施例之彼等參考編號相同之參考編號標示且不重複對其說明。首先,將闡述根據該第三實施例之一資料儲存裝置之組態。
圖19係顯示根據該第三實施例之一資料儲存裝置300之詳細功能組態之一實例的一方塊圖。在根據該第三實施例之資料儲存裝置300中,一轉換表儲存單元323、一區塊使用資訊控制單元326、一寫入指示單元350、一壓縮單元370及一日誌恢復單元394不同於根據該第二實施例之資料儲存裝置200之彼等單元。下文中,將闡述該等個別單元之差異。
轉換表儲存單元323儲存一轉換表。根據該第三實施例之該轉換表包含一正向查找表、一有效頁旗標及一有效頁計數器,但不包含一反向查找表。
圖20顯示該有效頁旗標及該有效頁計數器之資料組態之一實例。如圖20中所示,該有效頁旗標及該有效頁計數器使用一區塊編號作為一索引且包含該區塊編號、該有效頁計數器及該有效頁旗標集作為一條目。該有效頁旗標集係按照該等頁在該區塊中配置之次序配置且可規定有效頁旗標之頁。相同區塊之有效頁計數器之一值與有效頁旗標之真值之總數目彼此匹配。相同區塊中,變成索引之區塊編號及變成正向查找表之條目之區塊編號指派有相同編號。該正向查找表與根據該第二實施例之轉換表儲存單元223所包含之正向查找表相同。
如上文所述,根據該第三實施例之轉換表儲存單元323不包含反向查找表,此與根據該第二實施例之轉換表儲存單元223相反。藉此,在該第三實施例中,可降低管理資訊之一記憶體使用量。當可降低該管理資訊之記憶體使用量時,此意指欲儲存為快照之容量降低。因此,可降低儲存該快照所需要之一程序時間,可降低關於半導體儲存媒體205之寫入量且可增加資料儲存裝置300之設計壽命。
若區塊使用資訊控制單元326自寫入指示單元350接收一未使用區塊之一分配請求,則區塊使用資訊控制單元326暫停寫入指示單元350之一程序,直至自壓縮單元370完全接收未使用區塊之分配請求為止。同樣地,若區塊使用資訊控制單元326自壓縮單元370接收一未使用區塊之一分配請求,則區塊使用資訊控制單元326暫停壓縮單元370之一程序,直至自寫入指示單元350完全接收未使用區塊之分配請求。
若區塊使用資訊控制單元326自寫入指示單元350及壓縮單元370兩者完全接收一未使用區塊之一分配請求,且在一對應時間點來自該主機裝置之寫入量為1且資料儲存裝置300中欲處理之壓縮之寫入量為N(N為等於或大於0之一整數),則區塊使用資訊控制單元326將一個未使用區塊分配給寫入指示單元350且將N個未使用區塊分配給壓縮單元370。區塊使用資訊控制單元326可自由區塊使用資訊儲存單元228所儲存之區塊使用資訊中所包含之已使用區塊之數目之資訊或未使用區塊之數目之資訊確定N之一值。考量以下一情況:當在一對應時間點來自該主機裝置之寫入量為1時,將N之值設定為大於資料儲存裝置300中欲處理之壓縮之寫入量。當來自該主機裝置之寫入請求之一負載不大時,首先執行壓縮程序且降低未來欲執行之一壓縮程序之量。因此,可改良當來自該主機裝置之寫入請求之負載在未來增加時之時間的回應性。
區塊使用資訊控制單元326根據所分配內容更新由區塊使用資訊儲存單元228所儲存之區塊使用資訊。區塊使用資訊控制單元326重新開始寫入指示單元350及壓縮單元370兩者之暫停之程序。接下來,將參考圖21至25闡述壓縮程序及根據來自該主機裝置之主機寫入請求之寫入程序。
首先,如圖21中所示,區塊使用資訊控制單元326將一區塊D分配給寫入指示單元350且將區塊A、B及C分配給壓縮單元370。在彼處壓縮單元370藉由該壓縮程序寫入資料之頁之次序變成區塊A、B及C之次序。若區塊使用資訊控制單元326重新開始寫入指示單元350及壓縮單元370之暫停之程序,則如圖22中所示,根據針對該主機寫入之日誌結構化指標及針對壓縮之日誌結構化指標添加壓縮物件資料及來自該主機裝置之寫入物件資料。如圖23或24中所示,甚至當該等日誌結構化指標中之一者到達所分配區塊之末尾處時,暫停該程序直至另一日誌結構化指標到達所分配區塊之末尾處,且不分配一新的區塊。
如上文所述,當在一對應時間點來自該主機裝置之寫入量為1且在資料儲存裝置300中欲處理之壓縮之寫入量為N(N係等於或大於0之一整數)時,區塊使用資訊控制單元326將一個未使用區塊分配給寫入指示單元350且將N個未使用區塊分配給壓縮單元370。此係為保證在一對應時間點所需之壓縮量且盡可能地避免該程序甚至在一個日誌結構化指標到達所分配區塊之末尾處時被暫停直至另一日誌結構化指標到達所分配區塊之末尾處為止,如圖23或24中所示。
如圖25中所示,若兩個日誌結構化指標都到達所分配區塊之末尾處,則區塊使用資訊控制單元326將新的區塊分配給寫入指示單元350及壓縮單元370且重新開始寫入指示單元350及壓縮單元370之暫停之程序且狀態變成圖21中所示之一狀態。下文中,自分配該區塊至分配下一區塊所需之時間稱為一「期限」。
在其中來自該主機裝置之存取型樣中存在位址局部性之情況下,當在一對應時間點來自該主機裝置之寫入量為1時,在資料儲存裝置300中欲處理之壓縮量可明顯降低。然而,在此情況下,在上文所述區塊分配規則中,如圖26中所示,適當切換其中分配用於壓縮之一個日誌結構化區塊之期限(期限2及6)及其中未分配用於壓縮之日誌結構化區塊之期限(期限1、3、4、5)。
返回參考圖19,區塊使用資訊控制單元326通知日誌儲存單元284關於所分配(N+1)個區塊之區塊分配資訊。在分配資訊之次序中,分配給壓縮單元370之一區塊在時間上在分配給寫入指示單元350之一區塊之前。當將複數個區塊分配給壓縮單元370時,分配資訊之次序變成壓縮單元370使用之該等區塊之次序。舉例而言,在其中如圖21至25所示分配區塊之情況下的分配資訊之次序變成區塊A、區塊B、區塊C及區塊D之次序。在其中如圖26中所示分配區塊之情況下的分配資訊之次序變成期限1中之區塊A。期限2中之區塊B及區塊C、期限3中之區塊D、期限4中之區塊E、期限5中之區塊F及期限6中之區塊G及區塊H之次序。區塊使用資訊控制單元326請求日誌儲存單元284提交通知給日誌儲存單元284之資訊。
寫入指示單元350向緩衝控制單元207發佈對應於管理大小之所儲存資料之一擷取請求,將所擷取資料及所獲取主機寫入日誌結構化指標對應之實體位址區塊資訊發射至半導體儲存媒體控制單元203,且請求半導體儲存媒體控制單元203將該所擷取資料寫入所獲取主機寫入日誌結構化指標對應之該實體位址區域中。當所獲取主機寫入日誌結構化指標指示區塊之一首頁時,寫入指示單元350在請求半導體儲存媒體控制單元203寫入資料之前請求半導體儲存媒體控制單元203執行一區塊擦除程序。然而,該區塊擦除程序之執行時間並不限於此。舉例而言,該執行時間可係當新分配用於主機寫入之一區塊時之時間、當將一區塊收集為一未使用區塊時之時間或在將該區塊收集為該未使用區塊之後直至寫入指示單元350請求半導體儲存媒體控制單元203寫入資料為止之一時間週期期間的任意時間。
在半導體儲存媒體205之頁中,除用以記錄使用者資料之一區域外通常提供一冗餘區域。舉例而言,該冗餘區域用來記錄關於該使用者資料之一錯誤校正碼之資料。在其中降低日誌記錄計數之該第三實施例中,將該錯誤校正碼之資料及對應頁之反向查找邏輯位址記錄在該冗餘區域中以降低日誌記錄計數。亦即,如圖27中所示,關於記錄在該頁中之資料,將該使用者資料記錄在用以記錄使用者資料之區域中且將對應頁之反向查找邏輯位址及錯誤校正碼之資料記錄在冗餘區域中。所記錄反向查找邏輯位址係包含一寫入命令之一區域之一管理大小區域之一頭部之一邏輯位址(在圖11中所示之該實例中為邏輯位址0)。
寫入指示單元350在該轉換表之排他控制期間更新該轉換表以指示新寫入之資料。具體而言,寫入指示單元350詢問轉換表控制單元221在接收該寫入命令之前對應於包含該寫入命令之區域之該管理大小區域之頭部之一邏輯位址(在圖11中所示之該實例中為邏輯位址0)之一實體位址(更新前實體位址)。寫入指示單元350請求轉換表控制單元致使所獲取更新前實體位址對應之一有效頁旗標變成OFF。寫入指示單元350請求轉換表控制單元221遞減所獲取更新前實體位址對應之一區塊之一有效頁計數器。寫入指示單元350請求轉換表控制單元221致使所獲取主機寫入日誌結構化指標對應之一有效頁旗標變成ON。寫入指示單元350請求轉換表控制單元221遞增所獲取主機寫入日誌結構化指標對應之一區塊之一有效頁計數器。寫入指示單元350請求轉換表控制單元221更新反向查找表之包含該寫入命令之區域之該管理大小區域之頭部之邏輯位址(在圖11中所示之該實例中為邏輯位址0)以指示該主機寫入日誌結構化指標對應之實體位址區域之資訊。
根據該第三實施例之寫入指示單元350不通知日誌儲存單元284該轉換表之更新資訊,此與根據該第二實施例之寫入指示單元250相反。此係由於該轉換表之更新資訊可在下文欲闡述之恢復管理資訊時基於記錄在該頁中之反向查找邏輯位址來恢復。在根據該第二實施例之寫入指示單元250中,每當寫入一個頁之使用者資料時皆記錄該轉換表之更新資訊之日誌。然而,在根據該第三實施例之寫入指示單元350中,每當寫入一個頁之使用者資料時不需要記錄更新資訊之日誌,且可極大地降低日誌記錄計數。
寫入指示單元350請求主機寫入日誌結構化指標控制單元232更新該主機寫入日誌結構化指標以指示下一頁。寫入指示單元350詢問主機寫入日誌結構化指標控制單元232經更新主機寫入日誌結構化指標是否在區塊之最後一個頁上。若寫入指示單元350接收到指示經更新主機寫入日誌結構化指標在區塊之最後一個頁上之一回復,則寫入指示單元350通知日誌儲存單元284對應區塊之添加完成資訊且請求日誌儲存單元284提交所通知資訊。為降低下文欲闡述之一恢復處理時間,可儲存在分配一區塊之後直至完成添加為止時添加於該區塊中之所有頁之反向查找邏輯位址,且添加於對應區塊中之該等頁之反向查找邏輯位址可包含於該對應區塊之添加寫入結束日誌中。
若寫入指示單元350接收到指示經更新主機寫入日誌結構化指標在區塊之最後一個頁上之一回復,則寫入指示單元350請求區塊使用資訊控制單元326執行一未使用區塊之一分配程序。因此,更新該區塊使用資訊。寫入指示單元350請求主機寫入日誌結構化指標控制單元232更新主機寫入日誌結構化指標以指示一新分配區塊之一頭部之一頁。
根據該第三實施例之寫入指示單元350不通知日誌儲存單元284該主機寫入日誌結構化指標之更新資訊,此與根據該第二實施例之寫入指示單元250相反。由根據該第二實施例之寫入指示單元250通知的區塊使用資訊之更新資訊在第三實施例中由區塊使用資訊控制單元326通知。此係由於當可在下文欲闡述之恢復管理資訊時基於記錄在該頁中之反向查找邏輯位址恢復該轉換表時,可恢復該主機寫入日誌結構化指標。在根據該第二實施例之寫入指示單元250中,每當寫入一個頁之使用者資料時皆記錄該主機寫入日誌結構化指標之更新資訊之日誌。然而,在根據該第三實施例之寫入指示單元350中,每當寫入一個頁之使用者資料時不需要記錄更新資訊之日誌,且可極大地降低日誌記錄計數。
壓縮單元370詢問轉換表控制單元221所獲取區塊當中適於一壓縮物件之區塊,且獲取適於壓縮物件之該區塊之區塊編號及對應區塊之一有效頁旗標及一有效頁計數器。適於壓縮物件之該區塊係其中有效頁計數器之一值係最小之一區塊。在此情況下,當選擇其中該有效頁計數器之值為0之區塊為該壓縮物件時,壓縮單元370請求區塊使用資訊控制單元326將對應區塊登記為一未使用區塊。因此,將該對應區塊收集為該未使用區塊。當將該對應區塊收集為該未使用區塊時,壓縮單元370通知日誌儲存單元284經更新區塊使用資訊之更新資訊。此外,壓縮單元370請求日誌儲存單元284提交通知給日誌儲存單元284之資訊。
壓縮單元370向半導體儲存媒體控制單元203發佈所獲取壓縮物件區塊編號及有效頁旗標資訊對應之一實體位址區域(複製源頁)之一讀取請求。若壓縮單元370接收到該所讀取資料,則壓縮單元370向緩衝控制單元207發佈所接收資料之一儲存請求。在所接收資料中,如圖27中所示,使用者資料記錄在用以記錄使用者資料之區域中,且對應頁之反向查找邏輯位址及錯誤校正碼之資料記錄在冗餘區域中。壓縮單元370擷取記錄在所讀取資料之冗餘區域中之反向查找邏輯位址且暫時儲存該反向查找邏輯位址。
壓縮單元370向緩衝控制單元207發佈所儲存資料之一擷取請求,將該所擷取資料及所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊發射至半導體儲存媒體控制單元203且請求半導體儲存媒體控制單元203將所擷取資料寫入所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)中。當所獲取壓縮日誌結構化指標指示區塊之一首頁時,壓縮單元370在請求半導體儲存媒體控制單元203寫入資料之前請求半導體儲存媒體控制單元203執行一區塊擦除程序。然而,執行該區塊擦除程序之時間並不限於此。舉例而言,該時間可係當新分配用於壓縮之一區塊時之時間、當將一區塊收集為一未使用區塊時之時間或在將該區塊收集為該未使用區塊之後直至壓縮單元370請求半導體儲存媒體控制單元203寫入資料為止之一時間週期期間之任意時間。
由於儲存於該頁中之資料係儲存於緩衝儲存單元209中之資料,因此如圖27中所示,使用者資料記錄在用以記錄使用者資料之區域中且對應頁之反向查找邏輯位址及錯誤校正碼之資料記錄在冗餘區域中。僅在將資料寫入頁中時才新寫入反向查找表、此後不更新該反向查找表且僅在壓縮時參考該反向查找表。因此,當根據來自該主機裝置之寫入請求將資料寫入頁中時可同時寫入反向查找表,且當讀取被壓縮資料時可同時讀取該反向查找表。因此,未額外引起一懲罰。
壓縮單元370在該轉換表之排他控制期間更新該轉換表以指示一壓縮目的地之資料。然而,如上文所述,當與正被複製之資料對應之一邏輯位址區域相同之邏輯位址區域之一寫入程序在該資料之該複製程序期間由寫入指示單元350完成時,壓縮單元370不應更新該轉換表。
具體而言,壓縮單元370向轉換表控制單元221發佈使用暫時儲存之反向查找邏輯位址資訊的正向查找表之一參考請求且獲取對應於該暫時儲存之反向查找邏輯位址資訊之一實體位址。壓縮單元370確定對應於該暫時儲存之反向查找邏輯位址資訊之實體位址及所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)是否彼此匹配。當確定該實體位址與該實體位址區域彼此不匹配時,此意指與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之該複製程序期間由寫入指示單元350完成。出於此原因,壓縮單元370在該轉換表之排他控制期間結束該程序且不更新該轉換表。當確定該實體位址與該實體位址區域彼此匹配時,此意指與正被複製之資料對應之邏輯位址區域相同之邏輯位址區域之寫入程序在該資料之該複製程序期間未由寫入指示單元350執行或執行了但未完成。出於此原因,壓縮單元370更新該轉換表。
具體而言,壓縮單元370請求轉換表控制單元221致使所獲取壓縮物件區塊編號及有效頁旗標資訊對應之一實體位址區域(複製源頁)之一有效頁旗標變成OFF。壓縮單元370請求轉換表控制單元221遞減對應於所獲取壓縮物件區塊編號之一區塊之一有效頁計數器。壓縮單元370請求轉換表控制單元221致使所獲取壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之一對應有效頁旗標變成ON。壓縮單元370請求轉換表控制單元221遞增所獲取壓縮日誌結構化指標對應之一區塊之一有效頁計數器。壓縮單元370請求轉換表控制單元221更新正向查找表之由所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址所指示之一條目以指示壓縮日誌結構化指標對應之實體位址區域(複製目的地頁)之資訊。
根據該第三實施例之壓縮單元370不通知日誌儲存單元284該轉換表之更新資訊,此與根據該第二實施例之壓縮單元270形成對比。此係由於該轉換表之更新資訊可在下文欲闡述之恢復管理資訊時基於記錄在該頁中之反向查找邏輯位址來恢復。在根據該第二實施例之壓縮單元270中,每當寫入一個頁之使用者資料時皆記錄該轉換表之更新資訊之日誌。然而,在根據該第三實施例之壓縮單元370中,每當寫入一個頁之使用者資料時不需要記錄更新資訊之日誌,且可極大地降低日誌記錄計數。
若所獲取壓縮物件區塊之有效頁計數器之值為0,則壓縮單元370請求區塊使用資訊控制單元326將對應區塊登記為一未使用區塊。因此,將該對應區塊收集為該未使用區塊。當將該對應區塊收集為該未使用區塊時,壓縮單元370通知日誌儲存單元284經更新區塊使用資訊之更新資訊,且請求日誌儲存單元284提交通知給日誌儲存單元284之資訊。
壓縮單元370請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示下一頁。壓縮單元370詢問壓縮日誌結構化指標控制單元242經更新壓縮日誌結構化指標是否在區塊之最後一個頁上。若壓縮單元370接收到指示經更新壓縮日誌結構化指標在區塊之最後一個頁上之一回復,則壓縮單元370通知日誌儲存單元284該對應區塊之添加完成資訊且請求日誌儲存單元284提交通知給日誌儲存單元284之資訊。為降低下文欲闡述之一恢復處理時間,可儲存在分配一區塊之後直至完成添加寫入為止時添加於該區塊中之所有頁之反向查找邏輯位址,且添加於該對應區塊中之該等頁之反向查找邏輯位址可包含於該對應區塊之添加寫入結束日誌中。
若壓縮單元370接收到指示經更新壓縮日誌結構化指標在區塊之最後一個頁上之一回復,則壓縮單元370請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示自區塊使用資訊控制單元326分配之下一區塊之一頭部之一頁。
當壓縮單元370接收到指示經更新壓縮日誌結構化指標在區塊之最後一個頁上之一回復且使用自區塊使用資訊控制單元326分配之所有區塊時,壓縮單元370請求區塊使用資訊控制單元326執行一未使用區塊之一分配程序。因此,更新該區塊使用資訊。壓縮單元370請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標以指示一新分配區塊之一頭部之一頁。
根據該第三實施例之壓縮單元370不通知日誌儲存單元284壓縮日誌結構化指標之更新資訊,此與根據該第二實施例之壓縮單元270相反。由壓縮單元270通知的該區塊使用資訊之更新資訊在該第三實施例中由區塊使用資訊控制單元326通知。此係由於壓縮日誌結構化指標可在當可在下文欲闡述之恢復管理資訊時基於記錄在該頁中之反向查找邏輯位址恢復該轉換表之更新資訊時恢復。在根據該第二實施例之壓縮單元270中,每當寫入一個頁之使用者資料時皆記錄壓縮日誌結構化指標之更新資訊之日誌。然而,在根據該第三實施例之壓縮單元370中,每當寫入一個頁之使用者資料時不需要記錄更新資訊之日誌,且可極大地降低日誌記錄計數。
若日誌恢復單元394自管理資訊恢復單元290接收自在儲存最新快照之後所儲存之日誌的管理資訊之一恢復請求,則日誌恢復單元394向半導體儲存媒體控制單元203發佈在儲存最新快照之後所儲存之日誌之一擷取請求,且接收在儲存最新快照之後所儲存之日誌。
在該日誌中,記錄新分配區塊之資訊、區塊之添加完成資訊及收集為未使用區塊之區塊之資訊中之任一者。在此情況下,在新分配區塊之資訊中,用於壓縮添加之一個或多個區塊之資訊係按照壓縮單元370使用該等區塊之次序配置,且後跟由寫入指示單元350所使用之用於主機添加之區塊之資訊。只要未完成在某一期限中所分配之所有區塊之添加,該期限便不繼續進行至下一期限。因此,藉由按照記錄次序追蹤日誌,確認在其中記錄在某一期限中所分配之所有區塊之添加完成資訊之一狀態中記錄下一期限之區塊分配之一日誌且調查該日誌之有效性。
關於所分配區塊之資訊,日誌恢復單元394順序地擷取區塊編號。關於所擷取區塊編號之區塊,日誌恢復單元394自一頭部之一頁順序地向半導體儲存媒體控制單元203發佈一頁之一讀取請求。日誌恢復單元394自半導體儲存媒體控制單元203接收所讀取頁之資料且自所接收資料擷取反向查找邏輯位址資訊。
日誌恢復單元394基於所擷取反向查找邏輯位址資訊致使該轉換表之所擷取反向查找邏輯位址之條目指示該所讀取頁。具體而言,日誌恢復單元394詢問轉換表控制單元221在讀取該頁之前對應於所擷取反向查找邏輯位址之一實體位址(更新前實體位址)。日誌恢復單元394請求轉換表控制單元221致使所獲取更新前實體位址對應之一有效頁旗標變成OFF。日誌恢復單元394請求轉換表控制單元221遞減所獲取更新前實體位址對應之一區塊之一有效頁計數器。日誌恢復單元394請求轉換表控制單元221致使所讀取頁對應之一有效頁旗標變成ON。日誌恢復單元394請求轉換表控制單元221遞增所讀取頁對應之一區塊之一有效頁計數器。日誌恢復單元394請求轉換表控制單元221更新正向查找表之所擷取反向查找邏輯位址以指示所讀取頁對應之實體位址區域資訊。
關於其中未完成添加之區塊,在上文程序期間讀取一未經記錄之頁。考量以下一情況:經擦除頁之包含圖27中所示之冗餘區塊之資料的資料之所有位元具有一值(例如)1。舉例而言,若確定所有位元之值是否變成1,則可辨識所讀取頁為一未經記錄頁。此時,當其中未完成添加之區塊為分配用於主機添加之區塊時,日誌恢復單元394請求主機寫入日誌結構化指標控制單元232更新主機寫入日誌結構化指標以指示未經記錄頁。同時,當其中未完成添加之區塊為分配用於壓縮添加之區塊時,日誌恢復單元394請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標。
在此情況下,在相同期限中,甚至當在相同邏輯位址中產生主機寫入及壓縮時,首先在管理資訊上反映根據該壓縮寫入之改變,然而反映根據該主機寫入之改變。最後,一系列管理資訊指示該頁經受該主機寫入。藉此,保證該管理資訊之一致性。
當儲存在分配該區塊之後直至完成添加為止時添加於該區塊中之所有頁之反向查找邏輯位址且添加於對應區塊中之該等頁之反向查找邏輯位址包含於對應區塊之添加完成日誌中時,可僅藉由觀看添加完成日誌來辨識添加於對應區塊中之所有頁之反向查找邏輯位址。藉此,可極大地降低自半導體儲存媒體205之讀取程序之量,且僅關於其中執行最後添加之區塊,可自頭部順序地讀取該等頁。
若收集為未使用區塊之區塊之資訊記錄在該日誌中,則日誌恢復單元394請求區塊使用資訊控制單元326將對應區塊之使用狀態改變為未使用狀態。
接下來,將闡述根據該第三實施例之該資料儲存裝置之操作。由於讀取程序及快照記錄程序與該第二實施例之彼等程序相同,因此將不重複對其說明。
首先,將參考圖28闡述由資料儲存裝置300根據來自該主機裝置之一寫入命令執行之一寫入程序之一序列。圖28係顯示由資料儲存裝置300執行之該寫入程序之一序列之一流程之一實例的一流程圖。
由於步驟S101至S107之程序與圖13之步驟S1至S7之彼等程序相同,因此將不重複說明。
由於步驟S108之一程序亦與圖13之步驟S8之彼程序相同,因此將不重複說明。然而,如圖27中所示,在該頁中,使用者資料記錄在用以記錄使用者資料之區域中且對應頁之反向查找邏輯位址及錯誤校正碼之資料記錄在冗餘區域中。出於此原因,在該第三實施例中,如圖13之步驟S9中所示,已寫入頁之反向查找邏輯位址不需要單獨登記,且該反向查找邏輯位址不需要記錄在該日誌中。
由於步驟S110至S115之程序與圖13之步驟S10至S15之彼等程序相同,因此將不重複說明。
由於步驟S116之一程序與圖13之步驟S16之彼程序相同,因此將不重複說明。然而,在步驟S116中,不將該轉換表之更新資訊通知給日誌儲存單元284。此係由於該轉換表之更新資訊可在下文欲闡述之恢復管理資訊時基於記錄在該頁中之反向查找邏輯位址來恢復。藉此,在圖13之步驟S12至S16中,每當寫入一個頁之使用者資料時皆記錄該轉換表之更新資訊之日誌。然而,在圖28之步驟S112至S116中,每當寫入一個頁之使用者資料時不需要記錄該更新資訊之日誌,且可極大地降低日誌記錄計數。
由於步驟S117之一程序與圖13之步驟S17之彼程序相同,因此將不重複說明。
由於步驟S118之一程序幾乎與圖13之步驟S18之彼程序相同,因此將不重複說明。然而,在步驟S118中,不將經更新主機寫入日誌結構化指標之更新資訊通知給日誌儲存單元284。此係由於主機寫入日誌結構化指標之更新資訊可在下文欲闡述之恢復管理資訊時恢復。藉此,在圖13之步驟S18中,每當寫入一個頁之使用者資料時皆記錄主機寫入日誌結構化指標之更新資訊之日誌。然而,在圖28之步驟S118中,每當寫入一個頁之使用者資料時不需要記錄更新資訊之日誌,且可極大地降低日誌記錄計數。
由於步驟S119之一程序與圖13之步驟S19之彼程序相同,因此將不重複說明。
在步驟S119.5中,寫入指示單元350通知日誌儲存單元284對應區塊之添加完成資訊且請求日誌儲存單元284提交所通知資訊。為降低下文欲闡述之一恢復處理時間,可儲存在分配一區塊之後直至完成添加為止時添加於該區塊中之所有頁之反向查找邏輯位址,且可將添加於對應區塊中之該等頁之反向查找邏輯位址包含於該對應區塊之添加結束日誌中。日誌儲存單元284自寫入指示單元350接收提交通知,且請求半導體儲存媒體控制單元203儲存暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置300供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。寫入指示單元350請求區塊使用資訊控制單元326執行一未使用區塊之一分配程序。若區塊使用資訊控制單元326自寫入指示單元350接收一未使用區塊之一分配請求,則區塊使用資訊控制單元326暫停寫入指示單元350之一程序,直至自壓縮單元370接收到未使用區塊之分配請求為止。
在步驟S120中,若區塊使用資訊控制單元326自寫入指示單元350及壓縮單元370兩者完全接收一未使用區塊之一分配請求,且在一對應時間點來自該主機裝置之寫入量為1且資料儲存裝置300中欲處理之壓縮之寫入量為N(N為等於或大於0之一整數),則區塊使用資訊控制單元326將一個未使用區塊分配給寫入指示單元350且將N個未使用區塊分配給壓縮單元370。區塊使用資訊控制單元326可自由區塊使用資訊儲存單元228所儲存之區塊使用資訊中所包含之已使用區塊之數目之資訊或未使用區塊之數目之資訊確定N之一值。若當在一對應時間點來自該主機裝置之寫入量為1時將N之值設定為大於在資料儲存裝置300中欲處理之壓縮之寫入量,則當來自該主機裝置之寫入請求之一負載不大時,區塊使用資訊控制單元326首先執行該壓縮程序且降低未來欲執行之一壓縮程序之量,藉此改良當來自該主機裝置之寫入請求之負載在未來增加時之回應性。區塊使用資訊控制單元326根據所分配內容更新由區塊使用資訊儲存單元228所儲存之區塊使用資訊。區塊使用資訊控制單元326重新開始寫入指示單元350之暫停之程序。區塊使用資訊控制單元326通知日誌儲存單元284關於所分配(N+1)個區塊之區塊分配資訊。在分配資訊之次序中,分配給壓縮單元370之一區塊在時間上在分配給寫入指示單元350之一區塊之前。當將複數個區塊分配給壓縮單元370時,該分配資訊之次序變成壓縮單元370使用之該等區塊之次序。舉例而言,在其中如圖21至25中所示分配區塊之情況下的分配資訊之次序變成區塊A、區塊B、區塊C及區塊D之次序。在如圖26中所示分配區塊之情況下的分配資訊之次序變成期限1中之區塊A、期限2中之區塊B及區塊C、期限3中之區塊D、期限4中之區塊E、期限5中之區塊F及期限6中之區塊G及區塊H之次序。區塊使用資訊控制單元326請求日誌儲存單元284提交通知給日誌儲存單元284之資訊。日誌儲存單元284自區塊使用資訊控制單元326接收提交通知且請求半導體儲存媒體控制單元203儲存暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置300供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。寫入指示單元350請求主機寫入日誌結構化指標控制單元232更新主機寫入日誌結構化指標以指示一新分配區塊之一頭部之一頁。主機寫入日誌結構化指標控制單元232更新由主機寫入日誌結構化指標儲存單元230所儲存之該主機寫入日誌結構化指標以指示一新分配區塊之一頭部之一頁。
如上文所述,在圖28中,藉由區塊分配事件記錄日誌。然而,由於區塊分配事件與壓縮程序中之區塊分配程序在相同時間,因此不能如圖13之步驟S21中所示在結束時執行日誌提交程序,因此需要按需要提交日誌。
由於步驟S122之一程序與圖13之步驟S22之彼程序相同,因此將不重複說明。
接下來,將參考圖29闡述由資料儲存裝置300執行之一壓縮程序之一序列。圖29係顯示由資料儲存裝置300執行之該壓縮程序之一序列之一流程之一實例的一流程圖。資料儲存裝置300在當需要該壓縮程序時之時間或任意時間執行該壓縮程序。需要該壓縮程序之時間可藉由確定記錄在區塊使用資訊中之未使用區塊之數目是否小於預定臨限值來確定。
首先,由於步驟S141及S142之程序與圖15之步驟S41及S42之彼等程序相同,因此將不重複說明。
由於步驟S143之一程序幾乎與圖15之步驟S43之彼程序相同,因此將不重複說明。然而,執行以下程序。壓縮單元370請求日誌儲存單元284提交經更新區塊使用資訊。日誌儲存單元284自壓縮單元370接收提交通知,且請求半導體儲存媒體控制單元203儲存暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置300供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
由於步驟S144至S146之程序與圖15之步驟S44至S46之彼等程序相同,因此將不重複說明。關於步驟S146中之所讀取資料,如圖27中所示,使用者資料記錄在用以記錄使用者資料之區域中,且對應頁之反向查找邏輯位址及錯誤校正碼之資料記錄在冗餘區域中。
在步驟S147中,壓縮單元370擷取記錄在所讀取資料之冗餘區域中之反向查找邏輯位址且暫時儲存該反向查找邏輯位址。
由於步驟S148之一程序幾乎與圖15之步驟S48之彼程序相同,因此將不重複說明。然而,如圖27中所示,在該頁中,使用者資料記錄在用以記錄使用者資料之區域中且對應頁之反向查找邏輯位址及錯誤校正碼之資料記錄在冗餘區域中。出於此原因,在該第三實施例中,如圖15之步驟S49中所示,不需要單獨登記已寫入頁之反向查找邏輯位址且不需要將反向查找邏輯位址記錄在該日誌中。如上文所述,僅在將資料寫入頁中時才新寫入反向查找表、此後不更新該反向查找表且僅在壓縮時參考該反向查找表。因此,當根據來自該主機裝置之寫入請求將資料寫入該頁中時可同時寫入該反向查找表且當讀取欲壓縮之資料時可同時讀取該反向查找表。因此,未額外引起一懲罰。
由於步驟S150至S158之程序幾乎與圖15之步驟S50至S58之彼等程序相同,因此將不重複說明。圖15之步驟S50至S58中之「所獲取壓縮物件區塊編號及有效頁旗標資訊對應之實體位址區域(複製源頁)之對應反向查找邏輯位址」對應於圖29之步驟S150至S158中之所擷取反向查找邏輯位址。
由於步驟S159之一程序幾乎與圖15之步驟S59之彼程序相同,因此將不重複說明。在圖29之步驟S159中,不將該轉換表之更新資訊通知給日誌儲存單元284,此與圖15之步驟S59相反。此係由於該轉換表之更新資訊可在下文欲闡述之恢復管理資訊時基於該頁中所記錄之反向查找邏輯位址來恢復。藉此,在圖15之步驟S53至S59中,每當寫入一個頁之使用者資料時皆記錄該轉換表之更新資訊之日誌。然而,在圖29之步驟S153至S159中,每當寫入一個頁之使用者資料時不需要記錄該更新資訊之日誌,且可極大地降低日誌記錄計數。當壓縮物件區塊之有效頁計數器之值變成0且將該對應區塊收集為未使用區塊時,壓縮單元370通知日誌儲存單元284經更新區塊使用資訊之更新資訊且請求日誌儲存單元284提交通知給日誌儲存單元284之該資訊。日誌儲存單元284自壓縮單元370接收提交通知且請求半導體儲存媒體控制單元203儲存該暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置300供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
由於步驟S160之一程序與圖15之步驟S60之彼程序相同,因此將不重複說明。
由於步驟S161之一程序幾乎與圖15之步驟S61之彼程序相同,因此將不重複說明。在圖29之步驟S161中,不將經更新壓縮日誌結構化指標之更新資訊通知給日誌儲存單元284,此與圖15之步驟S61相反。此係由於該壓縮日誌結構化指標之更新資訊可在下文欲闡述之恢復管理資訊時恢復。藉此,在圖15之步驟S61中,每當執行一個頁之壓縮時皆記錄該壓縮日誌結構化指標之更新資訊之日誌。然而,在圖29之步驟S161中,每當執行一個頁之壓縮時不需要記錄該更新資訊之日誌,且可極大地降低日誌記錄計數。由於步驟S162之一程序與圖15之步驟S62之彼程序相同,因此將不重複說明。
在步驟S162.1中,壓縮單元370通知日誌儲存單元284對應區塊之添加完成資訊且請求日誌儲存單元284提交所通知資訊。為降低下文欲闡述之一恢復處理時間,可儲存在分配一區塊之後直至完成添加為止時添加於該區塊中之所有頁之反向查找邏輯位址,且可將添加於對應區塊中之該等頁之反向查找邏輯位址包含於該對應區塊之添加結束日誌中。日誌儲存單元284自壓縮單元370接收提交通知,且請求半導體儲存媒體控制單元203儲存暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置300供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
在步驟S162.2中,壓縮單元370調查是否使用自區塊使用資訊控制單元326分配之所有該等區塊。當使用所有該等區塊時,該程序繼續進行至步驟S162.3。同時,當未使用所有該等區塊時,該程序繼續進行至步驟S162.5。
在步驟S162.3中,壓縮單元370請求區塊使用資訊控制單元326執行一未使用區塊之一分配程序。若區塊使用資訊控制單元326自壓縮單元370接收一未使用區塊之一分配請求,則區塊使用資訊控制單元326暫停壓縮單元370之一程序,直至自寫入指示單元350完全接收未使用區塊之分配請求為止。
在步驟S162.4中,若區塊使用資訊控制單元326自寫入指示單元350及壓縮單元370兩者完全接收一未使用區塊之一分配請求,且在一對應時間點來自該主機裝置之寫入量為1且資料儲存裝置300中欲處理之壓縮之寫入量為N(N為等於或大於0之一整數),則區塊使用資訊控制單元326將一個未使用區塊分配給寫入指示單元350且將N個未使用區塊分配給壓縮單元370。區塊使用資訊控制單元326可自由區塊使用資訊儲存單元228所儲存之區塊使用資訊中所包含之已使用區塊之數目之資訊或未使用區塊之數目之資訊確定N之一值。若將N之值設定為大於在資料儲存裝置300中欲處理之壓縮之寫入量且在一對應時間點來自該主機裝置之寫入量為1,則當來自該主機裝置之該寫入請求之一負載不大時,區塊使用資訊控制單元326首先執行該壓縮程序且降低在未來執行一壓縮程序之量,藉此改良在當來自該主機裝置之該寫入請求之負載在未來增加時之時間的回應性。區塊使用資訊控制單元326根據經更新內容更新由區塊使用資訊儲存單元228所儲存之區塊使用資訊。區塊使用資訊控制單元326重新開始壓縮單元370之暫停之程序。區塊使用資訊控制單元326通知日誌儲存單元284關於所分配(N+1)個區塊之區塊分配資訊。在分配資訊之次序中,分配給壓縮單元370之一區塊在時間上在分配給寫入指示單元350之一區塊之前。當將複數個區塊分配給壓縮單元370時,該分配資訊之次序變成壓縮單元370使用之該等區塊之次序。舉例而言,在如圖21至25中所示分配區塊之情況下的分配資訊之次序可變成區塊A、區塊B、區塊C及區塊D之次序。在如圖26中所示分配區塊之情況下的分配資訊之次序變成期限1中之區塊A、期限2中之區塊B及區塊C、期限3中之區塊D、期限4中之區塊E、期限5中之區塊F及期限6中之區塊G及區塊H之次序。區塊使用資訊控制單元326請求日誌儲存單元284提交通知給日誌儲存單元284之該資訊。日誌儲存單元284自區塊使用資訊控制單元326接收提交通知且請求半導體儲存媒體控制單元203儲存暫時儲存之更新資訊。半導體儲存媒體控制單元203將該暫時儲存之更新資訊記錄為一日誌。若先前不能辨識半導體儲存媒體205之在彼處記錄該日誌之實體位址,則當給資料儲存裝置300供應電力時不能恢復該管理資訊。出於此原因,使半導體儲存媒體205之在彼處記錄該日誌之該實體位址指示半導體儲存媒體205之一預定區域或可自半導體儲存媒體205之該預定區域中所記錄之資訊追蹤之一區域。
如上文所述,在圖29中,藉由區塊分配事件記錄日誌。然而,由於區塊分配事件與寫入程序中之區塊分配程序在相同時間,因此不能如圖15之步驟S64中所示在結束時執行日誌提交程序,因此需要按需要提交日誌。
在步驟S162.5中,壓縮單元370請求壓縮日誌結構化指標控制單元242更新該壓縮日誌結構化指標以指示自區塊使用資訊控制單元326分配之下一區塊之一頭部之一頁或新分配區塊之一第一區塊之一頭部之一頁。壓縮日誌結構化指標控制單元242更新由該壓縮日誌結構化指標儲存單元所儲存之該壓縮日誌結構化指標以指示一所指定區塊之一所指定頁。
由於步驟S165之一程序與圖15之步驟S65之彼程序相同,因此將不重複說明。
接下來,將參考圖30闡述由資料儲存裝置300執行之一管理資訊恢復程序之一序列。圖30係顯示由資料儲存裝置300執行之該管理資訊恢復程序之該序列之一流程之一實例的一流程圖。當給資料儲存裝置300供應電力時,資料儲存裝置300恢復該管理資訊。資料儲存裝置300可在需要恢復該管理資訊時(甚至在不同於當給資料儲存裝置300供應電力時之情況下)之一時間恢復該管理資訊。舉例而言,當偵測到儲存於DRAM 54中之管理資訊之資料破壞時,資料儲存單元300可執行該管理資訊恢復程序。
首先,由於步驟S181至S184之程序幾乎與圖17之步驟S81至S84之彼等程序相同,因此將不重複說明。然而,步驟S183之一日誌之類型包含指示將區塊收集為未使用區塊之空閒區塊收集資訊、指示完成區塊之添加之區塊添加完成資訊及指示區塊之分配之區塊分配資訊。步驟S183之一程序對應於圖17之更新根據該日誌資訊恢復之該管理資訊之步驟S83之程序且顯示根據每一日誌類型之一程序。在此情況下,在新分配區塊之資訊中,用於壓縮添加之一個或多個區塊之資訊按照壓縮單元370使用該等區塊之次序配置,且配置由寫入指示單元350使用之用於主機添加之區塊之資訊。因此,關於每一所分配區塊編號重複執行基於該區塊之分配日誌之恢復程序。
下文中,將闡述根據每一日誌之類型之程序。
首先,將參考圖31闡述當每一日誌之類型係區塊分配資訊時之恢復程序之一流程之一序列。圖31係顯示當每一日誌之類型係區塊分配資訊時之恢復程序之一序列之一流程之一實例的一流程圖。
在步驟S201中,關於該日誌中所記錄之區塊編號之區塊,日誌恢復單元394自一頭部之一頁順序地向半導體儲存媒體控制單元203發佈一頁之一讀取請求。亦即,重複執行以下程序。半導體儲存媒體控制單元203讀取半導體儲存媒體205之所指定實體位址之資料且提供該資料。日誌恢復單元394自半導體儲存媒體控制單元203接收所讀取頁之資料。
在步驟S202中,日誌恢復單元394確定所讀取頁是否為未經記錄頁。具體而言,由於經擦除頁之包含圖27中所示之冗餘區域之資料的資料之所有位元具有一值1,因此若確定所有該等位元之值是否變成1,則可辨識所讀取頁為一未經記錄頁。當所讀取頁為未經記錄頁時,該程序繼續進行至步驟S203。同時,當所讀取頁不為未經記錄頁(亦即為已記錄頁)時,則該程序繼續進行至步驟S204。
在步驟S203中,當對應區塊係用於主機寫入之日誌結構化區塊時,日誌恢復單元394請求主機寫入日誌結構化指標控制單元232更新主機寫入日誌結構化指標以指示該未經記錄頁。同樣地,當對應區塊為分配用於壓縮添加之區塊時,日誌恢復單元394請求壓縮日誌結構化指標控制單元242更新壓縮日誌結構化指標。主機寫入日誌結構化指標控制單元232自日誌恢復單元394接收主機寫入日誌結構化指標更新請求且更新由主機寫入日誌結構化指標儲存單元230所儲存之該主機寫入日誌結構化指標。壓縮日誌結構化指標控制單元242自日誌恢復單元394接收壓縮日誌結構化指標更新請求且更新由壓縮日誌結構化指標儲存單元240所儲存之壓縮日誌結構化指標。
在步驟S204中,日誌恢復單元394自所讀取資料擷取反向查找邏輯位址資訊。
在步驟S205至S209中,日誌恢復單元394基於所擷取反向查找邏輯位址資訊致使該轉換表之所擷取反向查找邏輯位址資訊之條目指示所讀取頁。具體而言,日誌恢復單元394詢問轉換表控制單元221在讀取該頁之前對應於所擷取反向查找邏輯位址之一實體位址(更新前實體位址)。轉換表控制單元221參考由轉換表儲存單元223所儲存之該轉換表且提供在讀取該頁之前對應於所擷取反向查找邏輯位址之該實體位址(更新前實體位址)。日誌恢復單元394獲取在讀取該頁之前對應於所擷取反向查找邏輯位址之該實體位址(更新前實體位址)。日誌恢復單元394請求轉換表控制單元221致使所獲取更新前實體位址對應之一有效頁旗標變成OFF。日誌恢復單元394請求轉換表控制單元221遞減所獲取更新前實體位址對應之一區塊之一有效頁計數器。日誌恢復單元394請求轉換表控制單元221致使所讀取頁對應之一有效頁旗標變成ON。日誌恢復單元394請求轉換表控制單元221遞增所讀取頁對應之一區塊之一有效頁計數器。日誌恢復單元394請求轉換表控制單元221更新正向查找表之所擷取反向查找邏輯位址以指示所讀取頁對應之實體位址區域資訊。轉換表控制單元221根據指令更新由轉換表儲存單元323所儲存之該轉換表。
如上文所述,執行與在頁寫入時的該轉換表之更新程序相同之程序。亦即,在該第三實施例中,不將該管理資訊之更新資訊詳細記錄在日誌中且不恢復,而記錄藉由其更新該管理資訊之因子,再現自該因子更新之該管理資訊之一態樣且恢復該管理資訊。
在步驟S210中,根據需要自步驟S201重複該程序。
在此情況下,在相同期限中,甚至當在相同邏輯位址中產生主機寫入程序及壓縮程序時,首先將根據該壓縮寫入之改變反應在該管理資訊上然後反應根據該主機寫入之改變。最後,一系列管理資訊顯示該頁經受該主機寫入。藉此,保證該管理資訊之一致性。
接下來,將參考圖32闡述當每一日誌之類型係區塊之添加完成資訊時之恢復程序之一流程之一序列。圖32係顯示當每一日誌之類型係區塊之添加完成資訊時之恢復程序之一序列之一流程之一實體的一流程圖。
在該日誌中,記錄新分配區塊之資訊、區塊之添加完成資訊及指示將區塊收集為未使用區塊之資訊。只要未完成在某一期限中所分配之所有區塊之添加,該期限便不繼續進行至下一期限。在步驟S220中,當按照記錄次序追蹤該日誌時,日誌恢復單元394確認在其中記錄某一期限中所分配之所有區塊之添加完成資訊之一狀態中記錄下一期限之區塊分配之一日誌且可調查該日誌之有效性。當儲存在分配該區塊之後直至完成添加為止時添加於該區塊中之所有頁之反向查找邏輯位址且將添加於對應區塊中之該等頁之反向查找邏輯位址包含於該對應區塊之添加完成日誌中時,可僅藉由觀看添加完成日誌來辨識添加於該區塊中之所有頁之反向查找邏輯位址。藉此,可極大地降低圖31之步驟S201之程序(亦即,自半導體儲存媒體205之讀取程序)。出於此原因,僅關於其中執行最後添加之區塊,可自頭部順序地讀取該等頁。因此,可降低管理資訊恢復程序之程序時間。
接下來,將參考圖33闡述當每一日誌之類型係空閒區塊收集資訊時之恢復程序之一流程之一序列。圖33係顯示當每一日誌之類型係空閒區塊收集資訊時之恢復程序之一序列之一流程之一實例的一流程圖。在步驟S230中,日誌恢復單元394請求區塊使用資訊控制單元326將對應區塊之使用狀態改變為未使用狀態。區塊使用資訊控制單元326根據來自日誌恢復單元394之請求更新由區塊使用資訊儲存單元228所儲存之區塊使用資訊。
藉由上文程序,可正確地恢復該管理資訊同時可極大地降低日誌記錄計數。因此,與關於儲存媒體之資料之寫入效能相比,可進一步改良關於來自該主機裝置之寫入請求之寫入效能。此外,可增加資料儲存裝置之設計壽命。
在該第三實施例中,在區塊分配規則中存在以下兩個約束。
第一個約束係當主機寫入日誌結構化指標及壓縮日誌結構化指標使用在對應期限中所分配之所有區塊時同步地執行用於壓縮添加之日誌結構化區塊及用於主機寫入之日誌結構化區塊之新區塊分配。
第二個約束係關於當在一對應時間點來自該主機裝置之寫入量為1且在該資料儲存裝置中欲處理之壓縮之寫入量為N(N為等於或大於0之一整數)時所分配區塊之數目,亦即,將一個未使用區塊分配給用於主機添加之區塊且將N個未使用區塊分配給用於壓縮添加之區塊。
接下來,將參考圖34至38闡述因違反以上約束而不能正確地恢復該管理資訊之一實例,同時考量到反向查找表之恢復。由於下文提及之一情形可應用於有效頁旗標或有效頁計數器之恢復,因此本文將不重複說明。
在其中使用該等區塊用於主機寫入及壓縮之一情形下,如圖34中所示,針對主機寫入之日誌結構化指標到達區塊之末尾處。在此情況下,獲取新的區塊,此違反該第一約束,且繼續處理來自該主機裝置之寫入存取,如圖35中所示。在此情況下,由於在來自該主機裝置之寫入存取中產生位址偏離,因此如圖35及36中所示,使記錄於區塊A中用於壓縮之一LBA 2之資料無效,區塊B變成壓縮物件,且將一LBA 4之資料複製至區塊A中用於壓縮。圖37中顯示在此時間點之日誌。
在圖36中所示之情形下,由於中斷給資料儲存裝置300之電力供應且再次給資料儲存裝置300供應電力,因此恢復正向查找表之內容。在此情況下,如圖37中所示,由於指示「區塊就緒」之一日誌之時間次序係區塊A、區塊B、區塊C及區塊D之次序,因此按照此次序讀取每一區塊之一頁且恢復圖38中所示之一正向查找表。在圖38中所示之正向查找表中,正向查找表之關於LBA 4之資訊可指示並非最新之區塊B之一頁0。
接下來,將參考圖39至44闡述因遵守以上約束而可正確地恢復該管理資訊之一實例,同時考量到正向查找表之恢復。
在其中使用區塊用於主機寫入及壓縮之一情形下,如圖39中所示,針對主機寫入之日誌結構化指標到達區塊之末尾處。在此情況下,遵守該第一約束,使新區塊之獲取延遲直至針對壓縮之日誌結構化指標到達區塊之末尾處為止,如圖40中所示,且當該等日誌結構化指標到達用於寫入之區塊之末尾處時獲取新的區塊。然後,同時處理根據來自該主機裝置之寫入請求之寫入及壓縮寫入且同步地執行區塊之獲取,如圖41中所示。如圖42中所示,將用於主機寫入之區塊B設定為壓縮物件且執行壓縮,且將存在於區塊B中之有效頁複製至區塊E中。圖43中顯示在此時間點之日誌。
在圖42中所示之情形下,由於中斷給資料儲存裝置300之電力供應且再次給資料儲存裝置300供應電力,因此恢復正向查找表之內容。圖44顯示經恢復正向查找表。由於一所聚焦LBA(邏輯位址)為一在前LBA,因此圖42中未顯示第十一個至第十七個LBA。若遵守該等約束,則由於當日誌結構化指標獲取新區塊時必須以一群組之形式獲取用於主機寫入之區塊及用於壓縮之區塊,因此以一群組單元執行一恢復程序,甚至在重新構建正向查找表之情況下。在圖44之一狀態之情況下,獲得包含區塊A及B之一群組、區塊C及D之一群組及區塊E及F之一群組之三個群組。三個群組之恢復次序係在一寫入程序中使用該等區塊之次序。首先,順序地讀取區塊A及B之群組之若干頁、區塊C及D之群組之若干頁及區塊E及F之群組之若干頁且恢復該正向查找表。在每一群組中,在讀取用於壓縮之區塊之該等頁且恢復該正向查找表之後,讀取用於主機寫入之區塊之該等頁且恢復該正向查找表。舉例而言,關於區塊A及B之群組,在處理區塊A之該等頁之後,處理區塊B之該等頁。
如圖44之正向查找表恢復結果中所示,可認識到,儘管由於如在圖36中所示之存取型樣中產生位址偏離而立即壓縮自該主機裝置寫入之資料,但正向查找表之恢復結果保證一致性。
第一約束係當兩個寫入指標使用所有所獲取區塊時致使執行用以寫入具有不同特性之兩種類型資料之區塊之獲取及致使關於每一區塊之寫入歷史按照正確次序儲存及規定的一約束。自此組態,可認識到若不遵守第一約束,則不能正確地執行自該日誌之正向查找表恢復。
第二約束係致使動態地反應來自該主機裝置之寫入請求頻率之改變或未使用區塊之數目之改變同時遵守該第一約束的一約束。在其中不需要(舉例而言)緊接著在該系統之使用開始之後執行壓縮之情形下,針對壓縮之日誌結構化指標可未獲取該等區塊。同時,在其中由於該系統之未使用區塊之數目之一降低需要執行壓縮之一情形下,使眾多區塊由針對壓縮之日誌結構化指標獲取,且產生其中關於該主機寫入執行多次壓縮之一情形。
以此方式,可保證在一對應時間點需要之壓縮之寫入量,且可盡可能地避免該程序甚至在一個日誌結構化指標到達所分配區塊之末尾處時被暫停直至另一日誌結構化指標到達所分配區塊之末尾處為止。
第四實施例
在該第四實施例中,將闡述其中一有效頁旗標未包含在一轉換表中之一實例。
若在寫入頁中之反向查找邏輯位址與正向查找表之間實現以下第一及第二關係,則可採用其中有效頁旗標未包含在該轉換表中之組態。
第一關係係「當藉由寫入頁中之反向查找邏輯位址參考正向查找表且記錄在該正向查找表中之實體位址指示對應頁時,此意指在該對應頁之寫入之後未執行對應邏輯位址之寫入,且該對應頁係有效的」。
第二關係係「當藉由寫入頁中之反向查找邏輯位址參考正向查找表且記錄在該正向查找表中之實體位址未指示對應頁時,此意指在該對應頁之寫入之後執行關於該對應邏輯位址之寫入,且該對應頁係無效的」。
當該轉換表經構建而不包含有效頁旗標時,使用上文關係,參考上文所述有效頁旗標之ON及OFF之程序由以下程序替換。
(1) 讀取若干頁之資料之程序。
(2) 藉由反向查找邏輯位址參考正向查找表及確定記錄在該正向查找表中之實體位址是否指示藉由(1)讀取之頁之程序。
(3) 當(2)變成真時確定該有效頁旗標為ON且當(2)變成假時確定該有效頁旗標為OFF之程序。
如上文所述,在該第四實施例中,可藉由使用其中有效頁旗標未包含在該轉換表中之組態降低該管理資訊之記憶體使用量。當可降低該管理資訊之記憶體使用量時,此意指可降低欲儲存為快照之容量。因此,可降低儲存快照所需之程序時間,可減少關於半導體儲存媒體之寫入量且可增加該資料儲存裝置之設計壽命。可將「寫入頁中之反向查找邏輯位址」讀取為「對應於該轉換表中之對應頁之反向查找邏輯位址」。
第五實施例
在該第五實施例中,將闡述其中各種程序不係以一區塊單元執行而係以稱為一邏輯區塊之一單元執行,該邏輯區塊中組合複數個區塊。下文中,將區塊稱為一實體區塊以將區塊與邏輯區塊彼此區分。
當該等程序係以邏輯區塊單元執行時,正向查找表具有圖45中所示的一第一階段之一LBA表及圖46中所示的一第二階段之一邏輯/實體轉換表。LBA表使用邏輯位址作為一索引且包含該邏輯位址、指派給該邏輯區塊之一邏輯區塊編號、一通道編號及指派給該頁之一頁編號。按照區塊產生次序指派邏輯區塊編號。通道編號在圖1中所示之組態之情況下變成CH0至CH5,且顯示在彼處寫入寫入物件資料之通道。邏輯/實體轉換表係指示屬於邏輯區塊之每一通道之每一實體區塊之資訊。邏輯/實體轉換表使用邏輯區塊編號作為一索引且包含一邏輯區塊編號及包含在該邏輯區塊中之每一通道之每一實體區塊編號。
圖47中顯示反向查找表、有效頁旗標及有效頁計數器。如圖47中所示,反向查找表、有效頁旗標及有效頁計數器使用邏輯區塊編號作為一索引,且包含該邏輯區塊編號、該有效頁計數器、每一通道之每一實體區塊之該邏輯位址及有效頁旗標集作為一條目。每一通道之每一實體區塊之邏輯位址及有效頁旗標集使用通道編號作為一索引,且通道編號、邏輯位址及有效頁旗標係按照頁設置於對應實體區塊中之次序配置且可規定邏輯位址資訊或有效頁旗標資訊對應之頁。相同邏輯區塊之有效頁計數器之一值與有效頁旗標之真值之總數目彼此匹配。在相同區塊中,變成索引之邏輯區塊編號及變成正向查找表之條目之邏輯區塊編號指派有相同編號。
類似於圖9中所示之反向查找表,反向查找表係指示該資料儲存裝置所儲存之資料之一邏輯位址與指示資料實際儲存於半導體儲存媒體中之一實體儲存位置之一實體位址的一對應關係且當將位址自實體位址轉換成邏輯位址(與正向查找表相反)時使用之一表。有效頁旗標使用一真/假值來顯示包含於該實體區塊中之若干當頁中在彼處寫入有效資料之一有效頁。有效頁計數器顯示包含於該邏輯區塊中之該等頁當中有效頁之數目。
在此情況下,若構成邏輯區塊之實體區塊之頁之寫入次序(亦即,日誌結構化指標之前進方法)係如圖48中所示確定,則上文所述以(實體)區塊單元進行之各種程序可由以邏輯區塊單元進行之程序替換。藉此,共同存取複數個半導體儲存媒體且可增加存取速度。藉由組合該第三實施例或該第四實施例,可使用其中不包含反向查找表或有效頁旗標之組態。
根據上文所述至少一個實施例之一控制器,一寫入指示單元指示一資料存取單元將寫入物件資料寫入一資料儲存單元之由一第一實體位址所指示之一儲存區域中,指示一管理資訊存取單元更新位址轉換資訊且指示一第一存取單元更新該第一實體位址。一壓縮單元擷取壓縮物件資料之一實體位址,指示該資料存取單元讀取儲存於該資料儲存單元之由該實體位址所指示之一儲存區域中之壓縮物件資料,指示該資料存取單元將該壓縮物件資料寫入該資料儲存單元之由一第二實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該位址轉換資訊,且指示一第二存取單元更新該第二實體位址。因此,可改良一般使用效能。
雖然已闡述了某些實施例,但僅以實例方式呈現此等實施例,且此等實施例不意欲限制本發明之範疇。實際上,本文所闡述之新穎實施例可以各種其他形式體現;此外,可在不背離本發明精神之情況下對本文所闡述該等實施例之形式作出各種省略、替代及改變。隨附申請專利範圍及其等效物意欲涵蓋將屬於本發明之範疇及精神之此等形式或修改。
51...處理器
52...開機唯讀記憶體
53...記憶體介面
54...動態隨機存取記憶體
55...ATA/SAS介面
56...匯流排
57A...NAND介面
57B...NAND介面
57C...NAND介面
57D...NAND介面
57E...NAND介面
57F...NAND介面
58A...NAND
58B...NAND
58C...NAND
58D...NAND
58E...NAND
58F...NAND
100...資料儲存裝置
105...資料儲存單元
106...資料存取單元
110...接收器
120...管理資訊儲存單元
121...管理資訊存取單元
130...第一儲存單元
131...第一存取單元
140...第二儲存單元
141...第二存取單元
150...寫入指示單元
160...讀取指示單元
170...壓縮單元
200...資料儲存裝置
203...半導體儲存媒體控制單元
205...半導體儲存媒體
207...緩衝控制單元
209...緩衝儲存單元
210...主機介面單元
215...命令控制單元
221...轉換表控制單元
223...轉換表儲存單元
226...區塊使用資訊控制單元
228...區塊使用資訊儲存單元
230...主機寫入日誌結構化指標儲存單元
232...主機寫入日誌結構化指標控制單元
240...壓縮日誌結構化指標儲存單元
242...壓縮日誌結構化指標控制單元
250...寫入指示單元
260...讀取指示單元
270...壓縮單元
282...快照儲存單元
284...日誌儲存單元
290...管理資訊恢復單元
292...快照恢復單元
294...日誌恢復單元
300...資料儲存裝置
323...轉換表儲存單元
326...區塊使用資訊控制單元
350...寫入指示單元
370...壓縮單元
394...日誌恢復單元
圖1係顯示根據一第一實施例的一資料儲存裝置之硬體組態之一實例之一方塊圖;
圖2係顯示根據該第一實施例之該資料儲存裝置之功能組態之一實例之一方塊圖;
圖3係顯示一用於保證管理資訊之一致性之方法之一實例之一圖示;
圖4係顯示一用於保證管理資訊之一致性之方法之一實例之一圖示;
圖5係顯示一用於保證管理資訊之一致性之方法之一實例之一圖示;
圖6係顯示一用於保證管理資訊之一致性之方法之一實例之一圖示;
圖7係顯示根據一第二實施例之一資料儲存裝置之功能組態之一實例之一方塊圖;
圖8係顯示一正向查找表之資料組態之一實例之一圖示;
圖9係顯示一反向查找表、一有效頁旗標及一有效頁計數器之資料組態之一實例之一圖示;
圖10係顯示一主機寫入日誌結構化指標之資料組態之一實例之一圖示;
圖11係一命令分割方法之一實例之一圖示;
圖12係顯示一日誌之一實例之一圖示;
圖13係顯示根據該第二實施例的該資料儲存裝置之一寫入程序之一實例之一流程圖;
圖14係顯示根據該第二實施例的該資料儲存裝置之一讀取程序之一實例之一流程圖;
圖15係顯示根據該第二實施例的該資料儲存裝置之一壓縮程序之一實例之一流程圖;
圖16係顯示根據該第二實施例的該資料儲存裝置之一快照記錄程序之一實例之一流程圖;
圖17係顯示根據該第二實施例的該資料儲存裝置之一管理資訊恢復程序之一實例之一流程圖;
圖18係按照邏輯位址次序配置資料之一原理之一圖示;
圖19係顯示根據一第三實施例的一資料儲存裝置之功能組態之一實例之一方塊圖;
圖20係顯示一有效頁旗標及一有效頁計數器之資料組態之一實例之一圖示;
圖21係一未使用區塊之一分配方法之一圖示;
圖22係一未使用區塊之一分配方法之一圖示;
圖23係一未使用區塊之一分配方法之一圖示;
圖24係一未使用區塊之一分配方法之一圖示;
圖25係一未使用區塊之一分配方法之一圖示;
圖26係一未使用區塊之一分配方法之一圖示;
圖27係顯示關於一頁之一資料寫入方法之一圖示;
圖28係顯示根據該第三實施例的該資料儲存裝置之一寫入程序之一實例之一流程圖;
圖29係顯示根據該第三實施例的該資料儲存裝置之一壓縮程序之一實例之一流程圖;
圖30係顯示根據該第三實施例的該資料儲存裝置之一管理資訊恢復程序之一實例之一流程圖;
圖31係顯示根據該第三實施例的該資料儲存裝置之一區塊分配程序之一實例之一流程圖;
圖32係顯示根據該第三實施例的該資料儲存裝置之一區塊添加完成程序之一實例之一流程圖;
圖33係顯示根據該第三實施例的該資料儲存裝置之一空閒區塊收集程序之一實例之一流程圖;
圖34係顯示不根據約束之一恢復程序之一實例之一圖示;
圖35係顯示不根據約束之一恢復程序之一實例之一圖示;
圖36係顯示不根據約束之一恢復程序之一實例之一圖示;
圖37係顯示不根據約束之一恢復程序之一實例之一圖示;
圖38係顯示不根據約束之一恢復程序之一實例之一圖示;
圖39係顯示不根據約束之一恢復程序之一實例之一圖示;
圖40係顯示不根據約束之一恢復程序之一實例之一圖示;
圖41係顯示不根據約束之一恢復程序之一實例之一圖示;
圖42係顯示不根據約束之一恢復程序之一實例之一圖示;
圖43係顯示不根據約束之一恢復程序之一實例之一圖示;
圖44係顯示不根據約束之一恢復程序之一實例之一圖示;
圖45係顯示一LBA表之資料組態之一實例之一圖示;
圖46係顯示一邏輯/實體轉換表之資料組態之一實例之一圖示;
圖47係顯示一反向查找表、一有效頁旗標及一有效頁計數器之資料組態之一實例之一圖示;及
圖48係顯示一日誌結構化指標之一前進方法之一實例之一圖示。
100...資料儲存裝置
105...資料儲存單元
106...資料存取單元
110...接收器
120...管理資訊儲存單元
121...管理資訊存取單元
130...第一儲存單元
131...第一存取單元
140...第二儲存單元
141...第二存取單元
150...寫入指示單元
160...讀取指示單元
170...壓縮單元

Claims (8)

  1. 一種控制器,其連接至以下單元:一資料存取單元,其將資料寫入至儲存資料之一資料儲存單元及自其讀取資料;一管理資訊存取單元,其將資料寫入至儲存包含位址轉換資訊之管理資訊之一管理資訊儲存單元及自其讀取資料,該位址轉換資訊中該資料儲存單元之實體位址與邏輯位址彼此相關聯;一第一存取單元,其將資料寫入至儲存該資料儲存單元之一第一實體位址之一第一儲存單元及自其讀取資料;及一第二存取單元,其將資料寫入至儲存該資料儲存單元之一第二實體位址之一第二儲存單元及自其讀取資料,該控制器包括:一接收器,其自一主機裝置接收一資料寫入請求;一寫入指示單元,其指示該第一存取單元讀取該第一實體位址,指示該資料存取單元將為由一主機裝置請求寫入之資料之寫入物件資料寫入該資料儲存單元之由該第一實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該寫入物件資料之位址轉換資訊,且指示該第一存取單元更新該第一實體位址;及一壓縮單元,其指示該管理資訊存取單元讀取該管理資訊,基於所讀取之該管理資訊擷取儲存於該資料儲存單元中之資料當中壓縮物件資料之一實體位址,指示該資料存取單元讀取儲存於該資料儲存單元之由該實體位址指示之一儲存區域中之該壓縮物件資料,指示該第二存取單元讀取該第二實體位址,指示該資料存取單元將該壓縮物件資料寫入該資料儲存單元之由所讀取之該第二實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該壓縮物件資料之該位址轉換資訊,且指示該第二存取單元更新該第二實體位址。
  2. 如請求項1之控制器,其中當該壓縮物件資料之一讀取源之一儲存區域為一無效儲存區域時,該壓縮單元不指示該管理資訊存取單元更新該位址轉換資訊。
  3. 如請求項1之控制器,其進一步包括:一快照儲存單元,其指示該資料存取單元將該管理資訊作為一快照儲存於該資料儲存單元中;一日誌儲存單元,其指示該資料存取單元將該管理資訊之更新資訊作為一日誌儲存於該資料儲存單元中;一快照恢復單元,其指示該資料存取單元讀取儲存於該資料儲存單元中之該快照且恢復該快照作為該管理資訊;及一日誌恢復單元,其指示該資料存取單元讀取儲存於該資料儲存單元中之該日誌且將該日誌應用於由該快照恢復單元恢復之該管理資訊以恢復該管理資訊。
  4. 如請求項3之控制器,其中為該寫入物件資料分配用於主機寫入之一日誌結構化區塊,為該壓縮物件資料分配用於壓縮之一日誌結構化區塊,該寫入指示單元指示該資料存取單元將該寫入物件資料及該寫入物件資料之一邏輯位址寫入用於該主機寫入之該日誌結構化區塊之一頁中,該壓縮單元指示該資料存取單元將該壓縮物件資料及該壓縮物件資料之一邏輯位址寫入用於該壓縮之該日誌結構化區塊之一頁中,且該控制器進一步包括一區塊使用資訊控制單元,其為該寫入物件資料分配用於主機寫入之一新日誌結構化區塊,為該壓縮物件資料分配用於壓縮之一新日誌結構化區塊,且當關於用於該主機寫入之該日誌結構化區塊之所有頁完成寫入且關於用於該壓縮之該日誌結構化區塊之所有頁完成寫入時,按照用於該壓縮之該日誌結構化區塊及用於該主機寫入之該日誌結構化區塊之次序將分配資訊記錄為一日誌。
  5. 如請求項4之控制器,其中該區塊使用資訊控制單元將N(N為等於或大於0之一整數)個用於壓縮之新日誌結構化區塊分配給一個用於主機寫入之新日誌結構化區塊。
  6. 如請求項4之控制器,其中該壓縮單元參考該位址轉換資訊,當與寫入該頁中之該壓縮物件資料之該邏輯位址相關聯之一實體位址指示該頁時確定該頁係有效,且當與寫入該頁中之該壓縮物件資料之該邏輯位址相關聯之該實體位址不指示該頁時確定該頁係無效。
  7. 一種資料儲存裝置,其包括:一資料儲存單元,其儲存資料;一管理資訊儲存單元,其儲存包含位址轉換資訊之管理資訊,該位址轉換資訊中該資料儲存單元之實體位址與邏輯位址彼此相關聯;一第一儲存單元,其儲存該資料儲存單元之一第一實體位址;一第二儲存單元,其儲存該資料儲存單元之一第二實體位址;一資料存取單元,其將資料寫入至該資料儲存單元及自其讀取資料;一管理資訊存取單元,其將資料寫入至該管理資訊儲存單元及自其讀取資料;一第一存取單元,其將資料寫入至該第一儲存單元及自其讀取資料;一第二存取單元,其將資料寫入至該第二儲存單元及自其讀取資料;一接收器,其自一主機裝置接收一資料寫入請求;一寫入指示單元,其指示該第一存取單元讀取該第一實體位址,指示該資料存取單元將為由一主機裝置請求寫入之資料之寫入物件資料寫入該資料儲存單元之由該第一實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該寫入物件資料之位址轉換資訊,且指示該第一存取單元更新該第一實體位址;及一壓縮單元,其指示該管理資訊存取單元讀取該管理資訊,基於所讀取之該管理資訊擷取儲存於該資料儲存單元中之資料當中壓縮物件資料之一實體位址,指示該資料存取單元讀取儲存於該資料儲存單元之由該實體位址指示之一儲存區域中之該壓縮物件資料,指示該第二存取單元讀取該第二實體位址,指示該資料存取單元將該壓縮物件資料寫入該資料儲存單元之由所讀取之該第二實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該壓縮物件資料之該位址轉換資訊,且指示該第二存取單元更新該第二實體位址。
  8. 一種程式產品,其用於一控制器,該控制器連接至以下單元:一資料存取單元,其將資料寫入至儲存資料之一資料儲存單元及自其讀取資料;一管理資訊存取單元,其將資料寫入至儲存包含位址轉換資訊之管理資訊之一管理資訊儲存單元及自其讀取資料,該位址轉換資訊中該資料儲存單元之實體位址與邏輯位址彼此相關聯;一第一存取單元,其將資料寫入至儲存該資料儲存單元之一第一實體位址之一第一儲存單元及自其讀取資料;及一第二存取單元,其將資料寫入至儲存該資料儲存單元之一第二實體位址之一第二儲存單元及自其讀取資料,該程式產品具有包含經程式化指令之一電腦可讀媒體,其中該等指令在由一電腦執行時致使該電腦用作:一接收器,其自一主機裝置接收一資料寫入請求;一寫入指示單元,其指示該第一存取單元讀取該第一實體位址,指示該資料存取單元將為由一主機裝置請求寫入之資料之寫入物件資料寫入該資料儲存單元之由該第一實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該寫入物件資料之位址轉換資訊,且指示該第一存取單元更新該第一實體位址;及一壓縮單元,其指示該管理資訊存取單元讀取該管理資訊,基於所讀取之該管理資訊擷取儲存於該資料儲存單元中之資料當中壓縮物件資料之一實體位址,指示該資料存取單元讀取儲存於該資料儲存單元之由該實體位址指示之一儲存區域中之該壓縮物件資料,指示該第二存取單元讀取該第二實體位址,指示該資料存取單元將該壓縮物件資料寫入該資料儲存單元之由所讀取之該第二實體位址指示之一儲存區域中,指示該管理資訊存取單元更新該壓縮物件資料之該位址轉換資訊,且指示該第二存取單元更新該第二實體位址。
TW100105520A 2010-03-18 2011-02-18 控制器、資料儲存裝置、及程式產品 TWI424316B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010063191A JP5066209B2 (ja) 2010-03-18 2010-03-18 コントローラ、データ記憶装置、及びプログラム

Publications (2)

Publication Number Publication Date
TW201205286A TW201205286A (en) 2012-02-01
TWI424316B true TWI424316B (zh) 2014-01-21

Family

ID=44166702

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100105520A TWI424316B (zh) 2010-03-18 2011-02-18 控制器、資料儲存裝置、及程式產品

Country Status (6)

Country Link
US (9) US8495336B2 (zh)
EP (1) EP2367100A3 (zh)
JP (1) JP5066209B2 (zh)
KR (1) KR101270807B1 (zh)
CN (1) CN102193748B (zh)
TW (1) TWI424316B (zh)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2225643B1 (en) 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
KR101090407B1 (ko) * 2009-12-24 2011-12-06 주식회사 팍스디스크 듀얼 메모리 영역을 관리하는 반도체 스토리지 시스템의 제어 방법
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
JP5066209B2 (ja) * 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
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
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US20220214944A1 (en) * 2010-11-29 2022-07-07 Pure Storage, Inc. Optimized Selection of Participants in Distributed Data Rebuild/Verification
JP5405513B2 (ja) * 2011-03-22 2014-02-05 株式会社東芝 メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
JP5674634B2 (ja) 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
JP5687639B2 (ja) * 2012-02-08 2015-03-18 株式会社東芝 コントローラ、データ記憶装置及びプログラム
TWM439846U (en) * 2012-02-15 2012-10-21 Waremax Electronics Corp Connection device capable of enhancing data read/write speed
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
US8370567B1 (en) * 2012-03-23 2013-02-05 DSSD, Inc. Storage system with self describing data
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
JP5976608B2 (ja) 2012-10-30 2016-08-23 株式会社東芝 メモリデバイス
US8954694B2 (en) * 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9286936B1 (en) * 2013-02-21 2016-03-15 Seagate Technology Llc Zone based band mapping
JP6191209B2 (ja) * 2013-04-12 2017-09-06 富士通株式会社 ストレージ装置、制御プログラムおよび制御方法
KR102114388B1 (ko) * 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
CN105094742B (zh) * 2014-05-09 2018-12-07 华为技术有限公司 一种写数据的方法和设备
JP5747133B1 (ja) * 2014-06-11 2015-07-08 株式会社東芝 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法
WO2016006223A1 (ja) * 2014-07-11 2016-01-14 日本電気株式会社 配置装置、配置方法及び配置プログラムを記憶する記録媒体
US9378149B1 (en) 2014-08-29 2016-06-28 Emc Corporation Method and system for tracking modification times of data in a storage system
US20160188233A1 (en) * 2014-12-26 2016-06-30 Mediatek Inc. Method for interrupting cleaning procedure of flash memory
TWI573143B (zh) * 2015-03-04 2017-03-01 慧榮科技股份有限公司 資料重新寫入方法以及使用該方法的裝置
US20160306810A1 (en) * 2015-04-15 2016-10-20 Futurewei Technologies, Inc. Big data statistics at data-block level
TWI569139B (zh) * 2015-08-07 2017-02-01 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
US9880770B2 (en) * 2015-09-02 2018-01-30 SK Hynix Inc. Supporting invalidation commands for non-volatile memory
CN106897311B (zh) * 2015-12-21 2020-08-11 财团法人工业技术研究院 数据库批次更新方法、数据还原日志产生方法与存储装置
US10162561B2 (en) * 2016-03-21 2018-12-25 Apple Inc. Managing backup of logical-to-physical translation information to control boot-time and write amplification
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10592113B2 (en) 2016-07-18 2020-03-17 Storart Technology (Shenzhen) Co., Ltd. Method for transferring command from host to device controller and system using the same
TWI625628B (zh) * 2016-08-12 2018-06-01 深圳衡宇芯片科技有限公司 由主機到設備控制器傳輸命令的方法及使用該方法的系統
JP6720788B2 (ja) * 2016-09-07 2020-07-08 富士通株式会社 ログ管理装置及びログ管理プログラム
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
JP6478965B2 (ja) * 2016-12-13 2019-03-06 キヤノン株式会社 情報処理装置、その方法及びプログラム
US10402355B2 (en) 2017-02-08 2019-09-03 Texas Instruments Incorporated Apparatus and mechanism to bypass PCIe address translation by using alternative routing
FR3065303B1 (fr) 2017-04-12 2019-06-07 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans un dispositif de memoire non volatile et dispositif de memoire non volatile correspondant
CN109101185B (zh) * 2017-06-20 2023-08-11 北京忆恒创源科技股份有限公司 固态存储设备及其写命令和读命令处理方法
JP2019053415A (ja) 2017-09-13 2019-04-04 東芝メモリ株式会社 メモリシステム、その制御方法及びプログラム
JP7074454B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 計算機システムおよび制御方法
CN107844432B (zh) * 2017-11-22 2021-01-12 深圳忆联信息系统有限公司 一种固态硬盘动态垃圾回收的方法及固态硬盘
CN111902806A (zh) 2017-12-11 2020-11-06 美光科技公司 改进高速缓存的快闪转换层中的垃圾收集效率的方案
JP6968016B2 (ja) * 2018-03-22 2021-11-17 キオクシア株式会社 ストレージデバイスおよびコンピュータシステム
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
KR102513919B1 (ko) * 2018-11-05 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템
JP7042716B2 (ja) * 2018-07-26 2022-03-28 キオクシア株式会社 記憶装置及び記憶制御方法
JP7178916B2 (ja) 2019-01-29 2022-11-28 キオクシア株式会社 メモリシステムおよび制御方法
TWI696073B (zh) * 2019-04-02 2020-06-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN111813325B (zh) * 2019-04-12 2023-06-27 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
JP2021015384A (ja) * 2019-07-10 2021-02-12 富士通株式会社 情報処理回路、情報処理装置、情報処理方法及び情報処理プログラム
CN111261206B (zh) 2020-01-17 2022-03-08 苏州浪潮智能科技有限公司 一种读写方法、装置和电子设备及可读存储介质
US11853599B2 (en) 2020-03-31 2023-12-26 Kioxia Corporation Memory system and information processing system
CN114546245B (zh) * 2020-11-18 2024-09-03 北京忆恒创源科技股份有限公司 利用zns标准实现透明压缩的方法及其设备
US11934280B2 (en) 2021-11-16 2024-03-19 Netapp, Inc. Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors
US20230188324A1 (en) * 2021-12-09 2023-06-15 Sap Se Initialization vector handling under group-level encryption
US11947452B2 (en) * 2022-06-01 2024-04-02 Micron Technology, Inc. Controlling variation of valid data counts in garbage collection source blocks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721863B1 (en) * 2000-02-29 2004-04-13 Kabushiki Kaisha Toshiba Disk control mechanism preferable for random disk write
US20090177944A1 (en) * 2007-09-26 2009-07-09 Shinichi Kanno Semiconductor memory device and its control method
US20090222628A1 (en) * 2008-03-01 2009-09-03 Kabushiki Kaisha Toshiba Memory system
TW201005537A (en) * 2008-07-29 2010-02-01 Ralink Technology Corp Controller, method, system and program for direct memory access

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3534585B2 (ja) * 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
US6470436B1 (en) * 1998-12-01 2002-10-22 Fast-Chip, Inc. Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory
JP3793868B2 (ja) * 1999-11-25 2006-07-05 カシオ計算機株式会社 フラッシュメモリ管理装置及び記録媒体
US7424498B1 (en) * 2003-06-30 2008-09-09 Data Domain, Inc. Probabilistic summary data structure based encoding for garbage collection
KR100533682B1 (ko) * 2003-12-26 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
US20060161724A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
KR20070031647A (ko) 2005-09-15 2007-03-20 삼성전자주식회사 플래시 메모리 장치에 압축 데이터를 기록하는 방법 및상기 기록된 데이터를 읽는 방법, 그리고 상기 방법을이용하는 플래시 메모리 장치
JP5002944B2 (ja) * 2005-11-15 2012-08-15 ソニー株式会社 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
US8307149B2 (en) * 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
US20070143376A1 (en) 2005-12-16 2007-06-21 Mcintosh Robert Methods, systems, and computer program products for displaying at least one electronic media file on an electronic calendar based on information associated with the electronic calendar
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
JP2008003932A (ja) * 2006-06-23 2008-01-10 Sony Corp データ記憶装置、データ記憶方法およびコンピュータプログラム
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
JP4461170B2 (ja) 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
EP2225643B1 (en) 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
JP4675984B2 (ja) * 2008-02-29 2011-04-27 株式会社東芝 メモリシステム
JP2009211192A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
JP4592774B2 (ja) * 2008-03-01 2010-12-08 株式会社東芝 メモリシステム
JP4510107B2 (ja) * 2008-03-12 2010-07-21 株式会社東芝 メモリシステム
JP4439569B2 (ja) 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
JP2010015197A (ja) 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
JP2010009548A (ja) 2008-06-30 2010-01-14 Toshiba Corp 記憶装置、制御装置、記憶システム、および記憶方法
JP2010015195A (ja) 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
JP5242264B2 (ja) 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
JP4551958B2 (ja) 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
JP5317689B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP5268710B2 (ja) 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
JP5066209B2 (ja) * 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721863B1 (en) * 2000-02-29 2004-04-13 Kabushiki Kaisha Toshiba Disk control mechanism preferable for random disk write
US20090177944A1 (en) * 2007-09-26 2009-07-09 Shinichi Kanno Semiconductor memory device and its control method
US20090222628A1 (en) * 2008-03-01 2009-09-03 Kabushiki Kaisha Toshiba Memory system
TW201005537A (en) * 2008-07-29 2010-02-01 Ralink Technology Corp Controller, method, system and program for direct memory access

Also Published As

Publication number Publication date
EP2367100A2 (en) 2011-09-21
US9940233B2 (en) 2018-04-10
US20200379901A1 (en) 2020-12-03
JP2011197945A (ja) 2011-10-06
US9690691B2 (en) 2017-06-27
US20240256442A1 (en) 2024-08-01
US11675697B2 (en) 2023-06-13
KR20110105333A (ko) 2011-09-26
US20190179745A1 (en) 2019-06-13
US20180239698A1 (en) 2018-08-23
KR101270807B1 (ko) 2013-06-05
US20170103017A1 (en) 2017-04-13
US11269766B2 (en) 2022-03-08
CN102193748B (zh) 2014-01-01
TW201205286A (en) 2012-02-01
US11977481B2 (en) 2024-05-07
EP2367100A3 (en) 2014-05-07
US20230267075A1 (en) 2023-08-24
US8495336B2 (en) 2013-07-23
US20220156182A1 (en) 2022-05-19
CN102193748A (zh) 2011-09-21
US20130297900A1 (en) 2013-11-07
US10783072B2 (en) 2020-09-22
JP5066209B2 (ja) 2012-11-07
US20110231624A1 (en) 2011-09-22
US10229053B2 (en) 2019-03-12

Similar Documents

Publication Publication Date Title
TWI424316B (zh) 控制器、資料儲存裝置、及程式產品
CN110678836B (zh) 用于键值存储的持久性存储器
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
US20190220395A1 (en) Memory system and method for controlling nonvolatile memory
CN113867647B (zh) 虚拟存储系统及其控制方法
US20120102260A1 (en) Storage apparatus and data control method
US20150347310A1 (en) Storage Controller and Method for Managing Metadata in a Cache Store
CN110895513B (zh) 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
JP2008198184A (ja) 連続的なデータ保護のためにジャーナル領域を調節するための方法および装置
JP2015527623A (ja) ストレージ装置及びストレージ制御方法
US8862819B2 (en) Log structure array
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
US10083181B2 (en) Method and system for storing metadata of log-structured file system
US11288006B2 (en) Storage system and volume copying method where changes to address conversion table is rolled back
JP6817340B2 (ja) 計算機
JP6666405B2 (ja) メモリシステムおよび制御方法
US20190205044A1 (en) Device for restoring lost data due to failure of storage drive